• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 不可不知:企業級開源軟件大盤點

    發表于:2007-05-26來源:作者:點擊數: 標簽:
    由于開源軟件特殊的 開發 方式,使得這個領域真可謂百花齊放,以至于究竟有多少種開源軟件,恐怕沒有多少人能說清楚。本報評析實驗室在開源專家的意見的基礎上對其中頗有影響力的企業級開源軟件進行了整理,以供讀者參考。 Linux 操作系統 Red Hat Red Hat E

    由于開源軟件特殊的開發方式,使得這個領域真可謂百花齊放,以至于究竟有多少種開源軟件,恐怕沒有多少人能說清楚。本報評析實驗室在開源專家的意見的基礎上對其中頗有影響力的企業級開源軟件進行了整理,以供讀者參考。

    Linux 操作系統

      Red Hat

      Red Hat Enterprise Linux(RHEL)作為紅帽家族的服務器成員,提供了功能較為強大的操作系統和企業架構方案。它使用開放源碼的 Linux 2.6 內核,使得平臺穩定性和成熟性較以往有所增強。RHEL采用了大量成熟的開放源代碼技術,如SELinux和Firefox等,同時特別針對桌面應用進行了改善,能較好地滿足企業安全性和兼容性的要求。系統在新文件系統、即插即用硬件設備的支持以及用戶和服務管理方面較以前版本有了顯著的提高。

      RHEL的缺點是帶有一些不標準的內核補丁,使得它難以按照用戶的需求進行定制。

      Red Flag

      Red Flag Linux Desktop 5.0(產品代號為Apatite)是一個穩定、易用的個人桌面系統,系統安裝過程簡單直觀,提供了較完善的系統管理工具和圖形圖像、多媒體應用以及網絡應用方面的多種應用軟件。系統采用Linux 2.6內核,為用戶提供了一個比較穩定而且高效的使用環境。系統能夠較好地支持主流PC硬件設備和目前發展迅速的藍牙通信技術,能較好地支持藍牙設備和系統之間多種數據的無線互傳。不足之處在于系統在桌面的美觀程度、常用工具的易用性以及聯機幫助和用戶手冊漢化等方面還需進一步加強。

      拓林思

      拓林思(Turbolinux)對產品的穩定性、高效性以及安全性方面進行了特殊加強,Turbolinux 10一直嚴格遵循該領域的相應標準CGL(carrier_grade_linux),通過了LSB 1.3 標準的完整測試,可以很方便地移植符合LSB 1.3 標準的軟件。集成了完善的系統級開發環境和高效、穩定的開發工具,開發型用戶不需額外購買即可實現二次開發。同時該產品的易用性顯著增強,可以為企業級數據庫和大型商業軟件提供高效的系統平臺,支持24×7 不間斷的全天候工作方式?;趯amba、NFS 等各種技術的完全支持,可以與現有的各種操作系統實現互聯互通,協同工作,不但保護了用戶的前期投資,同時也降低了系統整體部署的成本。

      共創

      共創桌面Linux(Co-Create Desktop Linux)2005是一個適合普通用戶使用的桌面操作系統,它為用戶提供了較穩定、高效的計算機使用環境。系統采用開放源碼的Linux 2.6內核,提升了Linux作為桌面應用的性能。采用類Windows的界面風格和鼠標與快捷鍵操作方式,桌面與菜單簡潔實用,方便了用戶操作。系統還提供了較為豐富易用的系統管理工具以及瀏覽器、電子郵件、網絡聊天工具、多媒體軟件等多種應用軟件,采用了具備中英文混合輸入及智能聯想輸入能力的“共創中文輸入法”,形成了較完整的辦公應用環境。

      不足之處是系統在硬件設備的支持能力、常用大型軟件的支持能力和X窗口的穩定性等方面還需進一步加強。

       Java版 應用服務器

      JBoss

      JBoss是目前最有影響力的開源應用服務器,它幾乎成了開源軟件的旗艦產品。和出色的同類商業軟件BEA的Weblogic、IBM的Websphere相比,JBoss的優勢在于具有良好的性價比。從出現至今,它已經從一個EJB容器發展成為一個基于J2EE的Web 操作系統(Operating System for Web),它體現了J2EE規范中最新的技術。不僅如此,它的技術創新能力還有影響和引領規范的趨勢。它具有良好的運行效率和可靠性,已經得到越來越多的J2EE應用開發者的青睞。

      JBoss 是當前最流行的開源J2EE應用服務器之一, 它遵循LGPL協議進行發布。JBoss安全符合J2EE 1.4的標準規范, 提供EJB、JMS、 Servlet、JSP、JMX、JNDI等規范的支持。 JBoss以其優秀的基于JMX微內核在J2EE應用服務器領域獨樹一幟,其體系結構分為:

      微內核層 微內核層采用基于JMX的體系架構,它提供對輕量級組件模型的熱部署和高級類裝載和全生命周期管理的特性。

      服務層 在微內核層之上采用了面向服務的體系結構。它由一系列服務組成,包括事務、消息、郵件、安全、連接池等。服務可以采用熱插拔的方式進行部署,而無需停止整個服務器。同時也可以定制自己的服務并將服務打包成SAR,進行獨立的部署,通過這種機制,使得JBoss更易于靈活地進行擴展。

      應用層 JBoss 通過提供統一容器服務,為應用中的對象提供各種互通的行為能力。同時JBoss還支持 AOP的方式, 以透明化的方式簡化應用開發的過程。

      JBoss應用服務器(AS)4.0 通過了J2EE 1.4的認證。JBoss AS 4.0極大地簡化了Java中間件開發,使用更加簡單的、更加易于管理的POJO,這種新的模式轉變為推動整個Java 應用服務器的發展起到了重要的作用。新版本的JBoss 5.0也正在研發之中,全新的JavaEE 5.0體系架構將為JavaEE應用軟件開發人員帶來更多優秀的特性。

      JOnAS

      JOnAS由歐洲的ObjectWeb協會開發,也是比較有影響力的一個開放源代碼的J2EE實現。JOnAS主要是J2EE容器的實現,J2EE服務等都由ObjectWeb其他項目實現,它們之間接口定義良好,可以很方便地共同組合為一個應用服務器。JOnAS本身的技術特點不是很明顯,但它目前在著力推倡OSGi技術,這應該是它未來一段時間的賣點。目前ObjectWeb也在積極尋求跟中國的合作,JOnAS4.8就已經有來自中國團隊的貢獻。隨著歐盟和中國的合作深入,開源應用服務器在未來的合作應該會走得更遠。

      PKUAS

      PKUAS(Peking University Application Server)由北京大學信息科學技術學院軟件研究所自行設計開發。分為遵循J2EE1.3、J2EE1.4和 J2EE5等三種版本。PKUAS積極倡導采用微內核和構件化思想來構造,也就是自己構造微內核和集成框架,而其他則選擇優秀的開源軟件。2005年12月PKUAS 2005在ObjectWeb的源碼庫中開放,2006年7月PKUAS的動態集群內容也被JOnAS團隊采納,被集成到了JOnAS4.8中。

      Plug-in體系架構 PKUAS借鑒操作系統的微內核思想,通過抽取一組基本功能形成一個內核,將平臺內部的其他功能封裝在各個相對獨立的模塊內,允許用戶根據需要定制與擴展這些功能模塊,在系統啟動階段由內核裝配成構件運行支撐平臺。

      豐富的服務和工具集合 PKUAS不僅提供J2EE定義的標準服務,包括名字服務、通信服務、事務服務、數據服務、消息服務、安全服務、Java Mail服務等,還提供擴展的功能服務,包括日志服務、集群服務和用戶自定義服務等。

      ● PKUAS集群服務實現了可靈活定制的負載平衡框架,支持常見的負載平衡策略。PKUAS支持客戶端對服務器群組變化的感知和適應,這部分實現已被JOnAS采納。

      ● PKUAS提供了可插拔的基于集成開發環境(Eclipse和JBuilder)中的開發部署插件,幫助用戶簡化J2EE應用和EJB開發及部署的過程。

    ● PKUAS提供從其他應用服務器到PKUAS的應用移植工具,包括WL4PKUAS和JBOSS4PKUAS。

    此外,PKUAS還附帶有需求建模和體系結構建模工具,支持全生命周期的應用開發,這些工具目前也在積極實用化過程之中。

        Apache Geronimo

      Apache Geronimo 是 Apache 軟件基金會的開放源碼J2EE服務器,它集成了眾多先進技術和設計理念。這些技術和理念大多源自獨立的項目,其配置和部署模型也各不相同。Apache Geronimo能將這些項目和方法的配置及部署完全整合到一個統一、易用的模型中。

      Apache Geronimo是由Apache Software Foundation(負責流行的 Apache HTTP 服務器開發的團隊)創建的一個開源的、認證的J2EE 服務器,它遵循ASF 2.0協議進行發布。作為 J2EE 服務器,Geronimo 可以部署和運行 Web 應用程序和企業應用程序??梢允褂?Java ServerPage(JSP)、Servlet、Filter 和 Enterprise JavaBean(EJB)來構建應用程序。這個應用程序可以通過 Java Data Aclearcase/" target="_blank" >ccess API(JDBC)連接器訪問外部 RDBMS、通過 Java Naming and Directory Interface(JNDI)訪問目錄服務,通過 Java Message Service(JMS)訪問事務性消息隊列,通過 JavaMail 訪問電子郵件等。

      在Geronimo中,考慮到JMX對大規模應用服務的性能和開發復雜度帶來的影響,在后期使用了以控制反轉(Inversion of Control)為基礎的全新內核架構,這種架構有益于服務的插入,因為代碼可以以服務邏輯為中心。要獲得 JMX 可管理性,只需要根據 IoC 依賴性添加一些編碼規范即可。這種設計也使得從 Geronimo 中的服務管理變得更簡單。

      Geronimo 現在已逐步成為服務器端產品開發最有吸引力的容器之一。它豐富的功能集、無責任要求的Apache許可和隨時可部署的、認證的J2EE 1.4容器等優勢,使得它將成為JavaEE應用服務器市場的又一有力競爭者。

      JFox

      JFox 是由Huihoo.org開源軟件社區推出的JavaEE應用服務器。為了簡化EJB的開發,提高開發和部署的效率,在表達形式上做了一些改進,其目標是在規范和開發效率之間找到一個平衡,既盡可能遵循規范,又盡可能改變EJB開發緩慢、部署麻煩的現狀,切實提供一個快速的J2EE平臺。

      它遵循LGPL協議進行發布。JFox應用服務器通過與國際知名開源組織,如ObjectWeb、Apache 等合作,充分發揮全球開源開發人員的資源和優勢,使JFox逐步走向成熟和完善。并逐步進入商業應用領域。

      JFox應用服務器在保證對J2EE規范兼容的前提下,提供了更多高級的特性:

      ● 采用增強型IoC 內核,并結合JMX的優勢,支持基于Web組件管理;

      ● 采用動態代理調用框架,無需EJB預編譯;

      ● 采用協議后決的調用方式在調用過程中可以動態改變調用EJB協議;

      ● 采用優化的調用鏈模型,提高服務端執行速度;

      ● 支持遠程和本地調用自動切換,同一個應用服務器上的EJB之間的調用自動使用本地調用,無需實現本地接口;

      ● 高性能事務處理,JFox采用了先進的事務處理模型,提高了事務處理的調用性能。

    Java版Web框架

      Struts

      Struts是一個基于Sun J2EE平臺的MVC框架,主要采用Servlet和JSP技術來實現的。它已成為用Java創建Web應用的一個最流行的框架工具,Struts所實現的MVC模式給Web 應用帶來了良好的層次劃分,同時也提供了一系列的工具來簡化Web應用的開發。

      Struts通過提供一個中心化的Servlet來實現MVC中的控制器模式。Struts中的控制器提供集中請求轉發功能,就好似一個路由器系統,解析來自客戶端發起的請求,并將請求定向到對應的業務邏輯上,最后將業務邏輯處理得到的結果展現到對應的視圖上。通過這種模式,它將控制器與視圖邏輯進行了較好的分離,使得應用系統能更快適應業務邏輯的變化。在視圖技術上,Struts不僅限于JSP,同時可以與XML/XSLT、Velocity等技術進行結合。這些豐富的標簽庫為加速應用開發提供了更為快捷的途徑。

      Struts框架也為用戶提供了極為豐富的開發文檔,同時Struts相關的書籍也大量上市,這為開發人員學習和使用Struts提供了可靠的保障和支持。Struts經過多年的發展,已經擁有大量的開發者群體,這些開發群體使得Struts的開發和改進工作得到不斷的支持,Struts框架因此具備更為長期和穩定的發展潛力。

    WebWork

      WebWork是由OpenSymphony組織開發的、致力于構件化和代碼重用的拉出式MVC模式J2EE Web框架,它以其精巧、靈活、功能強大而聞名。WebWork 2.x早期是由著名的開源專家Rickard Oberg開發完成, 隨著技術的演化,WebWork項目現在被拆分成兩個單獨的項目Xwork1和WebWork2兩個項目。 Xwork是一個標準的Command模式實現,完全從Web層脫離出來。 WebWork2建立在Xwork之上,處理HTTP的響應和請求。在WebWork 2.2中添加了對AJAX的支持,這支持構建在DWR與Dojo這兩個框架的基礎之上。

      WebWork與Struts的不同表現在以下一些方面:

      線程模型: Struts 的請求只有一個實例去處理,這使得所有資源都必須保持同步,會產生線程安全的問題。在WebWork的實現中,每一個請求對應一個Action, 每一個處理都是相對隔離,不會產生線程安全的問題。

      容器外測試: Struts的Action依賴ServletRequest和ServletResponse,因此進行單元測試時必須依賴容器本身。WebWork2中的Action不依賴任何容器,可以較好地進行容器外測試。

      Action的控制: WebWork提供Action攔截器處理機制,允許在每一個Action前后進行其他操作。

      WebWork用戶群體較小,相關的文檔資料和支持工具也較少,比較適合技術能力較強的開發人員使用。

      EasyJWeb

      EasyJWeb是基于Java技術、應用于Web應用程序快速開發的MVC框架,框架設計構思來源于國內眾多項目實踐,框架充分借鑒了當前主要流行的開源Web框架 (Struts、Webwork等),吸取了其優點及精華,利用Velocity作為模板頁面引擎,是一個實現了頁面及代碼完全分離的MVC開發框架。EasyJWeb具有以下幾個特點:

      1.零配文件置支持。EasyJWeb實現零配置支持,可以不寫一句配置文件就在框架基礎上構建運用(適合小型網站系統)。

      2.簡易的模板頁面設計支持。放棄使用JSP,使用簡單Velocity腳本語言作為頁面模板。

      3.頁面程序完全分離。實現顯示與程序邏輯的完全分離,克服了傳統JSP頁面難于維護的問題。

      4.基于頁面組件的框架。靈活的頁面組件配置可以直接通過配置文件設置字段級的事件組件。

      5.快速開發支持。通過EasyJWeb Tools,可以自動生成應用軟件模板代碼,定制并管理自己的J2EE代碼模板。

      EasyJWeb是本次Web框架中推薦的惟一來自中國開源社區的一個,是一個能實現中小型 Web應用系統快速開發的簡易Web框架。盡管沒有能夠同Eclipse結合的插件,而是使用自己的一套開發工具,但在國內有一定影響力。

        Turbine

      Turbine是基于Servlet的框架包,也是開放源代碼Jakarta項目。目前還沒有關于Turbine的大量文檔。它類似于Struts,但是有一些主要區別,突出的一點就是它并沒有與JSP耦合。Turbine還有一個特點是它提供了大量可重用的構件,不過這些構件是離散的。

    Java版Web服務器

      Jetty

      Jetty是一個免費的和開源的Servlet容器。Jetty最大的特點是它既可以作為獨立的Web服務器,也可以為一個已經存在的應用程序提供Servlet功能。也就是說它可以非常輕易地嵌入到個人的Java 應用中,這樣用戶就不必把Web應用發布到一個服務器上。正因為Jetty的存在,Tomcat才不至于成為一枝獨秀,Web服務器領域才會更加有趣。

      Tomcat

      Tomcat是一個免費、開源的Servlet容器,它是Apache基金會的Jakarta項目中的旗艦產品,由Apache、Sun和其他一些公司及個人共同開發而成。它曾被JavaWorld雜志評為2001年度最具創新的Java產品(Most Innovative Java Product),同時它又是Sun公司官方推薦的Servlet和JSP容器。Servlet和JSP的最新規范都可以在Tomcat的新版本中得到實現。它是目前應用最為廣泛的Servlet容器,許多J2EE應用服務器都集成它作為自己的Servlet容器。

    Java版 持久層框架

      Apache Torque

      Apache Torque是一個使用關系數據庫作為存儲手段的Java應用程序持久化工具,是 Apache 的公開源代碼項目。Torque由Web應用程序框架Jakarta Apache Turbine發展而來,但現在已完全獨立于Turbine。Torque 主要包含兩部分: 一部分是 Generator,它可以產生應用程序需要的所有數據庫資源,包括SQL和Java文件。另外一部分是 Runtime,提供使用這些代碼訪問數據庫的運行時環境。

      Hibernate

      Hibernate最早是Sourceforge.net的一個子項目,后被JBoss購入麾下,目前已成為炙手可熱的持久數據管理框架。它是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲地使用對象編程思維來操縱數據庫。

      iBatis

      iBatis提供了ORM機制,對業務邏輯實現人員而言,面對的是純粹的Java對象, 這一層與通過Hibernate 實現ORM 而言基本一致。對于具體的數據操作,Hibernate 會自動生成SQL 語句,而iBatis 則要求開發者編寫具體的SQL 語句。相對Hibernate等 “全自動”ORM機制而言,iBatis 以SQL開發的工作量和數據庫移植性上的讓步,為系統設計提供了更大的自由空間。

        Java版J2EE框架

      Spring

      Spring是由Interface21公司的CEO Rod Johnson領導開發的開源J2EE應用框架,它解決了許多在J2EE開發中常見問題。Spring還提供了管理業務對象的一致方法,并且鼓勵對接口編程而不是對類編程的良好習慣。Spring的架構基礎是基于使用JavaBean屬性的Inversion of Control容器。

      Spring為J2EE應用開發提供了一個完整的分層體系架構,為使用輕量級的方法解決復雜的企業級應用開發提供了一個最佳實踐。Spring應用框架由幾個模塊組成:

      Spring核心容器: 以Setting Injection為主的IoC(反轉控制容器), 通過XML配置模式,應用組件間的依賴進行關聯。

      Spring Context: Spring Context作為貫穿Spring整體的一個引線,為框架內集成的服務提供上下文環境。

      Spring MVC框架: 將已有的Web MVC框架與Spring進行集成,使現有的MVC框架能與Spring 的IoC容器進行掛接,提供從控制層到業務層的反轉控制式編程。

      Spring AOP: 為Spring提供了面向方面的編程能力。

      Spring ORM: 集成了Hibernate、JDO、Ibatis SQL Map 等持久化組件,為上層應用開發提供了一致的持久化編程模型。

      Spring DAO: 將JDBC的應用開發操作進行抽象,提供統一的模板方法和異常層次結構,同時提供透明的事物處理機制,極大地簡化了基于數據庫應用的開發過程。

        Spring框架的這種松耦合編程體系結構和非入侵性的特性,使得J2EE的應用開發不依賴于任何J2EE應用服務器,為提高J2EE應用開發的整體質量起到了極其關鍵的作用。

      JFoxSOAF

      JFoxSOAF(JFox Service-Oriented Application Framework)由Huihoo.org 開源社區開發,是以Type3模式的IoC為核心的J2EE應用開發框架。JFoxSOAF采用基于IoC微內核的系統設計架構,將現有眾多開源的成熟軟件框架、組件集成到一個體系中來,將原來相對零散的部件構成一個整體,為應用項目的開發提供一個完整的框架結構和實踐的指南。JFoxSOAF作為應用服務器上層的技術基礎件,提供三個層面的系統服務,即應用服務層、業務服務層、系統服務層。

      JFoxSOAF與Spring的不同表現在以下幾方面:

      IoC核心容器: JFoxSOAF采用基于構造器注入方式的IoC容器,無需在大量的XML描述文件中聲明類間的依賴關系,極大地簡化了應用開發的部署描述。

      獨立的上下文環境: JFoxSOAF采用獨立的上下文環境,通過ServiceFactory, 任何一個類都可以在任何環境獲得注入在IoC容器中的實例,從而建立起引用關系。Spring在Web應用中,必須通過Web容器環境獲得上下文的環境。

      JDBC開發模板: JFoxSOAF集成了DBUtils作為JDBC DAO的模板框架,提供數據自動填裝功能,簡化了CRUD操作的開發過程,簡單易用。Spring的DAO模板功能也非常強大,但其需要手工進行數據填裝操作,增大了應用開發的復雜度。

      事務處理: JFoxSOAF采用JOTM作為事務處理器,提供編程式的事務管理,Spring框架提供聲明式的事務管理,更易于靈活地配置開發。

      .Net 開源框架

      Castle

      Castle是.Net系統級框架,它通過將一些成熟開源應用進行無縫整合而成的一套完善的應用系統框架,這其中包括了ActiveRecord、DynamicProxy、MonoRail及MicroKernel/Windsor。MicroKernel/Windsor是Castle的底層核心實現,它采用IoC容器對系統進行運行期動態設置,主要包括Facilities、Components、Services三大部分。

      ActiveRecord對當前熱門的ORM框架NHibernate進行了封裝處理,主要包括將一些常用的數據進行抽象化、通過Attribute來取代mapping文件等。在ActiveRecord的實現中,Model對象必須繼承于Active-RecordBase對象以便于Castle容器進行控制,限制Model對象從其他非持久化對象繼承的可能,這是有違NHibernate/Hibernate最初的設計思想的。在Hibernate的設計思想中,Model對象可以是任意的Java Bean對象。MonoRail是Ruby on Rail的.Net實現,這是一個MVC Web框架。它與傳統WebForm在控制上的不同在于WebForm采用頁控制器模式,而MVC采用前端控制器模式。在界面表達方式上MonoRail采用模板引擎輸出,模板引擎在PHP和JSP上已廣泛使用,而在ASP

      .NET上因為服務端控件的強大功能和易用性而很少有人使用,兩者是各有優缺點。

      Spring.NET

      Spring.NET是由Spring框架移植而來的,Spring框架是Java著名的應用系統框架,它已成為了替代輕量級企業應用的開發標準框架了。Spring.NET包括:

      Spring.Core core就是一個對象工廠(ObjectFactory), 它通過配置中的對象定義來創建對象,它的目的是消除對象的new操作。在配置文件中,除了定義對象的一些屬性外,還能定義對象之間的相互關系,這就使得對象之間的耦合延遲到了運行時,如果針對接口或抽象類進行編程,則還可以通過具體對象的不同實現來定制系統的行為。

      Spring.AOP 這是按AOP聯盟的接口定義來實現的,AOP即面向截面編程,其核心是通過給對象創建一個動態代理對象來接管對象的操作,這樣就能對操作進行前置和后置處理了。

      Spring.Data 這是一個由第三方實現的整合到Spring內的數據訪問組件,目前已包括了NHibernate的實現部分。Spring

      .NET還顯得不夠成熟,一些功能因為平臺的局限性而導致了移植上的困難, 與Castle相比就差了一些。

      Nhibernate

      Nhibernate是.NET持久層框架,它從Java上的Hibernate移植而來。作為一種o/r mapping框架,它具有以下一些特點: 完善的數據映射及關聯操作; 可擴展的持久機制; 強大的數據加載功能; 面向對象的數據查詢語言HQL; 緩存機制; 多數據庫支持。

      Nhibernate的強大之處在于開發者幾乎不用去了解任何數據存儲和查詢的細節問題,而能更專注地通過面向對象設計來構建系統。其HQL查詢語言完全是針對對象及其屬性來設計的,與SQL語法保持一致,降低了學習的曲線。

      當然,Nhibernate還有一些不足之處,如報表數據。另外在性能上, Nhibernate通過反射來執行一些操作以及數據行到對象之間的轉換, 都會造成性能上的一些損失。

      iBatis.NET

      作為另一種.Net持久層框架,iBatis.NET同樣是從Java上的iBatis移植而來的o/r mapping框架,它包括DataMapping和DataAccess兩部分:

      DataMapping: ORM的實現部分, 對象映射通過映射文件來定義,支持one-to-one、one-to-many等對象關系映射。與Nhibernate顯著不同的是,ibatis.net不會自動生成SQL語句,它通過預先定義好的SQL映射來執行數據操作,對于想自由操作SQL或使用復雜表達式的人來說,這是個不錯的選擇。

      DataAccess: 數據存取框架實現,通過在配置文件中定義DAO接口及其實現,就可以方便使用DaoManager進行數據操作了,這也是一個在運行時決定具體實現的標準應用。

        Java版 工作流

      Shark

      Shark是體系和功能最為復雜的代表。它是另一款遵循WfMC的XPDL標準開源工作流引擎,并且同時遵循OMG組織的Workflow Management Facility規范。在所有開源工作流引擎中,Shark的體系最為完備和復雜。其一直秉承著“模塊化”的思想,所以比較容易擴展。但是自從被Together公司收購后,Shark的商業化色彩已經越來越濃,改稱為Together Workflow Server,并僅以Community Edition的形式提供了部分開源代碼供參考。

      OSWorkflow

      OSWorkflow是最輕量型的代表,也是一款非常靈活和低級別定位的工作流引擎的實現框架。低級別定位的意思是說,它不是定位在解決流程模型對象和運轉場景,而是提供一套可維護調度的機制,供開發人員自主擴展。這個維護流程調度機制OSWorkflow選擇的是基于行為(Action)的FSM理論,所以OSWorkflow更像是一個復雜而靈活的有限狀態調度機。

      OSWorkflow在國內項目應用得較多,很多國內的簡易審批流程項目都是基于其引擎二次開發而來。這主要是由于OSWorkflow是基于Action驅動的,而國內的客戶也很容易接受這樣的操作習慣。但OSWorkflow所依賴的FSM模型對于分支、聚合、子流程的支持度很低,這一點在實施過程中需要注意。

      jBpm

      jBpm是最適合擴展的代表,是在所有開源引擎中最適宜被商業化應用的一款。首先其流程建模模型是基于Activity Diagram(活動圖)的,并在引擎構建上融入了FSM和PetriNet思想,所以其內核和根基比較牢固扎實。其次,自從被JBoss收購后,其3. x系列的結構更加趨于微內核,Plug-in思想也更加深入。其同時還提供了對BPEL擴展,存儲支持JBoss Hibernate實現,集成了JBoss seam,規則引擎準備采用JBoss rules,并準備集成JBoss Messaging。這樣,不論從內核和外圍應用,jBpm都具有了強勁的動力。

      另外,jBpm對Token的應用也很有特色,巧妙地利用Parent-Child Token的機制處理分支、父子流程等復雜應用場景。這個設計思想很值得大家學習參考。

      YAWL

      YAWL是算法和模式最值得研究的代表,它是Alast力主倡導的一款基于PetriNet建模的工作流引擎,其將PetriNet的Token與And、XOR、OR算法進行了融合,并對Workflow Patterns(工作流模式)中所有模式提供支持。但YAWL本身僅是一個研究性項目,所以其結構和實現缺少了商業化應用的特點。但有必要研究一下YAWL,一方面可以加深對工作流模式的理解,另一方面,YAWL的一些建模思想、處理算法很值得推敲和吸納。

      ActiveBPEL

      ActiveBPEL 是BPEL引擎的代表,也是一款可執行BPEL4WS規范的開源流程引擎,其結構和實現方式具有很高的參考價值。目前國內很多正在開發基于BPEL產品的中小型軟件廠商,其實現的很多基礎性內容和思想都參考自ActiveBPEL。受目前國內中小型客戶對流程需求的限制,基于BPEL的開源引擎或小型產品被市場接受度還很低。但BPEL所圍繞的業務流程及流程整合應用是一個發展趨勢。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>