iotクラウドで拡がるbluemixの世界
TRANSCRIPT
IBM Bluemixwww.bluemix.net
IBM Bluemixそこが知りたい!
テクニカル・セミナー
日本アイ・ビー・エムシステムズ・エンジニアリング株式会社
メインフレーム・ミドルウェア 城戸健太郎エマージング・テクノロジー 橋本裕樹
日本アイ・ビー・エム株式会社
SWG WebSphere事業部 佐々木志門
IoTクラウドで拡がるBluemixの世界
© 2014 IBM Corporation2
IBM Bluemixwww.bluemix.net
アジェンダ
Internet of Things(IoT)の背景
IBMが提供するクラウド上のIoT環境
デバイス/Bluemixアプリケーションとの連携
Node-REDによるデバイスとサービスの連携
© 2014 IBM Corporation3
IBM Bluemixwww.bluemix.net
ご注意
この資料は日本アイ・ビー・エム株式会社および日本アイ・ビー・エム システムズ・エンジニアリング株式会社の正式なレビューを受けておりません。
資料の内容には正確を期するよう注意しておりますが、この資料の内容は2014年09月現在の情報であり、製品の新しいリリース、修正などによって動作/仕様が変わる可能性があります。
当資料は、資料内で説明されている製品の仕様を保証するものではありません。従って、この情報の利⽤またはこれらの技法の実施はひとえに使⽤者の責任において為されるものであり、資料の内容によって受けたいかなる被害に関しても⼀切の補償をするものではありません。
また、IBM、IBMロゴおよびibm.comは、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。現時点でのIBMの商標リストについてはhttp://www.ibm.com/legal/copytrade.shtmlをご覧ください。
© 2014 IBM Corporation4
IBM Bluemixwww.bluemix.net
Internet of Things(IoT)の背景
© 2014 IBM Corporation5
IBM Bluemixwww.bluemix.net
Internet of Things(IoT)の背景モノ
ヒト
場所
ヒト
10億
50億
500億
変曲点
グローバルな接続性
一人ひとりのモバイル
デジタル社会持続可能な成長
モノ
場所
ヒト
10億
50億
500億
変曲点
グローバルな接続性
一人ひとりのモバイル
デジタル社会持続可能な成長
© 2014 IBM Corporation6
IBM Bluemixwww.bluemix.net
IoT事例 ~ 北九州スマートコミュニティー創造事業
IBMスマートコミュニティー
情報統合基盤
IBMMiddleware
地域エネルギーマネジメント・システムスマート
メーター(低圧⽤)
ビル・商業施設・工場など
スマートメーター
スマートメーター(高圧⽤)
コンセントレーター
住宅
BEMS
BEMS
交通・JEMS
MQTTによる相互接続
CEMS連携モバイル・システム
HEMS
HEMS
IBM蓄電池等アセット管理システム
仕様/構成管理
設置/点検作業管理
トレーサビリティー管理
状態管理
計測情報管理
データ収集 大規模データ集積
データ加工・提供
最適配置分析
http://www-06.ibm.com/innovation/jp/smarterplanet/cities/kitakyusyu_201205.html
EMS:Energy Management System
© 2014 IBM Corporation7
IBM Bluemixwww.bluemix.net
IoTの特徴と通信プロトコルに求められる要件
デバイスの特徴
多種多様
膨大な数を接続する
小規模でマシンパワーが少ない
通信が不安定
通信プロトコルに求められる要件
軽量性: コンパクトで軽量なプロトコル
拡張性: クライアント増加に柔軟に対応
双方向性: 双方向でN:N型の通信
信頼性: 確実な転送
オープン性:可搬性向上、開発負荷の軽減
© 2014 IBM Corporation8
IBM Bluemixwww.bluemix.net
MQ Telemetry Transport (MQTT)
IoTやM2M環境に最適化された通信プロトコル
不安定な稼動環境、低帯域N/W環境で使⽤されるセンサー/端末向けに開発
オープンな仕様
コミュニティー・サイト(http://www.mqtt.org/) で情報公開
現在はMQTT V3.1を公開
OASISにて標準化が進められている
パブリッシュ/サブスクライブ型のメッセージング・モデル
トピックをベースに、通信相手を意識することなく双方向のN:N通信が可能
※M2M: Machine to Machine
パブリッシュ
サブスクライブ
MQTTクライアント
MQTTサーバー
MQTTクライアントパブリッシャー
Pub/Subブローカーサブスクライバー
サブスクライバー
MQTTプロトコル MQTTプロトコル
トピック
© 2014 IBM Corporation9
IBM Bluemixwww.bluemix.net
MQ Telemetry Transport (MQTT)
コンパクトで単純な設計
ヘッダー・フォーマットをビット単位で規定
固定長フィールド(2バイト)と可変長フィールド(0~12バイト)
単純なAPI(connect, publish, subscribe, disconnect)で、モジュールのフットプリントも軽量
TCP/IPを前提としたプロトコル
ネットワーク・レベルの転送はTCPで保証
QoS(Quality of Service)
クライアントの不安定な稼働環境を想定し、クライアント、サーバー間のメッセージ送達保証レベルを3種類規定
QoS = 0 :メッセージは1回のみ送信される(送信先に届くかは保証しない)
QoS = 1 :メッセージは最低1回は送信先に送られる(重複の可能性あり)
QoS = 2 :メッセージは必ず正確に1回送信先に送られる
© 2014 IBM Corporation10
IBM Bluemixwww.bluemix.net
IBMが提供するクラウド上のIoT環境
© 2014 IBM Corporation11
IBM Bluemixwww.bluemix.net
IBMが提供するクラウド上のIoT環境
クラウド環境上のIoT基盤(IoTファンデーション)の3要素
IoTファンデーションを利⽤するメリット
IoTアプリケーションのプロトタイプを即座に実行可能
準備済みMQTT基盤を利⽤することで、アプリケーションの開発に注力
•IBM Bluemix IoT Service•IBM Internet of Things Foundation •Node-RED
MQTT
アプリケーション開発者デバイス
準備済みMQTT基盤
IoTファンデーション
© 2014 IBM Corporation12
IBM Bluemixwww.bluemix.net
IBM IoT FoundationとIBM Bluemix
IBM IoT Foundation
クラウド上でMQTTサーバー機能を提供
デバイス/アプリケーションはMQTTプロトコルを使⽤し、IoT Foundationに接続
IBM Bluemix
ブラウザ・ベースのコーディネーション・ツールNode-REDを提供
Node-REDはIoTサービスを利⽤してIoT Foundationに接続
IBM Bluemix
MQTT
IBM IoTFoundation
MQTTサーバー
アプリケーション
アプリケーション
アプリケーション
IoTサービスMQTT
アプリケーションMQTT
MQTT
MQTT
MQTTクライアント
MQTTクライアント
© 2014 IBM Corporation13
IBM Bluemixwww.bluemix.net
IoT Foundation
IoT Foundation(Beta)
クラウド上でMQTTサーバー機能を提供
デバイスの認証機能を提供IBM IDを使⽤しサイン・イン後、認証トークンを発行
https://internetofthings.ibmcloud.com
Web API経由での登録も可能
Beta版では使⽤可能なデバイスを10に制限
Quickstartにてデバイスからの接続を認証なしで確認可能データ参照⽤GUI、センサーシミュレーターを⽤意
デバイス IoT Foundation
Quickstart
認証トークンを⽤いて接続 認証トークンを発行
認証なしでも接続可能
データ確認⽤GUIを提供
MQTT
MQTTサーバー
MQTT
※Beta版として提供(2014年9月現在)
© 2014 IBM Corporation14
IBM Bluemixwww.bluemix.net
デモ①:Quickstartダッシュボード デモ構成
手元の環境センサーで取得したデータ(温度・湿度など)をIoT FoundationのMQTTサーバーへ送り、そのデータをGUIで確認
IBM IoTFoundation
MQTT
サーバー
Quickstart
UI
MQTT
HTTP
ブラウザー
センサー
環境情報(気温や湿度など)を収集。
◆デモで使⽤するデバイス
TEXAS INSTRUMENTS SensorTag
パブリッシュ
MQTTクライアント
© 2014 IBM Corporation15
IBM Bluemixwww.bluemix.net
IoT Foundationが提供する接続(認証)種別
IoT Foundationは以下の接続(認証)種別を提供
以下を登録時にauth-token(認証コード)を発行
Devices
IoT Foundationに接続するデバイスを登録する
Device Type, Organization, Device ID(Macアドレス)を登録
API Keys
IoT Foundationに接続する(Bluemixを含む)アプリケーションを登録
© 2014 IBM Corporation16
IBM Bluemixwww.bluemix.net
(参考) IoT FoundationへのQuickstart接続
検証デバイスやアプリケーションからの接続を確認可能
デバイスはMACアドレスにて識別される
http://quickstart.internetofthings.ibmcloud.com/#/
デバイスから送信されたデータがグラフ化される
デバイスはMACアドレスで識別される
© 2014 IBM Corporation17
IBM Bluemixwww.bluemix.net
(参考) IoT Foundationへの接続チュートリアル
検証デバイスの接続チュートリアルを提供
検証デバイス向けにサンプル・プログラムも提供される
Texas InstrumentsやRasberry piなど
https://developer.ibm.com/iot/
© 2014 IBM Corporation18
IBM Bluemixwww.bluemix.net
IoT Service(Beta)
BluemixからデバイスにアクセスするためのBluemixサービス
IoT Foundationへの認証情報を登録
Node-REDアプリケーション(後述)が認証情報を利⽤
※Beta版として提供(2014年9月現在)
Bluemix IoT Service
IBM BluemixIBM IoT Foundation
アプリケーションIoTサービスMQTT
アプリケーションMQTT
認証トークンを登録
MQTTサーバー
© 2014 IBM Corporation19
IBM Bluemixwww.bluemix.net
Bluemix IoT Service
Internet of Things サービスの作成
API Keyを登録
認証トークンを登録
© 2014 IBM Corporation20
IBM Bluemixwww.bluemix.net
デバイス/Bluemixアプリケーションとの連携
© 2014 IBM Corporation21
IBM Bluemixwww.bluemix.net
デバイス/Bluemixアプリケーションからの接続
MQTTクライアントからIoT Foundationに接続
MQTTクライアント・ライブラリを利⽤して接続
代表的なMQTTクライアント
IBM Mobile Messaging and M2M Client Pack MA9BIBM提供のMQTTクライアント・ライブラリ
https://www.ibm.com/developerworks/connect/IBMmessaging
Java、C、JavaScript(for browser)をサポート
Eclipse Paho MQTT ClientsオープンソースのMQTTクライアント
http://www.eclipse.org/paho/
C, C++, Java, JavaScript(for browser), Python and Goをサポート
MQTT.jsNode.js⽤MQTTクライアント(JavaScript)
https://github.com/adamvr/MQTT.js
© 2014 IBM Corporation22
IBM Bluemixwww.bluemix.net
IoT Foundationへの接続要件
IoT Foundation への接続要件
MQTTバージョン: MQTT V3.1 (V3.1.1推奨)
接続先ホスト名
IoT Foundation
<orgid>.messaging.internetofthings.ibmcloud.com
※orgid: Bluemixアカウントにて使⽤するOrganization ID
IoT Foundation Quickstart
messaging.quickstart.internetofthings.ibmcloud.com
クライアントIDや接続先トピックも接続種別ごとに規定されている
詳細はInternet of Things Recipesを参照
https://developer.ibm.com/iot/
その他の制約
QoS=0のみをサポート
メッセージサイズは4096バイトまで(Quickstart)
トピックのサブスクライブが不可(Quickstart)
© 2014 IBM Corporation23
IBM Bluemixwww.bluemix.net
デモ②:Bluemixアプリケーション デモ構成
Bluemix上のデモ・アプリケーションからIoT FoundationのMQTTサーバーへ接続し、センサーから送られたデータをWebページで利⽤
IBM IoTFoundation
MQTT
サーバー
センサー
IBM Bluemix
Node.js
アプリ
MongoDB
センサー(ダミー)
MQTT
MQTT
HTTPブラウザー
WebSocket
環境情報(気温や湿度など)を収集。
太陽光発電のパワコン情報を収集(デモではダミー・データを送信しています)。
家庭⽤太陽光発電システムのダッシュボードを模したデモ・アプリケーション。
センサーから得られたデータはDBに蓄積し、ブラウザー画面へ⼀定間隔で反映(WebSocketを使⽤しています)。
パブリッシュ
サブスクライブ
MQTTクライアント
MQTTクライアント
© 2014 IBM Corporation24
IBM Bluemixwww.bluemix.net
Node-REDによるデバイスとサービスの連携
© 2014 IBM Corporation25
IBM Bluemixwww.bluemix.net
Node-REDとは
Node-REDとは
デバイス, API, オンライン・サービスのコーディネーション・ツール
IBM Emerging Technologyが開発
異なるイベント・ソースの処理を簡素化
ブラウザベースのUIで処理フローを作成し、直接実行環境にデプロイ
Node.js上でツールやランタイムが動作
デバイスでの実行も想定されたLight-weightなランタイム
BluemixのNode.jsでも実行環境を提供
Node-RED StarterもしくはInternet of Things Boilerplatesで使⽤可能
作成したアプリにてROUTES: のURLからUIにアクセス
© 2014 IBM Corporation26
IBM Bluemixwww.bluemix.net
Node-REDフローNode-REDフロー開発の流れ
処理ノードをパレットから選択しフローに接続
各ノードにて動作を設定後、「Deploy」ボタンをクリック
処理ノードをパレットから選択
デプロイボタンをクリック
各ノードの動作を設定
シートにドラッグ&ドロップし処理順にノードを結合
© 2014 IBM Corporation27
IBM Bluemixwww.bluemix.net
(参考) Node-REDフロー
幅広いタイプの処理ノードを提供
Input/Output: HTTP, TCP, UDP, MQTT, WebSocket、twilio, etc..
functions:JavaScript関数, delay制御, パーサー(HTML, CSV, JSON, XML), etc..
social: Twitter, IRC
storage: Cloudant, mongodb, redis
インプット、アウトプット関数、ソーシャル、ストレージ、分析
analysis: 感情分析
デフォルトのノードを追加することも可能
© 2014 IBM Corporation28
IBM Bluemixwww.bluemix.net
デモ③:Node-REDアプリケーション デモ構成
Bluemix上のNode-REDアプリケーションからIoT FoundationのMQTTサーバーへ接続し、センサーから送られたデータをフローで利⽤
IBM IoTFoundation
MQTT
サーバー
センサー
IBM Bluemix
Node-RED
フロー
Cloudant
MQTT
HTTPブラウザー
WebSocket
MQTT
外部サービス
TwitterHTTP
環境情報(気温や湿度など)を収集。
気温・湿度から不快指数を計算し、その結果に基づいてツイートするデモ・フロー。
パブリッシュ
サブスクライブ
MQTTクライアント
MQTTクライアント
© 2014 IBM Corporation29
IBM Bluemixwww.bluemix.net
まとめ
IoTファウンデーションによるIoTのためのクラウド環境
IBM IoT Foundation
クラウド上でMQTTサーバー機能を提供
IBM Bluemix
ブラウザ・ベースのコーディネーション・ツールNode-REDの実行環境を提供
クラウド上に準備済みのMQTT基盤を利⽤することで、MQTTサーバーなどを⽤意することなく、アプリケーションの開発に注力することが可能
© 2014 IBM Corporation30
IBM Bluemixwww.bluemix.net
IBM Bluemixwww.bluemix.net