[go: up one dir, main page]

JP2001147812A - Class generation method, object generation method, interface object generation method, and object execution system - Google Patents

Class generation method, object generation method, interface object generation method, and object execution system

Info

Publication number
JP2001147812A
JP2001147812A JP33169799A JP33169799A JP2001147812A JP 2001147812 A JP2001147812 A JP 2001147812A JP 33169799 A JP33169799 A JP 33169799A JP 33169799 A JP33169799 A JP 33169799A JP 2001147812 A JP2001147812 A JP 2001147812A
Authority
JP
Japan
Prior art keywords
class
identifier
interface
remote
host
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
JP33169799A
Other languages
Japanese (ja)
Inventor
Yutaka Umibe
裕 海邊
Haruhiko Toyama
春彦 外山
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP33169799A priority Critical patent/JP2001147812A/en
Publication of JP2001147812A publication Critical patent/JP2001147812A/en
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】 実行時にオブジェクトをクライアントホスト
からサーバホストに転送し遠隔実行することを可能とす
るオブジェクト実行システムを提供すること。 【解決手段】 ユーザプログラムから指定されたオブジ
ェクト61をクライアントホスト1からサーバホストに
転送し(11,12,31)、サーバホスト3上に転送
されたオブジェクト71に対応する遠隔オブジェクト7
1を生成し(32)、クライアントホスト1上にそのオ
ブジェクト71とサーバホスト3から通知された遠隔オ
ブジェクト識別子を基に遠隔オブジェクトの遠隔呼び出
しを行うインタフェースオブジェクトのクラスを生成し
(14)、この生成されたクラスからインタフェースオ
ブジェクト62を生成し、生成されたインタフェースオ
ブジェクトを示すオブジェクト識別子をユーザプログラ
ムに返す。
(57) [Summary] To provide an object execution system capable of transferring an object from a client host to a server host at the time of execution and executing the object remotely. SOLUTION: An object 61 specified by a user program is transferred from a client host 1 to a server host (11, 12, 31), and a remote object 7 corresponding to the object 71 transferred on the server host 3 is transmitted.
1 is generated (32), and a class of an interface object for remotely calling the remote object is generated on the client host 1 based on the object 71 and the remote object identifier notified from the server host 3 (14). An interface object 62 is generated from the generated class, and an object identifier indicating the generated interface object is returned to the user program.

Description

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

【0001】[0001]

【発明の属する技術分野】新たなクラスを生成するため
のクラス生成方法、新たなクラスのオブジェクトを生成
するためのオブジェクト生成方法、オブジェクトの遠隔
実行のためのインタフェースオブジェクトを生成するイ
ンタフェースオブジェクト生成方法及びオブジェクトを
遠隔実行するオブジェクト実行システムに関する。
The present invention relates to a method for generating a class for generating a new class, a method for generating an object for generating an object of a new class, a method for generating an interface object for remotely executing an object, and a method for generating an interface object. The present invention relates to an object execution system for remotely executing an object.

【0002】[0002]

【従来の技術】従来、オブジェクト指向プログラミング
言語環境における遠隔ホスト上の資源あるいはプログラ
ムを利用する方法として、遠隔手続き呼び出しに基づい
た分散オブジェクト技術があった。この技術は、プログ
ラムから直接の操作が可能なスタブオブジェクトと、別
のホスト上で走行する遠隔オブジェクトと、スタブ内に
用意された遠隔オブジェクトを操作するための手段とか
ら構成される。なお、スタブオブジェクトが走行する計
算機をクライアントホスト、また、遠隔オブジェクトが
走行する計算機をサーバホストと呼ぶことにする。ま
た、遠隔オブジェクトはサーバオブジェクトと呼ばれる
こともある。
2. Description of the Related Art Conventionally, there has been a distributed object technology based on a remote procedure call as a method of using a resource or a program on a remote host in an object-oriented programming language environment. This technology includes a stub object that can be directly operated from a program, a remote object running on another host, and a means for operating a remote object prepared in the stub. The computer on which the stub object runs is called a client host, and the computer on which the remote object runs is called a server host. Also, remote objects are sometimes called server objects.

【0003】この従来の分散オブジェクト技術は、静的
なオブジェクト間の関係に基づいていた。このため、サ
ーバホスト側の遠隔オブジェクトは、静的に作成する必
要があった。すなわち、サーバホスト上の遠隔オブジェ
クトとその遠隔オブジェクトに対応したクライアントホ
スト上のスタブオブジェクトとは、それらのインタフェ
ースならびに振る舞いが設計時に静的に決められ、プロ
グラミング言語により表現され、さらに必要な場合には
実行形式にコンパイルされた後に、サーバホストとクラ
イアントホスト上で実行されていた。なお、ここで言う
インタフェースとは、オブジェクトが外部に対して公開
しているメソッドの識別子やメソッドが受け取る引数の
数を組とした情報である。さらに、クラスを型として扱
うオブジェクト指向プログラミング言語の場合には、引
数や返り値となるオブジェクトのクラスもインタフェー
スを構成する要素となる。また、このインタフェースと
はオブジェクトの外部界面とも呼ばれるものである。
[0003] This conventional distributed object technology is based on relationships between static objects. For this reason, the remote object on the server host side had to be created statically. That is, the remote object on the server host and the stub object on the client host corresponding to the remote object have their interfaces and behavior determined statically at design time, expressed in a programming language, and if necessary, After being compiled into an executable, it ran on server and client hosts. It should be noted that the interface referred to here is information in which an identifier of a method that the object discloses to the outside and a number of arguments received by the method are set. Furthermore, in the case of an object-oriented programming language in which a class is treated as a type, the class of an object that is an argument or a return value is also an element that constitutes an interface. This interface is also called an external interface of the object.

【0004】したがって、上記のような従来の分散オブ
ジェクト技術では、実行時に選択した任意のオブジェク
トをクライアントホストからサーバホストに転送して利
用することが困難であった。
Therefore, in the conventional distributed object technology as described above, it is difficult to transfer an arbitrary object selected at the time of execution from a client host to a server host and use it.

【0005】また、そのような利用方法を実現するに
は、例えば、あらかじめクライアントホスト上に存在す
る全てのオブジェクトに対して遠隔オブジェクトとイン
タフェースオブジェクトを生成しておくような方法も考
えられる。しかしながら、この方法では、プログラムの
全ての要素を二重に定義しサーバホストとクライアント
ホスト上で実行することとなり、プログラムの規模が大
きくなった場合には、現実的には実現が困難である(そ
れらプログラムを実行させることは非常に困難であ
る)。
In order to realize such a use method, for example, a method of generating a remote object and an interface object for all objects existing on the client host in advance may be considered. However, in this method, all elements of the program are defined twice and executed on the server host and the client host, and it is practically difficult to realize when the scale of the program becomes large ( It is very difficult to run those programs).

【0006】[0006]

【発明が解決しようとする課題】上述したように、従来
の分散オブジェクト技術では、実行時に任意のオブジェ
クトを選択しクライアントホストからサーバホストに転
送して利用することが困難であった。
As described above, in the conventional distributed object technology, it is difficult to select an arbitrary object at the time of execution and transfer the object from the client host to the server host for use.

【0007】本発明は、上記事情を考慮してなされたも
ので、実行時に新たなクラスを生成するためのクラス生
成方法及び実行時に新たなクラスのオブジェクトを生成
するためのオブジェクト生成方法を提供することを目的
とする。
The present invention has been made in view of the above circumstances, and provides a class generation method for generating a new class at execution and an object generation method for generating an object of a new class at execution. The purpose is to:

【0008】また、本発明は、実行時にクライアントホ
スト上のプログラムから選択された任意のオブジェクト
をサーバホストに転送しサーバホスト上の転送されたオ
ブジェクトをクライアントホスト上のプログラムから操
作可能とするためのインタフェースオブジェクト生成方
法及びオブジェクト実行システムを提供することを目的
とする。
Further, the present invention transfers an arbitrary object selected from a program on a client host to a server host at the time of execution so that the transferred object on the server host can be operated from the program on the client host. It is an object to provide an interface object generation method and an object execution system.

【0009】[0009]

【課題を解決するための手段】本発明(請求項1)は、
オブジェクト指向プログラミング言語により記述された
プログラムの実行時に新たなクラスを生成するためのク
ラス生成方法であって、指定されたオブジェクト識別子
により示されるオブジェクトから、該オブジェクトの持
つクラス識別子、および該オブジェクトの持つメソッド
の識別子と該メソッドの引数の型を含むインタフェース
との組からなるインタフェース情報を取得し、新たにク
ラスを生成し、生成されたこのクラスに対して、前記オ
ブジェクトから取得された前記インタフェース情報に基
づいて前記オブジェクトの持つインタフェースを複製し
たメソッドを宣言するとともに、必要に応じてデータを
宣言することによって、新たなクラスを生成することを
特徴とする。
Means for Solving the Problems The present invention (claim 1) provides:
A class generation method for generating a new class when a program described in an object-oriented programming language is executed, comprising: a class identifier of an object indicated by a specified object identifier; Obtain interface information consisting of a pair of an interface including a method identifier and an argument type of the method, generate a new class, and, for the generated class, add the interface information obtained from the object to the interface. The method is characterized in that a new class is generated by declaring a method that duplicates the interface of the object based on the above, and declaring data as needed.

【0010】本発明によれば、実行時に新たな振る舞い
を持つクラスを既存のオブジェクトから生成することが
できる。
According to the present invention, a class having a new behavior at the time of execution can be generated from an existing object.

【0011】また、本発明は、オブジェクト指向プログ
ラミング言語により記述されたプログラムの実行時に新
たなクラスを生成するためのクラス生成方法であって、
指定されたオブジェクト識別子により示されるオブジェ
クトから、該オブジェクトの持つクラス識別子、および
該オブジェクトの持つメソッドの識別子と該メソッドの
引数の型を含むインタフェースとの組からなるインタフ
ェース情報を取得し、取得された前記クラス識別子の示
すクラスの派生クラスを生成し、生成されたこの派生ク
ラスに対して、前記オブジェクトから取得された前記イ
ンタフェース情報に基づいて前記オブジェクトの持つイ
ンタフェースを複製したメソッドを宣言するとともに、
必要に応じてデータを宣言することによって、新たなク
ラスを生成することを特徴とする。
[0011] The present invention also relates to a class generating method for generating a new class when executing a program described in an object-oriented programming language,
From the object indicated by the specified object identifier, the interface information including a class identifier of the object and a set of an interface including a method identifier of the object and an argument type of the method is acquired. Generate a derived class of the class indicated by the class identifier, and for the generated derived class, declare a method that duplicates the interface of the object based on the interface information obtained from the object,
A new class is generated by declaring data as needed.

【0012】本発明によれば、実行時に新たな振る舞い
を持つクラスを既存のオブジェクトから生成することが
できる。
According to the present invention, a class having a new behavior at the time of execution can be generated from an existing object.

【0013】本発明(請求項2)に係るオブジェクト生
成方法は、本発明に係るクラス生成方法により生成され
た新たなクラスから新たなオブジェクトを生成すること
を特徴とする。
The object generating method according to the present invention (claim 2) is characterized in that a new object is generated from a new class generated by the class generating method according to the present invention.

【0014】本発明によれば、実行時に新たな振る舞い
を持つクラスのオブジェクトを既存のオブジェクトから
生成することができる。
According to the present invention, an object of a class having a new behavior at the time of execution can be generated from an existing object.

【0015】本発明(請求項3)は、オブジェクト指向
プログラミング言語により記述されたプログラムの実行
時に、クライアントホスト上のユーザプログラムから指
定されたオブジェクト識別子により示されるオブジェク
トをクライアントホストからサーバホストに転送して遠
隔実行するために、該オブジェクトの遠隔メソッド呼び
出しを行うためのインタフェースオブジェクトをクライ
アントホスト上に生成するインタフェースオブジェクト
生成方法であって、前記指定されたオブジェクト識別子
により示されるオブジェクトから、該オブジェクトの持
つクラス識別子、および該オブジェクトの持つメソッド
の識別子と該メソッドの引数の型を含むインタフェース
との組からなるインタフェース情報を取得するととも
に、前記オブジェクトの前記サーバホストへの転送によ
り該サーバホスト上に生成される遠隔オブジェクトを示
す遠隔オブジェクト識別子を該サーバホストから取得
し、取得された前記クラス識別子の示すクラスの派生ク
ラスを生成し、生成されたこの派生クラスに対して、前
記オブジェクトから取得された前記インタフェース情報
に基づいて、前記オブジェクトの持つメソッド識別子と
同一のメソッド識別子と、前記オブジェクトの持つイン
タフェースと同一のインタフェースと、前記遠隔オブジ
ェクト識別子の持つ同一メソッド識別子に対するメソッ
ド呼び出しを行なうメソッド処理とを持つメソッドを宣
言するとともに、前記遠隔オブジェクト識別子をデータ
として宣言することによって、インタフェースオブジェ
クトのクラスを生成し、生成された前記インタフェース
オブジェクトのクラスから、前記インタフェースオブジ
ェクトを生成することを特徴とする。
According to the present invention (claim 3), when a program described in an object-oriented programming language is executed, an object indicated by an object identifier designated by a user program on the client host is transferred from the client host to the server host. An interface object generation method for generating an interface object for invoking a remote method of the object on a client host in order to remotely execute the object, comprising: Acquiring interface information including a class identifier and a set of an interface including an identifier of a method of the object and an argument type of the method; Obtaining a remote object identifier indicating a remote object generated on the server host by the transfer to the server host from the server host, generating a derived class of the class indicated by the obtained class identifier, For this derived class, based on the interface information acquired from the object, the same method identifier as the method identifier of the object, the same interface as the interface of the object, and the remote object identifier By declaring a method having a method process for performing a method call for the same method identifier and declaring the remote object identifier as data, a class of an interface object is generated, and the generated From the class of interface objects, and generates the interface object.

【0016】好ましくは、生成された前記インタフェー
スオブジェクトを示すオブジェクト識別子を、前記ユー
ザプログラムに返すようにしてもよい。
Preferably, an object identifier indicating the generated interface object may be returned to the user program.

【0017】好ましくは、前記オブジェクトを前記クラ
イアントホストから前記サーバホストに転送する際、前
記クライアントホスト側で前記オブジェクトを直列化
し、この直列化オブジェクトを前記クライアントホスト
から前記サーバホストに転送し、前記サーバホスト側で
この転送された直列化オブジェクトを復元するようにし
てもよい。
Preferably, when transferring the object from the client host to the server host, serializing the object on the client host side, transferring the serialized object from the client host to the server host, The transferred serialized object may be restored on the host side.

【0018】好ましくは、前記オブジェクトを前記クラ
イアントホストから前記サーバホストに転送する際、オ
ブジェクトのクラスをも転送するようにしてもよい。
Preferably, when transferring the object from the client host to the server host, the class of the object may also be transferred.

【0019】好ましくは、前記オブジェクトを前記クラ
イアントホストから前記サーバホストに転送する際に、
オブジェクトのクラスをも転送するか否かを、予め定め
られたクラス選択方法によって決定するようにしてもよ
い。
Preferably, when transferring the object from the client host to the server host,
Whether or not to transfer the object class may also be determined by a predetermined class selection method.

