共用方式為


XML Web Service Wire 格式

DCOM 這類二進位通訊協定包含了一個方法要求層,它位於專屬通訊協定的最頂層。這類通訊協定對於建立全球可用的 XML Web Service 並沒有助益。不過,這並無礙於您將這類通訊協定用於 XML Web Service 案例中,但使用它們的缺點為這類通訊協定需倚賴其基礎系統的特定架構,因而限制了可能用戶端的範圍。

另一個作法是建構 XML Web Service 來使用一個或多個開放的通訊協定,例如 HTTP 和 SOAP 的組合。如您所預期地,支援不同通訊協定所需的基礎結構不盡相同。

XML Web Service 並不侷限於提供遠端程序呼叫 (RPC) 存取。您也可以建置它們來交換結構化資訊 (例如訂單和發票),並用來自動化與連接內部和外部的企業程序。

HTTP-GET 和 HTTP-POST

HTTP-GET 和 HTTP-POST 為標準的通訊協定,它們使用 HTTP (超文字傳輸協定) 動作 (Verb) 以及名稱/值配對的方式來進行編碼與傳送參數,並搭配相關的要求語意。每一個都包含一系列的 HTTP 要求標頭,它們定義了用戶端向伺服器要求哪些資訊以及其他的資訊,若成功的話,伺服器將回應一系列的 HTTP 回應標頭和要求的資料。

HTTP-GET 將其參數以 URL 編碼文字 (使用 MIME 類型 application/x-www-form-urlencoded) 的形式,附加至處理這些要求的伺服器 URL 上來傳遞。URL 編碼是一種字元編碼形式,它可確保傳送的參數皆以相符的文字組成,例如將空白編碼成 %20。附加的參數也被當做查詢的字串。

HTTP-POST 的參數和 HTTP-GET 類似,都是 URL 編碼的。然而,名稱/值配對是傳遞於實際的 HTTP 要求訊息內,而非當成 URL 的一部份來傳遞。

SOAP

SOAP 是一個簡單、輕量型 XML 架構的通訊協定,可用來在 Web 上交換結構化與類型資訊。SOAP 的整體設計目標為儘可能簡單,並提供最少的功能。此通訊協定定義了一個未包含應用程式或傳輸語意的訊息架構。因此,該通訊協定既模組化,又很容易擴充。

透過依循標準的傳輸通訊協定來傳輸,SOAP 可運用網際網路現有的開放架構,並輕鬆地由可支援最基本 Internet 標準的任何系統所接受。您可檢視支援與 SOAP 相容之 XML Web Service 所需的基礎結構,雖然相當簡化,但仍很強大,因為它在現有的 Internet 基礎結構中加入很少的變動,並仍輕鬆提供 SOAP 所建置服務的通用存取。

SOAP 通訊協定規格包含了四個主要部分。第一個部分針對封裝資料定義了必要的可擴充信封。SOAP 信封定義了 SOAP 訊息,並且為在 SOAP 訊息處理器之間交換資料的基本單位。這是規格中唯一的必要部分。

SOAP 通訊協定規格的第二部份定義了選擇性的資料編碼規則,可代表應用程式定義的資料型別和導向圖形,並定義一致的模型來序列化非語法的資料模型。

第三部分定義一個 RPC 式 (要求/回應) 的訊息交換模式。每個 SOAP 訊息都是單向的傳輸。雖然 SOAP 的基本形式為 RPC,它並不侷限為要求/回應的機制。XML Web Service 通常會合併 SOAP 訊息來實作這類模式,不過 SOAP 並不會強制訊息交換模式,而規格的這個部分也是選擇性的。

規格的第四部分定義了 SOAP 和 HTTP 之間的繫結方式。不過,這部分也是選擇性的。您可以將 SOAP 和任何傳輸通訊協定或機制 (包括 SMTP、FTP 或甚至一張磁片) 合併使用,以便傳輸 SOAP 信封。

如需 SOAP 規格,請參閱 W3C 網站 (http://www.w3.org/TR/soap)。

請參閱

XML Web Service 基礎結構