摘要
本发明公开了一种网络用户行为日志自动获取方法,其特征在于:在客户端与Web服务器之间加上一代理服务器,代理服务器第一次接受Web服务器返回的响应正文为HTML格式的用户响应即HTTP响应,在该HTTP响应中加入用户行为日志采集模块,发送到客户端,用户行为日志采集模块在客户端充当用户行为日志的数据采集端,而代理服务器充当用户行为日志的数据处理端。本发明基于中间“代理服务器”策略,重点解决了客户端日志捕获、代理服务器策略部署、日志获取的可视化配置等关键技术。与传统的日志记录的方案相比,本发明可以很好的关联用户,而且扩展性很好,通过可视化UI方便灵活的定制目标系统需要采集的用户行为日志,也可为进一步的日志挖掘提供数据基础。
技术领域
本发明涉及一种网络资源获取方法,特别涉及一种网络用户行为日志的自 动获取方法。
背景技术
随着Web信息的日益增长,人们不得不花费大量的时间去搜索、浏览自己需 要的、感兴趣的信息。为解决此问题,自动识别用户兴趣,实现个性化的资源 推荐就成为个性化服务领域的研究热点。在这方面的研究也取得了显著的成就。 个性化服务研究大多数都是以用户访问行为的日志数据为基础开展研究,用户 访问行为的日志数据为个性化服务中用户兴趣发现、资源推荐等研究提供很好 的数据支持,是这些研究很关键的前提,而目前用户访问行为的日志获取方法 的研究仍不太成熟,可移植性很差,日志记录可重用性很低。目前用户访问行 为的日志获取方法如下:
第一种常见的日志获取方法是利用Web服务器日志进行过滤。Web服务器 日志记录了用户访问站点的数据,每当站点上的页面被访问一次,Web服务器 就在日志中增加一条相应的记录。
另外一种常见的日志获取方法,是嵌套在网站中,通过编写相应的日志记 录代码获取所需要采集的用户访问行为的日志数据。 上述现有系统在通信方面存在以下四方面的问题:
1. 日志记录不能很好的和用户关联起来;
2. 缺乏用户访问行为的定制,数据往往比较冗余繁杂;
3. 日志记录控制不能灵活的增加和减少需要采集的用户行为;
4. 对不同的系统,日志获取模块重用性很低。
发明内容
本发明的目的是解决现有技术日志获取中可扩展性和可移植性不高的缺
4陷,提供一种基于c/s (客户端/服务器)模式的可移植性较好的用户行为曰志
获取的方法。
为达到以上目的,本发明是采取如下技术方案予以实现的: 一种网络用户行为日志自动获取方法,其特征在于:在客户端与Web服务 器之间加上一代理服务器,代理服务器第一次接受Web服务器返回的响应正文 为HTML格式的用户响应即HTTP响应(HTTP响应包括三部分内容:响应状 态码,响应头部和响应正文),在该HTTP响应中加入用户行为日志采集模块, 发送到客户端,用户行为日志采集模块在客户端充当用户行为日志的数据采集 端,而代理服务器充当用户行为日志的数据处理端;引入代理服务器以后的信 息交换模式具体包括下述步骤:
1) 用户通过客户端向Web服务器发送HTTP请求;
2) 代理服务器截获该HTTP请求并解析该HTTP请求的类型,以决定是否 转发该HTTP请求,具体情况如下:
a. 当请求为调用Web服务器资源,则:
Stepl:代理服务器转发该请求至Web服务器; Step2:转至步骤3);
b. 当请求为调用用户行为日志采集模块,贝'J:
Stepl:代理服务器构建包含用户行为日志采集模块的HTTP响
应;
Step2:转至步骤5);
c. 当请求为发送采集的日志数据,贝'J:
Stepl:代理服务器接收发送的日志数据; Step2:日志数据交由代理服务器上的日志处理模块处理; Step3:处理后的日志数据储存到代理服务器的日志文件中; Step4:代理服务器构建包含接收日志数据成功标志的HTTP响应; Step5:转至步骤5);
3) 代理服务器接收来自Web服务器返回的HTTP响应并判断该HTTP 响应正文的类型:
a. 如果响应正文为HTML网页,转至步骤4);
b. 否则转至步骤5);4) 代理服务器解析HTTP响应,并在该响应中修改HTTP响应头部的长度 信息、在该响应正文中加入客户端日志采集模块;
5) 代理服务器将步骤2)包含用户行为日志采集模块的HTTP响应、包含 接收日志数据成功标志的HTTP响应、步骤3) Web服务器返回的HTTP响应或 者步骤4)修改后的HTTP响应发送至客户端。
上述方案中,所述代理服务器与原来的Web服务器为同一台服务器;或不 同于Web服务器,而作为一个独立的日志获取服务器。
所述用户行为日志采集模块采用事件驱动模型,代理服务器提供可视化用
户接口UI定制目标系统需要采集的用户行为,存储在用户行为描述文件中,当
用户定制完需要采集的行为之后,用户行为描述文件被存放到代理服务器上,
最后,在客户端充当用户行为日志数据采集端的用户行为日志采集模块动态加
载位于代理服务器上的用户行为描述文件,依据定制的用户行为来采集用户在
目标系统的这些行为日志数据。
其中每种用户行为可通过下述两种方法之一来描述:
① 通过用户在页面有序的操作序列集合来标识定制的行为;
② 通过统一资源定位符URL来过滤得到定制行为; 以上两种方式都可以唯一的标识某个行为。 与上述提到的背景技术作对比,我们来分析下本发明的优势。 不同的系统需要采集的行为往往有所不同,为了提高日志记录模块的可重
用性,这就需要提供一种机制灵活的增加或减少系统中需要采集的行为,并且 在用户行为日志采集过程中,需要灵活的配置和描述需要采集的行为。而且为 了适应更多的系统,除有一些基本的用户行为(如搜索行为,评价行为,浏览 行为等),还应可以定制一些其他行为。但目前日志记录并没有很好的对不同的 行为进行分类,也不能灵活的自定义系统需要采集的用户行为,更没有提供一 种有效的方法来描述一种用户行为。
本发明用户行为日志采集模块采用事件驱动模型,针对页面对用户行为进 行监听,它可以借助于浏览器直接运行,主要好处在于它允许更大的灵活性, 因为处理程序完全是独立的,当事件发生时,它只需要发送给统一的处理程序, 而不需要了解具体是哪个子程序在执行,哪个子程序是什么功能。
至于描述用户的行为,本发明提供了一个数据格式——用户行为的描述文 件,在这个文件中通过可扩展标记语言XML来描述和存储需采集的用户行为。并且提出每种行为可通过两种简单的方式来描述:该两种方式都可以唯一的标 识某个行为。有了上述用户行为描述文件,就可灵活的定制需要采集的用户行 为,并提供对用户行为的描述机制及方便用户配置的可视化用户接口 UI。最后 用户行为日志采集模块动态加载用户行为描述文件,而我们只需在用户行为描 述文件里增加或减少相应的行为即可达到灵活的增加或减少需要采集的用户行 为。
与现有技术的对比,本发明的特点是:
1. 实现可扩展的系统,灵活定制需要采集的用户行为;
2. 对不同的系统,该方法移植性较高;
3. 容易部署,从而为系统提供透明的日志记录服务;使后期的日志数据 预处理及数据挖掘更容易。
附图说明
图1为本发明方法涉及的网络系统框图。
图2为本发明用户行为日志数据采集端和用户行为日志数据处理端的设计 框架图。
图3为本发明用户行为日志采集模块可扩展的设计结构。
图4为本发明代理服务器的工作流程图。
图5为正常上网资源请求时序图。
图6为客户端对用户行为采集模块的请求时序图。
图7为客户端发送采集的行为日志时序图。
图8为用户行为日志采集基本行为配置图。
具体实施方式
为了更清楚的理解本发明,以下结合附图对本发明作进一步的详细描述。 如图1所示,在客户端与Web服务器之间加上一 "代理服务器",用户通 过客户端向Web服务器发送请求;代理服务器截获该请求并转发至Web服务器; Web服务器返回HTTP响应至代理服务器;代理服务器处理Web服务器返回的HTTP 响应,并在该HTTP响应中加入用户行为日志采集模块,然后发送至客户端。 本发明釆用C/S模式,考虑可扩展,可移植这两个特性,用户行为日志获取的方法主要包括两方面的设计:用户行为日志的数据采集端和用户行为日志 的数据处理端(如图2所示)。以下予以分述:
①充当用户行为日志数据采集端的用户行为日志采集模块的设计(图2客户端): 用户行为日志数据采集端主要是针对页面进行监听以捕获行为日志,为此 我们要采用客户端脚本语言JavaScript,该技术对页面元素能很好的支持,并且 扩展性要好,支持"事件驱动"。客户端脚本语言JavaScript是动态的,它可以 直接对用户或客户在页面的输入做出响应,无须经过Web服务程序;而且更重 要的它是采用以事件驱动的方式进行的;而且它是一种基于对象的语言,这样 可以使程序的可读性更高,维护起来很方便,而且易扩展;它还是跨平台的, 只依赖于浏览器本身,与操作环境无关。
另外我们还需要一种交互式网页应用的网页开发技术用来把客户端捕获的 用户行为日志发送给用户行为日志的数据处理端。我们选用AJAX (异步 JavaScript和XML (可扩展标记语言))来满足这个需求,而且AJAX和客户端 脚本语言JavaScript结合性很好。客户端脚本语言JavaScript是一种粘合剂使 AJAX应用的各部分集成在一起。在AJAX中客户端脚本语言(如JavaScript) 主要被用来传递用户界面上的数据到服务端并返回结果。 下面进一步划分模块介绍: m关联用户
上面提到Web服务器日志缺乏用户ID这个重要信息,而且我们记录日志的 目的是要给用户分析其兴趣并为其推荐资源,所以我们一定要有能标识用户的 信息。在这通过捕获得到用户登录时的.ID来标识用户,如果用户匿名登录,则 以IP (网络协议)地址来标识该用户。 [2]动态加载用户行为描述文件
用户行为描述文件是通过可扩展标记语言XML文件进行描述的。每种行为 可通过下述两种方法之一来描述: 一种是按照页面元素标签的触发顺序来标志 某种行为; 一种是按照URL来过滤出某种行为。两种方式都可以唯一的标识某 个行为。我们加载用户行为描述文件,这样用户行为日志采集模块可以只捕获 用户行为描述文件中定制的这些行为操作。 [3]事件监听
事件监听模块使用事件驱动模型来实现,事件驱动模型的三大要素包括-事件源:能够接收外部事件的源体;侦听器:能够接收事件源通知的对象;事 件处理程序:用于处理事件的对象。我们给用户行为描述文件定制的这些用户 行为注册事件侦听器,并把事件侦听程序和事件处理程序独立开来。
我们以一个具体事例来解释事件驱动模型,如图3所示,当我们为一个特 定的按钮元素注册点击的事件侦听器,当用户点击这个按钮时,会将事件传递 给侦听器,这意味着事件源调用侦听器对象中的一个特定方法(侦听器对象可 以侦听一个特定对象的事件(比如一个按钮)),并以事件对象作为实参,然后交 给事件处理程序按照一定业务逻辑执行。 ②用户行为日志数据处理端的设计:
首先我们先了解一下充当用户行为日志数据处理端的"代理服务器"工作 流程(如图4所示):
1) 用户通过客户端向Web服务器发送HTTP请求;
2) 代理服务器截获该HTTP请求并解析该HTTP请求的类型,以决定是否 转发该HTTP请求,具体情况如下:
a. 当请求为调用Web服务器资源,则:
Stepl:代理服务器转发该请求至Web服务器; Step2:转至步骤3);
b. 当请求为调用用户行为日志采集模块,贝'J:
Stepl:代理服务器构建包含用户行为日志采集模块的HTTP响
应;
Step2:转至步骤5);
c. 当请求为发送采集的日志数据,则:
Stepl:代理服务器接收发送的日志数据; Step2:日志数据交由代理服务器上的日志处理模块处理; Step3:处理后的日志数据储存到代理服务器的日志文件中; Step4:代理服务器构建包含接收日志数据成功标志的HTTP响应; Step5:转至步骤5);
3) 代理服务器接收来自Web服务器返回的HTTP响应并判断该HTTP
响应正文的类型:
a.如果响应正文为HTML网页,转至步骤4);b.否则转至步骤5);
4) 代理服务器解析HTTP响应,并在该响应中修改HTTP响应头部的长度 信息、在该响应正文中加入客户端日志采集模块;
5) 代理服务器将步骤2)包含用户行为日志采集模块的HTTP响应、包含 接收日志数据成功标志的HTTP响应、步骤3) Web服务器返回的HTTP响应或 者步骤4)修改后的HTTP响应发送至客户端。
我们使用socket (套接字)技术,通过监听客户端端口或Web服务器端口 实现上述流程。当用户自客户端通过浏览器发送HTTP请求时,代理服务器首 先接受客户端的连接,并建立一个新的线程,接收HTTP请求,并按照HTTP 协议的格式对HTTP请求和HTTP响应作简单的解析,以决定代理服务器是否 转发该请求、是否修改来自Web服务器的用户HTTP响应。
由于我们的主要目的是为了获取用户的日志数据。针对上述流程中步骤2) 中第c种情况进一步的描述(参见图2中用户行为日志数据处理端),每当用户 行为日志数据采集端向用户行为日志数据处理端发送捕获到的行为记录时,用 户行为日志数据处理端会给其分配一个接收数据线程,当多条行为记录同时发 送时,则采用多线程并行处理以加快执行速度,之后接收数据线程会将数据交 由曰志数据处理器,由数据处理器按照日志格式对接收到的数据进行处理并将 处理后的用户行为日志数据存储到日志数据库中。
另外我们提到代理服务器提供可视化用户接口UI方便用户定制目标系统需 要采集的行为(UI如图8所示)。
用户可以根据项目的需求定制一些在项目中要采集的行为。最后生成一个 定制目标系统需采集行为的用户行为描述文件。用户行为描述主要采用两种方 式: 一种是按照用户在页面有序的操作序列集合来标识定制的行为; 一种是按 照URL来过滤出定制的行为。
举例说明如下:搜索行为是通过用户在页面有序的操作序列来描述的。即 记录了用户在页面完成搜索行为需要执行的有序的操作集合。 一般搜索行为需 要两个有序的操作:输入关键字,提交査询内容。输入关键字这个操作关联页
面上输入关键字的文本框,提交查询内容这个操作关联页面上的提交按钮根据
超文本标记语言HTML的规范我们知道,页面元素由其id属性唯一标识。我们 通过有序集合A^输入关键字的文本框的id属性、提交按钮的id属性}就可以
10标识该搜索行为。
评价行为我们通过URL进行描述的。我们都知道URL为统一资源定位符 (UniformResourceLocator的縮写),它可以唯一的标识一个资源。首先给出评 价行为的URL,然后对其参数进行描述。 一般评价行为包含三个参数:评价资 源的用户的标识,被评价的资源的标识,评分。我们通过URL加上其参数就可 以标识该评价行为。
注:这个三个参数也是为了适应个性化服务中的推荐模型。