JPH11242604A - Agent server and storage medium wth agent server program recorded - Google Patents

Agent server and storage medium wth agent server program recorded

Info

Publication number
JPH11242604A
JPH11242604A JP10267681A JP26768198A JPH11242604A JP H11242604 A JPH11242604 A JP H11242604A JP 10267681 A JP10267681 A JP 10267681A JP 26768198 A JP26768198 A JP 26768198A JP H11242604 A JPH11242604 A JP H11242604A
Authority
JP
Japan
Prior art keywords
program
client
function
server
address
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.)
Pending
Application number
JP10267681A
Other languages
Japanese (ja)
Inventor
Yoshiyuki Nakayama
良幸 中山
Naomichi Nonaka
尚道 野中
Ryoji Tozono
良二 東園
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP10267681A priority Critical patent/JPH11242604A/en
Publication of JPH11242604A publication Critical patent/JPH11242604A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To change functions, which can be supplied to a client program, with out correcting an existing server program by allowing an agent server to inform address information of functions, which a client can use, of the client in place of a server. SOLUTION: The address of a server side program to be given to a client program 100 by an operating system is changed to instruct the client program 100 to connect with an agent server program 108 instead of a server program 116. Then, the client program 100 accesses the address described in a callable set 106 of functions informed by the agent server program 108 to request supply of functions. Thus, functions which can be supplied to the client program 100 can be extended without correcting the server program 116.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、クライアント・サ
ーバ・システムにおいて、既存のサーバプログラムに修
正を加えることなく、クライアントプログラムに提供可
能な機能を変更する技術に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a technique for changing a function that can be provided to a client program without modifying an existing server program in a client-server system.

【0002】[0002]

【従来の技術】従来より、サーバプログラムとクライア
ントプログラムとが連携することで、所定の機能を実現
するシステムがある。このシステムでは、サーバプログ
ラムがクライアントプログラムに対して利用可能な機能
を通知する。クライアントプログラムは、サーバプログ
ラムから通知された機能の中から、所望の機能を要求す
る。これを受けて、サーバプログラムは、クライアント
プログラムに要求された機能を提供する。
2. Description of the Related Art Conventionally, there is a system that realizes a predetermined function by coordinating a server program and a client program. In this system, a server program notifies a client program of available functions. The client program requests a desired function from the functions notified from the server program. In response, the server program provides the requested function to the client program.

【0003】このようなシステムは、一般に、クライア
ント・サーバ・システム(CSS)と呼ばれている。以
下、クライアント・サーバ・システムについて、クライ
アント・サーバ型ウインドウ・システムであるXウイン
ドウ・システムを例にとって説明する。
[0003] Such a system is generally called a client server system (CSS). Hereinafter, the client server system will be described by taking an X window system which is a client server type window system as an example.

【0004】Xウインドウ・システムにおいて、サーバ
プログラム(Xサーバ)は、クライアントプログラム
(アプリケーションプログラム)からの要求にしたが
い、サーバプログラムが実行されているコンピュータの
表示画面にウインドウを表示したり、表示したウインド
ウ内に図形などを描画したりする。また、サーバプログ
ラムは、入力装置に入力されたユーザの指示などを受け
付け、それをクライアントプログラムに通知する。
[0004] In the X window system, a server program (X server) displays a window on a display screen of a computer on which the server program is executed, or displays the displayed window in response to a request from a client program (application program). And draw figures inside. In addition, the server program receives a user instruction or the like input to the input device, and notifies the client program of the instruction.

【0005】一方、クライアントプログラムは、表示画
面へのウインドウの表示要求や、ウインドウ内への図形
などの描画要求など、サーバプログラムに対して様々な
機能の提供を要求する。また、クライアントプログラム
は、サーバプログラムから通知されたユーザの指示など
の内容にしたがい、所定の処理を行う。
On the other hand, the client program requests the server program to provide various functions, such as a request to display a window on the display screen and a request to draw a figure or the like in the window. Further, the client program performs a predetermined process according to the content of the user instruction notified from the server program.

【0006】このように、Xウインドウ・システムで
は、サーバプログラムとクライアントプログラムとが連
携することで、ユーザがコンピュータと対話するための
グラフィカル・ユーザ・インターフェース(GUI)を
実現している。
[0006] As described above, in the X Window System, a graphical user interface (GUI) for a user to interact with a computer is realized by cooperation of a server program and a client program.

【0007】[0007]

【発明が解決しようとする課題】ところで、従来のクラ
イアント・サーバ・システムでは、通常、サーバプログ
ラムが提供する機能が固定されている。また、クライア
ントプログラムも、対象となるサーバプログラムの機能
を前提として作成されている。
In the conventional client-server system, the functions provided by the server program are usually fixed. Also, the client program is created on the premise of the function of the target server program.

【0008】このため、サーバプログラムがクライアン
トプログラムに対して利用可能な機能を通知し、該クラ
イアントプログラムが該サーバプログラムから通知され
た機能の中から所望の機能を要求するクライアント・サ
ーバ・システムでは、サーバプログラムを修正すること
なく、クライアントプログラムが利用可能な機能を拡張
したり、縮小したりすることができず、フレキシビリテ
ィに欠けるという問題がある。
For this reason, in a client-server system in which a server program notifies a client program of an available function and the client program requests a desired function from the functions notified from the server program, There is a problem in that the functions that can be used by the client program cannot be expanded or reduced without modifying the server program, resulting in a lack of flexibility.

【0009】たとえば、新しいハードウエアが出現した
際に、当該ハードウエアの能力を最大限に活用すること
ができるようにするために、クライアントプログラムが
利用可能な機能を拡張したい場合がある。この場合、従
来のクライアント・サーバ・システムでは、サーバプロ
グラムが本来提供しない機能を当該サーバプログラムに
追加して、当該サーバプログラムを修正しなければなら
ない。
For example, when new hardware appears, there is a case where it is desired to extend the functions available to the client program so that the capabilities of the hardware can be utilized to the maximum. In this case, in the conventional client-server system, the server program must be modified by adding a function not originally provided by the server program to the server program.

【0010】また、サーバプログラムがクライアントプ
ログラムに提供するある機能について、サーバプログラ
ムが実行するよりもクライアントプログラムが実行した
方が処理が速いため、当該サーバプログラムが提供可能
な機能を縮小して、当該サーバプログラムからの提供を
受けないようにしたい場合がある。この場合、従来のク
ライアント・サーバ・システムでは、当該機能をサーバ
プログラムから削除して、当該サーバプログラムを修正
しなければならない。
[0010] In addition, for a certain function provided by the server program to the client program, the processing is faster when the client program executes it than when the server program executes it. In some cases, you may not want to be provided by the server program. In this case, in the conventional client-server system, the function must be deleted from the server program and the server program must be modified.

【0011】なお、上記説明したXウインドウ・システ
ムでは、サーバプログラムとクライアントプログラムと
が1対1で接続するという制約を緩和する技術として、
クライアントプログラム(アプリケーションプログラ
ム)と当該クライアントプログラムが接続すべきサーバ
プログラム(実Xサーバ)との間に、疑似Xサーバなる
サーバプログラムを介在させる技術が提案されている
(Carsten Bormann, GeroHoffmann: Xmc and Xy-Scalab
le Window Sharing and Mobility or From X Protocol
Multiplexing to X Protocol Multicasting, pp.205-21
0, Issue 9, The XResource)。
In the above-described X Window System, as a technique for alleviating the restriction that the server program and the client program are connected on a one-to-one basis,
A technique has been proposed in which a server program called a pseudo X server is interposed between a client program (application program) and a server program to be connected to the client program (real X server) (Carsten Bormann, GeroHoffmann: Xmc and Xy). -Scalab
le Window Sharing and Mobility or From X Protocol
Multiplexing to X Protocol Multicasting, pp.205-21
0, Issue 9, The XResource).

【0012】この技術では、クライアントプログラムに
与えられるアドレスを変更することで、クライアントプ
ログラムに対して、実Xサーバの替わりに擬似Xサーバ
と接続するように指示している。また、疑似Xサーバを
実Xサーバに接続している。
In this technique, by changing the address given to the client program, the client program is instructed to connect to the pseudo X server instead of the real X server. Further, the pseudo X server is connected to the real X server.

【0013】このようにすることで、クライアントプロ
グラムが擬似Xサーバを介して実Xサーバにアクセスす
るようにしている。したがって、この技術では、疑似X
サーバが接続対象となる実Xサーバを切り替えること
で、クライアントプログラムは、複数の実Xサーバに機
能の提供を要求することが可能になる。具体的には、ク
ライアントプログラムは、サーバプログラム(実Xサー
バ)が実行されている複数のコンピュータ各々に対し
て、その表示画面にウインドウを表示させたり、ウイン
ドウ内に図形などを表示させたりすることが可能とな
る。
By doing so, the client program accesses the real X server via the pseudo X server. Therefore, in this technique, the pseudo X
By switching the real X server to be connected by the server, the client program can request a plurality of real X servers to provide a function. Specifically, the client program causes a plurality of computers on which the server program (real X server) is executed to display a window on its display screen or to display a figure or the like in the window. Becomes possible.

【0014】しかしながら、この技術は、クライアント
プログラムとサーバプログラムとの間のデータのやり取
りを規定するプロトコル(Xプロトコル)を変更するも
のではない。
However, this technique does not change a protocol (X protocol) that regulates data exchange between a client program and a server program.

【0015】すなわち、この技術は、疑似Xサーバと実
Xサーバとの接続を切り替えることで、クライアントプ
ログラムが複数の実Xサーバにアクセスできるように
し、これにより、サーバプログラムとクライアントプロ
グラムとが1対1で接続するという制約を緩和したもの
であり、疑似Xサーバを介してクライアントプログラム
に提供される機能は、実Xサーバが提供する機能と何ら
変わらない。
That is, this technique allows a client program to access a plurality of real X servers by switching the connection between the pseudo X server and the real X server, whereby the server program and the client program are paired. This relaxes the restriction that the connection is made by 1 and the function provided to the client program via the pseudo X server is no different from the function provided by the real X server.

【0016】上記の疑似Xサーバを用いた技術では、ク
ライアントプログラムが利用可能な機能を拡張したり、
縮小したりすることについて、何ら考慮されていない。
[0016] In the technology using the pseudo X server, functions that can be used by a client program are extended,
No consideration is given to shrinking.

【0017】本発明は、上記事情に鑑みてなされたもの
であり、本発明の目的は、既存のサーバプログラムに修
正を加えることなく、クライアントプログラムに提供可
能な機能を変更する技術を提供することにある。具体的
には、既存のサーバプログラムに修正を加えることな
く、クライアントプログラムに提供可能な機能を拡張、
または縮小する技術を提供することにある。さらに、具
体的な本発明の目的は、新しいハードウェアを従来のソ
フトウェアで動作させることができる技術を提供するこ
とである。また、本発明の他の目的は、上記サーバプロ
グラムからクライアントプログラムへ提供される機能を
拡張、または縮小するための通信技術を提供することで
ある。さらに、本発明の他の目的は、上記各技術を実装
したプログラム、コンポーネント、オブジェクトを提供
することである。また、本発明の目的は、上記各技術を
実装したソフトウェアをインストールした装置を提供す
ることである。
The present invention has been made in view of the above circumstances, and an object of the present invention is to provide a technique for changing a function that can be provided to a client program without modifying an existing server program. It is in. Specifically, the functions that can be provided to client programs are expanded without modifying existing server programs,
Or to provide a technology for reducing. Further, a specific object of the present invention is to provide a technique capable of operating new hardware with conventional software. Another object of the present invention is to provide a communication technique for expanding or reducing functions provided from the server program to the client program. Further, another object of the present invention is to provide a program, a component, and an object in which each of the above technologies is implemented. It is another object of the present invention to provide an apparatus in which software that implements each of the above technologies is installed.

