java Web Service

來源:互聯網
上載者:User
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的

縮寫,簡易物件存取通訊協定 (SOAP). 它是一種標準化的傳輸訊息的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(可延伸標記語言 (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會提供詳細的資訊。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.