可擴(kuò)展GlassFish v3的JavaEE 6平臺
Java平臺——具備可擴(kuò)展GlassFish應(yīng)用服務(wù)器v3的JavaEE6的架構(gòu)師Jerome Dochez和工程師Mahesh Kannan詳細(xì)介紹了即將推出的GlassFish v3,該產(chǎn)品現(xiàn)在可作為預(yù)覽版下載。
對于那些過去四年里一直處于沉睡狀態(tài)的人來說,GlassFish是由Sun公司贊助開發(fā)的JavaEE開源應(yīng)用服務(wù)器。GlassFish v3是對v2版本的主要性能的重新詮釋。它操作簡單,具有基于OSGi的可擴(kuò)展核心,帶有一個(gè)網(wǎng)頁和腳本容器以及一個(gè)用于配置和管理的控制臺。你可以在來自NetBeans 6.7的GlassFish v3上進(jìn)行開發(fā)和部署。GlassFish v3應(yīng)用服務(wù)器與JavaEE6一道組成了服務(wù)器端Java平臺的基石。
GlassFish是JavaEE引用執(zhí)行,Douchez一開始就解釋了JavaEE 6的性能怎樣一步步引導(dǎo)他們走向了GlassFish。
配置文件
配置文件主要是有關(guān)JavaEE技術(shù)中最重要開發(fā)性能的內(nèi)容。***類就是Web Profile。未來的配置文件將在Java Community Process中定義。目的是推動同類程序員的工作效率——也就是說提高使用服務(wù)應(yīng)用內(nèi)部注釋的能力而不是編寫復(fù)雜的XML文件。
由于GlassFish是引用型執(zhí)行,它必須用JavaEE 6為不同的配置文件提供不同版本的GlassFish。這種制約增加了為GlassFish3采用模塊化結(jié)構(gòu)的傾向。
簡化開發(fā)
業(yè)界一直關(guān)注如何通過JavaEE簡化開發(fā)過程。JavaEE 6通過使用所有網(wǎng)絡(luò)API,減少或消除部署描述符的需求,允許第三方庫自主注冊,簡化數(shù)據(jù)包,提供用于RESTful網(wǎng)絡(luò)服務(wù)的JAX-RS以及從整合各個(gè)技術(shù)這幾個(gè)方面來解決大家在開發(fā)方面的顧慮。
嵌入性
你可以使用簡單的EJB容器作為JavaEE 6應(yīng)用內(nèi)部的嵌入式容器。此外整個(gè)GlassFish v3應(yīng)用都是可嵌入的,因此我們可以通過其API啟動或停止GlassFish。
GlassFish v3向所有的Java虛擬機(jī)技術(shù)開放,特別是JRuby/Rails。Ruby程序員的一個(gè)優(yōu)勢在于他們不需要將Ruby應(yīng)用部署成WAR File。相反,GlassFish v3可以直接援引JRuby注釋并在無需修改的情況下,本地部署Rails應(yīng)用。除了具備多個(gè)運(yùn)行時(shí)的部署選項(xiàng)以外,GlassFish v3還提供JRuby運(yùn)行時(shí)池的動態(tài)調(diào)整。因此,GlassFish能在高負(fù)荷的時(shí)候運(yùn)行良好,而在低負(fù)荷的時(shí)候能以最少的資源消耗運(yùn)行。
有了這個(gè)新版本,你就可以通過其API擴(kuò)展GlassFish的功能,并通過Admin 控制臺發(fā)布這些功能。此外,你還可以以動態(tài)的方式向平臺添加功能而不需要重啟。擴(kuò)展性可以通過API來獲得,它可以替代或擴(kuò)展性能。OSGi也提供了能用來擴(kuò)展OSGi運(yùn)行時(shí)的擴(kuò)展性能。
GlassFish v3中模塊化設(shè)計(jì)的一個(gè)方面就是基于服務(wù)的架構(gòu)。服務(wù)由協(xié)議定義,協(xié)議的執(zhí)行相對而言容易一些。基于服務(wù)的架構(gòu)也允許基于使用模式的延遲加載。
模塊性
為GlassFish v3擴(kuò)展功能要求有新的,模塊化的架構(gòu)。GlassFish v3的模塊化性能基于OSGi。OSGi基于服務(wù)的架構(gòu)使得這些組件可以動態(tài)發(fā)現(xiàn)彼此并進(jìn)行協(xié)作。新架構(gòu)的微內(nèi)核是很小的。因此GlassFish v3是輕量級的部署平臺,它可以快速被啟動且占用的資源很少,因?yàn)樗鼤褂醚舆t加載來啟動那些僅僅被要求使用的服務(wù)。例如,如果你的應(yīng)用不使用EJB容器,它就不會被加載。
許多小模塊可以被視為大量的機(jī)動部件,而GlassFish v3按照170束的量傳輸。即便是擁有這樣數(shù)量的模塊,GlassFish的啟動也是很快的。技術(shù)人員希望能將數(shù)量從170減少到100。
開發(fā)項(xiàng)目的時(shí)候需要強(qiáng)大的創(chuàng)建工具,這主要考慮到傳輸?shù)膹?fù)雜性。GlassFish團(tuán)隊(duì)使用的是Maven來簡化創(chuàng)建過程,該工具是Apache用于Java項(xiàng)目的創(chuàng)建管理器。
嵌入式API
GlassFish v3具備嵌入式API,可以用它們來啟動和配置應(yīng)用服務(wù)器。這意味著你可以用Java平臺,JavaSE應(yīng)用來啟動和停止GlassFish容器。開發(fā)團(tuán)隊(duì)對GlassFish應(yīng)用進(jìn)行測試的時(shí)候,他們使用的是Maven中的技巧,Maven本身就是一個(gè)JavaSE應(yīng)用。可以用Maven制造一個(gè) GlassFish v3插件來進(jìn)行測試。