【0018】[0018]

【課題を解決するための手段】上記課題を解決するため
に、本発明の代理サーバは、クライアントと、上記クラ
イアントからの要求にしたがい、所定の機能にアクセス
するためのアドレス情報を上記クライアントに通知する
と共に、上記クライアントがアクセスしたアドレスに対
応する機能を上記クライアントに提供するサーバと、か
らなるクライアント・サーバ・システムにおいて、上記
サーバの代わりに、上記クライアントに上記アドレス情
報を通知する代理サーバであって、上記クライアントか
らの要求にしたがい、上記サーバが上記クライアントに
提供可能な機能にアクセスするためのアドレス情報を、
上記サーバから入手する第一の手段と、入手したアドレ
ス情報を参照して上記クライアントに利用を許可する機
能にアクセスするためのアドレス情報を作成する第二の
手段と、作成したアドレス情報を上記クライアントに通
知する第三の手段と、を備えていることを特徴とする。
In order to solve the above-mentioned problems, a proxy server of the present invention notifies a client and address information for accessing a predetermined function to the client according to a request from the client. And a server that provides a function corresponding to the address accessed by the client to the client in a client-server system, wherein the proxy server notifies the client of the address information instead of the server. In response to a request from the client, the server sends address information for accessing a function that can be provided to the client,
First means for obtaining address information from the server, second means for creating address information for accessing a function that permits use of the client by referring to the obtained address information, and And a third means for notifying the user.

【0019】ここで、サーバとは、主に他からの要求を
受け付けて機能(サービス)を提供するサーバプログラ
ムのことであり、クライアントとはサーバプログラムに
機能の提供を要求するクライアントプログラムのことで
ある。したがって、クライアントとサーバとが1つの情
報処理装置内で動作することや、代理サーバがクライア
ント兼サーバとして機能することもあり得る。
Here, the server is a server program that mainly receives requests from others and provides functions (services), and the client is a client program that requests the server program to provide functions. is there. Therefore, the client and the server may operate in one information processing apparatus, or the proxy server may function as a client / server.

【0020】本発明では、代理サーバが、サーバの代わ
りに、クライアントが利用可能な機能のアドレス情報を
当該クライアントに通知するようにしている。また、代
理サーバは、サーバから入手した当該サーバがクライア
ントに提供可能な機能のアドレス情報を参照して、代理
サーバがクライアントに利用を許可する機能のアドレス
情報を作成するようにしている。このようにすること
で、サーバで実行されているサーバプログラムに修正を
加えることなく、クライアントで実行されているクライ
アントプログラムに提供可能な機能を変更することがで
きる。
In the present invention, instead of the server, the proxy server notifies the client of address information of functions available to the client. Further, the proxy server refers to address information of a function that the server can provide to the client, obtained from the server, and creates address information of a function that the proxy server permits the client to use. By doing so, it is possible to change the functions that can be provided to the client program running on the client without modifying the server program running on the server.

【0021】たとえば、代理サーバがクライアントに対
して独自に提供可能な機能を有する場合、当該機能のア
ドレスを含めて、代理サーバがクライアントに利用を許
可する機能のアドレス情報を作成する。この結果、サー
バで実行されているサーバプログラムに修正を加えるこ
となく、クライアントで実行されているクライアントプ
ログラムに提供可能な機能を拡張することができる。
For example, when the proxy server has a function that can be independently provided to the client, the proxy server creates address information of a function that the client is permitted to use, including the address of the function. As a result, the functions that can be provided to the client program running on the client can be extended without modifying the server program running on the server.

【0022】また、たとえば、サーバがクライアントに
提供可能な機能のアドレス情報に記述されているアドレ
スであるにもかかわらず、当該アドレスあるいは当該ア
ドレスにアクセスするためのアドレスを含めないで、代
理サーバがクライアントに利用を許可する機能のアドレ
ス情報を作成する。この結果、サーバで実行されている
サーバプログラムに修正を加えることなく、クライアン
トで実行されているクライアントプログラムに提供可能
な機能を縮小することができる。
Also, for example, even though the address is described in the address information of the function that the server can provide to the client, the proxy server does not include the address or an address for accessing the address. Create the address information of the function that the client is permitted to use. As a result, the functions that can be provided to the client program running on the client can be reduced without modifying the server program running on the server.

【0023】なお、サーバがクライアントに提供可能な
機能のアドレス情報に記述されているアドレスを、代理
サーバがクライアントに利用を許可する機能のアドレス
情報に含めて作成した場合、クライアントが当該アドレ
スにアクセスすると、サーバが機能の提供を直接行うこ
とになる。代理サーバは処理に関与しない。
When the proxy server creates the address described in the address information of the function that the server can provide to the client in the address information of the function permitted to be used by the client, the client accesses the address. Then, the server directly provides the function. The proxy server does not participate in the processing.

【0024】一方、サーバがクライアントに提供可能な
機能のアドレス情報に記述されているアドレスにアクセ
スするためのアドレスを、代理サーバがクライアントに
利用を許可する機能のアドレス情報に含めて作成した場
合、クライアントが当該アドレスにアクセスすると、代
理サーバが改めてサーバにアクセスして機能の提供を要
求することになる。このようにすることで、クライアン
トによるサーバへのアクセス状況を、代理サーバでモニ
タすることが可能になるので、デバッグなどに有効であ
る。
On the other hand, if the proxy server creates an address for accessing the address described in the address information of the function that can be provided by the server to the client in the address information of the function permitted to be used by the client, When the client accesses the address, the proxy server accesses the server again and requests the provision of the function. This makes it possible to monitor the access status of the client to the server by the proxy server, which is effective for debugging and the like.

【0025】また、本発明の代理サーバプログラムが記
録された記録媒体は、クライアントプログラムと、上記
クライアントプログラムからの要求にしたがい、所定の
機能にアクセスするためのアドレス情報を上記クライア
ントプログラムに通知すると共に、上記クライアントプ
ログラムがアクセスしたアドレスに対応する機能を上記
クライアントプログラムに提供するサーバプログラム
と、からなるクライアント・サーバ・システムにおい
て、上記サーバプログラムの代わりに、上記クライアン
トプログラムに上記アドレス情報を通知する代理サーバ
プログラムが記録された記録媒体であって、当該代理サ
ーバプログラムは、情報処理装置に、上記クライアント
プログラムからの要求にしたがい、上記サーバプログラ
ムが上記クライアントプログラムに提供可能な機能にア
クセスするためのアドレス情報を、上記サーバプログラ
ムから入手するステップと、入手したアドレス情報を参
照して上記クライアントプログラムに利用を許可する機
能にアクセスするためのアドレス情報を作成するステッ
プと、作成したアドレス情報を上記クライアントプログ
ラムに通知するステップと、を実行させるものであるこ
とを特徴とする。
Further, the recording medium on which the proxy server program of the present invention is recorded provides the client program with address information for accessing a predetermined function to the client program in accordance with a request from the client program, and A server program for providing a function corresponding to an address accessed by the client program to the client program, in the client-server system, a proxy for notifying the client program of the address information instead of the server program. A recording medium on which a server program is recorded, wherein the proxy server program sends the client program to the information processing apparatus in response to a request from the client program. Obtaining address information for accessing a function that can be provided to the program from the server program, and creating address information for accessing a function permitted to be used by the client program with reference to the obtained address information. And sending the created address information to the client program.

【0026】[0026]

【発明の実施の形態】以下に、本発明の一実施形態が適
用されたクライアント・サーバ・システムについて説明
する。本実施形態において、クライアント・サーバ・シ
ステムとは、主に他からの要求を受け付けて機能(サー
ビス)を提供するプログラムと、当該サーバプログラム
に機能の提供を要求するプログラムとの関係を含む広範
囲のソフトウェア形態を指すものである。上記機能と
は、たとえば、少なくとも一つのAPI(Application Prog
ram Interface)を指す。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, a client server system to which an embodiment of the present invention has been applied will be described. In this embodiment, the client-server system refers to a wide range including a program mainly receiving a request from another and providing a function (service) and a program requesting the server program to provide a function. It refers to the software form. The above functions are, for example, at least one API (Application Prog
ram Interface).

【0027】また、ここでいうプログラムとは、プロセ
ス、スレッド、タスクを含むものであり、さらにクライ
アント・サーバ・システムとは、OSが管理するプロセス間
通信のような一つの情報処理装置中でのクライアント-
サーバ型の振る舞いを行うソフトウェア構成や、ソケッ
トによるネットワーク経由の通信、分散環境におけるオ
ブジェクト間通信も含む。たとえば、クライアントプロ
グラムとサーバプログラムとが連携して、ウィンドウ管
理やデータベース管理、あるいはハードウェア管理など
を行う一般的なクライアント・サーバ・システムの他、
アプリケーションプログラムと該アプリケーションプロ
グラムの要求を受け付けてディスプレイへの描画を行う
ディスプレイドライバとの関係なども、本実施形態でい
うクライアント・サーバ・システムに含まれる。
The term "program" as used herein includes processes, threads, and tasks. Further, the client / server system is defined as a unit in one information processing apparatus such as inter-process communication managed by the OS. client-
It also includes software configuration that performs server-type behavior, communication via a network using sockets, and communication between objects in a distributed environment. For example, in addition to a general client-server system that performs window management, database management, hardware management, and the like in cooperation with client programs and server programs,
The relationship between an application program and a display driver that receives a request from the application program and performs drawing on a display is also included in the client-server system according to the present embodiment.

【0028】図1は、本実施形態が適用されたクライア
ント・サーバ・システムを構成する各プログラムの位置
関係を示す図である。
FIG. 1 is a diagram showing the positional relationship among programs constituting a client-server system to which the present embodiment is applied.

【0029】本実施形態では、オペレーティングシステ
ム(OS)により、クライアントプログラム100に与
えられるサーバ側プログラムのアドレスを変更すること
で、クライアントプログラム100に対して、サーバプ
ログラム116の替わりに代理サーバプログラム108
と接続するように指示している。また、代理サーバプロ
グラム108をサーバプログラム116に接続するよう
にしている。このようにすることで、既存のクライアン
ト・サーバ・システムを構成するクライアントプログラ
ム100およびサーバプログラム116間に、代理サー
バプログラム108を介在させた構成としている。
In this embodiment, by changing the address of the server-side program given to the client program 100 by the operating system (OS), the proxy server program 108 is provided to the client program 100 instead of the server program 116.
Is instructed to connect. The proxy server program 108 is connected to the server program 116. By doing so, the proxy server program 108 is interposed between the client program 100 and the server program 116 constituting the existing client-server system.

【0030】なお、代理サーバプログラム108を複数
のサーバプログラム116に接続することで、クライア
ントプログラム100と複数のサーバプログラム116
との間に代理サーバプログラム108を介在させる構成
としてもよい。また、ここで、サーバプログラム116
としているものが、さらに他のサーバプログラムと代理
サーバプログラム108との間に介在された代理サーバ
プログラムであってもよい。
By connecting the proxy server program 108 to the plurality of server programs 116, the client program 100 and the plurality of server programs 116 are connected.
May be configured so that the proxy server program 108 is interposed therebetween. Here, the server program 116
May be a proxy server program interposed between another server program and the proxy server program 108.

