JPH07225685A - Distributed object-oriented system construction method - Google Patents

Distributed object-oriented system construction method

Info

Publication number
JPH07225685A
JPH07225685A JP1509894A JP1509894A JPH07225685A JP H07225685 A JPH07225685 A JP H07225685A JP 1509894 A JP1509894 A JP 1509894A JP 1509894 A JP1509894 A JP 1509894A JP H07225685 A JPH07225685 A JP H07225685A
Authority
JP
Japan
Prior art keywords
class
procedure
server
message
class object
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
JP1509894A
Other languages
Japanese (ja)
Inventor
Tomoko Kimura
智子 木村
Masasuke Tominaga
雅介 冨永
Shigeki Tojima
重樹 東嶋
Takahiro Seki
隆広 関
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP1509894A priority Critical patent/JPH07225685A/en
Publication of JPH07225685A publication Critical patent/JPH07225685A/en
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

PURPOSE:To easily construct a distributed object-oriented system composed of partial systems described in an object-oriented language. CONSTITUTION:In a server application 1 described in the object-oriented language, a reception procedure group generation part 22 generates a reception procedure 31 and a dispatch procedure 32 from an open server object 11 extracted by the open class definition extraction part 21 of a compiler 2 for a server and the compiler 23 generates a server application execution form 8. The dispatch procedure 32 is stored in a class object management means 4 and a substitutive server object generation part 5 generates a substitutive server object 61 by the dispatch procedure 32. In a client application 6, a transmission procedure group generation part 71 generates a transmission procedure 81 and a transfer procedure 82 from the substitutive server object 61 by the substitutive class definition extraction part 71 of the compiler 7 for a client and the compiler 73 generates a client application execution form 8.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、ネットワークで接続さ
れている計算機システムにおいて、オブジェクト指向言
語で記述された部分システムが異なる複数の計算機上に
存在して、それらの部分システムが互いに通信を行うこ
とによって全体システムとして機能する分散オブジェク
ト指向システムの構築方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a computer system connected by a network, in which a plurality of subsystems described in an object-oriented language exist on different computers and these subsystems communicate with each other. The present invention relates to a method of constructing a distributed object-oriented system that functions as an overall system.

【0002】[0002]

【従来の技術】オブジェクト指向言語ではオブジェクト
間の通信をメッセージのやり取りによって記述している
が、従来ではある計算機のプロセス上で動作しているオ
ブジェクトよりメッセージ通信を用いて、同じプロセス
上で動作しているオブジェクトを利用するのと同様の方
法で、ネットワークで接続されている別の計算機のプロ
セス上で動作しているオブジェクトを利用することはで
きなかった。たとえ利用しようとしても、異なるプロセ
ス上で動作しているオブジェクトへメッセージ通信を行
う場合にはネットワークを介して通信を行わなければな
らないため、アプリケーション開発者はオブジェクトが
プロセス間の通信を行えるような手続きを別途記述する
必要がある。
2. Description of the Related Art In an object-oriented language, communication between objects is described by exchanging messages. However, conventionally, an object operating on a process of a computer is used for message communication to operate on the same process. It was not possible to use an object running on the process of another computer connected to the network in the same way as using the existing object. Even if you try to use it, if you want to communicate messages to objects running in different processes, you have to communicate over the network, so the application developer needs a procedure that allows objects to communicate between processes. Need to be described separately.

【0003】以下に単一のマシン用に構築されたアプリ
ケーションの改造方法を説明する。ここからは説明を簡
潔にするため、要求された処理を行うプロセスをサー
バ、処理を要求するプロセスをクライアントと呼ぶ。サ
ーバアプリケーション開発者があるオブジェクト指向言
語を用いて何らかの処理を行うオブジェクトを記述した
場合、そのオブジェクトがアプリケーション外部のプロ
セスからのリクエストも受信できるようにするためには
外部プロセスがプロセス間通信を介して送信したリクエ
ストを受信し、リクエストを解析後、処理要求先である
オブジェクトにメッセージをディスパッチし、メッセー
ジ実行後に実行結果をリクエストの送信元に返信する手
続きを記述する必要がある。
A method of modifying an application built for a single machine will be described below. From here onwards, for the sake of brevity, the process that performs the requested processing is called the server, and the process that requests the processing is called the client. When a server application developer writes an object that does some processing using an object-oriented language, the external process must use interprocess communication in order to receive the request from the process outside the application. It is necessary to describe the procedure that receives the sent request, analyzes the request, dispatches the message to the object that is the processing request destination, and returns the execution result to the request sender after executing the message.

【0004】逆に、クライアントアプリケーション開発
者があるオブジェクト指向言語を用いて記述したオブジ
ェクトより別のサーバアプリケーション開発者が記述し
たオブジェクトを利用する場合には、通常のメッセージ
送信を行うかわりにプロセス間通信を介してサーバ側の
プロセスへ処理要求を送信し、処理実行後にサーバ側プ
ロセスより返信されるメッセージ実行結果を受信する手
続きを記述する必要がある。
On the other hand, when a client application developer uses an object described by another server application developer rather than an object described by a certain object-oriented language, communication between processes is performed instead of normal message transmission. It is necessary to describe a procedure to send a processing request to the process on the server side via and to receive the message execution result returned from the server side process after the processing is executed.

【0005】以上のような通信手続きを記述するために
はアプリケーション開発者が(アプリケーション開発に
用いるオブジェクト指向言語に加えて)通信手続きを記
述する言語およびネットワークアーキテクチャの知識を
修得する必要があるため、実際に異なるプロセス上で動
作しているオブジェクトを利用することは困難であっ
た。現在の技術ではプロセス間通信に遠隔手続き呼びだ
し(Remote Procedure Call、以降RPCと呼ぶ)を用い
ることによりプロセス間通信を行う手続きを記述する手
間を軽減することができる。以下にアプリケーションの
改造にRPCを用いた方法を説明する。
In order to describe the above communication procedure, the application developer needs to acquire knowledge of the language for describing the communication procedure and the network architecture (in addition to the object-oriented language used for application development). It was difficult to actually use objects running on different processes. In the current technology, by using a remote procedure call (hereinafter, referred to as RPC) for inter-process communication, it is possible to reduce the labor for describing a procedure for performing inter-process communication. The method using RPC for application modification will be described below.

【0006】サーバアプリケーション開発者は何らかの
処理を行うオブジェクトを開発した場合、そのオブジェ
クトがアプリケーション外部のプロセスからのリクエス
トも受信できるようにするために、まず、インタフェー
ス定義ファイルをRPCをサポートするネットワークア
ーキテクチャが提供する宣言型の言語であるインタフェ
ース定義言語(Interface Definition Language、以降
IDLと呼ぶ)で記述する。RPCでのインタフェース
とはサーバアプリケーションが提供する関数をまとめた
単位のことであり、この場合には一つのオブジェクトが
一つのインタフェースに対応する。インタフェース定義
ファイルではインタフェースが提供する全ての関数のシ
グナチュアを記述する。ある関数のシグナチュアはその
関数の関数名、関数のパラメータ名、パラメータの型、
パラメータの種類(入力専用、出力専用あるいは入出力
用のパラメータなのか)、および関数の返還値の型のこ
とを指す。
When a server application developer develops an object that performs some processing, first, the interface definition file is set to a network architecture that supports RPC so that the object can receive a request from a process outside the application. It is described in an interface definition language (Interface Definition Language, hereinafter referred to as IDL) which is a declarative language provided. The interface in RPC is a unit of functions provided by the server application, and in this case, one object corresponds to one interface. The interface definition file describes the signatures of all the functions provided by the interface. The signature of a function is the function name of the function, the parameter name of the function, the parameter type,
It refers to the type of parameter (whether it is an input-only, output-only, or input / output parameter) and the return value type of the function.

