JPH09138760A - 分散コンピューティング実行支援方法 - Google Patents

分散コンピューティング実行支援方法

Info

Publication number
JPH09138760A
JPH09138760A JP7297954A JP29795495A JPH09138760A JP H09138760 A JPH09138760 A JP H09138760A JP 7297954 A JP7297954 A JP 7297954A JP 29795495 A JP29795495 A JP 29795495A JP H09138760 A JPH09138760 A JP H09138760A
Authority
JP
Japan
Prior art keywords
lps
program
host
program module
data
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
JP7297954A
Other languages
English (en)
Inventor
Akira Nomura
亮 野村
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP7297954A priority Critical patent/JPH09138760A/ja
Publication of JPH09138760A publication Critical patent/JPH09138760A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【課題】 本発明は、ネットワーク上の計算機を利用す
る不特定多数の利用者によるプログラムモジュールの共
用における問題を解決することを目的とし、実行時にメ
ッセージハンドラのエントリを動的に管理することによ
り、適切なメッセージハンドラを呼び出すための機構を
実現することを目的としている。 【解決手段】 交換するメッセージ中のオペレーション
やデータにワールドワイドでユニックな識別子を付与す
ることにより、適切なメッセージハンドラを探し、存在
すればそれを選択し、存在しなければ適切なプログラム
モジュールをロード/リンクした上でその中にあるメッ
セージハンドラを選択し呼び出す。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ネットワークによ
って接続された計算機上の不特定多数のプログラマが、
プログラムを開発し、かつ相互に利用しあうことを支援
する手段と、プログラムのネットワーク上での分散実行
を支援する手段とによる分散コンピューティング実行支
援方法に関する。
【0002】
【従来の技術】高速な通信手段の広がりにより、大規模
な問題を高速に処理するため、ネットワーク上の複数の
計算機を利用した、並列/分散コンピューティングが可
能となってきており、クライアント/サーバーモデルに
基づくネットワーク分散アプリケーションが開発され、
また、RPC*を始めとする分散アプリケーション開発
のための、支援機構が開発されてきている。
【0003】一方、オブシェクト指向プログラミングに
代表されるように、アプリケーションプログラムの生産
性向上のため、プログラムを部品化しておき、このよう
なプログラムの部品(プログラムモジュール)を必要に
応じて、アプリケーションプログラムに組み込むという
アプローチが、採られ始めている。このようなアプロー
チでは、プログラムモジュールを組み込むためには、ア
プリケーションプログラムは必要とするプログラムモジ
ュールの所在を知らなければならない。現在これは、フ
ァイルシステム(NFSのようなネットワークファイル
システムを含む)の特定のディレクトリにプログラムモ
ジュールが入った、ファイルを置くことにより解決され
ている。
【0004】
【発明が解決しようとする課題】プログラムモジュール
が入ったファイルを、特定のディレクトリに置くという
解決法は、比較的小規模のグループでは受け入れられる
が、インターネット等の不特定多数の利用者による共用
を考えた場合、全てのプログラムモジュールを、一箇所
におくことは負荷が集中するし、ファイル名のつけ方に
ついて広くコンセンサスをとることが難しく、現実的で
はない。本発明の第一の目的は、ネットワーク上の計算
機を利用する、不特定多数の利用者によるプログラムモ
ジュールの共用における、上記問題を解決することにあ
る。
【0005】また、現在の分散アプリケーション開発支
援機構では、プロセス間で受け渡される全てのメッセー
ジパタンが、予め分かっているようなものには有効であ
るが、この条件に合わない場合にはほとんど役にたたな
い。プログラムモジュールを組み合わせるというプログ
ラムスタイルでは、メッセージパタンは、一般に当該の
プログラムモジュールで定義されることになるため、な
んらかの形で、受け取ったメッセージを当該プログラム
モジュールのメッセージハンドラを呼び出す機構が必要
となるが、現在そのような一般的な枠組みはサポートさ
れていないためである。
【0006】本発明の第二の目的は、実行時にメッセー
ジハンドラのエントリを動的に管理することにより、適
切なメッセージハンドラを呼び出すための機構を実現す
ることにある。
【0007】
【課題を解決するための手段】本発明では、プログラム
モジュールを特定のディレクトリに置くというアプロー
チは採らず、ネットワーク上に散在した、プログラムモ
ジュールの所在を、そのプログラムモジュールが扱うデ
ータ型(オブジェクト指向言語におけるクラスに対応)
とそのデータ型に対するオペレーションセット(同メソ
ッドの集合に対応)及び、そのプログラムモジュールが
走行する計算機(マシンアーキテクチャやOS)に対し
て、ワールドワイドでユニークな識別子(UUID*)
を付けることにより、プログラムサーバで管理し、プロ
セス間で交換されるメッセージの送信側で、メッセージ
中のデータやオペレーションに、プログラムモジュール
に対応した、データ型とオペレーションセットのUUI
Dを付加し、受信側では、これらのUUIDと自身の走
行環境を表すUUIDを用いて、プログラムサーバか
ら、プログラムモジュールを受け取り、そのメッセージ
を正しく解釈するメッセージハンドラを呼び出すという
手段を採る。 (注) UUID*:OSF/DCEにより定義されている、ワ
ールドワイドでユニークな値を持つデータ RPC*:他のプロセスで実行するサブルーチンを、自
プロセスで実行する場合と同じようにプログラムするた
めの支援機能で、OSF/DCE等で規定されている。
【0008】
【発明の実施の形態】本発明について、図面を用いて説
明する。図1は本発明のブロック図である。図1におい
て、X,Y,Zは、ネットワーク接続された計算機(ホ
スト)、LLBは自身が走行するホスト上のサービスポ
ートを管理するディレクトリサーバ、GLBはネットワ
ーク内の各ホストが外部に提供している全てのサービス
ポートを管理するディレクトリサーバ、APは本発明を
実現するため実行時ライブラリが組み込まれた、ネット
ワーク分散実行を要求するアプリケーションプロセス、
LPSはそれが走行するホスト上にあるプログラムモジ
ュールの位置を管理するローカルプログラムサーバ、G
PSはネットワーク上にあるLPSのすべての情報を集
めたグローバルプログラムサーバ、CPは実行時ライブ
ラリだけが組み込まれたAPからの処理を請け負う協調
プロセス、PSはCPを作成するプロセスサーバであ
る。
【0009】図2は2つのホストXとY上のあるLPS
の持つ各々の内部データベースを、図3はホストZ上の
GPSの持つ内部データベースを、図4は協調プロセス
CPを作成するまでのAPとPS及びGLBの挙動を、
図5はAPとCPとのメッセージ交換の例を、図6はL
PSとGPSの初期化と、プログラムモジュール要求時
の挙動を、示したものである。
【0010】LLB,GLBはこの実施例では、HP社
のローカルロケーションブローカとグローバルロケーシ
ョンブローカを想定しているが、同等の機能をもつもの
であればこれら以外でもよい。なお、UUID自身やそ
の生成機構、LLB,GLBは既存のものなので、説明
は省く。 (参考文献) Lisa Zahn: "Network Computing Architecture", Princ
e-Hall Inc.(1990) (邦訳)川手恭輔「ネットワークコンピューティングア
ーキテクチャ」(株)トッパン(1991) (準備)あるデータ型を定義するプログラマは、そのデ
ータ型に対するUUIDをUUID生成機構より取得
し、このデータ型UUIDと基本オペレーションセット
(最低そのプログラムモジュールの初期化オペレーショ
ンとオペレーションデータ型のデータオブジェクトを作
り出すオペレーションとは必要となる)に相当する決ま
ったUUIDを付けて、そのプログラムを置くホストの
LPSに登録する。
【0011】また、あるデータ型を扱う、追加オペレー
ションセット(基本オペレーションセット中にないオペ
レーションの集合)を作成したプログラマは、新たなオ
ペレーションセットに対するUUIDをUUID生成機
構より取得し、そのデータ型について決められたUUI
Dと新たに得られたオペレーションセットUUIDを付
けて、そのプログラムを置くホストのLPSに登録す
る。
【0012】LPSへの登録時には、登録するプログラ
ムを走行させることができる走行環境(マシンまたは互
換なマシンおよびオペレーティングシステムのグルー
プ)を表す、予め決められたUUIDと、オブジェクト
ファイル(コンパイルされたプログラム)かソースプロ
グラム(この場合プログラムはそのソースコートをコン
パイルするためのコマンド列になっていなければならな
い)かの区別と、そのプログラムの処理内容を簡潔に表
すコメントも付与する。
【0013】さらに別途、オペレーションセットのイン
タフェース定義ファイル(データ型、オペレーションセ
ットのUuidと各オペレーションのパラメータ宣言が
定義されているファイル)を、そのデータ型とオペレー
ションセットのUUID、および(走行環境UUIDと
して)インタフェース定義であることを表す特別のUU
IDを用いてLPSに登録する(これは、このプログラ
ムモジュールの機能を呼び出す必要があるプログラムに
よって参照される)。
【0014】図2は、このようにして登録されたプログ
ラムを管理するLPSの内部データである。ここで、オ
リジナル/コピーの項目には、上記手法で登録された場
合はオリジナル、後で述べるように他のLPSから複写
してきたものはコピーと記される。コピーと記されたエ
ントリは、プログラムモジュールが集まり過ぎるのを防
ぐためにLPSの終了時に、そのプログラムと共に消去
される。オリジナルと記されたものはLPSの終了時に
専用のファイルに出力され、次回LPSの起動時の内部
データ再構成のために用いられる。 (初期化)図示の例では、APが走行する前に、各ホス
トでは、LLB,LPS,PSが、ネットワーク内に
は、少なくとも1つずつのGLB,GPSが走行してい
なければならない(通常オペレーティングシステムのス
タートアップ時に起動される)。これらのうち、LLB
はGLB,LPS,PS,GPSより以前に走行を開始
していなければならないが、その他はどのような順番で
も良いし、ネットワーク上の複数のGLB,GPSの起
動順番も問わない(各プロセスの内部データは、Wea
k−Consistencyという手段によりそのうち
に整合がとられる)。以下では簡単のため、各ホストで
はLLBが、またネットワーク上では一つずつのGL
B,GPSが走行しているとする。
【0015】LPSは走行を開始すると、自身が走行す
るホストのLLBとネットワーク上のGLBに自分のサ
ービスポートを登録し、上述の専用ファイルを使って、
自身が走行するホスト上のプログラムモジュール群を管
理する内部データ(図2)を構築し、GPSにその内容
を送る。GPSは、LPSから送られてきた情報によっ
て、自身の内部データ(図3)に追加/変更する(図
6)。
【0016】PSは、走行を開始すると、自身が走行す
るホストのLLBとネットワーク上のGLBに自分のサ
ービスポートを登録して、分散コンピューティングアプ
リケーション(AP)からサービス要求を待つ(図
4)。 (実行時支援)協調プロセス(CP)を作ろうとする分
散コンピューティングアプリケーション(AP)は、ま
ずCPを作れるホストを探すため、プロセスサーバを意
味するUUIDをキーとして用いて、GLBに問い合わ
せをする。GLBは、ネットワーク上で走行しているP
Sのサービスポートのリストを返す。APは、送られて
きたリストから、適当なPSを選び、そのPSが走行し
ているホストにおける、利用者のユーザ名とパスワード
を送る(必要なら利用者に問い合わせる)。PSは、そ
のホストでのアカウントを検査して、可能であれば、そ
のAP用のCPを作成し、そのサービスポートをAPに
返す。この時点で、APとCPが交信可能となる(図4
参照)。
【0017】以後APは、PSより返されたアクセスポ
ートを通じて、協調プロセスCPへ、必要なメッセージ
を送りつける(その逆もある)。尚、この例ではCPは
一つにしてあるが、複数あってもよく、CP同士のメッ
セージも同一のポートを用いる。
【0018】以下では、簡単なメッセージ交換の例を図
5を参照して示す。APが、CP内にデータの作成を要
求する場合、APは、先頭(コマンド部)を"create"と
して、その後に、CP内に作成したいデータの型を示す
UUIDとそれに必要な、やはりそのデータの型を示す
UUIDがついた初期値パラメータをつめこんだメッセ
ージをCPに送る。但し、パラメータは、後に述べるよ
うに直接の値ではなく、AP(あるいは他のCP)内の
データのアドレス(ハンドル)のこともあり、そのどち
らかを示すフラグも付いている。
【0019】CPは、"create"メッセージを受け取る
と、そのデータ型作成のメッセージハンドラが既にロー
ドされていれば、それを呼び出すが、ロードされていな
い場合は、以下のようにしてプログラムマネージャから
適切なプログラムモジュールを獲得する。
【0020】プログラムモジュールの獲得手続きを図6
を参照して示す。CPは、作成するデータの型を示すU
UIDと基本オペレーションセットのUUID、および
自分のホストYの属する走行環境UUIDをキーとし
て、それに対応するプログラムの所在をホストYの(L
LBにそのサービスポートを問い合わせて)LPSに問
い合わせる。ホストYのLPSがその所在を知らない
場合は、(GLBにそのサービスポートを問い合わせ
て)GPSに問い合わせを転送する。GPSは、LPS
の問い合わせに適合するプログラムモジュールを管理し
ているLPSを内部データから探し出し、そのLPS
のサービスポートのリストをホストYのLPSに返す
。ホストYのLPSは、このリストのなかからひとつ
(例えば、応答が一番早いもの:ホストXのLPS)を
選び、CPからの問い合わせを転送し、ホストXのL
PSから所望のプログラムモジュールのコピーを受け取
り、(必要ならばコンパイルして)ホストYのファイ
ルとする。そして、それを自身の内部テーブルに加え、
そのファイル名をCPに返す。LPSからファイル名
を受け取ったCPは、そのプログラムを自分自身に加え
(ロード+リンク)、そのプログラムモジュールの初期
化を行った後、データを作成するメッセージハンドラを
呼び出し、CP上にデータを作成する。
【0021】CPは、APより送られてきたメッセージ
パラメータに対しても、同様の処理でパラメータデータ
を作成するか、後述するAGENT データを作り、これらの
メッセージハンドラへのパラメータとする。
【0022】作成されたデータはハンドル(CP上のア
ドレスとCPのポートの対)としてAPに返される。こ
れを受け取ったAPは、特別なデータであるAGENT デー
タを作成し、このハンドルをその中に格納し、そのデー
タを呼び出しの結果とする。このAGENT データは、AP
が要求したデータ型として扱われる。そして、APがこ
のAGENT データを操作しようとすると、実行時ライブラ
リがこの操作をCPへのメッセージに変換する。このメ
ッセージは、先頭(コマンド部)"operation"に設定さ
れ、このAGENT を表すAGENT のハンドルと、対応する操
作(オペレーションセットUUIDを付加したオペレー
ション名)及び、その操作のパラメータが入れられる。
このとき一般には、パラメータがAP内の実データ(AG
ENT でないもの)であれば、それを表すハンドル変換さ
れ、AGENT データであれば、そのAGENT が内蔵するハン
ドルに変換される((注)整数のような基本的なデータ
等任意にコピーしても構わないようなデータではハンド
ルではなく値そのものがやりとりされる)。
【0023】このメッセージを受け取ったCP(の実行
時ライブラリ)は、メッセージ中のパラメータが、CP
内の実データのハンドルであればそれに対応した実デー
タを、さもなければ"create"メッセージと同様にして作
成された実データかAGENT データをパラメータとして、
ハンドルからCP内の実データに変換された操作対象に
対し、メッセージ中のオペレーションセットUUIDと
オペレーション名で決まるメッセージハンドラを呼び出
し操作を実行する。このとき、その操作を実行するメッ
セージハンドラがCPになければ、LPSを通じて(こ
の場合は、基本オペレーションセットのUUICの代わ
りに、メッセージ中のオペレーションセットUUIDが
キーとして使われる)、そのメッセージハンドラを含む
プログラムモジュールがロード/リンクされる。操作の
実行結果は、"create"メッセージと同様にやはり、ハン
ドルとしてAPに返されることになる。
【0024】
【発明の効果】本発明により、ネットワーク上に分散し
たプログラムモジュール群を、あたかも、自分のホスト
が全てを保持しているように扱うことができるし、複数
の実行プロセスに別れて動作する分散アプリケーション
でも、全てのプロセス空間が集まった大きなアドレスス
ペースをもつ、一つのプロセスとしてプログラムを設計
できるようになる。
【図面の簡単な説明】
【図1】本発明のブロック図である。
【図2】ローカルプログラムサーバ(LPS)の持つ内
部データベースを示す。
【図3】グローバルプログラムサーバ(GPS)の持つ
内部データベースを示す。
【図4】協調プロセス(CP)を作成するまでのアプリ
ケーションプロセス(AP)とプロセスサーバ(PS)
及びグローバルロケーションブローカ(GLB)の挙動
を示す。
【図5】アプリケーションプロセス(AP)と協調プロ
セス(CP)とのメッセージ交換の例を示す。
【図6】ローカルプログラムサーバ(LPS)とグロー
バルプログラムサーバ(GPS)の初期化と、プログラ
ムモジュール要求時の挙動を示す。
【符号の説明】
X,Y,Z:ホスト GPS:グローバルプログラムサーバ LLB:ローカルロケーションブローカ GLB:グローバルロケーションブローカ LPS:ローカルプログラムサーバ AP:アプリケーションプロセス PS:プロセスサーバ CP:協調プロセス

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 ネットワークを介して接続された、アー
    キテクチャやオペレーティングシステムの異なる、複数
    台の計算機(ホスト)からなるシステムでの分散コンピ
    ューティング実行支援方法に関して、 交換するメッセージ中のオペレーションやデータに、プ
    ログラムサーバに対応した、そのデータ型やオペレーシ
    ョンの属するオペレーションセットを表す、ワールドワ
    イドでユニークな識別子を付与することにより、プロセ
    ス内に複数存在するメッセージハンドラの中から、適切
    なメッセージハンドラを探し、 存在すればそれを選択し、存在しなければプロセスの走
    行環境に適合する、適切なプログラムモジュールをプロ
    グラムサーバより自動的にロード/リンクした上で、そ
    の中にあるメッセージハンドラを選択し呼び出すことを
    特徴とする分散コンピューティング実行支援方法。
  2. 【請求項2】 前記プログラムサーバの処理として、プ
    ログラムモジュールが扱う、データ型と、そのデータ型
    に対するオペレーションセット、および、そのプログラ
    ムモジュールを実行可能なマシン環境に対し、付与され
    た識別子を検索キーとして管理される内部データベース
    を持ち、利用者あるいは別のプログラムの要求によりこ
    れを検索し、適合するプログラムモジュールのコピーを
    要求元に送付することを特徴とする請求項1記載の分散
    コンピューティング実行支援方法。
