JPH10187468A - 並列分散処理システムおよびその方法 - Google Patents

並列分散処理システムおよびその方法

Info

Publication number
JPH10187468A
JPH10187468A JP35161096A JP35161096A JPH10187468A JP H10187468 A JPH10187468 A JP H10187468A JP 35161096 A JP35161096 A JP 35161096A JP 35161096 A JP35161096 A JP 35161096A JP H10187468 A JPH10187468 A JP H10187468A
Authority
JP
Japan
Prior art keywords
reference information
parallel distributed
information
calculation
name
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
JP35161096A
Other languages
English (en)
Inventor
Yuichi Kobayakawa
雄一 小早川
Takayuki Saito
隆之 斉藤
Hirotoshi Maekawa
博俊 前川
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.)
Digital Vision Laboratories Corp
Original Assignee
Digital Vision Laboratories Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Digital Vision Laboratories Corp filed Critical Digital Vision Laboratories Corp
Priority to JP35161096A priority Critical patent/JPH10187468A/ja
Priority to CA002199108A priority patent/CA2199108C/en
Priority to US08/812,399 priority patent/US6098111A/en
Priority to DE69735045T priority patent/DE69735045T2/de
Priority to KR1019970007241A priority patent/KR100322213B1/ko
Priority to EP97301467A priority patent/EP0794493B1/en
Priority to CN97103132A priority patent/CN1132098C/zh
Publication of JPH10187468A publication Critical patent/JPH10187468A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 計算モジュールなどの配置の動的な変更に対
して効率的に対処可能な並列分散実行支援システムを提
供する。 【解決手段】 ネットワークノードには、プログラムモ
ジュールをどのネットワークノードで実行するかを示す
配置情報を記憶したプロセス配置部42と、プログラム
モジュールの参照関係を示す参照保持部39が備えてあ
る。プログラムモジュールが実行され、他のプログラム
モジュールの呼び出しを行う際に、配置情報が参照さ
れ、呼び出し先のプログラムモジュールが実行されるネ
ットワークノードが特定される。そして、この特定され
たネットワークノードに対して、プロセスの呼び出しを
行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ネットワークワイ
ドなマルチメディア並行処理を行う並列分散処理システ
ムおよびその方法に関する。
【0002】
【従来の技術】近年、マルチメディア情報を利用および
流通させる情報提供利用サービスアプリケーションであ
るISM(Information Super-Market)の開発が活発に行
われている。ISMでは、機能モジュール(クラス)間
の対話性およびモジュール間構成の柔軟性を高めるため
に、ネットワークワイドなマルチメディア並行処理を効
率的に行うアプリケーション実行環境が求められる。こ
れに応えようとするのが、並列分散実行支援システムで
ある
【0003】並列分散支援システムの代表的なものに、
CORBA(Common Object RequestBroker Architectur
e) −ORB(Object Request Broker) がある。ここ
で、CORBAは、ネットワークに接続した複数のコン
ピュータで動くソフトウェアが互いに通信するための機
構であり、分散システムを柔軟かつ効率よく構築するた
めの基盤となる。また、ORBは、オブジェクト間の通
信を司るソフトウェアであり、クライアント・オブジェ
クトから受け取ったメッセージを、ネットワークを経由
して適切なサーバ・オブジェクトに渡す働きをする。こ
のCORBA−ORBでは、オブジェクトの管理空間
は、当該システムが支援する環境全域に規定されてい
る。
【0004】また、CORBA−ORBでは、あるモジ
ュールが他のモジュールの機能を呼び出すにあたって、
シンボルとして定義された機能名と引数が呼び出し元モ
ジュールから呼び出し先モジュールに転送される。呼び
出し先モジュールには、機能名と当該機能を実行するプ
ログラムの実行アドレスとの対応表が備えてあり、呼び
出し先モジュールは、その対応表を検索することによっ
て実行アドレスを取得し、呼び出された機能を実行す
る。
【0005】また、並列分散実行支援システムにおい
て、どのネットワークノードにモジュールが配置されて
いるかをユーザが意識せずにプログラムを記述できるプ
ログラム分散配置実行方法が、特開平3−226856
号に記載されている。このプログラム分散配置実行方法
では、各モジュールが配置されるネットワークノード名
を指定する専用のディレクトリを設け、このディレクト
リを参照しながら、ソースプログラムに存在する外部呼
び出しの記述をシステムが自動的に書き換える(修正す
る)。
【0006】
【発明が解決しようとする課題】しかしながら、前述し
た従来のCORBA−ORBでは、オブジェクトの管理
空間が当該システムが支援する環境全域に規定されてい
ることから、ユーザは用途に応じて必要なオブジェクト
のみを管理範囲とする管理空間を自由に規定することが
できない。従って、ユーザは、用途に応じた一部のオブ
ジェクトのみを使用する場合でも、システムの広域にお
いて必要の無いオブジェクトを含めて名前の一意性を保
つなどの管理を行う必要があり、この管理に伴う負担が
大きいという問題がある。また、CORBA−ORBで
は、システムの広域において名前の一意性を保つ必要が
あることから、システムがサポートする複数のアプリケ
ーション相互間で同じ名前を使用することができず、各
アプリケーションで使用可能な名前の自由度が低いとい
う問題がある。また、このようにシステムの広域におい
てオブジェクトを管理するために、管理する対象となる
オブジェクトの数が膨大になり、オブジェクトにアクセ
スする際の検索時間が長期化してしまうという問題があ
る。さらには、CORBA−ORBでは、計算モジュー
ルなどの追加や削除などに伴う動的(インクリメンタ
ル)な空間管理が困難であるという問題もある。
【0007】また、前述した特開平3−226856号
に記載されたプログラム分散配置実行方法では、ディレ
クトリを参照しながら、ソースプログラムに存在する外
部呼び出しの記述を修正することから、モジュール配置
の変更に応じてディレクトリの内容が変わると、ソース
プログラムを新たにコンパイルする必要が生じ、変更に
伴う処理が煩雑で、迅速に対応できないという問題があ
る。
【0008】本発明は、上述した従来技術に鑑みてなさ
れ、計算モジュール配置の動的な変更に対して、効率的
に対処可能な並列分散実行支援システムおよびその方法
を提供することを目的とする。また、本発明は、アプリ
ケーションプログラマが計算モジュールなどの参照関係
を実行時のネットワーク配置に依存せずに記述できる並
列分散実行支援システムおよびその方法を提供すること
を目的とする。また、本発明は、ネットワークワイドに
計算オブジェクトを管理する場合に、計算オブジェクト
の管理空間を自由に規定できる並列分散処理システムお
よびその方法を提供することを目的とする。
【0009】
【課題を解決するための手段】上述した従来技術の問題
点を解決し、上述した目的を達成するために、本発明の
並列分散処理システムは、単数または複数の計算オブジ
ェクトを備えたプロセスを実行する複数の演算処理ノー
ドがネットワークを介して相互に接続され、計算オブジ
ェクトの所在を特定する参照情報に基づいて計算オブジ
ェクト相互間の呼び出しを行う並列分散処理システムに
おいて、前記演算処理ノードは、前記プロセスを実現す
るプログラムモジュールの所在情報と当該プログラムモ
ジュールの配置先の演算処理ノードの情報との対応を示
す配置情報を基づいて、所定の演算処理ノードに前記プ
ログラムモジュールを配置し、その配置先の演算処理ノ
ードでプロセスを生成するプロセス配置手段と、それぞ
れのプロセスにおいて、前記配置情報と前記プログラム
モジュールに記述された計算オブジェクト相互間の参照
関係とに基づいて、当該プロセスを実現するプログラム
モジュールが参照している計算オブジェクトの参照情報
を生成する参照情報生成手段とを有する。
【0010】本発明の並列分散実行支援システムでは、
プロセス配置手段によって、ネットワークに接続された
複数の演算処理ノードに、配置情報に基づいて、プログ
ラムモジュールが分散配置されて、プロセスが生成され
る。また、参照情報生成手段によって、前記配置情報
と、前記プログラムモジュールに記述された計算オブジ
ェクト相互間の参照関係に基づいて、前記計算オブジェ
クトの所在を特定する参照情報が生成される。そして、
前記演算処理ノードにおいて、プロセスが実行される
と、前記参照情報に基づいて、前記計算オジェクト相互
間の呼び出し処理が行われる。
【0011】また、本発明の並列分散処理システムは、
好ましくは、前記演算処理ノードは、前記参照生成手段
が生成した前記参照情報を保持する参照情報保持手段を
さらに有する。
【0012】また、本発明の並列分散処理システムは、
好ましくは、前記参照情報は、計算オブジェクトの識別
子および名前を用いて、前記演算処理ノードにおける前
記計算オブジェクトの所在を特定する。
【0013】また、本発明の並列分散処理システムは、
好ましくは、前記参照情報は、ネットワークトポロジー
非依存に表現される。
【0014】また、本発明の並列分散処理システムは、
好ましくは、前記参照情報は、実行環境非依存に表現さ
れる。
【0015】また、本発明の並列分散処理システムは、
好ましくは、前記計算オブジェクトは、プログラムを実
行する計算モジュール、ファイル、関数、クラス、イン
スタンス、メソッド、大域変数のいずれかである。
【0016】また、本発明の並列分散処理システムは、
好ましくは、前記プロセスあるいは前記計算オブジェク
トに対応して、前記プロセス配置手段、前記参照情報生
成手段、前記参照情報保持手段のうち少なくとも一つを
備えてある。
【0017】また、本発明の並列分散処理システムは、
好ましくは、前記参照情報は、任意の複数の計算オブジ
ェクトの集合に関しての参照情報である。
【0018】
【発明の実施の形態】以下、本発明の実施形態に係わる
並列分散実行支援システムについて説明する。本実施形
態に係わる並列分散実行支援システムは、その空間管理
方式に特徴を有し、例えば、ISMなどの実行環境を支
援し、機能モジュール間の対話性およびモジュール間構
成の柔軟性を高め、ネットワークワイドなマルチメディ
ア並行処理を可能とするものである。
【0019】空間管理方式 先ず、本実施形態に係わる並列分散実行支援システムに
おいて採用される空間管理方式を説明するための図であ
る。図1は、本実施形態に係わる並列分散実行支援シス
テム1の概念図である。図1に示すように、並列分散実
行支援システム1は、ネットワークノード3、4,5が
ネットワーク2を介して相互に通信を行い、一定の処理
を行う。ネットワークノード3,4,5としては、例え
ば、パーソナルコンピュータやワークステーションなど
が用いられる。また、ネットワーク2としては、例え
ば、イーサーネットやCATVなどが用いられる。
【0020】ネットワークノード3,4,5には、例え
ばプログラムを実行する計算モジュール、インスタン
ス、クラス、メソッド、大域関数およびファイルなどの
計算オブジェクトが存在する。例えば、ネットワークノ
ード3には、計算オブジェクト6〜9が存在する。ネッ
トワークノード3,4,5には、同一ネットワークノー
ド内の複数の計算オブジェクトで構成される部分空間が
存在する。例えば、ネットワークノード3内では、計算
オブジェクト6,7によって部分空間10が構成され、
計算オブジェクト8,9によって部分空間11が構成さ
れる。また、ネットワークノード3内には、部分空間1
1も存在する。ここで、部分空間は、ネットワークノー
ドに備えられた計算モジュールであるデーモンによって
実行されるプロセスである。また、異なるネットワーク
ノードに存在する部分空間および/または計算オブジェ
クトによって計算空間が構成される。本実施形態では、
部分空間10,12,14によって計算空間15が構成
され、部分空間11,13によって計算空間16が構成
される。なお、計算空間は、同一のネットワークノード
に存在する部分空間および/または計算オブジェクトを
含むように構成してもよい。ここで、計算空間とは、当
該空間内に存在する計算オブジェクトおよび部分空間の
配置に関する情報が明らかになっている領域である。
【0021】また、並列分散実行支援システム1では、
計算オブジェクトおよび部分空間の配置は、予め与えら
れた情報や、部分空間相互間における問い合わせなどに
よって決定される。この計算オブジェクトおよび部分空
間の配置は空間管理部17,18によって管理される。
【0022】並列分散実行支援システム1では、図1に
示すように、計算空間15に対応してネットワークノー
ド4に空間管理部17が備えてあり、計算空間16に対
応してネットワークノード4に空間管理部18が備えて
ある。なお、空間管理部は、各部分空間毎に設けてもよ
いし、各計算オブジェクト毎に設けてもよい。
【0023】また、並列分散実行支援システム1では、
各部分空間毎にデーモンがあり、このデーモンによって
参照情報が管理されている。ここで、参照情報により表
現される空間を「参照空間」と呼ぶ。API(アプリケ
ーションプログラムインターフェース)では、この参照
空間上で、プロセスおよび計算オブジェクトを識別・管
理する。この参照空間に対して、参照される実態の存在
空間を「実空間」と呼ぶ。ここで、「参照」とは、これ
らのプロセスおよび計算オブジェクトを論理的に指し示
すことを意味する。
【0024】本実施形態では、参照空間に、さらに任意
の参照集合を形成するドメインの概念を導入する。この
ドメインは、計算空間を複数に分割して管理する場合に
用いられる。なお、ドメインは、図1には示されておら
ず、図5に示されている。各プロセス(部分空間)およ
び計算オブジェクトは、複数のドメインに属することが
許される。ドメインは、入れ子構造をとることも許され
る。この場合、含まれるドメインをサブドメイン、含む
ドメインをスーパードメインと呼ぶ。ドメインの導入に
より、ネットワークワイドに自由な空間(サービス空
間、アプリケーション空間、個人空間、コミュニティな
ど)を形成することができる。
【0025】本実施形態では、さらに、各参照に名前を
付与し、名前によるプロセス、計算オブジェクトおよび
ドメインの識別空間を提供する。この識別空間を「名前
空間」と呼ぶ。API上からは、この名前空間上でも、
プロセス、計算オブジェクトおよびドメインを識別・管
理することができる。また、名前の一意性は、各名前空
間中でのみ保証される。従って、異なるドメインに属す
る計算オブジェクト相互間では、名前の衝突が許され、
各ドメインにおいて使用可能な名前の自由度が高められ
る。
【0026】図2は、本実施形態に係わる並列分散実行
支援システム31の構成図である。図2に示すように、
並列分散実行支援システム31は、ネットワーク32を
介してネットワークノード33〜35が接続してある。
ネットワークノード33には、デーモン38によって実
行されるプロセス(部分空間)36がある。デーモン3
8は、参照保持部39、参照生成部40およびプロセス
配置部42を有する。参照保持部39は、プロセス、計
算オブジェクトおよびドメインを識別して所在を特定
し、制御・管理するのための参照情報を記憶する。
【0027】参照生成部40は、エクスポートモジュー
ルおよびインポートモジュールから得られるプログラム
モジュール上の参照情報と、与えられた配置情報とから
後述する参照情報を生成する。ここで、プログラムモジ
ュールとは、1つのプロセスを実行するプログラムの固
まりをいい、複数のファイルで構成されていてもよい。
例えば、プログラムモジュール”X”が、”px.ex
e”および”px.dll”の2つのファイルで構成さ
れていてもよい。
【0028】各プログラムモジュールは、参照生成部4
0にプログラムモジュール上の参照関係を与えるため
に、内部参照テーブルへの登録内容を示すエクスポート
モジュールと、外部参照テーブルへの登録内容を示すイ
ンポートモジュールを内包している。図3に示す例で
は、プログラムモジュール”X”のmain関数200
において、プログラムモジュール”Y”の関数func
4()を読み出している。また、main関数200の
関数func1()は、プログラムモジュール”Y”の
main関数201から読み出されている。このとき、
プログラムモジュール”X”のエクスポートモジュール
202には「export(func1);」が記述さ
れ、インポートモジュール203には「import
(Y:func4);」が記述される。図3に示すよう
に、プログラマは、外部関数の呼び出しを記述する場合
に、「call(Y:func4,args)」と記述
する。これは、プログラムモジュール”Y”の関数fu
nc4をargsで示された引数で呼び出すことを意味
する。このように、プログラム上の参照に関するプログ
ラムの記述は、プログラムの実行時の配置とは無関係に
記述される。なお、エクスポートモジュールおよびイン
ポートモジュールは、トランスレータなどを用いてアプ
リケーションソースコードから自動的に生成されたり、
アプリケーションプログラマの責任のもとで生成され
る。
【0029】プロセス配置部42は、与えられた配置情
報に基づいて、プログラムモジュールを指定されたネッ
トワークノード上で実行し、プロセスを生成する。プロ
セス配置部42は、図4に示すように、プロセス配置テ
ーブル210およびポート番号割当テーブル211を備
える。配置情報 配置情報は、どのプログラムモジュールをどのネットワ
ークノードに配置するかを定める情報と、プロセスや計
算オブジェクトに与える名前に関する情報などから構成
される。この配置情報は、例えば、ファイルの読み込み
あるいはユーザの入力操作などによってマスタ管理プロ
セスに入力され、この配置情報のうちプロセス配置テー
ブルおよびポート番号割当テーブルを作成するために必
要な情報がマスタ管理プロセスからスレーブ管理プロセ
スに出力される。ここで、説明の都合上、最初に配置情
報を読み込む管理プロセスを、マスタ管理プロセスと呼
ぶ。これに対して、マスタ管理プロセスからプロセス生
成命令を受ける管理プロセスをスレーブ管理プロセスと
呼ぶ。以下、計算空間およびプロセス配置が、それぞれ
図5および図6に示す構成をしている場合を例に、配置
情報の具体例を説明する。
【0030】図5に示すように、ネットワークノード”
A”にプロセス”PX1”,”PZ1”が配置され、ネ
ットワークノード”B”にプロセス”PY1”が配置さ
れ、ネットワークノード”C”にプロセス”PZ2”が
配置されている。ここで、プロセス”PX1”,”PZ
1”,”PY1”,”PZ2”によって計算空間”C
1”が構成されている。また、プロセス”PX1”,”
PZ1”によってドメイン”D1”が構成され、プロセ
ス”PY1”,”PZ2”によってドメイン”D2”が
構成されている。ここで、プロセス”PX1”は、図3
に示すプログラムモジュール”X”を実行することによ
って生成され、プロセス”PY1”はプログラムモジュ
ール”Y”を実行することによって生成され、プロセ
ス”PZ1”,”PZ2”はプログラムモジュール”
Z”を実行することによって生成される。
【0031】また、図6に示すように、ネットワークノ
ード”A”は、イーサーネット220およびATM22
1と接続され、それぞれのネットワークアドレス(DN
Sネーム IPアドレス)は、それぞれ「s1.dv
l.co.jp」および「sla.dvl.co.j
p」である。ネットワークノード”B”は、イーサーネ
ット220およびATM221と接続され、それぞれの
ネットワークアドレスは、それぞれ「s2.dvl.c
o.jp」および「s2a.dvl.co.jp」であ
る。ネットワークノード”C”は、イーサーネット22
0と接続され、ネットワークアドレスは、「s3.dv
l.co.jp」である。また、図6に示すように、ネ
ットワークノード”A”,”B”,”C”には、それぞ
れ管理プロセスA,B,Cが存在する。
【0032】上述した図5,図6に示す場合において、
配置情報は、以下に示す情報を有する。 ・プログラムモジュール”X”をネットワークノード”
A”上に配置し、プロセス”PX1”と名付ける。 ・プログラムモジュール”Y”をネットワークノード”
B”上に配置し、プロセス”PY1”と名付ける。 ・プログラムモジュール”Z”をネットワークノード”
A”上に配置し、プロセス”PZ1”と名付ける。 ・プログラムモジュール”Z”をネットワークノード”
C”上に配置し、プロセス”PZ2”と名付ける。 ・プログラムモジュール”X”所在(実態)は、 「ftp://ftp.dvl.co.jp/bin/
px.exe」 ・プログラムモジュール”Y”所在は、 「ftp://ftp.dvl.co.jp/bin/
py.exe」と「ftp://ftp.dvl.c
o.jp/lib/py.dll」 ・プログラムモジュール”X”所在は、 「ftp://ftp.dvl.co.jp/bin/
pz.exe」 ・ネットワークノード”A”は、ネットワークアドレス
は、 イーサーネット(メディア)について、「sl.dv
l.co.jp」 ATM(メディア)について、「sla.dvl.c
o.jp」 ・ネットワークノード”B”は、ネットワークアドレス
は、 イーサーネット(メディア)について、「s2.dv
l.co.jp」 ATM(メディア)について、「s2a.dvl.c
o.jp」 ・ネットワークノード”C”は、ネットワークアドレス
は、 イーサーネット(メディア)について、「s3.dv
l.co.jp」
【0033】管理プロセス 管理プロセスは、並列分散実行支援システムにおいてプ
ロセスを分散配置させる際に、予め起動されている。管
理プロセスは、プロセスの一種であり、各ネットワーク
ノードの固定ポート(例えばポート番号「01000
0」)が割り当てられており、配置情報に基づいて一般
プロセスの配置を行う。一般プロセスと管理プロセス
は、機能的には同じであるが、管理プロセスには固定ポ
ートが割り当てられている点が異なる。図6では、配置
情報は管理プロセスCに与えられ、管理プロセスCから
管理プロセスA,Bにプロセス生成命令が出力される。
従って、管理プロセスCがマスタ管理プロセスとなり、
管理プロセスA,Bがスレーブ管理プロセスとなる。マ
スタ管理プロセスCおよびスレーブ管理プロセスA,B
の処理は、例えば、図7に示される。
【0034】プロセス配置テーブル プロセス配置テーブル210は、プロセス配置部42に
備えられ、配置情報あるいは配置情報のうち必要な情報
を格納する。ここで、複数の配置情報がある場合に、配
置情報を識別するために、各配置情報にコンフィギュレ
ーション(Configuration) IDが付与される。図8は、
プロセス配置テーブル210を説明するための図であ
る。図8に示すように、プロセス配置テーブル210
は、コンフィギュレーションID231、マスタノード
のネットワークアドレス232、ノード情報233、プ
ログラム情報234およびプログラム配置情報235で
構成される。ノード情報233は、ノード名236、ネ
ットワークアドレス237およびメディア238のテー
フルである。プログラム情報234は、プログラム名2
39およびプログラム所在情報240のテーブルであ
る。プログラム配置情報235は、プロセス名241、
プログラム名242およびノード名243のテーブルで
ある。図6に示す並列分散実行支援システムでは、ネッ
トワークノードA,B,Cの各プロセス配置部42は、
前述した配置情報に応じて、それぞれ図10,図11,
図9に示すようなプロセス配置テーブル210を備えて
いる。ネットワークノードCのプロセス配置テーブル2
10は、配置情報を基に管理プロセスCが生成する。ネ
ットワークノードA,Bのプロセス配置テーブル210
は、配置情報のうち必要な情報に基づいて管理プロセス
A,Bが生成する。
【0035】ポート番号割当テーブル 図12は、ポート番号割当テーブル211を説明するた
めの図である。図12に示すように、ポート番号割当テ
ーブル211は、コンフィギュレーションID250、
プロセス名251およびポート番号252で構成され
る。
【0036】本実施形態では、図13に示すように、ス
レーブ管理プロセスA,Bおよびマスタ管理プロセスC
において、それぞれポート番号割当テーブル253,2
54,211が生成される。ポート番号割当テーブル2
53,254,211は、それぞれネットワークノード
A,B,Cのプロセス配置部42に備えられる。
【0037】参照情報 この参照情報は、後述するインポート処理およびエクス
ポート処理によって生成される。以下に示す例では、ネ
ットワーク上に分散して配置された関数を参照する場合
について示し、参照情報は、図14に示すように、4個
の参照テーブルと3個の検索用ハッシュテーブルとで構
成される。参照テーブルには、図15に示すローカル関
数参照テーブル50、図16に示すリモート関数参照テ
ーブル51、図17に示すプロセス参照テーブル52お
よび図18に示すドメイン参照テーブル53がある。ま
た、検索用ハッシュテーブルは、名前と識別子との間の
ハッシュテーブルであり、図19に示すドメインネーム
ハッシュテーブル54、図20に示す関数/プロセスネ
ームハッシュテーブル55および図21に示すリモート
関数IDハッシュテーブル56がある。なお、ネットワ
ークノード34は、デーモン41によって実行されるプ
ロセス(部分空間)37があり、概念的に、ネットワー
クノード33と同じである。
【0038】(ローカル関数参照テーブル)図15は、
ローカル関数参照テーブル50を説明するための図であ
る。ローカル関数参照テーブル50は、部分空間(プロ
セス)内に存在する関数の内部参照用テーブルである。
図15に示すように、ローカル関数参照テーブル50
は、プリントネーム61、ローカル関数ID62、ドメ
イン参照リスト63、リモート関数ID64およびドメ
イン内ネーム65の5つのフィールドを有する。プリン
トネーム61は、プログラムソースコード上での関数名
であり、例えばC++で実装されたクラスであれば、そ
のクラス名が入る。ローカル関数ID62は、システム
上で使用されるネットワークノード内での関数識別子で
あり、この関数識別子を用いて実態にアクセスが行われ
る。ドメイン参照リスト63は、その関数が所属するド
メイン参照テーブルへのポインタリストである。ドメイ
ン参照リスト63は、図15に示すように、リスト構造
のデータで示される。これは、当該関数が複数のドメイ
ンに属する場合の表現を可能にするためである。
【0039】リモート関数ID64は、その関数の外部
識別子であり、ネットワークノードの外部からは、この
外部識別子を用いて関数を指定して呼び出しを行う。ド
メイン内ネーム65は、名前空間上のドメイン内におけ
る名前であり、この名前を用いて関数の指定呼び出しが
行われる。
【0040】(リモート関数参照テーブル)図16は、
リモート関数参照テーブル51を説明するための図であ
る。リモート関数参照テーブル51は、部分空間(プロ
セス)内に存在する関数の外部参照用テーブルである。
図16に示すように、リモート関数参照テーブル51
は、プリントネーム71、プロセス参照72、リモート
関数ID73、ドメイン参照リスト74およびドメイン
内ネーム75の5つのフィールドを有する。プリントネ
ーム71、リモート関数ID73、ドメイン参照リスト
74およびドメイン内ネーム75の意味は、前述したロ
ーカル関数参照テーブル50の場合と同じである。プロ
セス参照72は、そのリモート関数が存在すうプロセス
の所在に関する情報であり、例えば、プロセス参照テー
ブル52へのポインタを示す。
【0041】(プロセス参照テーブル)図17は、プロ
セス参照テーブル52を説明するための図である。プロ
セス参照テーブル52は、部分空間(プロセス)の所在
を示す情報を格納するテーブルである。図17に示すよ
うに、プロセス参照テーブル52は、ネットワークノー
ド参照81、ネットワークポートID82、ドメイン参
照リスト83およびドメイン内ネーム84の4つのフィ
ールドを有する。ここで、ドメイン参照リスト83およ
びドメイン内ネーム84の意味は、前述したものと同じ
である。
【0042】ネットワークノード参照81は、そのプロ
セスが存在するネットワークノードに関する参照情報を
示し、ネットワークノードネーム85、参照リスト8
8、コミュニケーションメディア86およびネットワー
クアドレス87の3つのフィールドを有する。ネットワ
ークノードネーム85は、名前空間上におけるネットワ
ークノードの名前を示している。コミュニケーションメ
ディア86は、通信手段を示しており、例えばイーサー
ネットやATMなどを示す。ネットワークアドレス87
は、通信手段に応じたノードのネットワークアドレスを
示しており、例えばIPアドレスやDNS(Domain Name
System)ネームなどを示す。
【0043】ネットワークポートID82は、並列分散
実行支援システム31上で使用される各ネットワークノ
ード内でのデーモンポート番号を示し、アクセスは、ネ
ットワークアドレスとこのデーモンポート番号とでプロ
セスを特定して行われる。これは、ネットワークノード
には、複数のコミュニケーションメディア(アクセス機
能)を備えているものがあるためである。例えば、ネッ
トワークノードのなかには、イーサーネットとATMと
の双方によるアクセスが可能なものがある。通常このよ
うな場合に、各アクセス機能のそれぞれにネットワーク
アドレスが割り付けられている。
【0044】従って、プロセス参照テーブル52では、
ネットワークネームとネットワークアドレスとの対応関
係を図17に示すようにリスト構造の参照リスト88を
用いて表現することで、一つのネットワークノードネー
ム85とコミュニケーションメディア86の種類に応じ
た複数のネットワークアドレス87との対応関係を表現
している。図17に示す例では、ドメイン内ネーム84
が”N1”のプロセスは、ネットワークポートID82
が「#10000」であり、ネットワークノードネーム
85が”nodeA”である。また、”nodeA”
は、コミュニケーションメディア86として、イーサー
ネットおよびATMを備え、それぞれのネットワークア
ドレス87が、「111.111.111.111」お
よび「111.111.111.112」である。
【0045】(ドメイン参照テーブル)図18は、ドメ
イン参照テーブル53を説明するための図である。ドメ
イン参照テーブル53は、ドメインの参照情報を管理す
るためのテーブルである。前述したように、ドメイン
は、階層構造をとることができ、一のドメイン中に他の
ドメインを含むことができる。図18に示すように、ド
メイン参照テーブル53は、ドメイン要素参照リスト9
1、スーパードメイン参照リスト92およびドメインネ
ーム93を有する。ドメイン要素参照リスト91は、そ
のドメインの構成要素である関数参照およびサブドメイ
ン参照へのポインタを示している。スーパードメイン参
照リスト92は、そのドメインのスーパードメイン(上
位のドメイン)へのポインタリストを示している。ここ
で、スーパードメイン参照にリスト構造を用いたのは、
一のドメインが複数のスーパードメインを持つことがあ
るためである。ドメインネーム93は、名前空間上のド
メイン名を示している。
【0046】(ドメインネームハッシュテーブル)図1
9は、ドメインネームハッシュテーブル54を説明する
ための図である。ドメインネームハッシュテーブル54
は、独自の名前空間で付与されたドメインネームに基づ
いて構築され、名前によるドメイン参照テーブルの検索
を可能とする。図19に示すように、ドメインネームハ
ッシュテーブル54は、ドメインネーム100および参
照リスト101の2つのフィールドを有する。ドメイン
ネーム100は、名前空間上のドメイン名を示す。参照
リスト101は、ドメイン参照テーブルへのポインタリ
ストを示す。図19に示す例では、ドメイン名”D1”
をキーとして、ドメインネームハッシュテーブル54を
用いると、ドメイン参照テーブル53のドメインネー
ム”D1”のアドレスが得られる。
【0047】(関数/プロセスネームハッシュテーブ
ル)図20は、関数/プロセスネームハッシュテーブル
55を説明するための図である。関数/プロセスネーム
ハッシュテーブル55は、独自の名前空間で付与される
ドメイン内ネームに基づいて構築され、関数参照テーブ
ルおよびプロセス参照テーブルの名前による検索を可能
とする。図20に示すように、関数/プロセスネームハ
ッシュテーブル55は、ドメイン内ネーム110および
参照リスト111の2つのフィールドを有する。ドメイ
ン内ネーム110には、名前空間上のドメイン内におけ
るローカル関数名、リモート関数名およびプロセス名の
いずれかが示される。参照リスト111は、ローカル関
数参照テーブル50、リモート関数参照テーブル51お
よびプロセス参照テーブル52のいずれかに対してのポ
インタリストである。例えば、図20では、ドメイン内
ネーム110である関数名”A”をキーとして、関数/
プロセスネームハッシュテーブル55としてのローカル
関数ネームハッシュテーブルを用いると、参照リスト1
11によって、ローカル関数参照テーブル50における
ドメイン内ネーム”A”のアドレスが得られる。関数/
プロセスネームハッシュテーブル55としては、ローカ
ル関数ネームハッシュテーブルの他に、リモート関数ネ
ームハッシュテーブルおよびプロセスネームハッシュテ
ーブルがある。
【0048】(リモート関数IDハッシュテーブル)図
21は、リモート関数IDハッシュテーブル56を説明
するための図である。リモート関数IDハッシュテーブ
ル56は、リモート関数IDに基づいて構築され、リモ
ート関数IDによるローカル関数参照テーブルの検索を
可能とする。図21に示すように、リモート関数IDハ
ッシュテーブル56は、リモート関数ID120および
ローカル関数参照121の2つのフィールドを有する。
ローカル関数参照121は、リモート関数IDに対応し
たローカル関数参照テーブルにおけるローカル関数参照
へのポインタを示す。例えば、図21では、リモート関
数ID120である「#000001」をキーとして、
リモート関数IDハッシュテーブル56を用いると、ロ
ーカル関数参照テーブル50aにおけるリモート関数I
D64aが「#000001」の箇所のアドレスが得ら
れる。
【0049】管理プロセスにおける処理 以下、図7を参照しながら、マスタ管理プロセスCおよ
びスレーブ管理プロセスA,Bにおける処理を説明す
る。図7は、マスタ管理プロセスCおよびスレーブ管理
プロセスA,Bにおける処理のフローチャートである。
先ず、例えば、マスタ管理プロセスCに複数の配置情報
が入力されると、マスタ管理プロセスCによって、配置
情報を識別するために、各配置情報にコンフィギュレー
ションIDが付与される(ステップS1)。次に、マス
タ管理プロセスCは、配置情報から、図9に示すような
プロセス配置テーブル210を生成する(ステップS
2)。マスタ管理プロセスCは、スレーブ管理プロセス
A,Bに、配置情報のうち各ネットワークノード内でプ
ロセスを生成するのに必要な情報を出力する(ステップ
S3)。スレーブ管理プロセスA,Bは、マスタ管理プ
ロセスCから入力した情報を各々のプロセス配置テーブ
ルに格納する(ステップS9)。マスタ管理プロセスC
はスレーブ管理プロセスA,Bおよびネットワークノー
C内の一般プロセスに、以下に示すようなプロセス生成
命令を出力する(ステップS4)。すなわち、マスタ管
理プロセスCはスレーブ管理プロセスAに、コンフィギ
ュレーションID=#000001でプロセス名が”D
1/PX1”,”D1/PZ1”のプロセスを生成する
ことを指示するプロセス生成命令を出力する。また、マ
スタ管理プロセスCはスレーブ管理プロセスBに、コン
フィギュレーションID=#000001でプロセス名
が”D2/PY1”のプロセスを生成することを指示す
るプロセス生成命令を出力する。また、マスタ管理プロ
セスCは、自分自身にコンフィギュレーションID=#
000001でプロセス名が”D2/PZ2”のプロセ
スを生成する指示を出す。このとき、マスタ管理プロセ
スCは、マスタおよびスレーブの双方の機能を果たす。
【0050】スレーブ管理プロセスA,Bは、プロセス
生成命令を入力すると(ステップS4)、それぞれプロ
セス配置テーブルから、該当するプロセスを実現するプ
ログラムを得て、さらにプログラム名からプログラムの
所在情報を得て、そのプログラムのダウンロードを開始
する(ステップS10)。ダウンロードのプロトコル
は、「ftp,http」などが用いられる。そして、
スレーブ管理プロセスA,Bは、プロセス生成に際し
て、ポート番号を各ネットワークノード毎にユニークに
割り当て(ステップS11)、この割り当てられたポー
ト番号およびコンフィギュレーションIDを引数として
プログラムモジュールに与えプロセスを生成する(ステ
ップS12)。この割り当てられたポート番号は、各プ
ロセス配置部が備えるポート番号割当テーブル211に
登録される(ステップS13)。自分自身からプロセス
生成命令を受けたマスタ管理プロセスCも同様な処理を
行う。スレーブ管理プロセスA,Bおよびネットワーク
ノードC内の一般プロセスは、プロセス生成終了後に、
マスタ管理プロセスCに対して終了メッセージを出力す
る。
【0051】マスタ管理プロセスCは、これらの終了メ
ッセージからプロセス生成が全て終了したと判断すると
(ステップS5)、スレーブ管理プロセスA,Bおよび
ネットワークノードC内の一般プロセスにインポート開
始命令を出力する(ステップS6)。このとき、マスタ
管理プロセスCは、スレーブ管理プロセスAに、コンフ
ィギュレーションID=#000001のプロセス”D
1/PX1”および”D2/PZ1”に対するインポー
ト開始命令を出力する。また、マスタ管理プロセスC
は、スレーブ管理プロセスBに、コンフィギュレーショ
ンID=#000001のプロセス”D2/PY1”に
対するインポート開始命令を出力する。
【0052】一方、マスタ管理プロセスCは、ネットワ
ークノードCの一般プロセスに、コンフィギュレーショ
ンID=#000001のプロセス”D2/PZ2”に
対するインポート開始命令を出力する。
【0053】スレーブ管理プロセスA,Bは、ポート番
号割当テーブルから、該当するポート番号を得て、一般
プロセスにインポート処理命令を出力する(ステップS
14)。一般プロセスは、インポート処理命令を受ける
と(図22に示すステップS23)、インポート処理を
開始し(ステップS24)、インポート処理が終了する
と、終了メッセージをマスタ管理プロセスCに出力す
る。
【0054】マスタ管理プロセスCは、全てのインポー
ト処理が終了したか否かを判断し(ステップS7)、終
了したと判断した場合には、スレーブ管理プロセスA,
BおよびネットワークノードCの一般プロセスに、プロ
セス実行開始命令を出力する(ステップS8)。
【0055】このとき、マスタ管理プロセスCは、スレ
ーブ管理プロセスAに、コンフィギュレーションID=
#000001のプロセス”D1/PX1”および”D
1/PZ1”に対するプロセス(main関数)実行開
始命令を出力する。また、マスタ管理プロセスCは、ス
レーブ管理プロセスBに、コンフィギュレーションID
=#000001のプロセス”D2/PY1”に対する
プロセス実行開始命令を出力する。一方、マスタ管理プ
ロセスCは、ネットワークノードCの一般プロセスに、
コンフィギュレーションID=#000001のプロセ
ス”D2/PZ2”に対するプロセス実行開始命令を出
力する。スレーブ管理プロセスA,Bは、該当する一般
プロセスに、プロセス実行開始命令を出力する(ステッ
プS15)。すなわち、スレーブ管理プロセスA,B
は、ポート番号割当テーブルから該当するポート番号を
得て、main関数の呼び出し命令を出力する。
【0056】図22は、一般プロセスの処理のフローチ
ャートである。図22に示すように、一般プロセスは、
同一のネットワークノードの管理プロセスからポート番
号、コンフィギュレーションIDおよびマスタノードの
ネットワークアドレスを引数として入力し、起動され
る。(ステップS21)。そして、次に、一般プロセス
は、エクスポート処理を実行する(ステップS22)。
そして、マスタ管理プロセスCおよびスレーブ管理プロ
セスA,Bからインポート処理命令があるか否かを判断
し(ステップS23)、あると判断した場合にはインポ
ート処理を実行し(ステップS24)、プロセス実行開
始命令を待つ(ステップS25)。プロセス実行開始命
令が入力されると、一般プロセスは、main関数を実
行する(ステップS26)。
【0057】エクスポート処理 以下、図6に示すプロセス”PX1”に関するエクスポ
ート処理を例として説明する。先ず、一般プロセスは、
図6に示すプロセス”PX1”上のエクスポートモジュ
ールである図3に示す「export(func1) 」を呼び出し、
図28に示すようにローカル関数参照テーブル50のプ
リントネーム61に「func1」を登録する。ローカ
ル関数参照テーブル50には、「func1」のローカ
ル関数ID62として、図13のポート番号割当テーブ
ル253に示されるコンフィギュレーションID「#0
00001」が登録され、リモート関数ID63として
「#00100」が登録される。このリモート関数ID
「#00100」は、図29(B)に示すリモート関数
IDハッシュテーブル56にも登録される。
【0058】また、関数「func1」には、名前空間
上では名前が付されていないため、ローカル関数参照テ
ーブル50のドメイン内ネーム64は「nil」とな
る。また、この関数「func1」は、いずれのドメイ
ンにも属さず、ドメイン参照リスト65は「nil」と
なる。
【0059】図6に示すプロセス”PY1のローカル関
数参照テーブル50は、図30に示すようになる。ま
た、図6に示すプロセス”PZ1およびPZ2のローカ
ル関数参照テーブル50は、図31に示すようになる。
【0060】なお、エクスポート処理では、図29
(A)に示す関数/プロセスネームハッシュテーブル6
5も登録される。ここでは、上述したように、図6に示
すプロセス”PX1”についてのインポート処理および
エクスポート処理を例示したが、図6に示す”PZ
1”,”PY1”および”PZ2”のインポート処理お
よびエクスポート処理も同様の手順で行われる。
【0061】インポート処理 図23は、インポート処理を説明するためのフローチャ
ートである。ネットワークノードA,B,Cの一般プロ
セスは、インポート処理を開始すると、先ず、マスタ管
理プロセスと通信を行い、プログラムモジュールに含ま
れるインポートモジュールを呼び出し、プロセス配置テ
ーブル210に基づいて、プログラムモジュール名から
該当するプロセスのプロセス名およびその配置先ノード
名を得る(ステップS31)。このとき、該当するプロ
セスが複数ある場合には、全てをインポート処理の対象
とする。例えば、図6に示すプロセス”PX1”の場合
には、プログラムモジュール”X”のインポートモジュ
ール(import module) に含まれる「import(Y:func4) 」
が呼び出される。そして、この「import(Y:func4) 」に
含まれるプログラムモジュール名”Y”をキーとして、
図9に示すプロセス配置テーブル210のプログラム配
置情報235から該当するプロセス名”D2/PY1”
とノード名”B”が得られる。
【0062】次に、この一般プロセスは、得られたプロ
セス名がプロセス参照テープル52に既に登録されてい
るか否かを判断し(ステップS32)、登録されていな
い場合には、さらにノード名がプロセス参照テープル5
2に登録されているかを判断する(ステップS35)。
ノード名が登録されていない場合には、一般プロセス
は、マスタ管理プロセスと通信を行い、該当するノード
に関する情報を取得し、このノード情報をプロセス参照
テープル52に登録する(ステップS38)。
【0063】例えば、図24に示すように、プロセス
名”D2/PY1”はプロセス参照テープル52には登
録されていないので、このプロセスをプロセス参照テー
プル52に登録する。このとき、インポート先のネット
ワークアドレスを特定するため、図9に示すプロセス配
置テーブル210を用いて、ノード情報をプロセス参照
テープル52に登録する。このノード情報から、インポ
ート先のネットワークアドレスが分かる。具体的には、
図9に示すプロセス配置テーブル210から、ネットワ
ークノード”B”のネットワークアドレスは、イーサネ
ットが「s2.dvl.co.jp」であり、ATMが
「s2a.dvl.co.jp」であるというノード情
報を得る。
【0064】次に、一般プロセスは、インポート先のネ
ットワークノード上の管理プロセスに、コンフィギュレ
ーションIDおよびプロセス名をキーとして問い合わせ
を行い、該当するポート番号を得る(ステップS3
6)。具体的には、一般プロセスは、インポート先の管
理プロセスに、コンフィギュレーションID=#000
001およびプロセス名”D2/PY1”をキーにポー
ト番号を問い合わせる。問い合わせを受けた管理プロセ
スは、図13に示すポート番号割当テーブル254を参
照して、ポート番号「#010000」を一般プロセス
に返す。
【0065】一般プロセスは、ポート番号を得ると、こ
のポート番号とプロセス名をプロセス参照テープル52
に登録する(ステップS37)。これにより、プロセス
参照テープル52は図25に示すようになる。また、プ
ロセス”PY1”が所属するドメイン”D2”の参照が
存在しない場合には、図25に示すように、ドメイン参
照テーブル53に新規ドメインを作成する。次に、図2
6(A),(B)に示すように、関数/プロセスネーム
ハッシュテーブル55およびドメインネームハッシュテ
ーブル54を作成し、参照関係を確立する。
【0066】次に、一般プロセスは、該当するプロセス
の参照をプロセス名から得て、プリントネームをキーと
してリモートIDを得る(ステップS33)。具体的に
は、インポートモジュールに記述されている関数のプリ
ントネーム「func4」をキーとしてリモートIDに
例えば管理プロセスに問い合わせを行う。管理プロセス
は、プリントネーム「func4」をキーとして、ロー
カル関数参照テーブルからリモートID「#00010
1」を得て、これを一般プロセスに返す。なお、ローカ
ル関数参照テーブルは、図22に示すように、インポー
ト処理(ステップS24)が開始される前に行われるエ
クスポート処理(ステップS22)において作成されて
いる。
【0067】そして、一般プロセスは、得られたリモー
トID、プリントネームおよびプロセス参照をリモート
関数参照テーブルに登録する(ステップS34)。具体
的には、一般プロセスは、図27に示すように、得られ
たリモートID「#000101」、プリントネーム
「func4」およびプロセス参照をリモート関数参照
テーブル51に登録する(ステップS34)。
【0068】プログラムモジュールの実行 例えば、図6に示すネットワークノードAが図3に示す
プログラムモジュールXを実行してプロセス”PX1”
を生成すると、プログラムモジュールXの関数「fnc
2()」内の「call(Y:func4)」に対応す
る処理が実行される。このとき、プロセス”PX1”
は、ネットワークノードAの図10示すプロセス配置テ
ーブル210を参照し、プログラムモジュールYのプロ
セスに関するプロセス参照を得る。このプロセス参照
は、プログラムモジュールYがネットワークノードBに
配置され、ネットワークノードBのネットワークアドレ
スがイーサーネットについて「s2.dvl.co.j
p」でATMについて「s2a.dvl.co.jp」
であることを示している。
【0069】次に、プロセス”PX1”は、得られたプ
ロセス参照と、プリントネーム(func4)と、コミ
ュニケーションメディアの組をキーとして、図27に示
すリモート関数参照テーブル51を参照し、外部参照を
得る。この外部参照は、リモート関数ID「#0001
01」、ネットワークアドレスおよびネットワークポー
トID「#010000」である。
【0070】次に、プロセス”PX1”は、ネットワー
クアドレスおよびネットワークポートIDを用いて、相
手先プロセスにアクセスを行い、リモート関数IDの指
定による関数呼び出しを行う。呼び出されたプロセス
は、リモートIDをキーとして、図29(B)に示すリ
モート関数IDハッシュテーブル56から、ローカルI
Dを得て、システム(OS)に関数起動命令を出力す
る。
【0071】以上説明したように、並列分散実行支援シ
ステム31では、プログラムモジュールが実行されるネ
ットワークノードに関する配置情報を当該プログラムモ
ジュールの外で記述するため、プログラムモジュールの
記述を修正することなく、配置情報を変更するのみで、
プログラムモジュールが実行されるネットワークノード
を動的に変更できる。すなわち、計算オブジェクト空間
を形成した後に、その空間構成を動的に変更できる。
【0072】また、並列分散実行支援システム31によ
れば、アプリケーションプログラマは、プログラムモジ
ュールの実行時の参照関係を、実行時のネットワーク配
置に依存せずに記述できる。すなわち、プログラムモジ
ュールの実行時の配置情報をプログラムモジュールの外
で記述するため、ユーザは、プログラムモジュール上の
計算オブジェクトの参照関係(プログラム名と計算オブ
ジェクト名の組)のみを意識してプログラムモジュール
を記述すればよい。そのため、プログラムモジュール内
で記述される計算オブジェクトの静的な参照関係と、配
置情報に記述される動的な参照関係とを分けて扱うこと
ができる。
【0073】さらに、並列分散実行支援システム31に
よれば、計算空間の概念を導入したことで、ユーザは用
途に応じた必要な関数のみを管理する管理空間を自由に
形成することができる。その結果、関数の名前や識別子
などのユーザの管理負担が軽減される。また、管理され
るオブジェクトの数が減るので、オブジェクトの特定時
間を短縮できる。さらに、参照空間外のオブジェクトに
誤ってアクセスすることを効果的に防止できる。
【0074】また、並列分散実行支援システム31によ
れば、計算空間に加えてドメインの導入することで、ド
メイン相互間でも関数などの名前の衝突が許され、各ド
メインにおいて使用可能な関数の名前の自由度が高めら
れる。また、並列分散実行支援システム31によれば、
新たな関数が追加されたり、関数が削除された場合な
ど、当該関数に関連するローカル関数参照テーブル5
0、リモート関数参照テーブル51、プロセス参照テー
ブル52、ドメイン参照テーブル53、ドメインネーム
ハッシュテーブル54、関数/プロセスネームハッシュ
テーブル55およびリモート関数IDハッシュテーブル
56の箇所を修正することで柔軟にしかも容易に対応で
きる。
【0075】また、上述した並列分散実行支援システム
31では、ネットワークノードの実行環境(OS)の種
類は、空間管理とは無関係であることから、実行環境非
依存のシステムを提供できる。また、上述した並列分散
実行支援システム31では、ドメインの概念を用いるこ
とで、ネットワークにおけるネットワークノードの接続
態様とは無関係に、各プロセスに備えられた関数の参照
を管理することができる。
【0076】本発明は、上述した実施形態には限定され
ない。例えば、ドメインを構成する計算オブジェクトの
態様は上述したものには限定されない。また、上述した
実施形態では、計算オブジェクトとして関数を例示した
が、その他、所定のプログラムを実行する計算モジュー
ル、インスタンス、クラス、メソッド、大域関数および
ファイルなどの参照情報を管理する場合にも本発明は同
様に適用できる。また、図6に示す管理プロセスのう
ち、どの管理プロセスがマスタ管理プロセスになっても
よい。また、参照保持部および参照生成部は、各プロセ
ス毎に設けてもよいし、各計算オブジェクト毎に設けて
もよい。
【0077】
【発明の効果】以上説明したように、本発明の並列分散
処理システムおよびその方法によれば、プログラムモジ
ュールが実行されるネットワークノードに関する配置情
報を当該プログラムモジュールの外で記述するため、プ
ログラムモジュールの記述を修正することなく、配置情
報を変更するのみで、プログラムモジュールが実行され
るネットワークノードを動的に変更できる。すなわち、
計算オブジェクト空間を形成した後に、その空間構成を
動的に変更できる。
【0078】また、本発明の並列分散実行支援システム
およびその方法によれば、アプリケーションプログラマ
は、プログラムモジュールの実行時の参照関係を、実行
時のネットワーク配置に依存せずに記述できる。すなわ
ち、プログラムモジュールの実行時の配置情報をプログ
ラムモジュールの外で記述するため、ユーザは、プログ
ラムモジュール上の計算オブジェクトの参照関係のみを
意識してプログラムモジュールを記述すればよい。
【0079】また、本発明の並列分散実行支援システム
およびその方法によれば、計算空間の概念を導入したこ
とで、ユーザは用途に応じた必要な計算オブジェクトの
みを管理する管理空間を自由に形成することができる。
その結果、計算オブジェクトの名前や識別子などのユー
ザの管理負担が軽減される。また、管理される計算オブ
ジェクトの数が減るので、計算オブジェクトの特定時間
を短縮できる。さらに、参照空間外の計算オブジェクト
に誤ってアクセスすることを効果的に防止できる。さら
に、本発明の並列分散処理システムおよびその方法によ
れば、計算オブジェクトの動的な空間管理を容易に行う
ことができる。
【図面の簡単な説明】
【図1】図1は、本実施形態に係わる並列分散実行支援
システムの概念図である。
【図2】図2は、本実施形態に係わる並列分散実行支援
システムの構成図である。
【図3】図3は、図1に示す並列分散実行支援システム
において処理されるプログラムモジュールの記述内容を
示す図である。
【図4】図4は、図2に示すプロセス配置部を説明する
ための図である。
【図5】図5は、図1に示す並列分散実行支援システム
に形成された計算空間およびドメインを説明するための
図である。
【図6】図6は、図1に示す並列分散実行支援システム
の各ネットワークノードに配置されたプロセスを説明す
るための図である。
【図7】図7は、マスタ管理プロセスCおよびスレーブ
管理プロセスA,Bにおける処理のフローチャートであ
る。
【図8】図8は、プロセス配置テーブルの構成図であ
る。
【図9】図9は、ネットワークノードCのプロセス配置
テーブルの具体例である。
【図10】図10は、ネットワークノードAのプロセス
配置テーブルの具体例である。
【図11】図11は、ネットワークノードBのプロセス
配置テーブルの具体例である。
【図12】図12は、ポート番号割当テーブルの構成図
である。
【図13】図13は、ポート番号割当テーブルの具体例
である。
【図14】図14は、参照保持部の構成図である。
【図15】図15は、ローカル関数参照テーブルを説明
するための図である。
【図16】図16は、リモート関数参照テーブルを説明
するための図である。
【図17】図17は、プロセス参照テープルを説明する
ための図である。
【図18】図18は、ドメイン参照テーブルを説明する
ための図である。
【図19】図19は、ドメインネームハッシュテーブル
を説明するための図である。
【図20】図20は、関数/プロセスネームハッシュテ
ーブルを説明するための図である。
【図21】図21は、リモート関数IDハッシュテーブ
ルを説明するための図である。
【図22】図22は、一般プロセスの処理のフローチャ
ートである。
【図23】図23は、インポート処理を説明するための
フローチャートである。
【図24】図24は、インポート処理を説明するための
図である。
【図25】図25は、インポート処理を説明するための
図である。
【図26】図26は、インポート処理を説明するための
図である。
【図27】図27は、エクスポート処理を説明するため
の図である。
【図28】図28は、エクスポート処理を説明するため
の図である。
【図29】図29は、エクスポート処理を説明するため
の図である。
【図30】図30は、エクスポート処理を説明するため
の図である。
【図31】図31は、エクスポート処理を説明するため
の図である。
【符号の説明】
1,31…並列分散実行支援システム 32…ネットワーク 33,34…ネットワークノード 36.37…部分空間(プロセス) 38,41…デーモン 39…参照保持部 40…参照生成部 42…プロセス配置部 50…ローカル関数参照テーブル 51…リモート関数参照テーブル 52…プロセス参照テーブル 53…ドメイン参照テーブル 54…ドメインネームハッシュテーブル 55…関数/プロセスネームハッシュテーブル 56…リモート関数IDハッシュテーブル 210…プロセス配置テーブル 211…ポート番号割当テーブル

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】単数または複数の計算オブジェクトを備え
    たプロセスを実行する複数の演算処理ノードがネットワ
    ークを介して相互に接続され、計算オブジェクトの所在
    を特定する参照情報に基づいて計算オブジェクト相互間
    の呼び出しを行う並列分散処理システムにおいて、 前記演算処理ノードは、 前記プロセスを実現するプログラムモジュールの所在情
    報と当該プログラムモジュールの配置先の演算処理ノー
    ドの情報との対応を示す配置情報を基づいて、所定の演
    算処理ノードに前記プログラムモジュールを配置し、そ
    の配置先の演算処理ノードでプロセスを生成するプロセ
    ス配置手段と、 それぞれのプロセスにおいて、前記配置情報と前記プロ
    グラムモジュールに記述された計算オブジェクト相互間
    の参照関係とに基づいて、当該プロセスを実現するプロ
    グラムモジュールが参照している計算オブジェクトの参
    照情報を生成する参照情報生成手段とを有する並列分散
    処理システム。
  2. 【請求項2】前記演算処理ノードは、前記参照生成手段
    が生成した前記参照情報を保持する参照情報保持手段を
    さらに有する請求項1に記載の並列分散処理システム。
  3. 【請求項3】前記参照情報は、計算オブジェクトの識別
    子および名前を用いて、前記演算処理ノードにおける前
    記計算オブジェクトの所在を特定する請求項1または請
    求項2に記載の並列分散処理システム。
  4. 【請求項4】前記参照情報は、ネットワークトポロジー
    非依存に表現される請求項1〜3のいずれかに記載の並
    列分散処理システム。
  5. 【請求項5】前記参照情報は、実行環境非依存に表現さ
    れる請求項1〜4のいずれかに記載の並列分散処理シス
    テム。
  6. 【請求項6】前記計算オブジェクトは、プログラムを実
    行する計算モジュール、ファイル、関数、クラス、イン
    スタンス、メソッド、大域変数のいずれかである請求項
    1〜5のいずれかに記載の並列分散処理システム。
  7. 【請求項7】前記プロセスあるいは前記計算オブジェク
    トに対応して、前記プロセス配置手段、前記参照情報生
    成手段、前記参照情報保持手段のうち少なくとも一つを
    備えてある請求項1〜6のいずれかに記載の並列分散処
    理システム。
  8. 【請求項8】前記参照情報は、任意の複数の計算オブジ
    ェクトの集合に関しての参照情報である請求項1〜7の
    いずれかに記載の並列分散処理システム。
  9. 【請求項9】単数または複数の計算オブジェクトを備え
    たプロセスを実行する複数の演算処理ノードがネットワ
    ークを介して相互に接続され、計算オブジェクトの所在
    を特定する参照情報に基づいて計算オブジェクト相互間
    の呼び出しを行う並列分散処理方法において、 前記演算処理ノードは、 前記プロセスを実現するプログラムモジュールの所在情
    報と当該プログラムモジュールの配置先の演算処理ノー
    ドの情報との対応を示す配置情報を基づいて、所定の演
    算処理ノードに前記プログラムモジュールを配置し、そ
    の配置先の演算処理ノードでプロセスを生成し、 それぞれのプロセスにおいて、前記配置情報と前記プロ
    グラムモジュールに記述された計算オブジェクト相互間
    の参照関係とに基づいて、当該プロセスを実現するプロ
    グラムモジュールが参照している計算オブジェクトの参
    照情報を生成する並列分散処理方法。
  10. 【請求項10】前記演算処理ノードは、前記生成した前
    記参照情報を保持する請求項9に記載の並列分散処理方
    法。
  11. 【請求項11】前記参照情報は、計算オブジェクトの識
    別子および名前を用いて、前記演算処理ノードにおける
    前記計算オブジェクトの所在を特定する請求項9または
    請求項10に記載の並列分散処理方法。
  12. 【請求項12】前記参照情報は、ネットワークトポロジ
    ー非依存に表現される請求項9〜11のいずれかに記載
    の並列分散処理方法。
  13. 【請求項13】前記参照情報は、実行環境非依存に表現
    される請求項9〜12のいずれかに記載の並列分散処理
    方法。
  14. 【請求項14】前記計算オブジェクトは、プログラムを
    実行する計算モジュール、ファイル、関数、クラス、イ
    ンスタンス、メソッド、大域変数のいずれかである請求
    項9〜13のいずれかに記載の並列分散処理方法。
  15. 【請求項15】前記プロセスあるいは前記計算オブジェ
    クトに対応して、前記プロセス生成処理、前記参照情報
    生成処理、前記参照情報保持処理のうち少なくとも一つ
    を行う請求項9〜14のいずれかに記載の並列分散処理
    方法。
  16. 【請求項16】前記参照情報は、任意の複数の計算オブ
    ジェクトの集合に関しての参照情報である請求項9〜1
    5のいずれかに記載の並列分散処理方法。