【0031】図1において、呼出し可能機能集合106
は、代理サーバプログラム108がクライアントプログ
ラム100に提供可能な機能の呼出しアドレスを示す情
報である。この呼出し可能機能集合106には、代理サ
ーバプログラム108がクライアントプログラム100
に独自に提供可能な機能を呼び出すための呼出しアドレ
スの他、サーバプログラム116がクライアントプログ
ラム100に提供可能な機能を直接あるいは間接に呼び
出すための呼出しアドレスを含む。
In FIG. 1, callable function set 106
Is information indicating a call address of a function that the proxy server program 108 can provide to the client program 100. In this callable function set 106, the proxy server program 108
In addition to a call address for calling a function that can be provided uniquely to the client program 100, a call address for directly or indirectly calling a function that the server program 116 can provide to the client program 100 is included.

【0032】ここで呼び出し可能機能集合106とはた
とえば、上述の情報を記したテーブルとして構成され
る。それは、サーバが返すサーバの機能を説明するプロ
パティや、あるいは、サーバオブジェクトが提供するメ
ソッドの集合という形をとることがある。この呼出し可
能機能集合106は、クライアントプログラム100か
らの要求の内容に応じて、後述する呼出し可能機能集合
114を参照して作成される。そして、クライアントプ
ログラム100に通知される。したがって、クライアン
トプログラム100からの要求内容(どのような機能の
提供を受けようとしているか)によっては、呼出し可能
機能集合106の内容が変わる。
Here, the callable function set 106 is constituted, for example, as a table in which the above information is described. It may take the form of a property returned by the server that describes the server's functionality, or a set of methods provided by the server object. The callable function set 106 is created with reference to a callable function set 114 described later in accordance with the content of a request from the client program 100. Then, the client program 100 is notified. Therefore, the contents of the callable function set 106 change depending on the contents of a request from the client program 100 (what kind of function is to be provided).

【0033】呼出し可能機能集合114は、サーバプロ
グラム116がクライアントプログラム100に提供可
能な機能の呼出しアドレスを示す情報である。この呼出
し可能機能集合114は、代理サーバプログラム108
からの要求の内容に応じて作成され、代理サーバプログ
ラム108に通知される。したがって、代理サーバプロ
グラム108からの要求内容(どのような機能の提供を
受けようとしているか)によっては、呼出し可能機能集
合114の内容が変わる。呼び出し可能機能集合114
は、呼び出し可能機能集合106と同じく、たとえば、
上述の情報を記したテーブルとして構成される。それ
は、サーバが返すサーバの機能を説明するプロパティ
や、あるいは、サーバオブジェクトが提供するメソッド
の集合という形をとることがある。なお、上記要求と通
知とは、オブジェクトシステムにおける、クライアント
オブジェクトからサーバオブジェクトへの"インタフェ
ース"の問い合せとその回答に相当する。
The callable function set 114 is information indicating a call address of a function that the server program 116 can provide to the client program 100. This callable function set 114 is stored in the proxy server program 108.
Is created according to the content of the request from the proxy server program 108 and notified to the proxy server program 108. Therefore, the contents of the callable function set 114 change depending on the contents of a request from the proxy server program 108 (what kind of function is to be provided). Callable function set 114
Is the same as the callable function set 106, for example,
It is configured as a table describing the above information. It may take the form of a property returned by the server that describes the server's functionality, or a set of methods provided by the server object. Note that the above-mentioned request and notification correspond to an inquiry about an “interface” from a client object to a server object in the object system and a response to the inquiry.

【0034】図1では、クライアントプログラム100
は、代理サーバプログラム108から通知された呼出し
可能機能集合106を参照して、所望の機能の提供を、
呼出し可能機能集合106に記述された当該機能の呼出
しアドレスにアクセスして要求する。より具体的には、
クライアントプログラム100は、呼出し可能機能集合
106を参照してアドレスを取得した後、実際の機能呼
出しは当該アドレスを引数としてOSの機能を利用してア
クセスを行う。クライアントプログラム100から出
て、呼び出し可能機能集合106を通過している矢印
は、この本実施形態の動作を意味している。
In FIG. 1, the client program 100
Refers to the callable function set 106 notified from the proxy server program 108, and provides the desired function.
A request is made by accessing the call address of the function described in the callable function set 106. More specifically,
After referring to the callable function set 106 and acquiring the address, the client program 100 accesses the actual function call using the OS function using the address as an argument. The arrow exiting the client program 100 and passing through the callable function set 106 indicates the operation of this embodiment.

【0035】同様に、代理サーバプログラム108は、
サーバプログラム116から通知された呼出し可能機能
集合114を参照して、所望の機能の提供を、呼出し可
能機能集合114に記述された当該機能の呼出しアドレ
スにアクセスして要求する。代理サーバプログラム10
8から出て、呼び出し可能機能集合114を通過してい
る矢印は、この本実施形態の動作を意味している。
Similarly, the proxy server program 108
By referring to the callable function set 114 notified from the server program 116, a request for providing a desired function is made by accessing the call address of the function described in the callable function set 114. Proxy server program 10
The arrow exiting from FIG. 8 and passing through the callable function set 114 indicates the operation of this embodiment.

【0036】クライアントプログラム100がアクセス
した呼出しアドレスが、代理サーバプログラム108が
クライアントプログラム100に独自に提供可能な機能
を呼び出すためのアドレスである場合、代理サーバプロ
グラム108は、クライアントプログラム100が要求
した機能を処理してクライアントプログラム100に提
供する。なお、代理サーバプログラム108は、それ自
身で要求された機能を実現してもよいし、要求された機
能を実現する他のプログラム、コンポーネント、オブジ
ェクトをダウンロードしたり、それらへ処理を依頼して
もよい。
If the call address accessed by the client program 100 is an address for calling a function that the proxy server program 108 can independently provide to the client program 100, the proxy server program 108 executes the function requested by the client program 100. Is processed and provided to the client program 100. Note that the proxy server program 108 may implement the requested function by itself, or may download other programs, components, and objects that implement the requested function, or request them to perform processing. Good.

【0037】また、クライアントプログラム100がア
クセスした呼出しアドレスが、サーバプログラム116
がクライアントプログラム100に提供可能な機能を間
接的に呼び出すためのアドレスである場合、代理サーバ
プログラム108は、サーバプログラム116から通知
された呼出し可能機能集合114を参照して、クライア
ントプログラム100が要求した機能を、呼出し可能機
能集合114に記述された当該機能の呼出しアドレスに
アクセスして要求する。また、必要に応じて当該機能あ
るいは当該機能呼出しに関連する処理を行う。
The call address accessed by the client program 100 is stored in the server program 116.
Is an address for indirectly calling a function that can be provided to the client program 100, the proxy server program 108 refers to the callable function set 114 notified from the server program 116, and requests the client program 100 A function is requested by accessing the call address of the function described in the callable function set 114. In addition, processing related to the function or the function call is performed as necessary.

【0038】これを受けて、サーバプログラム116
は、代理サーバプログラム108が要求した機能を処理
して代理サーバプログラム108に提供する。代理サー
バプログラム108は、サーバプログラム116から提
供された機能を、必要に応じて行った処理結果ととも
に、クライアントプログラム100に提供する。例え
ば、特殊な高速計算用サーバプログラムに対して代理サ
ーバプログラム106は並列処理を見せかけることがで
きる。すなわち、代理サーバプログラムは複数の計算要
求を一度に受け付けて、サーバプログラムには、一つず
つ計算を実行させる。そして結果をまとめて返す機能を
提供する。
In response, the server program 116
Processes the function requested by the proxy server program 108 and provides it to the proxy server program 108. The proxy server program 108 provides the function provided by the server program 116 to the client program 100 together with the result of processing performed as necessary. For example, the proxy server program 106 can simulate parallel processing with respect to a special high-speed calculation server program. That is, the proxy server program receives a plurality of calculation requests at once, and causes the server program to execute the calculations one by one. And it provides a function to return the results all together.

【0039】また、クライアントプログラム100がア
クセスした呼出しアドレスが、サーバプログラム116
がクライアントプログラム100に提供可能な機能を直
接呼び出すためのアドレスである場合、サーバプログラ
ム116は、クライアントプログラム100が要求した
機能を処理してクライアントプログラム100に提供す
る。
The call address accessed by the client program 100 is stored in the server program 116.
Is an address for directly calling a function that can be provided to the client program 100, the server program 116 processes the function requested by the client program 100 and provides the same to the client program 100.

【0040】このように、本実施形態では、クライアン
トプログラム100は、代理サーバプログラム108か
ら通知された呼出し可能機能集合106に記述されたア
ドレスにアクセスすることで、機能の提供を要求するよ
うにしている。また、代理サーバプログラム108は、
自己がクライアントプログラム100に独自に提供可能
な機能を呼び出すための呼出しアドレスの他、サーバプ
ログラム116がクライアントプログラム100に提供
可能な機能を直接あるいは間接に呼び出すための呼出し
アドレスを含めて、呼出し可能機能集合106を作成す
るようにしている。
As described above, in this embodiment, the client program 100 requests the provision of a function by accessing the address described in the callable function set 106 notified from the proxy server program 108. I have. In addition, the proxy server program 108
A callable function including a call address for calling a function that the server program 116 can provide for the client program 100 directly or indirectly, in addition to a call address for calling a function that can be provided to the client program 100 by itself. A set 106 is created.

【0041】このようにすることで、サーバプログラム
116に修正を加えることなく、クライアントプログラ
ム100に提供可能な機能を拡張することができる。ま
た、たとえば、サーバプログラム116がクライアント
プログラム100に提供可能なある機能について、サー
バプログラム116が実行するよりもクライアントプロ
グラム100が実行した方が処理が速いような場合、予
め当該機能を縮小した代理サーバプログラム108を与
えておくことでサーバプログラム116に修正を加える
ことなく、クライアントプログラム100に提供可能な
機能を縮小することができる。
By doing so, it is possible to extend the functions that can be provided to the client program 100 without modifying the server program 116. Further, for example, in the case where a certain function that the server program 116 can provide to the client program 100 is faster in execution by the client program 100 than by the server program 116, a proxy server that reduces the function in advance By providing the program 108, it is possible to reduce the functions that can be provided to the client program 100 without modifying the server program 116.

【0042】以下、本実施形態が適用されたクライアン
ト・サーバ・システムを実現するためのハードウエア構
成について説明する。本実施形態のクライアント・サー
バ・システムの実現形態としては、クライアントプログ
ラム100、代理サーバプログラム108およびサーバ
プログラム116を、1つのコンピュータで処理する場
合と、LAN(Local Area Network)などの通信ネット
ワークを介して接続された複数のコンピュータで分散し
て処理する場合と、が考えられ得る。
Hereinafter, a hardware configuration for realizing a client server system to which the present embodiment is applied will be described. As a mode of realizing the client-server system of the present embodiment, a case where the client program 100, the proxy server program 108, and the server program 116 are processed by one computer, and a case where the client program 100 is processed via a communication network such as a LAN (Local Area Network). And a plurality of computers connected in a distributed manner.

