JP3845497B2 - コンピュータ・システム - Google Patents

コンピュータ・システム Download PDF

Info

Publication number
JP3845497B2
JP3845497B2 JP20289297A JP20289297A JP3845497B2 JP 3845497 B2 JP3845497 B2 JP 3845497B2 JP 20289297 A JP20289297 A JP 20289297A JP 20289297 A JP20289297 A JP 20289297A JP 3845497 B2 JP3845497 B2 JP 3845497B2
Authority
JP
Japan
Prior art keywords
agent
program
program code
name
execution environment
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.)
Expired - Fee Related
Application number
JP20289297A
Other languages
English (en)
Other versions
JPH1153321A (ja
Inventor
満 大島
一也 小坂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP20289297A priority Critical patent/JP3845497B2/ja
Priority to US09/009,481 priority patent/US6282582B1/en
Publication of JPH1153321A publication Critical patent/JPH1153321A/ja
Application granted granted Critical
Publication of JP3845497B2 publication Critical patent/JP3845497B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • G06F9/4862Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate

Description

【0001】
【発明の属する技術分野】
本発明は、移動エージェントに関し、より詳しくは、移動エージェントがあるコンピュータから他のコンピュータに移動する際の処理に関する。
【0002】
【従来の技術】
移動エージェントが移動する際の従来の処理を図1及び図2を用いて説明する。計算機A(1)は、ネットワーク25に接続されており、このネットワーク25には計算機B(27)も接続されている。計算機A及びBは、どのような計算機であってもよく、1又は複数のプロセッサと、メインメモリなどを有しており、様々なプログラムを実行できる。なお、ハードディスク装置のような記憶装置はオプションである。計算機A(1)はネットワーク25を介して通信を行うので、通信用のアダプタ、アダプタと協働する通信モジュール23及び49なども備えている。計算機A(1)は、移動エージェントの実行環境3(以下、エージェント実行環境又は単に実行環境ということがある)を提供するプログラムを実行している。移動エージェント5aは、エージェント・プログラムであるプログラムA(7)及びプログラムB(9)と、プログラムの状態11で構成され、エージェント実行環境3上にて活動する。エージェント・プログラムとは、エージェント自身の挙動を定義するプログラムであり、プロセッサで解釈・実行される機械コードや、オブジェクト指向システムにおけるクラス、インタプリタで実行するソース・プログラム等である。一方、プログラムの状態11とは、プログラム中で使用されている変数や、スタック・フレーム等で表される。
【0003】
エージェント・プログラムは図1に示したように、1以上のプログラムから構成され、エージェント・プログラムを構成している個々のプログラムは、対応するプログラム・コードを参照する機構(ポインタ)を有している。すなわち、図1で示したように、エージェント5aを構成するプログラムA(7)とプログラムB(9)に各々対応するプログラム・コードは、エージェント実行環境3に設けられたキャッシュ13内にプログラム・コードA(15)及びプログラム・コードB(17)として記憶されている。このキャッシュ13は、このエージェント実行環境3の管理下にあるエージェントのプログラム・コードと共に、移動したエージェントのプログラム・コードを所定期間保持している。例えば、図1ではプログラム・コードX(19)は、移動したエージェントのプログラム・コードである。なお、キャッシュ13は、計算機A(1)のメインメモリだけでなく、計算機A(1)の他の記憶装置にプログラム・コードを保管するようにしてもよい。
【0004】
エージェント実行環境3は、移動エージェントが活動するために必要な計算機資源及びサービスを提供するプログラムであり、エージェントの生成・停止・移動等を制御する機構を有し且つエージェント自身やその管理情報などを状態として保持する。また、実行環境3は、プログラムの元となるプログラム・コードを読み込み、プログラムに変換する機能を有し、さらに変換されたプログラムを実行することができる。エージェント実行環境がプログラム・コードをそのまま実行する場合には、プログラムとプログラム・コードは等しくてもよい。エージェント実行環境3は、通信モジュール23を介してネットワーク25に接続された他の計算機上の実行環境と通信を行う。各エージェント実行環境はネットワーク上で一意に決まる名前を有しており、各通信モジュールはこの名前を用いて通信を行うエージェント実行環境を特定することができる。計算機B(27)内の実行環境29も実行環境3と同じである。計算機B(27)内の通信モジュール49も、計算機A(1)におけるものと同じである。なお、図1には、計算機A(1)から計算機B(27)へエージェント5aが移動する際に必要なもののみが示されている。
【0005】
では、エージェント5aが計算機A(1)から計算機B(27)に移動する際の動作を説明する。エージェント5a自身又は外部から移動要求が実行環境3に発行されると、実行環境3は、エージェント5aの実行を停止して、ビット列生成モジュール21がエージェント5aの状態及びエージェントが使用しているプログラム・コードを送信用ビット列に変換する。移動先は移動要求に含まれる。プログラムの状態11はプログラム・コードに依存するので、その実行の状態を再構成するためには、先にプログラム・コードを読み込んで実行環境29に再構成した後、状態11をその上で再構成する必要がある。よって、実際に転送されるビット列は、通常図2のように、プログラム・コードのビット列を先頭にし、プログラムの状態11のビット列は、最後に送ることになる。
【0006】
ビット列生成モジュール21が生成した送信用ビット列(図2)は、通信モジュール23により、移動先の実行環境29を実行している計算機B(27)の通信モジュール49に送信される。通信モジュール49は、受信したビット列をエージェント復元モジュール39に渡す。エージェント復元モジュール39は、プログラム・コードをキャッシュ41に格納するとともに、プログラムに変換し、プログラムA(33)及びプログラムB(35)を生成する。さらに、受信した状態11に関するビット列を、生成したプログラムA及びプログラムBに合わせて再構成し、状態37を生成する。このようにしてエージェント復元モジュール39は、エージェント5bを実行環境29上に復元する。なお、キャッシュ41には、プログラムA(33)に対応してプログラム・コードA(43)、プログラムB(35)に対応してプログラム・コードB(45)が格納される。また、キャッシュ41は、他のプログラム・コード(47)を保持している。
【0007】
このような従来のエージェントの移動では、移動元の計算機から送られてきた全てのビット列を受信しないとエージェントを移動先の計算機で復元することができないので、時間がかかるという問題があった。
【0008】
さらに、情報転送を行う方法として、以前転送されたプログラム・コードを保持しておき、同じ名前のプログラム・コードが存在する場合にはそれを再利用して効率化を図るキャッシュ技術がある。しかし、(1)同じ名前を用いていても、バージョンが異なる場合があり、実際に使用したいプログラム・コードであるか判断できない。(2)要求元はどのようなキャッシュが転送先に存在するのかの正確な情報を前もって知る事は通常できない。よって、どのプログラム・コードを送るかの判断に手間がかかる。
【0009】
なお、移動エージェントについては、例えば米国特許5603031号に詳しく記載されている。この米国特許には、一度交換したエージェントのオブジェクトについてはダイジェストを送り、オブジェクト自体は送らないとする技術が記載されている。しかし、一度交換したエージェントのオブジェクトであっても、いつまで同一性を保持できるのか不明である。同一性を保持するのであれば、そのための手数がかかる。
【0010】
【発明が解決しようとする課題】
よって、本発明の目的は、エージェントの移動時間の短縮を図ることを目的とする。
【0011】
また、エージェントの移動時間をより少ない処理で短縮することも目的である。
【0012】
別のいい方をすると、他の計算機においてエージェントの復元をより高速に実行することである。
【0013】
【課題を解決するための手段】
基本的には図1に記載した機構を用いるが、各エージェントは、プログラム名だけでなく、使用しているプログラム・コードのバージョン情報も保持する。また、各エージェント実行環境は、プログラムの名前及びバージョンと、プログラムに対応するプログラム・コードをキャッシュ機構に保持する。エージェント転送時には、名前及びバージョン情報を先頭に付加し、名前及びバージョン情報の次に状態データ、そして最後にプログラム・コードを送信する。そして、転送先のエージェントの実行環境では、名前及びバージョン情報を用いて、可能な限りキャッシュ機構に保持されているプログラム・コードを用い、キャッシュされていない場合には転送されてきたプログラム・コードを用いるようにする。
【0014】
なお、これの変形として、プログラム・コードを最初送らずに、転送先に存在しないとされたプログラム・コードのみを送るようにする態様や、名前及びバージョン情報と状態データとプログラム・コードの位置情報を送信し、転送先に存在しない場合には位置情報を用いて転送先の実行環境が自主的にプログラム・コードを取得するようにする態様が考えられる。
【0015】
以上をまとめると、エージェントの実行環境は、エージェント・プログラムの名前及びバージョンと、エージェント・プログラムに対応するプログラム・コードとを記憶するキャッシュ機構と、第1エージェントの移動に応答して、当該第1エージェントのエージェント・プログラムに対応するプログラム・コードをキャッシュ機構から取り出すモジュールと、第1エージェントの前記エージェント・プログラムの名前及びバージョンと、第1エージェントの状態データと、キャッシュ機構から取り出されたプログラム・コードとを、この順番で送信用のビット列に変換する変換モジュールとを有する。このようにすれば、送信先は、最初の名前及びバージョン情報でキャッシュから必要なプログラム・コードを取り出すことができるようになる。そして、次に送られてくる状態データでエージェントを復元することができるので、エージェントが復元される時間は短縮される。なお、キャッシュに必要なプログラム・コードが存在しない場合でも、以前と同様の時間でエージェントは復元される。
【0016】
上で述べた変換モジュールは、第1エージェントのエージェント・プログラムに対応するプログラム・コードが複数ある場合に、プログラム・コードを、第1エージェントの移動先のエージェントの実行環境に存在しない確率の高い順に並べるようにすることも考えられる。このようすれば、転送先のキャッシュに存在しない場合でも、より速くエージェントを復元することができる。
【0017】
この移動先のエージェントの実行環境に存在しない確率の高い順は、プログラム・コードの作成順であっても、移動先のエージェントの実行環境に送信したことのないプログラム・コードを先に、送信したことのあるプログラム・コードを後とする順番であってもよい。さらに、プログラム・コードを、そのサイズの小さい順に並べても一定の効果がある。
【0018】
また、本発明の他の態様では、エージェントの実行環境は、エージェント・プログラムの名前及びバージョンと、エージェント・プログラムに対応するプログラム・コードとを記憶するキャッシュ機構と、第1エージェントの移動に応答して、第1エージェントのエージェント・プログラムの名前及びバージョンと、第1エージェントの状態データとを、送信用のビット列に変換する変換モジュールとを有する。もし、送信先のキャッシュに全てのプログラム・コードが存在すればこれで問題ない。
【0019】
第1エージェントの移動先のエージェントの実行環境から、必要なエージェント・プログラムの名前及びバージョンが送られてきた場合には、当該必要なエージェント・プログラムの名前及びバージョンに対応するプログラム・コードをキャッシュ機構から取り出すモジュールをさらに有し、変換モジュールは、キャッシュ機構から取り出されたプログラム・コードを送信用のビット列に変換するようにする。
【0020】
本発明のさらに他の態様では、エージェントの実行環境は、第1エージェントの移動に応答して、第1エージェントのエージェント・プログラムの名前及びバージョンと、第1エージェントのエージェント・プログラムに対応するプログラム・コードのプログラム・コード位置情報と、第1エージェントの状態データとを、送信用のビット列に変換する変換モジュールとを有する。プログラム・コード位置情報を送信しておけば、送信先のエージェントの実行環境は、キャッシュに保持していない必要なプログラム・コードを取得できるようになるので、プログラム・コードを送信する必要がなくなる。
【0021】
以上送信側の実行環境の特徴を説明したが、受信側のエージェントの実行環境は、エージェント・プログラムの名前及びバージョン、及びエージェント・プログラムに対応するプログラム・コードとを記憶するキャッシュ機構と、エージェントの実行環境に移動してくる第1エージェントの前記エージェント・プログラムの名前及びバージョンの受信に応答して、当該エージェント・プログラムの名前及びバージョンに対応するプログラム・コードをキャッシュ機構から取り出す検索モジュールと、プログラム・コードから第1エージェントのエージェント・プログラムを生成するプログラム定義モジュールと、受信した第1エージェントの状態を復元する状態復元モジュールとを有する。
【0022】
先に説明した本発明の最初の態様に対しては、受信したエージェント・プログラムの名前及びバージョンに対応するすべてのプログラム・コードを検索モジュールがキャッシュ機構から取り出せなかった場合、受信した第1エージェントのプログラム・コードをプログラム定義モジュールに出力するモジュールをさらに有するようにする。
【0023】
また、二番目の態様に対しては、受信したエージェント・プログラムの名前及びバージョンに対応するすべてのプログラム・コードを検索モジュールがキャッシュ機構から取り出せなかった場合、必要なエージェント・プログラムの名前及びバージョンを送信するモジュールをさらに有するようにする。
【0024】
さらに、三番目の態様に対しては、受信したエージェント・プログラムの名前及びバージョンに対応するすべてのプログラム・コードを検索モジュールがキャッシュ機構から取り出せなかった場合、受信したプログラム・コード位置情報を用いて、取り出せなかったプログラム・コードを取得するモジュールをさらに有するようにする。
【0025】
以上述べた本発明は、処理のフローとして把握することも可能である。また、当該処理を実施するコンピュータ・プログラムとして実施することも可能である。この際、コンピュータ・プログラムを、CD−ROM、フロッピー・ディスクなどの記憶媒体に格納することは当業者が通常実施することである。
【0026】
【発明の実施の形態】
図3に本発明におけるエージェントの構成を示す。以下、従来技術の説明の欄で説明した構成要素から大きく変更のないものは、同一の参照符合を用いて説明する。エージェント5aは、エージェント・プログラムと、状態11と、エージェント・プログラムのプログラム名及びバージョン情報から構成される。図3では、エージェント・プログラムは、プログラムA及びプログラムBで構成され、それぞれの名前はA及びBである。また、プログラムAのバージョンは2、プログラムBのバージョンは3となっている。バージョンは、名前が同一のプログラム・コード群において内容が異なるプログラム・コードに一意に関係付けられる情報である。なお、番号であっても他の符合であってもよい。
【0027】
このエージェント5aが活動する実行環境を図4を用いて説明する。計算機Aで実行されるエージェントの実行環境3は、プログラム・コードを保管するキャッシュ機構59と、エージェント変換モジュール51を含む。さらに、エージェント変換モジュール51は、プログラム・コード検索モジュール53と、状態抽出モジュール55と、ビット列生成モジュール57を含む。なお図4においては、エージェント5aのエージェント・プログラムの表示は省略されており、プログラム61、63、65の名前 ibm.Aglet ibm.Hello isv.Server 及びバージョン(21、10、7)が記載されている。
【0028】
キャッシュ機構59は、過去若しくは現在のエージェントで使用されているプログラム・コードを保持しており、プログラム名及びバージョンの2つの情報を用いて対応するプログラム・コードを取り出すことができる。キャッシュされたプログラム・コードは永続的に保存されている必要はなく、それを使用しているエージェントが存在しなくなった後は、任意の時間で削除してよい。削除の手法は任意であり、本発明の主要部でないのでここでは説明を省略する。
【0029】
では、図4の動作を図5と共に説明する。エージェント5aは、エージェント実行環境3に移動要求dispatch(d1) を発行する(ステップ110)。このd1は、移動先のエージェント実行環境の名前である。なお、ここではエージェント5a自体が移動要求を発しているが、エージェント以外のものが移動要求を発する場合もある。移動要求を受け取ったエージェント実行環境3は、エージェント5aの実行を停止した後、エージェント5aで使用されているプログラムの名前及びバージョンを取得する(ステップ120)。この図4の例では、プログラム61の名前ibm.Agletとバージョン21と、プログラム63の名前ibm.Helloとバージョン10と、プログラム65の名前isv.Serverとバージョン7が取り出される。このプログラムの名前及びバージョンはプログラム・コード検索モジュール53に渡される。検索モジュール53は、このプログラムの名前及びバージョンをキーとしてキャッシュ機構59を検索し、必要なプログラム・コードを取得する(ステップ130)。図4の例では、キャッシュ機構59の59bと59cと59dが取り出される。検索モジュール53は、プログラムの名前及びバージョンと、キャッシュ機構59から取り出したプログラム・コードを独立した情報として、ビット列生成モジュール57に渡す。
【0030】
一方、エージェント5a内の状態は、状態抽出モジュール55により取り出され、状態抽出モジュール55は状態データをビット列生成モジュール57に渡す。ビット列生成モジュール57では、図4に示したように、先頭にプログラムの名前及びバージョンを、次に状態データを、そして最後にプログラム・コードを並べて、送信用ビット列を生成する(ステップ140)。この送信用ビット列は図1の通信モジュール23に渡され、通信モジュール23が移動先d1に送信する(ステップ150)。
【0031】
一方、エージェント5aの移動先の実行環境29は、図6のような構成となっている。実行環境29は、キャッシュ機構75とエージェント復元モジュール67とを含んでいる。エージェント復元モジュール67は、ビット列解析モジュール77と、プログラム・コード検索モジュール71と、状態復元モジュール69と、プログラム定義モジュール73とを含んでいる。キャッシュ機構75は、動作は送信元のキャッシュ機構59と同様であるが、保持しているプログラム・コードは必ずしも同一ではない。
【0032】
では、図7と共に図6の動作を説明する。エージェント5aの移動先の実行環境29は、通信モジュール49を介してビット列を受け取る(ステップ210)。受信したビット列はバッファに入れられる。受け取ったビット列をビット列解析モジュール77が解析し、プログラムの名前及びバージョンを取り出して、プログラム・コード検索モジュール71に渡す。なお、ビット列解析モジュール77は、プログラムの名前及びバージョンが受信された時点で動作を開始できる。また、エージェントの状態データを状態復元モジュール69に渡す。この段階では、プログラム・コードは読み出す必要はない。そして、プログラム・コード検索モジュール71は、キャッシュ機構75を検索し、プログラムの名前及びバージョンの合致するプログラム・コードを取り出す(ステップ220)。図6の例では、キャッシュ機構75の75bと75cが送られてきたプログラムの名前及びバージョンに合致する。
【0033】
次に、検索モジュール71は、全ての必要なプログラム・コードがキャッシュ機構75から取得できたかどうか判断する(ステップ230)。もし、全てのプログラム・コードがキャッシュ機構75から取得できないようであれば、バッファに受信したビット列の中からキャッシュ機構75から取得できなかったプログラム・コードを読み出す(ステップ240)。図6の場合には、名前ibm.Hello及びバージョン10のプログラム・コードはキャッシュ機構75にないので、このプログラム・コードを読み出す。そして、キャッシュ機構75から取得したプログラム・コード及び必要な場合には受信したプログラム・コードをプログラム定義モジュール73に渡す。このプログラム定義モジュール73は、得られたプログラム・コードを実行可能なプログラムに変換する(ステップ250)。エージェント5bが使用するプログラム全てが用意されると、エージェント状態復元モジュール69が、ビット列解析モジュール77から渡された状態データを、プログラム61乃至65に対する状態として復元し、エージェント全体を復元する(ステップ260)。
【0034】
以上のようにすると、エージェントを復元するために必要なプログラム・コードの一部がキャッシュ機構の中に存在した場合、送られてきたビット列中のプログラム・コードを全て読み込むことなくエージェントを復元することができるようになるので、転送開始からエージェントの活動再開までの時間の短縮が期待できる。
【0035】
上の実施例では、プログラム・コードの送信順番については何等考慮していないが、移動先のキャッシュ機構に必要なプログラム・コードがない場合には送信したプログラム・コードを用いるため、プログラム・コードの送信順番を工夫すればより速くエージェントを復元できるようになる。以下、このプログラム・コードの送信順番について記載する。
【0036】
基本的には、エージェントの移動先のキャッシュ機構に存在しない確率が高いプログラム・コードの順番で送信するべきである。この確率は、プログラム・コードの作成日時、これまでに移動先に送ったプログラム・コードの名前及びバージョンのリスト等から決定される。プログラム・コードの作成日時が若いほど、移動先に転送されている可能性は低くなるからである。よって、送信元のキャッシュ機構や、エージェント自体が、プログラムの名前及びバージョンと共にプログラム・コードの作成日時の情報を保持しておき、ビット列生成モジュール57がその情報を元に並べ変えればよい。
【0037】
また、キャッシュ機構又はキャッシュ機構とは別に、プログラム・コードの名前及びバージョンと、転送先を保持しておき、この転送先の情報から、以前に送ったことがあるプログラム・コードか否かを転送時に判断し、送ったことがあるプログラム・コードの場合は送信する順番を後ろの方にすることも考えられる。
【0038】
さらに、プログラムのサイズを小さい順に並べる方法も考えられる。このようにすれば、先頭に配置されたプログラム・コードが使用されない場合でも、転送の無駄を少なくすることができる。
【0039】
さらに他の実施例としては、送信元のエージェント実行環境内のビット列生成モジュール57が、プログラムの名前及びバージョンと、エージェントの状態データとのみを送るようにすることも考えられる。この場合、送信先のエージェント実行環境には、プログラム・コード検索モジュール69がキャッシュ機構75から取り出せなかったプログラム・コードの名前及びバージョンの情報を送信元に送り返すモジュールを設ける必要がある。この取り出せなかったプログラム・コードについては、送信元のエージェント実行環境内のプログラム・コード検索モジュール53が、必要とされたプログラム・コードの名前及びバージョンに合致するプログラム・コードを取り出し、それをビット列生成モジュール57が送信用ビット列に変換し、通信モジュール23が送信先のエージェント実行環境に送信する。この実施例の動作を図8にまとめておく。
【0040】
また別の実施例として、送信元のエージェント実行環境内のビット列生成モジュール57が、プログラムの名前及びバージョンと、エージェントの状態データと、プログラム・コード位置情報とを送るようにすることも考えられる。位置情報は、当該プログラム・コードが格納されている場所を示すものであり、例えば、ファイル・システムのパス情報やWWW(World Wide Web)で使用されているURL(Uniform Resource Locator)などが考えられる。図9にこの場合のエージェントのブロック図を示す。エージェント・プログラムに含まれる各プログラムは、プログラム名、バージョン、位置情報を保持している。例えば図9の例では、プログラム名ibm.Agletであるプログラムは、バージョン21であって、位置は/use/localである。また、プログラム名ibm.Helloであるプログラムは、バージョン10であって、位置はhttp://lib.com/である。送信元のエージェント実行環境内のビット列生成モジュール57は、エージェントからこれらの情報を取り出し、状態抽出モジュール55からエージェントの状態データを受取り、図10のような送信用ビット列を生成する。ここでは、プログラムの名前とバージョンと共に先頭にプログラム・コード位置情報が配置されているが、状態後に配置することもできるし、状態の前にまとめて配置することもできる。
【0041】
送信先の計算機B(27)を図11に示す。エージェント実行環境29において、エージェント復元モジュール67内のプログラム・コード検索モジュール90が図6とは異なる。このプログラム・コード検索モジュール90は、図10のビット列中のプログラム名及びバージョンを用いて、キャッシュ機構75を検索する。そして、キャッシュ機構75から必要なプログラム・コードを取り出せた場合には、このプログラム・コードをプログラム定義モジュール73に渡す。一方、キャッシュ機構75から必要なプログラム・コードが取り出せなかった場合には、ビット列中の位置情報を用いて必要なプログラム・コードを取り出す。図11の例では、位置情報が/usr/localである場合には、計算機B(27)のファイル・システム92からプログラム・コードを取り出す。また、位置情報がhttp://lib.com/である場合には、プログラム・コード検索モジュール90は通信モジュール49に当該アドレスのサーバに接続するよう命ずる。そして、このアドレスのサーバから必要なプログラム・コードを取り出す。なお、ここでは、キャッシュ機構75を使用するようになっているが、キャッシュ機構75を用いずに、最初から位置情報を用いて必要なプログラム・コードを取得するようにすることも可能である。このようにすれば、エージェントの移動元から送られる情報が軽減されるので、ネットワークの負荷が軽減される。また、必要なプログラム・コードが送信先のローカルなファイル・システム内にある限りにおいては、再度ネットワークを介して取得する必要が無くなる点も有用な効果である。
【0042】
以上述べた実施例は一例であって、特にエージェント実行環境に含まれるモジュールの分け方は任意であり、どのようなモジュール分けになっていても、上記のような機能を全体として実施していれば本発明の効果を奏することができる。また、エージェント実行環境は送信側になることも受信側になることもあるのが通常であり、その場合図4における実行環境3及び図6における実行環境29の両方の機能を1つの実行環境が保持する。しかし、図4及び図6のように送信側又は受信側の機能しか有しない場合も考えられる。
【0043】
【効果】
以上述べたように、エージェントの移動時間の短縮を図ることができた。
【0044】
なた、エージェントの移動時間をより少ない処理で短縮することもできた。
【0045】
他の計算機においてエージェントの復元をより高速に実行することもできた。
【図面の簡単な説明】
【図1】エージェントの移動の際に行われる、従来の処理を説明するための図である。
【図2】エージェントの移動の際に送信される、従来のビット列の一例を示した図である。
【図3】本発明のエージェントの構成の一例を示したブロック図である。
【図4】本発明の送信側のエージェント実行環境の一例を示したブロック図である。
【図5】図4の動作を説明するための図である。
【図6】本発明の受信側のエージェント実行環境の一例を示したブロック図である。
【図7】図6の動作を説明するための図である。
【図8】第2の実施例の動作を説明するための図である。
【図9】第3の実施例のエージェントの構成を説明するための図である。
【図10】第3の実施例の送信用ビット列の構成を説明するための図である。
【図11】第3の実施例の受信側計算機の構成を説明するための図である。
【符号の説明】
1 計算機A 3,29 エージェント実行環境
5a,5b エージェント
7,9,33,35 エージェント・プログラム
11,37 エージェントの状態
13,41 キャッシュ
15,17,19.43,47 プログラム・コード
21 ビット列生成モジュール
23,49 通信モジュール
25 ネットワーク
39 エージェント復元モジュール
51 エージェント変換モジュール
53 プログラム・コード検索モジュール
55 状態抽出モジュール
57 ビット列生成モジュール
59 キャッシュ機構
67 エージェント復元モジュール
69 状態復元モジュール
71 プログラム・コード検索モジュール
73 プログラム定義モジュール
75 キャッシュ機構
77 ビット列解析モジュール
90 プログラム・コード検索モジュール
92 ファイル・システム

Claims (1)

  1. ネットワークに接続される第1のコンピュータから第2のコンピュータにエージェントを移動させるコンピュータ・システムであって、
    前記コンピュータの各々は、エージェント実行環境を提供する手段をそれぞれ有し、当該エージェント実行環境を提供する手段の各々は、エージェントを構成する一以上の「エージェント・プログラムの名前及びバージョン情報の組」に対して、一の「状態データ」と一以上の「プログラム・コード」がそれぞれ存在し、当該エージェント実行環境を提供する手段の各々にそれぞれ設けられたキャッシュ機構は、エージェントを構成する一以上の「エージェント・プログラムの名前及びバージョン情報の組」と、当該一以上の「エージェント・プログラムの名前及びバージョン情報の組」に対応する一以上の「プログラム・コードと、当該一以上の「プログラム・コード送信先を示す情報とをそれぞれ記憶し、
    前記第1のコンピュータ上の前記エージェント実行環境を提供する手段は、
    エージェントの移動に対する要求に応答して、当該エージェントを構成する、一以上の「エージェント・プログラムの名前及びバージョン情報の組」に対応する一以上の「プログラム・コードを、当該エージェント実行環境を提供する手段内の前記キャッシュ機構から取り出すモジュールと、
    前記エージェントを構成する、一以上の「エージェント・プログラムの名前及びバージョン情報の組」を含むブロック、「状態データ」のブロック、当該エージェント実行環境を提供する手段内の前記キャッシュ機構から取り出された一以上の「プログラム・コード」を含むブロック、の順番送信用のビット列に変換する変換モジュールと、
    前記送信用のビット列を前記第2のコンピュータ上の前記エージェント実行環境を提供する手段に送信する通信モジュールとをさらに有し、
    前記変換モジュールが、前記エージェントを構成する、「エージェント・プログラムの名前とバージョン情報の組」が複数存在する場合、前記キャッシュ機構に記憶された「プログラム・コード送信先を示す情報に基づいて、前記第2のコンピュータ上の前記エージェント実行環境を提供する手段に送信したことのないプログラム・コード」が先に、送信したことのあるプログラム・コード」が後となるように、「プログラム・コード」のブロック内の各「プログラム・コード」を順番に並べ、かつ当該「プログラム・コード」のブロック内の順番に相応するように、「エージェント・プログラムの名前とバージョン情報の組」のブロック内の各「エージェント・プログラムの名前とバージョン情報の組」を順番に並べることを特徴とするコンピュータ・システム。
JP20289297A 1997-07-29 1997-07-29 コンピュータ・システム Expired - Fee Related JP3845497B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP20289297A JP3845497B2 (ja) 1997-07-29 1997-07-29 コンピュータ・システム
US09/009,481 US6282582B1 (en) 1997-07-29 1998-01-20 Computer system, agent transmission method and agent reactivation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP20289297A JP3845497B2 (ja) 1997-07-29 1997-07-29 コンピュータ・システム

Publications (2)

Publication Number Publication Date
JPH1153321A JPH1153321A (ja) 1999-02-26
JP3845497B2 true JP3845497B2 (ja) 2006-11-15

Family

ID=16464938

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20289297A Expired - Fee Related JP3845497B2 (ja) 1997-07-29 1997-07-29 コンピュータ・システム

Country Status (2)

Country Link
US (1) US6282582B1 (ja)
JP (1) JP3845497B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6407751B1 (en) * 1998-01-28 2002-06-18 International Business Machines Corporation Method and apparatus of generating mobile objects and storage medium storing an object generating mobile objects
JP2000305796A (ja) * 1999-04-22 2000-11-02 Hitachi Ltd 電子計算機間のジョブ転送方法およびジョブ転送システム
US7743089B2 (en) * 1999-10-13 2010-06-22 Intel Corporation Method and system for dynamic application layer gateways
JP3466125B2 (ja) * 1999-11-17 2003-11-10 インターナショナル・ビジネス・マシーンズ・コーポレーション 移動エージェント管理装置およびその方法
US6694360B1 (en) * 2000-06-09 2004-02-17 3Com Corporation Multi-mode network interface having loadable software images
JP3815231B2 (ja) * 2001-02-16 2006-08-30 日本電気株式会社 携帯機器向け移動エージェント転送システム、携帯機器及び移動エージェント転送方法
JP3772102B2 (ja) * 2001-07-30 2006-05-10 株式会社東芝 情報処理方法、情報処理装置及びプログラム
US7676541B2 (en) * 2002-05-30 2010-03-09 Microsoft Corporation Peer communication channel partitioning
US7043522B2 (en) * 2002-05-30 2006-05-09 Microsoft Corporation Unbounded computing space
US7478233B2 (en) * 2002-05-30 2009-01-13 Microsoft Corporation Prevention of software tampering
US7634806B2 (en) * 2002-05-30 2009-12-15 Microsoft Corporation Peer assembly inspection
JP4791846B2 (ja) * 2005-02-21 2011-10-12 財団法人電力中央研究所 モバイルエージェント移動の高速化方法、モバイルエージェントの移動の高速化システム
US7937713B2 (en) * 2006-04-21 2011-05-03 Topia Technology System and method for providing services on a distributed network
US9020674B2 (en) 2012-04-13 2015-04-28 Toyota Motor Engineering & Manufacturing North America, Inc. Diversion of energy from regenerative braking
WO2014192867A1 (ja) * 2013-05-31 2014-12-04 日本電気株式会社 分散処理システム、分散処理装置、分散処理方法および分散処理プログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54159103A (en) * 1978-06-07 1979-12-15 Hitachi Ltd Data transmission system for information transmission network
JPS63178358A (ja) * 1987-01-20 1988-07-22 Fujitsu Ltd ダウンロ−ド処理方式
JP2764836B2 (ja) * 1990-01-16 1998-06-11 富士通株式会社 事象優先転送方式
JPH05165647A (ja) * 1991-12-18 1993-07-02 Nec Eng Ltd プログラムロード方式
JP3271284B2 (ja) * 1992-01-31 2002-04-02 富士通株式会社 マルチホストシステムにおけるリモートメンテナンスシステム
JPH05265982A (ja) * 1992-03-17 1993-10-15 Fujitsu Ltd 初期プログラムロード方式
JPH06149756A (ja) * 1992-11-16 1994-05-31 Hitachi Ltd 分散型情報処理方法およびその装置
AU683038B2 (en) * 1993-08-10 1997-10-30 Addison M. Fischer A method for operating computers and for processing information among computers
JPH0934711A (ja) * 1995-07-20 1997-02-07 Internatl Business Mach Corp <Ibm> オブジェクト・ロード方法及びコンピュータ・システム
US6029175A (en) * 1995-10-26 2000-02-22 Teknowledge Corporation Automatic retrieval of changed files by a network software agent
JP3289605B2 (ja) * 1996-06-21 2002-06-10 日本電気株式会社 ハードウェアリソース管理モジュール共通化方式
US5991806A (en) * 1997-06-09 1999-11-23 Dell Usa, L.P. Dynamic system control via messaging in a network management system

Also Published As

Publication number Publication date
US6282582B1 (en) 2001-08-28
JPH1153321A (ja) 1999-02-26

Similar Documents

Publication Publication Date Title
JP3845497B2 (ja) コンピュータ・システム
KR100243637B1 (ko) 고-가용성 컴퓨터 서버 시스템
US6041365A (en) Apparatus and method for high performance remote application gateway servers
US6336135B1 (en) Gateway for converting synchronous client/server protocols into asynchronous messaging protocols and storing session state information at the client
US7401129B2 (en) Network system, server, data processing method and program
KR100295730B1 (ko) 통신링크를통해전송되는데이타의감소방법및장치
US7650609B2 (en) Multi-environment document management system access
KR19980703861A (ko) 웹 브라우저 애플리케이션의 성능 향샹을 위한 방법 및 장치, 웹 브라우저 애플리케이션의 성능 향상을 위한 컴퓨터 프로그램 제품, 클라이언트/서버 시스템의 성능 향상 장치
CN101211365A (zh) 用于建立搜索索引的方法和系统
JPH0776939B2 (ja) 通信ネットワークシステム
JPH08339355A (ja) 分散形システムでの処理タスク実行呼び出し方法及び装置
CN103392170A (zh) 系统之间的数据同步
CN1524225A (zh) 内嵌相关性能测量的系统
US20070011274A1 (en) Data transfer in a multi-environment document management system access
CN1625179B (zh) 按可定制的、基于标签协议中的引用发送
CN101266617A (zh) 用于存储平台中的锁定和隔离的系统和方法
US20010002471A1 (en) System and program for processing special characters used in dynamic documents
CN114489622A (zh) 静态资源管理方法、Node.js应用、电子设备和存储介质
JP2004094935A (ja) オブジェクト状態転送方法,オブジェクト状態転送装置およびオブジェクト状態転送プログラム並びにそのプログラムの記録媒体
US7107272B1 (en) Independent distributed metadata system and method
US20060004838A1 (en) Sharing large objects in distributed systems
US20050172034A1 (en) Method and system for managing programs for web service system
JP2002244887A (ja) ログ収集方式及び方法
JPWO2009081527A1 (ja) 情報処理装置、仮想計算機構成方法、並びに、プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2011141587A (ja) 分散処理システム、分散処理方法、およびプログラム

Legal Events

Date Code Title Description
A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050908

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051216

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060414

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060420

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060718

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060821

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees