JPH0830455A - オブジェクト指向情報処理システム - Google Patents

オブジェクト指向情報処理システム

Info

Publication number
JPH0830455A
JPH0830455A JP16499694A JP16499694A JPH0830455A JP H0830455 A JPH0830455 A JP H0830455A JP 16499694 A JP16499694 A JP 16499694A JP 16499694 A JP16499694 A JP 16499694A JP H0830455 A JPH0830455 A JP H0830455A
Authority
JP
Japan
Prior art keywords
processing request
address
processing
external
identifier
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
JP16499694A
Other languages
English (en)
Inventor
Takanori Yokoyama
孝典 横山
Masaru Shimada
優 島田
Masahiko Saito
雅彦 齊藤
Kunihiko Tsunetomi
邦彦 恒冨
Tomoaki Nakamura
智明 中村
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 JP16499694A priority Critical patent/JPH0830455A/ja
Publication of JPH0830455A publication Critical patent/JPH0830455A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】複数のプロセスのオブジェクト間で処理を依頼
し合う場合において、プロセス内のオブジェクトについ
ては、オブジェクトアドレス指定により、効率を良く高
速に処理する。また、アプリケーションプログラマが、
システムを容易に構築できるようにして、プログラムの
再利用や移植も容易にする。 【構成】オブジェクトアドレスとオブジェクト識別子と
の両者の対応を記憶するオブジェクト識別子記憶手段1
13と、外部処理依頼送信手段112と、外部処理依頼
受信手段114とを設け、外部プロセスにメッセージ送
信をするときに、外部処理依頼送信手段は、オブジェク
トアドレスを対応するオブジェクト識別子に変換して送
信する。受信側では、外部処理依頼受信手段が、受信メ
ッセージに含まれオブジェクト識別子を対応する処理依
頼先オブジェクトのオブジェクトアドレスに変換して、
このメッセージを受信したプロセス内で以後の処理を進
める。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、オブジェクト指向情報
処理システムに係り、複数のオブジェクトが処理を依頼
し合い、しかも、その複数のオブジェクトが存在するプ
ロセスが複数存在するオブジェクト指向情報処理システ
ムであって、特に、処理の記述を容易にして、プロセス
を意識せずに処理の記述をおこないうるオブジェクト指
向情報処理システムに関する。
【0002】
【従来の技術】従来、一つのプロセス中に複数のオブジ
ェクトが存在し処理をおこなうシステムでは、オブジェ
クトをプロセス内で一意に指定できる識別子を用いて指
定する方法が採られていた。この方法としては、オブジ
ェクトのデータが存在するメモリ上のアドレスを用いて
識別する方法が一般的である。
【0003】一般に、オブジェクトへ処理を依頼する場
合には、処理を手続き(サブルーチン、関数)呼び出し
により実行する。そして、上記の方法では、処理を依頼
するオブジェクトの指定を、そのオブジェクトの記憶空
間上のアドレスを用いておこない、手続き呼び出しの第
1引数でそのアドレスを指定するものである。
【0004】ところが、アドレスはプロセス内では一意
にオブジェクトを指定できるが、他のプロセスについて
は、メモリ空間が通常は、異なるため一意に指定でき
ず、上記方法では、複数のプロセス上のオブジェクト間
で処理を依頼し合うことができない。
【0005】そこで、例えば、エム・アイ・ティー・プ
レス社(The MIT Press)刊、「ABCL オブジェク
ト指向コンカレント システム」(1990年)(ABCL
AnObject-Oriented Concurrent System (1990))、1
33頁から155頁に記載されているように、システム
が複数の計算機を有する場合であっても、システム全体
で一意にオブジェクトを指定できる識別子を用い、処理
依頼元オブジェクトは、処理依頼先オブジェクトが処理
依頼元オブジェクトと同一の計算機に存在するか、他の
計算機に存在するかに関わらず、上記識別子により依頼
先オブジェクトを指定し、処理依頼時に依頼先オブジェ
クトがどの計算機に存在するかを調べ、その計算機上の
オブジェクトに処理を依頼する方法がある。なお、この
文献では、計算機ごとにメモリ空間が異なるが、これは
通常、プロセスが異なると、メモリ空間が異なることに
対応していると考えて良い。
【0006】また、特開平5−12025号公報に記載
されているように、他のプロセスに存在する処理依頼先
オブジェクトに対応する仮想的なオブジェクトを、処理
依頼元オブジェクトが存在するプロセス内に設け、処理
依頼元オブジェクトが、同一プロセス内の仮想的な処理
依頼先オブジェクトに処理を依頼すると、その仮想的な
処理依頼先オブジェクトは、他のプロセスに存在する処
理依頼先オブジェクトに対して通信をおこない、その処
理依頼先オブジェクトが処理を実行することにより、複
数のプロセス上のオブジェクト間で処理を依頼し合うこ
とを可能とする方法がある。
【0007】
【発明が解決しようとする課題】上記従来技術は、複数
のオブジェクトが複数のプロセスに分散しているとき
に、互いの通信を可能にするものである。しかしなが
ら、上記第一の従来技術では、他のオブジェクトへの処
理依頼発生のたびに、処理依頼先のオブジェクトが同一
プロセス(計算機)内に存在するかどうかを調べる必要
があるため、処理に時間がかかるうえ、システム内のオ
ブジェクト全てが同一処理系で実行されなければならな
いという制限があるという問題があった。
【0008】また、上記第二の従来技術では、アプリケ
ーションプログラマは、他のプロセスに存在する処理依
頼先オブジェクトについて、仮想的なオブジェクトを設
け、上記他のプロセスのオブジェクトとの通信処理を記
述しなければならないという煩わしさがあり、そのため
のプログラミングが必要であるためシステム構築に手間
がかかるという問題があった。
【0009】本発明は、上記問題点を解決するためにな
されたもので、その目的は、複数のプロセスのオブジェ
クト間で処理を依頼し合う場合において、プロセス内の
オブジェクトについてはオブジェクトアドレス指定によ
り高速に処理することでき、効率のよいオブジェクト指
向情報処理システムを提供することにある。
【0010】またその目的は、上記場合において、アプ
リケーションプログラマが、他のプロセス上の処理依頼
先オブジェクトとの通信処理を行うためのプログラムを
記述する必要がなく、複数のプロセス上で通信するオブ
ジェクト指向情報処理システムを、容易に構築すること
が可能であり、しかも、プログラムの再利用や移植が容
易なオブジェクト指向情報処理システムを提供すること
にある。
【0011】
【課題を解決するための手段】上記目的を達成するため
に、本発明のオブジェクト指向情報処理システムに係る
発明の構成は、複数のオブジェクトを含むプロセスが複
数存在し、前記オブジェクト間で処理を依頼し合って処
理を進めるオブジェクト指向情報処理システムにおい
て、各々のオブジェクトに、プロセス内で、オブジェク
トを一意に指定するためのオブジェクトアドレスと、こ
のオブジェクト指向情報処理システム全体で、オブジェ
クトを一意に指定するためのオブジェクト識別子とを設
け、各々のプロセス内に、前記オブジェクトと前記オブ
ジェクト識別子の対応を記憶するオブジェクト識別子記
憶手段と、外部処理依頼送信手段と、外部処理依頼受信
手段とを有し、処理依頼元オブジェクトがその処理依頼
元オブジェクトが存在するプロセスとは異なるプロセス
に存在する処理依頼先オブジェクトに処理を依頼する場
合に、前記外部処理依頼送信手段が、前記オブジェクト
識別子記憶手段を参照して、オブジェクトアドレスを、
対応するオブジェクト識別子に変換し、そのオブジェク
ト識別子を指定して、処理依頼メッセージを依頼先プロ
セスに送信して、前記外部処理依頼受信手段が、外部の
プロセスの処理依頼元オブジェクトからの処理依頼メッ
セージを受信した場合に、前記オブジェクト識別子記憶
手段を参照して、前記受信した処理依頼メッセージで指
定されたオブジェクト識別子を、対応する処理依頼先オ
ブジェクトのオブジェクトアドレスに変換して、そのオ
ブジェクトアドレスを参照することにより、このメッセ
ージを受信したプロセス内で処理を進めるようにしたも
のである。
【0012】より詳しくは、上記のオブジェクト指向情
報処理システムにおいて、前記外部処理依頼送信手段
は、処理依頼メッセージに付加された引数に含まれるオ
ブジェクトアドレスについて、前記オブジェクト識別子
記憶手段を参照して、前記オブジェクトアドレスを、対
応するオブジェクト識別子に変換して処理依頼メッセー
ジを送信して、前記外部処理依頼受信手段は、前記受信
した処理依頼メッセージ中の引数に含まれた前記オブジ
ェクト識別子を、対応する処理依頼先オブジェクトのオ
ブジェクトアドレスに変換して、そのオブジェクトアド
レスを参照することにより、このメッセージを受信した
プロセス内で処理を進めるようにしたものである。
【0013】さらに詳しくは、前記外部処理依頼送信手
段は、処理依頼メッセージに付加された引数に含まれる
オブジェクトアドレスについて、前記オブジェクト識別
子記憶手段を参照して、前記オブジェクトアドレスを、
対応するオブジェクト識別子に変換して処理依頼メッセ
ージを送信して、前記外部処理依頼受信手段は、処理依
頼メッセージ中の引数に含まれたオブジェクト識別子の
うち、この処理メッセージを受信したプロセス上に存在
するオブジェクトに対応するオブジェクト識別子につい
てのみ、前記オブジェクト識別子記憶手段を参照して、
そのオブジェクト識別子を、対応する処理依頼先オブジ
ェクトのオブジェクトアドレスに変換して、そのオブジ
ェクトアドレスを参照することにより、このメッセージ
を受信したプロセス内で処理を進めるようにしたもので
ある。
【0014】また、別に詳しくは、上記のオブジェクト
指向情報処理システムにおいて、前記オブジェクト識別
子は、前記オブジェクトアドレスと同一のデータ型とす
るようにしたものである。
【0015】
【作用】本発明では、オブジェクトの処理を記述する場
合のオブジェクトの指定には、原則として、全てオブジ
ェクトアドレスによるものとして、外部にあるプロセス
のオブジェクト場合には、そのオブジェクトアドレスを
オブジェクト識別子に変換する。
【0016】したがって、処理依頼元オブジェクトは、
処理依頼先オブジェクトが処理依頼元オブジェクトと同
一プロセス内に存在するか他のプロセスに存在するかを
意識せずに、処理依頼先オブジェクトに処理を依頼し、
依頼先オブジェクトは依頼された処理を実行することが
できるという作用がある。
【0017】したがって、実行時に、プロセスが内にあ
るか外にあるかの判定が不要になり、コンパイル時で、
呼出し先を確定させることが可能になるため、オブジェ
クトの処理速度に影響を与えずに、オブジェクトの呼出
しを高速に処理することできるという作用がある。
【0018】また、アプリケーションプログラマが他の
プロセス上の処理依頼先オブジェクトとの通信処理を記
述するもなく、処理記述を容易であり、プロセスの如何
にかかわらずそのインターフェースを統一的にとり扱
え、オブジェクト指向情報処理システムを容易に構築で
きるという作用がある。
【0019】さらに、異なるプロセス上のオブジェクト
間の処理依頼はオブジェクト識別子で処理依頼先オブジ
ェクトを指定し、同一プロセス上のオブジェクト間の処
理依頼はアドレスで処理依頼先オブジェクトを指定する
ので、オブジェクト識別子で処理依頼先オブジェクトを
指定するプログラムと、アドレスで処理依頼先オブジェ
クトを指定するプログラムが共存した、オブジェクト指
向処理システムを実現でき、プログラムの再利用や移植
が容易になるという作用がある。
【0020】
【実施例】以下、本発明の各実施例を、図1ないし図9
を用いて説明する。
【0021】〔実施例1〕以下、本発明の一実施例を、
図1ないし図8を用いて説明する。 (1)本発明のシステム構成について 先ず、図1を用いて本発明の一実施例に係るシステム構
成について説明しよう。図1は、本発明の一実施例に係
るシステム構成をあらわす概念図である。
【0022】図からも明らかなように、本発明の一実施
例のシステム構成は、複数の計算機をネットワークで接
続した分散システムを想定している。
【0023】すなわち、複数の計算機(図1では、計算
機1、計算機2のみを図示している)がネットワーク9
に接続されている。そして、計算機1、計算機2には、
それぞれ、プロセッサ1p,2p、メモリ1m,2m、
ネットワークアダプタ1n,2n、ディスク装置1d,
2dが存在している。
【0024】ネットワークアダプタ1n,2nは、ネッ
トワーク9を介して他の計算機と情報をやりとりするた
めの装置である。各計算機にはそれぞれ異なる計算機番
号と呼ばれる識別子が与えられており、この計算機番号
を指定することにより、他の計算機とネットワークを介
した通信が可能である。
【0025】メモリには、計算機が実行するオペレーテ
ィングシステム(Operating System、通常「OS」と表
記される)のプログラム1o,2o、プロセス11,1
2,21,22のプログラムが記憶され、これをプロセ
ッサ1p,2pが読みだして処理を実行する。なお、こ
れらプロセスは、「タスク」とも呼ばれることがある。
【0026】OSは、プログラムの実行やユーザとの基
本的なサービスを行うソフトウェアである。本発明の一
実施例のOSは、複数のプロセスを適当に切り換えなが
ら並行に実行することのできるマルチプロセス機能を有
している。例えば、アジソン・ウェスリー社(Addison-
Wesley Publish Company)刊、「4.3BSD UNI
X オペレーティング・システムの設計とインプリメン
ト」(1989年)(The Design and
Implementation of the 4.3
BSD UNIX Operation System
(1989))に記載されているように、現在広く用
いられているユニックス(UNIX)・オペレーティン
グシステム(UNIXはユニックス・システムズ・ラボ
ラトリ(UNIX Systems Laborato
ry)が開発し、販売しているオペレーティングシステ
ムで、米国その他での登録商標)は、このマルチプロセ
ス機能を有しており、これを利用することにより、本実
施例で以下に説明するのように、一つの計算機上で複数
のプロセスを同時に実行できることになる。
【0027】このユニックス・オペレーティングシステ
ム(以下、単に「UNIX」と記す)では、各プロセス
のプログラムは、システムコール(System Call)と呼
ぶ手続き呼び出しによりOSに対して、プロセス間通信
や、ディスク装置中のファイルへのアクセス処理を依頼
することができる。
【0028】プロセス間通信とは、UNIXが提供す
る、プロセス間で情報のやり取りをおこなう手段であっ
て、この機能で通信をおこなえば、複数の計算機にプロ
セスが分散する形態であっても、送信元のプロセスと送
信先のプロセスが、同一計算機上に存在するか、それぞ
れ別の計算機上に存在するか否かにかかわらず、同じよ
うにプロセス間の通信をすることが可能となる。また特
に、UNIXは、このプロセス間通信機能として、ソケ
ット(socket)と呼ばれる機能を提供している。
【0029】また、プロセスのプログラムには、他のプ
ロセスとの通信を行う通信処理部110,120,21
0,220、オブジェクトの動作を記述したクラス11
c1,11c2、12c1,12c2,21c1,21
c2,22c1,22c2等、オブジェクト11o1,
11o2,12o1,12o2,21o1,21o2,
22o1,22o2等が存在している。
【0030】(2)オブジェクト指向システムにおける
基本モデルとオブジェクト間のインタフェースについて 次に、図2を用いてオブジェクト指向システムにおける
基本モデルとオブジェクト間のインタフェースについて
説明しよう。図2は、オブジェクト指向システムにおけ
るソフトウェア構造の基本モデルをあらわした概念図で
ある。
【0031】オブジェクト指向における「オブジェク
ト」とは、データとそれに関する手続きから成るプログ
ラムモジュールである。このオブジェクトの種類を「ク
ラス」と呼ぶ。データの値は、各オブジェクト毎に異な
るので、オブジェクト単位で記憶する必要がある。一
方、手続きは、同一種類のオブジェクトで共通に使用で
きるのでオブジェクト単位で記憶する必要はない。そこ
で、手続きは、クラス毎に、データは、オブジェクト毎
に記憶する構造を持っている。そして、この手続きは、
例えば、C言語では、「関数」と呼ぶプログラムモジュ
ールで記述する。
【0032】したがって、図2に示されるように、クラ
ス11c1は、例えば、関数11c11,11c12,
11c13から成る。また、図2で示した例では、オブ
ジェクト11o1,11o2はともに同一クラス11c
1に属している。
【0033】オブジェクトのデータは、例えば、C言語
では、「構造体」と呼ばれる変数の集合である。図2の
例では、オブジェクト11o1には、変数11o11,
11o12,11o13が、オブジェクト11o2には
変数11o21,11o22,11o23が存在する。
同一クラスに属するオブジェクトのデータ構造は同一
で、オブジェクトが異なれば、上述のようにその値のみ
が異なる。
【0034】一般に、オブジェクト指向システムでは、
あるオブジェクトが他のオブジェクトに処理を依頼し
て、オブジェクト同志が通信して処理を進めていく。こ
のようにオブジェクトに処理を依頼するには、オブジェ
クトの手続きに依頼先のオブジェクトと、実行すべき処
理とを指定する必要がある。また、必要により、処理に
使用するデータを引数として渡す必要がある。
【0035】以下では、オブジェクト間のインタフェー
スについて詳細に説明していこう。本実施例では、処理
依頼時に起動する手続き(関数)はコンパイル時に決定
することにする。これは、「静的バインディング方式」
と呼ばれる。この処理依頼は、具体的には、実行すべき
関数を指定し、処理依頼先のオブジェクトのアドレス
(ポインタ)と引数を渡す。
【0036】例えば、C言語の場合、 関数名(オブジェクトの構造体へのポインタ,引数1,
引数2,・・・) という形式で記述する。
【0037】また、、アディソン・ウェスリー社(Addi
son Wesley)刊、「注釈C++ リファレンス マニュ
アル」(1990年)(The Annotated C++ Reference
Manual (1990))に記載されているC++と呼ばれるオ
ブジェクト指向言語の場合は、 処理依頼先オブジェクト.関数名(引数1,引数2,・
・・) という形式で記述する。
【0038】C++の方が、C言語よりも表現が洗練さ
れていることが理解されよう。なお、C++ではオブジ
ェクトのクラスの関数は、「メンバ関数」と呼ばれてい
る。
【0039】言語上で関数名で指定した関数呼び出し
は、コンパイラを通すことにより、オブジェクトの属す
るクラスで定義された関数のアドレスを指定したサブル
ーチンコールになる。呼び出された関数は、オブジェク
トのデータである構造体中の変数(メンバ)にアクセス
しながら処理を実行する。
【0040】このように、同一プロセスに存在するオブ
ジェクトへの処理依頼は、オブジェクトのアドレス(構
造体へのポインタ)を指定した、関数呼び出しにより実
行する。しかし、アドレス空間はプロセス毎に異なり、
異なるプロセス上のオブジェクトをアドレスにより指定
することはできない。
【0041】したがって、分散システム全体でオブジェ
クトを一意に指定できる識別子が必要である。本実施例
では、分散システム内でオブジェクトを一意に指定する
識別子として、「オブジェクトID」を用いる。ただ
し、オブジェクトIDは、それが存在するプロセス以外
のプロセスからの処理依頼を受ける可能性のあるオブジ
ェクトのみに与えればよい。すなわち、処理依頼をする
対象のオブジェクトがそのプロセスと常に同一のプロセ
スに属するならば、処理依頼をする対象のオブジェクト
にオブジェクトIDを与える必要はないことになる。
【0042】他のプロセスから処理依頼を受ける可能性
のあるオブジェクトについては、そのクラス定義中で他
のプロセスに公開することを宣言することにより、オブ
ジェクト中に、オブジェクトIDを記憶する変数を確保
する。これは、例えば、C++言語の場合には、他のプ
ロセスに公開するためのクラス(これを、「公開クラ
ス」と呼ぶことにする)を定義しておき、その中で、オ
ブジェクトIDを記憶する変数を宣言しておく。そし
て、他のプロセスから処理依頼を受ける可能性のあるオ
ブジェクトのクラスを定義する場合には、そのクラス定
義中で、公開クラスを継承する(inherit)ことを宣言
することにより実現できる。
【0043】オブジェクトにオブジェクトIDを与える
には、プログラム中でオブジェクトIDを指定しておく
か、あるいはオブジェクト生成時にオブジェクトIDを
与える。生成時にオブジェクトIDを与えるには、例え
ば、C++言語の場合、公開クラスの「構築子」(Cons
tructor)で、オブジェクトIDを生成して与える処理
を記述しておくことにより実現できる。
【0044】(3)本実施例に係る通信処理部の構成、
通信処理に用いるデータ構造およびその動作について 上述した異なるプロセス上のオブジェクトへの処理依頼
は、通信処理部が実行する。よって、次に、図3ないし
図7を用いて本実施例に係る通信処理部の構成、通信処
理に用いるデータ構造およびその動作について説明する
ことにしよう。図3は、本実施例に係る通信処理部の構
成を示したブロック図である。
【0045】先ず、この通信処理部110とその各部の
動作概要について説明しよう。
【0046】通信処理部110は、遠隔手続き呼び出し
処理部111、外部処理依頼送信部112、オブジェク
ト識別子記憶部113、外部処理依頼受信部114から
成る。オブジェクト識別子記憶部113は、外部オブジ
ェクトテーブル1131と、内部オブジェクトテーブル
1132から成る。
【0047】オブジェクトが他のプロセス上のオブジェ
クトへ処理を依頼するには、そのオブジェクトの動作を
記述したクラスの手続き(関数)中で、外部処理依頼送
信部112を呼び出す。この外部処理依頼送信部112
は、外部オブジェクトテーブル1131を参照して、遠
隔手続き呼び出し処理部111に他のプロセス上の手続
きの呼び出しを依頼する。
【0048】そして、遠隔手続き呼び出し処理部111
は、呼び出しに必要な情報を呼び出し先のプロセスに送
信する。また、遠隔手続き呼び出し処理部111は、他
のプロセスからの呼び出し情報を受信すると、外部処理
依頼受信部114を呼び出す。外部処理依頼受信部は内
部オブジェクトテーブル1132を参照して、クラスの
手続きを呼び出す。これにより異なるプロセス間でオブ
ジェクトの処理依頼が可能になる。
【0049】次に、各部の詳細について説明しよう。先
ず、遠隔手続き呼び出し処理部111について説明す
る。
【0050】遠隔手続き呼び出し処理部111は、遠隔
手続き呼び出し(Remote ProcedureCall、RPC)機能
を持つ分散処理環境ソフトウェア、例えば、プレンティ
ス・ホール社(Prentice Hall)刊、「ネットワーク
コンピューティング システム リファレンス マニュ
アル」(1990年)(Network Computing SystemRefe
rence Manual (1990))に記載されているNCSと呼ぶ
ソフトウェアを利用して実現することができる。
【0051】遠隔手続き呼び出しでは、呼び出す側(ク
ライアント側)のプロセスのプログラムが、呼び出され
る側(サーバ側)のプロセスのプログラムの手続き(関
数)を、手続き呼び出し(関数呼び出し)と同じ形で呼
び出すことができる。この遠隔手続き呼び出しをおこな
うには、クライアント側が呼び出すサーバ側の関数の名
前や引数名、引数のデータ型等を定義したインタフェー
ス宣言をおこなう必要がある。つまり、このインタフェ
ース宣言をおこなうことにより、呼び出す側(クライア
ント側)と呼び出される側(サーバ側)との「インタフ
ェース」が確立すると考えるのである。また、この「イ
ンタフェース」には、一つまたは複数の関数を含むこと
ができる。そして、定義されたインタフェース宣言をN
IDLコンパイラと呼ぶツールに入力することにより、
後述するクライアントスタブおよびサーバスタブという
遠隔手続き呼び出しに必要なプログラムを生成すること
ができる。
【0052】本実施例では、他のプロセスから処理依頼
を受ける可能性のあるクラスについて、それぞれ一つづ
つ遠隔手続き呼び出しの「インタフェース」を対応させ
る。また、一つの「インタフェース」には、そのクラス
で定義された全ての関数を含めることにする。
【0053】NCSを用いるときには、分散システム全
体で一意に識別するための識別子として、UUID(Un
iversal Unique Identifier)と呼ぶ識別子を用いるこ
とができる。このUUIDは、UUIDを生成した計算
機のアドレスや時刻の情報を含む16バイトの大きさの
データである。上述の遠隔手続き呼び出しのインタフェ
ースを識別するのにも、UUID(インタフェースUU
IDと呼ぶ)を使用することができる。
【0054】遠隔手続き呼び出し処理部111は、遠隔
手続き呼び出し実行時ライブラリ1111、クライアン
トスタブ1112、サーバスタブ1113から成る。ス
タブとは、遠隔通信のために通信インタフェースのなか
だちをする機能を有するものであり、クライアント側に
あるものをクライアントスタブ1112、サーバ側にあ
るものをサーバスタブ1113という。
【0055】このクライアントスタブ1112は、その
プロセスが呼び出す全ての他のプロセス上の手続きにつ
いて一つずつ用意される。同様に、サーバスタブは、他
のプロセスから呼び出される全ての手続きについて一つ
ずつ用意される。
【0056】遠隔手続き呼び出し実行時ライブラリは、
OSのプロセス間通信処理機能を利用して、他のプロセ
スと通信をおこなう。例えば、UNIXでは、ソケット
機能を用いることができる。ソケットは、ソケットアド
レスを指定することにより、ポートと呼ばれる通信の口
を指定して、プロセス間通信が可能とするものである。
本実施例では、プロセスにそれぞれ一つのポートを与
え、そのポートのソケットアドレスを指定して遠隔手続
きを実行することにより、他のプロセス上の手続きを呼
び出すことができる。
【0057】次に、図4および図5を用いてオブジェク
ト識別子記憶部113について説明する。前述のよう
に、このオブジェクト識別子記憶部113は、外部オブ
ジェクトテーブル1131と内部オブジェクトテーブル
1132から成る。図4は、内部オブジェクトテーブル
のテーブル構造図である。図5は、外部オブジェクトテ
ーブルのテーブル構造図である。
【0058】図4に示されるように、内部オブジェクト
テーブル1132には、他のプロセスから呼び出される
可能性のあるオブジェクトについて、オブジェクトID
とオブジェクトのアドレスが記憶される。このオブジェ
クトIDは、例えば、NCSのUUIDを使用すること
ができる。また、オブジェクトIDと、そのオブジェク
トが存在するプロセスのソケットアドレスを、分散処理
環境ソフトウェアのネームサービスに登録しておく。例
えば、前述のNCSと呼ぶソフトウェアは、ロケーショ
ン・ブローカ(Location Broker)と呼ぶネームサービ
スが提供しており、これを利用する。このネームサービ
スは、分散処理環境で通信をおこなうに際し、処理対象
の名前管理をおこなうために必須のものである。
【0059】また、図5に示されるように、外部オブジ
ェクトテーブル1131には、処理を依頼しようとする
他のプロセス上のオブジェクトのオブジェクトIDとそ
のオブジェクトが存在するプロセスのソケットアドレス
が記憶される。すなわち、他のプロセス上のオブジェク
トに処理を依頼するプロセスは、その処理を依頼しよう
とするオブジェクトのオブジェクトIDと、それが存在
するプロセスのソケットアドレスを、前述のネームサー
ビスに問い合わせて得ることができ、ネームサービスに
問い合わせて得たこのオブジェクトIDとソケットアド
レスは外部オブジェクトテーブル1131に記憶するの
である。
【0060】ここで、上記のテーブル構造の説明と関連
して、オブジェクトの処理の依頼方法について説明する
と、一般に、処理依頼元のオブジェクトと処理依頼先の
オブジェクトが同一のプロセスにあるときは、処理依頼
は、オブジェクトアドレスを指定しておこなえるが、処
理依頼元のオブジェクトと処理依頼先のオブジェクトが
異なるプロセスにあるときは、この処理依頼が、オブジ
ェクトアドレスを指定することではおこなえない。本発
明は、この区別をなくして、処理依頼の形式を統一的に
扱うことを可能とするものである。
【0061】そのために、オブジェクトのプログラム中
では、処理を依頼するときに、処理依頼先のオブジェク
トが、処理依頼元のオブジェクトと異なるプロセスに存
在する場合もアドレスで指定する。そして、そのアドレ
スは、外部オブジェクトテーブル1131の、オブジェ
クトIDとソケットアドレスが記憶されているエントリ
のアドレスとする。したがって、他のプロセスに存在す
るオブジェクトについても、処理を依頼するときに、そ
のオブジェクトのアドレス(実体は、外部オブジェクト
テーブルの1エントリのアドレス)が与えられれば、外
部オブジェクトテーブルを参照することにより、オブジ
ェクトIDとソケットアドレスを一意に決定でき、これ
を用いてプロセス間で通信処理をおこなうのである。
【0062】次に、外部処理依頼送信部112について
説明する。この外部処理依頼送信部112は、あるオブ
ジェクトが他のプロセスに存在するオブジェクトに処理
を依頼する場合に呼び出される。外部処理依頼送信部1
12は、外部呼び出し関数によって起動され、依頼元の
プロセスのオブジェクトが呼び出す他のプロセス上のオ
ブジェクトのクラスの関数に対応している。またこの外
部呼び出し関数は、それぞれ一つずつ、クライアントス
タブの関数に対応している。
【0063】上記の様に外部処理依頼送信部の起動は、
外部呼び出し関数の呼び出しによりなされる。この呼び
出しの仕方は、例えばC言語では、 外部呼び出し関数名(オブジェクトの構造体へのポイン
タ,引数1,引数2,・・・) という形式である。この第1引数は、オブジェクトのア
ドレスを示しているが、前述のように、実際には、外部
オブジェクトテーブルの1エントリのアドレスである。
【0064】以下では、この外部呼び出し関数の動作を
図6の処理フローを用いて説明する。図6は、外部呼び
出し関数の動作を示す処理フローである。以下、図6の
順を追って説明しよう。
【0065】外部呼び出し関数は、先ず、第1引数で与
えられた、処理依頼先のオブジェクトのアドレス、すな
わち、外部オブジェクトテーブルのエントリのアドレス
から、処理依頼先のオブジェクトのオブジェクトID
と、そのオブジェクトが存在するプロセスのソケットア
ドレスを得る(処理1121)。また、呼び出しの第2
引数以降の引数中にオブジェクトアドレスが存在すれば
それをオブジェクトIDに変換する(処理1122)。
すなわち、引数中に他のプロセスのオブジェクトのアド
レスが存在すれば、外部オブジェクトテーブルを参照し
てオブジェクトIDに変換し、引数中にそのプロセス中
のオブジェクトのアドレスが存在すれば、オブジェクト
に記憶されているオブジェクトIDに変換する。
【0066】次に、得たソケットアドレスを指定して、
遠隔手続き呼び出しのためのバインディング処理をおこ
なう(処理1123)。バインディング処理とは、遠隔
手続き呼出しのための通信路確保のための処理である。
このバインディング処理の結果、例えば、前述のNCS
と呼ぶソフトウェアでは、遠隔手続き呼び出しに必要
な、「RPCハンドル」を得る。このRPCハンドルと
は、遠隔手続き呼び出しのための情報を密閉したものと
考えて良い。そして、遠隔手続き呼び出し処理部のクラ
イアントスタブの関数を呼び出す(処理1124)。呼
び出しの仕方は、例えば、上述のNCSの場合は、RP
Cハンドルを用いて、これをC言語で記述すると、 クライアントスタブの関数名(RPCハンドル,オブジ
ェクトID,引数1,引数2,・・・) という形式である。第2引数は処理依頼先のオブジェク
トのオブジェクトIDである。これにより、処理依頼先
のオブジェクトが存在するプロセスへの処理依頼の遠隔
手続き呼び出しがおこなわれる。
【0067】これまで、処理を依頼する側の構成と動作
を述べてきたが、今度は逆に、処理を受け取る側の構成
と動作を述べていこう。先ず、受信側の外部処理依頼受
信部114について説明する。
【0068】処理依頼の遠隔手続き呼び出しを受けたプ
ロセスは、サーバスタブを通して、外部処理依頼受信部
を呼び出す。外部処理依頼受信部には、サーバスタブの
関数全てについて、それぞれ一つずつ内部呼び出し関数
が用意され、この関数が呼び出される。内部呼び出し関
数は、他のプロセスから呼び出されるオブジェクトのク
ラスの関数に対応している。内部呼び出し関数の呼び出
し方は、例えばC言語では、 内部呼び出し関数名(オブジェクトID,引数1,引数
2,・・・) という形式である。第1引数は、処理依頼先のオブジェ
クトのオブジェクトIDである。
【0069】以下では、この内部呼び出し関数の動作を
図7を用いて説明する。図7は、内部呼び出し関数の動
作を示す処理フローである。以下、図7の順を追って説
明しよう。
【0070】内部呼び出し関数は、先ず、内部オブジェ
クトテーブルを検索し、第1引数で与えられた処理依頼
先のオブジェクトIDに対応するオブジェクトのアドレ
スを得る(処理1142)。
【0071】次に、第2引数以降の引数中にオブジェク
トIDが存在すれば、それをオブジェクトのアドレスに
変換する(処理1142)。すなわち、先ず、内部オブ
ジェクトテーブルを検索し、そのオブジェクトIDが存
在すれば、このプロセス中にオブジェクトが存在するの
で、引数中のオブジェクトIDを対応するオブジェクト
アドレスに変換する。
【0072】内部オブジェクトテーブルに存在しない場
合には、このプロセス中にオブジェクトが存在しないの
で、外部オブジェクトテーブルを検索する。その中に同
一のオブジェクトIDを有するエントリが存在すれば、
引数中のオブジェクトIDをそのエントリのアドレスに
変換する。外部オブジェクトテーブルにも存在しなけれ
ば、これまでにこのプロセスでは、参照されなかったと
いうことであり、オブジェクトIDとアドレスの変換の
外に、外部オブジェクトテーブルへの登録もおこなう。
すなわち、具体的には、内部呼び出し関数内の処理で、
ネームサービスに問い合わせ、ソケットアドレスを得
て、オブジェクトIDとそのソケットアドレスを外部オ
ブジェクトテーブルに追加するとともに、引数中のオブ
ジェクトIDをその追加したエントリのアドレスに変換
する。
【0073】最後に、処理依頼先オブジェクトのクラス
の関数を呼び出す(処理1143)。呼び出しの仕方
は、例えばC言語では、 クラスの関数名(オブジェクトへのポインタ,引数1,
引数2,・・・) の形式である。また、C++言語の場合では、 処理依頼先オブジェクト.関数名(引数1,引数2,・
・・) の形式である。
【0074】以上のようにして、本発明の一実施例で
は、異なるプロセス上に存在するオブジェクト間で処理
を依頼し合うことできる。
【0075】(4)本実施例の具体例について 次に、図8を用いて、上で説明してきた本実施例の処理
依頼の具体例を説明していくことにしよう。図8は、本
発明に係る第一の実施例の処理依頼の動作を具体的に示
した模式図である。なお、この図8は、プロセス、オブ
ジェクト間の関係を図示したものであり、図1の他の構
成要素は、省略されている。
【0076】計算機1上のプロセス11上にはオブジェ
クト11o1、11o2が、計算機2上のプロセス21
には、オブジェクト21o1が存在しているものとす
る。
【0077】それらのオブジェクトID、プロセス11
におけるオブジェクトアドレス、プロセス21における
オブジェクトアドレスは、以下の表1に示される通りで
あるとする。
【0078】
【表1】
【0079】表1で、(外)と記したのは、このオブジ
ェクトアドレスが、対応するオブジェクトそのもののア
ドレスではなく、そのプロセス上の外部オブジェクトテ
ーブル1131中にある対応するオブジェクトのオブジ
ェクトIDとソケットアドレスが記憶されているエント
リのアドレスであることを示している。
【0080】さて、ここで、オブジェクト11o1が、
外部関数呼び出し112c1、すなわち、 m1(A1211,A1112) を実行したとする。正確には、オブジェクトの動作を記
述したクラスの手続き(関数)がオブジェクト中に記憶
されたデータを読み出してこの処理を実行する。ここ
で、m1は外部呼び出し関数名である。第1引数のA1
211は、処理依頼先のオブジェクトであるオブジェク
ト21o1のプロセス11におけるオブジェクトアドレ
スである。第2引数には、オブジェクト11o2のオブ
ジェクトアドレスが指定されている。
【0081】外部関数呼び出しが実行されると、通信処
理部110中の外部処理依頼送信部112が起動され
る。外部処理依頼送信部は外部関数呼び出し中に含まれ
る引数中のオブジェクトアドレスをオブジェクトIDに
変換する。この場合は、第1引数の処理依頼先のオブジ
ェクト21o1のオブジェクトアドレスのA1211を
オブジェクトIDのI211に、第2引数のオブジェク
ト11o2のオブジェクトアドレスのA1112をオブ
ジェクトIDのI112に変換する。このとき、処理依
頼先のオブジェクトのソケットアドレスも得る。そし
て、遠隔手続き呼び出し処理を実行することにより、処
理依頼先オブジェクトが存在するプロセス、この場合
は、計算機2上のプロセス21への遠隔手続き呼び出し
が実行される。
【0082】プロセス21上の通信処理部210が遠隔
手続き呼び出しを受けると、外部処理依頼受信部214
が起動される。外部処理依頼受信部は、引数中のオブジ
ェクトIDをプロセス21におけるオブジェクトアドレ
スに変換する。この場合は、第1引数の処理依頼先のオ
ブジェクト21o1のオブジェクトIDのI211をオ
ブジェクトアドレスのA2211に、第2引数のオブジ
ェクト11o2のオブジェクトIDのI112をオブジ
ェクトアドレスのA2112に変換する。そして、処理
依頼先オブジェクト、すなわちオブジェクト21o1に
対する関数呼び出し214c1、すなわち、 m1(A2211,A2112) を実行する。
【0083】そして次に、このオブジェクト、すなわち
オブジェクト21o1が、外部関数呼び出し212c
1、すなわち、 m2(A2112) を実行したとする。ここで、m2は外部呼び出し関数名
である。第1引数のA2112は処理依頼先のオブジェ
クトのプロセス21におけるオブジェクトアドレスであ
り、この場合はオブジェクト11o2が送信先である。
第2引数以降の引数は存在しない。この外部関数呼び出
しにより、通信処理部210中の外部処理依頼送信部2
12が起動され、第1引数の処理依頼先のオブジェクト
アドレスのA2112をオブジェクトIDのI112に
変換する。そして、遠隔手続き呼び出し処理を実行し、
計算機1上のプロセス11への遠隔手続き呼び出しが実
行される。
【0084】プロセス11上の通信処理部110が遠隔
手続き呼び出しを受けると、外部処理依頼受信部114
が起動され、引数中のオブジェクトID、すなわちI2
11をオブジェクトアドレスのA1112に変換する。
そして、オブジェクト11o2に対する関数呼び出し1
14c1、すなわち、 m2(A1112) を実行する。
【0085】このように、各計算機上の各プロセス上で
は、オブジェクトは、そのプロセス上のオブジェクトア
ドレスを使用して識別する。そして、異なるプロセス上
に存在するオブジェクト間で処理を依頼する場合には、
オブジェクトアドレスを、システム全体でオブジェクト
を一意に決定できるオブジェクトIDに変換して、通信
処理(遠隔手続き呼び出し)を実行する。
【0086】(5)本実施例の効果について 本実施例によれば、プロセス内のオブジェクトと他のプ
ロセスのオブジェクトに対して、同じように処理依頼が
可能なため、処理の記述が簡単になる。
【0087】プロセス内のオブジェクトの処理依頼につ
いては、実行するオブジェクトのクラスの手続き(関
数)はコンパイル時に決定されるため、呼ばれたとき
に、実行する関数をサーチする必要がある場合に比べる
と、高速に処理がおこなえるという効果がある。
【0088】また、本実施例によれば、プロセス内のオ
ブジェクトとプロセス外のオブジェクトを意識すること
なく、オブジェクト(クラス)のプログラムでは、オブ
ジェクトがどのプロセスに存在するかにかかわらず、オ
ブジェクトアドレスのみでオブジェクトを識別すればよ
いため、プログラムを開発しやすく、また再利用も容易
になるという効果がある。
【0089】さらに、本実施例によれば、プロセス間通
信処理において、呼び出しの引数中に含まれるオブジェ
クトアドレスあるいはオブジェクトIDがどのプロセス
上のオブジェクトかを意識することなく、オブジェクト
アドレスとオブジェクトIDの変換をすればよいため、
通信処理部の実現が容易になり、処理も効率化できると
いう効果がある。
【0090】〔実施例2〕次に、図9を用いて本発明に
係る第二の実施例を具体的に説明する。図9は、本発明
に係る第二の実施例の処理依頼の動作を具体的に示した
模式図である。
【0091】実施例1では、他のプロセスへの処理依頼
を実行するときに、処理を依頼する側(クライアント
側)では引数中に含まれる全てのオブジェクトアドレス
をオブジェクトIDに変換し、処理を依頼される側(サ
ーバ側)では引数中に含まれる全てのオブジェクトID
をオブジェクトアドレスに変換していた。
【0092】しかし、あるプロセス上において、オブジ
ェクトアドレスが実際にオブジェクトが存在するアドレ
スを指しているのは、そのプロセス上に存在するオブジ
ェクトのみである。したがって、他のプロセス上のオブ
ジェクトは、オブジェクトアドレスでなくオブジェクト
IDで指定しようとするのが本実施例の考え方である。
図9は、この実施例によるオブジェクト間通信の例で
あり、図8で示した実施例1の具体例と処理の概略は、
類似しており、各オブジェクトのオブジェクトアドレス
やオブジェクトIDは同様である。
【0093】ただし、この例の場合、他のプロセス上の
オブジェクトはオブジェクトアドレスではなく、オブジ
ェクトIDで指定することが実施例1の場合と異なる。
【0094】さて、オブジェクト11o1は、外部関数
呼び出し112c2、すなわち、 m1(I211,A1112) を実行する。第1引数のI211は、処理依頼先のオブ
ジェクトのオブジェクトIDである。第2引数は、オブ
ジェクト11o2のプロセス11におけるオブジェクト
アドレスである。この呼び出しがされると、外部処理依
頼送信部112は、外部関数呼び出し中に含まれる引数
中の、プロセス11上に存在するオブジェクトのオブジ
ェクトアドレスをオブジェクトIDに変換する。この場
合は、第2引数のオブジェクト11o2のオブジェクト
アドレスのA1112をオブジェクトIDのI112に
変換して、遠隔手続きを実行する。
【0095】プロセス21上の通信処理部210中の外
部処理依頼受信部214は、引数中のオブジェクトID
のうち、プロセス21に存在するオブジェクトのオブジ
ェクトIDのみをプロセス21におけるオブジェクトア
ドレスに変換する。この場合は、第1引数の処理依頼先
のオブジェクト21o1のオブジェクトIDのI211
をオブジェクトアドレスのA2211に変換する。第2
引数のオブジェクトIDは、他のプロセス(すなわち、
プロセス11)に存在するオブジェクト11o2を示し
ているので変換されない。そして外部処理依頼受信部2
14は、オブジェクト21o1に対する関数呼び出し2
14c2、すなわち、 m1(A2211,I112) を実行する。
【0096】次に、このオブジェクト、すなわちオブジ
ェクト21o1は、外部関数呼び出し212c2、すな
わち、 m2(I112) を実行する。第1引数のI112は、処理依頼先のオブ
ジェクトのオブジェクトIDである。そして、通信処理
部210中の外部処理依頼送信部212が起動される
が、この場合は引数中にオブジェクトアドレスは存在し
ないのでオブジェクトアドレスからオブジェクトIDへ
の変換は行わずに、遠隔手続き呼び出し処理を実行す
る。
【0097】プロセス11上の通信処理部110の外部
処理依頼受信部114は、引数中のオブジェクトID、
すなわちI211がプロセス11上に存在するオブジェ
クトを示しているので、これをオブジェクトアドレスの
A1112に変換する。そして、オブジェクト11o2
に対する関数呼び出し114c2、すなわち、 m2(A1112) を実行する。
【0098】このように、本実施例では、オブジェクト
を指定する場合、そのオブジェクトが存在するプロセス
ではオブジェクトアドレスで、そのオブジェクトが存在
しないプロセスではオブジェクトIDで指定する。これ
により、オブジェクトアドレスとオブジェクトIDの変
換処理が少なくなり、処理効率が向上するという効果が
ある。
【0099】〔実施例3〕実施例1および実施例2にお
いては、処理呼出しの決定方法が、処理依頼に対して実
行するオブジェクトのクラスの手続き(関数)をコンパ
イル時に決定する、いわゆる「静的バインディング」で
あった。しかし、プログラムの実行時に手続きを探索し
決定する、いわゆる「動的バインディング」としてもよ
い。
【0100】この場合には、処理依頼時に、処理依頼先
のオブジェクトがどのクラスかを判定し、そのクラスお
よびそのクラスが継承しているクラスの手続きを探索し
て、実行すべき手続きを決定する。これにより、コンパ
イル時にはわからず、実行時に動的にクラスが決定され
るオブジェクトについても、処理依頼が可能となり、柔
軟なシステムを実現できるという効果がある。
【0101】〔実施例4〕上記実施例1ないし実施例3
では、オブジェクトアドレスとオブジェクトIDが別の
データ型であることを暗に想定しているような記述をし
ているが、同一のデータ型としてもよい。
【0102】例えば、実施例1では、アドレス空間が3
2ビットの計算機の場合、4バイトデータで表現され、
オブジェクトIDとしてUUIDを用いると16バイト
データで表現される。しかし、例えばオブジェクトID
を、使用しないアドレス空間のアドレス識別子として、
割り当て表現してもよい。これにより、オブジェクトア
ドレスとオブジェクトIDが同一のデータ型で表現で
き、オブジェクトの指定にオブジェクトアドレスを使用
するかオブジェクトIDを使用するかにかかわらず、同
じオブジェクトのプログラムを使用でき、プログラムの
移植や再利用が容易になるという効果がある。
【0103】
【発明の効果】本発明によれば、複数のプロセスのオブ
ジェクト間で処理を依頼し合う場合において、プロセス
内のオブジェクトについてはオブジェクトアドレス指定
により高速に処理することでき、効率のよいオブジェク
ト指向情報処理システムを提供することができる。
【0104】また本発明によれば、上記場合において、
アプリケーションプログラマが、他のプロセス上の処理
依頼先オブジェクトとの通信処理を行うためのプログラ
ムを記述する必要がなく、複数のプロセス上で通信する
オブジェクト指向情報処理システムを、容易に構築する
ことが可能であり、しかも、プログラムの再利用や移植
が容易なオブジェクト指向情報処理システムを提供する
ことができる。
【図面の簡単な説明】
【図1】本発明の一実施例に係るシステム構成をあらわ
す概念図である。
【図2】オブジェクト指向システムにおけるソフトウェ
ア構造の基本モデルをあらわした概念図である。
【図3】本実施例に係る通信処理部の構成を示したブロ
ック図である。
【図4】内部オブジェクトテーブルのテーブル構造図で
ある。
【図5】外部オブジェクトテーブルのテーブル構造図で
ある。
【図6】外部呼び出し関数の動作を示す処理フローであ
る。
【図7】内部呼び出し関数の動作を示す処理フローであ
る。
【図8】本発明に係る第一の実施例の処理依頼の動作を
具体的に示した模式図である。
【図9】本発明に係る第二の実施例の処理依頼の動作を
具体的に示した模式図である。
【符号の説明】
1,2…計算機、1p,2p…プロセッサ、1n,2n
…ネットワークアダプタ、1d,2d…ディスク装置、
1m,2m…メモリ、1o,2o…OS、11,12,
21,22…プロセス、110,120,210,22
0…通信処理部、11c1,11c2,12c1,12
c2,21c1,21c2,22c1,22c2…クラ
ス、11o1,11o2,12o1,12o2,21o
1,21o2,22o1,22o2…オブジェクト、1
11…遠隔手続き呼び出し処理部、112…外部処理依
頼送信部、113…オブジェクト識別子記憶部、114
…外部処理依頼受信部、1131…外部オブジェクトテ
ーブル、1132…内部オブジェクトテーブル、111
1…遠隔手続き呼び出し実行時ライブラリ、1112…
クライアントスタブ、1112…サーバスタブ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 恒冨 邦彦 茨城県日立市大みか町七丁目1番1号 株 式会社日立製作所日立研究所内 (72)発明者 中村 智明 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 複数のオブジェクトを含むプロセスが複
    数存在し、前記オブジェクト間で処理を依頼し合って処
    理を進めるオブジェクト指向情報処理システムにおい
    て、 各々のオブジェクトに、 プロセス内で、オブジェクトを一意に指定するためのオ
    ブジェクトアドレスと、 このオブジェクト指向情報処
    理システム全体で、オブジェクトを一意に指定するため
    のオブジェクト識別子とを設け、 各々のプロセス内に、 前記オブジェクトと前記オブジェクト識別子の対応を記
    憶するオブジェクト識別子記憶手段と、 外部処理依頼送信手段と、 外部処理依頼受信手段とを有し、 処理依頼元オブジェクトがその処理依頼元オブジェクト
    が存在するプロセスとは異なるプロセスに存在する処理
    依頼先オブジェクトに処理を依頼する場合に、 前記外部処理依頼送信手段が、前記オブジェクト識別子
    記憶手段を参照して、オブジェクトアドレスを、対応す
    るオブジェクト識別子に変換し、そのオブジェクト識別
    子を指定して、処理依頼メッセージを依頼先プロセスに
    送信して、 前記外部処理依頼受信手段が、外部のプロセスの処理依
    頼元オブジェクトからの処理依頼メッセージを受信した
    場合に、前記オブジェクト識別子記憶手段を参照して、
    前記受信した処理依頼メッセージで指定されたオブジェ
    クト識別子を、対応する処理依頼先オブジェクトのオブ
    ジェクトアドレスに変換して、 そのオブジェクトアドレスを参照することにより、この
    メッセージを受信したプロセス内で処理を進めることを
    特徴とするオブジェクト指向情報処理システム。
  2. 【請求項2】 前記外部処理依頼送信手段は、処理依頼
    メッセージに付加された引数に含まれるオブジェクトア
    ドレスについて、前記オブジェクト識別子記憶手段を参
    照して、前記オブジェクトアドレスを、対応するオブジ
    ェクト識別子に変換して処理依頼メッセージを送信し
    て、 前記外部処理依頼受信手段は、前記受信した処理依頼メ
    ッセージ中の引数に含まれた前記オブジェクト識別子
    を、対応する処理依頼先オブジェクトのオブジェクトア
    ドレスに変換して、 そのオブジェクトアドレスを参照することにより、この
    メッセージを受信したプロセス内で処理を進めることを
    特徴とする請求項1記載のオブジェクト指向情報処理シ
    ステム。
  3. 【請求項3】 前記外部処理依頼送信手段は、処理依頼
    メッセージに付加された引数に含まれるオブジェクトア
    ドレスについて、前記オブジェクト識別子記憶手段を参
    照して、前記オブジェクトアドレスを、対応するオブジ
    ェクト識別子に変換して処理依頼メッセージを送信し
    て、 前記外部処理依頼受信手段は、処理依頼メッセージ中の
    引数に含まれたオブジェクト識別子のうち、この処理メ
    ッセージを受信したプロセス上に存在するオブジェクト
    に対応するオブジェクト識別子についてのみ、前記オブ
    ジェクト識別子記憶手段を参照して、そのオブジェクト
    識別子を、対応する処理依頼先オブジェクトのオブジェ
    クトアドレスに変換して、 そのオブジェクトアドレスを参照することにより、この
    メッセージを受信したプロセス内で処理を進めることを
    特徴とする請求項1記載のオブジェクト指向情報処理シ
    ステム。
  4. 【請求項4】 前記オブジェクト識別子は、前記オブジ
    ェクトアドレスと同一のデータ型とすることを特徴とす
    る請求項1ないし請求項3記載のいずれかのオブジェク
    ト指向情報処理システム。
