SOA作為一種面向服務的架構(gòu),是一種軟件架構(gòu)設計的模型和方法論。從業(yè)務角度來看,一切以最大化“服務”的價值為出發(fā)點,SOA利用企業(yè)現(xiàn)有的各種軟件體系,重新整合并構(gòu)建起一套新的軟件架構(gòu)。這套軟件架構(gòu)能夠隨著業(yè)務的變化,隨時靈活地結(jié)合現(xiàn)有服務,組成新軟件,共同服務于整個企業(yè)的業(yè)務體系。簡單的理解,我們可以把SOA看作是模塊化的組件,每個模塊都可以實現(xiàn)獨立功能,而不同模塊之間的結(jié)合則可以提供不同的服務,模塊之間的接口遵循統(tǒng)一標準,可以實現(xiàn)低成本的重構(gòu)和重組。在SOA的技術(shù)框架下,可以把雜亂無章的龐大系統(tǒng)整合成一個全面有序的系統(tǒng),從而增加企業(yè)在業(yè)務 發(fā)展過程中應用系統(tǒng)的靈活性,實現(xiàn)最大的IT資產(chǎn)利用率。
一、SOA詳細定義
面向服務的體系結(jié)構(gòu)(SOA)是一個組件模型,它將應用程序的不同功能單元(稱為服務)通過這些服務之間定義良好的接 口和契約聯(lián)系起來。接口是采用中立的方式進行定義的,它應該獨立于實現(xiàn)服務的硬件平臺、操作系統(tǒng)和編程語言。這使得構(gòu) 建在各種這樣的系統(tǒng)中的服務可以以一種統(tǒng)一和通用的方式進行交互。
這種具有中立的接口定義(沒有強制綁定到特定的實現(xiàn)上)的特征稱為服務之間的松耦合。松耦合系統(tǒng)的好處有兩點,一點是它的靈活性,另一點是,當組成整個應用程序的每個服務的內(nèi)部結(jié)構(gòu)和實現(xiàn)逐漸地發(fā)生改變時,它能夠繼續(xù)存在。而另一方 面,緊耦合意味著應用程序的不同組件之間的接口與其功能和結(jié)構(gòu)是緊密相連的,因而當需要對部分或整個應用程序進行某種 形式的更改時,它們就顯得非常脆弱。
對松耦合系統(tǒng)的需要來源于業(yè)務應用程序需要,根據(jù)業(yè)務的需要變得更加靈活,以適應不斷變化的環(huán)境,比如經(jīng)常改變的政策、業(yè)務級別、業(yè)務重點、合作伙伴關(guān)系、行業(yè)地位以及其他與業(yè)務有關(guān)的因素,這些因素甚至會影響業(yè)務的性質(zhì)。我們稱能 夠靈活地適應環(huán)境變化的業(yè)務為按需業(yè)務,在按需業(yè)務中,一旦需要,就可以對完成或執(zhí)行任務的方式進行必要的更改。
雖然面向服務的體系結(jié)構(gòu)不是一個新鮮事物,但它卻是更傳統(tǒng)的面向?qū)ο蟮哪P偷奶娲P?,面向?qū)ο蟮哪P褪蔷o耦合的,已 經(jīng)存在二十多年了。雖然基于 SOA 的系統(tǒng)并不排除使用面向?qū)ο蟮脑O計來構(gòu)建單個服務,但是其整體設計卻是面向服務的。由于它考慮到了系統(tǒng)內(nèi)的對象,所以雖然 SOA 是基于對象的,但是作為一個整體,它卻不是面向?qū)ο蟮?。不同之處在于接口本身。SOA 系統(tǒng)原型的一個典型例子是通用對象請求代理體系結(jié)構(gòu),它已經(jīng)出現(xiàn)很長時間了,其定義的概念與 SOA 相似。然而,現(xiàn)在的 SOA 已經(jīng)有所不同了,因為它依賴于一些更新的進展,這些進展是以可擴展標記語言(eXML)為基礎(chǔ)的。
在SOA架構(gòu)風格中,服務是最核心的抽象手段,業(yè)務被劃分(組件化)為一系列粗粒度的業(yè)務服務和業(yè)務流程。業(yè)務服務相 對獨立、自包含、可重用,由一個或者多個分布的系統(tǒng)所實現(xiàn),而業(yè)務流程由服務組裝而來。一個"服務"定義了一個與業(yè)務功 能或業(yè)務數(shù)據(jù)相關(guān)的接口,以及約束這個接口的契約,如服務質(zhì)量要求、業(yè)務規(guī)則、安全性要求、法律法規(guī)的遵循、關(guān)鍵業(yè)績指標(Key Performance Indicator,KPI)等。接口和契約采用中立、基于標準的方式進行定義,它獨立于實現(xiàn)服務的硬件平 臺、操作系統(tǒng)和編程語言。這使得構(gòu)建在不同系統(tǒng)中的服務可以以一種統(tǒng)一的和通用的方式進行交互、相互理解。除了這種不 依賴于特定技術(shù)的中立特性,通過服務注冊庫(Service Registry)加上企業(yè)服務總線(Enterprise Service Bus)來支持動態(tài) 查詢、定位、路由和中介(Mediation)的能力,使得服務之間的交互是動態(tài)的,位置是透明的。技術(shù)和位置的透明性,使得 服務的請求者和提供者之間高度解耦。這種松耦合系統(tǒng)的好處有兩點:一點是它適應變化的靈活性;另一點是當某個服務的內(nèi) 部結(jié)構(gòu)和實現(xiàn)逐漸發(fā)生改變時,不影響其他服務。而緊耦合則是指應用程序的不同組件之間的接口與其功能和結(jié)構(gòu)是緊密相連 的,因而當發(fā)生變化時,某一部分的調(diào)整會隨著各種緊耦合的關(guān)系引起其他部分甚至整個應用程序的更改,這樣的系統(tǒng)架構(gòu)就 很脆弱了。
二、SOA架構(gòu)的優(yōu)點
SOA的主要優(yōu)點概括為:IT能夠更好更快地提供業(yè)務價值(Business Centric)、快速應變能力(Flexibility)、重用 (Reusability)
也可以細分為以下幾個方面:
①服務之間通過簡單、精確定義的接口進行通信,不涉及底層編程接口和通信模型。
②粗粒度性:粗粒度服務提供一項特定的業(yè)務功能,采用粗粒度服務接口的優(yōu)點在于使用者和服務層之間不必再進行多次的往復,一次往復就足夠了。
③松耦合性:松耦合性要求SOA架構(gòu)中的不同服務之間應該保持一種松耦合 的關(guān)系,也就是應該保持一種相對獨立無依賴的 關(guān)系。這樣的好處有兩點,首先是具有靈活性,其次當組成整個應用程序的服務內(nèi)部結(jié)構(gòu)和實現(xiàn)逐步地發(fā)生變化時, 系統(tǒng)可以繼續(xù)地獨立存在。而緊耦合意味著應用程序的不同組件之間的接口與其功能和結(jié)構(gòu)是緊密相連的,因而當需要對部分或整個 應用程序進行某種形式的更改時 這種結(jié)構(gòu)就顯得非常脆弱。
④位置透明性:位置透明性要求SOA系統(tǒng)中的所有服務對于其調(diào)用者來說都是位置透明的,也就是說,每個服務的調(diào)用者只需 要知道想要調(diào)用的是哪一個服務,但并不需要知道所調(diào)用服務的物理位置在哪。
⑤協(xié)議無關(guān)性:協(xié)議無關(guān)性要求每一個服務都可以通過不同的協(xié)議來調(diào)用。
另外,在許多傳統(tǒng)的IT系統(tǒng)的內(nèi)在部分采用的是硬連接,這種結(jié)構(gòu)很難讓企 業(yè)快速響應市場的變化,而SOA能夠重復利用企 業(yè)現(xiàn)有的資源,可以減輕企業(yè)運營成本,提升資源的使用效率,并且減輕企業(yè)維護人員的工作量,減少潛在的風險 以及管理 費用。在業(yè)務方面和IT方面帶來許多優(yōu)勢:
①服務給精確的業(yè)務流程帶來靈活性;
②使用服務來改善客戶服務,而不必擔心底層復雜的IT基礎(chǔ)架構(gòu);
③可以迅速創(chuàng)建新的業(yè)務流程和復雜的應用程序,以適應市場變化;
④借助安全、易管理的集成環(huán)境,成為響應能力更強的IT組織;
⑤通過使用預裝的、可重復使用的服務構(gòu)建模塊,縮短開發(fā)和部署周期;
⑥通過使用服務來降低復雜性和維護成本;
⑦是增強而不是替換現(xiàn)有的IT系統(tǒng)。
三,SOA架構(gòu)詳解
3.1. 如何形象理解SOA
事實上,SOA的思想我國很早就有了,印刷術(shù)的發(fā)展過程其思想就完整體現(xiàn)了SOA的核心含義。
印刷的內(nèi)容――文字,在秦始皇統(tǒng)一六國之前,各國的文字是不統(tǒng)一的,據(jù)說許多常用的文字有十幾種寫法和讀音,妨礙了各 國之間的文化交流,就象SOA之前,各種軟件平臺、各種開發(fā)工具和各種接口的組件之間,沒有統(tǒng)一的標準,對軟件系統(tǒng)之 間的整合造成巨大的困難。
因此,偉大的始皇帝統(tǒng)一了六國文字,“書同文、車同軌”就是通過標準解決“復用”和“互操作”等問題。這也為大規(guī)模的印刷和文 明發(fā)展提供了一個良好的基礎(chǔ),這種“統(tǒng)一封裝”的文字,對文化交流起到了一個“互操作”的標準作用。

