JP2000207186A - Remote object communication program generating system, remote object communication system and computer- readable recording medium with remote object communication program generating program recorded therein - Google Patents

Remote object communication program generating system, remote object communication system and computer- readable recording medium with remote object communication program generating program recorded therein

Info

Publication number
JP2000207186A
JP2000207186A JP11010804A JP1080499A JP2000207186A JP 2000207186 A JP2000207186 A JP 2000207186A JP 11010804 A JP11010804 A JP 11010804A JP 1080499 A JP1080499 A JP 1080499A JP 2000207186 A JP2000207186 A JP 2000207186A
Authority
JP
Japan
Prior art keywords
remote
file
object communication
communication
macro
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
JP11010804A
Other languages
Japanese (ja)
Inventor
Yukari Matsuzawa
澤 由香里 松
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 JP11010804A priority Critical patent/JP2000207186A/en
Publication of JP2000207186A publication Critical patent/JP2000207186A/en
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)
  • Multi Processors (AREA)

Abstract

PROBLEM TO BE SOLVED: To easily generate a remote object communication program for performing inter-object communication between remote processes, on the basis of an existent program. SOLUTION: This remote object communication program generating system is provided with a macro call generating tool 1, according to macro generation rules stored in a macro generation rule storage part 5, a prescribed code group which includes a macro call definition is added to an object definition file 11 and an object package file 21 including a class to be defined as a remote object, and a prescribed code group which includes the macro call definition is added to a basic object package file 31 included in a remote object communication library group 7. Then, files 12, 22 and 32, to which the prescribed code group is added, and the remote object communication library group 7 are compiled and linked by a compiler 6 by expanding the macro call definition added to the files 12, 22 and 32, while referring to a macro group 8.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明はクライアント/サー
バシステム等の分散型システムで用いられる分散オブジ
ェクト指向技術に係わり、とりわけオブジェクト指向言
語で記述された既存のプログラムを基にしてリモートプ
ロセス間でオブジェクト間通信を行うリモートオブジェ
クト通信プログラムを生成するリモートオブジェクト通
信プログラム生成システム、リモートオブジェクト通信
システム、およびリモートオブジェクト通信プログラム
生成プログラムを記録したコンピュータ読み取り可能な
記録媒体に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a distributed object-oriented technique used in a distributed system such as a client / server system, and more particularly, to an inter-object communication between remote processes based on an existing program described in an object-oriented language. The present invention relates to a remote object communication program generation system that generates a remote object communication program for performing communication, a remote object communication system, and a computer-readable recording medium that records the remote object communication program generation program.

【0002】[0002]

【従来の技術】近年、企業等で構築される各種の情報処
理システムにおいては、ソフトウェア仕様やシステム要
件等が非常に多様化および流動化するとともに、より堅
牢なシステムを構築することが強く望まれるようになっ
てきている。このため、システムのソフトウェア構造
は、従来の機能中心の構造化手法によるアーキテクチャ
から、データ中心のオブジェクト指向手法によるアーキ
テクチャへと変化してきている。ここで、オブジェクト
指向手法とは、データとそれに関する処理を行うメソッ
ド(メンバ関数)とを一体化して1つのオブジェクトと
して定義し、このようにして定義された複数のオブジェ
クトによってシステムのアーキテクチャを定義しようと
するものである。なお、このようなシステムにおける機
能は、オブジェクトに定義されているメソッドを呼び出
すことによって実現される。
2. Description of the Related Art In recent years, in various information processing systems constructed by companies and the like, it is strongly desired that software specifications and system requirements are diversified and fluidized and that a more robust system is constructed. It is becoming. For this reason, the software structure of the system is changing from an architecture based on a conventional function-oriented structuring method to an architecture based on a data-centric object-oriented method. Here, the object-oriented method is to define a single object by integrating data and a method (member function) for performing processing relating to the data, and define a system architecture by a plurality of objects defined in this way. It is assumed that. Note that functions in such a system are realized by calling a method defined in an object.

【0003】ところで、このようなオブジェクト指向手
法では、分析から設計/実装までのトレーサビリティが
良いので、構築されたソフトウェア構造は理解しやす
く、また再利用性や柔軟性に優れた堅牢なシステムを構
築することができる。このため、現在では、新規システ
ムの大半はオブジェクト指向手法により開発されてお
り、また既存システムにおいても徐々にオブジェクト指
向手法を取り入れたシステムへの移行が進んでいる。
By the way, such an object-oriented method has good traceability from analysis to design / implementation, so that the constructed software structure is easy to understand, and a robust system excellent in reusability and flexibility is constructed. can do. For this reason, at present, most of the new systems have been developed by the object-oriented method, and existing systems are gradually shifting to systems incorporating the object-oriented method.

【0004】また、コンピュータ業界の急速な発展に伴
って、企業等で構築される情報処理システムの体系は刻
々と変わりつつある。十数年前までは、図18に示すよ
うに、各端末61からの処理要求を基幹コンピュータ6
2が一挙に引き受ける集中型のメインフレーム型システ
ムが主であった。しかしながら、コンピュータの普及や
ネットワーク網の発達等によって、クライアントとなる
端末数や、遠隔クライアントからのリクエスト数が増加
の一途を辿った。その結果、基幹コンピュータのみでは
処理負荷に耐えられなくなり、また加えて高性能なワー
クステーションやパーソナルコンピュータの登場によ
り、数年前からは、図19に示すように、ワークステー
ション等のサーバ72をいくつかに分散させてタスクを
並行に処理させるような分散型クライアント/サーバシ
ステムが構築されるようになってきた。なお、このよう
な分散型クライアント/サーバシステムにおいては、パ
ーソナルコンピュータ等のクライアント71側でも、サ
ーバ71に依存しない処理を実行させることにより、サ
ーバ71の処理負荷を軽減させることができる。しかし
ながら、このような分散型クライアント/サーバシステ
ムにおいては、クライアント側でも処理を実行させるこ
とにより、増加し続けるクライアントに対して、サーバ
の変更時のクライアントのバージョンアップや、クライ
アント側での新規ソフトウェアのインストールおよび版
管理等が必要となり、クライアント側の管理コストが増
加する傾向となってきている。これに対し、ここ数年で
は、WWW(World Wide Web)によるインターネットの
普及や、これと相まって増加し続けるクライアントに対
して、クライアント側の管理コストを削減するため、図
20に示すように、WWWによって、パーソナルコンピ
ュータ等のクライアント71のソフトウェアを必要なと
きにサーバ72からダウンロードして動作させるという
Thinクライアント型のシステムへと移行を遂げつつ
ある。
[0004] Further, with the rapid development of the computer industry, the system of information processing systems constructed by companies and the like is changing every moment. Until ten years ago, as shown in FIG. 18, the processing request from each terminal 61 was
The main type was a centralized mainframe system that the two undertook at once. However, with the spread of computers and the development of network networks, the number of terminals serving as clients and the number of requests from remote clients have continued to increase. As a result, the core computer alone cannot withstand the processing load. In addition, with the advent of high-performance workstations and personal computers, several years ago, as shown in FIG. Distributed client / server systems have been constructed in which tasks are distributed in parallel and tasks are processed in parallel. In such a distributed client / server system, the processing load on the server 71 can be reduced by causing the client 71 such as a personal computer to execute processing independent of the server 71. However, in such a distributed client / server system, the processing is also executed on the client side, so that the client that continues to increase can be upgraded when the server is changed or new software can be installed on the client side. Installation and version management are required, and the management cost on the client side tends to increase. On the other hand, in recent years, in order to reduce the management cost on the client side for the spread of the Internet by the WWW (World Wide Web) and the client that is increasing in conjunction with the spread of the Internet, as shown in FIG. As a result, the system is being shifted to a Thin client type system in which software of a client 71 such as a personal computer is downloaded from the server 72 and operated when necessary.

【0005】このように、コンピュータ業界において
は、情報処理システムの体系が刻々と変化しており、あ
る時点で、サーバ集中型のシステムを構築しても、その
後サーバをマルチプロセス化したり、さらにマルチサー
バマシン環境に分散させたり、またクライアントとサー
バとにタスクを分割する必要が生じてくる。
As described above, in the computer industry, the system of the information processing system is constantly changing, and even if a server centralized system is constructed at a certain point in time, the server is multi-processed or further multi-processed. It becomes necessary to distribute tasks in a server machine environment or to divide tasks into a client and a server.

【0006】このような背景の下で、現在のソフトウェ
ア開発においては、オブジェクト指向への対応と、柔軟
なオープンネットワークへの対応という2つの視点が非
常に重要なものとなってきており、このような2つの視
点を取り入れた概念として「通信のオブジェクト指向
化」が提案されるようになってきている。ここで、通信
のオブジェクト指向化とは、リモートプロセス間通信に
オブジェクト指向手法の特徴を取り入れて、メソッド呼
び出し等の通常のオブジェクト間通信をリモートプロセ
ス間で実現するというものである。このような通信のオ
ブジェクト指向化に関しては、標準化団体であるOMG
(Object Management Group、登録商標)が標準仕様と
してCORBA(Common Object Request Broker Archi
tecture、登録商標)を決めており、各製造メーカはこ
のCORBA準拠の製品を提供している。なお、COR
BAでは、主として次のような仕様、すなわち(1)オ
ブジェクトのインタフェースを共通に記述するためのイ
ンタフェース定義言語(IDL:Interface Definition
Language)、(2)C言語等のプログラミング言語で
アプリケーションを記述するための言語マッピング、
(3)オブジェクトの生成やリクエストの配信を始めと
する各種のサービスを提供するためのコンポーネントの
機能とインタフェース、および(4)オブジェクト間通
信のためのプロトコルが決められている。
Against this background, in software development today, two viewpoints, that is, support for object orientation and support for a flexible open network, have become very important. "Object-oriented communication" has been proposed as a concept incorporating two viewpoints. Here, the object-oriented communication means realizing normal inter-object communication such as method invocation between remote processes by incorporating the feature of the object-oriented method into remote inter-process communication. Regarding the object-oriented communication, OMG, a standardization organization,
(Object Management Group, registered trademark) has CORBA (Common Object Request Broker Archi
(registered trademark), and each manufacturer provides a CORBA-compliant product. In addition, COR
The BA mainly has the following specifications: (1) an interface definition language (IDL) for commonly describing an object interface;
Language), (2) Language mapping for describing applications in a programming language such as C language,
(3) The functions and interfaces of components for providing various services such as object generation and request distribution, and (4) protocols for inter-object communication are determined.

【0007】このような標準仕様(CORBA)が一般
化しつつある現状では、リモートプロセス間でオブジェ
クト間通信を実現する場合には通常、いずれかの製造メ
ーカから提供されているCORBA準拠の製品を用いて
実装することとなる。
Under the current situation where such a standard specification (CORBA) is being generalized, when realizing inter-object communication between remote processes, a CORBA-compliant product provided by any manufacturer is usually used. Will be implemented.

【0008】[0008]

【発明が解決しようとする課題】しかしながら、このよ
うな標準仕様(CORBA)は元来、各製造メーカから
提供される製品の互換性を維持するためのものであり、
異なる製品間で通信を行うような場合には有効である
が、そのような互換性の要求は同一システムにおいては
ほとんどない。
However, such a standard specification (CORBA) is originally intended to maintain compatibility of products provided by respective manufacturers.
This is effective when communication is performed between different products, but such compatibility is hardly required in the same system.

【0009】また、このような標準仕様(CORBA)
が提供するような各種のサービスは、リモートプロセス
間で単純にオブジェクト間通信を実現したいような場合
にはあまり必要がない。
Further, such a standard specification (CORBA)
Various services such as those provided by are not so necessary when simple inter-object communication is to be realized between remote processes.

