图书馆电子资源可否浏览及下载监测程序设计
朱玉强
山东师范大学图书馆 济南 250014
摘要

针对复杂网络环境下图书馆电子资源突发不能浏览或下载的问题,采用操作网页文档对象等方式设计并实现模拟真人操作的电子资源自动检测、反馈程序,用以监测服务器各电子资源可否正常提供服务以及终端用户可否浏览并下载各电子资源,以便管理员及时维护,保障、提高电子资源利用率。

关键词: 电子资源; 电子资源可获取性; 监测程序
Design of Monitoring Program to Detect the Browsable and Downloadable Status of Library’s Electronic Resources
Zhu Yuqiang
Shandong Normal University Library, Ji’nan 250014, China
Abstract

According to the problem that in complex network environments, electronic resources of library sometimes fail to be browsed or downloaded, this paper demonstrates a program, by means of operating webpage document objects and so on, to automatically examine and feedback the availability of electronic resources. This program can monitor the status of Web server and check whether the end users can browse or download the resources, and thus the administrator can maintain the server in time to improve the utility of resources.

Keyword: Electronic resources; Availability of electronic resources; Monitoring program
引 言

电子资源因其易检索、易获取等优点已成为教学、科研工作者及学生读者不可或缺的重要文献来源之一。受操作系统、网络环境、第三方软件等影响,终端用户偶尔不能浏览或下载图书馆电子资源,因此及时、主动捕获电子资源应用故障,可督促电子资源管理员有的放矢地对服务器或中间环节进行维护,保障电子资源服务质量,提高利用率。传统检测网络资源可否浏览或下载多使用各种网络传输协议围绕服务器端展开,对网络传输中间环节及终端用户网络状况、使用环境等关注较少。本文模拟真人操作习惯及方法,从自动登录电子资源入手,完整模拟浏览、下载操作全过程,分析被监测电子资源可否浏览及下载并反馈至管理员邮箱,检测结果更加真实客观。

2 需求及技术思路

电子资源可否被终端用户浏览或下载,应综合考察服务器、网络传输及最终用户三个方面,常见影响因素如表1所示:

表1 常见影响终端用户浏览或下载电子资源的因素

监控电子资源可否被用户浏览及下载,归根结底为对网络服务整体质量进行监控。国外商业化网络服务监控软件有Simple Server Monitor[ 1]、McAfee Secure[ 2]、PA Server Monitor[ 3]、Uptime Software[ 4]、Dotcom-Monitor[ 5]等,国内相对成熟软件有聚生网管[ 6]、SUM服务器监控软件[ 7]等,主要对服务器端运转是否正常实施监控。实践方面,彭晓庆[ 8]使用简单网络管理协议(Simple Network Management Protocol, SNMP)及Java EE技术监控电子资源服务器,必要时自动重启服务器,解除因服务器假死造成的终端用户不能访问网络从而无法使用电子资源的问题;唐琼等[ 9]采用调查问卷对两种数据库可否浏览及下载以及服务质量进行评价;与监控电子资源服务器运转状况类似,温晓明[ 10]使用Python编制软件,通过模拟人机交互等操作对山东大学图书馆OPAC运行状况进行监控;Posey[ 11]介绍了GFI Network Server Monitor自动监控服务器故障的工作原理及架设方案。理论方面,胡晓艳等[ 12]提出基于应用区分的精细化网络服务质量评估方案,在计算各测量周期内个体服务质量(Quality of Service, QoS)达成度及满意度基础上使用辛普森法则得到大尺度下QoS达成度、满意度等;陈晓明等[ 13]在传输层、网络层服务质量指标基础上,利用D-S证据理论建立了基于多层联合的网络服务质量评估模型及方法。