SOA的形象解析
在沒有印刷術(shù)之前,書籍要依賴于手工抄寫,這樣效率當然是非常低下,而且質(zhì)量也不能獲得一致性的保證,也就是書籍還 無法“復用”。中國人首先發(fā)明了刻版印刷 術(shù),就是將書籍刻成一塊一塊的凸字版,然后就可以大規(guī)模進行印刷了,當印刷出來 的書籍脫銷時,下次還可以繼續(xù)使用,大大提高了效率,這就是“復用”,軟件 通過組件的封裝,也可以達到重復和在不同場合 多次使用的“復用”效果。
刻版印刷術(shù)有個很大的問題就是文字之間是緊耦合的,同樣一個字,在另一部書之中是不能“復用”的,必須重新雕刻,也就是 說刻版印刷是沒有“編排”特性的。就如軟件技術(shù)中微軟VB開發(fā)的Com+組件就只能在Windows環(huán)境之中使用,它不能與Java開 發(fā)的EJB組件進行復用和編排,因為他們與開發(fā)環(huán)境和運行環(huán)境是緊耦合的,要在UNIX環(huán) 境下使用,必須重新開發(fā)(相當于 重新“刻版”)?;钭钟∷⒕褪峭ㄟ^文字與版面之間的松耦合,通過“排版”來實現(xiàn)一部書的印刷版面的,這種松耦合就大大提高 了文字的字模之間的復用和編排效率。我們標準封裝的“服務”就類似一個一個的字模,通過服務編排(“排版”)來實現(xiàn)業(yè)務流程。
統(tǒng)一文字和活字印刷促進了人類文明進步,而SOA促進全球IT架構(gòu)和應用的革命。
3.2. SOA的核心要素
要準確全面理解SOA,首先必須理解SOA的核心要素:

