SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【夏サミ2015】セッションレポート(AD)

【夏サミ2015】B2セッションレポート
IoTでToTにならないための「IBM Bluemix」~ビジネスチャンスを逃さない超高速IoTアプリ開発

  • このエントリーをはてなブックマークに追加

 近年大きな注目を集めるIoT(Internet of Things)のビジネスへの活用。その成否は、いかに“簡単に”大量のデータ収集と処理を実現するかにかかっていると言っても過言ではない。そこに大きな威力を発揮するのが、IBMのクラウド環境である「Bluemix」とIoTサービス「IoT Foundation」だ。Developers Summit 2015 Summer B2セッションでは、クラウド事業統括 クラウド・ソフトウェア事業部 Bluemixエバンジェリストの木村 桂氏が登壇し、その設計思想を紹介。さらに、実際のBluemixを使って温度管理を行うなどのデモンストレーションを行った。

  • このエントリーをはてなブックマークに追加
日本アイ・ビー・エム株式会社 クラウド事業統括 クラウド・ソフトウェア事業部 Bluemixエバンジェリスト 木村 桂氏
日本アイ・ビー・エム株式会社 クラウド事業統括 クラウド・ソフトウェア事業部
Bluemixエバンジェリスト 木村 桂氏

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シュミレータ
IoTシミュレータ

 このIoTシミュレータをエアコンの温度を監視するデバイスに見立て、Node-REDの入ったIoT用ボイラープレートを使って実際に「異常監視システム」をセッション中に作ろうというわけだ。

 まず、IBM Bluemixにログインして、「カタログ」の「ボイラープレート」カテゴリから、「Node RED Starter」を選択し、IoTシミュレータのMACアドレスを取得しておく。そして、Node-RED エディタ画面で、"ibmiot"(IoT機器からの入力)のブロックを選択してホワイトボードに設置し、ダブルブロックして編集状態にしたところで取得したMACアドレスを設定すれば、もうこのブロックは、IoTセンサーシミュレータをエミュレートしていることになる。

 さらに"function"(関数処理を設定する)、"switch"(分岐を設定する)、"debug"(出力する)、"Cloudant"(データベースに追加する)といったブロックを組み合わせ、フローチャートを作る。さらにBluemix のダッシュボード画面でデータベースを追加して、"Cloudant"の設定を行えば、IoTシミュレータからのデータが蓄積していくというわけだ。

Node-REDフローチャートの画面
Node-REDフローチャートの画面

 ここまでの作業にかかったのは、わずか10分程度。ソースコードは1行も記述せずに、画面上でのドラッグ&ドロップと属性値の設定程度で、IoTシミュレータからのセンサーデータを受け取って、特定の条件に基づいて分岐させ、データベース内に格納・アラートを上げるといったシステムが構築できた。もちろん、IoTシミュレータのMACアドレスを実際の機械のセンサーに変えれば、そのまま実際のシステムとして使うこともできる。

 また、それぞれのブロック内でJavaScriptを直接コーディングすることももちろん可能だ。しかしながら、それではワークフローとして見えにくく、他者からの把握が難しい。Bluemixを使ったIoTアプリ開発は、ブラックボックス化しないという意味でも有用というわけだ。

 木村氏は「BluemixのIoTサービスとして用意されているMQTTを使って、センサーに負荷をかけることなく容易に連携ができ、さらにNode-REDによって『動くフローチャート』を作成することで、プログラミングをせずともスピーディにアプリケーションが構築できる」とまとめ、IoT活用におけるBluemixの有用性について強調し、セッションを終えた。

BluemixのIoTサービスを現実に使う時の仕組み
BluemixのIoTサービスを現実に使う時の仕組み

お問い合わせ

日本アイ・ビー・エム株式会社

IBM Bluemix 関連情報

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8900 2015/09/01 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング