デバイスWebAPIコンソーシアム勉強会資料

GotAPIの概要と技術解説

2015/6/2

Copyright© 2015 NTT DOCOMO, Inc. All rights reserved1背景
現在のトレンドとしてスマートフォン等と各種デバイスの連携が注目されており、様々な事業者が取組みを進めている。
ただし、OSや開発環境に依存する状況という従来からある課題は解決されていない。
各種デバイス・ ・ ・レンズ型カメラ（Wifi）

スマートウォッチ（Bluetooth）

OSや開発環境に依存してしまう！

ヘッドマウントディスプレイ（Bluetooth/Wifi）

Wifi/Bluetoothといった通信プロトコルの違いや独自仕様への依存も課題

OS/開発環境

Android

iOS

Windows・ ・ ・

Copyright© 2015 NTT DOCOMO, Inc. All rights reserved

2

GotAPI （Generic Open Terminal API）とは・多種多様なデバイスを統一したWebインタフェースに統合
・プラグイン方式により柔軟なデバイス追加を可能にスマートフォン上で動作する
擬似的なWebAPIにより、OSに依存しない共通動作を実現

個々のデバイスの開発環境・
通信プロトコルの差異を吸収

Copyright© 2015 NTT DOCOMO, Inc. All rights reserved

3

GotAPI の規格化の経緯

スマートフォンを軸にした汎用Ｗｅｂインターフェース
としてAT&T社がOMA※に提案

23456

リリース候補版仕様がOMAにて承認
20147891011121220153▲仕様承認▲WorkItem化

ソフトバンクモバイル社、KDDI社との継続議論

45▲OMAから仕様公開

コンセプト実証デモ、仕様寄書（拡張性担保、セキュリティ対策等）▲ドコモから
OSS公開

NTTドコモではGotAPIの議論に先行して同様のコンセプトの実装を進めていたため、仕様の寄書とオープンソース公開を実施。

▲MWC Vuzix社出展▲mHealthSummit
デモヘルスケアのAPI規定 WorkItem

Got APIに基づく個別機器のAPI規定として、ヘルスケア・ウェアラブルに関するAPIの規格化が富士通アメリカ社、ZTE社等の提案によりWorkItemとして進行中。

※ Opne Mobile Alliance：携帯電話関連の標準化団体
Copyright© 2015 NTT DOCOMO, Inc. All rights reserved

4Webブラウザからの動作例

スマートライトライトのAPIを指定

色を指定

ライトのAPIを指定

色を指定

共通のコードにより“ライトを点灯する”
動作を実現

デバイスの選択

ボール型ラジコン
Copyright© 2015 NTT DOCOMO, Inc. All rights reserved

5従来のコンテンツの実現方法
・ネイティブアプリ ・・・OS、開発環境に依存・ﾊｲﾌﾞﾘｯﾄﾞｱﾌﾟﾘ
・・・制限が少ないが、機能は組み込むWebviewﾌﾚｰﾑﾜｰｸに依存し、開発言語も限られる・ブラウザ（HTML5） ・・・機能がブラウザでできる事に限られる
インターネット上のWebサイト

ハイブリッドアプリ

ネイティブ
アプリ

WebアプリWebアプリ(HTML5+Javascript)
Webアプリ(HTML5+Javascript)

Webアプリ(HTML5+Javascript)(HTML5+Javascript)

WebView

Webブラウザ

フレームワーク
任意の機能が利用可能

ライブラリ
KernelスマートフォンOS

デバイス
ネイティブ／ハイブリッドアプリ
からのデバイス利用

HTML5で規定されたデバイスAPI(JavaScript)

フレームワーク
ネイティブ
アプリ同様に任意の機能が利用可能

ライブラリ
KernelスマートフォンOS

利用できる機能がWeb
ブラウザの仕様に依存

デバイス
一般的なWebアプリ（Webブラウザ）
からのデバイス利用
Copyright© 2015 NTT DOCOMO, Inc. All rights reserved

6

GotAPIでの仕組み（Android）
・スマートフォン上で動作する仮想サーバによりIP層を経由することで、Webブラウザからでも高度な機能を実現
・アプリからも同様に利用可能
インターネット上のWebサイト

