JP2013254303A - 情報処理装置、情報処理方法およびプログラム - Google Patents

情報処理装置、情報処理方法およびプログラム Download PDF

Info

Publication number
JP2013254303A
JP2013254303A JP2012128769A JP2012128769A JP2013254303A JP 2013254303 A JP2013254303 A JP 2013254303A JP 2012128769 A JP2012128769 A JP 2012128769A JP 2012128769 A JP2012128769 A JP 2012128769A JP 2013254303 A JP2013254303 A JP 2013254303A
Authority
JP
Japan
Prior art keywords
information
application
definition information
application definition
module
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.)
Pending
Application number
JP2012128769A
Other languages
English (en)
Inventor
Hiroaki Ishizawa
宏明 石澤
Seiya Ichimori
誠也 一森
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2012128769A priority Critical patent/JP2013254303A/ja
Priority to US13/899,616 priority patent/US20130332928A1/en
Priority to CN2013102028882A priority patent/CN103473131A/zh
Publication of JP2013254303A publication Critical patent/JP2013254303A/ja
Pending legal-status Critical Current

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】実行中のアプリケーションの機能を容易に向上させる。
【解決手段】アプリケーションが使用するモジュールを定義するアプリケーション定義情報を取得する取得部と、上記アプリケーションが実行される装置の状況に応じて上記アプリケーション定義情報を書き換える書換部と、上記書き換えられたアプリケーション定義情報を上記アプリケーションが実行される装置に提供する提供部とを含む情報処理装置が提供される。
【選択図】図3

Description

