特許第6127241号(P6127241)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アマゾン テクノロジーズ インコーポレイテッドの特許一覧

特許6127241デバイスへのアプリケーションのフルフィルメント
<>
  • 特許6127241-デバイスへのアプリケーションのフルフィルメント 図000002
  • 特許6127241-デバイスへのアプリケーションのフルフィルメント 図000003
  • 特許6127241-デバイスへのアプリケーションのフルフィルメント 図000004
  • 特許6127241-デバイスへのアプリケーションのフルフィルメント 図000005
  • 特許6127241-デバイスへのアプリケーションのフルフィルメント 図000006
  • 特許6127241-デバイスへのアプリケーションのフルフィルメント 図000007
  • 特許6127241-デバイスへのアプリケーションのフルフィルメント 図000008
  • 特許6127241-デバイスへのアプリケーションのフルフィルメント 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6127241
(24)【登録日】2017年4月21日
(45)【発行日】2017年5月17日
(54)【発明の名称】デバイスへのアプリケーションのフルフィルメント
(51)【国際特許分類】
   G06F 9/445 20060101AFI20170508BHJP
【FI】
   G06F9/06 610Q
   G06F9/06 650B
   G06F9/06 650C
【請求項の数】16
【全頁数】22
(21)【出願番号】特願2015-533111(P2015-533111)
(86)(22)【出願日】2013年9月12日
(65)【公表番号】特表2015-529370(P2015-529370A)
(43)【公表日】2015年10月5日
(86)【国際出願番号】US2013059352
(87)【国際公開番号】WO2014046948
(87)【国際公開日】20140327
【審査請求日】2015年3月20日
(31)【優先権主張番号】13/623,143
(32)【優先日】2012年9月20日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】506329306
【氏名又は名称】アマゾン テクノロジーズ インコーポレイテッド
(74)【代理人】
【識別番号】100079049
【弁理士】
【氏名又は名称】中島 淳
(74)【代理人】
【識別番号】100084995
【弁理士】
【氏名又は名称】加藤 和詳
(72)【発明者】
【氏名】チャド、 アンドリュー、 シー.
(72)【発明者】
【氏名】オリビエリ、 ジョサイア、 ピー.
(72)【発明者】
【氏名】マティーセン、 トーマス、 エム.
(72)【発明者】
【氏名】ブランチャード、 ローラ、 エー.
(72)【発明者】
【氏名】ビルコツスキ、 アンドレイ、 ブイ.
(72)【発明者】
【氏名】バッティ、 アタ、 ユー.
【審査官】 石川 亮
(56)【参考文献】
【文献】 特開2003−173261(JP,A)
【文献】 リンクアップ,Androidアプリ スーパーバイブル,日本,ソシム株式会社,2011年 4月 7日,初版,pp.26-28
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/445
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのコンピューティングデバイスと、
前記少なくとも1つのコンピューティングデバイスで実行可能なアプリケーション配布サービスであって、
少なくとも1つのクライアントのためにアプリケーションにアクセスする要求を取得する論理と、
前記少なくとも1つのクライアントに対応する少なくとも1つの特性を識別する論理と、
前記少なくとも1つの特性と関連付けられた前記アプリケーションの第1の互換性のあるバージョンを識別する論理と、
前記少なくとも1つのクライアントのブラウザ能力に対応する、前記アプリケーションのブラウザアクセス可能なバージョンであって、前記少なくとも1つの特性に少なくとも一部基づいて選択される、前記アプリケーションのブラウザアクセス可能なバージョンを含む、前記アプリケーションの第2の互換性のあるバージョンを識別する論理と、
前記少なくとも1つのクライアントへの前記第1の互換性のあるバージョン又は前記第2の互換性のあるバージョンの配信を開始する論理と、
を備えるアプリケーション配布サービスと、
を備える、システム。
【請求項2】
前記アプリケーション配布サービスは、
前記少なくとも1つのクライアントをユーザアカウントに登録する要求を取得する論理と、
前記少なくとも1つのクライアントに対応するデバイス識別子を生成する論理と、
前記少なくとも1つのクライアントを前記ユーザアカウントと関連付ける論理と、
をさらに備える、請求項1に記載のシステム。
【請求項3】
前記アプリケーション配布サービスは、前記少なくとも1つのクライアントと関連付けられたデバイス特性を見出す論理をさらに備える、請求項2に記載のシステム。
【請求項4】
前記デバイス特性を見出す前記論理は、前記少なくとも1つのクライアントによって実行される前記アプリケーションから前記デバイス特性を取得する論理をさらに備える、請求項3に記載のシステム。
【請求項5】
前記少なくとも1つのクライアントによって実行される前記アプリケーションは、コンテンツ配信アプリケーションと通信するように構成されたブラウザまたはクライアントアプリケーションのうちの少なくとも1つである、請求項4に記載のシステム。
【請求項6】
前記配信を開始する前記論理は、
前記少なくとも1つのクライアントと関連付けられたユーザアカウントを識別する論理と、
前記第1の互換性のあるバージョン又は前記第2の互換性のあるバージョンに対応する製品識別子を識別する論理と、
前記ユーザアカウントを前記製品識別子と関連付ける論理と、
をさらに備える、請求項1に記載のシステム。
【請求項7】
前記配信を開始する前記論理は、前記アプリケーションの前記第2の互換性のあるバージョンへのアクセスを前記ユーザアカウントに許可する論理をさらに備える、請求項2に記載のシステム。
【請求項8】
前記配信を開始する前記論理は、前記第1の互換性のあるバージョン又は前記第2の互換性のあるバージョンを前記少なくとも1つのクライアントに送信する論理をさらに備える、請求項1に記載のシステム。
【請求項9】
前記少なくとも1つの特性は、前記少なくとも1つのクライアントと関連付けられた言語または地域のうちの少なくとも1つを含む、請求項1に記載のシステム。
【請求項10】
前記少なくとも1つの特性は、前記少なくとも1つのクライアントのハードウェア特徴と関連付けられた特性を含む、請求項1に記載のシステム。
【請求項11】
前記ハードウェア特徴は、カメラ特性、ディスプレイ解像度、マイクロホン特性、プロセッサ速度、プロセッサ識別情報、スピーカ特性、または全地球的航法衛星システムのチップセットの存在のうちの少なくとも1つを含む、請求項10に記載のシステム。
【請求項12】
前記少なくとも1つの特性は、前記少なくとも1つのクライアントによって実行されるオペレーティングシステムまたはブラウザのうちの少なくとも1つの識別情報またはバージョンのうちの少なくとも1つを含む、請求項1に記載のシステム。
【請求項13】
前記第1の互換性のあるバージョンは、前記オペレーティングシステム内で実行可能なバイナリアプリケーションを含む、請求項12に記載のシステム。
【請求項14】
前記アプリケーションの前記第2の互換性のあるバージョンへのアクセスを許可する前記論理は、前記第1の互換性のあるバージョンを識別する論理が、前記第1の互換性のあるバージョンを識別することができない場合に、前記第2の互換性のあるバージョンへのアクセスを前記ユーザアカウントに許可する、請求項7に記載のシステム。
【請求項15】
前記アプリケーションの前記第2の互換性のあるバージョンへのアクセスを許可する前記論理は、前記少なくとも1つのクライアントが前記ユーザアカウントと関連付けられていない場合に、前記第2の互換性のあるバージョンへのアクセスを前記ユーザアカウントに許可する、請求項7に記載のシステム。
【請求項16】
前記少なくとも1つのクライアントに対応する前記少なくとも1つの特性は、前記少なくとも1つのクライアントにおいて実行されるブラウザを介して、前記アプリケーション配布サービスに送信される、請求項15に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
以下の出願は、出願番号第13/623,143号を有する2012年9月20日に出願された「FULFILLMENT OF APPLICATIONS TO DEVICES」と題する米国特許出願に対する優先権およびその利益を主張し、その全体が参照により本明細書に組み込まれる。
【背景技術】
【0002】
ユーザは、電子市場でモバイルアプリケーションまたは他のタイプのソフトウェア製品等のアプリケーションを購入することができる。購入されるアプリケーションはしばしば、例えば、様々なオペレーティングシステムを実行するか、様々なデバイス能力を有し得る他のデバイスと互換性がないことがある。したがって、ユーザは、ユーザが所有し得る様々なデバイスのためにアプリケーションの互換性のあるバージョンを特定することを強いられる場合がある。
【0003】
本開示の多くの態様は、以下の図面を参照しながらより良く理解され得る。図面における構成要素は、必ずしも一定の比率の縮尺ではなく、むしろ本開示の原理を明確に図解することに重点が置かれる。さらに、図面において、同様の参照番号は、いくつかの図を通して対応する部分を指定する。
【図面の簡単な説明】
【0004】
図1】本開示の様々な実施形態によるネットワーク化された環境の図である。
図2】本開示の様々な実施形態による図1のネットワーク化された環境におけるデバイスによってレンダリングされたユーザインターフェースの一例の図である。
図3】本開示の様々な実施形態による図1のネットワーク化された環境におけるデバイスによってレンダリングされたユーザインターフェースの一例の図である。
図4】本開示の様々な実施形態による図1のネットワーク化された環境におけるデバイスによってレンダリングされたユーザインターフェースの一例の図である。
図5】本開示の様々な実施形態による図1のネットワーク化された環境におけるデバイスによってレンダリングされたユーザインターフェースの一例の図である。
図6】本開示の様々な実施形態による図1のネットワーク化された環境におけるデバイスによってレンダリングされたユーザインターフェースの一例の図である。
図7】本開示の様々な実施形態による図1のネットワーク化された環境におけるコンピューティング環境内で実行されるアプリケーション配布サービスの部分として実装される機能性の一例を図解するフローチャートである。
図8】本開示の様々な実施形態による図1のネットワーク化された環境内で利用されるコンピューティング環境の一例の図解を提供する略ブロック図である。
【発明を実施するための形態】
【0005】
本開示の実施形態は、複数のクライアントデバイスへのアプリケーションおよび潜在的には複数の形式でのアプリケーションのフルフィルメント(fulfillment)に関する。アプリケーションの購入、賃借、および/または配布を容易にする市場内のユーザは、クライアントデバイス上で実行され得るゲーム、ユーティリティ、または他のタイプのアプリケーション等のアプリケーションへのアクセスを取得することができる。アプリケーションは、様々なクライアントデバイスのオペレーティングシステムと互換性のある様々なバイナリ形式等の多くの形式で作成および配信され得る。アプリケーションバイナリはまた、特定のデバイスタイプに合わせられるか、または特定のクライアントデバイスの特定のハードウェア能力または特徴を利用することができる。例えば、2つのクライアントデバイスは、同じオペレーティングシステムを実行することができるが、様々な解像度のディスプレイで構成され得る。したがって、アプリケーションバイナリは、各クライアントデバイスの様々なディスプレイ解像度に各々合わせられるアプリケーションに対応して作成され得る。
【0006】
加えて、ユーザは、アプリケーションを購入することができ、本開示の様々な実施形態は、ユーザアカウントと関連付けられる様々なデバイス上で使用するために様々な形式でアプリケーションバイナリのフルフィルメントを容易にすることができる。例えば、ユーザは、タブレットデバイスならびにスマートフォンを所有および使用し、両方のデバイスをユーザアカウントと関連付けることができる。ユーザは、電子商取引システムを介してアプリケーションを購入するか、または別の方法でそのアクセスを取得することができる。したがって、本開示の実施形態は、ユーザアカウントと関連付けられた様々なデバイスへのアプリケーションのフルフィルメントを容易にすることができる。加えて、本開示の実施形態はまた、アプリケーションのネットワークアクセス可能なバージョン(例えば、アプリケーションのウェブまたはブラウザベースのバージョン)へのユーザアクセスを、そのようなバージョンが存在する場合、ユーザに許可することができる。
【0007】
図1を参照すると、様々な実施形態によるネットワーク化された環境100が示される。ネットワーク化された環境100は、コンピューティング環境103と、少なくとも1つのクライアントデバイス106とを含み、これらは、ネットワーク112を介して互いにデータ通信している。ネットワーク112としては、例えば、インターネット、イントラネット、エクストラネット、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、有線ネットワーク、無線ネットワーク、もしくは他の好適なネットワークなど、または2つ以上のそのようなネットワークの任意の組み合わせが挙げられ得る。
【0008】
コンピューティング環境103は、例えば、サーバコンピュータまたはコンピューティング能力を提供する任意の他のシステムを備えることができる。あるいは、コンピューティング環境103は、例えば、1つ以上のサーババンク、コンピュータバンク、または他の構成で配置される複数のコンピューティングデバイスを利用することができる。そのようなコンピューティングデバイスは、単一のインストール形態で配置され得るか、または多くの異なる地理的な位置間で分散され得る。例えば、コンピューティング環境103は、クラウドコンピューティングリソース、グリッドコンピューティングリソース、および/または任意の他の分散されたコンピューティング構成をともに備え得る複数のコンピューティングデバイスを含むことができる。いくつかの場合、コンピューティング環境103は、処理、ネットワーク、ストレージ、または他のコンピューティング関連のリソースの割り当てられた容量が時間とともに変化し得る弾力のあるコンピューティングリソースに対応することができる。
【0009】
様々なアプリケーションおよび/または他の機能が、様々な実施形態によるコンピューティング環境103で実行され得る。また、様々なデータがコンピューティング環境103にアクセス可能なデータストア115内に記憶される。データストア115は、理解され得るように複数のデータストア115を表し得る。データストア115内に記憶されたデータは、例えば、後述の様々なアプリケーションおよび/または機能エンティティの動作と関連する。
【0010】
コンピューティング環境103上で実行される構成要素は、例えば、アプリケーション配布サービス118、電子商取引システム124、ならびに本明細書に詳述されない他のアプリケーション、サービス、プロセス、システム、エンジン、または機能を含む。アプリケーション配布サービス118は、ダウンロードのためにアプリケーションの互換性のあるバージョンをクライアントデバイス106に配布するように構成される。アプリケーション配布サービス118はまた、特定のユーザアカウントおよび/またはクライアント106へのアクセスをウェブアプリケーション等のブラウザアクセス可能なコンテンツに許可することができる。例えば、アプリケーション配布サービス118は、複数の開発者からの複数のアプリケーションを含むアプリケーション市場を通じて販売するためにアプリケーションを提示することができる。
【0011】
電子商取引システム124は、ネットワーク112上での、のアプリケーション等の品目のオンライン購入を容易にするために実行される。電子商取引システム124はまた、品目のオンライン購入を容易にするために販売業者のオンラインでの存在と関連する様々なバックエンド機能を実施する。例えば、電子商取引システム124は、購入、賃借、ダウンロード、賃貸のための品目、または消費の他の形態を選択する目的でクライアント106に提供されるネットワークページまたはその部分を生成することができる。
【0012】
データストア115内に記憶されたデータは、例えば、アプリケーション127、ユーザアカウント129、および潜在的には他のデータを含む。アプリケーション127は、例えば、ゲームまたは他のタイプのアプリケーションに対応することができる。非限定的な例として、アプリケーション127は、高い単収縮動作のゲーム、一人称シューティングゲーム、アクションゲーム、アドベンチャーゲーム、パーティーゲーム、ロールプレーイングゲーム、シミュレーションゲーム、戦略ゲーム、車両シミュレーションゲーム、および/または他のタイプのゲームに対応することができる。
【0013】
アプリケーション127はまた、携帯電話アプリケーション、コンピュータ支援設計(CAD)アプリケーション、コンピュータ支援製造(CAM)アプリケーション、写真操作アプリケーション、ビデオ編集アプリケーション、職場の生産性アプリケーション、オペレーティングシステムおよび関連アプリケーション、消費者デバイス上に存在しないオペレーティングシステム、アーキテクチャ、および能力のためのエミュレータ、ならびに他のアプリケーションおよびアプリケーションの組み合わせに対応することができる。アプリケーション127は、汎用コンピューティングデバイス、または例えば、スマートフォン、ビデオゲームのコンソール、ハンドヘルドゲームデバイス、アーケードゲームデバイス等の特殊化したデバイスでの実行のために構成され得る。様々な実施形態では、アプリケーション127は、複数のオペレーティングシステム、コードライブラリ、クライアントコンピューティングデバイス等に対する支援を含むことができ、これらは、アプリケーション127が実行されるクライアント106に応じて不要であり得る。
【0014】
アプリケーション127の各々は、アプリケーション127がアプリケーション配布サービス118を介して利用可能な他のアプリケーション127に対して一意に識別され得る少なくとも1つの製品識別子128と関連付けられる。加えて、アプリケーション127は、様々なデバイスタイプと互換性のあるアプリケーションの異なるバージョンを表す様々なアプリケーションバイナリ133と関連付けられ得る。例えば、アプリケーション127と関連付けられた第1のアプリケーションバイナリ133は第1のオペレーティングシステムと互換性があり得るが、第2のアプリケーションバイナリ133は第2のオペレーティングシステムと互換性があり得る。いくつかの実施形態では、アプリケーションバイナリ133の各々は、独自の製品識別子128または他のタイプの一意の識別子と関連付けられ得る。
【0015】
加えて、アプリケーション127はまた、アプリケーションバイナリ133が実行される特定のクライアント106の特定のデバイス能力および/またはハードウェア特徴に合わせられ得るアプリケーションバイナリ133と関連付けられ得る。例えば、第1のアプリケーションバイナリ133は、特定のオペレーティングシステムおよび画面解像度に合わせられ得るが、第2のアプリケーションバイナリ133は、同じオペレーティングシステム内で実行可能であるが、異なる画面解像度に合わせられ得る。アプリケーションバイナリ133はまた、理解され得るようにカメラデバイス、マイクロホン、キーボード、ボタン、タッチスクリーンの入力デバイス等の入力デバイス、およびデバイス能力の存在または構成等の他のハードウェアまたはソフトウェアデバイス能力および構成に合わせられ得る。換言すれば、アプリケーションバイナリ133は、特定のユーザと関連付けられた特定のクライアント106に合わせられるアプリケーション127のバージョンが作成され、かつユーザに提供されるように、様々なデバイスタイプおよび/またはデバイス特徴と関連付けられ得る。
【0016】
いくつかのアプリケーション127はまた、ウェブアプリケーションまたはアプリケーション127のブラウザベースのバージョン等のブラウザアクセス可能なアプリケーション135と関連付けられ得る。アプリケーション127と関連付けられたブラウザアクセス可能なアプリケーション135はまた、特定のデバイス能力および/または構成に合わせられ得る。例えば、ブラウザアクセス可能なアプリケーション135は、ユーザがクライアント106上で実行されるブラウザを介して利用可能なブラウザアクセス可能なアプリケーション135にアクセスするクライアント106の特定のブラウザおよび/またはハードウェア能力に合わせられ得る。1つのシナリオとして、アプリケーション127と関連付けられた第1のブラウザアクセス可能なアプリケーション135は、クライアント106の特定のディスプレイ解像度に合わせられ得る。第2のブラウザアクセス可能なアプリケーション135は同様に、クライアント106の別のディスプレイ解像度に合わせられ得る。別の例として、第1のブラウザアクセス可能なアプリケーション135は、ブラウザがアプリケーション配布サービス118にユーザの位置を報告するかどうか、および/またはクライアント106のハードウェア能力がクライアント106によって実行されるブラウザを介して別の方法でアクセス可能であるかどうかに合わせられ得る。加えて、アプリケーションバイナリ133およびブラウザアクセス可能なアプリケーション135のローカライズされたバージョンおよび/または言語固有のバージョンもまた、維持され、クライアント106に配信され得る。
【0017】
デバイス互換性データ137は、ユーザがアプリケーション配布サービス118に登録し得るか、ユーザが履行されるアプリケーション127を要求し得る特定のデバイス構成に対して、どのアプリケーションバイナリ133および/またはどのブラウザアクセス可能なアプリケーション135が適切であるか特定することができる。例えば、デバイス互換性データ137は、クライアント106の特定の特徴または構成を1つ以上のアプリケーションバイナリ133および/またはブラウザアクセス可能なアプリケーション135と関連付けることができる。換言すれば、デバイス互換性データ137は、アプリケーション127と関連付けられたどのアプリケーションバイナリ133またはブラウザアクセス可能なアプリケーション135がクライアント106の特定の様相に適切であるかを、そのような様相がクライアント106によって実行されるオペレーティングシステムであろうと、または任意の他のデバイス能力または特徴であろうと、識別することができる。
【0018】
例えば、デバイス互換性データ137は、デバイスに関連する1つ以上のハードウェア特徴を識別し、デバイス特徴のうちの1つに適切なアプリケーションバイナリおよび/もしくはブラウザアクセス可能なアプリケーション135、またはこれらの任意の組み合わせを特定することができる。そのようなデバイス特徴または特性としては、カメラ特性、ディスプレイ解像度、マイクロホン特性、プロセッサ速度、プロセッサ識別情報、デバイス内に存在するいくつかのプロセッサまたはプロセッサコア、スピーカ特性、および/または全地球的航法衛星システムのチップセットの存在が挙げられ得る。別の例として、デバイス互換性データ137は、特定のデバイス型番、銘柄、またはクライアント106が識別され得る他の情報と関連付けられるアプリケーションバイナリ133および/またはブラウザアクセス可能なアプリケーション135を識別することができる。
【0019】
したがって、アプリケーション配布サービス118は、アプリケーションバイナリ133および/またはブラウザアクセス可能なアプリケーション135の各々が互換性のあるデバイス、デバイス能力、および/またはデバイス特徴で特定するデバイス互換性データ137とともに、開発者および/またはアプリケーションプロバイダからのアプリケーション127に対応する様々なアプリケーションバイナリ133ならびにブラウザアクセス可能なアプリケーション135を取得することができる。
【0020】
ユーザアカウント129は、アプリケーション配布サービス118のユーザに関する情報に対応する。ユーザアカウントデータ141は、理解され得るように、例えば、認証情報、発送先、決済情報、および他のユーザ情報等のユーザと関連付けられた個人情報を含み得る。各ユーザアカウントはまた、ユーザがアプリケーション配布サービス118に登録した様々なデバイスを識別するデバイスデータ143と関連付けられ得る。アプリケーション配布サービス118を介して、ユーザは、ユーザがアクセスする権利があるアプリケーション127に対応するアプリケーションバイナリ133および/またはブラウザアクセス可能なアプリケーション135にユーザがアクセスすることを許可される、ユーザアカウントに複数のクライアント106を登録することができる。例えば、ユーザは、電子商取引システム124を介してアプリケーション127を購入することができ、アプリケーション配布サービス118は、ユーザがアプリケーション配布サービス118に登録し、かつデバイスデータ143で識別される様々なクライアント106へのアプリケーションバイナリ133の互換性のあるバージョンのフルフィルメントを容易にすることができる。
【0021】
そのような機能を容易にするために、デバイスデータ143は、このユーザならびにアプリケーション配布サービス118の他のユーザと関連付けられた他のクライアント106に対して一意であるユーザの登録されたクライアント106の各々と関連付けられた一意の識別子を含むことができる。加えて、デバイスデータ143は、アプリケーションバイナリ133および/またはブラウザアクセス可能なアプリケーション135の互換性のあるバージョンがアプリケーション配布サービス118によってユーザのクライアント106に履行され得るように、ユーザが登録したクライアント106の能力に関する情報を含むことができる。
【0022】
アプリケーションの権利145は、ユーザがアクセスすることを許可される1つ以上のアプリケーション127を識別する。例えば、アプリケーションの権利145は、ユーザが電子商取引システム124を介して購入したか、または別の方法でユーザのユーザアカウントと関連付けられるクライアント106にアクセスし、および/またはそれをダウンロードする権利があるアプリケーション127を識別することができる。したがって、アプリケーション配布サービス118は、ユーザのアカウントと関連付けられた様々なクライアント106へのアプリケーションの権利145によって識別されたアプリケーション127のうちの1つ以上のフルフィルメントを容易にすることができる。
【0023】
クライアント106は、ネットワーク112に結合され得る複数のクライアントデバイスを表す。クライアント106は、例えば、コンピュータシステム等のプロセッサベースのシステムを含むことができる。そのようなコンピュータシステムは、デスクトップコンピュータ、ラップトップコンピュータ、携帯情報端末、携帯電話、スマートフォン、音楽プレーヤ、ウェブパッド、タブレットコンピュータシステム、セットトップボックス、ゲームコンソール、テレビ、電子書籍リーダ、または同様の能力を有する他のデバイスの形態で具体化され得る。クライアント106は、ディスプレイ160を含むことができる。ディスプレイ160は、例えば、陰極線管(CRT)、液晶ディスプレイ(LCD)画面、気体ガスベースのフラットパネルディスプレイ、LCDプロジェクタ、タッチスクリーン、または他のタイプの表示デバイス等の1つ以上のデバイスを含むことができる。クライアント106は、他の入力デバイス161と、出力デバイス162とを含むことができる。入力デバイス161としては、例えば、キーボード、マウス、ジョイスティック、加速度計、カメラ、マイクロホン、ライトガン、ゲームコントローラ、タッチパッド、タッチスティック、押しボタン、光センサ、マイクロホン、ウェブカム、タッチスクリーンの入力デバイス、および/またはユーザ入力を提供し得る任意の他のデバイスを含むことができる。出力デバイス162は、光表示器、触覚デバイス、力フィードバックデバイス、振動デバイス、サウンドデバイス、および/または他のデバイスに対応し得る。
【0024】
クライアント106a、106bは、クライアントアプリケーション163ならびにアプリケーション配布サービス118から取得されたアプリケーションバイナリ133等の様々なアプリケーションを実行するように構成され得る。クライアントアプリケーション163は、例えば、コンピューティング環境103および/または他のサーバによって提供されるコンテンツにアクセスし、それをレンダリングし、それによりディスプレイ160上に画面166を生じさせるブラウザまたはモバイルアプリケーションに対応することができる。一実施形態では、クライアントアプリケーション163は、電子商取引システム124を介してアプリケーション127にアクセスし、それを閲覧し、および/またはそれを購入ために、クライアント106aによって実行されるアプリケーションまたはサービスを表すことができる。
【0025】
一実施形態では、クライアントアプリケーション163は、ユーザがアプリケーション配布サービス118を介して購入およびダウンロードするのに利用可能なアプリケーション127を閲覧し得る特殊目的アプリケーションを含むことができる。クライアントアプリケーション163は、ユーザがアプリケーション127を購入することを可能にするユーザインターフェースを提供することができ、その後アプリケーション配布サービス118がクライアント106へのアプリケーションバイナリ133の適切な互換性のあるバージョンのフルフィルメントを容易にすることができる。例えば、クライアントアプリケーション163は、ユーザの認証情報をアプリケーション配布サービス118に送信することができ、アプリケーション配布サービス118は、ユーザがアクセスする権利があるアプリケーション127がどれかを識別することができる。クライアントアプリケーション163は次に、ユーザがアクセスする権利があるアプリケーションに対応するアプリケーションバイナリ133を取得することができる。加えて、クライアントアプリケーション163はまた、クライアントアプリケーション163が実行され、デバイスをアプリケーション配布サービス118に登録するクライアント106に対応するデバイス能力を見出すことができる。したがって、アプリケーション配布サービス118は、ユーザがアクセスする権利があるアプリケーション127のアプリケーションバイナリ133および/またはブラウザアクセス可能なアプリケーション135の適切な互換性のあるバージョンを特定することができる。
【0026】
別の例として、クライアント106bはまた、ブラウザ165を実行することができ、それを介して、ユーザアカウントと関連付けられたユーザおよび/またはクライアント106がアクセスすることを許可されるアプリケーション127に対応するブラウザアクセス可能なアプリケーション135。そのようなシナリオでは、クライアント106bは、ユーザのユーザ名/パスワードの対または他の認証情報により、アプリケーション配布サービス118によって認証され得る。クライアント106bはまた、ブラウザのクッキー、MACアドレス、またはブラウザ165を介して取得され得、アプリケーション配布サービス118がクライアント106bと関連付けられたユーザアカウントを識別し得る、任意の他のデバイス識別子を介して認証され得る。ユーザは、様々な能力の複数のクライアント106をユーザアカウントに登録することができ、図示された例は、様々な能力の様々なクライアント106がいかにアプリケーション配布サービス118とともに使用され得るかを単に示すように図解されることが理解されるべきである。
【0027】
次に、ネットワーク化された環境100の様々な構成要素の動作の概要が提供される。初めに、上述のように、ユーザは、電子商取引システム124および/またはアプリケーション配布サービス118を介してアプリケーション127へのアクセスを購入および/または要求することができる。この購入に関連する決済情報を処理、および/またはユーザがアプリケーション127にアクセスすることを許可されるかを決定すると、アプリケーション配布サービス118は、ユーザのクライアント106と互換性のあるアプリケーション127と関連付けられたアプリケーションバイナリ133のフルフィルメントを開始することができる。
【0028】
一実施形態では、ユーザは、アプリケーション配布サービス118と相互作用する目的のためにクライアント106a上でクライアントアプリケーション163を実行することができる。クライアントアプリケーション163は、そのハードウェアおよび/またはソフトウェア能力および特徴等のクライアント106aの能力を見出し、クライアント106aに関する情報をアプリケーション配布サービス118に通信することができる。アプリケーション配布サービス118はまた、クライアント106aをユーザのユーザアカウント129に登録することを容易にすることができる。クライアントアプリケーション163から特定のクライアント106aに関する情報を受信することに応答して、アプリケーション配布サービス118は、デバイスをユーザのユーザアカウント129と関連付けることができる。加えて、アプリケーション配布サービス118はまた、クライアント106aに関する受信した情報に基づいて、クライアント106aと互換性のある適切なアプリケーションバイナリ133および/またはブラウザアクセス可能なアプリケーション135を決定することができる。
【0029】
したがって、アプリケーション配布サービス118は次に、クライアント106aへのアプリケーションの適切な互換性のあるバージョンのフルフィルメントを開始することができる。一実施形態では、デバイス互換性データ137は、アプリケーション127のデバイス互換性データ137を参照することによってユーザアカウント129と関連付けられた特定のクライアント106aに対する適切なアプリケーションバイナリ133を識別する。デバイス互換性データ137は、クライアントアプリケーション163によってアプリケーション配布サービス118に報告されたクライアント106aのハードウェアおよび/またはソフトウェア能力に基づいて、特定のデバイスに対するアプリケーションバイナリ133の互換性のあるバージョンを識別する。
【0030】
アプリケーション配布サービス118は、互換性のあるアプリケーションバイナリ133をクライアントアプリケーション163に送信することができ、クライアントアプリケーション163は、アプリケーションバイナリ133をクライアント106aにインストールすることができる。アプリケーション配布サービス118はまた、ユーザアカウント129に対応するデバイスデータ143によって識別されるようにユーザのデバイス互換性データ137および登録されたデバイスに基づいて、ユーザアカウント129と関連付けられた他のデバイスへのアプリケーションバイナリ133のフルフィルメントを開始することができる。このように、ユーザは、アプリケーション127へのアクセスを購入または取得することができ、アプリケーション配布サービス118は、ユーザのアカウントと関連付けられた様々なデバイスへのアプリケーションバイナリ133の互換性のあるバージョンのフルフィルメントを容易にすることができる。
【0031】
加えて、アプリケーション配布サービス118はまた、ユーザがユーザのアカウントのデバイスデータ143と関連付けられないデバイスからそのようにするときであってもアプリケーション127のバージョンにアクセスすることができるように、アプリケーション127と関連付けられたブラウザ互換性のあるアプリケーション135へのアクセスを許可することができる。一実施形態では、ユーザは、クライアント106bによって実行されるブラウザ165を介してサイトにアクセスすることができ、そのようなサイトは、アプリケーション配布サービス118および/または電子商取引システム124によって容易になり、ユーザがアプリケーションの権利145に従ってアクセスする権利があるアプリケーション127へのアクセスを提供する。サイトは、そのクライアントのハードウェアおよび/またはソフトウェア能力もしくは特徴など、ブラウザ165を介してクライアント106bの能力を見出すことを要求することができる。ブラウザ165は、クライアント106bに関する情報をアプリケーション配布サービス118に通信することができる。
【0032】
例えば、ブラウザ165は、理解され得るようにディスプレイ解像度、位置検出能力、利用できる入力デバイス、ブラウザのバージョン、オペレーティングシステム、およびクライアント106bの他の能力および特徴を通信することができる。クライアントアプリケーション163から特定のクライアント106bに関する情報を受けとることに応答して、アプリケーション配布サービス118は、ブラウザ165に関する受けた情報に基づいて、クライアント106bと互換性のあるブラウザアクセス可能なアプリケーション135を識別することができる。アプリケーション配布サービス118は次に、ユーザの代わりにアプリケーション127にアクセスする要求をブラウザアクセス可能なアプリケーション135の適切な互換性のあるバージョンに転送することができる。
【0033】
ここで図2を参照すると、ネットワーク化された環境100(図1)内のクライアント106の一例が示される。この非限定的な例では、クライアント106cは、スマートフォンに対応する。クライアント106cの画面166は、デバイスによって実行されるアプリケーションバイナリ133(図1)によって生成されたユーザインターフェースを示す。図示される例では、クライアント106cによって実行されるアプリケーションバイナリ133は、ユーザがアプリケーション配布サービス118にアクセスすること、またはアプリケーション配布サービス118と通信する任意のサイトからクライアントアプリケーション163および/またはブラウザ165によって報告される、クライアント106の能力および特徴に応じて、アプリケーション配布サービス118によって選択される。
【0034】
図示された例では、クライアント106によって実行されるアプリケーションバイナリ133は、ディスプレイ160のデバイス解像度、アスペクト比、および/または大きさに合わせられ得る。アプリケーションバイナリ133はまた、クライアント106によって実行されるオペレーティングシステム、ならびにデバイスが装備される容量性タッチスクリーンの入力デバイス等のユーザ入力デバイスのタイプに合わせられ得る。
【0035】
図2の例を続けると、ここで図3が参照され、これは、図3に示されるクライアント106dの能力に合わせられるアプリケーション配布サービス118によって提供されたアプリケーションバイナリ133を実行するクライアント106dの別の例である。この非限定的な例では、クライアント106dは、図2に示されるクライアント106cと比較して様々な能力を有する。図3の例では、クライアント106dは、図2に示されるクライアント106が含まない入力デバイス201が装備される。したがって、デバイスによって実行され、アプリケーションバイナリ133が履行されるクライアントアプリケーション163は、入力デバイス201の存在を報告することができ、アプリケーション配布サービス118は、デバイスが登録されるユーザアカウント129がアプリケーション127を得る権利があるかを決定すると、デバイスに履行されるべきであるアプリケーション127の互換性のあるバージョンをデバイス互換性データ137から決定することができる。
【0036】
図3の図示されたシナリオでは、アプリケーション127に対応する選択されたアプリケーションバイナリ133は、クライアント106dのさらなる入力デバイス能力を利用するように作成され、これは、図2に示されるクライアント106cに履行されたアプリケーションバイナリ133に存在し得ない機能である。いくつかの実施形態では、クライアント106dに履行されたアプリケーションバイナリ133は、異なるオペレーティングシステムのために構成されるか、または図2のクライアント106cとは異なり得るクライアント106dの他のハードウェアおよびソフトウェア特徴に合わせられ得る。
【0037】
いくつかのシナリオでは、アプリケーション配布サービス118は、ユーザアカウント129に登録される特定のクライアント106と互換性のあるアプリケーションバイナリ133を識別することができない場合があることも理解されるべきである。したがって、そのようなシナリオでは、アプリケーション配布サービス118は、ユーザアカウント129ならびに特定のクライアント106にアプリケーション127と関連付けられるブラウザ互換性のあるアプリケーション135にアクセスする権利を与えることができる。
【0038】
ここで図4が参照され、これは、ネットワーク化された環境100(図1)内のクライアント106eの別の例を図解する。この非限定的な例では、クライアント106eは、後ろ向きカメラで構成されるが、前向きカメラなしでも構成されるスマートフォンに対応する。クライアント106eの画面166は、クライアント106eによって実行されるアプリケーションバイナリ133(図1)によって生成されたユーザインターフェースを示す。図示された例では、クライアント106eは、ユーザアカウント129に登録され、アプリケーション配布サービス118は、クライアント106eの能力と互換性のあるアプリケーションバイナリ133のフルフィルメントを容易にする。
【0039】
したがって、クライアント106eによって、かつアプリケーションバイナリ133がアプリケーション配布サービス118を介して履行されることによって実行されるクライアントアプリケーション163は、後ろ向きカメラの存在および前向きカメラの欠如を報告することができ、アプリケーション配布サービス118は、デバイスに履行されるべきであるアプリケーション127に対応するアプリケーションバイナリ133の互換性のあるバージョンをデバイス互換性データ137から決定することができる。アプリケーション配布サービス118は、デバイスが登録されるユーザアカウント129がアプリケーション127を得る権利があるかを決定すると、適切なアプリケーションバイナリ133のフルフィルメントを開始することができる。
【0040】
図4の例を続けると、ここで図5が参照される。この非限定的な例では、クライアント106fは、後ろ向きカメラならびに前向きカメラ202で構成されるスマートフォンに相当する。クライアント106fの画面166は、クライアント106fによって実行されるアプリケーションバイナリ133(図1)によって生成されたユーザインターフェースを示す。図示された例では、クライアント106fは、ユーザアカウント129に登録され、アプリケーション配布サービス118は、クライアント106fの能力と互換性のあるアプリケーションバイナリ133のフルフィルメントを容易にする。図4および5のシナリオでは、アプリケーション127は、アプリケーションバイナリ133が実行されるクライアント106内の前向きカメラの存在に応じて、それらの構成が異なるアプリケーションバイナリ133と関連付けられ得る。
【0041】
したがって、クライアント106fによって実行され、アプリケーションバイナリ133がアプリケーション配布サービス118を介して履行されるクライアントアプリケーション163は、後ろ向きカメラおよび前向きカメラの存在を報告することができ、アプリケーション配布サービス118は、前向きカメラの存在に合わせられるアプリケーション127に対応するアプリケーションバイナリ133の互換性のあるバージョンをデバイス互換性データ137から決定することができる。図5の例に示されるように、アプリケーションバイナリ133の能力は、図4に示される例と比較してクライアント106fの様々なハードウェアおよび/またはソフトウェア能力によって異なり得る。
【0042】
図4〜5の例を続けると、ここで図6が参照される。この非限定的な例では、クライアント106gは、特定のアプリケーションに対応するブラウザアクセス可能なアプリケーション135にアクセスしているスマートフォンに対応する。図6の例に示されるように、ブラウザアクセス可能なアプリケーション135は、ブラウザを介してアクセス可能なデバイスの能力に合わせられ得る。本開示の実施形態はまた、ユーザがユーザアカウント129に登録し得る任意のタイプのクライアントデバイスへのアプリケーションの適切な互換性のあるバージョンのフルフィルメントを容易にし得ることも理解されるべきである。例えば、他のタイプのクライアントとしては、セットトップボックス、ゲームコンソール、テレビ、またはユーザアカウント129と関連付けられ、かつアプリケーション配布サービス118によって提供されたコンテンツにアクセスし得る任意の他のタイプのデバイスが挙げられ得る。
【0043】
図7に進むと、様々な実施形態によるアプリケーション配布サービス118の一部分の動作の一例を提供するフローチャートが示される。図7のフローチャートは、本明細書に記載されるようにアプリケーション配布サービス118の部分の動作を実現するために利用され得る多くの異なるタイプの機能的構成の単に一例を提供することが理解されよう。代替として、図7のフローチャートは、1つ以上の実施形態によるコンピューティング環境103(図1)で実現される方法のステップの例を示すと見なされ得る。
【0044】
ボックス303から始めて、アプリケーション配布サービス118は、ユーザアカウント129のためにアプリケーション127にアクセスする要求を取得する。ボックス305では、アプリケーション配布サービス118は、ユーザアカウント129がアプリケーション127にアクセスすることを許可されるかどうかを決定することができる。ユーザアカウント129がアプリケーションにアクセスすることを許可されない場合、アプリケーション配布サービス118は、ボックス307においてそのようなアクセスを許可することができる。そのような許可は、電子商取引システム124を介するアプリケーション127の購入、またはユーザアカウント129の代わりにアプリケーション127へのアクセスを許可する任意の他の方法を含むことができる。
【0045】
ボックス309では、アプリケーション配布サービス118は、ユーザアカウント129と関連付けられる1つ以上のデバイスを識別することができる。上述のように、各々のユーザアカウント129は、様々なハードウェアおよび/またはソフトウェア能力の様々なデバイスと関連付けられ得る。したがって、ボックス311では、アプリケーション配布サービス118は、ユーザアカウント129と関連付けられた様々なデバイスのデバイス能力を識別することができる。例えば、アプリケーション配布サービス118は、デバイスの各々によって実行されるオペレーティングシステムならびにデバイスの他のハードウェアおよびソフトウェア能力をユーザアカウント129と関連付けられたデバイスデータ143から決定することができる。
【0046】
ボックス313では、アプリケーション配布サービス118は次に、どのアプリケーション127のアプリケーションバイナリ133が検出されたデバイス能力に基づいてデバイスの各々に適切であるかをアプリケーション127と関連付けられたデバイス互換性データ137から決定することができる。上述のように、デバイス互換性データ137は、ある特定のアプリケーションバイナリ133がおよび/またはブラウザアクセス可能なアプリケーション135がある特定の能力および/または特徴を有するデバイスを対象とすることを特定することができる。したがって、ボックス315では、アプリケーション配布サービス118は、ユーザアカウント129と関連付けられた様々なデバイスへの適切なアプリケーションバイナリ133のフルフィルメントを開始することができる。一例では、アプリケーション配布サービス118は、適切なアプリケーションバイナリ133をそれぞれのデバイス上で実行されるクライアントアプリケーション163に送信することができ、それは、デバイス上のアプリケーションバイナリ133のインストールおよび/または実行を容易にすることができる。加えて、いくつかの例では、アプリケーション配布サービス118はまた、ユーザと関連付けられた適切なクライアントへの適切なブラウザアクセス可能なアプリケーション135のフルフィルメントを開始することができる。加えて、アプリケーション配布サービス118はまた、ボックス317においてアプリケーション127と関連付けられた適切なブラウザアクセス可能なアプリケーション135にクライアント106へのアクセスを許可することによってアプリケーションのフルフィルメントを開始することができる。
【0047】
クライアントアプリケーション163および/またはアプリケーションバイナリ133はまた、アプリケーション配布サービス118によって取得され、かつアプリケーション配布サービス118によって特定のクライアント106に提供された特定のアプリケーションバイナリ133と関連付けられ得るアプリケーション性能測定基準を報告することができる。例えば、アプリケーションバイナリ133および/またはクライアントアプリケーション163は、限定されないが、プロセッサ利用率、ビデオフレームレートデータ、アプリケーションの異常終了および/もしくはクラッシュデータ、または任意の他の性能測定基準もしくはデータ等の様々な測定基準を追跡するように構成され得る。このように、アプリケーション配布サービス118は、特定のアプリケーションバイナリ133の性能を追跡し、特定のアプリケーション127と関連付けられたデバイス互換性データを改善するために使用され得る報告データを提供することができる。
【0048】
図8を参照すると、本開示の一実施形態によるコンピューティング環境103の略ブロック図が示される。コンピューティング環境103は、1つ以上のコンピューティングデバイス700を含む。コンピューティングデバイス700は、例えば、プロセッサ703と、メモリ706とを有し、この両方がローカルインターフェース709に結合される、少なくとも1つのプロセッサ回路を含む。この目的のために、コンピューティングデバイス700は、例えば、少なくとも1つのサーバコンピュータまたは同様のデバイスを備えることができる。ローカルインターフェース709は、例えば、付属のアドレス/制御バスまたは理解され得るような他のバス構造を有するデータバスを備えることができる。
【0049】
プロセッサ703によって実行可能なデータおよびいくつかの構成要素の両方がメモリ706内に記憶される。具体的には、決済追跡アプリケーション118および潜在的には他のアプリケーションが、メモリ706内に記憶され、プロセッサ703によって実行可能である。データストア115および他のデータもまた、メモリ706内に記憶され得る。加えて、オペレーティングシステムは、メモリ706内に記憶され、プロセッサ703によって実行可能であり得る。
【0050】
理解され得るようにメモリ706内に記憶され、かつプロセッサ703によって実行可能である他のアプリケーションがあり得ることが理解されよう。本明細書に記載されるあらゆる構成要素がソフトウェアの形態で実装される場合、いくつかのプログラミング言語のうちのいずれか1つが、例えば、C、C++、C#、オブジェクティブC、Java(登録商標)、JavaScript(登録商標)、Perl、PHP、Visual Basic(登録商標)、Python(登録商標)、Ruby、Delphi(登録商標)、Flash(登録商標)、または他のプログラミング言語などが利用され得る。
【0051】
いくつかのソフトウェア構成要素は、メモリ706内に記憶され、プロセッサ703によって実行可能である。この点において、「実行可能な」という用語は、プロセッサ703によって最終的に実行され得る形態であるプログラムファイルを意味する。実行可能なプログラムの例は、例えば、メモリ706のランダムアクセスの部分にロードされ、かつプロセッサ703によって動作され得る形式で機械語に翻訳され得るコンパイルしたプログラム、メモリ706のランダムアクセスの部分にロードされ、かつプロセッサ703によって実行されることができるオブジェクトコード等の適切な形式で表され得るソースコード、またはプロセッサ703によって実行されるメモリ706のランダムアクセスの部分内に命令を生成するように別の実行可能なプログラムによって解釈され得るソースコードなどであってもよい。実行可能なプログラムは、例えば、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、ハードドライブ、ソリッドステートドライブ、USBフラッシュドライブ、メモリカード、コンパクトディスク(CD)もしくはデジタル多用途ディスク(DVD)等の光ディスク、フロッピーディスク、磁気テープ、または他のメモリ構成要素を含む、メモリ706の任意の部分または構成要素内に記憶され得る。
【0052】
メモリ706は、揮発性および不揮発性メモリの両方ならびにデータ記憶構成要素を含むと本明細書に定義される。揮発性構成要素は、電源喪失時にデータ値を保持しないものである。不揮発性構成要素は、電源喪失時にデータを保持するものである。したがって、メモリ706は、例えば、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、ハードディスクドライブ、ソリッドステートドライブ、USBフラッシュドライブ、メモリカードリーダを介してアクセスされるメモリカード、関連したフロッピーディスクドライブを介してアクセスされるフロッピーディスク、光ディスクドライブを介してアクセスされる光ディスク、適切なテープドライブを介してアクセスされる磁気テープ、および/もしくは他のメモリ構成要素、またはこれらのメモリ構成要素のうちのいずれか2つ以上の組み合わせを含むことができる。加えて、RAMは、例えば、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、または磁気ランダムアクセスメモリ(MRAM)、および他のそのようなデバイスを含むことができる。ROMは、例えば、プログラマブル読み取り専用メモリ(PROM)、消去可能プログラマブル読み取り専用メモリ(EPROM)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM)、または他の同様のメモリデバイスを含むことができる。
【0053】
また、プロセッサ703は、複数のプロセッサ703を表すことができ、メモリ706は、並列処理回路でそれぞれ動作する複数のメモリ706を表すことができる。そのような場合、ローカルインターフェース709は、複数のプロセッサ703のうちのいずれか2つとの間、任意のプロセッサ703とメモリ706のいずれかとの間、またはメモリ706のうちのいずれか2つの間などで通信を容易にする適切なネットワークであり得る。ローカルインターフェース709は、例えば、ロードバランシングを実施することを含む、この通信を調整するように設計される追加のシステムを備えることができる。プロセッサ703は、電気的またはいくつかの他の利用可能な構築物であってもよい。
【0054】
本明細書に記載されるアプリケーション配布サービス118、電子商取引システム124、および他の様々なシステムは、上述のように汎用ハードウェアによって実行されるソフトウェアまたはコードに具体化され得るが、代替として、専用ハードウェアまたはソフトウェア/汎用ハードウェアと専用ハードウェアとの組み合わせにおいても同じことが具体化され得る。専用ハードウェアに具体化される場合、各々は、いくつかの技術のうちのいずれか1つまたはこれらの組み合わせを利用する回路または状態機械として実現され得る。これらの技術としては、これらに限定されないが、1つ以上のデータ信号の適用時に様々な論理関数を実現するための論理ゲートを有する離散論理回路、適切な論理ゲートを有する特定用途向け集積回路、または他の構成要素などが挙げられ得る。そのような技術は、当業者に一般的に周知であり、それ故に本明細書に詳細に記載されない。
【0055】
図7のフローチャートは、アプリケーション配布サービス118および電子商取引システム124の部分の実現形態の機能および動作を示す。ソフトウェアに具体化される場合、各ブロックは、特定の論理機能(複数可)を実現するプログラム命令を備えるモジュール、セグメント、またはコードの部分を表すことができる。プログラム命令は、プログラミング言語で書かれた人間が読むことのできるステートメントを含むソースコード、コンピュータシステムまたは他のシステム内のプロセッサ703等の適切な実行システムによって認識できる数値命令を含む機械語の形態で具体化され得る。機械語は、ソースコードなどから変換され得る。ハードウェアに具体化される場合、各ブロックは、特定の論理機能(複数可)を実現する回路またはいくつかの相互接続された回路を表すことができる。
【0056】
図7のフローチャートは、実行の特定の順を示すが、実行の順は、図示される順とは異なり得ることが理解されよう。例えば、2つ以上のブロックの実行の順は、図示される順に対して入れ替えられてもよい。また、図7に連続して示される2つ以上ブロックは、同時にまたは部分的同時に実行されてもよい。さらに、いくつかの実施形態では、図7に示されるブロックのうちの1つ以上は、飛ばされるか、または省略されてもよい。加えて、任意の数のカウンタ、状態変数、警告セマフォ、またはメッセージが、改良された有用性、課金、性能測定、またはトラブルシューティング支援機能を提供することなどの目的のために本明細書に記載される論理フローに追加され得る。すべてのそのような変形は、本開示の範囲内であることが理解されよう。
【0057】
また、ソフトウェアまたはコードを備えるアプリケーション配布サービス118および電子商取引システム124を含む本明細書に記載されるあらゆる論理またはアプリケーションは、例えば、コンピュータシステムまたは他のシステム内のプロセッサ703等の命令実行システムによって、またはそれに関連して使用するために任意の非一時的コンピュータ可読媒体に具体化され得る。この意味で、論理は、例えば、コンピュータ可読媒体から取り出され、かつ命令実行システムによって実行され得る命令および宣言を含むステートメントを備えることができる。本開示において、「コンピュータ可読媒体」は、命令実行システムによって、またはそれに関連して使用するために本明細書に記載される論理またはアプリケーションを格納、記憶、保持し得るあらゆる媒体であり得る。
【0058】
コンピュータ可読媒体は、例えば、磁気、光学、または半導体媒体等の多くの物理的媒体のうちのいずれか1つを含むことができる。好適なコンピュータ可読媒体のより具体的な例としては、限定されないが、磁気テープ、磁気フロッピーディスケット、磁気ハードドライブ、メモリカード、ソリッドステートドライブ、USBフラッシュドライブ、または光ディスクが挙げられる。また、コンピュータ可読媒体は、例えば、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、または磁気ランダムアクセスメモリ(MRAM)を含むランダムアクセスメモリ(RAM)であってもよい。加えて、コンピュータ可読媒体は、読み取り専用メモリ(ROM)、プログラマブル読み取り専用メモリ(PROM)、消去可能プログラマブル読み取り専用メモリ(EPROM)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM)、または他のタイプのメモリデバイスであってもよい。
【0059】
本開示の前述の実施形態は、本開示の原理の明確な理解のために記載される実現形態の単に考えられ得る例であることが強調されるべきである。本開示の趣旨および原理から大幅に逸脱することなく、多くの変形および修正が前述の実施形態(複数可)になされ得る。すべてのそのような修正および変形は、本開示の範囲内で本明細書に含まれ、以下の特許請求の範囲によって保護されることが意図される。
【0060】
付記
付記1.
少なくとも1つのコンピューティングデバイスで実行可能なプログラムを具体化する非一時的コンピュータ可読媒体であって、
ユーザアカウントのためにアプリケーションにアクセスする要求を取得するコードであって、この要求がクライアントデバイスから取得される、コードと、
クライアントデバイスがユーザアカウントに登録されるかどうかを決定するコードと、
クライアントデバイスがユーザアカウントに登録されてないときに、クライアントデバイスをユーザアカウントに登録するコードと、
ユーザアカウントがアプリケーションにアクセスすることを許可されるかどうかを決定するコードと、
アプリケーションにアクセスすることをユーザアカウントに許可するコードと、
クライアントデバイスと関連付けられたデバイス特性を識別するコードと、
デバイス特性と関連付けられるアプリケーションに対応するアプリケーションバイナリを識別するコードと、
アプリケーションバイナリをクライアントデバイスに送信するコードと、を備える、非一時的コンピュータ可読媒体。