【0020】本発明(請求項8)は、オブジェクト指向
プログラミング言語により記述されたプログラムの実行
時に、クライアントホスト上のユーザプログラムから指
定されたオブジェクト識別子により示されるオブジェク
トをクライアントホストからサーバホストに転送して遠
隔実行するオブジェクト実行システムであって、ユーザ
プログラムから指定されたオブジェクト識別子により示
されるオブジェクトを前記クライアントホストから前記
サーバホストに転送する手段と、前記サーバホスト上
に、転送された前記オブジェクトに対応する遠隔オブジ
ェクトを生成する手段と、前記クライアントホスト上
に、前記オブジェクト識別子により示されるオブジェク
トおよび前記サーバホストから通知された前記遠隔オブ
ジェクトを示す遠隔オブジェクト識別子を基に、該遠隔
オブジェクトの遠隔呼び出しを行うインタフェースオブ
ジェクトのクラスを生成する手段と、生成された前記イ
ンタフェースオブジェクトのクラスからインタフェース
オブジェクトを生成する手段と、生成された前記インタ
フェースオブジェクトを示すオブジェクト識別子を、前
記ユーザプログラムに返す手段とを備えたことを特徴と
する。
According to the present invention (claim 8), when a program described in an object-oriented programming language is executed, an object indicated by an object identifier specified by a user program on the client host is transferred from the client host to the server host. Means for transferring an object indicated by an object identifier designated by a user program from the client host to the server host, the object execution system corresponding to the object transferred on the server host. Means for generating a remote object to execute, the remote host indicating on the client host the object indicated by the object identifier and the remote object notified from the server host. Means for generating a class of an interface object for remotely invoking the remote object based on the object identifier, means for generating an interface object from the generated class of the interface object, and an object indicating the generated interface object Means for returning an identifier to the user program.

【0021】好ましくは、前記インタフェースオブジェ
クトのクラスを生成する手段は、前記指定されたオブジ
ェクト識別子により示されるオブジェクトから、該オブ
ジェクトの持つクラス識別子、および該オブジェクトの
持つメソッドの識別子と該メソッドの引数の型を含むイ
ンタフェースとの組からなるインタフェース情報を取得
するとともに、前記オブジェクトの前記サーバホストへ
の転送により該サーバホスト上に生成される遠隔オブジ
ェクトを示す遠隔オブジェクト識別子を該サーバホスト
から取得する手段と、取得された前記クラス識別子の示
すクラスの派生クラスを生成する手段と、生成されたこ
の派生クラスに対して、前記オブジェクトから取得され
た前記インタフェース情報に基づいて、前記オブジェク
トの持つメソッド識別子と同一のメソッド識別子と、前
記オブジェクトの持つインタフェースと同一のインタフ
ェースと、前記遠隔オブジェクト識別子の持つ同一メソ
ッド識別子に対するメソッド呼び出しを行なうメソッド
処理とを持つメソッドを宣言するとともに、前記遠隔オ
ブジェクト識別子をデータとして宣言することによっ
て、インタフェースオブジェクトのクラスを生成する手
段とを含むようにしてもよい。
Preferably, the means for generating a class of the interface object includes, from an object indicated by the specified object identifier, a class identifier of the object, a method identifier of the object, and an argument of the method. Means for obtaining interface information consisting of a set with an interface including a type, and obtaining from the server host a remote object identifier indicating a remote object generated on the server host by transferring the object to the server host; Means for generating a derived class of the class indicated by the obtained class identifier, and a method of the object with respect to the generated derived class based on the interface information obtained from the object. A method having the same method identifier as the identifier, the same interface as that of the object, and a method process for performing a method call for the same method identifier of the remote object identifier is declared. Means for generating a class of the interface object by declaring it as data.

【0022】本発明(請求項10)は、オブジェクト指
向プログラミング言語により記述されたアプリケーショ
ンプログラムの実行時に新たなクラスを生成するための
クラス生成プログラムであって、指定されたオブジェク
ト識別子により示されるオブジェクトから、該オブジェ
クトの持つクラス識別子、および該オブジェクトの持つ
メソッドの識別子と該メソッドの引数の型を含むインタ
フェースとの組からなるインタフェース情報を取得さ
せ、取得された前記クラス識別子の示すクラスの派生ク
ラスを生成させ、生成されたこの派生クラスに対して、
前記オブジェクトから取得された前記インタフェース情
報に基づいて前記オブジェクトの持つインタフェースを
複製したメソッドを宣言するとともに、必要に応じてデ
ータを宣言することによって、新たなクラスを生成させ
るためのクラス生成プログラムを記録したコンピュータ
読取り可能な記録媒体である。
The present invention (claim 10) is a class generation program for generating a new class when an application program described in an object-oriented programming language is executed. And interface information comprising a set of a class identifier of the object and an interface including a method identifier of the object and an argument type of the method, and obtains a derived class of the class indicated by the obtained class identifier. Generated, and for this generated derived class,
Based on the interface information obtained from the object, declare a method that duplicates the interface of the object, and declare data as necessary, thereby recording a class generation program for generating a new class. Computer-readable recording medium.

【0023】本発明によれば、実行時に、オブジェクト
をクライアントホストからサーバホストに転送し、サー
バホスト側に対応する遠隔オブジェクトを生成し、クラ
イアントホスト側に対応するインタフェースオブジェク
トを生成でき、クライアントホスト側からサーバホスト
側に転送したオブジェクトを遠隔実行することが可能と
なる。この結果、ユーザプログラムは、実行時に任意の
オブジェクトを選択し、そのオブジェクトを他計算機に
転送して、遠隔操作することが可能となる。これによ
り、分散オブジェクトを利用したシステムの柔軟な構築
あるいは実行が可能となる。
According to the present invention, at the time of execution, an object can be transferred from a client host to a server host, a remote object corresponding to the server host can be generated, and an interface object corresponding to the client host can be generated. It is possible to remotely execute the object transferred from the server to the server host. As a result, the user program can select an arbitrary object at the time of execution, transfer the object to another computer, and remotely control the computer. This makes it possible to flexibly construct or execute a system using distributed objects.

【0024】なお、装置に係る本発明は方法に係る発明
としても成立し、方法に係る本発明は装置に係る発明と
しても成立する。
The present invention relating to the apparatus is also realized as an invention relating to a method, and the present invention relating to a method is also realized as an invention relating to an apparatus.

【0025】また、装置または方法に係る本発明は、コ
ンピュータに当該発明に相当する手順を実行させるため
の(あるいはコンピュータを当該発明に相当する手段と
して機能させるための、あるいはコンピュータに当該発
明に相当する機能を実現させるための)プログラムを記
録したコンピュータ読取り可能な記録媒体としても成立
する。
The present invention relating to an apparatus or a method is provided for causing a computer to execute a procedure corresponding to the present invention (or for causing a computer to function as means corresponding to the present invention, or for causing a computer to correspond to the present invention). The present invention is also realized as a computer-readable recording medium in which a program for realizing the function of performing the above is recorded.

【0026】[0026]

【発明の実施の形態】以下、図面を参照しながら発明の
実施の形態を説明する。
Embodiments of the present invention will be described below with reference to the drawings.

【0027】以下で用いる「クラス」や「オブジェク
ト」は、基本的には、一般のオブジェクト指向言語で扱
われるものと同様の意味内容である。
The terms "class" and "object" used below have basically the same meanings as those used in general object-oriented languages.

【0028】図1に、本発明の実施の形態に係る遠隔オ
ブジェクト実行制御システムを構成するクライアントホ
ストとサーバホストの全体構成例を示す。図1に示され
るように、クライアントホスト1とサーバホスト3が通
信路2によって接続されている(通信可能である)。図
1では一対のクライアントホストとサーバホストのみ示
してあるが、それら以外にもクライアントホストやサー
バホストが接続されていてもよい。
FIG. 1 shows an example of the overall configuration of a client host and a server host constituting a remote object execution control system according to an embodiment of the present invention. As shown in FIG. 1, a client host 1 and a server host 3 are connected by a communication path 2 (communication is possible). Although FIG. 1 shows only a pair of a client host and a server host, a client host and a server host may also be connected.

【0029】クライアントホスト1とサーバホスト3と
は、オブジェクト(61,62,71,72)を実行す
る環境を備えた計算機である。クライアントホスト1
は、ユーザプログラム(図示せず)からの直接の操作が
行われる計算機であり、インタフェースオブジェクト
(62)が走行する計算機である。一方、サーバホスト
3は、遠隔オブジェクト(72)およびその本体たるオ
ブジェクト(71)が走行する計算機である。
The client host 1 and the server host 3 are computers provided with an environment for executing the objects (61, 62, 71, 72). Client host 1
Is a computer operated directly by a user program (not shown), and is a computer on which the interface object (62) runs. On the other hand, the server host 3 is a computer on which the remote object (72) and its main object (71) run.

