SlideShare a Scribd company logo
1 of 60
Copyright © 2015 TIS Inc. All rights reserved.
IoT時代のデバイスクラスタ
- Hashicorp consulを用いたIntel Edisonクラスタの構成 -
2015年7月26日
TIS株式会社 戦略技術センター 松井暢之
Copyright © 2015 TIS Inc. All rights reserved. 2
松井 暢之(まつい のぶゆき)
TIS株式会社 戦略技術センター
~2003
2003~2008
2009
2010~2012
2013~
2015~
現場PJでアーキテクト兼モデラー兼プログラマ兼…を歴任
基盤技術センター(現戦略技術センター)で不芳PJの火消しに奔走
全社生産性向上の企画策定に従事
オープンでエッジな技術を活用した事業企画に従事
Cloud Orchestrator “CloudConductor®” の企画開発とOSS化開始
IoTオーケストレーション関連の研究開発を開始
http://cloudconductor.org
nbyk.matsui nmatsui
nbyk.matsui@n_matsui
Copyright © 2015 TIS Inc. All rights reserved.
Agenda
1. IoT市場の急拡大
2. fog & cloud
3. Edison(とRaspberry Pi)を使ったIoTデバイスクラスタ
~Wasted energy of TV~
4. Wasted energy of TVの fog に関する技術要素
5. まとめ
3
Copyright © 2015 TIS Inc. All rights reserved.
そもそも「IoT」とはなんだ?
 いま一歩イメージがわかない。結局「IoT」とは具体的に何だろう?
4
Question! by Stefan Baudy, on Flickr
一意に識別可能な「もの」がインターネット/クラウドに接続され、情報交換する
ことにより相互に制御する仕組みである。
「Internet of Everything」や「Smart Everything」、「サービスのモノ化」
ともいう。
モノのインターネット(Internet of Things、IoT)
出展:ウィキペディア , https://ja.wikipedia.org/wiki/モノのインターネット
Copyright © 2015 TIS Inc. All rights reserved.
「IoT」市場の急拡大
 なんだかよくわからないが、「IoT」市場は急拡大するようだ。
 IoT業界で生み出される収益の予測
 2020年には最大で7兆ドル(IDC)の収益がIoT市場で生み出される
5
出展:IoT Analytics, "IoT Market – Forecasts at a glance“, 2014-10, http://iot-analytics.com/iot-market-forecasts-overview/
Copyright © 2015 TIS Inc. All rights reserved.
「IoT」市場の急拡大
 なんだかよくわからないが、「IoT」市場は急拡大するようだ。
 相互接続されるデバイス数の予測
 2020年には最大で500億個(CiscoやEricsson)のデバイスが
相互に接続される
6
出展:IoT Analytics, "IoT Market – Forecasts at a glance“, 2014-10, http://iot-analytics.com/iot-market-forecasts-overview/
Copyright © 2015 TIS Inc. All rights reserved.
「IoT」市場の急拡大
 なんだかよくわからないが、「IoT」市場は急拡大するようだ。
 接続されるデバイス数の内訳の予測
 2018年には、相互接続されるデバイスのうち半分程度は「IoT」
(BI Intelligence)
7
出展:Business Insider, "THE INTERNET OF EVERYTHING: 2014 “, 2014-02,
http://www.businessinsider.com.au/the-internet-of-everything-2014-slide-deck-sai-2014-2
Copyright © 2015 TIS Inc. All rights reserved.
デバイスが接続されていれば「IoT」なのだろうか?
 「M2M」と「IoT」は同じ?違う?
8
Question! by Stefan Baudy, on Flickr
コンピュータネットワークに繋がれた機械同士が人間を介在せずに相互に情報交換し、
自動的に最適な制御が行われるシステムを指す。
マシンツーマネジメント(Machine-to-Management)とも呼ばれる。
マシンツーマシン(Machine-to-Machine、M2M)
出展:ウィキペディア , https://ja.wikipedia.org/wiki/マシンツーマシン
Copyright © 2015 TIS Inc. All rights reserved.
「IoT」とは(個人的見解)
 個人的には「IoT」を以下のように捉えている。
9
ヒトやモノが相互連携して
営まれる現実世界の活動を
「データ」として映し出し、
様々な種類の「データ」を
組み合わせて分析・学習し、
得られた知見を現実世界へ
フィードバックすることで、
現実世界の活動へ新たな
価値を生み出すこと。
IoTとは
現実世界
データ
分析・学習
現実世界へフィードバック
Copyright © 2015 TIS Inc. All rights reserved.
「IoT」とは(個人的見解)
10
 個人的には「IoT」を以下のようには捉えていない。
 モノをインターネットにつなげばIoTである?
 つないだだけでは意味が無いし、ヒトやモノが相互に連携してデータ
を収集できるのであれば、すべてのモノを直接インターネットに接続
しなくても良い。
 IoTとはセンサーから得た情報を機械にフィードバックして無人
運転することである?
 センサーと機械をつないでフィードバックするだけではもったいない。
ヒトの行動やソーシャルの情報など、センサーだけでは得られない
様々なデータも組み合わせて新たな価値を提供することが肝心。
Copyright © 2015 TIS Inc. All rights reserved.
「IoT」と「IoE」
 シスコは「人」「プロセス」「データ」「モノ」をつなぐことで新た
な価値を生み出すことを、「Internet of Everything」と呼んでいる。
11
出展:第15回 八子クラウド座談会, シスコシステムズ合同会社 シスココンサルティングサービス シニアパートナー 八子知礼,
“IoE(Internet of Everything)元年2014 ~新設シスココンサルティングサービスが創る新クラウドビジネス~“,
2014-12, http://www.slideshare.net/tomokyun85/yako-presen-141213
Copyright © 2015 TIS Inc. All rights reserved.
「IoT」と「IoE」
 モノの接続とデータ活用という「IoT(狭義のIoT)」と、より
広範囲に接続して価値を創造する「IoE(広義のIoT)」(by シスコ)
12
出展:第15回 八子クラウド座談会, シスコシステムズ合同会社 シスココンサルティングサービス シニアパートナー 八子知礼,
“IoE(Internet of Everything)元年2014 ~新設シスココンサルティングサービスが創る新クラウドビジネス~“,
2014-12, http://www.slideshare.net/tomokyun85/yako-presen-141213
Copyright © 2015 TIS Inc. All rights reserved.
Agenda
1. IoT市場の急拡大
2. fog & cloud
3. Edison(とRaspberry Pi)を使ったIoTデバイスクラスタ
~Wasted energy of TV~
4. Wasted energy of TVの fog に関する技術要素
5. まとめ
13
Copyright © 2015 TIS Inc. All rights reserved.
インターネットトラフィックの急拡大
 グローバルなIPトラフィック量は年平均23%で急拡大し、2019年に
は2014年の2.8倍となる160EB/月と予測されている。
14
出展:Cisco, " Cisco VNI Global IP Traffic Forecast, 2014–2019“, 2015-03,
http://www.cisco.com/c/en/us/solutions/collateral/service-provider/visual-networking-index-vni/VNI_Hyperconnectivity_WP.pdf
Copyright © 2015 TIS Inc. All rights reserved.
IoTのセキュリティリスク
 現実世界に近いIoTがハッキングを受けると、直接的で深刻な被害が
発生する可能性がある。例えば以下のような事例が報告されている。
 シャワートイレを遠隔操作するBluetoothアプリに脆弱性がある
というセキュリティアドバイザリが公表された(2013.08)
 ベビーモニターがクラックされ、子どもや夫婦に暴言を吐く男の
声が聞こえた(2013.08)
 テレビや冷蔵庫等のスマート家電がクラッキングを受け、大量の
不正メールを送信する「Thingbots」化した(2014.01)
 ハッキングコンテストで、動作中の電気自動車のドアやサンルー
フを遠隔開閉できた(2014.07)
15
出展:Proofpoint, "More than 750,000 Phishing and SPAM emails Launched from "Thingbots" Including Televisions, Fridge“, 2014-01,
https://www.proofpoint.com/us/proofpoint-uncovers-internet-things-iot-cyberattack
出展:Trustwave, “Trustwave SpiderLabs Security Advisory TWSL2013-020: Hard-Coded Bluetooth PIN Vulnerability in LIXIL Satis Toilet“,
2014-01, https://www.trustwave.com/spiderlabs/advisories/TWSL2013-020.txt
出展:CNN, “Foul-mouthed hacker hijacks baby‘s monitor“, 2013-08,
http://edition.cnn.com/2013/08/14/tech/web/hacked-baby-monitor/
出展:ESET, "Tesla Model S hacked to open doors while in motion “, 2014-07,
http://www.welivesecurity.com/2014/07/23/tesla-model-s-hacked-open-doors-motion/
Copyright © 2015 TIS Inc. All rights reserved.
fog computing
 「IoT」全体の中で、ヒトやモノに近い場所(エッジ)で行う処理と
クラウドで行う処理を分割し、それらが分散協調して動作する仕組み
 fog computingの概念はシスコシステムズ発祥
16
A distributed computing infrastructure in which
some application services are handled at the network edge in a smart device
and some application services are handled in the cloud.
fog computing(fogging)
出展:WhatIs.com, http://whatis.techtarget.com/definition/fog-computing-fogging
designed by Freepik.com
fog cloud
Copyright © 2015 TIS Inc. All rights reserved.
fogの特徴とcloudとの役割分担
 雲の向こうの(多分土地と電気が安い)どこかにあるcloudではなく、
fogはヒトやモノに近い「その場」にある。
 リアルタイム性が重要な処理はfogで行い、大量データの蓄積や
分析・学習はcloudで行う。
 fogの中だけで完結できる、完結すべき処理はfogで行い、帯域や
セキュリティ的に必要なデータのみをcloudと送受信する。
 広く点在し移動するヒトやモノが動的にfogに参加し、cloudからの
メンテナンスが無くてもfogが自律的に最適動作する。
 fogに参加するヒトやモノの死活状態や、fog内やcloudとの通信
の正当性をfog自体が自律的にチェックし、不正なヒトやモノを
排除する。
17
After the rain - 2 by Randi Hausken on Flickr
Copyright © 2015 TIS Inc. All rights reserved.
Agenda
1. IoT市場の急拡大
2. fog & cloud
3. Edison(とRaspberry Pi)を使ったIoTデバイスクラスタ
~Wasted energy of TV~
4. Wasted energy of TVの fog に関する技術要素
5. まとめ
18
Copyright © 2015 TIS Inc. All rights reserved.
 fog : EdisonとRaspberry Piを用いたIoTデバイスクラスタ
 cloud : IBM Bluemix
fogとcloudのプロトタイプ ~ Wasted energy of TV ~
19
MongoDB
Intel Edison
Intel Edison
Intel Edison
Raspberry Pi B+
USBカメラ
Internet
赤外線
リモコン IoT Foundation
Local Network
Wi-Fi Mesh Network
Internet Gateway
Internet Gateway Network
fog
Node-REDアプリ
Consul
Cluster赤外線センサー
赤外線LED
Webブラウザ
テレビ
cloud
GUIアプリ
Copyright © 2015 TIS Inc. All rights reserved.
 日常生活において「点いているけれど見ていないテレビ」に費やされ
