SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
Sensible を
試してみた
FxOS コードリーディングミートアップ #16
2015-04-11
自己紹介
ひらとり
● @flatbirdH
● FxOSコードリーディング
● html5j Webプラットフォーム
部
Sensibleって?
• WoTのリファレンス実装
• JavaScriptで書かれている
• 作ったのはMonohm
http://sensible.mono.hm/
Sensibleとは
Monohm?
Runcibleを作ってる所
SensibleのWoTって
どんなもの?
ホームLAN
• WiFi, Ethernet
• TCP/IP
https://www.iconfinder.com/iconsets/technology-and-hardware-2
提供する機能
1. ディスカバリー
2. REST API (データのやりとり)
3. UI (人間とのやりとり)
ディスカバリー
mDNS
‣Multicast DNS
‣a.k.a. Bonjour
DNSリクエストを
マルチキャストで同報
224.0.0.251:5353
[PTR] _sensible.tcp.local
サービス名、アドレス、ポー
ト番号が取れる
Printer._sensible.tcp.local
192.168.1.20:3010
A, TXT, SVR
REST API(データのやりとり)
$ curl --silent 192.168.1.101:3000/properties/get | jq .
[
{
"value": 76,
"minimum": 40,
"maximum": 100,
"readonly": false,
"type": "integer",
"name": "temperature"
}
]
UI
(人間とのやりとり)
HTML = 通常のWebアプリ
超単純!
現在のサンプル実装
● Firefox OS
● Chrome Apps
● Node.js
mDNS ➡ JavaScriptでUDPが必要
UDPをしゃべらないモノ(ブラウザ等)は
mDNSをしゃべるプロキシ経由で参加
アプリの作り方
(Firefox OS)
manifest.webapp
"type": "certified",
"permissions": {
"tcp-socket": {},
"udp-socket": {},
"wifi-manage": {}
}
sensible-config.js の用意
{
"name": "Sensible-Flashlight",
"type": "_sensible._tcp.local",
"port": 3000,
"description": "Firefox OS flashlight",
"hostname": "flashlight.local"
}
sensible-properties.js の用意
[
{
"name": "flashModes",
"type": "list",
"priority": 0,
"readonly": true,
"value": []
}
]
sensible.js の取り込み
(index.html)
<script src="sensible.js" defer></script>
<script src="app.js" defer></script>
アプリの実装 (JavaScript)
// fxos.Application.prototype にハンドラをセット
var appProto = sensible.fxos.Application.prototype;
appProto.onBeforeStart = onBeforeStart;
appProto.onAfterStart = onAfterStart;
appProto.flash_set = setFlash; // /flash/set?mode=off
// createApplication でアプリの作成
sensible.ApplicationFactory.createApplication(
function (error) {
...
}
);
プロパティの変更
// /properties/get で取得
gSensibleApplication.setProperty(
'flashModes', flashModes
);
REST API ハンドラ
// /flash/set?mode=torch|off
function setFlash(request, callback) {
var mode = request.parameters.mode;
camera.flashMode = mode;
var response = {
type: 'json',
object: {}
};
callback(response);
}
UI の追加
fxos-sensible-app
│ app.js
│ index.html
│ manifest.webapp
│ sensible-config.json
│ sensible-properties.json
│ sensible.js
│
├─icons
│ icon128x128.png
│
└─web
index.html
ルート直下に「web」ディレクトリ
(名前は「web」で固定)
超単純!
Demo
ソースの構成
メインのクラス
sensible.Application
sensible.ApplicationFactory
Sensible アプリのフレームワークを構成
mDNS
sensible.MDNS
sensible.DNSPacket
sensible.DNSPacket.parse
sensible.DNSPacketParser
sensible.DNSPacketSerialiser
sensible.Strategy
sensible.StrategyFactory
UDP 処理はプラットフォーム毎の Storategy クラスで実
装
Web サーバー
sensible.WebServer
sensible.RESTDispatcher
Web サーバーのための単純なヘルパー。
実際の実装は各プラットフォームの Server クラス。
プラットフォームごとの実装
# node
sensible.node.Application
sensible.node.Strategy
sensible.node.Server
sensible.node.WebServer
# fxos
sensible.fxos.Application
sensible.fxos.Strategy
sensible.fxos.Server
sensible.fxos.WebServer
sensible.fxos.SocketPump
# chrome
sensible.chrome.Application
sensible.chrome.Strategy
sensible.chrome.Server
sensible.chrome.WebServer
Thank you!
● Sensible
http://sensible.mono.hm/
● Sensible虎の巻
https://github.com/mozilla-japan/hacking-
runcible/wiki/Sensible-%E8%99%8E%E3%81%AE%
E5%B7%BB

