SlideShare a Scribd company logo
1 of 33
Download to read offline
FFiirreeffooxx  OOSSとWWeebbサーバ  
TToommooaakkii  KKoonnnnoo  
  
22001155//22//2200  @@  FFiirreeffooxx  OOSS  勉強会  88tthh
自己紹介  
•  今野 智明(TToommooaakkii  KKoonnnnoo)  
•  KKDDDDII研究所  
•  WWeebb関連の開発  
2
AAggeennddaa::  
• モバイルWWeebbサーバ  
• WWeebb--ccaasstt  
• WWeebbサーバとの歩み  
3
モバイルWWeebbサーバ:  
4
FFiirreeffooxx  OOSSのコンセプト  
5	
参考:http://au-fx.kddi.com/products/
•  ""TThhee  WWeebb  iiss  tthhee  ppllaattffoorrmm..""  
–  デバイス固有機能    
•  ee..gg..  加速度  
–  ネットワーク機能  
•  クライアント側は当然ある。  
•  サーバは…�?
サーバ機能も端末に  
6	
Web  Server
Web  Browser
Web  Server
Web  Browser
•  コンテンツ共有  
–  相手に送って終わり  
–  ee..gg..  写真、ビデオ  
–  ccff..  AAnnddrrooiidd  BBeeaamm  
  
•  体験共有  
–  相手とのインタラクション  
–  ee..gg..  ゲーム  
–  ccff..  NNiinntteennddoo  DDSS  
  
WWeebbサーバでできること  
7	
Webサーバ ブラウザ
ブラウザWebサーバ
DDEEMMOO::  じゃんけんゲーム  
8	
参考:  http://interest-speaker.com/vector-data-of-gu-choki-pa-the-jan-ken-game/
WWeebbサーバアプリの実現  
•  FFxxOOSSアプリとしてWWeebbサーバを書く  
  
  
  
  
  
9	
Server  
App
Gaia
Gecko
Client
  App
スクラッチから書くのは大変
オープンソース:hhttttppdd..jjss  
10	
•  ダウンロード ((kkddddii  ++  hhttttppddなどで検索)  
–  hhttttpp::////ooppeennssoouurrccee..kkddddii..ccoomm//ffxx00//hhttttppdd..hhttmmll  
  
•  関連情報  
–  hhttttpp::////sshhoowwccaassee..kkddddii..ccoomm//ccsscc//wwoorrkkss//vviieeww//2255  
Server  App
Gaia
Gecko
httpd.js
hhttttppdd..jjssの使い方紹介  
11	
1)   アプリ領域の公開
2)   SDカード領域の公開
3)   リクエストハンドラ
((11))  アプリ領域の公開  
12	
server  =  new  HttpServer();
/*  アプリ領域のディレクトリを公開  */
server.get("/",  appRoot);              //  e.g.  ./public
server.start(port);  //  e.g.  3000
btn.addEventListener("click",  function(){
    server.stop(onStop);  //終了処理(ポート開放)
});
//ブラウザで、サーバ側の"./public"配下の"  index.htmlへアクセス
GET  http://192.168.*.*:3000/index.html
★Server側
★Client側(ブラウザ)
13	
/*  SDカード領域のディレクトリ公開  */
server.get("/sd/",  sdRoot);        //  e.g.  /sdcard/public
var  xhr  =  new  XMLHttpRequest();
var  url  =  "/sd/sample.txt";  //サーバ側の"/sdcard/public"配下の  sample.txtへアクセス
xhr.open('GET',url);
xhr.onload  =  function(){
    if  (xhr.readyState  ===  4  &&  xhr.status  ===  200)  {
        //  hoge
    }  
}
xhr.send(null);
((22))  SSDDカード領域の公開  
★Server側
★Client側(JS,  GET)
14	
/*  リクエストハンドラの設定  */
server.get("/xhr",  function(req,  res,  onComplete){
          var  bodyStr  =  String.fromCharCode.apply(null,  new  Uint8Array(req.bodyBuffer));
          var  ret  =  parseFloat(bodyStr)  <  0.3  ?  'hit!'  :  'fail.';
          res.write(ret);
          onComplete();
});
var  url  =  ‘/post’;    
xhr.open('POST',url);
xhr.onload  =  function(){
    //hoge
}
xhr.send("0.1");
★Server側
★Client側(JS,  POST)
((33))  リクエストハンドラ
事前設定  
•  JJSSライブラリの読み込み  
•  MMaanniiffeessttの設定  
15	
  <script  type="text/javascript"  src="js/httpd.js"></script>
