基于Android的GDRMS移动图书馆信息服务系统设计与实现
2015-01-06付兵
付 兵
(湛江师范学院基础教育学院图书馆,广东湛江524037)
基于Android的GDRMS移动图书馆信息服务系统设计与实现
付兵
(湛江师范学院基础教育学院图书馆,广东湛江524037)
〔摘要〕随着无线通信技术和移动互联网技术的高速发展、智能手机的日益普及,传统的基于PC的应用已逐渐向智能手机转移。为解决基于SMS和WAP网站的移动图书馆信息服务所面临的问题,在研究图书馆现有的金盘非书资料管理系统的功能和实现机制的基础上,分析系统设计与实现的技术思路以及关键技术,开发基于Android平台的移动图书馆信息服务系统,并详细介绍馆藏书目查询模块的实现细节。本系统可为读者提供便捷、高效的信息服务,提高图书馆资源的利用率,提升图书馆信息服务水平。
〔关键词〕移动图书馆;信息服务系统;Android;金盘非书资料管理系统
金盘非书资料管理系统[1](Gold Disk Resource Management System,GDRMS)是北京金盘鹏图软件技术有限公司图书馆系列软件产品之一,已被各类型图书馆广泛采用。GDRMS集传统OPAC与非书资料(如随书光盘、磁盘等)管理于一体,方便用户对图书馆各种资源的管理与利用。
目前已有的移动图书馆信息服务主要以SMS(Short Message Service)和WAP(Wireless Application Protocol)网站为主[2],越来越多的图书馆已开始提供移动图书馆客户端。然而,基于SMS的移动图书馆信息服务存在运行和维护成本高,用户通过编写短信访问服务比较繁琐且需支付通信费用等缺点;基于WAP网站的移动图书馆信息服务存在网络数据流量大、用户体验差等缺点[3]。移动图书馆客户端很少有图书馆自己开发的,主要是购买超星、书生等公司开发的产品,每年需要支付高昂的使用费。本文针对目前移动图书馆信息服务面临的问题,在详细分析GDRMS的功能和实现机制的基础上,面向日益普及的智能手机,开发基于Android平台的移动图书馆信息服务系统。
1 需求分析与设计思路
1.1需求分析
随着智能手机用户的日益增多,图书馆提供基于智能手机客户端的移动信息服务成为一种很好的服务方式。目前国内外一些图书馆已经提供移动图书馆手机客户端,用户不仅可以通过计算机查询馆藏书目数据、查看自己的借阅情况、浏览图书馆网站发布的通知公告等信息,还可以通过手机客户端来完成。为了顺应移动网络信息时代的发展趋势,为读者提供便捷高效的移动信息服务,图书馆可以在已有的图书管理系统基础之上开发相应的移动图书馆客户端软件。
Android智能手机凭借其低廉的使用门槛,强大的扩展性,华丽的用户界面,良好的操作体验,丰富的第三方软件,受到用户的广泛青睐。Android平台已成为各种移动客户端软件开发的首选平台。针对现今移动图书馆的需求及用户群体情况分析,本文选择了Android这一平台,开发一个移动图书馆信息服务系统。
通过调查了解,移动图书馆信息服务系统需要提供馆藏书目查询、图书续借、借阅历史、超期公告、新书通报、热门排行、读者管理、通知公告等用户常用功能。
1.2设计思路
1.2.1GDRMS运行机制分析
GDRMS由ASP.NET开发,采用B/S与C/S相结合的模式。用户通过B/S模式用浏览器对服务器进行访问,管理员通过C/S模式用客户端上传与管理随书资料。浏览器使用HTTP请求的GET方法或POST方法与服务器通信,GET方法将需要传递的参数作为URL的一部分向服务器发送,POST方法则将参数作为标准数据传递给服务器。浏览器向服务器传递的参数有两种类型:一种是用户提交的表单数据(如:查询内容、用户帐号等);另一种是页面状态信息(如:_VIEWSTATE、_EVENTVALIDATION等)。提交请求后,服务器返回请求结果并在浏览器中显示。GDRMS的核心功能是馆藏书目查询和用户登录管理,系统开发商提供了馆藏书目检索和读者登录的接口用于二次开发。经过测试,馆藏书目查询接口检索结果不全,不宜采用,需通过其它方式实现;读者登录接口可以成功登录。新书通报、超期公告、热门排行等功能的运行机制与馆藏书目查询类似,可以通过相似的方法实现。
1.2.2设计思路
通过对GDRMS运行机制的分析发现,本系统可以采用移动客户端模拟浏览器对GDRMS服务器进行访问的方式来实现,因而不需要另外增设服务器。本系统的核心是HTTP请求的发送和请求结果的获取与解析。HTTP请求的发送使用HttpClient的GetMethod或PostMethod方法完成,请求结果为网页HTML源代码字符串。具体流程为:用户触发客户端请求事件;客户端获取需要提交的参数,根据需求选择GetMethod或PostMethod方法向GDRMS服务器提交HTTP请求,建立起客户端与服务器的连接;通信连接建立后,需要判断连接的状态,这里主要有两种状态:一是访问正常,直接获取请求页面的源代码;二是网页自动重定向,则需要获取重定向后的网页源代码;客户端获取源代码后对其进行解码并断开与服务器的连接;提取有用信息显示到用户界面上。客户端与GDRMS服务器的数据通信模式如图1所示。
图1 客户端与服务器通信模式图
2 系统总体设计
本系统主要由手机客户端和GDRMS服务器两个部分组成。客户端建立在Android操作系统及手机硬件之上。由于本系统在数据处理上完全依托GDRMS,因此只需设计客户端,服务器端使用GDRMS服务器和数据库服务器。系统总体结构如图2所示。
图2 系统总体结构示意图
系统按照MVC(Model,View,Controller)程序框架原则来设计,针对本系统抽象出用户界面层、业务逻辑层和数据通信层,分层设计的理念可以降低各个模块之间的耦合性,明确各个模块的职责,从而增强系统的扩展性[4]。用户界面层,对应MVC程序框架的View,在本系统中指Android客户端界面,负责给用户呈现直观的操作界面,用于接收用户的请求和显示请求结果。数据通信层,对应MVC程序框架的Controller,作为用户界面层和业务逻辑层之间的纽带,具体负责HTTP连接、组装数据、数据解码等任务。业务逻辑层,对应MVC程序框架的Model,包括本系统的各个功能模块,主要任务是接收来自用户界面层的请求,并解析处理数据通信层返回的请求结果。
3 系统实现
3.1关键技术
3.1.1请求参数的获取
向服务器发送HTTP请求需要提交的参数可以通过HttpWatch软件查看。HttpWatch是一个网页数据分析的浏览器插件工具,它的主要作用是让我们更好的了解网页在通过HTTP协议请求时网页数据的传输和请求情况。它的工作原理是:启动HttpWatch工具后,当我们在打开网页时,它会同步记录分析网页加载的进程,包括HTTP协议请求的网页header信息、cookie信息、以GET或POST方式传递的数据等[5]。HttpWatch显示网页状态的界面如图3所示。
图3 HttpWatch网页状态显示界面
3.1.2HttpClient
HttpClient是Apache Jakarta Common下的子项目,用来提供最新的、高效的、功能丰富的支持HTTP协议的客户端编程工具包[6]。利用HttpClient组件包,可以模拟各类HTTP客户端(如HTTP/HTTPS连接、Get/Post请求等)访问服务器端的全过程,简化了HTTP客户端与服务器端的各种通信开发过程[7]。本系统通过自定义GetContent类,该类的getResponseByGetMethod和getResponseByPostMethod方法来实现客户端与服务器的通信。getResponseByGetMethod方法的部分代码如下:
getResponseByPostMethod方法比getResponseByGetMethod方法多一个HashMap类型的参数parmMap用来传递Post请求提交的参数。读取Post请求参数的主要代码如下:
3.1.3网页自动重定向处理
在GDRMS中有几处网页重定向的情况,如从“简单查询”页面到“检索结果”页面。由于PostMethod方法不能自动重定向,需添加处理网页自动重定向的代码:
3.2馆藏查询模块的实现
由于本系统功能模块比较多,限于篇幅,这里只介绍馆藏查询模块的实现。馆藏查询模块的业务逻辑如图4所示,该模块是本系统的核心,实现了用户对图书馆馆藏书目数据的查询功能,由馆藏查询、查询结果和图书详细信息3个界面组成。
图4 馆藏查询逻辑示意图
3.2.1馆藏查询
馆藏查询界面由页面布局文件search.xml和SearchActivity类实现,当点击系统首页(如图5所示)“馆藏查询”图标,进入馆藏查询界面,如图6所示。
图5 系统首页界面图
图6 馆藏查询界面示意图
通过HttpWatch软件查看馆藏查询请求需要提交的参数如表1所示。
表1 馆藏查询请求需提交的参数
用户输入检索内容,选择好检索类型、检索模式、排序方式后,点击“检索”按钮会调用SearchActivity类的Runner方法,该方法建立新线程用来处理查询请求。该线程首先调用GetContent类的getResponseByGetMethod方法获取GDRMS简单查询页面的状态信息_VIEWSTATE和_EVENTVALIDATION,然后将所有需要提交的参数键值(key-value)保存到HashMap中,最后调用GetContent类的getResponseByPostMethod方法获取检索结果页面源代码。需要分析源代码以判断有无满足检索条件的结果,如果有则将源代码传递给SearchResultActivity类,否则提示没有满足查询条件的记录。
3.2.2检索结果
检索结果界面由页面布局文件searchresult.xml、searchresult_item.xml和SearchResultActivity类实现,如图7所示。
图7 检索结果界面示意图
SearchResultActivity类接收SearchActivity类传递的源代码并进行解析,分析出检索结果总条数、总页数等信息,并将每条记录的题名、责任者、出版者、出版年、ISBN、索书号和URL链接解析出来保存到数组里面。每条记录用ListView控件来显示,ListView的内容由searchresult_item.xml定义,用BookListAdapter将数组的数据绑定到ListView,点击ListView的任意item进入到图书详细信息界面。点击页面跳转按钮“首页”、“上页”、“下页”、“尾页”可在不同结果页之间切换。
3.2.3图书详细信息
图书详细信息界面由页面布局文件bookdetial.xml、bookdetial_item.xml和BookDetialActivity类实现,如图8所示。当点击检索结果的任意记录时,BookDetialActivity类首先获取SearchResultActivity类传递来的URL链接,然后调用Get-Content类的getResponseByGetMethod方法获取页面源代码,最后再对源代码进行分析处理。首先解析出图书的ISBN、价格、题名责任项、出版发行项,然后提取图书的馆藏信息,包括复本数、可外借数、历史借阅次数以及每本书的条形码、索书号、馆藏地址、状态、流通情况等,最后绑定到相应的控件上并显示出来。
图8 图书详细信息界面示意图
4 结语
依托图书馆现有的GDRMS,在Android平台上设计并实现了移动图书馆信息服务系统。该系统包含馆藏书目检索、用户信息管理、图书续借、查看外借历史、超期公告、新书通报、热门排行、通知公告等用户常用功能。本系统具有较强的实用性和通用性,只要修改客服端的服务器地址,任何采用GDRMS的图书馆用户都可以使用本系统。下一步的工作将是进一步完善和丰富系统的功能,以满足用户多样化、个性化的信息需求,为用户提供更加方便、快捷、高效的信息服务,提高图书馆的信息服务水平。
参考文献
[1]金盘非书资料管理系统[EB/OL].http:∥www.goldlib.com.cn/jinpan/production2.asp?ID=12,2015-07-20.
[2]叶莎莎,杜杏叶.国内外移动图书馆的应用发展综述[J].图书情报工作,2013,(6):141-147.
[3]郭文丽,严潮斌,吴旭.基于Android客户端的图书馆微服务研究与实践[J].图书情报工作,2013,(8):22-26.
[4]赵国栋.基于Android系统的手机网上商城设计与实现[D].北京:北京交通大学,2012.
[5]百度百科.HttpWatch[EB/OL].http:∥baike.baidu.com/view/425789.htm?fr=Aladdin,2015-07-20.
[6]金发华,陈樟洪.HttpClient入门[EB/OL].http:∥www.ibm. com/developerworks/cn/opensource/os-httpclient,2015-07-20.
[7]HttpClient 4.0.1官方教程[EB/OL].http:∥wenku.baidu.com/view/3722d634b90d6c85ec3ac63c.html,2015-05-20.
(本文责任编辑:孙国雷)
·信息咨询与服务·
Design and Implementation of GDRMS Mobile Library Information Service System Based on Android
Fu Bing
(Library,Basic Education College,Zhanjiang Normal University,Zhanjiang 524037,China)
〔Abstract〕With the rapid development of wireless communication technology and mobile internet technology,the increasing popularity of smart mobile phone,the traditional applications based on PC are transferring to the intelligent mobile phone gradually.To solve the problems of mobile library information service based on SMS and WAP web site,this paper researched the function and realization mechanism of GDRMS which running in our library firstly,and then,analyzed the technical scheme and key technologies of system design and implementation.Finally,the paper developed a mobile library information service system based on android platform;illustrate the implementation details of library bibliographic retrieval.This system could provide convenient and efficient information service for the readers,raise the resource utilization rate,and improve the service level of the library.
〔Key words〕mobile library;information service system;Android;gold disk resource management system
作者简介:付兵(1983-),男,馆员,硕士,研究方向:信息资源建设、数字图书馆,发表论文10余篇。
基金项目:湛江师范学院基础教育学院科研项目“移动图书馆信息服务系统研究”(项目编号:XM1401)研究成果之一。
收稿日期:2015-10-27
〔中图分类号〕G250.7
〔文献标识码〕A
〔文章编号〕1008-0821(2015)12-0060-05
DOI:10.3969/j.issn.1008-0821.2015.12.011