付記2.
このプログラムは、ブラウザアクセス可能なアプリケーションにアクセスする権利をデバイスに与えるコードをさらに備え、このブラウザアクセス可能なアプリケーションは、デバイス特性に少なくとも一部基づいて選択される、付記1に記載の非一時的コンピュータ可読媒体。

付記3.
このプログラムは、ユーザアカウントと関連付けられた複数のクライアントデバイスへのアプリケーションに対応するそれぞれの互換性のあるアプリケーションバイナリのフルフィルメントを開始するコードをさらに備える、付記1に記載の非一時的コンピュータ可読媒体。

付記4.
少なくとも1つのコンピューティングデバイスと、
少なくとも1つのコンピューティングデバイスで実行可能なアプリケーション配布サービスであって、アプリケーション配布サービスが、
少なくとも1つのクライアントのためにアプリケーションにアクセスする要求を取得する論理と、
少なくとも1つのクライアントに対応する少なくとも1つの特性を識別する論理と、
少なくとも1つの特性と関連付けられたアプリケーションのそれぞれの互換性のあるバージョンを識別する論理と、
少なくとも1つのクライアントへのそれぞれの互換性のあるバージョンのフルフィルメントを開始する論理と、を備える、アプリケーション配布サービスと、を備える、システム。

付記5.
アプリケーション配布サービスは、
クライアントをユーザアカウントに登録する要求を取得する論理と、
クライアントに対応するデバイス識別子を生成する論理と、
デバイスをユーザアカウントと関連付ける論理と、をさらに備える、付記4に記載のシステム。

