高校智慧图书馆APP的设计与开发
2018-09-11谢海欧
谢海欧
(湖南理工学院图书馆,湖南岳阳414000)
1.引言
智慧图书馆是一个不受空间限制且可被感知的移动图书馆 [1]。随着数字图书馆的发展,“智慧图书馆”的概念越来越引起学者和业界的关注。智慧图书馆服务系统是图书馆一个新的改革方向,也是图书馆的未来给予读者服务、吸引读者的方向。同时智慧图书馆这门新兴服务的发展给高校图书馆传统服务带来冲击,高校图书馆的工作面临着新的机遇和挑战。
智慧图书馆服务是图书馆重要的服务方式。图书馆需要一款移动智慧终端系统,集资源、社交等为一体来为用户提供更加便捷高效的服务,同时提高图书馆在高校的话语权。在理论上,王世伟[2]从智慧图书馆的涵义、特点、实现模式以及涉及到的技术做了详细阐述;乌恩[3]认为智慧图书馆是图书馆发展的一个更高级阶段,构建了一个智慧图书馆的服务模式;赵晓芳[4]认为智慧图书馆的服务途径需在理解其内涵的基础上从多个维度去构建。在实践上,李念祖、杨新涯[5]、陈嘉懿[6]、董晓霞、沈奎林和邵波[1]等借鉴理论,设计并实现了部分智慧图书馆的功能。在具体应用上,除了重庆大学图书馆等少数高校图书馆自行设计外,大部分高校图书馆是选用超星移动图书馆、书生移动图书馆等成熟移动产品。这样的成熟的移动产品,很大程度上帮助高校图书馆提供了移动服务。但其作为一种通用产品,所有图书馆的移动服务几乎完全相同。无法体现高校图书馆的特色,更谈不上为读者提供个性化的服务。
基于Android的智能手机上网是大学生主流。因此,本文以湖南理工学院图书馆为例,展开了高校智慧图书馆APP建设与研究,读者在基于Android的终端(包括平板电脑、手机、电子书阅读器等)安装APP应用后,随时方便地享受图书馆的服务,这样不但提高了用户获取知识的效率,也增加了图书馆用户的忠诚度,同时也为其他高校智慧图书馆APP建设提供借鉴。
2 基于高校智慧图书馆APP的设计
2.1 系统功能模块设计
系统将原本基于PC的图书馆服务迁移到Android手机上,用户通过Android手机就能够使用所有的原本PC图书馆网站提供的服务,并针对移动设备提供了更多有特色的功能。
系统的主要功能模块如下:
1)OPAC检索:图书馆书籍检索。
2)扫码服务:通过扫一扫功能,体验快速获取图书馆书籍信息、续借图书、推荐图书等众多服务。
3)新闻公告:为读者带来最新的图书馆新闻公告。
4)我的图书馆:个人图书馆模块,提供读者信息查询、借阅查询、违章记录查询等众多个人信息服务。
5)认识图书馆:带领新生快速认识图书馆,使用图书馆。
6)资源动态:提供图书馆讲座、数字资源等信息。
7)我的名片:社交模块,每个读者拥有自己唯一一张图书馆名片,包括了读者入校以来在图书馆的一些记录。
8)设置模块:提供客户端APP设置操作。
9)登录模块:用户需要登录后才能使用APP的主要功能。
10)帮助模块:提供图书馆服务系统常见的问题与解答,用户自己的反馈回复也在该模块中体现。
11)意见反馈模块:为了提高用户体验,用户可以将遇到的问题或者对图书馆服务的意见通过使用该模块进行反馈。
12)其它功能模块:包含一些常用的小功能,如推荐图书、座位预约、图书馆书籍分类查阅等。
2.2 系统架构设计
系统主要模式为Client/Server模式,共包含三层体系结构,分别为客户端、服务端和数据库。
1)客户端:基于Android平台,使用HTTP请求及Socket与服务器进行通信,HTTP请求简化了开发过程中的繁琐性,Socket方式编程又保证了数据的安全性与持久性,将两者结合在一起以获得更好的效果与用户体验。使用客户端获取外部信息,例如手机的相机获取书本条码信息,并对信息进行相应的处理。客户端提供了一个友好的可视化操作界面,良好的交互带给用户最好的体验。
2)服务端:解析所有客户端发送的请求,使用PHP应用程序操作数据库。服务端上运行着汇文OPAC系统用于提供OPAC检索相关服务,基于汇文OPAC系统的Oracle数据库编写客户端需要的API。作为客户端与数据库之间的桥梁,保证了并发处理多用户请求以及数据的完整性。
3)数据库:数据库服务器。接受服务端程序的SQL请求对数据库本身进行操作,实现数据的检索与存储。系统使用MySQL数据库进行数据存储。客户端使用SQLite数据库进行数据存储。
Client/Server结构的系统中,用户可以通过客户端程序向分布在网络上的服务器发出请求,服务器通过服务端程序对客户端发起的请求进行处理并对数据库操作,再将操作结果返回到客户端。
系统架构如图1所示。
图1 系统架构图
3 基于高校智慧图书馆APP设计与实现
系统主要包括客户端模块、服务端模块以及系统服务模块。这三个模块相对独立,通过模块之间的互相协作共同为用户提供图书馆的服务。
3.1 客户端模块的设计与实现
客户端基于Android平台开发,系统要求Android2.3及以上。客户端主要采用C/S结构开发,但在C/S结构内,嵌套一层B/S结构,即部分功能使用B/S结构开发,包括新闻公告模块、资源动态、帮助模块均使用B/S结构开发。
系统接入图书馆数据库,所有用户需要登录后才能使用所有功能。系统提供免登录功能,用户在登录之日后七天内可以不用重复验证身份而直接使用系统提供的服务。该客户端面向图书馆服务的全体师生提供服务。部分模块(如“认识图书馆”模块)带有缓存功能(第一次客户端主动从服务端请求加载数据,数据将持久化存储在本地),以节省用户流量,或在没有网络的环境下读者仍能获取这些信息。如读者需要更新,可自行主动更新数据。业务流程图如图2所示。
图2 客户端功能模块图
客户端整体框架下包含以下若干个功能模块,分别为:认识图书馆、OPAC检索、扫码服务、新闻公告、资源动态、我的名片、设置、帮助、意见反馈、密码管理、其它功能和登录12个大功能模块,每个功能模块下包含若干小的功能。功能模块图如图3所示。
图3 客户端功能模块图
3.2 服务器端模块的设计与实现
服务端应用程序使用PHP编写,使用Apache作为Web服务器。为了提高代码的复用性与安全性,使用面向对象方式编程,抽象出常用的方法。
本系统以汇文OPAC系统为基础,采用MySQL数据库开发,具有高效、方便、快捷等特性。就本系统对数据的需求而言,MySQL可以简化很多效率方面的设计,因而可以把更多的精力放在数据库的逻辑设计方面。主要的表设置如下:
图书馆导航信息表记录学校图书馆以及书库的基本信息,如图书馆编号、楼层编号、借阅地点、藏书类型等。
常见问题表记录使用图书馆服务中经常会遇见的问题以及解决方式等信息,包括问题类型、问题详情、问题答案、最新答案更新时间等。
问题意见反馈表记录所有读者通过客户端反馈的问题或意见以及图书馆回复等内容信息,包括用户编号、用户姓名、意见内容、反馈时间等。
图书馆信息表记录图书馆相关信息,包括图书馆介绍、图书馆微信、图书馆微博、图书馆服务信息等。
3.3 系统服务模块设计与实现
系统集成信息推送服务,使用友盟消息推送SDK,建立与用户直接沟通的渠道。将图书馆最新信息如新闻动态、资源动态、书籍信息等服务信息通过服务端主动推送到用户终端APP,让用户第一时间接收到通知并获取到相关信息,有效提升用户活跃度和忠诚度。消息推送服务支持多样推送服务,主要特点如下:
1)能按照不同特征分群,从而为不同分群的用户推送最合适的内容;
2)可以选择发送通知或者自定义消息;
3)定时推送;
4)推送成功率高。
推送消息效果图如图4所示。
图4 推送消息效果图
在传统的图书馆服务中加入在移动互联网时代很流行的社交元素,通过用户分享传播,增加用户的体验。APP通过程序为每位读者生成一个唯一的二维码,通过扫描二维码,所有人可以浏览该用户属于自己的一张图书馆微名片。如图5所示。
图5 微名片效果图
4 系统测试
采用Testin云测试对客户端APP进行兼容性测试,通过率为93.19%,已经达到标准。具体测试结果如下:
图6 通过情况图
图7 测试情况统计表格图
采用Android中的Monkey工具对应用程序进行压力测试。测试中使用命令:#monkey-p com.maxbox.hnistlib-v 500,向客户端APP发送500个伪随机事件。得出结果如图8所示:
图8 Monkey测试结果图
测试过程中,应用程序在不断地切换画面,直至Monkey测试完成,并未出现错误,表明客户端程序通过了这次Monkey测试。
5 结语
湖南理工学院图书馆在智慧图书馆方面从研究和创新上做了一些探索,取得了一定的认可。湖南理工学院历年年度问卷调查中评价图书馆服务的有28个指标,智慧图书馆APP2013年尚未开展,2014年开始创建,2015年后受到读者的高度认可,从2014年排24位到2015年的第三位,之后连续4年一直稳定在第三位,仅次于图书馆员和微信服务,说明我馆智慧图书馆APP服务工作得到很大提升。读者通过智慧图书馆APP可以方便地检索本馆书目、查阅自己的借阅信息、并续借即将到期图书,预约、荐购图书,查看自己的借阅账单,找到常见问题的答案,并及时获取图书馆的各种资讯;还可以通过智慧图书馆APP参与图书馆的新生入馆教育、年度问卷调查、各项投票活动,这种方便的服务方式越来越被读者所接受、认可。至2017年底,湖南理工学院智慧图书馆APP安装量为10324人次。
但这只是智慧图书馆的第一步,还有很多需要完善的地方。存在如下的问题及改进空间:
(一)还需要考虑更多的读者选择。仅开发了安卓版的,没有ios版。
(二)智慧图书馆APP还需要物联网更多的支持。RFID的应用是智慧图书馆的重要组成部分。应挖掘出RFID在自助借还、盘点、防盗等方面更大的应用潜能。
(三)在智慧服务系统方面,还需要引入更多的社交和推荐功能。借助一些算法,将人与资源连接起来,帮助人找到资源,帮助资源找到人,做到更加人性化、智能化的服务。