JPH08249290A - 分散システム - Google Patents

分散システム

Info

Publication number
JPH08249290A
JPH08249290A JP7050678A JP5067895A JPH08249290A JP H08249290 A JPH08249290 A JP H08249290A JP 7050678 A JP7050678 A JP 7050678A JP 5067895 A JP5067895 A JP 5067895A JP H08249290 A JPH08249290 A JP H08249290A
Authority
JP
Japan
Prior art keywords
service
procedure
data
service agent
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP7050678A
Other languages
English (en)
Inventor
Masahiro Hichi
正浩 樋地
Toshiaki Ito
俊明 伊藤
Tsukasa Okazaki
司 岡崎
Yasushi Aoki
靖 青木
Jun Nakanishi
潤 中西
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.)
Hitachi Ltd
Hitachi Solutions East Japan Ltd
Original Assignee
Hitachi Ltd
Hitachi Tohoku Software Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd, Hitachi Tohoku Software Ltd filed Critical Hitachi Ltd
Priority to JP7050678A priority Critical patent/JPH08249290A/ja
Publication of JPH08249290A publication Critical patent/JPH08249290A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【目的】 アプリケーションプログラム間の連携処理手
続きの変更を容易にし、個々の利用者が自分自身の利用
方法に適するアプリケーションプログラム間の連携処理
を行えることが可能な技術を提供すること。 【構成】 ネットワーク上に複数個のコンピュータが接
続された分散システムであって、前記コンピュータ上で
動作する各アプリケーションプログラム本体に他のアプ
リケーションプログラムと連携を行う連携インタフェー
スを付与してなるサービスエンティティを備え、連携さ
せる該サービスエンティティ間の移動先を示す利用順序
情報と各サービスエンティティの利用する処理の手続き
を示した利用処理手続き情報とを有し、前記連携インタ
フェースを介してネットワーク上を移動するサービスエ
ージェントを備える。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータネットワ
ークに接続されたコンピュータ上で動作する各種アプリ
ケーションプログラムにより構成される分散システムに
関し、特に、利用者が複数のアプリケーションプログラ
ムを順次組み合わせながら利用して必要とする処理結果
を得る業務や、個々の部署や作業者が各々与えられた作
業を作業に必要なさまざまなアプリケーションプログラ
ムを利用しながら進めていき、必要に応じてその処理経
過や処理結果、処理内容を他の作業を行っている各作業
者との間でやり取りすることにより、お互いの作業を連
携させながら進めていく一連の作業から構成される業務
に用いられる分散システムに適用して有効な技術に関す
るものである。
【0002】
【従来の技術】分散システムは、個々の作業者が行うべ
き作業に用いられるコンピュータをネットワークで接続
し、個々の作業者間で必要とするデータをやり取りする
システムである。
【0003】このシステムでは、1つ1つの作業は個々
の作業者がアプリケーションプログラムを用いて行う個
人利用中心であり、各作業者の間で必要とするデータだ
けが共有され、各作業者の利用するアプリケーションプ
ログラムで共有されたデータを利用できる。
【0004】分散システム上でアプリケーションプログ
ラムを連携して動作させるための仕組みに関しては、日
経コンピュータ:クライアント・サーバーの弱点 非同
期、蓄積型通信が解消、日経コンピュータ 1994.8.
8. pp.159-168、「日経コンピュータ:分散アプリケ
ーション同士の非同期連携を容易に実現するメッセージ
・ベースのミドルウェアが急増」、日経コンピュータ 1
993.9.20. pp.67-74に、RPC( Remote Procedure C
all )、会話型、ファイル転送、メッセージ・ベースの
4つの連携方法について論じられている。
【0005】RPC はアプリケーションプログラムの1つ
のモジュールを取りだし、そのモジュールを他のコンピ
ュータで実行させる方法である。
【0006】会話型は複数のアプリケーションプログラ
ムの間をリアルタイム通信路で接続し、そのリアルタイ
ム通信路を通じてデータや処理要求をやり取りする方法
である。この会話型の方法を用いて、ある作業に利用す
るアプリケーションプログラムを処理の要求元(クライ
アント)と処理の実行元(サーバ)に分割し、クライア
ント側アプリケーションプログラムとサーバ側アプリケ
ーションプログラムの間で連携して処理を行えるように
したものがクライアント・サーバ・システムである。
【0007】これらの2つの方法では、受信側アプリケ
ーションプログラムは常に動作し、送信側アプリケーシ
ョンプログラムからの処理要求を待つ状態にあり、送信
側アプリケーションプログラムからの処理要求を受け取
るとそれを即座に処理し、処理結果を送信側アプリケー
ションプログラムに返すことにより、送信側アプリケー
ションプログラムと受信側アプリケーションプログラム
の間で同期を取りながら処理を行う連携処理を実現でき
る。
【0008】また、これらの方法では、連携処理を行う
アプリケーションプログラムの間の連携手続きをアプリ
ケーションプログラムを開発する際にあらかじめ定め、
その手続きをプログラムとして記述しておく必要があ
る。
【0009】ファイル転送方法は、連携させるアプリケ
ーションプログラムの間でファイルを転送し、ファイル
に記述されたデータを受け取った場合にアプリケーショ
ンプログラムがそのデータに対する処理を行うものであ
る。
【0010】この方法では、ファイルの受信をトリガと
してアプリケーションプログラムを実行させることによ
り、非同期的なアプリケーションプログラム間の連携処
理を実現できる。
【0011】メッセージ・ベース方法は、送信側アプリ
ケーションプログラムから送り出されたメッセージをメ
ッセージ・ベースの処理を実現するプログラムが受け取
り、メッセージに記述された受信側アプリケーションプ
ログラムにそのメッセージを送り、メッセージを受け取
った受信側アプリケーションプログラムではメッセージ
に対応した処理手続きを実行することにより、アプリケ
ーションプログラム間の連携処理を実現する方法であ
る。
【0012】このメッセージ・ベース方法では、連携処
理を行うアプリケーションプログラムの間であらかじめ
メッセージの形式を定め、そのメッセージを受け取った
場合のアプリケーションプログラムの処理を記述するも
のである。
【0013】これら4つのアプリケーションプログラム
連携処理方法において、一連の作業から構成される業務
を個々の作業で用いられる複数のアプリケーションプロ
グラムの間で処理を連携させるためには、連携のために
必要な処理手続きを各アプリケーションプログラムごと
に定め、プログラムとして記述しておく必要がある。
【0014】また、特開平2-186737号公報に開示された
プログラム間論理通信路制御方式では、ネットワークに
接続されたコンピュータ上で動作するアプリケーション
プログラムの間で、データを交換することにより、アプ
リケーションプログラム間の連携処理を実現する方式に
ついて述べられている。
【0015】これは、アプリケーションプログラムの画
面を介してユーザにより加えられた操作(データの変
更、追加、削除など)のデータを論理的通信路を通じて
同一のアプリケーションプログラム間でやり取りするこ
とにより、そのアプリケーションプログラム間で画面の
表示を共有することに基づくアプリケーションプログラ
ム間の連携処理を実現している。
【0016】これらのアプリケーションプログラム間の
連携処理方法は、連携処理に用いるデータやメッセージ
を他のコンピュータ上のアプリケーションプログラムに
送る際に、送信先のコンピュータの名称、送信先コンピ
ュータの物理的な位置または物理的名称のいずれか1つ
の方法でデータやメッセージの送信先を指定することに
より、指定されたコンピュータ上のアプリケーションプ
ログラムにデータやメッセージを送ることができるもの
である。
【0017】さらに、最近では、個々の作業者による個
人利用中心のシステムから複数の作業者の間にまたがる
作業を支援するシステムの研究・開発が盛んに行われて
いる。
【0018】これら複数の作業者に跨る作業を支援する
システムの種類とその支援する作業の内容に関しては、
石井裕:グループウェア技術の研究動向、情報処理 Vo
l.30No.12 Dec.1989、石井裕:コンピュータを用い
たグループワーク支援の研究動向、コンピュータソフト
ウェア Vol.8 No.2 pp.14-26、C.A. Ellis 、 S.
J. Gibbs and G.L.Rein : ”Groupware : Some Issu
es and Experiences”、 CACM Jan.1991 Vol.34 、
No.1 pp.38-58.、に国内外で研究、開発が行われて
いる複数の人々の間に跨って行われる協同作業を支援す
るシステムが論じられている。
【0019】これらの協同作業を支援するシステムは、
各作業者が同一のアプリケーションプログラムを利用し
て同一の内容の作業を協同して行う(協同文書作成な
ど)ことを支援するシステムであり、各作業者の間でア
プリケーションプログラムの処理結果を表示し、処理結
果に対して何らかの操作を加えるユーザインタフェース
画面を共有する機能を提供するものである。
【0020】
【発明が解決しようとする課題】本発明者は、上記従来
技術を検討した結果、以下の問題点を見いだした。
【0021】上記、従来技術は、ある特定のアプリケー
ションプログラム間でやり取りするデータやメッセージ
をあらかじめ定め、その定めたデータやメッセージに対
応する処理プログラムをそれぞれのアプリケーションプ
ログラムに記述し、このあらかじめ定められたデータや
メッセージをアプリケーションプログラム間でやり取り
することにより、アプリケーションプログラム間の連携
処理を行うため、アプリケーションプログラム間の連携
処理の手続きを変更することはできないか、変更できた
としても、変更に関連する全てのアプリケーションプロ
グラム中の処理プログラムを変更する必要があった。
【0022】そのため、作業内容や目的に応じて容易に
アプリケーションプログラム間の連携処理手続きを変更
することは非常に困難となっており、アプリケーション
プログラム間の連携処理手続きを変更するためには、そ
の変更対象となる全てのアプリケーションプログラムの
実行をいったん終了させる必要があった。
【0023】また、分散システム上ではさまざまな利用
者が各々の作業を行うためにアプリケーションプログラ
ムを使用しており、変更対象となる全てのアプリケーシ
ョンプログラムの実行をいったん終了させることは、変
更対象となるアプリケーションプログラムの数が増加す
るに従い、困難さを増してくることになる。
【0024】そして、アプリケーションプログラム間で
連携処理を行うためにやり取りされるものは、データも
しくはメッセージであるため、それらデータやメッセー
ジを受け取った際の処理手続きは、それを受け取った受
信側アプリケーションプログラムにより決められてお
り、送信側アプリケーションプログラムが受信側アプリ
ケーションプログラムの処理手続きを変更することは不
可能であった。
【0025】さらに、受信側アプリケーションプログラ
ムの提供する複数の機能を組み合わせた一連の処理手続
き、すなわち受信側アプリケーションプログラムで一度
に実行したい複数のコマンドの組み合わせの実行を実現
するためには、毎回、同期を取りながら必要な処理手続
きを実行するためのメッセージをアプリケーションプロ
グラムに送り、該当する手続きを実行し、その実行結果
を送信側アプリケーションプログラムで組み合わせる
か、あらかじめ受信側アプリケーションプログラムに複
数のコマンドを実行するための特別なメッセージをプロ
グラムとして記述しておく必要があった。
【0026】このように、あらかじめアプリケーション
プログラム間の連携処理手続きを記述しておく必要があ
るため、個々の利用者が自分自身の利用方法に適するア
プリケーションプログラム間の連携処理手続きを記述す
ることは不可能であり、個々の利用者が自分自身の利用
方法に適するアプリケーションプログラム間の連携処理
を行うことはできなかったという問題点があった。
【0027】さらに、これらのデータやメッセージをア
プリケーションプログラムに送るためには、そのアプリ
ケーションプログラムの動作しているコンピュータをコ
ンピュータの名称、またはIP アドレス等のコンピュー
タを一意に識別するための手段で明示的に指定する必要
があり、ある処理を行うアプリケーションプログラムの
動作するコンピュータを何等かの理由で変更した場合に
は、該当するアプリケーションプログラムを利用してい
るアプリケーションプログラム連携処理手続きの中のコ
ンピュータを指定している部分を変更しなけばならず、
変更が困難であるという問題点があった。
【0028】本発明の目的は、アプリケーションプログ
ラム間の連携処理手続きの変更を容易にし、個々の利用
者が自分自身の利用方法に適するアプリケーションプロ
グラム間の連携処理を行えることが可能な技術を提供す
ることにある。
【0029】本発明の前記ならびにその他の目的と新規
な特徴は、本明細書の記述及び添付図面によって明らか
になるであろう。
【0030】
【課題を解決するための手段】本願において開示される
発明のうち、代表的なものの概要を簡単に説明すれば、
下記のとおりである。
【0031】ネットワーク上に複数個のコンピュータが
接続された分散システムであって、アプリケーションプ
ログラム間連携処理に関わる個々のアプリケーションプ
ログラム本体にアプリケーションプログラム間連携処理
手続きを実行するための連携インタフェースを付与した
サービスエンティティと、連携させるサービスエンティ
ティ間の移動先を表す利用順序とサービスエンティティ
の利用手続きを有するサービスエージェントと、サービ
スエージェントをそれが有する利用順序に記述された移
動先に移動させる通信路を生成、維持、管理するルーテ
ィングマネージャとを備える。
【0032】そのサービスエンティティは、受信したサ
ービスエージェントと同一の構成要素を持つ一つ以上の
サービスエージェントを複製する手段と、複製したサー
ビスエージェントを他の一つ以上のサービスエージェン
トに送信する手段と、送信した1つ以上のサービスエー
ジェントのいずれか1つのサービスエージェントがサー
ビスエンティティに受け取られた時点で受け取り通知を
他の複製されたサービスエージェントに通知する手段
と、受け取り通知を受け取ったサービスエージェントが
サービスエージェント自身を削除する手段とを備える。
【0033】そのサービスエージェントは、連携処理に
おいてアプリケーションプログラムを連携させる順序を
該当するアプリケーションプログラム本体を有するサー
ビスエンティティの利用順序として記述した利用順序情
報と、各サービスエンティティにおいて使用するアプリ
ケーションプログラムの有する機能を利用する制御手続
き情報、その制御手続き情報を用いてサービスエンティ
ティの有するアプリケーションプログラムに実際に処理
を行わせるために必要なデータを格納するデータ項目、
データ項目に格納されたデータをアプリケーションプロ
グラムに渡し、その処理結果データを該当するデータ項
目に格納する入出力データ処理手続き情報、サービスエ
ージェントの有するデータをグラフィカルユーザインタ
フェースを通して利表示するため表示手続き情報からな
る利用手続き情報とを備える。
【0034】そのルーティングマネージャは、コンピュ
ータ起動時に他のコンピュータと通信するための論理的
な通信路を確立する論理的通信路確立手段と、他のコン
ピュータとの間の該論理的通信路を切り放す手段と、他
のコンピュータからの接続要求を受け取る手段と、ルー
ティングマネージャを停止させることなく、任意のコン
ピュータ間で論理的通信路の接続先コンピュータを変更
する手段と、該ルーティングマネージャの動作するコン
ピュータ上で動作するサービスエンティティを管理する
手段と、受信したサービスエージェントの要求するサー
ビスエンティティの名称を取得して、該ルーティングマ
ネージャの動作するコンピュータ上で動作するサービス
エンティティと該サービスエージェントが要求するサー
ビスエンティティの名称を比較し、該コンピュータ上で
該サービスエージェントが要求するサービスエンティテ
ィが実行できるか否かを判定する手段と、該サービスエ
ージェントの要求するサービスエンティティが実行でき
ない場合には、論理的に接続された他のコンピュータ上
で動作しているルーティングマネージャに該サービスエ
ージェントを移動させる手段と、該サービスエージェン
トの要求するサービスエンティティが実行できる場合に
は、該サービスエンティティに該サービスエージェント
を移動させる手段とを備える。
【0035】
【作用】上述した手段によれば、分散システムを構成す
る各コンピュータ上で動作するルーティングマネージャ
は、サービスエージェントを送受信するための通信路を
確立し、ルーティングマネージャの動作しているコンピ
ュータ上で動作するサービスエンティティの名称とその
サービスエンティティとの間でサービスエージェントを
送受信するための通信路を管理する。
【0036】サービスエンティティが起動されると、サ
ービスエンティティの動作するコンピュータ上のルーテ
ィングマネージャとの間にサービスエージェントを送受
信するための通信路を確立し、ルーティングマネージャ
にサービスエンティティの名称を送り、ルーティングマ
ネージャは送られたサービスエンティティの名称とその
サービスエンティティへの通信路を管理する。
【0037】ルーティングマネージャは、他のコンピュ
ータ上で動作しているルーティングマネージャから通信
路を通して受け取ったサービスエージェントの利用順序
に指定されたサービスエンティティがそれ自身の動作す
るコンピュータ上で利用できるか否かを判定し、利用で
きる場合にはサービスエージェントを該当するサービス
エンティティに送り、利用できない場合にはサービスエ
ージェントを他のコンピュータ上のルーティングマネー
ジャに移動させる。
【0038】サービスエンティティは、通信路を通して
サービスエージェントを受け取ると、連携インタフェー
スがそのサービスエージェントの持つ利用手続きの中か
らそのサービスエンティティで使用される手続きとデー
タを取得し、取得した手続きを実行することにより、サ
ービスエンティティの有するアプリケーションプログラ
ム本体の処理を制御し、サービスエージェントの必要と
している処理結果を得、その結果をサービスエージェン
トに送り、サービスエージェント中のデータ項目に格納
する。
【0039】サービスエージェントから取得した手続き
に対応するプログラムが他のコンピュータ上にあること
が指定されている場合には、連携インタフェースはその
プログラムをサービスエンティティが動作しているコン
ピュータ上にコピーし、そのプログラムを実行すること
により、サービスエージェントの要求する手続きを実行
し、サービスエージェントの必要としている処理結果を
格納した後、サービスエンティティの連携インタフェー
スはサービスエージェントの移動先を利用順序にしたが
って変更し、通信路を通じてルーティングマネージャに
サービスエージェントを送る。
【0040】ルーティングマネージャは、サービスエン
ティティから送られたサービスエージェントの利用順序
に指定されたサービスエンティティがそれ自身の動作す
るコンピュータ上で利用できるか否かを判定し、利用で
きる場合にはサービスエージェントを該当するサービス
エンティティに送り、利用できない場合にはサービスエ
ージェントを他のコンピュータ上のルーティングマネー
ジャに移動させる。
【0041】このように、アプリケーションプログラム
間の連携処理手続きをサービスエージェントというアプ
リケーションプログラム本体とは独立した形式で与え、
アプリケーションプログラム本体に連携処理のための連
携インタフェースを付加し、この連携インタフェースが
サービスエージェントの持つ利用手続きを実行すること
によりアプリケーションプログラム間の連携処理をサー
ビスエージェントを通して容易に変更することができ
る。
【0042】また、業務に応じて、その業務を進めるた
めに必要なさまざまなアプリケーションプログラムとそ
の操作を組み合わせた利用手順を、サービスエージェン
トの中に一連の作業手順と各作業で使用されるアプリケ
ーションプログラムの利用手続きとして記述し、このサ
ービスエージェントをコンピュータネットワークに接続
されたコンピュータ上で動作している各種サービスエン
ティティの間で移動させ、サービスエージェントを受信
したサービスエンティティはサービスエージェントに記
述された利用手続きを実行することにより、あらかじめ
アプリケーションプログラム間の連携処理手続きを記述
しておかなくても、個々の利用者が自分自身の利用方法
に適するアプリケーションプログラム間の連携処理を行
えることが可能となる。
【0043】以下、本発明について、実施例とともに説
明する。
【0044】なお、実施例を説明するための全図におい
て、同一機能を有するものは同一符号を付け、その繰り
返しの説明は省略する。
【0045】
【実施例】以下、本発明の一実施例である分散システム
におけるアプリケーションプログラム本体と連携インタ
フェースから構成される複数のサービスエンティティの
間をサービスエージェントが移動しながら、サービスエ
ンティティを通してアプリケーションプログラムを連携
させ、処理を進めていくアプリケーションプログラム間
連携処理について説明する。
【0046】図1は、本実施例の分散システムの構成を
示した図である。
【0047】図1に示すように、本実施例の分散システ
ムは、コンピュータC(C1〜C3)、コンピュータ間
でデータ通信を行うためのネットワーク0、各コンピュ
ータ上で動作するアプリケーションプログラム本体AP
(AP1〜AP4)、他のアプリケーションプログラム
と連携して処理を行うための連携インタフェース30、
アプリケーションプログラム本体APに連携インタフェ
ース30を付与したもので、アプリケーションプログラ
ム間連携処理の基本となる処理単位であるサービスエン
ティティ10、各アプリケーションプログラム間を移動
し連携処理を実現するサービスエージェント20、サー
ビスエージェント20の移動する通信路及びサービスエ
ンティティとの間の通信路を確立、管理し、サービスエ
ージェント20をサービスエンティティ10間で移動さ
せるルーティングマネージャ40から構成される。
【0048】本実施例の説明上、コンピュータCの各名
称をそれぞれC1、C2、C3と記し、各アプリケーシ
ョンプログラム本体APの各名称をそれぞれAP1、A
P2、AP3、AP4と記し、各アプリケーションプロ
グラム本体AP1〜AP4を有するサービスエージェン
トの名称をそれぞれSE1、SE2、SE3、SE4と
記す。
【0049】本実施例の分散システムにおいて、コンピ
ュータ1は、図2に示すように、キーボード11やマウ
ス12などから構成される入力装置13、CPU14や
メモリ15を格納したコンピュータ本体である処理装置
16、データを表示する表示装置17、データやアプリ
ケーションプログラムを格納する外部記憶装置18、デ
ータを印刷するプリンタ19から構成される。
【0050】入力装置13は、上記以外のタブレット、
タッチパネルでも良い。
【0051】また、入力装置13には、画像データを入
力するためのスキャナ、音声を入力するためのマイクが
加えられることがある。
【0052】入力装置13のマウスは、表示装置17上
の位置を指定したり、表示装置17に表示されたいくつ
かの選択肢を含むメニューの中から選択対象を指定する
ための手段であり、このような指定手段を有する他の装
置、例えば光学式ペンやタッチパネルであっても良い。
【0053】また、表示装置17には、音声を出力する
ためのスピーカが加えられることがある。
【0054】ネットワーク0は、ネットワークに接続さ
れたコンピュータ間でデータを送受信する手段であり、
特定の場所内のネットワークである LAN( Local Area
Network )、各拠点間のネットワークである WAN( Wid
e Area Network )、ネットワーク同士を相互に接続し
たネットワークであるインターネットのいずれのネット
ワークであっても良い。
【0055】ルーティングマネージャ40は、各コンピ
ュータごとに1つづつ存在し、コンピュータ起動時に起
動される。
【0056】ルーティングマネージャ40をコンピュー
タ起動時に起動する方法としては、例えば、UNIX
(AT&Tの登録商標)のデーモンを用いる方法などが
ある。
【0057】本実施例では、上記のネットワーク0に接
続されたコンピュータC1で作成されたサービスエージ
ェント20がルーティングマネージャ40を通してネッ
トワーク0に接続されたコンピュータC2、C3間を移
動し、これらのコンピュータC2、C3上で動作するサ
ービスエンティティ10の連携インタフェース30を通
してその中のアプリケーションプログラム本体APの処
理を実行、制御し、アプリケーションプログラム間の連
携処理を行う。
【0058】このようにサービスエージェント20を用
いて複数のサービスエンティティ10を通してアプリケ
ーションプログラム本体APの実行の制御、管理を行
い、一連の作業に用いられるアプリケーションプログラ
ム間を連携して処理することにより、一連の作業を自動
化、支援する。
【0059】本発明による分散システムのアプリケーシ
ョンプログラム間連携処理では、一台以上のコンピュー
タC上で動作する2つ以上のアプリケーションプログラ
ム本体APを有するサービスエンティティ10で利用す
ることが可能であるが、本実施例では、図1に示すよう
に、3台のコンピュータと各々のコンピュータ上で動作
する4つのサービスエンティティ10をサービスエージ
ェント20を用いて連携している。
【0060】上記以外の構成で利用する場合、コンピュ
ータやアプリケーションプログラム本体APを有するサ
ービスエンティティ10の数が変更される点だけが本実
施例と異なるのみである。
【0061】本実施例では、利用者がある作業を行う際
に、アプリケーションプログラムAP1→AP2→AP
3もしくはAP4をこの順序で連携して処理させる必要
がある場合を取り挙げ、その各アプリケーションプログ
ラムの処理を行うために、AP1は項目1、項目2に格
納されたデータを用いて処理を行い、その処理結果デー
タを項目6に格納し、AP2は項目3、項目4に格納さ
れたデータを用いて処理を行い、その処理結果データを
項目7に格納し、AP3は項目4、項目6に格納された
データを用いて処理を行い、その処理結果データを項目
8に格納し、AP4は項目5に格納されたデータを用い
て処理を行い、その処理結果データを項目9に格納する
ものとする。なお、ここで示した項目1〜項目9は、後
述するサービスエージェントに示されたデータ項目であ
る。
【0062】次に、本実施例のサービスエージェント2
0について説明する。
【0063】図3は、本実施例のサービスエージェント
20の構造を説明するための図である。
【0064】図3に示すように、サービスエージェント
20は、個々のサービスエージェント20を区別するた
めの識別子201、利用順序情報(サービスエージェン
トの移動先の一覧を記述した移動先リスト202、サー
ビスエージェントが移動してきた経路を管理する移動リ
スト203、現時点でサービスエージェント20が必要
としているアプリケーションプログラム本体APを持つ
サービスエンティティ10の名称とそのサービスエンテ
ィティ10が動作しているコンピュータの名称を示す移
動先名204)と、利用処理手続き情報(連携処理を行
う複数のサービスエンティティ10が必要とする全ての
データ項目(211〜219)を列挙した全データ項目
21、全データ項目21の中の各データ項目(211〜
219)に応じた出力方法を記述したデータ出力手続き
22、全データ項目21の中の各データ項目やサービス
エンティティに応じた入力方法を記述したデータ入力手
続き23、データ出力手続き22を用いて入力されたデ
ータを処理する方法である出力データ処理手続き24、
サービスエージェント20の移動先を決定し、決定した
移動先にサービスエージェント10を送るための方法で
ある移動手続き25、各サービスエンティティ10の持
つアプリケーションプログラム本体APの実行を制御す
るための手続きである制御手続き26)とから構成され
る。
【0065】サービスエージェント20の構造のうち、
識別子201、移動先リスト202、移動リスト20
3、移動先名204は、サービスエージェント20の作
成時に必ず作成される項目である。
【0066】上記以外の全データ項目21、データ出力
手続き22、データ入力手続き23、出力データ処理手
続き24、移動手続き25、制御手続き26の各項目や
手続きは、サービスエージェント20を用いて行われる
サービスエンティティ10間の連携処理の方法ごとに異
なる要素であり、全ての要素が必ず存在するわけではな
い。
【0067】全データ項目21は、何等かの値を持つデ
ータ項目(211〜216)である入力済みデータ項目
27と、値を持たないデータ項目(217〜219)で
ある未入力データ項目28とから構成される。
【0068】入力済みデータ項目27は、サービスエー
ジェント20があるサービスエンティティ10に受け取
られた時に、そのサービスエンティティ10に渡すべき
データを格納しているデータ項目である入力データ項目
271であり、未入力データ項目は、あるサービスエン
ティティ10の実行結果データを格納するデータ項目で
ある出力データ項目281である。
【0069】例えば、図3において、アプリケーション
プログラム本体AP1が実行時に必要とするデータが項
目1(211)、項目2(212)に格納されており、
その実行結果データが項目6(216)に格納されると
すると、サービスエンティティSE1では、項目1(2
11)と項目2(212)が入力データ項目271、項
目6(216)が出力データ項目281となる。
【0070】アプリケーションプログラム本体AP2が
実行時に必要とするデータが項目3(213)、項目4
(214)に格納されており、その実行結果データが項
目7(217)に格納されるとすると、サービスエンテ
ィティSE2では、項目3(213)と項目4(21
4)が入力データ項目271、項目7(217)が出力
データ項目281となる。
【0071】アプリケーションプログラム本体AP3が
実行時に必要とするデータが項目4(214)、項目6
(216)に格納されており、その実行結果データが項
目8(218)に格納されるとすると、サービスエンテ
ィティSE3では、項目4(214)と項目6(21
6)が入力データ項目271、項目8(218)が出力
データ項目281となる。
【0072】アプリケーションプログラム本体AP4が
実行時に必要とするデータが項目5(215)に格納さ
れており、その実行結果データが項目9(219)に格
納されるとすると、サービスエンティティSE4では、
項目5(215)が入力データ項目271、項目9(2
19)が出力データ項目281となる。
【0073】このように入力データ項目271や出力デ
ータ項目281は、サービスエージェント20が受け取
られたサービスエンティティ10ごとに異なる。
【0074】データ出力手続き22には、未入力データ
項目28の中からサービスエンティティ10の持つアプ
リケーションプログラム本体APに応じた出力データ項
目281を選択するための手続きである出力データ選択
手続き221、画面から入力された値を取得するための
手続きである出力データ取得手続き222、アプリケー
ションプログラム本体APの出力結果データを取得する
ための手続きであるデータ取得手続き223、データ取
得手続き223を用いて取得されたアプリケーションプ
ログラム本体APの出力結果データを出力データ項目2
81のデータ形式に変換するための手続きである出力デ
ータ変換手続き224、出力データ取得手続き222を
用いて画面から得られた値や出力データ変換手続き22
4を用いて出力データ項目281のデータ形式に変換さ
れた値を出力データ項目281に格納するための手続き
である出力データ格納手続き225が含まれる。
【0075】データ入力手続き23には、入力済みデー
タ項目27の中からサービスエンティティ10の持つア
プリケーションプログラム本体APに応じた入力データ
項目271を選択するための手続きである入力データ選
択手続き231、入力データ選択手続き231を用いて
選択された入力データ項目271の値をアプリケーショ
ンプログラム本体APのデータ入力形式に変換するため
の手続きである入力データ変換手続き232、入力デー
タ変換手続き232を用いて変換された入力データ項目
271の値をアプリケーションプログラム本体APに渡
すための手続きであるパラメタ設定手続き233、入力
データ変換手続き232を用いて変換された入力データ
項目271の値を画面に表示するための手続きである入
力データ表示手続き234が含まれる。
【0076】出力データ処理手続き24は、出力データ
取得手続き222やデータ取得手続き223を用いて取
得されたデータを処理するための手続きである。
【0077】例えば、出力データ取得手続き222を用
いて取得された複数のデータの和を計算する処理などが
この出力データ処理手続き24に記述される。
【0078】移動手続き25は、サービスエージェント
20の移動先を決定し、決定した移動先にサービスエー
ジェント20を送るための手続きである。
【0079】この移動手続き25の移動先の決定方法に
は、サービスエージェント作成時に与えられた移動順序
に従って次の移動先を決定する方法、入力済みデータ項
目27や未入力データ項目28の中の任意のデータ項目
の組み合わせに応じてサービスエージェントの移動先を
決定する方法が挙げられる。
【0080】制御手続き26は、サービスエンティティ
10の連携インタフェース30で実行されるアプリケー
ションプログラム本体APの実行を制御するための手続
きであり、アプリケーションプログラム本体APの起動
・終了、アプリケーションプログラム本体APのコマン
ド実行、及び複数のコマンドの組み合わせである制御ス
クリプトがある。
【0081】次に、ルーティングマネージャ40につい
て説明する。
【0082】ルーティングマネージャ40は、複数のコ
ンピュータ間の論理的通信路の確立と維持、各サービス
エンティティ10との間の入出力チャネル403の確
立、維持を行うものであり、図4〜図6に各コンピュー
タ上で動作するルーティングマネージャ40により構築
される論理的な通信路の接続形態例を示す。
【0083】論理的通信路は、相互に接続された2つの
ルーティングマネージャ40を接続する論理的通信路で
あるチャネル400の組み合わせから構成される。
【0084】図4に示す例では、コンピュータC1、C
2、C3上で動作する3つのルーティングマネージャ1
0(RM1、RM2、RM3)の間で、RM1とRM
2、RM2とRM3が接続され、RM1−RM2−RM
3という論理的通信路を構成していることを表してい
る。
【0085】図5に示す例では、図4に示した論理的通
信路を構成しているルーティングマネージャ40(RM
2)に新たなルーティングマネージャ40(RM4)が
接続され、論理的通信路の構成が変化した状態を示した
図である。
【0086】図6に示す例では、ある一台のコンピュー
タ内におけるルーティングマネージャ40(RM1)と
二つのサービスエンティティ10(SE3、SE4)が
入出力チャネル403により接続された接続状態、及び
サービスエンティティ10を構成する連携インタフェー
ス30とアプリケーションプログラム本体APの間がア
プリケーションインタフェース38で接続された接続状
態を表した図である。この図6では、図1に示したコン
ピュータC3とC2の接続の例を表している。
【0087】図6に示す入出力チャネル403は、ルー
ティングマネージャ40とサービスエンティティ10を
接続した通信路であり、実際にはサービスエンティティ
10内の連携インタフェース30とルーティングマネー
ジャ40の間を接続する。
【0088】アプリケーションインタフェース38は、
サービスエンティティ10内に生成される連携インタフ
ェース30とアプリケーションプログラム本体APの入
出力を接続するインタフェースである。
【0089】ルーティングマネージャ40は、チャネル
400を接続するための受け口となるチャネルポート4
01を持ち、そのチャネルポートは、個々のチャネルポ
ート401を識別するためのチャネルポート番号を持
つ。チャネルポート番号は、ルーティングマネージャ4
0により、チャネルポート401生成時に与えられる。
【0090】すなわち、チャネル400とは2つのルー
ティングマネージャ40のチャネルポート401を接続
した通信路であり、チャネル400を生成するとは、任
意の2つのルーティングマネージャ40のチャネルポー
ト401の間を接続することである。
【0091】ルーティングマネージャ40は、そのチャ
ネル400を生成することによりチャネルポート401
が使用されると新たな空きチャネルポート402を1つ
生成する。
【0092】そのため、ルーティングマネージャ40
は、常に他と接続されていない空きチャネルポート40
2を持つことになる。
【0093】この空きチャネルポート402は、他のル
ーティングマネージャ40から接続要求がなされた場合
にそのルーティングマネージャ40との間でチャネル4
00を生成するために使用される。
【0094】ルーティングマネージャ40が生成した空
きチャネルポート402は、サービスエンティティ10
とルーティングマネージャ40を接続する際にも、ルー
ティングマネージャ40同士を接続する場合と同様に用
いられる。
【0095】すなわち、ルーティングマネージャ40と
サービスエンティティ10の間に入出力チャネル403
を生成する場合には、サービスエンティティ10が起動
されたときに新たな空きチャネルポートをサービスエン
ティティ10の連携インタフェース30に生成し、サー
ビスエンティティ10からルーティングマネージャ40
に接続要求を行い、ルーティングマネージャ40が空き
チャネルポート402とサービスエンティティ10の連
携インタフェース30の空きチャネルポートの間に入出
力チャネル403を作成し、ルーティングマネージャ4
0のみが新たな空きチャネルポート402を生成する。
【0096】ルーティングマネージャ40は、このよう
にチャネル400が生成されると、新たな空きチャネル
ポート402を1つ生成し、常に1つの空きチャネルポ
ート402が残るようにチャネルポートの管理をする。
【0097】サービスエンティティ10は、起動時にル
ーティングマネージャ40との間で入出力チャネル40
3を生成するための空きチャネルポート402を連携イ
ンタフェース30に生成し、ルーティングマネージャ4
0との間で入出力チャネル403を生成することに加
え、連携インタフェース30とアプリケーションプログ
ラム本体APの入出力を接続するためのアプリケーショ
ンインタフェース38を持ち、このアプリケーションイ
ンタフェース38を用いて連携インタフェース30とア
プリケーションプログラム本体APの間の入出力、すな
わちコマンドを連携インタフェース30からアプリケー
ションプログラム本体APにコマンドを送ったり、アプ
リケーションプログラム本体APの実行結果データを連
携インタフェース30に受け取ったりすることを行う。
【0098】また、チャネルポート401は、受信時の
バッファリング機能を持ち、チャネル400や入出力チ
ャネル403を通して送られてきたデータを読みだし要
求があるまで保持する。
【0099】図7は、ルーティングマネージャ40の構
成を説明するための図である。
【0100】ルーティングマネージャ40は、処理装置
16のメモリ15上におかれる管理テーブル作成プログ
ラム41、接続要求プログラム42、接続管理プログラ
ム43、移動管理プログラム44、接続待ちプログラム
45の各プログラムと接続先管理テーブル46、サービ
スエンティティ管理テーブル47、接続管理テーブル4
8から構成される。
【0101】処理装置16のメモリ15上におかれたル
ーティングマネージャ40が起動されると、まず管理テ
ーブル作成プログラム41が外部記憶装置18に格納さ
れている接続先コンピュータの名称の一覧を読み込み、
処理装置16のメモリ15上に接続先管理テーブル46
を作成する。
【0102】次に、ルーティングマネージャ40の動作
するコンピュータで動作するサービスエンティティの名
称の一覧を読み込み、処理装置16のメモリ15上にサ
ービスエンティティ管理テーブル47を作成する。
【0103】接続要求プログラム42は、管理テーブル
作成プログラム41により処理装置16のメモリ15上
に作成された接続先管理テーブル46に格納されたコン
ピュータ名の一覧の先頭から順に接続先コンピュータ名
を取得し、その接続先コンピュータに対して接続を要求
する。
【0104】接続ができない場合には、次の接続先コン
ピュータ名を取得し、接続ができるまで順次接続要求を
行う。
【0105】また、接続先管理テーブルに格納された接
続先コンピュータ名がなくなるまで、順次、接続要求を
行っても接続できない場合、エラーメッセージを出力
し、処理を終了する。
【0106】接続管理プログラム43は、接続要求プロ
グラム42により接続されたコンピュータ(接続先コン
ピュータ)と接続が完了したことを受け取ると、接続先
コンピュータに接続要求を行ったコンピュータ(接続元
コンピュータ)のコンピュータ名を送信し、接続先コン
ピュータから接続先コンピュータ名が送信されてくるの
を待つ。
【0107】接続先コンピュータから送られた接続先コ
ンピュータ名を受け取ると、その接続先コンピュータの
名称と接続先コンピュータに接続されたチャネル400
のチャネルポート番号のペアを接続管理テーブル48に
格納する。
【0108】接続待ちプログラム45がチャネルポート
番号を受け取ったことにより制御が渡されてきた場合、
そのチャネルポート番号から接続元コンピュータ名、も
しくはサービスエンティティ10の名称が送られてくる
のを待つ。
【0109】接続元コンピュータ名、もしくはサービス
エンティティ10の名称を受け取るとその名称とその間
に接続された論理的通信路のチャネルポート番号のペア
を接続管理テーブル48に格納し、送られてきた名称が
接続元コンピュータ名の場合にはその接続元コンピュー
タにたいして接続先コンピュータ名を送信する。
【0110】移動管理プログラム44は、接続管理プロ
グラム43が接続元コンピュータ名またはサービスエン
ティティ10の名称とチャネルポート番号のペアを接続
管理テーブル48に格納するか、ある一定時間の間に接
続要求がなされなかった場合に起動される。
【0111】移動管理プログラム44は、接続管理テー
ブル48の先頭から順にチャネルポート番号を取得し、
そのチャネルポート番号401に接続されたチャネル4
00からサービスエージェント20を読み出し、読み出
したサービスエージェント20の移動先名204に指定
されたサービスエンティティの名称が接続管理テーブル
48に格納されているか否かをチェックする。
【0112】格納されている場合には、そのサービスエ
ージェント20をサービスエンティティ30に送る。
【0113】格納されていない場合には、接続されてい
る他のルーティングマネージャ40を接続管理テーブル
48から検索し、その結果得られたルーティングマネー
ジャ40にそのサービスエージェント20を送る。
【0114】そして、チャネル400から読み出すサー
ビスエージェント20がない場合には、次のチャネルポ
ート番号401に接続されたチャネル400から同様に
サービスエージェント20を読み出す。これを接続管理
テーブル48に格納されたチャネルポート番号401が
なくなるまで繰り返す。
【0115】接続管理テーブル48に格納されたチャネ
ルポート番号の全てについて順次読み出しを行うと次の
接続待ちプログラム45に制御を渡す。
【0116】接続待ちプログラム45は、ある一定時間
他のルーティングマネージャ40もしくはサービスエン
ティティ10からの接続要求を待つ。
【0117】ある一定時間の間に接続要求があれば、そ
の接続要求元のルーティングマネージャ40との間でチ
ャネル400を接続するか、接続要求元のサービスエン
ティティ10との間で入出力チャネル403を接続し、
新たな空きチャネルポート402を生成し、新たに接続
されたチャネル400の接続されたチャネルポート40
1のチャネルポート番号を接続管理プログラム43に送
る。
【0118】ある一定時間の間に接続要求がなければ、
移動管理プログラム44に制御を渡す。
【0119】次に、その接続先管理テーブル46とサー
ビスエンティティ管理テーブル47と接続管理テーブル
48の構成について説明する。
【0120】図8(a)に接続先管理テーブル46の構
成を、図8(b)にサービスエンティティ管理テーブル
47の構成を、図8(c)に接続管理テーブル48の構
成の例を示す。
【0121】図8(a)に示す接続先管理テーブル46
は、接続先のコンピュータの名称の一覧を保持する接続
先コンピュータ名フィールド460を持つ。
【0122】接続先コンピュータ名フィールド460
は、ルーティングマネージャ40の起動時に接続要求を
行うコンピュータの名称であるコンピュータ名461を
値(ここでは、C1とC3)として持つ。
【0123】図8(b)に示すサービスエンティティ管
理テーブル47は、ルーティングマネージャ40の動作
するコンピュータ上で動作するサービスエンティティ1
0の名称の一覧を保持するサービスエンティティ名フィ
ールド470を持つ。
【0124】サービスエンティティ名フィールド470
は、ルーティングマネージャ40の動作するコンピュー
タ上で動作するサービスエンティティ10の名称471
を値(ここでは、SE3とSE4)として持つ。
【0125】図8(c)に示す接続管理テーブル48
は、チャネル400により接続された他のルーティング
マネージャ40の動作するコンピュータの名称や入出力
チャネル403により接続されたサービスエンティティ
10の名称を保持する接続先名称フィールド480と、
それらの接続先との接続に用いられているチャネル40
0や入出力チャネル403が接続されているチャネルポ
ート401のチャネルポート番号を保持するチャネルポ
ート番号フィールド481と、接続先がルーティングマ
ネージャ40であるかサービスエンティティ10である
かを区別するための接続先種別フィールド484とを持
つ。
【0126】接続先フィールド480は、ルーティング
マネージャ40にチャネル400や入出力チャネル40
3を用いて接続されている接続先名482を値(ここで
は、C1とSE3とSE4)として持つ。
【0127】チャネルポート番号フィールド481はチ
ャネル400や入出力チャネル403が接続されている
チャネルポート番号483(ここでは、1と2と3)を
接続先名482に対応付けて持つ。
【0128】接続先種別フィールド484は、チャネル
の接続先がルーティングマネージャであることを示すル
ーティングマネージャ、サービスエンティティであるこ
とを示すサービスエンティティのどちらか一方の値を取
る。この2つの値をあわせて接続先種別名485とす
る。ここでは、ルーティングマネージャとサービスエン
ティティである。
【0129】次に、本実施例の連携インタフェース30
の構成について説明する。
【0130】図9は、本実施例の連携インタフェース3
0を実現するための処理装置16におけるプログラムの
構造を示した図である。
【0131】本実施例の連携インタフェース30は、処
理装置16のメモリ15上におかれるデータ選択プログ
ラム31、データ出力プログラム32、実行制御プログ
ラム33、データ取得プログラム34、データ格納プロ
グラム35、移動先操作プログラム36、関数制御プロ
グラム37の各プログラムと関数テーブル371、操作
手続き管理テーブル39から構成される。
【0132】連携インタフェース30は、入出力チャネ
ル403を通じてサービスエージェント20を受け取る
と、受け取ったサービスエージェント20をデータ作成
プログラム31に渡す。
【0133】データ選択プログラム31は、受け取った
サービスエージェント20の中の入力データ選択手続き
231を用いて、入力済みデータ項目27の中からアプ
リケーションプログラム本体APに渡すデータを格納し
ているデータ項目である入力データ項目271を選択す
る。
【0134】入力データ項目271が決定されると、サ
ービスエージェント20の中の入力データ変換手続き2
32を用いて、入力データ項目271に格納されている
データからアプリケーションプログラム本体APに渡す
データ、もしくは画面に出力するデータを作成し、どち
らのデータであるかのタグを付加し、データ出力プログ
ラム32に作成したデータを渡す。
【0135】データ出力プログラム32にデータが渡さ
れると、データ出力プログラム32は受け取ったデータ
のタグからデータを画面に出力するか、アプリケーショ
ンプログラム本体APに送るかを判定し、画面に出力す
る場合にはサービスエージェント(20)の入力データ
表示手続き234を用いて画面に出力する。
【0136】アプリケーションプログラム本体APに渡
す場合、データを実行制御プログラム33に渡す。
【0137】サービスエージェント20に記述された入
力データ手続き234が、プログラムではなく単なる関
数名だけの場合、データ出力プログラム32は、関数制
御プログラム37にその関数名を渡す。
【0138】関数制御プログラム37は、関数名を受け
取ると、関数テーブル371からその関数名に該当する
関数を検索し、検索したプログラムを実行する。
【0139】実行制御プログラム33は、データ出力プ
ログラム32からのデータを受け取ると、サービスエー
ジェント20の制御手続き26を実行してアプリケーシ
ョンプログラム本体APの実行を制御する。
【0140】アプリケーションプログラム本体APを実
行する際に、アプリケーションプログラム本体APにデ
ータを渡す必要がある場合には、サービスエージェント
20のパラメタ設定手続き233を用いてアプリケーシ
ョンプログラム本体APにデータを送る。
【0141】アプリケーションプログラム本体APの実
行を制御し、制御手続きの実行が終了すると、サービス
エージェント20のデータ取得手続き223を用いてア
プリケーションプログラム本体APの実行結果データを
取得し、取得したデータをデータ取得プログラム34に
渡す。
【0142】制御手続き26が関数名のみであったり、
制御手続き26の中に関数名のみの処理が含まれている
場合には、その関数名を関数制御プログラム37に渡
し、該当する関数のプログラムを実行する。
【0143】データ取得プログラム34は、実行結果デ
ータを受け取るとサービスエージェント20の入力デー
タ選択手続き221を用いてサービスエージェント20
の全データ項目21の中からアプリケーションプログラ
ム本体APの実行結果データを格納するデータ項目であ
る出力データ項目281を選択する。
【0144】画面が出力されている場合には、サービス
エージェント20の出力データ取得手続き222を用い
て画面に入力されたデータのうち、必要なデータのみを
取得する。
【0145】これらの取得したデータ(アプリケーショ
ンプログラム本体APの実行結果データ、画面からの入
力データ)と出力データ項目281を、データ格納プロ
グラム35に渡す。
【0146】サービスエージェント20に記述された出
力データ取得手続き222が、プログラムではなく単な
る関数名だけの場合、データ取得プログラム34は、関
数制御プログラム37にその関数名を渡し、該当する関
数名の関数のプログラムを実行する。
【0147】データ格納プログラム35は、データ取得
プログラム34からのデータと出力データ項目281を
受け取ると、サービスエージェント20の出力データ処
理手続き24を参照し、出力データ処理手続き24があ
れば、その出力データ処理手続き24を用いて、受け取
ったデータ及び全項目データ21に格納されているデー
タを処理し、処理後のデータを出力データ変換手続き2
24を用いて、受け取った出力データ項目281のデー
タ形式に変換し、変換したデータを出力データ項目28
1のそれぞれのデータ項目に格納する。
【0148】出力データ処理手続き24がない場合に
は、出力データ変換手続き224を用いて、受け取った
出力データ項目281のデータ形式に変換し、変換した
データを出力データ項目281のそれぞれのデータ項目
に格納する。
【0149】移動先操作プログラム36は、出力データ
項目281にデータが格納されると呼び出され、移動先
リスト202の一覧から先頭要素を取りだしそれを移動
先名204に格納し、移動先名204を更新したサービ
スエージェント20を入出力チャネル403を通してル
ーティングマネージャ40に送る。
【0150】また、特殊な場合として、サービスエージ
ェント20の構成要素をサービスエージェントを受け取
ったサービスエンティティ10もしくはサービスエンテ
ィティ10の動作するコンピュータCに応じて変更する
場合は、その変更する構成要素を、図10に示すような
条件判定を含む記述形式で記述し、格納しておく。
【0151】上記各プログラム(31〜35)では、上
述したように、サービスエージェント20の中の該当す
る手続きを用いて処理を行うが、その際、そのサービス
エージェント20の中の該当する手続きが、図10に示
すような、条件判定を含む形式で記述されている場合に
は、手続きを実行する前に、まず、取得した条件判定を
含む手続き1801を実行する。
【0152】この条件判定を含む手続きは、連携インタ
フェース30が持っている情報である、動作しているコ
ンピュータ名及びサービスエンティティ名(これらの各
値はサービスエンティティ起動時に取得される)の各々
の値を用いて条件1802を評価する。
【0153】評価結果が真であれば、手続き1803を
実行する。偽であれば、手続き名1804に相当する手
続きをサービスエンティティ10もしくは関数テーブル
371から該当する手続き名を持つ手続きを検索し、そ
の手続きを実行する。
【0154】サービスエンティティ10やサービスエン
ティティ10の動作するコンピュータに応じて処理を変
更しない場合には、処理手続き1803のみが記述され
る。
【0155】これにより、サービスエージェント20の
構成要素をサービスエンティティ10もしくは、コンピ
ュータに応じて変更することが可能になる。
【0156】さらに、データ出力プログラム32におい
て、図11に示すようなグラフィカルユーザインタフェ
ース(ウィンドウ、ボタンウィンドウ、ラベルウィンド
ウ、テキスト入力ウィンドウ、テキスト出力ウィンド
ウ、ビットマップウィンドウ、画像表示ウィンドウ、動
画表示ウィンドウ、ライン)を動的に構成し、データを
表示するようにしてもよい。
【0157】この場合は、入力データ表示手続き234
に、入力データ項目にそのデータ項目の値をグラフィカ
ルユーザインタフェースに表示するための組み合せ手続
きを付与したものを格納する。
【0158】図12(a)は、その入力データ項目と組
み合せ手続きの記述形式を示した図である。
【0159】図12(a)に示すように、入力データ項
目とそのデータ項目の値をグラフィカルユーザインタフ
ェースに表示するための組み合せ手続きは、入力データ
項目の項目名1601とその項目名に格納されている値
を表示するための組み合せ手続 き1602のペアとし
て、入力データ表示手続き234中に記述される。
【0160】項目名に関係なく画面に出力する場合に
は、項目名にdafultを指定する。
【0161】この場合、データ出力プログラム32は、
入力データ表示手続き234を受け取ると項目名160
1と組み合せ手続き1602のペアを先頭から取り出
し、その項目名1601がdefaultであれば、その取り
出した組み合せ手続き1602を実行し、グラフィカル
ユーザインタフェースを作成する。
【0162】項目名1601がdefault以外であれば、
項目名1601に指定された入力データ項目の値を組み
合せ手続きを用いて実行し、組み合せ手続きに指定され
たようにグラフィカルユーザインタフェースを構成し、
データを出力する。
【0163】図12(b)は、図11に示すグラフィカ
ルユーザインタフェースの入力データ表示手続き234
の1例を示した図である。
【0164】この時、入力データ項目は項目1と項目2
であり、それぞれの項目の値は、リスト(a b c)
と数値12であるとする。
【0165】図12(a)に示した例では、データ出力
プログラム32は、図12(b)に示したような入力デ
ータ表示手続きを受け取ると、まず、その先頭の項目名
と組み合せ手続きのペア1621を取得する。
【0166】項目名と組み合せ手続きのペア1621の
項目名がdefaultであるので、その組み合せ手続きを実
行する。
【0167】この時の組み合せ手続きは、ウィンドウ表
示関数1611であるので、この関数を実行することに
より、図11のウィンドウ1501が表示装置17に表
示される。表示したウィンドウ1501の識別子が変数
idに格納される。
【0168】次に、データ出力プログラム32は、次の
項目名と組み合せ手続きのペア1622を取得する。
【0169】このペア1622の項目が項目1であるの
で、項目1の値を用いて、組み合せ手続きを実行する。
【0170】この組み合せ手続きは、まず項目1の値が
空が否かチェックされ、空でなければその先頭要素aを
取り出し、それを変数datdの値aをボタンウィンドウ表
示関数1612を用いてウィンドウ1501上にボタン
1502を表示する。表示されたボタンの識別子は変数
id1に格納される。
【0171】次に、y座標の表示位置を更新し、ボタン
1502が押されたときの処理を関数set-scriptを用い
て登録し、項目1の先頭要素を除いた要素(bc)を項
目1の値とする。
【0172】同様にして、項目1の値が空になるまでボ
タンウィンドウ表示関数1612を用いてウィンドウ1
501上にボタン1502,1504を表示する。
【0173】次に、データ出力プログラム32は、次の
項目名と組み合せ手続きのペア1623を取得する。こ
のペア1623の項目名が項目2であるので、項目2の
値を用いて、組み合せ手続きを実行する。
【0174】この組み合せ手続きは、テキスト入力ウィ
ンドウ表示関数であるので、この関数を用いて項目2の
値をウィンドウ1501上のテキスト入力ウィンドウ1
506に表示する。表示されたテキスト入力ウィンドウ
1506の識別は変数id2に格納される。
【0175】次に、データ出力プログラム32は、次の
項目名と組み合せ手続きのペア1624を取得する。
【0176】このペア1624の項目名がdefaultであ
るので、組み合せ手続きを実行し、ウィンドウ1501
上にボタン1505を表示し、その識別子を変数id3に
格納し、このボタンが押されたときの処理手続き163
3を関数set-scriptは指定されたidと処理手続きを図1
3に示す操作処理手続き管理テーブル39の識別子フィ
ールド1701、操作処理手続きフィールド1702に
それぞれ格納する。
【0177】この操作処理手続き管理テーブル39は、
識別子を格納する識別子フィールド1701とその識別
子のウィンドウ基本部品が選択されたときに実行される
プログラムを格納する操作処理手続きフィールド170
2からなる。
【0178】入力データ表示手続き234の実行が終了
すると、実行制御プログラム33に制御を渡す。
【0179】実行制御プログラム33では、サービスエ
ージェント20の制御手続き26を実行して画面の入出
力の実行制御をする。表示装置17に表示されたグラフ
ィカルユーザインタフェースの基本部品が、マウス12
により選択されると、ウィンドウシステムを経由してマ
ウス12により選択された基本部品の識別子が実行制御
プログラム33に伝えられる。
【0180】実行制御プログラム33は、ウィンドウシ
ステムからの識別子を受け取ると、受け取った識別子が
操作処理手続き管理テーブル39の識別子フィールド1
701に格納された識別子1703の中に存在するかを
検索し、存在すればそのプログラム1704を実行す
る。
【0181】受け取った識別子が操作処理手続き管理テ
ーブル39の識別子フィールド1701に存在しなけれ
ば、なにもしないで次の識別子がウィンドウシステムか
ら送られるのを待つ。
【0182】ウィンドウシステムから表示装置17に表
示した画面の終了要求が発生すると、データ取得プログ
ラム34に制御を渡す。
【0183】データ取得プログラム34は、サービスエ
ージェント20の出力データ取得手続き222を用いて
画面に入力されたデータの中で必要なデータを取得し、
操作処理手続き管理テーブル39をクリアし、取得した
データと出力データ項目281をデータ格納プログラム
に渡す。
【0184】このグラフィカルユーザインタフェース表
示手続きを設けることにより、利用者の画面の入力にお
ける操作性を向上できる。
【0185】次に、その関数テーブル371と移動先リ
スト202と移動リスト203について説明する。
【0186】図14(a)に関数制御プログラム37の
使用する関数テーブル371の構造を示す。
【0187】図14(a)に示すように、関数テーブル
371は、関数名フィールド372と関数の処理プログ
ラム本体である処理フィールド373とからなる。
【0188】処理フィールド373は、関数の処理内容
を記述したプログラム373a、または、関数の処理内
容を記述したプログラムの格納位置373bのいずれか
が記述される。
【0189】関数制御プログラム37は、該当する関数
名の処理フィールド373がプログラム373aであれ
ば、そのプログラムを実行する。
【0190】一方、プログラムの格納位置373bであ
る場合は、その格納位置にあるプログラム374をネッ
トワーク0を通じて処理装置16のメモリ15上に読み
込んだ後、そのプログラムを実行する。
【0191】プログラムの格納位置373bは、図14
(b)に示す記述形式により指定される。
【0192】プログラムの格納位置373bは、プログ
ラムの格納されているコンピュータの名称375aと、
コンピュータ名375aで指定されたコンピュータ上の
プログラムの格納位置を表す格納パス375cと、コン
ピュータ名375aと格納パス375bを区別するため
の区切り記号375bとを用いて、図14(b)2示す
ように、コンピュータ名375a、区切り記号:375
b、格納パス375cの形式で指定する。
【0193】図15(a)は、サービスエージェント2
0の移動先リスト202の記述形式を、図15(b)
は、その具体的記述例を示した図である。
【0194】移動先リスト202は、サービスエージェ
ント20を移動する先のコンピュータの名称である移動
先コンピュータ名912、移動先のコンピュータで利用
するサービスエンティティ10の名称であるサービスエ
ンティティ名913の組みである移動先911を、サー
ビスエージェント20の移動順序に従って矢印(→)で
つないだものである。
【0195】移動先のコンピュータ名が分からない場合
には、移動先コンピュータ名912に Unknown
を指定する。
【0196】図15(b)に示すように、サービスエー
ジェント20は、C1という名称のコンピュータのSE
1という名称のサービスエンティティ10の持つアプリ
ケーションプログラム本体AP1を用いて処理を行った
後、C2という名称のコンピュータのSE2という名称
のサービスエンティティ10の持つアプリケーションプ
ログラム本体AP2を用いて処理を行い、次にC3とい
う名称のコンピュータのSE3という名称のサービスエ
ンティティ10の持つアプリケーションプログラム本体
AP3を用いて処理を行い、最後にサービスエンティテ
ィ10(SE4)の動作するコンピュータ名は不明であ
るが、SE4という名称のサービスエンティティ10の
持つアプリケーションプログラム本体AP4を用いて処
理を行うことを示している。
【0197】図16(a)は、サービスエージェント2
0の移動リスト203の記述形式を、図16(b)は、
その具体的記述例を示した図である。
【0198】図16(a)に示すように、移動リスト2
03は、移動先コンピュータ名912がUnknown
の時に用いられる。
【0199】移動先コンピュータ名912がUnkno
wnの場合、各コンピュータのルーティングマネージャ
40は、サービスエージェント20の移動先名204に
指定されている名称を持つサービスエンティティ10が
存在するか否かをチェックし、存在しない場合、そのコ
ンピュータの名称を移動コンピュータ名102に格納
し、他のコンピュータ上のルーティングマネージャ40
にサービスエージェント20を送る。
【0200】移動リスト203は、移動先コンピュータ
名912がUnknownの場合に、サービスエージェ
ント20の移動先名204に指定されているサービスエ
ンティティ10が存在しないコンピュータの名称をサー
ビスエージェント20が移動してきた順序に従って矢印
(→)で繋いだものである。
【0201】移動リスト203は、サービスエージェン
ト20が、移動するたびにそのコンピュータ名が順次、
追加されていき、サービスエージェント20の移動先名
204に指定されているサービスエンティティ10が動
作するコンピュータが見つかった場合にクリアされる。
【0202】図16(b)の例では、サービスエージェ
ント20の移動先名204に指定されているサービスエ
ンティティ10が、C1という名称のコンピュータに存
在せず、次のC2という名称のコンピュータにも存在し
なかったことを示している。
【0203】次に、本実施例のサービスエージェント2
0を用いたアプリケーションプログラム間の連携処理を
実現するためにルーティングマネージャ40が行うサー
ビスエージェント20の移動処理のフローを図17〜図
20に示す。
【0204】サービスエージェント20は、それが作成
されたコンピュータのルーティングマネージャ40に送
られる。この時点で、サービスエージェント20の移動
先リスト202の値は図14(b)に示した移動順序で
あるとする。この時のサービスエージェント20の移動
先名204の値は、移動先リスト202の先頭の要素S
E1(911a)となっている。
【0205】本実施例のサービスエージェント20の移
動処理は、ルーティングマネージャ40は、サービスエ
ージェント20を受け取ると(ステップ1100)、ま
ず、サービスエージェント20の移動先名204の移動
先コンピュータ名がルーティングマネージャ40の動作
しているのコンピュータ名と同じか否かをチェックする
(ステップ1101)。
【0206】サービスエージェント20の移動先名20
4の移動先コンピュータ名とルーティングマネージャ4
0の動作しているコンピュータ名が異なる場合、接続管
理テーブル48の接続先種別フィールド484の接続先
種別名485がルーティングマネージャである接続先の
中から、接続先名称フィールド480の接続先名482
が移動先コンピュータ名と同じ接続先が登録されている
か否かをチェックする(ステップ1102)。
【0207】移動先コンピュータ名が登録されている場
合、その移動先コンピュータ名に該当する接続先名48
2のチャネルポート番号フィールド481に格納されて
いるチャネルポート番号483を取りだし(ステップ1
103)、そのチャネルポート番号483に接続されて
いるチャネル400を通して移動先コンピュータのルー
ティングマネージャ40にサービスエージェント20を
送る(ステップ1104)。
【0208】登録されていない場合、接続管理テーブル
48の接続先種別フィールド484の接続先種別名48
5がルーティングマネージャである接続先の中から、最
初に登録されている接続先名482のチャネルポート番
号フィールド481に格納されているチャネルポート番
号483を取りだし(ステップ1105)、そのチャネ
ルポート番号に接続されたチャネル400を通してチャ
ネルに接続されている登録先コンピュータのルーティン
グマネージャ40にサービスエージェント20を送る
(ステップ1106)。
【0209】サービスエージェント20の移動先名20
4の移動先コンピュータ名912とルーティングマネー
ジャ40の動作しているコンピュータ名が同じである場
合、接続管理テーブル48の接続先種別フィールド48
4に格納されている接続先種別名485がサービスエン
ティティである接続先の中から接続先名称フィールド4
80の接続先名482が移動先名204のサービスエン
ティティ名913と同じサービスエンティティが登録さ
れているか否かをチェックする(ステップ1107)。
【0210】登録されていれば、その登録されているサ
ービスエンティティのチャネルポート番号フィールド4
81に格納されているチャネルポート番号483を取得
し(ステップ1108)、そのチャネルポート番号48
3に接続されている入出力チャネル403を通して、サ
ービスエンティティ20の連携インタフェース30にサ
ービスエージェント20を送る(ステップ1109)。
【0211】サービスエンティティ名が接続管理テーブ
ル48に登録されていなければ、サービス管理テーブル
47にサービスエンティティ名が登録されているか否か
をチェックする(ステップ1110)。
【0212】サービス管理テーブル47にサービスエン
ティティ名が登録されていれば、そのサービスエンティ
ティ10を起動する(ステップ1111)。
【0213】起動されたサービスエンティティ10の連
携インタフェース30は、ルーティングマネージャ40
に接続要求を行う。ルーティングマネージャ40は、サ
ービスエンティティ10の連携インタフェース30から
の接続要求を待ち(ステップ1112)、接続要求を受
け取るとルーティングマネージャ40と連携インタフェ
ース30間の入出力チャネル403を生成し(ステップ
1113)、起動したサービスエンティティ名とその入
出力チャネル403のチャネルポート番号を接続管理テ
ーブル48に登録し(ステップ1114)、生成した入
出力チャネル403を通してサービスエージェント20
をサービスエンティティ10の連携インタフェース30
に送る(ステップ1109)。
【0214】サービス管理テーブル47にサービスエン
ティティ名が登録されていなければ、サービスエージェ
ント20の移動先名204の移動先コンピュータ名91
2をUnknownに変更し(ステップ1115)、接
続管理テーブル48の接続先種別フィールド484の接
続先種別名485がルーティングマネージャである接続
先の中から、最初に登録されている接続先名482のチ
ャネルポート番号フィールド481に格納されているチ
ャネルポート番号483を取りだし(ステップ110
5)、そのチャネルポート番号に接続されたチャネル4
00を通してチャネルに接続されている登録先コンピュ
ータのルーティングマネージャ40にサービスエージェ
ント20を送る(ステップ1106)。
【0215】サービスエージェント20の移動先名20
4の移動先コンピュータ名912がUnknownの場
合、移動先名204のサービスエンティティ名が、接続
管理テーブル48の接続先種別フィールド484の接続
先種別名485がサービスエンティティである接続先の
中から接続先名称フィールド480の接続先名482が
サービスエージェント20の移動先名204のサービス
エンティティ名と同じ接続先が登録されているか否かを
チェックする(ステップ1115)。
【0216】登録されていれば、その登録されているサ
ービスエンティティのチャネルポート番号フィールド4
81に格納されているチャネルポート番号483を取得
し(ステップ1116)、取得したチャネルポート番号
483に接続されている入出力チャネル403を通し
て、サービスエンティティ20の連携インタフェース3
0にサービスエージェント20を送る(ステップ111
7)。
【0217】サービスエンティティ名が接続管理テーブ
ル48に登録されていなければ、次にサービス管理テー
ブル47にサービスエンティティ名が登録されているか
否かをチェックする(ステップ1118)。
【0218】サービス管理テーブル47にサービスエン
ティティ名が登録されていれば、そのサービスエンティ
ティ10を起動する(ステップ1119)。
【0219】起動されたサービスエンティティ10の連
携インタフェース30は、ルーティングマネージャ40
に接続要求を行う。ルーティングマネージャ40は、サ
ービスエンティティ10の連携マネージャ30からの接
続要求を待ち(ステップ1120)、接続要求を受け取
るとルーティングマネージャ40と連携インタフェース
30間の入出力チャネル403を生成し(ステップ11
21)、起動したサービスエンティティ名とその入出力
チャネル403のチャネルポート番号を接続管理テーブ
ル48に登録し(ステップ1122)、生成した入出力
チャネル403を通してサービスエージェント20をサ
ービスエンティティ10の連携インタフェース30に送
る(ステップ1117)。
【0220】接続管理テーブル48、サービス管理テー
ブル47のいずれのテーブルにも登録されていなけれ
ば、接続管理テーブル48の接続先種別フィールド48
4の接続先種別名485がルーティングマネージャであ
る接続先があるか否かチェックする(ステップ112
3)。
【0221】接続先が登録されていれば、その中の最初
に登録されている接続先名482を取りだし(ステップ
1124)、その接続先名482が移動リスト203に
移動コンピュータ名102にあるか否かをチェックする
(ステップ1125)。
【0222】移動リスト203になければ、移動リスト
203の移動コンピュータ名102に現在のコンピュー
タの名称を追加し(ステップ1126)、追加した移動
リスト203をサービスエージェント20に格納し(ス
テップ1127)、その接続先名482のチャネルポー
ト番号フィールド481に格納されているチャネルポー
ト番号483を取りだし(ステップ1128)、そのチ
ャネルポート番号に接続されたチャネル400を通して
チャネルに接続されているコンピュータのルーティング
マネージャ40にサービスエージェント20を送る(ス
テップ1129)。
【0223】移動リスト203にあれば、接続管理テー
ブル48の接続先種別フィールド484の接続先種別名
485がルーティングマネージャである次の接続先があ
るか否かチェックする(ステップ1123)。
【0224】次の接続先が接続管理テーブル48に登録
されていれば、その接続先名482を取りだし(ステッ
プ1124)、その接続先名482がサービスエージェ
ント20に格納されている移動リスト203の移動コン
ピュータ名102にあるか否かをチェックする(ステッ
プ1125)。
【0225】これを接続管理テーブル48の接続先種別
フィールド484の接続先種別名485がルーティング
マネージャである接続先がなくなるか、移動リスト20
3にない接続先名482が見つかるまで順次繰り返す。
【0226】その結果、接続管理テーブル48の接続先
種別フィールド484の接続先種別名485がルーティ
ングマネージャである接続先がなくなった場合、エラー
としてそのサービスエージェント20の移動を終了する
(ステップ1130)。
【0227】サービスエージェント20を受け取ったサ
ービスエンティティ10の連携インタフェース30は、
受け取ったサービスエージェント20に記述されている
データ入力手続き23を実行しサービスエージェント2
0からサービスエンティティ10に送るデータを取得し
(ステップ1131)、制御手続き26を実行して、そ
のサービスエンティティ10の持つアプリケーションプ
ログラム本体APの実行を制御し(ステップ113
2)、その実行結果データをサービスエージェント20
のデータ出力手続き22を実行してサービスエージェン
ト20に格納し(ステップ1133)、サービスエージ
ェント20の移動手続き25を実行して移動先名204
の値を次の移動先に書き換え(ステップ1134)、移
動先名204の値を書き換えたサービスエージェント2
0を、連携インタフェース30からルーティングマネー
ジャ40へ入出力チャネル403を通して送る(ステッ
プ1135)。
【0228】ルーティングマネージャ40は、連携イン
タフェース30から送られたサービスエージェント20
を入出力チャネル403を通して受け取ると(ステップ
1100)、チャネル400を通してサービスエンティ
ティ20を受け取ったときと同様に、移動先名204の
移動先コンピュータ名912をチェックし(ステップ1
101)、サービスエージェント20を次の移動先にチ
ャネル400を通して送る(ステップ1104)。
【0229】このサービスエージェントの移動処理をサ
ービスエージェント20の移動先リスト202の最後の
要素になるまで、ルーティングマネージャ10間で繰り
返すことにより、サービスエージェント20をサービス
エンティティ10間で移動させ、移動させたサービスエ
ージェント20をサービスエンティティ10の連携イン
タフェース30で処理することにより各アプリケーショ
ンプログラム本体APの実行を制御する。
【0230】次に、図21〜図24にサービスエンティ
ティ10の連携インタフェース30において、受け取っ
たサービスエージェント20の持つデータや手続きを利
用しながら、アプリケーションプログラム本体APの実
行を制御するための処理フローを示す。
【0231】連携インタフェース30は、入出力チャネ
ル403を通じてルーティングマネージャ10からサー
ビスエージェント20を受け取ると(ステップ120
0)、受け取ったサービスエージェント20の入力デー
タ選択手続き231を実行して入力済みデータ項目27
の中からアプリケーションプログラム本体APに渡すデ
ータを格納しているデータ項目である入力データ項目2
71を決定する(ステップ1201)。
【0232】入力データ項目271が決定されると、サ
ービスエージェント20の入力データ変換手続き232
がプログラムであるか関数名であるかをチェックする
(ステップ1202)。
【0233】入力データ変換手続き232がプログラム
であれば、その入力データ変換手続き232がアプリケ
ーションプログラム本体APへのデータ入力関数か画面
出力関数かをチェックし(ステップ1203)、データ
入力関数であれば、その関数を実行して、入力データ項
目271に格納されているデータからアプリケーション
プログラム本体APに渡すデータを生成する(ステップ
1204)。
【0234】画面出力関数であれば、その関数を実行し
て、入力データ項目271に格納されているデータから
画面に出力するデータを作成する(ステップ120
5)。
【0235】そして、生成されたデータには、どちらの
データであるかを示すタグが付加される(ステップ12
06)。
【0236】入力データ変換手続き232が関数名であ
れば、その関数名のプログラムを関数制御プログラム3
7を通して関数テーブルから取得し(ステップ120
7)、取得した関数がアプリケーションプログラム本体
APへのデータ入力関数か画面出力関数かをチェックす
る(ステップ1203)。
【0237】タグが付加されたデータは、タグからデー
タを画面に出力するか、アプリケーションプログラム本
体APに渡すかが判定され(ステップ1208)、画面
に出力するデータの場合にはサービスエージェント20
の入力データ手続き234がプログラムであるか関数名
であるかがチェックされる(ステップ1209)。
【0238】入力データ手続き234がプログラムであ
れば、その入力データ手続き234を実行し、画面出力
データを画面に出力する(ステップ1210)。
【0239】入力データ手続き234が関数名であれ
ば、その関数名のプログラムを関数制御プログラム37
を通して関数テーブルから取得し(ステップ121
1)、取得した関数を実行し、画面出力データを画面に
出力する(ステップ1210)。
【0240】アプリケーションプログラム本体APに渡
すデータの場合、そのデータのタグを削除する(ステッ
プ1212)。
【0241】次に、サービスエージェント20の制御手
続き26がプログラムであるか関数名であるかがチェッ
クされる(ステップ1213)。
【0242】制御手続き26がプログラムであれば、そ
の制御手続き26を実行することにより、アプリケーシ
ョンプログラム本体APの実行を制御する(ステップ1
214)。
【0243】制御手続き26が関数名であれば、その関
数名のプログラムを関数制御プログラム37を通して関
数テーブルから取得し(ステップ1215)、取得した
関数を実行することにより、アプリケーションプログラ
ム本体APの実行を制御する(ステップ1214)。
【0244】制御手続き26によりアプリケーションプ
ログラム本体APの実行制御が終了すると、サービスエ
ージェント20のデータ取得手続き223がプログラム
であるか関数名であるかがチェックされる(ステップ1
216)。
【0245】データ取得手続き223がプログラムであ
れば、そのデータ取得手続き223を実行し、アプリケ
ーションプログラム本体APの実行結果データを取得す
る(ステップ1217)。
【0246】データ取得手続き223が関数名であれ
ば、その関数名のプログラムを関数制御プログラム37
を通して関数テーブルから取得し(ステップ121
8)、取得した関数を実行し、アプリケーションプログ
ラム本体APの実行結果データを取得する(ステップ1
217)。
【0247】画面が出力されている場合には、サービス
エージェント20の制御手続き26がプログラムである
か関数名であるかがチェックされる(ステップ121
9)。
【0248】制御手続き26がプログラムであれば、そ
の制御手続き26を実行することにより、画面からの入
出力を制御する(ステップ1220)。
【0249】制御手続き26が関数名であれば、その関
数名のプログラムを関数制御プログラム37を通して関
数テーブルから取得し(ステップ1221)、取得した
関数を実行することにより、画面からの入出力を制御す
る(ステップ1220)。
【0250】画面が出力されている場合には、データ取
得手続き223がプログラムであるか関数名であるかが
チェックされる(ステップ1222)。
【0251】データ取得手続き223がプログラムであ
れば、そのデータ取得手続き223を実行し、画面から
の入力データを取得する(ステップ1223)。
【0252】データ取得手続き223が関数名であれ
ば、その関数名のプログラムを関数制御プログラム37
を通して関数テーブルから取得し(ステップ122
4)、取得した関数を実行し画面からの入力データを取
得する(ステップ1223)。
【0253】その後、サービスエージェント20の出力
データ選択手続き221がプログラムであるか関数名で
あるかがチェックされる(ステップ1225)。
【0254】出力データ選択手続き221がプログラム
であれば、その出力データ選択手続き221を実行し、
サービスエージェント20の全データ項目21の中から
アプリケーションプログラム本体APの処理結果データ
を格納するデータ項目である出力データ項目281を選
択する(ステップ1226)。
【0255】出力データ選択手続き221が関数名であ
れば、その関数名のプログラムを関数制御プログラム3
7を通して関数テーブルから取得し(ステップ122
7)、取得した関数を実行し、サービスエージェント2
0の全データ項目21の中からアプリケーションプログ
ラム本体APの処理結果データを格納するデータ項目で
ある出力データ項目281を選択する(ステップ122
6)。
【0256】そして、サービスエージェント20の出力
データ処理手続き24がプログラムであるか関数名であ
るかがチェックされる(ステップ1228)。
【0257】出力データ処理手続き24がプログラムで
あれば、その出力データ処理手続き24を実行し、受け
取ったデータ及び全項目データ21に格納されているデ
ータを処理する(ステップ1229)。
【0258】出力データ処理手続き24が関数名であれ
ば、その関数名のプログラムを関数制御プログラム37
を通して関数テーブルから取得し(ステップ123
0)、取得した関数を実行し、受け取ったデータ及び全
項目データ21に格納されているデータを処理する(ス
テップ1229)。
【0259】次に、サービスエージェント20の出力デ
ータ変換手続き224がプログラムであるか関数名であ
るかがチェックされる(ステップ1231)。
【0260】出力データ変換手続き224がプログラム
であれば、その入力データ変換手続き224を実行し、
受け取ったデータをそれに該当する出力データ項目28
1のデータ形式に変換し(ステップ1232)、変換し
たデータを出力データ項目281のそれぞれのデータ項
目に格納する(ステップ1234)。
【0261】出力データ変換手続き224が関数名であ
れば、その関数名のプログラムを関数制御プログラム3
7を通して関数テーブルから取得し(ステップ123
3)、取得した関数を実行し受け取ったデータをそれに
該当する出力データ項目281のデータ形式に変換し
(ステップ1232)、変換したデータを出力データ項
目281のそれぞれのデータ項目に格納する(ステップ
1234)。
【0262】出力データ項目281にデータが格納され
ると、サービスエージェント20の移動先リスト202
の先頭要素を取りだし(ステップ1232)、それを現
ポジションである移動先名204に格納し(ステップ1
233)、移動先リスト202の値を更新し(ステップ
1234)、更新した帳票20を入出力チャネル403
を通してルーティングマネージャ40に送る(ステップ
1235)。
【0263】出力データ項目281にデータが格納され
ると、サービスエージェント20の移動手続き25がプ
ログラムであるか関数名であるかがチェックされる(ス
テップ1235)。
【0264】移動手続き25がプログラムであれば、そ
の移動手続き25を実行し、移動先名204の値を次の
移動先に書き換え(ステップ1236)、移動先名20
4の値を書き換えたサービスエージェント20を、連携
インタフェース30からルーティングマネージャ40へ
入出力チャネル403を通して送る(ステップ123
7)。
【0265】移動手続き25が関数名であれば、その関
数名のプログラムを関数制御プログラム37を通して関
数テーブルから取得し(ステップ1238)、取得した
関数を実行し、移動先名204の値を次の移動先に書き
換え(ステップ1236)、移動先名204の値を書き
換えたサービスエージェント20を、連携インタフェー
ス30からルーティングマネージャ40へ入出力チャネ
ル403を通して送る(ステップ1237)。
【0266】したがって、上述したように、アプリケー
ションプログラム間の連携処理手続きをサービスエージ
ェントというアプリケーションプログラム本体とは独立
した形式で与え、アプリケーションプログラム本体に連
携処理のための連携インタフェースを付加し、この連携
インタフェースがサービスエージェントの持つ利用手続
きを実行することによりアプリケーションプログラム間
の連携処理をサービスエージェントを通して容易に変更
することができる。
【0267】また、業務に応じて、その業務を進めるた
めに必要なさまざまなアプリケーションプログラムとそ
の操作を組み合わせた利用手順を、サービスエージェン
トの中に一連の作業手順と各作業で使用されるアプリケ
ーションプログラムの利用手続きとして記述し、このサ
ービスエージェントをコンピュータネットワークに接続
されたコンピュータ上で動作している各種サービスエン
ティティの間で移動させ、サービスエージェントを受信
したサービスエンティティはサービスエージェントに記
述された利用手続きを実行することにより、あらかじめ
アプリケーションプログラム間の連携処理手続きを記述
しておかなくても、個々の利用者が自分自身の利用方法
に適するアプリケーションプログラム間の連携処理を行
えることが可能となる。
【0268】次に、上述した本実施例の分散システムの
適用例としてコンピュータ統合生産システムを取り挙
げ、以下に詳細に説明する。
【0269】一般的に、コンピュータ統合生産システム
は、製造・検査機器、それら機器の制御用アプリケーシ
ョンプログラム、生産管理に必要なアプリケーションプ
ログラムを製造物ごとに決められた順序で連携させる必
要がある。
【0270】図25は、本適用例のコンピュータ統合生
産システムの構成を示す図である。
【0271】本適用例では、コンピュータ統合生産シス
テムが各製造工程A、Bを管理するコンピュータC2
0、C30、各製造工程A、Bに接続された製造装置M
A1、MB1、とこれらの製造装置MA1、MB1を制
御するアプリケーションプログラムAP20、AP3
0、コンピュータC10上で製造指示書を作成するアプ
リケーションプログラムAP10、コンピュータを接続
するネットワーク00から構成される。
【0272】また、本適用例では、コンピュータC10
上のアプリケーションプログラムAP10で製造指示書
を作成し、各製造工程に接続された製造機器をそれらの
制御アプリケーションプログラムを通して連携制御する
ことにより、製造を進めていく場合を取り挙げる。
【0273】本適用例によるコンピュータ統合生産シス
テムでは、これらの各種アプリケーションプログラムA
P10、AP20、AP30を有するサービスエンティ
ティをそれぞれSE10、SE20、SE30とし、製
造物に添付される製造指示書は、サービスエージェント
SA2000とする。
【0274】そのサービスエージェントSA2000
は、サービスエンティティSE10を用いて利用者に作
成され、まず製造工程Aの製造機器MA1を制御する制
御用アプリケーションプログラムAP20を持つサービ
スエンティティSE20を通してアプリケーションプロ
グラムAP20に製造指示を伝え、次に製造工程Bの製
造機器MB1を制御する制御用アプリケーションプログ
ラムAP30を持つサービスエンティティSE30を通
してアプリケーションプログラムAP30に製造指示を
伝え、その後サービスエージェントSA2000を作成
したサービスエンティティSE10に戻るものとする。
【0275】図26に、利用者がサービスエンティティ
SE10を用いてコンピュータC10上で作成した時点
の製造指示書であるサービスエージェントSA2000
の構造を示す。
【0276】図26に示すサービスエージェントSA2
000は、識別子2001(ID1)、移動先リスト2
002((C20 SE20)(C30 SE30)
(C10 SE10))、移動リスト2003(ni
l)、移動先名2004(C20SE20)に加え、全
データ項目として、製造機器MA1の設定パラメータで
ある項目であるA工程製造速度項目2005(その値1
0)、製造機器MA1から取得するデータの項目である
A工程所要時間項目2006、製造機器MB1の設定パ
ラメータである項目であるB工程製造速度項目2007
(その値15)、製造機器MB1から取得するデータの
項目であるB工程所要時間項目2008を持つ。
【0277】さらに、データ出力手続きとして、データ
取得手続き2011、出力データ選択手続き2012、
出力データ格納手続き2013を有し、データ入力手続
きとして、入力データ選択手続き2021、入力データ
変換手続き2022、パラメタ設定手続き2023を、
さらに制御手続き2030を有する。
【0278】このように、サービスエージェントSE1
0を用いて生成された上述したサービスエージェントS
A2000は、チャネル400を通してコンピュータC
10のルーティングマネージャRM10に送られる。
【0279】ルーティングマネージャRM10は、サー
ビスエージェントSA2000の移動先名2004の値
(C20 SE20)をチェックし、移動先名に指定さ
れたコンピュータC20との間に接続されたチャネル4
00を検索し、その結果得られたチャネル400を通し
てコンピュータC20にサービスエージェントSA20
00を送る。
【0280】コンピュータC20上のルーティングマネ
ージャRM20は、送られてきたサービスエージェント
SA2000を受け取ると、その移動先名2004の値
(C20 SE20)をチェックし、移動先名に指定さ
れたサービスエンティティSE20との間のに接続され
たチャネル400を検索し、その結果得られたチャネル
400を通してサービスエンティティSE20にサービ
スエージェントSA2000を送る。
【0281】サービスエンティティSE20は、チャネ
ル400を通してサービスエージェントSA2000を
受け取ると、サービスエンティティSE20の連携イン
タフェース30がサービスエージェントSA2000の
持つ入力データ選択手続き2021を取得し、その手続
き2021を実行し、サービスエンティティSE20の
持つアプリケーションプログラムAP20に渡すべきデ
ータ項目であるA工程製造速度項目2005を決定す
る。
【0282】その後、サービスエージェントSA200
0の持つ入力データ変換手続き2022を取得し、その
手続き2022を実行し、選択された項目であるA工程
製造速度項目2005の値10を取り出し、そのデータ
がアプリケーションプログラムに渡すデータであること
を示すタグを付加した後、サービスエージェントSA2
000の持つパラメタ設定手続き2023を取得し、そ
の手続き2023を実行し、アプリケーションプログラ
ムAP20に指定された値10を設定する。
【0283】そして、サービスエージェントSA200
0の持つ制御手続き2030を取得し、その手続き20
30を実行することによりアプリケーションプログラム
AP20の処理を行なう。
【0284】アプリケーションプログラムAP20の処
理が終了すると、サービスエージェントSA2000の
持つデータ取得手続き2011を取得し、その手続き2
011を実行し、アプリケーションプログラムの実行結
果を取得する。
【0285】その後、サービスエージェントSA200
0の持つ出力データ選択手続き2012を取得し、その
手続き2012を実行し、アプリケーションプログラム
の実行結果を格納するデータ項目であるA工程所要時間
2006を選択し、サービスエージェントSA2000
の持つ出力データ格納手続き2013を取得し、その手
続き2013を実行し、アプリケーションプログラムA
P20の実行結果をA工程所要時間項目2006に格納
する。
【0286】次に、移動先リスト2002の2番目の要
素である(C30 SE30)を取り出し、それを移動
先名2004に格納し、チャネル400を通してコンピ
ュータC20上のルーティングマネージャRM20に送
る。
【0287】ルーティングマネージャRM20は、サー
ビスエンティティSE20からチャネル400を通して
送られてきたサービスエージェントSA2000を受け
取ると、その移動先名2004(C30 SE30)を
チェックし、移動先名2004(C30 SE30)に
指定されたコンピュータC30に接続されたチャネル
(40)を検索し、その結果得られたチャネル(40)
を通してサービスエージェントSA2000を送る。
【0288】コンピュータC30上のルーティングマネ
ージャRM30は、送られてきたサービスエージェント
SA2000を受け取ると、その移動先名2004の値
C30 SE30)をチェックし、移動先名2004に
指定されたサービスエンティティSE30との間に接続
されたチャネル400を検索し、その結果得られたチャ
ネル400を通してサービスエンティティSE30にサ
ービスエージェントSA2000を送る。
【0289】サービスエンティティSE30は、チャネ
ル400を通してサービスエージェントSA2000を
受け取ると、サービスエンティティSE30の連携イン
タフェース30がサービスエージェントSA2000の
持つ入力データ選択手続き2021を取得し、その手続
き2021を実行し、サービスエンティティSE30の
持つアプリケーションプログラムAP30に渡すべきデ
ータ項目であるB工程製造速度項目2007を決定す
る。
【0290】そして、サービスエージェントSA200
0の持つ入力データ変換手続き2022を取得し、その
手続き2022を実行し、選択された項目であるB工程
製造速度2007の値15を取り出し、そのデータがア
プリケーションプログラムに渡すデータであることを示
すタグを付加した後、サービスエージェントSA200
0の持つパラメタ設定手続き2023を取得し、その手
続き2023を実行し、アプリケーションプログラムA
P30に指定された値15を設定する。
【0291】その後、サービスエージェントSA200
0の持つ制御手続き2030を取得し、その手続き20
30を実行することによりアプリケーションプログラム
AP30の処理を行なう。
【0292】アプリケーションプログラムAP30の処
理が終了すると、サービスエージェントSA2000の
持つデータ取得手続き2011を取得し、その手続き2
011を実行し、アプリケーションプログラムの実行結
果を取得する。
【0293】その後、サービスエージェントSA200
0の持つ出力データ選択手続き2012を取得し、その
手続き2012を実行し、アプリケーションプログラム
の実行結果を格納するデータ項目であるB工程所要時間
項目2008を選択し、サービスエージェントSA20
00の持つ出力データ格納手続き2013を取得し、そ
の手続き2013を実行し、アプリケーションプログラ
ムAP30の実行結果をB工程所要時間項目2008に
格納する。
【0294】次に、移動先リスト2002の3番目の要
素である(C10 SE10)を取り出し、それを移動
先名2004に格納し、チャネル400を通してコンピ
ュータC30上のルーティングマネージャRM30に送
る。
【0295】ルーティングマネージャRM30は、サー
ビスエンティティSE30からチャネル400を通して
送られてきたサービスエージェントSA2000を受け
取ると、その移動先名2004(C10 SE10)を
チェックし、移動先名200(C10 SE10)に指
定されたコンピュータC10に接続されたチャネル40
0を検索するが、コンピュータC30上のルーティング
マネージャRM30と接続されているコンピュータの中
にはコンピュータ名C10がないため、接続されている
コンピュータC20のルーティングマネージャRM20
にサービスエージェントSA2000を送る。
【0296】コンピュータC20上のルーティングマネ
ージャRM20は、送られてきたサービスエージェント
SA2000を受け取ると、その移動先名2004の値
(C10 SE10)をチェックし、移動先名2004
に指定されたコンピュータ名C10がコンピュータ名C
20と異なるため、サービスエージェントSA2000
の移動リスト2003にコンピュータ名C20を格納
し、移動リスト2003の値を(C20)とし、サービ
スエージェントSA2000の移動先名2004(C1
0 SE10)に指定されたコンピュータ名C10と接
続されたチャネル400を検索し、その結果得られたチ
ャネル400にサービスエージェントSA2000を送
る。
【0297】ルーティングマネージャRM10は、ルー
ティングマネージャRM20からチャネル400を通し
て送られてきたサービスエージェントSA2000を受
け取ると、その移動先名2004(C10 SE10)
をチェックし、移動先名2004(C10 SE10)
とコンピュータ名C10が同一であることをチェックし
た後、移動先名2004(C10 SE10)に指定さ
れたサービスエンティティSE10との間に接続された
チャネル400を検索し、その結果得られたチャネル4
00を通してサービスエンティティSE10にサービス
エージェントSA2000を送る。
【0298】このようにして、サービスエージェントS
A2000を用いることにより、製造工程A、Bを管理
するコンピュータC20、C30に接続された製造機器
MA1、MB1を制御するアプリケーションプログラム
AP20、AP30を連携して制御することが可能とな
る。
【0299】また、製造工程が異なる場合でも、製造指
示書を作成する際に、その移動先リスト2002に指定
する移動先の一覧を変更するだけで制御する製造装置や
その順序を変更することができ、容易に連携の方法を変
更することができる。
【0300】以上、本発明者によってなされた発明を、
前記実施例に基づき具体的に説明したが、本発明は、前
記実施例に限定されるものではなく、その要旨を逸脱し
ない範囲において種々変更可能であることは勿論であ
る。
【0301】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば、下
記のとおりである。
【0302】アプリケーションプログラム間の連携処理
手続きをサービスエージェントというアプリケーション
プログラム本体とは独立した形式で与え、アプリケーシ
ョンプログラム本体に連携処理のための連携インタフェ
ースを付加し、この連携インタフェースがサービスエー
ジェントの持つ利用手続きを実行することによりアプリ
ケーションプログラム間の連携処理をサービスエージェ
ントを通して容易に変更することができる。
【0303】また、業務に応じて、その業務を進めるた
めに必要なさまざまなアプリケーションプログラムとそ
の操作を組み合わせた利用手順を、サービスエージェン
トの中に一連の作業手順と各作業で使用されるアプリケ
ーションプログラムの利用手続きとして記述し、このサ
ービスエージェントをコンピュータネットワークに接続
されたコンピュータ上で動作している各種サービスエン
ティティの間で移動させ、サービスエージェントを受信
したサービスエンティティはサービスエージェントに記
述された利用手続きを実行することにより、あらかじめ
アプリケーションプログラム間の連携処理手続きを記述
しておかなくても、個々の利用者が自分自身の利用方法
に適するアプリケーションプログラム間の連携処理を行
えることが可能となる。
【図面の簡単な説明】
【図1】本発明の一実施例である分散システムの構成を
示した図である。
【図2】本実施例の分散システムのハードウエア構成を
示した図である。
【図3】本実施例の分散システムのサービスエージェン
トの構成を説明するための図である。
【図4】本実施例の分散システムの論理通信路の構成を
説明するための図である。
【図5】本実施例の分散システムの論理通信路の構成を
説明するための図である。
【図6】本実施例の分散システムの論理通信路の構成を
説明するための図である。
【図7】本実施例の分散システムのルーティングマネー
ジャの構成を示した図である。
【図8】本実施例の分散システムの接続先管理テーブル
とサービスエンティティ管理テーブルと接続管理テーブ
ルの構成を説明するための図である。
【図9】本実施例の分散システムの連携インタフェース
の構成を示した図である。
【図10】本実施例の分散システムのサービスエージェ
ントの条件判定を含む手続きを説明するための図であ
る。
【図11】本実施例の分散システムの入力データ表示手
続きの表示例を示した図である。
【図12】本実施例の分散システムの入力データ表示手
続きの構造を説明するための図である。
【図13】本実施例の分散システムの操作処理手続き管
理テーブルの構成を説明するための図である。
【図14】本実施例の分散システムの関数テーブルの構
造を説明するための図である。
【図15】本実施例の分散システムの移動先リストの記
述例を示した図である。
【図16】本実施例の分散システムの移動リストの記述
例を示した図である。
【図17】本実施例の分散システムのサービスエージェ
ントの移動処理の流れを示すフローチャートである。
【図18】本実施例の分散システムのサービスエージェ
ントの移動処理の流れを示すフローチャートである。
【図19】本実施例の分散システムのサービスエージェ
ントの移動処理の流れを示すフローチャートである。
【図20】本実施例の分散システムのサービスエージェ
ントの移動処理の流れを示すフローチャートである。
【図21】本実施例の分散システムの連携インタフェー
スのアプリケーションプログラムの実行処理の流れを示
すフローチャートである。
【図22】本実施例の分散システムの連携インタフェー
スのアプリケーションプログラムの実行処理の流れを示
すフローチャートである。
【図23】本実施例の分散システムの連携インタフェー
スのアプリケーションプログラムの実行処理の流れを示
すフローチャートである。
【図24】本実施例の分散システムの連携インタフェー
スのアプリケーションプログラムの実行処理の流れを示
すフローチャートである。
【図25】本発明の適用例のコンピュータ統合生産シス
テムの構成を示す図である。
【図26】本発明の適用例のコンピュータ統合生産シス
テムの製造指示書の構造を説明するための図である。
【符号の説明】
C…コンピュータ、AP…アプリケーションプログラム
本体、0…ネットワーク、10…サービスエンティテ
ィ、11…キーボード、12…マウス、13…入力装
置、14…CPU、15…メモリ、16…処理装置、1
7…表示装置、18…外部記憶装置、19…プリンタ、
20…サービスエージェント、30…連携インタフェー
ス、31…データ作成プログラム、32…データ出力プ
ログラム、33…実行制御プログラム、34…データ取
得プログラム、35…データ格納プログラム、36…移
動先操作プログラム、37…関数制御プログラム、38
…アプリケーションインタフェース、40…ルーティン
グマネージャ、41…管理テーブル作成プログラム、4
2…接続要求プログラム、43…接続管理プログラム、
44…移動管理プログラム、45…接続待ちプログラ
ム、46…接続先管理テーブル、47…接続管理テーブ
ル、48…サービスエンティティ管理テーブル、202
…移動先リスト、203…移動リスト、400…チャネ
ル。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 岡崎 司 宮城県仙台市青葉区一番町二丁目4番1号 日立東北ソフトウェア株式会社内 (72)発明者 青木 靖 宮城県仙台市青葉区一番町二丁目4番1号 日立東北ソフトウェア株式会社内 (72)発明者 中西 潤 神奈川県川崎市幸区鹿島田890番地の12 株式会社日立製作所情報システム事業部内

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 ネットワーク上に複数個のコンピュータ
    が接続された分散システムであって、 前記コンピュータ上で動作する各アプリケーションプロ
    グラム本体に他のアプリケーションプログラムと連携を
    行う連携インタフェースを付与してなるサービスエンテ
    ィティを備え、 連携させる該サービスエンティティ間の移動先を示す利
    用順序情報と各サービスエンティティの利用する処理の
    手続きを示した利用処理手続き情報とを有し、前記連携
    インタフェースを介してネットワーク上を移動するサー
    ビスエージェントを備えたことを特徴とする分散システ
    ム。
  2. 【請求項2】 前記請求項1に記載の分散システムにお
    いて、 前記サービスエージェントの利用処理手続き情報は、サ
    ービスエージェントが利用する全てのサービスエンティ
    ティで使用されるデータ項目の一覧を示す全データ項
    目、各サービスエンティティへの入力データが格納され
    ている入力データ項目、各サービスエンティティの処理
    結果が格納される出力データ項目、入力データ項目に格
    納されているデータをサービスエンティティに入力する
    手続きを示すデータ入力手続き情報、出力データ項目ご
    とのデータの出力手続きを示すデータ出力手続き情報、
    データ出力手続きを用いて出力されたデータを処理する
    出力データ処理手続き情報、各サービスエンティティの
    中のアプリケーションプログラムの実行を制御する制御
    手続き情報の少なくても1つ以上を含むことを特徴とす
    る分散システム。
  3. 【請求項3】 前記請求項2に記載の分散システムにお
    いて、 前記サービスエージェントの利用処理手続き情報の各構
    成要素をサービスエージェントを受け取ったサービスエ
    ンティティ、もしくはサービスエンティティの動作する
    コンピュータに応じて変更する手段を備えたことを特徴
    とする分散システム。
  4. 【請求項4】 請求項1記載の分散システムにおいて、 前記サービスエンティティは、受信したサービスエージ
    ェントと同一の構成要素を持つ一つ以上のサービスエー
    ジェントを複製する手段と、 複製したサービスエージェントを他の一つ以上のサービ
    スエージェントに送信する手段と、 送信した1つ以上のサービスエージェントのいずれか1
    つのサービスエージェントがサービスエンティティに受
    け取られた時点で受け取り通知を他の複製されたサービ
    スエージェントに通知する手段と、 受け取り通知を受け取ったサービスエージェントがサー
    ビスエージェント自身を削除する手段とを備えたことを
    特徴とする分散システム。
  5. 【請求項5】 前記請求項1に記載の分散システムにお
    いて、 該コンピュータの各々は、該サービスエンティティ及び
    他のコンピュータとの間の通信路を確立、管理し、該通
    信路を通して受信した該サービスエージェントの有する
    利用順序に従ってサービスエージェントの移動を制御す
    るルーティングマネージャを備えていることを特徴とす
    る分散システム。
  6. 【請求項6】 請求項5に記載の分散システムにおい
    て、 前記ルーティングマネージャは、コンピュータ起動時に
    他のコンピュータと通信するための論理的な通信路を確
    立する論理的通信路確立手段と、 他のコンピュータとの間の該論理的通信路を切り放す手
    段と、 他のコンピュータからの接続要求を受け取る手段と、 ルーティングマネージャを停止させることなく、任意の
    コンピュータ間で論理的通信路の接続先コンピュータを
    変更する手段と、 該ルーティングマネージャの動作するコンピュータ上で
    動作するサービスエンティティを管理する手段と、 受信したサービスエージェントの要求するサービスエン
    ティティの名称を取得して、該ルーティングマネージャ
    の動作するコンピュータ上で動作するサービスエンティ
    ティと該サービスエージェントが要求するサービスエン
    ティティの名称を比較し、該コンピュータ上で該サービ
    スエージェントが要求するサービスエンティティが実行
    できるか否かを判定する手段と、 該サービスエージェントの要求するサービスエンティテ
    ィが実行できない場合には、論理的に接続された他のコ
    ンピュータ上で動作しているルーティングマネージャに
    該サービスエージェントを移動させる手段と、 該サービスエージェントの要求するサービスエンティテ
    ィが実行できる場合には、該サービスエンティティに該
    サービスエージェントを移動させる手段とを備えたこと
    を特徴とする分散システム。
  7. 【請求項7】 請求項6に記載の分散システムにおい
    て、前記論理的通信路確立手段は、前記論理的通信路を
    構成する接続ポートを設け、前記論理的通信路が構成さ
    れると常に新たな接続ポートを生成する手段とを備えた
    ことを特徴とする分散システム。
  8. 【請求項8】 前記請求項2に記載の分散システムにお
    いて、 前記サービスエージェントの構成要素である入力データ
    表示手続き情報は、入力データ項目と、グラフィカルユ
    ーザインタフェースの基本部品及びそれが操作された際
    の処理基本部品を表示するグラフィカルユーザインタフ
    ェース基本部品表示手続きと入力データ項目を表示する
    グラフィカルユーザインタフェース部品の組み合わせ方
    とからなる組み合わせ手続きとから構成され、 前記入力データ項目と組み合わせ手続きとから、データ
    に応じたグラフィカルユーザインタフェースを表示する
    手段を前記インタフェースに備えたことを特徴とする分
    散システム。
  9. 【請求項9】 前記請求項2に記載の分散システムにお
    いて、前記サービスエージェントの有する利用処理手続
    き情報の各手続き情報は、その手続きの処理内容を表す
    手続き名称と該手続き名称を持つ手続きのコンピュータ
    ネットワーク上の格納場所の組み合わせで記述され、 該手続き名称の手続きをその格納場所から読み込んで実
    行する手段を前記連携インタフェースに備えたことを特
    徴とする分散システム。
