JP2005227872A - 移動エージェント配信・管理プログラムおよび移動エージェントシステム - Google Patents

移動エージェント配信・管理プログラムおよび移動エージェントシステム Download PDF

Info

Publication number
JP2005227872A
JP2005227872A JP2004033703A JP2004033703A JP2005227872A JP 2005227872 A JP2005227872 A JP 2005227872A JP 2004033703 A JP2004033703 A JP 2004033703A JP 2004033703 A JP2004033703 A JP 2004033703A JP 2005227872 A JP2005227872 A JP 2005227872A
Authority
JP
Japan
Prior art keywords
agent
leader
mobile agent
mobile
instruction
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
JP2004033703A
Other languages
English (en)
Inventor
Yoshihiko Kitamura
嘉彦 北村
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2004033703A priority Critical patent/JP2005227872A/ja
Publication of JP2005227872A publication Critical patent/JP2005227872A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

【課題】 複数の移動エージェントが、ネットワーク上のノードを所定の処理を実行しながら移動する移動エージェントシステムにおいて、サーバと各移動エージェントの間の通信量を低減する。
【解決手段】 移動エージェントをリーダ201とメンバ202の2種類に分け、リーダ201と複数のメンバ202から成る移動エージェントグループ120を構成する。サーバ101からは、移動エージェントグループ120のリーダ201のみに指示203を送信し、リーダ201が移動エージェントグループ120の各メンバの複製である指示204を送信する。
【選択図】 図2


Description