【0030】「遠隔オブジェクト(72)」とは、所望
のオブジェクト61が遠隔実行のためにクライアントホ
スト1からサーバホスト3に転送(もしくはコピー)さ
れた際に(この転送の結果サーバホスト3に存在するオ
ブジェクトを71とする)、この転送されたオブジェク
ト71に対応して生成されるオブジェクトであり、サー
バホスト3に生成されるオブジェクトの一形態である。
The "remote object (72)" means that the desired object 61 is transferred (or copied) from the client host 1 to the server host 3 for remote execution (as a result of this transfer, This is an object generated in correspondence with the transferred object 71, and is one form of the object generated in the server host 3.

【0031】「インタフェースオブジェクト(62)」
とは、所望のオブジェクト61の遠隔実行のために上記
遠隔オブジェクト(72)に対応して生成されるオブジ
ェクトであり、クライアントホスト1に生成されるオブ
ジェクトの一形態である。
"Interface object (62)"
Is an object generated corresponding to the remote object (72) for remote execution of the desired object 61, and is a form of the object generated in the client host 1.

【0032】遠隔オブジェクト(72)とインタフェー
スオブジェクト(62)とは、従来の分散オブジェクト
技術で用いられていたスケルトンオブジェクトとスタブ
オブジェクトと同様の機能を提供するものである。
The remote object (72) and the interface object (62) provide the same functions as the skeleton object and the stub object used in the conventional distributed object technology.

【0033】すなわち、クライアントホスト1におい
て、ユーザプログラムはインタフェースオブジェクト
(62)を直接操作可能である。また、インタフェース
オブジェクト(62)は、ユーザプログラムからの要求
に従って、サーバホスト3において対応する遠隔オブジ
ェクト(72)を介して、対応するオブジェクトを操作
する。この結果、クライアントホスト1は、インタフェ
ースオブジェクト(62)および対応する遠隔オブジェ
クト(72)を介して、対応するオブジェクトを間接的
に遠隔操作することができる。
That is, in the client host 1, the user program can directly operate the interface object (62). The interface object (62) operates the corresponding object via the corresponding remote object (72) in the server host 3 according to a request from the user program. As a result, the client host 1 can indirectly remotely control the corresponding object via the interface object (62) and the corresponding remote object (72).

【0034】なお、クライアントホストやサーバホスト
は、ある局面においてクライアントホストとして動作す
る計算機とサーバホストとして動作する計算機に分けて
説明するための概念であり、もちろん、本発明を適用し
たシステムを構築する場合には、ある計算機がクライア
ントホストとサーバホストを兼ねる場合も存在し得る
(すなわち、1つのホストがクライアントホストまたは
サーバホストのいずれか一方の機能のみを有していても
よい、1つのホストがクライアントホストとサーバホス
トの両方の機能を有していてもよいし、それらが混在し
ていてもよい)。
It should be noted that the client host and the server host are concepts to be described separately in a certain situation between a computer operating as a client host and a computer operating as a server host. Of course, a system to which the present invention is applied is constructed. In some cases, there may be a case where a certain computer doubles as a client host and a server host (that is, one host may have only the function of either the client host or the server host; It may have the functions of both the client host and the server host, or they may be mixed.)

【0035】図1に示されるように、クライアントホス
ト1は、ユーザプログラムから指示されたオブジェクト
識別子を受け取り、そのオブジェクト識別子を、直列化
オブジェクト送信機構12とインタフェースオブジェク
ト生成機構14とに引き渡す、遠隔オブジェクト生成管
理装置11と、オブジェクト識別子により示されるオブ
ジェクトを直列化し、通信路を経由して転送する、直列
化オブジェクト送信機構12と、サーバホスト3から渡
される遠隔オブジェクト識別子を受け取る、遠隔オブジ
ェクト識別子受信機構13と、オブジェクト識別子によ
り示されるオブジェクト61と遠隔オブジェクト識別子
とを受け取り、インタフェースオブジェクト62を生成
する、インタフェースオブジェクト生成機構14とを含
む。
As shown in FIG. 1, a client host 1 receives an object identifier specified by a user program, and delivers the object identifier to a serialized object transmitting mechanism 12 and an interface object generating mechanism 14. A serialized object transmitting mechanism 12 for serializing an object indicated by an object identifier and transferring the object indicated by the object identifier via a communication channel, and a remote object identifier receiving mechanism for receiving a remote object identifier passed from the server host 3 13 and an interface object generation mechanism 14 that receives the object 61 indicated by the object identifier and the remote object identifier and generates an interface object 62.

【0036】サーバホスト3は、クライアントホスト1
から渡された直列化オブジェクトを受信し、直列化オブ
ジェクトからオブジェクトを復元し、そのオブジェクト
を示すオブジェクト識別子を遠隔オブジェクト生成機構
32に渡す、直列化オブジェクト受信機構31と、オブ
ジェクト識別子を受け取り、遠隔オブジェクトを生成す
る、遠隔オブジェクト生成機構32と、遠隔オブジェク
ト生成機構32で生成された遠隔オブジェクトを示す遠
隔オブジェクト識別子を、クライアントホストに転送す
る、遠隔オブジェクト識別子送信機構33とを含む。
The server host 3 is connected to the client host 1
Receiving the serialized object passed from the remote object, restoring the object from the serialized object, and passing the object identifier indicating the object to the remote object generating mechanism 32, receiving the serialized object receiving mechanism 31 and the object identifier, And a remote object identifier transmitting mechanism 33 for transferring a remote object identifier indicating the remote object generated by the remote object generating mechanism 32 to the client host.

【0037】なお、クライアントホスト1およびサーバ
ホスト3に設けるべき、遠隔メソッド呼び出し機構は、
例えば既存のものを利用して構わない。
The remote method calling mechanism to be provided in the client host 1 and the server host 3 is as follows:
For example, an existing one may be used.

【0038】このような構成によれば、実行時に任意の
オブジェクトを選択し、そのオブジェクトをクライアン
トホスト1からサーバホスト3に転送し、実行させるこ
とができる。
According to such a configuration, an arbitrary object can be selected at the time of execution, and the object can be transferred from the client host 1 to the server host 3 and executed.

【0039】また、上記構成に加えて、クライアントホ
スト1に、サーバホスト3から渡されたクラス識別子を
受け取り、クラス識別子の示すクラスを転送するための
クラス送信機構15を更に設け、サーバホスト3に、直
列化オブジェクト受信機構31から指示されたクラス識
別子をもとに、サーバホスト3自身に存在するクラス5
1かあるいはクライアントホスト1に存在するクラス4
1のいずれかの利用を選択し、クライアントホスト1に
存在するクラス41が選択された場合には、そのクラス
を示すクラス識別子を転送するクラス受信機構34を更
に設けるようにしてもよい。これによって、サーバホス
ト3にあらかじめクラスが準備されていないような場合
でも遠隔オブジェクトの生成が実現可能となる。
In addition to the above configuration, the client host 1 is further provided with a class transmitting mechanism 15 for receiving the class identifier passed from the server host 3 and transferring the class indicated by the class identifier. The class 5 existing in the server host 3 itself based on the class identifier specified by the serialized object receiving mechanism 31
1 or class 4 existing on client host 1
In the case where any one of the methods 1 is selected and the class 41 existing in the client host 1 is selected, a class receiving mechanism 34 for transferring a class identifier indicating the class may be further provided. This makes it possible to generate a remote object even when a class is not prepared in the server host 3 in advance.

【0040】なお、上記では、クライアントホスト1か
らサーバホスト3へのオブジェクトの転送に、オブジェ
クトの直列化処理・復元処理を用いたが、他のオブジェ
クトの転送手段を用いても構わない。
In the above description, the object is transferred from the client host 1 to the server host 3 using the object serialization / restoration processing. However, another object transfer means may be used.

【0041】なお、図1の各機構は、ソフトウェアによ
って実現することができる。
Each mechanism in FIG. 1 can be realized by software.

【0042】以下では、本実施形態をより詳しく説明す
る。
Hereinafter, the present embodiment will be described in more detail.

【0043】ここでは、一般にオブジェクト指向プログ
ラミング言語で広く使われるクラスに基づくオブジェク
ト指向技術を用いた場合を例にとってについて説明す
る。すなわち、オブジェクトの宣言はその雛型となるク
ラスで行なわれ、クラスからオブジェクトを生成するこ
とでプログラムを実現するものである。もちろん、本発
明は、オブジェクトがオブジェクトの雛型となるプロト
タイプに基づくオブジェクト指向言語を用いる場合にも
適用可能であり且つまた有効である。
Here, a case where an object-oriented technique based on a class widely used in an object-oriented programming language is generally used will be described as an example. That is, the declaration of an object is performed in a class serving as a template, and a program is realized by generating an object from the class. Of course, the present invention is also applicable and effective when using an object-oriented language based on a prototype in which the object is a template of the object.

【0044】図2に、本実施形態に係る遠隔オブジェク
ト実行制御システムを構成するクライアントホストとサ
ーバホストのより詳しい全体構成例を示す。
FIG. 2 shows a more detailed overall configuration example of a client host and a server host constituting the remote object execution control system according to the present embodiment.

【0045】クライアントホスト1は、遠隔オブジェク
ト生成管理機構101、オブジェクト直列化機構10
2、直列化オブジェクト送信機構103、遠隔オブジェ
クト識別子受信機構110、遠隔メソッド呼び出し送信
機構121、クラス転送送信機構134を含むものとす
る(前述のようにクラス転送送信機構134を含まない
構成も可能である)。
The client host 1 comprises a remote object creation and management mechanism 101, an object serialization mechanism 10
2. It includes a serialized object transmission mechanism 103, a remote object identifier reception mechanism 110, a remote method call transmission mechanism 121, and a class transfer transmission mechanism 134 (a configuration not including the class transfer transmission mechanism 134 as described above is also possible). .

【0046】サーバホスト3は、直列化オブジェクト受
信機構305、直列化オブジェクト復元機構306、遠
隔オブジェクト生成機構307、遠隔オブジェクト識別
子送信機構308、遠隔メソッド呼び出し受信機構32
3、クラス選択機構331、クラス転送受信機構332
を含むものとする。
The server host 3 includes a serialized object receiving mechanism 305, a serialized object restoring mechanism 306, a remote object generating mechanism 307, a remote object identifier transmitting mechanism 308, and a remote method call receiving mechanism 32.
3. Class selection mechanism 331, class transfer reception mechanism 332
Shall be included.

【0047】もちろん、前述のようにクラス選択機構3
31、クラス転送受信機構332、クラス転送送信機構
134を含まない構成も可能である(ここでは、それら
を含む場合を例にとって説明する)。
Of course, as described above, the class selection mechanism 3
31, the class transfer receiving mechanism 332, and the class transfer transmitting mechanism 134 may not be included (here, the case where they are included will be described as an example).

【0048】図2の機構はソフトウェアによって実現す
ることができる。また、図2の機構は例えばライブラリ
ソフトウェアとして提供することができる。
The mechanism of FIG. 2 can be realized by software. The mechanism shown in FIG. 2 can be provided as, for example, library software.

【0049】なお、ここでは、クライアントホスト1か
らサーバホスト3へのオブジェクトの転送に、オブジェ
クトの直列化処理・復元処理を用いた場合を例にとって
説明するが、前述のように他のオブジェクトの転送手段
を用いても構わない。
Here, the case where the object serialization processing / restoration processing is used to transfer the object from the client host 1 to the server host 3 will be described as an example, but as described above, the transfer of another object is performed. Means may be used.

【0050】オブジェクト161は、サーバホストでの
遠隔実行の対象としてユーザプログラムにより指定され
るオブジェクトである。
The object 161 is an object specified by a user program as a target for remote execution on the server host.

【0051】オブジェクト171は、オブジェクト16
1がクライアントホスト1からオブジェクト161へ転
送(もしくはコピー)されたものである。
The object 171 is the object 16
1 is transferred (or copied) from the client host 1 to the object 161.

【0052】遠隔オブジェクト172は、オブジェクト
171に対応して生成されるオブジェクトである。
The remote object 172 is an object generated corresponding to the object 171.

【0053】インタフェースオブジェクト162は、遠
隔オブジェクト172に対応して生成されるオブジェク
トである。
The interface object 162 is an object generated corresponding to the remote object 172.

【0054】なお、通信機構204,209,222,
233は、クライアントホスト1とサーバホスト3との
間の通信を行うための通信網等であり、クライアントホ
スト1内に設けられる通信機構部分とサーバホスト3内
に設けられる通信機構部分と通信路からなる。また、4
つの通信機構204,209,222,233の部分は
同一のものであっても構わない。以下では、説明の簡略
化のために、通信機構についてはそれを部分毎に分けず
に説明する。
The communication mechanisms 204, 209, 222,
Reference numeral 233 denotes a communication network or the like for performing communication between the client host 1 and the server host 3. The communication network includes a communication mechanism provided in the client host 1, a communication mechanism provided in the server host 3, and a communication path. Become. Also, 4
The two communication mechanisms 204, 209, 222, 233 may be the same. In the following, for the sake of simplicity, the communication mechanism will be described without dividing it into parts.

【0055】まず、オブジェクトの転送、遠隔オブジェ
クトおよびインタフェースオブジェクトの生成のフェイ
ズの概要について説明する。
First, an outline of the phase of transferring an object and generating a remote object and an interface object will be described.

【0056】遠隔オブジェクト生成管理機構101は、
クライアントホスト1上でユーザプログラムからオブジ
ェクト識別子を受け取り、オブジェクト直列化機構10
2とインタフェースオブジェクト生成機構111とに引
き渡す。
The remote object generation and management mechanism 101
An object identifier is received from the user program on the client host 1, and the object serializer 10
2 and the interface object generation mechanism 111.

【0057】オブジェクト直列化機構102は、オブジ
ェクト識別子により示されるオブジェクト161を直列
化し、直列化データを生成する。
The object serializer 102 serializes the object 161 indicated by the object identifier and generates serialized data.

【0058】直列化オブジェクト送信機構103は、直
列化データを通信路におけるネットワーク表現形式に変
換し、さらに通信プロトコルデータを追加する。なお、
通信路はどのようなものでも適用可能であり、例えば通
信プロトコルもネットワーク層もしくはより上位層まで
のプロトコルが使用されてもよいし、データリンク層ま
でのプロトコルが使用されてもよい。
The serialized object transmission mechanism 103 converts the serialized data into a network representation format in a communication channel, and further adds communication protocol data. In addition,
Any communication path can be applied. For example, the communication protocol may be a protocol up to a network layer or a higher layer, or a protocol up to a data link layer.

【0059】上記データは、通信機構204によりクラ
イアントホスト1からサーバホスト3へ転送される。
The above data is transferred from the client host 1 to the server host 3 by the communication mechanism 204.

【0060】直列化オブジェクト受信機構305は、通
信プロトコルデータと直列化データを通信機構204か
ら受信し、取り出す。
The serialized object receiving mechanism 305 receives and extracts communication protocol data and serialized data from the communication mechanism 204.

【0061】直列化オブジェクト復元機構306は、直
列化データからオブジェクト171を作成する。
The serialized object restoration mechanism 306 creates an object 171 from the serialized data.

【0062】遠隔オブジェクト生成機構307は、オブ
ジェクト識別子を受け取り、遠隔オブジェクト172を
生成する。
The remote object generation mechanism 307 receives the object identifier and generates a remote object 172.

【0063】遠隔オブジェクト識別子送信機構308
は、遠隔オブジェクト識別子を受け取り、ネットワーク
表現形式に変換し、さらに通信プロトコルデータを追加
する。
Remote object identifier transmission mechanism 308
Receives the remote object identifier, converts it to a network representation, and adds communication protocol data.

【0064】上記データは、通信機構209によりサー
バホスト3からクライアントホスト1へ転送される。
The above data is transferred from the server host 3 to the client host 1 by the communication mechanism 209.

【0065】遠隔オブジェクト識別子受信機構110
は、通信機構209からネットワーク表現形式の遠隔オ
ブジェクト識別子を受け取り、遠隔オブジェクト識別子
を取り出す。
Remote object identifier receiving mechanism 110
Receives the remote object identifier in the network representation form from the communication mechanism 209 and extracts the remote object identifier.

【0066】インタフェースオブジェクト生成機構11
1は、遠隔オブジェクト識別子とオブジェクト識別子を
受け取り、インタフェースオブジェクト162を生成
し、ユーザプログラムに返す。
Interface object generation mechanism 11
1 receives the remote object identifier and the object identifier, generates an interface object 162, and returns it to the user program.

【0067】次に、遠隔メソッド呼び出しのフェイズの
概要について説明する。
Next, the outline of the remote method calling phase will be described.

【0068】遠隔メソッド呼び出し送信機構121は、
クライアントホスト1上でユーザプログラムからメソッ
ド識別子と遠隔オブジェクト識別子とメソッド引数デー
タとを受け取り、それらをネットワーク表現形式に変
換、さらに通信プロトコルデータを追加する。
The remote method call transmission mechanism 121
The client host 1 receives a method identifier, a remote object identifier, and method argument data from a user program, converts them into a network representation format, and adds communication protocol data.

【0069】上記データは、通信機構222によりクラ
イアントホスト1からサーバホスト3へ転送される。
The above data is transferred from the client host 1 to the server host 3 by the communication mechanism 222.

【0070】遠隔メソッド呼び出し受信機構323は、
通信機構222から遠隔オブジェクト識別子とメソッド
識別子とメソッド引数データを受け取り、遠隔オブジェ
クトへのメソッド呼び出しを行う。そして、遠隔メソッ
ド呼び出し受信機構323は、返り値をネットワーク表
現形式に変換し、さらに通信プロトコルデータを追加す
る。
The remote method call receiving mechanism 323 includes:
The remote object identifier, the method identifier, and the method argument data are received from the communication mechanism 222, and the method is called to the remote object. Then, the remote method call receiving mechanism 323 converts the return value into a network expression format, and further adds communication protocol data.

【0071】上記データは、通信機構222によりサー
バホスト3からクライアントホスト1へ転送される。
The above data is transferred from the server host 3 to the client host 1 by the communication mechanism 222.

【0072】遠隔メソッド呼び出し送信機構121は、
通信機構222から返り値を受け取り、要求元のユーザ
プログラムに返す。
The remote method call transmission mechanism 121
The return value is received from the communication mechanism 222 and returned to the requesting user program.

【0073】次に、クラス選択のフェイズの概要につい
て説明する。
Next, an outline of the class selection phase will be described.

【0074】ここでは、クライアントホスト1にあるク
ラスを141、サーバホスト3にあるクラスを151と
する。
Here, it is assumed that the class on the client host 1 is 141 and the class on the server host 3 is 151.

【0075】クラス選択機構331は、転送された直列
化オブジェクトを復元する直列化オブジェクト復元機構
306からそのクラス識別子を受け取り、サーバホスト
3に存在するクラス151あるいはクラス転送受信機構
332から返るクラス141のいずれかを選択し、直列
化オブジェクト復元機構306に返答する。
The class selecting mechanism 331 receives the class identifier from the serialized object restoring mechanism 306 for restoring the transferred serialized object, and receives the class 151 existing in the server host 3 or the class 141 returned from the class transfer receiving mechanism 332. One of them is selected, and a response is returned to the serialized object restoring mechanism 306.

【0076】なお、この選択は、クライアントホスト1
側からクラスを取得した後に行う方法と、クライアント
ホスト1側からクラスを取得する前に行う方法とが考え
られる。後者の場合には、クライアントホスト1側から
取得したクラスを使用することが決定された場合にの
み、クライアントホスト1側から該当するクラスを取得
する。
This selection is made by the client host 1
A method that is performed after the class is obtained from the client side and a method that is performed before the class is obtained from the client host 1 side are considered. In the latter case, the relevant class is obtained from the client host 1 only when it is determined that the class obtained from the client host 1 is to be used.

【0077】クライアントホスト1側からクラスを取得
する場合には、クラス選択機構331は、クラス転送受
信機構332にクラス識別子を渡す。
When acquiring a class from the client host 1, the class selecting mechanism 331 passes the class identifier to the class transfer receiving mechanism 332.

【0078】クラス転送受信機構332は、クラス識別
子を受け取ると、クラス識別子のネットワーク表現形式
と通信プロトコルデータとを生成する。
Upon receiving the class identifier, the class transfer receiving mechanism 332 generates a network expression format of the class identifier and communication protocol data.

【0079】上記データは、通信機構233によりサー
バホスト3からクライアントホスト1へ転送される。
The above data is transferred from the server host 3 to the client host 1 by the communication mechanism 233.

【0080】クラス転送送信機構134は、通信機構2
33からネットワーク表現形式のクラス識別子と通信プ
ロトコルデータを受け取ると、クラス識別子を取り出
し、クラス識別子の示すクラス(141)のネットワー
ク表現形式と通信プロトコルデータとを生成する。
The class transfer / transmission mechanism 134 is the communication mechanism 2
When the class identifier and the communication protocol data in the network expression format are received from 33, the class identifier is extracted and the network expression format and the communication protocol data of the class (141) indicated by the class identifier are generated.

【0081】上記データは、通信機構233によりクラ
イアントホスト1からサーバホスト3へ転送される。
The data is transferred from the client host 1 to the server host 3 by the communication mechanism 233.

【0082】クラス転送受信機構332は、通信機構2
33からクラス(141)を受け取ると、クラス選択機
構331に返す。
The class transfer receiving mechanism 332 is a communication mechanism 2
When the class (141) is received from 33, it is returned to the class selection mechanism 331.

【0083】このような構成を付加することによって、
サーバホスト3のクラス151あるいはクライアントホ
スト1のクラス141のいずれかを選択して用いること
ができる。
By adding such a configuration,
Either the class 151 of the server host 3 or the class 141 of the client host 1 can be selected and used.

【0084】ここで、図3に、本実施形態で用いる一般
的なオブジェクトの構成例を示す。
FIG. 3 shows a configuration example of a general object used in the present embodiment.

【0085】オブジェクト(160)は、そのオブジェ
クトの雛型となるクラスを示すクラス識別子(160
3)とメソッドテーブル(1601)とデータテーブル
(1602)を持つ。
The object (160) has a class identifier (160) indicating a class serving as a model of the object.
3), a method table (1601) and a data table (1602).