ている時間を可視化するアプリである。
 カラーチャートによってテレビの視聴状態が可視化される。
 赤色に近ければ近い時間ほど、集中してテレビを見ている
 青色に近ければ近い時間ほど、テレビに視線を向けていない
 灰色の時間は、テレビが点いていない
Wasted energy of TVとは
20
Copyright © 2015 TIS Inc. All rights reserved.
 クラウドのデータ分析ロジックが「テレビは点いているけれど集中し
て見ていない」と判断すると、自動的にテレビが消える。
 この機能は有効化/無効化することができる。
 有効化した場合、テレビがONかつテレビを見ていない状態が設定
した時間(分)以上連続すると、自動的にテレビがOFFになる。
Wasted energy of TVとは
21
Copyright © 2015 TIS Inc. All rights reserved. 22
Wasted energy of TVの動作 テレビ試聴状況の送信
Copyright © 2015 TIS Inc. All rights reserved.
 赤外線リモコンを用いてテレビをONにする。
 赤外線センサーがリモコンの赤外線パルスを傍受しテレビの
ON/OFFを捉える。
テレビ試聴状況の送信
23
赤外線
リモコン
Local Network
Wi-Fi Mesh Network
Consul
Cluster赤外線センサー
① 赤外線センサーが
テレビのONを認識する
② Consul KVSへテレビ
がONであることを登録
テレビ
fog
cloud
Intel Edison
Raspberry Pi B+
Copyright © 2015 TIS Inc. All rights reserved.
テレビ試聴状況の送信
 赤外線パルスを認識する赤外線センサーと、現在の認識状態を
表示するLED(テレビがONだと認識していると点灯)。
24
赤外線センサー
テレビON/OFF
認識表示LED
Copyright © 2015 TIS Inc. All rights reserved.
テレビ試聴状況の送信
 赤外線センサーがうまく認識できない場合に用いる、強制的にテレビ
のON/OFF認識を変更するスイッチ。
25
強制スイッチ
Copyright © 2015 TIS Inc. All rights reserved.
 テレビを見る。
 USBカメラの画像を解析し、テレビに顔の正面が向いていれば
「テレビを見ている」と判断。
テレビ試聴状況の送信
26
USBカメラ
Wi-Fi Mesh Network
Consul
Cluster
② Consul KVSへテレビが
見られていることを登録
① USBカメラの映像フレームを解析し、
「正面の顔」の有無を認識する
テレビ
fog
cloud
Intel Edison
Copyright © 2015 TIS Inc. All rights reserved.
テレビ試聴状況の送信
 テレビを見ているかを認識するためのUSBカメラ。
27
顔認識を行う
USBカメラ
Copyright © 2015 TIS Inc. All rights reserved.
テレビ試聴状況の送信
 現在テレビを見ているかを表示するLED(テレビを見ていると認識し
ていると点灯)。
28
テレビの視聴状態
認識表示LED
Copyright © 2015 TIS Inc. All rights reserved.
 現在の状態をクラウドへ送る。
 定期的にテレビのON/OFFをチェックし、テレビが点いていれば
顔認識の情報をクラウドへpublishする。
IoT Foundation
テレビ試聴状況の送信
29
Internet
Wi-Fi Mesh Network
Internet Gateway
Internet Gateway Network
Consul
Cluster
② テレビがONであれば、正面顔の
認識状態をMQTTでpublishする
① Consul KVSからテレビのON/OFF
と正面顔の認識状態を取得する
③ IoTデバイスクラスタからのpublish
された情報をsubscribeする
fog
cloud
Intel Edison
Copyright © 2015 TIS Inc. All rights reserved.
テレビ試聴状況の送信
 現在データを送信中かを表示するLED(データ送信中は点滅)。
30
データ送信
表示LED
Copyright © 2015 TIS Inc. All rights reserved.
 IoTデバイスクラスタから受信した情報を蓄積する。
 IoT Foundationがsubscribeした情報をMongoDBに蓄積する。
MongoDB
IoT Foundation
Node-REDアプリ
テレビ試聴状況の送信
31
② IoT Foundationから送られてた
情報をMongoDBに蓄積する
① subscribeした情報をNode-RED
アプリへ転送する
fog
cloud
Copyright © 2015 TIS Inc. All rights reserved.
テレビ試聴状況の送信
 Wasted energy of TVのIoTデバイスクラスタの動画
 https://youtu.be/RDPD21L8voM
32
Copyright © 2015 TIS Inc. All rights reserved. 33
Wasted energy of TVの動作 テレビ試聴状況の可視化
Copyright © 2015 TIS Inc. All rights reserved.
 テレビの視聴状況を可視化する。
 ブラウザからGUIアプリにアクセスし、指定した日付
のテレビ視聴状況を可視化する。
テレビ試聴状況の可視化
34
IBM Bluemix
MongoDB
Node-REDアプリ
GUIアプリ
Webブラウザ
① GUIアプリのNginxから
HTMLやJS等を取得
② AJAXを用いてNode-RED
アプリのREST APIから情報取得
fog
cloud
Copyright © 2015 TIS Inc. All rights reserved.
テレビ試聴状況の可視化
 テレビの視聴状況を可視化する。
 http://wasted-energy-of-tv-gui.mybluemix.net/
 赤色に近ければ近いほど、集中してテレビを見ている。
 青色に近ければ近いほど、テレビに視線を向けていない。
 灰色はテレビが点いていない。
35
集中してテレビを見ている
ほとんどテレビを見ていない
テレビを見たり見なかったり
テレビが点いてない
Copyright © 2015 TIS Inc. All rights reserved. 36
Wasted energy of TVの動作 テレビ自動OFF
Copyright © 2015 TIS Inc. All rights reserved.
 テレビ自動OFFを登録する。
 ブラウザからGUIアプリにアクセスし、テレビの
自動OFFを登録する。
テレビ自動OFF
37
IBM Bluemix
MongoDB
Node-REDアプリ
GUIアプリ
Webブラウザ
① AJAXを用いてNode-RED
アプリのREST APIから登録
fog
cloud
Copyright © 2015 TIS Inc. All rights reserved.
テレビ自動OFF
 テレビ自動OFFを登録する。
 「Change」リンクをクリックすると、テレビ自動OFF機能の
登録画面が表示される。
 初期値として現在の登録状況が設定されている。
38
Copyright © 2015 TIS Inc. All rights reserved.
テレビ自動OFF
 テレビ自動OFFを登録する。
 テレビ自動OFFを無効化する場合、トグルボタンをOFFにする。
 テレビ自動OFFを有効化する場合、トグルボタンをONにして、
テキストボックスに自動OFFになるまでの時間(分)を入力する。
39
Copyright © 2015 TIS Inc. All rights reserved.
 テレビが自動で消える。
 テレビ自動OFFが有効の場合、テレビが点いており、かつ設定さ
れた時間連続してテレビを見てないと、cloud
からイベントが送出される。
テレビ自動OFF
40
MongoDB
Node-REDアプリ
IoT Foundation
① MongoDBに蓄積されている情報
を定期的にチェック
② テレビが点いているのに、設定された
時間連続してテレビを見ていなければ、
IoT Foundationへイベントを送出を依頼
fog
cloud
Copyright © 2015 TIS Inc. All rights reserved.
 テレビが自動で消える。
 IoTデバイスクラスタがイベントを受信すると、赤外線LEDから
赤外線パルスが照射され、テレビが自動的に
OFFになる。
テレビ自動OFF
41
Internet
IoT Foundation
Internet Gateway
テレビ
Local Network
Wi-Fi Mesh Network
Internet Gateway Network
Consul
Cluster
赤外線LED
① MQTTでsubscribeしている
イベントの受信を検知
② Consul Clusterへ
イベントを発火
③ watchしているイベントが
発生したことを検知
④ 赤外線LEDから登録済みの
赤外線パルスを発信
fog
cloud
Intel Edison
Intel Edison
Raspberry Pi B+
Copyright © 2015 TIS Inc. All rights reserved.
 「テレビを見る」というヒトとモノの相互作用をfogでデータ化し、
cloudで分析して現実世界へフィードバックすることで、次のような
価値が生まれる。
 テレビを見ていたつもりでもテレビに集中しておらず、無駄に費
やしてしまった時間に気づくことで、生活にメリハリがつく。
 集中してテレビを見ていないならばテレビが消えてしまうため、
家庭での無駄な電力消費を削減できる。
Wasted energy of TVが生み出す価値
42Psssst!! I'm watching you... by ..::Fluckr You::.. on Flickr
Copyright © 2015 TIS Inc. All rights reserved.
現在のWasted energy of TVの課題
 セキュリティが全く考慮されていない!
 GUIに認証認可を付けていないため、現時点では私の部屋の
