JPH09319633A - 分散エージェントの実行制御方法 - Google Patents
分散エージェントの実行制御方法Info
- Publication number
- JPH09319633A JPH09319633A JP8138611A JP13861196A JPH09319633A JP H09319633 A JPH09319633 A JP H09319633A JP 8138611 A JP8138611 A JP 8138611A JP 13861196 A JP13861196 A JP 13861196A JP H09319633 A JPH09319633 A JP H09319633A
- Authority
- JP
- Japan
- Prior art keywords
- agent
- transaction
- agents
- processing
- identifier
- 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
Landscapes
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】
【課題】 分散処理システムにおいて、全てのエージェ
ント処理が実行されるか、または、どのエージェントの
処理も実行されないかの何れかの状態となることを保証
する。 【解決手段】 ネットワーク上にトランザクションに携
わる全てのエージェント20〜60と、それらの実行状
態を格納した管理テーブルを有するトランザクション・
マネージャ10とを与え、これらがメッセージを交換し
ながら処理を実行する。各エージェントは、処理結果に
より、成功の場合はコミット要求、失敗の場合はロール
バック要求のメッセージをトランザクション・マネージ
ャ10に送る。トランザクション・マネージャ10は、
1つでもロールバック要求を受け取ると、直ちに全エー
ジェントにロールバック処理を指示し、全エージェント
からコミット要求を受け付けると、全エージェントにコ
ミット処理を指示する。エージェント削除又は登録のメ
ッセージの場合は管理テーブルを更新する。
ント処理が実行されるか、または、どのエージェントの
処理も実行されないかの何れかの状態となることを保証
する。 【解決手段】 ネットワーク上にトランザクションに携
わる全てのエージェント20〜60と、それらの実行状
態を格納した管理テーブルを有するトランザクション・
マネージャ10とを与え、これらがメッセージを交換し
ながら処理を実行する。各エージェントは、処理結果に
より、成功の場合はコミット要求、失敗の場合はロール
バック要求のメッセージをトランザクション・マネージ
ャ10に送る。トランザクション・マネージャ10は、
1つでもロールバック要求を受け取ると、直ちに全エー
ジェントにロールバック処理を指示し、全エージェント
からコミット要求を受け付けると、全エージェントにコ
ミット処理を指示する。エージェント削除又は登録のメ
ッセージの場合は管理テーブルを更新する。
Description
【0001】
【発明の属する技術分野】本発明は、ネットワークに接
続された複数の計算機上でエージェント群が協調してト
ランザクションを実行する分散処理システムの分散エー
ジェントの実行制御方法に関し、特に、依頼された複数
のエージェントの組合せによって、インターネット等の
オープン・ネットワーク上で高い信頼性が要求される情
報処理を実現するとき、複数のエージェントによって行
なわれる処理の同期方法に関する。
続された複数の計算機上でエージェント群が協調してト
ランザクションを実行する分散処理システムの分散エー
ジェントの実行制御方法に関し、特に、依頼された複数
のエージェントの組合せによって、インターネット等の
オープン・ネットワーク上で高い信頼性が要求される情
報処理を実現するとき、複数のエージェントによって行
なわれる処理の同期方法に関する。
【0002】
【従来の技術】インターネットを始めとするオープン・
ネットワークの普及により、ネットワーク上に公開され
ている複数のサービスを組み合わせて、より複雑な高度
なサービスを提供したいという要求が顕著になってき
た。また、様々に変化するユーザ要求に対応するため、
サービスの利用者自身がサービスをカスタマイズ可能に
することが重要となってきた。こうした中で、利用者の
要求が託されたエージェントをネットワークに送り込
み、そのエージェントが利用者に代わってネットワーク
上を動き回り、必要な処理をするエージェント指向の処
理方法が多数提案されてきた。
ネットワークの普及により、ネットワーク上に公開され
ている複数のサービスを組み合わせて、より複雑な高度
なサービスを提供したいという要求が顕著になってき
た。また、様々に変化するユーザ要求に対応するため、
サービスの利用者自身がサービスをカスタマイズ可能に
することが重要となってきた。こうした中で、利用者の
要求が託されたエージェントをネットワークに送り込
み、そのエージェントが利用者に代わってネットワーク
上を動き回り、必要な処理をするエージェント指向の処
理方法が多数提案されてきた。
【0003】従来の典型的なエージェント指向の処理方
法では、エージェントが行なうべき処理のシナリオとエ
ージェントの内部状態を保持することができ、ネットワ
ーク上を移動しながら様々な処理を行なうことができ
る。また、1つのエージェントが自分自身の子孫を動的
に作り、複数のエージェントで協調して処理を行なうこ
とができる。
法では、エージェントが行なうべき処理のシナリオとエ
ージェントの内部状態を保持することができ、ネットワ
ーク上を移動しながら様々な処理を行なうことができ
る。また、1つのエージェントが自分自身の子孫を動的
に作り、複数のエージェントで協調して処理を行なうこ
とができる。
【0004】また、分散トランザクションの制御に関し
ては、従来から2フェーズ・コミットメント・プロトコ
ル(2PC)がオープン・システム・インターコネクシ
ョン(OSI)等の国際標準によって規定されれている
が、これは手続き型のプログラミングにおいて、トラン
ザクションの開始元であるプログラム要素がトランザク
ションのルートとなり、プログラムの呼出しに従ってト
ランザクション木を構成し、上位のプログラム要素が下
位のプログラム要素のトランザクションの制御を管理す
るというモデルである。
ては、従来から2フェーズ・コミットメント・プロトコ
ル(2PC)がオープン・システム・インターコネクシ
ョン(OSI)等の国際標準によって規定されれている
が、これは手続き型のプログラミングにおいて、トラン
ザクションの開始元であるプログラム要素がトランザク
ションのルートとなり、プログラムの呼出しに従ってト
ランザクション木を構成し、上位のプログラム要素が下
位のプログラム要素のトランザクションの制御を管理す
るというモデルである。
【0005】
【発明が解決しようとする課題】上述の従来の典型的な
エージェント指向の処理方法は、オンライン・トランザ
クション処理のような高い信頼性と処理効率とが要求さ
れるサービスを複数のエージェントの協調処理で実現す
る場合には、各エージェントで行なう複数の処理の全て
が確実に行なわれるか、その全ての処理を取り消すかを
保証しなければならない場合があり、このような制御を
エージェントの移動という通信手段しかない上述の従来
の処理方法だけで実現しようとすると、極めて複雑なシ
ナリオ記述が必要になる。
エージェント指向の処理方法は、オンライン・トランザ
クション処理のような高い信頼性と処理効率とが要求さ
れるサービスを複数のエージェントの協調処理で実現す
る場合には、各エージェントで行なう複数の処理の全て
が確実に行なわれるか、その全ての処理を取り消すかを
保証しなければならない場合があり、このような制御を
エージェントの移動という通信手段しかない上述の従来
の処理方法だけで実現しようとすると、極めて複雑なシ
ナリオ記述が必要になる。
【0006】また2PCは、上位のプログラム要素が下
位のプログラム要素のトランザクションの制御を管理す
るというモデルであるために、エージェントのように、
上下関係のないプログラム要素の集合がトランザクショ
ンを構成する場合には、そのままでは適用できない。
位のプログラム要素のトランザクションの制御を管理す
るというモデルであるために、エージェントのように、
上下関係のないプログラム要素の集合がトランザクショ
ンを構成する場合には、そのままでは適用できない。
【0007】また、オブジェクト技術関連の標準化団体
OMGは、分散オブジェクト・トランザクション・サー
ビス(OTS)において、上下関係のないオブジェクト
でトランザクションを管理するためのプログラミング・
インタフェース仕様を公開しているが、これを実現する
ための方法については述べられていない。
OMGは、分散オブジェクト・トランザクション・サー
ビス(OTS)において、上下関係のないオブジェクト
でトランザクションを管理するためのプログラミング・
インタフェース仕様を公開しているが、これを実現する
ための方法については述べられていない。
【0008】また、OTSでは、トランザクションの終
了の契機を与えるターミネータと呼ぶプログラム要素
(OTSでは通常はトランザクション開始の契機を与え
るトランザクション・クライアントと呼ぶプログラム要
素と同じ)が存在することを前提としており、トランザ
クションに携わる全てのエージェントが成功、あるいは
1つでも失敗したときに、自動的にトランザクションの
終了処理を開始することができない。さらに、オブジェ
クトがネットワークを移動したり、自己の判断で消滅あ
るいは増殖しうる場合に、トランザクションに携わる全
てのエージェントを把握する方法について言及されてい
ない。
了の契機を与えるターミネータと呼ぶプログラム要素
(OTSでは通常はトランザクション開始の契機を与え
るトランザクション・クライアントと呼ぶプログラム要
素と同じ)が存在することを前提としており、トランザ
クションに携わる全てのエージェントが成功、あるいは
1つでも失敗したときに、自動的にトランザクションの
終了処理を開始することができない。さらに、オブジェ
クトがネットワークを移動したり、自己の判断で消滅あ
るいは増殖しうる場合に、トランザクションに携わる全
てのエージェントを把握する方法について言及されてい
ない。
【0009】本発明の目的は、上述の問題点を解決し、
トランザクションに携わる全てのエージェントが成功す
るか、または1つでも失敗したときに、エージェントが
自律的に動作して、トランザクションの終了処理を自動
的に開始することができる分散エージェントの実行制御
方法を提供することにある。
トランザクションに携わる全てのエージェントが成功す
るか、または1つでも失敗したときに、エージェントが
自律的に動作して、トランザクションの終了処理を自動
的に開始することができる分散エージェントの実行制御
方法を提供することにある。
【0010】また、エージェントが自己の判断で消滅ま
たは増殖した場合であっても、トランザクションに携わ
る全てのエージェントを把握し、トランザクションの実
行を保証することにある。
たは増殖した場合であっても、トランザクションに携わ
る全てのエージェントを把握し、トランザクションの実
行を保証することにある。
【0011】
【課題を解決するための手段】本発明の分散エージェン
トの実行制御方法は、トランザクションに携わる全ての
エージェントの処理が確実に実行されるか、または全て
のエージェントの処理が実行されないかのいずれかの状
態となることを保証するために、次のステップを行な
う。
トの実行制御方法は、トランザクションに携わる全ての
エージェントの処理が確実に実行されるか、または全て
のエージェントの処理が実行されないかのいずれかの状
態となることを保証するために、次のステップを行な
う。
【0012】先ず、トランザクションに対して付与され
たトランザクション識別子と、トランザクションに携わ
る全てのエージェントの識別子とを含むテーブルが格納
されたトランザクション・マネージャをネットワーク上
に獲得あるいは配置する。
たトランザクション識別子と、トランザクションに携わ
る全てのエージェントの識別子とを含むテーブルが格納
されたトランザクション・マネージャをネットワーク上
に獲得あるいは配置する。
【0013】各エージェントは、それぞれ保持している
識別子によって特定されるトランザクション・マネージ
ャに対して、その処理に成功した場合には、そのエージ
ェント自身の識別子とトランザクションの識別子とを含
むコミット要求メッセージを送付し、処理に失敗した場
合には、同様にエージェント自身の識別子とトランザク
ションの識別子とを含むロールバック要求メッセージを
送付する。
識別子によって特定されるトランザクション・マネージ
ャに対して、その処理に成功した場合には、そのエージ
ェント自身の識別子とトランザクションの識別子とを含
むコミット要求メッセージを送付し、処理に失敗した場
合には、同様にエージェント自身の識別子とトランザク
ションの識別子とを含むロールバック要求メッセージを
送付する。
【0014】メッセージを受け取ったトランザクション
・マネージャは、コミット要求メッセージがきているか
をテーブルに基づいて監視し、トランザクションに携わ
る全てのエージェントからコミット要求メッセージがき
ているときに限り、全てのエージェントにコミット指示
メッセージを回答し、1つでもロールバック要求がきて
いる場合には、ロールバック指示メッセージを回答す
る。
・マネージャは、コミット要求メッセージがきているか
をテーブルに基づいて監視し、トランザクションに携わ
る全てのエージェントからコミット要求メッセージがき
ているときに限り、全てのエージェントにコミット指示
メッセージを回答し、1つでもロールバック要求がきて
いる場合には、ロールバック指示メッセージを回答す
る。
【0015】メッセージを受け取った各エージェント
は、上記指示メッセージに従って、コミットまたはロー
ルバックの処理を行なう。
は、上記指示メッセージに従って、コミットまたはロー
ルバックの処理を行なう。
【0016】すなわち、1つのトランザクションのイン
スタンスが生成された時点で、一意にトランザクション
・マネージャを特定し、そのトランザクション・マネー
ジャにそのトランザクションに携わる全てのエージェン
トの識別子と、それらの処理状態、すなわち、実行中
(E)、コミット要求中(CR)、ロールバック要求中
(RR)のいずれの状態にあるかを管理するテーブルを
保持させる。各エージェントは、その処理状態が(E)
または(RR)の場合にのみ、そのエージェントを消滅
させることを許す。ただし、消滅させるときには、トラ
ンザクション・マネージャに対して、削除要求メッセー
ジを送付するとともに、それまでに行なった処理をロー
ルバックする。また、各エージェントは、その処理状態
が(E)の場合にのみ、自己増殖することを許す。ただ
し、自己増殖させるときには、トランザクション・マネ
ージャが保持するエージェントの管理テーブルに新しく
生成したエージェント・インスタンスの識別子およびそ
の処理状態を登録する登録要求メッセージを送付する。
スタンスが生成された時点で、一意にトランザクション
・マネージャを特定し、そのトランザクション・マネー
ジャにそのトランザクションに携わる全てのエージェン
トの識別子と、それらの処理状態、すなわち、実行中
(E)、コミット要求中(CR)、ロールバック要求中
(RR)のいずれの状態にあるかを管理するテーブルを
保持させる。各エージェントは、その処理状態が(E)
または(RR)の場合にのみ、そのエージェントを消滅
させることを許す。ただし、消滅させるときには、トラ
ンザクション・マネージャに対して、削除要求メッセー
ジを送付するとともに、それまでに行なった処理をロー
ルバックする。また、各エージェントは、その処理状態
が(E)の場合にのみ、自己増殖することを許す。ただ
し、自己増殖させるときには、トランザクション・マネ
ージャが保持するエージェントの管理テーブルに新しく
生成したエージェント・インスタンスの識別子およびそ
の処理状態を登録する登録要求メッセージを送付する。
【0017】このようにして一旦処理状態がCRまたは
RRになったエージェントは、別の処理状態になること
を禁止する。
RRになったエージェントは、別の処理状態になること
を禁止する。
【0018】以上の方法により、各エージェントは最終
的にロールバック要求中(RR)またはコミット要求中
(CR)の状態となる。
的にロールバック要求中(RR)またはコミット要求中
(CR)の状態となる。
【0019】また、トランザクション・マネージャが保
持している管理テーブルには、該当のトランザクション
に携わる完全なエージェントのテーブルが保持されるの
で、全てのエージェントが(CR)状態となったのを契
機にトランザクション・マネージャがコミットの指示を
開始することができる。また、同様に、エージェントの
中の1つでも(RR)状態になれば、ロールバックの指
示が開始できる。
持している管理テーブルには、該当のトランザクション
に携わる完全なエージェントのテーブルが保持されるの
で、全てのエージェントが(CR)状態となったのを契
機にトランザクション・マネージャがコミットの指示を
開始することができる。また、同様に、エージェントの
中の1つでも(RR)状態になれば、ロールバックの指
示が開始できる。
【0020】
【発明の実施の形態】次に、本発明の実施例について図
面を参照して説明する。
面を参照して説明する。
【0021】図1は、本発明の分散エージェントの実行
制御方法の1実施例を示す原理構成図である。
制御方法の1実施例を示す原理構成図である。
【0022】ネットワーク上に、そのトランザクション
に携わる全てのエージェント20〜50と、それらの実
行状態を格納した管理テーブルを保持するトランザクシ
ョン・マネージャ10が任意の方法によって与えられ、
これらがメッセージを交換しながら処理を実行する。こ
の処理中に不要となったエージェント40の消滅、およ
び新たな子孫のエージェント60の生成が行なわれるこ
ともある。各エージェントは、その処理結果により、成
功の場合は「コミット要求」、失敗の場合は「ロールバ
ック要求」、そのエージェントの消滅の場合は「エージ
ェント削除」メッセージをトランザクション・マネージ
ャに送る。また、その処理中に子孫エージェントを生成
した場合には、「エージェント登録」メッセージをトラ
ンザクション・マネージャ10に送る。
に携わる全てのエージェント20〜50と、それらの実
行状態を格納した管理テーブルを保持するトランザクシ
ョン・マネージャ10が任意の方法によって与えられ、
これらがメッセージを交換しながら処理を実行する。こ
の処理中に不要となったエージェント40の消滅、およ
び新たな子孫のエージェント60の生成が行なわれるこ
ともある。各エージェントは、その処理結果により、成
功の場合は「コミット要求」、失敗の場合は「ロールバ
ック要求」、そのエージェントの消滅の場合は「エージ
ェント削除」メッセージをトランザクション・マネージ
ャに送る。また、その処理中に子孫エージェントを生成
した場合には、「エージェント登録」メッセージをトラ
ンザクション・マネージャ10に送る。
【0023】トランザクション・マネージャは、各エー
ジェントからのメッセージを受け付け、1つでも「ロー
ルバック要求」を受け取ると、直ちに全エージェントに
ロールバック処理を指示する。全てのエージェントから
「コミット要求」を受け付けた場合には、全てのエージ
ェントにコミット処理を指示する。また、「エージェン
ト削除」あるいは「エージェント登録」を受け付けた場
合には、該当エージェントを管理テーブルから削除、あ
るいは登録する。
ジェントからのメッセージを受け付け、1つでも「ロー
ルバック要求」を受け取ると、直ちに全エージェントに
ロールバック処理を指示する。全てのエージェントから
「コミット要求」を受け付けた場合には、全てのエージ
ェントにコミット処理を指示する。また、「エージェン
ト削除」あるいは「エージェント登録」を受け付けた場
合には、該当エージェントを管理テーブルから削除、あ
るいは登録する。
【0024】
【実施例】図2は、図1の10〜50に相当するエージ
ェント処理システムに最初にエージェントを送り込むと
きの手順を示すものである。
ェント処理システムに最初にエージェントを送り込むと
きの手順を示すものである。
【0025】先ず、ネットワークから利用可能なトラン
ザクション・マネージャを任意の方法で確保し(ステッ
プ102)、そのトランザクション・マネージャの識別
子を獲得する(ステップ103)。次に、そのトランザ
クションに必要ないくつかのエージェントを生成してシ
ステムに与えるとともに(ステップ105)、それらの
エージェントの識別子をトランザクション・マネージャ
が保持する管理テーブルに格納する(ステップ10
6)。この2つのステップ105,106は、一貫性を
保証する必要があるので、その処理は元のトランザクシ
ョンのサブ・トランザクションとして実現される。
ザクション・マネージャを任意の方法で確保し(ステッ
プ102)、そのトランザクション・マネージャの識別
子を獲得する(ステップ103)。次に、そのトランザ
クションに必要ないくつかのエージェントを生成してシ
ステムに与えるとともに(ステップ105)、それらの
エージェントの識別子をトランザクション・マネージャ
が保持する管理テーブルに格納する(ステップ10
6)。この2つのステップ105,106は、一貫性を
保証する必要があるので、その処理は元のトランザクシ
ョンのサブ・トランザクションとして実現される。
【0026】図3は、図1の構成図中の各エージェント
の処理手順を示す図である。
の処理手順を示す図である。
【0027】各エージェントは、それぞれ固有の処理を
実行する(ステップ202)。次に、この処理が最終的
に「成功」、「失敗」、「自己消滅」のいずれであるか
判定する(ステップ204,210)。
実行する(ステップ202)。次に、この処理が最終的
に「成功」、「失敗」、「自己消滅」のいずれであるか
判定する(ステップ204,210)。
【0028】エージェントの処理が「成功」の場合に
は、トランザクション・マネージャにコミット要求メッ
セージを送信して「コミット要求」をする(ステップ2
05)。このとき必要なトランザクション・マネージャ
のネットワーク・アドレスは、各エージェントが保有し
ているトランザクション・マネージャの識別子からネー
ムサーバ等を介して獲得することができる。次に、トラ
ンザクション・マネージャからの回答を待ち(ステップ
206)、回答が「コミット指示」であれば、「コミッ
ト処理」を行い(ステップ208)、そうでなければ、
「ロールバック処理」を行なって(ステップ212)、
終了する。
は、トランザクション・マネージャにコミット要求メッ
セージを送信して「コミット要求」をする(ステップ2
05)。このとき必要なトランザクション・マネージャ
のネットワーク・アドレスは、各エージェントが保有し
ているトランザクション・マネージャの識別子からネー
ムサーバ等を介して獲得することができる。次に、トラ
ンザクション・マネージャからの回答を待ち(ステップ
206)、回答が「コミット指示」であれば、「コミッ
ト処理」を行い(ステップ208)、そうでなければ、
「ロールバック処理」を行なって(ステップ212)、
終了する。
【0029】エージェントの処理が「失敗」の場合に
は、トランザクション・マネージャにロールバック要求
メッセージを送信して「ロールバック要求」をする(ス
テップ211)。それとともに、自らも「ロールバック
処理」を行なって(ステップ212)終了する。
は、トランザクション・マネージャにロールバック要求
メッセージを送信して「ロールバック要求」をする(ス
テップ211)。それとともに、自らも「ロールバック
処理」を行なって(ステップ212)終了する。
【0030】エージェントの処理が「自己消滅」、つま
り、自ら不要と判断したときは、トランザクション・マ
ネージャに「エージェント削除要求」メッセージを送信
し(ステップ213)、自らもロールバックして(ステ
ップ212)終了する。
り、自ら不要と判断したときは、トランザクション・マ
ネージャに「エージェント削除要求」メッセージを送信
し(ステップ213)、自らもロールバックして(ステ
ップ212)終了する。
【0031】図4は、同様に図1の構成図中のトランザ
クション・マネージャの処理手順を示す図である。
クション・マネージャの処理手順を示す図である。
【0032】1つのトランザクション・マネージャは、
複数のトランザクションを管理することも可能であり、
その場合は、各エージェントからのメッセージに含まれ
るトランザクション識別子によりそれそれのトランザク
ションを区別する。ここでは、簡単のために、全て同一
トランザクションに対するメッセージを受け取ったもの
として説明する。
複数のトランザクションを管理することも可能であり、
その場合は、各エージェントからのメッセージに含まれ
るトランザクション識別子によりそれそれのトランザク
ションを区別する。ここでは、簡単のために、全て同一
トランザクションに対するメッセージを受け取ったもの
として説明する。
【0033】トランザクション・マネージャは、それが
管理しているトランザクションに携わる全てのエージェ
ントからのメッセージを受け付ける(ステップ30
3)。そして、受け付けたメッセージが「コミット要
求」、「ロールバック要求」、「エージェント削除要
求」、「エージェント登録要求」のいずれであるかを判
断する(ステップ304,309,313)。
管理しているトランザクションに携わる全てのエージェ
ントからのメッセージを受け付ける(ステップ30
3)。そして、受け付けたメッセージが「コミット要
求」、「ロールバック要求」、「エージェント削除要
求」、「エージェント登録要求」のいずれであるかを判
断する(ステップ304,309,313)。
【0034】「コミット要求」の場合は、管理テーブル
の該当エージェントの状態を「コミット要求(CR)」
にする(ステップ305)。そして、そのトランザクシ
ョンに携わる全てのエージェントの状態が「CR」にな
っているかを判定し(ステップ306)、判定結果が
「YES」の場合は、そのトランザクションに携わる全
てのエージェントに「コミット指示」メッセージを送付
する(ステップ307)。このとき必要なそれらのエー
ジェントのネットワーク・アドレスは、ネームサーバ等
を介して、トランザクション・マネージャの保有してい
るエージェントの識別子のテーブルから獲得することが
できる。判定結果が「N0」の場合は、再びステップ3
03に戻り、メッセージを受け付ける。
の該当エージェントの状態を「コミット要求(CR)」
にする(ステップ305)。そして、そのトランザクシ
ョンに携わる全てのエージェントの状態が「CR」にな
っているかを判定し(ステップ306)、判定結果が
「YES」の場合は、そのトランザクションに携わる全
てのエージェントに「コミット指示」メッセージを送付
する(ステップ307)。このとき必要なそれらのエー
ジェントのネットワーク・アドレスは、ネームサーバ等
を介して、トランザクション・マネージャの保有してい
るエージェントの識別子のテーブルから獲得することが
できる。判定結果が「N0」の場合は、再びステップ3
03に戻り、メッセージを受け付ける。
【0035】「ロールバック要求」の場合は、そのトラ
ンザクションに携わる全てのエージェントに「ロールバ
ック指示」メッセージを送付する(ステップ310)。
ンザクションに携わる全てのエージェントに「ロールバ
ック指示」メッセージを送付する(ステップ310)。
【0036】「エージェント削除要求」の場合は、該当
エージェントを管理テーブルから削除する(ステップ3
11)。次に、全てのエージェントが削除されているか
を判定し(ステップ312)、「YES」であれば処理
を終了し、「NO」の場合には、全てのエージェントが
コミット要求済みになったかを確認する前述のステップ
306に制御を移す。「エージェント登録要求」の場合
には、該当エージェントを管理テーブルに登録し(ステ
ップ314)、再びステップ303に戻って次のメッセ
ージを受け付ける。
エージェントを管理テーブルから削除する(ステップ3
11)。次に、全てのエージェントが削除されているか
を判定し(ステップ312)、「YES」であれば処理
を終了し、「NO」の場合には、全てのエージェントが
コミット要求済みになったかを確認する前述のステップ
306に制御を移す。「エージェント登録要求」の場合
には、該当エージェントを管理テーブルに登録し(ステ
ップ314)、再びステップ303に戻って次のメッセ
ージを受け付ける。
【0037】図5は、図1の30および図3のステップ
202において、各エージェントが固有の処理を実行中
に、エージェントが新たな子孫のエージェントを生成
し、元のエージェントの処理の一部を委任する場合の手
順を示す図である。この場合は、新しいエージェントを
生成して(ステップ402)、システムに与えるととも
に、「エージェント登録要求」をトランザクション・マ
ネージャに送りそのエージェントの識別子をトランザク
ション・マネージャが保持する管理テーブルに登録する
(ステップ403)。この2つのステップの処理は、そ
の一貫性を保証する必要があるので、元のトランザクシ
ョンのサブ・トランザクションとして実現される。
202において、各エージェントが固有の処理を実行中
に、エージェントが新たな子孫のエージェントを生成
し、元のエージェントの処理の一部を委任する場合の手
順を示す図である。この場合は、新しいエージェントを
生成して(ステップ402)、システムに与えるととも
に、「エージェント登録要求」をトランザクション・マ
ネージャに送りそのエージェントの識別子をトランザク
ション・マネージャが保持する管理テーブルに登録する
(ステップ403)。この2つのステップの処理は、そ
の一貫性を保証する必要があるので、元のトランザクシ
ョンのサブ・トランザクションとして実現される。
【0038】
【発明の効果】上述のように本発明は、トランザクショ
ンの全エージェントの識別子と、トランザクション識別
子とを含むテーブルを有するトランザクション・マネー
ジャをネットワーク上に配置し、各エージェントが、そ
の処理の成功または失敗に応じて、コミット要求メッセ
ージ、またはロールバック要求メッセージをトランザク
ション・マネージャに対して送付し、トランザクション
・マネージャが、そのトランザクションの全エージェン
トからコミット要求メッセージを受け取ったときに限
り、全エージェントにコミット指示メッセージを回答
し、1つでもロールバック要求がきている場合には、ロ
ールバック指示メッセージを回答し、各エージェント
が、上記指示メッセージによりコミットまたはロールバ
ックの処理を行なうことにより、トランザクションに携
わるエージェントが実行途中で自律的に消滅、または増
殖を行なった場合でも、そのトランザクションに携わる
全てのエージェントがコミット要求の状態となるのを契
機に、各エージェントが自律的にトランザクションのコ
ミット処理を開始することができる効果がある。
ンの全エージェントの識別子と、トランザクション識別
子とを含むテーブルを有するトランザクション・マネー
ジャをネットワーク上に配置し、各エージェントが、そ
の処理の成功または失敗に応じて、コミット要求メッセ
ージ、またはロールバック要求メッセージをトランザク
ション・マネージャに対して送付し、トランザクション
・マネージャが、そのトランザクションの全エージェン
トからコミット要求メッセージを受け取ったときに限
り、全エージェントにコミット指示メッセージを回答
し、1つでもロールバック要求がきている場合には、ロ
ールバック指示メッセージを回答し、各エージェント
が、上記指示メッセージによりコミットまたはロールバ
ックの処理を行なうことにより、トランザクションに携
わるエージェントが実行途中で自律的に消滅、または増
殖を行なった場合でも、そのトランザクションに携わる
全てのエージェントがコミット要求の状態となるのを契
機に、各エージェントが自律的にトランザクションのコ
ミット処理を開始することができる効果がある。
【0039】また、同様に、エージェント中の1つでも
ロールバック要求の状態になれば、トランザクションの
ロールバック処理を開始することができる効果がある。
ロールバック要求の状態になれば、トランザクションの
ロールバック処理を開始することができる効果がある。
【図1】本発明の分散エージェントの実行制御方法の1
実施例の原理構成図である。
実施例の原理構成図である。
【図2】最初のエージェントを与えるまでの処理の流れ
図である。
図である。
【図3】各エージェントの処理の流れ図である。
【図4】トランザクション・マネージャの処理の流れ図
である。
である。
【図5】各エージェントの処理途中に新たな子孫のエー
ジェントを生成する場合の処理の流れ図である。
ジェントを生成する場合の処理の流れ図である。
10 トランザクション・マネージャ 20〜60 エージェント 101〜404 ステップ
Claims (3)
- 【請求項1】 ネットワークに接続された複数の計算機
上で、自律的なプログラム要素であるエージェント群が
協調して、ひとまとまりの処理であるトランザクション
を実行する分散処理システムの分散エージェントの実行
制御方法において、 ネットワーク上に、前記トランザクションに対して付与
されたトランザクション識別子と、前記トランザクショ
ンに携わる全てのエージェントの識別子とを含むテーブ
ルが格納されたトランザクション・マネージャを獲得あ
るいは配置するステップと、 各エージェントが保持している識別子によって特定され
るトランザクション・マネージャに対して、前記各エー
ジェントが、その処理に成功した場合には、そのエージ
ェント自身の識別子と前記トランザクションの識別子と
を含むコミット要求メッセージを送付し、処理に失敗し
た場合には、同様にエージェント自身の識別子とトラン
ザクションの識別子とを含むロールバック要求メッセー
ジを送付するステップと、 前記メッセージを受け取ったトランザクション・マネー
ジャが、前記テーブルに基づき、前記トランザクション
に携わる全てのエージェントからコミット要求メッセー
ジがきているかを監視し、全てのエージェントからコミ
ット要求メッセージがきているときに限り、全てのエー
ジェントにコミット指示メッセージを回答し、1つでも
ロールバック要求がきている場合には、ロールバック指
示メッセージを回答するステップと、 前記メッセージを受け取った各エージェントが、上記指
示メッセージに従って、コミットまたはロールバックの
処理を行なうステップとを含むことにより、 前記トランザクションに携わる全てのエージェントの処
理が確実に実行されるか、または前記全てのエージェン
トの処理が実行されないかのいずれかの状態となること
を保証することを特徴とする分散エージェントの実行制
御方法。 - 【請求項2】 1つのトランザクションに携わるエージ
ェントが、前記トランザクションの実行途中に不要にな
り消滅したとき、そのエージェントの消滅と同期して、
トランザクション・マネージャが保持しているエージェ
ントの識別子のテーブルから前記エージェントの識別子
を削除するステップを含む請求項1に記載の分散エージ
ェントの実行制御方法。 - 【請求項3】 1つのトランザクションに携わるエージ
ェントが、前記トランザクションの実行途中に新たに子
孫のエージェントを生成したときに、前記新たなエージ
ェントに対して、前記トランザクションの識別子とトラ
ンザクション・マネージャの識別子とを格納し、かつ、
前記トランザクション・マネージャが保持しているエー
ジェントの識別子のテーブルに、前記新しいエージェン
トの識別子をそのエージェントの生成と同期して追加す
るステップを含む請求項1に記載の分散エージェントの
実行制御方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8138611A JPH09319633A (ja) | 1996-05-31 | 1996-05-31 | 分散エージェントの実行制御方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8138611A JPH09319633A (ja) | 1996-05-31 | 1996-05-31 | 分散エージェントの実行制御方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH09319633A true JPH09319633A (ja) | 1997-12-12 |
Family
ID=15226137
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8138611A Pending JPH09319633A (ja) | 1996-05-31 | 1996-05-31 | 分散エージェントの実行制御方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH09319633A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002507021A (ja) * | 1998-03-12 | 2002-03-05 | クロスワールズ ソフトウエア インコーポレイテッド | 情報システムの独立性レベル及びトランザクション補償 |
| JP2020008999A (ja) * | 2018-07-04 | 2020-01-16 | 富士通株式会社 | 情報処理システム,情報処理装置および制御プログラム |
-
1996
- 1996-05-31 JP JP8138611A patent/JPH09319633A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002507021A (ja) * | 1998-03-12 | 2002-03-05 | クロスワールズ ソフトウエア インコーポレイテッド | 情報システムの独立性レベル及びトランザクション補償 |
| JP2020008999A (ja) * | 2018-07-04 | 2020-01-16 | 富士通株式会社 | 情報処理システム,情報処理装置および制御プログラム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6141720A (en) | Method and apparatus for coordination of a shared object in a distributed system | |
| JP3293839B2 (ja) | 作業ユニットに合わせてコミット範囲を調整するコンピュータ・システム | |
| US6295548B1 (en) | Detection of an imported transaction for finding the global transaction identifier | |
| US6470342B1 (en) | Process of maintaining a distributed map of transaction identifiers and using hashing to access these maps | |
| JP3846736B2 (ja) | 多サイトに分散されたオブジェクト管理環境に対するシステム及び方法 | |
| US8433676B2 (en) | Solution method of in-doubt state in two-phase commit protocol of distributed transaction | |
| EP1014266B1 (en) | Method, apparatus and program storage device for a client and adaptive synchronization and transformation server | |
| US6845505B1 (en) | Web request broker controlling multiple processes | |
| US6496825B1 (en) | Systems and methods for the detection of a loop-back of a transaction | |
| JPH10187519A (ja) | 分配システムの競合を防止する方法 | |
| JPH04229334A (ja) | コンピュータ・システム及びアプリケーションプログラム実行方法 | |
| JPH04229359A (ja) | コンピュータ・ネットワーク | |
| JPH04229333A (ja) | コミット手順の非同期的再同期化実行装置および方法 | |
| JPH04229335A (ja) | コミット手順の最適化方法 | |
| JPH0793272A (ja) | 資源の同期点管理を実行する装置および方法 | |
| CN106506490B (zh) | 一种分布式计算控制方法以及分布式计算系统 | |
| JP3589378B2 (ja) | 分散コンピューティング環境におけるグループ・リーダ回復のためのシステム | |
| JPH04229358A (ja) | 同期点回復手段を有するコンピュータ装置 | |
| JPH11331245A (ja) | ネットワ―ク・ディレクトリ・アクセス機構及び方法 | |
| JP2000090027A (ja) | オブジェクト管理システム、情報処理システム、オブジェクト管理プログラムを記録した記録媒体及び情報処理プログラムを記録した記録媒体 | |
| WO1998003912A1 (en) | Method and apparatus for coordination of a shared object in a distributed system | |
| US20020120597A1 (en) | Maintaining consistency of a global resource in a distributed peer process environment | |
| JP3860966B2 (ja) | マルチポイントパブリッシュ/サブスクライブ通信における証明付メッセージの配送およびキュー操作 | |
| JPH09511858A (ja) | Osiエージェントにおける要求の並列実行 | |
| JPH09319633A (ja) | 分散エージェントの実行制御方法 |