【0007】インタフェース定義ファイルを記述したあ
とは(RPCをサポートするネットワークアーキテクチ
ャが提供する)IDLコンパイラを用いてインタフェー
ス定義ファイルよりサーバスタブを生成する。スタブに
はプロセス間の通信を実際に行う関数が定義されてお
り、サーバスタブにはインタフェース定義ファイルで定
義した関数に対して、それらの関数を呼び出すクライア
ントをエミュレートする関数が定義されている。サーバ
スタブはプロセス間通信を行う言語で生成されるため、
サーバアプリケーション開発者はつぎにサーバスタブ内
の関数が受信したRPCをメッセージに変換して処理要
求先であるオブジェクトにメッセージをディスパッチ
し、メッセージ実行後に実行結果をRPCの実行結果と
する手続きを記述する。さらに、サーバ起動時にRPC
受信のための通信経路を開いたり、サーバ終了時に通信
経路を閉じたりするサーバ初期化手続きをプロセス間通
信を行う言語で記述する。
After describing the interface definition file, the IDL compiler (provided by the network architecture that supports RPC) is used to generate the server stub from the interface definition file. Functions that actually perform communication between processes are defined in the stub, and functions that emulate a client that calls those functions are defined for the functions defined in the interface definition file in the server stub. Since the server stub is generated in the language for interprocess communication,
The server application developer then converts the RPC received by the function in the server stub into a message, dispatches the message to the object that is the processing request destination, and describes a procedure in which the execution result is the execution result of the RPC after the message is executed. Furthermore, when the server starts up, the RPC
A server initialization procedure that opens a communication path for reception and closes the communication path when the server terminates is described in the language for interprocess communication.

【0008】クライアントアプリケーション開発者が記
述したオブジェクトより別のサーバアプリケーション開
発者の記述したオブジェクトを利用する場合には、まず
利用するオブジェクトに対応するインタフェース定義フ
ァイルをIDLコンパイルしてクライアントスタブを生
成する。クライアントスタブにはクライアントに対して
インタフェース定義ファイルで定義されている関数をエ
ミュレートする関数が定義されている。つぎに利用する
オブジェクトへ通常のメッセージ送信を行うかわりにク
ライアントスタブ内の関数を呼び出す文を記述する。
When using an object described by a server application developer different from an object described by a client application developer, first, an interface definition file corresponding to the object to be used is IDL-compiled to generate a client stub. The client stub defines a function that emulates the function defined in the interface definition file for the client. Next, write a statement that calls a function in the client stub instead of sending a normal message to the object to be used.

【0009】以上のとおり、RPCを用いればプロセス
間通信を行う手続きだけは自動生成できる。しかし、こ
のためには、アプリケーション開発用のオブジェクト指
向言語とは別に、インタフェースを記述するためのID
Lという言語を修得しなければならないという問題があ
る。すなわち、言語を二つ以上修得しなければならない
のである。
As described above, if RPC is used, only the procedure for interprocess communication can be automatically generated. However, for this purpose, an ID for describing the interface is provided separately from the object-oriented language for application development.
There is a problem that you have to learn the language L. In other words, you have to acquire two or more languages.

【0010】RPC以外には分散オブジェクト指向シス
テムを構築するための分散オブジェクト指向環境として
つぎのようなものがある。分散オペレーティングシステ
ムであるCOOL (COOL: System Support for Distrib
uted Programming; Lea, Lodger et al.; Communicatio
ns of the ACM, Sep. 1993, pp. 37-47)ではサーバアプ
リケーション開発者がオブジェクトを記述するときにI
DLを用いてオブジェクトのインタフェース定義を記述
すれば、COOLがそのインタフェース定義より仮想的
なオブジェクトであるインタフェースオブジェクトを生
成する。この仕組みではプロセス間通信を行う手続きを
記述する必要はないが、サーバアプリケーション開発者
はRPCを直接用いる場合と同じくオブジェクト指向言
語に加えてIDLを修得する必要がある。
Other than RPC, there are the following distributed object oriented environments for constructing a distributed object oriented system. COOL (System Support for Distrib) is a distributed operating system.
uted Programming; Lea, Lodger et al .; Communicatio
ns of the ACM, Sep. 1993, pp. 37-47), when a server application developer describes an object, I
When the interface definition of an object is described using DL, COL creates an interface object which is a virtual object from the interface definition. With this mechanism, it is not necessary to describe the procedure for performing inter-process communication, but the server application developer needs to acquire IDL in addition to the object-oriented language as in the case of directly using RPC.

【0011】クライアント側のオブジェクトが別のオブ
ジェクトにメッセージ送信するときは、メッセージ送信
先であるオブジェクトが実際に動作している場所にかか
わらず、クライアント側で動作していて、利用したいオ
ブジェクトに対応しているインタフェースオブジェクト
にメッセージを送信する。メッセージを受信したインタ
フェースオブジェクトは、対応する送信先のオブジェク
トがクライアント側で動作しているのなら通常のメッセ
ージ送信を送信先のオブジェクトに行い、送信先のオブ
ジェクトがクライアント以外のプロセス上で動作してい
るのならRPCを介して処理要求をサーバ側のオブジェ
クトに送信する。
When an object on the client side sends a message to another object, it corresponds to the object that is operating on the client side and wants to use, regardless of where the message destination object is actually operating. Send a message to the interface object that is The interface object that received the message performs normal message transmission to the destination object if the corresponding destination object is operating on the client side, and the destination object operates on a process other than the client. If so, the processing request is sent to the server-side object via RPC.

【0012】分散オブジェクト指向言語であるDOWL
(The DOWL Distributed Object-Oriented Language; A
chauer, Bruno; Communications of the ACM, Sep. 199
3, pp. 48-55)や特開平5-12025では利用したいサーバ側
のオブジェクトに対応する仮想的なオブジェクトをクラ
イアント側で定義する。クライアントは同じプロセス上
で動作している仮想オブジェクトにメッセージ送信すれ
ば、メッセージがサーバ側のオブジェクトにプロセス間
通信を介して送信される。なお特開平5-12025は異なる
オブジェクト指向言語で記述されたオブジェクト間でメ
ッセージ送信を行う場合に限定されている。
DOWL, a distributed object-oriented language
(The DOWL Distributed Object-Oriented Language; A
chauer, Bruno; Communications of the ACM, Sep. 199
3, pp. 48-55) and Japanese Patent Laid-Open No. 5-12025, a client side defines a virtual object corresponding to the server side object to be used. If the client sends a message to a virtual object running on the same process, the message is sent to the server-side object via interprocess communication. Note that Japanese Patent Laid-Open No. 5-12025 is limited to the case of transmitting a message between objects described in different object-oriented languages.

【0013】この仕組みではサーバアプリケーション開
発者が仮想オブジェクトを記述してクライアントアプリ
ケーション開発者に提供するか、あるいはクライアント
アプリケーション開発者がサーバ側の(オブジェクト指
向言語での)オブジェクト定義を参照しながら仮想オブ
ジェクトを記述する必要がある。
In this mechanism, the server application developer describes a virtual object and provides it to the client application developer, or the client application developer refers to an object definition (in an object-oriented language) on the server side to create a virtual object. Need to be described.

【0014】[0014]

【発明が解決しようとする課題】以上に、あるプロセス
上で動作しているオブジェクトより通常のメッセージ通
信を用いて異なるプロセス上で動作しているオブジェク
トを利用できるようにするための方法を述べたが、いず
れの方法でもアプリケーション記述言語以外の言語を修
得して通信手続きやインタフェース定義ファイル等を記
述する必要があるため、一つのオブジェクト指向言語の
みで容易に分散オブジェクト指向システムを構築するこ
とはできない。
The method for making an object running on a different process available using an ordinary message communication than an object running on a certain process has been described above. However, it is not possible to easily build a distributed object-oriented system with only one object-oriented language because it is necessary to learn languages other than application description languages to describe communication procedures and interface definition files, etc. .

【0015】しかし、クライアント側のオブジェクトよ
り、クライアント内のオブジェクトへメッセージ送信す
るのと同様にサーバ側へのオブジェクトへメッセージ送
信することが可能になれば、アプリケーション開発者は
異なる複数の計算機上に存在する部分システムが互いに
通信を行うことによって全体システムとして機能するよ
うな分散オブジェクト指向システムを一つのオブジェク
ト指向言語のみで記述できるため、システム構築が容易
になる。
However, if it becomes possible to send a message from an object on the client side to an object on the server side in the same manner as a message can be sent to an object on the client side, the application developer exists on a plurality of different computers. A distributed object-oriented system that functions as an entire system by communicating with other partial systems can be described in only one object-oriented language, which facilitates system construction.

【0016】本発明はアプリケーション開発者が一つの
オブジェクト指向言語でアプリケーションを記述した場
合に、アプリケーションをネットワーク環境に対応させ
るための通信手続きを自動的に生成する分散オブジェク
トシステム構築方法を提供することを目的としている。
The present invention provides a distributed object system construction method for automatically generating a communication procedure for adapting an application to a network environment when the application developer describes the application in one object-oriented language. Has an aim.

【0017】[0017]

