企業應用下的中介軟體
自由軟體在企業的應用,包含從伺服器作業系統及相關服務更上一層樓(moving up the stack)到中介軟體的階段。以Linux、FreeBSD作為伺服器的作業系統,架上自由軟體的網頁伺服器(Apache, Tomcat等)、郵件伺服器(Postfix等)、檔案伺服器(Samba)、資料庫(MySQL)等,已成為企業提供基本服務的常見做法。然而除了這些基本服務外,企業整合需要更多標準化的程式元件與架構來滿足如流程管理、分散式處理及資料交換的需求,而「中介軟體」能滿足這些需求。
自由軟體鑄造場(OSSF supports software freedom)從去年2005年起的重點工作項目,就是協助企業找到適合的自由軟體元件,整體規劃企業中介軟體並建置諮詢。有鑑於國際中介軟體市場走向開放原始碼及開放標準的趨勢,自由軟體也將在企業用的中介軟體扮演舉足輕重的角色。
自由企業中介軟體資源
中介軟體的種類繁多,彼此之間的定位也有不少重疊的地方,為了涵蓋各個層面的中介軟體,們對於資源分類的依據,將是由功能涵蓋面從大到小的排序,做成一個自由企業中介軟體資源目錄;亦即上層分類裡的軟體功能可能會包括下層分類的部分內容。根據這個原則,第1類是Presentation/Framework,第2類是Application Platform,因為Framework大都是以Application Platform為基礎再擴充(如Web Service)更多的功能。至於第3至第7類分別是Workflow、Web Service、EAI、ETL、Persistency/Database,這五類彼此並沒有功能涵蓋關係,都是目前企業軟體中重要的元件,其功能也常常被Presentation/Framework以及Application Platform這兩者涵蓋,但是其中很多軟體元件比Presentation/Framework或Application Platform更能提供更多的專屬功能。第8類Developer Utility則是屬於輔助開發者開發中介軟體的元件,第9類General Information提供中介軟體一般性的資訊。以下將分節敘述自由軟體企業中介軟體資源目錄的分類。
Presentation/Framework
目前中介軟體在Framework的發展上較受矚目的是.NET以及Java相關的應用。而開放原始碼的Framework則是以Java為基礎的Framework、如Struts以及Spring的應用較為成熟,另外就是以Python為基礎的Zope,也有不少的軟體使用。
Application Platform
Application Server在目前的中介軟體應用越來越普遍,尤其是Java相關的J2EE實作,而實作J2EE最成熟的開放原始碼專案目前是JBoss的JBoss AS、ObjectWeb的JOnAS以及Apache的Geronimo。
Workflow
結合Workflow以及EAI等功能的BPM(Business Process Management),是現今企業軟體新的熱門領域,大部分的Workflow都是依照WfMC的規格設計。而目前Workflow最常用的描述語言分別是XPDL以及BPEL,在開放原始碼的領域中,使用XPDL的Workflow元件較為成熟,如Enhydra Shark以及jBPM,而這兩個元件都是以Java作為基礎。使用BPEL的Workflow較少,目前成熟的是Active BPEL。
Web Service
現在的企業應用大都脫離不開網路,利用HTTP作為軟體之間交換資料方式的做法(如SOAP)也越來越普遍。以Java相關規格為基礎的Apache Jakarta Tomcat是目前最成熟、也是最廣泛被使用的開放原始碼Web Service。
EAI/ETL
對企業應用軟體來說,軟體跟軟體之間的資料轉換一直是很重要的一個功能,從以前的EDI,到現在因應B2B以及軟體整合需求而演化成的EAI以及ETL,都是為了讓軟體之間的連結更順利而產生。開放原始碼所提供的EAI以及ETL種類跟數目非常多,從功能單純的XML跟PDF轉換、如Babeldoc到功能完整的JDBC跟JDBC轉換如Octopus都具備。
Persistency/Database
資料庫在企業軟體中已是不可或缺,而連結資料庫的規格也是琳瑯滿目,開放原始碼的軟體元件在在規格的實作或是擴充這方面的選擇也很多,例如實作JDO規格的Speedo,以及提供JDBC叢集(Cluster)能力的C-JDBC。
Developer Utility
中介軟體的開發,除了提供適合的軟體元件之外,是否有合適的工具軟體提供給程式設計師,也是重要考慮的因素。這方面開放原始碼的相關軟體,包括從輔助編譯軟體的Apache Ant、提供IDE擴充功能的JOPE、針對中介軟體提供效能測試的RUBiS等等,都有成熟的軟體可供選擇。
General Information
從包含提供軟體元件以及制定規格等與自由軟體企業中介軟體相關的組織來看,大部分成熟的自由軟體企業中介軟體大都是組織合作之下的產物,其中較大專門提供自由軟體企業中介軟體的組織有Apache、JBoss、ObjectWeb、OpenSymphony等等。
自由企業中介軟體參考架構
上述所描述的資源目錄,其相關的自由軟體元件不僅是已進入系統的開發成熟階段,而且符合彼此整合的標準要件,可因應企業對中介軟體的需求。根據這些中介軟體的基本分類概念,我們可進一步建構一款中介軟體參考架構,以便符合企業在整合、評比、選擇相關中介軟體時,可作為綜觀全局的參考依據。
如(圖一)所示,中介軟體參考架構,清楚的標示在應用程式(Application or Other Applications)、資料庫(database)及作業系統(Operating System)之間,而中介軟體的分別區塊,正對應 著上述中介軟體資源目錄、依其功能以及使用上的定位所整理出來的分類。
一般而言,大型的軟體都會採用一個Framework或者是Application Server作為基礎架構,其中有些Framework架構內便包含Application Server、Workflow、Web Service等元件。透過EAI/ETL、Web Service等元件可連結其他應用程式,也可透過Persistency/DB元件跟資料庫連結。另外系統內部可能有一個或多個Workflow Engine作為企業流程控管的基礎引擎,在開發的過程再使用一些Developer Utility加速其流程。
自由企業中介軟體架構實例
目前的自由企業中介軟體發展,大都是由大型組織或單位開發,以(圖二)ObjectWeb為例,就是將ObjectWeb中以Java為基礎的部份中介軟體,用參考架構組織起來。ObjectWeb最基礎的元件,就是屬於JonAS內容的J2EE Application Server,在上面採用BS Framework以提供更多的Java功能。Workflow可採用Shark,如果有叢集的需求,則可用C-JDBC取代原有的JDBC。另外Axis與Xerces可提供SOAP以及XML解析的功能。JOPE則是一個JOnAS的IDE外掛套件,可讓程式設計師更有效率的使用JOnAS的功能。
結論
從ObjectWeb的例子來看,目前在自由企業中介軟體,以J2EE為基礎的相關軟體較為完整,另外兩個開發自由軟體企業中介軟體的組織如JBoss以及Apache對J2EE的支援情形也是類似。
用中介軟體參考架構套用這些組織的專案就可以看出這個結果,所以利用參考架構不但可以看出中介軟體開發組織的軟體完整度,也可以拿來當作使用中介軟體的參考標準。(作者為中央研究院資訊科學研究所自由軟體鑄造場技術組)
未來我們將承續先前服務自由軟體專案開發者及使用者的經驗,研究台灣企業需求及國際技術趨勢,以球達到利用自由軟體提升企業競爭力的目標。