基于Web服务编排描述语言的多方协同业务流程监控系统的制作方法

文档序号:6400793阅读:994来源:国知局

专利名称::基于Web服务编排描述语言的多方协同业务流程监控系统的制作方法
技术领域
:本发明涉及一种业务流程监控系统,尤其涉及一种基于Web服务编排描述语言(WS-ChoreographyDefinitionLanguage,简写为WS_Q)L)的多方协同业务流程监控系统,属于网络服务流程监控
技术领域

背景技术
:在互联网高速发展的今天,Web服务已经成为企业获取网络服务、进行数据交互的重要技术手段。为了保证IT系统进行数据交互的高效、可靠,流程监控技术在其中发挥着不可替代的作用。现有的流程监控技术主要包括三类:第一类是使用内置流程执行引擎的流程监控工具,将一系列同步和异步的服务组合到一个端到端的BPEL(业务流程执行语言)流中。第二类是使用BAM(业务活动监控)工具进行业务活动监控,收集、分析和展现业务活动的实时数据,改进业务运作的速度和效率。第三类是通过客户定制,为企业或所在行业的IT系统开发专用的业务流程监控工具。Web服务编排描述语言是W3C在2005年制定的Web服务编排标准,从全局的角度定义了一组Web服务之间的协作和交互必须遵守的规则。在此基础上,Pi4Tech公司推出了基于Web服务编排描述语言的图形化编辑工具Pi4S0A,用以实现流程控制过程中图形的编辑工作,提高流程监控的准确性。Pi4S0A用户可以使用拖拽的方式实现Web服务编排描述语言的流程编辑。但是其对Web服务编排描述语言的编排流程图形化操作只是简单地图形化XML标签以及表示标签的“生命线”,将文档包含的标签堆砌在合适的顺序、选择和并行的分支结构中。在角色复杂时,角色关系会变得更加复杂。同时,简单图形化不便于编辑,无法高效地进行可视化建模。而且,现有的业务流程监控工具往往是客户定制,通用性差,开发周期长,如果以后出现业务上的变动维护工作比较麻烦。发明人在《华东理工大学学报》2011年第2期上发表的论文《基于WS-⑶L的图形化编辑工具关键技术研究与实现》中,介绍了WS-CDL图形化编辑器的构造,包括如下步骤:对主要的活动以及属性进行图形化处理设计一套图形化模型标记WS-⑶L-N,使其与WS-⑶L一一对应,并在此基础上,使用Eclipse插件GMF框架设计并实现了WS-⑶L的图形化编辑器。该论文弥补了现有图形化研究成果中的不足,脱离XML标签的束缚,实现了高层次抽象、合理、直观的图形化标识方式,可以高效地进行可视化建模,提高了系统通用性。但是,在该论文中并没有介绍从整体上对业务流程进行监控,并将其应用于多方协同业务流程的具体实现过程。
发明内容针对现有技术所存在的不足,本发明所要解决的技术问题在于提供一种基于Web服务编排描述语言的多方协同业务流程监控系统(简称流程监控系统)。为实现上述的发明目的,本发明采用下述的技术方案:一种基于Web服务编排描述语言的多方协同业务流程监控系统,由业务流程建模模块、业务流程展示模块、监控元数据模型模块、客户端包捕获器模块、事件引擎模块、监控系统服务器模块、数据接收服务器模块和报表定制和展示模块组成;所述业务流程建模模块连接所述业务流程展示模块,所述业务流程展示模块连接所述监控元数据模型模块,所述监控元数据模型模块连接所述监控系统服务器模块;所述监控系统服务器模块分别与所述客户端包捕获器模块、所述事件引擎模块、所述数据接收服务器模块和所述报表定制和展示模块进行连接;所述客户端包捕获器模块将输出结果送入所述数据接收服务器模块中,所述数据接收服务器模块将相应的事件送入所述事件引擎模块中,所述事件引擎模块相应触发所述业务流程展示模块;所述客户端包捕获器模块根据监控文件捕获网络包,分析交互消息与所述网络包的关系,将属于同一个会话的几个网络包进行分析,利用重组算法将所述网络包按照会话进行组装和关联,生成消息链;抽取所述消息链中包含的信息,存入数据库或者激发事件引擎触发事件,实现跨区域/跨系统的多方协同业务流程监控。本发明提供了一种多方协同业务流程监控系统,可以实现对多方业务的整体流程管理和具体某一流程的全程监控。利用本发明,可以实现跨区域/跨系统的多方协同业务流程监控,有效地解决业务流程建模困难和无法进行业务流程监控的问题。图1为本发明所提供的多方协同业务流程监控系统的整体结构示意图2为WS-⑶L中间表示结构的示意图3为业务流程展示模块的架构示意图4为对捕获消息的重组算法示意图5为事件引擎的架构示意图。具体实施例方式本发明提供了一种多方协同业务流程监控系统(以下简称流程监控系统)。该流程监控系统首先利用Web服务编排描述语言编排图形化标识模型,为跨系统的多方协同过程提供模型参照,以保证业务流程的合理性;接着,基于该图形化标识模型的解析构建监控元数据模型单元,定义所需捕获的消息内容与监控规则;最后,采用对捕获消息的重组算法,用来解决消息与模型实例的关联问题。下面结合附图和具体实施例展开详细的说明。图1显示了该流程监控系统的整体架构,其主要包括业务流程建模模块、业务流程展示模块、监控元数据模型模块、客户端包捕获器模块、事件引擎模块、监控系统服务器模块、数据接收服务器模块、报表定制和展示模块等。其中,业务流程展示模块进一步包括WS-⑶L解析单元、服务功能单元及视图展示和配置单元。监控元数据模型模块进一步包括WS-CDL中间结构单元、其它数据单元及监控对象定义单元,而监控对象定义单元包括数据库表定义和sensor(监控)文件。客户端包捕获器模块进一步包括sensor请求单元、网络包截获器和适配器。监控系统服务器模块包括事件(event)配置单元、数据库单元、JMS(Java消息服务)队列单元和sensor文件。在本流程监控系统中,业务流程建模模块连接业务流程展示模块中的WS-⑶L解析单元,该WS-⑶L解析单元进一步连接监控元数据模型模块中的WS-CDL中间结构单元。另外,业务流程展示模块中的视图展示和配置单元也连接监控元数据模型模块中的监控对象定义单元。监控元数据模型模块与监控系统服务器模块连接,向其提供监控元数据。数据接收服务器模块和事件引擎模块也分别与监控系统服务器模块连接。监控系统服务器模块中的sensor文件输入客户端包捕获器模块中的sensor请求单元,在转换为sensor,xml后分别送入网络包截获器和适配器中,然后客户端包捕获器模块将输出结果送入数据接收服务器模块中。数据接收服务器模块将相应的事件送入事件引擎模块中,事件引擎模块相应触发业务流程展示模块。另外,监控系统服务器模块也与报表定制和展示模块进行连接。在本发明中,业务流程建模模块利用建模工具对业务流程进行建模,将建好的模型转换成标准的WS-CDL文件。所建立的模型要能够确切地描述实际的业务交互过程,并且底层建模语言的语法规则要能涵盖实际交互过程的各个方面。建立好模型后,将其转换成标准的WS-CDL业务编排语言,并上传到监控系统服务器模块。业务流程展示模块首先对业务流程建模模块创建的WS-CDL文件进行解析,生成一种中间表示结构,并缓存在客户端内存中。对于无限嵌套的结构可以使用一维数组来存储,其中的元素可以是工作单元(workunit),也可以是序结构的嵌套,还可以是序结构与基本活动的混合序列。图2展示了WS-⑶L文件的中间表示结构,其中控制(control)节点表示sequence(顺序)、parallel(并行)、choice(选择)或者工作单元这样的序结构元素,活动(activity)节点表示WS-⑶L规范的基本活动。图2中的一维数组实际上存储了一个编排(Choreography)的整体顺序结构,数组中元素的先后顺序代表了编排中最顶层活动的执行顺序。在数组中的控制节点包含一系列嵌套的顺序活动或是控制活动,即是说当结点是parallel或者choice时,它们内部的基本活动将存储为数据。从上往下看,实际上就是用链表来表示编排的互操作活动序列,并且随着模型的复杂度,整个数据结构也会变得非常的复杂。当解析WS-CDL文件时,以Choreography(编排)为根结点,遍历Choreography的下面一层子结点,以一维数组的形式存入流程监控系统中。当用户需要展示业务流程时,将从监控元数据模型模块中读取WS-CDL文件的中间表示结构并生成图形化界面。在本发明中,以树状结构表现所定义的顶层基本元素以及部分重要的属性,其图形化的元素和属性包括:命名空间(namespace);角色类型(roleType),以及其属性行为(behavior);关系类型(relationshipType);参与方类型(participantType);管道类型(channelType),以及其包括的可传递管道(passingchannel);信息类型(informationType);标识(token);标识定位符(tokenLocator)。关于建立图形化标识并设计流程编排工具的过程,可以参阅发明人在《华东理工大学学报》2011年第2期上发表的论文《基于WS-CDL的图形化编辑工具关键技术研究与实现》,在此就不具体说明了。图3显示了业务流程展示模块的总体框架设计。该业务流程展示模块主要分为三大功能单元,分别为:服务功能单元、WS-CDL解析单元、视图展示和配置单元。具体说明如下:当应用程序启动时,本模块将从监控系统服务器模块中读取WS-CDL文件列表,并将其缓存在客户端的缓存池中。当用户选择某个WS-CDL文件进行展示配置时,业务流程展示模块调用“加载WS-CDL文件服务”,该服务将从监控系统服务器模块加载相应的WS-CDL文件,并将其传送给WS-CDL解析单元。WS-CDL解析单元在对文件进行编译后将生成图2所示的中间表示结构。视图展示和配置单元读取对应的WS-CDL中间表示结构并予以解析,然后利用Flex开源框架展示出业务流程的图形节点。系统配置人员在展示出的图形节点上配置相关的信息,并将这些配置信息缓存在监控对象定义单元中,配置完成后进行部署。系统配置人员在展示的图形界面上进行各种配置,配置过程中生成的一些数据将缓存在监控对象定义单元中。当最后决定部署,监控对象定义单元的内容将被提交到监控系统服务器模块,并创建相应的数据库表、订阅JMS主题、注册事件和生成Sensor文件。监控元数据模型模块由WS-⑶L中间结构单元、监控对象定义单元和其它数据单元(用于存放事件配置信息)组成。监控对象定义单元包括Sensor文件、数据库表/JMS主题。另外,监控(sensor)文件是运行系统与监控系统的接口,包括交互标识符、主机名和端口、服务地址、参数组和存储等信息。其中监控文件的具体定义如下:交互识别符(identity):该识别符是配置某个交互时,流程监控系统根据交互的所有名称依据一定的命名规范自动生成。主机名(host)和端口(port),用于定义数据存储服务器所在的地址和端口,各个客户端的消息截取器需把获取到的信息发送至该主机。服务地址(wsdlAddress),指明某个交互实际引用的Web服务地址。参数组(p),描述需要从该Web服务中获取的信息。其中pname是模型中定义的属性的名字,xpath是指当前Web服务里对应属性用xpath的表示(因为Web服务的描述也是一个标准的xml文档,可以用xpath语言定位到xml文件中的信息结点),type描述该属性的字段类形,例如整形、浮点形或是字符串。存储(storage),能够定义获取消息存储的方式(type),例如存入数据库或者JMS0如果是数据存入数据库,那么式(type)的值为DB,并且相应需要声明数据库表(table)的名字。客户端包捕获器模块根据监控文件捕获网络包,分析交互消息与所述网络包的关系,将属于同一个会话的几个网络包进行分析,利用重组算法将所述网络包按照会话进行组装和关联,生成消息链;抽取所述消息链中包含的信息,存入数据库或者激发事件引擎触发事件,实现跨区域/跨系统的多方协同业务流程监控。在客户端包捕获器模块中,网络包截获器工作在数据链路层下,取得网卡的监听权限,以便获取网络包的内容。适配器根据监控元数据模型单元的监控目标定义,过滤出所需的网络包,并对网络包进行组装,抽取出需监听内容,进行格式转换后发送到监控系统服务器模块。包重组主要分为两种情况:第一种情况是,参与方的提供的Web服务都分别部署在不同的服务器上,此时服务的IP地址与端口号都各不相同。用户应用程序采用首先调用TCP(或UDP)协议由于TCP包头包含源端口号(16位)和目的端口号(16位),这两个端口号能寻找发送端和接收端应用进程。这两个端口号与IP首部中的源端IP地址和目标端IP地址唯一确定一个TCP连接。分析源IP和目标IP地址,如果IP地址与监控文件匹配,就可以对这些包进行分析,组装为会话的发送消息和接收消息。第二种情况是,多个Web服务部署在同一台服务器上。消息重组的具体方法如图4所示。假设TCPm和TCPa2是请求包,属于被分割的两个TCP包。TCPm和TCPb2是响应包,也是被分割的两个包。TCP包含有SEQ号(SequenceNumber)和ACK号(AckNumber),在A组的发送序列中,SEQa2=SEQai+TCPa1.data,length,若B组是针对A组消息的响应消息,那么存在这样的关系:ACKb=SEQa2+TCPa2.data,length。同一组子消息的SEQ号与所属同一组的前一个消息的字符串长度有关,而ACK号则和与之关联消息的SEQ号有关。依据消息之间的这种关系,将所有包进行组装和关联,生成消息链。图5显示了事件引擎模块的总体框架。该事件引擎模块主要包括信息处理、EPL(事件处理语言)生成器、服务、Esper事件引擎四大功能单元,其中Esper事件引擎为第三方提供的库。在配置信息处理完毕后,一方面将打包的规则和字段信息提交给EPL生成器单元,EPL生成器单元将组合字段信息与规则信息生成合法的EPL语句。这些EPL语句通过EPL注册服务发送给Esper事件引擎;另一方面,其它一些信息将调用服务单元的功能直接发送给Esper事件引擎。注册事件信息传送到Esper事件引擎后,Esper事件引擎将等待相关事件的到来。数据接收服务器模块接收到抓包程序发来的数据后,一方面将数据保存到数据库或者JMS队列中,另一方面形成事件发送给Esper事件引擎。Esper事件引擎接收到事件后,会根据EPL过滤出相关的事件。如果到达的事件符合条件,那么事件引擎会根据预先定义的规则处理事件。处理完事件后,再根据用户配置的信息,将事件产生的数据发送到数据库或者JMS队列中,同时将调用事件的监听程序(监听程序与EPStatement绑定),监听程序会通知报表进行更新操作。报表在接收到更新操作后,将从数据库或者JMS队列中读取新的数据。各个客户端包捕获器模块将消息链中包含的信息进行抽取,统一格式后存入数据库的相应表或是JMS队列中,如果遇到数据恰好符合事件定义,将触发事件引擎模块的动作。数据接收服务器模块接收来自客户端包捕获器模块所抓取的数据,接收到数据后将形成相应的事件发送给事件引擎模块或者处理数据并插入到数据库或者JMS队列中。监控系统服务器模块在跟踪某一具体业务时,对数据库和JMS队列进行访问,就能跟踪业务的运行状况。报表定制与展示模块实现根据需求定制各种报表并绑定相应的数据。当事件触发后,将实时地从数据库或者JMS队列中读取数据以更新内容。需要说明的是,本发明的具体实施方式可以以软件、硬件或者软件和硬件的结合来实现。其中硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明中的系统及其组件可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。以上对本发明所提供的基于Web服务编排描述语言的多方协同业务流程监控系统进行了详细的说明,但显然本发明的具体实现形式并不局限于此。对于本
技术领域
的一般技术人员来说,在不背离本发明的权利要求范围的情况下对它进行的各种显而易见的改变都在本发明的保护范围之内。权利要求1.一种基于Web服务编排描述语言的多方协同业务流程监控系统,其特征在于:所述多方协同业务流程监控系统由业务流程建模模块、业务流程展示模块、监控元数据模型模块、客户端包捕获器模块、事件引擎模块、监控系统服务器模块、数据接收服务器模块和报表定制和展示模块组成;所述业务流程建模模块连接所述业务流程展示模块,所述业务流程展示模块连接所述监控元数据模型模块,所述监控元数据模型模块连接所述监控系统服务器模块;所述监控系统服务器模块分别与所述客户端包捕获器模块、所述事件引擎模块、所述数据接收服务器模块和所述报表定制和展示模块进行连接;所述客户端包捕获器模块将输出结果送入所述数据接收服务器模块中,所述数据接收服务器模块将相应的事件送入所述事件引擎模块中,所述事件引擎模块相应触发所述业务流程展示模块。2.如权利要求1所述的多方协同业务流程监控系统,其特征在于:所述客户端包捕获器模块根据监控文件捕获网络包,分析交互消息与所述网络包的关系,将属于同一个会话的几个网络包进行分析,利用重组算法将所述网络包按照会话进行组装和关联,生成消息链;抽取所述消息链中包含的信息,存入数据库或者激发事件引擎触发事件,实现跨区域/跨系统的多方协同业务流程监控。3.如权利要求2所述的多方协同业务流程监控系统,其特征在于:所述重组算法中,同一组子消息的SEQ号与所属同一组的前一个消息的字符串长度相关,ACK号和与之关联消息的SEQ号相关。4.如权利要求1所述的多方协同业务流程监控系统,其特征在于:所述业务流程展示模块包括WS-⑶L解析单元、服务功能单元及视图展示和配置单元;所述监控元数据模型模块包括WS-CDL中间结构单元、其它数据单元及监控对象定义单元;所述业务流程建模模块连接所述业务流程展示模块中的WS-⑶L解析单元,该WS-⑶L解析单元连接所述监控元数据模型模块中的WS-⑶L中间结构单元。5.如权利要求1所述的多方协同业务流程监控系统,其特征在于:所述客户端包捕获器模块包括sensor请求单元、网络包截获器和适配器;所述监控系统服务器模块中的sensor文件输入至所述sensor请求单元,转换为sensor,xml后分别送入所述网络包截获器和所述适配器中。6.如权利要求5所述的多方协同业务流程监控系统,其特征在于:所述网络包截获器工作在数据链路层下,取得网卡的监听权限,以便获取网络包的内容;所述适配器根据所述监控元数据模型单元的监控目标定义,过滤出所需的网络包,并对所述网络包进行组装,抽取出需监听内容并发送到所述监控系统服务器模块中。7.如权利要求1所述的多方协同业务流程监控系统,其特征在于:所述业务流程展示模块对所述业务流程建模模块创建的WS-CDL文件进行解析,生成中间表示结构,并缓存在客户端内存中。8.如权利要求7所述的多方协同业务流程监控系统,其特征在于:所述中间表示结构由一维数组实现,其中控制节点表示顺序、并行、选择或者工作单元,活动节点表示WS-CDL规范的基本活动。全文摘要本发明一种基于Web服务编排描述语言的多方协同业务流程监控系统,由业务流程建模模块、业务流程展示模块、监控元数据模型模块、客户端包捕获器模块、事件引擎模块、监控系统服务器模块、数据接收服务器模块和报表定制和展示模块组成。其中,客户端包捕获器模块根据监控文件捕获网络包,分析交互消息与网络包的关系,将属于同一个会话的几个网络包进行分析,利用重组算法将网络包按照会话进行组装和关联,生成消息链;抽取消息链中包含的信息,存入数据库或者激发事件引擎触发事件。利用本发明,可以实现跨区域/跨系统的多方协同业务流程监控,有效地解决业务流程建模困难和无法进行业务流程监控的问题。文档编号G06Q10/06GK103218682SQ201310094009公开日2013年7月24日申请日期2013年3月22日优先权日2013年3月22日发明者阮彤,叶琪,周洁颖,刘龙,刘斌申请人:华东理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1