1. システム構成

IoT Connectivity Engineのシステム構成を以下の図に示します。

overview


  • ICE Backend
    Edge、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 Router
      ICE Coreから送信されたメッセージをRabbitMQから受信し、所定のストアに振り分け・書き込みを行います。

  • ICE Core
    Device Adapter、Edge Application から取得したデータや状態に関する情報を収集し、 ICE Backendに送信するゲートウェイです。入力、出力、中間処理など、データのフローを定義して データ加工やアプリケーション間の連携を実現します。
  • Priviledged Application
    Edgeの運用管理を行うための特別なEdge Applicationです。
    ICE Backendから配信されたファイルのダウンロードや、Edgeの性能情報採取などを行います。
  • Edge Application
    ICE Coreと連携動作するアプリケーションです。
    主にセンサデータのフィルタや加工を行います。ICE Data Delivery C APIを利用してICE Coreと連携します。
  • Device Adapter
    Device間との通信を実現するためのアダプタです。 センサからのデータ取得やアクチュエータへの動作指示などを行います。
    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_servers
    mq_serversが受信したデータを格納し、api_serversから参照します。
  • api_servers
    収集データを参照するためのAPIと集配信用のファイルサーバ機能を持つサーバです。

1.2.1. All-In-One 構成

一台のサーバに全てのICE Backendのコンポーネントを配置する構成です。

all-in-one

1.2.2. サーバ分離 構成

ICE Backendの役割ごとにサーバを分離する構成です。

separate