〜通信機能編〜どうもこんにちは。前回の私の回では弊社で提供しているのサービスの概要をお伝えしました。今回は通信にまつわる機能を紹介していきます。開発基盤というからにはインターネットとモノとの通信は簡単にできる方が好都合です。MODEでは様々な検証プロジェクトやサービス開発で得られた経験から設計された、インターネットとモノとの通信を簡単にできる機能が提供されています。今回は通信にまつわる機能として次のような機能を紹介していきたいと思います。基本的なMODEクラウドの機能と言えると思います。現実世界の把握の第一歩は現実世界のイベントを知ることにあります。デバイスで発生した様々なイベントはMODEクラウドを通じて様々な箇所で利用できます。MODEクラウド内部でも重要な役割を果たしています。APIかMQTTでイベントを送信できます。IoTサービスは、WebSocketを通じて発生したイベントをリアルタイムに受け取る事ができます。MODEクラウド内でもイベントを利用して、様々なサービスを提供しています。MODEクラウドにはスマート・モジュールと呼ばれる、追加機能のサービスをいくつか提供しています。時系列DBやWebHookサービスなどです。それらのスマート・モジュールは特定のイベントを受信すると例えば、時系列データベースに書き込んだり、イベントをそのまま外部サービスにWebHookとして再送信したりすることができます。MODEが提供している、センサー・クラウドでも、デバイスの起動やセンサーの死活イベントなどを受け取り、Web画面でありながらリアルタイムなデバイスの状況を知ることができるようになっています。名前の通り、デバイスにコマンドを送信できる機能です。一過性の制御コマンドをデバイスに送信する場面で便利です。下図のようにJSONをMODEクラウドに送信すると、対象のデバイスがコマンドを受ける。デバイスがアクティブであれば、MODEクラウドはコマンドをデバイスに送信します。APIにより送信するだけです。MODEクラウドはデバイスがアクティブであれば送信し、デバイスはWebSocketかMQTTでコマンドをMODEクラウドから受信します。送信時にデバイスがアクティブでなければコマンドはMODEクラウドにより捨てられますが、ちゃんとクライアントにはエラーが通知される仕組みです。MODEのサービスのひとつであるセンサー・クラウドではこの仕組みを利用して、デバイスの接続センサーのスキャンや、デバイスの遠隔再起動やファームウェアアップデート実行指示などの機能を提供しています。サービス開発基盤ならではの機能で面白いと思っています。デバイス・データ・プロキシはMODEクラウドとデバイスが持つデータを同期するための機能です。データストアとデータの同期機能を同時に備えています。データストアとしては単なるキー・バリュー・ストアとして見ることができます。左端はIoTサービスの画面です。IoTサービスでセンサーの設定を与えると、デバイスにその設定値が送信されます。デバイス・データ・プロキシが便利なのは、デバイスはポーリングすること無く値の作成・変更・削除を知ることができるところにあります。デバイスはMQTTもしくはWebSocketを利用することで、変更が即時にMODEクラウドから通知されます。重要なことは、逆方向も同じ事ができることです。デバイスは値の作成・変更・削除をMODEクラウドに実行できます。インターネット上のサービスはその変更をMODEクラウドを通じて即時に受け取ることができます。IoTサービスの提供は状況に応じたサービスを提供することがこれにより簡単にできることができます。仮にデバイスとMODEクラウドが接続してない場合は、再接続時にすべての値を採取することができます。MODEクラウドから取得できるJSONに最終更新時のタイムスタンプが付与されおり、その値とデバイスが持っている値を比較する事で最新かどうかを知ることができます。IoTで悩ましいことのひとつは、デバイスのネットワーク接続が不安定なことでしょう。設定値や制御結果をクラウドとデバイスで同期を取る機構を作るのは「やればできるがスケーラブルに安定的に構築する作業というのは大変面倒」といった作業のひとつです。デバイス・データ・プロキシを利用することで、不安定な通信環境でも安定的にデータの同期や制御結果の同期を取ることができます。おわりに今回は基礎的な通信機能をご紹介しました。どれも、IoTな基盤には必要ながら、一見簡単に作れるけど、実際にプロダクションレベルでスケーラブルに安定的に作って運用するのは面倒な機能と思います。アーキテクトの村岡です。エンジニアの武田です。-はじめまして!MODE東京オフィスの篠田です。モビリティクラウドのご紹介カテゴリースターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。