|
來源:名易軟件 由于開源軟件特殊的開發(fā)方式,使得這個(gè)領(lǐng)域真可謂百花齊放,以至于究竟有多少種開源軟件,恐怕沒有多少人能說清楚。本報(bào)評(píng)析實(shí)驗(yàn)室在開源專家的意見的基礎(chǔ)上對(duì)其中頗有影響力的企業(yè)級(jí)開源軟件進(jìn)行了整理,以供讀者參考。Linux操作系統(tǒng)RedHatRedHatEnterpriseLinux(RHEL)作為紅帽家族的服務(wù)器成員,提供了功能較為強(qiáng)大的操作系統(tǒng)和企業(yè)架構(gòu)方案。它使用開放源碼的Linux2.6內(nèi)核,使得平臺(tái)穩(wěn)定性和成熟性較以往有所增強(qiáng)。RHEL采用了大量成熟的開放源代碼技術(shù),如SELinux和Firefox等,同時(shí)特別針對(duì)桌面應(yīng)用進(jìn)行了改善,能較好地滿足企業(yè)安全性和兼容性的要求。系統(tǒng)在新文件系統(tǒng)、即插即用硬件設(shè)備的支持以及用戶和服務(wù)管理方面較以前版本有了顯著的提高。RHEL的缺點(diǎn)是帶有一些不標(biāo)準(zhǔn)的內(nèi)核補(bǔ)丁,使得它難以按照用戶的需求進(jìn)行定制。RedFlagRedFlagLinuxDesktop5.0(產(chǎn)品代號(hào)為Apatite)是一個(gè)穩(wěn)定、易用的個(gè)人桌面系統(tǒng),系統(tǒng)安裝過程簡(jiǎn)單直觀,提供了較完善的系統(tǒng)管理工具和圖形圖像、多媒體應(yīng)用以及網(wǎng)絡(luò)應(yīng)用方面的多種應(yīng)用軟件。系統(tǒng)采用Linux2.6內(nèi)核,為用戶提供了一個(gè)比較穩(wěn)定而且高效的使用環(huán)境。系統(tǒng)能夠較好地支持主流PC硬件設(shè)備和目前發(fā)展迅速的藍(lán)牙通信技術(shù),能較好地支持藍(lán)牙設(shè)備和系統(tǒng)之間多種數(shù)據(jù)的無線互傳。不足之處在于系統(tǒng)在桌面的美觀程度、常用工具的易用性以及聯(lián)機(jī)幫助和用戶手冊(cè)漢化等方面還需進(jìn)一步加強(qiáng)。拓林思拓林思(Turbolinux)對(duì)產(chǎn)品的穩(wěn)定性、高效性以及安全性方面進(jìn)行了特殊加強(qiáng),Turbolinux10一直嚴(yán)格遵循該領(lǐng)域的相應(yīng)標(biāo)準(zhǔn)CGL(carrier_grade_linux),通過了LSB1.3標(biāo)準(zhǔn)的完整測(cè)試,可以很方便地移植符合LSB1.3標(biāo)準(zhǔn)的軟件。集成了完善的系統(tǒng)級(jí)開發(fā)環(huán)境和高效、穩(wěn)定的開發(fā)工具,開發(fā)型用戶不需額外購(gòu)買即可實(shí)現(xiàn)。同時(shí)該產(chǎn)品的易用性顯著增強(qiáng),可以為企業(yè)級(jí)數(shù)據(jù)庫和大型商業(yè)軟件提供高效的系統(tǒng)平臺(tái),支持24×7不間斷的全天候工作方式。基于對(duì)Samba、NFS等各種技術(shù)的完全支持,可以與現(xiàn)有的各種操作系統(tǒng)實(shí)現(xiàn)互聯(lián)互通,協(xié)同工作,不但保護(hù)了用戶的前期投資,同時(shí)也降低了系統(tǒng)整體部署的成本。共創(chuàng)共創(chuàng)桌面Linux(Co-CreateDesktopLinux)2005是一個(gè)適合普通用戶使用的桌面操作系統(tǒng),它為用戶提供了較穩(wěn)定、高效的計(jì)算機(jī)使用環(huán)境。系統(tǒng)采用開放源碼的Linux2.6內(nèi)核,提升了Linux作為桌面應(yīng)用的性能。采用類Windows的界面風(fēng)格和鼠標(biāo)與快捷鍵操作方式,桌面與菜單簡(jiǎn)潔實(shí)用,方便了用戶操作。系統(tǒng)還提供了較為豐富易用的系統(tǒng)管理工具以及瀏覽器、電子郵件、網(wǎng)絡(luò)聊天工具、多媒體軟件等多種應(yīng)用軟件,采用了具備中英文混合輸入及智能聯(lián)想輸入能力的“共創(chuàng)中文輸入法”,形成了較完整的辦公應(yīng)用環(huán)境。不足之處是系統(tǒng)在硬件設(shè)備的支持能力、常用大型軟件的支持能力和X窗口的穩(wěn)定性等方面還需進(jìn)一步加強(qiáng)。Java版應(yīng)用服務(wù)器JBossJBoss是目前最有影響力的開源應(yīng)用服務(wù)器,它幾乎成了開源軟件的旗艦產(chǎn)品。和出色的同類商業(yè)軟件BEA的Weblogic、IBM的Websphere相比,JBoss的優(yōu)勢(shì)在于具有良好的性價(jià)比。從出現(xiàn)至今,它已經(jīng)從一個(gè)EJB容器發(fā)展成為一個(gè)基于J2EE的Web操作系統(tǒng)(OperatingSystemforWeb),它體現(xiàn)了J2EE規(guī)范中最新的技術(shù)。不僅如此,它的技術(shù)創(chuàng)新能力還有影響和引領(lǐng)規(guī)范的趨勢(shì)。它具有良好的運(yùn)行效率和可靠性,已經(jīng)得到越來越多的J2EE應(yīng)用開發(fā)者的青睞。JBoss是當(dāng)前最流行的開源J2EE應(yīng)用服務(wù)器之一,它遵循LGPL協(xié)議進(jìn)行發(fā)布。JBoss安全符合J2EE1.4的標(biāo)準(zhǔn)規(guī)范,提供EJB、JMS、Servlet、JSP、JMX、JNDI等規(guī)范的支持。JBoss以其優(yōu)秀的基于JMX微內(nèi)核在J2EE應(yīng)用服務(wù)器領(lǐng)域獨(dú)樹一幟,其體系結(jié)構(gòu)分為:微內(nèi)核層微內(nèi)核層采用基于JMX的體系架構(gòu),它提供對(duì)輕量級(jí)組件模型的熱部署和高級(jí)類裝載和全生命周期管理的特性。服務(wù)層在微內(nèi)核層之上采用了面向服務(wù)的體系結(jié)構(gòu)。它由一系列服務(wù)組成,包括事務(wù)、消息、郵件、安全、連接池等。服務(wù)可以采用熱插拔的方式進(jìn)行部署,而無需停止整個(gè)服務(wù)器。同時(shí)也可以定制自己的服務(wù)并將服務(wù)打包成SAR,進(jìn)行獨(dú)立的部署,通過這種機(jī)制,使得JBoss更易于靈活地進(jìn)行擴(kuò)展。應(yīng)用層JBoss通過提供統(tǒng)一容器服務(wù),為應(yīng)用中的對(duì)象提供各種互通的行為能力。同時(shí)JBoss還支持AOP的方式,以透明化的方式簡(jiǎn)化應(yīng)用開發(fā)的過程。JBoss應(yīng)用服務(wù)器(AS)4.0通過了J2EE1.4的認(rèn)證。JBossAS4.0極大地簡(jiǎn)化了Java中間件開發(fā),使用更加簡(jiǎn)單的、更加易于管理的POJO,這種新的模式轉(zhuǎn)變?yōu)橥苿?dòng)整個(gè)Java應(yīng)用服務(wù)器的發(fā)展起到了重要的作用。新版本的JBoss5.0也正在研發(fā)之中,全新的JavaEE5.0體系架構(gòu)將為JavaEE應(yīng)用軟件開發(fā)人員帶來更多優(yōu)秀的特性。JOnASJOnAS由歐洲的ObjectWeb協(xié)會(huì)開發(fā),也是比較有影響力的一個(gè)開放源代碼的J2EE實(shí)現(xiàn)。JOnAS主要是J2EE容器的實(shí)現(xiàn),J2EE服務(wù)等都由ObjectWeb其他項(xiàng)目實(shí)現(xiàn),它們之間接口定義良好,可以很方便地共同組合為一個(gè)應(yīng)用服務(wù)器。JOnAS本身的技術(shù)特點(diǎn)不是很明顯,但它目前在著力推倡OSGi技術(shù),這應(yīng)該是它未來一段時(shí)間的賣點(diǎn)。目前ObjectWeb也在積極尋求跟中國(guó)的合作,JOnAS4.8就已經(jīng)有來自中國(guó)團(tuán)隊(duì)的貢獻(xiàn)。隨著歐盟和中國(guó)的合作深入,開源應(yīng)用服務(wù)器在未來的合作應(yīng)該會(huì)走得更遠(yuǎn)。PKUASPKUAS(PekingUniversityApplicationServer)由北京大學(xué)信息科學(xué)技術(shù)學(xué)院軟件研究所自行設(shè)計(jì)開發(fā)。分為遵循J2EE1.3、J2EE1.4和J2EE5等三種版本。PKUAS積極倡導(dǎo)采用微內(nèi)核和構(gòu)件化思想來構(gòu)造,也就是自己構(gòu)造微內(nèi)核和集成框架,而其他則選擇優(yōu)秀的開源軟件。2005年12月PKUAS2005在ObjectWeb的源碼庫中開放,2006年7月PKUAS的動(dòng)態(tài)集群內(nèi)容也被JOnAS團(tuán)隊(duì)采納,被集成到了JOnAS4.8中。Plug-in體系架構(gòu)PKUAS借鑒操作系統(tǒng)的微內(nèi)核思想,通過抽取一組基本功能形成一個(gè)內(nèi)核,將平臺(tái)內(nèi)部的其他功能封裝在各個(gè)相對(duì)獨(dú)立的模塊內(nèi),允許用戶根據(jù)需要定制與擴(kuò)展這些功能模塊,在系統(tǒng)啟動(dòng)階段由內(nèi)核裝配成構(gòu)件運(yùn)行支撐平臺(tái)。豐富的服務(wù)和工具集合PKUAS不僅提供J2EE定義的標(biāo)準(zhǔn)服務(wù),包括名字服務(wù)、通信服務(wù)、事務(wù)服務(wù)、數(shù)據(jù)服務(wù)、消息服務(wù)、安全服務(wù)、JavaMail服務(wù)等,還提供擴(kuò)展的功能服務(wù),包括日志服務(wù)、集群服務(wù)和用戶自定義服務(wù)等。●PKUAS集群服務(wù)實(shí)現(xiàn)了可靈活定制的負(fù)載平衡框架,支持常見的負(fù)載平衡策略。PKUAS支持客戶端對(duì)服務(wù)器群組變化的感知和適應(yīng),這部分實(shí)現(xiàn)已被JOnAS采納。●PKUAS提供了可插拔的基于集成開發(fā)環(huán)境(Eclipse和JBuilder)中的開發(fā)部署插件,幫助用戶簡(jiǎn)化J2EE應(yīng)用和EJB開發(fā)及部署的過程。●PKUAS提供從其他應(yīng)用服務(wù)器到PKUAS的應(yīng)用移植工具,包括WL4PKUAS和JBOSS4PKUAS。 此外,PKUAS還附帶有需求建模和體系結(jié)構(gòu)建模工具,支持全生命周期的應(yīng)用開發(fā),這些工具目前也在積極實(shí)用化過程之中。
ApacheGeronimo ApacheGeronimo是Apache軟件基金會(huì)的開放源碼J2EE服務(wù)器,它集成了眾多先進(jìn)技術(shù)和設(shè)計(jì)理念。這些技術(shù)和理念大多源自獨(dú)立的項(xiàng)目,其配置和部署模型也各不相同。ApacheGeronimo能將這些項(xiàng)目和方法的配置及部署完全整合到一個(gè)統(tǒng)一、易用的模型中。 ApacheGeronimo是由ApacheSoftwareFoundation(負(fù)責(zé)流行的ApacheHTTP服務(wù)器開發(fā)的團(tuán)隊(duì))創(chuàng)建的一個(gè)開源的、認(rèn)證的J2EE服務(wù)器,它遵循ASF2.0協(xié)議進(jìn)行發(fā)布。作為J2EE服務(wù)器,Geronimo可以部署和運(yùn)行Web應(yīng)用程序和企業(yè)應(yīng)用程序??梢允褂肑avaServerPage(JSP)、Servlet、Filter和EnterpriseJavaBean(EJB)來構(gòu)建應(yīng)用程序。這個(gè)應(yīng)用程序可以通過JavaDataAccessAPI(JDBC)連接器訪問外部RDBMS、通過JavaNamingandDirectoryInterface(JNDI)訪問目錄服務(wù),通過JavaMessageService(JMS)訪問事務(wù)性消息隊(duì)列,通過JavaMail訪問電子郵件等。 在Geronimo中,考慮到JMX對(duì)大規(guī)模應(yīng)用服務(wù)的性能和開發(fā)復(fù)雜度帶來的影響,在后期使用了以控制反轉(zhuǎn)(InversionofControl)為基礎(chǔ)的全新內(nèi)核架構(gòu),這種架構(gòu)有益于服務(wù)的插入,因?yàn)榇a可以以服務(wù)邏輯為中心。要獲得JMX可管理性,只需要根據(jù)IoC依賴性添加一些編碼規(guī)范即可。這種設(shè)計(jì)也使得從Geronimo中的服務(wù)管理變得更簡(jiǎn)單。 Geronimo現(xiàn)在已逐步成為服務(wù)器端產(chǎn)品開發(fā)最有吸引力的容器之一。它豐富的功能集、無責(zé)任要求的Apache許可和隨時(shí)可部署的、認(rèn)證的J2EE1.4容器等優(yōu)勢(shì),使得它將成為JavaEE應(yīng)用服務(wù)器市場(chǎng)的又一有力競(jìng)爭(zhēng)者。 JFox JFox是由Huihoo.org開源軟件社區(qū)推出的JavaEE應(yīng)用服務(wù)器。為了簡(jiǎn)化EJB的開發(fā),提高開發(fā)和部署的效率,在表達(dá)形式上做了一些改進(jìn),其目標(biāo)是在規(guī)范和開發(fā)效率之間找到一個(gè)平衡,既盡可能遵循規(guī)范,又盡可能改變EJB開發(fā)緩慢、部署麻煩的現(xiàn)狀,切實(shí)提供一個(gè)快速的J2EE平臺(tái)。 它遵循LGPL協(xié)議進(jìn)行發(fā)布。JFox應(yīng)用服務(wù)器通過與國(guó)際知名開源組織,如ObjectWeb、Apache等合作,充分發(fā)揮全球開源開發(fā)人員的資源和優(yōu)勢(shì),使JFox逐步走向成熟和完善。并逐步進(jìn)入商業(yè)應(yīng)用領(lǐng)域。 JFox應(yīng)用服務(wù)器在保證對(duì)J2EE規(guī)范兼容的前提下,提供了更多高級(jí)的特性: ●采用增強(qiáng)型IoC內(nèi)核,并結(jié)合JMX的優(yōu)勢(shì),支持基于Web組件管理; ●采用動(dòng)態(tài)代理調(diào)用框架,無需EJB預(yù)編譯; ●采用協(xié)議后決的調(diào)用方式在調(diào)用過程中可以動(dòng)態(tài)改變調(diào)用EJB協(xié)議; ●采用優(yōu)化的調(diào)用鏈模型,提高服務(wù)端執(zhí)行速度; ●支持遠(yuǎn)程和本地調(diào)用自動(dòng)切換,同一個(gè)應(yīng)用服務(wù)器上的EJB之間的調(diào)用自動(dòng)使用本地調(diào)用,無需實(shí)現(xiàn)本地接口; ●高性能事務(wù)處理,JFox采用了先進(jìn)的事務(wù)處理模型,提高了事務(wù)處理的調(diào)用性能。 Java版Web框架 Struts Struts是一個(gè)基于SunJ2EE平臺(tái)的MVC框架,主要采用Servlet和JSP技術(shù)來實(shí)現(xiàn)的。它已成為用Java創(chuàng)建Web應(yīng)用的一個(gè)最流行的框架工具,Struts所實(shí)現(xiàn)的MVC模式給Web應(yīng)用帶來了良好的層次劃分,同時(shí)也提供了一系列的工具來簡(jiǎn)化Web應(yīng)用的開發(fā)。 Struts通過提供一個(gè)中心化的Servlet來實(shí)現(xiàn)MVC中的控制器模式。Struts中的控制器提供集中請(qǐng)求轉(zhuǎn)發(fā)功能,就好似一個(gè)路由器系統(tǒng),解析來自客戶端發(fā)起的請(qǐng)求,并將請(qǐng)求定向到對(duì)應(yīng)的業(yè)務(wù)邏輯上,最后將業(yè)務(wù)邏輯處理得到的結(jié)果展現(xiàn)到對(duì)應(yīng)的視圖上。通過這種模式,它將控制器與視圖邏輯進(jìn)行了較好的分離,使得應(yīng)用系統(tǒng)能更快適應(yīng)業(yè)務(wù)邏輯的變化。在視圖技術(shù)上,Struts不僅限于JSP,同時(shí)可以與XMLXSLT、Velocity等技術(shù)進(jìn)行結(jié)合。這些豐富的標(biāo)簽庫為加速應(yīng)用開發(fā)提供了更為快捷的途徑。 Struts框架也為用戶提供了極為豐富的開發(fā)文檔,同時(shí)Struts相關(guān)的書籍也大量上市,這為開發(fā)人員學(xué)習(xí)和使用Struts提供了可靠的保障和支持。Struts經(jīng)過多年的發(fā)展,已經(jīng)擁有大量的開發(fā)者群體,這些開發(fā)群體使得Struts的開發(fā)和改進(jìn)工作得到不斷的支持,Struts框架因此具備更為長(zhǎng)期和穩(wěn)定的發(fā)展?jié)摿Α?P> WebWork WebWork是由OpenSymphony組織開發(fā)的、致力于構(gòu)件化和代碼重用的拉出式MVC模式J2EEWeb框架,它以其精巧、靈活、功能強(qiáng)大而聞名。WebWork2.x早期是由著名的開源專家RickardOberg開發(fā)完成,隨著技術(shù)的演化,WebWork項(xiàng)目現(xiàn)在被拆分成兩個(gè)單獨(dú)的項(xiàng)目Xwork1和WebWork2兩個(gè)項(xiàng)目。Xwork是一個(gè)標(biāo)準(zhǔn)的Command模式實(shí)現(xiàn),完全從Web層脫離出來。WebWork2建立在Xwork之上,處理HTTP的響應(yīng)和請(qǐng)求。在WebWork2.2中添加了對(duì)AJAX的支持,這支持構(gòu)建在DWR與Dojo這兩個(gè)框架的基礎(chǔ)之上。 WebWork與Struts的不同表現(xiàn)在以下一些方面: 線程模型:Struts的請(qǐng)求只有一個(gè)實(shí)例去處理,這使得所有資源都必須保持同步,會(huì)產(chǎn)生線程安全的問題。在WebWork的實(shí)現(xiàn)中,每一個(gè)請(qǐng)求對(duì)應(yīng)一個(gè)Action,每一個(gè)處理都是相對(duì)隔離,不會(huì)產(chǎn)生線程安全的問題。 容器外測(cè)試:Struts的Action依賴ServletRequest和ServletResponse,因此進(jìn)行單元測(cè)試時(shí)必須依賴容器本身。WebWork2中的Action不依賴任何容器,可以較好地進(jìn)行容器外測(cè)試。 Action的控制:WebWork提供Action攔截器處理機(jī)制,允許在每一個(gè)Action前后進(jìn)行其他操作。 WebWork用戶群體較小,相關(guān)的文檔資料和支持工具也較少,比較適合技術(shù)能力較強(qiáng)的開發(fā)人員使用。 EasyJWeb EasyJWeb是基于Java技術(shù)、應(yīng)用于Web應(yīng)用程序快速開發(fā)的MVC框架,框架設(shè)計(jì)構(gòu)思來源于國(guó)內(nèi)眾多項(xiàng)目實(shí)踐,框架充分借鑒了當(dāng)前主要流行的開源Web框架(Struts、Webwork等),吸取了其優(yōu)點(diǎn)及精華,利用Velocity作為模板頁面引擎,是一個(gè)實(shí)現(xiàn)了頁面及代碼完全分離的MVC開發(fā)框架。EasyJWeb具有以下幾個(gè)特點(diǎn): 1.零配文件置支持。EasyJWeb實(shí)現(xiàn)零配置支持,可以不寫一句配置文件就在框架基礎(chǔ)上構(gòu)建運(yùn)用(適合小型網(wǎng)站系統(tǒng))。 2.簡(jiǎn)易的模板頁面設(shè)計(jì)支持。放棄使用JSP,使用簡(jiǎn)單Velocity腳本語言作為頁面模板。 3.頁面程序完全分離。實(shí)現(xiàn)顯示與程序邏輯的完全分離,克服了傳統(tǒng)JSP頁面難于維護(hù)的問題。 4.基于頁面組件的框架。靈活的頁面組件配置可以直接通過配置文件設(shè)置字段級(jí)的事件組件。 5.快速開發(fā)支持。通過EasyJWebTools,可以自動(dòng)生成應(yīng)用軟件模板代碼,定制并管理自己的J2EE代碼模板。 EasyJWeb是本次Web框架中推薦的惟一來自中國(guó)開源社區(qū)的一個(gè),是一個(gè)能實(shí)現(xiàn)中小型Web應(yīng)用系統(tǒng)快速開發(fā)的簡(jiǎn)易Web框架。盡管沒有能夠同Eclipse結(jié)合的插件,而是使用自己的一套開發(fā)工具,但在國(guó)內(nèi)有一定影響力。 Turbine Turbine是基于Servlet的框架包,也是開放源代碼Jakarta項(xiàng)目。目前還沒有關(guān)于Turbine的大量文檔。它類似于Struts,但是有一些主要區(qū)別,突出的一點(diǎn)就是它并沒有與JSP耦合。Turbine還有一個(gè)特點(diǎn)是它提供了大量可重用的構(gòu)件,不過這些構(gòu)件是離散的。 Java版Web服務(wù)器 Jetty Jetty是一個(gè)免費(fèi)的和開源的Servlet容器。Jetty最大的特點(diǎn)是它既可以作為獨(dú)立的Web服務(wù)器,也可以為一個(gè)已經(jīng)存在的應(yīng)用程序提供Servlet功能。也就是說它可以非常輕易地嵌入到個(gè)人的Java應(yīng)用中,這樣用戶就不必把Web應(yīng)用發(fā)布到一個(gè)服務(wù)器上。正因?yàn)镴etty的存在,Tomcat才不至于成為一枝獨(dú)秀,Web服務(wù)器領(lǐng)域才會(huì)更加有趣。 Tomcat Tomcat是一個(gè)免費(fèi)、開源的Servlet容器,它是Apache基金會(huì)的Jakarta項(xiàng)目中的旗艦產(chǎn)品,由Apache、Sun和其他一些公司及個(gè)人共同開發(fā)而成。它曾被JavaWorld雜志評(píng)為2001年度最具創(chuàng)新的Java產(chǎn)品(MostInnovativeJavaProduct),同時(shí)它又是Sun公司官方推薦的Servlet和JSP容器。Servlet和JSP的最新規(guī)范都可以在Tomcat的新版本中得到實(shí)現(xiàn)。它是目前應(yīng)用最為廣泛的Servlet容器,許多J2EE應(yīng)用服務(wù)器都集成它作為自己的Servlet容器。 Java版持久層框架 ApacheTorque ApacheTorque是一個(gè)使用關(guān)系數(shù)據(jù)庫作為存儲(chǔ)手段的Java應(yīng)用程序持久化工具,是Apache的公開源代碼項(xiàng)目。Torque由Web應(yīng)用程序框架JakartaApacheTurbine發(fā)展而來,但現(xiàn)在已完全獨(dú)立于Turbine。Torque主要包含兩部分:一部分是Generator,它可以產(chǎn)生應(yīng)用程序需要的所有數(shù)據(jù)庫資源,包括SQL和Java文件。另外一部分是Runtime,提供使用這些代碼訪問數(shù)據(jù)庫的運(yùn)行時(shí)環(huán)境。 Hibernate
|