webService数据库同步设计

所需积分/C币:50 2017-11-10 16:58:34 311KB PDF
95
收藏 收藏
举报

基于web和service层面的异构数据库之间的同步设计,实现数据同步
第12期 覃章荣等;基于 Web service的异构数据库同步系统设计与实现 拓扑结构(如图2所示)。 UseriNfo_ Trigger把新增记录保存到触发事件表中的 代码 CREATE TRIGGER[ Insert-UsersInfo- Trigger]o[ dbo][T Userslnfo FOR INSeRT wb服务器中心数据库 ,火墙 DECLARE@TBNRⅴ ARCHAR/*定义变量以临时存放TBNR 格式的数据“ 校同骨干 SET 步客户端同步客户端同步客户端 同步客户端 TBNR=“‘+· Userid=‘+ INSERTED. Userld+'| UserNm= +InSerteD. UserNm+'Awunlt=.+ INSERTED Acount Pass word=‘+ INSER'TD. Password+’ i CreatDate=‘+IN 教务貸理系统人事臂理系统财务臂理系统科研管理系统 SERTED CreatDate+'Flg='+ INSERTED. Fig+ 米构成触发事件表中TBNR字段要求的数据格式* MYSQL PostGreSQL SQL Server MYSQL INSERT INTO T- Trigger- Events(TBNR, YBMC, ZJZD, CZLX SCSI, TBS, TBBZ) 图2系统网络活扑结构 VALUES(@TBNR, T UseriNfo’, Userid=’+ INSERTI 3.I触发器技术的应用 Userid,“0’, SystermTime,’,“0’) 为了能准确获取各应用系统的数据库中变动的数*把变动数据作为新记录插人到触发事件表中+ 据(需要同步的数据),可利用数据库系统提供的触发 END 器机制,为需要同步的数据表建立 INSERT, UPDATE3.2数据同步客户端程序的实现 和 DELETE三类触发器。每当用户增加、修改或删除 客户端程序定时周期性地扫描各应用系统数据库 数据表中的数据时,将自动触发对应的触发器,在触发的触发事件表如发现有未同步的数据就远程调用 器中编写代码把变动的数据保存到一个专门记录触发 Web service程序的服务函数进行同步处理。实现定 事件的临时表T- Trigger- Events中,以供数据同步客时功能需要设置一个定时器,当设定时间到时,自动触 户端程序进行同步处理。该表的字段定义和格式说明 发时间到事件处理过程,可在该事件处理过程中编写 如表1所示。 远程调用 Web service程序的代码。此外,在客户端程 表1触发事件控制表(T- Trigger- Events) 序中还要实现远程连接 Web service程序以及通过 HTTP和SAP封包调用Webservice程序的服务的 字段名称字段类型 字段说明 功能。 XH序号 主键,用于唯一标识表中的记录流水号,每增 一条记录,自动加1 Borland公司的Dphi7程序集成开发工具为开 YBMC 发 Web service程序提供了一套完整的组件和模板,通 vHI 源表名称) 用广操作的数据表的名称 ZJZD 用于更新或删除目标表中与该主键值相同的 过它们可以快速地开发出基于 Web service的应用程 Yanchao (主键字段) 记录。字段值格式:<字段名>=<字段值> 序。选用了该工具来实现客户端程序的开发。在开发 需要同步的数据。字段值格式:<字段名1> <字段值1><字段名2>=<字段值2 过程中,其中需要用到两个很重要的组件:一个是定时 TBNR >|…|<字段名n>三<字段值n> 器组件 TTimer,用来实现定时功能,只要设定时间一 (同步内容) archar 例如:Uerd=0108| UserNn-张田| Acount admin| Pass Word=a2bz3。如果是删除操作, 到,便会自动触发 Ontime时间到事件处理过程;另 不需要提供该内容,使用ZZD宇段值即可 个是 ThttPrio组件,用来实现与 Web service程序通 CLX 分别使用0,1,2表示 INSERT、 UPDATE 操作类型) DELE操作 信以及调用其提供的服务。 (生成时间) datetime问步数据的生成时间 下面是在定时器时间到事件处理过程中读取触发 事件表以及调用 Wcb service程序服务的部分代码 (同步时间) 同步数据时的时间 Procedure Tsyn- Form. Syn- Client- On Timer Scndcr: TOb TBBZ 如果该记录已经被同步则值为1,等待处理值 (同步标志) 为0 ject;/(时间到事件处理过程 var Syn- Interface: I Syn- Server. ISyn-Data. Service;//EX 文中以 SQL Server2000的触发器为例,简单说明 接口变量bgn 如何在触发器中获取和保存变动的数据。下面是用户 Syn interface:- ThttPrio1 as i syn. App Server. ISn-Dama 在 T- UseriNfo表中增加记录时,通过触发器 Insert Service 224 计算机技术与发展 第19卷 …/连接数据库,把未同步的数据取到数据集 Adoquery1中 While Not Adoquery1 Eof Do Source TableToDst Table Reflection (Dest. TaLNm, Dest- Fields Dest- values, Dest- Tbrr); YBMG= Adaqueryl. fieldbyname(YBMC). value;/读取周用源表到目标表的映射转换函数实现映射转换工作 YBMC字段值 IfCZⅩ=‘0’then//如果操作类型是新增操作 ZZD= Adoquery1. fieldbyname(ZZ). value;/读取 ZAD Adoquery1.sl.Ad(‘ INSERT INTO'+ Dest. Tabnm+“(“+ 字段值 Dest fields+’) VALUES(+ Dest. values+)”) TBNR:= Adoquery. fieldbymam(TBNR).vaue;/读取 TB- If CZLX=1’then/如果操作类型是修改操作(其中ZZ为 NR字段值 主键字段) CZLx:= Adoqueryl1. fieldbyname(Czx).vhue;读取 CALX Adoquery.l.Ad( UPDATE’+ Dest TabNm+‘SEI’+ 字段值 Dest_ Tbnr WHERE+ ZIZD) Sm- Interface. Procced-S.Data(YBMC,ZJZD,TENR,CZX);Cx=2then/如果操作类型是删除操作 远程调用 Web service程序的数据同步处理函数进行同步处 Adoqueryl. Sql Add DELETE FROM+ Dest. TabNm 理 WHERE'+刀m) Adoquery1.next;/指向下一条记录 Adoquery1. ExeSgl(); end: 3.3服务器端程序的实现 实现服务器端 Web service程序时,使用了Ddl-4结束语 phi7的 Soap Server Application向导创建一个基于Web 文中利用 Web service技术的特点,在异构数据库 ervice的应用程序框架。该框架已实现了向客户端提的数据同步中提出了一种基于 Web service的系统方 供接口的机制接收解析远程SOAP请求消息,调用案,有效地解决了文中提到的在数据同步中存在的问 相应处理函数和返回SOAP响应消息等底层功能。只题,并且已经成功应用到一个实际项目当中。但由于 需在该框架内定义供客户端调用的自定义接口,编写 Web service程序不能保存用户的操作状态,每次同步 实现数据同步业务逻辑的函数即可。 都需要重新建立数据库连接,频繁地创建连接是比较 下面是定义接口和函数的部分程序代码 耗时的,对系统的运行效率有一定的影响。如何解决 Unit Syn_Data_ Servicelntf:/接口定义单元 数据库重复连接的问题,提高系统的运行效率,是下 type 步重点要解决的问题。 ISyn- Data_ Service = interface( IInvokable)i:BBD3A07D F3AE-46C6-AABB-C6BC3F98560E,] Function Procced- Syn- Data( YBMC, ZIZD, TB\R, CZLX 参考文献: wide string): String;/同步函数的定义 [1]夏克俭,张瑛,巢群,等.XM在数字化校园数据同步 平台中的应用研究[].计算机工程与设计,2008,29(2) 483-486. initialization InvRegistry. Registerlnterface( TypeInfo( SYn_ Data-Service)) [2]姚瑶,帅立国,姜昌金,基于 Spring和 Hibernate的数据库 在初始化时注册该接口 同步设计和实现[J].计算机技术与发展,2007,17(12):190 接口定义完成后,在接口的实现单元中编写具体〔3〕何慧陈博基于XML和JMS的异构数据交换集成 的研究[J].计算机技术与发展,2006,16(2):70-72 的函数功能实现代码。其中函数 Procced- Syn-Data[4】]柴晓路,梁字奇 Web services技术、构架和应用[M北 实现的功能是根据源表和目标表的映射关系,把源表 京:电子工业出版社,2003 名称变成目标表名称,把源表中的字段名转换成目标5顾宁,刘家茂,柴晓路. Web services原理与研发实践 表对应的字段名,数据类型的转换,连接中心共享数据 M].北京:机械工业出版社.2003 库把客户端传递过来的同步数据更新到中心共享数6] Sanjay p,nicN. ebXML and web services]. EEE Internet 据库中等。 Computing,2003,7(3):74-82 下面是部分实现代码 [7] Seely S.SOAP:XML跨平台 Web service开发技术[M]北 Function Procced- Syn. Data(ybmc, zjzd, tbn, Czlx: WideString) 京:机械工业出版社,2002 Stril

...展开详情
试读 4P webService数据库同步设计
立即下载 身份认证后 购VIP低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
关注 私信
上传资源赚钱or赚积分
最新推荐
webService数据库同步设计 50积分/C币 立即下载
1/4
webService数据库同步设计第1页

试读结束, 可继续读1页

50积分/C币 立即下载