JP2002014832A - Network computer system and server - Google Patents

Network computer system and server

Info

Publication number
JP2002014832A
JP2002014832A JP2000198680A JP2000198680A JP2002014832A JP 2002014832 A JP2002014832 A JP 2002014832A JP 2000198680 A JP2000198680 A JP 2000198680A JP 2000198680 A JP2000198680 A JP 2000198680A JP 2002014832 A JP2002014832 A JP 2002014832A
Authority
JP
Japan
Prior art keywords
server
communication
interface
rpc
client
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.)
Granted
Application number
JP2000198680A
Other languages
Japanese (ja)
Other versions
JP4184576B2 (en
Inventor
Keisuke Morinaga
景介 森永
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2000198680A priority Critical patent/JP4184576B2/en
Publication of JP2002014832A publication Critical patent/JP2002014832A/en
Application granted granted Critical
Publication of JP4184576B2 publication Critical patent/JP4184576B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To improve the reliability of the interface of a remote procedure call in a network computer system. SOLUTION: In this network computer system, remote procedure call(RPC) communicating means (stub programs) 22 and 32 include interface identification information 16 generated by hashing from interface definition information (IDL) 11 in an RPC so that communication in the RPC can be performed based on the definition information 11 by using the identification information 16.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、ネットワークコン
ピュータシステム及びサーバに関し、特に、プログラム
間のインタフェースの信頼性を向上したリモートプロシ
ジャコールを利用したネットワークコンピュータシステ
ム及びサーバに関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a network computer system and a server, and more particularly, to a network computer system and a server using a remote procedure call with improved reliability of an interface between programs.

【0002】[0002]

【従来の技術】分散処理環境を構成するネットワークコ
ンピュータシステムでは、サーバやクライアントの上で
動作する複数のプログラムが処理を相互に分散するため
に、リモートプロシジャコール(RPC)を採用する場
合がある。RPCにおいては、例えば、サーバ上のある
アプリケーションプログラムが、そのプロシジャの一部
をクライアント上の他のアプリケーションプログラムに
実行させて、その結果を通常のプロシジャコールと同様
に帰り値として受け取る。
2. Description of the Related Art In a network computer system constituting a distributed processing environment, a remote procedure call (RPC) may be adopted in order for a plurality of programs operating on a server or a client to mutually distribute processing. In the RPC, for example, an application program on a server causes a part of the procedure to be executed by another application program on a client, and receives the result as a return value in the same manner as a normal procedure call.

【0003】RPCにおいては、開発時において、その
インタフェースをインタフェース定義スクリプト(ID
L)に記述しておく。そして、IDLに基づいて、アプ
リケーションプログラムがRPCにより通信を実行する
時にこれを支援する(代わりにRPCにより通信を実行
する)プログラム(スタブ(STUB)プログラム)
を、自動生成する。スタブプログラムは、コンパイルに
より、サーバ及びクライアントの各々の上のアプリケー
ションプログラムに組み込まれる。運用時において、サ
ーバ及びクライアント上のアプリケーションプログラム
は、各々のスタブプログラムによりRPCにより通信を
実行する。
In RPC, at the time of development, the interface is defined by an interface definition script (ID
L). A program (stub (STUB) program) that supports the application program when executing communication by RPC based on IDL (executes communication by RPC instead).
Is automatically generated. The stub program is compiled into an application program on each of the server and the client. During operation, the application programs on the server and the client execute communication by RPC using the respective stub programs.

【0004】[0004]

【発明が解決しようとする課題】種々の理由により、R
PCのインタフェースが変更され、これに伴って、ID
Lがバージョンアップ(改版)される場合がある。本来
であれば、これは、サーバ及びクライアントの双方にお
いて、同様にインタフェースに反映されているはずであ
る。
SUMMARY OF THE INVENTION For various reasons, R
The interface of the PC has been changed and the ID
L may be upgraded (revised). Originally, this would have been reflected in the interface as well, both at the server and at the client.

【0005】しかし、IDLがバージョンアップされた
場合、運用時において、インタフェースの不一致による
実行不可が出力されることがある。例えば、サーバ上の
アプリケーションプログラムに組み込まれたスタブプロ
グラムが、クライアントから受信した伝送パケットを分
析しインタフェースが合致するか否かを検証した結果、
インタフェースが不一致となり、実行不可が出力される
ことがある。このような事態は、多くの場合サーバ(の
管理者)が新しいスタブプログラムをコンパイルしてい
ないこと等により生じる。この場合、処理が途中で止ま
ってしまうことになる。また、当該検証を終了するまで
は、インタフェースの不一致を検出することができな
い。
[0005] However, if the IDL is upgraded, an execution failure may be output due to interface mismatch during operation. For example, as a result of a stub program incorporated in an application program on a server analyzing a transmission packet received from a client and verifying whether the interface matches,
The interface may not match, and execution not possible may be output. Such a situation often occurs because the server (administrator) has not compiled a new stub program. In this case, the processing stops halfway. Until the verification is completed, interface mismatch cannot be detected.

【0006】また、IDLがバージョンアップされた場
合、運用時において、本来IDLが不一致であるにもか
かわらず、RPCの不適切な帰り値を用いてアプリケー
ションプログラムを実行してしまうことがある。即ち、
実際はIDLが変更されているが、データパケットとし
て見た場合にはインタフェースが変更とならない場合が
ある。これは、例えば、バージョンアップが、送信パケ
ットのフォーマット等に関するものではなく、些細なバ
グ(スペルミス等)の訂正等である場合である。この場
合、例えばクライアントから受信した送信パケットのフ
ォーマット等が一致してしまうと、サーバ上のスタブプ
ログラムを介してこれを受け取ったアプリケーションプ
ログラムが、帰り値をクライアント上の当該アプリケー
ションプログラムに返してしまう。しかし、この場合、
本来バージョンが不一致であるので、サーバのアプリケ
ーションプログラムは誤った処理を実行した可能性があ
る。従って、また、クライアントのアプリケーションプ
ログラムも、誤った処理に基づく誤った帰り値を用いて
誤った処理を実行する可能性がある。
Further, when the IDL is upgraded, an application program may be executed using an inappropriate return value of the RPC at the time of operation, although the IDL is originally mismatched. That is,
Although the IDL is actually changed, the interface may not be changed when viewed as a data packet. This is the case, for example, when the version upgrade does not relate to the format of the transmission packet and the like, but corrects a trivial bug (spelling mistake or the like). In this case, for example, if the format of the transmission packet received from the client matches, the application program that has received this via the stub program on the server returns a return value to the application program on the client. But in this case,
Since the versions do not match, the server application program may have performed an erroneous process. Therefore, there is also a possibility that the application program of the client also executes an erroneous process using an erroneous return value based on the erroneous process.

【0007】なお、以上のような誤動作等を防止するた
めには、IDLのバージョン(版数)を管理することが
望ましい。しかし、IDLの版数を管理しようとする
と、開発者が当該バージョン情報をIDL内に記述する
必要がある。これは開発者にとっては煩わしいので記述
を省略する場合があり、また、人手により管理すること
になるので開発者が記述を忘れたり内容を誤ったりする
場合がある。従って、管理されていない場合や、管理さ
れてはいても適切でない場合がある。なお、IDLのバ
ージョン管理は義務付けられてはいない。
[0007] In order to prevent such malfunctions, it is desirable to manage the IDL version (version number). However, to manage the version number of IDL, the developer needs to describe the version information in IDL. Since this is troublesome for the developer, the description may be omitted. In addition, since the description is manually managed, the developer may forget the description or may mistake the content. Therefore, there is a case where it is not managed or a case where it is managed but not appropriate. Note that version management of IDL is not required.

【0008】本発明は、リモートプロシジャコールのイ
ンタフェースの信頼性を向上したネットワークコンピュ
ータシステムを提供することを目的とする。
[0008] It is an object of the present invention to provide a network computer system in which the reliability of a remote procedure call interface is improved.

【0009】また、本発明は、リモートプロシジャコー
ルのインタフェースの変更の管理を行うことなく、確実
にインタフェースの不一致を検出するネットワークコン
ピュータシステムを提供することを目的とする。
Another object of the present invention is to provide a network computer system that reliably detects interface mismatches without managing changes in the interface of a remote procedure call.

【0010】また、本発明は、リモートプロシジャコー
ルのインタフェースの信頼性を向上したサーバを提供す
ることを目的とする。
It is another object of the present invention to provide a server in which the reliability of a remote procedure call interface is improved.

【0011】[0011]

【課題を解決するための手段】本発明のネットワークコ
ンピュータシステムは、リモートプロシジャコール(R
PC)における通信のインタフェースの定義情報から生
成されたインタフェースの識別情報を含み、識別情報を
用いて定義情報に基づいてRPCにおける通信を行うR
PC通信手段を備える。
The network computer system of the present invention comprises a remote procedure call (R).
PC) that includes interface identification information generated from the definition information of the communication interface in the PC, and performs RPC communication based on the definition information using the identification information.
PC communication means is provided.

【0012】本発明のネットワークコンピュータシステ
ムによれば、インタフェースの識別情報が当該RPCの
インタフェースの定義情報それ自体から生成される。従
って、当該定義情報をRPCのインタフェースについて
一意に定めることができる。これにより、インタフェー
スが変更(IDLがバージョンアップ)された場合、運
用時において、インタフェースの不一致を確実に検出す
ることができる。特に、インタフェースが不一致である
にもかかわらず、RPCの不適切な帰り値を用いてアプ
リケーションプログラムを実行してしまうことを防止す
ることができる。また、インタフェースのバージョンの
管理や記述等についての開発者の負担をなくすことがで
き、前記バージョンの管理等についての人為的な誤り等
によるインタフェースの不一致等の発生を防止すること
ができる。
According to the network computer system of the present invention, the interface identification information is generated from the interface definition information of the RPC itself. Therefore, the definition information can be uniquely determined for the RPC interface. As a result, when the interface is changed (IDL is upgraded), it is possible to reliably detect a mismatch between the interfaces during operation. In particular, it is possible to prevent the application program from being executed using an inappropriate return value of the RPC even though the interfaces do not match. In addition, it is possible to eliminate the burden on the developer for managing and describing the version of the interface, and to prevent the occurrence of interface inconsistency due to a human error in the version management and the like.

【0013】また、本発明のネットワークコンピュータ
システムは、リモートプロシジャコールにおける通信の
インタフェースの定義情報からインタフェースの識別情
報を生成する第1の生成手段と、識別情報を用いて定義
情報に基づいてリモートプロシジャコールにおける通信
を行うRPC通信手段を生成し前記RPC通信手段に識
別情報を付加する第2の生成手段とを備える。
Further, the network computer system of the present invention comprises: first generating means for generating interface identification information from communication interface definition information in a remote procedure call; and a remote procedure based on the definition information using the identification information. Second generation means for generating RPC communication means for performing communication in a call and adding identification information to the RPC communication means.

