JPH10232780A - インタフェース定義記述の変換方法およびオブジェクト間通信方法 - Google Patents

インタフェース定義記述の変換方法およびオブジェクト間通信方法

Info

Publication number
JPH10232780A
JPH10232780A JP5109097A JP5109097A JPH10232780A JP H10232780 A JPH10232780 A JP H10232780A JP 5109097 A JP5109097 A JP 5109097A JP 5109097 A JP5109097 A JP 5109097A JP H10232780 A JPH10232780 A JP H10232780A
Authority
JP
Japan
Prior art keywords
message
server
client
service
computer
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
JP5109097A
Other languages
English (en)
Inventor
Tatsuto Aoshima
達人 青島
Tetsuya Hashimoto
哲也 橋本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP5109097A priority Critical patent/JPH10232780A/ja
Priority to EP98102297A priority patent/EP0860776A1/en
Publication of JPH10232780A publication Critical patent/JPH10232780A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/46Indexing scheme relating to G06F9/46
    • G06F2209/463Naming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 サービス提供者がメッセージの配送方法を制
御可能で、オブジェクトではなくサービスを指定した通
信を可能にするための、インタフェース定義記述の変換
方法及びオブジェクト間通信の方法を提供することにあ
る。 【解決手段】 サービス提供者が定義したインタフェー
ス定義から、クライアントスタブ1c、サーバスケルト
ン2s、ルーティングプログラム1rを生成する。クライ
アントオブジェクト10はクライアントスタブ1cを呼び
出し、メッセージの送信先をインタフェース名により指
定したメッセージを送信し、サーバスケルトン2sは提
供するサービスをルーティング情報テーブル31に登録
し、ルータ12は送信メッセージのインタフェース名に対
応したルーティングプログラム1rとメッセージキュー
情報テーブル30とルーティング情報テーブル31を用いて
送信先サーバオブジェクト20を決定し、ルータ2rを用
いてメッセージを転送する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、1つの計算機また
はネットワークで接続された複数の計算機上で動作する
複数のオブジェクトを用いたアプリケーションにおける
オブジェクト間通信方法、および、そのようなアプリケ
ーションのインタフェース定義記述の変換方法に関す
る。
【0002】
【従来の技術】従来、ひとつの計算機またはネットワー
クで接続された複数の計算機上で動作する複数のオブジ
ェクトを用いたアプリケーションにおけるオブジェクト
間通信方法に関しては、OMG(Object Management Grou
p)のCORBA(The Common ObjectRequest Broker: Archi
tecture and Specification Revision 2.0, July 1995,
OMG)が挙げられる。CORBAでは、インタフェース定義言
語(IDL)を用いることにより、オブジェクトのインタ
フェースをオブジェクトを記述するプログラミング言語
に非依存に定義できる。このIDLで記述されたインタフ
ェース定義をIDLコンパイラを用いて変換することによ
り、クライアントプログラムに付随し、クライアントプ
ログラムからサーバプログラムにメッセージを送る処理
の役割をするクライアントスタブ(上記CORBAにおいて
使用されている用語である)、およびサーバプログラム
での本来の処理を記述する部分を除いた処理の記述部分
であるサーバスケルトン(上記CORBAにおいて使用され
ている用語である)を自動生成することにより、プログ
ラマの負担を軽減できる。実際のプログラム間の通信は
ORB(Object Request Broker)という通信基盤により行
われる。クライアントプログラムは通信先のオブジェク
トを名前により検索し、その検索の結果として該オブジ
ェクトに対応するサーバプログラムに1対1に対応した
オブジェクトリファレンス(オブジェクト(サーバプロ
グラム)の存在場所を示す情報)を取得し、クライアン
トプログラムは、そのオブジェクトリファレンスに対応
したインタフェースから生成されたクライアントスタブ
を呼び出すことにより、メッセージをサーバプログラム
に送信する。これにより、クライアントプログラムのプ
ログラマは、サーバプログラムの物理的な位置や実際の
通信プロトコルを意識せずにアプリケーションプログラ
ムの本来の処理を記述する部分の記述をすることができ
る。また、サーバプログラムのプログラマは、実際の通
信プロトコルを意識せずにアプリケーションプログラム
の本来の処理のみを記述すればよい。
【0003】
【発明が解決しようとする課題】本発明の目的は、CORB
Aのもつ上記の利点をそのままに、さらにサーバオブジ
ェクトの提供する本来の処理(サービス)を中心とした
プログラミングおよびオブジェクト間通信の方法を提供
することにある。その課題としては以下の5つがある。
第1には、オブジェクト自体を指定するのではなく、サ
ービスを指定することにより、そのサービスを提供する
サーバオブジェクトと通信を行えるようにすることであ
る。第2には、通信に用いられるメッセージを、そのサ
ービスを提供するサーバオブジェクトに適切に配送する
ことである。第3には、サービスを提供するサーバオブ
ジェクトの追加、削除、変更に対して、クライアントオ
ブジェクトを変更不要にすることである。第4には、サ
ービスの提供者、サーバオブジェクトのプログラマがメ
ッセージの配送方法を制御可能にすることである。第5
には、1つのアプリケーションに関連するプログラムモ
ジュールを一元管理し、インストールを簡略化すること
である。
【0004】
【課題を解決するための手段】上記の課題を解決するた
め、本発明は、1つの計算機またはネットワークで接続
された複数の計算機のいずれかの計算機上で動作するク
ライアントオブジェクトが、同一の計算機あるいは他の
計算機上で動作するサーバオブジェクトにメッセージを
送信することにより所定の処理を実行させるオブジェク
ト間通信方法におけるインタフェース定義記述の変換方
法であって、インタフェース定義言語により記述する前
記の所定の処理に必要なデータおよび処理結果を記述す
るメソッド定義記述および該メソッド定義記述に対応し
て送信されるメッセージの形式を指定するメッセージ記
述をひとつ以上含んだインタフェース定義記述をインタ
フェース定義変換プログラムにより変換し、前記クライ
アントオブジェクトがメッセージを送信するために呼び
出すクライアントスタブと、前記サーバオブジェクトが
起動時に自身が処理することのできる前記メッセージの
形式を指定するルーティング情報をルーティング情報記
憶手段に記憶させるサーバ登録メソッドと前記サーバオ
ブジェクトがメッセージを受信したときに実行する前記
所定の処理を記述するためのメソッドを含むサーバスケ
ルトンと、前記メッセージと前記ルーティング情報を比
較して前記メッセージの前記ルーティング情報に対応し
た前記サーバオブジェクトでの処理が可能かどうかを判
定するルーティングプログラムとを生成するようにして
いる。
【0005】また、1つの計算機またはネットワークで
接続された複数の計算機のいずれかの計算機上で動作す
るクライアントオブジェクトが、同一の計算機あるいは
他の計算機上で動作するサーバオブジェクトにメッセー
ジを送信することにより所定の処理を実行させるオブジ
ェクト間通信方法において、前記計算機に上記変換によ
り生成したクライアントスタブとサーバスケルトンとル
ーティングプログラムを格納し、前記サーバオブジェク
トが起動したときに前記サーバ登録メソッドを呼び前記
ルーティング情報をルーティング情報記憶手段に記憶す
ることにより、前記クライアントオブジェクトが前記ク
ライアントスタブを呼び出すとメッセージを送信し、前
記送信したメッセージを送信メッセージキューにより保
持し、ルータが前記送信メッセージキューからメッセー
ジを取り出し、前記ルーティングプログラムにより送信
先オブジェクトを決定し、前記送信先オブジェクトに対
応した受信したメッセージを保持する受信メッセージキ
ューに追加し、前記サーバスケルトンが前記受信メッセ
ージキューからメッセージを取り出し、前記サーバスケ
ルトンが取り出したメッセージに対応した前記所定の処
理を前記サーバオブジェクトにより実行するようにして
いる。
【0006】また、前記インタフェース定義記述のメッ
セージ記述にメッセージ最大個数指定とキューイング時
間指定からなるキューイングオプション記述を追加し、
前記メッセージと前記ルーティング情報を比較して前記
メッセージの前記ルーティング情報に対応した前記サー
バオブジェクトでの処理が可能かどうかを判定し、指定
があれば前記キューイングオプション判定処理を行う、
前記メッセージの最大個数指定と前記キューイング時間
指定を追加したルーティングプログラムを生成するよう
にしている。
【0007】また、1つの計算機またはネットワークで
接続された複数の計算機のいずれかの計算機上で動作す
るクライアントオブジェクトが、同一の計算機あるいは
他の計算機上で動作するサーバオブジェクトにメッセー
ジを送信することにより所定の処理を実行させるオブジ
ェクト間通信方法において、前記計算機に上記変換によ
り生成したクライアントスタブとサーバスケルトンとル
ーティングプログラムを格納し、前記サーバオブジェク
トが起動したときに前記サーバ登録メソッドを呼び前記
ルーティング情報をルーティング情報記憶手段に記憶す
ることにより、前記クライアントオブジェクトが前記ク
ライアントスタブを呼び出すとメッセージを送信し、前
記送信したメッセージを送信メッセージキューにより保
持し、ルータが前記送信メッセージキューからメッセー
ジを取り出し、前記ルーティングプログラムにより送信
先オブジェクトを決定し、前記ルータがメッセージを一
時保管メッセージキューに保管し、前記ルータが別のメ
ッセージが前記メッセージと同一内容であれば1つのメ
ッセージに統合し、一時保管メッセージキュー内の前記
メッセージが前記メッセージ最大個数を超えるか前記メ
ッセージがキューイングされてから前記キューイング時
間経過したら前記メッセージを前記送信先オブジェクト
に対応した受信したメッセージを保持する受信メッセー
ジキューに追加し、前記サーバスケルトンが前記受信メ
ッセージキューからメッセージを取り出し、前記サーバ
スケルトンが取り出したメッセージに対応した前記所定
の処理を前記サーバオブジェクトにより実行するように
している。
【0008】また、前記インタフェース定義記述のメソ
ッド定義記述にマッチングオプション記述を追加し、前
記メッセージと前記ルーティング情報を比較して前記メ
ッセージの前記ルーティング情報に対応した前記サーバ
オブジェクトでの処理が可能かどうかを判定し、前記マ
ッチングオプション判定処理を行うカスタムルーティン
グプログラムを前記ルーティングプログラムの替わりに
生成するようにしている。
【0009】1つの計算機またはネットワークで接続さ
れた複数の計算機のいずれかの計算機上で動作するクラ
イアントオブジェクトが、同一の計算機あるいは他の計
算機上で動作するサーバオブジェクトにメッセージを送
信することにより所定の処理を実行させるオブジェクト
間通信方法において、前記計算機に上記変換により生成
したクライアントスタブとサーバスケルトンとカスタム
ルーティングプログラムを格納し、前記サーバオブジェ
クトが起動したときに前記サーバ登録メソッドを呼び前
記ルーティング情報をルーティング情報記憶手段に記憶
することにより、前記クライアントオブジェクトが前記
クライアントスタブを呼び出すとメッセージを送信し、
前記送信したメッセージを送信メッセージキューにより
保持し、ルータが前記送信メッセージキューからメッセ
ージを取り出し、前記カスタムルーティングプログラム
により送信先オブジェクトを決定し、前記送信先オブジ
ェクトに対応した受信したメッセージを保持する受信メ
ッセージキューに追加し、前記サーバスケルトンが前記
受信メッセージキューからメッセージを取り出し、前記
サーバスケルトンが取り出したメッセージに対応した前
記所定の処理を前記サーバオブジェクトにより実行する
ようにしている。
【0010】前記インタフェース定義記述のメッセージ
記述にメッセージ最大個数指定とキューイング時間指定
からなるキューイングオプション記述を追加し、前記メ
ッセージと前記ルーティング情報を比較して前記メッセ
ージの前記ルーティング情報に対応した前記サーバオブ
ジェクトでの処理が可能かどうかを判定し、指定があれ
ば前記キューイングオプション判定処理を行う、前記メ
ッセージの最大個数指定と前記キューイング時間指定を
追加したカスタムルーティングプログラムを生成するよ
うにしている。
【0011】1つの計算機またはネットワークで接続さ
れた複数の計算機のいずれかの計算機上で動作するクラ
イアントオブジェクトが、同一の計算機あるいは他の計
算機上で動作するサーバオブジェクトにメッセージを送
信することにより所定の処理を実行させるオブジェクト
間通信方法において、前記計算機に上記変換により生成
したクライアントスタブとサーバスケルトンとカスタム
ルーティングプログラムを格納し、前記サーバオブジェ
クトが起動したときに前記サーバ登録メソッドを呼び前
記ルーティング情報をルーティング情報記憶手段に記憶
することにより、前記クライアントオブジェクトが前記
クライアントスタブを呼び出すとメッセージを送信し、
前記送信したメッセージを送信メッセージキューにより
保持し、ルータが前記送信メッセージキューからメッセ
ージを取り出し、前記カスタムルーティングプログラム
により送信先オブジェクトを決定し、前記ルータがメッ
セージを一時保管メッセージキューに保管し、前記ルー
タが別のメッセージが前記メッセージと同一内容であれ
ば1つのメッセージに統合し、一時保管メッセージキュ
ー内の前記メッセージが前記メッセージ最大個数を超え
るか前記メッセージがキューイングされてから前記キュ
ーイング時間経過したら前記メッセージを前記送信先オ
ブジェクトに対応した受信したメッセージを保持する受
信メッセージキューに追加し、前記サーバスケルトンが
前記受信メッセージキューからメッセージを取り出し、
前記サーバスケルトンが取り出したメッセージに対応し
た前記所定の処理を前記サーバオブジェクトにより実行
するようにしている。
【0012】また、前記クライアントスタブと前記サー
バスケルトンと前記ルーティングプログラムとを1つの
サービスオブジェクトにまとめ、前記サービスオブジェ
クトをサービスオブジェクト記憶手段により記憶し、前
記クライアントオブジェクトがメッセージを送信する前
に前記サービスオブジェクトを前記サービス記憶手段か
ら取り出して前記クライアントスタブを呼び出し、前記
ルータが前記送信先オブジェクトを決定する前に前記サ
ービスオブジェクトを前記サービス記憶手段から取り出
して前記ルーティングプログラムを呼び出し、前記サー
バオブジェクトが起動時に前記サービスオブジェクトを
前記サービス記憶手段から取り出し、前記サーバスケル
トンを呼び出すようにしている。
【0013】また、前記クライアントスタブと前記サー
バスケルトンと前記カスタムルーティングプログラムと
を1つのサービスオブジェクトにまとめ、前記サービス
オブジェクトをサービスオブジェクト記憶手段により記
憶し、前記クライアントオブジェクトがメッセージを送
信する前に前記サービスオブジェクトを前記サービス記
憶手段から取り出して前記クライアントスタブを呼び出
し、前記ルータが前記送信先オブジェクトを決定する前
に前記サービスオブジェクトを前記サービス記憶手段か
ら取り出して前記カスタムルーティングプログラムを呼
び出し、前記サーバオブジェクトが起動時に前記サービ
スオブジェクトを前記サービス記憶手段から取り出し、
前記サーバスケルトンを呼び出すようにしている。
【0014】また、1つの計算機またはネットワークで
接続された複数の計算機のいずれかの計算機上で動作す
るクライアントオブジェクトが、同一の計算機あるいは
他の計算機上で動作するサーバオブジェクトにメッセー
ジを送信することにより所定の処理を実行させるオブジ
ェクト間通信方法において、前記計算機に、前記クライ
アントオブジェクトがメッセージを送信するために呼び
出すクライアントスタブと、前記サーバオブジェクトが
起動時に自身が処理することのできる前記メッセージの
形式を指定するルーティング情報をルーティング情報記
憶手段に記憶させるサーバ登録メソッドと前記サーバオ
ブジェクトがメッセージを受信したときに実行する前記
所定の処理を記述するためのメソッドを含むサーバスケ
ルトンと、前記メッセージと前記ルーティング情報を比
較して前記メッセージの前記ルーティング情報に対応し
た前記サーバオブジェクトでの処理が可能かどうかを判
定するカスタムルーティングプログラムが格納され、前
記サーバオブジェクトが起動したときに前記サーバ登録
メソッドを呼び前記ルーティング情報をルーティング情
報記憶手段に記憶することにより、前記クライアントオ
ブジェクトが前記クライアントスタブを呼び出すとメッ
セージを送信し、前記送信したメッセージを送信メッセ
ージキューにより保持し、ルータが前記送信メッセージ
キューからメッセージを取り出し、前記カスタムルーテ
ィングプログラムにより送信先オブジェクトを決定し、
前記ルータがメッセージを一時保管メッセージキューに
保管し、前記ルータが別のメッセージが前記メッセージ
と同一内容であれば1つのメッセージに統合し、一時保
管メッセージキュー内の前記メッセージが前記メッセー
ジ最大個数を超えるか前記メッセージがキューイングさ
れてから前記キューイング時間経過したら前記メッセー
ジを前記送信先オブジェクトに対応した受信したメッセ
ージを保持する受信メッセージキューに追加し、前記サ
ーバスケルトンが前記受信メッセージキューからメッセ
ージを取り出し、前記サーバスケルトンが取り出したメ
ッセージに対応した前記所定の処理を前記サーバオブジ
ェクトにより実行するようにしている。
【0015】また、上記のオブジェクト間通信方法にお
いて、前記クライアントスタブと前記サーバスケルトン
と前記カスタムルーティングプログラムとを1つのサー
ビスオブジェクトにまとめ、前記サービスオブジェクト
をサービスオブジェクト記憶手段により記憶し、前記ク
ライアントオブジェクトがメッセージを送信する前に前
記サービスオブジェクトを前記サービス記憶手段から取
り出して前記クライアントスタブを呼び出し、前記ルー
タが前記送信先オブジェクトを決定する前に前記サービ
スオブジェクトを前記サービス記憶手段から取り出して
前記カスタムルーティングプログラムを呼び出し、前記
サーバオブジェクトが起動時に前記サービスオブジェク
トを前記サービス記憶手段から取り出し、前記サーバス
ケルトンを呼び出すようにしている。
【0016】
【発明の実施の形態】以下、本発明の一実施の形態を詳
細に説明する。図1は本発明の一実施例における全体の
構成を示したものである。本実施例においては、計算機
1、計算機2、計算機3がネットワーク8により接続さ
れている。本実施例では、クライアントオブジェクト1
0が計算機1に、サーバオブジェクト20が計算機2
に、それぞれ別れて存在している。しかし、本発明のオ
ブジェクト間通信は、図16における計算機6のように
同一計算機上にクライアントオブジェクト10とサーバ
オブジェクト20が存在するような場合にも可能であ
り、1つの計算機に複数のクライアントオブジェクト1
0と複数のサーバオブジェクト20が混在可能である。
また、計算機3に存在する記憶装置3mは、計算機1や
計算機2に置くことも可能である。
【0017】図2はサービス提供者がインタフェース定
義言語(IDL)作成するインタフェース定義ファイル4
から、インタフェース定義変換プログラム5(IDLコン
パイラ5)を用いてクライアントスタブ1c、サーバス
ケルトン2s、ルーティングプログラム1rを生成する
方法の概略を示したものである。IDLコンパイラ5は字
句解析処理部50と構文解析処理部51、クライアント
スタブ生成部52、サーバスケルトン生成部53、ルー
ティングプログラム生成部54から構成される。字句解
析処理部50は、インタフェース定義ファイル4を読み
込みながら字句解析を行い、構文解析処理部51に読み
込んだ字句に関する情報を与える。構文解析処理部51
は、その情報を用いて構文解析を行い、クライアントス
タブ生成部52、サーバスケルトン生成部53、ルーテ
ィングプログラム生成部54を呼び出す。
【0018】図6はインタフェース定義ファイル例の構
成図である。インタフェース定義ファイル4は、CORBA
で用いられるIDL記述をさらに拡張したものである。イ
ンタフェース定義ファイル4は、外部のメソッドを呼び
出すためのネイティブメソッド記述40とサーバオブジ
ェクトが提供するサービスに対応したメソッド定義4
1、メソッド定義42等から構成される。メソッド定義
41はCORBA相当のメソッド宣言(メソッド定義1の下
に記載された「void search………Exception」の記述が
メソッド宣言に相当する)とメッセージ記述410、オ
プションとしてマッチングオプション記述411から構
成される。
【0019】このマッチングオプション記述411は、
CORBAのIDL記述が言語非依存であるのと同様に、言語非
依存な形式で記述する。この例では、メッセージ記述4
10は、通信されるメッセージのパターンがsearch $ke
ywordであることを示している。ここで、$で始まる字句
はパラメータであることを示す。また、マッチングオプ
ション記述411は、ネイティブメソッド記述40で宣
言されたisSupportCategory()メソッドを用いて、$keyw
ordパラメータが処理可能かどうかを判定している。メ
ッセージ記述410はオプションとしてキューイングオ
プション記述4100を含むことが可能である。この例
では、メッセージの統合処理で用いるメッセージ最大数
maximumを100個に、メッセージのキューイング最長時間
を60秒に指定している。メッセージの統合処理について
は後述する。
【0020】図7は図6で示したインタフェース記述フ
ァイル例であるインタフェース記述ファイル4からIDL
コンパイラでコンパイルして生成したクライアントスタ
ブ例の構成を示したものである。生成したクライアント
スタブ1cはソースレベルで記述されている。この例で
は変換後のプログラミング言語の例としてC++を用いて
いる。コードレベルのクライアントスタブ1cはクライ
アントスタブヘッダファイル1cf1とクライアントス
タブソースファイル1cf2とをコンパイルして作成す
る。クライアントスタブヘッダファイル1cf1は、ク
ライアントオブジェクト10が呼び出すメッセージング
メソッド宣言1cf11、メッセージングメソッド宣言
1cf12等から構成される。クライアントスタブソー
スファイル1cf2は、メッセージングメソッド定義1
cf21、メッセージングメソッド定義1cf22等か
ら構成される。
【0021】図3はクライアントスタブ生成部52によ
るクライアントスタブ生成処理フロー図を示したもので
ある。クライアントスタブ生成処理520は、構文解析
処理部51から呼び出され、インタフェース定義ファイ
ル4のメソッド定義41から順に解析し、メソッド定義
があるかどうかの判定521により以下の処理を繰り返
し、定義がなくなれば終了527する。
【0022】メソッド定義41を変換するときには、メ
ッセージングメソッド宣言コード生成522により、メ
ッセージングメソッド宣言1cf11とメッセージング
メソッド定義1cf21のプロトタイプ宣言部(メッセ
ージングメソッド定義の下に記述された「void Digital
Library………Exception)」に相当する)(C++言語では
宣言部をプロトタイプ宣言部という)を生成する。次
に、メッセージパターン文字列定義コード生成523に
より、パラメータを含まないメッセージ文字列を作成す
るコードをメッセージングメソッド定義1cf21に生
成する。パラメータがある場合には、パラメータがある
かどうかの判定524によりパラメータ設定コード生成
525を繰り返す。パラメータ設定コード生成525
は、前記メッセージ文字列にパラメータ文字列を追加す
るコードをメッセージングメソッド定義1cf21に生
成する。最後に、メッセージ送信コード生成526によ
り、インタフェース名("DigitalLibrary")とメッセー
ジ文字列をパラメータにしてメッセージ通信ライブラリ
11(図1)のメッセージ送信関数を呼び出すコードを
メッセージングメソッド定義1cf21に生成する。
【0023】図8は図6で示したインタフェース記述フ
ァイル4からIDLコンパイラでコンパイルして生成した
サーバスケルトン例の構成を示したものである。生成し
たサーバスケルトン2sはソースレベルで記述されてい
る。この例でも変換後のプログラミング言語の例として
C++を用いている。コードレベルのサーバスケルトン2
sはサーバスケルトンヘッダファイル2sf1とサーバ
スケルトンスタブソースファイル2sf2とをコンパイ
ルして作成する。サーバスケルトンヘッダファイル2s
f1は、サーバオブジェクト20の起動時にルーティン
グ情報テーブル(図1)へ登録するために呼び出される
登録メソッド宣言2sf10と、メッセージ通信ライブ
ラリ22(図1)から呼び出されるメッセージングハン
ドラ宣言2sf11、メッセージングハンドラ宣言2s
f12等から構成される。サーバスケルトンソースファ
イル2sf2は、登録メソッド定義2sf20とメッセ
ージングハンドラ定義2sf21、メッセージングハン
ドラ定義2sf22等から構成される。
【0024】図4はサーバスケルトン生成部53による
サーバスケルトン生成処理フロー図を示したものであ
る。サーバスケルトン生成処理530は、構文解析処理
部51から呼び出される。
【0025】登録メソッド宣言コード生成531は、登
録メソッド宣言2sf10と登録メソッド定義2sf2
0のプロトタイプ宣言部(登録メソッド定義の下に記述
された「void Digital………register()」に相当する)
を生成する。サーバ登録コード生成532は、インタフ
ェース名("DigitalLibrary")を引数にして、サーバオ
ブジェクト20(図1)をルーティング情報テーブル
(図1)に登録するコードを登録メソッド定義2sf2
0に生成する。
【0026】次に、インタフェース定義ファイル4(図
6)のメソッド定義41から順に解析し、メソッド定義
があるかどうかの判定533により以下の処理を繰り返
し、定義がなくなれば終了536する。メッセージハン
ドラ宣言コード生成534は、メッセージハンドラ宣言
2sf11、メッセージハンドラ宣言2sf12等とメ
ッセージハンドラ定義2sf21、メッセージハンドラ
定義2sf22等のプロトタイプ宣言部(メッセージハ
ンドラ定義1の下に記述された「void Digital………ke
yword)」に相当する)を生成する。メッセージハンドラ
定義の本体には、サーバオブジェクトが提供するサービ
スの本来の処理を記述する。該本来の処理はサーバオブ
ジェクトのプログラマが記述する。また、メッセージハ
ンドラ登録コード生成535は、メッセージ記述410
で指定されたメッセージパターンのパラメータを正規表
現に変換した文字列とメッセージハンドラを引数にして
メッセージ通信ライブラリ21(図1)に登録するコー
ドを登録メソッド定義2sf20に生成する。
【0027】図9は図6で示したインタフェース記述フ
ァイル4からIDLコンパイラでコンパイルして生成した
ルーティングプログラム例の構成を示したものである。
生成したルーティングプログラム1rはソースレベルで
記述されている。この例でも変換後のプログラミング言
語の例としてC++を用いている。コードレベルのルーテ
ィングプログラム1rはルーティングプログラムヘッダ
ファイル1rf1とルーティングプログラムソースファ
イル1rf2とをコンパイルして作成する。ルーティン
グプログラムヘッダファイル1rf1は、インタフェー
ス名変数宣言(ルーティングプログラムクラス宣言の下
に記述された「static………InterfaceName」に相当す
る)と、キューイングオプション記述4100(図6)
から変換されたキューイングオプション変数宣言1rf
11と、ルータ12(図1)が呼び出すマッチングメソ
ッド宣言1rf12から構成される。ルーティングプロ
グラムソースファイル1rf2は、インタフェース名変
数定義(ルーティングプログラムクラス定義の下に記述
された「static………″DigitalLibrary″」に相当す
る)と、ネイティブメソッド記述40から変換された外
部メソッド宣言1rf20と、キューイングオプション
変数定義1rf21、マッチングメソッド定義1rf2
2から構成される。
【0028】図5はルーティングプログラム生成部54
によるルーティングプログラム生成処理フロー図を示し
たものである。ルーティングプログラム生成処理540
0は、構文解析処理部51から呼び出される。インタフ
ェース名変数設定コード生成5401は、インタフェー
ス名("DigitalLibrary")を用いてインタフェース名変
数(上記のインタフェース名変数定義に相当)を初期化
するコードを生成する。次に、外部メソッド宣言がある
かどうかの判定5402を行い、ある場合には外部メソ
ッド宣言コード生成5403によりネイティブメソッド
記述40から変換された外部メソッド宣言1rf20を
生成する。前記判定5402がどちらの場合でも、キュ
ーイングオプション記述があるかどうかの判定5404
を行い、ある場合にはキューイングオプション変数指定
値設定コード生成5405によりキューイングオプショ
ン記述4100から変換されたキューイングオプション
変数宣言1rf11とキューイングオプション変数定義
1rf21を生成する。前記判定がどちらの場合でも、
マッチングメソッド宣言コード生成5406により、マ
ッチングメソッド宣言1rf12とマッチングメソッド
定義1rf22のプロトタイプ宣言部(マッチングメソ
ッド定義の下に記述された「boolean………message)」
に相当する)を生成する。次に、メッセージパターン比
較コード生成5407は、メッセージ記述410で指定
されたメッセージパターンのパラメータを正規表現に変
換した文字列とマッチングメソッド定義1rf22の引
数であるメッセージとを正規表現で比較し、一致しなけ
れば失敗を表すfalseを返すコードをマッチングメソッ
ド定義1rf22に生成する。最後に、マッチングオプ
ション記述があるかどうかの判定5408を行い、ある
場合にはマッチングオプション記述実行コード生成54
09によりマッチングオプション記述411を変換した
コードをマッチングメソッド定義1rf22に生成す
る。マッチングオプション記述がある場合のルーティン
グプログラムをカスタムルーティングプログラムと呼
ぶ。前記判定がどちらの場合でも、ルーティングプログ
ラム生成部54の処理は終了5410する。
【0029】図10はメッセージキューの構造を示した
ものである。図1に示した送信メッセージキュー1m
1、受信メッセージキュー1m2、転送用送信メッセー
ジキュー1m3、一時保管メッセージキュー1m4、送
信メッセージキュー2m1、受信メッセージキュー12
m2、転送用送信メッセージキュー2m3、一時保管メ
ッセージキュー2m4は、使用目的は異なるが全て図1
0に示したメッセージキューの構造をもっている。
【0030】メッセージキュー1m1は、メッセージキ
ューを一意に識別するメッセージキューID1m10とメ
ッセージ1m11、メッセージ1m12等から構成され
る。メッセージ1m11は、送信先オブジェクトを表す
送信先メッセージキューID1m110と、送信元のオブ
ジェクトを表す送信元メッセージキューIDリスト1m1
11と、送信元オブジェクトが利用しようとしているサ
ービスのインタフェース名1m112と、メッセージの
本体を表すメッセージ本体データ1m113と、キュー
イングのタイムアウト時刻1m114から構成される。
後述のメッセージ統合化を行う場合を考慮すると送信元
オブジェクトは複数存在するので、送信元メッセージキ
ューIDリスト1m111は、メッセージキューID1m1
111、メッセージキューID1m1112等で構成され
る。
【0031】図11はメッセージキュー情報テーブル3
0(図1)の構造を示したものである。メッセージキュ
ー情報テーブル30は、メッセージキュー情報301、
メッセージキュー情報302等で構成される。メッセー
ジキュー情報301は、メッセージキューID3010と
そのメッセージキューが存在する計算機のアドレスを表
す計算機アドレス3011から構成される。
【0032】図12はルーティング情報テーブル31
(図1)の構造を示したものである。ルーティング情報
テーブル31は、サーバオブジェクトが提供するサービ
スに対応するインタフェース情報311、インタフェー
ス情報312等で構成される。インタフェース情報31
1は、インタフェース名3110と、ルータがメッセー
ジの転送先を決定するために使用するルーティングプロ
グラムを表すルーティングプログラム指定データ311
1と、このインタフェースをサポートしているサーバオ
ブジェクト20を表すサーバオブジェクトテーブル31
12で構成される。サーバオブジェクトテーブル311
2は、本発明では1つのインタフェースをサポートする
サーバオブジェクト20は複数存在することが可能であ
るので、それぞれのサーバオブジェクト20に対応する
受信メッセージキュー2m2のメッセージキューID31
121、メッセージキューID31122等から構成され
る。
【0033】図13はクライアントスタブ1cによるク
ライアントスタブ処理フロー図を示したものである。ク
ライアントスタブ処理1ca0は、クライアントオブジ
ェクト10から呼び出される。メッセージ文字列生成1
ca1は、クライアントオブジェクト10が呼び出した
メソッドに対応したメッセージ文字列を作成する。メッ
セージパターンパラメータ設定1ca2は、メソッドに
渡された引数をパラメータとしてメッセージ文字列に設
定する。メッセージのインタフェース名とメッセージキ
ューID設定1ca3は、クライアントオブジェクトの送
信メッセージキューID1m10をメッセージキューID1
m1111に、そのメッセージの送信先を指定するイン
タフェース名をインタフェース名1m112に、メッセ
ージ文字列をメッセージ本体データ1m113に、それ
ぞれ設定してメッセージ1m11を作成する。最後に、
メッセージの送信メッセージキュー格納1ca4は、作
成したメッセージ1m11をメッセージキュー1m1に
設定し、終了1ca5する。
【0034】図14はサーバスケルトン2sによるサー
バスケルトン処理フロー図を示したものである。サーバ
スケルトン処理2sa0は、メッセージ通信ライブラリ
21から呼び出される。インタフェース名とメッセージ
キューIDのルーティング情報テーブル登録2sa1は、
サーバオブジェクト20がサポートするインタフェース
名をルーティング情報テーブル31内のインタフェース
情報311等のインタフェース名3110から検索し、
インタフェース名3110が見つかればサーバオブジェ
クトテーブル3112にサーバオブジェクト20の受信
メッセージキューID2m2をメッセージキューID311
21として登録する。メッセージパターンとメッセージ
ハンドラの登録2sa2は、メッセージハンドラ定義2
sf21とそのメッセージハンドラを起動するメッセー
ジパターンをメッセージ通信ライブラリに登録する。受
信メッセージキューからのメッセージ取得2sa3は、
メッセージキュー2m2からメッセージ1m11を取り
出す。次に、そのメッセージ1m11のメッセージ本体
データ1m113と前記メッセージパターンを比較する
ことによりメッセージハンドラがあるかどうかの判定2
sa4を行い、なければエラー終了2sa5する。メッ
セージハンドラがあれば、メッセージハンドラ起動2s
a6によりメッセージハンドラをメッセージから取り出
したパラメータを引数にして呼び出す。その後は、受信
メッセージキューからのメッセージ取得2sa3から処
理を繰り返す。
【0035】図15はルータ1rによるメッセージルー
ティング処理フロー図を示したものである。まず、ルー
タ1rは任意の送信メッセージキューの先頭メッセージ
のインタフェース名取得1ra01により、配送しよう
とする任意のメッセージ1m11を1つ選び、そのイン
タフェース名1m112を取得する。ルーティング情報
テーブルに存在するかどうかの判定1ra02は、前記
インタフェース名1m112をルーティング情報テーブ
ル31内のインタフェース情報311等のインタフェー
ス名3110から検索する。
【0036】インタフェース名3110が見つからなけ
れば、対応する受信キューへのエラーメッセージ格納1
ra03により、エラーメッセージを受信キュー1m2
に格納し、任意の送信メッセージキューの先頭メッセー
ジのインタフェース名取得1ra01の処理を行う。イ
ンタフェース名3110が見つかれば、ルーティングプ
ログラムのマッチングメソッド呼び出し1ra04は、
ルーティングプログラム指定データ3111で指定され
たルーティングプログラム1rのマッチングメソッド1
rf22をメッセージ本体データ1m113を引数にし
て呼び出す。この結果を、マッチングが成功したかどう
かの判定1ra05により、配送先の決定が成功したか
どうかを決める。配送先がない場合には、前記の対応す
る受信キューへのエラーメッセージ格納1ra03の処
理を行う。配送先が見つかった場合には、一時保管メッ
セージキューへのメッセージ格納1ra06により、メ
ッセージ1m11をメッセージキュー1m4に格納す
る。このとき、1m11内の送信先メッセージキューID
1m110には、サーバオブジェクトテーブル3112
のメッセージキューID31121を格納し、格納時刻に
キューイングオプション変数定義1rf21で指定され
たタイムアウト時間を加えた時刻をタイムアウト時刻1
m114に格納する。さらに、メッセージキューIDがあ
るかどうかの判定1ra07により、サーバオブジェク
トテーブル内にメッセージキューID31122等がある
とわかれば、前記の一時保管メッセージキューへのメッ
セージ格納1ra06の処理を行う。
【0037】メッセージキューIDがなければ、キューイ
ング指定があるかどうかの判定1ra08を行う。キュ
ーイング指定は、メッセージ統合処理に関するパラメー
タ指定であり、キューイングオプション変数定義1rf
21の値が用いられる。これらの値はデフォルトで0で
あり、0であればキューイング指定がないものとし、メ
ッセージの統合を行わなず、メッセージがあるかどうか
の判定1ra11の処理を行う。キューイング指定があ
れば、メッセージ最大個数に達したかどうかの判定を行
う。一時保管メッセージキュー1m4の送信元メッセー
ジメッセージキューIDリスト1m111内のメッセージ
キューIDの個数が統合されたメッセージの個数であるの
で、これがメッセージ最大個数指定より大きければ、メ
ッセージがあるかどうかの判定1ra11の処理を行
う。そうでなければ、タイムアウト時間が過ぎたかどう
かの判定を行う。現在時刻がタイムアウト時刻1m11
4を過ぎていたら、メッセージがあるかどうかの判定1
ra11の処理を行う。そうでなければ、次のメッセー
ジを処理するために、任意の送信メッセージキューの先
頭メッセージのインタフェース取得1ra01の処理を
行う。
【0038】メッセージがあるかどうかの判定1ra1
1は、一時保管メッセージキュー1m4を検索し、メッ
セージ1m11のタイムアウト時刻1m114を過ぎて
いたら、計算機アドレスが同一かどうかの判定1ra1
2の処理を行う。そのようなメッセージがなければ、次
のメッセージを処理するために、任意の送信メッセージ
キューの先頭メッセージのインタフェース取得1ra0
1の処理を行う。計算機アドレスが同一かどうかの判定
1ra12は、メッセージ1m11の送信先メッセージ
キューID1m110と、メッセージキュー情報テーブル
30のメッセージキュー情報301、メッセージキュー
情報302等のメッセージキューID3010とを比較
し、一致したメッセージキュー情報301の計算機アド
レス3011取得する。その計算機アドレス3011が
現在の計算機アドレスでなければ、他計算機の転送用送
信メッセージキューへの転送1ra13の処理を行い、
例えば計算機アドレス3011の計算機2の転送用送信
メッセージキュー2m3にメッセージ1m11を転送す
る。前記の判定がどちら場合でも、次に対応する受信メ
ッセージキューへのメッセージ転送1ra14の処理を
行い、例えばルータ22はメッセージ1m11を送信先
メッセージキューID1m110に対応した受信メッセー
ジキュー2m2に転送する。この後、一時保管メッセー
ジキュー1m4内の他のメッセージを処理するために、
メッセージがあるかどうかの判定1ra11から処理を
繰り返す。
【0039】以上が本発明の一実施の形態の説明である
が、以下に他の実施の形態を詳細に説明する。図17は
サービスオブジェクトの構造を示したものである。サー
ビスオブジェクト70はインタフェース名700と前記
実施例におけるクライアントスタブ1c、サーバスケル
トン2s、ルーティングプログラム1rから構成され
る。
【0040】図16は動的サービスオブジェクトローダ
を用いたオブジェクト間通信システムの構成を示したも
のである。本構成では、前記実施例における全体構成に
動的オブジェクトサービスローダ6d1と、動的オブジ
ェクトサービスローダ6d2と、動的オブジェクトサー
ビスローダ6d3と、サービスオブジェクト70を格納
する記憶装置7mとが追加されている。動的オブジェク
トサービスローダ6d1は、クライアントオブジェクト
10から呼び出され、サービスオブジェクト70を動的
にロードし、そのクライアントスタブ1cをクライアン
トオブジェクト10に渡す。そのあとは、クライアント
オブジェクト10は前記実施例と同様にクライアントス
タブ1cを利用する。動的オブジェクトサービスローダ
6d2、動的オブジェクトサービスローダ6d3につい
ても、サーバオブジェクト20、ルータ22において同
様の処理を行う。また、記憶装置7mは計算機6や計算
機3上に置くことも可能である。
【0041】
【発明の効果】以上にのべた方法により、本発明では以
下の効果を得ることができる。第1には、クライアント
オブジェクトがインタフェース名を指定して通信するこ
とにより、サーバオブジェクトを明示的に指定すること
なくサービスを利用することができる。第2には、サー
ビスを提供するオブジェクトは1つとは限らず、ルータ
が複数の通信先へメッセージを配送することにより、ク
ライアントオブジェクトのプログラマが意識することな
く、1対多の通信が可能となる。第3には、サービスを
提供するオブジェクトが追加、削除、変更されたときに
も、サーバオブジェクトがルーティング情報(自らの提
供するサービスに関する情報)を適宜更新することによ
り、ルータがクライアントオブジェクトに影響を与える
ことなくメッセージを配送することができる。第4に
は、ルータが通信先を決定するルーティング方法をサー
ビスの提供者、サーバオブジェクトのプログラマがカス
タマイズすることにより、より細かなメッセージの配送
制御が可能となる。第5には、ルータによる同一内容の
メッセージの統合方法をサービスの提供者、サーバオブ
ジェクトのプログラマが指定することにより、メッセー
ジ量を削減し、サーバオブジェクトの負荷も低減するこ
とができる。第6には、クライアントスタブ、サーバス
ケルトン、ルーティングプログラムを1つのサービスオ
ブジェクトとしてまとめ、実行時にクライアントオブジ
ェクト、サーバオブジェクト、ルータがそれぞれ動的に
ロードすることにより、プログラムモジュールを一元管
理し、アプリケーションインストールを簡略化すること
ができる。
【図面の簡単な説明】
【図1】本発明の一実施例における全体構成を示す図で
ある。
【図2】IDLコンパイラの構成及びインタフェース定義
ファイル、クライアントスタブ、サーバスケルトン、ル
ーティングプログラムの関連を示す図である。
【図3】クライアントスタブ生成処理フローを示す図で
ある。
【図4】サーバスケルトン生成処理フローを示す図であ
る。
【図5】ルーティングプログラム生成処理フローを示す
図である。
【図6】インタフェース定義ファイル例の構成を示す図
である。
【図7】クライアントスタブ例の構成を示す図である。
【図8】サーバスケルトン例の構成を示す図である。
【図9】ルーティングプログラム例の構成を示す図であ
る。
【図10】メッセージキューの構造を示す図である。
【図11】メッセージキュー情報テーブルの構造を示す
図である。
【図12】ルーティング情報テーブルの構造を示す図で
ある。
【図13】クライアントスタブ処理フローを示す図であ
る。
【図14】サーバスケルトン処理フローを示す図であ
る。
【図15】メッセージルーティング処理フローを示す図
である。
【図16】動的サービスオブジェクトローダを用いたオ
ブジェクト間通信システムの構成を示す図である。
【図17】サービスオブジェクトの構造を示す図であ
る。
【符号の説明】
1〜3、6、7 計算機 10 クライアントオブジェクト 20 サーバオブジェクト 1c クライアントスタブ 2s サーバスケルトン 11、21 メッセージ通信ライブラリ 1m1、2m1 送信メッセージキュー 1m2、2m2 受信メッセージキュー 12、22 ルータ 1r、2r ルーティングプログラム 1m3、2m3 転送用送信メッセージキュー 1m4、2m4 一時保管メッセージキュー 3m、7m 記憶装置 8 ネットワーク 30 メッセージキュー情報テーブル 31 ルーティング情報テーブル 4 インタフェース定義ファイル 5 IDLコンパイラ 50 字句解析処理部 51 構文解析処理部 52 クライアントスタブ生成部 53 サーバスケルトン生成部 54 ルーティングプログラム生成部 6d1、6d2、6d3 動的サービスオブジェクトロ
ーダ 70 サービスオブジェクト

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 1つの計算機またはネットワークで接続
    された複数の計算機のいずれかの計算機上で動作するク
    ライアントオブジェクトが、同一の計算機あるいは他の
    計算機上で動作するサーバオブジェクトにメッセージを
    送信することにより所定の処理を実行させるオブジェク
    ト間通信方法におけるインタフェース定義記述の変換方
    法であって、 インタフェース定義言語により記述する前記の所定の処
    理に必要なデータおよび処理結果を記述するメソッド定
    義記述および該メソッド定義記述に対応して送信される
    メッセージの形式を指定するメッセージ記述をひとつ以
    上含んだインタフェース定義記述をインタフェース定義
    変換プログラムにより変換し、 前記クライアントオブジェクトがメッセージを送信する
    ために呼び出すクライアントスタブと、 前記サーバオブジェクトが起動時に自身が処理すること
    のできる前記メッセージの形式を指定するルーティング
    情報をルーティング情報記憶手段に記憶させるサーバ登
    録メソッドと前記サーバオブジェクトがメッセージを受
    信したときに実行する前記所定の処理を記述するための
    メソッドを含むサーバスケルトンと、 前記メッセージと前記ルーティング情報を比較して前記
    メッセージの前記ルーティング情報に対応した前記サー
    バオブジェクトでの処理が可能かどうかを判定するルー
    ティングプログラムとを生成することを特徴とするイン
    タフェース定義記述の変換方法。
  2. 【請求項2】 1つの計算機またはネットワークで接続
    された複数の計算機のいずれかの計算機上で動作するク
    ライアントオブジェクトが、同一の計算機あるいは他の
    計算機上で動作するサーバオブジェクトにメッセージを
    送信することにより所定の処理を実行させるオブジェク
    ト間通信方法において、 前記計算機に請求項1記載の生成したクライアントスタ
    ブとサーバスケルトンとルーティングプログラムを格納
    し、 前記サーバオブジェクトが起動したときに前記サーバ登
    録メソッドを呼び前記ルーティング情報をルーティング
    情報記憶手段に記憶することにより、前記クライアント
    オブジェクトが前記クライアントスタブを呼び出すとメ
    ッセージを送信し、前記送信したメッセージを送信メッ
    セージキューにより保持し、 ルータが前記送信メッセージキューからメッセージを取
    り出し、前記ルーティングプログラムにより送信先オブ
    ジェクトを決定し、前記送信先オブジェクトに対応した
    受信したメッセージを保持する受信メッセージキューに
    追加し、 前記サーバスケルトンが前記受信メッセージキューから
    メッセージを取り出し、前記サーバスケルトンが取り出
    したメッセージに対応した前記所定の処理を前記サーバ
    オブジェクトにより実行することを特徴とするオブジェ
    クト間通信方法。
  3. 【請求項3】 請求項1記載のインタフェース定義記述
    の変換方法において、 前記インタフェース定義記述のメッセージ記述にメッセ
    ージ最大個数指定とキューイング時間指定からなるキュ
    ーイングオプション記述を追加し、 前記メッセージと前記ルーティング情報を比較して前記
    メッセージの前記ルーティング情報に対応した前記サー
    バオブジェクトでの処理が可能かどうかを判定し、指定
    があれば前記キューイングオプション判定処理を行う、
    前記メッセージの最大個数指定と前記キューイング時間
    指定を追加したルーティングプログラムを生成すること
    を特徴とするインタフェース定義記述の変換方法。
  4. 【請求項4】 1つの計算機またはネットワークで接続
    された複数の計算機のいずれかの計算機上で動作するク
    ライアントオブジェクトが、同一の計算機あるいは他の
    計算機上で動作するサーバオブジェクトにメッセージを
    送信することにより所定の処理を実行させるオブジェク
    ト間通信方法において、 前記計算機に請求項3記載の生成したクライアントスタ
    ブとサーバスケルトンとルーティングプログラムを格納
    し、 前記サーバオブジェクトが起動したときに前記サーバ登
    録メソッドを呼び前記ルーティング情報をルーティング
    情報記憶手段に記憶することにより、前記クライアント
    オブジェクトが前記クライアントスタブを呼び出すとメ
    ッセージを送信し、前記送信したメッセージを送信メッ
    セージキューにより保持し、 ルータが前記送信メッセージキューからメッセージを取
    り出し、前記ルーティングプログラムにより送信先オブ
    ジェクトを決定し、 前記ルータがメッセージを一時保管メッセージキューに
    保管し、前記ルータが別のメッセージが前記メッセージ
    と同一内容であれば1つのメッセージに統合し、一時保
    管メッセージキュー内の前記メッセージが前記メッセー
    ジ最大個数を超えるか前記メッセージがキューイングさ
    れてから前記キューイング時間経過したら前記メッセー
    ジを前記送信先オブジェクトに対応した受信したメッセ
    ージを保持する受信メッセージキューに追加し、前記サ
    ーバスケルトンが前記受信メッセージキューからメッセ
    ージを取り出し、前記サーバスケルトンが取り出したメ
    ッセージに対応した前記所定の処理を前記サーバオブジ
    ェクトにより実行することを特徴とするオブジェクト間
    通信方法。
  5. 【請求項5】 請求項1記載のインタフェース定義記述
    の変換方法において、 前記インタフェース定義記述のメソッド定義記述にマッ
    チングオプション記述を追加し、 前記メッセージと前記ルーティング情報を比較して前記
    メッセージの前記ルーティング情報に対応した前記サー
    バオブジェクトでの処理が可能かどうかを判定し、前記
    マッチングオプション判定処理を行うカスタムルーティ
    ングプログラムを前記ルーティングプログラムの替わり
    に生成することを特徴とするインタフェース定義記述の
    変換方法。
  6. 【請求項6】 1つの計算機またはネットワークで接続
    された複数の計算機のいずれかの計算機上で動作するク
    ライアントオブジェクトが、同一の計算機あるいは他の
    計算機上で動作するサーバオブジェクトにメッセージを
    送信することにより所定の処理を実行させるオブジェク
    ト間通信方法において、 前記計算機に請求項5記載の生成したクライアントスタ
    ブとサーバスケルトンとカスタムルーティングプログラ
    ムを格納し、 前記サーバオブジェクトが起動したときに前記サーバ登
    録メソッドを呼び前記ルーティング情報をルーティング
    情報記憶手段に記憶することにより、前記クライアント
    オブジェクトが前記クライアントスタブを呼び出すとメ
    ッセージを送信し、前記送信したメッセージを送信メッ
    セージキューにより保持し、 ルータが前記送信メッセージキューからメッセージを取
    り出し、前記カスタムルーティングプログラムにより送
    信先オブジェクトを決定し、前記送信先オブジェクトに
    対応した受信したメッセージを保持する受信メッセージ
    キューに追加し、前記サーバスケルトンが前記受信メッ
    セージキューからメッセージを取り出し、前記サーバス
    ケルトンが取り出したメッセージに対応した前記所定の
    処理を前記サーバオブジェクトにより実行することを特
    徴とするオブジェクト間通信方法。
  7. 【請求項7】 請求項5記載のインタフェース定義記述
    の変換方法において、 前記インタフェース定義記述のメッセージ記述にメッセ
    ージ最大個数指定とキューイング時間指定からなるキュ
    ーイングオプション記述を追加し、 前記メッセージと前記ルーティング情報を比較して前記
    メッセージの前記ルーティング情報に対応した前記サー
    バオブジェクトでの処理が可能かどうかを判定し、指定
    があれば前記キューイングオプション判定処理を行う、
    前記メッセージの最大個数指定と前記キューイング時間
    指定を追加したカスタムルーティングプログラムを生成
    することを特徴とするインタフェース定義記述の変換方
    法。
  8. 【請求項8】 1つの計算機またはネットワークで接続
    された複数の計算機のいずれかの計算機上で動作するク
    ライアントオブジェクトが、同一の計算機あるいは他の
    計算機上で動作するサーバオブジェクトにメッセージを
    送信することにより所定の処理を実行させるオブジェク
    ト間通信方法において、 前記計算機に請求項7記載の生成したクライアントスタ
    ブとサーバスケルトンとカスタムルーティングプログラ
    ムを格納し、 前記サーバオブジェクトが起動したときに前記サーバ登
    録メソッドを呼び前記ルーティング情報をルーティング
    情報記憶手段に記憶することにより、前記クライアント
    オブジェクトが前記クライアントスタブを呼び出すとメ
    ッセージを送信し、前記送信したメッセージを送信メッ
    セージキューにより保持し、 ルータが前記送信メッセージキューからメッセージを取
    り出し、前記カスタムルーティングプログラムにより送
    信先オブジェクトを決定し、 前記ルータがメッセージを一時保管メッセージキューに
    保管し、前記ルータが別のメッセージが前記メッセージ
    と同一内容であれば1つのメッセージに統合し、一時保
    管メッセージキュー内の前記メッセージが前記メッセー
    ジ最大個数を超えるか前記メッセージがキューイングさ
    れてから前記キューイング時間経過したら前記メッセー
    ジを前記送信先オブジェクトに対応した受信したメッセ
    ージを保持する受信メッセージキューに追加し、前記サ
    ーバスケルトンが前記受信メッセージキューからメッセ
    ージを取り出し、前記サーバスケルトンが取り出したメ
    ッセージに対応した前記所定の処理を前記サーバオブジ
    ェクトにより実行することを特徴とするオブジェクト間
    通信方法。
  9. 【請求項9】 請求項2または請求項4記載のオブジェ
    クト間通信方法において、 前記クライアントスタブと前記サーバスケルトンと前記
    ルーティングプログラムとを1つのサービスオブジェク
    トにまとめ、前記サービスオブジェクトをサービスオブ
    ジェクト記憶手段により記憶し、 前記クライアントオブジェクトがメッセージを送信する
    前に前記サービスオブジェクトを前記サービス記憶手段
    から取り出して前記クライアントスタブを呼び出し、 前記ルータが前記送信先オブジェクトを決定する前に前
    記サービスオブジェクトを前記サービス記憶手段から取
    り出して前記ルーティングプログラムを呼び出し、 前記サーバオブジェクトが起動時に前記サービスオブジ
    ェクトを前記サービス記憶手段から取り出し、前記サー
    バスケルトンを呼び出すことを特徴とするオブジェクト
    間通信方法。
  10. 【請求項10】 請求項6または請求項8記載のオブジ
    ェクト間通信方法において、 前記クライアントスタブと前記サーバスケルトンと前記
    カスタムルーティングプログラムとを1つのサービスオ
    ブジェクトにまとめ、前記サービスオブジェクトをサー
    ビスオブジェクト記憶手段により記憶し、 前記クライアントオブジェクトがメッセージを送信する
    前に前記サービスオブジェクトを前記サービス記憶手段
    から取り出して前記クライアントスタブを呼び出し、 前記ルータが前記送信先オブジェクトを決定する前に前
    記サービスオブジェクトを前記サービス記憶手段から取
    り出して前記カスタムルーティングプログラムを呼び出
    し、 前記サーバオブジェクトが起動時に前記サービスオブジ
    ェクトを前記サービス記憶手段から取り出し、前記サー
    バスケルトンを呼び出すことを特徴とするオブジェクト
    間通信方法。
  11. 【請求項11】 1つの計算機またはネットワークで接
    続された複数の計算機のいずれかの計算機上で動作する
    クライアントオブジェクトが、同一の計算機あるいは他
    の計算機上で動作するサーバオブジェクトにメッセージ
    を送信することにより所定の処理を実行させるオブジェ
    クト間通信方法において、 前記計算機に、前記クライアントオブジェクトがメッセ
    ージを送信するために呼び出すクライアントスタブと、 前記サーバオブジェクトが起動時に自身が処理すること
    のできる前記メッセージの形式を指定するルーティング
    情報をルーティング情報記憶手段に記憶させるサーバ登
    録メソッドと前記サーバオブジェクトがメッセージを受
    信したときに実行する前記所定の処理を記述するための
    メソッドを含むサーバスケルトンと、 前記メッセージと前記ルーティング情報を比較して前記
    メッセージの前記ルーティング情報に対応した前記サー
    バオブジェクトでの処理が可能かどうかを判定するカス
    タムルーティングプログラムが格納され、 前記サーバオブジェクトが起動したときに前記サーバ登
    録メソッドを呼び前記ルーティング情報をルーティング
    情報記憶手段に記憶することにより、前記クライアント
    オブジェクトが前記クライアントスタブを呼び出すとメ
    ッセージを送信し、前記送信したメッセージを送信メッ
    セージキューにより保持し、 ルータが前記送信メッセージキューからメッセージを取
    り出し、前記カスタムルーティングプログラムにより送
    信先オブジェクトを決定し、 前記ルータがメッセージを一時保管メッセージキューに
    保管し、前記ルータが別のメッセージが前記メッセージ
    と同一内容であれば1つのメッセージに統合し、一時保
    管メッセージキュー内の前記メッセージが前記メッセー
    ジ最大個数を超えるか前記メッセージがキューイングさ
    れてから前記キューイング時間経過したら前記メッセー
    ジを前記送信先オブジェクトに対応した受信したメッセ
    ージを保持する受信メッセージキューに追加し、前記サ
    ーバスケルトンが前記受信メッセージキューからメッセ
    ージを取り出し、前記サーバスケルトンが取り出したメ
    ッセージに対応した前記所定の処理を前記サーバオブジ
    ェクトにより実行することを特徴とするオブジェクト間
    通信方法。
  12. 【請求項12】 請求項11記載のオブジェクト間通信
    方法において、 前記クライアントスタブと前記サーバスケルトンと前記
    カスタムルーティングプログラムとを1つのサービスオ
    ブジェクトにまとめ、前記サービスオブジェクトをサー
    ビスオブジェクト記憶手段により記憶し、 前記クライアントオブジェクトがメッセージを送信する
    前に前記サービスオブジェクトを前記サービス記憶手段
    から取り出して前記クライアントスタブを呼び出し、 前記ルータが前記送信先オブジェクトを決定する前に前
    記サービスオブジェクトを前記サービス記憶手段から取
    り出して前記カスタムルーティングプログラムを呼び出
    し、 前記サーバオブジェクトが起動時に前記サービスオブジ
    ェクトを前記サービス記憶手段から取り出し、前記サー
    バスケルトンを呼び出すことを特徴とするオブジェクト
    間通信方法。
