JPH08212180A - プロセス間通信処理装置 - Google Patents
プロセス間通信処理装置Info
- Publication number
- JPH08212180A JPH08212180A JP4351595A JP4351595A JPH08212180A JP H08212180 A JPH08212180 A JP H08212180A JP 4351595 A JP4351595 A JP 4351595A JP 4351595 A JP4351595 A JP 4351595A JP H08212180 A JPH08212180 A JP H08212180A
- Authority
- JP
- Japan
- Prior art keywords
- communication
- message
- objects
- process object
- 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
Links
Abstract
(57)【要約】
【目的】 通信負荷の軽減及び通信処理のプログラミン
グの効率化を図る。 【構成】 いずれかのプロセスオブジェクト3が、他の
計算機上で動作するプロセスオブジェクト3に所定の手
続依頼を行う場合、予め同一計算機内に通信代理オブジ
ェクト2を生成する。この通信代理オブジェクト2は、
プロセスオブジェクト3とは独立にプロセスオブジェク
ト3に代わってメッセージ通信を実行する。その際のメ
ッセージ通信処理は、相手のプロセスオブジェクト3が
同一計算機上に存在すれば、共有メモリ空間を利用した
高速な通信を行う。一方、相手のプロセスオブジェクト
3が異なった計算機上に存在すれば、ネットワークを介
した通信を行う。この結果、メッセージの送信元プロセ
スオブジェクト3では、そのメッセージの受信を行うプ
ロセスオブジェクト3の存在場所を意識することなく、
同一のプロセス間通信記述を行うことができる。
グの効率化を図る。 【構成】 いずれかのプロセスオブジェクト3が、他の
計算機上で動作するプロセスオブジェクト3に所定の手
続依頼を行う場合、予め同一計算機内に通信代理オブジ
ェクト2を生成する。この通信代理オブジェクト2は、
プロセスオブジェクト3とは独立にプロセスオブジェク
ト3に代わってメッセージ通信を実行する。その際のメ
ッセージ通信処理は、相手のプロセスオブジェクト3が
同一計算機上に存在すれば、共有メモリ空間を利用した
高速な通信を行う。一方、相手のプロセスオブジェクト
3が異なった計算機上に存在すれば、ネットワークを介
した通信を行う。この結果、メッセージの送信元プロセ
スオブジェクト3では、そのメッセージの受信を行うプ
ロセスオブジェクト3の存在場所を意識することなく、
同一のプロセス間通信記述を行うことができる。
Description
【0001】
【産業上の利用分野】本発明は、複数の計算機をネット
ワークを介して接続したシステムにおいて、ある1つの
計算機上で動作するプロセスオブジェクトがその計算機
と同一又は異なる計算機上で動作する他のプロセスオブ
ジェクトに手続きを依頼する場合に使用されるプロセス
間通信処理装置に関するものである。
ワークを介して接続したシステムにおいて、ある1つの
計算機上で動作するプロセスオブジェクトがその計算機
と同一又は異なる計算機上で動作する他のプロセスオブ
ジェクトに手続きを依頼する場合に使用されるプロセス
間通信処理装置に関するものである。
【0002】
【従来の技術】ネットワークを介して接続された複数の
計算機上のプロセス同士、及びある1つの計算機上のプ
ロセス同士がデータ交換を行う場合には、従来、TCP
/IPやUDP/IPと呼ばれる通信プロトコルが用い
られている。TCP/IPは、トランスミッションコン
トロールプロトコル/インターネットプロトコルの略で
ある。UDP/IPは、ユーザデータグラムプログラム
/インターネットプロトコルの略である。これらのプロ
トコルを利用して異なったプロセス上の手続を呼び出す
には、RPC(リモートプロシジャコール)という機構
を用いる。これは、クライアントと呼ばれるプロセスか
らサーバと呼ばれるプロセス側へデータやプログラムを
渡し、目的とするサーバプロセス上の手続を実行するも
のである。この場合に、クライアントとサーバは同一の
計算機上にある必要はなく、ネットワークで接続された
いずれかの計算機上にあればよい。
計算機上のプロセス同士、及びある1つの計算機上のプ
ロセス同士がデータ交換を行う場合には、従来、TCP
/IPやUDP/IPと呼ばれる通信プロトコルが用い
られている。TCP/IPは、トランスミッションコン
トロールプロトコル/インターネットプロトコルの略で
ある。UDP/IPは、ユーザデータグラムプログラム
/インターネットプロトコルの略である。これらのプロ
トコルを利用して異なったプロセス上の手続を呼び出す
には、RPC(リモートプロシジャコール)という機構
を用いる。これは、クライアントと呼ばれるプロセスか
らサーバと呼ばれるプロセス側へデータやプログラムを
渡し、目的とするサーバプロセス上の手続を実行するも
のである。この場合に、クライアントとサーバは同一の
計算機上にある必要はなく、ネットワークで接続された
いずれかの計算機上にあればよい。
【0003】このため、クライアントからサーバにデー
タ等を送信する場合には、とりあえず、クライアント側
で送信データをネットワーク上に転送できる形式に変換
する。そして、クライアント側からサーバ側へ実行の制
御を移し、クライアント側ではサーバ側の実行終了結果
を待つ。サーバ側ではクライアント側からのRPC要求
を受け付けるサービスデーモン機構を用意する。サーバ
側での実行が終了したときは、クライアント側へ実行結
果を送信する(例えば、「UNIXネットワークプログ
ラミング:W.リチャード・スティーブンス著/篠田陽
一訳、トッパン)。
タ等を送信する場合には、とりあえず、クライアント側
で送信データをネットワーク上に転送できる形式に変換
する。そして、クライアント側からサーバ側へ実行の制
御を移し、クライアント側ではサーバ側の実行終了結果
を待つ。サーバ側ではクライアント側からのRPC要求
を受け付けるサービスデーモン機構を用意する。サーバ
側での実行が終了したときは、クライアント側へ実行結
果を送信する(例えば、「UNIXネットワークプログ
ラミング:W.リチャード・スティーブンス著/篠田陽
一訳、トッパン)。
【0004】
【発明が解決しようとする課題】しかしながら、上述し
た従来の技術には、次のような課題があった。即ち、あ
るプロセスが他のプロセスにデータを転送したり、一定
の手続を依頼する場合、送信先となるプロセスが送信元
であるプロセスと同一計算機上にあるか否かに関わら
ず、同一の通信プロトコルを利用するため、双方のプロ
セスが同一計算機上にある場合にも処理時間が長くなっ
ていた。また、双方のプロセスが同一計算機上にあるこ
とを判別し、異なる通信プロトコルを採用する場合に
は、すべてプログラム作成側の責任において通信処理を
記述する必要があり、プログラムの作成効率が悪くなっ
ていた。
た従来の技術には、次のような課題があった。即ち、あ
るプロセスが他のプロセスにデータを転送したり、一定
の手続を依頼する場合、送信先となるプロセスが送信元
であるプロセスと同一計算機上にあるか否かに関わら
ず、同一の通信プロトコルを利用するため、双方のプロ
セスが同一計算機上にある場合にも処理時間が長くなっ
ていた。また、双方のプロセスが同一計算機上にあるこ
とを判別し、異なる通信プロトコルを採用する場合に
は、すべてプログラム作成側の責任において通信処理を
記述する必要があり、プログラムの作成効率が悪くなっ
ていた。
【0005】
【課題を解決するための手段】本発明のプロセス間通信
処理装置は、上述した課題を解決するため、互いにネッ
トワークを介して接続された複数の計算機のうちのいず
れかの計算機上で動作する一のプロセスオブジェクト
が、同一の計算機あるいは他の計算機上で動作する他の
プロセスオブジェクトにメッセージを送信して所定の手
続依頼を行うシステムにおいて、以下の点を特徴とする
ものである。
処理装置は、上述した課題を解決するため、互いにネッ
トワークを介して接続された複数の計算機のうちのいず
れかの計算機上で動作する一のプロセスオブジェクト
が、同一の計算機あるいは他の計算機上で動作する他の
プロセスオブジェクトにメッセージを送信して所定の手
続依頼を行うシステムにおいて、以下の点を特徴とする
ものである。
【0006】(1) 計算機間のメッセージの通信を管理する通信管理サー
バを備える。 プロセスオブジェクトのメッセージの通信を代理する
通信代理オブジェクトを備える。この通信代理オブジェ
クトは、一のプロセスオブジェクトの手続き依頼要求を
受け入れて、依頼先のプロセスオブジェクトの計算機シ
ステム上の位置を判定する。そして、依頼先のプロセス
オブジェクトが同一計算機上にあるときは、共有メモリ
を介したメッセージ通信を行う。一方、依頼先のプロセ
スオブジェクトが異なる計算機上にあるときは、通信管
理サーバを介したメッセージ通信を行う。
バを備える。 プロセスオブジェクトのメッセージの通信を代理する
通信代理オブジェクトを備える。この通信代理オブジェ
クトは、一のプロセスオブジェクトの手続き依頼要求を
受け入れて、依頼先のプロセスオブジェクトの計算機シ
ステム上の位置を判定する。そして、依頼先のプロセス
オブジェクトが同一計算機上にあるときは、共有メモリ
を介したメッセージ通信を行う。一方、依頼先のプロセ
スオブジェクトが異なる計算機上にあるときは、通信管
理サーバを介したメッセージ通信を行う。
【0007】(2)計算機システムの各プロセスオブジ
ェクトは、依頼先のプロセスオブジェクト毎にそれぞれ
通信代理オブジェクトを生成し、それらの通信代理オブ
ジェクトは依頼先のプロセスオブジェクトが同一計算機
上にあれば、共有メモリを介したメッセージ通信を行
う。
ェクトは、依頼先のプロセスオブジェクト毎にそれぞれ
通信代理オブジェクトを生成し、それらの通信代理オブ
ジェクトは依頼先のプロセスオブジェクトが同一計算機
上にあれば、共有メモリを介したメッセージ通信を行
う。
【0008】
(1)いずれかのプロセスオブジェクトが、他の計算機
上で動作するプロセスオブジェクトに所定の手続依頼を
行う場合、予め同一計算機内に通信代理オブジェクトを
生成する。この通信代理オブジェクトは、プロセスオブ
ジェクトとは独立にプロセスオブジェクトに代わってメ
ッセージ通信を実行する。その際のメッセージ通信処理
は、相手のプロセスオブジェクトが同一計算機上に存在
すれば、共有メモリ空間を利用した高速な通信を行う。
一方、相手のプロセスオブジェクトが異なった計算機上
に存在すれば、ネットワークを介した通信を行う。この
結果、メッセージの送信元のプロセスオブジェクトで
は、そのメッセージの受信を行うプロセスオブジェクト
の存在場所を意識することなく、同一のプロセス間通信
記述を行うことができる。
上で動作するプロセスオブジェクトに所定の手続依頼を
行う場合、予め同一計算機内に通信代理オブジェクトを
生成する。この通信代理オブジェクトは、プロセスオブ
ジェクトとは独立にプロセスオブジェクトに代わってメ
ッセージ通信を実行する。その際のメッセージ通信処理
は、相手のプロセスオブジェクトが同一計算機上に存在
すれば、共有メモリ空間を利用した高速な通信を行う。
一方、相手のプロセスオブジェクトが異なった計算機上
に存在すれば、ネットワークを介した通信を行う。この
結果、メッセージの送信元のプロセスオブジェクトで
は、そのメッセージの受信を行うプロセスオブジェクト
の存在場所を意識することなく、同一のプロセス間通信
記述を行うことができる。
【0009】(2)各プロセスオブジェクトは、依頼先
のプロセスオブジェクト毎にそれぞれ通信代理オブジェ
クトを生成する結果、通信代理オブジェクトが依頼先の
プロセスオブジェクト自体であるかのごとく通信処理を
行うことができる。
のプロセスオブジェクト毎にそれぞれ通信代理オブジェ
クトを生成する結果、通信代理オブジェクトが依頼先の
プロセスオブジェクト自体であるかのごとく通信処理を
行うことができる。
【0010】
【実施例】以下、本発明の実施例を図面を参照して詳細
に説明する。図1は、本発明のプロセス間通信処理装置
の一実施例のブロック図である。本発明のプロセス間通
信処理装置は、通信管理サーバ1、通信代理オブジェク
ト2を備えており、複数の計算機により構成されるシス
テムに適用される。通信管理サーバ1は、異なる計算機
上のプロセスオブジェクト間の通信を管理する。一方、
同一計算機上のプロセスオブジェクト間の通信には、そ
の計算機内の共有メモリ(図示省略)を利用する。通信
代理オブジェクト2は、プロセスオブジェクトからの通
信依頼を受け入れ、通信に際し、通信管理サーバ1又は
共有メモリのいずれかを利用して通信処理を行う。
に説明する。図1は、本発明のプロセス間通信処理装置
の一実施例のブロック図である。本発明のプロセス間通
信処理装置は、通信管理サーバ1、通信代理オブジェク
ト2を備えており、複数の計算機により構成されるシス
テムに適用される。通信管理サーバ1は、異なる計算機
上のプロセスオブジェクト間の通信を管理する。一方、
同一計算機上のプロセスオブジェクト間の通信には、そ
の計算機内の共有メモリ(図示省略)を利用する。通信
代理オブジェクト2は、プロセスオブジェクトからの通
信依頼を受け入れ、通信に際し、通信管理サーバ1又は
共有メモリのいずれかを利用して通信処理を行う。
【0011】図1の例では、2台の計算機11、12が
相互にネットワークによって結合されている。各計算機
11、12には、それぞれ任意の数のプロセスオブジェ
クト3とこれらの存在を管理するための通信管理サーバ
1が設けられている。いずれかのプロセスオブジェクト
3が同一計算機あるいは他の計算機上のプロセスオブジ
ェクト3に対し、何らかの手続を依頼する場合には、通
信代理オブジェクト2に対して依頼する。このように、
本発明では、通信代理オブジェクト2を介してプロセス
オブジェクト3間のメッセージ通信機構を実現する。
相互にネットワークによって結合されている。各計算機
11、12には、それぞれ任意の数のプロセスオブジェ
クト3とこれらの存在を管理するための通信管理サーバ
1が設けられている。いずれかのプロセスオブジェクト
3が同一計算機あるいは他の計算機上のプロセスオブジ
ェクト3に対し、何らかの手続を依頼する場合には、通
信代理オブジェクト2に対して依頼する。このように、
本発明では、通信代理オブジェクト2を介してプロセス
オブジェクト3間のメッセージ通信機構を実現する。
【0012】図2は、本発明に係るプロセスオブジェク
トの構成の説明図である。図2に示すように、プロセス
オブジェクト3は、プロセス名31と、プロセス識別番
号32と、メソッドモジュールポインタ33と、メソッ
ドディスパッチャ34と、通信代理オブジェクトポイン
タ35とから構成されている。プロセス名31は、プロ
セスオブジェクト3を特定するための名称である。プロ
セス識別番号32は、プロセス毎に同一計算機内で各プ
ロセスを区別するために用いられる符号から構成され
る。従って、プロセス名31とプロセス識別番号32
は、いずれも同一計算機上では重複して設定されること
はない。
トの構成の説明図である。図2に示すように、プロセス
オブジェクト3は、プロセス名31と、プロセス識別番
号32と、メソッドモジュールポインタ33と、メソッ
ドディスパッチャ34と、通信代理オブジェクトポイン
タ35とから構成されている。プロセス名31は、プロ
セスオブジェクト3を特定するための名称である。プロ
セス識別番号32は、プロセス毎に同一計算機内で各プ
ロセスを区別するために用いられる符号から構成され
る。従って、プロセス名31とプロセス識別番号32
は、いずれも同一計算機上では重複して設定されること
はない。
【0013】通信代理オブジェクトポインタ35は、こ
のプロセスオブジェクト3が保持する通信代理オブジェ
クト2を格納した記憶領域を示すもので、通信代理オブ
ジェクト2の記憶領域の最初のアドレスを指している。
メソッドモジュールポインタ33は、このプロセスオブ
ジェクト3の保持するメソッドコード51が格納される
記憶領域の最初のアドレスを示す。メソッドディスパッ
チャ34は、他のプロセスから呼び出されるメッセージ
を解釈し、メソッドモジュールの中のそのメッセージに
対応するメソッドコードを実行するためのモジュールで
ある。
のプロセスオブジェクト3が保持する通信代理オブジェ
クト2を格納した記憶領域を示すもので、通信代理オブ
ジェクト2の記憶領域の最初のアドレスを指している。
メソッドモジュールポインタ33は、このプロセスオブ
ジェクト3の保持するメソッドコード51が格納される
記憶領域の最初のアドレスを示す。メソッドディスパッ
チャ34は、他のプロセスから呼び出されるメッセージ
を解釈し、メソッドモジュールの中のそのメッセージに
対応するメソッドコードを実行するためのモジュールで
ある。
【0014】即ち、このプロセスオブジェクト3が何ら
かの手続を実行する場合、メソッドモジュール5に格納
されたメソッドコード51を実行する。同一の計算機あ
るいは他の計算機上のプロセスオブジェクトに手続実行
を依頼する場合は、プロセスオブジェクト3が保持する
通信代理オブジェクト2に、適当な引数、その他の情報
を渡す。そして、その通信代理オブジェクト2を通して
相手プロセスオブジェクト3の保持する通信代理オブジ
ェクト2にメッセージ通信する。
かの手続を実行する場合、メソッドモジュール5に格納
されたメソッドコード51を実行する。同一の計算機あ
るいは他の計算機上のプロセスオブジェクトに手続実行
を依頼する場合は、プロセスオブジェクト3が保持する
通信代理オブジェクト2に、適当な引数、その他の情報
を渡す。そして、その通信代理オブジェクト2を通して
相手プロセスオブジェクト3の保持する通信代理オブジ
ェクト2にメッセージ通信する。
【0015】受信側のプロセスオブジェクト3は、通信
代理オブジェクト2を通してそのメッセージを受け取る
と、メソッドディスパッチャ34によりメッセージを解
釈する。そして、受信した引数等から該当するメソッド
コードを特定し、メソッドモジュール中の対応するメソ
ッドコードを実行する。その後、その結果を通信代理オ
ブジェクト2を介して依頼側のプロセスオブジェクト3
へ返す。このような処理を実行するため、プロセスオブ
ジェクト3は、図2に示すような構成とされている。
代理オブジェクト2を通してそのメッセージを受け取る
と、メソッドディスパッチャ34によりメッセージを解
釈する。そして、受信した引数等から該当するメソッド
コードを特定し、メソッドモジュール中の対応するメソ
ッドコードを実行する。その後、その結果を通信代理オ
ブジェクト2を介して依頼側のプロセスオブジェクト3
へ返す。このような処理を実行するため、プロセスオブ
ジェクト3は、図2に示すような構成とされている。
【0016】通信代理オブジェクト2は、通信代理オブ
ジェクト名21、これを保持するプロセスオブジェクト
3と通信を確立している相手方のプロセスオブジェクト
3の保持する相手通信代理オブジェクト名22を格納し
ている。また、ネットワーク通信モジュールポインタ2
3、共有メモリ通信モジュールポインタ24を格納して
いる。通信代理オブジェクト名21は、通信代理オブジ
ェクト2を特定するための名称である。ネットワーク通
信モジュールポインタ23は、ネットワーク通信モジュ
ール7を格納した場所の先頭アドレスを示す部分であ
る。ネットワーク通信モジュール7は、異なった計算機
上のプロセスオブジェクト3との通信を行うためのモジ
ュールである。このため、ネットワーク通信モジュール
7は、メッセージ送信機能71と、メッセージ受信機能
72と、メッセージ返信機能73とを持つ。
ジェクト名21、これを保持するプロセスオブジェクト
3と通信を確立している相手方のプロセスオブジェクト
3の保持する相手通信代理オブジェクト名22を格納し
ている。また、ネットワーク通信モジュールポインタ2
3、共有メモリ通信モジュールポインタ24を格納して
いる。通信代理オブジェクト名21は、通信代理オブジ
ェクト2を特定するための名称である。ネットワーク通
信モジュールポインタ23は、ネットワーク通信モジュ
ール7を格納した場所の先頭アドレスを示す部分であ
る。ネットワーク通信モジュール7は、異なった計算機
上のプロセスオブジェクト3との通信を行うためのモジ
ュールである。このため、ネットワーク通信モジュール
7は、メッセージ送信機能71と、メッセージ受信機能
72と、メッセージ返信機能73とを持つ。
【0017】共有メモリ通信モジュールポインタ24
は、共有メモリ通信モジュール8を格納した記憶領域の
先頭アドレスを示す部分である。共有メモリ通信モジュ
ール8は、同一計算機上のプロセスオブジェクト3との
通信を行うためのモジュールである。このため、共有メ
モリ通信モジュール8は、ネットワークを経由しないメ
ッセージ送信機能81と、メッセージ受信機能82と、
メッセージ返信機能83とを持つ。
は、共有メモリ通信モジュール8を格納した記憶領域の
先頭アドレスを示す部分である。共有メモリ通信モジュ
ール8は、同一計算機上のプロセスオブジェクト3との
通信を行うためのモジュールである。このため、共有メ
モリ通信モジュール8は、ネットワークを経由しないメ
ッセージ送信機能81と、メッセージ受信機能82と、
メッセージ返信機能83とを持つ。
【0018】尚、通信代理オブジェクト2は、通信相手
となるプロセスオブジェクト3に対応して複数作られ
る。即ち、この通信代理オブジェクト2は、先に説明し
た要領でプロセスオブジェクト3から引数等の情報を受
け取り、相手方のプロセスオブジェクト3にメッセージ
を送信する場合、プロセス名31及びプロセス識別番号
32により計算機システム上のプロセスオブジェクト3
の位置を判定する。そして、そのプロセスオブジェクト
3の位置によりネットワーク通信モジュール7内のメッ
セージ送信機能71、又は共有メモリ通信モジュール8
内のメッセージ送信機能81のいずれかを使用する。
となるプロセスオブジェクト3に対応して複数作られ
る。即ち、この通信代理オブジェクト2は、先に説明し
た要領でプロセスオブジェクト3から引数等の情報を受
け取り、相手方のプロセスオブジェクト3にメッセージ
を送信する場合、プロセス名31及びプロセス識別番号
32により計算機システム上のプロセスオブジェクト3
の位置を判定する。そして、そのプロセスオブジェクト
3の位置によりネットワーク通信モジュール7内のメッ
セージ送信機能71、又は共有メモリ通信モジュール8
内のメッセージ送信機能81のいずれかを使用する。
【0019】また、相手方のプロセスオブジェクト3か
らメッセージを受信した場合、上記と同様に2つのモジ
ュール内のどちらかのメッセージ受信機能72又は82
が動作する。更に、メッセージ返信機能73、83は、
手続依頼を受けたプロセスオブジェクト3が手続依頼側
のプロセスオブジェクト3に対して一定の処理結果を返
信するために動作する部分である。
らメッセージを受信した場合、上記と同様に2つのモジ
ュール内のどちらかのメッセージ受信機能72又は82
が動作する。更に、メッセージ返信機能73、83は、
手続依頼を受けたプロセスオブジェクト3が手続依頼側
のプロセスオブジェクト3に対して一定の処理結果を返
信するために動作する部分である。
【0020】図3は、メッセージ通信概念の説明図であ
る。図3に示すように、プロセスオブジェクト3−1が
クライアントで、プロセスオブジェクト3−3が同一計
算機内のサーバであり、プロセスオブジェクト3−2が
異なった計算機上にあるサーバであるとする。この場
合、プロセスオブジェクト3−1は、サーバとなるプロ
セスオブジェクト3−2と3−3に対応して通信代理オ
ブジェクト2−1−1と2−1−2を生成し、そのサー
バの存在する位置の情報を設定する。この後、プロセス
オブジェクト3−1は、サーバへの手続の実行依頼を行
う場合は、そのサーバに対応した通信代理オブジェクト
2−1−1と2−1−2に対して手続を依頼し、その実
行結果を受けとるよう動作する。
る。図3に示すように、プロセスオブジェクト3−1が
クライアントで、プロセスオブジェクト3−3が同一計
算機内のサーバであり、プロセスオブジェクト3−2が
異なった計算機上にあるサーバであるとする。この場
合、プロセスオブジェクト3−1は、サーバとなるプロ
セスオブジェクト3−2と3−3に対応して通信代理オ
ブジェクト2−1−1と2−1−2を生成し、そのサー
バの存在する位置の情報を設定する。この後、プロセス
オブジェクト3−1は、サーバへの手続の実行依頼を行
う場合は、そのサーバに対応した通信代理オブジェクト
2−1−1と2−1−2に対して手続を依頼し、その実
行結果を受けとるよう動作する。
【0021】通信代理オブジェクト2−1−1と2−1
−2は、プロセスオブジェクト3−1からの手続依頼を
受け取ると、サーバ側の通信代理オブジェクト2−2、
2−3とメッセージ通信を実行する。その際、サーバが
同一計算機上にない場合はネットワーク通信モジュール
7内の機能を用いて通信が行われ、同一計算機上にある
場合は共有メモリ通信モジュール8内の機能を用いて通
信が行われる。これらの処理手順を、図4のクライアン
ト側プロセスの処理、図5のサーバ側プロセスの処理の
それぞれについてフローチャートを用いて順に説明す
る。
−2は、プロセスオブジェクト3−1からの手続依頼を
受け取ると、サーバ側の通信代理オブジェクト2−2、
2−3とメッセージ通信を実行する。その際、サーバが
同一計算機上にない場合はネットワーク通信モジュール
7内の機能を用いて通信が行われ、同一計算機上にある
場合は共有メモリ通信モジュール8内の機能を用いて通
信が行われる。これらの処理手順を、図4のクライアン
ト側プロセスの処理、図5のサーバ側プロセスの処理の
それぞれについてフローチャートを用いて順に説明す
る。
【0022】図4は、クライアント側の動作を説明する
フローチャートである。クライアントプロセス側では、
まずステップS1において、プロセスオブジェクト3−
1が作成される。次に、ステップS2において、手続を
提供するプロセスオブジェクト3−2、3−3が存在す
るかどうかが判断される。存在しなければ、ステップS
3において、プロセスオブジェクト3−2と3−3の作
成要求を発行する。そして、ステップS4において、プ
ロセスオブジェクト3−2の代理となる通信代理オブジ
ェクト2−1−1、プロセスオブジェクト3−3の代理
となる通信代理オブジェクト2−1−2を作成する。
フローチャートである。クライアントプロセス側では、
まずステップS1において、プロセスオブジェクト3−
1が作成される。次に、ステップS2において、手続を
提供するプロセスオブジェクト3−2、3−3が存在す
るかどうかが判断される。存在しなければ、ステップS
3において、プロセスオブジェクト3−2と3−3の作
成要求を発行する。そして、ステップS4において、プ
ロセスオブジェクト3−2の代理となる通信代理オブジ
ェクト2−1−1、プロセスオブジェクト3−3の代理
となる通信代理オブジェクト2−1−2を作成する。
【0023】次に、ステップS5において、目的とする
手続に相当する通信代理オブジェクト内の関数を起動す
る。この関数は、手続を依頼する場合の関数名や引数か
ら構成される。さらに、ステップS6において、手続を
提供するプロセスオブジェクトが同一計算機上にあるか
どうか、即ち図3におけるプロセスオブジェクト3−3
かどうかが判定される。この判定は、図2に示すプロセ
ス名31又はプロセス識別番号32を判定することによ
り行われる。例えば、プロセス名31の頭文字が個々の
計算機を識別する符号であるときは、そのような頭文字
がクライアントとサーバとで同じかどうかにより判定す
る。
手続に相当する通信代理オブジェクト内の関数を起動す
る。この関数は、手続を依頼する場合の関数名や引数か
ら構成される。さらに、ステップS6において、手続を
提供するプロセスオブジェクトが同一計算機上にあるか
どうか、即ち図3におけるプロセスオブジェクト3−3
かどうかが判定される。この判定は、図2に示すプロセ
ス名31又はプロセス識別番号32を判定することによ
り行われる。例えば、プロセス名31の頭文字が個々の
計算機を識別する符号であるときは、そのような頭文字
がクライアントとサーバとで同じかどうかにより判定す
る。
【0024】サーバがプロセスオブジェクト3−3であ
れば、ステップS7において、通信代理オブジェクト内
の共有メモリ通信モジュールのメッセージ送信機能を用
い、共有メモリへメッセージを書き込む。そして、メッ
セージを書き込んだという通知をプロセスオブジェクト
3−3に対して行う。一方、プロセスオブジェクト3−
3でなければ、ステップS8において、ネットワークを
経由する遠隔プロセス間メッセージを組み立てる。そし
て、ネットワーク通信モジュールのメッセージ送信機能
を用い、プロセスオブジェクト3−2を管理する通信管
理サーバ1−2へメッセージを送信する。
れば、ステップS7において、通信代理オブジェクト内
の共有メモリ通信モジュールのメッセージ送信機能を用
い、共有メモリへメッセージを書き込む。そして、メッ
セージを書き込んだという通知をプロセスオブジェクト
3−3に対して行う。一方、プロセスオブジェクト3−
3でなければ、ステップS8において、ネットワークを
経由する遠隔プロセス間メッセージを組み立てる。そし
て、ネットワーク通信モジュールのメッセージ送信機能
を用い、プロセスオブジェクト3−2を管理する通信管
理サーバ1−2へメッセージを送信する。
【0025】その後、ステップS9でメッセージの返信
を受ける必要があるかどうかを判断する。メッセージの
返信を受ける必要がある場合には、ステップS10に移
り、ネットワーク通信モジュールか共有メモリ通信モジ
ュールのいずれかのメッセージ受信機能を用い、待ち状
態に入る。そして、ステップS11において、メッセー
ジの実行結果を受け取る。
を受ける必要があるかどうかを判断する。メッセージの
返信を受ける必要がある場合には、ステップS10に移
り、ネットワーク通信モジュールか共有メモリ通信モジ
ュールのいずれかのメッセージ受信機能を用い、待ち状
態に入る。そして、ステップS11において、メッセー
ジの実行結果を受け取る。
【0026】図5に、サーバ側の動作を説明するフロー
チャートを示す。まず、ステップS21において、サー
バ側のプロセスオブジェクト3−2、3−3が作成され
る。そして、ステップS22において、プロセスオブジ
ェクト3−2、3−3は、それぞれ通信代理オブジェク
ト2−2、2−3を起動し、メッセージ受信待ちに入
る。これによって、メッセージを受け付けることができ
る状態となるが、その際、ステップS23において、同
一計算機内のプロセスオブジェクトと通信するのかどう
かを判定する。つまり、図3の通信代理オブジェクト2
−3かどうかを判定する。通信代理オブジェクト2−3
であれば、ステップS24において、共有メモリ通信モ
ジュール内のメッセージ受信機能を用いてメッセージを
受信する。また、通信代理オブジェクト2−2であれ
ば、ステップS25において、ネットワーク通信モジュ
ール内のメッセージ受信機能を用いて、通信管理サーバ
1−2からメッセージを受信する。
チャートを示す。まず、ステップS21において、サー
バ側のプロセスオブジェクト3−2、3−3が作成され
る。そして、ステップS22において、プロセスオブジ
ェクト3−2、3−3は、それぞれ通信代理オブジェク
ト2−2、2−3を起動し、メッセージ受信待ちに入
る。これによって、メッセージを受け付けることができ
る状態となるが、その際、ステップS23において、同
一計算機内のプロセスオブジェクトと通信するのかどう
かを判定する。つまり、図3の通信代理オブジェクト2
−3かどうかを判定する。通信代理オブジェクト2−3
であれば、ステップS24において、共有メモリ通信モ
ジュール内のメッセージ受信機能を用いてメッセージを
受信する。また、通信代理オブジェクト2−2であれ
ば、ステップS25において、ネットワーク通信モジュ
ール内のメッセージ受信機能を用いて、通信管理サーバ
1−2からメッセージを受信する。
【0027】そして、ステップS26において、メッセ
ージを解釈実行するために既に図2において説明したプ
ロセスオブジェクト3内のメソッドディスパッチャ34
を起動する。ステップS27で、メソッドディスパッチ
ャ34は、メソッドモジュールの中からメッセージに対
応するメソッドコードを実行する。そして、ステップS
28において、実行結果メッセージを返信する必要があ
るかどうかを判断する。返信する必要がなければ、これ
で処理を終了する。一方、返信の必要があれば、ステッ
プS29において、同一計算機内での返信の場合、共有
メモリ通信モジュール8内のメッセージ返信機能83を
用いる。また、異なった計算機への返信の場合、ネット
ワーク通信モジュール7内のメッセージ返信機能73を
用いる。そして、プロセスオブジェクト3−1を管理す
る通信管理サーバ1−1へメッセージを返信する。
ージを解釈実行するために既に図2において説明したプ
ロセスオブジェクト3内のメソッドディスパッチャ34
を起動する。ステップS27で、メソッドディスパッチ
ャ34は、メソッドモジュールの中からメッセージに対
応するメソッドコードを実行する。そして、ステップS
28において、実行結果メッセージを返信する必要があ
るかどうかを判断する。返信する必要がなければ、これ
で処理を終了する。一方、返信の必要があれば、ステッ
プS29において、同一計算機内での返信の場合、共有
メモリ通信モジュール8内のメッセージ返信機能83を
用いる。また、異なった計算機への返信の場合、ネット
ワーク通信モジュール7内のメッセージ返信機能73を
用いる。そして、プロセスオブジェクト3−1を管理す
る通信管理サーバ1−1へメッセージを返信する。
【0028】このようにして、互いにネットワークを介
して接続された2つの計算機のうち、いずれかの計算機
上で動作するプロセスオブジェクト3が同一計算機ある
いは他の計算機上のプロセスオブジェクト3にメッセー
ジを送信して所定の手続きの実行を依頼する場合の通信
処理が通信代理オブジェクト2により代行される。即
ち、依頼側のプロセスオブジェクト3と依頼を受け入れ
る側のプロセスオブジェクト3内にそれぞれ通信代理オ
ブジェクト2が設定される。そして、それらの通信代理
オブジェクト2は、ネットワーク通信モジュール7ある
いは共有メモリ通信モジュール8のいずれかを利用して
通信処理を行う。これにより、同一計算機上のプロセス
オブジェクト3間の通信は、共有メモリ通信モジュール
8により共有メモリを介して行われるので、処理時間が
短縮される。また、プログラムの作成者は、通信代理オ
ブジェクト2を利用することにより、ネットワーク経由
の通信と、共有メモリ経由の通信の利用の区別を意識す
ることなく、効率のよいプログラミングが可能となる。
して接続された2つの計算機のうち、いずれかの計算機
上で動作するプロセスオブジェクト3が同一計算機ある
いは他の計算機上のプロセスオブジェクト3にメッセー
ジを送信して所定の手続きの実行を依頼する場合の通信
処理が通信代理オブジェクト2により代行される。即
ち、依頼側のプロセスオブジェクト3と依頼を受け入れ
る側のプロセスオブジェクト3内にそれぞれ通信代理オ
ブジェクト2が設定される。そして、それらの通信代理
オブジェクト2は、ネットワーク通信モジュール7ある
いは共有メモリ通信モジュール8のいずれかを利用して
通信処理を行う。これにより、同一計算機上のプロセス
オブジェクト3間の通信は、共有メモリ通信モジュール
8により共有メモリを介して行われるので、処理時間が
短縮される。また、プログラムの作成者は、通信代理オ
ブジェクト2を利用することにより、ネットワーク経由
の通信と、共有メモリ経由の通信の利用の区別を意識す
ることなく、効率のよいプログラミングが可能となる。
【0029】尚、本発明は、上述した実施例に限定され
るものではなく、種々の変形が可能であることはもちろ
んである。例えば、上述した実施例では、計算機が2台
の場合について説明したが、3台以上の計算機がある場
合も同様である。また、各プロセスオブジェクト3が処
理の依頼先ごとに通信代理オブジェクト2を生成する場
合について説明したが、1つの通信代理オブジェクト2
が複数の依頼先への通信処理を代行するようにしても差
し支えない。
るものではなく、種々の変形が可能であることはもちろ
んである。例えば、上述した実施例では、計算機が2台
の場合について説明したが、3台以上の計算機がある場
合も同様である。また、各プロセスオブジェクト3が処
理の依頼先ごとに通信代理オブジェクト2を生成する場
合について説明したが、1つの通信代理オブジェクト2
が複数の依頼先への通信処理を代行するようにしても差
し支えない。
【0030】
【発明の効果】以上説明したように、本発明のプロセス
間通信処理装置によれば、依頼側のプロセスオブジェク
トと依頼を受け入れる側のプロセスオブジェクト内にそ
れぞれ通信代理オブジェクトを設定し、その通信代理オ
ブジェクトの保持するネットワーク通信モジュールある
いは共有メモリ通信モジュールを選択的に利用するよう
にしたので、次のような効果がある。即ち、送信先とな
るプロセスが送信元であるプロセスと同一計算機上にあ
る場合は、通信代理オブジェクトにより共有メモリを介
した通信が選択される。従って、その場合、プロセスオ
ブジェクト間の通信処理の負荷を軽減し、計算時間を短
縮することができる。また、通信代理オブジェクトによ
り、プロセスが同一の計算機上にあるか否かに関わら
ず、同一の通信プロトコルを利用することができる。こ
のため、双方のプロセスがどの計算機に存在するかを意
識する必要がない。従って、双方のプロセスが異なる通
信プロトコルを採用する場合でも、プログラム作成側の
責任において処理を記述する必要がなく、プログラムの
作成効率を向上させることができる。
間通信処理装置によれば、依頼側のプロセスオブジェク
トと依頼を受け入れる側のプロセスオブジェクト内にそ
れぞれ通信代理オブジェクトを設定し、その通信代理オ
ブジェクトの保持するネットワーク通信モジュールある
いは共有メモリ通信モジュールを選択的に利用するよう
にしたので、次のような効果がある。即ち、送信先とな
るプロセスが送信元であるプロセスと同一計算機上にあ
る場合は、通信代理オブジェクトにより共有メモリを介
した通信が選択される。従って、その場合、プロセスオ
ブジェクト間の通信処理の負荷を軽減し、計算時間を短
縮することができる。また、通信代理オブジェクトによ
り、プロセスが同一の計算機上にあるか否かに関わら
ず、同一の通信プロトコルを利用することができる。こ
のため、双方のプロセスがどの計算機に存在するかを意
識する必要がない。従って、双方のプロセスが異なる通
信プロトコルを採用する場合でも、プログラム作成側の
責任において処理を記述する必要がなく、プログラムの
作成効率を向上させることができる。
【図1】本発明のプロセス間通信処理装置の一実施例の
ブロック図である。
ブロック図である。
【図2】本発明に係るプロセスオブジェクトの構成の説
明図である。
明図である。
【図3】本発明に係るメッセージ通信概念の説明図であ
る。
る。
【図4】クライアント側のプロセスの動作を説明するフ
ローチャートである。
ローチャートである。
【図5】サーバ側のプロセスの動作を説明するフローチ
ャートである。
ャートである。
1 通信管理サーバ 2 通信代理オブジェクト 3 プロセスオブジェクト
Claims (2)
- 【請求項1】 互いにネットワークを介して接続された
複数の計算機のうちのいずれかの計算機上で動作する一
のプロセスオブジェクトが、同一の計算機あるいは他の
計算機上で動作する他のプロセスオブジェクトにメッセ
ージを送信して所定の手続依頼を行うシステムにおい
て、 前記計算機間のメッセージの通信を管理する通信管理サ
ーバと、 前記一のプロセスオブジェクトの手続き依頼要求を受け
入れて、依頼先のプロセスオブジェクトの計算機システ
ム上の位置を判定し、依頼先のプロセスオブジェクトが
同一計算機上にあるときは、共有メモリを介したメッセ
ージ通信を行い、依頼先のプロセスオブジェクトが異な
る計算機上にあるときは、前記通信管理サーバを介した
メッセージ通信を行う通信代理オブジェクトとを備えた
ことを特徴とするプロセス間通信処理装置。 - 【請求項2】 前記計算機システムの各プロセスオブジ
ェクトは、依頼先のプロセスオブジェクト毎にそれぞれ
前記通信代理オブジェクトを生成し、それらの通信代理
オブジェクトは依頼先のプロセスオブジェクトが同一計
算機上にあれば、共有メモリを介したメッセージ通信を
行うことを特徴とする請求項1記載のプロセス間通信処
理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4351595A JPH08212180A (ja) | 1995-02-08 | 1995-02-08 | プロセス間通信処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4351595A JPH08212180A (ja) | 1995-02-08 | 1995-02-08 | プロセス間通信処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH08212180A true JPH08212180A (ja) | 1996-08-20 |
Family
ID=12665886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4351595A Pending JPH08212180A (ja) | 1995-02-08 | 1995-02-08 | プロセス間通信処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH08212180A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11338720A (ja) * | 1998-05-28 | 1999-12-10 | Nec Software Ltd | クライアントサーバ間通信制御方法及び装置及び記録媒体 |
JP2002189608A (ja) * | 2000-08-28 | 2002-07-05 | Sony Corp | 通信装置及び通信方法、情報処理システム、プログラム作成方法、ネットワークシステム、並びにロボット装置 |
JP2003177930A (ja) * | 2001-09-04 | 2003-06-27 | Samsung Electronics Co Ltd | プロセス間通信方法及び装置 |
JP2006260588A (ja) * | 1998-08-17 | 2006-09-28 | Microsoft Corp | 分散コンポーネントアプリケーションでの待機メソッド呼び出し方法 |
JP2008186357A (ja) * | 2007-01-31 | 2008-08-14 | Renesas Technology Corp | データ処理装置 |
JP2010020650A (ja) * | 2008-07-14 | 2010-01-28 | Sony Corp | 情報処理システム及び情報処理方法、ロボットの制御システム及び制御方法、並びコンピュータ・プログラム |
JP4689917B2 (ja) * | 1999-11-25 | 2011-06-01 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | 分散処理システムにおける相互プロセス通信 |
JP2017208145A (ja) * | 2011-09-30 | 2017-11-24 | オラクル・インターナショナル・コーポレイション | ミドルウェアマシン環境においてマルチノードアプリケーションのためのメッセージキューを提供および管理するためのシステムおよび方法 |
-
1995
- 1995-02-08 JP JP4351595A patent/JPH08212180A/ja active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11338720A (ja) * | 1998-05-28 | 1999-12-10 | Nec Software Ltd | クライアントサーバ間通信制御方法及び装置及び記録媒体 |
JP2006260588A (ja) * | 1998-08-17 | 2006-09-28 | Microsoft Corp | 分散コンポーネントアプリケーションでの待機メソッド呼び出し方法 |
JP4689917B2 (ja) * | 1999-11-25 | 2011-06-01 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | 分散処理システムにおける相互プロセス通信 |
JP2002189608A (ja) * | 2000-08-28 | 2002-07-05 | Sony Corp | 通信装置及び通信方法、情報処理システム、プログラム作成方法、ネットワークシステム、並びにロボット装置 |
JP2003177930A (ja) * | 2001-09-04 | 2003-06-27 | Samsung Electronics Co Ltd | プロセス間通信方法及び装置 |
JP2008186357A (ja) * | 2007-01-31 | 2008-08-14 | Renesas Technology Corp | データ処理装置 |
JP2010020650A (ja) * | 2008-07-14 | 2010-01-28 | Sony Corp | 情報処理システム及び情報処理方法、ロボットの制御システム及び制御方法、並びコンピュータ・プログラム |
JP4577422B2 (ja) * | 2008-07-14 | 2010-11-10 | ソニー株式会社 | 情報処理システム及び情報処理方法、ロボットの制御システム及び制御方法、並びコンピュータ・プログラム |
JP2017208145A (ja) * | 2011-09-30 | 2017-11-24 | オラクル・インターナショナル・コーポレイション | ミドルウェアマシン環境においてマルチノードアプリケーションのためのメッセージキューを提供および管理するためのシステムおよび方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0817043B1 (en) | Apparatus and method for operating an aggregation of server computers using a dual-role proxy server computer | |
JP3853592B2 (ja) | 分散ウェブアプリケーションサーバ | |
EP1665711B1 (en) | System and method for asynchronous wireless services using reverse service schema generation | |
US5926636A (en) | Remote procedural call component management method for a heterogeneous computer network | |
US5818448A (en) | Apparatus and method for identifying server computer aggregation topologies | |
EP1027794B1 (en) | Method and system for facilitating distributed software development in a distribution unaware manner | |
EP0767563B1 (en) | Method and apparatus for multiprotocol operation in a client/server system | |
CA2279382C (en) | Web request broker controlling multiple processes | |
KR100357850B1 (ko) | 코버플락시모듈을 이용한 다양한 프로토콜 공통 서비스를위한 분산객체 지향 통신시스템 및 그 방법 | |
US6836892B2 (en) | Apparatus and method for use in distributed computing environment for converting data format between program language-specific format used in respective computers and stream format used for communication among computers | |
US6697876B1 (en) | Distributed kernel operating system | |
US20020144009A1 (en) | System and method for common information model object manager proxy interface and management | |
US7689430B2 (en) | Access to web services | |
EP1191438A2 (en) | Web server in-kernel interface to data transport system and cache manager | |
JPH08212180A (ja) | プロセス間通信処理装置 | |
JP2002505491A (ja) | 分散形システムにおける動的情報証明のための装置及び方法 | |
JP2003157178A (ja) | Xmlデータによる遠隔オブジェクト呼出し方法 | |
JP2000151739A (ja) | 情報処理装置、分散処理装置およびネットワークシステム | |
JP2001290785A (ja) | Orbシステム及びエージェントシステムの構築方法 | |
JPH08335211A (ja) | 分散オブジェクト環境実現システム | |
JPH0546569A (ja) | 分散処理システム | |
JPH02118867A (ja) | メッセージ通信処理方式 | |
JP2008226127A (ja) | 分散処理におけるメッセージングの高信頼化装置及び高信頼化方法 | |
JPH07271723A (ja) | プロセス間通信処理装置 | |
JPH056321A (ja) | リモートプロシジヤの管理方式 |