Vue d'ensemble de l'architecture
Un package parle directement au Server, pas via son Edge. PackageHost ouvre sa propre connexion SignalR vers OrbitMeshHub, avec une URI de Server et un AccessKey que l'Edge lui transmet comme arguments de lancement. L'Edge n'est jamais sur le chemin des messages ou de la télémétrie. Edge↔Package est une relation locale : démarrer, arrêter, surveiller le process OS. Edge↔Server (EdgeHub) est une connexion séparée pour l'enregistrement et le contrôle à distance.
- Server détient le seul état persistant (
appsettings.json) : Edges connus, identifiants, assignations de packages, et le dépôt de packages. - Edge est un hôte léger. Se connecte au Server, télécharge ses packages assignés, lance chacun comme son propre process OS. Il ne relaye pas leur trafic.
- Package est votre code - une app console utilisant le SDK (voir Créer un package) - lancé par un Edge mais connecté directement au Server.
- Console est une SPA statique hébergée par le Server, qui parle au Server via les mêmes hubs/API que n'importe quel autre client.
Quatre hubs SignalR
| Hub | Qui se connecte | Rôle |
|---|---|---|
EdgeHub | Les process Edge | Enregistrement, push de la liste de packages, contrôle à distance |
OrbitMeshHub | Les packages eux-mêmes | Messages, telemetry items, settings, descripteurs de package |
ControlHub | La Console | État live des edges/packages, logs, actions de contrôle à distance |
ConsumerHub | Consommateurs externes en lecture seule | S'abonner aux messages/telemetry sans s'enregistrer comme un package |
Chaque type de connexion ne porte que ce dont il a besoin. La Console n'a jamais besoin de parler le protocole des packages juste pour observer ce qui se passe.