【0010】さらに、このような標準仕様(CORB
A)では、プログラミング言語およびOS(Operating
System)にとらわれないオブジェクト間通信を実現する
ために、通信対象となるオブジェクトのインタフェース
をIDL定義言語で記述し、かつIDLコンパイラによ
りスタブやスケルトンといった通信代理オブジェクトを
生成するという手順を踏まなければならない。このた
め、通信対象となるオブジェクトに関しては、あらかじ
めCORBAでの実装を意識した設計を行う必要があ
る。
Further, such a standard specification (CORB
In A), a programming language and an OS (Operating
In order to realize inter-object communication that is not restricted to System), it is necessary to describe the interface of the object to be communicated in the IDL definition language and to generate a communication proxy object such as a stub or a skeleton by an IDL compiler. . For this reason, it is necessary to design in advance the objects to be communicated with consideration for implementation in CORBA.

【0011】本発明はこのような点を考慮してなされた
ものであり、他の製造メーカの製品との連携を考慮する
必要がない場合や、リモートプロセス間で単純にオブジ
ェクト間通信を実現したいような場合において、IDL
定義言語での記述や、IDLコンパイラによる通信代理
オブジェクトの生成、CORBAでの実装を意識した設
計といった煩雑な手間をかけることなく、オブジェクト
指向言語で記述された既存のプログラムを基にしてリモ
ートプロセス間でオブジェクト間通信を行うリモートオ
ブジェクト通信プログラムを容易に生成することができ
るリモートオブジェクト通信プログラム生成システム、
リモートオブジェクト通信システム、およびリモートオ
ブジェクト通信プログラム生成プログラムを記録したコ
ンピュータ読み取り可能な記録媒体を提供することを目
的とする。
The present invention has been made in consideration of such a point, and it is not necessary to consider cooperation with products of other manufacturers, or it is desired to simply realize inter-object communication between remote processes. In such cases, IDL
Remote processes can be performed based on an existing program written in an object-oriented language, without the need for complicated procedures such as description in a definition language, generation of a communication proxy object by an IDL compiler, and design in consideration of implementation in CORBA. A remote object communication program generation system that can easily generate a remote object communication program that performs inter-object communication with
It is an object of the present invention to provide a remote object communication system and a computer-readable recording medium recording a remote object communication program generation program.

【0012】[0012]

【課題を解決するための手段】本発明の第1の特徴は、
同一プロセス内でオブジェクト間通信を行うローカルオ
ブジェクト通信プログラムを基にして、リモートプロセ
ス間でオブジェクト間通信を行うリモートオブジェクト
通信プログラムを生成するリモートオブジェクト通信プ
ログラム生成システムにおいて、前記ローカルオブジェ
クト通信プログラムに含まれるオブジェクトのうちリモ
ートプロセス間でのオブジェクト間通信が必要とされる
オブジェクトのオブジェクト定義ファイルに対して所定
のコード群を追加する第1コード追加手段と、前記ロー
カルオブジェクト通信プログラムに含まれるオブジェク
トのうちリモートプロセス間でのオブジェクト間通信が
必要とされるオブジェクトのオブジェクト実装ファイル
に対して所定のコード群を追加する第2コード追加手段
と、前記第1コード追加手段および前記第2コード追加
手段により所定のコード群が追加された前記オブジェク
ト定義ファイルおよび前記オブジェクト実装ファイル
と、あらかじめ準備されたリモートオブジェクト通信ラ
イブラリ群とをコンパイルするコンパイル手段とを備え
たことを特徴とするリモートオブジェクト通信プログラ
ム生成システムである。
A first feature of the present invention is as follows.
In the remote object communication program generation system for generating a remote object communication program for performing inter-object communication between remote processes based on a local object communication program for performing inter-object communication in the same process, the system is included in the local object communication program First code adding means for adding a predetermined code group to an object definition file of an object requiring inter-object communication between remote processes among the objects; Second code adding means for adding a predetermined code group to an object implementation file of an object requiring inter-object communication between processes; Compiling means for compiling the object definition file and the object mounting file to which a predetermined code group has been added by the adding means and the second code adding means, and a remote object communication library group prepared in advance. A feature is a remote object communication program generation system.

【0013】本発明の第2の特徴は、リモートプロセス
間でオブジェクト間通信を行うリモートオブジェクト通
信システムにおいて、クライアントオブジェクトを含む
クライアントプロセス手段と、前記クライアントオブジ
ェクトに対応するサーバオブジェクトを含むサーバプロ
セス手段と、前記クライアントプロセス手段と前記サー
バプロセス手段との間でバイナリデータの送受信を行う
ためのストリームソケットとを備え、前記クライアント
プロセス手段および前記サーバプロセス手段はそれぞ
れ、リモートプロセス間でのオブジェクト間通信が必要
とされるオブジェクトの識別情報を保持するソケットア
クセスオブジェクトを有し、前記クライアントオブジェ
クトまたは前記サーバオブジェクトにおけるメソッド呼
び出しをリモートプロセス間でのオブジェクト間通信と
して実現することを特徴とするリモートオブジェクト通
信システムである。
According to a second feature of the present invention, in a remote object communication system for performing inter-object communication between remote processes, client process means including a client object, and server process means including a server object corresponding to the client object. A stream socket for transmitting and receiving binary data between the client process means and the server process means, wherein each of the client process means and the server process means requires inter-object communication between remote processes. A socket access object that holds identification information of an object to be executed, and remotely calls a method on the client object or the server object. A remote object communication system, characterized in that to realize the inter-object communication between processes.

【0014】本発明の第3の特徴は、同一プロセス内で
オブジェクト間通信を行うローカルオブジェクト通信プ
ログラムを基にして、リモートプロセス間でオブジェク
ト間通信を行うリモートオブジェクト通信プログラムを
生成するリモートオブジェクト通信プログラム生成プロ
グラムを記録したコンピュータ読み取り可能な記録媒体
において、ローカルオブジェクト通信プログラムに含ま
れるオブジェクトのうちリモートプロセス間でのオブジ
ェクト間通信が必要とされるオブジェクトのオブジェク
ト定義ファイルおよびオブジェクト実装ファイルに対し
て所定のコード群を追加するステップと、所定のコード
群が追加された前記オブジェクト定義ファイルおよび前
記オブジェクト実装ファイルと、あらかじめ準備された
リモートオブジェクト通信ライブラリ群とをコンパイル
するステップとをコンピュータに実行させることを特徴
とするリモートオブジェクト通信プログラム生成プログ
ラムを記録したコンピュータ読み取り可能な記録媒体で
ある。
A third feature of the present invention is a remote object communication program for generating a remote object communication program for performing inter-object communication between remote processes based on a local object communication program for performing inter-object communication in the same process. In a computer-readable recording medium on which a generation program is recorded, a predetermined object definition file and an object implementation file of an object that requires inter-object communication between remote processes among objects included in the local object communication program. Adding a code group, the object definition file and the object implementation file to which a predetermined code group has been added, and a remote object prepared in advance. A computer-readable recording medium recorded with the remote object communication program generation program, characterized in that and a step of compiling a preparative communication libraries on the computer.

【0015】本発明の第1乃至第3の特徴によれば、通
常のオブジェクト指向言語で記述された既存のプログラ
ムのうち、リモートオブジェクトとして定義すべきオブ
ジェクトのオブジェクト定義ファイルおよびオブジェク
ト実装ファイルに対して所定のコード群を追加すること
により、メソッド呼び出し等の通常のオブジェクト間通
信をリモートプロセス間で実現することができるので、
オブジェクト定義ファイルおよびオブジェクト実装ファ
イル等の既存のコードを何ら改変することなく、既存の
プログラムを最大限に利用してリモートオブジェクト通
信プログラムを容易に生成することができる。このた
め、IDL定義言語での記述や、IDLコンパイラによ
る通信代理オブジェクトの生成、CORBAでの実装を
意識した設計といった煩雑な手間をかけることなく、オ
ブジェクト指向言語で記述された既存のプログラムを基
にしてリモートプロセス間でオブジェクト間通信を行う
リモートオブジェクト通信プログラムを容易に生成する
ことができる。
According to the first to third aspects of the present invention, an object definition file and an object implementation file of an object to be defined as a remote object among existing programs described in an ordinary object-oriented language are described. By adding a predetermined code group, normal inter-object communication such as method call can be realized between remote processes.
It is possible to easily generate a remote object communication program by making the most of an existing program without modifying existing codes such as an object definition file and an object implementation file. For this reason, based on an existing program written in an object-oriented language, there is no need for complicated work such as description in an IDL definition language, generation of a communication proxy object by an IDL compiler, and design in consideration of implementation in CORBA. Thus, a remote object communication program for performing inter-object communication between remote processes can be easily generated.

【0016】[0016]

【発明の実施の形態】以下、図面を参照して本発明の実
施の形態について説明する。図1乃至図13は本発明に
よるリモートオブジェクト通信プログラム生成システ
ム、リモートオブジェクト通信システムおよびリモート
オブジェクト通信プログラム生成プログラムを記録した
コンピュータ読み取り可能な記録媒体の一実施の形態を
説明するための図である。
Embodiments of the present invention will be described below with reference to the drawings. FIGS. 1 to 13 are diagrams for explaining an embodiment of a remote object communication program generation system, a remote object communication system, and a computer-readable recording medium storing a remote object communication program generation program according to the present invention.

【0017】リモートオブジェクト通信プログラム生成
システム まず、図1乃至図6により、リモートオブジェクト通信
プログラム生成システムについて説明する。
Generating a remote object communication program
System First, a remote object communication program generation system will be described with reference to FIGS.

【0018】図1はリモートオブジェクト通信プログラ
ム生成システムの全体構成を示す図である。図1に示す
ように、リモートオブジェクト通信プログラム生成シス
テムは、同一プロセス内でオブジェクト間通信を行うロ
ーカルオブジェクト通信プログラム9を基にして、リモ
ートプロセス間でオブジェクト間通信を行うリモートオ
ブジェクト通信プログラム10を生成するものであり、
マクロ呼び出し生成ツール1、マクロ生成ルール記憶部
(マクロ生成ルール記憶手段)5、コンパイラ6、リモ
ートオブジェクト通信ライブラリ群7、およびマクロ群
8を備えている。
FIG. 1 is a diagram showing the overall configuration of a remote object communication program generation system. As shown in FIG. 1, the remote object communication program generation system generates a remote object communication program 10 for performing inter-object communication between remote processes based on a local object communication program 9 for performing inter-object communication in the same process. To do
A macro call generation tool 1, a macro generation rule storage unit (macro generation rule storage unit) 5, a compiler 6, a remote object communication library group 7, and a macro group 8 are provided.

【0019】図1において、ローカルオブジェクト通信
プログラム9は、ユーザによって作成されたソースコー
ドであるオブジェクト定義ファイル11およびオブジェ
クト実装ファイル21を含み、これらのファイル11,
21がマクロ呼び出し生成ツール1に入力として与えら
れる。なお、オブジェクト定義ファイル11およびオブ
ジェクト実装ファイル21はC++等の一般的なオブジ
ェクト指向言語で記述されている。
In FIG. 1, a local object communication program 9 includes an object definition file 11 and an object mounting file 21 which are source codes created by a user.
21 is provided to the macro call generation tool 1 as an input. Note that the object definition file 11 and the object mounting file 21 are described in a general object-oriented language such as C ++.

【0020】ここで、マクロ呼び出し生成ツール1は、
第1コード追加部(第1コード追加手段)2および第2
コード追加部(第2コード追加手段)3を有し、マクロ
生成ルール記憶部5に記憶されたマクロ生成ルールに従
って、リモートオブジェクト(リモートプロセス間での
オブジェクト間通信が可能なオブジェクト)として定義
すべきクラスを含むオブジェクト定義ファイル11およ
びオブジェクト実装ファイル21に対してマクロ呼び出
し定義を含む所定のコード群を追加し、マクロ呼び出し
追加オブジェクト定義ファイル12およびマクロ呼び出
し追加オブジェクト実装ファイル22をそれぞれ生成す
るようになっている。
Here, the macro call generation tool 1
First code addition section (first code addition means) 2 and second code addition section
It has a code addition unit (second code addition means) 3 and should be defined as a remote object (an object that allows inter-object communication between remote processes) in accordance with the macro generation rules stored in the macro generation rule storage unit 5. A predetermined code group including a macro call definition is added to the object definition file 11 including the class and the object implementation file 21 to generate the macro call additional object definition file 12 and the macro call additional object implementation file 22, respectively. ing.

