JP2002132502A - Automatic creating system and method of distributed object with interpretation of language function - Google Patents

Automatic creating system and method of distributed object with interpretation of language function

Info

Publication number
JP2002132502A
JP2002132502A JP2000325652A JP2000325652A JP2002132502A JP 2002132502 A JP2002132502 A JP 2002132502A JP 2000325652 A JP2000325652 A JP 2000325652A JP 2000325652 A JP2000325652 A JP 2000325652A JP 2002132502 A JP2002132502 A JP 2002132502A
Authority
JP
Japan
Prior art keywords
source
client
server
class
generating
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
JP2000325652A
Other languages
Japanese (ja)
Inventor
Masahiko Noda
昌彦 能田
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.)
NEC Solution Innovators Ltd
Original Assignee
NEC Software Hokuriku 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 NEC Software Hokuriku Ltd filed Critical NEC Software Hokuriku Ltd
Priority to JP2000325652A priority Critical patent/JP2002132502A/en
Publication of JP2002132502A publication Critical patent/JP2002132502A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To eliminate the need for a decision of a performing position, for IDL description of a server object, for a marshalling, for an un-marshalling process coding and the like operated conventionally by users to create distributed processing program from a user description language. SOLUTION: A client program creating part 1 comprises an object dividing part 10 to extract a class from a user description language source 6 for the decision of the performing position, a main creating part 11 to create an IDL definition 27, an implementation 26, a method 25 and a proxy object 24 for creation of a client source 23 with substituting access to the server of the part except the server object of a source 6 for a proxy, a client creating part 14 to perform a compile link of a source 23, of the object 24 and of the IDL definition 27 and a code transferring part 13, and a server program creating part 3 has a server creating means to perform the compile link of the received source.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は分散オブジェクトを
自動生成するシステム及び方法に関し、特にユーザ記述
言語で書かれたソースコードのみからサーバ実行の分散
オブジェクトとクライアント側のプログラムを自動生成
するシステムおよび方法に関する。
[0001] 1. Field of the Invention [0002] The present invention relates to a system and method for automatically generating a distributed object, and more particularly to a system and method for automatically generating a server-executed distributed object and a client-side program from only source code written in a user description language. About.

【0002】[0002]

【従来の技術】従来より、分散アプリケーションを開発
する手段として、オブジェクト指向とクライアント/サ
ーバを融合した分散オブジェクト技術であるCORBA
(Common Object Request Bro
ker Architecture)を用いる場合、開発
の手順としてはサーバマシン上で動作するオブジェクト
の抽出、サーバマシン上で動作するオブジェクトのID
L(インタフェース定義言語)の定義、IDLコンパイ
ラの起動、その後、生成されたスタブコードとスタブヘ
ッダを用いてコンパイルやリンク等を行い、クライアン
トマシンでのクライアントプログラムの生成、およびサ
ーバマシンでのサーバプログラムの生成を行う必要があ
る。
2. Description of the Related Art Conventionally, as a means for developing a distributed application, CORBA which is a distributed object technology in which object orientation and a client / server are integrated.
(Common Object Request Bro
In the case of using “ker Architecture”, the development procedure includes extraction of an object operating on the server machine and ID of the object operating on the server machine.
Definition of L (interface definition language), activation of IDL compiler, and then compilation and linking using generated stub code and stub header, generation of client program on client machine, and server program on server machine Must be generated.

【0003】[0003]

【発明が解決しようとする課題】しかし、上記従来技術
には、次の様な問題点があった。
However, the above-mentioned prior art has the following problems.

【0004】第1の問題点は、サーバマシン上で動作す
るオブジェクトとクライアントマシンでのみ動作するオ
ブジェクトを切り分けながら設計することは容易ではな
く、又、機能拡張時にオブジェクトの動作環境を変更す
ることが困難であるということである。
A first problem is that it is not easy to design an object operating on a server machine and an object operating only on a client machine while separating the object, and it is difficult to change the operating environment of the object when the function is extended. It is difficult.

【0005】その理由は、最初にIDLを定義する必要
があり、IDLに手を加えた場合サーバ、クライアント
共にプログラムに手を加える必要が発生する為である。
The reason is that it is necessary to define IDL first, and if the IDL is modified, it is necessary to modify the program for both the server and the client.

【0006】第2の問題点は、利用者が、普段使い慣れ
たユーザ記述言語以外にIDL言語を習得する必要があ
り、又、ユーザ記述言語からCORBA規約にそった引
数パッキングへの変換(以下マーシャリングと呼ぶ)、
CORBA規約にそったオブジェクト呼び出しの様に、
利用者が高度なCORBA規約やIDL言語知識を習得
する必要があると言うことである。
A second problem is that the user needs to learn an IDL language in addition to a user-written language that is usually used. Also, conversion from a user-written language to argument packing conforming to the CORBA convention (hereinafter referred to as marshalling) ),
Like object call according to CORBA convention,
This means that the user needs to acquire advanced CORBA rules and IDL language knowledge.

【0007】その理由は、サーバオブジェクト開発の為
にはIDLコンパイラから出力されたプログラムソース
にロジックを記述せねばならず、又クライアントプログ
ラムはIDLコンパイラから出力された代理オブジェク
トに対する呼び出し処理を記述する必要があり、その際
ユーザ記述言語での機能呼び出し時の引数を一旦マーシ
ャリング記述にする必要があり、又、反対にサーバプロ
グラムではCORBA規約にそった引数パッキングをユ
ーザ記述言語が理解出来る形に戻す処理(以下アンマー
シャリングと呼ぶ)が必要である為である。
The reason is that for developing a server object, logic must be described in a program source output from an IDL compiler, and a client program needs to describe a process of calling a proxy object output from an IDL compiler. In this case, it is necessary to temporarily convert the argument at the time of calling the function in the user description language into a marshalling description. On the contrary, the server program returns the argument packing conforming to the CORBA rules to a form understandable by the user description language. (Hereinafter referred to as unmarshalling).

【0008】第3の問題点は、オブジェクトの動作位置
を容易に変更出来ず、オブジェクトの動作位置を変更す
るにはIDLの定義、プログラムの修正という大きな工
数負担となることである。
A third problem is that the operation position of the object cannot be easily changed, and changing the operation position of the object requires a large man-hour for defining the IDL and modifying the program.

【0009】その理由は、オブジェクトの動作位置を変
更する為には第1及び第2の問題点で示した作業が発生
する為である。
The reason is that the work described in the first and second problems occurs to change the operation position of the object.

【0010】第4の問題点は、CORBA通信を挟んで
異なるマシン間で動作するオブジェクトをミスなく記述
することは容易ではなく、又デバッグが複雑であると言
うことである。
A fourth problem is that it is not easy to describe an object operating between different machines across CORBA communication without errors, and that debugging is complicated.

【0011】その理由は、単一マシンや単一ユーザ言語
で記述したオブジェクトはユーザが記述したXというル
ーチン呼び出しを行った場合、即座にXルーチンが呼び
出されるが、CORBA通信を挟んでいる場合には、マ
ーシャリング処理、サーバオブジェクトへの接続、サー
バオブジェクト呼び出し、アンマーシャリング処理を経
て漸く利用者ルーチンXの処理を行うことが出来る為、
バグの混入を未然に全て防ぐのは容易ではなく、バグが
混入した場合の箇所特定も容易ではない為である。
The reason is that when an object described in a single machine or a single user language calls a routine X called by a user, the X routine is immediately called, but when the CORBA communication is interposed. Can perform the processing of the user routine X through marshalling processing, connection to the server object, server object calling, and unmarshalling processing.
This is because it is not easy to prevent all the bugs from being mixed in advance, and it is also not easy to specify a location when a bug is mixed.

【0012】第5の問題点は、CORBA通信を挟んで
異なるマシン間で動作するオブジェクトを作成するに
は、実行マシンに合わせてコンパイル及びリンクを行う
必要があり、利用者にとって不便であると言うことであ
る。
A fifth problem is that in order to create an object that operates between different machines across CORBA communication, it is necessary to compile and link in accordance with the execution machine, which is inconvenient for the user. That is.

【0013】その理由は、サーバマシンへのソースコー
ドの転送、IDL定義の転送を行った後、サーバマシン
でのIDLコンパイルの実行、ソースコードのコンパイ
ル及びリンクの実行を経て漸く分散オブジェクトが完成
する為、単一マシンや単一ユーザ言語で記述した場合に
比べはるかに手間がかかる為である。
The reason is that after transferring the source code to the server machine and transferring the IDL definition, the execution of the IDL compilation, the compilation of the source code and the execution of the link on the server machine eventually complete the distributed object. For this reason, it takes much more time than writing in a single machine or a single user language.

【0014】第6の問題点は、従来、グローバル変数参
照や画面機能の使用を行っているオブジェクトをオブジ
ェクト分割することは利用者への大きな工数負担となっ
ていると言うことである。
A sixth problem is that conventionally, dividing an object that uses a global variable or uses a screen function into an object is a heavy burden on the user.