【0086】メソッドテーブル(1601)は、メソッ
ド識別子(16011)とインタフェース(1601
2)とメソッド(16012)とからなる組を0個以上
保持する。
The method table (1601) includes a method identifier (16011) and an interface (1601).
2) and 0 or more sets of methods (16012) are held.

【0087】メソッド(16012)には、そのコード
自体が格納されてもよいが、そのコードが格納されたメ
モリへのポインタが格納されてもよい。
The method (16012) may store the code itself, or may store a pointer to a memory in which the code is stored.

【0088】データテーブル(1602)は、データ識
別子(16021)とデータ(16022)とからなる
組を0個以上保持する。
The data table (1602) holds zero or more sets of data identifiers (16021) and data (16022).

【0089】データ(16022)には、その値自体が
格納されてもよいが、その値が格納されたメモリへのポ
インタが格納されてもよい。
The data (16022) may store the value itself, or may store a pointer to a memory in which the value is stored.

【0090】1つのインタフェース(16012)は、
0個以上の引数のオブジェクトのクラス識別子と、返り
値となるオブジェクトのクラス識別子とから構成され
る。なお、インタフェース情報とは、あるオブジェクト
に存在する全ての組となるメソッド識別子およびインタ
フェースである。
One interface (16012) is:
It is composed of a class identifier of an object of zero or more arguments and a class identifier of an object to be a return value. It should be noted that the interface information is a method identifier and an interface that are all sets existing in a certain object.

【0091】遠隔オブジェクトの場合は、データテーブ
ル(1602)に、対応するオブジェクト、例えば図2
においてクライアントホスト1からサーバホスト3へ転
送されたオブジェクト171へのポインタ情報(例え
ば、オブジェクト識別子)が設定され、また、データ
(16022)やメソッド(16012)の項目には、
オブジェクト(171)の対応するものへのポインタ情
報が記述される。
In the case of a remote object, a corresponding object, for example, FIG.
, Pointer information (for example, an object identifier) to the object 171 transferred from the client host 1 to the server host 3 is set. In the data (16022) and method (16012) items,
The pointer information to the corresponding object (171) is described.

【0092】インタフェースオブジェクトの場合は、デ
ータテーブル(1602)に、対応する遠隔オブジェク
ト、例えば図2における遠隔オブジェクト172へのポ
インタ情報(例えば、遠隔オブジェクト識別子)が設定
され、また、データ(16022)やメソッド(160
12)の項目には、遠隔オブジェクト(172)の対応
するものへのポインタ情報が記述される。
In the case of an interface object, pointer information (for example, a remote object identifier) to a corresponding remote object, for example, the remote object 172 in FIG. 2, is set in the data table (1602). Method (160
In item 12), pointer information to the corresponding remote object (172) is described.

【0093】次に、インタフェースオブジェクト生成機
構111およびインタフェースオブジェクトについて説
明する。
Next, the interface object generating mechanism 111 and the interface object will be described.

【0094】図4に、本実施形態におけるインタフェー
スオブジェクト生成機構111のより詳しい構成例を示
す。
FIG. 4 shows a more detailed configuration example of the interface object generation mechanism 111 in the present embodiment.

【0095】インタフェースオブジェクト生成機構11
1は、遠隔オブジェクト生成管理機構101から渡され
たオブジェクト識別子が示すオブジェクトから、そのク
ラスを示すクラス識別子とインタフェース情報とを取り
出すインタフェース取得機構1111、それらクラス識
別子およびインタフェース情報と、遠隔オブジェクト識
別子受信機構110から渡された遠隔オブジェクト識別
子(1624)とから、新規クラスとしてインタフェー
スオブジェクトのクラス(163)を宣言するクラス生
成機構1113、この宣言されたクラス(163)から
インタフェースオブジェクト(162)を生成するオブ
ジェクト生成機構1112を含む。クラス生成機構11
13は、上記遠隔オブジェクト識別子(1624)をも
とに、新規クラスのデータ(1632)を宣言するデー
タ宣言機構1115、上記インタフェース情報に基づい
た新規クラスのメソッド(1631)を宣言するメソッ
ド宣言機構1114を含む。
Interface object generation mechanism 11
Reference numeral 1 denotes an interface acquisition mechanism 1111 for extracting a class identifier indicating the class and interface information from the object indicated by the object identifier passed from the remote object generation management mechanism 101, the class identifier and the interface information, and a remote object identifier reception mechanism. A class generation mechanism 1113 for declaring a class (163) of an interface object as a new class from the remote object identifier (1624) passed from 110, and an object for generating an interface object (162) from the declared class (163) A generation mechanism 1112 is included. Class generation mechanism 11
Reference numeral 13 denotes a data declaration mechanism 1115 for declaring data (1632) of a new class based on the remote object identifier (1624), and a method declaration mechanism 1114 for declaring a method (1631) of the new class based on the interface information. including.

【0096】ここで、インタフェースオブジェクト生成
機構111において新規クラスとして宣言されるインタ
フェースオブジェクトのクラス(163)は、その基と
なるクラスを継承することが望ましい。これは、継承を
用いた場合に、ユーザプログラムへの返り値のオブジェ
クトすなわちインタフェースオブジェクト(162)
を、その元となるクラスとして扱うことが可能となり、
ユーザプログラムに対して特にインタフェースオブジェ
クト(162)と遠隔オブジェクト(172)とを意識
させないためである。すなわち、クラスを型として取り
扱える表現形式を持つプログラミング言語であれば、遠
隔オブジェクト(172)として生成を要求された引数
のオブジェクトのクラスと、遠隔オブジェクト(17
2)へのインタフェースとして機能するインタフェース
オブジェクト(162)である返り値のオブジェクトの
クラスとが同一になる。なお、一般のオブジェクト指向
言語では、このような継承関係のあるクラス間の参照に
関する型変換を、キャストオペレーションとして提供し
ており、ユーザプログラムは、本実施形態のインタフェ
ースオブジェクトを、その元となるオブジェクトの型を
利用し保持することが可能となる。
Here, it is desirable that the class (163) of the interface object declared as a new class in the interface object generating mechanism 111 inherits the base class. This is the object of the return value to the user program, that is, the interface object (162) when inheritance is used.
Can be treated as the base class,
This is because the user program is not particularly conscious of the interface object (162) and the remote object (172). That is, if the programming language has an expression format that can handle the class as a type, the class of the object of the argument requested to be generated as the remote object (172) and the remote object (17
The class of the object of the return value which is the interface object (162) functioning as an interface to 2) is the same. Note that, in a general object-oriented language, such a type conversion relating to a reference between classes having an inheritance relationship is provided as a cast operation, and a user program converts an interface object of the present embodiment into an It is possible to hold using the type of.

【0097】次に、遠隔オブジェクト生成時の処理手順
について説明する。
Next, a processing procedure when a remote object is generated will be described.

【0098】図5に、本実施形態における遠隔オブジェ
クト生成時の処理手順の一例を示す。
FIG. 5 shows an example of a processing procedure when a remote object is generated in this embodiment.

【0099】なお、サーバホスト3とクライアントホス
ト1との間の通信を提供する通信機構(204,20
9,222,233)は、あらかじめ初期化されている
ものとする。すなわち、サーバホスト3の或る機構から
の送信はクライアントホスト1の或る機構で受け取るこ
とができ、同様に逆向きの通信も可能となっているもの
とする。
A communication mechanism (204, 20) for providing communication between the server host 3 and the client host 1.
9, 222, 233) have been initialized in advance. That is, it is assumed that transmission from a certain mechanism of the server host 3 can be received by a certain mechanism of the client host 1, and communication in the opposite direction is also possible.

【0100】以下、図5の手順について順を追って説明
を行う。
The procedure of FIG. 5 will be described below step by step.

【0101】クライアントホスト1の遠隔オブジェクト
生成管理機構101は、ユーザプログラムから、サーバ
ホスト3へ転送を行うオブジェクト(161)を示すオ
ブジェクト識別子を受け取る。
The remote object creation management mechanism 101 of the client host 1 receives an object identifier indicating the object (161) to be transferred to the server host 3 from the user program.

【0102】遠隔オブジェクト生成管理機構101で
は、渡されたオブジェクト識別子をオブジェクト直列化
機構102とインタフェースオブジェクト生成機構11
1に引き渡す(ステップS1)。
The remote object generation management mechanism 101 stores the passed object identifier in the object serialization mechanism 102 and the interface object generation mechanism 11.
1 (step S1).

【0103】オブジェクト直列化機構102は、渡され
たオブジェクト識別子からオブジェクトを参照し、その
オブジェクトのクラス識別子と、そのオブジェクトの内
部状態すなわちデータの値とを取り出し、直列化データ
とする(ステップS2)。次に、直列化データを、直列
化オブジェクト送信機構103に渡す。
The object serializer 102 refers to the object from the passed object identifier, extracts the class identifier of the object and the internal state of the object, that is, the value of the data, and sets it as serialized data (step S2). . Next, the serialized data is passed to the serialized object transmission mechanism 103.

【0104】直列化データを受け取った直列化オブジェ
クト送信機構103は、ネットワーク表現形式に直列化
データを変換し、さらに通信プロトコルデータを作成す
る。次に、通信プロトコルデータと直列化データとを、
通信機構204に渡す。
The serialized object transmitting mechanism 103 that has received the serialized data converts the serialized data into a network representation format and creates communication protocol data. Next, the communication protocol data and the serialized data are
The information is passed to the communication mechanism 204.

【0105】通信プロトコルデータと直列化データとを
渡された通信機構204は、サーバホスト3に上記デー
タを送信する(ステップS3)。
The communication mechanism 204 having received the communication protocol data and the serialized data transmits the data to the server host 3 (step S3).

【0106】通信機構204からデータを受け取った
(ステップS4)直列化オブジェクト受信機構305
は、通信プロトコルを検証し、通信エラーが発生した場
合には(ステップS5)、エラー処理を行なう。一方、
通信エラーが発生しなかった場合には(ステップS
5)、直列化データをネットワーク表現形式から元の形
式に戻す(ステップS6)。次に、直列化データを直列
化オブジェクト復元機構306に渡す。
Data is received from the communication mechanism 204 (step S4). Serialized object receiving mechanism 305
Verifies the communication protocol, and if a communication error occurs (step S5), performs error processing. on the other hand,
If no communication error has occurred (step S
5) Return the serialized data from the network representation format to the original format (step S6). Next, the serialized data is passed to the serialized object restoration mechanism 306.

【0107】直列化データを受け取った直列化オブジェ
クト復元機構306は、その直列化データからオブジェ
クトを復元する。復元されたオブジェクトのオブジェク
ト識別子を遠隔オブジェクト生成機構307に引き渡
す。
Upon receiving the serialized data, the serialized object restoring mechanism 306 restores an object from the serialized data. The object identifier of the restored object is passed to the remote object generation mechanism 307.

【0108】遠隔オブジェクト生成機構307では、渡
されたオブジェクト識別子が示すオブジェクトと遠隔オ
ブジェクト識別子とから、遠隔オブジェクトを生成する
(ステップS7)。生成された遠隔オブジェクトを示す
遠隔オブジェクト識別子を、遠隔オブジェクト識別子送
信機構308に引き渡す。
The remote object generation mechanism 307 generates a remote object from the object indicated by the passed object identifier and the remote object identifier (step S7). The remote object identifier indicating the generated remote object is delivered to the remote object identifier transmitting mechanism 308.

【0109】遠隔オブジェクト識別子送信機構308
は、渡された遠隔オブジェクト識別子をネットワーク表
現形式に変換し、さらに通信プロトコルデータを作成す
る。次に、通信プロトコルデータと変換された遠隔オブ
ジェクト識別子データを、通信機構209に渡す。
Remote object identifier transmission mechanism 308
Converts the passed remote object identifier into a network representation format and creates communication protocol data. Next, the communication protocol data and the converted remote object identifier data are passed to the communication mechanism 209.

【0110】通信プロトコルデータと遠隔オブジェクト
データとを渡された通信機構209は、クライアントホ
スト1に上記データを送信する(ステップS8)。
The communication mechanism 209 having received the communication protocol data and the remote object data transmits the data to the client host 1 (step S8).

【0111】通信機構209からデータを受け取った
(ステップS9)遠隔オブジェクト識別子受信機構11
0は、通信プロトコルを検証し、通信エラーが発生した
場合には(ステップS10)、エラー処理を行う。一
方、通信エラーが発生しなかった場合には(ステップS
10)、遠隔オブジェクト識別子データをネットワーク
表現形式から元の形式に戻す。次に、遠隔オブジェクト
識別子を、インタフェースオブジェクト生成機構111
に渡す。
The data is received from the communication mechanism 209 (step S9). The remote object identifier receiving mechanism 11
0 verifies the communication protocol. If a communication error occurs (step S10), error processing is performed. On the other hand, if no communication error has occurred (step S
10) Return the remote object identifier data from the network representation format to the original format. Next, the remote object identifier is stored in the interface object generation mechanism 111.
Pass to.

【0112】インタフェースオブジェクト生成機構11
1は、インタフェースオブジェクトを生成し(ステップ
S11)、ユーザアプリケーションに返す。
Interface object generation mechanism 11
1 generates an interface object (step S11) and returns it to the user application.

【0113】次に、インタフェースオブジェクトの生成
の処理手順について説明する。
Next, the procedure for generating an interface object will be described.

【0114】図6に、インタフェースオブジェクト生成
機構111の処理手順の一例を示す。
FIG. 6 shows an example of the processing procedure of the interface object generating mechanism 111.

【0115】以下、図6の手順について順を追って説明
を行う。
Hereinafter, the procedure of FIG. 6 will be described step by step.

【0116】遠隔オブジェクト生成管理機構101から
インタフェースオブジェクト生成機構111に渡された
オブジェクト識別子は、インタフェース取得機構111
1に渡される。また、遠隔オブジェクト識別子受信機構
110からインタフェースオブジェクト生成機構111
に渡された遠隔オブジェクト識別子は、クラス生成機構
1113に渡される。
The object identifier passed from the remote object generation management mechanism 101 to the interface object generation mechanism 111
Passed to 1. Also, the remote object identifier receiving mechanism 110 sends the interface object generating mechanism 111
Are passed to the class generation mechanism 1113.

【0117】インタフェース取得機構1111は、オブ
ジェクト識別子の示すオブジェクトから、クラス識別子
とインタフェース情報とを取り出す(ステップS2
1)。このインタフェース情報とは、あるオブジェクト
に存在する全ての組となるメソッド識別子およびインタ
フェースである。次に、クラス識別子とインタフェース
情報とを、クラス生成機構1113に引き渡す。
The interface acquiring mechanism 1111 extracts a class identifier and interface information from the object indicated by the object identifier (step S2).
1). The interface information is a method identifier and an interface that are all sets existing in a certain object. Next, the class identifier and the interface information are transferred to the class generation mechanism 1113.

