功能
Web Services 可使您的應用程式成為 Web 應用程式。
Web Services 通過 Web 進行發布、查找和使用 。是應用程式組件使用開放協定進行通信, 是獨立的(self-contained)並可自我描述, 可通過使用UDDI來發現,可被其他應用程式使用。XML 是 Web Services 的基礎
工作原理
Web services 平台是簡單的可共同操作的訊息收發框架。它仍然缺少許多諸如安全和路由等重要的特性。但是,一旦 SOAP 變得更加高級,這些事項就會得到解決。有望使應用程式更加容易通信
Web services 工作原理
基礎的 Web Services 平台是 XML + HTTP。
HTTP 協定是最常用的網際網路協定。
XML 提供了一種可用於不同的平台和程式語言之間的語言。
Web services 平台的元素:
SOAP (簡易對象訪問協定)
UDDI (通用描述、發現及整合)
WSDL (Web services 描述語言)
1.整體結構
2.一個Web Service客戶端,顧名思義是和一個Web Service伺服器進行互動。
下面是一個Web Service客戶端調用Web Service的基本過程。
--> 構造SOAP請求訊息(將本地數據對象轉換為SOAP訊息)
--> 傳送SOAP訊息到Web Service伺服器的指定連線埠
--> 接收SOAP回響訊息
--> 將SOAP回響訊息轉換為本地數據對象
3.webService與SOA的關係
webService是SOA的一個具體實現
SOA是思想
就像面向對象和J2ee的關係
4.SOAP基於HTTP的,在http協定下傳輸xml檔案
5.UDDI:發現和整合服務,很少用
6.開發方法:只要獲得wsdl方式即可
7.webService效率較慢
傳輸的是文本
EJB和CORBA傳輸的是二進制,效率較好
8.攔截soap請求和回響信息
主要架構
客戶根據 WSDL 描述文檔,會生成一個 SOAP 請求訊息。Web Services 都是放在Web伺服器(如IIS)後面,客戶生成的SOAP請求會被嵌入在一個HTTP POST請求中,傳送到 Web 伺服器來。Web 伺服器再把這些請求轉發給 Web Services 請求處理器。請求處理器的作用在於,解析收到的 SOAP 請求,調用 Web Services,
然後再生成相應的 SOAP 應答。Web 伺服器得到 SOAP 應答後,會再通過 HTTP應答的方式把信息送回到客戶端。
Web Services 體系
Web Services 體系主要包括以下幾個方面:① Web Services 組件。包括 3 種組件:
服務提供者:提供服務,進行註冊以使服務可用;
服務代理:服務交換所,服務提供者和服務請求者之間的媒體;
服務請求者:向服務代理請求服務,調用這些服務創建應用程式。
② Web Services 操作。包括 3 種操作:
發布/不發布(Publish/Unpublish):提供者向代理髮布(註冊)服務或不發布(移
去)這些服務的註冊;
發現(Find):由服務請求者向服務代理執行 find 操作,服務請求者描述要找的
服務,服務代理分發匹配的結果;
綁定(Bind):在服務請求者和服務提供者之間綁定,這兩部分協商以使請求者
可以訪問和調用提供者的服務。
③ UDDI——通用發現、描述和整合。這是一個Web Services的信息註冊規範,基於UDDI的Web Services註冊可以被發現 UDDI 的發現方法是:在 Web 上有一種分布的註冊服務,商務和服務以一種通用的 XML 格式描述,XML 中的結構化數據易於發現、分析和操作。
④ WSDL——Web 服務描述語言。
Web 服務描述言語(WSDL)是一種 XML 語法,為服務提供者提供了描述構建在不同協定或編碼方式之上的 Web Services 請求基本格式的方法。WSDL 用來描述一個 Web Services 能做什麼,它的位置在哪裡,如何調用它等。在假定以SOAP/HTTP/MIME 作為遠程對象調用機制的情況下,WSDL 會發揮最大作用。UDDI 註冊描述了 Web Services 絕大多數方面,包括服務的綁定細節。WSDL 可以看作是 UDDI 服務描述的子集。
WSDL 將服務定義為一個網路端點的集合,或者說連線埠的集合。在 WSDL 裡面,端點及訊息的抽象定義與它們具體的網路實現和數據格式綁定是分離的。這樣就可以重用這些抽象定義:訊息,需要交換的數據的抽象描述;連線埠類型,操作的抽象集合。針對一個特定連線埠類型的具體協定和數據格式規範構成一個可重用的綁定。一個連線埠定義成網路地址和可重用的綁定的連線,連線埠的集合定義為服務。因此一個 WSDL 文檔在定義網路服務的時候使用如下的元素:
類型——使用某種的類型系統(如 XSD)定義數據類型的容器;
訊息——通訊數據抽象的有類型的定義;
操作——服務支持動作的抽象描述;
連線埠類型——一個操作的抽象集合,該操作由一個或多個端點支持;
綁定——針對一個特定連線埠類型的具體協定規範和數據格式規範;
連線埠——一個單一的端點,定義成一個綁定和一個網路地址的連結;
服務——相關端點的集合。
所以不難看出,WSDL 給客戶提供了一個模板,方便客戶描述和綁定服務。
主要區別
web services是指用於架構Web service的整體技術框架,而Web Service則是使用Web Services技術而創建的套用實例,在很多時候,Web Services的含義也是具體的套用實例,只不過此時泛指。
套用實例
<%@ WebService Language="VB" Class="TempConvert" %>
Imports SystemImports System.Web.ServicesPublic Class TempConvert :Inherits WebService<WebMethod()>
PublicFunction CelsiusToFahrenheit(ByVal Celsius As Int16) As Int16 Dim fahrenheit As Int16 fahrenheit = ((((Celsius) * 9) / 5) + 32) Return fahrenheitEndFunctionEnd Class
要運行這個例子,我們需要一個 .NET 伺服器
此文檔中第一行表明這是一個 Web Service,由 VB 編寫,其 class 名稱是 "TempConvert"。
<%@ WebService Language="VB" Class="TempConvert" %>接下來的代碼行從 .NET 框架導入了命名空間 "System.Web.Services"。
Imports SystemImports System.Web.Services下面這一行定義 "TempConvert" 類是一個 WebSerivce 類:
Public Class TempConvert :Inherits WebService接下來的步驟是基礎的 VB 編程。此應用程式有兩個函式。一個把華氏度轉換為攝氏度,而另一個把攝氏度轉換為華氏度。
與普通的應用程式唯一的不同是,此函式被定義為 "WebMethod"。
請在您希望其成為 web services 的應用程式中使用 "WebMethod" 來標記函式。
<WebMethod()>Public Function FahrenheitToCelsius(ByVal Fahrenheit As Int16) As Int16 Dim celsius As Int16 celsius = ((((Fahrenheit) - 32) / 9) * 5) Return celsiusEnd Function<WebMethod()>Public 最後要做的事情是終止函式和類:
End Function