SlideShare a Scribd company logo
1 of 29
Firefox OSにおける
サーバ機能開発の取り組み
@ABC 2013 spring
          Tomoaki Konno
    KDDI R&D Laboratories, Inc.
自己紹介
O Tomoaki Konno@KDDI R&D Laboratories,
  Inc.
O HTML5関連の開発・標準化活動
 O Firefox OS、地図
 O W3C SVG WGメンバー



   Github • https://github.com/gitomo/




                                         2
Agenda

OServerとFFOS
ODemo
OAPIの使い方
Oアプリの作り方
O工夫
Oまとめ




                        3
4
よくある風景




         5
6
7
8
Firefox OS




http://www.slideshare.net/dynamis/firefox-os-html5j   9
10
11
TCP Socket通信

Server                    Client
             この部分
socket       を実装         socket
                  JS
listen
                  CPP     open
accept            IDL
     new socket
  send/recv             send/recv

     close                close
                                    12
Demo

OTCP Socket通信
 O サーバ・クライアント間での
  Oテキストのやりとり
  O画像のやりとり


OHTTPサーバ
 O サーバ・クライアント間での
  Ohtmlコンテンツのやりとり


                    13
Demo: TCP Socket通信(動画)




                         14
Demo: HTTPサーバ(動画)




                    15
16
アプリ開発までの流れ




FFOSイン   パッチ      アプリ
 ストール    適用       開発




                        17
Mozilla Developer Network (MDN)




https://developer.mozilla.org/en-              18
US/docs/Mozilla/Firefox_OS
Bugzilla




https://bugzilla.mozilla.org/show_bug.cgi?id=797561
                                                      19
パッチ適用

                                         ここから
                                        Download




B2G# cd gecko
B2G/gecko# patch –p1 < bug797561_v*.patch

https://bugzilla.mozilla.org/show_bug.cgi?id=797561   20
manifestの設定追加

                        B2G                         manifest.webapp

                                                    {
                                                    "permissions": {
                gecko            gaia                "systemXHR":{},
                                                     "tcp-socket":{},
                                                    }
                                 apps
                                                    }

                                httpCom
                                  App                これを追加

index.ht                                manifest.
           js           style
   ml                                   webapp


                                                                      21
22
APIの使い方(サーバ側)

tcpservsock = navigator.mozTCPSocket.listen(port,
OPTION);
tcpservsock.onaccept = function(acceptsock) {
       acceptsock.ondata = function(container) {
              displayData(container.data);
       };
       acceptsock.onclose = function() {
              closing();
       };
       acceptsock.send(message);
}
tcpservsock.onerror = function(e) {
       displayError(e.data.message);
}



                                                    23
APIの使い方(クライアント側)

      tcpsock = navigator.mozTCPSocket.open(host, port,
OPTION);
      tcpsock.onopen = function() {
             tcpsock.send(message);
             tcpsock.close();
      }
      tcpsock.ondata = function(container) {
             displayData(container.data);
      };
      tcpsock.onclose = function() {
             closing();
      };
      tcpsock.onerror = function(e) {
             displayError(e.data.message);
      }


                                                     24
アプリ開発時のちょっとした工夫

Oアプリの変更を実機で確認したい場合、
 flashが必要。
OWi-FiのPWを毎回打ちたくない時
 O B2g/gaia/apps/communications/ftu/ui.js
  O chooseNetworkメソッド内
       passwordInput.value = "xxxxxxxx";
       ssidHeader.value = ssid;

                 ※ただし、コード公開時にはPW毎公
                 開しないようにお気を付けください。
                   重要なPWは書かないこと。
                   自己責任でお願いします。
                                            25
便利なもの
O 実機以外の動作環境
  O Firefox OS Simulator (recommended)
     O https://hacks.mozilla.org/2013/03/firefox-os-simulator-previewing-
       version-3-0/
  O B2G Desktop Client
     O https://developer.mozilla.org/en-
       US/docs/Mozilla/Firefox_OS/Using_the_B2G_desktop_client
  O B2G Emulator
     O https://developer.mozilla.org/en-
       US/docs/Mozilla/Firefox_OS/Using_the_B2G_emulators?redirectlocale
       =en-US&redirectslug=Firefox_OS%2FUsing_the_B2G_emulators
