我想知道关于具体问题你-所以读者-必须解决使用的工作流程引擎和什么图书馆/框架使用,如果你不滚你自己的。我也想知道当一个工作流程的发动机并不是最好的选择,并且如果你怎么选择了简单的东西,像一个任务列表/工作表/任务的管理类型应用程序使用国家机器。

问题:

  • 什么问题你有没有使用工作流程引擎的解决?
  • 什么图书馆/框架你有没有用?
  • 当做一个简单的国家机/任务管理系统足够了吗?
  • 奖励:怎么做你让之间的区别 任务管理工作流程引擎?

我在寻找第一手经验。

一些资源,我已经检查了出来:

有帮助吗?

解决方案

我有偏见,因为我的主要作者 StonePath.

我已经开发了工作流程应用程序对于美国国家部门,日内瓦人道主义排雷中心数财富500强客户,并且最近在华盛顿特区的公立学校系统。每次我看到的'工作流程的发动机',试图将一个主参考的业务流程,我看到一个组织的战斗本身的工作围绕的工具。这可能是由于事实上,这些解决方案一直是供应商产品的驱动,然后结束了一个战术小队的'顾问'不断喂养的程序...但是,因为这样,我倾向于作出负面的反应,当我听到的好处的进程为基础的工具,承诺'集中的工作流程定义在一个地方,让他们重复'.

这就是说,我非常喜欢露恰-我已经被下列项目对于一些时间和我应该需要这样的解决方案,这将是下一个工具,我将愿意尝试。StonePath有一个非常不同的目的,而不露恰-在哪里露恰是有用的红宝石在一般情况下,StonePath是旨在轨道,该网络框架内编写的红宝石。那里露恰是关于长期业务流程及其相关定义,StonePath是有关管理国家基于工作流程和任务。坦率地说,我认为区别从外面看可能是微妙的-很多次的同一类型的业务流程可以表示任何一种方式-状态-和任务为基础的模式倾向于地图给我的心理模型。

让我描述的要点基于状态的工作流程。总之,想象一下,一个围绕工作流程处理的东西就像一个的抵押贷款或护照延期。作为该文件的移动,围绕办公室',它的旅行从一个国家向另一个国家。想象一下如果你是负责的文件,和你的老板要你每隔几小时的最新情况,并想简要回答...你会说"这是在数据输入"..."我们正在检查申请人的证书现在"..."我们正在等待质量检查"..."我们"...等等。这些都是该国在一个国家基于工作流程。我们将从一个国家向另一个国家通过渡状"批准"、"应用",回扣","拒绝",等等。这些往往是行动的动词。事情就像这样仿照了所有的时间在软件作为一个国家机。

下一部分的一个国家基于任务的工作流程建立的任务。任务是一个单元的工作,通常有截止日期和处理的指示,连接一个工作项目(贷款申请或护照续期,为实例),一个用户"盒子"。任务可能发生在彼此并行或sequentialy,我们可以创建任务时,将自动进入我们的国家,创建任务的手工作的人认识到工作需要做,并且需要任务是完成前我们就可以移动到新的状态。所有这种行为是任选的,并且部分的工作流程定义。

兔子洞可以去一个很大深度超过这个,我写了一篇关于它对问题4的PragPub,务实的程序员的杂志。检查出来的选举事务处的链接,上述针对一个更新的PDF格式的文章。

在工作与StonePath去几个月中,我们发现,国家基础的模式的地图真的很好宁静的网络架构,特别是,任务并状态过渡地图很好地嵌套的资源。期望看到的未来写我在这一问题。

其他提示

我有偏见的,我作者之一的 露恰.

备选案文1)国家机器的附加资源(文件、订单、发票、书、一件家具).

备选案文2)国家机连接到一个虚拟资源命名一个任务

备选案文3)工作流程引擎的解释工作流程定义

现在你的问题是,标记"BPM"我们可以扩大到"业务流程管理"。怎么,这种管理中发生的每一个变体?