【0015】その理由は、画面機能はクライアントプロ
グラムからの利用を前提とし作成されているのが通常で
あるが、利用者がその都度クライアント側機能かサーバ
側機能かを分割する必要がある為である。
The reason is that the screen function is usually created on the assumption that the screen function is used from a client program, but it is necessary for the user to divide the function into the client side function or the server side function each time. is there.

【0016】又、グローバル変数参照が点在する場合に
は関数呼び出しパラメータを追加するなどの工夫をする
必要があるが、利用者にとっては単純だが、プログラム
修正インパクトは、比較的大きい為である。
In the case where global variable references are scattered, it is necessary to take measures such as adding function call parameters, but this is simple for the user, but the program modification impact is relatively large.

【0017】[0017]

【課題を解決するための手段】本発明による第1の分散
オブジェクト自動生成システムは、ユーザ記述言語で書
かれたソースコードのみからサーバ実行の分散オブジェ
クトとクライアント側のクライアントプログラムを自動
生成するシステムであって、クライアントプログラム生
成手段と分散オブジェクトを生成するサーバプログラム
生成手段とを含み、前記クライアントプログラム生成手
段は、前記ソースコードからクラス処理を抽出しその実
行位置をキーワードを用い判別するオブジェクト分割手
段と、サーバ実行と判定されたオブジェクトについてI
DL定義、オブジェクトインプリメンテーションソー
ス、サーバメソッドソースを作成し、オブジェクトイン
プリメンテーションに対応しクライアント側に設ける代
理クラスソースを生成すると共に前記ユーザ記述言語の
ソースの非抽出部分とクライアント実行クラスをメイン
ソースとしメインソースのサーバクラスへの処理を前記
代理クラスへのアクセス処理に置換しクライアントソー
スを生成する主生成手段と、前記クライアントソース、
代理クラスソース、IDL定義を入力とし、これらをコ
ンパイル及びリンクして実行形式クライアントプログラ
ムを生成するクライアント生成手段と、前記IDL定義
とオブジェクトインプリメンテーションソースとメソッ
ドソースとをサーバに転送するコード転送手段とを有
し、前記サーバプログラム生成手段は、転送されたコー
ドを受信する手段と受信したコードをコンパル及びリン
クして実行形式サーバプログラムを生成するサーバ生成
手段とを有すことを特徴とする。
A first distributed object automatic generation system according to the present invention is a system for automatically generating a server-executed distributed object and a client-side client program only from source code written in a user description language. An object division unit that includes a client program generation unit and a server program generation unit that generates a distributed object, wherein the client program generation unit extracts a class process from the source code and determines an execution position using a keyword. , For objects determined to be server-run
Creates a DL definition, object implementation source, and server method source, generates a proxy class source to be provided on the client side corresponding to the object implementation, and includes a non-extracted portion of the user description language source and a client execution class. Main generating means for generating a client source by replacing processing of the server class of the main source as a source with access processing of the proxy class; and
Client generation means for inputting a proxy class source and IDL definition and compiling and linking them to generate an executable client program, and code transfer means for transferring the IDL definition, object implementation source and method source to a server Wherein the server program generating means has means for receiving the transferred code and server generating means for generating an executable server program by compaling and linking the received code.

【0018】本発明による第2の分散オブジェクト自動
生成システムは、ユーザ記述言語で書かれたソースコー
ドのみからサーバ実行の分散オブジェクトとクライアン
ト側のクライアントプログラムを自動生成するシステム
であって、クライアントプログラム生成手段と分散オブ
ジェクトを生成するサーバプログラム生成手段とを含
み、前記クライアントプログラム生成手段は、前記ソー
スコードからクラス処理を抽出しその実行位置をキーワ
ードを用い判別するオブジェクト分割手段と、前記ソー
スコード及びオブジェクト分割情報からグローバル変数
を抽出しこれらのIDL定義とこれらを管理するグロー
バル変数オブジェクトとこれに対応しクライアントに設
けるグローバル変数代理クラスとを生成するグローバル
変数クラス生成手段と、前記分割でサーバ実行と判定さ
れたオブジェクトについてIDL定義、オブジェクトイ
ンプリメンテーションソース、サーバメソッドソースを
作成し、オブジェクトインプリメンテーションに対応し
クライアント側に設ける代理クラスソースを作成すると
共に前記ユーザ記述言語のソースの非抽出部分とクライ
アント実行クラスとをメインソースとし、メインソース
のサーバクラスへの処理を前記代理クラスへのアクセス
処理に置換し、グローバル変数への参照、代入処理を前
記グローバル変数代理クラスへのアクセス処理に置換し
てクライアントソースを生成する主生成手段と、前記ク
ライアントソース、代理クラスソース、IDL定義、グ
ローバル変数代理クラス、グローバル変数IDL定義を
入力とし、これらをコンパイル及びリンクして実行形式
クライアントプログラムを生成するクライアント生成手
段と、前記IDL定義とオブジェクトインプリメンテー
ションソースとメソッドソースとグローバル変数クラス
とそのIDL定義とをサーバに転送するコード転送手段
とを有し、前記サーバプログラム生成手段は、前記転送
されたコードを受信する手段と受信したコードをコンパ
イル及びリンクして実行形式サーバプログラムを生成す
るサーバ生成手段とを有すことを特徴とする。
A second distributed object automatic generation system according to the present invention is a system for automatically generating a server-executed distributed object and a client program on the client side only from source code written in a user description language. Means for generating class objects, a server program generating means for generating distributed objects, the client program generating means extracting class processing from the source code, and determining the execution position of the class processing by using a keyword, and the source code and the object. Global variable class generation means for extracting global variables from division information and generating IDL definitions thereof, a global variable object for managing them, and a global variable proxy class correspondingly provided in a client Creating an IDL definition, an object implementation source, and a server method source for the object determined to be server-executed by the division, creating a proxy class source provided on the client side corresponding to the object implementation, and the user description language; The non-extracted part of the source and the client execution class are set as the main source, the processing of the server class of the main source is replaced with the access processing of the proxy class, and the reference and assignment to the global variable are performed by the global variable proxy class Main generating means for generating a client source by substituting the client source, proxy class source, IDL definition, global variable proxy class, and global variable IDL definition, and compiling and retrieving them. Client generation means for generating an execution form client program by executing the IDL definition, an object implementation source, a method source, a global variable class and its IDL definition to a server. The server program generating means includes a means for receiving the transferred code and a server generating means for compiling and linking the received code to generate an executable server program.

【0019】本発明による第3の分散オブジェクト自動
生成システムは、前記クライアントプログラム生成手段
は、前記代理クラスが、クライアントソースから呼び出
され受けた引数のセットを、オブジェクトリクエストブ
ローカの定める形式に変換する処理を含ませて、前記代
理クラスを生成し、前記オブジェクトインプリメンテー
ションがオブジェクトリクエストブローカから受けた引
数のセットをサーバメソッドプログラムの形式に変換す
る処理を含ませて、前記オブジェクトインプリメンテー
ションソースを生成することを特徴とする。
In a third distributed object automatic generation system according to the present invention, the client program generating means converts the set of arguments called from the client source into a format defined by an object request broker. Generating the proxy implementation class, and converting the set of arguments received by the object implementation from the object request broker into the form of a server method program to generate the object implementation source. It is characterized by doing.

【0020】本発明による第4の分散オブジェクト自動
生成システムは、前記クライアントプログラム生成手段
は、前記グローバル変数代理クラスが、クライアントソ
ースから呼び出され受けた引数のセットを、オブジェク
トリクエストブローカの定める形式に変換する処理を含
ませ、前記グローバル変数代理クラスを生成し、前記グ
ローバル変数クラスがオブジェクトリクエストブローカ
から受けた引数のセットをサーバメソッドプログラムの
形式に変換する処理を含ませ、前記グローバル変数クラ
スを生成することを特徴とする。
In a fourth distributed object automatic generation system according to the present invention, the client program generation means converts the set of arguments called by the global variable proxy class from a client source into a format defined by an object request broker. Generating the global variable proxy class, converting the set of arguments received by the global variable class from the object request broker into the form of a server method program, and generating the global variable class. It is characterized by the following.

【0021】本発明による第5の分散オブジェクト自動
生成システムは、前記オブジェクト分割手段は複数種類
のユーザ記述言語に対応して、その種類毎にキーワード
情報を備え、各キーワード情報は、1個以上のキーワー
ドとキーワード間の論理式と論理成立時の実行位置指定
値とを有すことを特徴とする。
In a fifth distributed object automatic generation system according to the present invention, the object dividing means includes keyword information for each of a plurality of types of user description languages, and each of the keyword information is one or more. It is characterized by having a keyword, a logical expression between the keywords, and an execution position designation value when the logic is established.

【0022】本発明による第6の分散オブジェクト自動
生成システムは、前記オブジェクト分割手段は、前記抽
出したクラス処理について、先ずユーザ記述言語のソー
ス上にマークされた明示的な実行位置指定情報に従って
実行位置を決める手段と、明示的な実行位置指定が無い
クラス処理の実行位置を前記キーワード情報により判定
する手段とを有すことを特徴とする。
In a sixth distributed object automatic generation system according to the present invention, the object dividing means first executes the extracted class process in accordance with explicit execution position designation information marked on a source of a user-written language. And means for determining the execution position of the class process without explicit execution position designation based on the keyword information.

