簡式物件存取通訊協定 (SOAP)

簡式物件存取通訊協定 (SOAP) 是一種輕裝備通訊協定, 用來在非集中式的分散式環境中交換資料。SOAP 訊息是從傳送者到接收者之間的資訊傳輸。SOAP 訊息可以組合在一起,以執行要求/回應型樣。

SOAP 和傳輸無關,但是最常透過 HTTP 傳送,以透過現有的網際網路基礎架構來執行。SOAP 會定義遞送訊息的訊息路徑, 來連結以及使用所找到的 Web 服務。SOAP 可用來在 UDDI 中查詢 Web 服務。Rational® Developer 產品支援 SOAP 1.1。

SOAP 是一種 XML 型通訊協定,用來定義三個組件給每一則訊息:

連結樣式

SOAP 支援兩種不同的通訊樣式:

遠端程序呼叫 (RPC):呼叫傳回結果的作業。 通常是和非 WS-I 標準的 SOAP 編碼一起使用。

文件樣式:也就是所謂的文件導向或訊息導向樣式。這個樣式提供了較低的抽象層, 如果您使用的是 IBM® SOAP 或 Apache Axis 執行時期環境,則需要較多的程式設計工作。

編碼樣式

在分散式運算環境中,編碼樣式會定義應用程式中所定義的資料值如何與特殊通訊協定格式相互轉換。這種轉換程序稱為序列化及解除序列化。

SOAP 規格會定義 SOAP 編碼樣式:

SOAP 編碼:SOAP 編碼樣式可讓您將 SOAP 資料模型的資料類型值序列化/解除序列化。這種編碼樣式係定義在 SOAP 1.1 標準中,且不符合 WS-I 標準。

WSDL 可定義文字 XML 編碼樣式:

文字 XML:文字指文件應該依現狀或未編碼的樣子來讀取的情況。 文件會被序列化成 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 實作方式

目前 SOAP 通訊協定有多種不同的實作。比方說,Apache Foundation 提供了 Apache SOAP,這是由一個稱為 SOAP4J 的 IBM 專案以及 Apache Axis 和 IBM WebSphere® 執行時期環境發展出來的。 Rational Developer Tools 中這個版本的 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。如果需要 Web 服務和 WebSphere Application Server SOAP 執行時期的詳細資訊,請參閱 WebSphere Application Server 文件。

使用條款 | 讀者意見
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.