接上次,我們在使用Web Service之前,要先了解一下這么幾個東東:
1、SOAP
SOAP是Web Service的基本通信協議。因為SOAP與DCOM和CORBA在概念上有相同之處,所以很多人在問:“SOAP是怎樣激活對象的?”或“SOAP在使用什么命名服務(Naming Service)?”。或許在執行SOAP的過程當中會用到這些,但這些并不在SOAP規范要考慮的范疇之內。SOAP只是定義SOAP消息的xml格式(XML Format),如果你用一對SOAP標記(SOAP Elements)把XML文檔括起來,那么這個就是一個SOAP消息,這不是很簡單嗎?
SOAP規范還定義了怎樣用XML來描述程序數據(PRogram Data),怎樣執行RPC(Remote Procedure Call)。這些可選的規范是為了構建RPC-style的應用程序(客戶端SOAP消息包含函數名和在函數中用到的參數,而服務器端SOAP消息包含執行函數之后的結果)。大多數SOAP解決方案都支持RPC-style應用程序,因為很多程序員已對DCOM或CORBA熟悉。SOAP還支持Document-style應用程序(SOAP消息只包含XML文本信息)。Document-style應用程序有很好的靈活性,所以很多用RPC很難構建的Web Service用這種方式構建。
最后SOAP規范還定義了HTTP消息是怎樣傳輸SOAP消息的。這并不代表SOAP只能用HTTP來作為傳輸協議,MSMQ、SMTP、TCP/ip都可以做SOAP的傳輸協議。
很多大公司根據SOAP規范,都開發出了自己的SOAP解決方案。這些解決方案都是相對于某種語言。比如說Microsoft SOAP toolkit2.0把COM函數轉換成SOAP消息,而Apache toolkit把java函數轉換成SOAP消息。這樣難免帶來一些兼容性問題。
現在SOAP的很多另人矚目的特性已成為現實(SOAP已經運行于不同的硬件和軟件平臺),而且有70多個解決方案。之所以SOAP被人們所愛戴,是因為SOAP比其他同類技術(CORBA、DCE)簡單易用。
安全性對于應用程序來說是很重要的。那么SOAP的安全性如何呢?對于把HTTP作為傳輸協議的SOAP來說是沒有問題的,因為HTTP協議已經有很好的安全構架。那么用其他傳輸協議會出現安全問題嗎?不是的,你不必擔心,因為已經有這方面的規范了(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnglobspec/html/ws-security.asp)。
2、 WSDL
WSDL是一種XML文檔,它定義SOAP消息和這些消息是怎樣交換的。IDL(Interface Description Language)是用于COM和CORBA的,WSDL是用于SOAP的。WSDL是一種XML文檔,所以我們可以閱讀和編輯,但很多時候是用工具來創建、由程序來閱讀。
舉個例子,你要使用供應商的Web Service構建應用程序。你可以向供應商索取使用Web Service的范例,然后按照范例來構建應用程序。這樣可能出現意料不到的錯誤,比如說,你在程序中使用的客戶代碼的數據類型是integer,而供應商使用的數據類型是string.。WSDL詳細定義客戶端消息的格式,需要什么樣的參數,這樣可以避免不必要的錯誤。
3、 UDDI
UDDI可以比喻成電話本,電話本里記錄的是電話信息,而UDDI記錄的是Web Service信息。你可以不把Web Service注冊到UDDI。但如果要讓全球的人知道你的Web Service,最好還是注冊到UDDI。
UDDI目錄說明文件也是一個XML文檔,它包括三個部分?!鞍醉摚╓hite Paper)”說明提供Web Service的公司(人)信息,比如說名稱、地址和聯系方式等等。“黃頁(Yellow Paper)”說明UDDI目錄的分類,比如說金融、服務和印刷等等?!熬G頁(green Paper)”說明接口(Web Service 提供的)的詳細信息。UDDI提供多種查詢方式,來幫助你找到需要的Web Service。如果你查詢與財務有關的Web Service,那么UDDI會提供詳細的信息。
只是一點點而已,如查想了解更多請參考資料
XML Web Service basics, Roger Wolter,Microsoft Corporation, 2001年12月
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwebsrv/html/webservbasics.asp(本文是翻譯了下面的文章)
原文:http://www.trueobject.net/board/zboard.php?id=web_service_lecture&no=2
鏈接地址: http://ethinks.VEVb.com/archive/2006/07/13/450076.html
新聞熱點
疑難解答