【0023】本発明による第1の分散オブジェクト自動
生成方法は、ユーザ記述言語で書かれたソースコードの
みからサーバ実行の分散オブジェクトとクライアント側
のクライアントプログラムを自動生成する方法であっ
て、クライアントプログラム生成手順と分散オブジェク
トを生成するサーバプログラム生成手順とを含み、前記
クライアントプログラム生成手順は、前記ソースコード
からクラス処理を抽出しその実行位置をキーワードを用
い判別するオブジェクト分割手順と、サーバ実行と判定
されたオブジェクトについてIDL定義、オブジェクト
インプリメンテーションソース、サーバメソッドソース
を作成し、オブジェクトインプリメンテーションに対応
しクライアント側に設ける代理クラスソースを生成する
と共に前記ユーザ記述言語のソースの非抽出部分とクラ
イアント実行クラスとをメインソースとしメインソース
のサーバクラスへの処理を前記代理クラスへのアクセス
処理に置換しクライアントソースを生成する主生成手順
と、前記クライアントソース、代理クラスソース、ID
L定義を入力とし、これらをコンパイル及びリンクして
実行形式クライアントプログラムを生成するクライアン
ト生成手順と、前記IDL定義とオブジェクトインプリ
メンテーションソースとメソッドソースとをサーバに転
送するコード転送手順とを有し、前記サーバプログラム
生成手順は、転送されたコードを受信する手順と受信し
たコードをコンパイル及びリンクして実行形式サーバプ
ログラムを生成するサーバ生成手順とを有すことを特徴
とする。
A first distributed object automatic generation method according to the present invention is a method for automatically generating a server-executed distributed object and a client program on the client side only from source code written in a user description language. A client program generation procedure that extracts a class process from the source code and determines an execution position of the class process using a keyword, and a server execution. Creates IDL definition, object implementation source, and server method source for the created object, generates a proxy class source provided on the client side corresponding to the object implementation, and A main generation procedure of using a non-extracted portion of a language source and a client execution class as a main source, replacing processing of a main source with a server class by access processing to the proxy class, and generating a client source; Class source, ID
A client generation procedure for generating an executable client program by compiling and linking the L definitions, and a code transfer procedure for transferring the IDL definition, the object implementation source, and the method source to a server. The server program generating procedure includes a procedure of receiving the transferred code and a server generating procedure of compiling and linking the received code to generate an executable server program.

【0024】本発明による第2の分散オブジェクト自動
生成方法は、ユーザ記述言語で書かれたソースコードの
みからサーバ実行の分散オブジェクトとクライアント側
のクライアントプログラムを自動生成する方法であっ
て、クライアントプログラム生成手順と分散オブジェク
トを生成するサーバプログラム生成手順とを含み、前記
クライアントプログラム生成手順は、前記ソースコード
からクラス処理を抽出しその実行位置をキーワードを用
い判別するオブジェクト分割手順と、前記ソースコード
及びオブジェクト分割情報からグローバル変数を抽出し
これらのIDL定義とこれらを管理するグローバル変数
オブジェクトとこれに対応しクライアントに設けるグロ
ーバル変数代理クラスとを生成するグローバル変数クラ
ス生成手順と、前記分割でサーバ実行と判定されたオブ
ジェクトについてIDL定義、オブジェクトインプリメ
ンテーションソース、サーバメソッドソースを作成し、
オブジェクトインプリメンテーションに対応しクライア
ント側に設ける代理クラスソースを作成すると共に前記
ユーザ記述言語のソースの非抽出部分とクライアント実
行クラスとをメインソースとしメインソースのサーバク
ラスへの処理を前記代理クラスへのアクセス処理に置換
しグローバル変数への参照、代入処理を前記グローバル
変数代理クラスへのアクセス処理に置換してクライアン
トソースを生成する主生成手順と、前記クライアントソ
ース、代理クラスソース、IDL定義、グローバル変数
代理クラス、グローバル変数IDL定義を入力とし、こ
れらをコンパイル及びリンクして実行形式クライアント
プログラムを生成するクライアント生成手順と、前記I
DL定義とオブジェクトインプリメンテーションソース
とメソッドソースとグローバル変数クラスとそのIDL
定義とをサーバに転送するコード転送手順とを有し、前
記サーバプログラム生成手順は、前記転送されたコード
を受信する手順と受信したコードをコンパイル及びリン
クして実行形式サーバプログラムを生成するサーバ生成
手順とを有すことを特徴とする。
The second distributed object automatic generation method according to the present invention is a method for automatically generating a server-executed distributed object and a client-side client program from only source code written in a user description language. A server program generation procedure for generating a distributed object, wherein the client program generation procedure extracts a class process from the source code and determines an execution position using a keyword, and the source code and the object. A global variable class generation procedure for extracting global variables from the division information and generating their IDL definitions, a global variable object for managing them, and a corresponding global variable proxy class provided in the client; IDL defines the object determined with the server running on the split, the object implementation source, to create a server method sources,
Create a proxy class source provided on the client side corresponding to the object implementation, and use the non-extracted part of the source of the user description language and the client execution class as the main source and process the main source into the server class to the proxy class. Main generation procedure for generating a client source by replacing the access processing of the global variable with reference and assignment processing to the global variable proxy class, and generating the client source, the client source, the proxy class source, the IDL definition, and the global A client generating procedure for generating an executable client program by inputting a variable proxy class and a global variable IDL definition, and compiling and linking them;
DL definition, object implementation source, method source, global variable class and its IDL
And a code transfer procedure for transferring the definition to a server. The server program generation procedure includes a procedure for receiving the transferred code and a server generation for compiling and linking the received code to generate an executable server program. And a procedure.

【0025】本発明による第3の分散オブジェクト自動
生成方法は、前記クライアントプログラム生成手順は、
前記代理クラスが、クライアントソースから呼び出され
受けた引数のセットを、オブジェクトリクエストブロー
カの定める形式に変換する処理を含ませて、前記代理ク
ラスを生成し、前記オブジェクトインプリメンテーショ
ンがオブジェクトリクエストブローカから受けた引数の
セットをサーバメソッドの形式に変換する処理を含ませ
て、前記オブジェクトインプリメンテーションソースを
生成することを特徴とする。
In a third distributed object automatic generation method according to the present invention, the client program generation procedure includes
The proxy class generates the proxy class by including a process of converting a set of arguments called from a client source into a format defined by an object request broker, and the object implementation receives the set of arguments from the object request broker. Generating the object implementation source by including a process of converting the set of arguments into a server method format.

【0026】本発明による第4の分散オブジェクト自動
生成方法は、前記クライアントプログラム生成手順は、
前記グローバル変数代理クラスが、クライアントソース
から呼び出され受けた引数のセットを、オブジェクトリ
クエストブローカの定める形式に変換する処理を含ま
せ、前記グローバル変数代理クラスを生成し、前記グロ
ーバル変数クラスが、オブジェクトリクエストブローカ
から受けた引数のセットをサーバメソッドプログラムの
形式に変換する処理を含ませ、前記グローバル変数クラ
スを生成することを特徴とする。
In a fourth distributed object automatic generation method according to the present invention, the client program generation procedure comprises the following steps:
The global variable proxy class includes a process of converting a set of arguments called from a client source into a format defined by an object request broker, generating the global variable proxy class, and the global variable class The method includes generating a global variable class by including a process of converting a set of arguments received from a broker into a server method program format.

【0027】本発明による第5の分散オブジェクト自動
生成方法は、前記オブジェクト分割手順は複数種類のユ
ーザ記述言語に対応して、その種類毎にキーワード情報
を備え、各キーワード情報は、1個以上のキーワードと
キーワード間の論理式と論理成立時の実行位置指定値と
を有すことを特徴とする。
In a fifth distributed object automatic generation method according to the present invention, the object division procedure is provided with keyword information for each type corresponding to a plurality of types of user description languages. It is characterized by having a keyword, a logical expression between the keywords, and an execution position designation value when the logic is established.

【0028】本発明による第6の分散オブジェクト自動
生成方法は、前記オブジェクト分割手順は、前記抽出し
たクラス処理について、先ずユーザ記述言語のソース上
にマークされた明示的な実行位置指定情報に従って実行
位置を決める手順と、明示的な実行位置指定が無いクラ
ス処理の実行位置を前記キーワード情報により判定する
手順とを有すことを特徴とする。
In a sixth distributed object automatic generation method according to the present invention, in the object division procedure, the extracted class processing is executed according to explicit execution position designation information marked on a source of a user description language. And a step of determining the execution position of the class process without the explicit execution position designation based on the keyword information.

【0029】[0029]

