標籤: 暫無標籤

由SOAP--WebService之間的基本通信協議、WSDL--WebService描述語言兩部分組成,由企業通過創建WebService的商業邏輯(通常是一些Java類)、將這些Java類部署到一個SOAP伺服器上、生成客戶訪問代碼、部署客戶應用四個步驟實現的,完成其特定商務需求的在線應用服務,其他公司或應用軟體能夠通過Internet來訪問並使用這項在線服務。

1.定義
由兩部分組成

webServicewebService

·SOAP--WebService之間的基本通信協議。
·WSDL--WebService描述語言,它定義了WebService做什麼,怎麼做和查詢的信息。

2.簡單的WebService實現
包含四個基本步驟
·創建WebService的商業邏輯(通常是一些Java類)
·將這些Java類部署到一個SOAP伺服器上
·生成客戶訪問代碼
·部署客戶應用
注意:WSDL等文件的生成通常是利用廠商提供的工具來完成

3.SOAP

Soap是XMLWebService的通信協議。當把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應用程序非常靈活,許多新的XMLWebService都利用這一特點來構建使用RPC難以實現的服務。

SOAP規範的最後一個可選部分定義了包含SOAP消息的HTTP消息的樣式。此HTTP綁定非常重要,因為幾乎所有當前的OS(以及許多以前的OS)都支持HTTP。HTTP綁定雖然是可選的,但幾乎所有SOAP實現方案都支持HTTP綁定,因為它是SOAP的唯一標準協議。由於這一原因,人們通常誤認為SOAP必須使用HTTP。其實,有些實現方案也支持MSMQ、MQ系列、SMTP或TCP/IP傳輸,但由於HTTP非常普遍,幾乎所有當前的XMLWebService都使用它。由於HTTP是Web的核心協議,因此大多數組織的網路基礎結構都支持HTTP,並且員工已經了解了如何對其進行管理。如今,已經建立了用於HTTP的安全保護、監視和負載平衡的基礎結構。

4.WSDL解析
WSDL描述語言一般包含三部分
·What部分--包括了type、message和portType元素
Type:定義了WebService使用的數據結構(使用XMLSchema定義)
Message:一個Message是SOAP的基本通信元素。每個Message可以有一個或多個Part,每個Part代表一個參數。
PortType:消息匯總為不同的操作並歸入到一個被稱為portType的實體中。一個portType代表一個介面(WebService支持的操作集合),每個WebService可以有多個介面,它們都使用portType表示。每個操作又包含了input和output部分。
·How部分--包含binding元素
binding元素將portType綁定到特定的通信協議上(如HTTP上的Soap協議)
·Where部分--由service元素組成
它將portType,binding以及WebService實際的位置(URI)放在一起描述

5.客戶端
通常WebService可以有三種類型的客戶
·商業夥伴(BusinessPartner)--包括分發商,零售商以及大型消費者)
此類客戶通過SOAP、WSDL、ebxml、UDDI等XML技術與WebService連接
·瘦客戶--包括Web瀏覽器、PDA以及無線設備
該類客戶通常經由輕量協議(如HTTP)與WebService連接
·肥客戶--包括Applet、各類應用以及現存系統
通常使用重量級協議(如IIOP)連接WebService

 Web service 是平台無關的,語言無關的,可以通過internet訪問。 

一個 Web service 具有一個或多個ports.每個port 是指部署在某個網路地址上的一個binding. 
這個網路地址叫做endpoint. 一個binding是指某個port type使用的特有信息格式和特有的傳輸協議的結合。 
一個port type可以包含一個或多個operations. 每個operation 可以有輸入信息(方法調用和輸入參數)和輸出信息(返回值)。 
每個信息包含一個或多個parts. 每個part都是一個在web service的schema中定義好的element。 
所有內容通過WSDL描述。 

如果要調用以訛RPC 類型的web service, 需要創建XML element, 其中包含operation 名字,所有輸入信息(part)的element.等內容。 
而調用document 類型的web service,只需要發送一個 輸入信息part 的內容即可。 
因為RPC類型 web service中的XML element沒定義在任何schema中,因此沒有校驗機制。 
所以document 類型的web service是主流,為了更好地協作性考慮,應該使用這種類型。

web service,每個ports,bindings, port types, operations 都有一個QName作為唯一標識符。 
一個QName包含 local part和 XML namespace兩部分。 
一個XML namespace是一個全局唯一URI
默認情況下,web service中所有這些對象的命名都是用單一的Target namespace

URI有兩種類型:URL 和 URN. 
URN 具有這樣的格式     urn:<NID>:<NSS>. 
XML namespace可以任意使用URL和URN格式,他們的區別是,URL 往往表示某個對象的位置,而URN就是一個純粹的對象標誌符號。 
You can use either as an XML namespace. The only 
difference is that a URL is suggesting that it is the location of an object, while a 
URN is purely an id of the object.

上一篇[零周期]    下一篇 [靈活]

相關評論

同義詞:暫無同義詞