Zum Hauptinhalt springen
Version: 3.1
Kontext & IoT

Stellio

Verwaltet aktuelle Zustände und Beziehungen als NGSI-LD-Kontext.

Stellio ist ein Open-Source Context Broker für die standardisierte NGSI-LD API. Die Komponente verwaltet digitale Repräsentationen realer oder virtueller Objekte als vernetzte Entitäten. Neben aktuellen Eigenschaften lassen sich Beziehungen, räumliche Informationen und semantische Bedeutungen abbilden. Anwendungen können diese Kontextinformationen über eine REST-API schreiben, abfragen und abonnieren.

Die grundlegenden Konzepte sind:

  • Entities repräsentieren ein eindeutig identifizierbares fachliches Objekt.
  • Properties beschreiben Eigenschaften und Messwerte einer Entität.
  • Relationships verknüpfen Entitäten miteinander.
  • JSON-LD-Kontexte ordnen kompakte Begriffe eindeutigen semantischen Bezeichnern zu.
  • Subscriptions benachrichtigen registrierte Empfänger über relevante Änderungen.
  • Batch-Operationen verarbeiten mehrere Entitäten innerhalb eines API-Aufrufs.

Stellio in der UDSP

Stellio bildet in der UDSP den fachlich führenden Dienst für aktuelle NGSI-LD-Kontextdaten. Aufbereitete Daten gelangen beispielsweise über Node-RED in den Broker. Stellio speichert Entitäten, Eigenschaften und Beziehungen und stellt den konsistenten Kontext anschließend für Anwendungen, Schnittstellen und weitere Plattformdienste bereit.

Die veröffentlichten NGSI-LD-Routen führen über APISIX. Das Gateway prüft das Zugriffstoken, den angeforderten API-Scope und die Berechtigung für den im Header NGSILD-Tenant genannten Datenraum. Der Context Hoster stellt die verwendeten JSON-LD-Kontexte unter stabilen URLs bereit.

Innerhalb des Stellio-Stacks persistiert PostgreSQL die fachlichen Daten und Dienstzustände. Kafka verteilt Änderungen zwischen den Stellio-Diensten und bleibt eine interne technische Abhängigkeit. Wird QuantumLeap aktiviert, können Kontextänderungen zusätzlich als Zeitreihen in die mandantenbezogene TimescaleDB übernommen werden.

Technische Abhängigkeiten

Der Stellio-Stack kombiniert Persistenz, internen Ereignistransport und den geschützten Plattformzugang. Optionale Historisierungskomponenten werden getrennt aktiviert.

PostgreSQL
Stackeigene Datenbank · PostgreSQL 16

PostgreSQL

Speichert Entitäten, Beziehungen, Subscriptions und interne Dienstzustände; PostGIS, TimescaleDB und pgcrypto ergänzen benötigte Funktionen.

Komponente öffnen
Interner Ereignisstrom · Confluent 7.9.6

Apache Kafka

Verteilt Kontextänderungen zwischen API-, Such- und Subscription-Diensten des Stellio-Stacks.

APISIX
Gemeinsamer API-Zugang · 3.13.0

APISIX

Veröffentlicht die NGSI-LD-Routen und prüft Token, Scopes und Datenraumkontext.

Komponente öffnen
Keycloak
Gemeinsamer Identitätsdienst · 26.6.3

Keycloak

Stellt die für den geschützten NGSI-LD-Zugang verwendeten Identitäten und API-Scopes bereit.

Komponente öffnen
Optionale Historisierung · 1.0.0

QuantumLeap

Übernimmt ausgewählte Kontextänderungen in die mandantenbezogene Zeitreihendatenbank.

Komponente öffnen
Context Hoster
Optionale Semantik

Context Hoster

Veröffentlicht die von NGSI-LD-Datenmodellen referenzierten JSON-LD-Kontexte unter stabilen URLs.

Komponente öffnen

Interner Ereignisstrom mit Kafka

Kafka ist eine verteilte Plattform für geordnete Ereignisströme. Produzenten schreiben Nachrichten in Topics; Verbraucher lesen sie unabhängig voneinander und halten ihren Fortschritt über Offsets fest. Stellio nutzt diese Entkopplung ausschließlich innerhalb seines eigenen mandantenbezogenen Deployments. Die UDSP stellt weder Topics noch das Kafka-Protokoll als allgemeine Integrationsschnittstelle bereit.

Konfiguration und Deployment

Stellio wird für jeden Mandanten im Inventory aktiviert und erhält einen eigenen Namespace sowie eine eigene PostgreSQL-Datenbank. Konfiguriert werden insbesondere Speichergröße, logisches Backup, Antwortkompression, die stabile Kafka-Cluster-ID sowie die optionalen Dienste QuantumLeap und Context Hoster.

Die verfügbaren Inventory-Felder, Abhängigkeiten und zulässigen Werte sind unter Mandanten konfigurieren: Stellio beschrieben. Die veröffentlichte API wird unter NGSI-LD-Schnittstelle erläutert.

Rollen und Rechte

Für den Zugriff auf die über APISIX veröffentlichten Stellio-Routen verwendet die UDSP die Rollen des Keycloak-Clients api-access:

API-Access-Rolle

dataConsumer

Erhält den Scope api:read und darf NGSI-LD-Entitäten, Abfragen und Subscriptions lesen.

API-Access-Rolle

dataProducer

Erhält api:read und api:write und darf Kontextdaten lesen, anlegen und verändern.

API-Access-Rolle

dataAdmin

Erhält api:read, api:write und api:delete und darf Kontextdaten vollständig verwalten.

Die Rolle allein gewährt noch keinen mandantenübergreifenden Zugriff. Das Token muss zusätzlich den angeforderten Datenraum enthalten. Stellio verwaltet für diesen Plattformzugang keine separaten Benutzerkonten. Das übergreifende Prinzip ist unter Rollen- und Rechtekonzept beschrieben.

Referenzen