JP2002024035A - プロセス間通信装置及び方法 - Google Patents

プロセス間通信装置及び方法

Info

Publication number
JP2002024035A
JP2002024035A JP2000202839A JP2000202839A JP2002024035A JP 2002024035 A JP2002024035 A JP 2002024035A JP 2000202839 A JP2000202839 A JP 2000202839A JP 2000202839 A JP2000202839 A JP 2000202839A JP 2002024035 A JP2002024035 A JP 2002024035A
Authority
JP
Japan
Prior art keywords
data
request
section
area
client
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
JP2000202839A
Other languages
English (en)
Inventor
Masato Kawazu
正人 河津
Masahiko Kuwata
雅彦 桑田
Takeshi Otawara
剛 太田原
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.)
NEC Corp
NEC Informatec Systems Ltd
Original Assignee
NEC Corp
NEC Informatec Systems 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 NEC Corp, NEC Informatec Systems Ltd filed Critical NEC Corp
Priority to JP2000202839A priority Critical patent/JP2002024035A/ja
Publication of JP2002024035A publication Critical patent/JP2002024035A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 複数のクライアントプロセスからのランダム
なデータ要求に対して、サーバプロセスが要求送信順
に、応答データを送信できるようにする。 【解決手段】 開示されるプロセス間通信装置は、複数
のセクションに、クライアントプロセスの要求データと
サーバプロセスの応答データとを書き込み/読み出しす
るデータ記述装置4と、クライアントプロセスとサーバ
プロセスによるデータ記述装置4の各セクションの使用
状態を管理する領域管理装置3と、サーバプロセスが、
データ記述装置4の各セクションにおけるクライアント
プロセスの要求データを処理する際の順序を定める順序
管理装置5と、サーバプロセスに対して、処理すべきク
ライアントプロセスの要求データがあることを通知する
要求通知装置6と、クライアントプロセスに対して、要
求データに対応する応答データの書き込みを通知する結
果通知装置7とを備えている。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、複数のクライア
ントプロセスの要求に応じて、サーバプロセスがデータ
を送信するための、プロセス間通信装置及び方法に関す
る。
【0002】
【従来の技術】プロセス間の通信方式としては、既にい
くつかの方式が知られている。これらのうち、マネージ
ャがクライアントの管理を容易に行うことができ、クラ
イアント側からの処理要求を確実に処理することができ
るものとして、例えば、特開平4−251338号公報
に開示されたものがある。この従来のプロセス間通信方
式は、図4に示すように、マネージャ11と、複数のク
ライアント12(121〜123)に対して、共有メモ
リ13と、排他制御部14と、イベント通知部15とを
設けて構成されている。また、共有メモリ13は、クラ
イアント用共有メモリ131と、マネージャ用共有メモ
リ132とから構成されている。
【0003】図4に示された従来のプロセス間通信方式
においては、いずれかのクライアントがデータを送信し
ようとするときは、排他的制御部14を介して、マネー
ジャが、マネージャ用共有メモリ132から要求を受け
付けることができる状態であることを確認したのち、排
他的制御部14を介してクライアント用共有メモリ13
1をロックして送信データを書き込み、その後、イベン
ト通知部15を介して、マネージャ11に送信データが
あることを通知する。これによって、マネージャ11
は、マネージャ用共有メモリ132を、要求処理中状態
を示すように書き換え、クライアントからのデータ要求
を処理したのち、処理結果をクライアント共有メモリ1
31に書き込むとともに、マネージャ用共有メモリ13
2を、要求受け付け可能状態を示すように書き換える。
最後に、クライアントは、マネージャ11からのデータ
を取り出し、その後、クライアント用共有メモリ131
のロックを解除する。
【0004】また、別の従来のプロセス間通信方式とし
て、メッセージキュー方式が知られている。この場合
は、プロセス間通信によって送受信するデータを、キュ
ーメモリにキューイングすることによって、他のプロセ
ス間通信の終了を待つことなしに、別のプロセス間通信
を実行することができるとともに、クライアントからマ
ネージャ側への送信順序を保つことができる。
【0005】
【発明が解決しようとする課題】しかしながら、これら
の従来技術には、次のような問題点があった。第1の問
題点は、あるクライアントがマネージャとプロセス間で
送受信するデータに対しては、そのデータを受信するプ
ロセスを識別するためのデータを付加する必要がある
が、その対策がなされていないということである。その
理由は、送受信するデータを、メモリキューにキューイ
ングしたり、共有メモリに蓄積したりしただけでは、そ
のデータを、各プロセスが受信してよいか否かを識別で
きないためである。第2の問題点は、送受信するデータ
が長大であった場合、1回のプロセス間通信で、データ
のすべてを送受信できない場合があるということであ
る。その理由は、送受信データを書き込むメッセージキ
ュー、又は共有メモリの領域の長さが固定になっている
ためである。第3の問題点は、いくつかのクライアント
プロセスが、長大なデータをマネージャに送信しようと
する場合、送信データを書き込むメッセージキューまた
は共有メモリに書き込むことができない場合があるとい
うことである。その理由は、各クライアントがマネージ
ャに送信するデータを書き込む領域が共通であるととも
に、その長さガ、固定的に定められているためである。
【0006】この発明は、上述の事情に鑑みてなされた
ものであって、プロセス間通信において、複数のクライ
アントプロセスが、サーバプロセスに対して、ランダム
に要求を送信した場合でも、サーバプロセスが、要求の
送信順に処理を行って、その通信内容を保証しながら、
高速にプロセス間通信を行うことが可能な、プロセス間
通信装置及び方法を提供することを目的としている。
【0007】
【課題を解決するための手段】上記課題を解決するた
め、請求項1記載の発明は、プロセス間通信装置に係
り、複数のセクションに、クライアントプロセスの要求
データとサーバプロセスの応答データとを書き込み/読
み出しするデータ記述手段と、クライアントプロセスと
サーバプロセスによる上記データ記述手段の各セクショ
ンの使用状態を管理する領域管理手段と、サーバプロセ
スが、上記データ記述手段の各セクションにおける上記
クライアントプロセスの要求データを処理する際の順序
を定める順序管理手段と、サーバプロセスに対して、処
理すべきクライアントプロセスの要求データがあること
を通知する要求通知手段と、クライアントプロセスに対
して、要求データに対応する応答データの書き込みを通
知する結果通知手段とを備えてなることを特徴としてい
る。
【0008】また、請求項2記載の発明は、請求項1記
載のプロセス間通信装置に係り、上記領域管理手段が、
上記データ記述手段のそれぞれのセクションを使用する
クライアントの識別子を記述する第1の領域と、該第1
の領域のセクションの要求データの後続部分を書き込む
上記データ記述手段のセクション番号を記述する第2の
領域とからなる複数の領域指定部を備えた領域管理部
と、上記各領域指定部に対する書き込みの排他制御を行
うアクセス制御部とからなることを特徴としている。ま
た、請求項3記載の発明は、請求項1又は2記載のプロ
セス間通信装置に係り、上記順序管理手段が、クライア
ントプロセスが要求データの書き込みを完了したデータ
記述手段のセクション番号を記述する順序管理部と、該
順序管理部に対する書き込みの排他制御を行うアクセス
制御部と、上記順序管理部における上記データ記述手段
のセクション番号の書き込み位置を指示する書き込み位
置指示部と、サーバプロセスが上記順序管理部における
上記データ記述手段のセクション番号を読み出す位置を
指示する読み出し位置指示部とからなることを特徴とし
ている。
【0009】また、請求項4記載の発明は、請求項1乃
至3のいずれか1記載のプロセス間通信装置に係り、上
記要求通知手段が、クライアントプロセスが要求データ
を出力するとインクリメントし、サーバプロセスが上記
要求データに対応する応答データを返すとデクリメント
するカウンタからなることを特徴としている。また、請
求項5記載の発明は、請求項1乃至4のいずれか1記載
のプロセス間通信装置に係り、上記結果通知手段におい
て、クライアントプロセスが上記データ記述手段におけ
る使用セクションに該当するフラグを要求データ送信時
に上げ、サーバプロセスが、上記要求データに対応する
応答データ送信時に上記該当するフラグを下げることを
特徴としている。
【0010】請求項6記載の発明は、プロセス間通信方
法に係り、クライアントプロセスからサーバプロセスへ
の要求データ送信時、クライアントプロセスは領域管理
手段の領域管理部への書き込み可能になったとき、該領
域管理部の領域指定欄の空きを検索して得た空き領域指
定欄にクライアントプロセスを指定したのち、データ記
述手段における上記領域指定欄に対応するセクションに
要求データを書き込み、順序管理手段の順序管理部への
書き込み可能になったとき、上記順序管理部に要求デー
タを書き込んだセクション番号を記述したのち、要求通
知手段を要求通知状態にし、結果通知手段に要求データ
の未処理を示すフラグを上げ、サーバプロセスからクラ
イアントプロセスへの応答データの送信時、サーバプロ
セスは、上記要求通知状態になったとき、上記順序管理
部から要求データが書き込まれているセクション番号を
取り出し、該セクションの要求データを読み出して処理
を行って得た応答データを、データ記述手段の上記要求
データのセクションに上書きし、クライアントプロセス
は、上記上書きされた応答データを取得したのち、上記
領域管理部への書き込み可能になったとき、領域管理部
の上記応答データが書き込まれていた領域指定欄を空き
にするとともに、上記要求通知装置を要求不通知状態に
し、結果通知手段の上記未処理を示すフラグを消去する
ことを特徴としている。
【0011】また、請求項7記載の発明は、請求項6記
載のプロセス間通信方法に係り、上記要求データ又は応
答データの上記データ記述手段への書き込み時、1セク
ションに書き込み不可能なときは、上記領域管理部にお
ける領域指定欄に対応する続セクション指定欄に余剰デ
ータを書き込むセクション番号を記述するとともに、該
セクション番号に対応する領域指定欄にクライアントプ
ロセス又はサーバプロセスを指定することを特徴として
いる。
【0012】
【作用】この発明の構成では、データ記述手段と、領域
管理手段と、順序管理手段と、要求通知手段と、結果通
知手段とを備えて、クライアントプロセスからサーバプ
ロセスへの要求データ送信時、クライアントプロセスは
領域管理手段の領域管理部への書き込み可能になったと
き、該領域管理部の領域指定欄の空きを検索して得た空
き領域指定欄にクライアントプロセスを指定したのち、
データ記述手段における上記領域指定欄に対応するセク
ションに要求データを書き込み、順序管理手段の順序管
理部への書き込み可能になったとき、上記順序管理部に
要求データを書き込んだセクション番号を記述したの
ち、要求通知手段を要求通知状態にし、結果通知手段に
要求データの未処理を示すフラグを上げ、サーバプロセ
スからクライアントプロセスへの応答データの送信時、
サーバプロセスは、上記要求通知状態になったとき、上
記順序管理部から要求データが書き込まれているセクシ
ョン番号を取り出し、該セクションの要求データを読み
出して処理を行って得た応答データを、データ記述手段
の上記要求データのセクションに上書きし、クライアン
トプロセスは、上記上書きされた応答データを取得した
のち、上記領域管理部への書き込み可能になったとき、
領域管理部の上記応答データが書き込まれていた領域指
定欄を空きにするとともに、上記要求通知装置を要求不
通知状態にし、結果通知手段の上記未処理を示すフラグ
を消去するようにしたので、プロセス間通信装置におい
て、複数のクライアントプロセスが、サーバプロセスに
対してランダムに要求を送信した場合でも、要求の送信
順に、サーバプロセスが処理を行うことができるととも
に、その通信内容を保証し、かつ、高速にプロセス間通
信を行うことができる。
【0013】
【発明の実施の形態】以下、図面を参照して、この発明
の実施の形態について説明する。説明は、実施例を用い
て具体的に行う。図1は、この発明の一実施例であるプ
ロセス間通信システムの構成を示すブロック図、図2
は、クライアントプロセスがサーバプロセスに対して要
求データを送信する場合の処理を示すフローチャート、
図3は、サーバプロセスがクライアントプロセスからの
要求に対して応答データを返す際の処理を示すフローチ
ャートである。この例のプロセス間通信システムは、図
1に示すように、クライアントプロセス1と、サーバプ
ロセス2とに対して、領域管理装置3と、データ記述装
置4と、順序管理装置5と、要求通知装置6と、結果通
知装置7とを設けた、概略構成を有している。また、領
域管理装置3は、領域管理部31と、アクセス制御部3
2とを含み、順序管理装置5は、順序管理部51と、ア
クセス制御部52と、書き込み位置指示部53と、読み
出し位置指示部54とを含んでいる。
【0014】領域管理装置3は、データ記述装置4のセ
クションを管理するものであって、クライアントプロセ
ス1は、領域管理装置3にアクセスして、要求データを
書き込めるセクションを獲得する。データ記述装置4
は、クライアントプロセス1の要求データ又はサーバプ
ロセス2の応答データを、書き込み/読み出しする領域
であって、複数のクライアントプロセス1が要求データ
を書き込めるようにするため、領域を複数のセクション
に分割されている。このセクションの大きさは、クライ
アントプロセス1の要求データ及びサーバプロセス2の
応答データを書き込むのに十分な大きさを考慮される
が、それぞれのデータの大きさによっては、複数のセク
ションを使用することもできる。
【0015】順序管理装置5は、クライアントプロセス
1から出力された要求データを、サーバプロセス2が処
理する際の順序を保証する管理を行う。要求通知装置6
は、クライアントプロセス1が要求を出力するとインク
リメントされ、サーバプロセス2が要求に対する処理を
行うと、デクリメントされる。サーバプロセス2は、要
求通知装置6の値を調べることによって、処理すべき要
求の有無を知ることができる。結果通知装置7は、サー
バプロセス2がクライアントプロセス1に対して応答デ
ータを返したことを示すフラグ配列である。クライアン
トプロセス1は、サーバプロセス2に対して要求データ
を送信する際に、要求データを書き込んだセクションと
同じ番号のフラグを上げる。サーバプロセス2は、その
フラグを下げることによって、応答データの通知を行
う。
【0016】次に、図1を参照して、この例のプロセス
間通信システムの動作について説明する。この例のプロ
セス間通信装置は、複数のクライアントプロセスが、1
つのサーバプロセスに要求データを送信し、また、サー
バプロセスが、要求に対応する、処理結果のデータをそ
れぞれのクライアントプロセスに送信するプロセス間通
信において、複数のクライアントプロセスが、サーバプ
ロセスに対してランダムに要求を送信した場合でも、要
求の送信順にサーバプロセスが処理を行うとともに、そ
の通信内容を保証し、かつ、高速にプロセス間通信を行
うことができる方式を提供するものである。
【0017】データ記述装置4は、ファイルからなり、
クライアントプロセス1とサーバプロセス2が送受信す
るデータの、書き込み/読み出しを行う複数のセクショ
ンに分割されている。各セクションは、クライアントプ
ロセス1とサーバプロセス2が送受信するデータを格納
するのに十分な大きさを持つものとするが、1セクショ
ンでは書き込めない量のデータが存在しても、プロセス
間通信が可能なようにするために、複数のセクションを
使用することもできる。そのために、セクションの数
は、クライアントプロセス数の最大値よりも大きくされ
ている。
【0018】領域管理装置3において、アクセス制御部
32は、一般的なプロセス間の排他制御のルールである
セマフォ(Semaphore )によって作成され、領域管理部
31に対して、同時に複数のプロセスが書き込みを行わ
ないように、排他制御を行う。領域管理部31は共有メ
モリで作成され、データ記述装置4のそれぞれのセクシ
ョンを使用している、クライアントプロセスのプロセス
識別子を、領域管理部31のプロセスIDに書き込む。
使用されていないセクションに該当するプロセスIDに
は、 "−1" が書き込まれる。クライアントプロセス
が、複数のセクションを使用して要求データを書き込む
場合には、書き込んだプロセスIDに隣接する続セクシ
ョンに、要求データが連続するセクションの番号を書き
込む。1つのセクションだけを使用する場合には、続セ
クションには "−1" が書き込まれる。プロセスIDと
続セクションを書き込む領域の数は、データ記述装置4
のセクション数と同じである。
【0019】順序管理装置5のアクセス制御部52はセ
マフォで作成され、順序管理部51に対して、同時に複
数のプロセスが書き込みを行わないように排他制御を行
う。順序管理部51は、共有メモリで作成し、クライア
ントプロセス1が要求データの書き込みを終了した、デ
ータ記述装置4のセクション番号を記述する。順序管理
部51は、クライアントプロセス数の最大値と同じ数の
セクション番号が書き込めるようにする。書き込み位置
指示部53は、共有メモリで作成し、クライアントプロ
セスが要求データを書き込んだセクション番号を書き込
む位置を指示する。読み出し位置指示部54は共有メモ
リで作成し、サーバプロセスがセクション番号を読み出
す位置を指示する。
【0020】要求通知装置6は、セマフォで作成するカ
ウンタであって、クライアントプロセス1が要求を出す
とインクリメントし、サーバプロセス2が応答を返すと
デクリメントする。結果通知装置7は、セマフォで作成
するフラグの配列である。クライアントプロセス1は、
データ記述装置4の使用したセクションに該当するフラ
グを、要求データ送信時に上げ、サーバプロセス2は、
応答データの送信時にフラグを下げる。
【0021】このようにして、複数のクライアントプロ
セスとサーバプロセスとの間の、プロセス間通信を可能
にする。
【0022】次に、図1のシステム構成図、及び図2,
図3のフローチャートを参照して、この例のプロセス間
通信システムの全体の動作について詳細に説明する。最
初、クライアントプロセス1がサーバプロセス2に対し
て、要求データを送信する場合の処理を説明する。ま
ず、クライアントプロセス1は、領域管理装置3のアク
セス制御部32にアクセスし、領域管理部31に書き込
めるようになるまで待つ(図2ステップA1)。次に、
クライアントプロセス1は、他のプロセスが、領域管理
部31に書き込めないようにするために、セマフォによ
って、領域管理部31をロックし(図2ステップA
2)、領域管理部31のプロセス識別子記述フィールド
301〜30Nにおいて、値が "−1" である箇所を順
に調べる。いま、プロセス識別子記述フィールド301
の値が "−1" であったときは、クライアントプロセス
1は、この位置にプロセス識別子を記述することによっ
て、データ記述装置4のセクション401を確保したこ
とを、他のプロセスに示すとともに、領域管理部31の
続セクション記述フィールド311に "−1" を書き込
む(図2ステップA3)。
【0023】この際、クライアントプロセス1が、要求
データを書き込むためには、もう1つのセクションが必
要であると判断したとき(図2ステップA4)は、領域
管理部31のプロセス識別子記述フィールド302〜3
0Nのうち、値が "−1" の箇所を順に調べて、例え
ば、プロセス識別子記述フィールド302の値が "−
1" であったときは、クライアントプロセス1は、プロ
セス識別子記述フィールド302にプロセス識別子を記
述し、データ記述装置4のセクション402を確保した
ことを他のプロセスに示すとともに、領域管理部31の
続セクション記述フィールド312に、値 "−1”を書
き込む(図2ステップA3)。クライアントプロセス1
は、領域管理部31の続セクション記述フィールド31
1に "2" という値を記述して、データ記述装置4のセ
クション401に、 2番目のセクション402が続くこ
とを示す。クライアントプロセス1は、要求データを書
き込むために必要なセクションを確保できたとき(図2
ステップA4)は、他のプロセスが領域管理部31を利
用することができるようにするためにロックを解除し
(図2ステップA5)、データ記述装置4のセクション
401から要求データを書き込む。セクション401に
要求データを記述し終わったときは、セクション402
に続きの要求データを記述する(図2ステップA6)。
【0024】次に、クライアントプロセス1は、順序管
理装置5のアクセス制御部52にアクセスして、順序管
理部51に書き込めるようになるまで待つ(図2ステッ
プA7)。クライアントプロセス1は、順序管理部51
に書き込めるようになったとき、他のプロセスが順序管
理部51に書き込めないようにするためにロックし(図
2ステップA8)、書き込み位置指示部53が示す順序
管理部51の位置に、要求データを書き込んだ先頭セク
ション401の番号 "1" を書き込み(図2ステップA
9)、他のプロセスが順序管理部51を利用できるよう
にするためにロックを解除する(図2ステップA1
0)。
【0025】次に、クライアントプロセス1は、カウン
タからなる要求通知装置6をインクリメントし(図2ス
テップA11)、要求データを書き込んだ先頭セクショ
ン401に該当する、結果通知装置7の受信フラグ70
1を上げる(図2ステップA12)。クライアントプロ
セス1は、サーバプロセスから応答データが返されるま
で待ち(図2ステップA13)、応答データが返された
とき、これを取得する(図2ステップA14)。クライ
アントプロセス1は、確保しているデータ記述装置のセ
クション401,402及び後述するサーバプロセス2
が確保したセクション40Nを解放するために、領域管
理装置3のアクセス制御部32にアクセスして、領域管
理部31に、書き込めるようになるまで待つ(図2ステ
ップA15)。
【0026】次に、他のプロセスが領域管理部31に書
き込めないようにするためにロックし(図2ステップA
16)、使用したセクションに該当する領域管理部31
のプロセス識別子記述フィールド301,302及び3
0Nに "−1" を書き込み、次に、領域管理部31の続
セクション記述フィールド311,312及び31Nに
"−1" を書き込む(図2ステップA17)。最後に、
他のプロセスが領域管理部31を利用できるようにする
ために、ロックを解除する(図2ステップA18)。
【0027】次に、サーバプロセス2が、クライアント
プロセス1からの要求データを処理して、応答データを
返すまでの処理を説明する。まず、サーバプロセス2
は、クライアントプロセス1によって、要求通知装置6
がインクリメントされるのを待つ(図3ステップB
1)。要求通知装置6がインクリメントされると、サー
バプロセス2は、順序管理装置5の読み出し位置指示部
54が示す順序管理部51の位置から、クライアントプ
ロセス1の要求データが書き込まれているセクション番
号 "1" を取り出し(図3ステップB2)、セクション
番号 "1" に該当する領域管理部31の続セクション記
述フィールド311に、クライアントプロセス1が書き
込んだ値 "2" を読み出す。
【0028】次に、セクション番号 "2" に該当する領
域管理部31の続セクション記述フィールド312の値
"−1" を読み出す。これによって、サーバプロセス2
は、クライアントプロセス1の要求データが、データ記
述装置4のセクション401と402に記述されている
ことを知る(図3ステップB2)。次に、サーバプロセ
ス2は、データ記述装置4のセクション401とセクシ
ョン402に記述された要求データを読み出して(図3
ステップB3)、これに対する要求処理を行う(図3ス
テップB4)。サーバプロセス2は、応答データを要求
データが書き込まれていたセクションに上書きする(図
3ステップB11)が、応答データを書き込むために新
たなセクションが必要なとき(図3ステップB5)は、
領域管理装置3のアクセス制御部32にアクセスして、
領域管理部31に書き込めるようになるまで待つ(図3
ステップB6)。
【0029】次に、他のプロセスが領域管理部31に書
き込めないようにするためにロックし(図3ステップB
7)、領域管理部31のプロセス識別子記述フィールド
301〜30Nのうち、値が "−1" の箇所を順に調べ
る。プロセス識別子記述フィールド30Nの値が "−
1" であったときは、サーバプロセス2は、プロセス識
別子記述フィールド30Nに、クライアントプロセス1
のプロセス識別子を記述して、データ記述装置4のセク
ション40Nを確保したことを他のプロセスに示すとと
もに、続セクション記述フィールド31Nに "−1" を
書き込む。次に、サーバプロセス2は、領域管理部31
の続セクション記述フィールド312に "N" の値を書
き込み、クライアントプロセス1が確保したデータ記述
装置4のセクションと合わせて、セクション401,4
02及び40Nに、応答データを書き込むことを示す
(図3ステップB8)。応答データを書き込むのに必要
なセクションが確保できたとき(図3ステップB9)、
他のプロセスが領域管理部31を利用できるようにする
ためにロックを解除し(図3ステップB10)、確保し
たセクションに応答データを書き込む(図3ステップB
11)。
【0030】最後に、応答データを書き込んだ先頭セク
ション401に該当する結果通知装置7の、受信フラグ
701を下げる(図3ステップB12)。なお、データ
記述装置4の各セクションの大きさは、要求データ及び
応答データを記述するのに十分な大きさを考慮して作成
するものとする。
【0031】このように、この例のプロセス間通信シス
テムによれば、複数のクライアントプロセスが、1つの
サーバプロセスに要求データを送信し、また、サーバプ
ロセスが要求に対応する処理結果のデータをそれぞれの
クライアントプロセスに返すプロセス間通信において、
複数のクライアントプロセスが、サーバプロセスに対し
てランダムに要求を送信した場合でも、要求の送信順
に、サーバプロセスが処理を行うことができるととも
に、その通信内容を保証し、かつ、高速にプロセス間通
信を行うことができる。
【0032】以上、この発明の実施例を図面により詳述
してきたが、具体的な構成はこの実施例に限られたもの
ではなく、この発明の要旨を逸脱しない範囲の設計の変
更等があってもこの発明に含まれる。例えば、この発明
で対象とするデータは、メッセージ,数値あるいはその
他のものでもよく、その種類を問わない。また、データ
のビット長もシステムに応じて任意である。
【0033】
【発明の効果】以上説明したように、この発明のプロセ
ス間通信装置及び方法によれば、複数のクライアントが
同時にサーバプロセスとプロセス間通信を行っても、そ
の内容が互いに混じり合うことがなく、通信内容が保証
される。その理由は、複数のクライアントプロセスが並
行して要求データと応答データを送受信するため、それ
ぞれのクライアントプロセスからサーバプロセスに出さ
れた要求データと、サーバプロセスからそれぞれのクラ
イアントプロセスに返された応答データとを、区別でき
るようにしているためである。また、この発明のプロセ
ス間通信装置及び方法によれば、送受信データの長さに
よる制限なしに、プロセス間通信を行うことができる。
その理由は、データを記述するための領域を、必要に応
じて拡張できるようにしたためである。さらに、この発
明のプロセス間通信装置及び方法によれば、他のクライ
アントプロセスが送受信するデータの長さによって影響
を受けることがない。その理由は、各クライアントプロ
セスが送受信するデータを書き込む領域を、それぞれ別
個に用意しているためである。
【図面の簡単な説明】
【図1】この発明の一実施例であるプロセス間通信シス
テムの構成を示すブロック図である。
【図2】クライアントプロセスがサーバプロセスに対し
て要求データを送信する場合の処理を示すフローチャー
トである。
【図3】サーバプロセスがクライアントプロセスからの
要求に対して応答データを返す際の処理を示すフローチ
ャートである。
【図4】従来のプロセス間通信方式を示すブロック図で
ある。
【符号の説明】
1 クライアントプロセス 2 サーバプロセス 3 領域管理装置(領域管理手段) 31 領域管理部 32 アクセス制御部 4 データ記述装置(データ記述手段) 5 順序管理装置(順序管理手段) 51 順序管理部 52 アクセス制御部 53 書き込み位置指示部 54 読み出し位置指示部 6 要求通知装置(要求通知手段) 7 結果通知装置(結果通知手段)
───────────────────────────────────────────────────── フロントページの続き (72)発明者 桑田 雅彦 東京都港区芝五丁目7番1号 日本電気株 式会社内 (72)発明者 太田原 剛 神奈川県川崎市高津区坂戸3丁目2番1号 株式会社エヌイーシー情報システムズ内 Fターム(参考) 5B045 BB11 BB28 BB47 DD02 EE03 EE18 GG06 5B098 AA10 GA04 GC16 GD05 GD16 GD22

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 複数のセクションに、クライアントプロ
    セスの要求データとサーバプロセスの応答データとを書
    き込み/読み出しするデータ記述手段と、 クライアントプロセスとサーバプロセスによる前記デー
    タ記述手段の各セクションの使用状態を管理する領域管
    理手段と、 サーバプロセスが、前記データ記述手段の各セクション
    における前記クライアントプロセスの要求データを処理
    する際の順序を定める順序管理手段と、 サーバプロセスに対して、処理すべきクライアントプロ
    セスの要求データがあることを通知する要求通知手段
    と、 クライアントプロセスに対して、要求データに対応する
    応答データの書き込みを通知する結果通知手段とを備え
    てなることを特徴とするプロセス間通信装置。
  2. 【請求項2】 前記領域管理手段が、前記データ記述手
    段のそれぞれのセクションを使用するクライアントの識
    別子を記述する第1の領域と、該第1の領域のセクショ
    ンの要求データの後続部分を書き込む前記データ記述手
    段のセクション番号を記述する第2の領域とからなる複
    数の領域指定部を備えた領域管理部と、前記各領域指定
    部に対する書き込みの排他制御を行うアクセス制御部と
    からなることを特徴とする請求項1記載のプロセス間通
    信装置。
  3. 【請求項3】 前記順序管理手段が、クライアントプロ
    セスが要求データの書き込みを完了したデータ記述手段
    のセクション番号を記述する順序管理部と、該順序管理
    部に対する書き込みの排他制御を行うアクセス制御部
    と、 前記順序管理部における前記データ記述手段のセクショ
    ン番号の書き込み位置を指示する書き込み位置指示部
    と、 サーバプロセスが前記順序管理部における前記データ記
    述手段のセクション番号を読み出す位置を指示する読み
    出し位置指示部とからなることを特徴とする請求項1又
    は2記載のプロセス間通信装置。
  4. 【請求項4】 前記要求通知手段が、クライアントプロ
    セスが要求データを出力するとインクリメントし、サー
    バプロセスが前記要求データに対応する応答データを返
    すとデクリメントするカウンタからなることを特徴とす
    る請求項1乃至3のいずれか1に記載のプロセス間通信
    装置。
  5. 【請求項5】 前記結果通知手段において、クライアン
    トプロセスが前記データ記述手段における使用セクショ
    ンに該当するフラグを要求データ送信時に上げ、サーバ
    プロセスが、前記要求データに対応する応答データ送信
    時に前記該当するフラグを下げることを特徴とする請求
    項1乃至4のいずれか1記載のプロセス間通信装置。
  6. 【請求項6】 クライアントプロセスからサーバプロセ
    スへの要求データ送信時、クライアントプロセスは領域
    管理手段の領域管理部への書き込み可能になったとき、
    該領域管理部の領域指定欄の空きを検索して得た空き領
    域指定欄にクライアントプロセスを指定したのち、デー
    タ記述手段における前記領域指定欄に対応するセクショ
    ンに要求データを書き込み、順序管理手段の順序管理部
    への書き込み可能になったとき、前記順序管理部に要求
    データを書き込んだセクション番号を記述したのち、要
    求通知手段を要求通知状態にし、結果通知手段に要求デ
    ータの未処理を示すフラグを上げ、 サーバプロセスからクライアントプロセスへの応答デー
    タの送信時、サーバプロセスは、前記要求通知状態にな
    ったとき、前記順序管理部から要求データが書き込まれ
    ているセクション番号を取り出し、該セクションの要求
    データを読み出して処理を行って得た応答データを、デ
    ータ記述手段の前記要求データのセクションに上書き
    し、 クライアントプロセスは、前記上書きされた応答データ
    を取得したのち、前記領域管理部への書き込み可能にな
    ったとき、領域管理部の前記応答データが書き込まれて
    いた領域指定欄を空きにするとともに、前記要求通知装
    置を要求不通知状態にし、結果通知手段の前記未処理を
    示すフラグを消去することを特徴とするプロセス間通信
    方法。
  7. 【請求項7】 前記要求データ又は応答データの前記デ
    ータ記述手段への書き込み時、1セクションに書き込み
    不可能なときは、前記領域管理部における領域指定欄に
    対応する続セクション指定欄に余剰データを書き込むセ
    クション番号を記述するとともに、該セクション番号に
    対応する領域指定欄にクライアントプロセス又はサーバ
    プロセスを指定することを特徴とする請求項6記載のプ
    ロセス間通信方法。
