Ein Service-Projekt auf Basis eines DEA erstellen

Anmerkung: Im Folgenden dient der DEA mit dem Titel Beverage vending machine, der standardmäßig in der Container-Automat Factory zur Verfügung steht, als Grundlage für die Erstellung der serviceorientieren Anwendung. Sie können aber auch einen anderen Beispiel-DEA verwenden oder einen selbst erstellten. Die Schritte sind immer dieselben.

BeverageVending-Factory

Schritt 1: Auswahl des DEA

Zur Auswahl eines Beispiel-DEA wählen Sie den entsprechenden Eintrag aus der Dropdown-Liste oben in der Factory und klicken anschließend auf den Button mit der Beschriftung Use sample DFA, wie in der folgenden Abbildung dargestellt.

Auswahl eines Beispiel-DEA

Daraufhin werden alle Elemente der Factory mit den Werten des Beispiel-DEA initialisiert. Insbesondere enthält der Textbereich unter der Überschrift DFA Specification in JSON Format die Spezifikation des DEA.

BeverageVending JSON

Wenn Sie einen eigenen DEA über die Eingabefelder für die Zustände, das Alphabet, die Übergangsfunktion, den Startzustand und die Endzustände in der Factory erstellen oder Elemente zu einem DEA hinzufügen oder Elemente ändern, wird das JSON-Dokument automatisch aktualisiert. Sie können die JSON-Daten aber auch direkt in dem Textbereich bearbeiten. In diesem Fall können die Werte in den Eingabefeldern abweichen.

Über die Buttons Recreate JSON specification from editor values und Initialize editor values from JSON specification können Sie wechselseitig eine Synchronisation der Daten veranlassen. Für die Projekterstellung ist es allerdings nicht notwendig, dass das JSON-Dokument und die Werte in den Eingabefeldern der Factory synchronisiert sind.

Daher bitte beachten: Die Spezifikation im JSON-Format ist immer die Grundlage für die Erzeugung des Service-Projektes.

Schritt 2: Anwendungsname, Java-Package und Container-Registry

Allgemeine Anwendungsparameter

Der Anwendungsname

Im Textfeld Application name geben Sie den Namen der Anwendung an. Die Bezeichnung wird an verschiedenen Stellen in der generierten Anwendung verwendet, bspw. in Java-Klassen, in Java-Packagepfaden, in Namen von Variablen und Konstanten sowie in Konfigurationsdateien für Docker und Kubernetes.

Der angegebenene Name muss den Erfordernissen für Identifier in Java entsprechen. Die Schreibweise wird an verschiedenen Stellen in der generierten Anwendung automatisch angepasst. Dabei werden jeweils übliche Konventionen verwendet, bspw. nur Kleinbuchstaben für Packagepfade und nur Großbuchstaben für die Namen von Konstanten.

Das Java-Package

Im Textfeld Java package geben Sie den übergeordneten Java-Packagepfad für die generierte Anwendung an.

Der angegebene Pfad sollte den Konventionen für Packagepfade in Java entsprechen. Der Anwendungsname in Kleinbuchstaben wird automatisch an den angegebenen Pfad angehängt.

Schritt 3: Die Datenbank

Aus der Dropdown-Liste Database system wählen Sie die Datenbank aus, die von der generierten Anwendung verwendet werden soll. [1] [2]

Auswahl der Datenbank

Schritt 4: Der Message-Broker

Aus der Dropdown-Liste Messaging system wählen Sie den Message-Broker aus, der von der generierten Anwendung verwendet werden soll. [1] [2]

Auswahl des Message-Broker

Schritt 5: Die optionalen ELK-Services

Wenn Sie die Checkbox Include optional services aktivieren, werden Elasticsearch, Lockstash und Kibana in die generierte Anwendung eingebunden, um von der Anwendung generierte Events zu protokollieren. [1] [2]

Auswahl der optionalen Services

Tipp! Bei ersten Versuchen mit generierten Anwendungen ist es sinnvoll, die ELK-Services wegzulassen. Die Ressourcen, RAM und CPU, die für diese Services zur Laufzeit benötigt werden, sind auf einem lokalen System nicht zu vernachlässigen und die Startzeiten der Anwendung in Docker Compose oder Kubernetes können ohne die ELK-Services deutlich kürzer sein.

Wenn die Anwendung ohne ELK-Services mit einer konkreten RAM- und CPU-Ausstattung gut läuft, kann sie problemlos unter Einschluss der ELK-Services neu generiert werden.

Schritt 6: Erzeugung und Download des Projektarchivs

Durch einen Klick auf den Button Create and download Java project archive wird ein ZIP-Archiv mit der generierten Anwendung zum Download angeboten.

Erzeugung des Projektarchivs

Speichern Sie das ZIP-Archiv in irgendeinem leeren Verzeichnis, das Sie als Stammverzeichnis für die generierte Anwendung verwenden möchten, und entpacken Sie den Inhalt. Für die hier beschriebene Beispielanwendung BeverageVending sieht der Verzeichnisinhalt dann bspw. folgendermaßen aus:

beveragevending-core  (Directory)
beveragevending-entry (Directory)
beveragevending-state (Directory)
dockerbuild           (Directory)
dockercompose         (Directory)
kubernetes            (Directory)
localrun              (Directory)
pom.xml
README.md


1. Die genaue Version oder das Release des jeweiligen Service ist in der Factory fest verdrahtet, um das Zusammenspiel mit dem generierten Java-Code testen zu können.
2. Die generierten Scripte für die Windows Eingabeaufforderung und die Linux Shell sowie die Konfigurationsdateien für Docker Compose und Kubernetes enthalten explizite Docker Image-Tags, die bestimmte Versionen oder Releases der Services implizieren.