ははははは Web of Things 2015/07/04 HTML5 Conference in 鹿鹿鹿 鹿鹿鹿鹿 @NTT 鹿鹿鹿鹿鹿鹿鹿鹿鹿鹿
はじめてのWeb of Things
2015/07/04 HTML5 Conference in 鹿児島さっくる @NTT コミュニケーションズ
さっくる @sakkuru本名:本間 咲来 / Saki HOMMA
NTT コミュニケーションズ 技術開発部所属 Web を専門に新規サービス開発、コミュニティ活動、標準化活動などを担当 html5j スタッフ たまに gihyo や Codezine で記事を書いたり
2
自己紹介
Web of Things とは WoT サービスの仕組み WoT デモ 今後の WoT の展望
3
今日の内容
Web of Things とは
4
… の前に
5
“IoT”“Internet of Things”
の方がよく聞きますよね
6
7
10 倍以上!
圧倒的!
まずはInternet of Thingsについて
9
“ モノのインターネット” インターネットで”モノ”がつながること Wikipedia
The Internet of Things (IoT) is the interconnection of uniquely identifiable embedded computing devices within the existing Internet infrastructure.
IoT とは、既存のインターネット基盤内での、一意に識別可能な組み込みコンピューティングデバイスの相互接続である。 コンセプト自体は古く、 1980 年代初頭からあった 1990 年台末、 RFID の普及に伴って、認知されるようになった
10
Internet of Thingsとは
12
我々が日常的に使っているインフラ環境 IP = インターネット・プロトコル IP で通信しあう全世界的なネットワーク
インターネット
アプリケーション層トランスポート層
ネットワーク層リンク層
物理層
HTTP
TCP
IP
Ethernet
RJ45/CAT5
13
IP アドレスを持つもの センサー・モバイルフォン・家電・組み込み機器等
IP アドレスを持った機器に格納されたコンテンツ IP アドレスを持つモノから検知可能なモノ → RFID タグを付けた商品等
RFID : 電波(電磁波)を用いて、内蔵したメモリのデータを非接触で読み書きする情報媒体。 SUICA などの非接触 IC カードも広義の RFID 。
モノ
14
あらゆるモノ・データがインターネットにつながり、利用できる!という概念
15
スマートメータメーター内に通信機能を持たせた次世代電力量計
16
IoTの典型的なモデル
他のWebサーバーなど クラウド
無線 PAN
ゲートウェイ
Sensor,RFID 等
MQTT,CoAP 等
無線 PAN
ゲートウェイ
Sensor,RFID 等
BigData
Webサーバー
データの構造化意味付けグラフなど(HTML)
Web API(JSON, XML)
17
Personal Area Network 個人の周辺のコンピュータデバイス間の通信のために使われるコンピュータネットワーク。範囲はせいぜい 2~3m くらいを指す。
有線 PAN USB, FireWire 等
無線 PAN Wifi Bluetooth BLE(Bluetooth Low Energy) Zigbee(IEEE 802.15.4) etc.
PAN
18
RFID IPv6 ビッグデータ M2M ユビキタス スマートグリッド
IoTと一緒に語られる単語
改めてWeb of Things とは
19
“ モノの Web” Wikipedia
Similarly to what the Web (Application Layer) is to the Internet (Network Layer), the Web of Things provides an Application Layer that that is claimed to simplify the creation of Internet of Things applications
インターネット(ネットワーク層)にとってのWeb (アプリケーション)のように、 WoT は IoTアプリケーションの作成を簡単にするアプリケーションレイヤを提供する。
20
Web of Thingsとは
ブラウザ?
21
Web
22
モバイルを中心に、非ブラウザによる Web 利用が進展
Web = ブラウザで見るもの?
Web の主な構成要素と呼ばれるもの HTML, HTTP, URL, …
Web の必要条件は何だろうか HTML( で書かれていること )?
API 等、 HTML を使っていなくても Web と言えそう HTTP( で通信すること )?
WebSocket や WebRTC 、 HTTP 以外のプロトコルも出てきている URL( でアクセスできること )?
WebRTC ってピアに URL ないよね。。23
Webの必要条件
何があれば Web と言えるか?
24
25
Web のプロトコルでアクセスできること
26
としよう(今は)
27
ブラウザで API が提供されているプロトコル HTTP, WebSocket, WebRTC
そもそもこんな定義に行き着いたのは、 WebRTC なんて通信手段ができてしまったからとも言える WebRTC がなければ、「Web = URL でアクセスできる」、という定義にしてもよかった
Webプロトコル
28
では Web of Things とは
29
Web プロトコルで通信できるモノのつながり
30
Webプロトコルの進化1989
2009
2014
HTTP データの相互利用可能 :=>モノのデータ利用が可能に
WebSocket双方向通信が可能 :=>モノの操作が可能に
WebRTC 映像ストリーミングが可能 :=>モノとリアルタイム連携が可能に
31
Webプロトコルの進化とWoT
Web プロトコルが進化Web からモノを操作したり、映像ストリーミングなどリアルタイム連携が可能に
WoT という概念が生まれ、新たなユースケースが創造され、マーケットにイノベーションが引き起こされつつる
32
WoTの例
33
IoT の機器より比較的高機能・高性能が要求される システムのインタフェースと通信部分が Web 技術だけで実装可能 →開発が容易に →マッシュアップによりサービスが多様化
IoTと比較したWoT
HTTP
TCP
IP
Ethernet
RJ45/CAT5
Internet of Things インターネットプロトコルで通信できるモノのつながり
Web of Things Web プロトコルで通信できるモノのつながり Webページとモノが連携する
34
ここまでのまとめ
Internet of Things
Web of Things
35
Web of Things の仕組み
一般的な Web ハイパーリンクをたどっていくもの 検索すれば出てくるので、アドレス( URL )を覚える必要がない
モノの Web アドレスは固定とは限らない 検索しても出てこない → モノのアドレスを知る手段が必要!
36
一般的なWebとの違い
37
モノのアドレスを知る手段
?
SSDP, mDNS 等 ローカルネットワーク内にブロードキャストでメッセージを送り、応答を待つ ローカルネットワーク内、身近なモノの検出に使用できる 家電の DLNA プロトコルなどで使われている
38
手段 1: 検出プロトコルを使う
39
SSDP, mDNS
• SSDP• mDNS• etc.
Local Network
応答願うSSDP server
Discovery message
Discovery message
Discovery message
SSDP server
SSDP server
40
SSDP, mDNS
• SSDP• mDNS• etc.
Local Network
SSDP server
Response
Response
Response
SSDP server
SSDP server
私のアドレスは192.168.0.10 です
41
ブローカサーバを介して、相手(モノ)のアドレスを教えてもらう身近なモノ、遠隔地のモノ両方の検出に使用できる WebRTC は主にこの手段
手段 2: 仲介してもらう
42
ブローカサーバによる仲介
ブローカサーバ①登録私のアドレスは
192.168.0.10 です②問い合わせ
モノWeb アプリ
1. モノの検出 SSDP, mDNS 等の検出プロトコル ブローカサーバによる中継2. モノ固有の方法( API 等)で通信
43
WoTサービスのフロー
44
デモ
デモ 1: カメラ連携
45
検出 :SSDP 通信 : Camera Remote API / HTTP
46
WoTデモ: Camera
SSDP サーバWeb サーバ
SSDP クライアントSSDP
Camera Remote API
HTTP
API を呼ぶコード
①検出
②通信
デモ 2: 遠隔ロボット連携
47
48
WoTデモ:遠隔ロボット
ブローカサーバ
WebRTC
①登録②問い合わせ
検出 :ブローカサーバ 通信 : オリジナル / WebRTC
③直接通信
デモ 3: 電飾 (hue)
49
50
WoTデモ:電飾デバイス (hue)
ブローカサーバZigBee Light Linkセンサーネットワーク用の無線プロトコル
Philips hue API
HTTP
ブリッジ
②ブリッジの検出
①ブリッジを登録
hue
hue
hue
検出 :SSDP/ ブローカサーバ (両方実装 ) 通信 : Philips hue API / HTTP
③通信
機器検出の仕組みが必要 SSDP, mDNS 等のプロトコルを使う
→ Web プロトコルじゃない! Web APIだけで実現できない!!! ブローカサーバを使う → サーバの用意が必要
機器固有のコード、設備が必要となり、適用範囲に広がりが生まれない51
WoTアプリを作るには ?
じゃあどうすればよいか
52
標準化
53
Web に関する様々な仕様を検討しているコンソーシアム HTML CSS API Security Model ete.
W3C スタッフとメンバー企業から構成される テーマ毎にグループに別れ議論を行う
54
W3C(World Wide Web Consortium)
Working Group(WG): 仕様を固める Interest Group(IG): 仕様のユースケース
の収集等、初期検討を行う Community Group(CG): 仕様のユース
ケースの収集等、初期検討を行う。 Interest Group より立ち上げるハードルが低い。
Business Group(BG): テクニカルではなく、ビジネスサイドから仕様を検討する
55
W3Cのグループ
56
HTML WG SVG WG Web Application WG Web Performance WG Digital Publishing IG Semantic Web IG Web Payments IG
45 個の WG, 15 個の IG 、 200 を超える CG がある(2015 年 7月 2 日現在 )
W3Cのグループ (一例 )
Web とデバイス、特にテレビを連携したい、というニーズは 2010 年頃からあった
Web and TV IG が 2010 年に設立 TV のディスカバリや DRM 等に関しての議論が開始
WebIntents, Network Service Discovery API などが検討されていた
→ プライバシー等の問題でお蔵入り57
Web とデバイス
Web of Things IG 2015/1/20 チャーターが制定 2015/5/20-22 最初の F2F会議開催
Second Screen Presentation CG 2013/11: CG が誕生。 Presentation API の検討を開始
Second Screen Presentation WG 2014/11: Presentation API の仕様を固めるため、 CGから独立し WG に
58
現在のW3CにおけるWoT
59
今最も具体的にWoTに関わるAPIを策定しているのが
Second Screen Presentation WGのPresentation API
Webページ ( ファーストスクリーン ) からセカンドスクリーンに Webページを表示させたり、操作を可能にする API セカンドスクリーン:テレビや、プロジェクタ
等のスクリーン系のデバイス
60
Presentation API
wired (HDMI, DVI, …)
wireless (DLNA, AirPlay, MiraCast, Chromecast, …)
http://w3c.github.io/presentation-api/ Second Screen Presentation CG で初期
検討が行われ、現在は Second Screen Presentation WG で仕様策定中
Working Draft の段階 (2015/07/04時点 ) Working Draft: 仕様策定者の間で常に更新され
ている最新の仕様。 まだどのブラウザにも未実装
61
Presentation API
はじめに UA はデバイスの検出を行う スクリーン間の接続方法は規定されていない
有線の場合:単一の UA 上の操作 無線の場合:デバイス検出後、セカンドスクリーン上で別の
UA を操作する
62
Presentation APIの動作概要
Device Display device
Discovery
User Agent
63
ファーストスクリーンとセカンドスクリーン上のWebページ間でメッセージをやりとりする
Presentation APIの動作概要
Device Display device
Web Appspecified by URL
Web App
Communication
64
NSD APIとの比較
抜粋 : startSession(“Wot Devices”) by Tatsuya Igarashi (Sony Corporation)
プレゼンテーション ゲーム ビデオ・画像共有複数スクリーンへのメディア表示
65
Presentation APIのユースケース
あれこれって・・・
66
67
AirPlay?
AirPlay などのベンダーロックされた機能を、標準化してしまおう、というもの現実世界のモノとの相互接続を行うため、 IoT, WoT はプライバシーの問題の課題が大きい →過去に検討されたデバイス操作 API は、そのためスタックしている Presentaion API はその課題に対処している
68
Presentation API
機器の検出機能がブラウザで実装されるということ
69
Presentation APIが実装されると…
Device
Discovery
User Agent
70
それを Presentation 機能だけにしておくのはもったいない
スクリーン以外のデバイスでも使いたい!
71
Presentation API の仕様を大きく変えずに、non-screen デバイスにも適応できるのでは?
もし non-screen にも対象を拡張すると…
72
拡張提案
73
拡張した Presentation API
さまざまなデバイスが検出&操作できるように!
Web browser
74
2014 年 11月の W3C の会議にてPresentation API の拡張の提案
W3C会議での提案
75
デモで使用したシステムnavigator.presentation .startSession('urn:schemas-sony-com:service:ScalarWebAPI:1') .then(function(session) {…});
session.onmessage = function(mesg) {showLiveView(mesg);
}session.postMessage("getLiveView");
SSDP, Camera Remote API
Camera
urn
device-specific method
76
An introduction to the Presentation API by François Daoust, W3C
非スクリーンデバイスへの拡張
Second Screen Presentation WG の議長の2015 年 5月 19 日の資料
77
Web browser
こうなるかも
WoT は、 Web とモノが連携すること Web から実世界のモノを動かせる現在のところ、 WoT をやるには、
SSDP 等のクライアント ブローカサーバ
のどちらかが必要 WoT に関わる API は W3C で検討中
将来的に Web とモノとの連携が Web APIだけでできるようになる!78
まとめ
79
ご静聴ありがとうございました