Platform

Een gefedereerde NGSI-LD-contextlaag met beleidshandhaving en dataruimte-connectoren, adapters voor de systemen die u al draait, en datamodellen die hun betekenis in al die systemen behouden.

De contextlaag

Elk systeem dat u aansluit houdt zijn eigen database. Daarboven draaien we een NGSI-LD context broker die één beschrijving van elk werkelijk ding houdt: een straat, een onderstation, een sensor, een ruimte. Uw applicaties stellen de broker dan één vraag in plaats van twaalf systemen twaalf verschillende vragen.

Een NGSI-LD-entiteit draagt haar eigenschappen, haar relaties en haar @context. Dat is genoeg om een query als “elke temperatuursensor in deze wijk en het gebouw waar hij bij hoort” systeemgrenzen te laten passeren zonder lijmcode die voor de gelegenheid is geschreven.

GET /ngsi-ld/v1/entities/urn:ngsi-ld:Streetlight:BB-1042
{
  "id": "urn:ngsi-ld:Streetlight:BB-1042",
  "type": "Streetlight",
  "powerState": { "type": "Property", "value": "off",
                    "observedAt": "2026-08-30T19:04:00Z" },
  "location": { "type": "GeoProperty",
                 "value": { "type": "Point", "coordinates": [19.146, 48.736] } },
  "refRoadSegment": { "type": "Relationship",
                       "object": "urn:ngsi-ld:RoadSegment:BB-Nam-SNP" },
  "@context": ["https://smartdatamodels.org/context.jsonld"]
}
Eén straatlantaarn als NGSI-LD-entiteit: een toestand, een locatie, een relatie met de weg waaraan hij staat.

Drie manieren waarop een applicatie aansluit

Waar de data woont zodra ze is aangekomen bepaalt hoeveel duplicatie en synchronisatie een project meedraagt, dus we delen elke applicatie in bij een van drie types voordat er iets gebouwd wordt.

  • Stateless. De applicatie houdt geen eigen data. Ze leest van de broker en schrijft ernaar terug, en de broker is de enige bron van waarheid.
  • Gedeeltelijke kopie. De applicatie heeft een deelverzameling entiteiten in haar eigen database nodig, voor volledig-tekst zoeken of zware analyse waarvoor de broker niet is gebouwd. We houden die deelverzameling in sync en documenteren wat er gekopieerd wordt.
  • In eigendom van de applicatie. De applicatie spreekt al NGSI-LD en houdt haar data. De broker houdt een registratie die ernaar wijst en stuurt passende queries door, zodat een leverancierssysteem op het platform aansluit zonder dat iets tweemaal wordt opgeslagen.

Hoe brokers delen

Eén broker voor een hele organisatie komt er zelden door. Afdelingen zijn eigenaar van hun data en zijn voorzichtig met afstaan, wat redelijk is. Dus registreren brokers bij elkaar als contextbron: een query komt bij één broker binnen, reist door naar de broker of adapter die de entiteiten houdt, en komt terug als één samengevoegd antwoord.

Het waterbedrijf houdt zijn database en zijn toegangsregels. Een stadsdashboard toont nog steeds waterdata naast verkeerstellingen. We controleren dat er niets gekopieerd is in plaats van dat aan te nemen: dezelfde query beperkt tot lokaal opgeslagen entiteiten geeft alleen terug wat die broker zelf bezit.

query één antwoord Verkeer context broker houdt zijn eigen data geregistreerd als contextbron Water context broker houdt zijn eigen data Energie context broker houdt zijn eigen data
Een query bereikt één broker en wordt door alle drie beantwoord. Er is geen data gekopieerd.

Wie ziet wat

NGSI-LD laat toegangscontrole met opzet buiten de standaard. Wij voegen die toe in de gateway vóór de broker. Elke regel benoemt een subject, een actie, een resource en een voorwaarde: deze partner mag deze entiteitstypen binnen deze scope bevragen. De gateway toetst elk verzoek aan de policy-engine, en als de engine niet bereikbaar is wordt het verzoek geweigerd in plaats van doorgelaten.

Wat telt voor een gedeelde twin is hoe een regel wordt afgedwongen. De gateway filtert het antwoord niet achteraf. Ze herschrijft de query voordat de broker die ziet, zodat de query alleen kan matchen op entiteiten waar de aanroeper recht op heeft, wat de aanroeper ook schreef. Een partner die een scope vraagt die hij niet mag lezen krijgt de toegestane deelverzameling en niets anders, en het antwoord is nog steeds een gewoon NGSI-LD-antwoord. Ongewijzigde clients erachter blijven werken.

