Clone
2
Architecture.de
Patrick Gniza edited this page 2026-08-21 09:04:39 +02:00

Deutsch | English

Architektur

Übergeordnete Runtime-Architektur

Die Runtime ist in einen Basis-Compose-Stack und ein ausgewähltes Datenbank-Backend-Override aufgeteilt.

Microsoft-SQL-Server-Modus

+----------------------+          +----------------------+
|   Romexis Clients    |          | Browser / noVNC User |
+----------+-----------+          +----------+-----------+
           |                                 |
           | RMI / Romexis ports            | HTTP / WebSocket
           v                                 v
+----------------------+          +----------------------+
| Romexis Server       |          | Romexis Admin        |
| Docker Container     |          | noVNC Container      |
+----------+-----------+          +----------------------+
           |
           | JDBC
           v
+----------------------+
| Microsoft SQL Server |
| Docker Container     |
+----------------------+

Firebird-Modus

+----------------------+          +----------------------+
|   Romexis Clients    |          | Browser / noVNC User |
+----------+-----------+          +----------+-----------+
           |                                 |
           | RMI / Romexis ports            | HTTP / WebSocket
           v                                 v
+----------------------+          +----------------------+
| Romexis Server       |          | Romexis Admin        |
| Docker Container     |          | noVNC Container      |
+----------+-----------+          +----------------------+
           |
           | JDBC / Jaybird
           v
+----------------------+
| Firebird Server      |
| Docker Container     |
+----------------------+

mRomexis Web App

+----------------------+
| Browser              |
+----------+-----------+
           |
           | HTTP
           v
+----------------------+
| OpenResty / Nginx    |
| proxy container      |
+----------+-----------+
           |
           +------------------------------+
           |                              |
           v                              v
+----------------------+        +----------------------+
| mRomexis Web App     |        | Romexis Server       |
| Tomcat Container     |        | Backend port 8093    |
+----------------------+        +----------------------+

Der mRomexis-Proxy schreibt Backend-Proxy-Anfragen auf den internen Dienst romexis um. Er vertraut keinen beliebigen, vom Browser bereitgestellten Hosts.


Image-Architektur

romexis-payload:<version>
        |
        +--> romexis-server:<version>
        +--> romexis-admin:<version>
        +--> romexis-mromexis-app:<version>

romexis-client-payload:<version>
        |
        +--> romexis-client:<version>

romexis-base-jre:11-<arch>
        |
        +--> romexis-server:<version>-<arch>

romexis-gui-runtime:1-<arch>
        |
        +--> romexis-admin:<version>-<arch>
        +--> romexis-client:<version>-<arch>

romexis-firebird-payload:latest
        |
        +--> romexis-server:<version>-<arch>

Independent service images:
  romexis-migration-service:latest
  romexis-control-agent:latest

Payload-Images enthalten versionsabhängige Inhalte aus dem Installer. Runtime-Images enthalten aufwendige architekturspezifische Abhängigkeiten, die über mehrere Romexis-Versionen hinweg wiederverwendet werden. Die finalen Server-, Admin- und Client-Images setzen daher im Wesentlichen ein Payload mit der passenden Runtime-Schicht und komponentenspezifischen Startdateien zusammen.

romexis-client erbt nicht mehr von romexis-admin; beide verwenden unabhängig voneinander die gemeinsame romexis-gui-runtime. Payload- und Runtime-Images sind Build-Abhängigkeiten und keine zusätzlichen Dienste im Runtime-Compose-Stack.


Compose-Architektur

docker-compose.yml
  Common services:
    - romexis
    - romexis-admin
    - romexis-app
    - proxy

docker-compose.mssql.yml
  MSSQL service and MSSQL-specific Romexis environment.

docker-compose.firebird.yml
  Firebird service and Firebird-specific Romexis environment.

Das ausgewählte Backend wird geladen über:

DATABASE_BACKEND=mssql
COMPOSE_FILE=docker-compose.yml:docker-compose.${DATABASE_BACKEND}.yml

Persistenter Datenfluss

/srv/romexis-data/
  sconfig/
  programdata/
  romexis_images/
  romexis_cache/
  romexis_ergodata/
  sql-backup/
  firebird/

Dieselbe persistente Datenwurzel kann über Neuerstellungen des Servers hinweg verwendet werden. Backend-spezifische Daten verbleiben im ausgewählten Datenbank-Volume oder Host-Verzeichnis.


Admin-Runtime-Architektur

romexis-admin stellt einen grafischen Linux-Container für Romexis Admin / RomexisConfig bereit.

Er startet:

Xvfb
Openbox
xcompmgr
x11vnc
noVNC / websockify

RomexisConfig kann bei Bedarf gestartet werden, wenn sich ein VNC-/noVNC-Client verbindet, und wieder beendet werden, wenn der letzte Client die Verbindung trennt.


Architektur der mRomexis Web App

romexis-app ist ein Tomcat-Image, das Folgendes enthält:

/usr/local/tomcat/webapps/ROOT.war

Die WAR-Datei wird aus der Romexis-Payload kopiert:

/opt/romexis/broker/mromexis-html.war

Diese Datei existiert nur in Romexis 6.5.3 und neuer.