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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/482—Application
Abstract
マイクグレーションを可能にすること。 【解決手段】 本発明は、異種デバイス間におけるアプ
リケーションのマイグレーションを実行するための方法
およびシステムを提供する。アプリケーションは、1以
上のコンポーネントの複数セットから成る。ソースデバ
イスにおいて実行されるアプリケーションおよびターゲ
ットデバイスのハードウェア構成が検査されて、ターゲ
ットデバイスにおける実行に最も適したコンポーネント
を、各セットから少なくともひとつ選択することによ
り、アプリケーションをターゲットデバイスにポーティ
ングする。ソースデバイスにあるアプリケーションの実
行状態が取得され、ターゲットデバイスに送られる。タ
ーゲットデバイスは、アプリケーションの取得状態を使
って、ポーティングされたアプリケーションをロード
し、インスタンス化する。
Description
間、または異なるハードウェア構成のデバイス間でアプ
リケーションをマイグレーションする方法およびシステ
ムに関する。
スにおいて実行中のアプリケーションがタスクを中断し
て別のデバイスにマイグレーションし、マイグレーショ
ン先のデバイスにおいてタスクを再開する際には最初の
デバイスにおいて中止した時点で実行していたタスクを
実行する処理のことをいう。この点でマイグレーション
は、アプリケーションがひとつのデバイスから他のデバ
イスに移動し、移動先のデバイスにおいては最初のデバ
イスにおけるアプリケーションの状態に関係なく振り出
しからタスクが実行される遠隔実行処理とは異なる。
ュータデバイスの進化の主たる駆動力であると言えるか
もしれない。デスクトップ型のコンピュータは、ノート
ブック型のコンピュータに進化した。PDA(Personal
Digital Assistant)やインテリジェント・ページャ
は、最近この進化ツリーの仲間入りをした新種である。
今や、これらのコンピュータデバイスは、有線または無
線LAN、セルラ網、Bluetooth(登録商
標)、そしてPAN(Personal Area Network:パーソ
ナル・エリア・ネットワーク)など、様々な通信ネット
ワークを介したデータ通信により互いに交信することが
可能になった。
活に著しい影響を及ぼし、我々のビジネスや作業環境の
変化をもたらしてきた。以前は、PCは机に固定され移
動できなかったため、必要なソフトウェアを備えたPC
が設置してある場所でのみ作業をしたりデータを処理す
ることができた。しかし近年では、移動可能であり、十
分な機能を備えたコンピュータデバイス、例えば、ノー
トブック型コンピュータ、PDA、セルラ電話などを簡
単に利用することができる。これら移動デバイスのユー
ザは、デバイスの可動性を最大限に利用したいという欲
求を持っている場合が多い。ユーザが遠隔地にいるとき
や移動中に、モバイルコンピュータを用いて仕事を続け
られたら、どんなに効率よく、また成果を上げることが
できるだろうか。例えば、携帯電話かPDAのユーザ
が、オフィスのデスクトップ型のコンピュータを使って
オンラインでビジネス旅行の計画をしていて、離れた場
所でのミーティングに呼ばれて作業を中断しなければな
らないと仮定しよう。こんな場合、ユーザは、ミーティ
ング場所への移動中の電車やバスの中や、ミーティング
の合間に、携帯電話やPDAを使ってビジネス旅行の計
画を続けたいと思うかもしれない。
ーションのマイグレーションという概念が開発された。
つまり、この概念では、アプリケーションは、あるコン
ピュータデバイス(ソースデバイス)から別のコンピュ
ータデバイス(ターゲットデバイス)にそのままの状態
でマイグレーションする。マイグレーションは、アプ
リケーションの画一性、アプリケーションの実行の継
続性という二つの技術的課題を提起している。
ハードウェア構成の違いに起因している。確かに、コン
ピュータデバイスは、コンピュータ処理能力、メモリ容
量、画面の大きさ、データ入力手段など、あらゆる面で
多様である。このため、ハードウェア構成に応じた個別
のアプリケーションがコンピュータデバイスごとにロー
ドされているのが常であり、それでいて同じ処理を実行
している。例えば、デスクトップ型のPCでは、「マイ
クロソフト(登録商標)Outlook(登録商
標)」、パーム型のPDAでは、「メール」、スプリン
トPCS社のセル電話では、「PCSメール」を使って
いるとする。これらはすべて、異なるアプリケーション
であるにも拘らず、同じ電子メール機能を実行する。電
子メールの送信や受信だけのためにこれら異なるアプリ
ケーションすべての使い方を学ぶ必要が本当にあるのか
とユーザは疑問に思うかもしれないが、マイグレーショ
ンの概念の下では、ソースデバイスにおいてもターゲッ
トデバイスにおいても同じアプリケーションが実行され
る。このように、マイグレーションにより、ユーザが異
なるアプリケーションを学ぶ時間が不要になるだけでな
く、ソフトウェア開発者が異なるアプリケーションを開
発する時間までもが不要になるのである。
ターゲットデバイスに再記録されたアプリケーション
は、ソースデバイスに存在していたアプリケーションの
状態を復旧するまでは、事実上タスクを再開することが
できない。ここで、アプリケーションの状態とは、実行
状態とデータの状態の両方を含む。アプリケーションの
状態は、アプリケーションがソースデバイスからマイグ
レーションする前に保存しておき、ターゲットデバイス
に再記録された後に保存したアプリケーションを復旧す
るというような操作を行うことで、面倒ではあるが、手
動で復旧することができる。しかし、マイグレーション
処理では、アプリケーションがソースデバイスからマイ
グレーションする際には、アプリケーションの状態を伴
ってマイグレーションし、ターゲットデバイスにおいて
その状態のままリスタートする。このように、アプリケ
ーションは、ターゲットデバイスに到達してすぐタスク
を再開できる状態になっている。
現するために、様々な研究が報告されている。意義深い
ことに、これらの研究の多くは、Java(登録商標)
ベースのソフトウェアアーキテクチャを採用している。
Javaはプログラミング言語であり、プログラムが実
行されるデバイスのハードウェア構成とは関係がない。
さらに具体的には、Javaプログラムは、ハイレベル
であり、かつ機械に依存しないバイトコードにコンパイ
ルされる。また、このバイトコードはJava仮想マシ
ンと呼ばれる仮想インタプリタが翻訳することにより実
行される。また、このJavaプログラムは機械に依存
していないため、異なるハードウェアプラットフォーム
で実行することができ、アプリケーションにポーティン
グ処理を施す必要がない。この特性は、Javaが「一
度書けば、どこでも実行できる」と評される所以であ
る。
は、機械に依存しないという特性を持っているため、異
種デバイス間、つまり異なるハードウェア構成のデバイ
ス間でのアプリケーションのマイグレーションに有用か
つ有利であることは言うまでもない。実際、過去の研究
では、Javaベースのソフトウェアアーキテクチャに
よるアプリケーションのマイグレーションが、少なくと
も限られた環境においては成功するということが証明さ
れている。しかし、これら先行研究の問題点は、アプリ
ケーションのマイグレーションを実行するためには、選
択されたソースデバイスとターゲットデバイスが同程度
でかつ十分に機能性の高いものであることが必要だとい
うことである。言い換えれば、先行研究におけるアプリ
ケーションのマイグレーションは真の意味での異種環境
間で実際に達成されたものではない。
性の高いデバイスからPDAのような機能が少ないデバ
イスにアプリケーションをマイグレーションする場合に
困難が生じる。デスクトップ型PCに比べ、PDAは、
処理速度、メモリ容量、永久記憶装置の可用性、ネット
ワーク通信能力の信頼度などのハードウェア資源に限界
がある。ここで課題となるのは、アプリケーションを実
行するにはPCレベルのリソースが必要であってPDA
での実行には適さない場合でさえ、デスクトップ型PC
からPDAに対するアプリケーションのマイグレーショ
ンが可能かどうかである。先行研究で、この課題に取り
組んだ例は見られない。
め、本発明は、真の意味で異種のコンピュータデバイス
間でアプリケーションのマイグレーションを実現する方
法およびシステムを提供する。この目的を達成するた
め、本発明では、適応的にマイグレーションするアプリ
ケーションが、マイグレーションの処理中に自らを再構
成し、ターゲットのコンピュータデバイスへのアプリケ
ーションの適合化やポーティングを行う。
である。本発明では、アプリケーションは複数のスタン
ドアロンのソフトウェアコンポーネントから成る。これ
らコンポーネントは、デバイス非依存型(DI:Device
Independent)とデバイス依存型(DD:Device Dep
endent)に分類される。DIコンポーネントは、異なる
ハードウェアプラットフォームで実行することができ
る。一方、DDコンポーネントを実行するには、特定の
ハードウェア構成が必要となる。したがって、DDグル
ープは、異なるハードウェアプラットフォーム上で実行
できるように設計された複数セットの代替コンポーネン
トで形成されている。このように、アプリケーションが
実行されるデバイスにおいてアプリケーションを実行す
るのに適したDDコンポーネントが上記複数セットから
選ばれ、DIコンポーネントと共にアプリケーションを
構成するのである。
ず、ソースデバイスにおいて実行中の、マイグレーショ
ン前のアプリケーションを検査することにより始まる。
このアプリケ−ションの検査では、現在実行中のアプリ
ケーションのDDコンポーネントは何かということ、ま
た代替DDコンポーネントがあるかどうか判定される。
ターゲットデバイスのハードウェア構成に関する検査も
行われ、ターゲットデバイスに適合するDDコンポーネ
ントを選択することにより、アプリケーションをターゲ
ットデバイスに提供する。そして、選択されたDDコン
ポーネントは、DIコンポーネントとともにターゲット
デバイスにロードされる。同時に、ソースデバイス側で
のアプリケーションの実行状態が取得され、ターゲット
デバイスに転送される。アプリケーションの、取得され
た実行状態を使い、ターゲットデバイス上でアプリケー
ションがインスタンス化されると、マイグレーション処
理は終了する。
ては、アプリケーションの機能は1以上のターゲットデ
バイスに分配されてもよい。DIコンポーネントは機能
コンポーネントなので、異なるプラットフォームで実行
することができる。しかし、マイグレーション前のアプ
リケーションのDIコンポーネントが、ターゲットデバ
イスの能力を超えたコンピュータ処理能力を必要とする
タスクを実行する場合もあるかもしれない。本発明で
は、そのようなタスクは、十分なコンピュータ処理能力
がある第3のデバイスに割り当てられる。このように、
このDIコンポーネントは第3のデバイスにマイグレー
ションし、他のコンポーネントはターゲットデバイスに
マイグレーションする。これ以後、ターゲットデバイス
と第3のデバイスは、互いに通信しながら協力してアプ
リケーションを実行する。
において実行中のアプリケーションとターゲットデバイ
スのハードウェア構成が検査され、アプリケーションを
ターゲットデバイスにポーティングする。そして、ポー
ティングされたアプリケーションは、ターゲットデバイ
スにロードされる。同時に、ソースデバイス側でのアプ
リケーションの実行状態が取得され、ターゲットデバイ
スに転送される。ターゲットデバイスは、取得したアプ
リケーションの実行状態を使い、アプリケーションをイ
ンスタンス化する。アプリケーションは1以上のコンポ
ーネントを含む複数のセットから成り、ターゲットデバ
イスに最も適合するコンポーネントを少なくともひと
つ、各セットから選択することにより、アプリケーショ
ンがターゲットデバイスにポーティングされる。
イスからターゲットデバイスにロードされ、この第3の
デバイスはソースデバイスを含んでも良い。また、1以
上のターゲットデバイスがあってもよく、アプリケーシ
ョンは1以上のターゲットデバイスに分配されてロード
される。
実行方法について詳しく説明する。以下に説明する本発
明の好ましい形態では、Javaベースのソフトウェア
システムを使用している。しかしながら、Javaベー
スのソフトウェアシステムは本発明を実行する唯一の手
段ではないことは容易に理解されるべきであり、他の種
類のソフトウェアシステムの下で本発明を実行してもよ
い。
特に本発明を実行するために設計されたローム(Roa
m:ResOurce-aware Application Migration:リソース
認識アプリケーション・マイグレーション)システム上
で実行される。図1は、ロームシステムのアーキテクチ
ャを例示するブロック図である。図1に示すように、ロ
ームシステムは、Java仮想マシーン(JVM)、P
ersonalJava仮想マシーン(PJVM)、ま
たはその他の種類の仮想マシーン(VM)の上に構築さ
れ、デバイス固有のオペレーティングシステムの最上位
で実行される。VMは、抽象化コンピュータデバイスの
ように動作する。つまり、受け取ったバイトコードを、
固有のオペレーティングシステムが実行できる形に変換
することにより動的に翻訳する。
ログラムやメールプログラムなど、ユーザと直接インタ
ーフェースをとるプログラムである。これは、Java
で記述され、JVMP、JVM、または他の種類のVM
により実行される。本発明において、ロームレットは、
ロームシステムの制御下でソースデバイスからターゲッ
トデバイスへマイグレーションする。ロームシステムに
は、ロームレットのマイグレーションの実行時環境を提
供するロームエージェントが備えられている。ロームエ
ージェントは、マイグレーションの実行において重要な
役割を果たすので、マイグレーションが実行される際に
は必ずソースデバイスとターゲットデバイスの双方に備
える必要がある。ロームシステムとロームレットの間に
は、複数のロームレットAPI(Application Program
Interface:アプリケーション・プログラム・インタ
ーフェース)が一式備えられ、ロームエージェントから
の指示を受け取って、ロームレットのマイグレーション
の実際の動作を実行する。
ーション動作を示すブロック図である。図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のバイトコードをダウンロードすることがで
きるようにする。
と、ロームエージェント5は、HTTPサーバ6にアク
セスして、そこからロームレット1のバイトコードをダ
ウンロードする。ステップ3において、ロームレット1
の状態が、ロームエージェント4により取得され、ロー
ムエージェント5に送られる。ステップ4において、ロ
ームエージェント5は、取得したロームレット1のソー
スデバイス2における状態を復旧することにより、ロー
ムレット1をインスタンス化する。ロームレット1のマ
イグレーションは、ソースデバイス2においてロームレ
ット1を閉じることにより終了する。この段階で、ロー
ムレット1はターゲットデバイス上にあり、ソースデバ
イス2において停止されていたタスクを再開できる状態
になっている。
したがって、ソースデバイスのロームエージェントは、
マイグレーションを実行する前にターゲットデバイスの
ハードウェア構成を把握する必要があり、それにより特
定のロームレットが全体として又は部分的にでもターゲ
ットデバイスにおいて実行可能かどうかが判定可能とな
る。Javaランタイムシステムには実行側デバイスの
ハードウェア構成を示す情報が含まれているので、ロー
ムシステムを構築する際にJavaを使用すると便利で
ある。現在、Javaランタイムシステムには、異なる
コンピュータデバイスに合わせた実行時環境を提供する
ものが複数種類ある。表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月)で
議論されており、本願明細書において参照として援用さ
れる。
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で参照可能であり、本願明細書において参照と
して援用される。
ムシステムを参照して、VM、コンフィギュレーショ
ン、およびプロファイルの種類を調べることにより、デ
バイスのハードウェア構成をかなり正確に特定すること
が可能である。しかしながら、Javaランタイムシス
テムはデバイスのハードウェア構成を特定する唯一の情
報源ではなく、当業者にとってこの目的のために利用可
能な他の情報源の存在を理解することは容易であると解
されるべきであろう。例えば、ロームエージェントは、
デバイス上で作成された特別なデバイス機能ファイルか
ら、このデバイスのハードウェア構成に関する詳細かつ
正確な情報を取得することができる。デバイスにおいて
実行されている、ベースとなる固有のオペレーティング
システムに問合せをすれば、ハードウェア情報はこのデ
バイス機能ファイルから取得できる。
グ ロームレットは、分散した複数のソフトウェアコンポー
ネントで構成されている。各コンポーネントには、コン
ポーネントの割り当てられたタスクを行うために実行可
能な1以上のオブジェクトが入っている。ロームレット
の複数のコンポーネントは相互接続されていて、全体と
してロームレットの目的を遂行する。これらのコンポー
ネントは、デバイス依存型(DD)グループとデバイス
非依存型(DI)グループに分類されている。DDコン
ポーネントはソフトウェアコンポーネントで、その実行
には特定のハードウェア構成が必要である。本発明で
は、ハードウェアプラットフォームの種類ごとに、ひと
つのインプリメンテーション、つまりひとつのDDコン
ポーネントが提供される。DDコンポーネントの例とし
ては、GUI(Graphical User Interface:グラフィ
カル・ユーザ・インタフェース)コンポーネントがあ
り、このコンポーネントでは、コンポ−ネットが実行さ
れる入力ハードウェアや表示ハードウェアの種類によっ
て異なるGUIライブラリが必要である。GUIを含む
必要があるロームレットには、ロームレットが異なるプ
ラットフォームで実行できるようにコンポーネントが準
備される。これらのGUIコンポーネントは、PC用の
GUIコンポーネント、PDA用のGUIコンポーネン
ト、およびその他のプラットフォーム用のGUIコンポ
ーネントを含む。ロームレットがターゲットデバイスに
マイグレーションするとき、ターゲットデバイスのハー
ドウェア構成に最も適したGUIコンポーネントが選択
され、ターゲットデバイスにおいてインスタンス化され
る。
ーネントである。本発明では、複数のハードウェアプラ
ットフォームに対して、ひとつのインプリメンテーショ
ン、つまりひとつのDIコンポーネントが提供される。
DIコンポーネントは機能的な特徴を持っているので、
異なるハードウェアプラットフォームで実行されるもの
とみなされている。しかし、DIコンポーネントの中に
は、例えば、高いコンピュータ処理能力のような特定の
ハードウェア能力を必要とするものもあることがわかっ
ている。ロームレットのDIコンポーネントが必要とす
るハードウェア能力が不足しているターゲットデバイス
に、ロームレットがマイグレーションする場合、そのD
Iコンポーネントはロームレットからオフロードされ、
第3のデバイスにマイグレーションする。これについて
は、後に詳述する。
Iコンポーネントが1セット準備され、ロームレットが
異なるハードウェアプラットフォームで動作できるよう
にDDコンポーネントが複数セット準備される。尚、ひ
とつのロームレットに対してDDコンポーネントが複数
セット準備されるが、あるデバイスにおいて実際実行さ
れているロームレットにおいては、そのデバイスのハー
ドウェア構成に最も適したDDコンポーネントが1セッ
トのみインスタンス化されることに留意してほしい。後
続のセクションで詳しく説明するが、ターゲットデバイ
スのハードウェア構成に最も適したDDコンポーネント
を1セット選択するには、ソースデバイスのロームエー
ジェントは、マイグレーションするロームレット用に備
えられたDDコンポーネントのセットすべてを検査し、
各セットが必要とするハードウェア構成とターゲットデ
バイスのハードウエア構成を比較する。
ネントはJavaでプログラムされ、バイトコードにコ
ンパイルされた後、上述したHTTPサーバ6のような
サーバに格納される。これらのコンポーネントは、ター
ゲットデバイスのハードウェア構成に従ってサーバから
ターゲットデバイスに選択的にダウンロードされる。し
かしながら、ソースデバイスが十分大きなメモリを持っ
ている場合、DIコンポーネントおよびDDコンポーネ
ントのセットすべてを、使用中か否かにかかわらずソー
スデバイスに保存してもよいことに留意してほしい。
明する。図3では、ソースデバイス10はPCで、ター
ゲットデバイス11はPDAである。PC10とPDA
11は、通信ネットワーク12を介して互いに接続さ
れ、通信ネットワーク上の一意のIPアドレス(Intern
et Protocol address:インターネット・プロトコル・
アドレス)で特定される。ロームレット13は、現在P
C10において実行されていて、PDA11にマイグレ
ーションするところである。マイグレーションが指示さ
れると、PC10に存在するロームエージェント14
は、PDA11に存在するロームエージェント15とネ
ゴシエーションを開始する。
ごとに示したフローチャートである。ステップ10にお
いて、ロームエージェント14はロームレット13とP
C10において実行されているコンポーネントを検査す
る。ロームレット13を検査する際、ロームエージェン
ト14は、現在PC10において実行されているローム
レット13のDDコンポーネントとDIコンポーネント
を特定するととともに、異なるハードウェアプラットフ
ォームにおいてロームレット13を実行するのに利用で
きる代替DDコンポーネントを特定する。ここでは、ロ
ームレット13がPC上でのみ実行できるGUIコンポ
ーネント16を含んでおり、かつ、ロームレット13を
PDAにおいて実行するためのPDA用の代替GUIコ
ンポーネント17が利用可能であるとロームエージェン
ト14が特定したと仮定する。
ト14はPDA11のロームエージェント15に連絡
し、PDA11のハードウェア構成に関する情報を要求
する。ロームエージェント14からの要求に応じて、ロ
ームエージェント15はPDA11において実行されて
いるJavaランタイムシステムを検査する(ステップ
12)。自分のランタイムシステムに含まれているV
M、コンフィギュレーション、そしてプロファイルの種
類に基いて、ロームエージェント15はPDA11のハ
ードウェア設定、例えば、コンピュータ処理能力、スク
リーンサイズやメモリサイズなどを判定する。そしてロ
ームエージェント15は、PDA11のハードウェア構
成に関する情報をロームエージェント14に送り返す
(ステップ13)。尚、PDA11のハードウェア構成
に関してさらに詳細または正確な情報を取得する必要が
ある場合は、ロームエージェント15はPDA11のベ
ースとなる固有のオペレーティングシステムに格納され
ているデバイス機能ファイルを参照してもよいことに留
意してほしい。
ト14は、ロームエージェント15からのPDA11の
ハードウェア構成に関する情報に基いて、どのコンポー
ネントがPDA11に対してのマイグレーションが可能
でどのコンポーネントが可能でないかを判定する。ロー
ムレット13のDIコンポーネントはすべて、PDA1
1のハードウェア構成に拘らずマイグレーション可能で
ある。DDコンポーネントに関しても、いくつかはPD
A11にマイグレーション可能な場合もあるが、PC1
0とPDA11間のハードウェアの違いが原因でマイグ
レーションできないDDコンポーネントについては、ロ
ームエージェント14はPDA11において実行可能な
代替コンポーネントを検索する。
ト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を送信する。
ト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)。
シリアル化を使って、ロームレット13の実行状態の取
得および復旧が実行される。Javaオブジェクトシリ
アル化は、Javaプログラムの実行状態を取得し復旧
する有用な方法を提供する。図3に示す形態では、ロー
ムエージェント14がPC10においてJavaオブジ
ェクトシリアル化を呼び出し、ロームレット13にある
すべてのJavaオブジェクトの実行状態をシリアル化
する。ロームエージェント15もPDA11にJava
シリアル化を呼び出し、シリアル化された実行状態をP
DA11においてロームレット13’に非シリアル化す
る。このJavaオブジェクトシリアル化によってシリ
アル化可能な実行状態は、ロームレット13にある各オ
ブジェクトのすべての変数の値を含む。このJavaオ
ブジェクトシリアル化を使うことにより、ロームレット
13の実行状態の大部分をPC10において取得するこ
とができ、PDA11において復旧することができる。
ル化に適さない実行状態が2種類ある。ひとつは、ロー
ムシステム特有の実行状態である。即ち、代替DDコン
ポーネントと置換されるDDコンポーネントの実行状態
は、代替DDコンポーネントにおいては復旧できない。
DDコンポーネントとその代替コンポーネントは、異な
るオブジェクトから成ることが多いので、DDコンポー
ネントの実行状態は、その代替コンポーネントにとって
は無意味となる。従って、変換処理を施して、DDコン
ポーネントとその代替コンポーネント間で実行状態を維
持する必要がある。例えば、図3に戻り、PCのGUI
コンポーネント16がチェックボタンを使ってユーザイ
ンターフェースを実行する一方、PCのGUIコンポー
ネント17は選択ボタンを使ってユーザインターフェー
スを実行していると仮定する。PCのGUIコンポーネ
ント16の実行状態をPCのGUIコンポーネント17
に転送するためには、ロームエージェント14はチェッ
クボタンの値を選択ボタンにマップし、これらの値を選
択ボタンの値に変換する。
いふたつめの実行状態は、ロームレット13を翻訳する
VMの実行状態である。Javaオブジェクトシリアル
化はVM内部にはアクセスすることができない。したが
って、コールスタックなどのVMの実行状態は、シリア
ル化できない。この問題に対処するため、ロームエージ
ェント14は、コールスタックが最小になる特定のポイ
ントでのみマイグレーションを実行可能としてもよい。
これにより、失われる実行状態の量を極力抑えることが
できる。
グレーションを実行する際のロームレットAPIの例で
ある。 ロームレットはすべて、クラスロームレットを拡張しな
ければならない。メソッド"migrate()"は、"hostname"
によって示されるターゲットデバイスにロームレットを
ディスパッチする。メソッド"onInitializaiton()"は、
ロームレットがターゲットデバイスにおいて、最初にイ
ンスタンス化された時に呼び出される。メソッド"onRem
oval()"は、ロームレットのターゲットデバイスへのマ
イグレーションが成功した後、ロームレットがソースデ
バイスから削除される前に呼び出される。メソッド"onA
rrival()"は、ロームレットがターゲットデバイスに到
着した時に呼び出される。メソッド"exit()"は、ローム
レットをソースデバイスから削除する。メソッド"insta
ntiation()"は、ターゲットデバイスにおいてロームレ
ットをインスタンス化する。ターゲットデバイスにおい
てロームレットがインスタンス化された後、分離スレッ
ドがターゲットデバイスにおいて生成され実行される。
これにより、ターゲットデバイス上で複数の仮想マシー
ンを生成して実行するというオーバーベッドが無くな
る。
ポーネント群を維持するためのロームレットAPIの例
である。 メソッド"addDDComponentDescList()"は、デスクリプタ
リスト、即ち、RoamComponentDesc[]を追加する。この
デスクリプタリストは、ハードウェア設定に係る代替D
Dコンポーネントを列挙している。例えば、デスクリプ
タリストには、PCのGUIコンポーネント、PDAの
GUIコンポーネント、携帯電話GUIコンポーネント
などの代替GUIコンポーネントがすべて含まれてい
る。マイグレーションを実行する場合、このデスクリプ
タリストからターゲットデバイスに最も適したコンポー
ネントがひとつ選択される。
のいくつかが、ターゲットデバイスのハードウェア資源
が不十分なために実行できない場合があり得る。そのよ
うな場合、ロームシステムは、ロームレットの機能を複
数のデバイスに分配する。即ち、ロームシステムは、コ
ンポーネントを複数のターゲットデバイスにマイグレー
ションさせる。図5および図6は、このような分配動作
を示すブロック図と、本動作を詳述するフローチャート
である。図5では、図3で使用した符号と同じ符号が、
デバイスとソフトウェアの構成要素に対応して割り当て
られている。
3がソースデバイス10であるPCからターゲットデバ
イス11であるPDAにマイグレーションしようとして
いる。ステップ30において、ロームエージェント14
はロームレット13を検査し、現在PC10において実
行されているロームレット13のDIコンポーネントお
よびDDコンポーネントを特定する。例えば、ロームレ
ット13は、重荷で、使用するメモリの多いコンピュー
タ処理タスクを実行するDIコンポーネント18を含
み、このタスクの実行にはPDA11の能力を超えたコ
ンピュータ処理能力を必要とするため、このコンポーネ
ント18は、DIコンポーネントであるにも拘らず、P
DA11においては実行不可能であると仮定する。ま
た、このDIコンポーネント18はロームレット13の
実行には必要不可欠であるのに、PDAにおいて利用可
能な代替コンポ−ネントは存在しないと仮定する。
4は、PDA11のロームエージェント15に連絡し、
PDA11のハードウェア構成に関する情報を要求す
る。ロームエージェント14からのこの要求に応じ、ロ
ームエージェント15はPDA11において実行されて
いるJavaランタイムシステムを検査し、PDA11
のハードウェア構成を判定する(ステップ32)。ステ
ップ33において、ロームエージェント15は、PDA
11のハードウェア構成に関する情報をロームエージェ
ント14に送り返す。
ト14は、ロームエージェント15からのハードウェア
情報に基いて、ロームレット13のどのコンポーネント
をPDA11に対してマイグレーション可能か、どのコ
ンポーネントがマイグレーション不可能かを判定する。
ロームエージェント14は、PDA11のコンピュータ
処理能力には限度があるため、コンポーネント18をP
DA11にマイグレーションすることはできないと判定
する。ロームエージェント14は、ステップ30におい
て既に、PDA11において利用可能な代替コンポーネ
ントは存在しないと判定している。
ト14は、コンピュータ処理コンポーネント18をロー
ムレット13からオフロードできるかどうかをまず判定
する。コンポーネント18がオフロード可能と判定され
た場合、ロームエージェント14はマイグレーション動
作を続けて実行する。コンポーネント18をロームレッ
ト13からオフロードできない場合、ロームエージェン
ト15はマイグレーション処理を打ち切る。そして、コ
ンポーネント18がオフロード可能の場合、ロームエー
ジェント15は、コンポーネント18を実行可能な第3
のデバイスの検索を開始する。ユーザがこのデバイス検
索に参加して、自分がコンポーネント18をマイグレー
ションしたい特定のデバイスを指定してもよい。ここで
は、ロームエージェント14が、コンポーネント18を
実行するのに十分なコンピュータ処理能力を持つサーバ
19を探し出すのに成功したと仮定する。
ト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においていつでもタス
クを再開できる状態にある。
をPDA11からPC10に対して逆にマイグレーショ
ンすることができる。このような逆分配動作において
は、今度はソースデバイス側となるPDA11のローム
エージェント15が、図4に示す手順を実行し、今度は
ターゲットデバイスとなるPC10にロームレット1
3”を返送する。同様に、ロームエージェント20は、
コンポーネント18をPC10に対して返送する。尚、
PDA11において実行されるコンポーネントのいくつ
かは、PC10にマイグレーションできなくなっている
可能性があることに留意して欲しい。そのようなコンポ
ーネントがある場合は、コンポーネントはPDA11に
とどまることになる。
トAPIの例である。 各ロームレットの構成要素は、クラスRoamComponentを
拡張する。メソッド"addDIComponentDesc()"は、デスク
リプタ、RoamComponentDescをDDコンポーネントの各
々に追加するのに呼び出される。デスクリプタには、D
Dコンポ−ネントの各々のインスタンス化の方法に関す
る情報が含まれている。即ち、DDコンポーネントの各
々について、一意の識別子、インスタンス化されるクラ
ス名(classname)、コンポーネントを実行するのに必
要なデバイス能力(reqDeviceCapability)、コンポー
ネントがオフロード可能か否か(offloadable)、コン
ポーネントが逆分配可能か否か(reverseApportion)、
そしてコンストラクタのパラメータ(iniArgs)に関す
る情報が含まれている。メソッド"getComponent(id)"
は、コンポーネントがターゲットデバイスにおいてイン
スタンス化された後に、これらコンポーネントの参照を
(IDを使って)検索するのに呼び出される。メソッ
ド"registerServerDevice()"は、コンポーネントがオフ
ロード可能なすべてのデバイスを登録するのに呼び出さ
れる。
い本発明を実行した。ネットワークは、ノートブック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ベースのソフト
ウェアアーキテクチャの殆どのデバイスにおいて実行で
きる。
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ライブラリが必要である。
このルールに従って実行される。つまり、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の画面に表示されるクリックカウントが増分
することが観察された。
ログラムを使用した。図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の両方におい
て実行可能である。
このルールに沿って実行される。つまり、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を使っ
てゲームをプレイすることができることが観察された。
記実施例に種々の修正や変更が可能であることは当業者
に理解されよう。本発明の他の実施形態は、本願明細書
および本願明細書に開示された本発明の実施方法とを検
討することにより、当業者にとって明瞭になろう。ま
た、明細書および実行例は、後続する特許請求の範囲に
示される発明の範囲と精神において、単なる例示を意図
するものである。
異種デバイス間におけるアプリケーションのマイグレー
ションが可能になる。
添付図面は、本発明の実施形態を例示し、発明の詳細な
説明とともに本発明の利点と原理を説明する役目を担
う。
キテクチャを示すブロック図である。
を示すブロック図である。
ン動作を示すブロック図である。
すフローチャートである。
ン動作を示すブロック図である。
すフローチャートである。
タネットワークを示すブロック図である。
示すブロック図である。
使用されるノートブック、PDA、およびPCの表示画
面である。
を示すブロック図である。
るノートブックおよびPDAの表示画面である。
Claims (19)
- 【請求項1】 ソースデバイスにおいて実行されている
アプリケーションをターゲットデバイスにマイグレーシ
ョンさせる方法であって、 (a)前記ソースデバイスにおいて実行されている前記
アプリケーションおよび前記ターゲットデバイスのハー
ドウェア構成を検査して、前記アプリケーションを前記
ターゲットデバイスにポーティングするステップと、 (b)ポーティングされた前記アプリケーションを前記
ターゲットデバイスにロードするステップと、 (c)前記ソースデバイスに存在する前記アプリケーシ
ョンの実行状態を前記ターゲットデバイスに転送するス
テップと、 (d)前記ターゲットデバイスにおいて、前記ソースデ
バイスから転送された実行状態を使って、ポーティング
された前記アプリケーションをインスタンス化するステ
ップとを具備することを特徴とする方法。 - 【請求項2】 前記ステップ(c)が前記ステップ
(b)の前に実行されることを特徴とする請求項1に記
載の方法。 - 【請求項3】 アプリケーションは1以上のコンポーネ
ントの複数のセットから成り、前記ターゲットデバイス
に最も適する少なくともひとつのコンポーネントを各セ
ットから選択することにより前記アプリケーションが前
記ターゲットデバイスにポーティングされることを特徴
とする請求項1に記載の方法。 - 【請求項4】 前記複数のセットのいくつかは、各々が
ひとつのデバイス非依存型コンポーネントを含む一方、
その他の複数のセットは、各々が複数の代替デバイス依
存型コンポーネントを含むことを特徴とする請求項3に
記載の方法。 - 【請求項5】 前記アプリケーションは、1以上の第3
のデバイスから前記ターゲットデバイスにロードされる
ことを特徴とする請求項1に記載の方法。 - 【請求項6】 前記1以上の第3のデバイスは、前記ソ
ースデバイスを含むことを特徴とする請求項5に記載の
方法。 - 【請求項7】 2以上のターゲットデバイスがあり、前
記アプリケーションは、前記2以上のターゲットデバイ
スに分配されてロードされることを特徴とする請求項1
に記載の方法。 - 【請求項8】 ソースデバイスにおいて実行されている
アプリケーションをターゲットデバイスにマイグレーシ
ョンさせるシステムであって、 (a)前記ターゲット機器に前記アプリケーションをポ
ーティングするために、前記ターゲットデバイスのハー
ドウェア構成を参照して、前記ソースデバイスにおいて
実行されている前記アプリケーションを検査し、前記ソ
ースデバイスにおけるアプリケーションの実行状態を取
得する第1のエージェントと、 (b)前記アプリケーションの取得された前記実行状態
を使って、ポーティングされた前記アプリケーションを
ロードして自エージェントにおいてインスタンス化する
第2のエージェントとを具備することを特徴とするシス
テム。 - 【請求項9】 アプリケーションは1以上のコンポーネ
ントの複数のセットから成り、前記ターゲットデバイス
に最も適する少なくともひとつのコンポーネントを各セ
ットから選択することにより前記アプリケーションが前
記ターゲットデバイスにポーティングされることを特徴
とする請求項8に記載のシステム。 - 【請求項10】 前記複数のセットのいくつかは、各々
がひとつのデバイス非依存型コンポーネントを含む一
方、その他の複数のセットは、各々が複数の代替デバイ
ス依存型コンポーネントを含むことを特徴とする請求項
9に記載のシステム。 - 【請求項11】 前記第2のエージェントは、1以上の
第3のデバイスから前記ターゲットデバイスに前記アプ
リケーションをロードすることを特徴とする請求項8に
記載のシステム。 - 【請求項12】 前記1以上の第3のデバイスは、前記
ソースデバイスを含むことを特徴とする請求項11に記
載のシステム。 - 【請求項13】 2以上のターゲットデバイスがあり、
前記第2のエージェントは、前記アプリケーションを、
前記2以上のターゲットデバイスに分配してロードする
ことを特徴とする請求項8に記載のシステム。 - 【請求項14】 互いにアプリケーションのマイグレー
ションが行われる複数の異種デバイスから成るコンピュ
ータネットワークであって、 (a)マイグレーションするアプリケーションが実行さ
れるソースデバイスと、 (b)前記アプリケーションがマイグレーションする先
となるターゲットデバイスとを具備し、 前記ソースデバイスは、前記ターゲット機器に前記アプ
リケーションをポーティングするために、前記ターゲッ
トデバイスのハードウェア構成を参照して、前記アプリ
ケーションを検査し、前記ソースデバイスにおけるアプ
リケーションの実行状態を取得し、 前記ターゲットデバイスは、前記アプリケーションの取
得された前記実行状態を使って、ポーティングされた前
記アプリケーションをロードして自デバイスにおいてイ
ンスタンス化することを特徴とするコンピュータネット
ワーク。 - 【請求項15】 アプリケーションは1以上のコンポー
ネントの複数のセットから成り、前記ターゲットデバイ
スに最も適する少なくともひとつのコンポーネントを各
セットから選択することにより前記アプリケーションが
前記ターゲットデバイスにポーティングされることを特
徴とする請求項14に記載のコンピュータネットワー
ク。 - 【請求項16】 前記複数のセットのいくつかは、各々
がひとつのデバイス非依存型コンポーネントを含む一
方、その他の複数のセットは、各々が複数の代替デバイ
ス依存型コンポーネントを含むことを特徴とする請求項
15に記載のコンピュータネットワーク。 - 【請求項17】 前記ターゲットデバイスは、1以上の
第3のデバイスから前記アプリケーションをロードする
ことを特徴とする請求項14に記載のコンピュータネッ
トワーク。 - 【請求項18】 前記1以上の第3のデバイスは、前記
ソースデバイスを含むことを特徴とする請求項17に記
載のコンピュータネットワーク。 - 【請求項19】 2以上のターゲットデバイスがあり、
前記アプリケーションは、前記2以上のターゲットデバ
イスに分配されてロードされることを特徴とする請求項
14に記載のコンピュータネットワーク。
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)
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)
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)
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 |
-
2000
- 2000-12-15 US US09/737,733 patent/US7080159B2/en not_active Expired - Lifetime
-
2001
- 2001-12-14 EP EP01129319A patent/EP1215575A3/en not_active Ceased
- 2001-12-14 JP JP2001381662A patent/JP2002236592A/ja active Pending
-
2006
- 2006-02-28 JP JP2006052681A patent/JP4481944B2/ja not_active Expired - Lifetime
Cited By (5)
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 |