Spring集成和JBoss jBPM有什么区别?

时间:2009-12-06 09:05:03

标签: jbpm spring-integration

Spring集成和JBoss jBPM之间有什么区别?

谢谢。

3 个答案:

答案 0 :(得分:7)

顺便说一句,这个答案后来变得更有趣了。现在,还有Activiti - 这是一个开源的Apache liceneded BPMN引擎(工作流,就像jBPM一样),由创建jBPM的人创建,但自从离开。

因此,您可以使用Activiti来支持工作流场景,其中yuo需要管理状态并且能够在工作流系统中进行线程以管理该状态。因此,Activiti提供了强大的编排。

Spring Integration是一个集成框架 - 它可以用于从不一定相互关联的事件中推断状态。这通常通过传递元数据(如标题)来告诉我们提供“错觉”,即步骤都是同一过程的一部分。 Becauee Spring Integration可以连接到许多不同的系统,并在API方面工作,也是集成不同系统的理想选择。 Spring Integration允许您对消息流进行响应和强制执行,但我不会像Activiti一样调用此编排。

Spring Integration和Activiti可以执行序列,并发,分裂器/分叉,聚合器/连接等.Activiti可以管理人类,Spring Integration可以适应任何系统。所以,他们每个人都有自己的角色 - 坦率地说 - 他们在一起工作得很好。沙箱中有一个Spring Integration Activiti适配器,允许您运行Activiti进程,该进程又可以委托Spring Integration在不同的步骤处理业务逻辑。一旦进入Spring Integration,您就可以使用Spring和Spring Integration完成所需的一切,然后将回复消息发送回Activiti网关,告知它可以恢复活动进程。

http://git.springsource.org/spring-integration/sandbox

完全披露:我是Activiti和Spring Integration项目的提交者,我是SPring Integration Activiti支持时的主要作者。

答案 1 :(得分:5)

这是一个有效的问题,因为有太多的产品和流行语。

简单来说,将jBPM视为工作流框架/引擎 - 您定义了一个“事件序列”,也称为业务流程(因此BPM - B usiness P < / strong> rocess M 管理),jBPM使您的数据遵循该序列/流程。

而Spring Integration是一个基于几个构建块的事件驱动框架:消息,源,目标,通道,过滤器等。为了更好地理解它,请查看:“Spring Integration in 10 minutes”。它遵循一个简单的

Source [send message] ---> CHANNEL --> FILTER --> CHANNEL --> Target [receive message]

pattern,它允许您创建奇迹。源或/和目标将分配到命名通道,过滤器可以从简单的转换器/转换器到路由器,读取消息头并决定将消息路由到哪个通道。当然,Spring Remoting(JMS,Webservice,RMI等)的所有功能都可以通过模板(JmsTemplate,WebserviceTemplate等)和适配器在Spring Integration中使用,它们允许通过FTP,RMI与外部系统集成,HttpInvoker,JMS,Web Services等。

您当然可以使用 Spring Integration构建工作流解决方案,但有Drools Flow - 无需重新构建工作流引擎:)

答案 2 :(得分:4)

Spring Integration是Spring框架的扩展,支持基于众所周知的Enterprise Integration Patterns的企业集成。 Spring Integation是一个苹果。

JBoss jBPM是一个用Java编写的工作流引擎,可以执行BPEL(或其自己的流程定义语言jPDL)中描述的流程。 JBoss jBPM是一个橙色。

两者都是水果。