Mais conteúdo relacionado

Mais procurados

32bit UEFIマシンで遊ぶ
32bit UEFIマシンで遊ぶ32bit UEFIマシンで遊ぶ
32bit UEFIマシンで遊ぶshimadah
 
謎PCとの付き合い方(LILO東海道 2015/5発表分)
謎PCとの付き合い方(LILO東海道 2015/5発表分)謎PCとの付き合い方(LILO東海道 2015/5発表分)
謎PCとの付き合い方(LILO東海道 2015/5発表分)shimadah
 
ソラコム Developers conference #0 LT / SIMの開封からSMS受信まで、5分でやりきる!
ソラコム Developers conference #0 LT / SIMの開封からSMS受信まで、5分でやりきる!ソラコム Developers conference #0 LT / SIMの開封からSMS受信まで、5分でやりきる!
ソラコム Developers conference #0 LT / SIMの開封からSMS受信まで、5分でやりきる!Kohei MATSUSHITA
 
GnukトークンでSSH
GnukトークンでSSHGnukトークンでSSH
GnukトークンでSSHYuji IMAI
 
Rosserial無線化への招待 〜Invitation to wirelessization by rosserial〜
Rosserial無線化への招待 〜Invitation to wirelessization by rosserial〜Rosserial無線化への招待 〜Invitation to wirelessization by rosserial〜
Rosserial無線化への招待 〜Invitation to wirelessization by rosserial〜Tatsuya Fukuta
 
レベルを上げて物理で殴る 16x9
レベルを上げて物理で殴る 16x9レベルを上げて物理で殴る 16x9
レベルを上げて物理で殴る 16x9Knit Tiger
 
魁ここんとーく in おおさか
魁ここんとーく in おおさか魁ここんとーく in おおさか
魁ここんとーく in おおさかshimadah
 
TUI作業で便利なソフト2題
TUI作業で便利なソフト2題TUI作業で便利なソフト2題
TUI作業で便利なソフト2題shimadah
 
#qpstudy 2015.11 20分でわかるPKI
#qpstudy 2015.11 20分でわかるPKI#qpstudy 2015.11 20分でわかるPKI
#qpstudy 2015.11 20分でわかるPKIMasahiro NAKAYAMA
 
自宅ラック勉強会7.0 逸般人の普通の自宅it環境
自宅ラック勉強会7.0 逸般人の普通の自宅it環境自宅ラック勉強会7.0 逸般人の普通の自宅it環境
自宅ラック勉強会7.0 逸般人の普通の自宅it環境mokudai masayuki
 
Wio LTE(Seeed社)が簡単だということでやってみたけれどもいろいろありました
Wio LTE(Seeed社)が簡単だということでやってみたけれどもいろいろありましたWio LTE(Seeed社)が簡単だということでやってみたけれどもいろいろありました
Wio LTE(Seeed社)が簡単だということでやってみたけれどもいろいろありましたTakeshi Murakami
 

Mais procurados (11)

32bit UEFIマシンで遊ぶ
32bit UEFIマシンで遊ぶ32bit UEFIマシンで遊ぶ
32bit UEFIマシンで遊ぶ
 
謎PCとの付き合い方(LILO東海道 2015/5発表分)
謎PCとの付き合い方(LILO東海道 2015/5発表分)謎PCとの付き合い方(LILO東海道 2015/5発表分)
謎PCとの付き合い方(LILO東海道 2015/5発表分)
 
