本開示の多くの態様は、図面を参照してより良く理解され得る。図面における構成要素は、必ずしも原寸に比例して描写されておらず、むしろ、本開示の原理を明白に例示することに重点を置いている。更に、図面において、同様の参照番号は、いくつかの図を通して対応する部分を指定する。
例えば、ユーザは、コンピューティングデバイスのためのアプリケーションを購入してもよく、購入されたアプリケーションは、ユーザが資格を付与されるアプリケーションの資格付与ロッカー(entitlement locker)の一部となってもよい。また、ユーザおよび/またはユーザのアプリケーションによって利用されるデータまたは媒体は、ユーザの資格付与ロッカーの一部と考えられてもよい。更に、ユーザは、(ユーザが使用する資格を付与される)データおよび/またはアプリケーションを、資格付与ロッカーが存在するネットワークサイトにアップロードすることによって、資格付与ロッカーを追加してもよい。したがって、本開示の様々な実施形態は、ユーザがコンピューティングデバイスに対して自身を識別し、次いで、ユーザが資格を付与されるアプリケーションおよび/またはデータの資格付与ロッカーへのネットワークアクセスを提供されることを可能にする。以下の論述において、システムおよびその構成要素の一般的説明が提供され、その後、その作動の論述が続く。
図1を参照すると、様々な実施形態によるネットワーク化された環境100が示される。ネットワーク化された環境100は、ネットワーク109を経由する1つまたは複数のクライアント106とデータ通信する、1つまたは複数のコンピューティングデバイス103を含む。ネットワーク109は、例えば、インターネット、イントラネット、エクストラネット、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、有線ネットワーク、無線ネットワーク、もしくは他の好適なネットワーク等、または2つまたはそれ以上のそのようなネットワークのいずれかの組み合わせを含む。
コンピューティングデバイス103は、例えば、サーバコンピュータまたは計算能力を提供するその他のシステムを備えてもよい。または、例えば、1つまたは複数のサーババンクまたはコンピュータバンク、もしくは他の配列で配列される、複数のコンピューティングデバイス103が使用されてもよい。例えば、複数のコンピューティングデバイス103は、一緒に、クラウドコンピューティングリソース、グリッドコンピューティングリソース、および/またはその他の分散された計算配列を備えてもよい。そのようなコンピューティングデバイス103は、単一の設備内に位置してもよく、または多くの異なる地理的位置の間に分散されてもよい。利便の目的のために、コンピューティングデバイス103は、本明細書において単数形で言及される。たとえコンピューティングデバイス103が単数形で言及されても、複数のコンピューティングデバイス103が、以下に記載されるように、様々な配列で使用されてもよいことを理解されたい。
様々なアプリケーションおよび/または他の機能性が、様々な実施形態によるコンピューティングデバイス103において、実行されてもよい。また、様々なデータは、コンピューティングデバイス103にアクセス可能であるデータストア112内に記憶されてもよい。データストア112は、理解され得るように、複数のデータストア112を表してもよい。データストア112内に記憶されたデータは、例えば、様々なアプリケーションおよび/または以下に記載される機能体の作動と関連付けられる。
コンピューティングデバイス103上で実行される構成要素は、例えば、ロッカー管理者アプリケーション114a、エミュレーションサーバアプリケーション115、電子商取引アプリケーション117、複数のアプリケーション119a...119N、および他のアプリケーション、サービス、処理、システム、エンジン、または本明細書で詳細に論じられない機能性を含む。エミュレーションサーバアプリケーション115は、アプリケーションセッションサーバの型に対応してもよい。エミュレーションサーバアプリケーション115は、アプリケーション119を起動するために実行され、アプリケーション119は、アプリケーション119がクライアントコンピューティングデバイス106のネットワークブラウザを使用してアクセスされるシナリオで、アプリケーション119のための仮想される環境内で実行される。他のシナリオにおいて、アプリケーション119は、クライアントコンピューティングデバイス106にダウンロードされ、インストールされ、次いでクライアントコンピューティングデバイス106によって実行されてもよい。同様に、ロッカー管理者アプリケーション114bは、クライアントコンピューティングデバイス106にダウンロードされ、インストールされ、次いでクライアントコンピューティングデバイス106によって実行されてもよい。
したがって、ロッカー管理者アプリケーション114のバージョンは、コンピューティングデバイス103またはクライアントコンピューティングデバイス106によって実行されてもよい。ゆえに、ロッカー管理者アプリケーションは、コンピューティングデバイス103によって実行されるとき、「ロッカー管理者アプリケーション114a」として示され、クライアントコンピューティングデバイス106によって実行されるとき、「ロッカー管理者アプリケーション114b」として示されてもよい。
ロッカー管理者アプリケーション114は、ユーザが、アプリケーション119および/またはユーザによってアクセスされる資格を付与されたデータにアクセスすることを可能とするために実行される。様々な実施形態において、現在のクライアントコンピューティングデバイス106のためのアプリケーションを購入するユーザは、たとえユーザが現在のクライアントコンピューティングデバイス106を交換し、および/または新しいクライアントコンピューティングデバイス106を購入しても、アプリケーションに対する資格を保持する。更に、いくつかの実施形態において、ユーザがアプリケーション119のうちの1つにアクセスするために、ロッカー管理者アプリケーション114にサインインまたはログインしなければならないことが要求される。アプリケーション119がユーザによってアクセスされると、ロッカー管理者アプリケーション114は、ユーザがアプリケーション119に対する資格を有するかどうかを検証する。ユーザがサインインせず、またはアプリケーション119に対する資格を有しない場合、アプリケーション119は、使用可能とならない。しかし、ユーザは、電子商取引システム117を介して購入することによる等、アプリケーション119を購入することによって資格を得ることができる。同様に、ユーザは、適用可能なアプリケーション、リソース等のための使用もしくは貸借期間、またはライセンス期間が満了した後、アプリケーションまたは他のリソースに対する資格を失う場合もある。したがって、特定のリソースに対する資格は、限定された継続期間を有する場合がある。例えば、ユーザの電子書籍もしくは定期刊行物、またはネットワーク映画サービスに対する購読は、結局、休止する場合がある。
更に、いくつかの実施形態において、ロッカー管理者アプリケーション114は、第1のユーザがコンピューティングデバイス106上で第1のアプリケーション119のユーザとしてサインインし、第2のユーザがコンピューティングデバイス106上で第2のアプリケーション119の現在のユーザとしてサインインすることを可能にする。したがって、コンピューティングデバイス106は、多重タスク処理して、1つのアプリケーションを第1のユーザの資格付与ロッカー116から実行し、かつ別のアプリケーションを第2のユーザの資格付与ロッカー116から実行してもよい。
また、いくつかの実施形態において、クライアントコンピューティングデバイス106上でのアプリケーション119のインストール中、デバイス106は、購入ユーザに定義された期間中、アプリケーション119にアクセスするための権利を許可する電子商取引システム117から、トークンをダウンロードしてもよい。したがって、有効なトークンは、この定義された期間中、アプリケーション119を購入したユーザがアプリケーションにオフラインでアクセスすることを可能にしてもよい。ゆえに、ロッカー管理者114は、コンピューティングデバイス(複数可)103と定期的に通信し、トークンを更新して、新しい使用期間を確立してもよい。
ロッカー管理者アプリケーション114は、特定のユーザのためのデータストア112に対する保存状態データ133を伝送および取得するためにも実行される。したがって、ロッカー管理者アプリケーション114は、ユーザがログイン証明書を提供することを可能にし、それによってログイン証明書は、ユーザが資格を付与されるアプリケーションおよび/またはデータとユーザを関連付けるために使用される。ロッカー管理者アプリケーション114は、データストア112と通信し、例えば、ハイパーテキスト転送プロトコル(HTTP)、簡易オブジェクトアクセスプロトコル(SOAP)、表現状態転送(representational state transfer)(REST)、リアルタイムトランスポートプロトコル(RTP)、リアルタイムストリーミングプロトコル(RTSP)、リアルタイムメッセージングプロトコル(RTMP)、ユーザデータグラムプロトコル(UDP)、トランスミッションコントロールプロトコル(TCP)、および/またはネットワーク109を介してデータを通信するための他のプロトコル等、様々なプロトコルを介するユーザと関連付けられたアプリケーションおよびデータ情報等の関係する情報を得てもよい。ロッカー管理者アプリケーション114は、クライアントコンピューティングデバイス106を共有し得るそれぞれのユーザのための状態情報133および資格付与ロッカー116を維持するように構成される。
電子商取引アプリケーション117は、ネットワーク109を介する商人からの、ダウンロードされたアプリケーション等の物品のオンライン購入を容易にするために実行される。電子商取引アプリケーション117は、物品のオンライン購入を容易にするために、商人のオンラインの存在と関連付けられた様々なバックエンド機能も行う。例えば、電子商取引アプリケーション117は、ネットワークページもしくは購入、貸借、ダウンロード、リース、または他の形態の消費のための物品を選択する目的のためにクライアント106に提供される、その部分を生成してもよい。いくつかの実施形態において、電子商取引アプリケーション117は、複数の商人が参加する電子市場を含む、ネットワークサイトと関連付けられる。
アプリケーション119は、例えば、ゲームまたは他の種のアプリケーションに対応してもよい。非限定的な実施形態としては、アプリケーション119は、第1人称シューターゲーム、アクションゲーム、アドベンチャーゲーム、パーティーゲーム、ロールプレーイングゲーム、シミュレーションゲーム、戦略ゲーム、自動車シミュレーションゲーム、および/または他の種のゲームに対応してもよい。アプリケーション119は、元来、例えば、スマートフォン、タブレット、ビデオゲームコンソール、携帯式ゲームデバイス、アーケードゲームデバイス等、汎用性コンピューティングデバイスまたは専用デバイスにおける実行のために設計されてもよい。アプリケーション119は、携帯電話アプリケーション、コンピュータ援用設計(CAD)アプリケーション、コンピュータ援用製造(CAM)アプリケーション、写真操作アプリケーション、ビデオ編集アプリケーション、オフィス生産性アプリケーション、オペレーティングシステム、および関連付けられたアプリケーション、オペレーティングシステムのためのエミュレーター、アーキテクチャ、および消費者デバイス上に存在しない能力、ならびに他のアプリケーションおよびアプリケーションの組み合わせにも対応してもよい。エミュレーターシステムは、例えば、そのためにアプリケーションソフトウェアが書きこまれた、いくつかの、または全てのハードウェアおよび/またはシステムのソフトウェア構成要素をエミュレートまたはシミュレートする、ソフトウェアおよび/またはハードウェア構成要素を含んでもよいであろう。例えば、エミュレーターシステムは、タブレットコンピュータまたはスマートフォン等のパーソナルコンピューティングデバイスを備え、システムのハードウェアおよび/またはファームウェアをシミュレートする、ソフトウェアエミュレータープログラムを実行し得るであろう。エミュレーターは、システムのハードウェアおよび/またはファームウェアをシミュレートする汎用性コンピュータも備え得るであろう。
アプリケーション119は、アプリケーション119が実行されるデバイスの1つまたは複数のリソースにアクセスすることを予測する場合がある。そのようなリソースは、表示デバイス、入力デバイス、または他のデバイスに対応する場合がある。いくつかの場合において、アプリケーション119は、リソースの1つまたは複数への排他的アクセスを要求してもよく、それによって、他のアプリケーションは、特定のリソースにアクセスを有し得ない。
データストア112に記憶されたデータは、例えば、アプリケーション127、保存状態データ133、ユーザデータ136、資格データ134、デバイスインターフェース137、および潜在的に他のデータを含む。データストア112は、複数のユーザのための資格付与ロッカー116を含み、資格付与ロッカー116は、ユーザがアクセスする、いかなるコンピューティングデバイス106にも転送され得る、上記の保存状態データ133、ユーザデータ136、資格データ134等を含む、ユーザの私事に触れるデータを維持する。資格データ134としては、音楽ファイル、写真ファイル、ビデオファイル、電子書籍、保存された電子メール、ビデオゲーム、およびビデオゲームのダウンロード可能なコンテンツ(例えば、特定の拡張子、資格の権利、ロック解除キー、または仮想物品もしくはビデオゲーム内の部分要素等に対する他の権利)、文書ファイル等が挙げられ得るが、これらに限定されない。資格付与ロッカー116は、購入されたアプリケーション119の識別、ユーザによってデータストア112に転送されたアプリケーション127、ユーザによってデータストア112に転送された資格データ134、資格リスト上に含まれるアプリケーション119から転送された資格データ134、ユーザが使用するためのライセンスを現在有するサービス等を含む。1つの特定の資格データ134は、また、別の資格データに依存し、またはこれから拡張してもよい。例えば、ユーザは、1000単位のゲーム内通貨を購入し、またはゲーム内の新しいレベルに対する権利を買ってもよい。この新しいレベルまたは通貨は、利用されるために、ゲーム自体の資格データを含むユーザの資格付与ロッカー116に依存する、1つの資格データ134である。そのような資格は、他の媒体にも同様に適用されてもよい。例えば、資格データ134は、書籍に対する編集権(例えば、ユーザはテキストをコピーすることができ、またはテキストはロックされる)、代替終了、ディレクターの映画に対する論評トラック等に対応してもよい。
アプリケーション127は、アプリケーション119として起動されるために利用可能である、異なるアプリケーションのライブラリに対応する。アプリケーション127は、コンピューティングデバイス103内の実行可能なコードに対応してもよい。あるいは、アプリケーション127は、別の型のデバイス(例えば、クライアントコンピューティングデバイス106)内で実行可能であるコードに対応してもよいが、コンピューティングデバイス103内で実行可能ではない。
保存状態データ133は、アプリケーション119によって保存されたアプリケーション状態(例えば、ゲームの状態)または設定等のアプリケーション状態に対応する。保存状態データ133は、ユーザがどこにアプリケーション、カスタマイズ可能なアプリケーション設定等を残したかについて、アプリケーション内にブックマークまたはプレースホールダーも含んでもよい。ユーザは、アプリケーションのそれぞれについて、異なる、または個別のバージョンの保存状態データ133を有してもよい。更に、特定のコンピューティングデバイスは、デスクトップの配置またはデバイスに関する他の設定を保存する保存状態データファイル133を有してもよい。アプリケーション119は、仮想化された環境で実行されてもよいため、アプリケーション119は、状態情報を仮想位置に書き込んでもよく、これは、次いで、保存状態データ133としてデータストア112内に記憶するためにマップされる。様々な実施形態において、保存状態データ133は、通常、アプリケーション119によって保存されるデータに対応してもよく、またはいつでも再開され得る、アプリケーション119のメモリ画像に対応してもよい。また、いくつかの実施形態において、保存状態データ133は、コンピューティングデバイス106自体の完全な状態に対応してもよい。例えば、第1のコンピューティングデバイス106の状態は、データストア112に保存されてもよく(例えば、電源を切る前に休止状態を経るとき)、これは、別のコンピューティングデバイス106が第1のコンピューティングデバイス106のまさにその保存状態で起動されることを可能にする。
ユーザデータ136は、例えば、ユーザと関連付けられたコンピューティングデバイスの型、セキュリティー証明書、アプリケーションの優先度、請求情報、それぞれのユーザの資格付与ロッカー116に列挙されたリソースにアクセスすることを可能とされる他のユーザの一覧等、アプリケーション119のユーザに関する様々なデータを含む。
デバイスインターフェース137は、画像、アニメーション、コード、ハイパーテキストマークアップランゲージ(HTML)、エクステンシブルマークアップランゲージ(XML)、カスケードスタイルシート(CSS)、および/または仮想化されたコンピューティングデバイスのグラフィック表現を生成するために使用され得る他のデータに対応する。特定のコンピューティングデバイスプラットフォーム上で実行可能であるアプリケーション119が、多数のデバイスインターフェース137と関連付けられてもよいことに留意されたい。非限定的な実施例として、スマートフォンのためのAndroid(登録商標)プラットフォームは、多数の異なるモデルのスマートフォンによって支持されてもよい。モデルのいくつかは、タッチスクリーン付きミニキーボードを有してもよいが、一方で他のものは、物理的ミニキーボードを有しないタッチスクリーンのみを有してもよい。モデルは、異なる制御装置および筐体を有してもよい。ゆえに、異なるデバイスインターフェース137が、異なるモデルのAndroid(登録商標)スマートフォンに提供されてもよい。
クライアント106は、ネットワーク109に接続され得る、複数のクライアントデバイスを表す。クライアント106は、例えば、コンピュータシステム等のプロセッサに基づくシステムを備えてもよい。そのようなコンピュータシステムは、アプリケーションを実行し、ネットワーク109、音楽プレーヤー、ウェブパッド、タブレットコンピュータシステム、ゲームコンソール、電子書籍リーダー、または同様の能力を有する他のデバイスにアクセスし得るデスクトップコンピュータ、ラップトップコンピュータ、携帯情報端末、移動式電話、スマートフォン、セットトップボックス、テレビの形態で実施されてもよい。
クライアント106は、ディスプレイ139を含んでもよい。ディスプレイ139は、陰極線管(CRT)、液晶ディスプレイ(LCD)スクリーン、ガスプラズマに基づくフラットパネルディスプレイ、LCDプロジェクター、または他の型のディスプレイデバイス等の例えば、1つまたは複数のデバイスを備えてもよい。クライアント106は、1つまたは複数の入力デバイス142を含んでもよい。入力デバイス142は、例えば、キーボード、マウス、ジョイスティック、加速度計、ライトガン、ゲーム制御装置、タッチパッド、タッチスティック、押しボタン、光学センサ、マイク、ウェブカム、および/またはユーザ入力を提供し得るその他のデバイス等のデバイスを備えてもよい。加えて、様々な入力デバイス142は、ユーザにフィードバックを提供するために、触覚技術を組み込んでもよい。
クライアント106は、クライアントアプリケーション145および/または他のアプリケーション等の様々なアプリケーションを実行するように構成されてもよい。様々な実施形態において、クライアントアプリケーション145は、ネットワークブラウザアプリケーションに対応する。クライアントアプリケーション145は、いくつかの実施形態において、ユーザが、コンピューティングデバイス103内で実行されるアプリケーション119を起動、結合、再生、または別途、これと対話することを可能にするために、実行される。この目的のために、クライアントアプリケーション145は、入力デバイス142の1つまたは複数を介してユーザによって提供される入力コマンドを取り込み、ネットワーク109を介してこの入力をコンピューティングデバイス103に送信するように構成される。
クライアントアプリケーション145は、ネットワーク109を介してアプリケーション出力データをコンピューティングデバイス103から得て、ディスプレイ139上のスクリーンを表示するようにも構成される。この目的のために、クライアントアプリケーション145は、アプリケーション119によって生成された媒体ストリームを再生するための1つまたは複数のビデオおよびオーディオプレーヤーを含んでもよい。一実施形態において、クライアントアプリケーション145は、ネットワークブラウザアプリケーション内で実行されるプラグインまたは他のクライアント側のコードを含む。クライアント106は、例えば、ブラウザアプリケーション、電子メールアプリケーション、インスタントメッセージアプリケーション、および/または他のアプリケーション等のクライアントアプリケーション145を超えるアプリケーションを実行するように構成されてもよい。
ここで図2に転じると、ネットワーク化された環境100(図1)において、クライアント106内で実行されるロッカー管理者アプリケーション114(図1)によって表示される、ユーザインターフェース200の一実施例が示される。図2に示されるユーザインターフェース200は、ログインインターフェースまたはスクリーン210に対応し、それによって、クライアント106のユーザは、クライアントデバイス106の現在のユーザとしてユーザを識別してもよい。ユーザがログインし、ユーザを識別した後、ロッカー管理者アプリケーション114bは、ユーザが資格を付与され、かつ所有者等のクライアントデバイス106の別のユーザが資格を付与されていない場合があるアプリケーションおよび/またはデータに、ユーザがアクセスすることを可能にする。多くのクライアントデバイスは、単一のユーザまたは所有者と関連付けられることに留意されたい。例えば、携帯電話は、単一のアカウント保持者に対する単一の電話番号に結び付けられる。また、mp3音楽プレーヤー等の多くのパーソナルクライアントデバイスは、単一の個人または所有者の音楽アカウント(例えば、音楽をオンラインストアから購入するためのアカウント)に登録されるか、またはこれとともに使用するために承認される。
したがって、ログインスクリーン210は、単一のアプリケーションのための複数のユーザおよび複数の保存状態が、パーソナルコンピューティングデバイス等の単一のクライアントコンピューティングデバイス106と使用されることを可能にする。したがって、一実施形態において、ユーザは、ロッカー管理者アプリケーション114によって承諾された証明書(例えば、ユーザ名およびパスワード)を用いてログインまたはサインインしてもよい。ログインされる間、アプリケーションおよびデータへのアクセスは、データストア112(図1)のユーザの資格付与ロッカー116(図1)内で特定および記録されたそれらのアプリケーション/データについて、ロッカー管理者アプリケーション114によって可能にされる。同様に、一実施形態において、特定のユーザのための資格付与ロッカー116は、特定のユーザが使用する資格を付与される、アプリケーションおよびデータの記録を含む。
ロッカー管理者114からログオフし、アクティブなセッションを中止するために、ユーザは、手動でログアウトする。あるいは、クライアントコンピューティングデバイス106での不活動が検出され、現在のユーザは、ロッカー管理者アプリケーション114からログオフされてもよい。例えば、ロッカー管理者アプリケーション114は、15分(または他の指定された期間)の不活動後、ユーザをログオフするように構成されてもよく、クライアントコンピューティングデバイス106のタッチスクリーンまたはキーボード上でのタッチ入力の検出は、不活動の期間を追跡しているタイマーをリセットする。
次に、様々な実施形態における図3を参照すると、ログインリスト310は、アプリケーション管理者アプリケーション114(図1)から提供されてもよい。ログインリスト310は、特定のクライアントデバイス106の複数のユーザを表示してもよく、現在のユーザは、ユーザ名をリスト310から選択してもよい。更に、コンピューティングクライアントデバイス106は、表示されたユーザ名のそれぞれと関連付けられるパスワードをローカルで維持してもよい。これは、ユーザがリストからユーザ名を選択することを可能にし、クライアントデバイス106に、選択されたログインと関連付けられた保存されたパスワードを取得させ、証明書をコンピューティングデバイス103(図1)に提供させる。示された実施形態において、ユーザは、「JohnSmith」に対応するユーザ名を選択する。したがって、ユーザ名の選択後、次いで、JohnSmithは、ロッカー管理者アプリケーション114にログインされる。
ログインリスト310は、一次アカウント保持者および一次アカウント保持者によって指名された副次アカウント保持者に対するユーザ名を含む場合があり、一次アカウント保持者は、特定のクライアントコンピューティングデバイス106のためのアプリケーション管理者アプリケーション114に対する監督者である。このシナリオの下で、監督者は、一次アカウントに対する副次アカウントとして、1つまたは複数の他のアカウントを関連付けてもよい。結果として、副次アカウントの保持者は、アプリケーションを一次アカウント保持者の資格付与ロッカー116(図1)から使用する資格を付与される。
現在のユーザが資格を付与されるアプリケーションのリストを維持することに加え、ロッカー管理者アプリケーション114の実施形態は、現在のユーザによって利用されるアプリケーション119(図1)のための保存状態データ133(図1)およびクライアントコンピューティングデバイス106上での活動のセッション中にユーザによって修正されたデータも維持する。一次アカウントが副次アカウントと関連付けられる、上記のシナリオにおいて、アプリケーションのそれぞれについての保存状態データ133は、別個にコンパイルされ、また、一次アカウントに加えて、それぞれの副次アカウントに個々に保存される。ゆえに、特定の副次アカウント保持者がクライアントデバイス106のロッカー管理者アプリケーション114にログインすると、過去の保存状態データは、一次アカウント保持者または別の副次アカウント保持者の保存状態データとは異なり、起動されているアプリケーション119にダウンロードされる。
実施例において、スマートフォンの所有者(「オーナー」)が、資格付与ロッカー116の一部として記録される電話器用の3つのアプリケーションを以前に購入した場合があることを考慮されたい。また、これらの3つのアプリケーションが、電話器上にもインストールされている場合があることを考慮されたい。図4を参照すると、オーナーに属するスマートフォンの図が示され、ロッカー管理者アプリケーション114(デスクトップアイコン416によって示される)に加えて、3つのアプリケーション、「GoRace」ゲーム、「PhotoZ」アプリケーション、および「Emails」プログラム(それぞれのデスクトップアイコン410、412、414によって示される)が電話器上に常駐する。
したがって、オーナーがロッカー管理者アプリケーション114(図1)にログインされ、スマートフォンの現在のユーザとして認識されると、ロッカー管理者アプリケーション114は、オーナーのアクセスを3つのアプリケーションに限定しない。しかし、ロッカー管理者アプリケーション114は、他のユーザがログインされず、および/または3つのアプリケーションを資格付与ロッカー116(図1)の一部として含まないとき、別のユーザがこれらのアプリケーションを使用または起動することを規制されない。
ゆえに、オーナーが電話器を友人(「フレンド」)に渡し、フレンドがロッカー管理者アプリケーション114にログインすると想定されたい。したがって、ロッカー管理者アプリケーション114は、フレンドの証明書を受信し、コンピューティングデバイス103(図1)で証明書をロッカー管理者アプリケーション114aに提供する。次いで、ロッカー管理者アプリケーション114aは、提供された証明書に基づいて、フレンドの資格付与ロッカー116のコンテンツをデータストア112(図1)から取得する。例示のために、フレンドの資格付与ロッカー116は、フレンドが特定の三目並べゲーム「King Tic−Tac−Toe」を以前に購入したことを示してもよい。したがって、ロッカー管理者アプリケーション114は、図5に表されるように、フレンドがオーナーのスマートフォン上でダウンロードし、同じKing Tic−Tac−Toeゲームをすることを可能にする。
しかし、オーナーは、三目並べゲームがオーナーの資格付与ロッカー116内に含まれないため、電話器上で三目並べゲームをすることをここで規制される。様々に、オーナーが後に三目並べゲームを購入するとき、オーナーは、オーナーのスマートフォン上に現在インストールされている場合がある三目並べゲームをすることを可能とされる。あるいは、フレンドは、エミュレーションサーバアプリケーション115(図1)から三目並べゲームにアクセスしてもよく、オーナーのスマートフォンは、ネットワーク109(図1)を介して、King Tic−Tac−Toeゲームのアプリケーション119を走らせているエミュレーションサーバアプリケーション115に入力を送信する。エミュレーションサーバアプリケーション115は、同様に、King Tic−Tac−Toeアプリケーション119からオーナーのスマートフォン(およびロッカー管理者アプリケーション114)へとビデオおよびオーディオ出力を送信し戻し、ディスプレイ139(図1)上に表示される。
別のシナリオにおいて、フレンドは、電子メールプログラム414がフレンドの資格付与ロッカー116(図1)内に含まれるため、オーナーの電話器上に存在する電子メールプログラム414を使用する資格を付与されてもよい。ゆえに、一方でフレンドは、ロッカー管理者アプリケーション114にログインされるが、フレンドは、オーナーの電話機上にインストールされている電子メールプログラム414にアクセスしてもよい。更に、電子メールプログラム114は、データストア112内に保存されている、フレンドの電子メールメッセージ(例えば、資格データ134の種類)および電子メールフォルダの組織的構造(例えば、保存状態データ133の種類)等、フレンドの資格付与ロッカー116内で識別されたデータと共にアップロードされてもよい。したがって、フレンドがロッカー管理者アプリケーション114からログオフすると、電子メールプログラム414からのデータは、データストア112へ伝送され、フレンドの資格付与ロッカー116内に含まれ、かつデータストア112で維持される。同様に、データストア112からの資格付与ロッカー116内に含まれるオーナーの電子メールデータは、オーナーがスマートフォンから、または別のコンピューティングデバイスから電子メールプログラム414にアクセスしているかどうかに関係なく、オーナーが次回、電子メールプログラム414にアクセスしているものとして認識されるときに、電子メールプログラム414にダウンロードされてもよい。
ここで、オーナーが新しい自動車レースゲーム410を購入し、ゲーム410は、オーナーが資格を付与される資格付与ロッカー116内のアプリケーションのリストに追加されると想定されたい。次いで、このリストは、オーナーが現在使用している、いかなるクライアントデバイス106上でもロッカー管理者アプリケーション114から取得されてもよい。例えば、オーナーが図書館でデスクトップコンピュータを使用し、オーナーが図書館のコンピュータ上でロッカー管理者アプリケーション114をアクティブ化すると想定されたい。
そのような実施形態において、オーナーは、ロッカー管理者アプリケーション114にログインし、資格を付与されるアプリケーションおよびデータのリストを提供されてもよい。例えば、図6へと続けると、ネットワーク化された環境100(図1)において、クライアント106(図1)内で実行されるクライアントアプリケーション145(図1)内に表示される代表的なユーザインターフェース600の実施例が示される。本実施例において、クライアントアプリケーション145は、ネットワークブラウザに対応し、クライアント106は、デスクトップコンピュータに対応する。
図に示されるユーザインターフェース600は、エミュレーションサーバアプリケーション115によって生成されたネットワークページに対応する。ユーザインターフェース600の部分は、電子商取引アプリケーション117によって生成されてもよいが、一方でユーザインターフェース600の他の部分が、エミュレーションサーバアプリケーション115(図1)によって生成されてもよい。ユーザインターフェース600は、エミュレートされたコンピューティングデバイスのグラフィック表現であるデバイスインターフェースを含み、これは、この場合において、特定のモデルのAndroid(登録商標)スマートフォンである。いくつかの実施例において、デバイスインターフェースは、エミュレートされたコンピューティングデバイスの汎用バージョン、例えば、Android(登録商標)スマートフォンの汎用バージョンに対応してもよい。デバイスインターフェースは、エミュレーションサーバアプリケーション115によって適用可能なデバイスインターフェース137(図1)から生成される。加えて、エミュレートされ、使用されるべきユーザのクライアントコンピューティングデバイスのモデルは、ユーザの資格付与ロッカー116内に記憶されてもよい。
ユーザインターフェース600は、仮想バージョンの入力ボタン654および/または実際のデバイス内に存在する他の制御を含む。アニメーションおよび/または画像は、物理的経験を仮想経験へと翻訳するために使用されてもよい。オーディオハードウェア制御655は、オーディオ再生をエミュレートされたコンピューティングデバイスから制御するために提供され、例えば、オーディオの音量を増大または低下させてもよい。他の実施例において、例えば、記録、早送り、巻き戻し、停止、前のトラック、次のトラック、スクリーンの明るさ、選択されたディスプレイデバイス等、他のハードウェア制御が提供されてもよい。
ユーザインターフェース600は、デバイススクリーンの方向を回転させるための方向制御662を含んでもよい。そのような方向制御662をアクティブ化させることによって、仮想化されたバージョンの加速度計または他のデバイスは、アプリケーション119にエミュレートされたコンピューティングデバイスの方向が、例えば、縦から横へ、およびその逆へと変更されたことを伝えてもよい。
ネットワークブラウザ610は、アプリケーションの表現および/またはユーザの資格付与ロッカー116の一部であるデータを表示するために使用される。この特定の実施例において、ユーザインターフェース600は、ネットワークページ620上に仮想的に図示され、オーナーのスマートフォンの表現である(図4に示される)。オーナーのスマートフォン上のアイコン410、412、414、416(図4)のデスクトップレイアウトは、保存状態データ133から得られ、オーナーの資格付与ロッカー116の一部として維持されてもよい。したがって、ネットワークページ620上で、ユーザまたは顧客は、その上で実行されることを意図されるコンピューティングデバイスに類似する仮想化された環境において、アプリケーション119、127を使用することができる。類似の表現は、上述のように、ネットワークブラウザを使用する文脈を離れて、コンピューティングデバイス上でもなされてもよい。
ここで図7および前の実施例を参照すると、ここでは「JohnSmith」として識別されたオーナーは、ロッカー管理者アプリケーション114(図1)を使用してフレンドのスマートフォンにログインされ、自身のスマートフォンからデスクトップの表現を提供される(図4に示される)。したがって、本実施例において、JohnSmithは、アイコン710、712、714、716のうちの1つ(電話機のデスクトップ上のアイコン410、412、414、416を反映する)を選択し、自身の資格付与ロッカー116の一部であるアプリケーションのアクティブ化を要求してもよい。
ユーザの資格付与ロッカー116内に保存されているデスクトップ表現を示されることに代えて、いくつかの実施形態において、ロッカー管理者アプリケーション114は、図8に示されるように、アプリケーション810およびユーザが資格を付与される資格データ820のリストを単に表示してもよい。次いで、このリストは、ユーザ(「JohnSmith」)が現在使用しているどのクライアントデバイス106上でも、ロッカー管理者アプリケーション114(図1)から取得されてもよい。このリストから、ユーザが自動車レースゲーム「GoRace」をすることを選択し、ユーザがこの特定のゲームをすることが初めてであることが推測される。
ゲームをすることを終え、ロッカー管理者アプリケーション114からログオフした後、ロッカー管理者アプリケーション114は、ゲームのための保存状態データ133(図1)に、ユーザのためのデータストア112(図1)で保存され、ユーザの資格付与ロッカー116(図1)内に含まれるように指示してもよい。一実施形態において、保存状態データ133のバージョンは、アプリケーション119によってローカルに保存され、ロッカー管理者アプリケーション114は、保存状態データ133のコピーを現在のユーザの資格付与ロッカー116に転送する。ゆえに、特定のアプリケーション119が状態情報をローカルに保存するように構成され得るのみであるが、保存状態情報133は、ロッカー管理者アプリケーション114によって取り込まれ、遠隔に保存されてもよい。したがって、保存状態情報は、アプリケーション119の起動時に、保存状態データ133に戻ってコピーされてもよく、ローカルに記憶されたバージョンの保存状態データ133を置き換えてもよい。更に、いくつかの実施形態において、アプリケーション119のための保存状態情報は、ローカルデバイス106のメモリ内に読み込まれ、ライブラリ管理者アプリケーション114は、ユーザの資格付与ロッカー116内に遠隔に保存される、アプリケーション119(またはデバイス106)のメモリ画像を取り込む。また、様々な実施形態において、保存状態データ133は、ローカルのデバイス106のメモリ状態を必ずしも参照せずに、通過レベル、ハイスコア、保存されたゲーム等の特定のアプリケーション状態に対応してもよい。
ゆえに、アプリケーションの次の起動またはリセット時に、ロッカー管理者アプリケーション119によって、保存状態データ133は読み込まれ、ユーザが以前に保存した状態でアプリケーション119を置き換えてもよい。保存状態データ133のローカルのバージョンもしくはコピーおよび遠隔のバージョンもしくはコピーを有することによって、ローカルのバージョンは、ローカルのコンピューティングデバイス106がオフラインであるとき等、遠隔のバージョンがアクセス可能でないとき、利用されてもよい。したがって、コンピューティングデバイス106が再びオンラインになると、ローカルの保存状態データ133は、データストア112等の遠隔ネットワーク記憶位置にコピーされ、それによって、同じまたは別のコンピューティングデバイス106による使用のために利用可能になってもよい。
また、いくつかの実施形態において、特定のアプリケーション119は、状態情報をローカルに保存するように構成または展開されてもよく、ネットワーク109のサービスへのAPI(アプリケーションプログラミングインターフェース)呼び出し(例えばウェブサービス)を行い、データストア112に保存されるべき情報を渡してもよい。情報が保存されるフォーマットは、サービスによって決定され、アプリケーション119に関係しない。したがって、アプリケーション119が情報にアクセスする必要があるとき、アプリケーション119は、サービスを呼び出し、要求を行い、要求された情報を提供され得る。
したがって、ユーザは、タブレットデバイスもしくはスマートフォン、または誰か別のクライアントデバイス106等、ユーザのクライアントコンピューティングデバイス106(図1)上でアプリケーションおよびデータにアクセスし得る。次いで、ユーザが友人の個人のスマートフォン等の別のデバイス上で次回ゲームをするときに、保存状態データ133は、データストア112から取得され、友人の電話機に読み込まれ、ユーザが以前に保存された時点または状態でゲームをし始めることを可能にしてもよい。
また、注意として、図8に、現在使用されているクライアントコンピューティングデバイス上でローカルに記憶されるアプリケーション(および/またはデータ)の次に、アステリスクが付されている。したがって、一実施形態において、現在のユーザの資格付与ロッカー116(図1)内に含まれるアプリケーションおよびデータは、ロッカー管理者アプリケーションを実行するクライアントデバイス106上で維持されるアプリケーションおよびデータとクロスチェックされてもよい。ゆえに、ローカルに記憶されていることを発見されたアプリケーションデータは、表示されるリストにアステリスク付きで示される。これは、現在のユーザに、特定のアプリケーションまたはデータがデバイス106上でローカルに存在し、遠隔のコンピューティングデバイス103(図1)またはデータストア112(図1)からダウンロードまたはエミュレートされる必要がないことを示す。
ロッカー管理者アプリケーション114(図1)の様々な実施形態は、ユーザによってアクセスされているアプリケーション119(図1)によって利用されているデータを、データストア112に自動的に更新し、それぞれのアプリケーション119の保存状態がアプリケーション119によって後で読み込まれることを可能にする。したがって、ロッカー管理者アプリケーション114は、ログインされたユーザのデータを、データストア112でユーザの資格付与ロッカー116にバックアップすることを補助する。特定のアプリケーションおよび特定のユーザアカウントのための保存状態データ133(図1)は、維持され、ネットワークブラウザを介してアプリケーションをエミュレートしていようが、またはアプリケーションがクライアントデバイス106にインストールされようが、ユーザがアプリケーションにアクセスしているクライアントデバイス106に転送される。一方でアプリケーションのための保存状態データは、多くの場合、ローカルに保存されるが、本開示の実施形態は、更に、データストア112でファイルを遠隔に保存する。論じられたように、保存状態データ133は、アプリケーション119によって正常に保存されたデータに対応してもよく、またはいつでも再開され得るアプリケーション119(またはデバイス106)のメモリ画像に対応してもよい。ゆえに、保存状態データ133が関連するアプリケーションを走らせるシステム/デバイスに転送されるとき、保存状態は、読み込まれ、アプリケーションをユーザが以前に保存した同じ状態に置いてもよい。
ロッカー管理者アプリケーション114の様々な実施形態は、状態情報を収集し、定義された間隔で、または定義されたイベントの発生に応答して、データストア112に転送する。例えば、保存状態データ133は、20分毎等の間隔の時間中、クライアントデバイス106のバックグラウンド処理として転送されてもよいが、一方でユーザは、ロッカー管理者アプリケーション114にログインされる。更に、保存状態データ133は、ユーザがロッカー管理者アプリケーション114をログアウトまたはログオフし、またはクライアントデバイス106が電源を切り、または落としたことを検出されたとき、転送されてもよい。更に、クライアントコンピューティングデバイス106がネットワーク109(図1)に接続し、保存状態データ133をデータストア112に転送することができないインスタンスにおいて、転送イベントは、デバイス106が最終的に、ネットワーク109に成功裏に接続し得ると、キューに登録され、再開される。したがって、複数の転送イベントは、バッチされ、データストア112に送信されてもよい。更に、ユーザは、データストア112への保存状態データ133の伝送を手動で要求してもよく、または個々のアプリケーションのための個々の保存状態データ133は、設定された予定に従って自動的に送信されてもよい。同様に、保存状態データ133は、アプリケーション119のアクティブ化の検出、クライアントデバイス106の電源を入れること、またはロッカー管理者アプリケーション114上でのユーザのログインまたはログオン等の定義されたイベントで、データストア112から取得されてもよい。
アプリケーション119のための保存状態データをダウンロードする処理において、現在のユーザは、複数の利用可能な選択肢から選択し、またはアプリケーション119のための特定の保存状態をアップロードするかどうかを選択するように促されてもよい。例えば、ユーザは、ユーザがアプリケーション119を特定の日付の特定の保存状態から開始することを希望するかどうかを促され、尋ねられてもよい。また、ユーザが異なる保存状態を見て、ユーザが戻ることを希望する特定の保存状態を選択し得る、シナリオがあってもよい。ユーザは、データストア112から保存状態のうちの1つを削除する選択肢も提供されてもよい。あるいは、ユーザが特定の保存状態に戻ることを選択するとき、選択されなかった保存状態(複数可)は、自動的に削除されてもよい。一実施形態において、削除された保存状態(複数可)は、選択された状態の日付後の日付を有していた場合がある。
図9を参照すると、保存状態データファイル133(図1)を選択するためのインターフェース910の一実施形態が表される。本実施例において、ゲームを起動することが、可能性のある保存状態が2011年12月24日の2:53a.m.からの保存状態、2011年12月23日の1:12p.m.からの保存状態、および2011年11月25日の11:33a.mからの保存状態に対応する、特定の保存状態をユーザに選択するように促す前に、ユーザは、「GoRace」ゲームおよびロッカー管理者アプリケーション114(図1)を起動することを試みる。したがって、これらは、ユーザが以前にゲームをした日付であり、ゆえに、ユーザは、これらの可能な時点のうちの1つからゲームを開始することを選択してもよい。実施例において、ユーザは、ユーザが12月23日にゲームを離れ、または閉じた時点からゲームを開始することを選択する。いくつかの実施形態において、ユーザが(12月23日の)選択を行い、実行依頼ボタン920を選択した後、ロッカー管理者アプリケーション114は、12月24日からの保存状態を削除するように指示する。
次に図10を参照すると、様々な実施形態による、ロッカー管理者アプリケーション114(図1)の一部の作動の一実施例を提供する、フローチャートが示される。図10のフローチャートは、本明細書に記載されるロッカー管理者アプリケーション114の一部の作動を実装するために利用され得る、多くの異なる種の機能的配列の例示を提供するのみであることを理解されたい。選択肢として、図10のフローチャートは、1つまたは複数の実施形態によるコンピューティングデバイス103(図1)またはコンピューティングデバイス106(図1)において実装される方法のステップの例示を図示するものとして見なされてもよい。
ボックス1002から始めると、ロッカー管理者アプリケーション114は、コンピューティングデバイス106(図1)の現在のユーザの証明書を得て、ロッカー管理者アプリケーション114のアクティブなセッションを開始する。ボックス1004において、ロッカー管理者アプリケーション114は、受信された証明書に基づいて現在のユーザのための資格付与ロッカー116(図1)にアクセスする。次いで、ボックス1006において、アプリケーション119(図1)を起動するためのコマンドを受信することに応答して、ロッカー管理者アプリケーション114が、アプリケーション119が現在のユーザの資格付与ロッカー116の一部であるかどうかを検証する。アプリケーションが検証されると、アプリケーションは起動され、現在のユーザによってコンピューティングデバイス106からアクセスされることを可能にされる。
したがって、アプリケーション119がコンピューティングデバイス106上でローカルにインストールされると、現在のユーザは、ローカルのアプリケーションにアクセスすることを可能にされる。しかし、アプリケーションがローカルにインストールされないとき、アプリケーション119は、コンピューティングデバイスにダウンロードされ、インストールされ、次いで、現在のユーザの利益のために起動されてもよい。別途、アプリケーションは、エミュレーションサーバアプリケーション115上で遠隔に起動され、アプリケーションデータはクライアントコンピューティングデバイス106に送信(例えばストリーミングによって)されてもよい。様々に、アプリケーションが現在のユーザの資格付与ロッカー116の一部であることを検証されないとき、ロッカー管理者アプリケーション114は、現在のユーザの利益のために、アプリケーション119の起動またはエミュレーションを阻止し、可能としない。
更に、ボックス1010において、アプリケーション119を起動するとき、資格付与ロッカー116に含まれる保存状態データ133は、遠隔の記憶位置(例えばデータストア112)からアプリケーション119に読み込まれる。アプリケーションデータは、アプリケーション設定、ユーザによって示されるアプリケーションの優先度、アプリケーションの入力および出力データファイル、および保存状態を含んでもよい。アクティブなセッションの終了時(例えば、ユーザがログオフした後)に、保存状態データは、資格付与ロッカー116に含まれ、ボックス1012において、遠隔の記憶位置に転送される。
図11へと進むと、様々な実施形態による、ロッカー管理者アプリケーション114(図1)の一部の作動の一実施例を提供するフローチャートが示される。図11のフローチャートは、本明細書に記載されるロッカー管理者アプリケーション114の一部の作動を実装するために利用され得る、多くの異なる種の機能的配列の実施例を提供するのみであることを理解されたい。選択肢として、図11のフローチャートは、1つまたは複数の実施形態による、コンピューティングデバイス103(図1)またはコンピューティングデバイス106(図1)において実装される方法のステップの実施例を図示するものとして見なされてもよい。
ボックス1102から始めると、ロッカー管理者アプリケーション114は、クライアントコンピューティングデバイス106の現在のユーザから証明書を得る。更に、ボックス1104において、ロッカー管理者アプリケーション114は、クライアントコンピューティングデバイス106上でアプリケーション119(図1)を起動するためのコマンドを受信する。次に、ボックス1105において、ロッカー管理者アプリケーション114は、場合によっては、保存状態データ133がバックアップされた特定の日付を識別することによって、現在のユーザに特定の保存状態を特定するように促す。したがって、ボックス1106において、ロッカー管理者アプリケーション114は、アプリケーション119のための識別された保存状態データ133を取得し、アプリケーションのための保存状態データ133を読み込み、それによってアプリケーション119に、以前に保存され、維持されたアプリケーション119の前の状態から開始させる。更に、ボックス1108において、指定された期間の満了後等の定義されたイベント後、現在使用中であるアプリケーション119のための状態データは、資格付与ロッカー116に含まれ、遠隔ネットワーク記憶位置に転送され、現在のユーザおよびアプリケーションと関連付けられる。加えて、現在のユーザがロッカー管理者アプリケーション114からログオフされることを示すコマンドを受信すると、アプリケーション119のための最も近時の状態データは、ネットワーク位置に対して遠隔にバックアップされ、現在のユーザおよびアプリケーションと関連付けられる。
次に図12を参照すると、様々な実施形態による、コンピューティングデバイス103に基づくロッカー管理者アプリケーション114(図1)の一部の作動の一実施例を提供する、フローチャートが示される。図12のフローチャートは、本明細書に記載されるロッカー管理者アプリケーション114の一部の作動を実装するために利用され得る、多くの異なる種の機能的配列の実施例を提供するのみであることを理解されたい。選択肢として、図12のフローチャートは、1つまたは複数の実施形態による、コンピューティングデバイス103(図1)において実装される方法のステップの実施例を図示するものとして見なされてもよい。
ボックス1202から始めると、コンピューティングデバイス103は、それぞれの資格付与ロッカー116がそれぞれのユーザに対応する、遠隔ネットワークの記憶デバイス(例えばデータストア112)内の複数のユーザのための複数の資格付与ロッカー116を維持する。次に、ボックス1204において、コンピューティングデバイス103は、コンピューティングデバイス106(図1)の現在のユーザの証明書を得て、ロッカー管理者アプリケーション114のアクティブなセッションを開始する。ボックス1205において、ロッカー管理者アプリケーション114は、受信された証明書に基づいて現在のユーザのための資格付与ロッカー116(図1)にアクセスする。次いで、ボックス1206において、アプリケーション119(図1)をエミュレートするための要求を受信したことに応答して、コンピューティングデバイス103は、アプリケーション119が現在のユーザの資格付与ロッカー116の一部であるかどうかを検証する。ボックス1208において、アプリケーション119が検証されると、要求が許可され、アプリケーション119は、コンピューティングデバイス103によってエミュレートされる。したがって、アプリケーション119によって生成された媒体データは、現在のユーザのコンピューティングデバイス106にストリームされる。いくつかの実施形態において、エミュレーションの一環として、仮想モデルのコンピューティングデバイスは、現在のユーザに対して登録された実際のモデルのコンピューティングデバイスと一致するアプリケーションを再生または実行するものとして表される。実際のコンピューティングデバイス106と同様に、ユーザは、仮想コンピューティングデバイス上での不活動がロッカー管理者アプリケーション114によって検出された後、仮想コンピューティングデバイスからログオフされてもよい。
図13へと進むと、様々な実施形態による、ロッカー管理者アプリケーション114(図1)の一部の作動の一実施例を提供する、フローチャートが示される。図13のフローチャートは、本明細書に記載されるロッカー管理者アプリケーション114の一部の作動を実装するために利用され得る、多くの異なる種の機能的配列の実施例を提供するのみであることを理解されたい。選択肢として、図13のフローチャートは、1つまたは複数の実施形態による、コンピューティングデバイス103(図1)またはコンピューティングデバイス106(図1)において実装される方法のステップの実施例を図示するものとして見なされてもよい。
ボックス1302から始めると、コンピューティングデバイス106上にインストールされたアプリケーション119は、コンピューティングデバイス106上でアプリケーション119のための保存状態データを(例えば、保存状態データファイルとして)ローカルに保存し、ロッカー管理者アプリケーション114は、保存状態データ133を取り込み、データ133のコピーを(例えば、保存状態データファイルとして)記憶のための遠隔のデータストア112に転送する。具体的には、アプリケーション119の状態データは、コピーされ、定義されたイベントの発生時に遠隔に記憶される。様々な実施形態において、定義されたイベントは、予定に従って設定されたユーザ動作およびイベントによってトリガされたイベントを含む。ユーザ動作によってトリガされたイベントとしては、特定のアプリケーション119の状態を保存するためのユーザによる要求、ユーザによってアプリケーション119を閉じることの検出、ユーザのアプリケーション119、ロッカー管理者114、またはローカルのデバイス106からのサインオフ、ユーザがローカルのデバイス106の電源を切ること等が挙げられる。予定に従って設定されたイベントは、指定された間隔または期間を含んでもよく、その指定された間隔または期間内に利用された、任意のアプリケーション119のための保存状態データは、コピーされ、遠隔に保存され得る。更に、ローカルのデバイス106がネットワーク109(図1)に接続できず、保存状態データ133を遠隔のデータストア112に転送することもできないインスタンスにおいて、転送イベントは、デバイス106が最終的にネットワーク109に成功裏に接続し得るとき、キューに入れられ、再開される。したがって、複数の転送イベントが、バッチされ、データストア112に同時に送信されてもよい。
一実施形態において、保存状態データ133は、コンピューティングデバイス106のユーザのための資格付与ロッカー116の一部として記憶されてもよい。更に、アプリケーション119の開発者は、保存状態データ133がアプリケーション119から遠隔に、かつそれに対してアプリケーション119が存在するコンピューティングデバイス106に直接にではなく、記憶されることを企図していない場合がある。また、いくつかの文脈において、開発者は、アプリケーションの状態を保存することを意図されないアプリケーションを設計する場合がある。しかし、ロッカー管理者アプリケーション114および関連する構成要素の実施形態は、特定の時点でのアプリケーション110のメモリ画像またはスナップショットを記憶し、後で、同じデバイスまたは別のデバイスを保存された状態/時点に再記憶し、それによって、保存状態がそれぞれの開発者によって保存機能性付きで設計されなかった特定のアプリケーション119のために実装されることを可能にする。
同様に、ロッカー管理者アプリケーション114は、ボックス1304において、保存状態データ133をデータストア112(例えば、保存状態データファイル)からダウンロードまたは取得し、保存状態データ133(例えば、保存状態データファイルとしての)を使用するためのアプリケーション119に提供する。上記のそれと同じように、保存状態データ133は、定義されたイベントの発生時に遠隔の位置から取得されてもよい。様々な実施形態において、定義されたイベントとしては、とりわけ、ユーザ動作によってトリガされたイベントが挙げられる。ユーザ動作によってトリガされたイベントとしては、特定のアプリケーション119の状態を再読み込みするためのユーザによる要求、ユーザによって、アプリケーション119を開き、または起動するための要求を生成すること、ユーザがアプリケーション119、ロッカー管理者114、またはローカルのデバイス106にサインオンすること、ユーザがローカルのデバイス106の電源を入れること等が挙げられる。更に、ローカルのデバイス106がネットワーク109(図1)に接続できないが、なおかつ保存状態データ133を遠隔のデータストア112に転送し得るインスタンスにおいて、取得イベントは、デバイス106が最終的に、ネットワーク109に成功裏に接続し得るとき、キューに入れられ、再開される。結果として、複数の取得要求は、バッチされ、データストア112から取得された保存状態データ133に同時に送信されてもよい。
したがって、ロッカー管理者アプリケーション114は、ユーザがアプリケーション119にアクセスするために現在使用している、いかなるコンピューティングデバイス106からも、遠隔に保存された保存状態データ133を読み込み得る。換言すれば、いくつかの実施形態は、ローカルのアプリケーション119が第1のコンピューティングデバイス上で状態データをローカルに保存することを可能にし、それによってロッカー管理者アプリケーション114は、状態データを記憶のための遠隔の位置にコピーする。次いで、第2のコンピューティングデバイス上で、アプリケーションが開始されてもよく、それによってロッカー管理者アプリケーション114は、保存状態データ133を遠隔の位置から取得し、保存状態データ133を第2のコンピューティングデバイスにコピーし、したがって、第2のコンピューティングデバイス上のローカルのアプリケーション119は、保存状態データ133を読み込む。ゆえに、ローカルのコンピューティングデバイス106には不可視に、ロッカー管理者アプリケーション114は、アプリケーション状態データを遠隔の記憶位置に転送し、アプリケーション状態データを遠隔の記憶位置から取得する。遠隔に記憶される保存状態データ133は、保存状態データ133が単一のローカルのコンピューティングデバイス106に保存されることに限定されないため、全体で共有されることができ、複数の通信デバイス106およびその関連するアプリケーション119のために使用可能である。保存状態データ133が記憶され得る遠隔の位置は、ネットワーククラウドの一部として見なされてもよく、保存状態データ133を記憶しているクラウド内の特定の位置または特定のサーバは、ローカルのコンピューティングデバイス106に不可視であることにも留意されたい。
付加的な実施形態において、ユーザは、電子商取引システム117から、タブレットデバイスまたは携帯電話等のコンピューティングデバイス106を購入してもよく、デバイスは、事前に読み込まれ、ユーザの資格付与ロッカー116からのアプリケーション119および保存状態データ133で構成されてもよい。ゆえに、ボックスから離れて、初めの使用時に、ユーザは、以前の保存状態からデバイス106上のアプリケーション119を再生し、またはこれにアクセスすることができる。例示として、電子商取引アプリケーションまたはシステム117の顧客は、仮想デバイスを事前に構成し、その仮想またはエミュレートされたデバイスの完全な読み込みが、そのデバイスの倉庫から顧客への出荷前に、本物のデバイスに入るように要求してもよく、仮想デバイスのための保存状態データ133は、顧客のデバイス内に読み込まれる。また、いくつかの実施形態において、仮想デバイスではなく、実際のピアコンピューティングデバイス106の保存状態データ133がコピーされ、別のピアコンピューティングデバイスに転送される。
次に、図14において、様々な実施形態による、ロッカー管理者アプリケーション114(図1)の一部の作動の一実施例を提供するフローチャートが図示される。図14のフローチャートが本明細書に記載されるロッカー管理者アプリケーション114の一部の作動を実装するために利用され得る、多くの異なる種の機能的配列の実施例を提供するのみであることを理解されたい。選択肢として、図14のフローチャートは、1つまたは複数の実施形態による、コンピューティングデバイス103(図1)またはコンピューティングデバイス106(図1)において実装される方法のステップの実施例を図示するものとして見なされてもよい。
まず、ボックス1402において、携帯ゲーム等のアプリケーション119は、サービス要求をネットワークコンピューティングデバイス103に提出し、要求と共に含まれる状態データ(例えば、状態データのパラメータまたは値)を中央のネットワーク位置または記憶媒体に保存する。コンピューティングデバイス103は、ボックス1403において、要求を承諾し、保存されている状態データの確認と共に応答する。
例えば、様々な実施形態は、ネットワーク109内でコンピューティングデバイス103の遠隔のアプリケーションサービスまたはAPIを呼び出すことによって、ネットワーク位置に遠隔に状態データを保存する、アプリケーション119を企図する。アプリケーションサービスに入力された保存状態データ133は、ファイルベース表現を有しない場合があり、保存状態データ133のための保存形式を決定または特定する、アプリケーションサービスである。例えば、保存状態データ133は、いくつかの実施形態において、ファイルとして保存されることとは異なり、データベースに保存されてもよい。更に、いくつかの実施形態において、保存状態データのフォーマットは、必ずしもディスクまたはハードドライブでなくてもよいが、メモリ内に保存され得る。また、ファイル形式は、汎用であってもよく、保存状態データ133を提供または使用するアプリケーション119の間で区別され、またはアプリケーション119を実行する根底となるプラットフォームの間で区別されてもよい。むしろ、いくつかの実施形態において、区別の重要点は、記憶されるコンテンツの種類であってもよい。
加えて、一実施形態において、複数のバージョンのアプリケーション119は、例示として、異なる作動プラットフォームのために存在してもよい。更に、それぞれのバージョンのアプリケーション119は、他のバージョン(複数可)のアプリケーション119と互換性のない保存状態データ133を有してもよい。ロッカー管理者アプリケーション114および関連する構成要素の実施形態は、異なるバージョンの保存状態データ133が異なるバージョンのアプリケーション119の間で翻訳されることを可能にし、それによって、同じプラットフォーム上の異なるアプリケーションバージョンまたはプラットフォームの間の異なるアプリケーションバージョン全体でアプリケーションの完全な、もしくは部分的互換性、または相互運用性を可能にする。したがって、2つの互換性のないバージョンのアプリケーション119は、開発者による干渉またはアプリケーション119自体への変更なく、完全にまたは部分的に相互運用可能とし得るであろう。
同様に、ボックス1404において、アプリケーション119は、コンピューティングデバイス103によって記憶されている保存状態データ133を返すために、ネットワークコンピューティングデバイス103(例えば、コンピューティングデバイス103に接続されたデータストア112)上の遠隔のアプリケーションに、サービス要求を提出してもよい。したがって、コンピューティングデバイス103は、ボックス1405において、保存状態データ133を用いてアプリケーション119に応答する。そのようなシナリオにおいて、例示として、ユーザは、ある期間中、第1のコンピューティングデバイス上でゲームをし、次いで、中止することを決定し、遠隔ネットワークの位置でゲームの状態を保存するためのネットワークまたはアプリケーションサービスを呼び出し得る。その後、ユーザは、別のコンピューティングデバイス上でゲームをすることを決定し、ゲームのための保存状態データ133に戻るためのネットワークまたはアプリケーションサービスを呼び出すことができ、したがって、ユーザは、ユーザが以前に終了したゲームの時点から続行し得る。ゆえに、ゲームをするために使用されている2つのコンピューティングデバイスが異なるプラットフォーム技術のものである場合があるが、ユーザは、どちらのデバイス上でも交換可能にゲームをし得る。
クラウド環境におけるネットワークサーバを構成するコンピューティングデバイス103に加えて、いくつかの実施形態において、コンピューティングデバイス103は、ピアのコンピューティングデバイス106を含んでもよいことも理解されたい。したがって、ピアデバイス103は、別のピアデバイス106と(例えば、テザリングまたはデータネットワークを介して)接続または同期化されてもよく、1つのピアデバイス106の保存状態は、他のピアデバイス103にコピーされる。ゆえに、保存状態デバイスのコピーを受信するピアデバイス103は、他のピアデバイス106の保存状態をエミュレートまたは呈してもよい。本実施形態についての1つの認知される利益は、保存状態データ133がより大きなプライバシーを可能とする第三者のネットワークにコピーされないことである場合がある。
図15を参照すると、本開示の実施形態によるコンピューティングデバイス103の概略ブロック図が示される。コンピューティングデバイス103は、例えば、プロセッサ1503を有する少なくとも1つのプロセッサ回路およびメモリ1506を含み、それらの全ては、ローカルインターフェース1509に接続される。この目的のために、コンピューティングデバイス103は、例えば、少なくとも1つのサーバコンピュータまたは類似のデバイスを備えてもよい。ローカルインターフェース1509は、例えば、付随的アドレス/制御バスを有するデータバスまたは認識され得る他のバス構造を備えてもよい。
プロセッサ1503によって実行可能であるデータおよびいくつかの構成要素の両方が、メモリ1506内に記憶される。具体的には、ロッカー管理者アプリケーション114、エミュレーションサーバアプリケーション115、電子商取引アプリケーション117、アプリケーション119、および潜在的には他のアプリケーションが、メモリ1506内に記憶され、プロセッサ1503によって実行可能である。データストア112および資格付与ロッカー116(図1)を含む他のデータ、ならびに関連するコンテンツも、メモリ1506内に記憶されてもよい。加えて、オペレーティングシステムは、メモリ1506内に記憶され、プロセッサ1503によって実行可能であってもよい。
メモリ1506内に記憶され、認識され得るプロセッサ1503によって実行可能である、他のアプリケーションがあり得ることを理解されたい。本明細書で論じられる任意の構成要素がソフトウェアの形態で実装される場合、例えば、C、C++、C#、Objective C、Java(登録商標)、JavaScript(登録商標)、Perl、PHP、Visual Basic(登録商標)、Python(登録商標)、Ruby、Delphi(登録商標)、Flash(登録商標)、または他のプログラミング言語等、いくつかのプログラミング言語の任意の1つが利用されてもよい。
いくつかのソフトウェア構成要素は、メモリ1506内に記憶され、プロセッサ1503によって実行可能である。この点で、用語「実行可能」は、プロセッサ1503によって最終的に走らされ得る形態である、プログラムファイルを意味する。実行可能なプログラムの実施例は、例えば、メモリ1506のランダムアクセス部分へと読み込まれ、プロセッサ1503によって走らされ得る形式で、機械コードに翻訳され得るコンパイルされたプログラム、メモリ1506のランダムアクセス部分へと読み込まれ、プロセッサ1503によって実行可能であり得る、オブジェクトコード等の適切なフォーマットで表現され得るソースコード、または別の実行可能なプログラムによって解釈され、プロセッサ1503によって実行されるべきメモリ1506のランダムアクセス部分内でインストラクションを生成し得るソースコード等であってもよい。実行可能なプログラムは、例えば、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、ハードドライブ、ソリッドステートドライブ、USBフラッシュドライブ、メモリカード、コンパクトディスク(CD)またはデジタル多用途ディスク(DVD)等の光ディスク、フロッピーディスク、磁気テープ、または他のメモリ構成要素を含む、メモリ1506のいずれの部分または構成要素内に記憶されてもよい。
メモリ1506は、本明細書では、揮発性または不揮発性メモリの両方およびデータ記憶構成要素を含むものとして定義される。揮発性の構成要素は、電源喪失時にデータ値を保持しないものである。不揮発性の構成要素は、電源喪失時にデータを保持するものである。したがって、メモリ1506は、例えば、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、ハードディスクドライブ、ソリッドステートドライブ、USBフラッシュドライブ、メモリカードリーダーを介してアクセスされるメモリカード、関連付けられるフロッピーディスクドライブを介してアクセスされるフロッピーディスク、光ディスクドライブを介してアクセスされる光ディスク、適切なテープドライブを介してアクセスされる磁気テープ、および/もしくは他のメモリ構成要素、またはこれらのメモリ構成要素の任意の2つまたはそれ以上の組み合わせを備えてもよい。加えて、RAMは、例えば、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)または磁気ランダムアクセスメモリ(MRAM)、ならびに他のそのようなデバイスを備えてもよい。ROMは、例えば、プログラマブルリードオンリメモリ(PROM)、消去可能プログラマブルリードオンリメモリ(EPROM)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、または他の類似のメモリデバイスを備えてもよい。
また、それぞれ、プロセッサ1503は、複数のプロセッサ1503を表してもよく、メモリ1506は、並列処理回路内で作動する複数のメモリ1506を表してもよい。そのような場合において、ローカルインターフェース1509は、複数のプロセッサ1503のいずれかの2つの間、いずれかのプロセッサ1503とメモリ1506のいずれかとの間、またはメモリ1506のいずれかの2つの間等の通信を容易にする、適切なネットワーク109(図1)であってもよい。ローカルインターフェース1509は、例えば、負荷分散を行うことを含む、この通信を調整するために設計された付加的システムを備えてもよい。プロセッサ1503は、電気的、またはいくつかの他の利用可能な構造であってもよい。
クライアントコンピューティングデバイス106は、図15の図と構造的に類似してもよいことを理解されたい。具体的には、クライアントコンピューティングデバイスの実施形態は、例えば、プロセッサ1503を有する少なくとも1つのプロセッサ回路およびメモリ1506を含み、それらの全ては、ローカルインターフェース1509に接続される。ローカルインターフェース1509は、例えば、付随的アドレス/制御バスまたは認識され得る他のバス構造を有するデータバスを備えてもよい。プロセッサ1503によって実行可能であるデータおよびいくつかの構成要素の両方が、メモリ1506内に記憶される。具体的には、ロッカー管理者アプリケーション114、および潜在的には他のアプリケーションが、メモリ1506内に記憶され、プロセッサ1503によって実行可能である。加えて、オペレーティングシステムは、メモリ1506内に記憶され、プロセッサ1503によって実行可能であってもよい。
本明細書に記載されるロッカー管理者アプリケーション114、エミュレーションサーバアプリケーション115、電子商取引アプリケーション117、アプリケーション119、クライアントアプリケーション145(図1)、および他の様々なシステムは、上述の汎用性ハードウェアによって実行されるソフトウェアまたはコードで実施されてもよいが、選択肢として、それらは、また、専用ハードウェア、またはソフトウェア/汎用性ハードウェア、ならびに専用ハードウェアの組み合わせで実施されてもよい。専用ハードウェアで実施されるとき、それぞれは、回路またはいくつかの技術の任意の1つまたは組み合わせを利用する状態機械として実装され得る。これらの技術としては、様々な論理機能を1つまたは複数データ信号のアプリケーション上で実装するための論理ゲートを有する離散的論理回路、適切な論理ゲートを有するアプリケーション特定集積回路、または他の構成要素等が挙げられ得るが、これらに限定されない。そのような技術は、当業者によって、概ね周知され、したがって、本明細書において詳細に記載されない。
図10〜14のフローチャートは、ロッカー管理者アプリケーション114の一部の実装形態の機能性および作動を示す。ソフトウェアにおいて実施されるとき、それぞれのブロックは、指定された論理機能(複数可)を実装するためのプログラムインストラクションを含む、モジュール、セグメント、またはコードの一部を表してもよい。プログラムインストラクションは、コンピュータシステムまたは他のシステムにおけるプロセッサ1503等、好適な実行システムによって認識可能な数値インストラクションを含む、プログラミング言語または機械コードで記述された人間に可読なステートメントを含むソースコードの形態で、実施されてもよい。機械コードは、ソースコード等から変換されてもよい。ハードウェアで実施されるとき、それぞれのブロックは、指定された論理機能(複数可)を実装するための回路または相互接続される回路のいくつかを表してもよい。
図10〜14のフローチャートは、実行の特定の順序を示すが、実行の順序は、図示されるものとは異なる場合があることを理解されたい。例えば、2つまたはそれ以上のブロックの実行の順序は、示された順序に対して入れ替えられてもよい。また、図10〜14に連続的に示される2つまたはそれ以上のブロックは、同時に、または部分的同時進行を伴って実行されてもよい。更に、いくつかの実施形態において、図10〜14に示されるブロックの1つまたは複数は、飛び越され、または省略されてもよい。加えて、任意の数のカウンター、状態変数、警告セマフォ、またはメッセージが、向上された効用、アカウンティング、性能測定、またはトラブルシューティング補助を提供する等の目的のために、本明細書に記載される論理フローに付加されてもよいであろう。全てのそのような変形形態は、本開示の範囲内であることを理解されたい。
また、ロッカー管理者アプリケーション114、エミュレーションサーバアプリケーション115、電子商取引アプリケーション117、アプリケーション119、およびクライアントアプリケーション145を含む、本明細書に記載される、ソフトウェアまたはコードを含むいずれの論理またはアプリケーションも、例えば、コンピュータシステムまたは他のシステムにおけるプロセッサ1503等のインストラクション実行システムによって、またはこれに関して使用するための任意の非一時的なコンピュータ可読媒体内で実行され得る。この意味において、論理は、例えば、コンピュータ可読媒体からフェッチされ、インストラクション実行システムによって実行され得るインストラクションおよび宣言を含む、ステートメントを含んでもよい。本開示の文脈において、「コンピュータ可読媒体」は、インストラクション実行システムによって、またはこれに関して使用するために、本明細書に記載される論理またはアプリケーションを含み、記憶し、または維持する、いずれの媒体でもあり得る。コンピュータ可読媒体は、例えば、磁気、光、または半導体媒体等の多くの物理的媒体のいずれか1つを備える。好適なコンピュータ可読媒体のより具体的な実施例としては、磁気テープ、磁気フロッピーディスクディスケット、磁気ハードドライブ、メモリカード、ソリッドステートドライブ、USBフラッシュドライブ、または光ディスクが挙げられるであろうが、これらに限定されない。また、コンピュータ可読媒体は、例えば、スタティックランダムアクセスメモリ(SRAM)およびダイナミックランダムアクセスメモリ(DRAM)、または磁気ランダムアクセスメモリ(MRAM)を含む、ランダムアクセスメモリ(RAM)であってもよい。加えて、コンピュータ可読媒体は、リードオンリメモリ(ROM)、プログラマブルリードオンリメモリ(PROM)、消去可能プログラマブルリードオンリメモリ(EPROM)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、または他の型のメモリデバイスであってもよい。
「関連出願の相互参照」
本出願は、整理番号13/172,052が割り当てられた、2011年6月29日出願の同時係属米国非仮出願、表題「DATA LOCKER SYNCHRONIZATION」および整理番号13/172,058が割り当てられた、2011年6月29日出願の同時係属米国非仮出願、表題「DATA LOCKER MANAGEMENT」に対する優先権を主張し、これらの全体が、参照により本明細書に組み込まれる。
付記
1.コンピューティングデバイスにおいて実行可能なプログラムを実施する非一時的なコンピュータ可読媒体であって、プログラムが、
要求をユーザから受信し、携帯ゲームをエミュレートするコードであって、要求が、ユーザによって現在使用されているローカルのコンピューティングデバイスから生成される、コードと、
携帯ゲームのための保存状態データをネットワーク記憶位置から取得するコードであって、携帯ゲームのためのユーザの保存状態データが以前に、携帯コンピューティングデバイスから提供された、コードと、
携帯ゲームおよびエミュレーションの一環としてのストリームアプリケーション媒体をローカルのコンピューティングデバイスにエミュレートするコードであって、携帯ゲームが、ネットワーク記憶位置から取得された携帯ゲームのための保存状態データに対応する状態で、開始する、コードを含む、非一時的なコンピュータ可読媒体。
2.ローカルのコンピューティングデバイスの現在のユーザとしてのユーザをログオフするコードであって、携帯ゲームが、ユーザがローカルのコンピューティングデバイスからログオフされた後、閉じられた、コードと、
ローカルのコンピューティングデバイスの現在のユーザとしての新しいユーザにログインするコードと、
新しいユーザから新しい要求を受信し、携帯ゲームをエミュレートするコードと、を更に含み、
保存状態データが、それぞれのユーザに対して維持され、
携帯ゲームが、エミュレートされ、アプリケーション媒体が、新しいユーザからの新しい要求に応答してローカルのコンピューティングデバイスにストリームされ、
携帯ゲームが、新しいユーザのためのネットワーク記憶位置から取得される、携帯ゲームのための保存状態データに対応する状態から開始し、新しいユーザのための保存状態データが、ユーザのための保存状態データと異なる、
付記1のコンピュータ可読媒体。
3.ユーザに、携帯ゲームの保存状態データのインスタンスが、ユーザのためのネットワーク記憶位置に転送されたときに対応する複数の日付から1つの日付を選択するように促す、コードを更に含み、保存状態データが、携帯ゲームによって使用される選択された日付に対応する、付記1に記載のコンピュータ可読媒体。
4.コンピューティングデバイスと、
コンピューティングデバイスにおいて実行可能なロッカー管理アプリケーションであって、
コンピューティングデバイスによって、アプリケーションのためにローカルに記憶された保存状態データファイルのコピーを遠隔ネットワーク記憶位置に転送する論理と、
アプリケーションのための保存状態データファイルのコピーを遠隔の記憶位置から取得する論理と、
遠隔ネットワーク記憶位置から取得された保存状態データファイルのコピーをアプリケーションに提供する論理であって、アプリケーションを起動すると、アプリケーションが、携帯ゲームのための保存状態データファイルに対応する状態で再開する、論理と、を含む、ロッカー管理アプリケーションと、
を備える、システム。
5.現在のユーザに、保存状態データファイルが、アプリケーションのために遠隔ネットワーク記憶位置に転送されたときのインスタンスに対応する複数の日付から1つの日付を選択するように促す論理を更に含み、選択された日付に対応する保存状態データファイルが、現在のユーザによって使用されているアプリケーションに送信される、付記4に記載のシステム。
6.ローカルに記憶されるアプリケーションのための保存状態データファイルを、遠隔ネットワーク記憶位置から取得された保存状態データファイルのコピーと置き換える論理を更に含む、付記4に記載のシステム。
7.現在のユーザが、一次アカウント保持者に対する副次アカウント保持者であり、アプリケーションが一次アカウント保持者の資格付与ロッカー内に含まれることを検証することに応答して、副次アカウント保持者のための遠隔ネットワーク記憶位置での保存状態データファイルが、アプリケーションに戻される、付記4に記載のシステム。
8.遠隔ネットワーク記憶位置に転送される保存状態データファイルのコピーが、前のクライアントコンピューティングデバイスから提供され、前のクライアントコンピューティングデバイス上で実行するアプリケーションの第1のコピーと関連付けられ、
遠隔ネットワーク記憶位置から取得される保存状態データファイルのコピーが、コンピューティングデバイスに提供され、コンピューティングデバイス上で実行するアプリケーションの第2のコピーを対象とする、付記4に記載のシステム。
9.コンピューティングデバイスから遠隔ネットワーク記憶位置への保存状態データファイルのコピーの転送が、アプリケーションのための保存状態データファイルを転送するように設定された予定時間の発生、アプリケーションを閉じるためのコマンドの検出、現在のユーザをアプリケーションからサインオフするためのコマンドの検出、およびアプリケーションを実行するクライアントコンピューティングデバイスの電源を切るためのコマンドの検出のうちの少なくとも1つに応答してトリガされるシステムであって、
アプリケーションのための保存状態データファイルを転送するように設定された予定時間の発生を検出する論理と、
アプリケーションを閉じるためのコマンドを検知する論理と、
現在のユーザをアプリケーションからサインオフするためのコマンドを検知する論理と、
アプリケーションを実行するクライアントコンピューティングデバイスの電源を切るためのコマンドを検出する論理と、を更に含む、付記4に記載のシステム。
10.コンピューティングデバイスがオフラインであるために、遠隔ネットワーク記憶位置に送信されることができない保存状態データファイルのコピーに応答して、保存状態データファイルは、コンピューティングデバイスが遠隔ネットワーク記憶位置との接続を回復した時点で送信される、付記9に記載のシステム。
11.コンピューティングデバイス上で指定された期間の不活動を検出した後に、現在のユーザをコンピューティングデバイスからログオフする論理と、
遠隔ネットワーク記憶の位置へのアプリケーションのための保存状態データファイルのコピーの転送をトリガする論理と、を更に含む、
付記4に記載のシステム。
12.コンピューティングデバイスによって、コンピューティングデバイスの現在のユーザの識別を受信するステップと、
コンピューティングデバイスによって、現在のユーザが使用しているアプリケーションから、アプリケーションのための状態データを遠隔ネットワーク記憶位置に転送するための第1の要求を受信するステップと、
コンピューティングデバイスによって、第1の要求を許可することに応答して、状態データを遠隔ネットワーク記憶位置で記憶するステップと、
を含む、方法。
13.コンピューティングデバイスが、ネットワークサーバを備え、第1の要求が、ネットワークサーバ上の機能を実行し、ネットワークサーバによって選択されたファイル構造でのアプリケーションから入力された状態データパラメータを記憶するための呼び出しを含み、状態データが、状態データパラメータを含む、付記12に記載の方法。
14.コンピューティングデバイスによって、現在のユーザが使用しているアプリケーションから、アプリケーションのための保存状態データを遠隔ネットワーク記憶位置から取得するための第2の要求を受信するステップと、
第2の要求を許可することに応答して、保存状態データを遠隔ネットワーク記憶位置からアプリケーションに送信するステップと、
を更に含む、付記12に記載の方法。
15.コンピューティングデバイスが、ネットワークサーバを備え、第2の要求が、ネットワークサーバ上でファイル構造から保存状態データパラメータを取得するための機能を実行し、保存状態データパラメータをアプリケーションに出力するための呼び出しを含み、保存状態データが、保存状態データパラメータを含む、付記14に記載の方法。
16.第1の要求が、第1のクライアントコンピューティングデバイス上のアプリケーションの第1のコピーによって生成され、第2の要求が、第2のクライアントコンピューティングデバイス上のアプリケーションの第2のコピーによって生成される、付記14に記載の方法。
17.現在のユーザに、状態データがアプリケーションのための遠隔ネットワーク記憶位置に転送されたときのインスタンスに対応する複数の日付から1つの日付を選択するように促すステップを更に含み、
選択された日付に対応する保存状態データが、現在のユーザによって使用されているアプリケーションに送信される、
付記12に記載の方法。
18.現在のユーザが、一次アカウント保持者に対する副次アカウント保持者であり、アプリケーションが一次アカウント保持者の資格付与ロッカー内に含まれることを検証することに応答して、副次アカウント保持者のための保存状態データが、アプリケーションに提供される、付記12に記載の方法。
19.第1の要求が、アプリケーションのための保存状態データファイルを転送するように設定された予定時間の発生、アプリケーションを閉じるためのコマンドの検出、現在のユーザをアプリケーションからサインオフするためのコマンドの検出、およびアプリケーションを実行するクライアントコンピューティングデバイスの電源を切るためのコマンドの検出の少なくとも1つに応答してトリガされる、付記12に記載の方法。
20.クライアントコンピューティングデバイスがコンピューティングデバイスについてオフラインであるために、第1の要求がコンピューティングデバイスに送信されないことに応答して、第1の応答がキューに置かれ、クライアントコンピューティングデバイスがコンピューティングデバイスと接続されると、送信される、付記19に記載の方法。
21.コンピューティングデバイスにおいて実行可能なプログラムを実施する非一時的なコンピュータ可読媒体であって、プログラムが、
遠隔ネットワークの記憶デバイスにおける複数のユーザのための複数の資格付与ロッカーを維持するコードであって、それぞれの資格付与ロッカーが、それぞれのユーザに対応する、コードと、
現在のユーザの識別を受信するコードと、
現在のユーザのローカルのコンピューティングデバイスからの要求を受信し、ローカルのコンピューティングデバイス上で携帯ゲームをエミュレートするコードと、
携帯ゲームが現在のユーザの資格付与ロッカー内に含まれることを検証することに応答して、携帯ゲームをエミュレートするコードと、を含み、
携帯ゲームが、仮想携帯コンピューティングデバイス上で実行されるときにエミュレートされ、仮想携帯コンピューティングデバイスのモデルが、現在のユーザに対して登録された実際の携帯コンピューティングデバイスのモデルと一致する、非一時的なコンピュータ可読媒体。
22.ローカルのコンピューティングデバイスから、遠隔に記憶される資格データにアクセスするための要求を受信するコードと、
資格データが現在のユーザの資格付与ロッカー内に含まれることを検証することに応答して、資格データへのアクセスを許可するコードと、を更に含む、
付記21に記載のコンピュータ可読媒体。
23.現在のユーザがアプリケーションにアクセスするためのライセンス期間の満了に応答して、アプリケーションをエミュレートするためのその後の要求を拒否するコードを更に含む、
付記21に記載のコンピュータ可読媒体。
24.少なくとも1つのコンピューティングデバイスと、
少なくとも1つのコンピューティングデバイスにおいて実行可能なロッカー管理アプリケーションであって、
遠隔ネットワークの記憶デバイスにおいて複数のユーザのために複数の資格付与ロッカーを維持する論理であって、それぞれの資格付与ロッカーがそれぞれのユーザに対応する、論理と、
現在のユーザの識別を受信する論理と、
少なくとも1つのコンピューティングデバイス上でアプリケーションをエミュレートするための要求を受信する論理と、
アプリケーションが、現在のユーザの資格付与ロッカー内に含まれることを検証することに応答して、アプリケーションをエミュレートする論理と、
アプリケーションが現在のユーザの資格付与ロッカー内に含まれないことを検証することに応答して、アプリケーションをエミュレートするための要求を拒否する論理と、を含む、ロッカー管理アプリケーションと、
を備える、システム。
25.現在のユーザの資格付与ロッカーへのアプリケーションの次の追加の際に、ユーザによって現在使用されているローカルのコンピューティングデバイスからのアプリケーションをエミュレートするためのその後の要求が許可される、付記24に記載のシステム。
26.アプリケーション媒体が、アプリケーションのエミュレーションの一環として、現在のユーザによって現在使用されているローカルのコンピューティングデバイスにストリームされる、付記24に記載のシステム。
27.アプリケーションが、仮想コンピューティングデバイス上で実行されるときにエミュレートされ、仮想コンピューティングデバイスのモデルが、現在のユーザに対して登録されたコンピューティングデバイスのモデルと一致する、付記26に記載のシステム。
28.仮想コンピューティングデバイス上で指定された期間の不活動を検出した後、仮想コンピューティングデバイスを現在使用するものとして現在のユーザをサインオフする論理を更に含み、仮想コンピューティングデバイスは、現在のユーザが仮想コンピューティングデバイスに再びサインオンするまで、現在のユーザの資格付与ロッカーへのアクセスを最早有しない、
付記27に記載のシステム。
29.少なくとも1つのコンピューティングデバイスによって記憶された資格データにアクセスするための要求を受信する論理と、
資格データが現在のユーザの資格付与ロッカー内に含まれることを検証することに応答して、資格データへのアクセスを許可する論理と、を更に含む、
付記24に記載のシステム。
30.資格データが、音楽ファイル、画像ファイル、ビデオファイル、および電子書籍ファイルのうちの少なくとも1つを含む、付記29に記載のシステム。
31.現在のユーザの資格付与ロッカーへの新しいアプリケーションの追加の際に、現在のユーザによって現在利用されているローカルのコンピューティングデバイスからの、アプリケーションをエミュレートするためのその後の要求が許可される、付記24に記載のシステム。
32.コンピューティングデバイスによって、コンピューティングデバイスの現在のユーザの識別を受信するステップと、
コンピューティングデバイスによって、コンピューティングデバイス上でアプリケーションを起動するための要求を受信するステップと、
コンピューティングデバイスによって、アプリケーションが現在のユーザの資格付与ロッカー内に含まれることを検証することに応答して、アプリケーションを起動するステップと、を含み、
現在のユーザを含む、複数のユーザのための複数の資格付与ロッカーが、遠隔ネットワークの記憶デバイスにおいて維持され、それぞれの資格付与ロッカーが、それぞれのユーザに対応する、方法。
33.アプリケーションが現在のユーザの資格付与ロッカー内に含まれることを検証した後、アプリケーションを遠隔ネットワークの記憶デバイスからコンピューティングデバイスに転送し、アプリケーションが起動され得るように、コンピューティングデバイス上にアプリケーションをインストールするステップを更に含む、
付記32に記載の方法。
34.コンピューティングデバイスから、遠隔に記憶される資格データにアクセスするための要求を受信するステップと、
資格データが現在のユーザの資格付与ロッカー内に含まれることを検証することに応答して、資格データへのアクセスを許可するステップと、
を更に含む、付記32に記載の方法。
35.資格データが、音楽ファイル、画像ファイル、ビデオファイル、および電子書籍ファイルのうちの少なくとも1つを含む、付記32に記載の方法。
36.アプリケーションが現在のユーザの資格付与ロッカー内に含まれることを検証した後、定義された期間中、現在のユーザにアプリケーションにアクセスするための権利を許可するコンピューティングデバイスへのトークンをダウンロードするステップを更に含む、
付記32に記載の方法。
37.コンピューティングデバイスでの不活動の指定された期間を検出した後、現在のユーザを、コンピューティングデバイスを現在使用しているものとしてサインオフするステップを更に含む、
付記32に記載の方法。
38.アプリケーションが現在のユーザの資格付与ロッカー内に含まれないことを検証することに応答して、アプリケーションを起動するための要求を拒否するステップを更に含み、現在のユーザの資格付与ロッカーへのアプリケーションの次の追加の際に、現在のユーザからのアプリケーションを起動するためのその後の要求が許可される、付記32に記載の方法。
39.現在のユーザがアプリケーションにアクセスするためのライセンス期間の満了に応答して、アプリケーションを起動するためのその後の要求を拒否するステップを更に含む、
付記32に記載の方法。
40.コンピューティングデバイスの第2の現在のユーザの識別を受信するステップと、
コンピューティングデバイス上で第2のアプリケーションを起動するための要求を受信するステップと、
アプリケーションが第2の現在のユーザの資格付与ロッカー内に含まれることを検証することに応答して、第2のアプリケーションを起動するステップと、を更に含み、
アプリケーションおよび第2のアプリケーションが、コンピューティングデバイス上で同時に実行される、付記32に記載の方法。
本開示の上記の実施形態は、本開示の原理の明らかな理解のために記述された実装形態の単に可能な実施例であることが強調されるべきである。多くの変形形態および改変形態は、本開示の趣旨および原理を実質的に逸脱することなく、上記の実施形態(複数可)に対して行われ得る。全てのそのような改変形態および変形形態は、本明細書において本開示の範囲内に含まれることを意図され、以下の特許請求の範囲によって保護される。