概述
10. 一种理论上的引擎原理
Petri Net 是离散并行系统的数学表示,它的数学表述我搞不明白,只能明白他的表面上的一些东西。它不是为工作流而产生的,但如果能把Petri Net 和XPDL 结合起来去构造一个引擎不一定是符合实际需求的,但我相信它一定是很有前景的。也是很具有竞争力的。
在Petri Net 中主要有四个元素:
1. Place :
Place 是一种状态,譬如马路上的红绿灯,他的Place 可以是红灯,绿灯。
2. Transition
Transition 是从一个状态转变到另一个状态的过程。
3. Arc
Arc 是连接Place 和Transition 的一个有向弧,可以从Transition 指向Place ,也可以从Place 指向Transition ,但不能从Place 指向Place 或从Transition 指向Transition ,中间一定要有个状态变迁的过程。
4. Token
Token 是一个物件,他可以代表任何东西,当Place 或Transition 拥有足够的Token 时才可以从一种状态边成另一中状态。
Petri Net 的运作方式
图元定义:
上图的enter 经过fire 会变成下面的状态:
使enter 可以fire 必须消耗free 和wait 的各一个token ,enter 就可以个before 和occupied 各一个token 。依次类推的方式推动流程的运转。
至此我们可以给PN 网这样的过程调度算法这样的定义:如果一个变迁的每个输入库所(input place )都拥有令牌,该变迁即为被允许(enable) 。一个变迁被允许时,变迁将发生(fire) ,输入库所(input place) 的令牌被消耗,同时为输出库所(output place) 产生令牌。
使用这种算法的工作流引擎有开源的YAWL ,还有BOSSA ,大家在茶余饭后可以研究一下。
最后
以上就是淡定心情为你收集整理的EOS工作流引擎工作原理(四)的全部内容,希望文章能够帮你解决EOS工作流引擎工作原理(四)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复