基于XML Web Service的多层分布式系统的研究
2006/5/19 9:58:00
关键词:XML;Web Service;分布式系统 中图分类号:TP316.4 文献标识码:A Research on Multi - distributing System of the XML Web Service Chen Dong-jing,JIANG Xin-hua (School of Information Science and Engineering at Center South University,Changsha 410083 ,China) Abstract: In the paper, we present the basic concept of Multi - distributing System of the XML Web Service, and analyze the function and structure of XML Web Service in the Distributing System. We also state the general methods and steps of researching into Distributing System based on XML Web Service by connecting to the developing tool Visual Basic Net Key words: distributing system of the XML Web Service 1 引 言 随着Internet/Intranet的应用普及,分布式系统已经广泛应用。当前流行的分布式计算标准:传统的分布式对象模型CORBA(Common Object Re- quest Broker Architecture,公共对象请求代理体系结构)、DCOM(Distributed Component Object Mod- el,分布式组件对象模型)、RMI(Remote Method Invocation,远程方法调用),他们的体系结构和协议是各自独立和私有的,结构紧密耦合,不适用于异构的Internet/Intranet环境。对于一个拥有U nix,Windows和其他系统应用的复杂网络环境,多层分布系统必须能够整合这些不同的平台,实现运行于异构平台应用程序之间的通信和数据交换,使多层应用系统的实用性得到很大程度的提高.要开发这样的系统,使用XML Web Service是最好的选择。 2 XML Web Service的结构 2.1 基本概念 XML Web Service XML Web Service是一种新的面向服务的体系结构,它定义了一组标准协议,用于接口定义、方法调用、基于Internet的构件注册以及各种应用的实现。Web Service提供一套标准的类型系统,允许沟通不同平台、编程语言和组件模型中的不同类型系统,使的软件对象在不同操作系统和应用程序之中重复使用,为建立可互操作的分布式应用系统提供了一个平台。 2.2 XML Web Service计算模式介绍 XML Web Service能够被描述并通过网络发布、发现和调用,在Internet/Intranet环境中,任何支持Web Service标准的系统都可以被动态定位和与网络的其他Web Service交互,任何客户都可以调用服务而无论它们处于何处。Web Service体系结构包括三个实体和三种操作。三个实体:服务提供者(服务的所有者);服务请求者(查询和调用服务的客户端应用程序);服务代理(存储服务描述信息的信息库)。三种操作:发布操作,将服务描述发布到注册服务器上;查找操作,获取绑定服务所需的相关信息;绑定操作,分析服务绑定信息,配置系统,进行远程服务调用。在Web Service体系结构中,SOAP(Simple Object Access Protoc01)定义了 Web Service之间的基本通信协议,用来执行服务调用。WSDL(Web Services Description Language)是Web Service的描述语言,用以描述服务。UDDI(Universal Description,Discovery,and Integration)用来发布、查找服务。 
2.3 基于XML Web Service计算模式的分布式系统的体系结构框架 在基于XML Web Service的分布式系统中,人机交互是客户,可以是浏览器或者是应用程序通过 Internet连接到Web服务器,而同Web Service进行交互的。由.Net或其他开发工具来构建相应的 Web Service,可以把它们分别部署到分布式网络上的Web服务器上,然后用SOAP Toolkit或者. NET的内建支持来把它暴露给Web客户,并且 Web服务向客户提供了远程过程调用能力。于是,任何语言,任何平台上的客户,都可以阅读其WS- DL文档,以调用这个Web Service。客户根据WS- DL描述文档,会生成一个SOAP请求消息。Web service都是放在Web服务器(如IIS)后面的,客户生成的SOAP请求会被嵌入在一个HTTP POST请求中,发送到Web服务器来。Web服务器再把这些请求转发给Web service请求处理器。 Web service请求处理器解析收到的SOAP请求,调用Web service,Web service可以执行自身的功能,或者访问后台的数据库服务器,获取客户所需的结果集,然后再生成相应的SOAP应答。Web服务器得到SOAP应答后,会再通过HTTP应答的方式把它送回到客户端。 该体系结构是一种动态的集成方案,所有的服务都可以通过UDDI标准动态地被发现、绑定和使用,容易适应系统的变动,提高系统的灵活性和伸缩性,完全屏蔽了不同软件平台的差异.实现了不同平台、应用在分布式环境下的信息分布存储与共享,实现了企业异构应用环境下高度的可集成性。 
3 XML Web Service分布式系统开发方法 3.1 开发环境 在使用基于Web Service的分布式系统时,必须开发中介的XML Web服务。.Net Framework,为我们提供了构建XML Web服务的解决方案。 操作系统:Windows 2000服务器 Web服务器:IIS 5.0 数据库系统:Oracle 8.06i 编程调试:Visual Basic.Net 3.2 Web服务的开发 (1)作为开发多层分布式应用,我们选择Ora. cle数据库,并以开发对数据库进行数据交互的 Web Service为例o (2)启动Visual Studio.Net,然后选择File | New Project开启New Project对话框。 (3)在New PrOject对话框中,点击ASP.NET Web Service图标。在位置字段中,输人要新建 Web Service的名称。单击OK。Visual Studio将以设计模式显示服务。 
(4)在Visual Studio中,单击到代码视图的超级链接,或选择View | Code。Visaul Studio将显示出为创建Web Service而创建的代码模板:Imports System.Web.Services- Public Class Servicel Inherits System.Web.Services.WebService#Region“Web服务设计器生成的代码” // #End Region Web服务示例 Public Function XXXX() AsXXXX //在这添加Web Serive功能或函数代码 End Function’ End Class在实际应用中,我们在创建Web Service中构建了与Oracle数据库进行数据应答的相关方法,如建立数据连接,数据查询和数据操作等方法。下面以数据连接为例: < WebMethod( ) > Public Function con(ByVal ConnectionString As String) As Boolean O1Dbcon. ConnectionString = ConnectionString Try OlDbcon. Open( ) Catch MsgBox(“不能连接数据库,本次注册失败!”,MsgBoxStyle.Information,“提示!”) Return False End Try If O1Dbcon. State = ConnectionState. Open Then Return True Else Return False End If O1Dbcon. Close( ) End Function (5)为Web Service创建代理代理就是客户程序可以用来调用Web Service的软件。代理负责打包与服务交互,以及把基于XML的数据转换为客户的程序可以容易访问的类型的消息。代理继承 SoapHTTPCIientProtocol类,同步方法调用使用 HTTP来访问服务。异步方法调用使用SOAP来于服务交互。可以在Visual Studio中创建代理,也可以使用WSDL.EXE生成代理。 3.2 客户端应用程序的开发 (1)在Visual Studio中创建一个新的应用程序。 (2)选择PrOject(项目)I Add Web Refence(t添加Web引用),显示Add Web Refence对话框。 (3)在对话框中,浏览/输入之前创建好的Web Service的URL(http://localhost/webservicel.as- mx)。单击Add Refence按钮。在程序中,创建一个对应服务的对象,代码如下: Dim WebServiceName as New localhost.Web- Servicel 接下来,就可以在程序中引用Webservicel内的对数据库的方法或/函数。 (4)编译执行客户端程序,则其将调用远程 Web服务器上的Web Service的方法以获取相应的信息返回。 5 结束语 我们可以在不同的机器中分别执行应用程序、服务器程序、客户端应用程序,通过开发实际应用表明Visual Studio.Net开发基于XML Web Set.vice的分布式应用系统比其他方法方便很多,不管 Web Service在网络中哪台机器执行,客户端程序都可以调用到它。这样的构架具有良好的网络拓展能力,并系统的部署和维护变得更为便捷。 参考文献 [1] [美]Jeffrey Richter著.李建忠译.Microsoft.NET框架程序设计[M].北京:清华大学出版社,2003:59~71. [2] [美]Jason Bentrurn James Whatley著.智慧东方工作室译.NET框架下电子商务站点建设指南[M].机械工业出版社,2002:10l~105.




提交
查看更多评论
其他资讯
超越传统直觉,MATLAB/Simulink助力重型机械的智能化转型
新大陆自动识别精彩亮相2024华南国际工业博览会
派拓网络被Forrester评为XDR领域领导者
智能工控,存储强基 | 海康威视带来精彩主题演讲
展会|Lubeworks路博流体供料系统精彩亮相AMTS展会