以上软件及文献大多围绕服务器端、基于各种网络传输协议开展工作,对网络传输、最终用户考察较少。与其排查在各个环节有可能造成用户无法浏览及下载的因素,不如直接核实终端用户可否得到正确结果,所以本文不考虑纷繁复杂的网络传输协议,完全模拟终端用户浏览或下载电子资源的真实操作,核心思路为:调用Windows API获取工作用IE控件网页文档对象,读、写该对象文本属性或数值属性值并调用对象型方法[ 14],通过自动填写并提交网页表单模拟真人登录电子资源,通过自动点击网页链接浏览电子资源,通过自动点击网页按钮、向Windows标准控件发送消息等方式下载电子资源,并将程序操作结果与事先人工操作所得参照结果进行对比,判断电子资源可否浏览及下载,工作流程如图1所示:

图1 程序工作流程

3 关键方法与技术
3.1 获取IE控件网页文档对象

程序内置IE控件,所有模拟真人操作均基于此控件,获取网页文档对象算法描述如下:

输入:含IE控件顶级窗口句柄。

输出:网页文档对象。

(1)列举含IE控件顶级窗口各子句柄,获取其中ClassName为Internet Explorer_Server的子句柄。

(2)操作Internet Explorer_Server(IES)子句柄,获取网页文档对象。在易语言中,核心代码为:

注册消息返回值 = RegisterWindowMessageA (“WM_HTML_GETOBJECT”).

SendMessageTimeout (取得的IES句柄, 注册消息返回值, 0, 0, 2, 1000, 资源编号)

ObjectFromLresult (资源编号, { 32, 197, 111, 98, 30, 164, 207, 17, 167, 49, 0, 160, 201, 8, 38, 55 }, 0, 参考型网页文档对象变量)

3.2 模拟真人自动浏览电子资源

用户浏览某电子资源时,往往先打开资源首页,点击学科分类或期刊名字母分类等,最终打开某具体文献摘要页面。程序模拟真人操作前,先选定某条具体数据,标记浏览该数据由开始到最终展示其摘要信息共几张网页,之后调用IE控件,模拟点击带特征字的超级链接,逐一跳转标记的网页,如各级网页均可正常打开,且每张网页打开后其源码都含表征跳转正确的关键字,则初步认为该被检电子资源可供正常浏览,反之记录各出错步骤,供管理员后续分析。对比人工打开及程序调用IE控件自动打开的摘要页,如两页面相等,则认定被检电子资源可供正常浏览。这一过程核心技术包括:模拟点击指定标题超级链接;判断IE控件打开网页后是否跳转完成。技术路线如图2所示:

图2 判断资源可否浏览技术路线

某些电子资源在系统无相关Cookie、初次访问时要求填写用户名、密码并登录,可使用“附加数据Http(s)访问”方式完成此操作,但该方式相对复杂,尤其对于使用HTTPS协议的网页,抓包分析并获取“附加数据”非常繁琐,且由此得到的“附加数据”短期内有失效的可能,而网页元素(如Name、TagName、ID等)相对固定,即使变化也可以在不重新编译软件的前提下,通过读取服务器XML配置的方式及时更新,故对需要登录方可使用的电子资源,本文采用自动填写网页表单、模拟点击提交按钮的方式实现。这一过程核心技术包括:自动填写网页表单;模拟点击指定标题网页按钮。技术路线如图3所示:

图3 自动登录电子资源技术路线

(1)模拟点击指定标题超级链接

核心算法:超级链接对象.方法 (“click”, )。取超级链接对象的算法为:

①操作在IE控件中打开的网页,取TagName中带有“a”标记的网页元素集。核心代码为:对象集合 = IE控件网页文档对象.对象型方法 (“getElementsByTagName”, “a”)。

②在取回的对象集合中,使用对象型方法“getElementsByName”筛选与指定标题相匹配的超级链接对象。

(2)判断IE控件打开网页后是否跳转完成

与真人操作相同,网页每次跳转,需等其完全就绪方可自动进行下一操作。传统方法以IE控件是否仍产生比特流、IE控件“ReadyState”值是否为4等判断网页就绪与否,对使用了Frame及JavaScript多次跳转技术的网页判断不准。本文因目标网页源码可预期,采用“特定文本是否出现”的方法进行判断。如某网页跳转就绪后有“山东师范大学图书馆包库用户”字样,则周期性取IE控件网页源码,如源码含上述特征字则判定网页就绪;反之表明网页尚在跳转、等待超时或跳转失败等。