【課題を解決するための手段】本発明はあるオブジェク
ト指向言語でサーバアプリケーションを記述する際にア
プリケーション外部のプロセスからのリクエストも受信
できるクラスオブジェクトに公開クラスオブジェクトの
属性を継承させることにより、サーバアプリケーション
をコンパイルするときに抽出した公開クラスオブジェク
トの属性を継承するクラスオブジェクトの定義(以降公
開サーバオブジェクトとも呼ぶ)より、外部プロセスか
ら送信されたリクエストを受信する受信手続きおよび受
信手続きが受信したリクエストをメッセージ送信先であ
るオブジェクトにディスパッチするディスパッチ手続き
を生成することを特徴とする。
According to the present invention, when a server application is written in an object-oriented language, a class object that can receive a request from a process outside the application inherits the attributes of the public class object. From the definition of the class object that inherits the attributes of the public class object that was extracted when compiling (from now on, also referred to as public server object), the receiving procedure that receives the request sent from the external process and the request received by the receiving procedure as a message It is characterized by creating a dispatch procedure for dispatching to an object which is a destination.

【0018】本発明は、また、公開サーバオブジェクト
をサーバアプリケーションをコンパイルした後にクラス
オブジェクト管理手段に登録し、公開サーバオブジェク
ト登録時に公開サーバオブジェクトに対応するディスパ
ッチ手続きをクラスオブジェクト管理手段に蓄積するこ
とを特徴とする。
According to the present invention, the public server object is registered in the class object management means after compiling the server application, and the dispatch procedure corresponding to the public server object is stored in the class object management means when the public server object is registered. Characterize.

【0019】本発明は、さらに、あるオブジェクト指向
言語でクライアントアプリケーションを記述する際に、
クラスオブジェクト管理手段を検索後に利用する公開サ
ーバオブジェクトを指定することにより、指定された公
開サーバオブジェクトに対応し、クラスオブジェクト管
理手段に蓄積されたディスパッチ手続きより、指定され
た公開サーバオブジェクトに対応する仮想的なクラスで
あり、代理クラスオブジェクトの属性を継承するクラス
オブジェクト(以降代理サーバオブジェクトとも呼ぶ)
を生成し、生成された代理サーバオブジェクトにメッセ
ージを送信するクライアントアプリケーションプログラ
ムを記述後、クライアントアプリケーションをコンパイ
ルするときに抽出した代理サーバオブジェクトの定義よ
り、外部プロセス上で動作している公開サーバオブジェ
クトへリクエストを送信する送信手続き、および代理サ
ーバオブジェクトへのメッセージ送信を送信手続きにデ
ィスパッチする転送手続きを生成することを特徴とす
る。
The present invention further provides for writing a client application in an object-oriented language,
By designating a public server object to be used after searching the class object management means, a virtual server corresponding to the designated public server object, and a virtual server corresponding to the designated public server object by the dispatch procedure accumulated in the class object management means. Class object that inherits the attributes of the proxy class object (hereinafter also referred to as the proxy server object)
After writing a client application program that generates a message and sends a message to the generated proxy server object, from the definition of the proxy server object extracted when compiling the client application, to the public server object operating on the external process It is characterized by generating a sending procedure for sending a request and a forwarding procedure for dispatching a message sending to a proxy server object to the sending procedure.

【0020】[0020]

【作用】サーバアプリケーション開発者はアプリケーシ
ョン記述時に、アプリケーション外部のプロセスからの
リクエストも受信できるクラスオブジェクトに公開クラ
スオブジェクトの属性を継承させるだけで、システムは
アプリケーションをコンパイルする際に公開サーバオブ
ジェクトが外部プロセスからのリクエストを受信するた
めに必要な受信手続きおよびディスパッチ手続きを生成
して、サーバアプリケーション実行形を生成する。さら
に公開サーバオブジェクトをクラスオブジェクト管理手
段に登録することにより、他のユーザがそのオブジェク
トを再利用することが可能になる。
Function When the application is written, the server application developer only needs to inherit the attributes of the public class object from the class object that can receive requests from processes outside the application. Generate the reception procedure and dispatch procedure necessary to receive the request from the server application execution form. Furthermore, by registering the public server object in the class object management means, other users can reuse the object.

【0021】クライアントアプリケーション開発者はク
ラスオブジェクト管理手段を検索後、利用するクラスオ
ブジェクトを指定して代理サーバオブジェクトを生成す
る。クライアントは代理サーバオブジェクトにメッセー
ジ送信するだけでサーバの公開サーバオブジェクトを利
用することが可能になる。システムはアプリケーション
をコンパイルする際に代理サーバブジェクトに送信され
たメッセージを対応する公開サーバオブジェクトに転送
するために必要な送信手続きおよび転送手続きを生成し
てクライアントアプリケーション実行形を生成する。
After searching the class object management means, the client application developer specifies a class object to be used and creates a proxy server object. The client can use the public server object of the server only by sending a message to the proxy server object. When the system compiles the application, it generates the send procedure and the transfer procedure necessary to transfer the message sent to the proxy server object to the corresponding public server object, and generates the client application executable form.

【0022】[0022]

【実施例】以下、本発明の1実施例を詳細に説明する。
図1は本発明の1実施例であるオブジェクト指向言語シ
ステムの構成を示すブロック図である。1はサーバアプ
リケーション、11は公開クラスオブジェクトの属性を
継承するクラスオブジェクトである公開サーバオブジェ
クト、2はサーバ用コンパイラ、21はサーバアプリケ
ーションより公開サーバオブジェクトを抽出する公開ク
ラス定義抽出部、22は抽出した公開サーバオブジェク
ト11より受信手続き31およびディスパッチ手続き3
2を生成する受信手続き群生成部、23はコンパイラ、
3はサーバアプリケーション1、受信手続き31、およ
びディスパッチ手続き32をコンパイルして生成したサ
ーバアプリケーション実行形である。
EXAMPLE An example of the present invention will be described in detail below.
FIG. 1 is a block diagram showing the configuration of an object-oriented language system which is an embodiment of the present invention. 1 is a server application, 11 is a public server object that is a class object that inherits the attributes of a public class object, 2 is a server compiler, 21 is a public class definition extraction unit that extracts a public server object from a server application, and 22 is an extraction Receive procedure 31 and dispatch procedure 3 from the public server object 11
2, a reception procedure group generation unit for generating 2, a compiler for 23,
Reference numeral 3 is a server application execution type generated by compiling the server application 1, the reception procedure 31, and the dispatch procedure 32.

【0023】クラスオブジェクト管理手段4は公開サー
バオブジェクト11を登録し、登録する公開サーバオブ
ジェクト11の定義より生成されたディスパッチ手続き
32を蓄積する。代理サーバオブジェクト生成部5はク
ラスオブジェクト管理手段4を検索後、利用する公開サ
ーバオブジェクト11に対応するディスパッチ手続き3
2より代理サーバオブジェクト61を生成する。
The class object management means 4 registers the public server object 11 and stores the dispatch procedure 32 generated from the definition of the public server object 11 to be registered. After searching the class object management means 4, the proxy server object generator 5 dispatches the dispatch procedure 3 corresponding to the public server object 11 to be used.
The proxy server object 61 is generated from 2.

【0024】6はクライアントアプリケーション、7は
クライアント用コンパイラ、71はクライアントアプリ
ケーションより代理クラスオブジェクトの属性を継承す
るクラスオブジェクトの定義である代理サーバオブジェ
クトを抽出する代理クラス定義抽出部、72は抽出した
代理サーバオブジェクト61より送信手続き81および
転送手続き82を生成する送信手続き群生成部、73は
コンパイラ、8はクライアントアプリケーション、送信
手続き81、および転送手続き82をコンパイルして生
成したクライアントアプリケーション実行形である。
Reference numeral 6 is a client application, 7 is a client compiler, 71 is a proxy class definition extractor for extracting a proxy server object which is a definition of a class object that inherits the attributes of the proxy class object from the client application, and 72 is the extracted proxy. A transmission procedure group generation unit 73 generates a transmission procedure 81 and a transfer procedure 82 from the server object 61, 73 is a compiler, and 8 is a client application execution type generated by compiling the client application, the transmission procedure 81, and the transfer procedure 82.

