JP5596785B2 - 仮想モバイル機器 - Google Patents

仮想モバイル機器 Download PDF

Info

Publication number
JP5596785B2
JP5596785B2 JP2012517816A JP2012517816A JP5596785B2 JP 5596785 B2 JP5596785 B2 JP 5596785B2 JP 2012517816 A JP2012517816 A JP 2012517816A JP 2012517816 A JP2012517816 A JP 2012517816A JP 5596785 B2 JP5596785 B2 JP 5596785B2
Authority
JP
Japan
Prior art keywords
mobile device
transformer
mobile
stack
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012517816A
Other languages
English (en)
Other versions
JP2012531676A (ja
Inventor
ローゲル,ローレンス,エス.
ディヴァイン,スコット,ダブリュー.
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
VMware LLC
Original Assignee
VMware LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by VMware LLC filed Critical VMware LLC
Publication of JP2012531676A publication Critical patent/JP2012531676A/ja
Application granted granted Critical
Publication of JP5596785B2 publication Critical patent/JP5596785B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephone Function (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

本発明は、仮想モバイル機器に関する。
[関連出願の相互参照]
[0001]本願は次の出願に関連があり、それらの出願は本願の譲受人に譲渡され、本願と同じ日に出願されていて、そして「仮想モバイル機器の使用制御」、「仮想モバイル機器のセキュリティの提供」、「仮想モバイル機器のマルウェア攻撃の防止」、及び「仮想モバイル機器の移行機能」という名称である。
[0002]モバイル機器とは、通常、携帯電話のようなデバイス(例えば、アイフォンという名でアップル社により設計されて、市場に出されたインターネット接続するマルチメディアのスマートフォン、又はリサーチ・イン・モーション社(Research In Motion Limited)により販売されているブラックベリー(BlackBerry)(登録商標)スマートフォン)、メディア・プレーヤ、ハンドヘルドゲーム装置、計算器などを指す。周知のように、この種のモバイル機器は、通常、デスクトップ又はラップトップ・コンピュータと比較して限られた物理メモリを備えていて、それらが電池電力で通常作動するので、それらの電力節約機能のため、それらはARMアーキテクチャ(以前は、高度RISCマシーン、そしてその前は、エイコーンRISCマシーン)を有するプロセッサを使用する。また周知のように、ARMアーキテクチャとは、多くの埋め込み設計において広く使われている、英国、メードンヘッド(Maidenhead)のARMホールディングス(Holdings)社により開発された32ビットRISCプロセッサ・アーキテクチャを指す。
特許出願第12/466,159号明細書
メモリ及びCPU規制に関連したこの種の問題によって、この種のモバイル機器を使用する際に問題が生じる。
[0003]本発明の1つ以上の実施形態はモバイル機器を提供する。特に、本発明の一実施形態は、1つ以上の仮想計算機をサポートする仮想化ソフトウェア層を含むモバイル機器であり、モバイル機器は、(a)1つ以上の仮想計算機のゲスト・デバイス・ドライバと通信するデバイス・エミュレーショタであって、前記ゲスト・デバイス・ドライバが、前記デバイス・エミュレータによってエミュレートされた、エミュレートされた物理的デバイスと相互に作用するデバイス・エミュレータ、(b)モバイル機器の1つ以上の物理的デバイスと通信する実際のデバイス・ドライバであって、前記実際のデバイス・ドライバが、前記エミュレートされた物理的デバイスによってサポートされる機能に相当するが異なる機能を実行する物理的デバイスと通信する、実際のデバイス・ドライバ、ならびに(c)前記デバイス・エミュレータと前記実際のデバイス・ドライバとの間でデータ及び制御情報を伝達する1つ以上のトランスフォーマーを含むトランスフォーマー・スタックであって、データ及び制御情報を変換し、前記エミュレートされた物理的デバイスによってサポートされる機能に相当するが異なる機能を要求する前記ゲスト・デバイス・ドライバに応答して、前記物理的デバイスの前記機能を前記物理的デバイスが動作できるようにする、トランスフォーマー・スタックを備え、前記トランスフォーマーの1つ以上が、データ及び制御情報の流れの経路において前記トランスフォーマーの更に1つ以上を示す機能ポインタを含む
[0004]本発明の1つ以上の実施形態に従って製作される仮想モバイル機器のブロック図を示す。
[0005]図1は、本発明の1つ以上の実施形態に従って製作される仮想モバイル機器100のブロック図を示す。図1に示すように、仮想モバイル機器100は、モバイル機器ハードウェア200、モバイル機器ハードウェア200と相互に作用する仮想化ソフトウェア層300、及び仮想化ソフトウェア層300と相互に作用する仮想計算機(「VM」)400〜400を含む。図1に更に示すように、モバイル機器ハードウェア200は、CPU210(例えば、そして限定されるものではないが、ARMプロセッサ210)、メモリ220、さまざまなデータ・ネットワーク・インターフェース・デバイス230(例えば、そして限定されるものではないが、wifiデバイス230)、さまざまな電話インタフェース240(例えば、そして限定されるものではないが、セル方式無線電話240)、さまざまなモバイル機器表示及び音声入力/出力デバイス250〜250(例えば、そして限定されるものではないが、液晶表示デバイス250、タッチスクリーン表示デバイス250、音声入力/出力デバイス250(例えば、そして限定されるものではないが、スピーカ)など)及び位置決定デバイス260(例えば、そして限定されるものではないが、GPS決定デバイス260)を含む。
[0006]本願明細書に記載されている発明の1つ以上の実施形態は、仮想モバイル機器の使用方法を提供する。本願明細書で用いるように、用語「モバイル機器」は、それが、例えば、そして限定されるものではないが、携帯及び/又はセル方式電話、スマートフォン、インターネット接続するマルチメディアのスマートフォン、メディア・プレーヤ、ハンドヘルドゲーム装置、計算器などのようなデバイスを含むように、最も幅広く用いられる。
[0007]本発明の1つ以上の実施形態によると、図1に示すように、仮想モバイル機器100は、仮想モバイル機器を提供するためにモバイル機器ハードウェア200で動作する、例えば、そして限定されるものではない、ハイパーバイザ(仮想計算機モニタと呼ばれることがある)のような仮想化ソフトウェア層300を含む。1つ以上のこの種の実施形態によると、この種の仮想モバイル機器で、本願明細書に記載されている本発明の方法をドライブするアプリケーションは、(a)オペレーティングシステム(ゲスト・オペレーティングシステム(「ゲストOS」)、即ち、仮想化ソフトウェア層300のゲストと呼ばれることがある)において、ゲストOS410〜410として(そこではコンピュータ仮想化の当業者は、この種のゲストOS410〜410が仮想化ソフトウェア層300によって、どのようにサポートされるかを容易に理解する)、(b)仮想化ソフトウェア層300でサポートされるアプリケーション・コンテナ内で、(c)仮想化ソフトウェア層300内のソフトウェア・モジュール、又は(d)前述のいくつかの組み合わせで動作する。2009年5月14日に出願された特許文献1である「仮想化のためのインプレース・シャドウテーブル」という名称である係属する特許出願は、本出願の譲受人により所有されて、本願明細書において引用したものとして、仮想化ソフトウェア層300を仮想モバイル機器100に提供する方法を記載する。
[0008]当業者が図1から理解できるように、いくつかのVM400〜400は仮想モバイル機器コンピュータ100で実行することができ、それらが別々のデバイスで実行しているかのようにそれらは互いから保護される、即ち、いずれのVMも、この種のVMが物理的に別々のハンドセットに置かれる場合そうであるだろうより、いかなる同じ位置に配置された、障害が起きた(即ち、ウイルスに感染した)VMに対して攻撃されやすいことはない。これは分離と呼ばれ、そして分離は、ベースバンド・スタック、即ち、セルラー電話網と相互に作用する携帯電話の一部を保護するために、携帯電話のようなモバイル機器において重要である。これは、障害が起きたベースバンド・スタックがセルラー電話網全体に大混乱を起こす場合があるからである。実際、多くのスマートフォンはこの種の分離を提供するために現在2つのプロセッサチップを備えていて、ベースバンド・ソフトウェアはROMに焼きつけられる。しかしながら、マルチコアチップ及びより高い容量の単一コアの出現は、ベースバンド及びアプリケーション機能を単一のチップに結合することを有利にする。
[0009]図1に更に示されるように、ゲストOS410〜410はゲスト・アプリケーションを実行する。周知のように、CPU、メモリ、及びデバイスの全ては、実際のハードウェアから切り離されるVMを有するために仮想化されなければならない(例えば、そこにおいて各VMは、それが専用のハンドセット、即ち物理的な電話で実行していると思っている)。仮想化ソフトウェアを設計するときに、いくつかの選択肢がある。1つのそのような選択肢に従って、ゲストOSはそのまま動作することができ、それは完全な仮想化として公知であり、又は、第2の選択肢に従って、ソースコードは修正されることができ、それは準仮想化として公知である。周知のように、モバイル機器は通常1つ以上のプロセッサを備え、その各々は多くの場合ARMコアである。
[0010]知られているように、典型的モバイル機器は、例えば、そして限定されるものではないが、スクリーン、キーボード及びボタン、ラジオ、GPS、ブルートゥース・デバイス、カメラ、撮像装置、マイクロフォン、スピーカなどのようなデバイスの大きいコレクションを含む。
[0011]図1に示すように、ゲストOS410〜410は、1組のデバイス・ドライバ(単一のゲスト・デバイス・ドライバ410〜410によって実例として示される)を含む。実際のデバイスと相互に作用するよりはむしろ、これらのゲスト・デバイス・ドライバは、エミュレートされたか仮想化されたデバイスと相互に作用する。図1に更に示すように、仮想化ソフトウェア300は、VM400〜400のデバイスを仮想化するデバイス・エミュレータ320〜320を含み、そして仮想化ソフトウェア300は、モバイル機器100の物理的デバイスと相互に作用するデバイス・ドライバ(デバイス・ドライバ310及び310によって実例として示される)を含む。完全に仮想化されたゲストOSデバイス・ドライバは、物理的デバイスと関連した特定の物理アドレスを読込み又は書込むことを試み、しかしながら、デバイス・エミュレータ・ソフトウェアを有する仮想化ソフトウェア300に対する各アクセストラップが適切な動作を復号化するように、仮想化ソフトウェア300はこれらのページが読み取れない及び書込みできないものであることを示す。あるいは、ゲスト・デバイス・ドライバが仮想化ソフトウェア300に直接の呼び出しをするように、それは準仮想化されてもよい。いずれにせよ、エミュレートされたデバイスは、次に、物理的デバイスと相互に作用する実際のデバイス・ドライバと最終的に通信する。このように、流れは、ゲスト・デバイス・ドライバ〜デバイス・エミュレータ〜実際のデバイス・ドライバ〜物理的デバイスである。物理的デバイスと相互に作用する実際のデバイス・ドライバは仮想化ソフトウェア300の一部であってもよく、又は、そして場合によっては、実際のデバイス・ドライバが特定のオペレーティングシステムを仮定できるので、「バグの多い」ドライバ・コードが残りの仮想化ソフトウェア300を損なわないように、それは特別なドライバVMにあってもよい。
[0012]図1に示すように、本発明の1つ以上の実施形態によると、VMは、実際には、それがデバイス・エミュレータと相互に作用しているが、それが物理的デバイスと相互に作用していると考える。更に、1つ以上のこの種の実施形態によると、このデバイス・エミュレータは、フィルタ、データ・トランスフォーマー、マルチプレクサ、及び/又はデマルチプレクサを含む、一連のトランスフォーマーを備えるトランスフォーマー・スタック350を通してデータを送る。1つ以上の更なる実施形態によると、デバイス・エミュレータの1つ以上は直接デバイス・ドライバと相互に作用する。
[0013]本発明の1つ以上の実施形態によると、デバイス・エミュレータと実際のデバイス・ドライバの間を流れるとき、トランスフォーマー・スタック350はデータを変換する。1つ以上のこの種の実施形態によると、データは流れているが、更なる実施形態によると、制御ストリーム及びデータパケットは共有メモリにあってもよい。1つ以上のこの種の実施形態によると、制御及びデータがいずれの方向にも流れることができるという点で、トランスフォーマーは双方向性である。単純なトランスフォーマーは、データ経路の次のトランスフォーマー(あるいはデバイス・エミュレータ又はデバイス・ドライバ)を示す2つの機能ポインタ、例えば、デバイス・エミュレータから実際のデバイス・ドライバへの「前向きの」経路のための1つの機能ポインタ、及び実際のデバイス・ドライバからデバイス・エミュレータへの後向きの経路のための別の機能ポインタを備えている。使用される物理的デバイス・ドライバに応じて、マルチプレクサは、後向きの経路のための追加の機能ポインタを備えているトランスフォーマーであり、そしてデバイス・セレクタ又はデマルチプレクサは、前向きの経路のための追加の機能ポインタを備えているトランスフォーマーである。図1に示すように、トランスフォーマー・スタック350はトランスフォーマーA〜Nを含む。加えて、本発明の1つ以上の実施形態によると、トランスフォーマー・スタック350は、経路のデータフローを第1デバイス・エミュレータから別のデバイス・エミュレータに導くことができる。後述するように、これは第2VMが第1VMによって送られた通信を受信することを可能にし、そこにおいて、第2VMは、それが機能に影響を及ぼすことを可能にする手段として作用する。
[0014]VMは、それが特定の物理的デバイス(その物理的デバイスは仮想化ソフトウェア300によってエミュレートされる)を有するモバイル機器(例えば、ハンドセット)に含まれると仮定するかも知れない、この種の対応する物理的デバイスがハンドセットにはないことがある。例えば、VMは、ハンドセットがwifiデバイスを備えていると仮定するかもしれないが、ハンドセットは3G及びUSBイーサネット(登録商標)デバイスを備えているだけかも知れない。この場合には、仮想化ソフトウェア300は、実際の物理的デバイスのためにセット・ドライバのうちの1つへのデバイス・エミュレータの経路を定めるトランスフォーマー、例えば、そして限定されるものではないが、デバイス・セレクタ又はデマルチプレクサを提供する。この種のトランスフォーマーは、デバイス・データ・ストリーム・トランスフォーマーの例である。本発明の1つ以上の実施形態によると、同様にトランスフォーマー・スタック350を通る経路に沿って他のトランスフォーマーがある場合がある。例えば、そして限定されるものではないが、特定のVMからのネットワーク通信はまた、トランスフォーマーによって暗号化またを圧縮されてもよい。
[0015]ハンドセットのようなモバイル機器は、同時に実行して、それらのゲストデバイスにアクセスするいくつかのVMを有していてもよい。前述のように、各VMのゲストデバイスごとに、仮想化ソフトウェア300のデバイス・エミュレータがある(例えば、各VMは、それがスクリーン及びキーボードを有すると仮定する)。このように、仮想化ソフトウェア300は各物理的デバイスへのアクセスを多重送信しなければならない。正確に多重化が機能する方法は特定のデバイスに依存する。いくつかの物理的デバイスを共有できる(例えば、多くのハンドセットはセミサイレントな方法で所有者と通信するために振動し、そして、場合によっては、いかなるVMも電池を振動させることが可能でなければならない)。しかしながら、いくつかの物理的デバイスはキーボードのようなVMに排他的に割り当てられてもよい。例えば、キーボードは通常「フォアグラウンドの」VM専用であり、即ち、スクリーンの寸法を考えると、それは排他的に割り当てられそうであり、そしてユーザがVMの間で切り替えるときにVMごとにスクリーンの小さい画像を見ることができるように、「バックグラウンド」で動作するVMは「サムネイル化される」それらのスクリーンを有していてもよい。
[0016]そのような場合、トランスフォーマー、例えば、そして限定されるものではないが、マルチプレクサは適切なVMに入力データを送らなければならない。どのVMが、例えば、ブルートゥース・デバイスへの排他的なアクセスを得るかを自動的に決めることが困難であるので、ユーザは、多くの方法のいずれか1つだけに従って物理的デバイスを排他的に割り当てるために、ユーザ・インタフェースを使用して措置をとらなければならないことがあることに注意されたい。
[0017]図1に更に示すように、本発明の1つ以上の実施形態によると、管理サーバ500は、トランスフォーマー・スタック350のさまざまなトランスフォーマーA〜Nを挿入し、削除し、又は構成するために、仮想化ソフトウェア300の管理クライアント340と相互に作用する。このように、例えば、管理サーバ500は、デバイスをリモートし、そのデータをマルチキャストし、又は特定の物理的デバイスを使用するために、トランスフォーマー350内の論理を制御できる。動的な方法でトランスフォーマー・スタック350を管理する1つの方法は、各トランスフォーマーが経路上の次のトランスフォーマーを示している機能ポインタ・テーブルを維持することであり、前述のように、単純なトランスフォーマーは2つのポインタ(方向ごとに1つ)を備えている。そして、仮想化ソフトウェア300は各VMへの、そしてそれからの通信を休止する。そして、すべてのVMが休止されるときに、各関連したトランスフォーマーの機能ポインタ・テーブルは更新可能であり、それによりトランスフォーマー・スタック350を通る流れを変更する。一連のトランスフォーマーは、それがオーバーヘッドを小さく保つために有用であるように長いかもしれない。例えば、データを流れ出させるか、又は各トランスフォーマーの間でそれを複製する必要がないことがある。加えて、制御パケットは小さくてもよく、そして従って、それらはしばしば少数のレジスタ内に保持されることができる。更なる追加において、データは、ほとんどの場合、メモリにとどまることができて、仮想化ソフトウェア300は、データを調べることを必要とするかもしれない各トランスフォーマー、VM、及びデバイス・ドライバのアドレス空間にこのメモリをマップする。
[0018]トランスフォーマーを挿入、削除、又は変更することは、全デバイスのセキュリティ、分離、完全性、信頼性などを損なう場合がある。よって、本発明の1つ以上の実施形態によると、トランスフォーマー・スタック350の一連のトランスフォーマーはユーザ・モードで動作して、トランスフォーマー・スタック350内のデータバッファ及び記憶をアドレス指定できるだけである。また、1つ以上のこの種の実施形態によると、キーボード及びスクリーンがいくつかの信頼できないソフトウェアにより偽造されるか、又は挿入されることができないように、それは管理クライアント340によって直接アクセス可能であるべきである。
[0019]周知のように、仮想機器(VA)は、アプリケーション及びすべての必要なオペレーティング・システム・サービスが一緒にパッケージ化されて、VMとして動作するソフトウェアである。換言すれば、それは、減少したオペレーティングシステム・サイズを有するユニットとして管理、及び維持される完全なソフトウェア・スタックである。本発明の1つ以上の実施形態によると、VA(又はVM)の1つ以上のゲスト・デバイス・ドライバは、トランスフォーマー・スタック350と相互に作用するデバイス・エミュレータと相互に作用することができ、そしてVA(又はVM)の1つ以上のゲスト・デバイス・ドライバは、トランスフォーマー・スタック350を経由せずに物理的デバイスのためのデバイス・ドライバと直接相互に作用できる。1つ以上の更なるこの種の実施形態によると、トランスフォーマー・スタック350と相互に作用する1つ以上のこの種のデバイス・エミュレータは、VA(又はVM)が通信の手段としての機能を果たすことを可能にするために、別のデバイス・エミュレータ(トランスフォーマー・スタック350によって向けられるように)と相互に作用できる。このように、本発明の1つ以上の実施形態によると、ゲストOSデバイス・ドライバからの制御フローは、中間のVM又はVAに進んでもよい。ソフトウェアが実際のデバイスとエミュレートされたものとを区別する必要がない。従って、VMは、そのGPS表示が本当のGPSに、又は以前の表示のログに由来するかどうかについて判断することができないかも知れない。
[0020]本願明細書で用いられる「パーベイシブ・コンピューティング・サービス」という用語は、あるデバイスが近くのデバイスを見つけ出して、それ自体の資源を他のデバイスが利用できるようにするサービスを含む。デバイスが協同するもの、認証モデル、及び多数の他の詳細全てはデバイスのリモート処理機能を利用する。パーベイシブ・コンピューティング・サービス・アプリケーションの場合は、特別なアプリケーションが各デバイス及び各オペレーティングシステムのために必要とされる。例えば、グループ・カメラ使用事例を考える。そこでは:(a)1つの電話のアプリケーションが画像を撮って、ローカル・アドホックwifiネットワークを通じてだけでなく、ブルートゥース接続を通じてその有効性を知らせる。(b)ネットワーク上の他の全ての電話は、このサービスを検索して、画像を移動するアプリケーションを備えている。そして(c)認証機構は、画像がグループのそれらに送られるだけであることを確実にするために用いられる。この例では、いくつかの電話はGPSを有し、それに応じて画像に標識を付けてもよい。その一方で、他の電話は画像に直接注を加えることができてもよい。単に位置が遠隔の制御装置から画像を取ってくるだけであるアプリケーションは、これらの強化されたアプリケーションを利用することができないかも知れない。したがって、ユーザは、正しいアプリケーション、即ち、本当のカメラ・アプリケーション又は遠隔画像獲得アプリケーションを使用することを確実にしなければならない。本発明の1つ以上の実施形態によると、トランスフォーマーとVAの組み合わせはこれらの懸念に対処する。
[0021]パーベイシブ・コンピューティング・サービス・アプリケーション・ソフトウェアをモバイル機器にインストールするために、2つのステップが用いられる。第1ステップは、本願明細書において、PerComm仮想機器又はPerComm VAと呼ばれる、仮想化ソフトウェア300において実行するパーベイシブ・コンピューティング・サービス仮想機器をインストールすることである。第2ステップは、特定の仮想及び物理的なデバイスをPerComm VAを通って送られるように導くことである。それがハンドセットの物理資源を部外者にさらすかもしれないので、これはモバイル機器の所有者による明確な処置を必要とするかも知れない。
[0022]次に、VMから出てくるデータ及び制御はPerComm VAまで送られる。PerComm VAはそれ自体のアドレス空間でユーザ・モードで実行し、そして仮想化ソフトウェア300は機械語アドレス・マッピングに対する仮想を制御して、データ・コピーを回避するためにそれを配列できる(ストリームをネットワーク・パケットに変換するときに、しかしながら、コピーを回避することは不可能ではないかも知れない)。PerComm VAは、このデータ及び制御をブルートゥース接続、wifi、又は他の何らかの無線通信デバイスによって遠隔デバイスに伝える。ユーザは、何時どのデバイスがPerComm VAにより処理されることになるかという制御を与えられるかも知れない。遠隔デバイスからのデータ及び制御情報はPerComm VAに伝えられ、そしてPerComm VAは、その次にそれをVMに導くトランスフォーマー・スタック350(又は仮想化ソフトウェア300)にこのデータ及び制御情報を転送できる。VMは、それがローカルデバイスと相互に作用していると考えるが、相互作用はPerComm VAにより媒介されている。
[0023]仮想化ソフトウェア300が更新又はパッチされなければならない時間がある。同様に、ハンドセットのVMが、遠隔実体、例えば、従業員の個人用ハンドセットに取り付けられる仮想作業電話を所有する企業の管理下にある時間があるかも知れない(これは下記に更に詳細に説明される)。本発明の1つ以上の実施形態によると、「作業電話」によってアクセスされる物理的デバイスの管理は遠隔企業サーバにより制御されることができる。1つ以上のこの種の実施形態によると、管理モジュール、例えば、仮想化ソフトウェア300にある管理クライアント340は、これが起こることを可能にするために、適切な認証、許可、セキュリティ保護、及び方針規則をサポートする。加えて、本発明の1つ以上の更なる実施形態によると、ハンドセットの所有者又はユーザは、他のVM、即ち、遠隔企業サーバからの入力により制御されないVMのための類似の管理操作を実行できる。この場合には、管理モジュールは遠隔企業サーバに応答する管理モジュールと同様でもよいが、それは、この形のそのコマンド、例えば、そして限定されるものではないが、遠隔リンク又はキーボード・コマンドを受ける。
[0024]使用管理:本発明の1つ以上の実施形態は、モバイル機器により提供される1つ以上のアプリケーションの使用を管理することによって、モバイル機器(例えば、そして限定されるものではないが、携帯電話)の使用を管理するための方法を提供する。それで、1つ以上のこの種の実施形態によると、企業は、例えば、そして限定されるものではないが、費用を管理するために電話を管理することによって、従業員の企業が管理するモバイル機器の使用を制限又は制御してもよい。特に、そして本発明の1つ以上のこの種の実施形態によると、仮想モバイル機器100(例えば、そして限定されるものではないが、仮想携帯電話)は、ゲスト・オペレーティングシステム(「ゲストOS」)及びゲスト・アプリケーションを有する1つ以上のVM400〜400をサポートする仮想化ソフトウェア層300(例えば、ハイパーバイザ)を含む。1つ以上のこの種の実施形態によると、仮想化ソフトウェア300の管理クライアント340は、例えば、そして限定されるものではないが、電話ネットワーク、あるいはwi―fi又はwifiネットワーク{周知のように、Wi―FiはWECA(Wireless Ethernet(登録商標) Compatibility Alliance(無線イーサネット(登録商標)適合性アライアンス))として1999年に創立された、Wi―Fiアライアンスの商標であり、その組織は、製品がIEEE802.11標準(WLAN(Wireless LAN)(無線LAN))及びWi―Fiとも呼ばれる)に基づいてWi―Fiアライアンスにより認定される会社から成る−認定はいろいろな無線デバイスの間にインターオペラビリティを保証する}などのような、当業者に周知である多くの方法のいずれか1つを使用して企業サーバ(即ち、管理サーバ500)と連絡を取る。1つ以上の別の実施形態によると、仮想モバイル機器100のVMは、当業者によって周知である仮想化ソフトウェア層によって通信する多くの方法のいずれか一つを用いた仮想化ソフトウェア300によって管理サーバ500と連絡を取る。
[0025]1つ以上のこの種の実施形態によると、管理サーバ500は、仮想モバイル機器100で実行する多くのゲスト・アプリケーションのいずれか1つの使用を制限するために用いられる仮想モバイル機器100に制御情報を送信する。例えば、そして限定されるものではないが、本発明の1つ以上の実施形態によると、管理サーバ500は、制限を含む制御情報を仮想化ソフトウェア300の管理クライアント340に、又は代替として、仮想化ソフトウェア300によって、VMに(当業者に周知である多くの方法のいずれかに従って)送信してもよい。制御情報は、それがいくつものアプリケーションを制御するために用いられてもよいという点で多次元的でもよい。例えば、そして限定されるものではないが、制御情報は、制御される特定のアプリケーションの適切な識別によって、以下の用途の1つ以上を制御するために用いることができる:(a)ネットワークの使用を所定の、又は動的に可変の(例えば、企業サーバからの制御情報のリアルタイム入力によって)数分間に制限する、(b)多くのsmsメッセージ(周知のように、Short Message Service(ショートメッセージ・サービス)(SMS)は、携帯電話デバイス間の短いテキストメッセージの交換を可能にする通信プロトコルである)を所定の、又は動的に可変の(例えば、企業サーバからの制御情報のリアルタイム入力によって)数に制限する、(c)データ転送を所定の、又は動的に可変の(例えば、企業サーバからの制御情報のリアルタイム入力によって)数に制限する、又は、(d)ゲーム使用を1つ以上の所定のゲームに、あるいは、所定の、又は動的に可変の(例えば、企業サーバからの制御情報のリアルタイム入力によって)時間ごとの使用量に制限する(仮想化ソフトウェアによって)。容易に理解できるように、企業は、例えば、そして限定されるものではないが、予算上の変化に応答して、制御情報を動的に変更することができ、制御情報はユーザーグループによって変化できる(そこではユーザーグループが、例えば、そして限定されるものではないが、仮想モバイル機器を構成するときにセットされて、仮想ソフトウェア300及び/又はVMにより格納され、及び/又はアクセスされるユーザ識別により識別されることができる)。
[0026]本発明の1つ以上の実施形態によると、アプリケーション(本願明細書において、ゲスト・アプリケーションと称される)は、仮想モバイル機器100の仮想化ソフトウェア300、例えば、ハイパーバイザにおいて動作するゲストOS内で実行される。この種の仮想モバイル機器において、ゲスト・アプリケーション又はゲストOSから開始される、セル式ネットワーク通信、例えば、そして限定されるものではないが、電話の呼出し、smsメッセージ、3G/Edge/GPRSメッセージ{周知のように、3Gは、まず最初に、モバイル・ネットワークでビデオ通話をする方法として市場に出されたが、インターネットをブラウズして、ボイス・オーバー・アイピーを用いて、そして電子メール及びインスタントメッセージングによってスマートフォンで通信する方法でもある、GPRSは、最高60キロビット/秒の速度でデータを送信するために用いるシステムであり、そして電子メールを送受信して、インターネットをブラウズする消費電力が少ない方法である、そしてEDGE(Exchanged Data rates for GSM(登録商標)Evolution(GSM(登録商標)進化のための交換したデータ転送速度))は、GPRSシステムに基づく最近の開発であり、そしてそれが最高473.6キロビット/秒で動作できるという事実によって、「3G」標準と分類された。スマートフォンがEDGE対応である場合、それは、大きいEメール添付ファイルを受信したり、複雑なウェブ・ページを高速でブラウズしたりするような、大量の移動データ伝送のために使うことができる}などは、トラップされるゲストOSデバイス・ドライバ動作を生成して、仮想化ソフトウェア層300のデバイス・ドライバにより処理される。換言すれば、仮想モバイル機器で、ゲストOSデバイス・ドライバは通信デバイスと直接通信せずに、むしろ仮想化ソフトウェア層300のデバイス・ドライバによって通信する。
[0027]加えて、そして本発明の1つ以上の実施形態によると、ゲストOSはデータパケットをwifi、セル式、USB、又はブルートゥース・ネットワークを通じて送ることができる(周知のように、ブルートゥースは固定及び移動デバイスから短い距離にわたってデータを交換するための無線プロトコルである)。1つ以上のこの種の実施形態によると、これらのケースのいずれの場合でも、ゲストOSデバイス・ドライバ動作は、仮想化ソフトウェア層300によってトラップされ、次に、仮想化ソフトウェア層300のデバイス・ドライバによって行われる。1つ以上のこの種の実施形態によると、仮想化ソフトウェア層300のデバイス・ドライバは、ゲストOSにより特定された以外の通信のための異なるネットワークを使用できる。例えば、そして限定されるものではないが、ゲストOSは3Gネットワークを通じてパケットを送ることができるが、実際は、仮想化ソフトウェア層300のデバイス・ドライバはwifiネットワークを通じてそれを送ることができる。加えて、ある時には、仮想化ソフトウェア層300のデバイス・ドライバはゲストOSにより示される同じ通信機構を使用する。
[0028]いずれにせよ、本発明の1つ以上の実施形態によると、仮想化ソフトウェア層300は通信を制限できる。特に、1つ以上のこの種の実施形態によると、仮想化ソフトウェア層300のネットワーク・ドライバは、セル式ネットワークを通じて送受信されるパケットを計数して、その使用情報を仮想化ソフトウェア層300に送信できる。次に、制御情報に設けられる1つ以上の限界に達するときに、仮想化ソフトウェア層300はそれ自体でそのネットワークを通じる通信を削減することができ、そこでは特定の限界が仮想モバイル機器の特定のタイプの機能を制限するために用いてもよい。特に、限界に達することは、使用情報と限界の差を計算し、差が所定量を超えるか、又はそれに等しいと決定することにより決定され、そこでは、例えば、そして限定されるものではないが、所定量は制御情報に含まれることができるか、又はそれは構成パラメータでもよい。例えば、そして限定されるものではないが、1つの限界はsmsメッセージに関係することができ、別の限界は電話の呼び出しに関係することができ、そして更に別の限界は特定のゲームに関係できる。1つ以上の他の実施形態によると、使用情報は1つ以上の限界に対する情報を分析するVMに送信されることができる。また、1つ以上の更なる実施形態によると、制御情報に設けられる1つ以上の限界に達するか又は超えるときに、トランスフォーマー又はトランスフォーマー・スタック350のトランスフォーマーの組み合わせはセル式ネットワークを通じて送受信されるパケットを計数することができ、それ自体、そのネットワークを通じて通信を削減できる。これらのケースのいずれにおいても、特定の限界を超えることによって、所定の動作が実行され、その所定の動作は制御情報に示されることができる。例えば、特定の限界を超えることは、モバイル機器が動作不可能になることがあるという点で絶対的であり、又は、特定の限界を超えることは、特定の機能が動作不可能になることがあるという点で「ソフト」、即ち、それほど絶対的ではなく、又は、それは、例えば、そして限定されるものではないが、モバイル機器が特定の市外局番だけへの電話の呼び出しを送受信するために用いることができるように、特定の機能が低下することがあるという点で「よりソフト」である。加えて、制御装置を呼び出すことに関連して、VMは、この種の情報をモバイル機器と関連したディスプレーに表示することによって、及び/又はテキストメッセージを送ることによって、及び/又は音声メール・メッセージを送ることによって、及び/又は電子メール・メッセージを送ることによって、採られている措置を解説する情報をユーザに提供できる。
[0029]このように、本発明の1つ以上の実施形態によると、モバイル機器により使用される多くの携帯電話記録は、仮想化ソフトウェア300によって、又はトランスフォーマーによって、又はGSM(登録商標){周知のように、GSM(登録商標)(Global System for Mobile Communications(移動通信のための地球規模のシステム:もともとGroupe Special Mobileから))は携帯電話用の普及している標準であり、GSM(登録商標)は、シグナリング及びスピーチの両チャネルともデジタルであるという点でその前にあったものと異なり、したがって、第2世代(2G)移動電話システムと考えられる)又はCDMA(周知のように、Code−Division Multiple Access(符号分割多元アクセス)はスペクトラム拡散技術を使用するデジタル・セルラー技術である}ドライバが接続する多くの記録を追跡し、そしてモバイル機器が、例えば、そして限定されるものではないが、例えば、許可を与えるためにユーザID及びPINを用いて許可をリセットすることによって、再初期化されるまで、更なる接続をセットアップしないことによって、−独りでに、又はVMからのメッセージに応答して−限界に達するとき又はトランスフォーマーによって、接続を解除する仮想化ソフトウェア層を有するVM(例えば、そして限定されるものではないが、特定の目的VM)により制御されることができる。
[0030]加えて、仮想化ソフトウェア300は、管理クライアント340を使用するか又はこのために設けられるVMを使用して、どの通信/アプリケーションがどのようにして制限されるべきであるかに関する命令、例えば、更新のために管理サーバ500へ周期的に通信することができる。
[0031]位置ベースのセキュリティ:本発明の1つ以上の実施形態によると、モバイル機器の物理的な位置に基づいて、そして1つ以上の位置及び時間ベースのセキュリティ・ポリシーに基づいて、それは、その機能の1つ以上にアクセスするためにパスワード又はPINを必要としてもしなくてもよい。
[0032]モバイル機器が指定された期間の間、通常数分、動作しないときに、モバイル機器は自動的にロックするので、典型的なモバイル機器セキュリティ・ポリシーは、ユーザがそれを「アンロックする」ために彼/彼女のモバイル機器にパスワードを入れることを必要とする。例えば、不動作(例えば、キーは押圧されない)の期間の後、スクリーン及びキーボードはロックし、そして許される唯一の入力はユーザのパスワードである。一旦パスワードが入力されると、スクリーン及びキーボードは作動する(それは、通常、デーモン及びバックグラウンド・プロセスがこの種の機能を可能にするために実行し続ける場合である)。あるいは、電話の呼び出しが入るときに、ユーザはスクリーン又はキーによって呼び出しに答えることができるが、デバイスの残りはロックされたままである。多くのユーザが彼らのパスワードを毎日数十回以上入力しなければならないので、彼らはこのセキュリティ機能が面倒であるとわかる。
[0033]本発明の1つ以上の実施形態によると、例えば、そして限定されるものではないが、パスワード入力によるモバイル機器アクセス・セキュリティは、モバイル機器の物理的位置あるいは物理的位置及び/又は物理的位置で過ごされる時間(位置−時間)に基づく。本発明の1つ以上の更なる実施形態によると、特定のセキュリティ・ポリシーは中央管理されたセキュリティ・ポリシーでもよく、そしてそれは、例えば、そして限定されるものではないが、企業サーバからの通信によって変えることができる。
[0034]本発明の1つ以上の実施形態によると、ユーザが事務所又は本拠地(即ち、位置ベースのシナリオ)から物理的に離れている場合にだけ、モバイル機器アクセス・ポリシーは、例えば、そして限定されるものではないが、パスワードを必要とすることがある。1つ以上のこの種の実施形態によると、モバイル機器は仮想モバイル機器であり、そこでは多数のVMは、仮想モバイル機器が、多数の、例えば、そして限定されるものではないが、電話(即ち、1つの仮想電話が会社の携帯電話でもよく、そして別の仮想電話が個人の携帯電話である仮想電話)を提供することを可能にし、そこでは仮想電話の各々はそれ自体のセキュリティ・ポリシーを有することができる。このように、そして1つ以上のこの種の実施形態によると、会社の携帯電話へのアクセスには個人の携帯電話より強いセキュリティ要件がある場合がある。
[0035]本発明の1つ以上の実施形態によると、仮想モバイル機器はその現在の地理的位置を決定する。この種の位置の決定は、以下の事項からの情報を得ることに基づくことがあり得る:(a)内蔵GPSデバイス、(b)外部GPSデバイス(例えば、USBケーブルによって、又はブルートゥース接続によって、無線でモバイル機器と通信する車のGPSデバイス)、(c)当業者に周知である多くの方法のいずれか1つを用いた携帯電話の基地局の検出、(d)位置が公知である周知のブルートゥース・デバイス(例えば、デスクトップPCはブルートゥース・デバイスを備えることができて、その識別子はモバイル機器にとって公知であり、そしてモバイル機器がデスクトップPCのブルートゥース信号の範囲内にあるときに、モバイル機器がそれがデスクトップに近いということを知っているように、その位置も公知である)、(e)当業者に周知である多くの方法のいずれか1つを使用しているwifi基地局、()当業者に周知である多くの方法のいずれか1つを使用するこの種の近距離無線通信により保護される通路を通って施設に入ることで起動させられる近距離無線通信、又は()他の機構の使用。この種の位置の決定は仮想化ソフトウェア300を使用して得られることが可能であるか、又はそれは、VM、例えば、そして限定されるものではないが、仮想化ソフトウェア層300によって通信する、このために使われる特定のVM(ここではセキュリティVMと称する)により開始されて、留意されることができる。位置及び、任意に、その位置にある時間が公知であるならば、セキュリティVMは情報をセキュリティ・ポリシーと比較して、比較により指示される適切な措置を実行できる。
[0036]本発明の1つ以上の実施形態によると、モバイル機器が安全な位置にあるという証拠を提供する「証明」の多くのレベル又は程度がある。例えば、モバイル機器は、所定の時間の間、多くの位置のいずれか1つにあることを必要とすることがある(即ち、位置−時間ベースのシナリオ)。例えば、モバイル機器は、ロックを防止するパスワード入力の必要が無効になる前に少なくとも1時間の間、オフィスに指定される位置になければならないかもしれない。別の例として、モバイル機器が多くの所定の位置のいずれか1つにあるときに、モバイル機器をロックする前の時間を延長できる。更に別の例として、所定の非動作期間の後にモバイル機器をロックするべきか否かに関する決定は、時刻に依存する場合がある。例えば、従業員が午前9時00分に職場に到着して、平日には午後7時00分に帰宅する日程を守り、そして従業員は週末及び休日には自宅にいる場合は、モバイル機器が所定の位置にあるこれらの期間の間だけ、パスワード・ロッキングは使用不能である。更にもう1つの実施例として、モバイル機器の電話が「単独である」、即ち、それが近くに他のモバイル機器の存在を検出しない場合は、パスワード・ロッキングは使用不能であり得る。1つ以上のこの種の実施形態によると、モバイル機器(例えば、セキュリティVM)は、当業者に周知である多くの方法のいずれか1つを使用するそれらのブルートゥース・無線によって、他のモバイル機器をスキャンすることによって、それが単独であるかどうか決定する。いくつかのモバイル機器が応答する場合は、事務所においてさえ、モバイル機器はパスワードを必要とするかもしれない。都合のよいことに、自分のモバイル機器を自分の事務所の机の上に置いたままであるときに、これは有用である。他の誰かが事務所に入って、そのモバイル機器を使用しようとする場合は、その人はパスワードを入力しなければならないだろう。
[0037]本発明の1つ以上の実施形態によると、位置なりすまし(例えば、OS、例えば、ゲストOSのうちの1つが損なわれる場合、位置情報はまねされる場合がある)を減らすために、サーバ、例えば、図1に示される管理サーバ500は、モバイル機器が移動するとき、(例えば、モバイル機器(例えば、セキュリティVM)にこの情報を報告させることによって)その位置を追跡できる。そのとき、サーバのソフトウェアは、当業者に周知である多くの方法のいずれか1つを用いて位置変化を分析する。分析によって、上述のように、即ちGPSデータなどを用いてモバイル機器が得るデータからであるとそれが思う所にあることを確認するために、モバイル機器が前に識別された位置にあることを確かめる。多くの週又は月にわたってモバイル機器の詳細な履歴を維持するサーバは、モバイル機器の最近の位置移行のシーケンスが、当業者に周知である多くの方法のいずれか1つに従う位置移行のその履歴と整合していることを確かめることができる。
[0038]本発明の1つ以上の実施形態によると、モバイル機器が、モバイル機器が信頼された位置にあることを示すために、所定の登録された位置(例えば、そして限定されるものではないが、仕事場、自宅、又はその他の登録された)に入るときに、モバイル機器(例えば、セキュリティVM)は、情報(例えば、そして限定されるものではないが、ビット)を格納できる。信頼された位置にある結果、モバイル機器は自動的にロックされない。そして、モバイル機器が所定の登録された位置から離れるとき、それはその通常モードへ戻る。1つ以上のこの種の実施形態によると、所定の登録された位置へのエントリは、モバイル機器(例えば、セキュリティVM)をサーバ(例えば、管理サーバ500)と通信させて、位置が所定の登録された位置にあり、そしてそれが信頼されるとみなされるための承認が与えられることをサーバに確かめさせることにより確認されることができる。例えば、自分の事務所に入るときに、モバイル機器(例えば、セキュリティVM)はローカルwifi基地局を検出して、その位置を確認するためにその局を使用できる。1つ以上のこの種の実施形態によると、サーバ(例えば、管理サーバ500)は、それがモバイル機器を同様にちょうど今登録したかどうか決定するために、wifi基地局に問い合わせることもできる。
[0039]本発明の実施形態がパスワードの入力により提供されるセキュリティに関して説明されたけれども、更なる実施形態はさまざまなセキュリティ方式に基づいて製造されることができる。例えば、モバイル機器により提供されるさまざまな機能は位置に基づいて制御されることができる。例えば、そして限定されるものではないが、いろいろなファイル又はボリュームへのアクセスは位置ベースであり得、又は、モバイル機器が所定の特定の安全な位置に存在する場合にだけ、アプリケーションを実行できる。
[0040]上記の実施形態の1つ以上によると、位置なりすましを更に回避するために、サーバが、モバイル機器のその追跡が信頼できることをユーザに保証できるように、モバイル機器とサーバの間の暗号化された通信を使うことができる。モバイル機器(作業に割り当てられる仮想化ソフトウェア又はVM)が、セキュリティの侵害を検出する(例えば、整合した挙動を確実にするためにモバイル機器の位置の記録された履歴と比べることによって)場合は、仮想化ソフトウェアは、ひとりでに、あるいはVM又はサーバからの命令に応答して、スクリーン及び/又はモバイル機器のキーボードをロックすることができる。あるいは、トランスフォーマー・スタック350の1つ以上のトランスフォーマーは、スクリーン及び/又はキーボードへのアクセスを阻止するために利用できる。
[0041]本発明の1つ以上の実施形態によると、分析がロックが必要なことを示すときに、例えば、そして限定されるものではないが、タイムアウトの満期又は安全でない位置への移動によって、ロックがスクリーン及び/又はキーボードをロックすることに加えて実施されるときに、所定の機能(例えば、そして限定されるものではないが、電話の呼出しを行う)を提供するVMを中断できる。この例では、仮想化ソフトウェアはモバイル機器による通信の受領を認めることができるが、それらは、VMが喚起されるまで、仮想化ソフトウェアで待ち行列に入れられる。あるいは、機能は、制御情報をトランスフォーマー・スタック350の1つ以上のトランスフォーマーに送って、それ/それらに所定の機能を中断させるか、又は後で可能にすることにより中断されることができる。
[0042]本発明の1つ以上の実施形態によると、それ自体の位置を追跡するモバイル機器の代わりに、状況次第で、通信事業者自体がモバイル機器の位置を確認する(例えば、911コールの場合は、通信事業者は警察に電話の位置を告げる)。そして通信事業者はモバイル機器に、又はモバイル機器に位置情報を転送するサーバにその位置情報を送る。
[0043]モバイル機器内の破壊工作ソフトを制限する:モバイル機器が破壊工作ソフトによって損なわれる場合は、セキュリティは破られることが可能である。例えば、この種の破壊工作ソフトは、人が、個人的な会話を盗聴し、動きを追跡し、個人情報、例えばURL、電子メール、連絡先リスト、暗証番号などにアクセスすることを可能にするために用いることができる。通常、この種のモバイル機器が常にオンであるが、ユーザがそれを見守っていることができないので、セキュリティの侵害はモバイル機器の場合にはより重大である場合がある。その結果、単にユーザに疑わしい挙動に対して警戒させることは有用であるが、不十分でもあるかもしれない。これに加えて、自分自身のモバイル機器によってスパイされることの防止は、従来の破壊工作ソフトの検出よりも困難である。これは、モバイル機器がモバイル機器に関して無害の作用を使用する攻撃のタイプに弱いからである。例えば、ユーザの位置を追跡して、遠隔サーバを更新する多くのアプリケーションがあり、これらの多くはソーシャル・ネットワーキング・アプリケーションであり、そしてモバイル機器の所有者はこの種の動作を許可する。別の例として、モバイル機器の位置に基づいてなんらかの作用、例えば「ジオタギング」を生むことができる他のアプリケーションがある。更に別の実施例として、ユーザが言っていることを記録して、記録を音声認識処理のためのリモートサーバに送信する、更に他のアプリケーションがある。また、時間と場所に基づいて、それらがマイクロフォン入力を記録し始めて、その情報を第三者サーバに送信するためにモバイル機器を起動させるように、これらのアプリケーションを組み合わせることは可能である。これが起こることをユーザが望むことがないにもかかわらず、アプリケーション自体は全て有効なアプリケーションであるので、それは防止するのが難しい。従来のウイルス検出製品はこの種のセキュリティ侵害を検出しない。
[0044]本発明の1つ以上の実施形態によると、仮想モバイル機器は、モバイル機器、例えば、そして限定されるものではないが、ハンドセットに1つ以上の「仮想」電話があり、その仮想電話は、仮想化ソフトウェア層(例えば、ハイパーバイザ)において実行するゲストOS(VMと呼ばれる)でゲスト・アプリケーションとして実行する。上で説明されたように、仮想モバイル機器で、各ゲストOSは物理的デバイスに直接アクセスしないで、むしろ、ゲストデバイスのゲストOSアクセスは仮想化ソフトウェア層にトラップされて、物理的デバイスへのアクセスは、本当のデバイスにおいて適切な動作を行うために仮想化ソフトウェア層により実行される。
[0045]本発明の1つ以上の実施形態によると、仮想化ソフトウェア層300は、本当のデバイス・ドライバの状態に関連した情報を集めて、この情報を、例えば、そして限定されるものではないが、周期的なベースで、仮想化ソフトウェア層の、又はこのために設けられた特定のVM(ここではセキュリティVMと称される)のウイルス保護ソフトウェア・モジュールに送る。1つ以上のこの種の実施形態によると、ウイルス保護ソフトウェア・モジュールは、それが物理的デバイス・ドライバの1つ以上に関して受け取る情報に基づいて動作を起動させることができる一組の規則を有する。例えば、そして限定されるものではないが、規則は、音声マイクロフォンが使用可能であり、そしてTCP接続があて先アドレスの特定のセットに可能になるときはいつでも、警報を発しなければならないと記載するだろう。1つ以上のこの種の実施形態によると、セキュリティサーバ(例えば、管理サーバ500)は、「規則セット」を、例えば、そして限定されるものではないが、周期的なベースでモバイル機器に送信できる。更に、1つ以上の更なるこの種の実施形態によると、警報を発することは、例えば、そして限定されるものではないが、音声メッセージ及び/又はテキストメッセージを提供することによって、そして/あるいはスクリーン上にメッセージを提供することによって、そして/あるいはスクリーン表示を明滅させることによって、ユーザに警報を送ることを含む。加えて、1つ以上の更なる実施形態によると、警報を発することは、規則の特定のセットに関するか又は関連した1つ以上の所定のアプリケーションにモバイル機器をロックすることを必要とする場合がある。この種のロックは、トランスフォーマー・スタック350の1つ以上のトランスフォーマーに制御情報を送ることによって発生する場合があり、又はこの種のロックは、モバイル機器のVMの1つ以上への通信を不能にすることによって発生する場合がある。
[0046]モバイル移行:実行VMはチェックポイントされて、その全状態は単一のファイルにカプセル化されることができる。このファイルは、その後になってからか、それとも異なるコンピュータ又はハンドセットで、VMの実行を続けるために用いることができる。無線待ち時間があまりにも長いか、ハンドセット又はその他の組込形デバイスの不十分な資源があるときに、計算が周辺デバイスにより近くなるように、ハンドセットのVMが別のハンドセットに移行することは有用な特徴である。本発明の1つ以上の実施形態によると、例えば、そして限定されるものではないが、電話の機能のようなモバイル機器の機能は、1つのモバイル機器から別の機器へ、あるいは1つのモバイル機器からネットブック・コンピュータ、ラップトップ・コンピュータ、デスクトップ・コンピュータ、又は充分な計算パワー及び連結性を有する他のいかなるコンピュータ化されたデバイスへ移行される。1つ以上のこの種の実施形態によると、機能はVMを使用して最初に実施されて、それから、VMは、カリフォルニア州、パロアルトのVMウェア(VMware)社により使用される、Vmotionと呼ばれる方法のような、当業者に周知である1つ以上の方法を用いて移行される。有利であることに、本発明の1つ以上の実施形態で、ユーザは、例えば、そして限定されるものではないが、ユーザがユーザの位置に基づいて、又は単にファッションのために適当な電話を使用することを可能にするために、彼(女)の電話を1つの物理的デバイスから別のデバイスへ「動かす」ことができる。1つ以上のこの種の実施形態によると、移行は、無線通信事業者を使用するか、あるいはwifi又は物理的なワイヤ接続を使用して実施されることができる。1つ以上の実施形態によると、移行の方法は、目標モバイル機器を選択する段階と、仮想電話を表すVMを順番に並べる段階と、例えば、そして限定されるものではないが、ストリーミングによって順番に並べられたVMをソース・モバイル・デバイスから目標デバイスへ転送する段階とを含む。1つ以上の更なる実施形態によると、移行の方法は、仮想電話を表す順番に並べられたVMをコンピュータ又は他の手段、例えば、そして限定されるものではないが、管理サーバ500又は別のモバイル機器を用いるサービスプロバイダへ転送する段階と、そして順番に並べられたVMを目標デバイスへ転送する段階とを含む。1つ以上のこの種の実施形態によると、本方法は、(a)目標モバイル機器だけで呼び出しを受け取るために、当業者に周知である多くの方法のいずれか1つに従ってソース及び目標SIMチップを再プログラムする段階、又は(b)SIMチップをVMとともに仮想化して、転送する(SIM、そのリーダー及び制御回路はハードウェア・デバイスであり、そして、このように、その機能は、他のハードウエア・デバイスが仮想化される方法と類似の方法でエミュレートされることができる点に注意する)段階、又は(c)サービスプロバイダに変化を知らせて、サービスプロバイダに呼び出しを目標モバイル機器だけに転送させる段階を更に含む。
[0047]本発明の1つ以上の実施形態によると、いくつかの異なるタイプの移行がある:
(a)ハンドセットにおけるVMのセルフサービスのインストレーション、(b)コールド運動(これは、VMをシャットダウンし、それを移動し、それから他の装置でそれを起動する段階を伴う)、(c)VMを中断するか又はチェックポイントし、その状態を別のハンドセットの方へ移動し、それからその実行を他のハンドセットで再開する段階を伴うウォーム運動、(d)ホット運動(又はライブ移行)(そこでは、その一方で、VMは1つのハンドセットで動作していて、あたかもそれが決して動作するのを止めなかったかのように、それを別のハンドセットの方へ動かしている)、(e)上記のいずれかを含むクローニング(しかし、VMは、最初のハンドセットで動作するか、あるいは常にいかなるハンドセットでも動作するVMの唯一の例があることを確実にする)。
[0048]VMのセルフサービスのインストレーション:モバイル機器、例えば電話にVMを載せる多くの方法がある−(i)USBケーブル、(ii)セキュア・デジタル・カード、又は(iii)電波を通じてダウンロードする。本発明の1つ以上の実施形態によると、仮想化ソフトウェアがハンドセットのようなモバイル機器で実行されるときに、ユーザはVMのセルフサービスのチェックアウトをすることができる。これを行うために、1つ以上のこの種の実施形態によると、ユーザは、(a)本願明細書において、「セルフサービス」サーバと称されるサーバによって設けられる、例えば、そして限定されるものではないが、http://www.acme.com/virtualphone.html;と識別されるウェブサイトに行き、(b)ログオンし、(c)パスコード、例えば、そして限定されるものではないが、モバイル機器と関連する電話番号を入力し(いくつかのパスコード、例えば、モバイル機器と関連する電話番号がある場合があり、そこでは、例えば、そして限定されるものではないが、1つのパスコードは、例えば、特定のVMと関連する場合がある)、そして(d)そのパスコード、例えば電話番号のための所望のVMを選択する。セルフサービスのサーバ、例えば、管理サーバ500は、例えば、指定された電話番号で、パスコードと関連した通信路を使用する電話によって、メッセージ、例えば、SMSメッセージをモバイル機器に送り、そしてメッセージは所定のVMとの通信リンクを含み、例えば、リンクは、URLの最後に固有のコードを有するサーバに対するURL、例えば、http://www.acme.com/downloadvirtualphone/abcdl234でもよい。コードabcdl234は特定のユーザ及び所望のVMを識別する。同時に、このために設けられる仮想化ソフトウェア又はVM(インストレーションVMと呼ばれる)は、デバイス・ドライバを起動して、それがVMを取り出しやすいようにする。1つ以上のこの種の実施形態によると、サーバと連絡する動作によって、仮想化ソフトウェア又はインストレーションVMはVMをダウンロードし始めるためにそのサーバへ行く。1つ以上のこの種の実施形態によると、仮想化ソフトウェアはブラウザ・トラフィックをスヌープするか、又はSMSトラフィックをスヌープすることができるが、いずれにせよ、このスヌーピングは、仮想化ソフトウェアに、どこでそれがデータを取り出さなければならないIPアドレスと同様にそれが採らなければならない措置を知らせることである。
[0049]1つ以上の更なるこの種の実施形態によると、認証、証明、及び暗号化は介入者攻撃から保護する。ベリサインのような第三者認証機関を使用することを回避するために、仮想化ソフトウェアが公開鍵を有し、そしてセルフサービス・サーバが、仮想化ソフトウェア作成者の私有鍵を使用して暗号化されるそれ自体の公開鍵を有する、公開鍵暗号方式に依存するプロトコルを使うことができる。これを述べる別の方法は以下の通りである。1つ以上のこの種の実施形態は、3つの実体又はソフトウェアシステム―セルフサービスのサーバ(S)、仮想化ソフトウェア(V)、及び仮想化ソフトウェア(C)のディストリビュータ又は作成者の関与を伴う。ハンドセットにインストールされる仮想化ソフトウェアはCの公開鍵を含み、これを公開Cと呼ぶ。仮想化ソフトウェア及びサーバが確実に通信するために、CはSの公開鍵を必要とする。Cは、Sが保証されて、偽のサイトでないことを知る必要もある。セルフサービス・サーバSは、作成者の私有鍵を使用して暗号化された、その公開鍵、公開Sを有する。これを解読する唯一の方法は作成者の公開鍵によってであるが、それはすでに仮想化ソフトウェアにある。それで、仮想化ソフトウェアが、サーバの公開鍵を含むメッセージを解読するために作成者からの公開鍵を使用できる場合は、仮想化ソフトウェアは、サーバが認証されているということを知っている。あるいは、インストレーションVMは仮想化ソフトウェアの代わりに使うことができる。
[0050]コールド運動(「コールド」という用語は、VMが移動の前にシャットダウンされるという事実を指す):本発明の1つ以上の実施形態によると、VMは少ないファイルで動作するために必要なすべてを含む。このように、これらのファイルを新規なハンドセット・デバイスの方へ動かすことによって、VMがそのデバイスで動作できる。VMはソース・デバイスの周辺デバイスと同一であるか又は同一でなくてもよい一組の周辺デバイスを有する。更に、行先デバイスは、いろいろな周辺デバイス、いろいろなアーキテクチャ生成、又はいろいろなアーキテクチャさえ有することができる。1つ以上のこの種の実施形態によると、周辺デバイスは仮想化されて、仮想化ソフトウェアのデバイス・トランスフォーマーは1つのデバイスを別のデバイスにマップする。
[0051]ウォーム運動:本発明の1つ以上の実施形態によると、VMは1つのハンドセットから別のハンドセットへ動かされて、その実行は第2ハンドセットで再開される。
[0052]ホット運動:本発明の1つ以上の実施形態によると、これはホストコンピュータ間のライブ移行と同様であり、そこではVMは実行中に動かされる。本発明の1つ以上の実施形態によると、ライブ移行は、VMをチェックポイントし、それを別のモバイル機器で起動することにより起こるが、VMは、最初のモバイル機器で動作するか、あるいはいかなるモバイル機器でも動作するVMの1つの例だけがあることを確実にする。
[0053]本発明の1つ以上の実施形態によると、通信が進行中である場合は、そして通信がwifiによる場合は、通信ストリームが終わるまで、最初のデバイスの仮想化ソフトウェアは新規なデバイスの仮想化ソフトウェアにパケットを転送する。新規な通信は最初のデバイスを自動的にバイパスする。この場合、VMが同じIP及びMACアドレスを有するように、仮想化ソフトウェアはNAT(ネットワーク・アドレス・トランスフォーマー)のように作用するが、新規なIP及びMACアドレスは遠隔デバイスに提示される。通信がセルラーネットワーク、電話あるいはIPによる場合は、解決策は異なる。2つの実行できる解決策がある。1つの解決策は、各仮想電話がそれ自体の固有電話番号を有することである。この番号の電話は安定な位置のサーバにある。この種の解決策によると、呼び出しは、電話へ、又はそれから直接に来ずに、この安定な位置から来る。更に、入って来る電話は仮想電話を含むハンドセットに転送される。また更に、ハンドセットが最初の呼び出し側IDを見て、安定な位置の呼び出し側IDを見ないように、開始された電話の実際の呼び出し側IDはサーバによって記録される。ハンドセットが、呼び出しが特定のVMにあったかどうかについて知る必要がある場合は、サーバはその情報をハンドセットに後で伝達できる。例えば、各仮想電話の「受け取った電話」ログは、安定なサーバからのメッセージによって、通話が終わった後に回復されることが可能である。第2解決策は、電話に複数のSIMを有するか、又はSIMを仮想化することである。特定の電話は、ベースバンド・プロセッサが仮想化されることができるようにする。そのような場合、仮想化モバイル機器はベースバンド・コードの2つ以上のコピーを実行して、各々に仮想SIMデータを提供して、無線アンテナを多重送信する。いずれにせよ、ホット運動の間、最初のハンドセットは、行き先のハンドセットへの音声接続をしなければならない。これは多くの方法のいずれかで行われることができる:スピーカの音声が遠隔デバイスに無線で通信されるように、遠隔デバイスはブルートゥース・ヘッドセットのような働きをさせられることができて、そして、あたかもそれがマイクロフォンから来るかのように、それは遠隔デバイスから音声を受け取る。Wifiは、まるでブルートゥース接続のようにいずれの方向にも音声を送信するようにされることができる。
[0054]クローニング:前の運動モードのいずれにおいても述べられなかったけれども、仮想電話は一度に1つだけのハンドセットで実行する、即ち、それが最初のハンドセットから動かされたあと、あるとしても、それがそれへ戻されるまで、それはそのハンドセットでもはや実行しないと仮定された。しかしながら、本発明の1つ以上の実施形態によると、2つの仮想電話(即ち、1つは最初の電話で実行し続け、そして1つは転送先の電話で動作し始める)があるように、仮想電話は「クローンされる」。仮想電話が2つ以上の異なるハンドセットで実行しているときに、以下の挙動は適切である。入って来る電話の呼び出しによって、仮想電話の各々は、従来の固定電話シナリオにおいて複数の親子電話を有するように鳴る。事実、クローンされた電話と複数の親子電話の唯一の違いは、関係する電話の呼出しがないときに起こることである。内線電話の場合は、2つの内線電話をとることは、通常、それらが電話の呼び出しをせずに互いに話すことができることを意味する。クローンされた電話の場合は、これは不可能である。
[0055]ロックされたモバイル器具:安全な環境をモバイル機器空間の高感度アプリケーションに提供する満足な共通プラットフォームがない。Java(登録商標)は、約束通り、特に安全な方法で、共通プラットフォームを一度書けばどこででも走るプログラミングに移動空間において提供しない。ユーザが安全な方法で彼らの口座及び情報にアクセスすることができるために、安全なアプリケーションを提供することを望む、銀行、保険会社、ブローカーディーラーのような多くの組織もある。本発明の1つ以上の実施形態によると、組織は、VMを「モバイル器具」としてパッケージ化して、仮想モバイル機器で動作するために、それをユーザに配布できる。1つ以上のこの種の実施形態によると、仮想化ソフトウェア層は器具を分離して、それへの無許可のアクセスを防止する。器具はコード及びデータを含む画像又はデータ・ファイルである。他のいかなるVM又はアプリケーションもデータにアクセスするか又はコードを修正することができないように、それはデバイス記憶装置で暗号化されることができる。器具が実行するときに、画像のページはSRAM又はメモリに組み込まれて、仮想化ソフトウェアにより解読される。ACE又はオフラインVDIから借用された他の技術は、モバイル器具を保護して、管理するために実施されることができる。
[0056]当業者は、さまざまな変更態様及び改変が、添付の特許請求の範囲に記載したように本発明のより広い精神と範囲を逸脱しない範囲で本願明細書に記載されている特定の実施形態になされることができると理解する。したがって、前述の説明及び図面は限定的意味よりはむしろ例証とみなすべきである。
[0057]本願明細書に記載されている各種実施形態は、コンピュータシステムに格納されるデータを含むさまざまなコンピュータ実施動作を使用できる。例えば、これらの動作は、通常、しかし必然的にではなく、物理量の物理的処置を必要とすることがあり、これらの量は電気又は磁気信号という形をとることができて、そこではそれら、又はそれらの表現は、格納され、移され、結合され、比較されるか、又は処置されることができる。更に、この種の処置は、生成、識別、決定、又は比較のような用語でしばしば称される。本発明の1つ以上の実施形態の部分を形成する本願明細書に記載のいかなる動作も、有用な機械動作である場合がある。加えて、本発明の1つ以上の実施形態は、これらの動作を実行するデバイス又は装置にも関する。装置は特定の必要な目的のために特別に構成されることができるか、又はそれは、コンピュータに格納されたコンピュータプログラムによって選択的に作動するか又は構成される汎用コンピュータでもよい。特に、さまざまな汎用機械が本願明細書の教示に従って書かれたコンピュータプログラムを用いて使用されることができるか、又はそれは必要な動作を実行するためにより専門化した装置を構成するのにより便利である場合がある。
[0058]本願明細書に記載されているさまざまな実施形態は、携帯用デバイス、マイクロプロセッサシステム、マイクロプロセッサ・ベース又はプログラム可能な家電、ミニコンピュータ、メインフレームコンピュータなどを含む、他のコンピュータシステム構成により実践されることができる。
[0059]本発明の1つ以上の実施形態は、1つ以上のコンピュータプログラムとして、又は1つ以上のコンピュータ可読媒体に組み入れた1つ以上のコンピュータプログラム・モジュールとして実施されることができる。用語「コンピュータ可読媒体」は、コンピュータシステムに後で入力されることができるデータを格納できる、いかなるデータ記憶デバイスも指し、コンピュータ可読媒体は、コンピュータプログラムをそれらがコンピュータによって読み込まれることを可能にする方法で実現するために、いかなる既存であるか又は後に開発される技術にも基づいてもよい。コンピュータ可読媒体の例は、ハードディスク、ネットワーク接続ストレージ(NAS)、読出し専用メモリ、ランダムアクセス・メモリ(例えば、フラッシュメモリ・デバイス)、CD(コンパクトディスク)CD―ROM、CD―R、又はCD―RW、DVD(デジタル汎用ディスク)、磁気テープ、ならびに他の光学及び非光学データ記憶デバイスを含む。コンピュータ可読コードが分散されて格納されて、実行されるように、コンピュータ可読媒体はネットワーク結合コンピュータシステムに分散されることもできる。
[0060]本発明の1つ以上の実施形態が明確に理解するために少し詳しく説明されたが、特定の改変及び変更態様が特許請求の範囲内でなされることができることは明らかである。したがって、記載されている実施形態は例示的であり限定的でないと考えられるべきであり、そして特許請求の範囲は本願明細書に与えられた細部に限定されるべきではなくて、特許請求の範囲及び相当の中で修正されることができる。特許請求の範囲において明確に述べられない限り、要素及び/又は段階は動作のいかなる特定の順序も意味しない。
[0061]加えて、記載されている仮想化方法が、通常、仮想計算機が特定のハードウェア・システムと整合したインタフェースを提示すると仮定するのに対して、当業者は、記載されている方法がいかなる特定のハードウェア・システムにも直接対応しない仮想化と連動して用いられることが可能であると認めるだろう。ホストされた実施形態、ホストされない実施形態として、又は2つの差異をぼやけさせる傾向がある実施形態として実施される、さまざまな実施形態に従う仮想化システムは全て想定される。更にまた、さまざまな仮想化動作は、ハードウェアにおいて完全に又は部分的に実施されることができる。例えば、ハードウェア実装は、非ディスクデータを保証するためにストレージ・アクセス要求の変更態様のためのルックアップテーブルを使用できる。
[0062]多くの変形、変更態様、追加、及び改良は、仮想化の程度に関係なく可能である。仮想化ソフトウェアは、従って、仮想化機能を実行する、ホスト、コンソール、又はゲスト・オペレーティングシステムの構成要素を含むことができる。複数の例は、単一の例として本願明細書に記載されている構成要素、動作、又は構造のために提供されることができる。最後に、さまざまな構成要素、動作、及びデータ蓄積の間の境界はいくらか任意であり、そして特定の動作が特定の例示的構成との関連で例示される。他の機能配分が想定されて、本発明の範囲に含まれることができる。一般に、典型的な構成において、別々の構成要素として提示される構造及び機能は、複合した構造又は構成要素として実施されることができる。同様に、単一の構成要素として提示される構造及び機能は、別々の構成要素として実施されることができる。これらの、そしてまた他の変形、変更態様、追加、及び改良は、添付の特許請求の範囲に入ることができる。

Claims (15)

  1. 1つ以上の仮想計算機をサポートする仮想化ソフトウェア層を含むモバイル機器であって、
    前記1つ以上の仮想計算機のゲスト・デバイス・ドライバと通信するデバイス・エミュレータであって、前記ゲスト・デバイス・ドライバが、前記デバイス・エミュレータによってエミュレートされた、エミュレートされた物理的デバイスと相互に作用するデバイス・エミュレータと、
    前記モバイル機器の1つ以上の物理的デバイスと通信する実際のデバイス・ドライバであって、前記実際のデバイス・ドライバが、前記エミュレートされた物理的デバイスによってサポートされる機能に相当するが異なる機能を実行する物理的デバイスと通信する、実際のデバイス・ドライバと、
    前記デバイス・エミュレータと前記実際のデバイス・ドライバとの間でデータ及び制御情報を伝達する1つ以上のトランスフォーマーを含むトランスフォーマー・スタックであって、データ及び制御情報を変換し、前記エミュレートされた物理的デバイスによってサポートされる機能に相当するが異なる機能を要求する前記ゲスト・デバイス・ドライバに応答して、前記物理的デバイスの前記機能を前記物理的デバイスが実行できるようにする、トランスフォーマー・スタックと、
    を備え、前記トランスフォーマーの1つ以上が、データ及び制御情報の流れの経路において前記トランスフォーマーの更に1つ以上を示す機能ポインタを含む、モバイル機器。
  2. 前記トランスフォーマーの1つ以上が、前記データ及び制御情報が第1及び第2の方向に流れることができるという点で双方向性である請求項1記載のモバイル機器。
  3. 前記トランスフォーマーの1つ以上が、第1方向に前記トランスフォーマー・スタックを通る経路のための多数の機能ポインタを含むマルチプレクサを含む請求項1記載のモバイル機器。
  4. 前記トランスフォーマーの1つ以上が、第2方向に前記トランスフォーマー・スタックを通る経路のための多数の機能ポインタを含むデマルチプレクサを含む請求項1記載のモバイル機器。
  5. 前記仮想化ソフトウェア層が、前記トランスフォーマー・スタックの前記トランスフォーマーの1つ以上と通信する管理クライアントを含み、前記管理クライアントが、制御情報を前記トランスフォーマーの1つ以上に伝え、その制御情報は前記トランスフォーマーの機能を達成する請求項1記載のモバイル機器。
  6. 前記モバイル機器の前記物理的デバイスのうちの1つを通して前記管理クライアントが遠隔企業サーバと通信するよう配置された請求項記載のモバイル機器。
  7. 前記トランスフォーマー・スタックが少なくとも第1トランスフォーマー及び第2トランスフォーマーを含み、前記第1トランスフォーマーは、前記トランスフォーマー・スタックを通る経路において、次のトランスフォーマーをポイントするための機能ポインタを有し、最初に、前記機能ポインタは前記第2トランスフォーマーをポイントし、そして前記管理クライアントが、前記機能ポインタを変えて、第3トランスフォーマーをポイントするために、前記第1トランスフォーマーと続いて通信する請求項記載のモバイル機器。
  8. 前記管理クライアントが、前記遠隔企業サーバからの通信に応答して前記機能ポインタを変えるために、前記第1トランスフォーマーと通信する請求項記載のモバイル機器。
  9. 前記遠隔企業サーバとの通信に応答して、前記管理クライアントは、新規なトランスフォーマーを前記トランスフォーマー・スタックに挿入するために、前記トランスフォーマー・スタックを制御する請求項記載のモバイル機器。
  10. 前記遠隔企業サーバとの通信に応答して、前記管理クライアントは、トランスフォーマーを前記トランスフォーマー・スタックから削除するために、前記トランスフォーマー・スタックを制御する請求項記載のモバイル機器。
  11. 前記遠隔企業サーバとの通信に応答して、前記管理クライアントは、トランスフォーマーを前記トランスフォーマー・スタック内で変更するために、前記トランスフォーマー・スタックを制御する請求項記載のモバイル機器。
  12. 前記管理クライアントが前記トランスフォーマーを設定する前に、前記仮想化ソフトウェア層が前記モバイル機器の各仮想計算機との通信を休止する請求項11記載のモバイル機器。
  13. パーベイシブ・コンピューティング・サービス(PCS)仮想計算機を更に備えるモバイル機器であって、前記トランスフォーマー・スタックが、データ及び制御情報をユーザ仮想計算機と前記PCS仮想計算機の間を、そして更に前記PCS仮想計算機と遠隔モバイル機器の間を送る請求項1記載のモバイル機器。
  14. 管理クライアントを更に備え、前記管理クライアントは遠隔企業サーバと通信し、そして前記遠隔企業サーバとの通信に応答して、前記管理クライアントは、前記モバイル機器の1つ以上の物理的デバイスに対する会社の電話の仮想計算機のアクセスを制御するよう配置された請求項1記載のモバイル機器。
  15. 前記モバイル機器のユーザが、前記遠隔企業サーバにより制御されない他の仮想計算機についての管理動作を実行できるよう前記管理クライアントが配置された請求項14記載のモバイル機器。
JP2012517816A 2009-06-26 2010-06-28 仮想モバイル機器 Active JP5596785B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/492,575 2009-06-26
US12/492,575 US8302094B2 (en) 2009-06-26 2009-06-26 Routing a physical device request using transformer stack to an equivalent physical device in a virtualized mobile device
PCT/US2010/040140 WO2010151858A1 (en) 2009-06-26 2010-06-28 Virtualized mobile devices

Publications (2)

Publication Number Publication Date
JP2012531676A JP2012531676A (ja) 2012-12-10
JP5596785B2 true JP5596785B2 (ja) 2014-09-24

Family

ID=42808770

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012517816A Active JP5596785B2 (ja) 2009-06-26 2010-06-28 仮想モバイル機器

Country Status (5)

Country Link
US (1) US8302094B2 (ja)
EP (1) EP2446355B1 (ja)
JP (1) JP5596785B2 (ja)
AU (1) AU2010265906B2 (ja)
WO (1) WO2010151858A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101836749B1 (ko) * 2016-12-30 2018-03-08 주식회사 카카오게임즈 에뮬레이터를 제어하는 런칭 어플리케이션의 동작 방법

Families Citing this family (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9268518B2 (en) 2011-09-27 2016-02-23 Z124 Unified desktop docking rules
US9715252B2 (en) 2011-08-24 2017-07-25 Z124 Unified desktop docking behavior for window stickiness
US9405459B2 (en) 2011-08-24 2016-08-02 Z124 Unified desktop laptop dock software operation
US8381297B2 (en) 2005-12-13 2013-02-19 Yoggie Security Systems Ltd. System and method for providing network security to mobile devices
US8869270B2 (en) * 2008-03-26 2014-10-21 Cupp Computing As System and method for implementing content and network security inside a chip
US20080276302A1 (en) 2005-12-13 2008-11-06 Yoggie Security Systems Ltd. System and Method for Providing Data and Device Security Between External and Host Devices
US8365272B2 (en) 2007-05-30 2013-01-29 Yoggie Security Systems Ltd. System and method for providing network and computer firewall protection with dynamic address isolation to a device
US8631488B2 (en) 2008-08-04 2014-01-14 Cupp Computing As Systems and methods for providing security services during power management mode
US8789202B2 (en) 2008-11-19 2014-07-22 Cupp Computing As Systems and methods for providing real time access monitoring of a removable media device
US8612582B2 (en) 2008-12-19 2013-12-17 Openpeak Inc. Managed services portals and method of operation of same
US8788655B2 (en) 2008-12-19 2014-07-22 Openpeak Inc. Systems for accepting and approving applications and methods of operation of same
US8856322B2 (en) 2008-12-19 2014-10-07 Openpeak Inc. Supervisory portal systems and methods of operation of same
US8745213B2 (en) 2008-12-19 2014-06-03 Openpeak Inc. Managed services platform and method of operation of same
US8713173B2 (en) 2008-12-19 2014-04-29 Openpeak Inc. System and method for ensuring compliance with organizational policies
US8615581B2 (en) 2008-12-19 2013-12-24 Openpeak Inc. System for managing devices and method of operation of same
US20100159898A1 (en) 2008-12-19 2010-06-24 Openpeak, Inc. Services platform for networked devices that provide telephony and digital media services
US8650290B2 (en) 2008-12-19 2014-02-11 Openpeak Inc. Portable computing device and method of operation of same
US9389877B2 (en) 2009-07-20 2016-07-12 Google Technology Holdings LLC Multi-environment operating system
US9367331B2 (en) 2009-07-20 2016-06-14 Google Technology Holdings LLC Multi-environment operating system
US9348633B2 (en) 2009-07-20 2016-05-24 Google Technology Holdings LLC Multi-environment operating system
US9372711B2 (en) 2009-07-20 2016-06-21 Google Technology Holdings LLC System and method for initiating a multi-environment operating system
US20110055891A1 (en) * 2009-08-26 2011-03-03 Rice Christopher T Device security
US8718611B2 (en) * 2009-09-30 2014-05-06 Avaya Inc. Method for the selection of an active software environment of a virtualized telecommunications terminal
US9021556B2 (en) * 2009-11-23 2015-04-28 Symantec Corporation System and method for virtual device communication filtering
US8468550B2 (en) * 2010-06-18 2013-06-18 At&T Intellectual Property I, L.P. Mobile devices having plurality of virtual interfaces
US8589952B2 (en) * 2010-06-30 2013-11-19 Palm, Inc. Dual operating system operation and configuration
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US8995630B1 (en) 2010-08-01 2015-03-31 Tulsa Holdings, Llc Telephony and applications communication in a non-mobile telephone system
WO2012024418A1 (en) 2010-08-17 2012-02-23 Openpeak Inc. System containing a mobile communication device and associated docking station
US8650658B2 (en) 2010-10-25 2014-02-11 Openpeak Inc. Creating distinct user spaces through user identifiers
US20120174237A1 (en) * 2010-12-31 2012-07-05 Openpeak Inc. Location aware self-locking system and method for a mobile device
US20120192100A1 (en) * 2011-01-25 2012-07-26 Motorola-Mobility, Inc. Method and apparatus for locking and unlocking multiple operating system environments with a single gesture input
JP5724421B2 (ja) * 2011-02-04 2015-05-27 富士通株式会社 情報処理装置
US8806647B1 (en) * 2011-04-25 2014-08-12 Twitter, Inc. Behavioral scanning of mobile applications
US8806646B1 (en) 2011-04-27 2014-08-12 Twitter, Inc. Detecting malware in mobile sites
US9354900B2 (en) 2011-04-28 2016-05-31 Google Technology Holdings LLC Method and apparatus for presenting a window in a system having two operating system environments
US8949929B2 (en) * 2011-08-10 2015-02-03 Qualcomm Incorporated Method and apparatus for providing a secure virtual environment on a mobile device
US9329906B2 (en) * 2011-09-09 2016-05-03 Microsoft Technology Licensing, Llc Virtual machine mobility using resource pools
US8907906B2 (en) 2011-09-27 2014-12-09 Z124 Secondary single screen mode deactivation
US8966004B2 (en) 2011-09-29 2015-02-24 Comcast Cable Communications, LLC. Multiple virtual machines in a mobile virtualization platform
US8695060B2 (en) 2011-10-10 2014-04-08 Openpeak Inc. System and method for creating secure applications
US20130096906A1 (en) * 2011-10-11 2013-04-18 Invodo, Inc. Methods and Systems for Providing Items to Customers Via a Network
US9164544B2 (en) 2011-12-09 2015-10-20 Z124 Unified desktop: laptop dock, hardware configuration
KR101751936B1 (ko) * 2011-12-15 2017-07-12 한국전자통신연구원 호스트 기반 단말 가상화 환경에서 공유 메모리를 이용한 입출력 디바이스 가상화 장치 및 방법
US8918881B2 (en) * 2012-02-24 2014-12-23 Appthority, Inc. Off-device anti-malware protection for mobile devices
US8713684B2 (en) 2012-02-24 2014-04-29 Appthority, Inc. Quantifying the risks of applications for mobile devices
US9277588B2 (en) 2012-03-14 2016-03-01 Intel Corporation Mobile terminal architecture for dual personality wireless devices
US20130293573A1 (en) 2012-05-02 2013-11-07 Motorola Mobility, Inc. Method and Apparatus for Displaying Active Operating System Environment Data with a Plurality of Concurrent Operating System Environments
US9342325B2 (en) 2012-05-17 2016-05-17 Google Technology Holdings LLC Synchronizing launch-configuration information between first and second application environments that are operable on a multi-modal device
CN103457783B (zh) 2012-05-31 2017-04-12 国际商业机器公司 用于测试移动网络应用的方法和系统
US8934887B2 (en) 2012-05-31 2015-01-13 Emblaze Ltd. System and method for running mobile devices in the cloud
US8819772B2 (en) 2012-06-25 2014-08-26 Appthority, Inc. In-line filtering of insecure or unwanted mobile device software components or communications
US9160815B2 (en) * 2012-06-28 2015-10-13 Intel Corporation Method and apparatus for virtual machine interoperability
US9373302B2 (en) * 2012-08-10 2016-06-21 Blackberry Limited Stacked device position identification
US9087191B2 (en) 2012-08-24 2015-07-21 Vmware, Inc. Method and system for facilitating isolated workspace for applications
US9094413B2 (en) 2012-08-27 2015-07-28 Vmware, Inc. Configuration profile validation on iOS Using SSL and redirect
US9077725B2 (en) 2012-08-27 2015-07-07 Vmware, Inc. Configuration profile validation on iOS based on root certificate validation
US9063721B2 (en) 2012-09-14 2015-06-23 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
US9904791B1 (en) * 2012-09-30 2018-02-27 Emc Corporation Processing device having secure container for accessing enterprise data over a network
US9069782B2 (en) 2012-10-01 2015-06-30 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing
EP2907043B1 (en) 2012-10-09 2018-09-12 Cupp Computing As Transaction security systems and methods
FR2998694B1 (fr) 2012-11-27 2016-01-01 Oberthur Technologies Module electronique pour rendre un message accessible par un systeme d'exploitation vise
US9535871B2 (en) 2012-11-27 2017-01-03 Red Hat Israel, Ltd. Dynamic routing through virtual appliances
US9454392B2 (en) * 2012-11-27 2016-09-27 Red Hat Israel, Ltd. Routing data packets between virtual machines using shared memory without copying the data packet
FR2998747B1 (fr) * 2012-11-27 2015-01-23 Oberthur Technologies Procede d'aiguillage d'un message
US10514938B2 (en) * 2012-12-18 2019-12-24 Dynavisor, Inc. Making direct calls to a native device driver of a hypervisor using dynamic device driver virtualization
US10223139B2 (en) * 2013-03-15 2019-03-05 The Trustees Of The University Of Pennsylvania Dynamically deployable wireless infrastructure in cloud environment
EP2797292A1 (en) 2013-04-25 2014-10-29 Telefónica, S.A. Method and device for virtualization of terminal devices of a wireless network
US9883394B2 (en) * 2013-05-30 2018-01-30 Ent. Services Development Corporation Lp Virtual mobile phone interface system and method thereof
US11157976B2 (en) 2013-07-08 2021-10-26 Cupp Computing As Systems and methods for providing digital content marketplace security
US9760385B2 (en) * 2013-11-18 2017-09-12 WebAd Campaign Analytics Concurrent emulation of multiple devices
WO2015123611A2 (en) 2014-02-13 2015-08-20 Cupp Computing As Systems and methods for providing network security using a secure digital device
US9668082B2 (en) 2014-06-24 2017-05-30 Red Hat Israel, Ltd. Virtual machine based on a mobile device
US9232013B1 (en) 2014-09-05 2016-01-05 Openpeak Inc. Method and system for enabling data usage accounting
US20160071040A1 (en) 2014-09-05 2016-03-10 Openpeak Inc. Method and system for enabling data usage accounting through a relay
US9350818B2 (en) 2014-09-05 2016-05-24 Openpeak Inc. Method and system for enabling data usage accounting for unreliable transport communication
US8938547B1 (en) 2014-09-05 2015-01-20 Openpeak Inc. Method and system for data usage accounting in a computing device
US9100390B1 (en) 2014-09-05 2015-08-04 Openpeak Inc. Method and system for enrolling and authenticating computing devices for data usage accounting
EP3032453B1 (en) * 2014-12-08 2019-11-13 eperi GmbH Storing data in a server computer with deployable encryption/decryption infrastructure
US10067490B2 (en) * 2015-05-08 2018-09-04 Ciambella Ltd. Method and apparatus for modifying behavior of code for a controller-based device
US9996377B2 (en) * 2015-06-30 2018-06-12 International Business Machines Corporation Virtual machine migration via a mobile device
US10210009B2 (en) * 2015-12-09 2019-02-19 T-Mobile Usa, Inc. Selecting a virtual machine on a mobile device based upon context of an incoming event
KR101733316B1 (ko) 2015-12-16 2017-05-24 광운대학교 산학협력단 가상 인프라 시뮬레이션 시스템 및 방법
US10395219B1 (en) * 2015-12-18 2019-08-27 Amazon Technologies, Inc. Location policies for reserved virtual machine instances
US10210326B2 (en) * 2016-06-20 2019-02-19 Vmware, Inc. USB stack isolation for enhanced security
WO2018154570A1 (en) * 2017-02-21 2018-08-30 Privacy Software Solutions Ltd. A method and system for creating multi mobilephone environments and numbers on a single handset with a single sim-card
CN110419024A (zh) 2017-03-14 2019-11-05 西安姆贝拉有限公司 用于在开发环境中自动生成和合并代码的方法和设备
US11553044B2 (en) * 2019-10-17 2023-01-10 Google Llc Systems, devices, and methods for remote access smartphone services
US11409619B2 (en) 2020-04-29 2022-08-09 The Research Foundation For The State University Of New York Recovering a virtual machine after failure of post-copy live migration

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6496847B1 (en) * 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
US20060047665A1 (en) 2001-01-09 2006-03-02 Tim Neil System and method for simulating an application for subsequent deployment to a device in communication with a transaction server
US7272831B2 (en) * 2001-03-30 2007-09-18 Intel Corporation Method and apparatus for constructing host processor soft devices independent of the host processor operating system
JP3933587B2 (ja) * 2003-01-28 2007-06-20 株式会社東芝 計算機システム、計算機装置及びオペレーティングシステムの移送方法
US7424601B2 (en) * 2004-07-07 2008-09-09 Yongyong Xu Methods and systems for running multiple operating systems in a single mobile device
US9606821B2 (en) * 2004-12-17 2017-03-28 Intel Corporation Virtual environment manager for creating and managing virtual machine environments
US8249853B2 (en) * 2006-03-31 2012-08-21 Intel Corporation Exposing device features in partitioned environment
US7613847B2 (en) * 2006-05-16 2009-11-03 Hewlett-Packard Development Company, L.P. Partially virtualizing an I/O device for use by virtual machines
GB0611038D0 (en) * 2006-06-02 2006-07-12 Ibm Apparatus and method for cluster recovery
US20080126614A1 (en) * 2006-09-26 2008-05-29 Giap Yong Ooi Input/output (I/O) device virtualization using hardware
JP2008107896A (ja) * 2006-10-23 2008-05-08 Nec Corp 物理資源制御管理システム、物理資源制御管理方法および物理資源制御管理用プログラム
US20080163204A1 (en) * 2006-12-29 2008-07-03 Dennis Morgan Method and apparatus for inventory and/or policy-based management of virtual machines on a computing device
JP2008252552A (ja) * 2007-03-30 2008-10-16 Nec Corp 携帯端末装置、返却システム、返却方法、及び返却誘導方法
JP4882845B2 (ja) * 2007-04-19 2012-02-22 株式会社日立製作所 仮想計算機システム
US8060074B2 (en) * 2007-07-30 2011-11-15 Mobile Iron, Inc. Virtual instance architecture for mobile device management systems
US7945436B2 (en) * 2007-11-06 2011-05-17 Vmware, Inc. Pass-through and emulation in a virtual machine environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101836749B1 (ko) * 2016-12-30 2018-03-08 주식회사 카카오게임즈 에뮬레이터를 제어하는 런칭 어플리케이션의 동작 방법

Also Published As

Publication number Publication date
EP2446355B1 (en) 2021-05-12
US8302094B2 (en) 2012-10-30
JP2012531676A (ja) 2012-12-10
WO2010151858A1 (en) 2010-12-29
US20100333088A1 (en) 2010-12-30
AU2010265906B2 (en) 2013-11-21
EP2446355A1 (en) 2012-05-02
AU2010265906A1 (en) 2012-02-02

Similar Documents

Publication Publication Date Title
JP5596785B2 (ja) 仮想モバイル機器
JP5611338B2 (ja) 仮想モバイル機器のセキュリティの提供
JP5620482B2 (ja) 仮想モバイル機器の使用制御
JP5570593B2 (ja) 仮想モバイル機器の機能移行
US8341749B2 (en) Preventing malware attacks in virtualized mobile devices
US9268959B2 (en) Trusted security zone access to peripheral devices
US9230085B1 (en) Network based temporary trust extension to a remote or mobile device enabled via specialized cloud services
WO2018228199A1 (zh) 一种授权方法以及相关设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130820

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20131120

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20131127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140625

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140722

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140807

R150 Certificate of patent or registration of utility model

Ref document number: 5596785

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350