Activiti 和 Drools ... 一个就够了吗?

Activiti and Drools ... is one enough?

我被要求开始探索用于某些客户端演示的 Activiti 工具。 该演示还将有 JBoss 个 Drools,Activiti 将与之集成。 我对这些工具和业务流程都是新手,如果问题很愚蠢,请原谅。

问题是为什么需要 Drools? Activiti 还不够吗? 它们都有条件元素,那么为什么你需要在 drools 之上使用 Activiti?

这个问题不太符合 Whosebug 的目的,所以如果您得到一些标记,请不要感到惊讶。但我会尽量给出一个简短的答案。

Activity是工作流引擎,Drools是业务规则引擎。它们有两个不同的用途。

  • 当您有需要以编程方式控制的不同参与者的动作流时,工作流引擎很有用。

  • 当您有用于自动执行某些您希望以声明方式描述的任务的业务规则时,规则引擎很有用。

这两个目的是相互正交的,这意味着您要解决的问题可能需要 none,只需要其中一个,或两者都需要。

想象一个工作流程,在这个工作流程中,客户报告了一个事件,一些专家必须对其进行处理,最后会产生一个账单,但这些任务背后没有繁重的算法。没有规则引擎的工作流引擎可能会支持这一点。

想象一下产品的复杂价格模型,例如具有各种可能订购的特殊功能的汽车。 (高保真扬声器售价 400 欧元,除非订购了行政版汽车,如果与智能手机适配器一起订购,它们只需 200 欧元......)这里规则引擎可能有用,尽管没有人谈论工作流程,所以不需要工作流引擎。

想象一下第一个示例(事件工作流)和一个复杂的计费方案。这里两种工具都可以用到。

我想知道为什么这两种类型的工具在某些地方被描述为完美地结合在一起。 (也许这种说法激发了你的问题。)它们有两种不同的用途,你是否需要它们取决于你要解决的问题。