Movatterモバイル変換


[0]ホーム

URL:


JPH11224184A - System and method for generating object-oriented database operation program - Google Patents

System and method for generating object-oriented database operation program

Info

Publication number
JPH11224184A
JPH11224184AJP10024459AJP2445998AJPH11224184AJP H11224184 AJPH11224184 AJP H11224184AJP 10024459 AJP10024459 AJP 10024459AJP 2445998 AJP2445998 AJP 2445998AJP H11224184 AJPH11224184 AJP H11224184A
Authority
JP
Japan
Prior art keywords
program
generating
class
template
schema
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
JP10024459A
Other languages
Japanese (ja)
Inventor
Takuya Kitano
拓哉 北野
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 Corp
Original Assignee
NEC 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 NEC CorpfiledCriticalNEC Corp
Priority to JP10024459ApriorityCriticalpatent/JPH11224184A/en
Publication of JPH11224184ApublicationCriticalpatent/JPH11224184A/en
Pendinglegal-statusCriticalCurrent

Links

Landscapes

Abstract

PROBLEM TO BE SOLVED: To automatically generate a program for operating an existing object- oriented database by using the function of existing automation communication and also to facilitate the development and maintenance of the program. SOLUTION: An automatic program generating device 3 obtains schemer information which is defined in the data base 11 from the data base 11 with APT 12 and automatically generates the program for an automation server 14 for automation communication based on obtained schemer information and a program template file 4. The automation server 14 opens a class for constituting the schemer of the data base 11, its attribute and its method to a client program 21 using automation communication.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、オブジェクト指向
データベースを操作するためのプログラム、特にオート
メーションの機能を利用してオブジェクト指向データベ
ースを操作するためのプログラムを生成するオブジェク
ト指向データベース操作プログラム生成システム及び方
法に関する。
The present invention relates to a system and method for generating a program for operating an object-oriented database, particularly a program for operating an object-oriented database using an automation function. About.

【0002】[0002]

【従来の技術】インターフェース定義や分散ミドルウェ
アのクラスライブラリを用いたオブジェクトの開発は、
分散システムを構築するための特有のプログラミング作
業となる。この部分のプログラムを自動生成するアプロ
ーチ、或いはこの部分のプログラムの生成を支援しよう
とするアプローチは、従来よりかなりの数が提案されて
いる。
2. Description of the Related Art Development of objects using interface definitions and distributed middleware class libraries requires
This is a unique programming task for building a distributed system. A considerable number of approaches for automatically generating a program for this part or for supporting generation of a program for this part have been proposed.

【0003】このようなアプローチとして、まず、特開
平4−111022号公報に記載のインタフェースプロ
グラム自動生成装置(以下、従来例1という)が挙げら
れる。従来例1は、インタフェース定義、開発言語仕
様、計算機種別データ表現の一般化/特殊化プログラム
ルーチン、通信プロトコル別プログラムルーチンの4つ
の情報源を基に、ネットワーク通信のための交換データ
型定義とインタフェースプログラムとを自動生成する。
As such an approach, first, there is an interface program automatic generation device (hereinafter referred to as Conventional Example 1) described in Japanese Patent Application Laid-Open No. 4-111022. Conventional example 1 is based on four information sources: an interface definition, a development language specification, a generalized / specialized program routine for computer-specific data expression, and a program routine for each communication protocol. Automatically generate a program.

【0004】また、上記のようなアプローチとして、特
開平8−36486号公報に記載の分散プログラム記述
支援装置(以下、従来例2という)がある。従来例2
は、特にCORBAに関して、開発言語によるオブジェ
クト記述から、構文解析、内部表現変換を経て、分散オ
ブジェクトのインタフェース記述とインプリメンテーシ
ョンとを記述する。
[0004] As an approach as described above, there is a distributed program description support apparatus (hereinafter referred to as Conventional Example 2) described in Japanese Patent Application Laid-Open No. 8-36486. Conventional example 2
Describes the interface description and implementation of a distributed object from the object description in the development language, through syntax analysis and internal representation conversion, especially for CORBA.

【0005】さらに、上記のようなアプローチとして、
特開平8−263277号公報に記載のデータ操作プロ
グラムの自動生成装置(以下、従来例3)がある。従来
例3は、データベース定義からデータの属性を解析する
属性解析部の解析結果、及び型変換規則、データベース
アクセステンプレート、補助関数生成規則に基づいて、
既存の関係データベースのデータ操作を行うためのオブ
ジェクト指向プログラムを生成する。
Further, as an approach as described above,
There is an apparatus for automatically generating a data operation program described in Japanese Patent Application Laid-Open No. 8-263277 (hereinafter, Conventional Example 3). Conventional example 3 is based on an analysis result of an attribute analysis unit that analyzes data attributes from a database definition, and based on a type conversion rule, a database access template, and an auxiliary function generation rule.
Generate an object-oriented program for performing data operations on existing relational databases.

【0006】上記のようなアプローチに従った実際の製
品として、Visual C++(登録商標)にツールとして含ま
れるDeveloper Studioの機能であるAppWizard及びClass
Wizard(いずれも商標)(以下、従来例4という)、並
びにオブジェクト指向データベース管理システムである
ObjectStore(登録商標)の拡張機能であるPSE for Act
iveX(以下、従来例5という)がある。
As actual products following the above approach, AppWizard and Class which are functions of Developer Studio included as tools in Visual C ++ (registered trademark) are provided.
Wizard (both are trademarks) (hereinafter referred to as Conventional Example 4) and an object-oriented database management system
PSE for Act, an extended function of ObjectStore (registered trademark)
There is iveX (hereinafter referred to as Conventional Example 5).

【0007】従来例4では、AppWizardが開発の開始時
点での初期設定入力からオブジェクト記述言語(以下、
ODLという)のインタフェース定義とオートメーショ
ンオブジェクト(オートメーションによって操作可能な
オブジェクトをいう。以下、同じ)の初版プログラムを
自動生成する。ClassWizardがその後の開発言語による
プログラムの開発と並行して、ODLの記述とオートメ
ーションオブジェクトのプログラムとを自動的に追加、
削除、修正していく。
In Conventional Example 4, AppWizard uses an object description language (hereinafter referred to as an object description language) based on initial settings input at the start of development.
An ODL) interface definition and an initial object program of an automation object (an object operable by automation; the same applies hereinafter) are automatically generated. ClassWizard automatically adds ODL descriptions and automation object programs in parallel with subsequent program development in development languages.
Delete and modify.

【0008】従来例5では、ObjectStoreが最初から持
っているクラスライブラリのODL記述と、開発者が定義
するObjectStore型記述ファイル(拡張子をostとして保
存したファイル:以下、ostファイルという)とを合わせ
て、ObjectStoreの専用コンパイラでアプリケーション
のODL記述と対応するオートメーションオブジェクトの
プログラムとを生成する。
In Conventional Example 5, the ODL description of the class library that ObjectStore has from the beginning is combined with an ObjectStore type description file defined by the developer (a file saved with the extension ost: hereinafter referred to as an ost file). Then, an ODL description of the application and a program of the corresponding automation object are generated by a special compiler of ObjectStore.

【0009】[0009]

【発明が解決しようとする課題】しかしながら、上記の
従来例には、次のような問題点があった。上記従来例1
では、ネットワーク通信のための交換データ型定義とイ
ンターフェースプログラムとを自動生成するものの、イ
ンタフェース定義自体は、ユーザが与えなければならな
かった。また、従来例1の装置は、既存のシステムを利
用して構成されるものでないため、実際の製品を開発す
るためには、かなりの開発期間を要するという問題があ
った。しかも、インタフェース仕様が変更された場合に
は、プログラムをコンパイラの構文解析から作り直さな
ければならず、保守作業にも多くの時間を費やすことと
なる問題があった。
However, the above-mentioned prior art has the following problems. Conventional example 1 above
Thus, although an exchange data type definition and an interface program for network communication are automatically generated, the user has to provide the interface definition itself. Further, since the device of Conventional Example 1 is not configured using an existing system, there is a problem that a considerable development period is required to develop an actual product. In addition, when the interface specification is changed, the program must be recreated from the syntax analysis of the compiler, and there is a problem that much time is required for maintenance work.

【0010】上記従来例2は、単一のオブジェクト指向
プログラミング言語によるオブジェクト記述から、CO
RBA仕様の分散オブジェクトのインタフェース記述と
インプリメンテーション記述(ユーザ仕様言語)とを自動
生成する機能を備える前提にしている。すなわち、オブ
ジェクト変換プリプロセッサの構成に関するものであ
り、プログラムそのものを自動的に生成するものではな
い。しかも、インタフェース仕様が変更された場合に
は、プログラムをコンパイラの構文解析から作り直さな
ければならず、保守作業にも多くの時間を費やすことと
なる問題があった。
[0010] In the above-mentioned conventional example 2, the object description in a single object-oriented programming language is converted into a CO.
It is assumed that a function for automatically generating an interface description and an implementation description (user specification language) of a distributed object of the RBA specification is provided. That is, it relates to the configuration of the object conversion preprocessor, and does not automatically generate the program itself. In addition, when the interface specification is changed, the program must be recreated from the syntax analysis of the compiler, and there is a problem that much time is required for maintenance work.

【0011】上記従来例3では、データベースアクセス
テンプレートに従って生成されるプログラムは、C++
などの特定の言語に依存するものとなる。このため、例
えば、市販のアプリケーションプログラムが有するオー
トメーション通信機能を利用したツールを生かし切るこ
とができないという問題点があった。また、インターフ
ェース定義を自動的に生成するものではなく、インタフ
ェース仕様が変更されて場合には、一からプログラムを
作り直さなければならず、保守作業にも多くの時間を費
やすこととなる問題があった。
In the above conventional example 3, the program generated according to the database access template is C ++
And so on. For this reason, for example, there is a problem that a tool using an automation communication function of a commercially available application program cannot be fully utilized. In addition, the interface definition is not automatically generated, and if the interface specification is changed, a program must be recreated from the beginning, and there is a problem that much time is required for maintenance work. .

【0012】上記従来例4では、ClassWizardの機能
は、AppWizardによって初版プログラムが生成されたプ
ログラムに対してのみ、有効に働くようになっている。
このため、AppWizardを使って生成していないプログラ
ムに対して、ClassWizardの機能を十分に使うことがで
きないという問題点があった。
In the above-mentioned conventional example 4, the function of ClassWizard works effectively only for a program for which an initial version program has been generated by AppWizard.
For this reason, there was a problem that ClassWizard's functions could not be used sufficiently for programs that were not generated using AppWizard.

【0013】上記従来例5では、ostファイルを作成す
るという別のインタフェース定義を行わなければなら
ず、インタフェース定義そのものを自動生成することが
できない。このため、従来例3と同様に、市販のアプリ
ケーションプログラムが有するオートメーション通信機
能を利用したツールを生かし切ることができないという
問題点や、インタフェース仕様が変更されて場合には、
一からプログラムを作り直さなければならないという問
題点があった。
In the above conventional example 5, another interface definition for creating an ost file must be performed, and the interface definition itself cannot be automatically generated. For this reason, similarly to the conventional example 3, there is a problem that a tool using the automation communication function of a commercially available application program cannot be fully utilized, or when the interface specification is changed,
There was a problem that the program had to be rewritten from scratch.

【0014】さらに、データベース管理システムやAP
I(Application Programing Interface)や、オブジェ
クト指向言語で書かれたサーバプログラムがオブジェク
トの多相性をサポートしていても、クライアントからオ
ートメーションを利用してアクセスした場合に、その多
相性の機能を利用できる技術は、従来存在しなかった。
また、既存のオートメーションの機能を利用してデータ
ベースを操作できるようにするプログラムを生成する技
術は、従来存在しなかった。
Further, a database management system and an AP
Even if I (Application Programming Interface) or a server program written in an object-oriented language supports the polymorphism of an object, it can use the polymorphism function when accessed using automation from a client. Did not previously exist.
In addition, there has not been a technique for generating a program that allows a database to be operated using existing automation functions.

【0015】本発明は、また、開発・保守が容易なオブ
ジェクト指向データベースを操作するためのプログラム
を生成することができるオブジェクト指向データベース
操作プログラム生成システム及び方法を提供することを
目的とする。
Another object of the present invention is to provide an object-oriented database operation program generation system and method capable of generating a program for operating an object-oriented database which is easy to develop and maintain.

【0016】本発明は、上記従来例の問題点を解消する
ためになされたものであり、既存のオブジェクト指向デ
ータベースを既存のオートメーション通信の機能を利用
して操作するプログラムを、自動的に生成するオブジェ
クト指向データベース操作プログラム生成システム及び
方法を提供することを目的とする。
The present invention has been made in order to solve the above-mentioned problems of the conventional example, and automatically generates a program for operating an existing object-oriented database by utilizing an existing automation communication function. It is an object to provide an object-oriented database operation program generation system and method.

【0017】本発明は、また、オブジェクトの多相性の
機能を十分に利用することができるオブジェクト指向デ
ータベースを操作するためのプログラムを生成するオブ
ジェクト指向データベース操作プログラム生成システム
及び方法を提供することを目的とする。
Another object of the present invention is to provide a system and method for generating an object-oriented database operation program for generating a program for operating an object-oriented database capable of fully utilizing the polymorphism function of objects. And

【0018】[0018]

【課題を解決するための手段】上記目的を達成するた
め、本発明の第1の観点にかかるオブジェクト指向デー
タベース操作プログラム生成システムは、オブジェクト
指向データベースに定義されているスキーマを構成する
各クラスに関する情報を取得する取得手段と、前記スキ
ーマを構成する各クラスに含まれるオブジェクトの操作
に用いられるプログラムを生成するための第1のテンプ
レートを記憶する第1のテンプレート記憶手段と、前記
第1のテンプレート記憶手段から前記第1のテンプレー
トを読み出し、該読み出した第1のテンプレートに前記
取得手段が取得したクラスに関する情報のうちの対応す
るものの少なくとも一部を挿入することによって、前記
スキーマを構成するクラス毎に、クラスに含まれるオブ
ジェクトを操作するための第1のプログラムを生成する
プログラム生成手段と、前記プログラム生成手段が生成
する前記スキーマを構成するクラス毎のプログラムが外
部に公開すべきインタフェースを定義するためのインタ
フェース定義の生成に用いられる第2のテンプレートを
記憶する第2のテンプレート記憶手段と、前記第2のテ
ンプレート記憶手段から第2のテンプレートを読み出
し、該読み出した第2のテンプレートに前記取得手段が
取得したクラスに関する情報のうちの対応するものの少
なくとも一部を挿入することによって、前記スキーマを
構成するクラス毎に、対応する前記プログラムのインタ
フェース定義を生成するインタフェース定義生成手段
と、を備えることを特徴とする。
In order to achieve the above object, an object-oriented database operation program generation system according to a first aspect of the present invention provides information on each class constituting a schema defined in an object-oriented database. Acquisition means for acquiring a first template, a first template storage means for storing a first template for generating a program used for operating an object included in each class constituting the schema, and a first template storage Means for reading out the first template from the means, and inserting at least a part of the corresponding information of the class acquired by the acquiring means into the first template read out, for each class constituting the schema , Manipulate objects contained in the class A program generating means for generating a first program for use in generating an interface definition for defining an interface to be disclosed to the outside by a program for each class constituting the schema generated by the program generating means. A second template storing means for storing the second template, and a second template read from the second template storing means, and a correspondence between the read second template and the information on the class acquired by the acquiring means. Interface definition generating means for generating an interface definition of the corresponding program for each class constituting the schema by inserting at least a part of the program.