付記6.
アプリケーション配布サービスは、デバイスと関連付けられたデバイス特性を見出す論理をさらに備える、付記5に記載のシステム。

付記7.
デバイス特性を見出す論理は、デバイスによって実行されるアプリケーションからデバイス特性を取得する論理をさらに備える、付記6に記載のシステム。

付記8.
デバイスによって実行されるアプリケーションは、コンテンツ配信アプリケーションと通信するように構成されたブラウザまたはクライアントアプリケーションのうちの少なくとも1つである、付記7に記載のシステム。

付記9.
それぞれの互換性のあるバージョンのフルフィルメントを開始する論理は、
少なくとも1つのクライアントと関連付けられたユーザアカウントを識別する論理と、
それぞれの互換性のあるバージョンに対応する製品識別子を識別する論理と、
ユーザアカウントを製品識別子と関連付ける論理と、をさらに備える、付記4に記載のシステム。

付記10.
それぞれの互換性のあるバージョンのフルフィルメントを開始する論理は、
アプリケーションのブラウザアクセス可能なバージョンを識別する論理と、
アプリケーションのブラウザアクセス可能なバージョンへのアクセスをユーザアカウントに許可する論理と、をさらに備える、付記4に記載のシステム。

付記11.
それぞれの互換性のあるバージョンのフルフィルメントを開始する論理は、それぞれの互換性のあるバージョンを少なくとも1つのクライアントに送信する論理をさらに備える、付記4に記載のシステム。

