(57)【要約】  ユーザアカウントと関連し得る様々なデバイスへのアプリケーションのフルフィルメントを容易にするための様々な実施形態が開示される。アプリケーションへのアクセスを取得する要求が受信されると、様々なデバイスのデバイス特性が識別され、このアプリケーションと関連する、対応するアプリケーションバイナリが識別される。対応するアプリケーションバイナリが、ユーザアカウントに対応するデバイスに配布される。加えて、適切なブラウザアクセス可能なアプリケーションが識別され、デバイスによって実行されるブラウザの能力に応じて、アクセスがデバイスに許可され得る。
2015529370.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのコンピューティングデバイスと、
前記少なくとも１つのコンピューティングデバイスで実行可能なアプリケーション配布サービスであって、
少なくとも１つのクライアントのためにアプリケーションにアクセスする要求を取得する論理と、
前記少なくとも１つのクライアントに対応する少なくとも１つの特性を識別する論理と、
前記少なくとも１つの特性と関連付けられた前記アプリケーションのそれぞれの互換性のあるバージョンを識別する論理と、
前記少なくとも１つのクライアントへの前記それぞれの互換性のあるバージョンのフルフィルメントを開始する論理と、
を備えるアプリケーション配布サービスと、
を備える、システム。
【請求項２】
前記アプリケーション配布サービスは、
クライアントをユーザアカウントに登録する要求を取得する論理と、
前記クライアントに対応するデバイスの識別子を生成する論理と、
前記デバイスを前記ユーザアカウントと関連付ける論理と、
をさらに備える、請求項１に記載のシステム。
【請求項３】
前記アプリケーション配布サービスは、前記デバイスと関連付けられたデバイス特性を見出す論理をさらに備える、請求項２に記載のシステム。
【請求項４】
前記デバイス特性を見出す前記論理は、前記デバイスによって実行されるアプリケーションから前記デバイス特性を取得する論理をさらに備える、請求項３に記載のシステム。
【請求項５】
前記デバイスによって実行される前記アプリケーションは、コンテンツ配信アプリケーションと通信するように構成されたブラウザまたはクライアントアプリケーションのうちの少なくとも１つである、請求項４に記載のシステム。
【請求項６】
前記それぞれの互換性のあるバージョンのフルフィルメントを開始する前記論理は、
前記少なくとも１つのクライアントと関連付けられたユーザアカウントを識別する論理と、
前記それぞれの互換性のあるバージョンに対応する製品識別子を識別する論理と、
前記ユーザアカウントを前記製品識別子と関連付ける論理と、
をさらに備える、請求項１に記載のシステム。
【請求項７】
前記それぞれの互換性のあるバージョンのフルフィルメントを開始する前記論理は、
前記アプリケーションのブラウザアクセス可能なバージョンを識別する論理と、
前記アプリケーションのブラウザアクセス可能なバージョンへのアクセスをユーザアカウントに許可する論理と、
をさらに備える、請求項１に記載のシステム。
【請求項８】
前記それぞれの互換性のあるバージョンのフルフィルメントを開始する前記論理は、前記それぞれの互換性のあるバージョンを前記少なくとも１つのクライアントに送信する論理をさらに備える、請求項１に記載のシステム。
【請求項９】
前記少なくとも１つの特性は、前記少なくとも１つのクライアントと関連付けられた言語または地域のうちの少なくとも１つを含む、請求項１に記載のシステム。
【請求項１０】
前記少なくとも１つの特性は、前記少なくとも１つのクライアントのハードウェア特徴と関連付けられた特性を含む、請求項１に記載のシステム。
【請求項１１】
前記ハードウェア特徴は、カメラ特性、ディスプレイ解像度、マイクロホン特性、プロセッサ速度、プロセッサ識別情報、スピーカ特性、または全地球的航法衛星システムのチップセットの存在のうちの少なくとも１つを含む、請求項１０に記載のシステム。
【請求項１２】
前記少なくとも１つの特性は、前記少なくとも１つのクライアントによって実行されるオペレーティングシステムまたはブラウザのうちの少なくとも１つの識別情報またはバージョンのうちの少なくとも１つを含む、請求項１に記載のシステム。
【請求項１３】
前記それぞれの互換性のあるバージョンは、前記オペレーティングシステム内で実行可能なバイナリアプリケーションを含む、請求項１２に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
以下の出願は、出願番号第１３／６２３，１４３号を有する２０１２年９月２０日に出願された「ＦＵＬＦＩＬＬＭＥＮＴ  ＯＦ  ＡＰＰＬＩＣＡＴＩＯＮＳ  ＴＯ  ＤＥＶＩＣＥＳ」と題する米国特許出願に対する優先権およびその利益を主張し、その全体が参照により本明細書に組み込まれる。
【背景技術】
【０００２】
ユーザは、電子市場でモバイルアプリケーションまたは他のタイプのソフトウェア製品等のアプリケーションを購入することができる。購入されるアプリケーションはしばしば、例えば、様々なオペレーティングシステムを実行するか、様々なデバイス能力を有し得る他のデバイスと互換性がないことがある。したがって、ユーザは、ユーザが所有し得る様々なデバイスのためにアプリケーションの互換性のあるバージョンを特定することを強いられる場合がある。
【０００３】
本開示の多くの態様は、以下の図面を参照しながらより良く理解され得る。図面における構成要素は、必ずしも一定の比率の縮尺ではなく、むしろ本開示の原理を明確に図解することに重点が置かれる。さらに、図面において、同様の参照番号は、いくつかの図を通して対応する部分を指定する。
【図面の簡単な説明】
【０００４】
【図１】本開示の様々な実施形態によるネットワーク化された環境の図である。
【図２】本開示の様々な実施形態による図１のネットワーク化された環境におけるデバイスによってレンダリングされたユーザインターフェースの一例の図である。
【図３】本開示の様々な実施形態による図１のネットワーク化された環境におけるデバイスによってレンダリングされたユーザインターフェースの一例の図である。
【図４】本開示の様々な実施形態による図１のネットワーク化された環境におけるデバイスによってレンダリングされたユーザインターフェースの一例の図である。
【図５】本開示の様々な実施形態による図１のネットワーク化された環境におけるデバイスによってレンダリングされたユーザインターフェースの一例の図である。
【図６】本開示の様々な実施形態による図１のネットワーク化された環境におけるデバイスによってレンダリングされたユーザインターフェースの一例の図である。
【図７】本開示の様々な実施形態による図１のネットワーク化された環境におけるコンピューティング環境内で実行されるアプリケーション配布サービスの部分として実装される機能性の一例を図解するフローチャートである。
【図８】本開示の様々な実施形態による図１のネットワーク化された環境内で利用されるコンピューティング環境の一例の図解を提供する略ブロック図である。
【発明を実施するための形態】
【０００５】
本開示の実施形態は、複数のクライアントデバイスへのアプリケーションおよび潜在的には複数の形式でのアプリケーションのフルフィルメント（ｆｕｌｆｉｌｌｍｅｎｔ）に関する。アプリケーションの購入、賃借、および／または配布を容易にする市場内のユーザは、クライアントデバイス上で実行され得るゲーム、ユーティリティ、または他のタイプのアプリケーション等のアプリケーションへのアクセスを取得することができる。アプリケーションは、様々なクライアントデバイスのオペレーティングシステムと互換性のある様々なバイナリ形式等の多くの形式で作成および配信され得る。アプリケーションバイナリはまた、特定のデバイスタイプに合わせられるか、または特定のクライアントデバイスの特定のハードウェア能力または特徴を利用することができる。例えば、２つのクライアントデバイスは、同じオペレーティングシステムを実行することができるが、様々な解像度のディスプレイで構成され得る。したがって、アプリケーションバイナリは、各クライアントデバイスの様々なディスプレイ解像度に各々合わせられるアプリケーションに対応して作成され得る。
【０００６】
加えて、ユーザは、アプリケーションを購入することができ、本開示の様々な実施形態は、ユーザアカウントと関連付けられる様々なデバイス上で使用するために様々な形式でアプリケーションバイナリのフルフィルメントを容易にすることができる。例えば、ユーザは、タブレットデバイスならびにスマートフォンを所有および使用し、両方のデバイスをユーザアカウントと関連付けることができる。ユーザは、電子商取引システムを介してアプリケーションを購入するか、または別の方法でそのアクセスを取得することができる。したがって、本開示の実施形態は、ユーザアカウントと関連付けられた様々なデバイスへのアプリケーションのフルフィルメントを容易にすることができる。加えて、本開示の実施形態はまた、アプリケーションのネットワークアクセス可能なバージョン（例えば、アプリケーションのウェブまたはブラウザベースのバージョン）へのユーザアクセスを、そのようなバージョンが存在する場合、ユーザに許可することができる。
【０００７】
図１を参照すると、様々な実施形態によるネットワーク化された環境１００が示される。ネットワーク化された環境１００は、コンピューティング環境１０３と、少なくとも１つのクライアントデバイス１０６とを含み、これらは、ネットワーク１１２を介して互いにデータ通信している。ネットワーク１１２としては、例えば、インターネット、イントラネット、エクストラネット、広域ネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、有線ネットワーク、無線ネットワーク、もしくは他の好適なネットワークなど、または２つ以上のそのようなネットワークの任意の組み合わせが挙げられ得る。
【０００８】
コンピューティング環境１０３は、例えば、サーバコンピュータまたはコンピューティング能力を提供する任意の他のシステムを備えることができる。あるいは、コンピューティング環境１０３は、例えば、１つ以上のサーババンク、コンピュータバンク、または他の構成で配置される複数のコンピューティングデバイスを利用することができる。そのようなコンピューティングデバイスは、単一のインストール形態で配置され得るか、または多くの異なる地理的な位置間で分散され得る。例えば、コンピューティング環境１０３は、クラウドコンピューティングリソース、グリッドコンピューティングリソース、および／または任意の他の分散されたコンピューティング構成をともに備え得る複数のコンピューティングデバイスを含むことができる。いくつかの場合、コンピューティング環境１０３は、処理、ネットワーク、ストレージ、または他のコンピューティング関連のリソースの割り当てられた容量が時間とともに変化し得る弾力のあるコンピューティングリソースに対応することができる。
【０００９】
様々なアプリケーションおよび／または他の機能が、様々な実施形態によるコンピューティング環境１０３で実行され得る。また、様々なデータがコンピューティング環境１０３にアクセス可能なデータストア１１５内に記憶される。データストア１１５は、理解され得るように複数のデータストア１１５を表し得る。データストア１１５内に記憶されたデータは、例えば、後述の様々なアプリケーションおよび／または機能エンティティの動作と関連する。
【００１０】
コンピューティング環境１０３上で実行される構成要素は、例えば、アプリケーション配布サービス１１８、電子商取引システム１２４、ならびに本明細書に詳述されない他のアプリケーション、サービス、プロセス、システム、エンジン、または機能を含む。アプリケーション配布サービス１１８は、ダウンロードのためにアプリケーションの互換性のあるバージョンをクライアントデバイス１０６に配布するように構成される。アプリケーション配布サービス１１８はまた、特定のユーザアカウントおよび／またはクライアント１０６へのアクセスをウェブアプリケーション等のブラウザアクセス可能なコンテンツに許可することができる。例えば、アプリケーション配布サービス１１８は、複数の開発者からの複数のアプリケーションを含むアプリケーション市場を通じて販売するためにアプリケーションを提示することができる。
【００１１】
電子商取引システム１２４は、ネットワーク１１２上での、のアプリケーション等の品目のオンライン購入を容易にするために実行される。電子商取引システム１２４はまた、品目のオンライン購入を容易にするために販売業者のオンラインでの存在と関連する様々なバックエンド機能を実施する。例えば、電子商取引システム１２４は、購入、賃借、ダウンロード、賃貸のための品目、または消費の他の形態を選択する目的でクライアント１０６に提供されるネットワークページまたはその部分を生成することができる。
【００１２】
データストア１１５内に記憶されたデータは、例えば、アプリケーション１２７、ユーザアカウント１２９、および潜在的には他のデータを含む。アプリケーション１２７は、例えば、ゲームまたは他のタイプのアプリケーションに対応することができる。非限定的な例として、アプリケーション１２７は、高い単収縮動作のゲーム、一人称シューティングゲーム、アクションゲーム、アドベンチャーゲーム、パーティーゲーム、ロールプレーイングゲーム、シミュレーションゲーム、戦略ゲーム、車両シミュレーションゲーム、および／または他のタイプのゲームに対応することができる。
【００１３】
アプリケーション１２７はまた、携帯電話アプリケーション、コンピュータ支援設計（ＣＡＤ）アプリケーション、コンピュータ支援製造（ＣＡＭ）アプリケーション、写真操作アプリケーション、ビデオ編集アプリケーション、職場の生産性アプリケーション、オペレーティングシステムおよび関連アプリケーション、消費者デバイス上に存在しないオペレーティングシステム、アーキテクチャ、および能力のためのエミュレータ、ならびに他のアプリケーションおよびアプリケーションの組み合わせに対応することができる。アプリケーション１２７は、汎用コンピューティングデバイス、または例えば、スマートフォン、ビデオゲームのコンソール、ハンドヘルドゲームデバイス、アーケードゲームデバイス等の特殊化したデバイスでの実行のために構成され得る。様々な実施形態では、アプリケーション１２７は、複数のオペレーティングシステム、コードライブラリ、クライアントコンピューティングデバイス等に対する支援を含むことができ、これらは、アプリケーション１２７が実行されるクライアント１０６に応じて不要であり得る。
【００１４】
アプリケーション１２７の各々は、アプリケーション１２７がアプリケーション配布サービス１１８を介して利用可能な他のアプリケーション１２７に対して一意に識別され得る少なくとも１つの製品識別子１３１と関連付けられる。加えて、アプリケーション１２７は、様々なデバイスタイプと互換性のあるアプリケーションの異なるバージョンを表す様々なアプリケーションバイナリ１３３と関連付けられ得る。例えば、アプリケーション１２７と関連付けられた第１のアプリケーションバイナリ１３３は第１のオペレーティングシステムと互換性があり得るが、第２のアプリケーションバイナリ１３３は第２のオペレーティングシステムと互換性があり得る。いくつかの実施形態では、アプリケーションバイナリ１３３の各々は、独自の製品識別子１３１または他のタイプの一意の識別子と関連付けられ得る。
【００１５】
加えて、アプリケーション１２７はまた、アプリケーションバイナリ１３３が実行される特定のクライアント１０６の特定のデバイス能力および／またはハードウェア特徴に合わせられ得るアプリケーションバイナリ１３３と関連付けられ得る。例えば、第１のアプリケーションバイナリ１３３は、特定のオペレーティングシステムおよび画面解像度に合わせられ得るが、第２のアプリケーションバイナリ１３３は、同じオペレーティングシステム内で実行可能であるが、異なる画面解像度に合わせられ得る。アプリケーションバイナリ１３３はまた、理解され得るようにカメラデバイス、マイクロホン、キーボード、ボタン、タッチスクリーンの入力デバイス等の入力デバイス、およびデバイス能力の存在または構成等の他のハードウェアまたはソフトウェアデバイス能力および構成に合わせられ得る。換言すれば、アプリケーションバイナリ１３３は、特定のユーザと関連付けられた特定のクライアント１０６に合わせられるアプリケーション１２７のバージョンが作成され、かつユーザに提供されるように、様々なデバイスタイプおよび／またはデバイス特徴と関連付けられ得る。
【００１６】
いくつかのアプリケーション１２７はまた、ウェブアプリケーションまたはアプリケーション１２７のブラウザベースのバージョン等のブラウザアクセス可能なアプリケーション１３５と関連付けられ得る。アプリケーション１２７と関連付けられたブラウザアクセス可能なアプリケーション１３５はまた、特定のデバイス能力および／または構成に合わせられ得る。例えば、ブラウザアクセス可能なアプリケーション１３５は、ユーザがクライアント１０６上で実行されるブラウザを介して利用可能なブラウザアクセス可能なアプリケーション１３５にアクセスするクライアント１０６の特定のブラウザおよび／またはハードウェア能力に合わせられ得る。１つのシナリオとして、アプリケーション１２７と関連付けられた第１のブラウザアクセス可能なアプリケーション１３５は、クライアント１０６の特定のディスプレイ解像度に合わせられ得る。第２のブラウザアクセス可能なアプリケーション１３５は同様に、クライアント１０６の別のディスプレイ解像度に合わせられ得る。別の例として、第１のブラウザアクセス可能なアプリケーション１３５は、ブラウザがアプリケーション配布サービス１１８にユーザの位置を報告するかどうか、および／またはクライアント１０６のハードウェア能力がクライアント１０６によって実行されるブラウザを介して別の方法でアクセス可能であるかどうかに合わせられ得る。加えて、アプリケーションバイナリ１３３およびブラウザアクセス可能なアプリケーション１３６のローカライズされたバージョンおよび／または言語固有のバージョンもまた、維持され、クライアント１０６に配信され得る。
【００１７】
デバイス互換性データ１３７は、ユーザがアプリケーション配布サービス１１８に登録し得るか、ユーザが履行されるアプリケーション１２７を要求し得る特定のデバイス構成に対して、どのアプリケーションバイナリ１３３および／またはどのブラウザアクセス可能なアプリケーション１３５が適切であるか特定することができる。例えば、デバイス互換性データ１３７は、クライアント１０６の特定の特徴または構成を１つ以上のアプリケーションバイナリ１３３および／またはブラウザアクセス可能なアプリケーション１３５と関連付けることができる。換言すれば、デバイス互換性データ１３７は、アプリケーション１２７と関連付けられたどのアプリケーションバイナリ１３３またはブラウザアクセス可能なアプリケーション１３５がクライアント１０６の特定の様相に適切であるかを、そのような様相がクライアント１０６によって実行されるオペレーティングシステムであろうと、または任意の他のデバイス能力または特徴であろうと、識別することができる。
【００１８】
例えば、デバイス互換性データ１３７は、デバイスに関連する１つ以上のハードウェア特徴を識別し、デバイス特徴のうちの１つに適切なアプリケーションバイナリおよび／もしくはブラウザアクセス可能なアプリケーション１３５、またはこれらの任意の組み合わせを特定することができる。そのようなデバイス特徴または特性としては、カメラ特性、ディスプレイ解像度、マイクロホン特性、プロセッサ速度、プロセッサ識別情報、デバイス内に存在するいくつかのプロセッサまたはプロセッサコア、スピーカ特性、および／または全地球的航法衛星システムのチップセットの存在が挙げられ得る。別の例として、デバイス互換性データ１３７は、特定のデバイス型番、銘柄、またはクライアント１０６が識別され得る他の情報と関連付けられるアプリケーションバイナリ１３３および／またはブラウザアクセス可能なアプリケーション１３５を識別することができる。
【００１９】
したがって、アプリケーション配布サービス１１８は、アプリケーションバイナリ１３３および／またはブラウザアクセス可能なアプリケーション１３５の各々が互換性のあるデバイス、デバイス能力、および／またはデバイス特徴で特定するデバイス互換性データ１３７とともに、開発者および／またはアプリケーションプロバイダからのアプリケーション１２７に対応する様々なアプリケーションバイナリ１３３ならびにブラウザアクセス可能なアプリケーション１３５を取得することができる。
【００２０】
ユーザアカウント１２９は、アプリケーション配布サービス１１８のユーザに関する情報に対応する。ユーザアカウントデータ１４１は、理解され得るように、例えば、認証情報、発送先、決済情報、および他のユーザ情報等のユーザと関連付けられた個人情報を含み得る。各ユーザアカウントはまた、ユーザがアプリケーション配布サービス１１８に登録した様々なデバイスを識別するデバイスデータ１４３と関連付けられ得る。アプリケーション配布サービス１１８を介して、ユーザは、ユーザがアクセスする権利があるアプリケーション１２７に対応するアプリケーションバイナリ１３３および／またはブラウザアクセス可能なアプリケーション１３５にユーザがアクセスすることを許可される、ユーザアカウントに複数のクライアント１０６を登録することができる。例えば、ユーザは、電子商取引システム１２４を介してアプリケーション１２７を購入することができ、アプリケーション配布サービス１１８は、ユーザがアプリケーション配布サービス１１８に登録し、かつデバイスデータ１４３で識別される様々なクライアント１０６へのアプリケーションバイナリ１３３の互換性のあるバージョンのフルフィルメントを容易にすることができる。
【００２１】
そのような機能を容易にするために、デバイスデータ１４３は、このユーザならびにアプリケーション配布サービス１１８の他のユーザと関連付けられた他のクライアント１０６に対して一意であるユーザの登録されたクライアント１０６の各々と関連付けられた一意の識別子を含むことができる。加えて、デバイスデータ１４３は、アプリケーションバイナリ１３３および／またはブラウザアクセス可能なアプリケーション１３５の互換性のあるバージョンがアプリケーション配布サービス１１８によってユーザのクライアント１０６に履行され得るように、ユーザが登録したクライアント１０６の能力に関する情報を含むことができる。
【００２２】
アプリケーションの権利１４５は、ユーザがアクセスすることを許可される１つ以上のアプリケーション１２７を識別する。例えば、アプリケーションの権利１４５は、ユーザが電子商取引システム１２４を介して購入したか、または別の方法でユーザのユーザアカウントと関連付けられるクライアント１０６にアクセスし、および／またはそれをダウンロードする権利があるアプリケーション１２７を識別することができる。したがって、アプリケーション配布サービス１１８は、ユーザのアカウントと関連付けられた様々なクライアント１０６へのアプリケーションの権利１４５によって識別されたアプリケーション１２７のうちの１つ以上のフルフィルメントを容易にすることができる。
【００２３】
クライアント１０６は、ネットワーク１１２に結合され得る複数のクライアントデバイスを表す。クライアント１０６は、例えば、コンピュータシステム等のプロセッサベースのシステムを含むことができる。そのようなコンピュータシステムは、デスクトップコンピュータ、ラップトップコンピュータ、携帯情報端末、携帯電話、スマートフォン、音楽プレーヤ、ウェブパッド、タブレットコンピュータシステム、セットトップボックス、ゲームコンソール、テレビ、電子書籍リーダ、または同様の能力を有する他のデバイスの形態で具体化され得る。クライアント１０６は、ディスプレイ１６０を含むことができる。ディスプレイ１６０は、例えば、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）画面、気体ガスベースのフラットパネルディスプレイ、ＬＣＤプロジェクタ、タッチスクリーン、または他のタイプの表示デバイス等の１つ以上のデバイスを含むことができる。クライアント１０６は、他の入力デバイス１６１と、出力デバイス１６２とを含むことができる。入力デバイス１６１としては、例えば、キーボード、マウス、ジョイスティック、加速度計、カメラ、マイクロホン、ライトガン、ゲームコントローラ、タッチパッド、タッチスティック、押しボタン、光センサ、マイクロホン、ウェブカム、タッチスクリーンの入力デバイス、および／またはユーザ入力を提供し得る任意の他のデバイスを含むことができる。出力デバイス１６２は、光表示器、触覚デバイス、力フィードバックデバイス、振動デバイス、サウンドデバイス、および／または他のデバイスに対応し得る。
【００２４】
クライアント１０６ａ、１０６ｂは、クライアントアプリケーション１６３ならびにアプリケーション配布サービス１１８から取得されたアプリケーションバイナリ１３３等の様々なアプリケーションを実行するように構成され得る。クライアントアプリケーション１６３は、例えば、コンピューティング環境１０３および／または他のサーバによって提供されるコンテンツにアクセスし、それをレンダリングし、それによりディスプレイ１６０上に画面１６６を生じさせるブラウザまたはモバイルアプリケーションに対応することができる。一実施形態では、クライアントアプリケーション１６３は、電子商取引システム１２４を介してアプリケーション１２７にアクセスし、それを閲覧し、および／またはそれを購入ために、クライアント１０６ａによって実行されるアプリケーションまたはサービスを表すことができる。
【００２５】
一実施形態では、クライアントアプリケーション１６３は、ユーザがアプリケーション配布サービス１１８を介して購入およびダウンロードするのに利用可能なアプリケーション１２７を閲覧し得る特殊目的アプリケーションを含むことができる。クライアントアプリケーション１６３は、ユーザがアプリケーション１２７を購入することを可能にするユーザインターフェースを提供することができ、その後アプリケーション配布サービス１１８がクライアント１０６へのアプリケーションバイナリ１３３の適切な互換性のあるバージョンのフルフィルメントを容易にすることができる。例えば、クライアントアプリケーション１６３は、ユーザの認証情報をアプリケーション配布サービス１１８に送信することができ、アプリケーション配布サービス１１８は、ユーザがアクセスする権利があるアプリケーション１２７がどれかを識別することができる。クライアントアプリケーション１６３は次に、ユーザがアクセスする権利があるアプリケーションに対応するアプリケーションバイナリ１３３を取得することができる。加えて、クライアントアプリケーション１６３はまた、クライアントアプリケーション１６３が実行され、デバイスをアプリケーション配布サービス１１８に登録するクライアント１０６に対応するデバイス能力を見出すことができる。したがって、アプリケーション配布サービス１１８は、ユーザがアクセスする権利があるアプリケーション１２７のアプリケーションバイナリ１３３および／またはブラウザアクセス可能なアプリケーション１３５の適切な互換性のあるバージョンを特定することができる。
【００２６】
別の例として、クライアント１０６ｂはまた、ブラウザ１６５を実行することができ、それを介して、ユーザアカウントと関連付けられたユーザおよび／またはクライアント１０６がアクセスすることを許可されるアプリケーション１２７に対応するブラウザアクセス可能なアプリケーション１３５。そのようなシナリオでは、クライアント１０６ｂは、ユーザのユーザ名／パスワードの対または他の認証情報により、アプリケーション配布サービス１１８によって認証され得る。クライアント１０６ｂはまた、ブラウザのクッキー、ＭＡＣアドレス、またはブラウザ１６５を介して取得され得、アプリケーション配布サービス１１８がクライアント１０６ｂと関連付けられたユーザアカウントを識別し得る、任意の他のデバイス識別子を介して認証され得る。ユーザは、様々な能力の複数のクライアント１０６をユーザアカウントに登録することができ、図示された例は、様々な能力の様々なクライアント１０６がいかにアプリケーション配布サービス１１８とともに使用され得るかを単に示すように図解されることが理解されるべきである。
【００２７】
次に、ネットワーク化された環境１００の様々な構成要素の動作の概要が提供される。初めに、上述のように、ユーザは、電子商取引システム１２４および／またはアプリケーション配布サービス１１８を介してアプリケーション１２７へのアクセスを購入および／または要求することができる。この購入に関連する決済情報を処理、および／またはユーザがアプリケーション１２７にアクセスすることを許可されるかを決定すると、アプリケーション配布サービス１１８は、ユーザのクライアント１０６と互換性のあるアプリケーション１２７と関連付けられたアプリケーションバイナリ１３３のフルフィルメントを開始することができる。
【００２８】
一実施形態では、ユーザは、アプリケーション配布サービス１１８と相互作用する目的のためにクライアント１０６ａ上でクライアントアプリケーション１６３を実行することができる。クライアントアプリケーション１６３は、そのハードウェアおよび／またはソフトウェア能力および特徴等のクライアント１０６ａの能力を見出し、クライアント１０６ａに関する情報をアプリケーション配布サービス１１８に通信することができる。アプリケーション配布サービス１１８はまた、クライアント１０６ａをユーザのユーザアカウント１２９に登録することを容易にすることができる。クライアントアプリケーション１６３から特定のクライアント１０６ａに関する情報を受信することに応答して、アプリケーション配布サービス１１８は、デバイスをユーザのユーザアカウント１２９と関連付けることができる。加えて、アプリケーション配布サービス１１８はまた、クライアント１０６ａに関する受信した情報に基づいて、クライアント１０６ａと互換性のある適切なアプリケーションバイナリ１３３および／またはブラウザアクセス可能なアプリケーション１３５を決定することができる。
【００２９】
したがって、アプリケーション配布サービス１１８は次に、クライアント１０６ａへのアプリケーションの適切な互換性のあるバージョンのフルフィルメントを開始することができる。一実施形態では、デバイス互換性データ１３７は、アプリケーション１２７のデバイス互換性データ１３７を参照することによってユーザアカウント１２９と関連付けられた特定のクライアント１０６ａに対する適切なアプリケーションバイナリ１３３を識別する。デバイス互換性データ１３７は、クライアントアプリケーション１６３によってアプリケーション配布サービス１１８に報告されたクライアント１０６ａのハードウェアおよび／またはソフトウェア能力に基づいて、特定のデバイスに対するアプリケーションバイナリ１３３の互換性のあるバージョンを識別する。
【００３０】
アプリケーション配布サービス１１８は、互換性のあるアプリケーションバイナリ１３３をクライアントアプリケーション１６３に送信することができ、クライアントアプリケーション１６３は、アプリケーションバイナリ１３３をクライアント１０６ａにインストールすることができる。アプリケーション配布サービス１１８はまた、ユーザアカウント１２９に対応するデバイスデータ１４３によって識別されるようにユーザのデバイス互換性データ１３７および登録されたデバイスに基づいて、ユーザアカウント１２９と関連付けられた他のデバイスへのアプリケーションバイナリ１３３のフルフィルメントを開始することができる。このように、ユーザは、アプリケーション１２７へのアクセスを購入または取得することができ、アプリケーション配布サービス１１８は、ユーザのアカウントと関連付けられた様々なデバイスへのアプリケーションバイナリ１３３の互換性のあるバージョンのフルフィルメントを容易にすることができる。
【００３１】
加えて、アプリケーション配布サービス１１８はまた、ユーザがユーザのアカウントのデバイスデータ１４３と関連付けられないデバイスからそのようにするときであってもアプリケーション１２７のバージョンにアクセスすることができるように、アプリケーション１２７と関連付けられたブラウザ互換性のあるアプリケーション１３５へのアクセスを許可することができる。一実施形態では、ユーザは、クライアント１０６ｂによって実行されるブラウザ１６５を介してサイトにアクセスすることができ、そのようなサイトは、アプリケーション配布サービス１１８および／または電子商取引システム１２４によって容易になり、ユーザがアプリケーションの権利１４５に従ってアクセスする権利があるアプリケーション１２７へのアクセスを提供する。サイトは、そのクライアントのハードウェアおよび／またはソフトウェア能力もしくは特徴など、ブラウザ１６５を介してクライアント１０６ｂの能力を見出すことを要求することができる。ブラウザ１６５は、クライアント１０６ｂに関する情報をアプリケーション配布サービス１１８に通信することができる。
【００３２】
例えば、ブラウザ１６５は、理解され得るようにディスプレイ解像度、位置検出能力、利用できる入力デバイス、ブラウザのバージョン、オペレーティングシステム、およびクライアント１０６ｂの他の能力および特徴を通信することができる。クライアントアプリケーション１６３から特定のクライアント１０６ｂに関する情報を受けとることに応答して、アプリケーション配布サービス１１８は、ブラウザ１６５に関する受けた情報に基づいて、クライアント１０６ｂと互換性のあるブラウザアクセス可能なアプリケーション１３５を識別することができる。アプリケーション配布サービス１１８は次に、ユーザの代わりにアプリケーション１２７にアクセスする要求をブラウザアクセス可能なアプリケーション１３５の適切な互換性のあるバージョンに転送することができる。
【００３３】
ここで図２を参照すると、ネットワーク化された環境１００（図１）内のクライアント１０６の一例が示される。この非限定的な例では、クライアント１０６ｃは、スマートフォンに対応する。クライアント１０６ｃの画面１６６は、デバイスによって実行されるアプリケーションバイナリ１３３（図１）によって生成されたユーザインターフェースを示す。図示される例では、クライアント１０６ｃによって実行されるアプリケーションバイナリ１３３は、ユーザがアプリケーション配布サービス１１８にアクセスすること、またはアプリケーション配布サービス１１８と通信する任意のサイトからクライアントアプリケーション１６３および／またはブラウザ１６５によって報告される、クライアント１０６の能力および特徴に応じて、アプリケーション配布サービス１１８によって選択される。
【００３４】
図示された例では、クライアント１０６によって実行されるアプリケーションバイナリ１３３は、ディスプレイ１６０のデバイス解像度、アスペクト比、および／または大きさに合わせられ得る。アプリケーションバイナリ１３３はまた、クライアント１０６によって実行されるオペレーティングシステム、ならびにデバイスが装備される容量性タッチスクリーンの入力デバイス等のユーザ入力デバイスのタイプに合わせられ得る。
【００３５】
図２の例を続けると、ここで図３が参照され、これは、図３に示されるクライアント１０６ｄの能力に合わせられるアプリケーション配布サービス１１８によって提供されたアプリケーションバイナリ１３３を実行するクライアント１０６ｄの別の例である。この非限定的な例では、クライアント１０６ｄは、図２に示されるクライアント１０６ｃと比較して様々な能力を有する。図３の例では、クライアント１０６ｄは、図２に示されるクライアント１０６が含まない入力デバイス２０１が装備される。したがって、デバイスによって実行され、アプリケーションバイナリ１３３が履行されるクライアントアプリケーション１６３は、入力デバイス２０１の存在を報告することができ、アプリケーション配布サービス１１８は、デバイスが登録されるユーザアカウント１２９がアプリケーション１２７を得る権利があるかを決定すると、デバイスに履行されるべきであるアプリケーション１２７の互換性のあるバージョンをデバイス互換性データ１３７から決定することができる。
【００３６】
図３の図示されたシナリオでは、アプリケーション１２７に対応する選択されたアプリケーションバイナリ１３３は、クライアント１０６ｄのさらなる入力デバイス能力を利用するように作成され、これは、図２に示されるクライアント１０６ｃに履行されたアプリケーションバイナリ１３３に存在し得ない機能である。いくつかの実施形態では、クライアント１０６ｄに履行されたアプリケーションバイナリ１３３は、異なるオペレーティングシステムのために構成されるか、または図２のクライアント１０６ｃとは異なり得るクライアント１０６ｄの他のハードウェアおよびソフトウェア特徴に合わせられ得る。
【００３７】
いくつかのシナリオでは、アプリケーション配布サービス１１８は、ユーザアカウント１２９に登録される特定のクライアント１０６と互換性のあるアプリケーションバイナリ１３３を識別することができない場合があることも理解されるべきである。したがって、そのようなシナリオでは、アプリケーション配布サービス１１８は、ユーザアカウント１２９ならびに特定のクライアント１０６にアプリケーション１２７と関連付けられるブラウザ互換性のあるアプリケーション１３５にアクセスする権利を与えることができる。
【００３８】
ここで図４が参照され、これは、ネットワーク化された環境１００（図１）内のクライアント１０６ｅの別の例を図解する。この非限定的な例では、クライアント１０６ｅは、後ろ向きカメラで構成されるが、前向きカメラなしでも構成されるスマートフォンに対応する。クライアント１０６ｅの画面１６６は、クライアント１０６ｅによって実行されるアプリケーションバイナリ１３３（図１）によって生成されたユーザインターフェースを示す。図示された例では、クライアント１０６ｅは、ユーザアカウント１２９に登録され、アプリケーション配布サービス１１８は、クライアント１０６ｅの能力と互換性のあるアプリケーションバイナリ１３３のフルフィルメントを容易にする。
【００３９】
したがって、クライアント１０６ｅによって、かつアプリケーションバイナリ１３３がアプリケーション配布サービス１１８を介して履行されることによって実行されるクライアントアプリケーション１６３は、後ろ向きカメラの存在および前向きカメラの欠如を報告することができ、アプリケーション配布サービス１１８は、デバイスに履行されるべきであるアプリケーション１２７に対応するアプリケーションバイナリ１３３の互換性のあるバージョンをデバイス互換性データ１３７から決定することができる。アプリケーション配布サービス１１８は、デバイスが登録されるユーザアカウント１２９がアプリケーション１２７を得る権利があるかを決定すると、適切なアプリケーションバイナリ１３３のフルフィルメントを開始することができる。
【００４０】
図４の例を続けると、ここで図５が参照される。この非限定的な例では、クライアント１０６ｆは、後ろ向きカメラならびに前向きカメラ２０２で構成されるスマートフォンに相当する。クライアント１０６ｆの画面１６６は、クライアント１０６ｆによって実行されるアプリケーションバイナリ１３３（図１）によって生成されたユーザインターフェースを示す。図示された例では、クライアント１０６ｆは、ユーザアカウント１２９に登録され、アプリケーション配布サービス１１８は、クライアント１０６ｆの能力と互換性のあるアプリケーションバイナリ１３３のフルフィルメントを容易にする。図４および５のシナリオでは、アプリケーション１２７は、アプリケーションバイナリ１３３が実行されるクライアント１０６内の前向きカメラの存在に応じて、それらの構成が異なるアプリケーションバイナリ１３３と関連付けられ得る。
【００４１】
したがって、クライアント１０６ｆによって実行され、アプリケーションバイナリ１３３がアプリケーション配布サービス１１８を介して履行されるクライアントアプリケーション１６３は、後ろ向きカメラおよび前向きカメラの存在を報告することができ、アプリケーション配布サービス１１８は、前向きカメラの存在に合わせられるアプリケーション１２７に対応するアプリケーションバイナリ１３３の互換性のあるバージョンをデバイス互換性データ１３７から決定することができる。図５の例に示されるように、アプリケーションバイナリ１３３の能力は、図４に示される例と比較してクライアント１０６ｆの様々なハードウェアおよび／またはソフトウェア能力によって異なり得る。
【００４２】
図４〜５の例を続けると、ここで図６が参照される。この非限定的な例では、クライアント１０６ｇは、特定のアプリケーションに対応するブラウザアクセス可能なアプリケーション１３５にアクセスしているスマートフォンに対応する。図６の例に示されるように、ブラウザアクセス可能なアプリケーション１３５は、ブラウザを介してアクセス可能なデバイスの能力に合わせられ得る。本開示の実施形態はまた、ユーザがユーザアカウント１２９に登録し得る任意のタイプのクライアントデバイスへのアプリケーションの適切な互換性のあるバージョンのフルフィルメントを容易にし得ることも理解されるべきである。例えば、他のタイプのクライアントとしては、セットトップボックス、ゲームコンソール、テレビ、またはユーザアカウント１２９と関連付けられ、かつアプリケーション配布サービス１１８によって提供されたコンテンツにアクセスし得る任意の他のタイプのデバイスが挙げられ得る。
【００４３】
図７に進むと、様々な実施形態によるアプリケーション配布サービス１１８の一部分の動作の一例を提供するフローチャートが示される。図７のフローチャートは、本明細書に記載されるようにアプリケーション配布サービス１１８の部分の動作を実現するために利用され得る多くの異なるタイプの機能的構成の単に一例を提供することが理解されよう。代替として、図７のフローチャートは、１つ以上の実施形態によるコンピューティング環境１０３（図１）で実現される方法のステップの例を示すと見なされ得る。
【００４４】
ボックス３０３から始めて、アプリケーション配布サービス１１８は、ユーザアカウント１２９のためにアプリケーション１２７にアクセスする要求を取得する。ボックス３０５では、アプリケーション配布サービス１１８は、ユーザアカウント１２９がアプリケーション１２７にアクセスすることを許可されるかどうかを決定することができる。ユーザアカウント１２９がアプリケーションにアクセスすることを許可されない場合、アプリケーション配布サービス１１８は、ボックス３０７においてそのようなアクセスを許可することができる。そのような許可は、電子商取引システム１２４を介するアプリケーション１２７の購入、またはユーザアカウント１２９の代わりにアプリケーション１２７へのアクセスを許可する任意の他の方法を含むことができる。
【００４５】
ボックス３０９では、アプリケーション配布サービス１１８は、ユーザアカウント１２９と関連付けられる１つ以上のデバイスを識別することができる。上述のように、各々のユーザアカウント１２９は、様々なハードウェアおよび／またはソフトウェア能力の様々なデバイスと関連付けられ得る。したがって、ボックス３１１では、アプリケーション配布サービス１１８は、ユーザアカウント１２９と関連付けられた様々なデバイスのデバイス能力を識別することができる。例えば、アプリケーション配布サービス１１８は、デバイスの各々によって実行されるオペレーティングシステムならびにデバイスの他のハードウェアおよびソフトウェア能力をユーザアカウント１２９と関連付けられたデバイスデータ１４３から決定することができる。
【００４６】
ボックス３１３では、アプリケーション配布サービス１１８は次に、どのアプリケーション１２７のアプリケーションバイナリ１３３が検出されたデバイス能力に基づいてデバイスの各々に適切であるかをアプリケーション１２７と関連付けられたデバイス互換性データ１３７から決定することができる。上述のように、デバイス互換性データ１３７は、ある特定のアプリケーションバイナリ１３３がおよび／またはブラウザアクセス可能なアプリケーション１３５がある特定の能力および／または特徴を有するデバイスを対象とすることを特定することができる。したがって、ボックス３１５では、アプリケーション配布サービス１１８は、ユーザアカウント１２９と関連付けられた様々なデバイスへの適切なアプリケーションバイナリ１３３のフルフィルメントを開始することができる。一例では、アプリケーション配布サービス１１８は、適切なアプリケーションバイナリ１３３をそれぞれのデバイス上で実行されるクライアントアプリケーション１６３に送信することができ、それは、デバイス上のアプリケーションバイナリ１３３のインストールおよび／または実行を容易にすることができる。加えて、いくつかの例では、アプリケーション配布サービス１１８はまた、ユーザと関連付けられた適切なクライアントへの適切なブラウザアクセス可能なアプリケーション１３５のフルフィルメントを開始することができる。加えて、アプリケーション配布サービス１１８はまた、ボックス３１７においてアプリケーション１２７と関連付けられた適切なブラウザアクセス可能なアプリケーション１３５にクライアント１０６へのアクセスを許可することによってアプリケーションのフルフィルメントを開始することができる。
【００４７】
クライアントアプリケーション１６３および／またはアプリケーションバイナリ１３３はまた、アプリケーション配布サービス１１８によって取得され、かつアプリケーション配布サービス１１８によって特定のクライアント１０６に提供された特定のアプリケーションバイナリ１３３と関連付けられ得るアプリケーション性能測定基準を報告することができる。例えば、アプリケーションバイナリ１３３および／またはクライアントアプリケーション１６３は、限定されないが、プロセッサ利用率、ビデオフレームレートデータ、アプリケーションの異常終了および／もしくはクラッシュデータ、または任意の他の性能測定基準もしくはデータ等の様々な測定基準を追跡するように構成され得る。このように、アプリケーション配布サービス１１８は、特定のアプリケーションバイナリ１３３の性能を追跡し、特定のアプリケーション１２７と関連付けられたデバイス互換性データを改善するために使用され得る報告データを提供することができる。
【００４８】
図８を参照すると、本開示の一実施形態によるコンピューティング環境１０３の略ブロック図が示される。コンピューティング環境１０３は、１つ以上のコンピューティングデバイス７００を含む。コンピューティングデバイス７００は、例えば、プロセッサ７０３と、メモリ７０６とを有し、この両方がローカルインターフェース７０９に結合される、少なくとも１つのプロセッサ回路を含む。この目的のために、コンピューティングデバイス７００は、例えば、少なくとも１つのサーバコンピュータまたは同様のデバイスを備えることができる。ローカルインターフェース７０９は、例えば、付属のアドレス／制御バスまたは理解され得るような他のバス構造を有するデータバスを備えることができる。
【００４９】
プロセッサ７０３によって実行可能なデータおよびいくつかの構成要素の両方がメモリ７０６内に記憶される。具体的には、決済追跡アプリケーション１１８および潜在的には他のアプリケーションが、メモリ７０６内に記憶され、プロセッサ７０３によって実行可能である。データストア１１５および他のデータもまた、メモリ７０６内に記憶され得る。加えて、オペレーティングシステムは、メモリ７０６内に記憶され、プロセッサ７０３によって実行可能であり得る。
【００５０】
理解され得るようにメモリ７０６内に記憶され、かつプロセッサ７０３によって実行可能である他のアプリケーションがあり得ることが理解されよう。本明細書に記載されるあらゆる構成要素がソフトウェアの形態で実装される場合、いくつかのプログラミング言語のうちのいずれか１つが、例えば、Ｃ、Ｃ＋＋、Ｃ＃、オブジェクティブＣ、Ｊａｖａ（登録商標）、ＪａｖａＳｃｒｉｐｔ（登録商標）、Ｐｅｒｌ、ＰＨＰ、Ｖｉｓｕａｌ  Ｂａｓｉｃ（登録商標）、Ｐｙｔｈｏｎ（登録商標）、Ｒｕｂｙ、Ｄｅｌｐｈｉ（登録商標）、Ｆｌａｓｈ（登録商標）、または他のプログラミング言語などが利用され得る。
【００５１】
いくつかのソフトウェア構成要素は、メモリ７０６内に記憶され、プロセッサ７０３によって実行可能である。この点において、「実行可能な」という用語は、プロセッサ７０３によって最終的に実行され得る形態であるプログラムファイルを意味する。実行可能なプログラムの例は、例えば、メモリ７０６のランダムアクセスの部分にロードされ、かつプロセッサ７０３によって動作され得る形式で機械語に翻訳され得るコンパイルしたプログラム、メモリ７０６のランダムアクセスの部分にロードされ、かつプロセッサ７０３によって実行されることができるオブジェクトコード等の適切な形式で表され得るソースコード、またはプロセッサ７０３によって実行されるメモリ７０６のランダムアクセスの部分内に命令を生成するように別の実行可能なプログラムによって解釈され得るソースコードなどであってもよい。実行可能なプログラムは、例えば、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、ハードドライブ、ソリッドステートドライブ、ＵＳＢフラッシュドライブ、メモリカード、コンパクトディスク（ＣＤ）もしくはデジタル多用途ディスク（ＤＶＤ）等の光ディスク、フロッピーディスク、磁気テープ、または他のメモリ構成要素を含む、メモリ７０６の任意の部分または構成要素内に記憶され得る。
【００５２】
メモリ７０６は、揮発性および不揮発性メモリの両方ならびにデータ記憶構成要素を含むと本明細書に定義される。揮発性構成要素は、電源喪失時にデータ値を保持しないものである。不揮発性構成要素は、電源喪失時にデータを保持するものである。したがって、メモリ７０６は、例えば、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、ハードディスクドライブ、ソリッドステートドライブ、ＵＳＢフラッシュドライブ、メモリカードリーダを介してアクセスされるメモリカード、関連したフロッピーディスクドライブを介してアクセスされるフロッピーディスク、光ディスクドライブを介してアクセスされる光ディスク、適切なテープドライブを介してアクセスされる磁気テープ、および／もしくは他のメモリ構成要素、またはこれらのメモリ構成要素のうちのいずれか２つ以上の組み合わせを含むことができる。加えて、ＲＡＭは、例えば、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、または磁気ランダムアクセスメモリ（ＭＲＡＭ）、および他のそのようなデバイスを含むことができる。ＲＯＭは、例えば、プログラマブル読み取り専用メモリ（ＰＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ）、電気的消去可能プログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ）、または他の同様のメモリデバイスを含むことができる。
【００５３】
また、プロセッサ７０３は、複数のプロセッサ７０３を表すことができ、メモリ７０６は、並列処理回路でそれぞれ動作する複数のメモリ７０６を表すことができる。そのような場合、ローカルインターフェース７０９は、複数のプロセッサ７０３のうちのいずれか２つとの間、任意のプロセッサ７０３とメモリ７０６のいずれかとの間、またはメモリ７０６のうちのいずれか２つの間などで通信を容易にする適切なネットワークであり得る。ローカルインターフェース７０９は、例えば、ロードバランシングを実施することを含む、この通信を調整するように設計される追加のシステムを備えることができる。プロセッサ７０３は、電気的またはいくつかの他の利用可能な構築物であってもよい。
【００５４】
本明細書に記載されるアプリケーション配布サービス１１８、電子商取引システム１２４、および他の様々なシステムは、上述のように汎用ハードウェアによって実行されるソフトウェアまたはコードに具体化され得るが、代替として、専用ハードウェアまたはソフトウェア／汎用ハードウェアと専用ハードウェアとの組み合わせにおいても同じことが具体化され得る。専用ハードウェアに具体化される場合、各々は、いくつかの技術のうちのいずれか１つまたはこれらの組み合わせを利用する回路または状態機械として実現され得る。これらの技術としては、これらに限定されないが、１つ以上のデータ信号の適用時に様々な論理関数を実現するための論理ゲートを有する離散論理回路、適切な論理ゲートを有する特定用途向け集積回路、または他の構成要素などが挙げられ得る。そのような技術は、当業者に一般的に周知であり、それ故に本明細書に詳細に記載されない。
【００５５】
図７のフローチャートは、アプリケーション配布サービス１１８および電子商取引システム１２４の部分の実現形態の機能および動作を示す。ソフトウェアに具体化される場合、各ブロックは、特定の論理機能（複数可）を実現するプログラム命令を備えるモジュール、セグメント、またはコードの部分を表すことができる。プログラム命令は、プログラミング言語で書かれた人間が読むことのできるステートメントを含むソースコード、コンピュータシステムまたは他のシステム内のプロセッサ７０３等の適切な実行システムによって認識できる数値命令を含む機械語の形態で具体化され得る。機械語は、ソースコードなどから変換され得る。ハードウェアに具体化される場合、各ブロックは、特定の論理機能（複数可）を実現する回路またはいくつかの相互接続された回路を表すことができる。
【００５６】
図７のフローチャートは、実行の特定の順を示すが、実行の順は、図示される順とは異なり得ることが理解されよう。例えば、２つ以上のブロックの実行の順は、図示される順に対して入れ替えられてもよい。また、図７に連続して示される２つ以上ブロックは、同時にまたは部分的同時に実行されてもよい。さらに、いくつかの実施形態では、図７に示されるブロックのうちの１つ以上は、飛ばされるか、または省略されてもよい。加えて、任意の数のカウンタ、状態変数、警告セマフォ、またはメッセージが、改良された有用性、課金、性能測定、またはトラブルシューティング支援機能を提供することなどの目的のために本明細書に記載される論理フローに追加され得る。すべてのそのような変形は、本開示の範囲内であることが理解されよう。
【００５７】
また、ソフトウェアまたはコードを備えるアプリケーション配布サービス１１８および電子商取引システム１２４を含む本明細書に記載されるあらゆる論理またはアプリケーションは、例えば、コンピュータシステムまたは他のシステム内のプロセッサ７０３等の命令実行システムによって、またはそれに関連して使用するために任意の非一時的コンピュータ可読媒体に具体化され得る。この意味で、論理は、例えば、コンピュータ可読媒体から取り出され、かつ命令実行システムによって実行され得る命令および宣言を含むステートメントを備えることができる。本開示において、「コンピュータ可読媒体」は、命令実行システムによって、またはそれに関連して使用するために本明細書に記載される論理またはアプリケーションを格納、記憶、保持し得るあらゆる媒体であり得る。
【００５８】
コンピュータ可読媒体は、例えば、磁気、光学、または半導体媒体等の多くの物理的媒体のうちのいずれか１つを含むことができる。好適なコンピュータ可読媒体のより具体的な例としては、限定されないが、磁気テープ、磁気フロッピーディスケット、磁気ハードドライブ、メモリカード、ソリッドステートドライブ、ＵＳＢフラッシュドライブ、または光ディスクが挙げられる。また、コンピュータ可読媒体は、例えば、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、または磁気ランダムアクセスメモリ（ＭＲＡＭ）を含むランダムアクセスメモリ（ＲＡＭ）であってもよい。加えて、コンピュータ可読媒体は、読み取り専用メモリ（ＲＯＭ）、プログラマブル読み取り専用メモリ（ＰＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ）、電気的消去可能プログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ）、または他のタイプのメモリデバイスであってもよい。
【００５９】
本開示の前述の実施形態は、本開示の原理の明確な理解のために記載される実現形態の単に考えられ得る例であることが強調されるべきである。本開示の趣旨および原理から大幅に逸脱することなく、多くの変形および修正が前述の実施形態（複数可）になされ得る。すべてのそのような修正および変形は、本開示の範囲内で本明細書に含まれ、以下の特許請求の範囲によって保護されることが意図される。
【００６０】
付記
付記１．
少なくとも１つのコンピューティングデバイスで実行可能なプログラムを具体化する非一時的コンピュータ可読媒体であって、
ユーザアカウントのためにアプリケーションにアクセスする要求を取得するコードであって、この要求がクライアントデバイスから取得される、コードと、
クライアントデバイスがユーザアカウントに登録されるかどうかを決定するコードと、
クライアントデバイスがユーザアカウントに登録されてないときに、クライアントデバイスをユーザアカウントに登録するコードと、
ユーザアカウントがアプリケーションにアクセスすることを許可されるかどうかを決定するコードと、
アプリケーションにアクセスすることをユーザアカウントに許可するコードと、
クライアントデバイスと関連付けられたデバイス特性を識別するコードと、
デバイス特性と関連付けられるアプリケーションに対応するアプリケーションバイナリを識別するコードと、
アプリケーションバイナリをクライアントデバイスに送信するコードと、を備える、非一時的コンピュータ可読媒体。
付記２．
このプログラムは、ブラウザアクセス可能なアプリケーションにアクセスする権利をデバイスに与えるコードをさらに備え、このブラウザアクセス可能なアプリケーションは、デバイス特性に少なくとも一部基づいて選択される、付記１に記載の非一時的コンピュータ可読媒体。
付記３．
このプログラムは、ユーザアカウントと関連付けられた複数のクライアントデバイスへのアプリケーションに対応するそれぞれの互換性のあるアプリケーションバイナリのフルフィルメントを開始するコードをさらに備える、付記１に記載の非一時的コンピュータ可読媒体。
付記４．
少なくとも１つのコンピューティングデバイスと、
少なくとも１つのコンピューティングデバイスで実行可能なアプリケーション配布サービスであって、アプリケーション配布サービスが、
少なくとも１つのクライアントのためにアプリケーションにアクセスする要求を取得する論理と、
少なくとも１つのクライアントに対応する少なくとも１つの特性を識別する論理と、
少なくとも１つの特性と関連付けられたアプリケーションのそれぞれの互換性のあるバージョンを識別する論理と、
少なくとも１つのクライアントへのそれぞれの互換性のあるバージョンのフルフィルメントを開始する論理と、を備える、アプリケーション配布サービスと、を備える、システム。
付記５．
アプリケーション配布サービスは、
クライアントをユーザアカウントに登録する要求を取得する論理と、
クライアントに対応するデバイス識別子を生成する論理と、
デバイスをユーザアカウントと関連付ける論理と、をさらに備える、付記４に記載のシステム。
付記６．
アプリケーション配布サービスは、デバイスと関連付けられたデバイス特性を見出す論理をさらに備える、付記５に記載のシステム。
付記７．
デバイス特性を見出す論理は、デバイスによって実行されるアプリケーションからデバイス特性を取得する論理をさらに備える、付記６に記載のシステム。
付記８．
デバイスによって実行されるアプリケーションは、コンテンツ配信アプリケーションと通信するように構成されたブラウザまたはクライアントアプリケーションのうちの少なくとも１つである、付記７に記載のシステム。
付記９．
それぞれの互換性のあるバージョンのフルフィルメントを開始する論理は、
少なくとも１つのクライアントと関連付けられたユーザアカウントを識別する論理と、
それぞれの互換性のあるバージョンに対応する製品識別子を識別する論理と、
ユーザアカウントを製品識別子と関連付ける論理と、をさらに備える、付記４に記載のシステム。
付記１０．
それぞれの互換性のあるバージョンのフルフィルメントを開始する論理は、
アプリケーションのブラウザアクセス可能なバージョンを識別する論理と、
アプリケーションのブラウザアクセス可能なバージョンへのアクセスをユーザアカウントに許可する論理と、をさらに備える、付記４に記載のシステム。
付記１１．
それぞれの互換性のあるバージョンのフルフィルメントを開始する論理は、それぞれの互換性のあるバージョンを少なくとも１つのクライアントに送信する論理をさらに備える、付記４に記載のシステム。
付記１２．
少なくとも１つの特性は、少なくとも１つのクライアントと関連付けられた言語または地域のうちの少なくとも１つを含む、付記４に記載のシステム。
付記１３．
少なくとも１つの特性は、少なくとも１つのクライアントのハードウェア特徴と関連付けられた特性を含む、付記４に記載のシステム。
付記１４．
ハードウェア特徴は、カメラ特性、ディスプレイ解像度、マイクロホン特性、プロセッサ速度、プロセッサ識別情報、スピーカ特性、または全地球的航法衛星システムのチップセットの存在のうちの少なくとも１つを含む、付記１３に記載のシステム。
付記１５．
少なくとも１つの特性は、少なくとも１つのクライアントによって実行されるオペレーティングシステムまたはブラウザのうちの少なくとも１つの識別情報またはバージョンのうちの少なくとも１つを含む、付記４に記載のシステム。
付記１６．
それぞれの互換性のあるバージョンは、オペレーティングシステム内で実行可能なバイナリアプリケーションを含む、付記１５に記載のシステム。
付記１７．
少なくとも１つのコンピューティングデバイスで、ユーザアカウントのためにアプリケーションにアクセスする要求を受信するステップと、
少なくとも１つのコンピューティングデバイスで、ユーザアカウントと関連付けられた複数のデバイスを識別するステップと、
少なくとも１つのコンピューティングデバイスで、複数のデバイスの各々に対応するアプリケーションのそれぞれ複数の互換性のあるバージョンを識別するステップと、
少なくとも１つのコンピューティングデバイスで、複数のデバイスへのそれぞれの互換性のあるバージョンのフルフィルメントを開始するステップと、を含む、方法。
付記１８．
複数のデバイスへのそれぞれの互換性のあるバージョンのフルフィルメントを開始するステップは、アプリケーションのそれぞれの互換性のあるバージョンを複数のデバイスの各々によって実行されるそれぞれのクライアントアプリケーションに送信することをさらに含む、付記１７に記載の方法。
付記１９．
複数のデバイスへのそれぞれの互換性のあるバージョンのフルフィルメントを開始するステップは、ユーザアカウントにアプリケーションの少なくとも１つのブラウザアクセス可能なバージョンにアクセスする権利を与えることをさらに含む、付記１７に記載の方法。
付記２０．
複数のデバイスの各々に対応するアプリケーションのそれぞれ複数の互換性のあるバージョンを識別するステップは、アプリケーションと関連付けられたデバイス互換性データに少なくとも一部基づいている、付記１７に記載の方法。
付記２１．
このデバイス互換性データは、複数のデバイスのサブセットと関連付けられた少なくとも１つの特性を含み、この少なくとも１つの特性は、複数のデバイスによって実行されるそれぞれのオペレーティングシステム、カメラ特性、ディスプレイ解像度、マイクロホン特性、プロセッサ速度、プロセッサ識別情報、スピーカ特性、または全地球的航法衛星システムのチップセットの存在を含む、付記２０に記載の方法。
付記２２．
ユーザアカウントと関連付けられた複数のデバイスを識別するステップは、ユーザアカウントと関連付けられた複数の登録されたデバイスに少なくとも一部基づき、この登録されたデバイスは、複数の登録されたデバイスの各々の中で実行されるそれぞれのクライアントアプリケーションによって登録される、付記１７に記載の方法。
【図１】
2015529370.tif 000003
【図２】
2015529370.tif 000004
【図３】
2015529370.tif 000005
【図４】
2015529370.tif 000006
【図５】
2015529370.tif 000007
【図６】
2015529370.tif 000008
【図７】
2015529370.tif 000009
【図８】
2015529370.tif 000010
【手続補正書】
【提出日】平成27年3月20日(2015.3.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも１つのコンピューティングデバイスと、
前記少なくとも１つのコンピューティングデバイスで実行可能なアプリケーション配布サービスであって、
少なくとも１つのクライアントのためにアプリケーションにアクセスする要求を取得する論理と、
前記少なくとも１つのクライアントに対応する少なくとも１つの特性を識別する論理と、
前記少なくとも１つの特性と関連付けられた前記アプリケーションの互換性のあるバージョンを識別する論理と、
前記少なくとも１つのクライアントへの前記互換性のあるバージョンのインストールを開始する論理と、
を備えるアプリケーション配布サービスと、
を備える、システム。
【請求項２】
前記アプリケーション配布サービスは、
クライアントをユーザアカウントに登録する要求を取得する論理と、
前記クライアントに対応するデバイスの識別子を生成する論理と、
前記デバイスを前記ユーザアカウントと関連付ける論理と、
をさらに備える、請求項１に記載のシステム。
【請求項３】
前記アプリケーション配布サービスは、前記デバイスと関連付けられたデバイス特性を見出す論理をさらに備える、請求項２に記載のシステム。
【請求項４】
前記デバイス特性を見出す前記論理は、前記デバイスによって実行されるアプリケーションから前記デバイス特性を取得する論理をさらに備える、請求項３に記載のシステム。
【請求項５】
前記デバイスによって実行される前記アプリケーションは、コンテンツ配信アプリケーションと通信するように構成されたブラウザまたはクライアントアプリケーションのうちの少なくとも１つである、請求項４に記載のシステム。
【請求項６】
前記互換性のあるバージョンのインストールを開始する前記論理は、
前記少なくとも１つのクライアントと関連付けられたユーザアカウントを識別する論理と、
前記互換性のあるバージョンに対応する製品識別子を識別する論理と、
前記ユーザアカウントを前記製品識別子と関連付ける論理と、
をさらに備える、請求項１に記載のシステム。
【請求項７】
前記互換性のあるバージョンのインストールを開始する前記論理は、
前記アプリケーションのブラウザアクセス可能なバージョンを識別する論理と、
前記アプリケーションのブラウザアクセス可能なバージョンへのアクセスをユーザアカウントに許可する論理と、
をさらに備える、請求項１に記載のシステム。
【請求項８】
前記互換性のあるバージョンのインストールを開始する前記論理は、前記互換性のあるバージョンを前記少なくとも１つのクライアントに送信する論理をさらに備える、請求項１に記載のシステム。
【請求項９】
前記少なくとも１つの特性は、前記少なくとも１つのクライアントと関連付けられた言語または地域のうちの少なくとも１つを含む、請求項１に記載のシステム。
【請求項１０】
前記少なくとも１つの特性は、前記少なくとも１つのクライアントのハードウェア特徴と関連付けられた特性を含む、請求項１に記載のシステム。
【請求項１１】
前記ハードウェア特徴は、カメラ特性、ディスプレイ解像度、マイクロホン特性、プロセッサ速度、プロセッサ識別情報、スピーカ特性、または全地球的航法衛星システムのチップセットの存在のうちの少なくとも１つを含む、請求項１０に記載のシステム。
【請求項１２】
前記少なくとも１つの特性は、前記少なくとも１つのクライアントによって実行されるオペレーティングシステムまたはブラウザのうちの少なくとも１つの識別情報またはバージョンのうちの少なくとも１つを含む、請求項１に記載のシステム。
【請求項１３】
前記互換性のあるバージョンは、前記オペレーティングシステム内で実行可能なバイナリアプリケーションを含む、請求項１２に記載のシステム。
【国際調査報告】
2015529370.tif 000011