SOAP及其應用

轉載自:http://space.itpub.net/22434610/viewspace-614821

一、概述
SOAP(Simple Object Access Protocol )簡單對象訪問協議是在分散或分佈式的環境中交換信息的簡單的協議,是一個基於XML的協議。SOAP 技術有助於實現大量異構程序和平臺之間的互操作性,從而使存在的應用能夠被廣泛的用戶所訪問。SOAP是把成熟的基於HTTP的WEB技術與XML的靈活性和可擴展性組合在了一起。

SOAP爲在一個鬆散的、分佈的環境中使用XML對等地交換結構化的和類型化的信息提供了一個簡單且輕量級的機制。SOAP本身並不定義任何應用語義,如編程模型或特定語義實現,它只是定義了一種簡單的機制,通過一個模塊化的包裝模型和對模塊中特定格式編碼的數據的重編碼機制來表示應用語義。SOAP的這項能力使得它可被很多類型的系統用於從消息系統到RPC(Remote Procedure Call)的延伸。


SOAP由四部分組成:
1)SOAP envelop (SOAP信封),它構造定義了一個整體的表示框架,可用於表示在消息(message)中的是什麼,誰應當處理它,以及這是可選的還是強制的。

2)SOAP encoding rules (SOAP編碼規則),它定義了一個編序機制用於交換應用程序定義的數據類型的實例。

3)SOAP RPC representation (SOAP RPC表示),它定義了一個用於表示遠端過程調用和響應的約定。

4)SOAP binding (SOAP綁定),它定義了一個使用底層傳輸協議來完成在結點間交換SOAP信封的約定。

SOAP的主要設計目標是簡明性和可擴展性。這就意味着有一些傳統消息系統或分佈式對象系統中的特性將不包含在SOAP的核心規範中。這些特性包括:


分佈式垃圾收集;

批量消息傳輸/處理;

對象引用 (需要分佈式垃圾收集的支持);

對象激活 (需要對象引用的支持)。


SOAP定義了一種消息交互機制,它描述瞭如何用XML對信息進行編碼。通常,SOAP用於在運行時解釋遠程調用的參數值,並且使用特定的編碼方式將這些值填充在XML文檔中。然後,XML數據通過HTTP協議傳輸至遠程服務器,當然有時也使用其他傳輸協議。除此之外,還有許多遠程方法調用規範,例如,CORBA的 IIOP,DCOM的ORPC,以及Java的Remote Method Protocol。 SOAP的特點——也是最大的優點在於它是基於文本的(通過採用XML),而不是二進制,而且它不是某個製造商所特有的。、

SOAP使用通用的傳輸協議-----主要是HTTP。這不僅是SOAP的祕密武器,也是它成功的關鍵。由於公司的防火牆很少限制HTTP數據,(使用HTTP作爲傳輸協議的)SOAP應該很容易通過防火牆。專用的分佈式計算協議是不可能做到的。它們使用的網絡地址通常不允許進入安裝了防火牆的安全系統。  


  SOAP的另一優點在於XML。SOAP能夠將以前無法通信和共享資源的系統集成在一起。目前,各種計算系統正逐漸支持XML。只要能夠將XML文檔傳入系統,通常就可以找到用於讀取和解釋XML編碼信息的
軟件。爲了支持遠程計算,SOAP將方法調用參數保存爲特有的二進制格式,並將這些參數作爲XML信息傳遞到遠程服務器,然後,服務器上相應的SOAP處理程序提 XML信息,並將它恢復爲二進制形式進行處理。
 


