ゲートウェイとは

Thing Interaction Framework では、フレームワークの機能としてゲートウェイを使った Thing の接続を実現しています。

ゲートウェイを利用することで、以下の機能を実現できます。

エンドノードの接続

ネットワークに直接接続できない Thing は、ゲートウェイ経由で Thing Interaction Framework に接続できます。ゲートウェイを経由して接続される Thing を、ここではエンドノードと呼びます。

たとえば、制御したい Thing が Bluetooth や ZigBee しかサポートしない場合、これらのインターフェイスはインターネットに直接接続できないため、そのままでは Thing Interaction Framework に接続できません。そこで、ゲートウェイを導入し、プロトコルの変換を行うことでインターネットに接続し、モバイルアプリとの連携を実現します。

ゲートウェイは、複数個のエンドノードをまとめて接続する機能をサポートしています。各エンドノードからのリクエストはゲートウェイで集約され、Thing Interaction Framework へ送信します。

Thing Interaction Framework では、内部でゲートウェイとエンドノードの構造を認識しています。これにより、モバイルアプリからエンドノードの ID を指定してコマンドを送信するだけで、Thing Interaction Framework は接続しているゲートウェイを自動的に検索してプッシュ通知を送信できます。

たとえば、以下の図のような制御が可能です。

  1. モバイルアプリから、エンドノード 2 の ID を指定してコマンドを送信します。

  2. Thing Interaction Framework は、エンドノード 2 が接続されているゲートウェイを検索します。

  3. Thing Interaction Framework は、ゲートウェイに対して MQTT によるプッシュ通知を送信し、エンドノード 2 へのコマンドを送信します。

  4. ゲートウェイは MQTT のペイロードに含まれるエンドノードの ID から、エンドノード 2 にプッシュメッセージを届けることができます。

モバイルアプリの開発

ゲートウェイを通してエンドノードを操作するモバイルアプリを開発できます。モバイルアプリでは、以下のような機能を実現できます。

  • エンドノードが持つセンサー値などの様々な情報を、ステートとして参照できます。

  • エンドノードにコマンドを送信できます。エンドノードではコマンドに応じてハードウェアを制御できます。

  • ステートなどに応じてコマンドを自動実行することができます。

詳細は、機能の実装 をご覧ください。

デバイスの交換

ゲートウェイやエンドノードのハードウェアが故障したとき、Thing Interaction Framework が管理しているデータや接続情報はそのまま保持し、ハードウェアだけを差し替える機能を用意しています。差し替えに伴って、ID の変更が発生しますが、ID の割り当てを工夫することによって、システムの動きに影響がない形でハードウェアを差し替えることができます。

詳細は、ハードウェアの交換 をご覧ください。

デバイスの交換機能はまだ実装されていませんが、今後リリース予定です。

ゲートウェイとエンドノードの個別提供

ゲートウェイとエンドノードを別のベンダーから提供できるように API が設計されています。たとえば、純粋なホームゲートウェイ製品だけを提供するような場合や、その製品に搭載されるセンサーだけを提供するような場合、それぞれのベンダーが Thing Interaction Framework を使ったモバイルアプリを混乱なく開発できます。