説明

遠隔手続き呼び出しプログラム生成装置

【目的】 ネットワークを介し遠隔手続き呼び出しを用いた分散アプリケーションプログラムに使用される遠隔手続き呼び出しプログラム生成装置において、クライアント側のコード量を自動的に小さくする。
【構成】 遠隔手続きインタフェース定義11の中からクライアント遠隔手続き呼び出しプログラムの生成要求する遠隔手続きを指定するクライアント遠隔手続き生成指定定義12を参照し、クライアント遠隔手続き呼び出しプログラム生成判断部15が、インタフェース定義された各遠隔手続きについて生成有無を判断し、その結果に基づいて、クライアント遠隔手続き呼び出しプログラム生成部16が、クライアント遠隔手続き呼び出しプログラムを生成する。

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ネットワークを介する遠隔手続き呼び出しを用いた分散アプリケーションプログラムで利用される遠隔手続き呼び出しプログラム生成装置に関するものである。
【0002】
【従来の技術】近年、ネットワークを介してアプリケーション間のデータ交換を行なう遠隔手続き呼び出しプログラムを生成するための装置が、クライアント/サーバモデルの分散アプリケーションプログラムを開発するために広く使用されている。この分散アプリケーションの形態では、クライアントは、遠隔手続き呼び出しを要求する側、サーバは、遠隔手続き呼び出しの要求を受けて要求された処理を行ない、結果を返す側として位置付けられる。このような遠隔手続き呼び出しプログラム生成装置の例として、ジョーンズ、ラシッド、トンプソン、“マッチメーカ:分散処理のためのインタフェース記述言語(M.B.Jones,R.F.Rashid,M.R.Thompson,“Matchmaker:An Interface Specification Language for DistributedProcessing",Proceeding of the 12th ACM SIGPLAN Symposium on Principles of Programming Languages,ACM,Jan.1985,pp.225-235 )”などが知られている。
【0003】以下、従来の遠隔手続き呼び出しプログラム生成装置について説明する。図5は従来の遠隔手続き呼び出しプログラム生成装置の構成を示すものである。図5において、50は遠隔手続き呼び出しプログラム生成装置、51はクライアントとサーバの遠隔アプリケーション間の複数の遠隔手続き呼び出しインタフェースをインタフェース定義言語によって記述したインタフェース定義である。52はこのインタフェース定義51を入力し解析する解析部である。53は解析した内容に基づいてユーザ定義データ型のヘッダを生成するヘッダ生成部である。54は解析した内容に基づいてクライアント側の遠隔手続き呼び出しプログラムを生成するクライアント遠隔手続き呼び出しプログラム生成部である。55は解析した内容に基づいてサーバ側の遠隔手続き呼び出しプログラムを生成するサーバ遠隔手続き呼び出しプログラム生成部である。56はヘッダ生成部53によって生成したヘッダ、57はクライアント遠隔手続き呼び出しプログラム生成部54によって生成したクライアント遠隔手続き呼び出しプログラム、58はサーバ遠隔手続き呼び出しプログラム生成部55によって生成したサーバ遠隔手続き呼び出しプログラムである。
【0004】以上のように構成された遠隔手続き呼び出しプログラム生成装置50について、以下その動作について説明する。まず、インタフェース定義51を解析部52に入力し、文法および意味解析を行なう。その結果に基づいて、ヘッダ生成部53が、定義されたユーザ定義データ型のヘッダ56を生成し、クライアント遠隔手続き呼び出しプログラム生成部54が、定義された全ての手続きに関するクライアント遠隔手続き呼び出しプログラム57を生成し、サーバ遠隔手続き呼び出しプログラム生成部55が、定義された全ての手続きに関するサーバ遠隔手続き呼び出しプログラム58を生成する。この時、インタフェース定義内で遠隔手続きをユニークに識別するための遠隔手続き識別子もあわせて生成される。クライアント遠隔手続き呼び出しプログラム57は、手続き単位の処理で構成され、インタフェース定義51で定義された全ての遠隔手続きについて、1つのプログラムコードとして生成される。クライアントにおける1つの遠隔手続き呼び出しの処理内容は、アプリケーションプログラムから呼ばれる部分、生成された遠隔手続き識別子と遠隔手続き呼び出しの引数を送信メッセージとして組み立てる部分、サーバへ送信メッセージを送信する部分、サーバから処理結果である受信メッセージを待つ部分、受信メッセージから遠隔手続き呼び出しの処理結果データを取り出す部分、処理結果をアプリケーションプログラムへ返す部分からなるプログラムで構成される。また、サーバ遠隔手続き呼び出しプログラム58は、クライアントから処理要求の受信メッセージを待つ部分、受信メッセージから遠隔手続き識別子に基づいて呼び出す手続きを決定する部分、インタフェース定義51で定義された全ての遠隔手続きについて各遠隔手続き単位に呼び出し処理をする部分、次のクライアントからの要求を待つために最初の処理に戻る後処理部分から構成され、1つのプログラムコードとして生成される。サーバにおける1つの遠隔手続き呼び出しの処理内容は、受信メッセージから遠隔手続き呼び出しの引数データを取り出す部分、アプリケーションプログラムの該当する手続きを呼び出す部分、アプリケーションプログラムの手続きの処理結果を送信メッセージとして組み立てる部分、クライアントへ送信メッセージを送信する部分からなるプログラムで構成される。
【0005】
【発明が解決しようとする課題】しかしながら、上記の遠隔手続き呼び出しプログラム生成装置では、クライアント側アプリケーションでの使用有無にかかわらず、インタフェース定義した全ての手続きのクライアント側遠隔手続き呼び出しプログラムを生成しており、多くの手続きを定義したインタフェースでは、不用なコードのためにクライアントシステムのコード量を大きくし、多くの資源を消費するという課題を有していた。これを避けるために、生成したクライアント側遠隔手続き呼び出しプログラムを編集し、不用なコードを削除するという方法を取ることも考えられるが、これは、開発者によって誤った編集を行なうという別の課題を発生させることになる。
【0006】本発明は、上記従来技術の課題を解決するもので、クライアント側アプリケーションプログラムで使用する遠隔手続きについてのみクライアント遠隔手続き呼び出しプログラムを生成することによって、クライアント側のコード量を自動的に小さくできるようにした遠隔手続き呼び出しプログラム生成装置を提供することを目的とする。
【0007】
【課題を解決するための手段】上記目的を達成するために、本発明は、クライアントアプリケーションプログラムとサーバアプリケーションプログラム間の1つ以上の遠隔手続きインタフェース定義の中から生成要求するクライアント遠隔手続き呼び出しプログラムの遠隔手続きを指定するクライアント生成遠隔手続き指定定義を参照して、インタフェース定義された遠隔手続きのクライアント側遠隔手続き呼び出しプログラムを生成するかどうかを判断するクライアント遠隔手続き呼び出しプログラム生成判断部と、解析されたインタフェース定義中の遠隔手続きインタフェースの情報とクライアント遠隔手続き呼び出しプログラム生成判断部の判断結果に基づいて、クライアント側の遠隔手続き呼び出しプログラムを生成するクライアント遠隔手続き呼び出しプログラム生成部とを備えている。
【0008】
【作用】本発明は、上記構成によって、クライアントアプリケーションプログラムとサーバアプリケーションプログラム間の遠隔手続きインタフェース定義とクライアント遠隔手続き生成指定定義を参照し、クライアント遠隔手続き呼び出しプログラム生成判断部がインタフェース定義された各遠隔手続きについて生成有無を判断し、その結果に基づいて、クライアント遠隔手続き呼び出しプログラム生成部がクライアント遠隔手続き呼び出しプログラムを生成することによって、クライアント側のコード量を自動的に小さくすることができる。
【0009】
【実施例】以下、本発明の一実施例について図面を参照しながら説明する。図1は本発明の一実施例における遠隔手続き呼び出しプログラム生成装置の構成を示すものである。図1において、10は遠隔手続き呼び出しプログラム生成装置、11はユーザ定義のデータ型定義機能、複数の遠隔手続き呼び出しインタフェースとその引数/結果データの定義機能を有し、データやその型および手続きを定義するための言語仕様がC言語仕様に一部従うインタフェース定義言語で記述されたインタフェース定義、12はクライアントアプリケーションプログラムとサーバアプリケーションプログラム間の1つ以上の遠隔手続きインタフェース定義11の中から生成を要求するクライアント遠隔手続き呼び出しプログラムの遠隔手続きを指定するクライアント遠隔手続き生成指定定義とクライアントおよびサーバの遠隔手続き呼び出しプログラム生成指示の定義からなる生成指定定義、13はインタフェース定義11を入力し解析する解析部、14は解析部13が解析したインタフェース定義11中のユーザ定義データ型からヘッダを生成するヘッダ生成部、15は読み込んだ遠隔手続きのクライアント遠隔手続き呼び出しプログラムを生成するか否かを判断するクライアント遠隔手続き呼び出しプログラム生成判断部、16は解析部13が解析したインタフェース定義11中の遠隔手続き呼び出しインタフェースの情報とクライアント遠隔手続き呼び出しプログラム生成判断部15の判断結果に基づいてクライアント側の遠隔手続き呼び出しプログラムを生成するクライアント遠隔手続き呼び出しプログラム生成部、17は解析部13が解析したインタフェース定義11中の遠隔手続き呼び出しインタフェースの内容に基づいてサーバ側の遠隔手続き呼び出しプログラムを生成するサーバ遠隔手続き呼び出しプログラム生成部、18はヘッダ生成部14が生成したヘッダを出力したヘッダファイル、19はクライアント遠隔手続き呼び出しプログラム生成部16が生成したクライアント遠隔手続き呼び出しプログラムを出力したクライアント遠隔手続き呼び出しプログラムファイル、20はサーバ遠隔手続き呼び出しプログラム生成部17が生成したサーバ遠隔手続き呼び出しプログラムを出力したサーバ遠隔手続き呼び出しプログラムファイルである。
【0010】以上のように構成された遠隔手続き呼び出しプログラム生成装置10について、図2に示すフローチャートを用いてその動作を説明する。まず、解析部13がインタフェース定義11のファイルをオープンする(ステップ201)。次に、インタフェース定義中の現在の位置を示すところから1つのユーザ定義データ型または1つの遠隔手続きインタフェース定義を読み込み、インタフェース定義中の位置を次に進める(ステップ202)。この時、読み込むインタフェース定義が存在するかどうかを判断し(ステップ203)、存在しないならば終了処理を行ない(ステップ204)、生成処理を終了する。次に、読み込んだインタフェース定義が、言語仕様に従って文法的にも意味的にも正しいかどうかを解析する(ステップ205)。この解析結果を判断し(ステップ206)、その結果が正しくない場合、エラーメッセージを出力し、終了する(ステップ217)。結果が正しい場合、読み込んで解析した定義がユーザ定義データ型かどうかを判断し(ステップ207)、ユーザ定義データ型ならば、ヘッダ生成部14を呼び出し、ユーザ定義データ型生成処理を行なう(ステップ208)。この処理を終了した後、ステップ202からの処理を繰り返す。ユーザ定義データ型でないならば、1つの遠隔手続き呼び出しインタフェースの定義かどうかを判断し(ステップ209)、遠隔手続き呼び出しインタフェース定義ならば、インタフェース定義内で遠隔手続きをユニークに識別するための遠隔手続き識別子を生成し(ステップ210)、生成指定定義12の生成指示が、クライアントとサーバの両方に対する生成要求か(ディフォルト指定)、またはクライアントのみに対する生成要求であるならば(ステップ211)、クライアント遠隔手続き呼び出しプログラム生成部16を呼び出す。クライアント遠隔手続き呼び出しプログラム生成部16では、この遠隔手続きのクライアント側遠隔手続き呼び出しプログラムを生成するかどうかを判断するために、クライアント遠隔手続き呼び出しプログラム生成判断部15を呼び出し、生成判断処理を行なう(ステップ212)。その結果、生成を行なうならば(ステップ213)、このインタフェース定義の遠隔手続きのクライアント遠隔手続き呼び出しプログラム生成処理を行なう(ステップ214)。次に、生成指定定義12の生成指示が、クライアントとサーバの両方に対する生成要求か(ディフォルト指定)、またはサーバのみに対する生成要求であるならば(ステップ215)、サーバ遠隔手続き呼び出しプログラム生成装置17がこのインタフェース定義の遠隔手続きのサーバ遠隔手続き呼び出しプログラム生成処理を行なう(ステップ216)。この処理終了後、ステップ202からの処理を繰り返す。読み込んで解析した定義が遠隔手続き呼び出しインタフェース定義でないならば、エラーメッセージを出力し、終了する(ステップ217)。
【0011】ここでの、ユーザ定義データ型生成処理(ステップ208)、クライアント遠隔手続き呼び出しプログラム生成処理(ステップ214)、サーバ遠隔手続き呼び出しプログラム生成処理(ステップ216)、終了処理(ステップ204)は、従来の生成処理と同一で、生成結果は、それぞれヘッダファイル18、クライアント遠隔手続き呼び出しプログラムファイル19、サーバ遠隔手続き呼び出しプログラムファイル20へ出力される。
【0012】次に、図3のフローチャートを参照しながらクライアント遠隔手続き呼び出しプログラム生成判断処理(ステップ212)をさらに詳細に説明する。クライアント遠隔手続き呼び出しプログラム生成判断部15では、まず、生成指定定義12中にクライアント遠隔手続き生成指定定義あるかどうかを判断する(ステップ301)。クライアント遠隔手続き生成指定定義がないならば、クライアント遠隔手続き呼び出しプログラム生成処理を行なうという判断結果をクライアント遠隔手続き呼び出しプログラム生成部16へ返す(ステップ302)。また、クライアント遠隔手続き生成指定定義があるならば、読み込んだ遠隔手続きインタフェースの遠隔手続きがクライアント遠隔手続き生成指定定義中に定義されているかどうかを判断する(ステップ303)。クライアント遠隔手続き生成指定定義中に定義された遠隔手続きならば、クライアント遠隔手続き呼び出しプログラム生成処理を行なうという判断結果をクライアント遠隔手続き呼び出しプログラム生成部16へ返す(ステップ302)。クライアント遠隔手続き生成指定定義を定義されていない遠隔手続きならば、クライアント遠隔手続き呼び出しプログラム生成処理を行なわないという判断結果をクライアント遠隔手続き呼び出しプログラム生成部16へ返す(ステップ304)。
【0013】図4は上記遠隔手続き呼び出しプログラム生成装置10によって生成された遠隔手続き呼び出しプログラム例を示す模式図である。図4において、41はインタフェース定義例、42は生成指定定義、43はインタフェース定義例41から生成された生成ヘッダ、44は生成クライアント遠隔手続き呼び出しプログラム、45は生成サーバ遠隔手続き呼び出しプログラムである。このように、インタフェース定義例41の中から生成指定定義42のようにクライアント遠隔手続き=Bの生成のみを指定することによって、生成されたクライアント遠隔手続き呼び出しプログラム44をクライアント遠隔手続き呼び出しB処理コードのみとすることができ、クライアント側システムのコード容量を小さくすることができる。また、これによって、様々なクライアントアプリケーションの要求に応じて、1つのインタフェース定義からその利用に最適なクライアント遠隔手続き呼び出しプログラムのコード生成が可能となる。
【0014】以上のように本実施例によれば、クライアントアプリケーションプログラムとサーバアプリケーションプログラム間の1つ以上の遠隔手続きインタフェース定義11の中から生成要求するクライアント遠隔手続き呼び出しプログラムの遠隔手続きをクライアント遠隔手続き生成指定定義12として指定し、クライアント遠隔手続き呼び出しプログラム生成判断部15が、この生成指定定義12を参照して、インタフェース定義された各遠隔手続きについて生成有無を判断し、その結果に基づいて、クライアント遠隔手続き呼び出しプログラム生成部16が、クライアント遠隔手続き呼び出しプログラムを生成するので、クライアント側のコード量を自動的に小さくすることができる。
【0015】なお、上記実施例において、インタフェース定義11を記述するインタフェース定義言語の仕様はプログラミング言語Cの仕様に一部従うとしたが、プログラミング言語としては、パスカルなどの他のプログラミング言語や独自のプログラミング言語でもよい。また、生成指定定義12をインタフェース定義11と別のものとしたが、インタフェース定義11内に定義できるものとしてもよい。
【0016】
【発明の効果】以上のように、本発明は、遠隔手続きインタフェース定義の中からクライアント遠隔手続き呼び出しプログラムの生成要求する遠隔手続きを指定するクライアント遠隔手続き生成指定定義を参照して、クライアント遠隔手続き呼び出しプログラム生成判断部が、インタフェース定義された各遠隔手続きについての生成の有無を判断し、その結果に基づいて、クライアント遠隔手続き呼び出しプログラム生成部が、クライアント遠隔手続き呼び出しプログラムを生成するので、クライアント側のコード量を自動的に小さくすることができ、資源を有効利用できる優れた遠隔手続き呼び出しプログラム生成装置を実現できるものである。
【図面の簡単な説明】
【図1】本発明の一実施例における遠隔手続き呼び出しプログラム生成装置の構成を示すブロック図
【図2】本発明の一実施例における遠隔手続き呼び出しプログラム生成装置の動作を示すフローチャート
【図3】本発明の一実施例における遠隔手続き呼び出しプログラム生成装置のクライアント遠隔手続き呼び出しプログラム生成判断処理動作を示すフローチャート
【図4】遠隔手続き呼び出しプログラム生成例を示す模式図
【図5】従来の遠隔手続き呼び出しプログラム生成装置の構成を示すブロック図
【符号の説明】
10 遠隔手続き呼び出しプログラム生成装置
11 インタフェース定義
12 生成指定定義
13 解析部
14 ヘッダ生成部
15 クライアント遠隔手続き呼び出しプログラム生成判断部
16 クライアント遠隔手続き呼び出しプログラム生成部
17 サーバ遠隔手続き呼び出しプログラム生成部
18 ヘッダファイル
19 クライアント遠隔手続き呼び出しプログラムファイル
20 サーバ遠隔手続き呼び出しプログラムファイル
41 インタフェース定義例
42 生成指定定義
43 生成ヘッダ
44 生成クライアント遠隔手続き呼び出しプログラム
45 生成サーバ遠隔手続き呼び出しプログラム
50 遠隔手続き呼び出しプログラム生成装置
51 インタフェース定義
52 解析部
53 ヘッダ生成部
54 クライアント遠隔手続き呼び出しプログラム生成部
55 サーバ遠隔手続き呼び出しプログラム生成部
56 生成ヘッダ
57 クライアント遠隔手続き呼び出しプログラム
58 サーバ遠隔手続き呼び出しプログラム

【特許請求の範囲】
【請求項1】 クライアントアプリケーションプログラムとサーバアプリケーションプログラム間の1つ以上の遠隔手続きインタフェース定義の中から生成要求するクライアント遠隔手続き呼び出しプログラムの遠隔手続きを指定するクライアント遠隔手続き生成指定定義を参照して、インタフェース定義された遠隔手続きのクライアント遠隔手続き呼び出しプログラムを生成するかどうかを判断するクライアント遠隔手続き呼び出しプログラム生成判断部と、解析されたインタフェース定義中の遠隔手続きインタフェースの情報と前記クライアント遠隔手続き呼び出しプログラム生成判断部の判断結果に基づいて、クライアント側の遠隔手続き呼び出しプログラムを生成するクライアント遠隔手続き呼び出しプログラム生成部とを備えた遠隔手続き呼び出しプログラム生成装置。

【図1】
image rotate


【図2】
image rotate


【図3】
image rotate


【図4】
image rotate


【図5】
image rotate


【公開番号】特開平6−67865
【公開日】平成6年(1994)3月11日
【国際特許分類】
【出願番号】特願平4−220059
【出願日】平成4年(1992)8月19日
【出願人】(000005821)松下電器産業株式会社 (73,050)