"type":  "privileged",
…
"permissions":  {
    "tcp-socket":{"description":  "For  Jan-Ken  Game"},
    "device-storage:sdcard":{"access":  "readwrite"}
}
必須
privilegedまたはcertified
SD領域を利用するなら
モバイルWWeebbサーバのまとめ  
•  端末サーバによる共有  
•  WWeebbサーバアプリをJJSSで書ける  
•  アプリ向�けのOOSSSS    hhttttppdd..jjss  
16
WWeebb--ccaasstt:  
17
WWeebb--ccaassttがつくる体験  
11)) 直感的に  
22)) 手間なく  
33)) 近くの相手と共有  
18	
参考:http://au-fx.kddi.com/products/
DDEEMMOO  VVIIDDEEOO::  動画の共有  
19
WWeebb--ccaasstt  ç  サーバ  ++  いろいろ  
•  直感的にするためには…�  
–  タッチ??  NNFFCC??  
•  手間なくするためには…�  
–  ペアリング??  WWii--FFii??  
20
通信機能を持つアプリ  
21	
典型的なデザイン Web-castのデザイン
Webserver
NW
NFC
WWii--FFii  NNWW構築をサポート  
((端末AAPP//外部AAPP))  
UURRLLやNNWW情報の交換を
サポート  
サービス
NW
相手探し
サービス部分を集中的に  
Req.
参考:http://au-fx.kddi.com/products/index.html
WWeebb--ccaassttのしくみ  
22	
Device
Peer
System  App
Web-cast  
Manager
Network  Manager
App
Web  Server  
Module
NFC  Manager
Control
NDEF  exchange
Establish  Network
content  URL
over  IAC
over  NFC-P2P
SD  card
Resource
HTTP
ただし、IACは、現状Certifiedのみ利用可能
WWeebb--ccaassttのまとめ  
•  直感的に手間なく共有  
•  共有アプリを簡単に作るための仕組み  
•  現状は、FFxx00でのみ利用可能  
23
WWeebbサーバとの歩み:  
24
33年くらい前  
•  世の中  
–  HHTTMMLL55がバズワード  
–  BB22GGも正式発表  
•  自身  
–  ようやくWWeebbを始める  
25
デバイス間コミュニケーション  
•  クラウドサーバ経由では可能  
–  目の前の相手と、わざわざ電話で話している感じ  
•  もっと直感的にやりとりしたい  
–  端末にサーバがあればできる?  
26
トライ&&エラー  
27	
Gonk
Gecko httpd
Gonk
Gecko
httpd.js
Gonk
Gecko
アプリ
アプリ
ライブラリ
TCP  Socket  
API
・Webで書けない
・セキュリティモデル
・アプリから利用できない ・TCPのListenのAPIがない
・httpdライブラリもない
11))  とにかく端末サーバ   22))  GGeecckkooの枠組みで   33))  アプリでサーバ
モチベーション  
•  TTCCPP  SSoocckkeettのCClliieennttのAAPPIIは存在  
  
•  MMLLでSSeerrvveerr側を望む声  
•  CClliieenntt側の開発者は手一杯  
  
28	
""自分たちで作ってみるか!!""
コミュニティ活動開始  
•  担当者っぽい人にメール  
⇒BBuuggに即AAssssiiggnn  
  
