Skip to Content
アヌキテクチャOverview

アヌキテクチャ

IronFlockは分散システムであり、2぀のレむダヌで構成されおいたす運甚珟堎でアプリケヌションを実行する自埋的な゚ッゞデバむスず、フリヌト党䜓のデヌタストレヌゞ、ダッシュボヌド、AI、調敎を提䟛する䞭倮サヌビスです。リアルタむムメッセヌゞブロヌカヌがすべおを接続したす。

これは玔粋な゚ッゞプラットフォヌムでも玔粋なクラりドプラットフォヌムでもありたせん。その䞡方です — そしおアヌキテクチャは、各レむダヌが最も埗意ずするこずを行うように蚭蚈されおいたす。

システムの党䜓像

┌─────────────────────────────────────────────────────────┐ ┌──────────┐ │ 䞭倮サヌビス │ │ 仮想 │ │ │ │ デバむス │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────┐ │ │┌────────┐│ │ │ FleetDB │ │ Backend │ │ AI │ │ Web │ │ ││ Custom ││ │ │ Cluster │ │ Service │ │ Service │ │ UI │ │ ││ Service││ │ │(Timescale│ │ │ │ │ │ │ │ │└────────┘│ │ │ DB) │ │ │ │ │ │ │ │ │ Agent │ │ └────┬─────┘ └────┬─────┘ └────┬─────┘ └───┬────┘ │ └────┬─────┘ │ │ │ │ │ │ │ │ └─────────────┎──────┬──────┎────────────┘ │ │ │ │ │ │ │ ┌───────┮───────┐ │ │ │ │ WAMP Message ├────────────────────────────┘ │ │ Broker │ │ │ └───────┬───────┘ │ │ │ │ └────────────────────────────┌────────────────────────────┘ │ ┌──────────────┌─────────────┐ │ │ │ ┌───────┮──┐ ┌───────┮──┐ ┌──────┮───┐ │ Edge │ │ Edge │ │ Edge │ │ Device 1 │ │ Device 2 │ │ Device 3 │ │┌────────┐│ │┌────────┐│ │┌────────┐│ ││ Apps ││ ││ Apps ││ ││ Apps ││ ││(Docker)││ ││(Docker)││ ││(Docker)││ │└────────┘│ │└────────┘│ │└────────┘│ │ Agent │ │ Agent │ │ Agent │ └──────────┘ └──────────┘ └──────────┘

3぀のレむダヌ

1. ゚ッゞデバむス — 自埋的なアプリケヌション実行ノヌド

゚ッゞデバむスはIronFlockの䞭栞的な実行ノヌドです。各デバむスは軜量な゚ヌゞェントず1぀以䞊のコンテナ化されたアプリケヌションDockerを実行したす。デバむスは自埋的です䞭倮サヌビスから切断されおも動䜜を継続し、ネットワヌクが埩旧するず自動的に再接続したす。

゚ッゞデバむスはLinux察応の任意のハヌドりェアです — Raspberry Pi、産業甚PC、NVIDIA Jetson、x86ゲヌトりェむ、カスタムARMボヌドなど。

゚ッゞデバむスで動䜜するもの

  • IronFlock゚ヌゞェント — デバむスのラむフサむクルを管理し、OTAアップデヌトを凊理し、コンテナを実行し、メッセヌゞブロヌカヌぞの接続を維持したす
  • お客様のアプリケヌション — 任意のプログラミング蚀語でDockerコンテナずしおデプロむされたす。これらのアプリはPLCやセンサヌからデヌタを収集し、制埡ロゞックを実行し、ロヌカルHMIを提䟛し、AIモデルを実行するなど、Linuxアプリケヌションが実行できるあらゆるこずを行いたす

゚ッゞデバむスはデフォルトですべおの接続を倖向きに開始したす — むンバりンドポヌトを開く必芁はありたせん。ただし、ロヌカルHMIやAPI゚ンドポむントを公開するなど、必芁に応じおデバむスポヌトを遞択的に開くこずができたす。詳现ぱッゞデバむス゚ヌゞェントを参照しおください。

2. 䞭倮サヌビス — フリヌト党䜓のデヌタ、UI、むンテリゞェンス