【0014】本発明のネットワークコンピュータシステ
ムによれば、インタフェースの識別情報が当該RPCの
インタフェースの定義情報それ自体から生成され、これ
がリモートプロシジャコールにおける通信を行うRPC
通信手段に付加される。従って、インタフェースのバー
ジョンの管理や記述等についての開発者の負担なしで、
事実上当該管理等を行うことができ、当該管理等につい
ての人為的な誤り等によるインタフェースの不一致等の
発生を防止することができる。
According to the network computer system of the present invention, the identification information of the interface is generated from the definition information of the interface of the RPC itself, and this is used for the RPC performing the communication in the remote procedure call.
It is added to the communication means. Therefore, without the burden of the developer on the management and description of the interface version,
In effect, the management and the like can be performed, and it is possible to prevent the occurrence of interface mismatch and the like due to a human error or the like in the management and the like.

【0015】[0015]

【発明の実施の形態】図1は、ネットワークコンピュー
タシステム構成図であり、本発明のネットワークコンピ
ュータシステムの構成を示す。
FIG. 1 is a configuration diagram of a network computer system, showing the configuration of a network computer system according to the present invention.

【0016】ネットワークコンピュータシステムは、複
数のネットワークコンピュータ20、30とこれらの間
を接続するネットワーク40からなる。ネットワークコ
ンピュータ20、30は、例えばサーバ20及びクライ
アント30からなり、リモートプロシジャコール(RP
C)によりコンピュータ間通信を行う。サーバ20及び
クライアント30は各々複数であってもよい。ネットワ
ークコンピュータシステムは、サーバ20及びクライア
ント30以外に、例えば開発用のホストコンピュータ1
0を備える。
The network computer system comprises a plurality of network computers 20, 30, and a network 40 connecting them. Each of the network computers 20 and 30 includes, for example, a server 20 and a client 30 and has a remote procedure call (RP).
Communication between computers is performed by C). Each of the server 20 and the client 30 may be plural. The network computer system includes, for example, a development host computer 1 in addition to the server 20 and the client 30.
0 is provided.

【0017】ホストコンピュータ10は、サーバ20及
びクライアント30の開発のために、スタブ(STU
B)ジェネレータ12、コンパイラ及びリンカ17を備
える。スタブジェネレータ12、コンパイラ及びリンカ
17は、ホストコンピュータ10を構成する主メモリ
(図示せず)上に存在しホストコンピュータ10を構成
するCPU(図示せず)上で実行される当該プログラム
により実現される。また、ホストコンピュータ10は、
インタフェース定義スクリプト(IDL)11、サーバ
20上で動作するアプリケーション(ソース又はオブジ
ェクト)プログラム(サーバアプリ)18、クライアン
ト30上で動作するアプリケーション(ソース又はオブ
ジェクト)プログラム(クライアントアプリ)19を、
磁気ディスク装置等の補助記憶(図示せず)上に備え
る。
The host computer 10 has a stub (STU) for developing the server 20 and the client 30.
B) A generator 12, a compiler and a linker 17 are provided. The stub generator 12, the compiler and the linker 17 are realized by a program that exists on a main memory (not shown) constituting the host computer 10 and is executed on a CPU (not shown) constituting the host computer 10. . Further, the host computer 10
An interface definition script (IDL) 11, an application (source or object) program (server application) 18 running on the server 20, and an application (source or object) program (client application) 19 running on the client 30;
It is provided on an auxiliary storage (not shown) such as a magnetic disk device.

【0018】ホストコンピュータ10は、図1に点線で
示すように、ネットワーク40を介して、サーバ20等
と接続してもよい。この場合、後述するスタブプログラ
ム15等は、ネットワーク40を介して、サーバ20等
に配信される。また、スタブジェネレータ12、コンパ
イラ及びリンカ17は、バージョンアップされたIDL
(修正IDL)11’に基づいてスタブプログラム15
(22、23)を生成する必要があるため、サーバ20
及びクライアント30の各々にも設けられる(図示せ
ず)。この場合、修正IDL11’は、フレキシブルデ
ィスク等により、サーバ20及びクライアント30に提
供される。
The host computer 10 may be connected to the server 20 or the like via a network 40 as shown by a dotted line in FIG. In this case, a stub program 15 described later is distributed to the server 20 and the like via the network 40. In addition, the stub generator 12, the compiler and the linker 17 are provided with upgraded IDLs.
Stub program 15 based on (corrected IDL) 11 '
Since it is necessary to generate (22, 23), the server 20
And the client 30 (not shown). In this case, the modified IDL 11 'is provided to the server 20 and the client 30 by a flexible disk or the like.

【0019】スタブジェネレータ12はスタブプログラ
ム(又はスタブコード)15を生成する。スタブプログ
ラム15は、アプリケーションプログラムがRPCによ
り通信を実行する時に、これを支援する。即ち、アプリ
ケーションプログラム(21、31)の代わりにRPC
により通信を実行するRPC通信手段15(22、3
2)である。この生成のために、スタブジェネレータ1
2は第1の生成手段13と第2の生成手段14とを備え
る。第1の生成手段13は、RPCにおける通信のイン
タフェースの定義情報(IDL)11からインタフェー
スの識別情報16を生成する。第2の生成手段14は、
定義情報11に基づいてRPCにおける通信を行うRP
C通信手段15を生成し、RPC通信手段15に識別情
報16を付加する。
The stub generator 12 generates a stub program (or stub code) 15. The stub program 15 supports the application program when performing communication by RPC. That is, instead of the application programs (21, 31), RPC
RPC communication means 15 (22, 3
2). For this generation, stub generator 1
2 comprises a first generating means 13 and a second generating means 14. The first generation unit 13 generates interface identification information 16 from the interface definition information (IDL) 11 for communication in RPC. The second generation means 14
RP performing communication in RPC based on definition information 11
C communication means 15 is generated, and identification information 16 is added to the RPC communication means 15.

【0020】この例において、定義情報11は、インタ
フェース定義スクリプト(IDL)11からなる。ID
L11はRPCにおける通信のインタフェースを定義す
る。また、識別情報16は、定義情報11から生成され
たハッシュ値(ハッシュコード)16からなる。従っ
て、この例では、IDL11からハッシングにより識別
情報16としてのハッシュ値16が生成され、IDL1
1に基づいてスタブプログラム15が生成される。そし
て、ハッシュ値16はスタブプログラム15に付加され
る(埋め込まれる)。このために、スタブジェネレータ
12はハッシュ関数を備える。ハッシュ関数としては、
例えば周知のRSA−MD5:RFC1321を用い、
例えば16バイトのメッセージダイジェストとされる。
スタブプログラム15としては、クライアント30上の
スタブプログラム(クライアントスタブ)32と(なる
もの)、及び、サーバ20上のスタブプログラム(サー
バスタブ)22と(なるもの)が生成される。
In this example, the definition information 11 comprises an interface definition script (IDL) 11. ID
L11 defines a communication interface in RPC. The identification information 16 includes a hash value (hash code) 16 generated from the definition information 11. Therefore, in this example, the hash value 16 as the identification information 16 is generated from the IDL 11 by hashing, and the IDL 1
1, a stub program 15 is generated. Then, the hash value 16 is added (embedded) to the stub program 15. To this end, the stub generator 12 has a hash function. As a hash function,
For example, using the well-known RSA-MD5: RFC1321,
For example, a message digest of 16 bytes is used.
As the stub program 15, a stub program (client stub) 32 on the client 30 (which becomes) and a stub program (server stub) 22 on the server 20 (which becomes) are generated.

【0021】ここで、IDL11の一例を図2に示す。
図2において、IDL11は、RPCのインタフェース
の種々の情報を記述する。IDL11は、図2に示すよ
うなテキストファイルである。図2のIDL11の全体
がハッシングに用いられる。ハッシングの結果生成され
るハッシュ値16は、図3に示すように、16バイトの
16進数である。
Here, an example of the IDL 11 is shown in FIG.
In FIG. 2, the IDL 11 describes various information of the RPC interface. The IDL 11 is a text file as shown in FIG. The entire IDL 11 of FIG. 2 is used for hashing. The hash value 16 generated as a result of hashing is a 16-byte hexadecimal number as shown in FIG.

【0022】サーバスタブ22の一例を図3に示す。サ
ーバスタブ22は、実際には、2個のハッシュ値16
(161、162)を保持する。例えば、ハッシュ値1
61は、クライアント30から受信した伝送パケット5
0に埋め込まれたハッシュ値16と比較するためのもの
である。サーバスタブ22は、受信した識別情報16を
解析し、これが自己の持つ識別情報161と不一致であ
る場合、受信した識別情報16の送信元であるクライア
ント30にエラー情報を返信する。ハッシュ値162
は、当該サーバ20がクライアント30に対して伝送パ
ケット50を送信する際に、これに埋め込むためのもの
である。サーバスタブ22は、2個のエラー値221及
び222をも保持する。エラー値221及び222は、
ハッシュ値161とクライアント30から受信した伝送
パケット50に埋め込まれたハッシュ値16との比較結
果が不一致である場合に、クライアント30に対して返
信されるエラーメッセージである。エラー値221及び
222は、エラーの種類に応じて、使い分けられる。な
お、クライアントスタブ32も同様の構成を有する。
FIG. 3 shows an example of the server stub 22. The server stub 22 actually has two hash values 16
(161, 162) is held. For example, hash value 1
61 is a transmission packet 5 received from the client 30
This is for comparison with the hash value 16 embedded in 0. The server stub 22 analyzes the received identification information 16 and, if it does not match the identification information 161, the server stub 22 returns error information to the client 30 that is the transmission source of the received identification information 16. Hash value 162
When the server 20 transmits the transmission packet 50 to the client 30, the server 20 embeds the transmission packet 50 in the transmission packet 50. The server stub 22 also holds two error values 221 and 222. Error values 221 and 222 are
This is an error message returned to the client 30 when the comparison result between the hash value 161 and the hash value 16 embedded in the transmission packet 50 received from the client 30 does not match. The error values 221 and 222 are properly used depending on the type of error. Note that the client stub 32 has a similar configuration.

【0023】コンパイラ及びリンカ17は、クライアン
トアプリ(のソース)19をコンパイルしたものにクラ
イアントスタブ15(32)をリンクして、クライアン
トアプリの実行形式のロードモジュール(クライアント
RM)33を得て、これをクライアント30にインスト
ールする。また、コンパイラ及びリンカ17は、サーバ
アプリ(のソース)18をコンパイルしたものにサーバ
スタブ15(22)をリンクしてサーバアプリの実行形
式のロードモジュール(サーバRM)23を得て、これ
をサーバ20にインストールする。なお、クライアント
RM33もクライアントアプリといい、サーバRM23
もサーバアプリということとする。
The compiler and linker 17 links the client stub 15 (32) to the compiled client application (source) 19 to obtain a load module (client RM) 33 of the executable format of the client application. Is installed on the client 30. Further, the compiler and linker 17 links the server stub 15 (22) to the compiled version of the server application (source) 18 to obtain a load module (server RM) 23 in the executable form of the server application. Install on 20. Note that the client RM 33 is also called a client application, and the server RM 23
Is also a server application.