本発明は、移動エージェント配信・管理プログラムおよび移動エージェントシステムに関し、より特定的には、複数の移動エージェントが、ネットワーク上のノードを所定のプログラムを実行しながら移動する移動エージェントシステムに関する。
移動エージェント(モバイルエージェント)は、ネットワーク上の各ノードを移動しながら所定の処理を実行するプログラムである。各ノードには移動エージェントを実行するための環境が搭載されている。よく知られる移動エージェントの実行環境には非特許文献1などで紹介されている米IBM社が開発した、Java(R)言語をベースとしたAglets(R)などがある。Aglets(R)は、移動エージェントの生成や移動といった基本的な制御をサポートしている。
ここで、複数の移動エージェントが、ネットワーク上のノードを所定のプログラムを実行しながら移動する技術がある。例えば、特許文献1では、複数の移動エージェントが、相互に監視をしながらノード間を移動して各ノードの障害監視を行う方法が述べられている。
この方法において、サーバから各移動エージェントに指示を伝えるためには、サーバから各移動エージェントに個別に指示を送信する必要がある。
図17は、従来の移動エージェントシステムにおいて、サーバから各移動エージェントに指示を伝える状況を示した図である。図17は、移動エージェントグループ1704を形成する複数の移動エージェント1703が、ネットワーク上のサーバ1701からノード1702に移動したときの状態を示している。この状態において、サーバ1701からの指示1705を各移動エージェント1703に伝える必要がある場合、サーバ1701は、各移動エージェント1703に個別に指示1705を送信する必要がある。
特開2003−30161号公報 小野良司、黒田正博,「Java(R)の世界を広げる最新エージェントテクノロジー」,月刊ジャバワールド1997年1月号,IDGジャパン
上述のように、従来の移動エージェントシステムではサーバから各移動エージェントに個別に指示を送信する必要があるしたがって、移動エージェントの数が少ない場合には特に問題は無いが、移動エージェントの数が増えるに従って、サーバから各移動エージェントに指示を出すときのサーバの処理負荷や、サーバと移動エージェント間の通信量が増大するという問題点がある。
それゆえに、本発明の目的は、サーバから複数の移動エージェントへ指示を送る場合において、移動エージェントの数が増えたとしてもサーバの処理負荷や通信量が増加しない移動エージェントシステムを実現することである。
本発明は、上記のような目的を達成するために、以下のような構成を採用した。なお、括弧内の参照符号等は、本発明の理解を助けるために、図面との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
第1の発明は、所定のプログラムおよびデータからなる移動エージェント(201、202)が、移動エージェントの実行環境を備えた相互に通信可能な複数のノード(102〜105)間を、各ノードのコンピュータ(123)に所定の処理を実行させつつ移動する移動エージェントシステムを実現するためにサーバ(101)で実行される移動エージェント配信・管理プログラムである。
移動エージェント配信・管理プログラム(118)は、サーバのコンピュータ(114)に、移動エージェントグループ(120)を生成する生成ステップ(S102)と、移動エージェントグループに属するリーダエージェント(201)及びメンバエージェント(202)をそれぞれ所定のノードに送信する送信ステップ(S104)と、リーダエージェントの現在位置を取得する取得ステップ(S107)と、移動エージェントグループ全体に対する指示をこの移動エージェントグループに属するリーダエージェントにのみ送信する指示ステップ(S110)とを実行させるためのプログラムである。
リーダエージェント(201)は、サーバから指示を受けた時に、その時点で自身が位置しているノードのコンピュータ(123)に、その指示に応じた処理を実行するステップ(S207)と、自身が属する移動エージェントグループ内のメンバエージェントの現在位置を取得するメンバ位置取得ステップ(S203)と、サーバからの指示を自身が属する移動エージェントグループ内のメンバエージェントに転送するステップ(S206)とを実行させるためのプログラムを含んだ移動エージェントである。
メンバエージェント(202)は、リーダエージェントから上記指示を受けた時に、その時点で自身が位置しているノードのコンピュータ(123)にその指示に応じた処理を実行させる(S306)ためのプログラムを含んだ移動エージェントである。
第2の発明は、第1の発明において、生成ステップは、リーダエージェントとメンバエージェントに加えてさらにサブリーダエージェント(1202)を含んだ移動エージェントグループを生成するものである。サブリーダエージェントは、サブリーダエージェントが位置しているノードのコンピュータに、リーダエージェントとの間で定期的に相互監視を行うステップ(S1401)と、相互監視の結果、リーダエージェントに障害が起こったことが判明したときに、サブリーダエージェントをリーダ化するステップ(S1403)とを実行させるためのプログラムを含む。
なお、「サブリーダエージェントをリーダ化する」とは、サブリーダエージェントがリーダエージェントとして機能するようにすることであり、この結果、サブリーダエージェントは、移動エージェントグループ内の新たなリーダエージェントとなってリーダエージェントの処理を遂行することとなる。「サブリーダエージェントをリーダ化する」方法の一例として、サブリーダエージェント内に設けられた、サブリーダエージェントがリーダエージェントとして機能すべきか否かを制御するためのフラグ(1201)を操作することが挙げられる。
本発明によれば、移動エージェントグループの各移動エージェントに個別に指示を送信することなく、グループのリーダのみに指示を送信し、リーダがその移動エージェントグループの各メンバに同じ指示を送信することで、サーバの処理負荷を削減でき、また、サーバと各移動エージェント間の通信量が削減できる。
(第1の実施形態)
以下、本発明の実施の形態について、図面を参照して説明する。
図1は、本発明の一実施形態に係る移動エージェントシステムの構成を示した図である。図1において、移動エージェントシステムは、移動エージェントを管理するサーバ101と、移動エージェントの実行環境となるノード102、103、104、105で構成される。サーバ101およびノード102、103、104、105は、ネットワーク100を介して通信可能に接続されている。ここで、サーバ101は、ネットワーク上のノードの一つでもある。
サーバ101は、二次記憶装置111、主記憶装置112、指示装置113、中央処理装置114、通信装置115で構成される。サーバ101は、通信装置115を通じてネットワーク100に接続される。二次記憶装置111には、移動エージェントデータ116などが配置される。主記憶装置112には、全リーダ位置管理データ117、移動エージェント配信・管理プログラム118などが配置される。なお、移動エージェント配信・管理プログラム118は、予めサーバ101に記憶されていても構わないし、コンピュータ読み取り可能な記録媒体からサーバ101に読み込まれても構わないし、通信回線を通じて外部よりサーバ101に供給されても構わない。指示装置113は、移動エージェントグループ120に対する指示を入力するための装置である。この指示は、指示装置113に事前に登録されたIDの中から選択することで入力される。
移動エージェントデータ116は、移動エージェントグループ120の生成に必要なデータである。全リーダ位置管理データ117は、移動エージェントグループ120のリーダである移動エージェントの現在位置を管理するためのデータであって、リーダの移動に伴って適宜に更新される。
移動エージェント配信・管理プログラム118は、移動エージェントデータ116に基づいて移動エージェントを作成し、作成した移動エージェントを管理するためのプログラムである。生成された各移動エージェントは、通信装置115を通じてそれぞれの最初の移動先ノードに配信され、その後、ノード間を適宜に移動する。移動エージェント配信・管理プログラム118に基づいて生成される移動エージェントとしては、2種類の移動エージェント(リーダおよびメンバ)があり、1つのリーダと1つ以上のメンバとにより1つの移動エージェントグループが構成される。移動エージェントグループは複数生成されてもよい。すべての移動エージェントが配信された後、リーダがノード間を移動するたびに、その旨がリーダからサーバ101に通知される。サーバ101では、この通知を受けて、全リーダ位置管理データ117が更新される。そして、指示装置113から指示が入力されると、サーバ101から移動エージェントグループ120のリーダにその指示が送信される。
ノード102は、二次記憶装置121、主記憶装置122、中央処理装置123、通信装置124で構成される。主記憶装置122には、移動エージェント送受信プログラム125などが配置される。
移動エージェント送受信プログラム125は、サーバ101、あるいは他のノード103、104、105から送信された移動エージェントを通信装置124を通じて受信して、移動エージェントが保持する主プログラムを実行するためのプログラムである。
図2は、本発明の実施の形態におけるシステムの一連の処理手順を示した図である。
まず、サーバ101において、移動エージェントデータ116に基づきリーダ201となる移動エージェントと、メンバ202となる移動エージェントが生成され、それらは移動エージェントグループ120を形成する。ここでは、説明を簡単にするため移動エージェントグループ120のメンバ202が1つであるとする。また、移動エージェントグループの数も一つであるとする。
リーダ201およびメンバ202は、事前に設定された経路データに従って、サーバ101から次のノード102、103にそれぞれ移動し、さらにその次のノード104、105にそれぞれ移動する。リーダ201とメンバ202は、各ノードに移動するたびに所定のサービスプログラムを実行する。ここで、リーダ201とメンバ202が互いになるべく近い距離を保ちながら移動するように、それぞれの経路データが設定されていることが望ましい。
ここで、リーダ201とメンバ202が、それぞれノード104、105に移動したときに、サーバ101の指示装置113から指示が入力されたとすると、移動エージェント配信・管理プログラム118(より正確には、移動エージェント配信・管理プログラム118に基づいて動作するサーバ101の中央処理装置114)は、全リーダ位置管理データ117を参照してリーダ201が現在存在しているノード104の位置を特定し、通信装置115を用いて指示203をノード104に存在するリーダ201に送信する。
指示203を受信したリーダ201(より正確には、リーダ主プログラム301に基づいて動作するノード104の中央処理装置123)は、指示203をコピーして指示204を作成して移動エージェントグループ120のメンバ202に送信するとともに、指示203に基づき特定の処理を実行する。一方、指示204を受信したメンバ202(より正確には、メンバ主プログラム302に基づいて動作するノード105の中央処理装置123)は、指示204に基づき特定の処理を実行する。ここで、特定の処理は、指示203、204の内容に対して事前に取り決められた処理であり、リーダ201とメンバ202で同一の処理であるとする。
このシステムの応用例として、ソフトウェア更新システムがあげられる。更新の対象となるソフトウェアとしては、ノードを構成する各装置を制御するプログラムであるファームウェアなどが考えられる。ファームウェアは、ノードの二次記憶装置121に配置され、ノードが起動する時に中央処理装置123などによって読み込まれる。移動エージェント(リーダ201およびメンバ202)は、サービスデータとしてファームウェアを保持し、各ノードに移動した時に実行されるサービスプログラムの処理中で、そのファームウェアを二次記憶装置121に配置する。この時、二次記憶装置121にもともとあった古いファームウェアは、新しいものに置き換えられるか、バックアップ領域にコピーされる。
ソフトウェア更新を行う際には、ソフトウェア更新中における処理の停止やロールバックなどの機能が必要とされる。例えば、あるノードにおいて更新処理の途中でファームウェアの更新に失敗した場合などは、一度、更新処理を停止し、それまでに更新したノードのファームウェアを元に戻す操作(ロールバック)などを行う必要がある。処理の停止やロールバックを行うためには、各移動エージェントにその指示を伝える必要がある。
このような場合に、本発明によれば、サーバは、処理の停止等の指示を各移動エージェントに個別に伝えることなく、リーダのみにその指示を伝えるだけで同様の処理ができ、且つ、サーバとノード間の通信量も削減できる。
以下、図3〜図7を用いて、本実施形態において利用される各種データおよびプログラムの詳細を説明する。
図3は、移動エージェントデータ116のデータ構造の一例を示した図である。移動エージェントデータ116は、リーダ主プログラム301、メンバ主プログラム302、サービスプログラム303、サービスデータ304、指示処理プログラム情報305の集合、グループ運用情報306の集合で構成される。リーダ主プログラム301は、リーダ201を制御するためのプログラムである。メンバ主プログラム302は、メンバ202を制御するためのプログラムである。サービスプログラム303は、移動エージェントがノードに移動したときに実行されるプログラムである。サービスデータ304は、サービスプログラム303を実行するときに用いられるデータである。指示処理プログラム情報305の集合は、移動エージェントが指示を受信したときに実行されるプログラムのIDとプログラムの集合である。グループ運用情報306は、移動エージェントグループ120を運用するために必要なデータである。
各指示処理プログラム情報305は、プログラムを識別するための指示処理プログラムID311と、実際に実行されるプログラムである指示処理プログラム312で構成される。指示処理プログラムID311は、事前にサーバ101の指示装置113に登録された指示のIDと対応するものとする。
各グループ運用情報306は、移動エージェントグループ120に割り当てられる固有の番号であるグループID321と、リーダ経路情報322と、メンバ経路情報323の集合とで構成される。
リーダ経路情報322は、リーダとなる移動エージェントが順に移動するノードの順序を表す経路データ331である。経路データ331は、図4に示すように、各ノードの位置を示すアドレス401の配列であり、移動エージェントは、この配列に従って、経路データ331の先頭に格納されたアドレスから順番にノードを巡回する。
各メンバ経路情報323は、移動エージェントグループ120の各メンバに割り当てられる固有のIDであるメンバID332と、メンバとなる移動エージェントが順に移動するノードの順序を表す経路データ331で構成される。
図5は、全リーダ位置管理データ117のデータ構造の一例を示した図である。
全リーダ位置管理データ117は、リーダ位置管理情報501の集合である。そして、各リーダ位置管理情報501は、各リーダの属するグループのグループID321と、当該リーダの現在いるノードのアドレス401より成っている。
図6は、リーダ201の構成の一例を示した図である。
リーダ201の主体は、リーダ主プログラム301である。リーダ主プログラム301は、ノードの移動エージェント送受信プログラム125によって受信され、主記憶装置122に配置されて実行される。また、リーダ201は、グループID321と、経路データ331と、サーバの位置を記憶するために用いられるサーバアドレス601と、移動エージェントグループ120の各メンバの位置を記憶するために用いられるメンバ位置管理データ602と、サービスプログラム303と、サービスデータ304と、指示処理プログラム情報305の集合とを保持する。
メンバ位置管理データ602は、リーダ201と同一の移動エージェントグループに属する各メンバ202の、メンバID332とアドレス401との組の集合から成る。
ここで、サービスプログラム303は、リーダ201がノードに移動したときにリーダ主プログラム301により起動される。サービスプログラム303の実行時には、サービスデータ304が用いられる。例えば、ソフトウェア更新を行うサービスでは、サービスプログラム303は、サービスデータ304であるファームウェアを二次記憶装置などに配置する処理などを実行する。
図7は、メンバ202の構成の一例を示した図である。
メンバ202の主体は、メンバ主プログラム302である。メンバ主プログラム302は、ノードの移動エージェント送受信プログラム125によって受信され、主記憶装置122に配置されて実行される。また、メンバ202は、メンバID332と、経路データ331と、自身が属する移動エージェントグループ120のリーダ201の位置を表すリーダアドレス701と、サービスプログラム303と、サービスデータ304と、指示処理プログラム情報305の集合とを保持する。
以下、図8〜図10を用いて、本発明の実施の形態における処理手順の詳細を示す。
図8は、サーバ101における移動エージェント配信・管理プログラム118による配信・管理処理のフローチャートである。まず、中央処理装置114は、移動エージェントデータ116から、最初のグループ運用情報306を読み込む(ステップS101)。
次に、中央処理装置114は、移動エージェントグループを作成する(ステップS102)。
このステップS102の処理をより具体的に説明すると、まず、中央処理装置114は、通信装置115からアドレスを取り出してサーバアドレス601を作成し、さらにグループ運用情報306の各メンバ経路情報323からメンバID332と経路データ331における最初のアドレス401を取り出して、メンバ位置管理データ602を作成する。そして、移動エージェントデータ116から、リーダ主プログラム301と、サービスプログラム303と、サービスデータ304と、指示処理プログラム情報305を読み込み、グループ運用情報306のグループID321と、リーダ経路情報322である経路データ331と、前に作成したサーバアドレス601およびメンバ位置管理データ602とを組み合わせて、リーダ201となる移動エージェントを生成する。 次に、中央処理装置114は、グループ運用情報306のリーダ経路情報322における最初のアドレス401を取り出し、リーダアドレス701を作成する。そして、グループ運用情報306のメンバ経路情報323ごとにメンバID332と経路データ331を取り出して、取り出したメンバID332および経路データ331と、移動エージェントデータ116に含まれるメンバ主プログラム302と、サービスプログラム303と、サービスデータ304と、指示処理プログラム情報305と、前に作成したリーダアドレス701とを組み合わせて、メンバ202となる移動エージェントの集合を作成する。
次に、中央処理装置114は、前に読み出したグループID321とリーダアドレス701を組み合わせ、リーダ位置管理情報501を作成し、全リーダ位置管理データ117に追加する(ステップS103)。そして、通信装置115を用いて、上記ステップS102で生成した移動エージェントをそれぞれの最初の移動先となるノードに配信する(ステップS104)。
次に、すべてのグループ運用情報306について、移動エージェントの配信が終了したかチェックし、まだ終了していなければ、次のグループ運用情報306についてステップS101に戻って移動エージェントの生成と配信を実行する(ステップS105)。
すべてのグループ運用情報306について、移動エージェントの生成と配信が終了すると、イベント発生待ちに入る(ステップS106)。
ここで、通信装置115からリーダ移動通知を受信した場合(ステップS107でYES)、リーダ移動通知に含まれるグループID321に基づいて全リーダ位置管理データ117を検索し、該当するリーダ位置管理情報501を特定する。そして、同じくリーダ移動通知に含まれる当該リーダの移動先アドレスで、リーダ位置管理情報501のアドレス401を置き換え(ステップS108)、ステップS106に戻る。
また、指示装置113から指示が入力された場合(ステップS109でYES)、通信装置115を用いて、全リーダ位置管理データ117で管理されている各移動エージェントグループのリーダのアドレス401に、入力された指示に対応する指示処理プログラムID311を送信し(ステップS110)、ステップS106に戻る。
図9は、リーダ主プログラム301による制御処理のフローチャートである。リーダ201がノードに移動すると、ノードの中央処理装置123は、リーダ201に含まれるリーダ主プログラム301に従って下記の処理を実行する。
中央処理装置123は、まずサービスプログラム303を起動して、サービス処理を開始する(ステップS201)。そして、イベント発生待ちに入る(ステップS202)。
ここで、通信装置124からメンバ移動通知を受信した場合(ステップS203でYES)、中央処理装置123は、メンバ移動通知に含まれるメンバID332に基づいて、メンバ位置管理データ602を検索し、該当するメンバID332とアドレス401の組を特定する。そして、同じくメンバ移動通知に含まれる当該メンバの移動先アドレスによって、特定した組のアドレス401を置き換え(ステップS204)、ステップS202に戻る。
また、通信装置124から指示203を受信した場合(ステップS205でYES)、中央処理装置123は、通信装置124を用いて、メンバ位置管理データ602に含まれるすべてのアドレス401に、指示203をコピーして作成した指示204を送信し(ステップS206)、さらに、指示処理プログラム情報305の集合から、指示203に含まれる指示処理プログラムID311に該当する指示処理プログラム312を検索して実行し(ステップS207)、ステップS202に戻る。
また、ステップS201で開始したサービス処理が完了した場合(ステップS208でYES)、中央処理装置123は、リーダ201に含まれる経路データ331を参照して、次に移動すべきノードがあるかチェックし(ステップS209)、移動すべきノードがあれば、サーバアドレス601およびメンバ位置管理データ602を参照してサーバ101および移動エージェントグループ120の各メンバ202にリーダ移動通知を送信して、リーダ201の次の移動先アドレスを知らせる(ステップS210)。このリーダ移動通知には、グループID321と、リーダ201の移動先アドレスが含まれる。そして、中央処理装置123は、リーダ201を次のノードに移動させ(ステップS211)、処理を終了する。そして、この次のノードにおいて、同様の処理が実行されることになる。ステップS209において、次に移動すべきノードがなければ、処理を終了する。
図10は、メンバ主プログラム302による制御処理のフローチャートである。メンバ202がノードに移動すると、ノードの中央処理装置123は、メンバ202に含まれるメンバ主プログラム302に従って下記の処理を実行する。
中央処理装置123は、まずサービスプログラム303を起動して、サービス処理を開始する(ステップS301)。そして、イベント発生待ちに入る(ステップS302)。
ここで、通信装置124からリーダ移動通知を受信した場合(ステップS303でYES)、中央処理装置123は、リーダ移動通知に含まれるアドレスによって、リーダアドレス701を置き換え(ステップS304)、ステップS302に戻る。
また、リーダ201から指示204を受信した場合(ステップS305でYES)、指示処理プログラム情報305の集合から、指示204に含まれる指示処理プログラムID311に該当する指示処理プログラム312を検索して実行し(ステップS306)、ステップS302に戻る。
また、ステップS301で開始したサービス処理が完了した場合(ステップS307でYES)、中央処理装置123は、メンバ202に含まれる経路データ331に次のノードがあるかチェックし(ステップS308)、移動すべきノードがあれば、リーダアドレス701を参照して移動エージェントグループ120のリーダ201にメンバ移動通知を送信して、メンバ202の次の移動先アドレスを知らせる(ステップS309)。このメンバ移動通知には、メンバID332と、メンバ202の移動先アドレスが含まれる。そして、中央処理装置123は、メンバ202を次のノードに移動させ(ステップS310)、処理を終了する。そして、この次のノードにおいて、同様の処理が実行されることになる。ステップS308において、次に移動すべきノードがなければ、処理を終了する。
なお、本発明の実施の形態では、メンバ202の経路データ331をメンバ202自身が保持しているが、本発明はこれに限らない。例えば、各メンバ202の経路データ331をリーダ201に保持させ、リーダ201(より正確には、リーダ主プログラム301に基づいて動作する中央処理装置123)が各メンバ202の移動先を各メンバ202に適宜通知するようにしてもよい。
更に、各メンバ202にサービスプログラム303を複数保持させ、リーダ201には、各メンバ202の経路データ331と共に各メンバ202が次の移動先で実行すべきサービスプログラム303を特定するためのIDを複数保持させ、リーダ201が、各メンバ202に対して、各メンバ202の移動先と共に、次の移動先でメンバ202が実行すべきサービスプログラム303を指示するようにしてもよい。
更には、リーダ201は、各メンバ202からサービス処理の実行結果を受け取り、その結果によって、各メンバ202の次の移動先や、各メンバ202が実行すべきサービスプログラム303を随時判断し、その判断結果をメンバ202に通知するようにしてもよい。
また、移動エージェント(リーダ201およびメンバ202)が経路データ331を持たずに、近傍のノードを探索しながら移動するようにしてもよい。
また、本発明の実施の形態では、サーバ101からリーダ201に指示を送信しているが、リーダ201のアドレスさえ特定できれば、サーバ101以外の任意のノード102、103、104、105からでもリーダ201に指示を送信する(結果として、移動エージェントグループ120に含まれる全ての移動エージェントに指示が伝わる)ことができる。
また、ノード102の構成に二次記憶装置121が含まれているが、二次記憶装置121を持たない構成でもよい。
更に、移動エージェント配信・管理プログラム118は、移動エージェントグループ120内に、新たにサブリーダとなる移動エージェント(以下、単にサブリーダと称す。)を設ける機能を有していてもよい。この場合、サブリーダとリーダ201とが定期的に相互監視を行い、リーダ201が位置しているノードに障害等が起こりサーバ101からリーダ201への指示が行えない場合等に、サブリーダが新たなリーダとなってサーバ101との通信及び当該移動エージェントグループ120の管理を引き継ぐことにより、円滑な処理が可能となる。以下、図11から図14を用いて、上記サブリーダとリーダの相互監視処理の一例を説明する。
図11は、移動エージェントグループ120にサブリーダを設ける場合におけるリーダ1103のソフトウェア構成の一例を示した図である。
リーダフラグ1101は、各移動エージェントのリーダ・サブリーダ・メンバの区別に用いられ、この値によって、各移動エージェントの主プログラムがリーダ用、メンバ用とに切り替わるようになっているものとする。本例では、リーダの場合は1、サブリーダの場合は2、メンバの場合は3という数字が初期値として入るものとする。サブリーダアドレス1102は、サブリーダが現在いるノードのアドレスである。
図12は、移動エージェントグループ120にサブリーダを設ける場合におけるサブリーダ1202のソフトウェア構成の一例を示した図である。サブリーダ1202は、図7で示されるメンバ202のソフトウェア構成に、初期値として2が格納されているリーダフラグ1201と、サーバアドレス601と、メンバ位置管理データ602を加えたものに相当する。
図16は、移動エージェントグループ120にサブリーダを設ける場合におけるメンバ1602のソフトウェア構成の一例を示した図である。メンバ1602は、図7で示されるメンバ202のソフトウェア構成に、初期値として3が格納されているリーダフラグ1601を加えたものに相当する。
なお、ここでは、リーダ主プログラム301およびメンバ主プログラム302には、図13および図14のフローチャートに示す相互監視処理手順を実行するためのプログラムコードが新たに追加されているものとする。
図13は、リーダ1103における相互監視処理の一例のフローチャートである。
リーダ1103(より正確には、リーダ主プログラム301に基づいて動作する中央処理装置123)は、サブリーダアドレス1102に格納されているアドレス(すなわち、サブリーダ1202の現在のアドレス)に対して定期的に生存確認用パケットを送信する(ステップS1301)。そして、サブリーダ1202から応答があれば、ステップS1301に戻る(ステップS1302)。一方、サブリーダ1202からの応答がない場合は、サブリーダ1202またはサブリーダ1202が現在いるノードに何らかの障害が発生したと考えられるため、メンバ位置管理データ602より任意のメンバ1602を選択し、当該メンバ1602のアドレス401に、サブリーダ化の指示とメンバ位置管理データ602を送信する(ステップS1303)。その後、サブリーダアドレス1102の値を、当該メンバのアドレス401に置き換える(ステップS1304)。
図14は、サブリーダ1202における相互監視処理の一例のフローチャートである。
サブリーダ1202(より正確には、リーダ主プログラム301に基づいて動作する中央処理装置123)は、リーダアドレス701に格納されているアドレス(すなわち、リーダ1103の現在のアドレス)に対して定期的に生存確認用パケットを送信する(ステップS1401)。そして、リーダ1103から応答があれば、ステップS1401に戻る(ステップS1402)。一方、リーダ1103からの応答がない場合は、リーダ1103またはリーダ1103が現在いるノードに何らかの障害が発生したと考えられるため、自身をリーダ化すべく、リーダフラグ1201の値を1とする(ステップS1403)。その後、自アドレスを通信装置124から取得し、自らがリーダになった旨と共に、当該自アドレスをサーバ101及びメンバ位置管理データ602に含まれるすべてのアドレス401に送信する(ステップS1404)。こうしてリーダ化したサブリーダ1202は、以降、リーダ主プログラム301を主体とした移動エージェントとしてノード間を移動する。そして、新リーダ(元サブリーダ)1202は、メンバ位置管理データ602より任意のメンバを選択し、当該メンバのアドレス401にサブリーダ化の指示と、サーバアドレス601の値と、メンバ位置管理データ602を送信する(ステップS1405)。
ここで、当該指示を受け取ったメンバは、リーダフラグ1601の値を2にし、サーバアドレス601とメンバ位置管理データ602を保持して新たなサブリーダとなり、リーダとの相互監視処理を開始する。その後、新リーダ(元サブリーダ)1103はサブリーダアドレス1102の格納領域を作成し、ここに当該メンバのアドレス401を格納する(ステップS1406)。そして、新たなリーダとしての処理(すなわち、図13のフローチャートに示される処理)を開始する。
この相互監視処理により、リーダが位置しているノードに障害が起こり、リーダに実行障害が発生した場合でも、サブリーダがリーダに昇格することによってサーバからの指示を各メンバに行き渡らせることができる。
また、リーダの巡回先を減らして、リーダにはグループ管理を主にさせてもよい。例えば、巡回先をいくつかの地域単位に分け、任意の地域に移動した場合に、リーダは一箇所のノードに留まり、各メンバの巡回先や実行プログラムの判断・通知や、各メンバの障害監視等を主に行い、当該地域での巡回が終わった時点で、リーダを各グループメンバと共に次の地域に移動させてもよい。
(変形例)
なお、移動エージェントシステムの特色の一つとして、移動エージェント自身の複製による処理の並列実行や負荷分散等がある。このような場合に、複製したメンバの管理をリーダに行わせても良い。図15は移動エージェント複製が行われる場合の本発明の実施形態におけるシステムの処理手順の一例を示した図である。サーバ101からノード104に送信されたメンバ202は、メンバの複製処理を行い(1501)、新たなメンバ1502を生成するとともに、このメンバ1502に対して、所定の規則に基づいたメンバIDを付与する。当該メンバ1502は、当該メンバIDをリーダ201に通知(1503)し、リーダ201は、当該複製されたメンバ1502の情報を、メンバ位置管理データ602に追加登録する。これにより、例えば負荷の高い処理を行う場合等に、メンバが自らを複製して、複製したメンバをノードに配信し、処理の並列実行・負荷分散をさせることによって、更に効率的な処理が図れると同時に、メンバの数が増加してもサーバはリーダにのみ指示を送ればよいため、サーバから移動エージェントへの指示の送信に係る通信量は一定のままで済む。
本発明は、例えば複数の移動エージェントを利用してネットワーク上のノードを巡回するソフトウェア更新システム等に利用できる。
本発明における実施の形態のシステム構成を示した図 本発明の実施の形態におけるシステムの一連の処理手順を示した図 移動エージェントデータのデータ構造の一例を示した図 経路データのデータ構造の一例を示した図 全リーダ位置管理データのデータ構造の一例を示した図 リーダのソフトウェア構造の一例を示した図 メンバのソフトウェア構造の一例を示した図 移動エージェント配信・管理プログラムによる配信・管理処理の一例を示したフローチャート リーダ主プログラムによる制御処理の一例を示したフローチャート メンバ主プログラムによる制御処理の一例を示したフローチャート サブリーダをグループ内に設ける場合におけるリーダのソフトウェア構造の一例を示した図 サブリーダをグループ内に設ける場合におけるサブリーダのソフトウェア構造の一例を示した図 リーダにおける相互監視処理の一例を示したフローチャート サブリーダにおける相互監視処理の一例を示したフローチャート 移動エージェント複製が行われる場合の本発明の実施形態におけるシステムの一連の処理手順を示した図 サブリーダをグループ内に設ける場合におけるメンバのソフトウェア構造の一例を示した図 従来の移動エージェントシステムにおいて、サーバから各移動エージェントに指示を伝える状況を示した図
符号の説明
100 ネットワーク
101 サーバ
102 ノード
103 ノード
104 ノード
105 ノード
111 二次記憶装置
112 主記憶装置
113 指示装置
114 中央処理装置
115 通信装置
116 移動エージェントデータ
117 全リーダ位置管理データ
118 移動エージェント配信・管理プログラム
120 移動エージェントグループ
121 二次記憶装置
122 主記憶装置
123 中央処理装置
124 通信装置
125 移動エージェント送受信プログラム
201 リーダエージェント
202 メンバエージェント
203 サーバからの指示
204 リーダエージェントからの指示
1202 サブリーダエージェント
1501 メンバエージェントの複製動作
1502 複製されたメンバエージェント
1503 メンバエージェントからリーダエージェントへのID通知動作
1701 サーバ
1702 ノード
1703 移動エージェント
1704 移動エージェントグループ
1705 サーバからの指示

