(57)【要約】【課題】  遠隔手続きに含まれるローカル関数及びリモート関数を判別し、ローカル関数はローカルノードで、リモート関数はリモートノードで実行する機能をクライアントスタブ、サーバスケルトンに埋め込むことで、遠隔手続き呼び出しを利用するときに必要になる作業工数を減らす。【解決手段】  クライアントアプリケーションからの遠隔手続き呼び出しの要求を送信し、遠隔手続きからのローカル関数呼び出しの要求を受信して実行するクライアントスタブと、クライアントスタブからの遠隔手続き要求を受信して実行し、遠隔手続き処理からのローカル関数要求を送信するサーバスタブから構成され、ローカル関数呼び出しを含む遠隔手続き処理を実行するアプリケーション作成装置等を提供する。【選択図】  図１
2005352891.tif 000002
【特許請求の範囲】
【請求項１】
単独で動作するアプリケーションを分割してクライアント／サーバ型アプリケーションを作成するクライアント／サーバアプリケーション作成装置であって、
指定された関数インタフェースとアプリケーションのソースコードを基にクライアントスタブを生成する手段と、
サーバスケルトンからの手続き実行要求を処理する機能をクライアントスタブに自動的に組み込む手段と、
指定された関数インタフェースとアプリケーションのソースコードを基にサーバスケルトンを生成する手段と、
クライアントスタブへの手続き実行を要求する機能をサーバスケルトンに自動的に組み込む手段とを備えることを特徴とするクライアント／サーバアプリケーション作成装置。
【請求項２】
前記サーバスケルトンに自動的に組み込まれるクライアントスタブへの手続き実行を要求する機能には、ユーザ定義のローカル関数実行要求を含み、前記クライアントスタブに自動的に組み込まれるサーバスケルトンからの手続き実行要求を処理する機能は、ユーザ定義のローカル関数の実行要求を処理する機能を含むことを特徴とする請求項１に記載のクライアント／サーバアプリケーション作成装置。
【請求項３】
単独で動作するアプリケーションを分割してクライアント／サーバ型アプリケーションを作成するクライアント／サーバアプリケーション作成方法であって、
指定された関数インタフェースとアプリケーションのソースコードを基にクライアントスタブを生成する工程と、
サーバスケルトンからの手続き実行要求を処理する機能をクライアントスタブに自動的に組み込む工程と、
指定された関数インタフェースとアプリケーションのソースコードを基にサーバスケルトンを生成する工程と、
クライアントスタブへの手続き実行を要求する機能をサーバスケルトンに自動的に組み込む工程とを有することを特徴とするクライアント／サーバアプリケーション作成方法。
【請求項４】
前記サーバスケルトンに自動的に組み込まれるクライアントスタブへの手続き実行を要求する機能には、ユーザ定義のローカル関数実行要求を含み、前記クライアントスタブに自動的に組み込まれるサーバスケルトンからの手続き実行要求を処理する機能は、ユーザ定義のローカル関数の実行要求を処理する機能を含むことを特徴とする請求項３に記載のクライアント／サーバアプリケーション作成方法。
【請求項５】
単独で動作するアプリケーションを分割してクライアント／サーバ型アプリケーションを作成する処理をコンピュータに実行させるコンピュータプログラムであって、
指定された関数インタフェースとアプリケーションのソースコードを基にクライアントスタブを生成する処理と、
サーバスケルトンからの手続き実行要求を処理する機能をクライアントスタブに自動的に組み込む処理と、
指定された関数インタフェースとアプリケーションのソースコードを基にサーバスケルトンを生成する処理と、
クライアントスタブへの手続き実行を要求する機能をサーバスケルトンに自動的に組み込む処理とをコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介する遠隔手続き呼び出しを用いたクライアント／サーバシステムで利用される遠隔手続き呼び出しプログラムを生成するクライアント／サーバアプリケーション作成装置、方法、及びコンピュータプログラムに関する。
【背景技術】
【０００２】
アプリケーションに含まれるユーザ定義関数を異なるノードで分散実行させる方法として遠隔手続きがある。Sun Microsystems社のRPC(Remote Procedure Call)、OSF(Open Software Foundation)のDCE RPC (Distributed Computing Environment Remote Procedure Call)は遠隔手続きの中でも広く知られている例である。
【０００３】
ユーザは、インタフェース定義言語IDL(Interface Definition Language)で遠隔実行したい関数インタフェースを記述し、このインタフェース定義をIDLコンパイラの入力としてクライアントスタブ、サーバスケルトンを生成する（図１０）。
【０００４】
生成されたクライアントスタブとクライアントアプリケーションのソースコードをコンパイル、リンクしてクライアント側の実行形式を作成する。同様にサーバスケルトンとサーバアプリケーションのソースコードをコンパイル、リンクしてサーバ側の実行形式を作成する。
【０００５】
クライアント側、サーバ側の実行形式をそれぞれ異なるノードで実行し、クライアント側実行形式の中からIDLで定義した遠隔手続きが呼び出されると、その呼び出し要求はサーバ側のノードに送られ、サーバ側の実行形式で実行される。そして、遠隔手続きの実行結果の戻り値がクライアント側のノードに送られ、クライアント側実行形式の遠隔手続き呼び出しがリターンする。
【０００６】
クライアントスタブ、サーバスケルトンは、遠隔手続き呼び出しを実現するために、RPCランタイムライブラリを使用している。RPCランタイムライブラリは、異なったシステム間でのデータの互換性を実現するためのデータのコーディング、デコーディングや、データをネットワークを介して送受信するためのマーシャリング、アンマーシャリングなどを行なっている。
【０００７】
このように、クライアントスタブ、サーバスケルトンがコーディング、マーシャリングなどのネットワークの詳細をアプリケーションから隠蔽しているため、ユーザは通常の関数呼び出しと同様にしてリモートノードに存在する遠隔手続きを呼び出すことができる。
【０００８】
遠隔手続き技術を用いることでクライアント／サーバシステムの開発が容易になっている。特許文献１では、クライアントスタブ、サーバスケルトンのみならず、アプリケーションプログラムも自動生成する方法を示しており、遠隔手続き呼び出しを利用する際に必要になる作業工数を削減している。
【０００９】
【特許文献１】特開２０００−１３７６００号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかし、遠隔手続き呼び出しを適用しようとしているプログラムコードがもともと単独で動作するアプリケーションでは、関数の中から別のユーザ定義関数が呼ばれていることが多く、このような関数を遠隔手続きとしてIDLに定義しようとすると、次に示すような問題が生じる。
【００１１】
すなわち、遠隔手続きの中からユーザ定義関数が呼ばれている場合、遠隔手続きはサーバ側ノードで実行されるため、ユーザ定義関数もサーバ側ノードで呼び出されることになる。
【００１２】
このユーザ定義関数も遠隔手続きとしてサーバ側ノードで定義されていれば問題なく呼び出すことができるが、クライアント側ノードで定義されていれば、サーバ側ノードで呼び出そうとしても存在しないため呼び出すことができない。
【００１３】
本発明は、このような課題を解決するものであり、遠隔手続きに含まれるローカル関数及びリモート関数を判別し、ローカル関数はローカルノードで、リモート関数はリモートノードで実行する機能をクライアントスタブ、サーバスケルトンに埋め込むことで、遠隔手続き呼び出しを利用するときに必要になる作業工数を減らすことを目的とする。
【課題を解決するための手段】
【００１４】
本発明のクライアント／サーバアプリケーション作成装置は、単独で動作するアプリケーションを分割してクライアント／サーバ型アプリケーションを作成するクライアント／サーバアプリケーション作成装置であって、指定された関数インタフェースとアプリケーションのソースコードを基にクライアントスタブを生成する手段と、サーバスケルトンからの手続き実行要求を処理する機能をクライアントスタブに自動的に組み込む手段と、指定された関数インタフェースとアプリケーションのソースコードを基にサーバスケルトンを生成する手段と、クライアントスタブへの手続き実行を要求する機能をサーバスケルトンに自動的に組み込む手段とを備える点に特徴を有する。
本発明のクライアント／サーバアプリケーション作成方法は、単独で動作するアプリケーションを分割してクライアント／サーバ型アプリケーションを作成するクライアント／サーバアプリケーション作成方法であって、指定された関数インタフェースとアプリケーションのソースコードを基にクライアントスタブを生成する工程と、サーバスケルトンからの手続き実行要求を処理する機能をクライアントスタブに自動的に組み込む工程と、指定された関数インタフェースとアプリケーションのソースコードを基にサーバスケルトンを生成する工程と、クライアントスタブへの手続き実行を要求する機能をサーバスケルトンに自動的に組み込む工程とを有する点に特徴を有する。
本発明のコンピュータプログラムは、単独で動作するアプリケーションを分割してクライアント／サーバ型アプリケーションを作成する処理をコンピュータに実行させるコンピュータプログラムであって、指定された関数インタフェースとアプリケーションのソースコードを基にクライアントスタブを生成する処理と、サーバスケルトンからの手続き実行要求を処理する機能をクライアントスタブに自動的に組み込む処理と、指定された関数インタフェースとアプリケーションのソースコードを基にサーバスケルトンを生成する処理と、クライアントスタブへの手続き実行を要求する機能をサーバスケルトンに自動的に組み込む処理とをコンピュータに実行させる点に特徴を有する。
【発明の効果】
【００１５】
本発明によれば、遠隔手続きに含まれるローカル関数及びリモート関数を判別し、ローカル関数はローカルノードで、リモート関数はリモートノードで実行する機能をクライアントスタブ、サーバスケルトンに埋め込むことで、遠隔手続き呼び出しを利用するときに必要になる作業工数を減らすことができる。
【発明を実施するための最良の形態】
【００１６】
以下、添付図面を参照して、本発明の好適な実施形態について説明する。図１は、本発明の一実施例におけるクライアント／サーバアプリケーション作成装置の構成を示すものである。図１において、インタフェース定義１０は、ユーザによって定義された遠隔手続き及びローカル関数のインタフェースが記述される。アプリケーションソースコード２０は、分割前の単独で動作するアプリケーションのソースコードである。
【００１７】
クライアントスタブ生成処理３０は、インタフェース定義１０とアプリケーションソースコード２０を入力とし、クライアントスタブ５０を生成する。サーバスケルトン生成処理４０は、インタフェース定義１０とアプリケーションソースコード２０を入力とし、サーバスケルトン６０を生成する。
【００１８】
クライアントアプリケーション７０は、アプリケーションソースコード２０からインタフェース定義１０で指定される遠隔手続き関数を削除したものである。サーバアプリケーション８０は、アプリケーションソースコード２０からインタフェース定義１０で指定される遠隔手続き関数を切り出したものである。
【００１９】
関数IDテーブル１１０は、クライアントスタブ生成処理３０、サーバスケルトン生成処理４０、クライアントスタブ５０、サーバスケルトン６０から参照される。
【００２０】
クライアントスタブ５０、クライアントアプリケーション７０、RPCランタイムライブラリ１２０をリンクすることによってクライアント側の実行形式１５０が作られる。サーバスケルトン６０、サーバアプリケーション８０、RPCランタイムライブラリ１３０をリンクすることによってサーバ側の実行形式１６０が作られる。
【００２１】
図２は、クライアント側の構成を示した図で、クライアントアプリケーション７０、クライアントスタブ５０、RPCランタイムライブラリ１２０がリンクされてクライアント側の実行形式１５０を構成する。クライアントスタブ５０は、遠隔手続き要求処理５１、ローカル関数実行処理５２、応答受信処理５３から構成され、関数IDテーブル１１０を参照して処理を行なう。また、遠隔手続き呼び出し７１は、クライアントアプリケーションからの遠隔手続きの呼び出し（関数コール）を示す。
【００２２】
図３は、サーバ側の構成を示した図で、サーバアプリケーション８０、サーバスケルトン６０、RPCランタイムライブラリ１３０がリンクされてサーバ側の実行形式１６０を構成する。サーバスケルトン６０は、要求受信処理６１、ローカル関数要求処理６２から構成され、関数IDテーブル１１０を参照して処理を行なう。遠隔手続き８１は、アプリケーションソースコード２０からインタフェース定義１０で指定される遠隔手続き関数を切り出したものである。クライアント側の実行形式１５０とサーバ側の実行形式１６０は、通信ポート１４０を介して通信する。
【００２３】
次に、フローチャートを参照して動作の詳細を説明する。
（１）クライアントスタブの生成
図４は、クライアントスタブ生成処理３０の動作を示したフローチャートである。はじめに、インタフェース定義１０の中にユーザによって定義された関数インタフェースが存在するか否か調べ、存在しないならばステップＳ３１０で応答受信処理５３をクライアントスタブに作成して終了する（Ｓ３１１）。この応答受信処理５３は、サーバスケルトンから送られてくる遠隔手続きの戻り値、ローカル関数呼び出しの要求を待って、要求に応じた処理を起動するディスパッチルーチンを持つ。
【００２４】
一方、ステップＳ３０１で、インタフェース定義１０の中にユーザによって定義された関数インタフェースが存在するならば、インタフェース定義１０からユーザによって定義された関数インタフェースを一つ取り出し（Ｓ３０２）、取り出したローカル関数にIDを割り当てて関数IDテーブル１１０に登録する（Ｓ３０３）。ステップＳ３０４で、取り出したローカル関数に対応するローカル関数実行処理５１を生成する。遠隔手続き要求処理５１は、インタフェース定義１０から取り出したのと同じ関数インタフェースを持ち、関数インタフェース毎に生成される処理ルーチンである。クライアントアプリケーションからこの遠隔手続き要求処理５１が呼び出されると、サーバスケルトンに対して遠隔手続き要求を送信する。
【００２５】
次に、ステップＳ３０５では、アプリケーションソースコード２０の中から、ステップＳ３０２でインタフェース定義１０から取り出した関数インタフェースで示される関数が定義されている箇所を探す。アプリケーションソースコード２０の中に一致する関数が見つかったならばステップＳ３０６に進み、見つからなかったならばステップＳ３０１に戻る。
【００２６】
ステップＳ３０６以下では、取り出した関数のスコープ内に存在する関数呼び出し箇所を探す。関数呼び出しが見つかった場合、その関数を取り出して、インタフェース定義１０でローカル関数として定義されているか否か調べる（Ｓ３０７）。ローカル関数として定義されているならば、ステップＳ３０８に進む。ローカル関数として定義されていないならば、ステップＳ３０５に戻る。
【００２７】
ステップＳ３０８では、取り出したローカル関数にIDを割り当てて関数IDテーブル１１０に登録する。ステップＳ３０９では、取り出したローカル関数に対応するローカル関数実行処理５２を生成する。ローカル関数実行処理５２は、取り出したローカル関数毎に生成される処理ルーチンである。サーバスケルトンからローカル関数呼び出し要求があると、ローカル関数実行処理５２が対応するローカル関数を実行する。
【００２８】
（２）サーバスケルトンの生成
図５は、サーバスケルトン生成処理４０の動作を示したフローチャートである。はじめに、インタフェース定義１０の中にユーザによって定義された関数インタフェースが存在するか否か調べ、存在しないならばステップＳ４０９で要求受信処理６１をサーバスケルトンに作成して終了する（Ｓ４１０）。この要求受信処理６１は、クライアントスタブから送られてくる遠隔手続きの要求、ローカル関数戻り値を待って、要求に応じた処理を起動するディスパッチルーチンを持つ。
【００２９】
一方、ステップＳ４０１で、インタフェース定義１０の中にユーザによって定義された関数インタフェースが存在するならば、インタフェース定義１０からユーザによって定義された関数インタフェースを一つ取り出し（Ｓ４０２）、取り出したローカル関数にIDを割り当てて関数IDテーブル１１０に登録する（Ｓ４０３）。
【００３０】
次に、ステップＳ４０４では、アプリケーションソースコード２０から取り出した関数インタフェースで示される関数が定義されている箇所を探す。定義されている箇所が見つかったならばステップＳ４０５に進み、見つからなかったならばステップＳ４０１に戻る。
【００３１】
ステップＳ４０５以下では、取り出した関数のスコープ内で、関数呼び出し箇所がないかを探す。関数呼び出しが見つかった場合、その関数を取り出して、インタフェース定義１０でローカル関数として定義されているか否か調べる（Ｓ４０６）。ローカル関数として定義されているならば、Ｓ４０７に進む。ローカル関数として定義されていないならば、ステップＳ４０４に戻る。
【００３２】
ステップＳ４０７では、取り出したローカル関数にIDを割り当てて関数IDテーブル１１０に登録する。ステップＳ４０８では、取り出したローカル関数に対応するローカル関数要求処理６２を生成する。ローカル関数要求処理６２は、先程関数のスコープ内で検索の結果見つかったローカル関数呼び出しと同じ関数インタフェースを持ち、ローカル関数毎に生成される処理ルーチンである。遠隔手続きの中からこのローカル関数要求処理６２が呼び出されると、クライアントスタブに対してローカル関数呼び出しを要求する。
【００３３】
（３）遠隔手続き呼び出し
次に、フローチャートを参照して遠隔手続き呼び出しの動作を説明する。図１において、クライアントアプリケーション７０から遠隔手続きが呼ばれると対応する関数インタフェースを持つ遠隔手続き要求処理５１が実行される。図６のフローチャートは、遠隔手続き要求処理５１の動作を示したものである。遠隔手続き要求処理５１では、まずステップＳ９０１で関数テーブルから関数ＩＤを求め、ステップＳ９０２でこのＩＤと共に遠隔手続き要求がサーバスケルトンに送信される。ステップＳ９０３（Ｓ５０１(*3)）では、応答受信待ち処理となりサーバからの応答を待ってブロックする。
【００３４】
一方、サーバ側ではサーバスケルトンが要求受信待ち処理６１でクライアントからの要求を待ってブロックしている。図８は、要求受信待ち処理６１の動作を示すフローチャートである。サーバスケルトンは起動すると、ステップＳ６０１でクライアントからの要求待ち状態になる。クライアントからの遠隔手続き実行要求を受信すると、クライアントからの要求を判別する（Ｓ６０２）。
【００３５】
（３−１）遠隔手続きリターン
ステップＳ６０２で、クライアントスタブからの要求が遠隔手続き要求だった場合、関数IDテーブル１１０によってIDから遠隔手続きの関数名を求め（Ｓ６０３）、遠隔手続きを実行して（Ｓ６０４(*1)）、戻り値をクライアントスタブに送信する（Ｓ６１０）。サーバスケルトンは、戻り値を送信するとステップＳ６０１に戻り、クライアントからの受信待ち状態になる。クライアント側では、応答待ち処理Ｓ９０３（Ｓ５０１(*3)）にあるので応答待ちＳ５０１からＳ５０２に進む。サーバからの受信は、戻り値なのでＳ５０２からＳ５０３に進み、サーバから受信した戻り値を遠隔手続き呼び出し７１に返してリターンする（Ｓ５０３）。
【００３６】
（３−２）遠隔手続き呼び出しからローカル関数呼び出しがある場合
一方、前記ステップＳ６０４(*1)で、遠隔手続き８１を実行中にローカル関数呼び出しがあると、対応する関数インタフェースを持つローカル関数要求処理６２が実行される。図９は、ローカル関数要求処理６２の動作を示すフローチャートである。ステップＳ７０１では、関数テーブルから関数ＩＤを求め、ステップＳ７０２でこのＩＤと共にローカル関数要求がクライアントスタブに送信される。ローカル関数要求処理６２は、要求を送信するとクライアントからの戻り値待ちＳ７０３（Ｓ６０１(*4)）状態になる。クライアント側では、応答待ち処理Ｓ９０３（Ｓ５０１(*3)）にあるので応答待ちＳ５０１からＳ５０２に進む。
【００３７】
ここでサーバからの受信は、戻り値ではないのでステップＳ５０４に進む。ステップＳ５０４で、サーバからの要求がローカル関数の実行であることから、ステップＳ５０５に進む。ステップＳ５０５では、関数IDテーブル１１０によってIDからローカル関数の関数名を求め、ステップＳ５０６(*2)で対応する関数を実行する。
【００３８】
（３−３）ローカル関数呼び出しから遠隔手続き呼び出しがある場合
ここで、ステップＳ５０６(*2)の中から更に遠隔手続き呼び出しがあると、遠隔手続き要求処理５１が呼ばれて、ステップＳ９０１で関数テーブルから関数ＩＤを求め、ステップＳ９０２でこのＩＤと共に遠隔手続き要求がサーバスケルトンに送信される。そして、クライアントスタブは応答受信待ち状態Ｓ９０３（Ｓ５０１(*5)）に進み、応答受信待ち状態となる。
【００３９】
サーバスケルトンは、要求受信待ち状態Ｓ６０１(*4)にあるので、要求受信待ちＳ６０１からＳ６０２に進む。ステップＳ６０２で、クライアントからの受信は遠隔手続き要求であることから、ステップＳ６０３に進む。ステップＳ６０３では、関数IDテーブル１１０によってＩＤから遠隔手続きの関数名を求め、ステップＳ６０４で対応する遠隔手続きを実行する。ステップＳ６０４で遠隔手続きの実行が終了すると、ステップＳ６１０に進み、クライアントスタブに戻り値を送信し、再びステップＳ６０１で要求受信待ち状態となる(*6)。クライアントスタブは、応答受信待ち状態Ｓ９０３（Ｓ５０１(*5)）にあるので、応答受信待ち状態Ｓ５０１からＳ５０２に進む。
【００４０】
ここでサーバからの受信は、遠隔手続きの戻り値であることから、ステップＳ５０３に進み、ステップＳ５０６(*2)における遠隔手続き呼び出しがリターンする。ステップＳ５０６の関数の実行が終了すると、ステップＳ５０８で、ローカル関数の戻り値をサーバに送信してステップＳ５０１でサーバからの応答待ち状態になる。サーバスケルトンは、要求受信待ち状態Ｓ６０１(*6)にあるので、要求受信待ちＳ６０１からＳ６０２に進む。
【００４１】
ここでクライアントからの受信は、遠隔手続き要求ではないのでステップＳ６０５に進む。ステップＳ６０５で、クライアントからの受信はローカル関数の戻り値であることから、ステップＳ６０６に進み、遠隔手続き８１がリターンし、ステップＳ６０４(*1)におけるローカル関数呼び出しがリターンする。
【００４２】
ステップＳ６０４の遠隔手続きの実行が終了すると、ステップＳ６１０に進み、サーバスケルトンは遠隔手続き８１の戻り値をクライアントスタブに送信して、再び要求受信待ちＳ６０１でクライアントからの要求待ちとなる。
【００４３】
クライアント側では、応答待ち処理Ｓ９０３（Ｓ５０１(*3)）にあるので応答待ちＳ５０１からＳ５０２に進む。サーバからの受信は、戻り値なのでＳ５０２からＳ５０３に進み、サーバから受信した戻り値を遠隔手続き呼び出し７１に返してリターンする（Ｓ５０３）。
【００４４】
なお、本発明の目的は、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
【００４５】
この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００４６】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００４７】
また、コンピュータが読み出したプログラムコードを実行することにより、上述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ(基本システム或いはオペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって上述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００４８】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって上述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００４９】
【図１】本発明の一実施例におけるクライアント／サーバアプリケーション生成装置の構成を示すブロック図である。
【図２】本発明の一実施例におけるクライアントスタブの構成を示すブロック図である。
【図３】本発明の一実施例におけるサーバスケルトンの構成を示すブロック図である。
【図４】本発明の一実施例におけるクライアントスタブ生成処理の動作を示すフローチャートである。
【図５】本発明の一実施例におけるサーバスケルトン生成処理の動作を示すフローチャートである。
【図６】本発明の一実施例におけるクライアントスタブの遠隔手続き要求処理の動作を示すフローチャートである。
【図７】本発明の一実施例におけるクライアントスタブの応答受信処理の動作を示すフローチャートである。
【図８】本発明の一実施例におけるサーバスケルトンの要求受信処理の動作を示すフローチャートである。
【図９】本発明の一実施例におけるサーバスケルトンのローカル関数要求処理の動作を示すフローチャートである。
【図１０】従来の遠隔手続き呼び出しプログラム生成装置の構成を示すブロック図である。
【符号の説明】
【００５０】
１０    インタフェース定義
２０    アプリケーションソースコード
３０    クライアントスタブ生成処理
４０    サーバスケルトン生成処理
５０    クライアントスタブ
５１    遠隔手続き要求処理
５２    ローカル関数実行処理
５３    応答受信処理
６０    サーバスケルトン
６１    要求受信処理
６２    ローカル関数要求処理
７０    クライアントアプリケーション
７１    遠隔手続き呼び出し
８０    サーバアプリケーション
８１    遠隔手続き
９１    インタフェース定義
９２    ＩＤＬコンパイラ
９３    クライアントスタブ
９４    サーバスケルトン
９５    クライアントアプリケーション
９６    サーバアプリケーション
９７    ＲＰＣランタイムライブラリ
９８    ＲＰＣランタイムライブラリ
１１０  関数ＩＤテーブル
１２０  ＲＰＣランタイムライブラリ
１３０  ＰＣランタイムライブラリ
１４０  通信ポート
１５０  クライアント実行形式
１６０  サーバ実行形式
１９１  クライアント実行形式
１９２  サーバ実行形式
【図１】
2005352891.tif 000003
【図２】
2005352891.tif 000004
【図３】
2005352891.tif 000005
【図４】
2005352891.tif 000006
【図５】
2005352891.tif 000007
【図６】
2005352891.tif 000008
【図７】
2005352891.tif 000009
【図８】
2005352891.tif 000010
【図９】
2005352891.tif 000011
【図１０】
2005352891.tif 000012