付記12.
少なくとも1つの特性は、少なくとも1つのクライアントと関連付けられた言語または地域のうちの少なくとも1つを含む、付記4に記載のシステム。

付記13.
少なくとも1つの特性は、少なくとも1つのクライアントのハードウェア特徴と関連付けられた特性を含む、付記4に記載のシステム。

付記14.
ハードウェア特徴は、カメラ特性、ディスプレイ解像度、マイクロホン特性、プロセッサ速度、プロセッサ識別情報、スピーカ特性、または全地球的航法衛星システムのチップセットの存在のうちの少なくとも1つを含む、付記13に記載のシステム。

付記15.
少なくとも1つの特性は、少なくとも1つのクライアントによって実行されるオペレーティングシステムまたはブラウザのうちの少なくとも1つの識別情報またはバージョンのうちの少なくとも1つを含む、付記4に記載のシステム。

付記16.
それぞれの互換性のあるバージョンは、オペレーティングシステム内で実行可能なバイナリアプリケーションを含む、付記15に記載のシステム。

付記17.
少なくとも1つのコンピューティングデバイスで、ユーザアカウントのためにアプリケーションにアクセスする要求を受信するステップと、
少なくとも1つのコンピューティングデバイスで、ユーザアカウントと関連付けられた複数のデバイスを識別するステップと、
少なくとも1つのコンピューティングデバイスで、複数のデバイスの各々に対応するアプリケーションのそれぞれ複数の互換性のあるバージョンを識別するステップと、
少なくとも1つのコンピューティングデバイスで、複数のデバイスへのそれぞれの互換性のあるバージョンのフルフィルメントを開始するステップと、を含む、方法。