テレビを誰でも自動OFFにできます。。。(笑
 fogとcloud間で送受信されるMQTTパケットも、ユーザ認証は
しているものの平文なので盗聴・詐称し放題。。。
 cloudでのデータ分析が甘い!
 過去の同じ曜日の視聴データ、同じ日の視聴データ、などを分析
学習すれば、「テレビを点けたようですが、どうせあなた、今の
時間はテレビ見てないでしょ?」とcloudが言ってくれたり?
 複数人での利用は考慮されていない!
 似たような傾向の人がテレビを見ていれば、「あなたこの番組、
好きそうですよね」とcloudが点けてくれたり?
43
Copyright © 2015 TIS Inc. All rights reserved.
Agenda
1. IoT市場の急拡大
2. fog & cloud
3. Edison(とRaspberry Pi)を使ったIoTデバイスクラスタ
~Wasted energy of TV~
4. Wasted energy of TVの fog に関する技術要素
5. まとめ
44
Copyright © 2015 TIS Inc. All rights reserved.
 Wi-Fiメッシュネットワーク
 Consulクラスタ
 MQTTプロトコル
Wasted energy of TVの fog に関する技術要素
45
Internet
IoT Foundation
Wi-Fi Mesh Network
Internet Gateway
fog
Consul
Cluster
cloud
MQTT Protocol
Intel Edison
Intel Edison
Intel Edison
Raspberry Pi B+
Copyright © 2015 TIS Inc. All rights reserved.
Wasted energy of TVのプロトコルスタック
 Wasted energy of TVは、以下のようなプロトコルスタックで動作
している。
46
Layer1: Physical
Layer2: Data Link
Layer3: Network
Layer4: Transport
Layer5: Session
Layer6: Presentation
Layer7: Application
MAC
LLC
IEEE 802.2
IP(v4、v6)、ICMP
RIP、OSPF等
IEEE 802.3
Ethernet
IEEE 802.11
Wireless
LAN
(Infrastructure)
TCP、UDP、SCTP等
HTTP、FTP、SMTP等
OSI参照モデル 有線LAN 無線LAN
IEEE 802.2
IP(v4とv6)
B.A.T.M.A.N.-adv
IEEE 802.11
Wireless LAN
(ad-hoc)
TCP
MQTT
HTTP
Gossip
一般的なプロトコルスタック 今回利用したプロトコルスタック
クラウドとの通信
ConsulのREST API操作
ConsulのNode間通信
メッシュネットワーク用
ルーティングプロトコル
の一種
Consulについては
15:15~17:00に
H40でハンズオンが
行われます
Copyright © 2015 TIS Inc. All rights reserved.
メッシュネットワークとは
47
ノード間のデータや音声のルーティングの一種。故障などで使えなくなった経路が
発生しても継続的に接続・再構成を繰り返し、送信先に達するまでノードから
ノードへ転送を行う。
メッシュネットワークの最大の特徴は、各ノードがトラフィックを転送する
「ホップ (hop)」という動作をする点で、それによって各ノードから任意の
ノードへ接続する。
メッシュネットワークには自己修復性がある。1つのノードがダウンしたり、
1つの接続が不良となっても、ネットワーク全体は運用可能である。
結果として、非常に信頼性の高いネットワークとなる。
メッシュネットワーク(mesh network)
出展:ウィキペディア , https://ja.wikipedia.org/wiki/メッシュネットワーク
Ad-hocなWi-Fi上でメッシュネットワークを動作させれば
各IoTデバイスがパケットをバケツリレーしてくれるため、
電波が直接届かないIoTデバイスとも通信が可能となる。
Copyright © 2015 TIS Inc. All rights reserved.
Wi-Fiメッシュネットワークのメリット
 普通のWi-Fiチップが利用できる。
 Edisonに内蔵されているWi-Fiだけで利用できる。
 IPスタックが利用できる。
 Zigbee等のセンサーネットワーク規格とは異なり、IPスタック用
に作られたミドルウェアやノウハウをそのまま利用できる。
 Wi-Fiアクセスポイントの設置が必要ない。
 電波が届く距離に別のIoTデバイスがあれば、バケツリレーです
べてのIoTデバイスと連携することができる。
 ネットワーク的な単一障害点が無いように実装できる。
 メッシュネットワークとクラスタのヘルスチェック機構を連携さ
せることで、ネットワーク的な単一障害点を無くすことができる。
48
Copyright © 2015 TIS Inc. All rights reserved.
Wi-Fiメッシュネットワークのデメリット
 Edisonのデフォルトカーネルでは利用できない。
 カーネルの再構築が必要な場合がある。
 http://qiita.com/nmatsui/items/cb7020929654a128cf84 を参
照
 IoTデバイスの電力を消費する。
 IoTデバイスは通常、無線通信をしていないときは無線モジュー
ルへの給電を停止するが、メッシュネットワークがパケットをバ
ケツリレーしなければならないため、常時電力を消費してしまう。
 障害時のメンテナンスが大変。
 IoTデバイスクラスタ内でのパケット経路が静的に特定できない
ので、何かあった場合に追跡するのが大変。
 メッシュルーティングプロトコルは研究余地が多い。
 通常のルーティングよりも帯域をうまく活用できない(らしい)。49
Copyright © 2015 TIS Inc. All rights reserved.
これからのIoTのプロトコルスタック
 電力消費を極力押さえ、かつメッシュネットワークを実現する以下の
ようなプロトコルが着目されている。
50
Layer1: Physical
Layer2: Data Link
Layer3: Network
Layer4: Transport
Layer5: Session
Layer6: Presentation
Layer7: Application
MAC
LLC
OSI参照モデル
IEEE 802.2
IP(v4とv6)
B.A.T.M.A.N.-adv
IEEE 802.11
Wireless LAN
(ad-hoc)
TCP
MQTT
HTTP
Gossip
今回利用したプロトコルスタック
6LowPAN [2]
RPL [3]
IEEE 802.15.4 [1]
WPAN
TCP、UDP
HTTP、CoAP等
低消費電力なプロトコルスタック
[1] IEEE 802.15.4 : Zigbeeなどで利用されている近距離無線通信規格。伝送速度は速くないが消費電力が少ない
[2] 6LowPAN(IPv6 over Low power Wireless Personal Area Networks):IETFが策定中のIPv6を用いる低消費電力の無線技術
[3] RPL(IPv6 Routing Protocol for Low power and Lossy Networks):IETFが策定中のIPv6上でマルチホップルーティングを実現する技術
Copyright © 2015 TIS Inc. All rights reserved.
Consulとは
 Hashicorp社が提供するオーケストレーションツール
 運用の自律化に有用な多数の機能を提供
 ノードやサービスの死活管理
 障害や環境構成の変化、外部から発火させたイベント等に応じた
処理の自動実行
 分散KVSや分散DNSなど
 単一障害点が無く、リーダーノードがダウンした場合は生存して
いるノードが自動的に処理を引き継ぐ
 Go言語で開発されており、OSを問わずどの環境でもバイナリを
一つ置くだけで実行可能なため、導入が簡単
 2014年4月に提供開始
51
Copyright © 2015 TIS Inc. All rights reserved.
メッシュネットワークとConsulを併用するメリット
 IoTデバイスへの導入が簡単
 Go 1.4以上があれば、簡単に動作させることができる。
(Edisonであれば、x86 32bit用バイナリを置けば良いだけ)
 IoTデバイスの障害時に、fogに自律的な対処を行わせることができる。
 IoTデバイスに障害が起きた場合、生きている他のIoTデバイスが障
害を検知して、fogとして適切に動作するように自律的な対処を行
うことができる。
 fog内での情報共有が簡単に行える。
 Consul KVSを利用すれば、IoTデバイス間で簡単に情報共有できる。
 fogへ到達するイベントに対するアクションを簡単に定義できる。
 Consulのユーザーイベントを用いることで、適切なIoTデバイスが
自律的にイベントに対応することができる。
52
Copyright © 2015 TIS Inc. All rights reserved.
Consulを利用するライブラリ
 プログラミング言語ごとにConsulを利用するライブラリが準備され
ているので、簡単に利用できる。
53
import consul
…
class ConsulWrapper(object):
FACEDETECT_KEY = "face_detected"
POWERDETECT_KEY = "power_detected"
LASTPOWERTIME_KEY = "last_power_time"
POWER_EVENT = "power"
def __init__(self):
self.c = consul.Consul()
self.errcount = 0
def kv_put(self, key, value):
def _f():
return self.c.kv.put(key, str(value))
self.__retry(_f)
def kv_get(self, key):
def _f():
return self.c.kv.get(key)
i, v = self.__retry(_f)
return v
def ev_fire(self, event):
def _f():
return self.c.event.fire(event)
self.__retry(_f)
def __retry(self, f):
# Consulに接続できなかった場合のリトライ処理
class WatchRatePublisher(object):
…
def __init__(self, bluemix):
self.consul = cw.ConsulWrapper()
def check_state(self):
while True:
face = self.consul.kv_get(cw.ConsulWrapper.FACEDETECT_KEY)
power = self.consul.kv_get(cw.ConsulWrapper.POWERDETECT_KEY)
class NotifySubscriber(object):
…
def __init__(self, bluemix):
self.consul = cw.ConsulWrapper()
def notify(self):
def callback(msg):
self.consul.ev_fire(cw.ConsulWrapper.POWER_EVENT)
self.bluemix.notify(NotifySubscriber.TOPIC, callback)
class FaceDetector(object):
…
def __init__(self, cascade_file_name):
self.consul = cw.ConsulWrapper()
def __notify_detect(self, num_of_faces):
if num_of_faces == 0:
self.consul.kv_put(cw.ConsulWrapper.FACEDETECT_KEY, False)
else:
self.consul.kv_put(cw.ConsulWrapper.FACEDETECT_KEY, True)
Copyright © 2015 TIS Inc. All rights reserved.
MQTTとは
54
A machine-to-machine (M2M)/"Internet of Things" connectivity protocol.
It was designed as an extremely lightweight publish/subscribe messaging transport.
It is useful for connections with remote locations where a small code footprint is
required and/or network bandwidth is at a premium.
MQTT
出展:MQTT.org, http://mqtt.org/
MQTT
Broker
MQTT
Client
publish(TOPIC)
message
MQTT
Client
subscribe(TOPIC)
message
delivery
MQTT
Client
subscribe(TOPIC)
message
delivery
Copyright © 2015 TIS Inc. All rights reserved.
MQTTを利用するメリット
 ブローカーを仲立ちにしたpublish/subscribe型の
プロトコルのため、クライアント間を疎結合にできる。
 ヘッダが小さく(固定長ヘッダは2バイト)プロトコル自体が軽いため、
小さなデータを大量に送る場合は効果が大きい。
 クライアントが異常切断した場合、指定しておいた「Last Will &
Testament(遺言状)」メッセージが送られる。
 クライアントから送ったメッセージのQoSを定義できる。
 QoS0 At most once:ベストエフォート。消失や重複の可能性あり。
 QoS1 At least once:必ず到着するが、重複の可能性あり。
 QoS2 Exactly once:必ず1回到着することを保証。
 クライアントが異常切断していた間のQoS1,2のメッセージを再配信
してくれる。
55
Copyright © 2015 TIS Inc. All rights reserved.
MQTTを利用するライブラリ
 プログラミング言語ごとにMQTTを利用するライブラリが準備されて
いるので、簡単に利用できる。
56
import paho.mqtt.client as paho
class BluemixWrapper(object):
def __init__(self, conf):
self.mqttc = paho.Client(client_name)
self.mqttc.username_pw_set(USER, token)
def notify(self, topic, func):
def on_connect(client, userdata, flags, rc):
client.subscribe(topic)
def on_message(client, userdata, msg):
func(str(msg.payload))
self.mqttc.on_connect = on_connect
self.mqttc.on_message = on_message
def publish(self, topic, msg):
self.mqttc.publish(topic, msg)
def connect(self):
self.mqttc.connect(self.url, PORT, 60)
self.mqttc.loop_start()
class NotifySubscriber(object):
TOPIC = "iot-2/cmd/notify/fmt/json"
def __init__(self, bluemix):
self.bluemix = bluemix
def notify(self):
def callback(msg):
self.consul.ev_fire(cw.ConsulWrapper.POWER_EVENT)
self.bluemix.notify(NotifySubscriber.TOPIC, callback)
class WatchRatePublisher(object):
TOPIC = "iot-2/evt/status/fmt/json"
def __init__(self, bluemix):
self.bluemix = bluemix
def __publish(self, msg):
self.bluemix.publish(WatchRatePublisher.TOPIC, msg)
if __name__ == "__main__":
try:
bluemix = bw.BluemixWrapper(sys.argv[1])
NotifySubscriber(bluemix).notify()
bluemix.connect()
WatchRatePublisher(bluemix).check_state()
except KeyboardInterrupt as err:
print "watch_rate_publish end"
Copyright © 2015 TIS Inc. All rights reserved.
Agenda
1. IoT市場の急拡大
2. fog & cloud
3. Edison(とRaspberry Pi)を使ったIoTデバイスクラスタ
~Wasted energy of TV~
4. Wasted energy of TVの fog に関する技術要素
5. まとめ
57
Copyright © 2015 TIS Inc. All rights reserved.
まとめ
 なんだかよくわからないけれど、今後「IoT」は流行るらしい。
 「IoT」は明確に定義された言葉ではないが、「ヒトとモノをつない
で得られたデータを分析・学習し、現実世界にフィードバックするこ
とで新たな価値を生むもの」と捉えると良い(と思う)。
 「IoT」のアーキテクチャを考える際には、fogとcloudの協調動作を
意識すると良い(と思う)。
 fogにとって、メッシュネットワークやConsulクラスタは相性が良い
(電力消費まわりが解決できれば・・・)。
 fogのセキュリティまわりは、まだ調査中。。。ご存知の方はいろい
ろと教えてくだい。
58
「IoT」関連技術は、無線技術からデータ分析・学習まで
多岐にわたり、今まさに発展している最中である。
だからこそ熱く面白い。
Copyright © 2015 TIS Inc. All rights reserved.
ソースコードなど
 Wasted energy of TVのソースコードはgithubで公開中。
 https://github.com/nmatsui/wasted_energy_of_tv_iot
 https://github.com/nmatsui/wasted_energy_of_tv_gui
 https://github.com/nmatsui/wasted_energy_of_tv_nodered
 動画
 https://youtu.be/RDPD21L8voM
 環境構築手順と操作手順
 https://github.com/nmatsui/wasted_energy_of_tv_iot/wiki
/docs/construction.pdf
 https://github.com/nmatsui/wasted_energy_of_tv_iot/wiki
/docs/operation.pdf
59
Jtf2015 edison consul_cluster

More Related Content

What's hot

20150521 techno frontier2015講演-ntt_com境野哲
20150521 techno frontier2015講演-ntt_com境野哲20150521 techno frontier2015講演-ntt_com境野哲
20150521 techno frontier2015講演-ntt_com境野哲
akira sakaino
 

What's hot (20)

Hinemosで統合管理できる!NTTコミュニケーションズのクラウドサービス
Hinemosで統合管理できる!NTTコミュニケーションズのクラウドサービスHinemosで統合管理できる!NTTコミュニケーションズのクラウドサービス
Hinemosで統合管理できる!NTTコミュニケーションズのクラウドサービス
 
IoT/M2Mが切り拓く未来と課題 NTTコミュニケーションズ IoT・エバンジェリスト 境野 哲
 IoT/M2Mが切り拓く未来と課題 NTTコミュニケーションズ IoT・エバンジェリスト 境野 哲 IoT/M2Mが切り拓く未来と課題 NTTコミュニケーションズ IoT・エバンジェリスト 境野 哲
IoT/M2Mが切り拓く未来と課題 NTTコミュニケーションズ IoT・エバンジェリスト 境野 哲
 
Nttコミュニケーションズのクラウドサービスとopenstack クラウド エバンジェリスト 村上守
Nttコミュニケーションズのクラウドサービスとopenstack クラウド エバンジェリスト 村上守Nttコミュニケーションズのクラウドサービスとopenstack クラウド エバンジェリスト 村上守
Nttコミュニケーションズのクラウドサービスとopenstack クラウド エバンジェリスト 村上守
 
【AWS Night in ITHD】AWSとのSoftLayerで仮想ネットワークオーバーレイ
【AWS Night in ITHD】AWSとのSoftLayerで仮想ネットワークオーバーレイ【AWS Night in ITHD】AWSとのSoftLayerで仮想ネットワークオーバーレイ
【AWS Night in ITHD】AWSとのSoftLayerで仮想ネットワークオーバーレイ
 
20150521 techno frontier2015講演-ntt_com境野哲
20150521 techno frontier2015講演-ntt_com境野哲20150521 techno frontier2015講演-ntt_com境野哲
20150521 techno frontier2015講演-ntt_com境野哲
 
Web RTCにより拓かれるコミュニケーションサービスの形 「新たなバリュー創造へ。ntt comのチャレンジ」webアプリケーション エバンジェリスト ...
Web RTCにより拓かれるコミュニケーションサービスの形 「新たなバリュー創造へ。ntt comのチャレンジ」webアプリケーション エバンジェリスト ...Web RTCにより拓かれるコミュニケーションサービスの形 「新たなバリュー創造へ。ntt comのチャレンジ」webアプリケーション エバンジェリスト ...
Web RTCにより拓かれるコミュニケーションサービスの形 「新たなバリュー創造へ。ntt comのチャレンジ」webアプリケーション エバンジェリスト ...
 
IoT時代のビジネスチャンスのとらえ方
IoT時代のビジネスチャンスのとらえ方IoT時代のビジネスチャンスのとらえ方
IoT時代のビジネスチャンスのとらえ方
 
20160527_06_Azure Certified for IoT for 共創ラボ
20160527_06_Azure Certified for IoT for 共創ラボ20160527_06_Azure Certified for IoT for 共創ラボ
20160527_06_Azure Certified for IoT for 共創ラボ
 
なぜ情報漏洩事故は繰り返されるのか? ~当社の運用事例にみる、サイバー攻撃の実際と効果的な対策~ NTTコミュニケーションズ セキュリティ・エバンジェリス...
なぜ情報漏洩事故は繰り返されるのか? ~当社の運用事例にみる、サイバー攻撃の実際と効果的な対策~ NTTコミュニケーションズ セキュリティ・エバンジェリス...なぜ情報漏洩事故は繰り返されるのか? ~当社の運用事例にみる、サイバー攻撃の実際と効果的な対策~ NTTコミュニケーションズ セキュリティ・エバンジェリス...
なぜ情報漏洩事故は繰り返されるのか? ~当社の運用事例にみる、サイバー攻撃の実際と効果的な対策~ NTTコミュニケーションズ セキュリティ・エバンジェリス...
 
嘘つきはセキュリティの始まり ~偽装技術とセキュリティ~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
嘘つきはセキュリティの始まり ~偽装技術とセキュリティ~(NTTデータ テクノロジーカンファレンス 2020 発表資料)嘘つきはセキュリティの始まり ~偽装技術とセキュリティ~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
嘘つきはセキュリティの始まり ~偽装技術とセキュリティ~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
20150822 iot事例紹介
20150822 iot事例紹介20150822 iot事例紹介
20150822 iot事例紹介
 
可視化ソリューションを活用した「ミせる」Hinemos
可視化ソリューションを活用した「ミせる」Hinemos可視化ソリューションを活用した「ミせる」Hinemos
可視化ソリューションを活用した「ミせる」Hinemos
 
Why SoftLayer? なぜ、EC/通販統合パッケージリーダーのエルテックスは、SoftLayerを選んだのか?
Why SoftLayer? なぜ、EC/通販統合パッケージリーダーのエルテックスは、SoftLayerを選んだのか?Why SoftLayer? なぜ、EC/通販統合パッケージリーダーのエルテックスは、SoftLayerを選んだのか?
Why SoftLayer? なぜ、EC/通販統合パッケージリーダーのエルテックスは、SoftLayerを選んだのか?
 
IoTとAIが牽引するエンタープライズシステムの新展開
IoTとAIが牽引するエンタープライズシステムの新展開IoTとAIが牽引するエンタープライズシステムの新展開
IoTとAIが牽引するエンタープライズシステムの新展開
 
第2回すだちくん勉強会におけるIoT最新動向と題したプレゼン資料
第2回すだちくん勉強会におけるIoT最新動向と題したプレゼン資料第2回すだちくん勉強会におけるIoT最新動向と題したプレゼン資料
第2回すだちくん勉強会におけるIoT最新動向と題したプレゼン資料
 
「オープンイノベーションによるIoTビジネス創出」北九州Eport総会 170317
「オープンイノベーションによるIoTビジネス創出」北九州Eport総会 170317「オープンイノベーションによるIoTビジネス創出」北九州Eport総会 170317
「オープンイノベーションによるIoTビジネス創出」北九州Eport総会 170317
 
IoT概論: AITCオープンラボ IoT勉強会
IoT概論: AITCオープンラボ IoT勉強会IoT概論: AITCオープンラボ IoT勉強会
IoT概論: AITCオープンラボ IoT勉強会
 
「IoTビジネスの嘘とホント~必要な検討事項と技術検証~」Developer Summit kansai 20160915
「IoTビジネスの嘘とホント~必要な検討事項と技術検証~」Developer Summit kansai 20160915「IoTビジネスの嘘とホント~必要な検討事項と技術検証~」Developer Summit kansai 20160915
「IoTビジネスの嘘とホント~必要な検討事項と技術検証~」Developer Summit kansai 20160915
 
LPWA Sigfoxネットワークとクラウド連携
LPWA Sigfoxネットワークとクラウド連携LPWA Sigfoxネットワークとクラウド連携
LPWA Sigfoxネットワークとクラウド連携
 
IoT を活用したビジネス創生のシナリオ (石川・金沢IoTビジネス共創ラボ 第二回勉強会)
IoT を活用したビジネス創生のシナリオ (石川・金沢IoTビジネス共創ラボ 第二回勉強会)IoT を活用したビジネス創生のシナリオ (石川・金沢IoTビジネス共創ラボ 第二回勉強会)
IoT を活用したビジネス創生のシナリオ (石川・金沢IoTビジネス共創ラボ 第二回勉強会)
 

Viewers also liked

Viewers also liked (18)

Hadoop Present - Open Enterprise Hadoop
Hadoop Present - Open Enterprise HadoopHadoop Present - Open Enterprise Hadoop
Hadoop Present - Open Enterprise Hadoop
 
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれから
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれからベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれから
ベンチャーCTO、AWSエバンジェリストを経て考える、クラウド時代に向き合うエンジニア像のこれから
 
Deep Dive into Modules
Deep Dive into ModulesDeep Dive into Modules
Deep Dive into Modules
 
マイクロサービスで、
一歩先行くImmutable Infrastructureを目指そう
マイクロサービスで、
一歩先行くImmutable Infrastructureを目指そうマイクロサービスで、
一歩先行くImmutable Infrastructureを目指そう
マイクロサービスで、
一歩先行くImmutable Infrastructureを目指そう
 
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
 
フリーでやろうぜ!セキュリティチェック!
フリーでやろうぜ!セキュリティチェック!フリーでやろうぜ!セキュリティチェック!
フリーでやろうぜ!セキュリティチェック!
 
運用に自動化を求めるのは間違っているだろうか
運用に自動化を求めるのは間違っているだろうか運用に自動化を求めるのは間違っているだろうか
運用に自動化を求めるのは間違っているだろうか
 
インフラエンジニアがUnityをやるべきたった一つの理由
インフラエンジニアがUnityをやるべきたった一つの理由インフラエンジニアがUnityをやるべきたった一つの理由
インフラエンジニアがUnityをやるべきたった一つの理由
 
機械学習概論 講義テキスト
機械学習概論 講義テキスト機械学習概論 講義テキスト
機械学習概論 講義テキスト
 
わしわし的おすすめ .gitconfig 設定 (と見せかけて実はみんなのおすすめ .gitconfig 設定を教えてもらう魂胆) #広島Git 勉強会
わしわし的おすすめ  .gitconfig 設定 (と見せかけて実はみんなのおすすめ .gitconfig 設定を教えてもらう魂胆) #広島Git 勉強会わしわし的おすすめ  .gitconfig 設定 (と見せかけて実はみんなのおすすめ .gitconfig 設定を教えてもらう魂胆) #広島Git 勉強会
わしわし的おすすめ .gitconfig 設定 (と見せかけて実はみんなのおすすめ .gitconfig 設定を教えてもらう魂胆) #広島Git 勉強会
 
Multi Cloud Design Pattern(Beta)
Multi Cloud Design Pattern(Beta)Multi Cloud Design Pattern(Beta)
Multi Cloud Design Pattern(Beta)
 
まったりセンサー @ Code for Nanto
まったりセンサー @ Code for Nantoまったりセンサー @ Code for Nanto
まったりセンサー @ Code for Nanto
 
"Summarize and Express” Training in English
"Summarize and Express” Training in English"Summarize and Express” Training in English
"Summarize and Express” Training in English
 
【14-D-4】デベロッパー戦国時代!ストーリーをつなぐ開発環境と3つの秘訣
【14-D-4】デベロッパー戦国時代!ストーリーをつなぐ開発環境と3つの秘訣【14-D-4】デベロッパー戦国時代!ストーリーをつなぐ開発環境と3つの秘訣
【14-D-4】デベロッパー戦国時代!ストーリーをつなぐ開発環境と3つの秘訣
 
CLOUD2 Commission Report
CLOUD2 Commission ReportCLOUD2 Commission Report
CLOUD2 Commission Report
 
The social media strategy
The social media strategyThe social media strategy
The social media strategy
 
1. Cover Page
1. Cover Page1. Cover Page
1. Cover Page
 
How to create a Facebook Group
How to create a Facebook GroupHow to create a Facebook Group
How to create a Facebook Group
 

Similar to Jtf2015 edison consul_cluster

Similar to Jtf2015 edison consul_cluster (20)

八子Opening IoT trend_151114
八子Opening IoT trend_151114八子Opening IoT trend_151114
八子Opening IoT trend_151114
 
【第17回八子クラウド座談会 LT】CloudConductor+VDCのご紹介
【第17回八子クラウド座談会 LT】CloudConductor+VDCのご紹介【第17回八子クラウド座談会 LT】CloudConductor+VDCのご紹介
【第17回八子クラウド座談会 LT】CloudConductor+VDCのご紹介
 
【第17回八子クラウド座談会 LT】CloudConductor+VDCのご紹介
【第17回八子クラウド座談会 LT】CloudConductor+VDCのご紹介【第17回八子クラウド座談会 LT】CloudConductor+VDCのご紹介
【第17回八子クラウド座談会 LT】CloudConductor+VDCのご紹介
 
Microsoft in Action! - COVID19への取り組み、これから皆様とできること。
Microsoft in Action! - COVID19への取り組み、これから皆様とできること。Microsoft in Action! - COVID19への取り組み、これから皆様とできること。
Microsoft in Action! - COVID19への取り組み、これから皆様とできること。
 
Cloud Technologies and AI in IoT Era
Cloud Technologies  and AI in IoT EraCloud Technologies  and AI in IoT Era
Cloud Technologies and AI in IoT Era
 
IoT案件を70件やってみて分かった事
IoT案件を70件やってみて分かった事IoT案件を70件やってみて分かった事
IoT案件を70件やってみて分かった事
 
20190915 hayashi nw_jaws
20190915 hayashi nw_jaws 20190915 hayashi nw_jaws
20190915 hayashi nw_jaws
 
WebRTCが拓く 新たなWebビジネスの世界
WebRTCが拓く新たなWebビジネスの世界WebRTCが拓く新たなWebビジネスの世界
WebRTCが拓く 新たなWebビジネスの世界
 
IoT/ロボティクス時代のモニタリングとコントロール
IoT/ロボティクス時代のモニタリングとコントロールIoT/ロボティクス時代のモニタリングとコントロール
IoT/ロボティクス時代のモニタリングとコントロール
 
20170720_5 MBC-IoT_IoTビジネス共創ラボ
20170720_5 MBC-IoT_IoTビジネス共創ラボ20170720_5 MBC-IoT_IoTビジネス共創ラボ
20170720_5 MBC-IoT_IoTビジネス共創ラボ
 
IoT 導入を簡単に実現する“つなぐ”技術 ​~デンソーウェーブの IoT製品と Microsoft Azure 連携~
IoT 導入を簡単に実現する“つなぐ”技術 ​~デンソーウェーブの IoT製品と Microsoft Azure 連携~IoT 導入を簡単に実現する“つなぐ”技術 ​~デンソーウェーブの IoT製品と Microsoft Azure 連携~
IoT 導入を簡単に実現する“つなぐ”技術 ​~デンソーウェーブの IoT製品と Microsoft Azure 連携~
 
Introducing IBM Cloud & Cognitive
Introducing IBM Cloud & CognitiveIntroducing IBM Cloud & Cognitive
Introducing IBM Cloud & Cognitive
 
日経BP ITpro IoT japanパネル討議資料
日経BP ITpro IoT japanパネル討議資料日経BP ITpro IoT japanパネル討議資料
日経BP ITpro IoT japanパネル討議資料
 
New IP へのステップ その1) Fabric – すべての基本はファブリックにあり
New IP へのステップ その1) Fabric – すべての基本はファブリックにありNew IP へのステップ その1) Fabric – すべての基本はファブリックにあり
New IP へのステップ その1) Fabric – すべての基本はファブリックにあり
 
