webservice wsdl和soap

轉載路徑:http://hi.baidu.com/data2009/blog/item/48557b888d8a21af0e2444f4.html

Web Services 框架的核心技術包括SOAP ,WSDL 和UDDI ,它們都是以標準的XML 文檔的形式表的。SOAP 是Web services 的通信協議。SOAP是一種簡單的、輕量級的基於XML 的機制,用於在網絡應用程序之間進行結構化數據交換。SOAP包括三部分:一個定義描述消息內容的框架的信封,一組表示應用程序定義的數據類型實例的編碼規則,以及表示遠程過程調用和響應的約定。

  WSDL表示WEB服務說明語言。WSDL文件是一個XML 文檔,用於說明一組SOAP消息以及如何交換這些消息。
  UDDI(統一描述發現和集成) 提供一種發佈和查找服務描述的方法。UDDI 數據實體提供對定義業務和服務信息的支持。WSDL 中定義的服務描述信息是UDDI註冊中心信息的補充。
  Web Services 的體系架構如圖1 所示


SOAP ,WSDL 和UDDI
  Web Services 服務提供方通過WSDL(Web Services Description Language) 描述所提供的服務,並將這一描述告知Web Services 註冊服務器。註冊服務器依據WSDL 的描述,依照UDDI (Universal Description Discovery and Integration) 的協定更新服務目錄並在Internet 上發佈。用戶在使用Web Services 前先向註冊服務器發出請求,獲得Web Services 提供者的地址和服務接口信息,之後使用SOAP 協議(Simple Object Access Protocol) 與Web Services 提供者建立連接,進行通信。Web Services 的技術主要建立在XML 的規範之上,這保證了這一體系結構的平臺無關性、語言無關性和人機交互性能。


webservice 的調用有3種方式
1. httpget  
2. httppost
3. httpsoap

 

SOAP簡單的理解,就是這樣的一個開放協議SOAP=RPC+HTTP+XML:採用HTTP作爲底層通訊協議;RPC作爲一致性的調用途徑,XML作爲數據傳送的格式,允許服務提供者和服務客戶經過防火牆在INTERNET進行通訊交互。RPC的描敘可能不大準確,因爲SOAP一開始構思就是要實現平臺與環境的無關性和獨立性,每一個通過網絡的遠程調用都可以通過SOAP封裝起來,包括DCE(Distributed Computing Environment ) RPC CALLS,COM/DCOM CALLS, CORBA CALLS, JAVA CALLS,etc。

SOAP 使用 HTTP 傳送 XML,儘管HTTP 不是有效率的通訊協議,而且 XML 還需要額外的文件解析(parse),兩者使得交易的速度大大低於其它方案。但是XML 是一個開放、健全、有語義的訊息機制,而 HTTP 是一個廣泛又能避免許多關於防火牆的問題,從而使SOAP得到了廣泛的應用。但是如果效率對你來說很重要,那麼你應該多考慮其它的方式,而不要用 SOAP。

 

soap 的優點是 可以傳遞結構化的 數據,而前兩種不行。
btw, soap 最終也是使用 HTTP 傳送 XML


Web Service、WSDL、SOAP、HTTP的關係
Web Service、WSDL、SOAP、HTTP的概念存在諸多聯繫,在不同的產品中體現的概念也不一樣。本文旨在描述一下其聯繫 和區別。
WebService 和 WSDL的關係?
Web Service提供一種可被調用的服務,該服務必須通過WSDL定義接口,接口描述了WEB SERVICE 的邏輯定義(types,messages,portTypes)和傳輸協議(bindings,services)。客戶端通過WSDL定義的訪問方式和邏輯結構調用該服務。

Web Service和SOAP以及HTTP的關係?

SOAP是簡單對象訪問協議,定義了一種跨平臺的分佈式系統通信協議。SOAP需要綁定到更低層次的傳輸協議(比如, HTTP,RMI,JMS)等。最常用的是HTTP綁定,所以也經常把SOAP的概念和HTTP混在一起說。
比如:W3C定義 ”A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages......"
    
理論上通過WSDL描述的Web Service可以有很多種不同的綁定,但是實際上經常使用SOAP HTTP綁定 (就是採用“SOAP通信協議的HTTP綁定格式”來綁定)。

小結一下,感覺狹義的Web Service肯定是用WSDL/SOAP/HTTP,泛義的Web Service只要用了WSDL就算。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章