SOA的核心要素
SOA的目標就是實現(xiàn)靈活可變的IT系統(tǒng)。要達到靈活性,通過三個途徑來解決:標準化封裝、復用、松耦合可編排。
互操作(標準化封裝)、復用、松耦合等SOA技術(shù)的內(nèi)在機制,也是中間件技術(shù)和產(chǎn)品的本質(zhì)特征。
標準化封裝(互操作性)
傳統(tǒng)軟件架構(gòu),因為封裝的技術(shù)和平臺依賴性,一直沒有徹底解決互操作問題。互聯(lián)網(wǎng)前所未有的開放性意味著各節(jié)點可能 采用不同的組件、平臺技術(shù),對技術(shù)細節(jié)進 行了私有化的約束,構(gòu)件模型和架構(gòu)沒有統(tǒng)一標準,從而導致架構(gòu)平臺自身在組件描述、發(fā)布、發(fā)現(xiàn)、調(diào)用、互操作協(xié)議及數(shù)據(jù)傳輸?shù)确矫娉尸F(xiàn)出巨大的異構(gòu)性。各種不良技術(shù)約束的結(jié)果是軟件系統(tǒng)跨互 聯(lián)網(wǎng)進行交互變得困難重重,最終導致了跨企業(yè)/部門的業(yè)務集成和重組難以靈活快速的進行。
在軟件的互操作方面,傳統(tǒng)中間件只是實現(xiàn)了訪問互操作,即通過標準化的API實現(xiàn)了同類系統(tǒng)之間的調(diào)用互操作,而連接互 操作還是依賴于特定的訪問協(xié)議,如JAVA使用RMI,CORBA使用IIOP等。而SOA通過標準的、支持Internet、與操作系統(tǒng)無 關(guān)的SOAP協(xié)議實現(xiàn)了連接互操作。而且,服務的封裝是采用XML協(xié)議,具有自解析和自定義的特性,這樣,基于SOA的中間 件還可以實現(xiàn)語義互操作。
SOA要實現(xiàn)互操作,就是通過一系列的標準族,來實現(xiàn)訪問、連接和語義等各種層面的互操作。
軟件復用
軟件復用,即軟件的重用,也叫再用,是指同一事物不作修改或稍加改動就多次重復使用。從軟件復用技術(shù)的發(fā)展來看,就 是不斷提升抽象級別,擴大復用范圍。最早 的復用技術(shù)是子程序,人們發(fā)明子程序,就可以在不同系統(tǒng)之間進行復用了。但 是,子程序是最原始的復用,因為這種復用范圍是一個可執(zhí)行程序內(nèi)復用,靜態(tài)開發(fā) 期復用,如果子程序修改,意味著所有 調(diào)用這個子程序的系統(tǒng)必須重新編譯、測試和發(fā)布。