infoScoop OpenSource v2.1の新機能・今後の予定のご紹介 at 第1回IOCJ情報交換会
infoScoop OpenSource v2.1の新機能・今後の予定のご紹介 at 第1回IOCJ情報交換会infoScoop OpenSource v2.1の新機能・今後の予定のご紹介 at 第1回IOCJ情報交換会
infoScoop OpenSource v2.1の新機能・今後の予定のご紹介 at 第1回IOCJ情報交換会
 
IoT & AI を活用したビジネスのつくり方と実践事例_IoTビジネス共創ラボ 第10回 勉強会
IoT & AI を活用したビジネスのつくり方と実践事例_IoTビジネス共創ラボ 第10回 勉強会 IoT & AI を活用したビジネスのつくり方と実践事例_IoTビジネス共創ラボ 第10回 勉強会
IoT & AI を活用したビジネスのつくり方と実践事例_IoTビジネス共創ラボ 第10回 勉強会
 
Azure Digital Twins 最新事例紹介 ( IoTビジネス共創ラボ 第16回勉強会 )
Azure Digital Twins 最新事例紹介 ( IoTビジネス共創ラボ 第16回勉強会 )Azure Digital Twins 最新事例紹介 ( IoTビジネス共創ラボ 第16回勉強会 )
Azure Digital Twins 最新事例紹介 ( IoTビジネス共創ラボ 第16回勉強会 )
 
