工作流-Petri网概念(3) (学习笔记)

来源:互联网 发布:php获取数组最大下标 编辑:程序博客网 时间:2024/05/22 16:48

  一个过程决定了某特定类型案例的路由。然而,相互独立案例之间的路由也可以不同。(例如:任务send-assessor,对小额索赔不需要执行)我们称这样的情况为选择路由。

(a):选择路由(1)

某案例的条件c1满足,变迁t11t12之一就可实施。于是在两个任务(task1task2)之间存在选择,我们把由变迁t11t12和库所c2C3构成的网称做一个OR-Split

一旦某中一个任务(task1task2)被执行,OR-join确保一个标记出现在c6中。在这种情况下OR-join由两个库所(c4c5)和两个变迁(T21T22)构成的网来建模。

(a)是先确定两个任务,选择一个满足条件的任务执行。下面的图(b)是,只有当taks1task2必须被执行的时候,才能做出实际的选择。

(b):选择路由(2)

假设,task1对应估价报告的处理,如果在一规定的时间内报告没有被提交,task2必须被执行。

c1中有标记时,就会有两个后续事件:报告收到则task1被执行,或报告迟迟未到则task2被执行。执行哪个任务的决策一直要推迟到报告收到时刻或经过一段固定的时间。而图(a)中这个决策必须立即做出。

多数情况下最好根据案例的特定性质做出决策。也就是说,我们希望根据案例属性的值(案例的管理参数)做出选择。图(c)给出了这样的示例。

(c):选择路由(3)

图(c)中的变迁t1基于案例属性给c2c3生成一个标记。这种情况下,为了能在变迁t1中做出选择,我们需要采用颜色扩展。根据案例属性,t1中的决策规则将决定哪一个任务被执行。

我们假定c1中标记的值包含了与案例相关的所有属性。在并行路由的情况下,可能有多个标记对应用同一个案例。因为属性代表了完整的案例,所以标记必须有唯一的值。换句话说,不能出现同一个案例的两个标记有不同的值。为此,我们必须确保,在任务执行过程中需要改变案例属性时,属于该案例的所有标记的值全部更新。

我们把案例属性看做是能被该案例的所有相关任务检查和修改的信息。理论上,案例属性这样广泛的作用范围可以显式地建模:每一个变迁都链接到一个公共库所。该库所总包含一个保存着案例属性值的标记。

      待续……

 
原创粉丝点击