【0025】つぎに、図2のフローチャートにもとづい
て図1のサーバアプリケーション開発のステップを説明
する。サーバアプリケーション開発のステップは以下の
とおりである。まず、サーバアプリケーション開発者
は、あるオブジェクト指向言語でサーバアプリケーショ
ン1を記述する(901)。ここでは、例として、空港
に離発着する航空機のデータより必要に応じてターミナ
ルビルからの送迎用のバスを割り当てるアプリケーショ
ンを記述することとする。
Next, the steps for developing the server application shown in FIG. 1 will be described with reference to the flowchart shown in FIG. The steps of server application development are as follows. First, the server application developer describes the server application 1 in a certain object-oriented language (901). Here, as an example, an application will be described in which a bus for transportation from / to a terminal building is allocated as needed based on data of aircraft departing / arriving at an airport.

【0026】サーバアプリケーション開発者はつぎにス
テップ(901)で記述したクラスのうち、アプリケー
ション外部よりメッセージ送信できるクラスに公開クラ
スオブジェクトの属性を継承させる(902)。サーバ
アプリケーション内のクラスは公開クラスオブジェクト
の属性を継承させなければすべて非公開クラスとみなさ
れる。非公開オブジェクトにアプリケーション外部より
メッセージを送信することはできない。しかし、サーバ
アプリケーション内のクラスは公開クラスオブジェクト
の属性を継承させることにより、初めてアプリケーショ
ンが動作しているプロセス以外のプロセスより公開した
クラスオブジェクトにメッセージ送信することが可能に
なる。
The server application developer then inherits the attributes of the public class object from the classes described in step (901) to the class that can send a message from outside the application (902). All classes in the server application are considered as private classes unless they inherit the attributes of public class objects. Messages cannot be sent to private objects from outside the application. However, by allowing the class in the server application to inherit the attributes of the public class object, it becomes possible to send a message to the public class object from a process other than the process in which the application is operating for the first time.

【0027】サーバアプリケーション1では送迎バスの
割り当てを行うオブジェクトの他に航空機の機種や送迎
用に使用するバスの情報等がオブジェクトとして定義さ
れている。この実施例では、アプリケーションで内部的
にしか利用しないオブジェクトはすべて非公開オブジェ
クトとして定義してスケジュール作成を行うオブジェク
ト11のみ公開クラスオブジェクトの属性を継承させて
公開サーバオブジェクトとすることにする。公開するク
ラスオブジェクト11に公開クラスオブジェクトの属性
を継承させた後はサーバ用コンパイラ2を用いてサーバ
アプリケーション実行形3を生成する。サーバ用コンパ
イラ2はまず公開クラス定義抽出部21を用いて公開ク
ラスオブジェクトの属性を継承したクラスオブジェクト
の定義を抽出する(903)。この実施例ではサーバア
プリケーション1よりスケジュール作成を行うオブジェ
クト11の定義を抽出する。
In the server application 1, in addition to the object that assigns a shuttle bus, information such as the aircraft model and the bus used for transportation is defined as an object. In this embodiment, all objects that are used only internally by the application are defined as private objects, and only the object 11 that creates a schedule inherits the attributes of the public class object to become a public server object. After the public class object 11 is made to inherit the attributes of the public class object, the server compiler 2 is used to generate the server application executable form 3. The server compiler 2 first uses the public class definition extracting unit 21 to extract the definition of the class object that inherits the attributes of the public class object (903). In this embodiment, the definition of the object 11 for creating a schedule is extracted from the server application 1.

【0028】つぎに、受信手続き生成部22を用いて抽
出した公開サーバオブジェクト11の定義より受信手続
き31およびディスパッチ手続き32を生成する(90
4)。この例では、サーバアプリケーション1が動作し
ているプロセス以外のプロセスが送信する公開サーバオ
ブジェクト11へのメッセージを受信できる受信手続き
31およびディスパッチ手続き32を生成する。生成物
が揃ったらコンパイラ23はサーバアプリケーション
1、受信手続き31、およびディスパッチ手続き32を
コンパイル、リンクして(905)サーバアプリケーシ
ョン実行形3を生成する(906)。
Next, a reception procedure 31 and a dispatch procedure 32 are generated from the definition of the public server object 11 extracted by the reception procedure generation unit 22 (90).
4). In this example, a reception procedure 31 and a dispatch procedure 32 that can receive a message to the public server object 11 transmitted by a process other than the process in which the server application 1 is operating are generated. When the products are prepared, the compiler 23 compiles and links the server application 1, the reception procedure 31, and the dispatch procedure 32 (905) to generate the server application executable form 3 (906).

【0029】公開したクラスオブジェクト11を他のユ
ーザも利用可能にするのなら、サーバアプリケーション
実行形3を生成後、クラスオブジェクト管理手段4にク
ラスオブジェクト11を登録して、クラスオブジェクト
11の定義より生成されたディスパッチ手続き32を蓄
積する(907)。公開したクラスオブジェクトを登録
するときには、対応するディスパッチ手続きの他にその
オブジェクトの利用方法を説明したドキュメント等も合
わせて登録することも可能である。
In order to make the published class object 11 available to other users, after the server application execution form 3 is created, the class object 11 is registered in the class object management means 4 and created from the definition of the class object 11. The dispatch procedure 32 thus created is accumulated (907). When registering a published class object, it is possible to register a document that describes how to use the object in addition to the corresponding dispatch procedure.

【0030】図3のフローチャートは図2のステップ
(903)、図4および図5のフローチャートは図2の
ステップ(904)の処理ステップの詳細な処理手順を
示すフローチャートである。以下にそれぞれの処理手順
の説明を行う。
The flowchart of FIG. 3 is a flow chart showing the detailed processing procedure of the processing step of step (903) of FIG. 2 and the processing steps of step (904) of FIG. 2 are shown. Each processing procedure will be described below.

【0031】図3の公開クラス定義の抽出ステップは以
下のとおりである。入力はサーバアプリケーションであ
り、出力は公開クラスオブジェクトの属性を継承したク
ラスオブジェクトの定義である。まず、処理するクラス
定義があるか調べる(911)。あればステップ(91
2)を実行し、なければ公開クラス定義の抽出を終了す
る。処理するクラス定義があればそのクラス定義が公開
クラスオブジェクトの属性を継承しているか調べる(9
12)。継承していればステップ(913)を実行し、
なければステップ(911)を実行する。公開クラスオ
ブジェクトの属性を継承していれば、クラス定義を抽出
する(913)。この実施例ではサーバアプリケーショ
ン1より公開したクラスオブジェクト11のクラス定義
が抽出される。
The steps of extracting the public class definition shown in FIG. 3 are as follows. The input is the server application and the output is the definition of the class object that inherits the attributes of the public class object. First, it is checked whether there is a class definition to be processed (911). If there are steps (91
2) is executed, and if not, the extraction of the public class definition is completed. If there is a class definition to process, check whether the class definition inherits the attributes of the public class object (9
12). If it is inherited, execute step (913),
If not, step (911) is executed. If the attributes of the public class object are inherited, the class definition is extracted (913). In this embodiment, the class definition of the class object 11 published by the server application 1 is extracted.

【0032】図4の受信手続きの生成ステップは以下の
とおりである。入力は公開クラス定義の抽出ステップで
抽出されたクラス定義であり、出力は受信手続き31で
ある。
The steps of generating the reception procedure of FIG. 4 are as follows. The input is the class definition extracted in the public class definition extraction step, and the output is the reception procedure 31.

【0033】まず、処理するメソッドがあるか調べる
(921)。あればステップ(922)を実行し、なけ
れば受信手続きの生成を終了する。処理するメソッドが
あれば、まず、関数ヘッダを生成する(922)。関数
名はメソッド名をもとに適当な名前を生成する。つぎに
関数の入出力定義を生成する。関数のパラメータ名はメ
ソッド名と同じ名前を用いる。関数パラメータのデータ
タイプはメソッドのパラメータのデータタイプをプロセ
ス間通信に用いる言語のデータタイプに変換する。
First, it is checked whether there is a method to be processed (921). If there is, step (922) is executed, and if not, the generation of the receiving procedure is ended. If there is a method to process, a function header is first generated (922). For the function name, an appropriate name is generated based on the method name. Next, the input / output definition of the function is generated. The function parameter name uses the same name as the method name. The data type of the function parameter converts the data type of the method parameter into the data type of the language used for interprocess communication.

【0034】関数ヘッダ生成後は関数の本体を生成す
る。まず送信手続きより通信パケットを受信する文を生
成する(923)。あるクライアントアプリケーション
の送信手続きはプロセス間通信を用いてサーバ側の受信
手続きに処理要求を送信する。
After generating the function header, the body of the function is generated. First, a sentence for receiving a communication packet is generated by the transmission procedure (923). A transmission procedure of a client application uses interprocess communication to transmit a processing request to a reception procedure on the server side.