【0024】ネットワークコンピュータであるサーバ2
0は、複数の(実行形式の)サーバアプリ23を備え
る。複数のサーバアプリ23の各々は、サーバ20が提
供するサービス(呼び出されるプロシジャ)の各々に応
じて設けられる。複数のサーバアプリ23の各々がスタ
ブプログラム(サーバスタブ)22を備える。ネットワ
ークコンピュータであるクライアント20は、複数の
(実行形式の)クライアントアプリ33を備える。複数
のクライアントアプリ33の各々は、クライアント30
が実行する処理(アプリケーション)の各々に応じて設
けられる。複数のクライアントアプリ33の各々がスタ
ブプログラム(クライアントスタブ)32を備える。
Server 2 which is a network computer
0 has a plurality of (executable) server applications 23. Each of the plurality of server applications 23 is provided according to each of the services (procedures called) provided by the server 20. Each of the plurality of server applications 23 includes a stub program (server stub) 22. The client 20, which is a network computer, includes a plurality of (executable) client applications 33. Each of the plurality of client applications 33
Are provided in accordance with each of the processes (applications) to be executed. Each of the plurality of client applications 33 includes a stub program (client stub) 32.

【0025】ネットワークコンピュータであるサーバ2
0及びクライアント30は、ロードモジュールの形で、
各々、RPC通信手段であるスタブプログラム22及び
32(15)を備える。スタブプログラム22及び32
は、RPCにおける通信のインタフェースの定義情報1
1から生成されたインタフェースの識別情報16を含
み、定義情報11に基づいてRPCにおける通信を行
う。具体的には、クライアント30では、RPC通信手
段32が、少なくとも識別情報16を送信する。サーバ
20では、RPC通信手段22が、少なくとも受信した
識別情報16を解析する。
Server 2 which is a network computer
0 and the client 30 in the form of a load module,
Each has stub programs 22 and 32 (15) as RPC communication means. Stub programs 22 and 32
Is the definition information 1 of the communication interface in the RPC.
RPC communication is performed based on the definition information 11 including the interface identification information 16 generated from 1. Specifically, in the client 30, the RPC communication unit 32 transmits at least the identification information 16. In the server 20, the RPC communication unit 22 analyzes at least the received identification information 16.

【0026】サーバ20及びクライアント30は、ネッ
トワーク40を介して、RPCに従って、コンピュータ
間通信を行う。この通信において、識別情報16が当該
伝送データの先頭に(又は先頭の伝送パケットに)付加
される。従って、この例では、前述のように、定義情報
11であるIDL11から生成された識別情報16であ
るハッシュ値16が、先頭の伝送パケットに格納され
る。
The server 20 and the client 30 communicate with each other via the network 40 according to the RPC. In this communication, the identification information 16 is added to the head of the transmission data (or to the transmission packet at the head). Therefore, in this example, as described above, the hash value 16 that is the identification information 16 generated from the IDL 11 that is the definition information 11 is stored in the first transmission packet.

【0027】クライアントスタブ32は、少なくとも識
別情報16としてのハッシュ値16を送信する。従っ
て、クライアントスタブ32として生成されたスタブプ
ログラム15は、ハッシュ値16を送信する機能を備え
る。サーバスタブ22は、少なくとも受信した識別情報
16としてのハッシュ値16を解析する。従って、サー
バスタブ22として生成されたスタブプログラム15
は、ハッシュ値16を解析する機能を備える。なお、実
際は、クライアントスタブ32も受信した識別情報16
を解析し、サーバスタブ22も識別情報16を送信する
場合があるので、両者は同一であってよい。
The client stub 32 transmits at least the hash value 16 as the identification information 16. Therefore, the stub program 15 generated as the client stub 32 has a function of transmitting the hash value 16. The server stub 22 analyzes at least the hash value 16 as the received identification information 16. Therefore, the stub program 15 generated as the server stub 22
Has a function of analyzing the hash value 16. Note that, in practice, the client stub 32 also receives the received identification information 16.
May be analyzed, and the server stub 22 may also transmit the identification information 16, so that both may be the same.

【0028】サーバ20及びクライアント30は、コン
ピュータ間通信を行うために、各々、伝送処理部24及
び34を備える。また、クライアント30は、クライア
ントアプリ31における処理結果等を表示する表示装置
35、クライアントアプリ31における処理のための指
示入力等のための入力装置36を備える。
The server 20 and the client 30 include transmission processing units 24 and 34, respectively, for performing inter-computer communication. Further, the client 30 includes a display device 35 for displaying a processing result or the like in the client application 31 and an input device 36 for inputting an instruction for a processing in the client application 31.

【0029】図4は、スタブプログラム22、32の生
成処理フローを示す。
FIG. 4 shows a flow of processing for generating the stub programs 22 and 32.

【0030】開発者が、IDL11を作成し(ステップ
S1)、この後、スタブジェネレータ12を起動する
(ステップS2)。
The developer creates the IDL 11 (step S1), and thereafter activates the stub generator 12 (step S2).

【0031】スタブジェネレータ12が、IDL11を
読み込み(ステップS3)、IDL11をハッシングす
ることにより、これからハッシュ値16を算出する(ス
テップS4)。この後、スタブジェネレータ12が、ク
ライアントスタブ32を生成する(ステップS5)。こ
のクライアントスタブ32には、識別情報16としてハ
ッシュ値16が埋め込まれる。また、スタブジェネレー
タ12が、サーバスタブ22を生成する(ステップS
6)。このサーバスタブ22にも、識別情報16として
同一のハッシュ値16が埋め込まれる。
The stub generator 12 reads the IDL 11 (step S3) and hashes the IDL 11, thereby calculating a hash value 16 from this (step S4). Thereafter, the stub generator 12 generates the client stub 32 (Step S5). The hash value 16 is embedded in the client stub 32 as the identification information 16. Also, the stub generator 12 generates the server stub 22 (step S
6). The same hash value 16 is embedded in the server stub 22 as the identification information 16.

【0032】開発者が、クライアント30に、クライア
ントアプリ(APLとも記す、以下同じ)33をビルド
(内蔵)する(ステップS7)。即ち、コンパイラ及び
リンカ17により、クライアントアプリ19をコンパイ
ルしたもの(31)にクライアントスタブ32をリンク
してクライアントアプリ19のロードモジュール(クラ
イアントRM)33を得て、これをクライアント30に
インストールする。
The developer builds (built-in) a client application (also referred to as APL, hereinafter the same) 33 in the client 30 (step S7). That is, the client stub 32 is linked to the compiled (31) of the client application 19 by the compiler and linker 17 to obtain a load module (client RM) 33 of the client application 19, and this is installed in the client 30.

【0033】また、開発者が、サーバ20に、サーバア
プリ23をビルド(内蔵)する(ステップS8)。即
ち、コンパイラ及びリンカ17により、サーバアプリ1
8をコンパイルしたもの(21)にサーバスタブ22を
リンクしてサーバアプリ18のロードモジュール(サー
バRM)23を得て、これをサーバ20にインストール
する。
Further, the developer builds (built-in) the server application 23 in the server 20 (step S8). That is, the server application 1 is generated by the compiler and the linker 17.
By linking the server stub 22 to the compiled version (21) of the server application 8, a load module (server RM) 23 of the server application 18 is obtained, and this is installed in the server 20.

【0034】図5は、クライアント30におけるRPC
による通信処理フローを示す。
FIG. 5 shows the RPC in the client 30.
1 shows a communication processing flow.

【0035】(クライアントRM33の)クライアント
アプリ31が、サーバ20の呼び出しを(クライアント
RM33の)クライアントスタブ32に依頼する(ステ
ップS11)。
The client application 31 (of the client RM 33) requests the client stub 32 (of the client RM 33) to call the server 20 (step S11).

【0036】クライアントスタブ32が、伝送データの
作成処理を行う(ステップS12)。この作成処理にお
いて、クライアントスタブ32が、自己の保持するハッ
シュ値16をデータの先頭に埋め込み(ステップS1
3)、パラメータを組み立てることにより伝送パケット
50を生成し(ステップS14)、この送信を伝送処理
部34に依頼する。
The client stub 32 performs a process of creating transmission data (step S12). In this creation process, the client stub 32 embeds the hash value 16 held by itself in the head of the data (step S1).
3), a transmission packet 50 is generated by assembling the parameters (step S14), and the transmission is requested to the transmission processing unit 34.

【0037】この依頼を受けたクライアント30の伝送
処理部34が、通信処理を行う。即ち、伝送処理部34
がサーバ20に伝送パケット50を送信する(ステップ
S15)。この送信処理は図6のステップS21に対応
する。伝送処理部34は、サーバ20からの応答がある
と、当該処理結果を受信する(ステップS16)。この
受信処理は図6のステップS29に対応する。この後、
クライアント30における処理は、クライアントスタブ
32を介して、クライアントアプリ31に復帰する(ス
テップS17)。
The transmission processing unit 34 of the client 30 receiving the request performs communication processing. That is, the transmission processing unit 34
Transmits the transmission packet 50 to the server 20 (step S15). This transmission processing corresponds to step S21 in FIG. Upon receiving a response from the server 20, the transmission processing unit 34 receives the processing result (step S16). This receiving process corresponds to step S29 in FIG. After this,
The processing in the client 30 returns to the client application 31 via the client stub 32 (step S17).

【0038】図6は、サーバ20におけるRPCによる
通信処理フローを示す。
FIG. 6 shows a communication processing flow by the RPC in the server 20.

【0039】サーバ20の伝送処理部24が、クライア
ント30からの伝送パケット50を受信し(ステップS
21)、起動対象のサーバスタブ22を検索して選択し
(ステップS22)、当該サーバスタブ22を起動する
(ステップS23)。ステップS21は図5のステップ
S15に対応する。
The transmission processing unit 24 of the server 20 receives the transmission packet 50 from the client 30 (step S
21), search and select the server stub 22 to be started (step S22), and start the server stub 22 (step S23). Step S21 corresponds to step S15 in FIG.

【0040】起動されたサーバスタブ22は受信した伝
送データを解析する。即ち、サーバスタブ22が、受信
したハッシュ値16と自己に埋め込まれているハッシュ
値16とが等しいか否かを調べる(ステップS24)。
The started server stub 22 analyzes the received transmission data. That is, the server stub 22 checks whether the received hash value 16 is equal to the hash value 16 embedded in the server stub 22 (step S24).

