Es gibt nur einen wirklichen Vorteil, aber der ist riesig:
Trennung von Bedenken .
Anstatt dass die Prozess-Orchestrierungslogik in unser System eingebettet ist, wird sie zu einer externen Konfiguration. Im Grunde genommen eine Karte. Sie können es (viel mehr) unabhängig voneinander ändern, Sie können mehrere Prozesse, mehrere Versionen von Prozessen, mehrere Versionen von mehreren Prozessen gleichzeitig ausführen lassen, und das ist in jeder anständigen Lösung eine Selbstverständlichkeit.
In der Vergangenheit hat sich das Konzept von SoC vielfach durchgesetzt - angefangen beim Unix-Prinzip "Mach eins, aber mach es gut" und werde immer wieder angewendet - wie dedizierte Serverkomponenten wie ESB, verschiedene Persistenzsysteme, Caching und Load Balancing , Überwachung, wie das Aufteilen von CSS aus HTML usw.
Ihr Geschäftsprozess und seine Ablaufregeln sind häufig orthogonal zu Ihren Daten, Benutzeroberflächen- "Bildschirmen" oder Benutzer- "Hierarchien". Es ist also durchaus sinnvoll, es getrennt von den anderen Aspekten des Systems zu entwickeln und zu ändern. Dies war die Prämisse, auf der BPM Anfang der neunziger Jahre aufgetaucht ist.
Seitdem wurden viele Tools und Sprachen entwickelt, um dieses Konzept zu unterstützen. Am bekanntesten ist BPMN - eine grafische Sprache zum Erstellen von "Flussdiagrammen", die direkt auf Prozesse abgebildet werden. Während die Leute sich darüber beschweren, dass es groß und unhandlich ist (mit über 100 Symbolen im Wortschatz) und moderne Ansätze wie S-BPM befürwortet (mit nur 5 Basissymbolen), besteht die derzeitige Praxis in der Einhaltung der BPMN oder ihrer Derivate, Untergruppen oder Geschwister.
Sie sehen mit BPMN nicht zufrieden aus:
Die Programmierer hier scheinen eine erhebliche Menge an Arbeit in der Ebene der Linien und Kästchen zu leisten, was für mich nur nach einer wirklich beschissenen, wirklich einfachen visuellen Programmiersprache aussieht.
Aber es ist nicht so schlimm.) Dahinter steckt eine Theorie. Und Version 2.0 hat einige gute Erkenntnisse aus den Mängeln von 1.0 gewonnen.
Wenn Sie so weit gehen wollen, warum nicht einfach irgendeine Skriptsprache verwenden?
Imperative Paradigmen und Skriptsprachen sind nicht immer die beste Antwort. Wie Sie wahrscheinlich in deklarativen Sprachen gesehen haben (wie HTML, CSS, SQL, Drools oder internen von Nginx, Graddle und Maven, Puppet usw.), kann der resultierende Code viel kleiner und sauberer sein als eine Version, die in " anständiger Sprache " geschrieben ist. wie Java oder C ++ ".
Wie für Ihren anderen Punkt:
Soweit ich das beurteilen kann, handelt es sich an dieser Stelle um visuelle Programmiersprachen mit Bedingungen und Schleifen.
Haben Sie sich die Ereignisse und Auslöser angesehen ? BPMN ist eine Sprache, die Sie lernen müssen, bevor Sie sie verwenden oder zumindest kennenlernen.
Unter der Haube ist BPMN XML, so dass Sie es von Hand bearbeiten oder generieren können. Und Sie können sie versionieren, da XML textbasiert ist. Nur ein XML-Dokument zu haben, das in Flussdiagramme übersetzt werden kann, klingt jedoch nicht nach Goona, und das ist auch richtig so. Es ist eine schwierige und teure Aufgabe mit fragwürdigen Vorteilen, einen eigenen Parser oder Editor zu schreiben.
Zum Glück gibt es bereits Werkzeuge auf dem Markt, die genau das tun.
Activiti ist kostenlos und sowohl bei Entwicklern als auch bei Geschäftsinhabern sehr beliebt. Grund dafür ist der anfängliche Preis ( Null ), die Verfügbarkeit von Informationen und die Bescheidenheit. Der letzte Punkt ist wirklich einzigartig, da Activi sich nur auf die Verwaltung Ihrer Geschäftsprozesse konzentriert, ohne zu versuchen, Sie an Gesamtlösungen zu binden. Außerdem ist es offen - Sie müssen nur Java und REST kennen, um es zum Laufen zu bringen. Der Nachteil ist, dass Client-Seite, Integration und Anwendungs- / Geschäftslogik sowie die gesamte Architektur dem Entwickler überlassen bleiben. Wenn Ihr Entwicklungsteam also schwach ist, bereiten Sie sich auf den Ausfall vor. Die Gesamtbetriebskosten können für ein kostenloses Tool überraschend hoch sein ;)
Auf der anderen Seite des Spektrums steht Pega (Pega PRPC), der amtierende König der BPM-Systeme (laut Gartner und Forester), der für sein Alter überraschend gut aussieht. Dieser Gigant ist sogar in der Lage, CRM, OCR und (wenn ich mich nicht irre) Spracherkennungsfunktionen, Predictive Analytics, Verwaltung von Geschäftsregeln und WYSIWYG UI Editor zu nutzen. Es kommt jedoch mit einem ernsthaften Preisschild. Das kostet nicht nur ein Vermögen, sondern die gesamte Entwicklung wird in einer Web-App durchgeführt, was bedeutet, dass Sie einen Browser verwenden müssen, der IE8 ist (plus einige Plugins plus hässliche Hacks, wie die Verwendung von Excel zum Bearbeiten von Datentabellen). Auch die Bearbeitung von Java, Javascript oder HTML / CSS erfolgt über den Webbrowser. Verabschieden Sie sich also von Unit-Tests, Hervorheben von IDE-Code, Refactoring und all Ihrem Programmierspielzeug, das Sie schon immer geliebt haben.
Gute Seite? Sie können ein komplexes System INNERHALB VON WOCHEN implementieren [ PDF , siehe Seite 22]. Und ja, das Ergebnis ist nicht garantiert.
IBM hat vor einiger Zeit (entsprechend dem Zeittempo des Unternehmens) Lombardi gekauft und bietet jetzt eine sehr wettbewerbsfähige Lösung an (aber dann müssen Sie alles kaufen , wie Sie wissen). Appian ist ein junger Anbieter, der interessante Einblicke und positives Feedback hat, aber die Art und Weise, wie sie geschrieben sind (zwei zusätzliche DSL-Sprachen zusätzlich zu einer visuellen), spricht mich einfach nicht an.
Es gibt andere Akteure und ihre Lösungen. Die meisten von ihnen sind einfach schrecklich. Wie - Ihre Augen, Gehirn und Herz würden buchstäblich bluten, wenn Sie sie einfach ansehen. Vertraue also deinem Mut und lass dich nicht von deinen Entwicklern und Nutzern hassen.
Schlussbemerkung:
Das BPM-System ist für Prozesse dasselbe wie für Photoshop für Bilder. Haben Sie keine Angst, dass es visuell ist. Lassen Sie es nicht den Job machen, der nicht dafür geeignet ist (erinnern Sie sich an Websites, die vollständig in Photoshop erstellt wurden und die so gut wie unmöglich zu bearbeiten waren?). Halte es einfach und mach keine Fehler;)