【0035】つぎに、入力用関数パラメータを通信パケ
ットより取り出す文を生成する(924)。通信パケッ
トの解体はプロセス間通信に用いる通信プロトコルに従
った方法で行う。通信パケットの解体のあとはディスパ
ッチ手続き呼びだし文を生成する(925)。処理要求
先であるオブジェクトへのメッセージ送信はディスパッ
チ手続き呼び出しが行う。
Next, a statement for extracting the input function parameter from the communication packet is generated (924). The communication packet is disassembled by a method according to the communication protocol used for interprocess communication. After disassembling the communication packet, a dispatch procedure call statement is generated (925). A dispatch procedure call is used to send a message to an object that is a processing request destination.

【0036】メッセージ送信の結果はディスパッチ手続
きを介して受信手続きに返されるので結果を出力用関数
パラメータとして返信パケットに格納する文を生成する
(926)。返信パケットの作成はプロセス間通信に用
いる通信プロトコルに従った方法で行う。最後に、返信
パケットを通信パケットを送信してきた送信手続きに送
信する文を生成する(927)。これで関数定義を一つ
生成したのでステップ(921)に戻る。この実施例で
は公開サーバオブジェクト11の定義より受信手続き3
1が生成される。
Since the result of the message transmission is returned to the receiving procedure via the dispatch procedure, a statement for storing the result in the reply packet as an output function parameter is generated (926). The reply packet is created by a method according to the communication protocol used for interprocess communication. Finally, a sentence for transmitting the reply packet to the transmission procedure that has transmitted the communication packet is generated (927). Now that one function definition has been generated, the process returns to step (921). In this embodiment, the receiving procedure 3 is defined from the definition of the public server object 11.
1 is generated.

【0037】図5のディスパッチ手続きの生成ステップ
は以下のとおりである。入力は公開クラス定義の抽出ス
テップで抽出されたクラス定義であり、出力はディスパ
ッチ手続きである。まず、処理するメソッドがあるか調
べる(931)。あればステップ(932)を実行し、
なければディスパッチ手続きの生成を終了する。処理す
るメソッドがあれば、まず、関数ヘッダを生成する(9
32)。関数名はメソッド名をもとに適当な名前を生成
する。つぎに、関数の入出力定義を生成する。関数のパ
ラメータ名はメソッド名と同じ名前を用いる。関数パラ
メータのデータタイプはメソッドのパラメータのデータ
タイプをプロセス間通信に用いる言語のデータタイプに
変換する。
The steps of generating the dispatch procedure of FIG. 5 are as follows. The input is the class definition extracted in the public class definition extraction step, and the output is the dispatch procedure. First, it is checked if there is a method to process (931). If there is, execute step (932),
If not, the generation of the dispatch procedure ends. If there is a method to process, first create a function header (9
32). For the function name, an appropriate name is generated based on the method name. Next, the input / output definition of the function is generated. The function parameter name uses the same name as the method name. The data type of the function parameter converts the data type of the method parameter into the data type of the language used for interprocess communication.

【0038】関数ヘッダ生成のつぎは関数の本体を生成
する。まず関数パラメータをもとに処理要求先であるオ
ブジェクトへのメッセージ送信文を復元する文を生成す
る(933)。つぎに、復元されたメッセージを実行さ
せる文を生成し(934)、最後にメッセージ実行結果
を関数の実行結果とする文を生成する(935)。これ
で関数定義を一つ生成したのでステップ(931)に戻
る。この実施例では、公開サーバオブジェクト11の定
義よりディスパッチ手続き32が生成される。
After generating the function header, the body of the function is generated. First, based on the function parameter, a statement for restoring the message transmission statement to the object which is the processing request destination is generated (933). Next, a statement that causes the restored message to be executed is generated (934), and finally a statement that uses the message execution result as the function execution result is generated (935). Now that one function definition has been generated, the process returns to step (931). In this embodiment, the dispatch procedure 32 is generated from the definition of the public server object 11.

【0039】以上で、サーバアプリケーション開発ステ
ップの説明は終りである。ここからは図6のフローチャ
ートにもとづいて図1のクライアントアプリケーション
開発のステップを説明する。クライアントアプリケーシ
ョン開発のステップは以下のとおりである。
This concludes the description of the server application development steps. From here, the steps of developing the client application of FIG. 1 will be described based on the flowchart of FIG. The steps of client application development are as follows.

【0040】まず、クライアントアプリケーション開発
者はクラスオブジェクト管理手段4で利用可能なクラス
オブジェクトを検索する(941)。検索時には登録さ
れているクラスオブジェクトの情報の他、オブジェクト
の利用方法を説明したドキュメント等が登録されていれ
ば、それらのファイルも合わせて見ることができる。
First, the client application developer searches the class objects available in the class object management means 4 (941). At the time of search, in addition to the information on the registered class object, if a document or the like explaining how to use the object is registered, those files can also be viewed.

【0041】クラスオブジェクト管理手段では、登録さ
れているクラスオブジェクトのメソッドのヘッダしか見
ることができない。ヘッダは蓄積されているディスパッ
チ手続きをもとに生成される。
The class object management means can only see the method header of the registered class object. The header is generated based on the accumulated dispatch procedure.

【0042】クライアントアプリケーション開発者が利
用できるクラスオブジェクトがあれば、クラスオブジェ
クト管理手段4でそのクラスオブジェクトを利用すると
指定する。この例では、クライアントアプリケーション
開発者がクライアントアプリケーション6として空港管
理アプリケーションを開発していて、サーバとして空港
のターミナルビルから航空機への送迎用のバスを割り当
てる公開サーバオブジェクト11を利用することとす
る。
If there is a class object that can be used by the client application developer, the class object management means 4 specifies that the class object will be used. In this example, it is assumed that the client application developer is developing an airport management application as the client application 6 and uses the public server object 11 that allocates a bus for transportation from an airport terminal building to an aircraft as a server.

【0043】利用するクラスオブジェクトを指定後に、
クライアントアプリケーション開発者は、代理サーバオ
ブジェクト生成部5を用いて、(942)で指定したク
ラスオブジェクトに対応する代理サーバオブジェクトを
クラスオブジェクト管理手段4に蓄積済みのディスパッ
チ手続き32より生成する(943)。この実施例で
は、スケジュール作成を行う公開サーバオブジェクト1
1に対応する代理サーバオブジェクト61が生成され
る。代理サーバオブジェクトは代理サーバクラスの属性
を継承しているクラスオブジェクトであり、クライアン
トは代理サーバオブジェクトにメッセージを送信するこ
とにより、対応するサーバの公開クラスオブジェクトに
メッセージを送信することが可能になる。
After designating the class object to be used,
The client application developer uses the proxy server object generation unit 5 to generate a proxy server object corresponding to the class object specified in (942) from the dispatch procedure 32 stored in the class object management means 4 (943). In this embodiment, a public server object 1 that creates a schedule
The proxy server object 61 corresponding to 1 is generated. The proxy server object is a class object that inherits the attributes of the proxy server class, and the client can send a message to the proxy server object to send a message to the public class object of the corresponding server.

【0044】つぎに、クライアントアプリケーション開
発者は、あるオブジェクト指向言語で記述されたクライ
アントアプリケーションより代理サーバオブジェクトに
メッセージ送信する文を記述する(944)。この例で
は、クライアントアプリケーション6である空港管理ア
プリケーションで航空機のフライトを空港の各ゲートに
割り当てた後に、送迎用バスのスケジュールを作成する
ために代理サーバオブジェクト61にメッセージ送信す
ることとする。クライアントアプリケーションが完成し
た後はクライアント用コンパイラ7を用いてクライアン
トアプリケーション実行形8を生成する。クライアント
用コンパイラ7は、まず、代理クラス定義抽出部71を
用いて代理クラスオブジェクトの属性を継承したクラス
オブジェクトの定義を抽出する(945)。
Next, the client application developer writes a statement for sending a message to the proxy server object from the client application written in a certain object-oriented language (944). In this example, it is assumed that the airport management application, which is the client application 6, allocates the flight of the aircraft to each gate of the airport and then sends a message to the proxy server object 61 to create the schedule of the transfer bus. After the client application is completed, the client compiler 7 is used to generate the client application executable form 8. The client compiler 7 first uses the proxy class definition extraction unit 71 to extract the definition of the class object that inherits the attributes of the proxy class object (945).

