Architecture et composants
Architecture de KiloCenter — quatre services (KC-Core, KC-Identity, KC-Gateway, KC-Web) plus l’infrastructure.
Services d'exécution
KiloCenter fonctionne avec quatre services coopératifs, plus des dépendances d'infrastructure :
KC-Core -- Moteur du centre de services MIOTY. Gère BSSCI (protocole de station de base) et SCACI (protocole du centre d'application), traite les données montantes/descendantes et expose une API gRPC interne.
KC-Identity -- Service d'identité et d'organisation. Fournit l'authentification des utilisateurs, la gestion des organisations, la gestion des clés API et l'isolation des locataires.
KC-Gateway -- Point d'entrée de l'API externe. Fournit l'accès gRPC et gRPC-web pour KC-Web et les clients externes. Relaye les requêtes vers KC-Core et KC-Identity.
KC-Web -- Interface opérateur basée sur navigateur pour gérer les stations de base, les terminaux et surveiller le trafic. Servie par nginx en mode conteneur.
Modules de bibliothèque
Ces modules sont compilés dans les services d'exécution ci-dessus et ne sont pas déployés comme des conteneurs séparés :
KC-DB -- Module de persistance utilisé par KC-Core et KC-Identity. Contient les modèles de données, les interfaces de dépôt et les migrations PostgreSQL.
KC-MQTT -- Module d'intégration MQTT utilisé par KC-Core. Publie les données montantes et les événements des appareils vers des topics MQTT.
Dépendances d'infrastructure
Toutes les éditions nécessitent :
PostgreSQL -- stockage de données principal pour les messages, l’état des terminaux et la configuration
Redis -- mise en cache et stockage des sessions
Mosquitto -- courtier MQTT pour la diffusion de données en temps réel vers des consommateurs externes
Arborescence des composants
Chemin des données
Les terminaux MIOTY transmettent des données par voie radio.
Les stations de base reçoivent des trames radio et se connectent à KC-Core via BSSCI (TCP avec TLS sur le port 5000).
KC-Core valide les trames du protocole, gère les sessions et persiste les messages via KC-DB.
KC-Gateway expose l'API gRPC-web sur le port 9090 et relaie les requêtes vers KC-Core.
KC-Web se connecte à KC-Gateway pour tous les flux de travail de l'opérateur (mode conteneur : nginx sur le port 80 relaie gRPC-web vers KC-Gateway).
Les systèmes externes consomment les données via gRPC (par l'intermédiaire de KC-Gateway) ou MQTT (via Mosquitto).
Ports des services
KC-Core (interne)
50051
gRPC
API interne (KC-Gateway uniquement)
KC-Core (santé)
8086
HTTP
Santé et métriques Prometheus
KC-Core (BSSCI)
5000
TCP/TLS
Entrée du protocole de station de base
KC-Core (SCACI)
5001
TCP/TLS
Protocole du centre d'application
KC-Identity (gRPC)
50052
gRPC
Interne uniquement (KC-Core/Gateway)
KC-Identity (santé)
8088
HTTP
Santé du service d'identité
KC-Gateway
9090
gRPC-web
Point d'entrée de l'API externe
KC-Gateway (santé)
8087
HTTP
Point de terminaison de santé de la passerelle
KC-Web (conteneur)
80
HTTP
nginx — sert l'application SPA, relaie gRPC
KC-Web (développement à partir des sources)
5173
HTTP
serveur de développement Vite
PostgreSQL
5433
TCP
Base de données (mappage de l'hôte Docker)
Redis
6379
TCP
Cache
Mosquitto
1883
TCP
Broker MQTT
Modes de déploiement locaux
Mode conteneur (recommandé) :
docker compose up --build -dexécute tous les services dans des conteneurs. KC-Web est servi par nginx àhttp://localhost/. Aucune chaîne d’outils hôte n’est requise au-delà de Docker.Mode de développement à partir des sources : Docker pour les dépendances d'infrastructure (postgres, redis, mosquitto) ; KC-Core, KC-Gateway et KC-Web sont compilés et exécutés à partir des sources. KC-Web disponible à
http://localhost:5173.
Mis à jour