説明

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

【目的】 ネットワークを介し遠隔手続き呼び出しを用いた分散アプリケーションプログラムに使用される遠隔手続き呼び出しプログラム生成装置において、効率的な遠隔手続き呼び出し処理を実現できると同時に、ユーザが共有データ領域を追加するという余分な作業を行なう必要のない遠隔手続き呼び出しプログラムを生成すること。
【構成】 サーバ側アプリケーションプログラムの全ての手続きで参照および書き込み可能なサーバ共有データ領域を定義したインタフェース定義11から、サーバ共有データ領域生成部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】以下、従来の遠隔手続き呼び出しプログラム生成装置について説明する。図10は従来の遠隔手続き呼び出しプログラム生成装置の構成を示すものである。図10において、100は遠隔手続き呼び出しプログラム生成装置、101はクライアントとサーバの遠隔アプリケーション間の複数の遠隔手続き呼び出しインタフェースをインタフェース定義言語によって記述したインタフェース定義である。102はこのインタフェース定義101を入力して解析する解析部である。103は解析した内容に基づいてユーザ定義データ型のヘッダを生成するヘッダ生成部である。104は解析した内容に基づいてクライアント側の遠隔手続き呼び出しプログラムを生成するクライアント遠隔手続き呼び出しプログラム生成部である。105は解析した内容に基づいてサーバ側の遠隔手続き呼び出しプログラムを生成するサーバ遠隔手続き呼び出しプログラム生成部である。106はヘッダ生成部103によって生成されたヘッダ、107はクライアント遠隔手続き呼び出しプログラム生成部104によって生成されたクライアント遠隔手続き呼び出しプログラム、108はサーバ遠隔手続き呼び出しプログラム生成部105によって生成されたサーバ遠隔手続き呼び出しプログラムである。
【0004】以上のように構成された遠隔手続き呼び出しプログラム生成装置100について、以下その動作について説明する。まず、インタフェース定義101を解析部102に入力し、文法および意味解析を行なう。その結果に基づいて、ヘッダ生成部103が、定義されたユーザ定義データ型のヘッダ106を生成し、クライアント遠隔手続き呼び出しプログラム生成部104が、定義された全ての手続きに関するクライアント遠隔手続き呼び出しプログラム107を生成し、サーバ遠隔手続き呼び出しプログラム生成部105が、定義された全ての手続きに関するサーバ遠隔手続き呼び出しプログラム108を生成する。クライアント遠隔手続き呼び出しプログラム107は、手続き単位の処理で構成され、インタフェース定義101で定義された全ての遠隔手続きについて、1つのプログラムコードとして生成される。クライアントにおける1つの遠隔手続き呼び出しの処理内容は、アプリケーションプログラムから呼ばれる部分、遠隔手続き呼び出しの引数を送信メッセージとして組み立てる部分、サーバへ送信メッセージを送信する部分、サーバから処理結果である受信メッセージを待つ部分、受信メッセージから遠隔手続き呼び出しの処理結果データを取り出す部分、処理結果をアプリケーションプログラムへ返す部分からなるプログラムで構成される。また、サーバ遠隔手続き呼び出しプログラム108は、クライアントから処理要求の受信メッセージを待つ部分、受信メッセージから呼び出し手続きを決定する部分、インタフェース定義101で定義された全ての遠隔手続きについて各遠隔手続き単位に呼び出し処理をする部分、次のクライアントからの要求を待つために最初の処理に戻る後処理部分から構成され、1つのプログラムコードとして生成される。サーバにおける1つの遠隔手続き呼び出しの処理内容は、受信メッセージから遠隔手続き呼び出しの引数データを取り出す部分、アプリケーションプログラムの該当する手続きを呼び出す部分、アプリケーションプログラムの手続きの処理結果を送信メッセージとして組み立てる部分、クライアントへ送信メッセージを送信する部分からなるプログラムで構成される。
【0005】
【発明が解決しようとする課題】しかしながら、上記従来の遠隔手続き呼び出しプログラム生成装置では、生成されたサーバ遠隔手続き呼び出しプログラム108の中に複数のアプリケーションプログラムの手続き間で共有して参照および書き込み可能なデータ領域が存在せず、複数の手続き間でサーバ固有の情報を共有するために、関連する全ての遠隔手続き呼び出しの引数/結果パラメータとして定義し、クライアントアプリケーションプログラムが、関連する手続きを呼び出す毎にクライアントとサーバ間を往復転送する必要があり、余分な情報伝達のために遠隔手続き呼び出しの処理効率を落すという課題を有していた。また、ユーザは、これを避けるために生成したサーバ遠隔手続き呼び出しプログラムコードを解析し、サーバアプリケーションプログラム内で参照および書き込み可能な共有データ領域を追加するという余分な作業を行なう必要があり、これは、ユーザがプログラム不良の原因を誤って組み込む可能性があるという課題も有していた。
【0006】本発明は、上記従来技術の課題を解決するもので、サーバ側アプリケーションプログラム内の複数手続き間でデータ情報を共有する分散アプリケーションプログラムの処理に対して、効率的な遠隔手続き呼び出し処理を実現するとともに、ユーザの余分な作業を不用とすることによって、プログラム不良を少なくすることのできる遠隔手続き呼び出しプログラム生成装置を提供することを目的とする。
【0007】
【課題を解決するための手段】上記目的を達成するために、本発明は、インタフェース定義中にサーバ側アプリケーションプログラム内のどこからでも参照および書き込み可能なサーバ共有データ領域を定義可能なインタフェース定義およびこのインタフェース定義中のサーバ共有データ領域定義からサーバ遠隔手続き呼び出しプログラム中にサーバ共有データ領域を生成するサーバ共有データ領域生成部を備えたものである。
【0008】
【作用】本発明は、上記構成によって、サーバ共有データ領域を定義したインタフェース定義から、サーバ共有データ領域生成部が、サーバ側アプリケーションプログラム内のどこからでも参照および書き込み可能なサーバ共有データ領域を生成し、この生成したサーバ共有データ領域を使用することによって、クライアントアプリケーションプログラムが、サーバアプリケーションプログラム内で関連する情報データを共有する手続きを呼び出す毎にクライアントとサーバ間を手続き呼び出しの引数および結果データとして往復転送する必要もなく、効率的な遠隔手続き呼び出し処理を実現できるとともに、ユーザは共有データ領域を追加するという余分な作業を行なう必要もないため、プログラム不良の原因を誤って組み込む可能性を少なくすることができる。
【0009】
【実施例】以下、本発明の一実施例について図面を参照しながら説明する。図1は本発明の一実施例における遠隔手続き呼び出しプログラム生成装置の全体構成図である。図1において、10は遠隔手続き呼び出しプログラム生成装置、11はユーザ定義のデータ型定義機能、サーバプログラムのサーバ共有データ領域の定義機能、複数の遠隔手続き呼び出しインタフェースとその引数/結果データの定義機能を有し、データやその型、手続きを定義するための言語仕様がC言語仕様に従うインタフェース定義言語で記述されたインタフェース定義、12はインタフェース定義11を入力して解析する解析部、13は解析部12が解析したインタフェース定義中のユーザ定義データ型からヘッダを生成するヘッダ生成部、14は解析部12が解析したインタフェース定義中の遠隔手続き呼び出しインタフェースの内容に基づいてクライアント側の遠隔手続き呼び出しプログラムを生成するクライアント遠隔手続き呼び出しプログラム生成部、15は解析部12が解析したインタフェース定義中の遠隔手続き呼び出しインタフェースの内容に基づいてサーバ側の遠隔手続き呼び出しプログラムを生成するサーバ遠隔手続き呼び出しプログラム生成部、16は解析部12が解析したインタフェース定義中のサーバ共有データ領域定義の内容に基づいてサーバ遠隔手続き呼び出しプログラム中にサーバ共有データ領域を生成するサーバ共有データ領域生成部、17はヘッダ生成部13が生成したヘッダを出力した出力用ヘッダファイル、18はクライアント遠隔手続き呼び出しプログラム生成部14が生成したクライアント遠隔手続き呼び出しプログラムを出力した出力用クライアント遠隔手続き呼び出しプログラムファイル、19はサーバ共有データ領域生成部16が生成したサーバ共有データ領域とサーバ遠隔手続き呼び出しプログラム生成部15が生成したサーバ遠隔手続き呼び出しプログラムを出力した出力用サーバ遠隔手続き呼び出しプログラムファイルである。
【0010】以上のように構成された遠隔手続き呼び出しプログラム生成装置について、図2に示す遠隔手続き呼び出しプログラム生成装置のフローチャートを用いてその動作を説明する。まず、解析部12がインタフェース定義11のファイルをオープンする(ステップ201)。次に、インタフェース定義11中の現在の位置を示すところから1つのユーザ定義データ型、または1つのサーバ共有データ領域定義、または1つの遠隔手続きインタフェース定義を読み込んでインタフェース定義11中の位置を次に進める(ステップ202)。この時、読み込むインタフェース定義が存在するかどうかを判断し(ステップ203)、もし、存在しないならば、終了処理を行ない生成処理を終了する(ステップ204)。読み込んだインタフェース定義が、言語仕様に従って文法的にも意味的にも正しいかを解析する(ステップ205)。この解析結果を判断し(ステップ206)、その結果が正しくない場合、エラーメッセージを出力し、終了する(ステップ215)。結果が正しい場合、読み込んで解析した定義がユーザ定義データ型かどうかを判断し(ステップ207)、ユーザ定義データ型ならば、ヘッダ生成部13を呼び出し、ユーザ定義データ型生成処理を行なう(ステップ208)。この処理終了後、ステップ202からの処理を繰り返す。もし、ユーザ定義データ型でないならば、サーバ共有データ領域定義かどうかを判断し(ステップ209)、サーバ共有データ領域定義ならば、サーバ共有データ領域生成部16を呼び出し、サーバ共有データ領域生成処理を行なう(ステップ210)。この処理の結果を判断し(ステップ211)、エラーが発見された場合、エラーメッセージを出力し、終了する(ステップ215)。また、正常の場合、ステップ202からの処理を繰り返す。もし、読み込んで解析した定義がサーバ共有データ領域定義でないならば、1つの遠隔手続き呼び出しインタフェースの定義かどうかを判断し(ステップ212)、遠隔手続き呼び出しインタフェース定義ならば、クライアント遠隔手続き呼び出しプログラム生成装置14を呼び出してクライアント遠隔手続き呼び出しプログラム生成処理を行ない(ステップ213)、次いでサーバ遠隔手続き呼び出しプログラム生成装置15を呼び出してサーバ遠隔手続き呼び出しプログラム生成処理を行なう(ステップ214)。この処理終了後、ステップ202からの処理を繰り返す。読み込んで解析した定義が遠隔手続き呼び出しインタフェース定義でないならば、エラーメッセージを出力し、終了する(ステップ215)。
【0011】次に図3のフローチャートを参照しながらユーザ定義データ型生成処理(ステップ208)についてさらに詳細に説明する。まず、出力用ヘッダファイル17が既に存在しているかを検査し(ステップ31)、存在していないならば、出力用ヘッダファイル17を生成する(ステップ32)。この後、解析したユーザ定義データ型に従ってヘッダ生成部13がヘッダを生成し、ヘッダファイル17へ出力する(ステップ33)。
【0012】次に図4のフローチャートを参照しながらサーバ共有データ領域生成処理(ステップ210)についてさらに詳細に説明する。まず、出力用サーバ遠隔手続き呼び出しプログラムファイル19が既に存在しているかを検査し(ステップ41)、存在していないならば、出力用サーバ遠隔手続き呼び出しプログラムファイル19を生成する(ステップ42)。既に存在している場合、サーバの前処理のプログラムコード部分が生成されているか検査し(ステップ43)、既に生成されているならば、エラーを返す(ステップ44)。この後、解析されたサーバ共有データ領域定義に従ってサーバ共有データ領域生成部16がサーバ共有データ領域を生成し、出力用サーバ遠隔手続き呼び出しプログラムファイル19へ出力する(ステップ45)。
【0013】次に図5のフローチャートを参照しながらクライアント遠隔手続き呼び出しプログラム生成処理(ステップ213)についてさらに詳細に説明する。クライアント遠隔手続き呼び出しプログラム生成部14は、出力用クライアント遠隔手続き呼び出しプログラムファイル18が既に存在しているかを検査し(ステップ51)、存在していないならば、出力用クライアント遠隔手続き呼び出しプログラムファイル18を生成し(ステップ52)、その後、解析された遠隔手続き呼び出しインタフェースに従って、クライアント遠隔手続き呼び出しプログラムを生成し、出力用クライアント遠隔手続き呼び出しプログラムファイル18へ出力する(ステップ53)。この生成処理で生成するクライアント遠隔手続き呼び出しプログラムの内容は、従来技術で説明したものと同一である。
【0014】次に図6のフローチャートを参照しながらサーバ遠隔手続き呼び出しプログラム生成処理(ステップ214)についてさらに詳細に説明する。サーバ遠隔手続き呼び出しプログラム生成部15は、出力用サーバ遠隔手続き呼び出しプログラムファイル19が既に存在しているかを検査し(ステップ61)、存在していないならば、出力用サーバ遠隔手続き呼び出しプログラムファイル19を生成する(ステップ62)。その後、サーバ遠隔手続き呼び出しプログラム生成部15は、サーバの前処理のプログラムコード部分が生成されているかを検査し(ステップ63)、生成されていなければサーバの前処理のプログラムコード部分を生成し(ステップ64)、次いで解析された遠隔手続き呼び出しインタフェースに従って、サーバ遠隔手続き呼び出しプログラムを生成し、出力用サーバ遠隔手続き呼び出しプログラムファイル19へ出力する(ステップ65)。この生成処理で生成するサーバ遠隔手続き呼び出しプログラムの内容は、従来の技術で説明したものと同一である。
【0015】次に図7のフローチャートを参照しながら終了処理(ステップ204)についてさらに詳細に説明する。まずサーバ遠隔手続き呼び出しプログラム生成部15を呼び出し、サーバ遠隔手続き呼び出しプログラムの後処理部分を生成し、出力用サーバ遠隔手続き呼び出しプログラムファイル19へ出力する(ステップ71)。次に、インタフェース定義11の入力ファイルをクローズし(ステップ72)、出力用ヘッダファイル17をクローズし(ステップ73)、出力用クライアント遠隔手続き呼び出しプログラムファイル18をクローズし(ステップ74)、出力用サーバ遠隔手続き呼び出しプログラムファイル19をクローズする(ステップ75)。
【0016】図8はインタフェース定義例81と、このインタフェース定義例81から遠隔手続き呼び出しプログラム生成装置10がそれぞれ生成したヘッダ82と、クライアント遠隔手続き呼び出しプログラム83と、サーバ共有データ領域を有する、サーバ遠隔手続き呼び出しプログラム84の概要を示す。
【0017】図9はこのようにして生成されたサーバ遠隔手続き呼び出しプログラム84を使用したサーバアプリケーションプログラムが、サーバ共有データ領域を使用している例を示す。図9において、91はサーバアプリケーション手続きA処理コード、92はサーバアプリケーション手続きB処理コード、93はサーバアプリケーション手続きC処理コードである。サーバアプリケーション手続きA処理コード91は、クライアントからこの遠隔手続き呼び出しAを実行された時、サーバ遠隔手続き呼び出しプログラム84内のサーバ遠隔手続き呼び出しA処理コードから呼び出される。この時、サーバアプリケーション手続きA処理コード91は、サーバ共有データ領域を参照および書き込みが可能となる。同様にサーバアプリケーション手続きB処理コード92およびサーバアプリケーション手続きC処理コード93もサーバ遠隔手続き呼び出しプログラム84から呼び出された時、サーバ共有データ領域を参照および書き込みが可能となる。このように、生成したサーバ共有データ領域は、クライアントアプリケーションプログラムで使用しない情報で、サーバアプリケーションプログラムのみで必要な情報を格納、変更、参照する領域とすることができ、サーバアプリケーションプログラムの各手続き間の制御や連絡、共有資源の管理などに使用することができる。これによって、クライアントアプリケーションプログラムで必要のない情報データをクライアントとサーバ間で交換する必要がなくなる。また、分散アプリケーションプログラムの処理上、クライアントとサーバ間で情報データの交換が必要な場合でも、必要な情報を最少限交換するだけで、多くの情報を交換する効率的な分散アプリケーションプログラムを作成することができる。例えば、サーバアプリケーションプログラムで多くの情報をもつ複数のテーブルを、サーバアプリケーションプログラム内のどこからでも参照および書き込み可能なサーバ共有データ領域として使用することによって、このサーバアプリケーションプログラムのテーブルインデックスという必要最少限の情報をクライアントとサーバ間で交換するだけで、複数の遠隔手続き間の連携処理が可能となる。
【0018】以上のように本実施例によれば、サーバ共有データ領域を定義したインタフェース定義から、サーバ共有データ領域生成部が、サーバ側アプリケーションプログラム内のどこからでも参照および書き込み可能なサーバ共有データ領域を生成することができるので、この生成したサーバ共有データ領域を使用することによって、クライアントアプリケーションプログラムが、サーバアプリケーションプログラム内で関連する情報データを共有する手続きを呼び出す毎にクライアントとサーバ間を手続き呼び出しの引数および結果データとして往復転送する必要もなく、効率的な遠隔手続き呼び出し処理を実現できるとともに、ユーザは共有データ領域を追加するという余分な作業を行なう必要もないため、プログラム不良の原因を誤って組み込む可能性を少なくすることができる。
【0019】なお、上記実施例において、インタフェース定義11を記述するインタフェース定義言語の仕様はプログラミング言語Cの仕様に一部従うとしたが、プログラミング言語としては、他のパスカルなどのプログラミング言語や独自のプログラミング言語でもよい。また、インタフェース定義中のサーバ共有データ領域の定義は、遠隔手続き呼び出しインタフェース定義の前になければならないとしたが、どこでも定義可能な実装方法としてもよい。
【0020】
【発明の効果】以上のように本発明は、サーバ共有データ領域を定義したインタフェース定義から、サーバ共有データ領域生成部が、サーバ側アプリケーションプログラム内のどこからでも参照および書き込み可能なサーバ共有データ領域を生成することができるので、この生成したサーバ共有データ領域を使用することによって、クライアントアプリケーションプログラムが、サーバアプリケーションプログラム内で関連する情報データを共有する手続きを呼び出す毎にクライアントとサーバ間を手続き呼び出しの引数および結果データとして往復転送する必要もなく、効率的な遠隔手続き呼び出し処理を実現できるとともに、ユーザは共有データ領域を追加するという余分な作業を行なう必要もないため、プログラム不良の原因を誤って組み込む可能性を少なくすることができる優れた遠隔手続き呼び出しプログラム生成装置を実現できるものである。
【図面の簡単な説明】
【図1】本発明の一実施例における遠隔手続き呼び出しプログラム生成装置の構成を示すブロック図
【図2】同装置の動作を示すフローチャート
【図3】同装置のユーザ定義データ型生成処理動作を示すフローチャート
【図4】同装置のサーバ共有データ領域生成処理動作を示すフローチャート
【図5】同装置のクライアント遠隔手続き呼び出しプログラム生成処理動作を示すフローチャート
【図6】同装置のサーバー遠隔手続き呼び出しプログラム生成処理動作を示すフローチャート
【図7】同装置の終了処理動作を示すフローチャート
【図8】同装置において生成した遠隔手続き呼び出しプログラム例を示す模式図
【図9】同装置において生成したサーバ遠隔手続き呼び出しプログラムの使用例を示す模式図
【図10】従来のデータ転送プログラム生成装置の構成を示すブロック図
【符号の説明】
10 遠隔手続き呼び出しプログラム生成装置
11 インタフェース定義
12 解析部
13 ヘッダ生成部
14 クライアント遠隔手続き呼び出しプログラム生成部
15 サーバ遠隔手続き呼び出しプログラム生成部
16 サーバ共有データ領域生成部
17 出力用ヘッダファイル
18 出力用クライアント遠隔手続き呼び出しプログラムファイル
19 出力用サーバ遠隔手続き呼び出しプログラムファイル