【0118】クラス生成機構1113は、渡されたクラ
ス識別子の示すクラスの派生クラスとした新たなクラス
を生成する(ステップS22)。ここでは、この新たに
生成されたクラスを子クラスと呼ぶことにする。次に、
データ宣言機構1115に遠隔オブジェクト識別子と子
クラスを示すクラス識別子を渡す。その後、メソッド宣
言機構1114に対し、渡されたクラス識別子が示すク
ラスにメソッドを追加するため、インタフェース情報と
子クラスを示すクラス識別子とを渡す。
The class generating mechanism 1113 generates a new class as a derived class of the class indicated by the passed class identifier (step S22). Here, this newly generated class is referred to as a child class. next,
The remote object identifier and the class identifier indicating the child class are passed to the data declaration mechanism 1115. After that, the interface information and the class identifier indicating the child class are passed to the method declaration mechanism 1114 in order to add a method to the class indicated by the passed class identifier.

【0119】データ宣言機構1113は、渡された遠隔
オブジェクト識別子を子クラスのデータとして宣言する
(ステップS23)。次に、遠隔オブジェクト識別子を
示すデータのデータ識別子をメソッド宣言機構1114
に渡す。
The data declaration mechanism 1113 declares the passed remote object identifier as child class data (step S23). Next, the data identifier of the data indicating the remote object identifier is stored in the method declaration
Pass to.

【0120】メソッド宣言機構1114では、渡された
インタフェース情報から、メソッド識別子とインタフェ
ースとの組を一つ取り出す(ステップS24)。次に、
取り出されたメソッド識別子と同一のメソッド識別子
と、取り出されたインタフェースと同一のインタフェー
スと、データ宣言機構1115から渡されたデータ識別
子の示す遠隔オブジェクト識別子の持つ同一メソッド識
別子に対するメソッド呼び出しを行なうメソッド処理
と、を持つメソッドを、クラス識別子の示すクラスに宣
言する(ステップS25)。
The method declaration mechanism 1114 extracts one set of a method identifier and an interface from the passed interface information (step S24). next,
A method process for calling the same method identifier as the extracted method identifier, the same interface as the extracted interface, and the same method identifier of the remote object identifier indicated by the data identifier passed from the data declaration mechanism 1115; Are declared in the class indicated by the class identifier (step S25).

【0121】これを全てのメソッド識別子とインタフェ
ースの組について実行する(ステップS26)。
This is executed for all pairs of method identifiers and interfaces (step S26).

【0122】これにより、新たなクラスの宣言が完了す
る。また、この新たに宣言されたクラスがインタフェー
スオブジェクトのクラスとなる。
Thus, the declaration of the new class is completed. The newly declared class becomes the class of the interface object.

【0123】作成されたクラスを示すクラス識別子を、
オブジェクト生成機構1112に引き渡す。
The class identifier indicating the created class is
Deliver to the object generation mechanism 1112.

【0124】オブジェクト生成機構1112では、渡さ
れたクラス識別子が示すクラスから新たなオブジェクト
を生成する(ステップS27)。すなわち、インタフェ
ースオブジェクトが生成される。
The object generation mechanism 1112 generates a new object from the class indicated by the passed class identifier (step S27). That is, an interface object is generated.

【0125】最後に、生成されたインタフェースオブジ
ェクトを示すオブジェクト識別子を、ユーザプログラム
に返す。
Finally, an object identifier indicating the generated interface object is returned to the user program.

【0126】次に、メソッド呼び出しの処理手順につい
て説明する。
Next, the procedure of the method call will be described.

【0127】図7に、本実施形態におけるインタフェー
スオブジェクトを経由した遠隔オブジェクトのメソッド
呼び出しの処理手順の一例を示す。
FIG. 7 shows an example of a procedure for calling a method of a remote object via an interface object in the present embodiment.

【0128】以下、図7の手順について順を追って説明
を行う。
Hereinafter, the procedure of FIG. 7 will be described step by step.

【0129】クライアントホスト1において、ユーザプ
ログラムから呼び出されるインタフェースオブジェクト
のメソッドとは、既に遠隔オブジェクトの生成フローで
記述したように、インタフェースオブジェクト内に保持
された遠隔オブジェクト識別子の示す遠隔オブジェクト
へのメソッドの呼び出しを行うものである。よって、イ
ンタフェースオブジェクトへのメソッドの呼び出しは、
遠隔オブジェクト識別子へのメソッド呼び出しとなる。
以下、このフローの詳細な実行手順について説明を行
う。
In the client host 1, the method of the interface object called from the user program refers to the method of the method to the remote object indicated by the remote object identifier held in the interface object, as described in the remote object generation flow. Make a call. Therefore, calling a method on an interface object is
This is a method call to the remote object identifier.
Hereinafter, a detailed execution procedure of this flow will be described.

【0130】ユーザプログラムは、メソッド識別子と0
個以上の引数となるオブジェクトとを指定し、インタフ
ェースオブジェクトのメソッドを呼び出す(ステップS
31)。
The user program stores a method identifier and 0
At least one argument object is specified and the method of the interface object is called (step S
31).

【0131】呼び出されたインタフェースオブジェクト
のメソッドでは、呼び出されたメソッドと同一のインタ
フェースを持つ遠隔オブジェクトのメソッドを自身がデ
ータとして保持している遠隔オブジェクト識別子が示す
遠隔オブジェクトに対して呼び出すよう記述されている
(ステップS32)。この記述の具体的な処理は以下の
ようになる。インタフェースオブジェクトは、遠隔オブ
ジェクト識別子とメソッド識別子と0個以上の引数とな
るオブジェクトとを遠隔メソッド呼び出し送信機構12
1に渡す。
In the method of the called interface object, it is described that the method of the remote object having the same interface as the called method is called for the remote object indicated by the remote object identifier held as data. (Step S32). The specific processing of this description is as follows. The interface object transmits a remote object identifier, a method identifier, and an object serving as zero or more arguments to the remote method call transmission mechanism 12.
Pass to 1.

【0132】遠隔メソッド呼び出し送信機構121は、
渡された遠隔オブジェクト識別子とメソッド識別子と0
個以上の引数となるオブジェクトとをネットワーク表現
形式に変換し、さらに通信プロトコルデータを追加し通
信機構222に渡す。
The remote method call transmission mechanism 121
Passed remote object identifier, method identifier and 0
More than two objects as arguments are converted into a network expression format, and further, communication protocol data is added and passed to the communication mechanism 222.

【0133】通信機構222は、渡されたデータと通信
プロトコルデータをサーバホストに送信する(ステップ
S33)。
The communication mechanism 222 transmits the passed data and the communication protocol data to the server host (Step S33).

【0134】サーバホスト3上の遠隔メソッド呼び出し
受信機構323は、通信機構222から通信プロトコル
データとネットワーク表現形式の遠隔オブジェクト識別
子とメソッド識別子と0個以上の引数となるオブジェク
トとを受信する(ステップS34)。
The remote method call receiving mechanism 323 on the server host 3 receives, from the communication mechanism 222, the communication protocol data, the remote object identifier in the network representation format, the method identifier, and zero or more arguments as objects (step S34). ).

【0135】通信プロトコルデータを検証し、通信エラ
ーが発生した場合にはエラー処理を行う。
The communication protocol data is verified, and if a communication error occurs, error processing is performed.

【0136】一方、通信エラーが発生しなかった場合に
は、受け取った遠隔オブジェクト識別子とメソッド識別
子と0個以上の引数となるオブジェクトとをネットワー
ク表現形式から元の形式に戻す。
On the other hand, if no communication error has occurred, the received remote object identifier, method identifier, and zero or more argument objects are returned from the network expression format to the original format.

【0137】次に、遠隔オブジェクト識別子の示す遠隔
オブジェクトのメソッド識別子の示すメソッドに対し
て、0個以上の引数となるオブジェクトを指定しつつ呼
び出しを実行する(ステップS35)。
Next, a call is executed for the method indicated by the method identifier of the remote object indicated by the remote object identifier while designating zero or more objects as arguments (step S35).

【0138】次に、遠隔オブジェクト呼び出し受信機構
323は、遠隔オブジェクトに対するメソッド呼び出し
の結果として返答される返り値となるオブジェクトを受
け取る。この返り値となるオブジェクトをネットワーク
表現形式に変換し、通信プロトコルデータを負荷して通
信機構222に渡す。
Next, the remote object call receiving mechanism 323 receives an object which is a return value returned as a result of the method call for the remote object. The return object is converted into a network expression format, and communication protocol data is loaded and passed to the communication mechanism 222.

【0139】通信プロトコルデータとネットワーク表現
形式の返り値オブジェクトとを受け取った通信機構22
2は、クライアントホストにそれらデータを送信する
(ステップS36)。
Communication mechanism 22 that has received communication protocol data and a return value object in network representation format
2 transmits the data to the client host (step S36).

【0140】通信機構222から通信プロトコルデータ
とネットワーク表現形式に変換された返り値オブジェク
トとを受け取った(ステップS37)遠隔メソッド呼び
出し送信機構121は、通信プロトコルデータを検証
し、通信エラーが発生した場合にはエラー処理を行う。
Upon receiving the communication protocol data and the return value object converted into the network representation form from the communication mechanism 222 (step S37), the remote method call transmission mechanism 121 verifies the communication protocol data, and if a communication error occurs. Performs error processing.

【0141】一方、通信エラーが発生しなかった場合に
は、返り値オブジェクトをネットワーク表現形式から元
の形式に戻す。
On the other hand, if no communication error has occurred, the return value object is returned from the network expression format to the original format.

【0142】返り値オブジェクトを、インタフェースオ
ブジェクトに渡す。
The return value object is passed to the interface object.

【0143】インタフェースオブジェクトは、ユーザプ
ログラムに対してメソッド呼び出しの結果の返り値とし
て、返り値オブジェクトを返す(ステップS38)。
The interface object returns a return value object to the user program as a return value of the result of the method call (step S38).

【0144】次に、クラス転送の処理手順について説明
する。
Next, the class transfer processing procedure will be described.

【0145】図8に、本実施形態における遠隔オブジェ
クト生成時のクラス転送に関する処理手順の一例を示
す。
FIG. 8 shows an example of a processing procedure relating to class transfer when a remote object is generated in this embodiment.

【0146】以下、図8の手順について順を追って説明
を行う。
Hereinafter, the procedure of FIG. 8 will be described step by step.

【0147】直列化オブジェクト復元機構306から、
クラス識別子を渡されたクラス選択機構331は、その
クラス識別子が示すクラスがサーバホストに存在するか
否かを調べる。
From the serialized object restoration mechanism 306,
The class selection mechanism 331 to which the class identifier has been passed checks whether or not the class indicated by the class identifier exists in the server host.

【0148】クラスがサーバホストに存在した場合には
(ステップS41)、そのクラスを直列化オブジェクト
復元機構306に返答する(ステップS42)。
If the class exists in the server host (step S41), the class is returned to the serialized object restoring mechanism 306 (step S42).

【0149】一方、クラスがサーバホストに存在しない
場合には(ステップS41)、クラス識別子をクラス転
送受信機構332に渡す。
On the other hand, if the class does not exist in the server host (step S 41), the class identifier is passed to the class transfer receiving mechanism 332.

【0150】クラス識別子を受信したクラス転送受信機
構332は、クラス識別子をネットワーク表現形式に変
換し、通信プロトコルデータを付加して通信機構233
に渡す。
The class transfer receiving mechanism 332 that has received the class identifier converts the class identifier into a network expression format, adds communication protocol data, and adds the communication protocol data.
Pass to.

【0151】通信機構233は、渡されたデータをクラ
イアントホスト1に送信する(ステップS43)。
The communication mechanism 233 transmits the passed data to the client host 1 (Step S43).

【0152】クライアントホスト1上のクラス転送送信
機構134は、受信した(ステップS44)通信プロト
コルデータを検証し、通信エラーが発生した場合にはエ
ラー処理を行う。
The class transfer transmitting mechanism 134 on the client host 1 verifies the received communication protocol data (step S44), and performs an error process if a communication error occurs.

【0153】一方、通信エラーが発生しなかった場合に
は、ネットワーク表現形式のクラス識別子を元の形式に
戻す。次に、クラス識別子が示すクラスをネットワーク
表現形式に変換し、通信プロトコルデータを付加して通
信機構233に渡す(ステップS45)。
On the other hand, if no communication error has occurred, the class identifier in the network expression format is returned to the original format. Next, the class indicated by the class identifier is converted into a network expression format, and the protocol is added to the communication protocol data and passed to the communication mechanism 233 (step S45).

【0154】通信機構233は、渡されたデータをサー
バホスト3に送信する(ステップS6)。
The communication mechanism 233 transmits the passed data to the server host 3 (Step S6).

【0155】クラス転送受信機構332は、通信機構2
33から通信プロトコルデータとネットワーク表現形式
のクラスを受信し(ステップS47)、通信プロトコル
データを検証し、エラーが発生した場合にはエラー処理
を行う。一方、通信エラーが発生しなかった場合には、
ネットワーク表現形式から元の形式にクラスを戻し、直
列化オブジェクト復元機構306に、そのクラスを返答
する(ステップS48)。
The class transfer receiving mechanism 332 is a communication mechanism 2
The communication protocol data and the class of the network representation format are received from the communication device 33 (step S47), the communication protocol data is verified, and if an error occurs, error processing is performed. On the other hand, if no communication error has occurred,
The class is returned from the network expression format to the original format, and the class is returned to the serialized object restoration mechanism 306 (step S48).

【0156】なお、クラス選択機構331の初期化時
に、あらかじめクラスの選択方法を指示しておく方式も
考えられる。この場合、クラス選択機構331は、サー
バホストにクラスが存在するか否かではなく、指示され
たクラスの選択方法に応じて、サーバホスト内のクラス
を用いるか、クラス転送受信機構332を用いてクライ
アントに存在するクラスを転送して利用するかを決定す
る。
Note that a method of instructing a class selection method in advance at the time of initialization of the class selection mechanism 331 may be considered. In this case, the class selection mechanism 331 uses the class in the server host or the class transfer reception mechanism 332 in accordance with the specified class selection method instead of whether or not the class exists in the server host. Decide whether to transfer and use the class that exists in the client.

【0157】これにより、サーバとクライアントで異な
るクラスを用意することで、クライアント上の元となる
オブジェクトとサーバ上に転送された遠隔オブジェクト
との間で異なる振る舞いを実現することが可能となる。
例えば、それぞれの計算機に特有な資源あるいは処理に
アクセスするようなクラスを定義し本発明によるオブジ
ェクトの転送を行うことにより、計算機特有の資源ある
いは処理を異なる計算機から利用することが可能とな
り、分散システムの構築を容易にすることが可能とな
る。
Thus, by preparing different classes for the server and the client, it becomes possible to realize different behavior between the original object on the client and the remote object transferred to the server.
For example, by defining a class that accesses resources or processes unique to each computer and performing object transfer according to the present invention, it is possible to use resources or processes specific to each computer from different computers. Can be easily constructed.

【0158】あるいは、クラスの転送を選択すること
で、ネットワークの帯域ならびに二次記憶領域といった
計算機資源を最適化した分散システムを構築することが
可能となる。
Alternatively, by selecting class transfer, it is possible to construct a distributed system in which computer resources such as a network bandwidth and a secondary storage area are optimized.

