计算机系统应用  2021, Vol. 30 Issue (7): 110-116   PDF    
改进的RFID图书定位系统
沈静萍, 孟文杰, 王政凯     
中国石油大学(华东) 图书馆, 青岛 266580
摘要:RFID盘点定位系统在高校的应用生态不容乐观, 找书难的问题依然存在, 系统亟需改造重构. 基于我校RFID盘点定位系统, 结合流通排架实操规程, 采用Python、Django框架和Oracle数据库开发系统后台管理模块, 对该系统的定位数据采集、数据库结构、定位计算方法进行改造. 此方法在实际应用中取得了良好的效果, 改进后的RFID定位系统易于管理维护, 有效地解决了找书难的问题.
关键词: RFID    图书盘点    图书定位    二次开发    
Improved Book Localization System Based on RFID Technology
SHEN Jing-Ping, MENG Wen-Jie, WANG Zheng-Kai     
Library, China University of Petroleum, Qingdao 266580, China
Abstract: The book localization system based on RFID technology produces few desired results in universities; the system needs to be reconstructed because finding target books is still challenging. The library’s localization system of China University of Petroleum based on RFID technology is adopted in this study. Combined with the practical procedures of circulation and shelf arrangement, the frameworks of Python and Django and the Oracle database are used to develop the backstage management module of the system. In addition, the localization data collection, database structure, and the calculation of localization are upgraded. The improved book localization system based on RFID technology is easy to manage and maintain, effectively solving the problem of finding target books.
Key words: RFID     book inventory     book localization     secondary development    

RFID盘点定位系统通过图书盘点来采集每本图书在书架上的位置信息, 再将书架位置以图形的方式展示给读者, 从而解决读者找书难的问题. 目前采用RFID技术的盘点定位系统有3种方式, 分别是动态智能RFID书架、静态盘点机器人和静态人工盘点[1-5]. 鉴于智能RFID书架和盘点机器人的高成本、高投入, 高校图书馆基本上都采用静态的人工盘点定位模式. 静态定位的准确性需要借助初次定位、馆藏盘点和图书顺架等工作来保证[6]. 需要投入大量的人力和时间来维护该系统精准有效的运行, 因此在该模式下, 图书的定位准确率会随着使用时间和书架的调整变得越来越低, 用户体验感降低, 而海量的图书重新定位又耗时耗力[7]. 这使得RFID图书定位系统的应用和维护成本过高, 很难将其应用到实际工作中. 随着RFID技术在高校的应用普及, RFID定位系统的实际应用问题也成为一种普遍的存在, 不仅没有解决读者找书难的问题, 还造成了该项投资的浪费. 为此, 笔者深入研究本馆的RFID图书定位系统, 结合流通排架整架实操规程, 对该系统的定位数据采集、数据库结构、定位计算方法进行二次开发改造, 增加程序自动处理流程, 减少人工参与度, 大大降低了人工定位成本, 取得了良好的实际应用效果.

1 RFID图书定位流程和方法分析

以中国石油大学(华东)图书馆的RFID图书定位系统为例. RFID图书定位系统的流程与定位信息采集方法如图1. 层架标编码如图2.

图 1 RFID图书定位系统定位流程

图 2 层架标编码

1)定位数据采集

RFID图书定位系统首先要进行图书定位信息的采集, 通过扫描层架标读取层架标数据编码, 再扫描该层架上的每一本图书, 由此获得每一本在架图书的书架位置信息并写入数据采集终端数据库, 人工核对无误后继续扫描下一个层架标和图书, 直到整个书库采集完成, 采集终端上传定位数据到定位服务器数据库中, 同步更新数据, 整个定位数据采集更新工作完成. 每次倒架整架后都要重复该采集流程以保证图书定位数据的准确性.

2)定位信息查询显示

读者通过OPAC检索页面检索到某图书, 在检索结果页面的位置链接请求中发送该图书的条形码给图书定位服务应用程序, 定位程序根据图书条形码找到图书的层架标位置编码, 发送给图形显示模块进行3D立体定位路线图的显示. 如图3.

3)定位方法分析

定位数据的采集在RFID定位系统中发挥着至关重要的作用, 采集速度、采集精度和成本投入是图书定位数据采集系统可行性的关键指标[8]. 在首次完成图书定位数据采集后, 为了确保图书定位数据的准确率, 每次倒架、整架后需要重新进行定位数据的采集. 这种“全书采集”的方法和手动同步更新数据的方式, 造成了定位数据采集工作量大、系统维护困难.

图 3 3D立体定位路线图

