1. EXXETA
  2. /
  3. Innovationen
  4. /
  5. Orchestrierung von Microservices via BPMN

ORCHESTRIERUNG VON MICROSERVICES VIA BPMN

Ordnung trotz Komplexität

Die Übersicht über die unterschiedlichen Microservices, deren eingesetzte Technologie und jeweiligen Schnittstellen zu bewahren, wird mit ansteigender Zahl von Diensten zu einer Herausforderung. Durch das Einführen einer Prozessebene in die Microservices Architektur lassen sich diese komplexen Dienste sichtlich ordnen. Eine solche Prozessebene bietet BPMN. Durch das Einfügen von BPMN in die Software Architektur lassen sich Welten verbinden. Das Ansteuern von Microservices über einzelne BPMN-Prozesse wird möglich.

Business Process Modeling Notation (BPMN) ist eine Methode zur Beschreibung von Geschäftsprozessen. Informationsflüsse und Prozessabfolgen werden diagrammartig dargestellt, sodass sich einzelne Prozessschritte konkret nachvollziehen lassen. Mit Einsatz dieser grafisch unterstützen Notation kann der Prozessfluss visuell skizziert, einfacher nachvollziehbar gemacht und Abhängigkeiten einzelner Microservices zueinander verwaltet werden. Übersichtlich lässt sich dadurch darstellen, wenn beispielsweise Microservice A eine Funktion in Microservice B direkt aufruft, sich selbst an C und D wendet, wobei einer der beiden wiederum eine Kleinigkeit von A benötigt.

Bei Microservices handelt es sich um ein Architekturmuster, das modular aufgebaut ist. Es besteht aus vielen unabhängigen Diensten, die einen möglichst kleinen aber abgeschlossenen fachlichen Bereich abdecken und gemeinsam eine komplexe Anwendung bilden. Einzelne Microservices stehen und laufen weitestgehend entkoppelt von anderen Diensten, getreu der Unix-Philosophie: „Do One Thing And Do It well“.
Die Vorteile sind: Microservices sind erweiterbar, austauschbar, unabhängig und skalierbar. Dezentralisiertes Datenmanagement und die Nutzung verteilter Systeme ermöglichen einen hohen Grad an Modularität, können aber auch zu vermehrter Komplexität führen.
 

Neuer Ansatz mit Kubernetes

Der Ansatz von EXXETA nutzt bei Entwicklung und Verteilung von Microservices das Konzept der Container und Kubernetes. Microservices lassen sich in Containern zusammenfassen und Kubernetes ist eine Open Source Software Lösung, die diese verwaltet. Dadurch lassen sich die entsprechenden Services, die im BPMN verwendet werden, einfach paketieren, deployen und so konfigurieren, dass sie out of the box an der richtigen Stelle verfügbar und ausführbar sind.
 

Der große Mehrwert

Damit ist ein direkter Link der fachlichen Prozesse zu den Deployments geschaffen. Das bedeutet, dass eine Änderung an den Prozessen (BPMN) eine automatische Anpassung der Services durchführt. So können Änderungen wesentlich schneller, oder auch mal nur vorübergehend, durchgeführt werden. Nebenbei wird der Weg, den eine Prozessinstanz beschreitet, dokumentiert, mitsamt In- und Output der Microservices. Daher ist es denkbar, einen Integrationstest für eine neue Microservice Version parallel sowohl in einer Testumgebung wie auch im Live-System durchzuführen. Die selbe Datenbasis kann so ohne großen Aufwand auf mehrere Plattformen bereitgestellt und genutzt werden.

Der grafischen BPMN Visualisierung liegt XML (Extensible Markup Language) zugrunde, ein Internetprotokoll, das sowohl von Mensch als auch Maschine lesbar ist. Dieses XML ist bereits so aufgebaut, dass es für Elemente Erweiterungen zulässt.

Bringt man BPMN und Microservices auf diese Art zusammen, verkürzt sich die Kette von der fachlichen Logik zum Entwickler immens. Man trifft sich in der Mitte der Welten und sorgt somit dafür, dass Fachbereich und Entwickler unmittelbar zusammenarbeiten können. Das automatische Anpassen der Service-Landschaft an Änderungen im BPMN führt diesen Gedanken weiter und sorgt für kürzere Innovationszyklen. Microservices rufen sich über den BPMN-Prozess nur noch indirekt auf. So ist ein besserer Überblick darüber gegeben, was im System vor sich geht und der Prozessfluss wird über die BPMN-Ebene einfacher nachvollziehbar.

Microservices im Connected Car

Diese Lösung findet Anwendung im IoT-Bereich, zum Beispiel wenn Entscheidungen basierend auf Sensordaten getroffen werden. 
Zur Entscheidung, ob die Sitzheizung angestellt ist, wird ein BPMN Prozess angelegt. In der einfachsten Version wird das Ergebnis immer der Einstellung des Drehreglers im Auto entsprechen, sobald es gestartet ist. 

Liegen die Services in einer ersten, einfachen Form vor und sind entsprechend in BPMN abgebildet, kann diese Logik erweitert werden. Der Fahrer gibt über einen Service an, wochentags um 8 Uhr zur Arbeit zu fahren. Der Service wird im BPMN hinzugefügt und mit der Regel versehen, dass mit einem Vorlauf von15 Minuten die Heizung aktiviert werden soll. Nach Durchlaufen der einzelnen Prozessdienste wird gegen 7:45 Uhr die automatische Einschaltung der Sitzheizung im Auto getriggert. Im nächsten Schritt kann durch Einbindung eines Kalenders, ebenfalls via Microservice, die Prozesskette wieder erweitert werden. Abhängig davon, ob ein Fahrer beispielsweise im Urlaub ist, trifft das System andere Entscheidungen. Denkbar wäre auch eine zusätzliche Verknüpfung mit Wetter-Services. Wenn es warm genug ist, wird die Sitzheizung nicht benötigt.
In jedem Fall deckt ein Microservice eine kleine Funktionalität ab und die fachliche Logik, zum Beispiel Sitzheizung an/aus, entscheidet sich im verständlichen BPMN. Das Hinzufügen neuer Inputs kann schnell und effizient durchgeführt werden.

Die Lösung wurde im Rahmen einer Thesis entwickelt, die bei EXXETA geschrieben und betreut wurde. Die Machbarkeit ist bewiesen. Im nächsten Schritt müsste sich das Konzept im Praxistest beweisen, um die theoretischen Vorteile zu bestätigen, zu widerlegen und die Ergebnisse abzuwägen.

Sprechen Sie uns an

X