第39卷 第2期 计算机工程 2013年2月 、厂0l-39 NO.2 Computer Engineering February 2013 ・软件技术与数据库・ 文章编号l 100 -3428(20l3)02-_004l-_05 文献标识码t A 中田分类号I TP311・5 基于业务流程的Web应用监控系统研究 赵方,李兰英 (北京林业大学信息学院,北京1 00083) 摘要:在分析并研究网络应用监控系统、流程控制系统现状和发展趋势的基础上,提出一种基于业务流程的Web应用监 控系统。该系统使用流程录制技术实现自定义监控业务流程,利用Web数据挖掘完成业务流程识别及流程获取,通过分离 数据采集和监控服务,降低对监控对象的影响。实际监控结果证明,该系统不仅可以完成传统监控系统的工作,还可以从 这些监控数据中挖掘出用户所需的业务流程信息,为软件系统优化、质量改进以及系统重构提供准确和有效的依据。 关蝴:业务流程;Web应用;监控;录制;代理;数据采集 Study of Web Application Monitoring System Based on Business Process ZHAO Fang,LI Lan-ying (School of Information Science&Technology,Beijing Forestry University,Beijing 1 00083,China) [Abstract i This paper proposes a Web application monitoring system based on business process,through analyzing and summarizing the status and development trend of network application monitoring and process control systems.The system uses process recording technology to realize custom monitoring business process and Web data mining to identify and obtain business processes.It separates the data collection nad monitoring services to reduce the impact of monitoring object.The actual results of monitoring proves that the Web application monitoring system based on business processes not only Can complete the work of traditional monitoring system,but also can provide the information of business processes,which are excavated from these monitoring data.It provides accurate and effective basis for software systems,optimization,qualiyt improvement and system reconfiguration. [Key words l business process;Web application;monitoring;recording;proxy;data collection DOI:1O.3969/j.issn.1000.3428.2013.02.008 1概述 量、安全问题和页面问题,对于用户和软件开发企业关 注的Web应用的业务逻辑的健康状况不能给出满意的结 随着计算机网络的不断发展,各个行业的信息化应 果。为此,本文提出基于业务流程的Web应用监控系统。 用系统日益普及,这些系统的应用极大地提高了工作效 率,但系统在运行过程中同样不可避免地会出现许多问 2相关研究 题,某些意外情况的发生导致系统出现异常,严重地影 业务流程及Web应用监控已在其各自领域取得了研 响了业务工作的正常开展,如何有效地监控这些系统, 究成果。文献[1・2]介绍了针对工作流系统的业务流程监 及时准确地发现系统中存在的问题,进而优化系统运行 控方法,该方法使用引擎解析业务流程,根据流程定义 环境,改进软件设计,已经成为网络运维和软件重构领 自动执行并监控业务流程执行情况,主要针对业务流程 域的热点问题。目前,在这些应用系统中基于B/S模式 的执行状态、执行过程信息进行监控。文献[3.4]介绍了 的Web应用占到了绝大多数,因此,研究Web应用的健 针对Web Service的业务流程监控方法,将业务流程看作 康状况,发现Web应用中存在的问题具有普遍意义。 一组服务交互合作,通过监控流程的服务调用消息来监 传统的网络监控系统通常只能发现Web应用的访问 控流程的运行情况。文献[5—6]介绍了针对当前Web应用 作者倚介:赵方(1958一),男,副教授,主研方向:网络监控,软件开发;李兰英,硕士研究生 收稿日期:2012-04-16 修回日期:2012-05・21 E-mail:fangzhao@bjfu.edu.ca 42 计算机工程 2013年2月15日 系统的监控方法,使用JMX等技术对系统进行监控,包 括CPU使用情况、数据库以及Web应用会话(Session) 与Cookie信息等。总体来说,在业务流程监控领域,主 要对基于工作流或Web Service的系统流程运行过程进 行监控,在通用性方面有一定的局限性;在Web应用监 控方面,对Web应用中的资源使用情况、Web请求性能、 数据库等进行监控。综上所述,对于Web应用中的业务 流程整体运行情况缺乏针对性研究。 3相关概念 简单来说,业务流程是指完成某项职能的一系列相 互衔接的步骤,将输入转换为输出。构成业务流程必须 具备以下3个条件:(1)业务流程必须有输入;(2)构成业 务流程的步骤必须是确定的执行流程,这个执行流程可 保证业务活动的有序进行;(3)业务流程必须有输出信息。 从Web应用来说,业务流程的执行步骤是指一系列 页面集合,即一系列URL集合。因此,本文对流程进行 如下抽象表述: 定义任何一个Web应用的业务流程均可表示为一 个三元组Jp: D>,其中,,为一组信息输入变量, ,={‘,f2,…,f ),‘∈,表示输入信息的职能模块;U表 示业务流程页面集合,U={b/1“2,…,“ }, ∈U表示 业务流程包含的URL;O为一组信息输出变量,O= {O1 O ,…,O ),O ∈O表示系统输出信息的职能模块。 4系统设计 当前对于业务流程的监控仅针对提供基本检测功能 的Web系统,通用性较低;此外,监控结果侧重于流程 当前的执行状态和执行进度,缺少对业务流程整体运行 情况的研究,例如业务流程的请求次数、可用率等,最 终从业务角度呈现监控结果。在系统设计实现过程中, 解决以下重要问题:(1)对现有Web应用业务流程进行业 务流程监控,如何定义待监控的业务流程。(2)如何将多 条并发用户请求信息识别为业务流程。(3)简单有效地与 监控对象进行整合。 基于业务流程的监控系统功能描述如下:监控人员 手动录制监控业务流程,查看业务流程运行情况的监测 报告;该监控程序在应用发生异常情况时可以远程发送 手机短信或者E mail通知监控人员。 基于功能描述,监控系统结构如图l所示,Web应 用监控系统包括2大部分,即数据采集和监控服务模块。 数据采集是驻留在监控对象端的程序,监控服务驻留在 监控服务器端,完成系统监控的主要功能。 器 数据采集厂一实时数据—L实时数据] 图1监控系统结构 如图l所示,通过分离数据采集和监控服务使得监 控系统可以简单有效地与监控对象整合,解决了通用性 问题。数据采集运行于集群各节点的应用中,主要职责 是监控数据的采集,其他监控功能由监控服务器端实现,  ̄I11l务器端收集和处理各监控代理采集的数据,最大化 地降低监控功能对原有系统的影响。整个业务流程监控 系统包括数据采集、业务流程录制、流程数据获取、监 控数据服务4个功能模块。 4.1数据采集模块 数据主要指用户发送的HTTP请求响应信息,数据 采集是驻留在监控对象端的程序代码,主要负责采集用 户实时访问信息,并将采集到的数据封装成监控对象, 通过Socket传递给监控服务端,监控服务器端对数据作 进一步处理。 HTTP请求响应信息根据HTTP协议来获取,HTTP 协议中包含若干信息,数据采集端需要对HTTP协议进 行解析和处理,最终得到满足流程数据获取模块需要的 对象,包括用户IP地址、用户uA、目标URL及响应状 态码这些必要信息。其中,响应状态码是页面访问成功 与否的重要标志,响应状态码由3位数字组成,包括 5种情况:(1)lxx,信息响应类,表示接收到请求并且继 续处理。(2)2xx,处理成功响应,表示动作被成功接收、 理解和接受。(3)3xx,重定向响应类。(4)4xx,客户端错 误,客户请求包含语法错误或者是不能正确执行。(5)5xx, 服务端错误,服务器不能正确执行一个正确的请求。因 此,页面是否执行成功的标志是页面的响应状态码不以 4和5开头,否则视为执行失败。 第39卷第2期 赵方,李兰英:基于业务流程的Web应用监控系统研究 43 4.2业务流程录制模块 录制业务流程的主要原理是在用户浏览器和Web应 用服务器之间设置一个代理服务器,用户手动执行待监 控的业务流程,代理服务器接收用户浏览器发送的HTTP 用户通过浏览器访问Web应用某流程时,一些与该 流程相关的信息,如音频、图片信息等也会自动下载。 虽然图片等信息不会对业务流程的完成有决定性影响, 但如果用户访问某页面时,页面内容的缺失以及页面不 美观、信息不完整也会导致用户的流失。 因此,将这些特殊URL也保留在业务流程文件中, 请求,读取请求信息第l行获得目标Web服务器URL, 将读取到的URL保存到文件中,最终形成一个业务流 程。业务流程P={ ,“ 一,U }。 由以上分析可知,录制模块的实现关键是代理服务 器的实现。代理服务器的实现原理如下:代理服务器启 动后,启动一个监听线程对指定端121进行监听,当有 HTTP请求时,监听线程对HTTP请求启动一个工作线 程。该线程截取HTTP头信息进行分析,解析出目标服 务器的主机名和端口,建立一个发送Socket与主机进行 连接,将HTTP请求发送到目标Web应用服务器端。发 送Socket在发送HTTP请求包前将HTTP请求中URL 写入业务流程文件,以供以后使用,代理服务器的实现 流程如图2所示。 开始录制 启动代理服务器 监听浏览器 否 监听到浏览器信息 、、 与用户浏览器建立Socket连接 捕捉HTTP请求,找出目标服务地址 将URL保存到业务流程文件 将HTTP请求发送到目标服务器 接收目标服务器响应,转发到浏览器 否 录制结束 一一 上是 关闭代理服务器 不作丢弃处理。 4.3流程数据获取模块 该模块的主要功能为业务流程识别。此处业务流程 必须是同一个用户在同一个会话中完成的,因此,流程 数据获取的功能模块如图3所示。 请求对象 流程数据获取 ●● , ’, 。 、【 务流程 r、、 卜\ 、 用户识别 请求对象 业务流程 ) 用 数 户 据 主 业 采 录制好的 务 集 请求对象 业务流程 会话识别 业务流程 流 端 卜\ 程 请求对象 、/—、 工 业务流程 r、\ 卜\ 业务流程 > 识别 图3流程数据获取功能模块 由图3可知,该模块负责将单独的访问记录经过分 析、处理,输出业务流程信息,过程如下: (1)用户识别 由于本地缓存、代理服务器、防火墙的存在,因此 用户识别算法选择如下 J: 1)不同的IP地址代表不同的用户。 2)当IP地址相同时,默认不同的用户uA代表不同 的用户。 3)在IP地址和用户UA都相同的情况下,查看用户 请求的某个页面是否能从已访问的任何历史页面到达, 若不能则代表不同的用户。 (2)业务流程识别 用户会话指的是用户从进入站点到离开站点期间所 访问的一系列页面序列集合,业务流程识别是通过判断 计算机工程 2013年2月15日 用户的一次会话是否完成业务流程而实现的。因此,用 户业务流程识别算法描述如下:以用户访问页面序列的 URL作为划分会话的标准,若一个用户访问的URL为 业务流程的首页URL,则认为用户开始一个新的会话, 该条记录是用户新会话的开始访问记录,而该记录之前 的一条记录是用户上一次会话的最后访问记 。 们。如果 用户的一次会话中包含业务流程的所有URL,则该会话 信息就是一条业务流程。 本文以SessionlD作为Session的唯一标识,则会话 Session的定义如下: /SessionlD,UserlD, \ Sess ,f1)( ,f2)…( , )…( , ))/) 其中,1≤七≤ ;SessionlD为会话的唯一标识,用于判 断用户会话是否完成一个业务流程;UserlD为用户的唯 一标识;{(urll, )(“ f2,t2)…(urlk,tk)…ur1.,tn))为此 次用户会话的页面访问序列,“ 表示目标页面的标识, t表示访问页面的时间。 用户业务流程识别算法流程如下: 输入Log、 P 输出Process Begin for所有用户U.user{ f0r所有记录Log(user}{//属于同一个用户的记录 If(Log.ip为P的首页面){ if(Session包含P中所有URL) Process=Process Session; SessionlD=SessionlD+1: } Session=Session+Log; } ) Return Process; End 业务流程识别伪代码算法中的符号说明:Log为用 户访问记录文件, 为用户的集合,P为录制好的业务 流程集合,Session为一次会话,Process为完成了业务流 程的用户会话集合。 该算法不仅能完成业务流程识另0功能,且能有效地 解决频繁发生的用户访问断点问题。如上所述,新会话 由业务流程的首页开始,在用户点击业务流程首页之前, 其访问路径仍属于同一会话。 4.4监控数据服务 监控数据服务是对于监控数据的处理展示,其主要 功能包括监控数据处理、整合和展示。此外增加报警功 能,在监控数据发生异常(指实时数据、历史数据操作值) 时,及时地将出现异常的数据、资源等相关信息准确地 通知给用户,提醒用户对系统或业务进行调整,监控数 据服务可以辅助监控功能提高系统的稳定性。 5实际监控结果 校园通用网络计费系统作为监控对象,采用JavaEE 编程实现。 使用该监控系统的主要操作步骤如下: (1)在校园通用网络计费系统端部署数据采集程序, 并配置Web应用服务器的用户访问日志以及日志存放目 录,数据采集程序逐行读取服务器日志文件,得到用户 请求响应信息,同时将监控对象信息注册到监控服务端。 (2)在监控服务端部署监控服务程序。用户需要完成 3个方面工作: 1)用户自定义业务流程:配置IE浏览器的代理为 127.0.0.1,端口是8090。点击开始录制按钮启动代理服 务器,录制完毕后点击停止录制按钮,给流程命名,并 点击保存按钮完成录制工作,这样监控流程就被添加到 监控流程库里。 2)将监控流程与监控对象对应起来:首先选择校园 通用网络计费系统作为监控对象,将监控流程加入到该 监控对象中。 3)选择监控流程,这样系统就会对选定的流程进行 监控,进而显示当前监控流程的运行情况。 通用网络计费系统功能模块如图4所示。 通用网络计费系统 网络功能 个人信息 流量信息 费用管理 IP管理 Il _l_ 上 l_[上 l I 上 上 l 连 断 接 修 连 个 人 流 量 月 上 网 号 账 IP IP 接 网 开 网 记 改 录 密 信 息 志 日 流 量 账 余 地 址 地 址 络 络 查 码 查 查 查 询 号 充 额 查 查 由 询 看 询 值 询 询 请 图4通用罔络计费系统功能模块 第39卷第2期 赵方,李兰英:基于业务流程的Web应用监控系统研究 45 如图4所示,通用网络计费系统共包括l1个主要的 业务流程。为了对网络计费系统各节点监测及评估,需 要对各功能模块从业务角度进行监测,以获取各业务流 程状态、使用情况等信息。 基于业务流程的Web应用监控系统被应用于计费系 统中,实现了系统各流程监测,很好地满足上述需求。 监控系统实时对通用网络计费系统进行监测,完成监测 数据的获取、持久化,并提供了数据整合、告警通知等 6结束语 本文提出了基于业务流程的Web应用监控系统,该 系统能获取Web应用各业务流程的使用次数、可用率等, 从业务角度将监控结果呈现给用户。在系统设计实现过 程中,解决以下重要问题:(1)使用流程录制技术实现自 定义监控业务流程;(2)使用Web数据挖掘技术完成业务 流程识别,实现流程获取;(3)分离数据采集和监控服务, 降低对监控对象的影响。该方案已在某高校通用计费系 功能,取得良好的监控效果。表1为2012年3月计费系 统中流程访问统计数据,第l列为业务流程名,第2列 是业务流程对应的URL数量(包括图片、样式文件), 第3列为业务流程对应的用户访问次数,第4列为业务 流程的可用率。其中,业务流程可用率=业务流程成功处 理数/业务流程访问总数。 表1藏程访问统计数据 如表1所示,该系统中访问频繁的流程为链接网络 流程,用户访问次数为64 837次,明显高于其他业务流 程,其业务流程可用率近似为100%,因此该业务流程运 行状况良好。对于统计访问频繁的业务流程,网站设计 者可据此调整页面层次结构来优化该流程,提高流程质 量,以吸引更多的用户。而对于可用率较低的流程,也 可以将原因定位到具体页面,极大提高网站设计者优化 系统的效率。 统中使用,并取得了比较好的效果。今后将进一步改进 流程识别算法,提高业务流程识别算法的准确性。 参考文献 [1]卢朝霞,曾广周.面向迁移工作流可靠执行的协同监控 模型[J].计算机研究与发展,2009,46(3):398—406. [2]Thomas M,Redmond R,Yoon V A Semantic Approach to Monitor Business Process Performance[J].Journal of Systems Architec ̄tre,2008,54(9):55-59. [3] 陈再本,邢春晓,胡庆成,等.基于Web Service代理的 业务流程监控[J]_计算机工程,2008,34(1 0):64—68. [4]McGregor C,Schiefer J.A Web Service Based Framework for Analyzing and Measuring Business Performance[J]. Information Systems and E—business Management,2004, 2(1):89-1 10. [5]李佳俊,宋晖.基于WBEM标准的Web应用监控系 统的研究与实践[c]//全国第18届计算机技术与应用学 术会议论文集.宁波:咄版者不详]j 2007. [6] 郑红强.基于B/S结构的远程监控平台的设计与实 现[D].北京:北京邮电大学,2010. 【7】李燕,冯博琴,鲁晓锋.Web日志挖掘中的数据预处 理技术[J].计算机工程,2010,36(22):44-49. 【8]周爱武,程博,李孙长,等.Web日志挖掘中的会话识 别方法[J].计算机工程与设计,2010,31(5):936-941. [9]赵伟,何丕廉,陈霞.Web日志挖掘中的数据预处 理技术研究[J].计算机应用,2003,23(5):62-65. [1 0]Bt ̄chner A G,Mulvenna M D.Discovering Intemet Marketing Intelligence Through Online Analytical Web Usage Mining[J].ACM SIGMOD Record,1998,27(4): 54.61. 编辑陆燕菲