【0019】上記のオブジェクト指向データベース操作
プログラム生成システムは、前記スキーマをクラスに含
まれるオブジェクトを操作するための第1のプログラム
と、インターフェース定義とのいずれをも自動的に生成
することができる。このため、開発者がプログラムとイ
ンタフェース定義とのいずれか一方を与えたり、プログ
ラムとインタフェース定義とを別々のシステムを用いて
生成したりする必要がないので、オブジェクト指向デー
タベースを操作するためのプログラムの開発が容易にな
る。また、インタフェース仕様の変更の場合にも、第1
のプログラムを一から作り直さなければならないという
ことがないので、プログラムの保守も容易である。
The above-described object-oriented database operation program generation system can automatically generate both the first program for operating the objects included in the schema and the interface definition. This eliminates the need for the developer to provide one of the program and the interface definition or to generate the program and the interface definition using separate systems. Development is easier. In the case of a change in the interface specifications,
Since it is not necessary to re-create the program from scratch, the maintenance of the program is easy.

【0020】上記のオブジェクト指向データベース操作
プログラム生成システムは、前記プログラム生成手段が
生成した前記第1のプログラムと前記インタフェース定
義生成手段が生成した前記インタフェース定義とをリン
クすることによって、実行可能なモジュールを作り上げ
るリンク手段と、をさらに備えてもよい。
The above object-oriented database operation program generation system links executable programs by linking the first program generated by the program generation means with the interface definition generated by the interface definition generation means. And link means to make up.

【0021】上記のオブジェクト指向データベース操作
プログラム生成システムは、前記スキーマを構成する各
クラスに含まれるオブジェクトを外部から操作するため
の外部操作情報を生成するための第3のテンプレートを
記憶する第3のテンプレート記憶手段と、前記第3のテ
ンプレート記憶手段から 第3のテンプレートを読み出
し、該読み出した第3のテンプレートに、前記取得手段
が取得したクラスに関する情報のうちの対応するものの
少なくとも一部を挿入することによって、前記スキーマ
を構成するクラス毎に、対応する前記外部操作情報を生
成する外部操作情報生成手段と、をさらに備えるものと
してもよい。
The above object-oriented database operation program generation system stores a third template for generating external operation information for externally operating an object included in each class constituting the schema. A third template is read from the template storage unit and the third template storage unit, and at least a part of a corresponding one of the information on the classes acquired by the acquisition unit is inserted into the read third template. Accordingly, an external operation information generating means for generating the corresponding external operation information for each class configuring the schema may be further provided.

【0022】この場合、上記のオブジェクト指向データ
ベース操作システムは、設定された情報によってインタ
フェースを介して外部から他のプログラムを操作するた
めの第2のプログラムを実行させるプログラム実行手段
と、前記外部操作情報生成手段が生成した外部操作情報
を前記第2のプログラムに設定することによって、前記
第2のプログラムが前記インタフェース定義手段によっ
て定義されたインタフェース定義に対応するインタフェ
ースを介して前記プログラム生成手段によって生成され
た前記第1のプログラムを操作することが可能となるよ
うに設定する設定手段と、を備えるものとすることがで
きる。
In this case, the object-oriented database operating system includes a program executing means for executing a second program for operating another program from the outside via an interface according to the set information; By setting the external operation information generated by the generation unit in the second program, the second program is generated by the program generation unit via an interface corresponding to the interface definition defined by the interface definition unit. Setting means for setting the first program to be operable.

【0023】これにより、上記のオブジェクト指向デー
タベース操作プログラム生成システムは、例えば、イン
ターネットなどを介して遠隔地から操作指令を送るよう
にしたクライアントサーバ型のシステム構成とする場合
に、クライアント側で使用される第2のプログラムも、
既存のプログラムを用いて容易に生成することができ
る。
Thus, the above-described object-oriented database operation program generation system is used on the client side in a client-server type system configuration in which operation commands are sent from a remote place via the Internet or the like. The second program,
It can be easily generated using an existing program.

【0024】上記オブジェクト指向データベース操作プ
ログラム生成システムにおいて、前記プログラム生成手
段は、例えば、前記スキーマを構成する各クラス毎に、
プロパティの取得関数を生成する手段と、プロパティの
設定関数を生成する手段と、メソッドを生成する手段と
を備えるものとすることができる。
In the above object-oriented database operation program generation system, the program generation means includes, for example, for each class constituting the schema,
It may be provided with a means for generating a property acquisition function, a means for generating a property setting function, and a means for generating a method.

【0025】上記オブジェクト指向データベース操作プ
ログラム生成システムにおいて、前記インタフェース定
義によって定義されるインタフェースは、例えば、オー
トメーション通信を行うためのインタフェースとするこ
とができる。この場合、前記外部操作情報は、オートメ
ーション通信の機能を利用して前記プログラム生成手段
が生成した前記第1のプログラムを操作するための情報
とすることができる。
In the object-oriented database operation program generation system, the interface defined by the interface definition may be, for example, an interface for performing automation communication. In this case, the external operation information may be information for operating the first program generated by the program generation unit using a function of automation communication.

【0026】このような構成としたことにより、上記オ
ブジェクト指向データベース操作プログラム生成システ
ムは、既存のオートメーション通信のシステムを利用す
ることができる。これにより、プログラムの開発、運用
及び保守が容易になる。なお、オートメーション通信
は、インターネットなどの通信回線を介して実現する場
合に限らず、プロセス間通信の手法によって実現しても
よい。
With this configuration, the object-oriented database operation program generation system can use an existing automation communication system. This facilitates the development, operation and maintenance of the program. Note that the automation communication is not limited to the case where the communication is realized via a communication line such as the Internet, but may be realized by a method of inter-process communication.

【0027】上記オブジェクト指向データベース操作プ
ログラム生成システムにおいて、前記スキーマを構成す
るクラスに含まれるオブジェクトは、それぞれ外部から
呼び出される場合のインタフェースとなる引数の個数が
異なるメソッドを複数定義しているものであってもよ
い。この場合、前記インタフェース定義は、前記オブジ
ェクトのメソッドが有する引数の最大個数に対応する引
数と、前記オブジェクトのメソッドが有する引数の最小
個数に対応する引数の省略指定とによって定義されるも
のとすることを好適とする。
In the above-mentioned object-oriented database operation program generation system, the objects included in the classes constituting the schema define a plurality of methods each having a different number of arguments as interfaces when called from outside. You may. In this case, the interface definition is defined by an argument corresponding to the maximum number of arguments of the method of the object and an abbreviated designation of an argument corresponding to the minimum number of arguments of the method of the object. Is preferred.

【0028】これにより、前記スキーマを構成するクラ
スに含まれるオブジェクトが多相性をサポートしている
場合に、前記オブジェクトのメソッドに引数を渡すため
のインタフェース仕様を統一することができるので、例
えば、オートメーション通信を利用したような場合に
も、オブジェクトの多相性の機能を利用することができ
る。
With this, if the objects included in the classes constituting the schema support polymorphism, it is possible to unify the interface specifications for passing arguments to the methods of the object. Even when communication is used, the polymorphism function of the object can be used.

【0029】上記目的を達成するため、本発明の第2の
観点にかかるオブジェクト指向データベース操作プログ
ラム生成方法は、オブジェクト指向データベースに定義
されているスキーマを構成する各クラスに関する情報を
取得する取得ステップと、予め用意された第1をテンプ
レートを読み出し、該読み出した第1のテンプレートに
前記取得手段が取得したクラスに関する情報のうちの対
応するものの少なくとも一部を挿入することによって、
前記スキーマを構成するクラス毎に、クラスに含まれる
オブジェクトを操作するためのプログラムを生成するプ
ログラム生成ステップと、予め用意された第2のテンプ
レートを読み出し、該読み出した第2のテンプレートに
前記取得手段が取得したクラスに関する情報のうちの対
応するものの少なくとも一部を挿入することによって、
前記スキーマを構成するクラス毎に、対応する前記プロ
グラムのインタフェース定義を生成するインタフェース
定義生成ステップと、インタフェース定義生成ステップ
と、を含むことを特徴とする。
In order to achieve the above object, a method for generating an object-oriented database operation program according to a second aspect of the present invention includes an acquisition step of acquiring information on each class constituting a schema defined in an object-oriented database. By reading a first prepared template and inserting at least a part of the corresponding one of the information on the classes acquired by the acquiring means into the first template read out,
A program generating step of generating a program for operating an object included in the class for each class constituting the schema, reading a second template prepared in advance, and obtaining the obtaining means in the read second template By inserting at least a portion of the corresponding information about the class obtained by
An interface definition generating step for generating an interface definition of the corresponding program for each class constituting the schema, and an interface definition generating step are provided.

【0030】上記のオブジェクト指向データベース操作
プログラム生成方法は、予め用意された第3のテンプレ
ートを読み出し、該読み出した第3のテンプレートに、
前記取得手段が取得したクラスに関する情報のうちの対
応するものの少なくとも一部を挿入することによって、
前記スキーマを構成するクラス毎に、対応する前記外部
操作情報を生成する外部操作情報生成ステップをさらに
含むものとしてもよい。
According to the above object-oriented database operation program generating method, a third template prepared in advance is read, and the read third template is added to the third template.
By inserting at least a part of the corresponding one of the information on the classes obtained by the obtaining unit,
An external operation information generating step of generating the corresponding external operation information for each class configuring the schema may be further included.

【0031】[0031]

【発明の実施の形態】以下、添付図面を参照して、本発
明の実施の形態について説明する。
Embodiments of the present invention will be described below with reference to the accompanying drawings.

【0032】図1は、この実施の形態にかかるデータベ
ースアプリケーションプログラムの開発・実行環境を実
現するためのシステム構成例を示す図である。
FIG. 1 is a diagram showing an example of a system configuration for realizing a development / execution environment of a database application program according to this embodiment.

【0033】図示するように、このシステムは、主とし
てサーバ1と、クライアント2と、プログラム自動生成
装置3とを備える。サーバ1とクライアント2とは、イ
ンターネット5を介してオートメーション通信を行う。
サーバ1とプログラム自動生成装置3とは、LAN回線
などの何らかの通信回線を介してデータ通信を行う。プ
ログラム自動生成装置3は、プログラムテンプレートフ
ァイル4を参照する機能を有する。
As shown in the figure, this system mainly includes a server 1, a client 2, and an automatic program generation device 3. The server 1 and the client 2 perform automation communication via the Internet 5.
The server 1 and the automatic program generation device 3 perform data communication via some communication line such as a LAN line. The automatic program generation device 3 has a function of referring to the program template file 4.

【0034】サーバ1は、プロセッサ、記憶装置及び入
出力装置を有する情報処理装置によって構成され、デー
タベース11と、API12と、サーバプログラム13
と、オートメーションサーバ14と、リモートオートメ
ーションマネージャ15との機能を含む。
The server 1 is composed of an information processing device having a processor, a storage device and an input / output device, and includes a database 11, an API 12, and a server program 13.
And the functions of an automation server 14 and a remote automation manager 15.

【0035】データベース11は、オブジェクト指向デ
ータベースであり、クラス、クラスの属性、クラスのメ
ソッドのそれぞれの名前と型との情報でスキーマ情報を
定義する。
The database 11 is an object-oriented database, and defines schema information based on information on the names and types of classes, class attributes, and class methods.

【0036】API12は、サーバプログラム13、オ
ートメーションサーバ14、或いはプログラム自動生成
装置3からデータベース11にアクセスするためのイン
タフェースである。
The API 12 is an interface for accessing the database 11 from the server program 13, the automation server 14, or the automatic program generation device 3.

【0037】サーバプログラム13は、データベース1
1に定義されているスキーマクラスに含まれるオブジェ
クトのメソッドにメッセージを送るためのメソッドの実
装などの処理を行うためのプログラムである。
The server program 13 stores the database 1
This is a program for performing processing such as implementation of a method for sending a message to a method of an object included in the schema class defined in 1.

【0038】オートメーションサーバ14は、後述する
ようにプログラム自動生成装置3によって生成されるオ
ブジェクト指向型のプログラムである(以下、オートメ
ーションサーバ14を構成するオブジェクトをオートメ
ーションオブジェクトという)。オートメーションサー
バ11は、データベース11のスキーマ情報を構成する
クラスとその属性、メソッドを、オートメーションの機
能によって外部のアプリケーションに公開する。リモー
トオートメーションマネージャ15は、既存のプログラ
ムによって実現され、インターネット5を介してオート
メーションサーバ14が公開するデータベース11のス
キーマを構成するクラス(以下、スキーマクラスとい
う)とその属性、メソッドを、クライアント2に提供す
る。
The automation server 14 is an object-oriented program generated by the automatic program generation device 3 as described later (hereinafter, the objects constituting the automation server 14 are referred to as automation objects). The automation server 11 publishes classes constituting the schema information of the database 11 and their attributes and methods to an external application by an automation function. The remote automation manager 15 is realized by an existing program, and provides the client 2 with a class (hereinafter, referred to as a schema class) configuring the schema of the database 11 published by the automation server 14 via the Internet 5 and its attributes and methods. I do.

【0039】クライアント2は、プロセッサ、記憶装置
及び入出力装置を有する情報処理装置によって構成さ
れ、クライアントプログラム21とリモートオートメー
ションプロキシ22の機能を含む。
The client 2 is constituted by an information processing device having a processor, a storage device, and an input / output device, and includes functions of a client program 21 and a remote automation proxy 22.

【0040】クライアントプログラム21は、オートメ
ーションサーバ14が公開するデータベース11のスキ
ーマクラスとその属性、メソッドを利用する外部アプリ
ケーションとなり、サーバ1のデータベース11にアク
セスする。リモートオートメーションプロキシ22は、
既存のプログラムによって実現され、クライアントプロ
グラム21がオートメーション通信でサーバ1が提供す
る機能を利用するために用いられる。
The client program 21 is an external application that uses the schema class of the database 11 and its attributes and methods that are published by the automation server 14, and accesses the database 11 of the server 1. The remote automation proxy 22
This is realized by an existing program, and is used by the client program 21 to use the function provided by the server 1 through automation communication.

【0041】プログラム自動生成装置3は、プロセッ
サ、記憶装置及び入出力装置を有する情報処理装置によ
って構成される。プログラム自動生成装置3は、データ
ベース11からAPI12を介してそのデータベース1
1に定義されているスキーマ情報を取得し、取得したス
キーマ情報とプログラムテンプレートファイル4を基に
して、オートメーション通信のためのオートメーション
サーバ14のためのプログラムを自動生成する。生成さ
れたプログラムは、さらにコンパイルされて、オートメ
ーションサーバ14となる。
The automatic program generating device 3 is constituted by an information processing device having a processor, a storage device and an input / output device. The automatic program generation device 3 converts the database 1 from the database 11 through the API 12.
1 is acquired, and a program for the automation server 14 for automation communication is automatically generated based on the acquired schema information and the program template file 4. The generated program is further compiled to become the automation server 14.

【0042】プログラムテンプレートファイル4は、後
述するオートメーションオブジェクトのプログラムを生
成するためや、後述するODL記述ファイルを生成する
ために用いられるテンプレートからなるファイルであ
る。なお、プログラムテンプレートファイル4は、プロ
グラム自動生成装置3が有する記憶装置内に記憶されて
いても、プログラム自動生成装置3の外部に設けられた
記憶装置内に記憶されていてもよい。
The program template file 4 is a file including a template used for generating a program of an automation object described later and for generating an ODL description file described later. The program template file 4 may be stored in a storage device included in the automatic program generation device 3 or may be stored in a storage device provided outside the automatic program generation device 3.

【0043】以下、図1に示すクライアント2とサーバ
1とに別れたデータベース操作システムを構築する手順
について、図2のフローチャートを参照して説明する。
The procedure for constructing a separate database operation system for the client 2 and the server 1 shown in FIG. 1 will be described below with reference to the flowchart of FIG.