【0045】つぎに、送信手続き群生成部を72を用い
て抽出したオブジェクト61の定義より、送信手続き8
1および転送手続き82を生成する(946)。この実
施例では、クライアントアプリケーション6が代理サー
バオブジェクト61に送信したメッセージをサーバアプ
リケーション1の公開サーバオブジェクト11に転送す
る送信手続き81および転送手続き82を生成する。生
成物が揃ったらコンパイラ73はクライアントアプリケ
ーション6、送信手続き81、および転送手続き82を
コンパイル、リンクして(947)クライアントアプリ
ケーション実行形8を生成する(948)。
Next, from the definition of the object 61 extracted by the transmission procedure group generation unit 72, the transmission procedure 8
1 and the transfer procedure 82 are generated (946). In this embodiment, a transmission procedure 81 and a transfer procedure 82 for transferring the message transmitted from the client application 6 to the proxy server object 61 to the public server object 11 of the server application 1 are generated. When the products are prepared, the compiler 73 compiles and links the client application 6, the transmission procedure 81, and the transfer procedure 82 (947) to generate the client application executable form 8 (948).

【0046】図7および図8のフローチャートは、それ
ぞれ図6のステップ(943)、ステップ(945)、
図9および図10のフローチャートは、図6のステップ
(946)の処理ステップの処理ステップの詳細な処理
手順を示すフローチャートである。以下にそれぞれの処
理手順の説明を行う。
The flow charts of FIGS. 7 and 8 respectively include steps (943), (945), and (945) of FIG.
The flowcharts of FIGS. 9 and 10 are flowcharts showing the detailed processing procedure of the processing step of the processing step of step (946) in FIG. Each processing procedure will be described below.

【0047】図7の代理サーバオブジェクトの生成ステ
ップは以下のとおりである。入力はクラスオブジェクト
管理手段4に蓄積されたディスパッチ手続きであり、出
力は代理クラスオブジェクトの属性を継承したクラスオ
ブジェクトである代理サーバオブジェクトである。
The steps for generating the proxy server object shown in FIG. 7 are as follows. The input is a dispatch procedure stored in the class object management means 4, and the output is a proxy server object which is a class object inheriting the attributes of the proxy class object.

【0048】まず、クラスオブジェクトを生成する(9
51)。クラスオブジェクトの名前は対応するサーバ側
の公開サーバオブジェクトの名前と同じ名前を生成す
る。つぎに処理する関数があるか調べる(952)。あ
ればステップ(953)を実行し、なければ代理サーバ
オブジェクトの生成を終了する。処理する関数があれ
ば、まず、メソッドのヘッダを生成する(953)。メ
ソッド名は対応するサーバ側の公開オブジェクトのメソ
ッドの名前と同じ名前を生成する。つぎに、メソッドの
入出力定義を生成する。メソッドのパラメータ名、デー
タタイプとも対応するサーバ側の公開オブジェクトのメ
ソッドのパラメータ名およびデータタイプと同じものを
生成する。最後に、メソッド本体を生成する。メソッド
へのパラメータをもとに転送手続きを呼び出す文を生成
する(954)。
First, a class object is generated (9
51). The name of the class object generates the same name as the name of the corresponding public server object on the server side. Next, it is checked whether there is a function to be processed (952). If there is, step (953) is executed, and if not, the generation of the proxy server object ends. If there is a function to be processed, first, a method header is generated (953). The method name generates the same name as the method name of the corresponding public object on the server side. Next, the input / output definition of the method is generated. Generate the same parameter name and data type of the method of the public object on the server side that also corresponds to the parameter name and data type of the method. Finally, generate the method body. A statement for calling the transfer procedure is generated based on the parameter to the method (954).

【0049】これでメソッド定義を一つ生成したのでス
テップ(951)に戻る。この実施例では、クラスオブ
ジェクト管理手段4に蓄積されたディスパッチ手続き3
2より代理サーバオブジェクトが生成される。
Now that one method definition has been generated, the process returns to step (951). In this embodiment, the dispatch procedure 3 stored in the class object management means 4
A proxy server object is generated from 2.

【0050】図8の代理クラス定義の抽出ステップは以
下のとおりである。入力はクライアントアプリケーショ
ンであり、出力は代理クラスオブジェクトの属性を継承
したクラスオブジェクトの定義である。
The steps of extracting the proxy class definition in FIG. 8 are as follows. The input is the client application and the output is the definition of the class object that inherits the attributes of the proxy class object.

【0051】まず、処理するクラス定義があるか調べる
(961)。あれば(962)を実行し、なければ代理
クラス定義の抽出を終了する。処理するクラス定義があ
れば、そのクラス定義が代理クラスオブジェクトの属性
を継承しているか調べる(962)。継承していればス
テップ(963)を実行し、なければステップ(96
1)を実行する。代理クラスオブジェクトの属性を継承
していれば、クラス定義を抽出する(963)。この実
施例では、クライアントアプリケーション6より代理サ
ーバオブジェクト61のクラス定義が抽出される。
First, it is checked whether there is a class definition to be processed (961). If so, (962) is executed, and if not, the extraction of the proxy class definition ends. If there is a class definition to be processed, it is checked if the class definition inherits the attributes of the proxy class object (962). If it is inherited, step (963) is executed, otherwise step (96) is executed.
Execute 1). If the attribute of the proxy class object is inherited, the class definition is extracted (963). In this embodiment, the class definition of the proxy server object 61 is extracted from the client application 6.

【0052】図9の送信手続きの生成ステップは以下の
とおりである。入力は代理クラス定義の抽出ステップで
抽出されたクラスオブジェクトのクラス定義であり、出
力は送信手続きである。
The generation steps of the transmission procedure of FIG. 9 are as follows. The input is the class definition of the class object extracted in the extraction step of the proxy class definition, and the output is the transmission procedure.

【0053】まず、処理するメソッドがあるか調べる
(971)。あればステップ(972)を実行し、なけ
れば送信手続きの生成を終了する。処理するメソッドが
あれば、まず、関数ヘッダを生成する(972)。関数
名はメソッド名をもとに適当な名前を生成する。つぎ
に、関数の入出力定義を生成する。関数のパラメータ名
はメソッドのパラメータ名と同じ名前を用いる。関数パ
ラメータのデータタイプは、メソッドのパラメータのデ
ータタイプをプロセス間通信に用いる言語のデータタイ
プに変換する。
First, it is checked whether there is a method to be processed (971). If there is, the step (972) is executed, and if not, the generation of the transmission procedure ends. If there is a method to process, a function header is first generated (972). For the function name, an appropriate name is generated based on the method name. Next, the input / output definition of the function is generated. The function parameter name uses the same name as the method parameter name. The data type of the function parameter converts the data type of the method parameter into the data type of the language used for interprocess communication.

【0054】関数ヘッダ生成のつぎは関数の本体を生成
する。まず、入力用関数パラメータを通信パケットに格
納する文を生成する(973)。通信パケットの作成は
プロセス間通信に用いる通信プロトコルに従った方法で
行う。つぎに、通信パケットを対応する受信手続きに送
信する文を生成する(974)。処理要求はプロセス間
通信を用いてサーバ側の受信手続きに送信する。
After the function header is generated, the body of the function is generated. First, a statement for storing the input function parameter in the communication packet is generated (973). The communication packet is created by a method according to the communication protocol used for interprocess communication. Next, a sentence for transmitting the communication packet to the corresponding receiving procedure is generated (974). The processing request is transmitted to the receiving procedure on the server side using interprocess communication.

【0055】メッセージ送信の結果はメッセージ実行後
に受信手続きより返されるので、処理結果を格納した返
信パケットを受信する文を生成する(975)。出力用
関数パラメータを返信パケットより取り出す文を生成す
る(976)。返信パケットの解体はプロセス間通信に
用いる通信プロトコルに従った方法で行う。最後に、返
信パケットより取り出した出力用関数パラメータを関数
の実行結果として転送手続きに返す文を生成する(97
7)。
Since the result of message transmission is returned from the receiving procedure after message execution, a sentence for receiving a reply packet storing the processing result is generated (975). A statement for extracting the output function parameter from the reply packet is generated (976). The reply packet is disassembled by a method according to the communication protocol used for interprocess communication. Finally, a statement for returning the output function parameter extracted from the reply packet to the transfer procedure as the function execution result is generated (97
7).