变式1,业务流程(或者工作流程)是散布在该应用程序。国家机器的附加资源强制执行的一些方面的工作流程,但只有那些相关资源。可能还有其他的资源与其自己的国家机器遵循相同的业务程序。

备选案文2,该工作流程可以集中在任务资源,并表示由国家机器周围的资源。

备选案文3,工作流颁布的解释资源称为一个工作流程定义的(或业务流程定义)。

会发生什么情况时的业务流程的改变吗?它是值得拥有一个工作流程引擎的业务流程管理的资源?

大多数国家机库有1组国家的+转换。工作流程引擎的是,他们中的大多数工作流程定义的口译人员和他们允许多个不同工作流程,以一起运行。

会有什么成本的改变工作流程?

该变式不是相互排斥的。我已经看到很多例子,一个工作流程的发动机状态的变化多的资源,他们中的一些看守通过国家机器。

我也使用备选案文3+2很多,对于人的任务:工作流程引擎,在某一点在运行过程中的实例,手任务(工作项目)以个人参与者(资源的任务是创造和放置在的状态'准备').

你可以走很长的方式与备选案文2单独的(任务经理variant)。

我们还可以提到的变0),那里有没有一个国家机,没有的工作流程引擎,业务流程(es)是分散和/或硬编码中的应用。

你可以问很多问题,但是如果你没有花时间阅读的答案并不需要时间来尝试和实验,你不会走得很远,永远不会取得任何天赋的时使用这个或那个工具。

在以前的项目,我正在对我加入了一些工作流程类型的规则设定的政府形式的Healhcare业。

形式需要填补了由最终用户,并根据一些答案其他形式定于填写在一个稍后的日期。也有外部事件,将取消排定的形式或安排新的。

样品流:

患者承认->安排的初步评估的形式-->计划的季度审查的形式-->患者死了->取消审查-->排放评估表

许多其他规则的基础上的东西,如患者的年龄、他们在那里被承认等等。

这是一个ASP.NET 应用程序,该规则基本上是一个表中的数据库。我加入脚本,这样一个脚本会在形成完成确定接下来要做什么。这是一个可怕的设计,已经完善一个适当的工作流程引擎。

检查 rails_workflow gem-我认为这是附近什么你搜寻。

我的作者之一 节奏工作流程引擎 我们开发的优步.之间的差异的节奏和多数现有的工作流程引擎的是,这是开发集中和非常灵活并可升级(成千上万的更新每秒多达数十亿的开放工作流程).该工作流程的编写作为面向目标的方案和引擎确保国家的工作流程的对象包括螺纹叠和地方的变量完全保留的情况下主的失败。

什么问题你有没有使用工作流程引擎的解决?Cadence用于几乎任何后台应用程序的生活超出一个单一的请求的答复。例的使用情况是:

  • 分布式计划的工作
  • 管理ML/数据管道
  • 反应的业务活动。例如旅行事件在优步.工作流程可以积累国家根据收到的事件和执行活动时有必要的。
  • 服务部署到编/。
  • CI流水线执行情况
  • 确保多服务的电话完成在请求被接收的。包括 传奇故事 图案的执行情况
  • 管理人的工作任务(类似于亚马逊 MTurk)
  • 媒体的处理
  • 客户支持票的路由
  • 为了处理
  • 测试服务,类似于 ChaosMonkey

和许多其他人

其他设置的使用情况下是基于移植的现有工作流程引擎的运行上的节奏。实际上任何现有的发动机的工作流程说明书中的语言可以移植上运行的节奏。有很多内部超级系统移植。这样一个单一的后端服务能力的多个领域特定工作流程系统。

什么图书馆/框架你有没有用?

节奏是一个自给自足的服务,编写去 Java 客户的侧库。唯一的外部依赖性的存储。Cassandra和SQL数据库的支持。

Cadence还支持异步的跨区域(一个术语)复制。

当做一个简单的国家机/任务管理系统足够了吗?