SOA的復用
為了解決這個問題,人們發(fā)明了組件(或者叫控件),如MS操作系統(tǒng)下的DLL組件。組件將復用提升了一個層次,因為組件可以在一個系統(tǒng)內(nèi)復用(同一種操作系統(tǒng)),而且是動態(tài)、運行期復用。這樣組件可以單獨發(fā)展,組件與組件調(diào)用者之間的耦合度降低。
為解決分布式網(wǎng)絡計算之間的組件復用,人們發(fā)明了企業(yè)對象組件,如(Com+,.NET,EJB等),或者叫分布式組件。通過遠程對象代理,來實現(xiàn)企業(yè)網(wǎng)絡內(nèi)復用,不同系統(tǒng)之間復用。
傳統(tǒng)架構(gòu)的核心是組件對象的管理。但分布式組件也是嚴重依賴其計算環(huán)境,由于構(gòu)件實現(xiàn)和運行支撐技術(shù)之間存在著較大的 異構(gòu)性,不同技術(shù)設計和實現(xiàn)的構(gòu)件之間無法直接組裝式復用。
而現(xiàn)代SOA的重要特征就是以服務為核心,如WebService,SCA/SDO等。通過服務,或者服務組件來實現(xiàn)更高層次的復用、 解耦和互操作,即SOA架構(gòu)中間件。
因為服務是通過標準封裝,服務組件之間的組裝、編排和重組,來實現(xiàn)服務的復用。而且這種復用,可以在不同企業(yè)之間,全球復用,達到復用的最高級別,并且是動態(tài)可配置的復用。
耦合關(guān)系
SOA架構(gòu)在松耦合解耦過程也發(fā)展到了最后的境界。傳統(tǒng)軟件將軟件之中核心三部分網(wǎng)絡連接、數(shù)據(jù)轉(zhuǎn)換、業(yè)務邏輯全部耦 合在一個整體之中,形成“鐵板一塊”的軟件, “牽一發(fā)而動全身”,軟件就難以適應變化。分布式對象技術(shù)將連接邏輯進行分 離,消息中間件將連接邏輯進行異步處理,增加了更大的靈活性。消息代理和一些分 布式對象中間件將數(shù)據(jù)轉(zhuǎn)換也進行了分 離。而SOA架構(gòu),通過服務的封裝,實現(xiàn)了業(yè)務邏輯與網(wǎng)絡連接、數(shù)據(jù)轉(zhuǎn)換等進行完全的解耦。

SOA不斷解耦的過程
總之,從科學哲學的角度來看,SOA是一個不斷解構(gòu)的過程,傳統(tǒng)軟件強調(diào)系統(tǒng)性,耦合度過高,所以需要松耦合(解耦);SOA也是一個組件粒度的平衡,集成電路趨勢是集成度越來越高,軟件發(fā)展的趨勢是相反的過程;SOA是架構(gòu),更是 方法,反映了人們對哲學思想的追求的原動力。
按照這個特性,SOA基本上來說與WebService并不是同一個概念,SOA并不一定需要WebService實現(xiàn),理論上可以在其他技 術(shù)體系下,實現(xiàn)SOA。但事實上,到目前為止,能夠?qū)崿F(xiàn)SOA架構(gòu)風格的技術(shù)就是WebService,因為它的特性和廠商的支持 力度,使得WebService成為了實現(xiàn)SOA實現(xiàn)技術(shù)的事實標準。也正因為WebService技術(shù)的成熟,才使得已經(jīng)提出10多年了的 SOA思想和概念,得以能夠?qū)崿F(xiàn)落地,成為一種可以使用的技術(shù)。這也就是回答了SOA和WebService的關(guān)系。
3.3. SOA的架構(gòu)框架
(Framework) SOA的核心主體是服務。所謂“服務(Service)” ,從業(yè)務角度而言,服務是一個可重復的經(jīng)過標準封裝的任務,例如: 檢查帳 號余額;開新帳戶等等…SOA的目標是通過服務的流程化來實現(xiàn)業(yè)務的靈活性,所謂流程(Process)是由一系列相互關(guān)聯(lián) 的任務所組成,實現(xiàn)一個具體的業(yè)務功能。一個流程可以由一系列服務來實現(xiàn)。

