ROOTS Server 5 Installation


Einleitung

ROOTS Server ist ein OSGi-basiertes Boot System für Entwicklung und Ausführung von OSGi Subsystemen. ROOTS ECP Server ist der um die zur Entwicklung und Ausführung eventgesteuerter Anwendungen (RApps) erweiterter ROOTS Server. ECP steht hierbei für event centric processing und ist das Eventsystem das allen RApps zur Grunde liegt. Im ersten Kapitel wird eine kurze Anleitung zur Installation und Starten/Stoppen des ROOTS ECP Servers gegeben. Das darauf folgende Kapitel geht auf die Struktur und Konfigurationsmöglichkeiten des ROOTS Servers ein. Im letzten Kapitel wird die Nutzung der ROOTS Web Konsole zur Prüfung des ROOTS Server Status' gegeben. 

Kurzanleitung zur Installation des ROOTS ECP Servers

In diesem Kapitel wird der Bezug, die Installation, das Starten und Stoopen des ROOTS ECP Servers sowie Statusprüfung beschrieben. Das Verständnis für Administration von Betriebsystemen, insb. für Rechtevergabe und die Verwendung von Diensten/Daemon's, wird vorausgesetzt. Der ROOTS ECP Server besteht aus dem ROOTS Server und den ECP RApps. Um dem Anwender die Installation zu erleichtern bzw. das Herunterladen und Installieren der einzelnen ECP RApps aus dem RAppository zu ersparen, ist an der o.g. Lokalität nicht der ROOTS Server sondern der ROOTS ECP Server zu finden. Die Beschreibung der ECP RApps ist zu finden im Abschnitt ROOTS Server und ROOTS ECP Server.

Bezugsquelle des ROOTS ECP Servers

Die Bezugsquelle des ECP Servers oder eines entsprechenden vorkonfigurierten Servers wird Ihnen i.d.R. durch das kachel Team genannt. Der Name der Datei gibt Aufschluss über die ROOTS Releaseversion sowie das Betriebssystem: RootsECPServer<Betriebsystem><Releaseversion>.zip_ Aktuell wird ROOTS ECP Server für Win64, Win32, MacOS64 sowie Ubuntu Betriebssystem bereit gestellt. Um den ROOTS Server ohne die ECP RApps zu starten siehe den Abschnitt ROOTS Server und ROOTS ECP Server.

Installation des ROOTS ECP Servers

Folgende Schritte müssen ausgeführt werden, um einen ROOTS ECP Server zu installieren:

  •  ROOTS ECP Server von der im Abschnitt "Bezugsquelle des ROOTS ECP Servers" genannten Lokalität herunterladen.
  •  Die Archivdatei in das gewünschte Verzeichnis (im Folgenden <ROOTSECPServer> genannt) entpacken.

Hiermit ist die Installation des ROOTS Servers abgeschlossen. ROOTS ECP Server kann unter Windows auch als Service installiert werden. Um den Server unter Windows als Dienst starten zu können, muss er zunächst als Dienst installiert werden:

  •  Die Verknüpfung <ROOTSECPServer>/ROOTSServiceInstall ist auszuführen

Es wird der Konfigurationsmanager geöffnet:

 
Unter path ist aus dem Installationsverzeichnis die Datei ROOTSServerStart.bat auszuwählen und anschließen <Install service> auszuwählen.
Als Service Manager wird NSSM verwendet. Hier sollte man nachschlagen, wenn eine Konfiguration des Service über das hier genannte Mass erforderlich ist.

Starten des ROOTS ECP Servers

Der installierte ROOTS Server wird durch das Ausführen der Datei <ROOTSECPServer>/ROOTSServerStart.bat (Windows) bzw. <ROOTSECPServer>/ROOTSServerStart.sh (Mac OS, Linux) gestartet. Nach dem Start ist die ROOTS Shell zu sehen:

Nach dem Start des ROOTS Servers wird empfohlen das Kommando rstate in der ROOTS Shell auszuführen, welches den Zustand des gestarteten Roots Servers anzeigt (wie in der obigen Abbildung zu sehen).
Falls ROOTS ECP Server als Dienst unter Windows installiert wurde, kann er alternativ als Dienst gestartet werden. Dies wird über die üblichen betriebssystem-spezifischen Wege durchgeführt. Unter MacOS/Linux kann der ROOTS Server beim Starten des Systems als Deamon gestartet werden. Ist der ROOTS ECP Server gestartet, so ist die ROOTS Shell über die ROOTS Web Konsole erreichbar. Zum Starten der ROOTS Web Konsole siehe Abschnitt ROOTS Web Konsole. Nach dem Starten der ROOTS Web Konsole kann die Roots Shell geöffnet werden:

