如何区分工作流系统和自动执行某些工作的普通应用程序?系统必须具有哪些特定功能才能归类为工作流程系统?
工作流系统管理具有关联状态的对象(通常是文档的逻辑或实际电子替换).系统中对象的状态是状态机(或Petri网)中的节点.
状态转换将对象从一个状态移动到另一个状态.转换可以由人,自动事件,计时器,日历等触发.通常,转换表示现实世界中的过程中的步骤.
这是非常抽象的,所以请考虑一个例子:错误跟踪软件.错误报告可能开始未经验证,因此在QA测试人员的队列中.质量检查测试人员将验证报告并确保步骤清晰,对报告的严重性进行评级等,并将其分配给开发人员或开发人员组.然后,它将在开发人员的队列中,最终修复或决定不修复该错误,该错误会将其发送回QA进行验证.如果对该错误存在争议,它可能会进入一个充满管理堆栈的状态.
上述的一个简单实现是对与每个对象关联的状态使用枚举,并使每个人的收件箱成为具有特定枚举值状态的对象的查询.
这是它的要点,但事情可能变得更加复杂,例如拆分新对象,对非人为事件做出反应,如时间,内部或外部(即第三方)服务等.