JPH08314872A - アプリケーションプログラム間連携処理方法 - Google Patents

アプリケーションプログラム間連携処理方法

Info

Publication number
JPH08314872A
JPH08314872A JP7138641A JP13864195A JPH08314872A JP H08314872 A JPH08314872 A JP H08314872A JP 7138641 A JP7138641 A JP 7138641A JP 13864195 A JP13864195 A JP 13864195A JP H08314872 A JPH08314872 A JP H08314872A
Authority
JP
Japan
Prior art keywords
procedure
application program
data
name
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
JP7138641A
Other languages
English (en)
Inventor
Toshiaki Ito
俊明 伊藤
Masahiro Hichi
正浩 樋地
Tsukasa Okazaki
司 岡崎
Tsutomu Takahashi
勉 高橋
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 Solutions East Japan Ltd
Original Assignee
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 Tohoku Software Ltd filed Critical Hitachi Tohoku Software Ltd
Priority to JP7138641A priority Critical patent/JPH08314872A/ja
Publication of JPH08314872A publication Critical patent/JPH08314872A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

(57)【要約】 【目的】個々の利用者が自分自身の利用方法に適するア
プリケーションプログラム間の連携処理を行うことを可
能とする。 【構成】複数のアプリケーションプログラム3の利用手
順とその各々の利用手続きを記述した作業指示書(サー
ビスエージェント)20を作成し、該作業指示書を複数
のコンピュータ1へ順次転送する。各アプリケーション
プログラム3には、作業指示書に記載された利用手続き
に応じて当該アプリケーションプログラムとの連携をと
る連携インタフェース30を設けておき、各連携インタ
フェース30は、作業指示書20を受けたとき、該連携
インタフェースが当該作業指示書に記載された自己のア
プリケーションプログラムに関する利用手続きに応じて
自己のアプリケーションプログラムを起動し、目的とす
る制御および/またはデータの授受を行う。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、利用者が複数のアプリ
ケーションプログラムを順次組み合わせながら利用して
処理を行う分散処理システムに係り、必要に応じてその
処理経過や処理結果、処理内容を他の作業を行っている
各作業者との間でやり取りすることにより、お互いの作
業を連携させながら進めていく一連の作業から構成され
る業務において、これらの業務を行う際に各部署や作業
者が利用するさまざまなアプリケーションプログラムの
間の処理を連携させ、さらに業務に応じて個々のアプリ
ケーションプログラムの間の処理の連携手続きを容易に
変更することを可能とするアプリケーションプログラム
間の連携処理方法に関する。
【0002】特に、コンピュータネットワークに接続さ
れたコンピュータ上で動作する各種アプリケーションプ
ログラムにより構成される分散処理システムにおいて、
利用者が行っていた複数のアプリケーションプログラム
を組み合わせた操作手順や、各作業者に依頼して行って
いたアプリケーションプログラムの操作やその結果の取
得を自動化するとともに、一連の作業に必要なアプリケ
ーションプログラムの利用手順をシステム化することに
より、各作業者の作業負荷を軽減し、作業の流れを円滑
にするために、作業に応じて柔軟にアプリケーションプ
ログラムを組み合わせ、連携して処理するための利用技
術、及びこのような柔軟なアプリケーションプログラム
の連携処理方法を実現するための分散処理システムに関
する。
【0003】
【従来の技術】分散処理システムは、個々の作業者が行
うべき作業に用いられるコンピュータをネットワークで
接続し、個々の作業者間で必要とするデータをやり取り
するシステムである。このようなシステムでは、1つ1
つの作業は個々の作業者がアプリケーションプログラム
を用いて行う個人利用中心であり、各作業者の間で必要
とするデータだけが共有され、各作業者の利用するアプ
リケーションプログラムで共有されたデータを利用でき
る。
【0004】分散処理システム上でアプリケーションプ
ログラムを連携して動作させるための仕組みに関して
は、日経コンピュータ:「クライアント・サーバーの弱
点 非同期、蓄積型通信が解消」1994.8.8. pp.159-16
8、日経コンピュータ:「分散アプリケーション同士の
非同期連携を容易に実現する メッセージ・ベースのミ
ドルウェアが急増」1993.9.20. pp.67-74 に、RPC(Rem
ote Procedure Call)、会話型、ファイル転送、メッセ
ージ・ベースの4つの連携処理方式について論じられて
いる。
【0005】「RPC」は、アプリケーションプログラム
の1つのモジュールを取りだし、そのモジュールを他の
コンピュータで実行させる方式である。「会話型」は、
複数のアプリケーションプログラムの間をリアルタイム
通信路で接続し、そのリアルタイム通信路を通じてデー
タや処理要求をやり取りする方式である。会話型の方式
を用いて、或る作業に利用するアプリケーションプログ
ラムを処理の要求元(クライアント)と処理の実行元
(サーバ)に分割しクライアント側アプリケーションプ
ログラムとサーバ側アプリケーションプログラムの間で
連携して処理を行えるようにしたものがクライアント・
サーバ・システムである。これらの2つの方式では、受
信側アプリケーションプログラムは常に動作し、送信側
アプリケーションプログラムからの処理要求を待つ状態
にあり、送信側アプリケーションプログラムからの処理
要求を受け取るとそれを即座に処理し、処理結果を送信
側アプリケーションプログラムに返すことにより、送信
側アプリケーションプログラムと受信側アプリケーショ
ンプログラムの間で同期を取りながら処理を行う連携処
理を実現できる。また、これらの方式では、連携処理を
行うアプリケーションプログラムの間の連携手続きをア
プリケーションプログラムを開発する際にあらかじめ定
め、その手続きをプログラムとして記述しておく必要が
ある。
【0006】「ファイル転送」は、連携させるアプリケ
ーションプログラムの間でファイルを転送し、ファイル
に記述されたデータを受け取った場合にアプリケーショ
ンプログラムがそのデータに対する処理を行う方式であ
る。この方式では、ファイルの受信をトリガとしてアプ
リケーションプログラムを実行させることにより、非同
期的なアプリケーションプログラム間の連携処理を実現
できる。「メッセージ・ベース」は、送信側アプリケー
ションプログラムから送り出されたメッセージをメッセ
ージ・ベースの処理を実現するプログラムが受け取り、
メッセージに記述された受信側アプリケーションプログ
ラムにそのメッセージを送り、メッセージを受け取った
受信側アプリケーションプログラムではメッセージに対
応した処理手続きを実行することにより、アプリケーシ
ョンプログラム間の連携処理を実現する方式である。メ
ッセージ・ベースの方式では、連携処理を行うアプリケ
ーションプログラムの間であらかじめメッセージの形式
を定め、そのメッセージを受け取った場合のアプリケー
ションプログラムの処理を記述する。
【0007】これら4つのアプリケーションプログラム
連携処理方式では、一連の作業から構成される業務を、
個々の作業で用いられる複数のアプリケーションプログ
ラムの間で処理を連携させることにより行うためには、
連携のために必要な処理手続きを各アプリケーションプ
ログラムごとに定め、プログラムとして記述しておく必
要がある。
【0008】特開平2-186737号公報に記載のプログラム
間論理通信路制御方式では、ネットワークに接続された
コンピュータ上で動作するアプリケーションプログラム
の間で、データを交換することにより、アプリケーショ
ンプログラム間の連携処理を実現する方式について述べ
られている。この方式では、アプリケーションプログラ
ムの画面を介してユーザにより加えられた操作(データ
の変更、追加、削除など)のデータを論理的通信路を通
じて同一のアプリケーションプログラム間でやり取りす
ることにより、そのアプリケーションプログラム間で画
面の表示を共有することに基づくアプリケーションプロ
グラム間の連携処理を実現している。
【0009】これらのアプリケーションプログラム間の
連携処理方式においては、連携処理に用いるデータやメ
ッセージを他のコンピュータ上のアプリケーションプロ
グラムに送る際には、送信先のコンピュータの名称、送
信先コンピュータの物理的な位置または物理的名称のい
ずれか1つの方法でデータやメッセージの送信先を指定
することにより、指定されたコンピュータ上のアプリケ
ーションプログラムにデータやメッセージを送ることが
できる。
【0010】最近では、個々の作業者による個人利用中
心のシステムから複数の作業者の間にまたがる作業を支
援するシステムの研究・開発が盛んに行われている。こ
れら複数の作業者に跨る作業を支援するシステムの種類
とその支援する作業の内容に関しては、石井裕:「グル
ープウェア技術の研究動向」情報処理学会論文誌 Vol.3
0 No.12 Dec.1989 、石井裕:「コンピュータを用い
たグループワーク支援の研究動向」コンピュータソフト
ウェア Vol.8 No.2 pp.14-26、C.A. Ellis , S.J. Gibb
s and G.L.Rein : ”Groupware : Some Issues and Exp
eriences”,CACM Jan.1991 Vol.34 , No.1 pp.38-5
8.、に国内外で研究、開発が行われている複数の人々の
間に跨って行われる協同作業を支援するシステムが論じ
られている。
【0011】これらの協同作業を支援するシステムは、
各作業者が同一のアプリケーションプログラムを利用し
て同一の内容の作業を協同して行うこと(協同文書作成
など)を支援するシステムであり、各作業者の間でアプ
リケーションプログラムの処理結果を表示し、処理結果
に対して何らかの操作を加えるユーザインタフェース画
面を共有する機能を提供する。
【0012】
【発明が解決しようとする課題】上記従来技術は、或る
特定のアプリケーションプログラム間でやり取りするデ
ータやメッセージをあらかじめ定め、その定めたデータ
やメッセージに対応する処理プログラムをそれぞれのア
プリケーションプログラムに記述し、このあらかじめ定
められたデータやメッセージをアプリケーションプログ
ラム間でやり取りすることにより、アプリケーションプ
ログラム間の連携処理を行う。そのため、アプリケーシ
ョンプログラム間の連携処理の手続きを変更することは
できない。あるいは、変更できたとしても、変更に関連
する全てのアプリケーションプログラム中の処理プログ
ラムを変更する必要がある。その結果、作業内容や目的
に応じて容易にアプリケーションプログラム間の連携処
理手続きを変更することは非常に困難となっている。
【0013】さらにアプリケーションプログラム間の連
携処理手続きを変更するためには、その変更対象となる
全てのアプリケーションプログラムの実行をいったん終
了させる必要がある。分散処理システム上ではさまざま
な利用者が各々の作業を行うためにアプリケーションプ
ログラムを使用しており、変更対象となる全てのアプリ
ケーションプログラムの実行をいったん終了させること
は、変更対象となるアプリケーションプログラムの数が
増加するに従い、困難さを増してくることになる。
【0014】また、アプリケーションプログラム間で連
携処理を行うためにやり取りされるものは、データもし
くはメッセージであるため、それらデータやメッセージ
を受け取った際の処理手続きは、それを受け取った受信
側アプリケーションプログラムにより決められており、
送信側アプリケーションプログラムが受信側アプリケー
ションプログラムの処理手続きを変更することは不可能
であった。また、受信側アプリケーションプログラムの
提供する複数の機能を組み合わせた一連の処理手続き、
すなわち受信側アプリケーションプログラムで一度に実
行したい複数のコマンドの組み合わせを実行すること、
を実現するためには、毎回、同期を取りながら必要な処
理手続きを実行するためのメッセージをアプリケーショ
ンプログラムに送り、該当する手続きを実行し、その実
行結果を送信側アプリケーションプログラムで組み合わ
せるか、あらかじめ受信側アプリケーションプログラム
に複数のコマンドを実行するための特別なメッセージを
プログラムとして記述しておく必要があり、開発効率が
低下する。
【0015】このようにアプリケーションプログラム間
の連携処理手続きをあらかじめ記述しておく必要がある
ため、個々の利用者が自分自身の利用方法に適するアプ
リケーションプログラム間の連携処理手続きを記述する
ことは困難であり、システムにより提供されるアプリケ
ーションプログラム間の連携処理手続きを利用する以外
には、アプリケーションプログラム間を連携して処理さ
せることは困難であった。
【0016】さらにこれらのデータやメッセージをアプ
リケーションプログラムに送るためには、そのアプリケ
ーションプログラムの動作しているコンピュータをコン
ピュータの名称、またはIP アドレス等のコンピュータ
を一意に識別するための手段で明示的に指定する必要が
あり、或る処理を行うアプリケーションプログラムの動
作するコンピュータを何等かの理由で変更した場合に
は、該当するアプリケーションプログラムを利用してい
るアプリケーションプログラム連携処理手続きの中のコ
ンピュータを指定している部分を変更しなければならな
い。そのため、分散処理システムを構成するコンピュー
タやネットワーク、アプリケーションプログラムの変更
に対する柔軟性に欠ける。
【0017】本発明の目的は、個々の利用者が自分自身
の利用方法に適するアプリケーションプログラム間の連
携処理を行うことを可能とするアプリケーションプログ
ラム間連携処理方法を提供することにある。
【0018】本発明の他の目的は、データやメッセージ
に加え、アプリケーションプログラム間の連携処理手続
き、データやメッセージを受け取ることにより、受信側
アプリケーションプログラムで行われる処理手続き、受
信側アプリケーションプログラムの提供する複数の機能
を組み合わせた一連の処理手続きをアプリケーションプ
ログラム間で送受信し、受信したこれら手続きを実行で
きる連携インタフェースをアプリケーションプログラム
に付与することにより、アプリケーションプログラム間
の連携処理手続きの変更を柔軟、かつ開発効率を低下さ
せることなく行うことのできるアプリケーションプログ
ラム間連携処理方法を提供することにある。
【0019】
【課題を解決するための手段】上記目的を達成するため
に、本発明は、コンピュータネットワークに接続された
複数のコンピュータ上で動作する複数のアプリケーショ
ンプログラム間の連携処理方法において、前記複数のア
プリケーションプログラムの利用順序と各アプリケーシ
ョンプログラムの利用手続きを記述した作業指示書を作
成し、該作業指示書を、前記コンピュータネットワーク
を介して、目的のアプリケーションプログラムを有する
複数のコンピュータへ順次転送し、前記複数のアプリケ
ーションプログラムの各々には、前記作業指示書に記載
された当該アプリケーションプログラムの利用手続きに
応じて当該アプリケーションプログラムとの連携をとる
連携インタフェースを設けておき、各連携インタフェー
スは、前記作業指示書を受けたとき、該連携インタフェ
ースが当該作業指示書に記載された自己のアプリケーシ
ョンプログラムに関する利用手続きに応じて自己のアプ
リケーションプログラムを起動し、目的とする制御およ
び/またはデータの授受を行い、必要なアプリケーショ
ンプログラムを有するコンピュータを作業指示書が一巡
することにより前記複数のアプリケーションプログラム
による一連の作業を実行するようにしたものである。
【0020】このアプリケーションプログラム間連携処
理方法において、前記作業指示書に記載された利用手続
きの構成要素として、例えば、当該作業指示書が利用す
る全てのアプリケーションプログラムで使用されるデー
タ項目の一覧を表す全データ項目、各アプリケーション
プログラムへ与えるべきデータが格納されている出力デ
ータ項目、各アプリケーションプログラムの処理結果が
格納される入力データ項目、前記出力データ項目に格納
されているデータを当該アプリケーションプログラムへ
出力する手続きを表すデータ出力手続き、前記入力デー
タ項目ごとのデータの入力手続きを表すデータ入力手続
き、該データ入力手続きを用いて入力されたデータを処
理する入力データ処理手続き、当該アプリケーションプ
ログラムの実行を制御する制御手続き、のうち少なくと
も1つを含む。
【0021】好ましくは、各コンピュータ上に移動制御
手段を有し、該移動制御手段が、自己のコンピュータ上
の前記連携インタフェース及び他のコンピュータとの間
の通信路を確保、管理し、該通信路を通して受信した前
記作業指示書に記載された利用順序に従って当該作業指
示書の移動を制御する。
【0022】前記作業指示書の構成要素である制御手続
きとして、例えば、該作業指示書を受信した前記連携イ
ンタフェースのアプリケーションプログラムを起動する
起動手続き、該アプリケーションプログラムの実行を終
了する終了手続き、該アプリケーションプログラムの有
する1つ以上のコマンドを実行する実行手続き、それら
を組み合せた制御スクリプトの少なくとも1つの手続き
を有する。
【0023】前記作業指示書の構成要素として、新たな
作業指示書を生成するための生成手続きを有してもよ
い。前記利用手続きは、例えば、プログラムおよび関数
名のいずれかであり、関数名の場合には前記連携インタ
フェースにおいて当該関数名に対応するプログラムを取
得する。
【0024】前記作業指示書に記述された利用順序は、
コンピュータ名と、そのコンピュータ上で動作するアプ
リケーションプログラムおよび連携インタフェースから
なるサービスエンティティの名称との組を該サービスエ
ンティティの利用の順序に従って指定したものであり、
前記コンピュータ名を省略可能とすることができる。
【0025】さらに具体的には、本発明では、アプリケ
ーションプログラム間連携処理を、アプリケーションプ
ログラム間連携処理に関わる個々のアプリケーションプ
ログラム本体にアプリケーションプログラム間連携処理
手続きを実行するための連携インタフェースを付与した
サービスエンティティ、連携させるサービスエンティテ
ィ間の移動先を表す利用順序とサービスエンティティの
利用手続きを有する作業指示書(サービスエージェン
ト)、このサービスエージェントをそれが有する利用順
序に記述された移動先に移動させる通信路を生成、維
持、管理する移動制御手段(ルーティングマネージャ)
から構成する。
【0026】サービスエンティティは、1つのアプリケ
ーションプログラムの実行単位として分散処理システム
を構成する個々のコンピュータ上に配置され、実行され
る。サービスエンティティを構成する連携インタフェー
スは、サービスエージェントの有する制御手続き、入出
力データ手続き、表示手続きの中から現在のサービスエ
ンティティに該当する手続きを選択し、その手続きを実
行することにより、アプリケーションプログラム本体を
実行制御する機能を持つ。また、実行する手続きに対応
するプログラムが他のコンピュータ上にある場合には、
そのプログラムをサービスエンティティが動作している
コンピュータ上にコピーし、そのプログラムを実行する
ことにより、サービスエージェントの要求する手続きを
実行する機能を持つ。
【0027】アプリケーションプログラム間の連携処理
を実現するサービスエージェントは、連携処理において
アプリケーションプログラムを連携させる順序を該当す
るアプリケーションプログラム本体を有するサービスエ
ンティティの利用順序として記述した利用順序と、各サ
ービスエンティティにおいて使用するアプリケーション
プログラムの有する機能を利用する制御手続き、その制
御手続きを用いてサービスエンティティの有するアプリ
ケーションプログラムに実際に処理を行わせるために必
要なデータを格納するデータ項目、データ項目に格納さ
れたデータをアプリケーションプログラムに渡し、その
処理結果データを該当するデータ項目に格納する入出力
データ処理手続き、サービスエージェントの有するデー
タをグラフィカルユーザインタフェースを通して表示す
るため表示手続きからなる利用手続きを有する。
【0028】ルーティングマネージャは、分散処理シス
テムを構成する各コンピュータ上に1つずつ配置され、
動作しており、各コンピュータ上で動作するルーティン
グマネージャ間でサービスエージェントが移動するため
の通信路を構築し、各コンピュータ上で動作するサービ
スエンティティの名称とそのサービスエンティティとの
間でサービスエージェントを移動させるための通信路を
管理する機能を持つ。さらに、他のルーティングマネー
ジャから通信路を通して受け取ったサービスエージェン
トの必要としているサービスエンティティが自コンピュ
ータ上で利用できるか否かを判定し、利用できる場合に
はサービスエージェントをその必要としているサービス
エンティティに送り、利用できない場合にはサービスエ
ージェントを他のコンピュータ上のルーティングマネー
ジャに移動させる機能を持つ。これらの機能を用いて、
サービスエージェントの利用順序に従って、利用順序に
指定されたサービスエンティティにサービスエージェン
トを移動させることにより、サービスエージェントが連
携処理のために必要とするサービスエンティティ間の移
動を行う。
【0029】
【作用】本発明では、アプリケーションプログラム間連
携処理方法を上記の構成とすることにより、アプリケー
ションプログラム間の連携処理を作業指示書(サービス
エージェント)というアプリケーションプログラム本体
とは独立した形式で与えることができる。また、アプリ
ケーションプログラム本体に連携処理のための連携イン
タフェースを付加し、この連携インタフェースがサービ
スエージェントの持つ利用手続きを実行することにより
アプリケーションプログラム間の連携処理手続きをサー
ビスエージェントを通して容易に変更することができ
る。
【0030】分散処理システムを構成する各コンピュー
タ上で動作する移動制御手段としてのルーティングマネ
ージャは、サービスエージェントを送受信するための通
信路を確立し、ルーティングマネージャの動作している
コンピュータ上で動作するサービスエンティティの名称
とそのサービスエンティティとの間でサービスエージェ
ントを送受信するための通信路を管理する。サービスエ
ンティティが起動されると、サービスエンティティ(ア
プリケーションプログラム+連携インタフェース)の動
作するコンピュータ上のルーティングマネージャとの間
にサービスエージェントを送受信するための通信路を確
立し、ルーティングマネージャにサービスエンティティ
の名称を送り、これを受けるルーティングマネージャは
送られたサービスエンティティの名称とそのサービスエ
ンティティへの通信路を管理する。各ルーティングマネ
ージャは、他のコンピュータ上で動作しているルーティ
ングマネージャから通信路を通して受け取ったサービス
エージェントの利用順序に指定されたサービスエンティ
ティがそれ自身の動作するコンピュータ上で利用できる
か否かを判定し、利用できる場合にはサービスエージェ
ントを該当するサービスエンティティに送り、利用でき
ない場合にはサービスエージェントを他のコンピュータ
上のルーティングマネージャに移動させる。
【0031】サービスエンティティは、通信路を通して
サービスエージェントを受け取ると、連携インタフェー
スがそのサービスエージェントの持つ利用手続きの中か
らそのサービスエンティティで使用される手続きとデー
タを取得し、取得した手続きを実行することにより、サ
ービスエンティティの有するアプリケーションプログラ
ム本体の処理を制御し、サービスエージェントの必要と
している処理結果を得、その結果をサービスエージェン
トに送り、サービスエージェント中のデータ項目に格納
する。サービスエージェントから取得した手続きに対応
するプログラムが他のコンピュータ上にあることが指定
されている場合には、連携インタフェースはそのプログ
ラムをサービスエンティティが動作しているコンピュー
タ上にコピーし、そのプログラムを実行することによ
り、サービスエージェントの要求する手続きを実行す
る。サービスエージェントの必要としている処理結果を
格納した後、サービスエンティティの連携インタフェー
スはサービスエージェントの移動先を利用順序にしたが
って更新し、通信路を通じてルーティングマネージャに
サービスエージェントを送る。ルーティングマネージャ
はサービスエンティティから送られたサービスエージェ
ントの利用順序に指定されたサービスエンティティがそ
れ自身の動作するコンピュータ上で利用できるか否かを
判定し、利用できる場合にはサービスエージェントを該
当するサービスエンティティに送り、利用できない場合
にはサービスエージェントを他のコンピュータ上のルー
ティングマネージャに移動させる。
【0032】このようにルーティングマネージャは、サ
ービスエージェントの利用順序に従って分散処理システ
ムを構成するコンピュータ間で利用順序に指定されたサ
ービスエンティティが動作するコンピュータにサービス
エージェントを移動させ、サービスエンティティは受け
取ったサービスエージェントの持つ手続きを連携インタ
フェースが取得し、実行することにより、アプリケーシ
ョンプログラム間の連携処理を行う。
【0033】本発明では、このようにアプリケーション
プログラム間の連携処理手続きをサービスエージェント
というアプリケーションプログラム本体とは独立した形
式で与え、アプリケーションプログラム本体に連携処理
のための連携インタフェースを付加し、この連携インタ
フェースがサービスエージェントの持つ利用手続きを実
行することによりアプリケーションプログラム間の連携
処理手続きをサービスエージェントを通して容易に変更
することができる。
【0034】この連携処理方法を用いることにより、業
務に応じて、その業務を進めるために必要なさまざまな
アプリケーションプログラムとその操作を組み合わせた
利用手順を、サービスエージェントの中に一連の作業手
順と各作業で使用されるアプリケーションプログラムの
利用手続きとして記述し、このサービスエージェントを
コンピュータネットワークに接続されたコンピュータ上
で動作している各種サービスエンティティの間で移動さ
せ、サービスエージェントを受信したサービスエンティ
ティはサービスエージェントに記述された利用手続きを
実行することにより、従来、作業者が行っていた複数の
アプリケーションプログラムを組み合わせた利用や、各
作業者に依頼して行っていたアプリケーションプログラ
ムの操作、及びその結果の取得を自動化するとともに、
一連の作業に必要なアプリケーションプログラムの利用
手順をシステム化することにより、各作業者の作業負荷
を軽減し、作業の流れを円滑にすることができる。
【0035】なお、本発明における好適なアプリケーシ
ョンプログラムとしては、生産スケジュールの作成プロ
グラム、生産システムの動作シミュレーションプログラ
ムなどが考えられる。それぞれがコンピュータによって
制御されている複数の製造設備から構成される工場の生
産工程の管理を行なう際は、工場内の幾つかの生産物
(ロット)に対し、次にどの設備で、どのような加工作
業を行なわせるかを的確に指示する必要があり、従来は
このような指示を工程係が、時々刻々と変わる生産進行
状況を判断して行なわなければならず、煩雑なうえ効率
が悪いという問題があった。本発明によれば、上のよう
な判断や指示をサービスを提供する設備とそれを受ける
ロットの間で情報を交換しながら自律的に(人手に依ら
ず)行なうことが可能であり、以上のような生産システ
ムの自律化などに好適である。また、本発明は、コンピ
ュータネットワークを介して行う種々のサービス(オン
ラインショッピング、切符の予約など)への適用も可能
である。
【0036】
【実施例】以下では、図面を使用して本発明の実施例に
ついて詳細に説明する。本実施例では、アプリケーショ
ンプログラム本体と連携インタフェースから構成される
複数のサービスエンティティの間をサービスエージェン
トが移動しながら、サービスエンティティを通してアプ
リケーションプログラムを連携させ、処理を進めていく
アプリケーションプログラム間連携処理方法について説
明する。
【0037】図1は、本実施例のアプリケーションプロ
グラム間連携処理方法の動作する分散処理システムの構
成を表した図である。本実施例では、上記の分散処理シ
ステムにおいて、利用者が或る作業を行う際に、アプリ
ケーションプログラムAP1→AP2→AP3もしくは
AP4をこの順序で連携して処理させる必要があるもの
とする。また、各アプリケーションプログラムの処理に
おいては、AP1はサービスエージェント(作業指示
書:図3により後述)のデータ項目の項目1、項目2に
格納されたデータを用いて処理を行い、その処理結果デ
ータを項目6に格納し、AP2は項目3、項目4に格納
されたデータを用いて処理を行い、その処理結果データ
を項目7に格納し、AP3は項目4、項目6に格納され
たデータを用いて処理を行い、その処理結果データを項
目8に格納し、AP4は項目5に格納されたデータを用
いて処理を行い、その処理結果データを項目9に格納す
るものとする。
【0038】本分散処理システムは、コンピュータ
(1)、コンピュータ間でデータ通信を行うためのネッ
トワーク(0)、各コンピュータ上で動作するアプリケ
ーションプログラム本体(3)、他のアプリケーション
プログラムと連携して処理を行うための連携インタフェ
ース(30)、アプリケーションプログラム本体(3)
に連携インタフェース(30)を付与したアプリケーシ
ョンプログラム間連携処理の基本となる処理単位である
サービスエンティティ(4)、各アプリケーションプロ
グラム間を移動し連携処理を実現するサービスエージェ
ント(20)、サービスエージェント(20)の移動す
る通信路及びサービスエンティティとの間の通信路を確
立、管理し、サービスエージェント(20)をサービス
エンティティ(4)間で移動させるルーティングマネー
ジャ(10)から構成される。
【0039】本実施例の説明上、コンピュータ(1)の
名称をそれぞれC1、C2、C3とし、各アプリケーシ
ョンプログラム本体(3)の名称をそれぞれAP1、A
P2、AP3、AP4とし、各アプリケーションプログ
ラム本体AP1〜AP4を有するサービスエンティティ
の名称をそれぞれSE1、SE2、SE3、SE4と
し、コンピュータC1〜C3を区別する必要のある場合
にはそれぞれ1a、1b、1cの符号を、アプリケーシ
ョンプログラム本体AP1〜AP4を区別する必要のあ
る場合にはそれぞれ3a、3b、3c、3dの符号を、
サービスエンティティSE1〜SE4を区別する必要の
ある場合にはそれぞれ4a、4b、4c、4dの符号を
用いる。
【0040】図2にコンピュータ(1)の構成例を示
す。コンピュータ(1)は、キーボード(11)やマウ
ス(12)などから構成される入力装置(13)、CP
U(14)やメモリ(15)を格納したコンピュータ本
体である処理装置(16)、データを表示する表示装置
(17)、データやアプリケーションプログラムを格納
する外部記憶装置(18)、データを印刷するプリンタ
(19)から構成される。
【0041】入力装置(13)は、上記以外のタブレッ
ト、タッチパネルでもよい。入力装置(13)には、画
像データを入力するためのスキャナ、音声を入力するた
めのマイクが加えられてもよい。入力装置(13)のマ
ウスは、表示装置(17)上の位置を指定したり、表示
装置(17)に表示されたいくつかの選択肢を含むメニ
ューの中から選択対象を指定するための手段であり、こ
のような指定手段を有する他の装置、例えば光学式ペン
やタッチパネルであってもよい。表示装置(17)とし
て、音声を出力するためのスピーカが加えられてもよ
い。
【0042】ネットワーク(0)は、複数のコンピュー
タ(1)間でデータを送受信する手段であり、特定の場
所内のネットワークである LAN( Local Area Network
)、各拠点間のネットワークである WAN( Wide Area
Network )、ネットワーク同士を相互に接続したネット
ワークであるインターネットのいずれのネットワークで
あってもよい。
【0043】図1に示したルーティングマネージャ(1
0)は、各コンピュータごとに1つずつ存在し、コンピ
ュータ起動時に起動される。ルーティングマネージャ
(10)をコンピュータ起動時に起動する方法として
は、例えば、UNIXのデーモンを用いる方法などがあ
る。
【0044】本実施例によるアプリケーションプログラ
ム間連携処理方法では、上記のネットワーク(0)に接
続されたコンピュータ(1a)で作成されたサービスエ
ージェント(20)がルーティングマネージャ(10)
を通して、ネットワーク(0)に接続されたコンピュー
タ(1)間を移動し、これらのコンピュータ(1)上で
動作するサービスエンティティ(4)の連携インタフェ
ース(30)を通してその中のアプリケーションプログ
ラム本体(3)の処理を実行、制御し、アプリケーショ
ンプログラム間の連携処理を行う。このように、サービ
スエージェント(20)を用い複数のサービスエンティ
ティ(4)を通してアプリケーションプログラム本体
(3)の実行の制御、管理を行い、一連の作業に用いら
れるアプリケーションプログラム間を連携して処理する
ことにより、一連の作業を自動化、支援する。
【0045】本実施例によるアプリケーションプログラ
ム間連携処理方法では、一台以上のコンピュータ(1)
上で動作する2つ以上のアプリケーションプログラム本
体(3)を有するサービスエンティティ(4)で利用す
ることが可能であるが、図1では3台のコンピュータと
各々のコンピュータ上で動作する4つのサービスエンテ
ィティ(4)を、サービスエージェント(20)を用い
て連携させることを例にして説明する。このように、一
台のコンピュータ(1)上には、複数のサービスエンテ
ィティ(4)を含むことができる。コンピュータ(1)
やアプリケーションプログラム本体(3)を有するサー
ビスエンティティ(4)の数は、図示の構成に限定され
るものではない。
【0046】本実施例によるアプリケーションプログラ
ム間連携処理方法で用いられる典型的なサービスエージ
ェント(20)の構造を図3に示す。異なる複数個のサ
ービスエージェント(20)が同時にシステム内を流れ
うる。サービスエージェント(20)は、個々の利用者
がいずれかのコンピュータ上で作成する。また、これに
加えて、作成されたサービスエージェント自体が、必要
に応じて新たなサービスエージェントを生成することも
ある。
【0047】図3に示すように、サービスエージェント
(20)は、個々のサービスエージェント(20)を区
別するための識別子(201)、サービスエージェント
の移動先の一覧を記述した移動先リスト一覧(20
2)、サービスエージェントが移動してきた経路を管理
する移動リスト一覧(203)、現時点でサービスエー
ジェント(20)が必要としているアプリケーションプ
ログラム本体(3)を持つサービスエンティティ(4)
の名称とそのサービスエンティティ(4)が動作してい
るコンピュータの名称を示す移動先名(204)、連携
処理を行う複数のサービスエンティティ(4)が必要と
する全てのデータ項目(211〜219)を列挙した全
データ項目(21)、全データ項目(21)の中の各デ
ータ項目(211〜219)に応じた入力方法を記述し
たデータ入力手続き(22)、全データ項目(21)の
中の各データ項目やサービスエンティティに応じた出力
方法を記述したデータ出力手続き(23)、データ入力
手続き(22)を用いて入力されたデータを処理する方
法である入力データ処理手続き(24)、このサービス
エージェント(20)の移動先を決定し、決定した移動
先にサービスエージェント(20)を送るための方法で
ある移動手続き(25)、各サービスエンティティ
(4)の持つアプリケーションプログラム本体(3)の
実行を制御するための手続きである制御手続き(2
6)、新たなサービスエージェントを生成するための手
続きである生成手続き(27)から構成される。
【0048】サービスエージェント(20)の構造のう
ち、識別子(201)、移動先リスト一覧(202)、
移動リスト一覧(203)、移動先名(204)は、サ
ービスエージェント(20)の作成時に必ず作成される
項目である。上記以外の、全データ項目(21)、デー
タ入力手続き(22)、データ出力手続き(23)、入
力データ処理手続き(24)、移動手続き(25)、制
御手続き(26)、生成手続き(27)の各項目や手続
きは、サービスエージェント(20)を用いて行われる
サービスエンティティ(4)間の連携処理の方法ごとに
異なる要素であり、全ての要素が必ず存在するわけでは
ない。
【0049】全データ項目(21)は、何等かの値を持
つデータ項目(211〜215)である入力済みデータ
項目(270)と、値を持たないデータ項目(216〜
219)である未入力データ項目(280)とから構成
される。入力済みデータ項目(270)や未入力データ
項目(280)は、サービスエージェント(20)が或
るサービスエンティティ(4)に受け取られた時に、そ
のサービスエンティティ(4)に渡すべきデータを格納
しているデータ項目である出力データ項目(271)、
或るサービスエンティティ(4)の実行結果データを格
納するデータ項目である入力データ項目(281)を含
んでいる。なお、ここでの入力および出力の別は、サー
ビスエージェント(20)から見たものであり、サービ
スエージェント(20)からサービスエンティティ
(4)へのデータの受け渡しを出力とし、その逆を入力
としている。
【0050】例えば、アプリケーションプログラム本体
AP1が実行時に必要とするデータが項目1(21
1)、項目2(212)に格納されており、その実行結
果データが項目6(216)に格納されるとすると、サ
ービスエンティティSE1では、項目1(211)と項
目2(212)が出力データ項目(271)、項目6
(216)が入力データ項目(281)である。アプリ
ケーションプログラムAP2が実行時に必要とするデー
タが項目3(213)、項目4(214)に格納されて
おり、その実行結果データが項目7(217)に格納さ
れるとすると、サービスエンティティSE2では、項目
3(213)と項目4(214)が出力データ項目、項
目7(217)が入力データ項目である。同様に、アプ
リケーションプログラム本体AP3が実行時に必要とす
るデータが項目4(214)、項目6(216)に格納
されており、その実行結果データが項目8(218)に
格納されるとすると、サービスエンティティSE3で
は、項目4(214)と項目6(216)が出力データ
項目(271)、項目8(218)が入力データ項目
(281)であり、アプリケーションプログラム本体A
P4が実行時に必要とするデータが項目5(215)に
格納されており、その実行結果データが項目9(21
9)に格納されるとすると、サービスエンティティSE
4では、項目5(215)が出力データ項目(27
1)、項目9(219)が入力データ項目(281)と
なる。このように出力データ項目(271)や入力デー
タ項目(281)は、サービスエージェント(20)が
受け取られたサービスエンティティ(4)ごとに異な
る。
【0051】データ入力手続き(22)には、未入力デ
ータ項目(280)の中からサービスエンティティ
(4)の持つアプリケーションプログラム本体(3)に
応じた入力データ項目(281)を選択するための手続
きである入力データ選択手続き(221)、利用者によ
り画面から入力された値を取得するための手続きである
入力データ取得手続き(222)、アプリケーションプ
ログラム本体(3)の出力結果データを取得するための
手続きであるデータ取得手続き(223)、このデータ
取得手続き(223)を用いて取得されたアプリケーシ
ョンプログラム本体(3)の出力結果データを入力デー
タ項目(281)のデータ形式に変換するための手続き
である入力データ変換手続き(224)、入力データ取
得手続き(222)を用いて得られた値や入力データ変
換手続き(224)を用いて入力データ項目(281)
のデータ形式に変換された値を入力データ項目(28
1)に格納するための手続きである入力データ格納手続
き(225)がある。
【0052】ここでいう「データ形式の変換」とは、デ
ータの書式の変換を意味する。具体的な例として、或る
データが属性名「個数」、「単価」を持ち、「個数」の
値として「10」、「30」、及び「単価」の値として
「20」、「40」を、アプリケーションプログラムが
表1に示すような「アプリケーションプログラムの実行
結果の出力書式」で出力し、入力データ項目には表2に
示すような「サービスエージェントの入力データ項目の
書式」で格納される場合、入力データ変換手続きは、以
下のように、「アプリケーションプログラムの実行結果
の出力書式」から「サービスエージェントの入力データ
項目の書式」への書式の変換を行なう。
【0053】
【表1】
【0054】
【表2】
【0055】データ出力手続き(23)には、入力済み
データ項目(270)の中からサービスエンティティ
(4)の持つアプリケーションプログラム本体(3)に
応じた出力データ項目(281)を選択するための手続
きである出力データ選択手続き(231)、この出力デ
ータ選択手続き(231)を用いて選択された出力デー
タ項目(281)の値をアプリケーションプログラム本
体(3)のデータ入力形式に変換するための手続きであ
る出力データ変換手続き(232)、この出力データ変
換手続き(232)を用いて変換された出力データ項目
(281)の値をアプリケーションプログラム本体
(3)に渡すための手続きであるパラメタ設定手続き
(233)、出力データ変換手続き(232)を用いて
変換された出力データ項目(281)の値を画面に表示
するための手続きである出力データ表示手続き(23
4)がある。
【0056】入力データ処理手続き(24)は、入力デ
ータ取得手続き(222)やデータ取得手続き(22
3)を用いて取得されたデータを処理するための手続き
である。例えば、入力データ取得手続き(222)を用
いて取得された複数のデータの和を計算する処理などが
この入力データ処理手続き(24)として記述される。
【0057】移動手続き(25)は、サービスエージェ
ント(20)の移動先を決定し、決定した移動先にサー
ビスエージェント(20)を送るための手続きである。
移動手続き(25)の移動先の決定方法には、サービス
エージェント作成時に与えられた移動順序に従って次の
移動先を決定する方法、入力済みデータ項目(270)
や未入力データ項目(280)の中の任意のデータ項目
の組み合わせに応じてサービスエージェントの移動先を
決定する方法がある。すなわち、サービスエージェント
作成時に与えられた移動順序に従って次の移動先を決定
する場合は、サービスエージェント(20)の移動先リ
スト一覧(202)の先頭要素を取り出し、それを移動
先名(204)に格納し、移動先リスト一覧(202)
の値を更新し、更新したサービスエージェント(20)
を後述する入出力チャネル(403)を通してルーティ
ングマネージャ(10)に送る。任意のデータ項目の組
合せに応じて移動先を決定する場合は、図21に示すよ
うに、着目するデータ項目の値を調べ、その値により決
定される移動先を移動先名(204)に格納し、移動先
名を更新したサービスエージェント(20)を入出力チ
ャネル(403)を通してルーティングマネージャ(1
0)に送る。
【0058】制御手続き(26)は、サービスエンティ
ティ(4)の連携インタフェース(30)で実行される
アプリケーションプログラム本体(3)の実行を制御す
るための手続きであり、アプリケーションプログラム本
体(3)の起動・終了、アプリケーションプログラム本
体(3)のコマンド実行、及び複数のコマンドの組み合
わせである制御スクリプトがある。
【0059】生成手続き(27)は、新たなサービスエ
ージェント(20)を生成するための手続きであり、サ
ービスエージェントを生成する制御スクリプトがある。
【0060】図4〜図6に、各コンピュータ上で動作す
るルーティングマネージャ(10)により構築される論
理的な通信路の接続形態を示す。ルーティングマネージ
ャ(10)は、複数のコンピュータ間の論理的通信路の
確立と維持、各サービスエンティティ(4)との間の入
出力チャネル(図6:403)の確立と維持を行う。論
理的通信路は、相互に接続された2つのルーティングマ
ネージャ(10)を接続する論理的通信路であるチャネ
ル(40)の組み合わせから構成される。図4では、コ
ンピュータC1、C2、C3上で動作する3つのルーテ
ィングマネージャ(10)RM1、RM2、RM3の間
で、RM1とRM2、RM2とRM3が接続され、RM
1−RM2−RM3という論理的通信路を構成している
ことを表している。図5は、図4に示した論理的通信路
を構成しているルーティングマネージャ(10)RM2
に新たなルーティングマネージャ(10)RM4が接続
され、論理的通信路の構成が変化した状態を示す図であ
る。図6は、或る一台のコンピュータ内におけるルーテ
ィングマネージャ(10)RM3とサービスエンティテ
ィ(4)SE3、SE4が入出力チャネル(403)に
より接続された接続状態、及びサービスエンティティ
(4)を構成する連携インタフェース(30)とアプリ
ケーションプログラム本体(3)の間がアプリケーショ
ンインタフェース(38)で接続された接続状態を表し
ている。入出力チャネル(403)は、ルーティングマ
ネージャ(10)とサービスエンティティ(4)を接続
した通信路であり、実際にはサービスエンティティ
(4)内の連携インタフェース(30)とルーティング
マネージャ(10)の間を接続する。アプリケーション
インタフェース(38)は、サービスエンティティ
(4)内に生成される連携インタフェース(30)とア
プリケーションプログラム本体(3)の入出力を接続す
るインタフェースである。
【0061】ルーティングマネージャ(10)は、チャ
ネル(40)を接続するための受け口となるチャネルポ
ート(401)を持つ。チャネルポートは個々のチャネ
ルポート(401)を識別するためのチャネルポート番
号を持つ。チャネルポート番号は、ルーティングマネー
ジャ(10)により、チャネルポート(401)生成時
に与えられる。すなわち、チャネル(40)とは2つの
ルーティングマネージャ(10)のチャネルポート(4
01)を接続した通信路であり、チャネル(40)を生
成するとは、任意の2つのルーティングマネージャ(1
0)のチャネルポート(401)の間を接続することで
ある。
【0062】ルーティングマネージャ(10)は、チャ
ネル(40)を生成することによりチャネルポート(4
01)が使用されると新たなチャネルポート(402)
を1つ生成する。そのためルーティングマネージャ(1
0)は、常に他と接続されていない空きチャネルポート
(402)を持つ。この空きチャネルポート(402)
は、他のルーティングマネージャ(10)から接続要求
がなされた場合にそのルーティングマネージャ(10)
との間でチャネル(40)を生成するために使用され
る。
【0063】ルーティングマネージャ(10)が生成し
た空きチャネルポート(402)は、サービスエンティ
ティ(4)とルーティングマネージャ(10)を接続す
る際にも、ルーティングマネージャ(10)同士を接続
する場合と同様に用いられる。すなわち、ルーティング
マネージャ(10)とサービスエンティティ(4)との
間に入出力チャネル(403)を生成する場合には、サ
ービスエンティティ(4)が起動されたときに新たな空
きチャネルポートをサービスエンティティ(4)の連携
インタフェース(30)に生成し、サービスエンティテ
ィ(4)からルーティングマネージャ(10)に接続要
求を行い、ルーティングマネージャ(10)が空きチャ
ネルポート(402)とサービスエンティティ(4)の
連携インタフェース(30)の空きチャネルポートの間
に入出力チャネル(403)を作成し、ルーティングマ
ネージャ(10)のみが新たな空きチャネルポート(4
02)を生成する。ルーティングマネージャ(10)
は、このようにチャネル(40)が生成されると、新た
な空きチャネルポート(402)を1つ生成し、常に1
つの空きチャネルポート(402)が残るようにチャネ
ルポートの管理をする。
【0064】サービスエンティティ(4)は、起動時に
ルーティングマネージャ(10)との間で入出力チャネ
ル(403)を生成するための空きチャネルポート(4
02)を連携インタフェース(30)に生成し、ルーテ
ィングマネージャ(10)との間で入出力チャネル(4
03)を生成することに加え、連携インタフェース(3
0)とアプリケーションプログラム本体(3)の入出力
を接続するためのアプリケーションインタフェース(3
8)を持ち、このアプリケーションインタフェース(3
8)を用いて連携インタフェース(30)とアプリケー
ションプログラム本体(3)の間の入出力、すなわち連
携インタフェース(30)からアプリケーションプログ
ラム本体(3)にコマンドを送ったり、アプリケーショ
ンプログラム本体(3)の実行結果データを連携インタ
フェース(30)に受け取ったりすること、を行う。
【0065】チャネルポート(401)は、受信時のバ
ッファリング機能を持ち、チャネル(40)や入出力チ
ャネル(403)を通して送られてきたデータを、読み
だし要求があるまで保持する。
【0066】図7に、ルーティングマネージャ(10)
を実現するための処理装置(16)におけるプログラム
の構造を示す。ルーティングマネージャ(10)は、処
理装置(16)のメモリ(15)上におかれる管理テー
ブル作成プログラム(41)、接続要求プログラム(4
2)、接続管理プログラム(43)、移動管理プログラ
ム(44)、接続待ちプログラム(45)の各プログラ
ムと、接続先管理テーブル(46)、サービスエンティ
ティ管理テーブル(47)、接続管理テーブル(48)
から構成される。
【0067】処理装置(16)のメモリ(15)上にお
かれたルーティングマネージャ(10)が起動される
と、まず管理テーブル作成プログラム(41)が外部記
憶装置(18)に格納されている接続先コンピュータの
名称の一覧を読み込み、処理装置(16)のメモリ(1
5)上に接続先管理テーブル(46)を作成する。次に
ルーティングマネージャ(10)の動作するコンピュー
タで動作するサービスエンティティの名称の一覧を読み
込み、処理装置(16)のメモリ(15)上にサービス
エンティティ管理テーブル(47)を作成する。
【0068】接続要求プログラム(42)は、管理テー
ブル作成プログラム(41)により処理装置(16)の
メモリ(15)上に作成された接続先管理テーブル(4
6)に格納されたコンピュータ名の一覧の先頭から順に
接続先コンピュータ名を取得し、その接続先コンピュー
タに対して接続を要求する。接続ができない場合には次
の接続先コンピュータ名を取得し、接続ができるまで順
次接続要求を行う。接続先管理テーブル(46)に格納
された接続先コンピュータ名がなくなるまで、順次、接
続要求を行っても接続できない場合、エラーメッセージ
を出力し、処理を終了する。
【0069】接続管理プログラム(43)は、接続要求
プログラム(42)により接続されたコンピュータ(接
続先コンピュータ)と接続が完了した旨の報告を受け取
ると、接続要求を行ったコンピュータ(接続元コンピュ
ータ)のコンピュータ名を接続先コンピュータに送信
し、接続先コンピュータから接続先コンピュータ名が送
信されてくるのを待つ。接続先コンピュータから送られ
た接続先コンピュータ名を受け取ると、その接続先コン
ピュータの名称と接続先コンピュータに接続されたチャ
ネル(40)のチャネルポート番号のペアを接続管理テ
ーブル(48)に格納する。後述する接続待ちプログラ
ム(45)がチャネルポート番号を受け取ったことによ
り制御が渡されてきた場合、そのチャネルポート番号か
ら接続元コンピュータ名、もしくはサービスエンティテ
ィ(4)の名称が送られてくるのを待つ。接続元コンピ
ュータ名、もしくはサービスエンティティ(4)の名称
を受け取るとその名称とその間に接続された論理的通信
路のチャネルポート番号のペアを接続管理テーブル(4
8)に格納し、送られてきた名称が接続元コンピュータ
名の場合にはその接続元コンピュータに対して接続先コ
ンピュータ名を送信する。
【0070】移動管理プログラム(44)は、接続管理
プログラム(43)が接続元コンピュータ名またはサー
ビスエンティティ(4)の名称とチャネルポート番号の
ペアを接続管理テーブル(48)に格納するか、或る一
定時間の間に接続要求がなされなかった場合に起動され
る。移動管理プログラム(44)は、接続管理テーブル
(48)の先頭から順にチャネルポート番号を取得し、
そのチャネルポート番号(401)に接続されたチャネ
ル(40)からサービスエージェント(20)を読み出
し、読み出したサービスエージェント(20)の移動先
名(204)に指定されたサービスエンティティの名称
が接続管理テーブル(48)に格納されているか否かを
チェックする。格納されている場合には、そのサービス
エージェント(20)をサービスエンティティ(4)に
送る。格納されていない場合には、接続されている他の
ルーティングマネージャ(10)を接続管理テーブル
(48)から検索し、その結果得られたルーティングマ
ネージャ(10)にそのサービスエージェント(20)
を送る。チャネル(40)から読み出すサービスエージ
ェント(20)がない場合には、次のチャネルポート番
号(401)に接続されたチャネル(40)から同様に
サービスエージェント(20)を読み出す。これを接続
管理テーブル(48)に格納されたチャネルポート番号
(401)がなくなるまで繰り返す。接続管理テーブル
(48)に格納されたチャネルポート番号の全てについ
て順次読み出しを行うと次の接続待ちプログラム(4
5)に制御を渡す。
【0071】接続待ちプログラム(45)は、或る一定
時間他のルーティングマネージャ(10)もしくはサー
ビスエンティティ(30)からの接続要求を待つ。或る
一定時間の間に接続要求があれば、その接続要求元のル
ーティングマネージャ(10)との間でチャネル(4
0)を接続するか、接続要求元のサービスエンティティ
(30)との間で入出力チャネル(403)を接続し、
新たな空きチャネルポート(402)を生成し、新たに
接続されたチャネル(40)の接続されたチャネルポー
ト(401)のチャネルポート番号を接続管理プログラ
ム(43)に送る。或る一定時間の間に接続要求がなけ
れば、移動管理プログラム(44)に制御を渡す。
【0072】図8(a)に接続先管理テーブル(46)
の構造を、図8(b)にサービスエンティティ管理テー
ブル(47)の構造を、図8(c)に接続管理テーブル
(48)の構造を示す。
【0073】接続先管理テーブル(46)は、接続先の
コンピュータの名称の一覧を保持する接続先コンピュー
タ名フィールド(460)を持つ。接続先コンピュータ
名フィールド(460)は、ルーティングマネージャ
(10)の起動時に接続要求を行うコンピュータの名称
であるコンピュータ名(461)を値として持つ。この
接続先管理テーブル(46)には、当然ながら自己のコ
ンピュータの情報は含まない。
【0074】サービスエンティティ管理テーブル(4
7)は、ルーティングマネージャ(10)の動作するコ
ンピュータ上で動作するサービスエンティティ(4)の
名称の一覧を保持するサービスエンティティ名フィール
ド(470)を持つ。サービスエンティティ名フィール
ド(470)は、ルーティングマネージャ(10)の動
作するコンピュータ上で動作するサービスエンティティ
(4)の名称(471)を値として持つ。
【0075】接続管理テーブル(48)は、チャネル
(40)により接続された他のルーティングマネージャ
(10)の動作するコンピュータの名称や入出力チャネ
ル(403)により接続されたサービスエンティティ
(4)の名称を保持する接続先名称フィールド(48
0)、それらの接続先との接続に用いられているチャネ
ル(40)や入出力チャネル(403)が接続されてい
るチャネルポート(401)のチャネルポート番号を保
持するチャネルポート番号フィールド(481)、接続
先がルーティングマネージャ(10)であるかサービス
エンティティ(4)であるかを区別するための接続先種
別フィールド(484)を持つ。接続先名称フィールド
(480)は、ルーティングマネージャ(10)にチャ
ネル(40)や入出力チャネル(403)を用いて接続
されている接続先名(482)を値として持ち、チャネ
ルポート番号フィールド(481)は、チャネル(4
0)や入出力チャネル(403)が接続されているチャ
ネルポート番号(483)を接続先名(482)に対応
付けて持つ。接続先種別フィールド(484)は、チャ
ネルの接続先がルーティングマネージャであることを示
すルーティングマネージャ、サービスエンティティであ
ることを示すサービスエンティティのどちらか一方の値
を取る。この2つの値をあわせて接続先種別名(48
5)と呼ぶ。
【0076】図9に連携インタフェース(30)を実現
するための処理装置(16)におけるプログラムの構造
を示す。連携インタフェース(30)は、処理装置(1
6)のメモリ(15)上におかれるデータ作成プログラ
ム(31)、データ出力プログラム(32)、実行制御
プログラム(33)、データ取得プログラム(34)、
データ格納プログラム(35)、移動先操作プログラム
(36)、関数制御プログラム(37)の各プログラム
と、関数テーブル(371)とから構成される。関数テ
ーブル(371)を設けることにより、サービスエージ
ェント(20)自体にプログラムを保持する必要がなく
なり、コンピュータ間のサービスエージェント(20)
の伝送時の負荷を軽減することができる。
【0077】連携インタフェース(30)は、入出力チ
ャネル(403)を通じてサービスエージェント(2
0)を受け取ると、受け取ったサービスエージェント
(20)をデータ作成プログラム(31)に渡す。
【0078】データ作成プログラム(31)は、受け取
ったサービスエージェント(20)の中の出力データ選
択手続き(231)を用いて、入力済みデータ項目(2
70)の中からアプリケーションプログラム本体(3)
に渡すデータを格納しているデータ項目である出力デー
タ項目(271)を選択する。
【0079】出力データ項目(271)が決定される
と、サービスエージェント(20)の中の出力データ変
換手続き(232)を用いて、出力データ項目(27
1)に格納されているデータからアプリケーションプロ
グラム本体(3)に渡すデータ、もしくは画面に出力す
るデータを作成し、どちらのデータであるかのタグを付
加し、データ出力プログラム(32)に作成したデータ
を渡す。
【0080】データ出力プログラム(32)にデータが
渡されると、データ出力プログラム(32)は受け取っ
たデータのタグからデータを画面に出力するか、アプリ
ケーションプログラム本体(3)に送るかを判定し、画
面に出力する場合にはサービスエージェント(20)の
出力データ表示手続き(234)を用いて画面に出力す
る。アプリケーションプログラム本体(3)に渡す場
合、データを実行制御プログラム(33)に渡す。サー
ビスエージェント(20)に記述された出力データ表示
手続き(234)が、プログラムではなく単なる関数名
だけの場合、データ出力プログラム(32)は、関数制
御プログラム(37)にその関数名を渡す。
【0081】関数制御プログラム(37)は、関数名を
受け取ると、関数テーブル(371)からその関数名に
該当する関数を検索し、検索したプログラムを実行す
る。実行制御プログラム(33)は、データ出力プログ
ラム(32)からのデータを受け取ると、サービスエー
ジェント(20)の制御手続き(26)を実行してアプ
リケーションプログラム本体(3)の実行を制御する。
アプリケーションプログラム本体(3)を実行する際
に、アプリケーションプログラム本体(3)にデータを
渡す必要がある場合には、サービスエージェント(2
0)のパラメタ設定手続き(233)を用いてアプリケ
ーションプログラム本体(3)にデータを送る。アプリ
ケーションプログラム本体(3)の実行を制御し、制御
手続きの実行が終了すると、サービスエージェント(2
0)のデータ取得手続き(223)を用いてアプリケー
ションプログラム本体(3)の実行結果データを取得
し、取得したデータをデータ取得プログラム(34)に
渡す。制御手続き(26)が関数名のみであったり、制
御手続き(26)の中に関数名のみの処理が含まれてい
る場合には、その関数名を関数制御プログラム(37)
に渡し、該当する関数のプログラムを実行する。
【0082】データ取得プログラム(34)は、実行結
果データを受け取るとサービスエージェント(20)の
入力データ選択手続き(221)を用いてサービスエー
ジェント(20)の全データ項目(21)の中からアプ
リケーションプログラム本体(3)の実行結果データを
格納するデータ項目である入力データ項目(281)を
選択する。画面が出力されている場合には、サービスエ
ージェント(20)の入力データ取得手続き(222)
を用いて画面に入力されたデータのうち、必要なデータ
のみを取得する。これらの取得したデータ(アプリケー
ションプログラム本体(3)の実行結果データ、画面か
らの入力データ)と入力データ項目(281)を、デー
タ格納プログラム(35)に渡す。サービスエージェン
ト(20)に記述された入力データ取得手続き(22
2)が、プログラムではなく単なる関数名だけの場合、
データ取得プログラム(34)は、関数制御プログラム
(37)にその関数名を渡し、該当する関数名の関数の
プログラムを実行する。
【0083】データ格納プログラム(35)は、データ
取得プログラム(34)からのデータと入力データ項目
(281)を受け取ると、サービスエージェント(2
0)の入力データ処理手続き(24)の領域を参照し、
入力データ処理手続き(24)があれば、その入力デー
タ処理手続き(24)を用いて、受け取ったデータ及び
全項目データ(21)に格納されているデータを処理
し、処理後のデータを入力データ変換手続き(224)
を用いて、受け取った入力データ項目(281)のデー
タ形式に変換し、変換したデータを入力データ項目(2
81)のそれぞれのデータ項目に格納する。入力データ
処理手続き(24)がない場合には、入力データ変換手
続き(224)を用いて、受け取った入力データ項目
(281)のデータ形式に変換し、変換したデータを入
力データ項目(281)のそれぞれのデータ項目に格納
する。
【0084】移動先操作プログラム(36)は、入力デ
ータ項目(281)にデータが格納されると呼び出さ
れ、移動先リスト一覧(202)の先頭要素を取りだし
それを移動先名(204)に格納し、このようにして移
動先名(204)を更新したサービスエージェント(2
0)を入出力チャネル(403)を通してルーティング
マネージャ(10)に送る。
【0085】図10(a)に関数制御プログラム(3
7)の使用する関数テーブル(371)の構造を示す。
関数テーブル(371)は、関数名フィールド(37
2)と関数の処理プログラム本体である処理フィールド
(373)からなる。処理フィールド(373)は、関
数の処理内容を記述したプログラム(373a)、また
は、関数の処理内容を記述したプログラムの格納位置
(373b)のいずれかが記述される。
【0086】関数制御プログラム(37)は、該当する
関数名の処理フィールド(373)がプログラム(37
3a)であれば、そのプログラムを実行する。プログラ
ムの格納位置(373b)である場合、その格納位置に
あるプログラム(374)をネットワーク(0)を通じ
て処理装置(16)のメモリ(15)上に読み込んだ
(コピーした)後、そのプログラムを実行する。このよ
うな関数テーブルにプログラム自体ではなくプログラム
の格納位置を保持しておくことにより、他のコンピュー
タ上にあるプログラムを共用することができる。これ
は、関数テーブルのメモリ容量を軽減するとともに、プ
ログラムの変更時に1カ所のプログラムのみの変更で済
むという利点を有する。
【0087】プログラムの格納位置(373b)は、図
10(b)の記述形式により指定される。格納位置は、
プログラムの格納されているコンピュータの名称(37
5a)とコンピュータ名(375a)で指定されたコン
ピュータ上のプログラムの格納位置を表す格納パス(3
75c)、コンピュータ名(375a)と格納パス(3
75c)を区別するための区切り記号(375b)を用
いて、コンピュータ名(375a)、区切り記号:(3
75b)、格納パス(375c)の形式で指定する。
【0088】図11(a)にサービスエージェント(2
0)の移動先リスト一覧(202)に格納される移動先
リスト(91)の記述形式を、その具体的記述例を図1
1(b)に示す。
【0089】移動先リスト(91)は、サービスエージ
ェント(20)を移動させる先のコンピュータの名称で
ある移動先コンピュータ名(912)、移動先のコンピ
ュータで利用するサービスエンティティ(4)の名称で
あるサービスエンティティ名(913)の組みである移
動先(911)を、サービスエージェント(20)の移
動順序に従って矢印(→)でつないだものである。移動
先のコンピュータ名が分からない場合には、移動先コン
ピュータ名(912)に Unknownを指定する。
【0090】図11(b)の例では、サービスエージェ
ント(20)は、C1という名称のコンピュータのSE
1という名称のサービスエンティティ(4)の持つアプ
リケーションプログラム本体(3)AP1を用いて処理
を行った後、C2という名称のコンピュータのSE2と
いう名称のサービスエンティティ(4)の持つアプリケ
ーションプログラム本体(3)AP2を用いて処理を行
い、次にC3という名称のコンピュータのSE3という
名称のサービスエンティティ(4)の持つアプリケーシ
ョンプログラム本体(3)AP3を用いて処理を行い、
最後にサービスエンティティ(4)SE4の動作するコ
ンピュータ名は不明であるが、SE4という名称のサー
ビスエンティティ(4)の持つアプリケーションプログ
ラム本体(3)AP4を用いて処理を行うことを示して
いる。
【0091】図12(a)にサービスエージェント(2
0)の移動リスト一覧(203)に格納される移動リス
トの記述形式(101)を、その具体的記述例を図12
(b)に示す。
【0092】移動リスト一覧(203)は、サービスエ
ージェント(20)が利用するサービスがネットワーク
上のどこのコンピュータ上で動作しているかを探して移
動する際に用いる。移動リスト一覧(203)は、具体
的には、図11で示した移動先リストの移動先コンピュ
ータ名(912)がUnknownの時に用いられる。
移動先コンピュータ名(912)がUnknownの場
合、各コンピュータのルーティングマネージャ(10)
は、サービスエージェント(20)の移動先名(20
4)に指定されている名称を持つサービスエンティティ
(4)が存在するか否かをチェックし、存在しない場
合、そのコンピュータの名称を移動コンピュータ名(1
02)に格納し、他のコンピュータ上のルーティングマ
ネージャ(10)にサービスエージェント(20)を送
る。
【0093】移動リスト(101)は、移動先コンピュ
ータ名(912)がUnknownの場合に、サービス
エージェント(20)の移動先名(204)に指定され
ているサービスエンティティ(4)が存在しないコンピ
ュータの名称をサービスエージェント(20)が移動し
てきた順序に従って矢印(→)でつないだものである。
移動リスト(101)は、サービスエージェント(2
0)が、移動するたびにそのコンピュータ名が順次、追
加されていき、サービスエージェント(20)の移動先
名(204)に指定されているサービスエンティティ
(4)が動作するコンピュータが見つかった場合にクリ
アされる。このように、一度探索したコンピュータをこ
のリスト101に保存し、同一のコンピュータを何度も
検索するのを防ぐことができる。移動リスト一覧(20
3)は、これが無い場合、エージェント(20)が利用
するサービスを探して同じコンピュータを何度も訪れる
可能性があり、このような事態を回避して効率的なサー
ビスの探索を行なう為には有用なものである。
【0094】図12(b)の例では、サービスエージェ
ント(20)の移動先名(204)に指定されているサ
ービスエンティティ(4)がC1という名称のコンピュ
ータに存在せず、次にC2という名称のコンピュータに
も存在しなかったことを示している。
【0095】サービスエージェント(20)を用いたア
プリケーションプログラム間の連携処理方法を実現する
ためにルーティングマネージャ(10)が行うサービス
エージェント(20)の移動処理手続きのフローを図1
3〜図16に示す。
【0096】サービスエージェント(20)は、それが
作成されたコンピュータのルーティングマネージャ(1
0)に送られる。この時点で、サービスエージェント
(20)の移動先リスト一覧(202)の値は図11
(b)に示した移動順序であるとする。この時のサービ
スエージェント(20)の移動先名(204)の値は、
移動先リスト一覧(202)の値である移動先リスト
(91)の先頭の要素SE1(911a)となる。
【0097】ルーティングマネージャ(10)は、サー
ビスエージェント(20)を受け取る(1100)と、
まずサービスエージェント(20)の移動先名(20
4)の移動先コンピュータ名がルーティングマネージャ
(10)の動作しているのコンピュータ名と同じか否か
をチェックする(1101)。
【0098】サービスエージェント(20)の移動先名
(204)の移動先コンピュータ名とルーティングマネ
ージャ(10)の動作しているコンピュータ名が異なる
場合、接続管理テーブル(48)の接続先種別フィール
ド(484)の接続先種別名(485)がルーティング
マネージャである接続先の中から、接続先名称フィール
ド(480)の接続先名(482)が移動先コンピュー
タ名と同じ接続先が登録されているか否かをチェックす
る(1102)。移動先コンピュータ名が登録されてい
る場合、その移動先コンピュータ名に該当する接続先名
(482)のチャネルポート番号フィールド(481)
に格納されているチャネルポート番号(483)を取り
だし(1103)、そのチャネルポート番号(483)
に接続されているチャネル(40)を通して移動先コン
ピュータのルーティングマネージャ(10)にサービス
エージェント(20)を送る(1104)。登録されて
いない場合、接続管理テーブル(48)の接続先種別フ
ィールド(484)の接続先種別名(485)がルーテ
ィングマネージャである接続先の中から、最初に登録さ
れている接続先名(482)のチャネルポート番号フィ
ールド(481)に格納されているチャネルポート番号
(483)を取りだし(1105)、そのチャネルポー
ト番号に接続されたチャネル(40)を通してチャネル
に接続されている登録先コンピュータのルーティングマ
ネージャ(10)にサービスエージェント(20)を送
る(1106)。
【0099】サービスエージェント(20)の移動先名
(204)の移動先コンピュータ名(912)とルーテ
ィングマネージャ(10)の動作しているコンピュータ
名が同じである場合、接続管理テーブル(48)の接続
先種別フィールド(484)に格納されている接続先種
別名(485)がサービスエンティティである接続先の
中から接続先名称フィールド(480)の接続先名(4
82)が移動先名(204)のサービスエンティティ名
(913)と同じサービスエンティティが登録されてい
るか否かをチェックする(1107)。登録されていれ
ば、その登録されているサービスエンティティのチャネ
ルポート番号フィールド(481)に格納されているチ
ャネルポート番号(483)を取得し(1108)、そ
のチャネルポート番号(483)に接続されている入出
力チャネル(403)を通して、サービスエンティティ
(4)の連携インタフェース(30)にサービスエージ
ェント(20)を送る(1109)。
【0100】サービスエンティティ名が接続管理テーブ
ル(48)に登録されていなければ、サービスエンティ
ティ管理テーブル(47)にサービスエンティティ名が
登録されているか否かをチェックする(1110)。サ
ービスエンティティ管理テーブル(47)にサービスエ
ンティティ名が登録されていれば、そのサービスエンテ
ィティ(4)を起動する(1111)。起動されたサー
ビスエンティティ(4)の連携インタフェース(30)
は、ルーティングマネージャ(10)に接続要求を行
う。ルーティングマネージャ(10)は、サービスエン
ティティ(4)の連携インタフェース(30)からの接
続要求を待ち(1112)、接続要求を受け取るとルー
ティングマネージャ(10)と連携インタフェース(3
0)間の入出力チャネル(403)を生成し(111
3)、起動したサービスエンティティ名とその入出力チ
ャネル(403)のチャネルポート番号を接続管理テー
ブル(48)に登録し(1114)、生成した入出力チ
ャネル(403)を通してサービスエージェント(2
0)をサービスエンティティ(4)の連携インタフェー
ス(30)に送る(1109)。サービスエンティティ
管理テーブル(47)にサービスエンティティ名が登録
されていなければ、サービスエージェント(20)の移
動先名(204)の移動先コンピュータ名(912)を
Unknownに変更し(1115a)、接続管理テー
ブル(48)の接続先種別フィールド(484)の接続
先種別名(485)がルーティングマネージャである接
続先の中から、最初に登録されている接続先名(48
2)のチャネルポート番号フィールド(481)に格納
されているチャネルポート番号(483)を取りだし
(1105)、そのチャネルポート番号に接続されたチ
ャネル(40)を通してチャネルに接続されている登録
先コンピュータのルーティングマネージャ(10)にサ
ービスエージェント(20)を送る(1106)。
【0101】サービスエージェント(20)の移動先名
(204)の移動先コンピュータ名(912)がUnk
nownの場合、図14に移り、移動先名(204)の
サービスエンティティ名が、接続管理テーブル(48)
の接続先種別フィールド(484)の接続先種別名(4
85)がサービスエンティティである接続先の中から接
続先名称フィールド(480)の接続先名(482)が
サービスエージェント(20)の移動先名(204)の
サービスエンティティ名と同じ接続先が登録されている
か否かをチェックする(1115b)。登録されていれ
ば、その登録されているサービスエンティティのチャネ
ルポート番号フィールド(481)に格納されているチ
ャネルポート番号(483)を取得し(1116)、取
得したチャネルポート番号(483)に接続されている
入出力チャネル(403)を通して、サービスエンティ
ティ(4)の連携インタフェース(30)にサービスエ
ージェント(20)を送る(1117)。サービスエン
ティティ名が接続管理テーブル(48)に登録されてい
なければ、次にサービスエンティティ管理テーブル(4
7)にサービスエンティティ名が登録されているか否か
をチェックする(1118)。サービスエンティティ管
理テーブル(47)にサービスエンティティ名が登録さ
れていれば、そのサービスエンティティ(4)を起動す
る(1119)。起動されたサービスエンティティ
(4)の連携インタフェース(30)は、ルーティング
マネージャ(10)に接続要求を行う。ルーティングマ
ネージャ(10)は、サービスエンティティ(4)の連
携マネージャ(30)からの接続要求を待ち(112
0)、接続要求を受け取るとルーティングマネージャ
(10)と連携インタフェース(30)間の入出力チャ
ネル(403)を生成し(1121)、起動したサービ
スエンティティ名とその入出力チャネル(403)のチ
ャネルポート番号を接続管理テーブル(48)に登録し
(1122)、生成した入出力チャネル(403)を通
してサービスエージェント(20)をサービスエンティ
ティ(4)の連携インタフェース(30)に送る(11
17)。
【0102】接続管理テーブル(48)、サービスエン
ティティ管理テーブル(47)のいずれのテーブルにも
登録されていなければ、図15に移り、接続管理テーブ
ル(48)の接続先種別フィールド(484)の接続先
種別名(485)がルーティングマネージャである接続
先があるか否かチェックする(1123)。接続先が登
録されていれば、その中の最初に登録されている接続先
名(482)を取りだし(1124)、その接続先名
(482)が移動リスト一覧(203)に格納された移
動リスト(101)の移動コンピュータ名(102)に
あるか否かをチェックする(1125)。移動リスト
(101)になければ、移動リスト(101)の移動コ
ンピュータ名(102)に現在のコンピュータの名称を
追加し(1126)、追加した移動リスト(101)を
サービスエージェント(20)の移動リスト一覧(20
3)に格納し(1127)、その接続先名(482)の
チャネルポート番号フィールド(481)に格納されて
いるチャネルポート番号(483)を取りだし(112
8)、そのチャネルポート番号に接続されたチャネル
(40)を通してチャネルに接続されているコンピュー
タのルーティングマネージャ(10)にサービスエージ
ェント(20)を送る(1129)。移動リスト(10
1)にあれば、接続管理テーブル(48)の接続先種別
フィールド(484)の接続先種別名(485)がルー
ティングマネージャである次の接続先があるか否かチェ
ックする(1123)。次の接続先が接続管理テーブル
(48)に登録されていれば、その接続先名(482)
を取りだし(1124)、その接続先名(482)がサ
ービスエージェント(20)の移動リスト一覧(20
3)に格納されている移動リスト(101)の移動コン
ピュータ名(102)にあるか否かをチェックする(1
125)。これを接続管理テーブル(48)の接続先種
別フィールド(484)の接続先種別名(485)がル
ーティングマネージャである接続先がなくなるか、移動
リスト(101)にない接続先名(482)が見つかる
まで順次繰り返す。その結果、接続管理テーブル(4
8)の接続先種別フィールド(484)の接続先種別名
(485)がルーティングマネージャである接続先がな
くなった場合、エラーとしてそのサービスエージェント
(20)の移動を終了する(1130)。
【0103】図16に移り、サービスエージェント(2
0)を受け取ったサービスエンティティ(4)の連携イ
ンタフェース(30)は、受け取ったサービスエージェ
ント(20)に記述されているデータ出力手続き(2
3)を実行しサービスエージェント(20)からサービ
スエンティティ(4)に送るデータを取得し(113
1)、制御手続き(26)を実行して、そのサービスエ
ンティティ(4)の持つアプリケーションプログラム本
体(3)の実行を制御し(1132)、その実行結果デ
ータをサービスエージェント(20)のデータ入力手続
き(22)を実行してサービスエージェント(20)に
格納し(1133)、サービスエージェント(20)の
移動手続き(25)を実行して移動先名(204)の値
を次の移動先に書き換え(1134)、移動先名(20
4)の値を書き換えたサービスエージェント(20)
を、連携インタフェース(30)からルーティングマネ
ージャ(10)へ入出力チャネル(403)を通して送
る(1135)。図13に戻り、ルーティングマネージ
ャ(10)は、連携インタフェース(30)から送られ
たサービスエージェント(20)を入出力チャネル(4
03)を通して受け取る(1100)と、チャネル(4
0)を通してサービスエンティティ(20)を受け取っ
たときと同様に、移動先名(204)の移動先コンピュ
ータ名(912)をチェックし(1101)、サービス
エージェント(20)を次の移動先にチャネル(40)
を通して送る(1104)。このサービスエージェント
の移動処理をサービスエージェント(20)の移動先リ
スト(91)の最後の要素になるまで、ルーティングマ
ネージャ(10)間で繰り返すことにより、サービスエ
ージェント(20)をサービスエンティティ(4)間で
移動させ、移動させたサービスエージェント(20)を
サービスエンティティ(4)の連携インタフェース(3
0)で処理することにより各アプリケーションプログラ
ム本体(3)の実行を制御する。
【0104】図17〜図20にサービスエンティティ
(4)の連携インタフェース(30)において、受け取
ったサービスエージェント(20)の持つデータや手続
きを利用しながら、アプリケーションプログラム本体
(3)の実行を制御するための処理フローを示す。
【0105】まず、図17において、連携インタフェー
ス(30)は、入出力チャネル(403)を通じてルー
ティングマネージャ(10)からサービスエージェント
(20)を受け取る(1200)と、受け取ったサービ
スエージェント(20)の出力データ選択手続き(23
1)を実行して入力済みデータ項目(270)の中から
アプリケーションプログラム本体(3)に渡すデータを
格納しているデータ項目である出力データ項目(27
1)を決定する(1201)。
【0106】出力データ項目(271)が決定される
と、サービスエージェント(20)の出力データ変換手
続き(232)がプログラムであるか関数名であるかを
チェックする(1202)。出力データ変換手続き(2
32)がプログラムであれば、その出力データ変換手続
き(232)がアプリケーションプログラム本体(3)
へのデータ出力関数か画面出力関数かをチェックし(1
203)、データ出力関数であれば、その関数を実行し
て、出力データ項目(271)に格納されているデータ
からアプリケーションプログラム本体(3)に渡すデー
タを生成する(1204)。画面出力関数であれば、そ
の関数を実行して、出力データ項目(271)に格納さ
れているデータから画面に出力するデータを作成する
(1205)。生成されたデータには、どちらのデータ
であるかを示すタグが付加される(1206)。出力デ
ータ変換手続き(232)が関数名であれば、その関数
名のプログラムを関数制御プログラム(37)を通して
関数テーブルから取得し(1207)、取得した関数が
アプリケーションプログラム本体(3)へのデータ出力
関数か画面出力関数かをチェックする(1203)。
【0107】タグが付加されたデータは、タグからデー
タを画面に出力するか、アプリケーションプログラム本
体(3)に渡すかが判定され(1208)、画面に出力
するデータの場合にはサービスエージェント(20)の
出力データ手続き(234)がプログラムであるか関数
名であるかがチェックされる(1209)。出力データ
手続き(234)がプログラムであれば、その出力デー
タ手続き(234)を実行し、画面出力データを画面に
出力する(1210)。出力データ手続き(234)が
関数名であれば、その関数名のプログラムを関数制御プ
ログラム(37)を通して関数テーブルから取得し(1
211)、取得した関数を実行し、画面出力データを画
面に出力する(1210)。アプリケーションプログラ
ム本体(3)に渡すデータの場合、そのデータのタグを
削除する(1212)。
【0108】次に図18に移り、サービスエージェント
(20)の制御手続き(26)がプログラムであるか関
数名であるかがチェックされる(1213)。制御手続
き(26)がプログラムであれば、その制御手続き(2
6)を実行することにより、アプリケーションプログラ
ム本体(3)の実行を制御する(1214)。制御手続
き(26)が関数名であれば、その関数名のプログラム
を関数制御プログラム(37)を通して関数テーブルか
ら取得し(1215)、取得した関数を実行することに
より、アプリケーションプログラム本体(3)の実行を
制御する(1214)。
【0109】制御手続き(26)によりアプリケーショ
ンプログラム本体(3)の実行制御が終了すると、サー
ビスエージェント(20)のデータ取得手続き(22
3)がプログラムであるか関数名であるかがチェックさ
れる(1216)。データ取得手続き(223)がプロ
グラムであれば、そのデータ取得手続き(223)を実
行し、アプリケーションプログラム本体(3)の実行結
果データを取得する(1217)。データ取得手続き
(223)が関数名であれば、その関数名のプログラム
を関数制御プログラム(37)を通して関数テーブルか
ら取得し(1218)、取得した関数を実行し、アプリ
ケーションプログラム本体(3)の実行結果データを取
得する(1217)。
【0110】画面が出力されている場合には、図20に
移り、サービスエージェント(20)の制御手続き(2
6)がプログラムであるか関数名であるかがチェックさ
れる(1219)。制御手続き(26)がプログラムで
あれば、その制御手続き(26)を実行することによ
り、画面からの入出力を制御する(1220)。制御手
続き(26)が関数名であれば、その関数名のプログラ
ムを関数制御プログラム(37)を通して関数テーブル
から取得し(1221)、取得した関数を実行すること
により、画面からの入出力を制御する(1220)。
【0111】画面が出力されている場合には、データ取
得手続き(223)がプログラムであるか関数名である
かがチェックされる(1222)。データ取得手続き
(223)がプログラムであれば、そのデータ取得手続
き(223)を実行し、画面からの入力データを取得す
る(1223)。すなわち、画面を介してユーザの入力
する指示やデータを取り込む。データ取得手続き(22
3)が関数名であれば、その関数名のプログラムを関数
制御プログラム(37)を通して関数テーブルから取得
し(1224)、取得した関数を実行し画面からの入力
データを取得する(1223)。
【0112】次に図18に戻り、サービスエージェント
(20)の入力データ選択手続き(221)がプログラ
ムであるか関数名であるかがチェックされる(122
5)。入力データ選択手続き(221)がプログラムで
あれば、その入力データ選択手続き(221)を実行
し、サービスエージェント(20)の全データ項目(2
1)の中からアプリケーションプログラム本体(3)の
処理結果データを格納するデータ項目である入力データ
項目(281)を選択する(1226)。入力データ選
択手続き(221)が関数名であれば、その関数名のプ
ログラムを関数制御プログラム(37)を通して関数テ
ーブルから取得し(1227)、取得した関数を実行
し、サービスエージェント(20)の全データ項目(2
1)の中からアプリケーションプログラム本体(3)の
処理結果データを格納するデータ項目である入力データ
項目(281)を選択する(1226)。
【0113】次に図19に移り、サービスエージェント
(20)の入力データ処理手続き(24)がプログラム
であるか関数名であるかがチェックされる(122
8)。入力データ処理手続き(24)がプログラムであ
れば、その入力データ処理手続き(24)を実行し、受
け取ったデータ及び全項目データ(21)に格納されて
いるデータを処理する(1229)。入力データ処理手
続き(24)が関数名であれば、その関数名のプログラ
ムを関数制御プログラム(37)を通して関数テーブル
から取得し(1230)、取得した関数を実行し、受け
取ったデータ及び全項目データ(21)に格納されてい
るデータを処理する(1229)。
【0114】次にサービスエージェント(20)の入力
データ変換手続き(224)がプログラムであるか関数
名であるかがチェックされる(1231)。入力データ
変換手続き(224)がプログラムであれば、その入力
データ変換手続き(224)を実行し、受け取ったデー
タをそれに該当する入力データ項目(281)のデータ
形式に変換し(1232)、変換したデータを入力デー
タ項目(281)のそれぞれのデータ項目に格納する
(1234)。入力データ変換手続き(224)が関数
名であれば、その関数名のプログラムを関数制御プログ
ラム(37)を通して関数テーブルから取得し(123
3)、取得した関数を実行し受け取ったデータをそれに
該当する入力データ項目(281)のデータ形式に変換
し(1232)、変換したデータを入力データ項目(2
81)のそれぞれのデータ項目に格納する(123
4)。
【0115】入力データ項目(281)にデータが格納
されると、サービスエージェント(20)の移動手続き
(25)がプログラムであるか関数名であるかがチェッ
クされる(1235)。移動手続き(25)がプログラ
ムであれば、その移動手続き(25)を実行し、移動先
名(204)の値を次の移動先に書き換え(123
6)、移動先名(204)の値を書き換えたサービスエ
ージェント(20)を、連携インタフェース(30)か
らルーティングマネージャ(10)へ入出力チャネル
(403)を通して送る(1237)。移動手続き(2
5)が関数名であれば、その関数名のプログラムを関数
制御プログラム(37)を通して関数テーブルから取得
し(1238)、取得した関数を実行しを実行し、移動
先名(204)の値を次の移動先に書き換え(123
6)、移動先名(204)の値を書き換えたサービスエ
ージェント(20)を、連携インタフェース(30)か
らルーティングマネージャ(10)へ入出力チャネル
(403)を通して送る(1237)。
【0116】次に、本発明の具体的な適用例として、製
造ライン管理システムへ適用した例について説明する。
製造ライン管理システムでは、製造・検査機器、それら
機器の制御用アプリケーションプログラム、生産管理に
必要なアプリケーションプログラムを製造物ごとに決め
られた順序で連携させる必要がある。
【0117】図22に、本発明による製造ライン管理シ
ステムの一適用例のシステム構成を示す。本適用例で
は、製造ライン管理システムが各製造工程A、Bを管理
するコンピュータC2(1342)、C3(134
3)、各製造工程A、Bに接続された製造機器MA1
(1332)、MB1(1333)と、これらの製造機
器MA1(1332)、MB1(1333)を制御する
アプリケーションプログラムAP2(1302)、AP
3(1303)、コンピュータC1(1341)上で製
造指示書を作成するアプリケーションプログラムAP1
(1301)、コンピュータを接続するネットワーク
(0)から構成されるものとし、コンピュータC1(1
341)上のアプリケーションプログラムAP1(13
01)で作成された製造指示書は、各製造工程に接続さ
れた製造機器をそれらの制御アプリケーションプログラ
ムを通して連携制御することにより、製造を進めていく
場合を例に取り説明する。
【0118】本実施例による製造ライン管理システムで
は、これらの各種アプリケーションプログラムAP1
(1301)、AP2(1302)、AP3(130
3)をサービスエンティティSE1(1321)、SE
2(1322)、SE3(1323)(各サービスエン
ティティの名称はそれぞれSE1、SE2、SE3とす
る)として実現する。製造物に添付される製造指示書は
サービスエージェントSA1(1400)として具現す
る。製造指示書を具現したサービスエージェントSA1
(1400)は、サービスエンティティSE1(132
1)を用いて利用者により作成され、まず製造工程Aの
製造機器MA1(1333)を制御する制御用アプリケ
ーションプログラムAP2(1302)を持つサービス
エンティティSE2(1322)を通してアプリケーシ
ョンプログラムAP2(1302)に製造指示を伝え、
次に製造工程Bの製造機器MB1(1333)を制御す
る制御用アプリケーションプログラムAP3(130
3)を持つサービスエンティティSE3(1323)を
通してアプリケーションプログラムAP3(1303)
に製造指示を伝え、その後サービスエージェントSA1
(1400)を作成したサービスエンティティSE1
(1321)に戻るものとする。
【0119】図23に利用者がサービスエンティティS
E1(1321)を用いてコンピュータC1(134
1)上で作成した時点の製造指示書を表すサービスエー
ジェントの一例であるサービスエージェントSA1(1
400)の構造を示す。サービスエージェントSA1
(1400)は、識別子ID1(1401)、移動先リ
スト一覧((C2 SE2)(C3 SE3)(C1
SE1))(1402)、移動リスト一覧nil(14
03)、移動先名(C2 SE2)(1404)に加
え、全データ項目として、製造機器MA1の設定パラメ
ータである項目であるA工程製造速度項目(1405)
とその値10、製造機器MA1から取得するデータの項
目であるA工程所要時間項目(1406)、製造機器M
B1の設定パラメータである項目であるB工程製造速度
項目(1407)とその値15、製造機器MB1から取
得するデータの項目であるB工程所要時間項目(140
8)を持つ。さらにデータ出力手続きとして、出力デー
タ選択手続き(1421)、出力データ変換手続き(1
422)、パラメタ設定手続き(1423)を、データ
入力手続きとして、データ取得手続き(1411)、入
力データ選択手続き(1412)、入力データ格納手続
き(1413)を、さらに制御手続き(1430)を持
つ。
【0120】サービスエージェントSE1(1321)
を用いて生成されたサービスエージェントSA1(14
00)は、チャネル(40)を通してコンピュータC1
(1341)のルーティングマネージャRM1(131
1)に送られる。ルーティングマネージャRM1(13
11)は、サービスエージェントSA1(1400)の
移動先名の値(C2 SE2)(1404)をチェック
し、移動先名に指定されたコンピュータC2(134
2)との間に接続されたチャネル(40)を検索し、そ
の結果得られたチャネル(40)を通してコンピュータ
C2(1342)にサービスエージェントSA1(14
00)を送る。
【0121】コンピュータC2(1342)上のルーテ
ィングマネージャRM2(1312)は、送られてきた
サービスエージェントSA1(1400)を受け取る
と、その移動先名の値(C2 SE2)(1404)を
チェックし、移動先名に指定されたサービスエンティテ
ィSE2(1322)との間のに接続されたチャネル
(40)を検索し、その結果得られたチャネル(40)
を通してサービスエンティティSE2(1322)にサ
ービスエージェントSA1(1400)を送る。サービ
スエンティティSE2(1322)は、チャネル(4
0)を通してサービスエージェントSA1(1400)
を受け取ると、サービスエンティティSE2(132
2)の連携インタフェース(30)がサービスエージェ
ントSA1(1400)の持つ出力データ選択手続き
(1421)を取得し、その手続き(1421)を実行
し、サービスエンティティSE2(1322)の持つア
プリケーションプログラムAP2(1302)に渡すべ
きデータ項目であるA工程製造速度項目(1405)を
決定する。次に、サービスエージェントSA1(140
0)の持つ出力データ変換手続き(1422)を取得
し、その手続き(1422)を実行し、選択された項目
であるA工程製造速度項目(1405)の値10を取り
出し、そのデータがアプリケーションプログラムに渡す
データであることを示すタグを付加した後、サービスエ
ージェントSA1(1400)の持つパラメタ設定手続
き(1423)を取得し、その手続き(1423)を実
行し、アプリケーションプログラムAP2(1302)
に指定された値10を設定する。次にサービスエージェ
ントSA1(1400)の持つ制御手続き(1430)
を取得し、その手続き(1430)を実行することによ
りアプリケーションプログラムAP2(1302)の処
理を行なう。
【0122】アプリケーションプログラムAP2(13
02)の処理が終了すると、サービスエージェントSA
1(1400)の持つデータ取得手続き(1411)を
取得し、その手続き(1411)を実行し、アプリケー
ションプログラムの実行結果を取得する。次にサービス
エージェントSA1(1400)の持つ入力データ選択
手続き(1412)を取得し、その手続き(1412)
を実行し、アプリケーションプログラムの実行結果を格
納するデータ項目であるA工程所要時間(1406)を
選択し、次にサービスエージェントSA1(1400)
の持つ入力データ格納手続き(1413)を取得し、そ
の手続き(1413)を実行し、アプリケーションプロ
グラムAP2(1302)の実行結果をA工程所要時間
項目(1406)に格納する。
【0123】次に移動先リスト一覧(1402)の2番
目の要素である(C3 SE3)を取り出し、それを移
動先名(1404)に格納し、チャネル(40)を通し
てコンピュータC2(1342)上のルーティングマネ
ージャRM2(1312)に送る。
【0124】ルーティングマネージャRM2(131
2)は、サービスエンティティSE2(1322)から
チャネル(40)を通して送られてきたサービスエージ
ェントSA1(1400)を受け取ると、その移動先名
(C3 SE3)(1404)をチェックし、移動先名
(C3 SE3)(1404)に指定されたコンピュー
タC3(1343)に接続されたチャネル(40)を検
索し、その結果得られたチャネル(40)を通してサー
ビスエージェントSA1(1400)を送る。
【0125】コンピュータC3(1343)上のルーテ
ィングマネージャRM3(1313)は、送られてきた
サービスエージェントSA1(1400)を受け取る
と、その移動先名の値(C3 SE3)(1404)を
チェックし、移動先名(1404)に指定されたサービ
スエンティティSE3(1323)との間に接続された
チャネル(40)を検索し、その結果得られたチャネル
(40)を通してサービスエンティティSE3(132
3)にサービスエージェントSA1(1400)を送
る。
【0126】サービスエンティティSE3(1323)
は、チャネル(40)を通してサービスエージェントS
A1(1400)を受け取ると、サービスエンティティ
SE3(1323)の連携インタフェース(30)がサ
ービスエージェントSA1(1400)の持つ出力デー
タ選択手続き(1421)を取得し、その手続き(14
21)を実行し、サービスエンティティSE3(132
3)の持つアプリケーションプログラムAP3(130
3)に渡すべきデータ項目であるB工程製造速度項目
(1407)を決定する。次に、サービスエージェント
SA1(1400)の持つ出力データ変換手続き(14
22)を取得し、その手続き(1422)を実行し、選
択された項目であるB工程製造速度(1407)の値1
5を取り出し、そのデータがアプリケーションプログラ
ムに渡すデータであることを示すタグを付加した後、サ
ービスエージェントSA1(1400)の持つパラメタ
設定手続き(1423)を取得し、その手続き(142
3)を実行し、アプリケーションプログラムAP3(1
303)に指定された値15を設定する。次にサービス
エージェントSA1(1400)の持つ制御手続き(1
430)を取得し、その手続き(1430)を実行する
ことによりアプリケーションプログラムAP3(130
3)の処理を行なう。
【0127】アプリケーションプログラムAP3(13
03)の処理が終了すると、サービスエージェントSA
1(1400)の持つデータ取得手続き(1411)を
取得し、その手続き(1411)を実行し、アプリケー
ションプログラムの実行結果を取得する。次にサービス
エージェントSA1(1400)の持つ入力データ選択
手続き(1412)を取得し、その手続き(1412)
を実行し、アプリケーションプログラムの実行結果を格
納するデータ項目であるB工程所要時間項目(140
8)を選択し、次にサービスエージェントSA1(14
00)の持つ入力データ格納手続き(1413)を取得
し、その手続き(1413)を実行し、アプリケーショ
ンプログラムAP3(1303)の実行結果をB工程所
要時間項目(1408)に格納する。
【0128】次に移動先リスト一覧(1402)の3番
目の要素である(C1 SE1)を取り出し、それを移
動先名(1404)に格納し、チャネル(40)を通し
てコンピュータC3(1343)上のルーティングマネ
ージャRM3(1313)に送る。
【0129】ルーティングマネージャRM3(131
3)は、サービスエンティティSE3(1323)から
チャネル(40)を通して送られてきたサービスエージ
ェントSA1(1400)を受け取ると、その移動先名
(C1 SE1)(1404)をチェックし、移動先名
(C1 SE1)(1404)に指定されたコンピュー
タC1(1341)に接続されたチャネル(40)を検
索するが、コンピュータC3(1343)上のルーティ
ングマネージャRM3(1313)と接続されているコ
ンピュータの中にはコンピュータ名C1(1341)が
ないため、接続されているコンピュータC2(134
2)のルーティングマネージャRM2(1312)にサ
ービスエージェントSA1(1400)を送る。
【0130】コンピュータC2(1342)上のルーテ
ィングマネージャRM2(1312)は、送られてきた
サービスエージェントSA1(1400)を受け取る
と、その移動先名の値(C1 SE1)(1404)を
チェックし、移動先名(1404)に指定されたコンピ
ュータ名C1がコンピュータ名C2と異なるため、サー
ビスエージェントSA1(1400)の移動リスト(1
403)にコンピュータ名C2を格納し、移動リスト
(1403)の値を((C2))とし、サービスエージ
ェントSA1(1400)の移動先名(C1 SE1)
(1404)に指定されたコンピュータ名C1と接続さ
れたチャネル(40)を検索し、その結果得られたチャ
ネル(40)にサービスエージェントSA1(140
0)を送る。
【0131】ルーティングマネージャRM1(131
1)は、ルーティングマネージャRM2(1312)か
らチャネル(40)を通して送られてきたサービスエー
ジェントSA1(1400)を受け取ると、その移動先
名(C1 SE1)(1404)をチェックし、移動先
名(C1 SE1)(1404)とコンピュータ名C1
が同一であることをチェックした後、移動先名(C1
SE1)(1404)に指定されたサービスエンティテ
ィSE1(1321)との間に接続されたチャネル(4
0)を検索し、その結果得られたチャネル(40)を通
してサービスエンティティSE1(1321)にサービ
スエージェントSA1(1400)を送る。
【0132】このようにしてサービスエージェントSA
1(1400)を用いることにより、製造工程A、Bを
管理するコンピュータC2(1342)、C3(134
3)に接続された製造機器MA1(1332)、MB1
(1333)を制御するアプリケーションプログラムA
P2(1302)、AP3(1303)を連携して制御
することが可能となる。また、製造工程が異なる場合で
も、製造指示書を作成する際に、その移動先リスト一覧
(1402)に指定する移動先の一覧を変更するだけで
制御する製造装置やその順序を変更することができ、容
易に連携の方法を変更することができる。
【0133】
【発明の効果】以上のように、本発明では、さまざまな
アプリケーションプログラムを柔軟に連携処理するため
に、アプリケーションプログラム本体に連携処理のため
の連携インタフェースを付与し、連携のために必要な連
携処理手続きと連携する際に必要なデータ、及びデータ
の格納項目、個々のアプリケーションプログラム本体の
実行の制御手続きを作業指示書に記述し、その作業指示
書をコンピュータ間で移動させることにより、柔軟なア
プリケーションプログラム間の連携処理が可能となる。
【0134】これにより、連携処理の対象とするアプリ
ケーションプログラムの実行を停止することなく、アプ
リケーションプログラム間の連携処理手続きを作業指示
書により変更することが可能となる。また、利用者は連
携処理をしたいアプリケーションプログラムが分散処理
システム上のどのコンピュータで動作しているかを意識
することなく、利用したいアプリケーションプログラム
本体(サービスエンティティ名)を指定することで、そ
のアプリケーションプログラムを利用することができ
る。
【0135】また、複数の作業者に依頼し、各作業者に
アプリケーションプログラムを操作して行ってもらって
いた一連の作業を自動化することができる。
【図面の簡単な説明】
【図1】本発明によるアプリケーションプログラム間連
携処理を行う分散処理システムの実施例の構成を示す構
成図である。
【図2】図1に示したコンピュータの構成を示す構成図
である。
【図3】実施例におけるサービスエージェントの構造を
示す説明図である。
【図4】実施例ににおけるルーティングマネージャ間の
通信路の接続状態の説明図である。
【図5】図4の接続状態に対して新たなルーティングマ
ネージャが接続された状態を示す説明図である。
【図6】実施例におけるルーティングマネージャとサー
ビスエンティティの接続状態の説明図である。
【図7】実施例におけるルーティングマネージャのプロ
グラム構造を示すブロック図である。
【図8】図7に示したテーブル類の構造の説明図であ
る。
【図9】実施例における連携インタフェース30のプロ
グラム構造を示すブロック図である。示した
【図10】図9に示した関数テーブル371の構造の説
明図である。
【図11】図3に示した移動先リスト一覧202の移動
先リスト91の記述形式および記述例の説明図である。
【図12】図3に示した移動リスト一覧203の移動リ
スト101の記述方法および記述例の説明図である。
【図13】実施例におけるサービスエージェントの移動
処理手続きを示すフローチャート(その1)を示す。
【図14】実施例におけるサービスエージェントの移動
処理手続きを示すフローチャート(その2)を示す。
【図15】実施例におけるサービスエージェントの移動
処理手続きを示すフローチャート(その3)を示す。
【図16】実施例におけるサービスエージェントの移動
処理手続きを示すフローチャート(その4)を示す。
【図17】実施例における連携インタフェース30の処
理を示すフローチャート(その1)である。
【図18】実施例における連携インタフェース30の処
理を示すフローチャート(その2)である。
【図19】実施例における連携インタフェース30の処
理を示すフローチャート(その3)である。
【図20】実施例における連携インタフェース30の処
理を示すフローチャート(その4)である。
【図21】実施例におけるデータ項目の組み合わせによ
る移動先決定方法の例の説明図である。
【図22】本発明を適用した製造ライン管理システムの
構成例を示す構成図である。
【図23】図22のシステムにおけるサービスエージェ
ントの構造例を示す説明図である。
【符号の説明】
1…コンピュータ、3…アプリケーションプログラム本
体、4…サービスエンティティ、10…ルーティングマ
ネージャ、20…サービスエージェント、30…連携イ
ンタフェース。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 高橋 勉 宮城県仙台市青葉区一番町二丁目4番1号 日立東北ソフトウェア株式会社内

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】コンピュータネットワークに接続された複
    数のコンピュータ上で動作する複数のアプリケーション
    プログラム間の連携処理方法において、 前記複数のアプリケーションプログラムの利用順序と各
    アプリケーションプログラムの利用手続きを記述した作
    業指示書を作成し、 該作業指示書を、前記コンピュータネットワークを介し
    て、目的のアプリケーションプログラムを有する複数の
    コンピュータへ順次転送し、 前記複数のアプリケーションプログラムの各々には、前
    記作業指示書に記載された当該アプリケーションプログ
    ラムの利用手続きに応じて当該アプリケーションプログ
    ラムとの連携をとる連携インタフェースを設けておき、 各連携インタフェースは、前記作業指示書を受けたと
    き、該連携インタフェースが当該作業指示書に記載され
    た自己のアプリケーションプログラムに関する利用手続
    きに応じて自己のアプリケーションプログラムを起動
    し、目的とする制御および/またはデータの授受を行
    い、 必要なアプリケーションプログラムを有するコンピュー
    タを作業指示書が一巡することにより前記複数のアプリ
    ケーションプログラムによる一連の作業を実行すること
    を特徴とするアプリケーションプログラム間連携処理方
    法。
  2. 【請求項2】請求項1記載のアプリケーションプログラ
    ム間連携処理方法において、前記作業指示書に記載され
    た利用手続きの構成要素として、当該作業指示書が利用
    する全てのアプリケーションプログラムで使用されるデ
    ータ項目の一覧を表す全データ項目、各アプリケーショ
    ンプログラムへ与えるべきデータが格納されている出力
    データ項目、各アプリケーションプログラムの処理結果
    が格納される入力データ項目、前記出力データ項目に格
    納されているデータを当該アプリケーションプログラム
    へ出力する手続きを表すデータ出力手続き、前記入力デ
    ータ項目ごとのデータの入力手続きを表すデータ入力手
    続き、該データ入力手続きを用いて入力されたデータを
    処理する入力データ処理手続き、当該アプリケーション
    プログラムの実行を制御する制御手続き、のうち少なく
    とも1つを含むことを特徴とするアプリケーションプロ
    グラム間連携処理方法。
  3. 【請求項3】請求項1または2記載のアプリケーション
    プログラム間連携処理方法において、各コンピュータ上
    に移動制御手段を有し、該移動制御手段が、自己のコン
    ピュータ上の前記連携インタフェース及び他のコンピュ
    ータとの間の通信路を確保、管理し、該通信路を通して
    受信した前記作業指示書に記載された利用順序に従って
    当該作業指示書の移動を制御することを特徴とするアプ
    リケーションプログラム間連携処理方法。
  4. 【請求項4】請求項2記載のアプリケーションプログラ
    ム間連携処理方法において、前記作業指示書の構成要素
    である制御手続きとして、該作業指示書を受信した前記
    連携インタフェースのアプリケーションプログラムを起
    動する起動手続き、該アプリケーションプログラムの実
    行を終了する終了手続き、該アプリケーションプログラ
    ムの有する1つ以上のコマンドを実行する実行手続き、
    それらを組み合せた制御スクリプトの少なくとも1つの
    手続きを有することを特徴とするアプリケーションプロ
    グラム間連携処理方法。
  5. 【請求項5】請求項2記載のアプリケーションプログラ
    ム間連携処理方法において、前記作業指示書の構成要素
    として、新たな作業指示書を生成するための生成手続き
    を有することを特徴とするアプリケーションプログラム
    間連携処理方法。
  6. 【請求項6】請求項1または2記載のアプリケーション
    プログラム間連携処理方法において、前記利用手続き
    は、プログラムおよび関数名のいずれかであり、関数名
    の場合には前記連携インタフェースにおいて当該関数名
    に対応するプログラムを取得することを特徴とするアプ
    リケーションプログラム間連携処理方法。
  7. 【請求項7】請求項1,2,3,4,5または6記載の
    アプリケーションプログラム間連携処理方法において、
    前記作業指示書に記述された利用順序は、コンピュータ
    名と、そのコンピュータ上で動作するアプリケーション
    プログラムおよび連携インタフェースからなるサービス
    エンティティの名称との組を該サービスエンティティの
    利用の順序に従って指定したものであり、前記コンピュ
    ータ名を省略可能としたことを特徴とするアプリケーシ
    ョンプログラム間連携処理方法。
