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

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

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

特許6104246コンピューティングデバイスの遠隔事前構成
<>
  • 特許6104246-コンピューティングデバイスの遠隔事前構成 図000002
  • 特許6104246-コンピューティングデバイスの遠隔事前構成 図000003
  • 特許6104246-コンピューティングデバイスの遠隔事前構成 図000004
  • 特許6104246-コンピューティングデバイスの遠隔事前構成 図000005
  • 特許6104246-コンピューティングデバイスの遠隔事前構成 図000006
  • 特許6104246-コンピューティングデバイスの遠隔事前構成 図000007
  • 特許6104246-コンピューティングデバイスの遠隔事前構成 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6104246
(24)【登録日】2017年3月10日
(45)【発行日】2017年3月29日
(54)【発明の名称】コンピューティングデバイスの遠隔事前構成
(51)【国際特許分類】
   G06Q 30/06 20120101AFI20170316BHJP
   G06F 9/46 20060101ALI20170316BHJP
【FI】
   G06Q30/06 320
   G06F9/46 350
【請求項の数】14
【全頁数】29
(21)【出願番号】特願2014-522924(P2014-522924)
(86)(22)【出願日】2012年7月23日
(65)【公表番号】特表2014-529116(P2014-529116A)
(43)【公表日】2014年10月30日
(86)【国際出願番号】US2012047797
(87)【国際公開番号】WO2013016259
(87)【国際公開日】20130131
【審査請求日】2014年1月27日
【審判番号】不服2016-4117(P2016-4117/J1)
【審判請求日】2016年3月17日
(31)【優先権主張番号】13/191,585
(32)【優先日】2011年7月27日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】506329306
【氏名又は名称】アマゾン テクノロジーズ インコーポレイテッド
(74)【代理人】
【識別番号】100079049
【弁理士】
【氏名又は名称】中島 淳
(74)【代理人】
【識別番号】100084995
【弁理士】
【氏名又は名称】加藤 和詳
(72)【発明者】
【氏名】エヴァン イーサン ゼット.
【合議体】
【審判長】 手島 聖治
【審判官】 金子 幸一
【審判官】 貝塚 涼
(56)【参考文献】
【文献】 米国特許出願公開第2010/0169154(US,A1)
【文献】 特開2004−5253(JP,A)
【文献】 特開2002−135461(JP,A)
【文献】 特開2009−232359(JP,A)
【文献】 国際公開第2010/151858(WO,A1)
【文献】 米国特許出願公開第2008/0034408(US,A1)
【文献】 米国特許第8806054(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q10/00-50/00,G06F9/46
(57)【特許請求の範囲】
【請求項1】
第1のコンピューティングデバイスにおいて実行可能なプログラムを具現化する非一時的なコンピュータ可読媒体であって、前記プログラムが、実行されると、前記第1のコンピューティングデバイスに、
第2のコンピューティングデバイスの仮想デバイスインスタンスを生成
前記仮想デバイスインスタンスによって生成されるビデオ信号および音声信号をメディアストリームに符号化
グラフィック表現のスクリーンが、前記メディアストリームの前記ビデオ信号を示すように構成される、前記第2のコンピューティングデバイスの物理的インタフェースの前記グラフィック表現を含むユーザインタフェースを生成
前記グラフィック表現が前記第2のコンピューティングデバイスの前記物理的インタフェースの少なくとも1つの入力デバイスの表現を含み、
前記ユーザインタフェースおよび前記メディアストリームをクライアントに送信
入力データは少なくとも1つの前記入力デバイスの前記表現のユーザ操作に対応し、前記入力データの少なくとも一部が前記仮想デバイスインスタンスの構成に変更を生じさせ当該変更は前記仮想デバイスインスタンスのデータの変更、もしくは、前記仮想デバイスインスタンスの少なくとも1つのインストールソフトウェア設定の変更を含み、前記クライアントから前記入力データを取得し、かつ前記入力データを前記仮想デバイスインスタンスに提供
前記クライアントから前記第2のコンピューティングデバイスの物理的バージョンの注文を取得
前記第2のコンピューティングデバイスの前記物理的バージョンによって採用される、前記仮想デバイスインスタンスの前記構成の前記第2のコンピューティングデバイスの前記物理的バージョンへのコピーを開始
前記第2のコンピューティングデバイスの前記物理的バージョンの発送を開始する
処理を少なくとも実行させる、非一時的なコンピュータ可読媒体。
【請求項2】
少なくとも1つの第1のコンピューティングデバイスであって、少なくとも、
第2のコンピューティングデバイスの仮想デバイスインスタンスを実行
前記仮想デバイスインスタンスによって生成される視覚表示をメディアストリームに符号化して、前記メディアストリームをクライアントに送信
前記第2のコンピューティングデバイスの物理的インタフェースのグラフィック表現を含むユーザインタフェースを生成し、
前記グラフィック表現のスクリーンが前記メディアストリームの前記視覚表示を示すように構成され、前記グラフィック表現が前記第2のコンピューティングデバイスの前記物理的インタフェースの少なくとも1つの入力デバイスの表現を含み、
前記ユーザインタフェースを前記クライアントに送信し、
前記クライアントから入力データを取得し、かつ前記入力データを前記仮想デバイスインスタンスに提供
前記入力データは少なくとも1つの前記入力デバイスの前記表現のユーザ操作に対応し、
前記入力データの少なくとも一部が、前記仮想デバイスインスタンスの構成に変更を生じさせ、
前記変更が、前記仮想デバイスインスタンスのデータの変更、もしくは、前記仮想デバイスインスタンスの少なくとも1つのインストールソフトウェアの設定の変更の少なくとも一方を含み、
前記第2のコンピューティングデバイスの物理的バージョンによって採用される、前記仮想デバイスインスタンスの構成を前記第2のコンピューティングデバイスの前記物理的バージョンにコピーすることを開始する
ように構成されている、少なくとも1つの前記第1のコンピューティングデバイス、
を備える、システム。
【請求項3】
前記視覚表示が、ビデオ信号である、請求項2に記載のシステム。
【請求項4】
少なくとも1つの第1のコンピューティングデバイスが、前記仮想デバイスインスタンスによって生成される音声信号を前記メディアストリームに少なくとも符号化するようにさらに構成されている、請求項2に記載のシステム。
【請求項5】
少なくとも1つのインストールソフトウェア設定の前記構成に対する前記変更が、前記仮想デバイスインスタンスにおいて実行されるアプリケーションもしくは前記仮想デバイスインスタンスにおいて実行されるオペレーティングシステムに対する変更を含む、請求項2に記載のシステム。
【請求項6】
データの前記構成に対する前記変更が、前記仮想デバイスインスタンスにおけるアプリケーションのインストレーションを含む、請求項2に記載のシステム。
【請求項7】
少なくとも1つの前記第1のコンピューティングデバイスが、前記インストレーションに関連付けられた前記アプリケーションの購入を少なくとも促進するようにさらに構成されている、請求項6に記載のシステム。
【請求項8】
データの前記構成に対する前記変更が、前記仮想デバイスインスタンスにおける一組のアプリケーションのインストレーションを含む、請求項2に記載のシステム。
【請求項9】
データの前記構成に対する前記変更が、前記仮想デバイスインスタンスにおけるアプリケーションの除去を含む、請求項2に記載のシステム。
【請求項10】
データの前記構成に対する前記変更が、少なくとも1つのファイルの前記仮想デバイスインスタンスへのアップロードを含む、請求項2に記載のシステム。
【請求項11】
少なくとも1つの前記第1のコンピューティングデバイスが、
ユーザから前記第2のコンピューティングデバイスの前記物理的バージョンの注文を取得
前記注文に応答して、前記ユーザによる前記仮想デバイスインスタンスへのアクセスを促進する
ようにさらに構成されている、請求項2に記載のシステム。
【請求項12】
少なくとも1つの前記第1のコンピューティングデバイスが、少なくとも、
前記クライアントにおけるユーザが前記構成に対する前記変更に影響を与えた後に、前記ユーザから前記コンピューティングデバイスの前記物理的バージョンの注文を取得する
ようにさらに構成され
前記注文に応答して、前記構成の前記コピー開始が行われる
請求項2に記載のシステム。
【請求項13】
少なくとも1つの前記第1のコンピューティングデバイスが、少なくとも、ユーザによる前記第2のコンピューティングデバイスの前記物理的バージョンの注文の履行を開始するようにさらに構成されている、請求項2に記載のシステム。
【請求項14】
少なくとも1つの第1のコンピューティングデバイスにおいて、第2のコンピューティングデバイスのために仮想デバイスインスタンスを実行し、少なくとも1つの第1のコンピューティングデバイスにおいて、前記仮想デバイスインスタンスのスクリーンに対応する前記仮想デバイスインスタンスによって生成される視覚表示を取得するステップと、
少なくとも1つの前記第1のコンピューティングデバイスにおいて、前記視覚表示をメディアストリームに符号化するステップと、
少なくとも1つの前記第1のコンピューティングデバイスにおいて、前記メディアストリームをクライアントに送信するステップと、
少なくとも1つの前記第1のコンピューティングデバイスにおいて、前記仮想デバイスインスタンスの物理的インタフェースのグラフィック表現を含むユーザインタフェースを生成するステップであって、前記グラフィック表現のスクリーンが前記メディアストリームの前記視覚表示を示すように構成され、前記グラフィック表現が前記仮想デバイスインスタンスの前記物理的インタフェースの少なくとも1つの入力デバイスの表現を含む、前記ユーザインタフェースを生成するステップと、
少なくとも1つの前記第1のコンピューティングデバイスにおいて、前記ユーザインタフェースを前記クライアントに送信するステップと、
少なくとも1つの前記第1のコンピューティングデバイスにおいて、前記クライアントのユーザから入力データを取得するステップであって、前記入力データは少なくとも1つの前記入力デバイスの前記表現のユーザ操作に対応する、前記入力データを取得するステップと、
少なくとも1つの前記第1のコンピューティングデバイスにおいて、前記入力データを前記仮想デバイスインスタンスに提供するステップであって、前記入力データの少なくとも一部が、前記仮想デバイスインスタンスの構成に変更を生じさせ当該変更は、前記仮想デバイスインスタンスのデータの構成の変更、もしくは、前記仮想デバイスインスタンスの少なくとも1つのインストールソフトウェア設定の構成の変更の少なくとも一方を含む、前記入力データを前記仮想デバイスインスタンスに提供するステップと、
少なくとも1つの前記第1のコンピューティングデバイスにおいて、前記第2のコンピューティングデバイスの物理的バージョンによって採用される、前記仮想デバイスインスタンスの前記構成を前記第2のコンピューティングデバイスの前記物理的バージョンにコピーすることを開始するステップと
少なくとも1つの前記第1のコンピューティングデバイスにおいて、前記仮想デバイスインスタンスの前記構成を有する前記第2のコンピューティングデバイスの前記ユーザによる注文の履行を開始するステップと、
を含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、購入したコンピューティングデバイスの事前構成に関する。
【背景技術】
【0002】
デスクトップコンピュータ、ラップトップ、タブレットコンピュータ、電子書籍リーダ、スマートフォン等のコンピューティングデバイスは、典型的にはデフォルト構成で発送される。いくつかの例において、顧客は様々なハードウェアおよびソフトウェアオプションから選択し、それらはその後購入されたコンピューティングデバイスのためのカスタマイズされたデフォルト構成を生成するときに使用される。それにも拘わらず、顧客はコンピューティングデバイスを所有することになった後、そのカスタマイズとパーソナライズにしばしば時間を費やす。
【発明の概要】
【発明が解決しようとする課題】
【0003】
購入したコンピューティングデバイス上にインストールされるソフトウェアおよびデータをカスタマイズするために入手可能なオプションは、現在は限定されている。顧客はしばしば、コンピューティングデバイスの到着後にそれをカスタマイズしたりパーソナライズするのに時間を費やす。その様な構成は、顧客が実際にコンピューティングデバイスと対話することなしには可能ではないであろう。
【課題を解決するための手段】
【0004】
本開示の一形態は、コンピューティングデバイスにおいて実行可能なプログラムを具現化する非一時的なコンピュータ可読媒体であって、前記プログラムが、コンピューティングデバイスの仮想化バージョンを実行するコードと、前記コンピューティングデバイスの前記仮想化バージョンによって生成されるビデオ信号および音声信号をメディアストリームに符号化するコードと、グラフィック表現のスクリーンが、前記メディアストリームの前記ビデオ信号を示すように構成される、前記コンピューティングデバイスの前記グラフィック表現を含むユーザインタフェースを生成するコードと、前記ユーザインタフェースおよび前記メディアストリームをクライアントに送信するコードと、入力データの少なくとも一部が、前記コンピューティングデバイスの前記仮想化バージョンの構成に変化を生じさせる、前記クライアントにおいてユーザから前記入力データを取得し、かつ前記入力データを前記コンピューティングデバイスの前記仮想化バージョンに提供するコードと、前記クライアントにおいて前記ユーザから前記コンピューティングデバイスの物理的バージョンの注文を取得するコードと、前記構成が、前記コンピューティングデバイスの前記物理的バージョンによって採用される、前記コンピューティングデバイスの前記仮想化バージョンの前記構成の前記コンピューティングデバイスの前記物理的バージョンへのコピーを開始するコードと、前記コンピューティングデバイスの前記物理的バージョンの前記ユーザに関連付けられた住所への発送を開始するコードと、を含む。
【発明の効果】
【0005】
本開示の様々な実施形態はコンピューティングデバイスの遠隔対話式事前構成を可能とする。
【図面の簡単な説明】
【0006】
図1】本開示の様々な実施形態に従うネットワーク環境の図である。
図2】本開示の様々な実施形態に従う図1のネットワーク環境においてクライアントで表現されるユーザインタフェース例の図である。
図3】本開示の様々な実施形態に従う図1のネットワーク環境においてコンピューティングデバイスで実行される電子商用アプリケーション部分として実装される機能性の一例を説明するフローチャートである。
図4A】本開示の様々な実施形態に従う図1のネットワーク環境において、コンピューティングデバイスで実行されるサーバアプリケーション部分として実装される機能性の一例を説明するフローチャートを示す。
図4B】本開示の様々な実施形態に従う図1のネットワーク環境において、コンピューティングデバイスで実行されるサーバアプリケーション部分として実装される機能性の一例を説明するフローチャートを示す。
図5】本開示の様々な実施形態に従う図1のネットワーク環境においてコンピューティングデバイスで実行される遠隔アクセスアプリケーションの部分として実装される機能性の一例を説明するフローチャートである。
図6】本開示の様々な実施形態に従う図1のネットワーク環境において採用されるコンピューティングデバイスの1つの説明例を提供する略ブロック図である。
【発明を実施するための形態】
【0007】
本開示の多くの態様は、以下の図面を参照してよりよく理解することができる。図中の構成要素は、必ずしもスケールに忠実ではなく、その代り、本開示の原理を明確に例示することに重点が置かれている。さらに図中において、同じ参照番号が複数の図において対応する各部を表記している。
【0008】
本開示は、購入したコンピューティングデバイスの事前構成に関する。購入したコンピューティングデバイス上にインストールされるソフトウェアおよびデータをカスタマイズするために入手可能なオプションは、現在は限定されている。顧客はしばしば、コンピューティングデバイスの到着後にそれをカスタマイズしたりパーソナライズするのに時間を費やす。その様な構成は、顧客が実際にコンピューティングデバイスと対話することなしには可能ではないであろう。本開示の様々な実施形態はコンピューティングデバイスの遠隔対話式事前構成を可能とする。1つの実施形態において、実際のコンピューティングデバイスに対する遠隔対話式アクセスが促進される。別の実施形態において、仮想コンピューティングデバイスに対する遠隔対話式アクセスが促進されて、顧客が仮想コンピューティングデバイスをパーソナライズおよび構成することを可能にする。その後、実際のコンピューティングデバイスは、仮想コンピューティングデバイスのカスタマイズされた構成に従って、事前構成される。以下の説明において、システムおよびその構成要素の一般的説明が適用され、それに続いてそれらの操作説明がなされる。
【0009】
図1を参照すると、様々な実施形態に従うネットワーク環境100が示されている。ネットワーク環境100は、ネットワーク109を介する1つまたは複数のクライアント106とのデータ通信において、1つまたは複数のコンピューティングデバイス103を含む。いくつかの実施形態において、コンピューティングデバイス103およびクライアント106も、ネットワーク109を介して1つまたは複数のコンピューティングデバイス112とデータ通信を行い得る。ネットワーク109は、例えば、インターネット、イントラネット、エクストラネット、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、有線ネットワーク、無線ネットワーク、または他の適切なネットワーク等、あるいは2つまたはそれ以上のその様なネットワークの任意の組み合わせを含む。
【0010】
コンピューティングデバイス103は、例えば、サーバコンピュータまたは演算能力を提供する任意の他のシステムを備えてもよい。あるいは、複数のコンピューティングデバイス103を採用し、例えば、1つまたは複数のサーババンクまたはコンピュータバンク、あるいは他の取り合せで配列してもよい。例えば、複数のコンピューティングデバイス103を合わせてクラウドコンピューティングリソース、グリッドコンピューティングリソース、および/または、他の任意の分散コンピューティング配列を含んでもよい。その様なコンピューティングデバイス103は1つのインストレーションに位置付けされてもよく、あるいは多くの異なる地理的位置に分散されてもよい。便宜上、コンピューティングデバイス103は本明細書では単数として参照される。コンピューティングデバイス103は単数として参照されるけれども、前述のように複数のコンピューティングデバイス103が様々な配列で採用されてもよいことを理解されたい。
【0011】
様々なアプリケーションおよび/または他の機能性が、様々な実施形態に従うコンピューティングデバイス103において実行され得る。また、様々なデータがデータストア113に記憶され、それはコンピューティングデバイス103に利用可能となる。データストア113は、評価され得る複数のデータストア113の代表であり得る。データストア113内に記憶されたデータは、例えば、以下に記述される様々なアプリケーションの操作および/または機能的存在に関連付けられる。
【0012】
コンピューティングデバイス103上で実行される構成要素は、例えば、サーバアプリケーション115、デバイス構成アプリケーション116、電子商用アプリケーション117、 複数の仮想デバイスインスタンス118a...118N、複数のメディア符号器120a...120N、および他のアプリケーション、サービス、プロセス、システム、エンジン、あるいは本明細書では詳述されていない機能性、を含む。いくつかの実施形態において、サーバアプリケーション115は、購入済または購入されるコンピューティングデバイス112へ対話式遠隔アクセスを促進するために実行される。遠隔アクセスは、コンピューティングデバイス112のユーザによる事前構成、および/またはコンピューティングデバイス112の動作テストを可能とし得る。
【0013】
他の実施形態において、サーバアプリケーション115は、購入済または購入されるコンピューティングデバイス112の仮想化バージョンに対応する仮想デバイスインスタンス118に対する対話式遠隔アクセスを促進するために実行される。同様にユーザは、仮想デバイスインスタンス118を事前構成し、構成の変更は、コンピューティングデバイス112が発送される前に、実際のコンピューティングデバイス112に複製され得る。サーバアプリケーション115は、クライアント106からデバイス入力データ122を取得するためにも実行され、デバイス入力データ122を各仮想デバイスインスタンス118またはコンピューティングデバイス112に提供する。
【0014】
サーバアプリケーション115は、コンピューティングデバイス112または仮想デバイスインスタンス118から捕捉されるデバイス出力データ123をクライアント106に送信するためにも実行される。サーバアプリケーション115は、ハイパーテキストトランスファプロトコル(HTTP)、シンプルオブジェクトアクセスプロトコル(SOAP)、レプレゼンテーショナルステートトランスファ(REST)、リアルタイムトランスポートプロトコル(RTP)、リアルタイムストリーミングプロトコル(RTSP)、リアルタイムメッセージングプロトコル(RTMP)、ユーザデータグラムプロトコル(UDP)、トランスミッションコントロールプロトコル(TCP)および/またはネットワーク109を介したデータ通信のための他のプロトコル等の様々なプロトコルを介し、クライアント106と通信し得る。サーバアプリケーション115は実行中の仮想デバイスインスタンス118および/またはコンピューティングデバイス112に関連する入力待ち行列125を維持するように構成される。
【0015】
様々な実施形態において、サーバアプリケーション115は、1つまたは複数のネットワークページを使用してユーザインタフェースを生成するように構成し得る。ネットワークページは、仮想デバイスインスタンス118によって生成されるストリーミングビデオおよび/またはオーディオを含んでよい。様々な実施形態において、仮想入力デバイスの画像は、ストリーミングビデオおよび/またはオーディオと連動して表現されてもよい。例えば、仮想デバイスインスタンス118またはコンピューティングデバイス112の仮想キーボードはネットワークページ内に含まれてよい。例えばコンピューティングデバイス112がモバイルコンピューティングデバイスの場合、モバイルコンピューティングデバイスの画像がネットワークページに含まれてよい。サーバアプリケーション115は、仮想デバイスインスタンス118および/またはコンピューティングデバイス112と連動し、モバイルコンピューティングデバイスの画像との対話を促進し得る。コンピューティングデバイス112が例えばスクリーンをもつモバイルコンピューティングデバイスに対応する場合、仮想デバイスインスタンス118またはコンピューティングデバイス112から捕捉されたビデオを、あたかもそのビデオがモバイルコンピューティングデバイスのスクリーン上で示されるかのように、モバイルコンピューティングデバイスの画像によって取り囲まれてよい。
【0016】
デバイス構成アプリケーション116は、コンピューティングデバイス112および/または仮想デバイスインスタンス118に対して構成変更を実施するために実行される。1つの態様では、デバイス構成アプリケーション116はコンピューティングデバイス112および/または仮想デバイスインスタンス118のためのデフォルト構成を提供するために実行され得る。ユーザが仮想デバイスインスタンス118と対話する場合、デバイス構成アプリケーション116を実行して仮想デバイスインスタンス118の修正済み構成を記憶し、そしてユーザによって購入されたコンピューティングデバイス112に修正済み構成を複製し得る。ユーザがコンピューティングデバイス112と直接対話する場合、デバイス構成アプリケーション116を実行して1つのコンピューティングデバイス112の修正済み構成を別のコンピューティングデバイス112に複製し得る。受け取り側コンピューティングデバイス112はそれによって修正済み構成を採用する。
【0017】
電子商用アプリケーション117は、ネットワーク109を介した、コンピューティングデバイス112、コンピューティングデバイス112用のアプリケーション等の品目の商店からのオンライン購入を促進するように実行される。電子商用アプリケーション117は、品目のオンライン購入を促進するために、商店のオンライン上の存在と関連する様々なバックエンド機能をも実行する。例えば、電子商用アプリケーション117は、購入、レンタル、ダウンロード、リース、または他の形式の消費のため、品目の選択目的のためにクライアント106に提供されるネットワークページまたはその一部を生成し得る。いくつかの実施形態において、電子商用アプリケーション117は、複数の店が参加する電子市場を含むネットワークサイトに関連付けられる。
【0018】
仮想デバイスインスタンス118は、コンピューティングデバイス112の仮想化バージョンに対応する。仮想デバイスインスタンス118はデフォルト構成が事前ロードされており、これはその後ユーザによって修正され得る。様々な実施形態では、仮想デバイスインスタンス118を構成し、アプリケーションがアクセスを期待する1つまたは複数のリソースを仮想化することにより、アプリケーションのための仮想化環境を提供し得る。その様なリソースは、キーボード、マウス、ジョイステック、ビデオデバイス、サウンドデバイス、グローバルポジショニングシステム(GPS)デバイス、加速度計、タッチスクリーン、内臓式ボタン、ファイルシステム、内臓式バッテリー、等を含み得る。このようにして、仮想デバイスインスタンス118は、仮想デバイスインスタンス118がキーボード、マウス、または別のタイプのハードウエアデバイスをエミュレートする場合、入力コマンドおよび他のデータをアプリケーションに提供することができる。
【0019】
さらに、仮想デバイスインスタンス118は、オペレーティングシステムアプリケーションまたは他のアプリケーションによって生成されるビデオ信号および/または音声信号を取得可能で、そして仮想デバイスインスタンスはディスプレイデバイス、オーディオデバイス、または別のタイプの出力デバイスをあたかもエミュレートまたはシミュレートするようである。本明細書で論じられている多くの例はエミュレートされたまたはシミュレートされたディスプレイを備えるコンピューティングデバイスに関連するが、エミュレートされたまたはシミュレートされたコンピューティングデバイスは、例えば、セットトップボックス、オーディオプレーヤ、および/または一体化されたディスプレイスクリーンを持たない他のデバイス等も含み得る。
【0020】
限定されない例として、仮想デバイスインスタンス118は、OpenGL(登録商標)、DirectX(登録商標)、グラフィックデバイスインタフェース(GDI)等の様々なアプリケーションプログラミングインタフェース(API)を使用するアプリケーションをサポートし得る。アプリケーションが特化デバイスまたは別のタイプのコンピューティングデバイスで実行するように構成された場合、仮想デバイスインスタンス118はそのデバイスをエミュレートするエミュレーションアプリケーションを含み得る。例えば、アプリケーションの出力は、グラフィックAPIの下での描画コールまたは他のシステムコール等のインターセプトシステムコールによって、仮想デバイスインスタンス118により捕捉され得る。
【0021】
1つまたは複数のメディア符号器120は、仮想デバイスインスタンス118から生成されたビデオ信号および/または音声信号を、メディアストリームに符号化可能である。例えばムービングピクチャエクスパートグループ(MPEG)符号器、H.264符号器、Flash(登録商標)ビデオ符号器等の、様々なタイプのメディア符号器120を使用し得る。その様なメディア符号器120は、例えばデータ削減、符号化品質、待機時間等の要因に従って選択し得る。いくつかの実施形態では、仮想デバイスインスタンス118はクライアント106と直接通信し、デバイス入力データ122の取得およびデバイス出力データ123の提供を行い得る。
【0022】
入力待ち行列125は、仮想デバイスインスタンス118のためのデバイス入力データ122から、入力コマンドを収集し得る。入力コマンドは正しいシーケンスに再順序ずけされ、コマンド間に遅延を挿入して、対応する仮想デバイスインスタンス118に提出される時に正しく解釈されるようにし得る。
【0023】
データストア113に記憶されるデータは、例えば、メディア符号器129、デバイスインタフェース133、デバイス構成135、ユーザデータ137、および潜在的他のデータを含む。メディア符号器129は、コンピューティングデバイス103および/またはコンピューティングデバイス112に採用し得る様々なタイプのメディア符号器120に対応する。いくつかのメディア符号器129は、例えば、H.264、MPEG−4、 MPEG−2、 および/または他のフォーマット等の特定フォーマットに対応し得る。
【0024】
デバイスインタフェース133は、画像、動画、コード、ハイパーテキストマークアップ言語(HTML)、拡張マークアップ言語(XML)、カスケーディングスタイルシート(CSS)、および/または仮想化コンピューティングデバイスのグラフィック表現を生成するために使用し得る他のデータに対応する。特定のコンピューティングデバイスプラットフォームを多数のデバイスインタフェース133と関連付け得ることに注目されたい。限定されない例として、スマートフォンのAndroid(登録商標)はスマートフォンの多数の様々なモデルによってサポートされ得る。いくつかのモデルはタッチスクリーンを備えたミニキーボードを有し、一方他のモデルは物理的ミニキーボードを備えないタッチスクリーンのみを有し得る。各モデルは様々な制御子およびケースを有し得る。したがって、様々なデバイスインタフェース133をAndroid(登録商標)スマートフォンの様々なモデルのために提供し得る。
【0025】
コンピューティングデバイス112が組み込みディスプレイを含まない場合、デバイスインタフェース133は、コンピューティングデバイス112または仮想デバイスインスタンス118によって生成されるビデオを表示する外部表示装置の表現を含み得る。同様に、コンピューティングデバイス112に接続され得る他の非組み込み型ドライブデバイス(例えば、キーボード、マウス、等)は、デバイスインタフェース133によって提示され得る。
【0026】
デバイス構成135は、コンピューティングデバイス112のためのデフォルト構成およびユーザ修正済み構成に対応する。その様な構成は、コンピューティングデバイス112のためのアプリケーションおよびデータを含んでよい。1つの実施形態では、デバイス構成135はコンピューティングデバイス112のマシン画像に対応する。1つの実施形態では、仮想デバイスインスタンス118によってロードされ、修正されるデバイス構成135は、1つまたは複数のコンピューティングデバイス112にその後ロードされてもよい。いくつかの例では、特化されたデフォルトデバイス構成135も提供し得る。限定されない例として、読書リストをもつ学校の先生は、読書リストの全書籍があらかじめロードされた電子書籍リーダに関するデフォルト構成を確立し得る。学生は、その構成を採用するように個々に電子書籍リーダを構成可能であり、あるいは教師は、一度に多数の電子書籍リーダに対してデフォルト構成の大量複製を流すことも可能である(例えば、学校が所有し、生徒が利用可能な100台の電子書籍リーダ)。
【0027】
ユーザデータ137は、ユーザ参照、注文履歴、ユーザアカウント情報、および他のデータに関連する様々なデータを含み得る。例えば、ユーザデータ137はコンピューティングデバイス112に関する注文状態を示してもよい。さらに、ユーザデータ137はコンピューティングデバイス112が発送される発送先住所を示してもよい。コンピューティングデバイス112がギフト受取人に発送される場合、ユーザデータ137は、ギフト受取人住所を示してもよい。
【0028】
コンピューティングデバイス112は、例えば、コンピュータシステム等のプロセッサベースのシステムを備え得る。そのようなコンピュータシステムは、デスクトップコンピュータ、ラップトップコンピュータ、携帯端末、携帯電話、スマートフォン、セットトップボックス、アプリケーションを実行し、ネットワーク109にアクセス可能なテレビ、音楽プレーヤ、ウェブパッド、タブレットコンピュータシステム、ゲーム機、電子書籍リーダ、または同様の能力を備えた他のデバイスの形式で具体化される。1つの実施形態では、コンピューティングデバイス112とネットワーク環境100においてネットワーク109と組み合わせ、コンピューティングデバイス112を購入した、または購入を考えているユーザに、遠隔アクセスを提供し得る。コンピューティングデバイス112は、フルフィルメントセンターまたは別の施設等の材料取り扱い施設において、ネットワーク環境100の中で維持し得る。あるいは、コンピューティングデバイス112は、発送前に記憶されたデバイス構成135を複製するためのみに、ネットワーク環境100と連結されてもよい。最後には、コンピューティングデバイス112はネットワーク109から外され、注文の履行時に顧客に発送される。
【0029】
コンピューティングデバイス112は、ディスプレイ142を含んでもよい。ディスプレイ142は、例えばカソードレイチューブ(CRT)、液晶ディスプレイ(LCD)スクリーン、ガスプラズマベースフラットパネルディスプレー、LCDプロジェクタ、または他のタイプのディスプレイデバイス等の1つまたは複数のデバイスを備える。ディスプレイ142は、ユーザの見るコンピューティングデバイス112のグラフィック出力に対応するスクリーン145を含む。コンピューティングデバイス112は1つまたは複数の入力デバイス148を含み得る。入力デバイス148は例えばキーボード、マウス、ジョイステック、加速度計、光ガン、ゲームコントローラ、タッチパッド、タッチスティック、押しボタン、光センサ、マイクロフォン、ウェブカメラ、および/またはユーザ入力を提供可能な任意の他のデバイスを備えてもよい。さらに、様々な入力デバイス148は、ユーザにフィードバックを提供するために触覚技術を組み込んでもよい。コンピューティングデバイス112は、例えば、オーディオデバイス、表示ランプ、振動デバイス、触覚デバイス、等の様々な出力デバイス151を有してもよい。
【0030】
様々なアプリケーションおよび/または他の機能性を、様々な実施形態に従うコンピューティングデバイス112内で実行し得る。コンピューティングデバイス112上で実行される構成要素は、例えば、アプリケーション154、遠隔アクセスアプリケーション157、および他のアプリケーション、サービス、プロセス、システム、エンジン、あるいは本明細書では詳述されていない機能性を含む。
【0031】
アプリケーション154は、コンピューティングデバイス112内で実行され得る様々なアプリケーションに対応する。アプリケーション154は、例えば、ゲームあるいは他のタイプのアプリケーションに対応し得る。限定されない例として、アプリケーション154は、シューティングゲーム、アクションゲーム、アドベンチャゲーム、パーティゲーム、ロールプレイングゲーム、シミュレーションゲーム、戦略ゲーム、車両シミュレーションゲーム、および/または他のタイプのゲームに対応し得る。アプリケーション154は汎用コンピューティングデバイスにおいて、または例えばスマートフォン、ビデオゲーム機、携帯型ゲームデバイス、アーケードゲームデバイス、等の特化したデバイスにおいて実行するために設計し得る。アプリケーション154は、携帯電話アプリケーション、コンピュータ支援設計(CAD)アプリケーション、コンピュータ支援製造(CAM)アプリケーション、写真操作アプリケーション、ビデオ編集アプリケーション、オフィス生産性アプリケーション、オペレーティングシステムおよび関連アプリケーション、オペレーティングシステム、アーキテクチャ、および消費者用デバイス上には存在しない機能に関するエミュレータ、および他のアプリケーションならびにアプリケーションの組み合わせにも対応し得る。
【0032】
いくつかの実施形態では、遠隔アクセスアプリケーション157は、ネットワーク109を介してコンピューティングデバイス112に遠隔アクセスすることを促進するために実行される。その目的のため、遠隔アクセスアプリケーション157は、スクリーン145に対応するビデオ信号および音声信号を捕捉し、そしてその信号をコンピューティングデバイス103および/またはクライアント106に送信し得る。いくつかの実施形態では、コンピューティングデバイス112の出力は、デバイスレベルにおいてコンピューティングデバイス103のメディア符号器120によって捕捉し得る。例えば、コンピューティングデバイス112のビデオ出力は、ビデオグラフィックアレイ(VGA)接続、高精度マルチメディアインタフェース(HDMI)接続、コンポーネントビデオ接続、全国テレビジョン方式委員会(NTSC)テレビ接続、および/または他の接続を介して捕捉し得る。他の実施形態では、遠隔アクセスアプリケーション157は1つまたは複数のメディア符号器120を含み、ソフトウェアにより捕捉されるビデオ信号および/または音声信号をメディアストリームに符号化する。
【0033】
遠隔アクセスアプリケーション157は、メディアストリームをクライアント106および/またはコンピューティングデバイス103のデバイス出力データ123に送信し得る。遠隔アクセスアプリケーション157は、クライアント106および/またはデバイス入力データ122の中のコンピューティングデバイス103から様々なデータを、取得し得る。デバイス入力データ122は音声信号、入力コマンド、テキスト入力、および/または他の形式の入力データに対応し得る。コンピューティングデバイス112は様々なデータをデバイスデータ160として記憶してもよい。デバイスデータ160は、例えば、記憶されたアプリケーション154、写真、ビデオ、オーディオファイル、コンタクトデータ、電子書籍、保存されたテキストメッセージ、保存されたテキストメッセージ、保存された音声メール、および/または他のデータを含んでもよい。
【0034】
クライアント106は、ネットワーク109と接続され得る複数のクライアントデバイスの代表である。クライアント106は地理的多様性を提供し得る。クライアント106は、例えば、コンピュータシステム等のプロセッサベースのシステムを備え得る。その様なコンピュータシステムは、デスクトップコンピュータ、ラップトップコンピュータ、携帯端末、携帯電話、スマートフォン、セットトップボックス、アプリケーションを実行し、ネットワーク109にアクセス可能なテレビ、音楽プレーヤ、ウェブパッド、タブレットコンピュータシステム、ゲーム機、電子書籍リーダ、または他の同様の能力をもつデバイスの形で具体化され得る。
【0035】
クライアント106はディスプレイ163を含み得る。ディスプレイ163は、例えば、カソードレイチューブ(CRT)、液晶表示(LCD)スクリーン、ガスプラズマベースフラットパネルディスプレイ、LCDプロジェクタまたは他のタイプのディスプレイデバイス等の1つまたは複数のデバイスを含み得る。クライアント106は1つまたは複数の入力デバイス166を含み得る。入力デバイス166は、例えば、キーボード、マウス、ジョイスティック、加速度計、光ガン、ゲームコントローラ、タッチパッド、タッチスティック、押しボタン、光センサ、マイクロフォン、ウェブカメラ、および/またはユーザ入力を提供することもできる任意の他のデバイス、等のデバイスを含み得る。さらに、様々な入力デバイス166は触覚技術を組み込み、ユーザにフィードバックを提供してもよい。クライアント106は、例えば、オーディオデバイス、表示ランプ、振動デバイス、触覚デバイス等の様々な出力デバイス169を有してもよい。
【0036】
クライアント106はクライアントアプリケーション172および/または他のアプリケーション等の様々なアプリケーションを実行するように構成され得る。クライアントアプリケーション172は、コンピューティングデバイス103から1つまたは複数のネットワークページを取得して描写するブラウザに対応し、これによって、コンピューティングデバイス112および/または他の品目の選択および購入を促進する。また、クライアントアプリケーション172はコンピューティングデバイス112または仮想デバイスインスタンス118との対話をユーザに許すために実行される。その目的のため、クライアントアプリケーション172は1つまたは複数の入力デバイス166を通してユーザによって提供される入力コマンドを捕捉し、そしてその入力をネットワーク109を介して、デバイス入力データ122としてコンピューティングデバイス103に送信するように構成される。デバイス入力データ122はコンピューティングデバイス112または仮想デバイスインスタンス118によって使用されるために、クライアント106によって生成される他のデータ(例えば、GPSデータ、オーディオデータ、等)を組み込んでもよい。
【0037】
クライアントアプリケーション172はコンピューティングデバイス103からネットワーク109を介してデバイス出力データ123を取得し、ディスプレイ163上にスクリーン175を描くようにも構成される。この目的のために、クライアントアプリケーション172は1つまたは複数のビデオおよびオーディオプレーヤを含み、仮想デバイスインスタンス118またはコンピューティングデバイス112に対応するメディアストリームを再生し得る。1つの実施形態では、クライアントアプリケーション172はブラウザアプリケーション内で実行されるプラグインまたは他のクライアントサイドコードを含む。クライアント106はクライアントアプリケーション172以外に、例えば、ブラウザアプリケーション、Eメールアプリケーション、インスタントメッセージアプリケーション、および/または他のアプリケーション等のアプリケーションを実行するように構成され得る。いくつかの実施形態では、複数のクライアント106を一人または複数のユーザのために採用し、仮想デバイスインスタンス118またはコンピューティングデバイス112と対話するようにしてもよい。限定されない例として、いくつかのクライアント106は表示出力に特化されてもよく、一方他のクライアント106はユーザ入力の取得に特化されてもよい。様々なクライアント106は、入力コマンドを仮想デバイスインスタンス118またはコンピューティングデバイス112に提供する前に採用された遅延に影響する可能性のある様々な待機時間要件に関連し得ることに注目されなければならない。
【0038】
次に、ネットワーク環境100の様々な構成要素の操作の一般的説明を行う。最初に、クライアント106の顧客は、電子商用アプリケーション117により提供されるネットワークサイトを閲覧する。顧客は、例えば、カタログの分類をナビゲートし、質問の検索を実行し、リンクを選択し、および/または他のナビゲーション機能を実行し得る。顧客はコンピューティングデバイス112に購買用に特集する詳細なネットワークページまたは別の類似ネットワークページに到達し得る。あるいは、顧客はコンピューティングデバイス112を選択し、コンピューティングデバイス112上に事前ロードされるアプリケーション154、メディアファイル、等を購買することを探してもよい。
【0039】
顧客はシミュレートされたインタフェースを通してコンピューティングデバイス112および/またはアプリケーション127を使用する機会を与えられてもよい。その目的のためには、クライアント106の顧客は対話式遠隔アクセスセッションの開始要求をサーバアプリケーション115に送信する。サーバアプリケーション115は、デバイス構成アプリケーション116を使用し、デフォルトデバイス構成135でコンピューティングデバイス112または仮想デバイスインスタンス118を構成する。あるいは、顧客はコンピューティングデバイス112または仮想デバイスインスタンス118内の、直前に使用されたデバイス構成135に戻ることも可能である。
【0040】
仮想デバイスインスタンス118はアプリケーション154の実行のための与えられた環境を提供してもよい。いくつかの実施形態では、ホスト環境は、コンピューティングデバイス103の1つまたは複数のリソースを仮想化する仮想化環境を含み得る。そのようなリソースは排他的リソース、すなわちアプリケーション154 が排他的アクセスを要求するリソース、を含み得る。例えば、アプリケーション154はビデオデバイスからフルスクリーンアクセスを要求し得るが、これは通常はただ1つのアプリケーションがフルスクリーンアクセスを有し得るため、排他的リソースである。さらに、仮想デバイスインスタンス118または遠隔アクセスアプリケーション154は、コンピューティングデバイス103またはコンピューティングデバイス112内に実際には存在しないかもしれない、例えば、キーボード、マウス、GPSデバイス、加速度計、等の入力デバイスを仮想化し得る。仮想デバイスインスタンス118はアプリケーション154に、仮想ファイルシステムへのアクセスをも提供し得る。様々な実施形態で、仮想デバイスインスタンス118は、仮想マシンに対応し得るおよび/または仮想デバイスインスタンス118は仮想マシン内で実行され得る
【0041】
クライアント106のユーザは、クライアント106の入力デバイス166を使用し、仮想デバイスインスタンス118または遠隔アクセスアプリケーション157のための入力コマンドを入力する。限定されない例として、ユーザは左マウスボタンを押す。それにより、クライアントアプリケーション172は、デバイス入力データ122内で、入力コマンドをネットワーク109を介して送信し得る形式に符号化するように働く。サーバアプリケーション115は入力コマンドを受信し、それを仮想デバイスインスタンス118の入力待ち行列125あるいは遠隔アクセスアプリケーション157の入力待ち行列に加え、そして最後にそれを仮想デバイスインスタンス118または遠隔アクセスアプリケーション157に渡す。仮想デバイスインスタンス 118または遠隔アクセスアプリケーション157は、次に、仮想化マウスまたはAPIコールにより、アプリケーション154に対して左マウスボタン押しこみを行う。
【0042】
ネットワーク109の可変待機時間特性により、受信後すぐに入力コマンドがアプリケーション154に提供された場合、いくつかの入力コマンドがアプリケーション154によって誤って解釈されることもあることに注意されたい。限定されない例として、マウスボタンのシングルクリック2回は、1回目のシングルクリックが2回目のシングルクリックよりも多くの量でネットワーク109によって遅延された場合、ダブルクリックとして誤って解釈され得る。同様に、マウスクリックおよびマウスドラッグは、ある入力コマンド間の相対的時間関係が保たれない場合、誤って解釈され得る。
【0043】
別の限定されない例として、アプリケーション154が、ファイティングゲームジャンル、例えばMortal Kombat、Street Fighter等のゲームアプリケーションに対応する場合を想定してみる。クライアント106のユーザは、急速な入力コマンドの連続を通して一連の複雑な動きを実行し得る。入力コマンドがネットワーク109を介して可変待機時間にさらされる場合、一連の動作はアプリケーション154によって誤って解釈されることがあり、それにより、ユーザによってコントロールされるキャラクタは、意図された動作を実行しないという結果になり得る。例えば、パンチ動作を成功させるためには、2つのボタンを所定期間内に押すことが必要とされる。2番目の入力コマンドがネットワーク109によって遅延され、1番目の入力コマンドがネットワーク109によって遅延されない場合、動作は、ユーザの何等の落ち度なく、不成功となり得る。これを矯正するため、サーバアプリケーション154は最初の入力コマンドを遅延させ、最初と2番目の入力コマンド間の相対的時間関係を保存し得る。そうすることにより、ユーザによって実行されるジェスチャまたはシーケンスは、アプリケーション154のために保存される。
【0044】
使用される追加の遅延は事前決定され得るが、クライアント106において生成されたときの各コマンド間の間隔と、サーバアプリケーション115によって各コマンドが受信されたときの間隔との差に基づいて計算されることも可能である。クライアント106において生成されるコマンド間の間隔は、コマンドに関連するメタデータ内のタイムスタンプを参照することによって決定し得る。システム内の様々な固定待機時間(例えば、ビデオエンコーディング遅延、最小ネットワーク待機時間)はアプリケーション154の機能性には悪影響を及ぼさないことに注目されたい。
【0045】
いくつかの例では、アプリケーション154に入力コマンドを提供する際の遅延は、入力コマンドと関連するビデオフレーム領域に少なくとも部分的には左右される。限定されない例として、ゲームであるアプリケーション154の場合、入力コマンドの意味を保存するために、ゲームプレイに関連する入力コマンドを遅延させることは重要であり得る。しかしながら、ゲームスクリーン145はチャットウィンドウを含む場合もあり、また入力コマンドはチャットウィンドウを介してゲーム内に別のプレーヤに送信されるテキストを含む場合もある。入力コマンドがチャットウィンドウに関連する場合、仮想デバイスインスタンス118または遠隔アクセスアプリケーション157を、追加遅延なしに入力コマンドをアプリケーション154に提供するために構成され得る。すなわち、テキストをできる限り早く他のユーザに送信することが優先されるであろう。したがって、遅延は、入力コマンドがチャットウィンドウであるスクリーン145の領域に関連しているかに左右されるだろう。また、アプリケーション154は複数のモードを有することが可能で、あるモードは入力コマンドを提供する際に遅延と関係するが、別のモードはそうではないことを理解されたい。
【0046】
ユーザが入力コマンドをクライアント106において生成するとき、スクリーン145上でユーザに対して提供されるビデオフレームと確実にシンクされることも重要である。限定されない例として、システムの様々な待機時間のゆえに、ファイティングゲームにおいて、ユーザによってコントロールされるキャラクタによって投げられようとする火の玉は、意図するよりも遅れて投げられることもあり得る。いくつかの例ではこのことは問題にならないかもしれない。例えば、ユーザは火の玉を単に投げることを欲しており、火の玉を投げる際の短い遅延はユーザにとって受け入れられることもある。しかしながらより正確性を求めて、アプリケーション154は、仮想デバイスインスタンス118または遠隔アクセスアプリケーション157が、フレーム番号または他の時間的識別子を入力コマンドと関連付けることを許可するAPIをサポートする場合がある。それにより、アプリケーション154は入力コマンドがいつ実行されたかと、それにつれて反応することを正確に知ることが可能である。フレーム番号または他の時間的識別子は、入力コマンドのメタデータとしてクライアントアプリケーション172によってサーバアプリケーション115に送信されてもよい
【0047】
いくつかの実施形態では、様々な入力コマンドが、クライアント106によって生成されたものからアプリケーション154に提供され得る。限定されない例として、ユーザがマウスダウンコマンドを送信し、そしてクライアントアプリケーション172が焦点を失う場合、仮想デバイスインスタンス118または遠隔アクセスアプリケーション157をマウスダウンコマンドを送信し、続けてマウスアップコマンドを送信するように構成してよい。いくつかの実施形態では、入力コマンドは可能な限り仮想デバイスインスタンス118または遠隔アクセスアプリケーション157に中継されてもよく、あるいは入力コマンドは仮想デバイスインスタンス118または遠隔アクセスアプリケーション157によって入力待ち行列125に入れられ、そして別のアプローチに従って待ち行列から順次アプリケーション154に中継されてもよい。
【0048】
一方、仮想デバイスインスタンス118または遠隔アクセスアプリケーション157のグラフィック出力は、捕捉され、メディアストリームに符号化される。グラフィック出力は、ビデオ信号または別のタイプの視覚表示に対応し得る。例えば、視覚表示は、配列されたアイコンおよび座標に対応し得る。別の例では、グラフィック出力は、画像シーケンスに対応し、これは標準作成委員会(JPEG)メディアストリームに符号化し得る。さらに、仮想デバイスインスタンス118または遠隔アクセスアプリケーション157のオーディオ出力は、捕捉されてメディアストリームに多重化され得る。グラフィック出力および/またはオーディオ出力は、いくつかの実施形態では、コンピューティングデバイス103またはコンピューティングデバイス112のハードウエアデバイスにより捕捉され得る。メディアストリームは、デバイス出力データ123として、ネットワーク109を介してクライアント106にサーバアプリケーション115または(遠隔アクセスアプリケーション157)によって送信される。クライアントアプリケーション172はデバイス出力データ123を取得し、ユーザインタフェース内のディスプレイ142上にスクリーン145を描く。スクリーン145は、コンピューティングデバイス112の入力および出力を促進する、対応デバイスインタフェース133から生成されるデバイスインタフェース133によって取り囲まれ得る。
【0049】
いくつかの実施形態では、顧客はあるクライアント106において対話式遠隔アクセスセッションを開始し、そのセッションを別のクライアント106で継続し得る。さらに、様々な場所の複数のユーザが、対話式遠隔アクセスセッションに参加し得る。様々な実施形態が、クライアント106においてあるタイプの入力デバイス166を通して生成される入力を、仮想デバイスインスタンス118または遠隔アクセスアプリケーション157により、まったく異なるタイプの仮想入力デバイスを通してアプリケーション154に提供される入力コマンドへ変換することを可能にする。限定されない例として、クライアント106において加速度計によって生成される入力は、仮想デバイスインスタンス118または遠隔アクセスアプリケーション157により、仮想マウスを介して提供される入力へ翻訳し得る。
【0050】
入力デバイス148が触覚技術およびデバイスを組み込む場合、フォースフィードバックは出力デバイス169のデバイス出力データ123の中に提供され得る。限定されない例として、シミュレートされた自動車のハンドルはフォースフィードバックによりプログラム可能で、ユーザに対して道路の感触を与える。ユーザが転回または加速を行うと、ハンドルは回転に抵抗したりスリップし、コントロールを失う場合がある。別の限定されない例では、入力デバイス148の温度をフォースフィードバックに従って変更するように構成し得る。1つの実施形態では、あるクライアント106のデバイス入力データ122から生成されるフィードバックは、別のクライアント106に送信されるデバイス入力データ123に含めることができる。
【0051】
実際のコンピューティングデバイス112と類似するインタフェースを備えるコンピューティングデバイス112が十分にテストされ、および/または構成されると、顧客はコンピューティングデバイス112を購入する準備が十分に整う。顧客は、任意の時点で、ネットワークページ上で様々な購入構成要素を選択し、コンピューティングデバイス112のための様々なアプリケーション154の購入、リース、および/またはダウンロードを選択し得る。いくつかの例では、顧客は事前構成されたアプリケーション154のバンドルあるいはコンピューティングデバイス112へロードされ得る他のコンテンツを選択し得る。各アプリケーション154または他のコンテンツが選択されロードされると、電子商用アプリケーション117によって請求書が顧客に送信される。あるいは、多くのアプリケーション154または他のコンテンツが潜在的にロードされ、そしてデバイス構成135がファイナライズまたは複製された後、請求書が顧客に送信されてもよい。
【0052】
顧客はデバイス構成135を保存し、保存されたデバイス構成135をその後の対話式、遠隔アクセスセッションにおいて修正し得る。デバイス構成アプリケーション116は修正済みデバイス構成135上でエラーチェックを実行し、それが有効であることを確認し得る。顧客が対話式遠隔アクセスセッションを終了すると、仮想デバイスインスタンス118のデバイス構成135を、コンピューティングデバイス112の物理的バージョンへコピーし得る。あるいは、物理的コンピューティングデバイス112が遠隔アクセスされた場合、そのコンピューティングデバイス112に対する変更は維持され、および/または他のコンピューティングデバイス112に複製され得る。その後、潜在的に修正されたデバイス構成135を含むコンピューティングデバイス112は、注文の履行時に顧客に発送され得る。いくつかの例では、修正済みデバイス構成135を、例えば家庭内または他の環境で、すでに顧客の所有している1つまたは複数の物理的コンピューティングデバイス112に対し、ネットワーク109を介して複製し得る。
【0053】
遠隔的に実行されるアプリケーション154に対して入力コマンドを提供することに関連する様々な技術は、2010年12月15日に出願され、出願番号12/968,845号を割り当てられた米国特許出願’Sending Application Input Commands over a Network’、及び2011年5月24日に出願され、出願番号13/114,534を割り当てられた米国特許出願’Remotely Emulating Computing Devices’に記載されており、その両者は参照によってその全体が本明細書に組み込まれる。
【0054】
図2に移動すると、ネットワーク環境100(図1)におけるクライアント106(図1)で描かれるユーザインタフェース200の例が示されている。ユーザインタフェース200は、ブラウザに対応するクライアントアプリケーション172(図1)によって描かれるネットワークページ203を含む。ネットワークページ203は、対話式遠隔アクセスセッションで使用されるコンピューティングデバイス112(図1)のグラフィック表現206を含む。グラフィック表現206はスクリーン145が表示されるディスプレイ142を含む。スクリーン145は、メディアストリームに対応し、これは実際のコンピューティングデバイス112の遠隔アクセスアプリケーション157(図1)によって、あるいは、コンピューティングデバイス103(図1)において仮想デバイスインスタンス118(図1)により生成される仮想ディスプレイおよび/またはオーディオデータ信号から生成される。他の実施形態では、取り囲んでいるグラフィック表現206無しでスクリーン145が描かれる。
【0055】
入力ボタン等の様々な入力デバイス148は、グラフィック表現206により表現される。ディスプレイ142は、タッチスクリーンに対応し得る。ユーザがグラフィック表現206と対話するとき、入力データはサーバアプリケーション115(図1)に送信される。入力データは、仮想デバイスインスタンス118の仮想化入力デバイスのための入力に、または実際の入力デバイス148あるいはコンピューティングデバイス112の仮想入力デバイスのための入力に翻訳され得る。グラフィック表現206を回転させる等の、コンピューティングデバイス112のグラフィック表現206に対するアクションの実行を通し、追加制御209を提供して入力コマンドを生成することができ、その後加速度計または別のタイプの入力デバイス148を作動させてもよい。
【0056】
スクリーン145は、コンピューティングデバイス112のパーソナライジングのためのアプリケーション154(図1)のグラフィック出力を描くが、これはこの例ではスマートフォンである。例えば、アプリケーション154の追加または除去、Eメールアカウントの管理、コンタクトの管理、セキュリティおよびプライバシー設定の構成、タッチスクリーンの構成、ユーザインタフェースの外観および感触の構成、壁紙の設定、生産性のパッケージソフト等の1つのバンドルまたは一組のアプリケーション154のインストール等の様々なアクションを実行し得る。1つの例では、ユーザは、デフォルトデバイス構成135から望ましくないアプリケーション154の除去を望む場合がある。ユーザは、コンピューティングデバイス112(またはその仮想化バージョン)と対話することができ、変更されたデバイス構成135をもたらす。言い換えると、例えば、アプリケーション154は、構成またはインストールされ得、ファイルは、アップロードまたは修正され得る。スクリーン145は、特定のパーソナライジングアプリケーション154を示すが、顧客は、オペレーティングシステムまたは他のアプリケーション154を用いた任意の方法で、コンピューティングデバイス112と対話することができることが理解される。
【0057】
セッション終了コントロール212は、セッションを終了、および/または事前構成済みコンピューティングデバイス112の購入を続けるために提供され得る。この例では、セッション終了コントロール212は「スマートフォン発送」とラベル付けされる。セッション終了コントロール212が選択されると、ユーザによるコンピューティングデバイス112との対話セッションが終了し、修正済み構成を備えるコンピューティングデバイス112は、発送準備される。
【0058】
次に図3を参照すると、様々な実施形態に従う電子商用アプリケーション117 の部分の操作の一例を提供するフローチャートが示されている。図3のフローチャートは、ここに説明されている電子商用アプリケーション117の部分の操作を実施するために採用され得る多くの異なるタイプの機能配列の例を単に提供していることを理解されたい。代替的に、図3のフローチャートは、1つまたは複数の実施形態に従ってコンピューティングデバイス103(図1)で実施される方法の各ステップ例を描くものと理解してもよい。
【0059】
ボックス303から始めると、電子商用アプリケーション117は、クライアント106(図1)におけるユーザからコンピューティングデバイス112(図1)の注文を取得する。ボックス306では電子商用アプリケーション117は、コンピューティングデバイス112またはコンピューティングデバイス112の仮想化バージョンに対応する仮想デバイスインスタンス118(図1)の事前構成あるいは使用のためにユーザにアクセス権限を与える。他の実施形態では、ユーザが注文を行う前に、コンピューティングデバイス112または仮想デバイスインスタンス118に対するアクセス権をユーザに与えてもよい。
【0060】
アクセス権限を与える際、コンピューティングデバイス112または仮想デバイスインスタンス118は、デバイス構成アプリケーション116(図1)により、デフォルト構成で事前構成されてもよい。その後、サーバアプリケーション115 (図1)の提供するユーザインタフェースにより、ユーザは仮想デバイスインスタンス118またはコンピューティングデバイス112にアクセスし得る。
【0061】
ボックス309では、電子商用アプリケーション117は仮想デバイスインスタンス118が事前構成されたかを判定する。仮想デバイスインスタンス118が事前構成された場合、電子商用アプリケーション117は、仮想デバイスインスタンス118のデバイス構成135(図1)のボックス312内の物理的コンピューティングデバイス112へのコピーまたは複製を開始する。電子商用アプリケーション117は、その後、ボックス315に進む。仮想デバイスインスタンス118が事前構成されていない場合、ユーザによって事前構成されたコンピューティングデバイス112は、ユーザに発送され得る。あるいは、事前構成されたコンピューティングデバイス112のデバイス構成135は、別のコンピューティングデバイス112にコピーされ得る。その後、電子商用アプリケーション117は、ボックス309からボックス315にも進む。
【0062】
ボックス315では、電子商用アプリケーション117は、事前構成されたコンピューティングデバイス112のためにユーザによる注文の履行を開始する。例えば、事前構成されたコンピューティングデバイス112はネットワーク109から切り離され、発送のために物理的に包装される。ボックス318では、電子商用アプリケーション117は、事前構成されたコンピューティングデバイス112はギフトであるかを判定する。事前構成されたコンピューティングデバイス112がギフトである場合、電子商用アプリケーション117は、ボックス321に続き、ユーザデータ137(図1)内でユーザによって指定されたギフトの受取人の住所への注文の発送を開始する。その後、電子商用アプリケーション117の部分は終了する。さもなければ、事前構成されたコンピューティングデバイス112がギフトではない場合、事前構成された電子商用アプリケーション117は、ボックス324に進み、ユーザデータ137内で指定されたユーザの住所への注文の発送を開始する。その後、電子商用アプリケーション117部分は終了する。
【0063】
図3は事前構成されたコンピューティングデバイス112の発送に関連するものであるが、コンピューティングデバイス112は本開示の原則に従って作成されたカスタマイズ済みデバイス構成135で、顧客の受け取り後に更新可能であることを理解されたい。例えば、デバイス構成135をネットワーク109(図1)を介してダウンロードし、その後にコンピューティングデバイス112によって採用されてもよい。その様なアクションは、コンピューティングデバイス112が1つの実施形態において最初に電源オンされてネットワーク109に接続されたときに自動的に実施されてもよい。さらに、カスタマイズされたデバイス構成135は、希望する任意の数のコンピューティングデバイス112に複製されてもよい。
【0064】
ここで図4Aおよび図4Bに切り替わると、様々な実施形態に従うサーバアプリケーション115の部分の操作の一例を提供するフローチャートが示されている。図4Aおよび4Bのフローチャートは、採用されて本書に解説されているサーバアプリケーション115部分の操作を実施し得る機能配列の多数の異なるタイプの例を単に提供するものであることを理解されたい。代替的に、図4Aおよび4Bのフローチャートは、1つまたは複数の実施形態に従ってコンピューティングデバイス103(図1)内で実施される方法の各ステップの例を描くものとして理解されてもよい。
【0065】
図4Aのボックス403から開始すると、サーバアプリケーション115はクライアント106(図1)のユーザからコンピューティングデバイス112(図1)の構成の要求を取得する。ユーザは事前構成を行うコンピューティングデバイス112を購入済みであるか、あるいはユーザは購入を検討中でコンピューティングデバイス112のテストを希望している場合もある。その要求は、ユーザが権限を有するかに基づいて認められるか拒否され得る。ボックス406では、サーバアプリケーション115は、ユーザがアクセス権を得るために、仮想デバイスインスタンス118(図1)が採用されるかを判定する。拒否される場合、サーバアプリケーション115は、図4Bに進む。仮想デバイスインスタンス118が採用される場合、サーバアプリケーション115は、代わりにボックス406からボックス409に続く。
【0066】
ボックス409では、アプリケーション115は、デフォルトデバイス構成135(図1)を有する仮想デバイスインスタンス118を実行する。ボックス412では、サーバアプリケーション115は仮想デバイスインスタンス118と対話するためのユーザインタフェースを生成する。サーバアプリケーション115はその後ユーザインタフェースをクライアント106に送信する。1つの実施形態では、ユーザインタフェースはデバイスインタフェース133(図1)から生成されるコンピューティングデバイス112のグラフィック表現を含む。ボックス415では、サーバアプリケーション115は、仮想デバイスインスタンス118によって生成されるビデオおよび/または音声信号、メディア符号器120(図1)を使用してメディアストリームに符号化する。
【0067】
ボックス418では、サーバアプリケーション115はネットワーク109(図1)を介してクライアント106にメディアストリームを送信する。ボックス421では、サーバアプリケーション115はクライアント106から入力データを取得する。ボックス424ではサーバアプリケーション115は、入力データを仮想デバイスインスタンス118に提供する。少なくとも入力データの一部分は、仮想デバイスインスタンス118のデバイス構成135に対する変更をもたらす。ボックス427では、サーバアプリケーション115は、さらに入力データがクライアント106から現れるかを判定する。さらなる入力データが現れる場合、サーバアプリケーション115は、ボックス421に戻り、クライアント106から入力データを取得する。
【0068】
それ以上入力データが現れない場合、サーバアプリケーション115は代わりにボックス430に進み、セッションを終了するかを判定する。セッションが終了されない場合に、サーバアプリケーション115は、ボックス415に戻り、メディアストリームの符号化を続ける。セッションが終了される場合、サーバアプリケーション115は、ボックス430からボックス433に進む。ボックス433では、サーバアプリケーション115は、ユーザによって事前構成されるか、カスタマイズされるか、またはパーソナライズされた仮想デバイスインスタンス118のデバイス構成135を記憶する。その後、サーバアプリケーション115のその部分は終了する。
【0069】
仮想デバイスインスタンス118が採用されない場合、サーバアプリケーション115は、図4Bのボックス406からボックス450に進む。ボックス450では、サーバアプリケーション115は、ネットワーク環境100において、デフォルトデバイス構成135を有するコンピューティングデバイス112を識別する。どのコンピューティングデバイス112にもデフォルト構成を有しない場合、サーバアプリケーション115は、デバイス構成アプリケーション116(図1)によって、コンピューティングデバイス112の1つへのデフォルトデバイス構成135のコピーを開始してもよい。
【0070】
ボックス453では、サーバアプリケーション115はコンピューティングデバイス112と対話するためのユーザインタフェースを生成する。サーバアプリケーション115は次にユーザインタフェースをクライアント106に送信する。1つの実施形態では、ユーザインタフェースは、デバイスインタフェース133から生成されるコンピューティングデバイス112のグラフィック表現を含む。ボックス456では、サーバアプリケーション115はコンピューティングデバイス112からメディアストリームを取得する。
【0071】
ボックス459では、サーバアプリケーション115はメディアストリームをネットワーク109を介してクライアント106に送信する。ボックス462では、サーバアプリケーション115はクライアント106から入力データを取得する。ボックス465では、サーバアプリケーション115は入力データをコンピューティングデバイス112に提供する。入力データの少なくとも一部分はコンピューティングデバイス112のデバイス構成135に対する変更という結果をもたらす。ボックス468では、サーバアプリケーション115は、クライアント106からさらに入力データが現れるかを判定する。さらに入力データが現れる場合、サーバアプリケーション115は、ボックス462に戻り、クライアント106から入力データを取得する。
【0072】
さらに入力データが現れない場合、サーバアプリケーション115は、代わりにボックス471に進み、セッションが終了されたかを判定する。セッションが終了されていない場合、サーバアプリケーション115は、ボックス456に戻り、メディアストリームの取得を続ける。セッションが終了された場合、サーバアプリケーション115は、ボックス471からボックス474に進む。ボックス474では、サーバアプリケーション115は、コンピューティングデバイス112の発送の準備する。例えば、サーバアプリケーション115は潔くコンピューティングデバイス112をシャットダウンし得る。その後、サーバアプリケーション115のその部分は終了する。
【0073】
図5に続けると、様々な実施形態に従う遠隔アクセスアプリケーション157の部分の操作の一例を提供するフローチャートが示されている。図5のフローチャートは、ここに説明されている遠隔アクセスアプリケーション157の部分の操作を実施するために採用し得る、多くの異なるタイプの機能配列の例を単に提供していると理解されてよい。代替的に、図5のフローチャートは、1つまたは複数の実施形態に従って、コンピューティングデバイス112(図1)において実施される方法の各ステップの例を描いているものと理解されてもよい。
【0074】
ボックス503から開始し、遠隔アクセスアプリケーション157はクライアント106(図1)のユーザと対話セッションを開始する。1つの実施形態では、遠隔アクセスアプリケーション157はクライアント106と直接通信する。別の実施形態では、遠隔アクセスアプリケーション157はサーバアプリケーション115を介してクライアント106と通信する。ボックス506では、遠隔アクセスアプリケーション157は、コンピューティングデバイス112により生成されるビデオ信号および/または音声信号を取得する。ボックス509では、遠隔アクセスアプリケーション157は、メディア符号器120(図1)を使用して、ビデオ信号および/または音声信号をメディアストリームに符号化する。ボックス512では遠隔アクセスアプリケーション157 はメディアストリームをクライアント106に送信する。
【0075】
ボックス515では、遠隔アクセスアプリケーション157は入力データをクライアント106から取得する。 ボックス518では、遠隔アクセスアプリケーション157は入力データをコンピューティングデバイス112で実行される1つまたは複数のアプリケーション154(図1)に提供する。 少なくとも入力データの一部分は、コンピューティングデバイス112のデバイス構成135(図1)に対する変更に影響し得る。 ボックス521では、遠隔アクセスアプリケーション157はさらに入力データが取得されるかを判定する。
【0076】
さらに入力データが取得される場合、遠隔アクセスアプリケーション157は、ボックス515に戻り、入力データをクライアント106から取得する。さらなる入力データが取得されない場合、遠隔アクセスアプリケーション157は、ボックス524に続く。ボックス524では、遠隔アクセスアプリケーション157は、セッションが終了されるかを判定する。セッションが終了されていない場合、遠隔アクセスアプリケーション157は、ボックス506に戻り、ビデオおよび/または音声信号の取得を続ける。さもなければ、遠隔アクセスアプリケーション157のその部分は終了する。
【0077】
図6を参照すると、本開示の実施形態に従うコンピューティングデバイス103の略ブロック図が示されている。コンピューティングデバイス103は少なくとも1つのプロセッサ回路を含み、これは、例えば、そのすべてがローカルインタフェース609と組み合わされる、プロセッサ603、メモリ606、および1つまたは複数のグラフィックデバイス607を有する。その目的のため、コンピューティングデバイス103は、例えば、少なくとも1つのサーバコンピュータまたは同様のデバイスを備えてよい。ローカルインタフェース609は、例えば、付随する住所/コントロールバスを備えるデータバス、または評価可能な他のバス構造を備えてよい。グラフィックデバイス607は、1つまたは複数のグラフィックプロセッサ612を含む高性能グラフィックハードウエアに対応し得る。グラフィックデバイス607は、コンピューティングデバイス103内で実行される仮想デバイスインスタンス118に対応するグラフィックを描写するように構成される。
【0078】
メモリ606に記憶されているものは、データと、プロセッサ603により実行可能ないくつかの構成要素の両方である。特にメモリ606に記憶され、プロセッサ603により実行可能なものは、サーバアプリケーション115、デバイス構成アプリケーション116、電子商用アプリケーション117、仮想デバイスインスタンス118、メディア符号器120であり、また他のアプリケーションも可能である。さらにメモリ606に記憶されているものは、データストア113および他のデータとしてもよい。さらに、オペレーティングシステムはメモリ606に記憶し、プロセッサ603により実行可能としてもよい。
【0079】
メモリ606に記憶され、評価可能なものとしてプロセッサ603 によって実行可能な他のアプリケーションもあり得ることを理解されたい。本明細書で論じられるあらゆる構成要素がソフトウェアの形式で実装される場合、例えば、C、C++、C#、Objective C、Java(登録商標)、JavaScript(登録商標)、Perl、PHP、Visual Basic(登録商標)、Python(登録商標)、Ruby、Delphi(登録商標)、Flash(登録商標)、または他のプログラミング言語等の数多くのプログラミング言語の任意の1つを採用し得る。
【0080】
多数のソフトウェア構成要素が、メモリ606に記憶され、プロセッサ603に実行可能である。この点において、用語「実行可能」は、プロセッサ603により最終的には実行可能な形式のプログラムファイルを意味する。実行可能プログラムの例は、例えば、メモリ606のランダムアクセス部分へロード可能であり、またプロセッサ603により実行される形式のマシンコードに翻訳可能なコンパイルされたプログラム、メモリ606のランダムアクセス部分にロード可能で、プロセッサ603により実行されるオブジェクトコード等の適切な形式で表現され得るソースコード、あるいは、プロセッサ603により実行されるメモリ606のランダムアクセス部分における命令を生成するための別の実行可能プログラムによって解釈され得るソースコード等である。実行可能プログラムはメモリ606の任意の部分または構成要素内に記憶されてよく、それらに含まれるのは、例えばランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、ハードドライブ、ソリッドステートドライブ、USBフラッシュドライブ、メモリカード、コンパクトディスク(CD)またはデジタル汎用ディスク(DVD)等の光ディスク、フロッピディスク、磁気テープ、または他のメモリ構成要素である。
【0081】
メモリ606は、揮発性および非揮発性の両方のメモリならびにデータ記憶構成要素を含むものとしてここでは定義される。揮発性構成要素は電源が失われた際にデータ値を保持しないものである。非揮発性構成要素は、電源が失われた際にデータを保持するものである。したがってメモリ606は、例えば、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、ハードディスクドライブ、ソリッドステートドライブ、USBフラッシュドライブ、メモリカードリーダを介してアクセスされるメモリカード、関連するフロッピディスクドライブを介してアクセスされるフロッピディスク、光ディスクドライブを介してアクセスされる光ディスク、適切なテープドライブを介してアクセスされる磁気テープ、および/または他のメモリ構成要素、あるいは任意の2つまたはそれ以上のこれらのメモリ構成要素の組み合わせを含んでよい。さらに、RAMは、例えば、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)または磁気ランダムアクセスメモリ(MRAM)および他のそのようなデバイスを含んでよい。ROMは、プログラム可能読み取り専用メモリ(PROM)、消去可能なプログラム可能読み取り専用メモリ(EPROM)、電気的消去可能なプログラム可能読み取り専用メモリ(EEPROM)、または他のそのようなメモリデバイスを含んでよい。
【0082】
また、プロセッサ603は複数のプロセッサ603を代表してもよく、そしてメモリ606はそれぞれ並列処理回路で動作する複数のメモリ606を代表してもよい。そのような例では、ローカルインタフェース609は、複数のプロセッサ603の任意の2つの間、任意のプロセッサ603と任意のメモリ606の間、または、メモリ606の任意の2つの間等の通信を促進する適切なネットワーク109(図1)であってもよい。ローカルインタフェース609は、例えば、負荷バランシングの実行を含む、この通信をまとめるように設計された追加システムを含んでもよい。プロセッサ603は電気的であっても、あるいはその他の利用可能構造であってもよい。
【0083】
サーバアプリケーション115、デバイス構成アプリケーション116、電子商用アプリケーション117、仮想デバイスインスタンス118、メディア符号器120、アプリケーション154(図1)、遠隔アクセスアプリケーション157(図1)、クライアントアプリケーション172(図1)、およびここに記載される他の様々なシステムは、前述の汎用ハードウエアにより実行されるソフトウェアまたはコードへ具現化し得るが、代替的に、それらは専用ハードウエア、あるいはソフトウェア/汎用ハードウエアおよび専用ハードウェアの組み合わせでも具現化され得る。専用ハードウェアで具現化される場合、それぞれは、任意の1つのまたは多数の技術の組み合わせを採用する回路またはステートマシンとして実装可能である。これらの技術は、それに限定されないが、1つまたは複数のデータ信号、適切な論理ゲートを有するアプリケーション固有の統合回路、あるいは他の構成要素等の適用時に、様々な論理機能を実装する論理ゲートを有する分散論理回路を含み得る。それらの技術は当業者には一般によく知られており、したがって本明細書では詳細に解説されない。
【0084】
図3−5のフローチャートは、電子商用アプリケーション117、サーバアプリケーション115、および遠隔アクセスアプリケーション157の各部分の実装に関する機能性および操作を示す。ソフトウェアで具現化された場合、各ブロックはモジュール、セグメント、または指定された論理機能を実装するためのプログラム命令を含むコード部分を表現し得る。プログラム命令は、コンピュータシステムまたは他のシステムにおいてプロセッサ603等の適切な実行システムによって認識され得る数値命令を含むマシンコードまたはプログラミング言語で書かれた、人が読むことのできるステートメントを含むソースコードの形式で具現化される。マシンコードはソースコード等から変換され得る。ハードウェアに具現化される場合、各ブロックは指定された論理機能を実装するための回路または多数の相互接続回路を代表してもよい。
【0085】
図3〜5のフローチャートは、実行の特定の順序を示すが、実行の順序は描かれるものとは異なる場合もあることを理解されたい。例えば、2つまたは複数のブロックの実行の順序は、示されている順序と比べて混ぜられてもよい。また、図3〜5中に連続して示される2つ以上のブロックは、並行してあるいは部分的に並行して実行されてよい。さらに、いくつかの実施形態では、図3〜5に示される1つまたは複数のブロックは、跳ばしたりあるいは省略されてよい。さらに、任意の数のカウンタ、状態変数、警告セマフォ、またはメッセージを、ユーティリティの強化、アカウンティング、性能測定、または問題解決援助の提供等の目的のために、ここに記載される論理的流れに加え得る。そのようなバリエーションは全て本開示の範囲内にあることを理解されたい。
【0086】
また、サーバアプリケーション115、デバイス構成アプリケーション116、電子商用アプリケーション117、仮想デバイスインスタンス118、メディア符号器120、アプリケーション154、遠隔アクセスアプリケーション157、クライアントアプリケーション172、を含むここで説明される任意の論理回路またはアプリケーションで、ソフトウェアまたはコードを含むものは、例えば、コンピュータシステムまたは他のシステム内のプロセッサ603等の命令実行システムにより、またはそれと接続されて使用されるために、任意の非一時的なコンピュータ可読型媒体に具現化可能である。この意味では、論理回路は、コンピュータ可読型媒体から取り出され、命令実行システムによって実行される命令および宣言を含むステートメントを含んでよい。本開示の文脈では、「コンピュータ可読媒体」は、命令実行システムによって、またはそれと接続されて使用するための、ここに説明される論理またはアプリケーションを含む、記憶する、あるいは維持することが可能な任意の媒体が可能である。コンピュータ可読媒体は、例えば、磁気、光、または半導体媒体等の多くの物理的媒体の任意の1つを含み得る。適切なコンピュータ可読媒体のより具体的な例は、それらには限定されないが、磁気テープ、磁気フロッピィディスケット、磁気ハードドライブ、メモリカード、ソリッドステートドライブ、USBフラッシュドライブ、または光ディスクを含むであろう。またコンピュータ可読媒体は、例えば、スタティックラム(SRAM)およびダイナミックラム(DRAM)または磁気ラム(MRAM)を含むランダムアクセスメモリ(RAM)が可能である。さらに、コンピュータ可読媒体は、読み取り専用メモリ(ROM)、プログラム可能読み取り専用メモリ(PROM)、消去可能プログラム可能読み取り専用メモリ(EPROM)、電気的消去可能プログラム可能読み取り専用メモリ(EEPROM)、または他のタイプのメモリデバイスが可能である。
【0087】
付記
1.
コンピューティングデバイスにおいて実行可能なプログラムを具現化する非一時的なコンピュータ可読媒体であって、前記プログラムが、
コンピューティングデバイスの仮想化バージョンを実行するコードと、
前記コンピューティングデバイスの前記仮想化バージョンによって生成されるビデオ信号および音声信号をメディアストリームに符号化するコードと、
グラフィック表現のスクリーンが、前記メディアストリームの前記ビデオ信号を示すように構成される、前記コンピューティングデバイスの前記グラフィック表現を含むユーザインタフェースを生成するコードと、
前記ユーザインタフェースおよび前記メディアストリームをクライアントに送信するコードと、
入力データの少なくとも一部が、前記コンピューティングデバイスの前記仮想化バージョンの構成に対する変更を生じさせる、前記クライアントにおいてユーザから前記入力データを取得し、かつ前記入力データを前記コンピューティングデバイスの前記仮想化バージョンに提供するコードと、
前記クライアントにおいて前記ユーザから前記コンピューティングデバイスの物理的バージョンの注文を取得するコードと、
前記構成が、前記コンピューティングデバイスの前記物理的バージョンによって採用される、前記コンピューティングデバイスの前記仮想化バージョンの前記構成の前記コンピューティングデバイスの前記物理的バージョンへのコピーを開始するコードと、
前記コンピューティングデバイスの前記物理的バージョンの前記ユーザに関連付けられた住所への発送を開始するコードと、
を含む、非一時的なコンピュータ可読媒体。
【0088】
2.
少なくとも1つのコンピューティングデバイスと、
前記少なくとも1つのコンピューティングデバイスにおいて実行可能な少なくとも1つのアプリケーションと、を備える、システムであって、
前記少なくとも1つのアプリケーションが、
コンピューティングデバイスの仮想化バージョンを実行する論理と、
前記コンピューティングデバイスの前記仮想化バージョンによって生成される視覚表示をメディアストリームに符号化して、前記メディアストリームをクライアントに送信する論理と、
入力データの少なくとも一部が、前記コンピューティングデバイスの前記仮想化バージョンの構成に変化を生じさせる、クライアントから前記入力データを取得し、かつ前記入力データを前記コンピューティングデバイスの前記仮想化バージョンに提供する論理と、
前記構成が、前記コンピューティングデバイスの物理的バージョンによって採用される、前記コンピューティングデバイスの前記仮想化バージョンの前記構成を前記コンピューティングデバイスの物理的バージョンにコピーすることを開始する論理と、
を備える、システム。
【0089】
3.
前記視覚表示が、ビデオ信号である、付記2に記載のシステム。
【0090】
4.
前記少なくとも1つのアプリケーションが、前記コンピューティングデバイスの前記仮想化バージョンによって生成される音声信号を前記メディアストリームに符号化する論理をさらに備える、付記2に記載のシステム。
【0091】
5.
前記構成に対する前記変更が、前記コンピューティングデバイスの前記仮想化バージョンにおいて実行されるアプリケーションの構成に対する変更に対応する、付記2に記載のシステム。
【0092】
6.
前記構成に対する前記変更が、前記コンピューティングデバイスの前記仮想化バージョンにおけるアプリケーションのインストレーションに対応する、付記2に記載のシステム。
【0093】
7.
前記少なくとも1つのアプリケーションが、前記インストレーションに対して前記アプリケーションの購入を促進する論理をさらに備える、付記6に記載のシステム。
【0094】
8.
前記構成に対する前記変更が、前記コンピューティングデバイスの前記仮想化バージョンにおける一組のアプリケーションのインストレーションに対応する、付記2に記載のシステム。
【0095】
9.
前記構成に対する前記変更が、前記コンピューティングデバイスの前記仮想化バージョンにおけるアプリケーションの除去に対応する、付記2に記載のシステム。
【0096】
10.
前記構成に対する前記変更が、少なくとも1つのファイルの前記コンピューティングデバイスの前記仮想化バージョンへのアップロードに対応する、付記2に記載のシステム。
【0097】
11.
前記少なくとも1つのアプリケーションが、
ユーザから前記コンピューティングデバイスの前記物理的バージョンの注文を取得する論理と、
前記注文に応答して、前記ユーザによる前記コンピューティングデバイスの前記仮想化バージョンへのアクセスを促進する論理と、
をさらに備える、付記2に記載のシステム。
【0098】
12.
前記少なくとも1つのアプリケーションが、
前記クライアントにおけるユーザが前記コンピューティングデバイスの前記仮想化バージョンの前記構成に対する前記変更を生じさせた後に、前記ユーザから前記コンピューティングデバイスの前記物理的バージョンの注文を取得する論理をさらに備え、
開始する前記論理が、前記注文に応答して、前記構成の前記コピーを開始するように構成される、付記2に記載のシステム。
【0099】
13.
前記少なくとも1つのアプリケーションが、ユーザによる前記コンピューティングデバイスの前記物理的バージョンの注文の履行を開始する論理をさらに備える、付記2に記載のシステム。
【0100】
14.
前記少なくとも1つのアプリケーションが、
グラフィック表現のスクリーンが、前記メディアストリームの前記視覚表示を示すように構成される、前記コンピューティングデバイスの前記グラフィック表現を含むユーザインタフェースを生成する論理と、
前記ユーザインタフェースを前記クライアントに送信する論理と、
をさらに備える、付記2に記載のシステム。
【0101】
15.
少なくとも1つのコンピューティングデバイスにおいて、コンピューティングデバイスのスクリーンに対応する前記コンピューティングデバイスによって生成される視覚表示を取得するステップと、
前記少なくとも1つのコンピューティングデバイスにおいて、前記視覚表示をメディアストリームに符号化するステップと、
前記少なくとも1つのコンピューティングデバイスにおいて、前記メディアストリームをクライアントに送信するステップと、
前記少なくとも1つのコンピューティングデバイスにおいて、前記クライアントでユーザから入力データを取得するステップと、
前記入力データの少なくとも一部が、前記コンピューティングデバイスの構成に対する変更を生じさせる、前記少なくとも1つのコンピューティングデバイスにおいて、前記入力データを前記コンピューティングデバイスに提供するステップと、
前記少なくとも1つのコンピューティングデバイスにおいて、変更される前記構成を有する前記コンピューティングデバイスの前記ユーザによる注文の履行を開始するステップと、
を含む、方法。
【0102】
16.
前記変更が、アプリケーションのインストレーションに対応する、付記15に記載の方法。
【0103】
17.
前記少なくとも1つのコンピューティングデバイスにおいて、複数の前記コンピューティングデバイスをネットワーク環境で維持するステップをさらに含む、付記15に記載の方法。
【0104】
18.
グラフィック表現のスクリーンが、前記メディアストリームの前記視覚表示を表示するように構成される、前記少なくとも1つのコンピューティングデバイスにおいて、前記コンピューティングデバイスの前記グラフィック表現を含むユーザインタフェースを生成するステップと、
前記少なくとも1つのコンピューティングデバイスにおいて、前記ユーザインタフェースを前記クライアントに送信するステップと、
をさらに含む、付記15に記載の方法。
【0105】
19.
前記コンピューティングデバイスの前記グラフィック表現が、入力デバイスのグラフィック表現を含み、前記入力デバイスの前記グラフィック表現が、前記クライアントにおける前記ユーザによるグラフィック的選択に応答して、前記入力データの少なくとも一部を生成するように構成される、付記18に記載の方法。
【0106】
20.
変更される前記構成が、他方のコンピューティングデバイスによって採用される、前記少なくとも1つのコンピューティングデバイスにおいて、別のコンピューティングデバイスに対して変更される前記構成を複製するステップをさらに含む、付記15に記載の方法。
【0107】
21.
前記少なくとも1つのコンピューティングデバイスにおいて、前記注文の履行を開始するステップが、前記少なくとも1つのコンピューティングデバイスにおいて、前記ユーザに関連付けられる住所に対して変更される前記構成を有する前記コンピューティングデバイスの発送を開始するステップをさらに含む、付記15に記載の方法。
【0108】
22.
前記注文が、ギフト受取人への前記ユーザによるギフトに対応し、前記住所が、前記ギフト受取人に対応する、付記21に記載の方法。
【0109】
23.
前記少なくとも1つのコンピューティングデバイスにおいて、デフォルト構成を前記コンピューティングデバイスにコピーするステップをさらに含む、付記15に記載の方法。
【0110】
24.
前記少なくとも1つのコンピューティングデバイスにおいて、前記ユーザから前記注文を取得するステップと、
前記少なくとも1つのコンピューティングデバイスにおいて、前記注文に応答して、前記コンピューティングデバイスへの前記ユーザによる遠隔アクセスを許可するステップと、
をさらに含む、付記15に記載の方法。
【0111】
25.
前記少なくとも1つのコンピューティングデバイスにおいて、前記注文が取得される前に、前記コンピューティングデバイスへの前記ユーザによる遠隔アクセスを許可するステップと、
前記少なくとも1つのコンピューティングデバイスにおいて、前記ユーザからの前記注文を取得するステップと、を含み、
前記注文の履行が、前記注文の取得に応答して開始される、付記15に記載の方法。
【0112】
本開示の上述の実施形態は、本開示の原則の明確な理解のために明記される実装の単なる可能例であることを強調しておく。多くのバリエーションおよび修正が、本開示の精神および原則から実質的に外れることなく、前述の実施形態(複数を含む)に対して行われ得る。すべてのそのような修正およびバリエーションは、本開示の範囲内で、本明細書中に含まれることが意図されており、以下の付記によって保護されている。
【0113】
「関連出願の相互参照」
本出願は、シリアル番号13/191,585、2011年7月27日出願の同時係属中の米国非仮出願「REMOTELY PRECONFIGURING A COMPUTING DEVICE」に対する優先を主張するものであり、参照によりその全体が本明細書に組み込まれる。
図1
図2
図3
図4A
図4B
図5
図6