【0159】ところで、上記では、遠隔オブジェクトの
生成時において、クライアントホスト1からサーバホス
ト3へのオブジェクトの転送を行ったが、サーバホスト
3側に既に存在するオブジェクトを利用することも可能
である。すなわち、クライアントホスト1からサーバホ
スト3へのオブジェクトの転送を行わずに、本実施形態
における遠隔オブジェクトの生成、遠隔オブジェクト識
別子の送受信、インタフェースオブジェクトの生成のみ
を行うことも可能である。例えば、図2の構成例の場
合、オブジェクト直列化機構102と直列化オブジェク
ト送信機構103と直列化オブジェクト受信機構305
と直列化オブジェクト復元機構306とを用いず、遠隔
オブジェクト生成管理機構101と遠隔オブジェクト生
成機構307と遠隔オブジェクト識別子送信機構308
と遠隔オブジェクト識別子受信機構110とインタフェ
ースオブジェクト生成機構111とを利用する。
In the above description, when the remote object is generated, the object is transferred from the client host 1 to the server host 3. However, an object already existing on the server host 3 side can be used. That is, it is also possible to perform only generation of a remote object, transmission and reception of a remote object identifier, and generation of an interface object in the present embodiment without transferring an object from the client host 1 to the server host 3. For example, in the case of the configuration example of FIG. 2, the object serialization mechanism 102, the serialized object transmission mechanism 103, and the serialized object reception mechanism 305
And the remote object generation and management mechanism 101, the remote object generation mechanism 307, and the remote object identifier transmission mechanism 308 without using the
And a remote object identifier receiving mechanism 110 and an interface object generating mechanism 111.

【0160】これによって、サーバホスト3側に既に存
在するオブジェクトに対して、インタフェースオブジェ
クトを生成することが可能となり、このインタフェース
オブジェクトを経由することで、クライアントホスト1
上のプログラムからサーバホスト3側のオブジェクトの
操作が可能となる。
As a result, an interface object can be generated for an object already existing on the server host 3 side, and by passing through this interface object, the client host 1
From the above program, the object on the server host 3 can be operated.

【0161】このような動作を実現するためには、これ
までに説明した、遠隔オブジェクトの生成時においてク
ライアントホスト1からサーバホスト3へのオブジェク
トの転送を行う処理手順に対して以下の修正を行えばよ
い。
In order to realize such an operation, the following modification is made to the processing procedure for transferring an object from the client host 1 to the server host 3 at the time of generation of a remote object as described above. Just do it.

【0162】すなわち、遠隔オブジェクト生成管理機構
101は、直列化の手順を行わず、通信機構204を経
由し遠隔オブジェクト生成機構307に対して、遠隔オ
ブジェクト識別子の返答を要求する。遠隔オブジェクト
生成機構307は、指定されたサーバホスト3側に既に
存在するオブジェクトを示す識別子に基づいて遠隔オブ
ジェクトを生成し、その遠隔オブジェクトを示す遠隔オ
ブジェクト識別子を送信機構209に渡す。
That is, the remote object generation management mechanism 101 requests the remote object generation mechanism 307 to return a remote object identifier via the communication mechanism 204 without performing the serialization procedure. The remote object generation mechanism 307 generates a remote object based on the identifier indicating the object already existing on the specified server host 3 side, and passes the remote object identifier indicating the remote object to the transmission mechanism 209.

【0163】また、遠隔オブジェクト識別子を受け取っ
たインタフェースオブジェクト生成機構111は、その
元となるオブジェクトのクラスを、クライアントホスト
1側に存在するクラス、あるいは、前述のクラス転送に
関する機構331,332,134をクライアントホス
ト1とサーバホスト3の役割を逆にしサーバホスト上の
クラスから読み込む。
Further, the interface object generating mechanism 111 which has received the remote object identifier changes the class of the object from which it is based on the class existing on the client host 1 side or the above-described mechanism 331, 332, 134 relating to class transfer. The roles of the client host 1 and the server host 3 are reversed and read from the class on the server host.

【0164】以上の変更により、サーバホスト3側に存
在する既存のオブジェクトに対して、クライアントホス
ト1側にインタフェースオブジェクトを生成することが
可能となる。
With the above change, it is possible to generate an interface object on the client host 1 side with respect to an existing object existing on the server host 3 side.

【0165】なお、(1)クライアントホスト1からサ
ーバホスト3へオブジェクトを転送して遠隔実行するこ
とのみ可能な構成を採ることも、(2)サーバホスト3
側の既存のオブジェクトを利用することのみ可能な構成
を採ることも、(3)それらを任意に選択することが可
能な構成を採ることも可能であるが、(2)の構成を採
る場合には、上記のオブジェクト直列化機構102と直
列化オブジェクト送信機構103と直列化オブジェクト
受信機構305と直列化オブジェクト復元機構306を
省くことができる(図1の場合には、直列化オブジェク
ト送信機構12と直列化オブジェクト受信機構31を省
くことができる)。
It should be noted that (1) it is possible to adopt a configuration in which objects can only be transferred from the client host 1 to the server host 3 and executed remotely.
It is possible to adopt a configuration in which only existing objects on the side can be used, or (3) a configuration in which they can be arbitrarily selected. Can eliminate the object serializing mechanism 102, the serialized object transmitting mechanism 103, the serialized object receiving mechanism 305, and the serialized object restoring mechanism 306 (in the case of FIG. 1, the serialized object transmitting mechanism 12 and the serialized object transmitting mechanism 12). (The serialized object receiving mechanism 31 can be omitted.)

【0166】以下では、本発明を適用した一般的なシス
テム構成について、ユーザプログラムからの視点で説明
を行う。
Hereinafter, a general system configuration to which the present invention is applied will be described from the viewpoint of a user program.

【0167】図9に、オブジェクトを中心としたシステ
ム構成を示す。すなわち、図9に示されるように、本実
施形態のクライアントホストとなる計算機1001とサ
ーバホストとなる計算機1003とが通信可能であり、
クライアントホスト1001上には、ユーザプログラム
1011とオブジェクト1012とインタフェースオブ
ジェクト1013が存在し、サーバホスト1003上に
は、遠隔オブジェクト1031が存在する。なお、図2
等で説明した機構もそれぞれの計算機上に存在するが、
それらは図9では省略している。
FIG. 9 shows a system configuration centered on objects. That is, as shown in FIG. 9, a computer 1001 serving as a client host and a computer 1003 serving as a server host of the present embodiment can communicate with each other.
A user program 1011, an object 1012, and an interface object 1013 exist on the client host 1001, and a remote object 1031 exists on the server host 1003. Note that FIG.
Although the mechanism described in etc. also exists on each computer,
They are omitted in FIG.

【0168】ここで、クライアントホスト1上のユーザ
プログラム1011が、あるオブジェクト1012を指
定し、そのオブジェクト1012をサーバホスト100
3上で実行しようとした場合、サーバホスト1003に
遠隔オブジェクト1031を生成し、さらにその遠隔オ
ブジェクト1031をプログラムから利用可能とするた
めのインタフェースオブジェクト1013をクライアン
トホスト1001上に生成する必要がある。
Here, the user program 1011 on the client host 1 designates an object 1012, and assigns the object 1012 to the server host 100.
If the remote object 1031 is to be executed on the client host 1001, a remote object 1031 must be generated on the server host 1003, and an interface object 1013 for making the remote object 1031 usable from a program must be generated.

【0169】この機能を提供するのが、本実施形態のイ
ンタフェースオブジェクト生成機構である。インタフェ
ースオブジェクト生成機構を用いれば、インタフェース
オブジェクトの生成を動的に行うことが可能となる。す
なわち、ユーザプログラムは、その実行の途中で任意の
オブジェクトを生成あるいは選択し、そのオブジェクト
をサーバホストに転送し利用することが可能となる。
This function is provided by the interface object generation mechanism of the present embodiment. With the use of the interface object generation mechanism, it is possible to dynamically generate an interface object. That is, the user program can generate or select an arbitrary object during its execution, and transfer and use the object to the server host.

【0170】ここでは、上記の構成を用い、関数型の手
続き呼び出しを行なう仮想言語上での呼び出しの例を示
し、本発明による記述の容易性について説明する。
Here, an example of a call on a virtual language for making a function type procedure call using the above configuration will be shown, and the ease of description according to the present invention will be described.

【0171】下記のような言語、すなわち、 object A; A=object(); において(なお、第1行目は、オブジェクト型の変数A
の宣言であり、第2行目は、オブジェクト型を構築し、
Aに格納する操作である)、本実施形態により、変数A
が示すObjectを、サーバホストに転送する。
In a language such as the following: object A; A = object (); (The first line is a variable A of the object type.
The second line constructs an object type,
A), according to the present embodiment, the variable A
Is transferred to the server host.

【0172】本発明によれば、下記のように、サーバホ
スト(なお、サーバホストの識別情報をServerH
ostで表すものとする)上にAが示すオブジェクト型
のオブジェクトを容易に転送する指示が記述可能とな
る。なお、Bの示すオブジェクトがインタフェースオブ
ジェクトとなる。また、Aには任意のオブジェクトを利
用し、それを任意のホストサーバ(ServerHos
t)に転送することが可能である。 object B; B=A.createRemoteObject( S
erverHost); 、もしくは、下記のような言語、 object B; B=System.createRemoteObje
ct( A,ServerHost ); を考える。第1行目は、オブジェクト型の変数Bの宣言
であり、第2行目は、遠隔オブジェクトの生成である。
2種類の記述の相違は、遠隔オブジェクトの生成の形式
の相違である。
According to the present invention, as described below, a server host (note that the server host identification information is
An instruction for easily transferring an object of the object type indicated by A can be described above. The object indicated by B is an interface object. In addition, an arbitrary object is used for A, and is used as an arbitrary host server (ServerHos).
t). object B; B = A. createRemoteObject (S
or a language such as the following: object B; B = System. createRemoteObject
ct (A, ServerHost); The first line is a declaration of an object type variable B, and the second line is the creation of a remote object.
The difference between the two types of descriptions is the difference in the form of generation of the remote object.

【0173】従来の分散オブジェクト技術を利用した場
合には、AのインタフェースオブジェクトであるBを、
あらかじめコンパイルしておく必要があったが、本実施
形態によれば、インタフェースオブジェクト生成機構に
より実行時にAの派生クラスとしてBを生成することが
可能となる。
When the conventional distributed object technology is used, the interface object B of A is
Although it was necessary to compile in advance, according to the present embodiment, B can be generated as a derived class of A at the time of execution by the interface object generating mechanism.

【0174】さらに、上記コード例のインタフェースオ
ブジェクトBを利用する場合には、 B.method( ); と記述する(なお、上記記述は、Bのメソッドmeth
odの呼び出しである)。
When the interface object B of the above code example is used, method (); (Note that the above description is based on the method
od).

【0175】これにより、インタフェースオブジェクト
Bを経由して、上記コード例により生成されたサーバホ
スト(ServerHost)上の遠隔オブジェクトを
呼び出すことが可能となる。
Thus, the remote object on the server host (ServerHost) generated by the above code example can be called via the interface object B.

【0176】これらのコード例から明らかなように、本
実施形態を利用することにより、従来のプログラミング
言語上で容易に遠隔オブジェクトの生成やあるいは遠隔
オブジェクトの利用が可能となる。
As is apparent from these code examples, the use of this embodiment makes it possible to easily generate a remote object or use a remote object in a conventional programming language.

【0177】以下では、本実施形態の応用例等について
説明する。
In the following, application examples of the present embodiment will be described.

【0178】本実施形態は、例えば、遠隔地にある機器
や、計算機資源が乏しい制御機器のリモートメンテナン
スや監視・制御に応用可能であり、メンテナンス用のク
ライアント計算機や監視・制御用計算機からオブジェク
トを対象機器に転送し、クライアントホストとなる計算
機からこのオブジェクトを介してサーバホストとなるリ
モート機器のメンテナンスや監視・制御を行うことがで
きる。
The present embodiment can be applied to, for example, remote maintenance, monitoring and control of a device located in a remote place or a control device with scarce computer resources. Objects can be transferred from a maintenance client computer or a monitoring / control computer. The data is transferred to the target device, and the computer serving as the client host can perform maintenance, monitoring, and control of the remote device serving as the server host via this object.

【0179】図10に、リモート機器を含む本システム
の構成例を示す。図10中、1101はメンテナンス用
クライアント計算機で、クライアントホストに相当し、
1105は監視・制御用計算機で、クライアントホスト
に相当し、1103はメンテナンス対象リモート機器
で、サーバホストに相当する。また、メンテナンスクラ
イアント処理機構11011やリモート監視制御機構1
1051がこれまでの説明におけるユーザプログラムに
相当する。
FIG. 10 shows a configuration example of the present system including a remote device. In FIG. 10, reference numeral 1101 denotes a maintenance client computer, which corresponds to a client host;
Reference numeral 1105 denotes a monitoring / control computer, which corresponds to a client host. 1103 denotes a remote device to be maintained, which corresponds to a server host. Also, the maintenance client processing mechanism 11011 and the remote monitoring control mechanism 1
1051 corresponds to the user program in the above description.

【0180】例えばメンテナンスクライアント処理機構
11011がオブジェクトのリモート機器側での遠隔実
行を要求した場合、次のような手順になる。 (1)リモート機器1103に対して、メンテナンス用
クライアント計算機1101からメンテナンス機能を持
つオブジェクト11012を転送し、遠隔オブジェクト
11031を生成する。 (2)メンテナンス用クライアント計算機1101は、
自計算機上にインタフェースオブジェクト11013を
生成する。 (3)メンテナンス用クライアント計算機1101は、
インタフェースオブジェクト11013を介して、メン
テナンス処理要求をリモート機器1103上の遠隔オブ
ジェクト11031に送る。 (4)遠隔オブジェクト11031は、リモート機器1
103の機器制御機構1103と連携して、メンテナン
ス処理を行い、結果をメンテナンス用クライアント計算
機1101に返す。
For example, when the maintenance client processing mechanism 11011 requests remote execution of an object on the remote device side, the following procedure is performed. (1) The object 11012 having the maintenance function is transferred from the maintenance client computer 1101 to the remote device 1103, and the remote object 11031 is generated. (2) The maintenance client computer 1101
An interface object 11013 is generated on the own computer. (3) The maintenance client computer 1101
A maintenance processing request is sent to the remote object 11031 on the remote device 1103 via the interface object 11013. (4) The remote object 11031 is the remote device 1
The maintenance process is performed in cooperation with the device control mechanism 1103 of the computer 103, and the result is returned to the maintenance client computer 1101.

【0181】本実施形態においては、処理を転送して実
行した結果を返すだけの機構とは異なり、インタフェー
スオブジェクトを介して複数のメンテナンス処理を遠隔
オブジェクトに送ることができる。このため、遠隔オブ
ジェクトのメソッド呼び出しの結果として返されたオブ
ジェクトに応じて別の処理を行わせることや、対話的に
メンテナンス処理を行うことなどができる。
In this embodiment, a plurality of maintenance processes can be sent to a remote object via an interface object, unlike a mechanism that simply transfers the process and returns the execution result. For this reason, it is possible to perform another processing according to the object returned as a result of the method call of the remote object, or to perform maintenance processing interactively.

【0182】また、リモート機器(サーバホスト)と計
算機(クライアントホスト)との間の通信は、メンテナ
ンス作業に応じたインターフェースオブジェクトと遠隔
オブジェクトとにより行うことができる。このため、あ
らかじめ規定された通信方法による方式に比べて、通信
の負荷を減らすことが可能になる。
Further, communication between the remote device (server host) and the computer (client host) can be performed by an interface object and a remote object corresponding to the maintenance work. For this reason, it is possible to reduce the communication load as compared with a method using a communication method defined in advance.

【0183】また、メンテナンスの終了した段階で遠隔
オブジェクトを削除することにより計算機資源を節約す
ることが可能になる。
Further, by deleting the remote object at the stage when the maintenance is completed, it becomes possible to save computer resources.

【0184】また、監視・制御の場合も同様である。The same applies to monitoring and control.

【0185】例えば監視・制御用計算機1105がオブ
ジェクトのリモート機器側での遠隔実行を要求した場
合、次のような手順になる。 (1)リモート機器1103に対して、監視・制御用計
算機1105から監視・制御機能を持つオブジェクト1
1052を転送し、遠隔オブジェクト11032を生成
する。 (2)監視・制御用計算機1105は、自計算機上にイ
ンタフェースオブジェクト11053を生成する。 (3)監視・制御用計算機1105は、インタフェース
オブジェクト11053を介して、メンテナンス処理要
求をリモート機器1103上の遠隔オブジェクト110
32に送る。 (4)遠隔オブジェクト11032は、リモート機器1
103の機器制御機構1103と連携して、監視・制御
処理を行い、結果を監視・制御用計算機1105に返
す。
For example, when the monitoring / control computer 1105 requests remote execution of an object on the remote device side, the following procedure is performed. (1) An object 1 having a monitoring / control function from the monitoring / control computer 1105 to the remote device 1103
Transfer 1052 and create remote object 11032. (2) The monitoring / controlling computer 1105 generates an interface object 11053 on its own computer. (3) The monitoring / control computer 1105 sends a maintenance processing request to the remote object 1103 on the remote device 1103 via the interface object 11053.
Send to 32. (4) The remote object 11032 is the remote device 1
The monitoring and control process is performed in cooperation with the device control mechanism 1103 of 103, and the result is returned to the monitoring and control computer 1105.

【0186】このようにして、インタフェースオブジェ
クトを介して遠隔オブジェクトに処理要求し、リモート
機器を監視・制御することが可能となる。さらに、この
監視・制御に関する機能の追加・変更をクライアントホ
スト側から行うことが可能になる。
In this way, it becomes possible to request the remote object via the interface object for processing and monitor and control the remote device. Further, it is possible to add / change the function relating to the monitoring / control from the client host side.

【0187】なお、図10の例では、メンテナンス用ク
ライアント計算機と監視・制御用計算機とは別々に記述
してあるが、もちろん、メンテナンス用と監視・制御用
とが1台の計算機で兼用されていても構わない。
In the example of FIG. 10, the maintenance client computer and the monitoring / control computer are described separately, but of course, the maintenance computer and the monitoring / control computer are shared by one computer. It does not matter.

【0188】また、本実施形態は、例えば、WWWサー
バにおけるCGI(CommonGateway In
terface)やサーブレットなどのサーバ処理を、
別のサーバに分散処理させるシステムにも応用可能であ
る。
In this embodiment, for example, a CGI (Common Gateway In) in a WWW server is used.
server processing such as terface) and servlet,
The present invention is also applicable to a system in which another server performs distributed processing.