ソラコム Developers conference #0 LT / SIMの開封からSMS受信まで、5分でやりきる!
ソラコム Developers conference #0 LT / SIMの開封からSMS受信まで、5分でやりきる!ソラコム Developers conference #0 LT / SIMの開封からSMS受信まで、5分でやりきる!
ソラコム Developers conference #0 LT / SIMの開封からSMS受信まで、5分でやりきる!
 
GnukトークンでSSH
GnukトークンでSSHGnukトークンでSSH
GnukトークンでSSH
 
Rosserial無線化への招待 〜Invitation to wirelessization by rosserial〜
Rosserial無線化への招待 〜Invitation to wirelessization by rosserial〜Rosserial無線化への招待 〜Invitation to wirelessization by rosserial〜
Rosserial無線化への招待 〜Invitation to wirelessization by rosserial〜
 
レベルを上げて物理で殴る 16x9
レベルを上げて物理で殴る 16x9レベルを上げて物理で殴る 16x9
レベルを上げて物理で殴る 16x9
 
魁ここんとーく in おおさか
魁ここんとーく in おおさか魁ここんとーく in おおさか
魁ここんとーく in おおさか
 
TUI作業で便利なソフト2題
TUI作業で便利なソフト2題TUI作業で便利なソフト2題
TUI作業で便利なソフト2題
 
#qpstudy 2015.11 20分でわかるPKI
#qpstudy 2015.11 20分でわかるPKI#qpstudy 2015.11 20分でわかるPKI
#qpstudy 2015.11 20分でわかるPKI
 
自宅ラック勉強会7.0 逸般人の普通の自宅it環境
自宅ラック勉強会7.0 逸般人の普通の自宅it環境自宅ラック勉強会7.0 逸般人の普通の自宅it環境
自宅ラック勉強会7.0 逸般人の普通の自宅it環境
 
Wio LTE(Seeed社)が簡単だということでやってみたけれどもいろいろありました
Wio LTE(Seeed社)が簡単だということでやってみたけれどもいろいろありましたWio LTE(Seeed社)が簡単だということでやってみたけれどもいろいろありました
Wio LTE(Seeed社)が簡単だということでやってみたけれどもいろいろありました
 

Destaque

Programa de estudios quimica ii
Programa de estudios quimica iiPrograma de estudios quimica ii
Programa de estudios quimica iiAyleen_barcenas
 
Тарас Данько (2015) Перспективи інтеграції України до глобальної економіки знань
Тарас Данько (2015) Перспективи інтеграції України до глобальної економіки знаньТарас Данько (2015) Перспективи інтеграції України до глобальної економіки знань
Тарас Данько (2015) Перспективи інтеграції України до глобальної економіки знаньTaras Danko
 
Images for brahmane brahma ( acquired from google.com )
Images for brahmane brahma ( acquired from google.com )Images for brahmane brahma ( acquired from google.com )
Images for brahmane brahma ( acquired from google.com )Som-Deepak Kumar-Sawant
 
Lissette salinas ,,, jennifer lucero... decimo a
Lissette salinas ,,, jennifer lucero... decimo aLissette salinas ,,, jennifer lucero... decimo a
Lissette salinas ,,, jennifer lucero... decimo aLissetteSalinas17
 
Administracion de Centro de Computo
Administracion de Centro de ComputoAdministracion de Centro de Computo
Administracion de Centro de ComputoTegito Avila
 
Sistema de Indicadores para Acompanhamento da Agenda de Direitos Humanos
Sistema de Indicadores para Acompanhamento da Agenda de Direitos HumanosSistema de Indicadores para Acompanhamento da Agenda de Direitos Humanos
Sistema de Indicadores para Acompanhamento da Agenda de Direitos HumanosAlessandra Rezende
 

Destaque (17)

Programa de estudios quimica ii
Programa de estudios quimica iiPrograma de estudios quimica ii
Programa de estudios quimica ii
 
