JP2963077B2 - 移動オブジェクト群の生成方法、及び生成装置、移動オブジェクト群を生成するオブジェクトを格納した記憶媒体 - Google Patents

移動オブジェクト群の生成方法、及び生成装置、移動オブジェクト群を生成するオブジェクトを格納した記憶媒体

Info

Publication number
JP2963077B2
JP2963077B2 JP10015817A JP1581798A JP2963077B2 JP 2963077 B2 JP2963077 B2 JP 2963077B2 JP 10015817 A JP10015817 A JP 10015817A JP 1581798 A JP1581798 A JP 1581798A JP 2963077 B2 JP2963077 B2 JP 2963077B2
Authority
JP
Japan
Prior art keywords
activity
gui
moderator
place
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.)
Expired - Fee Related
Application number
JP10015817A
Other languages
English (en)
Other versions
JPH11194941A (ja
Inventor
和 宏 南
木 俊 宏 鈴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP10015817A priority Critical patent/JP2963077B2/ja
Priority to CN 98123855 priority patent/CN1111298C/zh
Priority to US09/238,216 priority patent/US6407751B1/en
Publication of JPH11194941A publication Critical patent/JPH11194941A/ja
Application granted granted Critical
Publication of JP2963077B2 publication Critical patent/JP2963077B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、分散コンピュータ環
境あって、ネットワーク上に存在する遠隔サーバに移動
し、該遠隔サーバにおいてインストラクションを形成す
る移動エージェントを生成する技術に関し、より詳しく
は、移動エージェントをGUIビルダー上で、実行アド
レスや実行順序等を視覚的に分かりやすい状態で移動エ
ージェントを生成する技術に関する。
【0002】
【従来の技術】従来より、分散コンピュータ環境におい
て、ネットワーク上に存在するサーバに移動し、インス
トラクションを形成する移動エージェント(モーバイル
エージェント)技術が存在する(特開平7−18217
4号公報(USP5,603,031)、「日経コミュニケーション別
冊、最新インターネットテクノロジ」日経BP社pp1
04−117、西田 文比古、藤原 進 著等)。
【0003】かかる移動エージェントは、「移動エージ
ェント」と「プレース」という2つの基本要素を基に構
成される。この移動エージェントは、自分自身の内部状
態を保持したままネットワーク上に存在するプレース間
を移動することができる。そして、このプレースにおい
て他のエージェント(移動エージェントまたは非移動エ
ージェント)とコンタクトし、必要なサービスを受ける
ことができる。プレースは、ネットワーク上に存在する
サーバによって提供されているエージェントの移動場所
であり、エージェント間のコンタクトをサポートし、ま
た、ハードウエア及びプラットフォームの違いを吸収し
ている。
【0004】このような移動エージェント技術は、社内
会議のセッティングを社員のスケジュールや会議室の予
約状況に応じてダイナミックに調整したり、ネットワー
ク上に分散する所望の情報を入手する等、これまで人手
によってなされていた作業をこの移動エージェントが代
行することを可能にしている。
【0005】しかし、かかる移動エージェントを生成す
るに際しては、実行するジョブの実行アドレスをプロパ
ティに定義することが不可欠になるが、かかる作業はオ
ブジェクト指向プログラミング等の知識を必要とするた
め、Workflow Automation(「Wo
rkflow Automation」は、Ultim
us LLC社の商標)等によって提供されている開発
支援ツール(http://www.ultimus
1.com等で情報入手可能)のようにユーザにとって
簡単に移動エージェントを生成できるGUIビルダーが
望まれている。
【0006】また、本願の出願時においては公知ではな
いが、本願出願人が平成9年4月10日に出願した特願
平9−92091号公報のように、移動エージェントの
複雑な行動を基本的行動パターンに分類し、その組合せ
によって、移動エージェントの所望の行動パターンを定
義できるテンプレート(モデレータ・テンプレート)を
提供し、移動エージェントが渡り歩く各プレースにおい
てリクエストを出すアクティビティを、プレデセッサ
(前任者:前のプレースで仕事をするアクティビティ)
とサクセッサ(承継者:次のプレースで仕事をするアク
ティビティ)として管理する技術が存在する。
【0007】しかし、この技術を使用すると、種々のプ
レースにおいて、移動エージェントの分割/融合が可能
になるため移動エージェント生成時のプランの作成が複
雑になるため、ユーザにとって簡単に移動エージェント
を生成できるGUIビルダーが特に望まれていた。
【0008】
【発明が解決しようとする課題】本発明の一つの目的
は、高度なプログラミングの知識を必要とせず、移動エ
ージェントの開発を可能にすることにある。
【0009】本発明の他の一つの目的は、移動エージェ
ントの開発労力及び開発時間を可能な限り軽減すること
にある。
【0010】本発明の他の一つの目的は、開発者が直感
的にその機能を把握でき、親しみやすい移動エージェン
トの開発環境を提供することにある。
【0011】
【課題を解決するための手段】本発明は、視覚的に分か
りやすいGUIビルダー上で、移動エージェントのジョ
ブの実行アドレスを指定することやジョブの実行順序を
指定することを可能にする。GUIビルダー上には、移
動エージェントの複雑な行動を基本的行動パターンに分
類し、その組合せによって、移動エージェントの所望の
行動パターンを定義できるテンプレート(モデレータ・
テンプレート)を象徴する各種GUIモデレータ・テン
プレートと、移動エージェントが渡り歩く各プレースに
おいてリクエストを出すアクティビティを象徴する各種
GUIアクティビティが提供されている。
【0012】オペレータは、このGUIモデレータ・テ
ンプレートと、GUIアクティビティをGUIビルダー
上にドロップし、つなぎ合わせることにより、ジョブの
実行順序を定義することができる。また、GUIアクテ
ィビティに実行すべきプレースのアドレス情報をセット
することができる。オペレータの定義したGUIモデレ
ータ・テンプレートやGUIアクティビティから移動エ
ージェント群(実行コード)が生成される。
【0013】本発明の一態様においては、ポインティン
グデバイス及び表示画面を備える移動エージェント生成
装置において、移動モデレータ・エージェントの制御の
下、異なるプレースにおいて異なるアクティビティを実
行する移動オブジェクト群の少なくとも一部を生成する
方法であって、 (a)第1のアクティビティを象徴する第1のGUIア
クティビティを生成し、前記表示画面に表示する段階
と、 (b)第2のアクティビティを象徴する第2のGUIア
クティビティを生成し、前記表示画面に表示する段階
と、 (c)第3のアクティビティを象徴する第3のGUIア
クティビティを生成し、前記表示画面に表示する段階
と、 (d)前記第1のアクティビティと、前記第2のアクテ
ィビティと、前記第3のアクティビティの接続関係を定
義するスプリット・モデレータテンプレートを象徴する
GUIスプリット・モデレータテンプレートを生成し、
前記表示画面に表示する段階と、 (e)前記GUIスプリット・モデレータテンプレート
と前記第1のGUIアクティビティとを関連付けるオペ
レータ入力に応答して、前記GUIスプリット・モデレ
ータテンプレートと前記第1のGUIアクティビティと
の順序を特定する第1の順序情報を保持する段階と、 (f)前記GUIスプリット・モデレータテンプレート
と前記第2のGUIアクティビティとを関連付けるオペ
レータ入力に応答して、前記GUIスプリット・モデレ
ータテンプレートと前記第2のGUIアクティビティと
の順序を特定する第2の順序情報を保持する段階と、 (g)前記GUIスプリット・モデレータテンプレート
と前記第3のGUIアクティビティとを関連付けるオペ
レータ入力に応答して、前記GUIスプリット・モデレ
ータテンプレートと前記第3のGUIアクティビティと
の順序を特定する第3の順序情報を保持する段階と、 (h)前記第1のアクティビティを実行すべき第1のプ
レースのアドレス情報を入力するためのエントリを前記
表示画面に表示する段階と、 (i)該エントリに入力された第1のプレースのアドレ
ス情報を前記第1のGUIアクティビティに関係付けて
保持する段階と、 (j)前記第2のアクティビティを実行すべき第2のプ
レースのアドレス情報を入力するためのエントリを前記
表示画面に表示する段階と、 (k)該エントリに入力された第2のプレースのアドレ
ス情報を前記第2のGUIアクティビティに関係付けて
保持する段階と、 (l)前記第1の順序情報、前記第2の順序情報、前記
第1のプレースのアドレス情報、及び前記第2のプレー
スのアドレス情報に基づいて移動オブジェクト群の少な
くとも一部を生成する段階と、を含む移動オブジェクト
群の生成方法が提供される。
【0014】本発明の他の一態様においては、ポインテ
ィングデバイス及び表示画面を備え、移動モデレータ・
エージェントの制御の下、異なるプレースにおいて異な
るアクティビティを実行する移動オブジェクト群の少な
くとも一部を生成する移動エージェント生成装置であっ
て、 (a)第1のアクティビティを象徴し、前記表示画面に
表示するためのdisplayメソッドを備える第1の
GUIアクティビティと、 (b)第2のアクティビティを象徴し、前記表示画面に
表示するためのdisplayメソッドを備える第2の
GUIアクティビティと、 (c)第3のアクティビティを象徴し、前記表示画面に
表示するためのdisplayメソッドを備える第3の
GUIアクティビティと、 (d)第1乃至第3のアクティビティの接続関係を定義
するモデレータテンプレートを象徴し、前記表示画面に
表示するためのdisplayメソッドを備えるGUI
モデレータテンプレートと、 (e)前記GUIモデレータテンプレートと前記第1乃
至第3GUIアクティビティとを関連付けるオペレータ
入力を取得する入力イベント取得部と、 (f)前記オペレータ入力に応答して、前記GUIモデ
レータテンプレートと前記第1の乃至第3のGUIアク
ティビティとの順序を特定するプラン・オブジェクト操
作部と、 (g)前記第1のアクティビティを実行すべきプレース
のアドレス情報を入力するためのエントリを前記表示画
面に表示するためのdisplayメソッドと、該エン
トリに入力されたプレースのアドレス情報を保持するた
めのsetAddressメソッドを備えるGUIプレ
ース・オブジェクトと、 (h)前記順序情報および前記プレースのアドレス情報
に基づいて移動オブジェクト群の少なくとも一部を生成
する実行コード生成部と、を含む移動オブジェクト群の
生成装置が提供される。
【0015】本発明の他の一態様においては、ポインテ
ィングデバイス及び表示画面を備える移動エージェント
生成装置において、移動モデレータ・エージェントの制
御の下、異なるプレースにおいて異なるアクティビティ
を実行する移動オブジェクト群の少なくとも一部を生成
するためのGUIオブジェクト群を格納する記憶媒体で
あって、 (a1)前記表示画面にアクティビティとして認識され
るように表示するためのdisplayメソッドと、 (a2)他のGUIオブジェクトとの結合関係を管理す
るプレデセッサ・リストとを備えるGUIアクティビテ
ィと、 (b1)前記アクティビティの実行されるプレースを特
定するアドレス情報を入力するためのエントリを前記表
示画面に表示するdisplayメソッドと、 (b2)入力されたアドレス情報を保持するためのse
tAddressメソッドとを備えるGUIプレース・
オブジェクトと、 (c1)前記表示画面に第1のアクティビティから第2
の第3のアクティビティへ移行する結合関係を定義する
スプリット・モデレータ・テンプレートとして認識され
るように表示するためのdisplayメソッドと、 (c2)前記第1のアクティビティとの結合関係を管理
するプレデセッサ・リストと、前記第2及び第3のアク
ティビティとの結合関係を管理するサクセッサ・リスト
とを備えるGUIモデレータ・テンプレートと、を格納
する記憶媒体が提供される。
【0016】本発明の他の一態様においては、ポインテ
ィングデバイス及び表示画面を備える移動エージェント
生成装置において、移動モデレータ・エージェントの制
御の下、異なるプレースにおいて異なるアクティビティ
を実行する移動オブジェクト群の少なくとも一部を生成
するためのGUIオブジェクト群を格納する記憶媒体で
あって、 (a1)前記表示画面にアクティビティとして認識され
るように表示するためのdisplayメソッドと、 (a2)他のGUIオブジェクトとの結合関係を管理す
るプレデセッサ・リストとを備えるGUIアクティビテ
ィと、 (b1)前記アクティビティの実行されるプレースを特
定するアドレス情報を入力するためのエントリを前記表
示画面に表示するdisplayメソッドと、 (b2)入力されたアドレス情報を保持するためのse
tAddressメソッドとを備えるGUIプレース・
オブジェクトと、 (c1)前記表示画面に第1および第2のアクティビテ
ィから第3のアクティビティへ移行する結合関係を定義
するジョイン・モデレータ・テンプレートとして認識さ
れるように表示するためのdisplayメソッドと、 (c2)前記第1及び第2のアクティビティとの結合関
係を管理するプレデセッサ・リストと、前記第3のアク
ティビティとの結合関係を管理するサクセッサ・リスト
とを備えるGUIモデレータ・テンプレートと、を格納
する記憶媒体が提供される。
【0017】
【実施例】A.概要 以下、図面を参照して本発明の実施例を説明する。図1
を参照すると、本発明によって生成された移動オブジェ
クトを実行する分散ネットワーク環境150が示されて
いる。各サーバ112〜117には、移動エージェント
125、135、141等にサービスを与えることが可
能なプレース102〜107が用意されている。この分
散ネットワーク環境におけるプレース群はクラウドと呼
ばれている。
【0018】クライアント・システム101において
は、移動エージェントを生成するための移動エージェン
ト生成部113が存在する。移動エージェント生成部1
13は、モデレータ・エージェント111に、生成した
プランを渡し、モデレータ・エージェントはそのプラン
を実行することにより、指定されたプレースを移動して
いくことができる。
【0019】移動エージェント125等は各プレース1
02〜107において存在する他のエージェントとコン
タクトし(移動エージェントとコンタクトし、サービス
を提供するエージェントを特にアクター・エージェント
と呼ぶ)、リクエストを送出し、そのリクエストの結果
を受けることができる。プレースは、エージェント間の
コンタクトをサポートしている。また、移動エージェン
ト125等は、アクター・エージェントから受領したリ
クエストの結果をResult139、143、15
3、163として保持し、移動を継続することができ、
移動途中で、このResultを合成、分割等さまざま
な加工を施すことも可能である。
【0020】本発明において、移動エージェントの移
動、分裂、消滅は、モデレータ・テンプレート181〜
187によって制御されており、ユーザは、その処理の
態様により、さまざまなテンプレートを組合せ、図2に
示すような分割や融合を含む複雑な作業を簡単に定義す
ることができる。
【0021】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へ接続されている。
【0022】フロッピーディスク装置(またはMO、C
D−ROM等の媒体駆動装置26、28、29)20に
は、フロッピーディスク(またはMO、CD−ROM等
の媒体)が挿入され、このフロッピーディスク等やハー
ドディスク装置13、30、ROM14等の記憶媒体に
は、オペレーティングシステムと協働してCPU等に命
令を与え、本発明を実施するためのコンピュータ・プロ
グラムのコードを記録することができ、メモリ4にロー
ドされることによって実行される。このコンピュータ・
プログラムのコードは圧縮し、または、複数に分割し
て、複数の媒体にまたがって記録することもできる。
【0023】移動エージェント生成システム100は更
に、ユーザ・インターフェース・ハードウェアを備えた
システムとすることができ、ユーザ・インターフェース
・ハードウェアとしては、例えば、画面位置情報を入力
をするためのポインティング・デバイス(マウス、ジョ
イスティック、トラックボール等)7、キー入力をサポ
ートするキーボード6や、イメージデータをユーザに提
示するためのディスプレイ11、12がある。また、ス
ピーカ23は、オーディオ・コントローラ21から音声
信号を、アンプ22を介して受領し、音声として出力す
る。
【0024】本発明の移動エージェント生成システム1
00の入力となるGUIプラン・ノード・ライブラリ
(後に詳述する)は、ハードディスク30に格納されて
おり、SCSIインターフェース27を介して本データ
ベース検索システム100に入力される。シリアルポー
ト15およびモデムまたは、トークンリング等の通信ア
ダプタ18等を介して他のコンピュータ等と通信を行
い、他のシステムのデータベースにアクセスすること
や、フロッピーディスク24等の記憶媒体に存在するデ
ータベースにアクセスすることも可能である。
【0025】このように、本発明は、通常のパーソナル
コンピュータ(PC)やワークステーション、テレビや
FAX等の各種家電製品に組み込まれたコンピュータ又
はこれらの組合せによって実施可能であることを容易に
理解できるであろう。ただし、これらの構成要素は例示
であり、その全ての構成成要素が本発明の必須の構成要
素となるわけではない。特に、本発明は、データベース
の検索を行うものであるため、シリアルポート15、通
信アダプタカード18、オーディオ・コントローラ2
1、アンプ22、スピーカ23等の構成要素は本発明の
一態様においては必須のものではない。
【0026】オペレーティング・システムとしては、W
indows(マイクロソフト社の商標)、OS/2
(IBM社の商標)、AIX(IBM社の商標)上のX
−WINDOWシステム(MIT社の商標)などの、標
準でGUIマルチウインドウ環境をサポートするものが
望ましいが、特定のオペレーティング・システム環境に
限定されるものではない。
【0027】また、図3は、スタンド・アロン環境のシ
ステムを示しているが、クライアント/サーバ・システ
ムとして本発明を実現し、クライアント・マシンは、サ
ーバ・マシンに対して、イーサネット、トークン・リン
グなどでLAN接続し、サーバ・マシン側には、後述す
る内部データ生成部、内部データ保持部、内部データ検
索部、外部データソース等を配置し、その他の機能をク
ライアント・マシン側に配置してもよい。このように、
サーバ・マシン側とクライアント・マシン側にどのよう
な機能を配置するかは設計に際し自由に変更できる事項
であり、複数のマシンを組合せ、それらにどのような機
能を配分し、実施するか等の種々の変更は本発明の思想
に包含される概念である。
【0028】C.システム構成 次に、図4、5のブロック図を参照して、本発明の好適
な実施例における移動エージェント生成システムのシス
テム構成について説明する。
【0029】図4は、移動エージェント生成システム2
10における処理要素の一実施例を示す機能ブロック図
である。実行コード生成部241は、プラン生成部21
3と、プランID生成部215を含んでいる。プランI
D生成部215は、プランにネットワーク上ユニークな
プランIDを割りふる。本発明の好適な実施例において
プランID生成部215は、インターネットのURL、
ポート番号、エージェントID(移動エージェント生成
部に割りふられている)、シリアルNo.(移動エージ
ェント生成部がプランID作成毎割りふる)を合成して
プランIDを作成している。
【0030】プラン生成部213は、GUIプラン定義
データ209に基づいてモデレータ・エージェントや、
プランを生成する。作成されたプランには、実行するモ
デレータ・テンプレートやアクティビティの情報等を管
理するプラン構成部223と、モデレータ・テンプレー
ト、アクティビティの順序を定義する順序リスト225
を含んでいる。プラン構成部223は、プランノード・
オブジェクト(モデレータ・テンプレート、アクティビ
ティの総称)の関係付けの情報を有しており、ネットワ
ークトポロジー231を形成している。
【0031】GUIプラン定義データ生成部207は、
オペレータの指定に基づいて、GUIプランノード・ラ
イブラリ201の情報を使用してGUIプラン定義デー
タ209を生成する。
【0032】図5は、移動エージェント生成システム2
10における処理要素の一実施例をGUIプテン定義デ
ータ生成部207を中心に見た機能ブロック図である。
GUIプテン定義データ生成部207へ入力情報を提供
する入力イベント取得部231は、ユーザーからのキー
入力、マウスのクリック等のイベントを取得し、GUI
プテン定義データ生成部207のプラン・オブジェクト
操作部233に解釈可能なメッセージに変換して渡す。
【0033】プラン・オブジェクト操作部231は、イ
ベントの種類により、GUIアクティビティ、GUIテ
ンプレート等のオブジェクトの生成や各種オブジェクト
のプロパティの設定等の作業を行う。
【0034】プラン・オブジェクト属性変更部237
は、指定されたオブジェクトのプロパティを変更するた
めのダイアログ・ウインドウを提供する。修正された情
報はプラン・オブジェクト操作部231を介してGUI
プラン定義データ239に反映される。
【0035】GUIプラン定義データ保持部243は、
プランを構成するアクティビティ、テンプレートの論理
情報、図形情報を保持する。
【0036】プラン表示部245は、GUIプラン定義
データ243の図形情報に基づき、画面上にプランの構
造を視覚的に表示する。
【0037】実行コード生成部241は、GUIプラン
定義データの論理情報に基づき、定義されたプランを生
成するための実行コード249(プラン)を生成する。
【0038】図6は、移動エージェント生成システム2
10によって生成された移動エージェント群270の実
行時における処理要素の一実施例を示す機能ブロック図
である。移動オブジェクト群270はモデレータ・エー
ジェント251、プラン・オブジェクト261、モデレ
ータ・テンプレート271、アクティビティ281を含
んでいる。モデレータ・エージェント251は、移動エ
ージェント・ライフサイクル制御部253とプラン実行
部255を含んでいる。移動エージェント・ライフサイ
クル制御部253は、移動オブジェクト群270の移
動、複製、消去等を実行する。プラン実行部255は、
新たなプレースに到着したことを認識し、プラン・オブ
ジェクト261にプランの実行を命令する。
【0039】この一方、プラン・オブジェクトは、プラ
ン実行制御部263、カレント・ノード267、順序リ
スト265を含んでいる。プラン実行制御部263は、
モデレータ・エージェントのプラン実行部からプランの
実行のインストラクションを受領すると、カレント・ノ
ード267、順序リスト265を参照し、現在実行すべ
きプランノード・オブジェクト271、281を決定
し、プランノード・オブジェクト271、281に実行
を要求する。
【0040】カレント・ノード267は、後述するプラ
ンノードイタレータに対応するものであり、現在どのプ
ランノード・オブジェクトを実行しているかを管理して
いる。順序リスト265は、実行すべきプランノード・
オブジェクト271、281を特定するリストである。
分祈とうが発生しない場合、プランノード・オブジェク
ト271、281は、この順序リスト265の順番にし
たがってプランノードに実行を要求していく。
【0041】モデレータ・テンプレート271は、モデ
レータ・エージェント制御部273、プランステップ実
行部275、アドレス参照部277を含んでいる。モデ
レータ・エージェント制御部273は、モデレータ・エ
ージェント251の移動エージェント・ライフサイクル
制御部253に対し、移動オブジェクト群270の移
動、複製、消去を要求する。プラン・ステップ実行部2
75は、モデレータ・テンプレートの種類によって異な
る定義となっており、移動前、移動後の夫々のプレース
において実行すべき命令等を管理している。アドレス参
照部277は、アクティビティからアドレスを取得し、
モデレータ・エージェント制御部27に移動すべきアド
レスを教える等の役割を担っている。
【0042】アクティビティ281は、アクティビティ
実行部283とメッセージ機能285を含んでいる。ア
クティビティ実行部283は、移動エージェントが渡り
歩く各プレースで実行するインストラクションや各プレ
ースで受け取ったResultを格納する機能を有して
いる。メッセージ機能285は、アクター・エージェン
ト291とのメッセージをやり取りする機能を有してい
る。
【0043】アクター・エージェント291は、プレー
ス上に存在する他のエージェントであり、アクティビテ
ィのリクエストに対し、サービスを提供する機能を有し
ている。このアクター・エージェント291も、アクテ
ィビティとメッセージのやり取りするメッセージ機能2
93を有し、また、リクエストの内容を判断し、サービ
スを提供するメッセージ処理部295を有している。
【0044】以上図4乃至6に示す各機能ブロックを説
明したが、これらの機能ブロックは、論理的機能ブロッ
クであり、各々1つのまとまりを持ったハードウエアや
ソフトウエアによって実現されることを意味するのでは
なく、複合し、または共通したハードウエアやソフトウ
エアによって実現可能である。また、この図4乃至6に
示す全ての機能ブロックが本発明に必須の構成要素とい
う訳ではない。例えば、順序付リスト265は、カレン
ト・ノード管理部267が直接カレント・ノードを管理
し、また、ANDJoin等の処理においても、他のR
esultを取得するモデレータ・エージェントを決め
ておけばよいので、特に必要な構成要素ではない。さら
に、実行コード生成部を他のマシン上に配置し、そのマ
シンにGUIプラン定義データを送信することによって
も実行コードを生成することができる。
【0045】D.オブジェクト構成 D−1.移動エージェント群のオブジェクト構成 図7、8は、本発明の移動オブジェクト群270のオブ
ジェクト図である。モデレータ・エージェント303、
プラン305、プランID、プラン・イタレータ307
の各クラスは、メソッドを有しており、プランノード3
11、アクティビティ313、モデレータ・テンプレー
ト315、及びChain等のテンプレート321〜3
26の各クラスは、データ及びメソッドを有している。
【0046】この図において、三角印302、314、
316は、上位のクラスのデータやメソッドを承継して
いることを示し、黒丸312はその下位のクラスが複数
存在しえることを示している。プランノードは抽象的な
クラスで、モデレータ・テンプレートとアクティビティ
クラスの双方を共通のインターフェースで定義する。こ
れによってプランは、プランの生成や実行中に双方のク
ラスを同等に扱うことができる。
【0047】移動エージェント301は分散コンピュー
タ環境上の各プレースで現在提供されている機能(プレ
ース・クラス)であり、このクラスに移動エージェント
の作成を指示するAPIを投げることによって、ユーザ
は簡単に移動エージェント(モデレータ・エージェン
ト)を作成することができる。現在、従来技術の説明で
上述したJavaベースのモーバイル・エージェントや
テレスクリプトの移動エージェントの双方でサポートさ
れており機能である。
【0048】プランノードクラスはサクセッサとプレデ
セッサのリストを有しており、複数のプランノードの関
係を管理している。プランノードのクラスは"setPredec
essor""setSuccessor"のメソッドを提供し、ノード間の
関係を定義している。プランノードの具体的なクラス
は、これらのメソッド間の関係を見分けることができ
る。
【0049】モデレータ・テンプレートは、異なるプレ
ースで実行されるアクティビティと連結するため、オリ
ジン(移動前のプレース)かディスティネーション(移
動後のプレース)かを区別するステート情報を有してい
る。本発明の好適な実施例においては、モデレータ・テ
ンプレートはアクティビティ・オブジェクトとだけ結合
することができる。モデレータ・テンプレートにはCh
ainを始め、複数のテンプレートが提供されており、
複数の分裂したモデレータ・エージェントが分担して仕
事をするための基本的メカニズム等の提供を可能にして
いる。
【0050】D−2.GUIプラン定義データのオブジ
ェクト構成 図9は、本発明の好適な実施例におけるGUIプラン定
義データ239のオブジェクト図である。GUIアクテ
ィビティ403、GUIモデレータ・テンプレート41
3、GUIプレース405及びリンク407等の各クラ
スは、データ及びメソッドを有している。
【0051】この図において、三角印302、314、
316は、上位のクラスのデータやメソッドを承継して
いることを示し、黒丸312はその下位のクラスが複数
存在しえることを示している。
【0052】GUIアクティビティ403は、GUIビ
ルダ上でアクティビティとして表示されるためのオブジ
ェクトであり、ディスプレイ上に表示されるときの座標
値(表示開始位置:x1、y1と表示終了位置:x2、
y2)とリンクするオブジェクトを特定するサクセッサ
・リスト及びプレデセッサ・リストのデータを有してい
る。
【0053】GUIモデレータ・テンプレート409も
これと同様に、GUIビルダ上でモデレータ・テンプレ
ートとして表示されるためのオブジェクトであり、ディ
スプレイ上に表示されるときの座標値(表示開始位置:
x1、y1と表示終了位置:x2、y2)とリンクする
オブジェクトを特定するサクセッサ・リスト及びプレデ
セッサ・リストのデータを有している。また、モデレー
タ・テンプレートの種類を特定するためのテンプレート
タイプのデータも有している。
【0054】リンク・オブジェクト407は、GUIア
クティビティ403とGUIモデレータ・テンプレート
409間のリンク関係を表示するためのオブジェクトで
あり、ディスプレイ上に表示されるときの座標値(表示
開始位置:x1、y1と表示終了位置:x2、y2)と
リンクするオブジェクトを特定するサクセッサ・リスト
及びプレデセッサ・リストのデータを有している。
【0055】GUIプレース405は、各アクティビテ
ィが実行されるプレースを表示するためのオブジェクト
であり、包括して表示すべきGUIアクティビティの座
標値情報(各GUIアクティビティの表示開始位置:x
1、y1と表示終了位置:x2、y2)とプレースのア
ドレス情報のデータを有している。
【0056】D−3.移動エージェント群のメッセージ
・フロー 図10は、本発明の好適な実施例における各クラスの主
要なメッセージフローを示す図である。モデレータ・エ
ージェント351はプラン353に対しnextSte
p(次のステップを実行することを指示するインストラ
クション)を送出し、プランはこれに応答して、プラン
ノード・オブジェクト(モデレータ・テンプレート35
7またはアクティビティ355)に対しnextSte
pを送出する。アクティビティ355は、ユーザの指定
したリクエストを実行するため、アクター・エージェン
ト359に対しsendMessage(メッセージの
送付要求)を送出する。モデレータ・テンプレート35
7は、その種類や状況に応じて、アクティビティ355
にgetARL(アドレスの送出命令)を送出や、is
Marked(マーク付けをする)をお送出する。ま
た、モデレータ・エージェント351に対しclone
(複製の作成要求)、dispatch(移動要求)、
dispose(消滅要求)を送出する。
【0057】E.プラン定義データの作成 本発明においては、この移動エージェントの生成をユー
ザが簡単に行うことを可能にする開発支援ツールを提供
している。図11乃至図1 は本発明の好適な実施例に
おける開発支援ツールのユーザインターフェースを示す
図である。ユーザはこの開発支援ツールを使用すること
によって、上記プラン定義部のコーディングを簡単に生
成することができる。
【0058】まず、ユーザがプルダウン・メニューから
作成371を選択し、ポインティング・デバイスでクリ
ックすると、プラン・オブジェクト操作部233は、プ
ラン名を入力するためのダイアログボックス375を表
示する。これにより、ユーザはプランIDとは異なるユ
ーザにとって親しみやすい名前でプランを管理すること
ができる。次に、ユーザがプラン名をプラン名の入力エ
ントリ376入力し、OKボタン377を押すと、プラ
ン定義用のウインドウ380が開かれる。プラン名を入
力するためのダイアログボックス375は、プルダウン
・メニューの保存372や終了374を選択時に表示し
てもよい。
【0059】ユーザがポインティング・デバイスでアク
ティビティ・ボックス420のアクティビティ・アイコ
ン(ACT1)421をプラン定義用ウインドウ380
にドラッグしドロップする。すると、図9に示すGUI
アクティビティ403及びGUIプレース405の各オ
ブジェクトがGUIプランノード・ライブラリ201の
ひな型のデータを基に生成される。生成されたGUIア
クティビティ403のDisplayメソッドが呼ば
れ、図12に示すようにプラン定義用ウインドウ380
にGUIアクティビティとして表示される。このとき、
GUIアクティビティ403のプレデセッサ・リストと
サクセッサ・リストには「リンクするオブジェクトな
し」を示す「0」がセットされる。
【0060】このGUIアクティビティ431は、図9
に示すようにSelectメソッドやMoveメソッド
を有しており、マウスポインタによるセレクトに対応し
た処理の実行や、マウスドラッグに対して表示位置を変
更することができる。
【0061】次に、ユーザがポインティング・デバイス
でテンプレート・ボックス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として表示される。
【0062】このとき、リンク・オブジェクト432の
サクセッサ・リストにはGUIモデレータ・テンプレー
ト433の情報がセットされ、リンク・オブジェクト4
34のプレデセッサ・リストにはGUIモデレータ・テ
ンプレート433の情報がセットされる。この一方、G
UIモデレータ・テンプレート433のプレデセッサ・
リスト及びサクセッサ・リストには、それぞれリンク・
オブジェクト432、434を特定する情報がセットさ
れる。各リンク・オブジェクトの表示位置は、GUIモ
デレータ・テンプレート433の位置情報から算出され
た値がセットされる。
【0063】このGUIモデレータ・テンプレート43
3も、図9に示すようにSelectメソッドやMov
eメソッドを有しており、マウスポインタによるセレク
トに対応した処理の実行や、マウスドラッグに対して表
示位置を変更することができる。GUIモデレータ・テ
ンプレート433の移動がなされると、GUIモデレー
タ・テンプレート433のプレデセッサ・リスト及びサ
クセッサ・リストで指定されたオブジェクトや、そのオ
ブジェクトにリンクする一連のオブジェクトの表示位置
を移動量に応じて更新し、Displayメソッドによ
る最描画をおこなう。
【0064】その後、図14に示すように、ユーザがリ
ンク・オブジェクト432をGUIアクティビティ43
1上にドラッグ&ドロップすると、プラン・オブジェク
ト操作部233は、GUIアクティビティの表示位置と
ドラッグ中のマウスポインタの位置を比較することによ
り、リンクするGUIアクティビティを特定し、GUI
アクティビティ431のサクセッサ・リストにリンク・
オブジェクト432を特定する情報をセットし、リンク
・オブジェクト432のプレデセッサ・リストにGUI
アクティビティ431を特定する情報をセットする。ま
た、リンク・オブジェクト432の表示位置をGUIア
クティビティ431の表示位置に応じた値に更新し、D
isplayメソッドによる最描画をおこなう。
【0065】このようにして、ユーザは、移動エージェ
ントに行わせる仕事の性質や手順によって、図15に示
すように、所望の実行順序のアクティビティを配置する
ことができる。その後、ユーザが同一のプレースにおい
て実行を希望するアクティビティを、キーボードのコン
トロールキーをおしながら選択し、プレースのアイコン
399をクリックすると、図16に示すように、選択し
たアクティビティを包括する矩形501〜503が表示
され、プレース・プロパティ設定ウインドウ510が表
示される。
【0066】本発明の好適な実施例においては、選択さ
れたアクティビティの中心座標をx軸方向に順番に並
べ、隣り合うアクティビティの中心座標を結ぶ線分を中
心とした一定幅の長方形を算出することにより表示すべ
き矩形501〜503を求めている。なお、これらの矩
形はアクティビティの中心座標を焦点とする楕円などに
よっても代替可能である。
【0067】なお、本発明の好適な実施例において、3
つ以上のアクティビティが同一のプレースと指定された
場合、矩形の重なり合った部分は除去され、1つの多角
形として表示される。また、GUIプレースを象徴する
各々の矩形または多角形は、異なる色彩アトリビュート
が割り当てられ、オペレータはプレースの違いを容易に
判断することができる。
【0068】この例においては、アクティビティを、キ
ーボードのコントロールキーをおしながら選択し、プレ
ースのアイコン399をクリックすることにより、同一
のプレースにおいて実行を希望するアクティビティを選
択しているが、マウスのポイント&ドラッグにより、同
一のプレースにおいて実行を希望するアクティビティを
囲い込むオペレーションや選択後のクリックによる選択
取り消し等のオペレーションによっても代替可能なもの
である。
【0069】ユーザがプレース名やプレースアドレスを
セットすると、選択されたGUIアクティビティ403
(図9)のGUIプレース405のアドレス、プレース
名として設定される。
【0070】F.プランの生成 図17は、プラン定義データを基に実行コード(プラ
ン)を生成する手順を示すフローチャートである。ま
ず、プラン・オブジェクトを生成する(ブロック60
3)。プランの生成においては、大きく分けて、プラン
IDの生成と、プラン・オブジェクトの下位に位置する
オブジェクトとのリンク状態を確立する工程に分けられ
る。
【0071】本発明の好適な実施例においては、プラン
・オブジェクトにグローバルなネットワーク上で一意に
決まるユニークなプランIDを割りふられる。本発明の
好適な実施例においてプランID生成部215(図4)
は、インターネットのURL、ポート番号、エージェン
トID(移動エージェント生成部に割りふられてい
る)、シリアルNo.(移動エージェント生成部がプラ
ンID作成毎割りふる)を合成してプランIDを作成し
ている。
【0072】このプランID生成部のコーディングの例
を表1に示す。本発明の好適な実施例においては、プラ
ンID生成部のインストラクション群はプログラム部品
としてユーザに提供されている。
【0073】
【表1】 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()); } }
【0074】本発明の好適な実施例においては、プラン
・オブジェクトの生成を行うための「New演算子」が
Javaの機能として提供されており、プランIDを引
き数にしてこのクラスを実行することにより、新たなプ
ラン・オブジェクトが生成される。
【0075】なお、モデレータ・エージェントは、上述
のように、各プレースで現在提供されている機能(プレ
ース・クラス)を利用して生成される。本発明の好適な
実施例においては、Javaベースのモーバイル・エー
ジェントのAgletsクラスに移動エージェントの作
成を指示するAPIを投げることによって、モデレータ
・エージェントの生成を行っている。
【0076】次に、先頭のGUIアクティビティに対応
するアクティビティを生成する(ブロック605)。具
体的には、まず、GUIアクティビティのアクティビテ
ィ・タイプから実行時のクラス名(この場合はA1)を
取得し、その後、クラス名「A1」をキーにそのインス
タンスを生成する。生成されたアクティビティはプラン
・オブジェクトに追加される(ブロック607)。
【0077】仕掛かり中のGUIオブジェクト(GUI
アクティビティまたはGUIモデレータ・テンプレート
またはリンク・オブジェクト)を格納するFIFO(F
irst In First Out)キューを作成し
(ブロック609)、先頭のGUIオブジェクト(GU
Iアクティビティ)をキューに入れる(ブロック61
1)。先頭のGUIオブジェクトであるか否かは、プレ
デセッサ・リストがnullであるか否か等によって判
別することができる。
【0078】次に、生成されたキューから要素(GUI
オブジェクト)を取り出し(ブロック612)、図18
に示すサクセッサ・リストにあるアクティビティまたは
モデレータ・テンプレートを追加するサブルーチン(ブ
ロック613)を実行する。
【0079】図18は、このサブルーチンの処理手順を
しめすフローチャートである。まず、サクセッサ・リス
トの要素数と現在のiの値を比較し、全てのサクセッサ
・リストの要素数について、この処理が実行されたか否
かを判断する(ブロック665)。
【0080】サクセッサ・リストの要素数>iの場合
は、サクセッサ・リストのi番目のGUIオブジェクト
を取り出す(ブロック657)。
【0081】そして、取り出したGUIオブジェクト
が、すでにキューに存在しているか否かを判断し(ブロ
ック658)、存在していない要素のみを図17のブロ
ック609で生成したキューに入れる(ブロック65
9)。
【0082】次に、取り出した要素(GUIオブジェク
ト)がGUIアクティビティまたはGUIモデレータ・
テンプレートであるか否かを検査する(ブロック66
0)。取り出した要素がGUIアクティビティまたはG
UIモデレータ・テンプレートである場合には、対応す
るアクティビティまたはモデレータ・テンプレートを作
成する(ブロック661)。このとき、GUIアクティ
ビティの場合には、対応するGUIプレースのアドレス
情報を入手する。
【0083】そして、カレントのGUIオブジェクトの
プレデセッサ・リストのリンク・オブジェクトよりプレ
デセッサ・インデックスを取得し、自己のプレデセッサ
・リストにセットする。なお、最初でないGUIアクテ
ィビティまたはGUIモデレータ・テンプレートには、
必ずプレデセッサ・リストにはリンク・オブジェクトの
情報が入っている。最初のGUIアクティビティには、
プレデセッサ・リストにnullの情報がセットされて
いるので、自己のプレデセッサ・リストにもnullを
セットする。
【0084】次に作成した要素(アクティビティまたは
モデレータ・テンプレート)をプランに追加し(ブロッ
ク663)、プラン中の順序リストのインデックスをカ
レントのGUIオブジェクトのサクセッサであるリンク
オブジェクトにセットする。リンクオブジェクトはこの
値をプレデセッサ・インデックスとして保持し、アクテ
ィビティまたはモデレータ・テンプレートのプレデセッ
サ・リストを形成するための情報として使用される。
【0085】取り出した要素がGUIアクティビティま
たはGUIモデレータ・テンプレートでない場合、対応
するアクティビティまたはモデレータ・テンプレートを
作成する処理等は行わず、次の要素の処理をおこなう。
【0086】そして、このブロック657乃至ブロック
665の処理をサクセッサ・リストの要素の数繰り返し
た後、再び図17に戻り、キューに要素はあるか否か判
断し、まだある場合には要素を取り出し(ブロック61
2)、再び図18に示すサクセッサ・リストにあるアク
ティビティまたはモデレータ・テンプレートを追加する
サブルーチン(ブロック613)を実行する。
【0087】G.プランの実行 G−1.Chainテンプレートを含むトポロジーの場
【0088】Chainテンプレートを含むトポロジー
の場合における移動オブジェクト群の動作を図19乃至
図23を使用して説明する。図19は、プランの実行手
順を示すフローチャートであり、図20は、モデレータ
・テンプレートの機能ブロック図である。図23は、移
動オブジェクト群がオリジンのプレースからディスティ
ネーションのプレースに移動する状態の概念図である。
まず、図19を参照する。モデレータ・エージェント3
51が生成され、プラン353が割り当てられると(ブ
ロック843)、モデレータ・エージェントはプランを
自動的に実行する(ブロック845)。
【0089】モデレータ・エージェント351からプラ
ン・オブジェクト353に対し送出された、"NextStep"
のインストラクションに応答して、プラン・オブジェク
ト353はまず、カレントのプランノードを取り出す
(ブロック847)。本発明の好適な実施例において
は、プラン・イタレータオブジェクト352が現在プラ
ンノードのどのステップにあるかを管理しており、プラ
ン・オブジェクト353の問い合わせに応答して、現在
プランノードのどのステップにいるか(カレント)の情報
を提供する。
【0090】カレントの問い合わせに対し、プラン・イ
タレータオブジェクト352が「0」(最初のステップ)
を返した場合、プラン・オブジェクト353は、act
1を取り出す。そして、プラン・オブジェクト353
は、act1に対して、その中で定義されているアクテ
ィビティにアクティビティが管理しているリクエストを
実行することを依頼する(ブロック849)。
【0091】アクティビティは内部に保持しているエー
ジェントのクラス名(エージェント名)が同一のプレー
スに存在しているか否か判断する。図21に示すよう
に、モデレータ・エージェント350はプレース360
に到達すると、プレース360に対し自分のエージェン
ト名を教え、プレース360はこれをエージェントリス
ト369として管理している。そして、プレース360
に存在するエージェントは、プレース360に対し"get
AgentList"のインストラクションを出し、問い合わせを
行うと、プレースはAgentListを返す機能があるので、
同一プレースに存在するエージェントを知ることができ
る。
【0092】アクティビティは見つけたエージェント
(アクター・エージェント)361に対し内部に保持し
ているメッセージ(リクエスト)を送る。アクター・エー
ジェント361はこのリクエストに対し、リターンのオ
ブジェクトをリクエスト側のエージェント350に送出
する。リクエスト側のエージェントは、この受け取った
オブジェクトをResultのレコード525に格納す
る。
【0093】アクティビティはプラン・オブジェクト3
53に依頼の仕事が終わったことを知らせ、これに応答
してプラン・オブジェクト353はact1に処理が終
了したことを示すマークを付ける(ブロック855)。
そして、プラン・オブジェクト353はプラン・イタレ
ータ352に対し、ステップを進めることを依頼し(ブ
ロック859)、プラン・イタレータ352は、プラン
・オブジェクト353にカレントの情報を提供する。
【0094】この場合、カレントは"1"(2番目のステッ
プ)であるので、プラン・オブジェクトはChainテ
ンプレートのオブジェクトを取り出す(ブロック84
5、847)。そして、プラン・オブジェクトはCha
inに対して、実行を依頼する(ブロック849)。
【0095】Chainのモデレーション管理マネジャ
603は、ステート管理部601に現在のステートを問
い合わせる。ステート管理部601は、デフォルトでオ
リジンの状態になっているので、オリジンであることを
モデレーション管理マネジャ603に知らせる。モデレ
ーション管理マネジャ603は、ステート管理部601
から、ステートの情報を得ると、ステートの切り換えを
ステート管理部601に依頼する。ステート管理部60
1は、これに応答してステートをオリジンからディステ
ィネーションに切り換える。
【0096】このテンプレートの行うステートの切り換
え及びオリジンまたはディスティネーションにおける処
理のフローを図22に示す。このフローチャートは複数
種類存在するテンプレートに共通な動作を示しており、
ブロック8257のオリジンにおける処理とブロック8
31のディスティネーションにおける処理の内容がテン
プレートの種類によって異なる処理が実施される。
【0097】モデレーション管理マネジャ603は、オ
リジン用モデレーション・モジュール605に処理を依
頼する。オリジン用モデレーション・モジュール605
とディスティネーション用モデレーション・モジュール
607には、夫々のプレースにおいてテンプレートが動
作するためのインストラクションのセットが管理されて
いる。
【0098】オリジン用モデレーション・モジュール6
05は、モデレータ・エージェント参照モジュール59
9に問い合わせを行うことにより、現在モデレータ・エ
ージェント351の存在するプレースのアドレスを取得
する。
【0099】また、サクセッサ・リスト609に対し、
サクセッサ・リスト609に登録されているアクティビ
ティのアドレスの渡すように依頼する。サクセッサ・リ
スト609は、登録されているアクティビティ(act
2)からアドレスを取得し、オリジン用モデレーション
・モジュール603に渡す。
【0100】オリジン用モデレーション・モジュール6
03は、アクティビティのアドレスと現在モデレータ・
エージェントの存在するプレースのアドレスを比較し、
もし2つが異なっていたらアクティビティのアドレスに
モデレータ・エージェントを移動させる。具体的には、
オリジン用モデレーション・モジュール605は、モデ
レータ・エージェント参照モジュールを介して、移動を
命令するインストラクションを送出する。同一アドレス
の場合には、処理を終了する。
【0101】プラン・オブジェクトは移動先で再びプラ
ン・オブジェクトに対し1ステップの実行を依頼する。
同様にカレントのプランノードを取り出す。プラン・オ
ブジェクトはChainに対し、次のステップの実行を
依頼する。Chainはステートの情報を確認し、ディ
スティネーションの処理を行う。ステートの情報をオリ
ジンの状態に戻す。
【0102】プランはChainのディスティネーショ
ンの処理の終了を確認すると、次のカレントのプランノ
ードを取り出し(act2)、アクティビティの実行を
依頼する。act2は、act1が内部に保持するre
sultを取得する。
【0103】本発明の好適な実施例においては、ディス
ティネーションモジュール607がプレデセッサ・リス
ト591を参照し、Chainに対し、処理結果の送出
を依頼する"getResult"のインストラクションを送出す
る。Chainは、これに応答し、自己の保有するRe
sultを探索する。しかし、ChainはResul
tを保有していないので、さらにプレデセッサ・リスト
591を参照し、プレデセッサ・リスト591に登録さ
れたオブジェクト(act1)にResultをもらい
に行き、そのResultをact2に返す。プレデセ
ッサ・リスト591に登録されたオブジェクトが存在し
ない場合には、act2にResultを保有していな
いことを示すDummyを送出する。この処理はテンプ
レートにResultを格納するレコードを作成するこ
とによって代替可能である。
【0104】act2は、内部に保持しているエージェ
ントのクラス名をキーに同一プレースに存在するレポー
トエージェントの参照を得る。act2はレポートエー
ジェントに対し内部に保持しているメッセージをact
1から入手したresultを引き数にして送る。プラ
ンは次のカレント・ノードを取り出す。この場合、カレ
ント・ノードは存在しないので、プランはこれを検出し
て処理を終了する。ディスティネーション用モデレーシ
ョン・モジュール607はモデレータ・エージェント参
照モジュール599を介して、モデレータ・エージェン
トにモデレータ・エージェントを消滅させるインストラ
クションを送出する。
【0105】G−2.Iterationテンプレート
を含むトポロジーの場合 図24は、Iterationテンプレートによって制
御される移動オブジェクト群の動作の概要を示す図であ
る。以下、図20を参照し、Iterationテンプ
レートを含むトポロジーの場合の処理を説明する。Ch
ainの場合と同様に、モデレータ・エージェント35
1を生成し、その際の引き数として作成したプラン・オ
ブジェクト353を渡し、プラン353を1ステップず
つ実行する。また、プラン・オブジェクト353は、C
hainの場合と同様に、カレントのプランノード(C
hain)を取り出し、Chainはオリジンにおける
処理を実行する。また、移動先において、「G−1.C
hainテンプレートを含むトポロジーの場合」で説明
したように、ディスティネーションにおける処理の実
行、act1のアクティビティの実行を行う。
【0106】act1の処理が終了すると、次にプラン
353はIterationに次のステップの実行を依
頼する。図25は、Iterationテンプレートの
オリジンにおける処理手順を示すフローチャートであ
る。Iterationテンプレートのオリジンにおけ
る処理においては、まず、次のステップに進んでよい
か、例えば、act1のresultの情報が所定の条
件に一致しているか否かチェックを行う(ブロック87
3)。
【0107】もし条件を満たしている場合、内部に保持
するサクセッサ情報をサクセッサ・リストに格納する
(ブロック875)。そして、サクセッサ・リストのa
ct2よりアドレスを取り出し(ブロック877)、そ
のアドレスにモデレータ・エージェントを移動させる
(ブロック879)。もし、所定の条件に一致していな
い場合には、ステートをオリジンにし(ブロック88
1)、リターン・ノード・インデックスよりプランノー
ドの参照を得、そのプランノードでサクセッサ・リスト
の要素を置き換え、次のステップに進む(ブロック88
3)。以下「G−1.Chainテンプレートを含むト
ポロジーの場合」において説明したようにact2の処
理を行い、処理を終了する。
【0108】G−3.ANDSplit及びANDJo
inテンプレートを含むトポロジーの場合 図26、27は、ANDSplit、ANDJoinテ
ンプレートによって制御される移動オブジェクト群の動
作の概要を示す図である。以下、図20を参照し、AN
DSplit及びANDJoinテンプレートを含むト
ポロジーの場合の処理を説明する。Chainの場合と
同様に、モデレータ・エージェント351を生成し、そ
の際の引き数として作成したプラン・オブジェクト35
3を渡し、プラン353は、1ステップずつ実行され
る。
【0109】また、プラン・オブジェクト353は、C
hainの場合と同様に、カレントのプランノードであ
るANDSplitを取り出す。プラン353はAND
Splitに対して次のステップの実行を依頼する。図
28は、ANDSplitテンプレートにおけるオリジ
ンの処理の処理手順を示すフローチャートである。
【0110】モデレーション管理マネジャ603は、ス
テート管理部601のステート情報を検索し、デフォル
トである、「オリジン」の情報を取得する。モデレーシ
ョン管理マネジャ603は、オリジン用モデレーション
・モジュール605にオリジンにおける処理を行うよう
依頼する。モデレーション管理マネジャ603は、ステ
ートをディスティネーションに変えるようステート管理
部に依頼する(ブロック893)。そして、ANDSp
litは、サクセッサ・リストを参照し(ブロック89
7)、サクセッサ・リストの最初のアクティビティを取
り出し、マークド・インデックス595に「0」をセッ
トする(ブロック899)。
【0111】次に、モデレーション管理マネジャ603
は、モデレータ・エージェントのクローンを作成するよ
うモデレータ・エージェント参照モジュール599を介
してモデレータ・エージェント351に依頼する(ブロ
ック901。モデレータ・エージェントは、この依頼に
応答して、モデレータ・エージェント及びモデレータ・
エージェントの保持するプラン、テンプレート、アクテ
ィビティ等、全てのオブジェクトのコピーも作成する。
【0112】コピーによって作成されたクローンのモデ
レータ・エージェントは、クローンの作成の完了に応答
して、自分のエージェントIDをモデレータ・エージェ
ント参照モジュール599に教える。モデレータ・エー
ジェント参照モジュール599は、クローンの作成が完
了したことをオリジン用モジュレーションモジュール6
05に知らせる。
【0113】オリジン用モジュレーションモジュール6
05はこれに応答して、マークド・インデックスの値
(0)に対応するアクティビティ(act1)のアドレ
スをサクセッサ・リスト609から取得する。オリジン
用モデレータモジュール605は、モデレータ・エージ
ェント参照モジュール599を介して、クローンをac
t1のアドレスに対応するプレースに移動することをモ
デレータ・エージェント351に依頼する(ブロック9
03)。
【0114】オリジン用モジュレーションモジュール6
05は、サクセッサ・リスト609を参照し、次のアク
ティビティが登録されているか否か判断し、登録されて
いる場合には、さらに、もう一つのクローンの作成の処
理を同様の手順で行い、act2のプレースに移動させ
る(ブロック897〜903)。この時、act2に移
動させるクローンのマークド・インデックス595はa
ct1に移動するクローンと異なり、「1」にしておく
(ブロック899)。
【0115】act2に移動するクローンの作成及び移
動の処理が終了すると、オリジン用モジュレーションモ
ジュール605は、サクセッサ・リスト609を参照
し、次のアクティビティが登録されているか否か判断す
る(ブロック897)。この例の場合には、サクセッサ
・リスト609には、もう登録されているアクティビテ
ィは存在しないので、オリジン用モデレーション・モジ
ュール605は、クローンの作成及び移動の処理が終了
したことを認識する。
【0116】オリジン用モデレーション・モジュール6
05はこれに応答して、モデレータ・エージェント参照
モジュール599を介して、もとの場所(オリジンのプ
レース)に残っているモデレータ・エージェント351
を消去するインストラクションをモデレータ・エージェ
ント351に送出する(ブロック905)。
【0117】この一方、クローンのモデレータ・エージ
ェントは、夫々のプレースにおいて、次のプランステッ
プを実行する。このとき、カレント・ノードとしてAN
DSplitが再び取り出される。この次のカレントを
決定するロジックのフローチャートを図29に示す。モ
デレーション管理マネジャ603は、ステート管理部6
01を参照し、ステート情報を取得し、現在のステート
はディスティネーションであることを認識し、ディステ
ィネーション用モデレーション607に処理の実行を依
頼する。
【0118】モデレーション管理マネジャ603はステ
ートの情報をオリジンの状態に戻す。プランはANDS
plitのディスティネーションの処理の終了を確認す
ると、マークド・インデックスに対応したプランノード
を取り出し(act1またはact2)、アクティビテ
ィの実行を依頼する。
【0119】プラン・オブジェクト353はプラン・イ
タレータ352を参照して、次のカレントのノードを取
り出す。このとき、プラン・イタレータは、サクセッサ
・リスト609及びマークド・インデックス595を参
照し、登録されている値を検査する(図29)。
【0120】act1、act2は、先に実行されたア
クティビティが保持するResultを取得する。この
例では、ANDSplitテンプレートの前にはアクテ
ィビティが実行されていないため、act1、act2
は、先に実行されたアクティビティが保持するResu
ltを、結果的に取得しないことになる。
【0121】まず、act1に対応するクローンのエー
ジェントにおいて、次のカレント・ノードとしてAND
Joinが選ばれる。プラン・オブジェクト353は、
ANDJoinテンプレートのモデレータ管理マネジャ
603に次のステップの実行を依頼する。モデレータ管
理マネジャ603は、ステート管理部601の情報か
ら、現在オリジンの処理を行うべきことを認識し、オリ
ジン用モデレーション・モジュール605に実行要求を
出す。また、ステート管理部601にステートの変更を
依頼する。
【0122】オリジン用モデレーション・モジュール6
05はサクセッサ・リスト609を参照し、サクセッサ
・リスト609に登録されたアクティビティ(act
3)のアドレス情報を取得する。そして、モデレータ・
エージェント参照モジュール599を介してモデレータ
・エージェント351に入手したアドレス情報に対応し
たプレースへの移動を指示する。
【0123】act2に対応するクローンのエージェン
トもact1の場合と同様に処理を行い、act3のプ
レースに移動する。2つのモデレータ・エージェントは
新たなプレースに到着したので、それぞれ次のステップ
を実行する。プラン・オブジェクト353は、カレント
・ノードとしてANDJoinテンプレートを取り出
し、次のステップを実行する。
【0124】図30、31は、ANDJoinテンプレ
ートのディスティネーションにおける処理手順を示すフ
ローチャートである。ANDJoinのモデレーション
管理マネジャ603は、ステート管理部601を参照し
て、現在のステートがディスティネーションであること
を判断し、ディスティネーション用モデレーション・モ
ジュール607に実行を依頼する。
【0125】各モデレーション管理マネジャ603は、
ステートをオリジンの状態に戻す。act1に対応する
クローンのディスティネーション用モデレーション・モ
ジュール607は、プレデセッサ・リスト591を参照
し、終了のマークのついたアクティビティ(この場合a
ct1)を取り出す(ブロック913)。この取り出さ
れたアクティビティがプレデセッサ・インデックス・リ
ストの中で一番小さなインデックスを有しているか否か
検査し(ブロック915)、一番小さなインデックスを
有していると判断された場合には、他のクローンエージ
ェントのResultを受け取る処理を行う。
【0126】具体的には、ディスティネーション用モデ
レーション・モジュール607は、同一プレース上エー
ジェント参照モジュール597に同一プレースに存在す
るエージェントリストをプレースから取得することを依
頼する。同一プレース上エージェント参照モジュール5
97はこれに応答して、プレース360に対し"getAgen
tList"のインストラクションを出し、問い合わせを行
う。プレースはAgentListを返すことによって、同一プ
レースに存在するエージェントのリストを入手する。
【0127】同一プレース上エージェント参照モジュー
ル597はこのリストをディスティネーション用モデレ
ーション・モジュール607に渡す。ディスティネーシ
ョン用モデレーション・モジュール607は、このリス
トから同一のプランIDを有するエージェントを探す
(ブロック921)。
【0128】同一のプランIDを有するエージェントが
発見された場合、そのエージェントのプランを取得す
る。そして、取得したプランのカレント・ノードを調べ
(ブロック929)、同じANDJoinであれば、そ
のエージェントのResultを受け取る処理を行う。
本発明の好適な実施例においては、さらに、カレント・
ノード・インデックスが同じか否か判断し(ブロック9
31、933)、同じ場合のみ融合の処理に入る。これ
は、ANDJoinの処理対象を誤認することを防止す
るためである。このとき、ディスティネーション用モデ
レーション・モジュール607は、プレデセッサ・リス
トを参照し、プレデセッサが幾つあるかを把握し、その
数に対応してResultを受け取る処理を行う。
【0129】具体的には、ディスティネーション用モデ
レーション・モジュール607は、受領したプランのプ
レデセッサ・リスト591を参照し、終了のマークのつ
いたアクティビティを取り出し、そのアクティビティの
保有しているResultを受け取る。そして、このR
esultを対応するアクティビティのResultに
セットする。プランノード自体を置き換える処理を行っ
てもよい(ブロック935)。図32は、このResu
ltを受け取る処理の概要を示す図である。
【0130】ディスティネーション用モデレーションエ
ージェント607は、Resultのセットが終了した
ことを検出した後、モデレータ・エージェント参照モジ
ュールを介して、相手のモデレータ・エージェント35
1に対して消去を指示するインストラクションを送出す
る(ブロック937)。相手のモデレータ・エージェン
トは、このインストラクションを受け、モデレータ・エ
ージェント及び、自分の管理するオブジェクト(プラ
ン、テンプレート、アクティビティ等)を消去する。
【0131】この一方、act2に対応するエージェン
トは、新たなプレースに到着したことに伴い、次のステ
ップを実行する。このエージェントのディスティネーシ
ョン用モデレーション・モジュール607も、プレデセ
ッサ・リスト591を参照し、終了のマークのついたア
クティビティ(この場合act2)を取り出す(ブロッ
ク913)。この取り出されたアクティビティがプレデ
セッサ・インデックス・リストの中で一番小さなインデ
ックスを有しているか否か検査し(ブロック915)、
一番小さなインデックスでないと判断される。この場合
には、他のクローンエージェントのResultを渡す
のを待つためSleep状態に入る(ブロック92
5)。
【0132】再び、話をact1に対応するクローンに
戻すと、ディスティネーション用モデレーション・モジ
ュール607は、プレデセッサ・リストの数に対応して
(プレデセッサ・リストの要素数−1回)Result
を受け取り、クローンの消去を行う処理を完了した後、
プランは、次のカレントのプランノードを取り出し(a
ct3)、アクティビティの実行を依頼する。
【0133】act3は、act1、act2が内部に
保持するresultを取得する。本発明の好適な実施
例においては、ディスティネーションモジュール607
がプレデセッサ・リスト591を参照し、(act1に
対応するクローンの)act1、act2に対し、処理
結果の送出を依頼する"getResult"のインストラクショ
ンを送出する。act1、act2は、これに応答し、
自己の保有するResultを送出する。
【0134】act3は、内部に保持しているエージェ
ントのクラス名をキーに同一プレースに存在するエージ
ェント(この例ではレポートエージェント)の参照を得
る。act3はレポートエージェントに対し内部に保持
しているメッセージをact1、act2から入手した
resultを引き数にして送る。
【0135】プランは次のカレント・ノードを取り出
す。この場合、カレント・ノードは存在しないので、プ
ランはこれを検出して処理を終了する。そして、モデレ
ータ・エージェントは、処理の終了を検出しモデレータ
エージェン及び自己が管理するオブジェクトの消去をし
て処理を終了する。
【0136】G−4.ORSplitテンプレートを含
むトポロジーの場合 図33は、ORSplitテンプレートによって制御さ
れる移動オブジェクト群の動作の概要を示す図である。
ORSplitの場合、ChainやANDSplit
の場合と異なりオリジンの処理において図34に示す処
理を行う。ORSplitテンプレートは一つのプレデ
セッサのアクティビティと複数のサクセッサのアクティ
ビティを有している。オリジナルのプレースにおいて
は、"chooseActivity"というメソッドが呼び出されるこ
とによってサクセッサのリストから一つのアクティビテ
ィが選択され、その選択されたアクティビティのみが実
行される。
【0137】ORSplitのオリジンの処理において
は、まず、ステートがディスティネーションに変更され
る(ブロック982)。そして、"chooseActivity"関数
をコールし、所定の条件に合致する実行すべきアクティ
ビティを選択する(ブロック983)。そして、そのア
クティビティのインデックスをマークド・インデックス
にする(ブロック984)。そして、選択されたアクテ
ィビティのアドレスを入手し、モデレータ・エージェン
ト351に該アドレスへの移動を要求する(ブロック9
85)。
【0138】G−5.ORJoinテンプレートを含む
トポロジーの場合 図35は、ORJoinテンプレートによって制御され
る移動オブジェクト群の動作の概要を示す図である。O
RJoinの場合、ChainやANDJoinの場合
と異なりディスティネーションの処理において図36に
示すような処理を行う。ORJoinテンプレートは、
複数のプレデセッサのアクティビティと一つのサクセッ
サのアクティビティを有している。ORJoinは、デ
ィスティネーションにおいて、最も早く到着したものが
Disposeエージェントを生成し、他の移動エージ
ェントを消去する処理を行う。
【0139】まず、最も早くディスティネーション69
0に到着した移動オブジェクト群のORJoinテンプ
レート694は、"findDisposeAgent"のメソッドを送出
して、同一プレース上にDisposeエージェントが
存在しているか否か判断する(ブロック943)。存在
しない場合は、他のエージェントを消去するDispo
seエージェントを生成する(ブロック945)。この
とき引き数としてプラン及びプレデセッサ・リストのア
クティビティの数−1を渡す。Disposeエージェ
ントは、プレデセッサ・リストのアクティビティの数−
1の移動オブジェクト群を待ち受け消去し、役目が終了
すると自分自身を消去する。本発明の好適な実施例にお
いては、最も早くディスティネーション690に到着し
たか否かを生き残りの条件としているが、Result
の内容を条件として、継続処理するものを決定してもよ
い。
【0140】この一方、他の移動オブジェクト群のOR
Joinテンプレート696は、同様に"findDisposeAg
ent"のメソッドを送出して、同一プレース上にDisp
oseエージェントが存在しているか否か判断する(ブ
ロック943)。この場合、既にDisposeエージ
ェントが存在しているので、Disposeエージェン
トに消去される処理に入る。具体的には、Dispos
eエージェントが同じプランを保持するか(ブロック9
47)、また、同じカレント・ノード・インデックスか
(ブロック949)判断し、自分が消去されるべき、D
isposeエージェントであると確認する。
【0141】自分が消去されるべき、Disposeエ
ージェントであると確認できた場合には、Dispos
eエージェントに"countdown"のメッセージを送り、D
isposeエージェントの処理数を減らす(ブロック
951)。そして、ORJoinテンプレート696
は、モデレータ・エージェント692にdispose
要求を送出し、モデレータ・エージェント692を消滅
させる。
【0142】その他、本発明の好適な実施例において
は、複数のプレデセッサのアクティビティと、プレデセ
ッサのアクティビティよりも少ない数の複数のサクセッ
サのアクティビティを有する一部Joinテンプレート
等も提供されているが、これらのテンプレートは上述の
テンプレートの組合せでも実施可能であるため説明を省
略する。例えば、一部Joinテンプレートは複数のプ
レデセッサのアクティビティと、1つのサクセッサのア
クティビティとをリンクするORJoinテンプレート
と、所望の数のORJoinテンプレートが実行された
ことを判断するアクティビティと、このアクティビティ
が所望の条件をクリアしたか否かの判断によってORJ
oinテンプレートに戻るIterationテンプレ
ートと、ダミーのアクティビティと、所望の数に分裂さ
せるANDSplitの組合せによって実施可能であ
る。
【0143】
【発明の効果】以上説明したように、本発明によれば、
高度なプログラミングの知識を必要とせず、プログラマ
の開発労力及び開発時間の負担が少ない移動エージェン
トの開発が可能となる。
【0144】また、本発明によれば、移動エージェント
の開発労力及び開発時間を可能な限り軽減することがで
きる。
【0145】そして、本発明によれば、開発者が直感的
にその機能を把握でき、親しみやすい移動エージェント
開発環境を提供することができる。
【0146】
【図面の簡単な説明】
【図1】 本発明によって生成される移動エージェント
が動作する分散ネットワーク環境を示す図である。
【図2】 本発明によって生成される移動エージェント
が分散ネットワーク上で移動する態様の一例を示す図で
ある。
【図3】 本発明の好適な実施例における移動エージェ
ント生成システムのハードウェア構成の概観図である。
【図4】 本発明の移動エージェント生成システムにお
ける処理要素の一実施例を示す機能ブロック図である。
【図5】 本発明の移動エージェント生成システムにお
ける処理要素の一実施例をGUIプテン定義データ生成
部207を中心に見た機能ブロック図である。
【図6】 本発明の移動エージェント生成システムによ
って生成された移動エージェント群の実行時における処
理要素の一実施例を示す機能ブロック図である。移動オ
ブジェ
【図7】 本発明の好適な実施例において生成される移
動エージェント群のオブジェクト図である。
【図8】 本発明の好適な実施例において生成される移
動エージェント群のオブジェクト図である。
【図9】 本発明の好適な実施例において生成されるプ
ラン定義データのオブジェクト図である。
【図10】 本発明の好適な実施例におけるオブジェク
ト間のメッセージの流れを示す図である。
【図11】 本発明の好適な実施例における移動エージ
ェント生成システムのユーザインターフェースを示す図
である。
【図12】 本発明の好適な実施例における移動エージ
ェント生成システムのユーザインターフェースを示す図
である。
【図13】 本発明の好適な実施例における移動エージ
ェント生成システムのユーザインターフェースを示す図
である。
【図14】 本発明の好適な実施例における移動エージ
ェント生成システムのユーザインターフェースを示す図
である。
【図15】 本発明の好適な実施例における移動エージ
ェント生成システムのユーザインターフェースを示す図
である。
【図16】 本発明の好適な実施例における移動エージ
ェント生成システムのユーザインターフェースを示す図
である。
【図17】 本発明の好適な実施例におけるプラン定義
データを基に実行コード(プラン)を生成する手順を示
すフローチャートである。
【図18】 本発明の好適な実施例におけるプラン定義
データを基に実行コード(プラン)を生成する手順を示
すフローチャートである。
【図19】 本発明の好適な実施例におけるプラン・オ
ブジェクトの実行手順を示すフローチャートである。
【図20】 本発明の好適な実施例におけるモデレータ
・テンプレートの機能ブロック図である。
【図21】 本発明の好適な実施例におけるプレースの
概念図である。
【図22】 本発明の好適な実施例におけるモデレータ
・テンプレートの処理概要を示すフローチャートであ
る。
【図23】 本発明の好適な実施例における移動オブジ
ェクト群がオリジンのプレースからディスティネーショ
ンのプレースに移動する状態を示す概念図である。
【図24】 本発明の好適な実施例における移動オブジ
ェクト群がオリジンのプレースからディスティネーショ
ンのプレースに移動する状態を示す概念図である。
【図25】 本発明の好適な実施例におけるItera
tionテンプレートのオリジンにおける処理手順を示
すフローチャートである。
【図26】 本発明の好適な実施例における移動オブジ
ェクト群がオリジンのプレースからディスティネーショ
ンのプレースに移動する状態を示す概念図である。
【図27】 本発明の好適な実施例における移動オブジ
ェクト群がオリジンのプレースからディスティネーショ
ンのプレースに移動する状態を示す概念図である。
【図28】 本発明の好適な実施例におけるANDSp
litテンプレートのオリジンにおける処理手順を示す
フローチャートである。
【図29】 本発明の好適な実施例におけるカレント・
ノードを決定するロジックを示すフローチャートであ
る。
【図30】 本発明の好適な実施例におけるANDJo
inテンプレートのディスティネーションにおける処理
手順を示すフローチャートである。
【図31】 本発明の好適な実施例におけるANDJo
inテンプレートのディスティネーションにおける処理
手順を示すフローチャートである。
【図32】 本発明の好適な実施例における移動オブジ
ェクト群がResultを受け取る処理の概要を示す図
である。
【図33】 本発明の好適な実施例における移動オブジ
ェクト群がオリジンのプレースからディスティネーショ
ンのプレースに移動する状態を示す概念図である。
【図34】 本発明の好適な実施例におけるORSpl
itテンプレートのオリジンにおける処理手順を示すフ
ローチャートである。
【図35】 本発明の好適な実施例における移動オブジ
ェクト群がオリジンのプレースからディスティネーショ
ンのプレースに移動する状態を示す概念図である。
【図36】 本発明の好適な実施例におけるORJoi
nテンプレートのディスティネーションにおける処理手
順を示すフローチャートである。
【符号の説明】
100 ノード・システム 201 GUIプランノード・ライブラリ 203 GUIモデレータ・テンプレート 205 GUIアクティビティ 207 GUIプラン定義データ 209 GUIプラン定義データ生成部 211 実行コード生成部 213 プラン生成部 215 プランID生成部 221 プラン・オブジェクト 223 プラン構成部 225 順序リスト 227 プランID 229 ネットワーク・トポロジー 231 入力イベント取得部 233 プラン・オブジェクト操作部 237 プラン・オブジェクト属性変更部 243 プラン表示部 249 実行コード生成部 251 モデレータ・エージェント 253 移動エージェント・ライフサイクル制御部 255 プラン実行部 261 プラン・オブジェクト 263 プラン実行部 265 順序リスト 267 カレント・ノード 270 移動オブジェクト群 271 モデレータ・テンプレート 273 モデレータ・エージェント制御部 275 プラン・ステップ実行部 277 アドレス参照部 281 アクティビティ 283 アクティビティ実行部 285 メッセージ機能 291 アクター・エージェント 293 メッセージ機能 295 メッセージ処理部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 鈴 木 俊 宏 神奈川県大和市下鶴間1623番地14 日本 アイ・ビー・エム株式会社 大和事業所 内 (56)参考文献 国際公開97/7453(WO,A1) K.Minami and T.Su zuki,”JMT(Java−Bas ed Moderator Templ ates)for Multi−Age nt Planning”,Proc. of OOPSLA’97 Worksh op Java−based Para digms for Agent Fa cilities(1997−10) 「IBM SYSTEM JOURN AL」Vol.36,No.1(1997− 3)P.32−48(特に図面参照) 「電子情報通信学会技術研究報告」V ol.96,No.77(1996−5)P.47 −54(A▲I▼96−7) (58)調査した分野(Int.Cl.6,DB名) G06F 9/44 G06F 15/16

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】ポインティングデバイス及び表示画面を備
    える移動エージェント生成装置において、移動モデレー
    タ・エージェントの制御の下、異なるプレースにおいて
    異なるアクティビティを実行する移動オブジェクト群の
    少なくとも一部を生成する方法であって、 (a)第1のアクティビティを象徴する第1のGUIア
    クティビティを生成し、前記表示画面に表示する段階
    と、 (b)第2のアクティビティを象徴する第2のGUIア
    クティビティを生成し、前記表示画面に表示する段階
    と、 (c)第3のアクティビティを象徴する第3のGUIア
    クティビティを生成し、前記表示画面に表示する段階
    と、 (d)前記第1のアクティビティと、前記第2のアクテ
    ィビティと、前記第3のアクティビティの接続関係を定
    義するスプリット・モデレータテンプレートを象徴する
    GUIスプリット・モデレータテンプレートを生成し、
    前記表示画面に表示する段階と、 (e)前記GUIスプリット・モデレータテンプレート
    と前記第1のGUIアクティビティとを関連付けるオペ
    レータ入力に応答して、前記GUIスプリット・モデレ
    ータテンプレートと前記第1のGUIアクティビティと
    の順序を特定する第1の順序情報を保持する段階と、 (f)前記GUIスプリット・モデレータテンプレート
    と前記第2のGUIアクティビティとを関連付けるオペ
    レータ入力に応答して、前記GUIスプリット・モデレ
    ータテンプレートと前記第2のGUIアクティビティと
    の順序を特定する第2の順序情報を保持する段階と、 (g)前記GUIスプリット・モデレータテンプレート
    と前記第3のGUIアクティビティとを関連付けるオペ
    レータ入力に応答して、前記GUIスプリット・モデレ
    ータテンプレートと前記第3のGUIアクティビティと
    の順序を特定する第3の順序情報を保持する段階と、 (h)前記第1のアクティビティを実行すべき第1のプ
    レースのアドレス情報を入力するためのエントリを前記
    表示画面に表示する段階と、 (i)該エントリに入力された第1のプレースのアドレ
    ス情報を前記第1のGUIアクティビティに関係付けて
    保持する段階と、 (j)前記第2のアクティビティを実行すべき第2のプ
    レースのアドレス情報を入力するためのエントリを前記
    表示画面に表示する段階と、 (k)該エントリに入力された第2のプレースのアドレ
    ス情報を前記第2のGUIアクティビティに関係付けて
    保持する段階と、 (l)前記第1の順序情報、前記第2の順序情報、前記
    第1のプレースのアドレス情報、及び前記第2のプレー
    スのアドレス情報に基づいて移動オブジェクト群の少な
    くとも一部を生成する段階と、 を含む移動オブジェクト群の生成方法。
  2. 【請求項2】ポインティングデバイス及び表示画面を備
    え、移動モデレータ・エージェントの制御の下、異なる
    プレースにおいて異なるアクティビティを実行する移動
    オブジェクト群の少なくとも一部を生成する移動エージ
    ェント生成装置であって、 (a)第1のアクティビティを象徴し、前記表示画面に
    表示するためのdisplayメソッドを備える第1の
    GUIアクティビティと、 (b)第2のアクティビティを象徴し、前記表示画面に
    表示するためのdisplayメソッドを備える第2の
    GUIアクティビティと、 (c)第3のアクティビティを象徴し、前記表示画面に
    表示するためのdisplayメソッドを備える第3の
    GUIアクティビティと、 (d)第1乃至第3のアクティビティの接続関係を定義
    するモデレータテンプレートを象徴し、前記表示画面に
    表示するためのdisplayメソッドを備えるGUI
    モデレータテンプレートと、 (e)前記GUIモデレータテンプレートと前記第1乃
    至第3GUIアクティビティとを関連付けるオペレータ
    入力を取得する入力イベント取得部と、 (f)前記オペレータ入力に応答して、前記GUIモデ
    レータテンプレートと前記第1の乃至第3のGUIアク
    ティビティとの順序を特定するプラン・オブジェクト操
    作部と、 (g)前記第1のアクティビティを実行すべきプレース
    のアドレス情報を入力するためのエントリを前記表示画
    面に表示するためのdisplayメソッドと、該エン
    トリに入力されたプレースのアドレス情報を保持するた
    めのsetAddressメソッドを備えるGUIプレ
    ース・オブジェクトと、 (h)前記順序情報および前記プレースのアドレス情報
    に基づいて移動オブジェクト群の少なくとも一部を生成
    する実行コード生成部と、 を含む移動オブジェクト群の生成装置。
  3. 【請求項3】ポインティングデバイス及び表示画面を備
    える移動エージェント生成装置において、移動モデレー
    タ・エージェントの制御の下、異なるプレースにおいて
    異なるアクティビティを実行する移動オブジェクト群の
    少なくとも一部を生成するためのGUIオブジェクト群
    を格納する記憶媒体であって、 (a1)前記表示画面にアクティビティとして認識され
    るように表示するためのdisplayメソッドと、 (a2)他のGUIオブジェクトとの結合関係を管理す
    るプレデセッサ・リストとを備えるGUIアクティビテ
    ィと、 (b1)前記アクティビティの実行されるプレースを特
    定するアドレス情報を入力するためのエントリを前記表
    示画面に表示するdisplayメソッドと、(b2)
    入力されたアドレス情報を保持するためのsetAdd
    ressメソッドとを備えるGUIプレース・オブジェ
    クトと、 (c1)前記表示画面に第1のアクティビティから第2
    の第3のアクティビティへ移行する結合関係を定義する
    スプリット・モデレータ・テンプレートとして認識され
    るように表示するためのdisplayメソッドと、 (c2)前記第1のアクティビティとの結合関係を管理
    するプレデセッサ・リストと、前記第2及び第3のアク
    ティビティとの結合関係を管理するサクセッサ・リスト
    とを備えるGUIモデレータ・テンプレートと、 を格納する記憶媒体。
  4. 【請求項4】ポインティングデバイス及び表示画面を備
    える移動エージェント生成装置において、移動モデレー
    タ・エージェントの制御の下、異なるプレースにおいて
    異なるアクティビティを実行する移動オブジェクト群の
    少なくとも一部を生成するためのGUIオブジェクト群
    を格納する記憶媒体であって、 (a1)前記表示画面にアクティビティとして認識され
    るように表示するためのdisplayメソッドと、 (a2)他のGUIオブジェクトとの結合関係を管理す
    るプレデセッサ・リストとを備えるGUIアクティビテ
    ィと、 (b1)前記アクティビティの実行されるプレースを特
    定するアドレス情報を入力するためのエントリを前記表
    示画面に表示するdisplayメソッドと、(b2)
    入力されたアドレス情報を保持するためのsetAdd
    ressメソッドとを備えるGUIプレース・オブジェ
    クトと、 (c1)前記表示画面に第1および第2のアクティビテ
    ィから第3のアクティビティへ移行する結合関係を定義
    するジョイン・モデレータ・テンプレートとして認識さ
    れるように表示するためのdisplayメソッドと、 (c2)前記第1及び第2のアクティビティとの結合関
    係を管理するプレデセッサ・リストと、前記第3のアク
    ティビティとの結合関係を管理するサクセッサ・リスト
    とを備えるGUIモデレータ・テンプレートと、 を格納する記憶媒体。
JP10015817A 1997-11-07 1998-01-28 移動オブジェクト群の生成方法、及び生成装置、移動オブジェクト群を生成するオブジェクトを格納した記憶媒体 Expired - Fee Related JP2963077B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP10015817A JP2963077B2 (ja) 1997-11-07 1998-01-28 移動オブジェクト群の生成方法、及び生成装置、移動オブジェクト群を生成するオブジェクトを格納した記憶媒体
CN 98123855 CN1111298C (zh) 1997-11-07 1998-11-05 生成移动对象的方法和装置
US09/238,216 US6407751B1 (en) 1998-01-28 1999-01-27 Method and apparatus of generating mobile objects and storage medium storing an object generating mobile objects

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP30602097 1997-11-07
JP9-306020 1997-11-07
JP10015817A JP2963077B2 (ja) 1997-11-07 1998-01-28 移動オブジェクト群の生成方法、及び生成装置、移動オブジェクト群を生成するオブジェクトを格納した記憶媒体

Publications (2)

Publication Number Publication Date
JPH11194941A JPH11194941A (ja) 1999-07-21
JP2963077B2 true JP2963077B2 (ja) 1999-10-12

Family

ID=26352037

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10015817A Expired - Fee Related JP2963077B2 (ja) 1997-11-07 1998-01-28 移動オブジェクト群の生成方法、及び生成装置、移動オブジェクト群を生成するオブジェクトを格納した記憶媒体

Country Status (2)

Country Link
JP (1) JP2963077B2 (ja)
CN (1) CN1111298C (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101211274B (zh) * 2006-12-29 2010-05-19 盛乐信息技术(上海)有限公司 多应用同时响应手柄的装置及其实现方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
「IBM SYSTEM JOURNAL」Vol.36,No.1(1997−3)P.32−48(特に図面参照)
「電子情報通信学会技術研究報告」Vol.96,No.77(1996−5)P.47−54(A▲I▼96−7)
K.Minami and T.Suzuki,"JMT(Java−Based Moderator Templates)for Multi−Agent Planning",Proc.of OOPSLA’97 Workshop Java−based Paradigms for Agent Facilities(1997−10)

Also Published As

Publication number Publication date
CN1218224A (zh) 1999-06-02
JPH11194941A (ja) 1999-07-21
CN1111298C (zh) 2003-06-11

Similar Documents

Publication Publication Date Title
JPH11184699A (ja) 移動オブジェクト群の実行方法、及び移動オブジェクト群を格納した記憶媒体
RU2336557C2 (ru) Классы структур автоматизации пользовательского интерфейса и интерфейсы
JP4842305B2 (ja) ワールドワイドウェブアプリケーション用の非セーブデータを暗示的にコミットするための計算システム及び方法
US5530861A (en) Process enaction and tool integration via a task oriented paradigm
JP4599364B2 (ja) 自動化されたワークフローサービスシステム
US6463480B2 (en) Method and system of processing a plurality of data processing requests, and method and system of executing a program
US7191410B1 (en) Managing information display
KR100437746B1 (ko) 원격의 호스트 시스템 상에서 실행되는 작업을 로컬의 워크스테이션에서 모니터링하는 방법 및 분산 컴퓨터 시스템과 컴퓨터 판독가능한 기록 매체
JP5820339B2 (ja) 第4世代プログラミングツールを用いて生成されるアプリケーションの属性の拡張
US6407751B1 (en) Method and apparatus of generating mobile objects and storage medium storing an object generating mobile objects
JP2005528667A (ja) ウェブベースのアプリケーションをサポートするためのフレームワークを実施する方法、装置及びシステム
JP2005505050A (ja) ウェブベースのアプリケーションをサポートするためのフレームワークにおいてビューキャッシングを実施する方法、装置及びシステム
EP1799317A2 (en) Computer games localisation
US20230143922A1 (en) Systems and Methods for Dynamically Binding Robotic Process Automation (RPA) Robots to Resources
JP2002259643A (ja) ビジネスプロセス制御プログラム
US8548967B1 (en) System for visual query and manipulation of configuration management records
JP2012118674A (ja) クライアント上で実行されるアプリケーションのローカル環境を共有可能にする方法、並びにそのサーバ及びコンピュータ・プログラム
JP3101327B2 (ja) 移動オブジェクト、移動オブジェクトの制御方法、移動オブジェクト群の生成方法・生成装置、移動オブジェクト群を生成するプログラム格納する記憶媒体
JP3931941B2 (ja) ワークプロセス管理装置及びワークプロセス管理方法
JP2963077B2 (ja) 移動オブジェクト群の生成方法、及び生成装置、移動オブジェクト群を生成するオブジェクトを格納した記憶媒体
JP2003111042A (ja) 会議支援装置、情報処理装置、電子会議システムおよびプログラム
JP2023110808A (ja) スマートタグ基盤の業務処理装置及び業務処理方法
JP3840814B2 (ja) ワークプロセス管理装置、方法、及び記憶媒体
JP4339376B2 (ja) オブジェクト指向カーソル・ツール
JP7183092B2 (ja) ソース情報管理装置およびソース情報管理方法

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees