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)。
JCP改革
呼吁
在近日举行的第13届
JavaOne开发者大会上,开源和
Java开发者们一直在向Java的管理组织——JCP标准组织发出呼吁:你应该更加开放一些,不要仅仅聆听那些大厂商的意见。
专题讨论
在
JavaOne的一个专题讨论会上,与会者讨论了关于JCP、开源和标准制定的问题,与会者表达了他们对JCP的失望之情,认为其在决定对
Java制定一个新标准的时候,应该将大众的利益放在首位。
进行改革
在今年3月份,著名的
Spring之父Rod Johnson曾呼吁JCP进行改革,现在他已经不再是孤军奋战。现在和他站在同一条阵线上的还有Sun公司最近任命的“开源软件大使”Dalibor Topic,以及来自业界新成立的最大Java用户组之一——Paris JUG的代表。
条款要求
主要
他们对JCP的主要抱怨包括:
负有法律责任的成员条款要求;
缺乏透明化,具有喜欢关起门开会的文化习惯;
个人代表发言权小:在选举执行委员的管理系统中,在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走向一个更美好的未来。”