【0041】等しい場合、サーバスタブ22は、伝送パ
ケット50の後続のパラメータを解析して(ステップS
25)、サーバアプリ21を起動し(ステップS2
6)、応答を待つ。起動されたサーバアプリ21は、解
析された後続のパラメータを用いて所定の処理を行い、
その処理結果をサーバスタブ22に返す(ステップS2
7)。サーバスタブ22は、サーバアプリ21からの処
理結果を帰り値(復帰値)として設定し(ステップS2
8)、伝送処理部24に返信を依頼する。
If they are equal, the server stub 22 analyzes subsequent parameters of the transmission packet 50 (Step S).
25), and starts the server application 21 (step S2)
6) Wait for a response. The started server application 21 performs a predetermined process using the analyzed subsequent parameter,
The processing result is returned to the server stub 22 (step S2
7). The server stub 22 sets the processing result from the server application 21 as a return value (return value) (Step S2
8) Request the transmission processing unit 24 for a reply.

【0042】伝送処理部24は、サーバスタブ22から
の依頼に従って、結果をクライアント30に返信する
(ステップS29)。この処理は図5のステップS16
に対応する。
The transmission processing unit 24 returns a result to the client 30 according to the request from the server stub 22 (step S29). This processing corresponds to step S16 in FIG.
Corresponding to

【0043】一方、ステップS24において受信したハ
ッシュ値16と自己に埋め込まれているハッシュ値16
とが等しくない場合、サーバスタブ22は、エラー値を
設定し(ステップS30)、伝送処理部24に返信を依
頼する。この後、ステップS29が実行される。
On the other hand, the hash value 16 received in step S24 and the hash value 16
If is not equal, the server stub 22 sets an error value (step S30) and requests the transmission processing unit 24 to return. Thereafter, step S29 is executed.

【0044】図7及び図8は、ハッシュ値16を用いた
インタフェースのバージョンの検出処理説明図である。
FIGS. 7 and 8 are explanatory diagrams of the interface version detection processing using the hash value 16.

【0045】図7において、RPCを採用するアプリケ
ーションプログラム23、33の開発時、開発者によ
り、インタフェース定義スクリプト(IDL)11が用
意される。IDL11はRPCのインタフェースを記述
する。
In FIG. 7, when developing the application programs 23 and 33 adopting the RPC, an interface definition script (IDL) 11 is prepared by the developer. The IDL 11 describes an RPC interface.

【0046】スタブジェネレータ12が、IDL11に
基づいて、スタブプログラム15を生成する。また、ス
タブジェネレータ12は、IDL11からハッシングに
より識別情報(ハッシュ値)16を生成する。スタブジ
ェネレータ12は、生成した識別情報16をスタブプロ
グラム15(サーバスタブ22及びクライアントスタブ
32)に付加する。
The stub generator 12 generates a stub program 15 based on the IDL 11. The stub generator 12 generates identification information (hash value) 16 from the IDL 11 by hashing. The stub generator 12 adds the generated identification information 16 to the stub program 15 (the server stub 22 and the client stub 32).

【0047】識別情報16はIDL11(のバージョ
ン)を一意に特定できるものであればよい。従って、識
別情報16はIDL11のバージョン情報である。例え
ば、識別情報16はIDL11から生成したハッシュ値
16(ハッシュ値)からなる。即ち、IDL11それ自
体をハッシングすることにより、識別情報16を生成す
る。ハッシュ値16が相互に衝突することは、確率的に
見て事実上あり得ない。従って、このハッシュ値16は
IDL11(のバージョン)を一意に特定できる。ID
L11のバージョン情報をIDL11自体のハッシング
により生成しているので、開発者がIDL11の版数を
IDL11に記述し管理する必要がなく、従って、ID
L11のバージョン情報を人為的に誤ることもない。
The identification information 16 may be any information that can uniquely specify (the version of) the IDL 11. Therefore, the identification information 16 is version information of the IDL 11. For example, the identification information 16 includes a hash value 16 (hash value) generated from the IDL 11. That is, the identification information 16 is generated by hashing the IDL 11 itself. There is virtually no probability that the hash values 16 collide with each other. Therefore, the hash value 16 can uniquely specify (the version of) the IDL 11. ID
Since the version information of L11 is generated by hashing the IDL11 itself, there is no need for the developer to describe and manage the version number of the IDL11 in the IDL11.
There is no human error in the version information of L11.

【0048】スタブプログラム15は、コンパイラ及び
リンカ17の実行するコンパイル及びリンクにより、ア
プリケーションプログラムに組み込まれる。即ち、サー
バスタブ22及びクライアントスタブ32が、各々、コ
ンパイルされたサーバアプリ21及びクライアントアプ
リ31にリンクされる。これにより、サーバアプリ21
のロードモジュール(サーバRM)23及びクライアン
トアプリ31のロードモジュール(クライアントRM)
33が得られる。
The stub program 15 is incorporated into an application program by compiling and linking executed by the compiler and linker 17. That is, the server stub 22 and the client stub 32 are linked to the compiled server application 21 and client application 31, respectively. Thereby, the server application 21
Load module (server RM) 23 and client application 31 load module (client RM)
33 are obtained.

【0049】RPCを採用するアプリケーションプログ
ラム23、33の運用時において、サーバ20及びクラ
イアント30上のアプリケーションプログラム23、3
3は、各々のスタブプログラム22、32(15)によ
りRPCにより通信を実行する。例えば、クライアント
スタブ32は、送信する伝送パケット50を生成して、
その先頭に自己に付加された識別情報16であるハッシ
ュ値16を付加する。これを受信したサーバスタブ22
は、当該伝送パケット50からハッシュ値16を取り出
して、これと自己に付加されたハッシュ値16とを比較
する。両者が一致すれば、IDL11(のバージョン)
が一致していることになる。従って、以後の通信が正し
いことが保証される。
When operating the application programs 23 and 33 adopting the RPC, the application programs 23 and 3 on the server 20 and the client 30 are operated.
3 executes communication by RPC according to the respective stub programs 22, 32 (15). For example, the client stub 32 generates a transmission packet 50 to be transmitted,
The hash value 16 which is the identification information 16 added to the self is added to the head. Server stub 22 that received this
Extracts the hash value 16 from the transmission packet 50 and compares it with the hash value 16 added to itself. If they match, IDL11 (version)
Will match. Therefore, it is guaranteed that the subsequent communication is correct.

【0050】図8において、図7の開発の後、RPCの
インタフェースの変更により、開発者により、バージョ
ンアップ(改版)されたIDL(修正IDL)11’が
作成される。そこで、前述と同様に、スタブジェネレー
タ12が、修正IDL11’に基づいてスタブプログラ
ム15’を生成し、修正IDL11’から新たなハッシ
ュ値(新ハッシュ値)16’を生成する。IDL11の
バージョンアップがあれば、それが送信パケットのフォ
ーマットの変更ではなく単なるバグの修正であっても、
当該修正が必ずハッシュ値16に反映される。即ち、バ
ージョンアップの前後において、ハッシュ値16と1
6’とは必ず異なるものとなる。従って、この点から
も、ハッシュ値16はIDL11(のバージョン)を一
意に特定できる。
In FIG. 8, after the development of FIG. 7, the IDL (modified IDL) 11 'upgraded (revised) is created by the developer by changing the interface of the RPC. Thus, as described above, the stub generator 12 generates a stub program 15 'based on the modified IDL 11', and generates a new hash value (new hash value) 16 'from the modified IDL 11'. If there is a version upgrade of IDL11, even if it is not a change of the format of the transmission packet but a mere bug fix,
The modification is always reflected in the hash value 16. That is, before and after the version upgrade, the hash values 16 and 1
6 'will always be different. Therefore, also from this point, the hash value 16 can uniquely specify (the version of) the IDL 11.

【0051】通常は、スタブジェネレータ12により、
クライアント30及びサーバ20の双方において、新ハ
ッシュ値16’を埋め込んだクライアントスタブ32’
及びサーバスタブ22’として再度生成される。なお、
スタブジェネレータ12は、新ハッシュ値16’を生成
した後、ハッシュ値16と16’とを比較し、両者に相
違がない場合、インタフェースの変更がRPC通信にか
かわりのないものであると判断して、新しいクライアン
トスタブ32’及びサーバスタブ22’の生成を行わな
い。これにより、不必要な更新は行われることがない。
Normally, the stub generator 12
In both the client 30 and the server 20, the client stub 32 'in which the new hash value 16' is embedded.
And a server stub 22 '. In addition,
After generating the new hash value 16 ′, the stub generator 12 compares the hash values 16 and 16 ′, and if there is no difference between them, determines that the interface change is not related to the RPC communication. , Do not generate a new client stub 32 'and server stub 22'. As a result, unnecessary updates are not performed.

【0052】しかし、修正IDL11’に基づくスタブ
プログラム15’が作成されたにもかかわらず、サーバ
20が、これをコンパイル(及びリンク)しなかったと
する。クライアント30は、前述と同様に、コンパイル
(及びリンク)したとする。この場合、運用時におい
て、例えばクライアントスタブ32’は、その先頭に新
ハッシュ値16を付加した伝送パケット50をサーバス
タブ22へ送信する。これを受信したサーバスタブ22
が、当該伝送パケット50から取り出した新ハッシュ値
16’と、これと自己に付加された(旧)ハッシュ値1
6とを比較する。従って、両者は一致しないので、ID
L11(のバージョン)が不一致であるとして、サーバ
スタブ22からクライアントスタブ32’にエラーが通
知される。
However, suppose that the server 20 did not compile (and link) the stub program 15 'based on the modified IDL 11', even though it was created. It is assumed that the client 30 has been compiled (and linked) as described above. In this case, at the time of operation, for example, the client stub 32 ′ transmits the transmission packet 50 to which the new hash value 16 is added at the head thereof to the server stub 22. Server stub 22 that received this
Is the new hash value 16 ′ extracted from the transmission packet 50 and the (old) hash value 1
Compare with 6. Therefore, since they do not match, the ID
The server stub 22 notifies the client stub 32 'of an error, assuming that L11 (version) does not match.

