司吉鹏
摘要:该文分析了考试数据异构现状,通过分析Web Service体系结构,提出了基于Web Service进行异构数据的集成机制。
关键词:Web Service;招生考试;数据异构;数据集成
中图分类号:TP393 文献标识码:A
文章编号:1009-3044(2019)10-0005-02
开放科学(资源服务)标识码(OSID):
随着信息技术的高速发展,在教育教学、考试、录取过程中,信息技术发挥的作用越来越大。不同时间、不同地区以及不同考试或录取过程中使用的管理系统不同,其中的信息资源往往存储于不同的数据库管理系统(如MS SQLServer、Access、Visual FoxPro),甚至直接存储于EXCEL或者WORD,这些不同的数据库管理系统由于使用者的不同往往在地理上也是分布的,从而构成一个结构复杂跨越Internet的分布式异构数据源。因此,异构数据源的整合、集成是招生考试系统信息化建设过程中需要解决的一个问题。
数据源异构主要表现在两个方面:
1)系统异构,即数据源所依赖的应用系统、数据库管理系统以及操作系统之间的不同构成的系统异构。在招生考试工作中,常用的数据库,比如信息技术考试使用sql server 2000,而考试报名系统常采用VFP。
2)模式异构,即数据源在存储模式上的不同。存储模式主要有关系模式、对象模式、对象关系模式以及文档嵌套模式等几种,其中目前主流的存储模式是关系模式。即使是同一类存储模式,由于属于不同公司的数据库产品,他们的模式结构也存在着差异。如Oracle与DB2在数据类型上并不完全一致。
此外,更常见的冲突来自命名,数据类型的冲突,比如考生的准考证号名称“zkzh”,而在其他系统里则可能是“zkh”,数据类型则可能是字符型也可能是长整型。
为了实现在异构环境中的信息共享和交互,传统的方法只要有以下三种:
1)数据的迁移和转换:利用数据转换工具对数据格式转换,从而能被其他系统接收。
2)模式集成手段:模式集成是指在逻辑上使用同一的概念模式表示各个数据库中的信息,达到数据共享的目的。传统的模式集成手段分为全局模式和联邦数据库两种。但这种集成通常是单向、主从式的,在可扩展性和性能上差强人意。
3)使用中间件技术:中间件是位于客户端和服务器之间的中介接口软件,现有的数据库中间件允许客户端在异构数据库上调用SQL服务已解决异构问题。
Web Service是一种新型的Web应用程序,具有自包含、自描述以及模块化的特点,可以通过Web发布、查找和调用;Web Service实现的功能可以是响应客户一个简单的请求,也可以是完成一个复杂的商务流程,一旦一个Web Servcie配置好后,其他应用程序和其他Web Service就可以直接发现和调用该服务。本文提出一种基于Web Service的分布异构数据库集成方法。
1 Web Service體系结构介绍
Web服务[1][2]是当下新兴的Web应用模式,也是一种崭新的分布式计算模型。Web服务主要解决如何让服务在网络中共享以及用户如何获取网络中的共享的服务并组合成自己所需的应用程序,实现软件的互操作性。Web服务具有良好的封装性、松耦合性、协议规范等特点,在很多领域得到了广泛的应用,尤其在电子商务领域中,它大大降低了电子商务的维护成本,成为在该领域最为合理的解决方案。
Web服务框架包括服务提供者、服务请求者和服务代理以及三者之间的通信、XML消息传递机制等[3]。Web服务建立在一系列的标准协议之上,如HTTP/SOAP(Simple Object Access Protocol,简单对象访问协议)[4]、WSDL(Web Service Description Language,Web服务描述语言)[5]、UDDI(Universal Description Discovery and Integration,统一描述发现集成)[6] ,这些协议均使用XML作为语法基础,彼此间具有兼容性。
Web Service有三个角色:服务提供者,服务请求者和服务注册机构。如图1所示:
服务注册机构注册已经发布的服务,对其进行分类,并提供搜索服务;服务提供者发布自己的服务,并且对使用自身服务的请求进行响应;服务请求者利用服务注册机构查找所需的服务,然后使用该服务。
在这个体系结构中,对传统应用系统体系结构的设计作了彻底的改变,实现了具体的事务处理信息、服务和具体客户的分离.在传统的企业应用系统中,需要确定对于该应用系统的客户,然后以此为中心进行设计.而在面向服务的体系结构中,对于客户的标准没有严格定义,而是尽可能地把系统的服务设计得较灵活,以便在以后不断变化的环境中能够吸引更多的潜在客户。
2 分布式异构数据库集成机制
招生考试领域内的数据有考生报名数据、各科成绩数据、录取数据等,将这些数据按照使用的数据库管理系统进行划分,如MS SQL Server、Oracle、Visual FoxPro、Access等,所有这些数据形成了一个分布的异构数据源。但是高层应用对信息的透明访问目标,要求应用访问数据时不需要知道底层的数据结构、存储位置.Net的XML Web Service技术为实现分布式异构数据库的访问提供了强有力的支持.基于Web Service技术访问分布异构数据库的体系结构充分利用.NET的Web分布式应用程序三层架构的优点,是一个基于Web应用程序松散耦合三层架构:最底层为各分布的异构数据库,其上两层为专用Web Service和数据集成Web Service。
(1)专用Web Service
在分布异构数据库之上,针对不同的数据库,建立相应的Web Service.该Web Service利用ADO.NET中的相同或不同数据提供程序,连接不同数据库;执行对相应数据库的检索、插入、更新等一些数据操作,并向其客户端提供数据库的操作方法,使用数据集向客户端提供数据和从客户端获得数据.由于位于不同地点的不同数据库系统之上的Web Service统一以向数据集成Web Service提供数据并提供统一的公开方法,从而屏蔽了不同数据库管理系统的异构信息.使得数据集成Web Service不必理会不同数据库的差异,集中处理各分布的数据集集成。
(2)数据集成Web Service
数据集成Web Service通过HTTP调用底层分布的专用Web Service的公开的方法,获得来自不同数据库系统的数据,并将这些处于不同数据集中的数据集成到一个数据集中,通过向上公开的方法将数据提供给访问数据库的应用程序.该层对访问数据库的应用程序屏蔽了数据库的分布异构信息,使访问数据库的应用程序对数据的操作就像是在使用一个数据库。
3关键技术
基于Web Service的数据库集成涉及多方面的技术规范,包括XML、SOAP、WSDL、UDDI,它们构成一个互操作的协议栈。
(1)XML是基于Web Service的数据库集成的技术基础.它是数据表示的基本格式,用来定义具有语义信息的、半结构化/结构化的标记语言的句法,从而有利于信息的表达和组织,提高数据的检索和处理效率.XML正在成为Internet上数据描述和交换的标准。
(2)SOAP是一种独立的、通用的、基于XML标准的和文本的对象访问协议,用于在不同甚至异构的系统中发送和接收XML 数据,实现相互通信.它不与任何现有的对象模式(如COM/DCOM 和CORB等)相关,SOAP传递的消息都以XML文档形式发送和接收,而且其实现完全遵守HTTP 协议。
(3)WSDL(Web Service Description Language)[7]Web服务描述语言,以XML为格式对服务的接口(如方法和方法的服务类型)、传输协议、服务位置以及实现细节进行详细的描述,也就是描述服务的三种属性:服务能做什么、如何访问服务、服务位于何处。WSDL 将Web Service描述为一组端点,这些端点对包含面向文档信息或面向过程信息的消息进行操作,使用户应用程序能够调用其所提供的服务。
(4)UDDI (Universal Description, Discovery, and Integration,通用、描述、发现和集成)是一套面向Web 服务的信息注册中心的实现标准和规范[8]。创建UDDI 注册中心的目的是实现Web 服务的发布和发现。我們利用UDDI 规范在Web 上建立发现服务,这些发现服务为所有请求者提供了一致的接口,使得已经发布的Web 服务能通过编程被需要的请求者发现。UDDI 规范文本定义了UDDI 操作入口站点能够支持的API 接口和API 中用XML描述的数据结构的具体定义[28]。UDDI 提供了三个基本功能:服务的发布、查找和绑定。
借助XML和SOAP,分布异构数据库集成和交互的问题将从层次上被简化。XML提供了跨平台的数据编码和组织方法,而SOAP建立在XML之上,定义了一种跨系统平台的信息交换的简单包装方法.绑定于HTTP之上的SOAP协议,可以跨语言、跨操作系统、跨防火墙进行远程过程调用(RPC),实现了编程语言和系统平台的无关性,大大简化了异构数据库之间的交互问题.为了实现这种交互,需要利用WSDL文档定义接口并描述服务,在UDDI规范下,不同数据库可以用相同的方法描述自己所能提供的服务,以便让对方能够发现和应用服务。UDDI和WSDL 技术组合用来实现Web Service的查找操作,WSDL和SOAP技术组合用来实现服务的绑定,没有UDDI,Web Service就不能发布和查找,自然就谈不上Web Service的实现,可以认为UDDI是Web Service的基石。
对于数据集成Web Service,关键在于数据集的集中与分散,即当外部应用程序读取数据库数据时,该层将从多个底层Web Service获取多个数据集并将其集成到一个数据集中;当外部应用程序更新数据时,该层将判断被更新的记录属于那个数据库并调用相应的Web Service的公开方法更新该数据库.为了达到此目的,在该层设有一个数据结构,该数据结构记录各分散的数据集的相关信息.当从底层Web Service获取的多个数据集集成到一个数据集中时,自动记录各分散的数据集的相关信息;当外部应用程序更新记录并通过数据集传回时,该层从传回的数据集中获取被更新的记录数据及位置,根据记录数据结构中各分散的数据集的信息,确定被更新的记录属于哪一个分散数据集,从而更新该数据集并调用相应Web Service的方法完成更新。
4 总结
基于Web Service的分布异构数据库集成机制,充分利用了ADO.NET断开式数据结构、与XML的紧密集成、能够组合来自多个不同数据源的考生数据表示形式以及为与数据库交互而优化的功能的特点,相对于其他分布异构数据库的实现,该机制有健壮性、易扩展性和简化应用程序设计开发等优点.通过Web Service对分布于不同数据源进行整合,实现分布异构数据的透明访问,可以大大方便对于底层不同结构的考生数据的访问和共享。
参考文献:
[1]Web Service Architecture Overview.The next stage of Evolution for e-business[EB/QL]http://www-106.ibm.com/developerworks/web/library/w-ovr,2001.
[2] 柴晓路,梁宇奇.Web Service技术、框架和应用[M].电子工业出版社,2003.
[3] 岳昆,王晓玲,周傲英.Web服务核心支撑技术:研究综述.北京:软件学报,Vol.15.No.3,2004.
[4] W3C. SOAP Version 1.2[EB/OL]. http://www.w3.org/TR/soap/.2003.
[5] Christensen E, Curbera F, Meredith G, Weerawarana S. Web Services Description Language (WSDL) 1.1[EB/OL].http://www.w3.org/TR/2001/NOTE-wsdl-20010315. 2001
[6] UDDI: The UDDI Technical White Paper[EB/OL]. http://www.uddi.org. 2000
[7] Christensen E, Curbera F, Meredith G, Weerawarana S. Web Services Description Language (WSDL) 1.1[EB/OL]. http://www.w3.org/TR/2001/NOTE-wsdl-20010315. 2001
[8] The Evolution of UDDI,UDDI org White Paper. http://www.uddi.org/pubs/the evolution.
【通联编辑:王力】