【特許請求の範囲】
【請求項1】 遠隔手続きを呼び出すクライアントアプリケーションプログラムと遠隔手続き呼び出しによって呼び出されるサーバアプリケーションプログラム間の1つ以上の遠隔手続きインタフェースとサーバアプリケーションプログラム内のどこからでも参照および書き込み可能なサーバ共有データ領域とを定義可能なインタフェース定義言語によって記述されたインタフェース定義を入力して解析する解析部と、前記解析部によって解析されたインタフェース定義中の遠隔手続きインタフェースの内容に基づいてクライアント側の遠隔手続き呼び出しプログラムを生成するクライアント遠隔手続き呼び出しプログラム生成部と、前記解析部によって解析されたインタフェース定義中の遠隔手続きインタフェースの内容に基づいてサーバ側の遠隔手続き呼び出しプログラムを生成するサーバ遠隔手続き呼び出しプログラム生成部と、前記解析部によって解析されたインタフェース定義中のサーバ共有データ領域定義の内容に基づいてサーバ遠隔手続き呼び出しプログラム中にサーバ共有データ領域を生成するサーバ共有データ領域生成部とを備えた遠隔手続き呼び出しプログラム生成装置。

【図1】
image rotate


【図3】
image rotate


【図4】
image rotate


【図5】
image rotate


【図2】
image rotate


【図6】
image rotate


【図7】
image rotate


【図8】
image rotate


【図9】
image rotate


【図10】
image rotate


【公開番号】特開平6−51968
【公開日】平成6年(1994)2月25日
【国際特許分類】
【出願番号】特願平4−201441
【出願日】平成4年(1992)7月28日
【出願人】(000005821)松下電器産業株式会社 (73,050)