In der ROOTS Shell kann das Kommando rstate ausgeführt werden:

Stoppen des ROOTS ECP Servers

Der gestartete ROOTS ECP Server wird durch das Schließen der ROOTS Shell gestoppt. Ist der ROOTS ECP Server als  Dienst unter Windows gestartet, kann er über die üblichen, betriebssystemspezifischen Wege gestoppt werden. Unter MacOS werden die betriebsspezifischen Mechanismen zur Handhabung von Deamons zum Stoppen des ROOTS ECP Server Deamons verwendet.

ROOTS Server und ROOTS ECP Server

In diesem Kapitel wird die Kentniss der grundlegenden ROOTS Begriffe und Mechanismen vorausgesetzt. ROOTS ECP Server ist der um folgende RApps erweiterter ROOTS Server:

  • Console: ROOTS ECP console server mit session und web target services.
  • Core: bietet die Funktionalität zur Handhabung konkurrierender Zugriffe inkl. Konsole. Des Weiteren ist ein Datentyp zur Verwaltung groߟer Datenobjekte (ILOB) in dieser RApp enthalten. 
  • ECP: ROOTS Event System ermöglicht Entwicklung eventgesteuerter Anwendungen.
  • HINO: Hierarchische Datenstruktur zur transienten und persistenten Speicherung der Daten sowie HINO Konsole.
  • Remote: Stellt die Funktionalität für den [Remote Zugriff|rootsConsoleInterface.html] auf in ROOTS definierte targets zur Verfügung.
  • Store: Speicher Manager des ROOTS Servers.
  • Web: ROOTS Web Konsole.

Um ROOTS Server ohne die ECP RApps zu starten, genügt es die esa-Dateien der hier beschriebenen RApps aus dem rappsdeploy Verzeichnis zu entfernen und den ROOTS Server neu zu starten. ROOTS Server ohne die ECP RApps könnte z.B. verwendet werden, um eigene ECP unabhängige OSGi basierte Anwendungen auszuführen zu lassen.

ROOTS Server Lizenz

Die Installation beinhaltet eine Testlizenz für 30 Tage. Die Lizenzdauer kann in der ROOTS Shell mit dem rstate Befehl (siehe [ROOTS Web Konsole|ROOTSWebConsole_de.html]) überprüft werden. Für darüberhinaus gehende Nutzung des ROOTS Servers benötigt man einen Lizenzschlüssel von der kachel GmbH. Bitte schreiben Sie dazu eine E-Mail an contact@kachel.biz.

Struktur des installierten ROOTS Servers

In dem Verzeichnis <ROOTSECPServer> befinden sich nach der Installation folgende Verzeichnisse:

 
Die Verwendung der Verzeichnisse ist wie folgt:

  •  appl: In diesem Verzeichnis werden anwendungsspezifische Daten abgelegt.
  •  backups: Jede RApp kann die Möglichkeit anbieten Backups der verarbeiteten Daten zu erstellen. Diese Daten werden hier strukturiert abgelegt. Beispiel für eine Backup erstellende Rapp ist der PFileAgent: ist die entsprechende Property im Processor gesetzt, werden die verarbeiteten Dateien im Unterverzeichnis pfileagent des backups Verzeichnisses gesichert.
  • boot: Das Verzeichnis beinhaltet die Boot Rapp des ROOTS Servers. Die darin für den Start des ROOTS Servers zwingend erforderlichen bundles dürfen durch den Anwender NICHT gelöscht oder geändert werden!
  •  databases: Das Verzeichnis beinhaltet die Datenbank des ROOTS Servers und darf durch den Anwender nicht geändert werden.
  •  definitions: Das Verzeichnis beinhaltet verschiedene Definitionen der in ROOTS Server verwendeten Formate. Das Verzeichnis darf durch den Anwender erweitert werden, die vorhandenen Dateien sollten jedoch nicht gelöscht werden.   
  •  jre: Java Runtime Umgebung.
  •  rapps: Dieses Verzeichnis beinhaltet die zur Laufzeit des ROOTS Servers aktiven RApps. Jede RApp wird durch ein Unterverzeichnis mit den darunter liegenden jar Dateien repräsentiert.

Der Inhalt dieses Verzeichnisses darf durch den Anwender NICHT geändert werden!

  •  rappsdeploy: Beim Start des ROOTS Servers werden alle RApps, die sich im rappsdeploy (die und nur genau die) Verzeichnis befinden installiert und gestartet.  Soll demnach eine RApp hinzugefügt, aktualisiert oder gelöscht werden, wird die Änderung in diesem Verzeichnis durchgeführt.
  •  system: In diesem Verzeichnis sind die systemeigenen Daten zu finden. Für den Anwender interessant sind insbesondere das Log-Verzeichnis, das Lizenzverzeichnis, und die Konfigurationsdatei roots.conf im wrappenConfigurations Verzeichnis:

    • logs: ROOTS log Dateien (eine Datei pro Tag).

