JPH11249919A - 手続き呼出しの処理方法およびスタブ生成方法 - Google Patents
手続き呼出しの処理方法およびスタブ生成方法Info
- Publication number
- JPH11249919A JPH11249919A JP10053643A JP5364398A JPH11249919A JP H11249919 A JPH11249919 A JP H11249919A JP 10053643 A JP10053643 A JP 10053643A JP 5364398 A JP5364398 A JP 5364398A JP H11249919 A JPH11249919 A JP H11249919A
- Authority
- JP
- Japan
- Prior art keywords
- procedure
- time
- processing time
- processing
- long
- 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
Landscapes
- Computer And Data Communications (AREA)
Abstract
(57)【要約】
【課題】 本発明は、マルチスレッド等による並列処理
が可能なクライアントとサーバ間で実行される遠隔手続
き呼出しを効率的に処理できるようにすることを目的と
する。 【解決手段】 現在処理中の手続きの他に新たな手続き
がクライアントからサーバに対して呼出されたとき、現
在処理中の手続きの処理時間に関する情報に基づいて、
新たな手続きの呼出しに用いられる仮想通信回線が獲得
される。この結果、現在処理中の手続きの処理時間に応
じて適切な仮想通信回線を獲得することができる。ま
た、サーバに対して今回実行要求のあった手続きを実行
するスレッドが、今回実行要求のあった手続きの処理時
間の情報に基づいて獲得される。この結果、実行要求の
あった手続きの処理時間特性に適したスレッドを獲得す
ることができる。
が可能なクライアントとサーバ間で実行される遠隔手続
き呼出しを効率的に処理できるようにすることを目的と
する。 【解決手段】 現在処理中の手続きの他に新たな手続き
がクライアントからサーバに対して呼出されたとき、現
在処理中の手続きの処理時間に関する情報に基づいて、
新たな手続きの呼出しに用いられる仮想通信回線が獲得
される。この結果、現在処理中の手続きの処理時間に応
じて適切な仮想通信回線を獲得することができる。ま
た、サーバに対して今回実行要求のあった手続きを実行
するスレッドが、今回実行要求のあった手続きの処理時
間の情報に基づいて獲得される。この結果、実行要求の
あった手続きの処理時間特性に適したスレッドを獲得す
ることができる。
Description
【0001】
【発明の属する技術分野】本発明は、マルチスレッド等
による並列処理が可能なクライアントサーバシステムで
用いられる手続き呼出し方法、並びに、該手続き呼出し
を可能にするクライアントスタブおよびサーバスタブを
生成するスタブ生成方法に関する。本発明において「手
続き呼出し」は、いわゆる「遠隔手続き呼出し」を意味
するもである。
による並列処理が可能なクライアントサーバシステムで
用いられる手続き呼出し方法、並びに、該手続き呼出し
を可能にするクライアントスタブおよびサーバスタブを
生成するスタブ生成方法に関する。本発明において「手
続き呼出し」は、いわゆる「遠隔手続き呼出し」を意味
するもである。
【0002】
【従来の技術】一般的に、遠隔手続き呼出しは、RPC
(Remote ProcedureCall)とも呼
ばれており、呼出す手続きと呼出される手続きとがそれ
ぞれ別個のプロセスで処理されることを意味するもので
ある。より具体的には、この遠隔手続き呼出しによっ
て、例えば二つのコンピュータのうちの一方が他方に対
してコンピュータ処理を依頼し、依頼された他方のコン
ピュータがその処理を実行して、実行結果を一方の依頼
元のコンピュータに返すことが可能になる。
(Remote ProcedureCall)とも呼
ばれており、呼出す手続きと呼出される手続きとがそれ
ぞれ別個のプロセスで処理されることを意味するもので
ある。より具体的には、この遠隔手続き呼出しによっ
て、例えば二つのコンピュータのうちの一方が他方に対
してコンピュータ処理を依頼し、依頼された他方のコン
ピュータがその処理を実行して、実行結果を一方の依頼
元のコンピュータに返すことが可能になる。
【0003】このような従来のRPCに関する技術は、
例えばOSF(Open Software Foun
dation)により頒布された「DCE Inter
nals Course Student Guide
Volume 1」,DCE Release 1.
0 course,Version of June1
3,1992の3−80から3―131までの頁および
同じOSFにより頒布された「OSF DCE Appl
ication Development Guide−
Core Components」の1−3、14−
4、14−5の頁に開示されており、これら文献に開示
された技術内容を図11および図12を使って下記に説
明する。なお、DCEは、OSFにより開発された分散
コンピューティング環境(Distributed C
omputing Enviroment)を指す。
例えばOSF(Open Software Foun
dation)により頒布された「DCE Inter
nals Course Student Guide
Volume 1」,DCE Release 1.
0 course,Version of June1
3,1992の3−80から3―131までの頁および
同じOSFにより頒布された「OSF DCE Appl
ication Development Guide−
Core Components」の1−3、14−
4、14−5の頁に開示されており、これら文献に開示
された技術内容を図11および図12を使って下記に説
明する。なお、DCEは、OSFにより開発された分散
コンピューティング環境(Distributed C
omputing Enviroment)を指す。
【0004】図11は、RPCを実施する際に必要な各
機能要素間の関係を示すブロック図である。同図におい
て、1101は、インタフェース定義言語(Inter
face Definition Language)
で記述されたインタフェース定義言語仕様ファイルであ
る。以下の説明において、インタフェース定義言語をI
DL、インタフェース定義言語仕様ファイルをIDL仕
様ファイルとも呼ぶ。
機能要素間の関係を示すブロック図である。同図におい
て、1101は、インタフェース定義言語(Inter
face Definition Language)
で記述されたインタフェース定義言語仕様ファイルであ
る。以下の説明において、インタフェース定義言語をI
DL、インタフェース定義言語仕様ファイルをIDL仕
様ファイルとも呼ぶ。
【0005】このIDL仕様ファイル1101によっ
て、クライアントマルチスレッドアプリケーション11
03とサーバマルチスレッドアプリケーション1104
とをネットワーク1201を介して異なるコンピュータ
上で動作させることが可能になる。本従来例では、倍長
型(long型)の成分からなる2つのベクトルを、クライ
アントマルチスレッドアプリケーション1103がサー
バマルチスレッドアプリケーション1104に対して送
ると、サーバマルチスレッドアプリケーション1104
がその2つのベクトルの和を計算し、クライアントマル
チスレッドアプリケーション1103に対して計算結果
を返すといった比較的簡単な処理が実行される。
て、クライアントマルチスレッドアプリケーション11
03とサーバマルチスレッドアプリケーション1104
とをネットワーク1201を介して異なるコンピュータ
上で動作させることが可能になる。本従来例では、倍長
型(long型)の成分からなる2つのベクトルを、クライ
アントマルチスレッドアプリケーション1103がサー
バマルチスレッドアプリケーション1104に対して送
ると、サーバマルチスレッドアプリケーション1104
がその2つのベクトルの和を計算し、クライアントマル
チスレッドアプリケーション1103に対して計算結果
を返すといった比較的簡単な処理が実行される。
【0006】クライアントマルチスレッドアプリケーシ
ョン1103が動作するクライアント側のコンピュータ
上にはオペレーティングシステムによってTCP/IP
通信処理装置1105、サーバマルチスレッドアプリケ
ーション1104が動作するサーバ側のコンピュータ上
にはTCP/IP通信処理装置1106がそれぞれが提
供されている。クライアントマルチスレッドアプリケー
ション1103とサーバマルチスレッドアプリケーショ
ン1104はこれら通信処理装置1105、1106を
それぞれ使ってデータを送受信する。
ョン1103が動作するクライアント側のコンピュータ
上にはオペレーティングシステムによってTCP/IP
通信処理装置1105、サーバマルチスレッドアプリケ
ーション1104が動作するサーバ側のコンピュータ上
にはTCP/IP通信処理装置1106がそれぞれが提
供されている。クライアントマルチスレッドアプリケー
ション1103とサーバマルチスレッドアプリケーショ
ン1104はこれら通信処理装置1105、1106を
それぞれ使ってデータを送受信する。
【0007】図11に示すアプリケーションを開発する
場合、 OSFのDCEにおけるRPCでは、まずアプ
リケーション開発者は、RPCのインタフェースをID
Lで記述したIDL仕様ファイル1101を作成する必
要がある。IDL仕様ファイル1101はIDLコンパ
イラ1102に入力されコンパイル(翻訳)され、この
結果、クライアントスタブ1107とサーバスタブ11
08が生成される。
場合、 OSFのDCEにおけるRPCでは、まずアプ
リケーション開発者は、RPCのインタフェースをID
Lで記述したIDL仕様ファイル1101を作成する必
要がある。IDL仕様ファイル1101はIDLコンパ
イラ1102に入力されコンパイル(翻訳)され、この
結果、クライアントスタブ1107とサーバスタブ11
08が生成される。
【0008】DCEにおけるRPCでは、クライアント
スタブ1107とサーバスタブ1108はC言語のコー
ドとして生成される。したがって、クライアントマルチ
スレッドアプリケーション1103とクライアントスタ
ブ1107とをコンパイルし、クライアント側のランタ
イムライブラリ1109とリンケージすることによっ
て、クライアントマルチスレッドアプリケーション11
03は、はじめて実行可能なモジュールとなる。サーバ
マルチスレッドアプリケーション1104も同様に、サ
ーバスタブ1108とともにコンパイルしてサーバ側の
ランタイムライブラリ1110とリンケージさせること
により、はじめて実行可能なモジュールとなる。
スタブ1107とサーバスタブ1108はC言語のコー
ドとして生成される。したがって、クライアントマルチ
スレッドアプリケーション1103とクライアントスタ
ブ1107とをコンパイルし、クライアント側のランタ
イムライブラリ1109とリンケージすることによっ
て、クライアントマルチスレッドアプリケーション11
03は、はじめて実行可能なモジュールとなる。サーバ
マルチスレッドアプリケーション1104も同様に、サ
ーバスタブ1108とともにコンパイルしてサーバ側の
ランタイムライブラリ1110とリンケージさせること
により、はじめて実行可能なモジュールとなる。
【0009】上述のようなコンパイルとリンケージによ
り、クライアント側には、メッセージ作成装置111
1、コール管理装置1113およびアソシエーショング
ループ管理装置1115が提供される。一方、サーバ側
には、メッセージ作成装置1112、コール管理装置1
114、アソシエーショングループ管理装置1116お
よびスレッドプール管理装置1117が提供される。ク
ライアント側のメッセージ作成装置1111とコール管
理装置1113はクライアントスタブ1107とランタ
イムライブラリ1109にまたがるように設けられてい
る。また、サーバ側のメッセージ作成装置1112とコ
ール管理装置1114もサーバスタブ1108とランタ
イムライブラリ1110にまたがるように設けられてい
る。
り、クライアント側には、メッセージ作成装置111
1、コール管理装置1113およびアソシエーショング
ループ管理装置1115が提供される。一方、サーバ側
には、メッセージ作成装置1112、コール管理装置1
114、アソシエーショングループ管理装置1116お
よびスレッドプール管理装置1117が提供される。ク
ライアント側のメッセージ作成装置1111とコール管
理装置1113はクライアントスタブ1107とランタ
イムライブラリ1109にまたがるように設けられてい
る。また、サーバ側のメッセージ作成装置1112とコ
ール管理装置1114もサーバスタブ1108とランタ
イムライブラリ1110にまたがるように設けられてい
る。
【0010】クライアント側のメッセージ作成装置11
11は、クライアントマルチスレッドアプリケーション
1103のスレッドから受け取ったデータをネットワー
ク1201を介した通信に適切な形式であるメッセージ
に変換し、また、その逆にネットワーク1201を介し
て受け取ったメッセージをクライアントマルチスレッド
アプリケーション1103のスレッドに対する適切なデ
ータに変換するものである。
11は、クライアントマルチスレッドアプリケーション
1103のスレッドから受け取ったデータをネットワー
ク1201を介した通信に適切な形式であるメッセージ
に変換し、また、その逆にネットワーク1201を介し
て受け取ったメッセージをクライアントマルチスレッド
アプリケーション1103のスレッドに対する適切なデ
ータに変換するものである。
【0011】同様に、サーバ側のメッセージ作成装置1
112は、サーバマルチスレッドアプリケーション11
04のスレッドから受け取ったデータをネットワーク1
201を介した通信に適切な形式であるメッセージに変
換し、また、その逆にネットワーク1201を介して受
け取ったメッセージをサーバマルチスレッドアプリケー
ション1104のスレッドに対する適切なデータに変換
するものである。
112は、サーバマルチスレッドアプリケーション11
04のスレッドから受け取ったデータをネットワーク1
201を介した通信に適切な形式であるメッセージに変
換し、また、その逆にネットワーク1201を介して受
け取ったメッセージをサーバマルチスレッドアプリケー
ション1104のスレッドに対する適切なデータに変換
するものである。
【0012】クライアント側のコール管理装置1113
は、アソシエーショングループ管理装置1115が提供
するTCP/IPコネクションを獲得して、該TCP/
IPコネクション上でサーバ側へRPCの要求を送り、
RPCの結果を受け取る。サーバ側のコール管理装置1
114も同様に、TCP/IPコネクションからRPC
の要求を受け取り、TCP/IPコネクション上にRP
Cの結果を送出する。
は、アソシエーショングループ管理装置1115が提供
するTCP/IPコネクションを獲得して、該TCP/
IPコネクション上でサーバ側へRPCの要求を送り、
RPCの結果を受け取る。サーバ側のコール管理装置1
114も同様に、TCP/IPコネクションからRPC
の要求を受け取り、TCP/IPコネクション上にRP
Cの結果を送出する。
【0013】クライアントおよびサーバ側のそれぞれに
設けられたアソシエーショングループ管理装置1115
および1116は、クライアントとサーバ間で確立され
る複数のTCP/IPコネクションを管理する。
設けられたアソシエーショングループ管理装置1115
および1116は、クライアントとサーバ間で確立され
る複数のTCP/IPコネクションを管理する。
【0014】スレッドプール管理装置1117は、サー
バ側のランタイムライブラリ1110内だけに設けられ
ており、サーバマルチスレッドアプリケーション110
4の起動時に、ランタイムライブラリ1110内に予め
作成された複数のスレッドを管理している。これら複数
のスレッドによりスレッドプール1118が構成されて
おり、各スレッドは図11におけるスレッドプール11
18内の矢印で表わされている。クライアントからサー
バにRPC要求が到着すると空いているスレッドがその
処理を担当する。スレッドは仮想的な処理プロセッサ
(CPU)の実行体であり、アプリケーションはこの実
行体により動作する。
バ側のランタイムライブラリ1110内だけに設けられ
ており、サーバマルチスレッドアプリケーション110
4の起動時に、ランタイムライブラリ1110内に予め
作成された複数のスレッドを管理している。これら複数
のスレッドによりスレッドプール1118が構成されて
おり、各スレッドは図11におけるスレッドプール11
18内の矢印で表わされている。クライアントからサー
バにRPC要求が到着すると空いているスレッドがその
処理を担当する。スレッドは仮想的な処理プロセッサ
(CPU)の実行体であり、アプリケーションはこの実
行体により動作する。
【0015】次に、図11を各装置間の関係をより詳細
に示した図12を使って、従来のRPCの動作を具体的
に説明する。クライアントマルチスレッドアプリケーシ
ョン1103は、現在2つのスレッドTH51とTH5
2によって実行されている。この例では、スレッドTH
51もスレッドTH52も同じ引数値によって、サーバ
マルチスレッドアプリケーション1104で実行される
「sum array」手続きを呼出すものであるが、まず、ス
レッドTH51のみがこの「sum array」手続きを呼出
す場合について説明する。次に2つのスレッドTH5
1、TH52が同時に手続きを呼出した場合について説
明する。
に示した図12を使って、従来のRPCの動作を具体的
に説明する。クライアントマルチスレッドアプリケーシ
ョン1103は、現在2つのスレッドTH51とTH5
2によって実行されている。この例では、スレッドTH
51もスレッドTH52も同じ引数値によって、サーバ
マルチスレッドアプリケーション1104で実行される
「sum array」手続きを呼出すものであるが、まず、ス
レッドTH51のみがこの「sum array」手続きを呼出
す場合について説明する。次に2つのスレッドTH5
1、TH52が同時に手続きを呼出した場合について説
明する。
【0016】スレッド1301が「sum array」手続き
を呼出したときに与えられた引数a、bのベクトルデー
タ(配列データ)の値はクライアントスタブ1107に
渡される。クライアントスタブ1107は、メッセージ
作成装置1111によりこれら引数値等を適切な形式に
変換し配列して、RPCの要求メッセージを作成する。
を呼出したときに与えられた引数a、bのベクトルデー
タ(配列データ)の値はクライアントスタブ1107に
渡される。クライアントスタブ1107は、メッセージ
作成装置1111によりこれら引数値等を適切な形式に
変換し配列して、RPCの要求メッセージを作成する。
【0017】次に、コール管理装置1113は、作成さ
れた要求メッセージを獲得して、アソシエーショングル
ープ管理装置1115により提供されるTCP/IPコ
ネクションを使用して要求メッセージをサーバ側に送信
する。図12は、クライアント側のアソシエーショング
ループ管理装置1115とサーバ側のアソシエーション
管理装置1116が既にTCP/IPコネクション12
01aを確立している状態を示しており、このTCP/
IPコネクション1201aがアソシエーションとして
用いられる。
れた要求メッセージを獲得して、アソシエーショングル
ープ管理装置1115により提供されるTCP/IPコ
ネクションを使用して要求メッセージをサーバ側に送信
する。図12は、クライアント側のアソシエーショング
ループ管理装置1115とサーバ側のアソシエーション
管理装置1116が既にTCP/IPコネクション12
01aを確立している状態を示しており、このTCP/
IPコネクション1201aがアソシエーションとして
用いられる。
【0018】サーバ側ではコール管理装置1114が、
アソシエーショングループ管理装置1116により提供
されるアソシエーションから要求メッセージを受信す
る。また、スレッドプール管理装置1117によりスレ
ッドプール1118から使用中でない空きスレッドを獲
得し、要求メッセージの処理スレッドTH53として割
り当てる。処理スレッドTH53はメッセージ作成装置
1112を利用して引数a、bに与えられたデータ値を
受信要求メッセージから取り出し、サーバマルチスレッ
ドアプリケーション1104の「sum array」手続きを
実行する。最後に、「sum array」手続きは処理結果を
表す引数cにベクトル値の和を代入する。
アソシエーショングループ管理装置1116により提供
されるアソシエーションから要求メッセージを受信す
る。また、スレッドプール管理装置1117によりスレ
ッドプール1118から使用中でない空きスレッドを獲
得し、要求メッセージの処理スレッドTH53として割
り当てる。処理スレッドTH53はメッセージ作成装置
1112を利用して引数a、bに与えられたデータ値を
受信要求メッセージから取り出し、サーバマルチスレッ
ドアプリケーション1104の「sum array」手続きを
実行する。最後に、「sum array」手続きは処理結果を
表す引数cにベクトル値の和を代入する。
【0019】ここまでが、クライアントマルチスレッド
アプリケーション1103の要求がサーバマルチスレッ
ドアプリケーション1104に送られ、その要求が実行
されるまでの過程である。手続きの実行結果をクライア
ントマルチスレッドアプリケーション1103に返す過
程はこの逆の過程を辿るので、ここでは説明を省略す
る。
アプリケーション1103の要求がサーバマルチスレッ
ドアプリケーション1104に送られ、その要求が実行
されるまでの過程である。手続きの実行結果をクライア
ントマルチスレッドアプリケーション1103に返す過
程はこの逆の過程を辿るので、ここでは説明を省略す
る。
【0020】次にクライアントマルチスレッドアプリケ
ーション1103内のスレッドTH51とスレッドTH
52が同時に動作した場合について説明する。上述した
スレッドTH51のみが動作した場合との違いは、コー
ル管理装置1113がスレッドTH51によって作成さ
れた要求メッセージとスレッドTH52によって作られ
た要求メッセージの両方を送信する必要がある点であ
る。これらの要求メッセージは、TCP/IPコネクシ
ョンを使用中の手続きの処理が完了し、応答メッセージ
を受け取ってから、同一のTCP/IPコネクションが
獲得されてこのコネクション上に時間をずらして送信さ
れる。あるいは、これらの要求メッセージをスレッドと
同数のTCP/IPコネクションを用いて送信する。い
ずれの場合であっても、これらの送信のスケジューリン
グはアプリケーションの内容とは無関係に行われる。
ーション1103内のスレッドTH51とスレッドTH
52が同時に動作した場合について説明する。上述した
スレッドTH51のみが動作した場合との違いは、コー
ル管理装置1113がスレッドTH51によって作成さ
れた要求メッセージとスレッドTH52によって作られ
た要求メッセージの両方を送信する必要がある点であ
る。これらの要求メッセージは、TCP/IPコネクシ
ョンを使用中の手続きの処理が完了し、応答メッセージ
を受け取ってから、同一のTCP/IPコネクションが
獲得されてこのコネクション上に時間をずらして送信さ
れる。あるいは、これらの要求メッセージをスレッドと
同数のTCP/IPコネクションを用いて送信する。い
ずれの場合であっても、これらの送信のスケジューリン
グはアプリケーションの内容とは無関係に行われる。
【0021】また、サーバ側に要求メッセージが届いた
とき、すべての要求メッセージに対して処理内容とは無
関係にスレッドプール管理装置1117が管理するスレ
ッドプール1118内の空きスレッドが処理スレッドと
して割り当てられる。図12においてもスレッドTH5
3やスレッドTH54はスレッドプール1118内の空
きスレッドから割り当てられたものである。
とき、すべての要求メッセージに対して処理内容とは無
関係にスレッドプール管理装置1117が管理するスレ
ッドプール1118内の空きスレッドが処理スレッドと
して割り当てられる。図12においてもスレッドTH5
3やスレッドTH54はスレッドプール1118内の空
きスレッドから割り当てられたものである。
【0022】
【発明が解決しようとする課題】従来のRPCの処理方
法にあっては、クライアントが複数の手続きを同時に処
理する場合に、確立されている1つのTCP/IPコネク
ションを複数の手続き処理で使用することはできるが、
動作中の手続きの処理が完了してTCP/IPコネクシ
ョンの利用が終了するまで、同じTCP/IPコネクシ
ョン上での他の手続きの処理は待ち状態に保たれるよう
になっていた。また、別の従来のRPCの処理方法で
は、クライアントが複数の手続きを同時に処理する場
合、これらの手続きと同数のTCP/IPコネクション
をそれぞれ利用しなければならなかった。すなわち、あ
る手続きがTCP/IPコネクションを使用中の場合、
別の手続きの処理のために新たなTCP/IPコネクシ
ョンを確立していた。
法にあっては、クライアントが複数の手続きを同時に処
理する場合に、確立されている1つのTCP/IPコネク
ションを複数の手続き処理で使用することはできるが、
動作中の手続きの処理が完了してTCP/IPコネクシ
ョンの利用が終了するまで、同じTCP/IPコネクシ
ョン上での他の手続きの処理は待ち状態に保たれるよう
になっていた。また、別の従来のRPCの処理方法で
は、クライアントが複数の手続きを同時に処理する場
合、これらの手続きと同数のTCP/IPコネクション
をそれぞれ利用しなければならなかった。すなわち、あ
る手続きがTCP/IPコネクションを使用中の場合、
別の手続きの処理のために新たなTCP/IPコネクシ
ョンを確立していた。
【0023】これらのいずれかまたは両方の方法が、処
理するプロシジャの特性に無関係に採用されていた。こ
のため次のような問題が生じていた。マルチスレッドに
よって動作するクライアントでは、同時に多数の手続き
呼出し要求が生じる場合がある。前者の方法を用いた場
合、もし、多数の手続きのそれぞれの処理時間が長い場
合、すべての手続き処理を完了するまでの時間が著しく
長くなるという問題点があった。
理するプロシジャの特性に無関係に採用されていた。こ
のため次のような問題が生じていた。マルチスレッドに
よって動作するクライアントでは、同時に多数の手続き
呼出し要求が生じる場合がある。前者の方法を用いた場
合、もし、多数の手続きのそれぞれの処理時間が長い場
合、すべての手続き処理を完了するまでの時間が著しく
長くなるという問題点があった。
【0024】また、後者の方法を用いた場合、TCP/
IPコネクションの数が同時に実行する手続きの数とな
るので、同時に確立して使用するTCP/IPコネクシ
ョンの数が多くなり、それに伴うネットワークトラフィ
ックやTCP/IPコネクションを管理するためにTC
P/IP通信処理装置内部に必要とされる資源が増大す
るという問題点があった。
IPコネクションの数が同時に実行する手続きの数とな
るので、同時に確立して使用するTCP/IPコネクシ
ョンの数が多くなり、それに伴うネットワークトラフィ
ックやTCP/IPコネクションを管理するためにTC
P/IP通信処理装置内部に必要とされる資源が増大す
るという問題点があった。
【0025】また、サーバ側にあっては、従来のサーバ
スタブ内でのマルチスレッド処理では、実行する手続き
の特性とは無関係に、クライアントからの手続き要求ご
とに新規にスレッドを作成するか、あるいは、クライア
ントからの手続き要求を全てスレッドプール内のスレッ
ドを使用して処理するかの何れかの方法のみが用いられ
てた。このため、前者の処理方法にあっては、全ての手
続きに対してスレッド作成のオーバヘッドを強いること
になるという問題点があった。後者の処理方法にあって
は、処理時間の長い手続きが呼出された場合には、スレ
ッドプール内の空きスレッドの枯渇が起きるという問題
点があった。
スタブ内でのマルチスレッド処理では、実行する手続き
の特性とは無関係に、クライアントからの手続き要求ご
とに新規にスレッドを作成するか、あるいは、クライア
ントからの手続き要求を全てスレッドプール内のスレッ
ドを使用して処理するかの何れかの方法のみが用いられ
てた。このため、前者の処理方法にあっては、全ての手
続きに対してスレッド作成のオーバヘッドを強いること
になるという問題点があった。後者の処理方法にあって
は、処理時間の長い手続きが呼出された場合には、スレ
ッドプール内の空きスレッドの枯渇が起きるという問題
点があった。
【0026】また、従来のスタブ生成方法に注目した場
合でも、手続きの特性に応じて生成するスタブの形式を
変更することはできなかった。すなわち、どのようなス
タブを生成するかについては、呼出される手続きの特性
とは無関係にある決まった方法が提供されているだけで
あり、アプリケーション開発者が選択することはできな
かった。また、もしスタブ形式を変更しようとした場合
には、多くの変更点を必要とするだけでなく、その変更
がすべてのアプリケーションに影響を及ぼすという問題
点があった。
合でも、手続きの特性に応じて生成するスタブの形式を
変更することはできなかった。すなわち、どのようなス
タブを生成するかについては、呼出される手続きの特性
とは無関係にある決まった方法が提供されているだけで
あり、アプリケーション開発者が選択することはできな
かった。また、もしスタブ形式を変更しようとした場合
には、多くの変更点を必要とするだけでなく、その変更
がすべてのアプリケーションに影響を及ぼすという問題
点があった。
【0027】本発明は、上記のような問題点を解決する
ためになされたもので、手続きの処理時間特性を考慮し
た仮想通信回線の獲得およびスレッドの獲得を可能にす
ることにより、仮想通信回線の有効利用と効率的なスレ
ッド管理を実現する遠隔手続き呼出しの処理方法を提供
することを目的とする。
ためになされたもので、手続きの処理時間特性を考慮し
た仮想通信回線の獲得およびスレッドの獲得を可能にす
ることにより、仮想通信回線の有効利用と効率的なスレ
ッド管理を実現する遠隔手続き呼出しの処理方法を提供
することを目的とする。
【0028】また、本発明は、手続きの処理時間特性を
考慮してスタブの形式を選択可能にすることにより、各
手続きに適したスタブを生成することができるようにし
たスタブ生成方法を提供することを目的とする。
考慮してスタブの形式を選択可能にすることにより、各
手続きに適したスタブを生成することができるようにし
たスタブ生成方法を提供することを目的とする。
【0029】
【課題を解決するための手段】本発明は、上記課題を解
決するため、並列処理が行われるクライアントとサーバ
との間で仮想通信回線を介して複数の手続きを呼出して
実行する手続き呼出しの処理方法において、現在処理中
の手続きの他に新たな手続きが前記クライアントからサ
ーバに対して呼出されたとき、各手続きの処理時間に関
する情報を対応する手続きに関連付けて記憶したテーブ
ルから、現在処理中の手続きの処理時間に関する情報を
検索する時間情報検索工程と、該時間情報検索工程で検
索された現在処理中の手続きの処理時間に関する情報に
基づいて、前記新たな手続きの呼出しに用いられる仮想
通信回線を獲得する回線獲得工程と、を含むことを特徴
とするものである。
決するため、並列処理が行われるクライアントとサーバ
との間で仮想通信回線を介して複数の手続きを呼出して
実行する手続き呼出しの処理方法において、現在処理中
の手続きの他に新たな手続きが前記クライアントからサ
ーバに対して呼出されたとき、各手続きの処理時間に関
する情報を対応する手続きに関連付けて記憶したテーブ
ルから、現在処理中の手続きの処理時間に関する情報を
検索する時間情報検索工程と、該時間情報検索工程で検
索された現在処理中の手続きの処理時間に関する情報に
基づいて、前記新たな手続きの呼出しに用いられる仮想
通信回線を獲得する回線獲得工程と、を含むことを特徴
とするものである。
【0030】また本発明は、前記各手続きの処理時間に
関する情報をインタフェース定義言語の拡張属性として
含むインタフェース定義言語仕様ファイルを、翻訳する
ことによりクライアントスタブを生成するスタブ生成工
程を含み、前記テーブルが前記クライアントスタブに含
まれるようにしてもよい。
関する情報をインタフェース定義言語の拡張属性として
含むインタフェース定義言語仕様ファイルを、翻訳する
ことによりクライアントスタブを生成するスタブ生成工
程を含み、前記テーブルが前記クライアントスタブに含
まれるようにしてもよい。
【0031】さらに本発明は、前記クライアントにより
呼出される手続きの処理時間が、所定の基準に対して長
時間であると判断される長時間グループと短時間である
と判断される短時間グループの何れかに分類されて前記
インタフェース定義言語の拡張属性として前記インタフ
ェース定義言語仕様ファイルに記述され、前記インタフ
ェース定義言語仕様ファイルにより定義された各手続き
の処理時間が前記長時間グループと前記短時間グループ
のどちらのグループに分類されたかを表す情報が前記テ
ーブルに記憶され、前記回線獲得工程が、前記テーブル
に記憶されている現在処理中の手続きの中に、長時間グ
ループに分類されている処理時間の手続きがあるとき、
長時間グループに分類された処理時間の手続きによって
現在使用されている仮想通信回線を、前記新たな手続き
の処理用に獲得して共用する回線共用工程を含むように
してもよい。
呼出される手続きの処理時間が、所定の基準に対して長
時間であると判断される長時間グループと短時間である
と判断される短時間グループの何れかに分類されて前記
インタフェース定義言語の拡張属性として前記インタフ
ェース定義言語仕様ファイルに記述され、前記インタフ
ェース定義言語仕様ファイルにより定義された各手続き
の処理時間が前記長時間グループと前記短時間グループ
のどちらのグループに分類されたかを表す情報が前記テ
ーブルに記憶され、前記回線獲得工程が、前記テーブル
に記憶されている現在処理中の手続きの中に、長時間グ
ループに分類されている処理時間の手続きがあるとき、
長時間グループに分類された処理時間の手続きによって
現在使用されている仮想通信回線を、前記新たな手続き
の処理用に獲得して共用する回線共用工程を含むように
してもよい。
【0032】さらに本発明は、前記クライアントにより
呼出される手続きの処理時間が、所定の基準に対して長
時間であると判断される長時間グループと短時間である
と判断される短時間グループの何れかに分類されて前記
インタフェース定義言語の拡張属性としてインタフェー
ス定義言語仕様ファイルに記述され、前記インタフェー
ス定義言語仕様ファイルにより定義された各手続きの処
理時間が前記長時間グループと前記短時間グループのど
ちらのグループに分類されたかを表す情報が前記テーブ
ルに記憶され、前記回線獲得工程が、前記テーブルに記
憶されている現在処理中の手続きの中に、長時間グルー
プに分類されている処理時間の手続きがあるか否かを判
別する第1の工程と、該第1の工程で長時間グループの
処理時間の手続きがあると判別されたとき、長時間グル
ープの処理時間の手続き用に獲得されている仮想通信回
線が信号伝送中の状態か空き状態かを判別する第2の工
程と、該第2の工程で仮想通信回線が空き状態であると
判別されたとき、長時間グループの処理時間の手続き用
に現在使用されている前記仮想通信回線を、前記新たな
手続き用に獲得して共用する第3の工程と、を含むよう
にしてもよい。
呼出される手続きの処理時間が、所定の基準に対して長
時間であると判断される長時間グループと短時間である
と判断される短時間グループの何れかに分類されて前記
インタフェース定義言語の拡張属性としてインタフェー
ス定義言語仕様ファイルに記述され、前記インタフェー
ス定義言語仕様ファイルにより定義された各手続きの処
理時間が前記長時間グループと前記短時間グループのど
ちらのグループに分類されたかを表す情報が前記テーブ
ルに記憶され、前記回線獲得工程が、前記テーブルに記
憶されている現在処理中の手続きの中に、長時間グルー
プに分類されている処理時間の手続きがあるか否かを判
別する第1の工程と、該第1の工程で長時間グループの
処理時間の手続きがあると判別されたとき、長時間グル
ープの処理時間の手続き用に獲得されている仮想通信回
線が信号伝送中の状態か空き状態かを判別する第2の工
程と、該第2の工程で仮想通信回線が空き状態であると
判別されたとき、長時間グループの処理時間の手続き用
に現在使用されている前記仮想通信回線を、前記新たな
手続き用に獲得して共用する第3の工程と、を含むよう
にしてもよい。
【0033】また本発明は、マルチスレッドにより動作
するクライアントとサーバとの間で仮想通信回線を介し
て複数の手続きを呼出して実行する手続き呼出しの処理
方法において、前記サーバに対して前記クライアントか
ら手続きの実行が要求されたとき、前記複数の手続きの
それぞれの処理時間に関する情報を対応する各手続きに
関連付けて記憶したテーブルから、今回実行要求のあっ
た手続きの処理時間に関する情報を検索する時間情報検
索工程と、今回実行要求のあった手続きを前記サーバで
実行するためのスレッドを、前記テーブルに記憶された
今回実行要求のあった手続きの処理時間の情報に基づい
て獲得するスレッド獲得工程と、を含むことを特徴とす
るものである。
するクライアントとサーバとの間で仮想通信回線を介し
て複数の手続きを呼出して実行する手続き呼出しの処理
方法において、前記サーバに対して前記クライアントか
ら手続きの実行が要求されたとき、前記複数の手続きの
それぞれの処理時間に関する情報を対応する各手続きに
関連付けて記憶したテーブルから、今回実行要求のあっ
た手続きの処理時間に関する情報を検索する時間情報検
索工程と、今回実行要求のあった手続きを前記サーバで
実行するためのスレッドを、前記テーブルに記憶された
今回実行要求のあった手続きの処理時間の情報に基づい
て獲得するスレッド獲得工程と、を含むことを特徴とす
るものである。
【0034】さらに本発明は、前記各手続きの処理時間
に関する情報をインタフェース定義言語の拡張属性とし
て含むインタフェース定義言語仕様ファイルを、翻訳す
ることによりサーバスタブを生成する工程を含み、前記
テーブルが前記サーバスタブに含まれるようにしてもよ
い。
に関する情報をインタフェース定義言語の拡張属性とし
て含むインタフェース定義言語仕様ファイルを、翻訳す
ることによりサーバスタブを生成する工程を含み、前記
テーブルが前記サーバスタブに含まれるようにしてもよ
い。
【0035】また本発明は、前記サーバにより実行され
る手続きの処理時間が、所定の基準に対して相対的に長
時間であると判断される長時間グループと相対的に短時
間であると判断される短時間グループの何れかに分類さ
れて前記インタフェース定義言語の拡張属性として記述
され、前記インタフェース定義言語仕様ファイルにより
定義された各手続きの処理時間が前記長時間グループと
前記短時間グループのどちらのグループに分類されたか
を表す情報が前記テーブルに記憶され、前記スレッド獲
得工程が、前記サーバに対して手続きの実行が要求され
たとき、前記テーブルに記憶された情報から、今回実行
要求のあった手続きの処理時間が長時間グループと短時
間グループの何れに分類されているかを判別する第1の
工程と、該第1の工程で処理時間が短時間グループに分
類されていると判別されたとき、前記サーバ用に予め作
成されたスレッドを、今回要求のあった手続きを実行す
るためのスレッドとして獲得する第2の工程と、前記第
1の工程で処理時間が長時間グループに分類されている
と判別されたとき、新規にスレッドを作成し、該新規ス
レッドを、今回要求のあった手続きを実行するためのス
レッドとして獲得する第3の工程と、を含むようにして
もよい。
る手続きの処理時間が、所定の基準に対して相対的に長
時間であると判断される長時間グループと相対的に短時
間であると判断される短時間グループの何れかに分類さ
れて前記インタフェース定義言語の拡張属性として記述
され、前記インタフェース定義言語仕様ファイルにより
定義された各手続きの処理時間が前記長時間グループと
前記短時間グループのどちらのグループに分類されたか
を表す情報が前記テーブルに記憶され、前記スレッド獲
得工程が、前記サーバに対して手続きの実行が要求され
たとき、前記テーブルに記憶された情報から、今回実行
要求のあった手続きの処理時間が長時間グループと短時
間グループの何れに分類されているかを判別する第1の
工程と、該第1の工程で処理時間が短時間グループに分
類されていると判別されたとき、前記サーバ用に予め作
成されたスレッドを、今回要求のあった手続きを実行す
るためのスレッドとして獲得する第2の工程と、前記第
1の工程で処理時間が長時間グループに分類されている
と判別されたとき、新規にスレッドを作成し、該新規ス
レッドを、今回要求のあった手続きを実行するためのス
レッドとして獲得する第3の工程と、を含むようにして
もよい。
【0036】さらに本発明は、前記サーバがメモリバス
と入出力バスを備えたコンピュータからなり、前記所定
の基準が、各手続きの前記入出力バスと前記メモリバス
の利用形態に基づくものであり、前記サーバに対して前
記入出力バスの利用を必要とする手続きの処理時間が長
時間グループに分類され、前記サーバに対して前記メモ
リバスの利用のみを必要とする手続きの処理時間が短時
間グループに分類されるようにしてもよい。
と入出力バスを備えたコンピュータからなり、前記所定
の基準が、各手続きの前記入出力バスと前記メモリバス
の利用形態に基づくものであり、前記サーバに対して前
記入出力バスの利用を必要とする手続きの処理時間が長
時間グループに分類され、前記サーバに対して前記メモ
リバスの利用のみを必要とする手続きの処理時間が短時
間グループに分類されるようにしてもよい。
【0037】また本発明は、クライアントとサーバとの
間で手続き呼出しを可能にするインタフェース定義言語
仕様ファイルを翻訳することによって、クライアントス
タブを生成するスタブ生成方法において、前記インタフ
ェース定義言語仕様ファイルが、前記クライアントによ
り呼出される手続きの処理時間に関する情報をインタフ
ェース定義言語の拡張属性として含むファイルからな
り、前記スタブ生成方法が、前記インタフェース定義言
語仕様ファイルから、該インタフェース定義言語仕様フ
ァイルで定義されている手続きの処理時間を認識する処
理時間認識工程と、予め準備された互いに異なる少なく
とも二つのスタブ生成プロセスの中から、前記処理時間
認識工程で認識された処理時間に基づいて、一つのスタ
ブ生成プロセスを選択するプロセス選択工程と、を含
み、前記クライアントスタブが、前記プロセス選択工程
で選択されたスタブ生成プロセスに従って生成されるこ
とを特徴とするものである。
間で手続き呼出しを可能にするインタフェース定義言語
仕様ファイルを翻訳することによって、クライアントス
タブを生成するスタブ生成方法において、前記インタフ
ェース定義言語仕様ファイルが、前記クライアントによ
り呼出される手続きの処理時間に関する情報をインタフ
ェース定義言語の拡張属性として含むファイルからな
り、前記スタブ生成方法が、前記インタフェース定義言
語仕様ファイルから、該インタフェース定義言語仕様フ
ァイルで定義されている手続きの処理時間を認識する処
理時間認識工程と、予め準備された互いに異なる少なく
とも二つのスタブ生成プロセスの中から、前記処理時間
認識工程で認識された処理時間に基づいて、一つのスタ
ブ生成プロセスを選択するプロセス選択工程と、を含
み、前記クライアントスタブが、前記プロセス選択工程
で選択されたスタブ生成プロセスに従って生成されるこ
とを特徴とするものである。
【0038】さらに本発明は、前記クライアントにより
呼出される手続きの処理時間が、所定の基準に対して長
時間であると判断される長時間グループと短時間である
と判断される短時間グループの何れかに分類されて前記
インタフェース定義言語の拡張属性として前記インタフ
ェース定義言語仕様ファイルに記述され、前記処理時間
認識工程が、インターフェース定義言語仕様ファイルに
定義されている手続きの中に、長時間グループに分類さ
れた処理時間の手続きがあるか否かを判別する時間グル
ープ判別工程を含み、前記スタブ生成方法が、前記時間
グループ判別工程で長時間グループの処理時間の手続き
があると判別されたとき、前記インタフェース定義言語
仕様ファイルにより定義された各手続きの処理時間が前
記長時間グループと前記短時間グループのどちらのグル
ープに分類されたかを表す情報を記憶したテーブルを、
クライアントスタブに作成するテーブル作成工程を含む
ようにしてもよい。
呼出される手続きの処理時間が、所定の基準に対して長
時間であると判断される長時間グループと短時間である
と判断される短時間グループの何れかに分類されて前記
インタフェース定義言語の拡張属性として前記インタフ
ェース定義言語仕様ファイルに記述され、前記処理時間
認識工程が、インターフェース定義言語仕様ファイルに
定義されている手続きの中に、長時間グループに分類さ
れた処理時間の手続きがあるか否かを判別する時間グル
ープ判別工程を含み、前記スタブ生成方法が、前記時間
グループ判別工程で長時間グループの処理時間の手続き
があると判別されたとき、前記インタフェース定義言語
仕様ファイルにより定義された各手続きの処理時間が前
記長時間グループと前記短時間グループのどちらのグル
ープに分類されたかを表す情報を記憶したテーブルを、
クライアントスタブに作成するテーブル作成工程を含む
ようにしてもよい。
【0039】また本発明は、クライアントとサーバとの
間で遠隔手続き呼出しを可能にするインタフェース定義
言語仕様ファイルを翻訳することによって、サーバスタ
ブを生成するスタブ生成方法において、前記インタフェ
ース定義言語仕様ファイルが、前記サーバにより実行さ
れる手続きの処理時間に関する情報をインタフェース定
義言語の拡張属性として含むファイルからなり、前記ス
タブ生成方法が、前記インタフェース定義言語仕様ファ
イルから、該インタフェース定義言語仕様ファイルで定
義されている手続きの処理時間を認識する処理時間認識
工程と、予め準備された互いに異なる少なくとも二つの
スタブ生成プロセスの中から、前記処理時間認識工程で
認識された処理時間に基づいて、一つのスタブ生成プロ
セスを選択するプロセス選択工程と、を含み、前記サー
バスタブが、前記プロセス選択工程で選択されたスタブ
生成プロセスに従って生成されることを特徴とするもの
である。
間で遠隔手続き呼出しを可能にするインタフェース定義
言語仕様ファイルを翻訳することによって、サーバスタ
ブを生成するスタブ生成方法において、前記インタフェ
ース定義言語仕様ファイルが、前記サーバにより実行さ
れる手続きの処理時間に関する情報をインタフェース定
義言語の拡張属性として含むファイルからなり、前記ス
タブ生成方法が、前記インタフェース定義言語仕様ファ
イルから、該インタフェース定義言語仕様ファイルで定
義されている手続きの処理時間を認識する処理時間認識
工程と、予め準備された互いに異なる少なくとも二つの
スタブ生成プロセスの中から、前記処理時間認識工程で
認識された処理時間に基づいて、一つのスタブ生成プロ
セスを選択するプロセス選択工程と、を含み、前記サー
バスタブが、前記プロセス選択工程で選択されたスタブ
生成プロセスに従って生成されることを特徴とするもの
である。
【0040】さらに本発明は、前記サーバにより実行さ
れる手続きの処理時間が、所定の基準に対して長時間で
あると判断される長時間グループと短時間であると判断
される短時間グループの何れかに分類されて前記インタ
フェース定義言語の拡張属性として前記インタフェース
定義言語仕様ファイルに記述され、前記処理時間認識工
程が、インターフェース定義言語仕様ファイルに定義さ
れている手続きの中に、長時間グループに分類された処
理時間の手続きがあるか否かを判別する時間グループ判
別工程を含み、前記スタブ生成方法が、前記時間グルー
プ判別工程で長時間グループの処理時間の手続きがある
と判別されたとき、前記インタフェース定義言語仕様フ
ァイルにより定義された各手続きの処理時間が前記長時
間グループと前記短時間グループのどちらのグループに
分類されたかを表す情報を記憶したテーブルを、サーバ
スタブに作成するテーブル作成工程を含むようにしても
よい。
れる手続きの処理時間が、所定の基準に対して長時間で
あると判断される長時間グループと短時間であると判断
される短時間グループの何れかに分類されて前記インタ
フェース定義言語の拡張属性として前記インタフェース
定義言語仕様ファイルに記述され、前記処理時間認識工
程が、インターフェース定義言語仕様ファイルに定義さ
れている手続きの中に、長時間グループに分類された処
理時間の手続きがあるか否かを判別する時間グループ判
別工程を含み、前記スタブ生成方法が、前記時間グルー
プ判別工程で長時間グループの処理時間の手続きがある
と判別されたとき、前記インタフェース定義言語仕様フ
ァイルにより定義された各手続きの処理時間が前記長時
間グループと前記短時間グループのどちらのグループに
分類されたかを表す情報を記憶したテーブルを、サーバ
スタブに作成するテーブル作成工程を含むようにしても
よい。
【0041】
【発明の実施の形態】実施形態1.図1は、本発明に係
る遠隔手続き呼出しの処理方法を実行するクライアント
サーバシステムを示すブロック図である。まず、この図
1を参照して上記クライアントサーバシステムの概略構
成を説明する。
る遠隔手続き呼出しの処理方法を実行するクライアント
サーバシステムを示すブロック図である。まず、この図
1を参照して上記クライアントサーバシステムの概略構
成を説明する。
【0042】図1において、103および104はそれ
ぞれ通信ノードであり、これら通信ノード103、10
4はネットワーク120に接続されたコンピュータを表
している。本実施形態では、通信ノード103がクライ
アント、通信ノード104がサーバとなる。通信ノード
103、104はそれぞれ下位コネクション指向通信処
理装置131、132を有している。
ぞれ通信ノードであり、これら通信ノード103、10
4はネットワーク120に接続されたコンピュータを表
している。本実施形態では、通信ノード103がクライ
アント、通信ノード104がサーバとなる。通信ノード
103、104はそれぞれ下位コネクション指向通信処
理装置131、132を有している。
【0043】下位コネクション指向通信処理装置13
1、132は各通信ノード上で実装されている下位レベ
ルの通信処理装置である。下位コネクション指向通信処
理装置131、132は、例えばTCP/IP(Tra
nmission Control Protocol
/Internet Protocol)に従って通信
を行う通信処理装置を表す。TCP/IPなどを採用す
る下位コネクション指向通信処理装置131、132
は、コネクションと呼ばれる仮想通信回線を通信ノード
間に確立して通信を処理する装置である。この他の下位
コネクション指向通信処理装置の例としては、IPX/
SPX(Internet PacketExchan
ge/Sequential Packet Prot
ocol)を採用する通信処理装置などがある。なお、
仮想通信回線は、論理的な架空通信回線を意味している
ので、論理通信回線と呼ぶこともできる。
1、132は各通信ノード上で実装されている下位レベ
ルの通信処理装置である。下位コネクション指向通信処
理装置131、132は、例えばTCP/IP(Tra
nmission Control Protocol
/Internet Protocol)に従って通信
を行う通信処理装置を表す。TCP/IPなどを採用す
る下位コネクション指向通信処理装置131、132
は、コネクションと呼ばれる仮想通信回線を通信ノード
間に確立して通信を処理する装置である。この他の下位
コネクション指向通信処理装置の例としては、IPX/
SPX(Internet PacketExchan
ge/Sequential Packet Prot
ocol)を採用する通信処理装置などがある。なお、
仮想通信回線は、論理的な架空通信回線を意味している
ので、論理通信回線と呼ぶこともできる。
【0044】105はクライアントマルチスレッドアプ
リケーション、106はサーバマルチスレッドアプリケ
ーションであり、これらのアプリケーション105、1
06はマルチスレッドによって動作するとともに本発明
に係る遠隔手続き呼出しの処理方法を利用するアプリケ
ーションである。マルチスレッドによって動作するアプ
リケーションは、スレッドと呼ばれる仮想的な処理プロ
セッサとしての一つまたは複数の実行体を有し、アプリ
ケーションはこの実行体により動作する。スレッドは例
えば通信ノード上のオペレーティングシステムなどによ
って提供される機能である。スレッドを提供しているオ
ペレーティングシステムの例として、マイクロソフト社
のWindows NTやサンマイクロ社のSolar
isなどがある。
リケーション、106はサーバマルチスレッドアプリケ
ーションであり、これらのアプリケーション105、1
06はマルチスレッドによって動作するとともに本発明
に係る遠隔手続き呼出しの処理方法を利用するアプリケ
ーションである。マルチスレッドによって動作するアプ
リケーションは、スレッドと呼ばれる仮想的な処理プロ
セッサとしての一つまたは複数の実行体を有し、アプリ
ケーションはこの実行体により動作する。スレッドは例
えば通信ノード上のオペレーティングシステムなどによ
って提供される機能である。スレッドを提供しているオ
ペレーティングシステムの例として、マイクロソフト社
のWindows NTやサンマイクロ社のSolar
isなどがある。
【0045】101は拡張属性を記述可能なIDLによ
り記述されたIDL仕様ファイルであり、IDL仕様フ
ァイル101はアプリケーションの開発者によって記述
されるファイルである。IDL仕様ファイル101は、
クライアントマルチスレッドアプリケーション105と
サーバマルチスレッドアプリケーション106との呼出
しインタフェースを定義するものである。
り記述されたIDL仕様ファイルであり、IDL仕様フ
ァイル101はアプリケーションの開発者によって記述
されるファイルである。IDL仕様ファイル101は、
クライアントマルチスレッドアプリケーション105と
サーバマルチスレッドアプリケーション106との呼出
しインタフェースを定義するものである。
【0046】IDL仕様ファイル101はIDLコンパ
イラ102により翻訳(コンパイル)され、クライアン
トスタブ107とサーバスタブ108が生成される。よ
り具体的には、アプリケーション開発者が通信ノード1
03、104上でIDLコンパイラ102を実行してI
DL仕様ファイルからそれぞれクライアントスタブ10
7およびサーバスタブ108を生成する。また、IDL
コンパイラ102は従来のIDLコンパイラに対し受理可
能な文法の拡張を行なっており、構文解析処理において
拡張属性の認識が可能である。
イラ102により翻訳(コンパイル)され、クライアン
トスタブ107とサーバスタブ108が生成される。よ
り具体的には、アプリケーション開発者が通信ノード1
03、104上でIDLコンパイラ102を実行してI
DL仕様ファイルからそれぞれクライアントスタブ10
7およびサーバスタブ108を生成する。また、IDL
コンパイラ102は従来のIDLコンパイラに対し受理可
能な文法の拡張を行なっており、構文解析処理において
拡張属性の認識が可能である。
【0047】クライアントスタブ107は、メッセージ
作成装置109、メッセージ送受信装置110、コネク
ション管理装置111、オペレーション管理テーブル1
12および回線管理テーブル113を備えている。
作成装置109、メッセージ送受信装置110、コネク
ション管理装置111、オペレーション管理テーブル1
12および回線管理テーブル113を備えている。
【0048】メッセージ作成装置109は、クライアン
トマルチスレッドアプリケーション105のスレッドか
ら受け取ったデータを、ネットワーク120を介した通
信に適切な形式に変換してメッセージを作成する。また
メッセージ作成装置109は、逆にネットワーク120
から受け取ったメッセージをクライアントマルチスレッ
ドアプリケーション105のスレッドに対して適切なデ
ータ形式に変換してクライアントマルチスレッドアプリ
ケーション105に渡す。
トマルチスレッドアプリケーション105のスレッドか
ら受け取ったデータを、ネットワーク120を介した通
信に適切な形式に変換してメッセージを作成する。また
メッセージ作成装置109は、逆にネットワーク120
から受け取ったメッセージをクライアントマルチスレッ
ドアプリケーション105のスレッドに対して適切なデ
ータ形式に変換してクライアントマルチスレッドアプリ
ケーション105に渡す。
【0049】メッセージ送受信装置110は、後述のコ
ネクション管理装置111からの情報を基づいて、メッ
セージ作成装置109から受け取ったメッセージを下位
コネクション指向通信処理装置131により提供されて
いる仮想通信回線に対して送信する。またメッセージ送
受信装置110は、逆に仮想通信回線から受け取った複
数のメッセージを適切なクライアントマルチスレッドア
プリケーション105のスレッドに振り分ける。
ネクション管理装置111からの情報を基づいて、メッ
セージ作成装置109から受け取ったメッセージを下位
コネクション指向通信処理装置131により提供されて
いる仮想通信回線に対して送信する。またメッセージ送
受信装置110は、逆に仮想通信回線から受け取った複
数のメッセージを適切なクライアントマルチスレッドア
プリケーション105のスレッドに振り分ける。
【0050】コネクション管理装置111は、後述する
オペレーション管理テーブル112および回線管理テー
ブル113を参照して、下位コネクション指向通信処理
装置131により提供されている仮想通信回線の確立と
破棄を行うものである。このコネクション管理装置11
1によって、クライアントマルチスレッドアプリケーシ
ョン105とサーバマルチスレッドアプリケーション1
06との間で同時に複数の仮想通信回線の使用が可能に
なる。
オペレーション管理テーブル112および回線管理テー
ブル113を参照して、下位コネクション指向通信処理
装置131により提供されている仮想通信回線の確立と
破棄を行うものである。このコネクション管理装置11
1によって、クライアントマルチスレッドアプリケーシ
ョン105とサーバマルチスレッドアプリケーション1
06との間で同時に複数の仮想通信回線の使用が可能に
なる。
【0051】一方、サーバスタブ108は、メッセージ
作成装置114、スレッド管理装置115、メッセージ
送受信装置116およびスレッドプール117を備えて
いる。メッセージ作成装置114は、ネットワーク12
0から受け取ったメッセージをサーバマルチスレッドア
プリケーション106に対して適切なデータ形式に変換
する。またメッセージ作成装置114は、逆にサーバマ
ルチスレッドアプリケーション106のスレッドから受
け取ったデータを、ネットワーク120を介した通信に
適切な形式に変換してメッセージを作成する。
作成装置114、スレッド管理装置115、メッセージ
送受信装置116およびスレッドプール117を備えて
いる。メッセージ作成装置114は、ネットワーク12
0から受け取ったメッセージをサーバマルチスレッドア
プリケーション106に対して適切なデータ形式に変換
する。またメッセージ作成装置114は、逆にサーバマ
ルチスレッドアプリケーション106のスレッドから受
け取ったデータを、ネットワーク120を介した通信に
適切な形式に変換してメッセージを作成する。
【0052】スレッド管理装置115は、スレッドプー
ル117を管理するものであり、スレッドを生成し、ま
た消滅させる機能を有している。スレッドプール117
は、サーバマルチスレッドアプリケーション106を起
動する際に、あらかじめ複数個のスレッドを作成し備蓄
しておき、クライアントマルチスレッドアプリケーショ
ン106からの処理要求が来た際には、この備蓄された
スレッドがスレッド管理装置115を介して取り出さ
れ、その処理を担当するようになっている。
ル117を管理するものであり、スレッドを生成し、ま
た消滅させる機能を有している。スレッドプール117
は、サーバマルチスレッドアプリケーション106を起
動する際に、あらかじめ複数個のスレッドを作成し備蓄
しておき、クライアントマルチスレッドアプリケーショ
ン106からの処理要求が来た際には、この備蓄された
スレッドがスレッド管理装置115を介して取り出さ
れ、その処理を担当するようになっている。
【0053】メッセージ送受信装置116は、後述のコ
ネクション管理装置111からの情報を基づいて、メッ
セージ作成装置109から受け取ったメッセージを下位
コネクション指向通信処理装置132により提供されて
いる仮想通信回線に対して送信する。また、逆に仮想通
信回線から受け取った複数のメッセージを適切なクライ
アントマルチスレッドアプリケーション105のスレッ
ドに振り分ける装置である。
ネクション管理装置111からの情報を基づいて、メッ
セージ作成装置109から受け取ったメッセージを下位
コネクション指向通信処理装置132により提供されて
いる仮想通信回線に対して送信する。また、逆に仮想通
信回線から受け取った複数のメッセージを適切なクライ
アントマルチスレッドアプリケーション105のスレッ
ドに振り分ける装置である。
【0054】次に、クライアント側の通信ノード103
内を詳細に示した図2および通信ノード103内で実行
される工程を示した図3を参照しながら、クライアント
の動作について説明する。図2において、クライアント
マルチスレッドアプリケーション105はサーバマルチ
スレッドアプリケーション106にある3つのオペレー
ションを起動するアプリケーションとして示されてい
る。ここに、オペレーションは「手続き」あるいは「プ
ロシジャ」と同義であり、ここでは上記3つのオペレー
ションを「operation1」、「operation2」、「operatio
n3」とそれぞれ記述する。
内を詳細に示した図2および通信ノード103内で実行
される工程を示した図3を参照しながら、クライアント
の動作について説明する。図2において、クライアント
マルチスレッドアプリケーション105はサーバマルチ
スレッドアプリケーション106にある3つのオペレー
ションを起動するアプリケーションとして示されてい
る。ここに、オペレーションは「手続き」あるいは「プ
ロシジャ」と同義であり、ここでは上記3つのオペレー
ションを「operation1」、「operation2」、「operatio
n3」とそれぞれ記述する。
【0055】このようなアプリケーションを開発する場
合、まず、アプリケーションの開発者はIDLによって
図2に示すようなIDL仕様ファイル101を作成する。
本実施形態におけるIDLを利用すると、従来のIDL
と同様に、インタフェース名、オペレーション名、オペ
レーションの返り値の型、オペレーションの引数の型と
名前およびオペレーションの引数の属性である方向をI
DL仕様ファイルに記述できる。例えば、図2に示され
たIDL仕様ファイル101では、インタフェース名A
において3つのオペレーションが定義されている。
合、まず、アプリケーションの開発者はIDLによって
図2に示すようなIDL仕様ファイル101を作成する。
本実施形態におけるIDLを利用すると、従来のIDL
と同様に、インタフェース名、オペレーション名、オペ
レーションの返り値の型、オペレーションの引数の型と
名前およびオペレーションの引数の属性である方向をI
DL仕様ファイルに記述できる。例えば、図2に示され
たIDL仕様ファイル101では、インタフェース名A
において3つのオペレーションが定義されている。
【0056】オペレーション名はサーバマルチスレッド
アプリケーションで起動されるオペレーションの名前で
あり、本実施形態では「operation1」、「operation
2」、「operation3」がオペレーション名である。図2
に示されたIDL仕様ファイルに示されるように、「op
eration1」は「double」型の返り値と2つの引数を持
つ。最初の引数は「short」型であり、引数名はsであ
る。次の引数は「long」型であり、引数名はtである。
アプリケーションで起動されるオペレーションの名前で
あり、本実施形態では「operation1」、「operation
2」、「operation3」がオペレーション名である。図2
に示されたIDL仕様ファイルに示されるように、「op
eration1」は「double」型の返り値と2つの引数を持
つ。最初の引数は「short」型であり、引数名はsであ
る。次の引数は「long」型であり、引数名はtである。
【0057】[in]、[inout]、[out]は引数に与えられた
データが送られる方向を表す属性である。[in]属性を持
つ引数は、クライアントマルチスレッドアプリケーショ
ン105からサーバマルチスレッドアプリケーション1
06へと引数として与えられたデータが送られることを
表わす。
データが送られる方向を表す属性である。[in]属性を持
つ引数は、クライアントマルチスレッドアプリケーショ
ン105からサーバマルチスレッドアプリケーション1
06へと引数として与えられたデータが送られることを
表わす。
【0058】[inout]属性を持つ引数は、クライアント
マルチスレッドアプリケーション105からサーバマル
チスレッドアプリケーション106に、引数として与え
られたデータが送られ、サーバ側の実際に実行されるオ
ペレーションでデータに対して何らかの処理を行った
後、再びサーバマルチスレッドアプリケーション106
からクライアントマルチスレッドアプリケーション10
5にデータが送られることを表わす。
マルチスレッドアプリケーション105からサーバマル
チスレッドアプリケーション106に、引数として与え
られたデータが送られ、サーバ側の実際に実行されるオ
ペレーションでデータに対して何らかの処理を行った
後、再びサーバマルチスレッドアプリケーション106
からクライアントマルチスレッドアプリケーション10
5にデータが送られることを表わす。
【0059】[out]属性を持つ引数はサーバマルチスレ
ッドアプリケーションからクライアントマルチスレッド
アプリケーション203に、引数として与えれたデータ
が送られることを意味する。
ッドアプリケーションからクライアントマルチスレッド
アプリケーション203に、引数として与えれたデータ
が送られることを意味する。
【0060】図2の「operation1」ではクライアントマ
ルチスレッドアプリケーション105から「short」型
と「long」型のデータがサーバマルチスレッドアプリケ
ーション106に対して送られ、このデータをもとにサ
ーバ側の「operation1」で開発者が記述した処理を実行
する。そして、処理後の「long」型のデータとオペレー
ションの返り値である「double」型のデータが、サーバ
マルチスレッドアプリケーション106からクライアン
トマルチスレッドアプリケーション105に送られる。
ルチスレッドアプリケーション105から「short」型
と「long」型のデータがサーバマルチスレッドアプリケ
ーション106に対して送られ、このデータをもとにサ
ーバ側の「operation1」で開発者が記述した処理を実行
する。そして、処理後の「long」型のデータとオペレー
ションの返り値である「double」型のデータが、サーバ
マルチスレッドアプリケーション106からクライアン
トマルチスレッドアプリケーション105に送られる。
【0061】本実施形態1のIDLは、上述の従来の記
述に加えて、新たにオペレーションの属性として[long]
の指定が可能である。本実施形態では、図2に示される
ように「operation1」と「operation3」に対して[long]
属性が指定されている。[long]属性を持つオペレーショ
ンは、サーバ側で実際に処理される可能性のあるオペレ
ーション群をその処理時間が相対的に長時間である長時
間グループと短時間グループの2つのグループに分類し
たときに、長時間グループに属する処理時間のオペレー
ションを指す。逆にこの[long]属性の記述がないオペレ
ーションは、その処理時間が相対的に短時間である短時
間グループに属する処理時間のオペレーションであるこ
とを意味する。
述に加えて、新たにオペレーションの属性として[long]
の指定が可能である。本実施形態では、図2に示される
ように「operation1」と「operation3」に対して[long]
属性が指定されている。[long]属性を持つオペレーショ
ンは、サーバ側で実際に処理される可能性のあるオペレ
ーション群をその処理時間が相対的に長時間である長時
間グループと短時間グループの2つのグループに分類し
たときに、長時間グループに属する処理時間のオペレー
ションを指す。逆にこの[long]属性の記述がないオペレ
ーションは、その処理時間が相対的に短時間である短時
間グループに属する処理時間のオペレーションであるこ
とを意味する。
【0062】各オペレーションの処理時間の長短の基準
は、アプリケーション開発者の経験的な主観に基づくも
のである。あるいは、次のような基準で処理時間の長短
を判断してもよい。一般的に、サーバの機能を有するコ
ンピュータすなわち通信ノード104に対して入出力バ
スの利用を要求、例えばハードディスクに対するアクセ
スやネットワーク上の資源に対するアクセス等を要求す
るオペレーションの処理時間は、コンピュータに対して
メモリバスの利用のみを要求する手続きの処理時間に対
してオーダが一桁以上相違して長くなる。したがって、
サーバ側のコンピュータに対して入出力バスの利用を要
求するオペレーションの処理時間を長時間グループ、メ
モリバスの利用のみを要求するオペレーションの処理時
間を短時間グループに分類して、処理時間の長短を判断
するようにしてもよい。さらに、もしアプリケーション
開発者が各オペレーションの処理時間の値を予め知って
いる場合には、所定のしきい値に対する大小関係に基づ
いて処理時間の長短を決定するようにしてもよい。
は、アプリケーション開発者の経験的な主観に基づくも
のである。あるいは、次のような基準で処理時間の長短
を判断してもよい。一般的に、サーバの機能を有するコ
ンピュータすなわち通信ノード104に対して入出力バ
スの利用を要求、例えばハードディスクに対するアクセ
スやネットワーク上の資源に対するアクセス等を要求す
るオペレーションの処理時間は、コンピュータに対して
メモリバスの利用のみを要求する手続きの処理時間に対
してオーダが一桁以上相違して長くなる。したがって、
サーバ側のコンピュータに対して入出力バスの利用を要
求するオペレーションの処理時間を長時間グループ、メ
モリバスの利用のみを要求するオペレーションの処理時
間を短時間グループに分類して、処理時間の長短を判断
するようにしてもよい。さらに、もしアプリケーション
開発者が各オペレーションの処理時間の値を予め知って
いる場合には、所定のしきい値に対する大小関係に基づ
いて処理時間の長短を決定するようにしてもよい。
【0063】図2は、クライアントマルチスレッドアプ
リケーション105がスレッドTH2に続いてスレッド
TH1が実行された状態を表している。詳しくは、スレ
ッドTH2が既に「operation3」を実行しており、下位
コネクション指向通信処理装置131により提供される
2つ仮想通信回線121、122のうちの仮想通信回線
121が「operation3」のために使用されており、ここ
でクライアントマルチスレッドアプリケーション105
内の別のスレッドTH1が「operation1」を2つの引数
データをともなって起動した状態を、図2は示してい
る。
リケーション105がスレッドTH2に続いてスレッド
TH1が実行された状態を表している。詳しくは、スレ
ッドTH2が既に「operation3」を実行しており、下位
コネクション指向通信処理装置131により提供される
2つ仮想通信回線121、122のうちの仮想通信回線
121が「operation3」のために使用されており、ここ
でクライアントマルチスレッドアプリケーション105
内の別のスレッドTH1が「operation1」を2つの引数
データをともなって起動した状態を、図2は示してい
る。
【0064】上述のように構成された通信ノード103
は、図3に示されるフローチャートに従って動作する。
まずステップS1で、クライアントマルチスレッドアプ
リケーション105が、「operation1」を引数5と3で
呼出す要求をクライアントスタブ107に送る。ステッ
プS2では、クライアントスタブ107内のメッセージ
作成装置109が、サーバ側でオペレーションを識別す
るためのオペレーションID(オペレーションを表す番号
またはオペレーション名そのものでも良い)と引数のデ
ータをクライアントマルチスレッドアプリケーション1
05から受け取る。
は、図3に示されるフローチャートに従って動作する。
まずステップS1で、クライアントマルチスレッドアプ
リケーション105が、「operation1」を引数5と3で
呼出す要求をクライアントスタブ107に送る。ステッ
プS2では、クライアントスタブ107内のメッセージ
作成装置109が、サーバ側でオペレーションを識別す
るためのオペレーションID(オペレーションを表す番号
またはオペレーション名そのものでも良い)と引数のデ
ータをクライアントマルチスレッドアプリケーション1
05から受け取る。
【0065】ステップS3で、メッセージ作成装置10
9は、必要であれば与えられた引数をネットワーク12
0上を送信可能な形式に変換するとともに、オペレーシ
ョンIDと複数の引数を予め決められたメッセージフォー
マットに従って整列させ、図2に示すようなメッセージ
109aを作成する。このメッセージ109aがサーバ
マルチスレッドアプリケーション106に向けて送信さ
れることになる。ステップS4では、メッセージ送受信
装置110がメッセージ作成装置207からメッセージ
109aを受け取り、適切な仮想通信回線をコネクショ
ン管理装置111に対して要求する。
9は、必要であれば与えられた引数をネットワーク12
0上を送信可能な形式に変換するとともに、オペレーシ
ョンIDと複数の引数を予め決められたメッセージフォー
マットに従って整列させ、図2に示すようなメッセージ
109aを作成する。このメッセージ109aがサーバ
マルチスレッドアプリケーション106に向けて送信さ
れることになる。ステップS4では、メッセージ送受信
装置110がメッセージ作成装置207からメッセージ
109aを受け取り、適切な仮想通信回線をコネクショ
ン管理装置111に対して要求する。
【0066】ステップS6で、コネクション管理装置1
11は、図2に示されるオペレーション管理テーブル1
12から[long]属性を持つオペレーションによって現在
使用中の仮想通信回線を検索する。検索した結果、ステ
ップS7で、該当する仮想通信回線があればステップS
8に進み、なければステップS10に進む。図2に示さ
れた動作状態では、[long]属性を持つ「operation3」が
仮想通信回線121を使用中であるので、仮想通信回線
121が検索されることになり、ステップS8に進むこ
とになる。
11は、図2に示されるオペレーション管理テーブル1
12から[long]属性を持つオペレーションによって現在
使用中の仮想通信回線を検索する。検索した結果、ステ
ップS7で、該当する仮想通信回線があればステップS
8に進み、なければステップS10に進む。図2に示さ
れた動作状態では、[long]属性を持つ「operation3」が
仮想通信回線121を使用中であるので、仮想通信回線
121が検索されることになり、ステップS8に進むこ
とになる。
【0067】このステップS8では、メッセージ送受信
装置110がコネクション管理装置111から該当する
仮想通信回線を獲得し、その仮想通信回線上にメッセー
ジ109aを送信する。[long]属性を持つオペレーショ
ンは、通常、サーバ側での処理時間が長いため、使用し
ている仮想通信回線は実際には空き状態であることが多
い。メッセージ送受信装置110はこの空き時間を利用
して後発のオペレーションのメッセージを送信する。
装置110がコネクション管理装置111から該当する
仮想通信回線を獲得し、その仮想通信回線上にメッセー
ジ109aを送信する。[long]属性を持つオペレーショ
ンは、通常、サーバ側での処理時間が長いため、使用し
ている仮想通信回線は実際には空き状態であることが多
い。メッセージ送受信装置110はこの空き時間を利用
して後発のオペレーションのメッセージを送信する。
【0068】図4は、図3のステップS8から直接ステ
ップS8に進んだ場合の仮想通信回線121の各メッセ
ージの利用状態例を示している。スレッドTH2が「op
eration3」の処理のために、仮想通信回線121を使用
し始めるのが時刻T1であり、サーバからの「short」
型の返り値を含む応答メッセージを受け取り、利用し終
わるのが時刻T6である。スレッドTH1が「operatio
n1」を実行するために、仮想通信回線121を利用し始
めるのが時刻T3である。この時点で、スレッドTH2
が「operation3」の処理のためにすでに仮想通信回線2
10を使用中であるが、メッセージの送信自体はすでに
時刻T2の時点で終了している。
ップS8に進んだ場合の仮想通信回線121の各メッセ
ージの利用状態例を示している。スレッドTH2が「op
eration3」の処理のために、仮想通信回線121を使用
し始めるのが時刻T1であり、サーバからの「short」
型の返り値を含む応答メッセージを受け取り、利用し終
わるのが時刻T6である。スレッドTH1が「operatio
n1」を実行するために、仮想通信回線121を利用し始
めるのが時刻T3である。この時点で、スレッドTH2
が「operation3」の処理のためにすでに仮想通信回線2
10を使用中であるが、メッセージの送信自体はすでに
時刻T2の時点で終了している。
【0069】したがって、スレッドTH1は「operatio
n1」を実行するために、仮想通信回線121を利用して
メッセージを送信することが可能である。もしも、仮想
通信回線が先のオペレーションのために信号伝送中であ
る場合には、その信号伝送が終了して空き状態になるま
で待って、後発のオペレーションのメッセージが送信さ
れる。
n1」を実行するために、仮想通信回線121を利用して
メッセージを送信することが可能である。もしも、仮想
通信回線が先のオペレーションのために信号伝送中であ
る場合には、その信号伝送が終了して空き状態になるま
で待って、後発のオペレーションのメッセージが送信さ
れる。
【0070】ステップS7からステップS10に進んだ
場合、ステップS10では、コネクション管理装置11
1が回線管理テーブル113から未使用の仮想通信回線
を検索する。検索の結果、ステップS11で該当する仮
想通信回線が検索された場合、ステップS8に進み、該
当する仮想通信回線がない場合には、ステップS12に
進む。
場合、ステップS10では、コネクション管理装置11
1が回線管理テーブル113から未使用の仮想通信回線
を検索する。検索の結果、ステップS11で該当する仮
想通信回線が検索された場合、ステップS8に進み、該
当する仮想通信回線がない場合には、ステップS12に
進む。
【0071】図2に示された回線管理テーブル113の
場合には、未使用の仮想通信回線122があるので、ス
テップS8に進んでこの仮想通信回線122をメッセー
ジ送受信装置110が獲得する。
場合には、未使用の仮想通信回線122があるので、ス
テップS8に進んでこの仮想通信回線122をメッセー
ジ送受信装置110が獲得する。
【0072】また、もし全ての仮想通信回線が使用中で
ある場合には、ステップS12で下位コネクション指向
通信処理装置131に新しい仮想通信回線を確立させ
て、回線管理テーブル113に登録するとともに、「op
eration1」の使用中の回線としてコネクション管理装置
111に登録する。次いで、ステップS12からステッ
プS8に進み、メッセージ送受信装置110は新規に登
録された仮想通信回線を獲得して、この仮想通信回線上
に「operation1」のメッセージを送信する。
ある場合には、ステップS12で下位コネクション指向
通信処理装置131に新しい仮想通信回線を確立させ
て、回線管理テーブル113に登録するとともに、「op
eration1」の使用中の回線としてコネクション管理装置
111に登録する。次いで、ステップS12からステッ
プS8に進み、メッセージ送受信装置110は新規に登
録された仮想通信回線を獲得して、この仮想通信回線上
に「operation1」のメッセージを送信する。
【0073】一方、図2に示した通信ノード104のメ
ッセージ送受信装置116は、各仮想通信回線から受信
した要求メッセージに対して、スレッド管理装置115
を介してスレッドプール117からスレッドを獲得し、
その要求メッセージのオペレーションの実行用に割り当
てる。また、メッセージ送受信装置116は、一つの仮
想通信回線が複数のオペレーションの要求メッセージに
より共用されていても、各要求メッセージに対して誤り
なく各スレッドを割り当て、さらに各スレッドの実行結
果を表す各回答メッセージを、対応する要求メッセージ
が送信されてきた仮想通信回線上に送り返す。
ッセージ送受信装置116は、各仮想通信回線から受信
した要求メッセージに対して、スレッド管理装置115
を介してスレッドプール117からスレッドを獲得し、
その要求メッセージのオペレーションの実行用に割り当
てる。また、メッセージ送受信装置116は、一つの仮
想通信回線が複数のオペレーションの要求メッセージに
より共用されていても、各要求メッセージに対して誤り
なく各スレッドを割り当て、さらに各スレッドの実行結
果を表す各回答メッセージを、対応する要求メッセージ
が送信されてきた仮想通信回線上に送り返す。
【0074】上述のように本実施形態1によれば、ID
L仕様ファイルに記述された各オペレーションの拡張属
性から各オペレーションの処理時間に関する情報を認識
してオペレーション管理テーブル112に記憶してお
き、新たなオペレーションが呼出されるときには、この
オペレーション管理テーブル112に記憶された各オペ
レーションの処理時間情報に基づいて、仮想通信回線を
獲得している。したがって、処理中の各オペレーション
の処理時間に応じて変化する使用中の仮想通信回線の空
き時間を利用することが可能になり、既に使用中の仮想
通信回線の有効利用を図ることができる。
L仕様ファイルに記述された各オペレーションの拡張属
性から各オペレーションの処理時間に関する情報を認識
してオペレーション管理テーブル112に記憶してお
き、新たなオペレーションが呼出されるときには、この
オペレーション管理テーブル112に記憶された各オペ
レーションの処理時間情報に基づいて、仮想通信回線を
獲得している。したがって、処理中の各オペレーション
の処理時間に応じて変化する使用中の仮想通信回線の空
き時間を利用することが可能になり、既に使用中の仮想
通信回線の有効利用を図ることができる。
【0075】また、各オペレーションの処理時間を[lon
g]指定有りの長時間グループと、[long]指定無しの短時
間グループとに分類して、現在処理中の長時間処理のオ
ペレーションにより使用されている仮想通信回線を、後
発のオペレーションのために共用している。この結果、
使用中の仮想通信回線の空き時間を有効利用することが
できるので、先のオペレーションによる仮想通信回線の
使用が全て終了するのを待って同じ仮想通信回線を使用
する従来の方法に比較して、全てのオペレーションの呼
出し処理を完了するまでの時間を大幅に短縮することが
できる。さらに、各オペレーションの呼出しごとに別の
仮想通信回線を確立して割り当てる従来の方法に比較す
ると、同時に確立され使用される仮想通信回線の数を減
少させることができ、結果的にネットワークトラフィッ
クを軽減するとともに、TCP/IPコネクションを管
理するためにTCP/IP通信処理装置内部に必要とさ
れる資源を減少させることができる。
g]指定有りの長時間グループと、[long]指定無しの短時
間グループとに分類して、現在処理中の長時間処理のオ
ペレーションにより使用されている仮想通信回線を、後
発のオペレーションのために共用している。この結果、
使用中の仮想通信回線の空き時間を有効利用することが
できるので、先のオペレーションによる仮想通信回線の
使用が全て終了するのを待って同じ仮想通信回線を使用
する従来の方法に比較して、全てのオペレーションの呼
出し処理を完了するまでの時間を大幅に短縮することが
できる。さらに、各オペレーションの呼出しごとに別の
仮想通信回線を確立して割り当てる従来の方法に比較す
ると、同時に確立され使用される仮想通信回線の数を減
少させることができ、結果的にネットワークトラフィッ
クを軽減するとともに、TCP/IPコネクションを管
理するためにTCP/IP通信処理装置内部に必要とさ
れる資源を減少させることができる。
【0076】さらにまた、短時間処理のオペレーション
により使用中の仮想通信回線を後発のオペレーションが
共用しないので、短時間処理のオペレーション同士が仮
想通信回線を共有することによるオーバヘッドを軽減す
ることができる。
により使用中の仮想通信回線を後発のオペレーションが
共用しないので、短時間処理のオペレーション同士が仮
想通信回線を共有することによるオーバヘッドを軽減す
ることができる。
【0077】またさらに、共用する仮想通信回線がない
場合には、まず、既に確立されている未使用の仮想通信
回線をまず検索して、このような仮想通信回線があれ
ば、これを後発のオペレーションが使用し、ない場合に
だけ新たに仮想通信回線を確立している。したがって、
オペレーションごとに仮想通信回線を確立するオーバヘ
ッドを軽減することができる。
場合には、まず、既に確立されている未使用の仮想通信
回線をまず検索して、このような仮想通信回線があれ
ば、これを後発のオペレーションが使用し、ない場合に
だけ新たに仮想通信回線を確立している。したがって、
オペレーションごとに仮想通信回線を確立するオーバヘ
ッドを軽減することができる。
【0078】実施形態2.上述の実施形態1では、処理
時間の長いオペレーションが使用する仮想通信回線に着
目し、その仮想通信回線の再利用と有効利用を行なうよ
うにしたものであるが、本実施形態2では、更に、その
仮想通信回線上で現在メッセージの送受信を実際に行な
っているかどうかを示すフラグをオペレーション管理テ
ーブルに設け、そのフラグの状態もさらに考慮して仮想
通信回線の共用をするか否かを決定するようにしてい
る。
時間の長いオペレーションが使用する仮想通信回線に着
目し、その仮想通信回線の再利用と有効利用を行なうよ
うにしたものであるが、本実施形態2では、更に、その
仮想通信回線上で現在メッセージの送受信を実際に行な
っているかどうかを示すフラグをオペレーション管理テ
ーブルに設け、そのフラグの状態もさらに考慮して仮想
通信回線の共用をするか否かを決定するようにしてい
る。
【0079】図5において、IDLコンパイラ202
は、IDL仕様ファイル101を翻訳して、クライアン
トスタブ207を生成する。図5に示されたクライアン
トスタブ207と、図2に示されたクラインとスタブ1
07とは、コネクション管理装置とオペレーション管理
テーブルが相違する。図5に示されたオペレーション管
理テーブル212には、図2に示されたオペレーション
管理テーブル112の各項目に加え、使用中の仮想通信
回線が、現在、信号を伝送中か否かを表わす送受信中フ
ラグの項目が設けられている。
は、IDL仕様ファイル101を翻訳して、クライアン
トスタブ207を生成する。図5に示されたクライアン
トスタブ207と、図2に示されたクラインとスタブ1
07とは、コネクション管理装置とオペレーション管理
テーブルが相違する。図5に示されたオペレーション管
理テーブル212には、図2に示されたオペレーション
管理テーブル112の各項目に加え、使用中の仮想通信
回線が、現在、信号を伝送中か否かを表わす送受信中フ
ラグの項目が設けられている。
【0080】図5に示されたコネクション管理装置21
1は、図2に示されたコネクション管理装置111の機
能に加え、オペレーション管理テーブル212の送受信
中フラグをも管理するものである。詳しくは、コネクシ
ョン管理装置211は、送受信中フラグがオンのとき、
すなわち仮想通信回線が現在、信号伝送中であるとき、
その仮想通信回線がたとえ[long]属性を持つオペレーシ
ョンが使用している仮想通信回線であっても、メッセー
ジ送受信装置110に対してこの仮想通信回線を利用可
能な回線として渡さない。
1は、図2に示されたコネクション管理装置111の機
能に加え、オペレーション管理テーブル212の送受信
中フラグをも管理するものである。詳しくは、コネクシ
ョン管理装置211は、送受信中フラグがオンのとき、
すなわち仮想通信回線が現在、信号伝送中であるとき、
その仮想通信回線がたとえ[long]属性を持つオペレーシ
ョンが使用している仮想通信回線であっても、メッセー
ジ送受信装置110に対してこの仮想通信回線を利用可
能な回線として渡さない。
【0081】一方、送受信フラグがオフのとき、コネク
ション管理装置211は、[long]属性を持つオペレーシ
ョンが使用している仮想通信回線を、メッセージ送受信
装置110に対して共用すべき回線として渡す。
ション管理装置211は、[long]属性を持つオペレーシ
ョンが使用している仮想通信回線を、メッセージ送受信
装置110に対して共用すべき回線として渡す。
【0082】図6は、図5に示された通信ノード内で実
行される工程を示すフローチャートであり、図3に示さ
れたフローチャートのステップS7とステップS8の間
にステップS7aが挿入されている以外は図3のものと
同じである。このため、図3との相違個所を中心に説明
する。
行される工程を示すフローチャートであり、図3に示さ
れたフローチャートのステップS7とステップS8の間
にステップS7aが挿入されている以外は図3のものと
同じである。このため、図3との相違個所を中心に説明
する。
【0083】図6において、ステップS1〜S5の後、
ステップS6で、コネクション管理装置211は、図5
に示されるオペレーション管理テーブル212から[lon
g]属性を持つオペレーションが使用している仮想通信回
線を検索する。検索した結果、ステップS7で、該当す
る仮想通信回線があればステップS8に進み、なければ
ステップS10に進む。図5に示された動作状態では、
[long]属性を持つ「operation3」が仮想通信回線121
を使用中であるので、仮想通信回線121が検索される
ことになり、ステップS7aに進むことになる。このス
テップS7aでは、仮想通信回線121が現在、信号を
伝送中か否かが判別され、信号伝送中であればステップ
S10に進み、信号伝送中でなければステップS8に進
む。
ステップS6で、コネクション管理装置211は、図5
に示されるオペレーション管理テーブル212から[lon
g]属性を持つオペレーションが使用している仮想通信回
線を検索する。検索した結果、ステップS7で、該当す
る仮想通信回線があればステップS8に進み、なければ
ステップS10に進む。図5に示された動作状態では、
[long]属性を持つ「operation3」が仮想通信回線121
を使用中であるので、仮想通信回線121が検索される
ことになり、ステップS7aに進むことになる。このス
テップS7aでは、仮想通信回線121が現在、信号を
伝送中か否かが判別され、信号伝送中であればステップ
S10に進み、信号伝送中でなければステップS8に進
む。
【0084】図5に示されたオペレーション管理テーブ
ル212の状態では、[long]属性を持つ「operation3」
用に使用されている仮想通信回線の送受信中フラグがオ
ン状態であるので、この場合にはステップS7aはステ
ップS10に進む。一方、もしステップS8に進んだ場
合には、[long]属性を持つオペレーション用に使用され
ている仮想通信回線が、「operation1」の処理に使用さ
れる仮想通信回線として獲得され共用されることにな
る。
ル212の状態では、[long]属性を持つ「operation3」
用に使用されている仮想通信回線の送受信中フラグがオ
ン状態であるので、この場合にはステップS7aはステ
ップS10に進む。一方、もしステップS8に進んだ場
合には、[long]属性を持つオペレーション用に使用され
ている仮想通信回線が、「operation1」の処理に使用さ
れる仮想通信回線として獲得され共用されることにな
る。
【0085】以上のように、処理時間の長いオペレーシ
ョンに着目し、それが使用している仮想通信回線を他の
オペレーションの実行に共有する際、仮想通信回線上で
現在、メッセージの伝送中かどうかまで判別することに
よって、同じ仮想通信回線を共有するオペレーションが
増えた場合でも、オペレーションの実行が過度に遅延す
るのを防止することができる。
ョンに着目し、それが使用している仮想通信回線を他の
オペレーションの実行に共有する際、仮想通信回線上で
現在、メッセージの伝送中かどうかまで判別することに
よって、同じ仮想通信回線を共有するオペレーションが
増えた場合でも、オペレーションの実行が過度に遅延す
るのを防止することができる。
【0086】図7を用いて、本実施形態2の効果をより
具体的に説明する。図8は、ある仮想通信回線がすでに
5つのスレッドTH21〜TH25による5つのオペレ
ーションの実行によって、共有されている様子を示した
ものである。時刻T1から始まり、時刻T6までは、こ
の仮想通信回線上に何らかのメッセージが送信中であ
る。例えば、時刻T1から時刻T2までは、スレッドT
H22が実行したオペレーションのメッセージが送信中
であり、時刻T2から時刻T3まではスレッドTH21
が実行したオペレーションのメッセージがこの仮想通信
回線上に実際に送信中である。以下、時刻T4、T5,
T6と同様である。
具体的に説明する。図8は、ある仮想通信回線がすでに
5つのスレッドTH21〜TH25による5つのオペレ
ーションの実行によって、共有されている様子を示した
ものである。時刻T1から始まり、時刻T6までは、こ
の仮想通信回線上に何らかのメッセージが送信中であ
る。例えば、時刻T1から時刻T2までは、スレッドT
H22が実行したオペレーションのメッセージが送信中
であり、時刻T2から時刻T3まではスレッドTH21
が実行したオペレーションのメッセージがこの仮想通信
回線上に実際に送信中である。以下、時刻T4、T5,
T6と同様である。
【0087】今、時刻T2と時刻T3の間の時刻Tに、
スレッドTH26があるオペレーションを実行し、これ
によるメッセージを送信しようとした場合、もし、図7
に示す仮想通信回線を使用した場合、この送信は時刻T
6以降まで遅延される。
スレッドTH26があるオペレーションを実行し、これ
によるメッセージを送信しようとした場合、もし、図7
に示す仮想通信回線を使用した場合、この送信は時刻T
6以降まで遅延される。
【0088】本実施形態2ではこのような場合を考慮
し、上述したように仮想通信回線を使用する前に、その
仮想通信回線上で現在メッセージ送信または受信、すな
わち信号伝送が行われているかをチェックする。もし、
メッセージの送信または受信が行われている場合は、そ
の仮想通信回線を利用せず、新たに仮想通信回線の確立
を行なう。これによって、同じ仮想通信回線を共有する
オペレーションが増えた場合でも、オペレーションの実
行が過度に遅延することなく共有が可能になる。
し、上述したように仮想通信回線を使用する前に、その
仮想通信回線上で現在メッセージ送信または受信、すな
わち信号伝送が行われているかをチェックする。もし、
メッセージの送信または受信が行われている場合は、そ
の仮想通信回線を利用せず、新たに仮想通信回線の確立
を行なう。これによって、同じ仮想通信回線を共有する
オペレーションが増えた場合でも、オペレーションの実
行が過度に遅延することなく共有が可能になる。
【0089】実施形態3.上記実施形態1、2では、主
にクライアント側の仮想通信回線の有効利用に関するも
のであったが、本実施形態3は、処理時間の長いオペレ
ーションに着目してサーバ側の効率的なマルチスレッド
処理を可能にする方法に関するものである。
にクライアント側の仮想通信回線の有効利用に関するも
のであったが、本実施形態3は、処理時間の長いオペレ
ーションに着目してサーバ側の効率的なマルチスレッド
処理を可能にする方法に関するものである。
【0090】図8は、IDLコンパイラ302とともに
サーバ側の通信ノードの内部を詳細に示したブロック図
である。なお、クライアント側の通信ノードは、例えば
図1および図2に示した通信ノード103ものと同じ構
成であるものとし、また、図1に示した通信ノード10
4内の構成要素と同じものには同じ符号を付してそれら
の説明は省略する。
サーバ側の通信ノードの内部を詳細に示したブロック図
である。なお、クライアント側の通信ノードは、例えば
図1および図2に示した通信ノード103ものと同じ構
成であるものとし、また、図1に示した通信ノード10
4内の構成要素と同じものには同じ符号を付してそれら
の説明は省略する。
【0091】IDLコンパイラ302は、IDL仕様フ
ァイル101を翻訳することにより、サーバスタブ30
4を生成する。サーバスタブ304は、図1に示したメ
ッセージ作成装置114、スレッド管理装置115およ
びスレッドプール117と同じ構成要素の他に、メッセ
ージ送受信装置316およびオペレーション管理テーブ
ル312を備えている。
ァイル101を翻訳することにより、サーバスタブ30
4を生成する。サーバスタブ304は、図1に示したメ
ッセージ作成装置114、スレッド管理装置115およ
びスレッドプール117と同じ構成要素の他に、メッセ
ージ送受信装置316およびオペレーション管理テーブ
ル312を備えている。
【0092】オペレーション管理テーブル312は、図
2に示したオペレーション管理テーブル112と同様に
構成されるものであり、このオペレーション管理テーブ
ル312には、オペレーションID、オペレーションの拡
張属性、使用中の仮想通信回線が登録されている。
2に示したオペレーション管理テーブル112と同様に
構成されるものであり、このオペレーション管理テーブ
ル312には、オペレーションID、オペレーションの拡
張属性、使用中の仮想通信回線が登録されている。
【0093】メッセージ送受信装置316は、下位コネ
クション指向通信処理装置132により提供される仮想
通信回線よりクライアントが作成したメッセージを受信
する。また、メッセージ送受信装置316は、受け取っ
たメッセージのオペレーションIDを読み取り、そのオ
ペレーションの拡張属性をオペレーション管理テーブル
312より検索する。例えば、オペレーションIDが2の
場合、このオペレーションはoperation2であり、属性は
[long]指定は無しである。オペレーションIDが1の場
合、このオペレーションは「operation1」であり、属性
は[long]指定である。
クション指向通信処理装置132により提供される仮想
通信回線よりクライアントが作成したメッセージを受信
する。また、メッセージ送受信装置316は、受け取っ
たメッセージのオペレーションIDを読み取り、そのオ
ペレーションの拡張属性をオペレーション管理テーブル
312より検索する。例えば、オペレーションIDが2の
場合、このオペレーションはoperation2であり、属性は
[long]指定は無しである。オペレーションIDが1の場
合、このオペレーションは「operation1」であり、属性
は[long]指定である。
【0094】図8に示した例では、オペレーションとし
て、「operation1」と「operation2」が動作している。
「operation1」はIDL仕様ファイルにおいて[long]属
性を指定されたオペレーションであり、下位コネクショ
ン指向通信処理装置132により提供される仮想通信回
線321を現在使用している。一方、「operatipon2」
は[long]属性を指定されていないオペレーションであ
り、下位コネクション指向通信処理装置132により提
供された仮想通信回線322を現在使用している。
て、「operation1」と「operation2」が動作している。
「operation1」はIDL仕様ファイルにおいて[long]属
性を指定されたオペレーションであり、下位コネクショ
ン指向通信処理装置132により提供される仮想通信回
線321を現在使用している。一方、「operatipon2」
は[long]属性を指定されていないオペレーションであ
り、下位コネクション指向通信処理装置132により提
供された仮想通信回線322を現在使用している。
【0095】図9に示すフローチャートを参照して、図
8に示したサーバ側の通信ノードの動作をより具体的に
説明する。まずステップS31で、メッセージ送受信装
置316は仮想通信回線を通してクライアントからのメ
ッセージを受け取る。次いでステップS32で、メッセ
ージ送受信装置316は、受け取ったメッセージ中のオ
ペレーションIDをキーに、オペレーション管理テーブ
ル312を検索して、該当するオペレーションの拡張属
性を取得する。ステップS33で取得したオペレーショ
ンの拡張属性に[long]の指定がある場合、ステップS3
4に進み、[long]の指定がない場合、ステップS36に
進む。
8に示したサーバ側の通信ノードの動作をより具体的に
説明する。まずステップS31で、メッセージ送受信装
置316は仮想通信回線を通してクライアントからのメ
ッセージを受け取る。次いでステップS32で、メッセ
ージ送受信装置316は、受け取ったメッセージ中のオ
ペレーションIDをキーに、オペレーション管理テーブ
ル312を検索して、該当するオペレーションの拡張属
性を取得する。ステップS33で取得したオペレーショ
ンの拡張属性に[long]の指定がある場合、ステップS3
4に進み、[long]の指定がない場合、ステップS36に
進む。
【0096】ステップS34で、メッセージ送受信装置
は316は、新規に作成するように、スレッド管理装置
115に依頼する。ステップS35で、新規スレッドを
今回受信したメッセージを処理するためのスレッドとし
て獲得する。ステップS36で、獲得スレッドによっ
て、今回クライアントから送られてきたメッセージが処
理される。スレッドはメッセージ作成装置114を利用
して、メッセージ114a内の引数を取り出し、実際に
指定されたオペレーションを実行する。図8に示した例
では、オペレーション管理テーブル31に示されるよう
に「operation1」に対しては[long]属性が指定されてい
る。「operation1」の処理はスレッド管理装置115に
よって新たに作成されたスレッドによって処理される。
は316は、新規に作成するように、スレッド管理装置
115に依頼する。ステップS35で、新規スレッドを
今回受信したメッセージを処理するためのスレッドとし
て獲得する。ステップS36で、獲得スレッドによっ
て、今回クライアントから送られてきたメッセージが処
理される。スレッドはメッセージ作成装置114を利用
して、メッセージ114a内の引数を取り出し、実際に
指定されたオペレーションを実行する。図8に示した例
では、オペレーション管理テーブル31に示されるよう
に「operation1」に対しては[long]属性が指定されてい
る。「operation1」の処理はスレッド管理装置115に
よって新たに作成されたスレッドによって処理される。
【0097】図8においてサーバマルチスレッドアプリ
ケーション306内のスレッドTH31はスレッドプー
ル117内のスレッドではなく、スレッド管理装置11
5が作成した新規スレッドである。このスレッドはオペ
レーション実行後に消滅する。
ケーション306内のスレッドTH31はスレッドプー
ル117内のスレッドではなく、スレッド管理装置11
5が作成した新規スレッドである。このスレッドはオペ
レーション実行後に消滅する。
【0098】一方、ステップS33からステップS37
に進んだ場合、メッセージ送受信装置316は、未使用
中のスレッドをスレッドプール117から取り出して、
このスレッドに今回受信したメッセージを処理させるよ
うにスレッド管理装置115に依頼する。スレッド管理
装置115によってスレッドプール117から取り出さ
れたスレッドは、メッセージ作成装置114を利用して
メッセージの中身を分解し、指定されたオペレーション
を実行する。
に進んだ場合、メッセージ送受信装置316は、未使用
中のスレッドをスレッドプール117から取り出して、
このスレッドに今回受信したメッセージを処理させるよ
うにスレッド管理装置115に依頼する。スレッド管理
装置115によってスレッドプール117から取り出さ
れたスレッドは、メッセージ作成装置114を利用して
メッセージの中身を分解し、指定されたオペレーション
を実行する。
【0099】例えば、「operation2」には[long]属性が
ない。この場合、メッセージ送受信装置114aは、ス
レッド管理装置115に対し、空いているスレッドを求
めてスレッドプール117を探索する。ステップS38
で、空きスレッドがあれば、ステップS35に進み、空
きスレッドがなければ、空きスレッドができるまでステ
ップS38を繰り返す。
ない。この場合、メッセージ送受信装置114aは、ス
レッド管理装置115に対し、空いているスレッドを求
めてスレッドプール117を探索する。ステップS38
で、空きスレッドがあれば、ステップS35に進み、空
きスレッドがなければ、空きスレッドができるまでステ
ップS38を繰り返す。
【0100】ステップS35では、空きスレッドを、今
回受信したメッセージのオペレーションを実行するため
のスレッドとして獲得する。図8に示した例では、サー
バマルチスレッドアプリケーション306内で「operat
ion2」を実行しているスレッドTH32はスレッドプー
ル117内にプールされていたスレッドである。
回受信したメッセージのオペレーションを実行するため
のスレッドとして獲得する。図8に示した例では、サー
バマルチスレッドアプリケーション306内で「operat
ion2」を実行しているスレッドTH32はスレッドプー
ル117内にプールされていたスレッドである。
【0101】上述のように本実施形態3によれば、各オ
ペレーションの処理時間に関する情報を認識してオペレ
ーション管理テーブル312に記憶しておき、クライア
ント側からオペレーションの呼出し要求があったときに
は、そのオペレーション管理テーブル312を参照し
て、今回呼出し要求のあったオペレーションの処理時間
に基づいて、スレッドを獲得している。したがって、そ
のオペレーションの処理時間特性に適したスレッドを獲
得することができる。
ペレーションの処理時間に関する情報を認識してオペレ
ーション管理テーブル312に記憶しておき、クライア
ント側からオペレーションの呼出し要求があったときに
は、そのオペレーション管理テーブル312を参照し
て、今回呼出し要求のあったオペレーションの処理時間
に基づいて、スレッドを獲得している。したがって、そ
のオペレーションの処理時間特性に適したスレッドを獲
得することができる。
【0102】また、今回の呼出し要求のオペレーション
が[long]属性である場合だけ、スレッドプールに備蓄さ
れたスレッドではなく、新規なスレッドを作成し、この
新規スレッドを今回呼出し要求のあったオペレーション
の実行に用いている。このため、実行するオペレーショ
ンの特性に関係なくクライアントからの要求メッセージ
ごとに新規にスレッドを作成していた従来の方法に比較
して、短時間処理のオペレーション用には新規スレッド
を作成しないので、スレッド処理作成によるオーバヘッ
ドを軽減することができる。長時間処理のオペレーショ
ンの実行に対して新規スレッドの作成によるオーバヘッ
ドは小さいので、問題にはならない。
が[long]属性である場合だけ、スレッドプールに備蓄さ
れたスレッドではなく、新規なスレッドを作成し、この
新規スレッドを今回呼出し要求のあったオペレーション
の実行に用いている。このため、実行するオペレーショ
ンの特性に関係なくクライアントからの要求メッセージ
ごとに新規にスレッドを作成していた従来の方法に比較
して、短時間処理のオペレーション用には新規スレッド
を作成しないので、スレッド処理作成によるオーバヘッ
ドを軽減することができる。長時間処理のオペレーショ
ンの実行に対して新規スレッドの作成によるオーバヘッ
ドは小さいので、問題にはならない。
【0103】さらに、新規スレッドを作成せずに、クラ
イアントからの要求メッセージをすべてスレッドプール
内のスレッドを割り当てていた従来の他の方法に比較し
て、本実施形態3では、呼出し要求のオペレーションの
特性に応じて新規スレッドを適宜作成するよぅにしてい
るので、スレッドプール内の空きスレッドが枯渇する可
能性が低くなり、新たにサーバに到着したメッセージが
待ち状態になる頻度を小さくすることができる。
イアントからの要求メッセージをすべてスレッドプール
内のスレッドを割り当てていた従来の他の方法に比較し
て、本実施形態3では、呼出し要求のオペレーションの
特性に応じて新規スレッドを適宜作成するよぅにしてい
るので、スレッドプール内の空きスレッドが枯渇する可
能性が低くなり、新たにサーバに到着したメッセージが
待ち状態になる頻度を小さくすることができる。
【0104】実施形態4.本実施形態4は、IDL仕様
ファイルに、長時間処理のオペレーションを含むもの
と、長時間処理のオペレーションを全く含まないものと
が混在した場合に、個々のIDL仕様ファイルの特性に
応じてより適切な処理を可能にしたものである。また、
本実施形態4はIDLコンパイラによるスタブ生成過程
に特徴があるので、以下はIDLコンパイラの処理フロ
ーを中心に説明する。
ファイルに、長時間処理のオペレーションを含むもの
と、長時間処理のオペレーションを全く含まないものと
が混在した場合に、個々のIDL仕様ファイルの特性に
応じてより適切な処理を可能にしたものである。また、
本実施形態4はIDLコンパイラによるスタブ生成過程
に特徴があるので、以下はIDLコンパイラの処理フロ
ーを中心に説明する。
【0105】図10は、本実施形態4におけるIDLコ
ンパイラの処理過程を示すフローチャートである。ま
ず、IDLコンパイラの処理に入る前に、アプリケーシ
ョン開発者等によって作成された例えば図1に示すよう
なIDL仕様ファイルが準備される。ステップS41
で、このIDL仕様ファイルがIDLコンパイラに入力
されると、ステップ42で、IDL仕様ファイルに対し
て字句解析処理が実行される。この字句解析処理によ
り、IDL仕様ファイルに記述された文字列がプログラ
ムを表現する意味のある最小単位である字句の列に変換
される。
ンパイラの処理過程を示すフローチャートである。ま
ず、IDLコンパイラの処理に入る前に、アプリケーシ
ョン開発者等によって作成された例えば図1に示すよう
なIDL仕様ファイルが準備される。ステップS41
で、このIDL仕様ファイルがIDLコンパイラに入力
されると、ステップ42で、IDL仕様ファイルに対し
て字句解析処理が実行される。この字句解析処理によ
り、IDL仕様ファイルに記述された文字列がプログラ
ムを表現する意味のある最小単位である字句の列に変換
される。
【0106】次いでステップS43で、IDL仕様ファ
イルに定義されている各オペレーションの拡張属性が認
識される。ステップS44で、IDL仕様ファイルに含
まれたオペレーションの中に[long]属性の指定のものが
あるか否かが判別される。IDL仕様ファイルに[long]
属性を持つオペレーションが1つでもある場合には、ス
テップS44からステップS45に進み、全くない場合
には、ステップS46に進む。
イルに定義されている各オペレーションの拡張属性が認
識される。ステップS44で、IDL仕様ファイルに含
まれたオペレーションの中に[long]属性の指定のものが
あるか否かが判別される。IDL仕様ファイルに[long]
属性を持つオペレーションが1つでもある場合には、ス
テップS44からステップS45に進み、全くない場合
には、ステップS46に進む。
【0107】ステップS45では、オペレーションの処
理時間を考慮したコンパイル形式を選択して、該コンパ
イル形式に従ってクライアントスタブまたはサーバスタ
ブを生成する。このようなクライアントスタブは、実施
形態1および2で説明したクライアントスタブであり、
サーバスタブは、実施形態3で説明したサーバスタブで
ある。
理時間を考慮したコンパイル形式を選択して、該コンパ
イル形式に従ってクライアントスタブまたはサーバスタ
ブを生成する。このようなクライアントスタブは、実施
形態1および2で説明したクライアントスタブであり、
サーバスタブは、実施形態3で説明したサーバスタブで
ある。
【0108】一方、ステップS46では、オペレーショ
ンの処理時間を考慮しないクライアントスタブまたはサ
ーバスタブを生成する。このようなクライアントスタブ
やサーバスタブは、例えば図11および図12に示した
従来技術により生成されるクライアントスタブやサーバ
スタブであればよい。
ンの処理時間を考慮しないクライアントスタブまたはサ
ーバスタブを生成する。このようなクライアントスタブ
やサーバスタブは、例えば図11および図12に示した
従来技術により生成されるクライアントスタブやサーバ
スタブであればよい。
【0109】すなわち、クライアント側にあっては、ク
ライアントの複数のスレッドが同時にオペレーションを
呼出した場合、予め確立されている仮想通信回線の中か
ら各オペレーションに対しそれぞれ別個の仮想通信回線
を割り当てる。もし仮想通信回線の数が不足する場合
は、必要な分だけ新しい仮想通信回線の確立して不足分
を補う。また、クライアントとサーバ間で確立する仮想
通信回線の数に上限がある場合は、先に処理されている
手続きによる仮想通信回線の使用が全て終了するのを待
って、該仮想通信回線を使用する。サーバ側にあって
は、要求のあった各オペレーションに対しては、スレッ
ドプールから空きスレッドを順次割り当て、スレッドプ
ールが枯渇した場合には、空きスレッドが発生するまで
処理を待つか、あるいは新規スレッドを作成してこれを
割り当てるようにする。
ライアントの複数のスレッドが同時にオペレーションを
呼出した場合、予め確立されている仮想通信回線の中か
ら各オペレーションに対しそれぞれ別個の仮想通信回線
を割り当てる。もし仮想通信回線の数が不足する場合
は、必要な分だけ新しい仮想通信回線の確立して不足分
を補う。また、クライアントとサーバ間で確立する仮想
通信回線の数に上限がある場合は、先に処理されている
手続きによる仮想通信回線の使用が全て終了するのを待
って、該仮想通信回線を使用する。サーバ側にあって
は、要求のあった各オペレーションに対しては、スレッ
ドプールから空きスレッドを順次割り当て、スレッドプ
ールが枯渇した場合には、空きスレッドが発生するまで
処理を待つか、あるいは新規スレッドを作成してこれを
割り当てるようにする。
【0110】上述の本実施形態4によれば、アプリケー
ション開発者が、IDLの拡張属性にオペレーションの
処理時間情報を記述するだけで、IDL仕様ファイルで
定義されたオペレーションの処理時間特性に適したクラ
イアントスタブあるいはサーバスタブを生成することが
できる。
ション開発者が、IDLの拡張属性にオペレーションの
処理時間情報を記述するだけで、IDL仕様ファイルで
定義されたオペレーションの処理時間特性に適したクラ
イアントスタブあるいはサーバスタブを生成することが
できる。
【0111】また、従来のIDL文法との互換性を維持
することが可能であり、クライアントマルチスレッドア
プリケーションまたはサーバマルチスレッドアプリケー
ションの処理を変更することなく、スタブ形式の変更が
可能である。しかも、この変更は、他のアプリケーショ
ンには影響を及ぼさない。
することが可能であり、クライアントマルチスレッドア
プリケーションまたはサーバマルチスレッドアプリケー
ションの処理を変更することなく、スタブ形式の変更が
可能である。しかも、この変更は、他のアプリケーショ
ンには影響を及ぼさない。
【0112】なお、上述の実施形態1、2および4にお
いて、本発明はマルチスレッドによる並列処理が可能な
サーバクライアントシステムに適用されたが、他の形式
の並列処理が可能なサーバクライアントシステムに適用
してもよい。また、本発明は、上記実施形態1〜4と同
様に全てオブジェクト指向型の遠隔手続き呼出しの処理
にも適用可能である。例えばオブジェクト指向技術の標
準化団体として、OMG(Object Manage
ment Group)が知られており、オブジェクト
指向版の遠隔手続き呼出しの共通仕様として、CORB
A(Common Object Request B
roker Architecture)が知られてい
る。このOMGでは、前述のサーバスタブはスケルトン
と呼ばれている。
いて、本発明はマルチスレッドによる並列処理が可能な
サーバクライアントシステムに適用されたが、他の形式
の並列処理が可能なサーバクライアントシステムに適用
してもよい。また、本発明は、上記実施形態1〜4と同
様に全てオブジェクト指向型の遠隔手続き呼出しの処理
にも適用可能である。例えばオブジェクト指向技術の標
準化団体として、OMG(Object Manage
ment Group)が知られており、オブジェクト
指向版の遠隔手続き呼出しの共通仕様として、CORB
A(Common Object Request B
roker Architecture)が知られてい
る。このOMGでは、前述のサーバスタブはスケルトン
と呼ばれている。
【0113】
【発明の効果】本発明によれば、現在処理中の手続きの
他に新たな手続きが前記クライアントからサーバに対し
て呼出されたとき、現在処理中の手続きの処理時間に関
する情報に基づいて、新たな手続きの呼出しに用いられ
る仮想通信回線が獲得されるので、現在処理中の手続き
の処理時間に応じて、適切な仮想通信回線を獲得するこ
とができる。
他に新たな手続きが前記クライアントからサーバに対し
て呼出されたとき、現在処理中の手続きの処理時間に関
する情報に基づいて、新たな手続きの呼出しに用いられ
る仮想通信回線が獲得されるので、現在処理中の手続き
の処理時間に応じて、適切な仮想通信回線を獲得するこ
とができる。
【0114】また本発明によれば、前記各手続きの処理
時間に関する情報を含むインタフェース定義言語仕様フ
ァイルを翻訳してクライアントスタブを生成することに
よって、各手続きの処理時間情報を含むテーブルを作成
しているので、IDLの文法を変更することなく、スタ
ブ内に上記テーブルを容易に作成することができ、結果
的にアプリケーション開発者に対する負荷を軽減するこ
とができる。
時間に関する情報を含むインタフェース定義言語仕様フ
ァイルを翻訳してクライアントスタブを生成することに
よって、各手続きの処理時間情報を含むテーブルを作成
しているので、IDLの文法を変更することなく、スタ
ブ内に上記テーブルを容易に作成することができ、結果
的にアプリケーション開発者に対する負荷を軽減するこ
とができる。
【0115】さらに本発明によれば、前記テーブルに記
憶されている現在処理中の手続きの中に、長時間グルー
プに分類されている処理時間の手続きがあるとき、長時
間グループに分類された処理時間の手続きによって現在
使用されている仮想通信回線が、前記新たな手続きの処
理用に獲得して共用されるので、この結果、新規に仮想
通信回線を確立できない場合でも、新たな手続きの呼出
しが待ち状態になる頻度を小さくすることができる。ま
た同時に仕様する仮想通信回線の数を減少させることが
でき、ネットワークトラフィックや仮想通信回線の管理
作業を軽減することができる。
憶されている現在処理中の手続きの中に、長時間グルー
プに分類されている処理時間の手続きがあるとき、長時
間グループに分類された処理時間の手続きによって現在
使用されている仮想通信回線が、前記新たな手続きの処
理用に獲得して共用されるので、この結果、新規に仮想
通信回線を確立できない場合でも、新たな手続きの呼出
しが待ち状態になる頻度を小さくすることができる。ま
た同時に仕様する仮想通信回線の数を減少させることが
でき、ネットワークトラフィックや仮想通信回線の管理
作業を軽減することができる。
【0116】また本発明によれば、前記テーブルに記憶
されている現在処理中の手続きの中に長時間グループに
分類されている処理時間の手続きがあり、かつ長時間グ
ループに分類されている処理時間の手続き用に獲得され
ている仮想通信回線が信号伝送中の状態か空き状態であ
るとき、長時間グループに分類されている処理時間の手
続き用に現在使用されている前記仮想通信回線を、前記
新たな手続き用に獲得して共用しているので、同じ仮想
通信回線を共有するオペレーションが増えた場合でも、
オペレーションの実行が過度に遅延するのを防止するこ
とができる。
されている現在処理中の手続きの中に長時間グループに
分類されている処理時間の手続きがあり、かつ長時間グ
ループに分類されている処理時間の手続き用に獲得され
ている仮想通信回線が信号伝送中の状態か空き状態であ
るとき、長時間グループに分類されている処理時間の手
続き用に現在使用されている前記仮想通信回線を、前記
新たな手続き用に獲得して共用しているので、同じ仮想
通信回線を共有するオペレーションが増えた場合でも、
オペレーションの実行が過度に遅延するのを防止するこ
とができる。
【0117】さらに本発明によれば、サーバに対して今
回実行要求のあった手続きを実行するスレッドを、今回
実行要求のあった手続きの処理時間の情報に基づいて獲
得しているので、その実行要求のあった手続きの処理時
間特性に適したスレッドを獲得することができる。
回実行要求のあった手続きを実行するスレッドを、今回
実行要求のあった手続きの処理時間の情報に基づいて獲
得しているので、その実行要求のあった手続きの処理時
間特性に適したスレッドを獲得することができる。
【0118】また本発明によれば、前記各手続きの処理
時間に関する情報を含むインタフェース定義言語仕様フ
ァイルを翻訳してサーバスタブを生成することによっ
て、各手続きの処理時間情報を含むテーブルを作成して
いるので、IDLの文法を変更することなく、スタブ内
に上記テーブルを容易に作成することができ、結果的に
アプリケーション開発者に対する負荷を軽減することが
できる。
時間に関する情報を含むインタフェース定義言語仕様フ
ァイルを翻訳してサーバスタブを生成することによっ
て、各手続きの処理時間情報を含むテーブルを作成して
いるので、IDLの文法を変更することなく、スタブ内
に上記テーブルを容易に作成することができ、結果的に
アプリケーション開発者に対する負荷を軽減することが
できる。
【0119】さらに本発明によれば、長時間グループの
処理時間の手続きの実行用のスレッドとしては、新規に
作成されたスレッドを獲得し、短時間グループの処理時
間の手続きの実行用のスレッドとしては、予め作成され
たスレッドを獲得しているので、スレッド作成のオーバ
ヘッドを小さくすることができる。
処理時間の手続きの実行用のスレッドとしては、新規に
作成されたスレッドを獲得し、短時間グループの処理時
間の手続きの実行用のスレッドとしては、予め作成され
たスレッドを獲得しているので、スレッド作成のオーバ
ヘッドを小さくすることができる。
【0120】また本発明によれば、サーバに対して入出
力バスの利用を要求する手続きの処理時間が長時間グル
ープに分類され、前記サーバに対してメモリバスの利用
のみを要求する手続きの処理時間が短時間グループに分
類されるので、簡単な基準により長時間と短時間を確実
かつ容易に分類することができる。
力バスの利用を要求する手続きの処理時間が長時間グル
ープに分類され、前記サーバに対してメモリバスの利用
のみを要求する手続きの処理時間が短時間グループに分
類されるので、簡単な基準により長時間と短時間を確実
かつ容易に分類することができる。
【0121】さらに本発明によれば、予め準備された少
なくとも二種類のスタブ生成プロセスの中から、手続き
の処理時間に基づいて、一つのスタブ生成プロセスが選
択され、このスタブ生成プロセスに従ってクライアント
スタブが生成されるので、手続きの処理時間に適したク
ライアントスタブを生成することができる。
なくとも二種類のスタブ生成プロセスの中から、手続き
の処理時間に基づいて、一つのスタブ生成プロセスが選
択され、このスタブ生成プロセスに従ってクライアント
スタブが生成されるので、手続きの処理時間に適したク
ライアントスタブを生成することができる。
【0122】また本発明によれば、インタフェース定義
言語仕様ファイルで定義された手続きの中に長時間グル
ープの処理時間の手続きがあると判別されたとき、イン
タフェース定義言語仕様ファイルにより定義された各手
続きの処理時間が長時間グループと短時間グループのど
ちらのグループに分類されたかを表す情報を記憶したテ
ーブルが、クライアントスタブに作成されるので、クラ
イアントによる手続き呼出し時に上記テーブルを参照す
ることにより、例えば適切な仮想回線する獲得すること
が可能になる。
言語仕様ファイルで定義された手続きの中に長時間グル
ープの処理時間の手続きがあると判別されたとき、イン
タフェース定義言語仕様ファイルにより定義された各手
続きの処理時間が長時間グループと短時間グループのど
ちらのグループに分類されたかを表す情報を記憶したテ
ーブルが、クライアントスタブに作成されるので、クラ
イアントによる手続き呼出し時に上記テーブルを参照す
ることにより、例えば適切な仮想回線する獲得すること
が可能になる。
【0123】さらに本発明によれば、予め準備された少
なくとも二種類のスタブ生成プロセスの中から、手続き
の処理時間に基づいて、一つのスタブ生成プロセスが選
択され、このスタブ生成プロセスに従ってサーバスタブ
が生成されるので、手続きの処理時間に適したサーバス
タブを生成することができる。
なくとも二種類のスタブ生成プロセスの中から、手続き
の処理時間に基づいて、一つのスタブ生成プロセスが選
択され、このスタブ生成プロセスに従ってサーバスタブ
が生成されるので、手続きの処理時間に適したサーバス
タブを生成することができる。
【0124】また本発明によれば、インタフェース定義
言語仕様ファイルで定義された手続きの中に長時間グル
ープの処理時間の手続きがあると判別されたとき、イン
タフェース定義言語仕様ファイルにより定義された各手
続きの処理時間が長時間グループと短時間グループのど
ちらのグループに分類されたかを表す情報を記憶したテ
ーブルが、サーバスタブに作成されるので、上記テーブ
ルを参照することにより、例えばクライアントから呼出
された手続きを実行するスレッドとして適切なスレッド
を獲得することが可能になる。
言語仕様ファイルで定義された手続きの中に長時間グル
ープの処理時間の手続きがあると判別されたとき、イン
タフェース定義言語仕様ファイルにより定義された各手
続きの処理時間が長時間グループと短時間グループのど
ちらのグループに分類されたかを表す情報を記憶したテ
ーブルが、サーバスタブに作成されるので、上記テーブ
ルを参照することにより、例えばクライアントから呼出
された手続きを実行するスレッドとして適切なスレッド
を獲得することが可能になる。
【図1】本発明の実施形態1を示すブロック図である。
【図2】実施形態1の詳細構成を示すブロック図であ
る。
る。
【図3】実施形態1の処理過程を示すフローチャートで
ある。
ある。
【図4】実施形態1における仮想通信回線の共用状態を
示す図である。
示す図である。
【図5】本発明の実施形態2を示すブロック図である。
【図6】実施形態2の処理過程を示すフローチャートで
ある。
ある。
【図7】実施形態2における仮想通信回線の共用状態を
示す図である。
示す図である。
【図8】本発明の実施形態3を示すブロック図である。
【図9】実施形態3の処理過程を示すブロック図であ
る。
る。
【図10】本発明の実施形態4の処理過程を示すフロー
チャートである。
チャートである。
【図11】従来例の概略構成を示すブロック図である。
【図12】従来例の詳細構成を示すブロック図である。
101 IDL仕様ファイル 102、202、302 IDLコンパイラ 103 通信ノード(クライアント側) 104 通信ノード(サーバ側) 105 クライアントマルチスレッドアプリケーショ
ン 106、306 サーバマルチスレッドアプリケーシ
ョン 107、207 クライアントスタブ 108、304 サーバスタブ 109、114 メッセージ作成装置 109a、114a メッセージ 110、116、316 メッセージ送受信装置 111、211 コネクション管理装置 112、212、312 オペレーション管理テーブ
ル 113 回線管理テーブル 115 スレッド管理装置 117 スレッドプール 120 ネットワーク
ン 106、306 サーバマルチスレッドアプリケーシ
ョン 107、207 クライアントスタブ 108、304 サーバスタブ 109、114 メッセージ作成装置 109a、114a メッセージ 110、116、316 メッセージ送受信装置 111、211 コネクション管理装置 112、212、312 オペレーション管理テーブ
ル 113 回線管理テーブル 115 スレッド管理装置 117 スレッドプール 120 ネットワーク
Claims (12)
- 【請求項1】 並列処理が行われるクライアントとサー
バとの間で仮想通信回線を介して複数の手続きを呼出し
て実行する手続き呼出しの処理方法において、 現在処理中の手続きの他に新たな手続きが前記クライア
ントからサーバに対して呼出されたとき、各手続きの処
理時間に関する情報を対応する手続きに関連付けて記憶
したテーブルから、現在処理中の手続きの処理時間に関
する情報を検索する時間情報検索工程と、 該時間情報検索工程で検索された現在処理中の手続きの
処理時間に関する情報に基づいて、前記新たな手続きの
呼出しに用いられる仮想通信回線を獲得する回線獲得工
程と、を含むことを特徴とする手続き呼出しの処理方
法。 - 【請求項2】 前記各手続きの処理時間に関する情報を
インタフェース定義言語の拡張属性として含むインタフ
ェース定義言語仕様ファイルを、翻訳することによりク
ライアントスタブを生成するスタブ生成工程を含み、 前記テーブルが前記クライアントスタブに含まれたこと
を特徴とする請求項1記載の手続き呼出しの処理方法。 - 【請求項3】 前記クライアントにより呼出される手続
きの処理時間が、所定の基準に対して長時間であると判
断される長時間グループと短時間であると判断される短
時間グループの何れかに分類されて前記インタフェース
定義言語の拡張属性として前記インタフェース定義言語
仕様ファイルに記述され、 前記インタフェース定義言語仕様ファイルにより定義さ
れた各手続きの処理時間が前記長時間グループと前記短
時間グループのどちらのグループに分類されたかを表す
情報が前記テーブルに記憶され、 前記回線獲得工程が、前記テーブルに記憶されている現
在処理中の手続きの中に、長時間グループに分類されて
いる処理時間の手続きがあるとき、長時間グループに分
類された処理時間の手続きによって現在使用されている
仮想通信回線を、前記新たな手続きの処理用に獲得して
共用する回線共用工程を含むことを特徴とする請求項1
または2記載の手続き呼出しの処理方法。 - 【請求項4】 前記クライアントにより呼出される手続
きの処理時間が、所定の基準に対して長時間であると判
断される長時間グループと短時間であると判断される短
時間グループの何れかに分類されて前記インタフェース
定義言語の拡張属性としてインタフェース定義言語仕様
ファイルに記述され、 前記インタフェース定義言語仕様ファイルにより定義さ
れた各手続きの処理時間が前記長時間グループと前記短
時間グループのどちらのグループに分類されたかを表す
情報が前記テーブルに記憶され、 前記回線獲得工程が、 前記テーブルに記憶されている現在処理中の手続きの中
に、長時間グループに分類されている処理時間の手続き
があるか否かを判別する第1の工程と、 該第1の工程で長時間グループの処理時間の手続きがあ
ると判別されたとき、長時間グループの処理時間の手続
き用に獲得されている仮想通信回線が信号伝送中の状態
か空き状態かを判別する第2の工程と、 該第2の工程で仮想通信回線が空き状態であると判別さ
れたとき、長時間グループの処理時間の手続き用に現在
使用されている前記仮想通信回線を、前記新たな手続き
用に獲得して共用する第3の工程と、を含むことを特徴
とする請求項1または2記載の手続き呼出しの処理方
法。 - 【請求項5】 マルチスレッドにより動作するクライア
ントとサーバとの間で仮想通信回線を介して複数の手続
きを呼出して実行する手続き呼出しの処理方法におい
て、 前記サーバに対して前記クライアントから手続きの実行
が要求されたとき、前記複数の手続きのそれぞれの処理
時間に関する情報を対応する各手続きに関連付けて記憶
したテーブルから、今回実行要求のあった手続きの処理
時間に関する情報を検索する時間情報検索工程と、 今回実行要求のあった手続きを前記サーバで実行するた
めのスレッドを、前記テーブルに記憶された今回実行要
求のあった手続きの処理時間の情報に基づいて獲得する
スレッド獲得工程と、を含むことを特徴とする手続き呼
出しの処理方法。 - 【請求項6】 前記各手続きの処理時間に関する情報を
インタフェース定義言語の拡張属性として含むインタフ
ェース定義言語仕様ファイルを、翻訳することによりサ
ーバスタブを生成する工程を含み、 前記テーブルが前記サーバスタブに含まれたことを特徴
とする請求項5記載の手続き呼出しの処理方法。 - 【請求項7】前記サーバにより実行される手続きの処理
時間が、所定の基準に対して相対的に長時間であると判
断される長時間グループと相対的に短時間であると判断
される短時間グループの何れかに分類されて前記インタ
フェース定義言語の拡張属性として記述され、 前記インタフェース定義言語仕様ファイルにより定義さ
れた各手続きの処理時間が前記長時間グループと前記短
時間グループのどちらのグループに分類されたかを表す
情報が前記テーブルに記憶され、 前記スレッド獲得工程が、 前記サーバに対して手続きの実行が要求されたとき、前
記テーブルに記憶された情報から、今回実行要求のあっ
た手続きの処理時間が長時間グループと短時間グループ
の何れに分類されているかを判別する第1の工程と、 該第1の工程で処理時間が短時間グループに分類されて
いると判別されたとき、前記サーバ用に予め作成された
スレッドを、今回要求のあった手続きを実行するための
スレッドとして獲得する第2の工程と、 前記第1の工程で処理時間が長時間グループに分類され
ていると判別されたとき、新規にスレッドを作成し、該
新規スレッドを、今回要求のあった手続きを実行するた
めのスレッドとして獲得する第3の工程と、を含むこと
を特徴とする請求項5または6記載の手続き呼出しの処
理方法。 - 【請求項8】 前記サーバがメモリバスと入出力バスを
備えたコンピュータからなり、前記所定の基準が、各手
続きの前記入出力バスと前記メモリバスの利用形態に基
づくものであり、前記サーバに対して前記入出力バスの
利用を必要とする手続きの処理時間が長時間グループに
分類され、前記サーバに対して前記メモリバスの利用の
みを必要とする手続きの処理時間が短時間グループに分
類されることを特徴とする請求項3、4および7の何れ
か一つに記載の手続き呼出しの処理方法。 - 【請求項9】 クライアントとサーバとの間で手続き呼
出しを可能にするインタフェース定義言語仕様ファイル
を翻訳することによって、クライアントスタブを生成す
るスタブ生成方法において、 前記インタフェース定義言語仕様ファイルが、前記クラ
イアントにより呼出される手続きの処理時間に関する情
報をインタフェース定義言語の拡張属性として含むファ
イルからなり、 前記スタブ生成方法が、 前記インタフェース定義言語仕様ファイルから、該イン
タフェース定義言語仕様ファイルで定義されている手続
きの処理時間を認識する処理時間認識工程と、 予め準備された互いに異なる少なくとも二つのスタブ生
成プロセスの中から、前記処理時間認識工程で認識され
た処理時間に基づいて、一つのスタブ生成プロセスを選
択するプロセス選択工程と、を含み、 前記クライアントスタブが、前記プロセス選択工程で選
択されたスタブ生成プロセスに従って生成されることを
特徴とするスタブ生成方法。 - 【請求項10】 前記クライアントにより呼出される手
続きの処理時間が、所定の基準に対して長時間であると
判断される長時間グループと短時間であると判断される
短時間グループの何れかに分類されて前記インタフェー
ス定義言語の拡張属性として前記インタフェース定義言
語仕様ファイルに記述され、 前記処理時間認識工程が、インターフェース定義言語仕
様ファイルに定義されている手続きの中に、長時間グル
ープに分類された処理時間の手続きがあるか否かを判別
する時間グループ判別工程を含み、 前記スタブ生成方法が、前記時間グループ判別工程で長
時間グループの処理時間の手続きがあると判別されたと
き、前記インタフェース定義言語仕様ファイルにより定
義された各手続きの処理時間が前記長時間グループと前
記短時間グループのどちらのグループに分類されたかを
表す情報を記憶したテーブルをクライアントスタブに作
成するテーブル作成工程を含むことを特徴とする請求項
9記載のスタブ生成方法。 - 【請求項11】 クライアントとサーバとの間で遠隔手
続き呼出しを可能にするインタフェース定義言語仕様フ
ァイルを翻訳することによって、サーバスタブを生成す
るスタブ生成方法において、 前記インタフェース定義言語仕様ファイルが、前記サー
バにより実行される手続きの処理時間に関する情報をイ
ンタフェース定義言語の拡張属性として含むファイルか
らなり、 前記スタブ生成方法が、 前記インタフェース定義言語仕様ファイルから、該イン
タフェース定義言語仕様ファイルで定義されている手続
きの処理時間を認識する処理時間認識工程と、 予め準備された互いに異なる少なくとも二つのスタブ生
成プロセスの中から、前記処理時間認識工程で認識され
た処理時間に基づいて、一つのスタブ生成プロセスを選
択するプロセス選択工程と、を含み、 前記サーバスタブが、前記プロセス選択工程で選択され
たスタブ生成プロセスに従って生成されることを特徴と
するスタブ生成方法。 - 【請求項12】 前記サーバにより実行される手続きの
処理時間が、所定の基準に対して長時間であると判断さ
れる長時間グループと短時間であると判断される短時間
グループの何れかに分類されて前記インタフェース定義
言語の拡張属性として前記インタフェース定義言語仕様
ファイルに記述され、 前記処理時間認識工程が、インターフェース定義言語仕
様ファイルに定義されている手続きの中に、長時間グル
ープに分類された処理時間の手続きがあるか否かを判別
する時間グループ判別工程を含み、 前記スタブ生成方法が、前記時間グループ判別工程で長
時間グループの処理時間の手続きがあると判別されたと
き、前記インタフェース定義言語仕様ファイルにより定
義された各手続きの処理時間が前記長時間グループと前
記短時間グループのどちらのグループに分類されたかを
表す情報を記憶したテーブルをサーバスタブに作成する
テーブル作成工程を含むことを特徴とする請求項11記
載のスタブ生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10053643A JPH11249919A (ja) | 1998-03-05 | 1998-03-05 | 手続き呼出しの処理方法およびスタブ生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10053643A JPH11249919A (ja) | 1998-03-05 | 1998-03-05 | 手続き呼出しの処理方法およびスタブ生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH11249919A true JPH11249919A (ja) | 1999-09-17 |
Family
ID=12948589
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10053643A Pending JPH11249919A (ja) | 1998-03-05 | 1998-03-05 | 手続き呼出しの処理方法およびスタブ生成方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH11249919A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005276175A (ja) * | 2004-02-13 | 2005-10-06 | Microsoft Corp | 拡張性のあるプリントスプーラ |
JP2006260549A (ja) * | 2005-02-21 | 2006-09-28 | Central Res Inst Of Electric Power Ind | モバイルエージェント移動の高速化方法、モバイルエージェントの移動の高速化システム及び移動高速化モバイルエージェントによる事故区間分離処理方法 |
US7318083B2 (en) | 2001-08-27 | 2008-01-08 | Ricoh Company, Ltd. | Information processing system |
JP2011065433A (ja) * | 2009-09-17 | 2011-03-31 | Nec Corp | Tat測定装置、tat測定方法およびtat測定プログラム |
-
1998
- 1998-03-05 JP JP10053643A patent/JPH11249919A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7318083B2 (en) | 2001-08-27 | 2008-01-08 | Ricoh Company, Ltd. | Information processing system |
JP2005276175A (ja) * | 2004-02-13 | 2005-10-06 | Microsoft Corp | 拡張性のあるプリントスプーラ |
JP2006260549A (ja) * | 2005-02-21 | 2006-09-28 | Central Res Inst Of Electric Power Ind | モバイルエージェント移動の高速化方法、モバイルエージェントの移動の高速化システム及び移動高速化モバイルエージェントによる事故区間分離処理方法 |
JP2011065433A (ja) * | 2009-09-17 | 2011-03-31 | Nec Corp | Tat測定装置、tat測定方法およびtat測定プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5724512A (en) | Methods and apparatus for storage and retrieval of name space information in a distributed computing system | |
US6253252B1 (en) | Method and apparatus for asynchronously calling and implementing objects | |
US7210148B2 (en) | Method and apparatus for dynamic distributed computing over a network | |
US6470346B2 (en) | Remote computation framework | |
US6470375B1 (en) | System and method for managing the execution of system management tasks | |
US6189046B1 (en) | Mechanism and method for merging cached location information in a distributed object environment | |
CA2443839C (en) | System, method, and article of manufacture for using a replaceable component to select a replaceable quality of service capable network communication channel component | |
JPH0656600B2 (ja) | 分散不均一環境におけるサーバー機能の実行方法及び装置 | |
JPH1083308A (ja) | スタブ検索及びローディング・サブシステム、スタブ検索及びローディング方法並びにスタブ検索及びローディング用記録媒体 | |
JPH0283627A (ja) | インタプリタ | |
JPH0664559B2 (ja) | クライアントインターフェースをアプリケーションのオブジェクト指向呼出しに対処するための方法及び装置 | |
JPH0743686B2 (ja) | 分散不均一環境におけるアプリケーションの動的呼出しの方法及び装置 | |
KR20010034542A (ko) | 네트워크를 통한 동적 분산 컴퓨팅 방법 및 장치 | |
US11321090B2 (en) | Serializing and/or deserializing programs with serializable state | |
US5943674A (en) | Data structure representing an interface definition language source file | |
Huang | JISGA: A Jini-based service-oriented Grid architecture | |
JP2000515279A (ja) | プロキシーおよびメモリ割当てを使用して分散オブジェクト呼出しを実行するための方法および装置 | |
CN116362336B (zh) | 一种模型推理交互方法、电子设备、可读存储介质 | |
JPH11249919A (ja) | 手続き呼出しの処理方法およびスタブ生成方法 | |
KR20100089831A (ko) | 관리 자바빈 객체들의 생성 및 관리 | |
JPH08123699A (ja) | 並行処理方法、並行処理システム及び並行処理用プログラムの変換ツール | |
Taveira et al. | Asynchronous Remote Method Invocation in Java. | |
JP3007340B1 (ja) | 機能呼び出し方法、並列分散処理システムおよびコンピュータ | |
Robinson et al. | Distributed process creation within a shared data space framework | |
JP2000148460A (ja) | プログラム変換方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20040621 |