JP16499694A 1994-07-18 1994-07-18 オブジェクト指向情報処理システム Pending JPH0830455A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP16499694A JPH0830455A (ja) 1994-07-18 1994-07-18 オブジェクト指向情報処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP16499694A JPH0830455A (ja) 1994-07-18 1994-07-18 オブジェクト指向情報処理システム

Publications (1)

Publication Number Publication Date
JPH0830455A true JPH0830455A (ja) 1996-02-02

Family

ID=15803867

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16499694A Pending JPH0830455A (ja) 1994-07-18 1994-07-18 オブジェクト指向情報処理システム

Country Status (1)

Country Link
JP (1) JPH0830455A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002082922A (ja) * 2001-06-14 2002-03-22 Digital Vision Laboratories Corp 並列分散処理方法
US7565664B2 (en) 2002-06-28 2009-07-21 Hitachi, Ltd. Distributed object controlling method and its carrying out system
JP2010529524A (ja) * 2007-05-04 2010-08-26 クゥアルコム・インコーポレイテッド スケーラブル/冗長遠隔通信システムを構築するためのプロセス間通信方法および装置
US7864350B2 (en) 2002-12-12 2011-01-04 Seiko Epson Corporation Image processing method and image processing system using the same

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002082922A (ja) * 2001-06-14 2002-03-22 Digital Vision Laboratories Corp 並列分散処理方法
US7565664B2 (en) 2002-06-28 2009-07-21 Hitachi, Ltd. Distributed object controlling method and its carrying out system
US7864350B2 (en) 2002-12-12 2011-01-04 Seiko Epson Corporation Image processing method and image processing system using the same
JP2010529524A (ja) * 2007-05-04 2010-08-26 クゥアルコム・インコーポレイテッド スケーラブル/冗長遠隔通信システムを構築するためのプロセス間通信方法および装置
US8464272B2 (en) 2007-05-04 2013-06-11 Qualcomm Incorporated Inter-process communication methods and apparatus for building scalable/redundant telecommunications systems

