Mesaj Aracısı (WAMP)
WAMP mesaj aracısı, IronFlock’un iletişim omurgasıdır. Her bileşen — kenar cihazlar, merkezi hizmetler, sanal cihazlar, AI sistemi ve web UI — aracıya bağlanır ve onun aracılığıyla iletişim kurar.
Neden WAMP
WAMP (Web Application Messaging Protocol), tek bir protokolde iki iletişim modelini birleştirir:
- Yayınla/Abone Ol (pub/sub) — Bir cihaz sensör verilerini bir konuya yayınlar; gösterge panelleri, FleetDB Hizmeti ve alarm değerlendiricileri abone olur ve gerçek zamanlı olarak alır
- Uzak Prosedür Çağrıları (RPC) — AI hizmeti bir kenar cihazdaki işlevi çağırır; arka uç bir OTA güncellemesini tetikler; bir operatör bir makineye komut gönderir
Bu çift model, IronFlock’un gerçek zamanlı veri akışı ve istek-yanıt işlemleri için ayrı sistemlere ihtiyaç duymaması anlamına gelir. Tek protokol, tek bağlantı, her iki model de mevcut.
Bileşenler Nasıl Bağlanır
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Edge │ │ Virtual │ │ Web UI │
│ Device │ │ Device │ │ (Browser) │
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘
│ WSS │ WSS │ WSS
└────────────────────┼────────────────────┘
│
┌───────┴───────┐
│ WAMP Broker │
└───────┬───────┘
│
┌────────────────────┼────────────────────┐
│ WSS │ WSS │ WSS
┌──────┴───────┐ ┌──────┴───────┐ ┌──────┴───────┐
│ Backend │ │ FleetDB │ │ AI │
│ Service │ │ Service │ │ Service │
└──────────────┘ └──────────────┘ └──────────────┘Tüm bağlantılar WSS (WebSocket Secure) kullanır — TLS üzerinden şifreli, kalıcı, çift yönlü bağlantılar.
Alanlar Aracılığıyla Proje İzolasyonu
Aracı, WAMP alanları kullanarak projeler arasında katı izolasyon uygular:
- Her proje-uygulama kombinasyonu kendi alanını alır — tamamen izole edilmiş bir mesajlaşma ad alanı
- Bir alanda yayınlanan mesajlar diğer tüm alanlar için görünmezdir
- A Projesindeki cihazlar, B Projesindeki cihazları göremez veya onlarla etkileşime giremez
- İki farklı projede kurulu aynı uygulama bile ayrı alanlarda çalışır
Kimlik Doğrulama
Aracıya her bağlantı kimlik doğrulama gerektirir:
| Bileşen | Kimlik Doğrulama Yöntemi |
|---|---|
| Kenar cihazlar | Cihaz başına gizli anahtarlarla WAMP-CRA (Meydan Okuma-Yanıt) |
| Backend hizmetleri | Sistem kimlik bilgileriyle WAMP-CRA |
| Web UI istemcileri | OIDC tabanlı oturum belirteçleri |
| AI hizmeti | Kapsamlı erişimle sistem kimlik bilgileri |
Yetkisiz istemciler bir alana katılamazlar, konulara abone olamazlar veya prosedürleri çağıramazlar.
Gerçek Zamanlı Veri Akışı
Bir sensör okumasının bir cihazdan gösterge paneline nasıl aktığı:
- Cihaz uygulaması bir sensör değeri okur ve proje alanındaki bir WAMP konusuna yayınlar
- WAMP aracısı mesajı o alandaki tüm abonelere yönlendirir
- FleetDB Hizmeti mesajı alır, TimescaleDB’ye yazar ve alarm kurallarını değerlendirir
- Web UI aynı mesajı alır ve gösterge paneli grafiğini gerçek zamanlı olarak günceller
Bu akışın tamamı saniyenin altında gecikmeyle gerçekleşir — gösterge paneli, veriler gelir gelmez güncellenir.
Cihaz Kontrolü için RPC
Aracı ayrıca kenar cihazların doğrudan kontrolünü de sağlar:
- Operatör web UI’da “Uygulamayı Yeniden Başlat” düğmesine tıklar
- Backend, aracı üzerinden cihaz ajanında bir RPC çağırır
- Cihaz ajanı çağrıyı alır, konteyneri yeniden başlatır ve sonucu döndürür
- Web UI onayı görüntüler
Aynı mekanizma fiziksel AI’ı güçlendirir — AI asistanı bir cihazdaki işlevi çağırdığında, bu aracı üzerinden gerçekleştirilen bir RPC çağrısıdır.
Ölçeklenebilirlik
WAMP aracısı, üretim dağıtımlarında bir küme olarak çalışır:
- Birden fazla aracı düğümü eş zamanlı bağlantıları yönetir
- Yük düğümler arasında dağıtılır
- Cihazlar, arıza durumunda otomatik yeniden bağlanmayla kalıcı bağlantıları sürdürür
- Aracı, düşük gecikmeli mesaj teslimiyle binlerce eş zamanlı cihaz bağlantısını yönetir
Yerinde Dağıtım
Yerinde dağıtımlarda, WAMP aracısı diğer merkezi hizmetlerin yanı sıra kendi altyapınızda çalışır. Protokol ve izolasyon garantileri aynı kalır — tek fark ağ yoludur (internet yerine yerel).
Ayrıntılar için Yerinde Dağıtım bölümüne bakın.