3月13日にニフティクラウド mobile backend 勉強会 #7「IoT × ネットワーク」が開催されました。70名超の方々がご参加いただき、NTTコミュニケーションズの小松さん、ぷらっとホームの松下さんにお話を伺いました。
今回はその勉強会レポートになります。その2として、ぷらっとホームの松下さんの発表を紹介したいと思います。
IoT時代のデータ伝送とインフラに求められている機能と技能
http://www.slideshare.net/ma2shita/iot-mobile-backend-7-45870569
実際の案件において、センサーを搭載したロボットを使ったIoTサービス構築において、ネットワーク仕様が「3G」しか書いていなかったというのがありました。SIerはセンサーやクラウドに関する知識は十分にあるにも関わらず、ことネットワークにおいては考えが及んでいないことが多々あります。
IoTネットワークの特徴
IoTにおけるネットワークは3Gが使われることも多いので、回線は不安定であり、接続台数は多い傾向があり、さらにその通信は双方向性になります。そして最大の特徴として、ヒトの助けを得がたい(運用カバーがしづらい)という問題があります。実際、IoT機器は遠隔地にあり、かつ作業者も専門知識がない人が多いので自分で解決してもらうというのは難しいとのことです。
具体的には、送信できるかどうか確認であったり、アップデート、トラブル解決です。
ゲートウェイにかかる期待
センサーがシンプルな分、ゲートウェイで面倒ごとをすべて行おうという傾向も問題になっています。例えば暗号化やプロトコルの問題、データ圧縮、再接続や再送、センサー側からの利用、ディスク管理、クラウド送信前の加工などです。本来、ゲートウェイはシンプルなデータ転送に特化し、後の処理はクラウドでやるべきなのですが、業務要件によっては難しい場合があります。
そこでマトリックスを使って考えるのがお勧めです。
そしてゲートウェイ側で実装した方が良い機能の候補としては、
- 再送、メッセージ圧縮
- 送信タイミングをずらす、バッファリング
- ポーリング、双方向通信
- ログローテーション
- キックバックプログラム起動機構
例えば送信タイミングをずらすというのは、IoTデバイスをグルーピング化して送信を10分ごとにずらしたりすることでネットワークやクラウドの負荷を分散することが出来ます。
まとめ
- IoTをやるならば「ハードウェア(センサー)」「ネットワーク」「アプリケーション」の知識が必須
- ネットワークはクライアント、SIerともに興味が薄く、差別化しづらいのが実情
- 運用でカバーは期待できない
Q&A
Q. UnionFSを採用している理由
UnionFSはスタックで重ねていく形なので、元々のシステム上の問題か、その後のアプリケーションの問題かの切り分けがしやすい。ただしリソースが小さい(現状は4GB程度)ので、もっと有効活用したい時には採用が難しいかも知れない。
Q. リモートのメンテナンスについて
SSHのttyをWebSocketに載せるツールを作っています。それを使って外部デバイスからサーバに接続してもらって、開いたコネクションを使ってデバイスを操作しています。
Q. ゲートウェイとクラウドの実装効率について
デバイスによって異なりますが、例えばぷらっとホーム社で開発しているOpenBlox BX1の場合はフルスタックのLinuxが積んであるので普通のプログラミング言語が使えます。そのため実装効率はリソースの差でしかありません。しかし特化型OSを使っている場合、利用できる言語も限られてくることもあり、元々ハードウェアエンジニアの領分だったゲートウェイにソフトウェア開発が加わると責任分担が難しくなり、プロジェクトのトラブルにつながることがあります(あった)。