29	
Bugzillaでのサポートを受けつつ
参考:https://bugzilla.mozilla.org/show_bug.cgi?id=797561
30	
米Mozillaさんに行ってみたり、
31	
参考:https://developer.mozilla.org/en-US/docs/Web/API/TCPSocket.listen
なんとかv1.2の時点で盛込み
WWeebb--ccaassttのキセキ  
32	
参考:http://showcase.kddi.com/csc/works/view/25
まとめ  
•  モバイルWWeebbサーバ  
–  アプリでWWeebbサーバ  ((hhttttppdd..jjss))  
•  WWeebb--ccaasstt  
–  直感的に手間なく共有  
•  WWeebbサーバとの歩み  
–  WWeebb--ccaassttに至るまでのヨモヤマ話  
33

More Related Content

What's hot

Presentation on your terminal
Presentation on your terminalPresentation on your terminal
Presentation on your terminalTakuya ASADA
 
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発Yuta Matsumura
 
ノンプログラマのためのウェブサーバ入門
ノンプログラマのためのウェブサーバ入門	ノンプログラマのためのウェブサーバ入門
ノンプログラマのためのウェブサーバ入門 Atsu Yamaga
 
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化Gosuke Miyashita
 
次世代仮想化テクノロジー
次世代仮想化テクノロジー次世代仮想化テクノロジー
次世代仮想化テクノロジーSyuichi Murashima
 
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会Yasutaka Hamada
 
第9回rest勉強会 ダウンロード・アップロード編
第9回rest勉強会 ダウンロード・アップロード編第9回rest勉強会 ダウンロード・アップロード編
第9回rest勉強会 ダウンロード・アップロード編ksimoji
 
Docker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレDocker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレperyaudo
 
HTTP/2 in nginx(2016/3/11 社内勉強会)
HTTP/2 in nginx(2016/3/11 社内勉強会)HTTP/2 in nginx(2016/3/11 社内勉強会)
HTTP/2 in nginx(2016/3/11 社内勉強会)Yoko TAMADA
 
memcached proxy server development and operation
memcached proxy server development and operationmemcached proxy server development and operation
memcached proxy server development and operationTatsuhiko Kubo
 
Using SockJS(Websocket) with Sencha Ext JS
Using SockJS(Websocket) with Sencha Ext JSUsing SockJS(Websocket) with Sencha Ext JS
Using SockJS(Websocket) with Sencha Ext JSKazuhiro Kotsutsumi
 
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料Yasutaka Hamada
 
サバフェスLT
サバフェスLTサバフェスLT
サバフェスLThiroi10
 
Hakodate - simple framework
Hakodate - simple frameworkHakodate - simple framework
Hakodate - simple frameworkHiroaki Murayama
 

What's hot (20)

Presentation on your terminal
Presentation on your terminalPresentation on your terminal
Presentation on your terminal
 
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発
 
nginx入門
nginx入門nginx入門
nginx入門
 
ノンプログラマのためのウェブサーバ入門
ノンプログラマのためのウェブサーバ入門	ノンプログラマのためのウェブサーバ入門
ノンプログラマのためのウェブサーバ入門
 
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
 
次世代仮想化テクノロジー
次世代仮想化テクノロジー次世代仮想化テクノロジー
次世代仮想化テクノロジー
 
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
 
第9回rest勉強会 ダウンロード・アップロード編
第9回rest勉強会 ダウンロード・アップロード編第9回rest勉強会 ダウンロード・アップロード編
第9回rest勉強会 ダウンロード・アップロード編
 
Docker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレDocker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレ
 
HTTP/2 in nginx(2016/3/11 社内勉強会)
HTTP/2 in nginx(2016/3/11 社内勉強会)HTTP/2 in nginx(2016/3/11 社内勉強会)
HTTP/2 in nginx(2016/3/11 社内勉強会)
 
Yesod on Heroku
Yesod on HerokuYesod on Heroku
Yesod on Heroku
 
memcached proxy server development and operation
memcached proxy server development and operationmemcached proxy server development and operation
memcached proxy server development and operation
 
membase
membasemembase
membase
 
Lxc on cloud
Lxc on cloudLxc on cloud
Lxc on cloud
 
Using SockJS(Websocket) with Sencha Ext JS
Using SockJS(Websocket) with Sencha Ext JSUsing SockJS(Websocket) with Sencha Ext JS
Using SockJS(Websocket) with Sencha Ext JS
 
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
 
