NAME
zerodds-webdds-bridged - OMG Web-Enabled DDS 1.0 gateway daemon (REST + SOAP)
SYNOPSIS
zerodds-webdds-bridged [--config FILE] [--listen ADDR] [--domain ID] [--type NAME=FILE]... [-V | -h]
DESCRIPTION
zerodds-webdds-bridged exposes DDS applications, participants, topics, publishers, subscribers, data writers and data readers as HTTP resources, per OMG Web-Enabled DDS 1.0. Serves the REST PSM under /dds/rest1, the SIMPLE-WSDL-SOAP PSM under /soap, and the WSDL description of both the fixed object-model operations and any config-named IDL interface under /wsdl, all on the one HTTP port.
A topic's wire type is resolved from a config-named .idl file (types:) or from a peer's TypeLookup discovery — never from an opaque byte guess. Sample bodies (write/read) are the DDS-WEB XML representation, converted through the type's own descriptor.
Every REST request needs an Accept header naming application/dds-web+xml (exactly — DDS-WEB 1.0 defines no other representation): missing is 400, one naming none of it is 406, and a Content-Type naming anything else is 415.
A create_participant/create_publisher/create_subscriber body, and its update_* counterpart, may carry nested publishers/subscribers/data_writers/data_readers (OMG DDS-WEB 1.0 §7.4.3.1/§7.4.3.2/§7.4.4.7/§7.4.4.8/ §7.4.4.11/§7.4.4.12): the daemon reconciles the live DCPS entities against them by name on every call. A qos or qos_profile element inside any of them, and any top-level update_* body, resolves the same way: an inline <qos> merges onto the entity's current QoS, and a <qos_profile>name</qos_profile> reference resolves through the daemon's own QosLibrary/QosProfile metadata first, with an inline <qos> present alongside it overriding the named profile's values. On update_*, an absent container element (no <publishers>, say) leaves that kind of contained entity untouched; an empty one deletes every one of them.
Implements OMG Web-Enabled DDS 1.0, formal/2014-12-01.
OPTIONS
- --config=FILE
-
Path to the config file (YAML). See zerodds-webdds-bridged.yaml(5).
- --listen=ADDR
-
HTTP bind address. Default: 127.0.0.1:8080.
- --domain=ID
-
DDS domain ID. Default: 0.
- --type=NAME=FILE
-
Type source override (repeatable): NAME is the IDL scoped name (Mod::Type), also the DDS wire type name; FILE is the .idl file it is declared in.
- --tls-cert=FILE
-
TLS server cert, PEM; enables https://.
- --tls-key=FILE
-
TLS server key, PEM.
- --auth-token=SECRET
-
Bearer token auth.
- --log-level=LEVEL
-
One of trace, debug, info, warn, error.
- --metrics=ADDR
-
Prometheus listener (/metrics).
- -V, --version
-
Version info.
- -h, --help
-
Show the option synopsis.
- --set PATH=VALUE
-
One setting above every file, repeatable; +PATH=VALUE appends to a list.
- --check-config
-
Validate and print the effective configuration with the origin of every value, then exit: 0 valid, 1 invalid value or unknown key, 2 unreadable file, syntax error or include cycle.
SIGNALS
SIGTERM stops the daemon: new connections stop being accepted, an open connection finishes its current request/response and closes.
SIGHUP reads the configuration again: the per-Application ACL and the auth settings apply from then on, TLS cert/key material is re-read from its configured path. Changed listen address or domain need a restart and are logged. A configuration that does not load changes nothing.
ENVIRONMENT
- OTEL_EXPORTER_OTLP_ENDPOINT
-
Optional OTLP endpoint, such as http://localhost:4318.
EXIT STATUS
- 0
-
Normal shutdown.
- 1
-
Configuration error.
- 2
-
Bind error — address in use.
- 3
-
DDS discovery error.
- 4
-
TLS setup error.
FILES
/etc/zerodds/webdds-bridged.yaml .
SEE ALSO
zerodds-webdds-bridged.yaml(5). OMG Web-Enabled DDS 1.0, formal/2014-12-01.
AUTHORS
ZeroDDS Contributors.
BEZEICHNUNG
zerodds-webdds-bridged - Gateway-Daemon für OMG Web-Enabled DDS 1.0 (REST + SOAP)
ÜBERSICHT
zerodds-webdds-bridged [--config DATEI] [--listen ADR] [--domain ID] [--type NAME=DATEI]... [-V | -h]
BESCHREIBUNG
zerodds-webdds-bridged stellt DDS-Applications, Participants, Topics, Publisher, Subscriber, Data Writer und Data Reader als HTTP-Ressourcen bereit, nach OMG Web-Enabled DDS 1.0. Bedient das REST-PSM unter /dds/rest1, das SIMPLE-WSDL-SOAP-PSM unter /soap und die WSDL-Beschreibung sowohl der festen Operationen des Objektmodells als auch jedes in der Konfiguration genannten IDL- interface unter /wsdl, alles auf dem einen HTTP-Port.
Der Wire-Typ eines Topics wird aus einer in der Konfiguration genannten .idl-Datei (types:) aufgelöst oder aus der TypeLookup-Discovery eines Gegenübers — nie durch Raten aus opaken Bytes. Sample-Inhalte (write/read) sind die XML-Darstellung aus DDS-WEB, konvertiert über den eigenen Deskriptor des Typs.
Jeder REST-Request braucht einen Accept-Header, der application/dds-web+xml nennt (genau diesen — DDS-WEB 1.0 definiert keine andere Darstellung): fehlt er, ist das 400, nennt er nichts davon, 406, und ein Content-Type, der etwas anderes nennt, ist 415.
Ein Inhalt von create_participant/create_publisher/create_subscriber und sein Gegenstück update_* kann verschachtelte publishers/subscribers/data_writers/data_readers tragen (OMG DDS-WEB 1.0 §7.4.3.1/§7.4.3.2/§7.4.4.7/§7.4.4.8/ §7.4.4.11/§7.4.4.12): Der Daemon gleicht die lebenden DCPS-Entitäten bei jedem Aufruf über den Namen mit ihnen ab. Ein Element qos oder qos_profile in irgendeinem davon und jeder Inhalt von update_* auf oberster Ebene werden auf dieselbe Weise aufgelöst: Ein Inline- <qos> wird mit der aktuellen QoS der Entität zusammengeführt, und ein Verweis <qos_profile>name</qos_profile> wird zuerst über die eigenen QosLibrary/QosProfile-Metadaten des Daemons aufgelöst, wobei ein daneben vorhandenes Inline- <qos> die Werte des genannten Profils überschreibt. Bei update_* lässt ein fehlendes Container-Element (etwa kein <publishers>) diese Art enthaltener Entitäten unberührt; ein leeres löscht jede davon.
Implementiert OMG Web-Enabled DDS 1.0, formal/2014-12-01.
OPTIONEN
- --config=DATEI
-
Pfad zur Konfigurationsdatei (YAML). Siehe zerodds-webdds-bridged.yaml(5).
- --listen=ADR
-
HTTP-Bind-Adresse. Standard: 127.0.0.1:8080.
- --domain=ID
-
DDS-Domain-ID. Standard: 0.
- --type=NAME=DATEI
-
Überschreibung der Typquelle (wiederholbar): NAME ist der IDL-Scoped-Name (Mod::Type), zugleich der Name des DDS-Wire-Typs; DATEI ist die .idl-Datei, in der er deklariert ist.
- --tls-cert=DATEI
-
TLS-Server-Zertifikat, PEM; schaltet https:// ein.
- --tls-key=DATEI
-
TLS-Server-Schlüssel, PEM.
- --auth-token=GEHEIMNIS
-
Authentifizierung mit Bearer-Token.
- --log-level=STUFE
-
Eine von trace, debug, info, warn, error.
- --metrics=ADR
-
Listener für Prometheus (/metrics).
- -V, --version
-
Versionsangabe.
- -h, --help
-
Zeigt die Übersicht der Optionen.
- --set PFAD=WERT
-
Eine Einstellung über allen Dateien, wiederholbar; +PFAD=WERT hängt an eine Liste an.
- --check-config
-
Prüft die wirksame Konfiguration und gibt sie mit der Herkunft jedes Werts aus, dann Ende: 0 gültig, 1 ungültiger Wert oder unbekannter Schlüssel, 2 nicht lesbare Datei, Syntaxfehler oder Include-Zyklus.
SIGNALE
SIGTERM beendet den Daemon: Neue Verbindungen werden nicht mehr angenommen, eine offene Verbindung beendet ihren aktuellen Request/Response und schließt.
SIGHUP liest die Konfiguration neu: Die ACL je Application und die Authentifizierungs-Einstellungen gelten ab dann, TLS-Zertifikat und -Schlüssel werden vom konfigurierten Pfad neu gelesen. Geänderte Listen-Adresse oder Domäne brauchen einen Neustart und werden protokolliert. Eine Konfiguration, die nicht lädt, ändert nichts.
UMGEBUNGSVARIABLEN
- OTEL_EXPORTER_OTLP_ENDPOINT
-
Optionaler OTLP-Endpunkt, etwa http://localhost:4318.
EXIT-STATUS
- 0
-
Normales Beenden.
- 1
-
Konfigurationsfehler.
- 2
-
Bind-Fehler — Adresse belegt.
- 3
-
Fehler bei der DDS-Discovery.
- 4
-
Fehler beim Einrichten von TLS.
DATEIEN
/etc/zerodds/webdds-bridged.yaml .
SIEHE AUCH
zerodds-webdds-bridged.yaml(5). OMG Web-Enabled DDS 1.0, formal/2014-12-01.
AUTOREN
ZeroDDS Contributors.