O Mozilla Cross Reference
  O http://mxr.mozilla.org/

O ツール
  O gitgui
  O meld

                                                                       26
27
Bug: v.next technology



                                    次世代以降の
                                   FFOSの機能候補




                                    TCP Server Socket
                                        APIも掲載
https://bugzilla.mozilla.org/show_bug.cgi?id=844910     28
まとめ

OFFOSにおけるTCP Server Socket APIを
 使った開発
 O https://bugzilla.mozilla.org/show_bug.cgi?id=   797561




         Github • https://github.com/gitomo/
                                                            29

More Related Content

What's hot

Using PyFoam as library(第25回オープンCAE勉強会@関西)
Using PyFoam as library(第25回オープンCAE勉強会@関西)Using PyFoam as library(第25回オープンCAE勉強会@関西)
Using PyFoam as library(第25回オープンCAE勉強会@関西)TatsuyaKatayama
 
20210515 cae linux_install_vb
20210515 cae linux_install_vb20210515 cae linux_install_vb
20210515 cae linux_install_vbYohichiShiina
 
HTML5-pronama-study
HTML5-pronama-studyHTML5-pronama-study
HTML5-pronama-studyNaoya Inada
 
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略祐司 伊藤
 
MacPort_&_FTP_ver1.0
MacPort_&_FTP_ver1.0MacPort_&_FTP_ver1.0
MacPort_&_FTP_ver1.0Satoshi Kume
 
Zynq VIPを利用したテストベンチ
Zynq VIPを利用したテストベンチZynq VIPを利用したテストベンチ
Zynq VIPを利用したテストベンチMr. Vengineer
 
Homebrewによるソフトウェアの実装 (2)
Homebrewによるソフトウェアの実装 (2)Homebrewによるソフトウェアの実装 (2)
Homebrewによるソフトウェアの実装 (2)Yoshihiro Mizoguchi
 
Homebrewによるソフトウェアの実装(1)
Homebrewによるソフトウェアの実装(1)Homebrewによるソフトウェアの実装(1)
Homebrewによるソフトウェアの実装(1)Yoshihiro Mizoguchi
 
Homebrewによるソフトウェアの実装 (3)
Homebrewによるソフトウェアの実装 (3)Homebrewによるソフトウェアの実装 (3)
Homebrewによるソフトウェアの実装 (3)Yoshihiro Mizoguchi
 
MacPort japanese_ver.1.0
MacPort japanese_ver.1.0MacPort japanese_ver.1.0
MacPort japanese_ver.1.0Satoshi Kume
 
OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)
OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)
OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)TatsuyaKatayama
 
Altera SDK for OpenCL解体新書 perlスクリプト編
Altera SDK for OpenCL解体新書 perlスクリプト編Altera SDK for OpenCL解体新書 perlスクリプト編
Altera SDK for OpenCL解体新書 perlスクリプト編Mr. Vengineer
 
Tomcat環境をインストールする(debian)
Tomcat環境をインストールする(debian)Tomcat環境をインストールする(debian)
Tomcat環境をインストールする(debian)Kimiyuki Yamauchi
 
OpenMDAOをUbuntu12.04にインストールする(第24回オープンCAE勉強会@関西)
OpenMDAOをUbuntu12.04にインストールする(第24回オープンCAE勉強会@関西)OpenMDAOをUbuntu12.04にインストールする(第24回オープンCAE勉強会@関西)
OpenMDAOをUbuntu12.04にインストールする(第24回オープンCAE勉強会@関西)TatsuyaKatayama
 
about DEXCS for OpenFOAM
about DEXCS for OpenFOAMabout DEXCS for OpenFOAM
about DEXCS for OpenFOAMEtsuji Nomura
 
OPcache の最適化器の今
OPcache の最適化器の今OPcache の最適化器の今
OPcache の最適化器の今y-uti
 

What's hot (19)