【0021】また、マクロ呼び出し生成ツール1は、第
3コード追加部(第3コード追加手段)4をさらに有
し、マクロ生成ルール記憶部5に記憶されたマクロ生成
ルールに従って、リモートオブジェクト通信ライブラリ
群7に含まれるリモートオブジェクト用の基底オブジェ
ト実装ファイル31に対してマクロ呼び出し定義を含む
所定のコード群を追加し、マクロ呼び出し追加基底オブ
ジェクト実装ファイル32を生成するようになってい
る。
The macro call generation tool 1 further includes a third code addition section (third code addition means) 4, and a remote object communication library group according to the macro generation rules stored in the macro generation rule storage section 5. 7, a predetermined code group including a macro call definition is added to the base object implementation file 31 for the remote object included in the file 7, and a macro call added base object implementation file 32 is generated.

【0022】図2はマクロ呼び出し生成ツール1により
オブジェクト定義ファイル11、オブジェクト実装ファ
イル21および基底オブジェクト実装ファイル31に追
加されるコード群の詳細を説明するための図である。
FIG. 2 is a diagram for explaining the details of the code group added to the object definition file 11, the object implementation file 21, and the base object implementation file 31 by the macro call generation tool 1.

【0023】図2に示すように、オブジェクト定義ファ
イル11に対しては、リモートオブジェクトとして定義
すべき各クラスに、メソッド呼び出し関数を定義するコ
ードと、メンバ関数テーブル作成関数を定義するコード
とが追加され、また各クラスに含まれる既存のメンバ関
数のそれぞれに、リモートプロセス間でのオブジェクト
間通信を実現するためのサーバオブジェクト呼び出し関
数(SEND関数)を定義するコードが追加される。こ
こで、メソッド呼び出し関数とは、受け取ったデータの
中からメソッド名を取り出して呼び出すべきメンバ関数
を検索し、該当するメンバ関数(メソッド)を呼び出す
関数である。また、メンバ関数テーブル作成関数とは、
メンバ関数の名前を文字列としてテーブルに登録する関
数である。さらに、サーバオブジェクト呼び出し関数
(SEND関数)とは、リモートプロセスに含まれるオ
ブジェクトに対してメソッド呼び出しを行うための関数
であり、具体的には、あらかじめ定められたプロトコル
に従ってリモートプロセスに含まれるオブジェクトに対
してメソッド呼び出しに関するデータ(オブジェクト
名、メソッド名および引数の値等)を送信する関数であ
る。
As shown in FIG. 2, a code for defining a method calling function and a code for defining a member function table creation function are added to each class to be defined as a remote object in the object definition file 11. In addition, a code defining a server object calling function (SEND function) for realizing inter-object communication between remote processes is added to each of the existing member functions included in each class. Here, the method calling function is a function that retrieves a method name from the received data, searches for a member function to be called, and calls the corresponding member function (method). The member function table creation function is
This function registers the name of the member function in the table as a character string. Further, the server object call function (SEND function) is a function for making a method call on an object included in the remote process. Specifically, the server object call function is used to call the object included in the remote process according to a predetermined protocol. This is a function for transmitting data (method name, method name, argument value, etc.) related to method invocation.

【0024】また、図2に示すように、オブジェクト実
装ファイル21に対しては、リモートオブジェクトとし
て定義すべきクラスの各メンバ関数の実装コードに、オ
ブジェクトが動作する位置(クライアントまたはサー
バ)に応じて処理の内容を切り替えるためのコードが追
加される。さらに、基底オブジェクト実装ファイル31
に対しては、あらかじめ定義されているリモートオブジ
ェクト作成関数の実装コードに、リモートオブジェクト
として定義すべきクラスについてそのインスタンスを作
成するためのコードが追加される。
As shown in FIG. 2, for the object implementation file 21, the implementation code of each member function of the class to be defined as a remote object is determined according to the position (client or server) where the object operates. Code to switch the processing content is added. Further, the base object implementation file 31
, A code for creating an instance of a class to be defined as a remote object is added to the implementation code of the remote object creation function defined in advance.

【0025】そして、このようにしてマクロ呼び出し生
成ツール1により生成されたマクロ呼び出し追加オブジ
ェクト定義ファイル12、マクロ呼び出し追加オブジェ
クト実装ファイル22およびマクロ呼び出し追加基底オ
ブジェクト実装ファイル32がコンパイラ6に入力とし
て与えられ、コンパイラ6において、これらのファイル
12,22,32と、あらかじめ準備されたリモートオ
ブジェクト通信ライブラリ群7とを、ファイル12,2
2,32に追加されたマクロ呼び出し定義をマクロ群8
を参照して展開しながらコンパイルおよびリンクする。
これにより、ユーザにより作成されたローカルオブジェ
クト通信プログラム9のオブジェクト定義ファイル11
およびオブジェクト実装ファイル21は、最終的に、リ
モートオブジェクト対応オブジェクト定義ファイル13
およびリモートオブジェクト対応オブジェクト実装ファ
イル23に変更され、最終的にリモートオブジェクト通
信プログラム10が生成される。
Then, the macro call additional object definition file 12, the macro call additional object implementation file 22, and the macro call additional base object implementation file 32 generated by the macro call generation tool 1 are given to the compiler 6 as input. In the compiler 6, these files 12, 22, 32 and the remote object communication library group 7 prepared in advance are
Macro call definition added to macro group 8
Compile and link while expanding with reference to.
Thereby, the object definition file 11 of the local object communication program 9 created by the user
Finally, the object implementation file 21 is the object definition file 13 corresponding to the remote object.
Then, the remote object communication program 10 is generated.

【0026】次に、図3乃至図6により、図1に示すリ
モートオブジェクト通信プログラム生成システムの主要
な構成であるマクロ呼び出し生成ルール1の動作につい
て説明する。ここで、図3乃至図5はそれぞれ図1に示
すリモートオブジェクト通信プログラム生成システムに
おけるオブジェクト定義ファイル、オブジェクト実装フ
ァイルおよび基底オブジェクト実装ファイルへのコード
群の追加方法を説明するためのフローチャート、図6
(a)(b)(c)は図3乃至図5に示す各方法により
オブジェクト定義ファイル、オブジェクト実装ファイル
および基底オブジェクト実装ファイルに追加されるコー
ド群の一例を示す図である。なお、図6(a)(b)
(c)において、オブジェクト定義ファイル、オブジェ
クト実装ファイルおよび基底オブジェクト実装ファイル
はそれぞれC++で記述されており、コード群が追加さ
れる前のソースコード(オブジェクト定義ファイル1
1、オブジェクト実装ファイル21および基底オブジェ
クト実装ファイル31)が左側に示され、コード群が追
加された後のソースコード(マクロ呼び出し追加オブジ
ェクト定義ファイル12、マクロ呼び出し追加オブジェ
クト実装ファイル22およびマクロ呼び出し追加基底オ
ブジェクト実装ファイル32)が右側に示されている。
なお、追加されたコード群は右側のソースコードのうち
網掛け表示の部分に対応しており、ここでは説明の簡略
化のためにマクロ呼び出し定義から展開されたソースコ
ードの形で示されている。
Next, the operation of the macro call generation rule 1 which is the main configuration of the remote object communication program generation system shown in FIG. 1 will be described with reference to FIGS. 3 to 5 are flowcharts for explaining a method of adding a code group to the object definition file, the object implementation file, and the base object implementation file in the remote object communication program generation system shown in FIG.
(A), (b), and (c) are diagrams illustrating an example of a code group added to an object definition file, an object implementation file, and a base object implementation file by the methods illustrated in FIGS. 3 to 5. 6 (a) and 6 (b)
In (c), the object definition file, the object implementation file, and the base object implementation file are each described in C ++, and the source code (the object definition file 1) before the code group is added.
1, the object implementation file 21 and the base object implementation file 31) are shown on the left side, and the source code (the macro call additional object definition file 12, the macro call additional object implementation file 22, and the macro call additional base) after the code group is added. The object implementation file 32) is shown on the right.
The added code group corresponds to the shaded portion of the source code on the right side, and is shown here in the form of the source code expanded from the macro call definition for simplification of the description. .

【0027】まず、図3により、オブジェクト定義ファ
イル11へのコード群の追加方法について説明する。
First, a method of adding a code group to the object definition file 11 will be described with reference to FIG.

【0028】図3に示すように、まず、リモートオブジ
ェクトとして定義すべきクラスを含むオブジェクト定義
ファイル11をマクロ呼び出し生成ツール1に入力する
(ステップ101)。
As shown in FIG. 3, first, an object definition file 11 including a class to be defined as a remote object is input to the macro call generation tool 1 (step 101).

【0029】次に、マクロ呼び出し生成ツール1の第1
コード追加部2により、入力されたオブジェクト定義フ
ァイル11を走査してトークンの切り出しを行う(ステ
ップ102)。
Next, the first of the macro call generation tools 1
The code adding unit 2 scans the input object definition file 11 and cuts out a token (step 102).

【0030】そして、切り出されたトークンの種類を識
別し(ステップ103)、トークンがメンバ関数である
と判断された場合には、そのメンバ関数に対応するサー
バオブジェクト呼び出し関数(図6(a)の符号12c
参照)をインライン関数として作成する(ステップ10
4)。なお、このようにして抽出されたメンバ関数は変
数テーブルに格納される(ステップ105)。
Then, the type of the extracted token is identified (step 103), and if it is determined that the token is a member function, the server object calling function (FIG. 6A) corresponding to the member function is determined. Symbol 12c
(See Step 10) as an inline function
4). The extracted member functions are stored in a variable table (step 105).

【0031】一方、ステップ103において、トークン
がクラス宣言終了子であると判断された場合には、ステ
ップ105において変数テーブルに格納されたメンバ関
数に基づいて、メソッド呼び出し関数(図6(a)の符
号12a参照)およびメンバ関数テーブル作成関数(図
6(a)の符号12b参照)をインライン関数として作
成する(ステップ106およびステップ107)。
On the other hand, if it is determined in step 103 that the token is a class declaration terminator, the method calling function (of FIG. 6A) is determined based on the member function stored in the variable table in step 105. A reference numeral 12a) and a member function table creation function (see reference numeral 12b in FIG. 6A) are created as inline functions (steps 106 and 107).

【0032】その後、トークンがメンバ関数でステップ
104およびステップ105の処理が終了した場合、ト
ークンがクラス宣言終了子でステップ106およびステ
ップ107の処理が終了した場合、またはトークンがメ
ンバ関数でもクラス宣言終了子でもない場合には、この
ようにして切り出されたトークン、および作成された各
種のインライン関数がそのまま元のオブジェクト定義フ
ァイル11に上書きされる(ステップ108)。
Thereafter, when the token is a member function and the processing of steps 104 and 105 is completed, when the token is a class declaration terminator and the processing of steps 106 and 107 is completed, or when the token is a member function, the class declaration is terminated. If it is not a child, the token extracted in this way and the various inline functions created are overwritten on the original object definition file 11 as it is (step 108).

【0033】なお、以上のステップ102乃至ステップ
108の処理は、ファイル終了子が現れるまで繰り返さ
れ(ステップ109)、ファイル終了子が現れた時点
で、図6(a)に示すようなマクロ呼び出し定義を含む
所定のコード群が追加されたマクロ呼び出し追加オブジ
ェクト定義ファイル12が生成される。
Note that the above steps 102 to 108 are repeated until a file terminator appears (step 109). When the file terminator appears, the macro call definition as shown in FIG. Then, a macro call additional object definition file 12 to which a predetermined code group including “.” Is added is generated.

【0034】次に、図4により、オブジェクト実装ファ
イル21へのコード群の追加方法について説明する。
Next, a method of adding a code group to the object mounting file 21 will be described with reference to FIG.