2 RFID图书定位系统改造设计

在分析RFID定位系统流程和方法的基础上, 结合实际工作规程, 对原系统定位数据的采集方法、后台数据结构、同步更新数据等方面进行改造. 改造后的RFID图书定位系统如图4所示.

1)将全书定位改为首尾书区间定位

首尾书区间定位只需采集定位精度内的首书和尾书信息. 比如, 目前的RFID定位系统能达到的最小精度是精确到一个书架的某一列的某一行, 采用首尾书区间定位, 只需用盘点定位终端扫描该层上的第一本书和最后一本书, 不存在识别不到的问题, 扫描的同时完成校准工作(确保下一个精度区间的最小索书号大于相邻的上一个精度区间的最大索书号), 大大减少了定位数据采集工作量; 如果定位精度扩大为一个书架的某一列, 则只需要扫描该列的第一本书和最后一本书, 定位数据采集的工作量可极大的降低.

2)改进图书定位映射方式

将以条形码为定位查询基准, 改为以条形码为查询关键词, 以索书号为定位计算基准. 在研究RFID图书定位数据库的时候发现数据库的图书定位信息表中只有条形码字段而没有索书号字段, 定位数据的采集和查询全部通过条形码作为标识和检索关键字来实现. 但是在实际的排架工作中, 基本都是按照中图分类法从上到下从左到右按照索书号由小到大的顺序排列, 因此只要确定层架定位精度要求内的首、尾索书号, 在这段首尾闭区间内的索书号都位于该精度范围内, 不需要采集该范围内的所有图书. 索书号的比较和架位信息的更新工作都可交由程序来自动完成.

索书号的排序比较需要考察本馆的实际排架操作规程, 我馆是按照中图分类法来排架的, 在索书号中使用了字母和数字以及‘/’、‘-’、‘.’、‘(’、‘)’、‘#’几个常用的特殊字符, ‘#’是我馆自己用的特殊标识, 对排架不产生影响, 因此除了需要对‘/’进行转换外, 其他的字母、数字和特殊字符与二进制ASCII表基本一致(如图5), 计算机按照ASCII表的顺序由小到大排序, 因此不需要进行特殊处理.

图 4 改造后的RFID定位系统

图 5 特殊字符处理

图5可见‘/’符号与ASCII表的排序顺序不符, 因此在程序中将‘/’用‘!’来替换即可解决该问题. 在Python环境中进行验证, 如图6.

将索书号作为定位计算关键字, 可以突破目前完全依赖盘点定位设备采集数据的限制, 增加手动图书定位基准的增、删、改、查操作, 平时小范围的整架、倒架操作之后, 可以及时将变化的数据提交到图书定位系统的书架定位基准表, 程序会自动更新图书定位信息, 实时保持图书定位信息的准确性.

3)每天定时更新索书号和定位信息

为保证定位系统数据的准确性, 程序每天定时更新索书号和定位信息. 编写存储过程, 每天把新入库的图书信息更新到定位数据库中, 再与定位基准表的首尾书索书号比对, 将书架定位数据添加到新入库图书的书架编号字段中. 数据的更新全部由程序自动完成, 不需要工作人员对新增图书做定位扫描工作.

图 6 程序验证特殊字符排序

3 RFID定位系统改造实现

RFID定位系统的改造采用B/S模式, 使用Python、Django框架和Oracle数据库开发Web页面和后台改造程序. 通过前端Web页面对后台数据和程序的运行进行管理.

1) 数据库表改造

① 创建定位基准信息表book_stan, 如表1.

② 创建书架区域信息表bookcats, 我馆采用书库名称对书架区域进行分类, 表结构如表2.

③ 在RFID定位系统定位信息表

BOOK_TRANSFORM中增加索书号字段CallNo, 如果原BOOK_TRANSFORM表中有冗余字段, 可以直接把字段改为索书号字段. 改造后的定位信息表包含的主要字段如表3.

表 1 定位基准信息表book_stan

表 2 书架区域信息表bookcats

表 3 定位信息表BOOK_TRANSFORM

编写程序连接数据库, 按照馆藏地点(把不需要盘点定位的图书排除, 减少更新数据量, 提高效率)把汇文数据库INDI_ACCT表中的索书号和条码号取出放入临时表中, 再将临时表和定位信息表BOOK_TRANSFORM合并更新定位信息表中CallNo字段的值, 条件是两表中的条码号相同. 程序流程和运行结果如图7.

图 7 更新索书号程序流程

此程序只需要在改造初期运行一次, 以后每天由存储过程自动更新当天新增加的数据即可.

