Integrierter Workflow der Anwendungsentwicklungsplattform, Serie 1 – Technologieauswahl und Lösungsauswahl

Hintergrund

Der Workflow ist ein wichtiger Bestandteil der Anwendungsentwicklungsplattform und wird zur Implementierung der Prozessverarbeitungsfunktion des Geschäftssystems verwendet.
Im Allgemeinen besteht es aus drei Teilen: Der erste ist die Workflow-Engine, der zweite ist die Prozessmodellierung und der dritte ist die abgeleitete Unterstützung, einschließlich des Initiierungsprozesses, meiner Aufgaben, meiner Erledigungen und des Enddokuments usw.

Technologieauswahl 2020

Dies ist ein Bereich mit stark determinierten Bedürfnissen, daher gibt es entsprechende technische Komponenten. Im Jahr 2020 wurden technische Voruntersuchungen durchgeführt, hauptsächlich zu JBPM und Activiti sowie den aus der Aufteilung von Activiti resultierenden Flowable- und Camunda-Zweigen. Der Entwicklungsprozess ist ungefähr wie folgt:
Ursprung : jBPM3 ist eine vollständige Workflow-Systemimplementierung für Entwickler.
**Entwicklung:**jBPM4 führt PVM ein, um es skalierbarer zu machen, und fügt BPMS-Funktionen hinzu. Zu diesen Funktionen gehören die Unterstützung von BPMN, einem Web-Modellierer für Geschäftspersonal, und die Hinzufügung einfacher statistischer Analysefunktionen.
Split:
1. Tom Baeyens, der Hauptentwickler von JBPM, hatte große Meinungsverschiedenheiten mit seinen Partnern über die zukünftige Architektur von JBPM, also verließ Tom Jboss und wechselte zu Alfresco, wo er den jBPM4-Code zur Erstellung von Activiti5 verwendete. Activiti5 ist ein Open-Source-Workflow-System, das auf jBPM4 basiert. Durch die Integration mit Alfresco werden die Möglichkeiten zur Prozessvisualisierung und -verwaltung erweitert. Gleichzeitig unterstützt es die Koordination zwischen prozessbezogenem Personal durch die innovative Activiti Cycle-Kollaborationskomponente und stärkt die Integrationsfähigkeiten.
2. Die Jboss Company hat die Architektur von JBPM4 vollständig aufgegeben, sie basierend auf Drools Flow vollständig neu aufgebaut und JBPM5 auf den Markt gebracht. Unterstützt BPMN, unterstützt BAM durch die Integration mit Drools und bietet Unterstützung für die Prozessvisualisierung durch Content Warehouse. Aufgrund der Aufgabe des PVM von jBPM4 ist die Skalierbarkeit der Engine beeinträchtigt und jPDL wird nicht mehr unterstützt.
Fission

  1. Camunda, ein Unternehmen, das einer der größten Mitwirkenden von Activiti ist, sagte, dass Activiti möglicherweise zu sehr durch die Anforderungen von Alfresco an dokumentenzentrierten Workflows eingeschränkt war und die allgemeinere BPM-Plattform, als die Activiti ursprünglich gegründet wurde, ignorierte. camunda gab bekannt, dass sie ein neues Open-Source-Projekt von Activiti ausgliedern, nämlich Camunda BPM.
  2. Die ursprünglichen Kernmitglieder von Activiti hatten Meinungsverschiedenheiten mit Alfresco über die zukünftige Entwicklungsrichtung des Projekts, weshalb sie beschlossen, gemeinsam zu gehen und Flowable zu gründeten.
  3. Activiti selbst hat sich langsam entwickelt. Activiti stagnierte in den letzten Jahren und begann, sich auf seinen Lorbeeren auszuruhen. Das Camunda-Framework hat die Führung bei der Reaktion auf und der Unterstützung der beiden neuen Spezifikationen von CMMN/DMN und weiterer BPMN-Spezifikationen übernommen. Activiti5 kann diese Spezifikationen jedoch immer noch nicht unterstützen, was zum Verlust vieler Benutzer führt, und viele Benutzer haben sich an das Camunda-Lager gewandt . Es wurde offiziell angekündigt, dass die Codes activiti6 und activiti5 wegen Wartungsarbeiten gesperrt werden. Activiti7 ist nur eine Spielerei. Der Kernel verwendet immer noch Activiti6. Es fügt der Engine keine weiteren neuen Funktionen hinzu. Es kapselt lediglich einige Anwendungen in der oberen Schicht außerhalb von Activiti und entwickelt sich in Richtung Cloud. Version 6.0 soll viele Fehler auf Framework-Ebene hinterlassen haben, die in flowable behoben wurden.