Getting Started with SEO & SEM - Primetime Las Vegas
Getting Started with SEO & SEM - Primetime Las VegasGetting Started with SEO & SEM - Primetime Las Vegas
Getting Started with SEO & SEM - Primetime Las Vegas
 
4
44
4
 
Curriculum
CurriculumCurriculum
Curriculum
 
AWT Pic
AWT PicAWT Pic
AWT Pic
 
The River Vasind
The River VasindThe River Vasind
The River Vasind
 
Mtk
MtkMtk
Mtk
 
Тарас Данько (2015) Перспективи інтеграції України до глобальної економіки знань
Тарас Данько (2015) Перспективи інтеграції України до глобальної економіки знаньТарас Данько (2015) Перспективи інтеграції України до глобальної економіки знань
Тарас Данько (2015) Перспективи інтеграції України до глобальної економіки знань
 
AS9100 LATP
AS9100 LATPAS9100 LATP
AS9100 LATP
 
Texas nascar live
Texas nascar  liveTexas nascar  live
Texas nascar live
 
Dom oneres(1)
Dom oneres(1)Dom oneres(1)
Dom oneres(1)
 
La actividad económica 1
La actividad económica 1La actividad económica 1
La actividad económica 1
 
Images for brahmane brahma ( acquired from google.com )
Images for brahmane brahma ( acquired from google.com )Images for brahmane brahma ( acquired from google.com )
Images for brahmane brahma ( acquired from google.com )
 
Lissette salinas ,,, jennifer lucero... decimo a
Lissette salinas ,,, jennifer lucero... decimo aLissette salinas ,,, jennifer lucero... decimo a
Lissette salinas ,,, jennifer lucero... decimo a
 
Administracion de Centro de Computo
Administracion de Centro de ComputoAdministracion de Centro de Computo
Administracion de Centro de Computo
 
watch nascar
watch nascar watch nascar
watch nascar
 
Sistema de Indicadores para Acompanhamento da Agenda de Direitos Humanos
Sistema de Indicadores para Acompanhamento da Agenda de Direitos HumanosSistema de Indicadores para Acompanhamento da Agenda de Direitos Humanos
Sistema de Indicadores para Acompanhamento da Agenda de Direitos Humanos
 

Semelhante a Sensibleを試してみた@FxOSコードリーディングミートアップ#16

はじめてのWeb of Things
はじめてのWeb of ThingsはじめてのWeb of Things
はじめてのWeb of ThingsSaki Homma
 
Firefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own PathFirefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own Pathdynamis
 
Lesson01
Lesson01Lesson01
Lesson01MRI
 
はじめてのWeb of Things
はじめてのWeb of ThingsはじめてのWeb of Things
はじめてのWeb of ThingsSaki Homma
 
Domino v12の新機能 - 多要素認証対応 (TOTP) -
Domino v12の新機能 - 多要素認証対応 (TOTP) -Domino v12の新機能 - 多要素認証対応 (TOTP) -
Domino v12の新機能 - 多要素認証対応 (TOTP) -Haruyuki Nakano
 
websocket-survery
websocket-surverywebsocket-survery
websocket-surveryhogemaru_
 
WebSocket + Node.jsでつくるチャットアプリ
WebSocket + Node.jsでつくるチャットアプリWebSocket + Node.jsでつくるチャットアプリ
WebSocket + Node.jsでつくるチャットアプリKohei Kadowaki
 
Aiming のクラウド採用基準
Aiming のクラウド採用基準Aiming のクラウド採用基準
Aiming のクラウド採用基準Takahiro Hozumi
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力ThinReports
 
NAO/Pepper 開発環境 について
NAO/Pepper 開発環境 についてNAO/Pepper 開発環境 について
NAO/Pepper 開発環境 についてTakuji Kawata
 
ふくおかクラウドアライアンス5周年記念セミナー | SORACOMが実現する簡単でセキュアなIoTシステム
ふくおかクラウドアライアンス5周年記念セミナー | SORACOMが実現する簡単でセキュアなIoTシステムふくおかクラウドアライアンス5周年記念セミナー | SORACOMが実現する簡単でセキュアなIoTシステム
ふくおかクラウドアライアンス5周年記念セミナー | SORACOMが実現する簡単でセキュアなIoTシステムSORACOM,INC
 