二、分佈式協議技術與SOAP關係
1、分佈式協議技術CORBA、COM/DCOM/COM+和EJB
 
  
CORBA(Common Object Request Broker Architecture)公共對象請求代理體系結構是由OMG組織制訂的一種標準的面向對象應用程序體系規範。由對象請求代理ORB、對象服務、公共設施、域接口和應用接口這幾個部分組成。其核心部分是對象請求代理ORB(Object Request Broker)。ORB提供了一種機制,通過這種機制,對象可以透明的發出請求和接收響應。分佈的、可以互操作的對象可以利用ORB構造可以互操作的應用。ORB可看作是在對象之間建立客戶/服務關係的一種中間件。基於ORB,客戶可以透明的調用服務對象提供的方法,該服務對象可以與客戶運行在同一臺機器上,也可以運行在其他機器上通過網絡與客戶進行交互。ORB截取客戶發送的請求,並負責在該軟件總線上找到實現該請求的服務對象,然後完成參數、方法調用,並返回最終結果。CORBA 1.1 由對象
管理組織在 1991 年發佈。定義了接口定義語言(IDL)和應用編程接口(API),從而通過實現對象請求代理(ORB)來激活客戶/服務器的交互。CORBA 2.0 於 1994 年的 12 月發佈定義瞭如何跨越不同的 ORB 提供者而進行通訊。

    CORBA規範的近期發展,增加了面向Internet的特性,服務質量控制和CORBA構件模型(CORBA Component Model)。Internet集成特性包括了針對IIOP傳輸的防火牆(Firewall)和可內部操作的定義了URL命名格式的命名服務(Naming Service)。服務質量控制包括能夠具有質量控制的異步消息服務,一組針對嵌入系統的CORBA定義,一組關於實時CORBA與容錯CORBA的請求方案。CORBA CCM(CORBA Component Model)技術,是在支持POA的CORBA規範(版本2.3以後)基礎上,結合EJB當前規範的基礎上發展起來的。

    COM/DCOM(Component Object Model / Distributed Component Object Model )是微軟公司提出的分佈式組件對象模型標準,支持在局域網、廣域網甚至Internet上不同計算機的對象之間的通訊。DCOM基於COM的應用程序、組件、工具等的基礎之上,處理網絡協議的低層次的細節問題,而不必關心太多的網絡協議細節,從而使用戶能夠集中精力解決用戶所要求的問題。DCOM位於應用程序的組件之間,將組件以不可見的方式膠合在一起組成具有完整功能的應用程序。COM+是隨着Windows 2000的發佈,Microsoft在COM的基礎上針對應用層的需要而推出的一套組件框架技術。COM+不再侷限於COM的組件技術,它更加註重於分佈式網絡應用的設計和實現,COM+繼承了COM幾乎全部的優勢,同時又避免了COM實現方面的一些不足。COM+緊緊地與操作系統結合起來,通過系統服務爲應用程序提供全面的服務。COM+不僅繼承了COM,DCOM和MTS的許多特性,同時也新增了一些服務,比如負載平衡、內存數據庫、事件模型、隊列服務等。COM+新增的服務爲COM+應用提供了很強的功能,建立在COM+基礎上的應用程序可以直接利用這些服務而獲得良好的企業應用特性。

EJB(Enterprise JavaBeans)是Sun推出的基於Java的服務器端構件規範J2EE的一部分,自從J2EE推出之後,得到了廣泛的發展,已經成爲應用服務器端的標準技術。Sun EJB技術是在Java Bean本地構件基礎上,發展的面向服務器端分佈應用構件技術。EJB給出了系統的服務器端分佈構件規範,這包括了構件、構件容器的接口規範以及構件打包、構件配置等的標準規範內容。從分佈式計算的角度,EJB像CORBA一樣,提供了分佈式技術的基礎。提供了對象之間的通訊手段。

EJB是用於開發安全、可擴展、事務型以及多用戶組件的一種分佈式組件模型。簡單地講,EJB是(理想的)包含業務邏輯的可重用軟件單元。正如JSP網頁允許把應用程序和表示邏輯分開,EJB允許把應用程序邏輯與系統級服務分開,這樣開發者可以集中精力於具體業務問題,而不是系統編程。這些企業小程序(bean)業務對象具有三種基本形式,同樣也沒有必要三者都實現,它們分別是會話(session)bean、實體(entity)bean和消息驅動(message-driven)bean。 企業級JavaBean是一種以組件爲基礎的分佈式計算環境的結構體系,企業Bean是分佈式的面向交易處理的企業應用系統的組件。

發佈了28 篇原創文章 · 獲贊 6 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章