JP7297954A 1995-11-16 1995-11-16 分散コンピューティング実行支援方法 Pending JPH09138760A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7297954A JPH09138760A (ja) 1995-11-16 1995-11-16 分散コンピューティング実行支援方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7297954A JPH09138760A (ja) 1995-11-16 1995-11-16 分散コンピューティング実行支援方法

Publications (1)

Publication Number Publication Date
JPH09138760A true JPH09138760A (ja) 1997-05-27

Family

ID=17853244

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7297954A Pending JPH09138760A (ja) 1995-11-16 1995-11-16 分散コンピューティング実行支援方法

Country Status (1)

Country Link
JP (1) JPH09138760A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7890607B2 (en) 2007-02-01 2011-02-15 Canon Kabushiki Kaisha Execution apparatus for executing a function in response to a request received via a network, and method of accepting a request received via a network

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7890607B2 (en) 2007-02-01 2011-02-15 Canon Kabushiki Kaisha Execution apparatus for executing a function in response to a request received via a network, and method of accepting a request received via a network

Similar Documents

Publication Publication Date Title
EP0657047B1 (en) Method and system for implementing remote procedure calls in a distributed computer system
Butler et al. User's guide to the p4 programming system
Notkin et al. Interconnecting heterogeneous computer systems
EP0466486B1 (en) Distributed computing system
Butler et al. User's guide to the p4 parallel programming system
JP3546394B2 (ja) ネットワークを介してリモート・プロシージャ・コール及びレスポンスを転送するための方法及びシステム
US6230160B1 (en) Creating proxies for distributed beans and event objects
EP0605959B1 (en) Apparatus and methods for making a portion of a first name space available as a portion of a second name space
US6636900B2 (en) Method and apparatus for executing distributed objects over a network
JPH05181814A (ja) オブジェクト指向コンピューティング・システム
JPH06208519A (ja) 通信インターフェースの生成システム及びその方法
JPH09171465A (ja) 異なる命名サービス・プロバイダが動的に命名フェデレーションに接合することを可能とするシステムおよび方法
JP2000155686A (ja) 分散システム中におけるプログラム実行方法及びその装置、分散システム中におけるプログラム実行手順を記憶したコンピュ―タ読み書き可能な記憶媒体及びコンピュ―タシステム
Yemini et al. CONCERT: A high-level-language approach to heterogeneous distributed systems
Boral et al. Implementation of the database machine DIRECT
Center MPI primer/developing with LAM
JPH09138760A (ja) 分散コンピューティング実行支援方法
US20130326191A1 (en) System and method for distributed computing
Bershad et al. A remote computation facility for a heterogeneous environment
Pase Dynamic probe class library (dpcl): Tutorial and reference guide
Bouraqadi-Saâdani et al. A reflective infrastructure for coarse-grained strong mobility and its tool-based implementation
JPH0823861B2 (ja) 分散処理方法
Torvalds Linux kernel implementation
Wai Distributed PS-algol.
Traub An abstract parallel graph reduction machine