基于Web Services的信息系统集成技术
2013-12-12仲志平
仲志平
(安徽师范大学物电学院,安徽 芜湖 241000)
引言
教育资源的整合与共享是缩小城市与乡村学校之间、重点与普通学校之间教育资源差距,实现教育资源服务效益最大化,减少项目重复建设,节约国家能源的有效手段。但由于各所学校信息系统建设的时间和起点不同,原有应用系统的开发环境及其数据形式存在差异,因此,在不改变原应用系统的条件下,整合这些自治的、分布的异构数据源中的信息,屏蔽语言、平台、协议、数据结构等差异所带来的复杂问题,已经成为信息集成领域研究的热点。目前,一种较为有效地集成国内校园信息系统的解决方案是,引入Web Services技术。
1 Web Services编程模型
1.1 传统的信息集成架构
信息集成技术已经经历了长期的发展过程,领域专家提出了很多信息集成方案[1]。总体上可以划分为独立应用系统、企业应用集成EAI(Enterprise Application Integration)和面向服务的体系结 构 SOA (Service-Oriented Architecture)等 三 个阶段[2]。独立应用系统阶段:是将数据源集成到一个系统中,采用统一的数据模式,方法简单,但是,存在系统建设周期长、成本高、集成系统之间的模块无法共享等不足。企业应用集成阶段EAI:采用基于组件的分布式集成系统和分布式对象模型,能够集成网络计算环境下大量复杂的信息。但是要求服务客户端与系统提供的服务之间属于同类基本结构,且服务供需两端的执行机制相互制约。面向服务的体系结构SOA:通过良构的接口将应用程序的不同功能单元联系起来,接口定义独立于实现服务的硬件平台、操作系统和编程语言,系统中的服务可以以一种统一的方式进行交互,具有松耦合、重构灵活、支持标准以及关注服务等特点。但是,应用程序的不同组件之间紧密相连,当需要更改时,它们就显得非常脆弱。
1.2 Web Services集成方案
Web Services是一个分布式计算模型,利用XML、SOAP、UDDI、WSDL 和 WSFL 等标准构造一个松散耦合的分布式计算环境,解决不同中间件平台之间服务的互操作性[3]。该领域包括服务提供者、服务注册中心和服务请求者三个部分,可以进行信息服务的发布、发现和绑定等操作。与CORBA,EJB和DCOM等技术相比,Web Services技术有利于系统的开放性、安全性和可维护性,且允许重用代码以及代码后面的数据。通过Web Services统一的调用接口,可以屏蔽不同服务端组件之间的差异,实现信息系统之间的对接,从而实现信息系统间的协同工作,达到数据共享的目的。
图1.1 多所学校的信息系统集成模型
1.3 基于Web Services的系统集成模型
利用Web Services架构,模仿设计了多所学校的信息系统集成模型,如图1.1所示。
应用场景:假设几所学校之间希望实现信息整合与共享。每所学校都存在教务系统、财务系统、图书管理系统以及后勤服务系统等等,各部门的服务器,内部连接各自的数据库服务器。各部门提供的应用服务主要是针对具体业务部门的业务逻辑,如财务处的财务收费系统、教务处的选课系统和成绩管理系统、图书馆的图书管理系统等,实现方式可以采用web方式和普通桌面应用程序。所有部门将自己信息系统提供的服务以Web Service的形式发布到集成模型的 Private UDDI Registry上,便于其它学校的相关部门对该服务的发现和调用。例如,学校教务处将学生成绩查询以Web Service的方式发布到Private UDDI Registry上,行政管理机构如果需要对其管辖的所有学校学生成绩进行统计分析,就可以通过注册中心找到每所学校所提供的学生成绩查询服务,然后根据查找到的相应的服务描述把应用程序绑定到学校教务处的WEB服务上,不需要重新开发学校成绩管理系统,就可以掌握所有学生的学习情况。
2 Web Services的系统实现
Web Services的实现包括将现有的应用封装为Web Service和重新创建能提供特定服务功能的Web Service两个方面。假设实现系统集成的每所学校已经搭建的信息系统采用了不同的开发环境、不同的开发平台和编程语言,并正在发挥着作用。在进行校园信息系统集成时,关键性的工作是在不改变校园原始应用系统的前提下,将这些应用升级到Web Service-Ready。考虑校园原有的信息系统可能是采用传统的分布式技术(COM+、CORBA、EJB),或结合了 DataSnap 的MultiTier数据库技术。服务请求/调用过程中,除了传递简单类型数据外,还包含了复杂类型数据,因此在实现Web Services时,需要重点解决结合传统分布式技术、DataSnap技术的Web Services的编程实现及处理复杂类型数据Web Services的编程实现中存在的一些棘手问题。由于篇幅的问题,本文仅给出了结合传统分布式技术的Web Services实现算法。
2.1 结合传统分布式技术的Web Services结构
将Web Services与传统分布式技术结合的目的就是以最小的代价将现有的分布式信息系统升级为Web Service信息系统。对于以不同分布式技术(CORBA/EJB/COM+)实现的应用,采用类似封装形式包装成Web Service,把Web Service作为客户端和组件之间的中间层,由于Web Service可以被各种用户调用,从而消除了异构平台的集成问题。当Web Service接受了客户端请求之后,便可以再通过COM+来执行逻辑程序代码,或使用ADO存取数据库。结合组件模型COM+的 Web Services结构如图2.1[4]所示。系统实现中包括存取数据的COM+组件、Web Service服务器端和客户端几个部分的开发实现。
图2.1 结合组件模型COM+的Web Services结构
2.2 Web Service服务器端的编程实现
将存取数据的COM+组件封装成Web服务,让客户端通过Web服务接口使用COM+组件的逻辑功能。Web Service服务器端的编程实现过程为:①在COM+项目群组中再建立一个Soap应用程序项目,建立WAD类型的Web Service服务器,CoClass名称为STUDENTServiceServer。②设定Service Name为STUDENTService,激活模式选为Per Request。③在服务接口ISTUDENTService程序单元中定义查询数据(QueryMyData)和更新数据(UpdateMyData)两个方法让客户端调用。当客户端应用程序调用服务器端的这两个方法来存取数据和更新数据时,Web Service的这两个方法会再调用COM+组件的方法来完成工作,这个Web Service服务器只是作为客户端调用COM+功能的中间层。如此一来,各种客户端就可以通过这个Web Service服务器来使用COM+组件提供的功能,或是调用早已被开发的COM+组件。实现Web Services接口中定义的的查询数据(QueryMyData)和更新数据(UpdateMyData)的主要算法分别如清单1所示。④执行Web Service服务器向系统注册这个Web Service服务器,便于客户端调用。
清单1
2.3 Web Services客户端的编程实现
清单2
通过Web Services客户端应用程序可以调用Web Services服务器端提供的应用服务,不过首先需要获得Web Services服务器端实现的Web服务描述信息。系统实现之后,对数据库UNIVERSITY中学生信息数据表中的数据进行存取和更新测试。其编程实现如下:①在项目群组中建立一个新的应用程序项目,并在主窗口中放入THTTPRIO控件连接到Web Service服务器进行存取数据和更新数据的工作。设置THTTPRIO 的 WSDLLocation 特性值为:http://localhost:1024/Project2.exe/wsdl/ISTUDENTService。②实现客户端主窗口中两个按钮 “Query By WAD”(查询数据)和“Update By WAD”(更新数据)的OnClick事件处理函数,主要实现算法分别如清单2所示。
2.4 系统测试
利用SQL Server 200、C++Builder 6开发结合DataSnap技术的学生信息数据库系统,编程实现存储数据的COM+组件,完成了Web Services服务器端和客户端的编程实现后,对系统优化前后的查询、更新两项操作进行了测试,并记录完成一次成功查询和更新操作所花费的时间,测试时间记录如表1所示。
表1 测试结果
从测试结果可以看出,采用压缩传递的数据量效率最高,直接使用THTTPRIO的URL特性和把远程Web Service的WSDL文件先储存在客户端直接使用效果几乎一样,查询和更新时间几乎相同,都可以避免存取不必要的WSDL内容。相比之下,使用URL特性还可以免除事先把Web Service的WSDL储存到客户端的工作,从而免除在客户端拥有太多的WSDL文件,增加管理上的问题。
3 总结
信息集成是实现信息互访、资源共享,缩小学校之间的地区差异、等级差异,改善学生接受教育不平等局面的有效手段。同时可以提高教育资源的服务效率、避免项目重复建设和节约国家的能源。分布式集成技术Web Services,可以充分利用各所学校现有的信息系统资源,节约新系统开发所需要的时间和经费成本。不仅可以实现学校之间的信息互访,而且在其它行业,如医院、企业等领域也有广泛的发展前景。未来在服务的动态绑定,构建科学合理的代码结构等方面需要进一步优化设计,使集成系统性能得到更大的提高。
[1]聂志强.信息集成技术的研究背景与现状[J].科技资讯,2009,(35):16-17.
[2]韩冬佑,王文友,谭教锋.基于SOA架构的企业应用集成平台研究[J].信息与电脑,2010,(1):168-169.
[3]阎炜,高冠军,刘国等.基于信息平台的 Web Services集成方案的研究分析[J].中小企业管理与科技,2012,(6):125-128.
[4]李维.C++Builder 6 SOAP/Web Service 开发[M].武汉:华中科技大学出版社,2002:187.