基于Web Service技术实现应用系统间数据交换

发布时间 : 星期五 文章基于Web Service技术实现应用系统间数据交换更新完毕开始阅读

基于Web Service技术实现应用系统间数据交换

黄德业

(福建省凯特科技有限公司,福建 福州 350003)

【摘 要】本文介绍了不同应用系统间数据交换的一种方案,该实现方式已经在两个厅局的全省范围信息化建设中得到可行性验证。它基于目前流行、先进的Web Service技术,实现应用系统间的数据交换和共享,提高数据利用率。

【关键字】数据交换 Web Service 通讯协议 安全机制 1、 引言

当今信息时代,计算机网络在信息社会起着非常重要的作用,它不仅改变人们的工作方式,还对我们的生活方式产生重大影响。某种意义上讲,计算机网络的发展水平不仅反映了一个国家的计算机科学和通信技术水平,而且也是衡量其国力和现代化程度的重要标志之一。在政府的推动下,各级机关、事业,还有大量具备发展眼光与潜力的公司都加入到这个信息化建设的浪潮中来,建设了各种办公和业务系统,积累了许多宝贵的经验和高价值的数据,取得了显著的经济效益和社会效益。

随着信息化建设进一步往前推进,必须让这些高价值的数据在应用系统间共享互动,比如电子政务中的公文交换,集团级企业内部不同地域、不同子公司间的数据、工作流、应用和人的协同,以及建立统一的数据中心、为领导的决策提供支持等等。为此,我们需要解决的基础问题是:安全、高效和有针对性的实现应用系统间的数据交换。本文介绍的交换方案(以下简称DataExchange)是基于目前流行、先进的Web Service技术。

Web Service(Web服务)是一种通过开放标准、Internet以及基于业界标准的Intranet技术动态交互的软件组(应用程序和数据),它可以将不同厂商、不同硬件、不同语言编写成的应用程序集成到一起。Web Service是下一代的WWW,它允许在Web站点上放置可编程的元素,能进行基于Web的分布式计算和处理。 2、 应用场景

DataExchange系统包括两个部分,一是安装于交换服务器上,负责数据交换以及前置机的授权和注册的服务端软件;二是安装在前置机,负责对应用系统导入、导出的定义,实现各应用系统交换数据的导入、导出。下图体现了该系统在应用场景中的部署方案和在数据交换时使用的通讯协议。

第 1 页 共 5 页

如图所示,单位A与单位B要实现数据交换,可通过以下几个步骤实现:

1、单位A与单位B都要安装一套DataExchange客户端,并注册该客户端,经过DataExchange服务端认证授权后,客户端才可以正常使用。

2、用户A登陆DataExchange客户端,选择要进行数据交换的数据项,并设置该数据项的接收对象为单位B,而后,保存这个数据导出配置。

3、用户B登陆DataExchange客户端,选择单位A刚才定义的配置作为自己接收的数据项,指定这个要接收的数据项是直接保存还是需要导入到本地的应用数据表中(导入需进一步做关联配置),最后,保存这个数据导入配置。

经过以上三步的配置,数据从单位A流经交换服务器再到单位B的配置已基本完成。接下去就是发送和接收数据。

4、用户A登陆DataExchange客户端,选择要发送的数据,发送成功后,用户B就可以登陆到DataExchange客户端接收单位A发送来的数据了。

同理,单位B要发送数据到单位A的步骤也如上所述。

以上流程说明了如电子政务应用中的公文交换的情景,有相关收发员的参与。如果需要交换的具体数据是有规则可以定义的,可以编写守护程序,以计划任务定时自动执行。

下面主要针对DataExchange需要提供的接口设计,涉及的通讯协议以及采用的安全机制三大关键点进行逐一说明。 3、 接口设计

本系统的主要接口包括两个部分,一是DataExchange服务端为DataExchange客户端提

第 2 页 共 5 页

供接口;二是DataExchange客户端为应用系统提供接口。

DataExchange服务端←→DataExchange客户端:DataExchange客户端与DataExchange服务端都是通过Web Service实现信息交换和功能调用接口。

DataExchange客户端←→应用系统:如果应用系统提供了数据交换接口,则DataExchange客户端按照相应的标准、技术调用该接口实现数据交换;如果应用系统无法提供相应的数据交换接口,由前置系统以Web Service 方式提供对应数据源的标准接口(适配器),应用系统可以通过SOAP协议调用接口,实现应用系统与DataExchange客户端的无缝集成。

SOAP是一个请求/响应消息模型,按客户/服务方式运行。客户端向服务端发出函数调用请求并传递参数,服务端则返回处理结果响应客户。这种请求与响应的内容和数据都是按XML文件格式进行传送的。

4、 通讯协议

(1) 承载协议

第 3 页 共 5 页