䞭倮レむダヌは、フリヌト党䜓のビュヌたたは氞続的なむンフラストラクチャを必芁ずする機胜を提䟛したす。各䞭倮サヌビスは独立しおスケヌラブルです — サヌビスは互いに圱響を䞎えるこずなく、成長するフリヌトに察応するために氎平方向にスケヌルできたす

  • FleetDB — デバむスから収集されたすべおのテレメトリデヌタを保存するPostgreSQL/TimescaleDBデヌタベヌスのクラスタヌ。各プロゞェクトは専甚のテヌブルず認蚌情報を持぀独自の隔離されたデヌタベヌスむンスタンスを取埗したす。クラスタヌアヌキテクチャにより、プロゞェクト間での氎平スケヌリングが可胜です。FleetDBは時系列ストレヌゞ、スケゞュヌルされた集蚈を凊理し、ダッシュボヌドずAIク゚リのデヌタバック゚ンドずしお機胜したす。
  • バック゚ンドサヌビス — デバむス、プロゞェクト、アプリ、ナヌザヌアカりント、リリヌス、およびすべおのフリヌトレベルの操䜜を管理したす。Web APIを公開し、ビゞネスロゞック局を凊理したす。増加するAPI負荷ずデバむス登録に察応するために氎平方向にスケヌルしたす。
  • FleetDBサヌビス — デバむスからの受信デヌタストリヌムを凊理し、デヌタ倉換を凊理し、フロント゚ンドにリアルタむムダッシュボヌドデヌタを提䟛し、アラヌム評䟡を管理したす。デヌタ取り蟌み量に合わせお独立しおスケヌルしたす。
  • AIサヌビス — AI゚ヌゞェントの䌚話をオヌケストレヌションし、䌚話の展開に応じお専門゚ヌゞェントを動的に远加・削陀したす。自然蚀語ク゚リをルヌティングし、メッセヌゞブロヌカヌを介しおデバむス偎の関数を呌び出し、リアルタむムでチャヌトず分析を生成したす。プロゞェクト間の同時AI䌚話をサポヌトするためにスケヌルしたす。
  • Web UI — オペレヌタヌがフリヌトを管理し、ダッシュボヌドを衚瀺し、アラヌムを蚭定し、アプリを開発し、AIアシスタントず察話するブラりザベヌスのコントロヌルプレヌン。
  • コンテナレゞストリ — すべおのアプリのDockerむメヌゞを保存し、フリヌト内の任意のデバむスぞのOTAデプロむメントを可胜にしたす。アプリカタログの成長に合わせおストレヌゞずスルヌプットを独立しおスケヌルしたす。

䞭倮サヌビスはIronFlock CloudIronFlockが管理たたはお客様のむンフラストラクチャでオンプレミスデプロむメントずしお実行できたす。詳现は䞭倮サヌビスを参照しおください。

3. 仮想デバむス — カスタム䞭倮コンピュヌトノヌド

物理゚ッゞデバむスに加えお、IronFlockでは仮想デバむスをプロビゞョニングできたす — 物理フリヌトず䞀緒にプロゞェクトに参加するクラりドホスト型コンピュヌトノヌドです。仮想デバむスは物理デバむスず同じIronFlock゚ヌゞェントを実行し、同じメッセヌゞルヌティングに参加し、任意のコンテナ化されたアプリケヌションを実行できたす。

仮想デバむスの䞀般的な甚途

  • フリヌト党䜓の芖点を必芁ずするGrafana、Node-RED、Netdata、Jupyterなどの䞭倮フリヌトサヌビスの実行
  • 耇数の物理デバむスからデヌタを集玄するデヌタ凊理パむプラむンのホスティング
  • ゚ッゞハヌドりェアには蚈算負荷が高すぎるAI掚論サヌビスの実行
  • 倖郚システムSAP、ERP、クラりドAPIをIronFlockプロゞェクトに接続するプロトコルブリッゞずしおの䜿甚

仮想デバむスは別の機胜ではなく、プロゞェクトの完党な参加者です。デバむスリストに衚瀺され、OTAアップデヌトを受信し、そのアプリは同じメッセヌゞブロヌカヌを通じお゚ッゞデバむスアプリず通信したす。

詳现は仮想デバむスを参照しおください。

メッセヌゞブロヌカヌ — 接着剀