【0189】図11に、サーバ計算機を含む本システム
の構成例を示す。
FIG. 11 shows a configuration example of the present system including a server computer.

【0190】図11において、1200はサーバへサー
ビスを要求する要求元計算機であり、1201は主サー
バ計算機サーバで、クライアントホストに相当し、12
03および1204は第1および第2の副サーバ計算機
で、サーバホストに相当する。12001はサーバ処理
要求機構であり、12011は主サーバ要求処理機構で
あり、12042は副サーバ固有処理機構である。な
お、副サーバ計算機は1台であっても3台以上であって
ももちろん構わない。また、要求元計算機は通常複数台
存在する。
In FIG. 11, reference numeral 1200 denotes a request source computer for requesting a service from a server, 1201 denotes a main server computer server, which corresponds to a client host;
03 and 1204 are first and second secondary server computers, which correspond to server hosts. 12001 is a server processing request mechanism, 12011 is a main server request processing mechanism, and 12042 is a secondary server specific processing mechanism. The number of secondary server computers may be one or three or more. Usually, there are a plurality of requesting computers.

【0191】図11のシステムは、サーバ処理の要求を
受け付ける主サーバ計算機1201と、その処理の一部
ないし全部を実際に行う複数の副サーバ計算機120
3,1304がネットワークによって接続されている計
算機環境において、主サーバ計算機1201上のオブジ
ェクト12012,12014を副サーバ計算機120
3,1204に転送することで、主サーバ計算機120
1上で行う処理の一部ないし全部を副サーバ計算機12
03,1204に分散させるものである。
The system shown in FIG. 11 includes a main server computer 1201 for receiving a request for server processing, and a plurality of secondary server computers 120 for actually performing a part or all of the processing.
In a computer environment in which the objects 12012 and 12014 on the main server computer 1201 are connected to the secondary server
3, 1204, the main server computer 120
Part or all of the processing performed on the server 1
03,1204.

【0192】すなわち、 (1)主サーバ計算機1201には、サーバ処理をおこ
なうオブジェクト12012,12014が配置されて
いるとし、主サーバ1201計算機は、オブジェクト1
2012,12014を副サーバ計算機1203,12
04に転送して遠隔オブジェクト12031,1204
1を生成する。 (2)主サーバ計算機1201は、自計算機上にインタ
フェースオブジェクト12013,12015を生成す
る。 (3)主サーバ計算機1201は、処理要求に応じて、
1ないし複数の処理要求をインタフェースオブジェクト
12013,12015を介して、副サーバ計算機12
03,1204上の遠隔オブジェクト12031,12
041に送ることにより、処理を副サーバ計算機120
3,1204に分散させる。 (4)副サーバ計算機1203,1204上の遠隔オブ
ジェクト12031,12041は、インタフェースオ
ブジェクト12013,12015からの処理要求をオ
ブジェクトの定義に従い処理する。
That is, (1) It is assumed that objects 12012 and 12014 for performing server processing are arranged in the main server computer 1201, and the main server 1201 computer
2012 and 12014 to the secondary server computers 1203 and 12
04 and transferred to remote objects 12031 and 1204
1 is generated. (2) The main server computer 1201 generates interface objects 12013 and 12015 on its own computer. (3) The main server computer 1201 responds to the processing request by
One or more processing requests are sent to the secondary server computer 12 via the interface objects 12013 and 12015.
03,1204 remote objects 12031,12
041 to send the processing to the secondary server computer 120.
3,1204. (4) The remote objects 12031 and 12041 on the secondary server computers 1203 and 1204 process the processing requests from the interface objects 12013 and 12015 in accordance with the definition of the objects.

【0193】本実施形態においては、サーバ処理を行う
オブジェクトを主サーバ計算機から別の副サーバ計算機
に転送させることにより、主サーバ計算機の負荷を軽減
することができる。
In this embodiment, the load on the main server computer can be reduced by transferring the object for server processing from the main server computer to another sub server computer.

【0194】さらに、主サーバ計算機は、インタフェー
スオブジェクトを介して副サーバ計算機上の遠隔オブジ
ェクトに処理要求できるため、一つのサーバ処理を複数
の処理要求にわけることもできる。例えば、遠隔オブジ
ェクトの処理結果を元に、再度遠隔オブジェクトに別の
処理を行わせることなどができる。このため、単純に処
理を送信する場合に比べて、複雑な状態に応じた処理が
可能である。
Further, since the main server computer can make a processing request to a remote object on the sub server computer via the interface object, one server process can be divided into a plurality of processing requests. For example, it is possible to cause the remote object to perform another process again based on the processing result of the remote object. For this reason, a process according to a complicated state can be performed as compared with a case where the process is simply transmitted.

【0195】さらに、サーバ処理を行うオブジェクトが
あらかじめ複数の副サーバ計算機上に配置される必要が
無いため、オブジェクトの追加・変更は主サーバ計算機
上のみでよく、複数の分散されたサーバの管理が容易に
なる。
Further, since objects for performing server processing do not need to be arranged on a plurality of secondary server computers in advance, the addition / change of objects may be performed only on the main server computer, and the management of a plurality of distributed servers can be performed. It will be easier.

【0196】さらに、一つのサーバ処理が終了しても遠
隔オブジェクトとインタフェースオブジェクトを各サー
バ計算機上に残すことで、複数のサーバ処理要求にまた
がる処理を同一の遠隔オブジェクトに行わせることもで
きる。
Furthermore, even if one server process is completed, the remote object and the interface object are left on each server computer, so that the same remote object can perform a process that covers a plurality of server process requests.

【0197】一方、要求処理を終えた遠隔オブジェクト
を適宜破棄することで、副サーバ計算機上の記憶領域を
節約することもできる。
On the other hand, the storage area on the secondary server computer can be saved by appropriately discarding the remote object for which the request processing has been completed.

【0198】また、遠隔オブジェクトは副サーバ計算機
上にあらかじめ配置された別のオブジェクトに処理要求
することで、副サーバ計算機上にのみ存在するデータや
機器を用いる処理を行うことができる。
Further, the remote object can perform processing using data and devices existing only on the secondary server computer by making a processing request to another object arranged in advance on the secondary server computer.

【0199】なお、ここではオブジェクトのみを転送す
るとしたが、クラスをあらかじめ送信し、オブジェクト
は要求に応じたデータだけにすることで通信の負荷を軽
減することもできる。
Although only the object is transferred here, the communication load can be reduced by transmitting the class in advance and using only the data corresponding to the request.

【0200】なお、以上の各機能は、ソフトウェアとし
ても実現可能である。
Each of the above functions can be implemented as software.

【0201】また、本実施形態は、コンピュータに所定
の手段を実行させるための(あるいはコンピュータを所
定の手段として機能させるための、あるいはコンピュー
タに所定の機能を実現させるための)プログラムを記録
したコンピュータ読取り可能な記録媒体としても実施す
ることもできる。
Further, the present embodiment is a computer in which a program for causing a computer to execute predetermined means (or for causing a computer to function as predetermined means or for causing a computer to realize predetermined functions) is recorded. It can also be implemented as a readable recording medium.

【0202】本発明は、上述した実施の形態に限定され
るものではなく、その技術的範囲において種々変形して
実施することができる。
The present invention is not limited to the above-described embodiments, but can be implemented with various modifications within the technical scope.

【0203】[0203]

【発明の効果】本発明によれば、既存のオブジェクトを
利用して、実行時に、新たな振る舞いを持つクラスを生
成することができ、そしてその新たなクラスのオブジェ
クトを生成することが可能となる。
According to the present invention, a class having a new behavior can be generated at the time of execution by using an existing object, and an object of the new class can be generated. .

【0204】また、本発明によれば、実行時に、オブジ
ェクトをクライアントホストからサーバホストに転送
し、サーバホスト側に対応する遠隔オブジェクトを生成
し、クライアントホスト側に対応するインタフェースオ
ブジェクトを生成でき、クライアントホスト側からサー
バホスト側に転送したオブジェクトを遠隔実行すること
が可能となる。
According to the present invention, at the time of execution, an object can be transferred from a client host to a server host, a remote object corresponding to the server host can be generated, and an interface object corresponding to the client host can be generated. Objects transferred from the host to the server host can be remotely executed.

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

【図1】本発明の全体を示す構成図FIG. 1 is a configuration diagram showing the entirety of the present invention.

【図2】本発明の遠隔オブジェクト生成機構の構成を示
す図
FIG. 2 is a diagram showing a configuration of a remote object generation mechanism of the present invention.

【図3】本発明の実施形態の例について詳細な構成を示
す図
FIG. 3 is a diagram showing a detailed configuration of an example of an embodiment of the present invention.

【図4】本発明のインタフェースオブジェクト生成機構
について詳細な構成を示す図
FIG. 4 is a diagram showing a detailed configuration of an interface object generation mechanism of the present invention.

【図5】本発明の遠隔オブジェクト生成時の手順を示す
FIG. 5 is a diagram showing a procedure for generating a remote object according to the present invention.

【図6】本発明のインタフェースオブジェクト生成機構
の動作の手順を示す図
FIG. 6 is a diagram showing a procedure of an operation of the interface object generation mechanism of the present invention.

【図7】本発明のインタフェースオブジェクトを経由し
た遠隔オブジェクトのメソッドを呼び出す場合の手順を
示す図
FIG. 7 is a diagram showing a procedure for calling a method of a remote object via an interface object according to the present invention;

【図8】本発明の遠隔オブジェクト生成時のクラスの転
送に関する手順を示した図
FIG. 8 is a diagram showing a procedure for transferring a class when a remote object is generated according to the present invention.

【図9】本発明の利用形態についてシステム構成を示す
FIG. 9 is a diagram showing a system configuration for a use form of the present invention;

【図10】本発明を遠隔機器監視システムに用いた例を
示す図
FIG. 10 is a diagram showing an example in which the present invention is used in a remote device monitoring system.

【図11】本発明を分散されたサーバで構築されたシス
テムに用いた例を示す図
FIG. 11 is a diagram showing an example in which the present invention is used in a system constructed by distributed servers.

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

1,1001…クライアントホスト 2…通信路 3,1003…サーバホスト 11,101…遠隔オブジェクト生成管理機構 12,103…直列化オブジェクト送信機構 13,110…遠隔オブジェクト識別子受信機構 14,111…インタフェースオブジェクト生成機構 15…クラス送信機構 31,305…直列化オブジェクト受信機構 32,307…遠隔オブジェクト生成機構 33,308…遠隔オブジェクト識別子送信機構 34…クラス受信機構 41,51,141,151,163…クラス 61,71,160,161,171,1012,11
012,11052,12012,12014…オブジ
ェクト 62,162,1013,11013,11053,1
2013,12015…インタフェースオブジェクト 72,172,1031,11031,11032,1
2031,12041…遠隔オブジェクト 102…オブジェクト直列化機構 121…遠隔メソッド呼び出し送信機構 134…クラス転送送信機構 204,209,222,233…通信機構 306…直列化オブジェクト復元機構 323…遠隔メソッド呼び出し受信機構 332…クラス転送受信機構 331…クラス選択機構 1111…インタフェース取得機構 1112…オブジェクト生成機構 1113…クラス生成機構 1114…メソッド宣言機構 1115…データ宣言機構 1011…ユーザプログラム 1101…メンテナンス用クライアント計算機 1103…メンテナンス対象リモート機器 1105…監視・制御用計算機 11011…メンテナンスクライアント処理機構 11051…リモート監視制御機構 11033…機器制御機構 1200…要求元計算機 1201…主サーバ計算機 1203,1204…副サーバ計算機 12001…サーバ処理要求機構 12011…主サーバ処理要求機構 12042…副サーバ固有処理機構
1,1001 client host 2 communication path 3,1003 server host 11,101 remote object generation management mechanism 12,103 serialized object transmission mechanism 13,110 remote object identifier reception mechanism 14,111 interface object generation Mechanism 15 Class transmitting mechanism 31, 305 Serialized object receiving mechanism 32, 307 Remote object generating mechanism 33, 308 Remote object identifier transmitting mechanism 34 Class receiving mechanism 41, 51, 141, 151, 163 Class 61, 71,160,161,171,1012,11
012, 11052, 12012, 12014 ... objects 62, 162, 1013, 11013, 11053, 1
2013, 12015 ... interface objects 72, 172, 1031, 11031, 11032, 1
2031, 12041 remote object 102 object serialization mechanism 121 remote method call transmission mechanism 134 class transfer transmission mechanism 204, 209, 222, 233 communication mechanism 306 serialized object restoration mechanism 323 remote method call reception mechanism 332 ... Class transfer receiving mechanism 331 ... Class selection mechanism 1111 ... Interface acquisition mechanism 1112 ... Object creation mechanism 1113 ... Class creation mechanism 1114 ... Method declaration mechanism 1115 ... Data declaration mechanism 1011 ... User program 1101 ... Maintenance client computer 1103 ... Maintenance target remote Equipment 1105 Monitoring / control computer 11011 Maintenance client processing mechanism 11051 Remote monitoring control mechanism 11033 Equipment control Mechanism 1200 ... requesting computer 1201 ... main server computer 1203, 1204 ... secondary server computer 12001 ... server processing request mechanism 12011 ... main server processing request mechanism 12042 ... secondary server-specific processing mechanism