【0056】これで関数定義を一つ生成したのでステッ
プ(971)を実行する。この実施例では代理クラス定
義の抽出ステップで抽出された代理サーバオブジェクト
61のクラス定義より送信手続き61が生成される。
Now that one function definition has been generated, step (971) is executed. In this embodiment, the transmission procedure 61 is generated from the class definition of the proxy server object 61 extracted in the proxy class definition extraction step.

【0057】図10の転送手続きの生成ステップは以下
のとおりである。入力は代理クラス定義の抽出ステップ
で抽出されたクラス定義であり、出力は転送手続きであ
る。
The steps of generating the transfer procedure of FIG. 10 are as follows. The input is the class definition extracted in the extraction step of the proxy class definition, and the output is the transfer procedure.

【0058】まず、処理するメソッドがあるか調べる
(981)。あればステップ(982)を実行し、なけ
れば転送手続きの生成を終了する。処理するメソッドが
あれば、まず、関数ヘッダを生成する(982)。関数
名はメソッド名をもとに適当な名前を生成する。つぎ
に、関数の入出力定義を生成する。関数のパラメータ名
はメソッド名と同じ名前を用いる。関数パラメータのデ
ータタイプはメソッドのパラメータのデータタイプをプ
ロセス間通信に用いる言語でのデータタイプに変換す
る。
First, it is checked whether there is a method to be processed (981). If there is, the step (982) is executed, and if not, the generation of the transfer procedure ends. If there is a method to process, a function header is first generated (982). For the function name, an appropriate name is generated based on the method name. Next, the input / output definition of the function is generated. The function parameter name uses the same name as the method name. The data type of the function parameter converts the data type of the method parameter into the data type in the language used for interprocess communication.

【0059】関数ヘッダ生成のつぎは関数の本体を生成
する。まず、関数パラメータをもとに関数に対応する送
信手続きを呼び出す文を生成する(983)。最後に、
メッセージ送信結果として返される送信手続きの実行結
果を転送手続きの実行結果とする文を生成する(98
4)。これで関数定義を一つ生成したのでステップ(9
81)に戻る。この実施例では、代理クラス定義の抽出
ステップで抽出された代理サーバオブジェクト61のク
ラス定義より転送手続き62が生成される。
After generating the function header, the body of the function is generated. First, a statement for calling a transmission procedure corresponding to a function is generated based on the function parameter (983). Finally,
A statement is generated in which the execution result of the transmission procedure returned as the message transmission result is the execution result of the transfer procedure (98
4). Now that one function definition has been generated, step (9
Return to 81). In this embodiment, a transfer procedure 62 is generated from the class definition of the proxy server object 61 extracted in the proxy class definition extraction step.

【0060】なお、クライアント内のオブジェクトが代
理サーバオブジェクト61にメッセージ送信したときの
処理の流れはつぎのようになる。メッセージの送信先で
ある代理サーバオブジェクト61のメソッドは、対応す
る転送手続き82を呼び出し、転送手続き82は対応す
る送信手続き81を呼び出す。呼び出された送信手続き
82は、対応するサーバ側の受信手続き31に処理要求
を送信する。
The process flow when the object in the client sends a message to the proxy server object 61 is as follows. The method of the proxy server object 61, which is the destination of the message, calls the corresponding transfer procedure 82, and the transfer procedure 82 calls the corresponding transmission procedure 81. The called transmission procedure 82 transmits a processing request to the corresponding reception procedure 31 on the server side.

【0061】サーバ側の受信手続き31は、処理要求を
受信後に対応するディスパッチ手続き32を呼び出す。
ディスパッチ手続き32は処理要求先である公開サーバ
オブジェクト11へメッセージをディスパッチする。メ
ソッド実行後、メソッドの実行結果はディスパッチ手続
き32に返される。ディスパッチ手続き32は、受けと
った実行結果を受信手続き31に返し、受信手続き31
は、処理要求を送信してきた送信手続き81に実行結果
を返す。送信手続き81は、受信した処理結果を転送手
続き82に返し、転送手続き82は、受けとった実行結
果をメッセージ送信の結果としてメソッドに返す。
The receiving procedure 31 on the server side calls the corresponding dispatch procedure 32 after receiving the processing request.
The dispatch procedure 32 dispatches a message to the public server object 11 that is the processing request destination. After the method is executed, the execution result of the method is returned to the dispatch procedure 32. The dispatch procedure 32 returns the received execution result to the receiving procedure 31, and the receiving procedure 31
Returns the execution result to the transmission procedure 81 that has transmitted the processing request. The transmission procedure 81 returns the received processing result to the transfer procedure 82, and the transfer procedure 82 returns the received execution result to the method as the result of message transmission.

【0062】[0062]

【発明の効果】以上説明したように本発明によれば、サ
ーバアプリケーション開発者はアプリケーション開発時
に、公開するクラスオブジェクトに公開クラスオブジェ
クトの属性を継承させるだけで、システムがアプリケー
ション外部のプロセスからのリクエストを受信するため
に必要な受信手続きおよびディスパッチ手続きを生成し
て、サーバアプリケーション実行形を生成する。さらに
公開したクラスオブジェクトをクラスオブジェクト管理
手段に登録することにより、他のユーザがそのクラスオ
ブジェクトを再利用することが可能になる。
As described above, according to the present invention, a server application developer can make a request from a process external to the application by simply causing the public class object to inherit the attributes of the public class object during application development. Generates a receiving procedure and a dispatching procedure required to receive a server application execution form. Further, by registering the published class object in the class object management means, other users can reuse the class object.

【0063】クライアントアプリケーション開発者は、
クラスオブジェクト管理手段を検索後、利用するクラス
オブジェクトを指定して代理サーバオブジェクトを生成
する。クライアントは、代理サーバオブジェクトにメッ
セージ送信するだけでサーバの公開サーバオブジェクト
を利用することが可能になる。システムは、代理サーバ
オブジェクトに送信されたメッセージを対応するサーバ
の公開サーバオブジェクトに転送するために必要な送信
手続きおよび転送手続きを生成してクライアントアプリ
ケーション実行形を生成する。
The client application developer is
After searching the class object management means, a class object to be used is designated to generate a proxy server object. The client can use the public server object of the server simply by sending a message to the proxy server object. The system creates the client application executable by creating the send and transfer procedures required to transfer the message sent to the proxy server object to the public server object of the corresponding server.

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

【図1】本発明の原理説明図である。FIG. 1 is a diagram illustrating the principle of the present invention.

【図2】サーバアプリケーション開発のステップを示す
図である。
FIG. 2 is a diagram showing steps of server application development.

【図3】公開クラス定義の抽出ステップを示す図であ
る。
FIG. 3 is a diagram showing steps of extracting a public class definition.

【図4】受信手続き生成のステップを示す図である。FIG. 4 is a diagram showing steps of receiving procedure generation.

【図5】ディスパッチ手続き生成のステップを示す図で
ある。
FIG. 5 is a diagram showing steps of dispatch procedure generation.

【図6】クライアントアプリケーション開発のステップ
を示す図である。
FIG. 6 is a diagram showing steps of client application development.

【図7】代理サーバオブジェクト生成のステップを示す
図である。
FIG. 7 is a diagram showing steps of proxy server object generation.

【図8】代理クラス定義の抽出ステップを示す図であ
る。
FIG. 8 is a diagram showing a step of extracting a proxy class definition.

【図9】送信手続き生成のステップを示す図である。FIG. 9 is a diagram showing steps of transmission procedure generation.

【図10】転送手続き生成のステップを示す図である。FIG. 10 is a diagram showing steps of transfer procedure generation.

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

