Wir müssen WorkFlow zu unserer von Spring verwalteten Anwendung hinzufügen. Hat jemand nützliche Erfahrungen mit den unzähligen OSS Work Flow-Lösungen? Welches ist das Beste? Welche integriert am besten in Spring? Welche sollten wir vermeiden?Welches OSS-Projekt sollte ich mir ansehen, wenn ich Spring friendly WorkFlow machen muss?
Antwort
Wenn Sie nur eine einfache Prozess-Orchestrierung benötigen, kann Spring's eigene Web Flow trotz seines Namens als Orchestrierung Task-Manager dienen. Wenn Sie den Status mehrere Tage lang beibehalten müssen, müssen Sie ein "Early Adopter" eines der Open-Source-Projekte werden. Vielleicht möchten Sie sich Eclipse's BPEL project ansehen.
Meine Vermutung ist, dass einmal ein klareres Bild von der BPEL/BPM/Workflow Raum entsteht, werden Sie sehen Frühling eine Abstraktionsschicht auf die gleiche Weise bieten sie für JDBC haben, Transaktionen, ORM-Frameworks etc ...
Wir Betrachten wir Drools/Guvnor, möglicherweise integriert mit jBPM (wie in diesem presentation), um eine Workflow-Engine zu unserer Spring/Java EE App hinzuzufügen, aber wir sind noch in den sehr frühen Phasen des Ausprobierens.
I zweiter Spring Web Flow. Abhängig davon, wie komplex der Prozess ist, eignet sich Web Flow hervorragend für die Verwaltung verschiedener Status und ich habe festgestellt, dass es ziemlich einfach zu erlernen ist und es gibt eine gute Menge an Dokumentation dafür.
Wie Brian sagte, wenn Sie etwas von großer Komplexität tun, könnten Sie BPEL verwenden.
Es gibt eine Reihe von Open-Source-BPEL-Motoren, eine, die den Sinn kommt, ist Apache Orchestration Director Engine
ActiveVOS bei weitem die beste BPEL-Engine in meiner Meinung nach. Laden Sie die Testversion herunter und probieren Sie es aus. JBoss hat sogar sein Open-Source-Angebot übernommen.
- 1. Welches RDBMS sollte ich verwenden?
- 2. Welches Ergebnis sollte ich zurückgeben?
- 3. Welches Gebietsschema sollte ich angeben, wenn ich String toLowerCase anrufe
- 4. Ich muss wissen, was ich als Beispiel ansehen soll ...
- 5. Welches Layout sollte ich verwenden?
- 6. Welches JSObject sollte ich verwenden?
- 7. Welches Bild sollte ich herunterladen?
- 8. Welches Red Gate-Tool sollte ich verwenden?
- 9. Welches Volltextsuchpaket sollte ich für SQLite3 verwenden?
- 10. Welches Projekt sollte ich aktivieren Migrationen
- 11. Welches JavaScript-Repository sollte ich verwenden?
- 12. Muss ich jedes Mal, wenn ich ein Commit machen möchte, Dateien zu Git hinzufügen?
- 13. Welches Spring-Modul sollte ich für eine Spring-Start-Anwendung der Befehlszeile verwenden, die RestTemplate verwendet?
- 14. Welches Eclipse Subversion Plugin sollte ich verwenden?
- 15. Welches Leistungsniveau sollte ich von RavenDB erwarten?
- 16. Welches Floating-Point-Bildformat sollte ich verwenden?
- 17. Welches Perl-Testmodul sollte ich verwenden?
- 18. Welches Protokoll sollte ich für schnelle Befehls/Antwort-Interaktionen verwenden?
- 19. Ich könnte es mit Reflection viel einfacher machen. Sollte ich?
- 20. Sollte ich Schnittstellen für meine Entitäten machen?
- 21. Sollte ich mir in diesem Fall Sorgen um die Freigabe von Ressourcen machen?
- 22. Sollte ich mir Sorgen machen über "Fenster ist nicht definiert" JSLint strict mode error?
- 23. Auf welches HTML-Element sollte ich ng-if setzen?
- 24. Wenn ich ein https-Programm mit libcurl schreibe, welches CA-Zertifikat sollte ich herunterladen?
- 25. Was muss ich mir vorstellen, wenn ich über eine "Bibliothek" in objective-c nachdenke?
- 26. Welches computergestützte Übersetzungsformat sollte ich für eine ColdFusion-Site verwenden?
- 27. Muss ich mir beim Code lernen Zeit nehmen?
- 28. Welches Woocommerce Plugin sollte ich für meine Bedürfnisse verwenden?
- 29. Sollte ich mir Sorgen machen, eine große Menge an Daten in die Windows-Zwischenablage zu legen?
- 30. Meine Windows Phone 7-Animationen sehen auf dem Emulator klobig aus - sollte ich mir Sorgen machen?