【0053】従って、先頭の伝送パケット50を解析し
た時点で、IDL11が不一致であることを検出するこ
とができる。これにより、RPCの不適切な帰り値を用
いてアプリケーションプログラム23、33を実行して
しまうことを防止することができる。また、以後のパケ
ットを解析する必要がないので、処理に無駄が生じるこ
とがない。なお、以上とは逆に、クライアント30にお
いて新しいクライアントスタブ32’のコンパイルが行
われていない場合でも同様である。また、利用者が誤っ
て、古いサーバスタブ22又はクライアントスタブ32
を起動してしまった場合でも同様である。更に、例え
ば、サーバ20において、サーバスタブ22(従って、
IDL11)を勝手に変更したような場合でも同様であ
る。
Therefore, when the first transmission packet 50 is analyzed, it can be detected that the IDLs 11 do not match. Thus, it is possible to prevent the application programs 23 and 33 from being executed using an inappropriate return value of the RPC. Further, since it is not necessary to analyze the subsequent packets, there is no waste in processing. Contrary to the above, the same applies to a case where a new client stub 32 'is not compiled in the client 30. In addition, if the user mistakenly uses the old server stub 22 or client stub 32
The same is true even if you have started Further, for example, in the server 20, the server stub 22 (accordingly,
The same applies to the case where IDL 11) is changed without permission.

【0054】図9及び図10は、ネットワークコンピュ
ータシステム構成図であり、図1のネットワークコンピ
ュータシステム(RPCシステム)を利用した汎用的な
RPCシステムの構成を示す。
FIGS. 9 and 10 are network computer system configuration diagrams showing the configuration of a general-purpose RPC system using the network computer system (RPC system) of FIG.

【0055】図1のRPCシステムにおいては、サーバ
20におけるアプリケーションプログラム(サブルーチ
ン)の各々に応じて、IDL11及びスタブジェネレー
タ12を用意する必要がある。また、既存のRPCシス
テムにハッシュ値16によるインタフェースの検査を導
入するためには、既存のプログラムを当該処理を行うよ
うに変更する必要がある。
In the RPC system of FIG. 1, it is necessary to prepare an IDL 11 and a stub generator 12 according to each of the application programs (subroutines) in the server 20. Further, in order to introduce an interface check based on the hash value 16 into an existing RPC system, it is necessary to change an existing program to perform the processing.

【0056】そこで、図9に示すように、図1のRPC
システムを基盤としてのRPCシステムとして採用す
る。即ち、RPCサーバシステム200及びRPCクラ
イアントシステム300は、各々、図1のサーバ20及
びクライアント30に相当する。図9のサーバ20とク
ライアント30との間の通信は、全て1個のRPCサー
バシステム200及びRPCクライアントシステム30
0に依存する。基盤としてのRPCサーバシステム20
0及びRPCクライアントシステム300と実際のアプ
リケーションプログラム21A及び31Aとの間の通信
(従って、アプリケーションプログラム間の通信)を、
1個の汎用(ユニバーサル)インタフェース60で、統
一的に通信する。汎用インタフェース60と実際のアプ
リケーションプログラム21A及び31Aとの間には、
各々、マーシャリングプログラム(又はコード)22A
及び32Aが存在する。マーシャリングプログラム22
A及び32Aは、通常のRPCシステムにおけるスタブ
プログラム(図1のスタブプログラム22及び32)が
実行する種々の処理を行う。
Therefore, as shown in FIG. 9, the RPC shown in FIG.
The system is adopted as a base RPC system. That is, the RPC server system 200 and the RPC client system 300 correspond to the server 20 and the client 30 in FIG. 1, respectively. Communication between the server 20 and the client 30 in FIG. 9 is performed by one RPC server system 200 and one RPC client system 30.
Depends on 0. RPC server system 20 as a base
0 and the communication between the RPC client system 300 and the actual application programs 21A and 31A (therefore, communication between the application programs)
A single universal interface 60 performs unified communications. Between the general-purpose interface 60 and the actual application programs 21A and 31A,
Each is a marshalling program (or code) 22A
And 32A are present. Marshalling program 22
A and 32A perform various processes executed by stub programs (stub programs 22 and 32 in FIG. 1) in a normal RPC system.

【0057】即ち、図9から判るように、図9のサーバ
20とクライアント30は階層的な通信手段を構成す
る。下位RPC通信手段であるマーシャリングプログラ
ム22A及び32Aは、インタフェースの識別情報16
を含む。識別情報16は、RPCにより通信を実行する
サーバ20上のアプリケーションプログラム21Aにお
けるRPCにおける通信のインタフェースを定義する定
義部分から生成される。マーシャリングプログラム22
A及び32Aは、識別情報16を用いて、定義部分に基
づいて、RPCにおける通信を行う。上位RPC通信手
段であるRPCサーバシステム200及びRPCクライ
アントシステム300(サーバスタブ222及びクライ
アントスタブ332)は、RPCにおける通信のインタ
フェースの定義情報に基づいて、RPCにおける通信を
行う。
That is, as can be seen from FIG. 9, the server 20 and the client 30 in FIG. 9 constitute a hierarchical communication means. The marshalling programs 22A and 32A, which are lower-level RPC communication means, use the interface identification information 16
including. The identification information 16 is generated from a definition part that defines a communication interface in RPC in the application program 21A on the server 20 that executes communication by RPC. Marshalling program 22
A and 32A perform communication in the RPC based on the definition part using the identification information 16. The RPC server system 200 and the RPC client system 300 (the server stub 222 and the client stub 332), which are upper RPC communication means, perform RPC communication based on the definition information of the RPC communication interface.

【0058】インタフェースの識別情報16は、第1の
生成手段であるスタブジェネレータ12Aにより、アプ
リケーションプログラム21Aの前記定義部分から生成
される。下位RPC通信手段であるマーシャリングプロ
グラム22A及び32Aは、第2の生成手段であるスタ
ブジェネレータ12Aにより、前記定義部分に基づいて
生成される。上位RPC通信手段であるサーバスタブ2
22及びクライアントスタブ332は、RPCにおける
通信のインタフェースの定義情報(IDL)11に基づ
いて、第3の生成手段であるスタブジェネレータ12に
より、前記定義情報11に基づいて生成される。
The interface identification information 16 is generated from the above defined portion of the application program 21A by the stub generator 12A as the first generation means. The marshalling programs 22A and 32A as lower RPC communication means are generated by the stub generator 12A as second generation means based on the definition part. Server stub 2 as upper RPC communication means
The 22 and the client stub 332 are generated based on the definition information (IDL) 11 of the communication interface in the RPC by the stub generator 12, which is a third generation unit, based on the definition information 11.

【0059】即ち、図10に示すように、RPCサーバ
システム200におけるサーバスタブ222は、そのI
DL11に基づいて、スタブジェネレータ12により生
成される。この時、IDL11からのハッシュ値(1
6)の生成は行われない。従って、この例におけるサー
バスタブ222は、識別情報16を持たない(この点
で、図1の例とは異なる)。サーバスタブ222とサー
バアプリ221とで、RPCサーバシステム200(の
ロードモジュール223)を構成する。RPCクライア
ントシステム300におけるクライアントスタブ332
についても同様である。クライアントスタブ332とク
ライアントアプリ331とで、RPCクライアントシス
テム300(のロードモジュール333)を構成する。
なお、図10において、コンパイラ及びリンカ(1
7)、伝送処理部(24、34)は、図示を省略してい
る。
That is, as shown in FIG. 10, the server stub 222 in the RPC server system 200
It is generated by the stub generator 12 based on the DL 11. At this time, the hash value (1
6) is not generated. Therefore, the server stub 222 in this example does not have the identification information 16 (in this point, it is different from the example of FIG. 1). The server stub 222 and the server application 221 constitute (the load module 223 of) the RPC server system 200. Client stub 332 in RPC client system 300
The same applies to. The client stub 332 and the client application 331 constitute (the load module 333 of) the RPC client system 300.
In FIG. 10, the compiler and linker (1
7), illustration of the transmission processing units (24, 34) is omitted.

【0060】一方、サーバ20上のマーシャリングプロ
グラム(サーバマーシャリング)22Aは、サーバアプ
リ21Aのソースコード21A’上のインタフェース定
義部に基づいて、スタブジェネレータ12Aにより生成
される。この時、インタフェース定義部からのハッシュ
値16が生成される。従って、サーバマーシャリング2
2Aは、ハッシュ値16からなる識別情報16を持つ。
クライアント30上のマーシャリングプログラム(クラ
イアントマーシャリング)32Aも、同様に、サーバア
プリ21Aのソースコード21A’上のインタフェース
定義部に基づいてスタブジェネレータ12Aにより生成
され、インタフェース定義部からのハッシュ値16が埋
め込まれる。従って、クライアントマーシャリング32
Aも、ハッシュ値16からなる識別情報16を持つ。
On the other hand, the marshalling program (server marshalling) 22A on the server 20 is generated by the stub generator 12A based on the interface definition section on the source code 21A 'of the server application 21A. At this time, a hash value 16 from the interface definition unit is generated. Therefore, server marshalling 2
2A has identification information 16 consisting of a hash value 16.
Similarly, the marshalling program (client marshalling) 32A on the client 30 is generated by the stub generator 12A based on the interface definition section on the source code 21A 'of the server application 21A, and the hash value 16 from the interface definition section is embedded. . Therefore, client marshalling 32
A also has identification information 16 consisting of a hash value 16.

【0061】図11は、サーバアプリ21Aのソースコ
ード21A’上のインタフェース定義部の一例を示す図
である。ソースコード21A’上のインタフェース定義
部は、図11(A)に示すパラメータ部と、図11
(B)に示すリンケージ部とからなる。これらが、サー
バマーシャリング22Aとサーバアプリ21Aとの間の
通信に関する定義情報である。
FIG. 11 is a diagram showing an example of the interface definition section on the source code 21A 'of the server application 21A. The interface definition part on the source code 21A 'includes a parameter part shown in FIG.
(B). These are the definition information regarding the communication between the server marshalling 22A and the server application 21A.

【0062】図12は、マーシャリングプログラムの生
成処理フローである。
FIG. 12 is a flowchart of the process of generating a marshalling program.

【0063】開発者が、サーバアプリ21Aのソースコ
ード21A’を作成し(ステップS31)、この後、ス
タブジェネレータ12Aを起動する(ステップS3
2)。なお、RPCサーバシステム200及びRPCク
ライアントシステム300は、図1の例と類似の処理に
より、既に生成されているものとする。
The developer creates the source code 21A 'of the server application 21A (step S31), and thereafter activates the stub generator 12A (step S3).
2). It is assumed that the RPC server system 200 and the RPC client system 300 have already been generated by processing similar to the example in FIG.

【0064】スタブジェネレータ12Aが、サーバアプ
リ21Aのソースコード21A’を読み込み(ステップ
S33)、ソースコード21A’上のインタフェース定
義部からハッシュ値16を算出する(ステップS3
4)。
The stub generator 12A reads the source code 21A 'of the server application 21A (step S33), and calculates a hash value 16 from the interface definition section on the source code 21A' (step S3).
4).

【0065】スタブジェネレータ12が、クライアント
マーシャリング32Aを生成する(ステップS35)。
このクライアントマーシャリング32Aには、識別情報
16としてハッシュ値16が埋め込まれる。
The stub generator 12 generates the client marshalling 32A (step S35).
A hash value 16 is embedded as identification information 16 in the client marshalling 32A.