【0035】図4に示すように、まず、リモートオブジ
ェクトとして定義すべきクラスを含むオブジェクト実装
ファイル21をマクロ呼び出し生成ツール1に入力する
(ステップ201)。
As shown in FIG. 4, first, an object implementation file 21 including a class to be defined as a remote object is input to the macro call generation tool 1 (step 201).

【0036】次に、マクロ呼び出し生成ツール1の第2
コード追加部3により、入力されたオブジェクト実装フ
ァイル21を走査してトークンの切り出しを行う(ステ
ップ202)。
Next, the second macro call generation tool 1
The code adding unit 3 scans the input object mounting file 21 to cut out a token (step 202).

【0037】そして、切り出されたトークンの種類を識
別し(ステップ203)、トークンがクラスのメンバ関
数実装開始子であると判断された場合には、開始宣言の
後に自身のオブジェクトの位置がクライアント以外であ
る場合の条件分岐開始コード(図6(b)の符号22a
参照)を作成する(ステップ204)。
Then, the type of the extracted token is identified (step 203). If it is determined that the token is a member function implementation initiator of the class, the position of its own object other than the client is determined after the start declaration. Is a conditional branch start code (reference numeral 22a in FIG. 6B)
(See step 204).

【0038】一方、ステップ203において、トークン
がメンバ関数実装終了子であると判断された場合には、
条件分岐コードとして、クライアントである場合にこの
メンバ関数に対応するサーバオブジェクト呼び出し関数
(SEND関数)を呼び出すコード(図6(b)の符号
22b参照)を作成する(ステップ207)。
On the other hand, if it is determined in step 203 that the token is a member function implementation terminator,
As a conditional branch code, a code for calling a server object calling function (SEND function) corresponding to this member function when the client is a client (see reference numeral 22b in FIG. 6B) is created (step 207).

【0039】その後、トークンがメンバ関数実装開始子
でステップ204の処理が終了した場合、トークンがメ
ンバ関数実装終了子でステップ205の処理が終了した
場合、またはトークンがメンバ関数実装開始子でもメン
バ関数実装終了子でもない場合には、このようにして切
り出されたトークン、および作成されたコードがそのま
ま元のオブジェクト実装ファイル21に上書きされる
(ステップ206)。
Thereafter, when the token is a member function implementation starter and the process of step 204 is completed, when the token is a member function implementation end and the process of step 205 is completed, or when the token is a member function implementation initiator, the member function is not implemented. If it is not an implementation terminator, the token cut out in this way and the created code are overwritten on the original object implementation file 21 as it is (step 206).

【0040】なお、以上のステップ202乃至ステップ
206の処理は、ファイル終了子が現れるまで繰り返さ
れ(ステップ207)、ファイル終了子が現れた時点
で、図6(b)に示すようなマクロ呼び出し定義を含む
所定のコード群が追加されたマクロ呼び出し追加オブジ
ェクト実装ファイル22が生成される。
Note that the above steps 202 to 206 are repeated until a file terminator appears (step 207). When the file terminator appears, the macro call definition as shown in FIG. A macro call additional object implementation file 22 to which a predetermined code group including “.” Is added is generated.

【0041】次に、図5により、基底オブジェクト定義
ファイル31へのコード群の追加方法について説明す
る。
Next, a method of adding a code group to the base object definition file 31 will be described with reference to FIG.

【0042】図5に示すように、まず、リモートオブジ
ェクト通信ライブラリ群7に含まれるリモートオブジェ
クト用の基底オブジェクト実装ファイル31をマクロ呼
び出し生成ツール1に入力する(ステップ301)。
As shown in FIG. 5, first, a base object mounting file 31 for a remote object included in the remote object communication library group 7 is input to the macro call generation tool 1 (step 301).

【0043】次に、リモートオブジェクトとして定義す
べきクラスのクラス名をマクロ呼び出し生成ツール1に
入力した後(ステップ302)、マクロ呼び出し生成ツ
ール1の第3コード追加部4により、ステップ301で
入力された基底オブジェクト実装ファイル31を走査し
てトークンの切り出しを行う(ステップ303)。
Next, after inputting the class name of the class to be defined as the remote object into the macro call generation tool 1 (step 302), the third code addition unit 4 of the macro call generation tool 1 inputs the class name in step 301. The token is extracted by scanning the base object mounting file 31 (step 303).

【0044】そして、切り出されたトークンの種類を識
別し(ステップ304)、トークンがリモートオブジェ
クト作成関数の宣言であると判断された場合には、その
関数の内部に、ステップ302で入力されたクラス名に
対応するインスタンスを作成するコード(図6(c)の
符号32a参照)を作成する(ステップ305)。
Then, the type of the extracted token is identified (step 304), and when it is determined that the token is a declaration of a remote object creation function, the class input in step 302 is included in the function. A code for creating an instance corresponding to the name (see reference numeral 32a in FIG. 6C) is created (step 305).

【0045】その後、トークンがリモートオブジェクト
作成関数の宣言でステップ305の処理が終了した場
合、またはトークンがオブジェクト作成関数の宣言でな
い場合には、このようにして切り出されたトークン、お
よび作成されたコードがそのまま元の基底オブジェクト
実装ファイル31に上書きされる(ステップ306)。
Thereafter, if the processing of step 305 is completed with the token being a declaration of a remote object creation function, or if the token is not a declaration of an object creation function, the token cut out in this way and the created code Is directly overwritten on the original base object mounting file 31 (step 306).

【0046】なお、以上のステップ303乃至ステップ
306の処理は、ファイル終了子が現れるまで繰り返さ
れ(ステップ307)、ファイル終了子が現れた時点
で、図6(c)に示すようなマクロ呼び出し定義を含む
所定のコード群が追加されたマクロ呼び出し追加基底オ
ブジェクト実装ファイル32が生成される。
The above steps 303 to 306 are repeated until a file terminator appears (step 307). When the file terminator appears, the macro call definition as shown in FIG. A macro call additional base object implementation file 32 to which a predetermined code group including “.” Is added is generated.

【0047】このように本実施の形態に係るリモートオ
ブジェクト通信プログラム生成システムによれば、通常
のオブジェクト指向言語で記述された既存のプログラム
のうち、リモートオブジェクトとして定義すべきオブジ
ェクトのオブジェクト定義ファイル11、オブジェクト
実装ファイル21、およびリモートオブジェクト通信ラ
イブラリ群7に含まれるリモートオブジェクト用の基底
オブジェクト実装ファイル31に対して所定のコード群
を追加することにより、メソッド呼び出し等の通常のオ
ブジェクト間通信をリモートプロセス間で実現すること
ができるので、オブジェクト定義ファイル11、オブジ
ェクト実装ファイル21および基底オブジェクト実装フ
ァイル31の既存のコードを何ら改変することなく、既
存のプログラムを最大限に利用してリモートオブジェク
ト通信プログラムを容易に生成することができる。この
ため、IDL定義言語での記述や、IDLコンパイラに
よる通信代理オブジェクトの生成、CORBAでの実装
を意識した設計といった煩雑な手間をかけることなく、
オブジェクト指向言語で記述された既存のプログラムを
基にしてリモートプロセス間でオブジェクト間通信を行
うリモートオブジェクト通信プログラムを容易に生成す
ることができる。
As described above, according to the remote object communication program generation system according to the present embodiment, the object definition file 11 of the object to be defined as the remote object among the existing programs described in the ordinary object-oriented language, By adding a predetermined code group to the object implementation file 21 and the base object implementation file 31 for remote objects included in the remote object communication library group 7, normal inter-object communication such as method invocation can be performed between remote processes. Can be implemented without modifying the existing codes of the object definition file 11, the object implementation file 21, and the base object implementation file 31 at all. The remote object communication program using the large limit can easily be generated. Therefore, there is no need for complicated work such as description in an IDL definition language, generation of a communication proxy object by an IDL compiler, and design in consideration of implementation in CORBA.
It is possible to easily generate a remote object communication program for performing inter-object communication between remote processes based on an existing program described in an object-oriented language.

【0048】また本実施の形態に係るリモートオブジェ
クト通信プログラム生成システムによれば、オブジェク
ト定義ファイル11、オブジェクト実装ファイル21お
よび基底オブジェクト実装ファイル31に対して、ソー
スコードの代わりにマクロ呼び出し定義を追加するよう
にしているので、コードの煩雑化を防止することができ
る。
According to the remote object communication program generation system according to the present embodiment, a macro call definition is added to the object definition file 11, the object implementation file 21, and the base object implementation file 31 instead of the source code. Thus, it is possible to prevent the code from being complicated.

【0049】リモートオブジェクト通信システム 次に、図7乃至図11により、図1乃至図6に示すリモ
ートオブジェクト通信プログラム生成システムにより生
成されるリモートオブジェクト通信システムについて説
明する。
Remote Object Communication System Next, a remote object communication system generated by the remote object communication program generation system shown in FIGS. 1 to 6 will be described with reference to FIGS.

【0050】図7はリモートオブジェクト通信システム
の全体構成を示す図である。図7に示すように、リモー
トオブジェクト通信システムは、クライアント40およ
びサーバ50上で動作するリモートプロセス間でオブジ
ェクト間通信を行うものであり、クライアントプロセス
(クライアントプロセス手段)41と、サーバプロセス
(サーバプロセス手段)51と、クライアントプロセス
41とサーバプロセス51との間でバイナリデータの送
受信を行うためのストリームソケット55とを備えてい
る。
FIG. 7 is a diagram showing the overall configuration of the remote object communication system. As shown in FIG. 7, the remote object communication system performs inter-object communication between a remote process operating on a client 40 and a server 50. The remote object communication system includes a client process (client process means) 41 and a server process (server process). Means) 51, and a stream socket 55 for transmitting and receiving binary data between the client process 41 and the server process 51.

【0051】ここで、クライアントプロセス41および
サーバプロセス51はそれぞれ、同一のクラスから生成
されるクライアントオブジェクト42およびサーバオブ
ジェクト52を有しており、クライアントオブジェクト
42はサーバオブジェクト52の代理オブジェクトとし
て動作するようになっている。
Here, each of the client process 41 and the server process 51 has a client object 42 and a server object 52 generated from the same class, and the client object 42 operates as a proxy object of the server object 52. It has become.

【0052】また、クライアントプロセス41およびサ
ーバプロセス51はそれぞれ、リモートプロセス間での
オブジェクト間通信を行うオブジェクトの識別情報(オ
ブジェクトの名前およびアドレス)を保持するソケット
アクセスオブジェクト43,53を有し、ストリームソ
ケット55を介したバイナリデータ通信をオブジェクト
間通信(メソッド呼び出し通信)に見せかけることによ
り、クライアントオブジェクト42またはサーバオブジ
ェクト52からのメソッド呼び出しをリモートプロセス
間でのオブジェクト間通信として実現するようになって
いる。なお、ソケットアクセスオブジェクト43,53
は、図1に示すリモートオブジェクト通信プログラム生
成システムのリモートオブジェクト通信ライブラリ群7
に対応している。
Each of the client process 41 and the server process 51 has socket access objects 43 and 53 for storing identification information (object names and addresses) of objects performing inter-object communication between remote processes. By imitating binary data communication via the socket 55 as inter-object communication (method call communication), a method call from the client object 42 or the server object 52 is realized as inter-object communication between remote processes. . The socket access objects 43 and 53
Is a remote object communication library group 7 of the remote object communication program generation system shown in FIG.
It corresponds to.

【0053】具体的には例えば、クライアントプロセス
41においてクライアントオブジェクト42のメソッド
呼び出しを行うと、クライアントオブジェクト42から
ストリームソケット55に対して、あらかじめ定められ
たプロトコル(データ構造)に従ってメソッド呼び出し
に関するデータ(オブジェクト名、メソッド名および引
数の値等)を送信する。ここで、クライアントオブジェ
クト42からストリームソケット55に対してデータを
送信するメンバ関数は、図1に示すリモートオブジェク
ト通信プログラム生成システムによりオブジェクト定義
ファイル11に追加されるサーバオブジェクト呼び出し
関数(図6(a)の符号12c参照)であり、ユーザが
作成する必要のない関数である。
More specifically, for example, when a method call of the client object 42 is performed in the client process 41, data (object) relating to the method call is transmitted from the client object 42 to the stream socket 55 in accordance with a predetermined protocol (data structure). Name, method name and argument value). Here, the member function for transmitting data from the client object 42 to the stream socket 55 is a server object call function (FIG. 6A) added to the object definition file 11 by the remote object communication program generation system shown in FIG. This is a function that does not need to be created by the user.

