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