オペレータから 見 た Androidサービス 開 発 の 期 待 と 注 意 点 2011.11.18 栄 藤 稔 (えとう みのる) 本 発 表 は あくまでも 個 人 の 意 見 で あり NTTドコモの 戦 略 戦 術 を 反 映 したものではありません 2011 NTT DOCOMO, INC. All Rights Reserved. 2008 NTT DOCOMO, INC. All rights reserved.
自 己 紹 介 栄 藤 稔 (Minoru Etoh) Twitter: @mickbean Blog: http://micketoh.blogspot.com/ パターン 認 識 研 究 者 MPEG 技 術 者 現 在 ビッグデータ 処 理 (データマイニング)に 没 頭 NTTドコモ サービス&ソリューション 開 発 部 部 長 DOCOMO Innovations, Inc. 社 長 (Palo Alto) 1
今 日 お 話 しすること アンドロイド v.s. ios = Divergence Merit vs v.s. Convergence Merit お 客 様 はアンドロイドをPCとは 思 ってくれない オペレータならではの 機 能 :ネットワークAPIや 課 金 APIを 提 供 して 差 別 化 を 図 りたい OSに 依 存 しない 環 境 としてHTML5に 注 目 中 オペレータにできることとしてVerizonを 見 習 い たい 個 人 の 感 想 です 2
まえふり Fragmentation ti 3
二 面 楚 歌 VS 個 人 の 感 想 です 4
最 近 はまった 事 例 1: 競 合 状 態 (Race hazard) 内 側 カメラを 用 いたとある 機 能 がネイティブサービスとして 常 駐 ( 機 能 オフに してもカメラはつかみっぱなし) Androidのフレームワークで 作 られた( 他 の 端 末 で 問 題 のない)カメラを 利 用 する アプリが 動 作 しない ネイティブで 動 作 しているのでAndroidのサービス 管 理 から 切 ることもできない 通 常 問 題 の 端 末 カメラを 利 用 するアプリ カメラを 利 用 するアプリ エラー Androidフレームワーク Androidフレームワーク とある 機 能 (ネイティブサービス) カメラ 機 能 カメラ 機 能 5
バージョンの 違 いの 例 :カメラのプレビュー 画 像 の 取 得 の 実 装 ver.2.2より 前 method(){ _camera.setpreviewcallback (this); _camera.startpreview(); } onpreviewframe(byte[] data, Camera camera){// 画 像 の 取 得 } SSII2011チュートリアル 講 演 モバイル 画 像 処 理 ~スマートフォンでCVを~Android 編 自 動 的 に 繰 り 返 し 呼 ばれる ver.2.2 以 降 確 保 したバッファを 使 いまわすのでgcが 発 生 しないが 指 示 が 必 要 method(){ PixelFormat pixel_info=new PixelFormat(); PixelFormat.getPixelFormatInfo(_camera.getParameters().getPreviewFormat(),pixel_info); byte buffer[]=new byte [_camera.getparameters().getpreviewsize().width camera.getparameters().getpreviewsize().width* _camera.getparameters().getpreviewsize().height* pixel_info.bitsperpixel/8];//プレビューサイズでバッファを 確 保 _camera.addcallbackbuffer(buffer); _camera.setpreviewcallbackwithbuffer(this); _camera.startpreview(); } onpreviewframe(byte[] data, Camera camera){// 画 像 の 取 得 指 示 するまで 次 の 処 理 に 進 まない camera.addcallbackbuffer(data); } 2011 NTT DOCOMO, INC. All Rights Reserved. 2008 NTT DOCOMO, INC. All rights reserved.
リフレクションの 利 用 による 下 位 互 換 性 の 確 保 SSII2011チュートリアル 講 演 モバイル 画 像 処 理 ~スマートフォンでCVを~Android 編 public class RefCamera{//リフレクションを 利 用 したカメラのクラス private static Method ref_addcallbackbuffer=null; private static Method ref_setpreviewcallbackwithbuffer=null; static { initcompatibility(); }; private static void initcompatibility() {// 最 初 に 呼 び 出 したいメソッドを 取 得 try { } 機 能 が 使 えるかチェック ref_addcallbackbuffer = Camera.class.getMethod("addCallbackBuffer", byte[].class); ref_setpreviewcallbackwithbuffer= Camera.class.getMethod("setPreviewCallbackWithBuffer, Camera.PreviewCallback.class ); } catch (NoSuchMethodException nsme) {} } public static void addcallbackbuffer(camera camera,byte[] buffer){ try { if(ref_addcallbackbuffer!=null)//メソッドの 取 得 に 成 功 していれば ref_addcallbackbuffer.invoke(camera,buffer);//invokeでメソッドを 動 的 に 起 動 } catch (Exception e){} } public static void setpreviewcallbackwithbuffer(camera camera,camera.previewcallback cb){ try { if(ref_setpreviewcallbackwithbuffer!=null) ref_setpreviewcallbackwithbuffer.invoke(camera,cb); } catch (Exception e){} } 機 能 が 使 えるときだけ 呼 び 出 す 2011 NTT DOCOMO, INC. All Rights Reserved. 2008 NTT DOCOMO, INC. All rights reserved.
最 近 はまった 事 例 2: 約 束 の 拡 大 (Escalation of commitment) 全 ての 端 末 にもサービスを 導 入 することが 要 求 される そうなると 動 画 コーデックの 場 合 機 種 ごとの 性 能 差 を 考 慮 して 端 末 ごとに 最 適 化 するためのデバッグが 必 要 となる 例 : 動 画 配 信 サービス 動 画 配 信 サーバー 最 高 画 質 で 再 生 中 間 画 質 で 再 生 低 画 質 で 再 生 再 生 アプリX 再 生 アプリY 再 生 アプリZ SWコーデック SWコーデック HWコーデック CPU/メモリ( 大 ) CPU/メモリ( 小 ) 8
脱 OS, いつか 来 た 夢 本 音 は 口 頭 で HTML5 and Network API 10
第 3 勢 力? iphone VS Android VS HTML5 VS WinPhone7? 11
Web 関 連 技 術 のトレンド ブ ラ ウ ザ 側 サ ー バ 側 Web1.0 Web2.0 次 世 代 古 典 的 なWeb DHTML 対 話 型 Webアプリケーション HTML HTML+DOM+JavaScript AJAX HTML5 CSS マッシュアップ JSONP サーバ 間 連 携 HTTP REST+JSON SOAP/WSDL/UDDI SOAP/WSDL イ ン フ ラ CGI 単 体 Webサーバ Servlet Perl 専 用 大 規 模 サーバー Ruby on Rails IaaS PaaS SaaS クラウド 2011 NTT DOCOMO, INC. All Rights Reserved. 2008 NTT DOCOMO, INC. All rights reserved.
HTML5の 特 徴 Webアプリケーションを 高 度 化 する 為 の 各 種 技 術 が 提 案 されており HTMLやその 関 連 技 術 の 多 くはW3Cで 仕 様 化 される 予 定 表 現 力 の 向 上 <video><audio>タグ - 動 画 音 声 の 埋 め 込 み <canvas>タグ -2D ベクター 描 画 (Google O3D API) -3D OpenGL 描 画 プログラミング 通 信 機 能 端 末 機 能 連 携 Google O3D API http://code.google.com//apis/o3d/ 文 書 構 造 の 高 度 化 入 力 支 援 (Forms) - フォームの 入 力 内 容 チェック 機 構 -ドラッグ&ドロップ <section><article>タグなど >タグなど - 文 書 構 造 の 明 確 化 (CSS3) - レイアウトや 文 字 装 飾 機 能 がモジュール として 追 加 できる ローカルデータ 処 理 オフライン 処 理 <モバイルならでは1> 片 手 入 力 タッチパネル 入 力 が 可 能 Web Workers -バックグラウンド 処 理 Cross Document Messaging - ドキュメント 間 通 信 を 実 現 Web Sockets API Server-sent-event - 双 方 向 リアルタイム 通 信 を 実 現 (Geolocation API) - 位 置 情 報 との 連 携 Chrome Experiments http://mrdoob.com/projects/chromeexperi ments/ <モバイルならでは3> 位 置 情 報 連 携 プッシュサービス が 実 現 可 能 Application Cache - 一 時 的 なデータの 読 み 書 き Web Storage - ローカルデータの 読 み 書 き Web Database - データベースにSQLでアクセス 可 能 <モバイルならでは2> 電 波 の 圏 内 外 を 問 わずにWebア プリが 利 用 可 能 2011 NTT DOCOMO, INC. All Rights Reserved. 2008 NTT DOCOMO, INC. All rights reserved.
HTML5 特 有 の 機 能 テキスト 入 力 の 簡 易 化 片 手 操 作 でも 快 適 に 文 字 入 力 ができる Webインタラクションの 操 作 性 向 上 オフライン 時 でも 動 作 するWebアプリケーション LTE 等 の 高 速 回 線 であれば メモ スケジューラなどのアプリを Webアプリケーションとして 実 装 することもできる データ 本 体 はサーバ 側 にあるため データをお 預 かりしながら サービスを 利 用 できる サーバーからのプッシュによる 通 知 更 新 チャットや 新 着 メール 通 知 などを Webサーバからのプッシュで 実 現 することで 通 信 の 効 率 化 が 可 能 LTE 上 であればWebアプリケーションでリアルタイムサービスが 実 現 可 能 2011 NTT DOCOMO, INC. All Rights Reserved. 2008 NTT DOCOMO, INC. All rights reserved.
WAC 2010 年 に 世 界 のオペレーター24 社 を 中 心 に 設 立 オープンな 携 帯 電 話 向 けアプリケーションの 開 発 環 境 の 構 築 や 端 末 に 依 存 しない アプリの 提 供 を 行 うことを 目 指 す 非 営 利 団 体 HTML5をベースとしたリッチなWebアプリ 環 境 の 実 現 ネットワーク APIの 提 供 が 今 後 のマイルストーン ワールドワイドの 共 通 アプリ 実 行 環 境 16
OneAPIとは OneAPIは GSMAプロジェクトとして2008 年 にVodafoneをリーダーとし て 発 足 オペレータが 保 有 する 機 能 のAPI 共 通 化 仕 様 を 策 定 API 共 通 化 により アプリ 開 発 者 の 獲 得 を 狙 う OneAPI v1.0 10 Location Payment Messaging (SMS MMS) OneAPI v2.0 In-app billing Click-to-call Call notification Data Connection profile ~ OneAPIアーキテクチャ ~ 仕 様 策 定 済 み 2010.6 リリース N W OneAPI OneAPI OneAPI OneAPI 仕 様 策 定 中 サーバーのAPI 仕 様 を 規 定 ( 呼 び 出 しプロトコル 書 式 引 数 返 り 値 ) ( 実 装 方 式 はスコープ 外 ) OneAPIによるオペレータ 共 通 のAPI 仕 様 を 規 定 ウィジェット ネイティブ アプリ サーバー アプリ 18
海 外 オペレータによるネットワークAPI 提 供 状 況 2007 年 頃 から 取 り 組 みを 開 始 しているキャリア(Orange Telenor Vodafone)もあり 各 社 とも 多 種 のNW-API 提 供 を 行 っているが 主 にSMS 位 置 情 報 APIが 多 く 提 供 されている 状 況 提 供 開 始 時 期 : 2007 2009 2010 2009 2009 2007 2010 2007 2007 2011 Comman nd APIs In nformation APIs Messaging Voice Monetization Other services Location Subscriber Technical features API Program Orange Partner Source: Operators, Upnext Research 2011 NTT DOCOMO, INC. All Rights Reserved. AT&T Developer Program Verizon Network Enablers Sprint Services Framework O2 Litmus Telenor Playground/ Fusion Rogers Catalyst Vodafone Betavine BT Ribbit Telefonica Blue Via SMS MMS Multi SMS Wap Push / Email Click to call Voicemail Click to conference Billing/ charging Advertising VPN access Device location Profile Contacts Presence Device features Network bearer API Pricing access 公 開 予 定 API 2008 NTT DOCOMO, INC. All rights reserved.
そろそろ 後 半 各 社 事 例 紹 介 ドコモ AT&T, Verizonを 例 として 22
23
基 地 局 を 利 用 した 位 置 情 報 API ドコモの 基 地 局 情 報 を 利 用 しおおよその 現 在 地 を 確 認 できるAPI GPSによる 位 置 測 位 に 比 べ 1 屋 内 や 地 下 でも 位 置 が 分 かる 2 短 時 間 で 位 置 が 分 かる 3 消 費 電 力 が 節 約 できる サービス 内 容 GPS 測 位 との 比 較 基 地 局 の 位 置 情 報 DCMサーバ 本 サービス 提 供 により ドコモエリア 内 なら どこで も 早 く それなりの 精 度 の 測 位 が 可 能 となるの で iモードのように 位 置 情 報 を 活 用 したサービス 提 供 が 可 能 となる コンテンツ プロバイダの アプリケーション 緯 度 経 度 エリアコード エリア 名 称 住 所 コード 住 所 テキスト 郵 便 番 号 コンテンツ プロバイダ サーバ 現 状 (GPS) 本 サービス 測 位 時 間 (5-20 秒 ) (2-3 秒 ) 消 費 電 力 屋 内 地 下 等 で の 測 位 24
基 地 局 を 利 用 した 位 置 情 報 API リクエスト/レスポンス シンプルなRESTベースのAPI 25
基 地 局 を 利 用 した 位 置 情 報 API Androidサンプルコード Androidサンプルコード //リクエストXML 生 成 xml.append("<?xml version= "1.0 " encoding= "UTF-8 "?> r n"); xml.append("<requestinfo> r n"); xml.append("<requestparam> r n"); //HTTP 接 続 処 理 DefaultHttpClient httpclient =new DefaultHttpClient( new ThreadSafeClientConnManager(httpParams, schemeregistry), httpparams); //レスポンスXML 取 得 処 理 StringBuffer body = new StringBuffer(); HttpEntity httpentity = httpresponse.getentity(); BufferedReader reader = null; if(httpentity!= null){ final InputStream inputstream = httpentity.getcontent(); reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8")); } //XMLからの 位 置 情 報 取 得 処 理 lbsresult = LbsXml.parseXml(body.toString()); 26
上 位 レイヤーAPIの 公 開 : 文 字 認 識 API 10/5より 接 続 受 付 開 始 ( 法 人 個 人 問 わず 幅 広 く 募 集 ) 12 月 よりAPI 接 続 開 始 予 定 です APIには 多 くのオプションを 用 意 しており 多 様 なサービスを 構 築 可 能 です Webサイト(http://recognize.jp)にてAPI 概 要 利 用 受 付 を 実 施 しております 画 像 文 字 認 識 基 盤 の 基 本 機 能 画 像 を 入 力 すると 含 まれる 文 字 を 認 識 して 出 力 する ドコモ サービス 提 供 者 不 適 切 語 は 言 語 辞 書 に 登 録 がないため 抽 出 されない APIの 機 能 入 力 パラメータ 設 定 画 像 中 の 単 語 の 検 出 特 定 キーワードの 検 出 出 力 データ 抽 出 単 語 画 像 中 の 単 語 位 置 スコア( 文 字 らしさ) カテゴリー 情 報 文 字 認 識 サービス 提 供 者 基 盤 サーバ 抽 出 文 字 熊 本 空 港 警 備 派 出 所 Policestation API Copyright 2011 NTT DOCOMO, Inc. All rights reserved サービス 提 供 エンドユーザ 2011 NTT DOCOMO, INC. All Rights Reserved. 2008 NTT DOCOMO, INC. All rights reserved. 27
28
ATT Foundry ATTが9 ネットワークAPIを 月 にNAPIのフルスイートを 開 発 者 に 提 供 出 した これを 用 いたアプリ 開 発 が 行 いやすい 環 境 を 提 供 3 箇 所 のFoundry 開 設 : innovation hub 開 発 者 がアプリ 開 発 する 支 援 接 点 の 拠 点 ATTのアセットへのアクセス 支 援 Palo Alto Plano, Texas Tel Aviv 開 発 ツール Network APIを 使 いやすくするHTML5のJavaScriptライブラリ パートナ Apigee (ネットワークAPI 会 社 ) Sencha (JavaScriptのツール ライブラリ) HTML5 Mobile Web App Frameworkなどのツール Amobee(モバイル 広 告 の 会 社 ) ATT 開 発 者 数 :5 万 がNAPIにアクセスしている(20 万 を 目 標 ) APIコールの 急 増 : 昨 年 は 月 間 30 万 11 年 8 月 は 月 間 3.7Billion 2012には 10Billion 目 指 す APIビジネスモデル 無 料 コール 単 位 の 課 金 Revenue Shareモデル 等 多 彩 テレビや 車 へのアプリ 展 開 時 のコアにATTがなることを 目 指 す http://www.fastcompany.com/1779967/why-att-is-opening-itself-up-to-app-developers ATT Foundryの 紹 介 ビデオ: http://www.att.com/gen/press-room?pid=21027 http://www.att.com/gen/press-room?pid=2949 /g /p oo Palo Alto Foundryプレス:http://www.attinnovationspace.com/innovation/story/a7779320 http://www.att.com/gen/press-room?pid=14209 29
提 供 中 のネットワークAPI 30
キャリア 課 金 (AT&T) ベンダーマーケットにキャリア 課 金 を 展 開 し 開 発 者 とのリベニューシェアを 確 保 AT&T Developer Summit 資 料 (2011.1) 1) 2011 NTT DOCOMO, INC. All Rights Reserved. 2008 NTT DOCOMO, INC. All rights 8 reserved.
HTML5を 中 心 とした 新 たなエコシステム 32
33
Verizon Developper Community ネットワークAPIに 関 する 各 種 技 術 情 報 SDK 配 布 開 発 者 サポート 1)SMS/MMS 2)Location 3)TerminalStatus のAPIをサポート http://developer.verizon.com/content/vdc/en/verizon-toolsapis/verizon_apis/network-api.html 34
LBS (Location) SDK 35
サンプルコード 通 信 を 意 識 しない 簡 易 なプログラミングが 可 能 Locationのトラッキングを 開 始 // start the tracking session try { LBSManager.getLocationProvider().startReceivingFixes(this); } catch (LocationException e) { // TODO Auto-generated t catch block e.printstacktrace(); } // LocationListener callbacks // this method will get called after the LocationProvider object has an updated location public void locationupdated(location location) { if (location!= null) { currentlocation = location; Coordinates center = new Coordinates(currentLocation.getLatitude(), currentlocation.getlongitude()); 位 置 が 変 更 されるとListenerをCallback 36
今 日 話 したこと 今 後 のAndroid 開 発 環 境 の 成 熟 に 期 待 OSに 依 存 しない 環 境 としてHTML5に 注 目 中 オペレータならではの 機 能 :ネットワークAPIや 課 金 APIを 提 供 して 差 別 化 を 図 りたい オペレータ 間 差 異 をなくして 広 く 使 えるAPIが 重 要 SDK,デザインパターンのサポートが 必 要 個 人 の 感 想 です 37