Using PyFoam as library(第25回オープンCAE勉強会@関西)
Using PyFoam as library(第25回オープンCAE勉強会@関西)Using PyFoam as library(第25回オープンCAE勉強会@関西)
Using PyFoam as library(第25回オープンCAE勉強会@関西)
 
20210515 cae linux_install_vb
20210515 cae linux_install_vb20210515 cae linux_install_vb
20210515 cae linux_install_vb
 
Decsx launcherv 2.5
Decsx launcherv 2.5Decsx launcherv 2.5
Decsx launcherv 2.5
 
HTML5-pronama-study
HTML5-pronama-studyHTML5-pronama-study
HTML5-pronama-study
 
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
 
MacPort_&_FTP_ver1.0
MacPort_&_FTP_ver1.0MacPort_&_FTP_ver1.0
MacPort_&_FTP_ver1.0
 
Zynq VIPを利用したテストベンチ
Zynq VIPを利用したテストベンチZynq VIPを利用したテストベンチ
Zynq VIPを利用したテストベンチ
 
Homebrewによるソフトウェアの実装 (2)
Homebrewによるソフトウェアの実装 (2)Homebrewによるソフトウェアの実装 (2)
Homebrewによるソフトウェアの実装 (2)
 
Homebrewによるソフトウェアの実装(1)
Homebrewによるソフトウェアの実装(1)Homebrewによるソフトウェアの実装(1)
Homebrewによるソフトウェアの実装(1)
 
Synverll
SynverllSynverll
Synverll
 
Homebrewによるソフトウェアの実装 (3)
Homebrewによるソフトウェアの実装 (3)Homebrewによるソフトウェアの実装 (3)
Homebrewによるソフトウェアの実装 (3)
 
MacPort japanese_ver.1.0
MacPort japanese_ver.1.0MacPort japanese_ver.1.0
MacPort japanese_ver.1.0
 
OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)
OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)
OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)
 
Altera SDK for OpenCL解体新書 perlスクリプト編
Altera SDK for OpenCL解体新書 perlスクリプト編Altera SDK for OpenCL解体新書 perlスクリプト編
Altera SDK for OpenCL解体新書 perlスクリプト編
 
もしトラ
もしトラもしトラ
もしトラ
 
Tomcat環境をインストールする(debian)
Tomcat環境をインストールする(debian)Tomcat環境をインストールする(debian)
Tomcat環境をインストールする(debian)
 
OpenMDAOをUbuntu12.04にインストールする(第24回オープンCAE勉強会@関西)
OpenMDAOをUbuntu12.04にインストールする(第24回オープンCAE勉強会@関西)OpenMDAOをUbuntu12.04にインストールする(第24回オープンCAE勉強会@関西)
OpenMDAOをUbuntu12.04にインストールする(第24回オープンCAE勉強会@関西)
 
about DEXCS for OpenFOAM
about DEXCS for OpenFOAMabout DEXCS for OpenFOAM
about DEXCS for OpenFOAM
 
OPcache の最適化器の今
OPcache の最適化器の今OPcache の最適化器の今
OPcache の最適化器の今
 

Viewers also liked

Firefox OS and Web server
Firefox OS and Web serverFirefox OS and Web server
Firefox OS and Web serverTomoaki 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)

Firefox OS and Web server
Firefox OS and Web serverFirefox OS and Web server
Firefox OS and Web server
 
2014mediaguide
2014mediaguide2014mediaguide
2014mediaguide
 
Dummy2
Dummy2Dummy2
Dummy2
 
メルマガ広告 がんばれ社長!今日のポイント
メルマガ広告 がんばれ社長!今日のポイントメルマガ広告 がんばれ社長!今日のポイント
メルマガ広告 がんばれ社長!今日のポイント
 
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 20130315 abc firefox_os

Microsoft Graph API Library for Go
Microsoft Graph API Library for GoMicrosoft Graph API Library for Go
Microsoft Graph API Library for Goyaegashi
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力ThinReports
 
Let's begin WebRTC
Let's begin WebRTCLet's begin WebRTC
Let's begin WebRTCyoshikawa_t
 
Android Studioの魅力
Android Studioの魅力Android Studioの魅力
Android Studioの魅力Keiji Ariyama
 
