Direkt zum Inhalt
Main Image
Bild
Animated ECA model in BPMN.io
22. November 2022

Drupal ECA gewinnt bei deutsch/österreichischen Splash Awards 2022

by Jürgen Haas
Bild
Splash Award Logo DE/AT

Zusammenfassung

Die komplette Leistungsfähigkeit von Drupal ist mit ECA und BPMN UI auch allen Site-Buildern zugänglich, um ohne Programmierung Prozesse zu automatisieren und das Verhalten von Drupal anzupassen (Hooks).

Projektbeschreibung

ECA ist ein Drupal Community Projekt, gestartet von LakeDrops, welches einen Neustart des enorm populären Rules-Moduls aus der Pre-Symfony-Ära durchführte und innerhalb 11 Monaten eine technologisch modernste, produktionsreife und skalierbare Lösung entwickelte. Kurz nach Projekt-Beginn schloss sich die OpenCampus GmbH aus München dem Projekt an, da sie selbst für eigene Produkte einen fast deckungsgleichen Plan mit dem bereits vorliegenden Prototypen von ECA hatte und starten wollte.

Bild
Logos from LakeDrops and OpenCampus

Die Videos sind hier zu finden: https://tube.tchncs.de/c/eca/videos

Die Drupal-Experten von LakeDrops und OpenCampus, ergänzt durch weitere Freelancer aus der Drupal-Community, arbeiteten mit Hochdruck und klaren Zielen (siehe nächsten Abschnitt) vor Augen nahezu Tag und Nacht und konnten im Juli 2022 die lang ersehnte Version 1.0.0 veröffentlichen.

Unzählige Vorträge und Workshops bei Drupal Meetups und Camps auf der ganzen Welt haben bereits während der Entwicklung von ECA und seinen Zusatzmodulen gezeigt, wie sehnsüchtig die ganze Drupal-Community genau diese Lösung erwartet. Und knapp 2 Monate nach dem offiziellen Launch verwenden bereits hunderte von Drupal-Seiten dieses Projekt. Die Rückmeldungen in der Issue-Queue, auf Slack und anderen Kanälen sind überwältigend und durchweg positiv.

Projektziele und -ergebnisse

Die ursprüngliche Zielsetzung entstand aus einem Kundenprojekt zur Migration eines sehr komplexen Intranets von Drupal 7 nach Drupal 9. Sämtliche Drupal 7 Komponenten, die weiterhin benötigt wurden, standen auch für Drupal 9 zur Verfügung – lediglich das in Drupal 7 extrem umfangreich genutzte Rules Modul befand sich nach wie vor in einem wenig Vertrauen erweckenden Alpha-Zustand.

Nach wiederholter Analyse des Rules Moduls kamen wir zusammen mit dem Kunden zu der Einschätzung, dass Rules mit der vorliegenden Architektur nicht für Drupal 9 fertiggestellt werden kann. Es braucht vielmehr einen komplett neuen Ansatz auf Basis des nun vorhandenen Symfony-Frameworks.

Eine weitere Zielsetzung war, den Prozessor vom User-Interface zu trennen. Der Prozessor benötigt also ein eigenes Config-Format, aus welchem er im Live-Betrieb der Drupal-Site die Anweisungen erhält, die im Hintergrund auszuführen sind. Dabei spielt die Performance die entscheidende Rolle. Diese sollte auf keinen Fall schlechter als die eines alternativ zu schreibenden Custom-Moduls sein.

Das User-Interface sollte möglichst separat entwickelt und damit ggf. auch austauschbar sein. Das UI sollte einen von Drupal unabhängigen Standard implementieren, damit beim Kunden möglichst alle Stakeholder in den Prozess der Konfiguration, des Reviews und der Maintenance der Regelwerke eingebunden werden können. Ein solcher Standard zur Beschreibung von Geschäftsprozessen ist BPMN, welcher global anerkannt ist und für den es umfangreiche Tools gibt, die integrierbar sind.

Die langfristige Pflegbarkeit sowie die leichte Erweiterbarkeit waren sowohl dem Kunden als auch dem Entwicklerteam ein wichtiges Anliegen. In diesem Kontext wurde u. a. eine der wichtigsten Architektur-Entscheidungen getroffen: ECA darf keine Dependencies außer Drupal Core haben und soll alle vorhanden APIs nutzen, also nicht erneut entwickeln, was bereits vorhanden ist.

