(57)【要約】  コンピューティングデバイスを遠隔的に事前構成するための様々な実施形態が開示される。コンピューティングデバイスの仮想化バージョンは、遠隔的に実行され、ユーザによって事前構成され得る。その後、コンピューティングデバイスの仮想化バージョンの構成は、コンピューティングデバイスの物理的バージョンに複製され得る。あるいは、コンピューティングデバイスの物理的バージョンは、遠隔的に実行され、ユーザによって直接事前構成され得る。
2014529116.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングデバイスにおいて実行可能なプログラムを具現化する非一時的なコンピュータ可読媒体であって、前記プログラムが、
コンピューティングデバイスの仮想化バージョンを実行するコードと、
前記コンピューティングデバイスの前記仮想化バージョンによって生成されるビデオ信号および音声信号をメディアストリームに符号化するコードと、
グラフィック表現のスクリーンが、前記メディアストリームの前記ビデオ信号を示すように構成される、前記コンピューティングデバイスの前記グラフィック表現を含むユーザインタフェースを生成するコードと、
前記ユーザインタフェースおよび前記メディアストリームをクライアントに送信するコードと、
入力データの少なくとも一部が、前記コンピューティングデバイスの前記仮想化バージョンの構成に変化を生じさせる、前記クライアントにおいてユーザから前記入力データを取得し、かつ前記入力データを前記コンピューティングデバイスの前記仮想化バージョンに提供するコードと、
前記クライアントにおいて前記ユーザから前記コンピューティングデバイスの物理的バージョンの注文を取得するコードと、
前記構成が、前記コンピューティングデバイスの前記物理的バージョンによって採用される、前記コンピューティングデバイスの前記仮想化バージョンの前記構成の前記コンピューティングデバイスの前記物理的バージョンへのコピーを開始するコードと、
前記コンピューティングデバイスの前記物理的バージョンの前記ユーザに関連付けられた住所への発送を開始するコードと、
を含む、非一時的なコンピュータ可読媒体。
【請求項２】
少なくとも１つのコンピューティングデバイスと、
前記少なくとも１つのコンピューティングデバイスにおいて実行可能な少なくとも１つのアプリケーションと、を備える、システムであって、
前記少なくとも１つのアプリケーションが、
コンピューティングデバイスの仮想化バージョンを実行する論理と、
前記コンピューティングデバイスの前記仮想化バージョンによって生成される視覚表示をメディアストリームに符号化して、前記メディアストリームをクライアントに送信する論理と、
入力データの少なくとも一部が、前記コンピューティングデバイスの前記仮想化バージョンの構成に変化を生じさせる、クライアントから前記入力データを取得し、かつ前記入力データを前記コンピューティングデバイスの前記仮想化バージョンに提供する論理と、
前記構成が、前記コンピューティングデバイスの物理的バージョンによって採用される、前記コンピューティングデバイスの前記仮想化バージョンの前記構成を前記コンピューティングデバイスの物理的バージョンにコピーすることを開始する論理と、
を備える、システム。
【請求項３】
前記視覚表示が、ビデオ信号である、請求項２に記載のシステム。
【請求項４】
前記少なくとも１つのアプリケーションが、前記コンピューティングデバイスの前記仮想化バージョンによって生成される音声信号を前記メディアストリームに符号化する論理をさらに備える、請求項２に記載のシステム。
【請求項５】
前記構成に対する前記変更が、前記コンピューティングデバイスの前記仮想化バージョンにおいて実行されるアプリケーションの構成に対する変更に対応する、請求項２に記載のシステム。
【請求項６】
前記構成に対する前記変更が、前記コンピューティングデバイスの前記仮想化バージョンにおけるアプリケーションのインストレーションに対応する、請求項２に記載のシステム。
【請求項７】
前記少なくとも１つのアプリケーションが、前記インストレーションに関連付けられた前記アプリケーションの購入を促進する論理をさらに備える、請求項６に記載のシステム。
【請求項８】
前記構成に対する前記変更が、前記コンピューティングデバイスの前記仮想化バージョンにおける一組のアプリケーションのインストレーションに対応する、請求項２に記載のシステム。
【請求項９】
前記構成に対する前記変更が、前記コンピューティングデバイスの前記仮想化バージョンにおけるアプリケーションの除去に対応する、請求項２に記載のシステム。
【請求項１０】
前記構成に対する前記変更が、少なくとも１つのファイルの前記コンピューティングデバイスの前記仮想化バージョンへのアップロードに対応する、請求項２に記載のシステム。 
【請求項１１】
前記少なくとも１つのアプリケーションが、
ユーザから前記コンピューティングデバイスの前記物理的バージョンの注文を取得する論理と、
前記注文に応答して、前記ユーザによる前記コンピューティングデバイスの前記仮想化バージョンへのアクセスを促進する論理と、
をさらに備える、請求項２に記載のシステム。
【請求項１２】
前記少なくとも１つのアプリケーションが、
前記クライアントにおけるユーザが前記コンピューティングデバイスの前記仮想化バージョンの前記構成に対する前記変更に影響を与えた後に、前記ユーザから前記コンピューティングデバイスの前記物理的バージョンの注文を取得する論理をさらに備え、
開始する前記論理が、前記注文に応答して、前記構成の前記コピーを開始するように構成される、請求項２に記載のシステム。
【請求項１３】
前記少なくとも１つのアプリケーションが、ユーザによる前記コンピューティングデバイスの前記物理的バージョンの注文の履行を開始する論理をさらに備える、請求項２に記載のシステム。
【請求項１４】
前記少なくとも１つのアプリケーションが、
グラフィック表現のスクリーンが、前記メディアストリームの前記視覚表示を示すように構成される、前記コンピューティングデバイスの前記グラフィック表現を含むユーザインタフェースを生成する論理と、
前記ユーザインタフェースを前記クライアントに送信する論理と、
をさらに備える、請求項２に記載のシステム。
【請求項１５】
少なくとも１つのコンピューティングデバイスにおいて、コンピューティングデバイスのスクリーンに対応する前記コンピューティングデバイスによって生成される視覚表示を取得するステップと、
前記少なくとも１つのコンピューティングデバイスにおいて、前記視覚表示をメディアストリームに符号化するステップと、
前記少なくとも１つのコンピューティングデバイスにおいて、前記メディアストリームをクライアントに送信するステップと、
前記少なくとも１つのコンピューティングデバイスにおいて、前記クライアントのユーザから入力データを取得するステップと、
前記入力データの少なくとも一部が、前記コンピューティングデバイスの構成に変化を生じさせる、前記少なくとも１つのコンピューティングデバイスにおいて、前記入力データを前記コンピューティングデバイスに提供するステップと、
前記少なくとも１つのコンピューティングデバイスにおいて、変更される前記構成を有する前記コンピューティングデバイスの前記ユーザによる注文の履行を開始するステップと、
を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、購入したコンピューティングデバイスの事前構成に関する。
【背景技術】
【０００２】
デスクトップコンピュータ、ラップトップ、タブレットコンピュータ、電子書籍リーダ、スマートフォン等のコンピューティングデバイスは、典型的にはデフォルト構成で発送される。いくつかの例において、顧客は様々なハードウェアおよびソフトウェアオプションから選択し、それらはその後購入されたコンピューティングデバイスのためのカスタマイズされたデフォルト構成を生成するときに使用される。それにも拘わらず、顧客はコンピューティングデバイスを所有することになった後、そのカスタマイズとパーソナライズにしばしば時間を費やす。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
購入したコンピューティングデバイス上にインストールされるソフトウェアおよびデータをカスタマイズするために入手可能なオプションは、現在は限定されている。顧客はしばしば、コンピューティングデバイスの到着後にそれをカスタマイズしたりパーソナライズするのに時間を費やす。その様な構成は、顧客が実際にコンピューティングデバイスと対話することなしには可能ではないであろう。
【課題を解決するための手段】
【０００４】
本開示の一形態は、コンピューティングデバイスにおいて実行可能なプログラムを具現化する非一時的なコンピュータ可読媒体であって、前記プログラムが、コンピューティングデバイスの仮想化バージョンを実行するコードと、前記コンピューティングデバイスの前記仮想化バージョンによって生成されるビデオ信号および音声信号をメディアストリームに符号化するコードと、グラフィック表現のスクリーンが、前記メディアストリームの前記ビデオ信号を示すように構成される、前記コンピューティングデバイスの前記グラフィック表現を含むユーザインタフェースを生成するコードと、前記ユーザインタフェースおよび前記メディアストリームをクライアントに送信するコードと、入力データの少なくとも一部が、前記コンピューティングデバイスの前記仮想化バージョンの構成に変化を生じさせる、前記クライアントにおいてユーザから前記入力データを取得し、かつ前記入力データを前記コンピューティングデバイスの前記仮想化バージョンに提供するコードと、前記クライアントにおいて前記ユーザから前記コンピューティングデバイスの物理的バージョンの注文を取得するコードと、前記構成が、前記コンピューティングデバイスの前記物理的バージョンによって採用される、前記コンピューティングデバイスの前記仮想化バージョンの前記構成の前記コンピューティングデバイスの前記物理的バージョンへのコピーを開始するコードと、前記コンピューティングデバイスの前記物理的バージョンの前記ユーザに関連付けられた住所への発送を開始するコードと、を含む。
【発明の効果】
【０００５】
本開示の様々な実施形態はコンピューティングデバイスの遠隔対話式事前構成を可能とする。
【図面の簡単な説明】
【０００６】
【図１】本開示の様々な実施形態に従うネットワーク環境の図である。
【図２】本開示の様々な実施形態に従う図１のネットワーク環境においてクライアントで表現されるユーザインタフェース例の図である。
【図３】本開示の様々な実施形態に従う図１のネットワーク環境においてコンピューティングデバイスで実行される電子商用アプリケーション部分として実装される機能性の一例を説明するフローチャートである。
【図４Ａ】本開示の様々な実施形態に従う図１のネットワーク環境において、コンピューティングデバイスで実行されるサーバアプリケーション部分として実装される機能性の一例を説明するフローチャートを示す。
【図４Ｂ】本開示の様々な実施形態に従う図１のネットワーク環境において、コンピューティングデバイスで実行されるサーバアプリケーション部分として実装される機能性の一例を説明するフローチャートを示す。
【図５】本開示の様々な実施形態に従う図１のネットワーク環境においてコンピューティングデバイスで実行される遠隔アクセスアプリケーションの部分として実装される機能性の一例を説明するフローチャートである。
【図６】本開示の様々な実施形態に従う図１のネットワーク環境において採用されるコンピューティングデバイスの１つの説明例を提供する略ブロック図である。
【発明を実施するための形態】
【０００７】
本開示の多くの態様は、以下の図面を参照してよりよく理解することができる。図中の構成要素は、必ずしもスケールに忠実ではなく、その代り、本開示の原理を明確に例示することに重点が置かれている。さらに図中において、同じ参照番号が複数の図において対応する各部を表記している。
【０００８】
本開示は、購入したコンピューティングデバイスの事前構成に関する。購入したコンピューティングデバイス上にインストールされるソフトウェアおよびデータをカスタマイズするために入手可能なオプションは、現在は限定されている。顧客はしばしば、コンピューティングデバイスの到着後にそれをカスタマイズしたりパーソナライズするのに時間を費やす。その様な構成は、顧客が実際にコンピューティングデバイスと対話することなしには可能ではないであろう。本開示の様々な実施形態はコンピューティングデバイスの遠隔対話式事前構成を可能とする。１つの実施形態において、実際のコンピューティングデバイスに対する遠隔対話式アクセスが促進される。別の実施形態において、仮想コンピューティングデバイスに対する遠隔対話式アクセスが促進されて、顧客が仮想コンピューティングデバイスをパーソナライズおよび構成することを可能にする。その後、実際のコンピューティングデバイスは、仮想コンピューティングデバイスのカスタマイズされた構成に従って、事前構成される。以下の説明において、システムおよびその構成要素の一般的説明が適用され、それに続いてそれらの操作説明がなされる。
【０００９】
図１を参照すると、様々な実施形態に従うネットワーク環境１００が示されている。ネットワーク環境１００は、ネットワーク１０９を介する１つまたは複数のクライアント１０６とのデータ通信において、１つまたは複数のコンピューティングデバイス１０３を含む。いくつかの実施形態において、コンピューティングデバイス１０３およびクライアント１０６も、ネットワーク１０９を介して１つまたは複数のコンピューティングデバイス１１２とデータ通信を行い得る。ネットワーク１０９は、例えば、インターネット、イントラネット、エクストラネット、広域ネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、有線ネットワーク、無線ネットワーク、または他の適切なネットワーク等、あるいは２つまたはそれ以上のその様なネットワークの任意の組み合わせを含む。
【００１０】
コンピューティングデバイス１０３は、例えば、サーバコンピュータまたは演算能力を提供する任意の他のシステムを備えてもよい。あるいは、複数のコンピューティングデバイス１０３を採用し、例えば、１つまたは複数のサーババンクまたはコンピュータバンク、あるいは他の取り合せで配列してもよい。例えば、複数のコンピューティングデバイス１０３を合わせてクラウドコンピューティングリソース、グリッドコンピューティングリソース、および／または、他の任意の分散コンピューティング配列を含んでもよい。その様なコンピューティングデバイス１０３は１つのインストレーションに位置付けされてもよく、あるいは多くの異なる地理的位置に分散されてもよい。便宜上、コンピューティングデバイス１０３は本明細書では単数として参照される。コンピューティングデバイス１０３は単数として参照されるけれども、前述のように複数のコンピューティングデバイス１０３が様々な配列で採用されてもよいことを理解されたい。
【００１１】
様々なアプリケーションおよび／または他の機能性が、様々な実施形態に従うコンピューティングデバイス１０３において実行され得る。また、様々なデータがデータストア１１３に記憶され、それはコンピューティングデバイス１０３に利用可能となる。データストア１１３は、評価され得る複数のデータストア１１３の代表であり得る。データストア１１３内に記憶されたデータは、例えば、以下に記述される様々なアプリケーションの操作および／または機能的存在に関連付けられる。
【００１２】
コンピューティングデバイス１０３上で実行される構成要素は、例えば、サーバアプリケーション１１５、デバイス構成アプリケーション１１６、電子商用アプリケーション１１７、 複数の仮想デバイスインスタンス１１８ａ．．．１１８Ｎ、複数のメディア符号器１２０ａ．．．１２０Ｎ、および他のアプリケーション、サービス、プロセス、システム、エンジン、あるいは本明細書では詳述されていない機能性、を含む。いくつかの実施形態において、サーバアプリケーション１１５は、購入済または購入されるコンピューティングデバイス１１２へ対話式遠隔アクセスを促進するために実行される。遠隔アクセスは、コンピューティングデバイス１１２のユーザによる事前構成、および／またはコンピューティングデバイス１１２の動作テストを可能とし得る。
【００１３】
他の実施形態において、サーバアプリケーション１１５は、購入済または購入されるコンピューティングデバイス１１２の仮想化バージョンに対応する仮想デバイスインスタンス１１８に対する対話式遠隔アクセスを促進するために実行される。同様にユーザは、仮想デバイスインスタンス１１８を事前構成し、構成の変更は、コンピューティングデバイス１１２が発送される前に、実際のコンピューティングデバイス１１２に複製され得る。サーバアプリケーション１１５は、クライアント１０６からデバイス入力データ１２２を取得するためにも実行され、デバイス入力データ１２２を各仮想デバイスインスタンス１１８またはコンピューティングデバイス１１２に提供する。
【００１４】
サーバアプリケーション１１５は、コンピューティングデバイス１１２または仮想デバイスインスタンス１１８から捕捉されるデバイス出力データ１２３をクライアント１０６に送信するためにも実行される。サーバアプリケーション１１５は、ハイパーテキストトランスファプロトコル（ＨＴＴＰ）、シンプルオブジェクトアクセスプロトコル（ＳＯＡＰ）、レプレゼンテーショナルステートトランスファ（ＲＥＳＴ）、リアルタイムトランスポートプロトコル（ＲＴＰ）、リアルタイムストリーミングプロトコル（ＲＴＳＰ）、リアルタイムメッセージングプロトコル（ＲＴＭＰ）、ユーザデータグラムプロトコル（ＵＤＰ）、トランスミッションコントロールプロトコル（ＴＣＰ）および／またはネットワーク１０９を介したデータ通信のための他のプロトコル等の様々なプロトコルを介し、クライアント１０６と通信し得る。サーバアプリケーション１１５は実行中の仮想デバイスインスタンス１１８および／またはコンピューティングデバイス１１２に関連する入力待ち行列１２５を維持するように構成される。
【００１５】
様々な実施形態において、サーバアプリケーション１１５は、１つまたは複数のネットワークページを使用してユーザインタフェースを生成するように構成し得る。ネットワークページは、仮想デバイスインスタンス１１８によって生成されるストリーミングビデオおよび／またはオーディオを含んでよい。様々な実施形態において、仮想入力デバイスの画像は、ストリーミングビデオおよび／またはオーディオと連動して表現されてもよい。例えば、仮想デバイスインスタンス１１８またはコンピューティングデバイス１１２の仮想キーボードはネットワークページ内に含まれてよい。例えばコンピューティングデバイス１１２がモバイルコンピューティングデバイスの場合、モバイルコンピューティングデバイスの画像がネットワークページに含まれてよい。サーバアプリケーション１１５は、仮想デバイスインスタンス１１８および／またはコンピューティングデバイス１１２と連動し、モバイルコンピューティングデバイスの画像との対話を促進し得る。コンピューティングデバイス１１２が例えばスクリーンをもつモバイルコンピューティングデバイスに対応する場合、仮想デバイスインスタンス１１８またはコンピューティングデバイス１１２から捕捉されたビデオを、あたかもそのビデオがモバイルコンピューティングデバイスのスクリーン上で示されるかのように、モバイルコンピューティングデバイスの画像によって取り囲まれてよい。
【００１６】
デバイス構成アプリケーション１１６は、コンピューティングデバイス１１２および／または仮想デバイスインスタンス１１８に対して構成変更を実施するために実行される。１つの態様では、デバイス構成アプリケーション１１６はコンピューティングデバイス１１２および／または仮想デバイスインスタンス１１８のためのデフォルト構成を提供するために実行され得る。ユーザが仮想デバイスインスタンス１１８と対話する場合、デバイス構成アプリケーション１１６を実行して仮想デバイスインスタンス１１８の修正済み構成を記憶し、そしてユーザによって購入されたコンピューティングデバイス１１２に修正済み構成を複製し得る。ユーザがコンピューティングデバイス１１２と直接対話する場合、デバイス構成アプリケーション１１６を実行して１つのコンピューティングデバイス１１２の修正済み構成を別のコンピューティングデバイス１１２に複製し得る。受け取り側コンピューティングデバイス１１２はそれによって修正済み構成を採用する。
【００１７】
電子商用アプリケーション１１７は、ネットワーク１０９を介した、コンピューティングデバイス１１２、コンピューティングデバイス１１２用のアプリケーション等の品目の商店からのオンライン購入を促進するように実行される。電子商用アプリケーション１１７は、品目のオンライン購入を促進するために、商店のオンライン上の存在と関連する様々なバックエンド機能をも実行する。例えば、電子商用アプリケーション１１７は、購入、レンタル、ダウンロード、リース、または他の形式の消費のため、品目の選択目的のためにクライアント１０６に提供されるネットワークページまたはその一部を生成し得る。いくつかの実施形態において、電子商用アプリケーション１１７は、複数の店が参加する電子市場を含むネットワークサイトに関連付けられる。
【００１８】
仮想デバイスインスタンス１１８は、コンピューティングデバイス１１２の仮想化バージョンに対応する。仮想デバイスインスタンス１１８はデフォルト構成が事前ロードされており、これはその後ユーザによって修正され得る。様々な実施形態では、仮想デバイスインスタンス１１８を構成し、アプリケーションがアクセスを期待する１つまたは複数のリソースを仮想化することにより、アプリケーションのための仮想化環境を提供し得る。その様なリソースは、キーボード、マウス、ジョイステック、ビデオデバイス、サウンドデバイス、グローバルポジショニングシステム（ＧＰＳ）デバイス、加速度計、タッチスクリーン、内臓式ボタン、ファイルシステム、内臓式バッテリー、等を含み得る。このようにして、仮想デバイスインスタンス１１８は、仮想デバイスインスタンス１１８がキーボード、マウス、または別のタイプのハードウエアデバイスをエミュレートする場合、入力コマンドおよび他のデータをアプリケーションに提供することができる。
【００１９】
さらに、仮想デバイスインスタンス１１８は、オペレーティングシステムアプリケーションまたは他のアプリケーションによって生成されるビデオ信号および／または音声信号を取得可能で、そして仮想デバイスインスタンスはディスプレイデバイス、オーディオデバイス、または別のタイプの出力デバイスをあたかもエミュレートまたはシミュレートするようである。本明細書で論じられている多くの例はエミュレートされたまたはシミュレートされたディスプレイを備えるコンピューティングデバイスに関連するが、エミュレートされたまたはシミュレートされたコンピューティングデバイスは、例えば、セットトップボックス、オーディオプレーヤ、および／または一体化されたディスプレイスクリーンを持たない他のデバイス等も含み得る。
【００２０】
限定されない例として、仮想デバイスインスタンス１１８は、ＯｐｅｎＧＬ（登録商標）、ＤｉｒｅｃｔＸ（登録商標）、グラフィックデバイスインタフェース（ＧＤＩ）等の様々なアプリケーションプログラミングインタフェース（ＡＰＩ）を使用するアプリケーションをサポートし得る。アプリケーションが特化デバイスまたは別のタイプのコンピューティングデバイスで実行するように構成された場合、仮想デバイスインスタンス１１８はそのデバイスをエミュレートするエミュレーションアプリケーションを含み得る。例えば、アプリケーションの出力は、グラフィックＡＰＩの下での描画コールまたは他のシステムコール等のインターセプトシステムコールによって、仮想デバイスインスタンス１１８により捕捉され得る。
【００２１】
１つまたは複数のメディア符号器１２０は、仮想デバイスインスタンス１１８から生成されたビデオ信号および／または音声信号を、メディアストリームに符号化可能である。例えばムービングピクチャエクスパートグループ（ＭＰＥＧ）符号器、Ｈ．２６４符号器、Ｆｌａｓｈ（登録商標）ビデオ符号器等の、様々なタイプのメディア符号器１２０を使用し得る。その様なメディア符号器１２０は、例えばデータ削減、符号化品質、待機時間等の要因に従って選択し得る。いくつかの実施形態では、仮想デバイスインスタンス１１８はクライアント１０６と直接通信し、デバイス入力データ１２２の取得およびデバイス出力データ１２３の提供を行い得る。
【００２２】
入力待ち行列１２５は、仮想デバイスインスタンス１１８のためのデバイス入力データ１２２から、入力コマンドを収集し得る。入力コマンドは正しいシーケンスに再順序ずけされ、コマンド間に遅延を挿入して、対応する仮想デバイスインスタンス１１８に提出される時に正しく解釈されるようにし得る。
【００２３】
データストア１１３に記憶されるデータは、例えば、メディア符号器１２９、デバイスインタフェース１３３、デバイス構成１３５、ユーザデータ１３７、および潜在的他のデータを含む。メディア符号器１２９は、コンピューティングデバイス１０３および／またはコンピューティングデバイス１１２に採用し得る様々なタイプのメディア符号器１２０に対応する。いくつかのメディア符号器１２９は、例えば、Ｈ．２６４、ＭＰＥＧ−４、 ＭＰＥＧ−２、 および／または他のフォーマット等の特定フォーマットに対応し得る。
【００２４】
デバイスインタフェース１３３は、画像、動画、コード、ハイパーテキストマークアップ言語（ＨＴＭＬ）、拡張マークアップ言語（ＸＭＬ）、カスケーディングスタイルシート（ＣＳＳ）、および／または仮想化コンピューティングデバイスのグラフィック表現を生成するために使用し得る他のデータに対応する。特定のコンピューティングデバイスプラットフォームを多数のデバイスインタフェース１３３と関連付け得ることに注目されたい。限定されない例として、スマートフォンのＡｎｄｒｏｉｄ（登録商標）はスマートフォンの多数の様々なモデルによってサポートされ得る。いくつかのモデルはタッチスクリーンを備えたミニキーボードを有し、一方他のモデルは物理的ミニキーボードを備えないタッチスクリーンのみを有し得る。各モデルは様々な制御子およびケースを有し得る。したがって、様々なデバイスインタフェース１３３をＡｎｄｒｏｉｄ（登録商標）スマートフォンの様々なモデルのために提供し得る。
【００２５】
コンピューティングデバイス１１２が組み込みディスプレイを含まない場合、デバイスインタフェース１３３は、コンピューティングデバイス１１２または仮想デバイスインスタンス１１８によって生成されるビデオを表示する外部表示装置の表現を含み得る。同様に、コンピューティングデバイス１１２に接続され得る他の非組み込み型ドライブデバイス（例えば、キーボード、マウス、等）は、デバイスインタフェース１３３によって提示され得る。
【００２６】
デバイス構成１３５は、コンピューティングデバイス１１２のためのデフォルト構成およびユーザ修正済み構成に対応する。その様な構成は、コンピューティングデバイス１１２のためのアプリケーションおよびデータを含んでよい。１つの実施形態では、デバイス構成１３５はコンピューティングデバイス１１２のマシン画像に対応する。１つの実施形態では、仮想デバイスインスタンス１１８によってロードされ、修正されるデバイス構成１３５は、１つまたは複数のコンピューティングデバイス１１２にその後ロードされてもよい。いくつかの例では、特化されたデフォルトデバイス構成１３５も提供し得る。限定されない例として、読書リストをもつ学校の先生は、読書リストの全書籍があらかじめロードされた電子書籍リーダに関するデフォルト構成を確立し得る。学生は、その構成を採用するように個々に電子書籍リーダを構成可能であり、あるいは教師は、一度に多数の電子書籍リーダに対してデフォルト構成の大量複製を流すことも可能である（例えば、学校が所有し、生徒が利用可能な１００台の電子書籍リーダ）。
【００２７】
ユーザデータ１３７は、ユーザ参照、注文履歴、ユーザアカウント情報、および他のデータに関連する様々なデータを含み得る。例えば、ユーザデータ１３７はコンピューティングデバイス１１２に関する注文状態を示してもよい。さらに、ユーザデータ１３７はコンピューティングデバイス１１２が発送される発送先住所を示してもよい。コンピューティングデバイス１１２がギフト受取人に発送される場合、ユーザデータ１３７は、ギフト受取人住所を示してもよい。
【００２８】
コンピューティングデバイス１１２は、例えば、コンピュータシステム等のプロセッサベースのシステムを備え得る。そのようなコンピュータシステムは、デスクトップコンピュータ、ラップトップコンピュータ、携帯端末、携帯電話、スマートフォン、セットトップボックス、アプリケーションを実行し、ネットワーク１０９にアクセス可能なテレビ、音楽プレーヤ、ウェブパッド、タブレットコンピュータシステム、ゲーム機、電子書籍リーダ、または同様の能力を備えた他のデバイスの形式で具体化される。１つの実施形態では、コンピューティングデバイス１１２とネットワーク環境１００においてネットワーク１０９と組み合わせ、コンピューティングデバイス１１２を購入した、または購入を考えているユーザに、遠隔アクセスを提供し得る。コンピューティングデバイス１１２は、フルフィルメントセンターまたは別の施設等の材料取り扱い施設において、ネットワーク環境１００の中で維持し得る。あるいは、コンピューティングデバイス１１２は、発送前に記憶されたデバイス構成１３５を複製するためのみに、ネットワーク環境１００と連結されてもよい。最後には、コンピューティングデバイス１１２はネットワーク１０９から外され、注文の履行時に顧客に発送される。
【００２９】
コンピューティングデバイス１１２は、ディスプレイ１４２を含んでもよい。ディスプレイ１４２は、例えばカソードレイチューブ（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）スクリーン、ガスプラズマベースフラットパネルディスプレー、ＬＣＤプロジェクタ、または他のタイプのディスプレイデバイス等の１つまたは複数のデバイスを備える。ディスプレイ１４２は、ユーザの見るコンピューティングデバイス１１２のグラフィック出力に対応するスクリーン１４５を含む。コンピューティングデバイス１１２は１つまたは複数の入力デバイス１４８を含み得る。入力デバイス１４８は例えばキーボード、マウス、ジョイステック、加速度計、光ガン、ゲームコントローラ、タッチパッド、タッチスティック、押しボタン、光センサ、マイクロフォン、ウェブカメラ、および／またはユーザ入力を提供可能な任意の他のデバイスを備えてもよい。さらに、様々な入力デバイス１４８は、ユーザにフィードバックを提供するために触覚技術を組み込んでもよい。コンピューティングデバイス１１２は、例えば、オーディオデバイス、表示ランプ、振動デバイス、触覚デバイス、等の様々な出力デバイス１５１を有してもよい。
【００３０】
様々なアプリケーションおよび／または他の機能性を、様々な実施形態に従うコンピューティングデバイス１１２内で実行し得る。コンピューティングデバイス１１２上で実行される構成要素は、例えば、アプリケーション１５４、遠隔アクセスアプリケーション１５７、および他のアプリケーション、サービス、プロセス、システム、エンジン、あるいは本明細書では詳述されていない機能性を含む。
【００３１】
アプリケーション１５４は、コンピューティングデバイス１１２内で実行され得る様々なアプリケーションに対応する。アプリケーション１５４は、例えば、ゲームあるいは他のタイプのアプリケーションに対応し得る。限定されない例として、アプリケーション１５４は、シューティングゲーム、アクションゲーム、アドベンチャゲーム、パーティゲーム、ロールプレイングゲーム、シミュレーションゲーム、戦略ゲーム、車両シミュレーションゲーム、および／または他のタイプのゲームに対応し得る。アプリケーション１５４は汎用コンピューティングデバイスにおいて、または例えばスマートフォン、ビデオゲーム機、携帯型ゲームデバイス、アーケードゲームデバイス、等の特化したデバイスにおいて実行するために設計し得る。アプリケーション１５４は、携帯電話アプリケーション、コンピュータ支援設計（ＣＡＤ）アプリケーション、コンピュータ支援製造（ＣＡＭ）アプリケーション、写真操作アプリケーション、ビデオ編集アプリケーション、オフィス生産性アプリケーション、オペレーティングシステムおよび関連アプリケーション、オペレーティングシステム、アーキテクチャ、および消費者用デバイス上には存在しない機能に関するエミュレータ、および他のアプリケーションならびにアプリケーションの組み合わせにも対応し得る。
【００３２】
いくつかの実施形態では、遠隔アクセスアプリケーション１５７は、ネットワーク１０９を介してコンピューティングデバイス１１２に遠隔アクセスすることを促進するために実行される。その目的のため、遠隔アクセスアプリケーション１５７は、スクリーン１４５に対応するビデオ信号および音声信号を捕捉し、そしてその信号をコンピューティングデバイス１０３および／またはクライアント１０６に送信し得る。いくつかの実施形態では、コンピューティングデバイス１１２の出力は、デバイスレベルにおいてコンピューティングデバイス１０３のメディア符号器１２０によって捕捉し得る。例えば、コンピューティングデバイス１１２のビデオ出力は、ビデオグラフィックアレイ（ＶＧＡ）接続、高精度マルチメディアインタフェース（ＨＤＭＩ）接続、コンポーネントビデオ接続、全国テレビジョン方式委員会（ＮＴＳＣ）テレビ接続、および／または他の接続を介して捕捉し得る。他の実施形態では、遠隔アクセスアプリケーション１５７は１つまたは複数のメディア符号器１２０を含み、ソフトウェアにより捕捉されるビデオ信号および／または音声信号をメディアストリームに符号化する。
【００３３】
遠隔アクセスアプリケーション１５７は、メディアストリームをクライアント１０６および／またはコンピューティングデバイス１０３のデバイス出力データ１２３に送信し得る。遠隔アクセスアプリケーション１５７は、クライアント１０６および／またはデバイス入力データ１２２の中のコンピューティングデバイス１０３から様々なデータを、取得し得る。デバイス入力データ１２２は音声信号、入力コマンド、テキスト入力、および／または他の形式の入力データに対応し得る。コンピューティングデバイス１１２は様々なデータをデバイスデータ１６０として記憶してもよい。デバイスデータ１６０は、例えば、記憶されたアプリケーション１５４、写真、ビデオ、オーディオファイル、コンタクトデータ、電子書籍、保存されたテキストメッセージ、保存されたテキストメッセージ、保存された音声メール、および／または他のデータを含んでもよい。
【００３４】
クライアント１０６は、ネットワーク１０９と接続され得る複数のクライアントデバイスの代表である。クライアント１０６は地理的多様性を提供し得る。クライアント１０６は、例えば、コンピュータシステム等のプロセッサベースのシステムを備え得る。その様なコンピュータシステムは、デスクトップコンピュータ、ラップトップコンピュータ、携帯端末、携帯電話、スマートフォン、セットトップボックス、アプリケーションを実行し、ネットワーク１０９にアクセス可能なテレビ、音楽プレーヤ、ウェブパッド、タブレットコンピュータシステム、ゲーム機、電子書籍リーダ、または他の同様の能力をもつデバイスの形で具体化され得る。
【００３５】
クライアント１０６はディスプレイ１６３を含み得る。ディスプレイ１６３は、例えば、カソードレイチューブ（ＣＲＴ）、液晶表示（ＬＣＤ）スクリーン、ガスプラズマベースフラットパネルディスプレイ、ＬＣＤプロジェクタまたは他のタイプのディスプレイデバイス等の１つまたは複数のデバイスを含み得る。クライアント１０６は１つまたは複数の入力デバイス１６６を含み得る。入力デバイス１６６は、例えば、キーボード、マウス、ジョイスティック、加速度計、光ガン、ゲームコントローラ、タッチパッド、タッチスティック、押しボタン、光センサ、マイクロフォン、ウェブカメラ、および／またはユーザ入力を提供することもできる任意の他のデバイス、等のデバイスを含み得る。さらに、様々な入力デバイス１６６は触覚技術を組み込み、ユーザにフィードバックを提供してもよい。クライアント１０６は、例えば、オーディオデバイス、表示ランプ、振動デバイス、触覚デバイス等の様々な出力デバイス１６９を有してもよい。
【００３６】
クライアント１０６はクライアントアプリケーション１７２および／または他のアプリケーション等の様々なアプリケーションを実行するように構成され得る。クライアントアプリケーション１７２は、コンピューティングデバイス１０３から１つまたは複数のネットワークページを取得して描写するブラウザに対応し、これによって、コンピューティングデバイス１１２および／または他の品目の選択および購入を促進する。また、クライアントアプリケーション１７２はコンピューティングデバイス１１２または仮想デバイスインスタンス１１８との対話をユーザに許すために実行される。その目的のため、クライアントアプリケーション１７２は１つまたは複数の入力デバイス１６６を通してユーザによって提供される入力コマンドを捕捉し、そしてその入力をネットワーク１０９を介して、デバイス入力データ１２２としてコンピューティングデバイス１０３に送信するように構成される。デバイス入力データ１２２はコンピューティングデバイス１１２または仮想デバイスインスタンス１１８によって使用されるために、クライアント１０６によって生成される他のデータ（例えば、ＧＰＳデータ、オーディオデータ、等）を組み込んでもよい。
【００３７】
クライアントアプリケーション１７２はコンピューティングデバイス１０３からネットワーク１０９を介してデバイス出力データ１２３を取得し、ディスプレイ１６３上にスクリーン１７５を描くようにも構成される。この目的のために、クライアントアプリケーション１７２は１つまたは複数のビデオおよびオーディオプレーヤを含み、仮想デバイスインスタンス１１８またはコンピューティングデバイス１１２に対応するメディアストリームを再生し得る。１つの実施形態では、クライアントアプリケーション１７２はブラウザアプリケーション内で実行されるプラグインまたは他のクライアントサイドコードを含む。クライアント１０６はクライアントアプリケーション１７２以外に、例えば、ブラウザアプリケーション、Ｅメールアプリケーション、インスタントメッセージアプリケーション、および／または他のアプリケーション等のアプリケーションを実行するように構成され得る。いくつかの実施形態では、複数のクライアント１０６を一人または複数のユーザのために採用し、仮想デバイスインスタンス１１８またはコンピューティングデバイス１１２と対話するようにしてもよい。限定されない例として、いくつかのクライアント１０６は表示出力に特化されてもよく、一方他のクライアント１０６はユーザ入力の取得に特化されてもよい。様々なクライアント１０６は、入力コマンドを仮想デバイスインスタンス１１８またはコンピューティングデバイス１１２に提供する前に採用された遅延に影響する可能性のある様々な待機時間要件に関連し得ることに注目されなければならない。
【００３８】
次に、ネットワーク環境１００の様々な構成要素の操作の一般的説明を行う。最初に、クライアント１０６の顧客は、電子商用アプリケーション１１７により提供されるネットワークサイトを閲覧する。顧客は、例えば、カタログの分類をナビゲートし、質問の検索を実行し、リンクを選択し、および／または他のナビゲーション機能を実行し得る。顧客はコンピューティングデバイス１１２に購買用に特集する詳細なネットワークページまたは別の類似ネットワークページに到達し得る。あるいは、顧客はコンピューティングデバイス１１２を選択し、コンピューティングデバイス１１２上に事前ロードされるアプリケーション１５４、メディアファイル、等を購買することを探してもよい。
【００３９】
顧客はシミュレートされたインタフェースを通してコンピューティングデバイス１１２および／またはアプリケーション１２７を使用する機会を与えられてもよい。その目的のためには、クライアント１０６の顧客は対話式遠隔アクセスセッションの開始要求をサーバアプリケーション１１５に送信する。サーバアプリケーション１１５は、デバイス構成アプリケーション１１６を使用し、デフォルトデバイス構成１３５でコンピューティングデバイス１１２または仮想デバイスインスタンス１１８を構成する。あるいは、顧客はコンピューティングデバイス１１２または仮想デバイスインスタンス１１８内の、直前に使用されたデバイス構成１３５に戻ることも可能である。
【００４０】
仮想デバイスインスタンス１１８はアプリケーション１５４の実行のための与えられた環境を提供してもよい。いくつかの実施形態では、ホスト環境は、コンピューティングデバイス１０３の１つまたは複数のリソースを仮想化する仮想化環境を含み得る。そのようなリソースは排他的リソース、すなわちアプリケーション１５４ が排他的アクセスを要求するリソース、を含み得る。例えば、アプリケーション１５４はビデオデバイスからフルスクリーンアクセスを要求し得るが、これは通常はただ１つのアプリケーションがフルスクリーンアクセスを有し得るため、排他的リソースである。さらに、仮想デバイスインスタンス１１８または遠隔アクセスアプリケーション１５４は、コンピューティングデバイス１０３またはコンピューティングデバイス１１２内に実際には存在しないかもしれない、例えば、キーボード、マウス、ＧＰＳデバイス、加速度計、等の入力デバイスを仮想化し得る。仮想デバイスインスタンス１１８はアプリケーション１５４に、仮想ファイルシステムへのアクセスをも提供し得る。様々な実施形態で、仮想デバイスインスタンス１１８は、仮想マシンに対応し得るおよび／または仮想デバイスインスタンス１１８は仮想マシン内で実行され得る
【００４１】
クライアント１０６のユーザは、クライアント１０６の入力デバイス１６６を使用し、仮想デバイスインスタンス１１８または遠隔アクセスアプリケーション１５７のための入力コマンドを入力する。限定されない例として、ユーザは左マウスボタンを押す。それにより、クライアントアプリケーション１７２は、デバイス入力データ１２２内で、入力コマンドをネットワーク１０９を介して送信し得る形式に符号化するように働く。サーバアプリケーション１１５は入力コマンドを受信し、それを仮想デバイスインスタンス１１８の入力待ち行列１２５あるいは遠隔アクセスアプリケーション１５７の入力待ち行列に加え、そして最後にそれを仮想デバイスインスタンス１１８または遠隔アクセスアプリケーション１５７に渡す。仮想デバイスインスタンス １１８または遠隔アクセスアプリケーション１５７は、次に、仮想化マウスまたはＡＰＩコールにより、アプリケーション１５４に対して左マウスボタン押しこみを行う。
【００４２】
ネットワーク１０９の可変待機時間特性により、受信後すぐに入力コマンドがアプリケーション１５４に提供された場合、いくつかの入力コマンドがアプリケーション１５４によって誤って解釈されることもあることに注意されたい。限定されない例として、マウスボタンのシングルクリック２回は、１回目のシングルクリックが２回目のシングルクリックよりも多くの量でネットワーク１０９によって遅延された場合、ダブルクリックとして誤って解釈され得る。同様に、マウスクリックおよびマウスドラッグは、ある入力コマンド間の相対的時間関係が保たれない場合、誤って解釈され得る。
【００４３】
別の限定されない例として、アプリケーション１５４が、ファイティングゲームジャンル、例えばＭｏｒｔａｌ  Ｋｏｍｂａｔ、Ｓｔｒｅｅｔ  Ｆｉｇｈｔｅｒ等のゲームアプリケーションに対応する場合を想定してみる。クライアント１０６のユーザは、急速な入力コマンドの連続を通して一連の複雑な動きを実行し得る。入力コマンドがネットワーク１０９を介して可変待機時間にさらされる場合、一連の動作はアプリケーション１５４によって誤って解釈されることがあり、それにより、ユーザによってコントロールされるキャラクタは、意図された動作を実行しないという結果になり得る。例えば、パンチ動作を成功させるためには、２つのボタンを所定期間内に押すことが必要とされる。２番目の入力コマンドがネットワーク１０９によって遅延され、１番目の入力コマンドがネットワーク１０９によって遅延されない場合、動作は、ユーザの何等の落ち度なく、不成功となり得る。これを矯正するため、サーバアプリケーション１５４は最初の入力コマンドを遅延させ、最初と２番目の入力コマンド間の相対的時間関係を保存し得る。そうすることにより、ユーザによって実行されるジェスチャまたはシーケンスは、アプリケーション１５４のために保存される。
【００４４】
使用される追加の遅延は事前決定され得るが、クライアント１０６において生成されたときの各コマンド間の間隔と、サーバアプリケーション１１５によって各コマンドが受信されたときの間隔との差に基づいて計算されることも可能である。クライアント１０６において生成されるコマンド間の間隔は、コマンドに関連するメタデータ内のタイムスタンプを参照することによって決定し得る。システム内の様々な固定待機時間（例えば、ビデオエンコーディング遅延、最小ネットワーク待機時間）はアプリケーション１５４の機能性には悪影響を及ぼさないことに注目されたい。
【００４５】
いくつかの例では、アプリケーション１５４に入力コマンドを提供する際の遅延は、入力コマンドと関連するビデオフレーム領域に少なくとも部分的には左右される。限定されない例として、ゲームであるアプリケーション１５４の場合、入力コマンドの意味を保存するために、ゲームプレイに関連する入力コマンドを遅延させることは重要であり得る。しかしながら、ゲームスクリーン１４５はチャットウィンドウを含む場合もあり、また入力コマンドはチャットウィンドウを介してゲーム内に別のプレーヤに送信されるテキストを含む場合もある。入力コマンドがチャットウィンドウに関連する場合、仮想デバイスインスタンス１１８または遠隔アクセスアプリケーション１５７を、追加遅延なしに入力コマンドをアプリケーション１５４に提供するために構成され得る。すなわち、テキストをできる限り早く他のユーザに送信することが優先されるであろう。したがって、遅延は、入力コマンドがチャットウィンドウであるスクリーン１４５の領域に関連しているかに左右されるだろう。また、アプリケーション１５４は複数のモードを有することが可能で、あるモードは入力コマンドを提供する際に遅延と関係するが、別のモードはそうではないことを理解されたい。
【００４６】
ユーザが入力コマンドをクライアント１０６において生成するとき、スクリーン１４５上でユーザに対して提供されるビデオフレームと確実にシンクされることも重要である。限定されない例として、システムの様々な待機時間のゆえに、ファイティングゲームにおいて、ユーザによってコントロールされるキャラクタによって投げられようとする火の玉は、意図するよりも遅れて投げられることもあり得る。いくつかの例ではこのことは問題にならないかもしれない。例えば、ユーザは火の玉を単に投げることを欲しており、火の玉を投げる際の短い遅延はユーザにとって受け入れられることもある。しかしながらより正確性を求めて、アプリケーション１５４は、仮想デバイスインスタンス１１８または遠隔アクセスアプリケーション１５７が、フレーム番号または他の時間的識別子を入力コマンドと関連付けることを許可するＡＰＩをサポートする場合がある。それにより、アプリケーション１５４は入力コマンドがいつ実行されたかと、それにつれて反応することを正確に知ることが可能である。フレーム番号または他の時間的識別子は、入力コマンドのメタデータとしてクライアントアプリケーション１７２によってサーバアプリケーション１１５に送信されてもよい
【００４７】
いくつかの実施形態では、様々な入力コマンドが、クライアント１０６によって生成されたものからアプリケーション１５４に提供され得る。限定されない例として、ユーザがマウスダウンコマンドを送信し、そしてクライアントアプリケーション１７２が焦点を失う場合、仮想デバイスインスタンス１１８または遠隔アクセスアプリケーション１５７をマウスダウンコマンドを送信し、続けてマウスアップコマンドを送信するように構成してよい。いくつかの実施形態では、入力コマンドは可能な限り仮想デバイスインスタンス１１８または遠隔アクセスアプリケーション１５７に中継されてもよく、あるいは入力コマンドは仮想デバイスインスタンス１１８または遠隔アクセスアプリケーション１５７によって入力待ち行列１２５に入れられ、そして別のアプローチに従って待ち行列から順次アプリケーション１５４に中継されてもよい。
【００４８】
一方、仮想デバイスインスタンス１１８または遠隔アクセスアプリケーション１５７のグラフィック出力は、捕捉され、メディアストリームに符号化される。グラフィック出力は、ビデオ信号または別のタイプの視覚表示に対応し得る。例えば、視覚表示は、配列されたアイコンおよび座標に対応し得る。別の例では、グラフィック出力は、画像シーケンスに対応し、これは標準作成委員会（ＪＰＥＧ）メディアストリームに符号化し得る。さらに、仮想デバイスインスタンス１１８または遠隔アクセスアプリケーション１５７のオーディオ出力は、捕捉されてメディアストリームに多重化され得る。グラフィック出力および／またはオーディオ出力は、いくつかの実施形態では、コンピューティングデバイス１０３またはコンピューティングデバイス１１２のハードウエアデバイスにより捕捉され得る。メディアストリームは、デバイス出力データ１２３として、ネットワーク１０９を介してクライアント１０６にサーバアプリケーション１１５または（遠隔アクセスアプリケーション１５７）によって送信される。クライアントアプリケーション１７２はデバイス出力データ１２３を取得し、ユーザインタフェース内のディスプレイ１４２上にスクリーン１４５を描く。スクリーン１４５は、コンピューティングデバイス１１２の入力および出力を促進する、対応デバイスインタフェース１３３から生成されるデバイスインタフェース１３３によって取り囲まれ得る。
【００４９】
いくつかの実施形態では、顧客はあるクライアント１０６において対話式遠隔アクセスセッションを開始し、そのセッションを別のクライアント１０６で継続し得る。さらに、様々な場所の複数のユーザが、対話式遠隔アクセスセッションに参加し得る。様々な実施形態が、クライアント１０６においてあるタイプの入力デバイス１６６を通して生成される入力を、仮想デバイスインスタンス１１８または遠隔アクセスアプリケーション１５７により、まったく異なるタイプの仮想入力デバイスを通してアプリケーション１５４に提供される入力コマンドへ変換することを可能にする。限定されない例として、クライアント１０６において加速度計によって生成される入力は、仮想デバイスインスタンス１１８または遠隔アクセスアプリケーション１５７により、仮想マウスを介して提供される入力へ翻訳し得る。
【００５０】
入力デバイス１４８が触覚技術およびデバイスを組み込む場合、フォースフィードバックは出力デバイス１６９のデバイス出力データ１２３の中に提供され得る。限定されない例として、シミュレートされた自動車のハンドルはフォースフィードバックによりプログラム可能で、ユーザに対して道路の感触を与える。ユーザが転回または加速を行うと、ハンドルは回転に抵抗したりスリップし、コントロールを失う場合がある。別の限定されない例では、入力デバイス１４８の温度をフォースフィードバックに従って変更するように構成し得る。１つの実施形態では、あるクライアント１０６のデバイス入力データ１２２から生成されるフィードバックは、別のクライアント１０６に送信されるデバイス入力データ１２３に含めることができる。
【００５１】
実際のコンピューティングデバイス１１２と類似するインタフェースを備えるコンピューティングデバイス１１２が十分にテストされ、および／または構成されると、顧客はコンピューティングデバイス１１２を購入する準備が十分に整う。顧客は、任意の時点で、ネットワークページ上で様々な購入構成要素を選択し、コンピューティングデバイス１１２のための様々なアプリケーション１５４の購入、リース、および／またはダウンロードを選択し得る。いくつかの例では、顧客は事前構成されたアプリケーション１５４のバンドルあるいはコンピューティングデバイス１１２へロードされ得る他のコンテンツを選択し得る。各アプリケーション１５４または他のコンテンツが選択されロードされると、電子商用アプリケーション１１７によって請求書が顧客に送信される。あるいは、多くのアプリケーション１５４または他のコンテンツが潜在的にロードされ、そしてデバイス構成１３５がファイナライズまたは複製された後、請求書が顧客に送信されてもよい。
【００５２】
顧客はデバイス構成１３５を保存し、保存されたデバイス構成１３５をその後の対話式、遠隔アクセスセッションにおいて修正し得る。デバイス構成アプリケーション１１６は修正済みデバイス構成１３５上でエラーチェックを実行し、それが有効であることを確認し得る。顧客が対話式遠隔アクセスセッションを終了すると、仮想デバイスインスタンス１１８のデバイス構成１３５を、コンピューティングデバイス１１２の物理的バージョンへコピーし得る。あるいは、物理的コンピューティングデバイス１１２が遠隔アクセスされた場合、そのコンピューティングデバイス１１２に対する変更は維持され、および／または他のコンピューティングデバイス１１２に複製され得る。その後、潜在的に修正されたデバイス構成１３５を含むコンピューティングデバイス１１２は、注文の履行時に顧客に発送され得る。いくつかの例では、修正済みデバイス構成１３５を、例えば家庭内または他の環境で、すでに顧客の所有している１つまたは複数の物理的コンピューティングデバイス１１２に対し、ネットワーク１０９を介して複製し得る。
【００５３】
遠隔的に実行されるアプリケーション１５４に対して入力コマンドを提供することに関連する様々な技術は、２０１０年１２月１５日に出願され、出願番号１２／９６８，８４５号を割り当てられた米国特許出願’Ｓｅｎｄｉｎｇ  Ａｐｐｌｉｃａｔｉｏｎ  Ｉｎｐｕｔ  Ｃｏｍｍａｎｄｓ  ｏｖｅｒ  ａ  Ｎｅｔｗｏｒｋ’、及び２０１１年５月２４日に出願され、出願番号１３／１１４，５３４を割り当てられた米国特許出願’Ｒｅｍｏｔｅｌｙ  Ｅｍｕｌａｔｉｎｇ  Ｃｏｍｐｕｔｉｎｇ  Ｄｅｖｉｃｅｓ’に記載されており、その両者は参照によってその全体が本明細書に組み込まれる。
【００５４】
図２に移動すると、ネットワーク環境１００（図１）におけるクライアント１０６（図１）で描かれるユーザインタフェース２００の例が示されている。ユーザインタフェース２００は、ブラウザに対応するクライアントアプリケーション１７２（図１）によって描かれるネットワークページ２０３を含む。ネットワークページ２０３は、対話式遠隔アクセスセッションで使用されるコンピューティングデバイス１１２（図１）のグラフィック表現２０６を含む。グラフィック表現２０６はスクリーン１４５が表示されるディスプレイ１４２を含む。スクリーン１４５は、メディアストリームに対応し、これは実際のコンピューティングデバイス１１２の遠隔アクセスアプリケーション１５７（図１）によって、あるいは、コンピューティングデバイス１０３（図１）において仮想デバイスインスタンス１１８（図１）により生成される仮想ディスプレイおよび／またはオーディオデータ信号から生成される。他の実施形態では、取り囲んでいるグラフィック表現２０６無しでスクリーン１４５が描かれる。
【００５５】
入力ボタン等の様々な入力デバイス１４８は、グラフィック表現２０６により表現される。ディスプレイ１４２は、タッチスクリーンに対応し得る。ユーザがグラフィック表現２０６と対話するとき、入力データはサーバアプリケーション１１５（図１）に送信される。入力データは、仮想デバイスインスタンス１１８の仮想化入力デバイスのための入力に、または実際の入力デバイス１４８あるいはコンピューティングデバイス１１２の仮想入力デバイスのための入力に翻訳され得る。グラフィック表現２０６を回転させる等の、コンピューティングデバイス１１２のグラフィック表現２０６に対するアクションの実行を通し、追加制御２０９を提供して入力コマンドを生成することができ、その後加速度計または別のタイプの入力デバイス１４８を作動させてもよい。
【００５６】
スクリーン１４５は、コンピューティングデバイス１１２のパーソナライジングのためのアプリケーション１５４（図１）のグラフィック出力を描くが、これはこの例ではスマートフォンである。例えば、アプリケーション１５４の追加または除去、Ｅメールアカウントの管理、コンタクトの管理、セキュリティおよびプライバシー設定の構成、タッチスクリーンの構成、ユーザインタフェースの外観および感触の構成、壁紙の設定、生産性のパッケージソフト等の１つのバンドルまたは一組のアプリケーション１５４のインストール等の様々なアクションを実行し得る。１つの例では、ユーザは、デフォルトデバイス構成１３５から望ましくないアプリケーション１５４の除去を望む場合がある。ユーザは、コンピューティングデバイス１１２（またはその仮想化バージョン）と対話することができ、変更されたデバイス構成１３５をもたらす。言い換えると、例えば、アプリケーション１５４は、構成またはインストールされ得、ファイルは、アップロードまたは修正され得る。スクリーン１４５は、特定のパーソナライジングアプリケーション１５４を示すが、顧客は、オペレーティングシステムまたは他のアプリケーション１５４を用いた任意の方法で、コンピューティングデバイス１１２と対話することができることが理解される。
【００５７】
セッション終了コントロール２１２は、セッションを終了、および／または事前構成済みコンピューティングデバイス１１２の購入を続けるために提供され得る。この例では、セッション終了コントロール２１２は「スマートフォン発送」とラベル付けされる。セッション終了コントロール２１２が選択されると、ユーザによるコンピューティングデバイス１１２との対話セッションが終了し、修正済み構成を備えるコンピューティングデバイス１１２は、発送準備される。
【００５８】
次に図３を参照すると、様々な実施形態に従う電子商用アプリケーション１１７ の部分の操作の一例を提供するフローチャートが示されている。図３のフローチャートは、ここに説明されている電子商用アプリケーション１１７の部分の操作を実施するために採用され得る多くの異なるタイプの機能配列の例を単に提供していることを理解されたい。代替的に、図３のフローチャートは、１つまたは複数の実施形態に従ってコンピューティングデバイス１０３（図１）で実施される方法の各ステップ例を描くものと理解してもよい。
【００５９】
ボックス３０３から始めると、電子商用アプリケーション１１７は、クライアント１０６（図１）におけるユーザからコンピューティングデバイス１１２（図１）の注文を取得する。ボックス３０６では電子商用アプリケーション１１７は、コンピューティングデバイス１１２またはコンピューティングデバイス１１２の仮想化バージョンに対応する仮想デバイスインスタンス１１８（図１）の事前構成あるいは使用のためにユーザにアクセス権限を与える。他の実施形態では、ユーザが注文を行う前に、コンピューティングデバイス１１２または仮想デバイスインスタンス１１８に対するアクセス権をユーザに与えてもよい。
【００６０】
アクセス権限を与える際、コンピューティングデバイス１１２または仮想デバイスインスタンス１１８は、デバイス構成アプリケーション１１６（図１）により、デフォルト構成で事前構成されてもよい。その後、サーバアプリケーション１１５ （図１）の提供するユーザインタフェースにより、ユーザは仮想デバイスインスタンス１１８またはコンピューティングデバイス１１２にアクセスし得る。
【００６１】
ボックス３０９では、電子商用アプリケーション１１７は仮想デバイスインスタンス１１８が事前構成されたかを判定する。仮想デバイスインスタンス１１８が事前構成された場合、電子商用アプリケーション１１７は、仮想デバイスインスタンス１１８のデバイス構成１３５（図１）のボックス３１２内の物理的コンピューティングデバイス１１２へのコピーまたは複製を開始する。電子商用アプリケーション１１７は、その後、ボックス３１５に進む。仮想デバイスインスタンス１１８が事前構成されていない場合、ユーザによって事前構成されたコンピューティングデバイス１１２は、ユーザに発送され得る。あるいは、事前構成されたコンピューティングデバイス１１２のデバイス構成１３５は、別のコンピューティングデバイス１１２にコピーされ得る。その後、電子商用アプリケーション１１７は、ボックス３０９からボックス３１５にも進む。
【００６２】
ボックス３１５では、電子商用アプリケーション１１７は、事前構成されたコンピューティングデバイス１１２のためにユーザによる注文の履行を開始する。例えば、事前構成されたコンピューティングデバイス１１２はネットワーク１０９から切り離され、発送のために物理的に包装される。ボックス３１８では、電子商用アプリケーション１１７は、事前構成されたコンピューティングデバイス１１２はギフトであるかを判定する。事前構成されたコンピューティングデバイス１１２がギフトである場合、電子商用アプリケーション１１７は、ボックス３２１に続き、ユーザデータ１３７（図１）内でユーザによって指定されたギフトの受取人の住所への注文の発送を開始する。その後、電子商用アプリケーション１１７の部分は終了する。さもなければ、事前構成されたコンピューティングデバイス１１２がギフトではない場合、事前構成された電子商用アプリケーション１１７は、ボックス３２４に進み、ユーザデータ１３７内で指定されたユーザの住所への注文の発送を開始する。その後、電子商用アプリケーション１１７部分は終了する。
【００６３】
図３は事前構成されたコンピューティングデバイス１１２の発送に関連するものであるが、コンピューティングデバイス１１２は本開示の原則に従って作成されたカスタマイズ済みデバイス構成１３５で、顧客の受け取り後に更新可能であることを理解されたい。例えば、デバイス構成１３５をネットワーク１０９（図１）を介してダウンロードし、その後にコンピューティングデバイス１１２によって採用されてもよい。その様なアクションは、コンピューティングデバイス１１２が１つの実施形態において最初に電源オンされてネットワーク１０９に接続されたときに自動的に実施されてもよい。さらに、カスタマイズされたデバイス構成１３５は、希望する任意の数のコンピューティングデバイス１１２に複製されてもよい。
【００６４】
ここで図４Ａおよび図４Ｂに切り替わると、様々な実施形態に従うサーバアプリケーション１１５の部分の操作の一例を提供するフローチャートが示されている。図４Ａおよび４Ｂのフローチャートは、採用されて本書に解説されているサーバアプリケーション１１５部分の操作を実施し得る機能配列の多数の異なるタイプの例を単に提供するものであることを理解されたい。代替的に、図４Ａおよび４Ｂのフローチャートは、１つまたは複数の実施形態に従ってコンピューティングデバイス１０３（図１）内で実施される方法の各ステップの例を描くものとして理解されてもよい。
【００６５】
図４Ａのボックス４０３から開始すると、サーバアプリケーション１１５はクライアント１０６（図１）のユーザからコンピューティングデバイス１１２（図１）の構成の要求を取得する。ユーザは事前構成を行うコンピューティングデバイス１１２を購入済みであるか、あるいはユーザは購入を検討中でコンピューティングデバイス１１２のテストを希望している場合もある。その要求は、ユーザが権限を有するかに基づいて認められるか拒否され得る。ボックス４０６では、サーバアプリケーション１１５は、ユーザがアクセス権を得るために、仮想デバイスインスタンス１１８（図１）が採用されるかを判定する。拒否される場合、サーバアプリケーション１１５は、図４Ｂに進む。仮想デバイスインスタンス１１８が採用される場合、サーバアプリケーション１１５は、代わりにボックス４０６からボックス４０９に続く。
【００６６】
ボックス４０９では、アプリケーション１１５は、デフォルトデバイス構成１３５（図１）を有する仮想デバイスインスタンス１１８を実行する。ボックス４１２では、サーバアプリケーション１１５は仮想デバイスインスタンス１１８と対話するためのユーザインタフェースを生成する。サーバアプリケーション１１５はその後ユーザインタフェースをクライアント１０６に送信する。１つの実施形態では、ユーザインタフェースはデバイスインタフェース１３３（図１）から生成されるコンピューティングデバイス１１２のグラフィック表現を含む。ボックス４１５では、サーバアプリケーション１１５は、仮想デバイスインスタンス１１８によって生成されるビデオおよび／または音声信号、メディア符号器１２０（図１）を使用してメディアストリームに符号化する。
【００６７】
ボックス４１８では、サーバアプリケーション１１５はネットワーク１０９（図１）を介してクライアント１０６にメディアストリームを送信する。ボックス４２１では、サーバアプリケーション１１５はクライアント１０６から入力データを取得する。ボックス４２４ではサーバアプリケーション１１５は、入力データを仮想デバイスインスタンス１１８に提供する。少なくとも入力データの一部分は、仮想デバイスインスタンス１１８のデバイス構成１３５に対する変更をもたらす。ボックス４２７では、サーバアプリケーション１１５は、さらに入力データがクライアント１０６から現れるかを判定する。さらなる入力データが現れる場合、サーバアプリケーション１１５は、ボックス４２１に戻り、クライアント１０６から入力データを取得する。
【００６８】
それ以上入力データが現れない場合、サーバアプリケーション１１５は代わりにボックス４３０に進み、セッションを終了するかを判定する。セッションが終了されない場合に、サーバアプリケーション１１５は、ボックス４１５に戻り、メディアストリームの符号化を続ける。セッションが終了される場合、サーバアプリケーション１１５は、ボックス４３０からボックス４３３に進む。ボックス４３３では、サーバアプリケーション１１５は、ユーザによって事前構成されるか、カスタマイズされるか、またはパーソナライズされた仮想デバイスインスタンス１１８のデバイス構成１３５を記憶する。その後、サーバアプリケーション１１５のその部分は終了する。
【００６９】
仮想デバイスインスタンス１１８が採用されない場合、サーバアプリケーション１１５は、図４Ｂのボックス４０６からボックス４５０に進む。ボックス４５０では、サーバアプリケーション１１５は、ネットワーク環境１００において、デフォルトデバイス構成１３５を有するコンピューティングデバイス１１２を識別する。どのコンピューティングデバイス１１２にもデフォルト構成を有しない場合、サーバアプリケーション１１５は、デバイス構成アプリケーション１１６（図１）によって、コンピューティングデバイス１１２の１つへのデフォルトデバイス構成１３５のコピーを開始してもよい。
【００７０】
ボックス４５３では、サーバアプリケーション１１５はコンピューティングデバイス１１２と対話するためのユーザインタフェースを生成する。サーバアプリケーション１１５は次にユーザインタフェースをクライアント１０６に送信する。１つの実施形態では、ユーザインタフェースは、デバイスインタフェース１３３から生成されるコンピューティングデバイス１１２のグラフィック表現を含む。ボックス４５６では、サーバアプリケーション１１５はコンピューティングデバイス１１２からメディアストリームを取得する。
【００７１】
ボックス４５９では、サーバアプリケーション１１５はメディアストリームをネットワーク１０９を介してクライアント１０６に送信する。ボックス４６２では、サーバアプリケーション１１５はクライアント１０６から入力データを取得する。ボックス４６５では、サーバアプリケーション１１５は入力データをコンピューティングデバイス１１２に提供する。入力データの少なくとも一部分はコンピューティングデバイス１１２のデバイス構成１３５に対する変更という結果をもたらす。ボックス４６８では、サーバアプリケーション１１５は、クライアント１０６からさらに入力データが現れるかを判定する。さらに入力データが現れる場合、サーバアプリケーション１１５は、ボックス４６２に戻り、クライアント１０６から入力データを取得する。
【００７２】
さらに入力データが現れない場合、サーバアプリケーション１１５は、代わりにボックス４７１に進み、セッションが終了されたかを判定する。セッションが終了されていない場合、サーバアプリケーション１１５は、ボックス４５６に戻り、メディアストリームの取得を続ける。セッションが終了された場合、サーバアプリケーション１１５は、ボックス４７１からボックス４７４に進む。ボックス４７４では、サーバアプリケーション１１５は、コンピューティングデバイス１１２の発送の準備する。例えば、サーバアプリケーション１１５は潔くコンピューティングデバイス１１２をシャットダウンし得る。その後、サーバアプリケーション１１５のその部分は終了する。
【００７３】
図５に続けると、様々な実施形態に従う遠隔アクセスアプリケーション１５７の部分の操作の一例を提供するフローチャートが示されている。図５のフローチャートは、ここに説明されている遠隔アクセスアプリケーション１５７の部分の操作を実施するために採用し得る、多くの異なるタイプの機能配列の例を単に提供していると理解されてよい。代替的に、図５のフローチャートは、１つまたは複数の実施形態に従って、コンピューティングデバイス１１２（図１）において実施される方法の各ステップの例を描いているものと理解されてもよい。
【００７４】
ボックス５０３から開始し、遠隔アクセスアプリケーション１５７はクライアント１０６（図１）のユーザと対話セッションを開始する。１つの実施形態では、遠隔アクセスアプリケーション１５７はクライアント１０６と直接通信する。別の実施形態では、遠隔アクセスアプリケーション１５７はサーバアプリケーション１１５を介してクライアント１０６と通信する。ボックス５０６では、遠隔アクセスアプリケーション１５７は、コンピューティングデバイス１１２により生成されるビデオ信号および／または音声信号を取得する。ボックス５０９では、遠隔アクセスアプリケーション１５７は、メディア符号器１２０（図１）を使用して、ビデオ信号および／または音声信号をメディアストリームに符号化する。ボックス５１２では遠隔アクセスアプリケーション１５７ はメディアストリームをクライアント１０６に送信する。
【００７５】
ボックス５１５では、遠隔アクセスアプリケーション１５７は入力データをクライアント１０６から取得する。 ボックス５１８では、遠隔アクセスアプリケーション１５７は入力データをコンピューティングデバイス１１２で実行される１つまたは複数のアプリケーション１５４（図１）に提供する。 少なくとも入力データの一部分は、コンピューティングデバイス１１２のデバイス構成１３５（図１）に対する変更に影響し得る。 ボックス５２１では、遠隔アクセスアプリケーション１５７はさらに入力データが取得されるかを判定する。
【００７６】
さらに入力データが取得される場合、遠隔アクセスアプリケーション１５７は、ボックス５１５に戻り、入力データをクライアント１０６から取得する。さらなる入力データが取得されない場合、遠隔アクセスアプリケーション１５７は、ボックス５２４に続く。ボックス５２４では、遠隔アクセスアプリケーション１５７は、セッションが終了されるかを判定する。セッションが終了されていない場合、遠隔アクセスアプリケーション１５７は、ボックス５０６に戻り、ビデオおよび／または音声信号の取得を続ける。さもなければ、遠隔アクセスアプリケーション１５７のその部分は終了する。
【００７７】
図６を参照すると、本開示の実施形態に従うコンピューティングデバイス１０３の略ブロック図が示されている。コンピューティングデバイス１０３は少なくとも１つのプロセッサ回路を含み、これは、例えば、そのすべてがローカルインタフェース６０９と組み合わされる、プロセッサ６０３、メモリ６０６、および１つまたは複数のグラフィックデバイス６０７を有する。その目的のため、コンピューティングデバイス１０３は、例えば、少なくとも１つのサーバコンピュータまたは同様のデバイスを備えてよい。ローカルインタフェース６０９は、例えば、付随する住所／コントロールバスを備えるデータバス、または評価可能な他のバス構造を備えてよい。グラフィックデバイス６０７は、１つまたは複数のグラフィックプロセッサ６１２を含む高性能グラフィックハードウエアに対応し得る。グラフィックデバイス６０７は、コンピューティングデバイス１０３内で実行される仮想デバイスインスタンス１１８に対応するグラフィックを描写するように構成される。
【００７８】
メモリ６０６に記憶されているものは、データと、プロセッサ６０３により実行可能ないくつかの構成要素の両方である。特にメモリ６０６に記憶され、プロセッサ６０３により実行可能なものは、サーバアプリケーション１１５、デバイス構成アプリケーション１１６、電子商用アプリケーション１１７、仮想デバイスインスタンス１１８、メディア符号器１２０であり、また他のアプリケーションも可能である。さらにメモリ６０６に記憶されているものは、データストア１１３および他のデータとしてもよい。さらに、オペレーティングシステムはメモリ６０６に記憶し、プロセッサ６０３により実行可能としてもよい。
【００７９】
メモリ６０６に記憶され、評価可能なものとしてプロセッサ６０３ によって実行可能な他のアプリケーションもあり得ることを理解されたい。本明細書で論じられるあらゆる構成要素がソフトウェアの形式で実装される場合、例えば、Ｃ、Ｃ＋＋、Ｃ＃、Ｏｂｊｅｃｔｉｖｅ  Ｃ、Ｊａｖａ（登録商標）、ＪａｖａＳｃｒｉｐｔ（登録商標）、Ｐｅｒｌ、ＰＨＰ、Ｖｉｓｕａｌ  Ｂａｓｉｃ（登録商標）、Ｐｙｔｈｏｎ（登録商標）、Ｒｕｂｙ、Ｄｅｌｐｈｉ（登録商標）、Ｆｌａｓｈ（登録商標）、または他のプログラミング言語等の数多くのプログラミング言語の任意の１つを採用し得る。
【００８０】
多数のソフトウェア構成要素が、メモリ６０６に記憶され、プロセッサ６０３に実行可能である。この点において、用語「実行可能」は、プロセッサ６０３により最終的には実行可能な形式のプログラムファイルを意味する。実行可能プログラムの例は、例えば、メモリ６０６のランダムアクセス部分へロード可能であり、またプロセッサ６０３により実行される形式のマシンコードに翻訳可能なコンパイルされたプログラム、メモリ６０６のランダムアクセス部分にロード可能で、プロセッサ６０３により実行されるオブジェクトコード等の適切な形式で表現され得るソースコード、あるいは、プロセッサ６０３により実行されるメモリ６０６のランダムアクセス部分における命令を生成するための別の実行可能プログラムによって解釈され得るソースコード等である。実行可能プログラムはメモリ６０６の任意の部分または構成要素内に記憶されてよく、それらに含まれるのは、例えばランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、ハードドライブ、ソリッドステートドライブ、ＵＳＢフラッシュドライブ、メモリカード、コンパクトディスク（ＣＤ）またはデジタル汎用ディスク（ＤＶＤ）等の光ディスク、フロッピディスク、磁気テープ、または他のメモリ構成要素である。
【００８１】
メモリ６０６は、揮発性および非揮発性の両方のメモリならびにデータ記憶構成要素を含むものとしてここでは定義される。揮発性構成要素は電源が失われた際にデータ値を保持しないものである。非揮発性構成要素は、電源が失われた際にデータを保持するものである。したがってメモリ６０６は、例えば、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、ハードディスクドライブ、ソリッドステートドライブ、ＵＳＢフラッシュドライブ、メモリカードリーダを介してアクセスされるメモリカード、関連するフロッピディスクドライブを介してアクセスされるフロッピディスク、光ディスクドライブを介してアクセスされる光ディスク、適切なテープドライブを介してアクセスされる磁気テープ、および／または他のメモリ構成要素、あるいは任意の２つまたはそれ以上のこれらのメモリ構成要素の組み合わせを含んでよい。さらに、ＲＡＭは、例えば、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）または磁気ランダムアクセスメモリ（ＭＲＡＭ）および他のそのようなデバイスを含んでよい。ＲＯＭは、プログラム可能読み取り専用メモリ（ＰＲＯＭ）、消去可能なプログラム可能読み取り専用メモリ（ＥＰＲＯＭ）、電気的消去可能なプログラム可能読み取り専用メモリ（ＥＥＰＲＯＭ）、または他のそのようなメモリデバイスを含んでよい。
【００８２】
また、プロセッサ６０３は複数のプロセッサ６０３を代表してもよく、そしてメモリ６０６はそれぞれ並列処理回路で動作する複数のメモリ６０６を代表してもよい。そのような例では、ローカルインタフェース６０９は、複数のプロセッサ６０３の任意の２つの間、任意のプロセッサ６０３と任意のメモリ６０６の間、または、メモリ６０６の任意の２つの間等の通信を促進する適切なネットワーク１０９（図１）であってもよい。ローカルインタフェース６０９は、例えば、負荷バランシングの実行を含む、この通信をまとめるように設計された追加システムを含んでもよい。プロセッサ６０３は電気的であっても、あるいはその他の利用可能構造であってもよい。 
【００８３】
サーバアプリケーション１１５、デバイス構成アプリケーション１１６、電子商用アプリケーション１１７、仮想デバイスインスタンス１１８、メディア符号器１２０、アプリケーション１５４（図１）、遠隔アクセスアプリケーション１５７（図１）、クライアントアプリケーション１７２（図１）、およびここに記載される他の様々なシステムは、前述の汎用ハードウエアにより実行されるソフトウェアまたはコードへ具現化し得るが、代替的に、それらは専用ハードウエア、あるいはソフトウェア／汎用ハードウエアおよび専用ハードウェアの組み合わせでも具現化され得る。専用ハードウェアで具現化される場合、それぞれは、任意の１つのまたは多数の技術の組み合わせを採用する回路またはステートマシンとして実装可能である。これらの技術は、それに限定されないが、１つまたは複数のデータ信号、適切な論理ゲートを有するアプリケーション固有の統合回路、あるいは他の構成要素等の適用時に、様々な論理機能を実装する論理ゲートを有する分散論理回路を含み得る。それらの技術は当業者には一般によく知られており、したがって本明細書では詳細に解説されない。
【００８４】
図３−５のフローチャートは、電子商用アプリケーション１１７、サーバアプリケーション１１５、および遠隔アクセスアプリケーション１５７の各部分の実装に関する機能性および操作を示す。ソフトウェアで具現化された場合、各ブロックはモジュール、セグメント、または指定された論理機能を実装するためのプログラム命令を含むコード部分を表現し得る。プログラム命令は、コンピュータシステムまたは他のシステムにおいてプロセッサ６０３等の適切な実行システムによって認識され得る数値命令を含むマシンコードまたはプログラミング言語で書かれた、人が読むことのできるステートメントを含むソースコードの形式で具現化される。マシンコードはソースコード等から変換され得る。ハードウェアに具現化される場合、各ブロックは指定された論理機能を実装するための回路または多数の相互接続回路を代表してもよい。
【００８５】
図３〜５のフローチャートは、実行の特定の順序を示すが、実行の順序は描かれるものとは異なる場合もあることを理解されたい。例えば、２つまたは複数のブロックの実行の順序は、示されている順序と比べて混ぜられてもよい。また、図３〜５中に連続して示される２つ以上のブロックは、並行してあるいは部分的に並行して実行されてよい。さらに、いくつかの実施形態では、図３〜５に示される１つまたは複数のブロックは、跳ばしたりあるいは省略されてよい。さらに、任意の数のカウンタ、状態変数、警告セマフォ、またはメッセージを、ユーティリティの強化、アカウンティング、性能測定、または問題解決援助の提供等の目的のために、ここに記載される論理的流れに加え得る。そのようなバリエーションは全て本開示の範囲内にあることを理解されたい。
【００８６】
また、サーバアプリケーション１１５、デバイス構成アプリケーション１１６、電子商用アプリケーション１１７、仮想デバイスインスタンス１１８、メディア符号器１２０、アプリケーション１５４、遠隔アクセスアプリケーション１５７、クライアントアプリケーション１７２、を含むここで説明される任意の論理回路またはアプリケーションで、ソフトウェアまたはコードを含むものは、例えば、コンピュータシステムまたは他のシステム内のプロセッサ６０３等の命令実行システムにより、またはそれと接続されて使用されるために、任意の非一時的なコンピュータ可読型媒体に具現化可能である。この意味では、論理回路は、コンピュータ可読型媒体から取り出され、命令実行システムによって実行される命令および宣言を含むステートメントを含んでよい。本開示の文脈では、「コンピュータ可読媒体」は、命令実行システムによって、またはそれと接続されて使用するための、ここに説明される論理またはアプリケーションを含む、記憶する、あるいは維持することが可能な任意の媒体が可能である。コンピュータ可読媒体は、例えば、磁気、光、または半導体媒体等の多くの物理的媒体の任意の１つを含み得る。適切なコンピュータ可読媒体のより具体的な例は、それらには限定されないが、磁気テープ、磁気フロッピィディスケット、磁気ハードドライブ、メモリカード、ソリッドステートドライブ、ＵＳＢフラッシュドライブ、または光ディスクを含むであろう。またコンピュータ可読媒体は、例えば、スタティックラム（ＳＲＡＭ）およびダイナミックラム（ＤＲＡＭ）または磁気ラム（ＭＲＡＭ）を含むランダムアクセスメモリ（ＲＡＭ）が可能である。さらに、コンピュータ可読媒体は、読み取り専用メモリ（ＲＯＭ）、プログラム可能読み取り専用メモリ（ＰＲＯＭ）、消去可能プログラム可能読み取り専用メモリ（ＥＰＲＯＭ）、電気的消去可能プログラム可能読み取り専用メモリ（ＥＥＰＲＯＭ）、または他のタイプのメモリデバイスが可能である。
【００８７】
付記
１．
コンピューティングデバイスにおいて実行可能なプログラムを具現化する非一時的なコンピュータ可読媒体であって、前記プログラムが、
コンピューティングデバイスの仮想化バージョンを実行するコードと、
前記コンピューティングデバイスの前記仮想化バージョンによって生成されるビデオ信号および音声信号をメディアストリームに符号化するコードと、
グラフィック表現のスクリーンが、前記メディアストリームの前記ビデオ信号を示すように構成される、前記コンピューティングデバイスの前記グラフィック表現を含むユーザインタフェースを生成するコードと、
前記ユーザインタフェースおよび前記メディアストリームをクライアントに送信するコードと、
入力データの少なくとも一部が、前記コンピューティングデバイスの前記仮想化バージョンの構成に対する変更を生じさせる、前記クライアントにおいてユーザから前記入力データを取得し、かつ前記入力データを前記コンピューティングデバイスの前記仮想化バージョンに提供するコードと、
前記クライアントにおいて前記ユーザから前記コンピューティングデバイスの物理的バージョンの注文を取得するコードと、
前記構成が、前記コンピューティングデバイスの前記物理的バージョンによって採用される、前記コンピューティングデバイスの前記仮想化バージョンの前記構成の前記コンピューティングデバイスの前記物理的バージョンへのコピーを開始するコードと、
前記コンピューティングデバイスの前記物理的バージョンの前記ユーザに関連付けられた住所への発送を開始するコードと、
を含む、非一時的なコンピュータ可読媒体。
【００８８】
２．
少なくとも１つのコンピューティングデバイスと、
前記少なくとも１つのコンピューティングデバイスにおいて実行可能な少なくとも１つのアプリケーションと、を備える、システムであって、
前記少なくとも１つのアプリケーションが、
コンピューティングデバイスの仮想化バージョンを実行する論理と、
前記コンピューティングデバイスの前記仮想化バージョンによって生成される視覚表示をメディアストリームに符号化して、前記メディアストリームをクライアントに送信する論理と、
入力データの少なくとも一部が、前記コンピューティングデバイスの前記仮想化バージョンの構成に変化を生じさせる、クライアントから前記入力データを取得し、かつ前記入力データを前記コンピューティングデバイスの前記仮想化バージョンに提供する論理と、
前記構成が、前記コンピューティングデバイスの物理的バージョンによって採用される、前記コンピューティングデバイスの前記仮想化バージョンの前記構成を前記コンピューティングデバイスの物理的バージョンにコピーすることを開始する論理と、
を備える、システム。
【００８９】
３．
前記視覚表示が、ビデオ信号である、付記２に記載のシステム。
【００９０】
４．
前記少なくとも１つのアプリケーションが、前記コンピューティングデバイスの前記仮想化バージョンによって生成される音声信号を前記メディアストリームに符号化する論理をさらに備える、付記２に記載のシステム。
【００９１】
５．
前記構成に対する前記変更が、前記コンピューティングデバイスの前記仮想化バージョンにおいて実行されるアプリケーションの構成に対する変更に対応する、付記２に記載のシステム。
【００９２】
６．
前記構成に対する前記変更が、前記コンピューティングデバイスの前記仮想化バージョンにおけるアプリケーションのインストレーションに対応する、付記２に記載のシステム。
【００９３】
７．
前記少なくとも１つのアプリケーションが、前記インストレーションに対して前記アプリケーションの購入を促進する論理をさらに備える、付記６に記載のシステム。
【００９４】
８．
前記構成に対する前記変更が、前記コンピューティングデバイスの前記仮想化バージョンにおける一組のアプリケーションのインストレーションに対応する、付記２に記載のシステム。
【００９５】
９．
前記構成に対する前記変更が、前記コンピューティングデバイスの前記仮想化バージョンにおけるアプリケーションの除去に対応する、付記２に記載のシステム。
【００９６】
１０．
前記構成に対する前記変更が、少なくとも１つのファイルの前記コンピューティングデバイスの前記仮想化バージョンへのアップロードに対応する、付記２に記載のシステム。      
【００９７】
１１．
前記少なくとも１つのアプリケーションが、
ユーザから前記コンピューティングデバイスの前記物理的バージョンの注文を取得する論理と、
前記注文に応答して、前記ユーザによる前記コンピューティングデバイスの前記仮想化バージョンへのアクセスを促進する論理と、
をさらに備える、付記２に記載のシステム。
【００９８】
１２．
前記少なくとも１つのアプリケーションが、
前記クライアントにおけるユーザが前記コンピューティングデバイスの前記仮想化バージョンの前記構成に対する前記変更を生じさせた後に、前記ユーザから前記コンピューティングデバイスの前記物理的バージョンの注文を取得する論理をさらに備え、
開始する前記論理が、前記注文に応答して、前記構成の前記コピーを開始するように構成される、付記２に記載のシステム。
【００９９】
１３．
前記少なくとも１つのアプリケーションが、ユーザによる前記コンピューティングデバイスの前記物理的バージョンの注文の履行を開始する論理をさらに備える、付記２に記載のシステム。
【０１００】
１４．
前記少なくとも１つのアプリケーションが、
グラフィック表現のスクリーンが、前記メディアストリームの前記視覚表示を示すように構成される、前記コンピューティングデバイスの前記グラフィック表現を含むユーザインタフェースを生成する論理と、
前記ユーザインタフェースを前記クライアントに送信する論理と、
をさらに備える、付記２に記載のシステム。
【０１０１】
１５．
少なくとも１つのコンピューティングデバイスにおいて、コンピューティングデバイスのスクリーンに対応する前記コンピューティングデバイスによって生成される視覚表示を取得するステップと、
前記少なくとも１つのコンピューティングデバイスにおいて、前記視覚表示をメディアストリームに符号化するステップと、
前記少なくとも１つのコンピューティングデバイスにおいて、前記メディアストリームをクライアントに送信するステップと、
前記少なくとも１つのコンピューティングデバイスにおいて、前記クライアントでユーザから入力データを取得するステップと、
前記入力データの少なくとも一部が、前記コンピューティングデバイスの構成に対する変更を生じさせる、前記少なくとも１つのコンピューティングデバイスにおいて、前記入力データを前記コンピューティングデバイスに提供するステップと、
前記少なくとも１つのコンピューティングデバイスにおいて、変更される前記構成を有する前記コンピューティングデバイスの前記ユーザによる注文の履行を開始するステップと、
を含む、方法。
【０１０２】
１６．
前記変更が、アプリケーションのインストレーションに対応する、付記１５に記載の方法。
【０１０３】
１７．
前記少なくとも１つのコンピューティングデバイスにおいて、複数の前記コンピューティングデバイスをネットワーク環境で維持するステップをさらに含む、付記１５に記載の方法。
【０１０４】
１８．
グラフィック表現のスクリーンが、前記メディアストリームの前記視覚表示を表示するように構成される、前記少なくとも１つのコンピューティングデバイスにおいて、前記コンピューティングデバイスの前記グラフィック表現を含むユーザインタフェースを生成するステップと、
前記少なくとも１つのコンピューティングデバイスにおいて、前記ユーザインタフェースを前記クライアントに送信するステップと、
をさらに含む、付記１５に記載の方法。
【０１０５】
１９．
前記コンピューティングデバイスの前記グラフィック表現が、入力デバイスのグラフィック表現を含み、前記入力デバイスの前記グラフィック表現が、前記クライアントにおける前記ユーザによるグラフィック的選択に応答して、前記入力データの少なくとも一部を生成するように構成される、付記１８に記載の方法。
【０１０６】
２０．
変更される前記構成が、他方のコンピューティングデバイスによって採用される、前記少なくとも１つのコンピューティングデバイスにおいて、別のコンピューティングデバイスに対して変更される前記構成を複製するステップをさらに含む、付記１５に記載の方法。
【０１０７】
２１．
前記少なくとも１つのコンピューティングデバイスにおいて、前記注文の履行を開始するステップが、前記少なくとも１つのコンピューティングデバイスにおいて、前記ユーザに関連付けられる住所に対して変更される前記構成を有する前記コンピューティングデバイスの発送を開始するステップをさらに含む、付記１５に記載の方法。
【０１０８】
２２．
前記注文が、ギフト受取人への前記ユーザによるギフトに対応し、前記住所が、前記ギフト受取人に対応する、付記２１に記載の方法。
【０１０９】
２３．
前記少なくとも１つのコンピューティングデバイスにおいて、デフォルト構成を前記コンピューティングデバイスにコピーするステップをさらに含む、付記１５に記載の方法。
【０１１０】
２４．
前記少なくとも１つのコンピューティングデバイスにおいて、前記ユーザから前記注文を取得するステップと、
前記少なくとも１つのコンピューティングデバイスにおいて、前記注文に応答して、前記コンピューティングデバイスへの前記ユーザによる遠隔アクセスを許可するステップと、
をさらに含む、付記１５に記載の方法。
【０１１１】
２５．
前記少なくとも１つのコンピューティングデバイスにおいて、前記注文が取得される前に、前記コンピューティングデバイスへの前記ユーザによる遠隔アクセスを許可するステップと、
前記少なくとも１つのコンピューティングデバイスにおいて、前記ユーザからの前記注文を取得するステップと、を含み、
前記注文の履行が、前記注文の取得に応答して開始される、付記１５に記載の方法。
【０１１２】
本開示の上述の実施形態は、本開示の原則の明確な理解のために明記される実装の単なる可能例であることを強調しておく。多くのバリエーションおよび修正が、本開示の精神および原則から実質的に外れることなく、前述の実施形態（複数を含む）に対して行われ得る。すべてのそのような修正およびバリエーションは、本開示の範囲内で、本明細書中に含まれることが意図されており、以下の付記によって保護されている。
【０１１３】
「関連出願の相互参照」
本出願は、シリアル番号１３／１９１，５８５、２０１１年７月２７日出願の同時係属中の米国非仮出願「ＲＥＭＯＴＥＬＹ  ＰＲＥＣＯＮＦＩＧＵＲＩＮＧ  Ａ  ＣＯＭＰＵＴＩＮＧ  ＤＥＶＩＣＥ」に対する優先を主張するものであり、参照によりその全体が本明細書に組み込まれる。
【図１】
2014529116.tif 000003
【図２】
2014529116.tif 000004
【図３】
2014529116.tif 000005
【図４Ａ】
2014529116.tif 000006
【図４Ｂ】
2014529116.tif 000007
【図５】
2014529116.tif 000008
【図６】
2014529116.tif 000009
【国際調査報告】
2014529116.tif 000010