Low-Code Plattformen gelten als Nachfolger von 4GL-Programmiersprachen und ermöglichen die Entwicklung von Applikationen mit Hilfe von grafischen Modellierungswerkzeugen. Auf klassische Programmiersprachen muss dabei nur noch in Ausnahmefällen zurückgegriffen werden. Das bietet Vorteile, einerseits durch die verkürzte Entwicklungszeit und die dadurch geringeren Kosten, andererseits durch die Tatsache, dass die Projektmitarbeiter/innen, die an der Entwicklung beteiligt sind nicht unbedingt Programmierkenntnisse haben müssen.
Allerdings werden bei Low-Code Programmierung die einzelnen Schritte, die für die Anwendungsentwicklung notwendig sind, auf ein sehr hohes Abstraktionslevel gehoben. Das bedeutet geringere Flexibilität bei der Umsetzung. Bei der Lösung spezieller Probleme kann es somit nach wie vor notwendig sein, klassischen Programmcode zu schreiben.
Vom Service Framework zur Low-Code Plattform
Die Anexia Engine wurde ursprünglich als modulares Framework konzipiert, das eine breite Infrastruktur für die Erstellung von Services zur Verfügung stellt. Dadurch kann die Entwicklung neuer Applikationen, auch wenn sie auf herkömmliche Weise von Softwareentwickler/innen programmiert werden, vereinfacht und auf das Wesentliche beschränkt werden.
Die Weiterentwicklung zu einer Low-Code Plattform ist der nächste logische Entwicklungsschritt dieses Frameworks, der durch “Generic Services & Automation” eingeläutet wurde. Damit wird es möglich in kurzer Zeit und mit wenig Aufwand neue Applikationen und Services zu erstellen, auch von Projektmitarbeiter/innen oder Anwender/innen ohne Programmierkenntnisse.
Anders als bei reinen Low-Code Entwicklungsplattformen, die sowohl als Open-Source-Lösungen (z.B. Eclipse OSBP) als auch von kommerziellen Anbietern wie Oracle angeboten werden, ist die Lösung von Anexia keine separate Entwicklungsumgebung. Sie ist direkt in die Anexia Engine Plattform integriert. Damit erstellte Services fügen sich somit nahtlos in das User Interface der Engine ein und können bestehende Infrastruktur nutzen sowie mit bestehenden Services und Ressourcen interagieren.
Anexia Generic Services und Generic Automation
Bei der Erstellung eines neuen Generic Services kann man sich vollständig auf die für die Anwendung wesentlichen Bestandteile konzentrieren. Dazu gehört z.B. das Datenmodell, die Applikationslogik und die Interaktion mit anderen Services.
Alle wiederkehrenden Entwicklungsaufgaben, die ansonsten einen Großteil der Entwicklungsarbeit ausmachen würden, werden durch generischen Code abgedeckt und stehen dem/der Anwender/in sofort zur Verfügung. Dazu gehören unter anderem:
- Die Persistierung der Daten
- Das User-Interface für die Ein- und Ausgabe und die tabellarische Darstellung der Daten
- Die Benutzerverwaltung mit ihrer hierarchisch aufgebauten Organisationsstruktur und dem Rechtesystem
- Die graphische Darstellung der Datensätze und deren Abhängigkeiten im CMDB-Modul der Engine
- Eine REST API für den lesenden und schreibenden Zugriff auf die Daten
- Das für jeden/jede Kunden/Kundin individuell gestaltbare Aussehen der Benutzeroberfläche
Die Basis eines Generic Services stellt das Datenmodell dar, das durch die Definition von Entitäten und deren Attributen sowie deren Abhängigkeiten zu anderen Entitäten erstellt wird.
Um Generic Services Leben einzuhauchen, bietet das Modul “Generic Automation” die Möglichkeit sogenannte Automation Rules zu erstellen. Damit ist es möglich, über ein Regelwerk aus Conditions und Actions Anwendungslogik abzubilden und die Applikation mit externen Services über HTTP requests zu verknüpfen. Automation rules können entweder durch Benutzerinteraktionen (UI/API), durch Änderungen von Daten oder durch periodische Jobs im Hintergrund ausgelöst werden.
Da ein Generic Service in die Anexia Engine integriert ist, ist es möglich, sowohl mit bestehenden Services verknüpfte als auch eigenständige Applikationen zu entwickeln. Die bereits seit längerem bestehende Branding-Möglichkeit sorgt dafür, dass das Aussehen der generischen Services individuell an den/die Kunden/Kundin angepasst werden kann, um das Feeling einer eigenständigen Applikation zu vermitteln.
Ausblick auf Low-Code Generic Services
Die Funktionalität der Generic Services steckt zwar noch in den Kinderschuhen, aber ermöglicht es bereits jetzt Anwendungen mit komplexen Datenstrukturen zu erstellen. Für die nahe Zukunft sind weitere Erweiterungen geplant, welche die Möglichkeiten laufend erweitern, wie z.B.:
- Die Einbindung von “Generic Metrics” mit deren Hilfe Metriken aus Generic Services in Anexia CloudLog gespeichert und visuell aufbereitet werden können. Auch wird es möglich sein in Form von Alerts und Triggern automatisiert auf diese Daten zu reagieren.
- Durch “Service Native Actions” können andere Anexia Services Actions bereitstellen, die in Automation Rules verwendet werden können. Beispielsweise können damit benutzerdefinierte Funktionen des geplanten Engine-Moduls “e5e” genutzt werden, wodurch Applikationslogik in serverlosen, verteilten Funktionen implementiert werden kann.
- Custom Permissions, mit deren Hilfe die einzelnen Bereiche eines Generic Services flexibel an verschiedene Benutzerrollen angepasst werden können.
Durch den geringeren Entwicklungsaufwand und die damit verbundene Kostenersparnis haben Generic Services das Potential in Zukunft sowohl bei Kundenprojekten als auch bei der Entwicklung von Anexia-Standard-Services zum Einsatz zu kommen.
Sie stellen eine spannende Alternative zu den nativ in der Engine entwickelten Services dar, weil sie es ermöglichen in relativ kurzer Zeit und ohne Programmierkenntnisse neue Services zu erstellen. Das ermöglicht z.B. bei Kundenprojekten Applikations-Prototypen rasch umzusetzen und in weiterer Folge auch produktive Applikationen zu erstellen und zu betreiben, die auch im laufenden Betrieb flexibel an geänderte Bedürfnisse der Anwender/innen angepasst werden können.
Weitere Informationen zur individuellen Softwareentwicklung, Mobile App Entwicklung (iOS und Android) sowie zur Webentwicklung von Anexia