内部优步的节奏服务是由我们的团队。所以开销的建筑物的任何定义国家机/任务管理总是高于使用的节奏。公司以外的服务和存储为它需要设置的。如果你已经有一个,SQL数据库服务的部署是微不足道,通过一个多克的图像。Docker还被用来运行一个地方的节奏服务发展在个人计算机或笔记本电脑。

我滚是我自己的工作流程引擎的支持,分阶段处理的文档编目,发送的图像处理(我们的工作与修订sw),如果需要发送到验证,然后释放和最后运回来的客户。在我们的情况下,我们有一卡车的文件要处理这样有时我们需要运行每一个业务单独控制交付和资源使用情况。简单的概念,但是高性能和处理分布需要,我们可能找不到任何货架上的产品,适合该法案对于我们。

我有一个经验与使用 Activiti 医疗保健行业2.0发动机用于处理高效能和高通量数据传输过程中的一个基础设施的网络节点。基本任务是允许的配置和监测此类转让进程和控制每个节点网络(即。请求1发送数据文件的节点2经由特定运输层)。

有可能是成千上万的程序运行在时间和总体数万或低成千上万过程的每一天。

有一堆不同的进程的定义,但它不是一定需要这一操作系统能创建的定制工作流程。所以,主要的使用情况的BPM动机本身是可靠的、可扩展,并允许监测各个流程。

在结束这一基本工作,但我们学到了什么从该项目是一个医疗保健行业的平台,或者更确切地说,Activiti引擎具体地说,是不是最好的赌注这样一个高效的系统。

主要的挑战是执行任务的优先次序、数据库锁定、执行试名称的少数几个关于BPM本身。因此,我们必须制定处理这些,例如:

  • 处理的重试BPM为的情况下,当一个节点没有免费的工作人员给予的任务,或者当的节点是不运行。
  • 执行平行的转移任务在一个单一的处理和同步的结果(success/failure)。

我不知道如果其他医疗保健行业的引擎,将能更适合于这种情况下,由于医疗保健行业主要是为长期运行的商业任务涉及用户的互动性能可能是不同的问题,因为在我们的情况。

我的作者之一 Imixs工作流程.Imixs工作流程是一个开放源的工作流程引擎的基础上制移2.0和完全融入Java EE技术堆。
我的开发工作流程引擎的自由于超过10年。我会尽量回答你的问题在短:

>有什么问题你有没有使用工作流程引擎的解决?

我的个人的目标,当我开始思考有关工作流程引擎,是为了避免硬作弄的业务逻辑在我的应用程序。许多业务应用程序可以重复使用,因此它有意义的保持他们可配置的。例如:

  • 发出通知
  • 图打开的任务
  • 分配了一个任务一个人
  • 描述目前的任务

从这个函数的列表中可以看到我谈论人为中心的工作流程。在短:一个以人为中心的工作流程引擎回答的问题:谁是负责的任务和谁需要被告知下一个?这些都是典型的问题,在业务要求。

什么图书馆/框架你有没有用?

5年前我们开始重新实现Imixs工作流程引擎的重点 医疗保健行业2.0.医疗保健行业的共同标准进程的建模。和令人吃惊的事情对于我的是,我们突然能够描述甚至是高度复杂的业务流程可能被视和执行。我建议每个人使用医疗保健行业对建模的业务流程。

>的时候有没有一个简单的国家机/任务管理系统足够了吗?

一个简单的国家机就足够了,如果你只是想要跟踪状态的业务对象。这种情况下,当你开始引入的"状态"属性为对象的模式。但如果你需要的业务流程的责任,记录和流量控制,那么一个国家机器不再是足够的。

>奖金:怎么做你让之间的区别任务的管理和工作流程的发动机?

这正是许多工作流程的发动机在这里提到的有所不同。对于一个以人为中心的工作流程通常需要一个任务管理分配任务之间人的行为者。对于一个过程自动化,这点是不相关的。这就足够了,如果引擎执行某些任务。任务的管理和工作流程引擎不能相比的,因为任务的管理始终是一个功能的工作流程引擎。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top