Claims (10)

【特許請求の範囲】[Claims] 【請求項1】オブジェクト指向プログラミング言語によ
り記述されたプログラムの実行時に新たなクラスを生成
するためのクラス生成方法であって、 指定されたオブジェクト識別子により示されるオブジェ
クトから、該オブジェクトの持つクラス識別子、および
該オブジェクトの持つメソッドの識別子と該メソッドの
引数の型を含むインタフェースとの組からなるインタフ
ェース情報を取得し、 新たにクラスを生成し、生成されたこのクラスに対し
て、前記オブジェクトから取得された前記インタフェー
ス情報に基づいて前記オブジェクトの持つインタフェー
スを複製したメソッドを宣言するとともに、必要に応じ
てデータを宣言することによって、新たなクラスを生成
することを特徴とするクラス生成方法。
1. A class generation method for generating a new class when a program described in an object-oriented programming language is executed, comprising: a class identifier of an object indicated by a specified object identifier; And interface information comprising a set of an interface including an identifier of a method of the object and an argument type of the method, a new class is generated, and the generated class is obtained from the object. A method of declaring a method that duplicates an interface of the object based on the interface information, and declaring data as necessary, thereby generating a new class.
【請求項2】請求項1に記載のクラス生成方法により生
成された新たなクラスから新たなオブジェクトを生成す
ることを特徴とするオブジェクト生成方法。
2. An object generation method, wherein a new object is generated from a new class generated by the class generation method according to claim 1.
【請求項3】オブジェクト指向プログラミング言語によ
り記述されたプログラムの実行時に、クライアントホス
ト上のユーザプログラムから指定されたオブジェクト識
別子により示されるオブジェクトをクライアントホスト
からサーバホストに転送して遠隔実行するために、該オ
ブジェクトの遠隔メソッド呼び出しを行うためのインタ
フェースオブジェクトをクライアントホスト上に生成す
るインタフェースオブジェクト生成方法であって、 前記指定されたオブジェクト識別子により示されるオブ
ジェクトから、該オブジェクトの持つクラス識別子、お
よび該オブジェクトの持つメソッドの識別子と該メソッ
ドの引数の型を含むインタフェースとの組からなるイン
タフェース情報を取得するとともに、前記オブジェクト
の前記サーバホストへの転送により該サーバホスト上に
生成される遠隔オブジェクトを示す遠隔オブジェクト識
別子を該サーバホストから取得し、 取得された前記クラス識別子の示すクラスの派生クラス
を生成し、 生成されたこの派生クラスに対して、前記オブジェクト
から取得された前記インタフェース情報に基づいて、前
記オブジェクトの持つメソッド識別子と同一のメソッド
識別子と、前記オブジェクトの持つインタフェースと同
一のインタフェースと、前記遠隔オブジェクト識別子の
持つ同一メソッド識別子に対するメソッド呼び出しを行
なうメソッド処理とを持つメソッドを宣言するととも
に、前記遠隔オブジェクト識別子をデータとして宣言す
ることによって、インタフェースオブジェクトのクラス
を生成し、 生成された前記インタフェースオブジェクトのクラスか
ら、前記インタフェースオブジェクトを生成することを
特徴とするインタフェースオブジェクト生成方法。
3. When executing a program described in an object-oriented programming language, an object indicated by an object identifier designated by a user program on a client host is transferred from the client host to the server host and remotely executed. An interface object generation method for generating, on a client host, an interface object for invoking a remote method of the object, comprising: a class identifier of the object; a class identifier of the object; Acquires interface information consisting of a pair of an identifier of a method possessed and an interface including an argument type of the method, and sends the object to the server host. Obtains a remote object identifier indicating a remote object generated on the server host by the transfer from the server host, generates a derived class of the class indicated by the obtained class identifier, and generates a derived class for the generated derived class. Based on the interface information obtained from the object, the same method identifier as the method identifier of the object, the same interface as the interface of the object, and the method for the same method identifier of the remote object identifier. Declaring a method having a method process for making a call, and declaring the remote object identifier as data, thereby generating a class of an interface object; Interface object generation method characterized by the class of extract, to produce the interface object.
【請求項4】生成された前記インタフェースオブジェク
トを示すオブジェクト識別子を、前記ユーザプログラム
に返すことを特徴とする請求項3に記載のインタフェー
スオブジェクト生成方法。
4. The method according to claim 3, wherein an object identifier indicating the generated interface object is returned to the user program.
【請求項5】前記オブジェクトを前記クライアントホス
トから前記サーバホストに転送する際、前記クライアン
トホスト側で前記オブジェクトを直列化し、この直列化
オブジェクトを前記クライアントホストから前記サーバ
ホストに転送し、前記サーバホスト側でこの転送された
直列化オブジェクトを復元することを特徴とする請求項
5に記載のインタフェースオブジェクト生成方法。
5. When the object is transferred from the client host to the server host, the object is serialized on the client host side, and the serialized object is transferred from the client host to the server host. 6. The method according to claim 5, wherein the transferred serialized object is restored on the side.
【請求項6】前記オブジェクトを前記クライアントホス
トから前記サーバホストに転送する際、オブジェクトの
クラスをも転送することを特徴とする請求項4に記載の
インタフェースオブジェクト生成方法。
6. The interface object generating method according to claim 4, wherein when transferring the object from the client host to the server host, an object class is also transferred.
【請求項7】前記オブジェクトを前記クライアントホス
トから前記サーバホストに転送する際に、オブジェクト
のクラスをも転送するか否かを、予め定められたクラス
選択方法によって決定することを特徴とする請求項4に
記載のインタフェースオブジェクト生成方法。
7. When transferring the object from the client host to the server host, whether or not to transfer the class of the object is determined by a predetermined class selection method. 5. The method for generating an interface object according to item 4.
【請求項8】オブジェクト指向プログラミング言語によ
り記述されたプログラムの実行時に、クライアントホス
ト上のユーザプログラムから指定されたオブジェクト識
別子により示されるオブジェクトをクライアントホスト
からサーバホストに転送して遠隔実行するオブジェクト
実行システムであって、 ユーザプログラムから指定されたオブジェクト識別子に
より示されるオブジェクトを前記クライアントホストか
ら前記サーバホストに転送する手段と、 前記サーバホスト上に、転送された前記オブジェクトに
対応する遠隔オブジェクトを生成する手段と、 前記クライアントホスト上に、前記オブジェクト識別子
により示されるオブジェクトおよび前記サーバホストか
ら通知された前記遠隔オブジェクトを示す遠隔オブジェ
クト識別子を基に、該遠隔オブジェクトの遠隔呼び出し
を行うインタフェースオブジェクトのクラスを生成する
手段と、 生成された前記インタフェースオブジェクトのクラスか
らインタフェースオブジェクトを生成する手段と、 生成された前記インタフェースオブジェクトを示すオブ
ジェクト識別子を、前記ユーザプログラムに返す手段と
を備えたことを特徴とするオブジェクト実行システム。
8. An object execution system for remotely executing a program described in an object-oriented programming language by transferring an object indicated by an object identifier designated by a user program on a client host from a client host to a server host. Means for transferring an object indicated by an object identifier designated by a user program from the client host to the server host; and means for generating a remote object corresponding to the transferred object on the server host. On the client host, an object indicated by the object identifier and a remote object identifier indicating the remote object notified from the server host. Means for generating a class of an interface object that makes a remote call to the remote object; means for generating an interface object from the generated class of the interface object; and an object identifier indicating the generated interface object. An object execution system, comprising: means for returning to a program.
【請求項9】前記インタフェースオブジェクトのクラス
を生成する手段は、 前記指定されたオブジェクト識別子により示されるオブ
ジェクトから、該オブジェクトの持つクラス識別子、お
よび該オブジェクトの持つメソッドの識別子と該メソッ
ドの引数の型を含むインタフェースとの組からなるイン
タフェース情報を取得するとともに、前記オブジェクト
の前記サーバホストへの転送により該サーバホスト上に
生成される遠隔オブジェクトを示す遠隔オブジェクト識
別子を該サーバホストから取得する手段と、 取得された前記クラス識別子の示すクラスの派生クラス
を生成する手段と、 生成されたこの派生クラスに対して、前記オブジェクト
から取得された前記インタフェース情報に基づいて、前
記オブジェクトの持つメソッド識別子と同一のメソッド
識別子と、前記オブジェクトの持つインタフェースと同
一のインタフェースと、前記遠隔オブジェクト識別子の
持つ同一メソッド識別子に対するメソッド呼び出しを行
なうメソッド処理とを持つメソッドを宣言するととも
に、前記遠隔オブジェクト識別子をデータとして宣言す
ることによって、インタフェースオブジェクトのクラス
を生成する手段とを含むことを特徴とする請求項8に記
載のオブジェクト実行システム。
9. A method for generating a class of the interface object, comprising: from an object indicated by the specified object identifier, a class identifier of the object, a method identifier of the object, and types of arguments of the method. Means for acquiring interface information consisting of a set with an interface including: and acquiring from the server host a remote object identifier indicating a remote object generated on the server host by transferring the object to the server host; Means for generating a derived class of the class indicated by the obtained class identifier; and, for the generated derived class, the same as the method identifier of the object based on the interface information obtained from the object. And a method having the same interface as the interface of the object, and a method process for performing a method call for the same method identifier of the remote object identifier, and declaring the remote object identifier as data. Means for generating a class of the interface object.
【請求項10】オブジェクト指向プログラミング言語に
より記述されたアプリケーションプログラムの実行時に
新たなクラスを生成するためのクラス生成プログラムで
あって、 指定されたオブジェクト識別子により示されるオブジェ
クトから、該オブジェクトの持つクラス識別子、および
該オブジェクトの持つメソッドの識別子と該メソッドの
引数の型を含むインタフェースとの組からなるインタフ
ェース情報を取得させ、 取得された前記クラス識別子の示すクラスの派生クラス
を生成させ、 生成されたこの派生クラスに対して、前記オブジェクト
から取得された前記インタフェース情報に基づいて前記
オブジェクトの持つインタフェースを複製したメソッド
を宣言するとともに、必要に応じてデータを宣言するこ
とによって、新たなクラスを生成させるためのクラス生
成プログラムを記録したコンピュータ読取り可能な記録
媒体。
10. A class generation program for generating a new class when an application program described in an object-oriented programming language is executed, wherein a class identifier of an object indicated by a specified object identifier is obtained. And interface information including a pair of an interface including a type of an argument of the method and an identifier of a method of the object, and generating a derived class of the class indicated by the obtained class identifier. For the derived class, declare a method that duplicates the interface of the object based on the interface information acquired from the object, and declare data as needed, thereby creating a new class. Computer-readable recording medium class generation program for generating a.
JP33169799A 1999-11-22 1999-11-22 Class generation method, object generation method, interface object generation method, and object execution system Pending JP2001147812A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP33169799A JP2001147812A (en) 1999-11-22 1999-11-22 Class generation method, object generation method, interface object generation method, and object execution system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP33169799A JP2001147812A (en) 1999-11-22 1999-11-22 Class generation method, object generation method, interface object generation method, and object execution system

Publications (1)

Publication Number Publication Date
JP2001147812A true JP2001147812A (en) 2001-05-29

Family

ID=18246584

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33169799A Pending JP2001147812A (en) 1999-11-22 1999-11-22 Class generation method, object generation method, interface object generation method, and object execution system

Country Status (1)

Country Link
JP (1) JP2001147812A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005088469A1 (en) * 2004-03-12 2005-09-22 Kanata Limited Information processing device, system, method, and recording medium
JP2009512014A (en) * 2005-10-06 2009-03-19 マイクロソフト コーポレーション Extensible mechanism for object composition
JP2009163766A (en) * 2009-04-13 2009-07-23 Kanata Ltd Information processing device, system, method, and program
US8312110B2 (en) 2004-03-12 2012-11-13 Kanata Limited Content manipulation using hierarchical address translations across a network

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005088469A1 (en) * 2004-03-12 2005-09-22 Kanata Limited Information processing device, system, method, and recording medium
US8312109B2 (en) 2004-03-12 2012-11-13 Kanata Limited Content manipulation using hierarchical address translations across a network
US8312110B2 (en) 2004-03-12 2012-11-13 Kanata Limited Content manipulation using hierarchical address translations across a network
JP2009512014A (en) * 2005-10-06 2009-03-19 マイクロソフト コーポレーション Extensible mechanism for object composition
JP2009163766A (en) * 2009-04-13 2009-07-23 Kanata Ltd Information processing device, system, method, and program

Similar Documents

Publication Publication Date Title
US9183066B2 (en) Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
US6463446B1 (en) Method and apparatus for transporting behavior in an event-based distributed system
US6134603A (en) Method and system for deterministic hashes to identify remote methods
US5687373A (en) Communications system for exchanging data between computers in a network and a method of operating such a system in which communications services are defined within a common object class
US6983285B2 (en) Apparatus and method for dynamically verifying information in a distributed system
US7058954B1 (en) System and method for facilitating dynamic loading of stub information to enable a program operating in one address space to invoke processing of a remote method or procedure in another space
US6487607B1 (en) Methods and apparatus for remote method invocation
US20080140857A1 (en) Service-oriented architecture and methods for direct invocation of services utilizing a service requestor invocation framework
US20080140760A1 (en) Service-oriented architecture system and methods supporting dynamic service provider versioning
US6708171B1 (en) Network proxy
US7607128B2 (en) Method and system for enabling a server application to be executed in the same virtual machine as a client application using direct object oriented programming method calls
US20080140759A1 (en) Dynamic service-oriented architecture system configuration and proxy object generation server architecture and methods
US6832223B1 (en) Method and system for facilitating access to a lookup service
US20030055862A1 (en) Methods, systems, and articles of manufacture for managing systems using operation objects
CN101197812B (en) A system and method for realizing page calling
US20020046228A1 (en) Method and system for facilitating access to a lookup service
US7089263B2 (en) Apparatus and method for dynamically verifying information in a distributed system
KR20020021237A (en) Realtime Middleware apparatus providing an integrated software development frameworks of embedded system and its service method
JP2001147812A (en) Class generation method, object generation method, interface object generation method, and object execution system
EP1058880A1 (en) Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
WO1999044134A1 (en) Method and system for facilitating access to a lookup service
US7849472B1 (en) System for instrumenting resources utilizing WS-management resource MBean wrappers for JAXB beans
US8132189B1 (en) WS-management resource MBean wrapper for JAXB beans
JP2002505478A (en) Deferred Restoration and Remote Loading of Objects for Event Notification in Distributed Systems
JP3027784B2 (en) Application cooperative operation system

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050329

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050802