天天看點

接口測試之webservice

什麼是Webservice

Web service是一個平台獨立的,低耦合的,自包含的、基于可程式設計的web的應用程式,可使用開放的XML(标準通用标記語言下的一個子集)标準來描述、釋出、發現、協調和配置這些應用程式,用于開發分布式的互操作的應用程式。[1] 

Web Service技術, 能使得運作在不同機器上的不同應用無須借助附加的、專門的第三方軟體或硬體, 就可互相交換資料或內建。依據Web Service規範實施的應用之間, 無論它們所使用的語言、 平台或内部協定是什麼, 都可以互相交換資料。Web Service是自描述、 自包含的可用網絡子產品, 可以執行具體的業務功能。Web Service也很容易部署, 因為它們基于一些正常的産業标準以及已有的一些技術,諸如标準通用标記語言下的子集XML、HTTP。Web Service減少了應用接口的花費。Web Service為整個企業甚至多個組織之間的業務流程的內建提供了一個通用機制。

Web Service調用方式

XML和XSD

可擴充的标記語言(标準通用标記語言下的一個子集)是Web Service平台中表示資料的基本格式。除了易于建立和易于分析外,XML主要的優點在于它既與平台無關,又與廠商無關。XML是由網際網路協會(W3C)建立,W3C制定的XML SchemaXSD 定義了一套标準的資料類型,并給出了一種語言來擴充這套資料類型。

Web Service平台是用XSD來作為資料類型系統的。當你用某種語言如VB. NET或C# 來構造一個Web Service時,為了符合Web Service标準,所有你使用的資料類型都必須被轉換為XSD類型。如想讓它使用在不同平台和不同軟體的不同組織間傳遞,還需要用某種東西将它包裝起來。這種東西就是一種協定,如 SOAP。

SOAP

SOAP即簡單對象通路協定(Simple Object Access Protocol),它是用于交換XML(标準通用标記語言下的一個子集)編碼資訊的輕量級協定。它有三個主要方面:XML-envelope為描述資訊内容和如何處理内容定義了架構,将程式對象編碼成為XML對象的規則,執行遠端過程調用(RPC)的約定。SOAP可以運作在任何其他傳輸協定上。例如,你可以使用 SMTP,即網際網路電子郵件協定來傳遞SOAP消息,這可是很有誘惑力的。在傳輸層之間的頭是不同的,但XML有效負載保持相同。

Web Service 希望實作不同的系統之間能夠用“軟體-軟體對話”的方式互相調用,打破了軟體應用、網站和各種裝置之間的格格不入的狀态,實作“基于Web無縫內建”的目标。

WSDL

Web Service描述語言WSDL 就是用機器能閱讀的方式提供的一個正式描述文檔而基于XML(标準通用标記語言下的一個子集)的語言,用于描述Web Service及其函數、參數和傳回值。因為是基于XML的,是以WSDL既是機器可閱讀的,又是人可閱讀的。

UDDI

UDDI 的目的是為電子商務建立标準;UDDI是一套基于Web的、分布式的、為Web Service提供的、資訊注冊中心的實作标準規範,同時也包含一組使企業能将自身提供的Web Service注冊,以使别的企業能夠發現的通路協定的實作标準。

調用RPC與消息傳遞

Web Service本身其實是在實作應用程式間的通信。我們有兩種應用程式通信的方法:RPC遠端過程調用 和消息傳遞。使用RPC的時候,用戶端的概念是調用伺服器上的遠端過程,通常方式為執行個體化一個遠端對象并調用其方法和屬性。RPC系統試圖達到一種位置上的透明性:伺服器暴露出遠端對象的接口,而用戶端就好像在本地使用的這些對象的接口一樣,這樣就隐藏了底層的資訊,用戶端也就根本不需要知道對象是在哪台機器上。