Spring集成和JBoss jBPM有什么区别?
谢谢你。
顺便说一句,这个答案从此变得更加有趣。现在,有 Activiti - 这是一个开源的 Apache 许可的 BPMN 引擎(工作流程,就像 jBPM),它是由创建 jBPM 的人创建的,但后来离开了。
因此,您可以使用 Activiti 来支持您需要管理状态的工作流场景,并且可以负担得起在工作流系统中线程来管理该状态。因此,Activiti 提供了强大的编排功能。
Spring Integration 是一个集成框架——它可用于从不一定相互关联的事件中推断状态。这通常是通过传递元数据(如标头)来完成的,以告知提供“错觉”,即这些步骤都是同一过程的一部分。Becauee Spring Integration 可以连接到许多不同的系统并根据它们的 API 工作,它也是集成不同系统的理想选择。Spring Integration 让您可以做出反应并强加消息流,尽管我不会以与 Activiti 相同的方式调用此编排。
Spring Integration 和 Activiti 都可以做序列、并发、spliters/fork、aggregators/joins 等。Activiti 可以管理人类,Spring Integration 可以适应任何系统。所以,他们每个人都有自己的角色,而且——坦率地说——他们一起工作得很好。沙箱中有一个 Spring Integration Activiti 适配器,可让您运行 Activiti 流程,该流程又可以委托给 Spring Integration 以处理不同步骤的业务逻辑。一旦你在 Spring Integration 中,你可以使用 Spring 和 Spring Integration 做任何你想做的事情,然后将回复消息发送回 Activiti 网关,告诉它可能会恢复 activiti 进程。
http://git.springsource.org/spring-integration/sandbox
完全披露:我是 Activiti 和 Spring Integration 项目的提交者,并且我是目前支持 SPring Integration Activiti 的主要作者。
这是一个有效的问题,因为有太多的产品和流行语。
简单来说,将 jBPM 视为一个工作流框架/引擎 - 您定义一个“事件序列”,也称为业务流程(因此 BPM - 业务流程管理) ,并且jBPM使您的数据遵循该序列/过程。
而 Spring Integration 是一个基于多个构建块的事件驱动框架:Message、Source、Target、Channel、Filter 等。要更好地理解它,请查看:“ Spring Integration in 10 minutes ”。它遵循一个简单的
Source [send message] ---> CHANNEL --> FILTER --> CHANNEL --> Target [receive message]
模式,它可以让你创造奇迹。源或/和目标将分配给命名通道,过滤器的范围可以从简单的转换器/转换器到路由器,它读取消息头并决定将消息路由到哪个通道。当然,Spring Remoting(JMS、Webservice、RMI 等)的所有功能都可以在 Spring Integration 中通过模板(JmsTemplate、WebserviceTemplate 等)和允许通过 FTP、RMI 与外部系统集成的适配器使用, HttpInvoker, JMS, Web 服务等。
您当然可以使用Spring Integration 构建工作流解决方案,但有Drools Flow可以实现 - 无需重新发明工作流引擎 :)
Spring Integration 是 Spring 框架的扩展,用于支持基于众所周知的Enterprise Integration Patterns的企业集成。Spring Integation 是一个苹果。
JBoss jBPM 是一个用 Java 编写的工作流引擎,可以执行用 BPEL(或其自己的流程定义语言 jPDL)描述的流程。JBoss jBPM 是一个橘子。
两者都是水果。