Azure Digital Twins最新事例紹介
Azure Digital Twins最新事例紹介Azure Digital Twins最新事例紹介
Azure Digital Twins最新事例紹介
 
IoT ビジネス共創ラボの趣旨説明 地方共創ラボ紹介
IoT ビジネス共創ラボの趣旨説明 地方共創ラボ紹介IoT ビジネス共創ラボの趣旨説明 地方共創ラボ紹介
IoT ビジネス共創ラボの趣旨説明 地方共創ラボ紹介
 
注目の最新技術「WebRTC」とは? -技術概要と事例紹介-
注目の最新技術「WebRTC」とは? -技術概要と事例紹介-注目の最新技術「WebRTC」とは? -技術概要と事例紹介-
注目の最新技術「WebRTC」とは? -技術概要と事例紹介-
 

More from Nobuyuki Matsui

CCSE2019 TIS - 自律移動サービスロボットの地図とデータモデルの共通化への取り組み
CCSE2019 TIS - 自律移動サービスロボットの地図とデータモデルの共通化への取り組みCCSE2019 TIS - 自律移動サービスロボットの地図とデータモデルの共通化への取り組み
CCSE2019 TIS - 自律移動サービスロボットの地図とデータモデルの共通化への取り組み
Nobuyuki Matsui
 

More from Nobuyuki Matsui (12)

FIWARE勉強会 20190913
FIWARE勉強会 20190913FIWARE勉強会 20190913
FIWARE勉強会 20190913
 
CCSE2019 TIS - 自律移動サービスロボットの地図とデータモデルの共通化への取り組み
CCSE2019 TIS - 自律移動サービスロボットの地図とデータモデルの共通化への取り組みCCSE2019 TIS - 自律移動サービスロボットの地図とデータモデルの共通化への取り組み
CCSE2019 TIS - 自律移動サービスロボットの地図とデータモデルの共通化への取り組み
 
FIWARE-based Robot Management Platform ~ RoboticBase~
FIWARE-based Robot Management Platform ~ RoboticBase~FIWARE-based Robot Management Platform ~ RoboticBase~
FIWARE-based Robot Management Platform ~ RoboticBase~
 
Jazug-8th: Azure AKS & FIWARE & Robot
Jazug-8th: Azure AKS & FIWARE & RobotJazug-8th: Azure AKS & FIWARE & Robot
Jazug-8th: Azure AKS & FIWARE & Robot
 
JTF2018 FIWARE x robot x IoT
JTF2018 FIWARE x robot x IoTJTF2018 FIWARE x robot x IoT
JTF2018 FIWARE x robot x IoT
 
良いコードとは
良いコードとは良いコードとは
良いコードとは
 
Dockerのネットワークについて
DockerのネットワークについてDockerのネットワークについて
Dockerのネットワークについて
 
【第11回 クラウドごった煮(コンテナ勉強会)】Docker networking tools
【第11回 クラウドごった煮(コンテナ勉強会)】Docker networking tools【第11回 クラウドごった煮(コンテナ勉強会)】Docker networking tools
【第11回 クラウドごった煮(コンテナ勉強会)】Docker networking tools
 
【Tech-Circle #3 & OCDET #7 SDS勉強会】 Ceph on SoftLayer
【Tech-Circle #3 & OCDET #7 SDS勉強会】 Ceph on SoftLayer【Tech-Circle #3 & OCDET #7 SDS勉強会】 Ceph on SoftLayer
【Tech-Circle #3 & OCDET #7 SDS勉強会】 Ceph on SoftLayer
 
【第5回東京SoftLayer勉強会】LT7 SoftLayerでOpenStackを動かしてみた
【第5回東京SoftLayer勉強会】LT7 SoftLayerでOpenStackを動かしてみた【第5回東京SoftLayer勉強会】LT7 SoftLayerでOpenStackを動かしてみた
【第5回東京SoftLayer勉強会】LT7 SoftLayerでOpenStackを動かしてみた
 
Raspberry Pi + AWS + SoftEtherVPN + RemoteWorks = ?
Raspberry Pi + AWS + SoftEtherVPN + RemoteWorks = ?Raspberry Pi + AWS + SoftEtherVPN + RemoteWorks = ?
Raspberry Pi + AWS + SoftEtherVPN + RemoteWorks = ?
 
20140905 AWS Night in ITHD LT2
20140905 AWS Night in ITHD LT220140905 AWS Night in ITHD LT2
20140905 AWS Night in ITHD LT2
 