Similar Documents

Publication Publication Date Title
JP2978807B2 (ja) 遠隔プロシージャ・コール・システムおよび方法
US5778228A (en) Method and system for transferring remote procedure calls and responses over a network
US6134603A (en) Method and system for deterministic hashes to identify remote methods
EP0735470B1 (en) Method and apparatus for determining the type of an object in a distributed object system
US5511197A (en) Method and system for network marshalling of interface pointers for remote procedure calls
EP0657047B1 (en) Method and system for implementing remote procedure calls in a distributed computer system
US6487607B1 (en) Methods and apparatus for remote method invocation
US5452433A (en) Common agent computer management system and method
US6549955B2 (en) System and method for dynamic generation of remote proxies
US6941561B1 (en) Method and apparatus for remotely running objects using data streams and/or complex parameters
US6951021B1 (en) System and method for server-side communication support in a distributed computing environment
US20020199036A1 (en) Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
US6629154B1 (en) Method and system for deterministic hashes to identify remote methods
JPH09231076A (ja) 汎用スタブがオブジェクト参照固有のデータフォーマットのデータを整列/整列解除できるようにする方法及びそのための装置
EP1752873A2 (en) Method and apparatus for providing support for introspection for local and anonymous classes
US6751798B1 (en) Method and apparatus for performing distributed object calls using proxies and memory allocation
US7434235B2 (en) Type server caching the proxy/stub generation
US6951022B1 (en) Delegate-based event handling
US20080162631A1 (en) Enabling Client Systems to Discover Services Accessible by Remote Procedure Calls (RPC) on Server Systems
US8676842B2 (en) Creating multiple Mbeans from a factory Mbean
JPH0830455A (ja) オブジェクト指向情報処理システム
Pautet et al. GLADE users guide
US8082553B2 (en) Client management of java management extensions (JMX) Mbean state
Pautet et al. CORBA & DSA: Divorce or marriage?
JP3007340B1 (ja) 機能呼び出し方法、並列分散処理システムおよびコンピュータ