Tussen organisaties

Binnen één organisatie is federatie tussen brokers genoeg. Tussen een stad en haar regio, of een fabriek en haar nutsbedrijf, wil de eigenaar een contract voordat de eerste byte beweegt. Elke organisatie draait een Dataspace Protocol-connector naast haar broker. De connector van de afnemer vraagt de catalogus op, onderhandelt het aanbod en krijgt een transfer-endpoint; de federatie van de broker wijst daarna naar dat endpoint in plaats van rechtstreeks naar de tegenpartij.

De onderhandeling gebeurt één keer per relatie en duurt een paar seconden. Daarna kost een gefedereerde query via de connector 2 ms meer dan gewone federatie tussen brokers voor één entiteit en 4 ms voor tien, gemeten tussen drie organisaties over een wide area-netwerk. Soevereiniteit is niet wat federatie duur maakt.

Adapters en ingestie

Het meeste werk in elk project zit onder de broker.

  • IoT en telemetrie: MQTT-, LoRaWAN- en OPC UA-feeds, genormaliseerd naar entiteiten en bijgewerkt zodra metingen binnenkomen. Een openbaarvervoerfeed van ongeveer 400 voertuigen met één bericht per voertuig per seconde is een normale belasting.
  • Geo-informatie: WFS-, GeoJSON- en PostGIS-lagen, zodat entiteiten echte geometrie houden in plaats van een coördinatenpaar.
  • Sensorwaarnemingen: OGC SensorThings en STA-compatibele diensten voor tijdreeksen.
  • Registers en bestanden: activadatabases, CSV-exports, BIM- en IFC-uittreksels, kadastrale gegevens.
MQTT LoRaWAN OPC UA SCADA WFS · PostGIS GeoJSON SensorThings STA CSV · IFC BIM Adapter normaliseert NGSI-LD entiteiten, bevraagbaar
Wat de context voedt: protocollen erin, NGSI-LD-entiteiten eruit.

Modellen die hun betekenis houden

Een entiteit reist alleen tussen systemen als beide er hetzelfde mee bedoelen. We bouwen op de gepubliceerde Smart Data Models waar die passen en breiden ze uit waar dat niet zo is, en elke uitbreiding wordt vastgelegd als onderdeel van de oplevering. De resulterende JSON-LD-contexten zijn van u, u versiebeheert ze als elk ander artefact en u neemt ze mee.

Overeenstemming over een model-IRI is wat het werk doet. Toen twee organisaties dezelfde PM2.5-meting onder verschillende attribuutnamen publiceerden, elk gemapt op het gedeelde model, ontving een afnemer beide onder één sleutel zonder vertaalcode onderweg. Een attribuut dat niemand had gemapt bleef apart staan, en dat is de juiste uitkomst: het platform toont een gat in de woordenschat in plaats van het te verbergen.

Het draaien

De stack is open source: Scorpio als context broker, Apache APISIX en Open Policy Agent voor de handhaving, Keycloak voor identiteit, een Eclipse Dataspace Components-distributie als connector, alles op Kubernetes. Het draait op uw cluster, op een beheerd cluster in een EU-regio die u kiest, of op één server voor een pilot. U krijgt de uitrol als code, de modellen, de adapters en een runbook geschreven voor iemand die niet in het project zat. Vervang ons later en het blijft allemaal draaien.

Wat er nog niet is

We horen het u liever zelf zeggen. Gefedereerde queries dekken de huidige toestand van de entiteiten van een partner; hun historie moet nog gerepliceerd worden voordat die uitgetekend kan worden. Schrijven in de twin van een partner onder contract is ontworpen en nog niet opgeleverd, dus vandaag leest een partner. Onder aanhoudende programmatische belasting bedient het gefedereerde pad ongeveer een kwart van de doorvoer van een directe query, wat ver boven ligt wat dashboards nodig hebben en de moeite waard is te weten voordat u er een publieke API op zet.

Wat we aan anderen laten

Wij verkopen geen twins, dashboards of apparaten. Visualisatie gaat naar het gereedschap dat uw teams toch al ’s ochtends openen, en wij geven het een samengevoegde context om uit te tekenen.

Vraag naar uw systemen