ylbtech-杂项-Java:JCP
JCP(Java Community Process) 是一个开放的国际组织,主要由Java开发者以及被授权者组成,职能是发展和更新。
1、
中文名:jcp
外文名:JCP(Java Community Process)
定    义:国际组织
职    能:发展和更新
组成人员:Java开发者以及被授权者
1.返回顶部
1、

简介

 

定义

 

技术规范

Java技术规范、参考实现(RI)、技术兼容包(TCK。Java技术和JCP两者的原创者都是SUN计算机公司。然而,JCP已经由SUN于1995年创造Java的非正式过程,演进到如今有数百名来自世界各地Java代表成员一同监督Java发展的正式程序。
 

规范组成

JCP维护的规范包括J2MEJ2SEJ2EEXML,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制定一个新标准的时候,应该将大众的利益放在首位。
 

进行改革

开发者呼吁: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改革了
事实证明,开放TCKJava测试工具正是Sun和开源社区之间的冲突之源。Curran表示在执行委员会上对此已经进行过认真的讨论,但是无果而终。
在改革中个人会员面临的真正挑战是他们必须唤醒JCP关注共同利益的本能。
在Topic看来,要想让JCP真正改革需要人们继续不断的进行游说,就如同以前呼吁Java开源一样。Topic表示,“JCP需要进行变革,以引导Java走向一个更美好的未来。”
2、
2.返回顶部
 
3.返回顶部
 
4.返回顶部
 
5.返回顶部
0、
1、
2、
 
6.返回顶部
 
作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

杂项-Java:JCP的更多相关文章

  1. 杂项-Java:jar 包与 war 包介绍与区别

    ylbtech-杂项-Java:jar 包与 war 包介绍与区别 1.返回顶部 1. 做Java开发,jar包和war包接触的挺多的,有必要对它们做一个深入的了解,特总结整理如下: 1.jar包的介 ...

  2. 杂项-Java:Thymeleaf

    ylbtech-杂项-Java:Thymeleaf Thymeleaf is a modern server-side Java template engine for both web and st ...

  3. 杂项-Java:JBoss

    ylbtech-杂项-Java:JBoss 是一个基于J2EE的开放源代码的应用服务器. JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用.JBoss是一个管理EJB的容器和服务器,支持E ...

  4. 杂项-Java:FreeMarker

    ylbtech-杂项-Java:FreeMarker 1.返回顶部 1. FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页.电子邮件.配置文件.源 ...

  5. 杂项-Java:Druod Monitor

    ylbtech-杂项-Java:Druid Monitor 1.返回顶部 1. https://www.cnblogs.com/wanghuijie/p/druid_monitor.html 2. 2 ...

  6. 杂项-Java:MyBatis

    ylbtech-杂项-Java:MyBatis 1.返回顶部 1. MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundatio ...

  7. 杂项-Java:JSP

    ylbtech-杂项-Java:JSP 1.返回顶部 1. JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是由Sun Micros ...

  8. 杂项-Java:Tomcat

    ylbtech-杂项-Java:Tomcat 1.返回顶部 1. Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目, ...

  9. 杂项-Java:Struct

    ylbtech-杂项-Java:Struct Struts是Apache软件基金会(ASF)赞助的一个开源项目.它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目.它通过 ...

随机推荐

  1. Bootstrap——优秀的开源前端框架

    Bootstrap是著名的社交网站.微博的先驱Twitter在2011年8月推出的开源WEB前端框架,集合CSS和HTML,使用了最新的浏览器技术,为快速WEB开发提供了一套前端工具包,包括布局.网格 ...

  2. ThinkPad.E440_FN键反了

    1.一直不知道,为何我的 FN键反了(Fn+F1 才是F1的功能),想改过来.查到是 BIOS中改,但是 BIOS里面没有 那些个修改的选项,于是 还原了BIOS的设置,于是出问题了... 2.问题1 ...

  3. JAVA中的枚举使用总结

    概念 在某些情况下,一个类的对象时有限且固定的,如季节类,它只有春夏秋冬4个对象这种实例有限且固定的类,在 Java 中被称为枚举类; 理解 类里面定义了固定数量的实例,类名如同命令空间 代码 pac ...

  4. codeforces 820A. Mister B and Book Reading 解题报告

    题目链接:http://codeforces.com/problemset/problem/820/A 坑爹题目,坑爹题目,坑爹题目....汗 = =!  后台还110个 test 有个地方需要注意下 ...

  5. 图片qq浏览器不显示,微信显示问题原因

    1.qq浏览器关闭云加速就可以了

  6. django-simple-captcha 使用 以及添加动态ajax刷新验证

    参考博客:http://blog.csdn.net/tanzuozhev/article/details/50458688?locationNum=2&fps=1 参考博客:http://bl ...

  7. Linux find 命令大全

    find 含义: 顾名思义,是从来查找满足条件的内容. 从指定目录,递归的查找满足条件的内容. 格式: find [查询目录] [参数] [匹配方式] 文件操作: -name : 查找文件名  ( f ...

  8. 【Hive】数据去重

    实现数据去重有两种方式 :distinct 和 group by 1.distinct消除重复行 distinct支持单列.多列的去重方式. 单列去重的方式简明易懂,即相同值只保留1个. 多列的去重则 ...

  9. 深入理解c/c++ 内存对齐

    内存对齐,memory alignment.为了提高程序的性能,数据结构(尤其是栈)应该尽可能地在自然边界上对齐.原因在于,为了访问未对齐的内存,处理器需要作两次内存访问:然而,对齐的内存访问仅需要一 ...

  10. 多线程实现方式---实现Runnable接口

    多线程实现方式---实现Runnable接口 一个类如果需要具备多线程的能力,也可以通过实现java.lang.Runnable接口进行实现.按照Java语言的语法,一个类可以实现任意多个接口,所以该 ...