【0054】一方、このようなデータが送信されたサー
バプロセス51においては、ソケットアクセスオブジェ
クト53がストリームソケット55を介してバイナリデ
ータを受信し、ソケットアクセスオブジェクト53のデ
ータ取り出しメソッドにより、あらかじめ定められたプ
ロトコル(データ構造)に従ってデータを分解してオブ
ジェクト名およびその他のデータを取り出し、該当する
オブジェクトに対してデータを渡す。そして、データが
渡されたサーバオブジェクト52により、受け取ったデ
ータの中からメソッド名を取り出して該当するメソッド
を実行する。ここで、サーバオブジェクト52において
メソッド名を取り出して該当するメソッドを呼び出すメ
ンバ関数は、図1に示すリモートオブジェクト通信プロ
グラム生成システムによりオブジェクト定義ファイル1
1に追加されるメソッド呼び出し関数(図6(a)の符
号12a参照)であり、ユーザが作成する必要のない関
数である。
On the other hand, in the server process 51 to which such data has been transmitted, the socket access object 53 receives the binary data via the stream socket 55, and is determined in advance by the data extraction method of the socket access object 53. The data is decomposed according to the protocol (data structure) to extract the object name and other data, and the data is passed to the corresponding object. Then, the server object 52 to which the data is passed extracts a method name from the received data and executes the corresponding method. Here, the member function for extracting the method name and calling the corresponding method in the server object 52 is the object definition file 1 by the remote object communication program generation system shown in FIG.
This is a method call function (see reference numeral 12a in FIG. 6A) added to 1 and is a function that does not need to be created by the user.

【0055】なお、このようなクライアントプロセス4
1およびサーバプロセス51においては、ソケットアク
セスオブジェクト43,53に対してリモートオブジェ
クトの名前およびアドレスを登録する必要がある。ここ
で、ソケットアクセスオブジェクト43,53に対して
リモートオブジェクトの名前およびアドレスを登録する
メンバ関数は、図1に示すリモートオブジェクト通信プ
ログラム生成システムによりオブジェクト定義ファイル
11に追加されるメンバ関数テーブル作成関数(図6
(a)の符号12b参照)であり、ユーザが作成する必
要のない関数である。
Note that such a client process 4
1 and the server process 51, it is necessary to register the names and addresses of the remote objects with respect to the socket access objects 43 and 53. Here, the member function for registering the name and address of the remote object with respect to the socket access objects 43 and 53 is a member function table creation function added to the object definition file 11 by the remote object communication program generation system shown in FIG. FIG.
(See reference numeral 12b in (a)), which is a function that does not need to be created by the user.

【0056】次に、図8乃至図11により、図7に示す
リモートオブジェクト通信システムの動作について説明
する。ここで、図8乃至図11は図7に示すリモートオ
ブジェクト通信システムのクライアント側およびサーバ
側の動作を説明するためのフローチャートである。
Next, the operation of the remote object communication system shown in FIG. 7 will be described with reference to FIGS. Here, FIGS. 8 to 11 are flowcharts for explaining operations on the client side and the server side of the remote object communication system shown in FIG.

【0057】まず、図8および図9により、図7に示す
リモートオブジェクト通信システムのクライアント40
側の動作について説明する。
First, referring to FIGS. 8 and 9, the client 40 of the remote object communication system shown in FIG.
The operation on the side will be described.

【0058】図8はクライアント40側の初期化準備の
手順を説明するためのフローチャートである。図8に示
すように、クライアント40側でリモートオブジェクト
を作成する場合には、まず、呼び出し対象となるサーバ
50側のリモートオブジェクトに与えられるオブジェク
ト名と、クライアント40側で作成されるオブジェクト
(代理オブジェクト)であることを示す値とを与えてオ
ブジェクトを作成する(ステップ401)。次に、スト
リームソケット55にアクセスするためのソケットアク
セスオブジェクト43を作成し、このソケットアクセス
オブジェクト43に対して、ステップ401で作成され
たリモートオブジェクトの名前およびアドレスを登録す
る(ステップ402)。最後に、ソケットアクセスオブ
ジェクト43に対して、クライアント40側で所定の初
期化処理を行うための準備関数を呼び出す(ステップ4
03)。
FIG. 8 is a flowchart for explaining the procedure for preparing for initialization on the client 40 side. As shown in FIG. 8, when creating a remote object on the client 40 side, first, an object name given to the remote object on the server 50 side to be called and an object created on the client 40 side (a proxy object) ) To create an object (step 401). Next, a socket access object 43 for accessing the stream socket 55 is created, and the name and address of the remote object created in step 401 are registered in the socket access object 43 (step 402). Finally, a preparation function for performing a predetermined initialization process on the client 40 side is called for the socket access object 43 (step 4).
03).

【0059】図9はクライアント40側での通信手順を
説明するためのフローチャートである。図9に示すよう
に、クライアント40側からリモートオブジェクトのメ
ソッド呼び出しを行う場合には、クライアント40側で
通常のメソッド呼び出しを行う(ステップ501)。こ
のとき、クライアントオブジェクト42の内部では、オ
ブジェクトが動作する位置がクライアント側であること
を認識し、呼び出されたメンバ関数に対応するサーバオ
ブジェクト呼び出し関数(SEND関数)を呼び出し、
サーバ50側のリモートオブジェクトを呼び出す(ステ
ップ502)。
FIG. 9 is a flowchart for explaining the communication procedure on the client 40 side. As shown in FIG. 9, when a method of a remote object is called from the client 40, a normal method is called on the client 40 (step 501). At this time, the client object 42 recognizes that the position where the object operates is on the client side, and calls a server object call function (SEND function) corresponding to the called member function.
The remote object on the server 50 side is called (step 502).

【0060】図10はサーバ50側の初期化準備の手順
を説明するためのフローチャートである。図10に示す
ように、サーバ50側でリモートオブジェクトを作成す
る場合には、まず、オブジェクト名と、サーバ50側で
作成されることを示す値とを与えてオブジェクトを作成
する(ステップ601)。次に、ストリームソケット5
5にアクセスするためのソケットアクセスオブジェクト
53を作成し、このソケットアクセスオブジェクト53
に対して、ステップ601で作成されたリモートオブジ
ェクトの名前およびアドレスを登録する(ステップ60
2)。最後に、ソケットアクセスオブジェクト53に対
して、サーバ50側で所定の初期化処理を行うための準
備関数を呼び出す(ステップ603)。
FIG. 10 is a flowchart for explaining the procedure for preparing for initialization on the server 50 side. As shown in FIG. 10, when creating a remote object on the server 50 side, first, an object name and a value indicating creation on the server 50 side are given to create an object (step 601). Next, stream socket 5
5 to create a socket access object 53 for accessing
, The name and address of the remote object created in step 601 are registered (step 60).
2). Finally, the server 50 calls a preparation function for performing a predetermined initialization process on the socket access object 53 (step 603).

【0061】図11はサーバ50側での通信手順を説明
するためのフローチャートである。図11に示すよう
に、サーバ50側のリモートオブジェクトに対してクラ
イアント40側からメソッド呼び出しが行われた場合に
は、ストリームソケット55がデータを受信した後(ス
テップ701)、ソケットアクセスオブジェクト53の
データ取り出しメソッドを呼び出す(ステップ70
2)。そして、ソケットアクセスオブジェクト53のデ
ータ取り出しメソッドにより、受信したデータから、あ
らかじめ定められたプロトコルに従ってオブジェクト名
およびその他のデータを取り出し、該当するオブジェク
トに対してデータを渡す(ステップ703)。そして最
後に、その該当するオブジェクトのメソッド呼び出し関
数により、受け取ったデータの中からメソッド名を取り
出して呼び出すべきメンバ関数を検索し、該当するメン
バ関数(メソッド)を呼び出す(ステップ704)。
FIG. 11 is a flowchart for explaining the communication procedure on the server 50 side. As shown in FIG. 11, when a method is called from the client 40 to the remote object on the server 50 side, after the stream socket 55 receives the data (step 701), the data of the socket access object 53 is read. Call the retrieval method (step 70)
2). Then, an object name and other data are extracted from the received data by a data extraction method of the socket access object 53 according to a predetermined protocol, and the data is passed to the corresponding object (step 703). Finally, the method name of the corresponding object is used to retrieve the method name from the received data, search for a member function to be called, and call the corresponding member function (method) (step 704).

【0062】このように本実施の形態に係るリモートオ
ブジェクト通信システムによれば、リモートプロセス間
でのオブジェクト間通信を行うオブジェクトの識別情報
(オブジェクトの名前およびアドレス)を保持するソケ
ットアクセスオブジェクト43,53を有し、ストリー
ムソケット55を介したバイナリデータ通信をオブジェ
クト間通信(メソッド呼び出し通信)に見せかけるよう
にしているので、IDL定義言語での記述や、IDLコ
ンパイラによる通信代理オブジェクトの生成、CORB
Aでの実装を意識した設計といった煩雑な手間をかける
ことなく、メソッド呼び出し等の通常のオブジェクト間
通信をリモートプロセス間で実現することができる。
As described above, according to the remote object communication system according to the present embodiment, the socket access objects 43 and 53 holding the identification information (object names and addresses) of the objects performing the inter-object communication between the remote processes. Since binary data communication via the stream socket 55 is made to appear as inter-object communication (method call communication), description in the IDL definition language, generation of a communication proxy object by the IDL compiler, CORB
A normal inter-object communication such as a method call can be realized between the remote processes without a troublesome work such as a design conscious of the implementation in A.

【0063】リモートオブジェクト通信プログラム生成
プログラムを記録したコンピュータ読み取り可能な記録
媒体 次に、図12および図13により、図1に示すリモート
オブジェクト通信プログラム生成システムに対応するプ
ログラムを記録したコンピュータ読み取り可能な記録媒
体について説明する。
Generation of remote object communication program
Computer-readable record of the program
Medium A computer-readable recording medium that records a program corresponding to the remote object communication program generation system shown in FIG. 1 will now be described with reference to FIGS.

【0064】図1に示すリモートオブジェクト通信プロ
グラム生成システムのうち、マクロ呼び出し生成ツール
1の第1乃至第3コード追加部2,3,4およびコンパ
イラ6は、図12に示すようなコンピュータシステム6
0上で稼働するプログラムモジュールとして実現するこ
とができる。なおこのとき、マクロ呼び出し生成ツール
1の第1乃至第3コード追加部2,3,4およびコンパ
イラ6における処理で必要となるデータ(マクロ生成ル
ール記憶部5に記憶されたマクロ生成ルール、リモート
オブジェクト通信ライブラリ群7およびマクロ群8等)
は、コンピュータシステム60のハードディスクユニッ
ト68(図13参照)等に格納される。
In the remote object communication program generation system shown in FIG. 1, the first to third code addition units 2, 3, and 4 and the compiler 6 of the macro call generation tool 1 are composed of a computer system 6 as shown in FIG.
0 can be implemented as a program module that runs on the Internet. At this time, data necessary for processing in the first to third code addition units 2, 3, and 4 of the macro call generation tool 1 and the compiler 6 (the macro generation rule stored in the macro generation rule storage unit 5, the remote object Communication library group 7 and macro group 8 etc.)
Are stored in the hard disk unit 68 (see FIG. 13) of the computer system 60 or the like.

【0065】ここで、このようなプログラムモジュール
を含むリモートオブジェクト通信プログラム生成プログ
ラムや、上述したマクロ生成ルール5、リモートオブジ
ェクト通信ライブラリ群7およびマクロ群8等のデータ
は所定の記録媒体に記録され、コンピュータシステム6
0により読み出され、上述したようなリモートオブジェ
クト通信プログラムの生成処理が行われる。
Here, a remote object communication program generation program including such a program module, data of the macro generation rule 5, the remote object communication library group 7 and the macro group 8, and the like are recorded on a predetermined recording medium. Computer system 6
0, and the generation processing of the remote object communication program as described above is performed.