【0066】スタブジェネレータ12Aが、サーバマー
シャリング22Aを生成する(ステップS36)。この
サーバマーシャリング22Aにも、識別情報16として
同一のハッシュ値16が埋め込まれる。
The stub generator 12A generates the server marshalling 22A (step S36). The same hash value 16 is embedded in the server marshalling 22A as the identification information 16.

【0067】クライアント30に、クライアントアプリ
33Aをビルド(内蔵)する(ステップS37)。即
ち、コンパイラ及びリンカ(17)により、クライアン
トアプリをコンパイルしたもの(31A)にクライアン
トマーシャリング32Aをリンクしてクライアントアプ
リのロードモジュール(クライアントRM)33Aを得
て、これをクライアント30にインストールする。
The client application 33A is built (built-in) in the client 30 (step S37). That is, the client marshalling 32A is linked to the compiled (31A) of the client application by the compiler and linker (17) to obtain the load module (client RM) 33A of the client application, which is installed in the client 30.

【0068】サーバ20に、サーバアプリ23Aをビル
ド(内蔵)する(ステップS38)。即ち、コンパイラ
及びリンカ(17)により、サーバアプリ21A’をコ
ンパイルしたもの21Aにサーバマーシャリング22A
をリンクしてサーバアプリ21A’のロードモジュール
(サーバRM)23Aを得て、これをサーバ20にイン
ストールする。
The server application 23A is built (built-in) in the server 20 (step S38). That is, the server application 21A ′ is compiled by the compiler and the linker (17) into the server marshalling 22A.
Is linked to obtain a load module (server RM) 23A of the server application 21A ', and this is installed in the server 20.

【0069】図13は、クライアント30におけるRP
Cによる通信処理フローである。
FIG. 13 shows the RP in the client 30.
9 is a communication processing flow by C.

【0070】(クライアントRM33Aの)クライアン
トアプリ31Aが、サーバ20の呼び出しを(クライア
ントRM33Aの)クライアントマーシャリング32A
に依頼する(ステップS41)。
The client application 31A (of the client RM 33A) converts the call of the server 20 into a client marshalling 32A (of the client RM 33A).
(Step S41).

【0071】クライアントマーシャリング32Aが、伝
送データの作成処理を行う(ステップS42)。この処
理において、クライアントマーシャリング32Aが、起
動パラメータ51の先頭にハッシュ値16を埋め込み
(ステップS43)、パラメータを組み立てることによ
り起動パラメータ51を生成し(ステップS44)、こ
れを汎用インタフェース60に送りサーバ20の起動を
依頼する(ステップS45)。
The client marshalling 32A performs transmission data creation processing (step S42). In this process, the client marshalling 32A embeds the hash value 16 at the head of the activation parameter 51 (step S43), generates the activation parameter 51 by assembling the parameters (step S44), sends this to the general-purpose interface 60, and sends it to the general-purpose interface 60. Is requested (step S45).

【0072】依頼された汎用インタフェース60は、R
PCクライアントシステム300及びRPCサーバシス
テム200を介して、サーバ20(のサーバアプリ21
A)を起動する。この処理は図14のステップS51に
対応する。RPCクライアントシステム300及びRP
Cサーバシステム200の間の処理は、図1の例に類似
である。汎用インタフェース60は、サーバ20からの
応答があると、当該処理結果を受信する(ステップS4
6)。この受信処理は図14のステップS58に対応す
る。この後、クライアント30における処理は、クライ
アントマーシャリング32Aを介して、クライアントア
プリ31Aに復帰する(ステップS47)。
The requested general-purpose interface 60 is
Via the PC client system 300 and the RPC server system 200, (the server application 21 of the server 20)
Start A). This processing corresponds to step S51 in FIG. RPC client system 300 and RP
The processing between the C server systems 200 is similar to the example of FIG. When receiving a response from the server 20, the general-purpose interface 60 receives the processing result (step S4).
6). This receiving process corresponds to step S58 in FIG. Thereafter, the processing in the client 30 returns to the client application 31A via the client marshalling 32A (step S47).

【0073】図14は、サーバ20におけるRPCによ
る通信処理フローである。
FIG. 14 is a flowchart of a communication process by the RPC in the server 20.

【0074】サーバ20の汎用インタフェース60は、
RPCサーバシステム200を介して、クライアント3
0からの起動要求を受信する(ステップS51)。この
処理は、図13のステップS45に対応する。汎用イン
タフェース60は、起動対象のサーバマーシャリング2
2Aを検索して選択し(ステップS52)、当該サーバ
マーシャリング22Aを起動する(ステップS53)。
The general-purpose interface 60 of the server 20
Client 3 via the RPC server system 200
0 is received (step S51). This processing corresponds to step S45 in FIG. The general-purpose interface 60 is a server marshalling 2 to be started.
2A is searched and selected (step S52), and the server marshalling 22A is activated (step S53).

【0075】起動されたサーバマーシャリング22Aは
受信した起動パラメータ51を解析する。即ち、サーバ
マーシャリング22Aが、受信したハッシュ値16と自
己に埋め込まれているハッシュ値16とが等しい否かを
調べる(ステップS54)。
The activated server marshalling 22A analyzes the received activation parameters 51. That is, the server marshalling 22A checks whether the received hash value 16 is equal to the hash value 16 embedded therein (step S54).

【0076】等しい場合、サーバマーシャリング22A
は、当該起動パラメータ51の後続のパラメータを解析
して(ステップS55)、サーバアプリ21Aを起動し
(ステップS56)、応答を待つ。起動されたサーバア
プリ21Aは、解析された後続のパラメータを用いて所
定の処理を行い、その処理結果をサーバマーシャリング
22Aに返す。サーバマーシャリング22Aは、サーバ
アプリ21Aからの処理結果を帰り値(復帰値)として
設定し(ステップS57)、汎用インタフェース60に
返信を依頼する。
If equal, server marshalling 22A
Analyzes the parameters subsequent to the start parameter 51 (step S55), starts the server application 21A (step S56), and waits for a response. The activated server application 21A performs a predetermined process using the analyzed subsequent parameter, and returns the processing result to the server marshalling 22A. The server marshalling 22A sets the processing result from the server application 21A as a return value (return value) (step S57), and requests the general-purpose interface 60 to return.

【0077】汎用インタフェース60は、サーバマーシ
ャリング22Aからの依頼に従って、RPCサーバシス
テム200を介して、結果をクライアント30に返信す
る(ステップS58)。この処理は図13のステップS
46に対応する。
The general-purpose interface 60 returns the result to the client 30 via the RPC server system 200 according to the request from the server marshalling 22A (step S58). This processing corresponds to step S in FIG.
Corresponding to 46.

【0078】一方、ステップS54において受信したハ
ッシュ値16と自己に埋め込まれているハッシュ値16
とが等しくない場合、サーバマーシャリング22Aは、
エラー値を設定し(ステップS59)、汎用インタフェ
ース60に返信を依頼する。この後、ステップS58が
実行される。
On the other hand, the hash value 16 received in step S54 and the hash value 16
Is not equal, the server marshalling 22A
An error value is set (step S59), and a reply is requested to the general-purpose interface 60. Thereafter, step S58 is executed.

【0079】以上、本発明をその実施の態様に従って説
明したが、本発明は、その主旨の範囲において、種々の
変形が可能である。
Although the present invention has been described with reference to the embodiments, the present invention can be variously modified within the scope of the gist.

【0080】例えば、以上の実施態様においては識別情
報16をIDL11のハッシングにより生成したが、本
発明は、JAVA(登録商標)RMI(リモートメソッ
ドインボケーション)のようにIDL11を持たないプ
ログラムにも適用できる。JAVARMIにおいては、
サーバ20のアプリケーション(ソース又はオブジェク
ト)プログラム18からインタフェース定義及びスタブ
プログラムが生成される。従って、IDL11を持たな
い。そこで、図15に示すように、定義情報11とし
て、RPCにより通信を実行するサーバ20上のアプリ
ケーションプログラム18が有するRPCにおける通信
のインタフェースを定義する定義部分181を用いる。
ハッシュ値16は定義部分181から生成される。スタ
ブプログラム15(22、32)は定義部分181に基
づいて生成される。これは、前述の図10の実施態様に
類似である。
For example, in the above embodiment, the identification information 16 is generated by hashing the IDL 11, but the present invention is also applicable to a program having no IDL 11, such as JAVA (registered trademark) RMI (remote method invocation). it can. In JAVARMI,
An interface definition and a stub program are generated from an application (source or object) program 18 of the server 20. Therefore, it does not have IDL11. Therefore, as shown in FIG. 15, as the definition information 11, a definition part 181 that defines an interface of RPC communication provided by the application program 18 on the server 20 that executes communication by RPC is used.
The hash value 16 is generated from the definition part 181. The stub program 15 (22, 32) is generated based on the definition part 181. This is similar to the embodiment of FIG. 10 described above.

【0081】また、以上の実施態様は、(狭義の)RP
Cによりコンピュータ間通信を行う場合について説明し
たが、本発明は、RPCを発展させた技術であるオブジ
ェクトリクエストブローカー(ORB)にも適用可能で
ある。この場合、IDL11に代えて、ORBにおける
通信のインタフェースを定義するインタフェース定義ス
クリプトであるODLを定義情報11として用いて、こ
れをハッシングすることにより識別情報16を生成すれ
ばよい。即ち、本発明は、RPCの変形技術の全般に広
く適用することができる。従って、この明細書におい
て、RPCとは、ORBのようなRPCの応用又は利用
技術(RPCを基礎とする技術)をも含むものである。
Further, the above-described embodiment is based on the RP (in a narrow sense).
Although the case of performing inter-computer communication using C has been described, the present invention is also applicable to an object request broker (ORB), which is a technology developed from RPC. In this case, instead of the IDL 11, the identification information 16 may be generated by hashing the ODL, which is an interface definition script defining the communication interface in the ORB, as the definition information 11. That is, the present invention can be widely applied to all RPC deformation techniques. Therefore, in this specification, RPC includes an application or utilization technology of RPC such as ORB (a technology based on RPC).

【0082】(付記1) リモートプロシジャコールに
おける通信のインタフェースの定義情報から生成された
前記インタフェースの識別情報を含み、前記識別情報を
用いて前記定義情報に基づいて前記リモートプロシジャ
コールにおける通信を行うRPC通信手段を備えること
を特徴とするネットワークコンピュータシステム。
(1)
(Supplementary Note 1) An RPC that includes identification information of the interface generated from definition information of a communication interface in a remote procedure call, and performs communication in the remote procedure call based on the definition information using the identification information. A network computer system comprising communication means.
(1)

