JP2006196014A - 異種デバイス間におけるアプリケーションのマイグレーション方法およびシステム - Google Patents

異種デバイス間におけるアプリケーションのマイグレーション方法およびシステム Download PDF

Info

Publication number
JP2006196014A
JP2006196014A JP2006052681A JP2006052681A JP2006196014A JP 2006196014 A JP2006196014 A JP 2006196014A JP 2006052681 A JP2006052681 A JP 2006052681A JP 2006052681 A JP2006052681 A JP 2006052681A JP 2006196014 A JP2006196014 A JP 2006196014A
Authority
JP
Japan
Prior art keywords
component
target device
roamlet
application
pda
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.)
Granted
Application number
JP2006052681A
Other languages
English (en)
Other versions
JP4481944B2 (ja
JP2006196014A5 (ja
Inventor
Hao-Hua Chu
チュ ハオ−フア
Shoji Kurakake
クラカケ ショウジ
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.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
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 NTT Docomo Inc filed Critical NTT Docomo Inc
Publication of JP2006196014A publication Critical patent/JP2006196014A/ja
Publication of JP2006196014A5 publication Critical patent/JP2006196014A5/ja
Application granted granted Critical
Publication of JP4481944B2 publication Critical patent/JP4481944B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/482Application

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

【課題】異種デバイス間におけるアプリケーションのマイクグレーションを可能にする。
【解決手段】アプリケーションは、1以上のコンポーネントの複数セットから成る。ソースデバイス2において実行されるアプリケーションおよびターゲットデバイス3のハードウェア構成が検査されて、ターゲットデバイス3における実行に最も適したコンポーネントを、各セットから少なくともひとつ選択することにより、アプリケーションをターゲットデバイス3にポーティングする。ソースデバイス2にあるアプリケーションの実行状態が取得され、ターゲットデバイス3に送られる。ターゲットデバイス3は、アプリケーションの取得状態を使って、ポーティングされたアプリケーションをロードし、インスタンス化する。
【選択図】図2

Description

この発明は、異種デバイス間、または異なるハードウェア構成のデバイス間でアプリケーションをマイグレーションする方法およびシステムに関する。
マイグレーションとは、ひとつのデバイスにおいて実行中のアプリケーションがタスクを中断して別のデバイスにマイグレーションし、マイグレーション先のデバイスにおいてタスクを再開する際には最初のデバイスにおいて中止した時点で実行していたタスクを実行する処理のことをいう。この点でマイグレーションは、アプリケーションがひとつのデバイスから他のデバイスに移動し、移動先のデバイスにおいては最初のデバイスにおけるアプリケーションの状態に関係なく振り出しからタスクが実行される遠隔実行処理とは異なる。
モビリティ(可動性)へのニーズがコンピュータデバイスの進化の主たる駆動力であると言えるかもしれない。デスクトップ型のコンピュータは、ノートブック型のコンピュータに進化した。PDA(Personal Digital Assistant)やインテリジェント・ページャは、最近この進化ツリーの仲間入りをした新種である。今や、これらのコンピュータデバイスは、有線または無線LAN、セルラ網、Bluetooth(登録商標)、そしてPAN(Personal Area Network:パーソナル・エリア・ネットワーク)など、様々な通信ネットワークを介したデータ通信により互いに交信することが可能になった。
コンピュータデバイスの進化は、我々の生活に著しい影響を及ぼし、我々のビジネスや作業環境の変化をもたらしてきた。以前は、PCは机に固定され移動できなかったため、必要なソフトウェアを備えたPCが設置してある場所でのみ作業をしたりデータを処理することができた。しかし近年では、移動可能であり、十分な機能を備えたコンピュータデバイス、例えば、ノートブック型コンピュータ、PDA、セルラ電話などを簡単に利用することができる。これら移動デバイスのユーザは、デバイスの可動性を最大限に利用したいという欲求を持っている場合が多い。ユーザが遠隔地にいるときや移動中に、モバイルコンピュータを用いて仕事を続けられたら、どんなに効率よく、また成果を上げることができるだろうか。例えば、携帯電話かPDAのユーザが、オフィスのデスクトップ型のコンピュータを使ってオンラインでビジネス旅行の計画をしていて、離れた場所でのミーティングに呼ばれて作業を中断しなければならないと仮定しよう。こんな場合、ユーザは、ミーティング場所への移動中の電車やバスの中や、ミーティングの合間に、携帯電話やPDAを使ってビジネス旅行の計画を続けたいと思うかもしれない。
このようなニーズに応えるため、アプリケーションのマイグレーションという概念が開発された。つまり、この概念では、アプリケーションは、あるコンピュータデバイス(ソースデバイス)から別のコンピュータデバイス(ターゲットデバイス)にそのままの状態でマイグレーションする。マイグレーションは、(1)アプリケーションの画一性、(2)アプリケーションの実行の継続性という二つの技術的課題を提起している。
最初の課題は、コンピュータデバイス間のハードウェア構成の違いに起因している。確かに、コンピュータデバイスは、コンピュータ処理能力、メモリ容量、画面の大きさ、データ入力手段など、あらゆる面で多様である。このため、ハードウェア構成に応じた個別のアプリケーションがコンピュータデバイスごとにロードされているのが常であり、それでいて同じ処理を実行している。例えば、デスクトップ型のPCでは、「マイクロソフト(登録商標)Outlook(登録商標)」、パーム型のPDAでは、「メール」、スプリントPCS社のセル電話では、「PCSメール」を使っているとする。これらはすべて、異なるアプリケーションであるにも拘らず、同じ電子メール機能を実行する。電子メールの送信や受信だけのためにこれら異なるアプリケーションすべての使い方を学ぶ必要が本当にあるのかとユーザは疑問に思うかもしれないが、マイグレーションの概念の下では、ソースデバイスにおいてもターゲットデバイスにおいても同じアプリケーションが実行される。このように、マイグレーションにより、ユーザが異なるアプリケーションを学ぶ時間が不要になるだけでなく、ソフトウェア開発者が異なるアプリケーションを開発する時間までもが不要になるのである。
二つめの課題は、これほど簡単ではない。ターゲットデバイスに再記録されたアプリケーションは、ソースデバイスに存在していたアプリケーションの状態を復旧するまでは、事実上タスクを再開することができない。ここで、アプリケーションの状態とは、実行状態とデータの状態の両方を含む。アプリケーションの状態は、アプリケーションがソースデバイスからマイグレーションする前に保存しておき、ターゲットデバイスに再記録された後に保存したアプリケーションを復旧するというような操作を行うことで、面倒ではあるが、手動で復旧することができる。しかし、マイグレーション処理では、アプリケーションがソースデバイスからマイグレーションする際には、アプリケーションの状態を伴ってマイグレーションし、ターゲットデバイスにおいてその状態のままリスタートする。このように、アプリケーションは、ターゲットデバイスに到達してすぐタスクを再開できる状態になっている。
アプリケーションのマイグレーションを実現するために、様々な研究が報告されている。意義深いことに、これらの研究の多くは、Java(登録商標)ベースのソフトウェアアーキテクチャを採用している。Javaはプログラミング言語であり、プログラムが実行されるデバイスのハードウェア構成とは関係がない。さらに具体的には、Javaプログラムは、ハイレベルであり、かつ機械に依存しないバイトコードにコンパイルされる。また、このバイトコードはJava仮想マシンと呼ばれる仮想インタプリタが翻訳することにより実行される。また、このJavaプログラムは機械に依存していないため、異なるハードウェアプラットフォームで実行することができ、アプリケーションにポーティング処理を施す必要がない。この特性は、Javaが「一度書けば、どこでも実行できる」と評される所以である。
このようにJavaは、機械に依存しないという特性を持っているため、異種デバイス間、つまり異なるハードウェア構成のデバイス間でのアプリケーションのマイグレーションに有用かつ有利であることは言うまでもない。実際、過去の研究では、Javaベースのソフトウェアアーキテクチャによるアプリケーションのマイグレーションが、少なくとも限られた環境においては成功するということが証明されている。しかし、これら先行研究の問題点は、アプリケーションのマイグレーションを実行するためには、選択されたソースデバイスとターゲットデバイスが同程度でかつ十分に機能性の高いものであることが必要だということである。言い換えれば、先行研究におけるアプリケーションのマイグレーションは真の意味での異種環境間で実際に達成されたものではない。
確かに、デスクトップ型PCのように機能性の高いデバイスからPDAのような機能が少ないデバイスにアプリケーションをマイグレーションする場合に困難が生じる。デスクトップ型PCに比べ、PDAは、処理速度、メモリ容量、永久記憶装置の可用性、ネットワーク通信能力の信頼度などのハードウェア資源に限界がある。ここで課題となるのは、アプリケーションを実行するにはPCレベルのリソースが必要であってPDAでの実行には適さない場合でさえ、デスクトップ型PCからPDAに対するアプリケーションのマイグレーションが可能かどうかである。先行研究で、この課題に取り組んだ例は見られない。
上記課題を解決するため、本発明は、真の意味で異種のコンピュータデバイス間でアプリケーションのマイグレーションを実現する方法およびシステムを提供する。この目的を達成するため、本発明では、適応的にマイグレーションするアプリケーションが、マイグレーションの処理中に自らを再構成し、ターゲットのコンピュータデバイスへのアプリケーションの適合化やポーティングを行う。
本発明に係るポーティング処理はユニークである。本発明では、アプリケーションは複数のスタンドアロンのソフトウェアコンポーネントから成る。これらコンポーネントは、デバイス非依存型(DI:Device Independent)とデバイス依存型(DD:Device Dependent)に分類される。DIコンポーネントは、異なるハードウェアプラットフォームで実行することができる。一方、DDコンポーネントを実行するには、特定のハードウェア構成が必要となる。したがって、DDグループは、異なるハードウェアプラットフォーム上で実行できるように設計された複数セットの代替コンポーネントで形成されている。このように、アプリケーションが実行されるデバイスにおいてアプリケーションを実行するのに適したDDコンポーネントが上記複数セットから選ばれ、DIコンポーネントと共にアプリケーションを構成するのである。
本発明に係るマイグレーション処理は、まず、ソースデバイスにおいて実行中の、マイグレーション前のアプリケーションを検査することにより始まる。このアプリケ−ションの検査では、現在実行中のアプリケーションのDDコンポーネントは何かということ、また代替DDコンポーネントがあるかどうか判定される。ターゲットデバイスのハードウェア構成に関する検査も行われ、ターゲットデバイスに適合するDDコンポーネントを選択することにより、アプリケーションをターゲットデバイスに提供する。そして、選択されたDDコンポーネントは、DIコンポーネントとともにターゲットデバイスにロードされる。同時に、ソースデバイス側でのアプリケーションの実行状態が取得され、ターゲットデバイスに転送される。アプリケーションの、取得された実行状態を使い、ターゲットデバイス上でアプリケーションがインスタンス化されると、マイグレーション処理は終了する。
本発明に係るマイグレーション処理においては、アプリケーションの機能は1以上のターゲットデバイスに分配されてもよい。DIコンポーネントは機能コンポーネントなので、異なるプラットフォームで実行することができる。しかし、マイグレーション前のアプリケーションのDIコンポーネントが、ターゲットデバイスの能力を超えたコンピュータ処理能力を必要とするタスクを実行する場合もあるかもしれない。本発明では、そのようなタスクは、十分なコンピュータ処理能力がある第3のデバイスに割り当てられる。このように、このDIコンポーネントは第3のデバイスにマイグレーションし、他のコンポーネントはターゲットデバイスにマイグレーションする。これ以後、ターゲットデバイスと第3のデバイスは、互いに通信しながら協力してアプリケーションを実行する。
このように、本発明では、ソースデバイスにおいて実行中のアプリケーションとターゲットデバイスのハードウェア構成が検査され、アプリケーションをターゲットデバイスにポーティングする。そして、ポーティングされたアプリケーションは、ターゲットデバイスにロードされる。同時に、ソースデバイス側でのアプリケーションの実行状態が取得され、ターゲットデバイスに転送される。ターゲットデバイスは、取得したアプリケーションの実行状態を使い、アプリケーションをインスタンス化する。アプリケーションは1以上のコンポーネントを含む複数のセットから成り、ターゲットデバイスに最も適合するコンポーネントを少なくともひとつ、各セットから選択することにより、アプリケーションがターゲットデバイスにポーティングされる。
アプリケーションは、1以上の第3のデバイスからターゲットデバイスにロードされ、この第3のデバイスはソースデバイスを含んでも良い。
また、1以上のターゲットデバイスがあってもよく、アプリケーションは1以上のターゲットデバイスに分配されてロードされる。
添付の図面に例示された本発明の実行方法について詳しく説明する。以下に説明する本発明の好ましい形態では、Javaベースのソフトウェアシステムを使用している。しかしながら、Javaベースのソフトウェアシステムは本発明を実行する唯一の手段ではないことは容易に理解されるべきであり、他の種類のソフトウェアシステムの下で本発明を実行してもよい。
A.マイグレーション動作の概略
本発明に係るアプリケーションのマイグレーションは、特に本発明を実行するために設計されたローム(Roam:ResOurce−aware Application Migration:リソース認識アプリケーション・マイグレーション)システム上で実行される。図1は、ロームシステムのアーキテクチャを例示するブロック図である。図1に示すように、ロームシステムは、Java仮想マシン(JVM)、PersonalJava仮想マシン(PJVM)、またはその他の種類の仮想マシン(VM)の上に構築され、デバイス固有のオペレーティングシステムの最上位で実行される。VMは、抽象化コンピュータデバイスのように動作する。つまり、受け取ったバイトコードを、固有のオペレーティングシステムが実行できる形に変換することにより動的に翻訳する。
「ロームレット」は、ワードプロセッサプログラムやメールプログラムなど、ユーザと直接インターフェースをとるプログラムである。これは、Javaで記述され、JVMP、JVM、または他の種類のVMにより実行される。本発明において、ロームレットは、ロームシステムの制御下でソースデバイスからターゲットデバイスへマイグレーションする。ロームシステムには、ロームレットのマイグレーションの実行時環境を提供するロームエージェントが備えられている。ロームエージェントは、マイグレーションの実行において重要な役割を果たすので、マイグレーションが実行される際には必ずソースデバイスとターゲットデバイスの双方に備える必要がある。ロームシステムとロームレットの間には、複数のロームレットAPI(Application Program Interface:アプリケーション・プログラム・インターフェース)が一式備えられ、ロームエージェントからの指示を受け取って、ロームレットのマイグレーションの実際の動作を実行する。
図2は、本発明に係る、基本的なマイグレーション動作を示すブロック図である。図2では、ロームレット1がソースデバイス2からターゲットデバイス3にマイグレーションしようとするところを示している。ステップ1において、マイグレーションが指示されると、ソースデバイス2のロームエージェント4が、ターゲットデバイス3のロームエージェント5とネゴシエーションを開始する。このネゴシエーション処理については後で詳述するので、ここでは簡単に説明する。ネゴシエーション処理の間、ロームエージェント4はまず、ロームレット1から、ロームレット1を実行するのに必要なハードウェア構成に関する情報を取得する。次に、ロームエージェント4は、ロームエージェント5から、ターゲットデバイス3のハードウェア構成に関する情報を取得し、ロームレット1がターゲットデバイス3上で実行可能かどうか判定する。今ここで説明が詳しくなりすぎないように、ロームレット1がターゲットデバイス3上で実行可能であると仮定する。最後に、ロームエージェント4は、ロームエージェント5にHTTPサーバ6のURL(Uniform Resource Locator:ユニフォーム・リソース・ロケータ)を与え、このURLからロームレット1のバイトコードをダウンロードすることができるようにする。
ステップ2において、URLを受け取ると、ロームエージェント5は、HTTPサーバ6にアクセスして、そこからロームレット1のバイトコードをダウンロードする。ステップ3において、ロームレット1の状態が、ロームエージェント4により取得され、ロームエージェント5に送られる。ステップ4において、ロームエージェント5は、取得したロームレット1のソースデバイス2における状態を復旧することにより、ロームレット1をインスタンス化する。ロームレット1のマイグレーションは、ソースデバイス2においてロームレット1を閉じることにより終了する。この段階で、ロームレット1はターゲットデバイス上にあり、ソースデバイス2において停止されていたタスクを再開できる状態になっている。
B.マイグレーション動作の詳細な説明
1.デバイスの分類
ロームレットは多かれ少なかれデバイス依存型である。したがって、ソースデバイスのロームエージェントは、マイグレーションを実行する前にターゲットデバイスのハードウェア構成を把握する必要があり、それにより特定のロームレットが全体として又は部分的にでもターゲットデバイスにおいて実行可能かどうかが判定可能となる。Javaランタイムシステムには実行側デバイスのハードウェア構成を示す情報が含まれているので、ロームシステムを構築する際にJavaを使用すると便利である。現在、Javaランタイムシステムには、異なるコンピュータデバイスに合わせた実行時環境を提供するものが複数種類ある。表1は、典型的なJavaランタイムシステムと各々の構造を示している。
Figure 2006196014
表1に示すように、Javaランタイムシステムは、仮想マシン(VM)、コンフィギュレーション、そしてプロファイルの3層構造になっている。コンフィギュレーションは、JavaAPIの仕様を示している。プロファイルは、コンフィギュレーションAPIの拡張を指定する。表1には、PJVM(Personal
Java Virtual Machine:パーソナルJava仮想マシン)、CVM(Compact Virtual Machine:コンパクト仮想マシン)、KVM(Kilo Virtual Machine:キロ仮想マシン)3種類のVMがある。これらのVMは特定のハードウェア構成に適合するように設計されている。例えば、KVMは、16/32ビットのRISC/CISCマイクロプロセッサを備えた、使用可能なメモリ合計が少なくとも160Kのデバイスに適している。PJVMは、文献「PersonalJava(登録商標)テクノロジ白書」(サン・マイクロシステムズ、1998年8月)で議論されおり、本願明細書において参照として援用される。CVMは、文献「JSR#000036J2ME(登録商標)接続デバイスコンフィギュレーション」(サン・マイクロシステムズ、2000年8月)で議論されており、本願明細書において参照として援用される。KVMは、文献「J2ME CLDC/KVMパームリリース:リリースノート/CLDC1.0」(サン・マイクロシステムズ、2000年5月)で議論されており、本願明細書において参照として援用される。
また、表1は、CDC(Connected Device Configuration:コネクティッド・デバイス・コンフィギュレーション)、CLDC(Connected Limited Device Configuration:コネクティッド・リミティッド・デバイス・コンフィギュレーション)の2種類のコンフィギュレーションと、パーソナルプロファイル、RMIプロファイル、ファンデーションプロファイル、PDAプロファイル、MID(Mobile Information Device:モバイル情報デバイス)プロファイルの5種類のプロファイルを示している。これらのコンフィギュレーションおよびプロファイルも、特定のハードウェアプラットフォームで効果的に機能するようにデザインされている。これらのコンフィギュレーションおよびプロファイルは、文献「Java仕様リクエスト」(Javaコミュニティ出版)で議論されており、例えば、URL、http://java.sun.com/aboutJava/communityprocess/search.htmlで参照可能であり、本願明細書において参照として援用される。
このように、デバイスのJavaランタイムシステムを参照して、VM、コンフィギュレーション、およびプロファイルの種類を調べることにより、デバイスのハードウェア構成をかなり正確に特定することが可能である。しかしながら、Javaランタイムシステムはデバイスのハードウェア構成を特定する唯一の情報源ではなく、当業者にとってこの目的のために利用可能な他の情報源の存在を理解することは容易であると解されるべきであろう。例えば、ロームエージェントは、デバイス上で作成された特別なデバイス機能ファイルから、このデバイスのハードウェア構成に関する詳細かつ正確な情報を取得することができる。デバイスにおいて実行されている、ベースとなる固有のオペレーティングシステムに問合せをすれば、ハードウェア情報はこのデバイス機能ファイルから取得できる。
2.コンポーネントベースのプログラミング
ロームレットは、分散した複数のソフトウェアコンポーネントで構成されている。各コンポーネントには、コンポーネントの割り当てられたタスクを行うために実行可能な1以上のオブジェクトが入っている。ロームレットの複数のコンポーネントは相互接続されていて、全体としてロームレットの目的を遂行する。これらのコンポーネントは、デバイス依存型(DD)グループとデバイス非依存型(DI)グループに分類されている。DDコンポーネントはソフトウェアコンポーネントで、その実行には特定のハードウェア構成が必要である。本発明では、ハードウェアプラットフォームの種類ごとに、ひとつのインプリメンテーション、つまりひとつのDDコンポーネントが提供される。DDコンポーネントの例としては、GUI(Graphical User Interface:グラフィカル・ユーザ・インタフェース)コンポーネントがあり、このコンポーネントでは、コンポ−ネットが実行される入力ハードウェアや表示ハードウェアの種類によって異なるGUIライブラリが必要である。GUIを含む必要があるロームレットには、ロームレットが異なるプラットフォームで実行できるようにコンポーネントが準備される。これらのGUIコンポーネントは、PC用のGUIコンポーネント、PDA用のGUIコンポーネント、およびその他のプラットフォーム用のGUIコンポーネントを含む。ロームレットがターゲットデバイスにマイグレーションするとき、ターゲットデバイスのハードウェア構成に最も適したGUIコンポーネントが選択され、ターゲットデバイスにおいてインスタンス化される。
一方、DIコンポーネントは、機能コンポーネントである。本発明では、複数のハードウェアプラットフォームに対して、ひとつのインプリメンテーション、つまりひとつのDIコンポーネントが提供される。DIコンポーネントは機能的な特徴を持っているので、異なるハードウェアプラットフォームで実行されるものとみなされている。しかし、DIコンポーネントの中には、例えば、高いコンピュータ処理能力のような特定のハードウェア能力を必要とするものもあることがわかっている。ロームレットのDIコンポーネントが必要とするハードウェア能力が不足しているターゲットデバイスに、ロームレットがマイグレーションする場合、そのDIコンポーネントはロームレットからオフロードされ、第3のデバイスにマイグレーションする。これについては、後に詳述する。
このように、各ロームレットに対して、DIコンポーネントが1セット準備され、ロームレットが異なるハードウェアプラットフォームで動作できるようにDDコンポーネントが複数セット準備される。尚、ひとつのロームレットに対してDDコンポーネントが複数セット準備されるが、あるデバイスにおいて実際実行されているロームレットにおいては、そのデバイスのハードウェア構成に最も適したDDコンポーネントが1セットのみインスタンス化されることに留意してほしい。後続のセクションで詳しく説明するが、ターゲットデバイスのハードウェア構成に最も適したDDコンポーネントを1セット選択するには、ソースデバイスのロームエージェントは、マイグレーションするロームレット用に備えられたDDコンポーネントのセットすべてを検査し、各セットが必要とするハードウェア構成とターゲットデバイスのハードウェア構成を比較する。
これらDIコンポーネントとDDコンポーネントはJavaでプログラムされ、バイトコードにコンパイルされた後、上述したHTTPサーバ6のようなサーバに格納される。これらのコンポーネントは、ターゲットデバイスのハードウェア構成に従ってサーバからターゲットデバイスに選択的にダウンロードされる。しかしながら、ソースデバイスが十分大きなメモリを持っている場合、DIコンポーネントおよびDDコンポーネントのセットすべてを、使用中か否かにかかわらずソースデバイスに保存してもよいことに留意してほしい。
3.動的インスタンス化
次に図3を参照して、マイグレーション動作の詳細を説明する。図3では、ソースデバイス10はPCで、ターゲットデバイス11はPDAである。PC10とPDA11は、通信ネットワーク12を介して互いに接続され、通信ネットワーク上の一意のIPアドレス(Internet Protocol address:インターネット・プロトコル・アドレス)で特定される。ロームレット13は、現在PC10において実行されていて、PDA11にマイグレーションするところである。マイグレーションが指示されると、PC10に存在するロームエージェント14は、PDA11に存在するロームエージェント15とネゴシエーションを開始する。
図4は、マイグレーション動作をステップごとに示したフローチャートである。ステップ10において、ロームエージェント14はロームレット13とPC10において実行されているコンポーネントを検査する。ロームレット13を検査する際、ロームエージェント14は、現在PC10において実行されているロームレット13のDDコンポーネントとDIコンポーネントを特定するととともに、異なるハードウェアプラットフォームにおいてロームレット13を実行するのに利用できる代替DDコンポーネントを特定する。ここでは、ロームレット13がPC上でのみ実行できるGUIコンポーネント16を含んでおり、かつ、ロームレット13をPDAにおいて実行するためのPDA用の代替GUIコンポーネント17が利用可能であるとロームエージェント14が特定したと仮定する。
ステップ11において、ロームエージェント14はPDA11のロームエージェント15に連絡し、PDA11のハードウェア構成に関する情報を要求する。ロームエージェント14からの要求に応じて、ロームエージェント15はPDA11において実行されているJavaランタイムシステムを検査する(ステップ12)。自分のランタイムシステムに含まれているVM、コンフィギュレーション、そしてプロファイルの種類に基いて、ロームエージェント15はPDA11のハードウェア設定、例えば、コンピュータ処理能力、スクリーンサイズやメモリサイズなどを判定する。そしてロームエージェント15は、PDA11のハードウェア構成に関する情報をロームエージェント14に送り返す(ステップ13)。尚、PDA11のハードウェア構成に関してさらに詳細または正確な情報を取得する必要がある場合は、ロームエージェント15はPDA11のベースとなる固有のオペレーティングシステムに格納されているデバイス機能ファイルを参照してもよいことに留意してほしい。
ステップ14において、ロームエージェント14は、ロームエージェント15からのPDA11のハードウェア構成に関する情報に基いて、どのコンポーネントがPDA11に対してのマイグレーションが可能でどのコンポーネントが可能でないかを判定する。ロームレット13のDIコンポーネントはすべて、PDA11のハードウェア構成に拘らずマイグレーション可能である。DDコンポーネントに関しても、いくつかはPDA11にマイグレーション可能な場合もあるが、PC10とPDA11間のハードウェアの違いが原因でマイグレーションできないDDコンポーネントについては、ロームエージェント14はPDA11において実行可能な代替コンポーネントを検索する。
ステップ15において、ロームエージェント14は、DIコンポーネントおよびDDコンポーネントのURLと、HTTPサーバ6に格納されている代替DDコンポーネントを、ロームエージェント15に送信する。図3に示す例においては、PCのGUIコンポーネント16は現在PC10上で実行中であるので、PDA11にマイグレーションすることはできない。よって、ロームエージェント14は、ロームエージェント15に対し、HTTPサーバ6に格納されているPCのGUIコンポーネント17のURLを送信する。
ステップ16において、ロームエージェント15はロームエージェント14から送信されたURLを使ってサーバ6にアクセスし、サーバ6にバイトコードの形で格納されているコンポーネントのダウンロードを開始する。同時に、ステップ17において、ロームエージェント14は、PC10におけるロームレット13の実行状態を取得し、取得した状態をロームエージェント15に送信する。ステップ18において、ロームエージェント15はロームレット13’をPDA11において展開し、展開されたロームレット13’で、取得した状態を復旧する。これで、ロームレット13’はPDA11においてタスクを再開する準備ができた状態となる。ステップ19において、ロームエージェント15は、ロームエージェント14に対して、ロームレット13’のPDA11上への複製が成功した旨を通知する。これに対し、ロームエージェント14は、PC10からロームレット13を削除する(ステップ20)。
本発明においては、Javaオブジェクトシリアル化を使って、ロームレット13の実行状態の取得および復旧が実行される。Javaオブジェクトシリアル化は、Javaプログラムの実行状態を取得し復旧する有用な方法を提供する。図3に示す形態では、ロームエージェント14がPC10においてJavaオブジェクトシリアル化を呼び出し、ロームレット13にあるすべてのJavaオブジェクトの実行状態をシリアル化する。ロームエージェント15もPDA11にJavaシリアル化を呼び出し、シリアル化された実行状態をPDA11においてロームレット13’に非シリアル化する。このJavaオブジェクトシリアル化によってシリアル化可能な実行状態は、ロームレット13にある各オブジェクトのすべての変数の値を含む。このJavaオブジェクトシリアル化を使うことにより、ロームレット13の実行状態の大部分をPC10において取得することができ、PDA11において復旧することができる。
しかし、このJavaオブジェクトシリアル化に適さない実行状態が2種類ある。ひとつは、ロームシステム特有の実行状態である。即ち、代替DDコンポーネントと置換されるDDコンポーネントの実行状態は、代替DDコンポーネントにおいては復旧できない。DDコンポーネントとその代替コンポーネントは、異なるオブジェクトから成ることが多いので、DDコンポーネントの実行状態は、その代替コンポーネントにとっては無意味となる。従って、変換処理を施して、DDコンポーネントとその代替コンポーネント間で実行状態を維持する必要がある。例えば、図3に戻り、PCのGUIコンポーネント16がチェックボタンを使ってユーザインターフェースを実行する一方、PCのGUIコンポーネント17は選択ボタンを使ってユーザインターフェースを実行していると仮定する。PCのGUIコンポーネント16の実行状態をPCのGUIコンポーネント17に転送するためには、ロームエージェント14はチェックボタンの値を選択ボタンにマップし、これらの値を選択ボタンの値に変換する。
Javaオブジェクトシリアル化に適さないふたつめの実行状態は、ロームレット13を翻訳するVMの実行状態である。Javaオブジェクトシリアル化はVM内部にはアクセスすることができない。したがって、コールスタックなどのVMの実行状態は、シリアル化できない。この問題に対処するため、ロームエージェント14は、コールスタックが最小になる特定のポイントでのみマイグレーションを実行可能としてもよい。これにより、失われる実行状態の量を極力抑えることができる。
以下は、ロームシステム下で基本的なマイグレーションを実行する際のロームレットAPIの例である。
Figure 2006196014
ロームレットはすべて、クラスロームレットを拡張しなければならない。メソッド“migrate()”は、“hostname”によって示されるターゲットデバイスにロームレットをディスパッチする。メソッド“onInitializaiton()”は、ロームレットがターゲットデバイスにおいて、最初にインスタンス化された時に呼び出される。メソッド“onRemoval()”は、ロームレットのターゲットデバイスへのマイグレーションが成功した後、ロームレットがソースデバイスから削除される前に呼び出される。メソッド“onArrival()”は、ロームレットがターゲットデバイスに到着した時に呼び出される。メソッド“exit()”は、ロームレットをソースデバイスから削除する。メソッド“instantiation()”は、ターゲットデバイスにおいてロームレットをインスタンス化する。ターゲットデバイスにおいてロームレットがインスタンス化された後、分離スレッドがターゲットデバイスにおいて生成され実行される。これにより、ターゲットデバイス上で複数の仮想マシンを生成して実行するというオーバーベッドが無くなる。
以下は、同じ機能を実行する代替DDコンポーネント群を維持するためのロームレットAPIの例である。
Figure 2006196014
メソッド“addDDComponentDescList()”は、デスクリプタリスト、即ち、RoamComponentDesc[]を追加する。このデスクリプタリストは、ハードウェア設定に係る代替DDコンポーネントを列挙している。例えば、デスクリプタリストには、PCのGUIコンポーネント、PDAのGUIコンポーネント、携帯電話GUIコンポーネントなどの代替GUIコンポーネントがすべて含まれている。マイグレーションを実行する場合、このデスクリプタリストからターゲットデバイスに最も適したコンポーネントがひとつ選択される。
4.デバイス間での機能の分配
ロームレットの実行に必要不可欠なDIコンポーネントのいくつかが、ターゲットデバイスのハードウェア資源が不十分なために実行できない場合があり得る。そのような場合、ロームシステムは、ロームレットの機能を複数のデバイスに分配する。即ち、ロームシステムは、コンポーネントを複数のターゲットデバイスにマイグレーションさせる。図5および図6は、このような分配動作を示すブロック図と、本動作を詳述するフローチャートである。図5では、図3で使用した符号と同じ符号が、デバイスとソフトウェアの構成要素に対応して割り当てられている。
図5では、図3と同様に、ロームレット13がソースデバイス10であるPCからターゲットデバイス11であるPDAにマイグレーションしようとしている。ステップ30において、ロームエージェント14はロームレット13を検査し、現在PC10において実行されているロームレット13のDIコンポーネントおよびDDコンポーネントを特定する。例えば、ロームレット13は、重荷で、使用するメモリの多いコンピュータ処理タスクを実行するDIコンポーネント18を含み、このタスクの実行にはPDA11の能力を超えたコンピュータ処理能力を必要とするため、このコンポーネント18は、DIコンポーネントであるにも拘らず、PDA11においては実行不可能であると仮定する。また、このDIコンポーネント18はロームレット13の実行には必要不可欠であるのに、PDAにおいて利用可能な代替コンポ−ネントは存在しないと仮定する。
ステップ31では、ロームエージェント14は、PDA11のロームエージェント15に連絡し、PDA11のハードウェア構成に関する情報を要求する。ロームエージェント14からのこの要求に応じ、ロームエージェント15はPDA11において実行されているJavaランタイムシステムを検査し、PDA11のハードウェア構成を判定する(ステップ32)。ステップ33において、ロームエージェント15は、PDA11のハードウェア構成に関する情報をロームエージェント14に送り返す。
ステップ34において、ロームエージェント14は、ロームエージェント15からのハードウェア情報に基いて、ロームレット13のどのコンポーネントをPDA11に対してマイグレーション可能か、どのコンポーネントがマイグレーション不可能かを判定する。ロームエージェント14は、PDA11のコンピュータ処理能力には限度があるため、コンポーネント18をPDA11にマイグレーションすることはできないと判定する。ロームエージェント14は、ステップ30において既に、PDA11において利用可能な代替コンポーネントは存在しないと判定している。
ステップ35において、ロームエージェント14は、コンピュータ処理コンポーネント18をロームレット13からオフロードできるかどうかをまず判定する。コンポーネント18がオフロード可能と判定された場合、ロームエージェント14はマイグレーション動作を続けて実行する。コンポーネント18をロームレット13からオフロードできない場合、ロームエージェント15はマイグレーション処理を打ち切る。そして、コンポーネント18がオフロード可能の場合、ロームエージェント15は、コンポーネント18を実行可能な第3のデバイスの検索を開始する。ユーザがこのデバイス検索に参加して、自分がコンポーネント18をマイグレーションしたい特定のデバイスを指定してもよい。ここでは、ロームエージェント14が、コンポーネント18を実行するのに十分なコンピュータ処理能力を持つサーバ19を探し出すのに成功したと仮定する。
ステップ36において、ロームエージェント14は、サーバ6に格納されている、PDA11にマイグレーション可能なロームレット13の各コンポーネントのURLをロームエージェント15に送信する。また、ロームエージェント14は、サーバ19のロームエージェント20に対して、サーバ6に格納されているコンポーネント18のURLを送信する。ロームエージェント15は、指定された複数のURLを使って、サーバ6から各コンポーネントのバイトコードをダウンロードする(ステップ37)。同様に、ロームエージェント20は、コンポーネント18のバイトコードをサーバ6からダウンロードする(ステップ38)。同時に、ステップ39において、ロームエージェント14は、ロームエージェント13の各コンポーネントの実行状態を取得し、取得した実行状態をマイグレーション先の各デバイスに送信する。具体的には、ロームエージェント14は、PDA11にマイグレーションすべきコンポーネントの実行状態をロームエージェント15に送信するとともに、サーバ19にマイグレーションすべきコンポーネント18の実行状態をロームエージェント20に送信する。ロームエージェント15は、ロームエージェント14から送信された取得状態を使って、ロームレット13”をPDA11上でインスタンス化する(ステップ40)。同様に、ロームエージェント20は、コンポーネント18をサーバ19においてインスタンス化する(ステップ41)。ロームエージェント15および20は、ロームエージェント14に対し、ロームレット13”およびコンポーネント18がPDA11およびサーバ19に各々複写されたことを通知する(ステップ42および43)。そして、ロームエージェント14は、PC10からロームレット13を削除する(ステップ44)。ロームレット13”は、PDA11においていつでもタスクを再開できる状態にある。
ロームシステムでは、ロームレット13”をPDA11からPC10に対して逆にマイグレーションすることができる。このような逆分配動作においては、今度はソースデバイス側となるPDA11のロームエージェント15が、図4に示す手順を実行し、今度はターゲットデバイスとなるPC10にロームレット13”を返送する。同様に、ロームエージェント20は、コンポーネント18をPC10に対して返送する。尚、PDA11において実行されるコンポーネントのいくつかは、PC10にマイグレーションできなくなっている可能性があることに留意して欲しい。そのようなコンポーネントがある場合は、コンポーネントはPDA11にとどまることになる。
以下は、機能の分配を実行するロームレットAPIの例である。
Figure 2006196014
各ロームレットの構成要素は、クラスRoamComponentを拡張する。メソッド“addDIComponentDesc()”は、デスクリプタ、RoamComponentDescをDDコンポーネントの各々に追加するのに呼び出される。デスクリプタには、DDコンポ−ネントの各々のインスタンス化の方法に関する情報が含まれている。即ち、DDコンポーネントの各々について、一意の識別子、インスタンス化されるクラス名(classname)、コンポーネントを実行するのに必要なデバイス能力(reqDeviceCapability)、コンポーネントがオフロード可能か否か(offloadable)、コンポーネントが逆分配可能か否か(reverseApportion)、そしてコンストラクタのパラメータ(iniArgs)に関する情報が含まれている。メソッド“getComponent(id)”は、コンポーネントがターゲットデバイスにおいてインスタンス化された後に、これらコンポーネントの参照を(IDを使って)検索するのに呼び出される。メソッド“registerServerDevice()”は、コンポーネントがオフロード可能なすべてのデバイスを登録するのに呼び出される。
C.実施例
図7に示すコンピュータネットワークを使って実験を行い本発明を実行した。ネットワークは、ノートブック30と、PDA31、カシオ(登録商標)E−125、およびPC32から成る。ウィンドウズ(登録商標)2000OSと標準VM(JVM)がノートブック30およびPC32おいて実行される。また、ウィンドウズCE OSとPersonalJavaVM(PJVM)がPDA31において実行される。ノートブック30は、無線LAN33を介してネットワークに接続されている。PDA31とPC32は、無線LAN34を介してネットワークに接続されている。ネットワークでは、ノートブック30にはIPアドレス、172.21.96.17が割り当てられている。PDA31には、IPアドレス、172.21.96.19が割り当てられている。ノートブック30、PDA31、PC32の各々には、ロームレットエージェントがロードされている。このロームレットエージェントは、コードサイズが約24Kバイトであり十分小さく、Javaベースのソフトウェアアーキテクチャの殆どのデバイスにおいて実行できる。
1.第1例(HelloWorld)
図8に示すように、ノートブック30は「HelloWorld」と呼ばれるロームレット35を実行し、このロームレットはPDA31にマイグレーションするところである。HelloWorldロームレット35は、Clickコンポーネント36およびSwingのGUIコンポーネント37のふたつのコンポーネントから成る。Clickコンポーネント36は、ユーザが行うマウスクリックの回数を数える。SwingのGUIコンポーネント37は、ノートブック30にマウスクリックのカウントを表示する。ノートブック30からPDA31にロームレット35をマイグレーションする前に、ロームシステムの機能を証明するために2つのルールを定める。第1に、Clickコンポーネント36は、PDA31が持っているより高いハードウェア能力を必要とする。第2に、SwingのGUIコンポーネント37は、実行にはJavaSwingライブラリを必要とする。JavaSwingライブラリは、StandardJavaにはサポートされているが、PersonalJavaにはサポートされていない。このように、SwingのGUIコンポーネント37はノートブック30とPC32では実行可能だが、PDA31では実行不可能である。SwingのGUIコンポーネント37の代わりに、AWT(Abstract Window Toolkit:抽象化ウィンドウツールキット)のGUIコンポーネント38を利用して、ロームレット35を実行可能である。このAWTのGUIコンポーネント38を実行するには、PersonalJavaにサポートされているJavaAWTライブラリが必要である。
ロームレット35のマイグレーションは、このルールに従って実行される。つまり、Clickコンポーネント36は、PDA31にはマイグレーションしないが、PC32にはマイグレーションする。SwingのGUIコンポーネント37は廃棄される。代わりに、AWTのGUIコンポーネント38がPDA31でインスタンス化される。図9の(a)、(b)、および(c)は、各々ノートブック30、PDA31、PC32の画面を示す。マイグレーションの前には、HelloWorldロームレット35が、ノートブック30で実行されている。ノートブック30の画面に表示されているクリックカウントは、最初はゼロである。画面上の「Swing Click」ボタンがクリックされるたびに、Clickコンポーネント36はクリックのカウントを増分し、SwingのGUIコンポーネント37は、画面にカウントを表示する。図9(a)において、カウントは「3」である。そして次に、マイグレーションが実行される。PDA31では、SwingのGUIコンポーネント37の代わりに、AWTのGUIコンポーネント38がインスタンス化されている。図9(b)に示すように、AWTのGUIコンポーネント38は、PDA31の画面にカウント「3」を表示する。Clickコンポーネント36がPC32にインスタンス化されている(図9(c))。この例では、マイグレーションは5秒未満で実行された。また、PDAの「AWT Click」ボタンをクリックする度に、クリックはPC32のClickコンポーネント36にカウントされ、PDAの画面に表示されるクリックカウントが増分することが観察された。
2.第2例(Connect4)
第2例では、「Connect4」と呼ばれるゲームプログラムを使用した。図10に示すように、ノートブック30は、「Connect4」と呼ばれるロームレット40を実行しており、このロームレットは、PDA31にマイグレーションするところである。Connect4ロームレット40は、GUIコンポーネント41およびAI(Artificial Intelligence:人工知能)コンポーネント42のふたつのコンポーネントから成る。AIコンポーネント42は、ゲームをするために、ツリーを検索するなどのコンピュータ処理作業を実行し、GUIコンポーネント41は、ノートブックの画面にゲームの進行状況を表示する。ここでも、マイグレーションの前に、2つのルールが決定される。第1に、AIコンポーネント42はPDA31が持っているより高いハードウェア能力を必要とする。第2に、GUIコンポーネント41は、ノートブック30とPDA32の両方において実行可能である。
ロームレット40のマイグレーションは、このルールに沿って実行される。つまり、GUIコンポーネント41はPDA31にマイグレーションし、AIコンポーネント42はPC32にマイグレーションする。図11(a)および(b)は各々、ノートブック30およびPDA31の画面を示す。マイグレーションの前には、図11(a)に示すように、ノートブック30ではConnect4ロームレット40が実行されている。そして、マイグレーションが実行される。GUIコンポーネント41はPDA31でインスタンス化され、AIコンポーネント42はPC32でインスタンス化される。図11(b)に示すように、PDA31には同じ画面が表示される。この例では、マイグレーションは5秒未満で実行された。また、PDA31上で、PC32にインスタンス化されたAIコンポーネント42を使ってゲームをプレイすることができることが観察された。
本発明の範囲と精神にもとることなく、上記実施例に種々の修正や変更が可能であることは当業者に理解されよう。本発明の他の実施形態は、本願明細書および本願明細書に開示された本発明の実施方法とを検討することにより、当業者にとって明瞭になろう。また、明細書および実行例は、後続する特許請求の範囲に示される発明の範囲と精神において、単なる例示を意図するものである。
以上説明したように、本発明によれば、異種デバイス間におけるアプリケーションのマイグレーションが可能になる。
本願明細書に組み込まれ、本願明細書の一部を構成する添付図面は、本発明の実施形態を例示し、発明の詳細な説明とともに本発明の利点と原理を説明する役目を担う。
本発明に係るロームシステムのシステムアーキテクチャを示すブロック図である。 本発明に係る基本的なマイグレーション動作を示すブロック図である。 本発明の第1実施形態に係るマイグレーション動作を示すブロック図である。 図3に示すマイグレーション動作の詳細を示すフローチャートである。 本発明の第2実施形態に係るマイグレーション動作を示すブロック図である。 図5に示すマイグレーション動作の詳細を示すフローチャートである。 本発明を実施する例で使用されるコンピュータネットワークを示すブロック図である。 第1例で実行されるマイグレーション動作を示すブロック図である。 (a)、(b)、および(c)は、第1例で使用されるノートブック、PDA、およびPCの表示画面である。 第2例で実行されるマイグレーション動作を示すブロック図である。 (a)および(b)は、第2例で使用されるノートブックおよびPDAの表示画面である。
符号の説明
1…ロームレット、2…ソースデバイス、3…ターゲットデバイス、4・5…ロームエージェント、6…HTTPサーバ、10…PC、11…PDA、12…ネットワーク、13・13’…ロームレット、14・15…ロームエージェント、16・17…GUIコンポーネント、18…コンピュータ処理コンポーネント、19…サーバ、20…ロームエージェント。

Claims (1)

  1. 通信手段および記憶部を備えたコンピュータに、
    (a)マイグレーション対象であるアプリケーションを検査して、前記アプリケーションを構成する1以上のソフトウェアコンポーネントの各々を、複数の異なるハードウェアプラットフォームで実行可能な第一のソフトウェアコンポーネントか、実行に関して特定のハードウェア構成が必要な第二のソフトウェアコンポーネントかのいずれかに区分するステップと、
    (b)マイグレーション先であるターゲットデバイスに当該ターゲットデバイスのハードウェア構成を示すハードウェア構成情報を要求し、その応答として前記ターゲットデバイスのハードウェア構成情報を受信するステップと、
    (c)前記アプリケーションを構成する1以上のソフトウェアコンポーネントの各々が前記ターゲットデバイスにおいて実行可能か否かを前記ハードウェア構成情報に基づき判断するステップと、
    (d)前記ステップ(a)において、前記第二のソフトウェアコンポーネントに区分され、前記ステップ(c)において、前記ターゲットデバイスにおいて実行可能でないと判断されたソフトウェアコンポーネントの各々に関し、当該ソフトウェアコンポーネントの機能を代替可能であり、前記ハードウェア構成情報に基づき前記ターゲットデバイスにおいて実行可能と判断される代替コンポーネントを、前記コンピュータの記憶部もしくは前記コンピュータが通信可能な通信網内の格納場所から検索するステップと、
    (e)前記ステップ(c)において、前記ターゲットデバイスにおいて実行可能と判断されたソフトウェアコンポーネントの各々と、前記ステップ(d)において、前記記憶部もしくは前記通信網内の格納場所から検索された前記代替コンポーネントの各々とに関し、前記ソフトウェアコンポーネントもしくは前記代替コンポーネントの本体、あるいは前記ソフトウェアコンポーネントもしくは前記代替コンポーネントの前記通信網における格納場所を示す格納場所情報を、前記ターゲットデバイスに送信するステップと、
    (f)前記コンピュータにおける前記アプリケーションの実行状態を示す実行状態情報を前記ターゲットデバイスに送信するステップと
    を実行させるプログラム。
JP2006052681A 2000-12-15 2006-02-28 異種デバイス間におけるアプリケーションのマイグレーション方法およびシステム Expired - Lifetime JP4481944B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/737,733 US7080159B2 (en) 2000-12-15 2000-12-15 Method and system for effecting migration of application among heterogeneous devices

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2001381662A Division JP2002236592A (ja) 2000-12-15 2001-12-14 異種デバイス間におけるアプリケーションのマイグレーション方法およびシステム

Publications (3)

Publication Number Publication Date
JP2006196014A true JP2006196014A (ja) 2006-07-27
JP2006196014A5 JP2006196014A5 (ja) 2006-09-07
JP4481944B2 JP4481944B2 (ja) 2010-06-16

Family

ID=24965084

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2001381662A Pending JP2002236592A (ja) 2000-12-15 2001-12-14 異種デバイス間におけるアプリケーションのマイグレーション方法およびシステム
JP2006052681A Expired - Lifetime JP4481944B2 (ja) 2000-12-15 2006-02-28 異種デバイス間におけるアプリケーションのマイグレーション方法およびシステム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2001381662A Pending JP2002236592A (ja) 2000-12-15 2001-12-14 異種デバイス間におけるアプリケーションのマイグレーション方法およびシステム

Country Status (3)

Country Link
US (1) US7080159B2 (ja)
EP (1) EP1215575A3 (ja)
JP (2) JP2002236592A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010250725A (ja) * 2009-04-20 2010-11-04 Nippon Telegr & Teleph Corp <Ntt> 通信システムおよびソフトウェアモジュール配布方法
JP2012531679A (ja) * 2009-06-26 2012-12-10 ヴイエムウェア インク 仮想モバイル機器の機能移行
JP2013516668A (ja) * 2009-12-31 2013-05-13 インターナショナル・ビジネス・マシーンズ・コーポレーション プラットフォーム間での仮想イメージのポーティング
US8495352B2 (en) 2010-12-08 2013-07-23 International Business Machines Corporation System and method for instantiation of distributed applications from disk snapshots
KR102328173B1 (ko) * 2021-07-05 2021-11-17 (주)다윈아이씨티 애플리케이션 마이그레이션 처리 방법, 장치 및 시스템

Families Citing this family (138)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001053938A1 (en) * 2000-01-23 2001-07-26 Altiris, Inc. Method and system for describing and extracting application information
US7391718B2 (en) * 2004-03-09 2008-06-24 Palm, Inc. Swapping a nonoperational networked electronic system for an operational networked electronic system
US6724720B1 (en) 2000-05-01 2004-04-20 Palmone, Inc. Swapping a nonoperational networked electronic system for an operational networked electronic system
JP2002140194A (ja) * 2000-10-31 2002-05-17 Toshiba Corp 情報処理方法および情報処理装置およびエージェントシステム
US7136908B2 (en) 2001-01-29 2006-11-14 Intel Corporation Extensible network services system
US20020191018A1 (en) * 2001-05-31 2002-12-19 International Business Machines Corporation System and method for implementing a graphical user interface across dissimilar platforms yet retaining similar look and feel
JP3772102B2 (ja) * 2001-07-30 2006-05-10 株式会社東芝 情報処理方法、情報処理装置及びプログラム
US20030160755A1 (en) 2002-02-28 2003-08-28 Palm, Inc. Detachable expandable flexible display
US7996507B2 (en) * 2002-01-16 2011-08-09 International Business Machines Corporation Intelligent system control agent for managing jobs on a network by managing a plurality of queues on a client
KR20040096577A (ko) * 2002-02-15 2004-11-16 트리디움 인코퍼레이티드 실시간 시스템 제어용 컴포넌트 모델
US20030204582A1 (en) * 2002-04-29 2003-10-30 Shimoda Marion H. Wireless personal area network scalable migration of resources
US7275106B1 (en) * 2002-06-10 2007-09-25 Veritas Operating Corporation Sustaining TCP connections
US20080313282A1 (en) 2002-09-10 2008-12-18 Warila Bruce W User interface, operating system and architecture
US9009698B2 (en) * 2002-10-15 2015-04-14 Rpx Corporation System and method for providing computer upgrade information
US7328427B2 (en) * 2003-02-27 2008-02-05 Bea Systems, Inc. System and method for using a preprocessor to determine dependencies between J2EE components
US7623892B2 (en) 2003-04-02 2009-11-24 Palm, Inc. System and method for enabling a person to switch use of computing devices
US7383061B1 (en) 2003-04-02 2008-06-03 Palm, Inc. Peripheral device for a wireless communication device
US7500235B2 (en) * 2003-09-05 2009-03-03 Aol Time Warner Interactive Video Group, Inc. Technique for updating a resident application and associated parameters in a user terminal through a communications network
US7526771B2 (en) * 2003-11-12 2009-04-28 Ntt Docomo, Inc. Method and apparatus for configuring an application while the application is running
US20050108690A1 (en) * 2003-11-17 2005-05-19 Tira Wireless Inc. System and method of generating applications for mobile devices
JP2007515013A (ja) * 2003-12-15 2007-06-07 エヴォルヴウェア インフォメーション テクノロジー (インディア) ピーヴィーティー リミテッド あらゆるソースプラットフォームからあらゆるターゲットプラットフォームへのソフトウェアコードのマイグレーション及び変換装置
US7587712B2 (en) * 2003-12-19 2009-09-08 Marvell International Ltd. End-to-end architecture for mobile client JIT processing on network infrastructure trusted servers
US20050172235A1 (en) * 2004-02-02 2005-08-04 International Business Machines Corporation System and method for excluded elements mapping in a user interface
US7516414B2 (en) 2004-02-02 2009-04-07 International Business Machines Corporation System and method for tab order mapping of user interfaces
US7315988B2 (en) 2004-02-02 2008-01-01 International Business Machines Corporation System and method for using short captions to map user interfaces
US7383555B2 (en) * 2004-03-11 2008-06-03 International Business Machines Corporation Apparatus and method for sharing a network I/O adapter between logical partitions
US7610577B1 (en) * 2004-05-29 2009-10-27 Sun Microsystems, Inc. Method for developing platform independent launchable applications
US7278133B2 (en) * 2004-07-23 2007-10-02 Ntt Docomo, Inc. Index-based parameter access and software for using the same
EP1815332A4 (en) * 2004-09-07 2009-07-15 Starent Networks Corp PROCESS CHECKPOINTING AND MIGRATION IN DATA PROCESSING SYSTEMS
US9329905B2 (en) * 2004-10-15 2016-05-03 Emc Corporation Method and apparatus for configuring, monitoring and/or managing resource groups including a virtual machine
TW200630888A (en) * 2005-02-23 2006-09-01 Inst Information Industry Non-delay just-in-time kilo virtual machine system and initialization process for same
US8103640B2 (en) * 2005-03-02 2012-01-24 International Business Machines Corporation Method and apparatus for role mapping methodology for user registry migration
US7669201B2 (en) * 2005-05-02 2010-02-23 Intermec Ip Corp. System and method for common file installation
US7974945B2 (en) * 2005-06-16 2011-07-05 Information Appliance Associates System and method for synchronizing a BlackBerry with a Macintosh
US20070005721A1 (en) * 2005-06-30 2007-01-04 Microsoft Corporation Remotable porting layer
US9864628B2 (en) 2005-08-23 2018-01-09 Blackberry Limited Method and system for transferring an application state from a first electronic device to a second electronic device
EP1760584A1 (en) * 2005-08-23 2007-03-07 Research In Motion Limited Method and system for transferring an application state from a first electronic device to a second electronic device
US20070143446A1 (en) * 2005-12-21 2007-06-21 Morris Robert P Methods, systems, and computer program products for installing an application from one peer to another including application configuration settings and data
US8893118B2 (en) * 2006-01-30 2014-11-18 International Business Machines Corporation Migratable unit based application migration
JP2007226719A (ja) * 2006-02-27 2007-09-06 Hewlett-Packard Development Co Lp クライアントサーバシステム、アプリケーション実行方法およびプログラム
US8893111B2 (en) * 2006-03-31 2014-11-18 The Invention Science Fund I, Llc Event evaluation using extrinsic state information
WO2007137403A1 (en) * 2006-05-26 2007-12-06 Tira Wireless Inc. System and method of generating applications for mobile devices
US8869066B2 (en) 2006-07-06 2014-10-21 Addthis, Llc Generic content collection systems
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8056092B2 (en) 2006-09-29 2011-11-08 Clearspring Technologies, Inc. Method and apparatus for widget-container hosting and generation
US8725886B1 (en) 2006-10-20 2014-05-13 Desktone, Inc. Provisioned virtual computing
US20080115152A1 (en) * 2006-11-15 2008-05-15 Bharat Welingkar Server-controlled heartbeats
US8583090B2 (en) * 2006-12-29 2013-11-12 Nokia Corporation Transferring task completion to another device
US8490068B1 (en) * 2007-01-26 2013-07-16 Intuit Inc. Method and system for feature migration
US7738503B2 (en) 2007-02-02 2010-06-15 Palm, Inc. Multi-way, peer-to-peer synchronization
US7715444B2 (en) 2007-02-02 2010-05-11 Palm, Inc Resuming a previously interrupted peer-to-peer synchronization operation
US20120011509A1 (en) * 2007-02-15 2012-01-12 Syed Mohammad Amir Husain Migrating Session State of a Machine Without Using Memory Images
US20080222232A1 (en) * 2007-03-06 2008-09-11 Allen Stewart O Method and Apparatus for Widget and Widget-Container Platform Adaptation and Distribution
WO2008109761A2 (en) 2007-03-06 2008-09-12 Clearspring Technologies, Inc. Method and apparatus for data processing
US9009728B2 (en) 2007-03-06 2015-04-14 Addthis, Inc. Method and apparatus for widget and widget-container distribution control based on content rules
US8478299B2 (en) 2007-04-06 2013-07-02 Hewlett-Packard Development Company, L.P. System and methods for obtaining coarse location for a mobile device
US8060486B2 (en) 2007-05-07 2011-11-15 Hewlett-Packard Development Company, L.P. Automatic conversion schema for cached web requests
US8185888B2 (en) * 2007-06-05 2012-05-22 Microsoft Corporation Software execution with minimal impact deployment
US8458612B2 (en) 2007-07-29 2013-06-04 Hewlett-Packard Development Company, L.P. Application management framework for web applications
US8429645B2 (en) * 2007-08-14 2013-04-23 International Business Machines Corporation Method for optimizing migration of software applications to address needs
US20090082880A1 (en) * 2007-09-20 2009-03-26 Tridium Inc. Wireless device for a building control system
US8819203B1 (en) * 2007-09-28 2014-08-26 Emc Corporation Techniques for providing an application service to an application from an appliance-style application services platform
US8209378B2 (en) 2007-10-04 2012-06-26 Clearspring Technologies, Inc. Methods and apparatus for widget sharing between content aggregation points
JP5507046B2 (ja) * 2007-12-27 2014-05-28 株式会社インテック サービス提供システム
US9594582B2 (en) 2009-01-05 2017-03-14 International Business Machines Corporation Detection and management of dynamic migration of virtual environments
US8321843B2 (en) * 2009-02-09 2012-11-27 Tranxition Corporation Automatic analysis of an application's run-time settings
US8667483B2 (en) * 2009-03-25 2014-03-04 Microsoft Corporation Device dependent on-demand compiling and deployment of mobile applications
US9778953B2 (en) * 2009-06-16 2017-10-03 International Business Machines Corporation Process and system for comprehensive IT discovery without credentials
US8464242B2 (en) * 2009-07-08 2013-06-11 Tranxition Corporation Virtualization of configuration settings
US8850423B2 (en) * 2009-10-29 2014-09-30 International Business Machines Corporation Assisting server migration
US20110138381A1 (en) * 2009-12-03 2011-06-09 Recursion Software, Inc. System and method for requesting resources into a virtual machine using connection information
US20110138382A1 (en) * 2009-12-03 2011-06-09 Recursion Software, Inc. System and method for loading resources into a virtual machine
KR101644653B1 (ko) 2010-03-19 2016-08-02 삼성전자주식회사 단말 적합성 애플리케이션 최적화장치 및 방법
US8677339B2 (en) * 2010-04-13 2014-03-18 International Business Machines Corporation Component relinking in migrations
US8494439B2 (en) 2010-05-04 2013-07-23 Robert Bosch Gmbh Application state and activity transfer between devices
US20120054731A1 (en) * 2010-08-24 2012-03-01 International Business Machines Corporation Method, System and Computer Programs to Assist Migration to a Cloud Computing Environment
US9881050B2 (en) 2010-10-29 2018-01-30 Orange Method and system to recommend applications from an application market place to a new device
US20120137278A1 (en) 2010-11-30 2012-05-31 International Business Machines Corporation Generating a customized set of tasks for migration of a deployed software solution
US8621445B2 (en) * 2010-12-06 2013-12-31 Visualon, Inc. Wrapper for porting a media framework and components to operate with another media framework
US9329886B2 (en) * 2010-12-10 2016-05-03 Amazon Technologies, Inc. Virtual machine morphing for heterogeneous migration environments
US20120204149A1 (en) * 2011-02-03 2012-08-09 International Business Machines Corporation Discovery-based migration correctness testing
WO2012134453A2 (en) * 2011-03-29 2012-10-04 Empire Technology Development Llc "go home" feature for roaming applications
EP2691856A1 (en) 2011-03-31 2014-02-05 AOL Inc. Systems and methods for transferring application state between devices based on gestural input
US9337999B2 (en) * 2011-04-01 2016-05-10 Intel Corporation Application usage continuum across platforms
US8612580B2 (en) * 2011-05-31 2013-12-17 Microsoft Corporation Distributed computing framework
EP4344163A3 (en) 2011-06-05 2024-04-24 Apple Inc. Systems and methods for displaying notifications received from multiple applications
US8909912B2 (en) * 2011-07-29 2014-12-09 Cisco Technology, Inc. Apparatus and method for configuring a target machine with captured operational state comprising a static machine profile and a dynamic machine state to continue operations of a source machine
US20130041790A1 (en) * 2011-08-12 2013-02-14 Sivakumar Murugesan Method and system for transferring an application state
US9531801B1 (en) * 2011-08-30 2016-12-27 Virtual Command, LLC Dynamic information technology multi-directional multi-protocol resource convergence system
US9002322B2 (en) 2011-09-29 2015-04-07 Apple Inc. Authentication with secondary approver
US8769624B2 (en) 2011-09-29 2014-07-01 Apple Inc. Access control utilizing indirect authentication
KR20130051820A (ko) 2011-11-10 2013-05-21 삼성전자주식회사 모바일 환경에서의 소프트웨어 마이그레이션 장치 및 방법
CN104137048B (zh) * 2011-12-28 2019-10-25 诺基亚技术有限公司 提供应用的打开实例
EP2798483A1 (en) 2011-12-28 2014-11-05 Nokia Corporation Application switcher
WO2013097898A1 (en) * 2011-12-28 2013-07-04 Nokia Corporation Synchronising the transient state of content in a counterpart application
US8996729B2 (en) 2012-04-12 2015-03-31 Nokia Corporation Method and apparatus for synchronizing tasks performed by multiple devices
US9665356B2 (en) 2012-01-31 2017-05-30 Red Hat, Inc. Configuration of an application in a computing platform
US9170797B2 (en) * 2012-01-31 2015-10-27 Red Hat, Inc. Automated deployment of an application in a computing platform
US9262238B2 (en) 2012-01-31 2016-02-16 Red Hat, Inc. Connection management for an application in a computing platform
JP2013254303A (ja) * 2012-06-06 2013-12-19 Sony Corp 情報処理装置、情報処理方法およびプログラム
US20140143011A1 (en) * 2012-11-16 2014-05-22 Dell Products L.P. System and method for application-migration assessment
WO2014143776A2 (en) 2013-03-15 2014-09-18 Bodhi Technology Ventures Llc Providing remote interactions with host device using a wireless device
US20140359637A1 (en) * 2013-06-03 2014-12-04 Microsoft Corporation Task continuance across devices
WO2014197336A1 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for detecting errors in interactions with a voice-based digital assistant
US9800650B2 (en) 2014-03-10 2017-10-24 Vmware, Inc. Resource management for multiple desktop configurations for supporting virtual desktops of different user classes
KR102188685B1 (ko) * 2014-04-11 2020-12-08 삼성전자주식회사 애플리케이션 패키지를 생성하는 장치 및 방법
US9967401B2 (en) 2014-05-30 2018-05-08 Apple Inc. User interface for phone call routing among devices
US10866731B2 (en) 2014-05-30 2020-12-15 Apple Inc. Continuity of applications across devices
CN104123191A (zh) * 2014-07-31 2014-10-29 北京智谷睿拓技术服务有限公司 任务迁移控制方法、装置和系统
US10243891B2 (en) * 2014-08-14 2019-03-26 Oath Inc. Cross-device integration system and method
US10339293B2 (en) 2014-08-15 2019-07-02 Apple Inc. Authenticated device used to unlock another device
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9971622B2 (en) * 2015-06-25 2018-05-15 Intel Corporation Technologies for application migration using lightweight virtualization
US20170123943A1 (en) * 2015-10-30 2017-05-04 Netapp, Inc. Distributed data storage and processing techniques
CN105550045A (zh) * 2015-12-11 2016-05-04 北京奇虎科技有限公司 利用移动终端对虚拟输入进行控制的方法、装置及系统
CN105550017A (zh) * 2015-12-11 2016-05-04 北京奇虎科技有限公司 针对应用进行虚拟输入控制的方法、装置及系统
EP3411786A1 (en) 2016-02-04 2018-12-12 Telefonaktiebolaget LM Ericsson (PUBL) Actor migration
DK179186B1 (en) 2016-05-19 2018-01-15 Apple Inc REMOTE AUTHORIZATION TO CONTINUE WITH AN ACTION
US10637986B2 (en) 2016-06-10 2020-04-28 Apple Inc. Displaying and updating a set of application views
DK201670622A1 (en) 2016-06-12 2018-02-12 Apple Inc User interfaces for transactions
US10466891B2 (en) 2016-09-12 2019-11-05 Apple Inc. Special lock mode user interface
CN106445663A (zh) * 2016-09-14 2017-02-22 广东欧珀移动通信有限公司 应用数据的迁移方法及装置
CN107026908A (zh) * 2017-03-31 2017-08-08 青岛海信移动通信技术股份有限公司 将第二终端的数据迁移到第一终端的方法及装置
US10992795B2 (en) 2017-05-16 2021-04-27 Apple Inc. Methods and interfaces for home media control
US11431836B2 (en) 2017-05-02 2022-08-30 Apple Inc. Methods and interfaces for initiating media playback
CN111343060B (zh) 2017-05-16 2022-02-11 苹果公司 用于家庭媒体控制的方法和界面
US20220279063A1 (en) 2017-05-16 2022-09-01 Apple Inc. Methods and interfaces for home media control
US10974139B2 (en) * 2017-11-09 2021-04-13 Disney Enterprises, Inc. Persistent progress over a connected device network and interactive and continuous storytelling via data input from connected devices
US10831502B2 (en) 2018-11-06 2020-11-10 International Business Machines Corporation Migration of partially completed instructions
US10831503B2 (en) 2018-11-06 2020-11-10 International Business Machines Corporation Saving and restoring machine state between multiple executions of an instruction
US10831478B2 (en) 2018-11-06 2020-11-10 International Business Machines Corporation Sort and merge instruction for a general-purpose processor
AU2020282362B2 (en) 2019-05-31 2022-01-13 Apple Inc. User interfaces for audio media control
US11010121B2 (en) 2019-05-31 2021-05-18 Apple Inc. User interfaces for audio media control
US11392291B2 (en) 2020-09-25 2022-07-19 Apple Inc. Methods and interfaces for media control with dynamic feedback
US11803407B1 (en) * 2020-09-29 2023-10-31 Amazon Technologies, Inc. Emulation layer for overcoming incompatibilities in virtual machine instance migration
US11928303B2 (en) 2021-05-15 2024-03-12 Apple Inc. Shared-content session user interfaces
US11907605B2 (en) 2021-05-15 2024-02-20 Apple Inc. Shared-content session user interfaces
US11847378B2 (en) 2021-06-06 2023-12-19 Apple Inc. User interfaces for audio routing

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04223527A (ja) 1990-12-25 1992-08-13 Nec Corp プログラム実行方式
US5603031A (en) 1993-07-08 1997-02-11 General Magic, Inc. System and method for distributed computation based upon the movement, execution, and interaction of processes in a network
EP0746816B1 (en) 1993-08-03 2001-10-24 Sun Microsystems, Inc. Flexible multi-platform partitioning for computer applications
JPH0821342A (ja) * 1994-07-07 1996-01-23 Yamaha Motor Co Ltd 燃料噴射式エンジン
US5678044A (en) * 1995-06-02 1997-10-14 Electronic Data Systems Corporation System and method for improved rehosting of software systems
US6138140A (en) * 1995-07-14 2000-10-24 Sony Corporation Data processing method and device
US6345311B1 (en) 1995-12-27 2002-02-05 International Business Machines Corporation Method and system of dynamically moving objects between heterogeneous execution environments
US6128590A (en) * 1996-07-09 2000-10-03 Siemens Nixdorf Informationssysteme Aktiengesellschaft Method for the migration of hardware-proximate, subprogram-independent programs with portable and non-portable program parts
US6233601B1 (en) 1996-11-14 2001-05-15 Mitsubishi Electric Research Laboratories, Inc. Itinerary based agent mobility including mobility of executable code
US6356957B2 (en) * 1997-04-03 2002-03-12 Hewlett-Packard Company Method for emulating native object oriented foundation classes on a target object oriented programming system using a template library
US6035120A (en) * 1997-05-28 2000-03-07 Sun Microsystems, Inc. Method and apparatus for converting executable computer programs in a heterogeneous computing environment
US5974258A (en) * 1997-07-18 1999-10-26 International Business Machines Corporation Method and apparatus for performing single-function software operations on a server processor for a target of one or more processors in a network of processors
US6324543B1 (en) 1998-03-06 2001-11-27 International Business Machines Corporation Dynamic object migration method using proxy object links to support automatic object distribution in an object-oriented environment
US6442663B1 (en) * 1998-06-19 2002-08-27 Board Of Supervisors Of Louisiana University And Agricultural And Mechanical College Data collection and restoration for homogeneous or heterogeneous process migration
US6249769B1 (en) * 1998-11-02 2001-06-19 International Business Machines Corporation Method, system and program product for evaluating the business requirements of an enterprise for generating business solution deliverables
US6334215B1 (en) * 1999-05-05 2001-12-25 International Business Machines Corporation Methodology for migration of legacy applications to new product architectures
US6370682B1 (en) * 1999-09-15 2002-04-09 Siemens Atkiengesellschaft System and method for developing reusable flexible and platform independent software using components
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
US6760815B1 (en) * 2000-06-02 2004-07-06 Sun Microsystems, Inc. Caching mechanism for a virtual heap

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010250725A (ja) * 2009-04-20 2010-11-04 Nippon Telegr & Teleph Corp <Ntt> 通信システムおよびソフトウェアモジュール配布方法
JP2012531679A (ja) * 2009-06-26 2012-12-10 ヴイエムウェア インク 仮想モバイル機器の機能移行
US9201674B2 (en) 2009-06-26 2015-12-01 Vmware, Inc. Migrating functionality in virtualized mobile devices
JP2013516668A (ja) * 2009-12-31 2013-05-13 インターナショナル・ビジネス・マシーンズ・コーポレーション プラットフォーム間での仮想イメージのポーティング
US8984503B2 (en) 2009-12-31 2015-03-17 International Business Machines Corporation Porting virtual images between platforms
US8990794B2 (en) 2009-12-31 2015-03-24 International Business Machines Corporation Porting virtual images between platforms
US10528617B2 (en) 2009-12-31 2020-01-07 International Business Machines Corporation Porting virtual images between platforms
US8495352B2 (en) 2010-12-08 2013-07-23 International Business Machines Corporation System and method for instantiation of distributed applications from disk snapshots
KR102328173B1 (ko) * 2021-07-05 2021-11-17 (주)다윈아이씨티 애플리케이션 마이그레이션 처리 방법, 장치 및 시스템

Also Published As

Publication number Publication date
JP4481944B2 (ja) 2010-06-16
EP1215575A2 (en) 2002-06-19
US7080159B2 (en) 2006-07-18
US20020129126A1 (en) 2002-09-12
EP1215575A3 (en) 2004-10-06
JP2002236592A (ja) 2002-08-23

Similar Documents

Publication Publication Date Title
JP4481944B2 (ja) 異種デバイス間におけるアプリケーションのマイグレーション方法およびシステム
US20170353397A1 (en) Offloading Execution of an Application by a Network Connected Device
CN110187912B (zh) 一种节点选择方法和装置
JP4216722B2 (ja) ネットワーク接続されたリソース上の制約を有する装置の実行及びリソースをオフロードする方法及びシステム
US8095939B2 (en) Managing application interactions using distributed modality components
US20130014129A1 (en) Application module for managing interactions of distributed modality components
US7596782B2 (en) Software build extensibility
EP3058460B1 (en) Incrementally compiling software artifacts from an interactive development environment
US9146779B2 (en) System and method for migrating an application
CN106502703B (zh) 一种函数调用方法和装置
JP4000327B2 (ja) 非同期挙動変更をマネージドアプリケーションプロセスに誘導するためのシステムおよび方法
KR101907837B1 (ko) 애플리케이션 활성화 프레임워크
JP2009506467A (ja) 仮想マシンにおける並行タスクのためのイベント処理
US20020052908A1 (en) Information processing method and information
JP2005228183A (ja) プログラム実行方法、および、プログラム実行のための計算機システム
CN111615171B (zh) 无线局域网的接入方法和装置
WO2002071217A2 (en) Method and system for distributed processing management
US20050055663A1 (en) Method and apparatus for continuation-passing in a virtual machine
Bouraqadi-Saâdani et al. A reflective infrastructure for coarse-grained strong mobility and its tool-based implementation
US7073033B2 (en) Memory model for a run-time environment
Nakajima org/publications/library/proceedings/coots98/fullipapers
Bajwa et al. Persistent architecture for context aware lightweight multi-agent system
Chu et al. ROAM (Resource-aware application migration) system
Islam From smart to autonomous phones
CN114764388A (zh) 用户界面控件的标签生成方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060714

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061017

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061218

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070116

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070215

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070327

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20070420

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091207

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100222

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100318

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130326

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4481944

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130326

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140326

Year of fee payment: 4

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term