【0044】開発者は、まず、データベースマネジメン
トシステム(DBMS)を用いてデータベースのスキー
マを定義し、データを登録することによってデータベー
ス11を構築する(ステップS101)。
First, the developer defines a database schema using a database management system (DBMS), and constructs the database 11 by registering data (step S101).

【0045】開発者は、次に、DBMSが用意するAP
I12を用いてサーバプログラム13を作成し、データ
ベース11のスキーマクラスを構成するオブジェクトに
メッセージを送るためのメソッドを実装する(ステップ
S102)。
Next, the developer specifies the AP prepared by the DBMS.
A server program 13 is created using I12, and a method for sending a message to an object constituting a schema class of the database 11 is implemented (step S102).

【0046】以上のステップS101で構築されるデー
タベース11、ステップS102で作成されるサーバプ
ログラム13は、既存のデータベース及びデータベース
アプリケーションを利用するものとすることができる。
The database 11 constructed in step S101 and the server program 13 created in step S102 can use existing databases and database applications.

【0047】次に、プログラム自動生成装置3は、デー
タベースのスキーマクラスのオートメーションサーバ1
4と、後述するクライアント2のセットアップ用に用い
られるレジストリファイルとを自動生成する(ステップ
S103)。
Next, the program automatic generation device 3 sends the data to the automation server 1 of the schema class of the database.
4 and a registry file used for setting up the client 2 to be described later (step S103).

【0048】以後は、サーバ1の側とクライアント2の
側とに、処理が分かれる。サーバ1の側では、最初に、
オートメーションサーバ14のレジストリ登録が行われ
る(ステップS104)。このレジストリ登録の詳細に
ついては、後述する。
Thereafter, the processing is divided into the server 1 side and the client 2 side. On the server 1 side, first,
Registry registration of the automation server 14 is performed (step S104). Details of this registry registration will be described later.

【0049】サーバ1の側では、次に、リモートオート
メーションマネージャ15を実装する処理が行われる
(ステップS105)。このリモートオートメーション
マネージャ15には、既存のオートメーション通信用の
プログラムを利用することができる。また、既にサーバ
1に実装されているものを利用することもできる。リモ
ートオートメーションマネージャの実装が終了すると、
サーバ1の側におけるシステムの構築が終了する。
Next, on the server 1 side, processing for mounting the remote automation manager 15 is performed (step S105). An existing automation communication program can be used for the remote automation manager 15. Alternatively, a server that is already mounted on the server 1 can be used. When the Remote Automation Manager implementation is finished,
The construction of the system on the server 1 side ends.

【0050】クライアント2の側では、最初に、オート
メーションサーバ14のレジストリ登録が行われる(ス
テップS106)。このレジストリ登録の詳細について
は、後述する。
On the client 2 side, the registry of the automation server 14 is first registered (step S106). Details of this registry registration will be described later.

【0051】クライアント2の側では、次に、リモート
オートメーションプロキシ22を実装する処理が行われ
る(ステップS107)。このリモートオートメーショ
ンプロキシ22には、既存のオートメーション通信用の
プログラムを利用することができる。また、既にクライ
アント2に実装されているものを利用することもでき
る。
Next, on the client 2 side, processing for mounting the remote automation proxy 22 is performed (step S107). An existing automation communication program can be used for the remote automation proxy 22. In addition, the one already mounted on the client 2 can be used.

【0052】クライアント2の側では、次に、オートメ
ーションの機能をサポートする開発言語を用いて、イン
ターネット5を介してオートメーションサーバ14を操
作するための、クライアントプログラム21が作成され
る(ステップS108)。クライアントプログラム21
が作成されると、クライアント2の側におけるシステム
の構築の処理が終了する。
Next, on the client 2 side, a client program 21 for operating the automation server 14 via the Internet 5 is created using a development language that supports the automation function (step S108). Client program 21
Is created, the process of constructing the system on the client 2 side ends.

【0053】以下、図1のプログラム自動生成装置3に
よるオートメーションサーバ14及びレジストリファイ
ルの生成の処理(ステップS103)の概要について、
図3のフローチャートを参照して説明する。
Hereinafter, an outline of the process of generating the automation server 14 and the registry file (step S103) by the automatic program generation device 3 of FIG. 1 will be described.
This will be described with reference to the flowchart of FIG.

【0054】プログラム自動生成装置3は、最初に、開
発者が入力装置を操作することによって、初期設定値を
入力する(ステップS201)。
First, the program automatic generation device 3 inputs an initial set value by a developer operating an input device (step S201).

【0055】ここで、入力する初期設定項目としては、
例えば、生成すべきオートメーションサーバ13の名
前、スキーマ情報を読み込むデータベース11の名
前、生成されたオートメーションサーバ13で公開さ
れるクラスとなるオートメーションオブジェクトの名
前、サーバ1との間の通信プロトコル種別、サーバ
1のネットワークアドレス、などがある。
Here, the initial setting items to be input include:
For example, the name of the automation server 13 to be generated, the name of the database 11 for reading schema information, the name of an automation object that is a class to be published by the generated automation server 13, the type of communication protocol with the server 1, the server 1 Network address, and so on.

【0056】プログラム自動生成装置3は、次に、AP
I12を介して登録されているクラス、クラスの属性、
クラスのメソッドのそれぞれの名前と型の情報からなる
データベース11のスキーマ情報を読み込む(ステップ
S202)。ステップS202の処理を終了すると、プ
ログラム自動生成装置3は、次に、ステップS203、
S204、S206の処理を並行して行う。
Next, the program automatic generation device 3
Classes registered via I12, class attributes,
The schema information of the database 11 including the name and type information of each method of the class is read (step S202). When the process of step S202 is completed, the automatic program generation device 3 proceeds to step S203.
The processing of S204 and S206 is performed in parallel.

【0057】ステップS203では、プログラム自動生
成装置3は、プログラムテンプレートファイル4中のオ
ートメーションオブジェクトに対応するテンプレートと
なるファイルに、ステップS202で取得したスキーマ
情報のコードを挿入することによって、オートメーショ
ンオブジェクトプログラムD201を生成する。
In step S203, the automatic program generation device 3 inserts the code of the schema information acquired in step S202 into a file serving as a template corresponding to the automation object in the program template file 4, thereby obtaining the automation object program D201. Generate

【0058】ステップS204では、プログラム自動生
成装置3は、プログラムテンプレートファイル4中のO
DL記述ファイルのテンプレートとなるファイルに、ス
テップS202で取得したスキーマ情報のコードを挿入
することによって、ODL記述ファイルD202を生成
する。
In step S204, the automatic program generation device 3 stores the O in the program template file 4.
The ODL description file D202 is generated by inserting the code of the schema information acquired in step S202 into a file serving as a template of the DL description file.

【0059】ステップS203とS204の両方の処理
が終了すると、プログラム自動生成装置3は、オートメ
ーションオブジェクトプログラムD201と、ODL記
述ファイルD202と、サーバプログラムD203と、
その他のオートメーションやサーバに必要なプログラム
D204とを、それぞれプログラム開発言語環境に応じ
たコンパイラを用いてコンパイルし、さらにリンケージ
エディタを用いてリンクする(ステップS205)。こ
れにより、オートメーションサーバ14のプログラムが
生成される。
When both steps S203 and S204 are completed, the automatic program generation device 3 sets the automation object program D201, the ODL description file D202, the server program D203,
The program D204 necessary for other automations and servers is compiled using a compiler corresponding to the program development language environment, and linked using a linkage editor (step S205). As a result, a program for the automation server 14 is generated.

【0060】ここで、サーバプログラムD203は、図
1のサーバプログラム13に相当するものである。その
他のオートメーションサーバに必要なプログラムD20
4は、開発者が用いるサーバ1やプログラム開発言語環
境に特有のプログラムである。
Here, the server program D203 corresponds to the server program 13 in FIG. Program D20 required for other automation servers
Reference numeral 4 denotes a program unique to the server 1 and a program development language environment used by a developer.

【0061】一方、ステップS206では、プログラム
自動生成装置3は、クライアント2からサーバ2に接続
するためのレジストリファイルD205を生成する。
On the other hand, in step S206, the automatic program generation device 3 generates a registry file D205 for connecting the client 2 to the server 2.

【0062】以上の処理によって、オートメーションサ
ーバ14のプログラムと、レジストリファイルD205
とが生成されると、このフローチャートの処理を終了す
る。
By the above processing, the program of the automation server 14 and the registry file D205
Is generated, the process of this flowchart ends.

【0063】以下、図3のフローチャートにおける各ス
テップの処理について、詳細に説明する。
Hereinafter, the processing of each step in the flowchart of FIG. 3 will be described in detail.

【0064】まず、ステップS202のAPI12から
スキーマ情報を読み込む処理について説明する。ここで
は、プログラム自動生成装置3は、データベース11が
稼働していることを条件として、データベース11に登
録されているスキーマクラスをすべて取得することがで
きるAPIやAPI群、或いはクラス毎にそのすべての
属性の名前と型とアクセス識別子、さらにすべてのメソ
ッドの名前と返却値の型と、すべての引数の型と、アク
セス識別子とを取得することができるAPIやAPI群
をAPI12として用いて、データベース11からスキ
ーマ情報を読み込む。
First, the process of reading schema information from the API 12 in step S202 will be described. Here, on condition that the database 11 is operating, the program automatic generation device 3 can acquire all schema classes registered in the database 11, an API or an API group, or all the classes for each class. An API or API group that can acquire the names and types of attributes and access identifiers, the names of all methods and return values, the types of all arguments, and access identifiers is used as the API 12, and the database 11 Read schema information from.

【0065】次に、ステップS203のオートメーショ
ンプログラムオブジェクトのプログラムD201を生成
する処理について説明する。ステップS203では、
プロパティ、メソッド、コンストラクタに分けて、
オートメーションオブジェクトD201が生成される。
Next, the processing of generating the automation program object program D201 in step S203 will be described. In step S203,
Divided into properties, methods, and constructors,
An automation object D201 is generated.

【0066】のプロパティを生成するとき、プロパテ
ィの値の取得と設定を実現しなければならないので、取
得関数と設定関数とが用意される。以下、それぞれの関
数の生成手順について、図4と図5のフローチャートを
参照して説明する。
When the property is generated, acquisition and setting of the property value must be realized, so that an acquisition function and a setting function are prepared. Hereinafter, the generation procedure of each function will be described with reference to the flowcharts of FIGS.

【0067】なお、以下の説明において、Varian
t型とは、数値型、バイト型、文字列型、ブール型、日
付型、通貨型、オブジェクト型などの数種類の型が定義
されている共用体を持ち、その共用体で変数値の型を設
定できる型のことを言う。
In the following description, Varian
The t type has a union in which several types such as a numeric type, a byte type, a character string type, a Boolean type, a date type, a currency type, and an object type are defined, and the type of a variable value is defined by the union. A type that can be set.

【0068】プロパティの取得関数を生成する場合は、
図4のフローチャートに示すように、プログラム自動生
成装置3は、まず、戻り値をVariant型で変数宣
言し、その変数の型を上記のいずれかのうちの1つに設
定する(ステップS301)。ここで、設定する変数の
型は、ステップS202でAPI12を介してデータベ
ース11から取得したスキーマ情報中のクラスの属性の
型によって判断される。
When generating a property acquisition function,
As shown in the flowchart of FIG. 4, the automatic program generation device 3 first declares a return value as a variable type variable and sets the type of the variable to one of the above (step S301). Here, the type of the variable to be set is determined based on the type of the attribute of the class in the schema information acquired from the database 11 via the API 12 in step S202.

【0069】例えば、クラスの属性の型がchar*型
であったならば、変数の型は文字列型を表すVT_BS
TRに設定される。或いは、クラスの属性の型がint
型であったならば、変数の型は、数値型のうちの整数型
を表すVT_I2(或いは長整数型VT_I4)に設定
される。クラスの属性の型が他のクラスのオブジェクト
を指すポインタ型であったならば、変数の型は、オブジ
ェクト型を表すVT_DISPATCHに設定される。
For example, if the type of the attribute of the class is char * type, the type of the variable is VT_BS representing a character string type.
Set to TR. Or, if the type of the attribute of the class is int
If it is a type, the type of the variable is set to VT_I2 (or a long integer type VT_I4) representing the integer type among the numeric types. If the type of the attribute of the class is a pointer type pointing to an object of another class, the type of the variable is set to VT_DISpatch representing the object type.

【0070】プログラム自動生成装置3は、次に、DB
MSのAPI12を介してデータベース11にアクセス
し、データベース11に格納されている目的とするオブ
ジェクトの属性値を取得する(ステップS302)。
Next, the program automatic generation device 3
The database 11 is accessed through the API 12 of the MS, and the attribute value of the target object stored in the database 11 is obtained (step S302).

【0071】プログラム自動生成装置3は、次に、ステ
ップS302で取得した属性値を、ステップS301で
変数宣言した変数に設定した型で代入する。この代入の
結果、返却された値がプロパティの取得関数のプロパテ
ィ値となる(ステップS303)。そして、プロパティ
の取得関数の生成の処理を終了する。
Next, the automatic program generation device 3 substitutes the attribute value obtained in step S302 into the variable declared in step S301 in the type set. As a result of this assignment, the returned value becomes the property value of the property acquisition function (step S303). Then, the process of generating the property acquisition function ends.

【0072】プロパティの設定関数を生成する場合は、
図5のフローチャートに示すように、プログラム自動生
成装置3は、最初に、関数内で有効なローカル変数を、
関数言語で指定される型、すなわち対象とする属性の型
で宣言する(ステップS401)。
When generating a property setting function,
As shown in the flowchart of FIG. 5, the program automatic generation device 3 firstly sets a valid local variable in a function as
It is declared with the type specified by the function language, that is, the type of the target attribute (step S401).

【0073】プログラム自動生成装置3は、次に、ステ
ップS401で指定されたVariant型の引数を取
り出し、それをステップS401で宣言したローカル変
数に代入する(ステップS402)。
Next, the automatic program generation device 3 takes out the Variant type argument specified in step S401 and substitutes it for the local variable declared in step S401 (step S402).

【0074】プログラム自動生成装置3は、次に、AP
I12を介してデータベース11にアクセスし、データ
ベース11に格納されている目的とするオブジェクトの
属性値に、ローカル変数の値を代入(またはコピー)す
る(ステップS403)。
Next, the automatic program generation device 3
The database 11 is accessed via the I12, and the value of the local variable is substituted (or copied) into the attribute value of the target object stored in the database 11 (step S403).

【0075】プログラム自動生成装置3は、さらに、A
PI12を介してデータベース11にオブジェクトの属
性を更新したことを通知し、これによってプロパティ値
をデータベース11に格納されている目的とするオブジ
ェクトの属性に反映させて、更新させるためのプログラ
ムとして必要となるコードを生成する(ステップS40
4)。そして、プロパティの設定関数の生成の処理を終
了する。
The automatic program generation device 3 further includes A
The database 11 is notified via the PI 12 that the attribute of the object has been updated, whereby the property value is reflected in the attribute of the target object stored in the database 11 and is required as a program for updating. Generate Code (Step S40)
4). Then, the process of generating the property setting function ends.

【0076】のオートメーションオブジェクトのメソ
ッドの生成手順について、図6のフローチャートを参照
して、詳しく説明する。
The procedure for generating the method of the automation object will be described in detail with reference to the flowchart of FIG.

【0077】プログラム自動生成装置3は、まず、関数
内で有効となるVariant型のローカル変数を宣言
し、メソッドからの戻り値の型に対応するVarian
t型の型を設定する(ステップS501)。
The automatic program generation device 3 first declares a Variant-type local variable that is valid in the function, and the Varian corresponding to the type of the return value from the method.
A t-type is set (step S501).

