開放源碼專案向來有一種逐人氣而居的傾向,也講究品牌認同。Apache可說是開放源碼平臺的金字招牌,始終是其他專案心所嚮往的地方。

許多開放源碼專案都是先由其他組織發掘,進一步發展之後,才喬遷到Apache。例如CodeHaus及ObjectWeb就像開放源碼社群中的星探。就ESB相關領域來說,ServiceMix原本安居在Codehaus,後來搬到Apache;XFire和Celtix原本分別位於Codehaus及ObjectWeb,後來合併遷移到Apache。

ObjectWeb 是一套自我定位為發展分散式系統、中介軟體專案的開放源碼平臺。由於發源地在法國,社群內的專案主要也是來自法國,並於2005年9月加入中國的四方軟件,近來更是廣招各地菁英加入,有愈見國際化之勢。


開放源碼SOA社群的不同專案,逐漸由競爭走向融合,彼此借力使用,互通有無。


筆者認為整體上而言,由ObjectWeb所發展的開放源碼專案,具有技術領先的特質。例如當今正熱的OSGi (Eclipse所採的plug-ins架構),數年前在ObjectWeb就有對應的Oscar專案。其他還有支援AOP(Aspect-oriented Programming)的JAC應用程式伺服器,支援網格運算的ProActive專案。就連支援JBI的PEtALS,也是公認動態性及分散式運算能力最佳的ESB環境。

而著重於發展Java、高素質的元件化專案的CodeHaus,同樣是開放源碼平臺,總體而言,令人有耳目一新、品質精良的感覺。比較著名的專案包括Boo .NET手稿語言、Groovy Java手稿語言、Mule ESB、XFire Web Services套件、Drools規則引擎,以及Jetty應用程式伺服器等。

開放源碼的聯姻,公開標準來做媒
傳統上開放源碼專案給人的印象,就是由開發人員製造出來,給另一群開發人員使用的東西。這樣的東西可能功能簡易,使用介面陽春。但在SOA的世界中,情況可能完全逆轉。此話怎講呢?

首先,目前業界導入SOA最成功的方式,莫過於透過ESB把企業內的各級系統服務化,再加以整合。當初昇陽為了防止過去EAI(Enterprise Application Integration,企業資訊整合)解決方案遭廠商鎖死,無法遷移平臺的弊病,再度發生於ESB,於是遂在JCP內發起JBI(Java Business Integration,Java商業整合)規範,也就是JSR 208。

基本上,JBI規範了一組元件化的SPI(System Programming Interface),以實作出ESB容器架構。也就是說,只要遵守此規範的ESB容器,理論上各部元件,包括服務引擎及繫結元件,都是可以拆解開、部署到別的ESB容器內。

這事對開放源碼專案有何影響?有「識」之士 (如ServiceMix的創建者James Strachan)立即抓住這個契機,直接以JBI規範打造ESB容器的核心。有如ESB版的Eclipse,各種JBI元件均爭相外掛(Plug In)到ServiceMix。


JBI規範一組元件化的SPI(System Programming Interface),只要遵守此規範的ESB容器,其各部元件,都可以拆解開、部署到別的ESB容器內。


SOA與開放源碼最速配
至此整個開放源碼SOA社群的不同專案,開始慢慢由競爭走向融合。不同的ESB執行期、傳輸層 (如 SOAP、JMS),以及執行商業邏輯的服務引擎,開始彼此借力使用,互通有無。

例如,ServiceMix的強項在JBI核心環境,那麼它就可與Axis、CXF等Web Services專案互補,將Axis及CXF透過JBI元件介面與ServiceMix核心環境整合。

另外像Mule ESB的強項,在於擁有為數眾多的Provider(如JMS、JDBC、TCP、UDP、Multicast、HTTP、Servlet、SMTP、POP3、File、XMPP等),可與各式系統連接,但它目前並不像ServiceMix一樣具有JBI核心環境。若要筆者為它選擇一個聯姻的對象,建議是來自ObjectWeb的PEtALS。因為PEtALS的JBI容器環境甚佳,具分散部署、集中控管的能力,正好可彌補Mule ESB的不足。

當初不看好JBI或是來不及加入JBI特性的專案,現在也急著想再回頭(或從頭)加入JBI特性。例如Mule ESB已經開始開發Mule-JBI,他們想利用既有Mule架構實作JBI規範。而JBoss ESB開發經理Mark Little 雖認為JBI 只不過是SOA整塊拼圖的一部分,但也視實作JBI為涅槃(離苦得樂之道)。

由於JBI廣為開放源碼接受,讓整個社群變成一個分散式的元件工廠。我們可以把開放源碼社群看作是一家「開放源碼SOA元件無限公司」。只要授權得宜,彼此可以共享程式碼。

開放源碼SOA專案的未來值得期待
開放源碼是一股無法遏止的潮流。根據一項調查,Eclipse在2004年以56.2%拿下使用率最高的Java整合開發環境寶座,離其成立的2001年,也不過3年光景。Eclipse的成功,來自於開放源碼以及可擴充的外掛架構,而這些特色正好與開放源碼SOA專案若合符節。基於這份相似性,我們有理由期待3年後美好的SOA開放源碼光景。

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



SOA 相關開放源碼專案的授權方式及網址

專案名稱 網址
Mule mule.codehaus.org
Xfire xfire.codehaus.org
ServiceMix servicemix.org
LogicBlaze FUSE www.logicblaze.com
Sun Open ESB open-esb.dev.java.net
IONA Celtix celtix.objectweb.org
Apache Synapse ws.apache.org/synapse
Eclipse STP www.eclipse.org/proposals/stp/
JBoss JEMS www.jboss.org/products/index
Petals ESB wiki.petals.objectweb.org
Apache Tuscany incubator.apache.org/tuscany/
JBoss ESB labs.jboss.com/portal/jbossesb
www.jboss.com/products/esb
Apache CXF cwiki.apache.org/CXF/
ChainBuilder ESB www.chainforge.net
NetBeans Enterprise Pack www.netbeans.org
Fabric3 fabric3.codehaus.org



相關閱讀:
SOA的開源大勢(1)開放源碼SOA專案低調進入應用階段

熱門新聞

Advertisement