軟件測試SOA and Web services 新手入門 SOA架構
關鍵字:SOA 或許已經有人告訴您,您公司的新 IT 策略將要涉及到創建一個基于面向服務的體系結構的系統。也許您已經聽到了大量的長篇大論,正想知道面向服務的體系結構(Service-Oriented Architecture,SOA)是否適合您的業務?;蛟S您正在經歷一場集成噩夢,嘗試尋找讓很多不同的系統彼此進行通信的方法。不管是何種情況,您都可能希望找到讓 IT 基礎設施為業務服務的方法,而不是其他。無論您是剛剛接觸面向服務的體系結構這一概念,還是已經涉足其中,您肯定都希望找到方法來提高實現的效率,“developerWorks SOA 新手入門” 部分將為您提供了解和著手使用 SOA 所需的資源。
Back to top
什么是 SOA?
我們可能應該回答的第一個問題也是最基本的問題。什么是面向服務的體系結構(Service-Oriented Architecture, SOA)?這個問題的答案實際上涉及與開發相關的若干不同方面。
SOA 是一種 IT 體系結構樣式,支持將您的業務作為鏈接服務或可重復業務任務進行集成,可在需要時通過網絡訪問這些服務和任務。這個網絡可能完全包含在您的公司總部內,也可能分散于各地且采用不同的技術,通過對來自紐約、倫敦和香港的服務進行組合,可讓最終用戶感覺似乎這些服務就安裝在本地桌面上一樣。需要時,這些服務可以將自己組裝為按需應用程序——即相互連接的服務提供者和使用者集合,彼此結合以完成特定業務任務,使您的業務能夠適應不斷變化的情況和需求(在有些情況下,甚至不需要人工干預)。
這些服務是自包含的,具有定義良好的接口,允許這些服務的用戶——稱為客戶機或使用者——了解如何與其進行交互。從技術角度而言,SOA 帶來了“松散耦合”的應用程序組件,在此類組件中,代碼不一定綁定到某個特定的數據庫(甚至不一定綁定到特定的基礎設施)。正是得益于這個松散耦合特性,才使得能夠將服務組合為各種應用程序。這樣還大幅度提高了代碼重用率,可以在增加功能的同時減少工作量。由于服務和訪問服務的客戶機并未彼此綁定,因此可以完全替換用于處理訂單的服務,下訂單的客戶機-服務將永遠不會知道這個更改。所有交互都是基于“服務契約”進行的;服務契約用于定義服務提供者和客戶機之間的交互。通常,您將通過創建“基于消息的”系統來實現此目標。
從業務的角度來說,面向服務的體系結構的重點在于開發能幫助您完成業務任務的技術,而不是通過技術約束來規定您的行動。例如,銷售過程(制造、運輸和收到貨款)可能會涉及數十個步驟和若干不同的數據庫和計算機系統。但就其實質而言,此過程包含一系列人工活動,例如:
銷售人員找到潛在客戶 客戶訂購產品 生產部門制造產品 生產部門發出產品 收款部門開具產品帳單 客戶支付產品貨款 面向服務的體系結構基于這些實際活動或業務服務進行組織,而不是形成公司所維護的不同的信息豎井 (Silo)。通過實現 SOA,可以帶來大量好處,包括以下各個方面:
更高的業務和 IT 一致性 基于組件的系統 松散耦合的組件和系統 基于網絡的基礎設施,允許分散于各地且采用不同技術的資源協同工作 動態構建的按需應用程序 更高的代碼重用率 更好地標準化整個企業內的流程 更易于集中企業控制 下面提供了一些有用的資源,可幫助您了解面向服務的體系結構的總體概念: IBM vision of Service-Oriented Architecture——了解 SOA 如何幫助您應對當今不斷變化的業務環境中固有的業務挑戰和 IT 需求 遷移到面向服務的體系結構,第 1 部分 和 第 2 部分——制訂實際計劃,評估當前的基礎設施,并將其遷移到真正的 SOA
體系結構
Web 服務是用于實現 SOA 的最常見技術標準。不過,這并不是可以用于開發 SOA 的各個部分的唯一技術。很多 SOA——實際上是大部分——都涉及到集成遺留數據,此類數據包含在使用 MQSeries 和 Common Object Request Broker Architecture (CORBA) 等技術的系統中。其中的許多技術都已針對 SOA 進行了調整,不管有無 Web 服務包裝均可使用。事實上,可以僅使用 MQSeries、CORBA 甚至遠程過程調用(Remote Procedure Call,RPC)技術來實現 SOA。但 Web 服務正迅速成為用于支持 SOA 的事實標準。