Interview mit dem Xyna-Factory-Architekten Dr. Alexander Ebbes
Interview mit dem Xyna-Factory-Architekten Dr. Alexander Ebbes
Xyna Factory ist eine Automatisierungsplattform für technische Geschäftsprozesse. Das Java-basierte Projekt ist seit 2022 in einer Open-Source-Variante verfügbar, um die herum sich eine Community bilden soll. Wir haben mit dem Chefarchitekten der Xyna Factory Dr. Alexander Ebbes über Funktionweise und Einsatzszenarien des Projektes gesprochen.
entwickler.de: Xyna Factory ist ein freies und quelloffenes Java-Framework für graphische Prozessmodellierung. Wie genau funktioniert das Framework?
Dr. Alexander Ebbes: Xyna Factory arbeitet in zwei Rollen: als Entwicklungsumgebung und als Runtime. Zur Entwicklungszeit modelliert man die Prozesse, aus denen die Anwendung besteht, als graphische Workflows sowie die durch die Prozesse laufenden Datenstrukturen. Im Browser läuft das zugehörige Frontend aus HTML5 mit TypeScript. Das Backend der Modellierung ist eine Komponente der Xyna Factory, implementiert in Java. In einem Compile-Schritt werden die graphischen Modelle in Module von ausführbarem Code übersetzt. Zur Laufzeit führt unsere Workflow-Engine diese Module schrittweise aus.
Dabei realisiert die Engine vor allem den Kontrollfluss an Entscheidungspunkten wie Verzweigungen, Fallunterscheidungen oder Exceptions. Monitoring und Logging laufen ebenfalls auf der Ebene der modellierten Workflows ab – hier lässt sich der Datenfluss zur Laufzeit und auch hinterher graphisch nachverfolgen. Auf diese Weise kann man alle wichtigen Aspekte seiner Anwendung ohne Medienbrüche auf der Ebene dieser graphischen Prozesse behandeln.
Spezialfälle oder besondere Details kann man aber auch jenseits der graphischen Modellierung in Java-Modulen implementieren. Somit vereint Xyna Factory das Beste aus beiden Welten und integriert sie in eine homogene Entwicklungs- und Laufzeit-Umgebung.
Graphische Workflows machen die Prozesse für alle Mitglieder des agilen, cross-funktionalen Teams verständlich.
entwickler.de: Wo liegt der Vorteil der Prozessmodellierung gegenüber einer rein textbasierten Programmierung?
Dr. Alexander Ebbes: Konventionelle Programmierung in modernen Programmiersprachen wie Java hat eine hohe Ausdrucksmächtigkeit. Generell läuft die Weiterentwicklung von Programmiersprachen darauf hinaus, dass mehr Funktionalität durch weniger Code-Zeilen ausgedrückt wird. Das erhöht den Output der Entwickler. Die Kehrseite dieser Medaille ist allerdings, dass der Code nur für Entwickler lesbar ist. Bei Verwendung fortgeschrittener Sprachmittel wie Lambda-Expressions, Reflection oder Multithreading sogar nur von Experten in der jeweiligen Programmiersprache. Dies behindert die Transparenz der Anwendung und widerspricht der agilen Agenda, cross-funktionale Teams zu bilden, die eben nicht nur aus Experten der jeweiligen Programmiersprache bestehen sollen.
Dazu kommt, dass sich die textbasierte Implementierung über die Zeit ganz natürlich von den (in der Planungsphase entstandenen) nicht-funktionalen, jedoch leichter verständlichen Modellen wegentwickelt. Um zu verstehen, was der aktuelle Code tut, hilft ein Blick auf diese Modelle deshalb nur bedingt.
Die graphischen Workflows lösen dieses Problem, indem sie die Prozesse für alle Mitglieder des agilen, cross-funktionalen Teams verständlich ausdrücken, seien sie nun UX-Designer oder DevOps-Engineers.
entwickler.de: Werkzeuge zur Codegenerierung werden u.a. daran gemessen, wie natürlich und performant der generierte Code ist. Wie wird das in Xyna Factory sichergestellt?
Dr. Alexander Ebbes: Xyna Factory wurde zur Automatisierung von großen Rechnernetzen entworfen. Aufgrund der hohen Transaktionsraten und Datenvolumen ist Performance und Skalierfähigkeit von zentraler Bedeutung. Außerdem bestehen Anforderungen an Hochverfügbarkeit, da das Netzwerk für die Anwender von Xyna ein missionskritisches Betriebsmittel darstellt. Die Performance ist also sichergestellt.
Die Frage nach „natürlich“ ist schwieriger. Wenn man „normal“ programmiert, dann erstellt man typischerweise keinen Code, der in einer Workflow-Engine laufen soll, die an Übergabepunkten zwischen Code-Blöcken in den Kontrollfluss eingreift sowie die Nebenläufigkeit und parallele Ausführung steuert. Insofern empfindet man den resultierenden Code womöglich nicht als „natürlich“. Vielleicht ist das ein wenig vergleichbar zu einer „normalen“ Anwendung in Java SE und einer, die als Gruppe von EJBs (Enterprise Java Beans) mit genormten Zustandsübergängen in einem Java EE Application Server laufen soll.
Den resultierenden Code muss man sich als Anwendungsentwickler allerdings in Xyna Factory genauso wenig anschauen, wie man den Bytecode einer „normalen“ kompilierten Java-Anwendung durchlesen muss. Entwicklung, Run, Debugging läuft durchgehend auf der Ebene der graphischen Prozesse.
Code und Dokumentation sind automatisch immer „in sync“.
entwickler.de: Wie vereint Xyna Factory Code und Dokumentation in den Modellen, und warum ist dies von Vorteil?
Dr. Alexander Ebbes: Die graphischen Workflows sind Code und Dokumentation gleichermaßen: Die Modelle werden in Bytecode übersetzt und sind somit ausführbar, aber ihre graphische Darstellung lässt sie eine analoge Rolle einnehmen wie beispielweise Aktivitäts- oder Sequenzdiagramme in UML. Ebenso ähnelt die graphische Modellierung von Datentypen einem UML-Klassendiagramm. Die konzeptionelle Ebene der Modelle und die operative Ebene der Ausführbarkeit wird durch dasselbe Objekt, den graphischen Workflow, ausgedrückt. Somit sind Code und Dokumentation automatisch immer „in sync“. Das ist ein großer Vorteil gegenüber getrenntem Sourcecode und zugehöriger Dokumentation, die nur durch permanente Doppelaufwände miteinander konsistent gehalten werden können.
entwickler.de: Was hat dazu geführt, dass Xyna Factory seit 2022 als Open Source verfügbar ist?
Dr. Alexander Ebbes: Wir haben das System über viele Jahre entwickelt, so dass es aktuell bei führenden Internet-Providern und Carriern im Produktionsbetrieb arbeiten kann. Aber wir sind auch nur eine vergleichsweise kleine Firma und können nicht jedes Potential des Systems auch selbst realisieren. Beispielsweise sind wir selbst auf Netzwerk-Automatisierung spezialisiert, können uns aber auch Einsätze von Xyna Factory in der Bioinformatik oder für Finanzprozesse sehr gut vorstellen.
Damit dieses Potential genutzt werden kann, mussten wir das System freilassen. Vielleicht ein wenig so, wie Eltern ihre Kinder loslassen müssen, wenn sie das richtige Alter erreicht haben, damit sie ihr volles Potential entfalten können.
Wir würden uns sehr freuen, wenn eine Community rund um Xyna Factory entsteht, die das System für ihre eigenen Projekte einsetzt, es weiterentwickelt und ihm neue Tricks beibringt.
entwickler.de: Welche Vorteile bietet die kommerzielle Variante Xyna.com Professional?
Dr. Alexander Ebbes: Xyna.com Professional bietet eine qualitätsgesicherte Distribution von Xyna Factory für Anwender mit besonderen Anforderungen. Aus den originalen Quellen von GitHub erstellen wir mittels umfangreicher Tests einen Build, bei dem sichergestellt ist, dass Anforderungen an Funktionalität und Kompatibilität erfüllt sind. Diese kommerzielle Distribution ist Grundlage für beispielsweise einen Wartungsvertrag oder professionellen Support.
Durch diese Unterscheidung in Open Source und eine optionale professionelle Distribution kann ein interessierter Anwender ohne Hürden und initiale Kosten Xyna Factory für sich entdecken und ausprobieren, indem er sich auf GitHub bedient oder unsere kostenfreie Xyna.com Community Edition nutzt.
Sollte das Projekt gut laufen und im Idealfall in den Produktionsbetrieb überführt werden, so könnte man ohne Bruch auf die professionelle Distribution umsteigen und einen Wartungsvertrag abschließen, um professionellen Support zu genießen und der Compliance Genüge zu tun.
entwickler.de: Vielen Dank für dieses Interview!