一种工作流实例方面成批处理模式的挖掘方法

文档序号:6599628阅读:164来源:国知局

专利名称::一种工作流实例方面成批处理模式的挖掘方法
技术领域
:本发明属于工作流挖掘和优化
技术领域
,具体涉及一种工作流实例方面成批处理模式的挖掘方法。
背景技术
:在制造业信息化、电子商务以及现代服务业信息基础设施中,存在大量以过程为核心的应用需求。业务流程描述了企业资源的使用方式,以自动化或者半自动化方式来管理流程能够大幅度提高业务执行的工作效率,降低成本,使企业能更快地适应不断变化的需求和业务的增长。起源于生产组织与办公自动化领域的工作流技术为实现这一目标提供了先进的技术手段。该技术自20世纪80年代中期出现以来就得到广泛关注并被大量应用于企业实际运作,也一直是研究的热点之一。1993年8月,工作流管理联盟(WorkflowManagementCoalition,WfMC)的成立标志着工作流技术开始进入了相对成熟的阶段。WfMC的主要职责是负责工作流及工作流管理系统(WorkflowManagementSystem,WfMS)的一些标准化工作。目前该组织的成员已经超过了200个,其中包括软件厂商、科研机构与咨询机构。1994年11月29日,WfMC发布了著名的工作流参考模型(WorkflowReferenceModel),它详细描述了WfMS的各个主要组成部分、各部分的功能及相互之间的接口。这些标准的制定对于实现不同厂家的产品之间的互操作及基于工作流执行服务开发新的应用都具有重要而深远的影响。在过去的十年里,人们已经可以很容易的接触到工作流管理技术。除了纯粹的工作流管理系统外,如Staffware、COSA,Actionfforkflow等,许多其它的软件系统也都使用了工作流技术。SAP等企业资源计划(EnterpriseResourcePlanning,ERP)系统、客户关系管理(CustomerRelationshipManagement,CRM)系统、供应链管理(SupplyChainManagement,SCM)系统、企业间的电子商务(BusinesstoBusiness,B2B)应用等都嵌入使用了工作流技术。为了本说明书表述的方便,这里以工作流管理联盟(WfMC)的定义为标准,给出与工作流技术相关的概念1)工作流(Workflow)是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则、文档、信息或任务能够在不同的执行者之间进行传递与执行;2)工作流管理系统(WorkflowManagementSystem,WfMS)是一个软件系统,它完成工作流的定义和管理,并按照在计算机中预先定义好的工作流逻辑推进工作流实例的执行;3)业务流程(BusinessProcess)指在现实环境中,能够实现业务目标和策略的相互连接的过程和活动集。如公文处理流程,投保过程及项目开发过程等;4)工作流模型(WorkflowModel,也称为过程定义,即ProcessDefinition)是计算机所能识别的业务流程的形式化描述,用来支持运行过程的自动化。过程可分解成一些子过程和活动,其定义主要包括运行过程中涉及到的各种数据和参数,如过程的开始和终止条件、各个工作环节(活动)及相互之间的控制流和数据流关系以及其它的相关信息,如组织成员、应用和数据等。工作流模型由过程模型、组织模型、资源模型以及工作流相关数据四部分组成。过程模型用来定义工作流的过程逻辑,它包括组成工作流的所有活动以及活动间的依赖关系,它是整个工作流模型的基础与核心。组织模型用来定义企业人员的组织结构,其主要任务是为企业人员执行工作流过程提供柔性的组织定义。资源模型用来定义企业资源的组织结构。而工作流相关数据用来定义工作流执行过程中需要用到的数据;5)过程(Process)是业务流程的规范视图,由一系列为共同目标联接在一起的协同的过程活动组成;6)活动(Activity)是工作流中一个逻辑步骤或环节的工作任务,可分为人工操作和自动处理两类。活动是过程执行中可被工作流机调度的最小工作单元。它包含的信息包括开始和结束条件;可参与到此环节中的用户;完成此活动所需的应用程序或数据;以及关于此活动应如何完成的一些限制条件(如时间上的限制等);7)过程/活动实例(Process/ActivityInstance)过程实例是某个工作流过程的一次执行。在过程实例的执行过程中,WfMS负责解释相应的流程定义来生成有关的活动实例,并根据定义中的控制规则协调这些活动之间的顺序关系,同时根据数据流动关系的定义完成活动之间的数据传送。从参与者的角度来说,过程实例的执行实际上是由参与者处理它所涉及的那个环节的数据。完成该环节的任务之后由WfMS根据相应结果激活后续环节,同时通知后续参与者对之进行处理,由此依次反复直至整个过程完成。每个活动实例代表一个活动的一次调用,只和一个过程实例相关,并使用过程实例的数据。一个过程实例可能由若干活动实例组成,但一个活动实例不能同时属于几个过程实例。一股情况下每一个活动实例都将表现为一个工作项(Workltem,它将由某个或某组用户负责完成);8)参与者(Participant)是部分或全部执行某个活动实例的资源(注资源最根本的特征是它能够执行特定的任务)。参与者包括实际完成某个活动的人或设备,它把恰当的资源分配给某个可以开始的活动。每位参与者都必须具有属于某个(某些)角色的属性;9)工作项(WorkItem):是在一个过程实例中由工作流参与者进行的具体工作。一个活动一股包含一个或几个工作项,这些工作项构成任务给工作流参与者完成。工作项通常是通过工作列表表达给用户;10)工作项列表(Worklist)是一个参与者所负责的所有工作项的详细描述;11)代理(Agent)在工作流系统中,一个独立的执行实体被定义为代理;12)角色(Role)角色标识代理在过程模型中对某项任务或相关任务集合具有的访问权限和完成能力。角色用来指定指定代理的职责,它表示的是责任的集合,而代理是扮演一个或多个角色的物理实体。针对不同的工作流系统,同一企业组织结构的划分可能不同,角色与代理实体的映射关系由授权完成。工作流管理系统(WfMS)是支持企业经营过程高效执行并监控其执行过程的计算机软件系统,能有效提高企业的信息化程度,降低企业管理成本,更好的实现企业经营目标。因此,自20世纪90年代开始,它吸引了学术界与产业界的广泛关注,大量的工作流管理技术被应用到企业的实际运作。工作流管理系统由预先建立的工作流模型所驱动,它最重要的功能之一就是工作流建模。商业化的工作流管理系统,如Staffware、COSA,Actionfforkflow等,都提供了一股的业务过程建模与执行功能。工作流管理联盟(WfMC)确定了用来描述工作流的六个原语,包括Sequence,And-Split,And-Join,OR-Split,OR-Join和Iteration。用这些原语理论上可以对任何的流程进行建模。基本的执行路由关系和原语集有1)顺序(Sequential)路由最简单的路由形式是任务的顺序执行,即一个任务接着另一个任务被顺序的执行,通常在他们之间存在清晰的依赖关系,例如前一个任务的结果是后一个任务的输入;2)并行(Parallel)路由如果两个任务能被同时或以任意顺序执行,称之为并行路由。在这种情况下,两个任务都需要被执行,且互不影响。这两个任务开始于And-Split节点,随后重新同步于And-Join节点。And-Split使两个任务同步并发执行,而且只有在任务都已经完成后,才能执行And-Join节点;3)条件(Conditional)路由也称为选择路由。当两个或更多任务之间存在选择时,称之为选择路由。选择路由开始于OR-Split节点,最后重汇合于OR-Join节点。OR-Split使得两个或更多任务选择其一进行执行,只要有其中一个任务执行完毕,OR-Join便可以执行;4)循环(Iteration)路由有时需要执行一个任务多次,例如一个任务被反复执行,直到满足其后的“检查”任务结果为止,这种路由形式称之为循环(或迭代)路由。但是,工作流建模并不是一件容易的事情,产业界的实践表明定义工作流模型非常耗时而且易错,在大部分的情况下需要专家的参与。目前已有系统中建立时的过程定义与运行时的过程执行也并不能完全相符合,而动态的修改过程定义与过程实例又将带来一系列的困难。针对这一问题,“工作流挖掘,,(workflowmining)及类似的概念“过程挖掘”(processmining)被提出,即从系统工作日志中提取工作流模型。它能从当前实际运行的业务过程工作日志中构建出工作流模型。作为一种工作流建模技术,它还有助于分析与优化现有工作流管理系统中的工作流,检测设计中的不足,调整工作流模型以适应应用环境的变化。在实际应用中,工作流的生命周期包括工作流设计、工作流配置、工作流执行、工作流诊断四个阶段。设计阶段的主要任务是构建工作流模型。配置阶段主要是根据设计好的工作流模型,在工作流管理系统中进行具体配置,以使系统按照业务模型执行。在执行阶段,工作流过程实例被系统执行;同时,工作流系统还可以生成记录业务过程运转情况的系统日志。诊断阶段可以为设计阶段提供输入,从而使工作流生命周期成为一个循环的过程。从工作流生命周期的角度看,传统的工作流建模方法主要集中于前两个阶段,通常由建模者根据企业工作流程来定义模型;而工作流挖掘方法则主要针对后两个阶段,通过收集和分析系统在运行阶段的事务数据,自动的推导出能反映企业业务实际执行过程的工作流模型,从而为工作流维护及工作流模型再设计提供参考。工作流挖掘的起点是收集工作流过程的执行信息,并假定能够得到符合下列要求的事件记录1)每一个事件涉及一个任务,即一个工作的逻辑单元;2)每一个事件涉及一个实例,即一个工作流过程实例;3)事件在时间上都是有序的。这些事件记录一股都容易从工作流日志中得到,但是,对于较复杂的工作流模型,工作流日志中并不能记录它的每一种可能执行路线,另外,实际的工作流日志中往往是有噪声的,即部分记录不正确、不完整或者记录的仅仅是个例外。因此,如何从业务记录中提取出符合实际的过程的工作流模型,是一件富有挑战性的工作。在过去的十年中,国内外学者对工作流模型挖掘算法做了大量研究,一系列工作流模型的挖掘算法被提出。其中,较为典型并具有实际应用价值的有如下三个l)Aalst等提出的基于工作流网的α算法;2)Herbst等提出的基于随机活动图的归纳式算法(InW0LvE);3)Schimm的基于块状结构模型的多阶段挖掘方法。Aalst等人的α算法能够成功的处理一类与实际应用相关的工作流网(WF-net),并能构建出一个符合工作流日志行为要求的最简工作流网。工作流网是一种对工作流的控制流维度建模的Petri网,它定义了单个案例的动态行为。任务通过变迁建模,因果关系使用库所和弧建模,库所对应着条件,能用做任务的前条件和/或后条件。α算法的基础是由工作流日志导出的活动间的四种时序关系>w、一¥、~与I|w。其中>w描述活动的顺序出现,一w描述了活动间的因果关系,与I|¥用于区别并行与选择。、、#,&IIw都能由>关系导出,因此,该算法仅要求工作流日志关于活动间的>关系是完整的,而不要求工作流日志中包括所有可能的活动执行序列。该算法能够很好的处理不含短循环(循环长度为1或2)的结构化工作流网(SWF-net),但对于包含短循环或非自由选择结构的工作流网等,算法得出的模型在行为特性上与实际模型存在着差异。α算法在应用时要求过程中活动名是唯一的,即工作流模型中不允许有多个构建块表示同一个任务。但这一要求与现实中的一些工作过程有冲突,Herbst等人提出的归纳式算法解决了这一问题。它主要有归纳与转换两个阶段,在归纳阶段根据工作流日志生成一个随机活动图(SAG),在转换阶段将它转换为由ADONIS定义语言(ADL)表示的块状结构工作流模型。此外,它也适合于解决一股的无重复活动结点的工作流模型挖掘问题。但是,该算法在转换阶段并不能将所有的SAG都有效转化为等价的ADL工作流模型,这影响了它的性能。尽管部分工作流管理系统(如MQSeriesWorkflow)使用类似于SAG的描述语言,但该算法在归纳阶段产生的随机活动图是工作流模型的次优描述,并不能清晰的表示出活动的并行行为。Schimm的多阶段挖掘方法则主要挖掘块状结构的工作流模型。与前两种方法类似,该方法首先生成初始工作流模型,然后进行模型优化。不同的是,其初始模型是面向块的元模型而不是面向图形的元模型,对初始模型的优化基于符号重写规则而不是基于图形的相关技术。另外,它能挖掘出更准确的工作流模型,其生成的工作流模型符合完备性、最小性及无冗余这三个要求。该方法也有一定的局限性,例如,它没有解决多活动名问题,但这一点对实践影响不大,因为许多工作流管理系统(如MQSeriesWorkflow)不会出现这一问题。此外,在应用该方法时,需要对原始工作流日志文件进行有效的数据预处理。Staffware是目前世界上应用最广泛的工作流管理系统之一,下面以某Staffware系统中的工作流日志文件为基础,讨论一个实际的工作流模型挖掘过程,在挖掘算法上使用Aalst等人的α算法并假定日志记录是无噪的。表1是StaffVare在执行该模型时生成的工作流日志片断。该表分组列出了该模型的各个实例的执行过程,例如注册(“Register”)、发送问卷调查("Sendquestionnaire")("Receivequestionnaire")("Evaluate")及存档(“Archive”)。其中第一列是任务描述,第二列是事件类型,第三列是触发事件的用户,第四列是时间戳标志。表IStaffware系统中工作流日志片断表1中的日志片断可以抽象为如表2所示的形式,其中“TaskΑ”表示注册活动(“Register”),“TaskB”表示发送问卷调查活动("Sendquestionnaire,,),"TaskC”表示评价活动("Evaluate"),"TaskD”表示接收问卷调查活动("Receivequestionnaire"),"TaskΕ”表示存档活动("Archive"),"TaskF”表示处理投诉活动("Processcomplaint”),“TaskG”表示审查投诉活动(“Checkprocessing”),“TaskH”表示接收等待超时活动(“ReceiveTimeout”)。CaseS-CaselO分别代表工作流模型的不同过程实例。该表包含了工作流挖掘时的最少信息。表2工作流日志的抽象表示下面用α算法推导建立工作流模型。第一步明确活动间的基本关系。日志中共含有3个工作流案例O1={Α,B,C,D,Ε},σ2={Α,B,C,D,F,G,Ε},σ3={A,B,C,D,H,F,G,F,G,E}。在此基础上,容易得出如下关系1)>w关系A>WB、B>WC、C>WD、D>WE、D>WF、G>WE、D>WH、H>WF、F>WG、G>WF;2)—w关系A—WB、B—WC、C—WD、D—WE、D—WF、G—WE、D—WH、H—WF;3)I|w关系G||WF、F||WG。第二步用α算法进行工作流挖掘。1)TW={A,B,C,D,E,F,G,H};2)Ti={A};3)T0={E};4)Xw={({A},{B}),({B},{C}),({C},{D}),({D},{E}),({D},{F}),({G},{E}),({D},{H}),({H},{F}),({D},{E,F})};5)Yw={({A},{B}),({B},{C}),({C},{D}),({G},{E}),({D},{H}),({H},{F}),({D},{E,F})};6)Pw={p({A},{B}),p({B},{C}),p({C},{D}),p({G},{E}),p({D},{H}),ρ({H},{F}),ρ({D},{Ε,F})}U{iw,ow};7)Fw={(A,p({A},{B})),(p({A},{B}),B),(B,ρ({B},{C})),(ρ({B},{C}),C),(C,ρ({C},{D})),(ρ({C},{D}),D),(D,p({D},{E,F})),(p({D},{E,F}),E),(D,p({D},{E,F})),(p({D},{E,F},F),(G,p({G},{E})),(p({G},{E}),E),(D,p({D},{H})),(p({D},{H}),H),(H,ρ({H},{F})),(ρ({H},{F}),F),(iw,A),(E,ow)};8)α(w)={Tw,Pw,Fj。第三步用WF-net(工作流网)描述工作流过程模型。“成批处理”思想最早可追溯到操作系统领域,但传统的工作流模型并没有提供这一方面的支持。工作流是一类能够完全或部分自动执行的业务过程,活动是工作流中的一个逻辑步骤或者环节。工作流活动的成批处理,是指通过将同一类型活动的多个工作流活动实例进行合并处理,从而使原本多个活动实例的分别执行变为成组合并执行。成批处理可以降低活动执行成本和提高活动执行效率,而这一语义在实际应用中也非常普通,并十分重要。例如,企业或政府集中采购业务就需要对同一供应商的不同采购申请活动合成一个集中采购活动,即将来自多个采购申请部门的多张申请单合并到集中采购部门的一张采购订单来处理;物流优化配送中需要将若干个客户的订单合并为一次运输单以节省运输费用。在工作流的实际应用中还有很多这种需要在某个阶段对过程或活动实例进行合并处理的情形。但是,由于传统的工作流模型中并不支持活动的成批处理,现有的工作流挖掘算法均未考虑工作流实例方面的成批处理模式挖掘问题。
发明内容本发明要解决技术问题是提供一种工作流实例方面成批处理模式的挖掘方法,本发明能为工作流模型设计与工作流系统管理工作提供理论和实践上的帮助,有利于工作流模型的优化设计及工作流执行性能的提高。本发明为解决上述技术问题所采用的技术方案是一种工作流实例方面成批处理模式的挖掘方法,其特征在于,包括以下步骤步骤1利用传统的工作流挖掘算法得到包含在工作流日志中的初始工作流模型;步骤2从工作流日志中识别出可成批处理工作流活动及其成批处理特征;步骤3根据步骤2的结果识别出活动成批处理区,从而获得隐含在初始工作流模型中的可成批处理工作流活动区;所述的步骤2为包括以下步骤(1)取工作流模型中开始活动后的第一个工作流活动r;(2)对与工作流活动r相应的工作流日志记录集进行分析,找出工作流活动r的所有成批处理依赖BDx—y;(3)对与工作流活动r相应的工作流日志记录集进行分析,找出工作流活动r的所有条件成批处理依赖CBDxID—y;(4)如果步骤(2)得到了至少一个成批处理依赖BDx—y或者步骤(3)得到了至少一个条件成批处理依赖CBDxID—y,则该工作流活动r为可成批处理的工作流活动,将工作流活动r的每一个BDx—y或CBDx|D—y以BF=<x,D,y>的形式保存,则得到工作流活动r的一个成批处理特征,工作流活动r的成批处理特征的集合包含了所有的工作流活动r的成批处理特征;(5)取工作流模型中的下一个工作流活动,重复(2),(3),⑷操作,直到下一个活动为工作流结束活动为止;获得该工作流模型中所有的可成批处理工作流活动及其成批处理特征;步骤(2)中的成批处理依赖BDx—y的定义为若某r(XY)及χGX,yGY对任意元组ti;t」er(XY),有表达式Conditionl成立,则该成批处理依赖记为BDx—y,「—n^力.,/,[χ]</,[χ];Condition1=^L」V,M=少],Φ]=^χ];其中,X=(xl,x2,...,xn),称为输入集;Y是一组输出变量的集合,Y=(yl,y2,...,ym),称为输出集;集合XUY记为XY;x为输入变量,y为输出变量,r(XY)为XY上的关系表,r(XY)是一组元组的集合,t为r(XY)中的一个元组,t[xi]与t[yi]分别表示对于元组t在X的某一个变量xi与Y的某一个变量yi上的取值;D为变量集合,表示为D=(xi,...,xj);步骤(3)中的条件成批处理依赖CBDx|D—y的定义为若某r(XY)及xeX,yGY,D^X-χ对任意元组ti;tjer(XY),、[D]=t」[D],有BDx—y成立,则该条件成批处理依赖可记为CBDx|D—y;所述的步骤3具体包括以下步骤(a)对工作流日志记录集进行分析,对其所有的工作流活动找出所有满足皿>关系的工作流活动对,得到集合Z={(Α,Β)|(Α,Β)εχΛΑαΒ};(b)若可成批处理的工作流活动集S非空,取一个可成批处理的工作流活动,设为w;否则,算法结束。(c)利用集合Y与S,创建一个包含w的活动成批处理区Tbi,设Tbi=<Τη,...,Tij,...,Ti)(η彡1),满足W=Tij(1彡j彡η);(d)从集合S中删除元素Til,...,Tij,...,Ti;(e)重复操作(b),(C),(d),直到算法结束;步骤(a)中的aawb定义为对工作流活动b,若在工作流日志中的仅存在工作流活动a使得a>wb成立,则记为aawb,其中的a>wb的定义为对工作流活动a与b,若在工作流日志中的存在一个活动序列σ=、、八&,并有、=&,、+1=13,1£{1,Λ,η}成立,则记为a>wb。采用α算法获得工作流日志,用工作流网描述工作流模型。本发明的有益效果本发明的技术效果是,克服了在工作流建模阶段完全由人工构建工作流模型易受建模者主观经验的影响(模型的流程常常过于理想化,不能够反映复杂和灵活的实际执行情况)、人力与时间投入较大等弊端,利用本技术发明可自动从工作流系统的执行日志中发现工作流活动成批处理特征及工作流活动实例成批处理模式。另外,这种实例方面的成批处理广泛存在于工作流的实际应用中,因此,本发明对促进活动成批处理在工作流系统的实际应用具有十分重要的理论与现实意义。图1为本发明提供的工作流活动实例成批处理不同情形的示意图;图2为本发明提供的用于处理共享租车流程的模型图;图3为本发明提供的用于处理共享租车流程的简化模型图;图4为本发明提供的工作流实例方面成批处理模式的挖掘方法的示意具体实施例方式实施例1图1描述了工作流活动实例成批处理不同情形的示意图,在图1中,工作流类型W有3个活动A、B、C,用虚线所框住的活动表示可成批处理的活动,称其为成批处理区(BPABatchingProcessingArea),虚线框上方的文字表示该活动的执行者。假设系统中存在工作流类型W的两个实例wl、w2,图1.a中,只有活动B需要考虑成批处理。图1.b中,尽管活动B、C均要考虑成批处理,但是它们的成批处理是相互独立的,彼此不存在影响。图1.c中的情况则与图1.b不同,W中活动B、C将采用同一种分组方式,表示只在活动B处整合一次,然后在整个BPA中均将按照整合后的方式处理,一直到离开BPA后,才恢复原来的状态。图2为工作流活动实例成批处理的一个案例,其由七个活动组成“申请”、“审批”、“拒绝通知”、“派车”、“通知司机”、“通知乘车人”、“收费”。一股情况下,系统中的租车实例是独立执行的,即一辆汽车每次为一位乘客服务,但是如果汽车可容纳一个以上乘客,那么在乘客有共同的目的地及出发时间,并同意与其它人一同乘车的前提下,一辆汽车每次可以同时为多位乘客服务。换言之,多个不同的过程实例中的活动实例按照某一规则进行分组,各组的多个活动实例的工作任务最终成组为一个活动实例的执行来完成,这便是工作流活动实例的成批处理。在图2中,虚线框内的活动均为可成批处理工作流活动,同一虚线框内的活动组成了一个可成批处理工作流活动区。本发明提供一种从工作流系统的执行日志中发现工作流工作流活动实例成批处理特征及活动成批处理区的方法,其包括以下步骤1)利用传统的工作流模型挖掘算法得到包含在工作流日志中的初始工作流模型;2)开始活动成批处理特征识别,主要通过分析工作流日志中的工作流相关数据识别出可成批处理工作流活动及其成批处理特征;3)进行活动成批处理区识别,从而获得隐含在初始工作流模型中的可成批处理工作流活动区。14图4给出了本发明的操作步骤的示意图。其工作起点为工作流日志。下面首先以图2中的共享租车流程为例来说明利用本方法进行挖掘时工作流实例日志数据的特点。如果分别用A,...,G来表示该流程中的工作流活动,则该流程可简化为图3所示。对于该流程,挖掘时可采用的工作流控制数据与部分工作流相关数据分别如表3及表4、表5、表6所示,其中ActivityA为“申请”活动、ActivityB为“审批”活动、ActivityC为“派车”活动、ActivityD为“通知司机”活动、ActivityE为“通知乘车人”活动、ActivityF为“收费”活动、ActivityG为“拒绝通知”活动。表3的工作流控制数据可供现有工作流挖掘算法使用以得到工作流模型,表4、表5、表6则主要供本发明所提出的工作流实例方面成批处理模式的挖掘方法使用。表3中,Casel-Case4分别代表工作流模型的不同过程实例。例如,记录“Case1,ActivityΑ”则代表了过程实例Casel中活动ActivityA(“申请”活动)的一次执行。而记录“CaseLActivityB”位置在记录“CaseLActivityΑ”之后,则说明过程实例Casel中ActivityB活动(“审批”活动)的某次执行发行在ActivityA(“申请”活动)执行之后。表4表示的语义是,根据乘车申请的“出发时间”、“目的地”、“乘车人数”分析到达目的地所需乘车时间,乘车费用,并安排司机,从而确定“乘车费用”、“历时(分)”、“司机编号”。每派一辆车,其执行开销都视为一个单元。即表4中的“执行开销”数据项以按需安排的车辆数目计算。表5表示的语义是,根据“司机编号”通知司机,并告知其“出发时间”、“目的地”、“乘车人数”,由司机决定使用哪一辆车,从而确定“车牌号码”。每通知一个司机,其执行开销都视为一个单元。即表5中的“活动执行开销”数据项以按需通知的乘车人计算。表6表示的语义是,将“出发时间”、“目的地”、“车牌号码”、“历时(分)”、“费用(元)”信息告知每个乘车人,每通知一个乘车人,其执行开销都视为一个单元。。即表6中的“执行开销”数据项以按需通知的乘车人计算。另外,表4中“费用(元)”数据项表示一次乘车总共所收取的费用,表6中“费用(元)”数据项则表示对每个乘车人所收取的费用,即一次乘车总共所收取的费用/乘车人数=每个乘车人所收取的费用。表3工作流控制数据表4工作流活动C的相关数据表5工作流活动D的相关数据17表6工作流活动E的相关数据在步骤1)中,利用传统的工作流模型挖掘算法对表3中的数据进行挖掘,可得到包含在工作流日志中的初始工作流模型,在完成步骤1)后便可进入步骤2)。根据所采用的工作流模型挖掘算法的不同,步骤1)所得到的模型表示会不同,但这不影响步骤2)与步骤3)的进行,即传统的工作流模型挖掘算法的挖掘能力不影响本发明的挖掘效果。为便于说明步骤2),下面首先对一些符号与术语进行说明。假设Y=F(X)是一个数学函数,X是一组取值离散的输入变量的集合,X=(xl,χ2,...,χη),并称X为输入集;Y是一组输出变量的集合,Y=(yl,!2,...,ym),并称Y为输出集;F是从X到Y之间的一种映射关系。集合XUY可简记为XY。每一个输入变量,设为X,与每一个输出变量,设为y,都有一个取值范围,可分别表示为dom(X)与dom(y)。对于变量集合D=(xi,...,xj),可用dom(D)来描述变量的笛卡尔乘积(cartesianproduct),即dom(D)=dom(di)Χ...Xdom(dp,并可简记为D=(IiX...Χ+。XY上的关系表可记为r(XY),r(XY)是一组元组的集合,对于r(XY)中的每一个元组,设为t,都有texlXx2X...XxnXylXy2X...Xym。另外,对于元组t在X的某一个变量xi与Y的某一个变量yi上的取值,可分别用t[xi]与t[yi]表示。步骤2)用到的主要定义如下定义1设r为一工作流活动,X={xl,...,χη}是r的输入参数集,Y={yl,...,ym}是r的输出参数集,xl,...,χη,yl,...,ym的值域分别为XI,...,Xn,Y1,...,Ym。工作流日志中关于r的相关数据可构成一个关系表,表示为r(XY),其任一元组t都满足teXIX··.XXnXYl...XYm。例如,表7、表8、表9均分别代表了一个关系表,除第一行描述信息外,表中的每一行数据为一个元组。定义2成批处理依赖(BD)是一种约束。若某r(XY)及xeX,yeY对任意元组ti;tjer(XY),有表达式Conditionl成立,则该成批处理依赖可记为BDx—y,也即输出参数y成批处理依赖于输入参数X。Condition1=^\φ]=φΙtΧχ\=IjYxl表达式Conditionl描述了成批处理依赖关系的数学表达式,其中的符号“/”表示算术除法。定义3条件成批处理依赖(CBD)是一种约束。若某r(XY)及xeX,yeY,D^X-χ对任意元组ti;tjer(XY),、[D]=tj[D],有BDx—y成立,则该条件成批处理依赖可记为CBDxID—y,也即当集合D中各输入参数取值一致时,输出参数y成批处理依赖于输入参数X。定义4对工作流活动r,若有BDx—y或CBDx|D—y成立,则r为可成批处理的工作流活动。其中,X,y分别为r的某输入数据项与某输出数据项,D为r的输入数据项的子集。定义5对可成批处理的工作流活动r,若有BDx—y或CBDx|D—y成立,则三元组BF=<x,D,y>构成了r的一个成批处理特征。完成步骤2)的活动成批处理特征识别算法如算法1所示,其用到了由现有工作流模型挖掘算法得到的工作流模型,具体如下算法1活动成批处理特征识别算法(1)取工作流模型中开始活动后的第一个工作流活动r。(2)对与r相应的工作流日志记录集进行分析,找出r的所有成批处理依赖BDx—y。(3)对与r相应的工作流日志记录集进行分析,找出r的所有条件成批处理依赖CBDxID—y。(4)如果(2),(3)操作得到的结果非空,则r为可成批处理的工作流活动,保存r的所有成批处理特征。(5)取工作流模型中的下一个工作流活动,重复(2),(3),(4)操作,直到下一个活动为工作流结束活动为止。在完成步骤2)后,可得到工作流模型中可成批处理的工作流活动的集合及成批处理特征的集合,随后便可进入步骤3)。步骤3)用到的主要定义如下定义6对工作流活动a与b,若在工作流日志中的存在一个活动序列ο=I^t2Atn,并有tj=a,ti+1=b,ie{1,Λ,η}成立,则记为a>wb。定义7对工作流活动b,若在工作流日志中的仅存在工作流活动a使得a>wb成立,则记为aawb。定义8对工作流活动t,设其可成批处理特征集为BF(t),则对工作流活动T1,T2,...,Tn,若TB=<Τ1Τ2,...,Τη>(η彡1)为一个活动成批处理区当且仅当D^TiJmGTBJ1αWTM.2)WT1GtBF(Ti)^0.,20在定义8中,条件1)表示TB中任意的活动Ti与Ti+1都满足Ti+1是Ti的唯一执行逻辑顺序后继,条件2)表示TB中任意的活动都是可成批处理的工作流活动,条件3)表示TB中任意的两个活动都具有共同成批处理特征,条件4)、5)表示执行逻辑顺序相临的两个活动成批处理区不具有任何共同成批处理特征。完成步骤3)的活动成批处理区识别算法如算法2所示,其用到了由算法1活动成批处理特征识别算法得到的可成批处理的工作流活动的集合及其成批处理特征的集合。算法2具体如下算法2活动成批处理区识别算法(1)对工作流日志记录集进行分析,对其所有的工作流活动找出所有满足皿>关系的工作流活动对,得到集合Z={(A,B)I(A,B)eXΛAαB}。(2)若可成批处理的工作流活动集S非空,取一个可成批处理的工作流活动,设为W0否则,算法结束。(3)利用集合Y与S,创建一个包含w的活动成批处理区Tbi,设Tbi=<Τη,...,Tij,...,TiMn彡1),满足w=TiJd彡j彡η)。(若Tbi为第一个活动成批处理区,则为Tb1,依此类推)(4)从集合S中删除元素Til,...,Tij,...,凡。(5)重复操作(2),(3),(4),直到算法结束。下面通过一个示例来简要描述算法1及算法2的执行过程。设工作流日志L已知,表3及表7、表8、表9(表7、表8、表9为表4、表5、表6数据的一股性抽象表示)均为L中的数据,且已通过某工作流挖掘算法对表3挖掘获得了工作流模型Μ,因此可应用算法1及算法2。表7工作流活动C的相关数据表8工作流活动D的相关数据表9工作流活动E的相关数据将工作流模型M及表7、表8、表9作为算法1的输入,运行算法1后,可得到如表10所示的结果,其中,在所发现的活动成批处理特征一栏中形如“X.Y”符号表示工作流活动ActivityX的数据项Y。例如,C.X3表示工作流活动ActivityC的数据项x3。表10运行算法1得到的部分工作流活动成批处理特征识别结果将表10所示的结果作为算法2的输入,运行算法2后,可得到如表11所示的结果。其中,在运行算法2时,虽然(C.x3,C.x2,C.y3)与(D.x4,D.x2,D.y2)中的符号构成不一样,但在表7中项集(x3,x2,y3)的每一个具体取值都能在表8中找到与项集(x4,x2,y2)相对应的取值,因此,(C.X3,C.X2,C.y3)与(D.x4,D.x2,D.y2)构成了活动ActivityC与ActivityD的一个共同成批处理特征。此外,由工作流模型M也易得CawD。因此,〈ActivityC,ActivityD>构成了工作流模型M中的一个成批处理区。其表达的语义是,当到达目的地一致时,多个乘车人共乘一辆出租车能减少安排出租车与通知司机的执行开销。表11运行算法1得到的部分工作流活动成批处理区识别结果以上所述的实例对本发明的工作流实例方面成批处理模式的挖掘方法作了详细的说明,但本发明的具体实现形式并不局限于此,对于本
技术领域
的一股技术人员,在不背离本发明所述的精神和权利要求范围的情况下对它进行的各种显而易见的改变都在本发明的保护范围之内。权利要求一种工作流实例方面成批处理模式的挖掘方法,其特征在于,包括以下步骤步骤1利用传统的工作流挖掘算法得到包含在工作流日志中的初始工作流模型;步骤2从工作流日志中识别出可成批处理工作流活动及其成批处理特征;步骤3根据步骤2的结果识别出活动成批处理区,从而获得隐含在初始工作流模型中的可成批处理工作流活动区;所述的步骤2为包括以下步骤(1)取工作流模型中开始活动后的第一个工作流活动r;(2)对与工作流活动r相应的工作流日志记录集进行分析,找出工作流活动r的所有成批处理依赖BDx→y;(3)对与工作流活动r相应的工作流日志记录集进行分析,找出工作流活动r的所有条件成批处理依赖CBDx|D→y;(4)如果步骤(2)得到了至少一个成批处理依赖BDx→y或者步骤(3)得到了至少一个条件成批处理依赖CBDx|D→y,则该工作流活动r为可成批处理的工作流活动,将工作流活动r的每一个BDx→y或CBDx|D→y以BF=<x,D,y>的形式保存,则得到工作流活动r的一个成批处理特征,工作流活动r的成批处理特征的集合包含了所有的工作流活动r的成批处理特征;(5)取工作流模型中的下一个工作流活动,重复(2),(3),(4)操作,直到下一个活动为工作流结束活动为止;获得该工作流模型中所有的可成批处理工作流活动及其成批处理特征;步骤(2)中的成批处理依赖BDx→y的定义为若某r(XY)及x∈X,y∈Y对任意元组ti,tj∈r(XY),有表达式Conditionl成立,则该成批处理依赖记为BDx→y,<mrow><mi>Condition</mi><mn>1</mn><mo>=</mo><mfencedopen='{'close=''><mtable><mtr><mtd><msub><mi>t</mi><mi>i</mi></msub><mo>[</mo><mi>y</mi><mo>]</mo><mo>/</mo><msub><mi>t</mi><mi>j</mi></msub><mo>[</mo><mi>y</mi><mo>]</mo><mo>></mo><msub><mi>t</mi><mi>i</mi></msub><mo>[</mo><mi>x</mi><mo>]</mo><mo>/</mo><msub><mi>t</mi><mi>j</mi></msub><mo>[</mo><mi>x</mi><mo>]</mo><mo>,</mo></mtd><mtd><msub><mi>t</mi><mi>i</mi></msub><mo>[</mo><mi>x</mi><mo>]</mo><mo>&lt;</mo><msub><mi>t</mi><mi>j</mi></msub><mo>[</mo><mi>x</mi><mo>]</mo><mo>;</mo></mtd></mtr><mtr><mtd><msub><mi>t</mi><mi>i</mi></msub><mo>[</mo><mi>y</mi><mo>]</mo><mo>=</mo><msub><mi>t</mi><mi>j</mi></msub><mo>[</mo><mi>y</mi><mo>]</mo><mo>,</mo></mtd><mtd><msub><mi>t</mi><mi>i</mi></msub><mo>[</mo><mi>x</mi><mo>]</mo><mo>=</mo><msub><mi>t</mi><mi>j</mi></msub><mo>[</mo><mi>x</mi><mo>]</mo><mo>;</mo></mtd></mtr></mtable></mfenced></mrow>其中,X=(x1,x2,...,xn),称为输入集;Y是一组输出变量的集合,Y=(y1,y2,...,ym),称为输出集;集合X∪Y记为XY;x为输入变量,y为输出变量,r(XY)为XY上的关系表,r(XY)是一组元组的集合,t为r(XY)中的一个元组,t[xi]与t[yi]分别表示对于元组t在X的某一个变量xi与Y的某一个变量yi上的取值;D为变量集合,表示为D=(xi,...,xj);步骤(3)中的条件成批处理依赖CBDx|D→y的定义为若某r(XY)及x∈X,y∈Y,对任意元组ti,tj∈r(XY),ti[D]=tj[D],有BDx→y成立,则该条件成批处理依赖可记为CBDx|D→y;所述的步骤3具体包括以下步骤(a)对工作流日志记录集进行分析,对其所有的工作流活动找出所有满足aawb关系的工作流活动对,得到集合Z={(A,B)|(A,B)∈X∧AαB};(b)若可成批处理的工作流活动集S非空,取一个可成批处理的工作流活动,设为w;否则,算法结束。(c)利用集合Y与S,创建一个包含w的活动成批处理区Tbi,设Tbi=<Ti1,...,Tij,...,Ti>(n≥1),满足w=Tij(1≤j≤n);(d)从集合S中删除元素Ti1,...,Tij,...,Ti;(e)重复操作(b),(c),(d),直到算法结束;步骤(a)中的aawb定义为对工作流活动b,若在工作流日志中的仅存在工作流活动a使得a>wb成立,则记为aawb,其中的a>wb的定义为对工作流活动a与b,若在工作流日志中的存在一个活动序列σ=t1t2Λtn,并有ti=a,ti+1=b,i∈{1,Λ,n}成立,则记为a>wb。FDA0000020143970000021.tif2.根据权利要求1所述的工作流实例方面成批处理模式的挖掘方法,其特征在于,采用α算法获得工作流日志,用工作流网描述工作流模型。全文摘要本发明公开了一种工作流实例方面成批处理模式的挖掘方法,其特征在于,通过对现有工作流系统的运行过程中的工作流实例日志数据进行挖掘,发现实例方面的成批处理依赖关系,识别可成批处理的工作流活动及其可能的成批处理模式,进而分析和确定工作流模型中的活动成批处理区。本发明能为工作流模型设计与工作流系统管理工作提供理论和实践上的帮助,有利于工作流模型的优化设计及工作流执行性能的提高。文档编号G06Q10/00GK101923672SQ20101013046公开日2010年12月22日申请日期2010年3月23日优先权日2010年3月23日发明者刘建勋,文一凭申请人:湖南科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1