All diese Zielvorgaben sind in nur 11 Monaten Entwicklungszeit erfüllt worden:

  • Bereitstellung eines Upgrade-Pfads für alle Drupal 7 Seiten, die bislang aufgrund fehlendem Rules-Modul nicht aktualisieren konnten
  • Modernste Software-Architektur im Symfony-Kontext
  • Bestmögliche Test-Abdeckung
  • Vollständiger Feature-Umfang für alle in Drupal vorhandenen Events, Conditions und Actions
  • Das ECA-Modul hat außer Drupal Core keine Dependency
  • Rund um ECA gibt es bereits wenige Wochen nach dem 1.0.0 Release ein schnell wachsendes Eco-System mit weiteren Modulen, die ECA mit wichtigen Contrib-Modulen integrieren und diese damit in ECA verfügbar machen
  • Für das UI konnte mit bpmn.io ein voll funktionsfähiger BPMN-Modellierer in Drupal integriert werden, der alle seine Modelle im ECA Config-Format abspeichert
  • Selbst ein zweiter Modellierer steht mittlerweile schon bereit, der sehr vereinfacht unter Zuhilfenahme der Drupal Form API funktioniert, er untermauert damit den Anspruch, dass der ECA Prozessor nicht nur vom UI vollständig getrennt, sondern dass das UI auch austauschbar ist

Zusätzlichen zu dieser vollständigen Ziel-Erreichung wurde uns während des Projekts auch noch deutlich, dass wir mit ECA und seinem Eco-System noch etwas Unbeabsichtigtes erreicht hatten: ECA und bpmn.io zusammen erlauben die vollständige Anpassung, Erweiterung und Automatisierung von allen Drupal-Fähigkeiten ohne jede Programmierung. Damit bewegt sich Drupal nun ebenfalls im Bereich "Low Code – No Code" - einer Anforderung, die nicht nur modern, sondern auch auf ganzer Linie mit der strategischen Ausrichtung von Drupal seit der letzten Dries-Note: Die Site-Builder stärken und ihnen Werkzeuge an die Hand geben, die ihre Aufgaben erleichtern.

Herausforderungen

Die höchste Hürde vor Beginn des Projekts war die Frage, ob es wirklich realisierbar sein wird, einen Ersatz für das sehr umfangreiche Rules Modul nicht nur zu entwickeln, sondern es auch auf einen produktionsreifen Level zu bekommen und dort zu halten. Als es uns aber unter Zuhilfenahme von vorhandenen Komponenten in wenigen Wochen gelungen war, einen funktionierenden Prototyp zu bauen, war die Entscheidung einfach.

Eine weitere Herausforderung stellte die Pandemie dar. Das Entwicklerteam, welches sich vorher teilweise noch gar nicht kannte, hat sich während des kompletten Projekts nicht ein einziges Mal persönlich getroffen. Die Koordination der Entwicklung lief vollständig über die Issue-Queue, ergänzt durch Video-Konferenzen alle 2 Wochen. Dies war zeitweise nicht frei von Konflikten, was in einer solchen Arbeitsumgebung eher vorkommt als in persönlichen Umgebungen. Aber auch diese Hürden konnten gemeistert werden und alle Beteiligten haben diesbezüglich im Nachgang von sehr hilfreichen Erfahrungen und Lerneffekten berichtet.

Community-Beiträge

Das komplette Projekt ist ein Community-Projekt. Es lohnt sich aber, die einzelnen Komponenten hier aufzulisten:

Warum sollte dieses Projekt die Splash Awards gewinnen?

Dieses Projekt ist in vielen Belangen einzigartig und dient als ermutigendes Beispiel für die Leistungsfähigkeit von Drupal und der Community. Nicht nur war es möglich, rund 3.000 Stunden Entwicklungsarbeit in nur 11 Monaten zu einer fertigen Lösung zu führen, ohne zuvor endlose Budgetverhandlungen zu führen, sondern es haben sich auch 2 Firmen – LakeDrops und OpenCampus – zusammen getan, um dieses Projekt unkompliziert und vollständig Open-Source auf drupal.org zu realisieren.

Diese Wertschöpfung von sicherlich einer halben Million Euro und mehr, ist nicht nur ein monetärer Gewinn für Drupal, sondern löst auch ein weiteres und immer dringender werdendes Problem: Stand heute nutzen noch deutlich mehr als 150.000 Drupal 7 Seiten das Rules Modul und der weitaus größte Teil konnte aufgrund fehlendem Rules-Support in Drupal 9 noch nicht migrieren. Diese Blockade wird durch dieses Projekt aufgelöst und sollte dem gesamten Drupal-Ecosystem sehr hilfreich sein.

Bild
SplashAward 2022 Trophy - back

Quelle: Diese Bewerbung wurde ursprünglich auf der Splash Award Website veröffentlicht und mit freundlicher Genehmigung hier erneut publiziert.

Tags

Tools

Neuen Kommentar hinzufügen

Klartext

  • Keine HTML-Tags erlaubt.
  • Zeilenumbrüche und Absätze werden automatisch erzeugt.
  • Website- und E-Mail-Adressen werden automatisch in Links umgewandelt.
CAPTCHA
Diese Sicherheitsfrage überprüft, ob Sie ein menschlicher Besucher sind und verhindert automatisches Spamming.