クラウドエンジニアブログ

トイレIoTふたたび(2/3)

ソフトバンク・テクノロジー株式会社

伊崎 敏生

前回はトイレ側の構成を決めました。今回は Azure 側の構成を検討していきます。

Azure 構成を考える

デバイスからリアルタイムの可視化を Azure の IoT サービスを利用して構成する場合、IoT Hub(または Event Hub)、Stream Analytics、Power BI の組み合わせが考えられます。

Azure 構成を考える

しかし、トイレの混雑具合の表示という目的から考えると、いずれもサービスも機能的にも価格的にもオーバースペックです。複数のサービスを通すことは多かれ少なかれ、遅延が発生します。知りたいのは「現在のトイレの使用状況」であって、「数分前のトイレの使用状況」ではありません。

リアルタイム性を重視するなら、Web サーバから多数のユーザーのブラウザに対して更新データをプッシュ通知する機能が必要です。これはサーバ→ブラウザ方向のリアルタイム通信を実現する、マイクロソフト社提供の SignalR を利用すれば対応可能です。
SignalR は主に WebSocket によるソケット通信でリアルタイム通信を実現しますが、WebSocket が使用できない状況では自動的に他の技術(Ajax でよく使用されるロングポーリングなど)に切り替えてリアルタイム通信を提供する ASP.NET のライブラリです。ASP.NET なので Azure 側は IoT Hub や Event Hub ではなく Web Apps で構成することになります。

混雑具合
※白抜きアイコンは空室、色付きのアイコンは在室を示します。

ブラウザに表示する画面はアイコンの色を変更することで、ひと目で在室状況がわかるような構成にしました。ブラウザは SignalR を通じてデータ更新のメッセージをサーバから受信すると、ブラウザのリロードを待つこと無く即座にアイコンの色を変更します。

アイコンになっているので、既存のページに埋め込むことが可能です。例えば、社内ポータルサイトに埋め込むと、社員は画面を開いているだけでいつでも最新状況を確認することが出来ます。

構成図

構成図

随分とスッキリしました。
構成図には記載していませんが、実際には履歴保存のため BLOB ストレージなども使用しています。

これで Azure 側の構成も決まりました。後は構築だけ、なのですが…
次回は、無線通信ならではの問題など、見落としがちなポイントをお伝えします。


次回予告


【総合】お問い合わせ

ソリューションに関する全般的なお問い合わせはお気軽にご相談ください。

ピックアップ

セミナー情報
クラウドエンジニアブログ
clouXion
メールマガジン登録