杨 勇,黎邦群
手机图书馆已成为数字图书馆发展的新趋势,形式多样的手机图书馆系统功能与应用层出不穷,但缺少对特定图书馆当前服务与资源利用现状实时报告的应用研究。本文所研究的实时报告系统是利用手机图书馆来整合门禁管理系统、相关库室、资源与服务及各类服务器等资产的服务或运行状态信息,并将相关馆情以移动Web的方式集中查询和显示,以期提高服务与资源的利用率,提升维护与管理的效率。
目前,国内外实时报告系统的应用具有两个特征:一是多用于极需即时了解内部动态数据的领域与行业,如电网分析[1]、车站现车[2];二是动态数据呈现在特定地理位置的固定大显示屏上,如华东交通大学图书馆[3]在人口处的大显示屏上实时反映各阅览室、借书处在馆读者人数、尚能容纳的读者人数等信息。这些应用实践对本文写作具有一定的参考价值,但网络文献检索并未发现有关图书馆应用基于Web设计,且全面准确、移动便捷的馆情实时报告系统的实践和研究。
(1)在入馆前,读者往往很难全面了解图书馆当前使用情况,如图书馆的人流、读者在各个库室的分布概况、各类资源与服务的状况等情形。需要通过电话咨询、通知公告等途径去了解,所获取的可能只是片面的或不准确的信息。为便于读者全面、快捷、准确地了解馆情,以合理地规划入馆学习的时间与安排,图书馆有必要对内部情况进行全方位的、权威的、实时的信息披露。
(2)随着图书馆文献资源、服务设备等资产增多、服务规模增大,管理员的维护任务与日俱增,设备发生故障的概率随之增高。为监测与掌控这些资产与服务的运作状况,管理员不得不花费大量的时间与精力先后远程登录各个资源与系统,甚至亲临机房逐一检查。通过手机屏幕轻松便捷地获取其实时状况信息,可以满足管理员实行全天候监控的工作需求,降低管理与维护成本。
用户点击手机图书馆“实时报告”链接,系统依据用户登录权限的差异分别返回读者版或馆员版的页面,并用SQL语句、FSO方法和Mashup技术查询或检测相关库室的读者分布概况、各种资源与服务的状态,并用懒加载技术将动态数据实时地呈现给用户,以移动Web的形式集中展示图书馆的使用情况,如图1所示。
图1 手机图书馆实时报告系统技术思路图
技术思路的关键在于各类服务器运行状态的追踪与检测。技术难点在于查询速度与检测效率的提升及实时报告所需数据的及时获取与合理呈现。
(1)总体方案。系统依托已有的手机图书馆系统架构而设计,总体上采用B/S(浏览器/服务器,Browser/Server)的体系结构,逻辑上分为客户端浏览器、Web服务器和数据应用等3层:顶层提供远程访问的统一接口,中间层接受和处理顶层发出的访问请求,底层提供中间层所需数据,如图2所示。
(2)具体设计方案。系统使用数据库用户表查询、Web服务状态检测及服务器文件读写等方法或技术,获取图书馆各类资产、资源与服务的运行状态,并用移动Web规范标准及ASP动态语言来设计Web应用,将各类动态数据实时地显示于手机图书馆的相关网页。实时报告的项目大致可分为以下7大类,见表1。
图2 手机图书馆实时报告系统逻辑层图
表1 手机图书馆实时报告项目(节选)
依据报告对象的不同,系统可分为馆情通报及服务器状态监测2个功能模块,分别对应读者版和馆员版的实时报告系统。前者通过连接与查询门禁、库室、资源与服务等系统数据库,获取并显示读者分布概况及资源与服务状态等最新数据;后者通过网络访问数据库系统、Web站群及文件存储等服务器,获取并显示图书馆机房运行状态;这2个功能模块分别从不同角度报告图书馆各类资产的服务与运行数据。
(3)系统设计目标。利用计算机网络与数据库技术,整合现有资产与服务,实现与各类管理系统及数据库的连接,并在手机屏幕上实时、安全、高效地显示各类馆情。系统的服务端无需新增任何软硬件投入,客户端不用额外下载安装其他软件,仅需使用手机自带的浏览器即可使用所有功能。系统具有较高的安全性、可维护性及可用性。
(4)开发环境和系统要求。服务端为原手机图书馆的运行环境:IBM eServer X365 8862+Windows Server 2003+IIS6.0,客户端为一部支持WIFI与Web浏览功能的宽屏智能手机。系统要求根据现有条件与实际需求,依托手机图书馆的登录认证系统识别用户权限,分别向读者和馆员呈现不同版本的馆情报告,全面准确地通报馆情。
(1)准备工作。包括了解、熟悉各类数据库与服务器的系统结构、数据读写或查询与运作的方式与流程,尤其是数据库核心用户表的结构与字段。例如,实时报告“新增图书”“流通借还”等功能,需用OLEDB方法连接Oracle、DB2及ASE等业务数据库,并用SQL语句的“Select”命令查询书目数据库的相关用户表。为了存储表1中的实时报告内容“入馆人次统计”的历史时段及入馆人次数据,需在服务端设计关系表r_lishi,表结构包括统计日期、时段及人次等字段,以避免对门禁数据库历史数据的二次查询。
(2)数据收割。数据源的获取方法分为3类:①入馆人次统计、读者分布概况、资源与服务状态及数据库服务器状态等相关数据,可用SQL语句查询门禁系统、相关库室管理系统及数据库用户表;②文件服务器及磁盘阵列存储系统采取FSO方法获取运行状态;③Web服务器则用Mashup技术模拟人工访问网页的方法抓取运行状态。
(3)页面显示。系统采用HTML5+CSS3+JQuery Mobile的技术框架来设计与组织网页的结构与内容,并以表格形式清晰地呈现所获取的数据,包括入馆人次统计、读者分布概况、资源与服务状态及服务器状态等。通过Session变量识别已登录用户权限的差异,分别显示读者版和馆员版的实时报告,如图3所示。
图3 手机图书馆实时报告系统页面显示效果图
图3中的字符“√”表示资源或服务状态正常,“X”表示状态异常或服务不可用,状态符号之后的数字分别表示入馆人次数、查新剩余任务数、图书种数或册数、Web访问量或在线人数等含义。例如,图3(1)中“资源与服务状态”栏“电子资源”项“状态”列的字符“+2-1”表示(电子资源)近期新增2项、目前1项不可用;图3(3)中“OPAC系统”项“状态”列的字符“362 19”表示(OPAC系统)当日IP访问量共计362、目前在线用户数为19。用户点击图3(1)中的“读者分布概况”栏“预约服务”列的“我要预约”链接,即可访问相关库室的预约系统,预约需要的座位;点击图3(1)中“资源与服务状态”栏“状态”列里的数字链接,即可获取相关资源与服务的详情。例如,点击链接“+2-1”将返回电子资源服务状态页面,如图3(2)所示;点击链接“+7”将访问目前查新任务数及查新站服务状态页面,点击链接“+136”将转向新书通报页面,显示近期新增的136种新书。
(1)FSO方法。图书馆服务器可分为数据库、备份、Web及磁盘阵列等类别,要求365天24小时不间断地对外开放,其中备份与磁盘阵列服务器的文件读写状态,可用FSO(File System Object,文件系统对象)方法进行监测。FSO方法可以创建、打开、删除或拷贝一个或多个文件。如用FSO的CreateTextFile方法在服务器D盘根目录下创建一个空白文本文件“test.txt”以监测服务器的文件写操作状态:
(2)Mashup技术。图书馆电子资源的远程网站与本地镜像、图书馆主页及OPAC、特色资源网等Web网站的服务状态,可用Mashup(糅合、融汇或混搭)网络爬虫技术对网站页面进行屏幕抓取(Screen Scraping),用浏览器对象XMLHTTP[4]的MSXML2.ServerXMLHTTP组件模拟HTTP的GET和POST请求来访问Web以获取其HTTPHeader(HTTP头信息),并以此判断网站的运行状态:
其中变量“Status”即网址“URL”所定位的网页HTTP Header中的状态值。当用户访问网站向服务器发出浏览请求时,服务器将返回HTTP状态码,状态码体现了Web服务器对浏览器请求的页面通信状态,通过解析返回的状态码可以评估服务的状况。状态码定义在HTTP规范中,共分为消息、成功、重定向、请求错误、服务器错误等5大类45小类[5],其中最常见的有如下3种,见表2。
表2 HTTP状态码列表(节选)
使用Mashup技术设计的定期自动刷新网页,还可以监控图书馆各类网站域名的DNS解析状态、页面的HTTP状态及服务器的运行状况等,在发生故障时第一时间返回并以SMS或E-Mail方法发送故障告警信息到馆员手机。收到告警信息后,管理者甚至可以直接使用手机远程控制电脑软件[6],马上对图书馆服务器进行远程维护。
(3)懒加载技术。与多种数据库、服务器交互而产生实时数据是种比较耗时的过程,页面被打开尤其表格的显示将成为系统响应速度的瓶颈,是影响用户体验和系统使用价值的重要因素。因此数据懒加载(Lazy Load,延迟加载)技术的应用对于数据查询与显示的优化尤为重要:
例1:
例1与例2中通常分别被放置于表格中和页面底部(表格后),这样处理的好处是显而易见的:数据库的查询与服务器的检测过程将不至于拖累整个网页的显示速度。
(1)主要问题。读者刷新1次页面可能导致高达50余次的异地数据库查询或远程服务器监测的系统进程,随着图书馆资产的增加,进程数亦将成倍剧增。这将极大地消耗有限的网络带宽与服务器资源,甚至导致网络拥塞或服务器SYN Flood攻击等问题的产生。如众多用户同时在线请求实时报告查询服务,将导致服务器并发数猛增,查询速度过慢,甚至引起系统的崩溃。服务器性能、网络访问速度和稳定性反过来也会左右用户的使用心理[7]。
(2)解决方法。①构建临时表存储近期查询数据,以供系统在一定周期内反复直接读取,减轻网络与服务器的负担。②优化SQL查询策略。比如“新增图书”册数的获取,需要执行SQL多表查询操作。假如充分利用图书ID等索引,并采用SUM()函数汇总新书种数及册数,则仅需执行SQL单表查询操作即可,从而成倍提升查询的速度。③模块化系统的组织结构,利用HTML5中的User Interaction(用户对话)API实现页面内容与用户的交互,允许用户进行深度的个性化定制,取消不关心的模块,仅执行需要的查询。④限制用户刷新频率。用户的恶意刷新将显著增加服务器性能的消耗,故系统应限制每名用户的页面刷新间隔时段不低于某一规定的数值,如10分钟。⑤最根本的解决途径为增加网络带宽与服务器的硬件投入,提升系统的查询性能。
实时报告系统依托原有的手机图书馆进行开发,完全基于Web运行,通过浏览手机网页来一键查询入馆人数、读者分布、服务状况等各类馆情,具备便携性、无线性、移动性、即时性等特征,方便快捷,部署简单,易于维护与操作,符合资源分析、系统建设与绩效评估的需求,有利于实现个性化知识服务,基本实现了预期的设计目标。
本文设计的实时报告系统与其他类似系统比较,均能监测图书馆的各类资源和服务的运行状态,并实现实时通报功能。前者的主要特征在于:
(1)基于手机图书馆。用户无需亲临特定场所才能了解馆情,仅需通过随身携带的手机即可获取各类资源与服务状况的实时报告。
(2)报告全面准确。系统并非单一针对电子资源服务的监控[8],而是全面监测读者在馆状况、资源与服务状态及服务器状态等各类馆情,并准确呈现。
(3)应用投入低。系统的初始构建及日常运营简单便捷,无需外购商业监控软件,设计与实现成本低廉,尤其适用于研发与运营经费紧张的中小图书馆。
(4)用户体验佳。系统使用HTML5、JQuery Mobile及Mashup等方法和技术,遵循最新的移动WEB设计标准规范,可为用户带来良好的使用体验。
为了测试和评估系统的应用效果,特别选取1天中的9时、15时、20时3个不同的时间点分别进行试验。服务端的测试环境为开发环境,客户端的测试环境为:图书馆局域网无线宽带+IPhone 4+IOS 7.04+UC浏览器9.3。试验结果取3次实验的平均值,其中入馆人次统计、读者分布概况、资源与服务状态等3项查询的平均耗时分别为0.05秒、0.31秒、2.25秒,读者版的实时报告系统页面完全打开平均耗时约2.62秒;数据库服务器、Web服务器及文件服务器运行状态检测的平均耗时分别为0.4秒、1.2秒、1.3秒,馆员版的实时报告系统页面完全打开平均耗时约2.91秒。系统响应时间在总体上尚处可接受的范围之内。自2014年2月惠州学院手机图书馆开始应用实时报告系统以来,运行稳定,用户反应良好,馆员实现了对资产、设备与服务的主动管理,取得了较为满意的应用效果。依据手机图书馆的Web访问日志可以观察系统的运行情况,部分内容见表3。
表3 2014年3-4月实时报告系统运行数据(节选)
分析表3得知,读者对手机图书馆实时报告系统有一定的应用需求与兴趣。系统被访问频次的增加有赖于进一步的宣传推广与读者使用习惯的培养。迄今为止,管理员已通过馆员版的实时报告系统发现5起服务器访问故障,即使在非正常工作时间内,维护人员也能获得实时的监控信息。问题被迅速发现有助于对故障进行有针对性的及时处理。
实时报告系统能使读者和馆员明确了解图书馆当前的具体情况,有利于图书馆根据管理的实际需要,对所有对外开放库室与资源进行不受时空限制的有效维护与管理,提高服务绩效,保障正常工作,有效缓解库室拥挤、资源与服务利用不均衡的现象,为读者提供更好的学习环境。系统的设计、实现、部署与应用,均基于手机图书馆与HTTP协议,因而具有较高的移动化、网络化与自动化水平,读者必须拥有一部能联网的智能宽屏手机,才能使用实时报告系统。如何进一步增强与完善系统功能,扩大实时报告的范畴与深度,提升系统的性能,是将来研究的重点。
[1] See,J.D. Latham,et al. Report on Real-Time Grid Analysis Pilots[J]. Industry Applications,IEEE Transactions on. 2012 (4):1170-1176.
[2] 梅良琨. 车站现车信息实时显示的设计与实现[J]. 上海铁道科技. 2009 (2):65-66.
[3] 华东交通大学图书馆[EB/OL]. [2014-05-05]. http://lib.ecjtu.jx.cn.
[4] XMLHTTP[EB/OL]. [2014-05-05]. http://baike.baidu.com/view/25390.htm.
[5] http//1.1:Status Code Definitions[EB/OL]. [2014-05-05]. http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html.
[6] 手机远程控制电脑软件[EB/OL]. [2014-05-05]. http://baike.baidu.com/view/9134457.htm.
[7] 黎邦群. 基于搜索引擎与用户体验优化的OPAC 研究[J]. 中国图书馆学报. 2013 (4):120-129.
[8] 彭晓庆. 高校图书馆电子资源服务监控系统设计与实现[J]. 现代图书情报技术. 2011 (4):82-88.