【0078】プログラム自動生成装置3は、次に、各引
数毎に対応する開発言語仕様の型のローカル変数を用意
し、その変数にそれぞれのVariant型の引数の値
を代入する(ステップS502)。
Next, the program automatic generation device 3 prepares a local variable of a development language specification type corresponding to each argument, and substitutes the value of each Variant type argument into the variable (step S502).

【0079】プログラム自動生成装置3は、次に、各引
数が代入されたローカル変数の値をパラメータ値とし
て、API12を介してデータベース11に定義されて
いるクラスのメソッドを実行させる(ステップS50
3)。
Next, the program automatic generation device 3 causes the method of the class defined in the database 11 to be executed via the API 12 using the value of the local variable to which each argument is assigned as a parameter value (step S50).
3).

【0080】プログラム自動生成装置3は、次に、ステ
ップS503でのメソッドの実行の結果、値が変わった
ローカル変数の値を、対応する型でVariant型の
引数の値に代入し、メソッドに実行による値の変化を反
映させる(ステップS504)。
Next, the automatic program generation device 3 substitutes the value of the local variable, whose value has changed as a result of the execution of the method in step S 503, into the value of the argument of the corresponding type and the variant type, and executes the method. (Step S504).

【0081】プログラム自動生成装置3は、さらに、ス
テップS503でのメソッドの実行後に返却された値
を、ステップS501で用意したVariant型のロ
ーカル変数に、対応する型で代入し、それをオートメー
ションメソッドの返却値とする(ステップS505)。
そして、このフローチャートの処理を終了する。
The automatic program generation device 3 further substitutes the value returned after the execution of the method in step S503 into a Variant type local variable prepared in step S501 with a corresponding type, and substitutes the value into the automation method. The return value is set (step S505).
Then, the process of this flowchart ends.

【0082】のオートメーションオブジェクトのコン
ストラクタの生成手順について、詳しく説明する。
The procedure for generating the constructor of the automation object will be described in detail.

【0083】オートメーションオブジェクトは、データ
ベース11のスキーマクラスを代理するものなので、プ
ログラム自動生成装置3は、オートメーションオブジェ
クトのクラス定義に、そのスキーマクラスの参照型(ポ
インタ型)のオブジェクトを保持するメンバ変数の宣言
を自動生成する。
Since the automation object substitutes for the schema class of the database 11, the automatic program generation device 3 stores the reference variable (pointer type) of the member variable in the class definition of the automation object in the class definition of the automation object. Automatically generate declarations.

【0084】そして、プログラム自動生成装置3は、ス
キーマクラスの参照型のオブジェクトを生成し、生成し
たオブジェクトにメンバ変数を代入する文を挿入するこ
とによって、オートメーションオブジェクトのコンスト
ラクタを生成する。
Then, the automatic program generation device 3 generates a reference type object of the schema class, and inserts a statement for assigning a member variable to the generated object, thereby generating a constructor of the automation object.

【0085】オートメーションオブジェクトのコンスト
ラクタは、クライアントプログラム21からオートメー
ションオブジェクトのオブジェクト型変数の宣言があっ
たときに呼び出される。従って、クライアント2の側で
扱うオブジェクト型の変数は、スキーマクラスの参照型
のオブジェクトということになる。
The automation object constructor is called when the client program 21 declares an object type variable of the automation object. Therefore, the object type variable handled by the client 2 is a reference type object of the schema class.

【0086】もっとも、スキーマクラスの参照型は、デ
ータベース11のオブジェクトを指すポインタであるの
で、オートメーションオブジェクトのコンストラクタが
呼ばれるときに、スキーマクラスのオブジェクトが生成
される訳ではない。つまり、オートメーションオブジェ
クトのコンストラクタとスキーマクラスのコンストラク
タとは異なるものであり、スキーマクラスのオブジェク
トの生成とそれに伴うコンストラクタの呼び出しは、別
にメンバ関数を用意することによって対応が図られてい
る。
Since the reference type of the schema class is a pointer pointing to an object in the database 11, an object of the schema class is not generated when the constructor of the automation object is called. In other words, the constructor of the automation object is different from the constructor of the schema class, and the creation of the object of the schema class and the calling of the constructor associated therewith are handled by preparing a separate member function.

【0087】次に、ステップS204のオートメーショ
ンサーバのODL記述ファイルD202を生成する処理
について、図7のフローチャートを参照して説明する。
この処理は、図3のステップS202で、API12を
介してデータベース11から読み込んだスキーマクラス
のすべての情報に対して適用される。
Next, the process of generating the ODL description file D202 of the automation server in step S204 will be described with reference to the flowchart of FIG.
This process is applied to all information of the schema class read from the database 11 via the API 12 in step S202 in FIG.

【0088】プログラム自動生成装置3は、まず、CO
MのAPIである“CoCreateGuidを用いて、各クラス毎
にディスパッチインタフェース用のIDを割り当て、O
DL記述ファイルに記述する(ステップS601)。
The automatic program generation device 3 first sets the CO
The ID for the dispatch interface is assigned to each class by using "CoCreateGuid" which is an API of M.
This is described in the DL description file (step S601).

【0089】プログラム自動生成装置3は、次に、ディ
スパッチインタフェースの名前としてスキーマクラスの
名前に接頭語“I”を付け足した名前を用いて、ODL
記述ファイルの“dispinterface”文を記述する。“dis
pinterface”文では、“properties”と“methods”と
を記述するが、ここでは、スキーマクラスの属性名とメ
ソッドとがそのまま用いられる。また、返却値の型は、
すべてVariant型で、引数の型はすべてVari
antのアドレスの型で宣言される。また、“properti
es”と“methods”とのDISPIDには、1から通し
番号が付けられる(ステップS602)。
Next, the automatic program generation device 3 uses the name obtained by adding the prefix “I” to the name of the schema class as the name of the dispatch interface, and
Describe the "dispinterface" statement in the description file. “Dis
In the “pinterface” statement, “properties” and “methods” are described, but here, the attribute names and methods of the schema class are used as they are, and the return value type is
All are Variant types, and all argument types are Variants.
Declared by the address type of ant. Also, “properti
Serial numbers are assigned to the DISPIDs of “es” and “methods” from 1 (step S602).

【0090】プログラム自動生成装置3は、次に、“Co
CreateGuid”を用いて各クラス毎にオートメーションオ
ブジェクト用のIDを割り当て、ODL記述ファイルに
記述する(ステップS603)。
Next, the automatic program generation device 3 sets “Co
An ID for an automation object is assigned to each class by using "CreateGuid" and described in the ODL description file (step S603).

【0091】プログラム自動生成装置3は、さらに、
“dispinterface”文と1対1で対応するように、m同
じスキーマの名前で“coclass”文を記述する。“cocla
ss”文の中には、その“coclass”の名前に接頭語
“I”を付けた“dispinterface”文をサポートする宣
言を記述する(ステップS604)。そして、このフロ
ーチャートの処理を終了する。
The automatic program generation device 3 further comprises:
A “coclass” statement is described with the same schema name as m so as to correspond one-to-one with the “dispinterface” statement. “Cocla
In the “ss” statement, a declaration supporting the “dispinterface” statement with the prefix “I” added to the name of the “coclass” is described (step S604), and the process of this flowchart ends.

【0092】次に、ステップS206のクライアントセ
ットアップ用のレジストリファイルD205を生成する
処理について、説明する。
Next, the process of generating the client setup registry file D205 in step S206 will be described.

【0093】ステップS206で生成されるレジストリ
ファイルD205は、例えば、Windows95やW
indowsNT(いずれも登録商標)のレジストリエ
ディタで、クライアン2のレジストリなどにオートメー
ションサーバ14の情報を登録するために用いられる。
The registry file D205 generated in step S206 is, for example, Windows 95 or W
A registry editor of WindowsNT (both registered trademarks) is used to register information of the automation server 14 in the registry of the client 2 or the like.

【0094】レジストリに登録すべきオートメーション
サーバ14の情報には、オートメーションオブジェクト
毎に、オートメーションサーバの名前、オートメー
ションオブジェクトの名前、クラスID、通信プロ
トコル種別、ネットワークアドレス(IPアドレ
ス)、クライアントプログラム21の実行時に必要な
ダイナミックリンクライブラリなどが含まれる。
The information of the automation server 14 to be registered in the registry includes, for each automation object, the name of the automation server, the name of the automation object, the class ID, the communication protocol type, the network address (IP address), and the execution of the client program 21. Sometimes necessary dynamic link libraries are included.

【0095】このうち、〜は、ステップS201で
初期設定入力された情報と、ステップS202で読み出
されたスキーマ情報とから取得される。は、固定的な
ものであり、プログラムテンプレートファイル4中のレ
ジストリファイルのテンプレートファイルに記述するこ
とによって用意される。
Among them, is obtained from the information initially set and input in step S201 and the schema information read in step S202. Are fixed, and are prepared by describing them in a template file of a registry file in the program template file 4.

【0096】プログラム自動生成装置3は、プログラム
テンプレートファイル4中のレジストリファイルのテン
プレートとなるファイルに、これらの情報のコードを挿
入することによってレジストリファイルD205を生成
する。
The automatic program generation device 3 generates the registry file D205 by inserting the codes of these information into the template file of the registry file in the program template file 4.

【0097】以下、図3のフローチャートにおけるサー
バ1の側でのオートメーションサーバ14のレジストリ
登録(ステップS105)、及びクライアント2の側で
のオートメーションサーバ14のレジストリ登録と接続
設定(ステップS107)の手順について、詳しく説明
する。
Hereinafter, the procedure for registering the registry of the automation server 14 on the server 1 side in the flowchart of FIG. 3 (step S105) and the procedure for registering the registry of the automation server 14 and setting the connection on the client 2 side (step S107) will be described. ,explain in detail.

【0098】ステップS105において、レジストリ登
録される情報は、図2のステップS206で生成された
レジストリファイルD205に含まれる情報のうちの
オートメーションサーバの名前、オートメーションオ
ブジェクトの名前、クラスIDである。これらの情報
は、通常、オートメーションサーバ14の起動時に実行
されるレジストリ登録用のAPIによってオートメーシ
ョンサーバ14のレジストリに登録することができる。
In step S105, the information registered in the registry includes the name of the automation server, the name of the automation object, and the class ID in the information included in the registry file D205 generated in step S206 of FIG. Such information can be registered in the registry of the automation server 14 by an API for registry registration which is usually executed when the automation server 14 is started.

【0099】ステップS107において、図2のステッ
プS206で生成されたレジストリファイルD205に
含まれる情報が、例えば、Windows95やWin
dowsNTのレジストリエディタに読み込ませて、ク
ライアントプログラム21のレジストリに登録される。
なお、通信プロトコル種別やネットワークアドレスなど
のサーバ1への接続に関する設定は、レジストリファイ
ルD205をクライアント21のレジストリに登録した
後でも、例えば、リモートオートメーション接続マネー
ジャなどを用いて変更することが可能である。
In step S107, the information included in the registry file D205 generated in step S206 of FIG.
The program is read by the registry editor of dowsNT and registered in the registry of the client program 21.
Note that the settings relating to the connection to the server 1 such as the communication protocol type and the network address can be changed even after the registry file D205 is registered in the registry of the client 21 by using, for example, a remote automation connection manager. .

【0100】以下、上記のようにして構築したシステム
で実行されるデータベースアプリケーションプログラム
で、オブジェクトの多相性が如何にして実現されている
かについて、詳しく説明する。
Hereinafter, how the polymorphism of the object is realized by the database application program executed by the system constructed as described above will be described in detail.

【0101】この実施の形態のシステムにおいて、多相
性プログラムの実現方法は、オートメーションオブジェ
クトに多相性を実現すべきオブジェクトのクラス名を記
録させる属性を追加し、プログラムの実行時には、オー
トメーションオブジェクトは、その属性から得たクラス
名によって当該オブジェクトのメソッドを呼び出すとい
う考え方に基づいている。
In the system according to the present embodiment, the polymorphism program realizing method adds an attribute for recording the class name of the object for which polymorphism is to be realized to the automation object. It is based on the idea that the method of the object is called by the class name obtained from the attribute.

【0102】また、オートメーションサーバ14が公開
するオートメーションオブジェクトの引数の型をすべて
Variant型とし、そのVariant型の変数値
の型をオートメーションサーバ14が判別することによ
って、適切なメソッドを呼び出している。以下、メソッ
ドの多重定義の場合と、仮想関数との場合に分けて、多
相性の実現方法を詳しく説明する。
Also, the types of the arguments of the automation objects published by the automation server 14 are all Variant types, and the automation server 14 determines the type of the variable type of the Variant type, thereby calling an appropriate method. Hereinafter, the method of realizing polymorphism will be described in detail for the case of overloaded methods and the case of virtual functions.

【0103】オブジェクトの多相性を実現するために、
オートメーションオブジェクトは、引数の型及び/また
は個数が異なるメソッドを複数定義している。ここで、
メソッドの引数の最小個数をm(自然数)、最大個数を
M(自然数)とすると、ODL記述ファイルは、Va
riant型の戻り値、メソッド名、M個のVar
iant型の引数、M−m個のoptionalパラ
メータを指定したVariant型の引数によってメソ
ッドを定義する。
In order to realize polymorphism of objects,
The automation object defines a plurality of methods having different types and / or numbers of arguments. here,
Assuming that the minimum number of method arguments is m (natural number) and the maximum number is M (natural number), the ODL description file is Va
return type return value, method name, M Vars
A method is defined by an argument of an ant type and an argument of a Variant type in which Mm optional parameters are specified.

【0104】のoptionalパラメータは、オー
トメーションメソッドの呼び出し時に、パラメータによ
って対応する引数の値を省略すべきことを示すものであ
る。但し、optionalパラメータによる指定は、
すべてVariant型の引数でなければならないとい
う制限がある。
The optional parameter indicates that the value of the argument corresponding to the parameter should be omitted when the automation method is called. However, the specification by the optional parameter is
There is a restriction that all arguments must be of the Variant type.

【0105】次に、仮想関数の場合、仮想関数は、サー
バ1のが側の開発言語や、データベース11にアクセス
するためのAPI12がサポートしているので、仲介者
となるオートメーションサーバ14は、クライアントプ
ログラム21がどのオブジェクトのメソッドを呼び出し
たのかをサーバプログラム13に渡せばよいこととな
る。
Next, in the case of a virtual function, since the virtual function is supported by the development language of the server 1 and the API 12 for accessing the database 11, the automation server 14 acting as an intermediary What is necessary is just to pass to the server program 13 which object method the program 21 has called.

【0106】仮想関数の処理においては、“virtual”
で定義しているメンバ変数をもつ親クラス(スーパーク
ラス)のオブジェクトと、その親クラスから派生したク
ラス(派生クラス:サブクラス)のオブジェクト間の実
行時の切換が重要となる。
In the processing of the virtual function, "virtual"
It is important to switch at runtime between an object of a parent class (superclass) having a member variable defined in the above and an object of a class derived from the parent class (derived class: subclass).

【0107】仮想関数の運用において、まず、親クラス
のオブジェクトへのポインタを宣言し、そのポインタに
対してメンバ関数の呼び出しが記述される。そして、実
行時に、そのポインタが指すオブジェクトの実体(イン
スタンス)が、親クラスのオブジェクトであるか派生ク
ラスのオブジェクトかをシステムが判断し、そのどちら
か一方の正しいオブジェクトのメソッドが呼び出され
る。
In the operation of a virtual function, first, a pointer to an object of a parent class is declared, and a call to a member function is described for the pointer. At the time of execution, the system determines whether the entity (instance) of the object pointed to by the pointer is an object of a parent class or an object of a derived class, and the method of one of the correct objects is called.