【発明の実施の形態】本発明の言語機能解釈による分散
オブジェクト自動生成システム及び方法は、単一マシン
上で動作可能なユーザ記述言語で記述されたプログラム
を入力とし、その意味解析を行い、自動的にクライアン
トオブジェクトとサーバオブジェクトとを判断し、クラ
イアントプログラム側にはクライアント代理オブジェク
トへのマーシャリング処理、接続処理、サーバメソッド
呼び出し処理(以下、代理オブジェクト制御記述と呼
ぶ)を自動生成し、サーバオブジェクト側にはアンマー
シャリング処理、メソッド呼び出し処理(以下、サーバ
インプリメンテーションと呼ぶ)を自動生成出来る構成
を提供するものである。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS A system and method for automatically generating a distributed object by interpreting a language function according to the present invention receives a program described in a user description language operable on a single machine, performs a semantic analysis on the program, and performs automatic analysis. The client program and the server object are automatically determined, and the client program automatically generates a marshalling process, a connection process, and a server method invocation process (hereinafter, referred to as a proxy object control description) for the client proxy object. Provides a configuration that can automatically generate unmarshalling processing and method invocation processing (hereinafter, referred to as server implementation).

【0030】又、その際、利用者が管理しなければいけ
ないものは、単一マシン上で動作可能なユーザ記述言語
で記述されたプログラムであり、IDL定義や代理オブ
ジェクト制御記述及びサーバインプリメンテーションは
管理不要と出来る構成を提供するものである。
At this time, what must be managed by the user is a program described in a user description language operable on a single machine, and includes an IDL definition, a proxy object control description, and a server implementation. Provides a configuration that does not require management.

【0031】又、本構成は、ユーザ記述言語で記述され
たソースプログラムを単に変換することにとどまらず、
クライアントマシン上へ実行可能形式クライアントプロ
グラムを自動生成し、サーバマシン上へも分散オブジェ
クトを実行可能形式として自動生成する構成を提供する
ものである。
Further, the present configuration is not limited to simply converting a source program described in a user description language.
An object of the present invention is to provide a configuration in which an executable client program is automatically generated on a client machine, and a distributed object is automatically generated as an executable format on a server machine.

【0032】又、ユーザ記述言語のソース上に特定の文
字、記号、或いはワードを振ることによって、機能をサ
ーバに配置するか、クライアントに配置するかを利用者
が明示的に指定することを可能とすることにより、オブ
ジェクト配置位置を瞬時に切り替え可能とする。
Also, by arranging specific characters, symbols, or words on the source of the user description language, the user can explicitly specify whether to allocate the function to the server or the client. Thus, the object arrangement position can be instantaneously switched.

【0033】又、ユーザ記述言語のソースを検索対象と
したキーワードによりクラス処理の実行位置の自動判定
を可能とする。
Further, it is possible to automatically determine the execution position of the class process by using a keyword whose search target is a user description language source.

【0034】次に、本発明の実施の形態について図面を
参照し説明する。図1を参照し、本発明の言語機能解釈
による分散オブジェクト自動生成システム及び方法の一
実施例は、プログラム制御により動作する。
Next, embodiments of the present invention will be described with reference to the drawings. Referring to FIG. 1, an embodiment of a system and method for automatically generating a distributed object by interpreting a language function according to the present invention operates under program control.

【0035】クライアントマシン100とサーバマシン
200、201はネットワーク300で接続されてお
り、クライアントマシン100はクライアントプログラ
ム生成部1を有し、サーバマシン200、201は、サ
ーバプログラム生成部3を有する。
The client machine 100 and the server machines 200 and 201 are connected by a network 300. The client machine 100 has a client program generator 1, and the server machines 200 and 201 have a server program generator 3.

【0036】クライアントプログラム生成部1は、分散
オブジェクトへの要求を行うクライアントプログラム2
を生成する手段である。サーバプログラム生成部3は、
クライアントプログラム2からの要求を受け付けるサー
バ分散オブジェクト4、5を生成する手段である。
The client program generation unit 1 is a client program 2 for making a request to a distributed object.
Is a means for generating The server program generation unit 3
This is means for generating server distributed objects 4 and 5 that receive requests from the client program 2.

【0037】図2はクライアントプログラム生成部1、
サーバプログラム生成部3の構成及びこれらの入出力内
容を示したブロック図である。
FIG. 2 shows a client program generator 1,
FIG. 3 is a block diagram illustrating a configuration of a server program generation unit 3 and input / output contents thereof.

【0038】クライアントプログラム生成部1は、オブ
ジェクト分割部10、主生成部11、グローバル変数ク
ラス生成部12、コード転送部13、クライアント生成
部14を有す。
The client program generation section 1 has an object division section 10, a main generation section 11, a global variable class generation section 12, a code transfer section 13, and a client generation section 14.

【0039】サーバプログラム生成部3は、コード転送
部13の受信部とサーバ生成部30を有す。
The server program generating section 3 has a receiving section of the code transfer section 13 and a server generating section 30.

【0040】オブジェクト分割部10は、ユーザ記述言
語ソースファイル6を入力としサーバに配置するオブジ
ェクトとクライアントに配置するオブジェクトを決定・
分割する。 その為に、複数種類のユーザ記述言語に対
応して、その種類毎にキーワード定義101を備え、各
キーワード定義は、1個以上のキーワードとキーワード
間の論理式と論理成立時の実行位置指定値(サ−バ/ク
ライアント)からなる情報を単位としてこれらを複数組
有す。
The object division unit 10 receives the user description language source file 6 as input and determines an object to be arranged on the server and an object to be arranged on the client.
To divide. To this end, a keyword definition 101 is provided for each type corresponding to a plurality of types of user description languages, and each keyword definition includes one or more keywords, a logical expression between the keywords, and an execution position designation value when the logic is established. A plurality of these are provided in units of information consisting of (server / client).

【0041】主生成部11は、クライアントソース23
とサーバメソッドソース25を自動生成する。
The main generation unit 11 has a client source 23
And a server method source 25 are automatically generated.

【0042】その際、サーバに配置するオブジェクトの
内容に沿って、代理オブジェクト制御記述を持つ代理オ
ブジェクトソース24とサーバインプリメンテーション
を司るオブジェクトインプリメンテーション26を自動
生成する。分散オブジェクト間を結ぶ為のIDL定義2
7を自動生成する。
At this time, a proxy object source 24 having a proxy object control description and an object implementation 26 for managing the server implementation are automatically generated in accordance with the contents of the object to be arranged in the server. IDL definition 2 for connecting distributed objects
7 is automatically generated.

【0043】グローバル変数クラス生成部12は、グロ
ーバル変数への代理オブジェクト制御記述、サーバオブ
ジェクトインプリメンテーションだけを一纏めにした、
グローバル変数クラス及びIDL定義28を自動生成す
る。
The global variable class generation unit 12 integrates only proxy object control descriptions for global variables and server object implementations.
A global variable class and IDL definition 28 are automatically generated.

【0044】クライアント生成部14は、クライアント
ソース23、代理オブジェクトソース24、IDL定義
27、グローバル変数クラス及びIDL定義28を入力
とし、クライアントプログラム2を自動生成する。
The client generation unit 14 receives the client source 23, the proxy object source 24, the IDL definition 27, the global variable class and the IDL definition 28, and automatically generates the client program 2.

【0045】コード転送部13は、サーバプログラムを
生成する為に必要なファイルをサーバに転送し、この受
信部はサーバ生成部30に対して、サーバメソッドソー
ス25’、オブジェクトインプリメンテーション2
6’、IDL定義27’、グローバル変数クラス及びI
DL定義28’を入力する。
The code transfer unit 13 transfers a file necessary for generating a server program to the server, and the receiving unit sends a server method source 25 ′ and an object implementation 2 to the server generation unit 30.
6 ', IDL definition 27', global variable class and I
Enter the DL definition 28 '.

【0046】サーバ生成部30は、サーバ分散オブジェ
クト4とグローバル変数(サーバ)5を自動生成する。
The server generation unit 30 automatically generates a server distributed object 4 and a global variable (server) 5.

【0047】この様にして、単一マシン上で動作可能な
ユーザ記述言語からクライアントプログラムやサーバプ
ログラムを自動生成することを可能にする。
In this way, it is possible to automatically generate a client program and a server program from a user description language operable on a single machine.

【0048】次に、図3のフローチャートを参照して本
実施形態の全体の動作について詳細に説明する。
Next, the overall operation of this embodiment will be described in detail with reference to the flowchart of FIG.

【0049】オブジェクト分割部10は、ユーザ記述言
語ソースファイル6を読み込み、言語構文解析・意味解
析を行い、クラスを抽出し、サーバ動作可能なものにつ
いてサーバクラス、クライアントクラスにクラス分けを
行なう。
The object division unit 10 reads the user-defined language source file 6, performs language syntax analysis and semantic analysis, extracts classes, and classifies server-operable ones into server classes and client classes.

【0050】主生成部11は図2のIDL定義27、グ
ローバル変数クラス及びIDL定義28、オブジェクト
インプリメンテーション26、代理オブジェクトソース
24、サーバメソッドソース25、クライアントソース
23の各ファイルを作成する。(ステップ1)。
The main generator 11 creates the files of the IDL definition 27, global variable class and IDL definition 28, object implementation 26, proxy object source 24, server method source 25, and client source 23 in FIG. (Step 1).