Jtf2015 edison consul_cluster

  • 1. Copyright © 2015 TIS Inc. All rights reserved. IoT時代のデバイスクラスタ - Hashicorp consulを用いたIntel Edisonクラスタの構成 - 2015年7月26日 TIS株式会社 戦略技術センター 松井暢之
  • 2. Copyright © 2015 TIS Inc. All rights reserved. 2 松井 暢之(まつい のぶゆき) TIS株式会社 戦略技術センター ~2003 2003~2008 2009 2010~2012 2013~ 2015~ 現場PJでアーキテクト兼モデラー兼プログラマ兼…を歴任 基盤技術センター(現戦略技術センター)で不芳PJの火消しに奔走 全社生産性向上の企画策定に従事 オープンでエッジな技術を活用した事業企画に従事 Cloud Orchestrator “CloudConductor®” の企画開発とOSS化開始 IoTオーケストレーション関連の研究開発を開始 http://cloudconductor.org nbyk.matsui nmatsui nbyk.matsui@n_matsui
  • 3. Copyright © 2015 TIS Inc. All rights reserved. Agenda 1. IoT市場の急拡大 2. fog & cloud 3. Edison(とRaspberry Pi)を使ったIoTデバイスクラスタ ~Wasted energy of TV~ 4. Wasted energy of TVの fog に関する技術要素 5. まとめ 3
  • 4. Copyright © 2015 TIS Inc. All rights reserved. そもそも「IoT」とはなんだ?  いま一歩イメージがわかない。結局「IoT」とは具体的に何だろう? 4 Question! by Stefan Baudy, on Flickr 一意に識別可能な「もの」がインターネット/クラウドに接続され、情報交換する ことにより相互に制御する仕組みである。 「Internet of Everything」や「Smart Everything」、「サービスのモノ化」 ともいう。 モノのインターネット(Internet of Things、IoT) 出展:ウィキペディア , https://ja.wikipedia.org/wiki/モノのインターネット
  • 5. Copyright © 2015 TIS Inc. All rights reserved. 「IoT」市場の急拡大  なんだかよくわからないが、「IoT」市場は急拡大するようだ。  IoT業界で生み出される収益の予測  2020年には最大で7兆ドル(IDC)の収益がIoT市場で生み出される 5 出展:IoT Analytics, "IoT Market – Forecasts at a glance“, 2014-10, http://iot-analytics.com/iot-market-forecasts-overview/
  • 6. Copyright © 2015 TIS Inc. All rights reserved. 「IoT」市場の急拡大  なんだかよくわからないが、「IoT」市場は急拡大するようだ。  相互接続されるデバイス数の予測  2020年には最大で500億個(CiscoやEricsson)のデバイスが 相互に接続される 6 出展:IoT Analytics, "IoT Market – Forecasts at a glance“, 2014-10, http://iot-analytics.com/iot-market-forecasts-overview/
  • 7. Copyright © 2015 TIS Inc. All rights reserved. 「IoT」市場の急拡大  なんだかよくわからないが、「IoT」市場は急拡大するようだ。  接続されるデバイス数の内訳の予測  2018年には、相互接続されるデバイスのうち半分程度は「IoT」 (BI Intelligence) 7 出展:Business Insider, "THE INTERNET OF EVERYTHING: 2014 “, 2014-02, http://www.businessinsider.com.au/the-internet-of-everything-2014-slide-deck-sai-2014-2
  • 8. Copyright © 2015 TIS Inc. All rights reserved. デバイスが接続されていれば「IoT」なのだろうか?  「M2M」と「IoT」は同じ?違う? 8 Question! by Stefan Baudy, on Flickr コンピュータネットワークに繋がれた機械同士が人間を介在せずに相互に情報交換し、 自動的に最適な制御が行われるシステムを指す。 マシンツーマネジメント(Machine-to-Management)とも呼ばれる。 マシンツーマシン(Machine-to-Machine、M2M) 出展:ウィキペディア , https://ja.wikipedia.org/wiki/マシンツーマシン
  • 9. Copyright © 2015 TIS Inc. All rights reserved. 「IoT」とは(個人的見解)  個人的には「IoT」を以下のように捉えている。 9 ヒトやモノが相互連携して 営まれる現実世界の活動を 「データ」として映し出し、 様々な種類の「データ」を 組み合わせて分析・学習し、 得られた知見を現実世界へ フィードバックすることで、 現実世界の活動へ新たな 価値を生み出すこと。 IoTとは 現実世界 データ 分析・学習 現実世界へフィードバック
  • 10. Copyright © 2015 TIS Inc. All rights reserved. 「IoT」とは(個人的見解) 10  個人的には「IoT」を以下のようには捉えていない。  モノをインターネットにつなげばIoTである?  つないだだけでは意味が無いし、ヒトやモノが相互に連携してデータ を収集できるのであれば、すべてのモノを直接インターネットに接続 しなくても良い。  IoTとはセンサーから得た情報を機械にフィードバックして無人 運転することである?  センサーと機械をつないでフィードバックするだけではもったいない。 ヒトの行動やソーシャルの情報など、センサーだけでは得られない 様々なデータも組み合わせて新たな価値を提供することが肝心。
  • 11. Copyright © 2015 TIS Inc. All rights reserved. 「IoT」と「IoE」  シスコは「人」「プロセス」「データ」「モノ」をつなぐことで新た な価値を生み出すことを、「Internet of Everything」と呼んでいる。 11 出展:第15回 八子クラウド座談会, シスコシステムズ合同会社 シスココンサルティングサービス シニアパートナー 八子知礼, “IoE(Internet of Everything)元年2014 ~新設シスココンサルティングサービスが創る新クラウドビジネス~“, 2014-12, http://www.slideshare.net/tomokyun85/yako-presen-141213
  • 12. Copyright © 2015 TIS Inc. All rights reserved. 「IoT」と「IoE」  モノの接続とデータ活用という「IoT(狭義のIoT)」と、より 広範囲に接続して価値を創造する「IoE(広義のIoT)」(by シスコ) 12 出展:第15回 八子クラウド座談会, シスコシステムズ合同会社 シスココンサルティングサービス シニアパートナー 八子知礼, “IoE(Internet of Everything)元年2014 ~新設シスココンサルティングサービスが創る新クラウドビジネス~“, 2014-12, http://www.slideshare.net/tomokyun85/yako-presen-141213
  • 13. Copyright © 2015 TIS Inc. All rights reserved. Agenda 1. IoT市場の急拡大 2. fog & cloud 3. Edison(とRaspberry Pi)を使ったIoTデバイスクラスタ ~Wasted energy of TV~ 4. Wasted energy of TVの fog に関する技術要素 5. まとめ 13
  • 14. Copyright © 2015 TIS Inc. All rights reserved. インターネットトラフィックの急拡大  グローバルなIPトラフィック量は年平均23%で急拡大し、2019年に は2014年の2.8倍となる160EB/月と予測されている。 14 出展:Cisco, " Cisco VNI Global IP Traffic Forecast, 2014–2019“, 2015-03, http://www.cisco.com/c/en/us/solutions/collateral/service-provider/visual-networking-index-vni/VNI_Hyperconnectivity_WP.pdf
  • 15. Copyright © 2015 TIS Inc. All rights reserved. IoTのセキュリティリスク  現実世界に近いIoTがハッキングを受けると、直接的で深刻な被害が 発生する可能性がある。例えば以下のような事例が報告されている。  シャワートイレを遠隔操作するBluetoothアプリに脆弱性がある というセキュリティアドバイザリが公表された(2013.08)  ベビーモニターがクラックされ、子どもや夫婦に暴言を吐く男の 声が聞こえた(2013.08)  テレビや冷蔵庫等のスマート家電がクラッキングを受け、大量の 不正メールを送信する「Thingbots」化した(2014.01)  ハッキングコンテストで、動作中の電気自動車のドアやサンルー フを遠隔開閉できた(2014.07) 15 出展:Proofpoint, "More than 750,000 Phishing and SPAM emails Launched from "Thingbots" Including Televisions, Fridge“, 2014-01, https://www.proofpoint.com/us/proofpoint-uncovers-internet-things-iot-cyberattack 出展:Trustwave, “Trustwave SpiderLabs Security Advisory TWSL2013-020: Hard-Coded Bluetooth PIN Vulnerability in LIXIL Satis Toilet“, 2014-01, https://www.trustwave.com/spiderlabs/advisories/TWSL2013-020.txt 出展:CNN, “Foul-mouthed hacker hijacks baby‘s monitor“, 2013-08, http://edition.cnn.com/2013/08/14/tech/web/hacked-baby-monitor/ 出展:ESET, "Tesla Model S hacked to open doors while in motion “, 2014-07, http://www.welivesecurity.com/2014/07/23/tesla-model-s-hacked-open-doors-motion/
  • 16. Copyright © 2015 TIS Inc. All rights reserved. fog computing  「IoT」全体の中で、ヒトやモノに近い場所(エッジ)で行う処理と クラウドで行う処理を分割し、それらが分散協調して動作する仕組み  fog computingの概念はシスコシステムズ発祥 16 A distributed computing infrastructure in which some application services are handled at the network edge in a smart device and some application services are handled in the cloud. fog computing(fogging) 出展:WhatIs.com, http://whatis.techtarget.com/definition/fog-computing-fogging designed by Freepik.com fog cloud
  • 17. Copyright © 2015 TIS Inc. All rights reserved. fogの特徴とcloudとの役割分担  雲の向こうの(多分土地と電気が安い)どこかにあるcloudではなく、 fogはヒトやモノに近い「その場」にある。  リアルタイム性が重要な処理はfogで行い、大量データの蓄積や 分析・学習はcloudで行う。  fogの中だけで完結できる、完結すべき処理はfogで行い、帯域や セキュリティ的に必要なデータのみをcloudと送受信する。  広く点在し移動するヒトやモノが動的にfogに参加し、cloudからの メンテナンスが無くてもfogが自律的に最適動作する。  fogに参加するヒトやモノの死活状態や、fog内やcloudとの通信 の正当性をfog自体が自律的にチェックし、不正なヒトやモノを 排除する。 17 After the rain - 2 by Randi Hausken on Flickr
  • 18. Copyright © 2015 TIS Inc. All rights reserved. Agenda 1. IoT市場の急拡大 2. fog & cloud 3. Edison(とRaspberry Pi)を使ったIoTデバイスクラスタ ~Wasted energy of TV~ 4. Wasted energy of TVの fog に関する技術要素 5. まとめ 18
  • 19. Copyright © 2015 TIS Inc. All rights reserved.  fog : EdisonとRaspberry Piを用いたIoTデバイスクラスタ  cloud : IBM Bluemix fogとcloudのプロトタイプ ~ Wasted energy of TV ~ 19 MongoDB Intel Edison Intel Edison Intel Edison Raspberry Pi B+ USBカメラ Internet 赤外線 リモコン IoT Foundation Local Network Wi-Fi Mesh Network Internet Gateway Internet Gateway Network fog Node-REDアプリ Consul Cluster赤外線センサー 赤外線LED Webブラウザ テレビ cloud GUIアプリ
  • 20. Copyright © 2015 TIS Inc. All rights reserved.  日常生活において「点いているけれど見ていないテレビ」に費やされ ている時間を可視化するアプリである。  カラーチャートによってテレビの視聴状態が可視化される。  赤色に近ければ近い時間ほど、集中してテレビを見ている  青色に近ければ近い時間ほど、テレビに視線を向けていない  灰色の時間は、テレビが点いていない Wasted energy of TVとは 20
  • 21. Copyright © 2015 TIS Inc. All rights reserved.  クラウドのデータ分析ロジックが「テレビは点いているけれど集中し て見ていない」と判断すると、自動的にテレビが消える。  この機能は有効化/無効化することができる。  有効化した場合、テレビがONかつテレビを見ていない状態が設定 した時間(分)以上連続すると、自動的にテレビがOFFになる。 Wasted energy of TVとは 21
  • 22. Copyright © 2015 TIS Inc. All rights reserved. 22 Wasted energy of TVの動作 テレビ試聴状況の送信
  • 23. Copyright © 2015 TIS Inc. All rights reserved.  赤外線リモコンを用いてテレビをONにする。  赤外線センサーがリモコンの赤外線パルスを傍受しテレビの ON/OFFを捉える。 テレビ試聴状況の送信 23 赤外線 リモコン Local Network Wi-Fi Mesh Network Consul Cluster赤外線センサー ① 赤外線センサーが テレビのONを認識する ② Consul KVSへテレビ がONであることを登録 テレビ fog cloud Intel Edison Raspberry Pi B+
  • 24. Copyright © 2015 TIS Inc. All rights reserved. テレビ試聴状況の送信  赤外線パルスを認識する赤外線センサーと、現在の認識状態を 表示するLED(テレビがONだと認識していると点灯)。 24 赤外線センサー テレビON/OFF 認識表示LED
  • 25. Copyright © 2015 TIS Inc. All rights reserved. テレビ試聴状況の送信  赤外線センサーがうまく認識できない場合に用いる、強制的にテレビ のON/OFF認識を変更するスイッチ。 25 強制スイッチ
  • 26. Copyright © 2015 TIS Inc. All rights reserved.  テレビを見る。  USBカメラの画像を解析し、テレビに顔の正面が向いていれば 「テレビを見ている」と判断。 テレビ試聴状況の送信 26 USBカメラ Wi-Fi Mesh Network Consul Cluster ② Consul KVSへテレビが 見られていることを登録 ① USBカメラの映像フレームを解析し、 「正面の顔」の有無を認識する テレビ fog cloud Intel Edison
  • 27. Copyright © 2015 TIS Inc. All rights reserved. テレビ試聴状況の送信  テレビを見ているかを認識するためのUSBカメラ。 27 顔認識を行う USBカメラ
  • 28. Copyright © 2015 TIS Inc. All rights reserved. テレビ試聴状況の送信  現在テレビを見ているかを表示するLED(テレビを見ていると認識し ていると点灯)。 28 テレビの視聴状態 認識表示LED
  • 29. Copyright © 2015 TIS Inc. All rights reserved.  現在の状態をクラウドへ送る。  定期的にテレビのON/OFFをチェックし、テレビが点いていれば 顔認識の情報をクラウドへpublishする。 IoT Foundation テレビ試聴状況の送信 29 Internet Wi-Fi Mesh Network Internet Gateway Internet Gateway Network Consul Cluster ② テレビがONであれば、正面顔の 認識状態をMQTTでpublishする ① Consul KVSからテレビのON/OFF と正面顔の認識状態を取得する ③ IoTデバイスクラスタからのpublish された情報をsubscribeする fog cloud Intel Edison
  • 30. Copyright © 2015 TIS Inc. All rights reserved. テレビ試聴状況の送信  現在データを送信中かを表示するLED(データ送信中は点滅)。 30 データ送信 表示LED
  • 31. Copyright © 2015 TIS Inc. All rights reserved.  IoTデバイスクラスタから受信した情報を蓄積する。  IoT Foundationがsubscribeした情報をMongoDBに蓄積する。 MongoDB IoT Foundation Node-REDアプリ テレビ試聴状況の送信 31 ② IoT Foundationから送られてた 情報をMongoDBに蓄積する ① subscribeした情報をNode-RED アプリへ転送する fog cloud
  • 32. Copyright © 2015 TIS Inc. All rights reserved. テレビ試聴状況の送信  Wasted energy of TVのIoTデバイスクラスタの動画  https://youtu.be/RDPD21L8voM 32
  • 33. Copyright © 2015 TIS Inc. All rights reserved. 33 Wasted energy of TVの動作 テレビ試聴状況の可視化
  • 34. Copyright © 2015 TIS Inc. All rights reserved.  テレビの視聴状況を可視化する。  ブラウザからGUIアプリにアクセスし、指定した日付 のテレビ視聴状況を可視化する。 テレビ試聴状況の可視化 34 IBM Bluemix MongoDB Node-REDアプリ GUIアプリ Webブラウザ ① GUIアプリのNginxから HTMLやJS等を取得 ② AJAXを用いてNode-RED アプリのREST APIから情報取得 fog cloud
  • 35. Copyright © 2015 TIS Inc. All rights reserved. テレビ試聴状況の可視化  テレビの視聴状況を可視化する。  http://wasted-energy-of-tv-gui.mybluemix.net/  赤色に近ければ近いほど、集中してテレビを見ている。  青色に近ければ近いほど、テレビに視線を向けていない。  灰色はテレビが点いていない。 35 集中してテレビを見ている ほとんどテレビを見ていない テレビを見たり見なかったり テレビが点いてない
  • 36. Copyright © 2015 TIS Inc. All rights reserved. 36 Wasted energy of TVの動作 テレビ自動OFF
  • 37. Copyright © 2015 TIS Inc. All rights reserved.  テレビ自動OFFを登録する。  ブラウザからGUIアプリにアクセスし、テレビの 自動OFFを登録する。 テレビ自動OFF 37 IBM Bluemix MongoDB Node-REDアプリ GUIアプリ Webブラウザ ① AJAXを用いてNode-RED アプリのREST APIから登録 fog cloud
  • 38. Copyright © 2015 TIS Inc. All rights reserved. テレビ自動OFF  テレビ自動OFFを登録する。  「Change」リンクをクリックすると、テレビ自動OFF機能の 登録画面が表示される。  初期値として現在の登録状況が設定されている。 38
  • 39. Copyright © 2015 TIS Inc. All rights reserved. テレビ自動OFF  テレビ自動OFFを登録する。  テレビ自動OFFを無効化する場合、トグルボタンをOFFにする。  テレビ自動OFFを有効化する場合、トグルボタンをONにして、 テキストボックスに自動OFFになるまでの時間(分)を入力する。 39
  • 40. Copyright © 2015 TIS Inc. All rights reserved.  テレビが自動で消える。  テレビ自動OFFが有効の場合、テレビが点いており、かつ設定さ れた時間連続してテレビを見てないと、cloud からイベントが送出される。 テレビ自動OFF 40 MongoDB Node-REDアプリ IoT Foundation ① MongoDBに蓄積されている情報 を定期的にチェック ② テレビが点いているのに、設定された 時間連続してテレビを見ていなければ、 IoT Foundationへイベントを送出を依頼 fog cloud
  • 41. Copyright © 2015 TIS Inc. All rights reserved.  テレビが自動で消える。  IoTデバイスクラスタがイベントを受信すると、赤外線LEDから 赤外線パルスが照射され、テレビが自動的に OFFになる。 テレビ自動OFF 41 Internet IoT Foundation Internet Gateway テレビ Local Network Wi-Fi Mesh Network Internet Gateway Network Consul Cluster 赤外線LED ① MQTTでsubscribeしている イベントの受信を検知 ② Consul Clusterへ イベントを発火 ③ watchしているイベントが 発生したことを検知 ④ 赤外線LEDから登録済みの 赤外線パルスを発信 fog cloud Intel Edison Intel Edison Raspberry Pi B+
  • 42. Copyright © 2015 TIS Inc. All rights reserved.  「テレビを見る」というヒトとモノの相互作用をfogでデータ化し、 cloudで分析して現実世界へフィードバックすることで、次のような 価値が生まれる。  テレビを見ていたつもりでもテレビに集中しておらず、無駄に費 やしてしまった時間に気づくことで、生活にメリハリがつく。  集中してテレビを見ていないならばテレビが消えてしまうため、 家庭での無駄な電力消費を削減できる。 Wasted energy of TVが生み出す価値 42Psssst!! I'm watching you... by ..::Fluckr You::.. on Flickr
  • 43. Copyright © 2015 TIS Inc. All rights reserved. 現在のWasted energy of TVの課題  セキュリティが全く考慮されていない!  GUIに認証認可を付けていないため、現時点では私の部屋の テレビを誰でも自動OFFにできます。。。(笑  fogとcloud間で送受信されるMQTTパケットも、ユーザ認証は しているものの平文なので盗聴・詐称し放題。。。  cloudでのデータ分析が甘い!  過去の同じ曜日の視聴データ、同じ日の視聴データ、などを分析 学習すれば、「テレビを点けたようですが、どうせあなた、今の 時間はテレビ見てないでしょ?」とcloudが言ってくれたり?  複数人での利用は考慮されていない!  似たような傾向の人がテレビを見ていれば、「あなたこの番組、 好きそうですよね」とcloudが点けてくれたり? 43
  • 44. Copyright © 2015 TIS Inc. All rights reserved. Agenda 1. IoT市場の急拡大 2. fog & cloud 3. Edison(とRaspberry Pi)を使ったIoTデバイスクラスタ ~Wasted energy of TV~ 4. Wasted energy of TVの fog に関する技術要素 5. まとめ 44
  • 45. Copyright © 2015 TIS Inc. All rights reserved.  Wi-Fiメッシュネットワーク  Consulクラスタ  MQTTプロトコル Wasted energy of TVの fog に関する技術要素 45 Internet IoT Foundation Wi-Fi Mesh Network Internet Gateway fog Consul Cluster cloud MQTT Protocol Intel Edison Intel Edison Intel Edison Raspberry Pi B+
  • 46. Copyright © 2015 TIS Inc. All rights reserved. Wasted energy of TVのプロトコルスタック  Wasted energy of TVは、以下のようなプロトコルスタックで動作 している。 46 Layer1: Physical Layer2: Data Link Layer3: Network Layer4: Transport Layer5: Session Layer6: Presentation Layer7: Application MAC LLC IEEE 802.2 IP(v4、v6)、ICMP RIP、OSPF等 IEEE 802.3 Ethernet IEEE 802.11 Wireless LAN (Infrastructure) TCP、UDP、SCTP等 HTTP、FTP、SMTP等 OSI参照モデル 有線LAN 無線LAN IEEE 802.2 IP(v4とv6) B.A.T.M.A.N.-adv IEEE 802.11 Wireless LAN (ad-hoc) TCP MQTT HTTP Gossip 一般的なプロトコルスタック 今回利用したプロトコルスタック クラウドとの通信 ConsulのREST API操作 ConsulのNode間通信 メッシュネットワーク用 ルーティングプロトコル の一種 Consulについては 15:15~17:00に H40でハンズオンが 行われます
  • 47. Copyright © 2015 TIS Inc. All rights reserved. メッシュネットワークとは 47 ノード間のデータや音声のルーティングの一種。故障などで使えなくなった経路が 発生しても継続的に接続・再構成を繰り返し、送信先に達するまでノードから ノードへ転送を行う。 メッシュネットワークの最大の特徴は、各ノードがトラフィックを転送する 「ホップ (hop)」という動作をする点で、それによって各ノードから任意の ノードへ接続する。 メッシュネットワークには自己修復性がある。1つのノードがダウンしたり、 1つの接続が不良となっても、ネットワーク全体は運用可能である。 結果として、非常に信頼性の高いネットワークとなる。 メッシュネットワーク(mesh network) 出展:ウィキペディア , https://ja.wikipedia.org/wiki/メッシュネットワーク Ad-hocなWi-Fi上でメッシュネットワークを動作させれば 各IoTデバイスがパケットをバケツリレーしてくれるため、 電波が直接届かないIoTデバイスとも通信が可能となる。
  • 48. Copyright © 2015 TIS Inc. All rights reserved. Wi-Fiメッシュネットワークのメリット  普通のWi-Fiチップが利用できる。  Edisonに内蔵されているWi-Fiだけで利用できる。  IPスタックが利用できる。  Zigbee等のセンサーネットワーク規格とは異なり、IPスタック用 に作られたミドルウェアやノウハウをそのまま利用できる。  Wi-Fiアクセスポイントの設置が必要ない。  電波が届く距離に別のIoTデバイスがあれば、バケツリレーです べてのIoTデバイスと連携することができる。  ネットワーク的な単一障害点が無いように実装できる。  メッシュネットワークとクラスタのヘルスチェック機構を連携さ せることで、ネットワーク的な単一障害点を無くすことができる。 48
  • 49. Copyright © 2015 TIS Inc. All rights reserved. Wi-Fiメッシュネットワークのデメリット  Edisonのデフォルトカーネルでは利用できない。  カーネルの再構築が必要な場合がある。  http://qiita.com/nmatsui/items/cb7020929654a128cf84 を参 照  IoTデバイスの電力を消費する。  IoTデバイスは通常、無線通信をしていないときは無線モジュー ルへの給電を停止するが、メッシュネットワークがパケットをバ ケツリレーしなければならないため、常時電力を消費してしまう。  障害時のメンテナンスが大変。  IoTデバイスクラスタ内でのパケット経路が静的に特定できない ので、何かあった場合に追跡するのが大変。  メッシュルーティングプロトコルは研究余地が多い。  通常のルーティングよりも帯域をうまく活用できない(らしい)。49
  • 50. Copyright © 2015 TIS Inc. All rights reserved. これからのIoTのプロトコルスタック  電力消費を極力押さえ、かつメッシュネットワークを実現する以下の ようなプロトコルが着目されている。 50 Layer1: Physical Layer2: Data Link Layer3: Network Layer4: Transport Layer5: Session Layer6: Presentation Layer7: Application MAC LLC OSI参照モデル IEEE 802.2 IP(v4とv6) B.A.T.M.A.N.-adv IEEE 802.11 Wireless LAN (ad-hoc) TCP MQTT HTTP Gossip 今回利用したプロトコルスタック 6LowPAN [2] RPL [3] IEEE 802.15.4 [1] WPAN TCP、UDP HTTP、CoAP等 低消費電力なプロトコルスタック [1] IEEE 802.15.4 : Zigbeeなどで利用されている近距離無線通信規格。伝送速度は速くないが消費電力が少ない [2] 6LowPAN(IPv6 over Low power Wireless Personal Area Networks):IETFが策定中のIPv6を用いる低消費電力の無線技術 [3] RPL(IPv6 Routing Protocol for Low power and Lossy Networks):IETFが策定中のIPv6上でマルチホップルーティングを実現する技術
  • 51. Copyright © 2015 TIS Inc. All rights reserved. Consulとは  Hashicorp社が提供するオーケストレーションツール  運用の自律化に有用な多数の機能を提供  ノードやサービスの死活管理  障害や環境構成の変化、外部から発火させたイベント等に応じた 処理の自動実行  分散KVSや分散DNSなど  単一障害点が無く、リーダーノードがダウンした場合は生存して いるノードが自動的に処理を引き継ぐ  Go言語で開発されており、OSを問わずどの環境でもバイナリを 一つ置くだけで実行可能なため、導入が簡単  2014年4月に提供開始 51
  • 52. Copyright © 2015 TIS Inc. All rights reserved. メッシュネットワークとConsulを併用するメリット  IoTデバイスへの導入が簡単  Go 1.4以上があれば、簡単に動作させることができる。 (Edisonであれば、x86 32bit用バイナリを置けば良いだけ)  IoTデバイスの障害時に、fogに自律的な対処を行わせることができる。  IoTデバイスに障害が起きた場合、生きている他のIoTデバイスが障 害を検知して、fogとして適切に動作するように自律的な対処を行 うことができる。  fog内での情報共有が簡単に行える。  Consul KVSを利用すれば、IoTデバイス間で簡単に情報共有できる。  fogへ到達するイベントに対するアクションを簡単に定義できる。  Consulのユーザーイベントを用いることで、適切なIoTデバイスが 自律的にイベントに対応することができる。 52
  • 53. Copyright © 2015 TIS Inc. All rights reserved. Consulを利用するライブラリ  プログラミング言語ごとにConsulを利用するライブラリが準備され ているので、簡単に利用できる。 53 import consul … class ConsulWrapper(object): FACEDETECT_KEY = "face_detected" POWERDETECT_KEY = "power_detected" LASTPOWERTIME_KEY = "last_power_time" POWER_EVENT = "power" def __init__(self): self.c = consul.Consul() self.errcount = 0 def kv_put(self, key, value): def _f(): return self.c.kv.put(key, str(value)) self.__retry(_f) def kv_get(self, key): def _f(): return self.c.kv.get(key) i, v = self.__retry(_f) return v def ev_fire(self, event): def _f(): return self.c.event.fire(event) self.__retry(_f) def __retry(self, f): # Consulに接続できなかった場合のリトライ処理 class WatchRatePublisher(object): … def __init__(self, bluemix): self.consul = cw.ConsulWrapper() def check_state(self): while True: face = self.consul.kv_get(cw.ConsulWrapper.FACEDETECT_KEY) power = self.consul.kv_get(cw.ConsulWrapper.POWERDETECT_KEY) class NotifySubscriber(object): … def __init__(self, bluemix): self.consul = cw.ConsulWrapper() def notify(self): def callback(msg): self.consul.ev_fire(cw.ConsulWrapper.POWER_EVENT) self.bluemix.notify(NotifySubscriber.TOPIC, callback) class FaceDetector(object): … def __init__(self, cascade_file_name): self.consul = cw.ConsulWrapper() def __notify_detect(self, num_of_faces): if num_of_faces == 0: self.consul.kv_put(cw.ConsulWrapper.FACEDETECT_KEY, False) else: self.consul.kv_put(cw.ConsulWrapper.FACEDETECT_KEY, True)
  • 54. Copyright © 2015 TIS Inc. All rights reserved. MQTTとは 54 A machine-to-machine (M2M)/"Internet of Things" connectivity protocol. It was designed as an extremely lightweight publish/subscribe messaging transport. It is useful for connections with remote locations where a small code footprint is required and/or network bandwidth is at a premium. MQTT 出展:MQTT.org, http://mqtt.org/ MQTT Broker MQTT Client publish(TOPIC) message MQTT Client subscribe(TOPIC) message delivery MQTT Client subscribe(TOPIC) message delivery
  • 55. Copyright © 2015 TIS Inc. All rights reserved. MQTTを利用するメリット  ブローカーを仲立ちにしたpublish/subscribe型の プロトコルのため、クライアント間を疎結合にできる。  ヘッダが小さく(固定長ヘッダは2バイト)プロトコル自体が軽いため、 小さなデータを大量に送る場合は効果が大きい。  クライアントが異常切断した場合、指定しておいた「Last Will & Testament(遺言状)」メッセージが送られる。  クライアントから送ったメッセージのQoSを定義できる。  QoS0 At most once:ベストエフォート。消失や重複の可能性あり。  QoS1 At least once:必ず到着するが、重複の可能性あり。  QoS2 Exactly once:必ず1回到着することを保証。  クライアントが異常切断していた間のQoS1,2のメッセージを再配信 してくれる。 55
  • 56. Copyright © 2015 TIS Inc. All rights reserved. MQTTを利用するライブラリ  プログラミング言語ごとにMQTTを利用するライブラリが準備されて いるので、簡単に利用できる。 56 import paho.mqtt.client as paho class BluemixWrapper(object): def __init__(self, conf): self.mqttc = paho.Client(client_name) self.mqttc.username_pw_set(USER, token) def notify(self, topic, func): def on_connect(client, userdata, flags, rc): client.subscribe(topic) def on_message(client, userdata, msg): func(str(msg.payload)) self.mqttc.on_connect = on_connect self.mqttc.on_message = on_message def publish(self, topic, msg): self.mqttc.publish(topic, msg) def connect(self): self.mqttc.connect(self.url, PORT, 60) self.mqttc.loop_start() class NotifySubscriber(object): TOPIC = "iot-2/cmd/notify/fmt/json" def __init__(self, bluemix): self.bluemix = bluemix def notify(self): def callback(msg): self.consul.ev_fire(cw.ConsulWrapper.POWER_EVENT) self.bluemix.notify(NotifySubscriber.TOPIC, callback) class WatchRatePublisher(object): TOPIC = "iot-2/evt/status/fmt/json" def __init__(self, bluemix): self.bluemix = bluemix def __publish(self, msg): self.bluemix.publish(WatchRatePublisher.TOPIC, msg) if __name__ == "__main__": try: bluemix = bw.BluemixWrapper(sys.argv[1]) NotifySubscriber(bluemix).notify() bluemix.connect() WatchRatePublisher(bluemix).check_state() except KeyboardInterrupt as err: print "watch_rate_publish end"
  • 57. Copyright © 2015 TIS Inc. All rights reserved. Agenda 1. IoT市場の急拡大 2. fog & cloud 3. Edison(とRaspberry Pi)を使ったIoTデバイスクラスタ ~Wasted energy of TV~ 4. Wasted energy of TVの fog に関する技術要素 5. まとめ 57
  • 58. Copyright © 2015 TIS Inc. All rights reserved. まとめ  なんだかよくわからないけれど、今後「IoT」は流行るらしい。  「IoT」は明確に定義された言葉ではないが、「ヒトとモノをつない で得られたデータを分析・学習し、現実世界にフィードバックするこ とで新たな価値を生むもの」と捉えると良い(と思う)。  「IoT」のアーキテクチャを考える際には、fogとcloudの協調動作を 意識すると良い(と思う)。  fogにとって、メッシュネットワークやConsulクラスタは相性が良い (電力消費まわりが解決できれば・・・)。  fogのセキュリティまわりは、まだ調査中。。。ご存知の方はいろい ろと教えてくだい。 58 「IoT」関連技術は、無線技術からデータ分析・学習まで 多岐にわたり、今まさに発展している最中である。 だからこそ熱く面白い。
  • 59. Copyright © 2015 TIS Inc. All rights reserved. ソースコードなど  Wasted energy of TVのソースコードはgithubで公開中。  https://github.com/nmatsui/wasted_energy_of_tv_iot  https://github.com/nmatsui/wasted_energy_of_tv_gui  https://github.com/nmatsui/wasted_energy_of_tv_nodered  動画  https://youtu.be/RDPD21L8voM  環境構築手順と操作手順  https://github.com/nmatsui/wasted_energy_of_tv_iot/wiki /docs/construction.pdf  https://github.com/nmatsui/wasted_energy_of_tv_iot/wiki /docs/operation.pdf 59