梳理實現SOA的相關技術(組圖)
圖1 SOA技術實施的示意圖
1.XML
XML 1.0 (可擴展標記語言,Extensible Markup Language) 標準是一個基於文本的 World Wide Web 組織 (W3C) 規範的標記語言。與 HTML 使用標籤來描述外觀和數據不同,XML 嚴格地定義了可移植的結構化數據。它可以作為定義數據描述語言的語言,如標記語法或辭彙、交換格式和通信協議。
2.SOAP
簡單對象訪問協議 (Simple Object Access Protocol) 是一個基於XML的,用於在分散式環境下交換信息的輕量級協議。SOAP 在請求者和提供者對象之間定義了一個通信協議,這樣,在面向對象編程流行的環境中,該請求對象可以在提供的對象上執行遠程方法調用。因為SOAP是平台無關和廠商無關的標準,因此儘管SOA並不必須使用SOAP,但在帶有單獨 IT基礎架構的合作夥伴之間的松耦合互操作中,SOAP仍然是支持服務調用的最好方法。
W3C SOAP 1.2規範在服務請求者和服務提供者之間定義使用XML格式的消息進行通信。將應用程序請求(在XML中)放入 SOAP 信封中(也是 XML ),並從請求者到提供者發送應用程序請求,提供者發回的響應也採用相同的形式。最近 SOAP 被稱為面向服務的架構協議 (Services-Oriented Architecture Protocol)。
SOAP的優點在於它完全和廠商無關,相對於平台、操作系統、目標模型和編程語言可以獨立實現。另外,傳輸和語言綁定以及數據編碼的參數選擇都是由實現決定的。
3.WSDL
Web服務描述語言 WSDL (Web Services Description Language) 是一個提供描述服務IDL標準方法的XML辭彙。Web 服務描述語言(WSDL)規範定義了一個 XML辭彙表,該辭彙表依照請求和響應消息,在服務請求者和服務提供者之間定義了一種契約。我們能夠將Web服務定義為軟體,這個軟體通過描述SOAP消息介面的 WSDL文檔來提供可重用的應用程序功能,並使用標準的傳輸協議來進行傳遞。
WSDL描述包含必要的細節,以便服務請求者能夠使用特定服務:
● 請求消息格式
● 響應消息格式
● 向何處發送消息。
WSDL 是基於 XML 的,因此 WSDL 文檔是計算機可讀的(machine-readable)。這樣開發環境使用WSDL將集成服務的流程自動處理到請求者應用程序。例如 WebSphere Studio產生一個Java的代理對象,它能夠像本地對象一樣實現服務,但是實際上代理對象僅僅處理請求的創建和響應消息的解析。不管服務是否用Java、C#或者其他的語言實現,生成的Java代理對象都能夠從WSDL描述中調用任何的Web服務。實際上,WSDL不能像編程語言那樣描述實現細節。
4.UDDI
統一描述、發現和集成 (Universal Description, Discovery and Integration) 規範提供了一組公用的 SOAP API,使得服務代理得以實現。UDDI為發布服務的可用性和發現所需服務定義了一個標準介面(基於 SOAP 消息)。UDDI 實現將發布和發現服務的 SOAP 請求解釋為用於基本數據存儲的數據管理功能調用。
為了發布和發現其他SOA服務,UDDI 通過定義標準的 SOAP 消息來實現服務註冊(Service Registry)。註冊是一種服務代理,它是在 UDDI 上需要發現服務的請求者和發布服務的提供者之間的中介。一旦請求者決定使用特定的服務,開發者通常藉助於開發工具(如Microsoft Visual Studio .NET)並通過創建以發送請求並處理響應的方式訪問服務的代碼來綁定服務。
SOA不需要使用UDDI,但由於 UDDI 是建立在SOA上來完成自身工作的,所以UDDI是服務發現的一個好的解決方案。
5.ESB
如圖2所示,企業服務匯流排ESB(Enterprise Service Bus)是SOA架構的一個支柱技術。 作為一種消息代理架構它提供消息隊列系統,使用諸如SOAP或JMS (Java Message Service)等標準技術來實現。
圖2 ESB基本結構
有人把ESB描述成一種開放的、基於標準的消息機制,通過簡單的標準適配器和介面,來完成粗粒度應用(比如服務)和其他組件之間的互操作。
ESB的主要功能有:通信和消息處理、服務交互和安全性控制、服務質量和服務級別管理、建模、管理和自治、基礎架構智能等。
推薦閱讀:
※章子怡陷傳聞被女星黑 范冰冰否認是幕後黑手(組圖)
※阿sa為母慶生曬美艷合照 母女2人似姐妹(組圖)|阿sa|合照
※組圖:裙子又出新花樣 長後擺款式最吸睛
※澳洲:蜘蛛用蛛絲將毒蛇吊離地面 將其殺死(組圖)|蜘蛛|尼爾
※人善心善的好面相是怎樣的(組圖)