【0051】コード転送部13は、サーバオブジェクト
を生成する為に必要な図2のサーバメセッドソース2
5、オブジェクトインプリメンテーション26、IDL
定義27、グローバル変数クラス及びIDL定義28の
各ファイルをサーバに転送する(ステップ2)。
The code transfer unit 13 is a server method source 2 shown in FIG. 2 necessary for generating a server object.
5. Object implementation 26, IDL
Each file of the definition 27, the global variable class, and the IDL definition 28 is transferred to the server (step 2).

【0052】コード転送部13の受信部は、サーバ生成
部30にサーバメソッドソース25’、オブジェクトイ
ンプリメンテーション26’、IDL定義27’、グロ
ーバル変数クラス及びIDL定義28’を渡しサーバプ
ログラムの生成を要求する(ステップ3)。
The receiving unit of the code transfer unit 13 passes the server method source 25 ′, the object implementation 26 ′, the IDL definition 27 ′, the global variable class and the IDL definition 28 ′ to the server generation unit 30 and generates a server program. Request (step 3).

【0053】クライアント生成部14はクライアントソ
ース23、代理オブジェクトソース24、IDL定義2
7、グローバル変数クラス及びIDL定義28を入力と
し、これらをコンパイルしクライアントプログラム2を
自動生成する(ステップ4)。
The client generation unit 14 includes a client source 23, a proxy object source 24, an IDL definition 2
7. The global variable class and the IDL definition 28 are input and compiled to automatically generate the client program 2 (step 4).

【0054】次に、具体例を用いて説明する。特に、本
願の特徴であるステップ1の処理を詳しく説明する。
Next, a specific example will be described. In particular, the processing of step 1 which is a feature of the present application will be described in detail.

【0055】図4に示す様に、先ずユーザ記述言語ソー
スファイル6を読み込む(ステップ1−1)。次にサー
バ、クライアントどちらに位置すべきオブジェクト記述
かを自動的に判断する(ステップ1−2)。ステップ1
−2の詳細は図5で示す通り、クラス処理レベルのもの
を抽出し、、利用者が明示的に実行位置指定をしている
場合のオブジェクト実装位置の決定を行ない、利用者の
指定のないクラスは言語機能上サーバに配置出来ないも
のをピックアップしクライアントクラスとする処理をす
る。
As shown in FIG. 4, first, the user description language source file 6 is read (step 1-1). Next, it is automatically determined whether the object description should be located in the server or the client (step 1-2). Step 1
As shown in FIG. 5, the details of -2 are extracted at the class processing level, the object mounting position is determined when the user explicitly specifies the execution position, and the user is not specified. Classes that cannot be placed on the server due to language functions are picked up and processed as client classes.

【0056】例えば、利用者の明示的な実行位置指定
は、ユーザ記述言語ソースのコメント欄で指定されてい
る。コメントの開始定義文字(!等)の次の文字(S/
C/スペース)でサーバ、クライアント、指定無しを見
分ける。
For example, explicit execution position specification by the user is specified in the comment field of the user description language source. The character following the start definition character (! Etc.) of the comment (S /
C / space) to distinguish between server, client, and no designation.

【0057】指定無しのクラスについては、記述言語対
応のキーワード定義表101に従ってクライアントクラ
スとする。定義表に「OUT」と、「DISPLAY」
のAND成立でクライアントと指定されていればこれら
を満たすクラスはクライアントクラスとする。
A class without designation is set as a client class according to the keyword definition table 101 corresponding to the description language. "OUT" and "DISPLAY" in the definition table
If AND is satisfied and the client is designated, a class that satisfies these conditions is a client class.

【0058】図4に戻り、ステップ1−2でサーバオブ
ジェクトの抽出が完了すると、主生成部11はサーバオ
ブジェクトに対するIDL定義を自動生成する(ステッ
プ1−3)。サーバオブジェクトにおいて、IDL言語
とユーザ記述言語間のアンマーシャリングを担当するサ
ーバオブジェクトインプリメンテーションを自動生成す
る(ステップ1−4)。
Returning to FIG. 4, when the extraction of the server object is completed in step 1-2, the main generator 11 automatically generates an IDL definition for the server object (step 1-3). In the server object, a server object implementation responsible for unmarshalling between the IDL language and the user description language is automatically generated (step 1-4).

【0059】次に、サーバオブジェクトがあたかもクラ
イアントに存在するかの様に見せかける代理クラスを自
動生成する(ステップ1−5)。代理クラスは、ユーザ
記述言語とIDL言語間のマーシャリングを担当する。
Next, a proxy class that makes it appear as if the server object exists in the client is automatically generated (step 1-5). The proxy class is responsible for marshalling between the user description language and the IDL language.

【0060】グローバル変数クラス生成部12が行うス
テップ1−7〜1−9の詳細は図6に示す通りで、ユー
ザ記述言語ソースと、その分割情報からグローバル変数
を抽出し、グローバル変数を管理するサーバオブジェク
トを自動生成する。グローバル変数はサーバからもクラ
イアントからも透過的に参照出来る様、マーシャリング
を担当する代理クラスと、アンマーシャリングを担当す
るグローバル変数サーバインプリメンテーションを持
つ。
The details of steps 1-7 to 1-9 performed by the global variable class generation unit 12 are as shown in FIG. 6, and the global variables are extracted from the user description language source and its division information, and the global variables are managed. Automatically generate server objects. There is a proxy class responsible for marshalling and a global variable server implementation responsible for unmarshalling so that global variables can be referenced transparently from both the server and the client.

【0061】ステップ1−10では、ユーザ記述言語ソ
ースに対する処理の置換を行う。図7で示す様に、グロ
ーバル変数参照や、グローバル変数への値設定を行うコ
ードを抽出し、該当部分をグローバル変数代理オブジェ
クトへの処理記述に自動変換する。
In step 1-10, the processing of the user description language source is replaced. As shown in FIG. 7, a code for performing a reference to a global variable or setting a value to a global variable is extracted, and a corresponding part is automatically converted into a process description for a global variable proxy object.

【0062】ステップ1−6では、サーバに位置するオ
ブジェクトへのアクセス処理を代理オブジェクトへのア
クセス処理に自動変換する。
In step 1-6, processing for accessing an object located on the server is automatically converted to processing for accessing a proxy object.

【0063】S1−11では、クライアントメインソー
スにCORBA分散オブジェクト実行に必要な初期処理
や終了処理が挿入される。又、グローバル変数オブジェ
クトは実行直後から利用可能となる様に、初期処理内で
グローバル変数のサーバオブジェクトを活性化させる処
理を挿入する。
In S1-11, an initial process and an end process required for executing the CORBA distributed object are inserted into the client main source. Further, a process for activating the server object of the global variable is inserted in the initial process so that the global variable object can be used immediately after execution.

【0064】この様にして生成された各々のファイル
は、前述した図3で示す様に、自動的にコンパイル及び
リンクが行われ、すぐに実行が可能な状態となる。
Each file generated in this manner is automatically compiled and linked as shown in FIG. 3 described above, and is ready to be executed.

【0065】実行時の各々のファイルの関係を図9に示
す。図9のR1はクライアントプログラムのメイン処理
の例である。メイン処理には自動生成された初期処理が
挿入されており、CORBA初期処理、R2、・・R5
までの処理で示す通りグローバル変数管理オブジェクト
が一個活性化される。
FIG. 9 shows the relationship between the files at the time of execution. R1 in FIG. 9 is an example of the main processing of the client program. The automatically generated initial processing is inserted in the main processing, and the CORBA initial processing, R2,.
One global variable management object is activated as shown in the processing up to this point.

【0066】クライアントプログラムでグローバル変数
参照G1が発生した時、図7で変換済みのグローバル変
数代理オブジェクトの働きにより、サーバに位置するグ
ローバル変数管理オブジェクトに値が渡る。又、サーバ
に位置しない又は位置出来ないR6クライアントクラス
はユーザ記述言語の通常の言語機能により、クライアン
トマシン上で実行する。
When the global variable reference G1 occurs in the client program, the value is transferred to the global variable management object located on the server by the function of the converted global variable proxy object in FIG. Also, the R6 client class that is not or cannot be located on the server executes on the client machine by using the normal language function of the user description language.

【0067】本発明により自動的にサーバに位置する様
に生成されたサーバオブジェクトへのアクセス処理は、
R7〜R11の処理を経て、サーバで実行される。R1
1の処理結果はR10〜R8を経てR7へ戻り、利用者
はソースコード上、サーバオブジェクトの存在を意識す
る必要が無くなることとなる。
The process of accessing the server object generated so as to be automatically located at the server according to the present invention is as follows.
The processing is executed by the server through the processing of R7 to R11. R1
The processing result of 1 returns to R7 via R10 to R8, and the user does not need to be aware of the existence of the server object on the source code.

【0068】本発明の分散オブジェクト自動生成システ
ム及び方法は、ユーザ記述言語ソースファイル6として
オブジェクト指向型ソースファイルのみを対象とするも
のでなく、あらゆる記述言語を対象とする。例えば、C
言語、COBOL、Javaなどが挙げられる。
The system and method for automatically generating a distributed object according to the present invention is applicable not only to an object-oriented source file as the user description language source file 6 but to any description language. For example, C
Language, COBOL, Java, and the like.

