CN103218692B - 基于活动间依赖关系分析的工作流挖掘方法 - Google Patents
基于活动间依赖关系分析的工作流挖掘方法 Download PDFInfo
- Publication number
- CN103218692B CN103218692B CN201310154278.XA CN201310154278A CN103218692B CN 103218692 B CN103218692 B CN 103218692B CN 201310154278 A CN201310154278 A CN 201310154278A CN 103218692 B CN103218692 B CN 103218692B
- Authority
- CN
- China
- Prior art keywords
- node
- ddg
- dependence
- control
- collection
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000004458 analytical method Methods 0.000 title claims abstract description 43
- 238000005065 mining Methods 0.000 title claims abstract description 20
- 238000004422 calculation algorithm Methods 0.000 claims description 14
- 239000000203 mixture Substances 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 description 5
- 238000005457 optimization Methods 0.000 description 3
- 238000009412 basement excavation Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000012141 concentrate Substances 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000005308 sum rule Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013396 workstream Methods 0.000 description 1
Landscapes
- Machine Translation (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于依赖关系分析的工作流挖掘方法。从事件日志L中去除冗余的路径,获得目标路径集L';对目标路径集L'中的每条路径的活动进行依赖关系R分析,得到动态依赖图DDG;分析动态依赖图DDG,根据活动间的依赖关系得到基于有向图的工作流模型CFG作为输出。本发明的方法能有效地识别工作流中的并发关系,从而挖掘出整体工作流模型。
Description
技术领域
本发明属于工作流领域,特别是工作流领域中的工作流挖掘技术,即从工作流日志中挖掘工作流过程模型的方法。
背景技术
工作流是业务过程的自动化或半自动化,它将业务流程中的过程逻辑和规则在计算机中用恰当的模型进行表示,并对其实施计算。工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或任务。工作流技术的核心在于工作流建模,传统的工作流建模依赖于业务过程建模人员的个人能力与主观经验,这种人工建模的方式难以有效应对快速变化的业务环境。在开放、动态、多变的Internet环境下,工作流的执行往往已经偏离了先前的工作流模型,因此如何根据不断变化的业务需求,建立符合用户期望的、与时俱进的过程模型是工作流技术面临的一项关键挑战。
针对上述问题,依照数据挖掘的思想,采用工作流挖掘(又称过程挖掘)技术可以自动地从业务过程的历史执行日志中提取出实际运行的过程模型,即从工作流日志中重构工作流模型,达到流程分析和流程优化的目的。事件日志的每条路径一般按照活动实际执行的时间顺序线性排列,分析活动间的本质关系是保证有效挖掘实际工作流过程模型的关键。
工作流挖掘出的工作流模型一般通过Petri网或者有向图进行表示。Petri网可以方便刻画工作流模型中的活动间的顺序、选择、循环和并发关系,因此很多工作流模型采用Petri网来表示,例如工作流网(WF-net),它用变迁表示工作流活动,库所表示活动发生前后的条件。基于有向图的工作流模型表达方式更加贴近工作流实际表象,它由活动集和有向边集构成,其中活动集包含基本活动结点和表示并发、选择的结构化活动节点(例如AND-Split/AND-Join、OR-Split/OR-Join等)。相对于Petri网模型,有向图模型更便于理解和使用。
现有过程挖掘技术α方法,α+方法,α++方法和β方法等主要基于执行日志(活动序列的集合)进行过程定义的挖掘。在每个活动序列中,各个活动实际上是按照其执行结束时间进行排序的,某些活动之间其实并不存在内在的先后执行关系。为推导出这些活动间实际的控制流关系,这些方法都假设执行日志中含有足够数量的活动序列从而可以囊括过程定义中的所有路径。这一假设有助于从活动序列中分析出过程模型中的并发结构和选择结构,然而在需要及时响应演化需求的前提下,上述假设并不容易满足,尤其当过程定义中并发执行的活动数目比较多时。
发明内容
本发明的目的在于提供一种基于依赖关系分析的工作流挖掘方法,当事件日志信息有限(所包含的路径信息不足)的条件下,能有效地识别工作流中的并发关系,从而挖掘出整体工作流模型。
实现本发明目的的技术解决方案为:一种基于依赖关系分析的工作流挖掘方法,基于事件日志的工作流挖掘,以事件日志去除冗余路径得到的目标路径集为输入,以基于有向图的工作流模型为输出结果,该方法具体包含以下步骤:
(1)从事件日志L中去除冗余的路径,获得目标路径集L';
(2)对目标路径集L'中的每条路径的活动进行依赖关系R分析,得到动态依赖图DDG;
(3)分析动态依赖图DDG,根据活动间的依赖关系得到基于有向图的工作流模型CFG作为输出。
步骤(1)中的事件日志L={t1,t2,…},t1,t2,…表示路径;
事件日志按照活动的执行顺序存储,事件日志L中包含基本活动、表示选择、循环工作流模式的结构化活动,每个活动包含活动名称、输入输出变量信息和所处选择分支的真假断言;
目标路径集L'是通过将事件日志中满足以下两种情况的路径筛除得到的路径集合:
当路径t1和路径t2重复时,即t1结点序列和t2结点序列等价即字符串等价;
当路径t1是路径t2的前缀时,即t1结点序列是t2结点序列的一个子串。
所述步骤(2)中;依赖关系R=(Ai,Aj),Ai和Aj表示活动;它包含控制依赖关系和数据依赖关系两种,在动态依赖图DDG中以有向边的形式展现;
动态依赖图DDG=(NDDG,EDDG),NDDG代表动态依赖图的活动结点集,由事件日志中所有不重复的活动组成;EDDG代表结点间的依赖关系集,由分析得到的控制依赖关系集Ec和数据依赖关系集Ed组成;
对目标路径集L'中的每条路径的活动进行依赖关系R分析,得到动态依赖图DDG的具体步骤如下:
(2.1)遍历目标路径集L'中每条路径的所有活动结点,根据活动结点名称得到所有活动结点间的控制依赖关系集Ec,并采用数据流分析方法,分析得到所有活动间的数据依赖关系集Ed;
(2.2)给所有无控制依赖的活动结点增加一个共同前驱结点Entry,添加Entry结点和无控制依赖的活动结点之间的控制依赖关系到控制依赖关系集Ec中;
(2.3)根据Entry结点和所有活动结点以及它们之间的依赖关系确立动态依赖图DDG的 活动结点集NDDG和依赖关系集EDDG,并且根据活动结点所处选择分支的真假断言标注控制依赖关系边的真假标识,即Entry结点和While结点和他们的孩子结点之间的控制依赖关系边标注为“T”,If结点和他们的孩子结点之间的控制依赖关系边标注和真假断言相同的“T”或“F”。
所述步骤(3)采用全局控制流过程从动态依赖图DDG中分析得到基于有向图的工作流模型CFG,CFG=(NCFG,ECFG),NCFG代表工作流模型的结点集,ECFG代表工作流模型中结点间有向边的集;其具体包括以下步骤:
(3.1)针对动态依赖图DDG中的单控制动态依赖图SC-DDG,得到控制结点与孩子结点间的控制流关系,消除SC-DDG的三种环;
(3.2)通过连通分量算法分析得到SC-DDG的真假分支结点集的弱连通分量WCC;
(3.3)所有的弱连通分量传递约简后,不同的弱连通分量之间构成并发关系;
(3.4)通过传统拓扑排序的改进算法得到每个连通分量的结点间的顺序、并发关系;
(3.5)将SC-DDG中所有边的前驱结点或后继结点不属于NSC-DDG的改成SC-DDG中的控制结点;
(3.6)按照反层次遍历的方式重复(3.1)到(3.5),直到遍历完整个动态依赖图DDG;
(3.7)根据动态依赖图DDG中的结点以及上述分析得到的它们之间的控制流关系,确立基于有向图的工作流模型CFG的结点集NCFG和边集ECFG。
步骤(3.1)针对动态依赖图DDG中的单控制动态依赖图SC-DDG,得到控制结点与孩子结点间的控制流关系,消除SC-DDG的三种环;
单控制动态依赖图SC-DDG=(NSC-DDG,ESC-DDG),NSC-DDG代表单控制动态依赖图的结点集,由一个控制结点和控制依赖于它的所有孩子结点组成;ESC-DDG代表单控制动态依赖图的边集,由SC-DDG所属DDG的EDDG中包含NSC-DDG中结点的边组成;
控制流关系包含选择、循环、顺序和并发关系四种,通过控制结点的类型可以确立控制结点与孩子结点间的选择或循环控制流关系;
SC-DDG中三种环包括:(1)自环,活动结点Ai在一条路径t不止出现一次并且有至少一个输出变量;(2)循环间数据相关形成的环,两个活动Ai和Aj在一条路径t中不止出现一次,Ai数据依赖于Aj,并且Aj也数据依赖与Ai;(3)数据竞争形成的环,两个活动Ai和Aj在两条不同的路径t1,t2中都只出现一次,一条路径中Ai数据依赖于Aj,另一条路径中Aj数据依赖与Ai;
消除三种环的步骤如下:
(3.1.1)遍历SC-DDG的NSC-DDG中每条边,消除所有前后结点相同的边(ni,nj);
(3.1.2)如果NSC-DDG中存在两个结点ni、nj,互为前驱后继的边(ni,nj)和(nj,ni),并且SC-DDG的控制结点是While结点,在原始路径中ni在nj之前,则删除边(nj,ni),nj在ni之前,则删除边(ni,nj);如果SC-DDG的控制结点不是While结点,则同时删除边(ni,nj)和(nj,ni)。
步骤(3.2)通过连通分量算法分析得到SC-DDG的真假分支结点集的弱连通分量WCC,具体包含以下步骤:
(3.2.1)遍历SC-DDG的NSC-DDG中每条边,根据边上的真假标识,将标识为“T”的结点添加到真分支结点集,将标识为“F”的结点添加到假分支结点集;
(3.2.2)遍历所有的真假分支结点集,对于每一个结点集采用先深度优先搜索再广度优先搜索的方式得到SC-DDG的真假分支结点集的弱连通分量WCC。
步骤(3.4)通过传统拓扑排序的改进算法得到每个连通分量的结点间的顺序、并发关系,步骤如下:
(3.4.1)遍历连通分量中的所有结点,得到每个结点的入度和其所有前驱结点集preSet,并将所有入度为零的结点放入栈zeroIndegreeNodeStack中;
(3.4.2)如果栈zeroIndegreeNodeStack中结点数目不止一个,则将其栈头结点放入栈flowStartStack中;
(3.4.3)如果栈zeroIndegreeNodeStack中的结点数目不为空,则将栈中结点放入拓扑排序结点集topologicalSortSet中;
(3.4.4)遍历连通分量中的所有结点,如果该结点所在边的前驱结点存在于topologicalSortSet中,如果该结点入度不为零,则结点的入度减1,如果入度为零,则让栈zeroIndegreeNodeStack中的该结点出栈,并添加到零入度后继结点集zeroIndegreePostSet中;
(3.4.5)如果零入度后继结点集zeroIndegreePostSet中的结点数目不止一个,则去除栈头结点,将其放入栈flowStartStack中;
(3.4.6)遍历连通分量中的所有结点,如果该结点的前驱结点数目不止一个,则栈flowStartStack中出栈的结点与第一个前驱结点集的所有结点之间构成顺序关系,相邻前驱结点集间的结点构成顺序关系,同属一个前驱结点集的结点之间构成并发关系;
(3.4.7)第一个结点和最后一个结点之间构成顺序关系。
本发明与现有技术相比,其显著优点:(1)本发明方法通过分析事件日志活动间的动态依赖图DDG来判定活动间的控制流关系,从而能够从不具备完整性标准的事件日志中有效辨别出工作流中的并发结构,从而更有效地发现整个工作流模型。(2)而且,动态依赖图DDG 展现的是工作流活动之间的本质关系,以此为基础进行挖掘,本发明方法还有助于过程优化和实例合规性的分析。
附图说明
图1为基于活动间依赖关系分析的工作流挖掘方法的流程图。
图2为基于活动间依赖关系分析的工作流挖掘方法的具体步骤流程图。
图3为本发明实例挖掘出的工作流过程模型(基于有向图)。
图4为本发明实例挖掘出的工作流过程模型(基于Petri网)。
图5为本发明实例分析目标路径集得到的动态依赖图。
具体实施方式
本发明采用基于活动依赖关系分析的方法进行工作流的挖掘。在工作流中,活动依赖关系主要包括控制依赖和数据依赖两种。一个活动Aj控制依赖于另一个活动Ai当且仅当Ai决定Aj能否执行。数据依赖根据读写顺序,又分为真数据依赖,反数据依赖和输出数据依赖三种。在事件日志的一条路径中,一个活动Aj真数据依赖于它之前的另一个活动Ai,当且仅当Aj使用了Ai定义的某个变量;一个活动Aj反数据依赖于它之前的另一个活动Ai,当且仅当Aj定义了Ai所使用的某个变量。一个活动Aj输出数据依赖于它之前的另一个活动Ai,当且仅当Aj重新定义了Ai定义的某个变量。通过这种本质关系的分析能够更好的分析推导在实际工作流模型中活动间的顺序、选择、循环和并发关系。为从事件日志中挖掘出活动间的控制依赖和数据依赖关系,本发明中要求事件日志里的每条路径中:(1)不仅包含基本活动,也包括表示选择、循环等工作流模式的结构化活动;(2)每个活动不仅有活动名称还需有输入输出变量信息和所处选择分支的真假断言。不考虑事件日志中包含错误路径的情况。
1.本发明基于依赖关系分析的工作流挖掘方法(其整体流程如图1所示),基于事件日志的工作流挖掘,它以事件日志去除冗余路径得到的目标路径集为输入,以基于有向图的工作流模型为输出结果,该方法具体包含以下步骤(如图2所示):
(1)从事件日志L中去除冗余的路径,获得目标路径集L';
(2)对目标路径集L'中的每条路径进行依赖关系R分析,得到动态依赖图DDG;
(3)分析动态依赖图DDG,根据活动间的依赖关系得到基于有向图的工作流模型CFG作为输出。
步骤(1)中的事件日志L={t1,t2,…},t1,t2,…表示路径;
事件日志按照活动的执行顺序存储,不仅包含基本活动,也包括表示选择、循环等工作流模式的结构化活动,每个活动不仅有活动名称还需有输入输出变量信息和所处选择分支的真假断言;
目标路径集L'是通过将事件日志中满足以下两种情况的路径筛除得到的路径集合:
当路径t1和路径t2重复时,即t1结点序列和t2结点序列等价即字符串等价;
当路径t1是路径t2的前缀时,即t1结点序列是t2结点序列的一个子串。
步骤(2)对目标路径集L'中的每条路径进行依赖关系R分析,得到动态依赖图DDG。
依赖关系R=(Ai,Aj),Ai和Aj表示活动;它包含控制依赖关系和数据依赖关系两种,在动态依赖图DDG中以有向边的形式展现;
动态依赖图DDG=(NDDG,EDDG),NDDG代表动态依赖图的活动结点集,由事件日志中所有不重复的活动组成;EDDG代表结点间的依赖关系集,由分析得到的控制依赖关系集Ec和数据依赖关系集Ed组成;其具体包含以下步骤:
(2.1)遍历目标路径集L'中每条路径的所有活动结点,根据活动结点名称得到所有活动结点间的控制依赖关系集Ec,并采用数据流分析方法,分析得到所有活动间的数据依赖关系集Ed;
(2.2)给所有无控制依赖的活动结点增加一个共同前驱结点Entry,添加Entry结点和他们之间的控制依赖关系到控制依赖关系集Ec中;
(2.3)根据Entry结点和所有活动结点以及它们之间的依赖关系确立动态依赖图DDG的活动结点集NDDG和依赖关系集EDDG,并且根据活动结点所处选择分支的真假断言标注控制依赖关系边的真假标识,即Entry结点和While结点和他们的孩子结点之间的控制依赖关系边标注为“T”,If结点和他们的孩子结点之间的控制依赖关系边标注和真假断言相同的“T”或“F”。
步骤(3)采用了全局控制流过程从动态依赖图DDG中分析得到基于有向图的工作流模型CFG,CFG=(NCFG,ECFG),NCFG代表工作流模型的结点集,ECFG代表工作流模型中结点间有向边的集;其具体包括以下步骤:
(3.1)针对动态依赖图DDG中的单控制动态依赖图SC-DDG,得到控制结点与孩子结点间的控制流关系,消除SC-DDG的三种环;
(3.2)通过连通分量算法分析得到SC-DDG的真假分支结点集的弱连通分量WCC;
(3.3)所有的连通分量传递约简后,不同的连通分量之间构成并发关系;
(3.4)通过传统拓扑排序的改进算法得到每个连通分量的结点间的顺序、并发关系;
(3.5)将SC-DDG中所有边的前驱结点或后继结点不属于NSC-DDG的改成SC-DDG中的控制结点;
(3.6)按照反层次遍历的方式重复(1)到(5),直到遍历完整个动态依赖图DDG;
(3.7)根据动态依赖图DDG中的结点以及上述分析得到的它们之间的控制流关系确立基 于有向图的工作流模型CFG的结点集NCFG和边集ECFG。
步骤(3.1)针对动态依赖图DDG中的单控制动态依赖图SC-DDG,得到控制结点与孩子结点间的控制流关系,消除SC-DDG的三种环;
单控制动态依赖图SC-DDG=(NSC-DDG,ESC-DDG),NSC-DDG代表单控制动态依赖图的结点集,由一个控制结点和控制依赖于它的所有孩子结点组成;ESC-DDG代表单控制动态依赖图的边集,由SC-DDG所属DDG的EDDG中包含NSC-DDG中结点的边组成。
控制流关系包含选择,循环,顺序和并发关系四种,通过控制结点的类型可以确立控制节点与孩子结点间的选择或循环控制流关系;
SC-DDG中三种环包括,自环:活动结点Ai在一条路径t不止出现一次并且有至少一个输出变量;循环间数据相关形成的环:两个活动Ai和Aj在一条路径t中不止出现一次,Ai数据依赖于Aj,并且Aj也数据依赖与Ai;数据竞争形成的环:两个活动Ai和Aj在两条不同的路径t1,t2中都只出现一次,一条路径中Ai数据依赖于Aj,另一条路径中Aj数据依赖与Ai。
消除三种环具体包括以下步骤:
(3.1.1)遍历SC-DDG的NSC-DDG中每条边,消除所有前后结点相同的边(ni,nj)。
(3.1.2)如果NSC-DDG中存在两个结点ni,nj互为前驱后继的边(ni,nj)和(nj,ni)并且SC-DDG的控制结点是While结点,在原始路径中ni在nj之前,则删除边(nj,ni),nj在ni之前,则删除边(ni,nj)。如果SC-DDG的控制结点不是While结点,则同时删除边(ni,nj)和(nj,ni)。
步骤(3.2)通过连通分量算法分析得到SC-DDG的真假分支结点集的弱连通分量WCC,其具体包含以下步骤:
(3.2.1)遍历SC-DDG的NSC-DDG中每条边,根据边上的真假标识,将标识为“T”的结点添加到真分支结点集,将标识为“F”的结点添加到假分支结点集;
(3.2.2)遍历所有的真假分支结点集,对于每一个结点集采用先深度优先搜索再广度优先搜索的方式得到SC-DDG的真假分支结点集的弱连通分量WCC。
步骤(3.4)通过传统拓扑排序的改进算法得到每个连通分量的结点间的顺序、并发关系;
(3.4.1)遍历连通分量中的所有结点,得到每个结点的入度和其所有前驱结点集preSet,并将所有入度为零的结点放入栈zeroIndegreeNodeStack中。
(3.4.2)如果栈zeroIndegreeNodeStack中结点数目不止一个,则将其栈头结点放入栈flowStartStack中;
(3.4.3)如果栈zeroIndegreeNodeStack中的结点数目不为空,则将栈中结点放入拓扑排序结点集topologicalSortSet中;
(3.4.4)遍历连通分量中的所有结点,如果该结点所在边的前驱结点存在于topologicalSortSet中,如果该结点入度不为零,则结点的入度减1,如果入度为零,则让栈zeroIndegreeNodeStack中的该结点出栈,并添加到零入度后继结点集zeroIndegreePostSet中;
(3.4.5)如果零入度后继结点集zeroIndegreePostSet中的结点数目不止一个,则去除栈头结点,将其放入栈flowStartStack中;
(3.4.6)遍历连通分量中的所有结点,如果该结点的前驱结点数目不止一个,则栈flowStartStack中出栈的结点与第一个前驱结点集的所有结点之间构成顺序关系,相邻前驱结点集间的结点构成顺序关系,同属一个前驱结点集的结点之间构成并发关系;
(3.4.7)第一个结点和最后一个结点之间构成顺序关系。
下面结合实施例对本发明做进一步说明。
本发明的实例从事件日志中挖掘出相应的工作流模型(如图3基于有向图,图4基于Petri网所示),该模型由10个活动结点,5个结构辅助结点构成。表1为实验程序的事件日志。表2为实验的目标路径集文件格式。
t1 | A1A2A3A4A5A6A7A8A10 |
t2 | A1A2A3A4A5A6 |
t3 | A1A2A3A4A5A6A7A9A10 |
t4 | A1A2A3 |
t5 | A1A2A3A4A5A6A7A8A10 |
t6 | A1A2A3A4A5A6A7A9 |
表1实验程序的事件日志
表2目标路径集文件格式
对于该实例,采用如下步骤实施方法:
1.从事件日志中去除冗余的路径,获得目标路径集L'。
由表1可以看出,t5和t1是重复的路径,所以去除t5;t2,t4是t1的前缀,t6是t3的前缀,所以去除t2,t4和t6。由此得到目标路径集L={t1,t3},其文件格式如图5所示。
2.对步骤1得到的目标路径集L'={t1,t3}进行依赖关系分析,得到动态依赖图DDG(如图5所示),其具体过程如下:
(1)遍历目标路径集中每条路径的所有活动结点,分析得到所有活动结点间的控制依赖关系Ec={(A7,A8),(A7,A9)},并且通过数据流分析方法分析得到所有结点间的数据依赖关系Ed={(A1,A2),(A2,A3),(A1,A4),(A3,A4),(A4,A5),(A4,A6),(A5,A7),(A6,A7),(A5,A8),(A8,A10),(A6,A9),(A9,A10)}。
(2)给所有无控制依赖的活动结点增加一个共同前驱结点Entry,并添加Entry结点和 他们之间的控制依赖边(Entry,A1),(Entry,A2),(Entry,A3),(Entry,A4),(Entry,A5),(Entry,A6),(Entry,A7),(Entry,A10)到Ec中。
(3)根据Entry结点和所有活动结点以及他们之间的依赖关系确立动态依赖图DDG的结点集NDDG={A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,Entry}和依赖边集EDDG={(Entry,A1),(Entry,A2),(Entry,A3),(Entry,A4),(Entry,A5),(Entry,A6),(Entry,A7),(Entry,A10),(A7,A8),(A7,A9),(A1,A2),(A2,A3),(A1,A4),(A3,A4),(A4,A5),(A4,A6),(A5,A7),(A6,A7),(A5,A8),(A8,A10),(A6,A9),(A9,A10)}。
3.根据步骤2得到的动态依赖图DDG,调用全局控制流过程,分析得到基于有向图的工作流模型CFG,其具体过程如下:
(1)得到动态依赖图DDG的单控制动态依赖图SC-DDG=(N={A7,A8,A9},E={(A7,A8),(A7,A9),(A5,A8),(A8,A10),(A6,A9),(A9,A10)})。
(2)得到其真假孩子分支结点集的弱连通分量WCC={T={{A8}},F={{A9}}}。
(3)由于A8是真孩子分支结点,A9是假孩子分支结点,所有得到选择关系(A8,A9)。
(4)根据拓扑排序的改进算法得到顺序关系(A7,A8),(A7,A9)。
(5)将上面SC-DDG的额外出边(A8,A10),(A9,A10)和入边(A5,A8),(A6,A9)转换成(A7,A10)和(A5,A7),(A6,A7)。
(6)得到动态依赖图DDG的单控制动态依赖图SC-DDG=(N={Entry,A1,A2,A3,A4,A5,A6,A7,A10},E={(Entry,A1),(Entry,A2),(Entry,A3),(Entry,A4),(Entry,A5),(Entry,A6),(Entry,A7),(Entry,A10),(A1,A2),(A2,A3),(A1,A4),(A3,A4),(A4,A5),(A4,A6),(A5,A7),(A6,A7),(A7,A10)})。
(7)得到其真假孩子分支结点集的弱连通分量WCC={T={{A1,A2,A3,A4,A5,A6,A7,A10}}}。
(8)传递规约消除数据依赖边(A1,A4),(A5,A8),(A6,A9)。
(9)根据拓扑排序的改进算法得到顺序关系(A1,A2),(A2,A3),(A3,A4),(A4,A5),(A4,A6),(A5,A7),(A6,A7),(A7,A10)和并发关系(A5,A6)。
(10)根据动态依赖图DDG中的结点以及上述分析得到他们之间的控制流关系确立基于有向图的工作流模型CFG的结点集NCFG={Start,A1,A2,A3,A4,FlowStart,A5,A6,FlowEnd,A7,A8,A9,EndIf,A10,End}和边集ECFG={(Start,A1),(A1,A2),(A2,A3),(A3,A4),(A4,FlowStart),(FlowStart,A5),(FlowStart,A6),(A5,FlowEnd),(A6,FlowEnd),(FlowEnd,A7),(A7,A8),(A7,A9),(A8,EndIf),(A9,EndIf),(EndIf,A10),(A10,End)}。
本实例的事件日志并非完备,用现有的方法无法能够挖掘出实际的工作流模型。然而本发明的方法,仅仅通过对路径t1,t3的分析便可以得到所有活动间充分的依赖关系,由此得到 动态依赖图DDG,进一步分析出更加符合实际的工作流模型。动态依赖图DDG展现的是活动间的本质关系,以此为基础进行挖掘,有助于过程优化和实例合规性的分析。
Claims (5)
1.一种基于依赖关系分析的工作流挖掘方法,其特征在于:基于事件日志的工作流挖掘,以事件日志去除冗余路径得到的目标路径集为输入,以基于有向图的工作流模型为输出结果,该方法具体包含以下步骤:
(1)从事件日志L中去除冗余的路径,获得目标路径集L';
(2)对目标路径集L'中的每条路径的活动进行依赖关系R分析,得到动态依赖图DDG;依赖关系R=(Ai,Aj),Ai和Aj表示活动;它包含控制依赖关系和数据依赖关系两种,在动态依赖图DDG中以有向边的形式展现;
动态依赖图DDG=(NDDG,EDDG),NDDG代表动态依赖图的活动结点集,由事件日志中所有不重复的活动组成;EDDG代表结点间的依赖关系集,由分析得到的控制依赖关系集Ec和数据依赖关系集Ed组成;
对目标路径集L'中的每条路径的活动进行依赖关系R分析,得到动态依赖图DDG的具体步骤如下:
(2.1)遍历目标路径集L'中每条路径的所有活动结点,根据活动结点名称得到所有活动结点间的控制依赖关系集Ec,并采用数据流分析方法,分析得到所有活动间的数据依赖关系集Ed;
(2.2)给所有无控制依赖的活动结点增加一个共同前驱结点Entry,添加Entry结点和无控制依赖的活动结点之间的控制依赖关系到控制依赖关系集Ec中;
(2.3)根据Entry结点和所有活动结点以及它们之间的依赖关系确立动态依赖图DDG的活动结点集NDDG和依赖关系集EDDG,并且根据活动结点所处选择分支的真假断言标注控制依赖关系边的真假标识,即Entry结点和While结点和他们的孩子结点之间的控制依赖关系边标注为“T”,If结点和他们的孩子结点之间的控制依赖关系边标注和真假断言相同的“T”或“F”;
(3)分析动态依赖图DDG,根据活动间的依赖关系得到基于有向图的工作流模型CFG作为输出;所述步骤(3)采用全局控制流过程从动态依赖图DDG中分析得到基于有向图的工作流模型CFG,CFG=(NCFG,ECFG),NCFG代表工作流模型的结点集,ECFG代表工作流模型中结点间有向边的集;其具体包括以下步骤:
(3.1)针对动态依赖图DDG中的单控制动态依赖图SC-DDG,得到控制结点与孩子结点间的控制流关系,消除SC-DDG的三种环;
(3.2)通过连通分量算法分析得到SC-DDG的真假分支结点集的弱连通分量WCC;
(3.3)所有的弱连通分量传递约简后,不同的弱连通分量之间构成并发关系;
(3.4)通过传统拓扑排序的改进算法得到每个连通分量的结点间的顺序、并发关系;
(3.5)将SC-DDG中所有边的前驱结点或后继结点不属于NSC-DDG的改成SC-DDG中的控制结点;
(3.6)按照反层次遍历的方式重复(3.1)到(3.5),直到遍历完整个动态依赖图DDG;
(3.7)根据动态依赖图DDG中的结点以及上述分析得到的它们之间的控制流关系,确立基于有向图的工作流模型CFG的结点集NCFG和边集ECFG。
2.根据权利要求1所述的基于依赖关系分析的工作流挖掘方法,其特征在于:步骤(1)中的事件日志L={t1,t2,…},t1,t2,…表示路径;
事件日志按照活动的执行顺序存储,事件日志L中包含基本活动、表示选择、循环工作流模式的结构化活动,每个活动包含活动名称、输入输出变量信息和所处选择分支的真假断言;
目标路径集L'是通过将事件日志中满足以下两种情况的路径筛除得到的路径集合:
当路径t1和路径t2重复时,即t1结点序列和t2结点序列等价即字符串等价;
当路径t1是路径t2的前缀时,即t1结点序列是t2结点序列的一个子串。
3.根据权利要求1所述的基于依赖关系分析的工作流挖掘方法,其特征是:步骤(3.1)针对动态依赖图DDG中的单控制动态依赖图SC-DDG,得到控制结点与孩子结点间的控制流关系,消除SC-DDG的三种环;
单控制动态依赖图SC-DDG=(NSC-DDG,ESC-DDG),NSC-DDG代表单控制动态依赖图的结点集,由一个控制结点和控制依赖于它的所有孩子结点组成;ESC-DDG代表单控制动态依赖图的边集,由SC-DDG所属DDG的EDDG中包含NSC-DDG中结点的边组成;
控制流关系包含选择、循环、顺序和并发关系四种,通过控制结点的类型可以确立控制结点与孩子结点间的选择或循环控制流关系;
SC-DDG中三种环包括:(1)自环,活动结点Ai在一条路径t不止出现一次并且有至少一个输出变量;(2)循环间数据相关形成的环,两个活动Ai和Aj在一条路径t中不止出现一次,Ai数据依赖于Aj,并且Aj也数据依赖与Ai;(3)数据竞争形成的环,两个活动Ai和Aj在两条不同的路径t1,t2中都只出现一次,一条路径中Ai数据依赖于Aj,另一条路径中Aj数据依赖与Ai;
消除三种环的步骤如下:
(3.1.1)遍历SC-DDG的NSC-DDG中每条边,消除所有前后结点相同的边(ni,nj);
(3.1.2)如果NSC-DDG中存在两个结点ni、nj,互为前驱后继的边(ni,nj)和(nj,ni),并且SC-DDG的控制结点是While结点,在原始路径中ni在nj之前,则删除边(nj,ni),nj在ni之前,则删除边(ni,nj);如果SC-DDG的控制结点不是While结点,则同时删除边(ni,nj)和(nj,ni)。
4.根据权利要求1所述的基于依赖关系分析的工作流挖掘方法,其特征是:步骤(3.2)通过连通分量算法分析得到SC-DDG的真假分支结点集的弱连通分量WCC,其具体包含以下步骤:
(3.2.1)遍历SC-DDG的NSC-DDG中每条边,根据边上的真假标识,将标识为“T”的结点添加到真分支结点集,将标识为“F”的结点添加到假分支结点集;
(3.2.2)遍历所有的真假分支结点集,对于每一个结点集采用先深度优先搜索再广度优先搜索的方式得到SC-DDG的真假分支结点集的弱连通分量WCC。
5.根据权利要求1所述的基于依赖关系分析的工作流挖掘方法,其特征是:步骤(3.4)通过传统拓扑排序的改进算法得到每个连通分量的结点间的顺序、并发关系,步骤如下:
(3.4.1)遍历连通分量中的所有结点,得到每个结点的入度和其所有前驱结点集preSet,并将所有入度为零的结点放入栈zeroIndegreeNodeStack中;
(3.4.2)如果栈zeroIndegreeNodeStack中结点数目不止一个,则将其栈头结点放入栈flowStartStack中;
(3.4.3)如果栈zeroIndegreeNodeStack中的结点数目不为空,则将栈中结点放入拓扑排序结点集topologicalSortSet中;
(3.4.4)遍历连通分量中的所有结点,如果该结点所在边的前驱结点存在于topologicalSortSet中,如果该结点入度不为零,则结点的入度减1,如果入度为零,则让栈zeroIndegreeNodeStack中的该结点出栈,并添加到零入度后继结点集zeroIndegreePostSet中;
(3.4.5)如果零入度后继结点集zeroIndegreePostSet中的结点数目不止一个,则去除栈头结点,将其放入栈flowStartStack中;
(3.4.6)遍历连通分量中的所有结点,如果该结点的前驱结点数目不止一个,则栈flowStartStack中出栈的结点与第一个前驱结点集的所有结点之间构成顺序关系,相邻前驱结点集间的结点构成顺序关系,同属一个前驱结点集的结点之间构成并发关系;
(3.4.7)第一个结点和最后一个结点之间构成顺序关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310154278.XA CN103218692B (zh) | 2013-04-27 | 2013-04-27 | 基于活动间依赖关系分析的工作流挖掘方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310154278.XA CN103218692B (zh) | 2013-04-27 | 2013-04-27 | 基于活动间依赖关系分析的工作流挖掘方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103218692A CN103218692A (zh) | 2013-07-24 |
CN103218692B true CN103218692B (zh) | 2017-03-15 |
Family
ID=48816456
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310154278.XA Expired - Fee Related CN103218692B (zh) | 2013-04-27 | 2013-04-27 | 基于活动间依赖关系分析的工作流挖掘方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103218692B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103440339B (zh) * | 2013-09-09 | 2017-01-18 | 中国农业银行股份有限公司 | 一种查找应用系统变更关联对象的方法、装置及系统 |
CN106293648B (zh) * | 2015-05-13 | 2019-11-29 | 南京理工大学 | 基于路径依赖图的服务组合行为合规性度量方法 |
CN106775784A (zh) * | 2017-02-28 | 2017-05-31 | 济南浪潮高新科技投资发展有限公司 | 一种工作流路径的获取方法、装置、介质及存储控制器 |
CN107368512B (zh) * | 2017-04-21 | 2020-07-24 | 阿里巴巴集团控股有限公司 | 信息对象的查询和序列确定方法、装置及设备、可读介质 |
CN107092491B (zh) * | 2017-04-21 | 2021-04-16 | 网宿科技股份有限公司 | 一种配置加载方法和系统 |
CN110019365A (zh) * | 2017-12-21 | 2019-07-16 | 天津数观科技有限公司 | 一种利用栈生成数据处理顺序的方法 |
CN108647220B (zh) * | 2018-03-19 | 2022-04-08 | 南京理工大学 | 基于事件间接先于关系的科学工作流挖掘方法 |
CN110334302B (zh) * | 2019-05-24 | 2021-09-10 | 北京因特睿软件有限公司 | 复杂Web应用前端运行时分析方法 |
US11403577B2 (en) | 2020-02-13 | 2022-08-02 | International Business Machines Corporation | Assisting and automating workflows using structured log events |
CN112734189A (zh) * | 2020-12-30 | 2021-04-30 | 深圳晶泰科技有限公司 | 实验工作流模型建立方法 |
WO2022141234A1 (zh) * | 2020-12-30 | 2022-07-07 | 深圳晶泰科技有限公司 | 实验工作流模型建立方法 |
CN115146920B (zh) * | 2022-05-27 | 2024-04-26 | 电子科技大学 | 一种基于控制流和数据依赖的多主体工作流重构方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101295375A (zh) * | 2007-04-29 | 2008-10-29 | 国际商业机器公司 | 工作流实现方法和系统 |
CN101702215A (zh) * | 2009-11-06 | 2010-05-05 | 山东浪潮电子政务软件有限公司 | 一种在工作流中操作间设置依赖项的设计方法 |
GB2466344A (en) * | 2008-12-19 | 2010-06-23 | Ibm | Method for automatic workflow graph refactoring and completion |
-
2013
- 2013-04-27 CN CN201310154278.XA patent/CN103218692B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101295375A (zh) * | 2007-04-29 | 2008-10-29 | 国际商业机器公司 | 工作流实现方法和系统 |
GB2466344A (en) * | 2008-12-19 | 2010-06-23 | Ibm | Method for automatic workflow graph refactoring and completion |
CN101702215A (zh) * | 2009-11-06 | 2010-05-05 | 山东浪潮电子政务软件有限公司 | 一种在工作流中操作间设置依赖项的设计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103218692A (zh) | 2013-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103218692B (zh) | 基于活动间依赖关系分析的工作流挖掘方法 | |
CN106503872B (zh) | 一种基于基础业务活动集的业务流程系统构建方法 | |
CN109379220B (zh) | 基于组合优化的复杂网络关键节点簇挖掘的方法 | |
CN108228724A (zh) | 基于图数据库的电网gis拓扑分析方法及存储介质 | |
CN102880684B (zh) | 基于日志记录挖掘与组合验证的工作流建模方法 | |
Sarno et al. | Decision mining for multi choice workflow patterns | |
CN103150163A (zh) | 一种基于MapReduce模型的并行关联方法 | |
CN105630797B (zh) | 数据处理方法及系统 | |
CN111008521A (zh) | 生成宽表的方法、装置及计算机存储介质 | |
CN108900320A (zh) | 一种互联网测试床拓扑结构大比例规模缩减方法及装置 | |
CN112288397A (zh) | 流程模板配置方法、流程执行方法、装置和电子设备 | |
Jiao et al. | Graph sampling for Internet topologies using normalized Laplacian spectral features | |
Feldkamp et al. | Online analysis of simulation data with stream-based data mining | |
CN106096159B (zh) | 一种云平台下的分布式系统行为仿真分析系统的实现方法 | |
CN106557881A (zh) | 一种基于业务活动执行顺序的业务流程系统构建方法 | |
Mooney et al. | Who are the contributors to OpenStreetMap and what do they do | |
CN105573726B (zh) | 一种规则处理方法及设备 | |
CN112434831A (zh) | 故障排查方法、装置、存储介质及计算机设备 | |
Zheng et al. | Analysis of criminal social networks with typed and directed edges | |
CN108897680B (zh) | 一种基于soa的软件系统操作剖面构造方法 | |
CN101576981A (zh) | 场景式服务系统 | |
CN103761298A (zh) | 一种基于分布式架构的实体匹配方法 | |
CN116015939A (zh) | 一种基于原子技术模板的高级持续威胁解释方法 | |
CN113505184B (zh) | 一种系统间信息关系图的自动生成方法及存储介质 | |
CN104199824A (zh) | 一种树型数据上判定节点关系的方法 |
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 |
Granted publication date: 20170315 |
|
CF01 | Termination of patent right due to non-payment of annual fee |