(57)【要約】【課題】通信コストをより削減することを目的とする。【解決手段】一の処理部が設けられ、一の処理部から他の処理部の処理を呼び出す通信装置が、一の処理部と他の処理部との間の通信路特性を取得し、通信路特性に基づいて、リクエストメッセージ用領域を確保するとともに、リクエストメッセージを作成し、通信路特性に基づいて、リクエストメッセージ、又はリクエストメッセージの通知を他の処理部に送信し、リクエストメッセージに対するリプライメッセージ、又はリプライメッセージの通知を他の処理部から受信し、通信路特性に応じてリクエストメッセージ用領域を解放することによって課題を解決する。【選択図】図１
2013050911.tif 000002
【特許請求の範囲】
【請求項１】
一の処理部が設けられ、前記一の処理部から他の処理部の処理を呼び出す通信装置であって、
前記一の処理部と前記他の処理部との間の通信路特性を取得する取得手段と、
前記通信路特性に基づいて、リクエストメッセージ用領域を確保するとともに、リクエストメッセージを作成する作成手段と、
前記通信路特性に基づいて、前記リクエストメッセージ、又は前記リクエストメッセージの通知を前記他の処理部に送信する送信手段と、
前記リクエストメッセージに対するリプライメッセージ、又は前記リプライメッセージの通知を前記他の処理部から受信する受信手段と、
前記通信路特性に応じて前記リクエストメッセージ用領域を解放する解放手段と、を有することを特徴とする通信装置。
【請求項２】
通信路特性を取得する取得手段と、
前記取得手段で取得された通信路特性に応じてパラメータを選択する選択手段と、
前記選択手段で選択されたパラメータに応じて前記パラメータを扱うメモリの領域を確保する手段と、を有することを特徴とする通信装置。
【請求項３】
通信路特性を取得する取得工程と、
前記取得工程で取得された通信路特性に応じてパラメータを選択する選択工程と、
前記選択工程で選択されたパラメータに応じて前記パラメータを扱うメモリの領域を確保する工程と、を有することを特徴とする通信方法。
【請求項４】
請求項３記載の通信方法の各工程をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信方法、及びプログラムに関する。
【背景技術】
【０００２】
製品の多様化、機能の複雑化、ソフトウェアの肥大化の傾向が続く現在のシステム開発において、ソフトウェアは、役割の観点で分割され、ドメイン毎の開発が行われる。さらに、ソフトウェアをソフトウェア部品（コンポーネント）として再利用して開発の効率化、品質の向上を実現していくコンポーネント開発が注目されている。
近年、製品の要件やハードウェアの特性に応じて１つの機器内で複数のプロセッサ（ＣＰＵ等）、オペレーティングシステム（ＯＳ）等を用いて開発することが一般的となっている。この場合には、機器内においても分散環境下でのコンポーネント開発が必要となっている。
【０００３】
一般に、分散環境下の異なるＣＰＵ／ＯＳ上でコンポーネント開発をする場合には、コンポーネント開発ミドルウェア上で開発が行われる。コンポーネント開発ミドルウェアは、環境間のデータ表現形式（バイトオーダ、アラインメント）の差異の吸収処理（データマーシャリング）、ＣＰＵやプロセスが異なるコンポーネント間のサービス呼出し等をサポートする。代表的なコンポーネント開発ミドルウェアとしてはＳｕｎＲＰＣ、ＣＯＲＢＡ（Common Object Request Broker Architecture）がある。
例えば、コンポーネント開発ミドルウェアでは、ユーザ定義関数インターフェイスによるコンポーネント間通信の処理（遠隔手続き呼出し）、通信時のデータマーシャリングをサポートしている。コンポーネント開発ミドルウェアの利用によりコンポーネントの位置透過性が実現され、開発者は、遠隔手続き呼出しにより同一プロセス内の関数を実行するのと同様に分散環境にあるサービスを利用することが可能となる。コンポーネント開発ミドルウェアによる遠隔手続き呼出しによって、コンポーネントのアプリケーションロジックと開発環境固有の実装とを切り離し、開発のし易さとコンポーネントの再利用性とを向上させている。
【０００４】
しかしながら、遠隔手続き呼出しは、通常の関数呼出しと比較して通信によるオーバヘッドをより考慮する必要がある。
遠隔手続き呼出しの内部処理では、「コンポーネント間の通信処理」及び「データマーシャリング」が行われている。そのため、同一プロセス内の関数を実行する場合と比較して実行に時間が掛かるだけではなく、頻繁に呼出しを行うとシステム全体のスループットの低下にもつながる。一般的なコンポーネント開発ミドルウェアでは、引数パラメータが通信標準フォーマットに変換されてメッセージの交換が行われる。しかしながら、通信標準フォーマットを利用する方法では、送信時、受信時にそれぞれデータ変換処理が必要であり、通信コストとなる。
【０００５】
本課題を解決する手法として、下記の技術が開示されている。即ち、遠隔手続き呼出しのリクエスト時に通信元と通信先のデータ表現形式が同一かを判定し、データ表現形式が異なる場合は所定のフォーマットに変換して送信し、データ表現形式が同一の場合は変換を行わずに送信する技術が開示されている（特許文献１参照）。
また、クライアントアプリケーションへの返信パラメータの変換処理タイミングをクライアントアプリケーションがパラメータへアクセスしたタイミングまで遅延して不要なデータ変換オーバヘッドを削減する技術が開示されている（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第２７６５４９３号公報
【特許文献２】特開２００８−１６５３４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで、一般に、サーバアプリケーションは、通信路が異なる複数の分散クライアントアプリケーションからリクエストを受け付ける。しかしながら、従来技術では、通信毎にクライアントアプリケーション及びサーバアプリケーション間で送受信に係る制御が実施されないので、通信コストが高くなるおそれがある。
【０００８】
本発明はこのような問題点に鑑みなされたもので、通信コストをより削減することを目的とする。
【課題を解決するための手段】
【０００９】
そこで、本発明に係る通信装置は、一の処理部が設けられ、前記一の処理部から他の処理部の処理を呼び出す通信装置であって、前記一の処理部と前記他の処理部との間の通信路特性を取得する取得手段と、前記通信路特性に基づいて、リクエストメッセージ用領域を確保するとともに、リクエストメッセージを作成する作成手段と、前記通信路特性に基づいて、前記リクエストメッセージ、又は前記リクエストメッセージの通知を前記他の処理部に送信する送信手段と、前記リクエストメッセージに対するリプライメッセージ、又は前記リプライメッセージの通知を前記他の処理部から受信する受信手段と、前記通信路特性に応じて前記リクエストメッセージ用領域を解放する解放手段と、を有することを特徴とする。
【００１０】
また、本発明は、システム、記憶媒体等としてもよい。
【発明の効果】
【００１１】
本発明によれば、通信コストをより削減することができる。
【図面の簡単な説明】
【００１２】
【図１】実施形態に係る構成の一例を示す図である。
【図２】システムの一例を示す図である。
【図３】遠隔手続き呼出しのインターフェイスの一例を示す図である。
【図４】通信路特性判定処理に係るフローチャートの一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態について図面に基づいて説明する。なお、実施形態は、本発明を限定するものではなく、また、実施形態で説明されている全ての構成が本発明の課題を解決するための手段に必須であるとは限らない。
【００１４】
＜第１の実施形態＞
本実施形態は、ＣＰＵ、プロセス等をまたがる分散環境下のコンポーネント間の通信で利用される遠隔手続き呼出しにおける通信装置等に関するものである。
本実施形態では、プロセス内の通信の場合にはヒープメモリ、マシン内のプロセス間の通信の場合には共有メモリ、マシンを跨ぐ場合にはネットワークを通信路として利用する分散環境用の通信ミドルウェアを利用する場合を説明する。
本実施形態について、図１、図２、図３、及び図４を用いて説明する。
図１は、クライアントスタブ１０３、及びサーバスタブ１１３に含まれる本実施形態を実現する構成の一例を示す図である。通信路情報取得部１０５は、コンポーネント（処理部の一例）の接続時に、クライアントスタブ１０３のＩＰアドレス及びプロセスＩＤとサーバスタブ１１３のＩＰアドレス及びプロセスＩＤとを取得する。通信路特性判定部１０４は、取得された各ＩＰアドレス、及び各プロセスＩＤを比較し、通信路特性を決定（取得）する。なお、その他の構成については、後述の実施例において説明する。
【００１５】
図２は、本実施形態に係るシステムの一例を示す図である。図２において、ノードＡ２０１及びノードＢ２０６は、マシンノードを表している。ノードＡ２０１及びノードＢ２０６の各々は、情報処理装置（コンピュータ）の一例である。
ここで、情報処理装置は、制御装置、記憶装置、入力装置、出力装置等を含んで構成される。なお、各装置は、互いに通信可能に構成され、バス等により接続されている。制御装置は、ＣＰＵ（Central Processing Unit）等であり、情報処理装置の動作をコントロールし、記憶装置に格納されたプログラムの実行等を行う。記憶装置は、磁気記憶装置、半導体メモリ等のストレージデバイスであり、制御装置の動作に基づき読み込まれたプログラム、長時間記憶しなくてはならないデータ等を記憶する。
【００１６】
本実施形態では、制御装置が、記憶装置に格納されたプログラムの手順に従って処理を行うことによって、情報処理装置における機能及び後述のフローチャートに係る処理が実現される。なお、情報処理装置における機能、後述するフローチャートに係る処理の一部、又は全部を専用のハードウェアを用いて構成してもよい。入力装置は、マウス、キーボード、タッチパネルデバイス、ボタン等であり、各種の指示を入力する。出力装置は、液晶パネル、外部モニタ等であり、各種の情報を出力する。
なお、情報処理装置のハードウェア構成は、上述した構成に限られるものではない。例えば、情報処理装置は、各種の外部の装置と通信を行うためのＩ／Ｏ装置を含んで構成されてもよい。Ｉ／Ｏ装置は、メモリーカード、ＵＳＢケーブル等の入出力部、有線、無線等による送受信部である。また、例えば、情報処理装置は、Ｉ／Ｏ装置を有することで、入力装置や出力装置を有していなくてもよい。
【００１７】
プロセスａ２０２、プロセスｂ２０７、及びプロセスｃ２１１は、アプリケーションプロセスを表している。
サーバアプリケーションｃ２１２は、サーバスタブ２１３を介して遠隔手続き呼出しにより機能を提供する。クライアントアプリケーションａ２０３は、クライアントスタブ２０４を介してサーバアプリケーションｃ２１２を利用する。クライアントアプリケーションｂ２０８は、クライアントスタブ２０９を介してサーバアプリケーションｃ２１２を利用する。クライアントアプリケーションｃ２１４は、クライアントスタブ２１５を介してサーバアプリケーションｃ２１２を利用する。
【００１８】
各プロセス内部には、ヒープメモリａ２０５、ヒープメモリｂ２１０、ヒープメモリｃ２１６が存在する。ノードＢ２０６は、プロセス間通信に利用可能な共有メモリ２１７を備える。ノード間は、ネットワーク２１８により接続される。本実施形態の遠隔手続き呼出しでは、通信ミドルウェア２１９によりプロセス内、プロセス間、ノード間の通信に以下の通信路が利用される。より具体的には、通信ミドルウェア２１９は、プロセス内の遠隔手続き呼出し通信には、ヒープメモリｃ２１６を利用する。通信ミドルウェア２１９は、プロセス間の遠隔手続き呼出し通信には、共有メモリ２１７を利用する。通信ミドルウェア２１９は、ノード間の遠隔手続き呼出し通信には、ネットワーク２１８を利用する。
ここで、クライアントスタブ（２０４、２０９、２１５）は、図１のクライアントスタブ１０３と対応する。また、サーバスタブ２１３は、図１のサーバスタブ１１３と対応する。
【００１９】
図３は、本実施形態に係る遠隔手続き呼出しのインターフェイスの一例（ユーザ定義関数インターフェイス）を示す図である。本実施形態のクライアントスタブ（２０４、２０９、２１５）及びサーバスタブ２１３は、ユーザ定義関数インターフェイスに基づいて作成される。
本ユーザ定義関数インターフェイスには、戻り値がなく、ユーザ定義関数インターフェイスは、引数パラメータを４つ有するｒｐｃＦｕｎｃｔｉｏｎ関数を定義している。
「ｐ１、ｐ２、ｐ３、ｐ４」は、パラメータの名称を表す。「ＴＹＰＥ１、ＴＹＰＥ２、ＴＹＰＥ３、ＴＹＰＥ４」は、データ型の名称を表す。「ＩＮ」は、続くパラメータが送信パラメータであることを指定する。「ＯＵＴ」は、続くパラメータが受信パラメータであることを指定する。「ＩＮＯＵＴ」は、続くパラメータが送受信パラメータであることを指定する。
【００２０】
図４は、通信路特性判定処理に係るフローチャートの一例を示す図である。まず、通信路特性判定部１０４は、コンポーネントの接続時、サーバアプリケーション１１１が同一マシンに存在するか否かを判断する（Ｓ４０１）。このとき、通信路特性判定部１０４は、存在すると判断した場合、Ｓ４０２に処理を移し、他方、存在しないと判断した場合、Ｓ４０３に処理を移す。
Ｓ４０２では、通信路特性判定部１０４は、サーバアプリケーション１１１が同一プロセスに存在するか否かを判断する。このとき、通信路特性判定部１０４は、存在すると判断した場合、Ｓ４０４に処理を移し、他方、存在しないと判断した場合、Ｓ４０５に処理を移す。
Ｓ４０３では、通信路特性判定部１０４は、メモリを共有することができないと判定し、処理を終了する。Ｓ４０４では、通信路特性判定部１０４は、同一アドレス空間のメモリを利用できると判定し、処理を終了する。Ｓ４０５では、通信路特性判定部１０４は、共有のメモリを利用できると判断し、処理を終了する。
【００２１】
＜第１の実施例＞
以下では、クライアントアプリケーションのＩＰアドレス及びプロセスＩＤとサーバアプリケーションのＩＰアドレス及びプロセスＩＤとが共に一致する場合を想定して本実施形態を説明する。即ち、クライアントアプリケーションｃ２１４、サーバアプリケーションｃ２１２等を例に挙げて適宜説明する。
クライアントスタブ２１５及びサーバスタブ２１３の接続時、通信路特性判定部１０４は、まず、サーバアプリケーションｃ２１２がクライアントアプリケーションｃ２１４と同一マシン上に存在すると判定する（Ｓ４０１）。次に、通信路特性判定部１０４は、サーバアプリケーションｃ２１２がクライアントアプリケーションｃ２１４と同一プロセス上に存在すると判定し（Ｓ４０２）、通信用に同一アドレス空間のメモリ（ヒープメモリｃ２１６）を利用可能と判定する（Ｓ４０４）。
【００２２】
また、リクエストメッセージ作成部１０６は、リクエストパラメータを選択してリクエストメッセージを作成する。本実施例では、リクエストメッセージ作成部１０６は、リクエストパラメータとして通信路特性、送信パラメータ「ｐ１、ｐ２」、受信パラメータ「ｐ３」、送受信パラメータ「ｐ４」を選択する。そして、リクエストメッセージ作成部１０６は、通信路特性（通信路特性情報）のデータサイズ分のヒープメモリｃ２１６の領域を確保して通信路特性情報を当該領域にコピーする。
また、リクエストメッセージ作成部１０６は、パラメータ渡し方法が値渡しのｐ１パラメータのデータサイズ分のヒープメモリｃ２１６の領域を確保してｐ１パラメータデータを当該領域にコピーする。また、リクエストメッセージ作成部１０６は、パラメータ渡し方法が参照渡しｐ２、ｐ３、ｐ４パラメータのアドレス値分のヒープメモリｃ２１６の領域を確保してアドレス値を当該領域にコピーする。
リクエストメッセージ送信部１０７は、リクエストメッセージ受信部１１８に通知を行い、リクエストメッセージ用領域を解放せずに処理を完了する。例えば、リクエストメッセージに係るデータを記憶する領域（例えば、上述のように確保された３つの領域）をリクエストメッセージ用領域と称する。
【００２３】
リクエストメッセージ受信部１１８は、リクエストメッセージ作成部１０６が作成したヒープメモリｃ２１６の領域の内容をリクエストメッセージとしてリクエストパラメータ取得部１１７を実行する。リクエストパラメータ取得部１１７は、通信路特性により、通信路が同一アドレス空間のメモリ（ヒープメモリｃ２１６）であることを判定する。また、リクエストパラメータ取得部１１７は、ｐ１の値、ｐ２のアドレス値、ｐ３のアドレス値、ｐ４のアドレス値を引数として遠隔手続実行部１１６により遠隔手続きを実行する。
リプライメッセージ作成部１１４は、通信路特性により、通信路が同一アドレス空間のメモリ（ヒープメモリｃ２１６）であることを判定する。リプライメッセージ作成部１１４は、リクエストメッセージ作成部１０６が確保したヒープメモリｃ２１６の領域（リクエストメッセージ用領域）をリプライメッセージ用領域としてリプライメッセージ送信部１１５を実行する。リプライメッセージ送信部１１５は、リプライメッセージ受信部１０９に通知を行い、リプライメッセージ用領域を解放せずに処理を完了する。
【００２４】
リプライパラメータ取得部１０８は、通信路特性により、通信路が同一アドレス空間のメモリ（ヒープメモリｃ２１６）であることを判定する。そして、リプライパラメータ取得部１０８は、リクエストメッセージ作成部１０６が確保したメモリの領域（リプライメッセージ用領域）を解放してクライアントアプリケーションｃ２１４にリターンする。
このように、通信路特性判定部１０４は、クライアントスタブ２１５及びサーバスタブ２１３の接続時、ヒープメモリｃ２１６を利用することを判定するので、通信路に合わせた遠隔手続き呼出しが可能となる。本実施例の場合、ポインタ渡しが指定されたパラメータ「ｐ２、ｐ３、ｐ４」は、クライアントアプリケーションｃ２１４が用意したデータ領域バッファのアドレス値をサーバアプリケーションｃ２１２に直接渡す。そのため、ポインタ渡しデータを通信路上で転送するコストを削減することができる。
また、本実施例では、送信と受信とで同一のメモリの領域を参照可能であることを事前に判断している。故に、本実施例では、全パラメータ分のメモリの領域を予め確保することによって、メモリ確保処理／メモリ解放処理をそれぞれ一回に抑えて通信コストを削減することができる。
【００２５】
＜第２の実施例＞
以下では、クライアントアプリケーションのＩＰアドレスとサーバアプリケーションのＩＰアドレスとが一致し、クライアントアプリケーションのプロセスＩＤとサーバアプリケーションのプロセスＩＤとが一致しない場合を想定して本実施形態を説明する。即ち、クライアントアプリケーションｂ２０８、サーバアプリケーションｃ２１２等を例に挙げて適宜説明する。
クライアントスタブ２０９及びサーバスタブ２１３の接続時、通信路特性判定部１０４は、まず、サーバアプリケーションｃ２１２がクライアントアプリケーションｂ２０８と同一マシン上に存在すると判定する（Ｓ４０１）。次に、通信路特性判定部１０４は、サーバアプリケーションｃ２１２がクライアントアプリケーションｂ２０８と異なるプロセス上に存在すると判定し（Ｓ４０２）、通信用にプロセス間の共有のメモリ（共有メモリ２１７）を利用可能と判定する（Ｓ４０５）。
【００２６】
また、リクエストメッセージ作成部１０６は、リクエストパラメータを選択してリクエストメッセージを作成する。本実施例では、リクエストメッセージ作成部１０６は、リクエストパラメータとして通信路特性、送信パラメータ「ｐ１、ｐ２」、受信パラメータ「ｐ３」、送受信パラメータ「ｐ４」を選択する。
そして、リクエストメッセージ作成部１０６は、通信路特性および各パラメータのデータサイズ分のリクエストメッセージ用領域を共有メモリ２１７に確保し、送信パラメータおよび送受信パラメータのデータをリクエストメッセージ用領域にコピーする。また、リクエストメッセージ送信部１０７は、リクエストメッセージ受信部１１８に通知を行い、リクエストメッセージ用領域を解放せずに処理を完了する。
【００２７】
リクエストメッセージ受信部１１８は、リクエストメッセージ作成部１０６が作成した共有メモリ２１７の領域の内容をリクエストメッセージとしてリクエストパラメータ取得部１１７を実行する。リクエストパラメータ取得部１１７は、通信路特性により、通信路がプロセス間の共有のメモリ（共有メモリ２１７）であることを判定する。また、リクエストパラメータ取得部１１７は、ｐ１の値、ｐ２のアドレス値、ｐ３のアドレス値、ｐ４のアドレス値を引数として遠隔手続実行部１１６により遠隔手続きを実行する。
リプライメッセージ作成部１１４は、通信路特性により、通信路がプロセス間の共有のメモリ（共有メモリ２１７）であることを判定する。リプライメッセージ作成部１１４は、リクエストメッセージ作成部１０６が確保した共有メモリ２１７の領域（リクエストメッセージ用領域）をリプライメッセージ用領域としてリプライメッセージ送信部１１５を実行する。リプライメッセージ送信部１１５は、リプライメッセージ受信部１０９に通知を行い、リプライメッセージ用領域を解放せずに処理を完了する。
【００２８】
リプライパラメータ取得部１０８は、通信路特性により、通信路がプロセス間の共有のメモリ（共有メモリ２１７）であることを判定する。そして、リプライパラメータ取得部１０８は、リクエストメッセージ作成部１０６が確保したメモリの領域を解放してクライアントアプリケーションｂ２０８にリターンする。
このように、通信路特性判定部１０４は、クライアントスタブ２０９及びサーバスタブ２１３の接続時、共有メモリ２１７を利用することを判定するので、通信路に合わせた遠隔手続き呼出しが可能となる。また、本実施例では、送信と受信とで同一のメモリの領域を参照可能であることを事前に判断している。故に、本実施例では、全パラメータ分のメモリの領域を予め確保することによって、メモリ確保処理／メモリ解放処理をそれぞれ一回に抑えて通信コストを削減することができる。
【００２９】
＜第３の実施例＞
以下では、クライアントアプリケーションのＩＰアドレス及びプロセスＩＤとサーバアプリケーションのＩＰアドレス及びプロセスＩＤとが共に一致しない場合を想定して本実施形態を説明する。即ち、クライアントアプリケーションａ２０３、サーバアプリケーションｃ２１２等を例に挙げて適宜説明する。
クライアントスタブ２０４及びサーバスタブ２１３の接続時、通信路特性判定部１０４は、まず、サーバアプリケーションｃ２１２が異なるマシン上に存在すると判定し（Ｓ４０１）、通信用にメモリを共有できないと判定する（Ｓ４０３）。
【００３０】
また、リクエストメッセージ作成部１０６は、リクエストパラメータを選択してリクエストメッセージを作成する。本実施例では、リクエストメッセージ作成部１０６は、リクエストパラメータとして通信路特性、送信パラメータ「ｐ１、ｐ２」、送受信パラメータ「ｐ４」を選択する。そして、リクエストメッセージ作成部１０６は、通信路特性および各パラメータのデータサイズのリクエストメッセージ用領域を確保して送信パラメータおよび送受信パラメータのデータをリクエストメッセージ用領域にコピーする。
リクエストメッセージ送信部１０７は、リクエストメッセージをリクエストメッセージ受信部１１８へ送信し、リクエストメッセージ用領域を解放する。
【００３１】
リクエストメッセージ受信部１１８は、パラメータｐ１、ｐ２、ｐ３、ｐ４の値分のリクエストメッセージ用領域を作成する。リクエストメッセージ受信部１１８は、受信した送信パラメータのデータと送受信パラメータのデータとをリクエストメッセージ用領域へコピーしてリクエストパラメータ取得部１１７を実行する。
リクエストパラメータ取得部１１７は、通信路特性により、通信路でメモリを共有できないと判定する。リクエストパラメータ取得部１１７は、ｐ１の値、ｐ２のアドレス値、ｐ３のアドレス値、ｐ４のアドレス値を引数として遠隔手続実行部１１６により遠隔手続きを実行する。
リプライメッセージ作成部１１４は、通信路特性により、通信路でメモリを共有できないと判定する。リプライメッセージ作成部１１４は、リクエストメッセージ受信部１１８が確保したメモリの領域から受信パラメータ「ｐ３」、送受信パラメータ「ｐ４」を選択してリプライメッセージを作成し、リプライメッセージ送信部１１５を実行する。リプライメッセージ送信部１１５は、リプライメッセージ受信部１０９へリプライメッセージを送信し、リプライメッセージ用領域を解放する。
【００３２】
リプライパラメータ取得部１０８は、通信路特性により、通信路でメモリを共有できないと判定する。リプライパラメータ取得部１０８は、受信パラメータのデータ、及び送受信パラメータのデータをクライアントアプリケーションａ２０３から指定されたバッファへコピーする。そして、リプライパラメータ取得部１０８は、受信の際に用いられたリプライメッセージ用領域を解放してクライアントアプリケーションａ２０３にリターンする。
このように、通信路特性判定部１０４は、クライアントスタブ２０４及びサーバスタブ２１３の接続時、通信用にメモリを共有できないことを判定するので、通信路に合わせた遠隔手続き呼出しが可能となる。本実施例の場合、送信および受信それぞれで必要なデータのみを通信することによって、ネットワーク通信のオーバヘッドを削減することができる。
【００３３】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
なお、本発明はコンピュータ内のプログラムによっても実行することができることは当然である。
【００３４】
上述した実施形態では、通信路の特性に応じて送受信するパラメータを選択することにより、通信量、データ変換の量、頻度を削減して通信コストを削減することができる。
また、上述した実施形態では、通信を効率化するために、クライアントスタブ及びサーバスタブ間でメモリを共有できるかを判定し、通信するデータを選択する。この際、メモリを共有できないネットワークを跨ぐ通信の場合、送受信時には、それぞれ必要なデータのみを通信することで通信量、データ変換の量を削減することが可能となる。他方、メモリを共有できる場合、送信／受信／送受信するパラメータを扱う領域を一度に確保することによってメモリの確保処理／解放処理を削減して通信コストを削減することができる。
【００３５】
また、上述した実施形態では、通信時に通信路の種別から判定される通信路特性に応じてどのパラメータを送受信するのが効率的であるかを選択する。そのため、クライアントアプリケーションが複数存在する場合にも必要なパラメータのみを送受信し、通信コストを削減して効率的に通信することが可能となる。また、通信路特性に応じて通信メモリを再利用して通信し、メモリ獲得解放コストを削減することができる。
また、上述した実施形態によれば、遠隔手続き呼出しで送受信するパラメータをクライアントスタブ及びサーバスタブ間の通信路の種別に応じて選択し、通信コストを削減することができる。
また、上述した実施形態の構成によれば、通信コストをより削減することができる。
【００３６】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００３７】
１０１  クライアントアプリケーション、  １０３  クライアントスタブ、  １１０  通信路、  １１１  サーバアプリケーション、  １１３  サーバスタブ
【図１】
2013050911.tif 000003
【図２】
2013050911.tif 000004
【図３】
2013050911.tif 000005
【図４】
2013050911.tif 000006