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

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

Info

Publication number
JP2002236592A
JP2002236592A JP2001381662A JP2001381662A JP2002236592A JP 2002236592 A JP2002236592 A JP 2002236592A JP 2001381662 A JP2001381662 A JP 2001381662A JP 2001381662 A JP2001381662 A JP 2001381662A JP 2002236592 A JP2002236592 A JP 2002236592A
Authority
JP
Japan
Prior art keywords
application
target device
component
agent
target
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
JP2001381662A
Other languages
English (en)
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.)
Docomo Innovations Inc
Original Assignee
Docomo Communications Labs USA 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 Docomo Communications Labs USA Inc filed Critical Docomo Communications Labs USA Inc
Publication of JP2002236592A publication Critical patent/JP2002236592A/ja
Pending legal-status Critical Current

Links

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

Abstract

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

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、異種デバイス
間、または異なるハードウェア構成のデバイス間でアプ
リケーションをマイグレーションする方法およびシステ
ムに関する。
【0002】
【従来の技術】マイグレーションとは、ひとつのデバイ
スにおいて実行中のアプリケーションがタスクを中断し
て別のデバイスにマイグレーションし、マイグレーショ
ン先のデバイスにおいてタスクを再開する際には最初の
デバイスにおいて中止した時点で実行していたタスクを
実行する処理のことをいう。この点でマイグレーション
は、アプリケーションがひとつのデバイスから他のデバ
イスに移動し、移動先のデバイスにおいては最初のデバ
イスにおけるアプリケーションの状態に関係なく振り出
しからタスクが実行される遠隔実行処理とは異なる。
【0003】モビリティ(可動性)へのニーズがコンピ
ュータデバイスの進化の主たる駆動力であると言えるか
もしれない。デスクトップ型のコンピュータは、ノート
ブック型のコンピュータに進化した。PDA(Personal
Digital Assistant)やインテリジェント・ページャ
は、最近この進化ツリーの仲間入りをした新種である。
今や、これらのコンピュータデバイスは、有線または無
線LAN、セルラ網、Bluetooth(登録商
標)、そしてPAN(Personal Area Network:パーソ
ナル・エリア・ネットワーク)など、様々な通信ネット
ワークを介したデータ通信により互いに交信することが
可能になった。
【0004】コンピュータデバイスの進化は、我々の生
活に著しい影響を及ぼし、我々のビジネスや作業環境の
変化をもたらしてきた。以前は、PCは机に固定され移
動できなかったため、必要なソフトウェアを備えたPC
が設置してある場所でのみ作業をしたりデータを処理す
ることができた。しかし近年では、移動可能であり、十
分な機能を備えたコンピュータデバイス、例えば、ノー
トブック型コンピュータ、PDA、セルラ電話などを簡
単に利用することができる。これら移動デバイスのユー
ザは、デバイスの可動性を最大限に利用したいという欲
求を持っている場合が多い。ユーザが遠隔地にいるとき
や移動中に、モバイルコンピュータを用いて仕事を続け
られたら、どんなに効率よく、また成果を上げることが
できるだろうか。例えば、携帯電話かPDAのユーザ
が、オフィスのデスクトップ型のコンピュータを使って
オンラインでビジネス旅行の計画をしていて、離れた場
所でのミーティングに呼ばれて作業を中断しなければな
らないと仮定しよう。こんな場合、ユーザは、ミーティ
ング場所への移動中の電車やバスの中や、ミーティング
の合間に、携帯電話やPDAを使ってビジネス旅行の計
画を続けたいと思うかもしれない。
【0005】このようなニーズに応えるため、アプリケ
ーションのマイグレーションという概念が開発された。
つまり、この概念では、アプリケーションは、あるコン
ピュータデバイス(ソースデバイス)から別のコンピュ
ータデバイス(ターゲットデバイス)にそのままの状態
でマイグレーションする。マイグレーションは、アプ
リケーションの画一性、アプリケーションの実行の継
続性という二つの技術的課題を提起している。
【0006】最初の課題は、コンピュータデバイス間の
ハードウェア構成の違いに起因している。確かに、コン
ピュータデバイスは、コンピュータ処理能力、メモリ容
量、画面の大きさ、データ入力手段など、あらゆる面で
多様である。このため、ハードウェア構成に応じた個別
のアプリケーションがコンピュータデバイスごとにロー
ドされているのが常であり、それでいて同じ処理を実行
している。例えば、デスクトップ型のPCでは、「マイ
クロソフト(登録商標)Outlook(登録商
標)」、パーム型のPDAでは、「メール」、スプリン
トPCS社のセル電話では、「PCSメール」を使って
いるとする。これらはすべて、異なるアプリケーション
であるにも拘らず、同じ電子メール機能を実行する。電
子メールの送信や受信だけのためにこれら異なるアプリ
ケーションすべての使い方を学ぶ必要が本当にあるのか
とユーザは疑問に思うかもしれないが、マイグレーショ
ンの概念の下では、ソースデバイスにおいてもターゲッ
トデバイスにおいても同じアプリケーションが実行され
る。このように、マイグレーションにより、ユーザが異
なるアプリケーションを学ぶ時間が不要になるだけでな
く、ソフトウェア開発者が異なるアプリケーションを開
発する時間までもが不要になるのである。
【0007】二つめの課題は、これほど簡単ではない。
ターゲットデバイスに再記録されたアプリケーション
は、ソースデバイスに存在していたアプリケーションの
状態を復旧するまでは、事実上タスクを再開することが
できない。ここで、アプリケーションの状態とは、実行
状態とデータの状態の両方を含む。アプリケーションの
状態は、アプリケーションがソースデバイスからマイグ
レーションする前に保存しておき、ターゲットデバイス
に再記録された後に保存したアプリケーションを復旧す
るというような操作を行うことで、面倒ではあるが、手
動で復旧することができる。しかし、マイグレーション
処理では、アプリケーションがソースデバイスからマイ
グレーションする際には、アプリケーションの状態を伴
ってマイグレーションし、ターゲットデバイスにおいて
その状態のままリスタートする。このように、アプリケ
ーションは、ターゲットデバイスに到達してすぐタスク
を再開できる状態になっている。
【0008】アプリケーションのマイグレーションを実
現するために、様々な研究が報告されている。意義深い
ことに、これらの研究の多くは、Java(登録商標)
ベースのソフトウェアアーキテクチャを採用している。
Javaはプログラミング言語であり、プログラムが実
行されるデバイスのハードウェア構成とは関係がない。
さらに具体的には、Javaプログラムは、ハイレベル
であり、かつ機械に依存しないバイトコードにコンパイ
ルされる。また、このバイトコードはJava仮想マシ
ンと呼ばれる仮想インタプリタが翻訳することにより実
行される。また、このJavaプログラムは機械に依存
していないため、異なるハードウェアプラットフォーム
で実行することができ、アプリケーションにポーティン
グ処理を施す必要がない。この特性は、Javaが「一
度書けば、どこでも実行できる」と評される所以であ
る。
【0009】
【発明が解決しようとする課題】このようにJava
は、機械に依存しないという特性を持っているため、異
種デバイス間、つまり異なるハードウェア構成のデバイ
ス間でのアプリケーションのマイグレーションに有用か
つ有利であることは言うまでもない。実際、過去の研究
では、Javaベースのソフトウェアアーキテクチャに
よるアプリケーションのマイグレーションが、少なくと
も限られた環境においては成功するということが証明さ
れている。しかし、これら先行研究の問題点は、アプリ
ケーションのマイグレーションを実行するためには、選
択されたソースデバイスとターゲットデバイスが同程度
でかつ十分に機能性の高いものであることが必要だとい
うことである。言い換えれば、先行研究におけるアプリ
ケーションのマイグレーションは真の意味での異種環境
間で実際に達成されたものではない。
【0010】確かに、デスクトップ型PCのように機能
性の高いデバイスからPDAのような機能が少ないデバ
イスにアプリケーションをマイグレーションする場合に
困難が生じる。デスクトップ型PCに比べ、PDAは、
処理速度、メモリ容量、永久記憶装置の可用性、ネット
ワーク通信能力の信頼度などのハードウェア資源に限界
がある。ここで課題となるのは、アプリケーションを実
行するにはPCレベルのリソースが必要であってPDA
での実行には適さない場合でさえ、デスクトップ型PC
からPDAに対するアプリケーションのマイグレーショ
ンが可能かどうかである。先行研究で、この課題に取り
組んだ例は見られない。
【0011】
【課題を解決するための手段】上記課題を解決するた
め、本発明は、真の意味で異種のコンピュータデバイス
間でアプリケーションのマイグレーションを実現する方
法およびシステムを提供する。この目的を達成するた
め、本発明では、適応的にマイグレーションするアプリ
ケーションが、マイグレーションの処理中に自らを再構
成し、ターゲットのコンピュータデバイスへのアプリケ
ーションの適合化やポーティングを行う。
【0012】本発明に係るポーティング処理はユニーク
である。本発明では、アプリケーションは複数のスタン
ドアロンのソフトウェアコンポーネントから成る。これ
らコンポーネントは、デバイス非依存型(DI:Device
Independent)とデバイス依存型(DD:Device Dep
endent)に分類される。DIコンポーネントは、異なる
ハードウェアプラットフォームで実行することができ
る。一方、DDコンポーネントを実行するには、特定の
ハードウェア構成が必要となる。したがって、DDグル
ープは、異なるハードウェアプラットフォーム上で実行
できるように設計された複数セットの代替コンポーネン
トで形成されている。このように、アプリケーションが
実行されるデバイスにおいてアプリケーションを実行す
るのに適したDDコンポーネントが上記複数セットから
選ばれ、DIコンポーネントと共にアプリケーションを
構成するのである。
【0013】本発明に係るマイグレーション処理は、ま
ず、ソースデバイスにおいて実行中の、マイグレーショ
ン前のアプリケーションを検査することにより始まる。
このアプリケ−ションの検査では、現在実行中のアプリ
ケーションのDDコンポーネントは何かということ、ま
た代替DDコンポーネントがあるかどうか判定される。
ターゲットデバイスのハードウェア構成に関する検査も
行われ、ターゲットデバイスに適合するDDコンポーネ
ントを選択することにより、アプリケーションをターゲ
ットデバイスに提供する。そして、選択されたDDコン
ポーネントは、DIコンポーネントとともにターゲット
デバイスにロードされる。同時に、ソースデバイス側で
のアプリケーションの実行状態が取得され、ターゲット
デバイスに転送される。アプリケーションの、取得され
た実行状態を使い、ターゲットデバイス上でアプリケー
ションがインスタンス化されると、マイグレーション処
理は終了する。
【0014】本発明に係るマイグレーション処理におい
ては、アプリケーションの機能は1以上のターゲットデ
バイスに分配されてもよい。DIコンポーネントは機能
コンポーネントなので、異なるプラットフォームで実行
することができる。しかし、マイグレーション前のアプ
リケーションのDIコンポーネントが、ターゲットデバ
イスの能力を超えたコンピュータ処理能力を必要とする
タスクを実行する場合もあるかもしれない。本発明で
は、そのようなタスクは、十分なコンピュータ処理能力
がある第3のデバイスに割り当てられる。このように、
このDIコンポーネントは第3のデバイスにマイグレー
ションし、他のコンポーネントはターゲットデバイスに
マイグレーションする。これ以後、ターゲットデバイス
と第3のデバイスは、互いに通信しながら協力してアプ
リケーションを実行する。
【0015】このように、本発明では、ソースデバイス
において実行中のアプリケーションとターゲットデバイ
スのハードウェア構成が検査され、アプリケーションを
ターゲットデバイスにポーティングする。そして、ポー
ティングされたアプリケーションは、ターゲットデバイ
スにロードされる。同時に、ソースデバイス側でのアプ
リケーションの実行状態が取得され、ターゲットデバイ
スに転送される。ターゲットデバイスは、取得したアプ
リケーションの実行状態を使い、アプリケーションをイ
ンスタンス化する。アプリケーションは1以上のコンポ
ーネントを含む複数のセットから成り、ターゲットデバ
イスに最も適合するコンポーネントを少なくともひと
つ、各セットから選択することにより、アプリケーショ
ンがターゲットデバイスにポーティングされる。
【0016】アプリケーションは、1以上の第3のデバ
イスからターゲットデバイスにロードされ、この第3の
デバイスはソースデバイスを含んでも良い。また、1以
上のターゲットデバイスがあってもよく、アプリケーシ
ョンは1以上のターゲットデバイスに分配されてロード
される。
【0017】
【発明の実施の形態】添付の図面に例示された本発明の
実行方法について詳しく説明する。以下に説明する本発
明の好ましい形態では、Javaベースのソフトウェア
システムを使用している。しかしながら、Javaベー
スのソフトウェアシステムは本発明を実行する唯一の手
段ではないことは容易に理解されるべきであり、他の種
類のソフトウェアシステムの下で本発明を実行してもよ
い。
【0018】A.マイグレーション動作の概略 本発明に係るアプリケーションのマイグレーションは、
特に本発明を実行するために設計されたローム(Roa
m:ResOurce-aware Application Migration:リソース
認識アプリケーション・マイグレーション)システム上
で実行される。図1は、ロームシステムのアーキテクチ
ャを例示するブロック図である。図1に示すように、ロ
ームシステムは、Java仮想マシーン(JVM)、P
ersonalJava仮想マシーン(PJVM)、ま
たはその他の種類の仮想マシーン(VM)の上に構築さ
れ、デバイス固有のオペレーティングシステムの最上位
で実行される。VMは、抽象化コンピュータデバイスの
ように動作する。つまり、受け取ったバイトコードを、
固有のオペレーティングシステムが実行できる形に変換
することにより動的に翻訳する。
【0019】「ロームレット」は、ワードプロセッサプ
ログラムやメールプログラムなど、ユーザと直接インタ
ーフェースをとるプログラムである。これは、Java
で記述され、JVMP、JVM、または他の種類のVM
により実行される。本発明において、ロームレットは、
ロームシステムの制御下でソースデバイスからターゲッ
トデバイスへマイグレーションする。ロームシステムに
は、ロームレットのマイグレーションの実行時環境を提
供するロームエージェントが備えられている。ロームエ
ージェントは、マイグレーションの実行において重要な
役割を果たすので、マイグレーションが実行される際に
は必ずソースデバイスとターゲットデバイスの双方に備
える必要がある。ロームシステムとロームレットの間に
は、複数のロームレットAPI(Application Program
Interface:アプリケーション・プログラム・インタ
ーフェース)が一式備えられ、ロームエージェントから
の指示を受け取って、ロームレットのマイグレーション
の実際の動作を実行する。
【0020】図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のバイトコードをダウンロードすることがで
きるようにする。
【0021】ステップ2において、URLを受け取る
と、ロームエージェント5は、HTTPサーバ6にアク
セスして、そこからロームレット1のバイトコードをダ
ウンロードする。ステップ3において、ロームレット1
の状態が、ロームエージェント4により取得され、ロー
ムエージェント5に送られる。ステップ4において、ロ
ームエージェント5は、取得したロームレット1のソー
スデバイス2における状態を復旧することにより、ロー
ムレット1をインスタンス化する。ロームレット1のマ
イグレーションは、ソースデバイス2においてロームレ
ット1を閉じることにより終了する。この段階で、ロー
ムレット1はターゲットデバイス上にあり、ソースデバ
イス2において停止されていたタスクを再開できる状態
になっている。
【0022】B.マイグレーション動作の詳細な説明 1.デバイスの分類 ロームレットは多かれ少なかれデバイス依存型である。
したがって、ソースデバイスのロームエージェントは、
マイグレーションを実行する前にターゲットデバイスの
ハードウェア構成を把握する必要があり、それにより特
定のロームレットが全体として又は部分的にでもターゲ
ットデバイスにおいて実行可能かどうかが判定可能とな
る。Javaランタイムシステムには実行側デバイスの
ハードウェア構成を示す情報が含まれているので、ロー
ムシステムを構築する際にJavaを使用すると便利で
ある。現在、Javaランタイムシステムには、異なる
コンピュータデバイスに合わせた実行時環境を提供する
ものが複数種類ある。表1は、典型的なJavaランタ
イムシステムと各々の構造を示している。
【0023】
【表1】
【0024】表1に示すように、Javaランタイムシ
ステムは、仮想マシーン(VM)、コンフィギュレーシ
ョン、そしてプロファイルの3層構造になっている。コ
ンフィギュレーションは、JavaAPIの仕様を示し
ている。プロファイルは、コンフィギュレーションAP
Iの拡張を指定する。表1には、PJVM(PersonalJa
va Virtual Machine:パーソナルJava仮想マシー
ン)、CVM(Compact Virtual Machine:コンパク
ト仮想マシーン)、KVM(Kilo VirtualMachine:キ
ロ仮想マシーン)3種類のVMがある。これらのVMは
特定のハードウェア構成に適合するように設計されてい
る。例えば、KVMは、16/32ビットのRISC/
CISCマイクロプロセッサを備えた、使用可能なメモ
リ合計が少なくとも160Kのデバイスに適している。
PJVMは、文献「PersonalJava(登録商
標)テクノロジ白書」(サン・マイクロシステムズ、1
998年8月)で議論されおり、本願明細書において参
照として援用される。CVMは、文献「JSR#000
036J2ME(登録商標)接続デバイスコンフィギュ
レーション」(サン・マイクロシステムズ、2000年
8月)で議論されており、本願明細書において参照とし
て援用される。KVMは、文献「J2ME CLDC/
KVMパームリリース:リリースノート/CLDC1.
0」(サン・マイクロシステムズ、2000年5月)で
議論されており、本願明細書において参照として援用さ
れる。
【0025】また、表1は、CDC(Connected Devic
e Configuration:コネクティッド・デバイス・コンフ
ィギュレーション)、CLDC(Connected Limited
Device Configuration:コネクティッド・リミティッ
ド・デバイス・コンフィギュレーション)の2種類のコ
ンフィギュレーションと、パーソナルプロファイル、R
MIプロファイル、ファンデーションプロファイル、P
DAプロファイル、MID(Mobile Information Dev
ice:モバイル情報デバイス)プロファイルの5種類の
プロファイルを示している。これらのコンフィギュレー
ションおよびプロファイルも、特定のハードウェアプラ
ットフォームで効果的に機能するようにデザインされて
いる。これらのコンフィギュレーションおよびプロファ
イルは、文献「Java仕様リクエスト」(Javaコ
ミュニティ出版)で議論されており、例えば、URL、
http://java.sun.com/aboutJava/communityprocess/sea
rch.htmlで参照可能であり、本願明細書において参照と
して援用される。
【0026】このように、デバイスのJavaランタイ
ムシステムを参照して、VM、コンフィギュレーショ
ン、およびプロファイルの種類を調べることにより、デ
バイスのハードウェア構成をかなり正確に特定すること
が可能である。しかしながら、Javaランタイムシス
テムはデバイスのハードウェア構成を特定する唯一の情
報源ではなく、当業者にとってこの目的のために利用可
能な他の情報源の存在を理解することは容易であると解
されるべきであろう。例えば、ロームエージェントは、
デバイス上で作成された特別なデバイス機能ファイルか
ら、このデバイスのハードウェア構成に関する詳細かつ
正確な情報を取得することができる。デバイスにおいて
実行されている、ベースとなる固有のオペレーティング
システムに問合せをすれば、ハードウェア情報はこのデ
バイス機能ファイルから取得できる。
【0027】2.コンポーネントベースのプログラミン
グ ロームレットは、分散した複数のソフトウェアコンポー
ネントで構成されている。各コンポーネントには、コン
ポーネントの割り当てられたタスクを行うために実行可
能な1以上のオブジェクトが入っている。ロームレット
の複数のコンポーネントは相互接続されていて、全体と
してロームレットの目的を遂行する。これらのコンポー
ネントは、デバイス依存型(DD)グループとデバイス
非依存型(DI)グループに分類されている。DDコン
ポーネントはソフトウェアコンポーネントで、その実行
には特定のハードウェア構成が必要である。本発明で
は、ハードウェアプラットフォームの種類ごとに、ひと
つのインプリメンテーション、つまりひとつのDDコン
ポーネントが提供される。DDコンポーネントの例とし
ては、GUI(Graphical User Interface:グラフィ
カル・ユーザ・インタフェース)コンポーネントがあ
り、このコンポーネントでは、コンポ−ネットが実行さ
れる入力ハードウェアや表示ハードウェアの種類によっ
て異なるGUIライブラリが必要である。GUIを含む
必要があるロームレットには、ロームレットが異なるプ
ラットフォームで実行できるようにコンポーネントが準
備される。これらのGUIコンポーネントは、PC用の
GUIコンポーネント、PDA用のGUIコンポーネン
ト、およびその他のプラットフォーム用のGUIコンポ
ーネントを含む。ロームレットがターゲットデバイスに
マイグレーションするとき、ターゲットデバイスのハー
ドウェア構成に最も適したGUIコンポーネントが選択
され、ターゲットデバイスにおいてインスタンス化され
る。
【0028】一方、DIコンポーネントは、機能コンポ
ーネントである。本発明では、複数のハードウェアプラ
ットフォームに対して、ひとつのインプリメンテーショ
ン、つまりひとつのDIコンポーネントが提供される。
DIコンポーネントは機能的な特徴を持っているので、
異なるハードウェアプラットフォームで実行されるもの
とみなされている。しかし、DIコンポーネントの中に
は、例えば、高いコンピュータ処理能力のような特定の
ハードウェア能力を必要とするものもあることがわかっ
ている。ロームレットのDIコンポーネントが必要とす
るハードウェア能力が不足しているターゲットデバイス
に、ロームレットがマイグレーションする場合、そのD
Iコンポーネントはロームレットからオフロードされ、
第3のデバイスにマイグレーションする。これについて
は、後に詳述する。
【0029】このように、各ロームレットに対して、D
Iコンポーネントが1セット準備され、ロームレットが
異なるハードウェアプラットフォームで動作できるよう
にDDコンポーネントが複数セット準備される。尚、ひ
とつのロームレットに対してDDコンポーネントが複数
セット準備されるが、あるデバイスにおいて実際実行さ
れているロームレットにおいては、そのデバイスのハー
ドウェア構成に最も適したDDコンポーネントが1セッ
トのみインスタンス化されることに留意してほしい。後
続のセクションで詳しく説明するが、ターゲットデバイ
スのハードウェア構成に最も適したDDコンポーネント
を1セット選択するには、ソースデバイスのロームエー
ジェントは、マイグレーションするロームレット用に備
えられたDDコンポーネントのセットすべてを検査し、
各セットが必要とするハードウェア構成とターゲットデ
バイスのハードウエア構成を比較する。
【0030】これらDIコンポーネントとDDコンポー
ネントはJavaでプログラムされ、バイトコードにコ
ンパイルされた後、上述したHTTPサーバ6のような
サーバに格納される。これらのコンポーネントは、ター
ゲットデバイスのハードウェア構成に従ってサーバから
ターゲットデバイスに選択的にダウンロードされる。し
かしながら、ソースデバイスが十分大きなメモリを持っ
ている場合、DIコンポーネントおよびDDコンポーネ
ントのセットすべてを、使用中か否かにかかわらずソー
スデバイスに保存してもよいことに留意してほしい。
【0031】3.動的インスタンス化 次に図3を参照して、マイグレーション動作の詳細を説
明する。図3では、ソースデバイス10はPCで、ター
ゲットデバイス11はPDAである。PC10とPDA
11は、通信ネットワーク12を介して互いに接続さ
れ、通信ネットワーク上の一意のIPアドレス(Intern
et Protocol address:インターネット・プロトコル・
アドレス)で特定される。ロームレット13は、現在P
C10において実行されていて、PDA11にマイグレ
ーションするところである。マイグレーションが指示さ
れると、PC10に存在するロームエージェント14
は、PDA11に存在するロームエージェント15とネ
ゴシエーションを開始する。
【0032】図4は、マイグレーション動作をステップ
ごとに示したフローチャートである。ステップ10にお
いて、ロームエージェント14はロームレット13とP
C10において実行されているコンポーネントを検査す
る。ロームレット13を検査する際、ロームエージェン
ト14は、現在PC10において実行されているローム
レット13のDDコンポーネントとDIコンポーネント
を特定するととともに、異なるハードウェアプラットフ
ォームにおいてロームレット13を実行するのに利用で
きる代替DDコンポーネントを特定する。ここでは、ロ
ームレット13がPC上でのみ実行できるGUIコンポ
ーネント16を含んでおり、かつ、ロームレット13を
PDAにおいて実行するためのPDA用の代替GUIコ
ンポーネント17が利用可能であるとロームエージェン
ト14が特定したと仮定する。
【0033】ステップ11において、ロームエージェン
ト14はPDA11のロームエージェント15に連絡
し、PDA11のハードウェア構成に関する情報を要求
する。ロームエージェント14からの要求に応じて、ロ
ームエージェント15はPDA11において実行されて
いるJavaランタイムシステムを検査する(ステップ
12)。自分のランタイムシステムに含まれているV
M、コンフィギュレーション、そしてプロファイルの種
類に基いて、ロームエージェント15はPDA11のハ
ードウェア設定、例えば、コンピュータ処理能力、スク
リーンサイズやメモリサイズなどを判定する。そしてロ
ームエージェント15は、PDA11のハードウェア構
成に関する情報をロームエージェント14に送り返す
(ステップ13)。尚、PDA11のハードウェア構成
に関してさらに詳細または正確な情報を取得する必要が
ある場合は、ロームエージェント15はPDA11のベ
ースとなる固有のオペレーティングシステムに格納され
ているデバイス機能ファイルを参照してもよいことに留
意してほしい。
【0034】ステップ14において、ロームエージェン
ト14は、ロームエージェント15からのPDA11の
ハードウェア構成に関する情報に基いて、どのコンポー
ネントがPDA11に対してのマイグレーションが可能
でどのコンポーネントが可能でないかを判定する。ロー
ムレット13のDIコンポーネントはすべて、PDA1
1のハードウェア構成に拘らずマイグレーション可能で
ある。DDコンポーネントに関しても、いくつかはPD
A11にマイグレーション可能な場合もあるが、PC1
0とPDA11間のハードウェアの違いが原因でマイグ
レーションできないDDコンポーネントについては、ロ
ームエージェント14はPDA11において実行可能な
代替コンポーネントを検索する。
【0035】ステップ15において、ロームエージェン
ト14は、DIコンポーネントおよびDDコンポーネン
トのURLと、HTTPサーバ6に格納されている代替
DDコンポーネントを、ロームエージェント15に送信
する。図3に示す例においては、PCのGUIコンポー
ネント16は現在PC10上で実行中であるので、PD
A11にマイグレーションすることはできない。よっ
て、ロームエージェント14は、ロームエージェント1
5に対し、HTTPサーバ6に格納されているPCのG
UIコンポーネント17のURLを送信する。
【0036】ステップ16において、ロームエージェン
ト15はロームエージェント14から送信されたURL
を使ってサーバ6にアクセスし、サーバ6にバイトコー
ドの形で格納されているコンポーネントのダウンロード
を開始する。同時に、ステップ17において、ロームエ
ージェント14は、PC10におけるロームレット13
の実行状態を取得し、取得した状態をロームエージェン
ト15に送信する。ステップ18において、ロームエー
ジェント15はロームレット13’をPDA11におい
て展開し、展開されたロームレット13’で、取得した
状態を復旧する。これで、ロームレット13’はPDA
11においてタスクを再開する準備ができた状態とな
る。ステップ19において、ロームエージェント15
は、ロームエージェント14に対して、ロームレット1
3’のPDA11上への複製が成功した旨を通知する。
これに対し、ロームエージェント14は、PC10から
ロームレット13を削除する(ステップ20)。
【0037】本発明においては、Javaオブジェクト
シリアル化を使って、ロームレット13の実行状態の取
得および復旧が実行される。Javaオブジェクトシリ
アル化は、Javaプログラムの実行状態を取得し復旧
する有用な方法を提供する。図3に示す形態では、ロー
ムエージェント14がPC10においてJavaオブジ
ェクトシリアル化を呼び出し、ロームレット13にある
すべてのJavaオブジェクトの実行状態をシリアル化
する。ロームエージェント15もPDA11にJava
シリアル化を呼び出し、シリアル化された実行状態をP
DA11においてロームレット13’に非シリアル化す
る。このJavaオブジェクトシリアル化によってシリ
アル化可能な実行状態は、ロームレット13にある各オ
ブジェクトのすべての変数の値を含む。このJavaオ
ブジェクトシリアル化を使うことにより、ロームレット
13の実行状態の大部分をPC10において取得するこ
とができ、PDA11において復旧することができる。
【0038】しかし、このJavaオブジェクトシリア
ル化に適さない実行状態が2種類ある。ひとつは、ロー
ムシステム特有の実行状態である。即ち、代替DDコン
ポーネントと置換されるDDコンポーネントの実行状態
は、代替DDコンポーネントにおいては復旧できない。
DDコンポーネントとその代替コンポーネントは、異な
るオブジェクトから成ることが多いので、DDコンポー
ネントの実行状態は、その代替コンポーネントにとって
は無意味となる。従って、変換処理を施して、DDコン
ポーネントとその代替コンポーネント間で実行状態を維
持する必要がある。例えば、図3に戻り、PCのGUI
コンポーネント16がチェックボタンを使ってユーザイ
ンターフェースを実行する一方、PCのGUIコンポー
ネント17は選択ボタンを使ってユーザインターフェー
スを実行していると仮定する。PCのGUIコンポーネ
ント16の実行状態をPCのGUIコンポーネント17
に転送するためには、ロームエージェント14はチェッ
クボタンの値を選択ボタンにマップし、これらの値を選
択ボタンの値に変換する。
【0039】Javaオブジェクトシリアル化に適さな
いふたつめの実行状態は、ロームレット13を翻訳する
VMの実行状態である。Javaオブジェクトシリアル
化はVM内部にはアクセスすることができない。したが
って、コールスタックなどのVMの実行状態は、シリア
ル化できない。この問題に対処するため、ロームエージ
ェント14は、コールスタックが最小になる特定のポイ
ントでのみマイグレーションを実行可能としてもよい。
これにより、失われる実行状態の量を極力抑えることが
できる。
【0040】以下は、ロームシステム下で基本的なマイ
グレーションを実行する際のロームレットAPIの例で
ある。 ロームレットはすべて、クラスロームレットを拡張しな
ければならない。メソッド"migrate()"は、"hostname"
によって示されるターゲットデバイスにロームレットを
ディスパッチする。メソッド"onInitializaiton()"は、
ロームレットがターゲットデバイスにおいて、最初にイ
ンスタンス化された時に呼び出される。メソッド"onRem
oval()"は、ロームレットのターゲットデバイスへのマ
イグレーションが成功した後、ロームレットがソースデ
バイスから削除される前に呼び出される。メソッド"onA
rrival()"は、ロームレットがターゲットデバイスに到
着した時に呼び出される。メソッド"exit()"は、ローム
レットをソースデバイスから削除する。メソッド"insta
ntiation()"は、ターゲットデバイスにおいてロームレ
ットをインスタンス化する。ターゲットデバイスにおい
てロームレットがインスタンス化された後、分離スレッ
ドがターゲットデバイスにおいて生成され実行される。
これにより、ターゲットデバイス上で複数の仮想マシー
ンを生成して実行するというオーバーベッドが無くな
る。
【0041】以下は、同じ機能を実行する代替DDコン
ポーネント群を維持するためのロームレットAPIの例
である。 メソッド"addDDComponentDescList()"は、デスクリプタ
リスト、即ち、RoamComponentDesc[]を追加する。この
デスクリプタリストは、ハードウェア設定に係る代替D
Dコンポーネントを列挙している。例えば、デスクリプ
タリストには、PCのGUIコンポーネント、PDAの
GUIコンポーネント、携帯電話GUIコンポーネント
などの代替GUIコンポーネントがすべて含まれてい
る。マイグレーションを実行する場合、このデスクリプ
タリストからターゲットデバイスに最も適したコンポー
ネントがひとつ選択される。
【0042】4.デバイス間での機能の分配 ロームレットの実行に必要不可欠なDIコンポーネント
のいくつかが、ターゲットデバイスのハードウェア資源
が不十分なために実行できない場合があり得る。そのよ
うな場合、ロームシステムは、ロームレットの機能を複
数のデバイスに分配する。即ち、ロームシステムは、コ
ンポーネントを複数のターゲットデバイスにマイグレー
ションさせる。図5および図6は、このような分配動作
を示すブロック図と、本動作を詳述するフローチャート
である。図5では、図3で使用した符号と同じ符号が、
デバイスとソフトウェアの構成要素に対応して割り当て
られている。
【0043】図5では、図3と同様に、ロームレット1
3がソースデバイス10であるPCからターゲットデバ
イス11であるPDAにマイグレーションしようとして
いる。ステップ30において、ロームエージェント14
はロームレット13を検査し、現在PC10において実
行されているロームレット13のDIコンポーネントお
よびDDコンポーネントを特定する。例えば、ロームレ
ット13は、重荷で、使用するメモリの多いコンピュー
タ処理タスクを実行するDIコンポーネント18を含
み、このタスクの実行にはPDA11の能力を超えたコ
ンピュータ処理能力を必要とするため、このコンポーネ
ント18は、DIコンポーネントであるにも拘らず、P
DA11においては実行不可能であると仮定する。ま
た、このDIコンポーネント18はロームレット13の
実行には必要不可欠であるのに、PDAにおいて利用可
能な代替コンポ−ネントは存在しないと仮定する。
【0044】ステップ31では、ロームエージェント1
4は、PDA11のロームエージェント15に連絡し、
PDA11のハードウェア構成に関する情報を要求す
る。ロームエージェント14からのこの要求に応じ、ロ
ームエージェント15はPDA11において実行されて
いるJavaランタイムシステムを検査し、PDA11
のハードウェア構成を判定する(ステップ32)。ステ
ップ33において、ロームエージェント15は、PDA
11のハードウェア構成に関する情報をロームエージェ
ント14に送り返す。
【0045】ステップ34において、ロームエージェン
ト14は、ロームエージェント15からのハードウェア
情報に基いて、ロームレット13のどのコンポーネント
をPDA11に対してマイグレーション可能か、どのコ
ンポーネントがマイグレーション不可能かを判定する。
ロームエージェント14は、PDA11のコンピュータ
処理能力には限度があるため、コンポーネント18をP
DA11にマイグレーションすることはできないと判定
する。ロームエージェント14は、ステップ30におい
て既に、PDA11において利用可能な代替コンポーネ
ントは存在しないと判定している。
【0046】ステップ35において、ロームエージェン
ト14は、コンピュータ処理コンポーネント18をロー
ムレット13からオフロードできるかどうかをまず判定
する。コンポーネント18がオフロード可能と判定され
た場合、ロームエージェント14はマイグレーション動
作を続けて実行する。コンポーネント18をロームレッ
ト13からオフロードできない場合、ロームエージェン
ト15はマイグレーション処理を打ち切る。そして、コ
ンポーネント18がオフロード可能の場合、ロームエー
ジェント15は、コンポーネント18を実行可能な第3
のデバイスの検索を開始する。ユーザがこのデバイス検
索に参加して、自分がコンポーネント18をマイグレー
ションしたい特定のデバイスを指定してもよい。ここで
は、ロームエージェント14が、コンポーネント18を
実行するのに十分なコンピュータ処理能力を持つサーバ
19を探し出すのに成功したと仮定する。
【0047】ステップ36において、ロームエージェン
ト14は、サーバ6に格納されている、PDA11にマ
イグレーション可能なロームレット13の各コンポーネ
ントのURLをロームエージェント15に送信する。ま
た、ロームエージェント14は、サーバ19のロームエ
ージェント20に対して、サーバ6に格納されているコ
ンポーネント18のURLを送信する。ロームエージェ
ント15は、指定された複数のURLを使って、サーバ
6から各コンポーネントのバイトコードをダウンロード
する(ステップ37)。同様に、ロームエージェント2
0は、コンポーネント18のバイトコードをサーバ6か
らダウンロードする(ステップ38)。同時に、ステッ
プ39において、ロームエージェント14は、ロームエ
ージェント13の各コンポーネントの実行状態を取得
し、取得した実行状態をマイグレーション先の各デバイ
スに送信する。具体的には、ロームエージェント14
は、PDA11にマイグレーションすべきコンポーネン
トの実行状態をロームエージェント15に送信するとと
もに、サーバ19にマイグレーションすべきコンポーネ
ント18の実行状態をロームエージェント20に送信す
る。ロームエージェント15は、ロームエージェント1
4から送信された取得状態を使って、ロームレット1
3”をPDA11上でインスタンス化する(ステップ4
0)。同様に、ロームエージェント20は、コンポーネ
ント18をサーバ19においてインスタンス化する(ス
テップ41)。ロームエージェント15および20は、
ロームエージェント14に対し、ロームレット13”お
よびコンポーネント18がPDA11およびサーバ19
に各々複写されたことを通知する(ステップ42および
43)。そして、ロームエージェント14は、PC10
からロームレット13を削除する(ステップ44)。ロ
ームレット13”は、PDA11においていつでもタス
クを再開できる状態にある。
【0048】ロームシステムでは、ロームレット13”
をPDA11からPC10に対して逆にマイグレーショ
ンすることができる。このような逆分配動作において
は、今度はソースデバイス側となるPDA11のローム
エージェント15が、図4に示す手順を実行し、今度は
ターゲットデバイスとなるPC10にロームレット1
3”を返送する。同様に、ロームエージェント20は、
コンポーネント18をPC10に対して返送する。尚、
PDA11において実行されるコンポーネントのいくつ
かは、PC10にマイグレーションできなくなっている
可能性があることに留意して欲しい。そのようなコンポ
ーネントがある場合は、コンポーネントはPDA11に
とどまることになる。
【0049】以下は、機能の分配を実行するロームレッ
トAPIの例である。 各ロームレットの構成要素は、クラスRoamComponentを
拡張する。メソッド"addDIComponentDesc()"は、デスク
リプタ、RoamComponentDescをDDコンポーネントの各
々に追加するのに呼び出される。デスクリプタには、D
Dコンポ−ネントの各々のインスタンス化の方法に関す
る情報が含まれている。即ち、DDコンポーネントの各
々について、一意の識別子、インスタンス化されるクラ
ス名(classname)、コンポーネントを実行するのに必
要なデバイス能力(reqDeviceCapability)、コンポー
ネントがオフロード可能か否か(offloadable)、コン
ポーネントが逆分配可能か否か(reverseApportion)、
そしてコンストラクタのパラメータ(iniArgs)に関す
る情報が含まれている。メソッド"getComponent(id)"
は、コンポーネントがターゲットデバイスにおいてイン
スタンス化された後に、これらコンポーネントの参照を
(IDを使って)検索するのに呼び出される。メソッ
ド"registerServerDevice()"は、コンポーネントがオフ
ロード可能なすべてのデバイスを登録するのに呼び出さ
れる。
【0050】C.実施例 図7に示すコンピュータネットワークを使って実験を行
い本発明を実行した。ネットワークは、ノートブック3
0と、PDA31、カシオ(登録商標)E−125、お
よびPC32から成る。ウィンドウズ(登録商標)20
00OSと標準VM(JVM)がノートブック30およ
びPC32おいて実行される。また、ウィンドウズCE
OSとPersonalJavaVM(PJVM)が
PDA31において実行される。ノートブック30は、
無線LAN33を介してネットワークに接続されてい
る。PDA31とPC32は、無線LAN34を介して
ネットワークに接続されている。ネットワークでは、ノ
ートブック30にはIPアドレス、172.21.9
6.17が割り当てられている。PDA31には、IP
アドレス、172.21.96.19が割り当てられて
いる。ノートブック30、PDA31、PC32の各々
には、ロームレットエージェントがロードされている。
このロームレットエージェントは、コードサイズが約2
4Kバイトであり十分小さく、Javaベースのソフト
ウェアアーキテクチャの殆どのデバイスにおいて実行で
きる。
【0051】1.第1例(HelloWorld) 図8に示すように、ノートブック30は「HelloW
orld」と呼ばれるロームレット35を実行し、この
ロームレットはPDA31にマイグレーションするとこ
ろである。HelloWorldロームレット35は、
Clickコンポーネント36およびSwingのGU
Iコンポーネント37のふたつのコンポーネントから成
る。Clickコンポーネント36は、ユーザが行うマ
ウスクリックの回数を数える。SwingのGUIコン
ポーネント37は、ノートブック30にマウスクリック
のカウントを表示する。ノートブック30からPDA3
1にロームレット35をマイグレーションする前に、ロ
ームシステムの機能を証明するために2つのルールを定
める。第1に、Clickコンポーネント36は、PD
A31が持っているより高いハードウェア能力を必要と
する。第2に、SwingのGUIコンポーネント37
は、実行にはJavaSwingライブラリを必要とす
る。JavaSwingライブラリは、Standar
dJavaにはサポートされているが、Persona
lJavaにはサポートされていない。このように、S
wingのGUIコンポーネント37はノートブック3
0とPC32では実行可能だが、PDA31では実行不
可能である。SwingのGUIコンポーネント37の
代わりに、AWT(Abstract Window Toolkit:抽象化
ウィンドウツールキット)のGUIコンポーネント38
を利用して、ロームレット35を実行可能である。この
AWTのGUIコンポーネント38を実行するには、P
ersonalJavaにサポートされているJava
AWTライブラリが必要である。
【0052】ロームレット35のマイグレーションは、
このルールに従って実行される。つまり、Clickコ
ンポーネント36は、PDA31にはマイグレーション
しないが、PC32にはマイグレーションする。Swi
ngのGUIコンポーネント37は廃棄される。代わり
に、AWTのGUIコンポーネント38がPDA31で
インスタンス化される。図9の(a)、(b)、および
(c)は、各々ノートブック30、PDA31、PC3
2の画面を示す。マイグレーションの前には、Hell
oWorldロームレット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」を表示する。Cli
ckコンポーネント36がPC32にインスタンス化さ
れている(図9(c))。この例では、マイグレーショ
ンは5秒未満で実行された。また、PDAの「AWT
Click」ボタンをクリックする度に、クリックはP
C32のClickコンポーネント36にカウントさ
れ、PDAの画面に表示されるクリックカウントが増分
することが観察された。
【0053】2.第2例(Connect4) 第2例では、「Connect4」と呼ばれるゲームプ
ログラムを使用した。図10に示すように、ノートブッ
ク30は、「Connect4」と呼ばれるロームレッ
ト40を実行しており、このロームレットは、PDA3
1にマイグレーションするところである。Connec
t4ロームレット40は、GUIコンポーネント41お
よびAI(Artificial Intelligence:人工知能)コン
ポーネント42のふたつのコンポーネントから成る。A
Iコンポーネント42は、ゲームをするために、ツリー
を検索するなどのコンピュータ処理作業を実行し、GU
Iコンポーネント41は、ノートブックの画面にゲーム
の進行状況を表示する。ここでも、マイグレーションの
前に、2つのルールが決定される。第1に、AIコンポ
ーネント42はPDA31が持っているより高いハード
ウェア能力を必要とする。第2に、GUIコンポーネン
ト41は、ノートブック30とPDA32の両方におい
て実行可能である。
【0054】ロームレット40のマイグレーションは、
このルールに沿って実行される。つまり、GUIコンポ
ーネント41はPDA31にマイグレーションし、AI
コンポーネント42はPC32にマイグレーションす
る。図11(a)および(b)は各々、ノートブック3
0およびPDA31の画面を示す。マイグレーションの
前には、図11(a)に示すように、ノートブック30
ではConnect4ロームレット40が実行されてい
る。そして、マイグレーションが実行される。GUIコ
ンポーネント41はPDA31でインスタンス化され、
AIコンポーネント42はPC32でインスタンス化さ
れる。図11(b)に示すように、PDA31には同じ
画面が表示される。この例では、マイグレーションは5
秒未満で実行された。また、PDA31上で、PC32
にインスタンス化されたAIコンポーネント42を使っ
てゲームをプレイすることができることが観察された。
【0055】本発明の範囲と精神にもとることなく、上
記実施例に種々の修正や変更が可能であることは当業者
に理解されよう。本発明の他の実施形態は、本願明細書
および本願明細書に開示された本発明の実施方法とを検
討することにより、当業者にとって明瞭になろう。ま
た、明細書および実行例は、後続する特許請求の範囲に
示される発明の範囲と精神において、単なる例示を意図
するものである。
【0056】
【発明の効果】以上説明したように、本発明によれば、
異種デバイス間におけるアプリケーションのマイグレー
ションが可能になる。
【図面の簡単な説明】
本願明細書に組み込まれ、本願明細書の一部を構成する
添付図面は、本発明の実施形態を例示し、発明の詳細な
説明とともに本発明の利点と原理を説明する役目を担
う。
【図1】 本発明に係るロームシステムのシステムアー
キテクチャを示すブロック図である。
【図2】 本発明に係る基本的なマイグレーション動作
を示すブロック図である。
【図3】 本発明の第1実施形態に係るマイグレーショ
ン動作を示すブロック図である。
【図4】 図3に示すマイグレーション動作の詳細を示
すフローチャートである。
【図5】 本発明の第2実施形態に係るマイグレーショ
ン動作を示すブロック図である。
【図6】 図5に示すマイグレーション動作の詳細を示
すフローチャートである。
【図7】 本発明を実施する例で使用されるコンピュー
タネットワークを示すブロック図である。
【図8】 第1例で実行されるマイグレーション動作を
示すブロック図である。
【図9】 (a)、(b)、および(c)は、第1例で
使用されるノートブック、PDA、およびPCの表示画
面である。
【図10】 第2例で実行されるマイグレーション動作
を示すブロック図である。
【図11】 (a)および(b)は、第2例で使用され
るノートブックおよびPDAの表示画面である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ショウジ クラカケ アメリカ合衆国,カリフォルニア州 95110,サンノゼ,スイート300,メトロ ドライブ181 Fターム(参考) 5B076 BB02 BB06 BB14 EA19

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】 ソースデバイスにおいて実行されている
    アプリケーションをターゲットデバイスにマイグレーシ
    ョンさせる方法であって、 (a)前記ソースデバイスにおいて実行されている前記
    アプリケーションおよび前記ターゲットデバイスのハー
    ドウェア構成を検査して、前記アプリケーションを前記
    ターゲットデバイスにポーティングするステップと、 (b)ポーティングされた前記アプリケーションを前記
    ターゲットデバイスにロードするステップと、 (c)前記ソースデバイスに存在する前記アプリケーシ
    ョンの実行状態を前記ターゲットデバイスに転送するス
    テップと、 (d)前記ターゲットデバイスにおいて、前記ソースデ
    バイスから転送された実行状態を使って、ポーティング
    された前記アプリケーションをインスタンス化するステ
    ップとを具備することを特徴とする方法。
  2. 【請求項2】 前記ステップ(c)が前記ステップ
    (b)の前に実行されることを特徴とする請求項1に記
    載の方法。
  3. 【請求項3】 アプリケーションは1以上のコンポーネ
    ントの複数のセットから成り、前記ターゲットデバイス
    に最も適する少なくともひとつのコンポーネントを各セ
    ットから選択することにより前記アプリケーションが前
    記ターゲットデバイスにポーティングされることを特徴
    とする請求項1に記載の方法。
  4. 【請求項4】 前記複数のセットのいくつかは、各々が
    ひとつのデバイス非依存型コンポーネントを含む一方、
    その他の複数のセットは、各々が複数の代替デバイス依
    存型コンポーネントを含むことを特徴とする請求項3に
    記載の方法。
  5. 【請求項5】 前記アプリケーションは、1以上の第3
    のデバイスから前記ターゲットデバイスにロードされる
    ことを特徴とする請求項1に記載の方法。
  6. 【請求項6】 前記1以上の第3のデバイスは、前記ソ
    ースデバイスを含むことを特徴とする請求項5に記載の
    方法。
  7. 【請求項7】 2以上のターゲットデバイスがあり、前
    記アプリケーションは、前記2以上のターゲットデバイ
    スに分配されてロードされることを特徴とする請求項1
    に記載の方法。
  8. 【請求項8】 ソースデバイスにおいて実行されている
    アプリケーションをターゲットデバイスにマイグレーシ
    ョンさせるシステムであって、 (a)前記ターゲット機器に前記アプリケーションをポ
    ーティングするために、前記ターゲットデバイスのハー
    ドウェア構成を参照して、前記ソースデバイスにおいて
    実行されている前記アプリケーションを検査し、前記ソ
    ースデバイスにおけるアプリケーションの実行状態を取
    得する第1のエージェントと、 (b)前記アプリケーションの取得された前記実行状態
    を使って、ポーティングされた前記アプリケーションを
    ロードして自エージェントにおいてインスタンス化する
    第2のエージェントとを具備することを特徴とするシス
    テム。
  9. 【請求項9】 アプリケーションは1以上のコンポーネ
    ントの複数のセットから成り、前記ターゲットデバイス
    に最も適する少なくともひとつのコンポーネントを各セ
    ットから選択することにより前記アプリケーションが前
    記ターゲットデバイスにポーティングされることを特徴
    とする請求項8に記載のシステム。
  10. 【請求項10】 前記複数のセットのいくつかは、各々
    がひとつのデバイス非依存型コンポーネントを含む一
    方、その他の複数のセットは、各々が複数の代替デバイ
    ス依存型コンポーネントを含むことを特徴とする請求項
    9に記載のシステム。
  11. 【請求項11】 前記第2のエージェントは、1以上の
    第3のデバイスから前記ターゲットデバイスに前記アプ
    リケーションをロードすることを特徴とする請求項8に
    記載のシステム。
  12. 【請求項12】 前記1以上の第3のデバイスは、前記
    ソースデバイスを含むことを特徴とする請求項11に記
    載のシステム。
  13. 【請求項13】 2以上のターゲットデバイスがあり、
    前記第2のエージェントは、前記アプリケーションを、
    前記2以上のターゲットデバイスに分配してロードする
    ことを特徴とする請求項8に記載のシステム。
  14. 【請求項14】 互いにアプリケーションのマイグレー
    ションが行われる複数の異種デバイスから成るコンピュ
    ータネットワークであって、 (a)マイグレーションするアプリケーションが実行さ
    れるソースデバイスと、 (b)前記アプリケーションがマイグレーションする先
    となるターゲットデバイスとを具備し、 前記ソースデバイスは、前記ターゲット機器に前記アプ
    リケーションをポーティングするために、前記ターゲッ
    トデバイスのハードウェア構成を参照して、前記アプリ
    ケーションを検査し、前記ソースデバイスにおけるアプ
    リケーションの実行状態を取得し、 前記ターゲットデバイスは、前記アプリケーションの取
    得された前記実行状態を使って、ポーティングされた前
    記アプリケーションをロードして自デバイスにおいてイ
    ンスタンス化することを特徴とするコンピュータネット
    ワーク。
  15. 【請求項15】 アプリケーションは1以上のコンポー
    ネントの複数のセットから成り、前記ターゲットデバイ
    スに最も適する少なくともひとつのコンポーネントを各
    セットから選択することにより前記アプリケーションが
    前記ターゲットデバイスにポーティングされることを特
    徴とする請求項14に記載のコンピュータネットワー
    ク。
  16. 【請求項16】 前記複数のセットのいくつかは、各々
    がひとつのデバイス非依存型コンポーネントを含む一
    方、その他の複数のセットは、各々が複数の代替デバイ
    ス依存型コンポーネントを含むことを特徴とする請求項
    15に記載のコンピュータネットワーク。
  17. 【請求項17】 前記ターゲットデバイスは、1以上の
    第3のデバイスから前記アプリケーションをロードする
    ことを特徴とする請求項14に記載のコンピュータネッ
    トワーク。
  18. 【請求項18】 前記1以上の第3のデバイスは、前記
    ソースデバイスを含むことを特徴とする請求項17に記
    載のコンピュータネットワーク。
  19. 【請求項19】 2以上のターゲットデバイスがあり、
    前記アプリケーションは、前記2以上のターゲットデバ
    イスに分配されてロードされることを特徴とする請求項
    14に記載のコンピュータネットワーク。