1:サーバアプリケーション、11:公開サーバオブジ
ェクト、2:サーバ用コンパイラ、21:公開クラス定
義抽出部、22:受信手続き群生成部、23:コンパイ
ラ、3:サーバアプリケーション実行形、31:受信手
続き、32:ディスパッチ手続き、4:クラスオブジェ
クト管理手段、5:代理サーバオブジェクト生成部、
6:クライアントアプリケーション、61:代理サーバ
オブジェクト、7:クライアント用コンパイラ、71:
代理クラス定義抽出部、72:送信手続き群生成部、7
3:コンパイラ、8:クライアントアプリケーション実
行形、81:送信手続き、82:転送手続き。
1: server application, 11: public server object, 2: server compiler, 21: public class definition extraction unit, 22: reception procedure group generation unit, 23: compiler, 3: server application execution form, 31: reception procedure, 32 : Dispatch procedure, 4: Class object management means, 5: Proxy server object generation unit,
6: client application, 61: proxy server object, 7: client compiler, 71:
Proxy class definition extraction unit, 72: Transmission procedure group generation unit, 7
3: compiler, 8: client application execution type, 81: transmission procedure, 82: transfer procedure.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 関 隆広 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア開発本部内 ─────────────────────────────────────────────────── ─── Continuation of front page (72) Inventor Takahiro Seki 5030 Totsuka-cho, Totsuka-ku, Yokohama-shi, Kanagawa Prefecture Hitachi Ltd. Software Development Division

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】ネットワークで接続された計算機システム
上のオブジェクト指向言語システムにおいて、あるオブ
ジェクト指向言語でアプリケーションプログラムを記述
する際に、アプリケーションプログラム外部のプロセス
からの処理要求を受け付けられるクラスオブジェクトに
公開クラスオブジェクトの属性を継承させるステップ
と、アプリケーションプログラムをコンパイルする際に
公開クラスオブジェクトの属性を継承するクラスオブジ
ェクトの定義を抽出するステップと、抽出したそれらの
クラスオブジェクトの定義より外部プロセスから送信さ
れたメッセージを受信する受信手続きを生成するステッ
プ、および受信手続きが受信したメッセージをメッセー
ジ送信先であるオブジェクトにディスパッチするディス
パッチ手続きを生成するステップを含むことを特徴とす
る分散オブジェクト指向システム構築方法。
1. In an object-oriented language system on a computer system connected by a network, when an application program is written in a certain object-oriented language, a class open to a class object that can accept a processing request from a process outside the application program. Inheriting the attributes of the objects, extracting the definition of the class objects that inherit the attributes of the public class objects when compiling the application program, and the message sent from the external process from the extracted definitions of those class objects Generate a receiving procedure that receives a message, and a dispatch procedure that dispatches the message received by the receiving procedure to the object to which the message is sent. Distributed Object Oriented system construction method characterized by comprising the that step.
【請求項2】請求項1記載の分散オブジェクト指向シス
テム構築方法において、前記公開オブジェクトの属性を
継承するクラスオブジェクトをアプリケーションプログ
ラム実行形の構築後にクラスオブジェクト管理手段に登
録するステップ、および登録するクラスオブジェクトに
対応する前記ディスパッチ手続きを蓄積するステップを
さらに含むことを特徴とする分散オブジェクト指向シス
テム構築方法。
2. A distributed object-oriented system construction method according to claim 1, wherein a class object that inherits the attributes of the public object is registered in a class object management means after construction of an application program execution form, and a class object to be registered. A method for constructing a distributed object-oriented system, further comprising the step of accumulating the dispatch procedure corresponding to.
【請求項3】請求項2記載の分散オブジェクト指向シス
テム構築方法において、前記クラスオブジェクト管理手
段を検索後、利用するクラスオブジェクトを指定するス
テップと、指定されたクラスオブジェクトに対応し、ク
ラスオブジェクト管理手段に蓄積されているディスパッ
チ手続きより、指定されたクラスオブジェクトに対応す
る仮想的なクラスである代理クラスオブジェクトの属性
を継承するクラスオブジェクトを生成するステップと、
生成された前記クラスオブジェクトにメッセージを送信
することにより請求項1記載のクラスオブジェクトにメ
ッセージ送信を行えるアプリケーションプログラムを構
築後、アプリケーションプログラムをコンパイルする際
に代理クラスオブジェクトの属性を継承するクラスオブ
ジェクトの定義を抽出するステップと、抽出したそれら
のクラスオブジェクトの定義より外部プロセスへメッセ
ージを送信する送信手続きを生成するステップ、および
代理クラスオブジェクトの属性を継承するクラスオブジ
ェクトへのメッセージ送信を送信手続きにディスパッチ
する転送手続きを生成するステップを含むことを特徴と
する分散オブジェクト指向システム構築方法。
3. The method of constructing a distributed object-oriented system according to claim 2, further comprising the step of designating a class object to be used after searching the class object management means, and the class object management means corresponding to the designated class object. Generating a class object that inherits the attributes of a proxy class object, which is a virtual class corresponding to the specified class object, from the dispatch procedure accumulated in
A definition of a class object that inherits the attributes of a proxy class object when the application program is compiled after building an application program capable of sending a message to the class object according to claim 1 by sending a message to the generated class object. To extract messages, to create a send procedure that sends a message to an external process from the definition of those extracted class objects, and dispatch a message send to a class object that inherits the attributes of the proxy class object to the send procedure. A method for constructing a distributed object-oriented system characterized by including a step of generating a transfer procedure.
JP1509894A 1994-02-09 1994-02-09 Distributed object-oriented system construction method Pending JPH07225685A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1509894A JPH07225685A (en) 1994-02-09 1994-02-09 Distributed object-oriented system construction method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1509894A JPH07225685A (en) 1994-02-09 1994-02-09 Distributed object-oriented system construction method

Publications (1)

Publication Number Publication Date
JPH07225685A true JPH07225685A (en) 1995-08-22

Family

ID=11879375

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1509894A Pending JPH07225685A (en) 1994-02-09 1994-02-09 Distributed object-oriented system construction method

Country Status (1)

Country Link
JP (1) JPH07225685A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10511794A (en) * 1995-09-15 1998-11-10 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン Bridge for client-server environment
JP2000222230A (en) * 1999-02-03 2000-08-11 Toshiba Corp Component execution system dealing with parallel distribution, development method therefor, computer readable recording medium recorded with component execution program dealing with parallel distribution, and computer readable recording medium recorded with execution system developing framework
US6434739B1 (en) 1996-04-22 2002-08-13 International Business Machines Corporation Object oriented framework mechanism for multi-target source code processing
JP2011118867A (en) * 2009-12-03 2011-06-16 Korea Electronics Telecommun Remote plug-in device, engine device and system for executing robot plug-in

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10511794A (en) * 1995-09-15 1998-11-10 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン Bridge for client-server environment
US6434739B1 (en) 1996-04-22 2002-08-13 International Business Machines Corporation Object oriented framework mechanism for multi-target source code processing
JP2000222230A (en) * 1999-02-03 2000-08-11 Toshiba Corp Component execution system dealing with parallel distribution, development method therefor, computer readable recording medium recorded with component execution program dealing with parallel distribution, and computer readable recording medium recorded with execution system developing framework
JP2011118867A (en) * 2009-12-03 2011-06-16 Korea Electronics Telecommun Remote plug-in device, engine device and system for executing robot plug-in
KR101242662B1 (en) * 2009-12-03 2013-03-12 한국전자통신연구원 Remote plugin apparatus, robot plugin execution engine apparatus and robot plugin execution system thereof

Similar Documents

Publication Publication Date Title
US11016673B2 (en) Optimizing serverless computing using a distributed computing framework
US5832219A (en) Distributed object networking service
US6629128B1 (en) System and method for distributed processing in a computer network
US6983285B2 (en) Apparatus and method for dynamically verifying information in a distributed system
US9183066B2 (en) Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
EP0726003B1 (en) Object-oriented network protocol configuration system
US7028307B2 (en) Data management framework for policy management
US20020138659A1 (en) Method and system for application development and a data processing architecture utilizing destinationless messaging
CN109815025B (en) Service model calling method, device and storage medium
JPH09218860A (en) Method for handling remote procedure calling in accordance with various kinds of protocols in client/ server system
JPH06332870A (en) Method and equipment for linking object manager for cooperation processing in object directive computer environment
JPH0668006A (en) Use of language which can process complicated structure wherein modeling is performed in association with content
JPH1083308A (en) Subsystem, method, and recording medium for stab retrieval and loading
JP2008306714A (en) Communicating method and apparatus in network application, and program for them
US20080163269A1 (en) Remote procedure call system, remote procedure call method, program for implementing remote procedure call system
KR101558289B1 (en) Composing message processing pipelines
EP1161052B1 (en) Operating system for structured information processing
Kraemer et al. Aligning UML 2.0 state machines and temporal logic for the efficient execution of services
US7089263B2 (en) Apparatus and method for dynamically verifying information in a distributed system
JPH07225685A (en) Distributed object-oriented system construction method
WO1999044123A1 (en) Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
JP2004520641A (en) Event bus architecture
CN114936098B (en) Data transfer method, device, back-end equipment and storage medium
Duarte Proof-theoretic foundations for the design of actor systems
JP3027784B2 (en) Application cooperative operation system