阿里巴巴入选的JCP最高执行委员会,何方神圣?

简介: 阿里巴巴入选的JCP最高执行委员会,何方神圣?

✍前言


你好,我是方同学(YourBatman)


A哥 -> 方同学。是的,中文昵称改了。自知道行不深无以用“哥”字称呼,虽已毕业多年,同学二字寄寓心态一直积极、热情、年轻


时间拨回到2018年5月,阿里巴巴获邀加入JCP最高执行委员会,以替代恩智浦被选举为该委员会委员,成为第一家加入JCP的中国企业。一时间铺天盖地的新闻报道,轰动IT圈。


JCP的执行委员任期2年,时至现在的2021年,午夜梦回中忆起此事,再去JCP官网查阅一下,还好牛皮可以继续吹,(2020年投票选举)连任成功!


image.png


很明显这篇文章绝非吹捧阿里,旨在向你介绍作为一名Java程序员必知必会的JSR规范、JCP组织。


程序员是信息时代的技术人才,常听到的一句话是“我现在有一个想法可以改变世界、可以颠覆行业、可以超越BAT,但就差一个程序员了”,可见程序员的重要性。中国软件行业发展至今(2021年)已有700万的程序员,虽然人数在全球遥遥领先,但声音一直非常小,影响力也微乎其微。


阿里巴巴作为国内Javaer的“圣地”,almost代表着最高水平。作为一枚Java开发者,听过无数J字缩略语:JDK、JRE、JVM、JSE、JCP、JPA、Jakarta…本文将以此为背景,为你介绍与每个Java程序员都息息相关的JCP(含JSR规范),然后就会感受到加入JCP这件事多么牛X了。


image.png

版本约定

  • JSR、JCP


✍正文


image.png

若有人问你Java平台分为哪三个版本,你应该能答出来:


  1. Java标准版(Java SE)
  2. Java企业版(Java EE)
  3. Java Micro Edition(Java ME)


很好,60分及格。若夺命连环问继续追问:听过JSR、JCP吗?如果说上道题还在嘿嘿的说是送分题,那这道题估摸可能大概就成为你的送命题了。


什么是JSR?


Java Specification Requests:Java规范请求/提案。


JSR是指的向JCP提出新增一个标准化技术规范的正式请求。每个JSR都是正式的、开放的标准文档,由个人或组织提交给JCP组织进行审议,根据审议结果决定JSR是否最终发布。


课代表帮你总结一下JSR定义的关键点:


  • 任何人(个人/组织)都可以向JCP提交JSR,当然前提是你要注册成为JCP的会员(个人会员免费,现在由Oracle管理维护)
  • 每个JSR都是正式的文档,必须符合JCP的规定的格式(这个门槛不低)
  • JSR是开放的,任何人都应该可以很方便获取到它
  • JSR的内容是对Java技术平台提出的修改、补充和改进,包括Java技术栈增加新功能、修改bug、提升性能等


每个JSR都只是一个抽象的规范(还只是文档,在纸面上的规范),通过设计API落地成为接口代码规范,最后通过参考实现来提供具体的功能落地,进而供以使用。


JCP规定每个JSR规范都必须有一个官方参考实现,言外之意:可以有多个其它实现。

image.png


如图,API代码规范可认为是JSR规范的代码表现形式,被纳入Java体系内。值得注意的是:JSR并非Java EE的专属,三个版本里都有,个数如下:


image.png


说明:某些JSR直接与一个或多个Java平台相关,还有许多JSR不是平台的一部分,而是对平台的扩充。此表格只列出了与特定版本相关的JSR(表格数据截止到2021年7月)


虽然Java每个平台都有JSR,但我们常常只把JSR和Java EE一起提及。Java EE中的每个API实际上都是由审核通过了的某个JSR规范所定义的。换句话讲:Java EE由各种组件构成,这些组件遵从JSR规范所规定的内容、功能。


