CutoverManager: Technischer Einblick

24. November 2019 | Matthias Mair
Ihre Plandaten sind sicher!

Der Startschuss für die Entwicklung des CutoverManagers war ein detailliertes und ausgereiftes Anforderungsdokument, welches die Firmengründer aufgrund ihrer langjährigen Erfahrung in der Planung, Steuerung und Durchführung von erfolgreichen Cutovers/Go-Lives verfasst haben. Basierend hierauf wurde ein Architekturentwurf ausgearbeitet, der nicht nur die funktionalen Anforderungen aus dem Dokument umsetzt, sondern auch die geforderten Qualitätseigenschaften vollständig berücksichtigt.

Architektur

Die Ergebnisse des Architekturentwurfs, wie beispielsweise technischer/fachlicher Kontext und querschnittliche Konzepte, sind in arc42 einem Architekturdokumentations-Template festgehalten. Als UML-Modellierungswerkzeug wird Enterprise Architect eingesetzt. Im Modell sind nicht nur die einzelnen Komponenten und deren Beziehungen zueinander abgebildet, sondern auch ein vollständiges Domänenmodell modelliert, welches in normalisierter Form als Datenbankschema verwendet wird.

CutoverManager Architektur

Der CutoverManager ist eine Webanwendung nach dem Client-Server Architekturmuster mit einer zusätzlichen Schichtenarchitektur im Server. Die Schichtenarchitektur besteht aus den folgenden drei technischen Schichten:

Controller
Nimmt eingehende Anfragen entgegen, validiert die Daten und leitet die Anfrage zur Beantwortung an die Business-Schicht weiter
Business
Enthält die Fachlichkeit und berechnet beispielsweise einen Plan. Hierfür holt es sich die notwendigen Daten von der Domain-Schicht ab
Domain
Kommuniziert mit dem Domänenmodell in der Datenbank

Die Entscheidung für eine Webanwendung wurde bewusst getroffen, da es nicht nur State-of-the-Art ist, sondern auch die Wartung und den Betrieb deutlich vereinfacht.

Die Wahl der Programmiersprache fiel durch ihre Plattformunabhängigkeit und ihren Verbreitungsgrad auf Java.

Spring Boot

Für die Entwicklung von Enterprise-Anwendungen mit Java hat sich unter anderem das Framework Spring durchgesetzt. Anstatt nativ Spring zu verwenden, wird das Spring Boot Framework eingesetzt, da es zusätzlich die Qualitätseigenschaften eines einfachen Deployments und die Cloud-Fähigkeit bestens unterstützt.

Spring Boot ermöglicht die Erstellung von eigenständigen Spring-Anwendungen. Das heißt, es wird kein externer Applikations-Server benötigt, sondern ein embedded Tomcat wird im Deployment mitgeliefert. Des Weiteren besteht die Anwendung aus einer einzigen JAR-Datei, einer sogenannten „fat-jar” Datei, welche sowohl On-Prem, als auch in der Cloud betrieben werden kann.

Konzepte

Bei der Entwicklung des CutoverManagers wurde von Beginn an auf die Ausarbeitung und Einhaltung von übergreifenden Konzepten großen Wert gelegt. Beispiele von ausgearbeiteten Konzepten im CutoverManager sind:

Transaktion

Nachdem ein Cutover eine minutiöse Planung mit nachvollziehbarer Steuerung und Durchführung voraussetzt, kommen ausschließlich transaktionsbasierte Datenbanken zum Einsatz. Diese werden mithilfe von JDBC angesprochen. Zusätzlich kommt JPA als ORM Framework (Object-relational mapping) zum Einsatz. Zur Implementierung wird Hibernate verwendet.

Die Transaktions-Steuerung übernimmt vollständig Spring Boot. Als Transaktions-Strategie wurde Optimistic-Locking gewählt, weil es eine deutlich gesteigerte Performance im parallelen Mehrbenutzer-Betrieb erlaubt. Darüber hinaus schützt die Versionierung der Datensätze durch Hibernate die gleichzeitige Bearbeitung eines Datensatzes dahingehend, dass NICHT der letzte Änderer gewinnt. Stattdessen wird eine Fehlermeldung ausgegeben, dass dieser Datensatz von einem anderen Benutzer bereits geändert wurde und eine Aktualisierung der Daten notwendig ist, bevor eine weitere Änderung durchgeführt werden kann.

Cloud

Als weitere Vereinfachung des Deployments, vor allem in Cloud-Umgebungen, wird ein Framework für das Änderungsmanagement von Datenbankschemata eingesetzt. Die Wahl fiel dabei auf Liquibase. Dementsprechend entfallen beim Deployment manuelle Schritte für das Einspielen von SQL-Statements. Mithilfe von Liquibase können auch datenbank-spezifische Datentypen oder Eigenarten gezielt gesteuert werden, was eine perfekte Ausgangssituation für die Unterstützung verschiedener DBMS darstellt.

Für das Erreichen der Qualitätseigenschaften Ausfallsicherheit und Verfügbarkeit ist der CutoverManager skalierbar. Dies wird durch eine datenbankbasierte Session-Behandlung erreicht. Eine Session ist aufgrund der notwendigen Authentifizierung zwingend erforderlich. Hierüber werden auch die Benutzerrollen und die daraus resultierenden Zugriffsrechte abgedeckt und geprüft.

Für die Benachrichtigung von Aufgabenverantwortlichen wird primär auf Mail gesetzt. Technisch wird dabei die JavaMailSender-Klasse von Spring verwendet, welche mittels SMTP mit einem beliebigen Mail-Server kommuniziert. Bei der Implementierung wurde eine Abstraktionsschicht eingezogen, um zukünftig weitere Kommunikationskanäle anbieten zu können. Beispiele hierfür sind RocketChat oder Slack.

Client

Nach der detaillierten Ausführung der Server-Technologien kommen wir zum Client, der ebenfalls serverseitig mit Frameworks und Bibliotheken aufwartet.

Als Client wird ein installierter, moderner Browser vorausgesetzt, wie es bei Webanwendungen üblich ist. Als Technologie kommt ein für Multipage-Anwendungen optimiertes Framework Thymeleaf am Server zum Einsatz. Dieses erzeugt serverseitig gerendertes HTML, welches mit angereicherten JavaScript-Bibliotheken und Grafiken vom Server zum Client ausgeliefert wird.

Bei der Visualisierung von beispielsweise Datums- und Zeitpickern und client-seitigen Steuerungen kommt jQuery, jQuery-UI und spezialisierte JavaScript-Bibliotheken zum Einsatz. Die Darstellung der Gantt-Charts wurde ebenfalls in JavaScript entwickelt.

Ausblick

Abschließend geben wir einen Ausblick auf aktuell bei unserem Team in Diskussion befindlichen Entwicklungsmöglichkeiten:

Hierbei stehen immer die potenziellen Anforderungen unserer Kunden im Vordergrund.

Zusammenfassend sind alle Entscheidungen unter Berücksichtigung der State-of-the-Art Technologien und höchsten Datenschutzanforderungen getroffen worden.

Unser Fazit: „Ihre Plandaten sind bei uns im CutoverManager sicher.”

Änderungshistorie
12. April 2020 – Überschriften überarbeitet
24. November 2019 – Veröffentlichung


Passende Artikel zum Thema

Matthias Mair
Matthias Mair
Geschäftsführer
Feedback
Haben Sie Fragen oder Anregungen zu diesem Artikel? Bitte kontaktieren Sie uns.