WebアプリWebアプリ(HTML5+Javascript)
Webアプリ(HTML5+Javascript)

GotAPI（ネイティブアプリ）(HTML5+Javascript)

拡張プラグインA
拡張プラグインB
拡張プラグインC

Webブラウザ

仮想サーバ

IP-NW経由で仮想サーバにアクセス

フレームワーク
ライブラリ
KernelIPネット
ワーク層

デバイスアクセス要求を各デバイスの制御命令に変換（プラグインで拡張）ネイティブ
アプリとして任意の機能が利用可能

Android OS

デバイス

Copyright© 2015 NTT DOCOMO, Inc. All rights reserved7参考：iOSの場合・iOSでは擬似的な方式もしくはハイブリッドアプリとしての実現となるが、Androidと共通のWebコンテンツが利用可能
仕組みは違うが、Webサイト上からは共通の記述で利用可能

WebサイトWebアプリWebアプリ(HTML5+Javascript)
Webアプリ(HTML5+Javascript)(HTML5+Javascript)

Webブラウザ
URLスキーム＋
WebアプリのURL

GotAPI ブラウザ
Webアプリ(HTML5+Javascript)
ブラウザUI

カスタムWebView

フレームワーク
中継・変換
拡張
HTTPポート

フレームワーク
ライブラリ
Kernel

IPネットワーク
層

iOS

デバイス

Copyright© 2015 NTT DOCOMO, Inc. All rights reserved

8Webのレイヤーで見た場合一般的なWebアプリ（Webブラウザ）からのデバイス利用

Webアプリ(HTML5+Javascript)
ドライバ/Profile相当

GotAPIでのデバイス利用

Web
アプリ

Python・
Ruby等

Web
ブラウザ

スクリプト
エンジン

ネイティ
ブアプリ

WebブラウザWebエンジン
低レイヤー
デバイスAPI規定
デバイスAPI規定（JavaScript）（JavaScript）

ドライバ/Profile

低レイヤーのドライバ

GotAPI（仮想サーバ＋REST API I/F）デバイスWebAPI（機能単位のREST API規定）

ドライバ/Profile

低レイヤーのドライバ
デバイス

デバイス

最近のWeb規格化の流れ(Extensible Web)

ある意味でｴﾝﾀｰﾌﾟﾗｲｽﾞ開発における最近のｱｰｷﾃｸﾁｬｽﾀｲﾙ
(Micro Services)に近い？
Copyright© 2015 NTT DOCOMO, Inc. All rights reserved

9WebAPIによるハードウェア機能アクセス
仮装サーバからのRESTベースのWebAPIによる機能アクセス⇒実行環境、OS環境に依存せず、個々の機器の開発環境も意識する必要がない

Copyright© 2015 NTT DOCOMO, Inc. All rights reserved

10プラグインによるWebAPI規定
・ＧｏｔＡＰＩの規定はＷｅｂインターフェースの実現についてのみ・プラグインでの任意のＡＰＩ規定により、拡張性・汎用性を担保
標準機能の規定はSDK上でなされている

各種アプリ

OMAでの規定はこの部分のみ

ＧｏｔＡＰＩ

デバイスに存在しない標準機能
はデバイス機能の組合せで実現

本体（仮想サーバ）

画面通知

標準でない機能はプラグイン内で規定して利用↓任意の機能拡張が可能プラグインSDK

プラグインSDK
加速度

ﾌﾟﾗｸﾞｲﾝ探索
セキュリティ

加速度

画面

通知
ソナー

デバイス1用プラグイン
加速度

