基于Web Service的数据库同步系统的研究
摘要:Web Service是建立可互操作的分布式应用程序的新平台。本文主要论述了利用Web Service技术解决Internet上数据库同步问题的基本原理和实现方案,阐述了利用Web Service技术实现远程数据库同步的基本思路、关键技术、实现步骤和方法。
关键词:Web Service 同步数据库
就当代企业信息化建设而言,企业和政府如何将己有的“信息孤岛”连通起来,实现信息的集成与共享是当前需要解决的一个关键问题。为了保证共享数据的一致,通常需要解决如何高效、安全的保持各数据库间的数据同步,实现企业中各系统之间的信息资源共享,即实现异构数据库的同步是现代企业应用系统中需要考虑的重要问题之一。然而,分布式数据库系统既要提供局部自治又要实现全局控制,给数据的同步带来了很大的挑战性。
1 Web Service技术
Web Service的主要目标是跨平台的可互操作性。为了达到这一目标,Web Service完全基于XML(可扩展标记语言)、XSD(XML Schema)等独立于平台、独立于软件供应商的标准,是创建可互操作的、分布式应用程序的新技术。Web Services体系以SOAP,XML和WSDL分别作为其数据传输协议、消息传送格式以及服务描述语言。
SOAP:SOAP(Simple Object Access Protocol)协议,是一组基于XML的无状态、单向、轻量级的消息传递协议。用于无中心、分布式远程过程的调用。它是Web Services的通信协议,实质上是一个基于文本的协议,它没有对平台和环境的依赖性。
WSDL:WSDL(Web Service Description Language)协议,Web服务描述语言,定义了一个基于XML的组件描述标准机制,用来描述Web 服务的相关信息,它把网络服务定义成一个能交换消息的通信端点集。我们可以认为WSDL文件是一个XML文档,Web Services的细节描述都包含在里面,如参数类型、函数功能、返回类型、终端和绑定协议等。
Web Services提供者编写接口函数与服务描述,并把它发布到服务请求者或服务注册中心。服务请求者通过查询本地或服务注册中心的服务描述,选择所需的服务进行绑定并调用Web Services函数,Web Services提供者则以XML的形式把结果返回给服务请求者,从而实现信息交互。
2 基于XML/Web Services技术的数据库同步技术
基于XML的数据库同步不同于传统的在分布式系统构架下的数据库同步,它的目标是在Internet范围内实现数据库间的数据同步,参与同步的对象具更强的独立性和多样性。根据这种新的目标和应用环
web技术的三个关键技术境,人们对实现数据库同步的技术产生了新的要求。
本文将利用XML作为信息传输和交换数据的公共表示,在表示数据的时候,将其结构信息和值信息分开来描述,分别定义为数据结构文档和数据值文档。通过分析结构信息文档,解决数据冲突,完成数据值文档的转换。使用Web Services技术将各数据库系统联接起来,数据库系统之间使用SOAP协议通信。
3 异构数据库同步系统的设计与实现
3.1 数据捕获技术
不同的数据捕获技术在生成复制数据的能力方面上有所不同。现在常用的数据捕获技术包括触发器法、快照法等。
(1)快照法。
快照(snapshot)是在某一时刻将数据库中存储对象的状态存储下来,构成当前数据库的一个映像文件,将此映像文件作为复制数据,用来更新其他的数据库。快照法只是在复制时进行一次全面扫描,实现简单,它不需依赖特别的机制,也不占用系统资源。由于快照法生成完全拷贝的复制数据,因此效率很低,应用的范围也比较小,一般在复制初始化和崩溃恢复时通常需要采用这种方式。
(2)触发器法。
触发器是一种特殊类型的存储过程,当对数据表使用诸如UPDATE、INSERT或DELETE这些操作时,触发器就会执行,通过分析操作的相关信息,可以在触发器中进行复杂的逻辑处理。触发器法就是通过捕获这些操作并将数据操作的信息保存到日志中或者直接进行复制操作。目前大型数据库系统基本上都提供了完善的触发器机制,因此大型数据库厂商提供的数据库复制方案往往都运用了这种捕获方法。
基于上述分析的异构数据库同步系统的实现主要包括三个关键方面:①需要在源数据库中的数据表上定义触发器。②“触发数据表”结构的定义。③设计出满足上述功能的有关服务。
3.2 “触发数据表”结构的定义
“触发数据表”用来记录本地数据库变化的操作(Insert,Update,Delete)和数据。由于每个源数据库系统中需要同步的数据表一般不止一个。如果为每个数据表都建立一个“触发数据表”不但维护复杂,而且缺乏通用性、可扩展性。
触发器的一个主要优点在于,当基表被修改时它能自动地执行内嵌的过程。在这里触发器一般使用后触发形式,这样如果修改数据不合法,则触发器不会触发。当数据表发生变化时触发器把改变的数据转化成XML格式的数据。
3.3 数据导入
目的端一直监听源端是否有同步信号(监听的源端IP以及端口能够通过读取本地的XML配置文件得到),当监听到同步信号,创建一个线程来启动“数据导入模块”,在“数据导入模块”导入数据完毕后向源端发送确认消息,源端检查此确认消息包含的导入成功与否的标识,如果正常导入此消息就是同步的序号。
4 结语
Web Services技术和数据库技术都在不断发展中,基于Web Services技术的数据共享和交换已经成为当今的热点,文章结合Web Services技术提出了一种数据库同步的解决方案。采用XML模式作为数据表示的公共模型,传输之前把数据序列化成XML,屏蔽了异构数据源格式的差异,并结合Web Services技术实现同步系统之间数据的传输。
本文的主要特与创新之处在于:相对于传统的数据同步方法,提出了基于XML和Web Service的数据同步的方案。与传统的方案相比,本文提出的方案具有更强的与平台无关性、可扩展性和更高的安全性。
参考文献
[1] 凌云.基于XML技术实现C/S异构数据库的集成[J].微
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论