本開示は、情報処理装置、情報処理方法およびプログラムに関する。
プロセスマイグレーションは、実行主体の装置を変更しながらプロセスを持続的に実行するための技術である。近年、プロセスマイグレーションについて、様々な新たな技術が提案されている。例えば、非特許文献1では、チェックポイント/リスタート機構において、プロセスの実行中にプログラムのバグを修正する技術が記載されている。ここで、チェックポイント/リスタート機構は、実行中のプロセスの状態を予め保存しておき、障害発生時などには保存されていた情報を基にプロセスの実行状態を復元する技術である。非特許文献2には、アプリケーションがアクセスできるシステムリソースを制限できる機能と、アプリケーションを隔離するための仮想化環境を提供する機能とを実現するための技術が記載されている。仮想化環境にアプリケーションを移動するためには、チェックポイント/リスタート機構が用いられる。
また、特許文献1には、実行するのに特定のハードウェア構成を必要とするデバイス依存型コンポーネントについて、異なるハードウェアプラットフォームで実行できるように設計された代替コンポーネントのセットを用意することで、ハードウェア構成が異なる装置間でのプロセスマイグレーションを可能にする技術が記載されている。非特許文献3には、プロセスグループを“コンテナ”という単位で移動させる技術におけるプロセスIDの仮想化、グループの分離、ネットワークの分離と仮想化、リソースの仮想化などが記載されている。
特許第4481944号公報
室井雅仁ほか,"プログラムの更新を可能とするCheckpoint/Restart機構",IPSJ SIG Technical Report,2010年8月3日,Vol.2010−OS−115,No.3 Shaya Potter et al.,"Secure Isolation and Migration of Untrusted Legacy Applications",Columbia University Technical Report CUCS-005-04,2004年1月 Andrey Mirkin et al.,"Containers checkpointing and live migration",Proceedings of the Linux Symposium,2008年7月,Vol.2,p.85−90
しかしながら、上記のような技術によってもなお、プロセスマイグレーションにおいてプロセスを実行しながらアプリケーションの機能を向上させていくことは容易ではなかった。例えば、非特許文献1では、実行中のプログラムのバグ修正が可能であるものの、そのためにはプロセスの実装が予備情報として必要になる。特許文献1でも同様に、プロセスの移動と同時の機能変更が可能であるが、そのためにはコンポーネントがデバイス依存型であるか非依存型であるかの情報や、依存型である場合の代替コンポーネントなどの情報といった予備情報が必要になる。従って、上記の技術では、任意のアプリケーションを実行しながら更新するといったことは困難であった。
そこで、本開示では、実行中のアプリケーションの機能を容易に向上させることが可能な、新規かつ改良された情報処理装置、情報処理方法およびプログラムを提案する。
本開示によれば、アプリケーションが使用するモジュールを定義するアプリケーション定義情報を取得する取得部と、上記アプリケーションが実行される装置の状況に応じて上記アプリケーション定義情報を書き換える書換部と、上記書き換えられたアプリケーション定義情報を上記アプリケーションが実行される装置に提供する提供部とを含む情報処理装置が提供される。
また、本開示によれば、アプリケーションが使用するモジュールを定義するアプリケーション定義情報を取得することと、上記アプリケーションのプロセスが実行される装置の状況に応じて上記アプリケーション定義情報を書き換えることと、上記書き換えられたアプリケーション定義情報を上記プロセスが実行される装置に提供することとを含む情報処理方法が提供される。
また、本開示によれば、アプリケーションが使用するモジュールを定義するアプリケーション定義情報を取得する機能と、上記アプリケーションのプロセスが実行される装置の状況に応じて上記アプリケーション定義情報を書き換える機能と、上記書き換えられたアプリケーション定義情報を上記プロセスが実行される装置に提供する機能とをコンピュータに実現させるためのプログラムが提供される。
アプリケーション定義情報は、アプリケーションが使用するモジュールを定義した情報である。この情報を、アプリケーションのプロセスが実行される装置の状況に応じて書き換えることで、装置の状況に適したモジュールを用いてアプリケーションのプロセスを実行することが可能になり、結果としてアプリケーションの機能が向上する。
以上説明したように本開示によれば、実行中のアプリケーションの機能を容易に向上させることができる。
本開示の第1の実施形態におけるプロセス移動の概要を示す図である。 本開示の第1の実施形態におけるプロセスの構成を示す図である。 本開示の第1の実施形態におけるプロセス移動の処理の例を示すフローチャートである。 本開示の第1の実施形態における移動元装置の概略的な機能構成を示すブロック図である。 本開示の第2の実施形態におけるプロセス移動の処理の例を示すフローチャートである。 本開示の第2の実施形態における移動先装置の概略的な機能構成を示すブロック図である。 情報処理装置のハードウェア構成を説明するためのブロック図である。
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
なお、説明は以下の順序で行うものとする。
1.第1の実施形態(移動先装置での書き換え)
2.第2の実施形態(移動元装置での書き換え)
3.ハードウェア構成
4.まとめ
(1.第1の実施形態)
まず、図1〜図4を参照して、本開示の第1の実施形態について説明する。
図1は、本開示の第1の実施形態におけるプロセス移動の概要を示す図である。図1には、移動元装置で実行されていたアプリケーションのプロセスが、移動先装置で引き続き実行される例が示されている。
移動元装置で移動対象のプロセスの実行が停止されると、アプリケーションのイメージ情報(Info)が作成される。このイメージ情報は、アプリケーションが使用するモジュールを定義するアプリケーション定義情報と、アプリケーションのプロセスにおけるモジュールの実行状態を示す実行状態情報とを含みうる。イメージ情報は、ネットワークを介して移動元装置から移動先装置に送信される。移動先装置では、受信されたイメージ情報に基づいてプロセスの実行が再開される。
本実施形態では、イメージ情報が移動先装置に送信された後に、移動先装置において、イメージ情報のうちのアプリケーション定義情報が書き換えられる。移動先装置は、装置の状況、例えば処理能力や、ライブラリとして用意されているモジュールのバージョン、アプリケーションの使用権限などをチェックし、その結果に基づいてアプリケーション定義情報を書き換える。
移動先装置では、上記のように書き換えられたアプリケーション定義情報に従ってアプリケーションのプロセスの実行が再開される。それゆえ、移動先装置において、アプリケーションは、例えば移動先装置の処理能力により適応したモジュールや、より新しいバージョンのモジュール、使用権限に則したモジュールなどを用いて実行される。
図2は、本開示の第1の実施形態におけるプロセスの構成を示す図である。プロセスは、1または複数のソフトウェアモジュールM1,M2,・・・Mnを含む。プロセスが実行されるときには、これらのモジュールが所定の順序で呼び出されて実行される。
上記のアプリケーション定義情報では、アプリケーションのプロセスで使用されるモジュールが定義されている。各モジュールは、固有情報を有する。固有情報は、例えば、図示されているように、バージョン情報I101、コンパイル時の最適化オプションI102、および更新優先度I103などを含みうる。
バージョン情報I101は、モジュールのバージョンを示す情報である。モジュールがアップグレードされると、バージョン情報I101によって示されるバージョンが変更される(例えばより大きな数になる)。従って、例えば2つの装置の間でモジュールのバージョン情報I101を参照すれば、どちらの装置のモジュールが新しいか、つまりアップグレードされているかを判定することが可能である。
コンパイル時の最適化オプションI102は、モジュールに設定されているコンパイル時の最適化オプション(以下、単に最適化オプションともいう)を示す情報である。最適化オプションが設定されていれば、モジュールをより効率的に実行することができ、動作の高速化や、リソースの節約が可能になる。なお、最適化オプションは、各装置の機種に依存して設定される場合があり、一般的にはその方が効果が高い。例えば、最適化オプションは、特定のタイプのCPUについて設定され、そのタイプのCPUで実行される場合に効率的な実行を実現するものでありうる。
更新優先度I103は、モジュールが更新可能である場合に、更新する優先度を示す情報である。例えば、更新優先度I103は、“0:更新不要”、“1:更新の優先度が低い”、“2:更新の優先度が高い”といったように、段階的に設定されていてもよい。後述するように、アプリケーション定義情報に定義されるモジュールは、様々な基準によって更新されるが、更新の優先度を直接定義する情報として更新優先度I103が用いられてもよい。
図3は、本開示の第1の実施形態におけるプロセス移動の処理の例を示すフローチャートである。
まず、移動元装置において、アプリケーションのプロセスの実行が停止される(ステップS101)。ここで、プロセスの実行状態が保存される(ステップS102)。プロセスの実行状態は、例えば上述したイメージ情報として保存される。イメージ情報は、アプリケーション定義情報と、実行状態情報とを含む。実行状態を保存した後、移動元装置でアプリケーションのプロセスが消去される(ステップS103)。
次に、移動元装置から移動先装置へ、実行状態情報およびアプリケーション定義情報を転送する(ステップS104)。ここで転送される実行状態情報およびアプリケーション定義情報は、上記のステップS102で得られたものである。
続いて、移動先装置で、アプリケーション定義情報を更新する処理が実行される。まず、上記のステップS104で転送された実行状態情報を参照して、変更可能なモジュールを決定する(ステップS105)。ここでいう変更可能なモジュールは、実行状態情報によって、停止前のプロセスで実行されていないことが示されるモジュールでありうる。これは、停止前のプロセスで実行されていたモジュールを変更した場合、移動先装置でプロセスの実行を再開したときに、実行途中のモジュールが整合しなくなってしまうのを防ぐためである。
次に、移動先装置のモジュールの固有情報を取得する(ステップS106)。本実施形態では、アプリケーション定義情報の更新が移動先装置で実行されるため、ここでのモジュールの固有情報は、内部的に取得される。モジュールの固有情報は、上述のように、バージョン情報、最適化オプション、および更新優先度などの情報を含みうる。ここで固有情報が取得されるモジュールは、例えば移動先装置にライブラリとして用意されているモジュールでありうる。
次に、上記のステップS105で決定された変更可能なモジュールの中で、プロセスの実行を再開するにあたりアップグレード可能なモジュールがあるか否かを判定する(ステップS107)。アップグレード可能であるか否かは、例えば、移動先装置のモジュールのバージョン情報によって示されるバージョンが、アプリケーション定義情報に含まれるモジュールのバージョン情報によって示されるバージョンよりも新しいか否かによって判定されうる。さらに、移動先装置のモジュールの更新優先度、またはアプリケーション定義情報に含まれるモジュールの更新優先度を参照して、更新の優先度が高い場合にモジュールのアップグレードが可能であると判定してもよい。
上記のステップS107において、アップグレード可能なモジュールがあった場合、当該モジュールについてアプリケーション定義情報が書き換えられる(ステップS108)。より具体的には、元のアプリケーション定義情報におけるモジュールの定義が、移動先装置に存在するより新しいバージョンのモジュールに書き換えられる。
次に、移動先装置の現在の処理能力、または今後予測される処理能力に関する情報を取得する(ステップS109)。現在の処理能力は、この後移動先装置でアプリケーションの実行が再開される時の処理能力とみなされる。一方、今後予測される処理能力は、移動先装置でアプリケーションの実行がある程度継続された時点での処理能力とみなされる。
ここで、“処理能力”は、仕様上の静的な処理能力(CPUの処理能力や、メモリ容量など)ではなく、動的な処理能力(CPUの使用率や、空きメモリ量、バッテリ残量など)を意味しうる。つまり、上記のステップS108では、移動先装置でアプリケーションの実行が再開された場合に、どの程度の処理能力(処理速度、利用可能メモリ量、利用可能電力など)でアプリケーションが実行されるかを示す情報が取得されるともいえる。
次に、上記のステップS105で決定された変更可能なモジュールの中で、プロセスの実行を再開するにあたり、移動先装置の処理能力により適したモジュールがあるか否かを判定する(ステップS110)。例えば、モジュールの中には、高い処理能力を要するが高度な機能を実現するモジュールと、低い処理能力で済むが機能はシンプルなモジュールとが選択的に用意されている場合もある。このような場合は、移動先装置の処理能力に応じたモジュールを選択することが望ましい。また、例えば、移動先装置のCPUで利用可能なコンパイル時の最適化オプションが用意されているモジュールを選択すれば、移動先装置の処理能力をより有効に利用することが可能である。
上記のステップS110では、例えば、ステップS109で取得した移動先装置の処理能力に関する情報と、ステップS106で取得した移動先装置のモジュールの固有情報とを参照して、移動先装置でアプリケーションの実行に利用するのにより適したモジュールがあるか否かを判定する。ここで、より適したモジュールがあると判定された場合、当該モジュールについてアプリケーション定義情報が書き換えられる(ステップS111)。より具体的には、元のアプリケーション定義情報におけるモジュールの定義が、移動先装置に存在するより適したモジュールに書き換えられる。
次に、移動先装置で、実行状態情報および書き換えられたアプリケーション定義情報を用いて、アプリケーションのプロセスの実行が再開される(ステップS112)。再開以降にアプリケーションによって用いられるモジュールは、上記のステップS108およびステップS111の書き換えによって新たにアプリケーション定義情報に定義されたモジュールでありうる。
図4は、本開示の第1の実施形態における移動先装置の概略的な機能構成を示すブロック図である。図4を参照すると、移動先装置100は、通信部110と、書換部120と、提供部130と、記憶部140と、実行部150とを含む。移動先装置100は、例えば後述する情報処理装置のハードウェア構成によって実現されうる。
通信部110は、プロセス移動の際にアプリケーション定義情報を移動元装置から取得して、書換部120に提供する取得部としても機能する。さらに、通信部110は、実行状態情報を移動元装置から取得して書換部120に提供してもよい。通信部110は、例えば通信装置などを用いて実現されうる。
書換部120は、移動後のプロセスが実行される装置、すなわち移動先装置100の状況に応じて、通信部110が取得したアプリケーション定義情報を書き換える。書換部120は、通信部110が取得した実行状態情報を参照したり、記憶部140などから取得される移動先装置100の状況に関する情報に基づいて、アプリケーション定義情報を書き換えてもよい。書換部120も、例えばCPUを用いてソフトウェア的に実現されうる。
例えば、書換部120は、記憶部140から移動先装置100のモジュールの固有情報を取得し、アプリケーション定義情報によって定義されているモジュールが移動先装置100においてアップグレードされている場合に、モジュールをアップグレードされたモジュールに書き換えてもよい。かかる書き換えによって、例えば、プロセスの移動の機会を利用してモジュールの不具合修正が可能になる。
また、例えば、書換部120は、記憶部140から移動先装置100の現在または将来の処理能力に関する情報を取得し、アプリケーション定義情報によって定義されているモジュールを、移動先装置100の処理能力に適合したモジュールに書き換えてもよい。ここで、書換部120は、例えば、移動先装置100の利用可能なリソース量に応じて、定義されるモジュールを書き換えてもよい(例えば、利用可能なリソース量が比較的少ないモバイル装置から、多くのリソースを利用可能なレコーダやゲーム機にプロセスを移動するような場合。その逆もありうる)。また、書換部120は、例えば、移動先装置100のバッテリ残量に応じて、定義されるモジュールを書き換えてもよい(例えば、電源に接続された据え置きの装置から、モバイル装置にプロセスを移動するような場合。その逆もありうる)。
さらに、例えば、書換部120は、記憶部140から移動先装置100のアプリケーションの使用権限に関する情報を取得し、アプリケーション定義情報によって定義されているモジュールを、移動先装置100の使用権限に適合したモジュールに書き換えてもよい。かかる書き換えによって、例えば、他の装置での使用に制限があるアプリケーションであっても、移動先装置100で使用可能な範囲でプロセスを移動させ、実行することが可能になる。
提供部130は、書換部120によって書き換えられたアプリケーション定義情報を、記憶部140に提供する。また、提供部130は、通信部110によって取得された実行状態情報を、アプリケーション定義情報とともに記憶部140に提供する。アプリケーション定義情報および実行状態情報は、そのまま記憶部140に格納されてもよいし、あるいはこれらの情報を元にして記憶部140に格納されている情報が更新されてもよい。提供部130は、例えばCPUを用いてソフトウェア的に実現されうる。
記憶部140は、移動先装置100でのアプリケーションの実行に関する各種の情報を持続的または一時的に格納する。記憶部140には、例えば、アプリケーションが使用するモジュールのプログラムや、これらの実行状態を示す情報などが格納される。上記の提供部130によって提供されたアプリケーション定義情報や実行状態情報は、記憶部140に格納されている情報に反映される。記憶部140は、RAMやROM、ストレージ装置、リムーバブル記録媒体などの各種記憶手段によって実現されうる。
実行部150は、移動先装置100でアプリケーションのプロセスを実行する。実行部150は、例えば、記憶部140に格納された定義に従ってモジュールを呼び出して実行する。このときに実行部150が参照する定義は、上記の書換部120によって書き換えられたアプリケーション定義情報に基づく定義である。実行部150も、例えばCPUを用いてソフトウェア的に実現されうる。
なお、移動元装置の機能構成も、上記の移動先装置100の機能構成と類似したものにすることが可能である。ただし、本実施形態では、移動先装置でアプリケーション定義情報が書き換えられるため、移動元装置は必ずしも上記の書換部120の機能構成を有さなくてもよい。
(2.第2の実施形態)
次に、図5および図6を参照して、本開示の第2の実施形態について説明する。なお、プロセス移動の概要、およびプロセスの構成については、上記の第1の実施形態と同様であるため、詳細な説明は省略する。
図5は、本開示の第2の実施形態におけるプロセス移動の処理の例を示すフローチャートである。
まず、移動元装置において、アプリケーションのプロセスの実行が停止される(ステップS201)。ここで、プロセスの実行状態が保存される(ステップS202)。プロセスの実行状態は、例えば上述したイメージ情報として保存される。イメージ情報は、アプリケーション定義情報と、実行状態情報とを含む。実行状態を保存した後、移動元装置でアプリケーションのプロセスが消去される(ステップS203)。
続いて、移動元装置で、アプリケーション定義情報を更新する処理が実行される。つまり、本実施形態では、第1の実施形態とは異なり、アプリケーション定義情報が移動元装置で書き換えられた上で、移動先装置に転送される。まず、上記のステップS202で得られた実行状態情報を参照して、変更可能なモジュールを決定する(ステップS204)。第1の実施形態と同様に、ここでいう変更可能なモジュールは、実行状態情報によって、停止前のプロセスで実行されていないことが示されるモジュールでありうる。
次に、移動元装置から移動先装置にアクセスして、移動先装置のモジュールの固有情報を取得する(ステップS205)。モジュールの固有情報は、上述のように、バージョン情報、最適化オプション、および更新優先度などの情報を含みうる。ここで固有情報が取得されるモジュールは、例えば移動先装置にライブラリとして用意されているモジュールでありうる。
次に、上記のステップS204で決定された変更可能なモジュールの中で、移動先装置でアプリケーションのプロセスの実行を再開するにあたりアップグレード可能なモジュールがあるか否かを判定する(ステップS206)。アップグレード可能であるか否かは、例えば、移動先装置のモジュールのバージョン情報によって示されるバージョンが、アプリケーション定義情報に含まれるモジュールのバージョン情報によって示されるバージョンよりも新しいか否かによって判定されうる。さらに、移動先装置のモジュールの更新優先度、またはアプリケーション定義情報に含まれるモジュールの更新優先度を参照して、更新の優先度が高い場合にモジュールのアップグレードが可能であると判定してもよい。
上記のステップS206において、アップグレード可能なモジュールがあった場合、当該モジュールについてアプリケーション定義情報が書き換えられる(ステップS207)。より具体的には、元のアプリケーション定義情報におけるモジュールの定義が、移動先装置に存在するより新しいバージョンのモジュールに書き換えられる。
次に、移動元装置から移動先装置にアクセスして、移動先装置の現在の処理能力、または今後予測される処理能力に関する情報を取得する(ステップS208)。現在の処理能力は、この後イメージ情報が移動先装置に送信され、移動先装置でアプリケーションの実行が再開される時の処理能力とみなされる。一方、今後予測される処理能力は、移動先装置でアプリケーションの実行がある程度継続された時点での処理能力とみなされる。
次に、上記のステップS204で決定された変更可能なモジュールの中で、移動先装置でアプリケーションのプロセスの実行を再開するにあたり、移動先装置の処理能力により適したモジュールがあるか否かを判定する(ステップS209)。ここでは、例えば、ステップS208で取得した移動先装置の処理能力に関する情報と、ステップS205で取得した移動先装置のモジュールの固有情報とを参照して、移動先装置でアプリケーションの実行に利用するのにより適したモジュールがあるか否かを判定する。より適したモジュールがあると判定された場合、当該モジュールについてアプリケーション定義情報が書き換えられる(ステップS210)。より具体的には、元のアプリケーション定義情報におけるモジュールの定義が、移動先装置に存在するより適したモジュールに書き換えられる。
次に、移動元装置から移動先装置へ、実行状態情報およびアプリケーション定義情報を転送する(ステップS211)。ここで転送される実行状態情報は、上記のステップS202で得られたものである。また、ここで転送されるアプリケーション定義情報は、上記のステップS202で得られ、ステップS207およびステップS210で必要に応じて書き換えられたものである。
次に、移動先装置で、転送された実行状態情報およびアプリケーション定義情報を用いて、アプリケーションのプロセスの実行が再開される(ステップS212)。再開以降にアプリケーションによって用いられるモジュールは、上記のステップS207およびステップS210の書き換えによって新たにアプリケーション定義情報に定義されたモジュールでありうる。
図6は、本開示の第2の実施形態における移動元装置の概略的な機能構成を示すブロック図である。図6を参照すると、移動元装置200は、取得部210と、書換部220と、通信部230と、記憶部240と、実行部250とを含む。移動元装置200は、例えば後述する情報処理装置のハードウェア構成によって実現されうる。
取得部210は、プロセス移動の際にアプリケーション定義情報を取得して、書換部220に提供する。さらに、取得部210は、実行状態情報を取得して書換部220に提供してもよい。アプリケーション定義情報および実行状態情報は、記憶部240から取得されてもよいし、あるいは記憶部240に格納された情報を基に取得部210が生成してもよい。取得部210は、例えばCPUを用いてソフトウェア的に実現されうる。
書換部220は、プロセス移動の際に、移動後のプロセスが実行される装置、すなわち移動先装置の状況に応じて、取得部210が取得したアプリケーション定義情報を書き換える。書換部220は、さらに、取得部210が取得した実行状態情報を参照したり、通信部230を介して取得される移動先装置の状況に関する情報に基づいて、アプリケーション定義情報を書き換えてもよい。書換部220も、例えばCPUを用いてソフトウェア的に実現されうる。なお、書換部220による具体的な書き換えの例については、上記の第1の実施形態と同様でありうる。
通信部230は、書換部220によって書き換えられたアプリケーション定義情報を、移動後のプロセスが実行される装置、すなわち移動先装置に提供する提供部としても機能する。また、通信部230は、取得部210によって取得された実行状態情報を、アプリケーション定義情報とともに提供する。通信部230は、移動先装置の状況に関する情報を受信し、書換部220に提供してもよい。通信部230は、例えば通信装置などを用いて実現されうる。
記憶部240は、移動元装置200でのアプリケーションの実行に関する各種の情報を持続的または一時的に格納する。記憶部240には、例えば、アプリケーションが使用するモジュールのプログラムや、これらの実行状態を示す情報などが格納される。アプリケーションのプロセスの移動時に生成されるアプリケーション定義情報や実行状態情報は、記憶部240に格納されている情報を基にして生成されうる。記憶部240は、RAMやROM、ストレージ装置、リムーバブル記録媒体などの各種記憶手段によって実現されうる。
実行部250は、移動元装置200でアプリケーションのプロセスを実行する。実行部250は、例えば、記憶部240に格納された定義に従ってモジュールを呼び出して実行する。このとき、実行部250は、モジュールの実行状態を記憶部240に記録する。実行部250も、例えばCPUを用いてソフトウェア的に実現されうる。
なお、移動先装置の機能構成も、上記の移動元装置200の機能構成と類似したものにすることが可能である。ただし、本実施形態では、移動元装置でアプリケーション定義情報が書き換えられるため、移動先装置は必ずしも上記の書換部220の機能構成を有さなくてもよい。
(3.ハードウェア構成)
次に、図7を参照して、本開示の実施形態に係る情報処理装置のハードウェア構成について説明する。図7は、情報処理装置のハードウェア構成を説明するためのブロック図である。図示された情報処理装置900は、例えば、上記の実施形態における移動先装置100および移動元装置200などを実現しうる。
情報処理装置900は、CPU(Central Processing unit)901、ROM(Read Only Memory)903、およびRAM(Random Access Memory)905を含む。また、情報処理装置900は、ホストバス907、ブリッジ909、外部バス911、インターフェース913、入力装置915、出力装置917、ストレージ装置919、ドライブ921、接続ポート923、通信装置925を含んでもよい。情報処理装置900は、CPU901に代えて、またはこれとともに、DSP(Digital Signal Processor)などの処理回路を有してもよい。
CPU901は、演算処理装置および制御装置として機能し、ROM903、RAM905、ストレージ装置919、またはリムーバブル記録媒体927に記録された各種プログラムに従って、情報処理装置900内の動作全般またはその一部を制御する。ROM903は、CPU901が使用するプログラムや演算パラメータなどを記憶する。RAM905は、CPU901の実行において使用するプログラムや、その実行において適宜変化するパラメータなどを一次記憶する。CPU901、ROM903、およびRAM905は、CPUバスなどの内部バスにより構成されるホストバス907により相互に接続されている。さらに、ホストバス907は、ブリッジ909を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス911に接続されている。
入力装置915は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバーなど、ユーザによって操作される装置である。入力装置915は、例えば、赤外線やその他の電波を利用したリモートコントロール装置であってもよいし、情報処理装置900の操作に対応した携帯電話などの外部接続機器929であってもよい。入力装置915は、ユーザが入力した情報に基づいて入力信号を生成してCPU901に出力する入力制御回路を含む。ユーザは、この入力装置915を操作することによって、情報処理装置900に対して各種のデータを入力したり処理動作を指示したりする。
出力装置917は、取得した情報をユーザに対して視覚的または聴覚的に通知することが可能な装置で構成される。出力装置917は、例えば、LCD(Liquid Crystal Display)、PDP(Plasma Display Panel)、有機EL(Electro-Luminescence)ディスプレイなどの表示装置、スピーカおよびヘッドホンなどの音声出力装置、ならびにプリンタ装置などでありうる。出力装置917は、情報処理装置900の処理により得られた結果を、テキストまたは画像などの映像として出力したり、音声または音響などの音声として出力したりする。
ストレージ装置919は、情報処理装置900の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置919は、例えば、HDD(Hard Disk Drive)などの磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイスなどにより構成される。このストレージ装置919は、CPU901が実行するプログラムや各種データ、および外部から取得した各種のデータなどを格納する。
ドライブ921は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブル記録媒体927のためのリーダライタであり、情報処理装置900に内蔵、あるいは外付けされる。ドライブ921は、装着されているリムーバブル記録媒体927に記録されている情報を読み出して、RAM905に出力する。また、ドライブ921は、装着されているリムーバブル記録媒体927に記録を書き込む。
接続ポート923は、機器を情報処理装置900に直接接続するためのポートである。接続ポート923は、例えば、USB(Universal Serial Bus)ポート、IEEE1394ポート、SCSI(Small Computer System Interface)ポートなどでありうる。また、接続ポート923は、RS−232Cポート、光オーディオ端子、HDMI(High-Definition Multimedia Interface)ポートなどであってもよい。接続ポート923に外部接続機器929を接続することで、情報処理装置900と外部接続機器929との間で各種のデータが交換されうる。
通信装置925は、例えば、通信ネットワーク931に接続するための通信デバイスなどで構成された通信インターフェースである。通信装置925は、例えば、有線または無線LAN(Local Area Network)、Bluetooth(登録商標)、またはWUSB(Wireless USB)用の通信カードなどでありうる。また、通信装置925は、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ、または、各種通信用のモデムなどであってもよい。通信装置925は、例えば、インターネットや他の通信機器との間で、TCP/IPなどの所定のプロトコルを用いて信号などを送受信する。また、通信装置925に接続される通信ネットワーク931は、有線または無線によって接続されたネットワークであり、例えば、インターネット、家庭内LAN、赤外線通信、ラジオ波通信または衛星通信などである。
以上、情報処理装置900のハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。かかる構成は、実施する時々の技術レベルに応じて適宜変更されうる。
(4.まとめ)
以上で説明した本開示の実施形態では、プロセス移動の際にアプリケーション定義情報が書き換えられ、アプリケーションのプロセスにおいて使用されるモジュールが更新される。アプリケーション定義情報は、上記の実施形態にあるように、移動先装置で書き換えられてもよく、また移動元装置で書き換えられてもよい。あるいは、アプリケーション定義情報は、一旦移動元装置とも移動先装置とも異なるサーバなどの装置に送られ、そこで書き換えられてもよい。
プロセス移動時には、元々ある程度の時間処理が停止することがユーザによって予想されているため、その時間を利用して上記のようなモジュールの更新を実行することで、通常の実行中にモジュールを更新するよりも、ユーザが感じる更新の所要時間を短くすることができる。
また、アプリケーション定義情報の書き換えは、プロセスで実行されていないモジュールを対象にして実行されるため、プロセス移動およびモジュール更新が終了した後、プロセスの実行をそのまま継続させることができる。プロセスで実行されていたモジュールは更新されないことになるが、プロセス移動は一度限りではなく何度も実行されることが想定されるため、そのようなモジュールは他のプロセス移動の機会に更新されうる。
アプリケーション定義情報の書き換えにあたっては、モジュール単位で、例えばバージョン情報や、コンパイル時の最適化オプション、更新優先度といったような情報を参照して書き換えの有無を判定するため、アプリケーションの実装などに関する予備情報は必要とされない。従って、プロセス移動の対象になる任意のアプリケーションについて、アプリケーション定義情報を書き換えることができる。
なお、上記の実施形態では、プロセス移動の際にアプリケーション定義情報が書き換えられる例について説明したが、本開示の実施形態は、必ずしもプロセス移動が実行されない場合にも適用可能である。例えば、あるアプリケーションのプロセスを実行中に、他のプロセスの影響で、例えばCPUの処理速度、利用可能メモリ量、または利用可能電力といったような装置の状況が変化した場合、かかる状況に応じてアプリケーション定義情報を書き換え、書き換えられたアプリケーション定義情報を用いて引き続き同じ装置でアプリケーションのプロセスを実行してもよい。
(効果の例)
以下、本開示の実施形態による効果の具体的な例を示す。
例えば、移動先装置の空きメモリ量が少ないことがわかった場合、メモリ使用量がより少ないバージョンのライブラリを使用するように、アプリケーション定義情報を書き換える。そうすると、プロセスの移動後も円滑にアプリケーションを実行することができる。一方、移動先装置の空きメモリ量が多いことがわかった場合には、メモリ使用量が多いが処理速度や高度な画像・音声表現が可能なバージョンのライブラリを使用するように、アプリケーション定義情報を書き換えてもよい。
また、例えば、移動先装置のCPUの処理能力が高いことがわかった場合、処理は複雑だが、高度な画像・音声表現が可能なバージョンのライブラリを使用するようにアプリケーション定義情報を書き換える。そうすると、プロセスの移動後には移動先装置のCPUの処理能力をフルに活かした画像・音声表現が楽しめる。一方、移動先装置のCPUの処理能力が低い場合には、処理が単純でシンプルな画像・音声表現のバージョンのライブラリを使用するように、アプリケーション定義情報を書き換えてもよい。
また、例えば、移動先装置のバッテリ残量が少ないことがわかった場合、CPUやその他のデバイスに負担が少ないバージョンのライブラリを使用するように、アプリケーション定義情報を書き換える。そうすると、プロセスの移動後も、移動先装置のバッテリ残り時間が極端に短くなるといったようなことがなくなる。一方、移動先装置のバッテリ残量が多い、または電源に接続されている場合には、CPUやその他のデバイスを駆使するバージョンのライブラリを使用するように、アプリケーション定義情報を書き換えてもよい。
また、例えば、動画プレーヤのプロセスが移動される場合、移動時により新しいバージョンのライブラリをリンクさせるようにアプリケーション定義情報を書き換えることによって、移動後の動画プレーヤが新たなコーデックに対応するようになる。動画プレーヤ自体は、動画の再生を継続したまま移動するため、ユーザからは、いつの間にか動画プレーヤによって再生可能な動画形式が増えているように感じられる。
また、例えば、アプリケーションのプロセスを移動する場合、最近明らかになった脆弱性に対応しているバージョンのライブラリをリンクさせるようにアプリケーション定義情報を書き換えることによって、アプリケーションの実行を続けたまま、脆弱性に対応することが可能である。
また、例えば、ある装置でプレー中のゲームの機能制限版を友人に配布することも可能である。この場合、ゲームのアプリケーションのイメージ情報を生成し、イメージ情報に含まれるアプリケーション定義情報に定義されたモジュールを、時間制限つき(例えば30分限定)のモジュールに書き換えたり、画像や音声の出力が制限されたモジュールに書き換えたりする。この場合、プロセスを移動元装置で停止して移動するのではなく、移動元装置でのプロセスの実行は継続したまま、イメージ情報を移動先装置に転送し、移動元装置と移動先装置との両方でプロセスを実行する。機能制限版による配布が可能になれば、配布自体は認められる場合が増えると考えられるため、結果的にユーザの利便性が向上する。
付加的な構成として、アプリケーションで使用されるライブラリの中に、移動先装置のライブラリと互換性がないものがある場合、プロセスの移動とともにライブラリをコピーしてもよい。また、プロセス移動にあたって、アプリケーションで使用されるライブラリと互換性のあるライブラリが用意されている装置を選択して移動先装置にしてもよい。そのような装置がない場合、プロセスの移動とともにライブラリをコピー(または移動)してもよい。アプリケーションが使用しているファイル(共有ライブラリ)の移動先装置との互換性については、移動元装置でアプリケーションのプロセスを停止する前に確認してもよいし、停止した後に確認してもよい。
本開示の実施形態は、例えば、上記で説明したような情報処理装置、情報処理システム、情報処理方法、コンピュータを情報処理装置として機能させるためのプログラム、および当該プログラムが記録された記録媒体を含む。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)アプリケーションが使用するモジュールを定義するアプリケーション定義情報を取得する取得部と、
前記アプリケーションのプロセスが実行される装置の状況に応じて前記アプリケーション定義情報を書き換える書換部と、
前記書き換えられたアプリケーション定義情報を前記プロセスが実行される装置に提供する提供部と
を備える情報処理装置。
(2)前記アプリケーション定義情報は、前記プロセスの実行主体の変更に伴って前記情報処理装置と外部装置との間で送受信され、
前記書換部は、前記情報処理装置または前記外部装置のうち新たに前記プロセスの実行主体になる移動先装置の状況に応じて前記アプリケーション定義情報を書き換える、前記(1)に記載の情報処理装置。
(3)前記書換部は、前記アプリケーション定義情報によって定義される前記モジュールを、前記移動先装置の前記送受信の時の処理能力、または前記送受信後の予測される処理能力に適合したモジュールに書き換える、前記(2)に記載の情報処理装置。
(4)前記書換部は、前記アプリケーション定義情報によって定義される前記モジュールを、前記移動先装置の利用可能なリソース量に応じて書き換える、前記(3)に記載の情報処理装置。
(5)前記書換部は、前記アプリケーション定義情報によって定義される前記モジュールを、前記移動先装置のバッテリ残量に応じて書き換える、前記(3)または(4)に記載の情報処理装置。
(6)前記書換部は、前記アプリケーション定義情報によって定義される前記モジュールが前記移動先装置においてアップグレードされている場合に、前記モジュールを該アップグレードされたモジュールに書き換える、前記(2)〜(5)のいずれか1項に記載の情報処理装置。
(7)前記書換部は、前記アプリケーション定義情報によって定義される前記モジュールを、前記移動先装置が有する使用権限に適合したモジュールに書き換える、前記(2)〜(6)のいずれか1項に記載の情報処理装置。
(8)前記取得部は、前記アプリケーション定義情報を前記外部装置から受信し、
前記書換部は、前記情報処理装置の状況に応じて前記アプリケーション定義情報を書き換え、
前記提供部は、前記書き換えられたアプリケーション定義情報を内部的に提供する、前記(2)〜(7)のいずれか1項に記載の情報処理装置。
(9)前記取得部は、前記アプリケーション定義情報を内部的に取得するとともに、前記外部装置の状況を示す情報を前記外部装置から受信し、
前記書換部は、前記外部装置の状況に応じて前記アプリケーション定義情報を書き換え、
前記提供部は、前記書き換えられたアプリケーション定義情報を前記外部装置に送信する、前記(2)〜(7)のいずれか1項に記載の情報処理装置。
(10)前記取得部は、前記アプリケーションのプロセスにおける前記モジュールの実行状態を示す実行状態情報をさらに取得し、
前記書換部は、前記実行状態情報によって実行されていないことが示される前記モジュールについて前記アプリケーション定義情報を書き換える、前記(1)〜(9)のいずれか1項に記載の情報処理装置。
(11)前記書換部は、前記アプリケーション定義情報によって定義される前記モジュールを、前記アプリケーションのプロセスが実行される装置の処理能力に適合したモジュールに書き換える、前記(1)〜(10)のいずれか1項に記載の情報処理装置。
(12)アプリケーションが使用するモジュールを定義するアプリケーション定義情報を取得することと、
前記アプリケーションのプロセスが実行される装置の状況に応じて前記アプリケーション定義情報を書き換えることと、
前記書き換えられたアプリケーション定義情報を前記プロセスが実行される装置に提供することと
を含む情報処理方法。
(13)アプリケーションが使用するモジュールを定義するアプリケーション定義情報を取得する機能と、
前記アプリケーションのプロセスが実行される装置の状況に応じて前記アプリケーション定義情報を書き換える機能と、
前記書き換えられたアプリケーション定義情報を前記プロセスが実行される装置に提供する機能と
をコンピュータに実現させるためのプログラム。
100 移動元装置
110 通信部
120 書換部
130 提供部
140 記憶部
150 実行部
200 移動先装置
210 取得部
220 書換部
230 通信部
240 記憶部
250 実行部

