用webService实现C#平台的分布式开发

2019-07-08 02:23谢振华
电脑知识与技术 2019年13期

谢振华

摘要:为适应信息技术的发展,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项目的分布式部署。

【通联编辑:谢媛媛】