(3)自动填写网页表单

核心算法:文本框对象.写属性 (“value”, 待填内容)。取文本框对象算法与(1)类似,此不赘述。

(4)模拟点击指定标题网页按钮

核心算法:按钮对象.方法 (“click”, )。取按钮对象算法与(1)类似,但网页按钮的“TagType”有“Submit”、“Button”、“Reset”及“Image”等多种,在枚举、筛选时应注意区分。

3.3 模拟真人自动下载电子资源

通过自动点击网页链接及按钮等操作,调出“文件另存为”对话框并自动保存文献。比较由此所得文献与事先手动下载同一篇文献的MD5值[ 15],如相等,则认为被检电子资源可供正常下载,否则记录错误以供后续分析。自动点击网页链接或按钮等操作算法与3.2节所述类似,以元素名称、ID取对象时,分别使用对象型方法“getElementsByName”、“getElementById”;调出“文件另存为”对话框后,可使用Windows API(FindWindow、FindWindowEx、EnumWindows、EnumChildWindows等)取保存框顶级及相关子窗口句柄,再通过发送消息(PostMessage)方法自动点击保存按钮。

3.4 自动发送检测结果至管理员邮箱

软件内置支持POP3/SMTP协议的邮件账号,通过SMTP协议发送纯文本或附件至电子资源管理员邮箱。

4 应用效果评估

程序在Windows Server 2003(SP2)、SQL Server 2000(SP4)等服务器实际环境中7×24小时运行,设置每隔30分钟自动检测包括中国知网、读秀、ProQuest Biology等在内的13种电子资源的可用性。程序运行期间未发生崩溃,返回邮件329封,邮件发送成功率97.92%。数据显示,资源被测试时段,有4 011次可正常浏览,23次不可浏览,243次因网页响应超时未能判断,不确定比例为5.68%;有4 009次可下载,27次不可下载,241次无法判断,不确定比例为5.70%。另将本程序分发给有测试意愿的终端用户运行,自2013年1月17日至7月16日,收回自动产生的反馈邮件927封,无法判定可否浏览及下载的比例分别为6.14%和7.38%。以上数据与电子资源利用规律相符,调阅笔者负责的QQ咨询、CALIS虚拟参考咨询及图书馆官方博客咨询记录,邮件反馈中电子资源不可浏览或下载时段与咨询记录时段相吻合。

本程序图形界面如图4所示,用户可根据个人意愿选择是否同时发送电脑体检报告,该报告可供管理员分析、排除第三方软件对电子资源使用可能造成的影响。

图4 采集完成提示用户发送信息界面

图5所示,除发送纯文本邮件,软件还将检测结果自动生成XLS格式文件,方便后续数据合并、排序及方差分析。

图5 发送至管理员邮箱的检测报告

5 结 语

本文模拟真人操作,设计并实现了自动检测、自动反馈电子资源可用性的程序,该程序可后台运行,最终用户仅需掌握计算机基础技能即可配合管理员主动、及时反馈电子资源故障并通过程序自动提供可能的故障原因,管理员可省却上门测试、远程调试、对用户进行基础操作培训等环节,对服务器或中间环节进行及时维护。目前该程序使用多进程工作,存在内存占用高、采集信息耗时较长、对最终用户网络环境适应能力较差等问题,有待进一步优化。

