IoT活用の懸念である「負荷と電池」もBluemixで解決
様々なビジネス活用が期待されているIoT。既に多彩なアプリケーションやシステムなどへの活用が始まっているが、同時に懸念点も指摘されている。その一つが「負荷の見積もり」だ。サーバにつながる機器がPCやワークステーションなどに限定されていた時代から、スマートフォンなどデバイス、さらにIoTとなれば、ありとあらゆるものから膨大なデータが流れ込むことになる。さらに更新頻度やデータ量の増加率まで考慮する必要があるとすると、ますます予測が難しくなるのは間違いない。
そしてもう一つ、機器側の電池の問題もあげられる。たとえば、イベントなどで通電していない機器を貸し出す場合、時間中の稼働を必ずしも担保できるとは限らない。特にHTTPプロトコルは負荷が大きく、テストでは動いても、台数が増えると途端に使えなくなることもある。負荷の高いプロトコルを使っているが故に、デバイス側の負担が大きく、電池使用量に直結するというわけだ。当然ながら、データフローチャートから実装するまでの実現性も、時間やコスト、人手の面で悩ましい問題といえるだろう。
こうしたIoT活用における問題を解決する方法として、木村氏は「HTTPに頼らず、より軽量なMQTT(Message Queue Telemetry Transport)を使うこと」、そして「“動く”フローチャートを作ること」の二つを提案し、その開発プラットフォームとして「Bluemix」をあげる。
BluemixはSoftLayerを基盤とし、Cloud FoundryというオープンソースのPaaS環境を活用した新しいクラウド・プラットフォームだ。「ランタイム」をクラウドで“超”迅速に提供する、簡単に言えばクラウド上の「アプリケーションサーバ」だ。いきなりJava、Node.js、Rubyなどといった任意の開発言語が使用可能であり、その下のLinuxやWindowsなどを意識する必要がない。つまり、起動までのコンフィゲーションが不要であり、1インスタンス起動するまでに、言語によるが30秒から1分程度で済むという。当然、Cloud Foundryならではのスケールイン&アウト機能もビルトイン済みだ。
そして、アプリケーションの機能を拡張するコンポーネント「サービス」もわずか30秒で連携(バインド)できるという。たとえば、リレーショナルデータベース、メモリキャッシュ、シングルサインオン、人工知能などが用意されている。
こうした「ランタイム」と「サービス」、そして時にアプリケーションまでも、典型的なパターンとしてすぐに使えるよう、「ボイラープレート」と呼ばれるテンプレート化がなされている。いささか前置きが長くなったが、ボイラープレートにはIoTアプリケーション作成を目的としたものも用意されており、その活用によって前述のような課題を解決できるというわけだ。
「Bluemix」とIoTサービス「IoT Foundation」を使い、20分足らずでセンサー連携アプリケーションを作成
木村氏がデモンストレーションとして立ち上げたボイラープレートには、Node.jsのアプリケーションサーバとNoSQLのデータベースが動いており、さらに「Node-RED」 という入力・出力・処理などの多彩なブロックを組み合わせるだけでデータのワークフローを作ることができるツールが含まれている。必ずしもIoT専用ツールというわけではないが、IoTデバイスやセンサーからのデータを簡単に取り込むことができる。
さらに、木村氏はIBM のクラウドサービス「IoT Foundations」で提供されている「オンラインIoTシミュレータ」を紹介。MACアドレスを持つセンサー付きIoTデバイスがクラウド上でソフトウェアとして提供されており、温度や湿度などの情報変更やMACアドレスによる数値取得が可能になっている。
このIoTシミュレータをエアコンの温度を監視するデバイスに見立て、Node-REDの入ったIoT用ボイラープレートを使って実際に「異常監視システム」をセッション中に作ろうというわけだ。
まず、IBM Bluemixにログインして、「カタログ」の「ボイラープレート」カテゴリから、「Node RED Starter」を選択し、IoTシミュレータのMACアドレスを取得しておく。そして、Node-RED エディタ画面で、"ibmiot"(IoT機器からの入力)のブロックを選択してホワイトボードに設置し、ダブルブロックして編集状態にしたところで取得したMACアドレスを設定すれば、もうこのブロックは、IoTセンサーシミュレータをエミュレートしていることになる。
さらに"function"(関数処理を設定する)、"switch"(分岐を設定する)、"debug"(出力する)、"Cloudant"(データベースに追加する)といったブロックを組み合わせ、フローチャートを作る。さらにBluemix のダッシュボード画面でデータベースを追加して、"Cloudant"の設定を行えば、IoTシミュレータからのデータが蓄積していくというわけだ。
ここまでの作業にかかったのは、わずか10分程度。ソースコードは1行も記述せずに、画面上でのドラッグ&ドロップと属性値の設定程度で、IoTシミュレータからのセンサーデータを受け取って、特定の条件に基づいて分岐させ、データベース内に格納・アラートを上げるといったシステムが構築できた。もちろん、IoTシミュレータのMACアドレスを実際の機械のセンサーに変えれば、そのまま実際のシステムとして使うこともできる。
また、それぞれのブロック内でJavaScriptを直接コーディングすることももちろん可能だ。しかしながら、それではワークフローとして見えにくく、他者からの把握が難しい。Bluemixを使ったIoTアプリ開発は、ブラックボックス化しないという意味でも有用というわけだ。
木村氏は「BluemixのIoTサービスとして用意されているMQTTを使って、センサーに負荷をかけることなく容易に連携ができ、さらにNode-REDによって『動くフローチャート』を作成することで、プログラミングをせずともスピーディにアプリケーションが構築できる」とまとめ、IoT活用におけるBluemixの有用性について強調し、セッションを終えた。
お問い合わせ
日本アイ・ビー・エム株式会社