JP2000207186A - リモ―トオブジェクト通信プログラム生成システム、リモ―トオブジェクト通信システム、およびリモ―トオブジェクト通信プログラム生成プログラムを記録したコンピュ―タ読み取り可能な記録媒体 - Google Patents
リモ―トオブジェクト通信プログラム生成システム、リモ―トオブジェクト通信システム、およびリモ―トオブジェクト通信プログラム生成プログラムを記録したコンピュ―タ読み取り可能な記録媒体Info
- Publication number
- JP2000207186A JP2000207186A JP11010804A JP1080499A JP2000207186A JP 2000207186 A JP2000207186 A JP 2000207186A JP 11010804 A JP11010804 A JP 11010804A JP 1080499 A JP1080499 A JP 1080499A JP 2000207186 A JP2000207186 A JP 2000207186A
- Authority
- JP
- Japan
- Prior art keywords
- remote
- file
- object communication
- communication
- macro
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Stored Programmes (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】
【課題】既存のプログラムを基にしてリモートプロセス
間でオブジェクト間通信を行うリモートオブジェクト通
信プログラムを容易に生成することができるリモートオ
ブジェクト通信プログラム生成システム等を提供する。 【解決手段】 リモートオブジェクト通信プログラム生
成システムは、マクロ呼び出し生成ツール1を備え、マ
クロ生成ルール記憶部5に記憶されたマクロ生成ルール
に従って、リモートオブジェクトとして定義すべきクラ
スを含むオブジェクト定義ファイル11およびオブジェ
クト実装ファイル21に対してマクロ呼び出し定義を含
む所定のコード群を追加し、またリモートオブジェクト
通信ライブラリ群7に含まれる基底オブジェト実装ファ
イル31に対してマクロ呼び出し定義を含む所定のコー
ド群を追加する。そして、コンパイラ6により、所定の
コード群が追加されたファイル12,22,32と、リ
モートオブジェクト通信ライブラリ群7とを、ファイル
12,22,32に追加されたマクロ呼び出し定義をマ
クロ群8を参照して展開しながらコンパイルおよびリン
クする。
間でオブジェクト間通信を行うリモートオブジェクト通
信プログラムを容易に生成することができるリモートオ
ブジェクト通信プログラム生成システム等を提供する。 【解決手段】 リモートオブジェクト通信プログラム生
成システムは、マクロ呼び出し生成ツール1を備え、マ
クロ生成ルール記憶部5に記憶されたマクロ生成ルール
に従って、リモートオブジェクトとして定義すべきクラ
スを含むオブジェクト定義ファイル11およびオブジェ
クト実装ファイル21に対してマクロ呼び出し定義を含
む所定のコード群を追加し、またリモートオブジェクト
通信ライブラリ群7に含まれる基底オブジェト実装ファ
イル31に対してマクロ呼び出し定義を含む所定のコー
ド群を追加する。そして、コンパイラ6により、所定の
コード群が追加されたファイル12,22,32と、リ
モートオブジェクト通信ライブラリ群7とを、ファイル
12,22,32に追加されたマクロ呼び出し定義をマ
クロ群8を参照して展開しながらコンパイルおよびリン
クする。
Description
【0001】
【発明の属する技術分野】本発明はクライアント/サー
バシステム等の分散型システムで用いられる分散オブジ
ェクト指向技術に係わり、とりわけオブジェクト指向言
語で記述された既存のプログラムを基にしてリモートプ
ロセス間でオブジェクト間通信を行うリモートオブジェ
クト通信プログラムを生成するリモートオブジェクト通
信プログラム生成システム、リモートオブジェクト通信
システム、およびリモートオブジェクト通信プログラム
生成プログラムを記録したコンピュータ読み取り可能な
記録媒体に関する。
バシステム等の分散型システムで用いられる分散オブジ
ェクト指向技術に係わり、とりわけオブジェクト指向言
語で記述された既存のプログラムを基にしてリモートプ
ロセス間でオブジェクト間通信を行うリモートオブジェ
クト通信プログラムを生成するリモートオブジェクト通
信プログラム生成システム、リモートオブジェクト通信
システム、およびリモートオブジェクト通信プログラム
生成プログラムを記録したコンピュータ読み取り可能な
記録媒体に関する。
【0002】
【従来の技術】近年、企業等で構築される各種の情報処
理システムにおいては、ソフトウェア仕様やシステム要
件等が非常に多様化および流動化するとともに、より堅
牢なシステムを構築することが強く望まれるようになっ
てきている。このため、システムのソフトウェア構造
は、従来の機能中心の構造化手法によるアーキテクチャ
から、データ中心のオブジェクト指向手法によるアーキ
テクチャへと変化してきている。ここで、オブジェクト
指向手法とは、データとそれに関する処理を行うメソッ
ド(メンバ関数)とを一体化して1つのオブジェクトと
して定義し、このようにして定義された複数のオブジェ
クトによってシステムのアーキテクチャを定義しようと
するものである。なお、このようなシステムにおける機
能は、オブジェクトに定義されているメソッドを呼び出
すことによって実現される。
理システムにおいては、ソフトウェア仕様やシステム要
件等が非常に多様化および流動化するとともに、より堅
牢なシステムを構築することが強く望まれるようになっ
てきている。このため、システムのソフトウェア構造
は、従来の機能中心の構造化手法によるアーキテクチャ
から、データ中心のオブジェクト指向手法によるアーキ
テクチャへと変化してきている。ここで、オブジェクト
指向手法とは、データとそれに関する処理を行うメソッ
ド(メンバ関数)とを一体化して1つのオブジェクトと
して定義し、このようにして定義された複数のオブジェ
クトによってシステムのアーキテクチャを定義しようと
するものである。なお、このようなシステムにおける機
能は、オブジェクトに定義されているメソッドを呼び出
すことによって実現される。
【0003】ところで、このようなオブジェクト指向手
法では、分析から設計/実装までのトレーサビリティが
良いので、構築されたソフトウェア構造は理解しやす
く、また再利用性や柔軟性に優れた堅牢なシステムを構
築することができる。このため、現在では、新規システ
ムの大半はオブジェクト指向手法により開発されてお
り、また既存システムにおいても徐々にオブジェクト指
向手法を取り入れたシステムへの移行が進んでいる。
法では、分析から設計/実装までのトレーサビリティが
良いので、構築されたソフトウェア構造は理解しやす
く、また再利用性や柔軟性に優れた堅牢なシステムを構
築することができる。このため、現在では、新規システ
ムの大半はオブジェクト指向手法により開発されてお
り、また既存システムにおいても徐々にオブジェクト指
向手法を取り入れたシステムへの移行が進んでいる。
【0004】また、コンピュータ業界の急速な発展に伴
って、企業等で構築される情報処理システムの体系は刻
々と変わりつつある。十数年前までは、図18に示すよ
うに、各端末61からの処理要求を基幹コンピュータ6
2が一挙に引き受ける集中型のメインフレーム型システ
ムが主であった。しかしながら、コンピュータの普及や
ネットワーク網の発達等によって、クライアントとなる
端末数や、遠隔クライアントからのリクエスト数が増加
の一途を辿った。その結果、基幹コンピュータのみでは
処理負荷に耐えられなくなり、また加えて高性能なワー
クステーションやパーソナルコンピュータの登場によ
り、数年前からは、図19に示すように、ワークステー
ション等のサーバ72をいくつかに分散させてタスクを
並行に処理させるような分散型クライアント/サーバシ
ステムが構築されるようになってきた。なお、このよう
な分散型クライアント/サーバシステムにおいては、パ
ーソナルコンピュータ等のクライアント71側でも、サ
ーバ71に依存しない処理を実行させることにより、サ
ーバ71の処理負荷を軽減させることができる。しかし
ながら、このような分散型クライアント/サーバシステ
ムにおいては、クライアント側でも処理を実行させるこ
とにより、増加し続けるクライアントに対して、サーバ
の変更時のクライアントのバージョンアップや、クライ
アント側での新規ソフトウェアのインストールおよび版
管理等が必要となり、クライアント側の管理コストが増
加する傾向となってきている。これに対し、ここ数年で
は、WWW(World Wide Web)によるインターネットの
普及や、これと相まって増加し続けるクライアントに対
して、クライアント側の管理コストを削減するため、図
20に示すように、WWWによって、パーソナルコンピ
ュータ等のクライアント71のソフトウェアを必要なと
きにサーバ72からダウンロードして動作させるという
Thinクライアント型のシステムへと移行を遂げつつ
ある。
って、企業等で構築される情報処理システムの体系は刻
々と変わりつつある。十数年前までは、図18に示すよ
うに、各端末61からの処理要求を基幹コンピュータ6
2が一挙に引き受ける集中型のメインフレーム型システ
ムが主であった。しかしながら、コンピュータの普及や
ネットワーク網の発達等によって、クライアントとなる
端末数や、遠隔クライアントからのリクエスト数が増加
の一途を辿った。その結果、基幹コンピュータのみでは
処理負荷に耐えられなくなり、また加えて高性能なワー
クステーションやパーソナルコンピュータの登場によ
り、数年前からは、図19に示すように、ワークステー
ション等のサーバ72をいくつかに分散させてタスクを
並行に処理させるような分散型クライアント/サーバシ
ステムが構築されるようになってきた。なお、このよう
な分散型クライアント/サーバシステムにおいては、パ
ーソナルコンピュータ等のクライアント71側でも、サ
ーバ71に依存しない処理を実行させることにより、サ
ーバ71の処理負荷を軽減させることができる。しかし
ながら、このような分散型クライアント/サーバシステ
ムにおいては、クライアント側でも処理を実行させるこ
とにより、増加し続けるクライアントに対して、サーバ
の変更時のクライアントのバージョンアップや、クライ
アント側での新規ソフトウェアのインストールおよび版
管理等が必要となり、クライアント側の管理コストが増
加する傾向となってきている。これに対し、ここ数年で
は、WWW(World Wide Web)によるインターネットの
普及や、これと相まって増加し続けるクライアントに対
して、クライアント側の管理コストを削減するため、図
20に示すように、WWWによって、パーソナルコンピ
ュータ等のクライアント71のソフトウェアを必要なと
きにサーバ72からダウンロードして動作させるという
Thinクライアント型のシステムへと移行を遂げつつ
ある。
【0005】このように、コンピュータ業界において
は、情報処理システムの体系が刻々と変化しており、あ
る時点で、サーバ集中型のシステムを構築しても、その
後サーバをマルチプロセス化したり、さらにマルチサー
バマシン環境に分散させたり、またクライアントとサー
バとにタスクを分割する必要が生じてくる。
は、情報処理システムの体系が刻々と変化しており、あ
る時点で、サーバ集中型のシステムを構築しても、その
後サーバをマルチプロセス化したり、さらにマルチサー
バマシン環境に分散させたり、またクライアントとサー
バとにタスクを分割する必要が生じてくる。
【0006】このような背景の下で、現在のソフトウェ
ア開発においては、オブジェクト指向への対応と、柔軟
なオープンネットワークへの対応という2つの視点が非
常に重要なものとなってきており、このような2つの視
点を取り入れた概念として「通信のオブジェクト指向
化」が提案されるようになってきている。ここで、通信
のオブジェクト指向化とは、リモートプロセス間通信に
オブジェクト指向手法の特徴を取り入れて、メソッド呼
び出し等の通常のオブジェクト間通信をリモートプロセ
ス間で実現するというものである。このような通信のオ
ブジェクト指向化に関しては、標準化団体であるOMG
(Object Management Group、登録商標)が標準仕様と
してCORBA(Common Object Request Broker Archi
tecture、登録商標)を決めており、各製造メーカはこ
のCORBA準拠の製品を提供している。なお、COR
BAでは、主として次のような仕様、すなわち(1)オ
ブジェクトのインタフェースを共通に記述するためのイ
ンタフェース定義言語(IDL:Interface Definition
Language)、(2)C言語等のプログラミング言語で
アプリケーションを記述するための言語マッピング、
(3)オブジェクトの生成やリクエストの配信を始めと
する各種のサービスを提供するためのコンポーネントの
機能とインタフェース、および(4)オブジェクト間通
信のためのプロトコルが決められている。
ア開発においては、オブジェクト指向への対応と、柔軟
なオープンネットワークへの対応という2つの視点が非
常に重要なものとなってきており、このような2つの視
点を取り入れた概念として「通信のオブジェクト指向
化」が提案されるようになってきている。ここで、通信
のオブジェクト指向化とは、リモートプロセス間通信に
オブジェクト指向手法の特徴を取り入れて、メソッド呼
び出し等の通常のオブジェクト間通信をリモートプロセ
ス間で実現するというものである。このような通信のオ
ブジェクト指向化に関しては、標準化団体であるOMG
(Object Management Group、登録商標)が標準仕様と
してCORBA(Common Object Request Broker Archi
tecture、登録商標)を決めており、各製造メーカはこ
のCORBA準拠の製品を提供している。なお、COR
BAでは、主として次のような仕様、すなわち(1)オ
ブジェクトのインタフェースを共通に記述するためのイ
ンタフェース定義言語(IDL:Interface Definition
Language)、(2)C言語等のプログラミング言語で
アプリケーションを記述するための言語マッピング、
(3)オブジェクトの生成やリクエストの配信を始めと
する各種のサービスを提供するためのコンポーネントの
機能とインタフェース、および(4)オブジェクト間通
信のためのプロトコルが決められている。
【0007】このような標準仕様(CORBA)が一般
化しつつある現状では、リモートプロセス間でオブジェ
クト間通信を実現する場合には通常、いずれかの製造メ
ーカから提供されているCORBA準拠の製品を用いて
実装することとなる。
化しつつある現状では、リモートプロセス間でオブジェ
クト間通信を実現する場合には通常、いずれかの製造メ
ーカから提供されているCORBA準拠の製品を用いて
実装することとなる。
【0008】
【発明が解決しようとする課題】しかしながら、このよ
うな標準仕様(CORBA)は元来、各製造メーカから
提供される製品の互換性を維持するためのものであり、
異なる製品間で通信を行うような場合には有効である
が、そのような互換性の要求は同一システムにおいては
ほとんどない。
うな標準仕様(CORBA)は元来、各製造メーカから
提供される製品の互換性を維持するためのものであり、
異なる製品間で通信を行うような場合には有効である
が、そのような互換性の要求は同一システムにおいては
ほとんどない。
【0009】また、このような標準仕様(CORBA)
が提供するような各種のサービスは、リモートプロセス
間で単純にオブジェクト間通信を実現したいような場合
にはあまり必要がない。
が提供するような各種のサービスは、リモートプロセス
間で単純にオブジェクト間通信を実現したいような場合
にはあまり必要がない。
【0010】さらに、このような標準仕様(CORB
A)では、プログラミング言語およびOS(Operating
System)にとらわれないオブジェクト間通信を実現する
ために、通信対象となるオブジェクトのインタフェース
をIDL定義言語で記述し、かつIDLコンパイラによ
りスタブやスケルトンといった通信代理オブジェクトを
生成するという手順を踏まなければならない。このた
め、通信対象となるオブジェクトに関しては、あらかじ
めCORBAでの実装を意識した設計を行う必要があ
る。
A)では、プログラミング言語およびOS(Operating
System)にとらわれないオブジェクト間通信を実現する
ために、通信対象となるオブジェクトのインタフェース
をIDL定義言語で記述し、かつIDLコンパイラによ
りスタブやスケルトンといった通信代理オブジェクトを
生成するという手順を踏まなければならない。このた
め、通信対象となるオブジェクトに関しては、あらかじ
めCORBAでの実装を意識した設計を行う必要があ
る。
【0011】本発明はこのような点を考慮してなされた
ものであり、他の製造メーカの製品との連携を考慮する
必要がない場合や、リモートプロセス間で単純にオブジ
ェクト間通信を実現したいような場合において、IDL
定義言語での記述や、IDLコンパイラによる通信代理
オブジェクトの生成、CORBAでの実装を意識した設
計といった煩雑な手間をかけることなく、オブジェクト
指向言語で記述された既存のプログラムを基にしてリモ
ートプロセス間でオブジェクト間通信を行うリモートオ
ブジェクト通信プログラムを容易に生成することができ
るリモートオブジェクト通信プログラム生成システム、
リモートオブジェクト通信システム、およびリモートオ
ブジェクト通信プログラム生成プログラムを記録したコ
ンピュータ読み取り可能な記録媒体を提供することを目
的とする。
ものであり、他の製造メーカの製品との連携を考慮する
必要がない場合や、リモートプロセス間で単純にオブジ
ェクト間通信を実現したいような場合において、IDL
定義言語での記述や、IDLコンパイラによる通信代理
オブジェクトの生成、CORBAでの実装を意識した設
計といった煩雑な手間をかけることなく、オブジェクト
指向言語で記述された既存のプログラムを基にしてリモ
ートプロセス間でオブジェクト間通信を行うリモートオ
ブジェクト通信プログラムを容易に生成することができ
るリモートオブジェクト通信プログラム生成システム、
リモートオブジェクト通信システム、およびリモートオ
ブジェクト通信プログラム生成プログラムを記録したコ
ンピュータ読み取り可能な記録媒体を提供することを目
的とする。
【0012】
【課題を解決するための手段】本発明の第1の特徴は、
同一プロセス内でオブジェクト間通信を行うローカルオ
ブジェクト通信プログラムを基にして、リモートプロセ
ス間でオブジェクト間通信を行うリモートオブジェクト
通信プログラムを生成するリモートオブジェクト通信プ
ログラム生成システムにおいて、前記ローカルオブジェ
クト通信プログラムに含まれるオブジェクトのうちリモ
ートプロセス間でのオブジェクト間通信が必要とされる
オブジェクトのオブジェクト定義ファイルに対して所定
のコード群を追加する第1コード追加手段と、前記ロー
カルオブジェクト通信プログラムに含まれるオブジェク
トのうちリモートプロセス間でのオブジェクト間通信が
必要とされるオブジェクトのオブジェクト実装ファイル
に対して所定のコード群を追加する第2コード追加手段
と、前記第1コード追加手段および前記第2コード追加
手段により所定のコード群が追加された前記オブジェク
ト定義ファイルおよび前記オブジェクト実装ファイル
と、あらかじめ準備されたリモートオブジェクト通信ラ
イブラリ群とをコンパイルするコンパイル手段とを備え
たことを特徴とするリモートオブジェクト通信プログラ
ム生成システムである。
同一プロセス内でオブジェクト間通信を行うローカルオ
ブジェクト通信プログラムを基にして、リモートプロセ
ス間でオブジェクト間通信を行うリモートオブジェクト
通信プログラムを生成するリモートオブジェクト通信プ
ログラム生成システムにおいて、前記ローカルオブジェ
クト通信プログラムに含まれるオブジェクトのうちリモ
ートプロセス間でのオブジェクト間通信が必要とされる
オブジェクトのオブジェクト定義ファイルに対して所定
のコード群を追加する第1コード追加手段と、前記ロー
カルオブジェクト通信プログラムに含まれるオブジェク
トのうちリモートプロセス間でのオブジェクト間通信が
必要とされるオブジェクトのオブジェクト実装ファイル
に対して所定のコード群を追加する第2コード追加手段
と、前記第1コード追加手段および前記第2コード追加
手段により所定のコード群が追加された前記オブジェク
ト定義ファイルおよび前記オブジェクト実装ファイル
と、あらかじめ準備されたリモートオブジェクト通信ラ
イブラリ群とをコンパイルするコンパイル手段とを備え
たことを特徴とするリモートオブジェクト通信プログラ
ム生成システムである。
【0013】本発明の第2の特徴は、リモートプロセス
間でオブジェクト間通信を行うリモートオブジェクト通
信システムにおいて、クライアントオブジェクトを含む
クライアントプロセス手段と、前記クライアントオブジ
ェクトに対応するサーバオブジェクトを含むサーバプロ
セス手段と、前記クライアントプロセス手段と前記サー
バプロセス手段との間でバイナリデータの送受信を行う
ためのストリームソケットとを備え、前記クライアント
プロセス手段および前記サーバプロセス手段はそれぞ
れ、リモートプロセス間でのオブジェクト間通信が必要
とされるオブジェクトの識別情報を保持するソケットア
クセスオブジェクトを有し、前記クライアントオブジェ
クトまたは前記サーバオブジェクトにおけるメソッド呼
び出しをリモートプロセス間でのオブジェクト間通信と
して実現することを特徴とするリモートオブジェクト通
信システムである。
間でオブジェクト間通信を行うリモートオブジェクト通
信システムにおいて、クライアントオブジェクトを含む
クライアントプロセス手段と、前記クライアントオブジ
ェクトに対応するサーバオブジェクトを含むサーバプロ
セス手段と、前記クライアントプロセス手段と前記サー
バプロセス手段との間でバイナリデータの送受信を行う
ためのストリームソケットとを備え、前記クライアント
プロセス手段および前記サーバプロセス手段はそれぞ
れ、リモートプロセス間でのオブジェクト間通信が必要
とされるオブジェクトの識別情報を保持するソケットア
クセスオブジェクトを有し、前記クライアントオブジェ
クトまたは前記サーバオブジェクトにおけるメソッド呼
び出しをリモートプロセス間でのオブジェクト間通信と
して実現することを特徴とするリモートオブジェクト通
信システムである。
【0014】本発明の第3の特徴は、同一プロセス内で
オブジェクト間通信を行うローカルオブジェクト通信プ
ログラムを基にして、リモートプロセス間でオブジェク
ト間通信を行うリモートオブジェクト通信プログラムを
生成するリモートオブジェクト通信プログラム生成プロ
グラムを記録したコンピュータ読み取り可能な記録媒体
において、ローカルオブジェクト通信プログラムに含ま
れるオブジェクトのうちリモートプロセス間でのオブジ
ェクト間通信が必要とされるオブジェクトのオブジェク
ト定義ファイルおよびオブジェクト実装ファイルに対し
て所定のコード群を追加するステップと、所定のコード
群が追加された前記オブジェクト定義ファイルおよび前
記オブジェクト実装ファイルと、あらかじめ準備された
リモートオブジェクト通信ライブラリ群とをコンパイル
するステップとをコンピュータに実行させることを特徴
とするリモートオブジェクト通信プログラム生成プログ
ラムを記録したコンピュータ読み取り可能な記録媒体で
ある。
オブジェクト間通信を行うローカルオブジェクト通信プ
ログラムを基にして、リモートプロセス間でオブジェク
ト間通信を行うリモートオブジェクト通信プログラムを
生成するリモートオブジェクト通信プログラム生成プロ
グラムを記録したコンピュータ読み取り可能な記録媒体
において、ローカルオブジェクト通信プログラムに含ま
れるオブジェクトのうちリモートプロセス間でのオブジ
ェクト間通信が必要とされるオブジェクトのオブジェク
ト定義ファイルおよびオブジェクト実装ファイルに対し
て所定のコード群を追加するステップと、所定のコード
群が追加された前記オブジェクト定義ファイルおよび前
記オブジェクト実装ファイルと、あらかじめ準備された
リモートオブジェクト通信ライブラリ群とをコンパイル
するステップとをコンピュータに実行させることを特徴
とするリモートオブジェクト通信プログラム生成プログ
ラムを記録したコンピュータ読み取り可能な記録媒体で
ある。
【0015】本発明の第1乃至第3の特徴によれば、通
常のオブジェクト指向言語で記述された既存のプログラ
ムのうち、リモートオブジェクトとして定義すべきオブ
ジェクトのオブジェクト定義ファイルおよびオブジェク
ト実装ファイルに対して所定のコード群を追加すること
により、メソッド呼び出し等の通常のオブジェクト間通
信をリモートプロセス間で実現することができるので、
オブジェクト定義ファイルおよびオブジェクト実装ファ
イル等の既存のコードを何ら改変することなく、既存の
プログラムを最大限に利用してリモートオブジェクト通
信プログラムを容易に生成することができる。このた
め、IDL定義言語での記述や、IDLコンパイラによ
る通信代理オブジェクトの生成、CORBAでの実装を
意識した設計といった煩雑な手間をかけることなく、オ
ブジェクト指向言語で記述された既存のプログラムを基
にしてリモートプロセス間でオブジェクト間通信を行う
リモートオブジェクト通信プログラムを容易に生成する
ことができる。
常のオブジェクト指向言語で記述された既存のプログラ
ムのうち、リモートオブジェクトとして定義すべきオブ
ジェクトのオブジェクト定義ファイルおよびオブジェク
ト実装ファイルに対して所定のコード群を追加すること
により、メソッド呼び出し等の通常のオブジェクト間通
信をリモートプロセス間で実現することができるので、
オブジェクト定義ファイルおよびオブジェクト実装ファ
イル等の既存のコードを何ら改変することなく、既存の
プログラムを最大限に利用してリモートオブジェクト通
信プログラムを容易に生成することができる。このた
め、IDL定義言語での記述や、IDLコンパイラによ
る通信代理オブジェクトの生成、CORBAでの実装を
意識した設計といった煩雑な手間をかけることなく、オ
ブジェクト指向言語で記述された既存のプログラムを基
にしてリモートプロセス間でオブジェクト間通信を行う
リモートオブジェクト通信プログラムを容易に生成する
ことができる。
【0016】
【発明の実施の形態】以下、図面を参照して本発明の実
施の形態について説明する。図1乃至図13は本発明に
よるリモートオブジェクト通信プログラム生成システ
ム、リモートオブジェクト通信システムおよびリモート
オブジェクト通信プログラム生成プログラムを記録した
コンピュータ読み取り可能な記録媒体の一実施の形態を
説明するための図である。
施の形態について説明する。図1乃至図13は本発明に
よるリモートオブジェクト通信プログラム生成システ
ム、リモートオブジェクト通信システムおよびリモート
オブジェクト通信プログラム生成プログラムを記録した
コンピュータ読み取り可能な記録媒体の一実施の形態を
説明するための図である。
【0017】リモートオブジェクト通信プログラム生成
システム まず、図1乃至図6により、リモートオブジェクト通信
プログラム生成システムについて説明する。
システム まず、図1乃至図6により、リモートオブジェクト通信
プログラム生成システムについて説明する。
【0018】図1はリモートオブジェクト通信プログラ
ム生成システムの全体構成を示す図である。図1に示す
ように、リモートオブジェクト通信プログラム生成シス
テムは、同一プロセス内でオブジェクト間通信を行うロ
ーカルオブジェクト通信プログラム9を基にして、リモ
ートプロセス間でオブジェクト間通信を行うリモートオ
ブジェクト通信プログラム10を生成するものであり、
マクロ呼び出し生成ツール1、マクロ生成ルール記憶部
(マクロ生成ルール記憶手段)5、コンパイラ6、リモ
ートオブジェクト通信ライブラリ群7、およびマクロ群
8を備えている。
ム生成システムの全体構成を示す図である。図1に示す
ように、リモートオブジェクト通信プログラム生成シス
テムは、同一プロセス内でオブジェクト間通信を行うロ
ーカルオブジェクト通信プログラム9を基にして、リモ
ートプロセス間でオブジェクト間通信を行うリモートオ
ブジェクト通信プログラム10を生成するものであり、
マクロ呼び出し生成ツール1、マクロ生成ルール記憶部
(マクロ生成ルール記憶手段)5、コンパイラ6、リモ
ートオブジェクト通信ライブラリ群7、およびマクロ群
8を備えている。
【0019】図1において、ローカルオブジェクト通信
プログラム9は、ユーザによって作成されたソースコー
ドであるオブジェクト定義ファイル11およびオブジェ
クト実装ファイル21を含み、これらのファイル11,
21がマクロ呼び出し生成ツール1に入力として与えら
れる。なお、オブジェクト定義ファイル11およびオブ
ジェクト実装ファイル21はC++等の一般的なオブジ
ェクト指向言語で記述されている。
プログラム9は、ユーザによって作成されたソースコー
ドであるオブジェクト定義ファイル11およびオブジェ
クト実装ファイル21を含み、これらのファイル11,
21がマクロ呼び出し生成ツール1に入力として与えら
れる。なお、オブジェクト定義ファイル11およびオブ
ジェクト実装ファイル21はC++等の一般的なオブジ
ェクト指向言語で記述されている。
【0020】ここで、マクロ呼び出し生成ツール1は、
第1コード追加部(第1コード追加手段)2および第2
コード追加部(第2コード追加手段)3を有し、マクロ
生成ルール記憶部5に記憶されたマクロ生成ルールに従
って、リモートオブジェクト(リモートプロセス間での
オブジェクト間通信が可能なオブジェクト)として定義
すべきクラスを含むオブジェクト定義ファイル11およ
びオブジェクト実装ファイル21に対してマクロ呼び出
し定義を含む所定のコード群を追加し、マクロ呼び出し
追加オブジェクト定義ファイル12およびマクロ呼び出
し追加オブジェクト実装ファイル22をそれぞれ生成す
るようになっている。
第1コード追加部(第1コード追加手段)2および第2
コード追加部(第2コード追加手段)3を有し、マクロ
生成ルール記憶部5に記憶されたマクロ生成ルールに従
って、リモートオブジェクト(リモートプロセス間での
オブジェクト間通信が可能なオブジェクト)として定義
すべきクラスを含むオブジェクト定義ファイル11およ
びオブジェクト実装ファイル21に対してマクロ呼び出
し定義を含む所定のコード群を追加し、マクロ呼び出し
追加オブジェクト定義ファイル12およびマクロ呼び出
し追加オブジェクト実装ファイル22をそれぞれ生成す
るようになっている。
【0021】また、マクロ呼び出し生成ツール1は、第
3コード追加部(第3コード追加手段)4をさらに有
し、マクロ生成ルール記憶部5に記憶されたマクロ生成
ルールに従って、リモートオブジェクト通信ライブラリ
群7に含まれるリモートオブジェクト用の基底オブジェ
ト実装ファイル31に対してマクロ呼び出し定義を含む
所定のコード群を追加し、マクロ呼び出し追加基底オブ
ジェクト実装ファイル32を生成するようになってい
る。
3コード追加部(第3コード追加手段)4をさらに有
し、マクロ生成ルール記憶部5に記憶されたマクロ生成
ルールに従って、リモートオブジェクト通信ライブラリ
群7に含まれるリモートオブジェクト用の基底オブジェ
ト実装ファイル31に対してマクロ呼び出し定義を含む
所定のコード群を追加し、マクロ呼び出し追加基底オブ
ジェクト実装ファイル32を生成するようになってい
る。
【0022】図2はマクロ呼び出し生成ツール1により
オブジェクト定義ファイル11、オブジェクト実装ファ
イル21および基底オブジェクト実装ファイル31に追
加されるコード群の詳細を説明するための図である。
オブジェクト定義ファイル11、オブジェクト実装ファ
イル21および基底オブジェクト実装ファイル31に追
加されるコード群の詳細を説明するための図である。
【0023】図2に示すように、オブジェクト定義ファ
イル11に対しては、リモートオブジェクトとして定義
すべき各クラスに、メソッド呼び出し関数を定義するコ
ードと、メンバ関数テーブル作成関数を定義するコード
とが追加され、また各クラスに含まれる既存のメンバ関
数のそれぞれに、リモートプロセス間でのオブジェクト
間通信を実現するためのサーバオブジェクト呼び出し関
数(SEND関数)を定義するコードが追加される。こ
こで、メソッド呼び出し関数とは、受け取ったデータの
中からメソッド名を取り出して呼び出すべきメンバ関数
を検索し、該当するメンバ関数(メソッド)を呼び出す
関数である。また、メンバ関数テーブル作成関数とは、
メンバ関数の名前を文字列としてテーブルに登録する関
数である。さらに、サーバオブジェクト呼び出し関数
(SEND関数)とは、リモートプロセスに含まれるオ
ブジェクトに対してメソッド呼び出しを行うための関数
であり、具体的には、あらかじめ定められたプロトコル
に従ってリモートプロセスに含まれるオブジェクトに対
してメソッド呼び出しに関するデータ(オブジェクト
名、メソッド名および引数の値等)を送信する関数であ
る。
イル11に対しては、リモートオブジェクトとして定義
すべき各クラスに、メソッド呼び出し関数を定義するコ
ードと、メンバ関数テーブル作成関数を定義するコード
とが追加され、また各クラスに含まれる既存のメンバ関
数のそれぞれに、リモートプロセス間でのオブジェクト
間通信を実現するためのサーバオブジェクト呼び出し関
数(SEND関数)を定義するコードが追加される。こ
こで、メソッド呼び出し関数とは、受け取ったデータの
中からメソッド名を取り出して呼び出すべきメンバ関数
を検索し、該当するメンバ関数(メソッド)を呼び出す
関数である。また、メンバ関数テーブル作成関数とは、
メンバ関数の名前を文字列としてテーブルに登録する関
数である。さらに、サーバオブジェクト呼び出し関数
(SEND関数)とは、リモートプロセスに含まれるオ
ブジェクトに対してメソッド呼び出しを行うための関数
であり、具体的には、あらかじめ定められたプロトコル
に従ってリモートプロセスに含まれるオブジェクトに対
してメソッド呼び出しに関するデータ(オブジェクト
名、メソッド名および引数の値等)を送信する関数であ
る。
【0024】また、図2に示すように、オブジェクト実
装ファイル21に対しては、リモートオブジェクトとし
て定義すべきクラスの各メンバ関数の実装コードに、オ
ブジェクトが動作する位置(クライアントまたはサー
バ)に応じて処理の内容を切り替えるためのコードが追
加される。さらに、基底オブジェクト実装ファイル31
に対しては、あらかじめ定義されているリモートオブジ
ェクト作成関数の実装コードに、リモートオブジェクト
として定義すべきクラスについてそのインスタンスを作
成するためのコードが追加される。
装ファイル21に対しては、リモートオブジェクトとし
て定義すべきクラスの各メンバ関数の実装コードに、オ
ブジェクトが動作する位置(クライアントまたはサー
バ)に応じて処理の内容を切り替えるためのコードが追
加される。さらに、基底オブジェクト実装ファイル31
に対しては、あらかじめ定義されているリモートオブジ
ェクト作成関数の実装コードに、リモートオブジェクト
として定義すべきクラスについてそのインスタンスを作
成するためのコードが追加される。
【0025】そして、このようにしてマクロ呼び出し生
成ツール1により生成されたマクロ呼び出し追加オブジ
ェクト定義ファイル12、マクロ呼び出し追加オブジェ
クト実装ファイル22およびマクロ呼び出し追加基底オ
ブジェクト実装ファイル32がコンパイラ6に入力とし
て与えられ、コンパイラ6において、これらのファイル
12,22,32と、あらかじめ準備されたリモートオ
ブジェクト通信ライブラリ群7とを、ファイル12,2
2,32に追加されたマクロ呼び出し定義をマクロ群8
を参照して展開しながらコンパイルおよびリンクする。
これにより、ユーザにより作成されたローカルオブジェ
クト通信プログラム9のオブジェクト定義ファイル11
およびオブジェクト実装ファイル21は、最終的に、リ
モートオブジェクト対応オブジェクト定義ファイル13
およびリモートオブジェクト対応オブジェクト実装ファ
イル23に変更され、最終的にリモートオブジェクト通
信プログラム10が生成される。
成ツール1により生成されたマクロ呼び出し追加オブジ
ェクト定義ファイル12、マクロ呼び出し追加オブジェ
クト実装ファイル22およびマクロ呼び出し追加基底オ
ブジェクト実装ファイル32がコンパイラ6に入力とし
て与えられ、コンパイラ6において、これらのファイル
12,22,32と、あらかじめ準備されたリモートオ
ブジェクト通信ライブラリ群7とを、ファイル12,2
2,32に追加されたマクロ呼び出し定義をマクロ群8
を参照して展開しながらコンパイルおよびリンクする。
これにより、ユーザにより作成されたローカルオブジェ
クト通信プログラム9のオブジェクト定義ファイル11
およびオブジェクト実装ファイル21は、最終的に、リ
モートオブジェクト対応オブジェクト定義ファイル13
およびリモートオブジェクト対応オブジェクト実装ファ
イル23に変更され、最終的にリモートオブジェクト通
信プログラム10が生成される。
【0026】次に、図3乃至図6により、図1に示すリ
モートオブジェクト通信プログラム生成システムの主要
な構成であるマクロ呼び出し生成ルール1の動作につい
て説明する。ここで、図3乃至図5はそれぞれ図1に示
すリモートオブジェクト通信プログラム生成システムに
おけるオブジェクト定義ファイル、オブジェクト実装フ
ァイルおよび基底オブジェクト実装ファイルへのコード
群の追加方法を説明するためのフローチャート、図6
(a)(b)(c)は図3乃至図5に示す各方法により
オブジェクト定義ファイル、オブジェクト実装ファイル
および基底オブジェクト実装ファイルに追加されるコー
ド群の一例を示す図である。なお、図6(a)(b)
(c)において、オブジェクト定義ファイル、オブジェ
クト実装ファイルおよび基底オブジェクト実装ファイル
はそれぞれC++で記述されており、コード群が追加さ
れる前のソースコード(オブジェクト定義ファイル1
1、オブジェクト実装ファイル21および基底オブジェ
クト実装ファイル31)が左側に示され、コード群が追
加された後のソースコード(マクロ呼び出し追加オブジ
ェクト定義ファイル12、マクロ呼び出し追加オブジェ
クト実装ファイル22およびマクロ呼び出し追加基底オ
ブジェクト実装ファイル32)が右側に示されている。
なお、追加されたコード群は右側のソースコードのうち
網掛け表示の部分に対応しており、ここでは説明の簡略
化のためにマクロ呼び出し定義から展開されたソースコ
ードの形で示されている。
モートオブジェクト通信プログラム生成システムの主要
な構成であるマクロ呼び出し生成ルール1の動作につい
て説明する。ここで、図3乃至図5はそれぞれ図1に示
すリモートオブジェクト通信プログラム生成システムに
おけるオブジェクト定義ファイル、オブジェクト実装フ
ァイルおよび基底オブジェクト実装ファイルへのコード
群の追加方法を説明するためのフローチャート、図6
(a)(b)(c)は図3乃至図5に示す各方法により
オブジェクト定義ファイル、オブジェクト実装ファイル
および基底オブジェクト実装ファイルに追加されるコー
ド群の一例を示す図である。なお、図6(a)(b)
(c)において、オブジェクト定義ファイル、オブジェ
クト実装ファイルおよび基底オブジェクト実装ファイル
はそれぞれC++で記述されており、コード群が追加さ
れる前のソースコード(オブジェクト定義ファイル1
1、オブジェクト実装ファイル21および基底オブジェ
クト実装ファイル31)が左側に示され、コード群が追
加された後のソースコード(マクロ呼び出し追加オブジ
ェクト定義ファイル12、マクロ呼び出し追加オブジェ
クト実装ファイル22およびマクロ呼び出し追加基底オ
ブジェクト実装ファイル32)が右側に示されている。
なお、追加されたコード群は右側のソースコードのうち
網掛け表示の部分に対応しており、ここでは説明の簡略
化のためにマクロ呼び出し定義から展開されたソースコ
ードの形で示されている。
【0027】まず、図3により、オブジェクト定義ファ
イル11へのコード群の追加方法について説明する。
イル11へのコード群の追加方法について説明する。
【0028】図3に示すように、まず、リモートオブジ
ェクトとして定義すべきクラスを含むオブジェクト定義
ファイル11をマクロ呼び出し生成ツール1に入力する
(ステップ101)。
ェクトとして定義すべきクラスを含むオブジェクト定義
ファイル11をマクロ呼び出し生成ツール1に入力する
(ステップ101)。
【0029】次に、マクロ呼び出し生成ツール1の第1
コード追加部2により、入力されたオブジェクト定義フ
ァイル11を走査してトークンの切り出しを行う(ステ
ップ102)。
コード追加部2により、入力されたオブジェクト定義フ
ァイル11を走査してトークンの切り出しを行う(ステ
ップ102)。
【0030】そして、切り出されたトークンの種類を識
別し(ステップ103)、トークンがメンバ関数である
と判断された場合には、そのメンバ関数に対応するサー
バオブジェクト呼び出し関数(図6(a)の符号12c
参照)をインライン関数として作成する(ステップ10
4)。なお、このようにして抽出されたメンバ関数は変
数テーブルに格納される(ステップ105)。
別し(ステップ103)、トークンがメンバ関数である
と判断された場合には、そのメンバ関数に対応するサー
バオブジェクト呼び出し関数(図6(a)の符号12c
参照)をインライン関数として作成する(ステップ10
4)。なお、このようにして抽出されたメンバ関数は変
数テーブルに格納される(ステップ105)。
【0031】一方、ステップ103において、トークン
がクラス宣言終了子であると判断された場合には、ステ
ップ105において変数テーブルに格納されたメンバ関
数に基づいて、メソッド呼び出し関数(図6(a)の符
号12a参照)およびメンバ関数テーブル作成関数(図
6(a)の符号12b参照)をインライン関数として作
成する(ステップ106およびステップ107)。
がクラス宣言終了子であると判断された場合には、ステ
ップ105において変数テーブルに格納されたメンバ関
数に基づいて、メソッド呼び出し関数(図6(a)の符
号12a参照)およびメンバ関数テーブル作成関数(図
6(a)の符号12b参照)をインライン関数として作
成する(ステップ106およびステップ107)。
【0032】その後、トークンがメンバ関数でステップ
104およびステップ105の処理が終了した場合、ト
ークンがクラス宣言終了子でステップ106およびステ
ップ107の処理が終了した場合、またはトークンがメ
ンバ関数でもクラス宣言終了子でもない場合には、この
ようにして切り出されたトークン、および作成された各
種のインライン関数がそのまま元のオブジェクト定義フ
ァイル11に上書きされる(ステップ108)。
104およびステップ105の処理が終了した場合、ト
ークンがクラス宣言終了子でステップ106およびステ
ップ107の処理が終了した場合、またはトークンがメ
ンバ関数でもクラス宣言終了子でもない場合には、この
ようにして切り出されたトークン、および作成された各
種のインライン関数がそのまま元のオブジェクト定義フ
ァイル11に上書きされる(ステップ108)。
【0033】なお、以上のステップ102乃至ステップ
108の処理は、ファイル終了子が現れるまで繰り返さ
れ(ステップ109)、ファイル終了子が現れた時点
で、図6(a)に示すようなマクロ呼び出し定義を含む
所定のコード群が追加されたマクロ呼び出し追加オブジ
ェクト定義ファイル12が生成される。
108の処理は、ファイル終了子が現れるまで繰り返さ
れ(ステップ109)、ファイル終了子が現れた時点
で、図6(a)に示すようなマクロ呼び出し定義を含む
所定のコード群が追加されたマクロ呼び出し追加オブジ
ェクト定義ファイル12が生成される。
【0034】次に、図4により、オブジェクト実装ファ
イル21へのコード群の追加方法について説明する。
イル21へのコード群の追加方法について説明する。
【0035】図4に示すように、まず、リモートオブジ
ェクトとして定義すべきクラスを含むオブジェクト実装
ファイル21をマクロ呼び出し生成ツール1に入力する
(ステップ201)。
ェクトとして定義すべきクラスを含むオブジェクト実装
ファイル21をマクロ呼び出し生成ツール1に入力する
(ステップ201)。
【0036】次に、マクロ呼び出し生成ツール1の第2
コード追加部3により、入力されたオブジェクト実装フ
ァイル21を走査してトークンの切り出しを行う(ステ
ップ202)。
コード追加部3により、入力されたオブジェクト実装フ
ァイル21を走査してトークンの切り出しを行う(ステ
ップ202)。
【0037】そして、切り出されたトークンの種類を識
別し(ステップ203)、トークンがクラスのメンバ関
数実装開始子であると判断された場合には、開始宣言の
後に自身のオブジェクトの位置がクライアント以外であ
る場合の条件分岐開始コード(図6(b)の符号22a
参照)を作成する(ステップ204)。
別し(ステップ203)、トークンがクラスのメンバ関
数実装開始子であると判断された場合には、開始宣言の
後に自身のオブジェクトの位置がクライアント以外であ
る場合の条件分岐開始コード(図6(b)の符号22a
参照)を作成する(ステップ204)。
【0038】一方、ステップ203において、トークン
がメンバ関数実装終了子であると判断された場合には、
条件分岐コードとして、クライアントである場合にこの
メンバ関数に対応するサーバオブジェクト呼び出し関数
(SEND関数)を呼び出すコード(図6(b)の符号
22b参照)を作成する(ステップ207)。
がメンバ関数実装終了子であると判断された場合には、
条件分岐コードとして、クライアントである場合にこの
メンバ関数に対応するサーバオブジェクト呼び出し関数
(SEND関数)を呼び出すコード(図6(b)の符号
22b参照)を作成する(ステップ207)。
【0039】その後、トークンがメンバ関数実装開始子
でステップ204の処理が終了した場合、トークンがメ
ンバ関数実装終了子でステップ205の処理が終了した
場合、またはトークンがメンバ関数実装開始子でもメン
バ関数実装終了子でもない場合には、このようにして切
り出されたトークン、および作成されたコードがそのま
ま元のオブジェクト実装ファイル21に上書きされる
(ステップ206)。
でステップ204の処理が終了した場合、トークンがメ
ンバ関数実装終了子でステップ205の処理が終了した
場合、またはトークンがメンバ関数実装開始子でもメン
バ関数実装終了子でもない場合には、このようにして切
り出されたトークン、および作成されたコードがそのま
ま元のオブジェクト実装ファイル21に上書きされる
(ステップ206)。
【0040】なお、以上のステップ202乃至ステップ
206の処理は、ファイル終了子が現れるまで繰り返さ
れ(ステップ207)、ファイル終了子が現れた時点
で、図6(b)に示すようなマクロ呼び出し定義を含む
所定のコード群が追加されたマクロ呼び出し追加オブジ
ェクト実装ファイル22が生成される。
206の処理は、ファイル終了子が現れるまで繰り返さ
れ(ステップ207)、ファイル終了子が現れた時点
で、図6(b)に示すようなマクロ呼び出し定義を含む
所定のコード群が追加されたマクロ呼び出し追加オブジ
ェクト実装ファイル22が生成される。
【0041】次に、図5により、基底オブジェクト定義
ファイル31へのコード群の追加方法について説明す
る。
ファイル31へのコード群の追加方法について説明す
る。
【0042】図5に示すように、まず、リモートオブジ
ェクト通信ライブラリ群7に含まれるリモートオブジェ
クト用の基底オブジェクト実装ファイル31をマクロ呼
び出し生成ツール1に入力する(ステップ301)。
ェクト通信ライブラリ群7に含まれるリモートオブジェ
クト用の基底オブジェクト実装ファイル31をマクロ呼
び出し生成ツール1に入力する(ステップ301)。
【0043】次に、リモートオブジェクトとして定義す
べきクラスのクラス名をマクロ呼び出し生成ツール1に
入力した後(ステップ302)、マクロ呼び出し生成ツ
ール1の第3コード追加部4により、ステップ301で
入力された基底オブジェクト実装ファイル31を走査し
てトークンの切り出しを行う(ステップ303)。
べきクラスのクラス名をマクロ呼び出し生成ツール1に
入力した後(ステップ302)、マクロ呼び出し生成ツ
ール1の第3コード追加部4により、ステップ301で
入力された基底オブジェクト実装ファイル31を走査し
てトークンの切り出しを行う(ステップ303)。
【0044】そして、切り出されたトークンの種類を識
別し(ステップ304)、トークンがリモートオブジェ
クト作成関数の宣言であると判断された場合には、その
関数の内部に、ステップ302で入力されたクラス名に
対応するインスタンスを作成するコード(図6(c)の
符号32a参照)を作成する(ステップ305)。
別し(ステップ304)、トークンがリモートオブジェ
クト作成関数の宣言であると判断された場合には、その
関数の内部に、ステップ302で入力されたクラス名に
対応するインスタンスを作成するコード(図6(c)の
符号32a参照)を作成する(ステップ305)。
【0045】その後、トークンがリモートオブジェクト
作成関数の宣言でステップ305の処理が終了した場
合、またはトークンがオブジェクト作成関数の宣言でな
い場合には、このようにして切り出されたトークン、お
よび作成されたコードがそのまま元の基底オブジェクト
実装ファイル31に上書きされる(ステップ306)。
作成関数の宣言でステップ305の処理が終了した場
合、またはトークンがオブジェクト作成関数の宣言でな
い場合には、このようにして切り出されたトークン、お
よび作成されたコードがそのまま元の基底オブジェクト
実装ファイル31に上書きされる(ステップ306)。
【0046】なお、以上のステップ303乃至ステップ
306の処理は、ファイル終了子が現れるまで繰り返さ
れ(ステップ307)、ファイル終了子が現れた時点
で、図6(c)に示すようなマクロ呼び出し定義を含む
所定のコード群が追加されたマクロ呼び出し追加基底オ
ブジェクト実装ファイル32が生成される。
306の処理は、ファイル終了子が現れるまで繰り返さ
れ(ステップ307)、ファイル終了子が現れた時点
で、図6(c)に示すようなマクロ呼び出し定義を含む
所定のコード群が追加されたマクロ呼び出し追加基底オ
ブジェクト実装ファイル32が生成される。
【0047】このように本実施の形態に係るリモートオ
ブジェクト通信プログラム生成システムによれば、通常
のオブジェクト指向言語で記述された既存のプログラム
のうち、リモートオブジェクトとして定義すべきオブジ
ェクトのオブジェクト定義ファイル11、オブジェクト
実装ファイル21、およびリモートオブジェクト通信ラ
イブラリ群7に含まれるリモートオブジェクト用の基底
オブジェクト実装ファイル31に対して所定のコード群
を追加することにより、メソッド呼び出し等の通常のオ
ブジェクト間通信をリモートプロセス間で実現すること
ができるので、オブジェクト定義ファイル11、オブジ
ェクト実装ファイル21および基底オブジェクト実装フ
ァイル31の既存のコードを何ら改変することなく、既
存のプログラムを最大限に利用してリモートオブジェク
ト通信プログラムを容易に生成することができる。この
ため、IDL定義言語での記述や、IDLコンパイラに
よる通信代理オブジェクトの生成、CORBAでの実装
を意識した設計といった煩雑な手間をかけることなく、
オブジェクト指向言語で記述された既存のプログラムを
基にしてリモートプロセス間でオブジェクト間通信を行
うリモートオブジェクト通信プログラムを容易に生成す
ることができる。
ブジェクト通信プログラム生成システムによれば、通常
のオブジェクト指向言語で記述された既存のプログラム
のうち、リモートオブジェクトとして定義すべきオブジ
ェクトのオブジェクト定義ファイル11、オブジェクト
実装ファイル21、およびリモートオブジェクト通信ラ
イブラリ群7に含まれるリモートオブジェクト用の基底
オブジェクト実装ファイル31に対して所定のコード群
を追加することにより、メソッド呼び出し等の通常のオ
ブジェクト間通信をリモートプロセス間で実現すること
ができるので、オブジェクト定義ファイル11、オブジ
ェクト実装ファイル21および基底オブジェクト実装フ
ァイル31の既存のコードを何ら改変することなく、既
存のプログラムを最大限に利用してリモートオブジェク
ト通信プログラムを容易に生成することができる。この
ため、IDL定義言語での記述や、IDLコンパイラに
よる通信代理オブジェクトの生成、CORBAでの実装
を意識した設計といった煩雑な手間をかけることなく、
オブジェクト指向言語で記述された既存のプログラムを
基にしてリモートプロセス間でオブジェクト間通信を行
うリモートオブジェクト通信プログラムを容易に生成す
ることができる。
【0048】また本実施の形態に係るリモートオブジェ
クト通信プログラム生成システムによれば、オブジェク
ト定義ファイル11、オブジェクト実装ファイル21お
よび基底オブジェクト実装ファイル31に対して、ソー
スコードの代わりにマクロ呼び出し定義を追加するよう
にしているので、コードの煩雑化を防止することができ
る。
クト通信プログラム生成システムによれば、オブジェク
ト定義ファイル11、オブジェクト実装ファイル21お
よび基底オブジェクト実装ファイル31に対して、ソー
スコードの代わりにマクロ呼び出し定義を追加するよう
にしているので、コードの煩雑化を防止することができ
る。
【0049】リモートオブジェクト通信システム 次に、図7乃至図11により、図1乃至図6に示すリモ
ートオブジェクト通信プログラム生成システムにより生
成されるリモートオブジェクト通信システムについて説
明する。
ートオブジェクト通信プログラム生成システムにより生
成されるリモートオブジェクト通信システムについて説
明する。
【0050】図7はリモートオブジェクト通信システム
の全体構成を示す図である。図7に示すように、リモー
トオブジェクト通信システムは、クライアント40およ
びサーバ50上で動作するリモートプロセス間でオブジ
ェクト間通信を行うものであり、クライアントプロセス
(クライアントプロセス手段)41と、サーバプロセス
(サーバプロセス手段)51と、クライアントプロセス
41とサーバプロセス51との間でバイナリデータの送
受信を行うためのストリームソケット55とを備えてい
る。
の全体構成を示す図である。図7に示すように、リモー
トオブジェクト通信システムは、クライアント40およ
びサーバ50上で動作するリモートプロセス間でオブジ
ェクト間通信を行うものであり、クライアントプロセス
(クライアントプロセス手段)41と、サーバプロセス
(サーバプロセス手段)51と、クライアントプロセス
41とサーバプロセス51との間でバイナリデータの送
受信を行うためのストリームソケット55とを備えてい
る。
【0051】ここで、クライアントプロセス41および
サーバプロセス51はそれぞれ、同一のクラスから生成
されるクライアントオブジェクト42およびサーバオブ
ジェクト52を有しており、クライアントオブジェクト
42はサーバオブジェクト52の代理オブジェクトとし
て動作するようになっている。
サーバプロセス51はそれぞれ、同一のクラスから生成
されるクライアントオブジェクト42およびサーバオブ
ジェクト52を有しており、クライアントオブジェクト
42はサーバオブジェクト52の代理オブジェクトとし
て動作するようになっている。
【0052】また、クライアントプロセス41およびサ
ーバプロセス51はそれぞれ、リモートプロセス間での
オブジェクト間通信を行うオブジェクトの識別情報(オ
ブジェクトの名前およびアドレス)を保持するソケット
アクセスオブジェクト43,53を有し、ストリームソ
ケット55を介したバイナリデータ通信をオブジェクト
間通信(メソッド呼び出し通信)に見せかけることによ
り、クライアントオブジェクト42またはサーバオブジ
ェクト52からのメソッド呼び出しをリモートプロセス
間でのオブジェクト間通信として実現するようになって
いる。なお、ソケットアクセスオブジェクト43,53
は、図1に示すリモートオブジェクト通信プログラム生
成システムのリモートオブジェクト通信ライブラリ群7
に対応している。
ーバプロセス51はそれぞれ、リモートプロセス間での
オブジェクト間通信を行うオブジェクトの識別情報(オ
ブジェクトの名前およびアドレス)を保持するソケット
アクセスオブジェクト43,53を有し、ストリームソ
ケット55を介したバイナリデータ通信をオブジェクト
間通信(メソッド呼び出し通信)に見せかけることによ
り、クライアントオブジェクト42またはサーバオブジ
ェクト52からのメソッド呼び出しをリモートプロセス
間でのオブジェクト間通信として実現するようになって
いる。なお、ソケットアクセスオブジェクト43,53
は、図1に示すリモートオブジェクト通信プログラム生
成システムのリモートオブジェクト通信ライブラリ群7
に対応している。
【0053】具体的には例えば、クライアントプロセス
41においてクライアントオブジェクト42のメソッド
呼び出しを行うと、クライアントオブジェクト42から
ストリームソケット55に対して、あらかじめ定められ
たプロトコル(データ構造)に従ってメソッド呼び出し
に関するデータ(オブジェクト名、メソッド名および引
数の値等)を送信する。ここで、クライアントオブジェ
クト42からストリームソケット55に対してデータを
送信するメンバ関数は、図1に示すリモートオブジェク
ト通信プログラム生成システムによりオブジェクト定義
ファイル11に追加されるサーバオブジェクト呼び出し
関数(図6(a)の符号12c参照)であり、ユーザが
作成する必要のない関数である。
41においてクライアントオブジェクト42のメソッド
呼び出しを行うと、クライアントオブジェクト42から
ストリームソケット55に対して、あらかじめ定められ
たプロトコル(データ構造)に従ってメソッド呼び出し
に関するデータ(オブジェクト名、メソッド名および引
数の値等)を送信する。ここで、クライアントオブジェ
クト42からストリームソケット55に対してデータを
送信するメンバ関数は、図1に示すリモートオブジェク
ト通信プログラム生成システムによりオブジェクト定義
ファイル11に追加されるサーバオブジェクト呼び出し
関数(図6(a)の符号12c参照)であり、ユーザが
作成する必要のない関数である。
【0054】一方、このようなデータが送信されたサー
バプロセス51においては、ソケットアクセスオブジェ
クト53がストリームソケット55を介してバイナリデ
ータを受信し、ソケットアクセスオブジェクト53のデ
ータ取り出しメソッドにより、あらかじめ定められたプ
ロトコル(データ構造)に従ってデータを分解してオブ
ジェクト名およびその他のデータを取り出し、該当する
オブジェクトに対してデータを渡す。そして、データが
渡されたサーバオブジェクト52により、受け取ったデ
ータの中からメソッド名を取り出して該当するメソッド
を実行する。ここで、サーバオブジェクト52において
メソッド名を取り出して該当するメソッドを呼び出すメ
ンバ関数は、図1に示すリモートオブジェクト通信プロ
グラム生成システムによりオブジェクト定義ファイル1
1に追加されるメソッド呼び出し関数(図6(a)の符
号12a参照)であり、ユーザが作成する必要のない関
数である。
バプロセス51においては、ソケットアクセスオブジェ
クト53がストリームソケット55を介してバイナリデ
ータを受信し、ソケットアクセスオブジェクト53のデ
ータ取り出しメソッドにより、あらかじめ定められたプ
ロトコル(データ構造)に従ってデータを分解してオブ
ジェクト名およびその他のデータを取り出し、該当する
オブジェクトに対してデータを渡す。そして、データが
渡されたサーバオブジェクト52により、受け取ったデ
ータの中からメソッド名を取り出して該当するメソッド
を実行する。ここで、サーバオブジェクト52において
メソッド名を取り出して該当するメソッドを呼び出すメ
ンバ関数は、図1に示すリモートオブジェクト通信プロ
グラム生成システムによりオブジェクト定義ファイル1
1に追加されるメソッド呼び出し関数(図6(a)の符
号12a参照)であり、ユーザが作成する必要のない関
数である。
【0055】なお、このようなクライアントプロセス4
1およびサーバプロセス51においては、ソケットアク
セスオブジェクト43,53に対してリモートオブジェ
クトの名前およびアドレスを登録する必要がある。ここ
で、ソケットアクセスオブジェクト43,53に対して
リモートオブジェクトの名前およびアドレスを登録する
メンバ関数は、図1に示すリモートオブジェクト通信プ
ログラム生成システムによりオブジェクト定義ファイル
11に追加されるメンバ関数テーブル作成関数(図6
(a)の符号12b参照)であり、ユーザが作成する必
要のない関数である。
1およびサーバプロセス51においては、ソケットアク
セスオブジェクト43,53に対してリモートオブジェ
クトの名前およびアドレスを登録する必要がある。ここ
で、ソケットアクセスオブジェクト43,53に対して
リモートオブジェクトの名前およびアドレスを登録する
メンバ関数は、図1に示すリモートオブジェクト通信プ
ログラム生成システムによりオブジェクト定義ファイル
11に追加されるメンバ関数テーブル作成関数(図6
(a)の符号12b参照)であり、ユーザが作成する必
要のない関数である。
【0056】次に、図8乃至図11により、図7に示す
リモートオブジェクト通信システムの動作について説明
する。ここで、図8乃至図11は図7に示すリモートオ
ブジェクト通信システムのクライアント側およびサーバ
側の動作を説明するためのフローチャートである。
リモートオブジェクト通信システムの動作について説明
する。ここで、図8乃至図11は図7に示すリモートオ
ブジェクト通信システムのクライアント側およびサーバ
側の動作を説明するためのフローチャートである。
【0057】まず、図8および図9により、図7に示す
リモートオブジェクト通信システムのクライアント40
側の動作について説明する。
リモートオブジェクト通信システムのクライアント40
側の動作について説明する。
【0058】図8はクライアント40側の初期化準備の
手順を説明するためのフローチャートである。図8に示
すように、クライアント40側でリモートオブジェクト
を作成する場合には、まず、呼び出し対象となるサーバ
50側のリモートオブジェクトに与えられるオブジェク
ト名と、クライアント40側で作成されるオブジェクト
(代理オブジェクト)であることを示す値とを与えてオ
ブジェクトを作成する(ステップ401)。次に、スト
リームソケット55にアクセスするためのソケットアク
セスオブジェクト43を作成し、このソケットアクセス
オブジェクト43に対して、ステップ401で作成され
たリモートオブジェクトの名前およびアドレスを登録す
る(ステップ402)。最後に、ソケットアクセスオブ
ジェクト43に対して、クライアント40側で所定の初
期化処理を行うための準備関数を呼び出す(ステップ4
03)。
手順を説明するためのフローチャートである。図8に示
すように、クライアント40側でリモートオブジェクト
を作成する場合には、まず、呼び出し対象となるサーバ
50側のリモートオブジェクトに与えられるオブジェク
ト名と、クライアント40側で作成されるオブジェクト
(代理オブジェクト)であることを示す値とを与えてオ
ブジェクトを作成する(ステップ401)。次に、スト
リームソケット55にアクセスするためのソケットアク
セスオブジェクト43を作成し、このソケットアクセス
オブジェクト43に対して、ステップ401で作成され
たリモートオブジェクトの名前およびアドレスを登録す
る(ステップ402)。最後に、ソケットアクセスオブ
ジェクト43に対して、クライアント40側で所定の初
期化処理を行うための準備関数を呼び出す(ステップ4
03)。
【0059】図9はクライアント40側での通信手順を
説明するためのフローチャートである。図9に示すよう
に、クライアント40側からリモートオブジェクトのメ
ソッド呼び出しを行う場合には、クライアント40側で
通常のメソッド呼び出しを行う(ステップ501)。こ
のとき、クライアントオブジェクト42の内部では、オ
ブジェクトが動作する位置がクライアント側であること
を認識し、呼び出されたメンバ関数に対応するサーバオ
ブジェクト呼び出し関数(SEND関数)を呼び出し、
サーバ50側のリモートオブジェクトを呼び出す(ステ
ップ502)。
説明するためのフローチャートである。図9に示すよう
に、クライアント40側からリモートオブジェクトのメ
ソッド呼び出しを行う場合には、クライアント40側で
通常のメソッド呼び出しを行う(ステップ501)。こ
のとき、クライアントオブジェクト42の内部では、オ
ブジェクトが動作する位置がクライアント側であること
を認識し、呼び出されたメンバ関数に対応するサーバオ
ブジェクト呼び出し関数(SEND関数)を呼び出し、
サーバ50側のリモートオブジェクトを呼び出す(ステ
ップ502)。
【0060】図10はサーバ50側の初期化準備の手順
を説明するためのフローチャートである。図10に示す
ように、サーバ50側でリモートオブジェクトを作成す
る場合には、まず、オブジェクト名と、サーバ50側で
作成されることを示す値とを与えてオブジェクトを作成
する(ステップ601)。次に、ストリームソケット5
5にアクセスするためのソケットアクセスオブジェクト
53を作成し、このソケットアクセスオブジェクト53
に対して、ステップ601で作成されたリモートオブジ
ェクトの名前およびアドレスを登録する(ステップ60
2)。最後に、ソケットアクセスオブジェクト53に対
して、サーバ50側で所定の初期化処理を行うための準
備関数を呼び出す(ステップ603)。
を説明するためのフローチャートである。図10に示す
ように、サーバ50側でリモートオブジェクトを作成す
る場合には、まず、オブジェクト名と、サーバ50側で
作成されることを示す値とを与えてオブジェクトを作成
する(ステップ601)。次に、ストリームソケット5
5にアクセスするためのソケットアクセスオブジェクト
53を作成し、このソケットアクセスオブジェクト53
に対して、ステップ601で作成されたリモートオブジ
ェクトの名前およびアドレスを登録する(ステップ60
2)。最後に、ソケットアクセスオブジェクト53に対
して、サーバ50側で所定の初期化処理を行うための準
備関数を呼び出す(ステップ603)。
【0061】図11はサーバ50側での通信手順を説明
するためのフローチャートである。図11に示すよう
に、サーバ50側のリモートオブジェクトに対してクラ
イアント40側からメソッド呼び出しが行われた場合に
は、ストリームソケット55がデータを受信した後(ス
テップ701)、ソケットアクセスオブジェクト53の
データ取り出しメソッドを呼び出す(ステップ70
2)。そして、ソケットアクセスオブジェクト53のデ
ータ取り出しメソッドにより、受信したデータから、あ
らかじめ定められたプロトコルに従ってオブジェクト名
およびその他のデータを取り出し、該当するオブジェク
トに対してデータを渡す(ステップ703)。そして最
後に、その該当するオブジェクトのメソッド呼び出し関
数により、受け取ったデータの中からメソッド名を取り
出して呼び出すべきメンバ関数を検索し、該当するメン
バ関数(メソッド)を呼び出す(ステップ704)。
するためのフローチャートである。図11に示すよう
に、サーバ50側のリモートオブジェクトに対してクラ
イアント40側からメソッド呼び出しが行われた場合に
は、ストリームソケット55がデータを受信した後(ス
テップ701)、ソケットアクセスオブジェクト53の
データ取り出しメソッドを呼び出す(ステップ70
2)。そして、ソケットアクセスオブジェクト53のデ
ータ取り出しメソッドにより、受信したデータから、あ
らかじめ定められたプロトコルに従ってオブジェクト名
およびその他のデータを取り出し、該当するオブジェク
トに対してデータを渡す(ステップ703)。そして最
後に、その該当するオブジェクトのメソッド呼び出し関
数により、受け取ったデータの中からメソッド名を取り
出して呼び出すべきメンバ関数を検索し、該当するメン
バ関数(メソッド)を呼び出す(ステップ704)。
【0062】このように本実施の形態に係るリモートオ
ブジェクト通信システムによれば、リモートプロセス間
でのオブジェクト間通信を行うオブジェクトの識別情報
(オブジェクトの名前およびアドレス)を保持するソケ
ットアクセスオブジェクト43,53を有し、ストリー
ムソケット55を介したバイナリデータ通信をオブジェ
クト間通信(メソッド呼び出し通信)に見せかけるよう
にしているので、IDL定義言語での記述や、IDLコ
ンパイラによる通信代理オブジェクトの生成、CORB
Aでの実装を意識した設計といった煩雑な手間をかける
ことなく、メソッド呼び出し等の通常のオブジェクト間
通信をリモートプロセス間で実現することができる。
ブジェクト通信システムによれば、リモートプロセス間
でのオブジェクト間通信を行うオブジェクトの識別情報
(オブジェクトの名前およびアドレス)を保持するソケ
ットアクセスオブジェクト43,53を有し、ストリー
ムソケット55を介したバイナリデータ通信をオブジェ
クト間通信(メソッド呼び出し通信)に見せかけるよう
にしているので、IDL定義言語での記述や、IDLコ
ンパイラによる通信代理オブジェクトの生成、CORB
Aでの実装を意識した設計といった煩雑な手間をかける
ことなく、メソッド呼び出し等の通常のオブジェクト間
通信をリモートプロセス間で実現することができる。
【0063】リモートオブジェクト通信プログラム生成
プログラムを記録したコンピュータ読み取り可能な記録
媒体 次に、図12および図13により、図1に示すリモート
オブジェクト通信プログラム生成システムに対応するプ
ログラムを記録したコンピュータ読み取り可能な記録媒
体について説明する。
プログラムを記録したコンピュータ読み取り可能な記録
媒体 次に、図12および図13により、図1に示すリモート
オブジェクト通信プログラム生成システムに対応するプ
ログラムを記録したコンピュータ読み取り可能な記録媒
体について説明する。
【0064】図1に示すリモートオブジェクト通信プロ
グラム生成システムのうち、マクロ呼び出し生成ツール
1の第1乃至第3コード追加部2,3,4およびコンパ
イラ6は、図12に示すようなコンピュータシステム6
0上で稼働するプログラムモジュールとして実現するこ
とができる。なおこのとき、マクロ呼び出し生成ツール
1の第1乃至第3コード追加部2,3,4およびコンパ
イラ6における処理で必要となるデータ(マクロ生成ル
ール記憶部5に記憶されたマクロ生成ルール、リモート
オブジェクト通信ライブラリ群7およびマクロ群8等)
は、コンピュータシステム60のハードディスクユニッ
ト68(図13参照)等に格納される。
グラム生成システムのうち、マクロ呼び出し生成ツール
1の第1乃至第3コード追加部2,3,4およびコンパ
イラ6は、図12に示すようなコンピュータシステム6
0上で稼働するプログラムモジュールとして実現するこ
とができる。なおこのとき、マクロ呼び出し生成ツール
1の第1乃至第3コード追加部2,3,4およびコンパ
イラ6における処理で必要となるデータ(マクロ生成ル
ール記憶部5に記憶されたマクロ生成ルール、リモート
オブジェクト通信ライブラリ群7およびマクロ群8等)
は、コンピュータシステム60のハードディスクユニッ
ト68(図13参照)等に格納される。
【0065】ここで、このようなプログラムモジュール
を含むリモートオブジェクト通信プログラム生成プログ
ラムや、上述したマクロ生成ルール5、リモートオブジ
ェクト通信ライブラリ群7およびマクロ群8等のデータ
は所定の記録媒体に記録され、コンピュータシステム6
0により読み出され、上述したようなリモートオブジェ
クト通信プログラムの生成処理が行われる。
を含むリモートオブジェクト通信プログラム生成プログ
ラムや、上述したマクロ生成ルール5、リモートオブジ
ェクト通信ライブラリ群7およびマクロ群8等のデータ
は所定の記録媒体に記録され、コンピュータシステム6
0により読み出され、上述したようなリモートオブジェ
クト通信プログラムの生成処理が行われる。
【0066】コンピュータシステム60は、図12に示
すようにミニタワー等の筐体に収納されたコンピュータ
本体61と、CRT(Cathode Ray Tube−陰極線管−)
等の表示装置62と、記録出力装置としてのプリンタ6
3と、入力装置としてのキーボード64aおよびマウス
64bと、記録媒体としてのフロッピーディスク71内
の情報を読み出すためのフロッピーディスクドライブ装
置66と、記録媒体としてのCD−ROM(Compact Di
sk-Read Only Memory)72内の情報を読み出すための
CD−ROMドライブ装置67とを備えている。
すようにミニタワー等の筐体に収納されたコンピュータ
本体61と、CRT(Cathode Ray Tube−陰極線管−)
等の表示装置62と、記録出力装置としてのプリンタ6
3と、入力装置としてのキーボード64aおよびマウス
64bと、記録媒体としてのフロッピーディスク71内
の情報を読み出すためのフロッピーディスクドライブ装
置66と、記録媒体としてのCD−ROM(Compact Di
sk-Read Only Memory)72内の情報を読み出すための
CD−ROMドライブ装置67とを備えている。
【0067】これらの構成をブロック図として示すと、
図13に示すように、コンピュータ本体61が収納され
た筐体内には、RAM(Random Access Memory)等から
なる内部メモリ65と、ハードディスクユニット68等
の外部記憶装置がさらに設けられている。なお、リモー
トオブジェクト通信プログラム生成プログラムを記録し
たフロッピーディスク(記録媒体)71は、図12に示
すように、フロッピーディスクドライブ装置66のスロ
ットに挿入されて所定の手順によりコンピュータ本体6
1にインストールされる。なお、リモートオブジェクト
通信プログラム生成プログラムが記録された記録媒体
は、フロッピーディスク71に限られず、CD−ROM
72や内部メモリ65、ハードディスクユニット68等
の他、図示されていないMO(Magneto Optical)ディ
スクや光ディスク、DVD(DigitalVersatile Disk)
等であっても良い。
図13に示すように、コンピュータ本体61が収納され
た筐体内には、RAM(Random Access Memory)等から
なる内部メモリ65と、ハードディスクユニット68等
の外部記憶装置がさらに設けられている。なお、リモー
トオブジェクト通信プログラム生成プログラムを記録し
たフロッピーディスク(記録媒体)71は、図12に示
すように、フロッピーディスクドライブ装置66のスロ
ットに挿入されて所定の手順によりコンピュータ本体6
1にインストールされる。なお、リモートオブジェクト
通信プログラム生成プログラムが記録された記録媒体
は、フロッピーディスク71に限られず、CD−ROM
72や内部メモリ65、ハードディスクユニット68等
の他、図示されていないMO(Magneto Optical)ディ
スクや光ディスク、DVD(DigitalVersatile Disk)
等であっても良い。
【0068】
【実施例】次に、上述した実施の形態に係るリモートオ
ブジェクト通信プログラム生成システムおよびそのシス
テムにより生成されたリモートオブジェクト通信システ
ムの具体的実施例について述べる。なお、本実施例で
は、既存のプログラムが一般的なオブジェクト指向言語
であるC++で記述されている場合を例にとり説明す
る。
ブジェクト通信プログラム生成システムおよびそのシス
テムにより生成されたリモートオブジェクト通信システ
ムの具体的実施例について述べる。なお、本実施例で
は、既存のプログラムが一般的なオブジェクト指向言語
であるC++で記述されている場合を例にとり説明す
る。
【0069】本実施例においては、使用言語であるC+
+がマクロ展開の機能を備えているので、ローカルオブ
ジェクト通信プログラム9のオブジェクト定義ファイル
11、オブジェクト実装ファイル21および基底オブジ
ェクト実装ファイル31に追加されるコード群として、
次のような構文規則に従ったマクロ群に対応するマクロ
呼び出し定義を追加する。
+がマクロ展開の機能を備えているので、ローカルオブ
ジェクト通信プログラム9のオブジェクト定義ファイル
11、オブジェクト実装ファイル21および基底オブジ
ェクト実装ファイル31に追加されるコード群として、
次のような構文規則に従ったマクロ群に対応するマクロ
呼び出し定義を追加する。
【0070】マクロ構文 マクロ呼び出し定義の構文の一例を次に示す。
【0071】(1)オブジェクト定義ファイル11に追
加されるメソッド呼び出し関数 <メソッド呼び出し関数>::=METHODCALL(<CASE文>) <CASE文>::=CASE(<メソッド呼び出し名>(<引数マクロ
>),<順番>)|<CASE文>CASE(<メソッド呼び出し名>(<引数
マクロ>),<順番>) <メソッド呼び出し名>::=クラス内で定義されているメ
ンバ関数の名前(引数を含まない) <引数マクロ>::=<引数種類>(<順番>),|<引数種類>(<ク
ラス名>,<順番>),|<引数マクロ><引数種類>(<順番>),|<
引数マクロ><引数種類>(<クラス名>,<順番>), <順番>::=メンバ関数の順序付け番号 <引数種類>::=INT|DOUBLE|FLOAT|CHAR|INTARRAY|DOUBLE
ARRAY|FLOATARRAY|CHARARRAY|OBJ
加されるメソッド呼び出し関数 <メソッド呼び出し関数>::=METHODCALL(<CASE文>) <CASE文>::=CASE(<メソッド呼び出し名>(<引数マクロ
>),<順番>)|<CASE文>CASE(<メソッド呼び出し名>(<引数
マクロ>),<順番>) <メソッド呼び出し名>::=クラス内で定義されているメ
ンバ関数の名前(引数を含まない) <引数マクロ>::=<引数種類>(<順番>),|<引数種類>(<ク
ラス名>,<順番>),|<引数マクロ><引数種類>(<順番>),|<
引数マクロ><引数種類>(<クラス名>,<順番>), <順番>::=メンバ関数の順序付け番号 <引数種類>::=INT|DOUBLE|FLOAT|CHAR|INTARRAY|DOUBLE
ARRAY|FLOATARRAY|CHARARRAY|OBJ
【0072】(2)オブジェクト定義ファイル11に追
加されるメンバ関数テーブル作成関数 <メンバ関数テーブル作成関数>::=CREATETABLE(<TABLE
文>) <TABLE文>::=TABLE("<メンバ関数宣言>",<順番.>)|<TAB
LE文>TABLE("<メンバ関数宣言>",<順番.>) <メンバ関数宣言>::=クラス内で定義されているメンバ
関数の名前(引数を含まない) <順番>::=メンバ関数の順序付け番号
加されるメンバ関数テーブル作成関数 <メンバ関数テーブル作成関数>::=CREATETABLE(<TABLE
文>) <TABLE文>::=TABLE("<メンバ関数宣言>",<順番.>)|<TAB
LE文>TABLE("<メンバ関数宣言>",<順番.>) <メンバ関数宣言>::=クラス内で定義されているメンバ
関数の名前(引数を含まない) <順番>::=メンバ関数の順序付け番号
【0073】(3)オブジェクト定義ファイル11に追
加されるサーバオブジェクト呼び出し関数(SEND関
数) <サーバオブジェクト呼び出し関数>::=REMETHOD(<返り
値型>,<メンバ関数宣言>,<変数マクロ>,<順番>) <返り値型>::=メンバ関数宣言内で使われている返り値
型 <メンバ関数宣言>::=クラス内で定義されているメンバ
関数の名前(引数を含まない) <変数マクロ>::=<変数種類>(<メンバ関数宣言引数>)|<
変数種類>(<メンバ関数宣言引数>,<配列数>)|<変数マク
ロ><変数種類>(<メンバ関数宣言引数>,<配列数>)|<変数
マクロ><変数種類>(<メンバ関数宣言引数>) <変数種類>::=INTVAR|DOUBLEVAR|FLOATVAR|CHARVAR|INT
ARRAYVAR|DOUBLEARRAYVAR|FLOATARRAYVAR|CHARARRAYVAR
|OBJVAR <メンバ関数宣言引数>::=メンバ関数宣言内で使われて
いる引数 <配列数>::=配列の数 <順番>::=メンバ関数の順序付け番号)
加されるサーバオブジェクト呼び出し関数(SEND関
数) <サーバオブジェクト呼び出し関数>::=REMETHOD(<返り
値型>,<メンバ関数宣言>,<変数マクロ>,<順番>) <返り値型>::=メンバ関数宣言内で使われている返り値
型 <メンバ関数宣言>::=クラス内で定義されているメンバ
関数の名前(引数を含まない) <変数マクロ>::=<変数種類>(<メンバ関数宣言引数>)|<
変数種類>(<メンバ関数宣言引数>,<配列数>)|<変数マク
ロ><変数種類>(<メンバ関数宣言引数>,<配列数>)|<変数
マクロ><変数種類>(<メンバ関数宣言引数>) <変数種類>::=INTVAR|DOUBLEVAR|FLOATVAR|CHARVAR|INT
ARRAYVAR|DOUBLEARRAYVAR|FLOATARRAYVAR|CHARARRAYVAR
|OBJVAR <メンバ関数宣言引数>::=メンバ関数宣言内で使われて
いる引数 <配列数>::=配列の数 <順番>::=メンバ関数の順序付け番号)
【0074】(4)基底オブジェクト実装ファイル31
に追加されるリモートオブジェクト作成関数 <リモートオブジェクト作成>::=CLASSNAME(<クラス名>) <クラス名>::=作成するクラスの名前
に追加されるリモートオブジェクト作成関数 <リモートオブジェクト作成>::=CLASSNAME(<クラス名>) <クラス名>::=作成するクラスの名前
【0075】バイナリデータのデータ構造 また、本実施例においては、ストリームソケット55を
用いたバイナリデータ通信に図14に示すようなデータ
構造を用いる。すなわち、図14に示された構造体およ
び共用体(データストリーム、データ要素、データおよ
びクラスデータ)がクライアントプロセス41とサーバ
プロセス51との間のバイナリデータ通信のプロトコル
となっており、送信側では、図14に示されたデータ構
造の順序でデータを送信し、受信側ではこのデータ構造
に従ってデータを取り出す。
用いたバイナリデータ通信に図14に示すようなデータ
構造を用いる。すなわち、図14に示された構造体およ
び共用体(データストリーム、データ要素、データおよ
びクラスデータ)がクライアントプロセス41とサーバ
プロセス51との間のバイナリデータ通信のプロトコル
となっており、送信側では、図14に示されたデータ構
造の順序でデータを送信し、受信側ではこのデータ構造
に従ってデータを取り出す。
【0076】図15(a)(b)はローカルオブジェク
ト通信プログラムおよびリモートオブジェクト通信プロ
グラムの関係を模式的に示す概略図である。図15
(a)に示すローカルオブジェクト通信プログラムにお
いては、Main関数からTestクラスのオブジェクトが作成
され、作成されたオブジェクトのメンバ関数であるSetD
ata()やPrint()が呼び出される。このようなローカルオ
ブジェクト通信プログラムがクライアントプロセスとサ
ーバプロセスとに分割された場合には、図15(b)に
示すように、クライアントプロセス内で生成されたオブ
ジェクトであってサーバオブジェクトの代理オブジェク
トであるTestクラスのオブジェクトを介して、サーバプ
ロセス内で生成されたTestクラスのオブジェクトのメソ
ッドが呼び出される。
ト通信プログラムおよびリモートオブジェクト通信プロ
グラムの関係を模式的に示す概略図である。図15
(a)に示すローカルオブジェクト通信プログラムにお
いては、Main関数からTestクラスのオブジェクトが作成
され、作成されたオブジェクトのメンバ関数であるSetD
ata()やPrint()が呼び出される。このようなローカルオ
ブジェクト通信プログラムがクライアントプロセスとサ
ーバプロセスとに分割された場合には、図15(b)に
示すように、クライアントプロセス内で生成されたオブ
ジェクトであってサーバオブジェクトの代理オブジェク
トであるTestクラスのオブジェクトを介して、サーバプ
ロセス内で生成されたTestクラスのオブジェクトのメソ
ッドが呼び出される。
【0077】ここで、図15(b)に示すリモートオブ
ジェクト通信プログラムを、上述したマクロ構文および
バイナリデータのデータ構造を用いて実装した場合のク
ラス構成図を図16および図17に示す。
ジェクト通信プログラムを、上述したマクロ構文および
バイナリデータのデータ構造を用いて実装した場合のク
ラス構成図を図16および図17に示す。
【0078】図16および図17において、クライアン
トプロセス側のTestオブジェクトを介してサーバプロセ
ス側のTestオブジェクトのメンバ関数を呼び出す手順
(図11乃至図14に示すフローチャートに対応する手
順)が符号1)〜9)として示されている。また、図1
6および図17において、Testクラスはリモートオブジ
ェクトとして再定義されたクラス、RemoteObjクラスは
リモートオブジェクトを定義する場合の基底クラス、So
ckInitialクラスはソケットアクセスクラスである。図
16および図17に示すように、クライアントプロセス
側とサーバプロセス側では、基本的に同じクラス構成を
とり、Testクラスにクライアントオブジェクト(代理オ
ブジェクト)とサーバオブジェクトの両方の役割を持た
せている。なお、このようにクライアントプロセス側と
サーバプロセス側で同一のTestクラスを用いることによ
り、1つのプロセスをクライアントプロセスとサーバプ
ロセスとに分割した場合でも、Testクラスのオブジェク
トに対する通常のメソッド呼び出しに何ら変更を加える
必要がない。また、クライアントプロセス内で作成され
たリモートオブジェクトに対してサーバプロセス側から
メッセージを送ることも可能となる。
トプロセス側のTestオブジェクトを介してサーバプロセ
ス側のTestオブジェクトのメンバ関数を呼び出す手順
(図11乃至図14に示すフローチャートに対応する手
順)が符号1)〜9)として示されている。また、図1
6および図17において、Testクラスはリモートオブジ
ェクトとして再定義されたクラス、RemoteObjクラスは
リモートオブジェクトを定義する場合の基底クラス、So
ckInitialクラスはソケットアクセスクラスである。図
16および図17に示すように、クライアントプロセス
側とサーバプロセス側では、基本的に同じクラス構成を
とり、Testクラスにクライアントオブジェクト(代理オ
ブジェクト)とサーバオブジェクトの両方の役割を持た
せている。なお、このようにクライアントプロセス側と
サーバプロセス側で同一のTestクラスを用いることによ
り、1つのプロセスをクライアントプロセスとサーバプ
ロセスとに分割した場合でも、Testクラスのオブジェク
トに対する通常のメソッド呼び出しに何ら変更を加える
必要がない。また、クライアントプロセス内で作成され
たリモートオブジェクトに対してサーバプロセス側から
メッセージを送ることも可能となる。
【0079】なお、上述した実施例では、使用言語とし
てC++を用いた場合を例にとり説明したが、これ以外
の任意のオブジェクト指向言語を用いることができ、ま
たマクロ展開を利用できないプログラミング言語につい
ても、マクロ呼び出し定義の代わりに直接ソースコード
を追加することにより対応することができる。
てC++を用いた場合を例にとり説明したが、これ以外
の任意のオブジェクト指向言語を用いることができ、ま
たマクロ展開を利用できないプログラミング言語につい
ても、マクロ呼び出し定義の代わりに直接ソースコード
を追加することにより対応することができる。
【0080】
【発明の効果】以上説明したように本発明によれば、既
存のコードを何ら改変することなく、既存のプログラム
を最大限に利用してリモートオブジェクト通信プログラ
ムを容易に生成することができる。
存のコードを何ら改変することなく、既存のプログラム
を最大限に利用してリモートオブジェクト通信プログラ
ムを容易に生成することができる。
【図1】本発明によるリモートオブジェクト通信プログ
ラム生成システムの一実施の形態を示すブロック図。
ラム生成システムの一実施の形態を示すブロック図。
【図2】図1に示すリモートオブジェクト通信プログラ
ム生成システムにより追加されるコード群の詳細を説明
するための図。
ム生成システムにより追加されるコード群の詳細を説明
するための図。
【図3】図1に示すリモートオブジェクト通信プログラ
ム生成システムにおけるオブジェクト定義ファイルへの
コード群の追加方法を説明するためのフローチャート。
ム生成システムにおけるオブジェクト定義ファイルへの
コード群の追加方法を説明するためのフローチャート。
【図4】図1に示すリモートオブジェクト通信プログラ
ム生成システムにおけるオブジェクト実装ファイルへの
コード群の追加方法を説明するためのフローチャート。
ム生成システムにおけるオブジェクト実装ファイルへの
コード群の追加方法を説明するためのフローチャート。
【図5】図1に示すリモートオブジェクト通信プログラ
ム生成システムにおける基底オブジェクト実装ファイル
へのコード群の追加方法を説明するためのフローチャー
ト。
ム生成システムにおける基底オブジェクト実装ファイル
へのコード群の追加方法を説明するためのフローチャー
ト。
【図6】図3乃至図5に示す各方法によりオブジェクト
定義ファイル、オブジェクト実装ファイルおよび基底オ
ブジェクト実装ファイルに追加されるコード群の一例を
示す図。
定義ファイル、オブジェクト実装ファイルおよび基底オ
ブジェクト実装ファイルに追加されるコード群の一例を
示す図。
【図7】本発明によるリモートオブジェクト通信システ
ムの一実施の形態を示すブロック図。
ムの一実施の形態を示すブロック図。
【図8】図7に示すリモートオブジェクト通信システム
におけるクライアント側の初期化準備の手順を説明する
ためのフローチャート。
におけるクライアント側の初期化準備の手順を説明する
ためのフローチャート。
【図9】図7に示すリモートオブジェクト通信システム
におけるクライアント側での通信手順を説明するための
フローチャート。
におけるクライアント側での通信手順を説明するための
フローチャート。
【図10】図7に示すリモートオブジェクト通信システ
ムにおけるサーバ側の初期化準備の手順を説明するため
のフローチャート。
ムにおけるサーバ側の初期化準備の手順を説明するため
のフローチャート。
【図11】図7に示すリモートオブジェクト通信システ
ムにおけるサーバ側での通信手順を説明するためのフロ
ーチャート。
ムにおけるサーバ側での通信手順を説明するためのフロ
ーチャート。
【図12】リモートオブジェクト通信プログラム生成プ
ログラムを記録したコンピュータ読み取り可能な記録媒
体が用いられるコンピュータシステムを示す斜視図。
ログラムを記録したコンピュータ読み取り可能な記録媒
体が用いられるコンピュータシステムを示す斜視図。
【図13】図12に示すコンピュータシステムのハード
ウェア構成を示すブロック図。
ウェア構成を示すブロック図。
【図14】図7に示すリモートオブジェクト通信システ
ムで送受信されるバイナリデータのデータ構造の一例を
示す図。
ムで送受信されるバイナリデータのデータ構造の一例を
示す図。
【図15】ローカルオブジェクト通信プログラムとリモ
ートオブジェクト通信プログラムとの関係を模式的に示
す概略図。
ートオブジェクト通信プログラムとの関係を模式的に示
す概略図。
【図16】図1に示すリモートオブジェクト通信プログ
ラム生成システムにより生成されたリモートオブジェク
ト通信システムの具体的実装例のうちクライアント側の
クラス構成を示す図。
ラム生成システムにより生成されたリモートオブジェク
ト通信システムの具体的実装例のうちクライアント側の
クラス構成を示す図。
【図17】図1に示すリモートオブジェクト通信プログ
ラム生成システムにより生成されたリモートオブジェク
ト通信システムの具体的実装例のうちサーバ側のクラス
構成を示す図。
ラム生成システムにより生成されたリモートオブジェク
ト通信システムの具体的実装例のうちサーバ側のクラス
構成を示す図。
【図18】従来の情報処理システムの一例(集中型のメ
インフレーム型システム)を示す図。
インフレーム型システム)を示す図。
【図19】従来の情報処理システムの別の例(分散型ク
ライアント/サーバシステム)を示す図。
ライアント/サーバシステム)を示す図。
【図20】従来の情報処理システムのさらに別の例(T
hinクライアント型のシステム)を示す図。
hinクライアント型のシステム)を示す図。
1 マクロ呼び出し生成ツール 2 第1コード追加部 3 第2コード追加部 4 第3コード追加部 5 マクロ生成ルール記憶部 6 コンパイラ 7 リモートオブジェクト通信ライブラリ群 8 マクロ群 9 ローカルオブジェクト通信プログラム 10 リモートオブジェクト通信プログラム 11 オブジェクト定義ファイル 12 マクロ呼び出し追加オブジェクト定義ファイル 13 リモートオブジェクト対応オブジェクト定義ファ
イル 21 オブジェクト実装ファイル 22 マクロ呼び出し追加オブジェクト実装ファイル 23 リモートオブジェクト対応オブジェクト実装ファ
イル 31 基底オブジェクト実装ファイル 32 マクロ呼び出し追加基底オブジェクト実装ファイ
ル 40 クライアント 41 クライアントプロセス 50 サーバ 51 サーバプロセス 42,52 リモートオブジェクト 43,53 ソケットアクセスオブジェクト 55 ストリームソケット 65 記録媒体(内部メモリ) 68 記録媒体(ハードディスクユニット) 71 記録媒体(フロッピーディスク) 72 記録媒体(CD−ROM)
イル 21 オブジェクト実装ファイル 22 マクロ呼び出し追加オブジェクト実装ファイル 23 リモートオブジェクト対応オブジェクト実装ファ
イル 31 基底オブジェクト実装ファイル 32 マクロ呼び出し追加基底オブジェクト実装ファイ
ル 40 クライアント 41 クライアントプロセス 50 サーバ 51 サーバプロセス 42,52 リモートオブジェクト 43,53 ソケットアクセスオブジェクト 55 ストリームソケット 65 記録媒体(内部メモリ) 68 記録媒体(ハードディスクユニット) 71 記録媒体(フロッピーディスク) 72 記録媒体(CD−ROM)
───────────────────────────────────────────────────── フロントページの続き (54)【発明の名称】 リモ―トオブジェクト通信プログラム生成システム、リモ―トオブジェクト通信システム、およ びリモ―トオブジェクト通信プログラム生成プログラムを記録したコンピュ―タ読み取り可能な 記録媒体
Claims (9)
- 【請求項1】同一プロセス内でオブジェクト間通信を行
うローカルオブジェクト通信プログラムを基にして、リ
モートプロセス間でオブジェクト間通信を行うリモート
オブジェクト通信プログラムを生成するリモートオブジ
ェクト通信プログラム生成システムにおいて、 前記ローカルオブジェクト通信プログラムに含まれるオ
ブジェクトのうちリモートプロセス間でのオブジェクト
間通信が必要とされるオブジェクトのオブジェクト定義
ファイルに対して所定のコード群を追加する第1コード
追加手段と、 前記ローカルオブジェクト通信プログラムに含まれるオ
ブジェクトのうちリモートプロセス間でのオブジェクト
間通信が必要とされるオブジェクトのオブジェクト実装
ファイルに対して所定のコード群を追加する第2コード
追加手段と、 前記第1コード追加手段および前記第2コード追加手段
により所定のコード群が追加された前記オブジェクト定
義ファイルおよび前記オブジェクト実装ファイルと、あ
らかじめ準備されたリモートオブジェクト通信ライブラ
リ群とをコンパイルするコンパイル手段とを備えたこと
を特徴とするリモートオブジェクト通信プログラム生成
システム。 - 【請求項2】前記オブジェクト定義ファイルおよび前記
オブジェクト実装ファイルに追加すべきソースコードに
対応するマクロ呼び出し定義の生成ルールを記憶するマ
クロ生成ルール記憶手段をさらに備え、 前記第1コード追加手段および前記第2コード追加手段
は、前記マクロ生成ルール記憶手段に記憶された前記マ
クロ生成ルールに従って前記オブジェクト定義ファイル
および前記オブジェクト実装ファイルに対してマクロ呼
び出し定義を含む所定のコード群を追加し、 前記コンパイル手段は、前記第1コード追加手段および
前記第2コード追加手段により所定のコード群が追加さ
れた前記オブジェクト定義ファイルおよび前記オブジェ
クト実装ファイルと、あらかじめ準備されたリモートオ
ブジェクト通信ライブラリ群とを、前記オブジェクト定
義ファイルおよび前記オブジェクト実装ファイルに追加
されたマクロ呼び出し定義を展開しながらコンパイルす
ることを特徴とする請求項1記載のリモートオブジェク
ト通信プログラム生成システム。 - 【請求項3】前記リモートオブジェクト通信ライブラリ
群に含まれるリモートオブジェクト用の基底オブジェク
ト実装ファイルに対して所定のコード群を追加する第3
コード追加手段をさらに備え、 前記コンパイル手段は、前記第1コード追加手段および
前記第2コード追加手段により所定のコード群が追加さ
れた前記オブジェクト定義ファイルおよび前記オブジェ
クト実装ファイルと、あらかじめ準備されたリモートオ
ブジェクト通信ライブラリ群とともに、前記第3コード
追加手段により所定のコード群が追加された前記基底オ
ブジェクト実装ファイルをコンパイルすることを特徴と
する請求項1記載のリモートオブジェクト通信プログラ
ム生成システム。 - 【請求項4】前記オブジェクト定義ファイル、前記オブ
ジェクト実装ファイルおよび前記基底オブジェクト実装
ファイルに追加すべきソースコードに対応するマクロ呼
び出し定義の生成ルールを記憶するマクロ生成ルール記
憶手段をさらに備え、 前記第1コード追加手段、前記第2コード追加手段およ
び前記第3コード追加手段は、前記マクロ生成ルール記
憶手段に記憶された前記マクロ生成ルールに従って前記
オブジェクト定義ファイル、前記オブジェクト実装ファ
イルおよび前記基底オブジェト実装ファイルに対してマ
クロ呼び出し定義を含む所定のコード群を追加し、 前記コンパイル手段は、前記第1コード追加手段、前記
第2コード追加手段および前記第3コード追加手段によ
り所定のコード群が追加された前記オブジェクト定義フ
ァイル、前記オブジェクト実装ファイルおよび前記基底
オブジェクト実装ファイルと、あらかじめ準備されたリ
モートオブジェクト通信ライブラリ群とを、前記オブジ
ェクト定義ファイル、前記オブジェクト実装ファイルお
よび前記基底オブジェクト実装ファイルに追加されたマ
クロ呼び出し定義を展開しながらコンパイルすることを
特徴とする請求項3記載のリモートオブジェクト通信プ
ログラム生成システム。 - 【請求項5】リモートプロセス間でオブジェクト間通信
を行うリモートオブジェクト通信システムにおいて、 クライアントオブジェクトを含むクライアントプロセス
手段と、 前記クライアントオブジェクトに対応するサーバオブジ
ェクトを含むサーバプロセス手段と、 前記クライアントプロセス手段と前記サーバプロセス手
段との間でバイナリデータの送受信を行うためのストリ
ームソケットとを備え、 前記クライアントプロセス手段および前記サーバプロセ
ス手段はそれぞれ、リモートプロセス間でのオブジェク
ト間通信が必要とされるオブジェクトの識別情報を保持
するソケットアクセスオブジェクトを有し、前記クライ
アントオブジェクトまたは前記サーバオブジェクトにお
けるメソッド呼び出しをリモートプロセス間でのオブジ
ェクト間通信として実現することを特徴とするリモート
オブジェクト通信システム。 - 【請求項6】前記クライアントオブジェクトおよび前記
サーバオブジェクトは同一のクラスから生成されること
を特徴とする請求項5記載のリモートオブジェクト通信
システム。 - 【請求項7】前記ストリームソケットを介して送受信さ
れるバイナリデータはオブジェクト名およびメソッド名
を含む所定のデータ構造を有していることを特徴とする
請求項5記載のリモートオブジェクト通信システム。 - 【請求項8】同一プロセス内でオブジェクト間通信を行
うローカルオブジェクト通信プログラムを基にして、リ
モートプロセス間でオブジェクト間通信を行うリモート
オブジェクト通信プログラムを生成するリモートオブジ
ェクト通信プログラム生成プログラムを記録したコンピ
ュータ読み取り可能な記録媒体において、 ローカルオブジェクト通信プログラムに含まれるオブジ
ェクトのうちリモートプロセス間でのオブジェクト間通
信が必要とされるオブジェクトのオブジェクト定義ファ
イルおよびオブジェクト実装ファイルに対して所定のコ
ード群を追加するステップと、 所定のコード群が追加された前記オブジェクト定義ファ
イルおよび前記オブジェクト実装ファイルと、あらかじ
め準備されたリモートオブジェクト通信ライブラリ群と
をコンパイルするステップとをコンピュータに実行させ
ることを特徴とするリモートオブジェクト通信プログラ
ム生成プログラムを記録したコンピュータ読み取り可能
な記録媒体。 - 【請求項9】前記リモートオブジェクト通信ライブラリ
群に含まれるリモートオブジェクト用の基底オブジェク
ト実装ファイルに対して所定のコード群を追加するステ
ップをさらに実行させ、 所定のコード群が追加された前記オブジェクト定義ファ
イルおよび前記オブジェクト実装ファイルと、あらかじ
め準備されたリモートオブジェクト通信ライブラリ群と
ともに、所定のコード群が追加された前記基底オブジェ
クト実装ファイルをコンパイルすることを特徴とする請
求項8記載のリモートオブジェクト通信プログラム生成
プログラムを記録したコンピュータ読み取り可能な記録
媒体。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11010804A JP2000207186A (ja) | 1999-01-19 | 1999-01-19 | リモ―トオブジェクト通信プログラム生成システム、リモ―トオブジェクト通信システム、およびリモ―トオブジェクト通信プログラム生成プログラムを記録したコンピュ―タ読み取り可能な記録媒体 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11010804A JP2000207186A (ja) | 1999-01-19 | 1999-01-19 | リモ―トオブジェクト通信プログラム生成システム、リモ―トオブジェクト通信システム、およびリモ―トオブジェクト通信プログラム生成プログラムを記録したコンピュ―タ読み取り可能な記録媒体 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2000207186A true JP2000207186A (ja) | 2000-07-28 |
Family
ID=11760541
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP11010804A Pending JP2000207186A (ja) | 1999-01-19 | 1999-01-19 | リモ―トオブジェクト通信プログラム生成システム、リモ―トオブジェクト通信システム、およびリモ―トオブジェクト通信プログラム生成プログラムを記録したコンピュ―タ読み取り可能な記録媒体 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2000207186A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000222230A (ja) * | 1999-02-03 | 2000-08-11 | Toshiba Corp | 並列分散対応コンポーネント実行システム、その開発方法、並列分散対応コンポーネント実行プログラムを記録したコンピュータ読み取り可能な記録媒体、および並列分散対応コンポーネント実行システム開発用フレームワークを記録したコンピュータ読み取り可能な記録媒体 |
| JP2018120447A (ja) * | 2017-01-26 | 2018-08-02 | 株式会社平和 | 遊技機 |
| CN115577327A (zh) * | 2022-10-10 | 2023-01-06 | 用友网络科技股份有限公司 | 动态安装文件方法及装置、计算机装置和可读存储介质 |
-
1999
- 1999-01-19 JP JP11010804A patent/JP2000207186A/ja active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000222230A (ja) * | 1999-02-03 | 2000-08-11 | Toshiba Corp | 並列分散対応コンポーネント実行システム、その開発方法、並列分散対応コンポーネント実行プログラムを記録したコンピュータ読み取り可能な記録媒体、および並列分散対応コンポーネント実行システム開発用フレームワークを記録したコンピュータ読み取り可能な記録媒体 |
| JP2018120447A (ja) * | 2017-01-26 | 2018-08-02 | 株式会社平和 | 遊技機 |
| CN115577327A (zh) * | 2022-10-10 | 2023-01-06 | 用友网络科技股份有限公司 | 动态安装文件方法及装置、计算机装置和可读存储介质 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7017148B2 (en) | Apparatus and method for UPnP device code generation using XML | |
| US7904803B2 (en) | Method and system for converting user interface source code of a legacy application to web pages | |
| US5764982A (en) | Peer-to-peer communication interface | |
| US5881289A (en) | Remote compiling of source code for cross development | |
| US8307379B2 (en) | Determining an extension to use to process an input object to a call in a program | |
| US8156471B2 (en) | Multi-language execution method | |
| US5675805A (en) | Programming system for generating client and server programs from an undistributed application program | |
| US6571388B1 (en) | Building a custom software environment including pre-loaded classes | |
| US8359570B2 (en) | Adaptive scripting tool | |
| JP3736308B2 (ja) | ソフトウェアコンポーネント自動生成システム | |
| KR20050000352A (ko) | 공통 쿼리 런타임 시스템 및 애플리케이션 프로그래밍인터페이스 | |
| CN111913741B (zh) | 对象拦截方法、装置、介质及电子设备 | |
| JP2007234047A (ja) | インターフェイス定義言語によって定義されたデータ構造体を異種システム間で移送するための方法および装置 | |
| US20070288508A1 (en) | Computer software development methods and systems | |
| JPH0926924A (ja) | 分散オブジェクトシステムにおける例外を解釈する方法および装置 | |
| JP2000515281A (ja) | インターフェイス定義言語によって定義されたインターフェイス、オペレーションおよびデータ型を記述するための方法および装置 | |
| US7752598B2 (en) | Generating executable objects implementing methods for an information model | |
| JP2009508252A (ja) | 属性を使用したプラグ可能な機能の識別およびフィルタリング | |
| US7284060B2 (en) | Method for transferring data in a system having multiple transports | |
| JP2007012066A (ja) | ローカル及び匿名クラスに対するイントロスペクションサポート | |
| US6986143B2 (en) | Reducing the size of generated code used to call common object model objects, while preserving type-checking | |
| US6708310B1 (en) | Method and system for implementing user-defined codeset conversions in a computer system | |
| JP2000207186A (ja) | リモ―トオブジェクト通信プログラム生成システム、リモ―トオブジェクト通信システム、およびリモ―トオブジェクト通信プログラム生成プログラムを記録したコンピュ―タ読み取り可能な記録媒体 | |
| JP7059757B2 (ja) | Api処理方法、端末、api処理プログラム | |
| Stroustrup et al. | Supporting SELL for high-performance computing |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040312 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040629 |