Πλατφόρμα
Ένα ομοσπονδιακό επίπεδο πλαισίου NGSI-LD με επιβολή πολιτικής και connectors χώρου δεδομένων, προσαρμογείς για τα συστήματα που ήδη λειτουργείτε, και μοντέλα δεδομένων που κρατούν το νόημά τους σε όλα.
Το επίπεδο πλαισίου
Κάθε σύστημα που συνδέετε κρατά τη δική του βάση δεδομένων. Από πάνω τους τρέχουμε έναν context broker NGSI-LD που κρατά μία περιγραφή για κάθε πραγματικό πράγμα: έναν δρόμο, έναν υποσταθμό, έναν αισθητήρα, μια αίθουσα. Οι εφαρμογές σας τότε κάνουν στον 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"]
}
Τρεις τρόποι σύνδεσης μιας εφαρμογής
Το πού ζουν τα δεδομένα μόλις φτάσουν καθορίζει πόση επικάλυψη και πόσο συγχρονισμό κουβαλά ένα έργο, γι’ αυτό κατατάσσουμε κάθε εφαρμογή σε έναν από τρεις τύπους πριν χτιστεί οτιδήποτε.
- Χωρίς κατάσταση. Η εφαρμογή δεν κρατά δικά της δεδομένα. Διαβάζει από τον broker και γράφει πίσω σε αυτόν, και ο broker είναι η μοναδική πηγή αλήθειας.
- Μερικό αντίγραφο. Η εφαρμογή χρειάζεται ένα υποσύνολο των οντοτήτων στη δική της βάση, για αναζήτηση πλήρους κειμένου ή βαριά ανάλυση για την οποία δεν είναι φτιαγμένος ο broker. Κρατάμε αυτό το υποσύνολο συγχρονισμένο και καταγράφουμε τι αντιγράφεται.
- Ιδιοκτησία της εφαρμογής. Η εφαρμογή μιλά ήδη NGSI-LD και κρατά τα δεδομένα της. Ο broker κρατά μια καταχώρηση που δείχνει σε αυτήν και προωθεί τα ερωτήματα που ταιριάζουν, οπότε ένα σύστημα προμηθευτή συνδέεται στην πλατφόρμα χωρίς τίποτα να αποθηκεύεται δύο φορές.
Πώς μοιράζονται οι brokers
Ένας broker για ολόκληρο οργανισμό σπάνια γίνεται δεκτός. Τα τμήματα κατέχουν τα δεδομένα τους και είναι προσεκτικά στο να τα παραδώσουν, κάτι λογικό. Έτσι οι brokers καταχωρούνται μεταξύ τους ως πηγές πλαισίου: ένα ερώτημα φτάνει σε έναν broker, ταξιδεύει παραπέρα σε όποιον broker ή προσαρμογέα κρατά αυτές τις οντότητες, και επιστρέφει ως μία ενιαία απάντηση.
Η εταιρεία ύδρευσης κρατά τη βάση της και τους κανόνες πρόσβασής της. Ένα δημοτικό dashboard εξακολουθεί να δείχνει τα δεδομένα νερού δίπλα στις μετρήσεις κυκλοφορίας. Ελέγχουμε ότι τίποτα δεν αντιγράφηκε αντί να το υποθέσουμε: το ίδιο ερώτημα περιορισμένο σε τοπικά αποθηκευμένες οντότητες επιστρέφει μόνο όσα κατέχει αυτός ο broker.
Ποιος βλέπει τι
Το NGSI-LD αφήνει σκόπιμα τον έλεγχο πρόσβασης έξω από το πρότυπο. Εμείς τον προσθέτουμε στην πύλη μπροστά από τον broker. Κάθε κανόνας ονομάζει ένα υποκείμενο, μια ενέργεια, έναν πόρο και μια συνθήκη: αυτός ο εταίρος μπορεί να ρωτά αυτούς τους τύπους οντοτήτων μέσα σε αυτό το εύρος. Η πύλη ελέγχει κάθε αίτημα απέναντι στη μηχανή πολιτικής, και αν η μηχανή δεν είναι προσβάσιμη το αίτημα απορρίπτεται αντί να περάσει.
Αυτό που μετράει για ένα κοινό δίδυμο είναι το πώς επιβάλλεται ένας κανόνας. Η πύλη δεν φιλτράρει την απάντηση εκ των υστέρων. Ξαναγράφει το ερώτημα πριν το δει ο broker, ώστε το ερώτημα να μπορεί να ταιριάξει μόνο με οντότητες που δικαιούται ο καλών, ό,τι κι αν έγραψε. Ένας εταίρος που ζητά εύρος το οποίο δεν επιτρέπεται να διαβάσει παίρνει το επιτρεπόμενο υποσύνολο και τίποτα άλλο, και η απόκριση παραμένει μια συνηθισμένη απόκριση NGSI-LD. Οι αμετάβλητοι πελάτες από πίσω συνεχίζουν να δουλεύουν.
Ανάμεσα σε οργανισμούς
Μέσα σε έναν οργανισμό, η ομοσπονδία μεταξύ brokers αρκεί. Ανάμεσα σε μια πόλη και την περιφέρειά της, ή σε ένα εργοστάσιο και την εταιρεία κοινής ωφέλειας, ο κάτοχος θέλει σύμβαση πριν κινηθεί το πρώτο byte. Κάθε οργανισμός τρέχει έναν connector Dataspace Protocol δίπλα στον broker του. Ο connector του καταναλωτή ζητά τον κατάλογο, διαπραγματεύεται την προσφορά και λαμβάνει ένα σημείο μεταφοράς· η ομοσπονδία του broker δείχνει μετά σε αυτό το σημείο αντί για τον άλλον απευθείας.
Η διαπραγμάτευση γίνεται μία φορά ανά σχέση και παίρνει λίγα δευτερόλεπτα. Μετά από αυτό, ένα ομοσπονδιακό ερώτημα μέσω του connector κοστίζει 2 ms περισσότερο από την απλή ομοσπονδία μεταξύ brokers για μία οντότητα και 4 ms για δέκα, μετρημένο ανάμεσα σε τρεις οργανισμούς πάνω από δίκτυο ευρείας περιοχής. Δεν είναι η κυριαρχία επί των δεδομένων αυτό που κάνει την ομοσπονδία ακριβή.
Προσαρμογείς και εισαγωγή δεδομένων
Το μεγαλύτερο μέρος της δουλειάς σε κάθε έργο βρίσκεται κάτω από τον broker.
- 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 ως connector, όλα πάνω σε Kubernetes. Τρέχει στο δικό σας σύμπλεγμα, σε διαχειριζόμενο σύμπλεγμα σε περιοχή της ΕΕ που θα διαλέξετε, ή σε έναν διακομιστή για πιλότο. Παίρνετε την εγκατάσταση ως κώδικα, τα μοντέλα, τους προσαρμογείς και ένα runbook γραμμένο για κάποιον που δεν ήταν στο έργο. Αντικαταστήστε μας αργότερα και όλα συνεχίζουν να δουλεύουν.
Τι δεν υπάρχει ακόμη
Προτιμούμε να το ακούσετε από εμάς. Τα ομοσπονδιακά ερωτήματα καλύπτουν την τρέχουσα κατάσταση των οντοτήτων ενός εταίρου· το ιστορικό τους πρέπει ακόμη να αναπαραχθεί πριν αποτυπωθεί σε γράφημα. Η εγγραφή στο δίδυμο ενός εταίρου υπό σύμβαση είναι σχεδιασμένη αλλά όχι ακόμη παραδοτέα, οπότε σήμερα ο εταίρος διαβάζει. Υπό συνεχές προγραμματιστικό φορτίο η ομοσπονδιακή διαδρομή εξυπηρετεί περίπου το ένα τέταρτο της απόδοσης ενός άμεσου ερωτήματος, πολύ πάνω από όσα χρειάζονται τα dashboards και χρήσιμο να το ξέρετε πριν βάλετε δημόσιο API από πάνω.
Τι αφήνουμε σε άλλους
Δεν πουλάμε δίδυμα, dashboards ή συσκευές. Η οπτικοποίηση πάει σε όποιο εργαλείο ανοίγουν έτσι κι αλλιώς οι ομάδες σας το πρωί, και εμείς του δίνουμε ένα ενωμένο πλαίσιο για να αντλεί.