美丽的工作流:是品味问题吗?
工作流可以使用不同的语言来进行指定。主流的工作流管理系统主要使用具有图形表示的过程式语言,涉及 AND/XOR 分割和合并(例如使用 BPMN)。不过,也有一些有趣的替代方法,例如基于数据驱动的案例处理方法,允许用户在一定范围内进行偏离,以及基于时态逻辑的声明式语言(除非明确禁止,否则一切皆允许)。最近,Rinus Plasmeijer 提出了 iTask 系统,其基于工作流建模本质上是一种特定类型的函数式编程的观点,这在表达能力、可扩展性和实现效率方面具有优势。
1. 需求驱动的工作流系统
函数式编程和过程建模以多种方式相互关联。例如,知名的 Petri 网工具如 CPN Tools 和 ExSpect 使用函数式语言来描述 Petri 网中转换的消耗和生产行为。然而,专注于过程建模和分析的不同社区与函数式编程社区在很大程度上是脱节的。业务流程管理(BPM)、工作流管理(WFM)和并发相关(如 Petri 网)社区很少使用源自函数式语言的概念。
因此,Rinus Plasmeijer 和 Wil van der Aalst 的团队在 2006 年向 STW 提交了联合项目提案“使用需求驱动的工作流系统控制动态现实生活中的工作流情况”。该项目于 2007 年获得批准,并于 2008 年启动,最终在 2012 年成功完成。
在 STW 项目中,使用了不同风格的工作流建模和执行方法。Rinus 及其团队开发了一种名为面向任务编程(TOP)的新函数式编程风格。iTask 系统是 TOP 在知名函数式语言 Clean 中的实现,支持这种工作流开发风格。iTask 工作流由类型化的任务组成,这些任务产生的结果可以作为参数传递给其他任务,并且
超级会员免费看
订阅专栏 解锁全文
5569

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



