随着数字图书馆的发展,用户对文献资源的利用方式逐渐转向在线形式。据教育部图工委统计,国内高校2012年馆均电子文献采购经费180万元,是2007年的2.2倍。在电子文献资源的使用大幅增加的情况下,如何获取数字图书馆用户信息行为的相关信息,以便为数字图书馆信息平台建设、电子资源配置提供依据,成为值得研究的问题。
对网络用户信息行为的定量研究方法有日志数据挖掘、系统软件计数及网络数据采集等途径。这些方法在改善现有评估手段的同时,也不同程度的存在一定局限性,主要有以下几点:
1.数据获取对业务环境的依赖性强。日志挖掘方法中,用户端和服务器端缓存(Cache)、代理(Proxy)及防火墙地址转换(NAT)等技术都会影响对数据的获取和处理,从而削弱挖掘效果。获取系统软件计数数据时一般依赖电子资源数据库厂商提供,实时性较差且有时难以获得完整数据。
2.行为信息提取内容较少。基于服务端系统软件计数或日志挖掘的方法很难收集到用户端个体信息,现行的基于网络层统计的方法又侧重于用户行为模式的判断,忽略行为内容的分析。如基于snort的过量下载检测方法,其处理的数据层次局限于网络层,没有对应用层数据作进一步处理,基于DPI的pdf文件下载检测方法仅对特定类型进行捕获,同样也没有针对应用层信息进行分析和处理。
针对上述局限性,本文利用应用层特征分析技术对数字图书馆用户信息获取报文进行分解处理,讨论了相应处理过程并用算法予以实现,最终设计了系统原型并进行了开发与测试。
用户信息获取行为报文的应用层特征分析与检测
报文的特征分析
针对文献获取行为,利用Fiddler软件,我们进行了报文截取和分析。一个典型的下载请求如图1所示。
在该请求报文的首部字段中,即可获取提供下载报文的主机域名或IP地址,如:Host:libvip.cumt.edu.cn
对起始行中的Get请求进行分析,其中包含如下信息:
1.该下载请求的文件存放路径:file=\R13\88765X\007\002\45759469.pdf
2.下载文件名:
由此可见,对于特定电子资源站点的下载请求,可通过对相应报文的分析获取有意义的信息。文献获取报文具有如下特征:
1.HTTP首部字段中描述了目的主机信息,如域名、IP地址等;
2.在GET请求中,通过“参数名=值”的形式存放了与下载有关的信息,如文件名、存放路径、文件类型等;
3.在URL中,中文被重新编码,以%作为编码的转义标志。
基于特征分析的检测方法
基于上述报文特征分析过程,我们可以归纳出相应检测方法。首先进行网络层协议解析,获取报文的五元组(源IP地址、源端口、目的IP地址、目的端口、协议号)信息。其次,将承载行为特征的HTTP报文逐层拆开,获取目的主机域名、资源名称、文件特征等应用层信息。最后,将获得各类信息进行必要的编码转换工作,从而形成一条完整的用户资源利用行为记录,最终依照统一的数据结构存放在数据库中。
原型系统设计
设计原则
原型系统在设计时重点考虑了以下几个原则:无侵入数据采集、分布式预处理、动态URL元数据构建。提出上述设计原则的主要目的是:
1.减少数据采集依赖。通过无侵入式的数据采集方法实现检测系统与具体业务平台解耦,减少数据采集对资源厂商的依赖性。
2.解决大流量情况下的数据处理压力。系统采用分布式预处理结构。通过在分散的采集平台上通过预处理过滤措施指定业务流量,减少后端处理压力。
3.统一文献获取
记录描述方式。为避免URL描述方式不一致带来的差异,将不同电子资源厂商的下载URL转换成统一的文献获取记录。在系统设计时以模块形式针对不同电子资源进行URL元数据格式设计,通过灵活的数据构建支持动态扩充被分析的电子资源目标。
原型架构
系统以一个采集节点、一个数据存储及分析节点、一个WEB查询服务节点的形式完成原型实现,整体架构如图2所示。
图2中WEB查询服务节点、数据分析及存储节点采用Java语言根据前述设计方案开发,综合使用了Struts2、Spring、Hibernate等开发框架。数据采集节点运行在CentOS操作系统平台上,与前面两个节点独立,并可以增加数量,实现系统处理能力的动态扩充。
与在服务器主机上部署代理程序等侵入式的数据采集方法不同,本系统采用交换机网络端口流量镜像功能,将目标业务流量镜像到分析平台所连接的网络端口。由于不需要获取资源服务器上的数据或在服务器上安装插件,可以方便的对各类用户信息获取行为进行计量。
原型系统实现方法与工作过程
分布式预处理
在采集到的数据到达分析平台后,需要对相应网络数据报文进行预处理,以便去除非目的IP的数据报文,减少后续等待处理的网络数据数量,提高系统的处理能力。本系统使用的预处理工具是snort,这是一个开源的IDS(入侵检测系统)工具,我们利用其对数据报文的过滤功能实现相应预处理。其过滤器配置如下:
Alert tcp any any->202.119.200.80/3280(content:“filename”;msg:“cnki”;sid:“10000001”;priority:1;)
过滤器配置中content部分定义了需要进行匹配的字符串,msg部分定义了日志输出信息,sid部分定义了规则唯一的标识,priority部分则定义了规则的优先级。上述过滤规则定义了触发规则的动作,对应的协议以及包括IP地址、网络、端口在内的源与目的信息。通过这些限制,最终被收集到后端的数据能够被有效减少。通过在不同节点采用不用的预处理规则,还可以实现分布式的数据采集。
URL解码和元数据对象构建
在正确提取URL的基础上,需要对URL进行解码。URL中通过转义表示法表是安全字母表之外的二进制数据或字符,这种转义表示法包含一个百分号(%),后面跟着两个表示字符ASCII码的十六进制数。通常我们所得到的URL如下:
其中存在形如“%bb%f9%d3..”等类似的编码。在系统实现中,我们将该编码转换成以可阅读的字符集形式。
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。