接上次,我們在使用web service之前,要先了解一下這么幾個東東:
1、soap
soap是web service的基本通信協議。因為soap與dcom和corba在概念上有相同之處,所以很多人在問:“soap是怎樣激活對象的?”或“soap在使用什么命名服務(naming service)?”?;蛟S在執行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的公司(人)信息,比如說名稱、地址和聯系方式等等?!包S頁(yellow paper)”說明uddi目錄的分類,比如說金融、服務和印刷等等。“綠頁(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
新聞熱點
疑難解答