web service介紹(轉)

什麼是Web Services
  
  從表面上看,Web service 就是一個應用程序,它向外界暴露出一個能夠通過Web進行調用的API。也就是說,可以利用編程的方法通過Web來調用這個應用程序。
  
  對Web service 更精確的解釋: Web services是建立可互操作的分佈式應用程序的新平臺。Web service平臺是一套標準,它定義了應用程序如何在Web上實現互操作性。你可以用任何你喜歡的語言,在任何你喜歡的平臺上寫Web service ,只要我們可以通過Web service標準對這些服務進行查詢和訪問。
  
  不管你的Web service是用什麼工具,什麼語言寫出來的,只要你用SOAP協議通過HTTP來調用它,總體結構都一致。通常,你用你自己喜歡的語言(如VB 6或者VB.NET)來構建你的Web service,然後用SOAP Toolkit或者.NET的內建支持來把它暴露給Web客戶。於是,任何語言,任何平臺上的客戶都可以閱讀其WSDL文檔,以調用這個Web service。客戶根據WSDL描述文檔,會生成一個SOAP請求消息。Web service都是放在Web服務器 (如IIS) 後面的,客戶生成的SOAP請求會被嵌入在一個HTTP POST請求中,發送到Web服務器來。Web服務器再把這些請求轉發給Web service請求處理器。請求處理器的作用在於,解析收到的SOAP請求,調用Web service,然後再生成相應的SOAP應答。Web服務器得到SOAP應答後,會再通過HTTP應答的方式把它送回到客戶端。 bbs.bitsCN.com中國網管論壇
  
  基本概念
  
  SOAP
  
  XML和XSD
  
  WSDL(Web Services Description Language)
  
  WSML(Web Services Meta Language)
  
  什麼時候使用Web Services
  
  Web service是創建可互操作的分佈式應用程序的新平臺。Web service 的主要目標是跨平臺的可互操作性。爲了達到這一目標,Web service 是完全基於XML、XSD等獨立於平臺、獨立於軟件供應商的標準的。
  
  Web service在應用程序跨平臺和跨網絡進行通信的時候是非常有用的。Web service適用於應用程序集成、B2B集成、代碼和數據重用,以及通過Web進行客戶端和服務器的通信的場合。
  
  當然,Web service也不是萬能的,你不能到處濫用Web service。在有些情況下,Web service 會降低應用程序的性能,而不會帶來任何好處。例如,一臺機器或一個局域網裏面運行的同構應用程序就不應該用Web service 進行通信。
  
  如何調用Web Services
  
  客戶端:取得服務端的服務描述文件WSDL,解析該文件的內容,瞭解服務端的服務信息,以及調用方式。根據需要,生成恰當的SOAP請求消息(指定調用的方法,已經調用的參數),發往服務端。等待服務端返回的SOAP迴應消息,解析得到返回值。


  服務端:生成服務描述文件,以供客戶端獲取。接收客戶端發來的SOAP請求消息,解析其中的方法調用和參數格式。根據WSDL和WSML的描述,調用相應的COM對象來完成指定功能,並把返回值放入SOAP迴應消息返回給用戶。
  
  高層接口
  
  使用高層接口,不需要知道SOAP和XML的任何信息,就可以生成和使用一個WebService。Soap Toolkit 2.0通過提供兩個COM對象――SoapClient和SoapServer,來完成這些功能。
  
  在客戶端,只需要生成一個SoapClient實例,並用WSDL作爲參數來調用其中的mssoapinit方法。SoapClient對象會自動解析 WSDL文件,並在內部生成所有Web Service的方法和參數信息。之後,你就可以像調用IDispatch接口裏的方法一樣,調用裏面所有的方法。在VB或是腳本語言裏,你甚至可以直接在SoapClient對象名後面直接加上.方法(參數…)進行調用。
  
  低層接口
  
  要使用低層接口,你必須對SOAP和XML有所瞭解。你可以對SOAP的處理過程進行控制,特別是要做特殊處理的時候。
  
  在客戶端,首先要創建一個HttpConnector對象,負責HTTP連接。設定Connector的一些頭部信息,比如EndPoinURL和 SoapAction等。如果網絡連接需要使用代理服務器,那也要在這裏設定相關的信息。接着創建SoapSerializer對象,用於生成Soap消息。按照WSDL裏定義,把所有參數按順序序列化,得到一個完整的SOAP請求消息。該Soap消息,作爲Payload通過HttpConnector 被髮送到服務端。最後,生成一個SoapReader對象,負責讀取服務端返回的SOAP消息,取得其中的返回值。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章