Claims (3)

  1. 所定のプログラムおよびデータからなる移動エージェントが、当該移動エージェントの実行環境を備えた相互に通信可能な複数のノード間を、各ノードのコンピュータに所定の処理を実行させつつ移動する移動エージェントシステムを実現するためにサーバで実行される移動エージェント配信・管理プログラムであって、
    前記移動エージェント配信・管理プログラムは、前記サーバのコンピュータに、
    複数の移動エージェントから成る移動エージェントグループとして、リーダエージェントとメンバエージェントからなる移動エージェントグループを生成する生成ステップと、
    前記生成ステップで生成した移動エージェントグループに属するリーダエージェント及びメンバエージェントをそれぞれ所定のノードに送信する送信ステップと、
    前記送信ステップで生成したリーダエージェントの現在位置を取得する取得ステップと、
    前記取得ステップで取得した前記リーダエージェントの現在位置に基づいて、前記移動エージェントグループ全体に対する指示を、当該移動エージェントグループに属するリーダエージェントにのみ送信する指示ステップとを実行させるためのプログラムであり、
    前記リーダエージェントは、当該リーダエージェントが位置しているノードのコンピュータに、
    前記サーバから前記指示を受けた時に、当該指示を応じた処理を実行するステップと、
    当該リーダエージェントが属する移動エージェントグループ内のメンバエージェントの現在位置を取得するメンバ位置取得ステップと、
    前記メンバ位置取得ステップで取得した前記メンバエージェントの現在位置に基づいて当該指示を当該リーダエージェントが属する移動エージェントグループ内のメンバエージェントに転送するステップとを実行させるためのプログラムを含んだ移動エージェントであり、
    前記メンバエージェントは、
    前記リーダエージェントから前記指示を受けた時に、その時点で当該メンバエージェントが位置しているノードのコンピュータに当該指示に応じた処理を実行させるためのプログラムを含んだ移動エージェントであることを特徴とする、移動エージェント配信・管理プログラム。
  2. 前記生成ステップは、前記リーダエージェントと前記メンバエージェントに加えてさらにサブリーダエージェントを含んだ移動エージェントグループを生成するものであり、
    前記サブリーダエージェントは、当該サブリーダエージェントが位置しているノードのコンピュータに、
    前記リーダエージェントとの間で定期的に相互監視を行うステップと、
    相互監視の結果、前記リーダエージェントに障害が起こったことが判明したときに、当該サブリーダエージェントをリーダ化するステップとを実行させるためのプログラムを含むことを特徴とする、請求項1に記載の移動エージェント配信・管理プログラム。
  3. 請求項1〜2のいずれかに記載の移動エージェント配信・管理プログラムを記憶した記憶手段と、当該記憶手段から当該移動エージェント配信・管理プログラムを読み出して実行する処理手段とを備えた情報処理装置。