Nodejs
NodejsNodejs
Nodejs
 
Vagrant+Chef
Vagrant+ChefVagrant+Chef
Vagrant+Chef
 
サバフェスLT
サバフェスLTサバフェスLT
サバフェスLT
 
Hakodate - simple framework
Hakodate - simple frameworkHakodate - simple framework
Hakodate - simple framework
 

Viewers also liked

20130315 abc firefox_os
20130315 abc firefox_os20130315 abc firefox_os
20130315 abc firefox_osTomoaki Konno
 
メルマガ広告 がんばれ社長!今日のポイント
メルマガ広告 がんばれ社長!今日のポイントメルマガ広告 がんばれ社長!今日のポイント
メルマガ広告 がんばれ社長!今日のポイントTomoaki Okamoto
 
Classes cpp intro thomson bayan college
Classes cpp  intro thomson bayan collegeClasses cpp  intro thomson bayan college
Classes cpp intro thomson bayan collegeahmed hmed
 
がんばれ社長!メルマガ広告ご案内 2015年9月-10月号
がんばれ社長!メルマガ広告ご案内 2015年9月-10月号がんばれ社長!メルマガ広告ご案内 2015年9月-10月号
がんばれ社長!メルマガ広告ご案内 2015年9月-10月号Tomoaki Okamoto
 

Viewers also liked (6)

Dummy2
Dummy2Dummy2
Dummy2
 
20130315 abc firefox_os
20130315 abc firefox_os20130315 abc firefox_os
20130315 abc firefox_os
 
メルマガ広告 がんばれ社長!今日のポイント
メルマガ広告 がんばれ社長!今日のポイントメルマガ広告 がんばれ社長!今日のポイント
メルマガ広告 がんばれ社長!今日のポイント
 
2014mediaguide
2014mediaguide2014mediaguide
2014mediaguide
 
Classes cpp intro thomson bayan college
Classes cpp  intro thomson bayan collegeClasses cpp  intro thomson bayan college
Classes cpp intro thomson bayan college
 
がんばれ社長!メルマガ広告ご案内 2015年9月-10月号
がんばれ社長!メルマガ広告ご案内 2015年9月-10月号がんばれ社長!メルマガ広告ご案内 2015年9月-10月号
がんばれ社長!メルマガ広告ご案内 2015年9月-10月号
 

Similar to Firefox OS and Web server

泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) Akihiro Kuwano
 
Build Windows ラップアップ
Build Windows ラップアップBuild Windows ラップアップ
Build Windows ラップアップSunao Tomita
 
Vitochaを用いた Jail+VIMAGE Webインターフェイス
Vitochaを用いた Jail+VIMAGE WebインターフェイスVitochaを用いた Jail+VIMAGE Webインターフェイス
Vitochaを用いた Jail+VIMAGE Webインターフェイスshutingrz
 
サーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話しサーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話しAkira Nagata
 
マイクロソフトの提供するMA6向けAPIのご紹介
マイクロソフトの提供するMA6向けAPIのご紹介マイクロソフトの提供するMA6向けAPIのご紹介
マイクロソフトの提供するMA6向けAPIのご紹介Sunao Tomita
 
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3日本Javaユーザーグループ
 
OpenStack base public cloud service by GMO Internet Inc., at 2013/12/12 Okin...
OpenStack base public cloud service by GMO Internet Inc.,  at 2013/12/12 Okin...OpenStack base public cloud service by GMO Internet Inc.,  at 2013/12/12 Okin...
OpenStack base public cloud service by GMO Internet Inc., at 2013/12/12 Okin...Naoto Gohko
 
Server side Swift & Photo Booth
Server side Swift & Photo Booth Server side Swift & Photo Booth
Server side Swift & Photo Booth LINE Corporation
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略Hiroshi SHIBATA
 
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!NGINX, Inc.
 
クラウドサービスを使って作る動画サイト?
クラウドサービスを使って作る動画サイト?クラウドサービスを使って作る動画サイト?
クラウドサービスを使って作る動画サイト?Daichi Isami
 
