(57)【特許請求の範囲】
【請求項１】
コンピュータによって実現される方法であって、
アプリケーションを送信するための要求をユーザから受け取ることと、
１つ以上の許可および前記１つ以上の許可に関連付けられる情報の識別を前記ユーザから要求することと、
前記アプリケーション、前記１つ以上の許可、および、前記１つ以上の許可に関連付けられる前記情報を受け取ることとを含み、前記１つ以上の許可は前記アプリケーションの１つ以上の機能に関連付けられており、前記方法はさらに、
前記アプリケーション、前記１つ以上の許可、前記１つ以上の許可に関連付けられる前記情報、および、当該アプリケーションのどのバージョンがどのユーザおよび／またはどのデバイスに対して提供されたかを示す情報、を格納することと、
別のユーザの第１のデバイスに前記アプリケーションをインストールする要求を受け取ることと、
前記アプリケーション、前記１つ以上の許可、および、前記１つ以上の許可に関連付けられる前記情報を前記第１のデバイスに提供することと、
前記１つ以上の許可に対する１つ以上の同意を前記第１のデバイスから受け取ることとを含み、前記１つ以上の同意は前記アプリケーションの前記１つ以上の機能を有効化することを示し、
前記別のユーザの第２のデバイスに前記アプリケーションをインストールするその後の要求を受け取ることを含み、前記第２のデバイスは前記第１のデバイス上に発見されない特徴を含んでおり、
前記第１のデバイスには、前記第１のデバイスの特徴に基づく第１の許可のセットが提供され、前記第２のデバイスには、前記第２のデバイスの特徴に基づく、前記第１の許可のセットとは異なる第２の許可のセットが提供される、方法。
【請求項２】
前記１つ以上の許可および前記１つ以上の許可に関連付けられる前記情報の識別を要求することは、前記１つ以上の許可および前記１つ以上の許可に関連付けられる前記情報を収集するように構成されるユーザインターフェイスを提供することを含む、請求項１に記載の方法。
【請求項３】
前記アプリケーション、前記１つ以上の許可、および、前記１つ以上の許可に関連付けられる前記情報を受け取ることは、前記１つ以上の許可および前記１つ以上の許可に関連付けられる前記情報をユーザインターフェイスから受け取ることを含む、請求項１または２に記載の方法。
【請求項４】
前記別のユーザの前記第２のデバイスに前記アプリケーションをインストールする別の要求を受け取ることと、
前記１つ以上の許可が所定の許可を含んでいないと判定することとを含み、当該判定することは、前記第２のデバイスが前記第１のデバイス上に発見されない特徴を含んでいると判定することを含み、前記特徴は前記所定の許可に関連付けられており、
前記アプリケーション、前記所定の許可、および、前記所定の許可に関連付けられる情報を提供することと、
前記所定の許可に対する同意を受け取ることとをさらに含む、請求項１から３のいずれか１項に記載の方法。
【請求項５】
前記第１のデバイスに前記アプリケーションをインストールする別の要求を受け取ることと、
前記１つ以上の許可が所定の許可を含んでいないと判定することとを含み、当該判定することは、前記所定の許可が、前記第１のデバイスに前のバージョンの前記アプリケーションを提供した後に利用可能となった前記アプリケーションの新しいバージョンに関連付けられていると判定することを含み、
前記アプリケーションと、前記所定の許可と、前記所定の許可に関連付けられる情報とを提供することと、
前記所定の許可への同意を受け取ることとをさらに含む、請求項１から４のいずれか１項に記載の方法。
【請求項６】
コンピュータに方法を実行させるためのプログラムであって、前記方法は、
アプリケーションを送信するための要求をユーザから受け取ることと、
１つ以上の許可および前記１つ以上の許可に関連付けられる情報の識別を前記ユーザから要求することと、
前記アプリケーション、前記１つ以上の許可、および、前記１つ以上の許可に関連付けられる前記情報を受け取ることとを含み、前記１つ以上の許可は前記アプリケーションの１つ以上の機能に関連付けられており、前記方法はさらに、
前記アプリケーション、前記１つ以上の許可、前記１つ以上の許可に関連付けられる前記情報、および、当該アプリケーションのどのバージョンがどのユーザおよび／またはどのデバイスに対して提供されたかを示す情報、を格納することと、
別のユーザの第１のデバイスに前記アプリケーションをインストールする要求を受け取ることと、
前記アプリケーション、前記１つ以上の許可、および、前記１つ以上の許可に関連付けられる前記情報を前記第１のデバイスに提供することと、
前記１つ以上の許可に対する１つ以上の同意を前記第１のデバイスから受け取ることとを含み、前記１つ以上の同意は、前記アプリケーションの前記１つ以上の機能を有効化することを示し、
前記別のユーザの第２のデバイスに前記アプリケーションをインストールするその後の要求を受け取ることを含み、前記第２のデバイスは前記第１のデバイス上に発見されない特徴を含んでおり、
前記第１のデバイスには、前記第１のデバイスの特徴に基づく第１の許可のセットが提供され、前記第２のデバイスには、前記第２のデバイスの特徴に基づく、前記第１の許可のセットとは異なる第２の許可のセットが提供される、プログラム。
【請求項７】
前記１つ以上の許可および前記１つ以上の許可に関連付けられる前記情報の識別を要求することは、前記１つ以上の許可および前記１つ以上の許可に関連付けられる前記情報を収集するためのユーザインターフェイスを提供することを含む、請求項６に記載のプログラム。
【請求項８】
前記アプリケーション、前記１つ以上の許可、および、前記１つ以上の許可に関連付けられる前記情報を受け取ることは、前記１つ以上の許可および前記１つ以上の許可に関連付けられる前記情報をユーザインターフェイスから受け取ることを含む、請求項６または７に記載のプログラム。
【請求項９】
前記方法は、
前記別のユーザの前記第２のデバイスに前記アプリケーションをインストールする別の要求を受け取ることと、
前記１つ以上の許可が所定の許可を含んでいないと判定することとを含み、当該判定することは、前記第２のデバイスが前記第１のデバイス上に発見されない特徴を含んでいると判定することを含み、前記特徴は前記所定の許可に関連付けられており、
前記アプリケーション、前記所定の許可、および、前記所定の許可に関連付けられる情報を提供することと、
前記所定の許可への同意を受け取ることとを行うためのコンピュータ実行可能命令をさらに含む、請求項６から８のいずれか１項に記載のプログラム。
【請求項１０】
前記方法は、
前記第１のデバイスに前記アプリケーションをインストールする別の要求を受け取ることと、
前記１つ以上の許可が所定の許可を含んでいないと判定することを含み、当該判定することは、前記所定の許可が、前記第１のデバイスに前のバージョンの前記アプリケーションを提供した後に利用可能となった前記アプリケーションの新しいバージョンに関連付けられていると判定することを含み、
前記アプリケーションと、前記所定の許可と、前記所定の許可に関連付けられる情報とを提供することと、
前記所定の許可への同意を受け取ることとをさらに含む、請求項６から９のいずれか１項に記載のプログラム。
【請求項１１】
ストレージとプロセッサとを含む少なくとも１つのコンピューティングデバイスであって、
アプリケーションを送信するための要求をユーザから受け取る手段と、
１つ以上の許可および前記１つ以上の許可に関連付けられる情報の識別を前記ユーザから要求する手段と、
前記アプリケーション、前記１つ以上の許可、および、前記１つ以上の許可に関連付けられる前記情報を受け取る手段とを備え、前記１つ以上の許可は前記アプリケーションの１つ以上の機能に関連付けられており、前記プロセッサはさらに、
前記アプリケーション、前記１つ以上の許可、前記１つ以上の許可に関連付けられる前記情報、および、当該アプリケーションのどのバージョンがどのユーザおよび／またはどのデバイスに対して提供されたかを示す情報、を格納する手段と、
別のユーザの第１のデバイスに前記アプリケーションをインストールする要求を受け取る手段と、
前記アプリケーション、前記１つ以上の許可、および、前記１つ以上の許可に関連付けられる前記情報を前記第１のデバイスに提供する手段と、
前記１つ以上の許可に対する１つ以上の同意を前記第１のデバイスから受け取る手段と、を備え、前記１つ以上の同意は、前記アプリケーションの前記１つ以上の機能を有効化することを示し、
前記別のユーザの第２のデバイスに前記アプリケーションをインストールするその後の要求を受け取る手段を備え、前記第２のデバイスは前記第１のデバイス上に発見されない特徴を含んでおり、
前記第１のデバイスには、前記第１のデバイスの特徴に基づく第１の許可のセットが提供され、前記第２のデバイスには、前記第２のデバイスの特徴に基づく、前記第１の許可のセットとは異なる第２の許可のセットが提供される、少なくとも１つのコンピューティングデバイス。
【請求項１２】
前記１つ以上の許可および前記１つ以上の許可に関連付けられる前記情報の識別を要求する手段は、前記１つ以上の許可および前記１つ以上の許可に関連付けられる前記情報を収集するためのユーザインターフェイスを提供する手段を含む、請求項１１に記載の少なくとも１つのコンピューティングデバイス。
【請求項１３】
前記アプリケーション、前記１つ以上の許可、および、前記１つ以上の許可に関連付けられる前記情報を受け取る手段は、前記１つ以上の許可および前記１つ以上の許可に関連付けられる前記情報をユーザインターフェイスから受け取る、請求項１１または１２に記載の少なくとも１つのコンピューティングデバイス。
【請求項１４】
前記プロセッサはさらに、
前記別のユーザの第２のデバイスに前記アプリケーションをインストールする別の要求を受け取る手段と、
前記１つ以上の許可が所定の許可を含んでいないと判定する手段とを備え、当該判定することは、前記第２のデバイスが前記第１のデバイス上に発見されない特徴を含んでいると判定することを含み、前記特徴は前記所定の許可に関連付けられており、
前記アプリケーションと、前記所定の許可と、前記所定の許可に関連付けられる情報とを提供する手段と、
前記所定の許可への同意を受け取る手段と、を備える、請求項１１から１３のいずれか１項に記載の少なくとも１つのコンピューティングデバイス。
【請求項１５】
前記デバイスへ前記アプリケーションをインストールする別の要求を受け取る手段と、
前記１つ以上の許可が所定の許可を含んでいないと判定する手段とを備え、当該判定することは、前記第２のデバイスが前記第１のデバイス上に発見されない特徴を含んでいると判定することを含み、前記特徴は前記所定の許可に関連付けられており、
前記アプリケーションと、前記所定の許可と、前記所定の許可に関連付けられる情報とを提供する手段と、
前記所定の許可への同意を受け取る手段を備える、請求項１１から１４のいずれか１項に記載の少なくとも１つのコンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
背景
分野
本願明細書において論じられる主題は一般に、アプリケーションを提供することに関し、より特定的には、アプリケーションデベロッパのためのプライバシーセッティングメタデータに関する。
【背景技術】
【０００２】
関連する背景
ソフトウェアデベロッパはたとえば、共通の関心を有するユーザ同士を関連付けるためのアプリケーション（「アプリ」とも称される）を記述または開発する。当該アプリは、ユーザ同士間の関連付けを作製するのに重要である、ユーザ名、電話番号、位置、プロファイル情報などといった、このアプリのユーザに関するさまざまなデータにアクセスする必要がある。しかしながら、デベロッパが、当該アプリをインストールするユーザになぜ当該データが必要であるかを伝え、かつ、当該データを収集および／または使用するためにユーザから意味のある許可または同意を得るメカニズムが存在しない。
【０００３】
Ａｎｄｒｏｉｄ（登録商標）プラットフォームのような（ただしこれに限定されない）いくつかの開発プラットフォームにおいて、そのプラットフォームで提供される予め定義されたカテゴリを使用して（たとえば、Manifest.permission classを使用して）、デベロッパは、アプリケーションの機能および要件を記述し得る。アプリケーションがコンパイルされると、別個のファイル（たとえばAndroidManifest.xml）が生成される。インストールでは、アプリおよび関連するAndroidManifest.xmlの両方が存在する必要がある。開発の時にデベロッパによって選択される予め定義されたカテゴリが、当該アプリをインストールするユーザに提示される。
【０００４】
しかしながら、予め定義されたカテゴリは広すぎる場合があり、当該カテゴリの一部のみが該当するということが、インストールを行うユーザに通知されることが可能ではない場合がある。たとえば、当該アプリケーションが単にスクリーンショットを撮る必要があり、当該スクリーンショットにフィルタを適用する場合でも、予め定義されたカテゴリは、当該アプリは「ウェブ上のあなたのデータのすべてにアクセスする」必要があるということを示し得、これはスクリーンショットよりも多くを含む。将来のユーザはそのような広いカテゴリによって影響を受け得、アプリケーションのインストールまたは使用を差し控え得る。
【発明の概要】
【課題を解決するための手段】
【０００５】
概要
当該主題は、アプリケーションデベロッパのためのプライバシーセッティングメタデータを実現するための方法を含んでおり、当該方法は、アプリケーションを提出する要求をユーザから受け取ることと、１つ以上の許可および１つ以上の許可に関連付けられる情報の識別をユーザから要求することと、アプリケーション、１つ以上の許可、および、１つ以上の許可に関連付けられる情報を受け取ることとを含み、１つ以上の許可はアプリケーションの１つ以上の機能に関連付けられており、当該方法はさらに、アプリケーション、許可、および許可に関連付けられる情報を格納することと、別のユーザのデバイスにアプリケーションをインストールする要求を受け取ることと、アプリケーション、１つ以上の許可、および、１つ以上の許可に関連付けられる情報をデバイスに提供することと、１つ以上の許可に対する１つ以上の同意をデバイスから受け取ることとを含み、１つ以上の同意は、アプリケーションの１つ以上の機能を有効化すること（アクティベーション）を示す。
【０００６】
上記方法は、１つ以上のコンピューティングデバイスおよび／またはシステムを使用して実現される。上記方法は、コンピュータ読取可能媒体に格納され得る。
【図面の簡単な説明】
【０００７】
【図１】いくつかの例示的な実現例に従った、アプリケーションがリリースされ得る例示的な環境を示す図である。
【図２Ａ】アプリケーションの提出のための例示的なユーザインターフェイスを示す図である。
【図２Ｂ】アプリケーションに同意を提供するための例示的なユーザインターフェイスを示す図である。
【図３】アプリケーションをアップロードするためのプロセス実現例の例を示す図である。
【図４】アプリケーションをダウンロードするためのプロセス実現例の例を示す図である。
【図５】いくつかの例示的な実現例に好適な例示的な環境を示す図である。
【図６】いくつかの例示的な実現例において使用するのが好適である例示的なコンピューティングデバイスを有する例示的なコンピューティング環境を示す図である。
【発明を実施するための形態】
【０００８】
詳細な説明
本願明細書において記載される主題は、例示的な実現例により教示される。明瞭さのために、および、主題を不明瞭にすることを回避するために、さまざまな詳細が省略されている。以下に示される例は、アプリケーションデベロッパのためのプライバシーセッティングメタデータを実現するための構造および機能に関する。
【０００９】
図１は、いくつかの例示的な実現例に従った、アプリケーションがリリースされ得る例示的な環境を示す。環境１００は、アプリケーション（たとえば「ジャンプ」という名称のアプリ１２０）を開発するか、または、そうでなければアプリユーザ１６０に発行もしくはリリースする少なくとも１人のアプリケーションデベロッパ１１０を含む。環境１００において、アプリケーションは、１人以上のアプリユーザ１６０がアプリケーション（たとえばアプリ１２０）を取得またはダウンロードし得るアプリケーションディストリビュータ、ウェブサイト、または、アプリケーションストア（たとえばアプリプロバイダ１３０）といった仲介者を通じてリリースされ得る。
【００１０】
アプリプロバイダ１３０にアプリケーション（たとえばアプリケーション１２０）をリリースするプロセスは、アプリプロバイダ１３０にアプリケーションを提出するようアプリデベロッパ１１０が（たとえばアプリプロバイダ１３０のウェブサイトを介して）要求を発することを含み得る（たとえば、アプリデベロッパ１１０はアプリケーション１２０を提出する前にアプリプロバイダ１３０にユーザとして登録され得る）。アプリプロバイダ１３０は、アプリデベロッパ１１０が情報１４２および１４４を提供するためのユーザインターフェイス（ＵＩ）１４０を提供し得る。情報１４２は、１つ以上のフィールド（たとえばファーストネーム）と、どのフィールドがアプリケーション１２０によって使用されるように意図されるかの説明とを含み得る。情報１４４は、求められるまたは要求される許可または同意を説明または識別し得る。ＵＩ１４０の例が図２Ａにおいて示される。
【００１１】
図２Ａは、アプリケーション１２０の提出のためにアプリデベロッパ１１０に提示され得る例示的なユーザインターフェイスを示す。アプリデベロッパ１１０がアプリケーション１２０を提出することを要求すると、たとえば、アプリケーション１２０の機能に基づいて、アプリデベロッパ１１０が情報２１０〜２３５を入力または提供するようにＵＩ１４０がアプリプロバイダ１３０によって提供され得る。たとえば、説明２１２に記載される目的のために、アプリケーション１２０は、ユーザのファーストネーム（フィールド２１０）を使用し得るアプリケーションである。ユーザのファーストネーム（フィールド２１０）を使用する許可または同意は「Ｙｅｓ／Ｎｏ」タイプであり得る（たとえばユーザは、説明２１３に従ってユーザのファーストネームが使用されることを可能にする「Ｙｅｓ」か、または、同意を差し控える「Ｎｏ」かを示す）。同様に、フィールド２２０（たとえばユーザ識別子、識別またはＩＤ）についての同意および説明２２２のペアと、フィールド２３０（たとえば、カメラのようなデバイスの特徴の使用）および説明２３０のペアとは、「Ｙｅｓ／Ｎｏ」許可タイプである。
【００１２】
いくつかの実現例では、使用ごとの許可、条件付きの許可、時間ベースの許可などといった他のタイプの同意または許可が存在し得る。たとえば、同意タイプ２１５、２２５および２３５を識別する情報１４４（図１）はユーザごとの同意（図示せず）を含み得、これは、あるイベントが発生するごとに（たとえばユーザのファーストネームが別の新しいユーザと共有されるごとに）アプリケーション１２０のユーザが再び許可を求められ得ることを意味する。情報１４４は、条件付きの許可（図示せず）を含み得、これは、１つ以上の条件が満たされる場合のみその同意が有効であるということを意味する。情報１４４は、時間ベースの許可を含み得、これは、当該許可が１つ以上の時間期間内でのみ有効であるということを意味する。当該時間期間の１つ以上は、アプリデベロッパ１１０またはアプリケーション１２０のユーザによって定義され得る。
【００１３】
フィールド２１０、２２０および２３０のラベルは、アトミックな情報（atomic information）、情報のサブカテゴリ、および／または情報のカテゴリを指し得る。本願明細書において使用されるように、「アトミックな情報」という用語は、アプリケーションによる使用に基づく最も小さな形である情報を指す。たとえば、人の名前（たとえば「名前」とラベル付けされたフィールド）は、名前フィールドを使用および／または生成する（まとめて「使用する」と称される）アプリケーションが、当該フィールドを全体として使用し、当該名前をファーストネームとラストネームといった部分に分割しなければ（すなわちこのアプリケーションが当該名前のうちファーストネームまたはラストネームのみを使用しなければ）、アトミックな情報であり得る。ユーザのファーストネームおよび／またはラストネームを使用し得る別のアプリケーションにおいて、そのアプリケーションに関する「名前」フィールドは、名前が別々に使用され得るファーストネームおよびラストネームを含むので、情報のサブカテゴリまたは情報のカテゴリであり得る。
【００１４】
いくつかのフィールドにおけるアトミックな情報（たとえば、「ネットワークアクセス」および「カメラ」などとラベル付けされたフィールド）は、フィールドの説明によって定義され得る（たとえば説明２１２、２２２および／または２３２）。たとえば、デバイスのカメラは多くの用途を有する（たとえば、保存のために画像をキャプチャすること、光を検出すること、テキストをキャプチャすること、コードをキャプチャすることなど）。説明２３２は、「デバイスカメラ」のフィールド２３０について、限定された使用（たとえば「プロダクト識別子を読み取る」）および／またはある条件下での使用（たとえば「情報を取得」ボタンが押される場合」）を記述する。説明２３２は、アトミックな情報または情報のサブカテゴリとしてフィールド２３０を定義する。
【００１５】
ＵＩ１４０のユーザ（たとえばアプリデベロッパ１１０）が提出ボタン２４０などを選択すると、１つ以上の許可の識別（たとえば２１５、２２５および２３５）および１つ以上の許可に関連付けられる情報（たとえば２１０、２１２、２２０、２２２、２３０および２３２）が、図１のメタデータ１５０としてアプリプロバイダ１３０に送信される。メタデータ１５０は、許可１４２（たとえばＰ１、Ｐ２、…、Ｐｎ）および情報１４４（たとえばＩ１、Ｉ２、…、Ｉｎ）のデータ、または、許可１４２（たとえばＰ１、Ｐ２、…、Ｐｎ）および情報１４４（たとえばＩ１、Ｉ２、…、Ｉｎ）についてのデータである。アプリデベロッパ１１０は、更新された情報１４２〜１４４を提供するようＵＩ１４０を使用し得る。たとえば、アプリケーション１２０の異なるバージョンは１つ以上の新しい同意を必要とし得る。アプリケーション１２０の新しいバージョンをアップロードすることを要求する際のアプリデベロッパ１１０は、アプリケーション１２０の新バージョンに関連付けられる更新された情報１４２〜１４４を提供し得る。
【００１６】
図１を再び参照して、ＵＩ１４０はアプリプロバイダ１３０に情報メタデータ１５０を送る。アプリケーション１２０がアプリプロバイダ１３０に送信またはアップロードされていない場合、送信またはアップロードは、この時または任意の時（たとえばメタデータ１５０がアプリプロバイダ１３０へ送信される前、送信中、または、送信された後）になされ得る。アプリプロバイダ１３０は、アプリケーション１２０および関連付けられるメタデータ１５０を格納する。
【００１７】
アプリプロバイダ１３０は、料金ありまたは料金なしでユーザに１つ以上のアプリケーションを提供するサービスプロバイダであり得る。（たとえばアプリケーション１２０について）料金が収集される場合、収集された料金の部分またはすべてはデベロッパ（たとえばアプリデベロッパ１１０）に提供され得る。将来のユーザまたは既存のユーザ（ここではアプリユーザ１６０として称される）は、（たとえばデバイス１６２にインストールするために）アプリケーション１２０を閲覧またはダウンロードするよう要求すると、アプリプロバイダ１３０は、アプリユーザ１６０に提示するためにメタデータ１５０をデバイス１６２に提供する。
【００１８】
デバイス１６２は、ＵＩ１６５においてメタデータ１５０を提示し得る。図２Ｂにおいて、ＵＩ１６５をさらに以下に記載する。同意または許可情報（たとえば図２Ａの同意タイプ２１５、２２５および２３５）は、アプリユーザ１６０がアプリユーザ１６０の同意または許可を提供または入力するよう、ウィジェット１７０（たとえば、「Ｙｅｓ／Ｎｏ」の許可のためのチェックボックス）を使用して提示され得る。デバイス１６２は、メタデータ１５０に記載されるすべての情報に同意を提供する必要がない場合がある。必要な１つ以上の同意がデバイス１６２によって与えられる場合（たとえば、チェックボックス１７０をチェックする場合）、同意１７５（たとえばＣ１、Ｃ２、…、Ｃｎ）はアプリプロバイダ１３０に送信すなわち送られる。アプリプロバイダ１３０は、すべての必要な同意が１６２から受け取られたことを判定し、次いで、アプリケーション１２０をデバイス１６２に（たとえばインストールのために）提供する。
【００１９】
いくつかの実現例では、アプリケーション１２０は以前に（たとえば、メタデータ１５０がデバイス１６２へ送信されるときに）提供され得る。メタデータ１５０は、必要な同意を示し得る。デバイス１６２は、アプリケーション１２０をインストールする前に必要な同意がアプリユーザ１６０によって入力されることを判定し得る。いくつかの実現例において、アプリケーション１２０は、所与の同意に基づいて機能を提供し得る。たとえば、アプリケーション１２０の１つ以上の機能は、当該機能に関連付けられる同意が存在することまたは存在しないことに基づき、有効化または無効化され得る。
【００２０】
いくつかの実現例では、アプリプロバイダ１３０は、どのアプリケーションおよび当該アプリケーションのどのバージョンがどのユーザおよび／またはどのデバイスに提供されたのかを示す情報を格納するデータベース１５５を含み得る。データベース１５５は、どの同意が、どのデバイス、デバイスのどの特徴リストなどについて、どのユーザによって与えられたのかを含み得る。データベース１５５に格納された情報は、いくつかのインストールは、その後のインストールであるか、付加的なデバイスにおけるインストールであるか、または、更新のインストールである（集合的に「その後のインストール」と称される）を判定するために使用され得る。その後のインストールでは、アプリプロバイダ１３０は、その後のインストールに基づくまたはその後のインストールに供されるメタデータ１５０のサブセットを提供し得る。
【００２１】
たとえば、データベース１５５は、デバイス１６２が、以前に別のデバイス（図示せず）にアプリケーション１２０をインストールしたアプリユーザ１６０の第２のデバイスであることを示し得る。デバイス１６２は、別のデバイスが有していない新しい特徴（たとえば付加的なプロセッサ、異なるプロセッサ、カメラ、付加的なカメラ、通信能力などのような新しい能力）を有する。たとえば別のデバイスはカメラを有していないので、メタデータ１５０が別のデバイスに送られたときに、「デバイスカメラ」のフィールド２３０ならびに対応する説明２３２および同意タイプ２３５は別のデバイスに送られず、別のデバイスはカメラ有していないので別のデバイスのカメラの使用についてのアプリユーザ１６０の同意を要求するためにアプリユーザ１６０に提示されなかった。
【００２２】
しかしながら、その後のインストール要求がアプリプロバイダ１３０によって受け取られ、アプリプロバイダ１３０がカメラを示すものを受け取るか、または、デバイス１６２がビルトインのカメラを有するということを判定し得ると、デバイス１６２へ送信されるメタデータ１５０は、「デバイスカメラ」のフィールド２３０と、対応する説明２３２および同意タイプ２３５とを含む。カメラの使用への同意が必要な場合、デバイス１６２にアプリケーション１２０がインストールされ得る前に、同意がアプリプロバイダ１３０に（たとえば同意１７５において）提供および返され、アプリケーション１２０が、２３２に記載される目的のためにデバイス１６２のビルトインのカメラを使用することが可能になる。
【００２３】
図２Ｂは、アプリケーションに同意を提供するための例示的なユーザインターフェイスを示す。例示的なＵＩ１６５は、１つ以上の許可に関連付けられる情報（たとえばフィールド２１０、２２０、２３０、ならびに説明２１２、２２２および２３２）としてメタデータ１５０を提供する。ウィジェット１７０は、アプリユーザ１６０が、ボックスをチェックするかまたはボックスをチェックしない代わりに、「Ｙｅｓ」ボックスまたは「Ｎｏ」ボックスを選択することにより入力を提供するよう、制御２１７、２２７および２３７として示され得る。制御２５０が押されると、同意１７５がアプリプロバイダ１３０へ送信される。アプリケーション１２０のインストールの後に、アプリユーザ１６０は、（たとえば、以前に与えた同意を差し控えるおよび／または新しい同意を与える）同意を管理するためにＵＩ１６５を使用し得る。これにより、アプリプロバイダ１３０によって受け取られた際の更新された同意１７５は、アプリケーション１２０を構成するようデバイス１６２に提供される。たとえば、差し控えられた同意は、動作するのに当該同意を必要とする機能を無効化し得、または、差し控えられた同意が必要な同意である場合にアプリケーション１２０を無効化し得る。新しい同意は、動作するのに同意を必要とする機能を有効化し得る。
【００２４】
図１を再び参照して、ユーザ（たとえばアプリユーザ１６０）は、別のデバイス１８２（たとえばラップトップデバイスのような、アプリケーション１２０が実行されるように開発されていない場合のあるデバイス）を使用して、アプリケーション１２０に関する情報を閲覧し、デバイスアプリケーション１２０について同意を提供し、および／または、たとえばリンクまたはパス１９０を通じてデバイス１６２にインストールするためにアプリケーション１２０を格納し得る。アプリケーション１２０またはアプリケーション１２０に関する情報についての要求がアプリプロバイダ１３０によってデバイス１８２から受け取られると、メタデータ１５０が提供され得る。アプリケーション１２０は、実現例に依存して提供され得る。
【００２５】
デバイス１８２が、ユーザアプリユーザ１６０が同意を提供することを可能にするために実現される場合、ＵＩ１８５（たとえば、ＵＩ１６５と同様）がメタデータ１５０とともに提示され得る。同様に、ウィジェット１７０は、アプリプロバイダ１３０に送られる同意１７５をアプリユーザ１６０が入力することを可能にし得る。デバイス１８２にメタデータ１５０を提供する前に、アプリケーション１２０がインストールされるように意図されるデバイス１６２または別のデバイスを記述する入力は、アプリプロバイダ１３０によって要求され得る、および／または、アプリプロバイダ１３０に提供され得るので、メタデータ１５０の適切なセットがデバイス１８２に提供され得る（たとえば、アプリケーション１２０をインストールするように意図されたデバイスがカメラを有する場合、デバイスカメラに関する情報を提供し、デバイスカメラを使用する同意を収集する）。
【００２６】
図３は、アプリケーションをアップロードするためのプロセス実現例の例を示す。プロセス３００はたとえばブロック３１０〜３２５を含む。ブロック３１０では、アプリケーション（たとえばアプリケーション１２０）を提出する要求がユーザ（たとえばアプリデベロッパ１１０）から受け取られる。要求は、図１の情報１４２〜１４４または図２Ａの情報２１０〜２３５を提供することをアプリデベロッパ１１０に要求する任意のトリガーであり得る。いくつかの実現例では、アプリデベロッパ１１０は任意の明示的な要求をする必要はなく、および／または、アプリプロバイダ１３０は情報１４２〜１４４を収集するために如何なるメカニズム（たとえばＵＩ１４０）も提供する必要はない。アプリデベロッパ１１０は単純に、アプリプロバイダ１３０にアプリケーション１２０および情報１４２〜１４４を提出またはアップロードし得る。
【００２７】
他の実現例では、本願明細書に記載されるように、アプリプロバイダ１３０は、ブロック３１５にて、１つ以上の許可と、当該１つ以上の許可に関連付けられる情報（たとえば図１の情報１４２〜１４４または図２Ａの情報２１０〜２３５）との識別をアプリデベロッパ１１０から収集または要求するためにＵＩ１４０を提供し得る。ブロック３２０では、アプリプロバイダ１３０は、アプリケーションと、１つ以上の許可と、当該１つ以上の許可に関連付けられる情報とを受け取る。いくつかの実現例では、情報１４２〜１４４とは別々に、アプリケーション１２０は、アプリプロバイダ１３０に送信またはアップロードされ得る。
【００２８】
１つ以上の許可が、アプリケーション１２０の１つ以上の機能に関連付けられ得る。ある機能が必要な機能である場合（たとえば、当該機能を無効化または使用しないオプションがない場合）、その機能を動作するための許可または同意が必要である。必要な同意がユーザ（たとえばアプリユーザ１６０）に与えられない場合、（たとえばアプリプロバイダ１３０によって）必要な同意が与えられ受け取られるまで、アプリケーション１２０はダウンロードするために利用可能にならず、インストールされることが許可されず、または、実行されることが許可されない。ある機能が必要な機能でない場合（たとえば、当該機能が有効化または無効化され得る場合）、機能を動作する許可または同意の存在することまたは存在しないことによって、それぞれ当該機能を利用可能にする（有効化）または利用不可能にする（無効化）。
【００２９】
ブロック３２５では、アプリプロバイダ１３０は、アプリケーションと、１つ以上の許可と、当該１つ以上の許可に関連付けられる情報とを格納し得る。いくつかの実現例では、アプリプロバイダ１３０は、アプリケーションを格納することなくアプリケーション１２０を管理し得る。たとえば、すべての必要な同意が受け取られると、アプリプロバイダ１３０は、アプリケーション１２０をアプリユーザ１６０に提供するよう、アプリデベロッパ１１０または別のパーティ（示さず）に示し得る。
【００３０】
いくつかの例では、プロセス３００は、異なるブロックにより実現されてもよく、より少ない数のブロックにより実現されてもよく、またはより多い数のブロックにより実現されてもよい。プロセス３００は、コンピュータによって実行可能な命令として実現されてもよく、当該命令は、媒体に格納され、１つ以上のコンピューティングデバイスの１つ以上のプロセッサにロードされ、コンピュータによって実行される方法として実行されてもよい。
【００３１】
図４は、アプリケーションをダウンロードするためのプロセス実現例の例を示す。プロセス４００はたとえば、ブロック４１０〜４２５を含む。ブロック４１０では、アプリケーション（たとえばアプリケーション１２０）を閲覧、ダウンロード、またはインストールする要求が、たとえばアプリプロバイダ１３０によって受け取られる。その要求は、アプリデベロッパ１１０以外のユーザからのものである。図１に記載されるように、その要求はたとえばデバイス１６２またはデバイス１８２からのものであり得る。ブロック４２５では、１つ以上の許可と、当該１つ以上の許可に関連付けられる情報とが、要求を行ったデバイスに提供される。ブロック４２０では、当該アプリケーション（たとえばアプリケーション１２０）が提供され得る。いくつかの実現例において、アプリケーションはブロック４１５にて提供され得る。ブロック４２５では、１つ以上の許可に対する１つ以上の同意が受け取られる。いくつかの実現例では、アプリケーションを使用する同意が受け取られるまで、アプリケーションは提供されない。必要ならば、同意は、アプリケーションを動作または使用するために提供される。１つ以上の同意が必要な同意ではないが、アプリケーションのある機能性または機能をアクティブ化または有効化するために必要な場合、これらの同意の存在によって、関連付けられる機能がオンされ得るか、アクティベートされ得るか、または、別の態様で有効化され得る。これらの同意が存在しなければ、関連付けられる機能がオフされ得るか、ディアクティベートされ得るか、または別の態様で無効化され得る。
【００３２】
いくつかの例では、プロセス４００は、異なるブロックにより実現されてもよく、より少ない数のブロックにより実現されてもよく、またはより多い数のブロックにより実現されてもよい。プロセス４００は、コンピュータによって実行可能な命令として実現されてもよく、当該命令は、媒体に格納され、１つ以上のコンピューティングデバイスの１つ以上のプロセッサにロードされ、コンピュータによって実行される方法として実行されてもよい。
【００３３】
図５は、いくつかの例示的な実現例に好適な例示的な環境を示す。環境５００は、デバイス５０５〜５４５を含んでおり、各々は（たとえば有線および／または無線接続によって）たとえばネットワーク５６０を介して少なくとも１つの他のデバイスに通信可能に接続される。いくつかのデバイスは、１つ以上のストレージデバイス５３０および５４５に通信可能に接続され得る。
【００３４】
１つ以上のデバイス５０５〜５４５の一例は、図６において以下に記載されたコンピューティングデバイス６０５であり得る。デバイス５０５〜５４５は、コンピュータ５０５（たとえばラップトップコンピューティングデバイス）と、モバイルデバイス５１０（たとえばスマートフォンまたはタブレット）と、テレビ５１５と、車両５２０に関連付けられるデバイスと、サーバコンピュータ５２５と、コンピューティングデバイス５３５〜５４０と、ストレージデバイス５３０および５４５とを含み得るがこれらに限定されない。
【００３５】
いくつかの実現例では、デバイス５０５〜５２０は、ユーザデバイス（たとえばアプリデベロッパ１１０および／またはアプリユーザ１６０によって使用されるデバイス）と考えられ得る。デバイス５２５〜５４５は、（たとえば、サービスを提供し、アプリケーションを提供し、ならびに／または、アプリケーション１２０、メタデータ１５０、レコード１５５、同意１７５などのようなアプリケーションおよびデータを格納するよう、サービスプロバイダによって使用される）サービスプロバイダに関連付けられるデバイスであり得る。デバイス５２５〜５４５は、アプリデベロッパ１１０および／またはアプリプロバイダ１３０によって使用され得る。
【００３６】
たとえば、デバイス５１０は図１におけるデバイス１６２であり得る。ユーザ（たとえばアプリユーザ１６０）は、１つ以上のデバイス５２５〜５４５を使用してアプリプロバイダ１３０からアプリケーション１２０を要求するようデバイス５１０を使用し得る。アプリプロバイダ１３０は、上述したように、アプリケーション１２０をデバイス５１０上でアプリユーザ１６０に提供し得る。
【００３７】
図６は、いくつかの例示的な実現例での使用に適した例示的なコンピューティングデバイスを有する例示的なコンピューティング環境を示す。コンピューティング環境６００におけるコンピューティングデバイス６０５は、１つ以上の処理ユニット、コアもしくはプロセッサ６１０、メモリ６１５（たとえば、ＲＡＭおよび／またはＲＯＭなど）、内部ストレージ６２０（たとえば、磁気ストレージ、光学式ストレージ、ソリッドステートストレージおよび／もしくはオーガニックストレージ）、ならびに／または、Ｉ／Ｏインターフェイス６２５を含み得て、それらはいずれも、情報を通信するための通信機構またはバス６３０上で結合されてもよく、またはコンピューティングデバイス６０５に組み込まれてもよい。
【００３８】
コンピューティングデバイス６０５は、入力／ユーザインターフェイス６３５および出力デバイス／インターフェイス６４０に通信可能に結合されることができる。入力／ユーザインターフェイス６３５および出力デバイス／インターフェイス６４０のどちらか一方または両方は、有線または無線インターフェイスであってもよく、着脱可能であってもよい。入力／ユーザインターフェイス６３５は、入力を提供するために使用可能な、物理的なまたはバーチャルな任意の装置、構成要素、センサまたはインターフェイス（たとえば、ボタン、タッチスクリーンインターフェイス、キーボード、ポインティング／カーソル制御装置、マイクロホン、カメラ、点字、モーションセンサ、光学式読取装置など）を含み得る。出力デバイス／インターフェイス６４０は、ディスプレイ、テレビ、モニタ、プリンタ、スピーカ、点字などを含み得る。いくつかの例示的な実現例では、入力／ユーザインターフェイス６３５および出力デバイス／インターフェイス６４０は、コンピューティングデバイス６０５に組み込まれてもよく、またはコンピューティングデバイス６０５に物理的に結合されてもよい。他の例示的な実現例では、他のコンピューティングデバイスが、入力／ユーザインターフェイス６３５および出力デバイス／インターフェイス６４０として機能してもよく、または、入力／ユーザインターフェイス６３５および出力デバイス／インターフェイス６４０の機能をコンピューティングデバイス６０５に提供してもよい。
【００３９】
コンピューティングデバイス６０５の例としては、高モバイル機器（たとえば、スマートフォン、車両および他のマシン内の装置、人間および動物によって携帯される装置など）、モバイル機器（たとえば、タブレット、ノート型パソコン、ラップトップ、パーソナルコンピュータ、携帯型テレビ、ラジオなど）、および、移動させることを考えて設計されていない装置（たとえば、デスクトップコンピュータ、他のコンピュータ、情報キオスク、１つ以上のプロセッサを組み込んだおよび／または結合させたテレビ、ラジオなど）を挙げることができるが、これらに限定されるものではない。
【００４０】
コンピューティングデバイス６０５は、外部ストレージ６４５と、同一または異なる構成の１つ以上のコンピューティングデバイスを含むさまざまなネットワーク化された構成要素、装置およびシステムと通信するためのネットワーク６５０とに（たとえば、Ｉ／Ｏインターフェイス６２５を介して）通信可能に結合されることができる。コンピューティングデバイス６０５または任意の接続されたコンピューティングデバイスは、サーバ、クライアント、シンサーバ、汎用マシン、特殊用途マシン、もしくは別のラベルとして機能するものであってもよく、サーバ、クライアント、シンサーバ、汎用マシン、特殊用途マシン、もしくは別のラベルのサービスを提供するものであってもよく、または、サーバ、クライアント、シンサーバ、汎用マシン、特殊用途マシン、もしくは別のラベルと呼ばれてもよい。
【００４１】
Ｉ／Ｏインターフェイス６２５は、コンピューティング環境５００における少なくとも全ての接続された構成要素、装置およびネットワークに、および／または、コンピューティング環境６００における少なくとも全ての接続された構成要素、装置およびネットワークから情報を通信するための任意の通信またはＩ／Ｏプロトコルまたは規格（たとえば、イーサネット（登録商標）、８０２．１１ｘ、ユニバーサルシステムバス、ワイマックス、モデム、セルラーネットワークプロトコルなど）を使用する有線および／または無線インターフェイスを含み得るが、これらに限定されるものではない。ネットワーク６５０は、任意のネットワークまたはネットワークの組み合わせ（たとえば、インターネット、ローカルエリアネットワーク、広域ネットワーク、電話ネットワーク、セルラーネットワーク、衛星ネットワークなど）であってもよい。
【００４２】
コンピューティングデバイス６０５は、一時的な媒体および非一時的な媒体を含むコンピュータによって使用可能なまたはコンピュータ読取可能な媒体を使用することができ、および／または、コンピュータによって使用可能なまたはコンピュータ読取可能な媒体を使用して通信することができる。一時的な媒体は、伝送媒体（たとえば、金属ケーブル、光ファイバ）、信号、搬送波などを含む。非一時的な媒体は、磁気媒体（たとえば、ディスクおよびテープ）、光媒体（たとえば、ＣＤＲＯＭ、デジタルビデオディスク、ブルーレイ（登録商標）ディスク）、ソリッドステート媒体（たとえば、ＲＡＭ、ＲＯＭ、フラッシュメモリ、ソリッドステートストレージ）、および他の不揮発性ストレージまたはメモリを含む。
【００４３】
コンピューティングデバイス６０５は、いくつかの例示的なコンピューティング環境において技術、方法、アプリケーション、プロセス、またはコンピュータによって実行可能な命令を実行するために使用されることができる。コンピュータによって実行可能な命令は、一時的な媒体から抽出されてもよく、非一時的な媒体に格納されて非一時的な媒体から抽出されてもよい。実行可能な命令は、任意のプログラミング言語、スクリプト言語およびマシン言語（たとえば、Ｃ、Ｃ＋＋、Ｃ♯、Ｊａｖａ（登録商標）、ビジュアルベーシック、パイソン、パール、ＪａｖａＳｃｒｉｐｔ（登録商標）など）のうちの１つ以上から生成されてもよい。
【００４４】
プロセッサ６１０は、ネイティブ環境またはバーチャル環境において、任意のオペレーティングシステム（ＯＳ）（図示せず）の下で実行し得る。論理ユニット６６０と、アプリケーションプログラミングインターフェイス（ＡＰＩ）ユニット６６５と、入力ユニット６７０と、出力ユニット６７５と、アプリ管理部６８０と、許可管理部６８５と、デバイス管理部６９０と、異なるユニットが互いに通信し、ＯＳと通信し、他のアプリケーション（図示せず）と通信するためのユニット間通信メカニズム６９５とを含む１つ以上のアプリケーションが展開され得る。たとえば、アプリ管理部６８０、許可管理部６８５およびデバイス管理部６９０は、図１〜図５に示され記載される１つ以上のプロセスまたはＵＩを実現し得る。記載されたユニットおよび要素は、設計、機能、構成または実現例において変更され得、提供された記載に限定されない。
【００４５】
いくつかの例示的な実現例において、情報または実行指示がＡＰＩユニット６６５によって受け取られると、当該実行指示は、１つ以上の他のユニット（たとえば論理ユニット６６０、入力ユニット６７０、出力ユニット６７５、アプリ管理部６８０、許可管理部６８５およびデバイス管理部６９０）に通信され得る。たとえば、アプリ管理部６８０が、入力ユニット６７０を通じて受け取られた情報から、アプリケーション（たとえばアプリケーション１２０）をアップロードする要求を検出すると、許可管理部６８５は、メタデータ１５０を収集するためにＵＩ１４０を提供するようＡＰＩユニット６６５によって呼び出される。デバイス管理部６９０は、入力ユニット６７０、デバイス管理部６９０を通じて、アプリケーション１２０を閲覧、ダウンロード、またはインストールする要求を受け取ると、出力６７５はアプリケーション１２０およびメタデータ１５０に関する情報を提供する。デバイス管理部６９０は、アプリケーション１２０をデバイスに提供する前に、同意１７５が受け取られるのを待機し得る。いくつかの実現例では、デバイス管理部６９０は、要求を行ったデバイスにアプリケーション１２０を提供する前に、同意１７５はすべての必要な同意であるということを判定し得る。
【００４６】
いくつかの場合において、論理ユニット６６０は、上に記載されたいくつかの例示的な実現例では、ユニット同士の間での情報フローを制御し、かつ、ＡＰＩユニット６６５、入力ユニット６７０、出力ユニット６７５、アプリ管理部６８０、許可管理部６８５およびデバイス管理部６９０によって提供されるサービスを指示するよう構成され得る。たとえば、論理ユニット６６０のみまたはＡＰＩユニット６６５と共によって１つ以上のプロセスまたは実現例のフローが制御され得る。
【００４７】
ここで論じられたシステムがユーザに関する個人情報を収集するか、または、個人情報を利用し得る状況において、プログラムまたは機構がユーザ情報を収集するかどうか制御する機会（たとえば、ユーザのソーシャルネットワーク、ソーシャルアクションもしくはアクティビティ、職業、ユーザのプレファレンス、または、ユーザの現在の位置に関する情報）、または、当該ユーザにより関連し得るコンテンツをコンテンツサーバから受け取るかどうかおよび／もしくは受け取る方法を制御する機会がユーザに与えられ得る。さらに、あるデータは、個人を識別可能である情報が除去されるように、格納または使用される前に１つ以上の態様で処理され得る。たとえば、個人を識別可能である情報が当該ユーザについて特定され得ないようにユーザの身元が処理され得るか、または、位置情報が得られたユーザの地理的な位置が、ユーザの特定の位置が特定され得ないように、（たとえば都市、ＺＩＰコードまたは州レベルまで）一般化され得る。したがって、ユーザは、情報がどのようにユーザに関して収集されるか、および、コンテンツサーバによって使用されるかについて制御を有し得る。
【００４８】
いくつかの例示的な実現例を図示および説明してきたが、これらの例示的な実現例は、本明細書に記載されている主題をこの分野の当業者に伝えるために提供されている。本明細書に記載されている主題は、記載されている例示的な実現例に限定されることなく、さまざまな形態で実現されてもよいということが理解されるべきである。本明細書に記載されている主題は、それらの具体的に規定もしくは記載されている事項がなくても実施可能であり、または、記載されていない他のもしくは異なる要素もしくは事項とともに実施されてもよい。添付の特許請求の範囲およびそれらの等価物に規定されている本明細書に記載の主題から逸脱することなく、これらの例示的な実現例において変更を加え得ることは、この分野の当業者によって理解されるであろう。
【図１】
0006333988.tif 000002
【図２Ａ】
0006333988.tif 000003
【図２Ｂ】
0006333988.tif 000004
【図３】
0006333988.tif 000005
【図４】
0006333988.tif 000006
【図５】
0006333988.tif 000007
【図６】
0006333988.tif 000008