首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BPM引擎与BPM引擎服务器

BPM引擎与BPM引擎服务器
EN

Stack Overflow用户
提问于 2015-04-29 12:42:17
回答 3查看 619关注 0票数 0

我正在研究工作流概念,特别是BPMN标准。我最感兴趣的是关于这个问题的可用软件。

我已经研究过像Activiti和jBPM这样的软件,它们都是用Java实现的。虽然他们很棒,但我还在找别的东西。尽管这类软件自称BPM Engine,但我宁愿将它们命名为BPM Engine Servers。它们是独立的服务器(带有基于web的GUI),因此很难将它们嵌入到其他服务器中。

现在我的问题是:是否有一个概念作为BPM Engine,它只对给定的数据执行给定的BPM,只有一个步骤?没有任何GUI或直接的用户交互(类似于库)?我该找什么?它叫什么名字?我的期望有效吗?

更新

我花了最后几个小时研究Activiti的用户指南。我还是不确定我能不能用我想要的方式!如果有人能确认的话我会很感激的。

我对一个类似控制台的应用程序感兴趣,我可以在任何时候运行这个应用程序,给它以前运行的进程(很可能是一个字符串)。引擎应该根据给定的历史构建过程。

一旦重建了这一进程,我想把它向前推进一步,告诉它发生了什么。然后它应该告诉我下一个要执行和关闭的任务。

最后,我将以字符串的形式存储更新后的进程(引擎应该以某种方式序列化它,以便以后可以取消序列化)。

我不希望引擎有自己的数据库或内存存储。我要它一完成就完全关机。这就是我所说的Engine,没有用户交互,没有存储访问。

任何一个BPM引擎都能以这样的方式运行吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-04-29 18:23:27

也许我忽略了您的观点,但Activiti实际上不过是一个可以嵌入到任何其他java应用程序中的jar文件。当然,为了以任何有意义的方式运行Activiti,您需要一个后台数据存储(数据库)和一个或多个流程定义,但是从Activiti的单元测试中可以看到,数据库可以在内存中,流程定义可以包含在war中。Activiti (可能还有jBPM)有许多示例,它只是作为一个嵌入式状态机使用,没有公开的UI或用户交互。我的公司已经为不同的组织实施了许多这样的解决方案。如果我错过了你的观点,请给我一个你的要求的例子,我相信我们已经解决了它的时间或另一个时间。

票数 2
EN

Stack Overflow用户

发布于 2015-07-16 12:41:56

您可能对Bonita BPM感兴趣。这个开源的BPM解决方案提供了一个执行引擎,可以作为一个独立的引擎使用。就像它的竞争对手一样,它还提供了一个可选的GUI,其形式是基于web的应用程序: Bonita。

票数 0
EN

Stack Overflow用户

发布于 2020-09-10 15:34:45

我认为您想要做的挑战是,大多数BPM引擎将流程的定义执行分开。因此,对于大多数用户来说,您需要一个地方来长期存储定义(通常是数据库),然后跟踪该定义的给定实例的状态。

如果您想要一个真正无状态的BPMN“解释”引擎,那么您的序列化数据不仅必须包括流程的当前状态,还必须包括流程定义。我确信这是可以做到的,但我不认为任何引擎都采用这种方法,因为这样做会增加解决方案的复杂性,并解决一个似乎没有多少人关心的问题。

此外,它还提出了一个问题:“考虑到我们现在有一个进程知道它在执行什么任务,是如何实际执行该任务的?”在我看到的大多数解决方案中,任务的执行都发生在与引擎相同的服务器上。在某些情况下,执行是在一种不同的技术中,“执行者”根本不了解这个过程,除了发出一个信号“好的这件事已经完成”,引擎处理接下来发生的事情。您希望在某种类型的序列化数据结构中拥有这些数据,因此就会出现这样的问题:“如果我们有这个无状态的BPMN引擎,任务的执行者是否必须更新序列化的数据以指示任务的状态更改”。

BPMN规范还有其他要求,我认为这会使您的方法非常困难,比如如何处理诸如中间消息事件之类的项目,这些事件要么等待特定的时间,要么等待消息,然后再向前推进。虽然所有这些都是可以解决的,但这肯定需要对现有方法进行重大的重新设计。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29944074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档