顾 勇,居鑫磊
(常州工学院 图书馆,江苏 常州 213022)
随着计算机技术及多媒体技术的发展,图书配备随书光盘的比例也越来越高.常州工学院图书馆现有馆藏图书中,2000与2001年出版的图书共有19004种,配盘图书为515种,配盘率约为2.7%;2010与2011年出版的图书共有12710种,配盘图书为1439种,配盘率约为11.3%,约为十年前配盘率的4.2倍.此外,单张随书光盘的数据存储量也有了很大的提高,2005年之前,大部分随书光盘的数据量在500MB以下,而目前很多随书光盘的数据量已经达到4GB.常州工学院图书馆目前已有随书光盘近万种,总容量在7TB左右,而将来随书光盘的数量和容量还会以更快的速度增长.如何高效的管理和利用好数量、容量如此之大的随书光盘,更好地服务读者,给我们带来了新的挑战.
目前,大部分高校图书馆均采用网络化的管理模式来应对挑战,也相继出现了一些随书光盘管理模式研究及管理系统研究的相关文献报道.易正强等人开发了一个基于.Net平台的具有检索与下载功能的随书光盘下载系统[1];沈静萍提出了一种具有通用性和可推展性的能够与图书馆管理系统整合的随书光盘管理系统,并进行了设计与实现[2];丁萍开发并实现了基于ASP语言与SQLServer的随书光盘管理系统[3].以上文献中所阐述的系统虽然在一定程度上解决了当前随书光盘的管理问题,但系统在易用性、高效性、便捷性等方面还有所欠缺.
本文结合常州工学院图书馆实际情况,研究并制定了一种按需加工及协同服务的网络化随书光盘管理模式,在对已有随书光盘管理系统广泛调研的基础上,基于PHP语言及MySQL数据库开发并实现了一个管理便捷、服务高效、工作稳定的随书光盘管理系统.
本系统运行于Windows Server2003操作系统,采用Apache作为Web服务器,使用PHP语言开发,数据库选用MySQL数据库,Apache、PHP、MySQL是一个完全免费且性能优越的Web服务器应用开发组合,目前已经成为绝大多数中小型内容管理系统的应用解决方案,在千万级数据的应用中运行稳定、速度较快,完全能够满足随书光盘管理的应用需要.
由于近几年随书光盘的数量增速较快且容量较大,如果对所有新进图书的随书光盘进行加工,一方面会占用较大的存储空间,另一方面对于工作人员来说也是一个非常巨大的工作量.而随书光盘的内容质量参差不齐,很多光盘对于读者来说价值不大,所以,本馆采用按需加工的方式提供随书光盘的网络服务.
随书光盘服务采用分工协同服务方式,协同服务包括三个服务角色,光盘管理员、光盘加工员、光盘发布员,所有新进随书光盘由流通部的光盘管理员进行统一管理,当有读者预约光盘后,流通部负责查找随书光盘,并将光盘交给电子阅览室的光盘加工员进行压制与上传,最后由技术服务部的光盘发布员进行网络审核与发布.协同服务方式有利于充分发挥图书馆各部门的优势,相互促进,共同提高随书光盘的服务效率和服务质量.
随书光盘系统的设计一方面要考虑工作人员的操作便捷性,减少手工输入,提高工作人员的工作效率,另一方面要考虑用户的体验性,为读者准确、快速地找到所需资源提供条件.根据本馆随书光盘管理模式,系统总体结构如图1所示.
图1 系统总体结构图
图1的总体结构包括四个层次,由下而上依次为数据层、逻辑层、应用层和用户层.
数据层包括两种数据,一种是光盘ISO数据,也就是用户所需要的资源,光盘ISO数据通过逻辑层的FTP函数上传到指定目录,通过IIS发布,供读者下载;另一种数据为MySQL数据库,数据库中存放光盘著录信息、用户信息、分类信息等数据,通过逻辑层中的MySQL库函数实现数据的增加、修改、删除、移动等操作.
应用层包括四类用户功能:光盘管理员功能、光盘加工员功能、光盘发布员功能及读者功能.
光盘管理员功能包括新光盘入库、反馈光盘查找情况等功能,光盘入库通过汇文OPAC系统直接获得MARC信息,光盘查找情况包括找到光盘和光盘丢失两种情况.光盘加工员功能包括光盘FTP上传、反馈光盘加工情况等功能,光盘加工情况包括已上传、光盘已损坏两种情况.光盘发布员为系统超级管理员,具有光盘的审核发布、光盘剔旧、分类管理、用户管理、问题回复等功能.光盘剔旧是通过统计光盘的点击下载次数以及最后下载日期,对一些老旧光盘、无价值光盘进行删除,从而节约存储空间;分类管理主要是对光盘分类的增加、修改或删除,系统包括两套分类体系:中图法分类及时间分类;用户管理包括添加、删除用户、权限分配等;问题回复主要是对读者建议及读者反馈的光盘问题的回复.读者在系统中作为最主要的角色存在,系统通过IP地址来限制读者的权限,在授权IP地址范围内,读者可以进行读者建议、光盘预约、光盘检索、光盘下载(按需下载)、问题反馈等操作,为了让读者快速的掌握系统的使用方法,在读者功能中增加系统帮助,读者可以通过系统帮助高效、正确地获取光盘资源,系统帮助包括文本帮助及在线人工咨询.
为了让工作人员及读者深刻、直观地了解系统,应用层中除了四类用户功能之外,还增加了信息统计模块,包括对光盘总量、光盘动态、下载动态、热门光盘等信息的统计.
随书光盘系统的软件主要流程是以“光盘检索”开始,以“光盘丢失”、“光盘损坏”或者“下载光盘”结束的一个过程.软件主要流程图如图2所示.
图2 软件主要流程
图2的软件主要流程包括两个部分,区域1是读者从检索到下载的一个过程,如果检索到的光盘未发布,则转入区域2的随书光盘加工过程.
随书光盘管理系统数据库采用MySQL数据库,包括若干个数据表,如系统配置数据表、用户数据表、随书光盘数据表、信息反馈数据表、中图分类数据表、时间分类数据表等.随书光盘数据表用来描述光盘的信息,包含多个字段,主要字段列表如表1所示.
表1 随书光盘数据表主要字段
表1中列出了随书光盘数据表的部分主要字段,aid为系统字段,系统会自动为每一个光盘分配一个唯一的 aid;title、marc_no、isbn、isbn_cd、author、fname、hits、content字段由汇文 OPAC系统获得;下载统计信息字段主要是为光盘剔旧提供依据,其中down_name为光盘下载名称;state包括已入库、已预约、找到光盘、已上传、已发布、光盘丢失、光盘损坏等状态.
目前,大多数随书光盘管理系统都包含光盘检索、光盘预约、光盘下载等功能,如基于ASP和Web数据库技术的随书光盘网络检索系统[4]、基于WEB的图书馆随书光盘发布系统[5]等,但大部分系统在功能设计上不够细致、深入,没有把效率和体验性放在首位.本系统在功能设计上,充分考虑用户的使用感受,并通过新技术的应用解决现存问题,主要表现在读者预约、光盘检索、按需下载、短信提醒等功能上,同时在资源的安全性方面也作了考虑,如光盘安全保护功能.
3.3.1 读者预约功能
本馆的随书光盘服务模式中,服务以读者发起光盘预约开始,为了给读者预约提供方便,系统提供了两种预约途径,可从汇文OPAC系统或随书光盘管理系统预约.
汇文OPAC系统预约通过对汇文OPAC系统二次开发实现,汇文OPAC系统采用的开发语言与本系统相同,可以与本系统实现很好的对接.在书目信息页面的右侧开辟一个随书光盘栏目,栏目内容可能包括以下六种情况:本书无随书光盘、光盘预约、等待加工、光盘下载地址、本书随书光盘损坏、本书随书光盘丢失,在汇文OPAC系统里对随书光盘系统数据库进行查询操作,根据书目的marc号查询对应的光盘状态,如果查询结果为零,则表示本书无随书光盘,查询结果不为零则根据查询到的state字段显示相应的状态.汇文OPAC系统的二次开发主要对item.htm和___tpl_opac_item_htm.php进行修改,部分代码如下:
mysql_connect($mysql_host,$mysql_user,$mysql_password)ordie(mysql_error());//连接数据库
mysql_select_db($mysql_database)ordie(mysql_error());//设置活动的数据库
mysql_query("setnames'gbk'");//设定字符集
$sql="SELECT*FROM`cddown`.`cd_download_list`where`cd_download_list`.`marc_no`='$marc'";//根据marc_no查询光盘信息
$result=mysql_query($sql)ordie($sql.mysql_error());//发送查询并返回结果
随书光盘系统中的预约,在检索结果页面中实现.用户首先对所需要的光盘进行检索,如果该光盘状态为已入库状态,检索结果列表中,则会在状态属性下显示“预约光盘”字样,点击即可实现光盘预约.
光盘预约其实是一个表单提交过程,主要提交光盘的marc_no,如果读者填写了Email或者手机号码,也会提交这些内容,光盘发布后会发送邮件或者发送短信提醒读者下载光盘.
3.3.2 光盘检索功能
强大的检索功能可以让读者准确、快速的找到自己想要的光盘.本系统的检索条件包括“中图分类”、“发布时间”、“检索关键词”三项,其中检索词既可以通过MySQL数据库对题名、作者、ISBN、附注摘要等字段进行检索,也可以通过Sphinx全文检索引擎进行全文检索.为了让读者更加准确的找到想要的资源,系统增加了对光盘目录文字的检索,大部分光盘的目录文字比较多,如果采用MySQL数据库进行检索,往往性能很低,响应速度较慢,所以本系统植入Sphinx全文检索引擎来解决这一问题,可以在毫秒级的时间内将结果反馈给用户.检索功能的部分代码如下:
if($type=='title')//如果按题名检索
{$SQL.="ANDBINARYA.titleLIKE'%$keyword%'";}//设置MySQL检索条件
elseif($type=='alltext')//如果为全文检索
{require_once(ROOT_PATH."inc/sphinxapi.php");//SphinxAPI函数
$cl=newSphinxClient();//建立一个新的检索
$mode=SPH_MATCH_ALL;//设定匹配所有查询词
$host="127.0.0.1";//全文检索地址
$port=9312;//指定全文检索端口
$index="main,delta";//指定索引文件,包括主索引和增量索引
…}…
$query=$db->query("SELECT{$_moduleSqlSearch}B.*,A.*FROM {$pre}article$erpALEFTJOIN{$pre}replyBONA.aid=B.aid$_moduleSqlWHERE$SQL$_SQL LIMIT$min,$rows");//MySQL查询语句
3.3.3 光盘按需下载功能
光盘加工员上传光盘前,会将光盘压制成ISO格式,读者下载时一般只能下载整个光盘ISO文件,目前部分随书光盘的数据量已经达到4GB,读者如果按1MB/s的速度下载光盘,将需要花费1个多小时的时间,而读者可能仅仅只需要这4GB中某一个4MB大小的文件,所以为了避免不必要的时间和带宽损失,在系统中增加了光盘按需下载功能,读者可以根据需要下载光盘中的任一内容.
按需下载功能主要通过虚拟光驱来实现,安装虚拟光驱DaemonTools到服务器C盘根目录,运行虚拟光驱,虚拟光驱最多可同时打开4个光盘ISO文件.当读者下载光盘ISO中的部分文件时,系统会通过PHP代码调用命令:
system("C:DAEMONDTLite.exe-mount0,".$cd_path);
通过此命令将光盘ISO文件加载到虚拟光驱中,然后将读者需要的文件拷贝到临时下载目录,拷贝完成后立刻通过“C:DAEMONDTLite.exe-unmount0”命令卸载虚拟光盘,以便空出资源为更多的读者提供按需下载服务.
3.3.4 实时短信提醒功能
为了减少协同服务中各任务之间的时间间隔,系统增加了实时短信提醒功能,当软件流程中的上一个任务完成后会发送短信告知下一个任务的执行者,如读者预约了光盘后,会在每天上午8点短信通知光盘管理员;光盘发布后,会根据读者需要短信通知读者.在每一个任务交接过程中增加短信提醒,缩短了整个随书光盘的服务周期,从而提高了服务质量.
3.3.5 光盘安全保护功能
光盘压制成ISO格式后,为了便于管理,统一采用光盘的ISBN号进行命名.光盘的下载是通过HTTP下载,如果以ISBN号命名的光盘ISO文件存放在服务器中,可能会带来恶意下载、资源盗链等安全隐患,所以本系统在光盘FTP上传过程中,对光盘的名称进行编码,通过改变文件存储名称来实现光盘资源的保护,编码函数如下:
$tempname="{$uid}_".date("YmdHms_",time()).base64_encode(urlencode($oldname)).$filetype;
由编码函数可以看出,新的文件名由3部分组成,$uid是指上传用户的账户ID,date("YmdHms_",time())是上传的时间,base64_encode(urlencode($oldname))是对文件名进行URL编码后,再使用MIMEbase64进行编码.文件名为“9787115232076”的光盘ISO文件,在系统中的存储名称实际为“1_20120625140625_OTc4NzExNTIzMjA3Ng==”.
在MySQL数据库中存储光盘ISO的真实文件名,下载时系统将会采用光盘ISO文件的真实名称.
随书光盘管理系统于2011年7月份开始在本馆试用,目前系统已有随书光盘4799种,随书光盘管理系统主页面如图3所示.
图3 随书光盘管理系统主界面
在对系统近一年的测试使用中,系统运行稳定,服务从未中断,响应速度良好.对系统使用前后的下载次数、光盘剔旧、工作耗时三个方面进行对比,对比数据如表2所示.
表2 系统使用前后对比
本文所阐述的随书光盘管理系统,是根据本馆实际情况而开发的一个集预约、加工、发布、检索、下载、管理等功能于一体的随书光盘系统,系统在一定程度上提高了工作人员的工作效率,加快了读者获取资源的速度,提高了图书馆资源的自动化管理水平.下一步的工作是在随书光盘系统中增加馆际共享模块,实现随书光盘的合作管理与利用[6].
〔1〕易正强,周群,廖思周,等.图书馆附书光盘下载系统的设计和实现[J].现代图书情报技术,2008(4):71-74.
〔2〕沈静萍.一种与图书管理系统整合的随书光盘管理系统[J].图书馆工作与研究,2009(8):38-41.
〔3〕丁萍.高校图书馆随书光盘管理系统的设计与实现 [J].青海师范大学学报(自然科学版),2010,26(2):103-106.
〔4〕吴菁.随书光盘网络检索系统的设计与实现[J].现代图书情报技术,2004(4):69-71,89.
〔5〕许文丹,刘文哲,冯现永,等.基于 WEB 的图书馆随书光盘发布系统的设计与实现[J].价值工程,2010,29(22):133-134.
〔6〕赵志强,姜海,张雁,等.随书光盘的合作管理与利用[J].大学图书馆学报,2010,28(4):68-71.