【0043】図2は、クライアントプログラム100、
代理サーバプログラム108およびサーバプログラム1
16を、1つのコンピュータで処理する場合のハードウ
エア構成を示す図である。CPU(中央演算装置)20
0は、磁気ディスクや光ディスクなどの記憶媒体にクラ
イアントプログラム100、代理サーバプログラム10
8およびサーバプログラム116が格納された2次記憶
装置202から、必要なプログラムをメモリなどの記憶
装置204上にロードして実行する。ここで、符号20
8は、CPU200、2次記憶装置202および記憶装
置204間において、相互のデータ転送を行うためのバ
スである。また、オペレーティングシステム(OS)は、2
次記憶装置202または記憶装置204に配置される。
FIG. 2 shows a client program 100,
Proxy server program 108 and server program 1
FIG. 16 is a diagram showing a hardware configuration in the case of processing 16 by one computer. CPU (central processing unit) 20
0 denotes a client program 100 and a proxy server program 10 in a storage medium such as a magnetic disk or an optical disk.
The necessary programs are loaded from the secondary storage device 202 storing the server 8 and the server program 116 onto the storage device 204 such as a memory and executed. Here, reference numeral 20
Reference numeral 8 denotes a bus for performing mutual data transfer between the CPU 200, the secondary storage device 202, and the storage device 204. The operating system (OS) is 2
It is arranged in the next storage device 202 or the storage device 204.

【0044】なお、プログラムのロード機能は、コンピ
ュータが搭載しているオペレーティングシステム(O
S)の機能に依存するものである。対象とするプログラ
ムが既にロードされている場合には、新規にロードされ
ないこともある。また、各プログラム間のデータのやり
取りには、オペレーティングシステム(OS)が提供す
るプログラム間通信手段が利用される。具体的には、OS
が提供するメッセージや、ネットワークを使うか否かに
関わらず、ソケットを利用したネットワーク通信、さら
に最近の、分散オブジェクト環境におけるオブジェクト
間インタフェースを利用すればよい。
The program loading function is provided by an operating system (O / O) installed in the computer.
It depends on the function of S). If the target program has already been loaded, it may not be newly loaded. For data exchange between programs, an inter-program communication means provided by an operating system (OS) is used. Specifically, OS
Irrespective of the message provided by, or whether or not to use a network, a network communication using a socket or a more recent interface between objects in a distributed object environment may be used.

【0045】図3は、クライアントプログラム100、
代理サーバプログラム108およびサーバプログラム1
16を、複数のコンピュータで分散して処理する場合の
ハードウエア構成を示す図である。ここでは、クライア
ントプログラム100をコンピュータ201aで処理
し、代理サーバプログラム108をコンピュータ201
bで処理し、そして、サーバプログラム116をコンピ
ュータ201cで処理する場合について示している。2
01dについては後述する。
FIG. 3 shows the client program 100,
Proxy server program 108 and server program 1
FIG. 16 is a diagram illustrating a hardware configuration in a case where a plurality of computers are processed in a distributed manner. Here, the client program 100 is processed by the computer 201a, and the proxy server program 108 is processed by the computer 201a.
b, and the server program 116 is processed by the computer 201c. 2
01d will be described later.

【0046】コンピュータ201a〜201dは、LA
Nなどの通信ネットワーク203を介して相互に通信を
行うための通信制御装置206(LANアダプタやターミ
ナルアダプタ(TA)などが該当)を備えている点を除き、
図2に示すコンピュータのハードウエア構成と同じであ
る。ただし、クライアントプログラム100、代理サー
バプログラム108、およびサーバプログラム116
は、それぞれコンピュータ201a、201b、201
cの2次記憶装置202に格納されており、対応するコ
ンピュータのCPU200によって、対応する記憶装置
204上にロードされて、実行される。また、各プログ
ラム間のデータのやり取りには、通信ネットワーク20
3が利用される。
The computers 201a to 201d are LA
N, except that a communication controller 206 (corresponding to a LAN adapter or a terminal adapter (TA)) for performing mutual communication via a communication network 203 such as N is provided.
This is the same as the hardware configuration of the computer shown in FIG. However, the client program 100, the proxy server program 108, and the server program 116
Are computers 201a, 201b, 201
c, which is stored in the secondary storage device 202 and is loaded onto the corresponding storage device 204 and executed by the CPU 200 of the corresponding computer. The exchange of data between the programs requires a communication network 20.
3 is used.

【0047】なお、図3に示す例では、クライアントプ
ログラム100、代理サーバプログラム108およびサ
ーバプログラム116をそれぞれ異なるコンピュータで
処理するように構成した例について説明したが、これに
限定されるものではない。たとえば、代理サーバプログ
ラム108とサーバプログラム116とを同じコンピュ
ータで処理し、クライアントプログラム100をその他
のコンピュータで処理するようにしてもよい。また、そ
の他の組合せで処理するようにしてもよい。
In the example shown in FIG. 3, an example is described in which the client program 100, the proxy server program 108, and the server program 116 are configured to be processed by different computers, but the present invention is not limited to this. For example, the proxy server program 108 and the server program 116 may be processed by the same computer, and the client program 100 may be processed by another computer. Also, the processing may be performed in other combinations.

【0048】次に、代理サーバプログラム108で作成
される呼出し可能機能集合106と、サーバプログラム
116で作成される呼出し可能機能集合114との関係
について説明する。図4は、代理サーバープログラム1
08で作成される呼出し可能機能集合106と、サーバ
プログラム116で作成される呼出し可能機能集合11
4との関係を説明するための図である。ここでは、クラ
イアントプログラム100と2つのサーバープログラム
116−A、116−Bとの間に、代理サーバープログ
ラム108を介在させた場合について説明する。なお、
クライアントプログラム100、2つのサーバープログ
ラム116−A、116−Bと代理サーバープログラム
108それぞれは、すでに述べたように、1つの計算機
上で動作するものであってもよい。ひとつのプロセスに
あっても、異なるプロセスにあってもよい。又、この図
におけるクライアントプログラム100から出ている各
矢印は、図1における矢印と同様の意味を持つものであ
る。
Next, the relationship between the callable function set 106 created by the proxy server program 108 and the callable function set 114 created by the server program 116 will be described. FIG. 4 shows the proxy server program 1
08, and the callable function set 11 created by the server program 116.
FIG. 4 is a diagram for explaining a relationship with No. 4; Here, a case where a proxy server program 108 is interposed between the client program 100 and the two server programs 116-A and 116-B will be described. In addition,
Each of the client program 100, the two server programs 116-A and 116-B, and the proxy server program 108 may operate on one computer as described above. It may be in one process or a different process. Also, the arrows from the client program 100 in this figure have the same meaning as the arrows in FIG.

【0049】代理サーバープログラム108で作成され
る呼出し可能機能集合106は、図4に示すように、直
接呼出し機能の集合300(300−A、300−
B)、間接呼出し機能の集合302(302−A、30
2−B)、および独自提供機能の集合304の3種類の
部分集合で構成されている。ここで、直接呼出し機能の
集合300には、サーバプログラム116から通知され
た呼出し可能機能集合114に記述された呼出しアドレ
スが設定されている。具体的には、直接呼出し機能の集
合300−Aには、サーバプログラム116−Aから通
知された呼出し可能機能集合114−Aに記述された呼
出しアドレスが設定されている。また、直接呼出し機能
の集合300−Bには、サーバプログラム116−Bか
ら通知された呼出し可能機能集合114−Bに記述され
た呼出しアドレスが設定されている。より具体的には、
これらの集合は、代理サーバプログラムにより、アドレ
スが配列されたテーブルとして記憶装置上に構成され、
クライアントプログラムには、そのテーブルへのポイン
タが渡される。
As shown in FIG. 4, the callable function set 106 created by the proxy server program 108 has a direct call function set 300 (300-A, 300-
B), a set 302 of indirect call functions (302-A, 30)
2-B) and a set 304 of uniquely provided functions. Here, the call address described in the callable function set 114 notified from the server program 116 is set in the direct call function set 300. Specifically, the call address described in the callable function set 114-A notified from the server program 116-A is set in the direct call function set 300-A. In addition, the call address described in the callable function set 114-B notified from the server program 116-B is set in the direct call function set 300-B. More specifically,
These sets are configured on the storage device as a table in which addresses are arranged by the proxy server program,
The client program is passed a pointer to the table.

【0050】したがって、クライアントプログラム10
0が、直接呼出し機能の集合300に記述された呼出し
アドレスにアクセスして、機能の提供を要求すると、直
接サーバプログラム116が当該機能の提供のための処
理を実行する(図4の矢印306、318参照)。この
場合、代理サーバープログラム108は、クライアント
プログラム100への機能の提供に関し、その処理に介
在しない。
Therefore, the client program 10
0 accesses the call address described in the direct call function set 300 and requests the provision of the function, the direct server program 116 executes a process for providing the function (arrow 306 in FIG. 4). 318). In this case, the proxy server program 108 does not intervene in the processing for providing the function to the client program 100.

【0051】間接呼出し機能302には、サーバプログ
ラム116から通知された呼出し可能機能集合114の
呼出しアドレスにアクセスするための機能の呼出しアド
レスが設定されている。具体的には、間接呼出し機能の
集合302−Aには、サーバプログラム116−Aから
通知された呼出し可能機能集合114−Aの呼出しアド
レスにアクセスするための機能の呼出しアドレスが設定
されている。また、間接呼出し機能の集合302−Bに
は、サーバプログラム116−Bから通知された呼出し
可能機能集合114−Bの呼出しアドレスにアクセスす
るための機能の呼出しアドレスが設定されている。
In the indirect call function 302, a call address of a function for accessing the call address of the callable function set 114 notified from the server program 116 is set. Specifically, a call address of a function for accessing a call address of the callable function set 114-A notified from the server program 116-A is set in the indirect call function set 302-A. Also, in the indirect call function set 302-B, a call address of a function for accessing the call address of the callable function set 114-B notified from the server program 116-B is set.

【0052】したがって、クライアントプログラム10
0が、間接呼出し機能の集合302に記述された呼出し
アドレスにアクセスすると、代理サーバプログラム10
8は、必要に応じて所定の処理を行うとともに、自分が
クライアントとなって、自己が備えるサーバプログラム
呼出しインターフェース321を介して、サーバプログ
ラム116の呼出し可能機能集合114に記述された、
対応する呼出しアドレスにアクセスし、機能の提供を要
求する。これを受けて、サーバプログラム116が当該
機能の提供のための処理を実行する(図4の矢印30
8、320参照)。
Therefore, the client program 10
0 accesses the call address described in the indirect call function set 302, the proxy server program 10
8 performs predetermined processing as necessary and describes itself as a client in the callable function set 114 of the server program 116 via the server program call interface 321 provided therein.
Access the corresponding call address and request the provision of the function. In response, the server program 116 executes a process for providing the function (arrow 30 in FIG. 4).
8, 320).

【0053】独自提供機能の集合304には、サーバプ
ログラム116が提供できない機能であって、代理サー
バプログラム116が提供可能な機能の呼出しアドレス
が設定されている。なお、代理サーバプログラム116
には、独自提供機能304に記述された呼出しアドレス
で特定される機能を提供するためのモジュールが設定さ
れている。
In the set of uniquely provided functions 304, call addresses of functions which cannot be provided by the server program 116 and which can be provided by the proxy server program 116 are set. The proxy server program 116
In, a module for providing a function specified by the call address described in the uniquely provided function 304 is set.

