基于XML与WebService的分布式数据查询系统的设计与实现

2022-09-11

企业在信息化过程中, 在不同的时期, 为了满足不同业务需求, 投入了大量的人力、物力和财力开发了许多独立的部门级的信息系统。以高校为例, 一个高校可能有独立的人事管理系统、教务管理系统、科研管理系统、财务管理系统、学生管理系统、教师管理系统等。这些系统解决了一些局部的、非常关键的问题, 在一定程度上提高了学校的信息化水平。然而, 由于实施信息管理系统的阶段性、技术性以及其它经济和人为因素的影响, 以至于不同部门采用的数据库管理系统也大不相同, 从简单的Excel文件到复杂的网络数据库, 它们构成了复杂的分布异构的数据库。尽管这些数据库管理系统能够满足数据存储与管理的需要, 但在很多情况下为完成一项工作可能需要访问多个信息管理系统中的数据, 这就必须对这些分布异构数据库进行集成, 为用户提供统计的透明的访问接口。

1 XML简介[1]

Xml是一种标记语言, 通过创建自定义标签赋予数据各种含义, 使数据变成自描述的。X M L技术现在已经广泛的应用于数据转换、科学计算、图形图像、无线通信、W e b开发等技术领域。随着X M L的广泛应用, 衍生出多个相关技术——X M L架构、XSLT转换、XPath、Xquery、XPointer等。

XML是目前全球范围内用于描述数据和交换数据的一种标准方式, 在数据应用方面具有很多优点。第一, 跨平台。XML文件为纯文本文件, 不受操纵系统和软件平台的限制, 具有良好的通用性、扩展性。第二, 支持多语种。XML规范中提供了对多语种的支持, 包括UTF-8、UTF-16、UNICODE、GB2312、BIG5等;第三, 易表义。XML具有基于Schema自描述语义的功能, 容易描述数据的语义, 这种描述能为计算机理解和自动处理。第四, XML不仅可以描述结构化数据, 还可以描述半结构化甚至非结构化数据。

目前各种主流的数据库产品都增加了对X M L的支持, 提供关系数据库格式与X M L数据格式的转换工具

2 分布式数据查询模型

2.1 分布式数据查询模型的体系结构

分布式数据查询模型, 是采用W e b Service技术将各异构数据库系统连接起来, 并采用XML作为公共的数据交换语言, 为各应用程序提供统一的查询平台。该模型的体系结构如图1。处于中心位置的查询中心, 它是实现分布式查询的核心, 它通过标准化的Web Service接口为每个应用程序提供全局型的查询服务, 接收应用程序的查询请求, 将查询结果返回给应用程序。查询代理对异构数据源进行屏蔽, 它将数据源中的数据转换为标准的X M L格式数据, 也提供统一的Web服务接口与查询中心进行交互。查询代理接收查询中心发送的查询请求, 对数据源进行查询, 并将查询结果返回给查询中心。查询中心并不做具体的查询工作, 它对应用程序提交的查询请求进行分析, 然后选择一个或多个查询代理进行数据查询, 最后将查询代理返回的结果返回给应用程序。该结构耦合性低, 已有的应用程序的业务逻辑不受任何影响, 同时很容易将新的应用程序和数据源接入到查询中心去而不影响其他系统运行[2]。

2.2 分布式数据查询流程

分布查询的流程如图2。查询代理必须首先向查询中心注册它所能查询的数据库的信息, 这些信息包括数据库名称、数据库中所有用户表的名称及表结构, 同时为了让查询中心能动态的调用查询代理, 注册时还必须包含查询代理的URL以及服务名称。

当应用系统1需要查询非本地数据时, 就像查询中心请求查询, 查询中心收到请求后查找相关的数据源的查询代理, 找到后转发请求, 然后查询代理2查询DB2上的数据, 并将查询的结果以XML格式返回给查询中心, 然后查询中心将数据再返回给应用系统1, 这样就完成了一次查询。从图2可以看出, 应用程序进行查询和获得查询结果都只和查询中心发生联系, 而不需要去考虑真正的数据源在哪里。查询中心就相当于一个虚拟的数据库, 将分散在不同地方是数据库集成起来, 为各应用程序提供统一的查询接口。

3 分布式数据查询系统实现

本系统在查询中心主要完成两大功能, 一是注册查询代理节点信息, 将信息保存到XML文件中;二是动态调用查询代理提供的服务, 将查询结果返回给应用程序。

3.1 查询代理信息注册

注册流程见图3。查询中心在接受到查询代理注册请求后, 首先对查询中心存储的有关各查询代理注册的信息进行检索, 如果没有找到请求注册代理的信息, 则将信息插入XML文档中, 如果已有注册代理的信息, 则先将原有信息删除, 再将新信息插入X M L文档中。在查询中心存储的X M L文档内容如下:

其中标签的表示提供该数据源查询服务的查询代理的服务名, 标签表示查询代理的位置。

节点里存放的是表名于表结构信息。由于将所有的异构数据库看成一个大的数据库, 所以这里要求数据库的名称不能重名。

 

3.2 动态调用Web服务

由于多个查询代理提供连接到查询中心, 而且这些查询代理的URL不同, 所以本系统采用动态调用查询代理提供的服务[3,4]。

4 结语

信息共享是几乎所有分布式系统所遇到的共同问题, 分布式查询是分布式数据库中信息共享的主要形式。本文以XML文档作为分布式数据库之间的桥梁, 实现了基于XML的分布式数据查询方案, 该方案较好的解决了数据库集成过程中的透明访问与查询, 实现了网络环境下的信息共享。

摘要:本文分析了XML的技术特点, 提出了一种基于XML技术和Web Service技术访问分布异构数据库的模型, 并设计实现了一个分布式数据查询系统, 该系统能对分布式数据库进行透明访问。

关键词:XML,Web Service,分布式数据库

参考文献

[1] 张朝明.XML开发经典应用:数据标记、处理、共享与分析[M].电子工业出版社, 2008:1~4.

[2] 袁新坤.基于XML与Web Services数据交换平台的研究与实现[D].太原理工大学, 2008.

[3] http://hi.baidu.com/crystalkin/blog/item/0470f6dcb10b7ea4cd11663a.html.

[4] 王石.Visual C#2005-语言基础、数据库系统开发、Web开发[M].人民邮电出版社, 2007:173~193.

上一篇:徐建文:创业是很挑人的下一篇:直流电机的电磁干扰问题及其抑制