Upload
-
View
1.745
Download
1
Embed Size (px)
Citation preview
遊佐浩史(株式会社アルゴ)
JJUG CCC 2015 Spring
2015/4/11
M-6 MQTTの使いどころ
〜軽量プロトコルで低コストにデータを集めよう〜
発表者について
• Twitter: @koji_yusa
• 株式会社アルゴ所属
ホットトピックス
–特殊撮影・編集
• 360度(VR)撮影・編集
• ドローンによる空撮
– ライブ配信、VOD配信(HLS)
• CDNによる暗号化配信
• スマホアプリ、Webアプリ配信
2015/4/11 1
レジュメ
• MQTTについて
–概要、プロトコル概説
• ユースケース
–監視、モバイルメッセージング、チャット
• ツール
– クライアント、ゲートウエイ、ブローカー、データストア
• センサーハブ(MCU)の将来
2015/4/11 2
MQTTについて
2015/4/11 3
DEMO
• MQTT Whiteboard
– http://m2m.demos.ibm.com/whiteboard/
2015/4/11 4出典:MQTT資料 (B.Boyd) @SlideShare
レジュメ
• MQTTについて
–概要、プロトコル概説
• ユースケース
–監視、モバイルメッセージング、チャット
• ツール
– クライアント、ゲートウエイ、ブローカー、データストア
• センサーハブ(MCU)の今後
2015/4/11 5
2015/4/11 6
MQTTの歴史
• 1999年頃 EUROTECH・IBMがMQTTを開発
• 2010年8月 MQTT.orgに公開
• 2011年11月 paho(Eclipse M2M)が登場
• 2013年4月頃OASIS標準化を開始
• 2014年10月 MQTT 3.1.1がOASIS標準に
Googleトレンドを調べてみた
2015/4/11 7出典:MQTT vs CoAP - Google Trends
Googleトレンドを調べてみた
2015/4/11 8出典:IoT vs M2M - Google Trends
MQTTの特徴
• TCP/IP
• PubSub型のプロトコル
• ツリー型のトピック
• HTTPに比べて小さなヘッダーサイズ
– 2〜4バイト
• 到達保証(QOS:0,1,2)
– QOS:0 保証なし
– QOS:1 保証あり
– QOS:2 一度の保証あり
2015/4/11 9
MQTTの特徴
2015/4/11 10出典:MQTT資料 (B.Boyd) @SlideShare
MQTTの特徴
2015/4/11 11出典:MQTT資料 (B.Boyd) @SlideShare
MQTTの特徴
2015/4/11 12出典:MQTT資料 (B.Boyd) @SlideShare
MQTTの特徴
2015/4/11 13出典:MQTT資料 (B.Boyd) @SlideShare
MQTTの特徴
2015/4/11 14出典:MQTT資料 (B.Boyd) @SlideShare
MQTTの特徴
2015/4/11 15出典:MQTT資料 (B.Boyd) @SlideShare
MQTTの特徴
• HTTPの4~7倍少ないTCP帯域で送信できる
2015/4/11 16
パターン
HTTP MQTT
クライアント↓
サーバ
受信100
回
12.6KB 2.4KB x4
サーバ↓
クライアント
送信100
回
14.1KB 2.1KB x7
MQTTクライアントライブラリ
2015/4/11 17
paho〜MQTTクライアント ライブラリ
2015/4/11 18
• Javaクライアントライブラリ
• https://www.eclipse.org/paho/clients/java/
paho〜MQTTクライアント ライブラリ
2015/4/11 19
• 専用のリポジトリがあるので注意
• groupId/artifactIdは、
org.eclipse.paho/org.eclipse.paho.client.mqttv3
• リポジトリは、https://repo.eclipse.org/content/repositories/paho-releases/
paho〜MQTTクライアント ライブラリ
ヘッダ部、初期化部
2015/4/11 20
paho〜MQTTクライアント ライブラリ
• 実行部
2015/4/11 21
DEMO
• MQTT Helper
– http://mqtt-helper.mybluemix.net/
2015/4/11 22出典:MQTT資料 (B.Boyd) @SlideShare
ユースケース
2015/4/11 23
レジュメ
• MQTTについて
–概要、プロトコル概説
• ユースケース(Webサービス)
–監視、モバイルメッセージング、チャット
• ツール
– クライアント、ゲートウエイ、ブローカー、データストア
• センサーハブ(MCU)の今後
2015/4/11 24
Webサービスとの関わり
2015/4/11 25出典:IoT Architecture (B.Trops, G.Schmutz)
Webサービスとの関わり
2015/4/11 26出典:IoT Architecture (B.Trops, G.Schmutz)
センサーネットワーク
Webサービスとの関わり
2015/4/11 27出典:IoT Architecture (B.Trops, G.Schmutz)
バックエンド
Webサービスとの関わり
2015/4/11 28出典:IoT Architecture (B.Trops, G.Schmutz)
プッシュ通知
センサーネットワーク
ユースケース
2015/4/11 29
センサーネットワーク
2015/4/11 30出典:IoT Architecture (B.Trops, G.Schmutz)
センサーネットワーク
センサーネットワーク
• センサー
–位置情報
–加速度情報
–温度
–湿度
–日照
–音量
2015/4/11 31
センサーネットワーク
2015/4/11 32出典:ARM Techcon
スマホで汎用化したセンサーハブ
センサーネットワーク
• センサー
–位置情報
–加速度情報
–温度
–湿度
–日照
–音量
⇒流用する形で安価に利用可能に
2015/4/11 33
センサーネットワーク
• 既存の分野
–農業
• 気候確認
• 温度管理
–流通
• 配達
• 配車
2015/4/11 34
センサーネットワーク
2015/4/11 35高機能なセンサーがスマホで常時稼働
センサーネットワーク
• 既存の分野
–農業
• 気候確認
• 温度管理
–流通
• 配達
• 配車
• 人に関わる情報⇒安否・安全・快・不快• 自転車
• 騒音
2015/4/11 36
センサーネットワークの選択肢
• MQTT
• MQTT-SN
• CoAP
2015/4/11 37
モバイル プッシュ通知
ユースケース
2015/4/11 38
プッシュ通知
2015/4/11 39出典:IoT Architecture (B.Trops, G.Schmutz)
MQTT
MQTT o/ WS
モバイル プッシュ通知の選択肢
• プラットフォーム提供の通知サービス
–自前でバックエンドを実装
– (m)BaaSを利用
• Parse
• Amazon SNS
• ・・・
• MQTTで通知サービスを実装
–自前で実装
– (m)BaaSを利用
2015/4/11 40
モバイル プッシュ通知
• APNS(iOS)
–ペイロードは2Kバイト(iOS8以前は256バイト)
–秒間9000メッセージは保証
– OSの制限のため、ほぼ代替手段はなし
• CGM(Android)
–ペイロードは4Kバイト
–マルチキャストは1000メッセージごと
– MQTTでリプレース可能
2015/4/11 41
モバイル ログ送信
ユースケース
2015/4/11 42
モバイル ログ
• クライアントからサーバー
• MQTTを使って端末状態を通知
–ログ
– イベント
2015/4/11 43
モバイル ログ
• HTTP経由
–自前で実装
– (m)BaaSを利用
• Parse
• ・・・
• MQTT経由
–自前で実装
– (m)BaaSを利用
2015/4/11 44
Androidのプッシュ通知
2015/4/11 45出典:msdn
リアルタイムメッセージ
ユースケース
2015/4/11 46
メッセージングの選択肢
• リアルタイムメッセージ プロトコル
双方向通信のためのプロトコル
– XMPP
– WebRTC
• メッセージキュープロトコル
非同期、到達保証のためのプロトコル
– AMQP
– STOMP
–各種RPC
2015/4/11 47
メッセージングの利用例〜Facebook Messanger
• 2011年、Belugaで使われていたfacebookに買収後、Facebook Messengerに統合。
2015/4/11 48
ゲートウェイ
ツール
2015/4/11 49
Kura – IoT GateWay by Eclipse
• センサーからMQTTに変換するライブラリ
2015/4/11 50
ブローカー
ツール
2015/4/11 51
MQTTブローカー
• オープンソース
– Mosquitto (C)
– Mosca (Node.js)
– Moquette (Java)
2015/4/11 52
MQTTブローカー
• クラウドサービス
– HiveMQ
– IBM IoT Foundation
– Sango (時雨堂)
2015/4/11 53
その他
ツール
2015/4/11 54
MQTTブリッジ
2015/4/11 55
• Ponte
– Eclipseプロジェクト
– Node.js実装
MQTT複合サーバ
• Ponte
– Eclipseプロジェクト
– Node.js実装
2015/4/11 56
MQTT-SNの構成
2015/4/11 57
ゲートウェイで変換
RASPBERRY PI (ARM)用JAVAランタイム
2015/4/11 58
Raspberry PiのJava環境(2013年初頃)
2015/4/11 59
デフォルトはOpenJDK(ZeroVM)
出典:Java On Raspberry Pi Performance -
Caucho Resin 4.x Wiki
Raspberry PiのJava環境(2013年初頃)
2015/4/11 60出典:Java On Raspberry Pi Performance -
Caucho Resin 4.x Wiki
MBP 2.4GHz
Pi Model B
700 MHz
ARM1176JZF-S 1コア
Raspberry PiのJava環境(2013年初頃)
• 以前は、OpenJDKのZeroVMがデフォルト
• ZeroVM = JITがない
• JITが必要な場合は、OracleからパッケージをDL
してインストール
2015/4/11 61
Rasberry Pi(ARM用)Javaランタイム
2015/4/11 62
Raspberry PiのJava環境(2015年現在)
• Oracle JVMがデフォルトでインストールされるように
2015/4/11 63
Raspberry PiのJava環境(2015年現在)
2015/4/11 64
OracleのJavaSE8のJDKがデフォルトに
Raspberry PiのJava環境(2015年現在)
2015/4/11 65
OracleのJavaSE8のJDKがデフォルトに
Raspberry PiのJava環境(2015年現在)
2015/4/11 66
OracleのJavaSE8のJDKがデフォルトに
レジュメ
• MQTTについて
–概要、プロトコル概説
• ユースケース
–監視、モバイルメッセージング、チャット
• ツール
– クライアント、ゲートウエイ、ブローカー、データストア
• センサーハブ(MCU)の今後
2015/4/11 67
MPU動向について
Arduino互換機の
2015/4/11 68
MCU市場は8/16bitから32bitに
2015/4/11 69
8/16bit(AVR)から32bit(ARM Cortex-M)にシフト⇒ARM用のJavaランタイムが使えるように
センサーノード用のCortex-Mプロセッサ
2015/4/11 70
半導体プロセス移行に伴い消費電力はそのまま、高性能にシフト
スマホのセンサーは、常時稼働が標準に
2015/4/11 71ワンチップの複合センサーが流用しやすく
センサーノード用のCortex-Mプロセッサ
2015/4/11 72
半導体プロセス移行に伴い消費電力はそのまま、高性能にシフト
MPU関連の画像出典について
• PC Watch連載
–後藤弘茂のWeekly海外ニュース
– IoTの波に乗るマイコン事情 (大原雄介)
• ARMの講演資料
2015/4/11 73
ネットワーク環境について
Arduino互換機の
2015/4/11 74
安価な2G/3Gモジュールが登場
2015/4/11 75
安価な2G/3Gモジュールが登場
2015/4/11 76
日本を含む世界各国で認証済みの3Gモジュールが登場⇒端末もグローバル販売しやすく
3Gモジュールを使った端末
• 3Gモジュールを使った端末が作りやすく
• 50ドル以下の端末
• 今年3月、Kickstarterに2つのプロジェクトが登場
2015/4/11 77
3Gモジュールを使った端末
• 3Gモジュールを使った端末が作りやすく
• 50ドル以下の端末
• 今年3月、Kickstarterに2つのプロジェクトが登場
2015/4/11 78
月額1ドル程度のSIMカード⇒利用用途が広がる想定
まとめ
• MQTTのユースケース
–監視、モバイルメッセージング、チャットなど
⇒HTTPにはない、軽量なサイズ、PubSub型を見極めて、Webサービスに活かそう
• Webサービスとの関わり
⇒センサーが高性能化し、人に紐づく情報を収集し活用する機会が増える
2015/4/11 79