【0054】図4に示す例では、サーバプログラム11
6が提供する機能を利用して、サーバプログラム116
が提供できない機能の提供を実現する独自提供機能実現
モジュール322と、サーバプログラム116が提供す
る機能をまったく利用することなく、サーバプログラム
116が提供できない機能の提供を実現する独自提供機
能実現モジュール324とが、設定されている例を示し
ている(図4の矢印310〜314参照)。独自提供機
能実現モジュール324は、代理サーバプログラム10
8内で処理されるものでも良いし、図4に示すコンピュ
ータ201dのようなネットワークを介した他のコンピ
ュータへ処理を依頼するものであったり、コンピュータ
201dからコンポーネントをダウンロードして処理す
るものであっても良い。
In the example shown in FIG. 4, the server program 11
6 using the functions provided by the server program 116.
A unique providing function realizing module 322 that realizes the provision of a function that cannot be provided by the server program 116 without using the function provided by the server program 116 at all. Indicate an example of setting (see arrows 310 to 314 in FIG. 4). The uniquely provided function realizing module 324 is a proxy server program 10
8 or may request another computer via a network such as the computer 201d shown in FIG. 4 to perform processing, or may download and process components from the computer 201d. May be.

【0055】サーバープログラム116で作成される呼
出し可能機能集合114は、図4に示すように、3種類
の部分集合で構成される。直接呼出し対象機能の集合3
26(326−A、326−B)は、直接呼出し機能の
集合300(300−A、300−B)に対応してい
る。具体的には、直接呼出し対象機能の集合326−A
に記述された呼出しアドレスは、直接呼出し機能の集合
300−Aに記述された呼出しアドレスと一致してい
る。また、直接呼出し対象機能の集合326−Bに記述
された呼出しアドレスは、直接呼出し機能の集合300
−Bに記述された呼出しアドレスと一致している。
The callable function set 114 created by the server program 116 is composed of three types of subsets as shown in FIG. Set 3 of functions to be directly called
26 (326-A, 326-B) corresponds to the set 300 (300-A, 300-B) of the direct call function. Specifically, a set 326-A of functions to be directly called
Is the same as the call address described in the direct call function set 300-A. Further, the call address described in the set 326-B of the directly called function is the set 300 of the directly called functions.
-Matches the call address described in B.

【0056】間接呼出し対象機能の集合328(328
−A、328−B)は、間接呼出し機能の集合302
(302−A、302−B)に対応している。具体的に
は、間接呼出し対象機能の集合328−Aに記述された
呼出しアドレスは、間接呼出し機能の集合302−Aに
記述された、当該アドレスへアクセスするための機能の
呼出しアドレスに対応づけられている。また、間接呼出
し対象機能の集合328−Bに記述された呼出しアドレ
スは、間接呼出し機能の集合302−Bに記述された、
当該アドレスへアクセスするための機能の呼出しアドレ
スに対応づけられている。
A set 328 (328) of functions to be indirectly called
-A, 328-B) is a set 302 of indirect call functions.
(302-A, 302-B). Specifically, the call address described in the indirect call function set 328-A is associated with the call address of the function for accessing the address described in the indirect call function set 302-A. ing. Further, the call address described in the set of indirect call target functions 328-B is the same as the call address described in the set of indirect call functions 302-B.
It is associated with a call address of a function for accessing the address.

【0057】直接/間接呼出し対象外機能の集合330
(330−A、330−B)は、直接呼出し対象機能の
集合326および間接呼出し対象機能の集合328のい
ずれにも含まれない機能、すなわち、クライアントプロ
グラム100に提供されない機能の呼出しアドレスが記
述された部分集合である。
Set 330 of functions not to be directly / indirectly called
(330-A, 330-B) describes a call address of a function that is not included in any of the direct call target function set 326 and the indirect call target function set 328, that is, a function that is not provided to the client program 100. Subset.

【0058】ここで、サーバプログラム116がディス
プレイドライバである場合に、どのような機能が、代理
サーバプログラム108の呼出し可能機能集合106に
おける直接呼出し機能、間接呼出し機能、および独自提
供機能に該当するか、一例を挙げる。ディスプレイドラ
イバは、通常、アプリケーションプログラムの要求にし
たがい、当該ディスプレイドライバが搭載されたコンピ
ュータのディスプレイやプリンタに対して描画処理を行
う。これ等の機能をそのまま利用する場合は、代理サー
バプログラム108は、ディスプレイドライバの呼出し
可能機能集合114に記述されたこれ等の機能の呼出し
アドレスを、直接呼出し機能集合としてテーブル化し、
それへのポインタ(アドレス)をクライアントプログラム
100に渡す。
Here, when the server program 116 is a display driver, what functions correspond to the direct calling function, the indirect calling function, and the originally provided function in the callable function set 106 of the proxy server program 108? An example is given below. The display driver normally performs a drawing process on a display or a printer of a computer on which the display driver is mounted, according to a request of an application program. If these functions are to be used as they are, the proxy server program 108 tabulates the call addresses of these functions described in the display driver callable function set 114 as a directly callable function set.
The pointer (address) to it is passed to the client program 100.

【0059】ところで、ディスプレイドライバは、通
常、複数のディスプレイに対して描画処理を行うといっ
た機能をサポートしていない。アプリケーションプラグ
ラムの要求にしたがい複数のディスプレイに対して描画
処理を行う機能を実現するためには、たとえば、複数の
ディスプレイドライバに対してディスプレイへの描画処
理を要求するような機能を実現するモジュールを構成
し、当該モジュールへの呼出しアドレスを独自提供機能
に設定する。
By the way, the display driver does not usually support a function of performing drawing processing on a plurality of displays. In order to realize a function of performing drawing processing on a plurality of displays according to a request of an application program, for example, a module that realizes a function of requesting a plurality of display drivers to perform drawing processing on a display is configured. Then, the call address to the module is set in the function provided independently.

【0060】また、たとえば、デバッグのために、ディ
スプレイドライバが提供するある機能について、アプリ
ケーションプログラムによる当該機能の提供の要求回数
などを記録する場合、ディスプレイドライバの呼出し可
能機能集合114に記述された当該機能の呼出しアドレ
スへのアクセス処理を行うための呼出しアドレスを間接
呼出し機能に設定する。そして、代理サーバプログラム
108において、間接呼出し機能に設定された呼出しア
ドレスへのアクセス回数を記録するような処理を行う。
For example, when recording the number of times the application program requests the provision of a certain function provided by the display driver for debugging, the function described in the callable function set 114 of the display driver is recorded. A call address for performing access processing to a function call address is set in the indirect call function. Then, the proxy server program 108 performs a process of recording the number of accesses to the call address set in the indirect call function.

【0061】なお、図4では、クライアントプログラム
100と2つのサーバープログラム116−A、116
−Bとの間に、代理サーバープログラム108を介在さ
せた場合について説明したが、サーバープログラム11
6が1つの場合、あるいは、3つ以上の場合における呼
出し可能機能集合106と呼出し可能機能集合114と
の関係も基本的に同様である。また、サーバプログラム
116−A、116−Bが、さらに他のサーバプログラ
ムと代理サーバプログラム108との間に介在された代
理サーバプログラムである場合も、以上の説明から同様
に理解されるであろう。
In FIG. 4, the client program 100 and the two server programs 116-A and 116 are used.
-B, the proxy server program 108 has been described.
The relationship between the callable function set 106 and the callable function set 114 in the case where there is one or three or more is basically the same. Also, the case where the server programs 116-A and 116-B are proxy server programs interposed between another server program and the proxy server program 108 will be similarly understood from the above description. .

【0062】次に、呼出し可能機能集合106、114
の構成について説明する。図5は呼出し可能機能集合1
06、114の構成を説明するための図である。呼出し
可能機能集合106、114は、図5に示すように、呼
出し可能機能記述子402の列および該列の終端を示す
テーブル終端インジケータ404を備えたテーブルで構
成されている。呼出し可能機能記述子402は、それが
呼出し可能機能集合106に含まれる場合はクライアン
トプログラム100が利用可能な機能を呼び出すための
情報であり、また、呼出し可能機能集合114に含まれ
る場合は、代理サーバプログラム108が利用可能な機
能を呼び出すための情報である。呼出し可能機能記述子
402は、呼出し可能機能識別子406と呼出し可能機
能呼出しアドレス408とで構成されている。
Next, the callable function sets 106 and 114
Will be described. FIG. 5 shows a callable function set 1
It is a figure for demonstrating the structure of 06,114. As shown in FIG. 5, the callable function sets 106 and 114 are constituted by a table having a column of the callable function descriptor 402 and a table end indicator 404 indicating the end of the column. The callable function descriptor 402 is information for calling a function that can be used by the client program 100 when the callable function descriptor 402 is included in the callable function set 106, and is a proxy when the callable function descriptor 402 is included in the callable function set 114. This is information for the server program 108 to call available functions. The callable function descriptor 402 includes a callable function identifier 406 and a callable function call address 408.

【0063】クライアントプログラム100および代理
サーバープログラム108は、呼出し可能機能識別子4
06を用いて目的の機能を検索し、対応する呼出し可能
機能呼出しアドレス408にアクセスすることで、目的
の機能の提供を要求する。もし、呼出すべき機能があら
かじめ分かっているときは、呼出し可能機能呼出しアド
レス408は、プログラムをコンパイルする時に、検索
結果が示すアドレスを指すポインタに置き換えていても
よい。
The client program 100 and the proxy server program 108 use the callable function identifier 4
The search for the target function is performed using 06, and the provision of the target function is requested by accessing the corresponding callable function call address 408. If the function to be called is known in advance, the callable function call address 408 may be replaced with a pointer indicating the address indicated by the search result when compiling the program.

【0064】次に、本実施形態が適用されたクライアン
ト・サーバ・システムを構成する各プログラムの動作に
ついて説明する。なお、上述したように、各プログラム
は、CPUによって、磁気ディスクや光ディスクなどの
2次記憶装置からメモリなどの記憶装置上にロードさ
れ、実行されることで動作する。当然のことながら、実
際に処理を行うのはCPUである。
Next, the operation of each program constituting the client-server system to which the present embodiment is applied will be described. As described above, each program operates by being loaded from a secondary storage device such as a magnetic disk or an optical disk onto a storage device such as a memory and executed by the CPU. As a matter of course, it is the CPU that actually performs the processing.

【0065】最初に、クライアントプログラム100の
動作について説明する。図6は、クライアントプログラ
ム100の動作を説明するためのフロー図である。ま
ず、クライアントプログラム100は、代理サーバプロ
グラム108をロードして起動させる(ステップ50
2)。より具体的には、クライアントプログラム100
の要求に従い、システムを管理するオペレーティングシ
ステムがそれをロードして、起動させる。例えば、クラ
イアントプログラム100の起動前に、クライアントプ
ログラム100が参照するアドレス、すなわちサーバプ
ログラム116へアクセスするためのシステムへの登録
アドレスを変更することにより、サーバプログラム11
6の替わりに代理サーバプログラム108にアクセスさ
せることができる。
First, the operation of the client program 100 will be described. FIG. 6 is a flowchart for explaining the operation of the client program 100. First, the client program 100 loads and starts the proxy server program 108 (Step 50).
2). More specifically, the client program 100
In response to the request, the operating system managing the system loads and starts it. For example, by changing the address referred to by the client program 100, that is, the registered address in the system for accessing the server program 116 before the client program 100 is activated, the server program 11
The proxy server program 108 can be accessed instead of 6.