JP7138641A 1995-05-12 1995-05-12 アプリケーションプログラム間連携処理方法 Pending JPH08314872A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7138641A JPH08314872A (ja) 1995-05-12 1995-05-12 アプリケーションプログラム間連携処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7138641A JPH08314872A (ja) 1995-05-12 1995-05-12 アプリケーションプログラム間連携処理方法

Publications (1)

Publication Number Publication Date
JPH08314872A true JPH08314872A (ja) 1996-11-29

Family

ID=15226767

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7138641A Pending JPH08314872A (ja) 1995-05-12 1995-05-12 アプリケーションプログラム間連携処理方法

Country Status (1)

Country Link
JP (1) JPH08314872A (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000047772A (ja) * 1998-07-31 2000-02-18 Canon Inc Oa装置、oaシステム及び制御方法
JP2000330808A (ja) * 1999-05-19 2000-11-30 Mitsubishi Electric Corp トランザクション処理システム
US7516200B2 (en) * 2003-12-18 2009-04-07 Sap Ag. Aggregation and integration scheme for grid relevant customization information
US7546553B2 (en) 2003-07-28 2009-06-09 Sap Ag Grid landscape component
US7568199B2 (en) 2003-07-28 2009-07-28 Sap Ag. System for matching resource request that freeing the reserved first resource and forwarding the request to second resource if predetermined time period expired
US7703029B2 (en) 2003-07-28 2010-04-20 Sap Ag Grid browser component
JP2012257281A (ja) * 2012-07-26 2012-12-27 Fuji Xerox Co Ltd サービス処理システム
US8418191B2 (en) 2004-11-02 2013-04-09 Fujitsu Limited Application flow control apparatus
JP2013077317A (ja) * 2012-12-25 2013-04-25 Fuji Xerox Co Ltd サービス処理システム
JP2020091913A (ja) * 2016-02-29 2020-06-11 株式会社リコー システム、システムの方法および画像形成装置

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000047772A (ja) * 1998-07-31 2000-02-18 Canon Inc Oa装置、oaシステム及び制御方法
JP2000330808A (ja) * 1999-05-19 2000-11-30 Mitsubishi Electric Corp トランザクション処理システム
US7546553B2 (en) 2003-07-28 2009-06-09 Sap Ag Grid landscape component
US7568199B2 (en) 2003-07-28 2009-07-28 Sap Ag. System for matching resource request that freeing the reserved first resource and forwarding the request to second resource if predetermined time period expired
US7703029B2 (en) 2003-07-28 2010-04-20 Sap Ag Grid browser component
US7516200B2 (en) * 2003-12-18 2009-04-07 Sap Ag. Aggregation and integration scheme for grid relevant customization information
US8418191B2 (en) 2004-11-02 2013-04-09 Fujitsu Limited Application flow control apparatus
JP2012257281A (ja) * 2012-07-26 2012-12-27 Fuji Xerox Co Ltd サービス処理システム
JP2013077317A (ja) * 2012-12-25 2013-04-25 Fuji Xerox Co Ltd サービス処理システム
JP2020091913A (ja) * 2016-02-29 2020-06-11 株式会社リコー システム、システムの方法および画像形成装置

Similar Documents

Publication Publication Date Title
JP3252454B2 (ja) 共有データ変更状況把握装置
JPH1031637A (ja) エージェント通信装置
JPH08180003A (ja) 電子メールシステム
JP2003526837A (ja) 活動状態によるコラボレーションを装備した分散コンピュータシステムにおいてデータ変更要求を順位付け、データの一貫性を維持するための方法ならびにその装置
JP2000035951A (ja) マルチユ―ザ認識およびコラボレ―ション用の方法および装置
JP2001273219A (ja) 画面共有システム
JPH10228402A (ja) 文書共有管理方法
US6199111B1 (en) Client-led network computing system and its method
JP2001202405A (ja) タスク関与者間のコミュニケーション機能を有するプロジェクト管理装置およびプロジェクト管理方法
EP0772114B1 (en) Apparatus and method for programming a job ticket in a document processing system
JPH0635821A (ja) 共同作業装置
JPH08314872A (ja) アプリケーションプログラム間連携処理方法
JP2009009455A (ja) サービス連携支援装置
JP3931941B2 (ja) ワークプロセス管理装置及びワークプロセス管理方法
US20070273695A1 (en) Mechanism for collaboratively exchanging navigation information in distributed document review
JPH1127285A (ja) ネットワーク管理システム及び記録媒体
JP2003101586A (ja) ネットワーク管理支援方法
US6622143B1 (en) Network system and object cooperation therein
JPH08249290A (ja) 分散システム
JPH11312154A (ja) 協同作業支援システム及び記録媒体
JPH09231040A (ja) 電子掲示板システムおよびその議論管理方法
JP3547159B2 (ja) 共同作業支援システム
JPH08241276A (ja) アプリケーション共有化システム
JP2000172649A (ja) 共同作業支援装置
JP3801680B2 (ja) 分散処理システムにおけるデータベースの情報収集システム