面向数据模型的并行业务流程异常检测方法

文档序号:6371850阅读:201来源:国知局

专利名称::面向数据模型的并行业务流程异常检测方法
技术领域
:本发明属于信息
技术领域
,具体涉及一种面向数据模型的并行业务流程异常检测方法,可以在大型的并行业务流程上高效地进行异常检测。
背景技术
:业务流程是“为了实现一定的经营目的而执行的一系列逻辑相关的活动的集合”,业务流程的输出是满足市场需要的产品或服务,业务流程的正确性是达到企业既定目标的重要前提。业务流程异常将导致企业业务上的损失,比如用户评价降低、资源浪费、效率降低等等。业务流程异常检测是通过自动化的方法检查业务流程模型中的错误,作为提高流程模型质量的重要手段,已成为业务流程建模过程中的重要一环。然而近年来,随着分布式计算的普及以及企业对效率的需求,业务流程中的并行结构不断增多,结构也愈加复杂和庞大。目前大多数异常检测算法都基于状态空间搜索,在这些大规模的、包含大量并行分支的业务流程上进行异常检测时,将会出现状态空间爆炸的现象,很难保证高效性。同时,当前信息系统大都是数据密集型信息系统,业务流程中包含了大量对数据的操作,大量任务的执行以特定数据对象为前提,数据模型对于业务流程有着不可忽视的影响。然而业务流程模型与数据模型从不同的视角出发来描述系统,它们由不同的专家设计完成,这导致业务流程模型和数据模型之间可能存在潜在冲突,这种冲突使得在流程模型的数据模型均正确的情况下还有可能造成流程运行的异常。以往的方法大都未考虑数据模型对流程模型的影响,只是进行流程模型本身的异常检测,不能发现面向数据模型的流程异常。目前已有的流程验证方法和验证工具主要分为以下三类(I)语法验证。语法验证主要检查流程模型是否符合建模语言或规范,它通常基于特定的建模语言。例如,使用YAWL建模后建模工具会检查是否符合YAWL语法。它是最底层的验证,仅能保证模型的描述没有语法错误,不能保证流程模型的正确性。(2)结构验证。目前大多数研究都针对结构验证。结构验证大部分是针对流程的自身结构,即控制流(ControlFlow),进行验证。结构正确性保证流程模型是无结构冲突的,是对流程正确性最基本的要求,常见的结构验证方法一般是基于soundness属性验证或者与soundness属性等价的Iiveness和boundness属性的,例如可达图法,图归约法、状态空间搜索法、流程逻辑法等;基于这些方法,已经开发了一些成熟的流程模型结构验证验证工具,其中最有代表性的是Wofan和WofanYAWL。Woflan是荷兰埃因霍温科技大学研发的业务流程验证工具,项目领导者为业务流程研究领域的著名学者WilM.P.vanderAalst。Woflan的验证方法基于Petri-net语言,Aalst等人(参考文献I:W.M.P.vanderAalst.BusinessProcessManagementDemystified:ATutorialonModels,SystemsandStandardsforWorkflowManagement.InJ.Desel,W.Reisig,G.Rosenberg(Eds.),LectureNotesinComputerScience3098,pp.1-65,Springer-Verlag,2004.参考文献2:W.M.P.vanderAalst,“VerificationofWorkflowNets.,,InP.AzemaandG.Balbo,editors,ApplicationandTheoryofPetriNets,volume1248ofLectureNotesinComputerScience,pages407-426.Springer-Verlag,Berlin,1997)对Petri-net做了大量研究,并在Petri-net的基础上提出了Workflow-net(WF-net)。WF-net对于常见的业务流程控制结构的模式都能很好地支持,它可以与很多其它描述能力相似的流程建模语言(如BPEL)互相转换。这就使得Woflan可以支持不同语言建立的流程模型的验证。WofYAWL对业务流程控制流提供更为全面的验证功能,WofYAWL基于YAWL语言。YAWL由Aalst等人提出,用来弥补WF-net在描述某些复杂流程复杂控制结构方面的一些不足,它支持诸如cancellationregions这样的高级控制结构。因此WofYAWL能检测更高级的业务流程控制结构。Aalst等人(参考文献3ffynn,M.T.,Aalst,ff.M.P.V.D.,Hofstede,A.H.M.T.,andEdmond,D.VerifyingWorkflowswithCancellationRegionsandOR-Joins:AnApproachBasedonResetNetsandReachabilityAnalysis.InProceedingsofBusinessProcessManagement.2006,389-394.参考文献4:H.M.W.Verbeek,WilM.P.vanderAalst,ArthurH.M.terHofstede.VerifyingWorkflowswithCancellationRegionsandOR-joins:AnApproachBasedonRelaxedSoundnessandInvariants.Comput.J.,2007:294314)提出了一种检测包含复杂控制结构cancellationregions和0R-join的并行业务流程的方法通过判断是否满足Soundness,Weaksoundness,Irreduciblecancellationregions以及ImmutableOR-joins这四个属性来衡量模型的正确性。但是这四个属性的判断是基于可达性和可覆盖性分析的,即要遍历流程执行中的整个状态空间,在流程并行分支数较多是将发生组合爆炸现象,使得流程的验证很难在短时间内完成。另一方面,WofYAWUWoflan以及其它结构验证方法,都仅仅考虑了流程模型本身,并未考虑数据模型对流程的影响,从而不支持面向数据模型的并行流程模型异常检测。(3)语义验证。语义验证是层次最高、最完整的验证,保证流程模型的定义与实际业务流程的目标一致性,在执行中不会出现异常。现在一些基于数据流验证的方法,例如文献“SunS,NunamakerJ,ZhaoJ,Sheng0:Formulatingthedata-flowperspectiveforbusinessprocessmanagement.InformationSystemsResearch,2006,17(4):374-391”考虑了流程的语义信息,是语义验证的雏形。但完整的、实际可执行的流程模型正确性应该基于数据模型和流程模型的共同作用,考虑数据模型对流程的影响。目前很少有验证方法是基于语义验证的。一种基于Data-ProcessGraph的一致性验证方法(简称DPGT算法),可以发现业务流程模型受数据模型影响而产生的异常,是一种语义验证方法。但是DPGT算法的原理是搜索Data-ProcessGraph的状态空间,需要遍历流程执行中所有可能的状态。对于包含并行分支的业务流程来说,会发生组合爆炸的情况。例如,假设并行业务流程模型有m个并行分支,每个分支有n个任务,可能的执行序列个数是,当m或n比较大时,对每种序列进行验证是不切实际的,算法不可能在短时间内完成。综上所述,解决面向数据模型的并行业务流程异常检测的问题主要有以下困难I)大量的并行分支使异常检测很难在短时间内完成。对于含有大量并行分支的业务流程,必须对算法做出优化,防止算法复杂度随并行分支个数呈指数增长。然而目前针对并行流程进行处理优化的方法较为少见。2)异常是由于并行流程模型与数据模型之间的不一致性而产生的。要检测流程模型和数据模型之间的不一致性异常,必须综合考虑这两个模型。传统的业务流程检测往往只针对单独的业务流程模型,而没有考虑数据模型的影响。例如验证流程模型的是否满足一些属性,如soundness属性。这些方法可以发现控制结构的错误,比如死锁、不可达任务等,但是无法检测出上述例子中的异常。
发明内容本发明的目的在于针对上述问题,综合考虑数据模型和流程模型的相互影响,提出一种面向数据模型的并行业务流程异常检测方法,可以高效处理包含大量并行分支的流程模型,并且可以发现常规方法不能发现的流程异常。为实现上述目的,本发明采用如下技术方案一种面向数据模型的并行业务流程异常检测方法,其步骤包括I)对通过结构验证的业务流程进行划分,将同一网关下同一分支中的节点分在一个块中;2)在数据操作集上建立数据操作代数系统,并根据所述数据操作代数系统建立任务数据存在矩阵;所述矩阵的每一行是的数据存在状态向量,对应流程模型中的每一个任务;所述矩阵的每一列对应数据模型中的一个数据对象;3)基于所述任务状态矩阵,通过任务对数据的操作以及数据的存在状态对业务流程的异常进行检测。进一步地,步骤I)根据节点层次对所述业务流程进行分块。进一步地,步骤2)所述数据操作集为M={a,S,e,t),其中,a表示创建数据,6表示删除数据,e表示既有创建操作又有删除操作,T表示未对数据对象进行操作;所述数据操作代数系统为(D,,其中,0和分别是一个MXM—M的闭合二元运算,O运算用于得出一系列串行的任务或块的数据操作结,用于合并并行的两个任务对同一个数据对象的操作和合并同一块中的任务对同一数据对象的操作。进一步地,采用DMVi=Onici,mn,…,Hiilrf)表示一个k维的数据操作向量,其中k=IDI,InijGM表示节点Iii对数据djGD的操作。进一步地,采用块潜在数据操作向量BPDMV表示一个块Bj可能对数据对象的操作,BPDMVj:=&(DMV1|并通过数据操作向量栈存放与当前节点并行的所有块的块潜在数据操作向量。进一步地,步骤2)所述数据存在状态向量为n维向量(X(l,X1,…,Xlri),其中,¥i..OE{i.£.W},L表示数据对象不存在,E表示数据对象存在,U表示数据对象存在状态不能确定,O^x1,…,Xlri)分别对应数据模型中的n个数据对象的数据存在状态。进一步地,在建立所述任务数据存在矩阵时,以宽度优先的方法对业务流程进行遍历,对于每一个节点,根据该节点自身、该节点的父节点和与该节点并行的节点对数据的操作,以及该节点的父节点的数据存在状态,来确定该节点执行时数据的存在状态。进一步地,步骤3)所述异常包括数据创建失败、控制条件不满足和数据前提缺失。本发明的优点和积极效果如下I)通过研究,本发明总结出三类因数据模型与流程模型不一致而使得业务流程可能产生的异常数据创建失败、控制条件不满足和数据前提缺失。对这三种异常的验证是业务流程的语义验证过程。通过了语义验证的业务流程,不会因为数据模型的影响而在实际执行过程中产生异常。2)为了获得更好的规模性,也为了研究不同分支之间的相互影响,本发明提出了业务流程上节点的一种划分模型流程分块模型。该方法的基本思路就是将同一网关下的一个分支作为一个块进行处理,这样不但缩小了问题规模,保证了异常检测算法的规模性,使得算法复杂度不会随并行分支的增加而激增;同时,也使得不同分支间的影响变得明显。3)为了研究数据操作之间的影响,本发明抽象出数据操作的代数形式,并构建了代数系统。通过形式化的方法合并不同任务对数据的操作并体现并行任务间的相互影响。4)本发明提出了任务数据存在矩阵模型(TDEM)来建立并行业务流程模型和数据模型之间的关系,并给出基于TDEM的检测方法对三种异常进行检测。理论分析和实验结果均表明本发明方法的高效率和对异常的高检出率。图I为本发明实施例的方法的步骤流程图。图2为本发明实施例的流程分块示意图。图3为采用本发明方法与data-flow方法进行异常检测所用时间的对比示意图。图4为采用本发明方法与data-flow方法进行异常检测的有效性对比示意图。具体实施例方式下面通过具体实施例,并配合附图,对本发明做详细的说明。本发明解决的是并行业务流程的语义验证问题,为此,首先研究业务流程模型与数据模型之间的交互关系,以及可能产生的异常,主要有以下三种数据创建失败在流程的运行过程中任务可能生成由数据模型定义的数据对象,这种交互关系称为数据产品。如果任务创建数据对象时,该数据对象所依赖的数据对象未被创建,导致任务的等待,甚至发生死锁,此时将产生数据创建失败异常。控制条件不满足业务流程的网关控制规则中通常包含一些数据对象,因此,数据对象将会影响流程的执行实例,这种交互关系称为数据驱动。如果存在某个数据约束与网关的某个控制条件发生冲突,导致控制条件永远无法被满足,就将产生实际执行过程中的不可达路径,此时将会产生异常控制条件不满足。数据前提缺失任务的执行可能会依赖于特定的数据对象,这种交换关系称为数据前提。任务触发时如果它所依赖的数据对象未被创建,就将导致任务无法正常执行,从而发生数据前提缺失异常。为了检测这三种异常,在各个业务流程实例中,每个任务执行前的数据状态都必须事先推断出来。在SherryX.Sun等人(SunS,NunamakerJ,ZhaoJ,Sheng0:Formulatingthedata-flowperspectiveforbusinessprocessmanagement.InformationSystemsResearch,2006,17(4):374-391)提出的数据流(Data-Flow)验证方法中,是通过遍历的方法获得了所有业务流程实例,然后再在每种业务流程实例上穷举检查是否有可能产生数据流异常。这种方法时间复杂度较高,如果在并行业务流程上使用这种异常检测方法,大量的并行分支将会导致状态空间爆炸,使得异常检测很难正常完成。为了保证在并行业务流程上异常检测算法的效率,本发明首先对整个流程进行了划分,然后提出了数据操作代数系统,根据任务对数据的操作来推导数据的存在状态,最后使用数据任务状态矩阵来表示任务与数据间的关系,进行异常检测。本发明方法的步骤流程如图I所示,下面进行详细的介绍。I.流程划分在本发明中使用一种基于BPMN的语言表示业务流程,对于其他语言或规范定义的业务流程也同样能运用本发明提出的方法。目前已有很多方法解决结构验证问题,还没有方法能够高效和有效的解决语义验证的问题。而本发明主要是解决业务流程面向数据模型的异常检测,即流程的语义验证问题,因此假设使用的业务流程均已通过结构验证。I)业务流程业务流程以一个元组P=(N,F,D,DM,I,DCm,DCp)来表示,其中N为业务流程中节点的集合。type:N-ApUGp将一个节点映射到他的类型,其中,Ap是任务类型集合,Gp是网关类型集合,GP={AND-split,AND-join,OR-split,OR-join,XOR-split,XOR-join}指定了节点之间的顺序关系#和F定义了一个有向无环图(DAG);DM为数据对象所满足的数据模型;D为流程中出现的所有数据对象的集合;IeNxD定义了数据和节点之间的数据流关系;DCm为数据模型上的所有数据约束;DCp为流程模型上的所有网关条件。在并行业务流程上,有大量的网关嵌套结构,为此,本发明提出了节点层次的概念。2)节点层次设niGN是P上的节点,Parent:N—N.parent(ni)表示把ni映射到它的父节点;parentsSet:N—2N表示把一个节点映射到它的所有祖先节点的集合;level:N—Z+表示把一个节点映射到它的层数。节点层次的计算方法为level(ni):=|{nj|njGparentsSet(ni)&type(nj)G{AND-split,0R-split,XOR-split}ornjG{AND-split,OR-split,XOR-split}}-{nj|njGparentsSet(ni)&type(nj)G{AND-join,OR-join,XOR-join}}I节点层次反映出的节点所在的网关的嵌套层次,据此,可以对节点进行划分。3)流程分块设P=(N,F,0,DB,I,DCm,DCp)是一个并行业务流程,一个流程分块Bi是N的一个子集,其中的节点和相应的流关系(F)的子集构成了一个子图,leVelB:2N—Z+表示将这个流程分块映射到它的层数,IevelB(Bj)I=MIN(IeveKni)IniGBjI。通过节点所在的分支对流程进行划分,即同一分支下的节点分在一个块中。图2为本实施例的流程分块示意图。由于网关节点存在嵌套关系,因此,不同的分块间也存在嵌套关系。具体的分块方法如下AlgorithmIProcessDivisionMethodInputifrootj,numberofcurrentblockOutputnumberofblockshn,andblocksB1(I<j<hn)Dcpfh-f/rsltraversal,foreachnodeunvisiiedinP:pmUiintoBiIfni^lAND-spliLOR-split,XOR-split}foreachchildofincreateanewblock,sefifascurreniblock’schiidcallAlgorithmIendfor·elseifHi^{AND-join,()R-j()intX()R-join},return对流程进行分块后,可以以块为单位进行数据操作的计算。2.数据操作代数系统本发明先将任务或一个块的数据操作抽象为代数的形式,然后建立代数系统,给出了计算数据操作之间影响的形式化推导方法。I)数据操作向量DataManipulationVector(DMV)设M={a,6,e,t}是数据操作的集合,其中a表示创建数据,5表示删除数据,e表示既有创建操作又有删除操作,T表示未对数据对象进行操作。设DMVi=Onitl,mn,…,IniH)是一个k维的数据操作向量,其中k=IDI,InijGM表示节点Iii对数据d」GD的操作。在数据操作的基础之上,引入两种数据操作间的代数运算,与数据操作集M—起构成代数系统。2)数据操作代数系统令<讽0’>是数据操作集M={a,S,e,T}上的代数系统,0和分别是一个MXM—M的闭合二元运算,其运算表定义如下权利要求1.一种画向数据模型的并行业务流程异常检测方法,其步骤包括1)对通过结构验证的业务流程进行划分,将同一网关下同一分支中的节点分在一个块中;2)在数据操作集上建立数据操作代数系统,并根据所述数据操作代数系统建立任务数据存在矩阵;所述矩阵的每一行是的数据存在状态向量,对应流程模型中的每一个任务;所述矩阵的每一列对应数据模型中的一个数据对象;3)基于所述任务状态矩阵,通过任务对数据的操作以及数据的存在状态对业务流程的异常进行检测。2.如权利要求I所述的方法,其特征在于,步骤I)根据节点层次对所述业务流程进行分块。3.如权利要求I所述的方法,其特征在于步骤2)所述数掘操作集为M={a,6,e,t},其中,a表示创建数据,8表示删除数据,e表示既有创建操作又有删除操作,T表示未对数据对象进行操作;所述数据操作代数系统为<属0’,其中,0和分别是一个MXM—M的闭合二元运算,O运算用于得出一系列串行的任务或块的数据操作结,用于合并并行的两个任务对同一个数据对象的操作和合并同一块中的任务对同一数据对象的操作。4.如权利要求3所述的方法,其特征在于采用DMVi=(miCI,mn,…,Hiilrf)表示一个k维的数据操作向量,其中k=|DI,InijGM表示节点Iii对数据CljGD的操作。5.如权利要求3所述的方法,其特征在于采用块潜在数据操作向量BPDMV表示一个块Bj可能对数据对象的操作,BPDMVi‘=&{DMV,\n,^B1/。6.如权利要求5所述的方法,其特征在于,通过数据操作向量栈存放与当前节点并行的所有块的块潜在数据操作向量。7.如权利要求I所述的方法,其特征在于步骤2)所述数掘存在状态向量为n维向量(x0,X1,…,Xn^1),其中,¥L0(L,E,U),L表示数据对象不存在,E表示数据对象存在,U表示数据对象存在状态不能确定,(X(l,X1,…,Xn^1)分别对应数据模型中的n个数据对象的数据存在状态。8.如权利要求I所述的方法,其特征在于在建立所述任务数据存在矩阵时,以宽度优先的方法对业务流程进行遍历,对于每一个节点,根据该节点自身、该节点的父节点和与该节点并行的节点对数据的操作,以及该节点的父节点的数据存在状态,来确定该节点执行时数据的存在状态。9.如权利要求I所述的方法,其特征在于,步骤3)所述异常包括数据创建失败、控制条件不满足和数据前提缺失。10.如权利要求9所述的方法,其特征在于,所述异常的判定方法为1)并行业务流程中的一个任务^的前提数据中包含数据对象dk,设该并行业务流程模型的任务数据存在矩阵是M,则当且仅当矩阵M中的第j行第k列的元素M[j][k]=L,即任务j执行时数据对象k不存在时,任务&一定会发生数据前提缺失异常;当M[j][k]=U,即任务j执行时数据对象k存在状态不确定时,任务有发生数据前提缺失异常的可能;2)并行业务流程中的一个任务&所创建的数据对象依赖的前提数据中包含数据对象dk,设该并行业务流程模型的任务数据存在矩阵是M,则当且仅当M[j][k]=L,即任务j执行时数据对象k不存在时,任务h—定会发生数据创建失败异常;当M[j][k]=U,即任务j执行时数据对象k存在状态不确定时,任务^有发生数据创建失败异常的可能;3)遍历数据库中的数据约束条件和流程中的数据约束条件,如果有冲突,则会产生控制条件不满足异常。全文摘要本发明提供一种面向数据模型的并行业务流程异常检测方法,其步骤包括1)对通过结构验证的业务流程进行划分,将同一网关下同一分支中的节点分在一个块中;2)在数据操作集上建立数据操作代数系统,并根据数据操作代数系统建立任务数据存在矩阵;矩阵的每一行是的数据存在状态向量,对应流程模型中的每一个任务;矩阵的每一列对应数据模型中的一个数据对象;3)基于所述任务状态矩阵,通过任务对数据的操作以及数据的存在状态对业务流程的异常进行检测。本发明可以高效处理包含大量并行分支的流程模型,对业务流程异常的检测效率高。文档编号G06Q10/06GK102799960SQ20121020646公开日2012年11月28日申请日期2012年6月18日优先权日2012年6月18日发明者尹宁,刘之强,李红燕申请人:北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1