【0066】そして、クライアントプログラム100
は、代理サーバプログラム108と接続後、最初にやり
取りされるメッセージにおいて、自己が利用を予定して
いる機能を通知して、呼出し可能機能集合106を要求
する(ステップ504)。すなわち、本実施形態では、
クライアントプログラム100は、サーバプログラム1
16に対して要求するつもりが、代理サーバプログラム
108に要求することになり、クライアントプログラム
100に与えられるサーバプログラムのアドレスとし
て、代理サーバプログラム108のアドレスが与えられ
る。
Then, the client program 100
After connecting to the proxy server program 108, the first exchanged message notifies the function that the user intends to use and requests the callable function set 106 (step 504). That is, in the present embodiment,
The client program 100 is a server program 1
When the request to the client program 100 is made, the address of the proxy server program 108 is given as the address of the server program given to the client program 100.

【0067】次に、クライアントプログラム100は、
呼出し可能機能集合106にアクセス可能になる(ステ
ップ506)と、この集合を用いて必要な内部処理を実
施する(ステップ508)と前処理を終了する。イベン
ト駆動型のプログラムでは、ここからイベントループが
始まる。その後、クライアントプログラム100本来の
処理を実行する(ステップ510)。たとえば、アクセ
ス可能になった呼出し可能機能集合106を参照して、
必要な機能の呼出しアドレスにアクセスし、当該機能の
提供を受ける。なお、代理サーバプログラム108が他
のコンピュータに搭載されている場合、クライアントプ
ログラム100は、通信ネットワークを介して、当該他
のコンピュータに対して、代理サーバプログラム108
を起動するよう指示を出す。その後、起動された代理サ
ーバプログラム108との間で、通信ネットワークを介
して上記のやり取りを行う。
Next, the client program 100
When the callable function set 106 becomes accessible (step 506), necessary internal processing is performed using this set (step 508), and the pre-processing ends. In an event-driven program, the event loop starts here. Thereafter, the original processing of the client program 100 is executed (step 510). For example, referring to the callable function set 106 that has become accessible,
Access the call address of the required function and receive the provision of the function. When the proxy server program 108 is installed in another computer, the client program 100 sends the proxy server program 108 to the other computer via a communication network.
To start. Thereafter, the above-described exchange is performed with the started proxy server program 108 via the communication network.

【0068】次に、サーバプログラム116の動作につ
いて説明する。図7は、サーバプログラム116の動作
を説明するためのフロー図である。まず、サーバプログ
ラム116は、要求が送られてくるのを待つ(ステップ
602)。受け取った要求が、代理サーバプログラム1
08から送られてきた呼出し可能機能集合114の要求
である場合(ステップ604)、代理サーバプログラム
108から通知された利用予定の機能内容に応じて、呼
出し可能機能集合114を作成し(ステップ606)、
これを代理サーバプログラム108に通知する(ステッ
プ608)。通知する内容は、すでに、テーブル構成が
規定されていれば、通知する内容としてはアドレスだけ
でよい。規定されていなければ“関数名”と“アドレ
ス”を対応づけたものとなる。
Next, the operation of the server program 116 will be described. FIG. 7 is a flowchart for explaining the operation of the server program 116. First, the server program 116 waits for a request to be sent (step 602). The received request is a proxy server program 1
If the request is for the callable function set 114 sent from the server 08 (step 604), the callable function set 114 is created according to the function contents to be used notified from the proxy server program 108 (step 606). ,
This is notified to the proxy server program 108 (step 608). The content to be notified may be only the address as the content to be notified if the table configuration is already defined. If not specified, "function name" is associated with "address".

【0069】また、受け取った要求が、代理サーバプロ
グラム108から送られてきたサーバープログラム11
6の終了要求である場合(ステップ610)、終了処理
を行う(ステップ612)。その後、CPUはサーバプ
ログラム116の実行を終了する(ステップ614)。
さらに、受け取った要求が、ステップ606で自己が作
成した呼出し可能機能集合114に記述された呼出しア
ドレスへのアクセスである場合、当該呼出しアドレスで
特定される機能の提供処理を行う(ステップ616)。
The received request is sent to the server program 11 sent from the proxy server program 108.
If the request is the end request of step 6 (step 610), end processing is performed (step 612). Thereafter, the CPU ends the execution of the server program 116 (Step 614).
Further, when the received request is an access to the call address described in the callable function set 114 created by itself in step 606, the process of providing the function specified by the call address is performed (step 616).

【0070】次に、代理サーバプログラム108の動作
について説明する。図8は、代理サーバープログラム1
08の動作を説明するためのフロー図である。このフロ
ー図に記載された動作は、OSによりロードされて起動さ
れるごとに実行されるものである。なお、ここでは、説
明をより分かり易くするために、代理サーバプログラム
108が、クライアントプログラム100と1つのサー
バプログラム116との間に介在している場合について
説明する。最初に種々のネゴシエーション(代理サーバ
プログラム108からクライアントプログラム100に
提供できる機能を伝えるなど)が行われたあと、代理サ
ーバプログラム108は、クライアントプログラム10
0から要求が送られてくるのを待つ(ステップ70
2)。
Next, the operation of the proxy server program 108 will be described. FIG. 8 shows the proxy server program 1
It is a flowchart for demonstrating the operation of 08. The operation described in this flowchart is executed each time the OS is loaded and activated. Here, in order to make the description easier to understand, a case where the proxy server program 108 is interposed between the client program 100 and one server program 116 will be described. After performing various negotiations (such as transmitting functions that can be provided from the proxy server program 108 to the client program 100) first, the proxy server program 108
Wait for a request from 0 (step 70)
2).

【0071】クライアントプログラム100から受け取
った要求が、呼出し可能機能集合106の要求である場
合(ステップ704)、代理の対象となるサーバプログ
ラム116をロードして起動させる(ステップ70
6)。複数のサーバプログラム116を呼び出す場合も
あるし、呼び出さずに代理サーバプログラム108自身
が処理する場合もあり得る。そして、サーバプログラム
116に対して、クライアントプログラム100から通
知された、当該クライアントプログラム100が利用を
予定している機能を通知して、呼出し可能機能集合11
4を要求する(ステップ708)。利用を予定している
機能がデフォルトのもの1種類だけならば、利用予定機
能を通知しなくても良い。
When the request received from the client program 100 is a request for the callable function set 106 (step 704), the server program 116 to be substituted is loaded and activated (step 70).
6). A plurality of server programs 116 may be called, or the proxy server program 108 itself may process without calling. Then, the server program 116 is notified of the function that the client program 100 intends to use, which is notified from the client program 100, and the callable function set 11 is notified.
4 (step 708). If there is only one default function to be used, it is not necessary to notify the function to be used.

【0072】次に、代理サーバプログラム108は、呼
出し可能機能集合114を取得する(ステップ710)
と、この集合を用いて自己がクライアントプログラム1
00に通知する呼出し可能機能集合106を作成する
(ステップ712)。その後、作成した呼出し可能機能
集合106をクライアントプログラム100に通知する
(ステップ714)。この通知は、例えば、クライアン
トプログラム100がアクセスできる記憶装置204の
中に該呼び出し可能機能集合106をコピーした上で、
該コピーのアドレスをクライアントプログラム100に
返すことによりなされる。
Next, proxy server program 108 obtains callable function set 114 (step 710).
And the client program 1 using this set
Then, a callable function set 106 for notifying 00 is created (step 712). Thereafter, the created callable function set 106 is notified to the client program 100 (step 714). This notification is obtained by, for example, copying the callable function set 106 into the storage device 204 accessible by the client program 100,
This is done by returning the address of the copy to the client program 100.

【0073】また、クライアントプログラム100から
受け取った要求が、代理サーバプログラム108の終了
要求である場合(ステップ716)、対象となるサーバ
プログラム116に対して処理要求を通知し、終了処理
を行う(ステップ718)。その後、CPUは代理サー
バプログラム108の実行を終了する(ステップ72
0)。
If the request received from the client program 100 is a termination request of the proxy server program 108 (step 716), the processing request is notified to the target server program 116 and termination processing is performed (step 716). 718). Thereafter, the CPU terminates the execution of the proxy server program 108 (step 72).
0).

【0074】さらに、受け取った要求が、自己が作成し
た呼出し可能機能集合106のうち、間接呼出し機能の
集合302あるいは独自提供機能の集合304に記述さ
れた呼出しアドレスへのアクセスである場合、当該呼出
しアドレスで特定される機能の提供処理を行う(ステッ
プ722)。なお、直接呼出し機能の集合300に記述
された呼出しアドレスへのアクセスの場合は、上述した
ように、代理の対象となるサーバプログラム116が直
接機能の提供処理を行うことになるので、代理サーバプ
ログラム108は、その処理に介在しない。
Further, if the received request is an access to the call address described in the set of indirect call functions 302 or the set of uniquely provided functions 304 in the callable function set 106 created by itself, The process of providing the function specified by the address is performed (step 722). In the case of access to the call address described in the set 300 of direct call functions, as described above, the server program 116 to be delegated performs the direct function providing process. 108 does not intervene in the processing.

【0075】なお、サーバプログラム116が他のコン
ピュータに搭載されている場合、代理サーバプログラム
108は、通信ネットワークを介して、当該他のコンピ
ュータのOSに対して、サーバプログラム116を起動
するよう指示を出す。その後、起動されたサーバプログ
ラム116との間で、通信ネットワークを介して上記の
やり取りを行う。
When the server program 116 is installed in another computer, the proxy server program 108 instructs the OS of the other computer to start the server program 116 via the communication network. put out. Thereafter, the above-described exchange is performed with the started server program 116 via the communication network.

【0076】次に、図8に示すステップ712で行われ
る呼出し可能機能集合106の作成について詳細に説明
する。図9は、代理サーバプログラム108が呼出し可
能機能集合106を作成する際の動作を説明するための
フロー図である。
Next, the creation of the callable function set 106 performed in step 712 shown in FIG. 8 will be described in detail. FIG. 9 is a flowchart for explaining the operation when the proxy server program 108 creates the callable function set 106.

【0077】まず、呼出し可能機能集合106の初期化
を行う(ステップ800)。次に、ステップ802〜ス
テップ812において、サーバプログラム116から通
知された呼出し可能機能集合114に記述された呼出し
可能機能記述子402の内容を調べ、その結果にしたが
って呼出し可能機能集合106を作成していく。ステッ
プ802にて、呼出し可能機能集合114に記述された
すべての呼出し可能機能記述子402について調査が終
了したか否かを判断する。終了していない場合はステッ
プ804に移行して、呼出し可能機能集合114から未
調査の呼出し可能機能記述子402を取得する。
First, the callable function set 106 is initialized (step 800). Next, in steps 802 to 812, the contents of the callable function descriptor 402 described in the callable function set 114 notified from the server program 116 are checked, and the callable function set 106 is created according to the result. Go. In step 802, it is determined whether or not the investigation has been completed for all the callable function descriptors 402 described in the callable function set 114. If the processing has not been completed, the process proceeds to step 804 to acquire an unchecked callable function descriptor 402 from the callable function set 114.

【0078】ステップ806では、ステップ804で取
り出した呼出し可能機能記述子402が、代理サーバプ
ログラム108にとって直接呼出し対象機能に相当する
ものであるか否かを判断する。たとえば、呼出し可能機
能記述子402で特定される機能がサーバプログラム1
16に実行させるべき機能であって、サーバプログラム
116が当該機能を処理するに際して、代理サーバプロ
グラム108において当該機能に関連する処理を何ら行
う必要がない場合は、直接呼出し対象機能に相当するも
のと判断する。この場合は、ステップ804で取り出し
た呼出し可能機能記述子402を、そのまま呼出し可能
機能集合106に追加して(ステップ808)、ステッ
プ802に戻る。
In step 806, it is determined whether or not the callable function descriptor 402 extracted in step 804 corresponds to the function to be directly called for the proxy server program 108. For example, the function specified by the callable function descriptor 402 is the server program 1
If the server program 116 does not need to perform any processing related to the function when the server program 116 processes the function, the function corresponds to the function to be directly called. to decide. In this case, the callable function descriptor 402 extracted in step 804 is added to the callable function set 106 as it is (step 808), and the process returns to step 802.