【0069】又、本発明の分散オブジェクト自動生成シ
ステム及び方法は、CORBAに特化した発明ではな
く、あらゆる分散オブジェクト基盤を対象とする。例え
ばDCE(distributed computin
g environment)、DCOM(distr
ibuted component object m
odel)等にも適用出来る。
Further, the distributed object automatic generation system and method of the present invention is not an invention specializing in CORBA, but targets any distributed object base. For example, DCE (Distributed Computing)
g environment, DCOM (distr)
ibuted component object m
model).

【0070】[0070]

【発明の効果】以上説明した様に、本発明の分散オブジ
ェクト自動生成システム及び方法は、ユーザ記述言語を
意味解釈し、分散オブジェクト、クライアントプログラ
ムを自動的に生成する為、利用者が普段使い慣れたユー
ザ記述言語以外に新たにIDL言語を習得する必要が無
いと言う第1の効果を有す。
As described above, the system and method for automatically generating a distributed object according to the present invention interpret a user description language and automatically generate a distributed object and a client program. There is a first effect that it is not necessary to learn a new IDL language other than the user description language.

【0071】又、ユーザによるコンパイル及びリンクの
為のソースコード転送なども省くことが出きる為、利用
者からIDL言語機能やコンパイル及びリンクの実施を
完全に隠蔽出来るという第2の効果を有す。
Further, since it is possible to omit the source code transfer for compiling and linking by the user, there is a second effect that the implementation of the IDL language function and the compiling and linking can be completely hidden from the user. .

【0072】本発明の分散オブジェクト自動生成システ
ム及び方法は、ユーザ記述言語ソースファイル上のマー
クに従ってサーバオブジェクト、クライアントオブジェ
クトを生成し、グローバル変数の抽出、マーシャリン
グ、アンマーシャリング処理の追加を自動的に行うので
オブジェクトの動作位置を利用者が簡単に変更出来ると
言う第3の効果を有す。
The system and method for automatically generating a distributed object according to the present invention generates a server object and a client object in accordance with a mark on a user description language source file, and automatically performs global variable extraction, marshalling, and unmarshalling processing. Therefore, there is a third effect that the user can easily change the operation position of the object.

【0073】即ち、通常分散オブジェクトを記述する為
に必要な処理は多々あり、従来クライアントで動作する
オブジェクトをサーバで動作出来る様にする為にはID
L定義をし、マーシャリング、アンマーシャリングを利
用者自身が行なっていたがこれら作業を不要とする。
That is, there are many processes that are usually required to describe a distributed object. In order to enable an object operating on a conventional client to operate on a server, an ID is required.
L is defined and marshalling and unmarshalling are performed by the user himself, but these operations are not required.

【0074】又、プロトタイプ作成時や実行性能を比較
したい場合に、大きな工数をかけてオブジェクト実行位
置を変更する必要があったが本発明により、その工数負
担を取り除くことが出来る。
When a prototype is created or execution performance is to be compared, it is necessary to change the object execution position with a large number of man-hours. The present invention can eliminate the man-hour burden.

【0075】本発明の分散オブジェクト自動生成システ
ム及び方法は、利用者言語で記述されたソースコードに
手を加えることなく分散オブジェクトを自動生成するの
で、本発明のの入力ファイルは通常の単一マシン上で動
作するプログラムとして作成出来、利用者は使い慣れた
デバッガを利用出来るという第4の効果を有す。
Since the distributed object automatic generation system and method according to the present invention automatically generates a distributed object without modifying a source code described in a user language, the input file according to the present invention is an ordinary single machine. The fourth effect is that the program can be created as a program that operates on the above, and the user can use a familiar debugger.

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

【図1】本発明の分散オブジェクト自動生成システム及
び方法の実施形態例の全体構成を示すブロック図。
FIG. 1 is a block diagram showing an overall configuration of an embodiment of a distributed object automatic generation system and method according to the present invention.

【図2】図1のクライアントプログラム生成部1、サー
バプログラム生成部3の構成及びこれらの入出力内容を
示したブロック図。
FIG. 2 is a block diagram showing a configuration of a client program generation unit 1 and a server program generation unit 3 of FIG. 1 and their input / output contents.

【図3】本発明の分散オブジェクト自動生成システムの
実施形態例の全体動作を示し、又本発明の分散オブジェ
クト自動生成方法の全体ステップを示すフローチャー
ト。
FIG. 3 is a flowchart showing the entire operation of the embodiment of the distributed object automatic generation system of the present invention, and showing the entire steps of the distributed object automatic generation method of the present invention.

【図4】クライアントプログラム生成部1の動作、クラ
イアントプログラム生成手順の詳細ステップを示すフロ
ーチャート。
FIG. 4 is a flowchart showing an operation of the client program generation unit 1 and detailed steps of a client program generation procedure.

【図5】オブジェクト分割の処理ステップを示すフロー
チャート。
FIG. 5 is a flowchart showing processing steps of object division.

【図6】グローバル変数クラス生成処理ステップを示す
フローチャート。
FIG. 6 is a flowchart showing global variable class generation processing steps.

【図7】図4のステップ1−10の具体処理例を示す
図。
FIG. 7 is a view showing a specific processing example of step 1-10 in FIG. 4;

【図8】図4のステップ1−6の具体処理例を示す図。FIG. 8 is a view showing a specific processing example of step 1-6 in FIG. 4;

【図9】クライアント、サーバに生成されたプログラム
の各実行モジュールと実行時の様子を示す図。
FIG. 9 is a diagram showing each execution module of a program generated in a client and a server and a state at the time of execution.

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

1 クライアントプログラム生成部 10 オブジェクト分割部 101 キーワード定義 11 主生成部 12 グローバル変数クラス生成部 13 コード転送部 14 クライアント生成部 2 クライアントプログラム 23 クライアントソース 24 代理オブジェクトソース 25 サーバメソッドソース 26 オブジェクトインプリメンテーション 27 IDL定義 28 グローバル変数クラス及びIDL定義 3 サーバプログラム生成部 30 サーバ生成部 4 サーバ分散オブジェクト 6 ユーザ記述言語ソースファイル 100 クライアントマシン 200、201 サーバマシン 300 ネットワーク DESCRIPTION OF SYMBOLS 1 Client program generation part 10 Object division part 101 Keyword definition 11 Main generation part 12 Global variable class generation part 13 Code transfer part 14 Client generation part 2 Client program 23 Client source 24 Proxy object source 25 Server method source 26 Object implementation 27 IDL definition 28 Global variable class and IDL definition 3 Server program generator 30 Server generator 4 Server distributed object 6 User description language source file 100 Client machine 200, 201 Server machine 300 Network

Claims (12)

