Architektura
IronFlock to system rozproszony składający się z dwóch warstw: autonomicznych urządzeń brzegowych, które uruchamiają aplikacje w miejscu pracy, oraz centralnych usług zapewniających przechowywanie danych na poziomie całej floty, panele, AI i koordynację. Broker wiadomości w czasie rzeczywistym łączy wszystkie elementy.
Nie jest to czysta platforma brzegowa ani czysta platforma chmurowa. To obie naraz — architektura została zaprojektowana tak, aby każda warstwa robiła to, w czym jest najlepsza.
Jak system jest zorganizowany
┌─────────────────────────────────────────────────────────┐ ┌──────────┐
│ Usługi centralne │ │ Urządze- │
│ │ │ nie │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────┐ │ │ wirtualne│
│ │ FleetDB │ │ Backend │ │ Usługa │ │ Web │ │ │┌────────┐│
│ │ Cluster │ │ Service │ │ AI │ │ UI │ │ ││ Własna ││
│ │(Timescale│ │ │ │ │ │ │ │ ││ Usługa ││
│ │ DB) │ │ │ │ │ │ │ │ │└────────┘│
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ └───┬────┘ │ │ Agent │
│ │ │ │ │ │ └────┬─────┘
│ └─────────────┴──────┬──────┴────────────┘ │ │
│ │ │ │
│ ┌───────┴───────┐ │ │
│ │ Broker WAMP ├────────────────────────────┘
│ │ (wiadomości) │ │
│ └───────┬───────┘ │
│ │ │
└────────────────────────────┼────────────────────────────┘
│
┌──────────────┼─────────────┐
│ │ │
┌───────┴──┐ ┌───────┴──┐ ┌──────┴───┐
│ Urządze- │ │ Urządze- │ │ Urządze- │
│ nie 1 │ │ nie 2 │ │ nie 3 │
│┌────────┐│ │┌────────┐│ │┌────────┐│
││ Apli- ││ ││ Apli- ││ ││ Apli- ││
││kacje ││ ││kacje ││ ││kacje ││
││(Docker)││ ││(Docker)││ ││(Docker)││
│└────────┘│ │└────────┘│ │└────────┘│
│ Agent │ │ Agent │ │ Agent │
└──────────┘ └──────────┘ └──────────┘Trzy warstwy
1. Urządzenia brzegowe — autonomiczne węzły wykonawcze
Urządzenia brzegowe to główne węzły wykonawcze IronFlock. Każde urządzenie uruchamia lekki agent i jedną lub więcej konteneryzowanych aplikacji (Docker). Urządzenia są autonomiczne: kontynuują działanie nawet po odłączeniu od usług centralnych i automatycznie ponownie łączą się po przywróceniu sieci.
Urządzeniami brzegowymi może być dowolny sprzęt z systemem Linux — Raspberry Pi, komputery przemysłowe, NVIDIA Jetson, bramy x86 lub niestandardowe płytki ARM.
Co działa na urządzeniach brzegowych:
- Agent IronFlock — zarządza cyklem życia urządzenia, obsługuje aktualizacje OTA, uruchamia kontenery i utrzymuje połączenie z brokerem wiadomości
- Twoje aplikacje — wdrożone jako kontenery Docker w dowolnym języku programowania. Te aplikacje zbierają dane ze sterowników PLC i czujników, wykonują logikę sterowania, obsługują lokalne interfejsy HMI, uruchamiają modele AI lub robią cokolwiek, co może zrobić aplikacja Linux
Urządzenia brzegowe domyślnie inicjują wszystkie połączenia wychodzące — nie trzeba otwierać portów przychodzących. Jednak porty urządzenia mogą być selektywnie otwierane w razie potrzeby.
2. Usługi centralne — dane, UI i AI na poziomie floty
Warstwa centralna zapewnia możliwości wymagające widoku całej floty lub trwałej infrastruktury. Każda usługa centralna jest niezależnie skalowalna:
- FleetDB — Klaster baz danych PostgreSQL/TimescaleDB przechowujący wszystkie dane telemetryczne zebrane z urządzeń. Każdy projekt otrzymuje własną izolowaną instancję bazy danych.
- Backend Service — Zarządza urządzeniami, projektami, aplikacjami, kontami użytkowników, wydaniami i wszystkimi operacjami na poziomie floty.
- FleetDB Service — Przetwarza przychodzące strumienie danych z urządzeń, obsługuje transformacje danych, dostarcza dane paneli w czasie rzeczywistym i zarządza oceną alarmów.
- Usługa AI — Orkiestruje konwersacje agentów AI, dynamicznie dodając i usuwając wyspecjalizowanych agentów w miarę rozwoju rozmowy.
- Web UI — Przeglądarkowy panel sterowania, gdzie operatorzy zarządzają flotą, przeglądają panele, konfigurują alarmy, tworzą aplikacje i wchodzą w interakcje z asystentem AI.
- Rejestr kontenerów — Przechowuje obrazy Docker dla wszystkich aplikacji, umożliwiając wdrożenie OTA na dowolnym urządzeniu w flocie.
3. Urządzenia wirtualne — niestandardowe węzły obliczeniowe
Oprócz fizycznych urządzeń brzegowych, IronFlock umożliwia provisioning urządzeń wirtualnych — chmurowych węzłów obliczeniowych, które dołączają do projektu obok fizycznej floty. Urządzenie wirtualne uruchamia tego samego agenta IronFlock co urządzenie fizyczne i może uruchamiać dowolną konteneryzowaną aplikację.
Typowe zastosowania urządzeń wirtualnych:
- Uruchamianie centralnych usług floty takich jak Grafana, Node-RED, Netdata lub Jupyter
- Hostowanie potoków przetwarzania danych agregujących dane z wielu urządzeń fizycznych
- Uruchamianie usług wnioskowania AI zbyt wymagających obliczeniowo dla sprzętu brzegowego
- Działanie jako mosty protokołów łączące systemy zewnętrzne (SAP, ERP, interfejsy API chmury) z projektem IronFlock
Broker wiadomości — spoiwo systemu
Wszystkie komponenty IronFlock komunikują się przez centralny broker wiadomości WAMP (Web Application Messaging Protocol). Broker zapewnia:
- Komunikację pub/sub w czasie rzeczywistym — Urządzenia publikują telemetrię, panele subskrybują dane na żywo
- Zdalne wywoływanie procedur (RPC) — Usługa AI wywołuje funkcje po stronie urządzenia, backend wyzwala operacje na kontenerach
- Izolację projektów — Każda kombinacja projekt-aplikacja ma własny kryptograficznie izolowany realm komunikacyjny
Skalowalność i aktualizacje bez przestojów
Każdy komponent architektury IronFlock jest zaprojektowany z myślą o horyzontalnej skalowalności. Backend, FleetDB, usługa AI, broker wiadomości i rejestr kontenerów mogą być niezależnie skalowane bez wpływu na inne części systemu.
Architektura a tradycyjny SCADA
Tradycyjne platformy SCADA (Ignition, WinCC, Wonderware) stosują model skoncentrowany na bramie: jeden centralny serwer robi wszystko. IronFlock odwraca to podejście. Urządzenia brzegowe są autonomicznymi węzłami wykonawczymi z pełnymi możliwościami obliczeniowymi.
| Aspekt | Tradycyjny SCADA | IronFlock |
|---|---|---|
| Rola urządzenia brzegowego | Pasywne źródło danych (PLC → brama) | Autonomiczny węzeł obliczeniowy z pełnymi aplikacjami |
| Rola centralna | Robi wszystko (serwer bramy) | Dane floty, UI, AI i koordynacja |
| Wdrożenie aplikacji | Moduły na centralnej bramie | Kontenery Docker na urządzeniach brzegowych |
| Działanie offline | Urządzenie brzegowe przestaje działać bez bramy | Urządzenia brzegowe kontynuują działanie autonomicznie |
Opcje wdrożenia
| Tryb | Usługi centralne | Urządzenia brzegowe | Przypadek użycia |
|---|---|---|---|
| Chmura (domyślnie) | Zarządzana chmura IronFlock | Połączenie przez internet | Większość wdrożeń |
| Appliance | Wstępnie skonfigurowane urządzenie on-site — działa też jako urządzenie brzegowe | Połączenie przez sieć lokalną | Producenci maszyn / OEM |
| Private Cloud | Twoja strefa DMZ / VPC / centrum danych | Połączenie przez sieć lokalną | Sieci izolowane, regulowane |
Zobacz Opcje wdrożenia, aby poznać pełne porównanie wszystkich trzech modeli.