For the complete documentation index, see llms.txt. This page is also available as Markdown.

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

  1. Les terminaux MIOTY transmettent des données par voie radio.

  2. Les stations de base reçoivent des trames radio et se connectent à KC-Core via BSSCI (TCP avec TLS sur le port 5000).

  3. KC-Core valide les trames du protocole, gère les sessions et persiste les messages via KC-DB.

  4. KC-Gateway expose l'API gRPC-web sur le port 9090 et relaie les requêtes vers KC-Core.

  5. 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).

  6. Les systèmes externes consomment les données via gRPC (par l'intermédiaire de KC-Gateway) ou MQTT (via Mosquitto).

Ports des services

Service
Port
Protocole
Description

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 -d exé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