Claims (13)

  1. アプリケーションが使用するモジュールを定義するアプリケーション定義情報を取得する取得部と、
    前記アプリケーションのプロセスが実行される装置の状況に応じて前記アプリケーション定義情報を書き換える書換部と、
    前記書き換えられたアプリケーション定義情報を前記プロセスが実行される装置に提供する提供部と
    を備える情報処理装置。
  2. 前記アプリケーション定義情報は、前記プロセスの実行主体の変更に伴って前記情報処理装置と外部装置との間で送受信され、
    前記書換部は、前記情報処理装置または前記外部装置のうち新たに前記プロセスの実行主体になる移動先装置の状況に応じて前記アプリケーション定義情報を書き換える、請求項1に記載の情報処理装置。
  3. 前記書換部は、前記アプリケーション定義情報によって定義される前記モジュールを、前記移動先装置の前記送受信の時の処理能力、または前記送受信後の予測される処理能力に適合したモジュールに書き換える、請求項2に記載の情報処理装置。
  4. 前記書換部は、前記アプリケーション定義情報によって定義される前記モジュールを、前記移動先装置の利用可能なリソース量に応じて書き換える、請求項3に記載の情報処理装置。
  5. 前記書換部は、前記アプリケーション定義情報によって定義される前記モジュールを、前記移動先装置のバッテリ残量に応じて書き換える、請求項3に記載の情報処理装置。
  6. 前記書換部は、前記アプリケーション定義情報によって定義される前記モジュールが前記移動先装置においてアップグレードされている場合に、前記モジュールを該アップグレードされたモジュールに書き換える、請求項2に記載の情報処理装置。
  7. 前記書換部は、前記アプリケーション定義情報によって定義される前記モジュールを、前記移動先装置が有する使用権限に適合したモジュールに書き換える、請求項2に記載の情報処理装置。
  8. 前記取得部は、前記アプリケーション定義情報を前記外部装置から受信し、
    前記書換部は、前記情報処理装置の状況に応じて前記アプリケーション定義情報を書き換え、
    前記提供部は、前記書き換えられたアプリケーション定義情報を内部的に提供する、請求項2に記載の情報処理装置。
  9. 前記取得部は、前記アプリケーション定義情報を内部的に取得するとともに、前記外部装置の状況を示す情報を前記外部装置から受信し、
    前記書換部は、前記外部装置の状況に応じて前記アプリケーション定義情報を書き換え、
    前記提供部は、前記書き換えられたアプリケーション定義情報を前記外部装置に送信する、請求項2に記載の情報処理装置。
  10. 前記取得部は、前記アプリケーションのプロセスにおける前記モジュールの実行状態を示す実行状態情報をさらに取得し、
    前記書換部は、前記実行状態情報によって実行されていないことが示される前記モジュールについて前記アプリケーション定義情報を書き換える、請求項1に記載の情報処理装置。
  11. 前記書換部は、前記アプリケーション定義情報によって定義される前記モジュールを、前記アプリケーションのプロセスが実行される装置の処理能力に適合したモジュールに書き換える、請求項1に記載の情報処理装置。
  12. アプリケーションが使用するモジュールを定義するアプリケーション定義情報を取得することと、
    前記アプリケーションのプロセスが実行される装置の状況に応じて前記アプリケーション定義情報を書き換えることと、
    前記書き換えられたアプリケーション定義情報を前記プロセスが実行される装置に提供することと
    を含む情報処理方法。
  13. アプリケーションが使用するモジュールを定義するアプリケーション定義情報を取得する機能と、
    前記アプリケーションのプロセスが実行される装置の状況に応じて前記アプリケーション定義情報を書き換える機能と、
    前記書き換えられたアプリケーション定義情報を前記プロセスが実行される装置に提供する機能と
    をコンピュータに実現させるためのプログラム。
