1.定義
由兩部分組成
·SOAP--Web Service之間的基本通信協(xié)議。
·WSDL--Web Service描述語言,它定義了Web Service做什么,怎么做和查詢的信息。
2.簡單的Web Service實現(xiàn)
包含四個基本步驟
·創(chuàng)建Web Service的商業(yè)邏輯(通常是一些Java類)
·將這些Java類部署到一個SOAP服務(wù)器上
·生成客戶訪問代碼
·部署客戶應(yīng)用
注意:WSDL等文件的生成通常是利用廠商提供的工具來完成
3.SOAP
Web Service 的通信協(xié)議。當(dāng)把 SOAP 描述為一種通信協(xié)議時,多數(shù)人都會想到 DCOM 或 CORBA,并且會問“SOAP 如何激活對象?”或“SOAP 使用什么樣的命名服務(wù)?”等問題。雖然 SOAP 實現(xiàn)方案可能會包含上述內(nèi)容,但 SOAP 標(biāo)準(zhǔn)并未對其進(jìn)行規(guī)定。SOAP 一種規(guī)范,用來定義消息的 XML 格式 - 這是規(guī)范中所必需的部分。包含在一對 SOAP 元素中的、結(jié)構(gòu)正確的 XML 段就是 SOAP 消息。這是不是很簡單?
SOAP 規(guī)范的其他部分介紹如何將程序數(shù)據(jù)表示為 XML,以及如何使用 SOAP 進(jìn)行遠(yuǎn)程過程調(diào)用 (RPC)。這些可選的規(guī)范部分用于實現(xiàn) RPC 形式的應(yīng)用程序,其中客戶端將發(fā)出一條 SOAP 消息(包含可調(diào)用函數(shù),以及要傳送到該函數(shù)的參數(shù)),然后服務(wù)器將返回包含函數(shù)執(zhí)行結(jié)果的消息。目前,多數(shù) SOAP 實現(xiàn)方案都支持 RPC 應(yīng)用程序,這是因為習(xí)慣于開發(fā) COM 或 CORBA 應(yīng)用程序的編程人員熟悉 RPC 形式。SOAP 還支持文檔形式的應(yīng)用程序,在這類應(yīng)用程序中,SOAP 消息只是 XML 文檔的一個包裝。文檔形式的 SOAP 應(yīng)用程序非常靈活,許多新的 XML Web Service 都利用這一特點來構(gòu)建使用 RPC 難以實現(xiàn)的服務(wù)。
SOAP 規(guī)范的最后一個可選部分定義了包含 SOAP 消息的 HTTP 消息的樣式。此 HTTP 綁定非常重要,因為幾乎所有當(dāng)前的 OS(以及許多以前的 OS)都支持 HTTP。HTTP 綁定雖然是可選的,但幾乎所有 SOAP 實現(xiàn)方案都支持 HTTP 綁定,因為它是 SOAP 的唯一標(biāo)準(zhǔn)協(xié)議。由于這一原因,人們通常誤認(rèn)為 SOAP 必須使用 HTTP。其實,有些實現(xiàn)方案也支持 MSMQ、MQ 系列、SMTP 或 TCP/IP 傳輸,但由于 HTTP 非常普遍,幾乎所有當(dāng)前的 XML Web Service 都使用它。由于 HTTP 是 Web 的核心協(xié)議,因此大多數(shù)組織的網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)都支持 HTTP,并且員工已經(jīng)了解了如何對其進(jìn)行管理。如今,已經(jīng)建立了用于 HTTP 的安全保護(hù)、監(jiān)視和負(fù)載平衡的基礎(chǔ)結(jié)構(gòu)。
4.WSDL解析
WSDL描述語言一般包含三部分
·What部分--包括了type、message和portType元素
Type:定義了Web Service使用的數(shù)據(jù)結(jié)構(gòu)(使用XML Schema定義)
Message:一個Message是SOAP的基本通信元素。每個Message可以有一個或多個Part,每個Part代表一個參數(shù)。
PortType:消息匯總為不同的操作并歸入到一個被稱為portType的實體中。一個portType代表一個接口(Web Service支 持的操作集合),每個Web Service可以有多個接口,它們都使用portType表示。每個操作又包含了input和 output部分。
·How部分--包含binding元素
binding元素將portType綁定到特定的通信協(xié)議上(如HTTP上的SOAP協(xié)議)
·Where部分--由service元素組成
它將portType,binding以及Web Service實際的位置(URI)放在一起描述
5.客戶端
通常Web Service可以有三種類型的客戶
·商業(yè)伙伴(Business Partner)--包括分發(fā)商,零售商以及大型消費(fèi)者)
此類客戶通過SOAP、WSDL、ebXML、UDDI等XML技術(shù)與Web Service連接
·瘦客戶--包括Web瀏覽器、PDA以及無線設(shè)備
該類客戶通常經(jīng)由輕量協(xié)議(如HTTP)與Web Service連接
·肥客戶--包括Applet、各類應(yīng)用以及現(xiàn)存系統(tǒng)
通常使用重量級協(xié)議(如IIOP)連接Web Service