組み込み装置の代わりに仮想装置において動作するリモート処理に対して、前記組み込み装置において情報をキャプチャするコンピュータ実装方法であって、前記方法は、組み込み装置において、入力を、前記組み込み装置に取り付けられた1つもしくは複数のセンサまたは周辺装置から受信するステップと、前記入力を送信した前記組み込み装置を識別するステップと、装置識別を前記仮想装置に処理のために送信するステップと、前記受信した入力を前記仮想装置に処理のために送信するステップと、前記組み込み装置において、リモート処理結果を前記仮想装置から受信するステップと、前記組み込み装置において、前記仮想装置から受信した出力を提供するステップとを備え、前記各ステップは少なくとも1つのプロセッサによって実行されることを特徴とする方法。組み込み装置の入力を受信するステップは、前記組み込み装置の周囲の環境から1つまたは複数のタイプの入力データをキャプチャし、かつ前記入力を前記仮想装置に提供するステップを含むことを特徴とする請求項1に記載の方法。前記組み込み装置を識別するステップは、前記組み込み装置のタイプおよびインスタンス識別子を判定するステップを含み、前記インスタンス識別子は、同一タイプの装置の異なるインスタンスを区別することを特徴とする請求項1に記載の方法。前記装置識別を前記仮想装置へ送信するステップは、前記仮想装置が、前記組み込み装置からの入力をリモートで処理できるように、前記識別を、前記組み込み装置を接続するネットワークを介して、前記仮想装置に送信するステップを含むことを特徴とする請求項1に記載の方法。前記装置識別を前記仮想装置へ送信するステップは、セットアップ段階を実行し、1つまたは複数の連続する通信に使用する、前記仮想装置との通信のチャネルを開き、入力を前記仮想装置に提供し、かつ出力を前記仮想装置から受信するステップを含むことを特徴とする請求項1に記載の方法。前記受信した入力を送信するステップは、前記仮想装置が前記受信した入力上のアプリケーション固有処理を実行し、かつ前記組み込み装置に提供するための結果を生成することを要求するステップを含むことを特徴とする請求項1に記載の方法。リモート処理結果を受信するステップは、前記送信した入力を処理することが失敗したかまたは成功したかどうかを示す結果コードを受信するステップを含むことを特徴とする請求項1に記載の方法。リモート処理結果を受信するステップは、出力を、前記組み込み装置のユーザへの表示のために受信するステップを含むことを特徴とする請求項1に記載の方法。出力を提供するステップは、前記出力を、前記組み込み装置の1つまたは複数の出力周辺装置に提供し、前記組み込み装置の周囲の環境において動作を実行するステップを含むことを特徴とする請求項1に記載の方法。組み込み装置の少なくとも一部の機能を仮想装置にオフロードすることによって前記組み込み装置を仮想化するコンピュータシステムであって、前記システムは、以下のコンポーネント内に具現化されたソフトウェア命令を実行するように構成されたプロセッサおよびメモリを含み、前記コンポーネントは、組み込み装置において、前記組み込み装置に組み込まれた1つまたは複数の入力装置から入力をキャプチャするリモート入力コンポーネントと、出力を、組み込み装置において受信し、かつ前記出力をユーザまたは他のコンポーネントに提供するリモート出力コンポーネントと、前記仮想装置が任意のアプリケーション固有処理を提供することができるように、特定の組み込み装置を識別し、かつ前記仮想装置の処理コンポーネントに通知する装置識別コンポーネントと、前記組み込み装置と前記仮想装置との間の通信チャネルを提供する通信コンポーネントと、前記仮想装置において、前記組み込み装置の目的に関連する動作を実行するための処理リソースを提供する仮想装置処理コンポーネントと、前記仮想装置において、前記組み込み装置の代わりにデータを永続的に格納するためのストレージリソースを提供する仮想装置ストレージコンポーネントと、前記組み込み装置に対して設計されたアプリケーションに固有である1つまたは複数のプロセスを管理するアプリケーション固有ソフトウェアコンポーネントとを備えたことを特徴とするシステム。前記リモート入力コンポーネントは、前記通信コンポーネントを介した、前記入力を処理するリモート仮想装置への送信に対して受信した入力をパケージ化することを特徴とする請求項10に記載のシステム。前記装置識別コンポーネントは、前記仮想装置に、加入または支払いの状態を監視させることを可能とし、前記組み込み装置が前記仮想装置から1つまたは複数の識別されたサービスを要求することを許可されているかどうかを判定することを特徴とする請求項10に記載のシステム。前記通信コンポーネントは、前記装置との接続を生成するために前記組み込み装置に組み込まれたハードウェアと、前記接続を監視し、かつ前記仮想装置からの任意の受信された出力を処理する変更頻度の低いソフトウェアとを含むことを特徴とする請求項10に記載のシステム。前記仮想装置処理コンポーネントは、装置識別情報を前記装置識別コンポーネントから受信し、かつ前記アプリケーション固有ソフトウェアコンポーネントを起動し、前記識別された組み込み装置の前記動作に固有の任意のアプリケーションソフトウェアコードをロードすることを特徴とする請求項10に記載のシステム。前記アプリケーション固有ソフトウェアコンポーネントは、前記仮想装置の位置において、および前記組み込み装置からリモートで、組み込まれかつ一元的に使用されるソフトウェアコードを含み、前記ソフトウェアコードは、前記ソフトウェアを、前記組み込み装置を介することなく前記仮想装置において更新することにより、一元的に更新され、かつ管理されることを特徴とする請求項10に記載のシステム。本明細書には、組み込み装置の一般的なコンピュータ処理タスクを組み込み装置のアプリケーション固有周辺装置から分離して、装置の少なくとも一部の機能がサーバまたは他のコンピューティング装置すなわち、仮想装置にオフロードされることを可能とする装置仮想化システムが記載されている。極端な例では、システムを使用した仮想組み込み装置は、まさに、別の場所で実行している仮想化サーバに通信している入力と出力を提供するユーザの場所で実行しているリモート周辺装置のセットである。例えば、データセンターは、いくつかの仮想組み込み装置のための処理およびストレージ能力を提供できる。一例として、DVR機能を備えたセットトップボックスを考える。今日、DVRは、装置に組み込まれたローカルハードディスクドライブに基づいてストレージの一定量を有している。DVRは、ハードディスクドライブがいっぱいになり始めた場合に、古い記録番組を削除し始めおよび/または新しいものの記録を避けるようにプログラムされている。今日のDVRは、単一の目的を有する自己完結型の装置である。DVRを仮想化することにより、いくつかのコンポーネントおよび機能は、データセンターまたは他の場所に移動され得る。例えば、装置のためのストレージと処理能力がデータセンターにオフロードされ、一方で、家庭内にはチューナおよびオーディオ/ビジュアル装置への接続をそのまま残る。ユーザは、仮想化されたDVRがストレージスペースの不足にならないようなデータセンター内の事実上無制限のストレージのために支払うことができるであろう。また、この装置仮想化システムは、仮想組み込み装置の管理、設定および管理を大幅に簡素化する。装置のソフトウェアの多くが仮想化サーバ上で実行されるので、情報技術IT担当者は、仮想化サーバを管理し、いずれかの更新を適用し、発生した問題を診断するために割り当てられ得る。さらに、1つのサーバまたはサーバグループは、ユーザの多種多様性のために多種多様な仮想化された組み込み装置の仮想化サービスを提供するために使用され得る。IT担当者は、更新の適用や、設定上の問題の診断や、ユーザの環境で動作するように装置の設定の支援等を行うことができる。また、問題が識別されると、装置メーカーは、装置を仮想化するデータセンターへの入力および出力を監視することにより、多数の装置へのアクセスすることができる。これは大いにテストと問題の診断を簡素化する。また、メーカーは、ユーザの場所にはるかに安い装置を出荷することができ、仮想化された組み込み装置にその中核となる機能を付与する仮想化サーバによって提供するサービスの加入モデルに基づいて、ユーザに課金することができる。これにより、ユーザは、ファームウェアのフラッシング更新のメンテナンスや技術的な煩雑さ無しに定期的な更新の恩恵を受けることができる。複数の場所で、安くスリムダウンされた装置を設置することによって、複数のユーザはまた、単一の仮想化された装置の処理能力を共有することができ、コストを節約することができる。例えば、病院は、医師に様々な場所で、1つの病院に位置する単一の共有磁気共鳴イメージングMRIまたは他の診断機からの出力を提供する表示装置を提供することができる。よって、システムは、組み込み装置の有用性を高め、今日の組み込み装置よりも長い寿命とより広い様々な使用を可能とすることができる。装置仮想化システムは、サーバの能力、汎用性、場所およびコスト構造を活用して様々な組み込み装置の機能を提供する。多くの企業は、現在、今日、組み込み装置のいくつかタスクを実行することに適しているデータセンターを構築している。いくつかの実施形態において、仮想組み込み装置はハンドヘルド画面またはモニタを備えながら、全体の処理能力がどこかの離れた仮想サーバに常駐している。ユーザに対して、それらは本当の組み込み装置または仮想装置を使用しているかのように、シームレスである。例えば、医師/看護師だけが自分自身で簡単に運ぶことができるハンドヘルドスキャナを有していながら、彼らは離れた場所のどこかに座っている、MRI、超音波、または他の医療診断機を考えてみる。この診断機は、同時に複数のリクエストを処理できるようにするのに十分有能である。この方法は、複数の病院によって共有され、単一のチームによって維持された1つだけの有能なマシンが1か所にあり、メンテナンスのコストも同様に共有される故に、メンテナンスのコストが下がる。装置のための仮想化は、デスクトップクライアントおよびサーバのようなオペレーティングシステムレベルで仮想化することによって達成される。複数の分散装置とは対照的に、いずれかの更新は中央の装置にプッシュされる。これは仮想マシンを使用するのではなく、まさに、それ自体が仮想化のすべての利点を得ることができるように組み込み装置を仮想化している。これは何度も改良された物理的装置を販売するのではなく、装置のためのサービスベースのモデルを可能にする。例えば、この装置からただ1つの特定のサービスを使用する必要があるどんな病院の場合でも、彼らはまさにその1つのサービスのために支払うことができる。いくつかの実施形態において、各組み込み装置は、すべての処理能力がリモート仮想マシンにプッシュされるとダム端末のようなものである。これは、組み込み装置が今日に比べて多くの情報を処理するように見え、仮想マシンがデスクトップ、サーバ、メインフレームと同じくらい有能であり得るので、装置メーカーは処理能力だけでなく、フットプリントを心配する必要がなくなることを意味する。システムは、装置がデスクトップのクライアントとサーバとより同様に管理され得ることを可能とする。システムは、今日の組み込み装置に特化した知識を構築するのではなく、すべての装置のためのアプローチの一般化と標準化を可能にする。これは、より一貫性のある装置経験を構築するのに役立ち、ダム端末レベルで制御され得る解像度/表示および特定の周辺装置の変更だけで装置間に亘るアプリケーションを記述することを容易にし得る。この点で、組み込み装置は、デスクトップクライアントとサーバのように、よりシームレスである。1つの装置のために書かれたアプリケーションは、多くの組み込み装置のためにシームレス且つ相互に活用できる。これらの組み込み装置の後ろに座っている仮想マシンは、任意のアプリケーション、オペレーティングシステム、またはセキュリティパッチの更新を識別し、それらを、設定したポリシーに基づいてユーザの許可の有り/無しに応じ、ダウンロードすするおよび/またはスケジュールに組み込むことができる。これは、装置の経験を、メーカーから使用されている装置と関係なく、シンプルで、シームレスで、統合され、有能で、装置間の標準なものとなす。異なるメーカーは、彼らが生み出した経験と、彼らが仮想マシンのサポートおよびサービスを提供し得る処理能力とに基づいて市場を依然と制御することができる。これは、各装置の多くがクラウド内に存在する装置のためのサービスベースのモデルを使用して、より大きな柔軟性を可能にする。仮想装置は、広く多様な目的を果たすことができる。例えば、システムを実装するテレビは、データセンターにビデオデータの処理をオフロードすることができる。ビデオの再生は、ストレージフォーマットからの再生フォーマットへビデオおよびオーディオのデータを解凍して翻訳する1つまたは複数のコーデックの使用を典型的に含む。コーデックは時間の経過とともに変化して、更なる圧縮や、追加機能等例えば、多くのスピーカチャンネル、三次元データ等を追加する。組み込み装置は多くの場合、コーデックの更新に追いつくこと困難であり、特定タイプのコンテンツの再生ができなくなる可能性がある。今日では、これはメーカーがする場合、ファームウェアの更新を介して処理され、または、メーカーがしない場合、新しい装置の購入で処理されている。装置仮想化システムは、リモートデータセンタまたは他の場所で、頻繁に自動的に新しいコーデックおよび/またはその他の改良によって更新された処理を行うことができる。また、この装置仮想化システムは、追加のリモートサービスに加入することで、1つの組み込み装置が潜在的に複数の機能のために使用きるようになる。例えば、ゲーム機は、光学ドライブや、家庭でゲームをプレイするためのユーザのAV装置への接続を含むことができる。ユーザは、ゲーム機の光学ドライブを使用してムービーを再生する機能や、インターネットを閲覧する機能等の追加サービスに対して後で支払うことができる。装置は、これらのサービスのためのハードウェアを含み、付加機能を追加するために離れて格納された処理およびロジック回路を活用できる。ユーザはゲーム機等の装置を使用するための支払いを停止することができ、ユーザのための装置目的が時間の経過とともに変わる。図1は、一実施形態における装置仮想化システムのコンポーネントを示すブロック図である。システム100は、リモート入力コンポーネント110、リモート出力コンポーネント120、装置識別コンポーネント130、通信コンポーネント140、仮想装置処理コンポーネント150、仮想装置ストレージコンポーネント160およびアプリケーション固有ソフトウェアコンポーネント170を含む。これらのコンポーネント各々はそれぞれ、本明細書でさらに詳細に記載されている。組み込み装置において、リモート入力コンポーネント110は、組み込み装置に組み込まれた1つまたは複数の入力装置から入力を取得する。入力のタイプは、組み込み装置の目的に応じて変化する。DVRについては、入力は、テレビ番組を表す圧縮されたオーディオビジュアルデータの形式でのチューナ入力、または、ユーザが番組を記録しもしくはチャンネルを変更することを要求するためのリモコンから入力を含むことができる。病院のX線装置についは、入力は、X線イメージングデータを含むことができる。組み込み装置の数や種類は相当にあり、当業者は、リモート入力コンポーネント110への入力を提供することができる多くのタイプの装置を認識するであろう。しかし、従来のシステムとは異なり、リモート入力コンポーネント110は、通信コンポーネント140を介してリモート仮想化装置へ伝送するための入力をパケージ化する。リモート出力コンポーネント120は、組み込み装置で出力を受信し、出力を、ユーザまたは他のコンポーネントに提供する。出力は、画面またはモニタへの表示等のビジュアル出力、スピーカを通して音声の再生等のオーディオ出力、ロボットアームや他の周辺装置で対象物を移動するような機械出力等を含むことができる。出力のタイプは、組み込み装置の目的によって変化する。リモート出力コンポーネント120は、リモート仮想化装置を介して処理した後、通信コンポーネント140を経由して出力を受信する。従来の組み込み装置とは異なり、入力の処理の一部または全部はリモート仮想化装置で起こり、そして、ローカル組み込み装置は、入力を取得し、出力を提供することを主に担当している。装置識別コンポーネント130は、特定の組み込み装置を識別し、仮想装置がいずれかのアプリケーション固有処理を提供できるように、仮想装置処理コンポーネント150に通知する。仮想化装置は、様々な組み込み装置の処理および/またはストレージを行うことができ、そして装置識別コンポーネント130は、仮想化装置が処理を実行するための組み込み装置の種類およびインスタンスの両方を仮想化装置が理解することができるようにする。装置のタイプは、仮想化装置がいずれかの特別な処理を実行するために、アプリケーション固有ソフトウェアコンポーネント170を介していずれかのアプリケーション固有ソフトウェアコードを読み込むことを助ける。装置のインスタンスは、特定の組み込み装置に仮想装置のサービスを要求する権限があるかどうかを仮想装置が判断するための加入または支払いの状態を監視することを援助することができる。通信コンポーネント140は、組み込み装置と仮想装置の間の通信チャネルを提供する。チャネルは、インターネット等の公衆ネットワーク、同様に、企業ローカルエリアネットワークLAN等のプライベートネットワークを含むことができる。チャネルは、伝送制御プロトコルTCPまたはユーザデータグラムプロトコルUDP等のデータを転送するための周知の様々なプロトコルを使用することができる。通信コンポーネント140は、装置との接続を生成するために組み込み装置に組み込まれたハードウェア、同様に、その接続を監視していずれかの受信した出力を処理するための少量の頻度の低い変更ソフトウェアを含んでいてもよい。仮想装置処理コンポーネント150は、組み込み装置の目的に関連する動作を実行するための仮想装置での処理リソースを提供する。例えば、組み込み装置が冷蔵庫である場合、処理コンポーネント150は、温度を監視し、圧縮機に指定された温度に到達するまで実行する指示することができる。仮想装置処理コンポーネント150は、装置識別コンポーネント130から装置識別の情報を受信し、アプリケーション固有ソフトウェアコンポーネント170を呼び出し、識別された組み込み装置の動作に特定ないずれかのアプリケーションソフトウェアコードを読み込む。アプリケーションソフトウェアコードが更新されたバージョンに置き換えられた場合、仮想装置処理コンポーネント150は、いずれかの処理を行う前に、または自動的にもしくは仮想化装置を管理するIT担当者により決定された他のメンテナンスタスクを行う前に、アプリケーションソフトウェアコードを透過的に更新することができる。仮想装置処理コンポーネント150はまた、加入または他の基盤上で柔軟な処理リソースを提供しているMICROSOFT登録商標AZURE登録商標やAmazonEC2登録商標等のクラウドコンピューティングサービスへの処理タスクをエクスポートすることができる。全体のシステム100は、ユーザのサイトでのローカル組み込み装置が、入力を取得して出力を提供する一方でクラウドプラットフォームが処理、ストレージおよびその他のリソースを提供するように、クラウドプラットフォーム上に構築され得る。これは非常にスケーラブルなモデルを作成し、新たな組み込み装置をリリースするメーカーにとって価格の低下になる。組み込み装置自体を安くすることとオンラインサービスのための高価な構築コストを回避することの両方により、メーカーは、特定の問題の解決に焦点を当てることができる。装置/ソリューションの人気が大きくなるにつれて、メーカーは、より多くの組み込み装置を迅速に作成し、スムーズに拡張するクラウドプラットフォームのリソースをより多く利用することができる。仮想装置ストレージコンポーネント160は、組み込み装置に代わってデータを永続的に格納するためストレージリソースを仮想化装置にて提供する。ストレージリソースは、1つまたは複数のメモリ内のデータ構造、ファイル、ファイルシステム、ハードディスクドライブ、外部ストレージ、データベース、ストレージエリアネットワークSAN、クラウドベースのストレージサービス、または組み込み装置での通信の間でデータを永続的に格納するためのその他の機能を含むことができる。例えば、組み込み装置がDVRまたはバックアップ装置等のコンテンツへのアクセスを提供する場合、仮想装置ストレージコンポーネント160は、オーディオビジュアルファイルを格納し、または組み込み装置に代わってデータをバックアップしてもよい。ユーザは固定サイズの従来のバックアップ装置を購入するより、むしろ、ユーザが必要とするまたは支払いたいだけのストレージをユーザに提供する仮想装置と通信するバックアップ装置を購入することができる。時間が経つにつれて、ユーザのニーズは、多かれ少なかれストレージが必要とされるように変更される場合があるが、ユーザは、同じ組み込み装置の有用性を取得し、ニーズの変化に基づいてユーザの加入プランを調整し続けることができる。アプリケーション固有ソフトウェアコンポーネント170は、アプリケーションのために組み込み装置が設計されている当該アプリケーションに固有のいずれかのプロセスを管理する。コンポーネント170はソフトウェアコードおよびハードウェアコンポーネントを含み、これらは仮想化装置の位置で且つ組み込み装置から離れた位置で一元的に組み込まれて使用され得る。ここで、アプリケーション固有ソフトウェアコンポーネント170はソフトウェアコードを表し、ソフトウェアコードは、様々な場所に存在する様々な組み込み装置へのアクセスすることまたはその知識がなくても仮想化装置にてソフトウェアを更新することによって、一元的に更新され管理され得る。更新した後の次回にユーザが組み込み装置を使用すると、ユーザは、装置が新しい機能で更新されていること、または仮想化装置で発生した更新に基づいてエラーが修正されていることを単に発見することができる。特定の仮想サーバは、必要に応じて複数のアプリケーション固有ソフトウェアコンポーネント170を格納し読み込むことにより、様々なタイプの組み込み装置および目的のための処理およびストレージのサービスを提供することができる。装置仮想化システムが実装されるコンピューティング装置は、中央処理装置、メモリ、入力装置例えば、キーボードおよびポインティング装置、出力装置例えば、表示装置およびストレージ例えば、ディスクドライブまたは他の不揮発性ストレージ媒体を含むことができる。メモリおよびストレージの装置は、システムの実装または有効化のコンピュータ実行可能命令例えば、ソフトウェアを用いて符号化され得るコンピュータ読み取り可能なストレージ媒体である。また、データ構造およびメッセージ構造は、通信リンク上の信号等のデータ伝送媒体を介して格納または伝送され得る。種々の通信リンクは、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、ポイントツーポイントダイヤルアップ接続、携帯電話ネットワーク等として使用され得る。システムの実施形態は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドもしくはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能家庭用電化製品、デジタルカメラ、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたは装置のいずれかを含む分散型コンピューティング環境、セットトップボックス、システムオンチップSOCに等を含む様々な動作環境で実施され得る。コンピュータシステムは、携帯電話、パーソナルデジタルアシスタント、スマートホン、パーソナルコンピュータ、プログラマブル家庭用電化製品、デジタルカメラ等であってもよい。システムは、1つまたは複数のコンピュータまたは他の装置によって実行されるプログラムモジュール等のコンピュータ実行可能命令の一般的文脈で説明され得る。一般に、プログラムモジュールは、特定のタスクを実行するかまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。典型的には、プログラムモジュールの機能は、様々な実施形態において望まれるように組み合わせまたは分散させられ得る。図2は、一実施形態におけるリモート処理のための仮想組み込み装置で情報を取得する装置仮想化システムの処理を示すフロー図である。ブロック210に始まり、システムは、組み込み装置に取り付けられた1つまたは複数のセンサまたは周辺装置からの入力を、組み込み装置において受信する。組み込み装置はセンサの入力を仮想装置へ提供し、当該仮想装置は、データセンターや他の集中化された場所内に配置され、または、組み込み装置と潜在的に1つまたは複数の他の組み込み装置へ処理、ストレージもしくはその他のリソースを提供する組み込み装置に連結されたコンピューティングシステム上に配置されている。組み込み装置は、仮想装置への入力を提供し且つ仮想装置からの出力を受信するインターネットまたはプライベートネットワークを介して、仮想装置に接続され得る。組み込み装置内に設置したセンサまたは周辺装置は、組み込み装置を周囲の環境からの入力データを1つまたは複数のタイプを取得し、仮想装置への入力を提供する。例えば、データは、チューナ入力、温度入力、音声入力、ビデオ入力、機械的な入力等を含むことができる。続いてブロック220にて、システムは、入力が受信された組み込み装置を識別する。組み込み装置は、読み取り専用メモリROMまたは他のローカルストレージ内に格納された装置のタイプおよび/またはインスタンスを識別する装置識別子を含むことができる。タイプは組み込み装置の目的を指定することができ、一方で、インスタンスはシリアル番号または同一タイプの装置を区別するための他の実質的に一意の識別子を指定することができる。組み込み装置は、仮想装置が受信した入力を処理する方法を知見するように、仮想装置に装置識別子を提供する。続いてブロック230にて、システムは処理のために仮想装置に装置識別を送信する。組み込み装置は、接続されたネットワークを介して装置識別子を送信して、セットアップ段階を実行し、該セットアップ段階の間に、組み込み装置は仮想装置との通信のチャネルを開き、1つまたは複数の連続する通信で使用するために一度自身を識別して、仮想装置へ入力を提供し且つ仮想装置からの出力を受信する。受信した装置識別に基づいて、仮想装置は、組み込み装置からの入力を処理するためのいずれかのアプリケーション固有命令を読み込む。続いてブロック240にて、システムは、処理のために仮想装置へ受信した入力を送信する。仮想装置は、受信した入力についていずれかのアプリケーション固有処理を行い、結果またはその他の出力を生成する。処理のタイプは、利用可能な組み込み装置のタイプのように広く変化することができる。DVRの記録の取得のために、仮想装置は、組み込み装置からチューナ入力を受信し、入力を圧縮/符号化し、入力を仮想装置に関連付けられたストレージ内に格納することができる。DVRの再生の実行ために、仮想装置は、再生、一時停止および早送り等の制御要求を受信し、組み込み装置のディスプレイ上に再生され得る出力として符号化されたオーディオビジュアルデータを提供することができる。実質的に組み込み装置自体上のすべての機能を著しいハードウェアコストで実行する今日の装置と比較して、組み込み装置が処理および他のリソースの消費のかなりの量を仮想装置へオフロードする最終結果を伴って、他のタイプの装置は、仮想装置からの処理の異なるタイプを要求することができる。続いてブロック250にて、システムは、組み込み装置にて仮想装置からのリモート処理結果を受信する。リモート処理結果は、送信された入力の処理の失敗または成功したかどうかを示す結果コードと、同様に、仮想装置により実行された処理の結果としての仮想装置によって提供されるいずれかの出力を含むことができる。いくつかのケースでは、仮想装置は組み込み装置の代わりに単にデータを格納し、処理結果は仮想装置から組み込み装置によって要求されたデータを含むことができる。他のケースでは、処理結果は、組み込み装置の代わりに仮想装置によって実行された実質的な演算の結果を含むことができる。続いてブロック260にて、システムは組み込み装置にて、仮想装置から受信した出力を提供している。出力は、画面またはスピーカのセットで再生されるオーディオビジュアルデータ、ロボットアーム等の機械的周辺装置へ提供される機械的なデータ、以前に仮想装置に格納されたバックアップされたバイナリデータ、またはいずれかの他のタイプのデータを含むことができる。ブロック260の後、これらのステップは終了する。図3は、一実施形態における共通の仮想化施設での仮想装置の情報を処理するための装置仮想化システムの処理を示すフロー図である。ブロック310に始まり、システムは、仮想装置において、組み込み装置の機能を実行するための処理または他のリソースのための仮想装置に依存する組み込み装置を識別する情報を受信する。組み込み装置は、受信した入力と一緒に、装置のタイプおよび/またはインスタンスを識別する装置識別子を送信することができる。タイプは組み込み装置の目的を指定することができ、一方で、インスタンスはシリアル番号または同一タイプの装置を区別するための他の実質的に一意の識別子を指定することができる。仮想装置は組み込み装置の装置タイプを判定し、仮想装置に関連付けられたデータストアからのアプリケーション固有処理情報を読み込む。組み込み装置のメーカーは最初に、仮想装置のオペレータに組み込み装置を管理するためのアプリケーション固有ソフトウェアコードまたは他の情報を、同様に、エラーを修正するかまたは時間をかけて機能をアップグレードするための定期的な更新を提供することができる。続いてブロック320にて、システムは、受信した装置情報に基づいて組み込み装置に関連したアプリケーション固有情報を読み込む。仮想装置は、様々な組み込み装置の代わりに動作する仮想装置のための様々なアプリケーション固有処理命令を含むストレージを伴うデータストアを含むことができる。仮想装置は、組み込み装置がいくつかのコンポーネントおよびコストを低減または除去できるように、組み込み装置に処理、ストレージまたはその他のリソースを提供することができる。続いてブロック330にて、システムは組み込み入力を、組み込み装置に組み込まれている1つまたは複数の周辺装置から、仮想装置にて、受信する。受信した入力は、仮想装置で処理される入力ではなく、以前に組み込み装置で処理されていた入力を形成する。入力は、チューナ入力、温度入力、音声入力、ビデオ入力、機械的な入力等を含むことができる。組み込み装置は、仮想装置に組み込み装置を接続するネットワーク上の1つまたは複数の入力メッセージを送信し、仮想装置は、入力を受信し、指定された処理を実行する。続いてブロック340にて、システムプロセスは、仮想装置にて、アプリケーション固有情報に基づいて受信した組み込み入力を処理する。処理は、仮想装置の代わりのデータの格納、入力の計算の実行、他のソース例えば、公共データベースから追加データの収集等を含んでいてもよい。仮想装置は、組み込み装置によって提供された入力を遂行するために、プロセッサ、ストレージおよびその他のリソースを提供している。これは、組み込み装置に、これらのリソースを省略するか、または、リソースの単純なバージョンを使用して、組み込み装置コストを削減し、組み込み装置の設定および保守を単純化することを可能にする。続いてブロック350にて、システムは、組み込み入力の処理の1つまたは複数の結果を識別する。その結果は、エラーコード、成功コード、出力データ、得られた情報等を含むことができる。仮想装置の処理は、過去のシステム内の組み込み装置にて以前に生成されたであろう出力を生成する。それから、仮想装置は、組み込み装置のユーザが組み込み装置の動作自体のすべてを実行していないことに気付かないように、生成された出力を組み込み装置に提供する。装置仮想化システムは、様々なコンピューティング装置の間の高速ネットワーク接続のほぼユビキタス可用性によって部分的に可能となる。続いてブロック360にて、システムは、組み込み装置のユーザに提供するための出力として仮想装置から組み込み装置へ識別結果を送信する。その結果は、モニタ上で再生する組み込み装置用のビデオデータ、スピーカで再生する音声データ、組み込み装置の機械的な周辺装置を制御するための機械的データ等を含むことができる。ブロック360の後、これらのステップは終了する。図4は、一実施形態における装置仮想化システムの例示的な動作環境を示すブロック図である。図は、組み込み装置410とネットワーク440により接続された仮想装置450とを含む。組み込み装置410は、家庭、小規模オフィスに、または、ローカル情報を含み且つユーザがある或る目的を遂行するために組み込み装置410を購入した他の環境に設置してもよい。組み込み装置410は、組み込み装置からデータを収集し、組み込み装置410のローカル環境にデータを戻す、1つまたは複数の組み込み入力周辺装置420および1つまたは複数の組み込まれた出力周辺装置430を含む。組み込み装置410と仮想装置450を接続するネットワーク440は、仮想装置450が組み込み装置410の代わりに1つまたは複数の機能を実行し、遅滞なくユーザにデータを返すことができるように十分に高速なインターネットまたは他のネットワークも含むことができる。仮想装置450はデータセンターもしくは他の処理施設内に離れて配置されてもよく、または、組み込み装置410の位置でサーバもしくは他の利用可能なリソースであってもよい。仮想装置450は、従来の組み込み装置410によって実行される1つまたは複数の機能を実行するために組み込み装置410によって使用される少なくとも1つの仮想リソース460を含む。仮想リソース460は、プロセッサ、ストレージ、ネットワーク装置、または組み込み装置410に代わって動作するその他のリソースおよび、潜在的に他の組み込み装置図示せずを含むことができる。仮想装置450は、組み込み装置410に関連付けられたアプリケーションコードの一元管理を可能にし、同様に、仮想リソース460と組み込み装置410の安価なコンポーネントコストの共有を可能にする。いくつかの実施形態において、装置仮想化システムは、ソフトウェアコードまたは組み込み装置に関連するその他の情報をテストすることで組み込み装置メーカーを支援する仮想装置を使用して1つまたは複数の組み込み装置をシミュレートする。メーカーは、ハードウェアの複雑なテストベンチを設定するよりも、むしろ組み込み装置の入力および出力をシミュレートし、エラーとパフォーマンスの問題のために仮想装置複数可を監視することによって、多くの装置に対してシステムの拡張性を含む多くのシナリオをテストすることができる。システムは、物理的な装置で再生することは難しいだろう現実世界のシナリオのテストやレクリエーションを大幅に簡素化する。いくつかの実施形態において、装置仮想化システムは、仮想装置または装置が利用できる共有データに基づいて装置メーカーにレポートを提供する。組み込み装置用のストレージの多くが仮想装置で一元化されるため、装置メーカーは、以前の組み込み装置で入手することは困難であろう豊富なデータをマイニングすることができる。例えば、装置、最も頻繁に使用する機能およびその他の重要な情報を各ユーザが設定している方法は、すべての仮想装置に関連付けられた中央データストアにアクセスして、利用可能である。また、メーカーは、発生するような組み込み装置のリクエストのジャーナリングとロギングを通して追加データの収集を要求することができる。このように、メーカーは、最も一般的に使用される機能、一般的な設定、一般的な問題等に関する情報を判定することができる。いくつかの実施形態において、装置仮想化システムは、仮想装置の使用のために装置メーカーに補償するために加入モデルを、組み込み装置のユーザに提供する。例えば、仮想装置は、ユーザが購入した加入ティアに基づいてストレージの大きさを変更できる処理または品質を提供することができる。ユーザは、メーカーに仮想装置上でさまざまな機能を有効にさせるより機能豊富な加入プランへ移すことによって、組み込み装置からのより多くの機能を得ることができる。いくつかの実施形態において、装置仮想化システムは、仮想装置にて、組み込み装置のメンテナンスおよび更新から組み込み装置のユーザを軽減する自動更新を実行する。仮想装置で使用されるソフトウェアおよび他の情報を更新することにより、組み込み装置の動作が変わり、ユーザは提供されたいずれかの更新からメリットを得る。以上のことから、装置仮想化システムの特定の実施形態は、例示の目的のために本明細書に記載されていることが理解されるであろうが、その種々の変更が本発明の精神および範囲から逸脱することなく行うことができる。従って、本発明は、添付の特許請求の範囲による以外は限定されない。