COM+ SOAP 服務概觀
HTTP 徹底改變的電腦使用方式是讓使用者使用網頁瀏覽器,以便透過網路輕鬆存取遠端伺服器上的資訊。 XML Web 服務現在已徹底改變應用程式開發,讓用戶端應用程式能夠透過網路輕鬆呼叫遠端方法。
用戶端應用程式通常很適合呼叫在遠端伺服器上實作的方法。 有時候,方法會使用儲存在遠端伺服器上的揮發性資訊(例如,傳回對應至指定刻度符號之股票目前價格的方法)。 在其他時候,開發人員想要升級方法實作的能力,而不需要重新部署使用該實作的所有應用程式。
就像網頁一樣,XML Web 服務是透過使用 HTTP 的 Web 伺服器存取的,例如 IIS。 不過,這些 HTTP 封包不是以 HTML 編碼的網頁,而是包含呼叫伺服器上實作之方法的輸入和輸出參數,並以 SOAP 編碼。
若要使用 XML Web 服務,您必須知道公開服務的 URL,以及您想要呼叫的方法名稱,而且您必須提供方法的輸入參數。
SOAP 1.1 標準 提供以下 HTTP 封包範例,其中包含對 https://www.stockquoteserver.com/StockQuote
處的 XML Web 服務的遠端呼叫,這會傳回對應於指定股票代碼的股票目前價格。
POST /StockQuote HTTP/1.1
Host: www.stockquoteserver.com
Content-Type: text/xml; "charset=utf-8"
Content-Length: nnnn
SOAPAction: "Some-URI"
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="https://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<m:GetLastTradePrice xmlns:m="Some-URI">
<symbol>DIS</symbol>
</m:GetLastTradePrice>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
如上述範例所示,SOAP 是可內嵌在 HTTP 要求中的 XML 實例。 同樣地,結果會以具有SOAP承載的 HTTP 封包傳回,如下列範例所示。
HTTP/1.1 200 OK
Content-Type: text/xml; "charset=utf-8"
Content-Length: nnnn
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="https://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="https://schemas.xmlsoap.org/soap/encoding//">
<SOAP-ENV:Body>
<m:GetLastTradePriceResponse xmlns:m="Some-URI">
<Price>34.5</Price>
</m:GetLastTradePriceResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
雖然對支撐 XML Web 服務的基礎設施有一些了解是有幫助的,但 COM+ 讓創建和使用 XML Web 服務變得如此簡單,以至於您通常不需要深入了解這些層級。
您可以在任何 COM+ 應用程式中所設定 COM 元件的預設介面中公開方法,做為 XML Web 服務。 撰寫元件時不需要任何特殊的程式設計考慮,不同之處在於您想要公開的方法必須位於預設介面中,而且必須設定元件(在伺服器的 COM+ 目錄中)。 您不需要撰寫程式代碼,即可透過網路介面或剖析SOAP進行通訊。 如需使用 COM+ SOAP 服務建立 XML Web 服務的詳細指示,請參閱建立 XML Web 服務 。
當您將 COM+ 應用程式公開為 XML Web 服務時,會使用 Web 服務描述語言 (WSDL) 自動發佈 XML Web 服務中所有可用方法語法的詳細資訊。 使用 XML Web 服務的用戶端會使用此資訊。
COM+ 提供兩種方式讓您存取及使用遠端 XML Web 服務,如下所示:
- 已知的物件 (WKO) 模式可用來存取任何使用 WSDL 發佈其語法的 XML Web 服務,即使該 XML Web 服務不是使用 COM+ 或甚至Microsoft Windows 建立。
- 客戶端啟動的物件 (CAO) 模式只能用來存取透過公開 COM+ 應用程式所建立的 XML Web 服務。 CAO 模式會使用持續性連線來提升效能,這是目前SOAP標準不支援的功能。
這兩種方法都允許用戶端應用程式以直接的方式遠端呼叫 XML Web 服務的方法,而不需要撰寫程式代碼,即可透過網路介面或剖析 SOAP 進行通訊。 如需如何在任一模式中存取 XML Web 服務的詳細資訊,請參閱 在 CAO 模式中存取 XML Web 服務,以及 在 WKO 模式中存取 XML Web 服務。
注意
COM+ 僅支援 SOAP-RPC 規格,不支援 SOAP-Document 規格。
COM+ 可讓您以完全透明的方式,在 CAO 模式中使用現有的 COM+ 應用程式做為 XML Web 服務,讓使用 XML Web 服務變得特別容易。 如果您 從伺服器匯出 已公開為 XML Web 服務的 COM+ 應用程式,則任何 匯入 應用程式的用戶端,只要使用匯入的應用程式,就可以透明地使用伺服器的 XML Web 服務。 這項功能可讓您將現有的 COM+ 應用程式轉換成 XML Web 服務,以及透過網路部署這些服務非常簡單。
使用 XML Web 服務比遠端過程調用的替代實作有數個獨特的優點,包括下列各項:
- SOAP 是真正的跨平臺 RPC 實作,可提升互作性。
- XML Web 服務同時支援輸入和輸出參數的方法。
- XML Web 服務會透過 HTTP 執行,這通常可以穿透可能會封鎖其他 RPC 實作的防火牆。
- 使用 COM+ 實作 XML Web 服務時,開發人員不需要撰寫任何特製化程序代碼;這是優於替代 RPC 機制的巨大優勢。
注意
XML Web 服務不支援異步或透明交易式呼叫。 當您需要這項功能時,請使用 COM+ 佇列元件 服務。
相關主題