JP35161096A 1996-03-05 1996-12-27 並列分散処理システムおよびその方法 Pending JPH10187468A (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP35161096A JPH10187468A (ja) 1996-12-27 1996-12-27 並列分散処理システムおよびその方法
CA002199108A CA2199108C (en) 1996-03-05 1997-03-04 Parallel distributed processing system and method of same
US08/812,399 US6098111A (en) 1996-03-05 1997-03-05 Parallel distributed processing system and method of same
DE69735045T DE69735045T2 (de) 1996-03-05 1997-03-05 Verteilte Parallelverarbeitung und Operationsprozessoren
KR1019970007241A KR100322213B1 (ko) 1996-03-05 1997-03-05 병렬분산처리시스템및그방법
EP97301467A EP0794493B1 (en) 1996-03-05 1997-03-05 Parallel distributed processing and operation processors
CN97103132A CN1132098C (zh) 1996-03-05 1997-03-05 并行分布处理系统及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP35161096A JPH10187468A (ja) 1996-12-27 1996-12-27 並列分散処理システムおよびその方法

Publications (1)

Publication Number Publication Date
JPH10187468A true JPH10187468A (ja) 1998-07-21

Family

ID=18418439

Family Applications (1)

Application Number Title Priority Date Filing Date
JP35161096A Pending JPH10187468A (ja) 1996-03-05 1996-12-27 並列分散処理システムおよびその方法

Country Status (1)

Country Link
JP (1) JPH10187468A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000056994A (ja) * 1998-08-04 2000-02-25 Digital Vision Laboratories:Kk プログラム配置方法
JP2000056995A (ja) * 1998-08-04 2000-02-25 Digital Vision Laboratories:Kk ネットワークで接続されたノード間のオブジェクト及びプロセスの移動方法及び機能の入れ替え方法並びにそれらの機能を有するノード装置
JP2000222230A (ja) * 1999-02-03 2000-08-11 Toshiba Corp 並列分散対応コンポーネント実行システム、その開発方法、並列分散対応コンポーネント実行プログラムを記録したコンピュータ読み取り可能な記録媒体、および並列分散対応コンポーネント実行システム開発用フレームワークを記録したコンピュータ読み取り可能な記録媒体
WO2000055725A1 (fr) * 1999-03-17 2000-09-21 Fujitsu Limited Systeme serveur et support d'enregistrement

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000056994A (ja) * 1998-08-04 2000-02-25 Digital Vision Laboratories:Kk プログラム配置方法
JP2000056995A (ja) * 1998-08-04 2000-02-25 Digital Vision Laboratories:Kk ネットワークで接続されたノード間のオブジェクト及びプロセスの移動方法及び機能の入れ替え方法並びにそれらの機能を有するノード装置
JP2000222230A (ja) * 1999-02-03 2000-08-11 Toshiba Corp 並列分散対応コンポーネント実行システム、その開発方法、並列分散対応コンポーネント実行プログラムを記録したコンピュータ読み取り可能な記録媒体、および並列分散対応コンポーネント実行システム開発用フレームワークを記録したコンピュータ読み取り可能な記録媒体
WO2000055725A1 (fr) * 1999-03-17 2000-09-21 Fujitsu Limited Systeme serveur et support d'enregistrement
US6792611B2 (en) 1999-03-17 2004-09-14 Fujitsu Limited Server system determining server application corresponding to processing request based on information held in server

Similar Documents

Publication Publication Date Title
KR100322213B1 (ko) 병렬분산처리시스템및그방법
US6061726A (en) Dynamic rights assignment apparatus and method using network directory services
JP3484779B2 (ja) 名前サービス方式及び名前サービス方法
US5339435A (en) Heterogenous software configuration management apparatus
US5475819A (en) Distributed configuration profile for computing system
US5133053A (en) Interprocess communication queue location transparency
EP0501610B1 (en) Object oriented distributed computing system
Allen et al. The grid application toolkit: toward generic and easy application programming interfaces for the grid
US6047332A (en) Global file system-based system and method for rendering devices on a cluster globally visible
US6438590B1 (en) Computer system with preferential naming service
US6834284B2 (en) Process and system for providing name service scoping behavior in java object-oriented environment
US5761672A (en) Distributed data base system
JPH06110808A (ja) クライアントインターフェースをアプリケーションのオブジェクト指向呼出しに対処するための方法及び装置
JPH0743686B2 (ja) 分散不均一環境におけるアプリケーションの動的呼出しの方法及び装置
JPH0656600B2 (ja) 分散不均一環境におけるサーバー機能の実行方法及び装置
JPH08263355A (ja) 分散ファイル・システム用マルチレベル・トークン管理のためのシステムおよび方法
JPH10320185A (ja) プロセッサ特定アプリケーションの実行方法
JP4042527B2 (ja) 呼出規約変換処理の生成方法
JPH10187468A (ja) 並列分散処理システムおよびその方法
KR20020004941A (ko) 인텔리전트 에이전트에서의 다이나믹 커맨드 확장성을위한 방법 및 장치
US8082553B2 (en) Client management of java management extensions (JMX) Mbean state
KR100421796B1 (ko) 컴퓨터제어시스템
JPH10124319A (ja) 並列分散処理システムおよびその方法
JP3693311B2 (ja) 分散処理システム
JPH10124423A (ja) 参照変換装置とその方法、および、分散処理システムとその方法