香港公司

服務導向架構

9547 171

面向服務架構(Service-Oriented Architecture,SOA)

目錄

  • 1 什麼是面向服務架構
  • 2 面向服務架構的特征
  • 3 面向服務架構的元素
  • 4 企業實施SOA的步驟
    • 4.1 SOA為企業帶來的利益
  • 5 企業實施SOA應採取的步驟
    • 5.1 企業實施SOA需重視的方面
  • 6 參考文獻

什麼是面向服務架構

  面向服務架構又稱“面向服務的體繫結構”,是Gartner於2O世紀9O年代中期提出的面向服務架構的概念。2002年的l2月,Gartner提出“面向服務的架構(SOA)”是“現代應用開發領域最重要的課題”之後。國內外電腦專家、學者掀起了對SOA的積極研究與探索。

  我們現在正在享受著SOA給軟體帶來的好處。如電腦網路符層的服務協議象http、ftp等就是基於SOA思想的設計和開發的。各層協議問提供透明的服務和介面,使各層協議問最大程度的降底藕合性。減小外界對各層的影響,SOA是未來軟體開發與設計的標準,使我們未來開發的軟體也象網路的各層協議一樣提供給客戶完美的服務介面,減小因企業服務的改變而引起軟體的改寫,降低開發成本與開發人員的勞動強度。

  顧名思義,SOA就是以“服務”為基本元素來組建企業IT架構。在技術層面上,SOA是一種“抽象的、鬆散耦合的粗粒度軟體架構”;在業務層面上,SOA的核心概念是“重用”和“互操作”[1],它將企業的IT資源整合成可操作的、基於標準的服務,使其能被重新組合和應用。

  面向服務架構,從語義上說,它與面向過程、面向對象、面向組件一樣,是一種軟體組建及開發的方式。與以往的軟體開發、架構模式一樣,SOA只是一種體系、一種思想,而不是某種具體的軟體產品。SOA要解決的主要問題是:快速構建與應用集成。SOA能夠在實際應用中獲得成功基於兩個重要的因素:靈活性和業務相關性。這使得它成為解決企業業務發展需求與企業IT支持能力之間矛盾的最佳方案。

  SOA成功的第一個重要因素是“靈活性”。SOA是第一個考慮了企業業務發展長期性的IT架構,從本質上說,SOA是一組松耦合的服務,每一個服務的建立和替換都是相對簡單的。與傳統的緊耦合架構相比,松耦合架構更能適應業務的變化:在SOA中,可以用一個服務替換另一個服務而無須關心其底層的實現技術,唯一要考慮的就是服務介面。SOA還可以充分利用企業現有的IT資源,包括企業已有的應用和資料庫。新系統可以通過將已有應用和數據融入SOA,而不是替換它們,來使其成為企業整體解決方案的一部分。這種方式最終將使企業的IT架構能夠更快速、更有效地適應業務需求的變化。

  SOA成功的第二個重要因素是“業務相關性”。SOA與其他IT架構的最大區別在於它與業務的關聯性。它是以“服務”為基本單元來組織IT資源,其中的每一項服務都可以完成實際業務流程中的一項任務。例如,您可以把一項服務叫做“列印發票”,它可能包含計算收入、查找相應稅率、計算應繳稅款、列印發票等一系列操作。這樣一來,服務就與業務產生了密切的聯繫,業務人員

也可以參與服務的創建並且用它們定義新的業務流程。

  目前技術條件下,SOA的具體實現方式是利用XML和Web服務。此外,它還需要安全性、策略管理、可靠消息傳遞以及審計系統等等的支持,從而有效地工作。

  SOA服務和Web服務之間的區別在於設計[2]。SOA的概念中並沒有明確定義服務具體如何交互,而僅僅定義了服務如何相互理解以及如何交互。這種區別也就是指導策略與具體方法之間的區別。而且,Web服務在需要交互的服務之間如何傳遞消息有具體的指導原則,具體實現Web服務的模型是通過HTTP傳遞的SOAP消息的模型。儘管目前Web服務是實現SOA的最好方式。但是SOA並不局限於Web服務。其他使用WSDL直接實現服務介面並且通過XML消息進行通信的協議也可以包括在SOA之中。

  因此,從本質上說,Web服務只是實現SOA的具體方式之一。隨著技術的發展,完全可能會出現替代Web服務的新技術新方法,利用它們能夠更好的實現SOA。

面向服務架構的特征

  SOA的服務級別抽象圖,如下圖所示:

  面向服务架构

  基於以上圖示.SOA具有以下五個特征:

  1、可重用

  一個服務創建後能用於多個應用和業務流程。

  2、松耦合

  服務請求者到服務提供者的綁定與服務之間應該是松耦合的。因此,服務請求者不需要知道服務提供者實現的技術細節,例如程式語言、底層平臺等等。

  3、明確定義的介面

  服務交互必須是明確定義的。Web服務描述語言(Web Services Description Language,WSDL)是用於描述服務請求者所要求的綁定到服務提供者的細節。WSDL不包括服務實現的任何技術細節。服務請 求者不知道也不關心服務究竟是由哪種程式設計語言編寫的。

  4、無狀態的服務設計

  服務應該是獨立的、自包含的請求,在實現時它不需要獲取從一個請求到另一個請求的信息或狀態。服務不應該依賴於其他服務的上下文和狀態。當產生依賴時,它們可以定義成通用業務流程、函數和 數據模型。

  5、基於開放標準

  當前SOA的實現形式是Web服務,基於的是公開的W3C及其他公認標準.採用第一代Web服務定義的SOAP、WSDL和UDDI以及第二代Web服務定義的WS-*來實現SOA。

