Skip to Content
MimariAnlamsal Mimari

Anlamsal Mimari

Bu sayfa, IronFlock’un veri modelini açıklar: temel varlıklar ve bunların birbirleriyle ilişkileri. Mimari Genel Bakış sistemin fiziksel katmanlarını (kenar, bulut, mesaj aracısı) ele alırken, bu sayfa mantıksal yapıya — projeler, cihazlar, uygulamalar ve veriler arasındaki ilişkilere — odaklanır.

Varlık Genel Bakışı

Account ├─ App │ └─ Release └─ Project ├─ Device ──────────┐ │ └─ App Edge Component ├─ Group ───────────┘ ├─ Release Installation ├─ Fleet Database │ └─ Data Tables ├─ Dashboard └─ Alarm

Temel Varlıklar

Hesap

Bir hesap, en üst düzey kimliktir — IronFlock’a giriş yapan bir kişi veya kuruluş. Bir hesap projelere ve uygulamalara sahiptir. Uygulamalar ve projeler, bir hesabın doğrudan alt öğeleridir ancak birbirinden bağımsız olarak var olurlar.

Uygulama

Bir uygulama, dağıtılabilir bir yazılım paketidir. Uygulamalar bir hesaba aittir, bir projeye değil — tek bir uygulama birçok farklı projeye kurulabilir. Bir uygulama kendi başına hiçbir yerde çalışmaz; sürümleri cihazlara kurulabilen bir katalog girişi olarak işlev görür.

Sürüm

Bir sürüm, bir uygulamanın değişmez, sürümlü bir derlemesidir. Yalnızca READY durumundaki sürümler cihazlara kurulabilir. Sürümler değişmezdir — bir uygulamanın davranışını değiştirmek için yeni bir sürüm yayınlanır.

Proje

Bir proje, birincil izolasyon sınırıdır. Bir proje içindeki her şey — cihazlar, gruplar, kurulumlar, veriler, gösterge panelleri, alarmlar — diğer projeler için görünmezdir. Her projenin mesaj aracısında kendi WAMP alanı, özel bir Filo Veritabanı ve kendi cihazlar, gruplar, kurulumlar, gösterge panelleri ve alarmlar kümesi vardır.

Cihaz

Bir cihaz, IronFlock ajanını çalıştıran fiziksel veya sanal bir Linux makinesidir. Her cihaz tam olarak bir projeye aittir. Bir cihaz, kurulu sürümlerin kenar bileşenlerini barındırır — donanım üzerinde yerel olarak çalışan konteynerler. Bir cihaz aynı anda birden fazla sürümden kenar bileşenleri barındırabilir ve birden fazla grubun üyesi olabilir.

Grup

Bir grup, toplu işlemler için kullanılan bir proje içindeki mantıksal cihaz koleksiyonudur. Bir cihaz birden fazla gruba ait olabilir (çoka-çok). Bir gruba sürüm kurulduğunda, her üye cihaz grubun yapılandırmasını devralabilen veya yerel olarak geçersiz kılabilen bir kurulum alır.

Sürüm Kurulumu

Bir sürüm kurulumu, belirli bir cihazda çalışan belirli bir sürümün örneğidir. Bir proje içinde bir cihaz ile bir sürüm arasındaki birleştirmedir. Bir grup aracılığıyla kurulduğunda, her cihazın kurulumu grubun yapılandırmasını devralabilir veya geçersiz kılabilir; bu sayede cihaz başına istisnalar ile filo genelinde varsayılanlar sağlanır.

Group Installation ├─ Device A → inherits from group ├─ Device B → inherits from group └─ Device C → overrides with custom configuration

Filo Veritabanı

Her projenin özel bir Filo Veritabanı vardır — zaman serisi verileri için TimescaleDB uzantısına sahip bir PostgreSQL veritabanı. Cihazlardaki kenar bileşenler WAMP aracılığıyla telemetri yayınlar, FleetDB hizmeti bunu projenin veritabanına yazar ve veriler gösterge panelleri, AI sorgu hizmeti ve harici araçlar tarafından sorgulanabilir.

Gösterge Paneli

Bir gösterge paneli, projenin Filo Veritabanındaki verileri görselleştirir. Gösterge panelleri bir projeye aittir ve birden fazla uygulama ve cihazdan gelen verileri tek bir görünümde birleştirebilir.

Alarm

Bir alarm, bir proje içindeki eşik tabanlı bir uyarı kuralıdır. Alarmlar, Filo Veritabanındaki verileri izler ve koşullar karşılandığında bildirimleri tetikler.

Varlık İlişki Diyagramı

┌──────────┐ │ Account │ └──┬───┬───┘ │ │ │ │ owns 1:N │ ▼ │ ┌─────────────────────┐ │ │ App │ │ └────────┬────────────┘ │ │ contains 1:N │ ▼ │ ┌─────────────────────┐ │ │ Release │ │ └─────────────────────┘ │ ▲ │ │ references │ owns 1:N │ ▼ │ ┌──────────────────────────────────────────────────────────────────┐ │ Project │ │ │ │ ┌──────────┐ N:N ┌──────────┐ │ │ │ Device │◆──────────◆│ Group │ │ │ └────┬─────┘ └────┬─────┘ │ │ │ hosts │ installs on │ │ │ edge components │ member devices │ │ │ 1:N │ │ │ │ ▼ │ │ │ ┌──────────────┐ │ │ └──────────────►│ Release │ (inherits or │ │ │ Installation│ overrides group) │ │ └──────────────┘ │ │ │ │ ┌───────────────────────┐ │ │ │ Fleet Database │ │ │ │ (TimescaleDB) │ │ │ │ ┌─────┐ ┌─────┐ │ │ │ │ │Table│ │Table│ ... │ │ │ │ └─────┘ └─────┘ │ │ │ └───────────────────────┘ │ │ ▲ │ │ │ queried by │ │ ┌───────────┴───────────┐ │ │ │ Dashboard │ │ │ └───────────────────────┘ │ │ │ │ ┌───────────────────────┐ │ │ │ Alarm │ │ │ │ (monitors FleetDB) │ │ │ └───────────────────────┘ │ │ │ └──────────────────────────────────────────────────────────────────┘

İlişki Özeti

İlişkiTürAçıklama
Hesap → Proje1:NBir hesap birden fazla projeye sahiptir
Hesap → Uygulama1:NBir hesap birden fazla uygulamaya sahiptir (projelerden bağımsız)
Uygulama → Sürüm1:NBir uygulama birden fazla sürümlü derleme içerir
Proje → Cihaz1:NHer cihaz tam olarak bir projeye aittir
Proje → Grup1:NGruplar bir projeyle sınırlıdır
Cihaz ↔ GrupN:NBir cihaz birden fazla grupta olabilir; bir grup birden fazla cihaz içerir
Proje → Filo Veritabanı1:1Her projenin kendi özel veritabanı vardır
Proje → Gösterge Paneli1:NGösterge panelleri bir projeye aittir ve Filo Veritabanını sorgular
Proje → Alarm1:NAlarmlar bir projeyle sınırlıdır ve Filo Veritabanını izler
Cihaz → Sürüm Kurulumu1:NBir cihaz birden fazla sürüm kurulumundan kenar bileşenler barındırır
Sürüm Kurulumu → SürümN:1Her kurulum belirli bir sürüm versiyonuna başvurur
Last updated on