【特許請求の範囲】[Claims] 【請求項1】 ユーザ記述言語で書かれたソースコード
のみからサーバ実行の分散オブジェクトとクライアント
側のクライアントプログラムを自動生成するシステムで
あって、クライアントプログラム生成手段と分散オブジ
ェクトを生成するサーバプログラム生成手段とを含み、
前記クライアントプログラム生成手段は、前記ソースコ
ードからクラス処理を抽出しその実行位置をキーワード
を用い判別するオブジェクト分割手段と、サーバ実行と
判定されたオブジェクトについてIDL定義、オブジェ
クトインプリメンテーションソース、サーバメソッドソ
ースを作成し、オブジェクトインプリメンテーションに
対応しクライアント側に設ける代理クラスソースを生成
すると共に前記ユーザ記述言語のソースの非抽出部分と
クライアント実行クラスをメインソースとしメインソー
スのサーバクラスへの処理を前記代理クラスへのアクセ
ス処理に置換しクライアントソースを生成する主生成手
段と、前記クライアントソース、代理クラスソース、I
DL定義を入力とし、これらをコンパイル及びリンクし
て実行形式クライアントプログラムを生成するクライア
ント生成手段と、前記IDL定義とオブジェクトインプ
リメンテーションソースとメソッドソースとをサーバに
転送するコード転送手段とを有し、前記サーバプログラ
ム生成手段は、転送されたコードを受信する手段と受信
したコードをコンパル及びリンクして実行形式サーバプ
ログラムを生成するサーバ生成手段とを有すことを特徴
とする分散オブジェクト自動生成システム。
1. A system for automatically generating a server-executed distributed object and a client-side client program from only source code written in a user description language, comprising: a client program generating means and a server program generating means for generating a distributed object. And
The client program generation means includes: an object division means for extracting a class process from the source code and determining an execution position using a keyword; an IDL definition, an object implementation source, and a server method source for an object determined to be executed on a server. To generate a proxy class source provided on the client side corresponding to the object implementation, and to process the main source server class with the non-extracted portion of the user description language source and the client execution class as the main source. Main generating means for generating a client source by substituting for access processing to a proxy class;
It has client generation means for inputting DL definitions, compiling and linking them to generate an executable client program, and code transfer means for transferring the IDL definition, object implementation source and method source to a server. Wherein the server program generating means comprises means for receiving the transferred code and server generating means for generating an executable server program by compaling and linking the received code. .
【請求項2】 ユーザ記述言語で書かれたソースコード
のみからサーバ実行の分散オブジェクトとクライアント
側のクライアントプログラムを自動生成するシステムで
あって、クライアントプログラム生成手段と分散オブジ
ェクトを生成するサーバプログラム生成手段とを含み、
前記クライアントプログラム生成手段は、前記ソースコ
ードからクラス処理を抽出しその実行位置をキーワード
を用い判別するオブジェクト分割手段と、前記ソースコ
ード及びオブジェクト分割情報からグローバル変数を抽
出しこれらのIDL定義とこれらを管理するグローバル
変数オブジェクトとこれに対応しクライアントに設ける
グローバル変数代理クラスとを生成するグローバル変数
クラス生成手段と、前記分割でサーバ実行と判定された
オブジェクトについてIDL定義、オブジェクトインプ
リメンテーションソース、サーバメソッドソースを作成
し、オブジェクトインプリメンテーションに対応しクラ
イアント側に設ける代理クラスソースを作成すると共に
前記ユーザ記述言語のソースの非抽出部分とクライアン
ト実行クラスとをメインソースとし、メインソースのサ
ーバクラスへの処理を前記代理クラスへのアクセス処理
に置換し、グローバル変数への参照、代入処理を前記グ
ローバル変数代理クラスへのアクセス処理に置換してク
ライアントソースを生成する主生成手段と、前記クライ
アントソース、代理クラスソース、IDL定義、グロー
バル変数代理クラス、グローバル変数IDL定義を入力
とし、これらをコンパイル及びリンクして実行形式クラ
イアントプログラムを生成するクライアント生成手段
と、前記IDL定義とオブジェクトインプリメンテーシ
ョンソースとメソッドソースとグローバル変数クラスと
そのIDL定義とをサーバに転送するコード転送手段と
を有し、前記サーバプログラム生成手段は、前記転送さ
れたコードを受信する手段と受信したコードをコンパイ
ル及びリンクして実行形式サーバプログラムを生成する
サーバ生成手段とを有すことを特徴とする分散オブジェ
クト自動生成システム。
2. A system for automatically generating a server-executed distributed object and a client-side client program from only source code written in a user description language, comprising: a client program generating means and a server program generating means for generating a distributed object. And
The client program generating means extracts the class process from the source code and determines the execution position by using a keyword. The client program generating means extracts global variables from the source code and the object division information, and defines the IDL definitions and these. Global variable class generation means for generating a global variable object to be managed and a global variable proxy class correspondingly provided to the client; IDL definition, object implementation source, server method for the object determined to be server-executed in the division Create a source, create a proxy class source provided on the client side corresponding to the object implementation, and create a non-extracted part of the source of the user description language and the client execution class. Generates a client source by replacing the process of the main source server class with the access process to the proxy class and replacing the reference and assignment process to global variables with the access process to the global variable proxy class. Main generating means for inputting the client source, proxy class source, IDL definition, global variable proxy class, and global variable IDL definition, and compiling and linking these to generate an executable client program; Code transfer means for transferring an IDL definition, an object implementation source, a method source, a global variable class, and the IDL definition to a server, wherein the server program generation means receives the transferred code; Recieved Distributed object automatic generation system characterized by having a a server generating means for generating an executable server program to compile and link over de.
【請求項3】 前記クライアントプログラム生成手段
は、前記代理クラスが、クライアントソースから呼び出
され受けた引数のセットを、オブジェクトリクエストブ
ローカの定める形式に変換する処理を含ませて、前記代
理クラスを生成し、前記オブジェクトインプリメンテー
ションがオブジェクトリクエストブローカから受けた引
数のセットをサーバメソッドプログラムの形式に変換す
る処理を含ませて、前記オブジェクトインプリメンテー
ションソースを生成することを特徴とする請求項1、又
は2記載の分散オブジェクト自動生成システム。
3. The client program generating means generates the proxy class by including a process in which the proxy class converts a set of arguments called from a client source into a format defined by an object request broker. Generating the object implementation source by including a process in which the object implementation converts a set of arguments received from an object request broker into a server method program format. 3. The distributed object automatic generation system according to 2.
【請求項4】 前記クライアントプログラム生成手段
は、前記グローバル変数代理クラスが、クライアントソ
ースから呼び出され受けた引数のセットを、オブジェク
トリクエストブローカの定める形式に変換する処理を含
ませ、前記グローバル変数代理クラスを生成し、前記グ
ローバル変数クラスがオブジェクトリクエストブローカ
から受けた引数のセットをサーバメソッドプログラムの
形式に変換する処理を含ませ、前記グローバル変数クラ
スを生成することを特徴とする請求項2記載の分散オブ
ジェクト自動生成システム。
4. The client program generating means includes a process in which the global variable proxy class converts a set of arguments called from a client source into a format defined by an object request broker. 3. The method according to claim 2, further comprising the step of: generating a global variable class by converting the set of arguments received by the global variable class from an object request broker into a server method program. Automatic object generation system.
【請求項5】 前記オブジェクト分割手段は複数種類の
ユーザ記述言語に対応して、その種類毎にキーワード情
報を備え、各キーワード情報は、1個以上のキーワード
とキーワード間の論理式と論理成立時の実行位置指定値
とを有すことを特徴とする請求項1、又は2記載の分散
オブジェクト自動生成システム。
5. The object dividing means includes keyword information for each of a plurality of types of user description languages, and each type of the keyword information includes one or more keywords and a logical expression between the keywords and a logical expression. 3. The distributed object automatic generation system according to claim 1, wherein the distributed object automatic generation system has an execution position designation value.
【請求項6】 前記オブジェクト分割手段は、前記抽出
したクラス処理について、先ずユーザ記述言語のソース
上にマークされた明示的な実行位置指定情報に従って実
行位置を決める手段と、明示的な実行位置指定が無いク
ラス処理の実行位置を前記キーワード情報により判定す
る手段とを有すことを特徴とする請求項1、又は2記載
の分散オブジェクト自動生成システム。
6. The object division unit determines an execution position of the extracted class processing according to explicit execution position designation information marked on a source of a user description language. 3. The distributed object automatic generation system according to claim 1, further comprising: means for determining an execution position of a class process having no keyword based on the keyword information.
【請求項7】 ユーザ記述言語で書かれたソースコード
のみからサーバ実行の分散オブジェクトとクライアント
側のクライアントプログラムを自動生成する方法であっ
て、クライアントプログラム生成手順と分散オブジェク
トを生成するサーバプログラム生成手順とを含み、前記
クライアントプログラム生成手順は、前記ソースコード
からクラス処理を抽出しその実行位置をキーワードを用
い判別するオブジェクト分割手順と、サーバ実行と判定
されたオブジェクトについてIDL定義、オブジェクト
インプリメンテーションソース、サーバメソッドソース
を作成し、オブジェクトインプリメンテーションに対応
しクライアント側に設ける代理クラスソースを生成する
と共に前記ユーザ記述言語のソースの非抽出部分とクラ
イアント実行クラスとをメインソースとしメインソース
のサーバクラスへの処理を前記代理クラスへのアクセス
処理に置換しクライアントソースを生成する主生成手順
と、前記クライアントソース、代理クラスソース、ID
L定義を入力とし、これらをコンパイル及びリンクして
実行形式クライアントプログラムを生成するクライアン
ト生成手順と、前記IDL定義とオブジェクトインプリ
メンテーションソースとメソッドソースとをサーバに転
送するコード転送手順とを有し、前記サーバプログラム
生成手順は、転送されたコードを受信する手順と受信し
たコードをコンパイル及びリンクして実行形式サーバプ
ログラムを生成するサーバ生成手順とを有すことを特徴
とする分散オブジェクト自動生成方法。
7. A method for automatically generating a server-executed distributed object and a client-side client program from only source code written in a user description language, comprising: a client program generating procedure; and a server program generating procedure for generating a distributed object. The client program generation procedure includes: an object division procedure for extracting a class process from the source code and determining an execution position using a keyword; an IDL definition for an object determined to be executed on a server; an object implementation source; , A server method source, a proxy class source corresponding to the object implementation and provided on the client side, and a non-extracted portion of the user description language source and a client execution class. A main generation procedure of generating a client source by replacing the processing of the server class of the main source with the processing of accessing the proxy class, and the client source, the proxy class source, and the ID
A client generation procedure for generating an executable client program by compiling and linking the L definitions, and a code transfer procedure for transferring the IDL definition, the object implementation source, and the method source to a server. Wherein the server program generating procedure includes a procedure of receiving the transferred code and a server generating procedure of compiling and linking the received code to generate an executable server program. .
【請求項8】 ユーザ記述言語で書かれたソースコード
のみからサーバ実行の分散オブジェクトとクライアント
側のクライアントプログラムを自動生成する方法であっ
て、クライアントプログラム生成手順と分散オブジェク
トを生成するサーバプログラム生成手順とを含み、前記
クライアントプログラム生成手順は、前記ソースコード
からクラス処理を抽出しその実行位置をキーワードを用
い判別するオブジェクト分割手順と、前記ソースコード
及びオブジェクト分割情報からグローバル変数を抽出し
これらのIDL定義とこれらを管理するグローバル変数
オブジェクトとこれに対応しクライアントに設けるグロ
ーバル変数代理クラスとを生成するグローバル変数クラ
ス生成手順と、前記分割でサーバ実行と判定されたオブ
ジェクトについてIDL定義、オブジェクトインプリメ
ンテーションソース、サーバメソッドソースを作成し、
オブジェクトインプリメンテーションに対応しクライア
ント側に設ける代理クラスソースを作成すると共に前記
ユーザ記述言語のソースの非抽出部分とクライアント実
行クラスとをメインソースとしメインソースのサーバク
ラスへの処理を前記代理クラスへのアクセス処理に置換
しグローバル変数への参照、代入処理を前記グローバル
変数代理クラスへのアクセス処理に置換してクライアン
トソースを生成する主生成手順と、前記クライアントソ
ース、代理クラスソース、IDL定義、グローバル変数
代理クラス、グローバル変数IDL定義を入力とし、こ
れらをコンパイル及びリンクして実行形式クライアント
プログラムを生成するクライアント生成手順と、前記I
DL定義とオブジェクトインプリメンテーションソース
とメソッドソースとグローバル変数クラスとそのIDL
定義とをサーバに転送するコード転送手順とを有し、前
記サーバプログラム生成手順は、前記転送されたコード
を受信する手順と受信したコードをコンパイル及びリン
クして実行形式サーバプログラムを生成するサーバ生成
手順とを有すことを特徴とする分散オブジェクト自動生
成方法。
8. A method of automatically generating a server-executed distributed object and a client-side client program from only source code written in a user description language, comprising a client program generating procedure and a server program generating procedure for generating a distributed object. The client program generation procedure includes: an object division procedure for extracting class processing from the source code and determining the execution position using a keyword; and extracting global variables from the source code and object division information and A global variable class generation procedure for generating a definition, a global variable object for managing them, and a corresponding global variable proxy class provided in the client; Create DL definition, object implementation source, server method source,
Create a proxy class source provided on the client side corresponding to the object implementation, and use the non-extracted part of the source of the user description language and the client execution class as the main source and process the main source into the server class to the proxy class. Main generation procedure for generating a client source by replacing the access processing of the global variable with reference and assignment processing to the global variable proxy class, and generating the client source, the client source, the proxy class source, the IDL definition, and the global A client generation procedure for inputting a variable proxy class and a global variable IDL definition, compiling and linking them, and generating an executable client program;
DL definition, object implementation source, method source, global variable class and its IDL
And a code transfer procedure for transferring the definition to a server. The server program generation procedure includes a procedure for receiving the transferred code and a server generation for compiling and linking the received code to generate an executable server program. Automatically generating a distributed object.
【請求項9】 前記クライアントプログラム生成手順
は、前記代理クラスが、クライアントソースから呼び出
され受けた引数のセットを、オブジェクトリクエストブ
ローカの定める形式に変換する処理を含ませて、前記代
理クラスを生成し、前記オブジェクトインプリメンテー
ションがオブジェクトリクエストブローカから受けた引
数のセットをサーバメソッドの形式に変換する処理を含
ませて、前記オブジェクトインプリメンテーションソー
スを生成することを特徴とする請求項7、又は8記載の
分散オブジェクト自動生成方法。
9. The client program generating step includes generating the proxy class by including a process in which the proxy class converts a set of arguments called from a client source into a format defined by an object request broker. And generating the object implementation source by including a process of converting the set of arguments received by the object implementation from the object request broker into a server method format. The distributed object automatic generation method described.
【請求項10】 前記クライアントプログラム生成手順
は、前記グローバル変数代理クラスが、クライアントソ
ースから呼び出され受けた引数のセットを、オブジェク
トリクエストブローカの定める形式に変換する処理を含
ませ、前記グローバル変数代理クラスを生成し、前記グ
ローバル変数クラスが、オブジェクトリクエストブロー
カから受けた引数のセットをサーバメソッドプログラム
の形式に変換する処理を含ませ、前記グローバル変数ク
ラスを生成することを特徴とする請求項8記載の分散オ
ブジェクト自動生成方法。
10. The client program generating step includes the step of the global variable proxy class converting a set of arguments called from a client source into a format defined by an object request broker. 9. The global variable class according to claim 8, wherein said global variable class includes a process of converting a set of arguments received from an object request broker into a server method program format. Distributed object automatic generation method.
【請求項11】 前記オブジェクト分割手順は複数種類
のユーザ記述言語に対応して、その種類毎にキーワード
情報を備え、各キーワード情報は、1個以上のキーワー
ドとキーワード間の論理式と論理成立時の実行位置指定
値とを有すことを特徴とする請求項7、又は8記載の分
散オブジェクト自動生成方法。
11. The object dividing procedure includes keyword information corresponding to a plurality of types of user description languages, each type of which includes one or more keywords and a logical expression between the keywords and a logical expression when the logic is established. 9. The distributed object automatic generation method according to claim 7, further comprising: an execution position designation value.
【請求項12】 前記オブジェクト分割手順は、前記抽
出したクラス処理について、先ずユーザ記述言語のソー
ス上にマークされた明示的な実行位置指定情報に従って
実行位置を決める手順と、明示的な実行位置指定が無い
クラス処理の実行位置を前記キーワード情報により判定
する手順とを有すことを特徴とする請求項7、又は8記
載の分散オブジェクト自動生成方法。
12. The object dividing step includes: a step of determining an execution position of the extracted class processing in accordance with explicit execution position designation information marked on a source of a user description language; and an explicit execution position designation. 9. The method according to claim 7, further comprising: a step of determining an execution position of a class process having no keyword based on the keyword information.
JP2000325652A 2000-10-25 2000-10-25 Automatic creating system and method of distributed object with interpretation of language function Pending JP2002132502A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000325652A JP2002132502A (en) 2000-10-25 2000-10-25 Automatic creating system and method of distributed object with interpretation of language function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000325652A JP2002132502A (en) 2000-10-25 2000-10-25 Automatic creating system and method of distributed object with interpretation of language function