JP2000202839A 2000-07-04 2000-07-04 プロセス間通信装置及び方法 Pending JP2002024035A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000202839A JP2002024035A (ja) 2000-07-04 2000-07-04 プロセス間通信装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000202839A JP2002024035A (ja) 2000-07-04 2000-07-04 プロセス間通信装置及び方法

Publications (1)

Publication Number Publication Date
JP2002024035A true JP2002024035A (ja) 2002-01-25

Family

ID=18700309

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000202839A Pending JP2002024035A (ja) 2000-07-04 2000-07-04 プロセス間通信装置及び方法

Country Status (1)

Country Link
JP (1) JP2002024035A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8345283B2 (en) 2007-08-06 2013-01-01 Brother Kogyo Kabushiki Kaisha Communication system and communication device
CN103370691A (zh) * 2011-02-18 2013-10-23 起元技术有限责任公司 管理缓冲器溢出状况
CN109358974A (zh) * 2018-10-17 2019-02-19 武汉斗鱼网络科技有限公司 一种进程间通信的方法及相关装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8345283B2 (en) 2007-08-06 2013-01-01 Brother Kogyo Kabushiki Kaisha Communication system and communication device
CN103370691A (zh) * 2011-02-18 2013-10-23 起元技术有限责任公司 管理缓冲器溢出状况
CN109358974A (zh) * 2018-10-17 2019-02-19 武汉斗鱼网络科技有限公司 一种进程间通信的方法及相关装置
CN109358974B (zh) * 2018-10-17 2021-05-28 武汉斗鱼网络科技有限公司 一种进程间通信的方法及相关装置