WebRTC SFU mediasoup sample
WebRTC SFU mediasoup sampleWebRTC SFU mediasoup sample
WebRTC SFU mediasoup samplemganeko
 
ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜
ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜
ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜Kensaku Komatsu
 
Magic Leap で WebRTC 触ってみた
Magic Leap で WebRTC 触ってみたMagic Leap で WebRTC 触ってみた
Magic Leap で WebRTC 触ってみたNishoMatsusita
 
クラウドサービスを使って作る動画サイト?
クラウドサービスを使って作る動画サイト?クラウドサービスを使って作る動画サイト?
クラウドサービスを使って作る動画サイト?Daichi Isami
 
ソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティングソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティングRyohei Kamiya
 

Semelhante a Sensibleを試してみた@FxOSコードリーディングミートアップ#16 (20)

はじめてのWeb of Things
はじめてのWeb of ThingsはじめてのWeb of Things
はじめてのWeb of Things
 
Firefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own PathFirefox OS - Blaze Your Own Path
Firefox OS - Blaze Your Own Path
 
10th jan 2013_miyazaki
10th jan 2013_miyazaki10th jan 2013_miyazaki
10th jan 2013_miyazaki
 
Lesson01
Lesson01Lesson01
Lesson01
 
はじめてのWeb of Things
はじめてのWeb of ThingsはじめてのWeb of Things
はじめてのWeb of Things
 
Domino v12の新機能 - 多要素認証対応 (TOTP) -
Domino v12の新機能 - 多要素認証対応 (TOTP) -Domino v12の新機能 - 多要素認証対応 (TOTP) -
Domino v12の新機能 - 多要素認証対応 (TOTP) -
 
websocket-survery
websocket-surverywebsocket-survery
websocket-survery
 
WebSocket + Node.jsでつくるチャットアプリ
WebSocket + Node.jsでつくるチャットアプリWebSocket + Node.jsでつくるチャットアプリ
WebSocket + Node.jsでつくるチャットアプリ
 
Aiming のクラウド採用基準
Aiming のクラウド採用基準Aiming のクラウド採用基準
Aiming のクラウド採用基準
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
 
[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005
 
AndroidでWebSocket
AndroidでWebSocketAndroidでWebSocket
AndroidでWebSocket
 
NAO/Pepper 開発環境 について
NAO/Pepper 開発環境 についてNAO/Pepper 開発環境 について
NAO/Pepper 開発環境 について
 
ふくおかクラウドアライアンス5周年記念セミナー | SORACOMが実現する簡単でセキュアなIoTシステム
ふくおかクラウドアライアンス5周年記念セミナー | SORACOMが実現する簡単でセキュアなIoTシステムふくおかクラウドアライアンス5周年記念セミナー | SORACOMが実現する簡単でセキュアなIoTシステム
ふくおかクラウドアライアンス5周年記念セミナー | SORACOMが実現する簡単でセキュアなIoTシステム
 
WebRTC SFU mediasoup sample
WebRTC SFU mediasoup sampleWebRTC SFU mediasoup sample
WebRTC SFU mediasoup sample
 
ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜
ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜
ブラウザからWeb OSへ〜Web - TV連携事例からその可能性を探る〜
 
Magic Leap で WebRTC 触ってみた
Magic Leap で WebRTC 触ってみたMagic Leap で WebRTC 触ってみた
Magic Leap で WebRTC 触ってみた
 
クラウドサービスを使って作る動画サイト?
クラウドサービスを使って作る動画サイト?クラウドサービスを使って作る動画サイト?
クラウドサービスを使って作る動画サイト?
 
ソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティングソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティング
 
8th jan 2013_wotconf
8th jan 2013_wotconf8th jan 2013_wotconf
8th jan 2013_wotconf
 

Sensibleを試してみた@FxOSコードリーディングミートアップ#16