JP5109097A 1997-02-19 1997-02-19 インタフェース定義記述の変換方法およびオブジェクト間通信方法 Pending JPH10232780A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP5109097A JPH10232780A (ja) 1997-02-19 1997-02-19 インタフェース定義記述の変換方法およびオブジェクト間通信方法
EP98102297A EP0860776A1 (en) 1997-02-19 1998-02-10 Inter-object communication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5109097A JPH10232780A (ja) 1997-02-19 1997-02-19 インタフェース定義記述の変換方法およびオブジェクト間通信方法

Publications (1)

Publication Number Publication Date
JPH10232780A true JPH10232780A (ja) 1998-09-02

Family

ID=12877127

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5109097A Pending JPH10232780A (ja) 1997-02-19 1997-02-19 インタフェース定義記述の変換方法およびオブジェクト間通信方法

Country Status (2)

Country Link
EP (1) EP0860776A1 (ja)
JP (1) JPH10232780A (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2790351A1 (fr) * 1999-02-25 2000-09-01 Cit Alcatel Procede de communication entre objets distants
DE19910345A1 (de) * 1999-03-09 2000-09-21 Siemens Ag Verfahren zur Nachrichtenübertragung zwischen einer einem ersten Prozeß zugewiesenen Clientinstanz und wenigstens einer mindestens einem weiteren Prozeß zugewiesenen Serverinstanz innerhalb eines verteilten Systems
US7623877B2 (en) 2006-07-28 2009-11-24 Research In Motion Limited Limited lifespan for outgoing data at a mobile device
EP1883014B1 (en) * 2006-07-28 2008-10-22 Nextair Corporation Limited lifespan for outgoing data at a mobile device
EP2017734A3 (en) 2007-07-17 2009-06-03 Nextair Corporation Inter-process communication at a mobile device

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5396630A (en) * 1992-10-06 1995-03-07 International Business Machines Corporation Method and system for object management across process boundries in a data processing system

Also Published As

Publication number Publication date
EP0860776A1 (en) 1998-08-26

Similar Documents

Publication Publication Date Title
US11843661B2 (en) Web service system and method
JP3853592B2 (ja) 分散ウェブアプリケーションサーバ
US6654793B1 (en) System and method for facilitating dynamic loading of stub information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space
US8359570B2 (en) Adaptive scripting tool
US6636900B2 (en) Method and apparatus for executing distributed objects over a network
US20060053415A1 (en) Method and system for efficiently interpreting a computer program
US20020059212A1 (en) Stub search loading system and method, server apparatus, client apparatus, and computer-readable recording medium
US6708171B1 (en) Network proxy
US20020002605A1 (en) Server/client system and program for implementing application distribution in this server/client system
JP2008306714A (ja) ネットワークアプリケーションにおける通信方法、通信装置及びそのためのプログラム
JP2002505466A (ja) 遠隔メソッド呼出し方法及び装置
JPH10214189A (ja) オブジェクト要求ブローカの異なるインプリメンテーション間で通信を実施するブリッジ
US8701129B2 (en) Web API server program, web API publication method
CN113742105A (zh) 微服务框架的适配方法、设备和介质
JP2000122871A (ja) アプリケーション配布方法
JP2002041312A (ja) 構造化された情報処理のためのオペレーティングシステム
JPH10232780A (ja) インタフェース定義記述の変換方法およびオブジェクト間通信方法
CN116362336B (zh) 一种模型推理交互方法、电子设备、可读存储介质
CN112256351A (zh) Feign组件的实现方法、微服务调用方法及装置
JP5209058B2 (ja) ソフトウェア・コンポーネントを作成するための方法
JP2002505463A (ja) 分散システム内の遠隔処理呼出に関連する処理をおこなうためのダウンロード可能なスマートプロキシ
JP2005039557A (ja) ソフトウェア無線機
JP5042415B2 (ja) クライアントサーバシステム
JP2003076563A (ja) 分散オブジェクトミドルウェア連携方法及びプログラムを記録した記録媒体並びにプログラム
JP3007340B1 (ja) 機能呼び出し方法、並列分散処理システムおよびコンピュータ

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040316

A072 Dismissal of procedure

Effective date: 20040720

Free format text: JAPANESE INTERMEDIATE CODE: A072