Die tagesaktuelle Datei sollte nicht gelöscht werden.


    • tmp: Dateien in diesem Verzeichnis werden von ROOTS zur Laufzeit erstellt bzw. verwendet.

Dateien in diesem Verzeichnis sollten nicht gelöscht bzw. geändert werden.

    • Datei .keystore: Keystore Datei.

    • Datei java.policy: Java policy.
    • Datei nssm.exe: Service Manager

Des Weiteren sind folgende Dateien in <ROOTSECPServer> enthalten:

  •  ecpweb.properties: ROOTS Console properties.
  •  ginger.properties: Properties für die Ausführung der Ginger RApp. Diese Datei wird nur von der Ginger RApp verwendet.
  •  roots.properties: Diese Datei beinhaltet sie Konfigurationseinstellungen zu dem ROOTS Server. Die einzelnen Properties sind in der Datei dokumentiert, eine Anpassung der Properties ist i.d.R. nicht notwendig. 
  •  RootsLizenzvertrag.pdf: Lizenzbedingungen.
  •  RootsServerStart.bat (Windows) bzw. RootsServerStart.sh (MacOS): Startet den ROOTS Server.

Unter Windows gibt es noch zusätzliche Dateien zur Installation und Deinstallation des Dienstes:

  •  ROOTSServiceInstall: Installiert den ROOTS Service
  •  ROOTSServiceState.bat: Zeigt den Status des ROOTS Service an.
  •  ROOTSServiceUninstall: Deinstalliert den ROOTS Service.

Die Service-deinstallation wird in Windows Systemsteuerung nicht immer zeitnah angezeigt. Es kann durchaus einige Minute dauern bis der deinstallierte Dienst nicht mehr angezeigt wird. Hintergrund: Aufgrund von Windows-Systemzuständen kann es passieren, dass der Service zunächst nur zum Löschen markiert wird und somit noch sichtbar ist. Der Zustand "Zum Löschen markiert" wird in der Systemsteuerung nicht angezeigt.
Die folgende Abbildung zeigt die in der Windows Version enthaltenen Dateien:

Konfiguration des Servers

Die Konfigurationseinstellungen für den Server befinden sich in den Dateien roots.properties (siehe Abschnitt Struktur des installierten ROOTS Servers) sowie ROOTSServerStart.bat. Die Datei roots.properties sollte für einen reibungslosen Ablauf nicht geändert werden. In der Datei ROOTSServerStart können folgende Properties vom Interesse für den Administrator sein:

  •  Speicherkonfiguration   

        -Xms256m         -Xmx1024m
Eine Änderung dieser Properties ist notwendig, wenn die JVM (Java Virtual Machine) nicht genug Speicherplatz zur Verfügung hat. Dies wird i.d.R. durch den Fehler "java.lang.OutOfMemoryError: Java heap space" angezeigt. Der Fehler wird in der log-Datei protokolliert.

  •  Änderung des http Ports

       -Dorg.osgi.service.http.port=8080
Eine Änderung dieses Properties ist notwendig, wenn der Port 8080 bereits durch eine andere Anwendung belegt ist.
 
In der ROOTS Shell wird hierbei beim Start des ROOTS Servers eine Fehlermeldung mit dem enthaltenen Text "port already in use" angezeigt.
 

  •  Änderung der Zugangsdaten für die ROOTS Web Konsole

        -Dfelix.webconsole.username=admin         -Dfelix.webconsole.password=mypassword
 

ROOTS Web Konsole

Die ROOTS Web Konsole ist unter folgender URL verfügbar, wobei <IP> die IP-Adresse des Rechners ist auf dem der ROOTS Server gestartet wurde: http://<IP>:8080/system/console Die Nutzung der ROOTS Web Konsole wird beschrieben in [ROOTS Web Konsole|ROOTSWebConsole_de.html]. Startet die Web Konsole nicht, bedeutet dies, dass der Port 8080 durch einen anderen Prozess bereits belegt ist und die Web RApp des ROOTS Servers aus diesem Grund nicht gestartet werden konnte. Eine eindeutige Aussage zu dem Zustand des ROOTS Servers kann in dem Fall nicht erfolgen. Wurde der ROOTS Server als Prozess und nicht als Service gestartet, ist in der ROOTS Shell die Fehlermeldung mit dem enthaltenen Text "port already in use" zu sehen. Entsprechende Fehlermeldung ist auch in der log-Datei zu finden. In diesem Fehlerfall muss der Port in ROOTS geändert werden. Die Änderung des Ports wird beschrieben im Abschnitt Konfiguration des Servers.