エッジデバイス&エージェント
エッジデバイスはIronFlockの主要な実行ノードです。各デバイスはLinux対応マシン — 産業用PC、Raspberry Pi、NVIDIA Jetson、ゲートウェイ、またはLinuxカーネルを持つ任意のハードウェア — であり、IronFlockエージェントと1つ以上のDocker コンテナ化されたアプリケーションを実行します。
IronFlockエージェント
エージェントはデバイス上で動作する軽量なGoバイナリで、以下を処理します:
- コンテナ管理 — インストールされたすべてのアプリのDockerコンテナを起動、停止、監視
- WAMP接続 — 中央メッセージブローカーへの永続的な暗号化WebSocket接続を維持
- OTAアップデート — エージェント自体、ホストOS、インストールされたアプリケーションのアップデートを受信・適用
- トンネリング — リバースプロキシトンネルを通じてデバイスサービス(HTTP、SSH、VNC、TCP、UDP)への安全なリモートアクセスを提供 — オープンポート不要
- ネットワーク管理 — デバイス上のWi-Fi、LAN、LTE接続を設定
エージェントはホストOS上で直接動作する唯一のIronFlockコンポーネントです。それ以外はすべてDockerコンテナ内で動作します。
自律動作
エッジデバイスは中央サービスから独立して動作するように設計されています。ネットワーク接続が切断された場合:
- アプリは動作を継続 — すべてのコンテナ化されたアプリケーションは正常に動作し続けます
- アプリはデータをバッファリング可能 — テレメトリはローカルにキューイングされ、接続が復旧するとFleetDBに転送されます
この自律性は基本的な設計上の選択です。産業環境ではネットワークの信頼性を保証できず、エッジアプリケーションはコア動作においてクラウド接続に依存してはなりません。
デバイス上で動作するもの
┌─────────────────────────────────────────┐
│ Linux Host OS │
│ │
│ ┌─────────────────────────────────┐ │
│ │ IronFlock Agent │ │
│ │ (接続、OTA、トンネリング) │ │
│ └────────────┬────────────────────┘ │
│ │ │
│ ┌────────────┴────────────────────┐ │
│ │ Docker Runtime │ │
│ │ │ │
│ │ ┌─────────┐ ┌─────────┐ │ │
│ │ │ App A │ │ App B │ ... │ │
│ │ │ (OPC UA │ │ (カスタム│ │ │
│ │ │ リーダー)│ │ ロジック)│ │ │
│ │ └─────────┘ └─────────┘ │ │
│ └─────────────────────────────────┘ │
└─────────────────────────────────────────┘
│ (アウトバウンドWSSのみ)
▼
WAMP メッセージブローカー各アプリは独自の依存関係を持つ独自のコンテナで動作します。アプリはPython、Go、Rust、Node.js、C++、またはDockerコンテナで動作する任意の言語で作成できます。
サポートされるハードウェア
IronFlockはDocker対応の任意のLinuxデバイスをサポートします:
| プラットフォーム | アーキテクチャ | 例 |
|---|---|---|
| 産業用PC | x86_64 | Beckhoff、Advantech、Kontron、Dell Edge |
| シングルボードコンピュータ | ARM64、ARMv7 | Raspberry Pi 4/5、BeagleBone |
| AIアクセラレータ | ARM64 | NVIDIA Jetson Nano、Orin、Xavier |
| ゲートウェイ | ARM64、x86_64 | Teltonika、Moxa、Advantech |
| カスタムハードウェア | ARM (v5、v6、v7)、ARM64、x86_64 | Docker対応の任意のLinuxデバイス |
デバイスプロビジョニング
デバイスはいくつかの方法でIronFlockに追加できます:
- FlockFlasherでフラッシュ — FlockFlasherデスクトップアプリを使用して、デバイスのストレージにIronFlock OSを書き込みます。デバイスは事前設定されたエージェントで起動し、自動的に接続します。
- エージェントをインストール — 既存のLinuxシステムにエージェントバイナリをインストールし、デバイス認証情報を含む設定ファイル(
.flockファイル)を提供します。 - OEM事前登録 — デバイスのシリアル番号を事前に登録します。デバイスの電源が入り接続すると、正しいプロジェクトに自動的に割り当てられます。
通信モデル
デフォルトでは、エッジデバイスはアウトバウンド接続のみを行います。エージェントは暗号化されたWebSocket(WSS)でWAMPメッセージブローカーに接続し、どのポートでもリッスンする必要はありません。これは以下を意味します:
- デフォルトではデバイスまたはそのネットワークにインバウンドファイアウォールルールは不要
- デバイスはインターネットから検出またはアドレス指定不可
- リモートアクセスはリバーストンネルを通じて提供 — オペレーターではなくデバイスが開始
ただし、デバイスポートは必要に応じて選択的に開くことができます — たとえば、デバイス上で動作するローカルHMI、REST API、その他のサービスを公開するためです。ポートアクセスはIronFlock UIを通じて設定・管理されます。
セキュリティアーキテクチャの全体についてはセキュリティを参照してください。