通知(画面＋振動の組合せ）
画面
振動

デバイス2用プラグイン
加速度

画面

通知

ソナー

デバイス1用ライブラリ

デバイス2用ライブラリ

デバイス１

デバイス２

デバイス固有の特殊な機能にも対応（例：ソナー）

ソナー

Copyright© 2015 NTT DOCOMO, Inc. All rights reserved11参考：様々な観点からのセキュリティ対策も実施、標準化寄書

OMAからもWhite Paperを公開予定
Copyright© 2015 NTT DOCOMO, Inc. All rights reserved12セキュリティ対策の基本的なコンセプト
アプリストア
アプリのユニーク性をOrigin情報にドメイン名（Origin情報）

ネイティブ
アプリ

Webブラウザ
Webブラウザ・NW処理
からアクセスできる範囲

ネイティブアプリとしてアクセスできる範囲（Sandbox）

フレームワーク
ライブラリ
IPネットワーク処理・管理
KernelスマートフォンOS

ネイティブアプリとWebブラウザ・IPネットワークからアクセスできる範囲

スマートフォン上にWebインターフェースを構築することで、アプリ、Webのアクセス範囲の違いを使ったセキュリティ担保を実現
Copyright© 2015 NTT DOCOMO, Inc. All rights reserved13スマートフォンでのWebブラウザからの利用
Webの標準的な仕組みのみで、Webサイト上にGotAPI利用のための導線（アプリストアからのインストール・個々の機器設定）を提供可能⇒ プリインストールでなくても利用でき、個々の機器設定もサポート

Gclue社Webサイトから試せます

http://www.gclue.io/dwa/demo/#/

Copyright© 2015 NTT DOCOMO, Inc. All rights reserved

14参考：言葉の解説

GotAPI ≠ デバイスWebAPI

デバイスコネクトWebAPI
NTTドコモが提供するGotAPIのオープンソース実装（MITライセンス）。
実用性向上のための拡張や検証のための設定項目あり。

デバイスWebAPIマネージャ
Gclue社が提供するデバイスコネクトWebAPIをビルドして各種アプリストアで公開しているアプリケーション（デモ用のWebサイトとセット）

Copyright© 2015 NTT DOCOMO, Inc. All rights reserved

15

デバイスアクセスのためのAPI
・ＧｏｔＡＰＩの規定はＷｅｂインターフェースの実現についてのみ⇒ 基本的な機能セットはデバイスコネクトWebAPIで規定し、プラグイン開発のためのライブラリも整備

Copyright© 2015 NTT DOCOMO, Inc. All rights reserved

16ＡＰＩアクセスのデザインパターン
・One shot data ： HTTP GET/POSTでの単純アクセス
例： アクセスした瞬間の加速度センサーの値を取得（繰り返し値が欲しい場合はポーリング）
・Event driven data ： PUT/DELETE、WebSocketでのイベント処理
例： 加速度センサーの値に変化があった瞬間の値を連続的に自動取得
・Streaming data ： URIの直接参照
例： カメラ映像を要求した場合に、OSやGotAPIの内部構造を経由せずに映像リソースとしてアプリから直接利用。
シンプルで手軽なHTTPアクセスと、効率的なWebSocketによるイベント処理を両立

Copyright© 2015 NTT DOCOMO, Inc. All rights reserved

17プラグインのラインナップ
・オープンな開発環境を提供するデバイスをプラグイン化

本日の懇親会でも数社がデモ予定
Copyright© 2015 NTT DOCOMO, Inc. All rights reserved

18

まとめ
・Webの標準的な技術のみで、デバイスアクセスのためのWebインターフェースを実現、Webサイトから利用導線も用意できるのでプリインストールも不要

・仕様をOMAで標準化し、自由なライセンス（MIT）でオープンソース提供、コンテンツ開発やデバイス対応のためのSDKも整備
・シンプルで手軽なHTTPでのアクセスから、セキュリティ対策を施したWebSocketによる効率的なアクセスまで、目的に応じた機能アクセスが可能

まずはお気軽にお試しください・様々なデバイスを利用したプロトタイピング
・手軽さが求められるハッカソン、開発者イベントでの活用
・デバイス向けのWebAPI設計に向けた検討ツールとして
Copyright© 2015 NTT DOCOMO, Inc. All rights reserved

19

Copyright© 2015 NTT DOCOMO, Inc. All rights reserved20参考：MWC2015でのVuzix社デモ・スマートフォンをハブにして腕時計型の心拍数計の情報をHMDに表示
・同時にPCからHMDのカメラ映像を遠隔モニタリング

このようなデモがWeb開発の知識のみでつくれます！
Copyright© 2015 NTT DOCOMO, Inc. All rights reserved

21