Платформа
Федеративен NGSI-LD контекстен слой с прилагане на политики и конектори за пространства на данни, адаптери за системите, които вече използвате, и модели на данни, които запазват значението си във всички тях.
Контекстният слой
Всяка свързана система си запазва собствената база данни. Над тях работи NGSI-LD context broker, който държи едно описание на всяко реално нещо: улица, трафопост, сензор, помещение. Приложенията ви после задават на брокера един въпрос, вместо да задават на дванадесет системи дванадесет различни.
NGSI-LD обектът носи своите свойства, своите връзки и своя @context. Това стига, за да мине заявка като „всеки температурен сензор в този район и сградата, към която принадлежи“ през границите на системите без свързващ код, писан за случая.
{
"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"]
}
Три начина, по които приложението се свързва
Къде живеят данните, след като пристигнат, решава колко дублиране и синхронизация носи проектът, затова подреждаме всяко приложение в един от три типа, преди да се изгради каквото и да било.
- Без собствено състояние. Приложението не пази свои данни. Чете от брокера и записва обратно в него, а брокерът е единственият източник на истина.
- Частично копие. Приложението има нужда от подмножество обекти в собствената си база данни, за пълнотекстово търсене или тежък анализ, за какъвто брокерът не е строен. Поддържаме това подмножество синхронизирано и документираме какво се копира.
- Собственост на приложението. Приложението вече говори NGSI-LD и си държи данните. Брокерът държи регистрация, която сочи към него, и препраща съвпадащите заявки, така че система на доставчик се включва в платформата, без нищо да се съхранява два пъти.
Как брокерите споделят
Един брокер за цяла организация рядко се приема. Отделите притежават данните си и внимават с предаването им, което е разумно. Затова брокерите се регистрират един при друг като източници на контекст: заявката пристига при един брокер, пътува нататък до онзи брокер или адаптер, който държи тези обекти, и се връща като един обединен отговор.
ВиК дружеството си запазва базата данни и правилата за достъп. Градското табло пак показва данните за водата до броенето на трафика. Проверяваме, че нищо не е копирано, вместо да го приемем: същата заявка, ограничена до локално съхранените обекти, връща само това, което брокерът притежава.
Кой какво вижда
NGSI-LD нарочно оставя контрола на достъпа извън стандарта. Ние го добавяме на шлюза пред брокера. Всяко правило назовава субект, действие, ресурс и условие: този партньор може да прави заявки за тези типове обекти в този обхват. Шлюзът проверява всяка заявка спрямо политическия енджин, а ако енджинът е недостъпен, заявката се отказва, вместо да бъде пропусната.
Важното за споделен двойник е как се прилага правилото. Шлюзът не филтрира отговора след това. Той пренаписва заявката, преди брокерът да я види, така че тя да може да съвпадне само с обекти, на които повикващият има право, каквото и да е написал. Партньор, който поиска обхват, който няма право да чете, получава разрешеното подмножество и нищо повече, а отговорът си остава обикновен NGSI-LD отговор. Непроменените клиенти зад него продължават да работят.
Между организациите
Вътре в една организация федерацията между брокери стига. Между град и неговия регион, или завод и неговото дружество, собственикът иска договор, преди да тръгне първият байт. Всяка организация пуска конектор по Dataspace Protocol до своя брокер. Конекторът на потребителя изисква каталога, договаря офертата и получава крайна точка за пренос; федерацията на брокера после сочи към тази крайна точка, а не директно към отсрещната страна.
Договарянето се случва веднъж на отношение и отнема няколко секунди. След това федеративната заявка през конектора струва 2 ms повече от обикновената федерация между брокери за един обект и 4 ms за десет, измерено между три организации през широкообхватна мрежа. Не суверенитетът е това, което оскъпява федерацията.
Адаптери и приемане на данни
Повечето работа във всеки проект е под брокера.
- IoT и телеметрия: MQTT, LoRaWAN и OPC UA потоци, нормализирани в обекти и обновявани, докато идват измерванията. Поток от градския транспорт с около 400 превозни средства, по едно съобщение на превозно средство в секунда, е нормално натоварване.
- Геопространствени данни: WFS, GeoJSON и PostGIS слоеве, така че обектите да запазят истинска геометрия, а не двойка координати.
- Сензорни наблюдения: OGC SensorThings и съвместими със STA услуги за времеви редове.
- Регистри и файлове: бази данни за активи, CSV експорти, BIM и IFC извадки, кадастрални записи.
Модели, които запазват значението си
Един обект пътува между системите само ако и двете разбират едно и също под него. Стъпваме върху публикуваните Smart Data Models, където пасват, и ги разширяваме, където не пасват, а всяко разширение се записва като част от доставката. Получените JSON-LD контексти са ваши, версионирате ги като всеки друг артефакт и ги взимате със себе си.
Съгласието по IRI на модела е това, което върши работата. Когато две организации публикуваха едно и също измерване на PM2.5 под различни имена на атрибути, всяко съпоставено със споделения модел, потребителят получи и двете под един ключ, без код за превод по пътя. Атрибут, който никой не беше съпоставил, остана отделно, което е правилният резултат: платформата показва пропуск в речника, вместо да го скрие.
Как се пуска
Стекът е с отворен код: Scorpio като context broker, Apache APISIX и Open Policy Agent за прилагането, Keycloak за идентичност, дистрибуция на Eclipse Dataspace Components като конектор, всичко върху Kubernetes. Работи на вашия клъстер, на управляван клъстер в избран от вас регион в ЕС или на един сървър за пилот. Получавате внедряването като код, моделите, адаптерите и наръчник, написан за някой, който не е бил в проекта. Сменете ни по-късно и всичко продължава да работи.
Какво още го няма
Предпочитаме да го чуете от нас. Федеративните заявки покриват текущото състояние на обектите на партньора; тяхната история още трябва да се реплицира, преди да се начертае. Записът в двойника на партньор по договор е проектиран, но още не е доставен, така че днес партньорът чете. При постоянно програмно натоварване федеративният път обслужва около една четвърт от пропускателната способност на директната заявка, което е далеч над нуждите на таблата и си струва да се знае, преди да сложите публичен API отгоре.
Какво оставяме на другите
Не продаваме двойници, табла или устройства. Визуализацията отива при инструмента, който екипите ви така или иначе отварят сутрин, а ние му подаваме съединен контекст, от който да рисува.