CN102799960A - 面向数据模型的并行业务流程异常检测方法 - Google Patents
面向数据模型的并行业务流程异常检测方法 Download PDFInfo
- Publication number
- CN102799960A CN102799960A CN2012102064653A CN201210206465A CN102799960A CN 102799960 A CN102799960 A CN 102799960A CN 2012102064653 A CN2012102064653 A CN 2012102064653A CN 201210206465 A CN201210206465 A CN 201210206465A CN 102799960 A CN102799960 A CN 102799960A
- Authority
- CN
- China
- Prior art keywords
- data
- task
- node
- existence
- data object
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种面向数据模型的并行业务流程异常检测方法,其步骤包括:1)对通过结构验证的业务流程进行划分,将同一网关下同一分支中的节点分在一个块中;2)在数据操作集上建立数据操作代数系统,并根据数据操作代数系统建立任务数据存在矩阵;矩阵的每一行是的数据存在状态向量,对应流程模型中的每一个任务;矩阵的每一列对应数据模型中的一个数据对象;3)基于所述任务状态矩阵,通过任务对数据的操作以及数据的存在状态对业务流程的异常进行检测。本发明可以高效处理包含大量并行分支的流程模型,对业务流程异常的检测效率高。
Description
技术领域
本发明属于信息技术领域,具体涉及一种面向数据模型的并行业务流程异常检测方法,可以在大型的并行业务流程上高效地进行异常检测。
背景技术
业务流程是“为了实现一定的经营目的而执行的一系列逻辑相关的活动的集合”,业务流程的输出是满足市场需要的产品或服务,业务流程的正确性是达到企业既定目标的重要前提。业务流程异常将导致企业业务上的损失,比如用户评价降低、资源浪费、效率降低等等。业务流程异常检测是通过自动化的方法检查业务流程模型中的错误,作为提高流程模型质量的重要手段,已成为业务流程建模过程中的重要一环。
然而近年来,随着分布式计算的普及以及企业对效率的需求,业务流程中的并行结构不断增多,结构也愈加复杂和庞大。目前大多数异常检测算法都基于状态空间搜索,在这些大规模的、包含大量并行分支的业务流程上进行异常检测时,将会出现状态空间爆炸的现象,很难保证高效性。同时,当前信息系统大都是数据密集型信息系统,业务流程中包含了大量对数据的操作,大量任务的执行以特定数据对象为前提,数据模型对于业务流程有着不可忽视的影响。然而业务流程模型与数据模型从不同的视角出发来描述系统,它们由不同的专家设计完成,这导致业务流程模型和数据模型之间可能存在潜在冲突,这种冲突使得在流程模型的数据模型均正确的情况下还有可能造成流程运行的异常。以往的方法大都未考虑数据模型对流程模型的影响,只是进行流程模型本身的异常检测,不能发现面向数据模型的流程异常。
目前已有的流程验证方法和验证工具主要分为以下三类:
(1)语法验证。语法验证主要检查流程模型是否符合建模语言或规范,它通常基于特定的建模语言。例如,使用YAWL建模后建模工具会检查是否符合YAWL语法。它是最底层的验证,仅能保证模型的描述没有语法错误,不能保证流程模型的正确性。
(2)结构验证。目前大多数研究都针对结构验证。结构验证大部分是针对流程的自身结构,即控制流(Control Flow),进行验证。结构正确性保证流程模型是无结构冲突的,是对流程正确性最基本的要求,常见的结构验证方法一般是基于soundness属性验证或者与soundness属性等价的liveness和boundness属性的,例如可达图法,图归约法、状态空间搜索法、流程逻辑法等;基于这些方法,已经开发了一些成熟的流程模型结构验证验证工具,其中最有代表性的是Wofan和WofanYAWL。
Woflan是荷兰埃因霍温科技大学研发的业务流程验证工具,项目领导者为业务流程研究领域的著名学者Wil M.P.van der Aalst。Woflan的验证方法基于Petri-net语言,Aalst等人(参考文献1:W.M.P.van der Aalst.Business Process Management Demystified:A Tutorial on Models,Systems and Standards for Workflow Management.In J.Desel,W.Reisig,G.Rosenberg(Eds.),Lecture Notes in Computer Science 3098,pp.1-65,Springer-Verlag,2004.参考文献2:W.M.P.van der Aalst,“Verification of Workflow Nets.”In P.Azéma and G.Balbo,editors,Application andTheory of Petri Nets,volume 1248 of Lecture Notes in Computer Science,pages 407-426.Springer-Verlag,Berlin,1997)对Petri-net做了大量研究,并在Petri-net的基础上提出了Workflow-net(WF-net)。WF-net对于常见的业务流程控制结构的模式都能很好地支持,它可以与很多其它描述能力相似的流程建模语言(如BPEL)互相转换。这就使得Woflan可以支持不同语言建立的流程模型的验证。WofYAWL对业务流程控制流提供更为全面的验证功能,WofYAWL基于YAWL语言。YAWL由Aalst等人提出,用来弥补WF-net在描述某些复杂流程复杂控制结构方面的一些不足,它支持诸如cancellation regions这样的高级控制结构。因此WofYAWL能检测更高级的业务流程控制结构。
Aalst等人(参考文献3:Wynn,M.T.,Aalst,W.M.P.V.D.,Hofstede,A.H.M.T.,and Edmond,D.Verifying Workflows with Cancellation Regions and OR-Joins:An Approach Based on Reset Netsand Reachability Analysis.In Proceedings of Business Process Management.2006,389-394.参考文献4:H.M.W.Verbeek,Wil M.P.van der Aalst,Arthur H.M.ter Hofstede.Verifying Workflowswith Cancellation Regions and OR-joins:An Approach Based on Relaxed Soundness and Invariants.Comput.J.,2007:294~314)提出了一种检测包含复杂控制结构cancellation regions和OR-join的并行业务流程的方法:通过判断是否满足Soundness,Weak soundness,Irreducible cancellationregions以及Immutable OR-joins这四个属性来衡量模型的正确性。但是这四个属性的判断是基于可达性和可覆盖性分析的,即要遍历流程执行中的整个状态空间,在流程并行分支数较多是将发生组合爆炸现象,使得流程的验证很难在短时间内完成。
另一方面,WofYAWL、Woflan以及其它结构验证方法,都仅仅考虑了流程模型本身,并未考虑数据模型对流程的影响,从而不支持面向数据模型的并行流程模型异常检测。
(3)语义验证。语义验证是层次最高、最完整的验证,保证流程模型的定义与实际业务流程的目标一致性,在执行中不会出现异常。现在一些基于数据流验证的方法,例如文献“SunS,Nunamaker J,Zhao J,Sheng O:Formulating the data-flow perspective for business processmanagement.Information Systems Research,2006,17(4):374-391”考虑了流程的语义信息,是语义验证的雏形。但完整的、实际可执行的流程模型正确性应该基于数据模型和流程模型的共同作用,考虑数据模型对流程的影响。
目前很少有验证方法是基于语义验证的。一种基于Data-Process Graph的一致性验证方法(简称DPGT算法),可以发现业务流程模型受数据模型影响而产生的异常,是一种语义验证方法。但是DPGT算法的原理是搜索Data-Process Graph的状态空间,需要遍历流程执行中所有可能的状态。对于包含并行分支的业务流程来说,会发生组合爆炸的情况。例如,假设并行业务流程模型有m个并行分支,每个分支有n个任务,可能的执行序列个数是:当m或n比较大时,对每种序列进行验证是不切实际的,算法不可能在短时间内完成。
综上所述,解决面向数据模型的并行业务流程异常检测的问题主要有以下困难:1)大量的并行分支使异常检测很难在短时间内完成。对于含有大量并行分支的业务流程,必须对算法做出优化,防止算法复杂度随并行分支个数呈指数增长。然而目前针对并行流程进行处理优化的方法较为少见。2)异常是由于并行流程模型与数据模型之间的不一致性而产生的。要检测流程模型和数据模型之间的不一致性异常,必须综合考虑这两个模型。传统的业务流程检测往往只针对单独的业务流程模型,而没有考虑数据模型的影响。例如验证流程模型的是否满足一些属性,如soundness属性。这些方法可以发现控制结构的错误,比如死锁、不可达任务等,但是无法检测出上述例子中的异常。
发明内容
本发明的目的在于针对上述问题,综合考虑数据模型和流程模型的相互影响,提出一种面向数据模型的并行业务流程异常检测方法,可以高效处理包含大量并行分支的流程模型,并且可以发现常规方法不能发现的流程异常。
为实现上述目的,本发明采用如下技术方案:
一种面向数据模型的并行业务流程异常检测方法,其步骤包括:
1)对通过结构验证的业务流程进行划分,将同一网关下同一分支中的节点分在一个块中;
2)在数据操作集上建立数据操作代数系统,并根据所述数据操作代数系统建立任务数据存在矩阵;所述矩阵的每一行是的数据存在状态向量,对应流程模型中的每一个任务;所述矩阵的每一列对应数据模型中的一个数据对象;
3)基于所述任务状态矩阵,通过任务对数据的操作以及数据的存在状态对业务流程的异常进行检测。
进一步地,步骤1)根据节点层次对所述业务流程进行分块。
进一步地,步骤2)所述数据操作集为M={α,δ,ε,τ),其中,α表示创建数据,δ表示删除数据,ε表示既有创建操作又有删除操作,τ表示未对数据对象进行操作;所述数据操作代数系统为其中,⊙和分别是一个M×M→M的闭合二元运算,⊙运算用于得出一系列串行的任务或块的数据操作结,用于合并并行的两个任务对同一个数据对象的操作和合并同一块中的任务对同一数据对象的操作。
进一步地,采用DMVi=(mi0,mi1,…,mik-1)表示一个k维的数据操作向量,其中k=|D|,mij∈M表示节点ni对数据dj∈D的操作。
进一步地,步骤2)所述数据存在状态向量为n维向量(x0,x1,…,xn-1),其中,L表示数据对象不存在,E表示数据对象存在,U表示数据对象存在状态不能确定,(x0,x1,…,xn-1)分别对应数据模型中的n个数据对象的数据存在状态。
进一步地,在建立所述任务数据存在矩阵时,以宽度优先的方法对业务流程进行遍历,对于每一个节点,根据该节点自身、该节点的父节点和与该节点并行的节点对数据的操作,以及该节点的父节点的数据存在状态,来确定该节点执行时数据的存在状态。
进一步地,步骤3)所述异常包括数据创建失败、控制条件不满足和数据前提缺失。
本发明的优点和积极效果如下:
1)通过研究,本发明总结出三类因数据模型与流程模型不一致而使得业务流程可能产生的异常:数据创建失败、控制条件不满足和数据前提缺失。对这三种异常的验证是业务流程的语义验证过程。通过了语义验证的业务流程,不会因为数据模型的影响而在实际执行过程中产生异常。
2)为了获得更好的规模性,也为了研究不同分支之间的相互影响,本发明提出了业务流程上节点的一种划分模型:流程分块模型。该方法的基本思路就是将同一网关下的一个分支作为一个块进行处理,这样不但缩小了问题规模,保证了异常检测算法的规模性,使得算法复杂度不会随并行分支的增加而激增;同时,也使得不同分支间的影响变得明显。
3)为了研究数据操作之间的影响,本发明抽象出数据操作的代数形式,并构建了代数系统。通过形式化的方法合并不同任务对数据的操作并体现并行任务间的相互影响。
4)本发明提出了任务数据存在矩阵模型(TDEM)来建立并行业务流程模型和数据模型之间的关系,并给出基于TDEM的检测方法对三种异常进行检测。理论分析和实验结果均表明本发明方法的高效率和对异常的高检出率。
附图说明
图1为本发明实施例的方法的步骤流程图。
图2为本发明实施例的流程分块示意图。
图3为采用本发明方法与data-flow方法进行异常检测所用时间的对比示意图。
图4为采用本发明方法与data-flow方法进行异常检测的有效性对比示意图。
具体实施方式
下面通过具体实施例,并配合附图,对本发明做详细的说明。
本发明解决的是并行业务流程的语义验证问题,为此,首先研究业务流程模型与数据模型之间的交互关系,以及可能产生的异常,主要有以下三种:
数据创建失败:在流程的运行过程中任务可能生成由数据模型定义的数据对象,这种交互关系称为数据产品。如果任务创建数据对象时,该数据对象所依赖的数据对象未被创建,导致任务的等待,甚至发生死锁,此时将产生数据创建失败异常。
控制条件不满足:业务流程的网关控制规则中通常包含一些数据对象,因此,数据对象将会影响流程的执行实例,这种交互关系称为数据驱动。如果存在某个数据约束与网关的某个控制条件发生冲突,导致控制条件永远无法被满足,就将产生实际执行过程中的不可达路径,此时将会产生异常控制条件不满足。
数据前提缺失:任务的执行可能会依赖于特定的数据对象,这种交换关系称为数据前提。任务触发时如果它所依赖的数据对象未被创建,就将导致任务无法正常执行,从而发生数据前提缺失异常。
为了检测这三种异常,在各个业务流程实例中,每个任务执行前的数据状态都必须事先推断出来。在Sherry X.Sun等人(Sun S,Nunamaker J,Zhao J,Sheng O:Formulating thedata-flow perspective for business process management.Information Systems Research,2006,17(4):374-391)提出的数据流(Data-Flow)验证方法中,是通过遍历的方法获得了所有业务流程实例,然后再在每种业务流程实例上穷举检查是否有可能产生数据流异常。这种方法时间复杂度较高,如果在并行业务流程上使用这种异常检测方法,大量的并行分支将会导致状态空间爆炸,使得异常检测很难正常完成。
为了保证在并行业务流程上异常检测算法的效率,本发明首先对整个流程进行了划分,然后提出了数据操作代数系统,根据任务对数据的操作来推导数据的存在状态,最后使用数据任务状态矩阵来表示任务与数据间的关系,进行异常检测。本发明方法的步骤流程如图1所示,下面进行详细的介绍。
1.流程划分
在本发明中使用一种基于BPMN的语言表示业务流程,对于其他语言或规范定义的业务流程也同样能运用本发明提出的方法。目前已有很多方法解决结构验证问题,还没有方法能够高效和有效的解决语义验证的问题。而本发明主要是解决业务流程面向数据模型的异常检测,即流程的语义验证问题,因此假设使用的业务流程均已通过结构验证。
1)业务流程
业务流程以一个元组P=(N,F,D,DM,I,DCM,DCP)来表示,其中:
N为业务流程中节点的集合。
type:N→Ap∪Gp将一个节点映射到他的类型,其中,Ap是任务类型集合,Gp是网关类型集合,GP={AND-split,AND-join,OR-split,OR-join,XOR-split,XOR-join};指定了节点之间的顺序关系;N和F定义了一个有向无环图(DAG);
DM为数据对象所满足的数据模型;
D为流程中出现的所有数据对象的集合;
DCM为数据模型上的所有数据约束;
DCP为流程模型上的所有网关条件。
在并行业务流程上,有大量的网关嵌套结构,为此,本发明提出了节点层次的概念。
2)节点层次
设ni∈N是P上的节点,Parent:N→N.parent(ni)表示把ni映射到它的父节点;parentsSet:N→2N表示把一个节点映射到它的所有祖先节点的集合;level:N→Z+表示把一个节点映射到它的层数。节点层次的计算方法为:
level(ni):=|{nj|nj∈parentsSet(ni)& type(nj)∈{AND-split,OR-split,XOR-split}or nj∈{AND-split,OR-split,XOR-split}}|-|{nj|nj∈parentsSet(ni)& type(nj)∈{AND-join,OR-join,XOR-join}}|
节点层次反映出的节点所在的网关的嵌套层次,据此,可以对节点进行划分。
3)流程分块
设P=(N,F,O,DB,I,DCM,DCP)是一个并行业务流程,一个流程分块Bi是N的一个子集,其中的节点和相应的流关系(F)的子集构成了一个子图,levelB:2N→Z+表示将这个流程分块映射到它的层数,levelB(Bj):=MIN{level(ni)|ni∈Bj}。
通过节点所在的分支对流程进行划分,即同一分支下的节点分在一个块中。图2为本实施例的流程分块示意图。由于网关节点存在嵌套关系,因此,不同的分块间也存在嵌套关系。具体的分块方法如下:
对流程进行分块后,可以以块为单位进行数据操作的计算。
2.数据操作代数系统
本发明先将任务或一个块的数据操作抽象为代数的形式,然后建立代数系统,给出了计算数据操作之间影响的形式化推导方法。
1)数据操作向量Data Manipulation Vector(DMV)
设M={α,δ,ε,τ}是数据操作的集合,其中α表示创建数据,δ表示删除数据,ε表示既有创建操作又有删除操作,τ表示未对数据对象进行操作。设DMVi=(mi0,mi1,…,mik-1)是一个k维的数据操作向量,其中k=|D|,mij∈M表示节点ni对数据dj∈D的操作。
在数据操作的基础之上,引入两种数据操作间的代数运算,与数据操作集M一起构成代数系统。
2)数据操作代数系统
从运算表易证⊙运算满足结合律和幂等率,并且τ是⊙运算的单位元;同时,运算满足结合律、交换律、幂等率,并且τ是运算的单位元;同时,⊙运算对运算有分配率,即对于任意M中的元素x,y,z都有并且 这些运算性质可以运用到对数据操作向量的推导过程中,从而简化运算。
⊙运算主要用于得出一系列串行的任务或块的数据操作结。主要用于两种情况:首先,用于合并并行的两个任务对同一个数据对象的操作,在实际的执行过程中两个并行任务的先后执行顺序是不确定的,因此在推导数掘存在状态时他们的数据操作都要被考虑。其次,用于合并同一块中的任务对同一数据对象的操作,运算结果表明这个块可能对其他并行的块造成的影响,因此,每个块都会有一个块中所有任务的数据操作向量的运算结果,将其定义为块潜在数据操作向量(BPDM,Block potential data manipulation)。
3)块潜在数据操作向量
BPDMV是一个类似于DMV的向量,它表示一个块Bj可能对数据对象的操作。
3.任务数据存在矩阵
假设一个并行业务流程中共有m个任务,操作涉及到n个数据对象,任务数据存在矩阵(TDEM)通过一个m*n矩阵来描述数据与任务之间的关系。构成TDEM的是m个数据存在状态向量,每一个数据存在状态向量表明当前任务执行完毕后每一个数据对象的存在状态。以
下是详细的定义。
1)数据存在状态向量(DEV)
DEV是一个n维向量(x0,x1,…,xn-1),其中其中L表示数据对象不存在,E表示数据对象存在,U表示数据对象存在状态不能确定。(x0,x1,…,xn-1)分别对应数据模型中的n个数据对象d0,d1,…,dn-1的数据存在状态。定义起始任务的数据存在状态是系统开始运行时各数据的存在状态。
2)任务数据存在矩阵(TDEM)
例如,一个TDEM的片段如下,其中带有下划线的数据表示由于数据的存在状态不确定将会导致异常:
TDEM具有如下特点:
1)TDEM是一种形式化的定义。它将流程模型中的任务与数据模型中的数据对象之间的关系通过矩阵的方式抽象地表示出来。
2)TDEM是一个面向分析的矩阵,它是为了分析因并行业务流程模型与数据模型的冲突而产生的异常,忽略了对于该分析没有价值的信息,从而合理地简化了问题的复杂度。
3)TDEM的定义独立于特定的流程模型和数据模型描述语言。只要有关于流程模型和数据模型足够多的信息,就可以创建出TDEM。
为了实现基于TDEM的异常检测,首先要构建TDEM。以宽度优先的方法对业务流程进行遍历,对于每一个节点,根据该节点自身、该节点的父节点和与该节点并行的节点对数据的操作,以及该节点的父节点的数据存在状态,来确定该节点执行时数据的存在状态。
下面详细讨论TDEM的构建方法。
TDEM由每个节点的DEV所构成,而节点ni的DEV受到以下三个因素的影响:
ni父节点的DEV,子节点的DEV有时会直接继承父节点的DEV;
ni自身对数据对象的操作;
所有与ni并行的节点对数据对象的操作。
针对第三种因素,本发明提出了数据操作向量栈(DMVS)的概念。数据操作向量栈可以用来快速确定与当前节点并行的所有节点可能的数据操作。流程中每个节点都有一个DMVS但是子节点与父节点的DMVS最多仅有顶端元素不同。数据操作向量栈中存放了与当前节点并行的所有块的BPDMV,并且越靠近栈底的元素是层次越高的块的BPDMV,栈顶的元素是与当前节点并行的同层块的BPDMV,因此子节点的DMVS可以很方便的从父节点的DMVS上获得。具体的算法如下
在计算TDEM时,需要将ni.DMVS中的所有元素做运算,表示这些与当前节点并行的块对数据的操作有可能对当前的数据存在状态造成影响,将此结果记为ni.DMPV。如果要计算DEV的节点是非-split节点,就可以通过下表的对应方式直接推出了。其中DEV[j]表示的是DEV中的一位(即某一个数据对象的存在状态),*表示可以是任意当前域上的取值,DMVi[j]表示当前节点对这一位的操作。
对于-join节点的DEV的计算要相对复杂一些,由于它的祖先不止一个,需要考虑在它之上的所有分支的情况,而由于一个分支构成了一个流程分块(定义3和算法1),本发明引入了块数据操作向量的概念(Block Data Manipulation Vector,BDMV)来表示一个-split节点上的所有分支对数据的操作。
BDMV表示了一个块中的所有任务对数据操作的汇总。由于块是分级的,因此在计算一个块的BDMV时先要计算其子块的BDMV。然后,对于一个块中的并行结构,使用运算来合并它们的数据操作向量(DMV或BDMV),使用⊙运算合并串行结构上的数据操作向量,例如,要计算图2表示的DEV12(V12的数据存在状态向量),首先要计算B1的BDMV1和B2的BDMV2,而为了计算BDMV2,要先计算BDMV3和BDMV4,而为了计算BDMV3还要计算BDMV5和BDMV6:
下面的算法总结了TDEM的计算方法:
4.基于TDEM的异常检测方法
本发明提出的并行业务流程的异常检测方法基于TDEM,通过任务对数据的操作以及当时数据的存在状态来发现异常。下文首先给出并行业务流程模型与数据模型之间的不一致造成异常的判定方法,然后得出异常检测方法。
数据前提缺失异常:并行业务流程中的一个任务tj的前提数据中包含数据对象dk,设该并行业务流程模型的TDEM是M,则当且仅当任务数据存在矩阵中的第j行第k列的元素是L,即M[j][k]=L时,表示任务j执行时数据对象k不存在,则任务tj一定会发生数据前提缺失异常;当M[j][k]=U,表示任务j执行时数据对象k存在状态不确定,任务tj有发生数据前提缺失异常的可能,即存在一种流程执行的可能,使任务tj发生数据前提缺失异常。
数据创建失败异常:并行业务流程中的一个任务tj所创建的数据对象依赖的前提数据中包含数据对象dk,设该并行业务流程模型的TDEM是M,则当且仅当M[j][k]=L,即任务j执行时数据对象k不存在时,任务tj一定会发生数据创建失败异常;当M[j][k]=U,即任务j执行时数据对象k存在状态不确定时,任务tj有发生数据创建失败异常的潜在可能,即,存在一种流程执行的可能,使任务tj发生数据创建失败异常。
控制条件不满足异常:控制条件不满足异常的检测与流程任务的执行顺序无关,而仅与网关中的条件和数据约束条件有关系。在进行异常检测时,遍历数据库中的数据约束条件和流程中的数据约束条件,如果有冲突,则会产生控制条件不满足异常。
基于异常判定方法,可以按照如下的程序流程进行异常检测:
下面给出本发明方法的时间复杂度的理论分析,以证明方法的高效性。
设并行业务流程P=(N,F,D,DM,I,DCM,DCP)上的节点个数是n=|N|,数据对象个数m=|D|。首先,将流程划分成b个流程分块,需要对整个流程进行一次遍历,需要n步;然后,计算每个块的PDM,由于向量的维度是m,而有b个块,因此最多需要n*m*b步;然后生成TDEM,期间可能要计算BDMV,最多使用n*m*b步,而TDEM矩阵有n*m个元素,需要n*m步;最后,异常检测需要遍历任务与数据的交互关系,最多需要n*m步。因此,总的时间复杂度为O(b·m·n),如果设并行度为p,那么b=O(p),因此,在节点数和数据对象数固定的情况下,算法复杂度与并行业务流程的并行度呈线性关系,及时不固定结点数和数据对象数,算法的复杂度也不会随并行分支数的增加而大幅上升。下面通过实验证明算法的高效性和有效性。
下面通过一个具体的应用实例说明本发明的方法。
本实例的实验环境为:CPU:Core i3-2120(3.30GHz),RAM:8G,OS:windows7。
对比实验采用Sherry X.Sun等人(Sun S,Nunamaker J,Zhao J,Sheng O:Formulating thedata-flow perspective for business process management.Information Systems Research,2006,17(4):374-391.)的data-flow验证方法。实验数据使用随机生成的业务流程,其中有4个参数:
─nodesPerBranch,每个分支上的节点个数;
─branchNum,每个-split网关下的分支个数;
─splitNodeNum,-split网关的总个数;
─dataObjectNum,数据对象总个数。
固定数据对象数(dataObjectNum)为10,每个分支上的节点个数(branchNum)为20,然后改变-split网关的总个数(splitNodeNum)和每个-split网关下的分支个数(branchNum)得到一系列并行业务流程,并运行异常检测算法,得到的结果如图3所示。图3为采用本发明方法与data-flow方法进行异常检测所用时间的对比示意图。两图横轴分别是分支个数(branchNum)和-split网关的总个数(splitNodeNum),表格中显示出随branchNum或splitNodeNum的增加,总结点个数的增加。纵轴均使用对数坐标,表示异常检测所花费的时间。可以看出随着branchNum或splitNodeNum的增加data-flow验证方法耗时呈指数级上升,发生了状态空间爆炸的现象;而本发明方法耗时上升比较缓慢。
有效性方面,随机生成了6个数据集,数据集的参数如下表,得到的结果如图4所示。图4横轴表示每种异常,纵轴表示异常的检出百分比,PDU表示数据前提缺失异常,DDU表示数据创建失败异常,DCC表示控制条件不满足异常。data-flow验证方法对于数据前提缺失的异常可以检测出来,但由于其并未考虑数据模型中的依赖关系和约束条件,无法检测出PDU和DDU异常,而本发明方法则能够检出出全部3种异常。
data-flow方法对于数据前提缺失的异常可以检测出来,但由于其并未考虑数据模型中的依赖关系和约束条件,无法检测出其它两类异常。而本发明方法可以非常高效地检测出三种异常。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求所述为准。
Claims (10)
1.一种画向数据模型的并行业务流程异常检测方法,其步骤包括:
1)对通过结构验证的业务流程进行划分,将同一网关下同一分支中的节点分在一个块中;
2)在数据操作集上建立数据操作代数系统,并根据所述数据操作代数系统建立任务数据存在矩阵;所述矩阵的每一行是的数据存在状态向量,对应流程模型中的每一个任务;所述矩阵的每一列对应数据模型中的一个数据对象;
3)基于所述任务状态矩阵,通过任务对数据的操作以及数据的存在状态对业务流程的异常进行检测。
2.如权利要求1所述的方法,其特征在于,步骤1)根据节点层次对所述业务流程进行分块。
4.如权利要求3所述的方法,其特征在于:采用DMVi=(mi0,mi1,…,mik-1)表示一个k维的数据操作向量,其中k=|D|,mij∈M表示节点ni对数据dj∈D的操作。
6.如权利要求5所述的方法,其特征在于,通过数据操作向量栈存放与当前节点并行的所有块的块潜在数据操作向量。
7.如权利要求1所述的方法,其特征在于:步骤2)所述数掘存在状态向量为n维向量(x0,x1,…,xn-1),其中,L表示数据对象不存在,E表示数据对象存在,U表示数据对象存在状态不能确定,(x0,x1,…,xn-1)分别对应数据模型中的n个数据对象的数据存在状态。
8.如权利要求1所述的方法,其特征在于:在建立所述任务数据存在矩阵时,以宽度优先的方法对业务流程进行遍历,对于每一个节点,根据该节点自身、该节点的父节点和与该节点并行的节点对数据的操作,以及该节点的父节点的数据存在状态,来确定该节点执行时数据的存在状态。
9.如权利要求1所述的方法,其特征在于,步骤3)所述异常包括数据创建失败、控制条件不满足和数据前提缺失。
10.如权利要求9所述的方法,其特征在于,所述异常的判定方法为:
1)并行业务流程中的一个任务tj的前提数据中包含数据对象dk,设该并行业务流程模型的任务数据存在矩阵是M,则当且仅当矩阵M中的第j行第k列的元素M[j][k]=L,即任务j执行时数据对象k不存在时,任务tj一定会发生数据前提缺失异常;当M[j][k]=U,即任务j执行时数据对象k存在状态不确定时,任务tj有发生数据前提缺失异常的可能;
2)并行业务流程中的一个任务tj所创建的数据对象依赖的前提数据中包含数据对象dk,设该并行业务流程模型的任务数据存在矩阵是M,则当且仅当M[j][k]=L,即任务j执行时数据对象k不存在时,任务tj一定会发生数据创建失败异常;当M[j][k]=U,即任务j执行时数据对象k存在状态不确定时,任务tj有发生数据创建失败异常的可能;
3)遍历数据库中的数据约束条件和流程中的数据约束条件,如果有冲突,则会产生控制条件不满足异常。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210206465.3A CN102799960B (zh) | 2012-06-18 | 2012-06-18 | 面向数据模型的并行业务流程异常检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210206465.3A CN102799960B (zh) | 2012-06-18 | 2012-06-18 | 面向数据模型的并行业务流程异常检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102799960A true CN102799960A (zh) | 2012-11-28 |
CN102799960B CN102799960B (zh) | 2016-06-08 |
Family
ID=47199059
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210206465.3A Expired - Fee Related CN102799960B (zh) | 2012-06-18 | 2012-06-18 | 面向数据模型的并行业务流程异常检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102799960B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105930105A (zh) * | 2016-05-20 | 2016-09-07 | 中国农业银行股份有限公司 | 一种并行网关的节点检测方法及装置 |
CN106980935A (zh) * | 2017-03-27 | 2017-07-25 | 北京航空航天大学 | 一种基于可配置过程模型的过程实例集合演化管理方法 |
CN107277005A (zh) * | 2017-06-13 | 2017-10-20 | 深圳市永达电子信息股份有限公司 | 一种分布式的业务流程检测方法 |
CN107688504A (zh) * | 2016-08-05 | 2018-02-13 | 中兴通讯股份有限公司 | 数据管理异常的补救方法及系统 |
CN109669772A (zh) * | 2018-12-28 | 2019-04-23 | 第四范式(北京)技术有限公司 | 计算图的并行执行方法和设备 |
CN113420419A (zh) * | 2021-05-28 | 2021-09-21 | 浙江大学 | 一种微服务场景下的业务流程模型分析方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070005266A1 (en) * | 2004-05-04 | 2007-01-04 | Fisher-Rosemount Systems, Inc. | Process plant monitoring based on multivariate statistical analysis and on-line process simulation |
CN101339532A (zh) * | 2007-07-06 | 2009-01-07 | 中国银联股份有限公司 | 一种Web应用系统的自动化测试方法及装置 |
CN101866449A (zh) * | 2009-04-20 | 2010-10-20 | 西门子公司 | 用于管理产品生产规则的产品分段的方法 |
-
2012
- 2012-06-18 CN CN201210206465.3A patent/CN102799960B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070005266A1 (en) * | 2004-05-04 | 2007-01-04 | Fisher-Rosemount Systems, Inc. | Process plant monitoring based on multivariate statistical analysis and on-line process simulation |
CN101339532A (zh) * | 2007-07-06 | 2009-01-07 | 中国银联股份有限公司 | 一种Web应用系统的自动化测试方法及装置 |
CN101866449A (zh) * | 2009-04-20 | 2010-10-20 | 西门子公司 | 用于管理产品生产规则的产品分段的方法 |
Non-Patent Citations (1)
Title |
---|
尹宁等: "一种面向数据模型的并行业务流程异常检测方法", 《计算机研究与发展》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105930105A (zh) * | 2016-05-20 | 2016-09-07 | 中国农业银行股份有限公司 | 一种并行网关的节点检测方法及装置 |
CN105930105B (zh) * | 2016-05-20 | 2018-11-20 | 中国农业银行股份有限公司 | 一种并行网关的节点检测方法及装置 |
CN107688504A (zh) * | 2016-08-05 | 2018-02-13 | 中兴通讯股份有限公司 | 数据管理异常的补救方法及系统 |
CN106980935A (zh) * | 2017-03-27 | 2017-07-25 | 北京航空航天大学 | 一种基于可配置过程模型的过程实例集合演化管理方法 |
CN106980935B (zh) * | 2017-03-27 | 2020-06-30 | 北京航空航天大学 | 一种基于可配置过程模型的过程实例集合演化管理方法 |
CN107277005A (zh) * | 2017-06-13 | 2017-10-20 | 深圳市永达电子信息股份有限公司 | 一种分布式的业务流程检测方法 |
CN109669772A (zh) * | 2018-12-28 | 2019-04-23 | 第四范式(北京)技术有限公司 | 计算图的并行执行方法和设备 |
CN113420419A (zh) * | 2021-05-28 | 2021-09-21 | 浙江大学 | 一种微服务场景下的业务流程模型分析方法 |
CN113420419B (zh) * | 2021-05-28 | 2022-04-01 | 浙江大学 | 一种微服务场景下的业务流程模型分析方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102799960B (zh) | 2016-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Barbierato et al. | Performance evaluation of NoSQL big-data applications using multi-formalism models | |
Lenstra Jr | Integer programming with a fixed number of variables | |
Guenov et al. | Application of axiomatic design and design structure matrix to the decomposition of engineering systems | |
Liu et al. | A branching-process-based method to check soundness of workflow systems | |
CN102799960A (zh) | 面向数据模型的并行业务流程异常检测方法 | |
CN105868116A (zh) | 基于语义变异算子的测试用例生成和优化方法 | |
CN103226743A (zh) | 基于trl的航空装备技术成熟度评估信息处理方法 | |
Kluza et al. | Square complexity metrics for business process models | |
Chen et al. | Optimizing the product derivation process | |
Strüber et al. | Tool support for clustering large meta-models | |
US20190005169A1 (en) | Dynamic Design of Complex System-of-Systems for Planning and Adaptation to Unplanned Scenarios | |
Li et al. | Research and application of computer aided design system for product innovation | |
Baruwa et al. | TIMSPAT–Reachability graph search-based optimization tool for colored Petri net-based scheduling | |
CN107122849B (zh) | 基于SparkR的产品检测总完工时间极小化方法 | |
KR102444589B1 (ko) | 건설분야 문서 분석 방법 | |
Panwar et al. | A Genetic algorithm based technique for efficient scheduling of tasks on multiprocessor system | |
CN103942235A (zh) | 针对大规模数据集交叉比较的分布式计算系统和方法 | |
Li et al. | Workflow timed critical path optimization | |
Haiyan et al. | A rework reduction mechanism in complex projects using design structure matrix clustering methods | |
Angles et al. | Power-law distributed graph generation with mapreduce | |
Fernando et al. | Workflowdsl: Scalable workflow execution with provenance for data analysis applications | |
Álvarez-Rodríguez et al. | Survey of Scientific Programming Techniques for the Management of Data‐Intensive Engineering Environments | |
Yessayan | Improvements to the THOR Neutral Particle Transport Code on High-Performance Computing Systems via Acceleration, Parallelization, and Performance Analysis. | |
Pandey et al. | A distributed pool architecture for highly constrained optimization problems in complex systems design | |
Mostaeen | Towards Collaborative Scientific Workflow Management System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160608 Termination date: 20210618 |