BTW, diese Antwort ist seither interessanter geworden. Jetzt gibt es Activiti - eine Apache-lizenzierte Open-Source-BPMN-Engine (Workflow, genau wie jBPM), die von den Leuten erstellt wird, die jBPM erstellt haben, aber seither.
So können Sie mit Activiti Workflow-Szenarios unterstützen, in denen Sie den Status verwalten müssen und sich ein Workflow-System zur Verwaltung dieses Status leisten können. Activiti bietet also eine starke Orchestrierung.
Spring Integration ist ein Integrations-Framework - es kann verwendet werden, um Zustände aus Ereignissen abzuleiten, die nicht notwendigerweise miteinander in Beziehung stehen. Dies geschieht normalerweise durch Übergabe von Metadaten - wie Kopfzeilen -, um die "Illusion" zu vermitteln, dass die Schritte alle Teil desselben Prozesses sind. Becauee Spring Integration kann mit vielen verschiedenen Systemen verbunden werden und arbeitet in Bezug auf ihre APIs, ideal für die Integration verschiedener Systeme. Mit der Spring-Integration können Sie reagieren und Nachrichtenflüsse erzwingen, obwohl ich diese Orchestrierung nicht so nennen würde wie Activiti.
Spring Integration und Activiti können sowohl Sequenzen, Übereinstimmungen, Splitter / Gabeln, Aggregatoren / Joins usw. tun. Activiti kann Menschen verwalten, Spring Integration kann jedes System anpassen. So haben sie ihre Rollen und - ehrlich gesagt - sie arbeiten sehr gut zusammen. In der Sandbox befindet sich ein Spring Integration Activiti-Adapter, mit dem Sie einen Activiti-Prozess ausführen können, der wiederum an Spring Integration delegieren kann, um die Geschäftslogik in verschiedenen Schritten zu verwalten. Sobald Sie in der Spring-Integration sind, können Sie alles tun, was Sie mit der Spring- und Spring-Integration tun möchten, und dann eine Antwortnachricht an das Activiti-Gateway senden, in der Sie darüber informiert werden, dass der Activiti-Prozess fortgesetzt werden kann.
Full Disclosure: Ich bin sowohl bei den Activiti- als auch den Spring-Integrationsprojekten ein Commiter, und ich bin der Hauptautor im Moment der Unterstützung von SPring Integration Activiti.
Es ist eine gültige Frage, da es zu viele Produkte und Schlagwörter gibt.
Stellen Sie sich einfach jBPM als Workflow-Framewrk / Engine vor - Sie definieren eine "Abfolge von Ereignissen", die auch als Geschäftsprozess bezeichnet wird (daher BPM - B Usiness P <) / strong> rocess M Management) und jBPM lässt Ihre Daten dieser Sequenz / diesem Prozess folgen.
Die Spring-Integration ist ein ereignisgesteuertes Framework, das auf mehreren Bausteinen basiert: Message, Source, Target, Channel, Filter usw. Um es besser zu verstehen, werfen Sie einen Blick auf: "Spring Integration in 10 Minuten ". Es folgt ein einfaches
%Vor%Muster, mit dem Sie Wunder erschaffen können. Quellen oder / und Ziele werden benannten Kanälen zugewiesen zugewiesen, und Filter können von einem einfachen Transformator / Übersetzer zum Router reichen, der den Nachrichtenkopf liest und entscheidet, welchem Kanal die Nachricht zuleiten soll. Natürlich gibt es alle Möglichkeiten von Spring Remoting (JMS, Webservice, RMI, etc ..), die in Spring Integration über Vorlagen (JmsTemplate, WebserviceTemplate, etc ..) und Adapter, die die Integration mit externen Systemen mit FTP, RMI ermöglichen , HttpInvoker, JMS, Webdienste usw.
Sie können natürlich eine Workflow-Lösung mit Spring Integration erstellen, aber es gibt Drools Flow dafür - keine Notwendigkeit, eine Workflow-Engine neu zu erfinden:)
Spring Integration ist eine Erweiterung des Spring-Frameworks zur Unterstützung der Unternehmensintegration auf Basis der bekannten Enterprise Integration Patterns . Spring Integration ist ein Apfel.
JBoss jBPM ist eine in Java geschriebene Workflow-Engine, die in BPEL beschriebene Prozesse (oder ihre eigene Prozessdefinitionssprache jPDL) ausführen kann. JBoss jBPM ist eine Orange.
Beide sind Früchte.
Tags und Links jbpm spring-integration