SOA治理
服務就像一堆“元器件”,這些元器件通過封裝形成標準服務,他們有相同的接口和語義表達規(guī)則。但服務要組裝成一個流程和 應用,還需要有效的“管理”,包括如何注冊服務、如何發(fā)現(xiàn)服務、如何包裝服務的安全性和可靠性,這些就是SOA治理。SOA 治理乃是將SOA這一堆元器件,進行有效組裝,形成一個“產(chǎn)品”的關(guān)鍵,否則它永遠是一堆器件,而無法形成一個有機整體。
SOA治理的方法和體系,就是區(qū)別于一般組件開發(fā)的技術(shù)的重要區(qū)別和特征。
一個正確的框架,是指導我們開發(fā)和實施SOA架構(gòu)的基礎(chǔ)。由IBM提案,國際開放群組(The Open Group)提出了一個SOA架 構(gòu)的參考模型,這個架構(gòu)框架目前是產(chǎn)業(yè)界最權(quán)威和嚴謹?shù)腟OA架構(gòu)標準。The Open Group是一個非營利標準化組織,是一 個廠商中立和技術(shù)中立的機構(gòu),致力于提出各種技術(shù)框架和理論結(jié)構(gòu),致力于促進全球市場的業(yè)務效率。The Open Group已 有超過20年的標準制定與推廣歷史。在1996年,由X/Open與Open Software Foundation合并組成。The Open Group最有名 是作為UNIX商標的認證機構(gòu)。在過去,協(xié)會最出名的是其出版的Single UNIX Specification,它擴充了POSIX標準而且是 UNIX的官方定義,其成員包括IT用戶、供應商以及政府機構(gòu)。The Open Group在中國的創(chuàng)始會員為金蝶集團,金蝶集團負責 成立了中國分會。TOG在1993年提出的The Open Group Architecture Framework (TOGAF) 架構(gòu)框架,是一套行之有效的企 業(yè)架構(gòu)。歷經(jīng)15年9個版本發(fā)展,支持開放、標準的SOA參考架構(gòu),已被80%的福布斯( Forbes)全球排名前50的公司使用。
這個SOA參考模型為:

