Skip to Content
ArchitekturaArchitektura semantyczna

Architektura semantyczna

Ta strona opisuje model danych IronFlock: podstawowe zasoby i ich wzajemne relacje. Podczas gdy Przegląd architektury obejmuje fizyczne warstwy systemu (urządzenia brzegowe, chmura, broker wiadomości), ta strona skupia się na strukturze logicznej — relacjach między projektami, urządzeniami, aplikacjami i danymi.

Przegląd encji

Konto ├─ Aplikacja │ └─ Wydanie └─ Projekt ├─ Urządzenie ──────────┐ │ └─ Komponent brzegowy aplikacji ├─ Grupa ───────────────┘ ├─ Instalacja wydania ├─ Baza danych floty │ └─ Tabele danych ├─ Panel └─ Alarm

Podstawowe zasoby

Konto

Konto to tożsamość najwyższego poziomu — osoba lub organizacja zalogowana do IronFlock. Konto posiada projekty i aplikacje. Aplikacje i projekty są bezpośrednimi dziećmi konta, ale istnieją niezależnie od siebie.

Aplikacja

Aplikacja to wdrażalny pakiet oprogramowania. Aplikacje należą do konta, nie do projektu — jedna aplikacja może być zainstalowana w wielu różnych projektach. Aplikacja nie działa nigdzie sama z siebie; służy jako wpis katalogowy, którego wydania można instalować na urządzeniach.

Wydanie

Wydanie to niezmienny, wersjonowany build aplikacji. Tylko wydania w stanie READY mogą być instalowane na urządzeniach. Wydania są niezmienne — aby zmienić zachowanie aplikacji, publikuje się nowe wydanie.

Projekt

Projekt to główna granica izolacji. Wszystko wewnątrz projektu — urządzenia, grupy, instalacje, dane, panele, alarmy — jest niewidoczne dla innych projektów. Każdy projekt ma własny realm WAMP na brokerze wiadomości, dedykowaną bazę danych floty i własny zestaw urządzeń, grup, instalacji, paneli i alarmów.

Urządzenie

Urządzenie to fizyczna lub wirtualna maszyna Linux uruchamiająca agenta IronFlock. Każde urządzenie należy dokładnie do jednego projektu. Urządzenie hostuje komponenty brzegowe zainstalowanych wydań — kontenery działające lokalnie na sprzęcie. Urządzenie może hostować komponenty brzegowe z wielu wydań jednocześnie i może być członkiem wielu grup.

Grupa

Grupa to logiczna kolekcja urządzeń w projekcie, używana do operacji masowych. Urządzenie może należeć do wielu grup (relacja wiele-do-wielu). Gdy wydanie jest instalowane na grupie, każde urządzenie członkowskie otrzymuje instalację, która może dziedziczyć konfigurację grupy lub ją lokalnie nadpisać.

Instalacja wydania

Instalacja wydania to działająca instancja konkretnego wydania na konkretnym urządzeniu. Przy instalacji przez grupę, instalacja każdego urządzenia może dziedziczyć lub nadpisywać konfigurację grupy, zapewniając domyślne ustawienia dla całej floty z wyjątkami per-urządzenie.

Instalacja grupy ├─ Urządzenie A → dziedziczy z grupy ├─ Urządzenie B → dziedziczy z grupy └─ Urządzenie C → nadpisuje własną konfiguracją

Baza danych floty

Każdy projekt ma dedykowaną bazę danych floty — bazę danych PostgreSQL z rozszerzeniem TimescaleDB dla danych szeregów czasowych. Komponenty brzegowe na urządzeniach publikują telemetrię przez WAMP, usługa FleetDB zapisuje ją do bazy danych projektu, a dane są dostępne do zapytań przez panele, usługę zapytań AI i narzędzia zewnętrzne.

Panel

Panel wizualizuje dane z bazy danych floty projektu. Panele należą do projektu i mogą łączyć dane z wielu aplikacji i urządzeń w jeden widok.

Alarm

Alarm to reguła alertu oparta na progach w projekcie. Alarmy monitorują dane w bazie danych floty i wyzwalają powiadomienia gdy warunki są spełnione.

Podsumowanie relacji

RelacjaTypOpis
Konto → Projekt1:NJedno konto posiada wiele projektów
Konto → Aplikacja1:NJedno konto posiada wiele aplikacji (niezależnie od projektów)
Aplikacja → Wydanie1:NAplikacja zawiera wiele wersjonowanych wydań
Projekt → Urządzenie1:NKażde urządzenie należy dokładnie do jednego projektu
Projekt → Grupa1:NGrupy są ograniczone do jednego projektu
Urządzenie ↔ GrupaN:NUrządzenie może być w wielu grupach; grupa zawiera wiele urządzeń
Projekt → Baza danych floty1:1Każdy projekt ma własną dedykowaną bazę danych
Projekt → Panel1:NPanele należą do projektu i wykonują zapytania do jego bazy danych
Projekt → Alarm1:NAlarmy są ograniczone do projektu i monitorują jego bazę danych
Urządzenie → Instalacja wydania1:NUrządzenie hostuje komponenty brzegowe z wielu instalacji wydań
Instalacja wydania → WydanieN:1Każda instalacja odwołuje się do konkretnej wersji wydania
Last updated on