Private
Public Access
Architecture hinzugefügt
+168
@@ -0,0 +1,168 @@
|
|||||||
|
Willkommen im Wiki.# Architecture
|
||||||
|
|
||||||
|
## High-Level Runtime Architecture
|
||||||
|
|
||||||
|
Default Microsoft SQL Server mode:
|
||||||
|
|
||||||
|
```text
|
||||||
|
+----------------------+
|
||||||
|
| Romexis Clients |
|
||||||
|
+----------+-----------+
|
||||||
|
|
|
||||||
|
| RMI / Romexis protocol ports
|
||||||
|
v
|
||||||
|
+----------------------+
|
||||||
|
| Romexis Server |
|
||||||
|
| Docker Container |
|
||||||
|
+----------+-----------+
|
||||||
|
|
|
||||||
|
| JDBC
|
||||||
|
v
|
||||||
|
+----------------------+
|
||||||
|
| Microsoft SQL Server |
|
||||||
|
| Docker Container |
|
||||||
|
+----------------------+
|
||||||
|
```
|
||||||
|
|
||||||
|
Firebird mode:
|
||||||
|
|
||||||
|
```text
|
||||||
|
+----------------------+
|
||||||
|
| Romexis Clients |
|
||||||
|
+----------+-----------+
|
||||||
|
|
|
||||||
|
| RMI / Romexis protocol ports
|
||||||
|
v
|
||||||
|
+----------------------+
|
||||||
|
| Romexis Server |
|
||||||
|
| Docker Container |
|
||||||
|
+----------+-----------+
|
||||||
|
|
|
||||||
|
| JDBC / Jaybird
|
||||||
|
v
|
||||||
|
+----------------------+
|
||||||
|
| Firebird Server |
|
||||||
|
| Docker Container |
|
||||||
|
+----------------------+
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Image Architecture
|
||||||
|
|
||||||
|
```text
|
||||||
|
romexis-payload:<version>
|
||||||
|
/opt/romexis
|
||||||
|
/opt/romexis-mssql-db
|
||||||
|
/opt/romexis/version
|
||||||
|
|
||||||
|
romexis-firebird-payload:latest
|
||||||
|
/opt/romexis-firebird-db
|
||||||
|
Firebird SQL scripts
|
||||||
|
Firebird backup/restore helpers
|
||||||
|
romexis_new.fdb template/reference
|
||||||
|
|
||||||
|
romexis-base-jre:11-<arch>
|
||||||
|
Java 11
|
||||||
|
JavaFX/OpenJFX
|
||||||
|
database client tools
|
||||||
|
system dependencies
|
||||||
|
|
||||||
|
romexis-server:<version>-<arch>
|
||||||
|
Romexis payload
|
||||||
|
Firebird payload
|
||||||
|
base runtime
|
||||||
|
Java property agent
|
||||||
|
initialization scripts
|
||||||
|
entrypoint
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Why Payload Images?
|
||||||
|
|
||||||
|
The original Dockerfile downloaded and extracted installer files inside the final server build.
|
||||||
|
|
||||||
|
That worked, but had drawbacks:
|
||||||
|
|
||||||
|
- repeated large downloads
|
||||||
|
- slow builds
|
||||||
|
- harder debugging
|
||||||
|
- installer extraction tightly coupled to server image build
|
||||||
|
- poor reuse across architectures
|
||||||
|
|
||||||
|
Payload images solve this by making the extracted installer content a reusable build artifact.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Runtime Data Layout
|
||||||
|
|
||||||
|
The runtime stack uses persistent volumes or host directories for:
|
||||||
|
|
||||||
|
```text
|
||||||
|
/data/romexis_images
|
||||||
|
/data/romexis_ergodata
|
||||||
|
/data/romexis_cache
|
||||||
|
/opt/romexis/sconfig
|
||||||
|
/opt/romexis/programdata
|
||||||
|
```
|
||||||
|
|
||||||
|
Database data is backend-specific:
|
||||||
|
|
||||||
|
```text
|
||||||
|
Microsoft SQL Server:
|
||||||
|
/var/opt/mssql
|
||||||
|
|
||||||
|
Firebird:
|
||||||
|
/firebird/data/romexis.fdb
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Startup Flow
|
||||||
|
|
||||||
|
```text
|
||||||
|
entrypoint.sh
|
||||||
|
|
|
||||||
|
|-- prepare persistent directories
|
||||||
|
|-- generate database URL if needed
|
||||||
|
|-- write Romexis configuration
|
||||||
|
|-- run /opt/init-romexis-db.sh
|
||||||
|
| |
|
||||||
|
| |-- route to MSSQL init if SERVER_DB=5
|
||||||
|
| |-- route to Firebird init if SERVER_DB=4
|
||||||
|
|
|
||||||
|
|-- fix keystore alias
|
||||||
|
|-- start Romexis Server
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Database Initialization Router
|
||||||
|
|
||||||
|
The runtime uses a small router script:
|
||||||
|
|
||||||
|
```text
|
||||||
|
/opt/init-romexis-db.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
It detects the backend using:
|
||||||
|
|
||||||
|
```text
|
||||||
|
ROMEXIS_DB_URL
|
||||||
|
SERVER_DB
|
||||||
|
```
|
||||||
|
|
||||||
|
Supported backend identifiers:
|
||||||
|
|
||||||
|
| Value | Backend |
|
||||||
|
|---|---|
|
||||||
|
| `SERVER_DB=5` | Microsoft SQL Server |
|
||||||
|
| `SERVER_DB=4` | Firebird |
|
||||||
|
|
||||||
|
Backend-specific logic is split into:
|
||||||
|
|
||||||
|
```text
|
||||||
|
/opt/init-romexis-mssql-db.sh
|
||||||
|
/opt/init-romexis-firebird-db.sh
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user