参考文献
[1] Simple Server Monitor - Server Monitoring Software[EB/OL]. [2013-08-01]. http://simpleservermonitor.com/index.html. [本文引用:1]
[2] McAfee. Secure Transactions | PCI Compliance | McAfee Secure for Websites[EB/OL]. [2013-08-01]. http://www.mcafeesecure.com/us/technology/mcafee_secure_technology.jsp?tab=1. [本文引用:1]
[3] PowerAdmin. com. PA Server Monitor - Server Monitoring Made Easy[EB/OL]. [2013-08-01]. http://www.poweradmin.com/servermonitor/. [本文引用:1]
[4] Uptimesoftware. com. Server Monitors, Network Monitors and Application Monitors – Uptime Software[EB/OL]. [2013-08-01]. http://www.uptimesoftware.com/server-monitor.php. [本文引用:1]
[5] Dotcom-Monitor Inc. Web Monitoring Service | External Website Monitoring | Dotcom-Monitor[EB/OL]. [2013-08-01]. http://www.dotcom-monitor.com/. [本文引用:1]
[6] 大势至(北京)软件工程有限公司. 聚生网管官网-免费网管软件下载[EB/OL]. [2013-08-01]. http://www.grabsun.com/. (DaShiZhi(Beijing) Software Company Ltd. Official Website for JuSheng Network Management[EB/OL]. [2013-08-01]. http://www.grabsun.com/. ) [本文引用:1]
[7] 上海哲涛网络. 服务器监控软件[EB/OL]. [2013-08-01]. http://www.zhetao.com/index.oms. (ShangHai Zhetao Network. Software for Server Monitoring[EB/OL]. [2013-08-01]. http://www.zhetao.com/index.oms. ) [本文引用:1]
[8] 彭晓庆. 高校图书馆电子资源服务监控系统设计与实现[J]. 现代图书情报技术, 20114): 82-88. (Peng Xiaoqing. Design and Realization of the Library Electronic Resources Service Monitoring System[J]. New Technology of Library and Information Service, 20114): 82-88. ) [本文引用:1] [CJCR: 1.073]
[9] 唐琼, 张新鹤. 基于可用性的电子资源质量评价指标体系研究[J]. 图书馆理论与实践, 20075): 7-10. (Tang Qiong, Zhang Xinhe. A Study of Electronic Resources Quality Evaluation Index Systems Based on Usability[J]. Library Theory and Practice, 20075): 7-10. ) [本文引用:1] [CJCR: 1.045]
[10] 温晓明. 基于Python 的电子资源可用性检测方案[J]. 中华医学图书情报杂志, 2013, 221): 68-71. (Wen Xiaoming. Python-based Detection Plan for Accessible Electronic Resources[J]. Chinese Journal of Medical Library and Information Science, 2013, 221): 68-71. ) [本文引用:1] [CJCR: 0.8253]
[11] Posey B. GFI Network Security and PCI Compliance Power Tools[M]. Elsevier, 2008. [本文引用:1]
[12] 胡晓艳, 龚俭. 基于应用区分的精细化网络服务质量评估[J]. 解放军理工大学学报: 自然科学版, 2011, 121): 37-41. (Hu Xiaoyan, Gong Jian. Refined QoS Assessment Based on Application Differentiation[J]. Journal of PLA University of Science and Technology: Natural Science Edition, 2011, 121): 37-41. ) [本文引用:1] [CJCR: 0.3254]
[13] 陈晓明, 王慧强, 吕宏武, 等. 基于多层联合的未来网络服务质量评估方法[J]. 电信科学, 201211): 52-59. (Chen Xiaoming, Wang Huiqiang, Lv Hongwu, et al. Evaluation Method for Future Network Quality of Service Based on Multi-layer Federation[J]. Telecommunications Science, 201211): 52-59. ) [本文引用:1] [CJCR: 0.9304]
[14] 易语言网页应用专题 [EB/OL]. (2008-04-16). [2013-07-17]. http://bbs.eyuyan.com/read.php?tid=153530. (Topic on Application of Webpages[EB/OL]. (2008-04-16). [2013-07-17]. http://bbs.eyuyan.com/read.php?tid=153530. ) [本文引用:1]
[15] 张裔智, 赵毅, 汤小斌. MD5算法研究[J]. 计算机科学, 2008, 357): 295-297. (Zhang Yizhi, Zhao Yi, Tang Xiaobin. MD5 Algorithm[J]. Computer Science, 2008, 357): 295-297. ) [本文引用:1] [CJCR: 0.61]