一个JSR从提出后,生命周期交由JCP组织管理,有可能被拒绝不通过,也有可能最终 Final RELEASE。一旦某个JSR通过了JCP的审核, 它就变成了Java技术栈的一部分,可以安全地用于生产环境。但这个门槛非常非常非常高,时间周期也会很长。


常见JSR及参考实现举例


在日常开发中,JSR出现的频率还是蛮高的。即使你不用EJB开发,而是使用Spring技术栈、又或者是Dubbo都经常能看到JSR的身影。JSR种类繁多,仅已经毕业(Final Release)的就有260+个:

image.png



我们不可能逐个去了解每个,下面课代表就帮搜集了些常见(现在大都在Spirng技术体系下开发,所以常用二字是以此为背景解释)、常用、仍旧流行的JSR规范以及对应的主流实现(主流实现并非都是官方参考实现哦):


image.png


这都是Java EE相关的JSR规范(一般Java EE接触多),其实Java SE也有熟悉的规范,比如JSR 310日期时间(也叫Java 8日期时间)就是典型代表。


每个JSR都有一个.pdf文件做说明,这里都帮你收藏好了:https://github.com/yourbatman/JSR-JCP


什么是JCP?


Java Community Process:Java非正式过程(形式化和标准化Java技术的过程),官网地址:https://jcp.org


一个开放的国际组织,主要由Java开发者以及被授权者组成,职能是发展和更新。JCP由Sun公司于1995年创造,演进到如今有数百名来自世界各地Java代表成员一同监督Java发展的正式程序。


如果说JSR代表着一种具体的规范技术,那么JCP就是管理这些JSR发展、更新的组织。


JCP是为Java技术开发标准技术规范的机制。任何人都可以注册该站点,参与对Java规范请求(JSR)的审查和提供反馈,任何人都可以注册成为JCP成员,然后加入JSR专家组,甚至提交自己的JSR建议。

image.png


JCP它主要包含这几块内容:


  • Java技术规范:JSR规范
  • 参考实现(RI):JCP要求每个JSR都需要有一个参考实现
  • 技术兼容包(TCK):兼容测试工具包,一套测试、工具和文档,用于测试实现是否符合规范
  • JCP Members:由个人or组织构成JCP的成员
  • Executive Committee (EC) :(最高)执行委员会。EC代表了主要的利益相关者和Java社区的一个代表性部门。EC负责批准通过JCP关键点的规范,并协调规范及其相关测试套件之间的差异


JCP Member还可细分为准会员、合作伙伴会员、正式会员,每种身份都有不同权利,这个对“不打算”参与提交JSR的我们来讲没啥用,so…对于JCP这个组织,我们或许对这些更感兴趣些:


  1. 参与一个JSR规范生命周期的主要角色有哪些?
  2. 执行委员会(EC)这个组织有哪些成员?
  3. 一个JSR从提出到最终RELEASE需要经历哪些过程,要多久?


参与JSR生命周期的角色

开发一个JSR标准技术的成本是非常昂贵的,JCP对此有严格的流程,期间会涉及到三个角色:


  1. 贡献者
  2. 专家组
  3. 规范领导者


当然还少不了最高决策者:执行委员会EC。各个角色的分工、关系如下图:


image.png


以Bean Validation 2.0(JSR 380)为例,团队成员如下:


image.png


Gunnar Morling是谁?答:Hibernate Validator的作者,所以说JSR 380规范是由Hibernate主导的毫不为过。


1、贡献者

类似于Github上的Contributor,一般都是个人(JCP的准会员)。在1个或多个JSR上帮忙过,比如帮助测试、帮助修正、开发了JSR特征等。这是加入JCP“往上爬”的第一步,如果表现突出的话就会被放进专家组候选人,从而可能进入专家组。


类似于小组的一线员工


2、专家组

专家组对该JSR起到核心作用,均由对本JSR基础十分熟悉、功底十分深厚、有一定权威的人担任。他们算是JSR规范实施的“基层员工”,直接参与到JSR开发的具体工作。


