(57)【特許請求の範囲】
【請求項１】
１つ以上の仮想計算機をサポートする仮想化ソフトウェア層を含むモバイル機器であって、
前記１つ以上の仮想計算機のゲスト・デバイス・ドライバと通信するデバイス・エミュレータであって、前記ゲスト・デバイス・ドライバが、前記デバイス・エミュレータによってエミュレートされた、エミュレートされた物理的デバイスと相互に作用するデバイス・エミュレータと、
前記モバイル機器の１つ以上の物理的デバイスと通信する実際のデバイス・ドライバであって、前記実際のデバイス・ドライバが、前記エミュレートされた物理的デバイスによってサポートされる機能に相当するが異なる機能を実行する物理的デバイスと通信する、実際のデバイス・ドライバと、
前記デバイス・エミュレータと前記実際のデバイス・ドライバとの間でデータ及び制御情報を伝達する１つ以上のトランスフォーマーを含むトランスフォーマー・スタックであって、データ及び制御情報を変換し、前記エミュレートされた物理的デバイスによってサポートされる機能に相当するが異なる機能を要求する前記ゲスト・デバイス・ドライバに応答して、前記物理的デバイスの前記機能を前記物理的デバイスが実行できるようにする、トランスフォーマー・スタックと、
を備え、前記トランスフォーマーの１つ以上が、データ及び制御情報の流れの経路において前記トランスフォーマーの更に１つ以上を示す機能ポインタを含む、モバイル機器。
【請求項２】
前記トランスフォーマーの１つ以上が、前記データ及び制御情報が第１及び第２の方向に流れることができるという点で双方向性である請求項１記載のモバイル機器。
【請求項３】
前記トランスフォーマーの１つ以上が、第１方向に前記トランスフォーマー・スタックを通る経路のための多数の機能ポインタを含むマルチプレクサを含む請求項１記載のモバイル機器。
【請求項４】
前記トランスフォーマーの１つ以上が、第２方向に前記トランスフォーマー・スタックを通る経路のための多数の機能ポインタを含むデマルチプレクサを含む請求項１記載のモバイル機器。
【請求項５】
前記仮想化ソフトウェア層が、前記トランスフォーマー・スタックの前記トランスフォーマーの１つ以上と通信する管理クライアントを含み、前記管理クライアントが、制御情報を前記トランスフォーマーの１つ以上に伝え、その制御情報は前記トランスフォーマーの機能を達成する請求項１記載のモバイル機器。
【請求項６】
前記モバイル機器の前記物理的デバイスのうちの１つを通して前記管理クライアントが遠隔企業サーバと通信するよう配置された請求項５記載のモバイル機器。
【請求項７】
前記トランスフォーマー・スタックが少なくとも第１トランスフォーマー及び第２トランスフォーマーを含み、前記第１トランスフォーマーは、前記トランスフォーマー・スタックを通る経路において、次のトランスフォーマーをポイントするための機能ポインタを有し、最初に、前記機能ポインタは前記第２トランスフォーマーをポイントし、そして前記管理クライアントが、前記機能ポインタを変えて、第３トランスフォーマーをポイントするために、前記第１トランスフォーマーと続いて通信する請求項６記載のモバイル機器。
【請求項８】
前記管理クライアントが、前記遠隔企業サーバからの通信に応答して前記機能ポインタを変えるために、前記第１トランスフォーマーと通信する請求項７記載のモバイル機器。
【請求項９】
前記遠隔企業サーバとの通信に応答して、前記管理クライアントは、新規なトランスフォーマーを前記トランスフォーマー・スタックに挿入するために、前記トランスフォーマー・スタックを制御する請求項６記載のモバイル機器。
【請求項１０】
前記遠隔企業サーバとの通信に応答して、前記管理クライアントは、トランスフォーマーを前記トランスフォーマー・スタックから削除するために、前記トランスフォーマー・スタックを制御する請求項６記載のモバイル機器。
【請求項１１】
前記遠隔企業サーバとの通信に応答して、前記管理クライアントは、トランスフォーマーを前記トランスフォーマー・スタック内で変更するために、前記トランスフォーマー・スタックを制御する請求項６記載のモバイル機器。
【請求項１２】
前記管理クライアントが前記トランスフォーマーを設定する前に、前記仮想化ソフトウェア層が前記モバイル機器の各仮想計算機との通信を休止する請求項１１記載のモバイル機器。
【請求項１３】
パーベイシブ・コンピューティング・サービス（ＰＣＳ）仮想計算機を更に備えるモバイル機器であって、前記トランスフォーマー・スタックが、データ及び制御情報をユーザ仮想計算機と前記ＰＣＳ仮想計算機の間を、そして更に前記ＰＣＳ仮想計算機と遠隔モバイル機器の間を送る請求項１記載のモバイル機器。
【請求項１４】
管理クライアントを更に備え、前記管理クライアントは遠隔企業サーバと通信し、そして前記遠隔企業サーバとの通信に応答して、前記管理クライアントは、前記モバイル機器の１つ以上の物理的デバイスに対する会社の電話の仮想計算機のアクセスを制御するよう配置された請求項１記載のモバイル機器。
【請求項１５】
前記モバイル機器のユーザが、前記遠隔企業サーバにより制御されない他の仮想計算機についての管理動作を実行できるよう前記管理クライアントが配置された請求項１４記載のモバイル機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想モバイル機器に関する。
[関連出願の相互参照]
[0001]本願は次の出願に関連があり、それらの出願は本願の譲受人に譲渡され、本願と同じ日に出願されていて、そして「仮想モバイル機器の使用制御」、「仮想モバイル機器のセキュリティの提供」、「仮想モバイル機器のマルウェア攻撃の防止」、及び「仮想モバイル機器の移行機能」という名称である。
【背景技術】
【０００２】
[0002]モバイル機器とは、通常、携帯電話のようなデバイス（例えば、アイフォンという名でアップル社により設計されて、市場に出されたインターネット接続するマルチメディアのスマートフォン、又はリサーチ・イン・モーション社（Ｒｅｓｅａｒｃｈ  Ｉｎ  Ｍｏｔｉｏｎ  Ｌｉｍｉｔｅｄ）により販売されているブラックベリー（ＢｌａｃｋＢｅｒｒｙ）（登録商標）スマートフォン）、メディア・プレーヤ、ハンドヘルドゲーム装置、計算器などを指す。周知のように、この種のモバイル機器は、通常、デスクトップ又はラップトップ・コンピュータと比較して限られた物理メモリを備えていて、それらが電池電力で通常作動するので、それらの電力節約機能のため、それらはＡＲＭアーキテクチャ（以前は、高度ＲＩＳＣマシーン、そしてその前は、エイコーンＲＩＳＣマシーン）を有するプロセッサを使用する。また周知のように、ＡＲＭアーキテクチャとは、多くの埋め込み設計において広く使われている、英国、メードンヘッド（Ｍａｉｄｅｎｈｅａｄ）のＡＲＭホールディングス（Ｈｏｌｄｉｎｇｓ）社により開発された３２ビットＲＩＳＣプロセッサ・アーキテクチャを指す。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許出願第１２／４６６，１５９号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
メモリ及びＣＰＵ規制に関連したこの種の問題によって、この種のモバイル機器を使用する際に問題が生じる。
【課題を解決するための手段】
【０００５】
[0003]本発明の１つ以上の実施形態はモバイル機器を提供する。特に、本発明の一実施形態は、１つ以上の仮想計算機をサポートする仮想化ソフトウェア層を含むモバイル機器であり、モバイル機器は、（ａ）１つ以上の仮想計算機のゲスト・デバイス・ドライバと通信するデバイス・エミュレーショタであって、前記ゲスト・デバイス・ドライバが、前記デバイス・エミュレータによってエミュレートされた、エミュレートされた物理的デバイスと相互に作用するデバイス・エミュレータ、（ｂ）モバイル機器の１つ以上の物理的デバイスと通信する実際のデバイス・ドライバであって、前記実際のデバイス・ドライバが、前記エミュレートされた物理的デバイスによってサポートされる機能に相当するが異なる機能を実行する物理的デバイスと通信する、実際のデバイス・ドライバ、ならびに（ｃ）前記デバイス・エミュレータと前記実際のデバイス・ドライバとの間でデータ及び制御情報を伝達する１つ以上のトランスフォーマーを含むトランスフォーマー・スタックであって、データ及び制御情報を変換し、前記エミュレートされた物理的デバイスによってサポートされる機能に相当するが異なる機能を要求する前記ゲスト・デバイス・ドライバに応答して、前記物理的デバイスの前記機能を前記物理的デバイスが動作できるようにする、トランスフォーマー・スタックを備え、前記トランスフォーマーの１つ以上が、データ及び制御情報の流れの経路において前記トランスフォーマーの更に１つ以上を示す機能ポインタを含む。
【図面の簡単な説明】
【０００６】
【図１】[0004]本発明の１つ以上の実施形態に従って製作される仮想モバイル機器のブロック図を示す。
【発明を実施するための形態】
【０００７】
[0005]図１は、本発明の１つ以上の実施形態に従って製作される仮想モバイル機器１００のブロック図を示す。図１に示すように、仮想モバイル機器１００は、モバイル機器ハードウェア２００、モバイル機器ハードウェア２００と相互に作用する仮想化ソフトウェア層３００、及び仮想化ソフトウェア層３００と相互に作用する仮想計算機（「ＶＭ」）４００１〜４００ｎを含む。図１に更に示すように、モバイル機器ハードウェア２００は、ＣＰＵ２１０（例えば、そして限定されるものではないが、ＡＲＭプロセッサ２１０）、メモリ２２０、さまざまなデータ・ネットワーク・インターフェース・デバイス２３０（例えば、そして限定されるものではないが、ｗｉｆｉデバイス２３０）、さまざまな電話インタフェース２４０（例えば、そして限定されるものではないが、セル方式無線電話２４０）、さまざまなモバイル機器表示及び音声入力／出力デバイス２５０１〜２５０ｎ（例えば、そして限定されるものではないが、液晶表示デバイス２５０１、タッチスクリーン表示デバイス２５０２、音声入力／出力デバイス２５０３（例えば、そして限定されるものではないが、スピーカ）など）及び位置決定デバイス２６０（例えば、そして限定されるものではないが、ＧＰＳ決定デバイス２６０）を含む。
【０００８】
[0006]本願明細書に記載されている発明の１つ以上の実施形態は、仮想モバイル機器の使用方法を提供する。本願明細書で用いるように、用語「モバイル機器」は、それが、例えば、そして限定されるものではないが、携帯及び／又はセル方式電話、スマートフォン、インターネット接続するマルチメディアのスマートフォン、メディア・プレーヤ、ハンドヘルドゲーム装置、計算器などのようなデバイスを含むように、最も幅広く用いられる。
【０００９】
[0007]本発明の１つ以上の実施形態によると、図１に示すように、仮想モバイル機器１００は、仮想モバイル機器を提供するためにモバイル機器ハードウェア２００で動作する、例えば、そして限定されるものではない、ハイパーバイザ（仮想計算機モニタと呼ばれることがある）のような仮想化ソフトウェア層３００を含む。１つ以上のこの種の実施形態によると、この種の仮想モバイル機器で、本願明細書に記載されている本発明の方法をドライブするアプリケーションは、（ａ）オペレーティングシステム（ゲスト・オペレーティングシステム（「ゲストＯＳ」）、即ち、仮想化ソフトウェア層３００のゲストと呼ばれることがある）において、ゲストＯＳ４１０１〜４１０ｎとして（そこではコンピュータ仮想化の当業者は、この種のゲストＯＳ４１０１〜４１０ｎが仮想化ソフトウェア層３００によって、どのようにサポートされるかを容易に理解する）、（ｂ）仮想化ソフトウェア層３００でサポートされるアプリケーション・コンテナ内で、（ｃ）仮想化ソフトウェア層３００内のソフトウェア・モジュール、又は（ｄ）前述のいくつかの組み合わせで動作する。２００９年５月１４日に出願された特許文献１である「仮想化のためのインプレース・シャドウテーブル」という名称である係属する特許出願は、本出願の譲受人により所有されて、本願明細書において引用したものとして、仮想化ソフトウェア層３００を仮想モバイル機器１００に提供する方法を記載する。
【００１０】
[0008]当業者が図１から理解できるように、いくつかのＶＭ４００１〜４００ｎは仮想モバイル機器コンピュータ１００で実行することができ、それらが別々のデバイスで実行しているかのようにそれらは互いから保護される、即ち、いずれのＶＭも、この種のＶＭが物理的に別々のハンドセットに置かれる場合そうであるだろうより、いかなる同じ位置に配置された、障害が起きた（即ち、ウイルスに感染した）ＶＭに対して攻撃されやすいことはない。これは分離と呼ばれ、そして分離は、ベースバンド・スタック、即ち、セルラー電話網と相互に作用する携帯電話の一部を保護するために、携帯電話のようなモバイル機器において重要である。これは、障害が起きたベースバンド・スタックがセルラー電話網全体に大混乱を起こす場合があるからである。実際、多くのスマートフォンはこの種の分離を提供するために現在２つのプロセッサチップを備えていて、ベースバンド・ソフトウェアはＲＯＭに焼きつけられる。しかしながら、マルチコアチップ及びより高い容量の単一コアの出現は、ベースバンド及びアプリケーション機能を単一のチップに結合することを有利にする。
【００１１】
[0009]図１に更に示されるように、ゲストＯＳ４１０１〜４１０ｎはゲスト・アプリケーションを実行する。周知のように、ＣＰＵ、メモリ、及びデバイスの全ては、実際のハードウェアから切り離されるＶＭを有するために仮想化されなければならない（例えば、そこにおいて各ＶＭは、それが専用のハンドセット、即ち物理的な電話で実行していると思っている）。仮想化ソフトウェアを設計するときに、いくつかの選択肢がある。１つのそのような選択肢に従って、ゲストＯＳはそのまま動作することができ、それは完全な仮想化として公知であり、又は、第２の選択肢に従って、ソースコードは修正されることができ、それは準仮想化として公知である。周知のように、モバイル機器は通常１つ以上のプロセッサを備え、その各々は多くの場合ＡＲＭコアである。
【００１２】
[0010]知られているように、典型的モバイル機器は、例えば、そして限定されるものではないが、スクリーン、キーボード及びボタン、ラジオ、ＧＰＳ、ブルートゥース・デバイス、カメラ、撮像装置、マイクロフォン、スピーカなどのようなデバイスの大きいコレクションを含む。
【００１３】
[0011]図１に示すように、ゲストＯＳ４１０１〜４１０ｎは、１組のデバイス・ドライバ（単一のゲスト・デバイス・ドライバ４１０１〜４１０ｎによって実例として示される）を含む。実際のデバイスと相互に作用するよりはむしろ、これらのゲスト・デバイス・ドライバは、エミュレートされたか仮想化されたデバイスと相互に作用する。図１に更に示すように、仮想化ソフトウェア３００は、ＶＭ４００１〜４００ｎのデバイスを仮想化するデバイス・エミュレータ３２０ａ〜３２０ｍを含み、そして仮想化ソフトウェア３００は、モバイル機器１００の物理的デバイスと相互に作用するデバイス・ドライバ（デバイス・ドライバ３１０ａ及び３１０ｂによって実例として示される）を含む。完全に仮想化されたゲストＯＳデバイス・ドライバは、物理的デバイスと関連した特定の物理アドレスを読込み又は書込むことを試み、しかしながら、デバイス・エミュレータ・ソフトウェアを有する仮想化ソフトウェア３００に対する各アクセストラップが適切な動作を復号化するように、仮想化ソフトウェア３００はこれらのページが読み取れない及び書込みできないものであることを示す。あるいは、ゲスト・デバイス・ドライバが仮想化ソフトウェア３００に直接の呼び出しをするように、それは準仮想化されてもよい。いずれにせよ、エミュレートされたデバイスは、次に、物理的デバイスと相互に作用する実際のデバイス・ドライバと最終的に通信する。このように、流れは、ゲスト・デバイス・ドライバ〜デバイス・エミュレータ〜実際のデバイス・ドライバ〜物理的デバイスである。物理的デバイスと相互に作用する実際のデバイス・ドライバは仮想化ソフトウェア３００の一部であってもよく、又は、そして場合によっては、実際のデバイス・ドライバが特定のオペレーティングシステムを仮定できるので、「バグの多い」ドライバ・コードが残りの仮想化ソフトウェア３００を損なわないように、それは特別なドライバＶＭにあってもよい。
【００１４】
[0012]図１に示すように、本発明の１つ以上の実施形態によると、ＶＭは、実際には、それがデバイス・エミュレータと相互に作用しているが、それが物理的デバイスと相互に作用していると考える。更に、１つ以上のこの種の実施形態によると、このデバイス・エミュレータは、フィルタ、データ・トランスフォーマー、マルチプレクサ、及び／又はデマルチプレクサを含む、一連のトランスフォーマーを備えるトランスフォーマー・スタック３５０を通してデータを送る。１つ以上の更なる実施形態によると、デバイス・エミュレータの１つ以上は直接デバイス・ドライバと相互に作用する。
【００１５】
[0013]本発明の１つ以上の実施形態によると、デバイス・エミュレータと実際のデバイス・ドライバの間を流れるとき、トランスフォーマー・スタック３５０はデータを変換する。１つ以上のこの種の実施形態によると、データは流れているが、更なる実施形態によると、制御ストリーム及びデータパケットは共有メモリにあってもよい。１つ以上のこの種の実施形態によると、制御及びデータがいずれの方向にも流れることができるという点で、トランスフォーマーは双方向性である。単純なトランスフォーマーは、データ経路の次のトランスフォーマー（あるいはデバイス・エミュレータ又はデバイス・ドライバ）を示す２つの機能ポインタ、例えば、デバイス・エミュレータから実際のデバイス・ドライバへの「前向きの」経路のための１つの機能ポインタ、及び実際のデバイス・ドライバからデバイス・エミュレータへの後向きの経路のための別の機能ポインタを備えている。使用される物理的デバイス・ドライバに応じて、マルチプレクサは、後向きの経路のための追加の機能ポインタを備えているトランスフォーマーであり、そしてデバイス・セレクタ又はデマルチプレクサは、前向きの経路のための追加の機能ポインタを備えているトランスフォーマーである。図１に示すように、トランスフォーマー・スタック３５０はトランスフォーマーＡ〜Ｎを含む。加えて、本発明の１つ以上の実施形態によると、トランスフォーマー・スタック３５０は、経路のデータフローを第１デバイス・エミュレータから別のデバイス・エミュレータに導くことができる。後述するように、これは第２ＶＭが第１ＶＭによって送られた通信を受信することを可能にし、そこにおいて、第２ＶＭは、それが機能に影響を及ぼすことを可能にする手段として作用する。
【００１６】
[0014]ＶＭは、それが特定の物理的デバイス（その物理的デバイスは仮想化ソフトウェア３００によってエミュレートされる）を有するモバイル機器（例えば、ハンドセット）に含まれると仮定するかも知れない、この種の対応する物理的デバイスがハンドセットにはないことがある。例えば、ＶＭは、ハンドセットがｗｉｆｉデバイスを備えていると仮定するかもしれないが、ハンドセットは３Ｇ及びＵＳＢイーサネット（登録商標）デバイスを備えているだけかも知れない。この場合には、仮想化ソフトウェア３００は、実際の物理的デバイスのためにセット・ドライバのうちの１つへのデバイス・エミュレータの経路を定めるトランスフォーマー、例えば、そして限定されるものではないが、デバイス・セレクタ又はデマルチプレクサを提供する。この種のトランスフォーマーは、デバイス・データ・ストリーム・トランスフォーマーの例である。本発明の１つ以上の実施形態によると、同様にトランスフォーマー・スタック３５０を通る経路に沿って他のトランスフォーマーがある場合がある。例えば、そして限定されるものではないが、特定のＶＭからのネットワーク通信はまた、トランスフォーマーによって暗号化またを圧縮されてもよい。
【００１７】
[0015]ハンドセットのようなモバイル機器は、同時に実行して、それらのゲストデバイスにアクセスするいくつかのＶＭを有していてもよい。前述のように、各ＶＭのゲストデバイスごとに、仮想化ソフトウェア３００のデバイス・エミュレータがある（例えば、各ＶＭは、それがスクリーン及びキーボードを有すると仮定する）。このように、仮想化ソフトウェア３００は各物理的デバイスへのアクセスを多重送信しなければならない。正確に多重化が機能する方法は特定のデバイスに依存する。いくつかの物理的デバイスを共有できる（例えば、多くのハンドセットはセミサイレントな方法で所有者と通信するために振動し、そして、場合によっては、いかなるＶＭも電池を振動させることが可能でなければならない）。しかしながら、いくつかの物理的デバイスはキーボードのようなＶＭに排他的に割り当てられてもよい。例えば、キーボードは通常「フォアグラウンドの」ＶＭ専用であり、即ち、スクリーンの寸法を考えると、それは排他的に割り当てられそうであり、そしてユーザがＶＭの間で切り替えるときにＶＭごとにスクリーンの小さい画像を見ることができるように、「バックグラウンド」で動作するＶＭは「サムネイル化される」それらのスクリーンを有していてもよい。
【００１８】
[0016]そのような場合、トランスフォーマー、例えば、そして限定されるものではないが、マルチプレクサは適切なＶＭに入力データを送らなければならない。どのＶＭが、例えば、ブルートゥース・デバイスへの排他的なアクセスを得るかを自動的に決めることが困難であるので、ユーザは、多くの方法のいずれか１つだけに従って物理的デバイスを排他的に割り当てるために、ユーザ・インタフェースを使用して措置をとらなければならないことがあることに注意されたい。
【００１９】
[0017]図１に更に示すように、本発明の１つ以上の実施形態によると、管理サーバ５００は、トランスフォーマー・スタック３５０のさまざまなトランスフォーマーＡ〜Ｎを挿入し、削除し、又は構成するために、仮想化ソフトウェア３００の管理クライアント３４０と相互に作用する。このように、例えば、管理サーバ５００は、デバイスをリモートし、そのデータをマルチキャストし、又は特定の物理的デバイスを使用するために、トランスフォーマー３５０内の論理を制御できる。動的な方法でトランスフォーマー・スタック３５０を管理する１つの方法は、各トランスフォーマーが経路上の次のトランスフォーマーを示している機能ポインタ・テーブルを維持することであり、前述のように、単純なトランスフォーマーは２つのポインタ（方向ごとに１つ）を備えている。そして、仮想化ソフトウェア３００は各ＶＭへの、そしてそれからの通信を休止する。そして、すべてのＶＭが休止されるときに、各関連したトランスフォーマーの機能ポインタ・テーブルは更新可能であり、それによりトランスフォーマー・スタック３５０を通る流れを変更する。一連のトランスフォーマーは、それがオーバーヘッドを小さく保つために有用であるように長いかもしれない。例えば、データを流れ出させるか、又は各トランスフォーマーの間でそれを複製する必要がないことがある。加えて、制御パケットは小さくてもよく、そして従って、それらはしばしば少数のレジスタ内に保持されることができる。更なる追加において、データは、ほとんどの場合、メモリにとどまることができて、仮想化ソフトウェア３００は、データを調べることを必要とするかもしれない各トランスフォーマー、ＶＭ、及びデバイス・ドライバのアドレス空間にこのメモリをマップする。
【００２０】
[0018]トランスフォーマーを挿入、削除、又は変更することは、全デバイスのセキュリティ、分離、完全性、信頼性などを損なう場合がある。よって、本発明の１つ以上の実施形態によると、トランスフォーマー・スタック３５０の一連のトランスフォーマーはユーザ・モードで動作して、トランスフォーマー・スタック３５０内のデータバッファ及び記憶をアドレス指定できるだけである。また、１つ以上のこの種の実施形態によると、キーボード及びスクリーンがいくつかの信頼できないソフトウェアにより偽造されるか、又は挿入されることができないように、それは管理クライアント３４０によって直接アクセス可能であるべきである。
【００２１】
[0019]周知のように、仮想機器（ＶＡ）は、アプリケーション及びすべての必要なオペレーティング・システム・サービスが一緒にパッケージ化されて、ＶＭとして動作するソフトウェアである。換言すれば、それは、減少したオペレーティングシステム・サイズを有するユニットとして管理、及び維持される完全なソフトウェア・スタックである。本発明の１つ以上の実施形態によると、ＶＡ（又はＶＭ）の１つ以上のゲスト・デバイス・ドライバは、トランスフォーマー・スタック３５０と相互に作用するデバイス・エミュレータと相互に作用することができ、そしてＶＡ（又はＶＭ）の１つ以上のゲスト・デバイス・ドライバは、トランスフォーマー・スタック３５０を経由せずに物理的デバイスのためのデバイス・ドライバと直接相互に作用できる。１つ以上の更なるこの種の実施形態によると、トランスフォーマー・スタック３５０と相互に作用する１つ以上のこの種のデバイス・エミュレータは、ＶＡ（又はＶＭ）が通信の手段としての機能を果たすことを可能にするために、別のデバイス・エミュレータ（トランスフォーマー・スタック３５０によって向けられるように）と相互に作用できる。このように、本発明の１つ以上の実施形態によると、ゲストＯＳデバイス・ドライバからの制御フローは、中間のＶＭ又はＶＡに進んでもよい。ソフトウェアが実際のデバイスとエミュレートされたものとを区別する必要がない。従って、ＶＭは、そのＧＰＳ表示が本当のＧＰＳに、又は以前の表示のログに由来するかどうかについて判断することができないかも知れない。
【００２２】
[0020]本願明細書で用いられる「パーベイシブ・コンピューティング・サービス」という用語は、あるデバイスが近くのデバイスを見つけ出して、それ自体の資源を他のデバイスが利用できるようにするサービスを含む。デバイスが協同するもの、認証モデル、及び多数の他の詳細全てはデバイスのリモート処理機能を利用する。パーベイシブ・コンピューティング・サービス・アプリケーションの場合は、特別なアプリケーションが各デバイス及び各オペレーティングシステムのために必要とされる。例えば、グループ・カメラ使用事例を考える。そこでは：（ａ）１つの電話のアプリケーションが画像を撮って、ローカル・アドホックｗｉｆｉネットワークを通じてだけでなく、ブルートゥース接続を通じてその有効性を知らせる。（ｂ）ネットワーク上の他の全ての電話は、このサービスを検索して、画像を移動するアプリケーションを備えている。そして（ｃ）認証機構は、画像がグループのそれらに送られるだけであることを確実にするために用いられる。この例では、いくつかの電話はＧＰＳを有し、それに応じて画像に標識を付けてもよい。その一方で、他の電話は画像に直接注を加えることができてもよい。単に位置が遠隔の制御装置から画像を取ってくるだけであるアプリケーションは、これらの強化されたアプリケーションを利用することができないかも知れない。したがって、ユーザは、正しいアプリケーション、即ち、本当のカメラ・アプリケーション又は遠隔画像獲得アプリケーションを使用することを確実にしなければならない。本発明の１つ以上の実施形態によると、トランスフォーマーとＶＡの組み合わせはこれらの懸念に対処する。
【００２３】
[0021]パーベイシブ・コンピューティング・サービス・アプリケーション・ソフトウェアをモバイル機器にインストールするために、２つのステップが用いられる。第１ステップは、本願明細書において、ＰｅｒＣｏｍｍ仮想機器又はＰｅｒＣｏｍｍ  ＶＡと呼ばれる、仮想化ソフトウェア３００において実行するパーベイシブ・コンピューティング・サービス仮想機器をインストールすることである。第２ステップは、特定の仮想及び物理的なデバイスをＰｅｒＣｏｍｍ  ＶＡを通って送られるように導くことである。それがハンドセットの物理資源を部外者にさらすかもしれないので、これはモバイル機器の所有者による明確な処置を必要とするかも知れない。
【００２４】
[0022]次に、ＶＭから出てくるデータ及び制御はＰｅｒＣｏｍｍ  ＶＡまで送られる。ＰｅｒＣｏｍｍ  ＶＡはそれ自体のアドレス空間でユーザ・モードで実行し、そして仮想化ソフトウェア３００は機械語アドレス・マッピングに対する仮想を制御して、データ・コピーを回避するためにそれを配列できる（ストリームをネットワーク・パケットに変換するときに、しかしながら、コピーを回避することは不可能ではないかも知れない）。ＰｅｒＣｏｍｍ  ＶＡは、このデータ及び制御をブルートゥース接続、ｗｉｆｉ、又は他の何らかの無線通信デバイスによって遠隔デバイスに伝える。ユーザは、何時どのデバイスがＰｅｒＣｏｍｍ  ＶＡにより処理されることになるかという制御を与えられるかも知れない。遠隔デバイスからのデータ及び制御情報はＰｅｒＣｏｍｍ  ＶＡに伝えられ、そしてＰｅｒＣｏｍｍ  ＶＡは、その次にそれをＶＭに導くトランスフォーマー・スタック３５０（又は仮想化ソフトウェア３００）にこのデータ及び制御情報を転送できる。ＶＭは、それがローカルデバイスと相互に作用していると考えるが、相互作用はＰｅｒＣｏｍｍ  ＶＡにより媒介されている。
【００２５】
[0023]仮想化ソフトウェア３００が更新又はパッチされなければならない時間がある。同様に、ハンドセットのＶＭが、遠隔実体、例えば、従業員の個人用ハンドセットに取り付けられる仮想作業電話を所有する企業の管理下にある時間があるかも知れない（これは下記に更に詳細に説明される）。本発明の１つ以上の実施形態によると、「作業電話」によってアクセスされる物理的デバイスの管理は遠隔企業サーバにより制御されることができる。１つ以上のこの種の実施形態によると、管理モジュール、例えば、仮想化ソフトウェア３００にある管理クライアント３４０は、これが起こることを可能にするために、適切な認証、許可、セキュリティ保護、及び方針規則をサポートする。加えて、本発明の１つ以上の更なる実施形態によると、ハンドセットの所有者又はユーザは、他のＶＭ、即ち、遠隔企業サーバからの入力により制御されないＶＭのための類似の管理操作を実行できる。この場合には、管理モジュールは遠隔企業サーバに応答する管理モジュールと同様でもよいが、それは、この形のそのコマンド、例えば、そして限定されるものではないが、遠隔リンク又はキーボード・コマンドを受ける。
【００２６】
[0024]使用管理：本発明の１つ以上の実施形態は、モバイル機器により提供される１つ以上のアプリケーションの使用を管理することによって、モバイル機器（例えば、そして限定されるものではないが、携帯電話）の使用を管理するための方法を提供する。それで、１つ以上のこの種の実施形態によると、企業は、例えば、そして限定されるものではないが、費用を管理するために電話を管理することによって、従業員の企業が管理するモバイル機器の使用を制限又は制御してもよい。特に、そして本発明の１つ以上のこの種の実施形態によると、仮想モバイル機器１００（例えば、そして限定されるものではないが、仮想携帯電話）は、ゲスト・オペレーティングシステム（「ゲストＯＳ」）及びゲスト・アプリケーションを有する１つ以上のＶＭ４００１〜４００ｎをサポートする仮想化ソフトウェア層３００（例えば、ハイパーバイザ）を含む。１つ以上のこの種の実施形態によると、仮想化ソフトウェア３００の管理クライアント３４０は、例えば、そして限定されるものではないが、電話ネットワーク、あるいはｗｉ―ｆｉ又はｗｉｆｉネットワーク｛周知のように、Ｗｉ―ＦｉはＷＥＣＡ（Ｗｉｒｅｌｅｓｓ  Ｅｔｈｅｒｎｅｔ（登録商標）  Ｃｏｍｐａｔｉｂｉｌｉｔｙ  Ａｌｌｉａｎｃｅ（無線イーサネット（登録商標）適合性アライアンス））として１９９９年に創立された、Ｗｉ―Ｆｉアライアンスの商標であり、その組織は、製品がＩＥＥＥ８０２．１１標準（ＷＬＡＮ（Ｗｉｒｅｌｅｓｓ  ＬＡＮ）（無線ＬＡＮ））及びＷｉ―Ｆｉとも呼ばれる）に基づいてＷｉ―Ｆｉアライアンスにより認定される会社から成る−認定はいろいろな無線デバイスの間にインターオペラビリティを保証する｝などのような、当業者に周知である多くの方法のいずれか１つを使用して企業サーバ（即ち、管理サーバ５００）と連絡を取る。１つ以上の別の実施形態によると、仮想モバイル機器１００のＶＭは、当業者によって周知である仮想化ソフトウェア層によって通信する多くの方法のいずれか一つを用いた仮想化ソフトウェア３００によって管理サーバ５００と連絡を取る。
【００２７】
[0025]１つ以上のこの種の実施形態によると、管理サーバ５００は、仮想モバイル機器１００で実行する多くのゲスト・アプリケーションのいずれか１つの使用を制限するために用いられる仮想モバイル機器１００に制御情報を送信する。例えば、そして限定されるものではないが、本発明の１つ以上の実施形態によると、管理サーバ５００は、制限を含む制御情報を仮想化ソフトウェア３００の管理クライアント３４０に、又は代替として、仮想化ソフトウェア３００によって、ＶＭに（当業者に周知である多くの方法のいずれかに従って）送信してもよい。制御情報は、それがいくつものアプリケーションを制御するために用いられてもよいという点で多次元的でもよい。例えば、そして限定されるものではないが、制御情報は、制御される特定のアプリケーションの適切な識別によって、以下の用途の１つ以上を制御するために用いることができる：（ａ）ネットワークの使用を所定の、又は動的に可変の（例えば、企業サーバからの制御情報のリアルタイム入力によって）数分間に制限する、（ｂ）多くのｓｍｓメッセージ（周知のように、Ｓｈｏｒｔ  Ｍｅｓｓａｇｅ  Ｓｅｒｖｉｃｅ（ショートメッセージ・サービス）（ＳＭＳ）は、携帯電話デバイス間の短いテキストメッセージの交換を可能にする通信プロトコルである）を所定の、又は動的に可変の（例えば、企業サーバからの制御情報のリアルタイム入力によって）数に制限する、（ｃ）データ転送を所定の、又は動的に可変の（例えば、企業サーバからの制御情報のリアルタイム入力によって）数に制限する、又は、（ｄ）ゲーム使用を１つ以上の所定のゲームに、あるいは、所定の、又は動的に可変の（例えば、企業サーバからの制御情報のリアルタイム入力によって）時間ごとの使用量に制限する（仮想化ソフトウェアによって）。容易に理解できるように、企業は、例えば、そして限定されるものではないが、予算上の変化に応答して、制御情報を動的に変更することができ、制御情報はユーザーグループによって変化できる（そこではユーザーグループが、例えば、そして限定されるものではないが、仮想モバイル機器を構成するときにセットされて、仮想ソフトウェア３００及び／又はＶＭにより格納され、及び／又はアクセスされるユーザ識別により識別されることができる）。
【００２８】
[0026]本発明の１つ以上の実施形態によると、アプリケーション（本願明細書において、ゲスト・アプリケーションと称される）は、仮想モバイル機器１００の仮想化ソフトウェア３００、例えば、ハイパーバイザにおいて動作するゲストＯＳ内で実行される。この種の仮想モバイル機器において、ゲスト・アプリケーション又はゲストＯＳから開始される、セル式ネットワーク通信、例えば、そして限定されるものではないが、電話の呼出し、ｓｍｓメッセージ、３Ｇ／Ｅｄｇｅ／ＧＰＲＳメッセージ｛周知のように、３Ｇは、まず最初に、モバイル・ネットワークでビデオ通話をする方法として市場に出されたが、インターネットをブラウズして、ボイス・オーバー・アイピーを用いて、そして電子メール及びインスタントメッセージングによってスマートフォンで通信する方法でもある、ＧＰＲＳは、最高６０キロビット／秒の速度でデータを送信するために用いるシステムであり、そして電子メールを送受信して、インターネットをブラウズする消費電力が少ない方法である、そしてＥＤＧＥ（Ｅｘｃｈａｎｇｅｄ  Ｄａｔａ  ｒａｔｅｓ  ｆｏｒ  ＧＳＭ（登録商標）Ｅｖｏｌｕｔｉｏｎ（ＧＳＭ（登録商標）進化のための交換したデータ転送速度））は、ＧＰＲＳシステムに基づく最近の開発であり、そしてそれが最高４７３．６キロビット／秒で動作できるという事実によって、「３Ｇ」標準と分類された。スマートフォンがＥＤＧＥ対応である場合、それは、大きいＥメール添付ファイルを受信したり、複雑なウェブ・ページを高速でブラウズしたりするような、大量の移動データ伝送のために使うことができる｝などは、トラップされるゲストＯＳデバイス・ドライバ動作を生成して、仮想化ソフトウェア層３００のデバイス・ドライバにより処理される。換言すれば、仮想モバイル機器で、ゲストＯＳデバイス・ドライバは通信デバイスと直接通信せずに、むしろ仮想化ソフトウェア層３００のデバイス・ドライバによって通信する。
【００２９】
[0027]加えて、そして本発明の１つ以上の実施形態によると、ゲストＯＳはデータパケットをｗｉｆｉ、セル式、ＵＳＢ、又はブルートゥース・ネットワークを通じて送ることができる（周知のように、ブルートゥースは固定及び移動デバイスから短い距離にわたってデータを交換するための無線プロトコルである）。１つ以上のこの種の実施形態によると、これらのケースのいずれの場合でも、ゲストＯＳデバイス・ドライバ動作は、仮想化ソフトウェア層３００によってトラップされ、次に、仮想化ソフトウェア層３００のデバイス・ドライバによって行われる。１つ以上のこの種の実施形態によると、仮想化ソフトウェア層３００のデバイス・ドライバは、ゲストＯＳにより特定された以外の通信のための異なるネットワークを使用できる。例えば、そして限定されるものではないが、ゲストＯＳは３Ｇネットワークを通じてパケットを送ることができるが、実際は、仮想化ソフトウェア層３００のデバイス・ドライバはｗｉｆｉネットワークを通じてそれを送ることができる。加えて、ある時には、仮想化ソフトウェア層３００のデバイス・ドライバはゲストＯＳにより示される同じ通信機構を使用する。
【００３０】
[0028]いずれにせよ、本発明の１つ以上の実施形態によると、仮想化ソフトウェア層３００は通信を制限できる。特に、１つ以上のこの種の実施形態によると、仮想化ソフトウェア層３００のネットワーク・ドライバは、セル式ネットワークを通じて送受信されるパケットを計数して、その使用情報を仮想化ソフトウェア層３００に送信できる。次に、制御情報に設けられる１つ以上の限界に達するときに、仮想化ソフトウェア層３００はそれ自体でそのネットワークを通じる通信を削減することができ、そこでは特定の限界が仮想モバイル機器の特定のタイプの機能を制限するために用いてもよい。特に、限界に達することは、使用情報と限界の差を計算し、差が所定量を超えるか、又はそれに等しいと決定することにより決定され、そこでは、例えば、そして限定されるものではないが、所定量は制御情報に含まれることができるか、又はそれは構成パラメータでもよい。例えば、そして限定されるものではないが、１つの限界はｓｍｓメッセージに関係することができ、別の限界は電話の呼び出しに関係することができ、そして更に別の限界は特定のゲームに関係できる。１つ以上の他の実施形態によると、使用情報は１つ以上の限界に対する情報を分析するＶＭに送信されることができる。また、１つ以上の更なる実施形態によると、制御情報に設けられる１つ以上の限界に達するか又は超えるときに、トランスフォーマー又はトランスフォーマー・スタック３５０のトランスフォーマーの組み合わせはセル式ネットワークを通じて送受信されるパケットを計数することができ、それ自体、そのネットワークを通じて通信を削減できる。これらのケースのいずれにおいても、特定の限界を超えることによって、所定の動作が実行され、その所定の動作は制御情報に示されることができる。例えば、特定の限界を超えることは、モバイル機器が動作不可能になることがあるという点で絶対的であり、又は、特定の限界を超えることは、特定の機能が動作不可能になることがあるという点で「ソフト」、即ち、それほど絶対的ではなく、又は、それは、例えば、そして限定されるものではないが、モバイル機器が特定の市外局番だけへの電話の呼び出しを送受信するために用いることができるように、特定の機能が低下することがあるという点で「よりソフト」である。加えて、制御装置を呼び出すことに関連して、ＶＭは、この種の情報をモバイル機器と関連したディスプレーに表示することによって、及び／又はテキストメッセージを送ることによって、及び／又は音声メール・メッセージを送ることによって、及び／又は電子メール・メッセージを送ることによって、採られている措置を解説する情報をユーザに提供できる。
【００３１】
[0029]このように、本発明の１つ以上の実施形態によると、モバイル機器により使用される多くの携帯電話記録は、仮想化ソフトウェア３００によって、又はトランスフォーマーによって、又はＧＳＭ（登録商標）｛周知のように、ＧＳＭ（登録商標）（Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ（移動通信のための地球規模のシステム：もともとＧｒｏｕｐｅ  Ｓｐｅｃｉａｌ  Ｍｏｂｉｌｅから））は携帯電話用の普及している標準であり、ＧＳＭ（登録商標）は、シグナリング及びスピーチの両チャネルともデジタルであるという点でその前にあったものと異なり、したがって、第２世代（２Ｇ）移動電話システムと考えられる）又はＣＤＭＡ（周知のように、Ｃｏｄｅ−Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ（符号分割多元アクセス）はスペクトラム拡散技術を使用するデジタル・セルラー技術である｝ドライバが接続する多くの記録を追跡し、そしてモバイル機器が、例えば、そして限定されるものではないが、例えば、許可を与えるためにユーザＩＤ及びＰＩＮを用いて許可をリセットすることによって、再初期化されるまで、更なる接続をセットアップしないことによって、−独りでに、又はＶＭからのメッセージに応答して−限界に達するとき又はトランスフォーマーによって、接続を解除する仮想化ソフトウェア層を有するＶＭ（例えば、そして限定されるものではないが、特定の目的ＶＭ）により制御されることができる。
【００３２】
[0030]加えて、仮想化ソフトウェア３００は、管理クライアント３４０を使用するか又はこのために設けられるＶＭを使用して、どの通信／アプリケーションがどのようにして制限されるべきであるかに関する命令、例えば、更新のために管理サーバ５００へ周期的に通信することができる。
【００３３】
[0031]位置ベースのセキュリティ：本発明の１つ以上の実施形態によると、モバイル機器の物理的な位置に基づいて、そして１つ以上の位置及び時間ベースのセキュリティ・ポリシーに基づいて、それは、その機能の１つ以上にアクセスするためにパスワード又はＰＩＮを必要としてもしなくてもよい。
【００３４】
[0032]モバイル機器が指定された期間の間、通常数分、動作しないときに、モバイル機器は自動的にロックするので、典型的なモバイル機器セキュリティ・ポリシーは、ユーザがそれを「アンロックする」ために彼／彼女のモバイル機器にパスワードを入れることを必要とする。例えば、不動作（例えば、キーは押圧されない）の期間の後、スクリーン及びキーボードはロックし、そして許される唯一の入力はユーザのパスワードである。一旦パスワードが入力されると、スクリーン及びキーボードは作動する（それは、通常、デーモン及びバックグラウンド・プロセスがこの種の機能を可能にするために実行し続ける場合である）。あるいは、電話の呼び出しが入るときに、ユーザはスクリーン又はキーによって呼び出しに答えることができるが、デバイスの残りはロックされたままである。多くのユーザが彼らのパスワードを毎日数十回以上入力しなければならないので、彼らはこのセキュリティ機能が面倒であるとわかる。
【００３５】
[0033]本発明の１つ以上の実施形態によると、例えば、そして限定されるものではないが、パスワード入力によるモバイル機器アクセス・セキュリティは、モバイル機器の物理的位置あるいは物理的位置及び／又は物理的位置で過ごされる時間（位置−時間）に基づく。本発明の１つ以上の更なる実施形態によると、特定のセキュリティ・ポリシーは中央管理されたセキュリティ・ポリシーでもよく、そしてそれは、例えば、そして限定されるものではないが、企業サーバからの通信によって変えることができる。
【００３６】
[0034]本発明の１つ以上の実施形態によると、ユーザが事務所又は本拠地（即ち、位置ベースのシナリオ）から物理的に離れている場合にだけ、モバイル機器アクセス・ポリシーは、例えば、そして限定されるものではないが、パスワードを必要とすることがある。１つ以上のこの種の実施形態によると、モバイル機器は仮想モバイル機器であり、そこでは多数のＶＭは、仮想モバイル機器が、多数の、例えば、そして限定されるものではないが、電話（即ち、１つの仮想電話が会社の携帯電話でもよく、そして別の仮想電話が個人の携帯電話である仮想電話）を提供することを可能にし、そこでは仮想電話の各々はそれ自体のセキュリティ・ポリシーを有することができる。このように、そして１つ以上のこの種の実施形態によると、会社の携帯電話へのアクセスには個人の携帯電話より強いセキュリティ要件がある場合がある。
【００３７】
[0035]本発明の１つ以上の実施形態によると、仮想モバイル機器はその現在の地理的位置を決定する。この種の位置の決定は、以下の事項からの情報を得ることに基づくことがあり得る：（ａ）内蔵ＧＰＳデバイス、（ｂ）外部ＧＰＳデバイス（例えば、ＵＳＢケーブルによって、又はブルートゥース接続によって、無線でモバイル機器と通信する車のＧＰＳデバイス）、（ｃ）当業者に周知である多くの方法のいずれか１つを用いた携帯電話の基地局の検出、（ｄ）位置が公知である周知のブルートゥース・デバイス（例えば、デスクトップＰＣはブルートゥース・デバイスを備えることができて、その識別子はモバイル機器にとって公知であり、そしてモバイル機器がデスクトップＰＣのブルートゥース信号の範囲内にあるときに、モバイル機器がそれがデスクトップに近いということを知っているように、その位置も公知である）、（ｅ）当業者に周知である多くの方法のいずれか１つを使用しているｗｉｆｉ基地局、（ｆ）当業者に周知である多くの方法のいずれか１つを使用するこの種の近距離無線通信により保護される通路を通って施設に入ることで起動させられる近距離無線通信、又は（ｇ）他の機構の使用。この種の位置の決定は仮想化ソフトウェア３００を使用して得られることが可能であるか、又はそれは、ＶＭ、例えば、そして限定されるものではないが、仮想化ソフトウェア層３００によって通信する、このために使われる特定のＶＭ（ここではセキュリティＶＭと称する）により開始されて、留意されることができる。位置及び、任意に、その位置にある時間が公知であるならば、セキュリティＶＭは情報をセキュリティ・ポリシーと比較して、比較により指示される適切な措置を実行できる。
【００３８】
[0036]本発明の１つ以上の実施形態によると、モバイル機器が安全な位置にあるという証拠を提供する「証明」の多くのレベル又は程度がある。例えば、モバイル機器は、所定の時間の間、多くの位置のいずれか１つにあることを必要とすることがある（即ち、位置−時間ベースのシナリオ）。例えば、モバイル機器は、ロックを防止するパスワード入力の必要が無効になる前に少なくとも１時間の間、オフィスに指定される位置になければならないかもしれない。別の例として、モバイル機器が多くの所定の位置のいずれか１つにあるときに、モバイル機器をロックする前の時間を延長できる。更に別の例として、所定の非動作期間の後にモバイル機器をロックするべきか否かに関する決定は、時刻に依存する場合がある。例えば、従業員が午前９時００分に職場に到着して、平日には午後７時００分に帰宅する日程を守り、そして従業員は週末及び休日には自宅にいる場合は、モバイル機器が所定の位置にあるこれらの期間の間だけ、パスワード・ロッキングは使用不能である。更にもう１つの実施例として、モバイル機器の電話が「単独である」、即ち、それが近くに他のモバイル機器の存在を検出しない場合は、パスワード・ロッキングは使用不能であり得る。１つ以上のこの種の実施形態によると、モバイル機器（例えば、セキュリティＶＭ）は、当業者に周知である多くの方法のいずれか１つを使用するそれらのブルートゥース・無線によって、他のモバイル機器をスキャンすることによって、それが単独であるかどうか決定する。いくつかのモバイル機器が応答する場合は、事務所においてさえ、モバイル機器はパスワードを必要とするかもしれない。都合のよいことに、自分のモバイル機器を自分の事務所の机の上に置いたままであるときに、これは有用である。他の誰かが事務所に入って、そのモバイル機器を使用しようとする場合は、その人はパスワードを入力しなければならないだろう。
【００３９】
[0037]本発明の１つ以上の実施形態によると、位置なりすまし（例えば、ＯＳ、例えば、ゲストＯＳのうちの１つが損なわれる場合、位置情報はまねされる場合がある）を減らすために、サーバ、例えば、図１に示される管理サーバ５００は、モバイル機器が移動するとき、（例えば、モバイル機器（例えば、セキュリティＶＭ）にこの情報を報告させることによって）その位置を追跡できる。そのとき、サーバのソフトウェアは、当業者に周知である多くの方法のいずれか１つを用いて位置変化を分析する。分析によって、上述のように、即ちＧＰＳデータなどを用いてモバイル機器が得るデータからであるとそれが思う所にあることを確認するために、モバイル機器が前に識別された位置にあることを確かめる。多くの週又は月にわたってモバイル機器の詳細な履歴を維持するサーバは、モバイル機器の最近の位置移行のシーケンスが、当業者に周知である多くの方法のいずれか１つに従う位置移行のその履歴と整合していることを確かめることができる。
【００４０】
[0038]本発明の１つ以上の実施形態によると、モバイル機器が、モバイル機器が信頼された位置にあることを示すために、所定の登録された位置（例えば、そして限定されるものではないが、仕事場、自宅、又はその他の登録された）に入るときに、モバイル機器（例えば、セキュリティＶＭ）は、情報（例えば、そして限定されるものではないが、ビット）を格納できる。信頼された位置にある結果、モバイル機器は自動的にロックされない。そして、モバイル機器が所定の登録された位置から離れるとき、それはその通常モードへ戻る。１つ以上のこの種の実施形態によると、所定の登録された位置へのエントリは、モバイル機器（例えば、セキュリティＶＭ）をサーバ（例えば、管理サーバ５００）と通信させて、位置が所定の登録された位置にあり、そしてそれが信頼されるとみなされるための承認が与えられることをサーバに確かめさせることにより確認されることができる。例えば、自分の事務所に入るときに、モバイル機器（例えば、セキュリティＶＭ）はローカルｗｉｆｉ基地局を検出して、その位置を確認するためにその局を使用できる。１つ以上のこの種の実施形態によると、サーバ（例えば、管理サーバ５００）は、それがモバイル機器を同様にちょうど今登録したかどうか決定するために、ｗｉｆｉ基地局に問い合わせることもできる。
【００４１】
[0039]本発明の実施形態がパスワードの入力により提供されるセキュリティに関して説明されたけれども、更なる実施形態はさまざまなセキュリティ方式に基づいて製造されることができる。例えば、モバイル機器により提供されるさまざまな機能は位置に基づいて制御されることができる。例えば、そして限定されるものではないが、いろいろなファイル又はボリュームへのアクセスは位置ベースであり得、又は、モバイル機器が所定の特定の安全な位置に存在する場合にだけ、アプリケーションを実行できる。
【００４２】
[0040]上記の実施形態の１つ以上によると、位置なりすましを更に回避するために、サーバが、モバイル機器のその追跡が信頼できることをユーザに保証できるように、モバイル機器とサーバの間の暗号化された通信を使うことができる。モバイル機器（作業に割り当てられる仮想化ソフトウェア又はＶＭ）が、セキュリティの侵害を検出する（例えば、整合した挙動を確実にするためにモバイル機器の位置の記録された履歴と比べることによって）場合は、仮想化ソフトウェアは、ひとりでに、あるいはＶＭ又はサーバからの命令に応答して、スクリーン及び／又はモバイル機器のキーボードをロックすることができる。あるいは、トランスフォーマー・スタック３５０の１つ以上のトランスフォーマーは、スクリーン及び／又はキーボードへのアクセスを阻止するために利用できる。
【００４３】
[0041]本発明の１つ以上の実施形態によると、分析がロックが必要なことを示すときに、例えば、そして限定されるものではないが、タイムアウトの満期又は安全でない位置への移動によって、ロックがスクリーン及び／又はキーボードをロックすることに加えて実施されるときに、所定の機能（例えば、そして限定されるものではないが、電話の呼出しを行う）を提供するＶＭを中断できる。この例では、仮想化ソフトウェアはモバイル機器による通信の受領を認めることができるが、それらは、ＶＭが喚起されるまで、仮想化ソフトウェアで待ち行列に入れられる。あるいは、機能は、制御情報をトランスフォーマー・スタック３５０の１つ以上のトランスフォーマーに送って、それ／それらに所定の機能を中断させるか、又は後で可能にすることにより中断されることができる。
【００４４】
[0042]本発明の１つ以上の実施形態によると、それ自体の位置を追跡するモバイル機器の代わりに、状況次第で、通信事業者自体がモバイル機器の位置を確認する（例えば、９１１コールの場合は、通信事業者は警察に電話の位置を告げる）。そして通信事業者はモバイル機器に、又はモバイル機器に位置情報を転送するサーバにその位置情報を送る。
【００４５】
[0043]モバイル機器内の破壊工作ソフトを制限する：モバイル機器が破壊工作ソフトによって損なわれる場合は、セキュリティは破られることが可能である。例えば、この種の破壊工作ソフトは、人が、個人的な会話を盗聴し、動きを追跡し、個人情報、例えばＵＲＬ、電子メール、連絡先リスト、暗証番号などにアクセスすることを可能にするために用いることができる。通常、この種のモバイル機器が常にオンであるが、ユーザがそれを見守っていることができないので、セキュリティの侵害はモバイル機器の場合にはより重大である場合がある。その結果、単にユーザに疑わしい挙動に対して警戒させることは有用であるが、不十分でもあるかもしれない。これに加えて、自分自身のモバイル機器によってスパイされることの防止は、従来の破壊工作ソフトの検出よりも困難である。これは、モバイル機器がモバイル機器に関して無害の作用を使用する攻撃のタイプに弱いからである。例えば、ユーザの位置を追跡して、遠隔サーバを更新する多くのアプリケーションがあり、これらの多くはソーシャル・ネットワーキング・アプリケーションであり、そしてモバイル機器の所有者はこの種の動作を許可する。別の例として、モバイル機器の位置に基づいてなんらかの作用、例えば「ジオタギング」を生むことができる他のアプリケーションがある。更に別の実施例として、ユーザが言っていることを記録して、記録を音声認識処理のためのリモートサーバに送信する、更に他のアプリケーションがある。また、時間と場所に基づいて、それらがマイクロフォン入力を記録し始めて、その情報を第三者サーバに送信するためにモバイル機器を起動させるように、これらのアプリケーションを組み合わせることは可能である。これが起こることをユーザが望むことがないにもかかわらず、アプリケーション自体は全て有効なアプリケーションであるので、それは防止するのが難しい。従来のウイルス検出製品はこの種のセキュリティ侵害を検出しない。
【００４６】
[0044]本発明の１つ以上の実施形態によると、仮想モバイル機器は、モバイル機器、例えば、そして限定されるものではないが、ハンドセットに１つ以上の「仮想」電話があり、その仮想電話は、仮想化ソフトウェア層（例えば、ハイパーバイザ）において実行するゲストＯＳ（ＶＭと呼ばれる）でゲスト・アプリケーションとして実行する。上で説明されたように、仮想モバイル機器で、各ゲストＯＳは物理的デバイスに直接アクセスしないで、むしろ、ゲストデバイスのゲストＯＳアクセスは仮想化ソフトウェア層にトラップされて、物理的デバイスへのアクセスは、本当のデバイスにおいて適切な動作を行うために仮想化ソフトウェア層により実行される。
【００４７】
[0045]本発明の１つ以上の実施形態によると、仮想化ソフトウェア層３００は、本当のデバイス・ドライバの状態に関連した情報を集めて、この情報を、例えば、そして限定されるものではないが、周期的なベースで、仮想化ソフトウェア層の、又はこのために設けられた特定のＶＭ（ここではセキュリティＶＭと称される）のウイルス保護ソフトウェア・モジュールに送る。１つ以上のこの種の実施形態によると、ウイルス保護ソフトウェア・モジュールは、それが物理的デバイス・ドライバの１つ以上に関して受け取る情報に基づいて動作を起動させることができる一組の規則を有する。例えば、そして限定されるものではないが、規則は、音声マイクロフォンが使用可能であり、そしてＴＣＰ接続があて先アドレスの特定のセットに可能になるときはいつでも、警報を発しなければならないと記載するだろう。１つ以上のこの種の実施形態によると、セキュリティサーバ（例えば、管理サーバ５００）は、「規則セット」を、例えば、そして限定されるものではないが、周期的なベースでモバイル機器に送信できる。更に、１つ以上の更なるこの種の実施形態によると、警報を発することは、例えば、そして限定されるものではないが、音声メッセージ及び／又はテキストメッセージを提供することによって、そして／あるいはスクリーン上にメッセージを提供することによって、そして／あるいはスクリーン表示を明滅させることによって、ユーザに警報を送ることを含む。加えて、１つ以上の更なる実施形態によると、警報を発することは、規則の特定のセットに関するか又は関連した１つ以上の所定のアプリケーションにモバイル機器をロックすることを必要とする場合がある。この種のロックは、トランスフォーマー・スタック３５０の１つ以上のトランスフォーマーに制御情報を送ることによって発生する場合があり、又はこの種のロックは、モバイル機器のＶＭの１つ以上への通信を不能にすることによって発生する場合がある。
【００４８】
[0046]モバイル移行：実行ＶＭはチェックポイントされて、その全状態は単一のファイルにカプセル化されることができる。このファイルは、その後になってからか、それとも異なるコンピュータ又はハンドセットで、ＶＭの実行を続けるために用いることができる。無線待ち時間があまりにも長いか、ハンドセット又はその他の組込形デバイスの不十分な資源があるときに、計算が周辺デバイスにより近くなるように、ハンドセットのＶＭが別のハンドセットに移行することは有用な特徴である。本発明の１つ以上の実施形態によると、例えば、そして限定されるものではないが、電話の機能のようなモバイル機器の機能は、１つのモバイル機器から別の機器へ、あるいは１つのモバイル機器からネットブック・コンピュータ、ラップトップ・コンピュータ、デスクトップ・コンピュータ、又は充分な計算パワー及び連結性を有する他のいかなるコンピュータ化されたデバイスへ移行される。１つ以上のこの種の実施形態によると、機能はＶＭを使用して最初に実施されて、それから、ＶＭは、カリフォルニア州、パロアルトのＶＭウェア（ＶＭｗａｒｅ）社により使用される、Ｖｍｏｔｉｏｎと呼ばれる方法のような、当業者に周知である１つ以上の方法を用いて移行される。有利であることに、本発明の１つ以上の実施形態で、ユーザは、例えば、そして限定されるものではないが、ユーザがユーザの位置に基づいて、又は単にファッションのために適当な電話を使用することを可能にするために、彼（女）の電話を１つの物理的デバイスから別のデバイスへ「動かす」ことができる。１つ以上のこの種の実施形態によると、移行は、無線通信事業者を使用するか、あるいはｗｉｆｉ又は物理的なワイヤ接続を使用して実施されることができる。１つ以上の実施形態によると、移行の方法は、目標モバイル機器を選択する段階と、仮想電話を表すＶＭを順番に並べる段階と、例えば、そして限定されるものではないが、ストリーミングによって順番に並べられたＶＭをソース・モバイル・デバイスから目標デバイスへ転送する段階とを含む。１つ以上の更なる実施形態によると、移行の方法は、仮想電話を表す順番に並べられたＶＭをコンピュータ又は他の手段、例えば、そして限定されるものではないが、管理サーバ５００又は別のモバイル機器を用いるサービスプロバイダへ転送する段階と、そして順番に並べられたＶＭを目標デバイスへ転送する段階とを含む。１つ以上のこの種の実施形態によると、本方法は、（ａ）目標モバイル機器だけで呼び出しを受け取るために、当業者に周知である多くの方法のいずれか１つに従ってソース及び目標ＳＩＭチップを再プログラムする段階、又は（ｂ）ＳＩＭチップをＶＭとともに仮想化して、転送する（ＳＩＭ、そのリーダー及び制御回路はハードウェア・デバイスであり、そして、このように、その機能は、他のハードウエア・デバイスが仮想化される方法と類似の方法でエミュレートされることができる点に注意する）段階、又は（ｃ）サービスプロバイダに変化を知らせて、サービスプロバイダに呼び出しを目標モバイル機器だけに転送させる段階を更に含む。
【００４９】
[0047]本発明の１つ以上の実施形態によると、いくつかの異なるタイプの移行がある：
（ａ）ハンドセットにおけるＶＭのセルフサービスのインストレーション、（ｂ）コールド運動（これは、ＶＭをシャットダウンし、それを移動し、それから他の装置でそれを起動する段階を伴う）、（ｃ）ＶＭを中断するか又はチェックポイントし、その状態を別のハンドセットの方へ移動し、それからその実行を他のハンドセットで再開する段階を伴うウォーム運動、（ｄ）ホット運動（又はライブ移行）（そこでは、その一方で、ＶＭは１つのハンドセットで動作していて、あたかもそれが決して動作するのを止めなかったかのように、それを別のハンドセットの方へ動かしている）、（ｅ）上記のいずれかを含むクローニング（しかし、ＶＭは、最初のハンドセットで動作するか、あるいは常にいかなるハンドセットでも動作するＶＭの唯一の例があることを確実にする）。
【００５０】
[0048]ＶＭのセルフサービスのインストレーション：モバイル機器、例えば電話にＶＭを載せる多くの方法がある−（ｉ）ＵＳＢケーブル、（ｉｉ）セキュア・デジタル・カード、又は（ｉｉｉ）電波を通じてダウンロードする。本発明の１つ以上の実施形態によると、仮想化ソフトウェアがハンドセットのようなモバイル機器で実行されるときに、ユーザはＶＭのセルフサービスのチェックアウトをすることができる。これを行うために、１つ以上のこの種の実施形態によると、ユーザは、（ａ）本願明細書において、「セルフサービス」サーバと称されるサーバによって設けられる、例えば、そして限定されるものではないが、http://www.acme.com/virtualphone.html;と識別されるウェブサイトに行き、（ｂ）ログオンし、（ｃ）パスコード、例えば、そして限定されるものではないが、モバイル機器と関連する電話番号を入力し（いくつかのパスコード、例えば、モバイル機器と関連する電話番号がある場合があり、そこでは、例えば、そして限定されるものではないが、１つのパスコードは、例えば、特定のＶＭと関連する場合がある）、そして（ｄ）そのパスコード、例えば電話番号のための所望のＶＭを選択する。セルフサービスのサーバ、例えば、管理サーバ５００は、例えば、指定された電話番号で、パスコードと関連した通信路を使用する電話によって、メッセージ、例えば、SMSメッセージをモバイル機器に送り、そしてメッセージは所定のＶＭとの通信リンクを含み、例えば、リンクは、ＵＲＬの最後に固有のコードを有するサーバに対するＵＲＬ、例えば、http://www.acme.com/downloadvirtualphone/abcdl234でもよい。コードａｂｃｄｌ２３４は特定のユーザ及び所望のＶＭを識別する。同時に、このために設けられる仮想化ソフトウェア又はＶＭ（インストレーションＶＭと呼ばれる）は、デバイス・ドライバを起動して、それがＶＭを取り出しやすいようにする。１つ以上のこの種の実施形態によると、サーバと連絡する動作によって、仮想化ソフトウェア又はインストレーションＶＭはＶＭをダウンロードし始めるためにそのサーバへ行く。１つ以上のこの種の実施形態によると、仮想化ソフトウェアはブラウザ・トラフィックをスヌープするか、又はＳＭＳトラフィックをスヌープすることができるが、いずれにせよ、このスヌーピングは、仮想化ソフトウェアに、どこでそれがデータを取り出さなければならないＩＰアドレスと同様にそれが採らなければならない措置を知らせることである。
【００５１】
[0049]１つ以上の更なるこの種の実施形態によると、認証、証明、及び暗号化は介入者攻撃から保護する。ベリサインのような第三者認証機関を使用することを回避するために、仮想化ソフトウェアが公開鍵を有し、そしてセルフサービス・サーバが、仮想化ソフトウェア作成者の私有鍵を使用して暗号化されるそれ自体の公開鍵を有する、公開鍵暗号方式に依存するプロトコルを使うことができる。これを述べる別の方法は以下の通りである。１つ以上のこの種の実施形態は、３つの実体又はソフトウェアシステム―セルフサービスのサーバ（Ｓ）、仮想化ソフトウェア（Ｖ）、及び仮想化ソフトウェア（Ｃ）のディストリビュータ又は作成者の関与を伴う。ハンドセットにインストールされる仮想化ソフトウェアはＣの公開鍵を含み、これを公開Ｃと呼ぶ。仮想化ソフトウェア及びサーバが確実に通信するために、ＣはＳの公開鍵を必要とする。Ｃは、Ｓが保証されて、偽のサイトでないことを知る必要もある。セルフサービス・サーバＳは、作成者の私有鍵を使用して暗号化された、その公開鍵、公開Ｓを有する。これを解読する唯一の方法は作成者の公開鍵によってであるが、それはすでに仮想化ソフトウェアにある。それで、仮想化ソフトウェアが、サーバの公開鍵を含むメッセージを解読するために作成者からの公開鍵を使用できる場合は、仮想化ソフトウェアは、サーバが認証されているということを知っている。あるいは、インストレーションＶＭは仮想化ソフトウェアの代わりに使うことができる。
【００５２】
[0050]コールド運動（「コールド」という用語は、ＶＭが移動の前にシャットダウンされるという事実を指す）：本発明の１つ以上の実施形態によると、ＶＭは少ないファイルで動作するために必要なすべてを含む。このように、これらのファイルを新規なハンドセット・デバイスの方へ動かすことによって、ＶＭがそのデバイスで動作できる。ＶＭはソース・デバイスの周辺デバイスと同一であるか又は同一でなくてもよい一組の周辺デバイスを有する。更に、行先デバイスは、いろいろな周辺デバイス、いろいろなアーキテクチャ生成、又はいろいろなアーキテクチャさえ有することができる。１つ以上のこの種の実施形態によると、周辺デバイスは仮想化されて、仮想化ソフトウェアのデバイス・トランスフォーマーは１つのデバイスを別のデバイスにマップする。
【００５３】
[0051]ウォーム運動：本発明の１つ以上の実施形態によると、ＶＭは１つのハンドセットから別のハンドセットへ動かされて、その実行は第２ハンドセットで再開される。
【００５４】
[0052]ホット運動：本発明の１つ以上の実施形態によると、これはホストコンピュータ間のライブ移行と同様であり、そこではＶＭは実行中に動かされる。本発明の１つ以上の実施形態によると、ライブ移行は、ＶＭをチェックポイントし、それを別のモバイル機器で起動することにより起こるが、ＶＭは、最初のモバイル機器で動作するか、あるいはいかなるモバイル機器でも動作するＶＭの１つの例だけがあることを確実にする。
【００５５】
[0053]本発明の１つ以上の実施形態によると、通信が進行中である場合は、そして通信がｗｉｆｉによる場合は、通信ストリームが終わるまで、最初のデバイスの仮想化ソフトウェアは新規なデバイスの仮想化ソフトウェアにパケットを転送する。新規な通信は最初のデバイスを自動的にバイパスする。この場合、ＶＭが同じＩＰ及びＭＡＣアドレスを有するように、仮想化ソフトウェアはＮＡＴ（ネットワーク・アドレス・トランスフォーマー）のように作用するが、新規なＩＰ及びＭＡＣアドレスは遠隔デバイスに提示される。通信がセルラーネットワーク、電話あるいはＩＰによる場合は、解決策は異なる。２つの実行できる解決策がある。１つの解決策は、各仮想電話がそれ自体の固有電話番号を有することである。この番号の電話は安定な位置のサーバにある。この種の解決策によると、呼び出しは、電話へ、又はそれから直接に来ずに、この安定な位置から来る。更に、入って来る電話は仮想電話を含むハンドセットに転送される。また更に、ハンドセットが最初の呼び出し側ＩＤを見て、安定な位置の呼び出し側ＩＤを見ないように、開始された電話の実際の呼び出し側ＩＤはサーバによって記録される。ハンドセットが、呼び出しが特定のＶＭにあったかどうかについて知る必要がある場合は、サーバはその情報をハンドセットに後で伝達できる。例えば、各仮想電話の「受け取った電話」ログは、安定なサーバからのメッセージによって、通話が終わった後に回復されることが可能である。第２解決策は、電話に複数のＳＩＭを有するか、又はＳＩＭを仮想化することである。特定の電話は、ベースバンド・プロセッサが仮想化されることができるようにする。そのような場合、仮想化モバイル機器はベースバンド・コードの２つ以上のコピーを実行して、各々に仮想ＳＩＭデータを提供して、無線アンテナを多重送信する。いずれにせよ、ホット運動の間、最初のハンドセットは、行き先のハンドセットへの音声接続をしなければならない。これは多くの方法のいずれかで行われることができる：スピーカの音声が遠隔デバイスに無線で通信されるように、遠隔デバイスはブルートゥース・ヘッドセットのような働きをさせられることができて、そして、あたかもそれがマイクロフォンから来るかのように、それは遠隔デバイスから音声を受け取る。Ｗｉｆｉは、まるでブルートゥース接続のようにいずれの方向にも音声を送信するようにされることができる。
【００５６】
[0054]クローニング：前の運動モードのいずれにおいても述べられなかったけれども、仮想電話は一度に１つだけのハンドセットで実行する、即ち、それが最初のハンドセットから動かされたあと、あるとしても、それがそれへ戻されるまで、それはそのハンドセットでもはや実行しないと仮定された。しかしながら、本発明の１つ以上の実施形態によると、２つの仮想電話（即ち、１つは最初の電話で実行し続け、そして１つは転送先の電話で動作し始める）があるように、仮想電話は「クローンされる」。仮想電話が２つ以上の異なるハンドセットで実行しているときに、以下の挙動は適切である。入って来る電話の呼び出しによって、仮想電話の各々は、従来の固定電話シナリオにおいて複数の親子電話を有するように鳴る。事実、クローンされた電話と複数の親子電話の唯一の違いは、関係する電話の呼出しがないときに起こることである。内線電話の場合は、２つの内線電話をとることは、通常、それらが電話の呼び出しをせずに互いに話すことができることを意味する。クローンされた電話の場合は、これは不可能である。
【００５７】
[0055]ロックされたモバイル器具：安全な環境をモバイル機器空間の高感度アプリケーションに提供する満足な共通プラットフォームがない。Ｊａｖａ（登録商標）は、約束通り、特に安全な方法で、共通プラットフォームを一度書けばどこででも走るプログラミングに移動空間において提供しない。ユーザが安全な方法で彼らの口座及び情報にアクセスすることができるために、安全なアプリケーションを提供することを望む、銀行、保険会社、ブローカーディーラーのような多くの組織もある。本発明の１つ以上の実施形態によると、組織は、ＶＭを「モバイル器具」としてパッケージ化して、仮想モバイル機器で動作するために、それをユーザに配布できる。１つ以上のこの種の実施形態によると、仮想化ソフトウェア層は器具を分離して、それへの無許可のアクセスを防止する。器具はコード及びデータを含む画像又はデータ・ファイルである。他のいかなるＶＭ又はアプリケーションもデータにアクセスするか又はコードを修正することができないように、それはデバイス記憶装置で暗号化されることができる。器具が実行するときに、画像のページはＳＲＡＭ又はメモリに組み込まれて、仮想化ソフトウェアにより解読される。ＡＣＥ又はオフラインＶＤＩから借用された他の技術は、モバイル器具を保護して、管理するために実施されることができる。
【００５８】
[0056]当業者は、さまざまな変更態様及び改変が、添付の特許請求の範囲に記載したように本発明のより広い精神と範囲を逸脱しない範囲で本願明細書に記載されている特定の実施形態になされることができると理解する。したがって、前述の説明及び図面は限定的意味よりはむしろ例証とみなすべきである。
【００５９】
[0057]本願明細書に記載されている各種実施形態は、コンピュータシステムに格納されるデータを含むさまざまなコンピュータ実施動作を使用できる。例えば、これらの動作は、通常、しかし必然的にではなく、物理量の物理的処置を必要とすることがあり、これらの量は電気又は磁気信号という形をとることができて、そこではそれら、又はそれらの表現は、格納され、移され、結合され、比較されるか、又は処置されることができる。更に、この種の処置は、生成、識別、決定、又は比較のような用語でしばしば称される。本発明の１つ以上の実施形態の部分を形成する本願明細書に記載のいかなる動作も、有用な機械動作である場合がある。加えて、本発明の１つ以上の実施形態は、これらの動作を実行するデバイス又は装置にも関する。装置は特定の必要な目的のために特別に構成されることができるか、又はそれは、コンピュータに格納されたコンピュータプログラムによって選択的に作動するか又は構成される汎用コンピュータでもよい。特に、さまざまな汎用機械が本願明細書の教示に従って書かれたコンピュータプログラムを用いて使用されることができるか、又はそれは必要な動作を実行するためにより専門化した装置を構成するのにより便利である場合がある。
【００６０】
[0058]本願明細書に記載されているさまざまな実施形態は、携帯用デバイス、マイクロプロセッサシステム、マイクロプロセッサ・ベース又はプログラム可能な家電、ミニコンピュータ、メインフレームコンピュータなどを含む、他のコンピュータシステム構成により実践されることができる。
【００６１】
[0059]本発明の１つ以上の実施形態は、１つ以上のコンピュータプログラムとして、又は１つ以上のコンピュータ可読媒体に組み入れた１つ以上のコンピュータプログラム・モジュールとして実施されることができる。用語「コンピュータ可読媒体」は、コンピュータシステムに後で入力されることができるデータを格納できる、いかなるデータ記憶デバイスも指し、コンピュータ可読媒体は、コンピュータプログラムをそれらがコンピュータによって読み込まれることを可能にする方法で実現するために、いかなる既存であるか又は後に開発される技術にも基づいてもよい。コンピュータ可読媒体の例は、ハードディスク、ネットワーク接続ストレージ（ＮＡＳ）、読出し専用メモリ、ランダムアクセス・メモリ（例えば、フラッシュメモリ・デバイス）、ＣＤ（コンパクトディスク）ＣＤ―ＲＯＭ、ＣＤ―Ｒ、又はＣＤ―ＲＷ、ＤＶＤ（デジタル汎用ディスク）、磁気テープ、ならびに他の光学及び非光学データ記憶デバイスを含む。コンピュータ可読コードが分散されて格納されて、実行されるように、コンピュータ可読媒体はネットワーク結合コンピュータシステムに分散されることもできる。
【００６２】
[0060]本発明の１つ以上の実施形態が明確に理解するために少し詳しく説明されたが、特定の改変及び変更態様が特許請求の範囲内でなされることができることは明らかである。したがって、記載されている実施形態は例示的であり限定的でないと考えられるべきであり、そして特許請求の範囲は本願明細書に与えられた細部に限定されるべきではなくて、特許請求の範囲及び相当の中で修正されることができる。特許請求の範囲において明確に述べられない限り、要素及び／又は段階は動作のいかなる特定の順序も意味しない。
【００６３】
[0061]加えて、記載されている仮想化方法が、通常、仮想計算機が特定のハードウェア・システムと整合したインタフェースを提示すると仮定するのに対して、当業者は、記載されている方法がいかなる特定のハードウェア・システムにも直接対応しない仮想化と連動して用いられることが可能であると認めるだろう。ホストされた実施形態、ホストされない実施形態として、又は２つの差異をぼやけさせる傾向がある実施形態として実施される、さまざまな実施形態に従う仮想化システムは全て想定される。更にまた、さまざまな仮想化動作は、ハードウェアにおいて完全に又は部分的に実施されることができる。例えば、ハードウェア実装は、非ディスクデータを保証するためにストレージ・アクセス要求の変更態様のためのルックアップテーブルを使用できる。
【００６４】
[0062]多くの変形、変更態様、追加、及び改良は、仮想化の程度に関係なく可能である。仮想化ソフトウェアは、従って、仮想化機能を実行する、ホスト、コンソール、又はゲスト・オペレーティングシステムの構成要素を含むことができる。複数の例は、単一の例として本願明細書に記載されている構成要素、動作、又は構造のために提供されることができる。最後に、さまざまな構成要素、動作、及びデータ蓄積の間の境界はいくらか任意であり、そして特定の動作が特定の例示的構成との関連で例示される。他の機能配分が想定されて、本発明の範囲に含まれることができる。一般に、典型的な構成において、別々の構成要素として提示される構造及び機能は、複合した構造又は構成要素として実施されることができる。同様に、単一の構成要素として提示される構造及び機能は、別々の構成要素として実施されることができる。これらの、そしてまた他の変形、変更態様、追加、及び改良は、添付の特許請求の範囲に入ることができる。
【図１】
0005596785.tif 000002