SDN Lab環境でのRobotFramework実践活用
SDN Lab環境でのRobotFramework実践活用SDN Lab環境でのRobotFramework実践活用
SDN Lab環境でのRobotFramework実践活用Toshiki Tsuboi
 
MozOpenHardプロジェクトと そのコア技術について
MozOpenHardプロジェクトと そのコア技術についてMozOpenHardプロジェクトと そのコア技術について
MozOpenHardプロジェクトと そのコア技術について Takagi Koichi
 
FPGAアクセラレータの作り方 (IBM POWER+CAPI編)
FPGAアクセラレータの作り方 (IBM POWER+CAPI編)FPGAアクセラレータの作り方 (IBM POWER+CAPI編)
FPGAアクセラレータの作り方 (IBM POWER+CAPI編)Mr. Vengineer
 
PlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocketPlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocketKazuhiro Hara
 
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるNetラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるdavid9142
 
OpenGLプログラミング
OpenGLプログラミングOpenGLプログラミング
OpenGLプログラミング幸雄 村上
 
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発Yuta Matsumura
 
NAO/Pepper 開発環境 について
NAO/Pepper 開発環境 についてNAO/Pepper 開発環境 について
NAO/Pepper 開発環境 についてTakuji Kawata
 
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化Gosuke Miyashita
 
EC-CUBEプラグイン講義
EC-CUBEプラグイン講義EC-CUBEプラグイン講義
EC-CUBEプラグイン講義ria1201
 
Prometheus超基礎公開用.pdf
Prometheus超基礎公開用.pdfPrometheus超基礎公開用.pdf
Prometheus超基礎公開用.pdf勇 黒沢
 

Similar to 20130315 abc firefox_os (20)

Microsoft Graph API Library for Go
Microsoft Graph API Library for GoMicrosoft Graph API Library for Go
Microsoft Graph API Library for Go
 
Node.jsでブラウザメッセンジャー
Node.jsでブラウザメッセンジャーNode.jsでブラウザメッセンジャー
Node.jsでブラウザメッセンジャー
 
Boost sg msgpack
Boost sg msgpackBoost sg msgpack
Boost sg msgpack
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
 
Let's begin WebRTC
Let's begin WebRTCLet's begin WebRTC
Let's begin WebRTC
 
Android Studioの魅力
Android Studioの魅力Android Studioの魅力
Android Studioの魅力
 
SDN Lab環境でのRobotFramework実践活用
SDN Lab環境でのRobotFramework実践活用SDN Lab環境でのRobotFramework実践活用
SDN Lab環境でのRobotFramework実践活用
 
WebRTC on Native App
WebRTC on Native AppWebRTC on Native App
WebRTC on Native App
 
MozOpenHardプロジェクトと そのコア技術について
MozOpenHardプロジェクトと そのコア技術についてMozOpenHardプロジェクトと そのコア技術について
MozOpenHardプロジェクトと そのコア技術について
 
FPGAアクセラレータの作り方 (IBM POWER+CAPI編)
FPGAアクセラレータの作り方 (IBM POWER+CAPI編)FPGAアクセラレータの作り方 (IBM POWER+CAPI編)
FPGAアクセラレータの作り方 (IBM POWER+CAPI編)
 
PlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocketPlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocket
 
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるNetラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
 
OpenGLプログラミング
OpenGLプログラミングOpenGLプログラミング
OpenGLプログラミング
 
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発
 
Driverについて
DriverについてDriverについて
Driverについて
 
NAO/Pepper 開発環境 について
NAO/Pepper 開発環境 についてNAO/Pepper 開発環境 について
NAO/Pepper 開発環境 について
 
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
 
How to run P4 BMv2
How to run P4 BMv2How to run P4 BMv2
How to run P4 BMv2
 
EC-CUBEプラグイン講義
EC-CUBEプラグイン講義EC-CUBEプラグイン講義
EC-CUBEプラグイン講義
 
Prometheus超基礎公開用.pdf
Prometheus超基礎公開用.pdfPrometheus超基礎公開用.pdf
Prometheus超基礎公開用.pdf
 

20130315 abc firefox_os