类似于小组的技术优秀员工


3、规范领导者

一般是JSR的申请者/作者。


领导者的作用主要职责是指导专家组和贡献者实施,统揽本JSR全局,为它负责。主要工作有:


  • 提供JSR参考实现
  • 完成TCK测试,确保JSR合法、合规、兼容性强
  • 时刻关注JSR的进程,并且将状态同步到jcp.org的页面上。并且提供草稿review、公开review、最终文档等


类似于小组组长


执行委员会EC


执行委员会(EC),也叫最高执行委员会,在JCP中扮着决定性作用,它就像最高权力机关,掌握着每个JSR的生杀大权。该委员会的成员必须分析、评论、投票并决定批准提交给JCP的所有JSR。除此之外还得指导整个平台的发展,以及JCP本身,使其能够一直符合期望。真乃权利越大,责任越大。


类似于技术总监、CTO。总体来讲EC有这4项任务:


  1. 审核并投票批准或拒绝 新的 JSR提案
  2. 审查和投票批准或拒绝public公开审查的JSR草案
  3. 决定何时撤回JSR,比如过时的技术
  4. 合作修订JCP计划


几十年以来JCP最高执行委员会的18个席位都被美国、欧洲、日本等国家企业牢牢占据,直至2018年阿里巴巴的加入。


阿里巴巴入选JCP执行委员会EC


委员会的成员通过年度选举产生。


时间拨回到2018年5月18日,阿里巴巴成功替代恩智浦被选举为JCP最高委员会委员,任期2年(2020年的选举继续连任成功)。成为第一家加入JCP的中国企业,可谓是国人的骄傲。这是最新的EC成员表(共18个席位):

image.png


有个比较有趣的点:Alibaba以字母“A”打头可谓占尽优势,“排名第一”!

这份EC成员表单有这三大看点可以关注:


image.png

一个JSR经历的阶段


JCP管理着所有的JSR规范,每个JSR都需要按照JCP组织制定的流程进行。我以已经发布的、大家相对比较熟悉的JSR 380: Bean Validation 2.0为例,看看它的经历过程:


image.png


Final Approval Ballot最终投票结果:


image.png


从步骤上看一共8大步,从时间轴上看共历时13个月,看似时间很长。但其实像Bean Validation这种路途其实是非常非常非常顺利的,属于全部一次性过。存在那种投票了N次才最终Final甚至一直没有Final的,比如JSR 377: Desktop|Embedded Application API的路就比较坎坷: image.png


看上面的投票截图也许你会疑问,投票成员中为嘛没有Alibaba呢?看看投票日期:2017-07,而阿里巴巴于2018-05才首次成为JCP的EC成员,咱们找一个投票日期近一点看看就有阿里的身影,这是来自东方的声音 :


image.png


一个JSR从0到1需要经历这些个步骤:


  • 起草写一个JSR
  • 将此JSR提交到JCP
  • 公开早期的JSR接收review
  • 形成专家组EG(希望很大了)
  • 早期草案审查
  • 公开review
  • 拟议的最终草案
  • 最后的选票(可能经过多轮)


时间轴安排大致如下:


image.png


总之,一个JSR想要最终毕业,少则1-2年多则5年+,甚至流产。


JCP的影响力在减弱


随着2009年Oracle收购Sun公司,使得它在JCP里处于一言堂的地位 ,别人都没法玩了。2010年是个关键节点,Apache当年直接斥责Oracle滥用Java,于是“一生气”退出了JCP,至今未归。


2017年8月份,Oracle对外宣称要让Java EE更加敏捷、灵活(都是套话,就是觉得自己玩不转了想当甩手掌柜),计划交给开源社区。随后的9月份便“卖给”了Eclipse基金会,但Java商标、Java SE部分仍旧自己牢牢掌握着。所以Java EE从此不得不改名为Jakarta EE且正式脱离JCP(参考文章:从Java EE到Jakarta EE,企业版Java的发展历程)。


