謝振華

摘要:為適應信息技術的發展,web信息系統已經從單一的系統發展成了分布式系統,在分布式系統中,為實現web信息系統之間的信息共享與信息查詢,webservice技術應運而生了。Webservcie技術的出現,不僅解決了相同平臺之間的數據共享,而且也解決了異構平臺之間的數據共享。該文將先從概述開始介紹webservice技術及其特點,然后從webservcie技術原理來介紹webservcie技術本質,最后以C#平臺為例,來介紹webservcie開發過程。
關鍵詞:Webservice;wsdl;服務引用
中圖分類號:TP393 ? 文獻標識碼:A
文章編號:1009-3044(2019)13-0060-01
1 背景
互聯網的迅速發展,使得web信息系統的功能要求越來越多,響應速度越來越快,為解決這些問題,web信息系統也朝著分布式web系統方向發展了。基于web系統之間信息共享,面向服務開發的webservice技術也就應運而生了。
2 webService技術概述
Webservice是一個平臺獨立,低耦合的,可編程的web應用服務。一個web項目可以通過webservice對外發布一個特定服務,讓其他的web項目調用該服務,獲得該web項目的數據資源,就如調用本項目的數據資源一樣。Webservice可以應用在同一個平臺的不同服務器之間進行數據調用,也可以應用在不同平臺的服務器之間進行數據調用。目前,很多的web平臺的分布式系統開發,都運用了webservice技術。
3 Webservice技術原理
Webservice主要是采用xml,soap和wsdl三大技術來實現分布式的web開發。WebService客戶端和服務器之間通過http協議進行數據傳輸,http協議中的數據內容采用xml格式進行封裝,http協議中的消息頭及其xml內容格式就是soap協議規定的,soap協議進一步規范了webservice客戶端和服務器端之間的數據傳輸。Wsdl是網絡服務描述語言,用于描述Web服務發布的XML格式語言。Wsdl就像一個說明書,用來描述服務及其服務相關的方法、參數和返回值。webservice服務器通過該wsdl文件說明有哪些服務對外提供服務,webservice客戶端通過一個URL地址就可以訪問到它,從而可以調用對外服務的方法。Webservice服務器對外提供服務,就必須暴露wsdl文件地址,只有能訪問到wsdl文件的客戶端,才能調用webservice服務器提供的服務方法。接下來,采用以下流程圖(圖1)來進一步說明webservice的技術原理。
4 webservice實現c#平臺開發過程
在c#開發平臺上創建兩個web項目,讓一個web項目作webservice服務器,另一個web項目做webservice客戶端。在webservice服務器上創建一個webservice服務,偽代碼如下:
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WebService1 : System.Web.Services.WebService {
[WebMethod]
Private ?ObjectService ?objs;
public string ?method1() {
objs=new ObjectService();
return objs.getMethod();
}
}
通過以上的步驟,webservice服務器就創建好了一個webservice服務,其中偽代碼中的[WebMethod]注解用于說明,該方法是對外發布的方法,可以讓其他的web項目來調用。在webservice客戶端上調用webservice服務,需要在客戶端的web項目中添加服務引用。添加服務引用,其實就是告訴webservice客戶端的服務地址,地址格式是:http://ip地址:端口號/ WebService.asmx 。接下來,在webservice客戶端就可以調用說添加的服務引用,偽代碼如下:
ServiceReference1.WebService1SoapClient obj = new ServiceReference1.WebService1SoapClient();
obj.method1()
其中ServiceReference1客戶端中服務引用的名稱,WebService1是webService服務器對外提供的服務名稱。
從以上的C#平臺開發過程中,不難看出對外的WebService1服務類的方法調用自身項目的service層,webservcie客戶端的應用層就直接通過服務引用調用WebService1的方法,就好像webservcie客戶端的應用層調用本地服務一樣。
5 總結
通過對webservice各方面技術的講解,我們掌握了如何在web項目中創建一個對外的webservcie服務。該服務不僅可以讓同平臺的web項目訪問,也可以讓異構平臺的web項目訪問,因此webservcie技術可以在異構平臺之間進行數據共享。既然可以實現了平臺之間的數據共享,那么我們就可以把不同的功能進行分解,部署在不同的服務器上,進而可以實現web項目的分布式部署。
【通聯編輯:謝媛媛】