一、SOA的概念
SOA(Service-Oriented Architecture)即面向服務(wù)架構(gòu),最早作為一種軟件系統(tǒng)的開發(fā)方法,現(xiàn)在更多的作為一種軟件架構(gòu),或是企業(yè)信息化建設(shè)和實(shí)現(xiàn)電子商務(wù)的一種方式。SOA可以理解為一個(gè)組件模型,它將不同架構(gòu)的軟件提供的服務(wù)聯(lián)系起來,類似于粘合劑的作用,可以把企業(yè)不同的系統(tǒng)數(shù)據(jù)相融合。
由于系統(tǒng)平臺(tái)、架構(gòu)、技術(shù)和版本等因素,不是所有的信息系統(tǒng)都可以實(shí)現(xiàn)資源共享。很多企業(yè)會(huì)出現(xiàn)不同種類的操作系統(tǒng)、應(yīng)用軟件、系統(tǒng)軟件和應(yīng)用基礎(chǔ)結(jié)構(gòu)相互交織,或者同一公司擁有開發(fā)于不同時(shí)期、架構(gòu)不同平臺(tái)和技術(shù)上的諸多軟件等情況。一些已投入使用多年的信息服務(wù)用來處理當(dāng)前的業(yè)務(wù),當(dāng)企業(yè)業(yè)務(wù)增長后,從頭開發(fā)一個(gè)新的環(huán)境或者重新實(shí)施一個(gè)新的ERP項(xiàng)目幾乎是不可能的。如何才能讓企業(yè)對(duì)業(yè)務(wù)的變化做出快速的反應(yīng),利用對(duì)現(xiàn)有的應(yīng)用程序和架構(gòu)的投資來解決新的業(yè)務(wù)需求,應(yīng)對(duì)突發(fā)的業(yè)務(wù)變化,為客戶、合作伙伴及供應(yīng)商提供新的互動(dòng)渠道,并呈現(xiàn)一個(gè)可以支持有機(jī)業(yè)務(wù)的構(gòu)架,無疑是給企業(yè)提出的一個(gè)巨大挑戰(zhàn)。SOA正是在這種挑戰(zhàn)下脫穎而出的。
二、SOA的特性
SOA可以靈活的為服務(wù)提供者與消費(fèi)者選擇實(shí)現(xiàn)技術(shù)和部署位置。只要服務(wù)接口保持穩(wěn)定,抽象出來的接口就能讓提供者和消費(fèi)者獨(dú)立演變。所以基于SOA的信息化系統(tǒng)可以提供與業(yè)務(wù)更貼合的信息化服務(wù),更便利的解決跨行業(yè)、跨部門的信息資源互聯(lián)互通,推動(dòng)重要信息資源的開發(fā)利用,并可以支撐和促進(jìn)各行業(yè)相關(guān)的業(yè)務(wù)變革和發(fā)展。
事實(shí),實(shí)現(xiàn)接口的穩(wěn)定性是SOA面臨的最大挑戰(zhàn)。因?yàn)闃I(yè)務(wù)服務(wù)接口的作用不只是確定了系統(tǒng)的邊界。業(yè)務(wù)服務(wù)對(duì)業(yè)務(wù)流程的一部分進(jìn)行了封裝,建立了被封裝部分和其余部分之間的接口。以“銷售訂單管理服務(wù)”為例,它封裝了業(yè)務(wù)流程中創(chuàng)建和維護(hù)銷售訂單的部分。由此看出,在定義業(yè)務(wù)服務(wù)時(shí),既是為系統(tǒng)也是為業(yè)務(wù)流程搭建架構(gòu)。可見信息與業(yè)務(wù)流程的運(yùn)轉(zhuǎn)息息相關(guān),即便最簡單的服務(wù)也管理著一些信息。服務(wù)的定義決定了它要管理的信息,并使其區(qū)別于其他系統(tǒng)組件和服務(wù)所管理的信息。“銷售訂單管理服務(wù)”是銷售訂單信息的記錄系統(tǒng),但不管理倉庫庫存。通過這種方式,業(yè)務(wù)服務(wù)完成了對(duì)信息的模塊化的分解。界定了每個(gè)模塊的服務(wù)范圍。不同模塊之問的數(shù)據(jù)需求即為模塊需要提供的服務(wù)。
由此,SOA服務(wù)需具有以下特性:
(1)SOA服務(wù)用消息進(jìn)行通信,應(yīng)具有平臺(tái)的語法和語義文件,該消息通常使用XML Schema來定義。在企業(yè)內(nèi)部,SOA服務(wù)通常是利用一個(gè)目錄列表角色的登記處來進(jìn)行維護(hù)。應(yīng)用程序再在登記處查尋并調(diào)用某項(xiàng)服務(wù)。統(tǒng)一描述、定義和集成是服務(wù)登記的標(biāo)準(zhǔn),每項(xiàng)SOA服務(wù)都有一個(gè)與之相關(guān)的服務(wù)品質(zhì)(Quality of service,QOS)。QOS的一些關(guān)鍵元素有安全需求(例如認(rèn)證和授權(quán)),可靠通信(是指確保消息“僅且僅僅”發(fā)送一次,從而過濾重復(fù)信息。),以及誰能調(diào)用服務(wù)的策略。
(2)SOA把業(yè)務(wù)組件分成基本的構(gòu)建模塊,就像通過標(biāo)準(zhǔn)化軟件接口實(shí)現(xiàn)lT基礎(chǔ)設(shè)施的模塊化,從而使業(yè)務(wù)流程可以與IT流程相匹配。
三、SOA給國內(nèi)企業(yè)帶來的優(yōu)勢(shì)
1.技術(shù)優(yōu)勢(shì)
國際商業(yè)機(jī)器公司(IBM)、畢益輝系統(tǒng)有限公司(BEA System)、甲骨文公司(Oracle)、微軟公司(Microsoft)等走在了SOA浪潮的前列。這些主流中間件廠商最早認(rèn)識(shí)到SOA在未來平臺(tái)技術(shù)中的超然地位,不遺余力地推動(dòng)SOA技術(shù)的發(fā)展。在經(jīng)歷了數(shù)年的研發(fā)和測試以后,從2005年開始,已終陸續(xù)推出各自的SOA策略、架構(gòu)以及產(chǎn)品,真正將SOA推動(dòng)到可部署階段。SOA在我國行業(yè)信息化建設(shè)中將成為國內(nèi)軟件產(chǎn)業(yè)界和學(xué)術(shù)界共同關(guān)注的焦點(diǎn)。但是,目前SOA在國內(nèi)的實(shí)施剛剛起步,SOA的概念、產(chǎn)品和實(shí)施方法不一,國內(nèi)用戶對(duì)于SOA實(shí)施的認(rèn)知也不同,多數(shù)用戶仍處在觀望、嘗試和跟隨階段。
國內(nèi)的用友軟件公司在2008年底推出了面向SOA的整體解決方案U9。U9是全球第一款面向完全SOA和實(shí)時(shí)企業(yè)的解決方案,全面支持SOA架構(gòu)和最新創(chuàng)新技術(shù),實(shí)現(xiàn)了企業(yè)管理系統(tǒng)的個(gè)性化規(guī)模交付,真正體現(xiàn)了“隨需而變”的實(shí)時(shí)企業(yè)與全球商務(wù)的企業(yè)信息化價(jià)值理念。相比局部采用SOA,完全SOA架構(gòu)帶來更為顯著的價(jià)值和優(yōu)勢(shì):
(1)確保總體架構(gòu)的合理規(guī)劃,全面實(shí)現(xiàn)過程、人員和信息的實(shí)質(zhì)集成、高度協(xié)調(diào),實(shí)現(xiàn)更高的互操作性與協(xié)同、更敏捷的業(yè)務(wù)流程、更全面的信息可見性。
(2)降低集成成本和風(fēng)險(xiǎn),降低維護(hù)成本。
(3)支持業(yè)務(wù)流程管理,用戶可以實(shí)現(xiàn)對(duì)企業(yè)業(yè)務(wù)流程的可視化動(dòng)態(tài)建模、定義、擴(kuò)展,以及透明的跟蹤與控制,支持企業(yè)流程的改進(jìn)和業(yè)務(wù)的創(chuàng)新。
(4)豐富、強(qiáng)大的報(bào)表支持技術(shù)和相關(guān)工具,可以利用任意數(shù)據(jù)源,創(chuàng)建簡潔、直觀、實(shí)時(shí)的用戶報(bào)表,并可任意向下鉆取。
(5)支持企業(yè)搜索,為用戶提供企業(yè)級(jí)業(yè)務(wù)信息搜索能力,類似于互聯(lián)網(wǎng)搜索的操作體驗(yàn).實(shí)現(xiàn)跨領(lǐng)域、分布式的綜合業(yè)務(wù)信息搜索;提供實(shí)時(shí)性訪問,支持結(jié)構(gòu)化、非結(jié)構(gòu)化信息融合,增強(qiáng)信息的自動(dòng)聚類性,繼承和保證企業(yè)數(shù)據(jù)的既有安全訪問權(quán)限和屬性。
(6)與個(gè)人辦公系統(tǒng)集成,將數(shù)據(jù)推送到桌面:用戶可以通過自己熟悉的個(gè)人辦公系統(tǒng)方式,如文檔編輯器、電子表格、電子郵件等,便捷地訪問和操作企業(yè)業(yè)務(wù)數(shù)據(jù);UFIDAU9提供了與微軟Office等成熟的個(gè)人辦公套件產(chǎn)品的無縫集成,實(shí)現(xiàn)用戶對(duì)企業(yè)豐富的業(yè)務(wù)數(shù)據(jù)訪問和操作的全新體驗(yàn)。
(7)提供對(duì)智能設(shè)備的支持:對(duì)于企業(yè)應(yīng)用的關(guān)鍵信息和數(shù)據(jù),如關(guān)鍵預(yù)警消息、審批任務(wù)等,可以按照預(yù)先定義好的模式,實(shí)時(shí)的通過消息通道傳遞給相關(guān)的負(fù)責(zé)人員。
(8)支持無線手持設(shè)備(PDA、PocketPC等),企業(yè)領(lǐng)導(dǎo)、業(yè)務(wù)員可以通過這些手持移動(dòng)設(shè)備,對(duì)企業(yè)業(yè)務(wù)進(jìn)行處理。
(9)全面支持集中式、分布式、混合模式的應(yīng)用部署。
(10)全面支持業(yè)務(wù)模型庫、服務(wù)組件資產(chǎn)庫,支持基于特征模型庫的服務(wù)組件管理、定制、裝配、部署和升級(jí)支撐。
2.效益優(yōu)勢(shì)
企業(yè)實(shí)施完全SOA,為企業(yè)發(fā)展帶來的效益主要有:
(1)平衡最初的舊系統(tǒng)投資(Leverageinitial investment):組織過去所投資的系統(tǒng)、軟硬體,如果能再利用等於賦予其新的價(jià)值,這也替組織降低成本并增加競爭力。
(2)基礎(chǔ)建設(shè)的便利性(Infrastructure Commoditization):讓所有的應(yīng)用程式能相互溝通(互通性)。
(3)快速的接近市場(Fastertime-to-mar-ket):服務(wù)的重復(fù)使用(再利用),縮短過去的組織流程,更快速的提供服務(wù)來接近市場。
(4)減少支出(Reduce Cost):服務(wù)的重復(fù)使用,可降低開發(fā)成本。因?yàn)殚_發(fā)新系統(tǒng)的成本,大部份比更新舊系統(tǒng)花費(fèi)大。
(5)減低風(fēng)險(xiǎn)(Riskmitigation):開發(fā)新系統(tǒng)的風(fēng)險(xiǎn)遠(yuǎn)大于更新舊系統(tǒng)。
在有SOA以后,企業(yè)可以根據(jù)自己的規(guī)模、經(jīng)營情況、生產(chǎn)情況、行業(yè)銷售情況、自身的技術(shù)水平等原因分別給自己的銷售、生產(chǎn)、供應(yīng)鏈、人資和客戶管理等方面進(jìn)行單獨(dú)選型,分別實(shí)施。在需要信息整合的時(shí)候利用SOA的架構(gòu)特點(diǎn),進(jìn)行統(tǒng)一整合,建立企業(yè)的服務(wù)總線和流程管理系統(tǒng),把各個(gè)系統(tǒng)直接掛接在SOA為基礎(chǔ)的企業(yè)信息流里。這樣企業(yè)就能在統(tǒng)一的界面控制不同的系統(tǒng),綜合不同系統(tǒng)的數(shù)據(jù),幫助企業(yè)員工更好地工作,部門經(jīng)理更好地協(xié)調(diào),高層領(lǐng)導(dǎo)者更好整體把握。
新的架構(gòu)不僅給用戶企業(yè)帶來了更多機(jī)會(huì),對(duì)于軟件供應(yīng)商,機(jī)會(huì)也比原米多得多。在各自軟件接口數(shù)據(jù)不統(tǒng)一的情況下,小軟件公司只能在一個(gè)或幾個(gè)行業(yè)做得很專業(yè),一旦客戶需要有所改變,處境就會(huì)變得很尷尬,要么給客戶開發(fā)新東西,要么就面臨著客戶的流失。就算是勉強(qiáng)留下客戶也需要花費(fèi)很大精力幫助客戶進(jìn)行與其他系統(tǒng)的整合開發(fā)。投人和產(chǎn)出不成比例。有的企業(yè)只好做得大而全,對(duì)于自己的特色就無從談起。現(xiàn)在,軟件供應(yīng)商隨時(shí)都可以把自己的特色軟件拿出來。企業(yè)在整合的時(shí)候交給SOA供應(yīng)商,只要在系統(tǒng)開發(fā)的時(shí)候預(yù)留與SOA系統(tǒng)傳輸數(shù)據(jù)的軟件接口即可。
這樣一來會(huì)促進(jìn)很多有行業(yè)特點(diǎn)、有技術(shù)特色的中小型公司迅速發(fā)展。尤其是在一些特殊行業(yè),比如:跨行業(yè)的大型企業(yè)、藥品連鎖零售、圖書零售、小型加盟式小吃店等等,SOA為企業(yè)發(fā)展帶來了可觀的經(jīng)濟(jì)效益。
SOA可以適應(yīng)不同的標(biāo)準(zhǔn),為企業(yè)的現(xiàn)有資產(chǎn)或投資帶來了更好的重用性;能夠在最新的和現(xiàn)有的應(yīng)用之上創(chuàng)建應(yīng)用;能夠使客戶或服務(wù)消費(fèi)者免予服務(wù)實(shí)現(xiàn)的改變所帶來的影響;能夠升級(jí)單個(gè)服務(wù)或服務(wù)消費(fèi)者而無需重寫整個(gè)應(yīng)用,也無需保留已經(jīng)不再適用于新需求的現(xiàn)有系統(tǒng)。總而言之,SOA就是一個(gè)粘合劑,提供給企業(yè)更好的靈活性來構(gòu)建應(yīng)用程序和業(yè)務(wù)流程,實(shí)現(xiàn)更加強(qiáng)大、復(fù)雜、貼切實(shí)際業(yè)務(wù)的信息化平臺(tái)。