當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 泛普各地 > 河北O(jiān)A系統(tǒng) > 石家莊OA系統(tǒng) > 石家莊OA快博
企業(yè)級開源軟件簡介
由于開源軟件特殊的開發(fā)方式,使得這個(gè)領(lǐng)域真可謂百花齊放,以至于究竟有多少種開源軟件,恐怕沒有多少人能說清楚。本報(bào)評析實(shí)驗(yàn)室在開源專家的意見的基礎(chǔ)上對其中頗有影響力的企業(yè)級開源軟件進(jìn)行了整理,以供讀者參考。
Linux 操作系統(tǒng)
Red Hat
Red Hat Enterprise Linux(RHEL)作為紅帽家族的服務(wù)器成員,提供了功能較為強(qiáng)大的操作系統(tǒng)和企業(yè)架構(gòu)方案。它使用開放源碼的 Linux 2.6 內(nèi)核,使得平臺穩(wěn)定性和成熟性較以往有所增強(qiáng)。RHEL采用了大量成熟的開放源代碼技術(shù),如SELinux和Firefox等,同時(shí)特別針對桌面應(yīng)用進(jìn)行了改善,能較好地滿足企業(yè)安全性和兼容性的要求。系統(tǒng)在新文件系統(tǒng)、即插即用硬件設(shè)備的支持以及用戶和服務(wù)管理方面較以前版本有了顯著的提高。
RHEL的缺點(diǎn)是帶有一些不標(biāo)準(zhǔn)的內(nèi)核補(bǔ)丁,使得它難以按照用戶的需求進(jìn)行定制。
Red Flag
Red Flag Linux Desktop 5.0(產(chǎn)品代號為Apatite)是一個(gè)穩(wěn)定、易用的個(gè)人桌面系統(tǒng),系統(tǒng)安裝過程簡單直觀,提供了較完善的系統(tǒng)管理工具和圖形圖像、多媒體應(yīng)用以及網(wǎng)絡(luò)應(yīng)用方面的多種應(yīng)用軟件。系統(tǒng)采用Linux 2.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ī)幫助和用戶手冊漢化等方面還需進(jìn)一步加強(qiáng)。
拓林思
拓林思(Turbolinux)對產(chǎn)品的穩(wěn)定性、高效性以及安全性方面進(jìn)行了特殊加強(qiáng),Turbolinux 10一直嚴(yán)格遵循該領(lǐng)域的相應(yīng)標(biāo)準(zhǔn)CGL(carrier_grade_linux),通過了LSB 1.3 標(biāo)準(zhǔn)的完整測試,可以很方便地移植符合LSB 1.3 標(biāo)準(zhǔn)的軟件。集成了完善的系統(tǒng)級開發(fā)環(huán)境和高效、穩(wěn)定的開發(fā)工具,開發(fā)型用戶不需額外購買即可實(shí)現(xiàn)二次開發(fā)。同時(shí)該產(chǎn)品的易用性顯著增強(qiáng),可以為企業(yè)級數(shù)據(jù)庫和大型商業(yè)軟件提供高效的系統(tǒng)平臺,支持24×7 不間斷的全天候工作方式?;趯amba、NFS 等各種技術(shù)的完全支持,可以與現(xiàn)有的各種操作系統(tǒng)實(shí)現(xiàn)互聯(lián)互通,協(xié)同工作,不但保護(hù)了用戶的前期投資,同時(shí)也降低了系統(tǒng)整體部署的成本。
共創(chuàng)
共創(chuàng)桌面Linux(Co-Create Desktop Linux)2005是一個(gè)適合普通用戶使用的桌面操作系統(tǒng),它為用戶提供了較穩(wěn)定、高效的計(jì)算機(jī)使用環(huán)境。系統(tǒng)采用開放源碼的Linux 2.6內(nèi)核,提升了Linux作為桌面應(yīng)用的性能。采用類Windows的界面風(fēng)格和鼠標(biāo)與快捷鍵操作方式,桌面與菜單簡潔實(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ù)器
JBoss
JBoss是目前最有影響力的開源應(yīng)用服務(wù)器,它幾乎成了開源軟件的旗艦產(chǎn)品。和出色的同類商業(yè)軟件BEA的Weblogic、IBM的Websphere相比,JBoss的優(yōu)勢在于具有良好的性價(jià)比。從出現(xiàn)至今,它已經(jīng)從一個(gè)EJB容器發(fā)展成為一個(gè)基于J2EE的Web 操作系統(tǒng)(Operating System for Web),它體現(xiàn)了J2EE規(guī)范中最新的技術(shù)。不僅如此,它的技術(shù)創(chuàng)新能力還有影響和引領(lǐng)規(guī)范的趨勢。它具有良好的運(yùn)行效率和可靠性,已經(jīng)得到越來越多的J2EE應(yīng)用開發(fā)者的青睞。
JBoss 是當(dāng)前最流行的開源J2EE應(yīng)用服務(wù)器之一, 它遵循LGPL協(xié)議進(jìn)行發(fā)布。JBoss安全符合J2EE 1.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),它提供對輕量級組件模型的熱部署和高級類裝載和全生命周期管理的特性。
服務(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)用中的對象提供各種互通的行為能力。同時(shí)JBoss還支持 AOP的方式, 以透明化的方式簡化應(yīng)用開發(fā)的過程。
JBoss應(yīng)用服務(wù)器(AS)4.0 通過了J2EE 1.4的認(rèn)證。JBoss AS 4.0極大地簡化了Java中間件開發(fā),使用更加簡單的、更加易于管理的POJO,這種新的模式轉(zhuǎn)變?yōu)橥苿诱麄€(gè)Java 應(yīng)用服務(wù)器的發(fā)展起到了重要的作用。新版本的JBoss 5.0也正在研發(fā)之中,全新的JavaEE 5.0體系架構(gòu)將為JavaEE應(yīng)用軟件開發(fā)人員帶來更多優(yōu)秀的特性。
JOnAS
JOnAS由歐洲的ObjectWeb協(xié)會開發(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也在積極尋求跟中國的合作,JOnAS4.8就已經(jīng)有來自中國團(tuán)隊(duì)的貢獻(xiàn)。隨著歐盟和中國的合作深入,開源應(yīng)用服務(wù)器在未來的合作應(yīng)該會走得更遠(yuǎn)。
PKUAS
PKUAS(Peking University Application Server)由北京大學(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月PKUAS 2005在ObjectWeb的源碼庫中開放,2006年7月PKUAS的動態(tài)集群內(nèi)容也被JOnAS團(tuán)隊(duì)采納,被集成到了JOnAS4.8中。
Plug-in體系架構(gòu) PKUAS借鑒操作系統(tǒng)的微內(nèi)核思想,通過抽取一組基本功能形成一個(gè)內(nèi)核,將平臺內(nèi)部的其他功能封裝在各個(gè)相對獨(dú)立的模塊內(nèi),允許用戶根據(jù)需要定制與擴(kuò)展這些功能模塊,在系統(tǒng)啟動階段由內(nèi)核裝配成構(gòu)件運(yùn)行支撐平臺。
豐富的服務(wù)和工具集合 PKUAS不僅提供J2EE定義的標(biāo)準(zhǔn)服務(wù),包括名字服務(wù)、通信服務(wù)、事務(wù)服務(wù)、數(shù)據(jù)服務(wù)、消息服務(wù)、安全服務(wù)、Java Mail服務(wù)等,還提供擴(kuò)展的功能服務(wù),包括日志服務(wù)、集群服務(wù)和用戶自定義服務(wù)等。
● PKUAS集群服務(wù)實(shí)現(xiàn)了可靈活定制的負(fù)載平衡框架,支持常見的負(fù)載平衡策略。PKUAS支持客戶端對服務(wù)器群組變化的感知和適應(yīng),這部分實(shí)現(xiàn)已被JOnAS采納。
● PKUAS提供了可插拔的基于集成開發(fā)環(huán)境(Eclipse和JBuilder)中的開發(fā)部署插件,幫助用戶簡化J2EE應(yīng)用和EJB開發(fā)及部署的過程。
● PKUAS提供從其他應(yīng)用服務(wù)器到PKUAS的應(yīng)用移植工具,包括WL4PKUAS和JBOSS4PKUAS。
此外,PKUAS還附帶有需求建模和體系結(jié)構(gòu)建模工具,支持全生命周期的應(yīng)用開發(fā),這些工具目前也在積極實(shí)用化過程之中。
Apache Geronimo
Apache Geronimo 是 Apache 軟件基金會的開放源碼J2EE服務(wù)器,它集成了眾多先進(jìn)技術(shù)和設(shè)計(jì)理念。這些技術(shù)和理念大多源自獨(dú)立的項(xiàng)目,其配置和部署模型也各不相同。Apache Geronimo能將這些項(xiàng)目和方法的配置及部署完全整合到一個(gè)統(tǒng)一、易用的模型中。
Apache Geronimo是由Apache Software Foundation(負(fù)責(zé)流行的 Apache HTTP 服務(wù)器開發(fā)的團(tuán)隊(duì))創(chuàng)建的一個(gè)開源的、認(rèn)證的J2EE 服務(wù)器,它遵循ASF 2.0協(xié)議進(jìn)行發(fā)布。作為 J2EE 服務(wù)器,Geronimo 可以部署和運(yùn)行 Web 應(yīng)用程序和企業(yè)應(yīng)用程序。可以使用 Java ServerPage(JSP)、Servlet、Filter 和 Enterprise JavaBean(EJB)來構(gòu)建應(yīng)用程序。這個(gè)應(yīng)用程序可以通過 Java Data Access API(JDBC)連接器訪問外部 RDBMS、通過 Java Naming and Directory Interface(JNDI)訪問目錄服務(wù),通過 Java Message Service(JMS)訪問事務(wù)性消息隊(duì)列,通過 JavaMail 訪問電子郵件等。
在Geronimo中,考慮到JMX對大規(guī)模應(yīng)用服務(wù)的性能和開發(fā)復(fù)雜度帶來的影響,在后期使用了以控制反轉(zhuǎn)(Inversion of Control)為基礎(chǔ)的全新內(nèi)核架構(gòu),這種架構(gòu)有益于服務(wù)的插入,因?yàn)榇a可以以服務(wù)邏輯為中心。要獲得 JMX 可管理性,只需要根據(jù) IoC 依賴性添加一些編碼規(guī)范即可。這種設(shè)計(jì)也使得從 Geronimo 中的服務(wù)管理變得更簡單。
Geronimo 現(xiàn)在已逐步成為服務(wù)器端產(chǎn)品開發(fā)最有吸引力的容器之一。它豐富的功能集、無責(zé)任要求的Apache許可和隨時(shí)可部署的、認(rèn)證的J2EE 1.4容器等優(yōu)勢,使得它將成為JavaEE應(yīng)用服務(wù)器市場的又一有力競爭者。
JFox
JFox 是由Huihoo.org開源軟件社區(qū)推出的JavaEE應(yīng)用服務(wù)器。為了簡化EJB的開發(fā),提高開發(fā)和部署的效率,在表達(dá)形式上做了一些改進(jìn),其目標(biāo)是在規(guī)范和開發(fā)效率之間找到一個(gè)平衡,既盡可能遵循規(guī)范,又盡可能改變EJB開發(fā)緩慢、部署麻煩的現(xiàn)狀,切實(shí)提供一個(gè)快速的J2EE平臺。
它遵循LGPL協(xié)議進(jìn)行發(fā)布。JFox應(yīng)用服務(wù)器通過與國際知名開源組織,如ObjectWeb、Apache 等合作,充分發(fā)揮全球開源開發(fā)人員的資源和優(yōu)勢,使JFox逐步走向成熟和完善。并逐步進(jìn)入商業(yè)應(yīng)用領(lǐng)域。
JFox應(yīng)用服務(wù)器在保證對J2EE規(guī)范兼容的前提下,提供了更多高級的特性:
● 采用增強(qiáng)型IoC 內(nèi)核,并結(jié)合JMX的優(yōu)勢,支持基于Web組件管理;
● 采用動態(tài)代理調(diào)用框架,無需EJB預(yù)編譯;
● 采用協(xié)議后決的調(diào)用方式在調(diào)用過程中可以動態(tài)改變調(diào)用EJB協(xié)議;
● 采用優(yōu)化的調(diào)用鏈模型,提高服務(wù)端執(zhí)行速度;
● 支持遠(yuǎn)程和本地調(diào)用自動切換,同一個(gè)應(yīng)用服務(wù)器上的EJB之間的調(diào)用自動使用本地調(diào)用,無需實(shí)現(xiàn)本地接口;
● 高性能事務(wù)處理,JFox采用了先進(jìn)的事務(wù)處理模型,提高了事務(wù)處理的調(diào)用性能。
Java版Web框架
Struts
Struts是一個(gè)基于Sun J2EE平臺的MVC框架,主要采用Servlet和JSP技術(shù)來實(shí)現(xiàn)的。它已成為用Java創(chuàng)建Web應(yīng)用的一個(gè)最流行的框架工具,Struts所實(shí)現(xiàn)的MVC模式給Web 應(yīng)用帶來了良好的層次劃分,同時(shí)也提供了一系列的工具來簡化Web應(yīng)用的開發(fā)。
Struts通過提供一個(gè)中心化的Servlet來實(shí)現(xiàn)MVC中的控制器模式。Struts中的控制器提供集中請求轉(zhuǎn)發(fā)功能,就好似一個(gè)路由器系統(tǒng),解析來自客戶端發(fā)起的請求,并將請求定向到對應(yīng)的業(yè)務(wù)邏輯上,最后將業(yè)務(wù)邏輯處理得到的結(jié)果展現(xiàn)到對應(yīng)的視圖上。通過這種模式,它將控制器與視圖邏輯進(jìn)行了較好的分離,使得應(yīng)用系統(tǒng)能更快適應(yīng)業(yè)務(wù)邏輯的變化。在視圖技術(shù)上,Struts不僅限于JSP,同時(shí)可以與XML/XSLT、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框架因此具備更為長期和穩(wěn)定的發(fā)展?jié)摿Α?
WebWork
WebWork是由OpenSymphony組織開發(fā)的、致力于構(gòu)件化和代碼重用的拉出式MVC模式J2EE Web框架,它以其精巧、靈活、功能強(qiáng)大而聞名。WebWork 2.x早期是由著名的開源專家Rickard Oberg開發(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)和請求。在WebWork 2.2中添加了對AJAX的支持,這支持構(gòu)建在DWR與Dojo這兩個(gè)框架的基礎(chǔ)之上。
WebWork與Struts的不同表現(xiàn)在以下一些方面:
線程模型: Struts 的請求只有一個(gè)實(shí)例去處理,這使得所有資源都必須保持同步,會產(chǎn)生線程安全的問題。在WebWork的實(shí)現(xiàn)中,每一個(gè)請求對應(yīng)一個(gè)Action, 每一個(gè)處理都是相對隔離,不會產(chǎn)生線程安全的問題。
容器外測試: Struts的Action依賴ServletRequest和ServletResponse,因此進(jìn)行單元測試時(shí)必須依賴容器本身。WebWork2中的Action不依賴任何容器,可以較好地進(jìn)行容器外測試。
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)思來源于國內(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.簡易的模板頁面設(shè)計(jì)支持。放棄使用JSP,使用簡單Velocity腳本語言作為頁面模板。
3.頁面程序完全分離。實(shí)現(xiàn)顯示與程序邏輯的完全分離,克服了傳統(tǒng)JSP頁面難于維護(hù)的問題。
4.基于頁面組件的框架。靈活的頁面組件配置可以直接通過配置文件設(shè)置字段級的事件組件。
5.快速開發(fā)支持。通過EasyJWeb Tools,可以自動生成應(yīng)用軟件模板代碼,定制并管理自己的J2EE代碼模板。
EasyJWeb是本次Web框架中推薦的惟一來自中國開源社區(qū)的一個(gè),是一個(gè)能實(shí)現(xiàn)中小型 Web應(yīng)用系統(tǒng)快速開發(fā)的簡易Web框架。盡管沒有能夠同Eclipse結(jié)合的插件,而是使用自己的一套開發(fā)工具,但在國內(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)域才會更加有趣。
Tomcat
Tomcat是一個(gè)免費(fèi)、開源的Servlet容器,它是Apache基金會的Jakarta項(xiàng)目中的旗艦產(chǎn)品,由Apache、Sun和其他一些公司及個(gè)人共同開發(fā)而成。它曾被JavaWorld雜志評為2001年度最具創(chuàng)新的Java產(chǎn)品(Most Innovative Java Product),同時(shí)它又是Sun公司官方推薦的Servlet和JSP容器。Servlet和JSP的最新規(guī)范都可以在Tomcat的新版本中得到實(shí)現(xiàn)。它是目前應(yīng)用最為廣泛的Servlet容器,許多J2EE應(yīng)用服務(wù)器都集成它作為自己的Servlet容器。
Java版 持久層框架
Apache Torque
Apache Torque是一個(gè)使用關(guān)系數(shù)據(jù)庫作為存儲手段的Java應(yīng)用程序持久化工具,是 Apache 的公開源代碼項(xiàng)目。Torque由Web應(yīng)用程序框架Jakarta Apache Turbine發(fā)展而來,但現(xiàn)在已完全獨(dú)立于Turbine。Torque 主要包含兩部分: 一部分是 Generator,它可以產(chǎn)生應(yīng)用程序需要的所有數(shù)據(jù)庫資源,包括SQL和Java文件。另外一部分是 Runtime,提供使用這些代碼訪問數(shù)據(jù)庫的運(yùn)行時(shí)環(huán)境。
Hibernate
Hibernate最早是Sourceforge.net的一個(gè)子項(xiàng)目,后被JBoss購入麾下,目前已成為炙手可熱的持久數(shù)據(jù)管理框架。它是一個(gè)開放源代碼的對象關(guān)系映射框架,它對JDBC進(jìn)行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲地使用對象編程思維來操縱數(shù)據(jù)庫。
iBatis
iBatis提供了ORM機(jī)制,對業(yè)務(wù)邏輯實(shí)現(xiàn)人員而言,面對的是純粹的Java對象, 這一層與通過Hibernate 實(shí)現(xiàn)ORM 而言基本一致。對于具體的數(shù)據(jù)操作,Hibernate 會自動生成SQL 語句,而iBatis 則要求開發(fā)者編寫具體的SQL 語句。相對Hibernate等 “全自動”O(jiān)RM機(jī)制而言,iBatis 以SQL開發(fā)的工作量和數(shù)據(jù)庫移植性上的讓步,為系統(tǒng)設(shè)計(jì)提供了更大的自由空間。
Java版J2EE框架
Spring
Spring是由Interface21公司的CEO Rod Johnson領(lǐng)導(dǎo)開發(fā)的開源J2EE應(yīng)用框架,它解決了許多在J2EE開發(fā)中常見問題。Spring還提供了管理業(yè)務(wù)對象的一致方法,并且鼓勵(lì)對接口編程而不是對類編程的良好習(xí)慣。Spring的架構(gòu)基礎(chǔ)是基于使用JavaBean屬性的Inversion of Control容器。
Spring為J2EE應(yīng)用開發(fā)提供了一個(gè)完整的分層體系架構(gòu),為使用輕量級的方法解決復(fù)雜的企業(yè)級應(yīng)用開發(fā)提供了一個(gè)最佳實(shí)踐。Spring應(yīng)用框架由幾個(gè)模塊組成:
Spring核心容器: 以Setting Injection為主的IoC(反轉(zhuǎn)控制容器), 通過XML配置模式,應(yīng)用組件間的依賴進(jìn)行關(guān)聯(lián)。
Spring Context: Spring Context作為貫穿Spring整體的一個(gè)引線,為框架內(nèi)集成的服務(wù)提供上下文環(huán)境。
Spring MVC框架: 將已有的Web MVC框架與Spring進(jìn)行集成,使現(xiàn)有的MVC框架能與Spring 的IoC容器進(jìn)行掛接,提供從控制層到業(yè)務(wù)層的反轉(zhuǎn)控制式編程。
Spring AOP: 為Spring提供了面向方面的編程能力。
Spring ORM: 集成了Hibernate、JDO、Ibatis SQL Map 等持久化組件,為上層應(yīng)用開發(fā)提供了一致的持久化編程模型。
Spring DAO: 將JDBC的應(yīng)用開發(fā)操作進(jìn)行抽象,提供統(tǒng)一的模板方法和異常層次結(jié)構(gòu),同時(shí)提供透明的事物處理機(jī)制,極大地簡化了基于數(shù)據(jù)庫應(yīng)用的開發(fā)過程。
Spring框架的這種松耦合編程體系結(jié)構(gòu)和非入侵性的特性,使得J2EE的應(yīng)用開發(fā)不依賴于任何J2EE應(yīng)用服務(wù)器,為提高J2EE應(yīng)用開發(fā)的整體質(zhì)量起到了極其關(guān)鍵的作用。
JFoxSOAF
JFoxSOAF(JFox Service-Oriented Application Framework)由Huihoo.org 開源社區(qū)開發(fā),是以Type3模式的IoC為核心的J2EE應(yīng)用開發(fā)框架。JFoxSOAF采用基于IoC微內(nèi)核的系統(tǒng)設(shè)計(jì)架構(gòu),將現(xiàn)有眾多開源的成熟軟件框架、組件集成到一個(gè)體系中來,將原來相對零散的部件構(gòu)成一個(gè)整體,為應(yīng)用項(xiàng)目的開發(fā)提供一個(gè)完整的框架結(jié)構(gòu)和實(shí)踐的指南。JFoxSOAF作為應(yīng)用服務(wù)器上層的技術(shù)基礎(chǔ)件,提供三個(gè)層面的系統(tǒng)服務(wù),即應(yīng)用服務(wù)層、業(yè)務(wù)服務(wù)層、系統(tǒng)服務(wù)層。
JFoxSOAF與Spring的不同表現(xiàn)在以下幾方面:
IoC核心容器: JFoxSOAF采用基于構(gòu)造器注入方式的IoC容器,無需在大量的XML描述文件中聲明類間的依賴關(guān)系,極大地簡化了應(yīng)用開發(fā)的部署描述。
獨(dú)立的上下文環(huán)境: JFoxSOAF采用獨(dú)立的上下文環(huán)境,通過ServiceFactory, 任何一個(gè)類都可以在任何環(huán)境獲得注入在IoC容器中的實(shí)例,從而建立起引用關(guān)系。Spring在Web應(yīng)用中,必須通過Web容器環(huán)境獲得上下文的環(huán)境。
JDBC開發(fā)模板: JFoxSOAF集成了DBUtils作為JDBC DAO的模板框架,提供數(shù)據(jù)自動填裝功能,簡化了CRUD操作的開發(fā)過程,簡單易用。Spring的DAO模板功能也非常強(qiáng)大,但其需要手工進(jìn)行數(shù)據(jù)填裝操作,增大了應(yīng)用開發(fā)的復(fù)雜度。
事務(wù)處理: JFoxSOAF采用JOTM作為事務(wù)處理器,提供編程式的事務(wù)管理,Spring框架提供聲明式的事務(wù)管理,更易于靈活地配置開發(fā)。
.Net 開源框架
Castle
Castle是.Net系統(tǒng)級框架,它通過將一些成熟開源應(yīng)用進(jìn)行無縫整合而成的一套完善的應(yīng)用系統(tǒng)框架,這其中包括了ActiveRecord、DynamicProxy、MonoRail及MicroKernel/Windsor。MicroKernel/Windsor是Castle的底層核心實(shí)現(xiàn),它采用IoC容器對系統(tǒng)進(jìn)行運(yùn)行期動態(tài)設(shè)置,主要包括Facilities、Components、Services三大部分。
ActiveRecord對當(dāng)前熱門的ORM框架NHibernate進(jìn)行了封裝處理,主要包括將一些常用的數(shù)據(jù)進(jìn)行抽象化、通過Attribute來取代mapping文件等。在ActiveRecord的實(shí)現(xiàn)中,Model對象必須繼承于Active-RecordBase對象以便于Castle容器進(jìn)行控制,限制Model對象從其他非持久化對象繼承的可能,這是有違NHibernate/Hibernate最初的設(shè)計(jì)思想的。在Hibernate的設(shè)計(jì)思想中,Model對象可以是任意的Java Bean對象。MonoRail是Ruby on Rail的.Net實(shí)現(xiàn),這是一個(gè)MVC Web框架。它與傳統(tǒng)WebForm在控制上的不同在于WebForm采用頁控制器模式,而MVC采用前端控制器模式。在界面表達(dá)方式上MonoRail采用模板引擎輸出,模板引擎在PHP和JSP上已廣泛使用,而在ASP
.NET上因?yàn)榉?wù)端控件的強(qiáng)大功能和易用性而很少有人使用,兩者是各有優(yōu)缺點(diǎn)。
Spring.NET
Spring.NET是由Spring框架移植而來的,Spring框架是Java著名的應(yīng)用系統(tǒng)框架,它已成為了替代輕量級企業(yè)應(yīng)用的開發(fā)標(biāo)準(zhǔn)框架了。Spring.NET包括:
Spring.Core core就是一個(gè)對象工廠(ObjectFactory), 它通過配置中的對象定義來創(chuàng)建對象,它的目的是消除對象的new操作。在配置文件中,除了定義對象的一些屬性外,還能定義對象之間的相互關(guān)系,這就使得對象之間的耦合延遲到了運(yùn)行時(shí), 如果針對接口或抽象類進(jìn)行編程,則還可以通過具體對象的不同實(shí)現(xiàn)來定制系統(tǒng)的行為。
Spring.AOP 這是按AOP聯(lián)盟的接口定義來實(shí)現(xiàn)的,AOP即面向截面編程,其核心是通過給對象創(chuàng)建一個(gè)動態(tài)代理對象來接管對象的操作,這樣就能對操作進(jìn)行前置和后置處理了。
Spring.Data 這是一個(gè)由第三方實(shí)現(xiàn)的整合到Spring內(nèi)的數(shù)據(jù)訪問組件,目前已包括了NHibernate的實(shí)現(xiàn)部分。Spring
.NET還顯得不夠成熟,一些功能因?yàn)槠脚_的局限性而導(dǎo)致了移植上的困難, 與Castle相比就差了一些。
Nhibernate
Nhibernate是.NET持久層框架,它從Java上的Hibernate移植而來。作為一種o/r mapping框架,它具有以下一些特點(diǎn): 完善的數(shù)據(jù)映射及關(guān)聯(lián)操作; 可擴(kuò)展的持久機(jī)制; 強(qiáng)大的數(shù)據(jù)加載功能; 面向?qū)ο蟮臄?shù)據(jù)查詢語言HQL; 緩存機(jī)制; 多數(shù)據(jù)庫支持。
Nhibernate的強(qiáng)大之處在于開發(fā)者幾乎不用去了解任何數(shù)據(jù)存儲和查詢的細(xì)節(jié)問題,而能更專注地通過面向?qū)ο笤O(shè)計(jì)來構(gòu)建系統(tǒng)。其HQL查詢語言完全是針對對象及其屬性來設(shè)計(jì)的,與SQL語法保持一致,降低了學(xué)習(xí)的曲線。
當(dāng)然,Nhibernate還有一些不足之處,如報(bào)表數(shù)據(jù)。另外在性能上, Nhibernate通過反射來執(zhí)行一些操作以及數(shù)據(jù)行到對象之間的轉(zhuǎn)換, 都會造成性能上的一些損失。
iBatis.NET
作為另一種.Net持久層框架,iBatis.NET同樣是從Java上的iBatis移植而來的o/r mapping框架,它包括DataMapping和DataAccess兩部分:
DataMapping: ORM的實(shí)現(xiàn)部分, 對象映射通過映射文件來定義,支持one-to-one、one-to-many等對象關(guān)系映射。與Nhibernate顯著不同的是,ibatis.net不會自動生成SQL語句,它通過預(yù)先定義好的SQL映射來執(zhí)行數(shù)據(jù)操作,對于想自由操作SQL或使用復(fù)雜表達(dá)式的人來說,這是個(gè)不錯(cuò)的選擇。
DataAccess: 數(shù)據(jù)存取框架實(shí)現(xiàn),通過在配置文件中定義DAO接口及其實(shí)現(xiàn),就可以方便使用DaoManager進(jìn)行數(shù)據(jù)操作了,這也是一個(gè)在運(yùn)行時(shí)決定具體實(shí)現(xiàn)的標(biāo)準(zhǔn)應(yīng)用。
Java版 工作流
Shark
Shark是體系和功能最為復(fù)雜的代表。它是另一款遵循WfMC的XPDL標(biāo)準(zhǔn)開源工作流引擎,并且同時(shí)遵循OMG組織的Workflow Management Facility規(guī)范。在所有開源工作流引擎中,Shark的體系最為完備和復(fù)雜。其一直秉承著“模塊化”的思想,所以比較容易擴(kuò)展。但是自從被Together公司收購后,Shark的商業(yè)化色彩已經(jīng)越來越濃,改稱為Together Workflow Server,并僅以Community Edition的形式提供了部分開源代碼供參考。
OSWorkflow
OSWorkflow是最輕量型的代表,也是一款非常靈活和低級別定位的工作流引擎的實(shí)現(xiàn)框架。低級別定位的意思是說,它不是定位在解決流程模型對象和運(yùn)轉(zhuǎn)場景,而是提供一套可維護(hù)調(diào)度的機(jī)制,供開發(fā)人員自主擴(kuò)展。這個(gè)維護(hù)流程調(diào)度機(jī)制OSWorkflow選擇的是基于行為(Action)的FSM理論,所以O(shè)SWorkflow更像是一個(gè)復(fù)雜而靈活的有限狀態(tài)調(diào)度機(jī)。
OSWorkflow在國內(nèi)項(xiàng)目應(yīng)用得較多,很多國內(nèi)的簡易審批流程項(xiàng)目都是基于其引擎二次開發(fā)而來。這主要是由于OSWorkflow是基于Action驅(qū)動的,而國內(nèi)的客戶也很容易接受這樣的操作習(xí)慣。但OSWorkflow所依賴的FSM模型對于分支、聚合、子流程的支持度很低,這一點(diǎn)在實(shí)施過程中需要注意。
jBpm
jBpm是最適合擴(kuò)展的代表,是在所有開源引擎中最適宜被商業(yè)化應(yīng)用的一款。首先其流程建模模型是基于Activity Diagram(活動圖)的,并在引擎構(gòu)建上融入了FSM和PetriNet思想,所以其內(nèi)核和根基比較牢固扎實(shí)。其次,自從被JBoss收購后,其3. x系列的結(jié)構(gòu)更加趨于微內(nèi)核,Plug-in思想也更加深入。其同時(shí)還提供了對BPEL擴(kuò)展,存儲支持JBoss Hibernate實(shí)現(xiàn),集成了JBoss seam,規(guī)則引擎準(zhǔn)備采用JBoss rules,并準(zhǔn)備集成JBoss Messaging。這樣,不論從內(nèi)核和外圍應(yīng)用,jBpm都具有了強(qiáng)勁的動力。
另外,jBpm對Token的應(yīng)用也很有特色,巧妙地利用Parent-Child Token的機(jī)制處理分支、父子流程等復(fù)雜應(yīng)用場景。這個(gè)設(shè)計(jì)思想很值得大家學(xué)習(xí)參考。
YAWL
YAWL是算法和模式最值得研究的代表,它是Alast力主倡導(dǎo)的一款基于PetriNet建模的工作流引擎,其將PetriNet的Token與And、XOR、OR算法進(jìn)行了融合,并對Workflow Patterns(工作流模式)中所有模式提供支持。但YAWL本身僅是一個(gè)研究性項(xiàng)目,所以其結(jié)構(gòu)和實(shí)現(xiàn)缺少了商業(yè)化應(yīng)用的特點(diǎn)。但有必要研究一下YAWL,一方面可以加深對工作流模式的理解,另一方面,YAWL的一些建模思想、處理算法很值得推敲和吸納。
ActiveBPEL
ActiveBPEL 是BPEL引擎的代表,也是一款可執(zhí)行BPEL4WS規(guī)范的開源流程引擎,其結(jié)構(gòu)和實(shí)現(xiàn)方式具有很高的參考價(jià)值。目前國內(nèi)很多正在開發(fā)基于BPEL產(chǎn)品的中小型軟件廠商,其實(shí)現(xiàn)的很多基礎(chǔ)性內(nèi)容和思想都參考自ActiveBPEL。受目前國內(nèi)中小型客戶對流程需求的限制,基于BPEL的開源引擎或小型產(chǎn)品被市場接受度還很低。但BPEL所圍繞的業(yè)務(wù)流程及流程整合應(yīng)用是一個(gè)發(fā)展趨勢。 (ccw)
- 1CA 新品Introscope Change Detector 簡化應(yīng)用問題解決
- 2企業(yè)戰(zhàn)略對應(yīng)模型讓CIO學(xué)會兩條腿走路
- 3建立并執(zhí)行可接受的使用政策
- 4OA辦公項(xiàng)目建設(shè)的基本保障
- 5如何把項(xiàng)目評估做得更準(zhǔn)確
- 6ERP如何驅(qū)動中國企業(yè)轉(zhuǎn)型?
- 72008年ERP市場容量預(yù)計(jì)達(dá)5.5億美元
- 8數(shù)據(jù)交換結(jié)構(gòu)保持信息一致
- 9企業(yè)怎樣識別ERP解決方案
- 10VoIP也外包:既省錢又靈活
- 11ERP項(xiàng)目的價(jià)值如何實(shí)現(xiàn)
- 12怎樣制訂企業(yè)加密策略
- 13CIO如何管理BPM
- 14四大步驟提高IE以及Email安全性
- 15決勝BPM工作流
- 16如何分析銷售中各種數(shù)據(jù)
- 17協(xié)同辦公OA系統(tǒng)的投資估算及風(fēng)險(xiǎn)評估
- 18提升IT部門競爭力的五個(gè)手段
- 19組織--環(huán)境適應(yīng)性戰(zhàn)略
- 20工業(yè)數(shù)據(jù)的采集處理
- 21搜索市場鎖定中小企業(yè)客戶
- 22監(jiān)控軟件怎么選
- 23制作用戶手冊的15個(gè)巧門
- 24怎樣準(zhǔn)確評估IT效率
- 25如何構(gòu)建分支機(jī)構(gòu)基礎(chǔ)設(shè)施
- 26中小企業(yè)信息化知易行難
- 27怎么樣給企業(yè)級防火墻“體檢”
- 28遠(yuǎn)程虛擬儀器管理實(shí)戰(zhàn)
- 29網(wǎng)絡(luò)財(cái)務(wù)能夠給企業(yè)用戶帶來什么
- 30IT應(yīng)用的文化力
成都公司:成都市成華區(qū)建設(shè)南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