WEBSERVICE研究

webservice的原理及概念(zz)
2010-08-23 13:51

webservice的原理及概念

 

1 webservice

所謂webservice就是定義了一套標準的調用過程:

a 服務器首先用一套標準的方法向外界描述它所提供的服務的內容,就屬於WSDL

b 客戶端需要以一種標準的協議來調用此服務,這屬於SOAP.

c 服務提供者將服務內容放在一個公共的網址讓大家查詢,就屬於UDDI.

 

2 命名空間

命名空間其主要目的通過加一個命名屬性,使名稱保持唯一性。WSDL有大量的使用

命名空間的地方。本質上WSDL是一個XML文件,作爲一個XML文件,爲了區別同名的元素,就需要採用命名空間的概念。

 

3 WSDL的本質:服務內容的標準化描述

WSDL的全稱是web service Description Language,是一種基於XML格式的關於web服務

的描述語言。其主要目的在於web service的提供者將自己的web服務的所有相關內

容,如所提供的服務的傳輸方式,服務方法接口,接口參數,服務路徑等,生成相應

的完全文檔,發佈給使用者。使用者可以通過這個WSDL文檔,創建相應的SOAP請求消息

,通過HTTP傳遞給webservice提供者;web服務在完成服務請求後,將SOAP返回消息

傳回請求者,服務請求者再根據WSDL文檔將SOAP返回消息解析成自己能夠理解的內容。

 

4 SOAP的本質:標準的傳輸協議

SOAP是web service的標準通信協議,SOAP爲simple object access protocoll的

縮寫,簡單對象訪問協議. 它是一種標準化的傳輸消息的XML消息格式。

 

5 UDDI的本質:服務的公共網址

將web service進行UDDI註冊發佈,UDDI是一種創建註冊表服務的規範,以便大家將自己的

web service進行註冊發佈供使用者查找.

然而當服務提供者想將自己的web service向全世界公佈,以便外部找到其服務時,那麼

服務提供者可以將自己的web service註冊到相應的UDDI商用註冊網站,目前全球有

IBM等4家UDDI商用註冊網站。

因爲WSDL文件中已經給定了web service的地址URI,外部可以直接通過WSDL提供的

URI進行相應的web service調用。所以UDDI並不是一個必需的web service組件,服務

方完全可以不進行UDDI的註冊。

 

Web 服務有兩層含義:1、是指封裝成單個實體併發布到網絡上的功能集合體;2、是指功能集合體被調用後所提供的服務。

Web Service 是爲其它應用提供數據和服務的應用邏輯單元,應用程序通過標準的Web 協議和數據格式獲得Web Service,如HTTP 、XML 和SOAP 等,每個Web Service 的實現是完全獨立的。

簡單地講,Web 服務是一個URL 資源,客戶端可以通過編程方式請求得到它的服務,而不需要知道所請求的服務是怎樣實現的,這一點與傳統的分佈式組件對象模型不同。

Web 服務的體系結構是基於Web 服務提供者、Web 服務請求者、Web 服務中介者三個角色和發佈、發現、綁定三個動作構建的。簡單地說,Web 服務提供者就是Web 服務的擁有者,它耐心等待爲其他服務和用戶提供自己已有的功能;Web 服務請求者就是Web 服務功能的使用者,它利用SOAP 消息向Web 服務提供者發送請求以獲得服務;Web 服務中介者的作用是把一個Web 服務請求者與合適的Web 服務提供者聯繫在一起,它充當管理者的角色,一般是UDDI 。這三個角色是根據邏輯關係劃分的,在實際應用中,角色之間很可能有交叉:一個Web 服務既可以是Web 服務提供者,也可以是Web 服務請求者,或者二者兼而有之。顯示了Web 服務角色之間的關係: 其中,“發佈”是爲了讓用戶或其他服務知道某個Web 服務的存在和相關信息; “查找(發現)”是爲了找到合適的Web 服務; “綁定”則是在提供者與請求者之間建立某種聯繫。

 

 

1 Web 服務角色的相互關係

實現一個完整的Web 服務包括以下步驟:

Web 服務提供者設計實現Web 服務,並將調試正確後的Web 服務通過Web 服務中介者發佈,並在UDDI 註冊中心註冊 (發佈)

Web 服務請求者向Web 服務中介者請求特定的服務,中介者根據請求查詢 UDDI 註冊中心,爲請求者尋找滿足請求的服務; (發現)

Web 服務中介者向Web 服務請求者返回滿足條件的Web 服務描述信息,該描述信息用WSDL 寫成,各種支持Web 服務的機器都能閱讀;(發現)

◆ 利用從Web 服務中介者返回的描述信息生成相應的SOAP 消息,發送給Web 服務提供者,以實現Web 服務的調用;(綁定)

Web 服務提供者按SOAP 消息執行相應的Web 服務,並將服務結果返回給Web 服務請求者。(綁定)

一、webservice概述
  
簡單的說webservice就是一些站點開放一些服務出來,也可以是你自己開發的service,也就是一些方法,通過URL,指定某一個方法名,發出請求,站點的這個服務(方法),接收請求後,根據傳入的參數做一些處理,然後將處理後的結果以XML形式返回給你,你的程序就解析這些XML參數,然後顯示出來或做其他操作。
例如:很多大的站點提供有天氣預報的webservice、查詢某網站的數據的webservice,只要你發送請求過來,它就返回天氣預報、某網站的數據,然後你把結果顯示處來。

二、webservice的用途和好處
  
實際上,webservice的主要目標是跨平臺的可互操作性,爲了達到這個目標,webservice完全基於XML(可擴展標記語言)、XSD(XMLSchema)等獨立於平臺、獨立於軟件供應商的標準,是創建可互操作行、分佈式應用程序的新平臺,由此可以看出,在以下三種情況下,使用webservice會帶來極大的好處。
三、Web Service的幾個很重要的概念
1、SOAP
   2、
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協議已經有很好的安全構架。那麼用其他傳輸協議會出現安全問題嗎?不是的,你不必擔心,因爲已經有這方面的規範了。

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文檔,它包括三個部分。“白頁(White Paper)”說明提供Web Service的公司(人)信息,比如說名稱、地址和聯繫方式等等。“黃頁(Yellow Paper)”說明UDDI目錄的分類,比如說金融、服務和印刷等等。“綠頁(green Paper)”說明接口(Web Service 提供的)的詳細信息。UDDI提供多種查詢方式,來幫助你找到需要的Web Service。如果你查詢與財務有關的Web Service,那麼UDDI會提供詳細的信息。

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