Web Service 是一個比較新的分布式的服務組件, 其中新的名詞定義很多。 這里只介紹基本概念。
Web Service 本質上就是要以標準化的方式實現企業內外各個不同服務系統之間的互調或者集成,為了實現這個目的, 需要什么樣的組成元素呢? 這里從一個最基本的方法來分析一下。假如服務A要遠程調用服務B上的服務,要實現這個目的,需要下面的3個要素。
1. 服務B要以一種標準化的語言告訴服務A它能提供什么樣的服務, 以及如何調用它的服務, 它的服務在哪里等,這就是Web Service的描述服務, 是What, How and Where 部分。
2. 服務A要以一種標準化的通信消息格式告訴服務B, 他想調用什么服務,并加入相應的輸入參數等。 當服務B完成服務后, 會同樣以標準化的通信方式告訴B相應的服務結果,是Web Service的服務消息的 Request 和 Response 部分。
3. 服務B要注冊到相應的公共網址,以便外部能找到,使URL部分。?
????????????????????????
快速理解WSDL
是一種基于XML格式的關于WEB服務的描述語言,其主要目的在于Web Service 的提供者將自己的WEB服務的所有相關內容,如所提供的服務的傳輸方式、服務方法接口、接口參數、服務路徑等,生成相應的完全文檔,發布給使用者。 使用者可以通過這個WSDL文檔,創建相應的SOAP請求(Request)消息。 通過HTTP傳遞給Web Service 提供者; Web 服務在完成服務請求后, 將SOAP返回(Response)消息傳回請求者, 服務請求者再根據WSDL文檔將SOAP返回消息解析自己能夠理解的內容。
WSDL由3部分組成:
What 部分
它描述了Web Service 的具體內容, 由以下3個部分組成
1) Type
使用 XML Schemea 具體說明服務接口方法,包括方法名、輸入參數及其類型和返回結果的類型。值得特別說明的是參數的具體類型以 xsd 的方式來定義。如 xsd:string, xsd:decimal , xsd:int 等為了保證各個軟件系統所給出的參數值是通用的。
????????????
?????????????????????
2)Message
定義Web Service所有的請求消息、響應消息和異常消息, 包括一個或多個part參數。
3) PortType
定義Web Service 的服務接口, 起作用服務接口是將上面的type 和Message 進行關聯。
How 部分
將Web Service 的服務內容和通信協議進行綁定。
一般和基于HTTP傳輸的SOAP協議進行綁定。
???????????????
Where 部分
通過服務來指定Web Service 的URI
通過Port元素、Binding 和 PortType 關聯起來, 再通過 Address 指向一個具體的URI。
???????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
快速理解UDDI
UDDI 是 Universal Description, Discovery and Integeration 的縮寫。 是一種創建注冊表服務的規范,以便大家將自己的Web Service進行注冊發布供能夠使用者查找。
當服務提供者想將自己的Web Service 服務向全世界公布, 以便外部找到其服務時, 服務提供者可以將自己的Web Service 服務注冊到相應的UDDI 商用者冊網站, 目前全球有IBM 等四家UDDI 商用者冊網站,IBM 的網址是 http://uddi.ibm.com . 這四家網站是同步的, 服務提供者以SOAP 消息格式將自己的服務發布到這些網站即可。
因為WSDL 文件中已經給定了Web Service 的地址URI, 外部可以直接通過wsdl 提供URI 進行相應的Web Service調用,所以UDDI并不是一個必須的Web Service 組件, 服務方完全可以不進行UDDI 的注冊。