JP2012128769A 2012-06-06 2012-06-06 情報処理装置、情報処理方法およびプログラム Pending JP2013254303A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012128769A JP2013254303A (ja) 2012-06-06 2012-06-06 情報処理装置、情報処理方法およびプログラム
US13/899,616 US20130332928A1 (en) 2012-06-06 2013-05-22 Information processing system, information processing method, and computer-readable medium
CN2013102028882A CN103473131A (zh) 2012-06-06 2013-05-28 信息处理系统、信息处理方法和计算机可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012128769A JP2013254303A (ja) 2012-06-06 2012-06-06 情報処理装置、情報処理方法およびプログラム

Publications (1)

Publication Number Publication Date
JP2013254303A true JP2013254303A (ja) 2013-12-19

Family

ID=49716351

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012128769A Pending JP2013254303A (ja) 2012-06-06 2012-06-06 情報処理装置、情報処理方法およびプログラム

Country Status (3)

Country Link
US (1) US20130332928A1 (ja)
JP (1) JP2013254303A (ja)
CN (1) CN103473131A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9710291B2 (en) * 2013-06-19 2017-07-18 Empire Technology Development Llc Processor-optimized library loading for virtual machines
EP3056989B1 (de) * 2015-02-12 2018-08-29 Deutsche Telekom AG Übertragung von applikationen
US10956512B2 (en) * 2015-11-11 2021-03-23 Quest Software Inc. Document link migration

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4947315A (en) * 1986-12-03 1990-08-07 Finnigan Corporation System for controlling instrument using a levels data structure and concurrently running compiler task and operator task
JPH1173398A (ja) * 1997-06-03 1999-03-16 Toshiba Corp 分散ネットワークコンピューティングシステム、同システムに用いられる情報交換装置、同システムに用いられるセキュリティ機能を有する情報交換方法、この方法を格納したコンピュータ読取り可能な記憶媒体
JP2001056759A (ja) * 1999-08-18 2001-02-27 Matsushita Electric Ind Co Ltd ソフトウェア書換え方法およびソフトウェア書換え装置
US6308178B1 (en) * 1999-10-21 2001-10-23 Darc Corporation System for integrating data among heterogeneous systems
AU2001229737A1 (en) * 2000-01-23 2001-07-31 Altiris, Inc. Method and system for describing and extracting application information
US6370646B1 (en) * 2000-02-16 2002-04-09 Miramar Systems Method and apparatus for multiplatform migration
US6701521B1 (en) * 2000-05-25 2004-03-02 Palm Source, Inc. Modular configuration and distribution of applications customized for a requestor device
US7080159B2 (en) * 2000-12-15 2006-07-18 Ntt Docomo, Inc. Method and system for effecting migration of application among heterogeneous devices
WO2003001401A1 (en) * 2001-06-22 2003-01-03 Wonderware Corporation Internationalization of objects executable in a supervisory process control and manufacturing information system
US7904893B2 (en) * 2004-03-17 2011-03-08 Marvell International Ltd. Power and/or energy optimized compile/execution
US7577929B1 (en) * 2005-07-21 2009-08-18 Altera Corporation Early timing estimation of timing statistical properties of placement
US7757214B1 (en) * 2005-11-10 2010-07-13 Symantec Operating Coporation Automated concurrency configuration of multi-threaded programs
US7818740B2 (en) * 2006-05-05 2010-10-19 Microsoft Corporation Techniques to perform gradual upgrades
EP1912146A1 (en) * 2006-10-09 2008-04-16 Macrovision Corporation A computer-implemented method and system for binding digital rights management information to a software application
US7506298B1 (en) * 2006-12-19 2009-03-17 Xilinx, Inc. Methods of mapping a logical memory representation to physical memory in a programmable logic device
US8813048B2 (en) * 2009-05-11 2014-08-19 Accenture Global Services Limited Single code set applications executing in a multiple platform system
US8850423B2 (en) * 2009-10-29 2014-09-30 International Business Machines Corporation Assisting server migration
US8595284B2 (en) * 2009-12-14 2013-11-26 Samsung Electronics Co., Ltd Web application script migration
JP5910413B2 (ja) * 2012-08-21 2016-04-27 富士通株式会社 情報処理装置、起動プログラム、および起動方法

