JPH11184699A - 移動オブジェクト群の実行方法、及び移動オブジェクト群を格納した記憶媒体 - Google Patents
移動オブジェクト群の実行方法、及び移動オブジェクト群を格納した記憶媒体Info
- Publication number
- JPH11184699A JPH11184699A JP9324945A JP32494597A JPH11184699A JP H11184699 A JPH11184699 A JP H11184699A JP 9324945 A JP9324945 A JP 9324945A JP 32494597 A JP32494597 A JP 32494597A JP H11184699 A JPH11184699 A JP H11184699A
- Authority
- JP
- Japan
- Prior art keywords
- place
- activity
- job
- agent
- carrier agent
- 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
- G06F9/4862—Task 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
(57)【要約】
【課題】 ネットワークに分散するプレースに移動し、
ジョブを実行する移動エージェントの移動時におけるネ
ットワークの負荷を最小限に抑える。 【解決手段】各プレースで実行するジョブを定義するコ
ンクリート・アクティビティ358をキャリア・エージ
ェント352に乗せて各プレースに移動させる。この一
方、移動オブジェクト群本体350は、キャリア・エー
ジェントに保持されたコンクリート・アクティビティ3
58に実行の指示を送出するプロキシー・アクティビテ
ィ355を保持する。この移動オブジェクト群本体35
0が各プレースを巡回し、各プレースに移動しているコ
ンクリート・アクティビティ358に実行の指示を送出
していく。
ジョブを実行する移動エージェントの移動時におけるネ
ットワークの負荷を最小限に抑える。 【解決手段】各プレースで実行するジョブを定義するコ
ンクリート・アクティビティ358をキャリア・エージ
ェント352に乗せて各プレースに移動させる。この一
方、移動オブジェクト群本体350は、キャリア・エー
ジェントに保持されたコンクリート・アクティビティ3
58に実行の指示を送出するプロキシー・アクティビテ
ィ355を保持する。この移動オブジェクト群本体35
0が各プレースを巡回し、各プレースに移動しているコ
ンクリート・アクティビティ358に実行の指示を送出
していく。
Description
【0001】
【産業上の利用分野】この発明は、分散コンピュータ環
境にあって、ネットワーク上に存在する遠隔サーバに移
動し、該遠隔サーバにおいてインストラクションを形成
する移動エージェント技術に関し、より詳しくは、移動
エージェントを遠隔サーバに移動させる方式に関する。
境にあって、ネットワーク上に存在する遠隔サーバに移
動し、該遠隔サーバにおいてインストラクションを形成
する移動エージェント技術に関し、より詳しくは、移動
エージェントを遠隔サーバに移動させる方式に関する。
【0002】
【従来の技術】従来より、分散コンピュータ環境におい
て、ネットワーク上に存在するサーバに移動し、インス
トラクションを形成する移動エージェント(モーバイル
エージェント)技術が存在する(特開平7−18217
4号公報(USP5,603,031)、特表平7−509799号公
報(国際出願番号:PCT/US94/07397、国際公開番号:WO97/
02219)、「日経コミュニケーション別冊、最新インター
ネットテクノロジ」日経BP社pp104−117、西
田 文比古、藤原 進 著等)。
て、ネットワーク上に存在するサーバに移動し、インス
トラクションを形成する移動エージェント(モーバイル
エージェント)技術が存在する(特開平7−18217
4号公報(USP5,603,031)、特表平7−509799号公
報(国際出願番号:PCT/US94/07397、国際公開番号:WO97/
02219)、「日経コミュニケーション別冊、最新インター
ネットテクノロジ」日経BP社pp104−117、西
田 文比古、藤原 進 著等)。
【0003】かかる移動エージェントは、「移動エージ
ェント」と「プレース」という2つの基本要素を基に構
成される。この移動エージェントは、自分自身の内部状
態を保持したままネットワーク上に存在するプレース間
を移動することができる。そして、このプレースにおい
て他のエージェント(移動エージェントまたは非移動エ
ージェント)とコンタクトし、必要なサービスを受ける
ことができる。プレースは、ネットワーク上に存在する
サーバによって提供されているエージェントの移動場所
であり、エージェント間のコンタクトをサポートし、ま
た、ハードウエア及びプラットフォームの違いを吸収し
ている。
ェント」と「プレース」という2つの基本要素を基に構
成される。この移動エージェントは、自分自身の内部状
態を保持したままネットワーク上に存在するプレース間
を移動することができる。そして、このプレースにおい
て他のエージェント(移動エージェントまたは非移動エ
ージェント)とコンタクトし、必要なサービスを受ける
ことができる。プレースは、ネットワーク上に存在する
サーバによって提供されているエージェントの移動場所
であり、エージェント間のコンタクトをサポートし、ま
た、ハードウエア及びプラットフォームの違いを吸収し
ている。
【0004】このような移動エージェント技術は、社内
会議のセッティングを社員のスケジュールや会議室の予
約状況に応じてダイナミックに調整したり、ネットワー
ク上に分散する所望の情報を入手する等、これまで人手
によってなされていた作業をこの移動エージェントが代
行することを可能にしている。
会議のセッティングを社員のスケジュールや会議室の予
約状況に応じてダイナミックに調整したり、ネットワー
ク上に分散する所望の情報を入手する等、これまで人手
によってなされていた作業をこの移動エージェントが代
行することを可能にしている。
【0005】また、本願の出願時においては公知ではな
いが、本願出願人が平成9年4月10日に出願した特願
平9−92091号公報のように、移動エージェントの
複雑な行動を基本的行動パターンに分類し、その組合せ
によって、移動エージェントの所望の行動パターンを定
義できるテンプレート(モデレータ・テンプレート)を
提供し、移動エージェントが渡り歩く各プレースにおい
てリクエストを出すアクティビティを、プレデセッサ
(前任者:前のプレースで仕事をするアクティビティ)
とサクセッサ(承継者:次のプレースで仕事をするアク
ティビティ)として管理する技術が存在する。
いが、本願出願人が平成9年4月10日に出願した特願
平9−92091号公報のように、移動エージェントの
複雑な行動を基本的行動パターンに分類し、その組合せ
によって、移動エージェントの所望の行動パターンを定
義できるテンプレート(モデレータ・テンプレート)を
提供し、移動エージェントが渡り歩く各プレースにおい
てリクエストを出すアクティビティを、プレデセッサ
(前任者:前のプレースで仕事をするアクティビティ)
とサクセッサ(承継者:次のプレースで仕事をするアク
ティビティ)として管理する技術が存在する。
【0006】しかし、この技術を使用すると、各プレー
スにおいて実行するジョブを規定するアクティビティの
全てを保持した状態で種々のプレースを渡り歩くことと
なり、移動の際の情報量が多く、ネットワークへの負担
が過大になり、各プレースにおいても必要以上の記憶域
を占有してしまうという問題点があった(アクティビテ
ィは、他のオブジェクトに比べ非常に重い)。
スにおいて実行するジョブを規定するアクティビティの
全てを保持した状態で種々のプレースを渡り歩くことと
なり、移動の際の情報量が多く、ネットワークへの負担
が過大になり、各プレースにおいても必要以上の記憶域
を占有してしまうという問題点があった(アクティビテ
ィは、他のオブジェクトに比べ非常に重い)。
【0007】また、予め決定された協調アルゴリズム
(プラン)にのみ、そのモデルが適用され、移動エージ
ェントが放たれた後、移動途中で実行するジョブを組み
替えたり、新たに追加するような柔軟性のある行動は取
れなかった。
(プラン)にのみ、そのモデルが適用され、移動エージ
ェントが放たれた後、移動途中で実行するジョブを組み
替えたり、新たに追加するような柔軟性のある行動は取
れなかった。
【0008】
【発明が解決しようとする課題】本発明の一つの目的
は、ネットワークに分散するプレースに移動し、ジョブ
を実行する移動エージェントの移動時におけるネットワ
ークの負荷を最小限に抑えることにある。
は、ネットワークに分散するプレースに移動し、ジョブ
を実行する移動エージェントの移動時におけるネットワ
ークの負荷を最小限に抑えることにある。
【0009】本発明の一つの目的は、各プレースの資源
の占有を最小限に抑えることのできる移動エージェント
を提供することにある。
の占有を最小限に抑えることのできる移動エージェント
を提供することにある。
【0010】本発明の他の一つの目的は、移動途中で柔
軟に実行するジョブを変更することのできる移動エージ
ェントを提供することにある。
軟に実行するジョブを変更することのできる移動エージ
ェントを提供することにある。
【0011】本発明の他の一つの目的は、移動エージェ
ントを放ってから結果が返ってくるまでに要する処理時
間を短縮することにある。
ントを放ってから結果が返ってくるまでに要する処理時
間を短縮することにある。
【0012】
【課題を解決するための手段】本発明においては、各プ
レースで実行するジョブを定義するコンクリート・アク
ティビティをキャリア・エージェントに乗せて各プレー
スに移動させる。この一方、移動オブジェクト群本体
は、キャリア・エージェントに保持されたコンクリート
・アクティビティに実行の指示を送出するプロキシー・
アクティビティを保持する。この移動オブジェクト群本
体が各プレースを巡回し、各プレースに移動しているコ
ンクリート・アクティビティに実行の指示を送出してい
く。これにより、巡回する全てのプレースで実行するコ
ンクリート・アクティビティを保持して各プレースを渡
り歩くよりも、送信すべき情報量が少なくて済み、ネッ
トワークの負荷を抑えることができ、高速な移動により
最終結果を受領する時間が短縮できる。また、各プレー
スで占有する記憶域も少なくなる。
レースで実行するジョブを定義するコンクリート・アク
ティビティをキャリア・エージェントに乗せて各プレー
スに移動させる。この一方、移動オブジェクト群本体
は、キャリア・エージェントに保持されたコンクリート
・アクティビティに実行の指示を送出するプロキシー・
アクティビティを保持する。この移動オブジェクト群本
体が各プレースを巡回し、各プレースに移動しているコ
ンクリート・アクティビティに実行の指示を送出してい
く。これにより、巡回する全てのプレースで実行するコ
ンクリート・アクティビティを保持して各プレースを渡
り歩くよりも、送信すべき情報量が少なくて済み、ネッ
トワークの負荷を抑えることができ、高速な移動により
最終結果を受領する時間が短縮できる。また、各プレー
スで占有する記憶域も少なくなる。
【0013】本発明の一態様においては、ネットワーク
上に分散する異なるプレースにおいて異なるジョブを実
行する方法であって、(a)第1のプレースで実行する
ジョブを定義する第1のコンクリート・アクティビティ
を保持する第1のキャリア・エージェントを生成する段
階と、(b)第2のプレースで実行するジョブを定義す
る第2のコンクリート・アクティビティを保持する第2
のキャリア・エージェントを生成する段階と、(c)前
記第1のキャリア・エージェントを特定する情報と前記
第2のキャリア・エージェントを特定する情報とを含
み、前記第1のプレースにおいて前記第1のキャリア・
エージェントに対し、前記第1のコンクリート・アクテ
ィビティにジョブの実行を指示し、前記第2のプレース
において前記第2のキャリア・エージェントに対し、前
記第2のコンクリート・アクティビティにジョブの実行
を指示する移動オブジェクト群本体を生成する段階と、
(d)前記第1のキャリア・エージェントを前記第1の
プレースに移動させる段階と、(e)前記第2のキャリ
ア・エージェントを前記第2のプレースに移動させる段
階と、(f)前記移動オブジェクト群本体を前記第1の
プレースに移動させる段階と、(g)前記第1のプレー
スにおいて、前記移動オブジェクト群本体が前記第1の
キャリア・エージェントを特定し、前記第1のコンクリ
ート・アクティビティにジョブの実行を指示することに
より、前記第1のコンクリート・アクティビティのジョ
ブを実行する段階と、(h)前記移動オブジェクト群本
体を前記第2のプレースに移動させる段階と、(i)前
記第2のプレースにおいて、前記移動オブジェクト群本
体が前記第2のキャリア・エージェントを特定し、前記
第2のコンクリート・アクティビティにジョブの実行を
指示することにより、前記第2のコンクリート・アクテ
ィビティのジョブを実行する段階と、を含む移動オブジ
ェクト群の実行方法が提供される。
上に分散する異なるプレースにおいて異なるジョブを実
行する方法であって、(a)第1のプレースで実行する
ジョブを定義する第1のコンクリート・アクティビティ
を保持する第1のキャリア・エージェントを生成する段
階と、(b)第2のプレースで実行するジョブを定義す
る第2のコンクリート・アクティビティを保持する第2
のキャリア・エージェントを生成する段階と、(c)前
記第1のキャリア・エージェントを特定する情報と前記
第2のキャリア・エージェントを特定する情報とを含
み、前記第1のプレースにおいて前記第1のキャリア・
エージェントに対し、前記第1のコンクリート・アクテ
ィビティにジョブの実行を指示し、前記第2のプレース
において前記第2のキャリア・エージェントに対し、前
記第2のコンクリート・アクティビティにジョブの実行
を指示する移動オブジェクト群本体を生成する段階と、
(d)前記第1のキャリア・エージェントを前記第1の
プレースに移動させる段階と、(e)前記第2のキャリ
ア・エージェントを前記第2のプレースに移動させる段
階と、(f)前記移動オブジェクト群本体を前記第1の
プレースに移動させる段階と、(g)前記第1のプレー
スにおいて、前記移動オブジェクト群本体が前記第1の
キャリア・エージェントを特定し、前記第1のコンクリ
ート・アクティビティにジョブの実行を指示することに
より、前記第1のコンクリート・アクティビティのジョ
ブを実行する段階と、(h)前記移動オブジェクト群本
体を前記第2のプレースに移動させる段階と、(i)前
記第2のプレースにおいて、前記移動オブジェクト群本
体が前記第2のキャリア・エージェントを特定し、前記
第2のコンクリート・アクティビティにジョブの実行を
指示することにより、前記第2のコンクリート・アクテ
ィビティのジョブを実行する段階と、を含む移動オブジ
ェクト群の実行方法が提供される。
【0014】本発明の他の一態様においては、ネットワ
ーク上に分散する少なくとも1つのプレースにおいてジ
ョブを実行する方法であって、(a)前記プレースで実
行するジョブを定義するコンクリート・アクティビティ
を保持するキャリア・エージェントを生成する段階と、
(b)前記キャリア・エージェントを特定する情報を含
み、前記プレースにおいて前記キャリア・エージェント
に対し、前記コンクリート・アクティビティにジョブの
実行を指示する移動オブジェクト群本体を生成する段階
と、(c)前記キャリア・エージェントを前記プレース
に移動させる段階と、(d)前記移動オブジェクト群本
体を前記プレースに移動させる段階と、(e)前記プレ
ースにおいて、前記移動オブジェクト群本体が前記キャ
リア・エージェントを特定し、前記コンクリート・アク
ティビティにジョブの実行を指示することにより、前記
コンクリート・アクティビティのジョブを実行する段階
と、を含む移動オブジェクト群の実行方法が提供され
る。
ーク上に分散する少なくとも1つのプレースにおいてジ
ョブを実行する方法であって、(a)前記プレースで実
行するジョブを定義するコンクリート・アクティビティ
を保持するキャリア・エージェントを生成する段階と、
(b)前記キャリア・エージェントを特定する情報を含
み、前記プレースにおいて前記キャリア・エージェント
に対し、前記コンクリート・アクティビティにジョブの
実行を指示する移動オブジェクト群本体を生成する段階
と、(c)前記キャリア・エージェントを前記プレース
に移動させる段階と、(d)前記移動オブジェクト群本
体を前記プレースに移動させる段階と、(e)前記プレ
ースにおいて、前記移動オブジェクト群本体が前記キャ
リア・エージェントを特定し、前記コンクリート・アク
ティビティにジョブの実行を指示することにより、前記
コンクリート・アクティビティのジョブを実行する段階
と、を含む移動オブジェクト群の実行方法が提供され
る。
【0015】本発明の他の一態様においては、ネットワ
ーク上に分散する少なくとも1つのプレースにおいてジ
ョブを実行する方法であって、(a)前記プレースで実
行するジョブを定義するコンクリート・アクティビティ
を保持するキャリア・エージェントを前記プレースに移
動させる段階と、(b)前記キャリア・エージェントを
特定する情報を含み、前記プレースにおいて前記キャリ
ア・エージェントに対し、前記コンクリート・アクティ
ビティにジョブの実行を指示する移動オブジェクト群本
体を前記プレースに移動させる段階と、(c)前記プレ
ースにおいて、前記移動オブジェクト群本体が前記キャ
リア・エージェントを特定し、前記コンクリート・アク
ティビティにジョブの実行を指示することにより、前記
コンクリート・アクティビティのジョブを実行する段階
と、を含む移動オブジェクト群の実行方法が提供され
る。
ーク上に分散する少なくとも1つのプレースにおいてジ
ョブを実行する方法であって、(a)前記プレースで実
行するジョブを定義するコンクリート・アクティビティ
を保持するキャリア・エージェントを前記プレースに移
動させる段階と、(b)前記キャリア・エージェントを
特定する情報を含み、前記プレースにおいて前記キャリ
ア・エージェントに対し、前記コンクリート・アクティ
ビティにジョブの実行を指示する移動オブジェクト群本
体を前記プレースに移動させる段階と、(c)前記プレ
ースにおいて、前記移動オブジェクト群本体が前記キャ
リア・エージェントを特定し、前記コンクリート・アク
ティビティにジョブの実行を指示することにより、前記
コンクリート・アクティビティのジョブを実行する段階
と、を含む移動オブジェクト群の実行方法が提供され
る。
【0016】本発明の他の一態様においては、ネットワ
ーク上に分散する異なるプレースにおいて異なるジョブ
を実行する移動オブジェクト群の少なくとも一部を格納
する記憶媒体であって、(a)第1のプレースで実行す
るジョブを定義する第1のコンクリート・アクティビテ
ィを保持する第1のキャリア・エージェントと、(b)
第2のプレースで実行するジョブを定義する第2のコン
クリート・アクティビティを保持する第2のキャリア・
エージェントと、(c)前記第1のキャリア・エージェ
ントを特定する情報と前記第2のキャリア・エージェン
トを特定する情報とを含み、前記第1のプレースにおい
て前記第1のキャリア・エージェントに対し、前記第1
のコンクリート・アクティビティにジョブの実行を指示
し、前記第2のプレースにおいて前記第2のキャリア・
エージェントに対し、前記第2のコンクリート・アクテ
ィビティにジョブの実行を指示する移動オブジェクト群
本体と、を格納する記憶媒体が提供される。
ーク上に分散する異なるプレースにおいて異なるジョブ
を実行する移動オブジェクト群の少なくとも一部を格納
する記憶媒体であって、(a)第1のプレースで実行す
るジョブを定義する第1のコンクリート・アクティビテ
ィを保持する第1のキャリア・エージェントと、(b)
第2のプレースで実行するジョブを定義する第2のコン
クリート・アクティビティを保持する第2のキャリア・
エージェントと、(c)前記第1のキャリア・エージェ
ントを特定する情報と前記第2のキャリア・エージェン
トを特定する情報とを含み、前記第1のプレースにおい
て前記第1のキャリア・エージェントに対し、前記第1
のコンクリート・アクティビティにジョブの実行を指示
し、前記第2のプレースにおいて前記第2のキャリア・
エージェントに対し、前記第2のコンクリート・アクテ
ィビティにジョブの実行を指示する移動オブジェクト群
本体と、を格納する記憶媒体が提供される。
【0017】本発明の他の一態様においては、ネットワ
ーク上に分散するプレースにおいてジョブを実行する移
動オブジェクト群の少なくとも一部を格納する記憶媒体
であって、(a)プレースで実行するジョブを定義する
コンクリート・アクティビティを保持するキャリア・エ
ージェントと、(b)前記キャリア・エージェントを特
定する情報を含み、前記プレースにおいて前記キャリア
・エージェントに対し、前記コンクリート・アクティビ
ティにジョブの実行を指示する移動オブジェクト群本体
と、を格納する記憶媒体が提供される。
ーク上に分散するプレースにおいてジョブを実行する移
動オブジェクト群の少なくとも一部を格納する記憶媒体
であって、(a)プレースで実行するジョブを定義する
コンクリート・アクティビティを保持するキャリア・エ
ージェントと、(b)前記キャリア・エージェントを特
定する情報を含み、前記プレースにおいて前記キャリア
・エージェントに対し、前記コンクリート・アクティビ
ティにジョブの実行を指示する移動オブジェクト群本体
と、を格納する記憶媒体が提供される。
【0018】本発明の他の一態様においては、ネットワ
ーク上に分散する異なるプレースにおいてメッセージを
送出する移動オブジェクト群の少なくとも一部を格納す
る記憶媒体であって、(a)第1のプレースで実行する
ジョブを定義する第1のコンクリート・アクティビティ
を保持する第1のキャリア・エージェントを特定する情
報を含み、前記第1のプレースにおいて前記第1のキャ
リア・エージェントに対し、前記第1のコンクリート・
アクティビティにジョブの実行を指示する第1のプロキ
シー・アクティビティと、(b)第2のプレースで実行
するジョブを定義する第2のコンクリート・アクティビ
ティを保持する第2のキャリア・エージェントを特定す
る情報を含み、前記第2のプレースにおいて前記第2の
キャリア・エージェントに対し、前記第2のコンクリー
ト・アクティビティにジョブの実行を指示する第2のプ
ロキシー・アクティビティと、(c)前記第1のプロキ
シー・アクティビティと前記第2のプロキシー・アクテ
ィビティの実行順序を定義する順序リストと、を格納す
る記憶媒体が提供される。
ーク上に分散する異なるプレースにおいてメッセージを
送出する移動オブジェクト群の少なくとも一部を格納す
る記憶媒体であって、(a)第1のプレースで実行する
ジョブを定義する第1のコンクリート・アクティビティ
を保持する第1のキャリア・エージェントを特定する情
報を含み、前記第1のプレースにおいて前記第1のキャ
リア・エージェントに対し、前記第1のコンクリート・
アクティビティにジョブの実行を指示する第1のプロキ
シー・アクティビティと、(b)第2のプレースで実行
するジョブを定義する第2のコンクリート・アクティビ
ティを保持する第2のキャリア・エージェントを特定す
る情報を含み、前記第2のプレースにおいて前記第2の
キャリア・エージェントに対し、前記第2のコンクリー
ト・アクティビティにジョブの実行を指示する第2のプ
ロキシー・アクティビティと、(c)前記第1のプロキ
シー・アクティビティと前記第2のプロキシー・アクテ
ィビティの実行順序を定義する順序リストと、を格納す
る記憶媒体が提供される。
【0019】本発明の他の一態様においては、ネットワ
ーク上に分散するプレースにおいて、前記プレースに到
着したプロキシー・アクティビティを含む移動オブジェ
クト群本体の指示に応答してジョブを実行する移動オブ
ジェクトを格納する記憶媒体であって、(a)前記プレ
ースで実行するジョブを定義するコンクリート・アクテ
ィビティと、(b)前記プロキシー・アクティビティが
前記コンクリート・アクティビティを特定するために前
記プロキシー・アクティビティに提供されるコンクリー
ト・アクティビティ・テーブルと、(c)前記プロキシ
ー・アクティビティからジョブの実行命令メッセージを
受領するためのメソッドと、を格納する記憶媒体が提供
される。
ーク上に分散するプレースにおいて、前記プレースに到
着したプロキシー・アクティビティを含む移動オブジェ
クト群本体の指示に応答してジョブを実行する移動オブ
ジェクトを格納する記憶媒体であって、(a)前記プレ
ースで実行するジョブを定義するコンクリート・アクテ
ィビティと、(b)前記プロキシー・アクティビティが
前記コンクリート・アクティビティを特定するために前
記プロキシー・アクティビティに提供されるコンクリー
ト・アクティビティ・テーブルと、(c)前記プロキシ
ー・アクティビティからジョブの実行命令メッセージを
受領するためのメソッドと、を格納する記憶媒体が提供
される。
【0020】本発明の他の一態様においては、ネットワ
ーク上に分散するプレースにおいて、前記プレースに到
着したプロキシー・アクティビティを含む移動オブジェ
クト群本体の指示に応答してジョブを実行する移動オブ
ジェクトを格納する記憶媒体であって、(a)前記プレ
ースで実行するジョブを定義するコンクリート・アクテ
ィビティと、(b)前記プロキシー・アクティビティか
らジョブの実行命令メッセージを受領するためのメソッ
ドと、を格納する記憶媒体が提供される。
ーク上に分散するプレースにおいて、前記プレースに到
着したプロキシー・アクティビティを含む移動オブジェ
クト群本体の指示に応答してジョブを実行する移動オブ
ジェクトを格納する記憶媒体であって、(a)前記プレ
ースで実行するジョブを定義するコンクリート・アクテ
ィビティと、(b)前記プロキシー・アクティビティか
らジョブの実行命令メッセージを受領するためのメソッ
ドと、を格納する記憶媒体が提供される。
【0021】
【実施例】A.概要 以下、図面を参照して本発明の実施例を説明する。図1
を参照すると、本発明によって生成された移動オブジェ
クトを実行する分散ネットワーク環境150が示されて
いる。各サーバ112〜117には、移動エージェント
125、135、141等にサービスを与えることが可
能なプレース102〜107が用意されている。この分
散ネットワーク環境におけるプレース群はクラウドと呼
ばれている。
を参照すると、本発明によって生成された移動オブジェ
クトを実行する分散ネットワーク環境150が示されて
いる。各サーバ112〜117には、移動エージェント
125、135、141等にサービスを与えることが可
能なプレース102〜107が用意されている。この分
散ネットワーク環境におけるプレース群はクラウドと呼
ばれている。
【0022】クライアント・システム101において
は、移動エージェントを生成するための移動エージェン
ト生成部113が存在する。移動エージェント生成部1
13は、モデレータ・エージェント111に、生成した
プランを渡し、モデレータ・エージェントはそのプラン
を実行することにより、指定されたプレースを移動して
いくことができる。
は、移動エージェントを生成するための移動エージェン
ト生成部113が存在する。移動エージェント生成部1
13は、モデレータ・エージェント111に、生成した
プランを渡し、モデレータ・エージェントはそのプラン
を実行することにより、指定されたプレースを移動して
いくことができる。
【0023】移動エージェント125等は各プレース1
02〜107において存在する他のエージェントとコン
タクトし(移動エージェントとコンタクトし、サービス
を提供するエージェントを特にアクター・エージェント
と呼ぶ)、リクエストを送出し、そのリクエストの結果
を受けることができる。プレースは、エージェント間の
コンタクトをサポートしている。また、移動エージェン
ト125等は、アクター・エージェントから受領したリ
クエストの結果をResult139、143、15
3、163として保持し、移動を継続することができ、
移動途中で、このResultを合成、分割等さまざま
な加工を施すことも可能である。
02〜107において存在する他のエージェントとコン
タクトし(移動エージェントとコンタクトし、サービス
を提供するエージェントを特にアクター・エージェント
と呼ぶ)、リクエストを送出し、そのリクエストの結果
を受けることができる。プレースは、エージェント間の
コンタクトをサポートしている。また、移動エージェン
ト125等は、アクター・エージェントから受領したリ
クエストの結果をResult139、143、15
3、163として保持し、移動を継続することができ、
移動途中で、このResultを合成、分割等さまざま
な加工を施すことも可能である。
【0024】本発明において、移動エージェントの移
動、分裂、消滅は、モデレータ・テンプレート181〜
187によって制御されており、ユーザは、その処理の
態様により、さまざまなテンプレートを組合せ、図2に
示すような分割や融合を含む複雑な作業を簡単に定義す
ることができる。
動、分裂、消滅は、モデレータ・テンプレート181〜
187によって制御されており、ユーザは、その処理の
態様により、さまざまなテンプレートを組合せ、図2に
示すような分割や融合を含む複雑な作業を簡単に定義す
ることができる。
【0025】B.ハードウエア構成 図3は、本発明の好適な実施例における移動エージェン
ト生成システムのハードウェア構成の概観図が示されて
いる。移動エージェント生成システム100は、中央処
理装置(CPU)1とメモリ4とを含んでいる。CPU
1とメモリ4は、バス2等を介して、補助記憶装置とし
てのハードディスク装置13、31とを接続してある。
フロッピーディスク装置(またはMO、CD−ROM等
の媒体駆動装置13、26、28、29、30)20は
フロッピーディスクコントローラ(またはIDEコント
ローラ25、SCSIコントローラ27等の各種コント
ローラ)19を介してバス2へ接続されている。
ト生成システムのハードウェア構成の概観図が示されて
いる。移動エージェント生成システム100は、中央処
理装置(CPU)1とメモリ4とを含んでいる。CPU
1とメモリ4は、バス2等を介して、補助記憶装置とし
てのハードディスク装置13、31とを接続してある。
フロッピーディスク装置(またはMO、CD−ROM等
の媒体駆動装置13、26、28、29、30)20は
フロッピーディスクコントローラ(またはIDEコント
ローラ25、SCSIコントローラ27等の各種コント
ローラ)19を介してバス2へ接続されている。
【0026】フロッピーディスク装置(またはMO、C
D−ROM等の媒体駆動装置26、28、29)20に
は、フロッピーディスク(またはMO、CD−ROM等
の媒体)が挿入され、このフロッピーディスク等やハー
ドディスク装置13、30、ROM14等の記憶媒体に
は、オペレーティングシステムと協働してCPU等に命
令を与え、本発明を実施するためのコンピュータ・プロ
グラムのコードを記録することができ、メモリ4にロー
ドされることによって実行される。このコンピュータ・
プログラムのコードは圧縮し、または、複数に分割し
て、複数の媒体にまたがって記録することもできる。
D−ROM等の媒体駆動装置26、28、29)20に
は、フロッピーディスク(またはMO、CD−ROM等
の媒体)が挿入され、このフロッピーディスク等やハー
ドディスク装置13、30、ROM14等の記憶媒体に
は、オペレーティングシステムと協働してCPU等に命
令を与え、本発明を実施するためのコンピュータ・プロ
グラムのコードを記録することができ、メモリ4にロー
ドされることによって実行される。このコンピュータ・
プログラムのコードは圧縮し、または、複数に分割し
て、複数の媒体にまたがって記録することもできる。
【0027】移動エージェント生成システム100は更
に、ユーザ・インターフェース・ハードウェアを備えた
システムとすることができ、ユーザ・インターフェース
・ハードウェアとしては、例えば、画面位置情報を入力
をするためのポインティング・デバイス(マウス、ジョ
イスティック、トラックボール等)7、キー入力をサポ
ートするキーボード6や、イメージデータをユーザに提
示するためのディスプレイ11、12がある。また、ス
ピーカ23は、オーディオ・コントローラ21から音声
信号を、アンプ22を介して受領し、音声として出力す
る。
に、ユーザ・インターフェース・ハードウェアを備えた
システムとすることができ、ユーザ・インターフェース
・ハードウェアとしては、例えば、画面位置情報を入力
をするためのポインティング・デバイス(マウス、ジョ
イスティック、トラックボール等)7、キー入力をサポ
ートするキーボード6や、イメージデータをユーザに提
示するためのディスプレイ11、12がある。また、ス
ピーカ23は、オーディオ・コントローラ21から音声
信号を、アンプ22を介して受領し、音声として出力す
る。
【0028】本発明の移動エージェント生成システム1
00の入力となるGUIプラン・ノード・ライブラリ
(後に詳述する)は、ハードディスク30に格納されて
おり、SCSIインターフェース27を介して本データ
ベース検索システム100に入力される。シリアルポー
ト15およびモデムまたは、トークンリング等の通信ア
ダプタ18等を介して他のコンピュータ等と通信を行
い、他のシステムのデータベースにアクセスすること
や、フロッピーディスク24等の記憶媒体に存在するデ
ータベースにアクセスすることも可能である。
00の入力となるGUIプラン・ノード・ライブラリ
(後に詳述する)は、ハードディスク30に格納されて
おり、SCSIインターフェース27を介して本データ
ベース検索システム100に入力される。シリアルポー
ト15およびモデムまたは、トークンリング等の通信ア
ダプタ18等を介して他のコンピュータ等と通信を行
い、他のシステムのデータベースにアクセスすること
や、フロッピーディスク24等の記憶媒体に存在するデ
ータベースにアクセスすることも可能である。
【0029】このように、本発明は、通常のパーソナル
コンピュータ(PC)やワークステーション、テレビや
FAX等の各種家電製品に組み込まれたコンピュータ又
はこれらの組合せによって実施可能であることを容易に
理解できるであろう。ただし、これらの構成要素は例示
であり、その全ての構成成要素が本発明の必須の構成要
素となるわけではない。特に、本発明は、移動エージェ
ントの生成を行うものであるため、シリアルポート1
5、通信アダプタカード18、オーディオ・コントロー
ラ21、アンプ22、スピーカ23等の構成要素は本発
明の一態様においては必須のものではない。
コンピュータ(PC)やワークステーション、テレビや
FAX等の各種家電製品に組み込まれたコンピュータ又
はこれらの組合せによって実施可能であることを容易に
理解できるであろう。ただし、これらの構成要素は例示
であり、その全ての構成成要素が本発明の必須の構成要
素となるわけではない。特に、本発明は、移動エージェ
ントの生成を行うものであるため、シリアルポート1
5、通信アダプタカード18、オーディオ・コントロー
ラ21、アンプ22、スピーカ23等の構成要素は本発
明の一態様においては必須のものではない。
【0030】オペレーティング・システムとしては、W
indows(マイクロソフト社の商標)、OS/2
(IBM社の商標)、AIX(IBM社の商標)上のX
−WINDOWシステム(MIT社の商標)などの、標
準でGUIマルチウインドウ環境をサポートするものが
望ましいが、特定のオペレーティング・システム環境に
限定されるものではない。
indows(マイクロソフト社の商標)、OS/2
(IBM社の商標)、AIX(IBM社の商標)上のX
−WINDOWシステム(MIT社の商標)などの、標
準でGUIマルチウインドウ環境をサポートするものが
望ましいが、特定のオペレーティング・システム環境に
限定されるものではない。
【0031】また、図3は、スタンド・アロン環境のシ
ステムを示しているが、クライアント/サーバ・システ
ムとして本発明を実現し、クライアント・マシンは、サ
ーバ・マシンに対して、イーサネット、トークン・リン
グなどでLAN接続し、サーバ・マシン側には、後述す
るプラン分割部等を配置し、その他の機能をクライアン
ト・マシン側に配置してもよい。このように、サーバ・
マシン側とクライアント・マシン側にどのような機能を
配置するかは設計に際し自由に変更できる事項であり、
複数のマシンを組合せ、それらにどのような機能を配分
し、実施するか等の種々の変更は本発明の思想に包含さ
れる概念である。
ステムを示しているが、クライアント/サーバ・システ
ムとして本発明を実現し、クライアント・マシンは、サ
ーバ・マシンに対して、イーサネット、トークン・リン
グなどでLAN接続し、サーバ・マシン側には、後述す
るプラン分割部等を配置し、その他の機能をクライアン
ト・マシン側に配置してもよい。このように、サーバ・
マシン側とクライアント・マシン側にどのような機能を
配置するかは設計に際し自由に変更できる事項であり、
複数のマシンを組合せ、それらにどのような機能を配分
し、実施するか等の種々の変更は本発明の思想に包含さ
れる概念である。
【0032】C.システム構成 次に、図4、5のブロック図を参照して、本発明の好適
な実施例における移動エージェント生成システムのシス
テム構成について説明する。
な実施例における移動エージェント生成システムのシス
テム構成について説明する。
【0033】図4は、移動エージェント生成システム2
10における処理要素の一実施例を示す機能ブロック図
である。実行コード生成部241は、プラン生成部21
3と、プランID生成部215を含んでいる。プランI
D生成部215は、プランにネットワーク上ユニークな
プランIDを割りふる。本発明の好適な実施例において
プランID生成部215は、インターネットのURL、
ポート番号、エージェントID(移動エージェント生成
部に割りふられている)、シリアルNo.(移動エージ
ェント生成部がプランID作成毎割りふる)を合成して
プランIDを作成している。
10における処理要素の一実施例を示す機能ブロック図
である。実行コード生成部241は、プラン生成部21
3と、プランID生成部215を含んでいる。プランI
D生成部215は、プランにネットワーク上ユニークな
プランIDを割りふる。本発明の好適な実施例において
プランID生成部215は、インターネットのURL、
ポート番号、エージェントID(移動エージェント生成
部に割りふられている)、シリアルNo.(移動エージ
ェント生成部がプランID作成毎割りふる)を合成して
プランIDを作成している。
【0034】プラン生成部213は、GUIプラン定義
データ209に基づいてモデレータ・エージェントや、
プランを生成する。作成されたプランには、実行するモ
デレータ・テンプレートやアクティビティの情報等を管
理するプラン構成部223と、モデレータ・テンプレー
ト、アクティビティの順序を定義する順序リスト225
を含んでいる。プラン構成部223は、プランノード・
オブジェクト(モデレータ・テンプレート、アクティビ
ティの総称)の関係付けの情報を有しており、ネットワ
ークトポロジー231を形成している。
データ209に基づいてモデレータ・エージェントや、
プランを生成する。作成されたプランには、実行するモ
デレータ・テンプレートやアクティビティの情報等を管
理するプラン構成部223と、モデレータ・テンプレー
ト、アクティビティの順序を定義する順序リスト225
を含んでいる。プラン構成部223は、プランノード・
オブジェクト(モデレータ・テンプレート、アクティビ
ティの総称)の関係付けの情報を有しており、ネットワ
ークトポロジー231を形成している。
【0035】GUIプラン定義データ生成部207は、
オペレータの指定に基づいて、GUIプランノード・ラ
イブラリ201の情報を使用してGUIプラン定義デー
タ209を生成する。
オペレータの指定に基づいて、GUIプランノード・ラ
イブラリ201の情報を使用してGUIプラン定義デー
タ209を生成する。
【0036】プラン分割部は、実行コード生成部211
によって生成されたプランから移動先プレース毎のキャ
リア・エージェント230を生成する。また、順序リス
トに対応付けられたアクティビティ205(後述するプ
ロキシー・アクティビティと区別するためコンクリート
・アクティビティを呼ぶ)をプロキシー・アクティビテ
ィ222に置換する。
によって生成されたプランから移動先プレース毎のキャ
リア・エージェント230を生成する。また、順序リス
トに対応付けられたアクティビティ205(後述するプ
ロキシー・アクティビティと区別するためコンクリート
・アクティビティを呼ぶ)をプロキシー・アクティビテ
ィ222に置換する。
【0037】プロキシー・アクティビティ222はコン
クリート・アクティビティ205を実行させるためのメ
ッセージを含み、本発明の好適な実施例においては実質
的なジョブを実行するためのコードを含んではいない。
キャリア・エージェント230は、各移動先プレースに
転送され、移動オブジェクト群本体221の到着を待機
し(逆に移動オブジェクト群本体221がキャリア・エ
ージェント230の到着を待機する場合もある)、移動
オブジェクト群本体221の指示に応答してコンクリー
ト・アクティビティ205を実行する。
クリート・アクティビティ205を実行させるためのメ
ッセージを含み、本発明の好適な実施例においては実質
的なジョブを実行するためのコードを含んではいない。
キャリア・エージェント230は、各移動先プレースに
転送され、移動オブジェクト群本体221の到着を待機
し(逆に移動オブジェクト群本体221がキャリア・エ
ージェント230の到着を待機する場合もある)、移動
オブジェクト群本体221の指示に応答してコンクリー
ト・アクティビティ205を実行する。
【0038】図5は、移動エージェント生成システム2
10における処理要素の一実施例をGUIプテン定義デ
ータ生成部207を中心に見た機能ブロック図である。
GUIプテン定義データ生成部207へ入力情報を提供
する入力イベント取得部231は、ユーザーからのキー
入力、マウスのクリック等のイベントを取得し、GUI
プテン定義データ生成部207のプラン・オブジェクト
操作部233に解釈可能なメッセージに変換して渡す。
10における処理要素の一実施例をGUIプテン定義デ
ータ生成部207を中心に見た機能ブロック図である。
GUIプテン定義データ生成部207へ入力情報を提供
する入力イベント取得部231は、ユーザーからのキー
入力、マウスのクリック等のイベントを取得し、GUI
プテン定義データ生成部207のプラン・オブジェクト
操作部233に解釈可能なメッセージに変換して渡す。
【0039】プラン・オブジェクト操作部231は、イ
ベントの種類により、GUIアクティビティ、GUIテ
ンプレート等のオブジェクトの生成や各種オブジェクト
のプロパティの設定等の作業を行う。
ベントの種類により、GUIアクティビティ、GUIテ
ンプレート等のオブジェクトの生成や各種オブジェクト
のプロパティの設定等の作業を行う。
【0040】プラン・オブジェクト属性変更部237
は、指定されたオブジェクトのプロパティを変更するた
めのダイアログ・ウインドウを提供する。修正された情
報はプラン・オブジェクト操作部231を介してGUI
プラン定義データ239に反映される。
は、指定されたオブジェクトのプロパティを変更するた
めのダイアログ・ウインドウを提供する。修正された情
報はプラン・オブジェクト操作部231を介してGUI
プラン定義データ239に反映される。
【0041】GUIプラン定義データ保持部243は、
プランを構成するアクティビティ、テンプレートの論理
情報、図形情報を保持する。
プランを構成するアクティビティ、テンプレートの論理
情報、図形情報を保持する。
【0042】プラン表示部245は、GUIプラン定義
データ243の図形情報に基づき、画面上にプランの構
造を視覚的に表示する。
データ243の図形情報に基づき、画面上にプランの構
造を視覚的に表示する。
【0043】実行コード生成部241は、GUIプラン
定義データの論理情報に基づき、定義されたプランを生
成するための実行コード249(プラン)を生成する。
定義データの論理情報に基づき、定義されたプランを生
成するための実行コード249(プラン)を生成する。
【0044】図6は、移動エージェント生成システム2
10によって生成された移動エージェント群270、2
80の実行時における処理要素の一実施例を示す機能ブ
ロック図である。移動オブジェクト群本体270はモデ
レータ・エージェント251、プラン・オブジェクト2
61、モデレータ・テンプレート271、プロキシー・
アクティビティ281を含んでいる。モデレータ・エー
ジェント251は、移動エージェント・ライフサイクル
制御部253とプラン実行部255を含んでいる。移動
エージェント・ライフサイクル制御部253は、移動オ
ブジェクト群本体270の移動、複製、消去等を実行す
る。プラン実行部255は、新たなプレースに到着した
ことを認識し、プラン・オブジェクト261にプランの
実行を命令する。
10によって生成された移動エージェント群270、2
80の実行時における処理要素の一実施例を示す機能ブ
ロック図である。移動オブジェクト群本体270はモデ
レータ・エージェント251、プラン・オブジェクト2
61、モデレータ・テンプレート271、プロキシー・
アクティビティ281を含んでいる。モデレータ・エー
ジェント251は、移動エージェント・ライフサイクル
制御部253とプラン実行部255を含んでいる。移動
エージェント・ライフサイクル制御部253は、移動オ
ブジェクト群本体270の移動、複製、消去等を実行す
る。プラン実行部255は、新たなプレースに到着した
ことを認識し、プラン・オブジェクト261にプランの
実行を命令する。
【0045】この一方、プラン・オブジェクト261
は、プラン実行制御部263、カレント・ノード26
7、順序リスト265を含んでいる。プラン実行制御部
263は、モデレータ・エージェントのプラン実行部か
らプランの実行のインストラクションを受領すると、カ
レント・ノード267、順序リスト265を参照し、現
在実行すべきプランノード・オブジェクト271、28
1を決定し、プランノード・オブジェクト271、28
1に実行を要求する。
は、プラン実行制御部263、カレント・ノード26
7、順序リスト265を含んでいる。プラン実行制御部
263は、モデレータ・エージェントのプラン実行部か
らプランの実行のインストラクションを受領すると、カ
レント・ノード267、順序リスト265を参照し、現
在実行すべきプランノード・オブジェクト271、28
1を決定し、プランノード・オブジェクト271、28
1に実行を要求する。
【0046】カレント・ノード267は、後述するプラ
ンノードイタレータに対応するものであり、現在どのプ
ランノード・オブジェクトを実行しているかを管理して
いる。順序リスト265は、実行すべきプランノード・
オブジェクト271、281を特定するリストである。
分祈とうが発生しない場合、プランノード・オブジェク
ト271、281は、この順序リスト265の順番にし
たがってプランノードに実行を要求していく。
ンノードイタレータに対応するものであり、現在どのプ
ランノード・オブジェクトを実行しているかを管理して
いる。順序リスト265は、実行すべきプランノード・
オブジェクト271、281を特定するリストである。
分祈とうが発生しない場合、プランノード・オブジェク
ト271、281は、この順序リスト265の順番にし
たがってプランノードに実行を要求していく。
【0047】モデレータ・テンプレート271は、モデ
レータ・エージェント制御部273、プランステップ実
行部275、アドレス参照部277を含んでいる。モデ
レータ・エージェント制御部273は、モデレータ・エ
ージェント251の移動エージェント・ライフサイクル
制御部253に対し、移動オブジェクト群本体270の
移動、複製、消去を要求する。プラン・ステップ実行部
275は、モデレータ・テンプレートの種類によって異
なる定義となっており、移動前、移動後の夫々のプレー
スにおいて実行すべき命令等を管理している。アドレス
参照部277は、プロキシー・アクティビティ281か
らアドレスを取得し、モデレータ・エージェント制御部
273に移動すべきアドレスを教える等の役割を担って
いる。
レータ・エージェント制御部273、プランステップ実
行部275、アドレス参照部277を含んでいる。モデ
レータ・エージェント制御部273は、モデレータ・エ
ージェント251の移動エージェント・ライフサイクル
制御部253に対し、移動オブジェクト群本体270の
移動、複製、消去を要求する。プラン・ステップ実行部
275は、モデレータ・テンプレートの種類によって異
なる定義となっており、移動前、移動後の夫々のプレー
スにおいて実行すべき命令等を管理している。アドレス
参照部277は、プロキシー・アクティビティ281か
らアドレスを取得し、モデレータ・エージェント制御部
273に移動すべきアドレスを教える等の役割を担って
いる。
【0048】プロキシー・アクティビティ281は、プ
ロキシー・アクティビティ実行部283とメッセージ機
能285を含んでいる。プロキシー・アクティビティ実
行部283は、メッセージ機能285を介してキャリア
・エージェントと対話し、そのプロキシー・アクティビ
ティに対応するコンクリート・アクティビティ282を
有するキャリア・エージェント280か否かを判断し、
対応するコンクリート・アクティビティ282に対しジ
ョブの実行を指示する。コンクリート・アクティビティ
・テーブル269は、実行すべきコンクリート・アクテ
ィビティ282を特定するためのテーブルである。
ロキシー・アクティビティ実行部283とメッセージ機
能285を含んでいる。プロキシー・アクティビティ実
行部283は、メッセージ機能285を介してキャリア
・エージェントと対話し、そのプロキシー・アクティビ
ティに対応するコンクリート・アクティビティ282を
有するキャリア・エージェント280か否かを判断し、
対応するコンクリート・アクティビティ282に対しジ
ョブの実行を指示する。コンクリート・アクティビティ
・テーブル269は、実行すべきコンクリート・アクテ
ィビティ282を特定するためのテーブルである。
【0049】コンクリート・アクティビティ282は、
アクティビティ実行部284とメッセージ機能286を
含んでいる。アクティビティ実行部284は、移動エー
ジェントが渡り歩く各プレースで実行するインストラク
ションや各プレースで受け取ったResultを格納す
る機能を有している。メッセージ機能286は、アクタ
ー・エージェント291とのメッセージをやり取りする
機能を有している。
アクティビティ実行部284とメッセージ機能286を
含んでいる。アクティビティ実行部284は、移動エー
ジェントが渡り歩く各プレースで実行するインストラク
ションや各プレースで受け取ったResultを格納す
る機能を有している。メッセージ機能286は、アクタ
ー・エージェント291とのメッセージをやり取りする
機能を有している。
【0050】アクター・エージェント291は、プレー
ス上に存在する他のエージェントであり、コンクリート
・アクティビティ282のリクエストに対し、サービス
を提供する機能を有している。このアクター・エージェ
ント291も、アクティビティとメッセージのやり取り
するメッセージ機能293を有し、また、リクエストの
内容を判断し、サービスを提供するメッセージ処理部2
95を有している。
ス上に存在する他のエージェントであり、コンクリート
・アクティビティ282のリクエストに対し、サービス
を提供する機能を有している。このアクター・エージェ
ント291も、アクティビティとメッセージのやり取り
するメッセージ機能293を有し、また、リクエストの
内容を判断し、サービスを提供するメッセージ処理部2
95を有している。
【0051】以上図4乃至6に示す各機能ブロックを説
明したが、これらの機能ブロックは、論理的機能ブロッ
クであり、各々1つのまとまりを持ったハードウエアや
ソフトウエアによって実現されることを意味するのでは
なく、複合し、または共通したハードウエアやソフトウ
エアによって実現可能である。また、この図4乃至6に
示す全ての機能ブロックが本発明に必須の構成要素とい
う訳ではない。例えば、順序付リスト265は、カレン
ト・ノード管理部267が直接カレント・ノードを管理
し、また、ANDJoin等の処理においても、他のR
esultを取得するモデレータ・エージェントを決め
ておけばよいので、特に必要な構成要素ではない。さら
に、実行コード生成部を他のマシン上に配置し、そのマ
シンにGUIプラン定義データを送信することによって
も実行コードを生成することができる。
明したが、これらの機能ブロックは、論理的機能ブロッ
クであり、各々1つのまとまりを持ったハードウエアや
ソフトウエアによって実現されることを意味するのでは
なく、複合し、または共通したハードウエアやソフトウ
エアによって実現可能である。また、この図4乃至6に
示す全ての機能ブロックが本発明に必須の構成要素とい
う訳ではない。例えば、順序付リスト265は、カレン
ト・ノード管理部267が直接カレント・ノードを管理
し、また、ANDJoin等の処理においても、他のR
esultを取得するモデレータ・エージェントを決め
ておけばよいので、特に必要な構成要素ではない。さら
に、実行コード生成部を他のマシン上に配置し、そのマ
シンにGUIプラン定義データを送信することによって
も実行コードを生成することができる。
【0052】D.オブジェクト構成 D−1.移動エージェント群のオブジェクト構成 図7、8は、本発明の移動オブジェクト群270、28
0のオブジェクト図である。モデレータ・エージェント
303、プラン305、プランID、プラン・イタレー
タ307の各クラスは、メソッドを有しており、プラン
ノード311、アクティビティ313、モデレータ・テ
ンプレート315、及びChain等のテンプレート3
21〜326の各クラスは、データ及びメソッドを有し
ている。
0のオブジェクト図である。モデレータ・エージェント
303、プラン305、プランID、プラン・イタレー
タ307の各クラスは、メソッドを有しており、プラン
ノード311、アクティビティ313、モデレータ・テ
ンプレート315、及びChain等のテンプレート3
21〜326の各クラスは、データ及びメソッドを有し
ている。
【0053】この図において、三角印302、314、
316は、上位のクラスのデータやメソッドを承継して
いることを示し、黒丸312はその下位のクラスが複数
存在しえることを示している。プランノードは抽象的な
クラスで、モデレータ・テンプレートとアクティビティ
クラスの双方を共通のインターフェースで定義する。こ
れによってプランは、プランの生成や実行中に双方のク
ラスを同等に扱うことができる。
316は、上位のクラスのデータやメソッドを承継して
いることを示し、黒丸312はその下位のクラスが複数
存在しえることを示している。プランノードは抽象的な
クラスで、モデレータ・テンプレートとアクティビティ
クラスの双方を共通のインターフェースで定義する。こ
れによってプランは、プランの生成や実行中に双方のク
ラスを同等に扱うことができる。
【0054】移動エージェント301は分散コンピュー
タ環境上の各プレースで現在提供されている機能(プレ
ース・クラス)であり、このクラスに移動エージェント
の作成を指示するAPIを投げることによって、ユーザ
は簡単に移動エージェント(モデレータ・エージェン
ト)を作成することができる。現在、従来技術の説明で
上述したJavaベースのモーバイル・エージェントや
テレスクリプトの移動エージェントの双方でサポートさ
れており機能である。
タ環境上の各プレースで現在提供されている機能(プレ
ース・クラス)であり、このクラスに移動エージェント
の作成を指示するAPIを投げることによって、ユーザ
は簡単に移動エージェント(モデレータ・エージェン
ト)を作成することができる。現在、従来技術の説明で
上述したJavaベースのモーバイル・エージェントや
テレスクリプトの移動エージェントの双方でサポートさ
れており機能である。
【0055】本発明の好適な実施例においては、コンク
リート・アクティビティとプロキシー・アクティビティ
を置換すべく、また、キャリア・エージェントを生成す
べく、以下のメソッドが提供されている。
リート・アクティビティとプロキシー・アクティビティ
を置換すべく、また、キャリア・エージェントを生成す
べく、以下のメソッドが提供されている。
【0056】
【表1】 setProxyActivity (index, agentid) { //アクティビティの入れ替え conAct = -plan.elementAt(index); address = conAct.getdestination(); proxyAct = new ProxyActivity (address, agentid); -plan.setPlanNode(proxtAct, index); //キャリア・エージェントの生成 carrierAgent = context.getAglet(agentid) carrierAgent.sendMessage("store", conAct, index); }
【0057】プランノード・クラスは、サクセッサとプ
レデセッサのリストを有しており、複数のプランノード
の関係を管理している。プランノードのクラスは"setPr
edecessor""setSuccessor"のメソッドを提供し、ノード
間の関係を定義している。プランノードの具体的なクラ
スは、これらのメソッド間の関係を見分けることができ
る。
レデセッサのリストを有しており、複数のプランノード
の関係を管理している。プランノードのクラスは"setPr
edecessor""setSuccessor"のメソッドを提供し、ノード
間の関係を定義している。プランノードの具体的なクラ
スは、これらのメソッド間の関係を見分けることができ
る。
【0058】モデレータ・テンプレートは、異なるプレ
ースで実行されるアクティビティと連結するため、オリ
ジン(移動前のプレース)かディスティネーション(移
動後のプレース)かを区別するステート情報を有してい
る。本発明の好適な実施例においては、モデレータ・テ
ンプレートはアクティビティ・オブジェクトとだけ結合
することができる。モデレータ・テンプレートにはCh
ainを始め、複数のテンプレートが提供されており、
複数の分裂したモデレータ・エージェントが分担して仕
事をするための基本的メカニズム等の提供を可能にして
いる。
ースで実行されるアクティビティと連結するため、オリ
ジン(移動前のプレース)かディスティネーション(移
動後のプレース)かを区別するステート情報を有してい
る。本発明の好適な実施例においては、モデレータ・テ
ンプレートはアクティビティ・オブジェクトとだけ結合
することができる。モデレータ・テンプレートにはCh
ainを始め、複数のテンプレートが提供されており、
複数の分裂したモデレータ・エージェントが分担して仕
事をするための基本的メカニズム等の提供を可能にして
いる。
【0059】アクティビティは、ジョブを実行すべきプ
レースのアドレス情報を保持している。また、「abstru
ctActivity」を公開することにより、以下に示す「exec
uteActivity」等の外部からの指示に応答して、内部に
保有するジョブを実行することができる。プロキシー・
アクティビティは、対応するコンクリート・アクティビ
ティを保持するキャリア・エージェントを特定するキャ
リア・エージェントIDの情報を有し、コンクリート・
アクティビティに対してジョブの実行を指示する。
レースのアドレス情報を保持している。また、「abstru
ctActivity」を公開することにより、以下に示す「exec
uteActivity」等の外部からの指示に応答して、内部に
保有するジョブを実行することができる。プロキシー・
アクティビティは、対応するコンクリート・アクティビ
ティを保持するキャリア・エージェントを特定するキャ
リア・エージェントIDの情報を有し、コンクリート・
アクティビティに対してジョブの実行を指示する。
【0060】
【表2】
【0061】D−2.GUIプラン定義データのオブジ
ェクト構成 図9は、本発明の好適な実施例におけるGUIプラン定
義データ239のオブジェクト図である。GUIアクテ
ィビティ403、GUIモデレータ・テンプレート41
3、GUIプレース405及びリンク407等の各クラ
スは、データ及びメソッドを有している。
ェクト構成 図9は、本発明の好適な実施例におけるGUIプラン定
義データ239のオブジェクト図である。GUIアクテ
ィビティ403、GUIモデレータ・テンプレート41
3、GUIプレース405及びリンク407等の各クラ
スは、データ及びメソッドを有している。
【0062】この図において、三角印302、314、
316は、上位のクラスのデータやメソッドを承継して
いることを示し、黒丸312はその下位のクラスが複数
存在しえることを示している。
316は、上位のクラスのデータやメソッドを承継して
いることを示し、黒丸312はその下位のクラスが複数
存在しえることを示している。
【0063】GUIアクティビティ403は、GUIビ
ルダ上でアクティビティとして表示されるためのオブジ
ェクトであり、ディスプレイ上に表示されるときの座標
値(表示開始位置:x1、y1と表示終了位置:x2、
y2)とリンクするオブジェクトを特定するサクセッサ
・リスト及びプレデセッサ・リストのデータを有してい
る。
ルダ上でアクティビティとして表示されるためのオブジ
ェクトであり、ディスプレイ上に表示されるときの座標
値(表示開始位置:x1、y1と表示終了位置:x2、
y2)とリンクするオブジェクトを特定するサクセッサ
・リスト及びプレデセッサ・リストのデータを有してい
る。
【0064】GUIモデレータ・テンプレート409も
これと同様に、GUIビルダ上でモデレータ・テンプレ
ートとして表示されるためのオブジェクトであり、ディ
スプレイ上に表示されるときの座標値(表示開始位置:
x1、y1と表示終了位置:x2、y2)とリンクする
オブジェクトを特定するサクセッサ・リスト及びプレデ
セッサ・リストのデータを有している。また、モデレー
タ・テンプレートの種類を特定するためのテンプレート
タイプのデータも有している。
これと同様に、GUIビルダ上でモデレータ・テンプレ
ートとして表示されるためのオブジェクトであり、ディ
スプレイ上に表示されるときの座標値(表示開始位置:
x1、y1と表示終了位置:x2、y2)とリンクする
オブジェクトを特定するサクセッサ・リスト及びプレデ
セッサ・リストのデータを有している。また、モデレー
タ・テンプレートの種類を特定するためのテンプレート
タイプのデータも有している。
【0065】リンク・オブジェクト407は、GUIア
クティビティ403とGUIモデレータ・テンプレート
409間のリンク関係を表示するためのオブジェクトで
あり、ディスプレイ上に表示されるときの座標値(表示
開始位置:x1、y1と表示終了位置:x2、y2)と
リンクするオブジェクトを特定するサクセッサ・リスト
及びプレデセッサ・リストのデータを有している。
クティビティ403とGUIモデレータ・テンプレート
409間のリンク関係を表示するためのオブジェクトで
あり、ディスプレイ上に表示されるときの座標値(表示
開始位置:x1、y1と表示終了位置:x2、y2)と
リンクするオブジェクトを特定するサクセッサ・リスト
及びプレデセッサ・リストのデータを有している。
【0066】GUIプレース405は、各アクティビテ
ィが実行されるプレースを表示するためのオブジェクト
であり、包括して表示すべきGUIアクティビティの座
標値情報(各GUIアクティビティの表示開始位置:x
1、y1と表示終了位置:x2、y2)とプレースのア
ドレス情報のデータを有している。
ィが実行されるプレースを表示するためのオブジェクト
であり、包括して表示すべきGUIアクティビティの座
標値情報(各GUIアクティビティの表示開始位置:x
1、y1と表示終了位置:x2、y2)とプレースのア
ドレス情報のデータを有している。
【0067】D−3.移動エージェント群のメッセージ
・フロー 図10は、本発明の好適な実施例における各クラスの主
要なメッセージフローを示す図である。モデレータ・エ
ージェント351はプラン353に対しnextSte
p(次のステップを実行することを指示するインストラ
クション)を送出し、プランはこれに応答して、プラン
ノード・オブジェクト(モデレータ・テンプレート35
7またはプロキシー・アクティビティ355)に対しn
extStepを送出する。モデレータ・テンプレート
357は、その種類や状況に応じて、プロキシー・アク
ティビティ355にgetARL(アドレスの送出命
令)を送出や、isMarked(マーク付けをする)
を送出する。また、モデレータ・エージェント351に
対しclone(複製の作成要求)、dispatch
(移動要求)、dispose(消滅要求)を送出す
る。
・フロー 図10は、本発明の好適な実施例における各クラスの主
要なメッセージフローを示す図である。モデレータ・エ
ージェント351はプラン353に対しnextSte
p(次のステップを実行することを指示するインストラ
クション)を送出し、プランはこれに応答して、プラン
ノード・オブジェクト(モデレータ・テンプレート35
7またはプロキシー・アクティビティ355)に対しn
extStepを送出する。モデレータ・テンプレート
357は、その種類や状況に応じて、プロキシー・アク
ティビティ355にgetARL(アドレスの送出命
令)を送出や、isMarked(マーク付けをする)
を送出する。また、モデレータ・エージェント351に
対しclone(複製の作成要求)、dispatch
(移動要求)、dispose(消滅要求)を送出す
る。
【0068】プロキシー・アクティビティ355は、キ
ャリア・エージェント352に対し、getTable
を送出し、コンクリート・アクティビティ・テーブル3
54を入手する。そして、コンクリート・アクティビテ
ィ・テーブル354に対して自己の保有するインデック
ス(順序リストのインデックス)をキーに対応するコン
クリート・アクティビティ358を入手する。そして、
プロキシー・アクティビティ355は、コンクリート・
アクティビティ358にユーザの指定したリクエストを
実行させるため、コンクリート・アクティビティ358
に対しexecuteActivity(アクティビテ
ィの実行要求)を送出する。
ャリア・エージェント352に対し、getTable
を送出し、コンクリート・アクティビティ・テーブル3
54を入手する。そして、コンクリート・アクティビテ
ィ・テーブル354に対して自己の保有するインデック
ス(順序リストのインデックス)をキーに対応するコン
クリート・アクティビティ358を入手する。そして、
プロキシー・アクティビティ355は、コンクリート・
アクティビティ358にユーザの指定したリクエストを
実行させるため、コンクリート・アクティビティ358
に対しexecuteActivity(アクティビテ
ィの実行要求)を送出する。
【0069】これに応答して、コンクリート・アクティ
ビティ358は、ユーザの指定したリクエストを実行す
るため、アクター・エージェント359に対しsend
Message(メッセージの送付要求)を送出する。
ビティ358は、ユーザの指定したリクエストを実行す
るため、アクター・エージェント359に対しsend
Message(メッセージの送付要求)を送出する。
【0070】E.プラン定義データの作成 本発明においては、この移動エージェントの生成をユー
ザが簡単に行うことを可能にする開発支援ツールを提供
している。図11乃至図16は、本発明の好適な実施例
における開発支援ツールのユーザインターフェースを示
す図である。ユーザはこの開発支援ツールを使用するこ
とによって、上記プラン定義部のコーディングを簡単に
生成することができる。
ザが簡単に行うことを可能にする開発支援ツールを提供
している。図11乃至図16は、本発明の好適な実施例
における開発支援ツールのユーザインターフェースを示
す図である。ユーザはこの開発支援ツールを使用するこ
とによって、上記プラン定義部のコーディングを簡単に
生成することができる。
【0071】まず、ユーザがプルダウン・メニューから
作成371を選択し、ポインティング・デバイスでクリ
ックすると、プラン・オブジェクト操作部233は、プ
ラン名を入力するためのダイアログボックス375を表
示する。これにより、ユーザはプランIDとは異なるユ
ーザにとって親しみやすい名前でプランを管理すること
ができる。次に、ユーザがプラン名をプラン名の入力エ
ントリ376入力し、OKボタン377を押すと、プラ
ン定義用のウインドウ380が開かれる。プラン名を入
力するためのダイアログボックス375は、プルダウン
・メニューの保存372や終了374を選択時に表示し
てもよい。
作成371を選択し、ポインティング・デバイスでクリ
ックすると、プラン・オブジェクト操作部233は、プ
ラン名を入力するためのダイアログボックス375を表
示する。これにより、ユーザはプランIDとは異なるユ
ーザにとって親しみやすい名前でプランを管理すること
ができる。次に、ユーザがプラン名をプラン名の入力エ
ントリ376入力し、OKボタン377を押すと、プラ
ン定義用のウインドウ380が開かれる。プラン名を入
力するためのダイアログボックス375は、プルダウン
・メニューの保存372や終了374を選択時に表示し
てもよい。
【0072】ユーザがポインティング・デバイスでアク
ティビティ・ボックス420のアクティビティ・アイコ
ン(ACT1)421をプラン定義用ウインドウ380
にドラッグしドロップする。すると、図9に示すGUI
アクティビティ403及びGUIプレース405の各オ
ブジェクトがGUIプランノード・ライブラリ201の
ひな型のデータを基に生成される。生成されたGUIア
クティビティ403のDisplayメソッドが呼ば
れ、図12に示すようにプラン定義用ウインドウ380
にGUIアクティビティとして表示される。このとき、
GUIアクティビティ403のプレデセッサ・リストと
サクセッサ・リストには「リンクするオブジェクトな
し」を示す「0」がセットされる。
ティビティ・ボックス420のアクティビティ・アイコ
ン(ACT1)421をプラン定義用ウインドウ380
にドラッグしドロップする。すると、図9に示すGUI
アクティビティ403及びGUIプレース405の各オ
ブジェクトがGUIプランノード・ライブラリ201の
ひな型のデータを基に生成される。生成されたGUIア
クティビティ403のDisplayメソッドが呼ば
れ、図12に示すようにプラン定義用ウインドウ380
にGUIアクティビティとして表示される。このとき、
GUIアクティビティ403のプレデセッサ・リストと
サクセッサ・リストには「リンクするオブジェクトな
し」を示す「0」がセットされる。
【0073】このGUIアクティビティ431は、図9
に示すようにSelectメソッドやMoveメソッド
を有しており、マウスポインタによるセレクトに対応し
た処理の実行や、マウスドラッグに対して表示位置を変
更することができる。
に示すようにSelectメソッドやMoveメソッド
を有しており、マウスポインタによるセレクトに対応し
た処理の実行や、マウスドラッグに対して表示位置を変
更することができる。
【0074】次に、ユーザがポインティング・デバイス
でテンプレート・ボックス390のAND−Split
アイコン392をプラン定義用ウインドウ380にドラ
ッグしドロップする。すると、図9に示すGUIモデレ
ータ・テンプレート410及びリンク407の各オブジ
ェクト(リンク・オブジェクトは2つ生成される)がG
UIプランノード・ライブラリ201のひな型のデータ
を基に生成される。生成されたGUIモデレータ・テン
プレート413のDisplayメソッド、リンク・オ
ブジェクト407のDisplayメソッドが呼ばれ、
図13に示すようにプラン定義用ウインドウ380にG
UIモデレータ・テンプレート433およびリンク・オ
ブジェクト432、434として表示される。
でテンプレート・ボックス390のAND−Split
アイコン392をプラン定義用ウインドウ380にドラ
ッグしドロップする。すると、図9に示すGUIモデレ
ータ・テンプレート410及びリンク407の各オブジ
ェクト(リンク・オブジェクトは2つ生成される)がG
UIプランノード・ライブラリ201のひな型のデータ
を基に生成される。生成されたGUIモデレータ・テン
プレート413のDisplayメソッド、リンク・オ
ブジェクト407のDisplayメソッドが呼ばれ、
図13に示すようにプラン定義用ウインドウ380にG
UIモデレータ・テンプレート433およびリンク・オ
ブジェクト432、434として表示される。
【0075】このとき、リンク・オブジェクト432の
サクセッサ・リストにはGUIモデレータ・テンプレー
ト433の情報がセットされ、リンク・オブジェクト4
34のプレデセッサ・リストにはGUIモデレータ・テ
ンプレート433の情報がセットされる。この一方、G
UIモデレータ・テンプレート433のプレデセッサ・
リスト及びサクセッサ・リストには、それぞれリンク・
オブジェクト432、434を特定する情報がセットさ
れる。各リンク・オブジェクトの表示位置は、GUIモ
デレータ・テンプレート433の位置情報から算出され
た値がセットされる。
サクセッサ・リストにはGUIモデレータ・テンプレー
ト433の情報がセットされ、リンク・オブジェクト4
34のプレデセッサ・リストにはGUIモデレータ・テ
ンプレート433の情報がセットされる。この一方、G
UIモデレータ・テンプレート433のプレデセッサ・
リスト及びサクセッサ・リストには、それぞれリンク・
オブジェクト432、434を特定する情報がセットさ
れる。各リンク・オブジェクトの表示位置は、GUIモ
デレータ・テンプレート433の位置情報から算出され
た値がセットされる。
【0076】このGUIモデレータ・テンプレート43
3も、図9に示すようにSelectメソッドやMov
eメソッドを有しており、マウスポインタによるセレク
トに対応した処理の実行や、マウスドラッグに対して表
示位置を変更することができる。GUIモデレータ・テ
ンプレート433の移動がなされると、GUIモデレー
タ・テンプレート433のプレデセッサ・リスト及びサ
クセッサ・リストで指定されたオブジェクトや、そのオ
ブジェクトにリンクする一連のオブジェクトの表示位置
を移動量に応じて更新し、Displayメソッドによ
る最描画をおこなう。
3も、図9に示すようにSelectメソッドやMov
eメソッドを有しており、マウスポインタによるセレク
トに対応した処理の実行や、マウスドラッグに対して表
示位置を変更することができる。GUIモデレータ・テ
ンプレート433の移動がなされると、GUIモデレー
タ・テンプレート433のプレデセッサ・リスト及びサ
クセッサ・リストで指定されたオブジェクトや、そのオ
ブジェクトにリンクする一連のオブジェクトの表示位置
を移動量に応じて更新し、Displayメソッドによ
る最描画をおこなう。
【0077】その後、図14に示すように、ユーザがリ
ンク・オブジェクト432をGUIアクティビティ43
1上にドラッグ&ドロップすると、プラン・オブジェク
ト操作部233は、GUIアクティビティの表示位置と
ドラッグ中のマウスポインタの位置を比較することによ
り、リンクするGUIアクティビティを特定し、GUI
アクティビティ431のサクセッサ・リストにリンク・
オブジェクト432を特定する情報をセットし、リンク
・オブジェクト432のプレデセッサ・リストにGUI
アクティビティ431を特定する情報をセットする。ま
た、リンク・オブジェクト432の表示位置をGUIア
クティビティ431の表示位置に応じた値に更新し、D
isplayメソッドによる最描画をおこなう。
ンク・オブジェクト432をGUIアクティビティ43
1上にドラッグ&ドロップすると、プラン・オブジェク
ト操作部233は、GUIアクティビティの表示位置と
ドラッグ中のマウスポインタの位置を比較することによ
り、リンクするGUIアクティビティを特定し、GUI
アクティビティ431のサクセッサ・リストにリンク・
オブジェクト432を特定する情報をセットし、リンク
・オブジェクト432のプレデセッサ・リストにGUI
アクティビティ431を特定する情報をセットする。ま
た、リンク・オブジェクト432の表示位置をGUIア
クティビティ431の表示位置に応じた値に更新し、D
isplayメソッドによる最描画をおこなう。
【0078】このようにして、ユーザは、移動エージェ
ントに行わせる仕事の性質や手順によって、図15に示
すように、所望の実行順序のアクティビティを配置する
ことができる。その後、ユーザが同一のプレースにおい
て実行を希望するアクティビティを、キーボードのコン
トロールキーをおしながら選択し、プレースのアイコン
399をクリックすると、図16に示すように、選択し
たアクティビティを包括する矩形501〜503が表示
され、プレース・プロパティ設定ウインドウ510が表
示される。
ントに行わせる仕事の性質や手順によって、図15に示
すように、所望の実行順序のアクティビティを配置する
ことができる。その後、ユーザが同一のプレースにおい
て実行を希望するアクティビティを、キーボードのコン
トロールキーをおしながら選択し、プレースのアイコン
399をクリックすると、図16に示すように、選択し
たアクティビティを包括する矩形501〜503が表示
され、プレース・プロパティ設定ウインドウ510が表
示される。
【0079】本発明の好適な実施例においては、選択さ
れたアクティビティの中心座標をx軸方向に順番に並
べ、隣り合うアクティビティの中心座標を結ぶ線分を中
心とした一定幅の長方形を算出することにより表示すべ
き矩形501〜503を求めている。なお、これらの矩
形はアクティビティの中心座標を焦点とする楕円などに
よっても代替可能である。
れたアクティビティの中心座標をx軸方向に順番に並
べ、隣り合うアクティビティの中心座標を結ぶ線分を中
心とした一定幅の長方形を算出することにより表示すべ
き矩形501〜503を求めている。なお、これらの矩
形はアクティビティの中心座標を焦点とする楕円などに
よっても代替可能である。
【0080】なお、本発明の好適な実施例において、3
つ以上のアクティビティが同一のプレースと指定された
場合、矩形の重なり合った部分は除去され、1つの多角
形として表示される。また、GUIプレースを象徴する
各々の矩形または多角形は、異なる色彩アトリビュート
が割り当てられ、オペレータはプレースの違いを容易に
判断することができる。
つ以上のアクティビティが同一のプレースと指定された
場合、矩形の重なり合った部分は除去され、1つの多角
形として表示される。また、GUIプレースを象徴する
各々の矩形または多角形は、異なる色彩アトリビュート
が割り当てられ、オペレータはプレースの違いを容易に
判断することができる。
【0081】この例においては、アクティビティを、キ
ーボードのコントロールキーをおしながら選択し、プレ
ースのアイコン399をクリックすることにより、同一
のプレースにおいて実行を希望するアクティビティを選
択しているが、マウスのポイント&ドラッグにより、同
一のプレースにおいて実行を希望するアクティビティを
囲い込むオペレーションや選択後のクリックによる選択
取り消し等のオペレーションによっても代替可能なもの
である。
ーボードのコントロールキーをおしながら選択し、プレ
ースのアイコン399をクリックすることにより、同一
のプレースにおいて実行を希望するアクティビティを選
択しているが、マウスのポイント&ドラッグにより、同
一のプレースにおいて実行を希望するアクティビティを
囲い込むオペレーションや選択後のクリックによる選択
取り消し等のオペレーションによっても代替可能なもの
である。
【0082】ユーザがプレース名やプレースアドレスを
セットすると、選択されたGUIアクティビティ403
(図9)のGUIプレース405のアドレス、プレース
名として設定される。
セットすると、選択されたGUIアクティビティ403
(図9)のGUIプレース405のアドレス、プレース
名として設定される。
【0083】F.プランの生成 図17は、プラン定義データを基に実行コード(プラ
ン)を生成する手順を示すフローチャートである。ま
ず、プラン・オブジェクトを生成する(ブロック60
3)。プランの生成においては、大きく分けて、プラン
IDの生成と、プラン・オブジェクトの下位に位置する
オブジェクトとのリンク状態を確立する工程に分けられ
る。
ン)を生成する手順を示すフローチャートである。ま
ず、プラン・オブジェクトを生成する(ブロック60
3)。プランの生成においては、大きく分けて、プラン
IDの生成と、プラン・オブジェクトの下位に位置する
オブジェクトとのリンク状態を確立する工程に分けられ
る。
【0084】本発明の好適な実施例においては、プラン
・オブジェクトにグローバルなネットワーク上で一意に
決まるユニークなプランIDを割りふられる。本発明の
好適な実施例においてプランID生成部215(図4)
は、インターネットのURL、ポート番号、エージェン
トID(移動エージェント生成部に割りふられてい
る)、シリアルNo.(移動エージェント生成部がプラ
ンID作成毎割りふる)を合成してプランIDを作成し
ている。
・オブジェクトにグローバルなネットワーク上で一意に
決まるユニークなプランIDを割りふられる。本発明の
好適な実施例においてプランID生成部215(図4)
は、インターネットのURL、ポート番号、エージェン
トID(移動エージェント生成部に割りふられてい
る)、シリアルNo.(移動エージェント生成部がプラ
ンID作成毎割りふる)を合成してプランIDを作成し
ている。
【0085】このプランID生成部のコーディングの例
を表1に示す。本発明の好適な実施例においては、プラ
ンID生成部のインストラクション群はプログラム部品
としてユーザに提供されている。
を表1に示す。本発明の好適な実施例においては、プラ
ンID生成部のインストラクション群はプログラム部品
としてユーザに提供されている。
【0086】
【表3】 public class Planner extends StationaryAgent{ private Plan _plan; private PlannerFrame f; private URL _home; private AgletIdentifier _id; private int _planIndex = 0; public void onCreation(Object args){ //プランの選択のためウインドウを生成する。 f = new PlannerFrame("JMT - PlannerAgent", this); f.show(); try{ //実行コード生成部の存在しているURLを入手 _home = getAgletContext().getHostingURL(); //移動エージェント生成部のIDを入手 _id = getIdentifier(); }catch(InvalidAgletException e){ Utility.print(this, e.getMessage()); } }
【0087】本発明の好適な実施例においては、プラン
・オブジェクトの生成を行うための「New演算子」が
Javaの機能として提供されており、プランIDを引
き数にしてこのクラスを実行することにより、新たなプ
ラン・オブジェクトが生成される。
・オブジェクトの生成を行うための「New演算子」が
Javaの機能として提供されており、プランIDを引
き数にしてこのクラスを実行することにより、新たなプ
ラン・オブジェクトが生成される。
【0088】なお、モデレータ・エージェントは、上述
のように、各プレースで現在提供されている機能(プレ
ース・クラス)を利用して生成される。本発明の好適な
実施例においては、Javaベースのモーバイル・エー
ジェントのAgletsクラスに移動エージェントの作
成を指示するAPIを投げることによって、モデレータ
・エージェントの生成を行っている。
のように、各プレースで現在提供されている機能(プレ
ース・クラス)を利用して生成される。本発明の好適な
実施例においては、Javaベースのモーバイル・エー
ジェントのAgletsクラスに移動エージェントの作
成を指示するAPIを投げることによって、モデレータ
・エージェントの生成を行っている。
【0089】次に、先頭のGUIアクティビティに対応
するアクティビティを生成する(ブロック605)。具
体的には、まず、GUIアクティビティのアクティビテ
ィ・タイプから実行時のクラス名(この場合はA1)を
取得し、その後、クラス名「A1」をキーにそのインス
タンスを生成する。生成されたアクティビティはプラン
・オブジェクトに追加される(ブロック607)。
するアクティビティを生成する(ブロック605)。具
体的には、まず、GUIアクティビティのアクティビテ
ィ・タイプから実行時のクラス名(この場合はA1)を
取得し、その後、クラス名「A1」をキーにそのインス
タンスを生成する。生成されたアクティビティはプラン
・オブジェクトに追加される(ブロック607)。
【0090】仕掛かり中のGUIオブジェクト(GUI
アクティビティまたはGUIモデレータ・テンプレート
またはリンク・オブジェクト)を格納するFIFO(F
irst In First Out)キューを作成し
(ブロック609)、先頭のGUIオブジェクト(GU
Iアクティビティ)をキューに入れる(ブロック61
1)。先頭のGUIオブジェクトであるか否かは、プレ
デセッサ・リストがnullであるか否か等によって判
別することができる。
アクティビティまたはGUIモデレータ・テンプレート
またはリンク・オブジェクト)を格納するFIFO(F
irst In First Out)キューを作成し
(ブロック609)、先頭のGUIオブジェクト(GU
Iアクティビティ)をキューに入れる(ブロック61
1)。先頭のGUIオブジェクトであるか否かは、プレ
デセッサ・リストがnullであるか否か等によって判
別することができる。
【0091】次に、生成されたキューから要素(GUI
オブジェクト)を取り出し(ブロック612)、図18
に示すサクセッサ・リストにあるアクティビティまたは
モデレータ・テンプレートを追加するサブルーチン(ブ
ロック613)を実行する。
オブジェクト)を取り出し(ブロック612)、図18
に示すサクセッサ・リストにあるアクティビティまたは
モデレータ・テンプレートを追加するサブルーチン(ブ
ロック613)を実行する。
【0092】図18は、このサブルーチンの処理手順を
しめすフローチャートである。まず、サクセッサ・リス
トの要素数と現在のiの値を比較し、全てのサクセッサ
・リストの要素数について、この処理が実行されたか否
かを判断する(ブロック665)。
しめすフローチャートである。まず、サクセッサ・リス
トの要素数と現在のiの値を比較し、全てのサクセッサ
・リストの要素数について、この処理が実行されたか否
かを判断する(ブロック665)。
【0093】サクセッサ・リストの要素数>iの場合
は、サクセッサ・リストのi番目のGUIオブジェクト
を取り出す(ブロック657)。
は、サクセッサ・リストのi番目のGUIオブジェクト
を取り出す(ブロック657)。
【0094】そして、取り出したGUIオブジェクト
が、すでにキューに存在しているか否かを判断し(ブロ
ック658)、存在していない要素のみを図17のブロ
ック609で生成したキューに入れる(ブロック65
9)。
が、すでにキューに存在しているか否かを判断し(ブロ
ック658)、存在していない要素のみを図17のブロ
ック609で生成したキューに入れる(ブロック65
9)。
【0095】次に、取り出した要素(GUIオブジェク
ト)がGUIアクティビティまたはGUIモデレータ・
テンプレートであるか否かを検査する(ブロック66
0)。取り出した要素がGUIアクティビティまたはG
UIモデレータ・テンプレートである場合には、対応す
るアクティビティまたはモデレータ・テンプレートを作
成する(ブロック661)。このとき、GUIアクティ
ビティの場合には、対応するGUIプレースのアドレス
情報を入手する。
ト)がGUIアクティビティまたはGUIモデレータ・
テンプレートであるか否かを検査する(ブロック66
0)。取り出した要素がGUIアクティビティまたはG
UIモデレータ・テンプレートである場合には、対応す
るアクティビティまたはモデレータ・テンプレートを作
成する(ブロック661)。このとき、GUIアクティ
ビティの場合には、対応するGUIプレースのアドレス
情報を入手する。
【0096】そして、カレントのGUIオブジェクトの
プレデセッサ・リストのリンク・オブジェクトよりプレ
デセッサ・インデックスを取得し、自己のプレデセッサ
・リストにセットする。なお、最初でないGUIアクテ
ィビティまたはGUIモデレータ・テンプレートには、
必ずプレデセッサ・リストにはリンク・オブジェクトの
情報が入っている。最初のGUIアクティビティには、
プレデセッサ・リストにnullの情報がセットされて
いるので、自己のプレデセッサ・リストにもnullを
セットする。
プレデセッサ・リストのリンク・オブジェクトよりプレ
デセッサ・インデックスを取得し、自己のプレデセッサ
・リストにセットする。なお、最初でないGUIアクテ
ィビティまたはGUIモデレータ・テンプレートには、
必ずプレデセッサ・リストにはリンク・オブジェクトの
情報が入っている。最初のGUIアクティビティには、
プレデセッサ・リストにnullの情報がセットされて
いるので、自己のプレデセッサ・リストにもnullを
セットする。
【0097】次に作成した要素(アクティビティまたは
モデレータ・テンプレート)をプランに追加し(ブロッ
ク663)、プラン中の順序リストのインデックスをカ
レントのGUIオブジェクトのサクセッサであるリンク
オブジェクトにセットする。リンクオブジェクトはこの
値をプレデセッサ・インデックスとして保持し、アクテ
ィビティまたはモデレータ・テンプレートのプレデセッ
サ・リストを形成するための情報として使用される。
モデレータ・テンプレート)をプランに追加し(ブロッ
ク663)、プラン中の順序リストのインデックスをカ
レントのGUIオブジェクトのサクセッサであるリンク
オブジェクトにセットする。リンクオブジェクトはこの
値をプレデセッサ・インデックスとして保持し、アクテ
ィビティまたはモデレータ・テンプレートのプレデセッ
サ・リストを形成するための情報として使用される。
【0098】取り出した要素がGUIアクティビティま
たはGUIモデレータ・テンプレートでない場合、対応
するアクティビティまたはモデレータ・テンプレートを
作成する処理等は行わず、次の要素の処理をおこなう。
たはGUIモデレータ・テンプレートでない場合、対応
するアクティビティまたはモデレータ・テンプレートを
作成する処理等は行わず、次の要素の処理をおこなう。
【0099】そして、このブロック657乃至ブロック
665の処理をサクセッサ・リストの要素の数繰り返し
た後、再び図17に戻り、キューに要素はあるか否か判
断し、まだある場合には要素を取り出し(ブロック61
2)、再び図18に示すサクセッサ・リストにあるアク
ティビティまたはモデレータ・テンプレートを追加する
サブルーチン(ブロック613)を実行する。
665の処理をサクセッサ・リストの要素の数繰り返し
た後、再び図17に戻り、キューに要素はあるか否か判
断し、まだある場合には要素を取り出し(ブロック61
2)、再び図18に示すサクセッサ・リストにあるアク
ティビティまたはモデレータ・テンプレートを追加する
サブルーチン(ブロック613)を実行する。
【0100】G.キャリア・エージェントの生成とプロ
キシー・エージェントへの置換、各プレースへのキャリ
ア・エージェントの送信 プランの生成が完了すると、図4に示したプラン分割部
224が起動され、各移動先プレース毎のキャリア・エ
ージェント230を生成し、順序リスト225に対応付
けられたコンクリート・アクティビティ205をプロキ
シー・アクティビティ222に置換する処理を行う。ま
た、生成されたキャリア・エージェント230は、各移
動先プレースに転送される。
キシー・エージェントへの置換、各プレースへのキャリ
ア・エージェントの送信 プランの生成が完了すると、図4に示したプラン分割部
224が起動され、各移動先プレース毎のキャリア・エ
ージェント230を生成し、順序リスト225に対応付
けられたコンクリート・アクティビティ205をプロキ
シー・アクティビティ222に置換する処理を行う。ま
た、生成されたキャリア・エージェント230は、各移
動先プレースに転送される。
【0101】図19、20は、プラン分割部224と生
成されたキャリア・エージェント230の行うキャリア
・エージェントの生成とプロキシー・エージェントへの
置換、各プレースへのキャリア・エージェントの送信の
処理の手順を示すフローチャートである。
成されたキャリア・エージェント230の行うキャリア
・エージェントの生成とプロキシー・エージェントへの
置換、各プレースへのキャリア・エージェントの送信の
処理の手順を示すフローチャートである。
【0102】この処理が開始すると(ブロック73
1)、まずiが初期化され(ブロック732)、プラン
からi番目の要素が取り出される(ブロック733)。
そして、この取り出された要素がアクティビティ(コン
クリート・アクティビティ)であるか否か判断される
(ブロック734)。取り出された要素がアクティビテ
ィでない場合には、次の要素を取り出す(ブロック73
5、733)。
1)、まずiが初期化され(ブロック732)、プラン
からi番目の要素が取り出される(ブロック733)。
そして、この取り出された要素がアクティビティ(コン
クリート・アクティビティ)であるか否か判断される
(ブロック734)。取り出された要素がアクティビテ
ィでない場合には、次の要素を取り出す(ブロック73
5、733)。
【0103】本発明の好適な実施例においては、全ての
コンクリート・アクティビティをプロキシー・アクティ
ビティに置換し、コンクリート・アクティビティをキャ
リア・エージェントに乗せて各プレースに転送している
が、ブロック734を特定のコンクリート・アクティビ
ティか否かという判断に変更することで、一部のコンク
リート・アクティビティのみをプロキシー・アクティビ
ティに置換することもできる。
コンクリート・アクティビティをプロキシー・アクティ
ビティに置換し、コンクリート・アクティビティをキャ
リア・エージェントに乗せて各プレースに転送している
が、ブロック734を特定のコンクリート・アクティビ
ティか否かという判断に変更することで、一部のコンク
リート・アクティビティのみをプロキシー・アクティビ
ティに置換することもできる。
【0104】取り出された要素がアクティビティである
場合には、プロキシー・アクティビティを生成し(ブロ
ック736)、コンクリート・アクティビティから取り
出した移動先プレースのアドレスをセットする(ブロッ
ク737)。そして次に、ワークテーブルを参照し、同
じ移動先プレース・アドレスを有するキャリア・エージ
ェントが存在するか否かを判断する。
場合には、プロキシー・アクティビティを生成し(ブロ
ック736)、コンクリート・アクティビティから取り
出した移動先プレースのアドレスをセットする(ブロッ
ク737)。そして次に、ワークテーブルを参照し、同
じ移動先プレース・アドレスを有するキャリア・エージ
ェントが存在するか否かを判断する。
【0105】同じ移動先プレース・アドレスを有するキ
ャリア・エージェントが存在しない場合には、このコン
クリート・アクティビティを運搬するためのキャリア・
エージェントを生成し(ブロック739)、生成された
キャリア・エージェントにエージェントID及び移動先
プレース・アドレスをセットする(ブロック740)。
なお、本発明の好適な実施例において、このキャリア・
エージェントIDは、プランIDとプレースに対応した
シリアル番号によって生成されている。
ャリア・エージェントが存在しない場合には、このコン
クリート・アクティビティを運搬するためのキャリア・
エージェントを生成し(ブロック739)、生成された
キャリア・エージェントにエージェントID及び移動先
プレース・アドレスをセットする(ブロック740)。
なお、本発明の好適な実施例において、このキャリア・
エージェントIDは、プランIDとプレースに対応した
シリアル番号によって生成されている。
【0106】そして、キャリア・エージェントのIDと
移動先プレース・アドレスをワークテーブルにセットす
る。また、i番目のコンクリート・アクティビティをキ
ャリア・エージェントのコンクリート・アクティビティ
・テーブルのi番目にセットする(ブロック742)。
キャリアエージェには、タイム・ボムをセットし、所定
の時期に消滅させることもできる。
移動先プレース・アドレスをワークテーブルにセットす
る。また、i番目のコンクリート・アクティビティをキ
ャリア・エージェントのコンクリート・アクティビティ
・テーブルのi番目にセットする(ブロック742)。
キャリアエージェには、タイム・ボムをセットし、所定
の時期に消滅させることもできる。
【0107】なお、過去に有効な同一のコンクリート・
アクティビティを保持し、同一プレースに送出されたキ
ャリア・エージェントが存在する場合には(ワークテー
ブルを一定期間保持すること等により判別可能であ
る)、キャリア・エージェントを生成せず、プロキシー
・アクティビティに過去に送出したキャリア・エージェ
ントの同一のコンクリート・アクティビティを特定して
実行を指示するようエージェントIDとインデックス情
報を置換することも可能である。
アクティビティを保持し、同一プレースに送出されたキ
ャリア・エージェントが存在する場合には(ワークテー
ブルを一定期間保持すること等により判別可能であ
る)、キャリア・エージェントを生成せず、プロキシー
・アクティビティに過去に送出したキャリア・エージェ
ントの同一のコンクリート・アクティビティを特定して
実行を指示するようエージェントIDとインデックス情
報を置換することも可能である。
【0108】同じ移動先プレース・アドレスを有するキ
ャリア・エージェントが存在する場合には、そのキャリ
ア・エージェントのコンクリート・アクティビティ・テ
ーブルのi番目にセットする(ブロック742)。
ャリア・エージェントが存在する場合には、そのキャリ
ア・エージェントのコンクリート・アクティビティ・テ
ーブルのi番目にセットする(ブロック742)。
【0109】この一方、プロキシー・アクティビティに
はキャリア・エージェントのIDをセットし、これをプ
ランのi番目にセット(リプレース)する。このブロッ
ク733から744の処理を全てのプランの要素につい
て行うことにより、各移動先プレースに対応したキャリ
ア・エージェントの生成と移動オブジェクト群本体のコ
ンクリート・アクティビティをプロキシー・エージェン
トに置換する作業が完了する(ブロック745、74
6)。
はキャリア・エージェントのIDをセットし、これをプ
ランのi番目にセット(リプレース)する。このブロッ
ク733から744の処理を全てのプランの要素につい
て行うことにより、各移動先プレースに対応したキャリ
ア・エージェントの生成と移動オブジェクト群本体のコ
ンクリート・アクティビティをプロキシー・エージェン
トに置換する作業が完了する(ブロック745、74
6)。
【0110】そして、生成したキャリア・エージェント
を各移動先プレースへ転送する(ブロック748)。
を各移動先プレースへ転送する(ブロック748)。
【0111】以上説明した例は、移動オブジェクト群本
体が直接コンクリート・アクティビティを保持して移動
していたものを改良して実施化したものであるため、一
旦プランがコンクリート・アクティビティを保持するも
のを生成し、その後コンクリート・アクティビティをプ
ロキシー・アクティビティに置換している。しかし、移
動オブジェクト群本体の生成時にプランが直接プロキシ
ー・アクティビティを保持するものを生成させることも
可能である。かかる態様の実施も本発明の思想に包含さ
れるものである。
体が直接コンクリート・アクティビティを保持して移動
していたものを改良して実施化したものであるため、一
旦プランがコンクリート・アクティビティを保持するも
のを生成し、その後コンクリート・アクティビティをプ
ロキシー・アクティビティに置換している。しかし、移
動オブジェクト群本体の生成時にプランが直接プロキシ
ー・アクティビティを保持するものを生成させることも
可能である。かかる態様の実施も本発明の思想に包含さ
れるものである。
【0112】H.プランの実行 H−1.Chainテンプレートを含むトポロジーの場
合
合
【0113】Chainテンプレートを含むトポロジー
の場合における移動オブジェクト群の動作を図21乃至
図25を使用して説明する。図21は、プランの実行手
順を示すフローチャートであり、図22は、モデレータ
・テンプレートの機能ブロック図である。図25は、移
動オブジェクト群がオリジンのプレースからディスティ
ネーションのプレースに移動する状態の概念図である。
まず、図21を参照する。モデレータ・エージェント3
51が生成され、プラン353が割り当てられると(ブ
ロック843)、モデレータ・エージェントはプランを
自動的に実行する(ブロック845)。
の場合における移動オブジェクト群の動作を図21乃至
図25を使用して説明する。図21は、プランの実行手
順を示すフローチャートであり、図22は、モデレータ
・テンプレートの機能ブロック図である。図25は、移
動オブジェクト群がオリジンのプレースからディスティ
ネーションのプレースに移動する状態の概念図である。
まず、図21を参照する。モデレータ・エージェント3
51が生成され、プラン353が割り当てられると(ブ
ロック843)、モデレータ・エージェントはプランを
自動的に実行する(ブロック845)。
【0114】モデレータ・エージェント351からプラ
ン・オブジェクト353に対し送出された、"NextStep"
のインストラクションに応答して、プラン・オブジェク
ト353はまず、カレントのプランノードを取り出す
(ブロック847)。本発明の好適な実施例において
は、プラン・イタレータオブジェクト352が現在プラ
ンノードのどのステップにあるかを管理しており、プラ
ン・オブジェクト353の問い合わせに応答して、現在
プランノードのどのステップにいるか(カレント)の情報
を提供する。
ン・オブジェクト353に対し送出された、"NextStep"
のインストラクションに応答して、プラン・オブジェク
ト353はまず、カレントのプランノードを取り出す
(ブロック847)。本発明の好適な実施例において
は、プラン・イタレータオブジェクト352が現在プラ
ンノードのどのステップにあるかを管理しており、プラ
ン・オブジェクト353の問い合わせに応答して、現在
プランノードのどのステップにいるか(カレント)の情報
を提供する。
【0115】カレントの問い合わせに対し、プラン・イ
タレータオブジェクト352が「0」(最初のステップ)
を返した場合、プラン・オブジェクト353は、act
1を取り出す。そして、プラン・オブジェクト353
は、act1に対して、その中で定義されているアクテ
ィビティにアクティビティが管理しているリクエストを
実行することを依頼する(ブロック849)。
タレータオブジェクト352が「0」(最初のステップ)
を返した場合、プラン・オブジェクト353は、act
1を取り出す。そして、プラン・オブジェクト353
は、act1に対して、その中で定義されているアクテ
ィビティにアクティビティが管理しているリクエストを
実行することを依頼する(ブロック849)。
【0116】アクティビティは内部に保持しているエー
ジェントのクラス名(エージェント名)が同一のプレー
スに存在しているか否か判断する。図23に示すよう
に、モデレータ・エージェント350はプレース360
に到達すると、プレース360に対し自分のエージェン
ト名を教え、プレース360はこれをエージェントリス
ト369として管理している。そして、プレース360
に存在するエージェントは、プレース360に対し"get
AgentList"のインストラクションを出し、問い合わせを
行うと、プレースはAgentListを返す機能があるので、
同一プレースに存在するエージェントを知ることができ
る。
ジェントのクラス名(エージェント名)が同一のプレー
スに存在しているか否か判断する。図23に示すよう
に、モデレータ・エージェント350はプレース360
に到達すると、プレース360に対し自分のエージェン
ト名を教え、プレース360はこれをエージェントリス
ト369として管理している。そして、プレース360
に存在するエージェントは、プレース360に対し"get
AgentList"のインストラクションを出し、問い合わせを
行うと、プレースはAgentListを返す機能があるので、
同一プレースに存在するエージェントを知ることができ
る。
【0117】act1はプロキシー・アクティビティに
置換されているため、まず、自己の保有するキャリア・
エージェントIDに対応するエージェントが存在するか
否かを判断し、存在しない場合には、キャリア・エージ
ェントの到着を待機する(スリープモードに入る)。
置換されているため、まず、自己の保有するキャリア・
エージェントIDに対応するエージェントが存在するか
否かを判断し、存在しない場合には、キャリア・エージ
ェントの到着を待機する(スリープモードに入る)。
【0118】対応するエージェントが存在する場合に
は、そのキャリア・エージェントに対して、コンクリー
ト・アクティビティ・リストの対応するインデックス
(そのプロキシー・アクティビティが対応付けられてい
る順序リストの番号)のアクティビティを実行すること
を指示する。
は、そのキャリア・エージェントに対して、コンクリー
ト・アクティビティ・リストの対応するインデックス
(そのプロキシー・アクティビティが対応付けられてい
る順序リストの番号)のアクティビティを実行すること
を指示する。
【0119】コンクリート・アクティビティは、これに
応答して内部に保持していメッセージの内容にしたがっ
てアクター・エージェントを探索する。そして、アクテ
ィビティは見つけたエージェント(アクター・エージェ
ント)361に対し内部に保持しているメッセージ(リ
クエスト)を送る。アクター・エージェント361はこ
のリクエストに対し、リターンのオブジェクトをリクエ
スト側のコンクリート・アクティビティ358に送出す
る。さらに、コンクリート・アクティビティ358は、
リクエスト側のプロキシー・アクティビティに、この受
け取ったオブジェクト実行命令のリターンとして送出す
る。プロキシー・アクティビティは受領したオブジェク
トをResultのレコード525に格納する。
応答して内部に保持していメッセージの内容にしたがっ
てアクター・エージェントを探索する。そして、アクテ
ィビティは見つけたエージェント(アクター・エージェ
ント)361に対し内部に保持しているメッセージ(リ
クエスト)を送る。アクター・エージェント361はこ
のリクエストに対し、リターンのオブジェクトをリクエ
スト側のコンクリート・アクティビティ358に送出す
る。さらに、コンクリート・アクティビティ358は、
リクエスト側のプロキシー・アクティビティに、この受
け取ったオブジェクト実行命令のリターンとして送出す
る。プロキシー・アクティビティは受領したオブジェク
トをResultのレコード525に格納する。
【0120】プロキシー・アクティビティはプラン・オ
ブジェクト353に依頼の仕事が終わったことを知ら
せ、これに応答してプラン・オブジェクト353はac
t1に処理が終了したことを示すマークを付ける(ブロ
ック855)。そして、プラン・オブジェクト353は
プラン・イタレータ352に対し、ステップを進めるこ
とを依頼し(ブロック859)、プラン・イタレータ3
52は、プラン・オブジェクト353にカレントの情報
を提供する。
ブジェクト353に依頼の仕事が終わったことを知ら
せ、これに応答してプラン・オブジェクト353はac
t1に処理が終了したことを示すマークを付ける(ブロ
ック855)。そして、プラン・オブジェクト353は
プラン・イタレータ352に対し、ステップを進めるこ
とを依頼し(ブロック859)、プラン・イタレータ3
52は、プラン・オブジェクト353にカレントの情報
を提供する。
【0121】この場合、カレントは"1"(2番目のステッ
プ)であるので、プラン・オブジェクトはChainテ
ンプレートのオブジェクトを取り出す(ブロック84
5、847)。そして、プラン・オブジェクトはCha
inに対して、実行を依頼する(ブロック849)。
プ)であるので、プラン・オブジェクトはChainテ
ンプレートのオブジェクトを取り出す(ブロック84
5、847)。そして、プラン・オブジェクトはCha
inに対して、実行を依頼する(ブロック849)。
【0122】Chainのモデレーション管理マネジャ
603は、ステート管理部601に現在のステートを問
い合わせる。ステート管理部601は、デフォルトでオ
リジンの状態になっているので、オリジンであることを
モデレーション管理マネジャ603に知らせる。モデレ
ーション管理マネジャ603は、ステート管理部601
から、ステートの情報を得ると、ステートの切り換えを
ステート管理部601に依頼する。ステート管理部60
1は、これに応答してステートをオリジンからディステ
ィネーションに切り換える。
603は、ステート管理部601に現在のステートを問
い合わせる。ステート管理部601は、デフォルトでオ
リジンの状態になっているので、オリジンであることを
モデレーション管理マネジャ603に知らせる。モデレ
ーション管理マネジャ603は、ステート管理部601
から、ステートの情報を得ると、ステートの切り換えを
ステート管理部601に依頼する。ステート管理部60
1は、これに応答してステートをオリジンからディステ
ィネーションに切り換える。
【0123】このテンプレートの行うステートの切り換
え及びオリジンまたはディスティネーションにおける処
理のフローを図24に示す。このフローチャートは複数
種類存在するテンプレートに共通な動作を示しており、
ブロック8257のオリジンにおける処理とブロック8
31のディスティネーションにおける処理の内容がテン
プレートの種類によって異なる処理が実施される。
え及びオリジンまたはディスティネーションにおける処
理のフローを図24に示す。このフローチャートは複数
種類存在するテンプレートに共通な動作を示しており、
ブロック8257のオリジンにおける処理とブロック8
31のディスティネーションにおける処理の内容がテン
プレートの種類によって異なる処理が実施される。
【0124】モデレーション管理マネジャ603は、オ
リジン用モデレーション・モジュール605に処理を依
頼する。オリジン用モデレーション・モジュール605
とディスティネーション用モデレーション・モジュール
607には、夫々のプレースにおいてテンプレートが動
作するためのインストラクションのセットが管理されて
いる。
リジン用モデレーション・モジュール605に処理を依
頼する。オリジン用モデレーション・モジュール605
とディスティネーション用モデレーション・モジュール
607には、夫々のプレースにおいてテンプレートが動
作するためのインストラクションのセットが管理されて
いる。
【0125】オリジン用モデレーション・モジュール6
05は、モデレータ・エージェント参照モジュール59
9に問い合わせを行うことにより、現在モデレータ・エ
ージェント351の存在するプレースのアドレスを取得
する。
05は、モデレータ・エージェント参照モジュール59
9に問い合わせを行うことにより、現在モデレータ・エ
ージェント351の存在するプレースのアドレスを取得
する。
【0126】また、サクセッサ・リスト609に対し、
サクセッサ・リスト609に登録されているアクティビ
ティのアドレスの渡すように依頼する。サクセッサ・リ
スト609は、登録されているアクティビティ(act
2)からアドレスを取得し、オリジン用モデレーション
・モジュール603に渡す。
サクセッサ・リスト609に登録されているアクティビ
ティのアドレスの渡すように依頼する。サクセッサ・リ
スト609は、登録されているアクティビティ(act
2)からアドレスを取得し、オリジン用モデレーション
・モジュール603に渡す。
【0127】オリジン用モデレーション・モジュール6
03は、アクティビティのアドレスと現在モデレータ・
エージェントの存在するプレースのアドレスを比較し、
もし2つが異なっていたらアクティビティのアドレスに
モデレータ・エージェントを移動させる。具体的には、
オリジン用モデレーション・モジュール605は、モデ
レータ・エージェント参照モジュールを介して、移動を
命令するインストラクションを送出する。同一アドレス
の場合には、処理を終了する。
03は、アクティビティのアドレスと現在モデレータ・
エージェントの存在するプレースのアドレスを比較し、
もし2つが異なっていたらアクティビティのアドレスに
モデレータ・エージェントを移動させる。具体的には、
オリジン用モデレーション・モジュール605は、モデ
レータ・エージェント参照モジュールを介して、移動を
命令するインストラクションを送出する。同一アドレス
の場合には、処理を終了する。
【0128】プラン・オブジェクトは移動先で再びプラ
ン・オブジェクトに対し1ステップの実行を依頼する。
同様にカレントのプランノードを取り出す。プラン・オ
ブジェクトはChainに対し、次のステップの実行を
依頼する。Chainはステートの情報を確認し、ディ
スティネーションの処理を行う。ステートの情報をオリ
ジンの状態に戻す。
ン・オブジェクトに対し1ステップの実行を依頼する。
同様にカレントのプランノードを取り出す。プラン・オ
ブジェクトはChainに対し、次のステップの実行を
依頼する。Chainはステートの情報を確認し、ディ
スティネーションの処理を行う。ステートの情報をオリ
ジンの状態に戻す。
【0129】プランはChainのディスティネーショ
ンの処理の終了を確認すると、次のカレントのプランノ
ードを取り出し(act2)、アクティビティの実行を
依頼する。act2は、act1が内部に保持するre
sultを取得する。
ンの処理の終了を確認すると、次のカレントのプランノ
ードを取り出し(act2)、アクティビティの実行を
依頼する。act2は、act1が内部に保持するre
sultを取得する。
【0130】本発明の好適な実施例においては、ディス
ティネーションモジュール607がプレデセッサ・リス
ト591を参照し、Chainに対し、処理結果の送出
を依頼する"getResult"のインストラクションを送出す
る。Chainは、これに応答し、自己の保有するRe
sultを探索する。しかし、ChainはResul
tを保有していないので、さらにプレデセッサ・リスト
591を参照し、プレデセッサ・リスト591に登録さ
れたオブジェクト(act1)にResultをもらい
に行き、そのResultをact2に返す。プレデセ
ッサ・リスト591に登録されたオブジェクトが存在し
ない場合には、act2にResultを保有していな
いことを示すDummyを送出する。この処理はテンプ
レートにResultを格納するレコードを作成するこ
とによって代替可能である。
ティネーションモジュール607がプレデセッサ・リス
ト591を参照し、Chainに対し、処理結果の送出
を依頼する"getResult"のインストラクションを送出す
る。Chainは、これに応答し、自己の保有するRe
sultを探索する。しかし、ChainはResul
tを保有していないので、さらにプレデセッサ・リスト
591を参照し、プレデセッサ・リスト591に登録さ
れたオブジェクト(act1)にResultをもらい
に行き、そのResultをact2に返す。プレデセ
ッサ・リスト591に登録されたオブジェクトが存在し
ない場合には、act2にResultを保有していな
いことを示すDummyを送出する。この処理はテンプ
レートにResultを格納するレコードを作成するこ
とによって代替可能である。
【0131】act2は、内部に保持しているエージェ
ントのクラス名をキーに同一プレースに存在するレポー
トエージェントの参照を得る。act2はレポートエー
ジェントに対し内部に保持しているメッセージをact
1から入手したresultを引き数にして送る。プラ
ンは次のカレント・ノードを取り出す。この場合、カレ
ント・ノードは存在しないので、プランはこれを検出し
て処理を終了する。ディスティネーション用モデレーシ
ョン・モジュール607はモデレータ・エージェント参
照モジュール599を介して、モデレータ・エージェン
トにモデレータ・エージェントを消滅させるインストラ
クションを送出する。
ントのクラス名をキーに同一プレースに存在するレポー
トエージェントの参照を得る。act2はレポートエー
ジェントに対し内部に保持しているメッセージをact
1から入手したresultを引き数にして送る。プラ
ンは次のカレント・ノードを取り出す。この場合、カレ
ント・ノードは存在しないので、プランはこれを検出し
て処理を終了する。ディスティネーション用モデレーシ
ョン・モジュール607はモデレータ・エージェント参
照モジュール599を介して、モデレータ・エージェン
トにモデレータ・エージェントを消滅させるインストラ
クションを送出する。
【0132】H−2.Iterationテンプレート
を含むトポロジーの場合 図26は、Iterationテンプレートによって制
御される移動オブジェクト群の動作の概要を示す図であ
る。以下、図22を参照し、Iterationテンプ
レートを含むトポロジーの場合の処理を説明する。Ch
ainの場合と同様に、モデレータ・エージェント35
1を生成し、その際の引き数として作成したプラン・オ
ブジェクト353を渡し、プラン353を1ステップず
つ実行する。また、プラン・オブジェクト353は、C
hainの場合と同様に、カレントのプランノード(C
hain)を取り出し、Chainはオリジンにおける
処理を実行する。また、移動先において、「H−1.C
hainテンプレートを含むトポロジーの場合」で説明
したように、ディスティネーションにおける処理の実
行、act1のアクティビティの実行を行う。
を含むトポロジーの場合 図26は、Iterationテンプレートによって制
御される移動オブジェクト群の動作の概要を示す図であ
る。以下、図22を参照し、Iterationテンプ
レートを含むトポロジーの場合の処理を説明する。Ch
ainの場合と同様に、モデレータ・エージェント35
1を生成し、その際の引き数として作成したプラン・オ
ブジェクト353を渡し、プラン353を1ステップず
つ実行する。また、プラン・オブジェクト353は、C
hainの場合と同様に、カレントのプランノード(C
hain)を取り出し、Chainはオリジンにおける
処理を実行する。また、移動先において、「H−1.C
hainテンプレートを含むトポロジーの場合」で説明
したように、ディスティネーションにおける処理の実
行、act1のアクティビティの実行を行う。
【0133】act1の処理が終了すると、次にプラン
353はIterationに次のステップの実行を依
頼する。図27は、Iterationテンプレートの
オリジンにおける処理手順を示すフローチャートであ
る。Iterationテンプレートのオリジンにおけ
る処理においては、まず、次のステップに進んでよい
か、例えば、act1のresultの情報が所定の条
件に一致しているか否かチェックを行う(ブロック87
3)。
353はIterationに次のステップの実行を依
頼する。図27は、Iterationテンプレートの
オリジンにおける処理手順を示すフローチャートであ
る。Iterationテンプレートのオリジンにおけ
る処理においては、まず、次のステップに進んでよい
か、例えば、act1のresultの情報が所定の条
件に一致しているか否かチェックを行う(ブロック87
3)。
【0134】もし条件を満たしている場合、内部に保持
するサクセッサ情報をサクセッサ・リストに格納する
(ブロック875)。そして、サクセッサ・リストのa
ct2よりアドレスを取り出し(ブロック877)、そ
のアドレスにモデレータ・エージェントを移動させる
(ブロック879)。もし、所定の条件に一致していな
い場合には、ステートをオリジンにし(ブロック88
1)、リターン・ノード・インデックスよりプランノー
ドの参照を得、そのプランノードでサクセッサ・リスト
の要素を置き換え、次のステップに進む(ブロック88
3)。以下「H−1.Chainテンプレートを含むト
ポロジーの場合」において説明したようにact2の処
理を行い、処理を終了する。
するサクセッサ情報をサクセッサ・リストに格納する
(ブロック875)。そして、サクセッサ・リストのa
ct2よりアドレスを取り出し(ブロック877)、そ
のアドレスにモデレータ・エージェントを移動させる
(ブロック879)。もし、所定の条件に一致していな
い場合には、ステートをオリジンにし(ブロック88
1)、リターン・ノード・インデックスよりプランノー
ドの参照を得、そのプランノードでサクセッサ・リスト
の要素を置き換え、次のステップに進む(ブロック88
3)。以下「H−1.Chainテンプレートを含むト
ポロジーの場合」において説明したようにact2の処
理を行い、処理を終了する。
【0135】H−3.ANDSplit及びANDJo
inテンプレートを含むトポロジーの場合 図28、29は、ANDSplit、ANDJoinテ
ンプレートによって制御される移動オブジェクト群の動
作の概要を示す図である。以下、図22を参照し、AN
DSplit及びANDJoinテンプレートを含むト
ポロジーの場合の処理を説明する。Chainの場合と
同様に、モデレータ・エージェント351を生成し、そ
の際の引き数として作成したプラン・オブジェクト35
3を渡し、プラン353は、1ステップずつ実行され
る。
inテンプレートを含むトポロジーの場合 図28、29は、ANDSplit、ANDJoinテ
ンプレートによって制御される移動オブジェクト群の動
作の概要を示す図である。以下、図22を参照し、AN
DSplit及びANDJoinテンプレートを含むト
ポロジーの場合の処理を説明する。Chainの場合と
同様に、モデレータ・エージェント351を生成し、そ
の際の引き数として作成したプラン・オブジェクト35
3を渡し、プラン353は、1ステップずつ実行され
る。
【0136】また、プラン・オブジェクト353は、C
hainの場合と同様に、カレントのプランノードであ
るANDSplitを取り出す。プラン353はAND
Splitに対して次のステップの実行を依頼する。図
30は、ANDSplitテンプレートにおけるオリジ
ンの処理の処理手順を示すフローチャートである。
hainの場合と同様に、カレントのプランノードであ
るANDSplitを取り出す。プラン353はAND
Splitに対して次のステップの実行を依頼する。図
30は、ANDSplitテンプレートにおけるオリジ
ンの処理の処理手順を示すフローチャートである。
【0137】モデレーション管理マネジャ603は、ス
テート管理部601のステート情報を検索し、デフォル
トである、「オリジン」の情報を取得する。モデレーシ
ョン管理マネジャ603は、オリジン用モデレーション
・モジュール605にオリジンにおける処理を行うよう
依頼する。モデレーション管理マネジャ603は、ステ
ートをディスティネーションに変えるようステート管理
部に依頼する(ブロック893)。そして、ANDSp
litは、サクセッサ・リストを参照し(ブロック89
7)、サクセッサ・リストの最初のアクティビティを取
り出し、マークド・インデックス595に「0」をセッ
トする(ブロック899)。
テート管理部601のステート情報を検索し、デフォル
トである、「オリジン」の情報を取得する。モデレーシ
ョン管理マネジャ603は、オリジン用モデレーション
・モジュール605にオリジンにおける処理を行うよう
依頼する。モデレーション管理マネジャ603は、ステ
ートをディスティネーションに変えるようステート管理
部に依頼する(ブロック893)。そして、ANDSp
litは、サクセッサ・リストを参照し(ブロック89
7)、サクセッサ・リストの最初のアクティビティを取
り出し、マークド・インデックス595に「0」をセッ
トする(ブロック899)。
【0138】次に、モデレーション管理マネジャ603
は、モデレータ・エージェントのクローンを作成するよ
うモデレータ・エージェント参照モジュール599を介
してモデレータ・エージェント351に依頼する(ブロ
ック901。モデレータ・エージェントは、この依頼に
応答して、モデレータ・エージェント及びモデレータ・
エージェントの保持するプラン、テンプレート、アクテ
ィビティ等、全てのオブジェクトのコピーも作成する。
は、モデレータ・エージェントのクローンを作成するよ
うモデレータ・エージェント参照モジュール599を介
してモデレータ・エージェント351に依頼する(ブロ
ック901。モデレータ・エージェントは、この依頼に
応答して、モデレータ・エージェント及びモデレータ・
エージェントの保持するプラン、テンプレート、アクテ
ィビティ等、全てのオブジェクトのコピーも作成する。
【0139】コピーによって作成されたクローンのモデ
レータ・エージェントは、クローンの作成の完了に応答
して、自分のエージェントIDをモデレータ・エージェ
ント参照モジュール599に教える。モデレータ・エー
ジェント参照モジュール599は、クローンの作成が完
了したことをオリジン用モジュレーションモジュール6
05に知らせる。
レータ・エージェントは、クローンの作成の完了に応答
して、自分のエージェントIDをモデレータ・エージェ
ント参照モジュール599に教える。モデレータ・エー
ジェント参照モジュール599は、クローンの作成が完
了したことをオリジン用モジュレーションモジュール6
05に知らせる。
【0140】オリジン用モジュレーションモジュール6
05はこれに応答して、マークド・インデックスの値
(0)に対応するアクティビティ(act1)のアドレ
スをサクセッサ・リスト609から取得する。オリジン
用モデレータモジュール605は、モデレータ・エージ
ェント参照モジュール599を介して、クローンをac
t1のアドレスに対応するプレースに移動することをモ
デレータ・エージェント351に依頼する(ブロック9
03)。
05はこれに応答して、マークド・インデックスの値
(0)に対応するアクティビティ(act1)のアドレ
スをサクセッサ・リスト609から取得する。オリジン
用モデレータモジュール605は、モデレータ・エージ
ェント参照モジュール599を介して、クローンをac
t1のアドレスに対応するプレースに移動することをモ
デレータ・エージェント351に依頼する(ブロック9
03)。
【0141】オリジン用モジュレーションモジュール6
05は、サクセッサ・リスト609を参照し、次のアク
ティビティが登録されているか否か判断し、登録されて
いる場合には、さらに、もう一つのクローンの作成の処
理を同様の手順で行い、act2のプレースに移動させ
る(ブロック897〜903)。この時、act2に移
動させるクローンのマークド・インデックス595はa
ct1に移動するクローンと異なり、「1」にしておく
(ブロック899)。
05は、サクセッサ・リスト609を参照し、次のアク
ティビティが登録されているか否か判断し、登録されて
いる場合には、さらに、もう一つのクローンの作成の処
理を同様の手順で行い、act2のプレースに移動させ
る(ブロック897〜903)。この時、act2に移
動させるクローンのマークド・インデックス595はa
ct1に移動するクローンと異なり、「1」にしておく
(ブロック899)。
【0142】act2に移動するクローンの作成及び移
動の処理が終了すると、オリジン用モジュレーションモ
ジュール605は、サクセッサ・リスト609を参照
し、次のアクティビティが登録されているか否か判断す
る(ブロック897)。この例の場合には、サクセッサ
・リスト609には、もう登録されているアクティビテ
ィは存在しないので、オリジン用モデレーション・モジ
ュール605は、クローンの作成及び移動の処理が終了
したことを認識する。
動の処理が終了すると、オリジン用モジュレーションモ
ジュール605は、サクセッサ・リスト609を参照
し、次のアクティビティが登録されているか否か判断す
る(ブロック897)。この例の場合には、サクセッサ
・リスト609には、もう登録されているアクティビテ
ィは存在しないので、オリジン用モデレーション・モジ
ュール605は、クローンの作成及び移動の処理が終了
したことを認識する。
【0143】オリジン用モデレーション・モジュール6
05はこれに応答して、モデレータ・エージェント参照
モジュール599を介して、もとの場所(オリジンのプ
レース)に残っているモデレータ・エージェント351
を消去するインストラクションをモデレータ・エージェ
ント351に送出する(ブロック905)。
05はこれに応答して、モデレータ・エージェント参照
モジュール599を介して、もとの場所(オリジンのプ
レース)に残っているモデレータ・エージェント351
を消去するインストラクションをモデレータ・エージェ
ント351に送出する(ブロック905)。
【0144】この一方、クローンのモデレータ・エージ
ェントは、夫々のプレースにおいて、次のプランステッ
プを実行する。このとき、カレント・ノードとしてAN
DSplitが再び取り出される。この次のカレントを
決定するロジックのフローチャートを図31に示す。モ
デレーション管理マネジャ603は、ステート管理部6
01を参照し、ステート情報を取得し、現在のステート
はディスティネーションであることを認識し、ディステ
ィネーション用モデレーション607に処理の実行を依
頼する。
ェントは、夫々のプレースにおいて、次のプランステッ
プを実行する。このとき、カレント・ノードとしてAN
DSplitが再び取り出される。この次のカレントを
決定するロジックのフローチャートを図31に示す。モ
デレーション管理マネジャ603は、ステート管理部6
01を参照し、ステート情報を取得し、現在のステート
はディスティネーションであることを認識し、ディステ
ィネーション用モデレーション607に処理の実行を依
頼する。
【0145】モデレーション管理マネジャ603はステ
ートの情報をオリジンの状態に戻す。プランはANDS
plitのディスティネーションの処理の終了を確認す
ると、マークド・インデックスに対応したプランノード
を取り出し(act1またはact2)、アクティビテ
ィの実行を依頼する。
ートの情報をオリジンの状態に戻す。プランはANDS
plitのディスティネーションの処理の終了を確認す
ると、マークド・インデックスに対応したプランノード
を取り出し(act1またはact2)、アクティビテ
ィの実行を依頼する。
【0146】プラン・オブジェクト353はプラン・イ
タレータ352を参照して、次のカレントのノードを取
り出す。このとき、プラン・イタレータは、サクセッサ
・リスト609及びマークド・インデックス595を参
照し、登録されている値を検査する(図31)。
タレータ352を参照して、次のカレントのノードを取
り出す。このとき、プラン・イタレータは、サクセッサ
・リスト609及びマークド・インデックス595を参
照し、登録されている値を検査する(図31)。
【0147】act1、act2は、先に実行されたア
クティビティが保持するResultを取得する。この
例では、ANDSplitテンプレートの前にはアクテ
ィビティが実行されていないため、act1、act2
は、先に実行されたアクティビティが保持するResu
ltを、結果的に取得しないことになる。
クティビティが保持するResultを取得する。この
例では、ANDSplitテンプレートの前にはアクテ
ィビティが実行されていないため、act1、act2
は、先に実行されたアクティビティが保持するResu
ltを、結果的に取得しないことになる。
【0148】まず、act1に対応するクローンのエー
ジェントにおいて、次のカレント・ノードとしてAND
Joinが選ばれる。プラン・オブジェクト353は、
ANDJoinテンプレートのモデレータ管理マネジャ
603に次のステップの実行を依頼する。モデレータ管
理マネジャ603は、ステート管理部601の情報か
ら、現在オリジンの処理を行うべきことを認識し、オリ
ジン用モデレーション・モジュール605に実行要求を
出す。また、ステート管理部601にステートの変更を
依頼する。
ジェントにおいて、次のカレント・ノードとしてAND
Joinが選ばれる。プラン・オブジェクト353は、
ANDJoinテンプレートのモデレータ管理マネジャ
603に次のステップの実行を依頼する。モデレータ管
理マネジャ603は、ステート管理部601の情報か
ら、現在オリジンの処理を行うべきことを認識し、オリ
ジン用モデレーション・モジュール605に実行要求を
出す。また、ステート管理部601にステートの変更を
依頼する。
【0149】オリジン用モデレーション・モジュール6
05はサクセッサ・リスト609を参照し、サクセッサ
・リスト609に登録されたアクティビティ(act
3)のアドレス情報を取得する。そして、モデレータ・
エージェント参照モジュール599を介してモデレータ
・エージェント351に入手したアドレス情報に対応し
たプレースへの移動を指示する。
05はサクセッサ・リスト609を参照し、サクセッサ
・リスト609に登録されたアクティビティ(act
3)のアドレス情報を取得する。そして、モデレータ・
エージェント参照モジュール599を介してモデレータ
・エージェント351に入手したアドレス情報に対応し
たプレースへの移動を指示する。
【0150】act2に対応するクローンのエージェン
トもact1の場合と同様に処理を行い、act3のプ
レースに移動する。2つのモデレータ・エージェントは
新たなプレースに到着したので、それぞれ次のステップ
を実行する。プラン・オブジェクト353は、カレント
・ノードとしてANDJoinテンプレートを取り出
し、次のステップを実行する。
トもact1の場合と同様に処理を行い、act3のプ
レースに移動する。2つのモデレータ・エージェントは
新たなプレースに到着したので、それぞれ次のステップ
を実行する。プラン・オブジェクト353は、カレント
・ノードとしてANDJoinテンプレートを取り出
し、次のステップを実行する。
【0151】図32、33は、ANDJoinテンプレ
ートのディスティネーションにおける処理手順を示すフ
ローチャートである。ANDJoinのモデレーション
管理マネジャ603は、ステート管理部601を参照し
て、現在のステートがディスティネーションであること
を判断し、ディスティネーション用モデレーション・モ
ジュール607に実行を依頼する。
ートのディスティネーションにおける処理手順を示すフ
ローチャートである。ANDJoinのモデレーション
管理マネジャ603は、ステート管理部601を参照し
て、現在のステートがディスティネーションであること
を判断し、ディスティネーション用モデレーション・モ
ジュール607に実行を依頼する。
【0152】各モデレーション管理マネジャ603は、
ステートをオリジンの状態に戻す。act1に対応する
クローンのディスティネーション用モデレーション・モ
ジュール607は、プレデセッサ・リスト591を参照
し、終了のマークのついたアクティビティ(この場合a
ct1)を取り出す(ブロック913)。この取り出さ
れたアクティビティがプレデセッサ・インデックス・リ
ストの中で一番小さなインデックスを有しているか否か
検査し(ブロック915)、一番小さなインデックスを
有していると判断された場合には、他のクローンエージ
ェントのResultを受け取る処理を行う。
ステートをオリジンの状態に戻す。act1に対応する
クローンのディスティネーション用モデレーション・モ
ジュール607は、プレデセッサ・リスト591を参照
し、終了のマークのついたアクティビティ(この場合a
ct1)を取り出す(ブロック913)。この取り出さ
れたアクティビティがプレデセッサ・インデックス・リ
ストの中で一番小さなインデックスを有しているか否か
検査し(ブロック915)、一番小さなインデックスを
有していると判断された場合には、他のクローンエージ
ェントのResultを受け取る処理を行う。
【0153】具体的には、ディスティネーション用モデ
レーション・モジュール607は、同一プレース上エー
ジェント参照モジュール597に同一プレースに存在す
るエージェントリストをプレースから取得することを依
頼する。同一プレース上エージェント参照モジュール5
97はこれに応答して、プレース360に対し"getAgen
tList"のインストラクションを出し、問い合わせを行
う。プレースはAgentListを返すことによって、同一プ
レースに存在するエージェントのリストを入手する。
レーション・モジュール607は、同一プレース上エー
ジェント参照モジュール597に同一プレースに存在す
るエージェントリストをプレースから取得することを依
頼する。同一プレース上エージェント参照モジュール5
97はこれに応答して、プレース360に対し"getAgen
tList"のインストラクションを出し、問い合わせを行
う。プレースはAgentListを返すことによって、同一プ
レースに存在するエージェントのリストを入手する。
【0154】同一プレース上エージェント参照モジュー
ル597はこのリストをディスティネーション用モデレ
ーション・モジュール607に渡す。ディスティネーシ
ョン用モデレーション・モジュール607は、このリス
トから同一のプランIDを有するエージェントを探す
(ブロック921)。
ル597はこのリストをディスティネーション用モデレ
ーション・モジュール607に渡す。ディスティネーシ
ョン用モデレーション・モジュール607は、このリス
トから同一のプランIDを有するエージェントを探す
(ブロック921)。
【0155】同一のプランIDを有するエージェントが
発見された場合、そのエージェントのプランを取得す
る。そして、取得したプランのカレント・ノードを調べ
(ブロック929)、同じANDJoinであれば、そ
のエージェントのResultを受け取る処理を行う。
本発明の好適な実施例においては、さらに、カレント・
ノード・インデックスが同じか否か判断し(ブロック9
31、933)、同じ場合のみ融合の処理に入る。これ
は、ANDJoinの処理対象を誤認することを防止す
るためである。このとき、ディスティネーション用モデ
レーション・モジュール607は、プレデセッサ・リス
トを参照し、プレデセッサが幾つあるかを把握し、その
数に対応してResultを受け取る処理を行う。
発見された場合、そのエージェントのプランを取得す
る。そして、取得したプランのカレント・ノードを調べ
(ブロック929)、同じANDJoinであれば、そ
のエージェントのResultを受け取る処理を行う。
本発明の好適な実施例においては、さらに、カレント・
ノード・インデックスが同じか否か判断し(ブロック9
31、933)、同じ場合のみ融合の処理に入る。これ
は、ANDJoinの処理対象を誤認することを防止す
るためである。このとき、ディスティネーション用モデ
レーション・モジュール607は、プレデセッサ・リス
トを参照し、プレデセッサが幾つあるかを把握し、その
数に対応してResultを受け取る処理を行う。
【0156】具体的には、ディスティネーション用モデ
レーション・モジュール607は、受領したプランのプ
レデセッサ・リスト591を参照し、終了のマークのつ
いたアクティビティを取り出し、そのアクティビティの
保有しているResultを受け取る。そして、このR
esultを対応するアクティビティのResultに
セットする。プランノード自体を置き換える処理を行っ
てもよい(ブロック935)。図34は、このResu
ltを受け取る処理の概要を示す図である。
レーション・モジュール607は、受領したプランのプ
レデセッサ・リスト591を参照し、終了のマークのつ
いたアクティビティを取り出し、そのアクティビティの
保有しているResultを受け取る。そして、このR
esultを対応するアクティビティのResultに
セットする。プランノード自体を置き換える処理を行っ
てもよい(ブロック935)。図34は、このResu
ltを受け取る処理の概要を示す図である。
【0157】ディスティネーション用モデレーションエ
ージェント607は、Resultのセットが終了した
ことを検出した後、モデレータ・エージェント参照モジ
ュールを介して、相手のモデレータ・エージェント35
1に対して消去を指示するインストラクションを送出す
る(ブロック937)。相手のモデレータ・エージェン
トは、このインストラクションを受け、モデレータ・エ
ージェント及び、自分の管理するオブジェクト(プラ
ン、テンプレート、アクティビティ等)を消去する。
ージェント607は、Resultのセットが終了した
ことを検出した後、モデレータ・エージェント参照モジ
ュールを介して、相手のモデレータ・エージェント35
1に対して消去を指示するインストラクションを送出す
る(ブロック937)。相手のモデレータ・エージェン
トは、このインストラクションを受け、モデレータ・エ
ージェント及び、自分の管理するオブジェクト(プラ
ン、テンプレート、アクティビティ等)を消去する。
【0158】この一方、act2に対応するエージェン
トは、新たなプレースに到着したことに伴い、次のステ
ップを実行する。このエージェントのディスティネーシ
ョン用モデレーション・モジュール607も、プレデセ
ッサ・リスト591を参照し、終了のマークのついたア
クティビティ(この場合act2)を取り出す(ブロッ
ク913)。この取り出されたアクティビティがプレデ
セッサ・インデックス・リストの中で一番小さなインデ
ックスを有しているか否か検査し(ブロック915)、
一番小さなインデックスでないと判断される。この場合
には、他のクローンエージェントのResultを渡す
のを待つためSleep状態に入る(ブロック92
5)。
トは、新たなプレースに到着したことに伴い、次のステ
ップを実行する。このエージェントのディスティネーシ
ョン用モデレーション・モジュール607も、プレデセ
ッサ・リスト591を参照し、終了のマークのついたア
クティビティ(この場合act2)を取り出す(ブロッ
ク913)。この取り出されたアクティビティがプレデ
セッサ・インデックス・リストの中で一番小さなインデ
ックスを有しているか否か検査し(ブロック915)、
一番小さなインデックスでないと判断される。この場合
には、他のクローンエージェントのResultを渡す
のを待つためSleep状態に入る(ブロック92
5)。
【0159】再び、話をact1に対応するクローンに
戻すと、ディスティネーション用モデレーション・モジ
ュール607は、プレデセッサ・リストの数に対応して
(プレデセッサ・リストの要素数−1回)Result
を受け取り、クローンの消去を行う処理を完了した後、
プランは、次のカレントのプランノードを取り出し(a
ct3)、アクティビティの実行を依頼する。
戻すと、ディスティネーション用モデレーション・モジ
ュール607は、プレデセッサ・リストの数に対応して
(プレデセッサ・リストの要素数−1回)Result
を受け取り、クローンの消去を行う処理を完了した後、
プランは、次のカレントのプランノードを取り出し(a
ct3)、アクティビティの実行を依頼する。
【0160】act3は、act1、act2が内部に
保持するresultを取得する。本発明の好適な実施
例においては、ディスティネーションモジュール607
がプレデセッサ・リスト591を参照し、(act1に
対応するクローンの)act1、act2に対し、処理
結果の送出を依頼する"getResult"のインストラクショ
ンを送出する。act1、act2は、これに応答し、
自己の保有するResultを送出する。
保持するresultを取得する。本発明の好適な実施
例においては、ディスティネーションモジュール607
がプレデセッサ・リスト591を参照し、(act1に
対応するクローンの)act1、act2に対し、処理
結果の送出を依頼する"getResult"のインストラクショ
ンを送出する。act1、act2は、これに応答し、
自己の保有するResultを送出する。
【0161】act3は、内部に保持しているエージェ
ントのクラス名をキーに同一プレースに存在するエージ
ェント(この例ではレポートエージェント)の参照を得
る。act3はレポートエージェントに対し内部に保持
しているメッセージをact1、act2から入手した
resultを引き数にして送る。
ントのクラス名をキーに同一プレースに存在するエージ
ェント(この例ではレポートエージェント)の参照を得
る。act3はレポートエージェントに対し内部に保持
しているメッセージをact1、act2から入手した
resultを引き数にして送る。
【0162】プランは次のカレント・ノードを取り出
す。この場合、カレント・ノードは存在しないので、プ
ランはこれを検出して処理を終了する。そして、モデレ
ータ・エージェントは、処理の終了を検出しモデレータ
エージェン及び自己が管理するオブジェクトの消去をし
て処理を終了する。
す。この場合、カレント・ノードは存在しないので、プ
ランはこれを検出して処理を終了する。そして、モデレ
ータ・エージェントは、処理の終了を検出しモデレータ
エージェン及び自己が管理するオブジェクトの消去をし
て処理を終了する。
【0163】H−4.ORSplitテンプレートを含
むトポロジーの場合 図34は、ORSplitテンプレートによって制御さ
れる移動オブジェクト群の動作の概要を示す図である。
ORSplitの場合、ChainやANDSplit
の場合と異なりオリジンの処理において図35に示す処
理を行う。ORSplitテンプレートは一つのプレデ
セッサのアクティビティと複数のサクセッサのアクティ
ビティを有している。オリジナルのプレースにおいて
は、"chooseActivity"というメソッドが呼び出されるこ
とによってサクセッサのリストから一つのアクティビテ
ィが選択され、その選択されたアクティビティのみが実
行される。
むトポロジーの場合 図34は、ORSplitテンプレートによって制御さ
れる移動オブジェクト群の動作の概要を示す図である。
ORSplitの場合、ChainやANDSplit
の場合と異なりオリジンの処理において図35に示す処
理を行う。ORSplitテンプレートは一つのプレデ
セッサのアクティビティと複数のサクセッサのアクティ
ビティを有している。オリジナルのプレースにおいて
は、"chooseActivity"というメソッドが呼び出されるこ
とによってサクセッサのリストから一つのアクティビテ
ィが選択され、その選択されたアクティビティのみが実
行される。
【0164】ORSplitのオリジンの処理において
は、まず、ステートがディスティネーションに変更され
る(ブロック982)。そして、"chooseActivity"関数
をコールし、所定の条件に合致する実行すべきアクティ
ビティを選択する(ブロック983)。そして、そのア
クティビティのインデックスをマークド・インデックス
にする(ブロック984)。そして、選択されたアクテ
ィビティのアドレスを入手し、モデレータ・エージェン
ト351に該アドレスへの移動を要求する(ブロック9
85)。
は、まず、ステートがディスティネーションに変更され
る(ブロック982)。そして、"chooseActivity"関数
をコールし、所定の条件に合致する実行すべきアクティ
ビティを選択する(ブロック983)。そして、そのア
クティビティのインデックスをマークド・インデックス
にする(ブロック984)。そして、選択されたアクテ
ィビティのアドレスを入手し、モデレータ・エージェン
ト351に該アドレスへの移動を要求する(ブロック9
85)。
【0165】H−5.ORJoinテンプレートを含む
トポロジーの場合 図36は、ORJoinテンプレートによって制御され
る移動オブジェクト群の動作の概要を示す図である。O
RJoinの場合、ChainやANDJoinの場合
と異なりディスティネーションの処理において図37に
示すような処理を行う。ORJoinテンプレートは、
複数のプレデセッサのアクティビティと一つのサクセッ
サのアクティビティを有している。ORJoinは、デ
ィスティネーションにおいて、最も早く到着したものが
Disposeエージェントを生成し、他の移動エージ
ェントを消去する処理を行う。
トポロジーの場合 図36は、ORJoinテンプレートによって制御され
る移動オブジェクト群の動作の概要を示す図である。O
RJoinの場合、ChainやANDJoinの場合
と異なりディスティネーションの処理において図37に
示すような処理を行う。ORJoinテンプレートは、
複数のプレデセッサのアクティビティと一つのサクセッ
サのアクティビティを有している。ORJoinは、デ
ィスティネーションにおいて、最も早く到着したものが
Disposeエージェントを生成し、他の移動エージ
ェントを消去する処理を行う。
【0166】まず、最も早くディスティネーション69
0に到着した移動オブジェクト群のORJoinテンプ
レート694は、"findDisposeAgent"のメソッドを送出
して、同一プレース上にDisposeエージェントが
存在しているか否か判断する(ブロック943)。存在
しない場合は、他のエージェントを消去するDispo
seエージェントを生成する(ブロック945)。この
とき引き数としてプラン及びプレデセッサ・リストのア
クティビティの数−1を渡す。Disposeエージェ
ントは、プレデセッサ・リストのアクティビティの数−
1の移動オブジェクト群を待ち受け消去し、役目が終了
すると自分自身を消去する。本発明の好適な実施例にお
いては、最も早くディスティネーション690に到着し
たか否かを生き残りの条件としているが、Result
の内容を条件として、継続処理するものを決定してもよ
い。
0に到着した移動オブジェクト群のORJoinテンプ
レート694は、"findDisposeAgent"のメソッドを送出
して、同一プレース上にDisposeエージェントが
存在しているか否か判断する(ブロック943)。存在
しない場合は、他のエージェントを消去するDispo
seエージェントを生成する(ブロック945)。この
とき引き数としてプラン及びプレデセッサ・リストのア
クティビティの数−1を渡す。Disposeエージェ
ントは、プレデセッサ・リストのアクティビティの数−
1の移動オブジェクト群を待ち受け消去し、役目が終了
すると自分自身を消去する。本発明の好適な実施例にお
いては、最も早くディスティネーション690に到着し
たか否かを生き残りの条件としているが、Result
の内容を条件として、継続処理するものを決定してもよ
い。
【0167】この一方、他の移動オブジェクト群のOR
Joinテンプレート696は、同様に"findDisposeAg
ent"のメソッドを送出して、同一プレース上にDisp
oseエージェントが存在しているか否か判断する(ブ
ロック943)。この場合、既にDisposeエージ
ェントが存在しているので、Disposeエージェン
トに消去される処理に入る。具体的には、Dispos
eエージェントが同じプランを保持するか(ブロック9
47)、また、同じカレント・ノード・インデックスか
(ブロック949)判断し、自分が消去されるべき、D
isposeエージェントであると確認する。
Joinテンプレート696は、同様に"findDisposeAg
ent"のメソッドを送出して、同一プレース上にDisp
oseエージェントが存在しているか否か判断する(ブ
ロック943)。この場合、既にDisposeエージ
ェントが存在しているので、Disposeエージェン
トに消去される処理に入る。具体的には、Dispos
eエージェントが同じプランを保持するか(ブロック9
47)、また、同じカレント・ノード・インデックスか
(ブロック949)判断し、自分が消去されるべき、D
isposeエージェントであると確認する。
【0168】自分が消去されるべき、Disposeエ
ージェントであると確認できた場合には、Dispos
eエージェントに"countdown"のメッセージを送り、D
isposeエージェントの処理数を減らす(ブロック
951)。そして、ORJoinテンプレート696
は、モデレータ・エージェント692にdispose
要求を送出し、モデレータ・エージェント692を消滅
させる。
ージェントであると確認できた場合には、Dispos
eエージェントに"countdown"のメッセージを送り、D
isposeエージェントの処理数を減らす(ブロック
951)。そして、ORJoinテンプレート696
は、モデレータ・エージェント692にdispose
要求を送出し、モデレータ・エージェント692を消滅
させる。
【0169】その他、本発明の好適な実施例において
は、複数のプレデセッサのアクティビティと、プレデセ
ッサのアクティビティよりも少ない数の複数のサクセッ
サのアクティビティを有する一部Joinテンプレート
等も提供されているが、これらのテンプレートは上述の
テンプレートの組合せでも実施可能であるため説明を省
略する。例えば、一部Joinテンプレートは複数のプ
レデセッサのアクティビティと、1つのサクセッサのア
クティビティとをリンクするORJoinテンプレート
と、所望の数のORJoinテンプレートが実行された
ことを判断するアクティビティと、このアクティビティ
が所望の条件をクリアしたか否かの判断によってORJ
oinテンプレートに戻るIterationテンプレ
ートと、ダミーのアクティビティと、所望の数に分裂さ
せるANDSplitの組合せによって実施可能であ
る。
は、複数のプレデセッサのアクティビティと、プレデセ
ッサのアクティビティよりも少ない数の複数のサクセッ
サのアクティビティを有する一部Joinテンプレート
等も提供されているが、これらのテンプレートは上述の
テンプレートの組合せでも実施可能であるため説明を省
略する。例えば、一部Joinテンプレートは複数のプ
レデセッサのアクティビティと、1つのサクセッサのア
クティビティとをリンクするORJoinテンプレート
と、所望の数のORJoinテンプレートが実行された
ことを判断するアクティビティと、このアクティビティ
が所望の条件をクリアしたか否かの判断によってORJ
oinテンプレートに戻るIterationテンプレ
ートと、ダミーのアクティビティと、所望の数に分裂さ
せるANDSplitの組合せによって実施可能であ
る。
【0170】
【発明の効果】以上説明したように、本発明によれば、
高度なプログラミングの知識を必要とせず、プログラマ
の開発労力及び開発時間の負担が少ない移動エージェン
トの開発が可能となる。
高度なプログラミングの知識を必要とせず、プログラマ
の開発労力及び開発時間の負担が少ない移動エージェン
トの開発が可能となる。
【0171】また、本発明によれば、移動エージェント
の開発労力及び開発時間を可能な限り軽減することがで
きる。
の開発労力及び開発時間を可能な限り軽減することがで
きる。
【0172】そして、本発明によれば、開発者が直感的
にその機能を把握でき、親しみやすい移動エージェント
開発環境を提供することができる。
にその機能を把握でき、親しみやすい移動エージェント
開発環境を提供することができる。
【0173】
【図1】 本発明によって生成される移動エージェント
が動作する分散ネットワーク環境を示す図である。
が動作する分散ネットワーク環境を示す図である。
【図2】 本発明によって生成される移動エージェント
が分散ネットワーク上で移動する態様の一例を示す図で
ある。
が分散ネットワーク上で移動する態様の一例を示す図で
ある。
【図3】 本発明の好適な実施例における移動エージェ
ント生成システムのハードウェア構成の概観図である。
ント生成システムのハードウェア構成の概観図である。
【図4】 本発明の移動エージェント生成システムにお
ける処理要素の一実施例を示す機能ブロック図である。
ける処理要素の一実施例を示す機能ブロック図である。
【図5】 本発明の移動エージェント生成システムにお
ける処理要素の一実施例をGUIプテン定義データ生成
部207を中心に見た機能ブロック図である。
ける処理要素の一実施例をGUIプテン定義データ生成
部207を中心に見た機能ブロック図である。
【図6】 本発明の移動エージェント生成システムによ
って生成された移動エージェント群の実行時における処
理要素の一実施例を示す機能ブロック図である。移動オ
ブジェ
って生成された移動エージェント群の実行時における処
理要素の一実施例を示す機能ブロック図である。移動オ
ブジェ
【図7】 本発明の好適な実施例において生成される移
動エージェント群のオブジェクト図である。
動エージェント群のオブジェクト図である。
【図8】 本発明の好適な実施例において生成される移
動エージェント群のオブジェクト図である。
動エージェント群のオブジェクト図である。
【図9】 本発明の好適な実施例において生成されるプ
ラン定義データのオブジェクト図である。
ラン定義データのオブジェクト図である。
【図10】 本発明の好適な実施例におけるオブジェク
ト間のメッセージの流れを示す図である。
ト間のメッセージの流れを示す図である。
【図11】 本発明の好適な実施例における移動エージ
ェント生成システムのユーザインターフェースを示す図
である。
ェント生成システムのユーザインターフェースを示す図
である。
【図12】 本発明の好適な実施例における移動エージ
ェント生成システムのユーザインターフェースを示す図
である。
ェント生成システムのユーザインターフェースを示す図
である。
【図13】 本発明の好適な実施例における移動エージ
ェント生成システムのユーザインターフェースを示す図
である。
ェント生成システムのユーザインターフェースを示す図
である。
【図14】 本発明の好適な実施例における移動エージ
ェント生成システムのユーザインターフェースを示す図
である。
ェント生成システムのユーザインターフェースを示す図
である。
【図15】 本発明の好適な実施例における移動エージ
ェント生成システムのユーザインターフェースを示す図
である。
ェント生成システムのユーザインターフェースを示す図
である。
【図16】 本発明の好適な実施例における移動エージ
ェント生成システムのユーザインターフェースを示す図
である。
ェント生成システムのユーザインターフェースを示す図
である。
【図17】 本発明の好適な実施例におけるプラン定義
データを基に実行コード(プラン)を生成する手順を示
すフローチャートである。
データを基に実行コード(プラン)を生成する手順を示
すフローチャートである。
【図18】 本発明の好適な実施例におけるプラン定義
データを基に実行コード(プラン)を生成する手順を示
すフローチャートである。
データを基に実行コード(プラン)を生成する手順を示
すフローチャートである。
【図19】 本発明の好適な実施例におけるキャリア・
エージェントの生成及び各プレースへの送信手順を示す
フローチャートである。
エージェントの生成及び各プレースへの送信手順を示す
フローチャートである。
【図20】 本発明の好適な実施例におけるキャリア・
エージェントの生成及び各プレースへの送信手順を示す
フローチャートである。
エージェントの生成及び各プレースへの送信手順を示す
フローチャートである。
【図21】 本発明の好適な実施例におけるプラン・オ
ブジェクトの実行手順を示すフローチャートである。
ブジェクトの実行手順を示すフローチャートである。
【図22】 本発明の好適な実施例におけるモデレータ
・テンプレートの機能ブロック図である。
・テンプレートの機能ブロック図である。
【図23】 本発明の好適な実施例におけるプレースの
概念図である。
概念図である。
【図24】 本発明の好適な実施例におけるモデレータ
・テンプレートの処理概要を示すフローチャートであ
る。
・テンプレートの処理概要を示すフローチャートであ
る。
【図25】 本発明の好適な実施例における移動オブジ
ェクト群がオリジンのプレースからディスティネーショ
ンのプレースに移動する状態を示す概念図である。
ェクト群がオリジンのプレースからディスティネーショ
ンのプレースに移動する状態を示す概念図である。
【図26】 本発明の好適な実施例における移動オブジ
ェクト群がオリジンのプレースからディスティネーショ
ンのプレースに移動する状態を示す概念図である。
ェクト群がオリジンのプレースからディスティネーショ
ンのプレースに移動する状態を示す概念図である。
【図27】 本発明の好適な実施例におけるItera
tionテンプレートのオリジンにおける処理手順を示
すフローチャートである。
tionテンプレートのオリジンにおける処理手順を示
すフローチャートである。
【図28】 本発明の好適な実施例における移動オブジ
ェクト群がオリジンのプレースからディスティネーショ
ンのプレースに移動する状態を示す概念図である。
ェクト群がオリジンのプレースからディスティネーショ
ンのプレースに移動する状態を示す概念図である。
【図29】 本発明の好適な実施例における移動オブジ
ェクト群がオリジンのプレースからディスティネーショ
ンのプレースに移動する状態を示す概念図である。
ェクト群がオリジンのプレースからディスティネーショ
ンのプレースに移動する状態を示す概念図である。
【図30】 本発明の好適な実施例におけるANDSp
litテンプレートのオリジンにおける処理手順を示す
フローチャートである。
litテンプレートのオリジンにおける処理手順を示す
フローチャートである。
【図31】 本発明の好適な実施例におけるカレント・
ノードを決定するロジックを示すフローチャートであ
る。
ノードを決定するロジックを示すフローチャートであ
る。
【図32】 本発明の好適な実施例におけるANDJo
inテンプレートのディスティネーションにおける処理
手順を示すフローチャートである。
inテンプレートのディスティネーションにおける処理
手順を示すフローチャートである。
【図33】 本発明の好適な実施例におけるANDJo
inテンプレートのディスティネーションにおける処理
手順を示すフローチャートである。
inテンプレートのディスティネーションにおける処理
手順を示すフローチャートである。
【図34】 本発明の好適な実施例における移動オブジ
ェクト群がオリジンのプレースからディスティネーショ
ンのプレースに移動する状態を示す概念図である。
ェクト群がオリジンのプレースからディスティネーショ
ンのプレースに移動する状態を示す概念図である。
【図35】 本発明の好適な実施例におけるORSpl
itテンプレートのオリジンにおける処理手順を示すフ
ローチャートである。
itテンプレートのオリジンにおける処理手順を示すフ
ローチャートである。
【図36】 本発明の好適な実施例における移動オブジ
ェクト群がオリジンのプレースからディスティネーショ
ンのプレースに移動する状態を示す概念図である。
ェクト群がオリジンのプレースからディスティネーショ
ンのプレースに移動する状態を示す概念図である。
【図37】 本発明の好適な実施例におけるORJoi
nテンプレートのディスティネーションにおける処理手
順を示すフローチャートである。
nテンプレートのディスティネーションにおける処理手
順を示すフローチャートである。
100 ノード・システム 201 GUIプランノード・ライブラリ 203 GUIモデレータ・テンプレート 205 GUIアクティビティ 207 GUIプラン定義データ 209 GUIプラン定義データ生成部 211 実行コード生成部 213 プラン生成部 215 プランID生成部 221 プラン・オブジェクト 222 プロキシー・アクティビティ 223 プラン構成部 224 プラン分割部 225 順序リスト 227 プランID 229 ネットワーク・トポロジー 230 キャリア・エージェント 231 入力イベント取得部 232 移動先プレース・アドレス 233 プラン・オブジェクト操作部 234 キャリア・エージェントID 236 コンクリート・アクティビティ・テーブル 237 プラン・オブジェクト属性変更部 243 プラン表示部 249 実行コード生成部 251 モデレータ・エージェント 253 移動エージェント・ライフサイクル制御部 255 プラン実行部 257 キャリア・エージェント 261 プラン・オブジェクト 263 プラン実行部 265 順序リスト 267 カレント・ノード 269 コンクリート・アクティビティ・テーブル 270 移動オブジェクト群本体 271 モデレータ・テンプレート 273 モデレータ・エージェント制御部 275 プラン・ステップ実行部 277 アドレス参照部 280 キャリア・エージェント 281 プロキシー・アクティビティ 282 コンクリート・アクティビティ 283 プロキシー・アクティビティ実行部 284 コンクリート・アクティビティ実行部 285 メッセージ機能 286 メッセージ機能 291 アクター・エージェント 293 メッセージ機能 295 メッセージ処理部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 南 和 宏 神奈川県大和市下鶴間1623番地14 日本ア イ・ビー・エム株式会社 大和事業所内
Claims (8)
- 【請求項1】ネットワーク上に分散する異なるプレース
において異なるジョブを実行する方法であって、 (a)第1のプレースで実行するジョブを定義する第1
のコンクリート・アクティビティを保持する第1のキャ
リア・エージェントを生成する段階と、 (b)第2のプレースで実行するジョブを定義する第2
のコンクリート・アクティビティを保持する第2のキャ
リア・エージェントを生成する段階と、 (c)前記第1のキャリア・エージェントを特定する情
報と前記第2のキャリア・エージェントを特定する情報
とを含み、前記第1のプレースにおいて前記第1のキャ
リア・エージェントに対し、前記第1のコンクリート・
アクティビティにジョブの実行を指示し、前記第2のプ
レースにおいて前記第2のキャリア・エージェントに対
し、前記第2のコンクリート・アクティビティにジョブ
の実行を指示する移動オブジェクト群本体を生成する段
階と、 (d)前記第1のキャリア・エージェントを前記第1の
プレースに移動させる段階と、 (e)前記第2のキャリア・エージェントを前記第2の
プレースに移動させる段階と、 (f)前記移動オブジェクト群本体を前記第1のプレー
スに移動させる段階と、 (g)前記第1のプレースにおいて、前記移動オブジェ
クト群本体が前記第1のキャリア・エージェントを特定
し、前記第1のコンクリート・アクティビティにジョブ
の実行を指示することにより、前記第1のコンクリート
・アクティビティのジョブを実行する段階と、 (h)前記移動オブジェクト群本体を前記第2のプレー
スに移動させる段階と、 (i)前記第2のプレースにおいて、前記移動オブジェ
クト群本体が前記第2のキャリア・エージェントを特定
し、前記第2のコンクリート・アクティビティにジョブ
の実行を指示することにより、前記第2のコンクリート
・アクティビティのジョブを実行する段階と、 を含む移動オブジェクト群の実行方法。 - 【請求項2】ネットワーク上に分散する少なくとも1つ
のプレースにおいてジョブを実行する方法であって、 (a)前記プレースで実行するジョブを定義するコンク
リート・アクティビティを保持するキャリア・エージェ
ントを生成する段階と、 (b)前記キャリア・エージェントを特定する情報を含
み、前記プレースにおいて前記キャリア・エージェント
に対し、前記コンクリート・アクティビティにジョブの
実行を指示する移動オブジェクト群本体を生成する段階
と、 (c)前記キャリア・エージェントを前記プレースに移
動させる段階と、 (d)前記移動オブジェクト群本体を前記プレースに移
動させる段階と、 (e)前記プレースにおいて、前記移動オブジェクト群
本体が前記キャリア・エージェントを特定し、前記コン
クリート・アクティビティにジョブの実行を指示するこ
とにより、前記コンクリート・アクティビティのジョブ
を実行する段階と、 を含む移動オブジェクト群の実行方法。 - 【請求項3】ネットワーク上に分散する少なくとも1つ
のプレースにおいてジョブを実行する方法であって、 (a)前記プレースで実行するジョブを定義するコンク
リート・アクティビティを保持するキャリア・エージェ
ントを前記プレースに移動させる段階と、 (b)前記キャリア・エージェントを特定する情報を含
み、前記プレースにおいて前記キャリア・エージェント
に対し、前記コンクリート・アクティビティにジョブの
実行を指示する移動オブジェクト群本体を前記プレース
に移動させる段階と、 (c)前記プレースにおいて、前記移動オブジェクト群
本体が前記キャリア・エージェントを特定し、前記コン
クリート・アクティビティにジョブの実行を指示するこ
とにより、前記コンクリート・アクティビティのジョブ
を実行する段階と、 を含む移動オブジェクト群の実行方法。 - 【請求項4】ネットワーク上に分散する異なるプレース
において異なるジョブを実行する移動オブジェクト群の
少なくとも一部を格納する記憶媒体であって、 (a)第1のプレースで実行するジョブを定義する第1
のコンクリート・アクティビティを保持する第1のキャ
リア・エージェントと、 (b)第2のプレースで実行するジョブを定義する第2
のコンクリート・アクティビティを保持する第2のキャ
リア・エージェントと、 (c)前記第1のキャリア・エージェントを特定する情
報と前記第2のキャリア・エージェントを特定する情報
とを含み、前記第1のプレースにおいて前記第1のキャ
リア・エージェントに対し、前記第1のコンクリート・
アクティビティにジョブの実行を指示し、前記第2のプ
レースにおいて前記第2のキャリア・エージェントに対
し、前記第2のコンクリート・アクティビティにジョブ
の実行を指示する移動オブジェクト群本体と、 を格納する記憶媒体。 - 【請求項5】ネットワーク上に分散するプレースにおい
てジョブを実行する移動オブジェクト群の少なくとも一
部を格納する記憶媒体であって、 (a)プレースで実行するジョブを定義するコンクリー
ト・アクティビティを保持するキャリア・エージェント
と、 (b)前記キャリア・エージェントを特定する情報を含
み、前記プレースにおいて前記キャリア・エージェント
に対し、前記コンクリート・アクティビティにジョブの
実行を指示する移動オブジェクト群本体と、 を格納する記憶媒体。 - 【請求項6】ネットワーク上に分散する異なるプレース
においてメッセージを送出する移動オブジェクト群の少
なくとも一部を格納する記憶媒体であって、 (a)第1のプレースで実行するジョブを定義する第1
のコンクリート・アクティビティを保持する第1のキャ
リア・エージェントを特定する情報を含み、前記第1の
プレースにおいて前記第1のキャリア・エージェントに
対し、前記第1のコンクリート・アクティビティにジョ
ブの実行を指示する第1のプロキシー・アクティビティ
と、 (b)第2のプレースで実行するジョブを定義する第2
のコンクリート・アクティビティを保持する第2のキャ
リア・エージェントを特定する情報を含み、前記第2の
プレースにおいて前記第2のキャリア・エージェントに
対し、前記第2のコンクリート・アクティビティにジョ
ブの実行を指示する第2のプロキシー・アクティビティ
と、 (c)前記第1のプロキシー・アクティビティと前記第
2のプロキシー・アクティビティの実行順序を定義する
順序リストと、 を格納する記憶媒体。 - 【請求項7】ネットワーク上に分散するプレースにおい
て、前記プレースに到着したプロキシー・アクティビテ
ィを含む移動オブジェクト群本体の指示に応答してジョ
ブを実行する移動オブジェクトを格納する記憶媒体であ
って、 (a)前記プレースで実行するジョブを定義するコンク
リート・アクティビティと、 (b)前記プロキシー・アクティビティが前記コンクリ
ート・アクティビティを特定するために前記プロキシー
・アクティビティに提供されるコンクリート・アクティ
ビティ・テーブルと、 (c)前記プロキシー・アクティビティからジョブの実
行命令メッセージを受領するためのメソッドと、 を格納する記憶媒体。 - 【請求項8】ネットワーク上に分散するプレースにおい
て、前記プレースに到着したプロキシー・アクティビテ
ィを含む移動オブジェクト群本体の指示に応答してジョ
ブを実行する移動オブジェクトを格納する記憶媒体であ
って、 (a)前記プレースで実行するジョブを定義するコンク
リート・アクティビティと、 (b)前記プロキシー・アクティビティからジョブの実
行命令メッセージを受領するためのメソッドと、 を格納する記憶媒体。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9324945A JPH11184699A (ja) | 1997-11-26 | 1997-11-26 | 移動オブジェクト群の実行方法、及び移動オブジェクト群を格納した記憶媒体 |
CNB981225217A CN1172239C (zh) | 1997-11-26 | 1998-11-19 | 执行移动对象的方法 |
US09/200,108 US6434595B1 (en) | 1997-11-26 | 1998-11-25 | Method of executing mobile objects and recording medium storing mobile objects |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9324945A JPH11184699A (ja) | 1997-11-26 | 1997-11-26 | 移動オブジェクト群の実行方法、及び移動オブジェクト群を格納した記憶媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH11184699A true JPH11184699A (ja) | 1999-07-09 |
Family
ID=18171389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9324945A Pending JPH11184699A (ja) | 1997-11-26 | 1997-11-26 | 移動オブジェクト群の実行方法、及び移動オブジェクト群を格納した記憶媒体 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6434595B1 (ja) |
JP (1) | JPH11184699A (ja) |
CN (1) | CN1172239C (ja) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6385661B1 (en) * | 1998-10-19 | 2002-05-07 | Recursion Software, Inc. | System and method for dynamic generation of remote proxies |
EP1185928A1 (en) * | 1998-12-16 | 2002-03-13 | Kent Ridge Digital Labs | Process oriented computing environment |
DE60002202T2 (de) * | 1999-06-11 | 2004-02-05 | British Telecommunications P.L.C. | Kommunikation zwischen softwarekomponenten |
US6738806B1 (en) * | 1999-06-14 | 2004-05-18 | Wind River International, Ltd. | Method and system of deploying an application between computers |
US6678743B1 (en) * | 1999-11-30 | 2004-01-13 | Recursion Software, Inc. | Method for moving objects in a distributed computing environment |
US6947965B2 (en) | 1999-11-30 | 2005-09-20 | Recursion Software, Inc. | System and method for communications in a distributed computing environment |
JP3861559B2 (ja) * | 2000-03-31 | 2006-12-20 | 株式会社日立製作所 | 移動エージェント制御方法 |
US20030037181A1 (en) * | 2000-07-07 | 2003-02-20 | Freed Erik J. | Method and apparatus for providing process-container platforms |
US7861252B2 (en) * | 2001-03-21 | 2010-12-28 | Andrzej Uszok | Intelligent software agent system architecture |
US7367028B2 (en) * | 2001-08-14 | 2008-04-29 | National Instruments Corporation | Graphically deploying programs on devices in a system |
US7246325B2 (en) * | 2001-12-20 | 2007-07-17 | Nokia Corporation | System and method for functional elements |
US7313766B2 (en) | 2001-12-20 | 2007-12-25 | Nokia Corporation | Method, system and apparatus for constructing fully personalized and contextualized user interfaces for terminals in mobile use |
US7103671B2 (en) * | 2002-03-14 | 2006-09-05 | Yahoo! Inc. | Proxy client-server communication system |
US7370072B2 (en) * | 2002-07-08 | 2008-05-06 | Electronic Evidence Discovery, Inc. | System and method for collecting electronic evidence data |
US7475107B2 (en) * | 2002-07-08 | 2009-01-06 | Electronic Evidence Discovery, Inc. | System and method for managing distributed computer processes |
US20040078256A1 (en) * | 2002-10-21 | 2004-04-22 | Roch Glitho | Method, system, and mobile agent for event scheduling |
US8108455B2 (en) * | 2002-10-31 | 2012-01-31 | Oracle America, Inc. | Mobile agents in peer-to-peer networks |
CN100438430C (zh) * | 2005-02-04 | 2008-11-26 | 南京邮电学院 | 一种安全的片上智能体方法 |
US7454673B2 (en) | 2005-07-15 | 2008-11-18 | Kyocera Wireless Corp. | Apparatus, system, and method for accessing persistent files in non-execute-in-place flash memory |
US20070250507A1 (en) * | 2006-04-21 | 2007-10-25 | Topia Technology | Electronic file sharing |
WO2007124505A2 (en) * | 2006-04-21 | 2007-11-01 | Topia Technology | Electronic file sharing |
US20140108564A1 (en) * | 2012-10-15 | 2014-04-17 | Michael Tolson | Architecture for a system of portable information agents |
US9189206B2 (en) * | 2013-05-21 | 2015-11-17 | Red Hat, Inc. | System and method for managing immutable objects |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US6233601B1 (en) * | 1996-11-14 | 2001-05-15 | Mitsubishi Electric Research Laboratories, Inc. | Itinerary based agent mobility including mobility of executable code |
-
1997
- 1997-11-26 JP JP9324945A patent/JPH11184699A/ja active Pending
-
1998
- 1998-11-19 CN CNB981225217A patent/CN1172239C/zh not_active Expired - Fee Related
- 1998-11-25 US US09/200,108 patent/US6434595B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6434595B1 (en) | 2002-08-13 |
CN1218223A (zh) | 1999-06-02 |
CN1172239C (zh) | 2004-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH11184699A (ja) | 移動オブジェクト群の実行方法、及び移動オブジェクト群を格納した記憶媒体 | |
US6463480B2 (en) | Method and system of processing a plurality of data processing requests, and method and system of executing a program | |
US5768506A (en) | Method and apparatus for distributed workflow building blocks of process definition, initialization and execution | |
US5745687A (en) | System for distributed workflow in which a routing node selects next node to be performed within a workflow procedure | |
US5826020A (en) | Workflow real time intervention | |
US6279028B1 (en) | Operating system having a mechanism for handling a group of related processes residing on separate machines | |
JP4523965B2 (ja) | リソース割当方法、リソース割当プログラム、および、運用管理装置 | |
CN112668386A (zh) | 使用机器人过程自动化用于文档处理的长时间运行工作流 | |
US20020032692A1 (en) | Workflow management method and workflow management system of controlling workflow process | |
JPH05197573A (ja) | タスク指向パラダイムによるタスク管理システム | |
KR100437746B1 (ko) | 원격의 호스트 시스템 상에서 실행되는 작업을 로컬의 워크스테이션에서 모니터링하는 방법 및 분산 컴퓨터 시스템과 컴퓨터 판독가능한 기록 매체 | |
US6407751B1 (en) | Method and apparatus of generating mobile objects and storage medium storing an object generating mobile objects | |
KR20060112589A (ko) | 워크플로우 서비스 아키텍처 | |
US20180189093A1 (en) | Systems and methods for executing software robot computer programs on virtual machines | |
US20230143922A1 (en) | Systems and Methods for Dynamically Binding Robotic Process Automation (RPA) Robots to Resources | |
JP4529812B2 (ja) | 分散資源配分システム、分散資源配分方法およびプログラム | |
JP2001282970A (ja) | ワークフロー管理システム | |
JP7161732B2 (ja) | 業務処理装置及び業務処理方法 | |
JP3101327B2 (ja) | 移動オブジェクト、移動オブジェクトの制御方法、移動オブジェクト群の生成方法・生成装置、移動オブジェクト群を生成するプログラム格納する記憶媒体 | |
JPH09114724A (ja) | リモートファイル操作方法 | |
JP3931941B2 (ja) | ワークプロセス管理装置及びワークプロセス管理方法 | |
US6178464B1 (en) | System and method for canceling a computer request | |
JP2963077B2 (ja) | 移動オブジェクト群の生成方法、及び生成装置、移動オブジェクト群を生成するオブジェクトを格納した記憶媒体 | |
JP2023110808A (ja) | スマートタグ基盤の業務処理装置及び業務処理方法 | |
JP3840814B2 (ja) | ワークプロセス管理装置、方法、及び記憶媒体 |