Platforma

Federuotas NGSI-LD konteksto sluoksnis su politikos taikymu ir duomenų erdvės jungtimis, adapteriai jau veikiančioms sistemoms ir duomenų modeliai, išlaikantys prasmę visose jose.

Konteksto sluoksnis

Kiekviena prijungta sistema išlaiko savo duomenų bazę. Virš jų sukame NGSI-LD context brokerį, kuris laiko vieną kiekvieno realaus dalyko aprašą: gatvės, transformatorinės, jutiklio, patalpos. Tada jūsų programos užduoda brokeriui vieną klausimą, užuot uždavusios dvylikai sistemų dvylika skirtingų.

NGSI-LD objektas neša savo savybes, savo ryšius ir savo @context. To pakanka, kad užklausa, tokia kaip „kiekvienas temperatūros jutiklis šiame rajone ir pastatas, kuriam jis priklauso", peržengtų sistemų ribas be progai rašyto klijų kodo.

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"]
}
Vienas gatvės žibintas kaip NGSI-LD objektas: būsena, vieta ir ryšys su keliu, prie kurio jis stovi.

Trys būdai programai prisijungti

Tai, kur duomenys gyvena juos gavus, lemia, kiek dubliavimo ir sinchronizavimo neša projektas, todėl kiekvieną programą priskiriame vienam iš trijų tipų dar prieš ką nors statydami.

  • Be būsenos. Programa nelaiko savo duomenų. Ji skaito iš brokerio ir rašo atgal į jį, o brokeris yra vienintelis tiesos šaltinis.
  • Dalinė kopija. Programai reikia dalies objektų savo duomenų bazėje pilno teksto paieškai ar sunkiai analizei, kuriai brokeris nėra sukurtas. Tą dalį laikome sinchronizuotą ir dokumentuojame, kas kopijuojama.
  • Priklauso programai. Programa jau kalba NGSI-LD ir laiko savo duomenis. Brokeris laiko į ją nukreiptą registraciją ir persiunčia atitinkančias užklausas, todėl tiekėjo sistema prisijungia prie platformos nieko nesaugant dukart.

Kaip brokeriai dalijasi

Dėl vieno brokerio visai organizacijai retai susitariama. Skyriai valdo savo duomenis ir yra atsargūs juos perduodami, o tai protinga. Todėl brokeriai registruojasi vienas pas kitą kaip konteksto šaltiniai: užklausa atkeliauja pas vieną brokerį, keliauja toliau pas tą brokerį ar adapterį, kuris laiko tuos objektus, ir grįžta kaip vienas sujungtas atsakymas.

Vandentiekis išlaiko savo duomenų bazę ir savo prieigos taisykles. Miesto skydelis vis tiek rodo vandens duomenis šalia eismo skaičiavimų. Patikriname, kad niekas nebuvo nukopijuota, užuot tuo tikėję: ta pati užklausa, apribota vietoje saugomais objektais, grąžina tik tai, kas priklauso tam brokeriui.

užklausa vienas atsakymas Transportas context broker saugo savo duomenis registruotas kaip konteksto šaltinis Vanduo context broker saugo savo duomenis Energija context broker saugo savo duomenis
Užklausa pasiekia vieną brokerį, o atsako visi trys. Nė vienas duomuo nebuvo nukopijuotas.

Kas ką mato

NGSI-LD sąmoningai palieka prieigos kontrolę už standarto ribų. Mes ją pridedame šliuze prieš brokerį. Kiekviena taisyklė įvardija subjektą, veiksmą, išteklių ir sąlygą: šis partneris gali užklausti šių tipų objektų šioje srityje. Šliuzas tikrina kiekvieną užklausą politikos variklyje, o jei variklio pasiekti nepavyksta, užklausa atmetama, o ne praleidžiama.

Bendram dvyniui svarbu, kaip taisyklė taikoma. Šliuzas nefiltruoja atsakymo po to. Jis perrašo užklausą dar prieš brokeriui ją pamatant, kad užklausa galėtų atitikti tik tuos objektus, į kuriuos kreipėsi turi teisę, kad ir ką kreipėsi būtų parašęs. Partneris, prašantis srities, kurios jam skaityti negalima, gauna leistiną poaibį ir nieko daugiau, o atsakymas lieka įprastas NGSI-LD atsakymas. Nepakeisti klientai už jo dirba toliau.

Tarp organizacijų

