图书馆管理系统与一卡通接口设计
文章出处:http://www.nexussmartsolutions.com 作者:阴小建,王文琳 人气: 发表时间:2011年11月17日
校园一卡通系统借助Ic卡技术和校周网络环境将原本独立运行的各个教学、生活部门的计算机管理系统衔接起来,可以极大提高教学、生活管理效率,有助于增强各部门资源共享,促进师生人事信息统一,提高财务收支透明度,一卡通系统是高校数字化建设的重要环节,在推动学院信息化建设方面起到十分积极的作用。山东教育学院于2008年9月启动校同一卡通系统建设工程。校园一卡通除了用于师生校同消费外,还在人事信息、财务结算、学生上机、医疗卫生、图书馆流通检索等各方面发挥重要作用。一卡通系统投人使用后,方便了师生,真正实现了“手持一卡,走遍校同”的预期建设目标。
图书馆作为一卡通建设的一个重要组成部分,不但完善了一卡通系统的完整性,也对图书馆管理水平、服务质量以及未来开展的新形式读者服务带来积极影响。
一、图书馆管理系统与校园一卡通对接目标
我馆于2006年底开始使用广州网创公司开发的“In—terlib”图书馆集成管理系统。该套系统承担着我馆采、编、浏览、检及读者信息管理等业务环节,通过将集成管理系统与校园一卡通对接,可以提高我馆管理和服务水平。
1、减少读者持有各种卡、证的数量,提高办卡效率,减少办卡成本。我馆的读者卡一直以来都是自制的,不但要购买各项设备、材料,在新生人学、新教师入校时还要指派々人突击办理读者证。种种凶素造成了澳者办证时间长、成本高,流通部门工作压力大,很难保证读者满意。校园一卡通南学校一忙通中心统一制作,代替读者证和其他各类卡、证后,从根本上减少了师生办证费用和办证时间。
2、规范读者数据库信息。由于各时期办证要求不同,办证人员操作不规范等因素导致现有的读者数据库信息不统一、不完整。实现对接后,师生第一次持一卡通来馆借阅时,Interlib将自动调取一卡通中心数据库相关信息,按照对应关系完整、准确的生成注册信息,随后通过人工分组授予不同的借阅权限。从而避免手工录入信息时易产生的误差,保证读者库数据准确、规范。
3、提供更加智能化的管理和深层次的个性化服务。新图书馆落成后,依托一卡通建设的统一门禁系统,不但可以阻止非本院师生进入图书馆占用教学资源,还能开发出读者流量统计分析、员T考勤等附加功能,为更加严格的管理和更优质的服务创造了条件。
Interlib系统具有丰富的网上自助服务,读者激活网上图书馆后可以办理预约、续借、荐购、收取催还通知等业务,还可以通过E—mail向咨询部门寻求帮助。由于原先的读者数据库中的信息不完整、不规范,导致网上自助服务不易实现。借助与校园一膏通对接过程中对读者数据进行全面梳理,将对未来开展更加丰富的的读者服务打下了基础。
4、规范收支手续,加强收支监管。一直以来,我馆流通罚款、工本费均以收取现金为主,通过手工开具的收据存根和管理系统内的}己录作为结算依据。这样操作既存在大额款项假币难辨,小额款项零钱难找的问题,也缺少严格的财务监督机制。开通一卡通后,读者产生的所有费用均通过一卡通中心代扣、代缴,收入款项集中记录在图书馆专用商户账号上,由财务处监督管理。扣款明细分别保存在图书馆管理系统数据库和一卡通中心交易数据库中,随时可以对照检查,确保交易准确。
二、Interlib系统与一卡通对接实现过程
当读者持一卡通来到图书馆办理开通、借还、缴纳罚款或其他费用时,需要使用读卡器读取卡片内保存的卡号,通过一卡通接口程序连接一卡通中心数据库,调用对应信息中的学工号、现有金额等相关信息,反馈至Interlib系统,再进行相应的处理,并将处理结果通过一卡通接口程序反馈给一卡通中心数据库,从而做到交易信息“双轨制”记载。
具体流程见图1:一卡通工作流通图。
图I:一卡通T作流程圈
根据操作流程,接口程序需要将Interlib与一卡通中心数据库的数据关联起来,需要处理初始化读卡器动态库与读卡器设备,进行一卡通交易、一卡通查询,以及下载一卡通文件等工作。下面根据设计步骤,简要说明开发过程。
1、Interlib读者信息数据库与一卡通中心数据库的关联由于我馆部分读者信息是由老管理系统转移过来的,因此存在数据格式不统一、读者信息字段设置的太少,部分关键字段数据有缺失等问题。经调研,我们决定在清还图书的基础上,重建读者信息库。新建读者数据库,新注册读者数据全部从一卡通中心直接调用,鉴于一卡通中心的数据来自学院人事处和教务处,并增加了部分实用的字段,如照片和E—mail等,从而可以保证数据的准确性以及确保与学院其他部门一致。
Interlib与一卡通中心数据库各自都有完整的字段设置。要将两个数据库关联起来,首先需要确定数据库连接的关键字段,并以此作为数据对应的依据。本系统使用一卡通中心数据库中的学工号和Interlib中的读者证号作为相互关联的关键字段。
对应关系图如图2:
图2:数据库对应关系图
建立对应关系后。读者注册时由读卡器读取一卡通卡号,经过~卡通接口程序将卡号发送至一卡通中心数据库验证,调取相应的学工号,返回给Interlib。Interlib根据返回信息检查读者库中是否存在该读者证号,如不存在则显示提示信息。Interlib调用一卡通中心数据库中注册所需字段数据,根据映射关系自动生成读者注册信息,完成新读者注册。
2、数据结构设计
在与Interlib图书馆集成管理系统对接时,所以最有效的数据共享格式是MARC格式。当接口程序将一卡通中心数据库中的数据传送给Interlib时,一卡通接口程序把可提供的(有用的)信息通过Interlib提供的API函数组成一个MARC记录,然后发送Interlib。Interlib接收到该MARC记录,取出相应的字段进行处理。
因此一卡通接口程序需要为每一种类型的操作对应一个提前定义好的MARC元数据结构包,例如卡操作包,卡消费/退费包,账户信息包等等,为双方的数据代码转换提供了桥梁。下面示例卡消费/退费包MARC记录定义。
采用MARC作为数据传输格式的最大便利就是可扩展,当有新的需求时,仅仅增加或修改各项MARC定义即可。
3、第三方动态库、读卡器初始化
一卡通读卡器获取读者信息替代了原先的条码扫描,一卡通接口程序首先要初始化读卡器的动态库,驱动读卡器。
根据读卡器厂商给出的API函数,动态库初始化函数
定义如下:
BOOL WINAPI TA—Init(char IP,short port,unsigned short SysCode,unsigned short TerminalNo,bool ProxyOffline,ULONG MaxJnl);
函数功能:初始化接口程序动态库
入口参数:
IP一一卡通代理服务器IP地址。
port一一卡通代理服务器端口号。
SysCode一各单位商户号。
TerminalNo一一卡通读卡器代码。
出口参数:
PmxyOffiine一一卡通代理服务器是否脱机。
MaxJnl一最大流水号。
读卡器初始化函数定义如下:
int—stdcall TA—CRInit(char CardReaderType,int port,long Baud—Rate);
函数功能:初始化读卡器。
入口参数:
CardReaderType一读卡器类型,0为usb类型读卡器,1为串口读卡器。由于使用USB读卡器,所以不考虑port和Baud—Rate字段的定义。
驱动成功后,Interlib就可以借助接口程序与一卡通中心通信了。由于日常工作中,读F器一般设置为轮询读卡状态,在一定的时间间隔内,不停的发出读卡指令,快速读取~卡通内信息。
轮询读卡函数定义如下:
int—stdcaU TA—FastGetCardNo(unsigned int CardNo);
函数功能:快速读取卡片序列号,用于轮询读卡。
出口参数:CardNo一读取的卡片序列号。
一卡通读取成功后,需要短”嘀”声,代表读卡成功,通过发声函数可以实现,函数定义为:
int—stdeall TA—CRBeep(unsigned int BeepMSecond);Beep—Second;
函数功能:读卡器蜂鸣
入口参数:BeepSecond一读每器蜂鸣的时间,单位为毫秒。
4、一卡通交易模块设计
代扣、代缴是一卡通的主要功能之一。通过交易/退费函数实现。
调用函数定义如下:
int—stdcall TA—Consume(CardConsume pCardCons,bool lsVerfy,short TimeOut=10);
入口参数:
pCardCons一>CardNo一消费卡片的卡号。
pCardCons一>Operator一操作员代码的操作员
代码,填写两个字节的操作员代码。
pCardCons一>TranAmt一卡片消费的交易额,必须小于0
IsVerfy一是否验证消费限额,第一次调用时需要验证,如果返回值是超过消费限额,则第三方程序验证消费密码,如果验证通过,这个参数就可以设置为false(不验证消费限额),如果验证不通过,继续验证密码。
pCardCons一>TranJnl一流水号。
TimeOut一交易超时时间,缺省为10秒。
出口参数:
pCardCons一>RetCode一后台交易的返回值。
pCardCons一>BackJnl一交易的后台流水号。
pCardCons一>Balance一卡片余额。
5、信息查询与文件下载模块设计当新读者注册时,需要调取一卡通服务器数据库中的账号信息。需要下载照片等文件。
账户信息查询函数定义如下:
int—stdcall TA—InqAcc(AccountMsg pAccMsg。short TimeOut=10);
函数功能:根据帐号/卡号/学]:号/证件号精确查询帐户信息
人口参数:pAccMsg一>AccountNo一消费卡片的帐号。
pAccMsg一>CardNo一消费卡的卡号
pAccMsg一>StudentCode一学t号
pAccMsg一>IDCard一证件号码
TimeOut一交易超时时间,缺省为10秒
出口参数:
pAceMsg一从数据库中读Hj的帐户信息,包括姓名Name、性别、SexNo、部门代码DeptCode、矗号CardNo、帐号AccountNo、学】:号StudentCode、身份证号IDCard、身份代码PID、身份序号IDNo、余额Balance、过期时间Expire.Date、补助序号SubSeq、是否在本系统内开通IsOpenlnSys。pAccMsg一>RetCode一后台交易的返回值。
备注:pAccMsg一>AccountNo、pAccMsg一>CardNo、pAcc—Msg一>StudentCode、pAccMsg一>IDCard这四个参数是选择查询条件,必须输入一个。文件下载函数采用照片下载为示例,定义如下:
int—stdcall TA—DownPhotoFile(char{IDNo,char$PhotoFn,short Timeout=lO);
函数功能:根据身份序号下载相片文件
入口参数:
IDNo一要查询的人的身份序号,必须是12个字节的字符串
PhotoFn一查询成功后生成的相片文件名
TimeOut一交易超时时间,缺省为10秒
备注:下载完成的相片文件放到Photo目录下
三、结束语
随着数字化建设的深入,高校图二挡馆在越来越多的方面需要借助一卡通开展工作,一卡通所包含的功能也有待丰富。展望未来的校园一卡通系统,将在现有应用的基础上进行扩展,逐步建立起一个以图书馆一一校园金融服务平台为核心的网络。持卡人可以根据实际应用情况使用电话银行、手机银行,以及遍布网{5馆各个角落的自助设备享受众多先进的服务项目。,最终实现基于Intrant和图书服务中心的电子教学与电子商务圈,形成集中式管理、动态
核算,建立真正网络化的工作方式。