開源不僅僅是針對商用,SOA也僅僅是針對系統(tǒng)集成。這兩個因素正醞釀IT的一場技術機制與商業(yè)模式的變革,同時這也構成了新的行業(yè)“洗牌”動因。而把SOA與開源軟件的優(yōu)點相結合,不僅可以降低客戶的IT成本,同時還能敏捷地應對不斷變化的業(yè)務需求。那么開源能否成為SOA的急先鋒呢?或是兩者相得益彰?抑或開源是SOA的終歸宿?
一、開源與SOA合并漸成趨勢
應用軟件及應用解決方案采用開源軟件或是部分采用開源軟件已是普遍的趨勢,因為這樣做可以降低信息化的成本。開源策略的優(yōu)勢,可歸為三點:
1.提高企業(yè)系統(tǒng)的獨立性,即公司的IT系統(tǒng)不會被綁定于某一家的商用環(huán)境上,以便于企業(yè)走獨立的技術發(fā)展路線;
2.初期投入很小,雖然開源也不意味著完全免費,但總費用上開源軟件小于商用軟件;
3.開源的門檻低,人力資源易于獲得,表現(xiàn)為運營、研發(fā)時費用更低。
開源比商用方式更具優(yōu)勢,開源陣營的人力成本低而易補充,在開源社區(qū)中很容易找到熟悉J2EE的人,但要在IBM公司以外找到熟悉DB2和Websphere的人恐怕很難。在一般的企業(yè)級應用中,開源軟件不會遇到技術上的挑戰(zhàn),相反,在構建SOA時,其開源組件的粒度和粘度正好,尤其是應用服務的開發(fā)。
開源應用與SOA越來越成為完美的搭檔。這一點正在為行業(yè)所重視。由Forrester調研公司和Unisys合作進行的一項調查顯示,大部分CEO認為開源軟件是向SOA和集成計劃進軍的佳途徑。
參加調查的400位CEO中,有71%認為在整合IT基礎設施時開源軟件能夠起到“重要”或“非常重要”的作用。另外,有57%的被調查者認為開源資源對于促進SOA項目具有非常重要的作用。
這些回答的一個核心是SOA所具有的延長原有應用生命周期的能力。Forrester還表示,有78%的被調查者出于對開源標準的認可而傾向于使用開源軟件,而這正是提升SOA作為下一代企業(yè)基礎架構的價值的主要原因。
事實上,已經(jīng)在有一些開源軟件及開源服務可供使用了。Apache組織提供了一系列的開源SOA。企業(yè)可以使用ActiveMQ(一個開放源碼基于Apache 2.0 licenced 發(fā)布,并實現(xiàn)了JMS 1.1。能夠與Geronimo、輕量級容器和Java應用程序無縫的集成)進行通信。可使用開放源的Apache Axis 2.0 進行Web服務集合。可使用Apache ODE(Apache 正在孵化的WS-BPEL 引擎)工作流引擎。使用ESB(Enterprise Service Bus)無縫地組合與拆解該復合應用程序。
二、開源的SOA規(guī)范及實現(xiàn)
為了響應客戶需求,IBM、BEA、Oracle、SAP、Primeton 等公司正在合作制定用于構建SOA系統(tǒng)的規(guī)范,為開發(fā)人員提供構造基于SOA應用程序的更簡單更強大的方法。目前,制定規(guī)范的工作交由這些公司組成的 OSOA(Open Service Oriented Architecture)協(xié)作組織負責,另外OSOA還負責在Apache推出開源的SCA/SDO實現(xiàn),用來更快的催化市場的發(fā)展。
OSOA目前正在起草一系列的規(guī)范,并以免版稅的許可方式提供給業(yè)界使用。OSOA的業(yè)界伙伴們現(xiàn)在主要在兩個項目上協(xié)同工作,分別是SCA(Service Component Architecture,服務構件架構)和SDO(Service Data Objects,服務數(shù)據(jù)對象)。OSOA于2007年3月份發(fā)布了SCA 1.0 和SDO 2.1 規(guī)范,并已經(jīng)提交到OASIS標準組織,為SOA的正式落地揭開了序幕。這兩個項目像OSOA的兩架馬車一樣,為SOA架構立下了汗馬功勞。根據(jù)筆者掌握的新情報,OSOA正在準備啟動第三架馬車:DAS(Service Data Objects,服務數(shù)據(jù)對象)。
SOA作為新生事物,它的開源實現(xiàn)已經(jīng)初現(xiàn)端倪。SCA和SDO的開源產(chǎn)品,主要有Apache Tuscany、Eclipse STP(SOA Tools Platform)、PECL SOA for PHP、CodeCauldron Newton等。這些開源產(chǎn)品中,尤其以Apache旗下的Tuscany和Eclipse旗下的STP為引人注目。
Apache Tuscany:是Apache Incubation的一個開源項目,主要開發(fā)人員來自IBM和BEA。Tuscany出身于皇家血統(tǒng)(OSOA聯(lián)盟),可以算是SCA和SDO的正宗的開源項目了。與Eclipse STP相比,Tuscany提供的只是一個SOA基礎設施,包括SCA運行時環(huán)境、SDO和DAS實現(xiàn),Tuscany項目本身并不提供SOA開發(fā)和管理IDE插件。
Eclipse STP(SOA Tools Platform):是由IONA、IBM、BEA、Sybase、ObjectWeb 等公司貢獻的,并于2005年成為Eclipse的第九個開源項目。STP目前尚未有正式的版本release,新的穩(wěn)定版本是2007年2月1號發(fā)布的(S200702011041)版本。根據(jù)項目計劃,STP將于2007年8月29號發(fā)布Europa版(中文意思為“木衛(wèi)二”,木星亮的四顆行星之一,與木星的距離排在其衛(wèi)星的第七位,早為伽俐略觀測到)。Europa版即是原來的Callisto版。
PECL(PHP Extension Community Library)庫:在PHP社區(qū)是無人不知無人不曉,不過知道PECL庫新納入的SOA PHP項目的人卻并不多見。SOA PHP項目的主要目標是用PHP來實現(xiàn)SOA中的SCA/SDO標準,這對PHP社區(qū)真是個莫大的福音。
Newton:它是基于GPL協(xié)議的,這意味著如果對Newton源代碼做了修改,修改后的代碼也需要免費開放給第三方使用,并需要將修改后的源代碼反饋給Newton項目。它是一個分布式的運行時框架,用來對企業(yè)級環(huán)境下復雜的SOA系統(tǒng)做動態(tài)的實例化和可持續(xù)管理。Newton利用SCA系統(tǒng)描述,對OSGi的組件做動態(tài)的部署,由此實現(xiàn)對分布式的異構數(shù)據(jù)源的監(jiān)控和管理。