1. システム構成¶
IoT Connectivity Engineのシステム構成を以下の図に示します。
- ICE BackendEdge、Deviceの運用管理やデータ収集を行うバックエンド側の基盤です。ICE Backend API (REST)、ICE Message Router、Data Store、Message Broker、File Serverといった コンポーネントを含むBackend側環境全体の総称です。
- ICE Backend API (REST)収集したデータを参照するためのAPIや、Device AdapterやEdge Applicationへの制御指示のためのAPIを提供します。コールするAPIに応じて、Edgeへのメッセージ送信や、MongoDBからのデータ取得、 配信ファイルのアップロードなどを行います。
- Data Store (MongoDB)Edge、Device、運用管理Agentの管理情報や収集データなど、ICE Backend/Coreで扱うデータを格納する ドキュメント指向データベースです。
- File Server (Nginx)ICE Backend API経由でアップロードされたファイルをEdge向けに公開するためのサーバです。
- Message Broker (RabbitMQ)ICE BackendとICE Coreが双方向にメッセージをやり取りする際に仲介役となるブローカーです。RabbitMQ上のトピックを通してPub/Subモデルのメッセージ交換を行います。
- ICE Message RouterICE Coreから送信されたメッセージをRabbitMQから受信し、所定のストアに振り分け・書き込みを行います。
- ICE CoreDevice Adapter、Edge Application から取得したデータや状態に関する情報を収集し、 ICE Backendに送信するゲートウェイです。入力、出力、中間処理など、データのフローを定義して データ加工やアプリケーション間の連携を実現します。
- Priviledged ApplicationEdgeの運用管理を行うための特別なEdge Applicationです。ICE Backendから配信されたファイルのダウンロードや、Edgeの性能情報採取などを行います。
- Edge ApplicationICE Coreと連携動作するアプリケーションです。主にセンサデータのフィルタや加工を行います。ICE Data Delivery C APIを利用してICE Coreと連携します。
- Device AdapterDevice間との通信を実現するためのアダプタです。 センサからのデータ取得やアクチュエータへの動作指示などを行います。ICE Data Delivery C APIを利用してICE Coreと連携します。
1.1. IoT共通基盤、Nebula API Gatewayとの連携¶
ICE CoreはIoT共通基盤やNebula API Gateway(AMQP)への接続が可能です。
個別に設定したそれぞれの接続先に対して、ICE CoreのCloudAdapterの設定によって 接続することが出来ます。
1.2. 物理サーバ構成¶
ICE Backendの各コンポーネントはmq_servers, db_servers, api_serversの3つの役割に分類されており、それぞれ下記構成の配置を選択することが出来ます。
- mq_serversエッジからのMQTTメッセージを受け取り、db_serverのデータベースに格納します。また、api_serversからの指示によって、エッジに対してMQTTメッセージを送信します。
- db_serversmq_serversが受信したデータを格納し、api_serversから参照します。
- api_servers収集データを参照するためのAPIと集配信用のファイルサーバ機能を持つサーバです。
1.2.1. All-In-One 構成¶
一台のサーバに全てのICE Backendのコンポーネントを配置する構成です。
1.2.2. サーバ分離 構成¶
ICE Backendの役割ごとにサーバを分離する構成です。