工作流网(Workflow Nets)
在利用Petri网进行建模业务流程,更多的使用Petri网的一个子类,称为工作流网(WorkFlow nets,WF-nets)。一个WF-net是一种Petri网,它有一个专门的用于流程开始的源库所(source place),和一个专门用于流程结束的终库所(sink place),而且所有结点都处在从源点到终点的路径上。形式化定义为:
定义6(工作流网) 令N=(P, T, F, A, 𝓵)是一个(带标签的)Petri网,且
t
‾
\overline{\text{t}}
t是一个不属于P∪T的新标记符。N是一个工作流网,当且仅当(a)P有一个输入库所𝒾(也称为源库所),且•𝒾=∅,(b)P有一个输出库所𝑜(也称为终库所),且𝑜•=∅,(c)
N
‾
\overline{\text{N}}
N=(P,T∪{
t
‾
\overline{\text{t}}
t},F∪{(𝑜,
t
‾
\overline{\text{t}}
t),(
t
‾
\overline{\text{t}}
t,𝒾)},A∪{τ},𝓵∪{(
t
‾
\overline{\text{t}}
t,τ)})是强连通的,即对
N
‾
\overline{\text{N}}
N中任意一对结点都存在一条路径连通它们。
从定义可以看出,工作流有且只有一个输入库所,有且只有一个输出库所,并且所有结点都能出现在一条从输入库所到输出库所的路径上,如图3就是一个工作流网。定义中,
N
‾
\overline{\text{N}}
N被叫做短循环网(short-circuited net),它引入了一个特别的变迁
t
‾
\overline{\text{t}}
t,以输出库所𝑜为输入(前集的唯一元素),以输入库所𝒾为输出(后集的唯一元素)。
为什么工作流网与业务流程建模特别相关?原因在于,在BPM语境下使用的流程模型描述了给定类型案例的生命周期。简单来说,对于一个业务案例,它是有始有终的,比如申请保险流程,一定有会申请的开始和结束,而在开始和结束中间的活动程序,一定是处在从开始到结束的路径上的。
工作流网也是过程挖掘的自然表示。工作流网的触发序列与事件日志中的记录行迹(trace)之间存在明显的对应关系。
然而,并不是每一个工作流网都可以正确表示一个流程(要具备对每个案例善始善终的能力)。一个工作流网可能存在一些缺陷如死锁导致没有一个活动可以得到启动、活锁或者流程结束时存在垃圾残留。于是为正确表示流程,定义了以下著名的正确性标准:
定义7(合理性) 令N=(P, T, F, A, 𝓵)是一个工作流网,输入库所为𝒾,输出库所为𝑜,N是合理的当且仅当:
•(安全性safeness)(N,[𝒾])是安全的,即每个库所至多只能有一个托肯存在;
•(正确结束proper complete):对任意标记M∈[N,[𝒾]>,若𝑜∈M,则M=[𝑜];(即结束时不能有残留托肯在其他库所中)
•(选择结束option to complete)对任意标记M∈[N,[𝒾]>,[𝑜]∈[N,M>;(即对于任意一个可达标记,它都可以达到终点)
•(无死部分absence of dead parts):(N,[𝒾])不存在死变迁(即,对任意t∈T,都存在至少一个触发序列使能t)。
注意合理性的第三个可以蕴含第二点。可以用标准Petri网分析技术来验证一个工作流网是否符合合理性,实际上合理性对应一个WF-net对应的短循环网
N
‾
\overline{\text{N}}
N的活性和安全性。
定理 一个工作流网N=(P, T, F, A, 𝓵),对应的短循环网为
N
‾
\overline{\text{N}}
N=(P,T∪{
t
‾
\overline{\text{t}}
t},F∪{(𝑜,
t
‾
\overline{\text{t}}
t),N是合理的,当且仅当(
N
‾
\overline{\text{N}}
N,[𝒾])是安全的且活的。
证明 其实结论是很显然的。(
t
‾
\overline{\text{t}}
t,[𝒾])是活的,即对于每个可到达状态M,都存在一条触发序列使得
t
‾
\overline{\text{t}}
t被使能。由于𝑜是
t
‾
\overline{\text{t}}
t的输入库所,我们发现对于从状态[𝒾]可到达的任何状态M,可以到达至少有一个托肯位于𝑜的状态。考虑任意可到达状态M’+[𝑜],即至少有一个托肯位于𝑜的状态。在这种状态下,
t
‾
\overline{\text{t}}
t被使能。如果
t
‾
\overline{\text{t}}
t触发,则到达状态M*’+[𝒾]。因为(
N
‾
\overline{\text{N}}
N,[𝒾])也是安全的,所以M’应为空状态(否则根据WF-net的定义,[𝑜]∈[N,M’>,从而使得库所𝑜的托肯数>1,破坏了安全性)。
&ensp有了这个定理,现在就可以利用Petri网的分析方法和技术来验证一个Petri是否是WF-net并且是否是合理的。一个用于分析WF-net的工具——Woflan1。
H.M.W. Verbeek, T. Basten, and W.M.P. van der Aalst. Diagnosing Workflow Processes using Woflan. The Computer Journal, 44(4):246–279, 2001。http://www.swmath.org/software/7028 ↩︎