【0066】コンピュータシステム60は、図12に示
すようにミニタワー等の筐体に収納されたコンピュータ
本体61と、CRT(Cathode Ray Tube−陰極線管−)
等の表示装置62と、記録出力装置としてのプリンタ6
3と、入力装置としてのキーボード64aおよびマウス
64bと、記録媒体としてのフロッピーディスク71内
の情報を読み出すためのフロッピーディスクドライブ装
置66と、記録媒体としてのCD−ROM(Compact Di
sk-Read Only Memory)72内の情報を読み出すための
CD−ROMドライブ装置67とを備えている。
As shown in FIG. 12, the computer system 60 includes a computer main body 61 housed in a housing such as a mini tower and a CRT (Cathode Ray Tube).
And a printer 6 as a recording output device
3, a keyboard 64a and a mouse 64b as input devices, a floppy disk drive 66 for reading information from a floppy disk 71 as a recording medium, and a CD-ROM (Compact Diode) as a recording medium.
and a CD-ROM drive device 67 for reading information from a sk-Read Only Memory (72).

【0067】これらの構成をブロック図として示すと、
図13に示すように、コンピュータ本体61が収納され
た筐体内には、RAM(Random Access Memory)等から
なる内部メモリ65と、ハードディスクユニット68等
の外部記憶装置がさらに設けられている。なお、リモー
トオブジェクト通信プログラム生成プログラムを記録し
たフロッピーディスク(記録媒体)71は、図12に示
すように、フロッピーディスクドライブ装置66のスロ
ットに挿入されて所定の手順によりコンピュータ本体6
1にインストールされる。なお、リモートオブジェクト
通信プログラム生成プログラムが記録された記録媒体
は、フロッピーディスク71に限られず、CD−ROM
72や内部メモリ65、ハードディスクユニット68等
の他、図示されていないMO(Magneto Optical)ディ
スクや光ディスク、DVD(DigitalVersatile Disk)
等であっても良い。
When these structures are shown as a block diagram,
As shown in FIG. 13, an internal memory 65 such as a RAM (Random Access Memory) and an external storage device such as a hard disk unit 68 are further provided in a housing in which the computer main body 61 is stored. The floppy disk (recording medium) 71 on which the remote object communication program generating program is recorded is inserted into a slot of the floppy disk drive 66 as shown in FIG.
1 is installed. The recording medium on which the remote object communication program generation program is recorded is not limited to the floppy disk 71, but may be a CD-ROM.
72, an internal memory 65, a hard disk unit 68, etc., a MO (Magneto Optical) disk, an optical disk, and a DVD (Digital Versatile Disk) not shown.
And so on.

【0068】[0068]

【実施例】次に、上述した実施の形態に係るリモートオ
ブジェクト通信プログラム生成システムおよびそのシス
テムにより生成されたリモートオブジェクト通信システ
ムの具体的実施例について述べる。なお、本実施例で
は、既存のプログラムが一般的なオブジェクト指向言語
であるC++で記述されている場合を例にとり説明す
る。
Next, specific examples of the remote object communication program generation system according to the above-described embodiment and the remote object communication system generated by the system will be described. In the present embodiment, a case where an existing program is described in C ++ which is a general object-oriented language will be described as an example.

【0069】本実施例においては、使用言語であるC+
+がマクロ展開の機能を備えているので、ローカルオブ
ジェクト通信プログラム9のオブジェクト定義ファイル
11、オブジェクト実装ファイル21および基底オブジ
ェクト実装ファイル31に追加されるコード群として、
次のような構文規則に従ったマクロ群に対応するマクロ
呼び出し定義を追加する。
In this embodiment, the language used is C +
Since + has a macro expansion function, a code group added to the object definition file 11, the object implementation file 21, and the base object implementation file 31 of the local object communication program 9 is as follows.
Add a macro call definition corresponding to the macro group according to the following syntax rules.

【0070】マクロ構文 マクロ呼び出し定義の構文の一例を次に示す。 Macro Syntax An example of the syntax of the macro call definition is shown below.

【0071】(1)オブジェクト定義ファイル11に追
加されるメソッド呼び出し関数 <メソッド呼び出し関数>::=METHODCALL(<CASE文>) <CASE文>::=CASE(<メソッド呼び出し名>(<引数マクロ
>),<順番>)|<CASE文>CASE(<メソッド呼び出し名>(<引数
マクロ>),<順番>) <メソッド呼び出し名>::=クラス内で定義されているメ
ンバ関数の名前(引数を含まない) <引数マクロ>::=<引数種類>(<順番>),|<引数種類>(<ク
ラス名>,<順番>),|<引数マクロ><引数種類>(<順番>),|<
引数マクロ><引数種類>(<クラス名>,<順番>), <順番>::=メンバ関数の順序付け番号 <引数種類>::=INT|DOUBLE|FLOAT|CHAR|INTARRAY|DOUBLE
ARRAY|FLOATARRAY|CHARARRAY|OBJ
(1) Method call function added to the object definition file 11 <method call function> :: = METHODCALL (<CASE statement>) <CASE statement> :: = CASE (<method call name>(<argument macro
>), <Order>) | <CASE statement> CASE (<method invocation name>(<argumentmacro>),<order>)<method invocation name> :: = name of member function defined in class ( <Argument macro> :: = <Argument type>(<Order>), | <Argument type>(<Classname>,<Order>), | <Argument macro><Argumenttype>(<Order>), | <
Argument macro><Argumenttype>(<Classname>,<Order>),<Order> :: = Order number of member function <Argument type> :: = INT | DOUBLE | FLOAT | CHAR | INTARRAY | DOUBLE
ARRAY | FLOATARRAY | CHARARRAY | OBJ

【0072】(2)オブジェクト定義ファイル11に追
加されるメンバ関数テーブル作成関数 <メンバ関数テーブル作成関数>::=CREATETABLE(<TABLE
文>) <TABLE文>::=TABLE("<メンバ関数宣言>",<順番.>)|<TAB
LE文>TABLE("<メンバ関数宣言>",<順番.>) <メンバ関数宣言>::=クラス内で定義されているメンバ
関数の名前(引数を含まない) <順番>::=メンバ関数の順序付け番号
(2) Member function table creation function added to object definition file 11 <Member function table creation function> :: = CREATETABLE (<TABLE
Statement>) <TABLE statement> :: = TABLE ("<member function declaration>", <order.>) | <TAB
LE statement> TABLE ("<member function declaration>", <order.>) <Member function declaration> :: = Name of the member function defined in the class (not including the argument) <order> :: = member Function ordering number

【0073】(3)オブジェクト定義ファイル11に追
加されるサーバオブジェクト呼び出し関数(SEND関
数) <サーバオブジェクト呼び出し関数>::=REMETHOD(<返り
値型>,<メンバ関数宣言>,<変数マクロ>,<順番>) <返り値型>::=メンバ関数宣言内で使われている返り値
型 <メンバ関数宣言>::=クラス内で定義されているメンバ
関数の名前(引数を含まない) <変数マクロ>::=<変数種類>(<メンバ関数宣言引数>)|<
変数種類>(<メンバ関数宣言引数>,<配列数>)|<変数マク
ロ><変数種類>(<メンバ関数宣言引数>,<配列数>)|<変数
マクロ><変数種類>(<メンバ関数宣言引数>) <変数種類>::=INTVAR|DOUBLEVAR|FLOATVAR|CHARVAR|INT
ARRAYVAR|DOUBLEARRAYVAR|FLOATARRAYVAR|CHARARRAYVAR
|OBJVAR <メンバ関数宣言引数>::=メンバ関数宣言内で使われて
いる引数 <配列数>::=配列の数 <順番>::=メンバ関数の順序付け番号)
(3) Server object call function (SEND function) added to object definition file 11 <server object call function> :: = REMETHOD (<return value type>, <member function declaration>, <variable macro>, <Order>) <Return value type> :: = Return value type used in the member function declaration <Member function declaration> :: = Name of the member function defined in the class (excluding arguments) < Variable macro> :: = <variable type>(<member function declaration argument>) | <
Variable type>(<member function declaration argument>, <number of arrays>) | <variable macro><variabletype>(<member function declaration argument>, <number of arrays>) | <variable macro><variabletype>(<member Function declaration argument>) <variable type> :: = INTVAR | DOUBLEVAR | FLOATVAR | CHARVAR | INT
ARRAYVAR | DOUBLEARRAYVAR | FLOATARRAYVAR | CHARARRAYVAR
| OBJVAR <argument of member function declaration> :: = argument used in member function declaration <number of arrays> :: = number of arrays <order> :: = ordering number of member function)

【0074】(4)基底オブジェクト実装ファイル31
に追加されるリモートオブジェクト作成関数 <リモートオブジェクト作成>::=CLASSNAME(<クラス名>) <クラス名>::=作成するクラスの名前
(4) Base Object Implementation File 31
Remote object creation function added to <remote object creation> :: = CLASSNAME (<class name>) <class name> :: = name of class to create

【0075】バイナリデータのデータ構造 また、本実施例においては、ストリームソケット55を
用いたバイナリデータ通信に図14に示すようなデータ
構造を用いる。すなわち、図14に示された構造体およ
び共用体(データストリーム、データ要素、データおよ
びクラスデータ)がクライアントプロセス41とサーバ
プロセス51との間のバイナリデータ通信のプロトコル
となっており、送信側では、図14に示されたデータ構
造の順序でデータを送信し、受信側ではこのデータ構造
に従ってデータを取り出す。
Data Structure of Binary Data In this embodiment, a data structure as shown in FIG. 14 is used for binary data communication using the stream socket 55. That is, the structure and union (data stream, data element, data, and class data) shown in FIG. 14 are the protocols of the binary data communication between the client process 41 and the server process 51, and the transmitting side The data is transmitted in the order of the data structure shown in FIG. 14, and the receiving side retrieves the data according to this data structure.

【0076】図15(a)(b)はローカルオブジェク
ト通信プログラムおよびリモートオブジェクト通信プロ
グラムの関係を模式的に示す概略図である。図15
(a)に示すローカルオブジェクト通信プログラムにお
いては、Main関数からTestクラスのオブジェクトが作成
され、作成されたオブジェクトのメンバ関数であるSetD
ata()やPrint()が呼び出される。このようなローカルオ
ブジェクト通信プログラムがクライアントプロセスとサ
ーバプロセスとに分割された場合には、図15(b)に
示すように、クライアントプロセス内で生成されたオブ
ジェクトであってサーバオブジェクトの代理オブジェク
トであるTestクラスのオブジェクトを介して、サーバプ
ロセス内で生成されたTestクラスのオブジェクトのメソ
ッドが呼び出される。
FIGS. 15A and 15B are schematic diagrams schematically showing a relationship between a local object communication program and a remote object communication program. FIG.
In the local object communication program shown in (a), an object of the Test class is created from the Main function, and SetD, which is a member function of the created object, is created.
ata () and Print () are called. When such a local object communication program is divided into a client process and a server process, as shown in FIG. 15B, it is an object generated in the client process and a proxy object of the server object. Via the Test class object, the method of the Test class object created in the server process is called.

【0077】ここで、図15(b)に示すリモートオブ
ジェクト通信プログラムを、上述したマクロ構文および
バイナリデータのデータ構造を用いて実装した場合のク
ラス構成図を図16および図17に示す。
FIGS. 16 and 17 show class configuration diagrams in the case where the remote object communication program shown in FIG. 15B is implemented using the above-described macro syntax and the data structure of binary data.

