(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6333988
(24)【登録日】2018年5月11日
(45)【発行日】2018年5月30日
(54)【発明の名称】アプリケーションデベロッパのためのプライバシーセッティングメタデータ
(51)【国際特許分類】
G06F 21/51 20130101AFI20180521BHJP
【FI】
G06F21/51
【請求項の数】15
【全頁数】17
(21)【出願番号】特願2016-547016(P2016-547016)
(86)(22)【出願日】2015年1月15日
(65)【公表番号】特表2017-504903(P2017-504903A)
(43)【公表日】2017年2月9日
(86)【国際出願番号】US2015011635
(87)【国際公開番号】WO2015109110
(87)【国際公開日】20150723
【審査請求日】2016年11月4日
(31)【優先権主張番号】14/158,656
(32)【優先日】2014年1月17日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】グリゲラ,アレジョ
【審査官】
岸野 徹
(56)【参考文献】
【文献】
米国特許出願公開第2012/0317565(US,A1)
【文献】
米国特許第08844036(US,B1)
【文献】
特開2010−182309(JP,A)
【文献】
欧州特許出願公開第02533168(EP,A1)
【文献】
特表2014−526734(JP,A)
【文献】
竹森 敬祐 Keisuke TAKEMORI,アプリ/コンテンツ向けプライバシーポリシーの第三者検証フレームワーク Third party review framework for privacy policy of application/contents,電子情報通信学会技術研究報告 Vol.113 No.138 IEICE Technical Report,日本,一般社団法人電子情報通信学会 The Institute of Electronics,Information and Communication Engineers,2013年 7月11日,第113巻,pp.425〜432
【文献】
鈴木 富明,外6名,メタAPI:プライバシポリシに準じた機能制約を備えたAPI,コンピュータセキュリティシンポジウム2013論文集[CD−ROM],日本,一般社団法人情報処理学会,2013年10月14日,p.46-53,ISSN 1882-0840
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/51
(57)【特許請求の範囲】
【請求項1】
コンピュータによって実現される方法であって、
アプリケーションを送信するための要求をユーザから受け取ることと、
1つ以上の許可および前記1つ以上の許可に関連付けられる情報の識別を前記ユーザから要求することと、
前記アプリケーション、前記1つ以上の許可、および、前記1つ以上の許可に関連付けられる前記情報を受け取ることとを含み、前記1つ以上の許可は前記アプリケーションの1つ以上の機能に関連付けられており、前記方法はさらに、
前記アプリケーション、前記1つ以上の許可、前記1つ以上の許可に関連付けられる前記情報、および、当該アプリケーションのどのバージョンがどのユーザおよび/またはどのデバイスに対して提供されたかを示す情報、を格納することと、
別のユーザの第1のデバイスに前記アプリケーションをインストールする要求を受け取ることと、
前記アプリケーション、前記1つ以上の許可、および、前記1つ以上の許可に関連付けられる前記情報を前記第1のデバイスに提供することと、
前記1つ以上の許可に対する1つ以上の同意を前記第1のデバイスから受け取ることとを含み、前記1つ以上の同意は前記アプリケーションの前記1つ以上の機能を有効化することを示し、
前記別のユーザの第2のデバイスに前記アプリケーションをインストールするその後の要求を受け取ることを含み、前記第2のデバイスは前記第1のデバイス上に発見されない特徴を含んでおり、
前記第1のデバイスには、前記第1のデバイスの特徴に基づく第1の許可のセットが提供され、前記第2のデバイスには、前記第2のデバイスの特徴に基づく、前記第1の許可のセットとは異なる第2の許可のセットが提供される、方法。
【請求項2】
前記1つ以上の許可および前記1つ以上の許可に関連付けられる前記情報の識別を要求することは、前記1つ以上の許可および前記1つ以上の許可に関連付けられる前記情報を収集するように構成されるユーザインターフェイスを提供することを含む、請求項1に記載の方法。
【請求項3】
前記アプリケーション、前記1つ以上の許可、および、前記1つ以上の許可に関連付けられる前記情報を受け取ることは、前記1つ以上の許可および前記1つ以上の許可に関連付けられる前記情報をユーザインターフェイスから受け取ることを含む、請求項1または2に記載の方法。
【請求項4】
前記別のユーザの前記第2のデバイスに前記アプリケーションをインストールする別の要求を受け取ることと、
前記1つ以上の許可が所定の許可を含んでいないと判定することとを含み、当該判定することは、前記第2のデバイスが前記第1のデバイス上に発見されない特徴を含んでいると判定することを含み、前記特徴は前記所定の許可に関連付けられており、
前記アプリケーション、前記所定の許可、および、前記所定の許可に関連付けられる情報を提供することと、
前記所定の許可に対する同意を受け取ることとをさらに含む、請求項1から3のいずれか1項に記載の方法。
【請求項5】
前記第1のデバイスに前記アプリケーションをインストールする別の要求を受け取ることと、
前記1つ以上の許可が所定の許可を含んでいないと判定することとを含み、当該判定することは、前記所定の許可が、前記第1のデバイスに前のバージョンの前記アプリケーションを提供した後に利用可能となった前記アプリケーションの新しいバージョンに関連付けられていると判定することを含み、
前記アプリケーションと、前記所定の許可と、前記所定の許可に関連付けられる情報とを提供することと、
前記所定の許可への同意を受け取ることとをさらに含む、請求項1から4のいずれか1項に記載の方法。
【請求項6】
コンピュータに方法を実行させるためのプログラムであって、前記方法は、
アプリケーションを送信するための要求をユーザから受け取ることと、
1つ以上の許可および前記1つ以上の許可に関連付けられる情報の識別を前記ユーザから要求することと、
前記アプリケーション、前記1つ以上の許可、および、前記1つ以上の許可に関連付けられる前記情報を受け取ることとを含み、前記1つ以上の許可は前記アプリケーションの1つ以上の機能に関連付けられており、前記方法はさらに、
前記アプリケーション、前記1つ以上の許可、前記1つ以上の許可に関連付けられる前記情報、および、当該アプリケーションのどのバージョンがどのユーザおよび/またはどのデバイスに対して提供されたかを示す情報、を格納することと、
別のユーザの第1のデバイスに前記アプリケーションをインストールする要求を受け取ることと、
前記アプリケーション、前記1つ以上の許可、および、前記1つ以上の許可に関連付けられる前記情報を前記第1のデバイスに提供することと、
前記1つ以上の許可に対する1つ以上の同意を前記第1のデバイスから受け取ることとを含み、前記1つ以上の同意は、前記アプリケーションの前記1つ以上の機能を有効化することを示し、
前記別のユーザの第2のデバイスに前記アプリケーションをインストールするその後の要求を受け取ることを含み、前記第2のデバイスは前記第1のデバイス上に発見されない特徴を含んでおり、
前記第1のデバイスには、前記第1のデバイスの特徴に基づく第1の許可のセットが提供され、前記第2のデバイスには、前記第2のデバイスの特徴に基づく、前記第1の許可のセットとは異なる第2の許可のセットが提供される、プログラム。
【請求項7】
前記1つ以上の許可および前記1つ以上の許可に関連付けられる前記情報の識別を要求することは、前記1つ以上の許可および前記1つ以上の許可に関連付けられる前記情報を収集するためのユーザインターフェイスを提供することを含む、請求項6に記載のプログラム。
【請求項8】
前記アプリケーション、前記1つ以上の許可、および、前記1つ以上の許可に関連付けられる前記情報を受け取ることは、前記1つ以上の許可および前記1つ以上の許可に関連付けられる前記情報をユーザインターフェイスから受け取ることを含む、請求項6または7に記載のプログラム。
【請求項9】
前記方法は、
前記別のユーザの前記第2のデバイスに前記アプリケーションをインストールする別の要求を受け取ることと、
前記1つ以上の許可が所定の許可を含んでいないと判定することとを含み、当該判定することは、前記第2のデバイスが前記第1のデバイス上に発見されない特徴を含んでいると判定することを含み、前記特徴は前記所定の許可に関連付けられており、
前記アプリケーション、前記所定の許可、および、前記所定の許可に関連付けられる情報を提供することと、
前記所定の許可への同意を受け取ることとを行うためのコンピュータ実行可能命令をさらに含む、請求項6から8のいずれか1項に記載のプログラム。
【請求項10】
前記方法は、
前記第1のデバイスに前記アプリケーションをインストールする別の要求を受け取ることと、
前記1つ以上の許可が所定の許可を含んでいないと判定することを含み、当該判定することは、前記所定の許可が、前記第1のデバイスに前のバージョンの前記アプリケーションを提供した後に利用可能となった前記アプリケーションの新しいバージョンに関連付けられていると判定することを含み、
前記アプリケーションと、前記所定の許可と、前記所定の許可に関連付けられる情報とを提供することと、
前記所定の許可への同意を受け取ることとをさらに含む、請求項6から9のいずれか1項に記載のプログラム。
【請求項11】
ストレージとプロセッサとを含む少なくとも1つのコンピューティングデバイスであって、
アプリケーションを送信するための要求をユーザから受け取る手段と、
1つ以上の許可および前記1つ以上の許可に関連付けられる情報の識別を前記ユーザから要求する手段と、
前記アプリケーション、前記1つ以上の許可、および、前記1つ以上の許可に関連付けられる前記情報を受け取る手段とを備え、前記1つ以上の許可は前記アプリケーションの1つ以上の機能に関連付けられており、前記プロセッサはさらに、
前記アプリケーション、前記1つ以上の許可、前記1つ以上の許可に関連付けられる前記情報、および、当該アプリケーションのどのバージョンがどのユーザおよび/またはどのデバイスに対して提供されたかを示す情報、を格納する手段と、
別のユーザの第1のデバイスに前記アプリケーションをインストールする要求を受け取る手段と、
前記アプリケーション、前記1つ以上の許可、および、前記1つ以上の許可に関連付けられる前記情報を前記第1のデバイスに提供する手段と、
前記1つ以上の許可に対する1つ以上の同意を前記第1のデバイスから受け取る手段と、を備え、前記1つ以上の同意は、前記アプリケーションの前記1つ以上の機能を有効化することを示し、
前記別のユーザの第2のデバイスに前記アプリケーションをインストールするその後の要求を受け取る手段を備え、前記第2のデバイスは前記第1のデバイス上に発見されない特徴を含んでおり、
前記第1のデバイスには、前記第1のデバイスの特徴に基づく第1の許可のセットが提供され、前記第2のデバイスには、前記第2のデバイスの特徴に基づく、前記第1の許可のセットとは異なる第2の許可のセットが提供される、少なくとも1つのコンピューティングデバイス。
【請求項12】
前記1つ以上の許可および前記1つ以上の許可に関連付けられる前記情報の識別を要求する手段は、前記1つ以上の許可および前記1つ以上の許可に関連付けられる前記情報を収集するためのユーザインターフェイスを提供する手段を含む、請求項11に記載の少なくとも1つのコンピューティングデバイス。
【請求項13】
前記アプリケーション、前記1つ以上の許可、および、前記1つ以上の許可に関連付けられる前記情報を受け取る手段は、前記1つ以上の許可および前記1つ以上の許可に関連付けられる前記情報をユーザインターフェイスから受け取る、請求項11または12に記載の少なくとも1つのコンピューティングデバイス。
【請求項14】
前記プロセッサはさらに、
前記別のユーザの第2のデバイスに前記アプリケーションをインストールする別の要求を受け取る手段と、
前記1つ以上の許可が所定の許可を含んでいないと判定する手段とを備え、当該判定することは、前記第2のデバイスが前記第1のデバイス上に発見されない特徴を含んでいると判定することを含み、前記特徴は前記所定の許可に関連付けられており、
前記アプリケーションと、前記所定の許可と、前記所定の許可に関連付けられる情報とを提供する手段と、
前記所定の許可への同意を受け取る手段と、を備える、請求項11から13のいずれか1項に記載の少なくとも1つのコンピューティングデバイス。
【請求項15】
前記デバイスへ前記アプリケーションをインストールする別の要求を受け取る手段と、
前記1つ以上の許可が所定の許可を含んでいないと判定する手段とを備え、当該判定することは、前記第2のデバイスが前記第1のデバイス上に発見されない特徴を含んでいると判定することを含み、前記特徴は前記所定の許可に関連付けられており、
前記アプリケーションと、前記所定の許可と、前記所定の許可に関連付けられる情報とを提供する手段と、
前記所定の許可への同意を受け取る手段を備える、請求項11から14のいずれか1項に記載の少なくとも1つのコンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
背景
分野
本願明細書において論じられる主題は一般に、アプリケーションを提供することに関し、より特定的には、アプリケーションデベロッパのためのプライバシーセッティングメタデータに関する。
【背景技術】
【0002】
関連する背景
ソフトウェアデベロッパはたとえば、共通の関心を有するユーザ同士を関連付けるためのアプリケーション(「アプリ」とも称される)を記述または開発する。当該アプリは、ユーザ同士間の関連付けを作製するのに重要である、ユーザ名、電話番号、位置、プロファイル情報などといった、このアプリのユーザに関するさまざまなデータにアクセスする必要がある。しかしながら、デベロッパが、当該アプリをインストールするユーザになぜ当該データが必要であるかを伝え、かつ、当該データを収集および/または使用するためにユーザから意味のある許可または同意を得るメカニズムが存在しない。
【0003】
Android(登録商標)プラットフォームのような(ただしこれに限定されない)いくつかの開発プラットフォームにおいて、そのプラットフォームで提供される予め定義されたカテゴリを使用して(たとえば、Manifest.permission classを使用して)、デベロッパは、アプリケーションの機能および要件を記述し得る。アプリケーションがコンパイルされると、別個のファイル(たとえばAndroidManifest.xml)が生成される。インストールでは、アプリおよび関連するAndroidManifest.xmlの両方が存在する必要がある。開発の時にデベロッパによって選択される予め定義されたカテゴリが、当該アプリをインストールするユーザに提示される。
【0004】
しかしながら、予め定義されたカテゴリは広すぎる場合があり、当該カテゴリの一部のみが該当するということが、インストールを行うユーザに通知されることが可能ではない場合がある。たとえば、当該アプリケーションが単にスクリーンショットを撮る必要があり、当該スクリーンショットにフィルタを適用する場合でも、予め定義されたカテゴリは、当該アプリは「ウェブ上のあなたのデータのすべてにアクセスする」必要があるということを示し得、これはスクリーンショットよりも多くを含む。将来のユーザはそのような広いカテゴリによって影響を受け得、アプリケーションのインストールまたは使用を差し控え得る。
【発明の概要】
【課題を解決するための手段】
【0005】
概要
当該主題は、アプリケーションデベロッパのためのプライバシーセッティングメタデータを実現するための方法を含んでおり、当該方法は、アプリケーションを提出する要求をユーザから受け取ることと、1つ以上の許可および1つ以上の許可に関連付けられる情報の識別をユーザから要求することと、アプリケーション、1つ以上の許可、および、1つ以上の許可に関連付けられる情報を受け取ることとを含み、1つ以上の許可はアプリケーションの1つ以上の機能に関連付けられており、当該方法はさらに、アプリケーション、許可、および許可に関連付けられる情報を格納することと、別のユーザのデバイスにアプリケーションをインストールする要求を受け取ることと、アプリケーション、1つ以上の許可、および、1つ以上の許可に関連付けられる情報をデバイスに提供することと、1つ以上の許可に対する1つ以上の同意をデバイスから受け取ることとを含み、1つ以上の同意は、アプリケーションの1つ以上の機能を有効化すること(アクティベーション)を示す。
【0006】
上記方法は、1つ以上のコンピューティングデバイスおよび/またはシステムを使用して実現される。上記方法は、コンピュータ読取可能媒体に格納され得る。
【図面の簡単な説明】
【0007】
【
図1】いくつかの例示的な実現例に従った、アプリケーションがリリースされ得る例示的な環境を示す図である。
【
図2A】アプリケーションの提出のための例示的なユーザインターフェイスを示す図である。
【
図2B】アプリケーションに同意を提供するための例示的なユーザインターフェイスを示す図である。
【
図3】アプリケーションをアップロードするためのプロセス実現例の例を示す図である。
【
図4】アプリケーションをダウンロードするためのプロセス実現例の例を示す図である。
【
図5】いくつかの例示的な実現例に好適な例示的な環境を示す図である。
【
図6】いくつかの例示的な実現例において使用するのが好適である例示的なコンピューティングデバイスを有する例示的なコンピューティング環境を示す図である。
【発明を実施するための形態】
【0008】
詳細な説明
本願明細書において記載される主題は、例示的な実現例により教示される。明瞭さのために、および、主題を不明瞭にすることを回避するために、さまざまな詳細が省略されている。以下に示される例は、アプリケーションデベロッパのためのプライバシーセッティングメタデータを実現するための構造および機能に関する。
【0009】
図1は、いくつかの例示的な実現例に従った、アプリケーションがリリースされ得る例示的な環境を示す。環境100は、アプリケーション(たとえば「ジャンプ」という名称のアプリ120)を開発するか、または、そうでなければアプリユーザ160に発行もしくはリリースする少なくとも1人のアプリケーションデベロッパ110を含む。環境100において、アプリケーションは、1人以上のアプリユーザ160がアプリケーション(たとえばアプリ120)を取得またはダウンロードし得るアプリケーションディストリビュータ、ウェブサイト、または、アプリケーションストア(たとえばアプリプロバイダ130)といった仲介者を通じてリリースされ得る。
【0010】
アプリプロバイダ130にアプリケーション(たとえばアプリケーション120)をリリースするプロセスは、アプリプロバイダ130にアプリケーションを提出するようアプリデベロッパ110が(たとえばアプリプロバイダ130のウェブサイトを介して)要求を発することを含み得る(たとえば、アプリデベロッパ110はアプリケーション120を提出する前にアプリプロバイダ130にユーザとして登録され得る)。アプリプロバイダ130は、アプリデベロッパ110が情報142および144を提供するためのユーザインターフェイス(UI)140を提供し得る。情報142は、1つ以上のフィールド(たとえばファーストネーム)と、どのフィールドがアプリケーション120によって使用されるように意図されるかの説明とを含み得る。情報144は、求められるまたは要求される許可または同意を説明または識別し得る。UI140の例が
図2Aにおいて示される。
【0011】
図2Aは、アプリケーション120の提出のためにアプリデベロッパ110に提示され得る例示的なユーザインターフェイスを示す。アプリデベロッパ110がアプリケーション120を提出することを要求すると、たとえば、アプリケーション120の機能に基づいて、アプリデベロッパ110が情報210〜235を入力または提供するようにUI140がアプリプロバイダ130によって提供され得る。たとえば、説明212に記載される目的のために、アプリケーション120は、ユーザのファーストネーム(フィールド210)を使用し得るアプリケーションである。ユーザのファーストネーム(フィールド210)を使用する許可または同意は「Yes/No」タイプであり得る(たとえばユーザは、説明213に従ってユーザのファーストネームが使用されることを可能にする「Yes」か、または、同意を差し控える「No」かを示す)。同様に、フィールド220(たとえばユーザ識別子、識別またはID)についての同意および説明222のペアと、フィールド230(たとえば、カメラのようなデバイスの特徴の使用)および説明230のペアとは、「Yes/No」許可タイプである。
【0012】
いくつかの実現例では、使用ごとの許可、条件付きの許可、時間ベースの許可などといった他のタイプの同意または許可が存在し得る。たとえば、同意タイプ215、225および235を識別する情報144(
図1)はユーザごとの同意(図示せず)を含み得、これは、あるイベントが発生するごとに(たとえばユーザのファーストネームが別の新しいユーザと共有されるごとに)アプリケーション120のユーザが再び許可を求められ得ることを意味する。情報144は、条件付きの許可(図示せず)を含み得、これは、1つ以上の条件が満たされる場合のみその同意が有効であるということを意味する。情報144は、時間ベースの許可を含み得、これは、当該許可が1つ以上の時間期間内でのみ有効であるということを意味する。当該時間期間の1つ以上は、アプリデベロッパ110またはアプリケーション120のユーザによって定義され得る。
【0013】
フィールド210、220および230のラベルは、アトミックな情報(atomic information)、情報のサブカテゴリ、および/または情報のカテゴリを指し得る。本願明細書において使用されるように、「アトミックな情報」という用語は、アプリケーションによる使用に基づく最も小さな形である情報を指す。たとえば、人の名前(たとえば「名前」とラベル付けされたフィールド)は、名前フィールドを使用および/または生成する(まとめて「使用する」と称される)アプリケーションが、当該フィールドを全体として使用し、当該名前をファーストネームとラストネームといった部分に分割しなければ(すなわちこのアプリケーションが当該名前のうちファーストネームまたはラストネームのみを使用しなければ)、アトミックな情報であり得る。ユーザのファーストネームおよび/またはラストネームを使用し得る別のアプリケーションにおいて、そのアプリケーションに関する「名前」フィールドは、名前が別々に使用され得るファーストネームおよびラストネームを含むので、情報のサブカテゴリまたは情報のカテゴリであり得る。
【0014】
いくつかのフィールドにおけるアトミックな情報(たとえば、「ネットワークアクセス」および「カメラ」などとラベル付けされたフィールド)は、フィールドの説明によって定義され得る(たとえば説明212、222および/または232)。たとえば、デバイスのカメラは多くの用途を有する(たとえば、保存のために画像をキャプチャすること、光を検出すること、テキストをキャプチャすること、コードをキャプチャすることなど)。説明232は、「デバイスカメラ」のフィールド230について、限定された使用(たとえば「プロダクト識別子を読み取る」)および/またはある条件下での使用(たとえば「情報を取得」ボタンが押される場合」)を記述する。説明232は、アトミックな情報または情報のサブカテゴリとしてフィールド230を定義する。
【0015】
UI140のユーザ(たとえばアプリデベロッパ110)が提出ボタン240などを選択すると、1つ以上の許可の識別(たとえば215、225および235)および1つ以上の許可に関連付けられる情報(たとえば210、212、220、222、230および232)が、
図1のメタデータ150としてアプリプロバイダ130に送信される。メタデータ150は、許可142(たとえばP1、P2、…、Pn)および情報144(たとえばI1、I2、…、In)のデータ、または、許可142(たとえばP1、P2、…、Pn)および情報144(たとえばI1、I2、…、In)についてのデータである。アプリデベロッパ110は、更新された情報142〜144を提供するようUI140を使用し得る。たとえば、アプリケーション120の異なるバージョンは1つ以上の新しい同意を必要とし得る。アプリケーション120の新しいバージョンをアップロードすることを要求する際のアプリデベロッパ110は、アプリケーション120の新バージョンに関連付けられる更新された情報142〜144を提供し得る。
【0016】
図1を再び参照して、UI140はアプリプロバイダ130に情報メタデータ150を送る。アプリケーション120がアプリプロバイダ130に送信またはアップロードされていない場合、送信またはアップロードは、この時または任意の時(たとえばメタデータ150がアプリプロバイダ130へ送信される前、送信中、または、送信された後)になされ得る。アプリプロバイダ130は、アプリケーション120および関連付けられるメタデータ150を格納する。
【0017】
アプリプロバイダ130は、料金ありまたは料金なしでユーザに1つ以上のアプリケーションを提供するサービスプロバイダであり得る。(たとえばアプリケーション120について)料金が収集される場合、収集された料金の部分またはすべてはデベロッパ(たとえばアプリデベロッパ110)に提供され得る。将来のユーザまたは既存のユーザ(ここではアプリユーザ160として称される)は、(たとえばデバイス162にインストールするために)アプリケーション120を閲覧またはダウンロードするよう要求すると、アプリプロバイダ130は、アプリユーザ160に提示するためにメタデータ150をデバイス162に提供する。
【0018】
デバイス162は、UI165においてメタデータ150を提示し得る。
図2Bにおいて、UI165をさらに以下に記載する。同意または許可情報(たとえば
図2Aの同意タイプ215、225および235)は、アプリユーザ160がアプリユーザ160の同意または許可を提供または入力するよう、ウィジェット170(たとえば、「Yes/No」の許可のためのチェックボックス)を使用して提示され得る。デバイス162は、メタデータ150に記載されるすべての情報に同意を提供する必要がない場合がある。必要な1つ以上の同意がデバイス162によって与えられる場合(たとえば、チェックボックス170をチェックする場合)、同意175(たとえばC1、C2、…、Cn)はアプリプロバイダ130に送信すなわち送られる。アプリプロバイダ130は、すべての必要な同意が162から受け取られたことを判定し、次いで、アプリケーション120をデバイス162に(たとえばインストールのために)提供する。
【0019】
いくつかの実現例では、アプリケーション120は以前に(たとえば、メタデータ150がデバイス162へ送信されるときに)提供され得る。メタデータ150は、必要な同意を示し得る。デバイス162は、アプリケーション120をインストールする前に必要な同意がアプリユーザ160によって入力されることを判定し得る。いくつかの実現例において、アプリケーション120は、所与の同意に基づいて機能を提供し得る。たとえば、アプリケーション120の1つ以上の機能は、当該機能に関連付けられる同意が存在することまたは存在しないことに基づき、有効化または無効化され得る。
【0020】
いくつかの実現例では、アプリプロバイダ130は、どのアプリケーションおよび当該アプリケーションのどのバージョンがどのユーザおよび/またはどのデバイスに提供されたのかを示す情報を格納するデータベース155を含み得る。データベース155は、どの同意が、どのデバイス、デバイスのどの特徴リストなどについて、どのユーザによって与えられたのかを含み得る。データベース155に格納された情報は、いくつかのインストールは、その後のインストールであるか、付加的なデバイスにおけるインストールであるか、または、更新のインストールである(集合的に「その後のインストール」と称される)を判定するために使用され得る。その後のインストールでは、アプリプロバイダ130は、その後のインストールに基づくまたはその後のインストールに供されるメタデータ150のサブセットを提供し得る。
【0021】
たとえば、データベース155は、デバイス162が、以前に別のデバイス(図示せず)にアプリケーション120をインストールしたアプリユーザ160の第2のデバイスであることを示し得る。デバイス162は、別のデバイスが有していない新しい特徴(たとえば付加的なプロセッサ、異なるプロセッサ、カメラ、付加的なカメラ、通信能力などのような新しい能力)を有する。たとえば別のデバイスはカメラを有していないので、メタデータ150が別のデバイスに送られたときに、「デバイスカメラ」のフィールド230ならびに対応する説明232および同意タイプ235は別のデバイスに送られず、別のデバイスはカメラ有していないので別のデバイスのカメラの使用についてのアプリユーザ160の同意を要求するためにアプリユーザ160に提示されなかった。
【0022】
しかしながら、その後のインストール要求がアプリプロバイダ130によって受け取られ、アプリプロバイダ130がカメラを示すものを受け取るか、または、デバイス162がビルトインのカメラを有するということを判定し得ると、デバイス162へ送信されるメタデータ150は、「デバイスカメラ」のフィールド230と、対応する説明232および同意タイプ235とを含む。カメラの使用への同意が必要な場合、デバイス162にアプリケーション120がインストールされ得る前に、同意がアプリプロバイダ130に(たとえば同意175において)提供および返され、アプリケーション120が、232に記載される目的のためにデバイス162のビルトインのカメラを使用することが可能になる。
【0023】
図2Bは、アプリケーションに同意を提供するための例示的なユーザインターフェイスを示す。例示的なUI165は、1つ以上の許可に関連付けられる情報(たとえばフィールド210、220、230、ならびに説明212、222および232)としてメタデータ150を提供する。ウィジェット170は、アプリユーザ160が、ボックスをチェックするかまたはボックスをチェックしない代わりに、「Yes」ボックスまたは「No」ボックスを選択することにより入力を提供するよう、制御217、227および237として示され得る。制御250が押されると、同意175がアプリプロバイダ130へ送信される。アプリケーション120のインストールの後に、アプリユーザ160は、(たとえば、以前に与えた同意を差し控えるおよび/または新しい同意を与える)同意を管理するためにUI165を使用し得る。これにより、アプリプロバイダ130によって受け取られた際の更新された同意175は、アプリケーション120を構成するようデバイス162に提供される。たとえば、差し控えられた同意は、動作するのに当該同意を必要とする機能を無効化し得、または、差し控えられた同意が必要な同意である場合にアプリケーション120を無効化し得る。新しい同意は、動作するのに同意を必要とする機能を有効化し得る。
【0024】
図1を再び参照して、ユーザ(たとえばアプリユーザ160)は、別のデバイス182(たとえばラップトップデバイスのような、アプリケーション120が実行されるように開発されていない場合のあるデバイス)を使用して、アプリケーション120に関する情報を閲覧し、デバイスアプリケーション120について同意を提供し、および/または、たとえばリンクまたはパス190を通じてデバイス162にインストールするためにアプリケーション120を格納し得る。アプリケーション120またはアプリケーション120に関する情報についての要求がアプリプロバイダ130によってデバイス182から受け取られると、メタデータ150が提供され得る。アプリケーション120は、実現例に依存して提供され得る。
【0025】
デバイス182が、ユーザアプリユーザ160が同意を提供することを可能にするために実現される場合、UI185(たとえば、UI165と同様)がメタデータ150とともに提示され得る。同様に、ウィジェット170は、アプリプロバイダ130に送られる同意175をアプリユーザ160が入力することを可能にし得る。デバイス182にメタデータ150を提供する前に、アプリケーション120がインストールされるように意図されるデバイス162または別のデバイスを記述する入力は、アプリプロバイダ130によって要求され得る、および/または、アプリプロバイダ130に提供され得るので、メタデータ150の適切なセットがデバイス182に提供され得る(たとえば、アプリケーション120をインストールするように意図されたデバイスがカメラを有する場合、デバイスカメラに関する情報を提供し、デバイスカメラを使用する同意を収集する)。
【0026】
図3は、アプリケーションをアップロードするためのプロセス実現例の例を示す。プロセス300はたとえばブロック310〜325を含む。ブロック310では、アプリケーション(たとえばアプリケーション120)を提出する要求がユーザ(たとえばアプリデベロッパ110)から受け取られる。要求は、
図1の情報142〜144または
図2Aの情報210〜235を提供することをアプリデベロッパ110に要求する任意のトリガーであり得る。いくつかの実現例では、アプリデベロッパ110は任意の明示的な要求をする必要はなく、および/または、アプリプロバイダ130は情報142〜144を収集するために如何なるメカニズム(たとえばUI140)も提供する必要はない。アプリデベロッパ110は単純に、アプリプロバイダ130にアプリケーション120および情報142〜144を提出またはアップロードし得る。
【0027】
他の実現例では、本願明細書に記載されるように、アプリプロバイダ130は、ブロック315にて、1つ以上の許可と、当該1つ以上の許可に関連付けられる情報(たとえば
図1の情報142〜144または
図2Aの情報210〜235)との識別をアプリデベロッパ110から収集または要求するためにUI140を提供し得る。ブロック320では、アプリプロバイダ130は、アプリケーションと、1つ以上の許可と、当該1つ以上の許可に関連付けられる情報とを受け取る。いくつかの実現例では、情報142〜144とは別々に、アプリケーション120は、アプリプロバイダ130に送信またはアップロードされ得る。
【0028】
1つ以上の許可が、アプリケーション120の1つ以上の機能に関連付けられ得る。ある機能が必要な機能である場合(たとえば、当該機能を無効化または使用しないオプションがない場合)、その機能を動作するための許可または同意が必要である。必要な同意がユーザ(たとえばアプリユーザ160)に与えられない場合、(たとえばアプリプロバイダ130によって)必要な同意が与えられ受け取られるまで、アプリケーション120はダウンロードするために利用可能にならず、インストールされることが許可されず、または、実行されることが許可されない。ある機能が必要な機能でない場合(たとえば、当該機能が有効化または無効化され得る場合)、機能を動作する許可または同意の存在することまたは存在しないことによって、それぞれ当該機能を利用可能にする(有効化)または利用不可能にする(無効化)。
【0029】
ブロック325では、アプリプロバイダ130は、アプリケーションと、1つ以上の許可と、当該1つ以上の許可に関連付けられる情報とを格納し得る。いくつかの実現例では、アプリプロバイダ130は、アプリケーションを格納することなくアプリケーション120を管理し得る。たとえば、すべての必要な同意が受け取られると、アプリプロバイダ130は、アプリケーション120をアプリユーザ160に提供するよう、アプリデベロッパ110または別のパーティ(示さず)に示し得る。
【0030】
いくつかの例では、プロセス300は、異なるブロックにより実現されてもよく、より少ない数のブロックにより実現されてもよく、またはより多い数のブロックにより実現されてもよい。プロセス300は、コンピュータによって実行可能な命令として実現されてもよく、当該命令は、媒体に格納され、1つ以上のコンピューティングデバイスの1つ以上のプロセッサにロードされ、コンピュータによって実行される方法として実行されてもよい。
【0031】
図4は、アプリケーションをダウンロードするためのプロセス実現例の例を示す。プロセス400はたとえば、ブロック410〜425を含む。ブロック410では、アプリケーション(たとえばアプリケーション120)を閲覧、ダウンロード、またはインストールする要求が、たとえばアプリプロバイダ130によって受け取られる。その要求は、アプリデベロッパ110以外のユーザからのものである。
図1に記載されるように、その要求はたとえばデバイス162またはデバイス182からのものであり得る。ブロック425では、1つ以上の許可と、当該1つ以上の許可に関連付けられる情報とが、要求を行ったデバイスに提供される。ブロック420では、当該アプリケーション(たとえばアプリケーション120)が提供され得る。いくつかの実現例において、アプリケーションはブロック415にて提供され得る。ブロック425では、1つ以上の許可に対する1つ以上の同意が受け取られる。いくつかの実現例では、アプリケーションを使用する同意が受け取られるまで、アプリケーションは提供されない。必要ならば、同意は、アプリケーションを動作または使用するために提供される。1つ以上の同意が必要な同意ではないが、アプリケーションのある機能性または機能をアクティブ化または有効化するために必要な場合、これらの同意の存在によって、関連付けられる機能がオンされ得るか、アクティベートされ得るか、または、別の態様で有効化され得る。これらの同意が存在しなければ、関連付けられる機能がオフされ得るか、ディアクティベートされ得るか、または別の態様で無効化され得る。
【0032】
いくつかの例では、プロセス400は、異なるブロックにより実現されてもよく、より少ない数のブロックにより実現されてもよく、またはより多い数のブロックにより実現されてもよい。プロセス400は、コンピュータによって実行可能な命令として実現されてもよく、当該命令は、媒体に格納され、1つ以上のコンピューティングデバイスの1つ以上のプロセッサにロードされ、コンピュータによって実行される方法として実行されてもよい。
【0033】
図5は、いくつかの例示的な実現例に好適な例示的な環境を示す。環境500は、デバイス505〜545を含んでおり、各々は(たとえば有線および/または無線接続によって)たとえばネットワーク560を介して少なくとも1つの他のデバイスに通信可能に接続される。いくつかのデバイスは、1つ以上のストレージデバイス530および545に通信可能に接続され得る。
【0034】
1つ以上のデバイス505〜545の一例は、
図6において以下に記載されたコンピューティングデバイス605であり得る。デバイス505〜545は、コンピュータ505(たとえばラップトップコンピューティングデバイス)と、モバイルデバイス510(たとえばスマートフォンまたはタブレット)と、テレビ515と、車両520に関連付けられるデバイスと、サーバコンピュータ525と、コンピューティングデバイス535〜540と、ストレージデバイス530および545とを含み得るがこれらに限定されない。
【0035】
いくつかの実現例では、デバイス505〜520は、ユーザデバイス(たとえばアプリデベロッパ110および/またはアプリユーザ160によって使用されるデバイス)と考えられ得る。デバイス525〜545は、(たとえば、サービスを提供し、アプリケーションを提供し、ならびに/または、アプリケーション120、メタデータ150、レコード155、同意175などのようなアプリケーションおよびデータを格納するよう、サービスプロバイダによって使用される)サービスプロバイダに関連付けられるデバイスであり得る。デバイス525〜545は、アプリデベロッパ110および/またはアプリプロバイダ130によって使用され得る。
【0036】
たとえば、デバイス510は
図1におけるデバイス162であり得る。ユーザ(たとえばアプリユーザ160)は、1つ以上のデバイス525〜545を使用してアプリプロバイダ130からアプリケーション120を要求するようデバイス510を使用し得る。アプリプロバイダ130は、上述したように、アプリケーション120をデバイス510上でアプリユーザ160に提供し得る。
【0037】
図6は、いくつかの例示的な実現例での使用に適した例示的なコンピューティングデバイスを有する例示的なコンピューティング環境を示す。コンピューティング環境600におけるコンピューティングデバイス605は、1つ以上の処理ユニット、コアもしくはプロセッサ610、メモリ615(たとえば、RAMおよび/またはROMなど)、内部ストレージ620(たとえば、磁気ストレージ、光学式ストレージ、ソリッドステートストレージおよび/もしくはオーガニックストレージ)、ならびに/または、I/Oインターフェイス625を含み得て、それらはいずれも、情報を通信するための通信機構またはバス630上で結合されてもよく、またはコンピューティングデバイス605に組み込まれてもよい。
【0038】
コンピューティングデバイス605は、入力/ユーザインターフェイス635および出力デバイス/インターフェイス640に通信可能に結合されることができる。入力/ユーザインターフェイス635および出力デバイス/インターフェイス640のどちらか一方または両方は、有線または無線インターフェイスであってもよく、着脱可能であってもよい。入力/ユーザインターフェイス635は、入力を提供するために使用可能な、物理的なまたはバーチャルな任意の装置、構成要素、センサまたはインターフェイス(たとえば、ボタン、タッチスクリーンインターフェイス、キーボード、ポインティング/カーソル制御装置、マイクロホン、カメラ、点字、モーションセンサ、光学式読取装置など)を含み得る。出力デバイス/インターフェイス640は、ディスプレイ、テレビ、モニタ、プリンタ、スピーカ、点字などを含み得る。いくつかの例示的な実現例では、入力/ユーザインターフェイス635および出力デバイス/インターフェイス640は、コンピューティングデバイス605に組み込まれてもよく、またはコンピューティングデバイス605に物理的に結合されてもよい。他の例示的な実現例では、他のコンピューティングデバイスが、入力/ユーザインターフェイス635および出力デバイス/インターフェイス640として機能してもよく、または、入力/ユーザインターフェイス635および出力デバイス/インターフェイス640の機能をコンピューティングデバイス605に提供してもよい。
【0039】
コンピューティングデバイス605の例としては、高モバイル機器(たとえば、スマートフォン、車両および他のマシン内の装置、人間および動物によって携帯される装置など)、モバイル機器(たとえば、タブレット、ノート型パソコン、ラップトップ、パーソナルコンピュータ、携帯型テレビ、ラジオなど)、および、移動させることを考えて設計されていない装置(たとえば、デスクトップコンピュータ、他のコンピュータ、情報キオスク、1つ以上のプロセッサを組み込んだおよび/または結合させたテレビ、ラジオなど)を挙げることができるが、これらに限定されるものではない。
【0040】
コンピューティングデバイス605は、外部ストレージ645と、同一または異なる構成の1つ以上のコンピューティングデバイスを含むさまざまなネットワーク化された構成要素、装置およびシステムと通信するためのネットワーク650とに(たとえば、I/Oインターフェイス625を介して)通信可能に結合されることができる。コンピューティングデバイス605または任意の接続されたコンピューティングデバイスは、サーバ、クライアント、シンサーバ、汎用マシン、特殊用途マシン、もしくは別のラベルとして機能するものであってもよく、サーバ、クライアント、シンサーバ、汎用マシン、特殊用途マシン、もしくは別のラベルのサービスを提供するものであってもよく、または、サーバ、クライアント、シンサーバ、汎用マシン、特殊用途マシン、もしくは別のラベルと呼ばれてもよい。
【0041】
I/Oインターフェイス625は、コンピューティング環境500における少なくとも全ての接続された構成要素、装置およびネットワークに、および/または、コンピューティング環境600における少なくとも全ての接続された構成要素、装置およびネットワークから情報を通信するための任意の通信またはI/Oプロトコルまたは規格(たとえば、イーサネット(登録商標)、802.11x、ユニバーサルシステムバス、ワイマックス、モデム、セルラーネットワークプロトコルなど)を使用する有線および/または無線インターフェイスを含み得るが、これらに限定されるものではない。ネットワーク650は、任意のネットワークまたはネットワークの組み合わせ(たとえば、インターネット、ローカルエリアネットワーク、広域ネットワーク、電話ネットワーク、セルラーネットワーク、衛星ネットワークなど)であってもよい。
【0042】
コンピューティングデバイス605は、一時的な媒体および非一時的な媒体を含むコンピュータによって使用可能なまたはコンピュータ読取可能な媒体を使用することができ、および/または、コンピュータによって使用可能なまたはコンピュータ読取可能な媒体を使用して通信することができる。一時的な媒体は、伝送媒体(たとえば、金属ケーブル、光ファイバ)、信号、搬送波などを含む。非一時的な媒体は、磁気媒体(たとえば、ディスクおよびテープ)、光媒体(たとえば、CDROM、デジタルビデオディスク、ブルーレイ(登録商標)ディスク)、ソリッドステート媒体(たとえば、RAM、ROM、フラッシュメモリ、ソリッドステートストレージ)、および他の不揮発性ストレージまたはメモリを含む。
【0043】
コンピューティングデバイス605は、いくつかの例示的なコンピューティング環境において技術、方法、アプリケーション、プロセス、またはコンピュータによって実行可能な命令を実行するために使用されることができる。コンピュータによって実行可能な命令は、一時的な媒体から抽出されてもよく、非一時的な媒体に格納されて非一時的な媒体から抽出されてもよい。実行可能な命令は、任意のプログラミング言語、スクリプト言語およびマシン言語(たとえば、C、C++、C♯、Java(登録商標)、ビジュアルベーシック、パイソン、パール、JavaScript(登録商標)など)のうちの1つ以上から生成されてもよい。
【0044】
プロセッサ610は、ネイティブ環境またはバーチャル環境において、任意のオペレーティングシステム(OS)(図示せず)の下で実行し得る。論理ユニット660と、アプリケーションプログラミングインターフェイス(API)ユニット665と、入力ユニット670と、出力ユニット675と、アプリ管理部680と、許可管理部685と、デバイス管理部690と、異なるユニットが互いに通信し、OSと通信し、他のアプリケーション(図示せず)と通信するためのユニット間通信メカニズム695とを含む1つ以上のアプリケーションが展開され得る。たとえば、アプリ管理部680、許可管理部685およびデバイス管理部690は、
図1〜
図5に示され記載される1つ以上のプロセスまたはUIを実現し得る。記載されたユニットおよび要素は、設計、機能、構成または実現例において変更され得、提供された記載に限定されない。
【0045】
いくつかの例示的な実現例において、情報または実行指示がAPIユニット665によって受け取られると、当該実行指示は、1つ以上の他のユニット(たとえば論理ユニット660、入力ユニット670、出力ユニット675、アプリ管理部680、許可管理部685およびデバイス管理部690)に通信され得る。たとえば、アプリ管理部680が、入力ユニット670を通じて受け取られた情報から、アプリケーション(たとえばアプリケーション120)をアップロードする要求を検出すると、許可管理部685は、メタデータ150を収集するためにUI140を提供するようAPIユニット665によって呼び出される。デバイス管理部690は、入力ユニット670、デバイス管理部690を通じて、アプリケーション120を閲覧、ダウンロード、またはインストールする要求を受け取ると、出力675はアプリケーション120およびメタデータ150に関する情報を提供する。デバイス管理部690は、アプリケーション120をデバイスに提供する前に、同意175が受け取られるのを待機し得る。いくつかの実現例では、デバイス管理部690は、要求を行ったデバイスにアプリケーション120を提供する前に、同意175はすべての必要な同意であるということを判定し得る。
【0046】
いくつかの場合において、論理ユニット660は、上に記載されたいくつかの例示的な実現例では、ユニット同士の間での情報フローを制御し、かつ、APIユニット665、入力ユニット670、出力ユニット675、アプリ管理部680、許可管理部685およびデバイス管理部690によって提供されるサービスを指示するよう構成され得る。たとえば、論理ユニット660のみまたはAPIユニット665と共によって1つ以上のプロセスまたは実現例のフローが制御され得る。
【0047】
ここで論じられたシステムがユーザに関する個人情報を収集するか、または、個人情報を利用し得る状況において、プログラムまたは機構がユーザ情報を収集するかどうか制御する機会(たとえば、ユーザのソーシャルネットワーク、ソーシャルアクションもしくはアクティビティ、職業、ユーザのプレファレンス、または、ユーザの現在の位置に関する情報)、または、当該ユーザにより関連し得るコンテンツをコンテンツサーバから受け取るかどうかおよび/もしくは受け取る方法を制御する機会がユーザに与えられ得る。さらに、あるデータは、個人を識別可能である情報が除去されるように、格納または使用される前に1つ以上の態様で処理され得る。たとえば、個人を識別可能である情報が当該ユーザについて特定され得ないようにユーザの身元が処理され得るか、または、位置情報が得られたユーザの地理的な位置が、ユーザの特定の位置が特定され得ないように、(たとえば都市、ZIPコードまたは州レベルまで)一般化され得る。したがって、ユーザは、情報がどのようにユーザに関して収集されるか、および、コンテンツサーバによって使用されるかについて制御を有し得る。
【0048】
いくつかの例示的な実現例を図示および説明してきたが、これらの例示的な実現例は、本明細書に記載されている主題をこの分野の当業者に伝えるために提供されている。本明細書に記載されている主題は、記載されている例示的な実現例に限定されることなく、さまざまな形態で実現されてもよいということが理解されるべきである。本明細書に記載されている主題は、それらの具体的に規定もしくは記載されている事項がなくても実施可能であり、または、記載されていない他のもしくは異なる要素もしくは事項とともに実施されてもよい。添付の特許請求の範囲およびそれらの等価物に規定されている本明細書に記載の主題から逸脱することなく、これらの例示的な実現例において変更を加え得ることは、この分野の当業者によって理解されるであろう。