基于CPN 工作流过程定义
Aalst 利用 Petri 网对工作流描述侧重于控制流描述 相关工作可以在文献[8 43 45 46]中找到 其基本思想就是将 Petri 网中的变迁和工作流的活动相关联 Petri 网表示多级工作流和工作流授权模型的优点在于 Petri 网具有丰富的分析技术 这些技术稍加改变 便能用于分析工作流的特性 例如 授权模型的安全问题和多 级工作流的安全性检测都能通过建立 Petri 网的可达性分析而解决 缺点是缺乏数 据流描述
b. T 是一个有限集 其元素称为变迁(transition)
c. P T=∅且 P T ∅ d. C 称为定义在 P T 上的颜色函数(color function) ∀ p P C(p)称为令牌色
集(token-colors set) t T C(t)称为事件色集(occurrence-colors set)
路由(routing) 路由是执行业务过程所经过的活动和连接的时序排列描述 各活动之间是通过路由关联的 WfMC 给出了如图 2-2 所示的 4 种基本路由结构 顺序路由 并行路由 条件路由 循环路由
图 2-2 WfMC 规定的 4 种工作流路由结构
26
参与者(participant) 参与者是执行活动的资源 参与者并不需特指某个具体 的人 可以是一群具有某种技能或责任的人或设备资源 在较复杂的情况下 参与 者的描述是通过组织单元模型来体现的
e. 弧函数集合为 E 也可以用关联矩阵来表示 P 与 T 之间的函数 I-/I+称为
P T 上的负/正关联函数(negative/positive incidence- function) ∀p P ∀t T
函数值 I-(p t)/I+(p t)本身也是一个函数 C(t)MS C(p)MS I-/I+也常被看作是一个|P| |T|矩阵 其第 i 行和第 j 列的元素取 I-(pi tj)/I+(pi tj) 这时 I-/I+称为前矩阵/
系统和环境数据 工作流管理系统或本地系统环境所支持的数据 数据类型和表达式 工作流所使用的数据的数据类型以及表达式
2.4 着色 PETRI 网
着色 Petri 网由丹麦的 Jensen 提出[5] 是一种高级 Petri 网 着色 Petri 网是一种 面向图形的建模语言 它适用于系统的设计 描述 模拟和验证 它主要由声明 库所 变迁和有向弧组成 它定义了颜色集(类型) 函数 运算和变量 库所表示 系统的状态 主要元素是库所名 颜色集和初始 tokens 它的图形表示是圆或椭圆. 变迁描述系统的活动或处理 主要元素是变迁名和守卫函数(布尔表达式) 它的图 形表示是方框 有向弧描述了变迁的输入和输出 它的弧表达式描述了当变迁发生 时 CPN 的状态如何改变 CPN 的形式定义和详细介绍参见文献[5]
工作流应用程序的描述 可能会被工作流支持的服务所调用的 IT 应用的描述 可能是一个通用的工业工具 特定的部门或企业服务 本地进程等 工作流应用的 描述反映了工作流引擎和应用程序之间的接口
工作流相关数据 在过程执行中生成和使用到的数据 活动和工作流应用程 序都可使用这些数据 用于在活动间传递持续信息和中间结果 并可用于计算条件 表达式
m2 SMS 以及 n Z 我们定义下列规则
∑ m1+m2= (m1(s)+m2(s))s s∈S 27
n*m= ∑ (n*m(s))s s∈S
m1=m2 当且仅当 ∀s S [m1(s)=m2(s)] m1<m2 当且仅当 ∀s S [m1(s)<m2(s)]
∑ m1-m2=
m2(s)-m1(s)
定义 2-2 多重集 设 S 为一个非空有限集 S 上的多重集(multi- set overS 或 bag
over S)是一个函数 m S Z 多重集 m 也经常以 ∑ m(s) s 的形式来表示 符号 s∈S
SMS 表示由所有 S 上的多重集所组成的集合 一个 S 上的多重集经常代表一组元素 其中元素 s S 出现|m(s)|次 对于 m1
24
实际上是高级 Petri 网的一个引申 这里 库所表示活动 而变迁则表示活动间的 转移 VanderAalst 则在 Petri 网的基础上定义了 WF- net[8] 即工作流 petri 网 在工 作流网中 变迁被用来表示活动 而库所则表示活动的使能条件 VanderAalst 还把 工作流管理联盟在规范中提出的几种基本的工作流原语映射成相应的 Petri 网模型 由此建立了工作流网的基本组件与触发机制
图 2-1 工作流过程定义在工作流管理系统中的定位
其中 构建阶段的功能主要体现在过程的计算机定义 在这个阶段 要通过使 用一个或更多的分析 建模和系统定义技术 将一个现实世界的过程翻译成可用计 算机处理的正规的定义 这个定义的结果有时称为过程模型 过程模板 过程中间 数据或过程定义 过程定义通常包括一些分散的活动步骤 相关的计算机和人的操 作 以及通过不同的活动步骤来进行过程处理的管理规则 过程定义的结果作为工 作流管理系统运行阶段的输入 其表达方式和存储形式影响到整个工作流管理系统 的处理形式 然而 WfMC 制定的有关过程定义模型的接口标准却不甚理想 虽然 大部分用户认为图形化的过程定义规范较符合使用习惯 但 WfMC 认为使用一个
总的来说 工作流的描述应当基于具有丰富语义表达功能的建模方法 这个方 法应当具有清晰性 一致性 易表达性和可扩充性 这个方法应当能足以表达步骤 循环 分支 条件 路径选择 任务分配 时间 调度和约束条件 其语义应当能 够定义控制流 数据流 资源流 并且能够定义策略来处理这些流的中断
本文中提出的基于 CPN 的工作流网侧重于控制流与数据流的描述
2.2 基于 petri 网的工作流过程定义
定义 2-1(Petri 网)五元式 PN(P T F M0)称为一个网 其中
P={p1 p2
pm}是有限库所集
T={t1 t2
tn}是有限变迁集
F (P T) (T P)是有向弧集 它代表结点流关系
M0 P {0 1 2 集[52]
}是初始标识 并且 P T=∅ P T ∅
过程定义本身的描述信息 包括过程定义的 ID 号 文本描述以及其它与管理 过程定义相关的信息(如生产日期 作者等) 它作为过程定义的头信息 与该过程 中涉及到的所有其它元素都相关
活动(activity) 过程定义由一个或多个活动组成 每个活动都包含一个逻辑 性的 自包含的工作单元 工作单元可以由参与者或应用程序执行 一个活动可以 是原子性的(不可再分解的基本行为步骤) 也可以是嵌套性的(含有其它的过程定 义)
WfMC 统一了工作流管理系统中所涉及到的名词术语 并给出过程定义的概念 过程定义是业务过程的形式化描述 用来支持工作流管理系统的建模和执行的自动 化 过程定义包括一系列活动和活动间的关系 过程的起始和终止信息 以及有关 个体的信息 如参与者 与 IT 有关的应用和数据等等 WfMC 根据其组成成员(包 括销售商 用户 分析家 系统集成家 大专院校等)已有的工作流产品 给出了 工作流过程定义的中间模型(meta- model) 并给出了工作流过程定义的基本要素[9]
2 基于 CPN 工作流过程定义
2.1 工作流过程定义在工作流管理系统中的定位
所有的工作流管理系统都包含以下三个主要功能[7] 见图 2-1 构建阶段功能 包括工作流过程 组成它的活动的定义和建模 运行阶段的控制功能 包括操作系统对工作流过程的管理 以及对每个过程
中的活动进行排序 运行阶段与用户和 IT 应用工具之间的交互作用
的转换 状态转换仅有一个输入和一个输出 因此它不能用于模拟并行活动的同步
控制 总之 Petri 网能可视化表达工作流中的所有特性 关联和限制 如并行 并 发 同步 控制流依赖和临时性的关系等等
Ellis 和 Nutt 在 Petri 网的基础上提出了 ICN(information control nets)的多重集扩展 给出两个非空集 S R 以及函数 F S RMS F
的多重集扩展(multi-setextension)是函数 F SMS RMS 满足 ∀m SMS F (m)=
∑ m(s) F(s)
s∈S
定义 2-4 广义矩阵乘积
设
1)A 和 B 为两个集合
2)F 是一个 m n 的矩阵 其第 i 行第 j 列的元素 fij AMS BMS 是一个线性函数
面向对象 Petri 网[53]具有丰富的表达能力 基于面向对象 Petri 网的工作流过程 定义支持过程定义相关数据和环境数据等关键要素的描述[50] 但是缺乏成熟的理论 和分析工具支持 Konstantin Korr 通过 Petri 网描述工作流的控制流程 通过活动的 属性给出数据流到活动的指派 从而可以采用可达图(coverability graph)对多级安全 工作流的数据流和控制流进行分析[39] 但同样不能直接采用 Design/Cpn 等成熟的 分析工具软件 同时也不能表达数据流和控制流不一致的情况
因此我们认为 适合于工作流建模的 Petri 网 需要对普通 petri 网作适当的扩 展 要根据工作流建模的特点和要求 以经典 Petri 网为基网 引入有色 层次 触发器 资源管理等机制 建立适合于工作流建模的能够同时描述控制流和数据流 的高级 Petri 网
25
2.3 工作流过程定义基本要素
CP 网的一个步骤(step)是 T 上的函数 S 满足 ∀t T S(t) C(t)MS CPN 的单一步骤(simple step)是一个步骤 S 满足 ∃t1 T S (t1) 0 对 于 t t1 S (t)=0.单一步骤 S 经常记为(t1 S (t1)) 通常 一个 CPN 有一个门卫(guard)函数 如果我们假设所有门卫都是常数
28
后矩阵(pre- matrix/ post- matrix) I=I+-I-称为关联矩阵(incidence matrix) ∀p P ∀t T 或者 I-(p t) 0 或者 I+(p t) 0 ∀t T ∀p P 或者 I-(p t) 0 或者 I+(p t) 0