Vienoje organizacijoje federacijos tarp brokerių pakanka. Tarp miesto ir jo regiono arba gamyklos ir jos tiekėjo savininkas nori sutarties dar prieš pajudant pirmam baitui. Kiekviena organizacija šalia savo brokerio suka Dataspace Protocol jungtį. Vartotojo jungtis paprašo katalogo, suderina pasiūlymą ir gauna perdavimo tašką; brokerio federacija tada rodo į tą tašką, o ne tiesiai į kitą pusę.

Derybos vyksta vieną kartą santykiui ir trunka kelias sekundes. Po to federuota užklausa per jungtį vienam objektui kainuoja 2 ms daugiau nei paprasta federacija tarp brokerių, o dešimčiai 4 ms, matuojant tarp trijų organizacijų plačiajame tinkle. Ne suverenumas daro federaciją brangią.

Adapteriai ir duomenų priėmimas

Didžioji darbo dalis bet kuriame projekte yra po brokeriu.

  • IoT ir telemetrija: MQTT, LoRaWAN ir OPC UA srautai, normalizuoti į objektus ir atnaujinami matavimams atkeliaujant. Viešojo transporto srautas su maždaug 400 transporto priemonių ir viena žinute per sekundę vienai priemonei yra įprasta apkrova.
  • Erdviniai duomenys: WFS, GeoJSON ir PostGIS sluoksniai, kad objektai išlaikytų tikrą geometriją, o ne koordinačių porą.
  • Jutiklių stebėjimai: OGC SensorThings ir su STA suderinamos paslaugos laiko eilutėms.
  • Registrai ir failai: turto duomenų bazės, CSV eksportai, BIM ir IFC ištraukos, kadastro įrašai.
MQTT LoRaWAN OPC UA SCADA WFS · PostGIS GeoJSON SensorThings STA CSV · IFC BIM Adapteris normalizuoja NGSI-LD objektai, paruošti užklausoms
Kas maitina kontekstą: protokolai vidun, NGSI-LD objektai laukan.

Modeliai, išlaikantys prasmę

Objektas keliauja tarp sistemų tik tada, kai abi juo supranta tą patį. Remiamės paskelbtais Smart Data Models ten, kur jie tinka, ir plečiame juos ten, kur netinka, o kiekvienas plėtinys užrašomas kaip pristatymo dalis. Susidarę JSON-LD kontekstai priklauso jums, versijuojate juos kaip bet kurį kitą artefaktą ir pasiimate su savimi.

Darbą atlieka susitarimas dėl modelio IRI. Kai dvi organizacijos paskelbė tą patį PM2.5 rodmenį skirtingais atributų pavadinimais, kiekvieną susiejusios su bendru modeliu, vartotojas gavo abu po vienu raktu be vertimo kodo kelyje. Atributas, kurio niekas nesusiejo, liko atskirai, ir tai teisingas rezultatas: platforma parodo žodyno spragą, o ne ją paslepia.

Kaip tai veikia

Rinkinys yra atvirojo kodo: Scorpio kaip context brokeris, Apache APISIX ir Open Policy Agent taikymui, Keycloak tapatybei, Eclipse Dataspace Components distribucija kaip jungtis, viskas ant Kubernetes. Tai veikia jūsų klasteryje, valdomame klasteryje jūsų pasirinktame ES regione arba viename serveryje bandomajam projektui. Gaunate diegimą kaip kodą, modelius, adapterius ir vadovą, parašytą tam, kas projekte nedalyvavo. Pakeiskite mus vėliau, ir viskas veiks toliau.

Ko dar nėra

Verčiau išgirskite tai iš mūsų. Federuotos užklausos apima dabartinę partnerio objektų būseną; jų istoriją dar reikia replikuoti, kad ją būtų galima nubraižyti. Rašymas į partnerio dvynį pagal sutartį suprojektuotas, bet dar nepristatytas, todėl šiandien partneris skaito. Esant nuolatinei programinei apkrovai federuotas kelias aptarnauja maždaug ketvirtadalį tiesioginės užklausos pralaidumo, o tai gerokai daugiau, nei reikia skydeliams, ir verta žinoti prieš uždedant viešą API.

Ką paliekame kitiems

Neparduodame dvynių, skydelių ar įrenginių. Vizualizacija tenka tam įrankiui, kurį jūsų komandos ir taip atsidaro rytą, o mes paduodame jam sujungtą kontekstą, iš kurio piešti.

Paklauskite apie savo sistemas