【0078】図16および図17において、クライアン
トプロセス側のTestオブジェクトを介してサーバプロセ
ス側のTestオブジェクトのメンバ関数を呼び出す手順
(図11乃至図14に示すフローチャートに対応する手
順)が符号1)〜9)として示されている。また、図1
6および図17において、Testクラスはリモートオブジ
ェクトとして再定義されたクラス、RemoteObjクラスは
リモートオブジェクトを定義する場合の基底クラス、So
ckInitialクラスはソケットアクセスクラスである。図
16および図17に示すように、クライアントプロセス
側とサーバプロセス側では、基本的に同じクラス構成を
とり、Testクラスにクライアントオブジェクト(代理オ
ブジェクト)とサーバオブジェクトの両方の役割を持た
せている。なお、このようにクライアントプロセス側と
サーバプロセス側で同一のTestクラスを用いることによ
り、1つのプロセスをクライアントプロセスとサーバプ
ロセスとに分割した場合でも、Testクラスのオブジェク
トに対する通常のメソッド呼び出しに何ら変更を加える
必要がない。また、クライアントプロセス内で作成され
たリモートオブジェクトに対してサーバプロセス側から
メッセージを送ることも可能となる。
In FIGS. 16 and 17, the procedure for calling the member function of the Test object on the server process side via the Test object on the client process side (the procedure corresponding to the flowcharts shown in FIGS. 11 to 14) is 1) to FIG. 9). FIG.
In FIG. 6 and FIG. 17, the Test class is a class redefined as a remote object, the RemoteObj class is a base class for defining a remote object,
The ckInitial class is a socket access class. As shown in FIGS. 16 and 17, the client process side and the server process side have basically the same class configuration, and the Test class has the role of both the client object (proxy object) and the server object. By using the same Test class on the client process side and the server process side in this way, even if one process is divided into a client process and a server process, there is no change to a normal method call for the Test class object. Need not be added. It is also possible to send a message from the server process to a remote object created in the client process.

【0079】なお、上述した実施例では、使用言語とし
てC++を用いた場合を例にとり説明したが、これ以外
の任意のオブジェクト指向言語を用いることができ、ま
たマクロ展開を利用できないプログラミング言語につい
ても、マクロ呼び出し定義の代わりに直接ソースコード
を追加することにより対応することができる。
In the above-described embodiment, the case where C ++ is used as the language to be used has been described as an example. However, any other object-oriented language can be used, and programming languages which cannot use macro expansion are also used. This can be handled by adding source code directly instead of the macro call definition.

【0080】[0080]

【発明の効果】以上説明したように本発明によれば、既
存のコードを何ら改変することなく、既存のプログラム
を最大限に利用してリモートオブジェクト通信プログラ
ムを容易に生成することができる。
As described above, according to the present invention, a remote object communication program can be easily generated by making the most of an existing program without modifying the existing code.

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

【図1】本発明によるリモートオブジェクト通信プログ
ラム生成システムの一実施の形態を示すブロック図。
FIG. 1 is a block diagram showing an embodiment of a remote object communication program generation system according to the present invention.

【図2】図1に示すリモートオブジェクト通信プログラ
ム生成システムにより追加されるコード群の詳細を説明
するための図。
FIG. 2 is a view for explaining details of a code group added by the remote object communication program generation system shown in FIG. 1;

【図3】図1に示すリモートオブジェクト通信プログラ
ム生成システムにおけるオブジェクト定義ファイルへの
コード群の追加方法を説明するためのフローチャート。
FIG. 3 is a flowchart for explaining a method of adding a code group to an object definition file in the remote object communication program generation system shown in FIG. 1;

【図4】図1に示すリモートオブジェクト通信プログラ
ム生成システムにおけるオブジェクト実装ファイルへの
コード群の追加方法を説明するためのフローチャート。
FIG. 4 is a flowchart for explaining a method of adding a code group to an object mounting file in the remote object communication program generation system shown in FIG. 1;

【図5】図1に示すリモートオブジェクト通信プログラ
ム生成システムにおける基底オブジェクト実装ファイル
へのコード群の追加方法を説明するためのフローチャー
ト。
FIG. 5 is a flowchart for explaining a method of adding a code group to a base object mounting file in the remote object communication program generation system shown in FIG. 1;

【図6】図3乃至図5に示す各方法によりオブジェクト
定義ファイル、オブジェクト実装ファイルおよび基底オ
ブジェクト実装ファイルに追加されるコード群の一例を
示す図。
FIG. 6 is a diagram showing an example of a code group added to an object definition file, an object implementation file, and a base object implementation file by the methods shown in FIGS. 3 to 5;

【図7】本発明によるリモートオブジェクト通信システ
ムの一実施の形態を示すブロック図。
FIG. 7 is a block diagram showing one embodiment of a remote object communication system according to the present invention.

【図8】図7に示すリモートオブジェクト通信システム
におけるクライアント側の初期化準備の手順を説明する
ためのフローチャート。
FIG. 8 is a flowchart for explaining a procedure for client-side initialization preparation in the remote object communication system shown in FIG. 7;

【図9】図7に示すリモートオブジェクト通信システム
におけるクライアント側での通信手順を説明するための
フローチャート。
FIG. 9 is a flowchart illustrating a communication procedure on the client side in the remote object communication system shown in FIG. 7;

【図10】図7に示すリモートオブジェクト通信システ
ムにおけるサーバ側の初期化準備の手順を説明するため
のフローチャート。
FIG. 10 is a flowchart for explaining a procedure for preparing for initialization on the server side in the remote object communication system shown in FIG. 7;

【図11】図7に示すリモートオブジェクト通信システ
ムにおけるサーバ側での通信手順を説明するためのフロ
ーチャート。
11 is a flowchart for explaining a communication procedure on the server side in the remote object communication system shown in FIG. 7;

【図12】リモートオブジェクト通信プログラム生成プ
ログラムを記録したコンピュータ読み取り可能な記録媒
体が用いられるコンピュータシステムを示す斜視図。
FIG. 12 is an exemplary perspective view showing a computer system using a computer-readable recording medium on which a remote object communication program generation program is recorded.

【図13】図12に示すコンピュータシステムのハード
ウェア構成を示すブロック図。
13 is a block diagram showing a hardware configuration of the computer system shown in FIG.

【図14】図7に示すリモートオブジェクト通信システ
ムで送受信されるバイナリデータのデータ構造の一例を
示す図。
14 is a diagram showing an example of a data structure of binary data transmitted and received in the remote object communication system shown in FIG.

【図15】ローカルオブジェクト通信プログラムとリモ
ートオブジェクト通信プログラムとの関係を模式的に示
す概略図。
FIG. 15 is a schematic diagram schematically showing the relationship between a local object communication program and a remote object communication program.

【図16】図1に示すリモートオブジェクト通信プログ
ラム生成システムにより生成されたリモートオブジェク
ト通信システムの具体的実装例のうちクライアント側の
クラス構成を示す図。
FIG. 16 is a view showing a client-side class configuration in a specific implementation example of the remote object communication system generated by the remote object communication program generation system shown in FIG. 1;

【図17】図1に示すリモートオブジェクト通信プログ
ラム生成システムにより生成されたリモートオブジェク
ト通信システムの具体的実装例のうちサーバ側のクラス
構成を示す図。
FIG. 17 is a diagram showing a class configuration on the server side in a specific implementation example of the remote object communication system generated by the remote object communication program generation system shown in FIG. 1;

【図18】従来の情報処理システムの一例(集中型のメ
インフレーム型システム)を示す図。
FIG. 18 is a diagram showing an example of a conventional information processing system (centralized mainframe type system).

【図19】従来の情報処理システムの別の例(分散型ク
ライアント/サーバシステム)を示す図。
FIG. 19 is a diagram showing another example (distributed client / server system) of a conventional information processing system.

