黎邦群
自20世纪90年代初引进SULCMIS(Shenzhen University Library Computer Management Integrated System,深圳大学图书馆计算机管理集成系统),惠州学院图书馆先后对其采访、检索、统计、流通、系统管理等模块进行了二次开发,较好地满足了日常工作中的个性化需求,并于2012年9月初步建成手机OPAC系统。作为首套由用户自主开发的基于SULCMIS的手机OPAC系统,在SULCMIS用户范围内产生了一定的影响。业内同行对系统的设计与实现方案、建设过程及应用效果颇感兴趣,已多人次联系笔者询问相关详情。同行交流、答疑解惑、提供参考成是本文的写作初衷,并求抛砖引玉,供同业指正。
目前,国外手机OPAC的应用较为广泛成熟,处在稳定发展期[1-3]。但国内手机OPAC的应用时间短、服务层次低,尚处起步阶段,发展潜力巨大。其应用方式主要分3类:(1)购买书生、方正、超星等资源出版商巨头推出的通用手机OPAC系统;(2)购买汇文等ILS(Integrated Library System,图书馆集成系统)的专用手机OPAC模块;(3)立足本馆,联系实际,二次开发,自主设计,如清华大学手机图书馆[4]、北京大学移动图书馆[5]、东南大学移动图书馆[6]。
手机已成网民第一大上网终端[7],图书馆用户的手机拥有量远超电脑。手机作为带着体温的媒体,和用户的生活粘性极高。在此背景下,用户的信息需求呈现出时效性、便捷性、移动性等特征,文献查找活动往往具有临时性、实时性、碎片性。随着手机应用的使用深度不断提升,用户也越来越要求不受时空限制地享受图书馆服务。调查结果表明[8]:书目检索、账户查询、预约续借等手机OPAC的常用功能最实用、最受用户欢迎、最能体现图书馆移动服务的便捷性,手机OPAC服务存在着强烈的用户需求。传统的服务模式已无法满足所有用户尤其是手机用户的需求,图书馆必须关注和重视手机终端的相关服务,满足用户“轻内容”的需求,以进行品牌宣传,挖掘潜在读者群并增加用户粘性,增加馆藏的利用率与价值,提升文献服务尤其是书目检索服务的水平、效果与用户体验。
根据无线接入技术的不同,手机OPAC的设计分为SMS(Short Message Service,短信息服务)、WAP(Wireless Application Protocol,无线应用协议)网站、App(Application Program,应用程序)、QR Code(Quick Response Code,二维码)、I-mode(Information-mode,信息模式)、J2ME(Java 2 Micro Edition,JAVA移动版)等方案。其中前3种方案为手机OPAC的主流设计方案,但前2种方案存在与生俱来的弱点[9],而App还可细分为如下2种技术设计方案:
(1)Native App。基于IOS、Android、Windows Phone等手机本地操作系统并使用Native(原生)程式编写运行的第三方应用程序,也叫本地App。采用Objective-C、JAVA 或C++等语言和框架开发,将程序上传至应用商店,需下载并安装使用。服务器通过多种协议为应用提供商业逻辑,通过API把商业逻辑暴露给客户端,所有的界面元素、数据内容、逻辑框架均安装在手机终端上。
(2)Web App。基于浏览器的系统和应用,采用简单的兼容WSGI的网络应用程序框架。针对不同的手机使用HTML5、CSS3、JQuery Mobile等客户端技术和ASP、PHP、JSP等服务端技术开发,在基于Webkit内核的移动文本浏览器中编写运行,服务器接收HTTP请求并返回响应,客户端仅需安装框架部分。
两者比较,均能通过设计应用实现手机OPAC,但在开发成本、升级体验及维护管理等方面存在显著差异,其中后者将是未来手机应用的发展方向[10],其优点是:(1)绕开了应用商店严格的提交和更新审查规则,实现简单并支持快速迭代;(2)用户无需下载、安装、升级;(3)可扩展性强,支持跨平台和跨设备开发;(4)用户的认知度更高[11]。因此笔者决定采用Web App的设计方案。
通过分析SULCMIS用户表①的结构及书目数据的特征,利用OLEDB方法连接SULCMIS,采用ASP(Active Server Page,动态服务器页面)、JQuery Mobile、HTML5及CSS3等技术和方法,设计馆藏索引库查询、查询结果分页、馆情详情查询、新书通报、热门图书、用户登录、借阅查询、账户操作、预约续借等Web程序,实现手机OPAC的馆藏查询与读者服务等基本功能,如图1所示。
采用的技术和方法还包括SQL查询、Power Designe数据分析等。设计的难点在于书目库用户表结构的了解、熟悉与分析,关键在于SQL语句的优化。
图1 技术思路图
2.1.1 数据结构分析
数据结构是数据在计算机中的表示方式。数据结构分析是系统建设实现过程中的重点和难点,包括表结构分析、表间关系分析及书目数据特征分析等,有利于设计者熟悉书目数据对象的特性与书目数据的组织方法,了解馆藏数据库的逻辑结构和物理存储结构,以确定高效率的数据分页、记录排序等检索策略与算法,编写适合手机应用的Web程序,这是成功建设实现手机OPAC的前提与基础。
(1)表结构分析。OPAC多依附于ILS,由供应商提供。自主设计与实现手机OPAC,须先充分了解并深入分析SULCMIS用户表,并不断测试与观察,结合日常管理与维护经验,熟悉核心部分与运作流程。用Central Java Edition打开SULCMIS,发现实际被使用的用户表超过100个,规模较大,但与手机OPAC密切关联的仅约10个。可用CASE工具集Power Designe分析核心的用户表:
①索引表B_Brief字段:CtrlNo(控制号)、F01x(ISBN/ISSN)、 F200(题 名/责 任 者)、F210c(出版社)、F210d(出版时间)、F215(随书附件)、F9988(入藏册数)。
②索书号表B_CallNo字段:CtrlNo(控制号)、CallNo(索书号)。
③馆藏数据表B_Detail字段:CtrlNo(控制号)、ID(Marc主字段)、SubId(Marc子字段标识符)、SubFld(Marc字段值)。
④典藏详情表B_Barcode字段:CtrlNo(控制 号)、LibId(典 藏 库 室 代 码)、Barcode(条 形码)、Volume(卷/期)、Price(定价)、Status(编目状态)。
⑤图书排行表C_Paihang字段:Phctrlno(控制号)、Cnt(流通频次)。
⑥读者账户表C_Patron字段:Id(读者Id)、CardNo(读 者 证 号)、PName(读 者 姓 名)、Ppasswd(账户密码)、Sex(读者性别)、Org(读者单位)、Rank(读者级别)、Status(账户状态)、Email(读者信箱)、Phone(手机号码)、Expire(失效日期)、CreaDate(办证日期)、pBalance(读者账户余款)。
⑦借阅记录表C_Loan字段:Id(读者Id)、DateLoan(借 阅 时 间)、DateDue(应 还 时 间)、CtrlNo(控制号)、Barcode(条形码)、DateRetu(实还时间)。
⑧预约信息表C_Resv字段:CtrlNo(控制号)、Id(读 者Id)、DateResv(预 约 时 间)、DateCome(归还时间)、DateHold(保留时间)。
⑨读者图像表C_photo字段:Photo(图像)、Id(读者Id)。
⑩读者单位表C_PatronOrg字段:Org(单位ID)、FullName(单位全称)。
还可能用到的用户表包括读者级别表C_Rank、随书附件表B_Supplement及馆藏图像表B_BookInfo等。SULCMIS用户表、字段、索引及触发器的命名一般采用英语单词及缩写或汉语拼音,简洁易懂,并遵循一定的规律。如以字符“B_”打头的表名表示表存储的是编目数据,“C_”打头的表示存储的是流通数据等。
(2)表间关系分析。为了保证书目数据的完整性、一致性,并方便多表查询,不同用户表中的数据之间可能存在某种关系,如一对一、一对多等关系,这些关系将各表中的每条数据记录通过连接不同的索引和唯一的主题相联系,使得对一条数据的操作均成为数据库的整体操作。一个Web App所采用的程序与SQL语句,往往需要关联数个不同用户表。SULCMIS用户表间通过主关键字和外部关键字体现关系,如编目数据表间多以聚族、唯一索引图书控制号(CtrlNo)关联,流通数据表间多以外键条形码(Barcode)或读者账户Id(Id)关联。
(3)书目数据特征分析。不同ILS所应用的底层数据库及系统结构可能千差万别,如国内主流的ILAS、汇文、Interlib及国外的Aleph500、Unicorn、Millennium 可能应用Oracle、DB2及ASE等数据库管理系统,甚至专门针对Marc特定设计的LDBMS。即使表结构、字段或数据类型大相径庭,但用户表存储的书目数据的结构大同小异,多与SULCMIS检索项字段的特征类同,见表1。
分析表1得知,书目数据蕴含实用性、准确性、通用性等标引原则,具有字符长度短小、数据标准规范、内容揭示深入及显示隐性知识等领域特征。书目数据的特征分析有助于判断用户的检索习惯与查询意图,设计轻量级的Web App,优化书目查询的SQL语句,提升手机OPAC的检索效率。
2.1.2 程序设计
(1)馆藏索引库查询。在用函数Request()正确接收客户端传递的检索词后,系统将对检索词的特征进行分析,以准确判断用户的查询意图。步骤如下:
表1 书目数据特征表(节选)
馆藏索引库的查询与表B_Brief及表B_CallNo关联。假如用户输入的检索词为“q”,并以空格键作为分隔符执行“逻辑与”检索,则关键的代码片段如下:
上述SQL语句中使用了Int()、Ubound()、Split()、Left()、Right()、Asc()、Isnumeric()、InStr()等函数对检索词进行分析与判断,以干预检索结果,并使结果更接近于用户的真实查询意图。系统对用户表的相关字段执行数据库查询,将查询结果呈现给用户,并实现检索词高亮显示等个性功能,如图2(a)所示。
图2 页面显示效果图
(2)查询结果分页与排序。分页是以页(较小数据子集)的形式返回并在客户端显示查询结果总集的过程,对于馆藏查询与结果显示不可避免,分页算法严重影响查询速度。根据时间效率、空间效率与网络带宽对检索性能的影响,目前主要存在全部缓存、分页返回及全部返回等3种常见的分页算法,见表2。
手机与PC相比,存在屏幕显示面积小、运算能力弱、存储容量小、网络速度慢及字符输入不便等特征,权衡服务端与客户端资源、网络带宽、ASE开销及查询速度等因素,“分页返回”算法较适用于馆藏查询。由于ASE 12.5不支持Limit、Rownum、Between等分页关键字②,只能通过程序控制分段获取数据。假如ADO 对象Recordset的名称被设置为“Rs”,则检索分页的详细步骤为:
表2 常见分页算法
①按照当前查询条件查询符合条件的纪录总数为“Rs.Record Count”;
②点击分页导航链接提交的当前记录的开始位置“Rs.Absolutepage”;
③根据设定的每页记录数目“Rs.Pagesize”计算页数“Rs.Pagecount”;
④使用ASP技术生成查询结果的分页导航链接;
⑤在取得查询结果时通过步骤②得到的记录开始位置。
手机OPAC常用的排序关键字包括表B_Brief字段CtrlNo(按编目时间排序)、F210d(按出版时间排序)及表B_CallNo字段CallNo(按索书号排序)等,其中以数据类型为“int”、索引类型为聚族、唯一的主键CtrlNo作为排序依据,效率最高。按主题或相关性进行排序,可提升找书效率与检索体验,但需另构主题词表或相关性词典,并以在一定程度上牺牲检索的性能作为代价。
(3)典藏详情查询。书目详情页面包含了各类CNMARC标引数据,如题名、责任者、出版发行、载体形态、附注、提要、主题、中图分类号等基本项数据及典藏信息,如图2(b)所示。其中查询基本项数据的SQL语句如下:
Set Row Count 999 Select CtrlNo, ID,SubId, SubFld From B_Detail Where Ctrl-No="&q&”
查询典藏信息的SQL语句如下:
Set Row Count 999 Select CtrlNo,LibId,Barcode,Status From B_Barcode Where Ctrl-No="&q&"Order By Volume,YearScope
(4)读者服务。手机OPAC读者服务模块的实现较为简单,因而并非行文重点,限于篇幅,不再详述,仅分析实现相关功能的部分SQL语句,见表3。
表3 读者服务功能实现SQL语句(节选)
观察SQL①-⑦可了解读者服务模块所关联的用户表。访问惠州学院手机图书馆[12]可浏览SQL的执行效果。如有必要,可进一步联系笔者共同探讨。
2.2.1 OLEDB方法
OLE DB属于一组数据读写的方法与一种应用程序接口,由数据提供者、数据使用者及服务组件等三个部分组成,连接ASE 12.5的操作步骤依次为:
(1)服务器端预装驱动程序,驱动程序包含在正版ASE的DVD安装盘中。
(2)通过Configuration Manager设置Data Sources,打开Gerneral选项,填写服务器名称或地址、数据库名称及服务器端口或名称管道地址等参数。
(3)建立ASP三大ADO对象之一的Connection对象以连接服务器:
Set Cn=New Adodb.Connection'建立Connection对象
Cn.Open"Provider=Sybase.ASEOLEDBProvider.2;Server Name=Sul;Server Port Ad dress=5000;Initial Catalog=SULCMIS;User ID=******;Password=******;"
OLEDB方法应用场景:所有需要连接ASE以执行SULCMIS查询的页面。
2.2.2 JQuery Mobile技术
JQuery Mobile作为轻量级的函式库,实现了网页的Ajax加载模式。仅需用触摸(Touch)事件绑定tap(轻击)、taphold(轻击不放)、sw ipe(滑动)、swipeleft(左划)及swiperight(右划)等方法,即可轻松响应手机OPAC的翻页、刷新、加载更多内容等触摸操作。如实现手机OPAC右划翻页的代码片段如下:
JQuery Mobile页面的框架模型通过标记“data-role”而形成容器或视图,以容纳不同的页面内容,明显减轻ASE服务器和手机浏览器的负担,如图3所示。
JQuery Mobile技术应用场景:所有需要执行客户端操作的Web页面。
2.2.3 HTML5技术
HTML5强化了网页的表现性能,包括语义、本地存储、设备兼容等许多新的重要特性,与HTML4相比,HTML5的页面更清晰、简洁,如图4所示。
图4 HTML4与HTML5页面布局对比
分析图4,不难得知HTML5更适用于手机的小屏幕装置。HTML5仅需如下的1行代码即可实现表单验证(email类型用于应含email地址的输入域):
HTML4至少需要10余行累赘的代码才能自动验证类似读者服务页面中有关email域的值。手机OPAC可以通过Geolocation API的getCurrentPosition方法来获取用户的地理位置,以开展基于位置的个性化图书推荐服务。
HTML5技术应用场景:手机OPAC系统客户端所有的Web页面。
设计者遭遇到的最大的麻烦为HTML5的局限性。目前主流的三大智能手机操作系统IOS、Android和Windows Phone虽已支持大部分的HTML5特性,但浏览器的总体市场依然零星,且兼容问题不断,面临诸多挑战。HTML5的时刻线显示其尚需数年才能最终定稿。HTML5需要的仅仅是时间。但显然设计者不能被动等待。一套没有经过不断优化而尽量完善的系统,就如一间没被装修过的毛坯房令人不舒适,手机OPAC亦应采取一定的优化策略,如实施科学合理的检索失败处理策略,进行准确鲜明的页内信息定位,检测浏览器类型以凭客户端环境而返回差异化的个性主页,按照屏幕分辨率匹配文字大小,允许访问者修改页面的外观、改变页面的内容,响应用户触屏的页面操作,为页面添加动态效果,建立良好的页面导航系统等。建设中出现的主要问题及解决方法见表4。
表4 手机OPAC优化思路
系统利用计算机网络与数据库技术与SULCMIS对接,并在手机终端上实现OPAC,实现了SULCMIS二次开发,基本达到了预期的设计目标,具有自主知识产权③。系统完全基于超文本传输协议(HTTP-Hypertext transfer protocol),图书馆无需新增任何额外的软硬件成本投入,应用部署简单,易于维护与操作;客户端无须下载安装App,仅需使用自带的Web浏览器即可使用所有功能。
本文设计的手机OPAC与其他类似系统比较,均能根据手机用户的检索需求而查询馆藏,并实现读者服务功能。前者的主要特征在于:
(1)基于SULCMIS。作为SULCMIS用户首次二次开发的手机应用,是业内新生事物,实现了手机OPAC的常见功能,且与SULCMIS及ASE无缝集成。
(2)技术先进。大量使用OLE DB、JQuery Mobile及HTML5等方法和技术,遵循最新的移动Web标准规范,可为用户带来良好的书目移动检索体验。
(3)设计理念超前。系统采用Web而非WAP协议。WAP推出的初衷是节省网络流量、适应低端功能手机的运算能力。但目前智能手机的硬件性能不断攀升,高速WLAN、3G、4G网络将遍布世界的每一个角落,因而基于GPRS的慢网速与功能机的低性能而设计的WAP协议,显然已无法适应未来的环境。
(4)应用投入低。系统的初始构建、部署及日常运营的简单便捷,使得图书馆无需花费经费外购同类系统。手机OPAC的设计、实现与应用的成本低廉,尤其适用于研发与运营经费紧张的中小高校图书馆SULCMIS用户。
为了评估系统的应用效果,特选取一定的场景进行模拟测试,从用户的角度获取尽量科学的接近真实的实验数据,并评价系统的统计结果与应用效果。
(1)测试环境。服务端环境:IBM eServer X365 8862+Windows Server 2003 Enterprise Edition+ASE 12.5+IIS 6.0+ASP 3.0。客户端环境:Iphone 5+IOS 7.03+Safari+图书馆局域网WIFI。
(2)试验结果。在SULCMIS用户并发数为20-30的环境中,选取3次任意词检索结果耗时的平均值为1.32秒,打开馆藏详情及读者服务等页面,无明显的数据延迟现象,Web浏览顺畅,实验数据基本令人满意,如图2(c)所示。
(3)应用效果。自手机OPAC网站正式上线以来,已应用1年多,系统运行稳定,检索性能优秀,效果良好,反响不错,取得了一些应用数据,见表5。
表5 统计时段为2012年9月-2013年11月手机OPAC应用效果(节选)
本文对手机OPAC的需求及技术思路、实现方案及应用效果进行了详尽的研究。系统的成功实现与有效应用,从理论上验证了SULCMIS用户开展移动服务的可行性,从实践上提供了手机OPAC的应用案例,为后续建设积累了宝贵的二次开发经验。本文的设计思路与实现方案,同样适用于非SULCMIS用户的手机OPAC的研究。但应看到,系统的设计与实现需要丰富的SULCMIS管理与维护经验,要求开发者非常熟悉ASE用户表,必须掌握HTML5、CSS3、JQuery Mobile等移动开发的方法或技术。系统仅仅是SULCMIS用户有限的基础的应用平台与服务模式,简单而实用,但与成熟的商用系统相比还存在特色功能上的差距,有待完善。信息服务、资源服务、知识服务等图书馆手机应用前景非常广泛。因此,对手机OPAC的进一步开发,还需要系统集成商对ILS进行不断的升级更新,开发出全面、开放、智慧的下一代ILS,以适应新技术的不断发展。
注释
①SULCMIS 底层关系型数据库管理系统为Adaptive Server Enterprise(ASE) 12.5,数据库名为SULCMIS。
②ASE最新的版本(15.7) 已支持相关的分页关键字。
③已向国家知识产权局成功申请了计算机软件著作权(软著登字第0642592 号)。
[1] Grabowsky A,Wright M. Connecting with health science students and faculty to facilitate the design of a mobile library website[J]. Med Ref Serv Q. 2013,32(2):151-162.
[2] Thuna M. Building Mobile Library Applications(THE TECH Set #12),by Jason A. Clark[J]. Med Ref Serv Q. 2013 (2):232-233.
[3] Wiebrands,M. Building Mobile Library Applications[J]. Australian Academic & Research Libraries. 2012(3):254 .
[4] 王茜,张成昱. 清华大学手机图书馆用户体验调研及可用性设计[J]. 图书情报工作. 2013 (4):25-31.
[5] 聂华,朱本军. 北京大学图书馆移动服务的探索与实践[J]. 图书情报工作. 2013 (4):16-20.
[6] 罗涛,朱莹. 基于WAP 的移动图书馆的研究与实现———以东南大学图书馆为例[J]. 图书馆杂志. 2013(8):66-71.
[7] 手机成为新增网民第一来源[EB/OL]. [2013-11 -11].http://bjyouth.ynet.com/3.1/1307/18/8145987. html.
[8] 周怡,张敏,李莹. 复旦大学移动图书馆用户需求及体验的调查与分析[J]. 上海高校图书情报工作研究. 2012 (2):28-34.
[9] 刘炜. 移动图书馆拟成为信息中介[J]. 中国网络教育. 2011 (4):17-18.
[10] 手机Web App 是未来的发展方向[EB/OL]. [2013-11-11]. http://blog.admarket.mobi/1086.html.
[11] 刘亚,蹇瑞卿. 大学生手机阅读行为的调查分析[J].图书馆论坛. 2013 (3):97-101.
[12] 惠州学院手机图书馆[EB/OL]. [2013-11-11]. http://m.hzu.edu.cn.