【0083】(付記2) 前記識別情報が、前記定義情
報から生成されたハッシュ値からなることを特徴とする
付記1に記載のネットワークコンピュータシステム。
(Supplementary Note 2) The network computer system according to Supplementary Note 1, wherein the identification information includes a hash value generated from the definition information.

【0084】(付記3) 前記識別情報が、前記通信に
おいて当該データの先頭に付加されることを特徴とする
付記1に記載のネットワークコンピュータシステム。
(Supplementary note 3) The network computer system according to supplementary note 1, wherein the identification information is added to the head of the data in the communication.

【0085】(付記4) リモートプロシジャコールに
おける通信のインタフェースの定義情報から生成された
前記インタフェースの識別情報を含み、前記識別情報を
用いて前記定義情報に基づいて前記リモートプロシジャ
コールにおける通信を行うRPC通信手段を備え、前記
RPC通信手段が、少なくとも前記識別情報を送信する
ことを特徴とするクライアント。
(Supplementary Note 4) An RPC that includes identification information of the interface generated from definition information of a communication interface in a remote procedure call, and performs communication in the remote procedure call based on the definition information using the identification information. A client comprising communication means, wherein the RPC communication means transmits at least the identification information.

【0086】(付記5) 前記定義情報が、リモートプ
ロシジャコールにより通信を実行するサーバ上のアプリ
ケーションプログラムが有する前記リモートプロシジャ
コールにおける通信のインタフェースを定義する定義部
分からなることを特徴とする付記4に記載のクライアン
ト。
(Supplementary note 5) The supplementary note 4, wherein the definition information includes a definition part that defines a communication interface in the remote procedure call included in an application program on a server that executes communication by a remote procedure call. The mentioned client.

【0087】(付記6) リモートプロシジャコールに
おける通信のインタフェースの定義情報から生成された
前記インタフェースの識別情報を含み、前記識別情報を
用いて前記定義情報に基づいて前記リモートプロシジャ
コールにおける通信を行うRPC通信手段を備え、前記
RPC通信手段が、少なくとも受信した前記識別情報を
解析することを特徴とするサーバ。(2)
(Supplementary Note 6) An RPC that includes identification information of the interface generated from definition information of a communication interface in a remote procedure call, and performs communication in the remote procedure call based on the definition information using the identification information. A server comprising communication means, wherein the RPC communication means analyzes at least the received identification information. (2)

【0088】(付記7) 前記受信した識別情報を解析
し、これが自己の持つ識別情報と不一致である場合、前
記受信した識別情報の送信元であるクライアントにエラ
ー情報を返信することを特徴とする付記6に記載のサー
バ。
(Supplementary Note 7) The received identification information is analyzed, and if the identification information does not match the identification information of the received identification information, error information is returned to the client that is the transmission source of the received identification information. The server according to supplementary note 6.

【0089】(付記8) ネットワークコンピュータシ
ステムを実現するプログラムを格納するコンピュータ読
取可能なプログラム記録媒体であって、リモートプロシ
ジャコールにおける通信のインタフェースの定義情報か
ら生成された前記インタフェースの識別情報を含み、前
記定義情報に基づいて前記リモートプロシジャコールに
おける通信処理において、少なくとも前記識別情報を送
信する処理を、前記ネットワークコンピュータシステム
に実行させるプログラムを格納することを特徴とするプ
ログラム記録媒体。
(Supplementary Note 8) A computer readable program recording medium for storing a program for realizing a network computer system, the medium including identification information of the interface generated from definition information of a communication interface in a remote procedure call, A program recording medium storing a program for causing the network computer system to execute at least a process of transmitting the identification information in a communication process in the remote procedure call based on the definition information.

【0090】(付記9) ネットワークコンピュータシ
ステムを実現するプログラムを格納するコンピュータ読
取可能なプログラム記録媒体であって、リモートプロシ
ジャコールにおける通信のインタフェースの定義情報か
ら生成された前記インタフェースの識別情報を含み、前
記定義情報に基づいて前記リモートプロシジャコールに
おける通信処理において、少なくとも受信した前記識別
情報を解析する処理を、前記ネットワークコンピュータ
システムに実行させるプログラムを格納することを特徴
とするプログラム記録媒体。
(Supplementary Note 9) A computer-readable program recording medium for storing a program for realizing a network computer system, the medium including identification information of the interface generated from definition information of a communication interface in a remote procedure call, A program recording medium storing a program for causing the network computer system to execute at least a process of analyzing the received identification information in a communication process in the remote procedure call based on the definition information.

【0091】(付記10) リモートプロシジャコール
における通信のインタフェースの定義情報から前記イン
タフェースの識別情報を生成する第1の生成手段と、前
記識別情報を用いて前記定義情報に基づいて前記リモー
トプロシジャコールにおける通信を行うRPC通信手段
を生成し、前記RPC通信手段に前記識別情報を付加す
る第2の生成手段とを備えることを特徴とするネットワ
ークコンピュータシステム。(3)
(Supplementary Note 10) First generating means for generating identification information of the interface from the definition information of the interface of the communication in the remote procedure call, and using the identification information in the remote procedure call based on the definition information. A network computer system comprising: RPC communication means for performing communication; and second generation means for adding the identification information to the RPC communication means. (3)

【0092】(付記11) 前記定義情報が、前記リモ
ートプロシジャコールにおける通信のインタフェースを
定義するインタフェース定義スクリプトからなることを
特徴とする付記10に記載のネットワークコンピュータ
システム。
(Supplementary note 11) The network computer system according to supplementary note 10, wherein the definition information comprises an interface definition script that defines a communication interface in the remote procedure call.

【0093】(付記12) 前記定義情報が、リモート
プロシジャコールにより通信を実行するサーバ上のアプ
リケーションプログラムが有する前記リモートプロシジ
ャコールにおける通信のインタフェースを定義する定義
部分からなることを特徴とする付記10に記載のネット
ワークコンピュータシステム。
(Supplementary Note 12) The supplementary note 10, wherein the definition information includes a definition part that defines an interface of communication in the remote procedure call included in an application program on a server that executes communication by a remote procedure call. The network computer system as described.

【0094】(付記13) 前記識別情報が、前記定義
情報から生成されたハッシュ値からなることを特徴とす
る付記10に記載のネットワークコンピュータシステ
ム。
(Supplementary note 13) The network computer system according to supplementary note 10, wherein the identification information comprises a hash value generated from the definition information.

【0095】(付記14) ネットワークコンピュータ
システムを実現するプログラムを格納するコンピュータ
読取可能なプログラム記録媒体であって、リモートプロ
シジャコールにおける通信のインタフェースの定義情報
から前記インタフェースの識別情報を生成する第1の生
成処理と、前記定義情報に基づいて前記リモートプロシ
ジャコールにおける通信を行うRPC通信手段を生成
し、前記RPC通信手段に前記識別情報を付加する第2
の生成処理とを、前記ネットワークコンピュータシステ
ムに実行させるプログラムを格納することを特徴とする
プログラム記録媒体。
(Supplementary Note 14) A computer-readable program recording medium for storing a program for realizing a network computer system, wherein a first interface information is generated from definition information of a communication interface in a remote procedure call. Generating RPC communication means for performing communication in the remote procedure call based on the definition information, and adding the identification information to the RPC communication means;
A program recording medium storing a program for causing the network computer system to execute the generation processing of the above.

【0096】(付記15) リモートプロシジャコール
により通信を実行するサーバ上のアプリケーションプロ
グラムであって前記リモートプロシジャコールにおける
通信のインタフェースを定義する定義部分を備えるプロ
グラムの前記定義部分から生成された前記インタフェー
スの識別情報を含み、前記識別情報を用いて前記定義部
分に基づいて前記リモートプロシジャコールにおける通
信を行う下位RPC通信手段と、前記リモートプロシジ
ャコールにおける通信のインタフェースの定義情報に基
づいて前記リモートプロシジャコールにおける通信を行
う上位RPC通信手段とを備えることを特徴とするネッ
トワークコンピュータシステム。(4)
(Supplementary Note 15) An application program on a server that executes communication by a remote procedure call, the application program having a definition part defining an interface of communication in the remote procedure call. Lower RPC communication means for performing communication in the remote procedure call based on the definition portion using the identification information, and in the remote procedure call based on the definition information of the communication interface in the remote procedure call. A network computer system, comprising: upper RPC communication means for performing communication. (4)

【0097】(付記16) リモートプロシジャコール
により通信を実行するサーバ上のアプリケーションプロ
グラムであって前記リモートプロシジャコールにおける
通信のインタフェースを定義する定義部分を備えるプロ
グラムの前記定義部分から、前記インタフェースの識別
情報を生成する第1の生成手段と、前記定義部分に基づ
いて前記リモートプロシジャコールにおける通信を行う
下位RPC通信手段を生成し、前記下位RPC通信手段
に前記識別情報を付加する第2の生成手段と、前記リモ
ートプロシジャコールにおける通信のインタフェースの
定義情報に基づいて前記リモートプロシジャコールにお
ける通信を行う上位RPC通信手段を生成する第3の生
成手段とを備えることを特徴とするネットワークコンピ
ュータシステム。(5)
(Supplementary Note 16) From the definition part of the application program on the server which executes communication by a remote procedure call and which includes a definition part for defining an interface of communication in the remote procedure call, identification information of the interface is obtained. First generation means for generating a lower RPC communication means for performing communication in the remote procedure call based on the definition part, and second generation means for adding the identification information to the lower RPC communication means. And a third generating means for generating a higher-level RPC communication means for performing communication in the remote procedure call based on definition information of a communication interface in the remote procedure call. (5)

【0098】[0098]

【発明の効果】以上説明したように、本発明によれば、
ネットワークコンピュータシステムにおいて、RPCの
インタフェースの識別情報を当該インタフェースの定義
情報それ自体から生成することにより、定義情報を当該
インタフェースについて一意に定めることができるの
で、インタフェースが変更された場合でも、インタフェ
ースの不一致を確実に検出することができ、特に、イン
タフェースが不一致であるにもかかわらず、RPCの不
適切な帰り値を用いてアプリケーションプログラムを実
行してしまうことを防止することができ、また、インタ
フェースのバージョンの管理や記述等についての開発者
の負担をなくすことができ、バージョン管理等について
の人為的な誤り等によるインタフェースの不一致等の発
生を防止することができる。
As described above, according to the present invention,
In the network computer system, by generating the identification information of the interface of the RPC from the definition information of the interface itself, the definition information can be uniquely defined for the interface. Therefore, even if the interface is changed, the interface is not matched. In particular, it is possible to prevent an application program from being executed using an inappropriate return value of the RPC even though the interfaces do not match. It is possible to eliminate the burden on the developer for version management and description, and to prevent the occurrence of interface inconsistency due to human error in version management and the like.

