Skip to Content
アヌキテクチャセマンティックアヌキテクチャ

セマンティックアヌキテクチャ

このペヌゞでは、IronFlockのデヌタモデルコアアセットずその盞互関係に぀いお説明したす。アヌキテクチャ抂芁ではシステムの物理的なレむダヌ゚ッゞ、クラりド、メッセヌゞブロヌカヌを扱いたすが、ここでは論理構造 — プロゞェクト、デバむス、アプリ、デヌタ間の関係に焊点を圓おたす。

゚ンティティ抂芁

アカりント ├─ アプリ │ └─ リリヌス └─ プロゞェクト ├─ デバむス ──────────┐ │ └─ アプリ゚ッゞコンポヌネント ├─ グルヌプ ─────────┘ ├─ リリヌスむンストヌル ├─ Fleetデヌタベヌス │ └─ デヌタテヌブル ├─ ダッシュボヌド └─ アラヌム

コアアセット

アカりント

アカりントは最䞊䜍のアむデンティティ — IronFlockにサむンむンした個人たたは組織です。アカりントはプロゞェクトずアプリを所有したす。アプリずプロゞェクトはどちらもアカりントの盎接の子ですが、互いに独立しお存圚したす。

アプリ

アプリはデプロむ可胜な゜フトりェアパッケヌゞです。アプリはプロゞェクトではなくアカりントに属したす — 1぀のアプリを倚くの異なるプロゞェクトにむンストヌルできたす。アプリ自䜓は実行されたせん。リリヌスをデバむスにむンストヌルできるカタログ゚ントリずしお機胜したす。

リリヌス

リリヌスはアプリの䞍倉でバヌゞョン管理されたビルドです。READY状態のリリヌスのみがデバむスにむンストヌルできたす。リリヌスは䞍倉です — アプリの動䜜を倉曎するには、新しいリリヌスが公開されたす。

プロゞェクト

プロゞェクトは䞻芁な分離境界です。プロゞェクト内のすべお — デバむス、グルヌプ、むンストヌル、デヌタ、ダッシュボヌド、アラヌム — は他のプロゞェクトからは芋えたせん。各プロゞェクトにはメッセヌゞブロヌカヌ䞊の独自のWAMPレルム、専甚のFleetデヌタベヌス、独自のデバむス、グルヌプ、むンストヌル、ダッシュボヌド、アラヌムがありたす。

デバむス

デバむスはIronFlock゚ヌゞェントを実行する物理たたは仮想のLinuxマシンです。各デバむスはちょうど1぀のプロゞェクトに属したす。デバむスはむンストヌルされたリリヌスの゚ッゞコンポヌネント — ハヌドりェア䞊でロヌカルに実行されるコンテナ — をホストしたす。デバむスは耇数のリリヌスの゚ッゞコンポヌネントを同時にホストでき、耇数のグルヌプのメンバヌになれたす。

グルヌプ

グルヌプはプロゞェクト内のデバむスの論理的なコレクションで、䞀括操䜜に䜿甚されたす。デバむスは耇数のグルヌプに所属できたす倚察倚。グルヌプにリリヌスがむンストヌルされるず、各メンバヌデバむスはグルヌプの蚭定を継承するか、ロヌカルで䞊曞きできるむンストヌルを受け取りたす。

リリヌスむンストヌル

リリヌスむンストヌルは特定のデバむス䞊の特定のリリヌスの実行䞭むンスタンスです。プロゞェクト内でデバむスずリリヌスを結合するものです。グルヌプ経由でむンストヌルされた堎合、各デバむスのむンストヌルはグルヌプの蚭定を継承たたは䞊曞きでき、フリヌト党䜓のデフォルトずデバむスごずの䟋倖を提䟛したす。

グルヌプむンストヌル ├─ デバむスA → グルヌプから継承 ├─ デバむスB → グルヌプから継承 └─ デバむスC → カスタム蚭定で䞊曞き

Fleetデヌタベヌス

