欢迎您访问郑州兴邦电子股份有限公司官方网站!
阿里巴巴诚信通企业
全国咨询热线:40000-63966
兴邦电子,中国水控机第一品牌

联系兴邦电子

全国咨询热线:40000-63966

售后:0371-55132951/55132952

工厂:河南省 郑州市 高新区莲花街电子电器产业园

广州大学图书馆与广州大学城一卡通系统应用集成的实现

文章出处:http://www.singbon.com 作者: 人气: 发表时间:2011年09月16日

[文章内容简介]:以广州大学图书馆与广州大学城一卡通的系统应用集成为例,介绍在不修改图书馆现有系统的前提下,如何实现与一卡通系统进行集成。简单介绍要解决的问题,重点对所采取的解决方案、在实现过程中所用到的主要技术及关键问题如何实现等几方面进行介绍。

  摘要:以广州大学图书馆与广州大学城一卡通的系统应用集成为例,介绍在不修改图书馆现有系统的前提下,如何实现与一卡通系统进行集成。简单介绍要解决的问题,重点对所采取的解决方案、在实现过程中所用到的主要技术及关键问题如何实现等几方面进行介绍。

  随着信息技术的发展,计算机技术在图书馆中的应用从广度和深度上都有了很大的提高,从深度上来说,图书馆应用从以前单纯的采、编、流、检的集成管理系统,发展成为数字图书馆、门禁、机房管理、网上参考咨询、外采管理等多种系统;从广度来说,图书馆的内部各系统间有关联,并且和馆外系统(如财务报账、一卡通等)也有着密切的关系。但目前的各种系统都是各自开发、购买,没有统一的接口、标准,这就造成了各系统间不能做到互通、互联,实现资源共享。如何将这些系统有机地联系起来,充分发挥它们的功能,是目前图书馆现代化进一步发展所要解决的重要问题之一。本文实现了广州大学图书馆的ILAS Ⅱ图书馆集成管理系统、北京圣安机房管理系统、上海华铭门禁管理系统与广州大学城一卡通系统的应用集成。

  1 需要解决的问题

  1.1 身份识别号的读取

  广州大学图书馆有两万多读者,读者主要是本校教职员工和学生。目前教职员工以工作证号(一卡通卡上是“编号”)作为在图书馆的读者号,学生以学号(一卡通卡上是“编号”)作为在图书馆的读者号。在进行借还、查询借还情况及使用电子阅览室计算机等服务时,系统都要求读入读者号,而ILASⅡ及机房管理等现有系统都不具备直接读取一卡通卡上信息的功能。所以要实现广州大学图书馆系统与一卡通集成,要解决的首要问题就是从一卡通卡中读出该读者的读者号,即卡上的“编号”内容;同时还要进行该卡的有效性验证。

  1.2 数据同步更新

  广州大学图书馆管理系统的数据要根据一卡通系统及时进行数据同步,主要是ILASⅡ、机房管理及门禁等系统的读者数据与一卡通系统中的广州大学用户数据进行同步。当学校师生在一卡通系统中有新办卡、挂失、停用等数据变动时,要求在广州大学图书馆对应的系统中进行相应的数据变动。例如:新生办卡后,在ILASⅡ系统中要新增该新生的读者记录;卡信息发生变动(如修改编号、姓名等)后,要在ILASⅡ系统中修改相应的读者记录对应内容;卡挂失后,要在ILASⅡ系统中将相应的读者记录设置成挂失状态;以及挂失后的重新开通等。

  2 集成解决方案

  要解决广州大学图书馆现有系统与一卡通系统的集成,笔者首先想到的方法是修改广州大学图书馆的现有系统,使它们可以读取一卡通数据,并且可以与一卡通系统进行数据同步。但由于ILASⅡ、圣安机房管理等要进行集成的系统都是外购系统,都不提供源程序或扩展编程接口;如要进行以上修改必需请对应公司完成,这样从费用及时间上都会有一定问题。

  笔者对广州大学图书馆各系统及一卡通系统进行详细分析后,结合广州大学图书馆的具体情况,决定不修改现有系统,而采用自行开发附加程序的方案实现这些系统的集成。广州大学图书馆一卡通集成系统主要由读卡和数据同步两个程序组成,这两个程序都是通过一卡通系统提供的第三方接入子系统从一卡通系统读取所需数据。各系统之间的结构见图1,各系统之间的关系见图2。采用这一方案的优点是节省资金、通用性强。读卡和数据同步这两个程序都可以设置成当Windows启动后自动运行;运行后自动最小化成Windows任务栏右下角的托盘小图标,以后台方式运行,不影响其它系统操作;双击图标可以显示参数设置、操作界面,进行手工操作。这两个程序都是用Delphi开发完成,用MSSQLServer作为数据库服务器。

 一卡通集成系统结构图

  图1 一卡通集成系统结构图

图2 一卡通集成系统关系图

