更新时间:2023-03-23 20:22
JCP(Java Community Process)是一个开放的国际组织,主要由Java开发者以及被授权者组成,职能是发展和更新。
技术规范
Java技术规范、参考实现(RI)、技术兼容包(TCK)。Java技术和JCP两者的原创者都是SUN计算机公司。然而,JCP已经由SUN于1995年创造Java的非正式过程,演进到如今有数百名来自世界各地Java代表成员一同监督Java发展的正式程序。
JCP维护的规范包括J2ME、J2SE、J2EE,XML,OSS,JAIN等。组织成员可以提交JSR(Java Specification Requests),通过特定程序以后,进入到下一版本的规范里面。
所有声称符合J2EE规范的J2EE类产品(应用服务器、应用软件、开发工具等),必须通过该组织提供的TCK兼容性测试(需要购买测试包),通过该测试后,需要缴纳J2EE商标使用费。两项完成,即是通过J2EE认证(Authorized Java Licensees of J2EE)。
在近日举行的第13届JavaOne开发者大会上,开源和Java开发者们一直在向Java的管理组织——JCP标准组织发出呼吁:你应该更加开放一些,不要仅仅聆听那些大厂商的意见。
在JavaOne的一个专题讨论会上,与会者讨论了关于JCP、开源和标准制定的问题,与会者表达了他们对JCP的失望之情,认为其在决定对Java制定一个新标准的时候,应该将大众的利益放在首位。
开发者呼吁:Java命运处于危急
在今年3月份,著名的Spring之父Rod Johnson曾呼吁JCP进行改革,现在他已经不再是孤军奋战。现在和他站在同一条阵线上的还有Sun公司最近任命的“开源软件大使”Dalibor Topic,以及来自业界新成立的最大Java用户组之一——Paris JUG的代表。
他们对JCP的主要抱怨包括:
负有法律责任的成员条款要求;
缺乏透明化,具有喜欢关起门开会的文化习惯;
未能开放基本的Java参考实现和兼容性测试工具;
个人代表发言权小:在选举执行委员的管理系统中,在31个代表中只有3个是个人代表。其它则代表着那些大厂商的利益,其中包括Google、IBM、摩托罗拉、诺基亚、甲骨文、SAP等等。
在Topic看来,Java的未来正处于十分危机的时刻,Java正面临一种风险:丧失来自个人开发者和项目的创新,因为JCP太过于依赖那些大厂商了。JCP已经成为一个被那些大厂商所统治的标准组织,因为这些大厂商对这个标准组织的建立曾起了至关重要的作用,并且也确实推动了Java市场的壮大。
Topic表示,从那些大厂商在支持开源上进度不一样可以看出,它们更加关注的是自身厂商的利益。
在Topic看来,“JCP需要进行一次根本上的改变,JCP现在的工作方式还停滞在10年以前的状态,只为少数商业厂商的利益服务。”
技术被创建的环境正在不断发生变化,人们希望对这个平台的未来发展发挥有益的作用,而不是仅仅站在外面观望。
Topic的批评对Sun公司来说是非常中肯的。Sun公司在1998年创建了JCP组织,每一个加入该组织的厂商都必须同时与其签订一个法律合约。Topic是sun公司特别看重的人,希望通过他与开源开发者建立起一座沟通的桥梁,这就是为什么Sun最近将其任命为Sun的开源软件“大使”的原因。
更多个人的参与可能意味着会出现更少由厂商领导的Java规范请求JSR,JSR是一个最终版Java应用程序编程接口的前身。
技术标准化:能否适合需要?
实体Bean是企业Java Bean(EJB)的一种,是JCP的Java企业版规范的一部分,在今年3月份,Rod Johnson曾对它的推出进行了炮轰。他认为,实体Bean的提出忽视了此前的技术,因为它对象关系映射(ORM)至少被耽误了六年的时间,导致了数十亿的投资浪费。虽然Johnson并没有对此进行详细解释,但是他的话让我们回忆起曾经的一个时代,那时候人们普遍对实体Bean的意见很大,认为使用它编程给开发者带来了不必要的麻烦。
最近也曾经发生了一次激烈的争论,即JCP的JSR 277Java模块系统与现有的OSGi之间互相重叠的问题。
在最近的JCP专题讨论会上,据Sun公司的Alex Buckley表示,现在的JSR 277将会非常简单,不会覆盖所有使用情况。根据负责实现Java 编程语言思想和技术完整性的Buckley表示,Java标准版的下一个实现版本JDK 7将允许开发者使用OSGi模块。
Johnson表示,在把一项技术定为一个标准和允许技术变成一个事实标准之间需要达到一种平衡。如果市场向前发展了,前者更难于修改,并会为遵循这个标准的开发者带来负担。对于什么时候该对一项技术实施标准化这个问题,他表示,“这儿有一个根本性的问题,即一个技术是否能适合需要。”
对于JCP的所有错误,批评家们并不赞成推倒重来。Topic认为,JCP的建立可以让人们聚集在一起。同样,Johnson也认为在JCP已经具备了影响其发生改变的条件,例如现在采取投票和经常召开会议等做法。
要自由不要束缚
不过Johnson认为,真正的问题是JCP的成员没有来真正使用这些已有的体系。Johnson表示,“向Sun发牢骚已经变成了一件非常流行的事情,从根本上来说,这并不是Sun的错误。它们已经做了自己能做的事情来让用户参与。用户需要变得更加主动一些。”
那么为什么没有更多的个人开发者加入进来?某些问题是很实际的,例如需要他们投入时间和金钱,另外还有一些法律问题。
来自SITA ATS的技术设计师Stephen Colebourne表示,他希望看到
个人代表的数量能够被保证。个人代表可以在他们工作过程中得到应有的支持,得到来自那些企业成员的支持。Java规范请求的领导和Java用户组织SouJava的领导表示,在这个基础之上,可以保证执行委员席位的一半向个人开放。
同样还有一个观念上的挑战。Paris JUG的创建者Antonio Goncalves在去年8月份开始领导一个JSR的制定,他抱怨说外部开发者加入进来的现象不明显。人们认为JCP是一个属于像IBM或Red Hat等大公司的地方。
即时个人能加入进来,他们能够或应该担任什么角色也非常不明确。Goncalves表示,“我作为一个个体成员加入进来,但是我不知道我将要做什么,我不知道它们需要一个专家成员做什么。”
同时还有一个交流的问题。Goncalves提到,成员通过发送PDF格式文档的电子邮件进行交流,而不是通过wiki方式,这使得对规范进行评论非常困难且非常缓慢。还有,不同的项目之间也不互相交流,Goncalves发给其它专家成员的电子邮件也得不到答复。不过据最近当选的JCP主席Partrick Curran表示,在未来3个星期内将部署一个wiki来加速交流的速度。
对于个体成员来说,另一个重大障碍是Java规范参与约定,Topic和Goncalves认为它限制了开发者对JCP工作步骤和会议发表看法的机会。同时这也让那些大厂商们可以整日无所事事,安全的互相暴露它们各自的知识产权,而不用担心引起外界关注。在参加会议的JCP成员之间的信息披露的机密性方面,JSPA成为一个暧昧性的条款。
Goncalves半开玩笑的表示,“或许你阅读了JSPA也不会明白。你不知道它需要你做什么,不知道你可以在博客中些什么,它们会告诉你:在JCP中处理JCP中发生的事情,”。
“我们不喜欢必须签署一个长达20页的法律合约,因为我们不希望被束缚于牢笼中,我更希望推翻这个牢笼,”Topic表示。他认为,在法律上作文章已经是过去的企业时代的做法,而现在是开源的时代。
Topic争论的另一个重要内容是关于重要的兼容性测试工具TCKs开源的问题,它让开发者可以对Java实现进行自我测试和验证。每一个JSR都有一个有规范制定者创建的TCK,并且包含了开源界所不喜欢的知识产权条款。
但是TCK创建起来非常昂贵和困难,因此知识产权拥有者会不情愿放弃他们的权利。TCK许可经常被通过,这意味着这儿有一个既定利益的问题。Santos表示,如果没有人针对TCK收费,对于JCP来说将会变得更加美好。
是时候呼吁JCP改革了
事实证明,开放TCK和Java测试工具正是Sun和开源社区之间的冲突之源。Curran表示在执行委员会上对此已经进行过认真的讨论,但是无果而终。
在改革中个人会员面临的真正挑战是他们必须唤醒JCP关注共同利益的本能。
在Topic看来,要想让JCP真正改革需要人们继续不断的进行游说,就如同以前呼吁Java开源一样。Topic表示,“JCP需要进行变革,以引导Java走向一个更美好的未来。”