【0108】この実施の形態のシステムにおいては、ク
ライアント2の側で用いられるオートメーションオブジ
ェクトは、オートメーションサーバ14においてスキー
マクラスのオブジェクトを指すポインタとして実装され
ている。従って、オートメーションサーバ14が仮想関
数の処理を正しく中継するためには、クライアント2の
側で親クラスのオブジェクト型変数の実体が実行時に派
生クラスのオブジェクト型変数に置き換わったときに、
オートメーションサーバ14も同様のポインタの置き換
えを行えばよい。
In the system of this embodiment, the automation object used on the client 2 side is implemented in the automation server 14 as a pointer pointing to a schema class object. Therefore, in order for the automation server 14 to correctly relay the processing of the virtual function, when the entity of the object type variable of the parent class is replaced by the object type variable of the derived class at the time of execution on the client 2 side,
The automation server 14 may perform the same pointer replacement.

【0109】この実施の形態のシステムでは、このポイ
ンタの置き換えについて、ポインタ型の代入演算子の代
わりとなるメンバ関数を親クラスのオートメーションオ
ブジェクトに用意することによって、対応している。こ
のメンバ関数は、派生クラスのオブジェクト変数を引数
にとり、そのメンバ関数が呼ばれる親クラスのオブジェ
クトへのポインタを、引数である派生クラスのオブジェ
クトのポインタに置き換える処理を行うものである。
In the system of this embodiment, the replacement of the pointer is supported by preparing a member function as a substitute for the pointer-type assignment operator in the automation object of the parent class. This member function takes an object variable of a derived class as an argument and performs a process of replacing a pointer to an object of a parent class in which the member function is called with a pointer of an object of the derived class as an argument.

【0110】この処理によって、クライアントプログラ
ム21で親クラスのオブジェクトからのメンバ変数の呼
び出しが記述されていても、そのオブジェクトの実体を
実行時に置き換えることが可能となり、オートメーショ
ンサーバ14において、仮想関数の振る舞いを実現する
ことが可能となる。
By this processing, even if a call to a member variable from an object of the parent class is described in the client program 21, it is possible to replace the substance of the object at the time of execution, and the behavior of the virtual function is performed in the automation server 14. Can be realized.

【0111】以下、上記のようにして構築したシステム
において、クライアントプログラム21からデータベー
ス11へアクセスするための処理について、図8のシー
ケンス図を参照して説明する。
Hereinafter, processing for accessing the database 11 from the client program 21 in the system constructed as described above will be described with reference to the sequence diagram of FIG.

【0112】なお、ここで、クライアントプログラム2
1とオートメーションサーバ14との間の通信は、リモ
ートオートメーションプロキシ22とリモートオートメ
ーションマネージャ15とを用い、インターネット5を
介して行われる。また、オートメーションサーバ14或
いはサーバプログラム13とデータベース11との間の
データのやり取りは、API12を介して行われる。
Note that here, the client program 2
Communication between the server 1 and the automation server 14 is performed via the Internet 5 using a remote automation proxy 22 and a remote automation manager 15. The exchange of data between the automation server 14 or the server program 13 and the database 11 is performed via the API 12.

【0113】以下、図8のシーケンス図に示す処理にお
いて、オートメーションサーバ14が実行する処理の詳
細について、図9のフローチャートを参照して説明す
る。
Hereinafter, details of the processing executed by the automation server 14 in the processing shown in the sequence diagram of FIG. 8 will be described with reference to the flowchart of FIG.

【0114】オートメーションサーバ14は、まず、ク
ライアントプログラム21から呼び出されたメソッドの
引数の個数をチェックし、引数が1つ以上あるかどうか
を判定する(ステップS701)。
First, the automation server 14 checks the number of arguments of the method called from the client program 21, and determines whether there is one or more arguments (step S701).

【0115】ステップS701で引数が1つ以上ない、
すなわち引数がないと判定されたときは、オートメーシ
ョンサーバ14は、引数なしのメソッドを呼び出す(ス
テップS702)。そして、このフローチャートの処理
を終了する。
In step S701, there is no argument at least one.
That is, when it is determined that there is no argument, the automation server 14 calls a method without an argument (step S702). Then, the process of this flowchart ends.

【0116】ステップS711で引数が1つ以上あると
判定されたときは、オートメーションサーバは、メソッ
ドの第1引数の値からすべての引数の値の処理が終了す
るまで、ステップS703−S703’のループの処理
を繰り返す。もっとも、後述するように、すべての引数
の値の処理を終了する前に、このループから抜け出す場
合はある。
If it is determined in step S711 that there is at least one argument, the automation server loops through steps S703-S703 'until the processing of all the argument values from the first argument value of the method is completed. Is repeated. However, as will be described later, there is a case where the process exits from this loop before finishing the processing of all the argument values.

【0117】ステップS703−S703’のループの
処理では、オートメーションサーバ14は、まず、メソ
ッドの引数がoptional指定されているかどうか
を判定する(ステップS704)。
In the loop processing of steps S703-S703 ', the automation server 14 first determines whether the argument of the method is optionally specified (step S704).

【0118】ステップS704でメソッドの引数がop
tional指定されていると判定されたときは、オー
トメーションサーバ14は、optional指定の値
が設定されているかどうかを判定する(ステップS70
5)。
In step S704, the argument of the method is
When the automation server 14 determines that the value of the optional specification is set, the automation server 14 determines whether the value of the optional specification is set (step S70).
5).

【0119】ステップS705でoptional指定
の値が設定されていないと判定されたときは、このルー
プを抜けて、後述するステップS711に進む。ステッ
プS705でoptional指定の値が設定されてい
ると判定されたときは、ステップS706に進む。ま
た、ステップS704でメソッドの引数がoption
al指定されていないと判定されたときも、後述するス
テップS706に進む。
If it is determined in step S705 that the value of optional specification has not been set, the process exits this loop and proceeds to step S711 described later. If it is determined in step S705 that the optional designation value has been set, the process advances to step S706. In step S704, the argument of the method is option.
If it is determined that al has not been specified, the process proceeds to step S706, which will be described later.

【0120】ステップS706では、オートメーション
サーバ14は、Variant型引数の値がどのような
型であるかをチェックする。オートメーションサーバ1
4は、さらにステップS706でチェックした引数の型
がオブジェクト型であるかどうかを判定する(ステップ
S707)。
In step S706, the automation server 14 checks what type the value of the Variant type argument is. Automation server 1
4 further determines whether or not the type of the argument checked in step S706 is an object type (step S707).

【0121】ステップS707で引数の型がオブジェク
ト型であると判定されたときは、オートメーションサー
バ14は、Variant型のオブジェクト型の変数の
クラス名を、各クラスで実現されているオブジェクト自
身にそのオブジェクトのクラス名を記録させておくリフ
レクションの機能を用いて、チェックする(ステップS
708)。
If it is determined in step S707 that the type of the argument is an object type, the automation server 14 assigns the class name of the variable of the variant object type to the object realized by each class. Check using the reflection function that records the class name of the
708).

【0122】オートメーションサーバ14は、さらに、
クラス名に対応するスキーマクラスのオブジェクトを宣
言し、宣言したオブジェクトに、ステップS707で判
定されたオブジェクト型の引数を代入する(ステップS
709)。ステップS709の処理が終了すると、メソ
ッドに次の引数があればその引数についてのループ(S
703−S703’)の処理に、次の引数がなければ、
ループ(S703−S703’)を抜けて、ステップS
711の処理に進む。
The automation server 14 further includes:
A schema class object corresponding to the class name is declared, and the object type argument determined in step S707 is substituted for the declared object (step S707).
709). When the process of step S709 is completed, if there is a next argument in the method, a loop (S
703-S703 ′), if there is no next argument,
After exiting the loop (S703-S703 '), step S
The process proceeds to 711.

【0123】ステップS707で引数の型がオブジェク
ト型でないと判定されたときは、オートメーションサー
バ14は、ステップS706でチェックした型に対応す
る開発言語仕様の型で変数宣言をし、宣言した変数に引
数の値を代入する(ステップS710)。ステップS7
10の処理が終了すると、メソッドに次の引数があれば
その引数についてのループ(S703−S703’)の
処理に、次の引数がなければ、ループ(S703−S7
03’)を抜けて、ステップS711の処理に進む。
If it is determined in step S707 that the type of the argument is not an object type, the automation server 14 declares a variable in the type of the development language specification corresponding to the type checked in step S706, and Is substituted (step S710). Step S7
When the process of step 10 is completed, if the method has the next argument, the loop (S703-S703 ') for the next argument, and if there is no next argument, the loop (S703-S7)
03 '), the process proceeds to step S711.

【0124】ステップS711では、オートメーション
サーバ14は、以上の処理で準備された変数やオブジェ
クトを引数として、多重定義されたメソッドを呼び出
す。そして、このフローチャートの処理を終了する。
In step S711, the automation server 14 calls the overloaded method using the variables and objects prepared in the above processing as arguments. Then, the process of this flowchart ends.

【0125】以上説明したように、プログラム自動生成
装置3は、データベース11に定義されているスキーマ
クラスの情報を取得し、取得した情報のうちの適切なも
のをテンプレートファイル4のうちのオートメーション
サーバ生成用のものに挿入することによって、オートメ
ーションサーバ14を生成することができる。また、取
得した情報のうちの適切なものをテンプレートファイル
4のうちのODL記述ファイル生成用のものに挿入する
ことによって、ODL記述ファイルを生成し、これによ
り、インタフェース定義を定めることができる。さら
に、取得した情報からレジストリ登録に使用する情報か
らなるレジストリファイルも生成することができる。
As described above, the automatic program generation device 3 acquires the information of the schema class defined in the database 11 and converts an appropriate one of the acquired information into the automation server generation information of the template file 4. For example, the automation server 14 can be generated by inserting it into a server. Also, by inserting an appropriate one of the acquired information into an ODL description file generation one of the template files 4, an ODL description file can be generated, thereby defining an interface definition. Further, a registry file including information used for registry registration can be generated from the acquired information.

【0126】従って、この実施の形態のプログラム自動
生成装置3によれば、オブジェクト指向のデータベース
11を操作するためのプログラムの生成が容易になる。
また、例えば、インタフェース仕様が変更された場合な
どにも、プログラムを一から作り直す必要がないので、
プログラムの運用、保守も容易になる。
Therefore, according to the automatic program generation device 3 of this embodiment, it is easy to generate a program for operating the object-oriented database 11.
Also, for example, when the interface specifications are changed, there is no need to recreate the program from scratch,
The operation and maintenance of the program will also be easier.

【0127】しかも、データベース11、クライアント
プログラム21、或いはオートメーション通信を行うた
めのリモートオートメーションマネージャ15及びリモ
ートオートメーションプロキシ22には、既存のシステ
ムを利用することができるので、プログラムの開発、さ
らにはテストを容易に行うことができる。
In addition, since the existing system can be used for the database 11, the client program 21, or the remote automation manager 15 and the remote automation proxy 22 for performing the automation communication, program development and further testing can be performed. It can be done easily.

【0128】さらに、optionalパラメータの導
入によって、クライアント2側のクライアントプログラ
ム21とサーバ1側のオートメーションサーバ14との
オートメーション通信におけるインタフェース仕様を統
一することができ、なおかつデータベース11に登録さ
れているオブジェクトの多相性の機能を十分に利用する
ことができる。
Further, by introducing the optional parameter, the interface specifications in the automation communication between the client program 21 on the client 2 side and the automation server 14 on the server 1 side can be unified, and the object registered in the database 11 can be unified. The polymorphic function can be fully utilized.

【0129】上記の実施の形態では、プログラム自動生
成装置3は、サーバ1とは別個の情報処理装置によって
構成されていた。しかしながら、サーバ1がプログラム
自動生成装置3の機能を含むものとして、サーバ1とプ
ログラム自動生成装置3とを同一の情報処理装置によっ
て構成することもできる。この場合において、プログラ
ムテンプレートファイル4は、サーバ1内の記憶装置に
記憶することも外部の記憶装置に記憶することもでき
る。
In the above embodiment, the program automatic generation device 3 is constituted by an information processing device separate from the server 1. However, assuming that the server 1 includes the function of the automatic program generation device 3, the server 1 and the automatic program generation device 3 may be configured by the same information processing device. In this case, the program template file 4 can be stored in a storage device in the server 1 or in an external storage device.

【0130】上記の実施の形態では、オートメーション
オブジェクトプログラム、ODL記述及びレジストリフ
ァイルは、すべて同一のプログラム自動生成装置3によ
って生成されていた。しかしながら、これらは、それぞ
れ別々の情報処理装置によって生成し、コンパイルした
後に、リンクしてもよい。
In the above embodiment, the automation object program, the ODL description, and the registry file are all generated by the same program automatic generation device 3. However, these may be generated by different information processing devices, compiled, and then linked.

【0131】上記の実施の形態では、インターネット5
を介して接続されたサーバ1とクライアント2とからな
るクライアントサーバシステムで本発明のプログラムの
開発・実行環境を実現した場合について説明した。しか
しながら、本発明はこれに限られない。例えば、イント
ラネット環境でのクライアントサーバシステムを本発明
のプログラムの開発・実行環境とすることもできる。
In the above embodiment, the Internet 5
A case has been described in which a client-server system including a server 1 and a client 2 connected via a PC implements a program development / execution environment of the present invention. However, the present invention is not limited to this. For example, a client server system in an intranet environment can be used as a development and execution environment of the program of the present invention.

【0132】また、クライアント(マシン)2とサーバ
(マシン)1とが別個に存在するクライアントサーバシ
ステムではなく、図10に示すようなスタンドアローン
型のコンピュータシステム6も、本発明のプログラムの
開発・実行環境とすることができる。この場合、クライ
アントプログラム21のプロセスとコンピュータシステ
ム6上にオートメーションサーバ14のサーバプロセス
とが存在することとなり、クライアントプログラム21
とオートメーションサーバ14とがプロセス間通信の手
法を用いてオートメーション通信を行う。
In addition to a client-server system in which a client (machine) 2 and a server (machine) 1 are separately provided, a stand-alone computer system 6 as shown in FIG. An execution environment. In this case, the process of the client program 21 and the server process of the automation server 14 exist on the computer system 6, and the client program 21
And the automation server 14 perform automation communication using an inter-process communication technique.

【0133】上記の実施の形態では、COM/DCOM
を基礎とするオートメーション通信を例として説明し
た。しかしながら、本発明におけるオートメーション通
信は、COM/DCOMを基礎とするものに限るもので
はなく、本発明の趣旨を逸脱しない限りにおいて、他の
仕様を基礎とするものにも適用することができる。
In the above embodiment, COM / DCOM
The automation communication based on is described as an example. However, the automation communication in the present invention is not limited to the communication based on COM / DCOM, but can be applied to the communication based on other specifications without departing from the gist of the present invention.

【0134】[0134]

【実施例】以下、上記の実施の形態のデータベースアプ
リケーションプログラムの開発・実行環境を具体的なシ
ステムで実現した場合の実施例について、プログラムリ
スト(ソースリスト)を参照しながら説明する。
DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment in which the database application program development and execution environment of the above embodiment is realized by a specific system will be described below with reference to a program list (source list).

【0135】この実施例のシステムでは、データベース
11としてオブジェクト指向データベースPERCIO
(登録商標)、サーバプログラム開発言語としてVis
ual C++(登録商標)、クライアントプログラム
開発言語としてVisualBasic(登録商標)を
用いている。
In the system of this embodiment, the database 11 is an object-oriented database PERCIO.
(Registered trademark), Vis as a server program development language
ual C ++ (registered trademark), and Visual Basic (registered trademark) are used as a client program development language.

【0136】1)オートメーションオブジェクトのクラ
ス オートメーションオブジェクトのヘッダファイルの一部
となるプログラムテンプレートファイル4のプログラム
リストの一例を以下に示す。この例では、“@@”で囲
まれる文字列が、オートメーションサーバ14がAPI
を介してデータベース11から取得するスキーマクラス
の情報が埋め込まれる個所である。従って、以下の“@@
CLASS@@”は、クラス名に置き換えられる。
1) Class of Automation Object An example of the program list of the program template file 4 which is a part of the header file of the automation object is shown below. In this example, the character string enclosed by "@"
This is where the information of the schema class acquired from the database 11 via the. Therefore, the following “@@
CLASS @@ ”is replaced by the class name.