【0079】ステップ810では、ステップ804で取
り出した呼出し可能機能記述子402が、代理サーバプ
ログラム108にとって間接呼出し対象機能に相当する
ものであるか否かを判断する。たとえば、呼出し可能機
能記述子402で特定される機能がサーバプログラム1
16に実行させるべき機能であって、サーバプログラム
116が当該機能を処理するに際して、代理サーバプロ
グラム108にて当該機能に関連する何らかの処理を行
う必要がある場合は、間接呼出し対象機能に相当するも
のと判断する。この場合は、ステップ804で取り出し
た呼出し可能機能記述子402に対応付けられた呼出し
可能機能記述子402、すなわちステップ804で取り
出した呼出し可能機能記述子402へのアクセス処理を
行う機能の呼出しアドレスを含む呼出し可能機能記述子
402を作成し、これを呼出し可能機能集合106に追
加して(ステップ812)、ステップ802に戻る。
At step 810, it is determined whether or not the callable function descriptor 402 extracted at step 804 corresponds to the function to be indirectly called for the proxy server program 108. For example, the function specified by the callable function descriptor 402 is the server program 1
A function to be executed by the server program 116. If the proxy server program 108 needs to perform some processing related to the function when the server program 116 processes the function, the function corresponds to an indirect call target function. Judge. In this case, the callable function descriptor 402 associated with the callable function descriptor 402 retrieved in step 804, that is, the call address of the function for performing access processing to the callable function descriptor 402 retrieved in step 804 is set. A callable function descriptor 402 including the callable function descriptor 402 is created and added to the callable function set 106 (step 812), and the process returns to step 802.

【0080】なお、ステップ806およびステップ81
0において、直接呼出し対象機能および間接呼出し対象
機能のいずれにも相当するものでないと判断された呼出
可能機能記述子402は、サーバプログラム116が提
供可能な機能であるにもかかわらずサーバプログラム1
16からの提供を受けないようにした機能についての記
述子である。本実施形態では、これらサーバプログラム
116からの提供が不要な機能は、呼び出し可能機能集
合106へは追加しない。この結果、サーバプログラム
116による機能の提供を縮小することもできる。
Steps 806 and 81
0, the callable function descriptor 402 determined not to correspond to any of the direct call target function and the indirect call target function is the server program 1 even though the server program 116 can provide the function.
This is a descriptor for a function that has not been provided from H.16. In the present embodiment, these functions that do not need to be provided from the server program 116 are not added to the callable function set 106. As a result, the provision of functions by the server program 116 can be reduced.

【0081】代理サーバプログラム108は、サーバプ
ログラム116から通知された呼出し可能機能集合11
4に記述されたすべての呼出し可能機能記述子402に
ついて調査が終了すると、ステップ814〜ステップ8
18において、クライアントプログラム100から通知
された機能に関して自己が独自に提供可能な機能を調
べ、その結果にしたがって呼出し可能機能集合106を
作成していく。
The proxy server program 108 is configured to execute the callable function set 11 notified from the server program 116.
When the investigation is completed for all the callable function descriptors 402 described in Step 4, Steps 814 to 8
At 18, the function that can be provided by itself is checked with respect to the function notified from the client program 100, and a callable function set 106 is created according to the result.

【0082】ステップ814にて、代理サーバプログラ
ム108が独自に提供可能なすべての機能について調査
が終了したか否かを判断する。終了していない場合はス
テップ816に移行し、代理サーバプログラム108が
独自に提供可能な機能について、当該機能がクライアン
トプログラム100から通知された機能に関連するもの
であるか否かを調べる。関連するものである場合は、そ
れが代理サーバプログラム108が有するモジュール、
あるいはサーバプログラム116から通知された呼出し
可能機能集合114を利用して構成することができるも
のであるか否かを調べる(ステップ816)。構成する
ことができるものである場合は、ステップ818に移行
して、その機能を実際に構成し、その機能の呼出し可能
記述子402を呼出し可能機能集合106に追加する。
At step 814, it is determined whether or not the investigation has been completed for all the functions that can be provided independently by proxy server program 108. If the processing has not been completed, the process proceeds to step 816 to check whether or not the function that can be independently provided by the proxy server program 108 is related to the function notified from the client program 100. If it is relevant, the module that the proxy server program 108 has;
Alternatively, it is checked whether or not it can be configured using the callable function set 114 notified from the server program 116 (step 816). If so, processing transfers to step 818 to actually configure the function and add the callable descriptor 402 for the function to the callable function set 106.

【0083】代理サーバプログラム108は、自己が独
自に提供可能なすべての機能について調査が終了する
と、呼出し可能機能記述子106にテーブル終端インジ
ケータ404を付加する(ステップ820)。
When the surveillance server program 108 has finished investigating all functions that can be provided independently, it adds the table end indicator 404 to the callable function descriptor 106 (step 820).

【0084】以上で、代理サーバープログラム108が
クライアントプログラム100に通知する呼出し可能機
能集合106の作成が完了する。上述のように、呼び出
し可能機能集合106の作成が完了すると、例えば、ク
ライアントプログラム100がアクセスできる記憶装置
204の中に該呼び出し可能機能集合106をコピーし
た上で、該コピーのアドレスをクライアントプログラム
100に返す。上述したように、クライアントプログラ
ム100は、代理サーバプログラム108から通知され
た呼出し可能機能集合106に記述された呼出し可能機
能記述子402の中から、必要な機能の記述子の呼出し
アドレスにアクセスして、機能の提供を要求する。この
ようにすることで、既存のクライアントプログラム10
0およびサーバプログラム116に修正を加えることな
く、クライアントプログラム100に提供する機能を拡
張したり、縮小したりすることが可能となる。
Thus, the creation of the callable function set 106 to be notified by the proxy server program 108 to the client program 100 is completed. As described above, when the creation of the callable function set 106 is completed, for example, the callable function set 106 is copied into the storage device 204 accessible by the client program 100, and the address of the copy is set to the client program 100. To return. As described above, the client program 100 accesses the call address of the descriptor of the necessary function from the callable function descriptors 402 described in the callable function set 106 notified from the proxy server program 108, and , Requesting the provision of functions. By doing so, the existing client program 10
The functions provided to the client program 100 can be extended or reduced without making any modifications to the server program 116 and the server program 116.

【0085】本発明を適用すれば、新しいハードウェア
で古いソフトウェアを動作させることや、新しいハード
ウェアに対応したソフトウェアを古いハードウェアで動
作させることができる。すなわち、古いインタフェース
を含んだ複雑な製品を作る必要がなくなる。また、ソフ
トウェアの動作検証を行うための機能を代理サーバプロ
グラムで提供すれば、デバッグツールを構成することも
可能になる。なお、本発明は、計算機上で動作するソフ
トウェアとして実現されるものであり、可搬可能な記憶
媒体を用いた配付または、これら計算機に接続されたサ
ーバからネットワーク経由での配付が可能である。
By applying the present invention, old software can be operated by new hardware, and software corresponding to new hardware can be operated by old hardware. That is, there is no need to create a complicated product including an old interface. If a function for verifying the operation of software is provided by a proxy server program, a debugging tool can be configured. The present invention is realized as software running on a computer, and can be distributed using a portable storage medium or distributed from a server connected to the computer via a network.

【0086】[0086]

【発明の効果】以上説明したように、本発明によれば、
既存のクライアントプログラムおよびサーバプログラム
に修正を加えることなく、クライアントプログラム10
0に提供する機能を拡張したり、縮小したりすることが
できる。
As described above, according to the present invention,
Without modifying the existing client and server programs, the client program 10
The functions provided to the user can be extended or reduced.

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

【図1】本発明の一実施形態が適用されたクライアント
・サーバ・システムを構成する各プログラムの位置関係
を示す図である。
FIG. 1 is a diagram showing a positional relationship among programs constituting a client-server system to which an embodiment of the present invention is applied.

【図2】クライアントプログラム100、代理サーバプ
ログラム108およびサーバプログラム116を、1つ
のコンピュータで処理する場合のハードウエア構成を示
す図である。
FIG. 2 is a diagram illustrating a hardware configuration when a client computer 100, a proxy server program 108, and a server program 116 are processed by one computer.

【図3】クライアントプログラム100、代理サーバプ
ログラム108およびサーバプログラム116を、複数
のコンピュータで分散して処理する場合のハードウエア
構成を示す図である。
FIG. 3 is a diagram showing a hardware configuration when a client program 100, a proxy server program 108, and a server program 116 are distributed and processed by a plurality of computers.

【図4】代理サーバープログラム108で作成される呼
出し可能機能集合106と、サーバプログラム116で
作成される呼出し可能機能集合114との関係を説明す
るための図である。
FIG. 4 is a diagram for explaining a relationship between a callable function set created by a proxy server program and a callable function set created by a server program.

【図5】呼出し可能機能集合106および114の構成
を説明するための図である。
FIG. 5 is a diagram for explaining a configuration of callable function sets 106 and 114.

【図6】クライアントプログラム100の動作を説明す
るためのフロー図である。
FIG. 6 is a flowchart for explaining the operation of the client program 100.

【図7】サーバプログラム116の動作を説明するため
のフロー図である。
FIG. 7 is a flowchart for explaining the operation of the server program 116;

【図8】代理サーバープログラム108の動作を説明す
るためのフロー図である。
FIG. 8 is a flowchart for explaining the operation of the proxy server program 108.

【図9】代理サーバプログラム108が呼出し可能機能
集合106を作成する際の動作を説明するためのフロー
図である。
FIG. 9 is a flowchart for explaining an operation when the proxy server program 108 creates the callable function set 106.

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

100…クライアントプログラム、 106…呼出し可能機能集合、 108…代理サーバープログラム、 114…呼出し可能機能集合、 116…サーバープログラム、 200…CPU、 202…2次記憶装置、 203…通信ネットワーク、 204…記憶装置、 206…通信制御装置、 208…バス、 300…直接呼出し機能の集合、 302…間接呼出し機能の集合、 304…独自提供機能の集合、 321…サーバプログラム呼出しインターフェース、 322、324…独自提供機能実現モジュール、 326…直接呼出し対象機能の集合、 328…間接呼出し対称機能の集合、 330…直接/間接呼出し対象外機能の集合、 402…呼出し可能機能記述子、 404…テーブル終端インジケータ、 406…呼出し可能機能識別子、 408…呼出し可能機能呼出しアドレス。 Reference Signs List 100 client program, 106 callable function set, 108 proxy server program, 114 callable function set, 116 server program, 200 CPU, 202 secondary storage device, 203 communication network, 204 storage device , 206: communication control device, 208: bus, 300: set of direct calling functions, 302: set of indirect calling functions, 304: set of uniquely provided functions, 321: server program calling interface, 322, 324: implementation of originally provided functions Module, 326: set of functions to be directly called, 328: set of symmetric functions, 330: set of functions not to be directly / indirectly called, 402: callable function descriptor, 404: table end indicator, 406: callable Function identifier, 4 08: Callable function call address.