SOA標準模型
根據(jù)這個模型,完整的SOA架構(gòu)由五大部分組成,分別是:基礎(chǔ)設施服務、企業(yè)服務總線、關(guān)鍵服務組件、開發(fā)工具、管理 工具等。
SOA基礎(chǔ)實施是為整個SOA組件和框架提供一個可靠的運行環(huán)境,以及服務組件容器,它的核心組件是應用服務器等基礎(chǔ)軟 件支撐設施,提供運行期完整、可靠的軟件支撐。
企業(yè)服務總線是指由中間件基礎(chǔ)設施產(chǎn)品技術(shù)實現(xiàn)的、通過事件驅(qū)動和基于XML消息引擎,為SOA提供的軟件架構(gòu)的構(gòu)造 物。企業(yè)服務總線ESB提供可靠消息傳輸、服務接入、協(xié)議轉(zhuǎn)換、數(shù)據(jù)格式轉(zhuǎn)換、基于內(nèi)容的路由等功能,屏蔽了服務的物理 位置,協(xié)議和數(shù)據(jù)格式。在SOA基礎(chǔ)實現(xiàn)的方案上,應用的業(yè)務功能能夠被發(fā)布、封裝和提升(Promote)成為業(yè)務服務 (Business Service);業(yè)務服務的序列可以編排成為BPM的流程,而流程也可以被發(fā)布和提升為復合服務(Composited Service),業(yè)務服務還可以被外部的SOA系統(tǒng)再次編排和組合。ESB是實現(xiàn)SOA治理的重要支撐平臺,是SOA解決方案的核 心,從某種意義上說,如果沒有ESB,就不能算作嚴格意義上的SOA。
關(guān)鍵服務實現(xiàn),是SOA在各種業(yè)務服務組件的分類。一般來說,一個企業(yè)級的SOA架構(gòu)通常包括:交互服務、流程服務、信 息服務、伙伴服務、企業(yè)應用服務和接入服務。這些服務可能是一些服務組件,也可能是企業(yè)應用系統(tǒng)(如ERP)所暴露的 服務接口等等。這些服務都可以接入ESB,進行集中統(tǒng)一管理。
開發(fā)工具和管理工具:提供完善的、可視化的服務開發(fā)和流程編排工具,涵蓋服務的設計、開發(fā)、配置、部署、監(jiān)控、重構(gòu)等完整的SOA項目開發(fā)生命周期。
按照這個模型,許多SOA解決方案是只提供部分實現(xiàn)。這個行業(yè)中,許多國內(nèi)的企業(yè)為了搭上SOA的便車,經(jīng)常以偏概全, 混繞概念。應該說真正按照SOA的思想和模型來構(gòu)建整個企業(yè)的IT架構(gòu)的案例是非常之少的。許多國外廠商的宣傳案例,基本 上是停留在部署應用服務器,開發(fā)了部分WebService組件,可以實現(xiàn)部分數(shù)據(jù)集成,這個層次而已,而這些WebService是部 署在ESB平臺之上的,就已經(jīng)很不錯了。實現(xiàn)了服務流程重組,實現(xiàn)SOA治理的案例就更是很少見到了。
國內(nèi)有許多軟件企業(yè)開發(fā)的系統(tǒng),宣傳是SOA架構(gòu)的?;旧嫌袔追N情況,其一,有些開發(fā)組件和開發(fā)平臺廠商,他們也自 稱中間件企業(yè),基本上是提供一個工作流平臺,許多還不支持BPEL的業(yè)務流程管理,只是傳統(tǒng)的XPDL/WfMC工作流平臺 (Workflow不同于支持服務流程的Business Process),最常見的案例是OA辦公審批,或者服務組件開發(fā)工具,而所謂的 ESB產(chǎn)品大部分都是EAI的升級,可以與Webservice進行接口而已,就宣稱這是ESB產(chǎn)品了,基本的服務注冊、服務編排和安 全管理都不具備。這些解決方案只是提供了許多WebService開發(fā)的組件,而不提供SOA治理的核心架構(gòu),相當于造了許多元 器件,但還不能提供整機產(chǎn)品。
其二,許多宣稱SOA架構(gòu)的應用軟件,基本上可以說是“支持”SOA,而不能稱為“基于SOA”架構(gòu)。因為支持SOA一般是指可以 將其某些功能,封裝為服務(WebService),可以在SOA架構(gòu)之中進行管理,這比較容易達到。而“基于SOA”是指應用系統(tǒng) 的業(yè)務功能都是封裝為服務,通過ESB進行集中管理,業(yè)務實現(xiàn)是通過BPEL業(yè)務流程管理進行編排,用戶交互是通過交互服務(如門戶)進行管理,整個解決方案可以達到標準服務封裝、服務復用、松耦合、服務編排與重組,并且基本符合TOGSOA的架構(gòu)模型。
按照這個標準,IT用戶就可以了解到真正的SOA架構(gòu)的框架模型,就可以識別是否是企業(yè)所需要的架構(gòu)。
講到這里,我們已經(jīng)很清楚了,對于SOA的理解,有些學者或者咨詢公司強調(diào)SOA不是一種技術(shù),也不是軟件,而是一種思想,一種架構(gòu)風格。我認為這也是不完全準確的,這種觀點認為SOA僅僅是思想和方法,將使得SOA成為一種不可知論,飄 在空中,很難落地。
四、SOA商業(yè)化實際運用
SOA將來真正推廣到企業(yè)中應用,要落地,就不能離開幾個基本的東西:支撐SOA的基礎(chǔ)中間件平臺、符合SOA架構(gòu)的應用 系統(tǒng)(如ERP等)、構(gòu)建SOA的方法論。