Aus den unter verschiedenen Aspekten gesammelten Daten ist ersichtlich, dass
Activiti besser ist als JBPM,
und JBPM ist das erste, das eliminiert wird. Flowable ist besser als Activiti. Auch Activiti berücksichtigt
Flowable und Camunda nicht mehr. Den verfügbaren Daten zufolge Camunda ist besser, aber es fehlt eine Kreuzvalidierung mit mehreren Daten.

Information 1:
Im Vergleich mehrerer Dimensionen ist Camunda besser als fließfähig
https://blog.csdn.net/qq_30739519/article/details/86682931

Information 2:
flowable nimmt Version 6.4.1 als Wendepunkt und entwickelt seine kommerziellen Versionsprodukte energisch weiter. Die Open-Source-Version wird nicht zeitnah gepflegt. Einige Funktionen sind in der Open-Source-Version nicht mehr freigegeben, wie z. B. Formulargenerator (Formular-Engine), Synchronisierung historischer Daten mit anderen Datenquellen usw. Dmn ist derzeit ein halbfertiges Produkt, nicht so stabil und einfach zu verwenden wie Camunda und unterstützt die Dmn-Spezifikationen nur schwach. Einige Komponenten der kommerziellen Version wurden kommerzialisiert, sodass die Open-Source-Version nicht mehr gepflegt wird. Mongdb ist derzeit in kommerziellen Produkten enthalten und die Open-Source-Version ist nahezu unbrauchbar. (Quelle: https://blog.csdn.net/qq_30739519/article/details/

Basierend auf der obigen Situation wurde der Hauptzweig von activiti in Ruhe gelassen und ersterer aus den beiden Zweigen Camunda und Flowable ausgewählt. Die Integration der nativen Workflow-Engine war eine Menge Arbeit. Die Implementierung der Hauptfunktionen dauerte mehrere Monate, der Effekt war jedoch nicht sehr zufriedenstellend. Nachfolgend finden Sie die Entwurfsliste für die damalige integrierte Entwicklung.
Bild.png

Die Integration der Backend-Workflow-Engine ist für mich überhaupt kein Problem. Das größte Problem liegt in der Front-End-Modellierung auf Basis von bpmn2.0. Einerseits ist die Front-End-Modellierungskomponente selbst komplex und die Daten vage, und es ist schwierig, die erforderlichen Methoden und Daten zur Implementierung von Funktionen zu erhalten. Wiederholte Versuche dauern lange und am Ende sind einige Funktionen nicht verfügbar. Die Back-End-Verarbeitung wird verwendet, um das Problem indirekt zu lösen. Andererseits ist Activiti (Camunda) eine große und umfassende Komponente, die alle Aspekte des Prozesses definiert Verarbeitung. Daher müssen beim Modellieren des Prozesses viele Konfigurationen festgelegt werden, darunter auch einige relativ unklare. Der Name und das Konzept sind für Modellierungsbenutzer, insbesondere für Privatanwender, nicht freundlich.
Was mich am meisten beeindruckt hat, war die Einstellung der bedingten Kante. Wenn eine Prozessmodellierung erforderlich ist, wählen Sie die bedingte Kante aus und geben Sie dann einen Ausdruck in das Formular ein, z. B. ${contractMoney}>100 0000. Dies ist nicht benutzerfreundlich und fehleranfällig.

Aktuelle Technologieauswahl

Wenn wir nach drei Jahren die Arbeit an der Workflow-Integration wieder aufnehmen, müssen wir zunächst eine technische Vorrecherche durchführen, um zu sehen, ob es in den letzten Jahren neue Änderungen und bessere Optionen gegeben hat.
Nach einem kurzen Blick auf die aktuelle Situation ist die neueste Hauptversion von activiti immer noch 7 und flowable immer noch 6.
Was Camunda betrifft, habe ich es überprüft. Die vorherige Integration verwendete 7.13, und jetzt ist es 8. Allerdings hat 8 die neue Prozess-Engine Zeebe ersetzt, die nicht mehr mit Activiti identisch ist. Die beliebtesten auf dem Markt basieren immer noch auf comunda7 oder flowable6.

Ich habe einen Artikel gefunden, der am 31. März dieses Jahres veröffentlicht wurde: „Activiti5, activiti6, activiti7, flowable, camunda7, camunda8 Process Engine Comparative Analysis and Selection Reference“ ( https://blog.csdn.net/wxz258/article/details/ 129884545 ) ,
Das Fazit lautet wie folgt:

Kurze Zusammenfassung: Inländischen Benutzern, die die Bereitstellungsprozess-Engine privatisieren müssen, wird empfohlen, Camunda7 zu wählen. Die meisten Komponenten sind Open Source und können kostenlos verwendet werden. Die technische Ökologie ist gut und der Einstieg für Programmierer ist einfach. Wenn Kunden einen erheblichen Bedarf an Prozessautomatisierung und hoher Parallelität haben, können sie Camunda8 in Betracht ziehen, aber es erfordert einen großen Umfang an individueller Entwicklung und erfordert hohe technische Teamfähigkeiten. Die inländische Mainstream-Low-Code-Plattform Yuncheng verwendet Camunda7 als Prozess-Engine. Derzeit erfreut sich Camunda7 in China allmählich wachsender Beliebtheit und hat die Dynamik, Activiti und Flowable zu übertreffen.

Eine andere Möglichkeit besteht darin, im Inland hergestellte Produkte selbst zu recherchieren. Nur sehr wenige sind Open-Source-Produkte. Einige Unternehmen machen das schon seit langem, wie zum Beispiel JFlow von Jinan Chicheng (https://gitee.com/opencc/JFlow?_from=gitee_search ) . . Leider ist es vue3. Die Version verwendet die Ant UI-Bibliothek anstelle von Element Plus und ist kein Open Source. Obwohl die H5-Version auch verwendet werden kann, verwendet sie alte JQuery und Laui. Wenn es in meine Plattform eingeführt wird, es wird zu schwer sein.

Ein anderer ist https://gitee.com/gailunJAVA/dingding-mid-business-java?_from=gitee_search . Dieser Typ konzentriert sich auf den Workflow-Bereich und ist mit Activiti, Camunda und Flowerable vertraut und bietet Unterstützung für verschiedene Versionen. Hauptsächlich Back-End, während das Front-End hauptsächlich von anderen Open-Source-Projekten unterstützt wird.

Auswahl der technischen Lösung

Im Rahmen der technischen Vorrecherche entstanden Ideen für die technische Umsetzung. Der Hauptgrund besteht darin, ein Open-Source-Projekt zu finden, das dem DingTalk-Prozess nachempfunden ist ( https://github.com/StavinLi/Workflow-Vue3 ). Der Technologie-Stack verwendet auch vue3+element plus, was mit meiner aktuellen Plattform konsistent ist. Das Der Implementierungseffekt ist wie folgt:
Bild.png
Dieses Modell ist viel prägnanter, intuitiver und komfortabler als Camundas eigene Prozessmodellierung basierend auf der bpmn2.0-Spezifikation.

Das Hauptproblem bei der Verwendung als Ersatz für die Prozessmodellierung besteht darin, die JSON-Ausgabe der oben genannten Komponente zu analysieren und in das vom BPMN-Protokoll vereinbarte Datenformat zu konvertieren. Sie können dies selbst implementieren, indem Sie die API von Camunda aufrufen, um die Konvertierung durchzuführen.

Die obige Lösungsauswahl basiert auf einer umfassenden Betrachtung verschiedener Faktoren, basierend auf dem vorhandenen Front-End-Technologie-Stack der Plattform (vue3+Element Plus) sowie der über mehrere Monate investierten Camunda-Back-End-Integrationsimplementierung Bietet eine benutzerfreundliche Benutzeroberfläche für Prozessmodellierer. Letztendlich entscheidet die Erfahrung.

Der Workflow ist eine große Komponente und die Plattformintegration erfordert viel Entwicklung. Als Nächstes werden wir eine integrierte Unterkategorie eröffnen, die weiterhin einen Artikel pro Woche umfassen wird, also bleiben Sie dran.

Informationen zur Entwicklungsplattform

Plattformname: 123 Entwicklungsplattform
Einführung: Allgemeine Entwicklungsplattform auf Unternehmensebene
Designinformationen: csdn-Spalte
Open-Source-Adresse: Gitee
Open-Source-Vereinbarung: MIT
Open Source ist nicht einfach. Willkommen zum Sammeln, Liken und Kommentieren.

おすすめ

転載: blog.csdn.net/seawaving/article/details/131615251#comments_28544085