图2 一卡通集成系统关系图

  3 一卡通系统第三方接入子系统API的使用

  开始使用时,需要调用TA_Init()函数初始化动态库,如果不需要对卡内容进行读写操作,而只是读卡片的序列号,则不需要调用TA_Init()函数。

  程序调用需要读写卡操作的函数时,必须首先调用TA_CRInit()函数对读卡器进行初始化,当程序不再使用读卡器时,需要调用TA_CRClose()关闭读卡器。

  调用TA_CRBeep()可使读卡器发出蜂鸣,作为读卡出错等信息提示。
  调用TA_ReadCard()可以直接从卡中读出用户信息并检验白名单,判断卡片的有效性。
  调用TA_InqAcc()根据账号、卡号、学工号或证件号4个查询条件中的一个,从服务器中精确查询用户信息。
  调用TA_HazyInqAcc(),可以根据查询条件(可以是姓名、部门代码、性别、学号、身份代码)模糊查询账户信息,如查询条件为空,表示查询全部的账户信息;查询结果返回的文件保存在RecvTemp目录下。

  用户信息,通过TA_ReadCard()、TA_InqAcc()、TA_HazyInqAcc()可以得到,用户信息的主要内容结构如下:

 

  其中Flag几个主要字节代表的意义如下:

  Flag[0]:身份信息变更标志:0-没变更,1-已变更;
  Flag[1]:卡状态:0-正常,1-预开户,2-预销户,3-申请账号;
  Flag[2]:挂失:0-正常卡,1-挂失;
  Flag[3]:冻结标志:0-正常,1-冻结。

  通过TA_DownControlFile()可以下载控制文件,控制文件以Control.bin为文件名保存在ControlFile目录中。控制文件包括部门组织表、身份代码表、校区代码表等系统编码信息。

  通过TA_ExtractConFile()可以导出控制文件中的内容,将编码信息导出成各列用“,”号分隔的文本文件。

  4 读卡程序的实现

  4.1 读卡程序的功能及操作流程

  可以用读卡程序解决身份识别号(即读者号)的读取。该程序启动后自动最小化成Windows系统的托盘图标,以后台方式运行;双击该图标可显示它的设置界面(见图3)。对于要从卡上读取读者号的系统就不需作任何修改,只要在该计算机上运行该读卡程序,接上一卡通USB读卡器便可。

读卡程序界面

  图3 读卡程序界面

  该程序的主要功能及操作流程:

  (1)初始化:该程序运行后首先读取系统设置参数,然后初始化一卡通第三方接入动态库、读卡器。初始化成功后就进入监测状态,随时检测一卡通读卡器,如果有卡则进行读卡处理。
  (2)读卡处理:当读者将一卡通卡放在读卡器感应区时,自动读出该卡上的信息;读卡成功后,根据设置进行有效性检测;如果该卡有效,就仿真键盘输入该读者号,实现将该读者号输入到对应系统的输入框。卡的有效性主要是通过检测该卡的状态是否正常、是否已挂失、是否被冻结,该卡是否为已丢失卡等。因有效性检测一定要读取一卡通服务器数据,如果一卡通服务器或网络出现故障,就不能有效读卡;所以,通过设置可临时停用该功能,保证在一卡通系统出现故障时,不影响本馆业务。该程序还可根据设置,实现在输入编号之前、之后加上指定的字符,以此实现一些特殊的功能,例如:可以实现输入读者号前删除原来的读者号、输入读者号后自动加回车等功能。

  4.2 使用挂钩(Hook)实现键盘仿真函数

  键盘仿真函数的功能是模仿用户用键盘在当前活动窗口中输入某一个字符串。在VisualBasis中有SendKeys()函数实现该功能,在Delphi中则没有直接实现该功能的相应函数,但可以使用挂钩实现(因无法知道发送消息窗口的句柄,所以不能直接发送wm_KeyDowm、wm_KeyUp消息实现)。程序员使用挂钩能控制Windows系统事件的发生和处理,它能预演和修改系统事件和消息,并且能在系统范围内阻止系统事件和消息的发生。键盘仿真函数就是使用WH_JOURNALPLAYBACK类型的挂钩,在系统的消息队列中插入一系列的按键事件[1]。

  SendKeys()函数的处理过程如下:将传入的字符串分解成一系列的系统按键消息,组成消息列表;通过SetWindowsHookEx()设置挂钩;使用挂钩CallNextHookEx()将生成的消息列表依次发送到Windows的系统消息队列中,实现键盘仿真输入字符串;结束时用UnHookWindowsHookEx()释放挂钩。通过键盘输入一个字符,其实就向系统发送多个系统消息。例如:键盘输入A就对应了“A”键的wm_KeyDown、wm_KeyUp两个系统消息;键盘输入 +A就对应了键的wm_SysKeyDown,“A”键的wm_KeyDown、wm_KeyUp,键的wm_SysKeyUp这4个系统消息。生成系统按键消息时要用到对应字符的虚拟码和键盘扫描码,虚拟码可以通过KeyDefs单元映射得到,通过Win32API的MapVirtralKey()函数,可将字符的虚拟码转换成键盘扫描码。

  5 数据同步程序的实现

  5.1 数据同步程序的功能及操作流程

  用数据同步程序实现广州大学图书馆的系统,并根据一卡通系统数据进行同步更新。该程序启动后自动最小化成Windows系统的托盘图标,以后台方式运行;双击该图标可显示它的设置及操作界面,如图4所示。该程序可手工方式进行数据同步,也可以按照设定的时间自动进行数据同步。该程序的主要功能及操作流程:

  (1)初始化:该程序运行后首先读取系统设置参数,然后初始化一卡通第三方接入动态库等;初始化参数包括一卡通第三方接入系统地址、数据库连接信息、是否自动同步、自动同步的时间等信息。初始化成功后该程序就进入监测状态,当设置了自动同步并到达了指定的时间,就会自动进行数据下载、数据同步等操作。
  (2)一卡通用户数据下载:可以手工下载基础数据,自动或手工下载用户数据。

  图4 数据同步程序界面

  (3)数据同步:因为ILASⅡ系统使用的是专用数据库,不向外提供编程接口,所以ILASⅡ系统的数据同步要手工定期参与;而机房和门禁管理系统则是使用MSSQLServer数据库,可直接对对应的数据库中的表内容进行操作,所以这两个系统的数据同步可根据需要,按设置的时间、次数每天自动进行。

第1页第2页

本文关键词:大学城一卡通,一卡通系统,应用集成,图书馆
回到顶部