XML 函数调用请求并传递参数 利用XML格式 封装SOAP请求 SOAP 呼叫指令被包装成SOAP:Envelope 调利HTTP的SEND()方法发送SOAP的请求 HTTP ······ 服务端 处理 接收HTTP请求 解析XML格式(SOAP封装)的请求 取出参数,调用相关函数处理 封装响应信息(按SOAP响应格式) 通过HTTP的POST发送SOAP请求 ······ HTTP 通过HTTP Response将结果(SOAP响应)返回客户端

调用HTTP Response()获取SOAP响应信封 SOAP 获取SOAP响应信封 调用MSXML.DOMDocument的LoadXML()方法转换成XML结果 XML 返回函数调用后的响应信息 本系统中用户访问DataExchange客户端,主要采用B/S模式,通过HTTP或HTTPS协议直接访问。

HTTP协议采用了请求/响应模型。一个客户机与服务器建立连接后,发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。

(2) 封装协议

本系统所提供的接口都是使用Web Service、XML技术组织及实现的。DataExchange客户端与DataExchange服务端、各应用系统与DataExchange客户端都是通过Web Service实现消息交换和功能调用接口。以Web Service为基础的接口设计是基于SOAP的接口设计。

SOAP(Simple Object Access Protocol)简单对象访问协议是在分散或分布式的环境中交换信息的简单的协议,是一个基于XML的协议,它包括四个部分:SOAP封装(envelop),封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们的框架;SOAP编码规则(encoding rules),用于表示应用程序需要使用的数据类型的实例; SOAP RPC表示(RPC representation),表示远程过程调用和应答的协定;SOAP绑定(binding),使用底层协议交换信息。SOAP简单的理解,就是这样的一个开放协议SOAP=RPC+HTTP+XML:采用HTTP作为底层通讯协议;RPC作为一致性的调用途径,XML作为数据传送的格式,允许服务提供者和服务客户经过防火墙在INTERNET进行通讯交互。

(3) XML协议

数据交换涉及许多数据的定义、要求实现同种或异种系统的数据交换,这就需要一种易于系统解析、传递、处理的数据格式。目前,XML是最适合用于实现这个目的的技术基础,同时采用XML也为实现系统的可扩展性建立基础。

XML是(eXtensible Markup Language可扩展标记语言)的简写,是从SGML中简化修改出来的。标记是指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。如何定义这些标记,既可以选择国际通用的标记语言,比如“HTML”,也可以使用像XML这样由相关人士自由决定的标记语言,这就是语言的“可扩展性”。 5、 安全机制

可以依赖CA证书、WSE实现完整性检查与加密。

为了实现 Web 服务在企业中的互操作性,XML Web Service 的主要供应商(包括

第 4 页 共 5 页

Microsoft、IBM 和 Verisign)提出了一些新的规范,用以改进关键 Web 服务领域(如安全性、消息传递的可靠性和发送附件)的互操作性。为了支持这些新提出的标准,Microsoft 发布的 Web Services Enhancements (WSE) ,包括一组用于实现这些新协议的类和一组由 Microsoft ASP.NET 提供的过滤器,这些过滤器用来截取传入和传出的 SOAP 消息,以及解释或生成 SOAP 标头以支持所需的功能。WSE 支持以下规范:WS-Security、Web Services Security Addendum、DIME、WS-Attachments、WS-Routing、WS-Referral。

WSE的体系结构模型基于处理入站和出站SOAP消息的过滤器管道。它是建立在已有的SOAPExtension类的基础上的。WSE提供了一个Microsoft.Web.Services.SoapContext类,让我们可以处理WS-Security SOAP头和其它入站的SOAP消息头,同时可为出站的SOAP消息添加WS-Security头。WSE还有一个包装类为SOAP请求和响应添加SOAPContext(与HttpContext

类似),同时服务器使用一个

SOAPExtension

“Microsoft.Web.Services.WebServicesExtension”,让我们可以验证入站的SOAP消息,还提供了可从我们的WebMethod中访问的请求和响应SoapContext。

利用WSE,我们就可以不需要深入了解上述协议的具体内容就能够开发出相应的Web Services 程序,大大简化了开发难度。基本上,可在以下几个方面充分利用WSE所提供的便利:添加/修改自定义的SOAP HEADER;加入身份验证;加密SoapBody信息;使用附件;添加soap router信息。 6、 结束语

数据交换技术在目前的信息化建设中有非常广泛的应用需求,2006年IT界十大热门话题之一的协同应用,其技术核心就是数据交换、共享。本文介绍的数据交换方案已经在现实信息化建设中实施并得到可行性验证,使用效果良好,而采用的主要技术——XML Web Service,将有非常广阔的应用前景。

参考文献

[1] James Snell Doug Tidwell Pavel Kulchenko. SOAP Web 服务开发. 中国电力出版社. 2002-9

[2] Stewart Fraser Steven Livingstone.C# XML入门经典--C#编程人员必备的XML技能.清华大学出版社.2003-11

第 5 页 共 5 页

联系合同范文客服:xxxxx#qq.com(#替换为@)