【0099】また、本発明によれば、ネットワークコン
ピュータシステムにおいて、RPCのインタフェースの
識別情報を当該インタフェースの定義情報それ自体から
生成してRPCにおける通信を行うRPC通信手段に付
加することにより、インタフェースのバージョンの管理
や記述等についての開発者の負担なしで、事実上当該管
理等を行うことができるので、当該管理等についての人
為的な誤り等によるインタフェースの不一致等の発生を
防止することができる。
Further, according to the present invention, in the network computer system, the identification information of the interface of the RPC is generated from the definition information of the interface itself and added to the RPC communication means for performing the communication in the RPC, so that the interface of the interface is generated. Since the management and the like can be effectively performed without burdening the developer on the management and the description of the version, it is possible to prevent the occurrence of interface inconsistency due to a human error in the management and the like. .

【図面の簡単な説明】[Brief description of the drawings]

【図1】ネットワークコンピュータシステム構成図であ
る。
FIG. 1 is a configuration diagram of a network computer system.

【図2】IDLの一例を示す図である。FIG. 2 is a diagram illustrating an example of an IDL.

【図3】サーバスタブの一例を示す図である。FIG. 3 is a diagram illustrating an example of a server stub.

【図4】スタブプログラムの生成処理フローである。FIG. 4 is a flowchart of a generation process of a stub program.

【図5】クライアントにおけるRPCによる通信処理フ
ローである。
FIG. 5 is a communication processing flow by RPC in a client.

【図6】サーバにおけるRPCによる通信処理フローで
ある。
FIG. 6 is a communication processing flow by RPC in a server.

【図7】インタフェースのバージョンの検出処理説明図
である。
FIG. 7 is an explanatory diagram of interface version detection processing.

【図8】インタフェースのバージョンの検出処理説明図
である。
FIG. 8 is an explanatory diagram of interface version detection processing.

【図9】ネットワークコンピュータシステム構成図であ
る。
FIG. 9 is a configuration diagram of a network computer system.

【図10】ネットワークコンピュータシステム構成図で
ある。
FIG. 10 is a configuration diagram of a network computer system.

【図11】インタフェース定義部の一例を示す図であ
る。
FIG. 11 is a diagram illustrating an example of an interface definition unit.

【図12】マーシャリングプログラムの生成処理フロー
である。
FIG. 12 is a flow of processing for generating a marshalling program.

【図13】クライアントにおけるRPCによる通信処理
フローである。
FIG. 13 is a communication processing flow by RPC in a client.

【図14】サーバにおけるRPCによる通信処理フロー
である。
FIG. 14 is a communication processing flow by RPC in the server.

【図15】インタフェースのバージョンの検出処理説明
図である。
FIG. 15 is an explanatory diagram of interface version detection processing.

【符号の説明】[Explanation of symbols]

11 定義情報又はインタフェース定義スクリプト
(IDL) 12 スタブジェネレータ 15 スタブプログラム 16 識別情報(ハッシュ値) 20 サーバ 21 サーバアプリ(アプリケーションプログラム) 22 サーバスタブ(スタブプログラム) 30 クライアント 31 クライアントアプリ(アプリケーションプログ
ラム) 32 クライアントスタブ(スタブプログラム) 40 ネットワーク
11 Definition Information or Interface Definition Script (IDL) 12 Stub Generator 15 Stub Program 16 Identification Information (Hash Value) 20 Server 21 Server Application (Application Program) 22 Server Stub (Stub Program) 30 Client 31 Client Application (Application Program) 32 Client Stub (stub program) 40 Network

Claims (5)

【特許請求の範囲】[Claims] 【請求項1】 リモートプロシジャコールにおける通信
のインタフェースの定義情報から生成された前記インタ
フェースの識別情報を含み、前記識別情報を用いて前記
定義情報に基づいて前記リモートプロシジャコールにお
ける通信を行うRPC通信手段を備えることを特徴とす
るネットワークコンピュータシステム。
An RPC communication means including identification information of the interface generated from definition information of a communication interface in a remote procedure call, and performing communication in the remote procedure call based on the definition information using the identification information. A network computer system comprising:
【請求項2】 リモートプロシジャコールにおける通信
のインタフェースの定義情報から生成された前記インタ
フェースの識別情報を含み、前記識別情報を用いて前記
定義情報に基づいて前記リモートプロシジャコールにお
ける通信を行うRPC通信手段を備え、 前記RPC通信手段が、少なくとも受信した前記識別情
報を解析することを特徴とするサーバ。
2. An RPC communication means including identification information of the interface generated from definition information of a communication interface in a remote procedure call, and performing communication in the remote procedure call based on the definition information using the identification information. A server, wherein the RPC communication unit analyzes at least the received identification information.
【請求項3】 リモートプロシジャコールにおける通信
のインタフェースの定義情報から前記インタフェースの
識別情報を生成する第1の生成手段と、 前記識別情報を用いて前記定義情報に基づいて前記リモ
ートプロシジャコールにおける通信を行うRPC通信手
段を生成し、前記RPC通信手段に前記識別情報を付加
する第2の生成手段とを備えることを特徴とするネット
ワークコンピュータシステム。
3. A first generating means for generating identification information of the interface from interface definition information of a communication in a remote procedure call, and performing communication in the remote procedure call based on the definition information using the identification information. A network computer system comprising: an RPC communication unit that performs the communication; and a second generation unit that adds the identification information to the RPC communication unit.
【請求項4】 リモートプロシジャコールにより通信を
実行するサーバ上のアプリケーションプログラムであっ
て前記リモートプロシジャコールにおける通信のインタ
フェースを定義する定義部分を備えるプログラムの前記
定義部分から生成された前記インタフェースの識別情報
を含み、前記識別情報を用いて前記定義部分に基づいて
前記リモートプロシジャコールにおける通信を行う下位
RPC通信手段と、 前記リモートプロシジャコールにおける通信のインタフ
ェースの定義情報に基づいて前記リモートプロシジャコ
ールにおける通信を行う上位RPC通信手段とを備える
ことを特徴とするネットワークコンピュータシステム。
4. The identification information of the interface generated from the definition part of a program which is an application program on a server which executes communication by a remote procedure call and has a definition part defining an interface of communication in the remote procedure call. Lower RPC communication means for performing communication in the remote procedure call based on the definition portion using the identification information, and performing communication in the remote procedure call based on definition information of a communication interface in the remote procedure call. A network computer system comprising: an upper RPC communication unit for performing the communication.
【請求項5】 リモートプロシジャコールにより通信を
実行するサーバ上のアプリケーションプログラムであっ
て前記リモートプロシジャコールにおける通信のインタ
フェースを定義する定義部分を備えるプログラムの前記
定義部分から、前記インタフェースの識別情報を生成す
る第1の生成手段と、 前記定義部分に基づいて前記リモートプロシジャコール
における通信を行う下位RPC通信手段を生成し、前記
下位RPC通信手段に前記識別情報を付加する第2の生
成手段と、 前記リモートプロシジャコールにおける通信のインタフ
ェースの定義情報に基づいて前記リモートプロシジャコ
ールにおける通信を行う上位RPC通信手段を生成する
第3の生成手段とを備えることを特徴とするネットワー
クコンピュータシステム。
5. The interface identification information is generated from an application program on a server that executes communication by a remote procedure call, the identification information of the interface comprising a definition part defining an interface of communication in the remote procedure call. First generating means for generating lower RPC communication means for performing communication in the remote procedure call based on the definition part, and second generating means for adding the identification information to the lower RPC communication means; A third generation means for generating a higher-level RPC communication means for performing communication in the remote procedure call based on definition information of a communication interface in the remote procedure call.
JP2000198680A 2000-06-30 2000-06-30 Network computer system Expired - Fee Related JP4184576B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000198680A JP4184576B2 (en) 2000-06-30 2000-06-30 Network computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000198680A JP4184576B2 (en) 2000-06-30 2000-06-30 Network computer system

Publications (2)

Publication Number Publication Date
JP2002014832A true JP2002014832A (en) 2002-01-18
JP4184576B2 JP4184576B2 (en) 2008-11-19

Family

ID=18696812

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000198680A Expired - Fee Related JP4184576B2 (en) 2000-06-30 2000-06-30 Network computer system

Country Status (1)

Country Link
JP (1) JP4184576B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249785A (en) * 2006-03-17 2007-09-27 Fujitsu Ltd Compile program, production method for virtual database remote access program and remote access method for virtual database
JP2014524060A (en) * 2011-05-16 2014-09-18 パナソニック株式会社 Duplicate determination device and duplicate management system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249785A (en) * 2006-03-17 2007-09-27 Fujitsu Ltd Compile program, production method for virtual database remote access program and remote access method for virtual database
JP2014524060A (en) * 2011-05-16 2014-09-18 パナソニック株式会社 Duplicate determination device and duplicate management system

Also Published As

Publication number Publication date
JP4184576B2 (en) 2008-11-19

Similar Documents

Publication Publication Date Title
US7171672B2 (en) Distributed application proxy generator
US6871223B2 (en) System and method for agent reporting in to server
US6986133B2 (en) System and method for securely upgrading networked devices
US7574692B2 (en) Method for building component-software for execution in a standards-compliant programming environment
US9830135B2 (en) Declarative and pluggable business logic for systems management
US7752598B2 (en) Generating executable objects implementing methods for an information model
US7284155B2 (en) Remote software support agent system with electronic documents for troubleshooting
US20080127175A1 (en) Packaging software products as single-file executables containing scripting logic
US20030182625A1 (en) Language and object model for describing MIDlets
US10114861B2 (en) Expandable ad hoc domain specific query for system management
US7055147B2 (en) Supporting interactions between different versions of software for accessing remote objects
US20030191870A1 (en) Method and apparatus for updating software libraries
US10261810B2 (en) System and method for providing cloud operating system validations for a domain-specific language for cloud services infrastructure
US6629154B1 (en) Method and system for deterministic hashes to identify remote methods
US20100058321A1 (en) Approach for deploying software to network devices
WO2003027879A1 (en) Method and apparatus for using java dynamic proxies to interface to generic, bean-like management entities
US20190050213A1 (en) System and method for generating a domain-specific programming language program from a cloud-based computing system
US7107574B1 (en) Managing computer program configuration data
US8185873B2 (en) System and method for using a preprocessor to determine dependencies between J2EE components
US20060184924A1 (en) Intelligent platform management interface firmware architecture and method of building the same
US20030154470A1 (en) Verifying a program version
WO2014197258A1 (en) Declarative configuration elements
JP2004102379A (en) Patch application management program, method, and system
US20050289525A1 (en) Extensible command line parsing
JP4184576B2 (en) Network computer system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060726

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080416

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080507

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080707

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20080707

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080707

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080902

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080904

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110912

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120912

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120912

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130912

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees