工作流图结构冲突识别与图缩减技术应用
1. 过程模型中的结构冲突
在过程模型中,存在两种主要的结构冲突:死锁和同步缺失。
所有在初始节点后引入的拆分结构,都应在到达最终节点前通过合并结构闭合。具体而言,“与合并”(and - join)用于合并“与拆分”(and - split)路径,“或合并”(or - join)用于合并“或拆分”(or - split)路径。若用“与合并”来合并“异或拆分”(exclusive or - split)路径,就会导致死锁冲突。因为“与合并”处的一个或多个前置流未被触发时,会阻塞工作流路径的继续执行。同样,用“或合并”来合并“与拆分”的并发路径,会引入同步缺失冲突,这会导致“或合并”节点后续节点的意外多次激活。
下面通过表格展示两种冲突的情况:
| 冲突类型 | 冲突原因 | 后果 |
| ---- | ---- | ---- |
| 死锁冲突 | 用“与合并”合并“异或拆分”路径 | 工作流路径阻塞 |
| 同步缺失冲突 | 用“或合并”合并“与拆分”并发路径 | 后续节点意外多次激活 |
结构冲突并非过程模型中唯一可能出现的错误,但它们是控制流规范中错误的主要来源。其他建模方面也可能影响工作流的正确执行,例如:
- 数据流建模:活动之间的数据依赖关系若建模不正确,依赖活动在运行时可能无法从源活动获取所需数据。
- 数据映射:活动与底层应用组件之间的数据映射错误,也会导致工作流执行错误。
- 时间约束:工作流模型的控制流规范可能不满足特定的时间约束。
不过,工作流模型中其他错误的存在并不会引入或消除结构冲突,因此可以独立进行结构冲突的识别,而不
超级会员免费看
订阅专栏 解锁全文

28

被折叠的 条评论
为什么被折叠?