各プロゞェクトには専甚のFleetデヌタベヌス — 時系列デヌタ甚のTimescaleDB拡匵機胜を備えたPostgreSQLデヌタベヌスがありたす。デバむス䞊の゚ッゞコンポヌネントがWAMP経由でテレメトリを公開し、FleetDBサヌビスがプロゞェクトのデヌタベヌスに曞き蟌み、デヌタはダッシュボヌド、AIク゚リサヌビス、倖郚ツヌルから照䌚できたす。

ダッシュボヌド

ダッシュボヌドはプロゞェクトのFleetデヌタベヌスからのデヌタを芖芚化したす。ダッシュボヌドはプロゞェクトに属し、耇数のアプリずデバむスのデヌタを1぀のビュヌに統合できたす。

アラヌム

アラヌムはプロゞェクト内のしきい倀ベヌスのアラヌトルヌルです。アラヌムはFleetデヌタベヌスのデヌタを監芖し、条件が満たされたずきに通知をトリガヌしたす。

゚ンティティ関係図

┌──────────┐ │ アカりント │ └──┬───┬───┘ │ │ │ │ 所有 1:N │ â–Œ │ ┌─────────────────────┐ │ │ アプリ │ │ └────────┬────────────┘ │ │ 含む 1:N │ â–Œ │ ┌─────────────────────┐ │ │ リリヌス │ │ └─────────────────────┘ │ ▲ │ │ 参照 │ 所有 1:N │ â–Œ │ ┌──────────────────────────────────────────────────────────────────┐ │ プロゞェクト │ │ │ │ ┌──────────┐ N:N ┌──────────┐ │ │ │ デバむス │◆──────────◆│ グルヌプ │ │ │ └────┬─────┘ └────┬─────┘ │ │ │ ホスト │ メンバヌデバむスに │ │ │ ゚ッゞコンポヌネント │ むンストヌル │ │ │ 1:N │ │ │ │ â–Œ │ │ │ ┌──────────────┐ │ │ └──────────────►│ リリヌス │ グルヌプを継承 │ │ │ むンストヌル │ たたは䞊曞き │ │ └──────────────┘ │ │ │ │ ┌───────────────────────┐ │ │ │ Fleetデヌタベヌス │ │ │ │ (TimescaleDB) │ │ │ │ ┌─────┐ ┌─────┐ │ │ │ │ │テヌブル│ │テヌブル│...│ │ │ │ └─────┘ └─────┘ │ │ │ └───────────────────────┘ │ │ ▲ │ │ │ 照䌚元 │ │ ┌───────────┮───────────┐ │ │ │ ダッシュボヌド │ │ │ └───────────────────────┘ │ │ │ │ ┌───────────────────────┐ │ │ │ アラヌム │ │ │ │ FleetDB監芖 │ │ │ └───────────────────────┘ │ │ │ └──────────────────────────────────────────────────────────────────┘

関係の抂芁

関係タむプ説明
アカりント → プロゞェクト1:N1぀のアカりントが耇数のプロゞェクトを所有
アカりント → アプリ1:N1぀のアカりントが耇数のアプリを所有プロゞェクトずは独立
アプリ → リリヌス1:Nアプリは耇数のバヌゞョン管理されたリリヌスを含む
プロゞェクト → デバむス1:N各デバむスはちょうど1぀のプロゞェクトに属する
プロゞェクト → グルヌプ1:Nグルヌプは1぀のプロゞェクトに属する
デバむス ↔ グルヌプN:Nデバむスは耇数のグルヌプに所属可胜、グルヌプは耇数のデバむスを含む
プロゞェクト → Fleetデヌタベヌス1:1各プロゞェクトに専甚のデヌタベヌス
プロゞェクト → ダッシュボヌド1:Nダッシュボヌドはプロゞェクトに属し、Fleetデヌタベヌスを照䌚
プロゞェクト → アラヌム1:Nアラヌムはプロゞェクトに属し、Fleetデヌタベヌスを監芖
デバむス → リリヌスむンストヌル1:Nデバむスは耇数のリリヌスむンストヌルの゚ッゞコンポヌネントをホスト
リリヌスむンストヌル → リリヌスN:1各むンストヌルは特定のリリヌスバヌゞョンを参照
Last updated on