1. Bluemix

ABC Hackathon
参加者向け
IBM Bluemix
体験会テキスト
1
© 2015 IBM Corporation
デバイスやセンサーのデータを扱う
マシン/センサー
データを取得
データを利⽤
⾒る/監視する
• ビジュアライズ
• 正常値・異常値の把握
アクション
ためる
• データを分析
2
© 2015 IBM Corporation
本日の内容
0. 事前準備
1. Bluemixの基本操作
データベース・サービスを使用したアプリケーション実⾏環境の構築
2. Internet of Thingsアプリケーションを作成する
センサーからのデータをプログラミングレスで利⽤
3
© 2015 IBM Corporation
事前準備編
1. Bluemix利⽤登録
2. Cloud Foundry CLI 導入
4
© 2015 IBM Corporation
1. IBM Bluemix 利⽤登録
http://ibm.biz/bluemixfree にアクセス
します。
ガイドに従ってサインアップします。
登録したアドレスに IBM Bluemixよりメールが
届きます。
メール本文内のリンクをクリックすることでア
カウントの有効化が⾏われます。
必ずこのステップを実施し、Bluemixに ログ
イン できることを事前に確認ください。
5
© 2015 IBM Corporation
Bluemix へログイン
まず初めに、Bluemix にログインします。
Webブラウザを起動し、Bluemix にアクセスします。下記URLを⼊⼒します。
http://bluemix.net/
表示された画面右上の「ログイン」 をクリックします。
IBM ID、パスワードを⼊⼒して「サインイン」ボタンをクリックします。
ログインが成功すると Bluemix の
Dashboardが表示されます
6
© 2015 IBM Corporation
作業する地域を確認する
Bluemixは、「米国南部」と「英国」の2つの地域で稼動しています。
上部メニューの 「地域」 をクリックすることで、稼動する環境を選択することができます。
今回は「⽶国南部」を利⽤します。地域が「⽶国南部」になっていることを確認してくだ
さい。
「英国」になっている場合は、「地域」をクリックして、「米国南部」を選択してください
7
© 2015 IBM Corporation
[補足] 「米国南部」選択時のポップアップへの対応方法
米国南部を選択した際に、スペースを作成するように指示するポップアップ・ウィンドウが表
示された場合は、任意の名前を⼊⼒し、作成をクリックしてください。
本資料では
スペース名として
「dev」を使用します
8
© 2015 IBM Corporation
[その1]
Bluemixの基本操作
データベース・サービスを
使用したアプリケーション
実⾏環境の構築
9
© 2015 IBM Corporation
ハンズオン手順
アプリケーション実⾏環境の構築
サービスの追加
アプリケーション実⾏環境の詳細
10
© 2015 IBM Corporation
アプリケーション実⾏環境の構築 (1/3)
1.上部メニューの”カタログ”にて、作成するアプリケーションの実⾏環境を選択します。
ランタイム カテゴリから、Node.js による JavaScriptの実⾏環境を選択します。
2.アプリケーション名とホスト名を指定して“作成”ボタンをクリックします。
任意の名前を指定します。
重複しているとエラーに
なるのでユニークな名称を
指定してください
11
© 2015 IBM Corporation
アプリケーション実⾏環境の構築 (2/3)
3.上部メニューの”ダッシュボード”をクリックし、作成中のアプリケーションを選択します。
30秒ほどでインスタンスの作成および起動が完了します。
画面右端の “アプリの正常性” のステータスが赤色から緑色に変わり、
「アプリは稼動しています。」のメッセージが表示されたことを確認してください。
これだけの手順で Node.js の実⾏環境が構築できました。
“アプリの正常性” のステータスが変わらない場合は、
Web ブラウザのリロード (F5キー)をお試しください。
12
© 2015 IBM Corporation
アプリケーション実⾏環境の構築 (3/3)
4.それではサンプルとして⽤意されたスターター・アプリケーションを実⾏してみましょう。
アプリケーションの “経路: “のリンクをクリックすると、作成された Node.js 上で
JavaScript のスターター・アプリケーションが動いていることが確認できます。
13
この例では、http://WebApp001.mybluemix.net/にアクセスしています
© 2015 IBM Corporation
サービスの追加 (1/2)
1.上部メニューの “カタログ” をクリックし、カタログからアプリケーションと連携させたい
サービスを選択します。 ここでは、先ほど作成した Node.js の実⾏環境に
SQL Database(DB2) のサービスを追加してみましょう。
2.サービスを追加するアプリケーションを指定し、”作成”ボタンをクリックします。
(“アプリケーション”の選択” で先ほど作成したアプリ名を指定します。)
SQL Database のサービス名や
プランはデフォルトのままでOKです
14
© 2015 IBM Corporation
サービスの追加 (2/2)
3.アプリケーションの再起動(再ステージ)の確認があります。OKボタンをクリックします。
4.約20秒ほどでサービスの追加が完了します。
アプリケーションの “概要” 画面の下部に、SQL Database サービスが表示される
ことを確認してください。 たったこれだけの手順で、アプリケーションからデータベースが
使用できるようになりました。
“アプリの正常性” のステータスが変わらない場合は、
Web ブラウザのリロード (F5キー)をお試しください。
15
© 2015 IBM Corporation
アプリケーション実⾏環境の詳細 (1/4)
〜リソースの動的追加
アプリケーションの “概要” の画⾯には、実⾏環境が使⽤するリソース情報が
表示されています。
ここで実⾏環境のリソース変更が可能です。
インスタンス : 3、メモリー : 384MB と指定して「保存」をクリックします。
再起動後、リソースが拡張されていることを確認してください。
16
© 2015 IBM Corporation
アプリケーション実⾏環境の詳細 (2/4)
〜リソースの動的追加
左端のメニューから ”SDK for Node.js” を選択します。
ページ上部で CPU やメモリーの使⽤率など、インスタンスの詳細情報が確認できます。
先程インスタンスを増やしたので、リストには3⾏が表示されています。
今度はリソースの縮退を⾏ってみましょう。
インスタンス : 1、メモリー : 64MB と指定して「保存」をクリックします。
リソースは増やすだけでなく、減らすこともできることを確認してください。
17
※画⾯の切り替えがうまくいかない場合は、Web ブラウザのリロード (F5キー)をお試しください。
© 2015 IBM Corporation
アプリケーション実⾏環境の詳細 (3/4)
〜ファイル/ログの参照
左端のメニューから ”ファイルとログ” を選択します。
実⾏環境のファイルシステム上にあるアプリケーション・ファイルやログ・ファイルを
参照したりダウンロードしたりすることができます。
※画⾯の切り替えがうまくいかない場合は、Web ブラウザのリロード (F5キー)をお試しください。
18
© 2015 IBM Corporation
アプリケーション実⾏環境の詳細 (4/4)
〜環境変数の参照
”SDK for Node.js” ページの下部にて、実⾏環境に設定されている環境変数の
情報が確認できます。(環境変数を新しく追加することも可能です)
連携に必要となる情報は、自動的に環境変数にセットされるので、アプリケーションは
これらの環境変数の値を取得して、サービスにアクセスします。
SQLDatabase 接続の場合
IPアドレス, ポート番号, DB名,
username, password などが
環境変数としてセットされます。
Bluemix では、Web ブラウザからアプリケーション実⾏環境の構築やサービスのバインド、
様々な運用管理作業ができることを確認いただきました。 お疲れ様でした!
19
© 2015 IBM Corporation
[その2]
Internet of Things
アプリケーションを
作成する
20
© 2015 IBM Corporation
ハンズオン手順
ボイラープレートでアプリケーションを作成する
Node-RED で IoT アプリを作成する
デプロイされたアプリケーションを確認する
21
© 2015 IBM Corporation
ハンズオンの概要
Internet of Thingsのボイラープレート(後述)を使用して、クラウド
上のセンサー・シミュレーターのデータを活用します。
ボイラープレートに含まれるNode-REDというツールを用いて、セン
サー・データ(温度、湿度など)を活用する IoT アプリをノンプログラミ
ングで作成します。
センサー・
シミュレーター
22
© 2015 IBM Corporation
ボイラープレートでアプリケーションを作成する (1)
Bluemix には予めランタイムやサービスを組み合わせたボイラープレート という
テンプレートが用意されています。
これを利⽤することで、簡単に Bluemix アプリケーションを開発することができます。
Bluemix の カタログメニューにボイラープレートを確認してください。
各ボイラープレートをクリックすると、それがどのランタイム、サービスを組み合わせたものか
説明されています。
23
© 2015 IBM Corporation
ボイラープレートでアプリケーションを作成する (2)
Internet of Things Foundationをクリックします。このボイラー
プレートは、以下のコンポーネントから構成されていることが分かります。
- SDK for Node.js
- Cloudant NoSQL DB
次のように⼊⼒し、 「作成」ボタンをクリックします。
名前: iotsample+末尾に任意の⽂字列
ホスト: 上記の名前がコピーされる
24
© 2015 IBM Corporation
ボイラープレートでアプリケーションを作成する (3)
左上の、「ダッシュボードに戻る」をクリックします。
ダッシュボードに iotsample アプリケーションと Cloudant NoSQL DB のサービスが追
加されることを確認します。
iotsample アプリケーションの状態が⻘信号になるのを待ち、右下のリンク・アイコンをクリ
ックします。
25
© 2015 IBM Corporation
Node-RED で IoT アプリを作成する (1)
Node-RED のページが表示されます。「Go to your Node-RED flow editor」ボタン
をクリックし、Node-RED フロー・エディターを起動します。
IoT (Internet of Things) は家電、⾃動⾞、ウェラブル・デバイスなどあらゆる「モノ」を
インターネットに接続し、お互いに情報をやりとりすることで新しい価値を⽣み出す概念
です。Node-RED は、IoT のフローを構築するためのビジュアル・ツールで、開発したシ
ステムを簡単に Bluemix にデプロイすることが可能になっています。ここでは、温度セン
サーにより取得したデータによって処理を変えるような IoT システムを作成していきます
。
26
クリック
© 2015 IBM Corporation
Node-RED で IoT アプリを作成する (2)
ここでは、Node-REDで接続するセンサーの情報を取得します。
Webブラウザーの新しいタブを開き、 ibm.biz/IoTsensor に接続します。
IoT Sensorは、IoT Cloud に接続するデバイスをエミュレートし、気温、湿度、
物体温度の情報を発信 (publish) することができます。
右上に当デバイスの MAC アドレスが表示されるので、メモしておきます。
タブは開いたままにして
おいてください。後ほど
使用します。
27
© 2015 IBM Corporation
Node-RED で IoT アプリを作成する (3)
Node-REDフロー・エディターによって、IoT アプリの処理フローを定義します。
サンプルのフローが以下のようにあらかじめ定義されているため、それらを削除してからハ
ンズオンをすすめます。フローの削除は、マウスでシフトキーを押しながら全ノードを選択
し、キーボードの Delete ボタンを押します。
28
© 2015 IBM Corporation
Node-RED で IoT アプリを作成する (4)
先ず、温度データの⼊⼒元である IoT Sensor のノードを定義します。左のパレットの
inputs:ibmiot を中央のキャンバスにドラッグドロップし、ダブルクリックします。
Edit ibmiot in node のダイアログ・ボックスで以下のように⼊⼒します。
Authentication: Quickstart
Input Type: Device Event
Device Id: xxxxxxxxxxx
(ここで、xxxxxxxxxxxは IoT Sensor の MAC アドレスを小文字にしてコロンを削除し
た⽂字列)
Name: IoT Sensor
「Ok」ボタンをクリックします。
29
© 2015 IBM Corporation
Node-RED で IoT アプリを作成する (5)
次に、IoT Sensor のデータから温度データを取り出す function ノードを定義します。
パレットの functions:function をキャンバスにドラッグドロップし、ダブルクリックします。
Edit function node のダイアログ・ボックスで以下のように⼊⼒します。
Name: temp
Function: return {payload:msg.payload.d.temp};
「Ok」ボタンをクリックします。
IoT Sensor と temp をマウスでつないでリンクします。
30
© 2015 IBM Corporation
Node-RED で IoT アプリを作成する (6)
次に、温度データの条件分岐を指定する switch ノードを定義します。
ここでは、温度40度以下と40度超で分岐するよう設定します。
パレットの functions:switch を中央のキャンバスに
ドラッグドロップし、ダブルクリックします。
Edit switch node のダイアログ・ボックスで以下のように⼊⼒します。
Name: temp thresh
分岐条件に以下のようになるように追加
( +rule ボタンをクリックして追加):
if msg.payload
<= 40
>
40
「Ok」ボタンをクリックします。
temp と temp thresh をリンクします。
31
© 2015 IBM Corporation
Node-RED で IoT アプリを作成する (7)
次に、条件ごとの処理を指定する template ノードを定義します。ここではメッセージ出
⼒をそれぞれ設定します。
パレットの functions:template を2つ、キャン
バスにドラッグドロップします。
1つ目のEdit template node の
ダイアログ・ボックスをダブルクリックし
以下のように⼊⼒します。
Name: safe
Template:
Temperature ({{payload}}) within safe
limits
「Ok」ボタンをクリックします。
2つ目のEdit template node のダイアログ・ボックスには以下のように⼊⼒します。
Name: danger
Template: Temperature ({{payload}}) critical
「Ok」ボタンをクリックします。
32
右図のようにリンクします。
© 2015 IBM Corporation
Node-RED で IoT アプリを作成する (8)
最後に、処理結果をモニター出⼒するための debug ノードを定義します。
パレットの outputs:debug をキャンバスにドラッグドロップし、
ダブルクリックします。
Edit debug node のダイアログ・ボックスで以下のように⼊⼒します。
Output: message property を選択
to: debug tab
Name: cpu status
「Ok」ボタンをクリックします。
template と cpu status を右図のようにリンクします。
33
© 2015 IBM Corporation
Node-RED で IoT アプリを作成する (9)
これまでのステップで下図のようなフローができあがります。右上の「Deploy」ボタンをクリッ
クし、アプリケーションをデプロイします。上部に “Successfully deployed” と表示されれ
ば、Bluemix へのデプロイは成功です。
右側のサイドバーを debug タブに切り替えます。(必要に応じ、右側にウィンドウが表示
されるよう操作します)
34
© 2015 IBM Corporation
デプロイしたアプリケーションを確認する
別タブで開いておいたIoT Sensor の⽮印ボタンをクリックし、温度を変更します。
IoT Sensor の温度が debug タブに出⼒され、40度以下のときは、”Temperature
(xx) within safe limits” と出⼒されることを確認します。
IoT Sensor の温度を上げて、40度を超えると “Temperature (xx) critical” と出⼒さ
れることを確認します。
35
Node-RED を使いビジュアルにインターネット上のデバイスをワイヤリングし、Bluemix の
node.js 上にデプロイする手順を確認しました。お疲れ様でした!
© 2015 IBM Corporation
IoTアプリの拡張を考える
ハンズオンではモニター⽤に画⾯出⼒し稼動を確認するまでにとどめていますが、
Node-RED を使⽤して様々に変更することが可能です。
Input/outputを組み合わせ、特定の条件を満たすデー
タを受け取ったら、担当者に通知するといったものから、コ
ーディングを追加してより⾼度なものにすることも可能で
す。
詳細は以下のサイトをご覧ください。
http://nodered.org/docs/
チュートリアル
Arduino Uno と IBM IoT Foundation を利⽤してクラ
ウド対応の温度センサーを作成する(全4回)
http://www.ibm.com/developerworks/jp/cloud/libr
ary/cl-bluemix-arduino-iot1/index.html
36
© 2015 IBM Corporation
補足
CloudFoundry コマンドライン・インターフェースの
セットアップ
37
© 2015 IBM Corporation
3. Cloud Foundry CLI 導入 (1)
コマンドベースでBluemixを操作するために、Cloud FoundryのCLI
(コマンドライン・インターフェース)を導入します。
https://github.com/cloudfo
undry/cli
にアクセスします。
下にスクロールし、「Downloads」セク
ションの「Stable Installers」から、環境
に合ったモジュールをダウンロードし、
導入します。
38
© 2015 IBM Corporation
3. Cloud Foundry CLI 導入 (2)
cf コマンドが実⾏可能であることを確認します。
コマンドプロンプトで “cf “と実⾏するとコマンドのヘルプが表⽰されます。
39
cf コマンドが認識されない場合は、導⼊ディレクトリーにパスが通っているか
どうかを確認してください。
© 2015 IBM Corporation