JP5570593B2 - 仮想モバイル機器の機能移行 - Google Patents

仮想モバイル機器の機能移行 Download PDF

Info

Publication number
JP5570593B2
JP5570593B2 JP2012517819A JP2012517819A JP5570593B2 JP 5570593 B2 JP5570593 B2 JP 5570593B2 JP 2012517819 A JP2012517819 A JP 2012517819A JP 2012517819 A JP2012517819 A JP 2012517819A JP 5570593 B2 JP5570593 B2 JP 5570593B2
Authority
JP
Japan
Prior art keywords
virtual machine
mobile device
virtual
target device
virtualization software
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
JP2012517819A
Other languages
English (en)
Other versions
JP2012531679A (ja
JP2012531679A5 (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 JP2012531679A publication Critical patent/JP2012531679A/ja
Publication of JP2012531679A5 publication Critical patent/JP2012531679A5/ja
Application granted granted Critical
Publication of JP5570593B2 publication Critical patent/JP5570593B2/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
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/35Protecting application or service provisioning, e.g. securing SIM application provisioning
    • 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (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つ以上の実施形態は仮想モバイル機器において機能を移行する方法を提供する。特に、本発明の一実施形態は、ソースモバイル機器から目標機器へ電話機能を移行する方法であり、この方法は、(a)前記ソースモバイル機器の上に仮想計算機を提供する段階であって、前記仮想計算機は、前記仮想計算機の複数の仮想周辺機器を前記ソースモバイル機器の一式の物理的周辺機器にマップする第1のデバイス・トランスフォーマーを含む、第1の仮想ソフトウェア層によってサポートされている、段階と、(b)前記電話機能を前記ソースモバイル機器上で提供するために、前記仮想計算機の前記複数の仮想周辺機器を、前記ソールモバイル機器の前記一式の物理的周辺機器にマップするために、前記第1のデバイス・トランスフォーマーを使用することによって、前記電話機能を前記ソースモバイル機器上の仮想計算機で具体化する段階であって、前記電話機能が、前記ソースモバイル機器によって電話をかけること及びデータパケットを携帯通信ネットワーク上で送ることを含む、段階と、(c)前記仮想計算機を前記目標機器に移すことによって前記仮想計算機を前記目標機器へ移行する段階であって、前記目標機器は、前記仮想計算機の前記一式の仮想周辺機器を前記目標機器の第2の一式の物理的周辺機器にマップする第2のデバイス・トランスフォーマーを含む、第2の仮想ソフトウェア層を備える段階と、(d)前記電話機能を前記目標機器上に提供するために、前記仮想計算機の前記一式の周辺機器を前記目標機器の前記第2の一式の物理的周辺機器にマップするために、前記第2のデバイス・トランスフォーマーを使用することを含んで、前記目標機器上で前記仮想計算機の実行を継続する段階とを含む。
[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 (11)

  1. ソースモバイル機器から目標機器へ電話機能を移行する方法であって、
    記ソースモバイル機器の上に仮想計算機を提供する段階であって、前記仮想計算機は、前記仮想計算機の複数の仮想周辺機器を前記ソースモバイル機器の一式の物理的周辺機器にマップする第1のデバイス・トランスフォーマーを含む、第1の仮想ソフトウェア層によってサポートされている、段階と、
    前記電話機能を前記ソースモバイル機器上で提供するために、前記仮想計算機の前記複数の仮想周辺機器を、前記ソールモバイル機器の前記一式の物理的周辺機器にマップするために、前記第1のデバイス・トランスフォーマーを使用することによって、前記電話機能を前記ソースモバイル機器上の仮想計算機で具体化する段階であって、前記電話機能が、前記ソースモバイル機器によって電話をかけること及びデータパケットを携帯通信ネットワーク上で送ることを含む、段階と、
    前記仮想計算機を前記目標機器に移すことによって前記仮想計算機を前記目標機器へ移行する段階であって、前記目標機器は、前記仮想計算機の前記一式の仮想周辺機器を前記目標機器の第2の一式の物理的周辺機器にマップする第2のデバイス・トランスフォーマーを含む、第2の仮想ソフトウェア層を備える段階と、
    前記電話機能を前記目標機器上に提供するために、前記仮想計算機の前記一式の周辺機器を前記目標機器の前記第2の一式の物理的周辺機器にマップするために、前記第2のデバイス・トランスフォーマーを使用することを含んで、前記目標機器上で前記仮想計算機の実行を継続する段階と、
    を含む方法。
  2. 前記移行する段階が、シリアル化された仮想計算機を提供するために、前記仮想計算機をシリアル化する段階と、前記目標機器を選択する段階と、前記シリアル化された仮想計算機を前記目標機器へ移す段階とを含む請求項1記載の方法。
  3. 前記移行する段階が、前記目標機器で電話呼び出しを受けるために前記目標機器のSIMチップを再プログラムする段階を更に含む請求項2記載の方法。
  4. 前記移行する段階が、SIMチップ、そのリーダー及び制御回路を仮想化されたSIMチップとしてエミュレートすることによって前記ソースモバイル機器のSIMチップを仮想化する段階と、前記仮想化されたSIMチップを前記目標機器に転送する段階と、を含む請求項2記載の方法。
  5. 前記目標機器の継続的な実行の段階の後に、前記モバイルソース機器への電話呼び出しを代わりに前記目標機器へ転送する段階を更に含む請求項2記載の方法。
  6. 電話ソースモバイル機器から前記シリアル化された仮想計算機を媒介機器へ移行する段階を含み、そして前記シリアル化された仮想計算機を前記媒介機器から前記目標機器へ移す請求項2記載の方法。
  7. 請求項1記載の方法であって、前記移行する段階が、更に、
    ウェブサイトにアクセスする段階と、
    前記仮想計算機と関連するパスコードを入力する段階と、
    前記仮想計算機への通信リンクによってメッセージを受信する段階と、
    前記通信リンクを用いて前記目標機器において前記仮想計算機をロードして、インストールする段階と、
    を含む方法。
  8. 前記移行する段階がコールド運動移行を含み、前記仮想計算機を移動する前に前記仮想計算機がシャットダウンされる請求項1記載の方法。
  9. 前記移行する段階がウォーム運動移行を含み、前記仮想計算機が前記目標機器上で再開する請求項1記載の方法。
  10. 前記移行する段階がホット運動移行を含み、前記仮想計算機が実行中に前記仮想計算機が動く請求項1記載の方法。
  11. 前記仮想計算機が前記ソースモバイル機器上で実行中に、前記目標機器上の仮想計算機として、前記移行する段階がクローン化仮想計算機を作成する請求項1記載の方法。
JP2012517819A 2009-06-26 2010-06-28 仮想モバイル機器の機能移行 Active JP5570593B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/492,633 2009-06-26
US12/492,633 US8438256B2 (en) 2009-06-26 2009-06-26 Migrating functionality in virtualized mobile devices
PCT/US2010/040145 WO2010151861A1 (en) 2009-06-26 2010-06-28 Migrating functionality in virtualized mobile devices

Publications (3)

Publication Number Publication Date
JP2012531679A JP2012531679A (ja) 2012-12-10
JP2012531679A5 JP2012531679A5 (ja) 2013-01-24
JP5570593B2 true JP5570593B2 (ja) 2014-08-13

Family

ID=42830045

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012517819A Active JP5570593B2 (ja) 2009-06-26 2010-06-28 仮想モバイル機器の機能移行

Country Status (5)

Country Link
US (2) US8438256B2 (ja)
EP (1) EP2446356B1 (ja)
JP (1) JP5570593B2 (ja)
AU (1) AU2010265909B2 (ja)
WO (1) WO2010151861A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190076260A (ko) * 2017-12-22 2019-07-02 주식회사 트루네트웍스 다중 스마트폰 환경 시스템

Families Citing this family (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9189256B2 (en) * 2008-11-20 2015-11-17 Nokia Technologies Oy Method and apparatus for utilizing user identity
US8615581B2 (en) 2008-12-19 2013-12-24 Openpeak Inc. System for managing devices and method of operation of same
US8745213B2 (en) 2008-12-19 2014-06-03 Openpeak Inc. Managed services platform and method of operation of same
US8612582B2 (en) 2008-12-19 2013-12-17 Openpeak Inc. Managed services portals and method of operation of same
US8199507B2 (en) 2008-12-19 2012-06-12 Openpeak Inc. Telephony and digital media services device
US8650290B2 (en) 2008-12-19 2014-02-11 Openpeak Inc. Portable computing device 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
US8713173B2 (en) 2008-12-19 2014-04-29 Openpeak Inc. System and method for ensuring compliance with organizational policies
US8438256B2 (en) 2009-06-26 2013-05-07 Vmware, Inc. Migrating functionality in virtualized mobile devices
US8756439B1 (en) * 2009-08-28 2014-06-17 Physical Optics Corporation Encryption key management for secured access
US8265602B2 (en) * 2009-12-15 2012-09-11 At&T Mobility Ii Llc Visual voicemail privacy protection
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
US9077796B2 (en) 2010-08-17 2015-07-07 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
KR20120098215A (ko) * 2011-02-28 2012-09-05 한국전자통신연구원 가상화 정보 제공 방법
US9223605B2 (en) * 2011-07-01 2015-12-29 V3 Systems Holdings, Inc. Virtual machine allocation internal and external to physical environment
US9021005B2 (en) * 2011-03-04 2015-04-28 Mformation Software Technologies Llc System and method to provide remote device management for mobile virtualized platforms
US8566838B2 (en) * 2011-03-11 2013-10-22 Novell, Inc. Techniques for workload coordination
US20180074843A1 (en) * 2011-03-31 2018-03-15 P4tents1, LLC System, method, and computer program product for linking devices for coordinated operation
US9164679B2 (en) 2011-04-06 2015-10-20 Patents1, Llc System, method and computer program product for multi-thread operation involving first memory of a first memory class and second memory of a second memory class
US8930647B1 (en) 2011-04-06 2015-01-06 P4tents1, LLC Multiple class memory systems
US9158546B1 (en) 2011-04-06 2015-10-13 P4tents1, LLC Computer program product for fetching from a first physical memory between an execution of a plurality of threads associated with a second physical memory
US9170744B1 (en) 2011-04-06 2015-10-27 P4tents1, LLC Computer program product for controlling a flash/DRAM/embedded DRAM-equipped system
US9176671B1 (en) 2011-04-06 2015-11-03 P4tents1, LLC Fetching data between thread execution in a flash/DRAM/embedded DRAM-equipped system
JP5852103B2 (ja) * 2011-04-27 2016-02-03 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、及び半導体集積回路
US8224894B1 (en) 2011-05-09 2012-07-17 Google Inc. Zero-click sharing of application context across devices
US8171137B1 (en) 2011-05-09 2012-05-01 Google Inc. Transferring application state across devices
US8812601B2 (en) 2011-05-09 2014-08-19 Google Inc. Transferring application state across devices with checkpoints
US8954961B2 (en) 2011-06-30 2015-02-10 International Business Machines Corporation Geophysical virtual machine policy allocation using a GPS, atomic clock source or regional peering host
US9417754B2 (en) 2011-08-05 2016-08-16 P4tents1, LLC User interface system, method, and computer program product
US20150138300A1 (en) * 2011-09-02 2015-05-21 Microsoft Technology Licensing, Llc Mobile Video Calls
US8695060B2 (en) 2011-10-10 2014-04-08 Openpeak Inc. System and method for creating secure applications
US9286100B2 (en) * 2011-12-29 2016-03-15 Telefonaktiebolaget L M Ericsson (Publ) Virtual machine migration using 3GPP MCIM
CN102662816B (zh) * 2012-03-21 2014-12-31 中兴通讯股份有限公司 锁屏时间调整方法、装置及电子终端
US8904525B1 (en) 2012-06-28 2014-12-02 Emc Corporation Techniques for detecting malware on a mobile device
US9184800B2 (en) 2012-07-16 2015-11-10 Google Inc. Automated sharing of application data over a near field communication link
US9122549B2 (en) * 2012-07-19 2015-09-01 Wind River Systems, Inc. Method and system for emulation of instructions and hardware using background guest mode processing
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
US20140089487A1 (en) * 2012-09-27 2014-03-27 Jeremy Debate Control of a remote computer device
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
US8862112B2 (en) * 2012-10-24 2014-10-14 Cellco Partnership Ultra-thin mobile client
GB2508433A (en) * 2012-12-03 2014-06-04 Ibm Migration of processes in heterogeneous computing environments using emulating and compiling source code on target system
JP6025547B2 (ja) * 2012-12-21 2016-11-16 キヤノンイメージングシステムズ株式会社 情報処理装置、デバイス制御装置、およびその制御方法、並びにデバイス制御システム
US9729517B2 (en) * 2013-01-22 2017-08-08 Amazon Technologies, Inc. Secure virtual machine migration
US10063380B2 (en) 2013-01-22 2018-08-28 Amazon Technologies, Inc. Secure interface for invoking privileged operations
US9817728B2 (en) 2013-02-01 2017-11-14 Symbolic Io Corporation Fast system state cloning
US9526120B2 (en) 2013-03-15 2016-12-20 Google Inc. Techniques for context-based application invocation for short-range wireless communication interactions
CN104102524A (zh) * 2013-04-12 2014-10-15 中国银联股份有限公司 一种实现虚拟安全载体vse的方法
WO2014193395A1 (en) * 2013-05-30 2014-12-04 Hewlett-Packard Development Company, L.P. Virtual mobile phone interface system and method thereof
US9720712B2 (en) * 2013-06-03 2017-08-01 Red Hat Israel, Ltd. Physical/virtual device failover with a shared backend
US9699093B2 (en) * 2013-06-12 2017-07-04 Dell Products L.P. Migration of virtual machine based on proximity to peripheral device in NUMA environment
US9329976B1 (en) * 2013-06-24 2016-05-03 Amazon Technologies, Inc. Application development via a multi-unit device
US20150082408A1 (en) * 2013-09-17 2015-03-19 Sony Corporation Quick login to user profile on exercise machine
US20150081043A1 (en) * 2013-09-19 2015-03-19 Broadcom Corporation System for Control Logic Management
US9680939B2 (en) * 2013-12-19 2017-06-13 Dell Products, L.P. Maintaining technical support continuity across system restarts and multiple operating systems
WO2015151441A1 (ja) * 2014-03-31 2015-10-08 日本電気株式会社 移動通信システム、通信装置および通信制御方法
US10013276B2 (en) 2014-06-20 2018-07-03 Google Llc System and method for live migration of a virtualized networking stack
US8938547B1 (en) 2014-09-05 2015-01-20 Openpeak Inc. Method and system for data usage accounting in a computing device
US9350818B2 (en) 2014-09-05 2016-05-24 Openpeak Inc. Method and system for enabling data usage accounting for unreliable transport communication
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
US9100390B1 (en) 2014-09-05 2015-08-04 Openpeak Inc. Method and system for enrolling and authenticating computing devices for data usage accounting
KR102191971B1 (ko) 2014-10-10 2020-12-16 삼성전자주식회사 모바일 사용자 경험 개선을 위한 가상 머신 마이그레이션 방법 및 이를 위한 장치
EP3032453B1 (en) * 2014-12-08 2019-11-13 eperi GmbH Storing data in a server computer with deployable encryption/decryption infrastructure
US9480042B2 (en) 2014-12-16 2016-10-25 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Dynamic identifier modification of physical resources for resource discovery in a data center
US10061514B2 (en) 2015-04-15 2018-08-28 Formulus Black Corporation Method and apparatus for dense hyper IO digital retention
US20160342434A1 (en) * 2015-05-20 2016-11-24 Blackberry Limited Methods and systems for virtualization of portable electronic devices
US9996377B2 (en) * 2015-06-30 2018-06-12 International Business Machines Corporation Virtual machine migration via a mobile device
EP3531321B1 (en) * 2015-09-15 2020-08-19 Gatekeeper Ltd. System and method for securely connecting to a peripheral device
US10136247B2 (en) 2015-10-20 2018-11-20 Microsoft Technology Licensing, Llc Physical and virtual phone mobility
US10027661B2 (en) 2015-11-05 2018-07-17 International Business Machines Corporation Biometric virtual machine image administration
US10963279B2 (en) 2015-12-31 2021-03-30 International Business Machines Corporation Host-subordinate computing device administration and control using a host virtual machine manager
US11647108B2 (en) * 2016-03-15 2023-05-09 Huawei Technologies Co., Ltd. Service processing method and apparatus
US10705763B2 (en) * 2017-02-10 2020-07-07 International Business Machines Corporation Scale and performance for persistent containers using SCSI second level addressing to map storage volume to host of container environment, wherein said storage volume is scanned at said SCSI second level addressing without rescanning at OS level virtualization
US10733005B1 (en) * 2017-10-10 2020-08-04 Parallels International Gmbh Providing access to mobile applications by heterogeneous devices
WO2019126072A1 (en) 2017-12-18 2019-06-27 Formulus Black Corporation Random access memory (ram)-based computer systems, devices, and methods
US10721668B2 (en) 2017-12-22 2020-07-21 International Business Machines Corporation Network virtualization of user equipment in a wireless communication network
CN108235822B (zh) * 2017-12-29 2021-02-05 深圳前海达闼云端智能科技有限公司 虚拟sim卡的实现方法及装置、存储介质、电子设备
EP3815322A4 (en) 2018-06-29 2022-01-19 Citrix Systems, Inc. USE OF IDENTITY DATA ASSOCIATED WITH A DEVICE TO ROUTING COMMUNICATIONS TO ANOTHER DEVICE
US10725853B2 (en) 2019-01-02 2020-07-28 Formulus Black Corporation Systems and methods for memory failure prevention, management, and mitigation
US11184239B1 (en) 2021-04-30 2021-11-23 People Center, Inc. Management of computing devices via reference to linked employee records
AU2022202863A1 (en) 2021-04-30 2022-11-17 People Center, Inc. Improved Management of Computing Devices Via Reference to Linked Employee Records
US11893548B2 (en) 2021-04-30 2024-02-06 People Center, Inc. Management of computing devices using employee records

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7080159B2 (en) 2000-12-15 2006-07-18 Ntt Docomo, Inc. Method and system for effecting migration of application among heterogeneous devices
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
US7392483B2 (en) * 2001-09-28 2008-06-24 Ntt Docomo, Inc, Transformation of platform specific graphical user interface widgets migrated between heterogeneous device platforms
US7116972B1 (en) * 2001-11-16 2006-10-03 Sprint Spectrum L.P. Method and system for control over call handling
US7165099B2 (en) * 2002-03-15 2007-01-16 Qualcomm Inc. Dynamically downloading and executing system services on a wireless device
US7647589B1 (en) * 2005-02-07 2010-01-12 Parallels Software International, Inc. Methods and systems for safe execution of guest code in virtual machine context
US20060184937A1 (en) * 2005-02-11 2006-08-17 Timothy Abels System and method for centralized software management in virtual machines
KR100625664B1 (ko) * 2005-03-16 2006-09-20 에스케이 텔레콤주식회사 Vm 어플리케이션을 이용한 단문 메시지 관리 시스템 및이동 통신 단말
US20070047707A1 (en) * 2005-08-26 2007-03-01 Net2Phone, Inc. IP-enhanced cellular services
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US20080072222A1 (en) * 2006-08-31 2008-03-20 International Business Machines Corporation Client outsourcing service
JP3958348B1 (ja) * 2006-09-27 2007-08-15 株式会社ウインライト 携帯電話の制御方法、携帯電話及び携帯電話のプログラム
US8381209B2 (en) * 2007-01-03 2013-02-19 International Business Machines Corporation Moveable access control list (ACL) mechanisms for hypervisors and virtual machines and virtual port firewalls
US20080201455A1 (en) * 2007-02-15 2008-08-21 Husain Syed M Amir Moving Execution of a Virtual Machine Across Different Virtualization Platforms
US8806480B2 (en) * 2007-06-29 2014-08-12 Microsoft Corporation Virtual machine smart migration
JP4591480B2 (ja) * 2007-06-29 2010-12-01 ブラザー工業株式会社 コンピュータプログラム及びネットワーク端末
US8839221B2 (en) * 2007-09-10 2014-09-16 Moka5, Inc. Automatic acquisition and installation of software upgrades for collections of virtual machines
US7945436B2 (en) * 2007-11-06 2011-05-17 Vmware, Inc. Pass-through and emulation in a virtual machine environment
WO2009093951A1 (en) * 2008-01-21 2009-07-30 Telefonaktiebolaget L M Ericsson (Publ) Abstraction function for mobile handsets
EP2093985B1 (de) * 2008-02-21 2016-06-22 Avaya GmbH & Co. KG Verfahren zum Betreiben einer Telefonanlage mit mindestens zwei Telefonie-Endgeräte und Telefonie-Endgerät zur Durchführung des Verfahrens
WO2009107351A1 (ja) * 2008-02-25 2009-09-03 パナソニック株式会社 情報セキュリティ装置および情報セキュリティシステム
US8135930B1 (en) * 2008-07-14 2012-03-13 Vizioncore, Inc. Replication systems and methods for a virtual computing environment
US20100161922A1 (en) * 2008-12-19 2010-06-24 Richard William Sharp Systems and methods for facilitating migration of virtual machines among a plurality of physical machines
US7970913B2 (en) * 2008-12-31 2011-06-28 International Business Machines Corporation Virtualizing sockets to enable the migration of a system environment
US8438256B2 (en) 2009-06-26 2013-05-07 Vmware, Inc. Migrating functionality in virtualized mobile devices

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190076260A (ko) * 2017-12-22 2019-07-02 주식회사 트루네트웍스 다중 스마트폰 환경 시스템
KR102085805B1 (ko) * 2017-12-22 2020-03-06 주식회사 트루네트웍스 다중 스마트폰 환경 시스템

Also Published As

Publication number Publication date
JP2012531679A (ja) 2012-12-10
EP2446356B1 (en) 2021-05-05
US20130254369A1 (en) 2013-09-26
EP2446356A1 (en) 2012-05-02
US20100332635A1 (en) 2010-12-30
WO2010151861A1 (en) 2010-12-29
US8438256B2 (en) 2013-05-07
AU2010265909B2 (en) 2013-12-19
AU2010265909A1 (en) 2012-02-02
US9201674B2 (en) 2015-12-01

Similar Documents

Publication Publication Date Title
JP5570593B2 (ja) 仮想モバイル機器の機能移行
JP5620482B2 (ja) 仮想モバイル機器の使用制御
JP5596785B2 (ja) 仮想モバイル機器
JP5611338B2 (ja) 仮想モバイル機器のセキュリティの提供
US8341749B2 (en) Preventing malware attacks in virtualized mobile devices
US9622068B2 (en) System, method and computer program product for connecting roaming mobile devices to a virtual device platform
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: 20121102

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130730

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131029

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140416

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140423

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: 20140603

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140624

R150 Certificate of patent or registration of utility model

Ref document number: 5570593

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

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

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350