2) 定位基准表的数据导入

盘点定位终端的定位信息表是从RFID定位系统数据库的定位信息表中同步过来的数据, 数据表结构和定位系统数据库的表结构相同.

通过首尾书定位法对图书进行定位数据采集后, 从盘点定位终端的定位信息表中读取属于同一个层架标的索书号, 最大索书号用来更新book_stan表的maxCallNo的值, 最小索书号则用来更新minCallNo的值, 同时更新Book_Location字段的值为层架标位置编码, 取层架标编码的前两位作为更新book_floor_ id字段的值. 定位基准表如图8.

3) 更新RFID定位系统定位信息表BOOK_TRANSFORM

通过与定位基准表中的最大最小索书号比较, 在这个闭区间之内并且位置信息字段BOOK_INDEX与定位基准表中的BOOK_FLOOR_ID属于同一个定位地点的索书号, 将其对应的书架位置编号更新为定位基准表中该区间对应的书架位置编号. 同样, 使用合并记录的方法提高程序效率, 数据库语句为: "MERGE INTO BOOK_TRANSFORM A USING ( SELECT BOOK_LOCATION,MINCallNO,MAXCallNO,BOOK_FLOOR_ID AS LOCNAME FROM book_stan) B on (A.BOOK_INDEX=B.LOCNAME AND replace(A.BOOK_ISBN,'/','!') BETWEEN replace(B.MINCallNO,'/','!') and replace(B.MAXCallNO,'/','!')) WHEN MATCHED THEN UPDATE SET A.BOOK_PLACE=B.BOOK_LOCATION.

4) Web网页制作

网页采用Python的Web框架Django和Oracle数据库开发. 通过MVT模型, 创建数据库modles, 前台页面模板html文件以及Python应用程序views. 初始页面展示图书定位基准查询表, 登录后可通过“修改”链接手工进行定位基准的增、删、改、查操作. 如图9图10图11.

图 8 定位基准表

图 9 定位系统后台管理页面

图 10 在汇文搜索结果页嵌入定位系统

图 11 系统3D图形定位导航页面

4 结语

随着信息技术在社会各领域应用的不断深入, 越来越多的高校图书馆应用RFID技术为读者提供更加便捷的服务、为图书馆员提供更加高效的管理手段. RFID图书定位系统由于定位方法设计建立在理想条件下, 使得维护工作量巨大, 极大增加了馆员管理的负担, 在实际应用中难以持续. 然而RFID技术在图书定位方面有着极大的潜力和优势, 其现有的前后台程序都比较完善, 只需对数据库设计和定位方法根据各馆实际进行改造就可重新焕发生机, 开发周期短又避免重复建设. 在RFID盘点效率没有得到根本性改善、盘点机器人和智能书架无法全馆普及的当下, 对现有定位系统进行改造无疑是最经济有效的选择. 笔者本文中介绍的改造方法, 在实际应用中运行稳定, 效果良好, 希望能给已经建设和将要建设RFID项目的图书馆提供借鉴和参考.

参考文献
[1]
何赫, 刘涛, 李丹. 基于RFID的图书馆图书定位系统研究与设计. 电子器件, 2017, 40(3): 688-691. DOI:10.3969/j.issn.1005-9490.2017.03.034
[2]
马栋萍, 张旭, 沈鑫. 基于RFID和WiFi技术的图书智能定位系统设计. 图书馆工作与研究, 2017(1): 61-64.
[3]
张广雷. 基于RFID的图书检索定位技术探究. 河南图书馆学刊, 2018, 38(5): 105-107. DOI:10.3969/j.issn.1003-1588.2018.05.043
[4]
夏正伟, 李全, 端文慧, 等. RFID图书自动盘点机器人应用研究——以武汉大学图书馆为例. 图书馆杂志, 2020, 39(1): 61-66, 55.
[5]
贾成刚. 基于RFID技术环境开展图书盘点工作的实践与探索. 图书馆理论与实践, 2017(5): 101-103.
[6]
江波. 图书馆RFID系统建设中图书定位存在的问题及对策. 图书馆理论与实践, 2015(11): 109-111. DOI:10.3969/j.issn.1005-8214.2015.11.033
[7]
吕俊杰. 基于RFID技术的图书高效定位方法研究——以西南政法大学图书馆为例. 新世纪图书馆, 2018(10): 61-64, 73.
[8]
孙发. 图书定位系统的设计与实现. 图书情报工作, 2013, 57(15): 102-107. DOI:10.7536/j.issn.0252-3116.2013.15.016