【0137】また、“dRef”は、すべてのユーザ定義ス
キーマクラスの基本クラスとなっている。オートメーシ
ョンオブジェクトのクラスは、“dRef”を継承して定義
されている。“d_Extend”“d_Set”、“d_List”は、
PERCIOがシステムとして予め用意しているテンプ
レート型のスキーマクラスである。“d_Ref_Any”は、
PERCIOがシステムとして予め用意しているデータ
ベース中の任意のオブジェクトへのポインタを保持する
変数の型である。
“DRef” is a base class of all user-defined schema classes. The class of the automation object is defined by inheriting “dRef”. “D_Extend” “d_Set” and “d_List”
This is a template type schema class prepared in advance as a system by PERCIO. “D_Ref_Any”
This is a type of a variable that holds a pointer to an arbitrary object in a database prepared in advance by the PERCIO as a system.

【0138】オートメーションオブジェクトのクラス
は、これらのシステムが用意するスキーマクラスのオブ
ジェクトを生成するメンバ関数“createextend()”、
“createset()”、“createlist()”の関数宣言と、自
分自身を指すポインタを生成するメンバ関数“create_n
weref()”の関数宣言とを定義する。
The class of the automation object includes member functions “createextend ()” for generating schema class objects prepared by these systems,
“Createset ()” and “createlist ()” function declarations and a member function “create_n that creates a pointer to itself
aref () ”function declaration.

【0139】なお、この実施例で示されている、接頭語
“C”で始まるクラスは、オートメーションオブジェク
トのクラスを表し、接頭語“C”をとったクラス名のス
キーマクラスと1対1で対応する。また、接頭語“d_”
で始まるクラスは、PERCIOがシステムとして予め
用意するスキーマクラスであり、アンダースコアのない
接頭語“d”で始まるクラスは、PERCIOがシステ
ムとして用意するクラスと1対1で対応するオートメー
ションクラスを表している。
Note that the class starting with the prefix "C" shown in this embodiment represents the class of the automation object, and has a one-to-one correspondence with the schema class of the class name with the prefix "C". I do. Also, the prefix "d_"
Are classes that are prepared in advance by the PERCIO as a system, and classes that begin with the prefix "d" without underscore represent automation classes that have a one-to-one correspondence with the classes that the PERCIO prepares as a system. I have.

【0140】[0140]

【0141】2)オートメーションオブジェクトの基本
クラスのプログラム オートメーションオブジェクトのクラス“dRef”のヘッ
ダファイルのプログラムリストの一部を以下に示す。
“dRef”は、すべてのユーザ定義スキーマクラスに共通
の基本クラスであり、固定的なファイルとしてプログラ
ムテンプレートファイル4に用意されている。
2) Program of Automation Object Base Class A part of the program list of the header file of the automation object class "dRef" is shown below.
“DRef” is a basic class common to all user-defined schema classes, and is prepared in the program template file 4 as a fixed file.

【0142】[0142]

【0143】オートメーションオブジェクトのテンプレ
ートファイルで定義されているメンバ変数は、すべて
“dRef”クラスで、仮想関数で定義されている。また、
属性の定義としては、オートメーションオブジェクトが
代理として振る舞っているPERCIOのオブジェクト
へのポインタを保持する“m_classref”、オートメーシ
ョンオブジェクト自身のクラス名を保持する“m_classn
ame”がある。“m_classref”は、オートメーションオ
ブジェクトのコンストラクタの説明の部分で述べたスキ
ーマクラスの参照型のオブジェクトを保持するメンバ変
数である。また、“m_classname”は、多重定義の説明
の部分で述べたオブジェクトのクラス名を記憶させるメ
ンバ変数である。
The member variables defined in the template file of the automation object are all “dRef” classes and are defined by virtual functions. Also,
The attributes are defined as “m_classref” that holds a pointer to a PERIC object where the automation object is acting as a proxy, and “m_classn” that holds the class name of the automation object itself.
am ”.“ m_classref ”is a member variable that holds the reference type object of the schema class described in the description of the constructor of the automation object.“ m_classname ”is a description of the overloaded This is a member variable that stores the class name of the object described above.

【0144】3)オートメーションオブジェクトのプロ
パティのプログラム 図4のプロパティの取得関数の生成手順を実現するプロ
グラムリストを以下に示す。このプログラムは、スキー
マクラスのint型の属性値を取得するプロパティの取
得関数を示すものである。この例では、“@@ORIGVAR@
@”がスキーマクラスの情報の属性名と置き換わる。ま
た、“@@VAR@@”は、その属性の中でアンダースコアを
取り除いた文字列と置き換わる。
3) Program of property of automation object A program list for realizing the procedure for generating the property acquisition function shown in FIG. 4 is shown below. This program shows a property acquisition function for acquiring an int type attribute value of a schema class. In this example, “@@ ORIGVAR @
"@" Is replaced with the attribute name of the schema class information, and "@@ VAR @@" is replaced with the character string in which the underscore is removed from the attribute.

【0145】 VARIANT C@@CLASS@@::_Get@@VAR@@() { VARIANT vaResult; VariantInit(&vaResult); V_VT(&vaResult) = VT_I4; if (!m_classref) return vaResult; V_I4(&vaResult) = GETOBJ(m_classref)->@@ORIGVAR@@; return vaResult; }VARIANT C @@ CLASS @@ :: _ Get @@ VAR @@ () {VARIANT vaResult; VariantInit (&vaResult); V_VT (& vaResult) = VT_I4; if (! M_classref) return vaResult; V_I4 (& vaResult) = GETOBJ (m_classref)-> @@ ORIGVAR @@; return vaResult;}

【0146】図5のプロパティの設定関数の生成手順を
実現するプログラムリストを以下に示す。このプログラ
ムは、スキーマクラスのchar*型の属性値を取得す
るプロパティの取得関数を示すものである。ここで、最
後の行にある“GETOBJ”はマクロであり、“m_classre
f”のオブジェクトの参照型に展開される。また、“mar
k_modified()”は、PERCIOが用意するシステムの
メンバ関数であり、プロパティ設定においてオブジェク
トの属性値が変更されたことをデータベース11に通知
して、データベース11の内容を更新する。
A program list for implementing the procedure for generating the property setting function shown in FIG. 5 is shown below. This program shows a property acquisition function for acquiring a char * type attribute value of a schema class. Here, “GETOBJ” in the last line is a macro, and “m_classre”
expands to the reference type of the object "f" and "mar
“k_modified ()” is a member function of the system prepared by PERCIO, and notifies the database 11 that the attribute value of the object has been changed in the property setting, and updates the contents of the database 11.

【0147】 void C@@CLASS@@::_Set@@VAR@@(const VARIANT FAR& newValue) { CString c_@@VAR@@; if (!m_classref) return; c_@@VAR@@ = CString(V_BSTR(&newValue)); strcpy(GETOBJ(m_classref)->@@ORIGVAR@@, c_@@VAR@@); GETOBJ(m_classref).mark_modified(); }[0147] void C @@ CLASS @@ :: _ Set @@ VAR @@ (const VARIANT FAR & newValue) {CString c _ @@ VAR @@; if (! M_classref) return; c _ @@ VAR @@ = CString (V_BSTR (&newValue)); strcpy (GETOBJ (m_classref)-> @@ ORIGVAR @@, c _ @@ VAR @@); GETOBJ (m_classref) .mark_modified ();}

【0148】4)オートメーションオブジェクトのメソ
ッドのプログラム 図6のオートメーションメソッドの生成手順を実現する
プログラムリストを以下に示す。このプログラムは、ユ
ーザが定義したスキーマクラス“Employee”を代理する
オートメーションオブジェクトのクラス“CEmployee”
のメソッド“getdata”を実装するものである。スキー
マクラスのメソッド名は、“get_data”である。また、
“CopyToVARIANT”は、グローバル関数であり、API
呼び出しの結果置き換わったパラメータ“n_param0”の
値を、オートメーションメソッドのVariant型の
引数“param0”にコピーする。
4) Program of Automation Object Method A program list for implementing the procedure for generating the automation method shown in FIG. 6 is shown below. This program is an automation object class "CEmployee" that represents the schema class "Employee" defined by the user.
Implements the method “getdata” of The method name of the schema class is “get_data”. Also,
“CopyToVARIANT” is a global function and API
The value of the parameter “n_param0” replaced as a result of the call is copied to the variant type argument “param0” of the automation method.

【0149】[0149]

【0150】5)サーバプログラム スキーマクラス“Employee”のメンバ関数get_dataの実
装例を以下に示す。このプログラムは、図1のサーバプ
ログラム13に対応し、また、このプログラムの作成
は、図2のステップS102の処理に相当する。
5) Server Program An implementation example of the member function get_data of the schema class “Employee” is shown below. This program corresponds to the server program 13 in FIG. 1, and the creation of this program corresponds to the process in step S102 in FIG.

【0151】[0151]

【0152】6)ODL記述ファイル ODL記述ファイルを生成するためのプログラムテンプ
レートファイル4のうちのテンプレートの例を以下に示
す。ここでは、“dispinterface”文の“propeties”ま
でを記述するテンプレートファイルの例を示す。以下の
例は、図7のODL記述の生成手順において用いられ
る。
6) ODL Description File Examples of templates in the program template file 4 for generating the ODL description file are shown below. Here, an example of a template file describing up to “propeties” of a “dispinterface” statement is shown. The following example is used in the ODL description generation procedure of FIG.

【0153】[0153]

【0154】この後に、スキーマクラスの属性が挿入さ
れる。“dispinterface”文の“method”までを記述す
るテンプレートファイルを以下に示す。
Thereafter, the attribute of the schema class is inserted. The template file that describes up to “method” of the “dispinterface” statement is shown below.

【0155】[0155]

【0156】この後に、スキーマクラスのメソッドが挿
入される。“dispinterface”文の最後の部分の生成に
用いられるテンプレートファイルを以下に示す。
Thereafter, the method of the schema class is inserted. The template file used to generate the last part of the “dispinterface” statement is shown below.

【0157】[0157]

【0158】“coclass”文を記述するためのテンプレ
ートファイルを以下に示す。
A template file for describing a "coclass" statement is shown below.

【0159】[0159]

【0160】上記の図7のフローチャートで示した手順
に従ってこの実施例のプログラム生成装置3が生成し
た、オートメーションオブジェクトのクラス“CEmploye
e”のODL記述ファイルの例を以下に示す。このOD
L記述ファイルをコンパイルし、タイプライブラリを作
成して公開すれば、オートメーションオブジェクトを外
部と連携することが可能となる。
The automation object class “CEmploye” generated by the program generation device 3 of this embodiment according to the procedure shown in the flowchart of FIG.
An example of the ODL description file of “e” is shown below.
If the L description file is compiled, and a type library is created and made public, the automation object can be linked with the outside.

【0161】 [ uuid(5794F9E6-3A54-11d1-BB17-00004C95A764) ] dispinterface IEmployee { properties: //{{AFX_ODL_PROP(CEmployee) [id(1)] VARIANT name; [id(2)] VARIANT birthday; [id(3)] VARIANT section; [id(4)] VARIANT salary; //}}AFX_ODL_PROP methods: //{{AFX_ODL_METHOD(CEmployee) [id(5)] VARIANT create(VARIANT * db_obj, VARIANT* param0, VARIANT* param1, VARIANT* param2, VARIANT*param3); [id(6)] VARIANT setsalary(VARIANT* param0); [id(7)] VARIANT getsalary(); [id(8)] VARIANT getdata(VARIANT* param0); [id(9)] VARIANT getall(VARIANT* param0); [id(10)] VARIANT remove(); //}}AFX_ODL_METHOD }; // Class information for CEmployee [ uuid(5794F9E7-3A54-11d1-BB17-00004C95A764) ] coclass CEmployee { [default] dispinterface IEmployee; }[Uuid (5794F9E6-3A54-11d1-BB17-00004C95A764)] dispinterface IEmployee {properties: // {{AFX_ODL_PROP (CEmployee) [id (1)] VARIANT name; [id (2)] VARIANT birthday; [id (3)] VARIANT section; [id (4)] VARIANT salary; //}} AFX_ODL_PROP methods: // {{AFX_ODL_METHOD (CEmployee) [id (5)] VARIANT create (VARIANT * db_obj, VARIANT * param0, VARIANT * param1, VARIANT * param2, VARIANT * param3); [id (6)] VARIANT setsalary (VARIANT * param0); [id (7)] VARIANT getsalary (); [id (8)] VARIANT getdata (VARIANT * param0); [id (9)] VARIANT getall (VARIANT * param0); [id (10)] VARIANT remove (); //}} AFX_ODL_METHOD}; // Class information for CEmployee [uuid (5794F9E7-3A54-11d1-BB17-00004C95A764 )] coclass CEmployee {[default] dispinterface IEmployee;}

【0162】7)クライアントセットアップ用レジスト
リファイル 図3のステップS206で生成されるレジストリファイ
ルD205の、この実施例における生成例を以下に示
す。この例では、オートメーションサーバの名前が、
“BookAX”、オートメーションオブジェクトの名前が
“CEmployee”、オートメーションサーバ“BookAX”の
IPアドレスが“133.207.62.173”と設定されている。
また、オートメーションオブジェクト“CEployee”のC
LSIDは、“5794F9E7-3A54-11d1-BB17-00004C95A76
4”に設定されており、ODL記述ファイル中の“cocla
ss”文の“CEmployee”の“uuid”と一致する。なお、
このレジストリファイルの内容は、図2のステップS1
06でクライアント2に登録される。
7) Registry File for Client Setup A generation example of the registry file D205 generated in step S206 of FIG. 3 in this embodiment is shown below. In this example, the name of the automation server is
“BookAX”, the name of the automation object is “CEmployee”, and the IP address of the automation server “BookAX” is set to “133.207.62.173”.
Also, the C of the automation object "CEployee"
The LSID is “5794F9E7-3A54-11d1-BB17-00004C95A76
4 ”and“ cocla ”in the ODL description file.
matches "uuid" of "CEmployee" in the "ss" statement.
The contents of this registry file are stored in step S1 in FIG.
At 06, it is registered in the client 2.

