views:

390

answers:

2

What are the differences between Spring integration and JBoss jBPM?

Thank you.

A: 

Spring Integration is an extension of the Spring framework to support enterprise integration based on the well-known Enterprise Integration Patterns. Spring Integation is an apple.

JBoss jBPM is a workflow engine written in Java that can execute processes described in BPEL (or its own process definition language jPDL). JBoss jBPM is an orange.

Both are fruits.

Pascal Thivent
+1  A: 

It is a valid question, since there are too many products and buzz words.

In simple terms, think of jBPM as a workflow framewrok / engine - you define a "sequence of events", that also called a business process (hence BPM - Business Process Management), and jBPM make your data follow that sequence/process.

Whereas Spring Integration is an Event Driven framework based on several building blocks: Message, Source, Target, Channel, Filter, etc. To understand it better take a look at: "Spring Integration in 10 minutes". It follows a simple

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

pattern, which allows you to create wonders. Sources or/and targets would be assigned to named channels, and filters may range from being a simple transformer / translator to the router, that reads the message header and decides what channel to route the message to. Of course there is all power of Spring Remoting (JMS, Webservice, RMI, etc..) which is available in Spring Integration via templates (JmsTemplate, WebserviceTemplate, etc..) and adapters that allow the integration with external systems with FTP, RMI, HttpInvoker, JMS, Web Services etc.

You can of course build a workflow solution using Spring Integration, but there is Drools Flow for that - no need to reinvent a workflow engine :)

litius