Skip to Content
ArchitekturaBroker wiadomości

Broker wiadomości (WAMP)

Broker wiadomości WAMP to szkielet komunikacyjny IronFlock. Każdy komponent — urządzenia brzegowe, usługi centralne, urządzenia wirtualne, system AI i interfejs webowy — łączy się z brokerem i komunikuje przez niego.

Dlaczego WAMP

WAMP (Web Application Messaging Protocol) łączy dwa wzorce komunikacji w jednym protokole:

  • Publish/Subscribe (pub/sub) — Urządzenie publikuje dane czujnika do tematu; panele, FleetDB Service i oceniające alarmy subskrybują i otrzymują dane w czasie rzeczywistym
  • Zdalne wywoływanie procedur (RPC) — Usługa AI wywołuje funkcję na urządzeniu brzegowym; backend wyzwala aktualizację OTA; operator wysyła polecenie do maszyny

Ten podwójny wzorzec oznacza, że IronFlock nie potrzebuje osobnych systemów do strumieniowania danych w czasie rzeczywistym i operacji żądanie-odpowiedź. Jeden protokół, jedno połączenie, oba wzorce.

Jak łączą się komponenty

┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ Urządzenie │ │ Urządzenie │ │ Interfejs │ │ brzegowe │ │ wirtualne │ │ Web │ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │ WSS │ WSS │ WSS └────────────────────┼────────────────────┘ ┌───────┴───────┐ │ Broker WAMP │ └───────┬───────┘ ┌────────────────────┼────────────────────┐ │ WSS │ WSS │ WSS ┌──────┴───────┐ ┌──────┴───────┐ ┌──────┴───────┐ │ Backend │ │ FleetDB │ │ Usługa │ │ Service │ │ Service │ │ AI │ └──────────────┘ └──────────────┘ └──────────────┘

Wszystkie połączenia używają WSS (WebSocket Secure) — szyfrowanych, trwałych, dwukierunkowych połączeń przez TLS.

Izolacja projektów przez realmy

Broker wymusza ścisłą izolację między projektami przy użyciu realmów WAMP:

  • Każda kombinacja projekt-aplikacja ma własny realm — całkowicie izolowaną przestrzeń nazw komunikacyjnych
  • Wiadomości opublikowane w jednym realmie są niewidoczne dla wszystkich innych realmów
  • Urządzenia w Projekcie A nie mogą widzieć ani wchodzić w interakcję z urządzeniami w Projekcie B

Uwierzytelnianie

Każde połączenie z brokerem wymaga uwierzytelnienia:

KomponentMetoda uwierzytelniania
Urządzenia brzegoweWAMP-CRA (Challenge-Response) z sekretami per-urządzenie
Usługi backendoweWAMP-CRA z poświadczeniami systemowymi
Klienci Web UITokeny sesji oparte na OIDC
Usługa AIPoświadczenia systemowe z ograniczonym zakresem

Przepływ danych w czasie rzeczywistym

Oto jak odczyt czujnika przepływa z urządzenia do panelu:

  1. Aplikacja urządzenia odczytuje wartość czujnika i publikuje ją do tematu WAMP w realmie projektu
  2. Broker WAMP kieruje wiadomość do wszystkich subskrybentów w tym realmie
  3. FleetDB Service odbiera wiadomość, zapisuje ją do TimescaleDB i ocenia reguły alarmów
  4. Web UI odbiera tę samą wiadomość i aktualizuje wykres panelu w czasie rzeczywistym

Cały ten przepływ zachodzi z opóźnieniem poniżej sekundy — panel aktualizuje się tak szybko jak napływają dane.

RPC do sterowania urządzeniami

Broker umożliwia również bezpośrednie sterowanie urządzeniami brzegowymi:

  1. Operator klika “Restartuj aplikację” w interfejsie webowym
  2. Backend wywołuje RPC na agencie urządzenia przez broker
  3. Agent urządzenia odbiera wywołanie, restartuje kontener i zwraca wynik
  4. Web UI wyświetla potwierdzenie

Ten sam mechanizm zasila Physical AI — gdy asystent AI wywołuje funkcję na urządzeniu, jest to wywołanie RPC przez broker.

Skalowalność

Broker WAMP działa jako klaster w wdrożeniach produkcyjnych:

  • Wiele węzłów brokera obsługuje równoczesne połączenia
  • Obciążenie jest dystrybuowane między węzłami
  • Urządzenia utrzymują trwałe połączenia z automatycznym ponownym połączeniem w przypadku awarii
  • Broker obsługuje tysiące równoczesnych połączeń urządzeń z dostarczaniem wiadomości przy niskim opóźnieniu
Last updated on