jcp
jcp
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參考實現和兼容性測試工具;
在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走向一個更美好的未來。”