Publications (1)

Publication Number Publication Date
JP2002132502A true JP2002132502A (en) 2002-05-10

Family

ID=18802991

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000325652A Pending JP2002132502A (en) 2000-10-25 2000-10-25 Automatic creating system and method of distributed object with interpretation of language function

Country Status (1)

Country Link
JP (1) JP2002132502A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005505850A (en) * 2001-10-15 2005-02-24 ヤコブ リンメル リミティッド Object distribution
JP2007531946A (en) * 2004-04-07 2007-11-08 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング Data integrity in data processing equipment
JP2011170512A (en) * 2010-02-17 2011-09-01 Nec Corp Transfer program generation device, processing system, transfer program generation method and program
WO2015045108A1 (en) * 2013-09-27 2015-04-02 三菱電機株式会社 Client/server program generation device and client/server program generation program

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005505850A (en) * 2001-10-15 2005-02-24 ヤコブ リンメル リミティッド Object distribution
JP2007531946A (en) * 2004-04-07 2007-11-08 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング Data integrity in data processing equipment
JP2011170512A (en) * 2010-02-17 2011-09-01 Nec Corp Transfer program generation device, processing system, transfer program generation method and program
WO2015045108A1 (en) * 2013-09-27 2015-04-02 三菱電機株式会社 Client/server program generation device and client/server program generation program

Similar Documents

Publication Publication Date Title
JP3041222B2 (en) Source code creation system and method
EP1074911B1 (en) Aspect-oriented programming
KR100285223B1 (en) Technique for Programmatically Creating Distributed Object Programs
US10223082B2 (en) Analysis of dynamic elements in bounded time
US8359570B2 (en) Adaptive scripting tool
US5675804A (en) System and method for enabling a compiled computer program to invoke an interpretive computer program
EP1178404B1 (en) Method and system for compiling multiple languages
US7010796B1 (en) Methods and apparatus providing remote operation of an application programming interface
US20070022409A1 (en) System and method for transforming generic software code into operator specific code
JP2002518732A (en) Type implementation method with parameters compatible with existing library without parameters
JPH08202545A (en) Object-oriented system and method for generation of target language code
JP2005018777A (en) Common query runtime system and application programming interface
KR20050011685A (en) Description language for an extensible compiler and tools infrastructure
JPH10161885A (en) Remote compiling method and system
US7100154B2 (en) Dynamic compiler apparatus and method that stores and uses persistent execution statistics
US8458668B1 (en) Ignoring output arguments of functions in programming environments
JP2002132502A (en) Automatic creating system and method of distributed object with interpretation of language function
JPH11296359A (en) Program development support tool
Gschwind Adaptation and composition techniques for component-based software engineering
CN113220277B (en) Development method and device for embedded service
WO2008015110A2 (en) Methods, apparatus and computer programs for modelling computer programs
JPH09179738A (en) Object-oriented language processing method and processor
KR100703285B1 (en) Method for dynamic service using management execution control information repository in exchange system
JP3531728B2 (en) Apparatus and method for managing configuration relation of program described in object-oriented programming language, and storage medium
Estublier et al. Deployment descriptions in a world of COTS and open source

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050301

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050307

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050607

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050804

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050927