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
Application number
JP8138611A
Other languages
English (en)
Inventor
Takashi Fujimura
考 藤村
Masayuki Terada
雅之 寺田
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.)
NTT Inc
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP8138611A priority Critical patent/JPH09319633A/ja
Publication of JPH09319633A publication Critical patent/JPH09319633A/ja
Pending legal-status Critical Current

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つでもロールバック要求を受け取ると、直ちに全エー
ジェントにロールバック処理を指示し、全エージェント
からコミット要求を受け付けると、全エージェントにコ
ミット処理を指示する。エージェント削除又は登録のメ
ッセージの場合は管理テーブルを更新する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ネットワークに接
続された複数の計算機上でエージェント群が協調してト
ランザクションを実行する分散処理システムの分散エー
ジェントの実行制御方法に関し、特に、依頼された複数
のエージェントの組合せによって、インターネット等の
オープン・ネットワーク上で高い信頼性が要求される情
報処理を実現するとき、複数のエージェントによって行
なわれる処理の同期方法に関する。
【0002】
【従来の技術】インターネットを始めとするオープン・
ネットワークの普及により、ネットワーク上に公開され
ている複数のサービスを組み合わせて、より複雑な高度
なサービスを提供したいという要求が顕著になってき
た。また、様々に変化するユーザ要求に対応するため、
サービスの利用者自身がサービスをカスタマイズ可能に
することが重要となってきた。こうした中で、利用者の
要求が託されたエージェントをネットワークに送り込
み、そのエージェントが利用者に代わってネットワーク
上を動き回り、必要な処理をするエージェント指向の処
理方法が多数提案されてきた。
【0003】従来の典型的なエージェント指向の処理方
法では、エージェントが行なうべき処理のシナリオとエ
ージェントの内部状態を保持することができ、ネットワ
ーク上を移動しながら様々な処理を行なうことができ
る。また、1つのエージェントが自分自身の子孫を動的
に作り、複数のエージェントで協調して処理を行なうこ
とができる。
【0004】また、分散トランザクションの制御に関し
ては、従来から2フェーズ・コミットメント・プロトコ
ル(2PC)がオープン・システム・インターコネクシ
ョン(OSI)等の国際標準によって規定されれている
が、これは手続き型のプログラミングにおいて、トラン
ザクションの開始元であるプログラム要素がトランザク
ションのルートとなり、プログラムの呼出しに従ってト
ランザクション木を構成し、上位のプログラム要素が下
位のプログラム要素のトランザクションの制御を管理す
るというモデルである。
【0005】
【発明が解決しようとする課題】上述の従来の典型的な
エージェント指向の処理方法は、オンライン・トランザ
クション処理のような高い信頼性と処理効率とが要求さ
れるサービスを複数のエージェントの協調処理で実現す
る場合には、各エージェントで行なう複数の処理の全て
が確実に行なわれるか、その全ての処理を取り消すかを
保証しなければならない場合があり、このような制御を
エージェントの移動という通信手段しかない上述の従来
の処理方法だけで実現しようとすると、極めて複雑なシ
ナリオ記述が必要になる。
【0006】また2PCは、上位のプログラム要素が下
位のプログラム要素のトランザクションの制御を管理す
るというモデルであるために、エージェントのように、
上下関係のないプログラム要素の集合がトランザクショ
ンを構成する場合には、そのままでは適用できない。
【0007】また、オブジェクト技術関連の標準化団体
OMGは、分散オブジェクト・トランザクション・サー
ビス(OTS)において、上下関係のないオブジェクト
でトランザクションを管理するためのプログラミング・
インタフェース仕様を公開しているが、これを実現する
ための方法については述べられていない。
【0008】また、OTSでは、トランザクションの終
了の契機を与えるターミネータと呼ぶプログラム要素
(OTSでは通常はトランザクション開始の契機を与え
るトランザクション・クライアントと呼ぶプログラム要
素と同じ)が存在することを前提としており、トランザ
クションに携わる全てのエージェントが成功、あるいは
1つでも失敗したときに、自動的にトランザクションの
終了処理を開始することができない。さらに、オブジェ
クトがネットワークを移動したり、自己の判断で消滅あ
るいは増殖しうる場合に、トランザクションに携わる全
てのエージェントを把握する方法について言及されてい
ない。
【0009】本発明の目的は、上述の問題点を解決し、
トランザクションに携わる全てのエージェントが成功す
るか、または1つでも失敗したときに、エージェントが
自律的に動作して、トランザクションの終了処理を自動
的に開始することができる分散エージェントの実行制御
方法を提供することにある。
【0010】また、エージェントが自己の判断で消滅ま
たは増殖した場合であっても、トランザクションに携わ
る全てのエージェントを把握し、トランザクションの実
行を保証することにある。
【0011】
【課題を解決するための手段】本発明の分散エージェン
トの実行制御方法は、トランザクションに携わる全ての
エージェントの処理が確実に実行されるか、または全て
のエージェントの処理が実行されないかのいずれかの状
態となることを保証するために、次のステップを行な
う。
【0012】先ず、トランザクションに対して付与され
たトランザクション識別子と、トランザクションに携わ
る全てのエージェントの識別子とを含むテーブルが格納
されたトランザクション・マネージャをネットワーク上
に獲得あるいは配置する。
【0013】各エージェントは、それぞれ保持している
識別子によって特定されるトランザクション・マネージ
ャに対して、その処理に成功した場合には、そのエージ
ェント自身の識別子とトランザクションの識別子とを含
むコミット要求メッセージを送付し、処理に失敗した場
合には、同様にエージェント自身の識別子とトランザク
ションの識別子とを含むロールバック要求メッセージを
送付する。
【0014】メッセージを受け取ったトランザクション
・マネージャは、コミット要求メッセージがきているか
をテーブルに基づいて監視し、トランザクションに携わ
る全てのエージェントからコミット要求メッセージがき
ているときに限り、全てのエージェントにコミット指示
メッセージを回答し、1つでもロールバック要求がきて
いる場合には、ロールバック指示メッセージを回答す
る。
【0015】メッセージを受け取った各エージェント
は、上記指示メッセージに従って、コミットまたはロー
ルバックの処理を行なう。
【0016】すなわち、1つのトランザクションのイン
スタンスが生成された時点で、一意にトランザクション
・マネージャを特定し、そのトランザクション・マネー
ジャにそのトランザクションに携わる全てのエージェン
トの識別子と、それらの処理状態、すなわち、実行中
(E)、コミット要求中(CR)、ロールバック要求中
(RR)のいずれの状態にあるかを管理するテーブルを
保持させる。各エージェントは、その処理状態が(E)
または(RR)の場合にのみ、そのエージェントを消滅
させることを許す。ただし、消滅させるときには、トラ
ンザクション・マネージャに対して、削除要求メッセー
ジを送付するとともに、それまでに行なった処理をロー
ルバックする。また、各エージェントは、その処理状態
が(E)の場合にのみ、自己増殖することを許す。ただ
し、自己増殖させるときには、トランザクション・マネ
ージャが保持するエージェントの管理テーブルに新しく
生成したエージェント・インスタンスの識別子およびそ
の処理状態を登録する登録要求メッセージを送付する。
【0017】このようにして一旦処理状態がCRまたは
RRになったエージェントは、別の処理状態になること
を禁止する。
【0018】以上の方法により、各エージェントは最終
的にロールバック要求中(RR)またはコミット要求中
(CR)の状態となる。
【0019】また、トランザクション・マネージャが保
持している管理テーブルには、該当のトランザクション
に携わる完全なエージェントのテーブルが保持されるの
で、全てのエージェントが(CR)状態となったのを契
機にトランザクション・マネージャがコミットの指示を
開始することができる。また、同様に、エージェントの
中の1つでも(RR)状態になれば、ロールバックの指
示が開始できる。
【0020】
【発明の実施の形態】次に、本発明の実施例について図
面を参照して説明する。
【0021】図1は、本発明の分散エージェントの実行
制御方法の1実施例を示す原理構成図である。
【0022】ネットワーク上に、そのトランザクション
に携わる全てのエージェント20〜50と、それらの実
行状態を格納した管理テーブルを保持するトランザクシ
ョン・マネージャ10が任意の方法によって与えられ、
これらがメッセージを交換しながら処理を実行する。こ
の処理中に不要となったエージェント40の消滅、およ
び新たな子孫のエージェント60の生成が行なわれるこ
ともある。各エージェントは、その処理結果により、成
功の場合は「コミット要求」、失敗の場合は「ロールバ
ック要求」、そのエージェントの消滅の場合は「エージ
ェント削除」メッセージをトランザクション・マネージ
ャに送る。また、その処理中に子孫エージェントを生成
した場合には、「エージェント登録」メッセージをトラ
ンザクション・マネージャ10に送る。
【0023】トランザクション・マネージャは、各エー
ジェントからのメッセージを受け付け、1つでも「ロー
ルバック要求」を受け取ると、直ちに全エージェントに
ロールバック処理を指示する。全てのエージェントから
「コミット要求」を受け付けた場合には、全てのエージ
ェントにコミット処理を指示する。また、「エージェン
ト削除」あるいは「エージェント登録」を受け付けた場
合には、該当エージェントを管理テーブルから削除、あ
るいは登録する。
【0024】
【実施例】図2は、図1の10〜50に相当するエージ
ェント処理システムに最初にエージェントを送り込むと
きの手順を示すものである。
【0025】先ず、ネットワークから利用可能なトラン
ザクション・マネージャを任意の方法で確保し(ステッ
プ102)、そのトランザクション・マネージャの識別
子を獲得する(ステップ103)。次に、そのトランザ
クションに必要ないくつかのエージェントを生成してシ
ステムに与えるとともに(ステップ105)、それらの
エージェントの識別子をトランザクション・マネージャ
が保持する管理テーブルに格納する(ステップ10
6)。この2つのステップ105,106は、一貫性を
保証する必要があるので、その処理は元のトランザクシ
ョンのサブ・トランザクションとして実現される。
【0026】図3は、図1の構成図中の各エージェント
の処理手順を示す図である。
【0027】各エージェントは、それぞれ固有の処理を
実行する(ステップ202)。次に、この処理が最終的
に「成功」、「失敗」、「自己消滅」のいずれであるか
判定する(ステップ204,210)。
【0028】エージェントの処理が「成功」の場合に
は、トランザクション・マネージャにコミット要求メッ
セージを送信して「コミット要求」をする(ステップ2
05)。このとき必要なトランザクション・マネージャ
のネットワーク・アドレスは、各エージェントが保有し
ているトランザクション・マネージャの識別子からネー
ムサーバ等を介して獲得することができる。次に、トラ
ンザクション・マネージャからの回答を待ち(ステップ
206)、回答が「コミット指示」であれば、「コミッ
ト処理」を行い(ステップ208)、そうでなければ、
「ロールバック処理」を行なって(ステップ212)、
終了する。
【0029】エージェントの処理が「失敗」の場合に
は、トランザクション・マネージャにロールバック要求
メッセージを送信して「ロールバック要求」をする(ス
テップ211)。それとともに、自らも「ロールバック
処理」を行なって(ステップ212)終了する。
【0030】エージェントの処理が「自己消滅」、つま
り、自ら不要と判断したときは、トランザクション・マ
ネージャに「エージェント削除要求」メッセージを送信
し(ステップ213)、自らもロールバックして(ステ
ップ212)終了する。
【0031】図4は、同様に図1の構成図中のトランザ
クション・マネージャの処理手順を示す図である。
【0032】1つのトランザクション・マネージャは、
複数のトランザクションを管理することも可能であり、
その場合は、各エージェントからのメッセージに含まれ
るトランザクション識別子によりそれそれのトランザク
ションを区別する。ここでは、簡単のために、全て同一
トランザクションに対するメッセージを受け取ったもの
として説明する。
【0033】トランザクション・マネージャは、それが
管理しているトランザクションに携わる全てのエージェ
ントからのメッセージを受け付ける(ステップ30
3)。そして、受け付けたメッセージが「コミット要
求」、「ロールバック要求」、「エージェント削除要
求」、「エージェント登録要求」のいずれであるかを判
断する(ステップ304,309,313)。
【0034】「コミット要求」の場合は、管理テーブル
の該当エージェントの状態を「コミット要求(CR)」
にする(ステップ305)。そして、そのトランザクシ
ョンに携わる全てのエージェントの状態が「CR」にな
っているかを判定し(ステップ306)、判定結果が
「YES」の場合は、そのトランザクションに携わる全
てのエージェントに「コミット指示」メッセージを送付
する(ステップ307)。このとき必要なそれらのエー
ジェントのネットワーク・アドレスは、ネームサーバ等
を介して、トランザクション・マネージャの保有してい
るエージェントの識別子のテーブルから獲得することが
できる。判定結果が「N0」の場合は、再びステップ3
03に戻り、メッセージを受け付ける。
【0035】「ロールバック要求」の場合は、そのトラ
ンザクションに携わる全てのエージェントに「ロールバ
ック指示」メッセージを送付する(ステップ310)。
【0036】「エージェント削除要求」の場合は、該当
エージェントを管理テーブルから削除する(ステップ3
11)。次に、全てのエージェントが削除されているか
を判定し(ステップ312)、「YES」であれば処理
を終了し、「NO」の場合には、全てのエージェントが
コミット要求済みになったかを確認する前述のステップ
306に制御を移す。「エージェント登録要求」の場合
には、該当エージェントを管理テーブルに登録し(ステ
ップ314)、再びステップ303に戻って次のメッセ
ージを受け付ける。
【0037】図5は、図1の30および図3のステップ
202において、各エージェントが固有の処理を実行中
に、エージェントが新たな子孫のエージェントを生成
し、元のエージェントの処理の一部を委任する場合の手
順を示す図である。この場合は、新しいエージェントを
生成して(ステップ402)、システムに与えるととも
に、「エージェント登録要求」をトランザクション・マ
ネージャに送りそのエージェントの識別子をトランザク
ション・マネージャが保持する管理テーブルに登録する
(ステップ403)。この2つのステップの処理は、そ
の一貫性を保証する必要があるので、元のトランザクシ
ョンのサブ・トランザクションとして実現される。
【0038】
【発明の効果】上述のように本発明は、トランザクショ
ンの全エージェントの識別子と、トランザクション識別
子とを含むテーブルを有するトランザクション・マネー
ジャをネットワーク上に配置し、各エージェントが、そ
の処理の成功または失敗に応じて、コミット要求メッセ
ージ、またはロールバック要求メッセージをトランザク
ション・マネージャに対して送付し、トランザクション
・マネージャが、そのトランザクションの全エージェン
トからコミット要求メッセージを受け取ったときに限
り、全エージェントにコミット指示メッセージを回答
し、1つでもロールバック要求がきている場合には、ロ
ールバック指示メッセージを回答し、各エージェント
が、上記指示メッセージによりコミットまたはロールバ
ックの処理を行なうことにより、トランザクションに携
わるエージェントが実行途中で自律的に消滅、または増
殖を行なった場合でも、そのトランザクションに携わる
全てのエージェントがコミット要求の状態となるのを契
機に、各エージェントが自律的にトランザクションのコ
ミット処理を開始することができる効果がある。
【0039】また、同様に、エージェント中の1つでも
ロールバック要求の状態になれば、トランザクションの
ロールバック処理を開始することができる効果がある。
【図面の簡単な説明】
【図1】本発明の分散エージェントの実行制御方法の1
実施例の原理構成図である。
【図2】最初のエージェントを与えるまでの処理の流れ
図である。
【図3】各エージェントの処理の流れ図である。
【図4】トランザクション・マネージャの処理の流れ図
である。
【図5】各エージェントの処理途中に新たな子孫のエー
ジェントを生成する場合の処理の流れ図である。
【符号の説明】
10 トランザクション・マネージャ 20〜60 エージェント 101〜404 ステップ

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 ネットワークに接続された複数の計算機
    上で、自律的なプログラム要素であるエージェント群が
    協調して、ひとまとまりの処理であるトランザクション
    を実行する分散処理システムの分散エージェントの実行
    制御方法において、 ネットワーク上に、前記トランザクションに対して付与
    されたトランザクション識別子と、前記トランザクショ
    ンに携わる全てのエージェントの識別子とを含むテーブ
    ルが格納されたトランザクション・マネージャを獲得あ
    るいは配置するステップと、 各エージェントが保持している識別子によって特定され
    るトランザクション・マネージャに対して、前記各エー
    ジェントが、その処理に成功した場合には、そのエージ
    ェント自身の識別子と前記トランザクションの識別子と
    を含むコミット要求メッセージを送付し、処理に失敗し
    た場合には、同様にエージェント自身の識別子とトラン
    ザクションの識別子とを含むロールバック要求メッセー
    ジを送付するステップと、 前記メッセージを受け取ったトランザクション・マネー
    ジャが、前記テーブルに基づき、前記トランザクション
    に携わる全てのエージェントからコミット要求メッセー
    ジがきているかを監視し、全てのエージェントからコミ
    ット要求メッセージがきているときに限り、全てのエー
    ジェントにコミット指示メッセージを回答し、1つでも
    ロールバック要求がきている場合には、ロールバック指
    示メッセージを回答するステップと、 前記メッセージを受け取った各エージェントが、上記指
    示メッセージに従って、コミットまたはロールバックの
    処理を行なうステップとを含むことにより、 前記トランザクションに携わる全てのエージェントの処
    理が確実に実行されるか、または前記全てのエージェン
    トの処理が実行されないかのいずれかの状態となること
    を保証することを特徴とする分散エージェントの実行制
    御方法。
  2. 【請求項2】 1つのトランザクションに携わるエージ
    ェントが、前記トランザクションの実行途中に不要にな
    り消滅したとき、そのエージェントの消滅と同期して、
    トランザクション・マネージャが保持しているエージェ
    ントの識別子のテーブルから前記エージェントの識別子
    を削除するステップを含む請求項1に記載の分散エージ
    ェントの実行制御方法。
  3. 【請求項3】 1つのトランザクションに携わるエージ
    ェントが、前記トランザクションの実行途中に新たに子
    孫のエージェントを生成したときに、前記新たなエージ
    ェントに対して、前記トランザクションの識別子とトラ
    ンザクション・マネージャの識別子とを格納し、かつ、
    前記トランザクション・マネージャが保持しているエー
    ジェントの識別子のテーブルに、前記新しいエージェン
    トの識別子をそのエージェントの生成と同期して追加す
    るステップを含む請求項1に記載の分散エージェントの
    実行制御方法。
JP8138611A 1996-05-31 1996-05-31 分散エージェントの実行制御方法 Pending JPH09319633A (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002507021A (ja) * 1998-03-12 2002-03-05 クロスワールズ ソフトウエア インコーポレイテッド 情報システムの独立性レベル及びトランザクション補償
JP2020008999A (ja) * 2018-07-04 2020-01-16 富士通株式会社 情報処理システム,情報処理装置および制御プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
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) 分散エージェントの実行制御方法