SOA落地途徑
4.1. 架構(gòu)方法論
方法和工具構(gòu)成了工程技術(shù)域,要構(gòu)建SOA架構(gòu)的企業(yè)信息系統(tǒng),確保業(yè)務和IT的真正匹配,首先必須從方法論入手。
許多企業(yè)的IT系統(tǒng)“孤島”現(xiàn)象嚴重,本質(zhì)上是缺乏足夠有效的整體規(guī)劃或者架構(gòu)規(guī)劃造成的。形象地說,構(gòu)建企業(yè)IT大廈如同 我們蓋房子是一樣的道理。我們許多企業(yè)建設信息系統(tǒng)時就采用了蓋鄉(xiāng)村民宅的做法。蓋鄉(xiāng)村民宅不需要嚴謹?shù)囊?guī)劃,也沒有 復雜的地下設施建設(如自來水供水、排水、供氣、地下停車場等),也沒有需要建設污水處理、雨水收集等復雜的配套設 施。而事實上,企業(yè)IT系統(tǒng)建設應該如城市建設,首先需要城市總體規(guī)劃,然后根據(jù)功能區(qū)規(guī)劃,設計和建設小區(qū)配套設 施,“三通一平”實質(zhì)就是構(gòu)建建筑之間的公共基礎(chǔ)設施,確保每棟建筑之間不是“孤島”,然后每棟建筑還需詳細的設計和工程 施工。如果要消除信息孤島,實現(xiàn)IT與業(yè)務的一致性,也需要有效的企業(yè)架構(gòu)規(guī)劃和設計。
為什么需要架構(gòu)規(guī)劃
透過現(xiàn)象看本質(zhì),SOA代表著一種面向服務的IT架構(gòu)風格,SOA的技術(shù)本質(zhì)和出發(fā)點,在于IT架構(gòu)。而IT架構(gòu),是組織的企業(yè) 架構(gòu)的重要組成部分,它和組織的戰(zhàn)略架構(gòu)、業(yè)務架構(gòu)一起,形成一個自上而下、緊密聯(lián)系、相輔相成的有機整體。SOA代 表著一種正在蓬勃興起的革命性IT架構(gòu)理念,和傳統(tǒng)技術(shù)體系區(qū)別的關(guān)鍵特征之一就在于SOA是戰(zhàn)略導向和業(yè)務驅(qū)動的。而國 際和國內(nèi)的各方面經(jīng)驗都告訴我們,對于一個組織而言,捕獲戰(zhàn)略、梳理業(yè)務和IT的最有效的措施就是架構(gòu)。
企業(yè)架構(gòu)(Enterprise Architecture,EA),是從多個角度對組織的構(gòu)件層次描述的規(guī)劃藍圖,從各個層面反映組織的愿景、戰(zhàn) 略、業(yè)務、服務、人員、技術(shù)和產(chǎn)品及其相互之間的關(guān)系,輔以其管控和演進的規(guī)則。
一個企業(yè)架構(gòu)內(nèi)容包括業(yè)務架構(gòu)(Business Architecture)、應用架構(gòu)(Application Architecture)、信息架構(gòu)(Information Architecture)、技術(shù)架構(gòu)(Technology Architecture)等。
真正可以落地的SOA建設,必須且只能從架構(gòu)出發(fā)。沒有架構(gòu),"SOA"將變成一盤無法真正解決各種運營問題的技術(shù)和產(chǎn)品的大雜燴。優(yōu)良的架構(gòu)填補了業(yè)務需求與實際信息系統(tǒng)以及基礎(chǔ)設施設計之間難以逾越的鴻溝。
在所有的架構(gòu)開發(fā)方法(ADM- Architecture Development Methods)之中,開放群組TOG的TOGAF是目前最權(quán)威和最有影響力的一種。The Open Group于1993年開始應客戶要求制定系統(tǒng)架構(gòu)的標準,在1995年發(fā)表The Open Group Architecture Framework (TOGAF) 架構(gòu)框架。TOGAF的基礎(chǔ)是美國國防部的信息管理技術(shù)架構(gòu)(Technical Architecture for Information Management: TAFIM)。TOAGF是一個架構(gòu)框架,簡而言之,TOGAF是一種協(xié)助開發(fā)、驗收、運行、使用和維護架構(gòu)的工具,它是基于一個迭代(Iterative)的過程模型,支持最佳實踐和一套可重用的現(xiàn)有架構(gòu)資產(chǎn)。它可設計、評估并建立組織的正確架構(gòu)。TOGAF的關(guān)鍵是架構(gòu)開發(fā)方法ADM:一個可靠的,行之有效的方法,以發(fā)展能夠滿足商務需求的企業(yè)架構(gòu)。而2008 年發(fā)布的TOGAF 9.0是符合SOA架構(gòu)開發(fā)的最新版本。TOGAF所提出的“無邊界信息流(Boundaryless Information Flow)”理 念和愿景,是解決目前企業(yè)信息化孤島問題的最有效方式。
TOGAF架構(gòu)內(nèi)容
4.2. 基于SOA的應用系統(tǒng)
基于SOA的應用系統(tǒng)構(gòu)建方法與傳統(tǒng)軟件架構(gòu)方法有所不同。
首先基于SOA的應用系統(tǒng)建模和管理的組件層次是服務:

面向服務的工程
基于服務的應用系統(tǒng)的本質(zhì)特征是松耦合,以基本業(yè)務功能(服務封裝)為系統(tǒng)的基本實現(xiàn)單元,然后通過服務編排(流程管理)來“組裝”業(yè)務應用系統(tǒng)。相對于以往的應用系統(tǒng),是面向技術(shù)組件,由系統(tǒng)程序?qū)崿F(xiàn)業(yè)務流程,在復用、耦合方面都存在靈活性問題。
軟件工程和系統(tǒng)設計的演進過程基于SOA的應用系統(tǒng)構(gòu)建過程是:

