基于XML Schema的第三方数据同步接口

来源 :现代情报 | 被引量 : 0次 | 上传用户:caolippp123456
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  〔摘 要〕介绍基于XML的信息交换机制和映射算法,并以华东理工大学图书馆与校园“一卡通”系统的数据同步为例,介绍在不修改图书馆现有系统的前提下,实现图书馆集成系统与“一卡通”系统的集成。结合XML技术,给出基于Schema XML的第三方数据同步接口的校园“一卡通”与图书馆系统数据同步的实现方案,并重点介绍了集成方案中基于Schema XML的数据同步接口的实现。
  〔关键词〕第三方同步;一卡通;XML Schema
  〔中图分类号〕TP391 〔文献标识码〕C 〔文章编号〕1008-0821(2009)07-0162-04
  
  A Data Sync Scheme Based on XMLZhou Shuangju Ji Jiuming
  (Institute of Scientific and Technical Information,East China University of Science and Technology,
  Shanghai 200237),China)
  〔Abstract〕Firstly,the paper introduced information-exchange mechanism based on XML and rules about mapping arithmetic based on Schema.Then giving a presentation of the integration scheme of the smart card system and book management system in East China university of science and technology.The design of a universal data sync interface system base parameter is proposed and the major data sync scheme based third party agent technology used in implementation was given.
  〔Key words〕third party agent;smart card;XML Schema
  
  国内高校的图书管理系统,基本上都是在上世纪九十年代初发展起来的,大都比校园“一卡通”发展得早。因此现有的图书管理系统与校园“一卡通”接口的问题,就凸显在“一卡通”的建设者与图书馆的技术人员面前[1]。随着XML技术的发展及其相关技术体系的日趋完善,XML的可扩展性使得异构的信息系统之间可以整合不同类型的数据源,并且可以利用XML文档来进行数据的导入、导出和交换。本文结合XML技术,给出了基于XML Schema的第三方数据同步接口的校园“一卡通”与图书馆系统数据同步的实现方案。
  
  1 基于XML的信息交换机制和映射算法
  
  基于XML Schema的信息交换机制是一种采用关系数据库和XML文档相结合的数据管理机制,基于这种机制的信息系统体系结构如图1所示。该机制分析用于交换的信息的数据结构,设计出相应的XML模式,并将模式文档传递给X-RDB功能组件。X-RDB功能组件接收传递过来的XML模式文档和XML文档,将XML模式影射为数据库关系模式,采用查询语言进行关系数据库的更新、查询、删除和插入操作[2]。
  与DTD模式相比,Schema模式具有强大的复杂数据类型定义和数据结构描述功能。直接映射算法是一种比较新的映射算法,其主要设计思想是根据一系列规定的映射法则,将模式中各元素的嵌套关系和层次结构映射成为关系数据库支持的标准SQL语句,从而在数据库中建立相应的表结构和约束关系[2]。
  
  2 需求分析与实现思路
  
  华东理工大学校园卡系统使用的是新开普电子技术有限公司的数字化校园解决方案,图书馆采用的是大连网信软件有限公司的妙思文献管理系统,而图书馆的借书证采用的是校园卡。当学校师生在一卡通中心有新办卡、挂失、
  
  3.2 系统的实现
  3.2.1 基于XML Schema的第三方数据同步接口的实现
  
  由于接口参数是由被同步系统提供的,这种基于接口参数的数据同步程序,一方面能够保持稳定,另一方面也同样适用于各种异构图书馆与校园“一卡通”的数据同步情况,因为图书馆集成系统和校园一卡通所要求的读者信息基本相同,因而系统首次使用时开发人员只需研究如何配置接口参数就行了。配置好后的参数存放在文本文件或XML文件中。例如数据库连接参数配置可以通过图3的界面来设定,配置完成后,形成以下形式的XML配置文件:
  <?xml version=′1.0′encoding=′GB2312′?>
  
  
  AdoStrConYkt
  192.168.96.1
  Oracle
  sa
  
  ykt
  

  
  AdoStrConTsg
  192.168.96.2
  Sql Server
  sa
  
  tsg
  

  

  进行数据同步时,系统调用数据库连接、同步数据库信息接口、集成系统信息接口等参数配置文件以及最大记录号文件来确定读取和修改的信息。对妙思文献管理系统等对外提供编程接口的图书馆集成系统,系统根据配置文件读取到的接口参数去获取相关信息,并生成系统适用的标准SQL语句提交给服务器执行,从而实现数据的更新同步。对于ILASII2.0等不向外提供编程接口的图书馆集成系统,系统根据配置文件读取到的接口参数获取相关信息并生成指定格式的文本,然后通过ILASII2.0系统本身提供的“读者定长数据接收”功能实现数据的同步[4]。相关代码如下:
  FunConfig()
  Begin
  ∥读取相关参数
   StrConYkt=DataConfig(AdoStrConYkt);∥从配置文件中读取一卡通连接的参数并返回相应的连接字符串
   StrConTsg=DataConfig(AdoStrConTsg);∥从配置文件中读取图书馆连接的参数并返回相应的连接字符串
   StrTableLsb=GetTable(StrTableLsb);∥从配置文件中读取同步数据库的流水表名
   StrTableYkt=GetTable(TableYkt);∥从配置文件中读取一卡通用户表的表名
   StrTableTsg=GetTable(TableTsg);∥从配置文件中读取读者信息表的表名
   StrFieldYkt=ReadInfo(StrFieldYkt);∥从配置文件中读取一卡通信息接口名称
   StrFieldTsg=ReadInfo(StrFieldTsg);∥从配置文件中读取集成系统信息接口名称
   if not adoconnection1.Connected then ∥连接一卡通数据库
   begin
   ?adoconnection1.ConnectionString:=StrConYkt;
   ?adoconnection1.Connected:=true;
   end;
   if not adoconnection2.Connected then ∥连接图书馆数据库
   begin
   ?adoconnection2.ConnectionString:=StrConTsg;
   ?adoconnection2.Connected:=true;
   end;
  End
  ∥新增读者
  Begin
   FunConfig()
   method:=′new′;
   filename:=′newid.txt′;∥存放上次新增的最大记录号
   tablename:=StrTableYkt;
   maxchangid:=readoldid(filename);∥获取上次最后新增的记录号
   maxnewid:=readnewid(tablename,StrMaxYkt);∥一卡通当前用户表的最大记录号
   if maxchangid   begin
  DataSync(maxchangid,maxnewid,method,StrTableLsb,StrTableYkt,StrTableTsg,StrFieldYkt,StrFieldTsg);
   end;
  End
  ∥更新相应信息
  Begin
   FunConfig()
   method:=′old′;
   filename:=′logservermax.txt′;∥存放上次最后修改的记录号
   tablename:=StrTableLsb;
   maxchangid:=readoldid(filename);∥获取上次最后修改的记录号
   maxnewid:=readnewid(StrTableLsb,StrMaxLsb);∥更新流水表里的最大更新记录号
   if maxchangid   begin
  DataSync(maxchangid,maxnewid,method,StrTableLsb,StrTableYkt,StrTableTsg,StrFieldYkt,StrFieldTsg);
   end;
  End
  ∥构造SQL语句
  SqlMadeUser(maxchangid,maxnewid,StrTableYkt,StrFieldYkt)
  Begin
  SqlSelect=strRead(StrFieldYkt,StrUser)∥获取一卡通中用户的信息字段名称
  SqlFrom=StrTableYkt∥获取一卡通用户信息表的名称
  SqlWhere=strRead(StrFieldYkt,StrMaxYkt)∥获取一卡通用户信息表记录号字段名称
  strSql=SqlSelect SqlFrom SqlWhere between′ inttostr(maxchangid 1) ′and′ inttostr(maxnewid) ′′′;
  ∥这样在实际使用中就构造出了:
  ∥strSql=′select cardno,name,outid,customerid from BASECUSTOMERS where customerid between′ inttostr(maxchangid 1) ′and′ inttostr(maxnewid) ′′′
  End
  
  4 基于XML Schema的第三方数据同步接口应用
  
  4.1 开发环境
  华东理工大学一卡通中心和图书馆集成系统数据同步系统中,一卡通卡中心与接口服务器之间是新开普电子技术有限公司开发的新开普第三方数据同步服务,该服务程序采用Visual Studio 2005为开发工具。接口服务器与图书馆集成系统之间是图书馆自行开发的第三方同步服务,该服务程序采用Borland Delphi 7为开发工具。服务程序与数据库连接采用ADO(ActiveX DATA Object),它是微软公司提出访问任何数据源及数据库的通用数据访问对象,它用SQL语言代码对数据库及数据源进行创建、插入、删除和修收。
  
  4.2 应用实例和效果
  基于XML Schema的第三方通用数据同步系统功能如图4所示。通过该接口可以设定程序运行时间间隔,程序提供包括用户挂失解挂、挂失补证等用户信息的同步更新,同时还可以设定读者类别参数来自动新增读者。在华东理工大学图书馆实际使用中,该接口被设定为开机启动并每5分钟执行一次数据同步这样每隔5分钟系统对交换日志中的未处理记录逐条循环分别处理挂失、解挂、补证时,首先读交换日志获取上次最后修改的记录号,然后处理挂失补证解挂情况并根据情况类别分别记入相应的日志文件同时在相应的文本框中显示出来。对于新增的校园卡用户,接口程序首先检测该用户的部门代码是否在事先所设定的单位代码列表里,如果在列表里则检测该用户的卡号在读者信息表里是否已存在。如果卡号不存在就往读者信息表里添加一条新数据,这样该校园卡用户就作为新读者自动同步到图书馆系统里。在本校的实际应用中相关代码如下:
  begin
   readinlb();∥读取读者单位类别列表文件
   for k:=0 to line-1 do
   begin
  s:=lb[k].account;
  取出第k个单位未处理的新用户信息;
  while not adoquery1.Eof do
  begin
   依次读取每个用户相关字段信息;
   if读者信息表里不存在该用户then
   插入该用户信息入读者信息表中;
   在备注框中显示新增读者的信息;
   在日志文件里写新增读者的信息;
  end;
   Next;
   end;
  end;
  
  5 结 语
  
  笔者通过分析各种数据同步的模式,开发出适合本校的基于第三方同步的校园“一卡通”与图书馆系统数据的同步程序,实现了不修改图书馆集成系统的情况下与校园“一卡通”数据的同步更新。并提出了设计基于接口参数的通用数据同步程序的设想,这种模式一方面能够保持稳定,另一方面也同样适用于各种异构图书馆与校园“一卡通”的数据同步情况,无论是接口的实现还是硬件设备的投入都是低成本的,具有很强的实用性和通用性。
  
  参考文献
  [1]邓尧伟.图书管理系统与校园“一卡通”接口模式研究[J].图书馆论坛,2005,(2):79-81.
  [2]刘伟.基于Schema的XML模式与关系模式映射算法的研究[J].计算机应用与软件,2006,(3):113-115.
  [3]吉久明,李楠.建立基于知识集成的资源和服务整合与协同机制[J].现代图书情报技术,2006,(9):58-62.
  [4]王泽贤.广州大学图书馆与广州大学城一卡通系统应用集成的实现[J].现代图书情报技术,2007,(8):84-88.
