梁 銘 歐陽艷階
[摘要]本文闡釋了SOA的內(nèi)涵,從企業(yè)的角度描述了SOA的應(yīng)用現(xiàn)狀及存在的一些問題。對眾多準備實施SOA的IT企業(yè)及需要采取SOA實施企業(yè)服務(wù)架構(gòu)的大型企業(yè)具有一定的指導(dǎo)意義。
[關(guān)鍵詞]軟件架構(gòu);SOA;企業(yè)業(yè)務(wù)流;ESB;系統(tǒng)集成
[中圖分類號]TP311.5[文獻標識碼]A[文章編號]1008-4738(2009)05-0092-03
SOA是1996年Gartner最早提出的一個概念,它的全稱Service-Oriented Architectur,即面向服務(wù)架構(gòu)。Gartner在2002年12月提出了“SOA是現(xiàn)代應(yīng)用開發(fā)領(lǐng)域最重要的課題”,并預(yù)計“到2008年SOA將成為占有絕對優(yōu)勢的軟件工程實踐方法,主流企業(yè)現(xiàn)在就應(yīng)該在理解和應(yīng)用SOA開發(fā)技能方面進行投資”[1]。其實BEA、IBM、Microsoft等企業(yè)早就看到了它的價值,并已經(jīng)成功建立并實施SOA應(yīng)用軟件很多年了。中國著名ERP制造商——金蝶中間件有限公司作為全球技術(shù)領(lǐng)先的企業(yè)基礎(chǔ)架構(gòu)軟件公司,它是國內(nèi)最早一批實施SOA的IT企業(yè)?;赟OA成功實施了銀川市三農(nóng)信息數(shù)據(jù)平臺項目,金蝶的Apusic ESB集成中間件成功地作為銀川三農(nóng)信息數(shù)據(jù)平臺的基礎(chǔ)平臺。
一、SOA的內(nèi)涵
什么是SOA呢?其實對于任何一個IT廠商而言SOA沒有一個完整的定義,只是有一些“松耦合”的標準。SOA就是面向服務(wù)的架構(gòu),是一種方法論,不是一種技術(shù),也不是一個產(chǎn)品。它是一種思想,一種方法論[2]。要真正理解什么是SOA需從軟件開發(fā)的技術(shù)發(fā)展史談起。軟件開發(fā)到目前為止共經(jīng)歷了五個階段:機器語言,匯編語言,面向過程的開發(fā),面向?qū)ο蟮慕M件開發(fā),面向服務(wù)的架構(gòu)(SOA)開發(fā)。
與前面四代的軟件開發(fā)技術(shù)相比, SOA超越了軟件開發(fā)語言本身,是一種面向服務(wù)的架構(gòu),與軟件開發(fā)語言無關(guān)。
首先,SOA是一種開發(fā)思想,是一種“松耦合”的框架,它可以讓軟件超越開發(fā)語言。
其次,SOA的開發(fā)需要SOA體系的支撐,就像J2EE應(yīng)用一樣,離不開應(yīng)用服務(wù)器。SOA也一樣,也有一個類似J2EE服務(wù)器的東西支持著整個SOA體系架構(gòu)——ESB(Enterprise Service Bus即企業(yè)服務(wù)總線)。通過這個總線,將多個系統(tǒng)連接起來。
最后,SOA是基于消息請求響應(yīng)的一個系統(tǒng),對請求類型有高度的兼容性。與一個Web應(yīng)用容器相比,web應(yīng)用容器只能處理HTTP請求,而SOA的ESB可以接受HTTP、FTP、WebService、JMS等請求。這就使得SOA架構(gòu)具有高度的兼容性,可以將不同的平臺集成到一起,從而相互協(xié)調(diào)工作。
我們可以從SOA提出的背景來進一步闡述SOA的內(nèi)涵。SOA作為一種新的軟件架構(gòu)模式,其核心思想是解決IT系統(tǒng)的靈活性和降低IT系統(tǒng)的開發(fā)、運營成本。
IT系統(tǒng)必須具有靈活性,有能力接受企業(yè)業(yè)務(wù)進一步增長的挑戰(zhàn),但又不能影響原有業(yè)務(wù)的增長軌跡。而以前的軟件架構(gòu)難以解決的最大難題之一是技術(shù)層難以隨著業(yè)務(wù)層需求的改變而靈活改變。即便改動技術(shù)層,這也將是一個代價高昂的過程,因為原有系統(tǒng)中各子系統(tǒng)、各模塊之間是一種“緊耦合”結(jié)構(gòu)。這種對原有系統(tǒng)的拆分和重構(gòu)的工作量和成本是巨大的。這就需要在企業(yè)應(yīng)用新的IT架構(gòu)時有一種更加靈活的軟件系統(tǒng)架構(gòu)模式。
SOA革命性的思路是在傳統(tǒng)的技術(shù)層和業(yè)務(wù)層之間增加一個服務(wù)層,服務(wù)層通過一套協(xié)議或規(guī)范把應(yīng)用程序從底層技術(shù)層調(diào)出來進行封裝,再根據(jù)業(yè)務(wù)需求靈活組合。
SOA的目標在于讓IT變得更有彈性,以更快地響應(yīng)業(yè)務(wù)單位的需求,實現(xiàn)實時企業(yè)(Real-Time Enterprise)[3]。面向服務(wù)架構(gòu)(SOA)是讓IT更加關(guān)注業(yè)務(wù)流程而非底層IT基礎(chǔ)結(jié)構(gòu),從而獲得具有競爭優(yōu)勢的更高級別的應(yīng)用程序開發(fā)架構(gòu)。
SOA對需要使用信息技術(shù)解決關(guān)鍵業(yè)務(wù)問題的企業(yè)(包括希望減少冗余架構(gòu)、創(chuàng)建跨客戶和員工系統(tǒng)的公共業(yè)務(wù)接口的企業(yè);需要基于角色和工作流對用戶提供個性化信息業(yè)務(wù)的企業(yè);希望通過Internet實現(xiàn)跨區(qū)銷售、升級銷售和經(jīng)由移動設(shè)備的訪問來提升客戶服務(wù)的組織)很有價值。同時對于IT企業(yè)也是一次重要革命。
為什么這么說呢?因為IT企業(yè)的現(xiàn)狀是不同種類的操作系統(tǒng),應(yīng)用軟件、系統(tǒng)軟件和應(yīng)用基礎(chǔ)結(jié)構(gòu)相互交織,一些現(xiàn)存的應(yīng)用子系統(tǒng)如ERP、CRM、OA等被用來處理當前的業(yè)務(wù)流程(Business Processes),因此從頭建立一個新的基礎(chǔ)環(huán)境是不可能的。企業(yè)應(yīng)該能對業(yè)務(wù)的變化做出快速的反應(yīng),利用對現(xiàn)有的應(yīng)用程序和應(yīng)用基礎(chǔ)結(jié)構(gòu)(Application InfraStructure)的投資來解決新的業(yè)務(wù)需求,為客戶、商業(yè)伙伴和供應(yīng)商提供新的互動渠道,并呈現(xiàn)一個可以支持有機業(yè)務(wù)(Organic Business)的構(gòu)架。SOA憑借其“松耦合”的特性,使得企業(yè)可以按照模塊化的方式來添加新服務(wù)或更新現(xiàn)有服務(wù),以解決新的業(yè)務(wù)需要,提供選擇,從而可以通過不同的渠道提供服務(wù),并可以把企業(yè)現(xiàn)有的或已有的應(yīng)用作為服務(wù),從而保護了現(xiàn)有的IT基礎(chǔ)建設(shè)投資。
SOA的優(yōu)點主要體現(xiàn)在以下兩個方面:
1.從企業(yè)用戶角度來看。提高效率:將業(yè)務(wù)流程從"煙囪"狀的、重復(fù)的流程向維護成本較低的高度利用、共享服務(wù)應(yīng)用轉(zhuǎn)變。高敏捷性:可以迅速適應(yīng)和傳送關(guān)鍵業(yè)務(wù)服務(wù)來滿足市場需求,為客戶、雇員和合作伙伴提供更高水準的服務(wù)。增強適應(yīng)性:更高效地轉(zhuǎn)入轉(zhuǎn)出降低整個業(yè)務(wù)的復(fù)雜性和難度,從而節(jié)約了時間和資金。
2.從IT企業(yè)的角度來看。低復(fù)雜性:基于標準的兼容性,與點到點的集成相比降低了復(fù)雜性。 高可重用性:通過重用以前開發(fā)和部署的共享服務(wù),實現(xiàn)了更有效的應(yīng)用程序、項目開發(fā)和交付。 遺留集成:用作可重用服務(wù)的遺留應(yīng)用程序降低了維護和集成的成本。 如今的服務(wù)驅(qū)動型企業(yè)都在體驗著開發(fā)的高效率,服務(wù)的高可靠性和服務(wù)的高質(zhì)量,以最大限度獲得業(yè)務(wù)機會所帶來的這些好處。
二、SOA應(yīng)用及現(xiàn)狀
IDC報告預(yù)測到2011年,全球有關(guān)SOA計劃的軟件支出將達到140億美元,受SOA推動的專業(yè)服務(wù)業(yè)務(wù)也會增加到408億美元。EBIZQ的調(diào)查發(fā)現(xiàn),SOA正在大企業(yè)中獲得增長的動力。46%的大企業(yè)已經(jīng)采用了SOA。還有18%的大企業(yè)計劃在6個月之內(nèi)采用SOA。大約有18%的大企業(yè)計劃在一年之內(nèi)應(yīng)用SOA。8%的大企業(yè)預(yù)計在一年之后應(yīng)用SOA。還有10%的大企業(yè)還沒有SOA的計劃。根據(jù)Wintergreen Research最新調(diào)查數(shù)據(jù)顯示,IBM作為全球SOA的領(lǐng)導(dǎo)者在SOA市場份額已達64%,比去年提高了11個百分點。迄今為止,IBM在全球已經(jīng)擁有6 550多家SOA客戶和5 000多家SOA業(yè)務(wù)合作伙伴。
現(xiàn)有的SOA應(yīng)用標準是WEB Services, WEB Services是SOA目前最好的服務(wù)高端方式,XML是目前格式化數(shù)據(jù)在二維平面的最好表達方式。正是由于近些年來WEB Services和XML這些標準的推出和實施,才使得SOA在企業(yè)級的應(yīng)用得到推廣。
SOA發(fā)展重點是業(yè)務(wù)流程管理(BPM)與重復(fù)利用的結(jié)合。Evans Data公司SOA分析師Joe McKendrick認為“服務(wù)的再利用是SOA的最終目標”。 業(yè)務(wù)流程管理將成為SOA實施的驅(qū)動者,那么業(yè)務(wù)流程管理該怎么實施呢?這就需要建立一個專門的“流程架構(gòu)”,一般來講,“流程架構(gòu)”包括識別用戶界面與合作者界面,實現(xiàn)商業(yè)目標的關(guān)鍵流程以及通過BPM 和SOA優(yōu)化程序的整體聚焦。一個流程架構(gòu)應(yīng)該從最重要的10到15個商業(yè)關(guān)鍵流程著手,以避免流程滯后。
但是我們也應(yīng)看到,目前國內(nèi)SOA的應(yīng)用和預(yù)期還是存在差距,造成這種差距的主要原因有多方面的。主要體現(xiàn)在以下兩點:
1.認識差距
這種認識上的差距一方面來自IT企業(yè)對SOA的應(yīng)用要么持懷疑態(tài)度,要么擔心技術(shù)本身不完善而無法實施;另一方面有些來自國內(nèi)大型企業(yè)及政府機構(gòu)還沒真正認識到SOA對企業(yè)業(yè)務(wù)的靈活性適應(yīng)度有多大,對企業(yè)核心競爭力的影響有多大。目前,國內(nèi)的許多政府機構(gòu)和大型企業(yè)基本解決了對SOA的價值及重要性的認知問題,開始從概念認知、局部業(yè)務(wù)嘗試到準備大規(guī)模應(yīng)用階段。但是,如何基于國內(nèi)的SOA需求環(huán)境讓SOA真正落實,如何在各行業(yè)構(gòu)建滿足SOA特征的應(yīng)用成為目前我國軟件企業(yè)與服務(wù)供應(yīng)商面臨的一大難題。 只有SOA的應(yīng)用模式被深刻理解,SOA應(yīng)用推廣工作之路才會順暢。
企業(yè)SOA有利用信息資源目錄梳理業(yè)務(wù)活動和業(yè)務(wù)對象的應(yīng)用模式,以及建立業(yè)務(wù)主題庫的應(yīng)用模式兩類。前者主要用于梳理業(yè)務(wù)以支撐基于SOA的應(yīng)用; 后者則主要是闡述如何建立業(yè)務(wù)領(lǐng)域的主題庫,基于這種應(yīng)用模式可以建立多層次、分布式應(yīng)用系統(tǒng)的基礎(chǔ)庫[4]。
2.SOA本身存在的缺陷
一方面是管理缺陷。近來國外的一系列SOA實施案例表明,曾經(jīng)備受肯定的SOA架構(gòu)正暴露出其架構(gòu)的固有缺陷。當基于SOA的服務(wù)管理達到一定深度時,目前的SOA管理策略在服務(wù)故障的追根溯源方面力不從心,由于SOA架構(gòu)擁有太多處于移動狀態(tài)的組件,所以,想要找到服務(wù)故障發(fā)生的根本原因并不是一件容易的事情,更何況與此同時SOA還是一個由多個相互關(guān)聯(lián)的層組成的架構(gòu),這更增添了查錯的難度。這就勢必對整個SOA架構(gòu)和管理理念都提出了嚴峻的挑戰(zhàn)。目前大多數(shù)SOA管理工具都無法很好地處理這種問題。所以開發(fā)出更具可管理性的SOA管理工具對每個IT企業(yè)來講是一個艱巨的任務(wù)。BPM工具必須具備鎖定深層次服務(wù)管理問題的能力,同時也允許商業(yè)人士無需深入了解技術(shù),就能規(guī)定流程將如何執(zhí)行以及采用何種服務(wù)。
另一方面SOA安全性不可小視。SOA架構(gòu)是一種開放式的架構(gòu)。SOA使企業(yè)能夠?qū)⒆陨順I(yè)務(wù)打包提供給客戶和合作伙伴使用,推動了電子商務(wù)的發(fā)展。同時,企業(yè)還承擔了公開(或有限開放)所帶來的一系列管理、安全和法律方面的風險。面向服務(wù)架構(gòu)(SOA)也將安全的挑戰(zhàn)帶向了更高的層次。一個SOA架構(gòu)設(shè)計是為了更靈活、更快捷的業(yè)務(wù)流程,但在沒有恰當管理的情況下創(chuàng)建服務(wù)可能迅速地失去控制。
SOA取得成功的關(guān)鍵是安全第一。SOA安全裝置代表公司SOA方案的一個重要因素。SOA安全裝置是易于安裝的硬件設(shè)備,可以通過扮演內(nèi)部以及外部網(wǎng)關(guān)的角色簡化、保護并加速公司XML和Web服務(wù)配置。它們是集SOA管理和安全功能于一身的單一裝置。這種裝置必須具有以下特性:(1) SOA安全裝置能夠阻止未經(jīng)授權(quán)的訪問和企圖,破壞數(shù)據(jù)完整性或用戶保密性的訪問,對實際軟件和系統(tǒng)的襲擊或服務(wù)的拒絕。(2) 提供集中的Web服務(wù)管理和監(jiān)控。一個裝置能在加強SOA架構(gòu)整體性的同時保證只有經(jīng)過授權(quán)的用戶才能訪問存貯器。(3)降低開發(fā)成本。將重心從實施SOA服務(wù)向單純開發(fā)運營能力轉(zhuǎn)變,你就能降低開發(fā)成本。(4) 加速SOA部署。通過迅速地向經(jīng)過授權(quán)的第三方公開安全服務(wù),裝置將促使業(yè)務(wù)部門能夠迅速地發(fā)現(xiàn)新的機遇。(5)主動識別潛在威脅。SOA裝置能夠迅速地檢查流入信息,即時驗證和授權(quán),在無效請求進入末端服務(wù)器之前將之攔在門外。(6)安全裝置通過簡化和管理訪問服務(wù)器以及Web服務(wù)存儲器請求支持SOA治理。
作為IT基礎(chǔ)架構(gòu)發(fā)展趨勢,SOA不再是技術(shù)范疇的概念,而是一種商業(yè)戰(zhàn)略。隨著中國經(jīng)濟的持續(xù)增長,服務(wù)型經(jīng)濟的快速發(fā)展,構(gòu)建以解決業(yè)務(wù)問題為中心的IT系統(tǒng),彌合業(yè)務(wù)與IT之間的鴻溝,全面幫助企業(yè)充分利用現(xiàn)有IT資產(chǎn)、提高效率、降低成本、進而實現(xiàn)業(yè)務(wù)敏捷性與業(yè)務(wù)模式創(chuàng)新,以此逐漸成為企業(yè)發(fā)展的驅(qū)動力。IT對業(yè)務(wù)策略實施的全面支持將真正實現(xiàn)企業(yè)的業(yè)務(wù)靈活性、成就企業(yè)的核心競爭力。SOA則成為企業(yè)公認的創(chuàng)造業(yè)務(wù)靈活性的最重要方式之一。
[參考文獻]
[1]孫亞婷. 2007管理創(chuàng)新信息化十大熱點之八[R] .E-work ,2008:1.
[2]Eric Newcomer .Understanding SOA with Web Services[M].NJ :Addison-Wesley,2005:43.
[3]羅洪澤.SOA到底給企業(yè)帶來了什么[EB/OL] .(2008-06-19) http://smallbizit.ctocio.com.cn/software/451/8180951_1.shtml.
[4]崔有智.企業(yè)應(yīng)用SOA最常見的5種模式[EB/OL] .(2008-4-24) http://www.topoint.com.cn/html/article/2008/04/208319.html.