JPH0546569A - 分散処理システム - Google Patents

分散処理システム

Info

Publication number
JPH0546569A
JPH0546569A JP19915391A JP19915391A JPH0546569A JP H0546569 A JPH0546569 A JP H0546569A JP 19915391 A JP19915391 A JP 19915391A JP 19915391 A JP19915391 A JP 19915391A JP H0546569 A JPH0546569 A JP H0546569A
Authority
JP
Japan
Prior art keywords
message
objects
processing system
distributed processing
world
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.)
Granted
Application number
JP19915391A
Other languages
English (en)
Other versions
JP3006187B2 (ja
Inventor
Takanori Yokoyama
孝典 横山
Masaru Shimada
優 島田
Tadashi Kamiwaki
正 上脇
Masahiko Saito
雅彦 斉藤
Yoshiki Kobayashi
小林  芳樹
Hiroaki Nakanishi
宏明 中西
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 JP3199153A priority Critical patent/JP3006187B2/ja
Priority to US07/926,519 priority patent/US5519875A/en
Publication of JPH0546569A publication Critical patent/JPH0546569A/ja
Application granted granted Critical
Publication of JP3006187B2 publication Critical patent/JP3006187B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】大規模分散処理システムの多数のオブジェクト
の効率的な管理を実現することのできる分散処理システ
ムを提供する。 【構成】本発明ではオブジェクトの集合(2w,3w)
をひとつのオブジェクトとして扱うことのできるオブジ
ェクト化手段(12o,13o)を設け、オブジェクト
化手段によりオブジェクト化したひとつのオブジェクト
に対する処理依頼を、オブジェクト化された複数のオブ
ジェクトのうち最適なオブジェクトに依頼するメッセー
ジ転送手段(2m,3m)を設けている。 【効果】大量のオブジェクトをモジュール化して管理で
き、それらモジュール化された複数のオブジェクトの詳
細を意識せずにそれらの機能やデータを利用できるた
め、大規模な分散処理システムの処理及び管理を効率化
できる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、大規模分散処理に適し
た分散処理システムに係り、特に、多数の計算機を接続
した複数のネットワークを含む分散処理システムに関す
る。
【0002】
【従来の技術】最近分散処理が様々な分野で利用されて
いるが、効率よい分散処理を実現するためには、各計算
機上のオブジェクトを効率的に管理,活用するととも
に、それらの間の通信を効率化する必要がある。そのた
め、これまでにいくつかの方式が提案されている。
【0003】特開昭61−267859号公報に記載のように、
各ノード上のプロセスについてその状態,識別番号,ノ
ードアドレス等を登録したプロセス管理テーブルを有
し、メッセージ送信時に、スーパバイザプロセスがプロ
セス管理テーブルを参照して、メッセージを送信するこ
とにより、効率よいメッセージ交換が行なえる分散処理
システムが知られている。
【0004】また、大量の資源を効率よく利用し、管理
するために、例えば特開平1−166158号公報に記載のよ
うに、各計算機上に分散された資源をあたかも1つの計
算機上の資源かのように見せる、仮想的な資源管理を実
現する管理情報を1台の計算機上に保持し、全ての計算
機上で同一の管理構造を持った仮想的な識別手段を用い
て、分散資源へのアクセスを行なう分散資源のアクセス
法が知られている。
【0005】
【発明が解決しようとする課題】しかし、上記従来技術
はプロセスを各計算機毎に管理したり、あるいはシステ
ム全体の資源を1箇所で統一的に管理する方式である。
このため、広域に分散され、大量のハードウェア,ソフ
トウェアを有する、大規模分散処理システムの効率的な
管理については配慮がなされておらず、大規模システム
を対象とする場合には、システム構成を詳細に知らない
と効率的な処理は実現できないという問題があった。
【0006】本発明は、大規模分散処理システムの多数
のオブジェクトの効率的な管理を実現することのでき
る、分散処理システムを提供することを目的としてい
る。
【0007】さらに、本発明は、効率的に管理されたそ
れらのオブジェクトを効率的に利用することのできる分
散処理システムを提供することを他の目的としている。
【0008】ここでオブジェクトとは、アプリケーショ
ンプログラム,プロセス,プログラムモジュール,ファ
イル,データベース,その他、分散環境における資源を
意味し、一般にメッセージを受信することにより処理が
起動される。そして、オブジェクトがメッセージ交換を
しながら処理が進む。
【0009】
【課題を解決するための手段】上記目的を達成するため
には、大量のオブジェクトのうち、関連あるオブジェク
トをモジュール化して管理する方式が有効である。しか
し、そのためには、モジュール化したオブジェクトの集
合を効率的に利用し、管理するための手段が必要であ
る。そこで本発明では、オブジェクトの集合をひとつの
オブジェクトとして扱うことのできるオブジェクト化手
段を設けている。
【0010】また、上記他の目的を達成するため、上記
オブジェクト化手段によりオブジェクト化したひとつの
オブジェクトに対しメッセージが送られた場合、該メッ
セージに対する処理を、オブジェクト化された複数のオ
ブジェクトのうち最適なオブジェクトに依頼して効率的
に処理するように、メッセージ転送手段を設けている。
【0011】
【作用】オブジェクト化手段は、複数のオブジェクトの
持つ機能とデータを利用する場合に、他のひとつのオブ
ジェクトの持つ機能とデータとして扱うことのできるイ
ンタフェースを提供する。従って、ある別のオブジェク
トが前記機能あるいはデータを利用する場合には、オブ
ジェクト化したオブジェクトにメッセージを送信して処
理を依頼するのみで、もともとひとつのオブジェクトに
よりそれらの機能やデータを実現した場合と同じ方法に
よって利用することができる。
【0012】また、メッセージ転送手段は、モジュール
化した複数のオブジェクトの機能やデータに関する情報
を記憶しており、オブジェクト化したオブジェクトにメ
ッセージにより処理が依頼された場合に、モジュール化
された複数のオブジェクトの機能やデータを効率的に利
用するため、上記記憶している機能やデータに関する情
報を参照して、モジュール化した複数のオブジェクトの
うち依頼された処理を実行するオブジェクトを選択し、
該オブジェクトにメッセージを転送することにより、効
率的な処理を実現する。
【0013】
【実施例】以下、本発明の実施例を図を用いて詳細に説
明する。
【0014】(1) 本発明の一実施例の概要 まず本発明の一実施例の概要を説明する。本実施例では
オブジェクトはひとつのプログラムモジュールで、計算
機内ではひとつのプロセスとして実行される。プロセス
はプロセッサによって実行される一連のプログラムの処
理の流れであり、タスクとも呼ばれる。一般にアプリケ
ーションプログラムは複数の機能モジュールから構成さ
れるが、それぞれの機能モジュールをオブジェクトとす
ることができる。そして、それらのオブジェクト間でメ
ッセージを送受信することにより通信を行ないながら、
処理を実行する。分散システムでは特定の処理を依頼す
る側のクライアントプロセスと、依頼された処理を実行
するサーバプロセスの組み合わせによりアプリケーショ
ンプログラムを構成する手法が広く用いられているが、
このクライアントプロセスやサーバプロセスはそれぞれ
ひとつのオブジェクトである。オブジェクトの詳細は後
述する。
【0015】実際の分散処理システムでは複数のアプリ
ケーションプログラムが同時に実行されるため、分散処
理システム全体は多数のオブジェクトが存在することに
なる。分散システムではこれら多数のオブジェクトを効
率よく管理することが非常に重要になる。そこで、関連
のある複数のオブジェクトをモジュール化して管理する
こととする。モジュール化したオブジェクトの集団を世
界と呼ぶことにする。図1は本発明の一実施例の概念的
な構成図である。システムにはオブジェクト111,1
21,122,131,132,211,221,31
1,321、他、多数のオブジェクトが存在する。ここ
で、オブジェクト211,221,222,231,2
32を世界2wとして、オブジェクト311,321,
322,331,332を世界3wとしてモジュール化す
る。そして、同一の世界内のオブジェクト間でのみ直接
メッセージ通信が可能とする。
【0016】しかし、これでは世界外のオブジェクトか
ら外世界内のオブジェクトの有する機能を利用すること
は不可能である。そこで、ひとつの世界内のオブジェク
トの機能やデータを他のオブジェクトからも容易かつ効
率的に利用可能とするため、それら世界内の複数のオブ
ジェクトの有する機能をあたかもひとつのオブジェクト
であるかのように扱えるインタフェースを提供する。た
だし一般に世界内の全てのオブジェクトの全ての機能や
データを世界外に提供する必要はなく、必要となる一部
の機能やデータを外部から取り扱い可能とすればよい。
本実施例では世界2w内のオブジェクトの持つ機能の一
部をひとつのオブジェクト121として、また、世界3
w内のオブジェクトの持つ機能の一部をひとつのオブジ
ェクト131として扱えるようにする。そして、それら
のオブジェクトを含む、オブジェクト111,121,
131,141,142をひとつの世界1wとしてモジ
ュール化する。
【0017】世界内の複数オブジェクトの機能の一部を
他の世界のひとつのオブジェクトに代表させるため、本
実施例ではオブジェクト化処理12o,13oとメッセ
ージ転送処理2m、3mを設ける。オブジェクト化処理
は世界内のオブジェクトの持つ機能の一部をひとつのオ
ブジェクトの持つ機能として見せるための処理で、メッ
セージ転送処理は世界外のオブジェクトから依頼された
仕事を、実際に世界内の特定のオブジェクトに割り当て
る処理である。すなわち、他の世界を代表するオブジェ
クトに送られたメッセージは該オブジェクトに関連づけ
られたオブジェクト化処理によって他の世界に転送さ
れ、さらに該他の世界のメッセージ転送処理部によって
その世界内の特定のオブジェクトに転送されて処理され
る。これにより、各オブジェクトはそれらのオブジェク
トが存在する世界内のオブジェクトとの通信を行なうの
みで、間接的に異なる世界間で通信を行ない、他の世界
のオブジェクトの機能を利用することが可能となる。
【0018】本実施例では、例えば、オブジェクト化処
理12oは、世界2w内のオブジェクトが持つ機能B,
機能C,機能D,機能J,機能N,機能Pのうち、機能
B,機能C,機能Dのみを、世界1w内のオブジェクト
121の持つ機能として見せる。従って世界1w内のオ
ブジェクトは世界2w内のオブジェクトと直接通信する
ことなく、オブジェクト121自身が機能B,機能C,
機能Dを持つものとして仕事を依頼することができる。
ここで、依頼された仕事は実際には世界2w内のいずれ
かのオブジェクトにより実行されるが、実際にどのオブ
ジェクトに割り当てるかはメッセージ転送処理2mによ
り決定される。これらの処理の詳細は後述する。
【0019】例えば図1で、オブジェクト111がオブ
ジェクト121にメッセージ1112mにより仕事を依頼し
たとすると、該メッセージに対する処理はオブジェクト
化処理12oに依頼され(12o1)、さらにメッセー
ジ転送処理部2mに依頼される(12o2)。メッセー
ジ転送処理部2mは例えばオブジェクト211にメッセ
ージ2121mを送信することにより処理を依頼する。
そしてオブジェクト211が実際に処理を行なう。必要
によりオブジェクト211は、例えばオブジェクト22
1にメッセージ2122mを、さらにオブジェクト22
1はメッセージ2223mをオブジェクト231に送信
して、世界2w内の複数のオブジェクトにより依頼され
た処理を実行する。
【0020】(2) システム構成 本発明の一実施例の具体的な構成を図2により説明す
る。本発明の一実施例はネットワーク1、ネットワーク
2,ネットワーク3の複数のネットワークが存在する分
散処理システムである。ネットワーク1には計算機1
1,計算機12,計算機13、ネットワーク2には計算
機21,計算機22,計算機23、ネットワーク3には
計算機31,計算機32,計算機33が接続されてい
る。ネットワーク1とネットワーク2はゲートウェイ1
2g、ネットワーク1とネットワーク3はゲートウェイ
13gによって接続され、複数のネットワークにわたる
通信が可能である。
【0021】ネットワークにはネットワーク番号が与え
られており、ネットワーク番号を指定することによりシ
ステム内でネットワークを一意に決定することができ
る。また、ネットワーク毎に計算機には計算機番号が与
えられており、計算機番号を指定することによりネット
ワーク内で一意に計算機を決定することができる。ネッ
トワーク番号と計算機番号を組み合わせて計算機アドレ
スを形成し、計算機アドレスを指定することにより、シ
ステム内で計算機を一意に決定できる。例えば、プレン
ティス・ホール社(Prentce-Hall, Inc.)刊、インター
ネットワーキング・ウィズ・ティー・シー・ピー/アイ
・ピー、プリンシプルズ、プロトコルズ、アンド・アー
キテクチャ(1988年)(Internetworking with TCP
/IPPrinciples, Protocols, and Architecture (198
8))において紹介されているように、現在広く用いら
れているネットワーク通信プロトコルであるTCP/I
Pプロトコルでは、32ビットの整数で表現された計算
機アドレスを用いる。本発明の1実施例ではネットワー
ク1、ネットワーク2,ネットワーク3のネットワーク
番号をそれぞれ1,2,3とする。また、例えば計算機
11の計算機番号は1、計算機アドレスは11,計算機
12の計算機番号は2、計算機アドレスは12、計算機
21の計算機番号は1、計算機アドレスは21とする。
他の計算機の計算機番号,計算機アドレスも同様であ
る。
【0022】各計算機は複数のプロセスを同時に実行で
きるマルチプロセス機能を有している。従ってひとつの
計算機上で複数のオブジェクトが同時に存在し、並行に
動作することができる。例えば、アジソン・ウェスリー
社(Addison-Wesley PublishCompany)刊、ザ・デザイン
・アンド・インプリメンテーション・オブ・ザ・4.3
ビー・エス・ディー・ユニックス・オペレーティング・
システム(1989年)(The Design and Implementation
of the 4.3BSD UNIX Operation System(198
9))に記載されているように、現在広く用いられてい
るユニックス(UNIX)・オペレーティングシステム
(UNIXはAT&Tベル研究所で開発されたオペレー
ティングシステム)はマルチプロセス機能を持ってお
り、これを利用することによりひとつの計算機上で複数
のプロセスを同時に実行できる。各計算機にはプロセス
間通信処理部がひとつずつ存在する。本実施例では、計
算機11には11c、計算機12には12c、計算機2
1には21cが存在する。他の計算機にも同様にプロセ
ス間通信処理部が存在する。プロセス間通信処理部によ
りプロセス間でメッセージ通信を行なうことができる。
【0023】プロセス間の通信はポートを用いて行な
う。各計算機には複数のポートが用意されており、各ポ
ートにはポート番号が与えられている。ひとつの計算機
内ではポート番号を指定することにより、ポートを一意
に決定できる。例えば、前記ザ・デザイン・アンド・イ
ンプリメンテーション・オブ・ザ・4.3ビー・エス・
ディー・ユニックス・オペレーティング・システム(1
989年)記載のように、ユニックス・オペレーティン
グシステムはソケット(socket)と呼ばれるプロセス間
通信機能を提供している。ここでは、16ビット(2バ
イト)の整数で表現されるポート番号によりポートを指
定する。
【0024】本実施例では、プロセス間通信処理部はソ
ケットを利用する。ソケットではソケットアドレスを指
定することによりプロセス間通信が可能である。ソケッ
トアドレスはアドレスファミリ番号、ポート番号、およ
び計算機アドレスから成る。アドレスファミリ番号はア
ドレスの型を表わす16ビット(2バイト)の整数であ
る。しかし本実施例では用いるアドレスの型はひとつの
みであり、アドレスファミリ番号は常に同一のものを用
いる。従って、計算機アドレスとポート番号を指定する
のみでプロセス間通信が可能である。
【0025】各計算機にはオブジェクトが存在する。例
えば計算機11にはオブジェクト111,計算機12に
はオブジェクト121,オブジェクト122,計算機1
3にはオブジェクト131,オブジェクト132,計算
機21にはオブジェクト211,計算機22にはオブジ
ェクト221,オブジェクト222が存在する。同様に
他の計算機にもオブジェクトが存在する。
【0026】各オブジェクトに対し、ひとつずつメタオ
ブジェクトが存在する。メタオブジェクトはオブジェク
トを管理する機能をもつプログラムモジュールで、本実
施例では主として通信管理、すなわち、メッセージの送
受信に関する処理を実行する。例えばオブジェクト11
1にはメタオブジェクト116が、オブジェクト211に
はメタオブジェクト216が存在し、互いに関連づけら
れている。ただし、他の世界を代表するオブジェクトに
対しては、通常のメタオブジェクトにオブジェクト化処
理を実行する機能を付加したオブジェクト化処理機能付
きメタオブジェクトを設ける。従って本実施例では図1
におけるオブジェクト化処理はオブジェクト化処理機能
付きメタオブジェクトによって実行される。例えば、計
算機12にはオブジェクト121に関連づけられたオブ
ジェクト化処理機能付きメタオブジェクト126が存在
し、計算機13にはオブジェクト131に関連づけられ
たオブジェクト化処理機能付きメタオブジェクト136
が存在する。そして図1におけるオブジェクト化処理1
2oはオブジェクト化処理機能付きメタオブジェクト1
26が、オブジェクト化処理13oはオブジェクト化処
理機能付きメタオブジェクト136が実行する。
【0027】本実施例ではひとつのオブジェクトはひと
つのプロセスで実行されるが、メタオブジェクトもオブ
ジェクトのプロセス内に含まれるものとする。従ってオ
ブジェクトとそれに関連づけられたメタオブジェクトは
同一計算機上に存在する。
【0028】本発明の一実施例では複数のオブジェクト
をモジュール化したものを世界と呼ぶことにする。すな
わち、世界とは複数の関連するオブジェクトが存在する
範囲を示す。世界はシステム内に複数存在できる。世界
には世界名が与えられる。同一世界内のオブジェクト間
でのみ直接通信可能である。オブジェクトにはオブジェ
クト名が与えられる。オブジェクト名を指定することに
よりひとつの世界内でオブジェクトを一意に決定でき
る。
【0029】本実施例ではひとつのネットワークに接続
された計算機に存在するオブジェクトがひとつの世界に
属するものとする。すなわちネットワーク1に接続され
た計算機に存在するオブジェクトは世界1wに、ネット
ワーク2に接続された計算機に存在するオブジェクトは
世界2wに、ネットワーク3に接続された計算機に存在
するオブジェクトは世界3wに属する。すなわち、オブ
ジェクト111,121,122,131,132は世界1
wに、オブジェクト211,221,222,231,
232は世界2wに、オブジェクト311,321,3
22,331,332は世界3wに属する。
【0030】世界毎にひとつのメッセージ転送処理部と
ひとつの世界内オブジェクト管理データベースが存在す
る。すなわち、各ネットワークに接続された計算機のう
ちのひとつにメッセージ転送処理部と世界内オブジェク
ト管理データベースが存在する。本実施例では、ネット
ワーク1に接続された計算機11にメッセージ転送処理
部1mと世界内オブジェクト管理データベース1dが、
ネットワーク2に接続された計算機21にメッセージ転
送処理部2mと世界内オブジェクト管理データベース2
dが、ネットワーク3に接続された計算機31にメッセ
ージ転送処理部3mと世界内オブジェクト管理データベ
ース3dが存在する。
【0031】本実施例ではメッセージ転送処理部のメッ
セージ転送処理はプログラムで記述され、ひとつのメッ
セージ転送処理部はひとつのプロセスで実行される。世
界内オブジェクト管理データベースはファイルであり、
該世界内のオブジェクトのオブジェクト名、オブジェク
トが存在する計算機アドレス、オブジェクトに関連づけ
られたメタオブジェクトに接続されたポート番号、オブ
ジェクトが受け付け可能なメッセージ、オブジェクトの
機能に関する情報が記憶されている。メッセージ転送処
理部は世界内オブジェクト管理データベース内に記憶さ
れている情報を読みだすことにより、オブジェクト間の
メッセージの転送を実行することができる。
【0032】世界内の複数のオブジェクトの機能を他の
世界のオブジェクトに代表させるには、メッセージ転送
処理部とオブジェクト化処理機能付きメタオブジェクト
を関連づける必要がある。そこで、メッセージ転送処理
部とオブジェクト化処理機能付きメタオブジェクトは、
互いに相手が存在する計算機アドレスとポート番号を記
憶しておき、それらの間でプロセス間通信を行なうこと
とする。本実施例ではメッセージ転送処理部に固定のポ
ート番号、例えばポート番号100を与える。これによ
り、例えばオブジェクト121宛に送信されたメッセー
ジはオブジェクト化処理機能付きメタオブジェクト12
6によりメッセージ転送処理部2mに送られる。メッセ
ージ転送処理部2mは世界内オブジェクト管理データベ
ース2dに記憶されている該世界内のオブジェクトに関
する情報を読みだし、適当な送信先オブジェクトを決定
し、該オブジェクトにメッセージを転送する。従って、
異なる世界に属するオブジェクト間で直接通信を行なう
ことなく、他の世界に属するオブジェクトの機能を利用
することができる。
【0033】本実施例の世界とオブジェクトの関係を図
3に示す。オブジェクトの立場ではオブジェクト化処理
やメッセージ転送処理等を意識する必要がないため、図
のように世界とオブジェクトの関係のみで表現できる。
世界2w内のオブジェクト211,221,222,2
31,241によって実現される機能のうちの一部の機
能が、世界1w内のオブジェクト121によって代表さ
れる。同様に世界3w内の複数のオブジェクトによって
実現される機能の一部は世界1w内のオブジェクト13
1によって代表される。このような世界の関係におい
て、世界1wは世界2wの上位世界、逆に世界2wは世
界1wの下位世界と呼ぶことにする。 (3) オブジェクト 本発明の一実施例のオブジェクトはメッセージを受信す
ることにより活性化され、処理を実行するプログラムで
ある。一般にオブジェクトはデータとそれに関する手続
きの集合である。例えば図4に示すように、オブジェク
ト132はデータと手続き1,手続き2,手続き3のプ
ログラムから成る。各手続きにはその処理を起動するた
めの受信メッセージのメッセージ名が定義されている。
例えばメッセージ名がメッセージeのメッセージを受信
した場合には手続き1を、メッセージ名がメッセージf
のメッセージを受信した場合には手続き2を、メッセー
ジ名がメッセージhのメッセージを受信した場合には手
続き3を起動するように定義される。
【0034】ただし、オブジェクト化処理機能付きメタ
オブジェクトに関連づけられたオブジェクトの場合は、
特に手続きを定義しなくても、オブジェクト化処理機能
付きメタオブジェクトのオブジェクト化処理により、受
信メッセージに対応する処理が実行される。この動作の
詳細は後述する。
【0035】メッセージはオブジェクト間で情報をやり
とりするための手段である。本実施例ではメタオブジェ
クトが通信管理機能を持つため、オブジェクトがメタオ
ブジェクトにメッセージ送受信を依頼することによりオ
ブジェクト間通信が実行される。
【0036】オブジェクトが扱うメッセージはメッセー
ジ名のみ、あるいはメッセージ名と1以上の引数データ
から成る。実際にオブジェクトが扱うメッセージのデー
タ形式を図5に示す。メッセージ800はメッセージ名
を表わす文字列が格納されているメモリアドレス80
1,引数の数を表わすデータ802と、各引数データが
格納されているメモリアドレス803、804等から成
る。そしてメッセージ名の文字列は8011,8012
のように、文字コードの並びで表現される。引数の実際
のデータはそれぞれのデータ型に従って、8031,8
041のように記憶される。引数のデータ型が何かはあ
らかじめメッセージ毎に送信側オブジェクトと受信側オ
ブジェクトで一致するように、それぞれのオブジェクト
のプログラムで定義されている。同様に返答の有無や返
答のデータ型についてもあらかじめ定義されている。返
答はメッセージの引数で示したアドレスに格納される。
メッセージの引数の数やデータ型、返答の有無やそのデ
ータ型の情報は該メッセージを送受信するオブジェクト
に関連づけられたメタオブジェクトにも記憶され、メタ
オブジェクトのメッセージ送受信処理に利用される。
【0037】オブジェクトの動作を図6により説明す
る。オブジェクトはまず、メタオブジェクトに該オブジ
ェクト宛のメッセージの読みだしを依頼する(100
1)。これはメタオブジェクトのプログラム中の手続き
を呼び出すことにより実行される。メッセージの読みだ
し依頼に対するメタオブジェクトの動作は後述する。メ
タオブジェクトが受信したメッセージが存在すれば図5
に示した形式のデータとしてメッセージを受け取ること
ができる。受信したメッセージが得られなければ、メタ
オブジェクトへのメッセージ読みだし依頼を繰り返し、
得られれば次の処理に移る(1002)。次にオブジェ
クトは受信したメッセージに対する手続き選択実行処理
を実行し(1100)、返答が必要であれば(100
3)、メタオブジェクトにメッセージ返答を依頼する
(1004)。メッセージ返答依頼もメタオブジェクト
の手続きを呼び出すことにより実行できる。
【0038】次に受信メッセージに対する手続き選択実
行処理を図7により説明する。これは図4に示したオブ
ジェクト132の例である。まず受信した受信したメッ
セージのメッセージ名が何であるかを判定する(110
1)。メッセージeであれば手続き1を実行し(110
2)、メッセージfであれば手続き2を実行し(1103)、
メッセージhであれば手続き3を実行する(110
4)。メッセージの引数は実行する手続きの処理に利用
される。なお、対応する手続きが存在しないメッセージ
名のメッセージを受信した場合にはそれを無視し、何の
処理も実行しないものとする。
【0039】オブジェクトはオブジェクト間通信により
互いにメッセージを交換しながら並行に処理を実行でき
る。オブジェクトは手続きのプログラム中で、必要によ
り他のオブジェクトへメッセージを送信することができ
る。メッセージを送信するには図5の形式のメッセージ
データを生成し、該オブジェクトに関連づけられたメタ
オブジェクトにメッセージ送信を依頼すればよい。メッ
セージ送信依頼もメタオブジェクトの手続きを呼び出す
ことにより実行される。
【0040】本実施例では複数の異なるメッセージ送信
方式を提供している。すなわち、オブジェクトアドレス
指定送信、オブジェクト名指定送信,送信先判定情報付
き送信,放送型送信がある。オブジェクトアドレス指定
送信は送信先のオブジェクトが存在する計算機アドレス
と該オブジェクトが接続されたポート名がわかっている
場合にそれらを指定して送信するものである。オブジェ
クト名指定送信は送信先のオブジェクト名を指定して送
信するもので、オブジェクト名はわかっているものの、
送信先の計算機アドレスやポート番号が不明の時に利用
することができる。送信先判定情報付き送信は送信先を
決定するのに用いる送信先判定情報として、メッセージ
を受信したオブジェクトが実行すべき手続きの機能名を
付けて送信するものである。これは、オブジェクト名,
計算機アドレス,ポート番号がわからず、機能名のみが
わかる場合に利用する。この場合、さらにメッセージ名
が不明であってもよい。送信先情報付き送信によって送
られたメッセージはメッセージ転送手段によってその送
信先やメッセージ名が決定されるが、その詳細は後述す
る。放送型送信は特に送信先を指定せず、世界内の全て
のオブジェクトにメッセージを送信する場合に用いる。
いずれの送信方式を用いるかは、メタオブジェクトにメ
ッセージ送信を依頼する時に指定する。
【0041】また、メッセージには優先順位をつけるこ
とができる。優先順位は例えば0から256までの整数
で与えることができ、数字が小さいほど優先順位が高い
ものとする。そして受信したメッセージが複数存在する
場合には、オブジェクトは優先順位の高いメッセージか
ら順にそれらのメッセージに対応する処理を実行する。
優先順位に関する処理はメタオブジェクトによって実行
されるが、これについては後述する。
【0042】(4) メタオブジェクト メタオブジェクトとオブジェクト、プロセス間通信処理
部との関係を図8に示す。メタオブジェクト137はオ
ブジェクト132とプロセス間通信処理部13cと接続さ
れている。またメタオブジェクト137はメッセージキ
ュー137qを有しており、オブジェクト132あての
メッセージは優先順位に従って並べられてメッセージキ
ュー137q中に蓄えられる。
【0043】メタオブジェクトはオブジェクトから、メ
ッセージキューからのメッセージを読みだし、メッセー
ジ送信,メッセージ返答等の依頼(1328)を受け、
処理を実行する。また、ポートからのメッセージ読みだ
しやメッセージ送信等をプロセス間通信処理部に依頼す
る(1379)。必要によりオブジェクト内のデータや
手続きの書き換え等、オブジェクトに対する処理(13
29)を実行することも可能である。
【0044】オブジェクトが扱うメッセージは図5に示
した形式であり、オブジェクトとメタオブジェクトはこ
の形式に従ってメッセージを受け渡しすることは既に述
べた。一方、プロセス間通信処理部が扱うメッセージの
形式は図9に示す形式である。すなわち、メッセージ9
00はメッセージの全体の大きさ(バイト数)を表わす
データ901,メッセージの種類を表わすデータ90
2,優先順位903,メッセージ名904,引数の数を
表わすデータ905,引数データ906,送信先判定情
報907,返答情報908から成る。ここで、メッセー
ジの種類とはオブジェクトアドレス指定送信によるメッ
セージか、オブジェクト名指定送信によるメッセージ
か、送信先判定情報付き送信によるメッセージか、放送
型送信によるメッセージか、返答メッセージかを示すも
のである。
【0045】さらに、メッセージ名はその文字列を表わ
す文字コードの並び9041,9042等からなる。文字コ
ードの並びの最後には終了記号を付ける。引数データは
引数の各データ毎にその大きさ(バイト数)とデータそ
のものの組み合わせを作り、それを全引数について並べ
たもので、1番目の引数の大きさ9061,1番目の引
数データ9062、2番目の引数の大きさ9063,2
番目の引数データ9063等から成る。返答メッセージの場
合、返答データは引数データとして送られる。送信先判
定情報は機能名を表わす文字列であり、文字コードの並
び9071,9072等である。返答情報は該メッセー
ジの返答が必要かどうかを表わすデータ9081と、メ
ッセージの送信元すなわちメッセージに対する返答先の
計算機アドレス9082及びポート番号9083から成
る。
【0046】メタオブジェクトの処理はオブジェクトか
らの要求により起動されるが、その詳細を図10により
説明する。処理はオブジェクトから依頼によって異なる
(2001)。オブジェクトからの依頼が、メッセージ
キューからのメッセージ読みだし依頼の場合は、まず、
ポートからのメッセージ読みだしをプロセス間通信処理
部に依頼して実行する(2002)。プロセス間通信処
理部はオペレーティングシステムの機能により実現され
るため、この依頼はオペレーティングシステムのシステ
ムコールを呼び出すことにより実現される。メッセージ
はひとつずつ取り出される。ポートにメッセージが存在
すれば(2003)、そのメッセージをメッセージキュ
ーに格納するメッセージ格納処理2100を実行した
後、もう一度処理2002に戻る。ポートにメッセージ
が存在しなければ、メッセージキュー内にメッセージが
存在するかどうかを調べ(2004)、存在しなければ
処理を終了し、存在すれば、メッセージキューの先頭に
あるメッセージを読みだす(2005)。読みだしたメ
ッセージが返答を必要とするものであれば、そのメッセ
ージの返答情報内のメッセージ送信元すなわち返答先の
計算機アドレスおよびポート番号を記憶する(200
6)。もしこのメタオブジェクトが通常のメタオブジェ
クトであれば、該メッセージのデータ形式を図9に示す
形式から図5に示す形式に変換してオブジェクトに渡し
(2008)、終了する。このメタオブジェクトがオブ
ジェクト化処理機能付きメタオブジェクトであればオブ
ジェクト化処理2200を実行して終了する。
【0047】オブジェクトからの依頼がメッセージ送信
の場合は、まず、オブジェクトから受け取った図5に示
す形式のデータをもとに、図9の形式のメッセージデー
タを生成し(2009)、メッセージ送信依頼処理23
00を実行する。そして、該メッセージに対する返答メ
ッセージが必要でなければ処理を終了するが、必要であ
れば次の処理に移る(2010)。すなわち、返答メッ
セージ待ち2400を実行した後、それによって得られ
た返答をオブジェクトに返す(2011)。
【0048】オブジェクトからの依頼がメッセージへの
返答であれば、図9の形式の返答メッセージデータを生
成し(2012)、記憶していた返答先の計算機アドレ
スおよびポート番号に対する返答メッセージの送信をプ
ロセス間通信処理部に依頼する(2013)。
【0049】次に以上の処理のなかの、メッセージキュ
ー格納処理2100,オブジェクト化処理2200,メ
ッセージ送信依頼処理2300,返答メッセージ待ち処
理2400について詳しく説明する。
【0050】図11は受信メッセージのメッセージ格納
処理2100を示すものである。まず、メッセージキュ
ーが空かどうかを調べ(2101)、空であればメッセ
ージキューに受信したメッセージを格納する(210
2)。空でない場合には、メッセージキュー中に受信メ
ッセージより優先順位の低いメッセージが存在するかど
うかを調べる(2103)。存在すればそれら優先順位
の低いメッセージの前に受信メッセージを挿入する(2
104)。存在しなければメッセージキューの最後尾に
受信メッセージを格納する(2105)。以上の処理に
よりメッセージキュー内のメッセージは優先順位の高い
ものから順に並ぶことになる。なお、同じ優先順位の場
合は先に届いたメッセージの方が前に位置することにな
る。
【0051】次にオブジェクト化処理2200について
説明する。この処理はオブジェクト化処理機能付きメタ
オブジェクトの場合のみ実行される。オブジェクト化処
理機能付きメタオブジェクトは処理可能メッセージ情報
を記憶しており、この情報を参照してオブジェクト化処
理を行なう。オブジェクト化処理機能付きメタオブジェ
クト126に記憶されている処理可能メッセージ情報の
例を図12に示す。メッセージ名がメッセージb,メッ
セージc,メッセージdの場合に処理可能で、それぞれ
機能B,機能C,機能Dを実現可能なことを表わしてい
る。従って、世界1w内のオブジェクトは、オブジェク
ト化処理機能付きメタオブジェクト126に接続されたオ
ブジェクト121自身が機能B,機能C,機能Dを持つ
ものとして、オブジェクト121にメッセージを送信
し、仕事を依頼することができる。オブジェクト化処理
機能付きメタオブジェクトは関連づけられたメッセージ
転送処理部の計算機アドレスを記憶しており、該オブジ
ェクト化処理機能付きメタオブジェクトの存在するプロ
セス間通信処理部に依頼してメッセージ転送処理部にメ
ッセージを転送することができる。
【0052】メッセージキューから読みだしたメッセー
ジに対するオブジェクト化処理を図13により説明す
る。まず、読みだしたメッセージのメッセージ名が処理
可能メッセージ情報に記載されたメッセージ名であるか
どうかを調べ(2201)、記載されていない場合は読
みだしたメッセージに対する処理は行なわず、終了す
る。記載されている場合には、該メッセージ名に対応す
る機能名を送信先判定情報として読みだしたメッセージ
データに書き込み(図9参照)、そのメッセージの送信
を、送信先判定情報付き送信として関連づけられている
メッセージ通信処理部の計算機アドレスとポート番号を
指定してプロセス間通信処理部に依頼する(220
2)。
【0053】例えばオブジェクト121あてにメッセー
ジbが届いた場合には、該メッセージの送信先判定情報
として機能Bを付加したのち、メッセージ転送処理部2
mに転送する。同様にメッセージdが届いた場合には送
信先判定情報として機能Dを付加して転送する。そして
後述するように、メッセージ転送処理部2mにより、こ
れらのメッセージはそれらの機能を実現する世界2w内
のオブジェクトに転送される。
【0054】次にメッセージ送信依頼処理2300につ
いて図14により説明する。この場合、メッセージの送
信形式にしたがって処理が異なる(2301)。オブジ
ェクトアドレス指定送信の場合は、与えられた計算機ア
ドレスとポート番号を指定して、プロセス間通信手段に
メッセージ送信を依頼する(2302)。オブジェクト
名指定送信,送信先判定情報付き送信、および放送型送
信の場合は、処理を行なっているメタオブジェクトに関
連づけられたオブジェクトが属する世界のメッセージ転
送処理部、すなわちそのメタオブジェクトが存在する計
算機が接続されたネットワーク内のメッセージ転送処理
部の計算機アドレスおよびポート番号を指定して、プロ
セス間通信手段にメッセージ送信を依頼する(230
3)。すなわち、この場合はメッセージの送信先の計算
機アドレスとポート番号が不明のため、いったんメッセ
ージ転送処理部にメッセージを送信し、メッセージ転送
処理部に送信先オブジェクトへのメッセージ転送を依頼
するのである。
【0055】返答メッセージ待ち処理2400について
図15により説明する。まず、ポートからのメッセージ
読みだしをプロセス間通信処理部に依頼して実行する(2
401)。ポートにメッセージが存在すれば次の処理に移
り、存在しなければ処理2401に戻る(2402)。メッ
セージが得られたならば、それが返答メッセージである
かどうかを調べる(2403)。返答メッセージであれ
ば終了するが、そうでなければ得られたメッセージをメ
ッセージキューに格納するメッセージ格納処理2100
を実行した後、もう一度処理2401に戻る。
【0056】以上のようにメタオブジェクトは主として
メッセージ送受信処理の実行,管理を行ない、優先順位
を持つメッセージの取り扱いを可能としている。また、
オブジェクト化処理機能付きメタオブジェクトの場合に
は、それが接続されたオブジェクトが他の世界に存在す
るオブジェクトの機能を持つかのように振る舞うことを
可能とする、オブジェクト化処理を実行する。
【0057】(5) メッセージ転送処理部 本実施例におけるメッセージ転送処理部は、該メッセー
ジ転送処理部へのメッセージを受信すると、世界内オブ
ジェクト管理データベースに記憶されている情報を読み
だし、メッセージの転送先のオブジェクトを決定し、そ
の計算機アドレスおよびポート番号あてにメッセージを
転送する。
【0058】世界内オブジェクト管理データベースの例
を図16に示す。その世界内に存在する全てのオブジェ
クトのオブジェクト名,計算機アドレス,ポート番号,
受付可能なメッセージ名,機能名が記憶されている。例
えば、オブジェクト111は計算機アドレス11の計算
機に存在し、ポート番号101のポートに接続されてお
り、メッセージ名がメッセージaのメッセージを受信可
能で、そのメッセージを受信した場合機能名が機能Aの
機能を持つ手続きを実行することが記憶されている。ま
た、オブジェクト132は計算機アドレス13の計算機
に存在し、ポート番号102のポートに接続されており
メッセージ名がメッセージe,メッセージf,メッセー
ジhのメッセージを受信可能であり、そのメッセージe
を受信した場合には機能Iの手続きを実行し、メッセー
ジfを受信した場合には機能Kの手続きを実行し、メッ
セージhを受信した場合には機能Hの手続きを実行する
ことが記憶されている。また、オブジェクト121は世
界2w内のオブジェクトの持つ機能の一部を代表する
が、図16を見ると、世界2内のオブジェクトの持つ機
能のうち、機能B,機能C,機能Dをオブジェクト12
1が代表していることがわかる。
【0059】メッセージ転送処理部の動作を図17によ
り説明する。メッセージ転送処理部は最初に、該メッセ
ージ転送処理部のポートに格納されたメッセージをプロ
セス間通信処理部に依頼して読みだす(3001)。メ
ッセージが得られれば次の処理に移り、得られなければ
処理4001に戻る(3002)。次にメッセージの種
類を調べる(3003)。
【0060】まず、メッセージがオブジェクト名指定送
信メッセージであれば、世界内オブジェクト管理データ
ベースに記憶されている情報を読みだし、指定された送
信先オブジェクトが存在する計算機アドレスとポート番
号を求め(3004)、その計算機アドレスとポート番
号を指定して、読みだしたメッセージの送信をプロセス
間通信処理部に依頼する(3005)。
【0061】次に、メッセージが送信先判定情報付き送
信メッセージであれば、送信先判定情報として与えられ
た機能名と世界内オブジェクト管理データベースに記憶
されたオブジェクト名と計算機アドレス,ポート番号,
受付可能メッセージ名、および機能名の情報を比較し
て、メッセージの送信先オブジェクトの計算機アドレス
とポート番号およびメッセージ名を決定し(300
6)、決定した送信先の計算機アドレスとポート番号を
指定してメッセージ送信をプロセス間通信処理部に依頼
する(3007)。ここで、機能名が一致した世界内オ
ブジェクト管理データベース内のメッセージ名が、送ら
れてきたメッセージのメッセージ名と異なる場合には、
世界内オブジェクト管理データベース内のメッセージ名
に書き改められる。
【0062】例えば世界2wのメッセージ転送処理部2
mに、機能Bという送信先判定情報が付加された、送信
先判定情報付き通信によるメッセージが転送されてきた
場合には、図16に示した世界内オブジェクトデータベ
ース2dを参照して、計算機アドレスが22ポート番号
が101のオブジェクト221にメッセージgというメ
ッセージ名のメッセージを送信すればよいことがわか
る。この場合転送されてきたメッセージのメッセージ名
が指定されていなくても、あるいは別のメッセージ名で
あっても、メッセージ名はメッセージgに訂正されてか
ら送信される。従って、前述のように世界1w内のオブ
ジェクト121にメッセージbが送られた場合には、世
界2wのメッセージ転送処理部に転送されてきたメッセ
ージのメッセージ名はメッセージgに訂正されて、オブ
ジェクト221に転送されることになる。
【0063】なお、世界内オブジェクトデータベースの
機能名には、該機能を実現するためにはひとつのオブジ
ェクトへのメッセージ送信でよいのか、世界内のオブジ
ェクトへの放送型通信でなければならないかの判定情報
も記憶してある。例えば世界2wのメッセージ転送処理
部に、機能Dという送信先判定情報が付加された、送信
先判定情報付き通信によるメッセージが転送されてきた
場合、図16に示した世界内オブジェクトデータベース
2dを参照すると、全オブジェクトについて機能D/部
分という情報が記憶されている。これは各オブジェクト
は機能Dの一部しか実現しておらず、機能Dを実行する
には世界2内の全オブジェクトに対してメッセージを送
信する必要があることを表わしている。従ってこの場合
には全てのオブジェクトに対し、計算機アドレスとポー
ト番号を指定してメッセージ名kのメッセージを送信す
るようプロセス間通信手段に依頼する。
【0064】最後に、メッセージが放送型通信であれば
(3003)、世界内オブジェクト管理データベースに
記憶されている全てのオブジェクトに対し、計算機アド
レスとポート番号を指定して得られたメッセージを送信
するようプロセス間通信手段に依頼する(3008)。
【0065】以上のようにメッセージ転送手段は、世界
内オブジェクト管理データベースに記憶されている情報
を読みだして、メッセージの転送処理を実行する。ま
た、関連づけられた他の世界のオブジェクト化処理機能
付きメタオブジェクトから送られてきたメッセージを、
メッセージ転送手段が存在する世界内のオブジェクトに
転送する機能も有する。
【0066】(6) プロセス間通信処理部 前述のように本実施例では、プロセス間通信処理部をオ
ペレーティングシステムの持つプロセス間通信機能を用
いて実現する。したがって、メタオブジェクトやメッセ
ージ転送処理部がプロセス間通信処理部にメッセージの
送信を依頼する場合にはメッセージ送信システムコール
を、ポート内のメッセージの読みだしを依頼する時には
メッセージ受信システムコールを呼び出せばよい。
【0067】プロセス間通信処理部内の動作の概要を図
18により説明する。ここでは他の計算機からのメッセ
ージが届いたときに起動されるメッセージ受信割り込み
処理4100,該プロセス間通信処理部が存在する計算
機内のプロセスからのシステムコールによって起動され
るメッセージ送信システムコール処理4200,メッセ
ージ読みだしシステムコール処理4300の動作の概要
を説明する。
【0068】メッセージ受信割り込み処理は、他の計算
機からネットワークを経由してメッセージが到着すると
割り込みが入り(4101)起動される。そして、ネッ
トワークから送られてきたTCP/IPプロトコルに従
ったメッセージを受信し(4103)、指定されたポー
トにメッセージを格納して(4104)終了する。
【0069】メッセージ送信システムコール処理はその
計算機内のメタオブジェクト(オブジェクト化処理機能
付きメタオブジェクトを含む)またはメッセージ転送処
理部がメッセージ送信システムコールを呼び出すと(4
201)起動され、与えられたメッセージをTCP/I
Pプロトコルに従って送信する(4202)。
【0070】メッセージ受信システムコールはその計算
機内のメタオブジェクト(オブジェクト化処理機能付き
メタオブジェクトを含む)またはメッセージ転送処理部
がメッセージ受信システムコールを呼び出すと(430
1)起動され、ポート内のメッセージを読みだして呼び
出し側に返す(4302)。
【0071】以上述べたプロセス間通信処理は、例え
ば、前述のユニックス・オペレーティングシステムのソ
ケット機能をそのまま用いることができる。すなわち、
前記ザ・デザイン・アンド・インプリメンテーション・
オブ・ザ・4.3ビー・エス・ディー・ユニックス・オ
ペレーティング・システム(1989年)記載のよう
に、例えば、メッセージ送信システムコールはsendtoシ
ステムコールを、メッセージ受信システムコールはrecv
システムコールを利用すればよい。ただしこの場合に
は、プロセス間通信を利用する送信側プロセスおよび受
信側プロセスはあらかじめソケットをオープンするため
のsocketシステムコール,ソケットにアドレスを割り付
けるbindシステムコール,コネクション要求を出すconn
ect システムコール,コネクション要求を受け付けるli
stenシステムコール,コネクションを確立するacccept
システムコール等を用いて、ソケットを用いたメッセー
ジの送受信が可能な状態にしておく必要がある。
【0072】このように、プロセス間通信処理部はオペ
レーティングシステムの持つプロセス間通信機能を利用
することにより容易に実現できる。
【0073】(7) 発明の一実施例の効果 以上、本発明の一実施例について詳細に説明した。本発
明の一実施例によれば、世界内のオブジェクトをモジュ
ール化して管理でき、該世界を代表するオブジェクトが
存在する他の世界のオブジェクトは、モジュール化した
世界内のオブジェクトの機能や、それらのオブジェクト
がどの計算機上に存在するかなどを意識せずに、それら
をオブジェクト化したひとつのオブジェクトにメッセー
ジを送信するのみで処理を依頼することができるため、
効率よい処理が可能であるという効果がある。
【0074】また、世界内の計算機やオブジェクトなど
のシステムの構成を変化させても、該世界の情報を扱う
世界内オブジェクト管理データベースが記憶している情
報を変更するのみで、他の世界のオブジェクトやオブジ
ェクト化処理機能付きメタオブジェクト,メッセージ転
送処理部等の処理には変更が不要であるため、システム
の拡張や変更に柔軟に対応できるという効果がある。
【0075】異なる世界に属するオブジェクト間のメッ
セージはオブジェクト化処理機能付きメタオブジェクト
およびメッセージ転送処理部により転送されるが、オブ
ジェクト化処理機能付きメタオブジェクトとメッセージ
転送処理部の間の通信は機能名によって指定され、媒介
されるため、該機能を実現するオブジェクトやそのため
のメッセージ名を変更した場合でも、変更のあった世界
内オブジェクト管理データベースが記憶している情報を
変更するのみでよいため、柔軟なシステムが実現できる
という効果がある。
【0076】また、異なる世界に属するオブジェクトは
直接通信することはできず、世界内の一部の機能のみを
外部から利用できるため、保密性がよく、他の世界の要
因によるシステム停止や破壊が防げ、信頼性の高い分散
システムを実現できるという効果がある。
【0077】本発明の一実施例によれば、メッセージの
転送先の計算機アドレスやポート番号を知らなくても、
メッセージ転送処理部が該オブジェクトの存在する計算
機アドレスを決定し、プロセス間通信処理部が該オブジ
ェクトのポート番号を決定するため、オブジェクト名の
みを指定するだけでメッセージを送信できる。さらに送
信先のオブジェクト名やメッセージ名が不明の時でも、
利用したい機能名を指定するだけで、メッセージ転送処
理部が送信先オブジェクトを決定する機能を提供してい
る。このため、オブジェクトを作成しやすく、またオブ
ジェクトの再利用性に優れ、システムの拡張・変更に柔
軟に対応できるシステムを実現できるという効果があ
る。
【0078】また、ひとつの世界はひとつのネットワー
クに対応するため、世界内の放送型通信を効率的に行な
うことができるという効果がある。また、オブジェクト
が存在する計算機アドレス等、ひとつのネットワーク内
の構成情報は該ネットワークに接続された計算機上の世
界内オブジェクト管理データベースに記憶されており、
ネットワーク内の構成の変更は該ネットワーク外には影
響を与えないため、システム管理が容易になるという効
果がある。
【0079】本発明の一実施例によれば、オブジェクト
にはひとつずつメタオブジェクトが存在し、通信処理の
実行,管理を行なうため、オブジェクト自身はプロセス
間通信処理部を利用したメッセージ送受信処理の詳細を
意識せずにメッセージを送受信できるうえ、通信方式等
を変更する場合にも、メタオブジェクトの処理を変更す
るだけでよく、オブジェクトには影響を与えない。この
ため、オブジェクトを作成しやすく、保守性もよいとい
う効果がある。
【0080】さらに、メタオブジェクトがメッセージの
優先順位に従ってメッセージキュー内のメッセージの順
序を入れ替えることにより、オブジェクトは特に優先順
位を意識することなく、優先順位の高いものから順に処
理を実行することができる。また、優先順位に関する処
理を変更する場合にもメタオブジェクトの処理のみを修
正すればよい。このため、優先順位に関する処理を考慮
せずにオブジェクトを作成することができ開発効率が向
上するとともに、柔軟なシステムを容易に実現できると
いう効果がある。
【0081】(8) 発明の他の実施例 上記本発明の一実施例では、オブジェクトはひとつのプ
ロセスであったが、オブジェクトはアプリケーションプ
ログラム,プログラムモジュール,専用ハードウェア,
サーバプロセス,ファイル,データベースなど、メッセ
ージにより処理が起動され、システム内の資源を利用す
る処理単位であれば何でもよい。これによりシステム内
の様々な資源をオブジェクトという同一の処理単位と見
なすことができ、システム内の資源の利用,管理を効率
的に行なうことができるという効果がある。
【0082】上記本発明の一実施例では、メッセージ転
送手段および世界内オブジェクト管理データベースが存
在するが、これらを用いずにシステムを構築することも
できる。この場合、オブジェクト化機能付きメタオブジ
ェクトは他の世界のメッセージ転送手段にメッセージを
転送するのではなく、該他の世界の全てのオブジェクト
に放送型送信によりメッセージを送信するものとする。
そして該メッセージに対する処理を実行可能なオブジェ
クトがその処理を実行する。これによりシステム構成を
簡単にでき、システムを容易に構築できるという効果が
ある。
【0083】上記本発明の一実施例では、メタオブジェ
クトとオブジェクトを同一のプロセスとして実現した
が、それぞれ別プロセスとすることもできる。これによ
り、いずれか一方のプロセスに異常が生じた場合にも他
方のプロセスには影響を与えなくなる。このため、信頼
性に優れたシステムを実現できるという効果がある。
【0084】上記本発明の一実施例では、オブジェクト
にひとつずつメタオブジェクトを設けたが、オブジェク
ト化処理が必要でないオブジェクトにはメタオブジェク
トを設けずに、オブジェクトが直接プロセス間通信手段
を利用してシステムを実現することもできる。また、こ
れによりシステム構成が単純になり、開発が容易になる
という効果がある。
【0085】また、上記本発明の一実施例では、オブジ
ェクトにひとつずつメタオブジェクトを設けたが、複数
のオブジェクトが複数のオブジェクトのメッセージ送受
信を扱うひとつのメタオブジェクトを共有することもで
きる。これにより少ない資源でシステムを実現できると
いう効果がある。
【0086】上記本発明の一実施例では、処理を依頼す
るためのオブジェクト間のメッセージ通信はメッセージ
名と引数からなるメッセージを送受信することにより実
現しているが、遠隔手続き呼び出しをメッセージ通信と
して利用することもできる。これによりオブジェクトが
通常の手続きとして記述できるため、オブジェクトを記
述しやすいものとするとともに、既存のプログラムが再
利用しやすいという効果がある。
【0087】上記本発明の一実施例では、世界は2階層
であったが、世界を代表するオブジェクトを含む複数の
オブジェクトから成る世界をさらに上位の世界のオブジ
ェクトに代表させることにより多数の世界階層から成る
システムとすることもできる。例えば図19に示すよう
に、世界4w,5wをそれぞれ世界2w内のオブジェク
ト241,251に代表させ、世界6w,7wをそれぞ
れ世界3w内のオブジェクト361,371に代表さ
せ、世界2w,3wをそれぞれ世界1w内のオブジェク
ト121,131に代表させたシステムを実現できる。
これにより対象のオブジェクトを含む大規模分散システ
ムを容易に実現できる。
【0088】また、上記本発明の一実施例では、ひとつ
の世界はひとつのオブジェクトに代表させたが、ひとつ
の世界を複数のオブジェクトに代表させることもでき
る。例えば図20は、世界3wを世界1w内のオブジェ
クト131と世界2w内のオブジェクト231の2つに
代表させている。これにより異なる2つの世界のオブジ
ェクトが他の世界の機能を共有して利用することが可能
になるという効果がある。ここで、2つの異なる世界の
オブジェクトに代表させる場合、それぞれのオブジェク
トに代表させる機能やデータを異なるものとすることも
できる。これによりそれぞれの世界に適したインタフェ
ースを提供でき、複雑な分散システムを効率よく実現で
きるという効果がある。
【0089】さらに上記本発明の一実施例では、第1の
世界を第2の世界のひとつのオブジェクトに代表させ、
該オブジェクト化したオブジェクトを含む第2の世界を
第1の世界に含まれるひとつのオブジェクトに代表させ
ることにより、オブジェクト化処理を双方向に行なうこ
ともできる。例えば、図21に示すように世界1wを世
界2内のオブジェクト212にオブジェクト化し、世界
2wを世界1内のオブジェクト121にオブジェクト化
するシステムである。これにより、複数の世界が互いに
相手を対等なものとして処理を依頼し合うことができ、
柔軟な分散システムを実現できるとともに、既存の2つ
の世界を合成してひとつの世界を容易に実現できるとい
う効果がある。
【0090】上記本発明の一実施例では、ひとつのネッ
トワークをひとつの世界に対応させたが、複数のネット
ワークをひとつの世界に対応させたり、ひとつのネット
ワークを複数の世界に対応させることもできる。これに
より大規模な分散システムに対応でき、柔軟なシステム
構成を実現できるという効果がある。
【0091】上記本発明の一実施例では、下位世界から
上位世界へのメッセージは、上位世界からのメッセージ
に対する返答メッセージのみであったが、下位世界のオ
ブジェクトがメッセージ転送処理部に依頼することによ
り、上位世界にメッセージを転送し、上位世界のオブジ
ェクトの機能を利用することも可能である。これによ
り、オブジェクトの機能やデータをより効率的に活用す
ることが可能となる。
【0092】上記本発明の一実施例では、メッセージ転
送処理部は、該メッセージ手段が扱う世界内のオブジェ
クトの機能のみを参照してメッセージの転送先を決定す
るが、メッセージを転送可能であるオブジェクトが複数
存在する場合は、オブジェクトが存在する計算機の稼働
状況を判定して、稼働率の小さい計算機上のオブジェク
トを選択してメッセージを転送することも可能である。
これにより、効率的な分散処理が実現できるという効果
がある。
【0093】
【発明の効果】本発明によれば、大量のオブジェクトを
モジュール化して管理でき、それらモジュール化された
複数のオブジェクトの機能やデータの詳細や、オブジェ
クトがどの計算機上に存在するかなどを意識せずに、そ
れらをオブジェクト化したひとつのオブジェクトのみを
考慮すればよいため、オブジェクトの利用および管理が
容易、かつ効率的になるという効果がある。
【0094】また、オブジェクトに処理を依頼する場合
のメッセージ送信においても、どの計算機上のどのオブ
ジェクトにメッセージを送信すべきかや、どのような通
信形式とすべきかを意識せずに行なえるので、通信管理
が容易かつ効率的になるという効果がある。
【0095】モジュール内の計算機やオブジェクトなど
のシステムの構成を変化させても、外部とのインタフェ
ースは変化しないため、システムの拡張や変更に柔軟に
対応でき、外部のオブジェクトには影響がないため、ソ
フトウェアの再利用性が向上するという効果がある。ま
た、外部からモジュール内のオブジェクトを直接利用で
きないものとすることにより、保密性がよく、外部から
の要因によるシステム停止や破壊を防ぐ信頼性の高い分
散システムを実現できるという効果がある。
【0096】さらに、モジュール化,オブジェクト化を
階層的に組み合わせることにより、大量の資源を階層的
に管理,利用できるため、大規模な分散システムを容易
に実現できるという効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例の概要を説明するための図。
【図2】本発明の一実施例の具体的な構成を示す図。
【図3】本発明の一実施例のオブジェクトと世界の構成
を示す図。
【図4】本発明の一実施例のオブジェクトのプログラム
構成を示す図。
【図5】本発明の一実施例のオブジェクトが扱うメッセ
ージの構成を示す図。
【図6】本発明の一実施例のオブジェクトの処理を示す
図。
【図7】本発明の一実施例のオブジェクトの手続き選択
実行処理を示す図。
【図8】本発明の一実施例のメタオブジェクトとオブジ
ェクトおよびプロセス間通信手段の関係を示す図。
【図9】本発明の一実施例のプロセス間通信手段が扱う
メッセージの構成を示す図。
【図10】本発明の一実施例のメタオブジェクトの処理
を示す図。
【図11】本発明の一実施例のメタオブジェクトのメッ
セージキュー格納処理を示す図。
【図12】本発明の一実施例のオブジェクト化機能付き
メタオブジェクトが記憶する処理可能メッセージ情報を
示す図。
【図13】本発明の一実施例のオブジェクト化機能付き
メタオブジェクトのオブジェクト化処理を示す図。
【図14】本発明の一実施例のメタオブジェクトのメッ
セージ送信依頼処理を示す図。
【図15】本発明の一実施例のメタオブジェクトの返答
メッセージ待ち処理を示す図。
【図16】本発明の一実施例の世界内オブジェクト管理
データベース内の情報を示す図。
【図17】本発明の一実施例のメッセージ転送手段の処
理を示す図。
【図18】本発明の一実施例のプロセス間通信処理部の
処理を示す図。
【図19】本発明の他の実施例のオブジェクトと世界の
構成を示す図。
【図20】本発明の他の実施例のオブジェクトと世界の
構成を示す図。
【図21】本発明の他の実施例のオブジェクトと世界の
構成を示す図である。
【符号の説明】
1,2,3…ネットワーク、11,12,13,21,
22,23,31,32,33…計算機、12g,13
g…ゲートウェイ、1w,2w,3w…世界、111,
121,122,131,132,211,221,2
22,231,232,311,321,322,33
1,332…オブジェクト、12o,13o…オブジェ
クト化処理、126,136…オブジェクト化処理機能
付きメタオブジェクト、116,127,137,21
6,226,227,236,237,316,32
6,327,336,337…メタオブジェクト、11
c,12c,13c,21c,22c,23c,31
c,32c,33c…プロセス間通信処理部、1m,2
m,3m…メッセージ転送処理部、1d,2d,3d…
世界内オブジェクト管理データベース。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 斉藤 雅彦 茨城県日立市久慈町4026番地 株式会社日 立製作所日立研究所内 (72)発明者 小林 芳樹 茨城県日立市久慈町4026番地 株式会社日 立製作所日立研究所内 (72)発明者 中西 宏明 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】ネットワークに接続された複数の計算機上
    に存在する複数のオブジェクト間でメッセージを交信し
    て処理を進める分散処理環境において、関連あるオブジ
    ェクトの集合をモジュール化し、該モジュール化された
    複数のオブジェクトの持つ機能とデータの一部または全
    部を他のオブジェクトの持つ機能とデータとしてオブジ
    ェクト化するオブジェクト化手段を有し、該オブジェク
    ト化手段によりオブジェクト化したひとつのオブジェク
    トに対し処理が依頼された時に、前記モジュール化され
    たオブジェクトの機能およびデータを利用して処理を実
    行することを特徴とする分散処理システム。
  2. 【請求項2】請求項1記載の分散処理システムにおい
    て、上記オブジェクトはアプリケーションプログラムを
    構成するひとつのプロセスとすることを特徴とする分散
    処理システム。
  3. 【請求項3】請求項1記載の分散処理システムにおい
    て、上記オブジェクトはアプリケーションプログラムを
    構成するひとつのプログラムモジュールとすることを特
    徴とする分散処理システム。
  4. 【請求項4】請求項1記載の分散処理システムにおい
    て、上記オブジェクトはデータベースとすることを特徴
    とする分散処理システム。
  5. 【請求項5】請求項1記載の分散処理システムにおい
    て、モジュール化を行なう上記オブジェクトの範囲はひ
    とつあるいは複数のネットワーク内のオブジェクトの集
    団とすることを特徴とする分散処理システム。
  6. 【請求項6】請求項1記載の分散処理システムにおい
    て、上記モジュール化された複数のオブジェクトの機能
    とデータを、複数の他のオブジェクトにオブジェクト化
    することを特徴とする分散処理システム。
  7. 【請求項7】請求項1記載の分散処理システムにおい
    て、上記モジュール化された複数のオブジェクトの機能
    とデータをどのような形式で他のオブジェクトにオブジ
    ェクト化するかを、自由に定義可能とすることを特徴と
    する分散処理システム。
  8. 【請求項8】請求項1記載の分散処理システムにおい
    て、上記モジュール化された複数のオブジェクトは、そ
    れらのオブジェクト間でのみ直接通信可能とすることを
    特徴とする分散処理システム。
  9. 【請求項9】請求項1記載の分散処理システムにおい
    て、上記他のオブジェクトへのオブジェクト化は、モジ
    ュール化された複数のオブジェクトが有する機能とデー
    タを他の形に変換して、前記他のオブジェクトの有する
    機能をデータとすることを特徴とする分散処理システ
    ム。
  10. 【請求項10】請求項1記載の分散処理システムにおい
    て、上記オブジェクト化したオブジェクトを含む複数の
    オブジェクトをモジュール化し、それらを他のオブジェ
    クトにオブジェクト化することにより、オブジェクト化
    を階層的に行なうことを特徴とする分散処理システム。
  11. 【請求項11】請求項1記載の分散処理システムにおい
    て、第1の複数のオブジェクトをモジュール化し、他の
    オブジェクトにオブジェクト化し、該オブジェクト化し
    たオブジェクトを含む第2の複数のオブジェクトをモジ
    ュール化し、それを第1の複数のオブジェクトのうちの
    オブジェクトにオブジェクト化することにより、オブジ
    ェクト化を双方向に行なうことを特徴とする分散処理シ
    ステム。
  12. 【請求項12】ネットワークに接続された複数の計算機
    上の複数のオブジェクト間でメッセージを交信して処理
    を進める分散処理環境において、関連あるオブジェクト
    の集合をモジュール化し、該モジュール化された複数の
    オブジェクトの持つ機能とデータの一部または全部を他
    のオブジェクトの持つ機能とデータとしてオブジェクト
    化するオブジェクト化手段と、該オブジェクト化したオ
    ブジェクトに送信したメッセージを上記モジュール化さ
    れたオブジェクトに転送するメッセージ転送手段を有す
    ることを特徴とする分散処理システム。
  13. 【請求項13】請求項12記載の分散処理システムにお
    いて、上記メッセージは遠隔手続き呼び出しにより実現
    することを特徴とする分散処理システム。
  14. 【請求項14】請求項12記載の分散処理システムにお
    いて、上記メッセージ転送手段は、該メッセージのメッ
    セージ名によって該メッセージを送信する該世界内のオ
    ブジェクトを選択し、該オブジェクトに送信することを
    特徴とする分散処理システム。
  15. 【請求項15】請求項12記載の分散処理システムにお
    いて該メッセージを複数のオブジェクトに転送すること
    を特徴とする分散処理システム。
  16. 【請求項16】請求項12記載の分散処理システムにお
    いて、上記メッセージ転送手段は、メッセージを転送先
    のオブジェクトが受信可能な形式のメッセージに変換し
    た後、該変換したメッセージを送信することにより実現
    することを特徴とする分散処理システム。
JP3199153A 1991-08-08 1991-08-08 分散処理システム Expired - Lifetime JP3006187B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP3199153A JP3006187B2 (ja) 1991-08-08 1991-08-08 分散処理システム
US07/926,519 US5519875A (en) 1991-08-08 1992-08-10 Distributed processing system for modules, each having modularized objects

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3199153A JP3006187B2 (ja) 1991-08-08 1991-08-08 分散処理システム

Publications (2)

Publication Number Publication Date
JPH0546569A true JPH0546569A (ja) 1993-02-26
JP3006187B2 JP3006187B2 (ja) 2000-02-07

Family

ID=16403039

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3199153A Expired - Lifetime JP3006187B2 (ja) 1991-08-08 1991-08-08 分散処理システム

Country Status (1)

Country Link
JP (1) JP3006187B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0793264A (ja) * 1993-09-10 1995-04-07 Sun Microsyst Inc クライアント側スタブインタプリタ
US5819279A (en) * 1995-04-27 1998-10-06 Fujitsu Limited Object data processing apparatus

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0793264A (ja) * 1993-09-10 1995-04-07 Sun Microsyst Inc クライアント側スタブインタプリタ
US5819279A (en) * 1995-04-27 1998-10-06 Fujitsu Limited Object data processing apparatus

Also Published As

Publication number Publication date
JP3006187B2 (ja) 2000-02-07

Similar Documents

Publication Publication Date Title
US5519875A (en) Distributed processing system for modules, each having modularized objects
EP0312739B1 (en) Apparatus and method for interconnecting an application of a transparent services access facility to a remote source
AU686105B2 (en) System for implementation-independent interface specification
EP0006216B1 (en) Improvements in digital data processing systems
JPH07101407B2 (ja) スケジユーリング方法及び装置
JP2002543491A (ja) 分散コンピューティング環境のための通信アーキテクチャ
US7934218B2 (en) Interprocess communication management using a socket layer
JPH05204853A (ja) データ処理システム、特に電気通信システム用ソフトウェア構造
JP3006187B2 (ja) 分散処理システム
JPH06301655A (ja) 分散処理システム
JPH08212180A (ja) プロセス間通信処理装置
JPH05158850A (ja) アプリケーション・プログラム間における情報交換システム及び方法
KR100350315B1 (ko) 실시간 시스템의 원격지 입출력 제어 장치 및 방법
JP2000151739A (ja) 情報処理装置、分散処理装置およびネットワークシステム
KR930001199B1 (ko) 다수의 nos를 갖는 lan의 데이타 처리방법
JPH10228453A (ja) 分散型コンピュータシステム及びそのコンピュータ並びに分散処理方法
JP3007340B1 (ja) 機能呼び出し方法、並列分散処理システムおよびコンピュータ
KR20000067429A (ko) 메시지 분배 기능을 이용한 홈위치 등록기의 프로세스간 통신 방법
JP2000311094A (ja) 遠隔オブジェクト間の通信方法
JPH01214960A (ja) マルチプロセッサ間のメッセージ交換方式
JP3236158B2 (ja) 複数ホストシステムのネットワーク処理方式
JP2000267960A (ja) プロセス間のパケット通信方法及びパケット通信装置
Saha et al. Design and implementation of a Network Service Access Point (NSAP) for OSI-compatibility
JPH0895874A (ja) リモートプロシジャコール処理方法
Fleisch An architecture for pup services on a distributed operating system