其他文献
上课认真听讲就能提高成绩,坚持锻炼就会少生病,多主动和人聊天就能结交到更多的朋友……  听到这些早已被长辈们说烂了的大道理,你的第一想法是什么?  ——哦,我知道了。  在如今教育被高度重视和网络飞速发展的时代里,我们好像从来不缺乏“知道”的能力,道理千千万万,可最终我们对于这些听来的道理,仿佛也只停留在“知道”的层面。  或许你也發现了,相比于那些听来的道理,我们自己亲身尝试和经历过的经验才会让
洋姐,我家狗狗前天丢了,这两天,我的心情一直很不好。前天是我妈把它放出去的,她总说狗狗能自己找回来,结果两天了还没回来。我在学校一直装作很开心的样子,同学们都说我没心没肺,狗丢了也不伤心。我其实一直都很伤心,很想找它回来,可是我知道就算我把它找回来了也不能继续养它。因为我妈一直觉得它很烦,养它就是浪费时间。  我用我所有的零花钱打印了300张寻狗启事,我真的很想找到它,哪怕它已经在别人家被养着,我
我刚开始学滑雪时,觉得很容易,不就是从山顶滑到山下吗?于是,我穿上滑雪板,“哧溜”一下就滑了下去。结果,我果然从山顶到了山下——滚到了山下,同时摔了很多跟头。这时我才发现,自己根本就不知道该怎么停止、怎么保持平衡。  我反复练习怎么在雪地上、斜坡上停下来。练了一个星期,终于学会了在任何坡上停止、滑行、再停止。  这个时候,我终于敢从山顶上高速往山坡下冲了,因为我知道,现在只要我想停,一转身就能停下
“校企双制,工学一体”已然成为技工教育的鲜明标志。国务院办公厅《关于深化产教融合若干意见》中明确提出“大力发展校企双制、工学一体的技工教育”,为技工教育实现特色发展指明了方向。什么是“校企双制”,根据人社部组织编写的《校企合作指南》中的表述,联盟各专家结合个人的思考心得,有如下见解。    认为“校企双制是指技工院校和企业以共同培育技能人才为目标,双方通过有效的合作机制,将教育、就业制度与企业生产
[1]  “你知道吗?那棵桃树被砍了,本来还想再为你做一个桃心链的,看来没机会了。”我拿着话筒无限婉惜地说。  斌沉默了良久,缓缓地说:“砍了就砍了。”平静的声音中没有一点感情。  我握着电话,无言,只觉得眼睛胀得生疼。  斌,一别两年,你是不是已忘了过去?你是不是已与城市中的灯红酒绿融为一体了呢?  放下电话,来到那个山坡上,远远地便看见那棵树剩下的树桩,在夕阳下映着刚刚长出的绿草,给人带来一种
我总是忍不住胡思乱想  ·我知道别人不是针对我,但我好像有个雷达一样,看到别人脸色不好,就会想是不是我说错话了,哪里得罪对方了;  ·最怕和人聊天了,我不是很善于制造话题,一旦两个人冷场,我就无比尴尬;  ·我在人群里总是很疲惫,独处却轻松得多,家人不理解我这么“宅”,我也在想自己是不是出了什么问题。什么问题都没有,你只是“高敏感”  心理学家将人群分为两类:高敏感型、高复原型。其实,每个人都有一
一些兴高采烈的男孩子走路蹦蹦跳跳的,像麻雀一样跳来跳去,一会儿用这只脚跳,一会儿用那只脚跳。  艾米利凯就是走着这种小淘气步子回家去的。他这样高兴,是因为暑假到了。  艾米利凯把书包往沙发床上一扔,跳上沙发床,就把头埋进了绣花枕头。辛苦了一学期,他到底有权利休息了。艾米利凯就这样开始了他的暑假。他在九点钟醒来,伸伸懒腰,接着吃早饭,然后唱唱歌,舒舒坦坦地又睡在躺椅上,一动不动。中午,他吃过了午饭,
林羽安:  一只医学夜猫子,喜欢二次元,也是个追星少女。口味偏小众,最喜欢90 年代的老情歌,爱老电影。心思有些小敏感,喜欢细水长流的相处!发表的作品列表:  《喜欢的人永远是无解的题》《栀子花开满锦瑟》《落雨满星辰》《16 岁的告别》《你携世上所有美好而来》《我们终将会并肩着渐行渐远》《与你豪饮青春酒》《少年总行走在路上》《再见,白雪般的少年》  大约每一个乖小孩儿,都有过调皮捣蛋儿时光。他们一
孩子,我希望你自始至终都是一个理想主义者。你可以是农民,可以是工程师,可以是演员,可以是流浪汉,但你必须是个理想主义者。  童年,我们讲英雄的故事给你听,并不是要你一定成为英雄,而是希望你具有纯正的品格;少年,我们让你接触诗歌、绘画、音乐,是为了让你的心灵填满高尚的情趣。这些高尚的情趣会支撑你的一生,使你在最严酷的冬天也不会忘记玫瑰的芳香。  你要相信理想会使人出众。  孩子,不要为自己的外形担忧
SA=《留学》/Studying Abroad  G=高意静  SA:您六次夺得SPECIAL EVENTS的世界公关活动大奖,是唯一在国际舞台上赢得宴会设计行业顶级荣誉的华人,成功的经验是什么?  G:东方人的设计可以在国外获奖,很重要的一点是我们需要用西方人能感同身受的故事让他们理解我们的文化。从造型出发,做打动人的设计,如2012年我在美国获得SPECIAL EVENTS设计奖的作品是天地倒