JP2004033703A 2004-02-10 2004-02-10 移動エージェント配信・管理プログラムおよび移動エージェントシステム Pending JP2005227872A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004033703A JP2005227872A (ja) 2004-02-10 2004-02-10 移動エージェント配信・管理プログラムおよび移動エージェントシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004033703A JP2005227872A (ja) 2004-02-10 2004-02-10 移動エージェント配信・管理プログラムおよび移動エージェントシステム

Publications (1)

Publication Number Publication Date
JP2005227872A true JP2005227872A (ja) 2005-08-25

Family

ID=35002564

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004033703A Pending JP2005227872A (ja) 2004-02-10 2004-02-10 移動エージェント配信・管理プログラムおよび移動エージェントシステム

Country Status (1)

Country Link
JP (1) JP2005227872A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100346599C (zh) * 2005-08-26 2007-10-31 南京邮电大学 一种基于移动代理的网络分布式交互方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100346599C (zh) * 2005-08-26 2007-10-31 南京邮电大学 一种基于移动代理的网络分布式交互方法

Similar Documents

Publication Publication Date Title
JP4709840B2 (ja) ネットワークのノード間でデータ・コンポーネントをコピーする方法およびシステム
CN109005045B (zh) 主备服务系统及主节点故障恢复方法
TW200534637A (en) Redundant routing capabilities for a network node cluster
JP2006309638A (ja) 計算機システムおよびその計算機システムに用いられるホスト計算機およびストレージ装置、ならびに、計算機システムに用いられるボリューム切替方法
WO2010037794A2 (en) Monitoring mechanism for a distributed database
JP2005267216A (ja) ストレージリモートコピー方法および情報処理システム
JP6520448B2 (ja) 情報処理システム、情報処理装置及び情報処理装置制御方法
JP4159750B2 (ja) 分散計算機システム及びメンテナンスデータ適用方法
JP2000207370A (ja) 分散ファイル管理装置及び分散ファイル管理システム
JP2009169522A (ja) データ共有システム、データ共有方法、情報処理装置、プログラムおよび記憶媒体
JP2009224905A (ja) 通信装置およびその制御方法、通信システム
JP5655628B2 (ja) 情報処理システム、データバックアップ方法、情報処理装置及びその制御方法と制御プログラム
JP2007174672A (ja) ピアツーピアルックアップシステムに対するモビリティチャーン処理のための方法および装置
JP4777285B2 (ja) プロセス制御システム
US7126909B2 (en) Centralized management technique of call control data
JP2005227872A (ja) 移動エージェント配信・管理プログラムおよび移動エージェントシステム
JP2005209145A (ja) 双方向通信ネットワークデバイス管理装置およびネットワークデバイス管理方法およびプログラムおよび記録媒体
JP2011065495A (ja) ネットワークシステム、方法及びコンピュータプログラム
JP2009141774A (ja) データ処理装置及びその制御方法、コンピュータプログラム
JP2006338624A (ja) サーバアクセス制御システム、サーバアクセス制御方法およびサーバアクセス制御プログラム
CN109960469B (zh) 数据处理方法和装置
JP2015133067A (ja) 情報処理装置、情報処理方法及びプログラム
JP2001184325A (ja) 通信制御装置、プロセッサモジュール及び記録媒体
JP6273916B2 (ja) 冗長処理方法、冗長処理システム及び情報処理装置
JP2000049778A (ja) 同報通信方法および通信装置