JP7050678A 1995-03-10 1995-03-10 分散システム Pending JPH08249290A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7050678A JPH08249290A (ja) 1995-03-10 1995-03-10 分散システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7050678A JPH08249290A (ja) 1995-03-10 1995-03-10 分散システム

Publications (1)

Publication Number Publication Date
JPH08249290A true JPH08249290A (ja) 1996-09-27

Family

ID=12865601

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7050678A Pending JPH08249290A (ja) 1995-03-10 1995-03-10 分散システム

Country Status (1)

Country Link
JP (1) JPH08249290A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002506246A (ja) * 1997-11-13 2002-02-26 ハイパースペース コミュニケーションズ インコーポレイテッド ファイル転送システム
KR100331519B1 (ko) * 1998-08-01 2002-04-06 포만 제프리 엘 분산 애플리케이션을 실행시키는 시스템 및 컴퓨터화된 방법
EP1469638A3 (en) * 2003-04-17 2009-08-12 Samsung Electronics Co., Ltd. Home network apparatus and system for cooperative service and method thereof
US8867073B2 (en) 2010-08-31 2014-10-21 Canon Kabushiki Kaisha Server apparatus, network system, job processing method, and storage medium

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56111353A (en) * 1980-02-08 1981-09-03 Hitachi Ltd Transmitting method for control information using common transmission line
JPH0675889A (ja) * 1990-08-14 1994-03-18 Digital Equip Corp <Dec> 分散不均一環境におけるサーバー機能の実行方法及び装置
JPH0683784A (ja) * 1990-05-18 1994-03-25 Digital Equip Corp <Dec> 分散型計算システムにおいて動作経路上にオブジェクトを経路指定する方法及び装置
JPH06149709A (ja) * 1992-11-13 1994-05-31 Toshiba Corp ネットワークシステム
JPH06149756A (ja) * 1992-11-16 1994-05-31 Hitachi Ltd 分散型情報処理方法およびその装置
JPH06295286A (ja) * 1992-04-06 1994-10-21 Addison M Fischer コミュニケーションシステムにおけるコンピュータ間で情報を処理するための方法
EP0634719A2 (en) * 1993-07-08 1995-01-18 General Magic, Inc. System and method for distributed computation based upon the movement, execution, and interaction of processes in a network

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56111353A (en) * 1980-02-08 1981-09-03 Hitachi Ltd Transmitting method for control information using common transmission line
JPH0683784A (ja) * 1990-05-18 1994-03-25 Digital Equip Corp <Dec> 分散型計算システムにおいて動作経路上にオブジェクトを経路指定する方法及び装置
JPH0675889A (ja) * 1990-08-14 1994-03-18 Digital Equip Corp <Dec> 分散不均一環境におけるサーバー機能の実行方法及び装置
JPH06295286A (ja) * 1992-04-06 1994-10-21 Addison M Fischer コミュニケーションシステムにおけるコンピュータ間で情報を処理するための方法
JPH06149709A (ja) * 1992-11-13 1994-05-31 Toshiba Corp ネットワークシステム
JPH06149756A (ja) * 1992-11-16 1994-05-31 Hitachi Ltd 分散型情報処理方法およびその装置
EP0634719A2 (en) * 1993-07-08 1995-01-18 General Magic, Inc. System and method for distributed computation based upon the movement, execution, and interaction of processes in a network

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002506246A (ja) * 1997-11-13 2002-02-26 ハイパースペース コミュニケーションズ インコーポレイテッド ファイル転送システム
JP4683723B2 (ja) * 1997-11-13 2011-05-18 エイチ.スペース データ サービシズ エルエルシー ファイル転送システム
KR100331519B1 (ko) * 1998-08-01 2002-04-06 포만 제프리 엘 분산 애플리케이션을 실행시키는 시스템 및 컴퓨터화된 방법
EP1469638A3 (en) * 2003-04-17 2009-08-12 Samsung Electronics Co., Ltd. Home network apparatus and system for cooperative service and method thereof
US8060588B2 (en) 2003-04-17 2011-11-15 Samsung Electronics Co., Ltd. Home network apparatus and system for cooperative work service and method thereof
US8867073B2 (en) 2010-08-31 2014-10-21 Canon Kabushiki Kaisha Server apparatus, network system, job processing method, and storage medium