Cloud Foundry: Open Platform as a Service
Cloud Foundry: Open Platform as a ServiceCloud Foundry: Open Platform as a Service
Cloud Foundry: Open Platform as a ServiceShunsuke Kurumatani
 
オープンソースでシステム監視!統合監視ソフトウェアZABBIXの機能と利用事例のご紹介
オープンソースでシステム監視!統合監視ソフトウェアZABBIXの機能と利用事例のご紹介オープンソースでシステム監視!統合監視ソフトウェアZABBIXの機能と利用事例のご紹介
オープンソースでシステム監視!統合監視ソフトウェアZABBIXの機能と利用事例のご紹介Kodai Terashima
 
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏Developers Summit
 
6th oct2012 kobeit_webintents
6th oct2012 kobeit_webintents6th oct2012 kobeit_webintents
6th oct2012 kobeit_webintentsKensaku Komatsu
 
WebSocket + Node.jsでつくるチャットアプリ
WebSocket + Node.jsでつくるチャットアプリWebSocket + Node.jsでつくるチャットアプリ
WebSocket + Node.jsでつくるチャットアプリKohei Kadowaki
 

Similar to Firefox OS and Web server (20)

泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
 
Build Windows ラップアップ
Build Windows ラップアップBuild Windows ラップアップ
Build Windows ラップアップ
 
Vitochaを用いた Jail+VIMAGE Webインターフェイス
Vitochaを用いた Jail+VIMAGE WebインターフェイスVitochaを用いた Jail+VIMAGE Webインターフェイス
Vitochaを用いた Jail+VIMAGE Webインターフェイス
 
サーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話しサーバーレスで ガチ本番運用までやってるお話し
サーバーレスで ガチ本番運用までやってるお話し
 
マイクロソフトの提供するMA6向けAPIのご紹介
マイクロソフトの提供するMA6向けAPIのご紹介マイクロソフトの提供するMA6向けAPIのご紹介
マイクロソフトの提供するMA6向けAPIのご紹介
 
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
 
OpenStack base public cloud service by GMO Internet Inc., at 2013/12/12 Okin...
OpenStack base public cloud service by GMO Internet Inc.,  at 2013/12/12 Okin...OpenStack base public cloud service by GMO Internet Inc.,  at 2013/12/12 Okin...
OpenStack base public cloud service by GMO Internet Inc., at 2013/12/12 Okin...
 
Server side Swift & Photo Booth
Server side Swift & Photo Booth Server side Swift & Photo Booth
Server side Swift & Photo Booth
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
 
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
 
Mvc conf session_5_isami
Mvc conf session_5_isamiMvc conf session_5_isami
Mvc conf session_5_isami
 
クラウドサービスを使って作る動画サイト?
クラウドサービスを使って作る動画サイト?クラウドサービスを使って作る動画サイト?
クラウドサービスを使って作る動画サイト?
 
Angularreflex20141210
Angularreflex20141210Angularreflex20141210
Angularreflex20141210
 
Cloud Foundry: Open Platform as a Service
Cloud Foundry: Open Platform as a ServiceCloud Foundry: Open Platform as a Service
Cloud Foundry: Open Platform as a Service
 
オープンソースでシステム監視!統合監視ソフトウェアZABBIXの機能と利用事例のご紹介
オープンソースでシステム監視!統合監視ソフトウェアZABBIXの機能と利用事例のご紹介オープンソースでシステム監視!統合監視ソフトウェアZABBIXの機能と利用事例のご紹介
オープンソースでシステム監視!統合監視ソフトウェアZABBIXの機能と利用事例のご紹介
 
Mobile Web
Mobile WebMobile Web
Mobile Web
 
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
【17-E-2】Ruby PaaS「MOGOK」 ~ ソフトウェアエンジニアのためのクラウドサービス ~ 藤原秀一氏
 
6th oct2012 kobeit_webintents
6th oct2012 kobeit_webintents6th oct2012 kobeit_webintents
6th oct2012 kobeit_webintents
 
