让我在这里做一些说明,因为我是django-fsm和django-viewflow的作者,这两个项目可以称为“工作流库”。
工作流词本身有点高估。不同种类的库和软件可以称自己为“工作流”,但功能各不相同。共同点是工作流将某个过程的步骤连接成一个整体。
一般分类
如我所见,工作流实施方法可以分类如下:
单/多用户
-工作流库是自动执行单用户任务还是具有权限检查/任务分配选项。顺序/并行
-顺序工作流只是状态机模式的实现,并且允许同时具有单个活动状态。并行工作流允许一次执行多个活动任务,并且可能具有某种并行同步/联接功能。显式/隐式
-无论工作流是表示为单独的外部实体,还是被编织到其他类别中,其主要职责都是不同的。静态/动态
-静态工作流只用python代码实现一次,然后执行,通常可以通过更改工作流数据库表的内容来配置动态工作流。静态工作流通常可以更好地与其他django基础结构(例如视图,表单和模板)集成在一起,并且可以通过类继承之类的常用python结构更好地进行自定义。动态工作流假定您具有可以适应任何工作流运行时更改的通用界面。
其中,前两个可以看作是渐进的差异,但其他两个是根本的。



