萬盛學電腦網

 萬盛學電腦網 >> 網頁制作 >> xml編程 >> 什麼是 XML Web Service

什麼是 XML Web Service

class="area"> XML Web Service 是在 Internet 上進行分布式計算的基本構造塊。開放的標准以及對用戶和應用程序之間的通信和協作的關注產生了這樣一種環境,在這種環境下,XML Web Service 成為應用程序集成的平台。應用程序是通過使用多個不同來源的 XML Web Service 構造而成的,這些服務相互協同工作,而不管它們位於何處或者如何實現。
有多少個構建 XML Web Service 的公司,就可能有多少種 XML Web Service 定義。不過幾乎所有定義都具有以下共同點: 
XML Web Service 通過標准的 Web 協議向 Web 用戶提供有用的功能。多數情況下使用 SOAP 協議。
XML Web Service 可以非常詳細地說明其接口,這使用戶能夠創建客戶端應用程序與它們進行通信。這種說明通常包含在稱為 Web 服務說明語言 (WSDL) 文檔的 XML 文檔中。 
XML Web Service 已經過注冊,以便潛在用戶能夠輕易地找到這些服務,這是通過通用發現、說明和集成 (UDDI) 來完成的。 
本文將介紹這三種技術,但首先需要解釋一下為什麼要關注 XML Web Service。
XML Web Service 體系結構的主要優點之一是:允許在不同平台上、以不同語言編寫的各種程序以基於標准的方式相互通信。對這一行業有所了解的用戶可能馬上會說:“等一等,CORBA 和之前的 DCE 不是都做過相同的承諾嗎?這和它們有什麼區別?”最重要的區別在於:SOAP 比以前的方法要簡單得多,因此要實現與標准兼容的 SOAP,障礙也要少得多。Paul Kulchenko 在http://www.soapware.org/directory/4/implementations(英文)上提供了一個 SOAP 實現方案的列表。上次統計時,該列表已經包含了 79 項。正如您所預料,多數大的軟件公司都提供 SOAP 實現方案,但也有許多實現方案是由個別開發人員創建和維護的。相對以前的方案而言,XML Web Service 的另一大優點是使用標准的 Web 協議 - XML、HTTP 和 TCP/IP。許多公司都已經建立了 Web 基礎結構,同時它們的員工在維護方面也都具備相應的知識和經驗。因此,引入 XML Web Service 與引入以前的技術相比,其成本要低得多。
我們將 XML Web Service 定義為:通過 SOAP 在 Web 上提供的軟件服務,使用 WSDL 文件進行說明,並通過 UDDI 進行注冊。那麼,您也許要問:“使用 XML Web Service 能夠做什麼?”最初的 XML Web Service 通常是可以方便地並入應用程序的信息來源,如股票價格、天氣預報、體育成績等等。我們很容易想到,可以構建一整類應用程序以分析和匯總所關心的信息,並以各種方式提供這些信息;例如,您可以使用 Microsoft® Excel 電子表格來匯總所有的財務信息 - 股票、401K、銀行存款、貸款等等。如果能夠通過 XML Web Service 獲得這些信息,Excel 就可以不斷對其進行更新。這些信息中有些是免費的,有些則可能需要訂閱才能獲得相應服務。大部分這種信息現在已經可以在 Web 上找到了,但是 XML Web Service 可以使編程訪問更簡單,也更可靠。
以 XML Web Service 方式提供現有應用程序,可以構建新的、更強大的應用程序,並利用 XML Web Service 作為構造塊。例如,用戶可以開發一個采購應用程序,以自動獲取來自不同供應商的價格信息,從而使用戶可以選擇供應商,提交訂單,然後跟蹤貨物的運輸,直至收到貨物。而供應商的應用程序除了在 Web 上提供服務外,還可以使用 XML Web Service 檢查客戶的信用、收取貨款,並與貨運公司辦理貨運手續。
將來,某些最有趣的 XML Web Service 所支持的應用程序還可以利用 Web 完成目前無法完成的任務。例如,日歷服務就是 Microsoft .NET My Services(英文)項目即將支持的服務之一。如果您的牙醫和機械師通過這一 XML Web Service 提供其日程安排,您就可以通過網絡與他們安排約會;如果您願意,他們也可以直接在您的日歷上約定清潔和日常保養的日期。不難想象,只要能夠對 Web 進行編程,您就可以創建數以百計的應用程序。
有關 XML Web Service 及其可以構建的應用程序的詳細信息,請參閱 MSDN Web 服務(英文)主頁。 
SOAP
Soap 是 XML Web Service 的通信協議。當把 SOAP 描述為一種通信協議時,多數人都會想到 DCOM 或 CORBA,並且會問“SOAP 如何激活對象?”或“SOAP 使用什麼樣的命名服務?”等問題。雖然 SOAP 實現方案可能會包含上述內容,但 SOAP 標准並未對其進行規定。SOAP 一種規范,用來定義消息的 XML 格式 - 這是規范中所必需的部分。包含在一對 SOAP 元素中的、結構正確的 XML 段就是 SOAP 消息。這是不是很簡單?
SOAP 規范的其他部分介紹如何將程序數據表示為 XML,以及如何使用 SOAP 進行遠程過程調用 (RPC)。這些可選的規范部分用於實現 RPC 形式的應用程序,其中客戶端將發出一條 SOAP 消息(包含可調用函數,以及要傳送到該函數的參數),然後服務器將返回包含函數執行結果的消息。目前,多數 SOAP 實現方案都支持 RPC 應用程序,這是因為習慣於開發 COM 或 CORBA 應用程序的編程人員熟悉 RPC 形式。SOAP 還支持文檔形式的應用程序,在這類應用程序中,SOAP 消息只是 XML 文檔的一個包裝。文檔形式的 SOAP 應用程序非常靈活,許多新的 XML Web Service 都利用這一特點來構建使用 RPC 難以實現的服務。
SOAP 規范的最後一個可選部分定義了包含 SOAP 消息的 HTTP 消息的樣式。此 HTTP 綁定非常重要,因為幾乎所有當前的 OS(以及許多以前的 OS)都支持 HTTP。HTTP 綁定雖然是可選的,但幾乎所有 SOAP 實現方案都支持 HTTP 綁定,因為它是 SOAP 的唯一標准協議。由於這一原因,人們通常誤認為 SOAP 必須使用 HTTP。其實,有些實現方案也支持 MSMQ、MQ 系列、SMTP 或 TCP/IP 傳輸,但由於 HTTP 非常普遍,幾乎所有當前的 XML Web Service 都使用它。由於 HTTP 是 Web 的核心協議,因此大多數組織的網絡基礎結構都支持 HTTP,並且員工已經了解了如何對其進行管理。如今,已經建立了用於 HTTP 的安全保護、監視和負載平衡的基礎結構。
開始使用 SOAP 時,最容易混淆的是 SOAP 規范及其許多實現方案之間的差異。多數使用 SOAP 的用戶並不直接編寫 SOAP 消息,而是使用 SOAP 工具包來創建和分析 SOAP 消息。這些工具包通常將函數調用從某種語言轉換為 SOAP 消息。例如,Microsoft SOAP Toolkit 2.0 將 COM 函數調用轉換為 SOAP,而 Apache Toolkit 將 JAVA 函數調用轉換為 SOAP。函數調用的類型和支持的參數的數據類型隨每個 SOAP 實現方案的不同而不同,因此適用於一個工具包的函數可能並不適用於另一個工具包。這並不是 SOAP 的限制,而是所使用的特定實現方案的限制。
到目前為止,SOAP 最引人注目的特征是它可以在許多不同的軟件和硬件平台上實現。這意味著 SOAP 可用於鏈接企業內部和外部的不同系統。過去曾試過多種方法以提出一個可用於系統集成的通用通信協議,但它們都沒有象 SOAP 一樣獲得廣泛的認可。為什麼呢?因為與許多早期的協議相比,SOAP 更小巧,而且更易於實現。例如,DCE 和 CORBA 的實現需要數年時間,所以只發布了很少幾個實現方案。而 SOAP 可以利用現有的 XML 分析器和 HTTP 庫完成大部分艱苦的工作,因此 SOAP 實現方案在數月內便可完成。這就是為什麼現在已經有 70 多個 SOAP 實現方案的原因。當然,SOAP 並不具備 DCE 或 CORBA 的全部功能,雖然功能減少了,但由於其復雜程度大
copyright © 萬盛學電腦網 all rights reserved