至此,JCP本为三大平台Java ME、Java SE、Java EE贡献JSR规范,现在仅剩Java SE(Java ME可认为基本已死)。而Java SE独属于Oracle,所以JCP的影响力逐渐步入衰落。作为开发者的我们也有切身感受:随着EJB的败下阵来,随着Spring家族的异军突起,打得Java EE都快找不着北了。


image.png

瘦死骆驼比马大,在若干年内了解JCP了解JSR规范依旧非常非常非常重要,是刚需,因为考试要考、面试会问、工作要用。


✍总结



JCP组织辉煌时通过管理的JSR规范驱动着Java的三驾马车(Java SE、EE、ME)向前发展,严格的流程规范是确保Java技术高质量、高兼容性的保证。随着Apache基金会决裂的退出,随着Spring家族的崛起,随着Java EE的光芒越来越暗淡,正所谓眼看他起高楼,眼看他宴宾客,眼看他楼塌了,JCP组织影响力也在逐日减弱。


规范永远属于“一流技术”,作为一个Java程序员建议这是每个同学的必修课,因为它决定着自己的上限。而且这不仅仅是谈资,而是实战中切实会用到知识点。


下篇文章将为你回答“Java EE是什么?”,了解它和JSR有哪些关系,为何一般说到JSR都是和Java EE相关。

相关文章
|
7月前
|
人工智能 运维 安全
产学研用全覆盖!信通院、中兴通讯、复旦大学等 12 家厂商共同成立龙蜥社区系统运维联盟(SOMA)
龙蜥社区系统运维联盟(SOMA)龙蜥社区系统运维联盟正式成立!联盟以推动系统运维技术进步、促进产学研合作为目的。
|
云安全 数据采集 安全
|
人工智能 机器人 Linux
从来也科技首次入选Gartner RPA魔力象限报告,看国产RPA未来发展
7月26日,Gartner发布了2021年《机器人流程自动化魔力象限》报告。 自2019年以来,这已是其连续第三年发布此报告。Gartner评估了全球18家领先的RPA厂商,将它们分别列入四个象限,为企业在数字化转型与智能自动化发展提供选型参考。
264 1
从来也科技首次入选Gartner RPA魔力象限报告,看国产RPA未来发展
|
运维 Cloud Native 调度
CNCF 技术监督委员会首添中国面孔,阿里巴巴李响入选全球 9 人名单
美国当地时间 2019 年 1 月 29 日,全球顶级开源社区云原生计算基金会(Cloud Native Computing Foundation,简称 CNCF)正式宣布其技术监督委员会(Technical Oversight Committee,简称 TOC)席位改选结果。
7612 0
|
机器学习/深度学习 达摩院 大数据
中国计算机学会大数据专家委员会增选,阿里李飞飞、李静远入选正式委员
中国计算机学会大数据专家委员会(以下简称CCF大专委)学术年会于2018年10月11-13日在西安陕西宾馆召开,会上公布了第八批次增选正式委员和通讯委员结果,阿里巴巴集团副总裁、达摩院数据库首席科学家李飞飞博士,阿里云计算有限公司科研技术合作总监李静远博士入选。
7650 0
|
Apache 开发者 流计算
贾扬清担任阿里巴巴开源技术委员会负责人 赋能开源成为技术战略
9月27日杭州云栖大会,阿里巴巴副总裁、阿里云智能计算平台事业部总经理贾扬清正式担任阿里巴巴开源技术委员会负责人。
|
机器学习/深度学习 存储 Cloud Native
全球顶级开源社区CNCF技术监督委员会首添中国面孔,阿里工程师入选全球9人名单
美国当地时间2019年1月29日,全球顶级开源社区云原生计算基金会(Cloud Native Computing Foundation,简称CNCF)正式宣布其技术监督委员会(Technical Oversight Committee,简称TOC)席位改选结果。
1783 0

相关实验场景

更多
下一篇
DataWorks