Similar Documents

Publication Publication Date Title
US5454108A (en) Distributed lock manager using a passive, state-full control-server
WO2017100978A1 (zh) 一种集群中锁管理的方法、锁服务器及客户端
EP0853412B1 (en) System method for efficiently transferring datastreams in a multimedia system
JPH0833857B2 (ja) システム間デ−タベ−ス共用システムジヤ−ナルマ−ジ方式
US8190857B2 (en) Deleting a shared resource node after reserving its identifier in delete pending queue until deletion condition is met to allow continued access for currently accessing processor
US6321308B1 (en) Method and apparatus for managing access requests from a plurality of devices using dual level queue locking scheme and a doubly-linked circular queue
WO2005103963A2 (en) Communicating protected data within locking messages
US6076126A (en) Software locking mechanism for locking shared resources in a data processing system
US6185650B1 (en) High performance locking facility
US6088757A (en) Computer program means and device for conducting high performance locking facility in a loosely coupled environment
CA2369621C (en) Method and apparatus for handling resource transaction requests
CN114356215A (zh) 一种分布式集群及分布式集群锁的控制方法
US20050027693A1 (en) Database query operations using storage networks
JP2002024035A (ja) プロセス間通信装置及び方法
US20040059734A1 (en) Data access control
CN111367921A (zh) 数据对象的刷新方法及装置
US7284001B2 (en) Data file system, data access node, brain node, data access program storage medium and brain program storage medium
WO1989006011A1 (en) Managing interlocking
JPH08278953A (ja) 計算機システムにおける排他制御方式
JP3006527B2 (ja) クライアント/サーバ型データベースシステム
JPH05334266A (ja) サーバ・クライアントモデルの処理装置
JP3187073B2 (ja) 画像処理装置及び方法
JPS62209635A (ja) 非同期通信におけるシステム管理フアイルアクセス方式
JP2000003287A (ja) 共有リソースの排他制御装置、排他制御方法及び排他制御プログラムを記録した記録媒体
JP2000082005A (ja) システム間データベース共用システムのデータ処理方式

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050301

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050322

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050712