【0163】 [HKEY_CLASSES_ROOT\CLSID\{5794F9E7-3A54-11d1-BB17-
00004C95A764}] @="BookAX.CEmployee" [HKEY_CLASSES_ROOT\CLSID\{5794F9E7-3A54-11d1-BB17-
00004C95A764}\LocalServer32] @="BookAX.EXE" [HKEY_CLASSES_ROOT\CLSID\{5794F9E7-3A54-11d1-BB17-
00004C95A764}\_LocalServer32] @="BookAX.EXE" [HKEY_CLASSES_ROOT\CLSID\{5794F9E7-3A54-11d1-BB17-
00004C95A764}\ProgId] @="BookAX.CEmployee" [HKEY_CLASSES_ROOT\CLSID\{5794F9E7-3A54-11d1-BB17-
00004C95A764}\InprocHandler32] @="ole32.dll" [HKEY_CLASSES_ROOT\BookAX.CEmployee] @="BookAX.CEmployee" [HKEY_CLASSES_ROOT\BookAX.CEmployee\CLSID] @="{5794F9E7-3A54-11d1-BB17-00004C95A764}" [HKEY_CLASSES_ROOT\CLSID\{5794F9E7-3A54-11d1-BB17-
00004C95A764}\InprocServer32] @="autprx32.dll" [HKEY_CLASSES_ROOT\CLSID\{5794F9E7-3A54-11d1-BB17-
00004C95A764}\NetworkAddress] @="133.207.62.173" [HKEY_CLASSES_ROOT\CLSID\{5794F9E7-3A54-11d1-BB17-
00004C95A764}\ProtocolSequence] @="ncacn_ip_tcp"
[HKEY_CLASSES_ROOT \ CLSID \ {5794F9E7-3A54-11d1-BB17-
00004C95A764}] @ = "BookAX.CEmployee" [HKEY_CLASSES_ROOT \ CLSID \ {5794F9E7-3A54-11d1-BB17-
00004C95A764} \ LocalServer32] @ = "BookAX.EXE" [HKEY_CLASSES_ROOT \ CLSID \ {5794F9E7-3A54-11d1-BB17-
00004C95A764} \ _ LocalServer32] @ = "BookAX.EXE" [HKEY_CLASSES_ROOT \ CLSID \ {5794F9E7-3A54-11d1-BB17-
00004C95A764} \ ProgId] @ = "BookAX.CEmployee" [HKEY_CLASSES_ROOT \ CLSID \ {5794F9E7-3A54-11d1-BB17-
00004C95A764} \ InprocHandler32] @ = "ole32.dll" [HKEY_CLASSES_ROOT \ BookAX.CEmployee] @ = "BookAX.CEmployee" [HKEY_CLASSES_ROOT \ BookAX.CEmployee \ CLSID] @ = "{5794F9E7-3A54-11d1-BB17-00004C95A764}" [HKEY_CLASSES_ROOT \ CLSID \ {5794F9E7-3A54-11d1-BB17-
00004C95A764} \ InprocServer32] @ = "autprx32.dll" [HKEY_CLASSES_ROOT \ CLSID \ {5794F9E7-3A54-11d1-BB17-
00004C95A764} \ NetworkAddress] @ = "133.207.62.173" [HKEY_CLASSES_ROOT \ CLSID \ {5794F9E7-3A54-11d1-BB17-
00004C95A764} \ ProtocolSequence] @ = "ncacn_ip_tcp"

【0164】8)クライアントプログラム Visual Basicによって生成した、この実施
例のクライアントプログラム21の例を以下に示す。こ
れは、図2のステップS108で生成されるものであ
る。この例では、オートメーションサーバ14には、
“BookAX”と“CPPAPI”という2つの名前が用いられて
おり、ユーザが定義したスキーマクラスを代理するオー
トメーションサーバには“BookAX”が、PERCIOが
用意するシステムのスキーマクラスを代理するオートメ
ーションサーバには“CPPAPI”が用いられている。
8) Client Program An example of the client program 21 of this embodiment generated by Visual Basic is shown below. This is generated in step S108 of FIG. In this example, the automation server 14 has
The two names "BookAX" and "CPPAPI" are used, and "BookAX" is used for the automation server acting on behalf of the schema class defined by the user, while the automation server acting on behalf of the schema class of the system provided by PERCIO is used for the automation server. “CPPAPI” is used.

【0165】“Dim”ステートメントでVariant
型の変数を宣言し、それに続く“CreateObject”関数で
オートメーションオブジェとを参照し、“Set”ステー
トメントでVariant型の変数にオブジェクト型と
して保持させる。この2つのVariant型の変数に
よって、PERCIOのスキーマクラスのオブジェクト
への参照関係も解除される。
Variant in “Dim” statement
Declare a variable of the type, refer to the automation object with the “CreateObject” function that follows, and store the Variant type variable as an object type with the “Set” statement. The two Variant-type variables also release the reference relationship to the objects of the PERCIO schema class.

【0166】また、プログラムの後半で用いられている
“Grid1”や“Text1”などで表されている“ActiveX”
コントロールは、グリッドコントロールとテキストボッ
クスコントロールとを用いて、データベース11の検索
結果を表示するときに用いられている。
Also, “ActiveX” represented by “Grid1” or “Text1” used in the latter half of the program
The control is used when displaying a search result of the database 11 using a grid control and a text box control.

【0167】 Private Sub printemp() Dim emp As Variant Set emp = CreateObject("BookAX.CEmployee") Dim ext As Variant Set ext = CreateObject("CPPAPI.dExtent") ext.init emp Dim itr As Variant Set itr = ext.createiterator Dim str As Variant Dim sum As Variant Dim i As Integer Do While itr.Next(emp) str = String(64, " ") emp.GetData str sum = sum + str i = i + 1 Set str = Nothing Loop Grid1.Clip = sum Text1.Text = i Set emp = Nothing Set ext = Nothing Set itr = Nothing End SubPrivate Sub printemp () Dim emp As Variant Set emp = CreateObject ("BookAX.CEmployee") Dim ext As Variant Set ext = CreateObject ("CPPAPI.dExtent") ext.init emp Dim itr As Variant Set itr = ext .createiterator Dim str As Variant Dim sum As Variant Dim i As Integer Do While itr.Next (emp) str = String (64, "") emp.GetData str sum = sum + str i = i + 1 Set str = Nothing Loop Grid1.Clip = sum Text1.Text = i Set emp = Nothing Set ext = Nothing Set itr = Nothing End Sub

【0168】9)多重定義 スキーマクラスのメソッド“get_data”は、引数が最小
で1個、最大で3個の多重定義されているメソッドであ
るとする。この場合、ODL記述ファイルには、opt
ional指定を用いてオートメーションメソッド“ge
tdata”を記述することとなるが、この実施例におい
て、プログラムは以下のように記述される。
9) Overload Definition The method "get_data" of the schema class is assumed to be an overloaded method with at least one argument and at most three arguments. In this case, the ODL description file contains opt
Automation method “ge” using ionical specification
tdata ". In this embodiment, the program is described as follows.

【0169】以下のようなoptional指定をOD
L記述ファイルに記述することによって、オートメーシ
ョンサーバ14は、クライアントプログラム21から渡
された引数の型をVariant型からデータベース1
1の開発言語の型のものに変換すれば、引数が1個から
3個のいずれの個数のメソッドも呼び出すことができ
る。
The following optional specification is set to OD
By describing the data in the L description file, the automation server 14 changes the type of the argument passed from the client program 21 from the variant type to the database 1
If it is converted to a development language type, any number of methods with one to three arguments can be called.

【0170】[id(8)] VARIANT getdata(VARIANT* param
0, [optional] VARIANT* param1, [optional] VARIANT*
param2);
[Id (8)] VARIANT getdata (VARIANT * param
0, [optional] VARIANT * param1, [optional] VARIANT *
param2);

【0171】10)仮想関数 この実施例において、仮想関数を実現するための仮想関
数の例を以下に示す。ここで、“CPerson”というクラ
スが、“CEmployee”の親クラスとなる。また、以下の
プログラム中の“d_Ref<Person>”は、スキーマクラス<
Person>のオブジェクトを指すポインタを保持する変数
の型である。
10) Virtual Function In this embodiment, an example of a virtual function for realizing the virtual function is shown below. Here, the class “CPerson” is the parent class of “CEmployee”. “D_Ref <Person>” in the following program is the schema class <
This is the type of a variable that holds a pointer to the Person> object.

【0172】 VARIANT CPerson::cast(VARIANT FAR* param0) { dRef *src_dRef = dynamic_cast<dRef*>(CCmdTarget::FromIDispatch(V_DISPATCH(param0))); if(src_dRef != NULL) { d_Ref<Person> c_person; c_person = (d_Ref<Person>)src_dRef->m_classref; m_classref = (d_Ref_Any)c_person; } }VARIANT CPerson :: cast (VARIANT FAR * param0) {dRef * src_dRef = dynamic_cast <dRef *> (CCmdTarget :: FromIDispatch (V_DISPATCH (param0)))); if (src_dRef! = NULL) {d_Ref <Person> c_person ; c_person = (d_Ref <Person>) src_dRef-> m_classref; m_classref = (d_Ref_Any) c_person;}}

【0173】以下、この実施例のシステムにおけるデー
タベースアプリケーションプログラムの開発プロセスに
ついて、図11のフローチャートを参照して説明する。
Hereinafter, the development process of the database application program in the system of this embodiment will be described with reference to the flowchart of FIG.

【0174】まず、開発者は、PERCIO(データベ
ース11)のスキーマを設計し、データベースの構築を
行う(ステップS801)。設計したデータベースのス
キーマは、拡張及び/または変更をすることが可能であ
る(ステップS802)。さらに、開発者は、各スキー
マクラス毎にメソッドを実装する(ステップS80
3)。ここで実装したメソッドが、上記のサーバプログ
ラム13の一部となる。なお、以上のステップS803
までで示したシステムの構築を行う代わりに、既存のシ
ステムを用いることも可能である。
First, the developer designs the schema of the PERCIO (database 11) and constructs the database (step S801). The designed database schema can be extended and / or changed (step S802). Further, the developer implements a method for each schema class (Step S80)
3). The method implemented here becomes a part of the server program 13 described above. The above step S803
Instead of constructing the system described above, an existing system can be used.

【0175】以後、開発プロセスは、システムの開発が
サーバ1側とクライアント2側とで並行して進めること
が可能となる。サーバ1の側では、後述するステップS
804〜S810のすべての開発プロセスを実行するこ
とが可能となる。一方、クライアント2の側では、後述
するステップS805とS806、及びS808〜S8
10までの開発プロセスを実行することが可能となる。
Thereafter, in the development process, the development of the system can proceed in parallel on the server 1 side and the client 2 side. On the server 1 side, step S described later
All development processes from 804 to S810 can be executed. On the other hand, on the client 2 side, steps S805 and S806, which will be described later, and S808 to S8
Up to 10 development processes can be performed.

【0176】次に、開発者は、上記の実施の形態で示し
たプログラム自動生成装置3を用いて、データベース1
1に登録されているスキーマクラスに対応したオートメ
ーションサーバ14を生成する(ステップS804)。
Next, the developer uses the automatic program generation device 3 shown in the above embodiment to execute the database 1
Then, an automation server 14 corresponding to the schema class registered in No. 1 is generated (step S804).

【0177】次に、開発者は、サーバ1の側のPERC
IOの環境を用いて、或いはオートメーションサーバ1
4を介してクライアント2の側から操作することによっ
て、データベース11に実体(インスタンス)を格納す
る(ステップS805)。なお、いずれの方法による場
合でも、データベース11に格納したインスタンスは、
Visual Basicなどのスクリプト的なインタ
プリタ言語の実行によって、データベース11のデータ
やメソッドなどの振る舞いを確認することができる(ス
テップS806)。
Next, the developer sets the PERC on the server 1 side.
Using the IO environment or automation server 1
By operating from the client 2 side via the client 4, the entity is stored in the database 11 (step S805). In any case, the instance stored in the database 11 is
By executing a script-like interpreted language such as Visual Basic, it is possible to confirm the behavior of the data and the method of the database 11 (step S806).

【0178】次に、開発者は、PERCIOのAPIを
直接用いて、上記のプログラム自動生成装置3が生成す
るオートメーションサーバ14と異なる独自のオートメ
ーションサーバを生成して、両方のオートメーションサ
ーバを併用するデータベースアプリケーションを構築す
る。
Next, the developer generates an original automation server different from the automation server 14 generated by the automatic program generation device 3 by directly using the API of PERCIO, and creates a database using both automation servers together. Build the application.

【0179】次に、開発者は、クライアント2をコント
ロールするための、“ActiveX”コントロールを実装す
る(ステップS808)。なお、このシステムはオート
メーション通信の機能を用いた環境として構築されてい
るため、クライアント2の側で動作させる“ActiveX”
コントロールをアプリケーションの部品として用いるこ
とができる。また、アプリケーションに有用な既存の
“ActiveX”コントロールが存在すれば、その再利用も
可能である。
Next, the developer implements an “ActiveX” control for controlling the client 2 (step S808). Since this system is built as an environment using the automation communication function, the “ActiveX” operating on the client 2 side
Controls can be used as components of applications. You can also reuse existing ActiveX controls, if any, that are useful to your application.

【0180】次に、上記のステップで開発した、プログ
ラム自動生成装置3を用いて作成したオートメーション
サーバ14、PERCIOのAPIを用いて生成したオ
ートメーションサーバ、及び“ActiveX”コントロール
をクライアントプログラム21の中で統合させる。ここ
では、さらにVisual Basicなどのスクリプ
ト的なインタプリタ言語を用い、アプリケーションのテ
スト実行、GUIのプロトタイプの作成などを行う(ス
テップS809)。
Next, in the client program 21, the automation server 14 created by using the program automatic creation device 3, the automation server created by using the API of PERCIO, and the “ActiveX” control, which were developed in the above steps, are included in the client program 21. Integrate. Here, a test execution of an application, creation of a GUI prototype, and the like are further performed using a script-like interpreter language such as Visual Basic (step S809).

【0181】ステップS809までで、この実施例のシ
ステムのためのデータベースアプリケーションは一応完
成するが、オートメーション通信のためのプログラムの
部分は、Visual C++などのコンパイラ言語で
も開発可能なので、開発者は、このようなコンパイラ言
語を用いて、テストやプロトタイプでない最終的なデー
タベースアプリケーションを構築する(ステップS81
0)。
Up to step S809, the database application for the system of this embodiment is completed, but the program part for automation communication can be developed in a compiler language such as Visual C ++. A final database application that is not a test or prototype is constructed using such a compiler language (step S81).
0).

【0182】[0182]

【発明の効果】以上説明したように、本発明によれば、
オブジェクト指向データベースを操作するためのプログ
ラムを容易に作成することができる。また、そのプログ
ラムの保守も容易になる。また、外部操作情報の生成に
よって、クライアントサーバ型のシステム構成をした場
合のクライアント側のプログラムの作成も容易になる。
As described above, according to the present invention,
A program for operating an object-oriented database can be easily created. Also, the maintenance of the program becomes easy. In addition, generation of external operation information also facilitates creation of a client-side program when a client-server system is configured.

【0183】また、本発明は、オートメーション通信の
機能を利用することによって、既存のシステムの利用が
可能となり、プログラムの開発、運用及び保守が容易に
なる。
Further, the present invention makes it possible to use an existing system by utilizing the function of automation communication, thereby facilitating the development, operation and maintenance of a program.

【0184】さらに、本発明は、インターフェース仕様
を統一することによって、データベースに定義されてい
るスキーマを構成するオブジェクトが多相性をサポート
している場合に、このオブジェクトの多相性の機能を十
分に利用することができる。
Further, according to the present invention, when the objects constituting the schema defined in the database support the polymorphism by unifying the interface specifications, the function of the polymorphism of the object is sufficiently used. can do.

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

【図1】本発明の実施の形態にかかるデータベースアプ
リケーションプログラムの開発・実行環境を実現するた
めのシステム構成例を示す図である。
FIG. 1 is a diagram showing an example of a system configuration for realizing a development / execution environment of a database application program according to an embodiment of the present invention.

【図2】図1に示すシステムを構築する手順を示すフロ
ーチャートである。
FIG. 2 is a flowchart showing a procedure for constructing the system shown in FIG. 1;

【図3】図1のプログラム自動生成装置によるプログラ
ムの生成の処理の概要を示すフローチャートである。
FIG. 3 is a flowchart showing an outline of a process of generating a program by the automatic program generation device of FIG. 1;

【図4】プロパティの取得関数の生成手順を示すフロー
チャートである。
FIG. 4 is a flowchart illustrating a procedure for generating a property acquisition function.