【図20】従来の情報処理システムのさらに別の例(T
hinクライアント型のシステム)を示す図。
FIG. 20 shows still another example of the conventional information processing system (T
FIG. 2 is a diagram showing a (hin client type system).

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

1 マクロ呼び出し生成ツール 2 第1コード追加部 3 第2コード追加部 4 第3コード追加部 5 マクロ生成ルール記憶部 6 コンパイラ 7 リモートオブジェクト通信ライブラリ群 8 マクロ群 9 ローカルオブジェクト通信プログラム 10 リモートオブジェクト通信プログラム 11 オブジェクト定義ファイル 12 マクロ呼び出し追加オブジェクト定義ファイル 13 リモートオブジェクト対応オブジェクト定義ファ
イル 21 オブジェクト実装ファイル 22 マクロ呼び出し追加オブジェクト実装ファイル 23 リモートオブジェクト対応オブジェクト実装ファ
イル 31 基底オブジェクト実装ファイル 32 マクロ呼び出し追加基底オブジェクト実装ファイ
ル 40 クライアント 41 クライアントプロセス 50 サーバ 51 サーバプロセス 42,52 リモートオブジェクト 43,53 ソケットアクセスオブジェクト 55 ストリームソケット 65 記録媒体(内部メモリ) 68 記録媒体(ハードディスクユニット) 71 記録媒体(フロッピーディスク) 72 記録媒体(CD−ROM)
DESCRIPTION OF SYMBOLS 1 Macro call generation tool 2 1st code addition section 3 2nd code addition section 4 3rd code addition section 5 Macro generation rule storage section 6 Compiler 7 Remote object communication library group 8 Macro group 9 Local object communication program 10 Remote object communication program 11 Object Definition File 12 Macro Call Addition Object Definition File 13 Remote Object Support Object Definition File 21 Object Implementation File 22 Macro Call Addition Object Implementation File 23 Remote Object Support Object Implementation File 31 Base Object Implementation File 32 Macro Call Addition Base Object Implementation File 40 Client 41 Client process 50 Server 51 Server process 42, 52 Remote object 43, 53 Socket access object 55 Stream socket 65 Recording medium (internal memory) 68 Recording medium (hard disk unit) 71 Recording medium (floppy disk) 72 Recording medium (CD-ROM)

───────────────────────────────────────────────────── フロントページの続き (54)【発明の名称】 リモ―トオブジェクト通信プログラム生成システム、リモ―トオブジェクト通信システム、およ びリモ―トオブジェクト通信プログラム生成プログラムを記録したコンピュ―タ読み取り可能な 記録媒体 ──────────────────────────────────────────────────続 き Continuation of the front page (54) [Title of the invention] Remote object communication program generation system, remote object communication system, and computer readable recording of remote object communication program generation program Recording media

Claims (9)

【特許請求の範囲】[Claims] 【請求項1】同一プロセス内でオブジェクト間通信を行
うローカルオブジェクト通信プログラムを基にして、リ
モートプロセス間でオブジェクト間通信を行うリモート
オブジェクト通信プログラムを生成するリモートオブジ
ェクト通信プログラム生成システムにおいて、 前記ローカルオブジェクト通信プログラムに含まれるオ
ブジェクトのうちリモートプロセス間でのオブジェクト
間通信が必要とされるオブジェクトのオブジェクト定義
ファイルに対して所定のコード群を追加する第1コード
追加手段と、 前記ローカルオブジェクト通信プログラムに含まれるオ
ブジェクトのうちリモートプロセス間でのオブジェクト
間通信が必要とされるオブジェクトのオブジェクト実装
ファイルに対して所定のコード群を追加する第2コード
追加手段と、 前記第1コード追加手段および前記第2コード追加手段
により所定のコード群が追加された前記オブジェクト定
義ファイルおよび前記オブジェクト実装ファイルと、あ
らかじめ準備されたリモートオブジェクト通信ライブラ
リ群とをコンパイルするコンパイル手段とを備えたこと
を特徴とするリモートオブジェクト通信プログラム生成
システム。
1. A remote object communication program generation system for generating a remote object communication program for performing inter-object communication between remote processes based on a local object communication program for performing inter-object communication in the same process, First code adding means for adding a predetermined code group to an object definition file of an object requiring inter-object communication between remote processes among objects included in the communication program; Code addition means for adding a predetermined code group to an object implementation file of an object for which inter-object communication between remote processes is required among objects to be executed. Compiling means for compiling the object definition file and the object mounting file to which a predetermined code group has been added by the first code adding means and the second code adding means, and a remote object communication library group prepared in advance. A remote object communication program generation system, comprising:
【請求項2】前記オブジェクト定義ファイルおよび前記
オブジェクト実装ファイルに追加すべきソースコードに
対応するマクロ呼び出し定義の生成ルールを記憶するマ
クロ生成ルール記憶手段をさらに備え、 前記第1コード追加手段および前記第2コード追加手段
は、前記マクロ生成ルール記憶手段に記憶された前記マ
クロ生成ルールに従って前記オブジェクト定義ファイル
および前記オブジェクト実装ファイルに対してマクロ呼
び出し定義を含む所定のコード群を追加し、 前記コンパイル手段は、前記第1コード追加手段および
前記第2コード追加手段により所定のコード群が追加さ
れた前記オブジェクト定義ファイルおよび前記オブジェ
クト実装ファイルと、あらかじめ準備されたリモートオ
ブジェクト通信ライブラリ群とを、前記オブジェクト定
義ファイルおよび前記オブジェクト実装ファイルに追加
されたマクロ呼び出し定義を展開しながらコンパイルす
ることを特徴とする請求項1記載のリモートオブジェク
ト通信プログラム生成システム。
2. The apparatus according to claim 1, further comprising: a macro generation rule storage unit for storing a macro call definition generation rule corresponding to a source code to be added to the object definition file and the object implementation file; 2 code adding means for adding a predetermined code group including a macro call definition to the object definition file and the object mounting file according to the macro generation rule stored in the macro generation rule storage means; The object definition file and the object mounting file to which a predetermined code group has been added by the first code addition unit and the second code addition unit, and a remote object communication library group prepared in advance; Claim 1 remote object communication program generating system, wherein the compiling while deploying macro call definitions added to object definition file and the object implementation file.
【請求項3】前記リモートオブジェクト通信ライブラリ
群に含まれるリモートオブジェクト用の基底オブジェク
ト実装ファイルに対して所定のコード群を追加する第3
コード追加手段をさらに備え、 前記コンパイル手段は、前記第1コード追加手段および
前記第2コード追加手段により所定のコード群が追加さ
れた前記オブジェクト定義ファイルおよび前記オブジェ
クト実装ファイルと、あらかじめ準備されたリモートオ
ブジェクト通信ライブラリ群とともに、前記第3コード
追加手段により所定のコード群が追加された前記基底オ
ブジェクト実装ファイルをコンパイルすることを特徴と
する請求項1記載のリモートオブジェクト通信プログラ
ム生成システム。
3. A third object for adding a predetermined code group to a base object mounting file for remote objects included in the remote object communication library group.
The object definition file and the object mounting file to which a predetermined code group has been added by the first code adding means and the second code adding means; and a remote controller prepared in advance. 2. The remote object communication program generation system according to claim 1, wherein the base object implementation file to which the predetermined code group is added by the third code adding unit is compiled together with the object communication library group.
【請求項4】前記オブジェクト定義ファイル、前記オブ
ジェクト実装ファイルおよび前記基底オブジェクト実装
ファイルに追加すべきソースコードに対応するマクロ呼
び出し定義の生成ルールを記憶するマクロ生成ルール記
憶手段をさらに備え、 前記第1コード追加手段、前記第2コード追加手段およ
び前記第3コード追加手段は、前記マクロ生成ルール記
憶手段に記憶された前記マクロ生成ルールに従って前記
オブジェクト定義ファイル、前記オブジェクト実装ファ
イルおよび前記基底オブジェト実装ファイルに対してマ
クロ呼び出し定義を含む所定のコード群を追加し、 前記コンパイル手段は、前記第1コード追加手段、前記
第2コード追加手段および前記第3コード追加手段によ
り所定のコード群が追加された前記オブジェクト定義フ
ァイル、前記オブジェクト実装ファイルおよび前記基底
オブジェクト実装ファイルと、あらかじめ準備されたリ
モートオブジェクト通信ライブラリ群とを、前記オブジ
ェクト定義ファイル、前記オブジェクト実装ファイルお
よび前記基底オブジェクト実装ファイルに追加されたマ
クロ呼び出し定義を展開しながらコンパイルすることを
特徴とする請求項3記載のリモートオブジェクト通信プ
ログラム生成システム。
4. A macro generation rule storage means for storing a macro call definition generation rule corresponding to a source code to be added to the object definition file, the object implementation file, and the base object implementation file, The code addition unit, the second code addition unit, and the third code addition unit store the object definition file, the object implementation file, and the base object implementation file according to the macro generation rule stored in the macro generation rule storage unit. A predetermined code group including a macro call definition is added thereto, and the compiling means includes a predetermined code group added by the first code adding means, the second code adding means, and the third code adding means. Object definition File, the object implementation file and the base object implementation file, and the prepared remote object communication library group, and expands the object definition file, the object implementation file and the macro call definition added to the base object implementation file. 4. The remote object communication program generation system according to claim 3, wherein the compilation is performed while the program is being compiled.
【請求項5】リモートプロセス間でオブジェクト間通信
を行うリモートオブジェクト通信システムにおいて、 クライアントオブジェクトを含むクライアントプロセス
手段と、 前記クライアントオブジェクトに対応するサーバオブジ
ェクトを含むサーバプロセス手段と、 前記クライアントプロセス手段と前記サーバプロセス手
段との間でバイナリデータの送受信を行うためのストリ
ームソケットとを備え、 前記クライアントプロセス手段および前記サーバプロセ
ス手段はそれぞれ、リモートプロセス間でのオブジェク
ト間通信が必要とされるオブジェクトの識別情報を保持
するソケットアクセスオブジェクトを有し、前記クライ
アントオブジェクトまたは前記サーバオブジェクトにお
けるメソッド呼び出しをリモートプロセス間でのオブジ
ェクト間通信として実現することを特徴とするリモート
オブジェクト通信システム。
5. A remote object communication system for performing inter-object communication between remote processes, wherein: a client process means including a client object; a server process means including a server object corresponding to the client object; A stream socket for transmitting and receiving binary data to and from a server process means, wherein the client process means and the server process means each include identification information of an object that requires inter-object communication between remote processes. Having a socket access object that holds a call, and invoking a method call on the client object or the server object between remote processes. A remote object communication system implemented as inter-object communication.
【請求項6】前記クライアントオブジェクトおよび前記
サーバオブジェクトは同一のクラスから生成されること
を特徴とする請求項5記載のリモートオブジェクト通信
システム。
6. The remote object communication system according to claim 5, wherein said client object and said server object are generated from the same class.
【請求項7】前記ストリームソケットを介して送受信さ
れるバイナリデータはオブジェクト名およびメソッド名
を含む所定のデータ構造を有していることを特徴とする
請求項5記載のリモートオブジェクト通信システム。
7. The remote object communication system according to claim 5, wherein the binary data transmitted and received via said stream socket has a predetermined data structure including an object name and a method name.
【請求項8】同一プロセス内でオブジェクト間通信を行
うローカルオブジェクト通信プログラムを基にして、リ
モートプロセス間でオブジェクト間通信を行うリモート
オブジェクト通信プログラムを生成するリモートオブジ
ェクト通信プログラム生成プログラムを記録したコンピ
ュータ読み取り可能な記録媒体において、 ローカルオブジェクト通信プログラムに含まれるオブジ
ェクトのうちリモートプロセス間でのオブジェクト間通
信が必要とされるオブジェクトのオブジェクト定義ファ
イルおよびオブジェクト実装ファイルに対して所定のコ
ード群を追加するステップと、 所定のコード群が追加された前記オブジェクト定義ファ
イルおよび前記オブジェクト実装ファイルと、あらかじ
め準備されたリモートオブジェクト通信ライブラリ群と
をコンパイルするステップとをコンピュータに実行させ
ることを特徴とするリモートオブジェクト通信プログラ
ム生成プログラムを記録したコンピュータ読み取り可能
な記録媒体。
8. A computer which records a remote object communication program generating program for generating a remote object communication program for performing inter-object communication between remote processes based on a local object communication program for performing inter-object communication in the same process. Adding a predetermined code group to an object definition file and an object implementation file of an object that requires inter-object communication between remote processes among objects included in the local object communication program, on a possible recording medium; The object definition file and the object implementation file to which a predetermined code group is added, and a remote object communication library group prepared in advance A computer-readable recording medium recorded with the remote object communication program generation program for causing and a step to the computer to compile.
【請求項9】前記リモートオブジェクト通信ライブラリ
群に含まれるリモートオブジェクト用の基底オブジェク
ト実装ファイルに対して所定のコード群を追加するステ
ップをさらに実行させ、 所定のコード群が追加された前記オブジェクト定義ファ
イルおよび前記オブジェクト実装ファイルと、あらかじ
め準備されたリモートオブジェクト通信ライブラリ群と
ともに、所定のコード群が追加された前記基底オブジェ
クト実装ファイルをコンパイルすることを特徴とする請
求項8記載のリモートオブジェクト通信プログラム生成
プログラムを記録したコンピュータ読み取り可能な記録
媒体。
9. The object definition file to which a predetermined code group is further added to a remote object base object implementation file included in the remote object communication library group, wherein the predetermined code group is added. 9. The remote object communication program generation program according to claim 8, wherein the base object implementation file to which a predetermined code group is added is compiled together with the object implementation file and a remote object communication library group prepared in advance. A computer-readable recording medium on which is recorded.
JP11010804A 1999-01-19 1999-01-19 Remote object communication program generating system, remote object communication system and computer- readable recording medium with remote object communication program generating program recorded therein Pending JP2000207186A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11010804A JP2000207186A (en) 1999-01-19 1999-01-19 Remote object communication program generating system, remote object communication system and computer- readable recording medium with remote object communication program generating program recorded therein

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11010804A JP2000207186A (en) 1999-01-19 1999-01-19 Remote object communication program generating system, remote object communication system and computer- readable recording medium with remote object communication program generating program recorded therein

Publications (1)

Publication Number Publication Date
JP2000207186A true JP2000207186A (en) 2000-07-28

Family

ID=11760541

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11010804A Pending JP2000207186A (en) 1999-01-19 1999-01-19 Remote object communication program generating system, remote object communication system and computer- readable recording medium with remote object communication program generating program recorded therein

Country Status (1)

Country Link
JP (1) JP2000207186A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP2018120447A (en) * 2017-01-26 2018-08-02 株式会社平和 Game machine

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP2018120447A (en) * 2017-01-26 2018-08-02 株式会社平和 Game machine

Similar Documents

Publication Publication Date Title
US7017148B2 (en) Apparatus and method for UPnP device code generation using XML
US7904803B2 (en) Method and system for converting user interface source code of a legacy application to web pages
US5764982A (en) Peer-to-peer communication interface
US8307379B2 (en) Determining an extension to use to process an input object to a call in a program
US5881289A (en) Remote compiling of source code for cross development
US8473896B2 (en) Computer software development incorporating core and compound services
US6571388B1 (en) Building a custom software environment including pre-loaded classes
US7752598B2 (en) Generating executable objects implementing methods for an information model
US8156471B2 (en) Multi-language execution method
JP5038314B2 (en) Identifying and filtering pluggable features using attributes
US8359570B2 (en) Adaptive scripting tool
JP3736308B2 (en) Software component automatic generation system
KR20050000352A (en) Common query runtime system and application programming interface
JP2007234047A (en) Method and apparatus for transporting interface definition language-defined data structure between heterogeneous systems
JP2007012066A (en) Introspection support for local and anonymous class
CN111913741B (en) Object interception method, device, medium and electronic equipment
US7487137B2 (en) Apparatus, system, and method for java bean delta generation
US6708310B1 (en) Method and system for implementing user-defined codeset conversions in a computer system
US9703576B2 (en) Aspect scoping in a modularity runtime
JP2000207186A (en) Remote object communication program generating system, remote object communication system and computer- readable recording medium with remote object communication program generating program recorded therein
US6745250B1 (en) Finding named EJB homes via life cycle support
JP7059757B2 (en) API processing method, terminal, API processing program
US20070094637A1 (en) System, method, and computer program product for enabling coexistence of related software
JP2002132502A (en) Automatic creating system and method of distributed object with interpretation of language function
CN115878282A (en) Cross-platform interaction method, device and equipment

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040312

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040629