開放源碼的SOA專案,雖然不像商用的解決方案一樣被炒得沸沸揚揚,但其實是以鴨子划水之勢,悄然進入應用階段。

開放源碼SOA專案百花競放
SOA的概念約在2003年中開始受到關注,2004年是孕育期,2005年則進入成長期,到了2006年進入整合期。透過Google Trends,我們可以看出SOA及ESB(Enterprise Service Bus,企業服務匯流排)這幾年來的成長狀況。

圖一中綠底黑色數字代表SOA相關開源專案的創立或發表時間 (當然這裡只列舉一些較受關注的)。我們隱約可以看出,在各個開放源碼的SOA專案如火如荼推出之際,也正是SOA的熱度向上攀升之時。


圖一:透過Google Trends的分析,可以看出SOA及ESB這幾年來的成長狀況。


孕育期
2004年SOA的孕育階段,主要有2個ESB的開放源碼專案:

1.Mule ESB:這可能是開放源碼界最早成立的ESB專案。它的強項是不用更改既有系統,直接透過組態設定,就可連接各服務端點。創立者Ross Mason的說法,他在2001年就開始構思,而於2003年將它轉變成開源專案。


圖二:Mule ESB的強項是不用更改既有系統,直接透過組態設定,就可連接各服務端點。


2.XFire:輕量級的SOAP開放源碼框架,支援以POJO和Schema的方式開發Web Services。由於底層透過StAX處理SOAP資訊,性能優越。除了能夠與Spring整合外,還可透過JBI (Java Business Integration)元件,與JBI容器如ServiceMix、PEtALS整合。

成長期
2005年隨著支援SOA實作的各項標準開始出現,開放源碼也開始蓬勃發展,有多個專案在此時出現:

1. ServiceMix:創立於2005年6月。由於它在開發不久就正巧遇上JBI的規範審議,因此 ServiceMix團隊便決定以JBI規範重新打造核心。在JBI發佈1.0-M1版本時,ServiceMix宣稱它是第一個以JBI為基礎開發的開放源碼ESB。

2.LogicBlaze FUSE:這是 ServiceMix 的加強版,提供商業化的支援。

3.Sun Open ESB:昇陽在2005年JavaOne開發者大會結束後,成立的專案,提供JBI的參考實作。

4.IONA Celtix:座落於ObjectWeb開放源碼組織的一套ESB專案,它運用JMS作為底層平臺,包含了JAX-WS2.0的實作,可與JBI及SCA協同運作,並提供API擴充介面。

5.Apache Synapse:由Apache推出的應用程式整合,以中介Web Services為主。

6.Eclipse STP:SOA Tools Platform(STP),簡而言之,就是一個可運用於Eclipse的SOA基礎工具擴充套件。除了可供SOA開發人員直接使用外,它的基礎開發框架支援SOA的軟體設計、配置、組裝、部署、監控,以及SOA相關的管理,可作為其他工具開發廠商的SOA開發環境實作參考。

7.JBoss JEMS:JBoss公司所推出的企業中介軟體套件,幾乎把所有JBoss的產品全放上去了。

8.PEtALS ESB:此專案由ObjectWeb發起,使用JBI容器作為核心元件,特色是支援動態的分散式ESB部署,且具有中央控管的能力。

9.Apache Tuscany:此專案尚在Apache孵育。實作由IBM、BEA等幾家大廠所提議的SCA、SDO(Service Data Object)及DAS(Data Access Services)規範。值得一提的是,昇陽也在2006年7月初加入SCA/SDO國際構件標準組織。

整合期
時序進入2006年,開放源碼的專案開始相互整合,由於開放源碼的SOA專案均遵循標準,整合性佳,而透過不同專案元件間的相互引用,可達到「螞蟻雄兵」的效果,建構出完整的解決方案。在這一年出現的SOA專案有:

1. JBoss ESB:由JBoss公司推出的開放源碼ESB套件。JBoss內部本有一個ESB專案,在2006年6月又收購Rosetta ESB,並開始兩者的合併。

2.Apache CXF:結合XFire及Celtix兩大專案,企圖在效能與標準間取得最好的支援。透過JBI元件,Apache CXF可與JBI容器整合,作為ESB的傳輸層。

3.ChainBuilder ESB:遵從JBI技術規範,採用ServiceMix作為ESB核心元件。特色是包含一個圖形化的服務流程匯編工具,可在Eclipse內使用。

4.NetBeans與NetBeans Enterprise Pack:Netbeans 自從 5.5 版後,即可透過 NetBeans Enterprise Pack 開發及部署以 JBI 為核心的 SOA 服務組件。


圖三:NetBeans Enterprise Pack 可開發及部署以 JBI 為核心架構的 SOA 服務組件。


5. Fabric3:2007年剛剛創立的新專案,位於Codehaus社群,是繼Apache Tuscany之後另一個SCA實作。這個專案強調SCA在分散式環境下自動化啟用、Web Services的管理、易用性及部署的快捷性。它包含服務之間的動態繫結及執行環境當機時的自動回復功能。目前發行版本只到 0.1。

《作者簡介》謝鎮澤
現任UniMiner產品開發經理,從事Java分散式系統開發多年,曾任2006年JavaTwo專業技術大會– 「SOA之原則、設計與實務」場次講師

相關閱讀:
SOA的開源大勢(2)開源SOA專案的遷徙與合併
SOA的開源大勢(終)開放源碼SOA專案的應用

熱門新聞

Advertisement