时间感知流程的变更处理
立即解锁
发布时间: 2025-08-20 01:49:55 阅读量: 1 订阅数: 5 


业务流程管理:第12届国际会议论文集
# 时间感知流程的变更处理
## 1. 时间感知流程的基础概念
### 1.1 时间约束表示
在时间感知流程中,一些符号用于表示活动的最早开始日期(ES)、最晚开始日期(LS)、最早完成日期(EE)或最晚完成日期(LE)。虽然部分用于可视化时间约束的符号与 BPMN 定时器事件相似,但它们的语义有很大差异,使用时不能混淆。
### 1.2 时间感知流程的时间一致性
时间感知流程模型通过执行其活动和控制连接器,并遵守一组时间约束来运行。若能在不违反相关时间约束的情况下执行所有执行路径,则该流程模型具有时间一致性。时间一致性是流程模型稳健且无错误执行的基本前提。
对于支持时间感知流程的系统,在设计时检查流程模型的时间一致性,以及在运行时监控和重新检查相应实例的时间一致性是一项关键任务。这颇具挑战性,因为时间约束可能相互作用,导致复杂的相互依赖关系。
### 1.3 条件简单时间网络(CSTN)
可以通过将时间感知流程模型映射到条件简单时间网络(CSTN)来检查其时间一致性。CSTN 是一个 6 元组 ⟨T, C, L, OT, O, P⟩,各部分含义如下:
- T:一组实值变量,称为时间点。
- P:有限的命题字母(或命题)集合。
- L:T → P ∗ 的函数,为 T 中的每个时间点分配一个标签。
- C:一组带标签的简单时间约束。
- OT:观察时间点的集合。
- O:P → OT 的双射,将每个命题字母与唯一的观察时间点关联起来。
时间点代表瞬时事件,观察时间点用于决定可能的执行路径。约束 cXY = ⟨[x, y]XY, β⟩ 表示时间点 X 和 Y 之间的时间跨度必须至少为 x 且至多为 y。
### 1.4 场景和解决方案
给定一个 CSTN S = ⟨T, C, L, OT, O, P⟩,场景 sP 是一个将 P 中的每个命题分配真值的函数。CSTN S 在场景 sP 下的解决方案是对所有满足 sP (L(X)) = true 的时间点 X 的完整赋值集合,且满足所有 sP (β) = true 的约束 ⟨[x, y]XY, β⟩。
### 1.5 流程模型到 CSTN 的映射
将时间感知流程模型映射到 CSTN 的步骤如下:
1. **控制流映射**:将流程模型的控制流映射到 CSTN。每个活动、AND - split、AND - join 和 XOR - join 表示为一对时间点,XOR - split 的结束时刻表示为观察时间点。
2. **添加节点持续时间约束**:在代表节点开始和结束时刻的时间点之间添加约束 ⟨[dmin, dmax]NiSNiE, ⊡⟩。
3. **添加控制边约束**:在节点之间的控制边上添加约束 ⟨[0, ∞]NiENjS, ⊡⟩。若边的源是 XOR - split,约束标签会根据决策进行调整。
4. **时间约束映射**:时间滞后和固定日期元素也会映射到相应的约束。
### 1.6 时间一致性的定义
CSTN 被称为弱一致的,当且仅当对于每个场景 sP 至少存在一个解决方案。时间感知流程模型被认为是时间一致的,当且仅当其对应的时间模型(即 CSTN 表示)是弱一致的。
### 1.7 最小网络
CSTN 的最小网络是一个与原 CSTN 具有相同解决方案集合的唯一 CSTN,且每个约束允许的值至少是一个解决方案的一部分。只有当 CSTN 是弱一致时,才存在最小网络。在执行流程实例时,会克隆设计时创建的时间模型的最小网络,并根据实例的实际时间状态进行更新,以监控和重新检查实例的时间一致性。
## 2. 时间感知流程的变更操作
### 2.1 基本变更操作
在更改流程实例或其流程模型时,必须确保其合理性。ATAPIS 从低级变更原语抽象出具有明确定义的前置和后置条件的高级变更操作,以保证修改后的流程模型在结构和行为上的合理性。以下是一些基本变更操作:
| 操作类型 | 操作名称 | 非正式描述 |
| ---- | ---- | ---- |
| 控制流变更 | InsertSerial(n1, n2, nnew, [dmin, dmax]) | 在直接后继节点 n1 和 n2 之间插入具有持续时间 [dmin, dmax] 的节点 nnew |
| 控制流变更 | InsertPar(n1, n2, nnew, [dmin, dmax]) | 在由 n1 和 n2 定义的 SESE 块并行插入具有持续时间 [dmin, dmax] 的节点 nnew |
| 控制流变更 | InsertCond(n1, n2, nnew, [dmin, dmax], c) | 在后继节点 n1 和 n2 之间有条件地插入具有持续时间 [dmin, dmax] 的节点 nnew 和一个 XOR 块 |
| 控制流变更 | DeleteActivity(n) | 删除活动 n |
| 时间约束变更 | InsertTimeLag(n1, n2, typetl, [tmin, tmax]) | 在节点 n1 和 n2 之间插入时间滞后 [tmin, tmax] |
| 时间约束变更 | InsertFDE(n, typefde) | 向节点 n 添加类型为 typefde 的固定日期元素 |
| 时间约束变更 | DeleteTimeLag(n1, n2, typetl) | 删除节点 n1 和 n2 之间类型为 typetl 的时间滞后 |
| 时间约束变更 | DeleteFDE(n, typefde) | 从节点 n 删除类型为 typefde 的固定日期元素 |
### 2.2 变更操作的应用
#### 2.2.1 串行插入活动
InsertSerial(n1, n2, nnew, [dmin, dmax]) 操作在直接后继节点 n1 和 n2 之间插入节点 nnew。从时间属性来看,插入 nnew 可能会将 n1 和 n2 之间的最小时间距离增加到 dmin,但最大距离不受影响。
若实例时间模型中最小持续时间 dmin 符合 n1 结束时刻和 n2 开始时刻之间的任何隐式或显式约束 ⟨[cmin, cmax]N1EN2S, β⟩(即 dmin ≤ cmax),则节点插入不会影响流程实例的时间一致性。
插入节点后,需要
0
0
复制全文
相关推荐









