Upload
kohei-matsushita
View
174
Download
1
Embed Size (px)
Citation preview
AWS IoT を使った双方向通信システムの実装と注意点
Interop Tokyo 2016 / 8~10 June @ 幕張メッセ 1
AWS Summit Tokyo 20166 月 1 日〜 3 日 @ グランドプリンスホテル新高輪
参加されました?
2
参加できなかった方大丈夫です!
3
re:Invent 2016 がありますよ!
4
5
松下 / ma2shita
ぷらっとホーム株式会社IoT サービス部
好きな AWS サービスAWS LambdaAmazon Elasticsearch Service
6
AWS Summit Tokyo 2016IoT ハンズオン
7
8
アジェンダ
● 5 分でわかる 「 AWS IoT って?何ができる?」
● 5 分でわかる 「 AWS IoT を利用するための実装」
● 5 分でわかる 「双方向通信システムの設計ポイントと delta 」
● 5 分でわかる 「 IoT 関連告知」
● 5 分でわかる 「 AWS IoT のトリビア」
?!10
11
AWS IoT とは?
re:Invent 2015 (2015 年 10 月 ) に発表されたAWS 初の IoT 特化サービス
● クラウドとデバイスの双方向通信
● データに対しての様々な AWS サービスの呼び出し
● デバイスの状態管理12
AWS IoT とは?
機能
●メッセージブローカー
○ フルマネージド MQTT, HTTP REST, Websocket
●ルールエンジン
○ メッセージの中身に応じて呼び出す AWS サービスを定義
○ Amazon S3, Amazon DynamoDB, Amazon Kinesis, Amazon SQS, Amazon SNS, AWS Lambda, Amazon Elasticsearch Service, Amazon CloudWatch, AWS IoT(republish)
●シャドー
○ 物理的なデバイスの状態※を AWS IoT 上に保存・更新・同期※ ON/OFF 等
2016 年 3 月 update
2016 年 1 月 update
13
要するに
14
フルマネージドな
●MQTT ブローカ ( サーバ )●デバイスの状態の保存
15
AWS IoT をもっと知りたい
●詳細はアマゾン ウェブ サービス ジャパンのソリューションアーキテクト福井さんの資料をご覧くださいhttp://www.slideshare.net/AmazonWebServicesJapan/aws-iot-20160216
Interop 会期中にアマゾン ウェブ サービス ジャパン様のミニ・セミナーあります!
16
アジェンダ
● 5 分でわかる 「 AWS IoT って?何ができる?」
● 5 分でわかる 「 AWS IoT を利用するための実装」
● 5 分でわかる 「双方向通信システムの設計ポイントと delta 」
● 5 分でわかる 「 IoT 関連告知」
● 5 分でわかる 「 AWS IoT のトリビア」
17
18
AWS IoTOpenBlocks IoT BX1
Patlite <NHS-3FB1>
Web Browser
Internet
Icons made by http://www.freepik.com from http://www.flaticon.com is licensed by http://creativecommons.org/licenses/by/3.0 <CC 3.0 BY>19
AWS IoTOpenBlocks IoT BX1
Patlite <NHS-3FB1>
Web Browser
reporter.rb
commander.rb
/update
SNMP
/update/documents
/update/update/delta
MQTTS Websocket over MQTT
Pub Sub
Sub Pub
Polling
patlite_control.html
Operation from Outsidee.g.) CleanUp, Reboot...
Input
onMessageArrived
get
Rendering
Icons made by http://www.freepik.com from http://www.flaticon.com is licensed by http://creativecommons.org/licenses/by/3.0 <CC 3.0 BY>20
AWS IoT を利用するために必要な実装
OpenBlocks IoT BX1
Patlite <NHS-3FB1>
reporter.rb
commander.rb
デバイスの状態をAWS IoT に報告する
AWS IoT からの通知をデバイスに送る 21
reporter.rb
おい、今、それぞれの色の状態を教えろや( って、 patlite に SNMP で聞く )
AWS IoT に報告しとくわ(MQTT でな )
reporter.rb
インターバルで無限ループ
これだけ!!簡単!素敵!
22
commander.rbMQTT トピック、監視するでー( 着信したら、下のコードが動く )
色を ON/OFF しろ!(SNMP 経由で )
着信データを解析して ...
commander.rb
23
AWS IoT を利用するために必要な実装まとめ ;
OpenBlocks IoT BX1
Patlite <NHS-3FB1>
reporter.rb
commander.rb
デバイスの状態をAWS IoT に報告する
AWS IoT からの通知をデバイスに送る 24
アジェンダ
● 5 分でわかる 「 AWS IoT って?何ができる?」
● 5 分でわかる 「 AWS IoT を利用するための実装」
● 5 分でわかる 「双方向通信システムの設計ポイントと delta 」
● 5 分でわかる 「 IoT 関連告知」
● 5 分でわかる 「 AWS IoT のトリビア」
25
AWS IoTOpenBlocks IoT BX1
Patlite <NHS-3FB1>
Web Browser
reporter.rb
commander.rb
/update
SNMP
/update/documents
/update/update/delta
MQTTS Websocket over MQTT
Pub Sub
Sub Pub
Polling
patlite_control.html
Input
onMessageArrived
get
Rendering
Icons made by http://www.freepik.com from http://www.flaticon.com is licensed by http://creativecommons.org/licenses/by/3.0 <CC 3.0 BY>
ポイント : ループ状にデータが伝搬されるように設計- そうでないと ...
AWS IoT と実際のデバイスの状態の不一致の温床※ AWS IoT は不一致解消は対象外 => ユーザの責務 26
AWS IoTOpenBlocks IoT BX1
Patlite <NHS-3FB1>
Web Browser
reporter.rb
commander.rb
/update
SNMP
/update/documents
/update/update/delta
MQTTS Websocket over MQTT
Pub Sub
Sub Pub
Polling
patlite_control.html
Input
onMessageArrived
get
Rendering
Icons made by http://www.freepik.com from http://www.flaticon.com is licensed by http://creativecommons.org/licenses/by/3.0 <CC 3.0 BY>
ポイント : ループ外からの操作も想定すべき※現場でのデバイス操作、複数の利用者
- 不一致の温床Operation from Outsidee.g.) CleanUp, Reboot...
27
AWS IoTOpenBlocks IoT BX1
Patlite <NHS-3FB1>
Web Browser
reporter.rb
commander.rb
/update
SNMP
/update/documents
/update/update/delta
MQTTS Websocket over MQTT
Pub Sub
Sub Pub
Polling
patlite_control.html
Input
onMessageArrived
get
Rendering
Icons made by http://www.freepik.com from http://www.flaticon.com is licensed by http://creativecommons.org/licenses/by/3.0 <CC 3.0 BY>
ポイント : 無限ループ防止機構- そうでないと ...
AWS さんが大喜び!無駄なリソース消費につながる※上の実装では人間がブレーカー
Operation from Outsidee.g.) CleanUp, Reboot...
28
● ループ状にデータ伝搬がされるように
● ループ外からの操作も考慮・想定
● 無限ループ防止機構
双方通信システムの設計ポイントまとめ ;
29
delta って?
“Thing Shadow” の中において中核を担う機能
delta = desired - reported差分 = 操作要求 - 現在の状態
30
/shadow/update/delta ー delta の発生
delta( 差分 ) = desired( 操作要求 ) - reported( 現状 )
{reported:{ 赤 : OFF}}
reported: 赤 = OFF
desired:< 空 >
reported:< 空 >
desired:< 空 >
{desired:{ 赤 : ON}}reported:
赤 = OFF
desired: 赤 = ON
SUB: /delta{ 赤 : ON}
/shadow/update
31
/shadow/update/delta ー 再レポート
delta( 差分 ) = desired( 操作要求 ) - reported( 現状 )
{reported:{ 赤 : ON}}
reported: 赤 = OFF
desired: 赤 = ON
reported: 赤 = ON
desired: 赤 = ON
差分が無いので delta は発生しない
/shadow/update
32
/shadow/update/delta ー ちょっと困る挙動 ?delta( 差分 ) = desired( 操作要求 ) - reported( 現状 )
reported: 赤 = ON
desired: 赤 = ON
CLEAR
{reported:{ 赤 : OFF}}
reported: 赤 = OFF
desired: 赤 = ON
SUB: /delta{ 赤 : ON}
この挙動は意図と違うかも場合によっては無限ループ
/shadow/update
33
/shadow/update/delta ー レポート TIPSdelta( 差分 ) = desired( 操作要求 ) - reported( 現状 )
{reported:{ 赤 : ON}},{desired:null}
reported: 赤 = OFF
desired: 赤 = ON
reported: 赤 = ON
desired:<空 > レポート時には常に
{desired:null}を送り、 AWS IoT 内の“ desired” をクリアする
/shadow/update
34
/shadow/update/delta ー レポート TIPSdelta( 差分 ) = desired( 操作要求 ) - reported( 現状 )
reported: 赤 = ON
desired:< 空 >
CLEAR
{reported:{ 赤 : OFF}}
reported: 赤 = OFF
desired:< 空 >
desired = < 空 > なので delta は発生しない
/shadow/update
35
/shadow/update/delta ー ウルトラクイズ
delta( 差分 ) = desired( 操作要求 ) - reported( 現状 )
reported: 赤 = ON
desired:< 空 >
{desired:{ 赤 : OFF}}
ネットワーク障害
{reported:{ 赤 : ON}}
reported: 赤 = ON
desired: 赤 = OFFこのときの挙動は??
/shadow/update 👊 delta = { 赤 : ON}
✅ delta = { 赤 : OFF}
✋ delta は出力されな
い36
delta の使い方
commander.rb
Subscribe するだけ37
アジェンダ
● 5 分でわかる 「 AWS IoT って?何ができる?」
● 5 分でわかる 「 AWS IoT を利用するための実装」
● 5 分でわかる 「双方向通信システムの設計ポイントと delta 」
● 5 分でわかる 「 IoT 関連告知」
● 5 分でわかる 「 AWS IoT のトリビア」
38
AWS Summit Tokyo 2016IoT パビリオン
39
小売店向け顧客動線・属性分析ソリューション
40
大盛況!
41
GlobalWise 様ブース
ここにも
42
ここにも
Acroquest 様ブース
43
Acroquest 様ブース / Interop でも展示中!
44
IoT システムの要、ゲートウェイは ...OpenBlocks IoT で!
reporter.rb
commander.rb
OpenBlocks IoT BX1
45
46
もちろん
47
ハードウェアだけでなく
IoT システム全般でご相談ください!
48
そして
49
こんにちはソラコムのまわしものです
50
7/13開催登録受付中!
51
同日SORACOM UG #3開催します!
52
facebookページチェックしてください!
53
アジェンダ
● 5 分でわかる 「 AWS IoT って?何ができる?」
● 5 分でわかる 「 AWS IoT を利用するための実装」
● 5 分でわかる 「双方向通信システムの設計ポイントと delta 」
● 5 分でわかる 「 IoT 関連告知」
● 5 分でわかる 「 AWS IoT のトリビア」
54
AWS IoT は ...
無料枠がある250,000 メッセージ / 月 x 12ヶ月の利用枠があります
https://aws.amazon.com/jp/iot/pricing/
1 メッセージ =最大 512 バイトだから ... 計算はしないでおこう
55
AWS IoT は ...
2015 年 12 月には GA になっていた発表から 2ヶ月で GA って、もしかして最速では?
安心して使ってください
※GA = Generally Available
56
AWS IoT は ...MQTT(S)以外にも
➢HTTP(S) REST➢MQTT over WebSocket(s)
が、使えるMQTT だけじゃない! RESTer や Javascripter にも優しいシステム
57
AWS IoT は ...
Binary を扱うことができるJSON だけじゃなく、 non-ASCII な byte stream でも OK なんです
※ 注 ;
- AWS IoTへの入出力が JSON を期待しているサービスもあるので注意そう、 Thing Shadow とか AWS Lambda とかね。
- 調子に乗って大きいペイロードを送ると“ 128KB/ 送信” の制限に引っかかるぞ、気をつけよう
58
本セッションは
ぷらっとホームIoT サービス部
松下 / ma2shitaが、お送りしました
※ この後のお声がけお気軽にどうぞ!お待ちしております! 59
糸冬
60