Also Published As

Publication number Publication date
US20130332928A1 (en) 2013-12-12
CN103473131A (zh) 2013-12-25

Similar Documents

Publication Publication Date Title
US20220053068A1 (en) Methods, apparatuses and computer storage media for applet state synchronization
US7971057B2 (en) Exclusive access for secure audio program
US20140289414A1 (en) Api for resource discovery and utilization
US8462945B2 (en) Protecting video content using virtualization
CN102360298B (zh) 一种终端设备的软件升级方法
US9529615B2 (en) Virtual device emulation via hypervisor shared memory
US20120017209A1 (en) Optimizing a file system interface in a virtualized computing environment
CN104205050A (zh) 访问远程机器上的设备
US9262211B2 (en) Apparatus and method for software migration in mobile environment
US20230336624A1 (en) Persistent storage overlay
CN111625214A (zh) 音频控制方法、装置、设备及存储介质
WO2015060833A1 (en) Sandboxed application data redirection to datacenters
JP2013254304A (ja) 情報処理装置、情報処理方法およびプログラム
CN106528133B (zh) 一种应用于多系统的设备请求处理方法及装置
US9275240B2 (en) Synchronized virtual trusted platform modules (VTPM) and virtual machine (VM) rollbacks
CN108090345B (zh) linux系统外部命令执行方法及装置
JP2013254303A (ja) 情報処理装置、情報処理方法およびプログラム
US8453149B2 (en) Efficient multi-core processing of events
CN103902300A (zh) 一种Android模拟器快速安装APK程序的方法及系统
JP5474921B2 (ja) 電子機器、記録媒体管理方法、およびプログラム
US9229757B2 (en) Optimizing a file system interface in a virtualized computing environment
CN113742716B (zh) 代码运行方法、装置、电子设备、存储介质和程序产品
KR101772547B1 (ko) 컴퓨팅 디바이스에서의 전력 소비 감축
EP3523745B1 (en) Electronic device, method for controlling thereof and computer-readable recording medium
WO2020064000A1 (zh) 一种消息框的显示方法及装置、终端、存储介质