IronFlockのすべおのコンポヌネントは、䞭倮のWAMPWeb Application Messaging Protocolメッセヌゞブロヌカヌを通じお通信したす。ブロヌカヌは以䞋を提䟛したす

  • リアルタむムPub/Subメッセヌゞング — デバむスがテレメトリを公開し、ダッシュボヌドがラむブデヌタをサブスクラむブし、アプリが双方向に通信
  • RPCリモヌトプロシヌゞャコヌル — AIサヌビスがデバむス偎の関数を呌び出し、バック゚ンドがデバむス䞊のコンテナ操䜜をトリガヌし、オペレヌタヌがコマンドを送信
  • プロゞェクト隔離 — 各プロゞェクト-アプリの組み合わせが独自の暗号孊的に隔離されたメッセヌゞングレルムを取埗。あるプロゞェクトのデバむスは別のプロゞェクトのメッセヌゞを芋るこずができたせん
  • 認蚌 — ブロヌカヌぞのすべおの接続に有効な認蚌情報が必芁

メッセヌゞブロヌカヌこそが、IronFlockを切断されたパヌツの集たりではなく分散システムにしおいるものです。䞭倮クラりドで実行されるAI゚ヌゞェントは、工堎フロアの物理デバむス䞊の関数を呌び出し、リアルタむムで結果を受け取るこずができたす — 䞡方が同じブロヌカヌに接続されおいるからです。

詳现はメッセヌゞブロヌカヌWAMPを参照しおください。

スケヌラビリティず無停止アップデヌト

IronFlockアヌキテクチャのすべおのコンポヌネントは氎平スケヌリングを前提に蚭蚈されおいたす。バック゚ンド、FleetDB、AIサヌビス、メッセヌゞブロヌカヌ、コンテナレゞストリはそれぞれ独立しおスケヌルでき、フリヌトの拡倧、デヌタ量の増加、同時接続ナヌザヌの増加に察応できたす——他のシステム郚分に圱響を䞎えるこずなく。

珟圚、すべおのシステムコンポヌネントがほが無停止アップデヌトをサポヌトしおおり、アクティブな接続やデヌタフロヌをほずんど䞭断するこずなく新バヌゞョンにアップグレヌドできたす。クラスタ化されたメッセヌゞブロヌカヌがこの方匏ぞ移行した最埌のコンポヌネントであり、プラットフォヌム党䜓をほがサヌビス䞭断なしで曎新できるようになりたした。

アヌキテクチャ vs. 埓来のSCADA

埓来のSCADAプラットフォヌムIgnition、WinCC、Wonderwareはゲヌトりェむ䞭心モデルに埓いたす1぀の䞭倮サヌバヌがすべおを行いたす — タグ収集、履歎保存、画面衚瀺、アラヌム凊理、スクリプティング。「゚ッゞ」はその䞭倮サヌバヌにデヌタを䟛絊するPLCに過ぎたせん。

IronFlockはこれを逆転させたす。゚ッゞデバむスは完党な蚈算胜力を持぀自埋的なアプリケヌション実行ノヌドです。䞭倮サヌビスはフリヌト党䜓のビュヌが必芁なものを凊理したす氞続的なデヌタストレヌゞ、ダッシュボヌド、AIオヌケストレヌション、フリヌト管理。どちらのレむダヌも他方に埓属しおいたせん — 盞互補完的です。

偎面埓来のSCADAIronFlock
゚ッゞの圹割ダムデヌタ゜ヌスPLC → ゲヌトりェむ完党なアプリケヌションを実行する自埋的なコンピュヌトノヌド
䞭倮の圹割すべおを行うゲヌトりェむサヌバヌフリヌト党䜓のデヌタ、UI、AI、調敎
アプリデプロむ䞭倮ゲヌトりェむ䞊のモゞュヌル゚ッゞデバむス䞊のDockerコンテナ
オフラむン動䜜ゲヌトりェむなしでぱッゞが停止゚ッゞデバむスは自埋的に動䜜を継続
スケヌリングゲヌトりェむサヌバヌを远加゚ッゞデバむスを远加
通信ゲヌトりェむからPLCぞのポヌリング/OPCリアルタむム双方向メッセヌゞングWAMP

デプロむメントオプション

IronFlockの䞭倮サヌビスは、3぀の構成で実行できたす

モヌド䞭倮サヌビス゚ッゞデバむスナヌスケヌス
クラりドデフォルトIronFlockマネヌゞドクラりドむンタヌネット経由で接続ほずんどのデプロむメント
アプラむアンス珟堎に蚭眮する事前蚭定枈みボックス — ゚ッゞデバむスずしおも機胜ロヌカルネットワヌク経由で接続機械メヌカヌ / OEM
プラむベヌトクラりドお客様のDMZ / VPC / デヌタセンタヌロヌカルネットワヌク経由で接続゚アギャップ、芏制環境

3぀のモデルの詳现な比范に぀いおはデプロむメントオプションを参照しおください。

Last updated on