WebSocket + Node.jsでつくるチャットアプリ
WebSocket + Node.jsでつくるチャットアプリWebSocket + Node.jsでつくるチャットアプリ
WebSocket + Node.jsでつくるチャットアプリ
 
10th jan 2013_miyazaki
10th jan 2013_miyazaki10th jan 2013_miyazaki
10th jan 2013_miyazaki
 

Firefox OS and Web server

  • 1. FFiirreeffooxx OOSSとWWeebbサーバ TToommooaakkii KKoonnnnoo 22001155//22//2200 @@ FFiirreeffooxx OOSS 勉強会 88tthh
  • 2. 自己紹介 •  今野 智明(TToommooaakkii KKoonnnnoo) •  KKDDDDII研究所 •  WWeebb関連の開発 2
  • 3. AAggeennddaa:: • モバイルWWeebbサーバ • WWeebb--ccaasstt • WWeebbサーバとの歩み 3
  • 5. FFiirreeffooxx OOSSのコンセプト 5 参考:http://au-fx.kddi.com/products/ •  ""TThhee WWeebb iiss tthhee ppllaattffoorrmm.."" –  デバイス固有機能 •  ee..gg.. 加速度 –  ネットワーク機能 •  クライアント側は当然ある。 •  サーバは…�?
  • 6. サーバ機能も端末に 6 Web  Server Web  Browser Web  Server Web  Browser
  • 7. •  コンテンツ共有 –  相手に送って終わり –  ee..gg.. 写真、ビデオ –  ccff.. AAnnddrrooiidd BBeeaamm •  体験共有 –  相手とのインタラクション –  ee..gg.. ゲーム –  ccff.. NNiinntteennddoo DDSS WWeebbサーバでできること 7 Webサーバ ブラウザ ブラウザWebサーバ
  • 8. DDEEMMOO:: じゃんけんゲーム 8 参考:  http://interest-speaker.com/vector-data-of-gu-choki-pa-the-jan-ken-game/
  • 9. WWeebbサーバアプリの実現 •  FFxxOOSSアプリとしてWWeebbサーバを書く 9 Server   App Gaia Gecko Client  App スクラッチから書くのは大変
  • 10. オープンソース:hhttttppdd..jjss 10 •  ダウンロード ((kkddddii ++ hhttttppddなどで検索) –  hhttttpp::////ooppeennssoouurrccee..kkddddii..ccoomm//ffxx00//hhttttppdd..hhttmmll •  関連情報 –  hhttttpp::////sshhoowwccaassee..kkddddii..ccoomm//ccsscc//wwoorrkkss//vviieeww//2255 Server  App Gaia Gecko httpd.js
  • 11. hhttttppdd..jjssの使い方紹介 11 1)   アプリ領域の公開 2)   SDカード領域の公開 3)   リクエストハンドラ
  • 12. ((11)) アプリ領域の公開 12 server  =  new  HttpServer(); /*  アプリ領域のディレクトリを公開  */ server.get("/",  appRoot);              //  e.g.  ./public server.start(port);  //  e.g.  3000 btn.addEventListener("click",  function(){    server.stop(onStop);  //終了処理(ポート開放) }); //ブラウザで、サーバ側の"./public"配下の"  index.htmlへアクセス GET  http://192.168.*.*:3000/index.html ★Server側 ★Client側(ブラウザ)
  • 13. 13 /*  SDカード領域のディレクトリ公開  */ server.get("/sd/",  sdRoot);        //  e.g.  /sdcard/public var  xhr  =  new  XMLHttpRequest(); var  url  =  "/sd/sample.txt";  //サーバ側の"/sdcard/public"配下の  sample.txtへアクセス xhr.open('GET',url); xhr.onload  =  function(){    if  (xhr.readyState  ===  4  &&  xhr.status  ===  200)  {        //  hoge    }   } xhr.send(null); ((22)) SSDDカード領域の公開 ★Server側 ★Client側(JS,  GET)
  • 14. 14 /*  リクエストハンドラの設定  */ server.get("/xhr",  function(req,  res,  onComplete){          var  bodyStr  =  String.fromCharCode.apply(null,  new  Uint8Array(req.bodyBuffer));          var  ret  =  parseFloat(bodyStr)  <  0.3  ?  'hit!'  :  'fail.';          res.write(ret);          onComplete(); }); var  url  =  ‘/post’;     xhr.open('POST',url); xhr.onload  =  function(){    //hoge } xhr.send("0.1"); ★Server側 ★Client側(JS,  POST) ((33)) リクエストハンドラ
  • 15. 事前設定 •  JJSSライブラリの読み込み •  MMaanniiffeessttの設定 15  <script  type="text/javascript"  src="js/httpd.js"></script> "type":  "privileged", … "permissions":  {    "tcp-socket":{"description":  "For  Jan-Ken  Game"},    "device-storage:sdcard":{"access":  "readwrite"} } 必須 privilegedまたはcertified SD領域を利用するなら
  • 16. モバイルWWeebbサーバのまとめ •  端末サーバによる共有 •  WWeebbサーバアプリをJJSSで書ける •  アプリ向�けのOOSSSS hhttttppdd..jjss 16
  • 18. WWeebb--ccaassttがつくる体験 11)) 直感的に 22)) 手間なく 33)) 近くの相手と共有 18 参考:http://au-fx.kddi.com/products/
  • 19. DDEEMMOO VVIIDDEEOO:: 動画の共有 19
  • 20. WWeebb--ccaasstt ç サーバ ++ いろいろ •  直感的にするためには…� –  タッチ?? NNFFCC?? •  手間なくするためには…� –  ペアリング?? WWii--FFii?? 20
  • 21. 通信機能を持つアプリ 21 典型的なデザイン Web-castのデザイン Webserver NW NFC WWii--FFii NNWW構築をサポート ((端末AAPP//外部AAPP)) UURRLLやNNWW情報の交換を サポート サービス NW 相手探し サービス部分を集中的に Req. 参考:http://au-fx.kddi.com/products/index.html
  • 22. WWeebb--ccaassttのしくみ 22 Device Peer System  App Web-cast   Manager Network  Manager App Web  Server   Module NFC  Manager Control NDEF  exchange Establish  Network content  URL over  IAC over  NFC-P2P SD  card Resource HTTP ただし、IACは、現状Certifiedのみ利用可能
  • 23. WWeebb--ccaassttのまとめ •  直感的に手間なく共有 •  共有アプリを簡単に作るための仕組み •  現状は、FFxx00でのみ利用可能 23
  • 25. 33年くらい前 •  世の中 –  HHTTMMLL55がバズワード –  BB22GGも正式発表 •  自身 –  ようやくWWeebbを始める 25
  • 26. デバイス間コミュニケーション •  クラウドサーバ経由では可能 –  目の前の相手と、わざわざ電話で話している感じ •  もっと直感的にやりとりしたい –  端末にサーバがあればできる? 26
  • 27. トライ&&エラー 27 Gonk Gecko httpd Gonk Gecko httpd.js Gonk Gecko アプリ アプリ ライブラリ TCP  Socket   API ・Webで書けない ・セキュリティモデル ・アプリから利用できない ・TCPのListenのAPIがない ・httpdライブラリもない 11)) とにかく端末サーバ 22)) GGeecckkooの枠組みで 33)) アプリでサーバ
  • 28. モチベーション •  TTCCPP SSoocckkeettのCClliieennttのAAPPIIは存在 •  MMLLでSSeerrvveerr側を望む声 •  CClliieenntt側の開発者は手一杯 28 ""自分たちで作ってみるか!!""
  • 29. コミュニティ活動開始 •  担当者っぽい人にメール ⇒BBuuggに即AAssssiiggnn 29 Bugzillaでのサポートを受けつつ 参考:https://bugzilla.mozilla.org/show_bug.cgi?id=797561
  • 33. まとめ •  モバイルWWeebbサーバ –  アプリでWWeebbサーバ ((hhttttppdd..jjss)) •  WWeebb--ccaasstt –  直感的に手間なく共有 •  WWeebbサーバとの歩み –  WWeebb--ccaassttに至るまでのヨモヤマ話 33