JP2001381662A 2000-12-15 2001-12-14 異種デバイス間におけるアプリケーションのマイグレーション方法およびシステム Pending JP2002236592A (ja)

Applications Claiming Priority (2)

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

Related Child Applications (1)

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

Publications (1)

Publication Number Publication Date
JP2002236592A true JP2002236592A (ja) 2002-08-23

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 After (1)

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

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
JP2007511018A (ja) * 2003-11-12 2007-04-26 株式会社エヌ・ティ・ティ・ドコモ ソフトウェアをコンポーズする方法及び装置
JP2007226719A (ja) * 2006-02-27 2007-09-06 Hewlett-Packard Development Co Lp クライアントサーバシステム、アプリケーション実行方法およびプログラム
JP2008507755A (ja) * 2004-07-23 2008-03-13 株式会社エヌ・ティ・ティ・ドコモ インデックスベースのパラメータアクセス及びこれを使用するためのソフトウェア
US9383978B2 (en) 2010-03-19 2016-07-05 Samsung Electronics Co., Ltd. Apparatus and method for on-demand optimization of applications
JP2016521878A (ja) * 2013-06-03 2016-07-25 マイクロソフト テクノロジー ライセンシング,エルエルシー デバイス間にわたるタスクの継続

Families Citing this family (138)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7765542B2 (en) * 2000-01-23 2010-07-27 Symantec Corporation Method and system for describing and extracting application information
US6724720B1 (en) 2000-05-01 2004-04-20 Palmone, Inc. Swapping a nonoperational networked electronic system for an operational networked electronic system
US7391718B2 (en) * 2004-03-09 2008-06-24 Palm, 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
CN1669020A (zh) * 2002-02-15 2005-09-14 特里迪姆公司 用于实时系统控制的组件模型
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
US7383061B1 (en) 2003-04-02 2008-06-03 Palm, Inc. Peripheral device for a wireless communication device
US7623892B2 (en) * 2003-04-02 2009-11-24 Palm, Inc. System and method for enabling a person to switch use of computing devices
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
US20050108690A1 (en) * 2003-11-17 2005-05-19 Tira Wireless Inc. System and method of generating applications for mobile devices
CA2548334A1 (en) * 2003-12-15 2005-07-28 Evolveware Information Technology (India) Pvt. Ltd. An apparatus for migration and conversion of software code from any source platform to any target platform
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
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
US20050172235A1 (en) * 2004-02-02 2005-08-04 International Business Machines Corporation System and method for excluded elements mapping in a user interface
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
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
EP2017729B1 (en) * 2005-08-23 2018-08-08 BlackBerry 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
US7865583B2 (en) * 2006-03-31 2011-01-04 The Invention Science Fund I, Llc Aggregating network activity using software provenance data
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
US8335703B1 (en) 2006-10-20 2012-12-18 Desktone, Inc. Virtual computing services deployment network
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
US7715444B2 (en) 2007-02-02 2010-05-11 Palm, Inc Resuming a previously interrupted peer-to-peer synchronization operation
US7738503B2 (en) 2007-02-02 2010-06-15 Palm, Inc. Multi-way, peer-to-peer synchronization
US20120011509A1 (en) * 2007-02-15 2012-01-12 Syed Mohammad Amir Husain Migrating Session State of a Machine Without Using Memory Images
US9009728B2 (en) 2007-03-06 2015-04-14 Addthis, Inc. Method and apparatus for widget and widget-container distribution control based on content rules
US20080222232A1 (en) * 2007-03-06 2008-09-11 Allen Stewart O Method and Apparatus for Widget and Widget-Container Platform Adaptation and Distribution
US8266274B2 (en) 2007-03-06 2012-09-11 Clearspring Technologies, Inc. Method and apparatus for data processing
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
JP5351596B2 (ja) * 2009-04-20 2013-11-27 日本電信電話株式会社 通信システムおよびソフトウェアモジュール配布方法
US9778953B2 (en) * 2009-06-16 2017-10-03 International Business Machines Corporation Process and system for comprehensive IT discovery without credentials
US8438256B2 (en) 2009-06-26 2013-05-07 Vmware, Inc. Migrating functionality in virtualized mobile devices
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
US20110138382A1 (en) * 2009-12-03 2011-06-09 Recursion Software, Inc. System and method for loading resources into a virtual machine
US20110138381A1 (en) * 2009-12-03 2011-06-09 Recursion Software, Inc. System and method for requesting resources into a virtual machine using connection information
US8984503B2 (en) 2009-12-31 2015-03-17 International Business Machines Corporation Porting virtual images between platforms
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
US8495352B2 (en) 2010-12-08 2013-07-23 International Business Machines Corporation System and method for instantiation of distributed applications from disk snapshots
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
US9319456B2 (en) * 2011-03-29 2016-04-19 Empire Technology Development Llc “Go home” feature for roaming applications
US10630795B2 (en) 2011-03-31 2020-04-21 Oath 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
CN103582873B (zh) 2011-06-05 2017-07-14 苹果公司 用于显示从多个应用接收到的通知的系统和方法
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 삼성전자주식회사 모바일 환경에서의 소프트웨어 마이그레이션 장치 및 방법
RU2600106C2 (ru) 2011-12-28 2016-10-20 Нокиа Текнолоджиз Ой Переключатель приложений
US9983771B2 (en) 2011-12-28 2018-05-29 Nokia Technologies Oy Provision of an open instance of an application
US8996729B2 (en) 2012-04-12 2015-03-31 Nokia Corporation Method and apparatus for synchronizing tasks performed by multiple devices
WO2013097898A1 (en) * 2011-12-28 2013-07-04 Nokia Corporation Synchronising the transient state of content in a counterpart application
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
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 삼성전자주식회사 애플리케이션 패키지를 생성하는 장치 및 방법
EP4365725A2 (en) 2014-05-30 2024-05-08 Apple Inc. Continuity
US9967401B2 (en) 2014-05-30 2018-05-08 Apple Inc. User interface for phone call routing among 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 北京奇虎科技有限公司 针对应用进行虚拟输入控制的方法、装置及系统
RU2707718C1 (ru) 2016-02-04 2019-11-28 Телефонактиеболагет Л М Эрикссон (Пабл) Миграция актора
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 青岛海信移动通信技术股份有限公司 将第二终端的数据迁移到第一终端的方法及装置
US11431836B2 (en) 2017-05-02 2022-08-30 Apple Inc. Methods and interfaces for initiating media playback
US10992795B2 (en) 2017-05-16 2021-04-27 Apple Inc. Methods and interfaces for home media control
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
US10831478B2 (en) 2018-11-06 2020-11-10 International Business Machines Corporation Sort and merge instruction for a general-purpose processor
US10831503B2 (en) 2018-11-06 2020-11-10 International Business Machines Corporation Saving and restoring machine state between multiple executions of an instruction
US10831502B2 (en) 2018-11-06 2020-11-10 International Business Machines Corporation Migration of partially completed instructions
US11010121B2 (en) 2019-05-31 2021-05-18 Apple Inc. User interfaces for audio media control
EP4231124A1 (en) 2019-05-31 2023-08-23 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
US11907605B2 (en) 2021-05-15 2024-02-20 Apple Inc. Shared-content session user interfaces
US11449188B1 (en) 2021-05-15 2022-09-20 Apple Inc. Shared-content session user interfaces
US11847378B2 (en) 2021-06-06 2023-12-19 Apple Inc. User interfaces for audio routing
KR102328173B1 (ko) * 2021-07-05 2021-11-17 (주)다윈아이씨티 애플리케이션 마이그레이션 처리 방법, 장치 및 시스템

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
JPH11514119A (ja) * 1996-07-09 1999-11-30 シーメンス ニクスドルフ インフオルマチオーンスジステーメ アクチエンゲゼルシヤフト 転送可能および転送不可能なプログラム部分を有するプログラムを移送するための方法
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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007511018A (ja) * 2003-11-12 2007-04-26 株式会社エヌ・ティ・ティ・ドコモ ソフトウェアをコンポーズする方法及び装置
JP2008507755A (ja) * 2004-07-23 2008-03-13 株式会社エヌ・ティ・ティ・ドコモ インデックスベースのパラメータアクセス及びこれを使用するためのソフトウェア
JP2007226719A (ja) * 2006-02-27 2007-09-06 Hewlett-Packard Development Co Lp クライアントサーバシステム、アプリケーション実行方法およびプログラム
US9383978B2 (en) 2010-03-19 2016-07-05 Samsung Electronics Co., Ltd. Apparatus and method for on-demand optimization of applications
JP2016521878A (ja) * 2013-06-03 2016-07-25 マイクロソフト テクノロジー ライセンシング,エルエルシー デバイス間にわたるタスクの継続

