如何区分工作流程系统与自动执行某些工作的普通应用程序?系统必须具有哪些特定功能才能归类为工作流程系统?
答案 0 :(得分:9)
工作流程系统管理具有关联状态的对象(通常是文档的逻辑或实际电子替换)。系统中对象的状态是state machine(或Petri net)中的节点。
状态转换将对象从一个状态移动到另一个状态。转换可以由人,自动事件,计时器,日历等触发。通常,转换表示现实世界中的过程中的步骤。
这很抽象,所以请考虑一个例子:错误跟踪软件。错误报告可能开始未经验证,因此在QA测试人员的队列中。质量检查测试人员将验证报告并确保步骤清晰,对报告的严重性进行评级等,并将其分配给开发人员或开发人员组。然后,它将在开发人员的队列中,最终修复或决定不修复该错误,该错误会将其发送回QA进行验证。如果对该错误存在争议,它可能会进入一个充满管理堆栈的状态。
上述的一个简单实现是对每个对象关联的状态使用枚举,并使每个人的收件箱成为具有特定枚举值状态的对象的查询。
这就是它的要点,但事情可能变得更加复杂,例如拆分新对象,对非人为事件做出反应,如时间,内部或外部(即第三方)服务等。
答案 1 :(得分:4)
workflow management system推动用户完成跨越系统中多个功能以及工作流中可能有多个参与者的进程。工作流引擎知道进程的状态,并将其存储在自己的存储中,该存储可能是也可能不是主应用程序数据库的一部分。
Workflows can be modelled使用state machines,petri nets或various other constructs,包括普通的旧脚本语言。独立的orchestration system可用于管理多个应用程序的工作流程。许多(但不是全部)支持BPEL (Business Process Execution Language)作为工作流的标准描述语言。如果您的应用程序设置为service-oriented architecture,则工作流系统可以控制应用程序功能来执行此操作。工作流引擎的另一个特性是,应该可以在maintaining database consistency期间中止工作流并撤消任何状态更改。
www.workflowpatterns.com包含有关工作流系统的文档集以及模式库。
工作流程系统的应用程序示例:
保险理赔管理局。基本上都是他们的祖父。通常,此流程将制定规则,涵盖谁可以授权多少,谁可以处理不同业务类别的索赔,需要提供哪些文档并链接以提供审计跟踪,发布和跟踪付款问题以及授权丢失调整工作。典型的索赔工作流程将跟踪从通知到储备金和付款授权,到发放付款的索赔,以及安排损失调整工作(可能通过第三方)的边进程,持有付款授权直到完成并发布和支付损失调整费用。实际上,这些过程可能会非常复杂。
对复杂产品(如计算机系统)进行订购,报价和配置管理。
一个不寻常的例子是由药品制造商开发的系统,该系统跟踪新药品的批准程序。这也包含了一个专家系统,该系统具有编码的监管框架,可以选择通过监管环节的最短路径。这使他们的平均R& D生命周期时间从9年降至5.5年。
答案 2 :(得分:1)
如果引导用户完成业务流程而不需要引用该业务流程的任何外部文档,我会认为该应用程序是一个工作流系统。
扩展Barry的错误跟踪示例我会说你的错误跟踪应用程序是一个工作流程应用程序,例如,如果有一个名为“关闭”的按钮,当按下时将错误转换为关闭状态,也许允许用户输入关闭注释,记录时间戳和用户名,然后发送通知电子邮件。
如果用户必须从下拉菜单中选择新状态,然后自行发送电子邮件通知,则不是工作流程系统。
答案 3 :(得分:0)
我没有确切的定义。以下是一些宽松的标准:
答案 4 :(得分:0)
业务流程的自动化, 全部或部分,在此期间 文件,信息或任务 从一个参与者*传递到 根据一组,另一个是行动 程序规则。
*participant = resource (human or machine)
在我看来,软件方面有两种类型的工作流程。静态(或内置)工作流程和动态(可编程)工作流程。许多文档管理,错误跟踪甚至博客软件都具有使用简单状态转换的内置工作流程。
当人们说“工作流程”时,我认为它们通常意味着您可以将业务逻辑编程到某些现有软件中,例如,如果库存缺少胡萝卜,请自动调用sysco。
有关工作流功能的实际示例,请参阅Microsoft Dynamics CRM。