Sun的JSR 294被叫停 應(yīng)用服務(wù)器押寶OSGi
本文來(lái)自InfoQ中文站,原文標(biāo)題:《Bundle.update:Java EE中的OSGi、JSR 294被叫停》。http://www.infoq.com/cn/news/2010/01/state-of-osgi
自從上次的bundle.update發(fā)布以來(lái),在OSGi與模塊化Java領(lǐng)域中發(fā)生了一系列值得我們關(guān)注的事件:JSR 294被叫停、Enterprise Expert Group發(fā)布了第4個(gè)草案、WebSphere上可以直接運(yùn)行OSGi應(yīng)用以及即將到來(lái)的OSGi大會(huì)對(duì)預(yù)先報(bào)名者提供折扣優(yōu)惠,同時(shí)演講人招募的時(shí)間即將截止。
JSR 294被叫停
Sun領(lǐng)導(dǎo)的兩個(gè)模塊化JSR(分別是JSR 294——Java語(yǔ)言改進(jìn)的模塊化支持,以及JSR 277——Java模塊化系統(tǒng))都已被叫停。這樣就剩下JCP批準(zhǔn)的模塊化系統(tǒng)JSR 291(雖然基于有些古老的OSGi 4.1)仍活躍在各種系統(tǒng)中了,其中也包括Sun新近發(fā)布的GlassFish v3應(yīng)用服務(wù)器。
我們尚不清楚JSR 294為何會(huì)被叫停(JSR 277已經(jīng)被叫停一年了)。小組收到的上一封郵件表明:
除了實(shí)現(xiàn)JSR以外,JDK 7還將提供特定于實(shí)現(xiàn)的特性,比如classpath(沒(méi)有任何一個(gè)JSR提過(guò)這部分內(nèi)容)以及Jigsaw模塊化系統(tǒng)。
JDK模塊化使用了Jigsaw模塊化系統(tǒng)。模塊化的可見(jiàn)性是由一個(gè)原型化的模塊info.java文件控制的,這在未來(lái)可能會(huì)發(fā)生變化。模塊的私有訪問(wèn)實(shí)際上并沒(méi)有在模塊化中使用到,這部分主要是起引導(dǎo)作用的。
關(guān)于Jigsaw的進(jìn)一步討論將在Jigsaw-dev列表中展開(kāi)。
簡(jiǎn)單模塊系統(tǒng)自從被提出后就沒(méi)有什么新進(jìn)展,盡管版本的事情是由JSR 294控制的,但事實(shí)卻并非如此,因?yàn)槠溟_(kāi)發(fā)過(guò)程是在jigsaw-dev郵件列表上進(jìn)行的,而該郵件列表卻游離于JSR 294專(zhuān)家組的郵件列表之外。種種事實(shí)表明Jigsaw采取了特定于實(shí)現(xiàn)的特性來(lái)模塊化JDK,雖然這本身是非常好的,但卻無(wú)法實(shí)現(xiàn)編寫(xiě)一次,到處運(yùn)行的模塊??赡芤院筮@都不算什么大事了,因?yàn)镴DK 7最早也要到2011年才會(huì)發(fā)布,應(yīng)用服務(wù)器已經(jīng)將寶壓在了OSGi上了。
更新:在本新聞發(fā)布后,Alex Buckley證實(shí)這種停止實(shí)際上是自動(dòng)的,緣于提案發(fā)布的時(shí)間而不是說(shuō)項(xiàng)目就停止開(kāi)發(fā)了。
WebSphere、GlassFish、DM Server以及基于OSGi的服務(wù)器
Kirk Knoernschild發(fā)文表明一些企業(yè)正在構(gòu)筑自己的OSGi,WebSphere V7 alpha最近就聲明可以將OSGi bundle部署到WebSphere中(雖然從2006年開(kāi)始WebSphere server就已經(jīng)運(yùn)行在OSGi內(nèi)核上了)。
最近發(fā)布的GlassFish v3也將OSGi運(yùn)行時(shí)引入到了Sun的Java應(yīng)用服務(wù)器中。盡管GlassFish還不支持直接運(yùn)行本地的OSGi bundle,但我們可以將其置于Equinox和Felix上,可以在運(yùn)行著的GlassFish服務(wù)器上同時(shí)運(yùn)行其他bundle。
SpringSource的dm Server 2.0.0.M6已經(jīng)可以運(yùn)行OSGi web bundle了,借助于其bundle倉(cāng)庫(kù),dm Server指引著企業(yè)運(yùn)行時(shí)的前進(jìn)方向。
Maven 3與Tycho構(gòu)建、倉(cāng)庫(kù)以及Eclipse Marketplace
隨著Maven 3(其Tycho可以構(gòu)建基于OSGi的應(yīng)用)發(fā)布日期的臨近,它將成為Eclipse構(gòu)建EGit以及Tigerstripe的***。
相對(duì)于P2倉(cāng)庫(kù)來(lái)說(shuō),Maven倉(cāng)庫(kù)的查詢(xún)能力受到了人們的質(zhì)疑,但事實(shí)上,Maven倉(cāng)庫(kù)也可以進(jìn)行查詢(xún)。有事實(shí)可以證明,Maven倉(cāng)庫(kù)是整個(gè)Maven構(gòu)建過(guò)程中最為成功的一個(gè)方面,它可以根據(jù)依賴(lài)關(guān)系自動(dòng)下載所需的程序庫(kù)。從Pack200壓縮這個(gè)角度來(lái)看,P2可能更加高級(jí)一些,它還可以更新非JAR組件,然而Mave的über倉(cāng)庫(kù)在廣度上輕而易舉地就超越了Eclipse P2倉(cāng)庫(kù)。不僅如此,P2倉(cāng)庫(kù)經(jīng)常被切分成多個(gè)獨(dú)立的倉(cāng)庫(kù),而Maven則具有一個(gè)所有項(xiàng)目都可共享的全局倉(cāng)庫(kù)。
最近,Eclipse基金會(huì)發(fā)布了Eclipse Marketplace,它源自于成功的Eclipse插件中心2站點(diǎn)。最初建立EPIC的目的是提供一個(gè)中央下載站點(diǎn),為那些不在Eclipse.org站點(diǎn)上的流行插件提供下載服務(wù),比如Findbugs和Checkstyle。
Eclipse基金會(huì)在2006年購(gòu)買(mǎi)了EPIC的使用權(quán),但后來(lái)就基本沒(méi)再動(dòng)過(guò)它,直到最近開(kāi)發(fā)出了Eclipse Marketplace后這一點(diǎn)才有所改觀。在這段時(shí)間內(nèi),由于缺乏統(tǒng)一的下載結(jié)構(gòu)以及從Update Site到P2的轉(zhuǎn)變極大地限制了中央下載站點(diǎn)(用于搜索及下載插件)的發(fā)展勢(shì)頭。
除了插件以外,新的Marketplace還托管了RCP應(yīng)用(既有商業(yè)的,也有免費(fèi)的)以及培訓(xùn)與咨詢(xún)供應(yīng)商。
***要說(shuō)的是IntelliJ 9的發(fā)布,其社區(qū)版與商業(yè)版都提供了對(duì)OSGi應(yīng)用的支持。由于該***Java IDE可以在本地構(gòu)建OSGi應(yīng)用,同時(shí)對(duì)OSGi應(yīng)用又提供了巨大的支持,開(kāi)發(fā)模塊化Java應(yīng)用變得***的簡(jiǎn)單。
OSGi 4.2 EEG草案發(fā)布
最近Enterprise Expert Group發(fā)布了第4個(gè)草案。EEG的目的是定義一套規(guī)范以便JEE風(fēng)格的應(yīng)用可以作為本地bundle運(yùn)行在OSGi運(yùn)行時(shí)中。
現(xiàn)在Web應(yīng)用可以作為bundle使用了。這樣不僅使得OSGi運(yùn)行時(shí)能夠托管WAR(與Jetty之類(lèi)的服務(wù)器一樣),同時(shí)WAR還可以在運(yùn)行時(shí)中擁有版本依賴(lài)。Pax Web早就可以實(shí)現(xiàn)這一點(diǎn)了,但現(xiàn)在形成了標(biāo)準(zhǔn),任何OSGi運(yùn)行時(shí)都可以使用了。
OSGi框架中對(duì)bundle的JMX控制,對(duì)于核心OSGi服務(wù)的標(biāo)準(zhǔn)化綁定,比如Package Admin以及Cofniguration Admin等等。
事務(wù)已經(jīng)作為JTA綁定的一部分,這樣就可以從OSGi服務(wù)中獲取事務(wù)了。
JNDI訪問(wèn)既可以從OSGi中獲取,也可以在OSGi服務(wù)間得到。
兼容于OSGi的JDBC工廠(與Class.forName()不同)。
憑借這些服務(wù),企業(yè)應(yīng)用可以運(yùn)行在OSGi環(huán)境中而無(wú)需完整的JEE棧。盡管JEE 6已經(jīng)發(fā)布,但它有可能是***獲得批準(zhǔn)的幾個(gè)JSR之一,Mark Reinhold如是說(shuō):
Q:現(xiàn)在為何不開(kāi)啟一個(gè)closures JSR,讓專(zhuān)家組完成提案工作?
#t#A:到目前為止Project Coin還沒(méi)有一個(gè)JSR,原因與此類(lèi)似,直到JCP執(zhí)行委員會(huì)內(nèi)部的爭(zhēng)論平息之后才有可能提出新的Java SE JSR。
即將到來(lái)的OSGi大會(huì)
倫敦將于今年1月23日舉辦OSGi DevCon London,同時(shí)還將舉辦JAX London?,F(xiàn)在,大會(huì)的議程已經(jīng)確定下來(lái)了,Kirk Knoernschild將進(jìn)行主題演講。
Santa Clara將于今年的3月22——25日舉辦OSGi DevCon,同時(shí)還有 EclipseCon 2010。Robert “Bob大叔” Martin將進(jìn)行主題演講。目前還在招募演講者,如果你有這方面的想法,請(qǐng)遞交你的提案。