付記18.
複数のデバイスへのそれぞれの互換性のあるバージョンのフルフィルメントを開始するステップは、アプリケーションのそれぞれの互換性のあるバージョンを複数のデバイスの各々によって実行されるそれぞれのクライアントアプリケーションに送信することをさらに含む、付記17に記載の方法。

付記19.
複数のデバイスへのそれぞれの互換性のあるバージョンのフルフィルメントを開始するステップは、ユーザアカウントにアプリケーションの少なくとも1つのブラウザアクセス可能なバージョンにアクセスする権利を与えることをさらに含む、付記17に記載の方法。

付記20.
複数のデバイスの各々に対応するアプリケーションのそれぞれ複数の互換性のあるバージョンを識別するステップは、アプリケーションと関連付けられたデバイス互換性データに少なくとも一部基づいている、付記17に記載の方法。

付記21.
このデバイス互換性データは、複数のデバイスのサブセットと関連付けられた少なくとも1つの特性を含み、この少なくとも1つの特性は、複数のデバイスによって実行されるそれぞれのオペレーティングシステム、カメラ特性、ディスプレイ解像度、マイクロホン特性、プロセッサ速度、プロセッサ識別情報、スピーカ特性、または全地球的航法衛星システムのチップセットの存在を含む、付記20に記載の方法。

付記22.
ユーザアカウントと関連付けられた複数のデバイスを識別するステップは、ユーザアカウントと関連付けられた複数の登録されたデバイスに少なくとも一部基づき、この登録されたデバイスは、複数の登録されたデバイスの各々の中で実行されるそれぞれのクライアントアプリケーションによって登録される、付記17に記載の方法。
図1
図2
図3
図4
図5
図6
図7
図8