Similar Documents

Publication Publication Date Title
US5392400A (en) Collaborative computing system using pseudo server process to allow input from different server processes individually and sequence number map for maintaining received data sequence
JP3753207B2 (ja) 共同作業支援システムおよび共同作業支援方法
US20110191688A1 (en) Network system, server apparatus, and computer-readable storage medium
JPH10136329A (ja) 画像共有装置、画面制御方法及びコンピュータ可読メモリ
JPH0784744A (ja) ウィンドウ・インターフェース装置およびその方法
JPH1031637A (ja) エージェント通信装置
KR100307973B1 (ko) 전자메일또는에이전트를이용하여클라이언트상에서gui를작성하는정보처리방법및정보처리장치,정보처리장치를제어하는프로그램을저장한기억매체
JPH08180003A (ja) 電子メールシステム
JP2000047991A (ja) アプリケーション・ウインドウにアノテーション・データを対応付ける方法及び装置、システム、アプリケーション・ウインドウへのアノテーション・データの対応付けを制御するプログラムを格納した記憶媒体
JP2013097398A (ja) 通信システム及びその制御方法
JP2001202405A (ja) タスク関与者間のコミュニケーション機能を有するプロジェクト管理装置およびプロジェクト管理方法
TW432287B (en) Message handling method, message handling apparatus, and memory media for storing a message handling apparatus controlling program
EP0772114B1 (en) Apparatus and method for programming a job ticket in a document processing system
JPH08314872A (ja) アプリケーションプログラム間連携処理方法
US8413074B2 (en) Mechanism for collaboratively exchanging navigation information in a distributed document review
JP3083657B2 (ja) ヒューマンインターフェイスシステム及びその制御方法
JP2009009455A (ja) サービス連携支援装置
JP3931941B2 (ja) ワークプロセス管理装置及びワークプロセス管理方法
JPH1127285A (ja) ネットワーク管理システム及び記録媒体
JPH08249290A (ja) 分散システム
JPH02219168A (ja) 文書にマークを付ける方法
JP4573917B2 (ja) ネットワークシステムとその中におけるオブジェクト連携方法
JPH09128343A (ja) コミュニケーションシステム
JPH09231040A (ja) 電子掲示板システムおよびその議論管理方法
JPH08241276A (ja) アプリケーション共有化システム