IoTに最適化されたMQTTプロトコルとそれを実現する技術

“Internet of Things”
モノとモノが繋がるインターネットで広がる”Connected Life”
May 30, 2014
Tohru Suzuki
WebSphere, IBM Japan
© 2014 IBM Corporation
Mobile …ビジネス成長の新しいフロンティア
Mobile B2C
• コンシューマーにとって
“anytime, anywhere”の銀
行手続きや保険手続き、
株取引などを実現するこ
とによる高い満足度の実
現
• MobileやSMSを通した
コンシューマーとの新しい
コミュニケーションチャネ
ルの実現
2
Mobile B2E & B2B
• 現場作業者との効果的な連
携による大幅な生産性の向
上
• サプライ・チェーンの処理に
おける効率と正確性の大幅
な向上
• ビジネス・パートナーとのセ
キュアな情報交換・共有を
実現
(Mobile) M2M
• Machine と machineをつな
いでデータやイベントを伝
達・交換・発信し、
新たなビジネス機会を創出
する
• “Internet of Things” –
センサーやデバイスからの
大量の情報とその効果的な
活用が “smarter planet”の
実現を促進する
© 2014 IBM Corporation
なぜmobile/machine-to-machineには「メッセージング」か?
HTTPはこれまでのデータ伝達をリードしてきました
シンプルな要求/応答型モデル
PC, ラップトップ, タブレット, スマートフォンなどさまざまなデバイス
で使用可能
ワイヤレスやM2Mでの通信に最適化されていない
Mobileネットワークでは低速かつ低信頼性が問題に
MobileやM2Mでは新たな挑戦が表面化しています
イベント起動型でリアルタイムのモデルが必要とされています
イベント起動型
1 対 多のpublish型での情報伝達
イベントが発生するタイミングでのlistenが必要
小さいパケットのデータを大量・高頻度
大量・高頻度に送受信
大量・高頻度
装置への接続など低信頼性ネットワークでも
高い信頼性でのプッシュ通知が必要
高い信頼性
3
© 2014 IBM Corporation
Internet of Things – BigDataの牽引力
モノ
500億
億
デジタル社会
持続可能な成長
一人ひとりの
モバイル
グローバルな
グローバルな
接続性
4
変化
点
ヒト
50億
億
場所
10億
億
© 2014 IBM Corporation
“Internet of Things”
物と物が繋がるインターネットでの新しい市場の予測
• 「人と人」、「人とモノ」から
「モノとモノ」へ
• M2M: Machine-to-Machine
のネットワーク
2020年の
年の”Connected
Life”ビジネス予測
ビジネス予測
年の
1.“Connected Car”
$6000億ドル
2.遠隔医療モニタリング
$3500億ドル
3.住環境支援
$2700億ドル
4.家庭/ビルのセキュリティ
$2500億ドル
5.「Pay-as-you-drive」自動車保険$2450億ドル
6.自動車の新しい用途・用法
$2250億ドル
7.スマートメーター
$1050億ドル
8.交通制御・管理
$1000億ドル
9.電気自動車の充電・管理
$750億ドル
10.ビルの自動化
$400億ドル
http://www.gsma.com/newsroom/gsma-announces-the-business-impact-of-connected-devices-could-be-worth-us4-5-trillion-in-2020/
5
© 2014 IBM Corporation
MessageSight お客様事例 - “Sprint Velocity”
1. オーナーが
「開錠」キーを押すと
SPRINT VELOCITY℠
3.クルマへ「アンロック」
コマンドが送付され、
クルマがアンロックされる
• MessageSightの採用に
より、レスポンスタイムが
30秒から→50ミリ秒
ミリ秒へ
ミリ秒
改善された
Connected car
6
2. Sprintがユーザー
を認証し
© 2014 IBM Corporation
“Connected Pipeline” – リアルタイムでの制御と保守
• 17,000kmのパイプライン
• 30,000個のセンサーで監視
Storage
Temperature
Pressure
Refineries
Spill location
Pumps
従来は…
• 数分間隔でのポーリング
• 要員の派遣により対応
数秒で元栓を締める
(保守要員の到着を
待つ必要がない)
7
パイプラインの
センサーにおいて
油圧の急減が
検知されたら
M2Mで送信された
データを解析し
適切な対応を指示
© 2014 IBM Corporation
“Connected City” – より安全な暮らしへ
救命ヘリ出動!
衝突の衝撃!
急ブレーキ!
エアバッグの使用
警告!
警告!
警告!
警告!
警告!
8
© 2014 IBM Corporation
視聴者のチャ
ンネルの変化
を即座に通知
“Connected TV”
本社
オフィス
視聴者の志向
に応じたコマー
シャルを放送
視聴者の好み
にあった
コンテンツを
配信
多くのユーザー
双方向の通信
に登録
9
© 2014 IBM Corporation
“Connected Patient” – よりよい生活へ
St. Juda Medical病院では、心臓ペースメーカーを装着されている患者さんの体調を
遠隔監視
M2Mの仕組みにより、体調変化の予兆や来院回数の間隔から早期に異常を検知
患者さんの脈
拍、心拍数など
を病院へ送信
患者さんの状
態をほぼリアル
タイムで確認
source: sjm.com
10
© 2014 IBM Corporation
モバイル・アプリケーション(個人投資家向けの例)
第三者との接続を必要としない、セキュアで信頼性の高いメッセージ交換
最適化されたストリーム・データ(株価, 市場ニュース…)
高速なレスポンスによる高次元の顧客体験 (準リアルタイムでの情報配信)
株価情報等を多数の
ユーザーへ一斉同報配信
株価情報
顧客からの
株取引要求
株の売買要求を
高い信頼性で送受信
11
© 2014 IBM Corporation
IBMのメッセージング・テクノロジー
M2Mのトラフィックに最適化されたMQTTプロトコル
大量、高速なメッセージングを実現するハブとしてのMessageSight
M2Mを実現する
MQTTプロトコル
IBM
IBM Integration
Integration Bus
Bus
広範な接続性と柔軟な
広範な接続性と柔軟な
連携をサポートするESB
連携をサポートするESB
MessageSight
メッセージングハブ
IBM Integration Bus
MQTT Client
Telemetry Service
IBM MessageSight
MQTT Client
MQTT Client
MQTTクライアント
クライアント
MQTTクライアント
クライアント
メッセージを送受信
メッセージを送受信
するクライアント機能
するクライアント機能
WebSphere MQ
IBM
IBM MessageSight
MessageSight
大量のメッセージング
大量のメッセージング
処理に特化した
処理に特化した
「メッセージング・ハブ」
「メッセージング・ハブ」
豊富なバックエンド
サーバー機能
12
InfoSphere Streams
WebSphere
WebSphere MQ
MQ
メッセージングの基盤を
メッセージングの基盤を
提供
提供
© 2014 IBM Corporation
MQTT: MQ Telemetry Transport
軽量、非同期、双方向、大量処理、m2mプロトコル
13
© 2014 IBM Corporation
MQTTとは
HTTPと比べて圧倒的に軽量なプロトコル
と比べて圧倒的に軽量なプロトコル
1.
•
•
非同期、双方向通信:
2.
•
•
電話(HTTP)からメール・チャット(
)からメール・チャット(MQTT)へ
電話(
)からメール・チャット(
)へ
モバイルでのnativeなpush通知が可能に
Pub/Subによる大量同報通知
オープン仕様:
3.
•
•
14
トラフィックが10分の1に ⇒ 10倍のスループット、電池の消費量が10分の1以下に
MQTTのヘッダーは2バイト
ベンダーロックインを回避
標準化によるデバイス開発コストの削減に寄与
通信が切れる事態を想定した機能など
© 2014 IBM Corporation
非同期、双方向通信を実現するPublish / Subscribe型メッセージ通信
送信プログラムと受信プログラムが”topic”(トピック)を介して1対Nで通信
受信側
サブスクライバーA1
サブスクライバーA1
サブスクライバーA2
サブスクライバーA2
送信側
サブスクライブ(トピックA)
トピックA
パブリッシュ
サブスクライブ(トピックA)
トピックA
パブリッシャーA
パブリッシャーA
トピックB
パブリッシャーB
パブリッシャーB
トピックA
サブスクライブ(トピックB)
サブスクライバーB1
サブスクライバーB1
・
・
サブスクライバーB2
サブスクライバーB2
サブスクライバーBn
サブスクライバーBn
トピックB
サブスクライブ(トピックB)
トピックB
MQTT
MQTT
サーバー
サーバー
パブリッシュ
サブスクライブ(トピックB)
トピックB
Publish/Subscribe型メッセージ配信
型メッセージ配信
① サブスクライバーが、受信したいトピックにサブスクライブ(購読)登録
② パブリッシャーが、トピックに対してパブリッシュ(送信)
③ 該当トピックにサブスクライブ登録しているサブスクライバーにメッセージが配信さ
れます
15
© 2014 IBM Corporation
接続が切れている間の配信メッセージ – “Clean セッション”
•クライアントが切断された際に、サーバーがそのクライアントを「覚えている」かを指定します
サブスクライバー1
Subscription
Topic A
Publish
サブスクライバー2
Subscription
Topic A
CleanSession = true
サブスクライバー3
MQTT
サーバー
Publish
Topic A
パブリッシャー1
Topic A
パブリッシャー2
Subscription
Topic A
CleanSession = false
CleanSession = true
サーバーはクライアントを「覚えて」おらず、切断後には新たなCleanSessionが開始されます
CleanSession = false
サーバーはクライアントが切断した際にそのクライアントのことを「覚えて」います
サーバーは当該クライアントのsubscriptionに該当するメッセージを保持し、当該クライアントが再接続
した時点で保持したメッセージを伝達します
16
© 2014 IBM Corporation
最新メッセージを常に保持 – “Retained メッセージ”
•Publisherはメッセージを送出時に、そのメッセージを”retain”するかを指定します
•その後subscribeしたクライアントへ、サーバーからメッセージが伝達されます
サブスクライバー1
サブスクライバー2
Subscription
Topic A
Subscription
Topic A
MQTT
サーバー
(Pub/Sub
ブローカー)
Publish
Topic A
パブリッシャー
Topic A
サブスクライバー3
Subscription
Topic A
“Retained”の仕組みにより、サーバーは最新(最後)のメッセージを保持します
クライアントが再接続した時点で、
“ retained”メッセージは伝達されます
サーバーはトピック毎に「ひとつだけ」retainedメッセージを保持します
“Retained”メッセージの使用ではpublisherはひとつだけであることが推奨されています
“Retained”メッセージは長さがゼロのメッセージを送付することにより削除されます
17
© 2014 IBM Corporation
MQTT の特徴: Last Will & Testament (LWT) / 遺言メッセージ
予期せずクライアントが切断された場合に、指定したトピックへ自動的にメッセージ送信
する機能
ネットワーク断線やデバイスの故障などで、接続が切れた場合に通知メッセージを送信できる
クライアントは事前にLWTメッセージをMQTTサーバーに登録しておく(トピック名、メッセージを
指定)
クライアントが切断された場合には、MQTTサーバーが登録されていたLWTメッセージの内容に
したがってメッセージをパブリッシュ
LWTメッセージを受け取ったアプリケーションが適切なアクションを実行できる
クライアント・デバイスなど
サブスクライバー1
LWT
MQTT
Server
モニター・アプリケーション
Subscription
LWT
18
サブスクライバー2
© 2014 IBM Corporation
© 2014 IBM Corporation
PublisherとSubscriber – 非依存、非同期、双方向
19
Subscriberは、関心のある経路へsubscribeするだけで、、
© 2014 IBM Corporation
Topic – 階層構造で指定
トピックの構造
地点座標
パブリッシュ
時刻
publisher
カテゴリー
サブスクライブ
“35x139地域の
情報は?”
“35x139/#”
“2/26 午後2時の
情報は?”
“+/201402261400/#”
20
“35x139/1402261400/
congestion”
“35x139/1402261400/
weather”
© 2014 IBM Corporation
サービスレベルを指定可能 – “Quality of Service”
QoS(Quality of Service)
クライアントの不安定な稼働環境を想定し、クライアント⇔サーバー間のメッセージ
送達保証レベルを3段階で指定可能
QoS = 0 :メッセージは1回のみ送信される
(最も速い、障害時には保証されない)
QoS = 1:メッセージは最低1回は送信先に送られる
(重複の可能性あり)
QoS = 2:メッセージは必ず正確に1回だけ送信先に送られる
(もっとも信頼性が高い)
QoS 0
PUBLISH
QoS 1
PUBLISH
PUBACK
パブリッシャー
(送信側)
MQTTサーバー
(Pub/Subブローカー)
パブリッシュ
サブスクライバー
(受信側)
サブスクライブ
QoS 2
PUBLISH
PUBREC
QoS 0/1/2
21
QoS 0/1/2
PUBREL
PUBCOMP
© 2014 IBM Corporation
HTTPS と MQTT – パフォーマンス比較
HTTPS vs MQTT on Android.
スループットと電池の使用量の顕著な差
3G
Wifi
HTTPS
MQTT
HTTPS
MQTT
messages / hour
1,708
160,278
3,628
263,314
% battery / msg
0.01709
0.00010
0.00095
0.00002
messages / hour
1,926
21,685
5,229
23,184
% battery / msg
0.00975
0.00082
0.00104
0.00016
receive
send
Source: http://stephendnicholas.com/archives/1217
22
© 2014 IBM Corporation
MQTT: シンプルなコードで実装可能
import org.eclipse.paho.client.mqttv3.*;
・・・MQTT用のパッケージ
public class MqttPubSync {
public static void main(String[] args) {
try {
MqttClient client = new MqttClient("tcp://localhost:1883", “PubClient001");
・・・クライアントの作成
MqttConnectOptions conOptions = new MqttConnectOptions();
conOptions.setCleanSession(false);
client.connect();
・・・接続オプションの設定
・・・クリーン・セッション設定
・・・接続の実施
MqttTopic topic = client.getTopic("/MQTT/Examples");
MqttMessage message = new MqttMessage("Hello World!".getBytes());
message.setQos(1);
・・・トピックの作成
・・・メッセージの作成
・・・QoSの設定
MqttDeliveryToken token = topic.publish(message);
token.waitForCompletion(10000);
・・・パブリッシュの実施
・・・確認応答待ち
client.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
・・・接続の切断
}
}
23
※上記は簡略化したコード・イメージであり、稼動を保証するものではありません。
© 2014 IBM Corporation
プログラミング例 – MQTT in JavaScript
/* Sample connect function */
function connect(form) {
try {
client = new Messaging.Client(form.host.value, Number(form.port.value),
form.clientId.value);
} catch (exception) {
alert("Exception: “ + exception);
}
client.onConnect = onConnect;
client.onMessageArrived = onMessageArrived;
client.onConnectionLost = connectionLostCallback;
client.connect();
}
/* Sample send function */
function send(form) {
message = new Messaging.Message(form.textMessage.value);
message.destinationName = form.topicName.value;
client.send(message);
}
/* Sample subscribe function */
function subscribe(form) {
client.subscribe(form.subscribeTopicName.value);
}
24
© 2014 IBM Corporation
MQTT over TCPとUDPの比較
MQTT over TCP
通信の信頼性
TCPの再送機能およびMQTTのQoS機能
UDP
一回送付するのみ(「送りっぱなし」)
により実現
セキュリティ
一対多の通信
個別に接続先を認識して接続し、必要に
IPアドレス・ポートへ送付するのみ。
応じて認証・認可を行ってから送受信を行
う
移動体通信においてIPアドレス・ポートの
MQTTのPublish/Subscribeで実現。
Broadcastで実現。
Topicの構造化によりコンテンツに応じて
コンテンツによる送付範囲の限定は困難。
使用者が変化する事態への対応が困難。
送付対象範囲を限定・特定することが可能。
スマートフォン
との接続
25
クライアント側から接続してから通信が
開始されるため、ネイティブなpush通知が
可能
Network/Carrierにより、push通知が困難
な場合があると想定。
(サーバー側でクライアントのグローバルIP
アドレスが不明・入手困難など)
© 2014 IBM Corporation
リクエスト/レスポンス型通信(HTTP)とリアルタイム・プッシュ型通信(MQTT)
HTTPではリクエストに対するレスポンスとして情報が伝達される(擬似push)
クライアントからの問い合わせが行われるまで、サーバーからの情報が伝達されない
MQTTでは情報が発生する都度、リアルタイムのpushで情報が伝達される
クライアント
HTTP
MQTT
接続の確立
問い合わせ(空振り)
送信したい
情報が発生
即時にpushで伝達
送信したい
情報が発生
即時にpushで伝達
送信したい
情報が発生
遅延
問い合わせ
情報が伝達される
問い合わせ(空振り)
送信したい
情報が発生
遅延
問い合わせ
26
情報が伝達される
© 2014 IBM Corporation
リクエスト/レスポンス型通信(HTTP)とリアルタイム・プッシュ型通信(MQTT)
クライアントからの問い合わせの頻度を多くすることでHTTPのサーバーからクライアントへの情報伝達での
遅延を小さくすることができる
空振りに終わる「問い合わせ」リクエストが頻繁になり、通信コストが増大する
HTTP
MQTT
問い合わせ(空振り)
問い合わせ(空振り)
遅延
問い合わせ
情報が伝達される
接続の確立
送信したい
情報が発生
即時にpushで伝達
送信したい
情報が発生
即時にpushで伝達
送信したい
情報が発生
問い合わせ(空振り)
問い合わせ(空振り)
問い合わせ(空振り)
問い合わせ(空振り)
問い合わせ(空振り)
問い合わせ(空振り)
問い合わせ
遅延
情報が伝達される
送信したい
情報が発生
問い合わせ(空振り)
問い合わせ(空振り)
問い合わせ(空振り)
27
© 2014 IBM Corporation
M2M – MobileFirstでのアプリ開発
Worklight Hybrid app –
HTML5, CSS, JavaScript, Images
m2m for JavaScript
Worklight API
Worklight
Javascript
API
messaging
javascript
Common
Controls
Device API
javascript/native Bridge (PhoneGap)
m2m plugin
Worklight
API
Device APIs
m2m PhoneGap plugin built on IBM contributed eclipse paho eclipse.org/paho
28
© 2014 IBM Corporation
28
MQTTを使用したHTML5 web appのデモ
Subscriber
Publisher
29
AutoRemote/<name>/settings
AutoRemote/<name>
Publisher
Subscriber
© 2014 IBM Corporation
IBMのメッセージング・テクノロジー
M2Mのトラフィックに最適化されたMQTTプロトコル
大量、高速なメッセージングを実現するハブとしてのMessageSight
M2Mを実現する
MQTTプロトコル
IBM
IBM Integration
Integration Bus
Bus
広範な接続性と柔軟な
広範な接続性と柔軟な
連携をサポートするESB
連携をサポートするESB
MessageSight
メッセージングハブ
IBM Integration Bus
MQTT Client
Telemetry Service
IBM MessageSight
MQTT Client
MQTT Client
MQTTクライアント
クライアント
MQTTクライアント
クライアント
メッセージを送受信
メッセージを送受信
するクライアント機能
するクライアント機能
WebSphere MQ
IBM
IBM MessageSight
MessageSight
大量のメッセージング
大量のメッセージング
処理に特化した
処理に特化した
「メッセージング・ハブ」
「メッセージング・ハブ」
豊富なバックエンド
サーバー機能
30
InfoSphere Streams
WebSphere
WebSphere MQ
MQ
メッセージングの基盤を
メッセージングの基盤を
提供
提供
© 2014 IBM Corporation
MessageSight
M2Mとモバイルのための
メッセージング・ゲートウェイ アプライアンス
31
© 2014 IBM Corporation
Introducing IBM MessageSight
IBM MessageSightはメッセージングに特化したアプライアンスです
お客様のビジネスにおいて、MobileやM2M(machine-to-machine)の爆発的な増加・進
化への対応を実現します
お客様の既存のメッセージング基盤をシンプルかつセキュアに強化し、インターネットへ
のM2M接続を実現します
リアルタイムの解析処理やイベント処理を可能にします
32
© 2014 IBM Corporation
IBM MessageSight - M2Mに最適なメッセージング・アプライアンス
大量のメッセージング
セキュリティと信頼性
容易な構築と運用
Massive
Scale
Secure
and
Reliable
Easy
to Use
1台あたりの能力
- 同時接続100万台
- 秒間1000万件以上のメッセージ
HTTPSとの比較
- 93倍高速
- 1/10の消費電力
- 1/8の帯域使用
33
DMZに配置できるセキュリティー
- 専用ハードウェア、ファームウェア
- FIPS 140-2 対応、アクセス制御
信頼性の高い転送
- QoS(Quality of Service)オプション
- High Availability 構成可能
構築
- 30分で稼動状態に構成可能
- WebGUIからタスクベースで設定
運用管理
- 自動的なモニターとGUI画面表示
- 最適化された管理機能
© 2014 IBM Corporation
IBM MessageSightの特長
12のネットワークインターフェース
DMZへの配置可能なアプライアンスとしてのセキュリティ
- 専用ハードウェア、専用ファームウェア
- 署名および暗号化されたファームウェア Secure
and
Reliable
Firmware
1GbE ポート x 8
管理用ポート x 2
データ処理用ポート x 6
40GbE ポート x 4
Massive
Scale
Easy
to Use
ハードウェア
- 2Uのアプライアンス
- 専用ハードウェアによる最適化
- 4 x 900 GBのハードディスク
構成管理
構成管理:
管理 WebUI or CLI
モニタリングも可能
34
© 2014 IBM Corporation
IBM MessageSightの価値
アプライアンスとしてMQTTメッセージング機能に特化し最適化
パフォーマンス
MQTTメッセージング処理に
最適化された桁違いの性能
セキュリティ
DMZに配置できる高セキュリティ性
ポリシーベースのアクセス制御
高機能・容易性
容易、短期間での構築
HA機能、運用管理機能も充実
構成管理画面
運用管理
運用・管理機能
セキュリティー
ポリシーベースの
バックエンド
機能
構成管理
接続機能
(ポリシーベース)
(効率的な
(MQ、JMS) 高可用性
・認証認可
構成、監視、管理)
機能
(HA機能)
MQTTサーバーランタイム
構成管理
ランタイム
MQTTに特化したパフォーマンス
最適化されたハードウェア
・高パフォーマンス
・高セキュリティ
ハードウェア
汎用サーバーで
実現される部分
IBM MessageSight
35
© 2014 IBM Corporation
IBM MessageSight パフォーマンスレポート
WebサイトにてIBM MessageSightのパフォーマンス・レポートを公開
http://www-01.ibm.com/support/docview.wss?uid=swg24035590
•
•
•
•
•
•
36
Key Result
毎秒40万以上のメッセージを不揮発性メディアにストア
100万のMQTT v3.1のデバイスが60秒以内に接続
35万のMQTT v3.1のアプリケーションから、毎秒1メッセージを処理
毎秒1500万のメッセージを大量のアプリケーションにパブリッシュ
毎秒1万メッセージの処理を平均遅延85マイクロ秒で処理
毎秒20万のMQTT QoS0のメッセージをWMQバックエンドに転送
© 2014 IBM Corporation
IBM MessageSightの配置と構成
組込デバイス用のC/Java
ライブラリーの提供
Java EEやESBと連携する
ためのJMSサポート
JavaScript APIによりHTMLベースの
アプリケーションでも双方向通信を
容易に実現
シームレスなMQとの連携を
サポートするMQ Connectivity機能
ブラウザ・ベースの管理WebUI
Websocket:
AjaxやComet などと違い、
サーバーとクライアント間で、一度接続が確立
すると双方向通信を行うことができる通信規格。
HTML5に追加されている。
37
© 2014 IBM Corporation
MessageSight 初期設定
構成に必要な時間は30分程度
用意するもの
MessageSight本体
Ethernetケーブル 2本
USB接続のキーボード
VGA接続のモニター
ブラウザが利用できるPC
H/Wをラックに設置
をラックに設置
LANケーブルの接続
ケーブルの接続
・管理用ポート(mgt0)を管理用ネットワークに接続
を管理用ネットワークに接続
・管理用ポート
・データ通信用のポート(eth0)をデータ通信用ネットワークに接続
をデータ通信用ネットワークに接続
・データ通信用のポート(
管理用CLIの起動とログイン
の起動とログイン
管理用
・モニターとキーボードを接続
・電源を起動し、管理用CLIがプロンプトを待機
がプロンプトを待機
・電源を起動し、管理用
・初期パスワードでログイン(admin/admin)
)
・初期パスワードでログイン(
管理用ポートの設定
・管理用ポートにIPアドレス
GWの割り当て
の割り当て
・管理用ポートに アドレス/Default
アドレス
次頁へ
38
© 2014 IBM Corporation
MessageSight 初期設定
Web UIにログイン
にログイン
・PCを管理用ネットワークに接続し、ブラウザより下記
を管理用ネットワークに接続し、ブラウザより下記URLにアクセス
にアクセス
を管理用ネットワークに接続し、ブラウザより下記
https://<管理ポートのIPアドレス>:9087
・ログイン画面より ユーザーID:
、パスワード:adminでログイン
でログイン
ユーザー :admin、パスワード:
、パスワード:
ライセンスの承諾
管理ユーザーの設定変更
・管理者のパスワードをデフォルトから変更
・SSHログイン用の設定(オプション)
ログイン用の設定(オプション)
データ通信用ポートの設定
・eth0に
にIPアドレス、デフォルト
アドレス、デフォルトGWの割り当て
の割り当て
アドレス、デフォルト
・接続のテスト
設定の保存
39
© 2014 IBM Corporation
MessageSight 高可用性
Hot applianceとCold applianceのペアにより構成
Hot appliance(Primary) がメッセージを処理
Cold appliance (standby) はHot applianceと同一の構成
Primaryがダウンした場合に処理を引き継ぐ
アプリケーションからはシングル構成の
アプライアンスが再起動したように見える
ノード間でのデータの複製は同期的に行われる
メッセージと構成情報
ノード間の高速なデータ通信(RoCE)
フェールオーバー実施後のデータの再同期中はメッセー
ジングが一時的に利用できない
40
© 2014 IBM Corporation
IBM MessageSightの管理オブジェクト
Message Hub
Endpoint やPolicyをグループ化する単位
構成、監視、管理の単位となりアプリケーションの特性に応じて分割可能
Endpoint
接続を受け付けるIPアドレス、ポート番号やクライアントの種類(MQTT、JMS)等を設定
Connection Policy
Endpointへ接続するユーザーの認可に利用される
Messaging Policy
トピックへのPublish/Subscribeや、キューに対するsend/receive/browseの認可に利用される
Message Hub
Endpoint 1
Endpoint 2
Connection Policy1
Connection Policy2
Messaging Policy1
Messaging Policy2
Messaging Policy3
IBM MessageSightの管理オブジェクトの設定イメージ
41
© 2014 IBM Corporation
MessageHubの構成
1.Web UIのメニューより、
「Messaging」 →
「Message Hubs」を選択
2.Message Hubの
追加アイコンをクリック
3.名前と説明を
記入して保存
42
© 2014 IBM Corporation
ConnectionPolicyの構成
1.Web UIのメニューより、
「Messaging」→「Message Hubs」
を選び、作成した Message Hubの
編集アイコンをクリック
2.「Connection Policies」タブを
開き、追加アイコンをクリック
3.必要な項目を記入し、保存
43
© 2014 IBM Corporation
MessagingPolicyの構成
1.Message Hubの編集画面より
「Messaging Policies」タブを選択
2.必要な項目を記入し、保存
44
© 2014 IBM Corporation
MessageSight for Developers
以下のサイトから無償ダウンロード可能です
“IBM MessageSight for Developers is here!”
https://www.ibm.com/developerworks/community/blogs/c565c720-fe84-4f63-873f607d87787327/entry/ibm_messagesight_for_developers_is_here?lang=en
MQTTクライアント:
無償ダウンロード可能です
上記の”IBM MessageSight for Developers is here!”
サイト内
MQTT.org
Java版、JavaScript版、C版があります
45
© 2014 IBM Corporation
IBM MessageSight無償版、MQTTクライアントのダウンロード
「IBM MessageSight for Developers」、Client Packを利用して、無償で利用可能
ダウンロードサイト
https://www.ibm.com/developerworks/community/blogs/c565c720-fe84-4f63-873f-607d87787327/entry/download?lang=en
MQTTクライアント・ダウンロード
MQTTサーバー・ダウンロード
46
Mobile Messaging & M2M Client Pack
IBM MessageSight JMS Client Pack
WebSphere MQ ( Trial, Developers)
IBM MessageSight for Developers
© 2014 IBM Corporation
Mobile Messaging & M2M Client Pack
MQTTメッセージを送受信するブラウザベースのユーティリティ
47
© 2014 IBM Corporation
YouTubeデモ: MessageSight + MQTT
http://www.youtube.com/watch?v=kx6Pg5lqx04
48
© 2014 IBM Corporation
“Internet of Things”を実現する
WebSphereのメッセージング・テクノロジー
「MessageSightアプライアンス」およびWebSphereのM2Mテクノロジーの詳細については
弊社営業へご相談ください
M2Mを実現する
MQTTプロトコル
MessageSight
メッセージングハブ
豊富なバックエンド
サーバー機能
IBM Integration Bus
MQTT Client
Telemetry Service
IBM MessageSight
WebSphere MQ
MQTT Client
MQTT Client
49
InfoSphere Streams
© 2014 IBM Corporation
検証環境構成(案)
MQTTクライアントライブラリーは、以下のサイトからダウンロード可能です
https://www.ibm.com/developerworks/community/blogs/c565c720-fe84-4f63-873f607d87787327/entry/download?lang=en
● MQTTクライアントライブ
ラリーを使って実装
● 実機器での検証、または
PC上でシミュレーション用の
アプリケーションによる検証
MQTT Client
● MQTT専用のゲートウェイ機能を
もつ専用アプライアンスを利用
● バックエンドとの接続や、
アプリケーションロジックは、
検証内容に応じて利用を検討
IBM
IBM Integration
Integration Bus
Bus
広範な接続性と柔軟な
広範な接続性と柔軟な
連携をサポートするESB
連携をサポートするESB
IBM MessageSight
IBM Integration Bus
MQTT Client
MQTTクライアント
クライアント
MQTTクライアント
クライアント
メッセージを送受信
メッセージを送受信
するクライアント機能
するクライアント機能
50
IBM
IBM MessageSight
MessageSight
MQTTメッセージング
MQTTメッセージング
処理に特化した
処理に特化した
「メッセージング・ハブ」
「メッセージング・ハブ」
InfoSphere Streams
© 2014 IBM Corporation
MQTTクライアントの稼動条件
MQTTクライアントのシステム前提条件(詳細)
System Requirements for IBM Mobile Messaging and M2M Client Pack MA9B
http://www-01.ibm.com/support/docview.wss?rs=4043&uid=swg27036811
システム前提条件(抜粋)
JavaScript
RFC6455(WebSocket)に準拠しているブラウザ
Java
JSE 1.5 or higher that is "Java Compatible".
C
iOS 6.0 and future OS fix packs
WebSphere MQ Telemetry v7.5でサポートされているCクライアントのプラットフォーム
51
© 2014 IBM Corporation
ご参考リンク
MQTT関連
MQTT V3.1 Protocol Specification
http://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/mqtt-v3r1.html
MQTT.org ホームページ
http://mqtt.org/
Eclipse Paho project ホームページ
http://eclipse.org/paho/
IBM Redbook「Building Smarter Planet Solutions with MQTT and IBM WebSphere MQ Telemetry」
http://www.redbooks.ibm.com/abstracts/sg248054.html
IBM MessageSight関連
IBM MessageSight パフォーマンスレポート
http://www-01.ibm.com/support/docview.wss?uid=swg24035590
マニュアル
IBM MessageSight Information Center(マニュアル)
http://pic.dhe.ibm.com/infocenter/ism/v1r0m0/index.jsp
MQTT クライアント プログラミング・リファレンス(マニュアル)
http://pic.dhe.ibm.com/infocenter/wmqv7/v7r5/index.jsp?topic=%2Fcom.ibm.mm.tc.doc%2Ftc00200_.htm
発表レター
IBM MessageSight発表レター
http://www-01.ibm.com/common/ssi/rep_ca/0/760/JAJPJP13-0140/JAJPJP13-0140.PDF
IBM MessageSight V1.1発表レター
http://www-01.ibm.com/common/ssi/rep_ca/7/760/JAJPJP13-0637/JAJPJP13-0637.PDF
ダウンロード
「IBM MessageSight for Developers」、Client Packダウンロードページ
https://www.ibm.com/developerworks/community/blogs/c565c720-fe84-4f63-873f-607d87787327/entry/download?lang=en
developerWorks
MQTT、IBM MessageSightのご紹介 - IBM MessageSight for Developersを使ってMQTTを体験する
https://www.ibm.com/developerworks/community/blogs/c565c720-fe84-4f63-873f-607d87787327/entry/download?lang=en
52
© 2014 IBM Corporation
53
© 2014 IBM Corporation
ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独自の見解を反映したものです。それらは情報提供の目
的のみで提供されており、いかなる参加者に対しても法律的またはその他の指導や助言を意図したものではなく、またそのような結果を生むものでもありませ
ん。本講演資料に含まれている情報については、完全性と正確性を期するよう努力しましたが、「現状のまま」提供され、明示または暗示にかかわらずいかな
る保証も伴わないものとします。本講演資料またはその他の資料の使用によって、あるいはその他の関連によって、いかなる損害が生じた場合も、IBMは責
任を負わないものとします。 本講演資料に含まれている内容は、IBMまたはそのサプライヤーやライセンス交付者からいかなる保証または表明を引きだすこ
とを意図したものでも、IBMソフトウェアの使用を規定する適用ライセンス契約の条項を変更することを意図したものでもなく、またそのような結果を生むもので
もありません。
本講演資料でIBM製品、プログラム、またはサービスに言及していても、IBMが営業活動を行っているすべての国でそれらが使用可能であることを暗示するも
のではありません。本講演資料で言及している製品リリース日付や製品機能は、市場機会またはその他の要因に基づいてIBM独自の決定権をもっていつで
も変更できるものとし、いかなる方法においても将来の製品または機能が使用可能になると確約することを意図したものではありません。本講演資料に含ま
れている内容は、参加者が開始する活動によって特定の販売、売上高の向上、またはその他の結果が生じると述べる、または暗示することを意図したもので
も、またそのような結果を生むものでもありません。 パフォーマンスは、管理された環境において標準的なIBMベンチマークを使用した測定と予測に基づいて
います。ユーザーが経験する実際のスループットやパフォーマンスは、ユーザーのジョブ・ストリームにおけるマルチプログラミングの量、入出力構成、ストレー
ジ構成、および処理されるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。したがって、個々のユーザーがここで述べられているものと
同様の結果を得られると確約するものではありません。
記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使用したか、またそれらのお客様が達成した結果の実例として示されたもの
です。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。
IBM、IBM ロゴ、ibm.com、InfoSphere、WebSphere は、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。
他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。
現時点での IBM の商標リストについては、www.ibm.com/legal/copytrade.shtmlをご覧ください。
JavaおよびすべてのJava関連の商標およびロゴは Oracleやその関連会社の米国およびその他の国における商標または登録商標です。
54
© 2014 IBM Corporation 54