【図5】プロパティの設定関数の生成手順を示すフロー
チャートである。
FIG. 5 is a flowchart illustrating a procedure for generating a property setting function.

【図6】オートメーションオブジェクトのメソッドの生
成手順を示すフローチャートである。
FIG. 6 is a flowchart illustrating a procedure for generating a method of an automation object.

【図7】オートメーションオブジェクトのODL記述フ
ァイルの生成手順を示すフローチャートである。
FIG. 7 is a flowchart illustrating a procedure for generating an ODL description file of an automation object.

【図8】図1のクライアントプログラムからデータベー
スへアクセスするための処理の流れを説明する図であ
る。
FIG. 8 is a diagram illustrating a flow of processing for accessing a database from the client program in FIG. 1;

【図9】図1のオートメーションサーバによるメソッド
の呼び出し手順を示す図である。
FIG. 9 is a diagram showing a procedure for calling a method by the automation server of FIG. 1;

【図10】本発明の実施の形態の具体例にかかるクライ
アントサーバ型のデータベース操作システムの開発プロ
セスを示すフローチャートである。
FIG. 10 is a flowchart illustrating a development process of a client-server type database operation system according to a specific example of an embodiment of the present invention.

【図11】本発明の他の実施の形態にかかるデータベー
スアプリケーションプログラムの開発・実行環境を実現
するためのシステム構成例を示す図である。
FIG. 11 is a diagram showing an example of a system configuration for realizing a development / execution environment of a database application program according to another embodiment of the present invention.

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

1 サーバ 2 クライアント 3 プログラム自動生成装置 4 プログラムテンプレートファイル 5 インターネット 6 スタンドアローン型のコンピュータシステム 11 データベース 12 API(Application Programing Interface) 13 サーバプログラム 14 オートメーションサーバ 15 リモートオートメーションマネージャ 21 クライアントプログラム 22 リモートオートメーションプロキシ DESCRIPTION OF SYMBOLS 1 Server 2 Client 3 Program automatic generation apparatus 4 Program template file 5 Internet 6 Stand-alone computer system 11 Database 12 API (Application Programming Interface) 13 Server program 14 Automation server 15 Remote automation manager 21 Client program 22 Remote automation proxy

Claims (9)

Translated fromJapanese
【特許請求の範囲】[Claims]【請求項1】オブジェクト指向データベースに定義され
ているスキーマを構成する各クラスに関する情報を取得
する取得手段と、 前記スキーマを構成する各クラスに含まれるオブジェク
トの操作に用いられるプログラムを生成するための第1
のテンプレートを記憶する第1のテンプレート記憶手段
と、 前記第1のテンプレート記憶手段から前記第1のテンプ
レートを読み出し、該読み出した第1のテンプレートに
前記取得手段が取得したクラスに関する情報のうちの対
応するものの少なくとも一部を挿入することによって、
前記スキーマを構成するクラス毎に、クラスに含まれる
オブジェクトを操作するための第1のプログラムを生成
するプログラム生成手段と、 前記プログラム生成手段が生成する前記スキーマを構成
するクラス毎のプログラムが外部に公開すべきインタフ
ェースを定義するためのインタフェース定義の生成に用
いられる第2のテンプレートを記憶する第2のテンプレ
ート記憶手段と、 前記第2のテンプレート記憶手段から第2のテンプレー
トを読み出し、該読み出した第2のテンプレートに前記
取得手段が取得したクラスに関する情報のうちの対応す
るものの少なくとも一部を挿入することによって、前記
スキーマを構成するクラス毎に、対応する前記プログラ
ムのインタフェース定義を生成するインタフェース定義
生成手段と、を備えることを特徴とするオブジェクト指
向データベース操作プログラム生成システム。
An acquisition unit for acquiring information on each class constituting a schema defined in an object-oriented database; and a program for producing a program used for operating an object included in each class constituting the schema. First
A first template storage unit that stores the template of the first template storage unit; and a readout of the first template from the first template storage unit. By inserting at least part of what
A program generating unit for generating a first program for operating an object included in the class for each class configuring the schema; and a program for each class configuring the schema generated by the program generating unit is externally provided. A second template storage unit for storing a second template used for generating an interface definition for defining an interface to be disclosed, and a second template read from the second template storage unit, Interface definition generation for generating, for each class constituting the schema, a corresponding interface definition of the program by inserting at least a part of the corresponding information of the classes acquired by the acquiring means into the template of the second. Means. Object oriented database operation program generating system according to claim.
【請求項2】前記プログラム生成手段が生成した前記第
1のプログラムと前記インタフェース定義生成手段が生
成した前記インタフェース定義とをリンクすることによ
って、実行可能なモジュールを作り上げるリンク手段
と、をさらに備えることを特徴とする請求項1に記載の
オブジェクト指向データベース操作プログラム生成シス
テム。
2. The apparatus further comprises: link means for linking the first program generated by the program generation means with the interface definition generated by the interface definition generation means to create an executable module. 2. The object-oriented database operation program generation system according to claim 1, wherein:
【請求項3】前記スキーマを構成する各クラスに含まれ
るオブジェクトを外部から操作するための外部操作情報
を生成するための第3のテンプレートを記憶する第3の
テンプレート記憶手段と、 前記第3のテンプレート記憶手段から 第3のテンプレ
ートを読み出し、該読み出した第3のテンプレートに、
前記取得手段が取得したクラスに関する情報のうちの対
応するものの少なくとも一部を挿入することによって、
前記スキーマを構成するクラス毎に、対応する前記外部
操作情報を生成する外部操作情報生成手段と、をさらに
備えることを特徴とする請求項1または2に記載のオブ
ジェクト指向データベース操作プログラム生成システ
ム。
3. A third template storage means for storing a third template for generating external operation information for externally operating an object included in each class constituting the schema, and A third template is read from the template storage means, and the read third template is
By inserting at least a part of the corresponding one of the information on the classes obtained by the obtaining unit,
3. The object-oriented database operation program generation system according to claim 1, further comprising: external operation information generation means for generating the corresponding external operation information for each class configuring the schema.
【請求項4】設定された情報によってインタフェースを
介して外部から他のプログラムを操作するための第2の
プログラムを実行させるプログラム実行手段と、 前記外部操作情報生成手段が生成した外部操作情報を前
記第2のプログラムに設定することによって、前記第2
のプログラムが前記インタフェース定義手段によって定
義されたインタフェース定義に対応するインタフェース
を介して前記プログラム生成手段によって生成された前
記第1のプログラムを操作することが可能となるように
設定する設定手段と、を備えることを特徴とする請求項
3に記載のオブジェクト指向データベース操作プログラ
ム生成システム。
4. A program executing means for executing a second program for operating another program from the outside via an interface according to the set information, and the external operation information generated by the external operation information generating means is used for storing the external operation information. By setting in the second program, the second program
Setting means for setting the program so that it can operate the first program generated by the program generation means via an interface corresponding to the interface definition defined by the interface definition means. The system for generating an object-oriented database operation program according to claim 3, further comprising:
【請求項5】前記プログラム生成手段は、 前記スキーマを構成する各クラス毎に、プロパティの取
得関数を生成する手段と、プロパティの設定関数を生成
する手段と、メソッドを生成する手段とを備えることを
特徴とする請求項1乃至4のいずれか1項に記載のオブ
ジェクト指向データベース操作プログラム生成システ
ム。
5. The program generating means includes: means for generating a function for acquiring a property, means for generating a function for setting a property, and means for generating a method for each class constituting the schema. The object-oriented database operation program generation system according to any one of claims 1 to 4, wherein:
【請求項6】前記インタフェース定義によって定義され
るインタフェースは、オートメーション通信を行うため
のインタフェースであり、 前記外部操作情報は、オートメーション通信の機能を利
用して前記プログラム生成手段が生成した前記第1のプ
ログラムを操作するための情報であることを特徴とする
請求項1乃至5のいずれか1項に記載のオブジェクト指
向データベース操作プログラム生成システム。
6. The interface defined by the interface definition is an interface for performing automation communication, and the external operation information is the first operation program generated by the program generation unit using an automation communication function. The object-oriented database operation program generation system according to any one of claims 1 to 5, wherein the information is information for operating a program.
【請求項7】前記スキーマを構成するクラスに含まれる
オブジェクトは、それぞれ外部から呼び出される場合の
インタフェースとなる引数の個数が異なるメソッドを複
数定義しており、 前記インタフェース定義は、前記オブジェクトのメソッ
ドが有する引数の最大個数に対応する引数と、前記オブ
ジェクトのメソッドが有する引数の最小個数に対応する
引数の省略指定とによって定義されることを特徴とする
請求項1乃至6のいずれか1項に記載のオブジェクト指
向データベース操作プログラム生成システム。
7. An object included in a class constituting the schema defines a plurality of methods each having a different number of arguments serving as an interface when called from the outside. The method according to any one of claims 1 to 6, wherein the parameter is defined by an argument corresponding to a maximum number of arguments included and an abbreviated designation of an argument corresponding to a minimum number of arguments included in the method of the object. An object-oriented database operation program generation system.
【請求項8】オブジェクト指向データベースに定義され
ているスキーマを構成する各クラスに関する情報を取得
する取得ステップと、 予め用意された第1をテンプレートを読み出し、該読み
出した第1のテンプレートに前記取得手段が取得したク
ラスに関する情報のうちの対応するものの少なくとも一
部を挿入することによって、前記スキーマを構成するク
ラス毎に、クラスに含まれるオブジェクトを操作するた
めのプログラムを生成するプログラム生成ステップと、 予め用意された第2のテンプレートを読み出し、該読み
出した第2のテンプレートに前記取得手段が取得したク
ラスに関する情報のうちの対応するものの少なくとも一
部を挿入することによって、前記スキーマを構成するク
ラス毎に、対応する前記プログラムのインタフェース定
義を生成するインタフェース定義生成ステップと、 インタフェース定義生成ステップと、を含むことを特徴
とするオブジェクト指向データベース操作プログラム生
成方法。
8. An obtaining step of obtaining information on each class constituting a schema defined in an object-oriented database, reading a first prepared template, and obtaining the obtained first template with the obtaining means. A program generation step of generating a program for operating an object included in a class for each class constituting the schema by inserting at least a part of a corresponding one of the information on the classes obtained by By reading out the prepared second template and inserting at least a part of the corresponding one of the information on the classes acquired by the acquiring means into the read-out second template, for each class constituting the schema , The interface of the corresponding program And interface definition generating step of generating a scan definition, an object-oriented database operation program generating method characterized in that it comprises a an interface definition generating step.
【請求項9】予め用意された第3のテンプレートを読み
出し、該読み出した第3のテンプレートに、前記取得手
段が取得したクラスに関する情報のうちの対応するもの
の少なくとも一部を挿入することによって、前記スキー
マを構成するクラス毎に、対応する前記外部操作情報を
生成する外部操作情報生成ステップをさらに含むことを
特徴とする請求項8に記載のオブジェクト指向データベ
ース操作プログラム生成方法。
9. The method according to claim 9, wherein a third template prepared in advance is read, and at least a part of a corresponding one of the information on the classes acquired by the acquiring means is inserted into the third template read. 9. The method according to claim 8, further comprising an external operation information generating step of generating the corresponding external operation information for each class constituting a schema.
JP10024459A1998-02-051998-02-05System and method for generating object-oriented database operation programPendingJPH11224184A (en)

Priority Applications (1)

Application NumberPriority DateFiling DateTitle
JP10024459AJPH11224184A (en)1998-02-051998-02-05System and method for generating object-oriented database operation program

Applications Claiming Priority (1)

Application NumberPriority DateFiling DateTitle
JP10024459AJPH11224184A (en)1998-02-051998-02-05System and method for generating object-oriented database operation program

Publications (1)

Publication NumberPublication Date
JPH11224184Atrue JPH11224184A (en)1999-08-17

Family

ID=12138763

Family Applications (1)

Application NumberTitlePriority DateFiling Date
JP10024459APendingJPH11224184A (en)1998-02-051998-02-05System and method for generating object-oriented database operation program

Country Status (1)

CountryLink
JP (1)JPH11224184A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US6996801B2 (en)2000-07-142006-02-07Nec CorporationSystem and method for automatically generating program
JP2017167958A (en)*2016-03-172017-09-21沖電気工業株式会社Database client, database client program, database client control method, and database system
US9841754B2 (en)2014-04-252017-12-12Mitsubishi Electric CorporationInformation-linkage supporting apparatus and information-linkage supporting program
JP2022183191A (en)*2013-03-152022-12-08アドバンスド エレメンタル テクノロジーズ,インコーポレイティド Method and system for intentional computing
US12282557B2 (en)2013-03-152025-04-22Advanced Elemental Technologies, Inc.Methods and systems for secure and reliable identity-based computing

Cited By (5)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US6996801B2 (en)2000-07-142006-02-07Nec CorporationSystem and method for automatically generating program
JP2022183191A (en)*2013-03-152022-12-08アドバンスド エレメンタル テクノロジーズ,インコーポレイティド Method and system for intentional computing
US12282557B2 (en)2013-03-152025-04-22Advanced Elemental Technologies, Inc.Methods and systems for secure and reliable identity-based computing
US9841754B2 (en)2014-04-252017-12-12Mitsubishi Electric CorporationInformation-linkage supporting apparatus and information-linkage supporting program
JP2017167958A (en)*2016-03-172017-09-21沖電気工業株式会社Database client, database client program, database client control method, and database system

Similar Documents

PublicationPublication DateTitle
US5848273A (en)Method for generating OLE automation and IDL interfaces from metadata information
US5860004A (en)Code generator for applications in distributed object systems
US5758351A (en)System and method for the creation and use of surrogate information system objects
EP0827077B1 (en)Object-oriented system, method and computer program for a client-server failure reporting process
EP0827075A2 (en)Object-oriented system, method and article of manufacture for a client-server state machine framework
EP0822488A2 (en)Object-oriented system, method and article of manufacture for a client-server application enabler system
EP0836139A2 (en)Object-oriented system, method and article of manufacture for a client-server graphical user interface framework in an interprise computing framework system
EP0822487A2 (en)Object-oriented system, method and article of manufacture for a client-server session WEB access in an interprise computing framework system
EP0827074A2 (en)A system, method and article of manufacture for a distributed computer system framework
EP0822491A2 (en)Object-oriented system, method and article of manufacture for migrating a client-server application
EP0834804A2 (en)Object-oriented system, method and article of manifacture for a client-server state machine in an interprise computing framework system
EP0844558A2 (en)Object-oriented system, method and article of manufature for a client-server event driver message framework in an interprise computing framework system
EP0834805A2 (en)Object-oriented system, method and article of manufacture for a client-server session manager in an architecture computing framework system
EP0822490A2 (en)Object-oriented system, method and article of manufacture for a client-server communication framework
EP0822489A2 (en)Object-oriented system, method and article of manufacture for a client-server system with a client program cache
US7055134B2 (en)Service provider integration framework in object oriented programming environment
WO2004086222A2 (en)Development of software systems
EP0827073A2 (en)Object-oriented system, method and article of manufacture for a client-server-centric enterprise computing framework system
WO2000023877A2 (en)System and method for dynamic generation of remote proxies
JP2000353078A (en)System and method for improving management possibility and availability for java (registered trademark) and storage medium
EP0827076A2 (en)Object-oriented system, method and article of manufacture for a presentation engine in an interprise computing framework system
US20030172186A1 (en)Method, system and program product for transcoding content
Oberleitner et al.The Vienna component framework enabling composition across component models
JPH11224184A (en)System and method for generating object-oriented database operation program
US20030115297A1 (en)Object oriented framework mechanism and method for virtual dynamic cloning of computer systems in a network

[8]ページ先頭

©2009-2025 Movatter.jp