基于SOA的應用構(gòu)建過程
服務建模是第一步,也就是服務識別和顆粒度確定。服務識別是方法論的第一步,服務識別的主要任務,是確定在一定范圍內(nèi)(通常是企業(yè)范圍,或若干業(yè)務場景范圍內(nèi))可能成為服務的候選者列表,并確定服務的顆粒度,以及標識服務的接口。服務建模也就確定了應用系統(tǒng)架構(gòu)的耦合程度。
服務封裝階段的主要任務是對服務進行規(guī)范性的描述,其中包括輸入/輸出消息等功能性屬性,以及服務在業(yè)務層面的諸多屬性。并決定服務以何種形式向外提供服務。服務可能是新開發(fā)的業(yè)務功能和業(yè)務對象的封裝,也可能是遺留系統(tǒng)的服務封裝,將遺留系統(tǒng)的軟件資產(chǎn)以服務的形式進行封裝,在新的架構(gòu)上利用已有的資產(chǎn)。
服務治理就是將已經(jīng)封裝好的服務進行集中統(tǒng)一有效的管理。通過ESB基礎(chǔ)設施,提供服務注冊、存儲、安全控制和版本管理等。服務注冊階段的主要任務是將服務注冊到服務庫。此時需要決定服務的命名、安全、性能、時間特性。
服務編排就是根據(jù)業(yè)務流程的需求,對服務進行組合和組裝。服務組裝是以實現(xiàn)業(yè)務流程為目的,通過對業(yè)務服務的組合和組裝,實現(xiàn)更粗粒度的業(yè)務服務,實現(xiàn)最終的業(yè)務需求。
應用交付階段主要任務是完成業(yè)務系統(tǒng)服務化組裝和服務部署,實現(xiàn)業(yè)務按需交付。
基于SOA的應用系統(tǒng)是SOA架構(gòu)的重要組成部分,也是SOA落地的地基。
4.3. 支撐SOA的中間件平臺
SOA方法論和基于SOA的應用系統(tǒng)要落地的支撐工具和技術(shù)基礎(chǔ)就是中間件平臺。這個在3.3.SOA的架構(gòu)框架(Framework)之中已經(jīng)闡述清楚了。
根據(jù)TOG-SOA模型,完整的SOA架構(gòu)五大部分中,基礎(chǔ)設施服務、企業(yè)服務總線、開發(fā)工具、管理工具等,都是中間件的基礎(chǔ)平臺。
交付服務之中的門戶,也是需要支持JSR168和JSR286標準的Portlet容器和個性化交互以及終端適配的支撐平臺。
業(yè)務流程管理需要支持BPEL規(guī)范的流程引擎和流程建模的工具,這個中間件平臺用來支持服務的組合和服務流程編排,以滿 足業(yè)務重組的需求,來實現(xiàn)業(yè)務的靈活性。
SOA要落地的最后支撐平臺就是滿足SOA規(guī)范的中間件技術(shù)。
審核編輯:郭婷
-
SOA
+關(guān)注
關(guān)注
1文章
325瀏覽量
29220 -
應用程序
+關(guān)注
關(guān)注
38文章
3344瀏覽量
60243
原文標題:萬字的SOA面向服務的分布式架構(gòu)詳解
文章出處:【微信號:智能汽車電子與軟件,微信公眾號:智能汽車電子與軟件】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
操作系統(tǒng)體系結(jié)構(gòu)
Vector SOVD下一代汽車診斷技術(shù)解決方案
采用Prefetch+Cache架構(gòu)有什么優(yōu)勢?
SOA半導體光放大器的結(jié)構(gòu)參數(shù)
【干貨】一文帶你讀懂什么是 LoRaWAN 網(wǎng)絡架構(gòu)
由于SOA的這些特性,SOA正逐漸在光感知(感)、光通信(傳)、光計算(算)、光存儲(存)等各個應用領(lǐng)域嶄露頭
技術(shù)解讀 | 光庭信息虛擬ECU技術(shù)賦能SOA化MCU軟件的早期驗證與集成加速
DPU核心技術(shù)論文再次登陸體系結(jié)構(gòu)領(lǐng)域旗艦期刊《IEEE Transactions on Computers》
OptiSystem應用:寬帶SOA特性
OptiSystem應用:SOA波長變換器(XGM)
睿創(chuàng)微納AI芯片技術(shù)登上國際計算機體系結(jié)構(gòu)領(lǐng)域頂級會議
OptiSystem應用:寬帶SOA特性
SOA架構(gòu)開發(fā)小助手PAVELINK.SOA-Converter 2.1.2新版本發(fā)布
面向服務的體系結(jié)構(gòu)SOA的優(yōu)勢及架構(gòu)詳解
評論