面向服務架構的元素

  面向服務的體繫結構中的角色[3]包括:如下圖所示:

  面向服务架构

  1、服務使用者:服務使用者是一個應用程式、一個軟體模塊或需要一個服務的另一個服務。它發起對註冊中心中的服務的查詢,通過傳輸綁定服務,並且執行服務功能。服務使用者根據介面契約來執行服務。

  2、服務提供者:服務提供者是一個可通過網路定址的實體,它接受和執行來自使用者的請求。它將自己的服務和介面契約發佈到服務註冊中心,以便服務使用者可以發現和訪問該服務。

  3、服務註冊中心:服務註冊中心是服務發現的支持者。它包含一個可用服務的存儲庫,並允許感興趣的服務使用者查找服務提供者介面。

  面向服務的體繫結構中的每個實體都扮演著服務提供者、使用者和註冊中心這三種角色中的某一種(或多種)。面向服務的體繫結構中的操作包括:

  • 發佈:為了使服務可訪問.需要發佈服務描述以使服務使用者可以發現和調用它。
  • 發現:服務請求者定位服務.方法是查詢服務註冊中心來找到滿足其標準的服務。
  • 綁定和調用:在檢索完服務描述之後,服務使用者繼續根據服務描述中的信息來調用服務。

  面向服務的體繫結構中的構件包括:

  • 服務:可以通過已發佈介面使用服務,並且允許服務使用者調用服務。
  • 服務描述:服務描述指定服務使用者與服務提供者交互的方式。它指定來自服務的請求和響應的格式。服務描述可以指定一組前提條件、後置條件和/或服務質量(Q0S)級別。

企業實施SOA的步驟

SOA為企業帶來的利益

  1、實施SOA,可以實現企業IT閑置資產

的重用。

  2、可以降低企業的IT投資成本。

  3、可以實現企業的動態變革。

企業實施SOA應採取的步驟

  1、引入SOA的思想

  實施SOA需要企業改變以往對待IT系統的觀念,從新的角度來看待IT系統。儘管SOA並非一個新的概念,但對於企業高層、中層等人員真正理解SOA內涵的並不多。SOA是一個架構思想,並不是一個產品。企業不可能通過引入某一個產品就能實現SOA,企業需要的是一個SOA的框架結構。

  2、做好前期規劃準備

  在實施SOA前,一定要做好前期規劃。首先要正確評估企業現狀,包括企業的管理水平、業務流程、IT系統、企業上下游的關聯等。其次,在正確評估基礎上,與SOA專家進行溝通,確認企業實施SOA時機是否成熟,與專家一起構建企業未來的SOA藍圖。其中最重要的工作就是對企業的業務流程進行分析,找出業務流程與IT系統的結合點,使企業的業務與IT系統緊密地聯繫在一起。

  3、選擇正確的平臺

  要將不同的系統和應用統一到一個大框架內.因此基礎平臺的選擇尤為關鍵。一定要關註平臺所支持的標準以及所擁有的功能,如企業可選擇含有ESB功能的基礎平臺。

企業實施SOA需重視的方面

  1、人才到位

  尤其是需要有SOA的總架構師,有一個SOA架構團隊。

  2、螺旋式上升

  SOA不是一次性模型,它包括持續的發展和重新設計。

  3、SOA投資

  SOA之路就像退休儲蓄一樣,是一種長期的投資。用戶可能會經歷一些短期的痛苦,但是最終將得到回報。

  4、總體規劃、分步實施

  SOA的實施是一項較為龐大的工程,存在各種各樣的風險。企業要在認清風險的基礎上,總體規劃、分步實施。

  5、服務的粒度劃分

  如果粒度劃分太細.企業付出的成本相應會高,如果粒度劃分太粗,則IT系統無法很好地按需快速變動,企業必須要在兩者之間尋得一個平衡點。

參考文獻

  • [1]Eric Newcomer,Greg Lomow.Understanding SOA with Web Services[M].Addison Wesley Professiona1.
  • [2]Thomas Erl.Service-Oriented Architectural Concepts,

Technology,and Design[M].Prentice Hall PTR.

  • [3]Thomas Er1.Service-Oriented Architecture:A Field Guide to Integrating XML and Web Services[M].Prentice Hall PTR.
  • 王松,劉文才. 採用面向服務架構實現敏捷企業(J) 重慶教育學院學報2006年6期
  • 淺談SOA(J) 艦船科學技術-2006年6期
  • 耿紅琴,孫利. 面向服務架構(SOA)的研究與探索(J) 福建電腦 2005年9期