Claims (10)

【特許請求の範囲】[Claims] 【請求項1】クライアントと、前記クライアントからの
要求にしたがい、所定の機能にアクセスするためのアド
レス情報を前記クライアントに通知するともとに、前記
クライアントがアクセスしたアドレスに対応する機能を
前記クライアントに提供するサーバと、からなるクライ
アント・サーバ・システムにおいて、 前記サーバの代わりに、前記クライアントに前記アドレ
ス情報を通知する代理サーバであって、 前記クライアントからの要求にしたがい、前記サーバが
前記クライアントに提供可能な機能にアクセスするため
のアドレス情報を、前記サーバから入手する第一の手段
と、 入手したアドレス情報を参照して前記クライアントに利
用を許可する機能にアクセスするためのアドレス情報を
作成する第二の手段と、 作成したアドレス情報を前記クライアントに通知する第
三の手段と、 を備えていることを特徴とする代理サーバ。
A client and, according to a request from the client, address information for accessing a predetermined function, is notified to the client, and a function corresponding to the address accessed by the client is transmitted to the client. A client server system comprising: a providing server; a proxy server that notifies the client of the address information instead of the server; and the server provides the client to the client according to a request from the client. First means for obtaining address information for accessing a possible function from the server, and generating address information for accessing a function permitted to use by the client by referring to the obtained address information. Second means and the created address information And a third means for notifying the client of a report.
【請求項2】請求項1記載の代理サーバであって、 前記第一の手段は、前記サーバから入手した、当該サー
バが前記クライアントに提供可能な機能にアクセスする
ためのアドレス情報に記述された少なくとも1つのアド
レスを含めて、前記クライアントに利用を許可する機能
にアクセスするためのアドレス情報を作成するものであ
ることを特徴とする代理サーバ。
2. The proxy server according to claim 1, wherein the first means is described in address information obtained from the server for accessing a function that the server can provide to the client. A proxy server for creating address information for accessing a function that permits use of the client, including at least one address.
【請求項3】請求項1記載の代理サーバであって、 前記第一の手段は、前記サーバから入手した、当該サー
バが前記クライアントに提供可能な機能にアクセスする
ためのアドレス情報に記述された、少なくとも1つのア
ドレスにアクセスするためのアドレスを含めて、前記ク
ライアントに利用を許可する機能にアクセスするための
アドレス情報を作成するものであることを特徴とする代
理サーバ。
3. The proxy server according to claim 1, wherein said first means is described in address information obtained from said server for accessing a function that said server can provide to said client. A server for creating address information for accessing a function that permits use of the client, including an address for accessing at least one address.
【請求項4】請求項1記載の代理サーバであって、 前記第一の手段は、当該代理サーバが前記クライアント
に対して独自に提供可能な機能にアクセスするためのア
ドレスを含めて、前記クライアントに利用を許可する機
能にアクセスするためのアドレス情報を作成するもので
あることを特徴とする代理サーバ。
4. The proxy server according to claim 1, wherein said first means includes an address for accessing a function that said proxy server can independently provide to said client. A proxy server for creating address information for accessing a function that permits use of the proxy server.
【請求項5】請求項1記載の代理サーバであって、 前記第一の手段は、前記サーバから入手した、当該サー
バが前記クライアントに提供可能な機能にアクセスする
ためのアドレス情報に記述された少なくとも1つのアド
レス、あるいは当該アドレスにアクセスするためのアド
レスを含めないで、前記クライアントに利用を許可する
機能にアクセスするためのアドレス情報を作成するもの
であることを特徴とする代理サーバ。
5. The proxy server according to claim 1, wherein the first means is described in address information obtained from the server for accessing a function that the server can provide to the client. A proxy server for creating address information for accessing a function that permits use of the client without including at least one address or an address for accessing the address.
【請求項6】クライアントプログラムと、前記クライア
ントプログラムからの要求にしたがい、所定の機能にア
クセスするためのアドレス情報を前記クライアントプロ
グラムに通知するともとに、前記クライアントプログラ
ムがアクセスしたアドレスに対応する機能を前記クライ
アントプログラムに提供するサーバプログラムと、から
なるクライアント・サーバ・システムにおいて、 前記サーバプログラムの代わりに、前記クライアントプ
ログラムに前記アドレス情報を通知する代理サーバプロ
グラムが記録された記録媒体であって、 当該代理サーバプログラムは、情報処理装置に、 前記クライアントプログラムからの要求にしたがい、前
記サーバプログラムが前記クライアントプログラムに提
供可能な機能にアクセスするためのアドレス情報を、前
記サーバプログラムから入手するステップと、 入手したアドレス情報を参照して前記クライアントプロ
グラムに利用を許可する機能にアクセスするためのアド
レス情報を作成するステップと、 作成したアドレス情報を前記クライアントプログラムに
通知するステップと、を実行させるものであることを特
徴とする代理サーバプログラムが記録された記録媒体。
6. A function corresponding to an address accessed by the client program, based on notifying the client program of address information for accessing a predetermined function according to a request from the client program. And a server program that provides the client program with a client program, wherein instead of the server program, a recording medium in which a proxy server program for notifying the client program of the address information is recorded, The proxy server program provides the information processing device with an address for accessing a function that the server program can provide to the client program according to a request from the client program. Obtaining address information from the server program; creating address information for accessing a function that permits use of the client program by referring to the obtained address information; and transmitting the created address information to the client program. A recording medium in which a proxy server program is recorded.
【請求項7】請求項6記載の代理サーバプログラムが記
録された記録媒体であって、 前記クライアントプログラムに利用を許可する機能にア
クセスするためのアドレス情報は、前記サーバプログラ
ムから入手した、当該サーバプログラムが前記クライア
ントプログラムに提供可能な機能にアクセスするための
アドレス情報に記述された、少なくとも1つのアドレス
を含むものであることを特徴とする代理サーバプログラ
ムが記録された記録媒体。
7. A recording medium on which the proxy server program according to claim 6 is recorded, wherein the address information for accessing a function permitting use of the client program is obtained from the server program. A recording medium on which a proxy server program is recorded, the program including at least one address described in address information for the program to access a function that can be provided to the client program.
【請求項8】請求項6記載の代理サーバプログラムが記
録された記録媒体であって、 前記クライアントプログラムに利用を許可する機能にア
クセスするためのアドレス情報は、前記サーバプログラ
ムから入手した、当該サーバプログラムが前記クライア
ントプログラムに提供可能な機能にアクセスするための
アドレス情報に記述された、少なくとも1つのアドレス
にアクセスするためのアドレスを含むものであることを
特徴とする代理サーバプログラムが記録された記録媒
体。
8. A recording medium on which the proxy server program according to claim 6 is recorded, wherein the address information for accessing a function that permits use of the client program is obtained from the server program. A recording medium on which a proxy server program is recorded, the program including an address for accessing at least one address described in address information for accessing a function that can be provided to the client program.
【請求項9】請求項6記載の代理サーバプログラムが記
録された記録媒体であって、 前記クライアントプログラムに利用を許可する機能にア
クセスするためのアドレス情報は、当該代理サーバプロ
グラムが前記クライアントプログラムに対して独自に提
供可能な機能にアクセスするためのアドレスを含むもの
であることを特徴とする代理サーバプログラムが記録さ
れた記録媒体。
9. A recording medium on which the proxy server program according to claim 6 is recorded, wherein the address information for accessing a function that permits use of the client program is stored in the proxy server program. A recording medium on which a proxy server program is recorded, including an address for accessing a function that can be provided independently.
【請求項10】請求項6記載の代理サーバプログラムが
記録された記録媒体であって、 前記クライアントプログラムに利用を許可する機能にア
クセスするためのアドレス情報は、前記サーバプログラ
ムから入手した、当該サーバプログラムが前記クライア
ントプログラムに提供可能な機能にアクセスするための
アドレス情報に記述された少なくとも1つのアドレス、
あるいは当該アドレスにアクセスするためのアドレスを
含まないものであることを特徴とする代理サーバプログ
ラムが記録された記録媒体。
10. A recording medium on which the proxy server program according to claim 6 is recorded, wherein the address information for accessing a function permitting use of the client program is obtained from the server program. At least one address described in address information for a program to access a function that can be provided to the client program;
Alternatively, a recording medium on which a proxy server program is recorded, wherein the recording medium does not include an address for accessing the address.
JP10267681A 1997-09-22 1998-09-22 Agent server and storage medium wth agent server program recorded Pending JPH11242604A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10267681A JPH11242604A (en) 1997-09-22 1998-09-22 Agent server and storage medium wth agent server program recorded

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP9-256800 1997-09-22
JP25680097 1997-09-22
JP10267681A JPH11242604A (en) 1997-09-22 1998-09-22 Agent server and storage medium wth agent server program recorded

Publications (1)

Publication Number Publication Date
JPH11242604A true JPH11242604A (en) 1999-09-07

Family

ID=26542901

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10267681A Pending JPH11242604A (en) 1997-09-22 1998-09-22 Agent server and storage medium wth agent server program recorded

Country Status (1)

Country Link
JP (1) JPH11242604A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007074240A (en) * 2005-09-06 2007-03-22 Toshiba Corp Apparatus and method for outputting content list
JP2011509446A (en) * 2007-12-13 2011-03-24 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド Driver architecture, software and method for computing devices having multiple graphics subsystems and low power consumption modes

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007074240A (en) * 2005-09-06 2007-03-22 Toshiba Corp Apparatus and method for outputting content list
JP2011509446A (en) * 2007-12-13 2011-03-24 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド Driver architecture, software and method for computing devices having multiple graphics subsystems and low power consumption modes

Similar Documents

Publication Publication Date Title
US10051032B2 (en) Method, server and system for converging desktop application and web application
JP3853592B2 (en) Distributed web application server
US6810364B2 (en) Automated testing of computer system components
US6324578B1 (en) Methods, systems and computer program products for management of configurable application programs on a network
US6237005B1 (en) Web server mechanism for processing multiple transactions in an interpreted language execution environment
US6463446B1 (en) Method and apparatus for transporting behavior in an event-based distributed system
TWI344090B (en) Management of a scalable computer system
US5546539A (en) Method and system for updating files of a plurality of storage devices through propogation of files over a nework
US7062516B2 (en) Methods, systems, and articles of manufacture for implementing a runtime logging service storage infrastructure
US20080104661A1 (en) Managing Policy Settings for Remote Clients
US6304894B1 (en) Proxy server and recording medium storing a proxy server program
WO2003091889A1 (en) Collaboration server, collaboration system, session management method thereof, and program
JP2009521746A (en) Program execution service window
US8280197B1 (en) Managed background loading of image resources in resource-constrained devices
US11843674B2 (en) Virtual workspace experience visualization and optimization
JP4233635B2 (en) Apparatus and method for providing persistence to an application interface
JP2002505553A (en) Diversity token based control
EP3629160A1 (en) Method and device for managing vnf instantiation
WO2022034378A1 (en) Container orchestration system (cos) services discovery across multiple cos clusters based on cos cluster domain name system
JPH11242604A (en) Agent server and storage medium wth agent server program recorded
JPH11312154A (en) Cooperative work aiding system and recording medium thereof
CN115994014A (en) Container engine, method for realizing container engine, electronic device, and storage medium
JP3884239B2 (en) Server computer
JP2004220318A (en) Information processor and program to be used for same
JPH11282884A (en) Network cad system

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050830

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051026

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20051213