SOAP(早期稱為「簡式物件存取通訊協定」)是一種輕型通訊協定,適用於在非集中的分散式環境下交換資訊。 SOAP 訊息是從傳送者到接收者之間的資訊傳輸。SOAP 訊息可以組合在一起,以執行要求/回應型樣。
SOAP 與傳輸無關,但最常經由 HTTP 來傳送,以利於配合現有的網際網路基礎架構一起運作。 SOAP 定義訊息路徑來遞送訊息,以此來連結和使用找到的 Web 服務。 SOAP 可用來在 UDDI 中查詢 Web 服務。工作台支援 SOAP 1.1。
SOAP 是一種 XML 型通訊協定,用來定義三個組件給每一則訊息:
SOAP 支援兩種不同的通訊樣式:
遠端程序呼叫 (RPC): 呼叫會傳回結果的作業。通常是和非 WS-I 標準的 SOAP 編碼一起使用。
文件樣式: 又稱為文件導向或訊息導向樣式。這個樣式提供了更低的抽象層次, 且需要投入更多程式設計工作。
在分散式運算環境中, 編碼樣式規定應用程式中定義的資料值和特定通訊協定格式之間如何轉換。 轉換過程稱為序列化和解除序列化。
SOAP 規格會定義 SOAP 編碼樣式:
SOAP 編碼: SOAP 編碼樣式可讓您序列化/解除序列化 SOAP 資料模型中的資料類型的值。 此編碼樣式由 SOAP 1.1 標準所定義,不符合 WS-I 標準。
WSDL 可定義文字 XML 編碼樣式:
文字 XML: 文字 (Literal) 是指文件依字面閱讀或不編碼。 文件會被序列化成 XMI,表示訊息 XML 會符合 WSDL 中的綱目。當您使用文字編碼時,每一個訊息組件都會參照具體的綱目定義。文字編碼是 WS-I 標準。
SOAP 資料模型的用途是為一般程式語言類型所用的資料類型提供語言無關的抽象表示法。由下列元素組成:
構成 SOAP 資料模型的所有元素和 ID 皆於名稱空間 URI 中定義。 SOAP 標準定義規則,指定如何建構資料類型。專案特有的 XML 綱目必須定義實際的資料類型。 SOAP 規格的元素,是定義在 http://schemas.xmlsoap.org/soap/envelope/ 和 http://schemas.xmlsoap.org/soap/encoding/。
SOAP 通訊協定目前有各種不同的實作方式。 比方說,Apache Foundation 提供了 Apache SOAP(其衍生自 IBM® 專案 SOAP4J)以及 Apache Axis 和 IBM WebSphere® 執行環境。所提供的 Web 服務工具支援 Apache SOAP 2.3、Axis 1.0 和 IBM WebSphere 實作方式。
對映會定義合格 XML 元素名稱、Java™ 類別名稱,以及編碼樣式之間的關聯性。對映會指定在給定的編碼下, 送入且具有完整名稱的 XML 元素如何轉換成 Java 類別,反之亦然。
如需 Apache SOAP 的相關資訊,請參閱 xml.apache.org/soap。如需 SOAP 的相關資訊,請參閱 www.w3.org/TR/SOAP。