Also Published As

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

Similar Documents

Publication Publication Date Title
JP2002236592A (ja) 異種デバイス間におけるアプリケーションのマイグレーション方法およびシステム
US8095939B2 (en) Managing application interactions using distributed modality components
CN108139935B (zh) 业务定义容器的资源约束的扩展
CN110187912B (zh) 一种节点选择方法和装置
KR100861738B1 (ko) 이동가능한 오브젝트를 가진 그리드 인에이블 가상 머신용방법 및 시스템
US20030014510A1 (en) Distributed processing framework system
JP2000514944A (ja) オブジェクト指向プログラミング言語のためのハードウェア加速器
US20080209048A1 (en) Loading A Mirror Driver In Remote Terminal Server Session
RU2580079C2 (ru) Инфраструктура активации приложений
JP2002101120A (ja) 通信方法および情報処理装置
JP2001516921A (ja) 動的オブジェクト・リンク・インターフェイス
Satoh Software testing for wireless mobile computing
EP4318236A1 (en) Management method and system for computing node
CN106302125A (zh) 一种对请求信息进行响应的方法、装置及系统
EP1557756A2 (en) Deterministic rule-based dispatch of objects to code for processing objects
Bouraqadi-Saâdani et al. A reflective infrastructure for coarse-grained strong mobility and its tool-based implementation
Satoh Dynamic federation of partitioned applications in ubiquitous computing environments
Nakajima org/publications/library/proceedings/coots98/fullipapers
US20110016177A1 (en) Thin client system and thin client system controlling method
JP4020359B2 (ja) モバイル・エミュレータ・システム
Chu et al. ROAM (Resource-aware application migration) system
CN113835846B (zh) k8s集群的创建方法、装置及计算机可读存储介质
MacCormac et al. Implementation of a Systemto Support Mobile Computing Sessions
CN116225472A (zh) 应用安装方法、装置、电子设备及介质
Bajwa et al. Persistent architecture for context aware lightweight multi-agent system

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040706

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20041006

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20041014

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041221

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20041221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050208

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050428

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050516

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050808

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050830

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20051031

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20051107

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20051130

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20051130

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060131

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060201

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060418