Systemüberblick Fast Lane Runtime

Das Tarifkundenportal in der vorliegenden Version 3.0 basiert auf einer Microservicearchitektur (Fast Lane Runtime), die verschiedene Module mit unterschiedlichen Funktionen aus dem Bereich des Internet Self Services zur Verfügung stellt. Bevor im zweiten Teil der Dokumentation auf die einzelnen Funktionen der Module eingegangen wird, soll zunächst eine Übersicht der Fast Lane Runtime gegeben werden. Diese dient zur technischen Einordnung in die Systemlandschaft und zum besseren Verständnis der Erweiterbarkeit von Funktionen, Design und Layout.

Die Fast Lane Runtime fügt sich in die Systemlandschaft ein, wie ein herkömmlicher Webserver. Bei Verwendung mehrerer Fast Lane Runtime Instanzen/Knoten kann über einen Load Balancer die Last auf verschiedene Knoten verteilt werden.

Die Anbindung an Backend Systeme erfolgt über verschiedene Protokolle, die von der Fast Lane Runtime und den entsprechenden Modulen bereitgestellt werden können.

image4
Abbildung 4: Einbindung in die Systemlandschaft

Das Tarifkundenportal läuft standardmäßig auf einer Fast Lane Runtime Instanz. Sollte die Last nicht mehr von einer Instanz verwaltet werden können, lässt sich das Gesamtsystem einfach skalieren. Dafür stehen mehrere Optionen zur Verfügung.

image5
Abbildung 5: Optionen für Clustering

In Abbildung 5 Optionen für Clustering sind unterschiedliche Möglichkeiten aufgezeigt, eine Cluster von Fast Lane Runtime Nodes anzulegen. Option 1 betreibt mehrere Fast Lane Runtime Instanzen auf einem physikalischen Server. Allerdings ist es, wie in Option 2 dargestellt, ebenfalls möglich, einzelne Instanzen auf unterschiedlichen physikalischen Servern zu betreiben.

Die dritte Option beschreibt einen Mischcluster hinsichtlich mehrerer und unterschiedlicher Anzahl von Fast Lane Runtime Instanzen auf mehreren physikalischen Servern.

Der Betrieb auf virtuellen Maschinen ist ebenso möglich, wie eine weitere Virtualisierung in Containern z.B. mit Docker.

Die Funktionalität des Tarifkundenportals wird auf der Fast Lane Runtime installiert. Diese bietet eine Microservicearchitektur, die es ermöglicht, Funktionen über Module zur Verfügung zu stellen. Hierbei sorgt die Fast Lane Runtime dafür, dass die Module in der Laufzeitumgebung verwaltet werden.

Zum einen hinsichtlich der aktuell installierten Versionen, zum anderen aber auch für die Verwaltung von Abhängigkeiten zwischen Modulen. Die Fast Lane Runtime ist eine Standalone Java Applikation, die durch Module in verschiedenen Richtungen erweitert werden kann. In den folgenden Kapiteln werden noch einige Module thematisiert, die einfach hinzugefügt werden können, falls benötigt.

Ein Modul ist in diesem Kontext immer eine Funktion, die sämtliche Komponenten vereint. Es bringt die Oberfläche, die Geschäftslogik und die Modell sowie deren Ablage mit. Hierbei kann die Geschäftslogik und Datenablage auch in einem anderen System erfolgen. Dann besitzt das Modul allerdings die Kontrolle über die Kommunikation mit dem angebundenen System.

image6
Abbildung 6: Aufbau Fast Lane Runtime & Module

Die Fast Lane Runtime skaliert im Cluster mit zusätzlichen Instanzen. Dabei macht es anwendungsseitig keinen Unterschied, ob horizontal oder vertikal skaliert wird. Die einzelnen Instanzen oder auch Knoten genannt, finden sich über eine einfache Peer-to-Peer Verbindung. Somit werden alle Instanzen im Cluster sehr schnell bekannt gemacht. Im Cluster werden alle Informationen transparent auf Metadatenebene ausgetauscht, sodass jede Instanz über dieselben Informationen verfügt. Es muss also nicht erst ein Master gewählt werden.

Fast Lane Runtime besteht neben der Basis Applikation aus 3 weiteren Komponenten.

Module.runtime

Die Module.runtime verwaltet die Versionen der installierten Module. Hierdurch kann die Module.runtime neue Versionen automatisch herunterladen und installieren. Ebenfalls ist es möglich, ein Downgrade eines Moduls durchzuführen. Dies geschieht im Zusammenspiel mit der Komponente Provisioning.

Zusätzlich zu den Versionen der einzelnen Module verwaltet die Module.runtime auch die Session jedes Benutzers. Gerade im Zusammenhang mit den verschiedenen Versionen eines Moduls ist dieses Feature zu beachten.

Ein Benutzer A meldet sich am Portal an und bekommt die Zählerstanderfassung in der Version 1.0 angezeigt. In der Zwischenzeit führt ein Administrator ein Versionsupgrade des Zählerstands-Moduls auf Version 1.1 durch. Hierzu muss die Fast Lane Runtime nicht beendet werden.

Ein weiterer Benutzer B meldet sich am Portal an und erhält die Zählerstanderfassung in der Version 1.1. Der Benutzer A kann weiterhin mit der Version 1.0 des Moduls weiterarbeiten, da beide Versionen über die Module.runtime zur Verfügung gestellt werden können. Sobald die Session des Benutzers A abgelaufen ist, erhält er ebenfalls die Version 1.1 der Zählerstände angezeigt.

Provisioning

Das Provisioning stellt eine Verbindung zu einem Modul Repository her, aus dem immer neue Versionen der installierten Module heruntergeladen werden können. Weiterhin können auch neue Module heruntergeladen und installiert werden. Hierzu gibt es ein Admin-Tool, über das die beschriebenen Funktionen ausgeführt werden können.

Service.runtime

Über die Service.runtime wird die Kommunikation zwischen den Modulen und im Cluster auch zwischen den Instanzen der Fast Lane Runtime sichergestellt. Über diese Komponente wird der benötigte Service immer gefunden, auch wenn im Cluster einzelne Knoten nicht zur Verfügung stehen. Und dies ohne dass die Anwendung den genauen Ort des Services kennen muss. Weiterführende Informationen zur Service.runtime können Sie über die Next Level Integration GmbH anfordern.

Weitere Basis Module

Um die Basisfunktionalität für Web Anwendungen zur Verfügung zu stellen, werden einige Module installiert. Ein Webserver Modul für die Kommunikation auf Basis von HTTPS sowie der Darstellung von HTML5 Oberflächen, die in Javascript mittels AngularJS entwickelt wurden.

Das Central User Management stellt die Funktionalität der Benutzerverwaltung. Hierüber können Sie einfach alle Kriterien zum Berechtigungskonzept hinterlegen. Weiter unten finden Sie explizite Funktionen, die die Benutzerverwaltung bietet.

Das Modul Portal UI definiert Oberflächenkomponenten, die bereits Responsive ausgeprägt sind. Hierzu zählen beispielsweise Tabellen, die ab einer bestimmten Auflösung in ein Kachel Layout wechseln. Bei Verwendung dieser Komponenten ist sichergestellt, dass die Anzeige des Portals auf jedem verbreiteten Device ordentlich möglich ist.