JPH0525333B2 - - Google Patents
Info
- Publication number
- JPH0525333B2 JPH0525333B2 JP62288623A JP28862387A JPH0525333B2 JP H0525333 B2 JPH0525333 B2 JP H0525333B2 JP 62288623 A JP62288623 A JP 62288623A JP 28862387 A JP28862387 A JP 28862387A JP H0525333 B2 JPH0525333 B2 JP H0525333B2
- Authority
- JP
- Japan
- Prior art keywords
- queue
- node
- message
- key
- network
- 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.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
Description
以下の順序で本発明を説明する。
A 産業上の利用分野
B 従来技術
C 発明が解決しようとする問題点
D 問題点を解決するための手段
E 実施例
F 発明の効果
A 産業上の利用分野
本発明は、データ処理ネツトワーク中の異なる
ノードに位置するプロセスの間の通信に関するも
のである。その各ノードは、独立の動作をなし得
るプロセツサを有し、また端末装置、メモリ及び
I/O装置などの他のサービスを備えていてもよ
い。さらに、各プロセツサは多重処理、多重タス
ク能力を有していてもよい。より詳しく述べる
と、本発明は、プログラムが通信待ち行列のノー
ドを知ることを不要ならしめることによつてネツ
トワーク中の同一または異なるノードにある処理
装置間の、待ち行列に基づく通信を容易にするこ
とにある。本発明に係る記述においては、プロセ
ス間通信(IPC)待ち行列位置透過伝達機構が、
分散サービス環境中で実施されるものとして説明
される。 B 従来技術 M.J.Bach著、The Design of the UNIX
Operating System(UNIXは米国におけるAT&
Tベル研究所の商標)、Prentice−Hall 1986の
356〜367ページには、システム在駐カーネル中で
メツセージ待ち行列のアレイを呼び出すキーによ
つてメツセージ取得(MSGGET)システム・コ
ールを呼び出し、その特定のキーに対応する一致
エントリが見出されない場合に、新しい待ち行列
構造を割振るとともにユーザにその識別子を戻す
ことによつて、プロセス間通信(IPC)が行なわ
れることが開示されている。そして、メツセージ
を送り受け取るためのシステム・コール
MSGSND及びMSGRCVに関連するアルゴリズ
ムが開示されている。しかし、その文献には、ネ
ツトワークの異なるノードに位置する処理装置間
のプロセス間通信を容易ならしめることの記述も
示唆もない。 IBM RT Personal Computer Technology
(型式番号SA23−1057)にはIBM RT(RTは米
国におけるIBM社の商標である)パーソナル・
コンピユータが記述されている。それには拡張対
話型実行(Advanced Interactive Executive:
AIX(AIXは米国におけるIBM社の商標である))
オペレーテイング・システムが、AT&Tの
UNIXシステムVの概念の拡張であるとして開示
されている。 このAIXカーネルは、アプリケーシヨン・プ
ログラム及びコマンドのためのオペレーテイング
環境を与える。尚、AIXのより詳しい説明につ
いては、AIX Operating System Technical
Reference(型式番号SV21−8009)を参照された
い。この技術は、複数のIBM RT PCシステム
が通信ネツトワークのノードとなることを可能な
らしめ、且ついくつかの追加的な特徴を与えるよ
うに拡張されたものである。 そのような特徴の1つとしてネツトワークに亘
る分散処理がある。そのような分散サービス環境
は、通信リンクまたはネツトワークによつて接続
された2またはそれ以上のノードを有する。ネツ
トワークは、ローカル・エリア・ネツトワーク
(LAN)、または他のノードまたは他のネツトワ
ークに対する遠隔処理接続を有する広域(wide
area)ネツトワーク(WAN)のどちらかでよ
い。分散サービスの主要な目的は、AIXオペレ
ーテイング・システムのフアイル・システム及び
プロセス間通信(IPC)サービスを用いるアプリ
ケーシヨンのために構内/遠隔透過伝達機構を与
えることにある。 C 発明が解決しようとする問題点 本発明の目的は、ノード位置透過伝達機構と、
待ち行列の名前を衝突させる割当てを防止するた
めの手段と、1つの待ち行列上で所与のサービス
供給者から複数の顧客へメツセージを切換える
(demultiplexing)ことを可能ならしめる手段を
もつ効率的なメツセージ待ち行列処理システムを
提供することにある。 D 問題点を解決するための手段 本発明は、通信リンクを介して接続された少く
とも2つのシステムを含むネツトワーク中の異な
るノードにあるプロセス間の通信を容易ならしめ
るものである。その各ノードは、多重処理及び多
重タスク動作をなしうるプロセツサを有する。
尚、前述のように、各ノード・プロセツサは独立
(standalone)モードでも同様に動作し得るもの
でもよい。 異なるノードに位置づけられたプロセスは、そ
の実際のノード位置が、通信を開始するプログラ
ムにとつて未知であるようなIPC待ち行列を使用
する他のプロセスと通信可能であるようになされ
ている。本発明は、AIX IPCメツセージ機構を、
異なるノードにおける待ち行列間で送受信をなし
得るように拡張することにより、同一のAIXシ
ステム中のプロセス間の通信のためのAIX IPC
メツセージ待ち行列機構よりも進歩している。
AIXは、メツセージ取得(msgget)、メツセージ
送信(msgsnd)及びメツセージ受信(msgrcv)
システム・コールを使用してIPCをサポートす
る。メツセージ取得は、メツセージ待ち行列を見
出しあるいは作成し、その識別子MSQIDを戻す
ために使用される。そしてそれ以降のメツセージ
送信及びメツセージ受信コールは、ターゲツト待
ち行列を識別するためにこのMSQIDを使用す
る。 本発明は、入力キーを特定の待ち行列の実際の
キーとノード位置と相関させるための予定のカー
ネル在駐テーブル中のルツク・アツプ機能に対す
る引数として特定の待ち行列のキーを使用するよ
うにするために、AIX msgget システム・コー
ルに対して修正を加えることから進む。メツセー
ジを配置すべき待ち行列のノード位置及びキー
は、通信しているプロセスに透過的である。 待ち行列が遠隔ノードにあるとき、2つのノー
ドは、待ち行列要素情報を渡すために、それらの
間に確立された通信リンクを使用する。本発明の
好適な実施例は、IBMシステム・ネツトワー
ク・アーキテクチヤ(SNA)レベル6.2の拡張プ
ログラム間通信を利用する。 IPCメツセージ待ち行列は、その待ち行列が作
成されたときに割振られたキー、すなわち数値に
よつて識別される。特定の待ち行列にアクセスを
所望する任意のプロセスは、参照が、実際の待ち
行列識別子に対して確定的(resolved)であり得
るような方法でキーを参照しなくてはならない。 後で述べるように、本発明に係る方法の好適な
実施例は、分散サービス機能が設けられているオ
ペレーテイング・システム・レベルで実施され
る。本発明は、ネツトワーク中の各システム・ノ
ードがキーのための自己のIPC待ち行列プロフア
イル名称空間をもつべきことを要求する。そし
て、アプリケーシヨンのコールからノード固有キ
ーが、ノード固有キーを、呼出し手によつて与え
られた待ち行列名に関連づけるライブラリ・ルー
チンに戻される。 本発明はまた、各システムのカーネルに在駐す
るキー・マツピング・テーブル(KMT)をも必
要とする。キー・マツピング・テーブル中の各エ
ントリは、特定の待ち行列を照会する局所キー
と、その待ち行列が実際に駐在するノードと、そ
の待ち行列が実際に駐在するノードで使用される
キーを含む。KMTはシステムのスタート・アツ
プ時に各ノードのカーネルにロードされる。 KTMデータは、ネツトワークを監視するネツ
トワーク管理者によつて保守される。そして、
KMTに対する変更は必要に応じてネツトワーク
管理者によつてなされる。この管理オペレータの
関与するのは、アプリケーシヨン・インターフエ
ースでメツセージ待ち行列の透過性を許容するこ
とである。 前述のM.J.Bachの書物に記述されているよう
な従来技術においては、プロセスはメツセージ待
ち行列を利用してメツセージを送受することによ
つて通信する。その呼プロセスは、受信するプロ
セスがメツセージを見出すことを期待する待ち行
列を識別しなくてはならない。単独
(standalone)多重処理システムにおいては、す
べての待ち行列の位置が既知である。しかし、分
散サービスをもつネツトワーク環境においては、
プロセスが、同一または異なるノードにあるメツ
セージ待ち行列を介して他のノードにあるプロセ
スと通信するこが望ましい。このとき、各プロセ
スがネツトワーク中のすべてのメツセージ待ち行
列の位置情報を暗黙的に知つていることが必要と
されるのであれば、そのことは許容し得ないであ
ろう。すなわち、もしこれが要求されるなら、各
呼プロセスは、実際のメツセージ待ち行列位置が
変わるたび毎にその変更を知る必要があることに
なるからである。 本発明はこの問題を、プロセツサ・ノードの待
ち行列キーを、メツセージ待ち行列の実際のキー
及びノードと相関させるカーネル在駐テーブルを
設けることによつて解決する。これらのテーブル
は、ネツトワーク管理者によつて、メツセージ待
ち行列の実際のノード位置における変更を反映す
るように変更することができる。しかし、呼プロ
セスによつて供給される入力パラメータは変わら
ない。それゆえ、メツセージ待ち行列の実際のノ
ード位置はアプリケーシヨン・プログラム・イン
ターフエースで透過性である。 メツセージ待ち行列の実際の識別子に対するア
ドレス確定(resolution)がカーネル・レベルで
生じる。KMTは入力としてキーを受け取り、所
望の待ち行列のキーとノードIDを与える。各ノ
ードのカーネルをそのように相関させたことによ
り、システム・コール・ルーチンは通信を開始し
たプロセスによつて与えられるキーを受け取り、
それに対応するキーとノードへ進む。このとき、
もしその識別子をもつメツセージ待ち行列がその
ノードの待ち行列ヘツダ・テーブル中で見出され
なかつたら、新しいメツセージ待ち行列が作成さ
れ、もし呼出し者(caller)が、待ち行列が作成
されるべきことを要求したなら、そのメツセージ
待ち行列の識別子が呼出しノードのカーネルに戻
される。呼出しノードのカーネルにおいて、実際
のノード位置とメツセージ待ち行列識別子を含む
新しい代理(surrogate)待ち行列ヘツダ・エン
トリが構成される。次にアプリケーシヨンは、自
己のメツセージを、意図するメツセージ待ち行列
に配置することが可能となる。 E 実施例 第1図は、本発明が実施されるネツトワークを
示す概要図である。ネツトワーク10は、通信リ
ンク30を介して接続された複数のノードA,B
及びCを有するものとして示されている。各ノー
ドA,B,Cはそれぞれが、単独システムまたは
ネツトワーク10の一部として作動し得る多重タ
スク、多重処理能力をもつ少くとも1つのプロセ
ツサ40を含む。尚、第1図において参照番号4
0は各ノードA,B,Cでそれぞれ40A,40
B,40Cとして示され、これは参照番号42以
下についても同様である。図示されているよう
に、通信ネツトワーク30はローカル・エリア・
ネツトワーク(LAN)または広域ネツトワーク
(WAN)のどちらでもよいが、好適な実施例は
ノードA,B及びCの間で通信リンクを確立する
ためのIBMシステム・ネツトワーク・アーキテ
クチヤ(SNA)を利用する。各ノードは、ユー
ザ・アプリケーシヨン42が走ることになる少く
とも1つのプロセツサ40を有する。プロセツサ
40の内部には、好適にはIBMのAIXであるオ
ペレーテイング・システム(O.S.)46の制御の
下にあるプロセス44がある。 各プロセツサ40には、番号48として示されて
いるさまざまな記憶媒体が接続されている。尚、
図示されていないけれどもネツトワーク構成10
によつて意図されているものとして、ネツトワー
ク中の各プロセツサに接続可能な他のさまざまな
端末、記憶及び周辺I/O装置がある。各プロセ
ツサ40のオペレーテイング・システム46の内
部にはカーネル50がある。 各独立ノードA,B,Cは、所与のタスクを実
行するために、互いのノードで利用可能な資源を
共有するために互いに協働することができる。そ
のような分散サービス環境においては、本発明に
よつて与えられるメツセージ待ち行列位置の透過
性を通じて処理する効率的なメツセージの能力を
利用するためにユーザはわずかの対話しか必要と
しない。また資源を共有することにより、ネツト
ワーク中の各ノードで情報を複写する必要性が減
少される。 通信待ち行列のノード位置がユーザ・プログラ
ムに対して透過的であるがゆえに、プロセス間の
通信はより効率的になり、ユーザが通信の詳細に
払うべき注意はより少なくなる。尚、所与の待ち
行列の実際のノード位置は変わり得るけれども、
所与のノードのユーザは、待ち行列の位置を追従
する責任から開放される。ネツトワーク管理者の
1つの任務は、待ち行列のキーと位置を相関させ
るプロフイールの最新のセツトを維持すること
と、適当な相関情報をネツトワークにおける各ノ
ードのカーネル50中のKMTにロードすること
である。 ネツトワーク構成10中の各プロセツサ・ノー
ドのオペレーテイング・システム46には、予定
の待ち行列に必要な情報を維持するデイレクト
リ・サービス機能が含まれている。これらの機能
には、IPCキーの作成、キー位置の定義、特定の
メツセージ待ち行列のためのキーに対する外部
IPC待ち行列名の決定、及びメツセージが到来す
るノードからのネツトワーク位置及び遠隔待ち行
列の戻しがある。 待ち行列プロフアイル・レコードのフオーマツ
トが第1図の参照番号52で示されており、アプ
リケーシヨンの導入プログラムによつてコールさ
れるライブラリ・ルーチン作成IPC−PROFの実
行の結果として作成される。このプログラムは、
長さ14キヤラクタまでの待ち行列名(QNAME)
を供給し、ライブラリ・ルーチンがプロフアイ
ル・レコードを作成し、そのノードに固有の数字
INKEY値を割当てる。システムのスタート・ア
ツプ時に、システムはプロフアイルを読み、第2
図に示すようなエントリをもつKMTを作成す
る。 KMTは、ライブラリ・ルーチンによつて割当
てられる局所キー(LKEY)と、実際のキー
(RKEY)と、LKEYによつて指定される待ち行
列のためのノード(RNODE)を含む。 第3図は、待ち行列ヘツダ・レコードのフオー
マツトを示す。スタート・アツプ時にサーバー・
プロセスがIPC PROFを見出すために待ち行列
名を入力し、その待ち行列に関連するキーを受け
取る。サーバー・プロセスは次にキーを与えるシ
ステム・コール、msggetを発行し、msggetが待
ち行列を作成する。 第3図中の待ち行列ヘツダ・レコードは、特定
の待ち行列が、待ち行列ヘツダ・テーブルが在駐
するノードに対して局所的(L)であるか、あるいは
遠隔(R)に位置しているかを示す表示子を含む。待
ち行列ヘツダ・テーブル・エントリの残りのフオ
ーマツトは局所/遠隔表示子の関数である。すな
わち、もし待ち行列が局所的であるなら、LKEY
が局所待ち行列エントリを含み、LMTYPEはそ
の待ち行列のために最も新しく使用されたメツセ
ージ・タイプの表示子の値である。 遠隔待ち行列の場合、RNODEがそのノードID
を含み、RMODE MSQIDが遠隔ノードにおける
メツセージ待ち行列IDを含む。RNODE
BOOTCNTというフイールドは、遠隔ノードの
電力サイクル状況をあらわす数を含む。 第4図は、メツセージ待ち行列エントリの内容
を示す。MTYPEはメツセージのメツセージ・タ
イプであり、MSGPTRは、メツセージ・テキス
トに対するポインタである。 第5図は、本発明に基づきIPCの間に実行され
る論理をあらわすフローチヤートである。これに
おいて、ノードLOCNODEでのプロセスが通信
を開始したとき、プロセスは、ブロツク80で示
される入力としてLKEYを与えるmsggetシステ
ム・コールを発行する。そのキーは、
LOCNODEのカーネル在駐KMTにおけるルツク
アツプ関数に対する引数である。そして、ブロツ
ク82でKMTが検索される。ブロツク84で一
致が見出されると、ブロツク86でIPC論理が、
LOCNODEとREMNODEの間に通信リンクが存
在するかどうかを判断する(この説明では、
RNODEがREMNODEのためのノードIDを含む
ものと仮定する)。もし通信リンクが存在しない
なら、ブロツク88で通信リンクが確立され、ブ
ロツク90で、KMT中で見出された相関キー
RKEYが関連するノードREMNODEに送られ
る。 もしKMT中で、msggetをコールするために使
用されるLKEYのためのエントリが見出されなか
つたら、メツセージ待ち行列はブロツク92で局
所的であるとみなされ、慣用的な方法で通信が行
なわれる。 ブロツク94で、REMNODEのmsggetトラン
ザクシヨン・プログラムがRKEYを受け取り、
ブロツク96でREMNODEにおける待ち行列ヘ
ツダを検索する。このとき、ブロツク98で一致
が見出されないなら、エラー条件が存在し、そこ
のことはブロツク100で表示される。もし
REMNODEの待ち行列ヘツダがエントリ一致
RKEYを含むなら、ブロツク102で
REMNODEのブート・カウントであるRNODE
BOOTCNTとともにMSQIDがLOCNODEに戻
される。 次にブロツク104で示すようにLOCNODE
に戻つて、Rフオーマツト待ち行列ヘツダ・エン
トリ(第3図参照)がLOCNODE待ち行列ヘツ
ダ・リストに追加され、局所ノードMSQIDが呼
出し手に戻される。呼プロセスは次にmsgsndを
実行し、第5B図に知す論理が適用される。 第5B図を参照すると、LOCNODEにおいて、
MSQID(ブロツク110)が、LOCNODE待ち
行列ヘツダ・リストにインデツクスするために使
用される(ブロツク112)。ブロツク114で、
REMNODE(待ち行列ヘツダ中のRNODE)が既
にLOCNODEと接続されているかどうかの判断
がなされる。もしそうでなければ、ブロツク11
6で接続が確立され、LOCNODEのmsgsndがメ
ツセージ・テキスト、MSQID、RNODE
BOOTCNTとMTYPEのREMNODEへの送信を
行なわせる(ブロツク118)。 REMNODEでは、ブロツク120でその
msgsndトランザクシヨン・プログラムがMSQID
とBOOTCNT MTYPEを受け取る。
REMNODEはこのデータを受け取り、ブロツク
122で先ず受け取つたデータと、REMNODE
における現在のブート・カウントとを比較する。
もしそれらが一致しないならエラー条件が存在
し、そのことはブロツク124でLOCNODEに
戻される。一方、それらのカウント値が一致する
とき、REMNODEmsgsndトランザクシヨン・プ
ログラムが、待ち行列ヘツダを選択し、MTYPE
とともにそのメツセージ待ち行列上にメツセー
ジ・テキスト・ポインタ、MSGPTRを配置する
ためにMSQIDを使用する(ブロツク126)。
ブロツク128でREMNODEは、LOCNODEに
応答し、呼出し者(caller)に、成功裡に完了し
たという状況を戻す。 第5C図は、msgrcvシステム・コールの動作
をあらわすフローチヤートである。LOCNODE
において、ブロツク140でmsgrcvはMSQIDと
MTYPEを受け取る。msgrcvは、その待ち行列
ヘツダ・リストへインデツクスし正しい待ち行列
ヘツダを見出すためにMSQIDを使用する。また
msgrcvは、そのヘツダに含まれているRNODE
情報を使用して、ブロツク144でREMNODE
との接続(リンク)が存在しているかどうかを判
断し、もしそうでなければ、ブロツク146で接
続を確立する。ブロツク148では、その確立さ
れたリンクを介してMSQIDと、RNODE
BOOTCNTと、MTYPEがREMNODEに送られ
る。 REMNODEのmsgrcvトランザクシヨン・プロ
グラムがブロツク150でこの情報を受け取つた
後、そのプログラムは受け取つたブート・カウン
ト値と現在のブート・カウント値を比較する(ブ
ロツク152)。もしそれらのブート・カウント
値が一致しないのならブロツク154でエラー条
件が表示されLOCNODEに戻される。 ブート・カウント値が一致したとき、ブロツク
156でREMNODEのmsgrcvトランザクシヨ
ン・プログラム論理が待ち行列ヘツダを選択する
ために、受け取つたMSQIDを使用する。論理は
次に、ブロツク158で一致するMTYPEをもつ
メツセージがあるか否かを判断するために待ち行
列のメツセージ・エントリをチエツクする。もし
REMNODEのメツセージ待ち行列上に一致する
MTYPEをもつメツセージが存在しないのなら、
論理はブロツク160でメツセージが到来するの
を待つ。もし一致するMTYPEをもつメツセージ
が見出されたなら、ブロツク162で、上記の既
に確立された同一の通信リンクによりメツセー
ジ・テキスト・ポインタがLOCNODEに戻され
る。ブロツク164で、LOCNODEは呼出し手
にメツセージ・テキストを戻す。 第6図は、第5A,5B,5C図に関連する論
理を、特定の仮設的環境を使用して説明する図で
ある。ここでユーザが会議室を予定する
(scheduler)ためにコールするシエル・コマン
ド・プログラムがLOCNODEに存在すると仮定
しよう。このシエル・コマンドは、スケジユー
ラ・デーモン(daemon)IPCメツセージ待ち行
列のためにMSQIDを入手するべくその
LKEY71000のためにmsggetを発行する。また、
ネツトワーク管理者が、LOCNODEからの会議
室の要求がREMNODE中のデーモンによつてサ
ービスされるべきであると決定し、REMNODE
中のデーモンの待ち行列のためのキーが67000で
あると仮定する。この情報は、LOCNODEのカ
ーネルIPCKMT中にロードされている。 動作のシーケンスは次のとおりである。 (1) get roomがキー71000でMSGGETをコー
ル。 (2) MSGGETがキー71000のためのLOCNODE
KEYを参照する。 (3) KMTは、キー71000がRNODE REMNODE
中でRKEY67000に再マツプされたことを表示
する。 (4) MSGGETは今やREMNODE中でキー67000
を探すべきことを知つている。 (5) MSGGETはREMNODEとSNA接続を見出
し、あるいは確立し、キー67000のための
MSQIDを要求するネツトワーク・メツセージ
を送る。 (6) REMNODE中のMSGGETトランザクシヨ
ン・プログラムは、キーが67000である待ち行
列のためのメツセージ待ち行列ヘツダを探し出
す。この場合MSQIDは2である。 (7) REMNODE中のMSGGETトランザクシヨ
ン・プログラムは、LOCNODE中のMSGGET
に、MSQIDが2であることを述べるネツトワ
ーク応答を送る。 (8) MSGGETは、待ち行列ヘツダのリストにエ
ントリを追加する。ヘツダ・エントリはとりわ
けRNODE中のREMNODEと、2である
RNODE MSQIDと、これが遠隔待ち行列ヘツ
ダのための局所“代理”であることを記述する
タグRとを含む。この例では、遠隔待ち行列の
ための代理ヘツダは、LOCNODEの待ち行列
ヘツダ・リストのスロツト1にあり、従つて
LOCNODE MSQIDは1である。 (9) MSGGETは呼出し者にMSQID=1を戻す。 (10) get−roomは、会議室デーモンにIPCメツセ
ージを送るためにこのMSQIDを使用する。 以下に示すのは、第5A,5B,5C及び6図
に関連して説明した論理フローチヤートの擬似コ
ード表現である。
ノードに位置するプロセスの間の通信に関するも
のである。その各ノードは、独立の動作をなし得
るプロセツサを有し、また端末装置、メモリ及び
I/O装置などの他のサービスを備えていてもよ
い。さらに、各プロセツサは多重処理、多重タス
ク能力を有していてもよい。より詳しく述べる
と、本発明は、プログラムが通信待ち行列のノー
ドを知ることを不要ならしめることによつてネツ
トワーク中の同一または異なるノードにある処理
装置間の、待ち行列に基づく通信を容易にするこ
とにある。本発明に係る記述においては、プロセ
ス間通信(IPC)待ち行列位置透過伝達機構が、
分散サービス環境中で実施されるものとして説明
される。 B 従来技術 M.J.Bach著、The Design of the UNIX
Operating System(UNIXは米国におけるAT&
Tベル研究所の商標)、Prentice−Hall 1986の
356〜367ページには、システム在駐カーネル中で
メツセージ待ち行列のアレイを呼び出すキーによ
つてメツセージ取得(MSGGET)システム・コ
ールを呼び出し、その特定のキーに対応する一致
エントリが見出されない場合に、新しい待ち行列
構造を割振るとともにユーザにその識別子を戻す
ことによつて、プロセス間通信(IPC)が行なわ
れることが開示されている。そして、メツセージ
を送り受け取るためのシステム・コール
MSGSND及びMSGRCVに関連するアルゴリズ
ムが開示されている。しかし、その文献には、ネ
ツトワークの異なるノードに位置する処理装置間
のプロセス間通信を容易ならしめることの記述も
示唆もない。 IBM RT Personal Computer Technology
(型式番号SA23−1057)にはIBM RT(RTは米
国におけるIBM社の商標である)パーソナル・
コンピユータが記述されている。それには拡張対
話型実行(Advanced Interactive Executive:
AIX(AIXは米国におけるIBM社の商標である))
オペレーテイング・システムが、AT&Tの
UNIXシステムVの概念の拡張であるとして開示
されている。 このAIXカーネルは、アプリケーシヨン・プ
ログラム及びコマンドのためのオペレーテイング
環境を与える。尚、AIXのより詳しい説明につ
いては、AIX Operating System Technical
Reference(型式番号SV21−8009)を参照された
い。この技術は、複数のIBM RT PCシステム
が通信ネツトワークのノードとなることを可能な
らしめ、且ついくつかの追加的な特徴を与えるよ
うに拡張されたものである。 そのような特徴の1つとしてネツトワークに亘
る分散処理がある。そのような分散サービス環境
は、通信リンクまたはネツトワークによつて接続
された2またはそれ以上のノードを有する。ネツ
トワークは、ローカル・エリア・ネツトワーク
(LAN)、または他のノードまたは他のネツトワ
ークに対する遠隔処理接続を有する広域(wide
area)ネツトワーク(WAN)のどちらかでよ
い。分散サービスの主要な目的は、AIXオペレ
ーテイング・システムのフアイル・システム及び
プロセス間通信(IPC)サービスを用いるアプリ
ケーシヨンのために構内/遠隔透過伝達機構を与
えることにある。 C 発明が解決しようとする問題点 本発明の目的は、ノード位置透過伝達機構と、
待ち行列の名前を衝突させる割当てを防止するた
めの手段と、1つの待ち行列上で所与のサービス
供給者から複数の顧客へメツセージを切換える
(demultiplexing)ことを可能ならしめる手段を
もつ効率的なメツセージ待ち行列処理システムを
提供することにある。 D 問題点を解決するための手段 本発明は、通信リンクを介して接続された少く
とも2つのシステムを含むネツトワーク中の異な
るノードにあるプロセス間の通信を容易ならしめ
るものである。その各ノードは、多重処理及び多
重タスク動作をなしうるプロセツサを有する。
尚、前述のように、各ノード・プロセツサは独立
(standalone)モードでも同様に動作し得るもの
でもよい。 異なるノードに位置づけられたプロセスは、そ
の実際のノード位置が、通信を開始するプログラ
ムにとつて未知であるようなIPC待ち行列を使用
する他のプロセスと通信可能であるようになされ
ている。本発明は、AIX IPCメツセージ機構を、
異なるノードにおける待ち行列間で送受信をなし
得るように拡張することにより、同一のAIXシ
ステム中のプロセス間の通信のためのAIX IPC
メツセージ待ち行列機構よりも進歩している。
AIXは、メツセージ取得(msgget)、メツセージ
送信(msgsnd)及びメツセージ受信(msgrcv)
システム・コールを使用してIPCをサポートす
る。メツセージ取得は、メツセージ待ち行列を見
出しあるいは作成し、その識別子MSQIDを戻す
ために使用される。そしてそれ以降のメツセージ
送信及びメツセージ受信コールは、ターゲツト待
ち行列を識別するためにこのMSQIDを使用す
る。 本発明は、入力キーを特定の待ち行列の実際の
キーとノード位置と相関させるための予定のカー
ネル在駐テーブル中のルツク・アツプ機能に対す
る引数として特定の待ち行列のキーを使用するよ
うにするために、AIX msgget システム・コー
ルに対して修正を加えることから進む。メツセー
ジを配置すべき待ち行列のノード位置及びキー
は、通信しているプロセスに透過的である。 待ち行列が遠隔ノードにあるとき、2つのノー
ドは、待ち行列要素情報を渡すために、それらの
間に確立された通信リンクを使用する。本発明の
好適な実施例は、IBMシステム・ネツトワー
ク・アーキテクチヤ(SNA)レベル6.2の拡張プ
ログラム間通信を利用する。 IPCメツセージ待ち行列は、その待ち行列が作
成されたときに割振られたキー、すなわち数値に
よつて識別される。特定の待ち行列にアクセスを
所望する任意のプロセスは、参照が、実際の待ち
行列識別子に対して確定的(resolved)であり得
るような方法でキーを参照しなくてはならない。 後で述べるように、本発明に係る方法の好適な
実施例は、分散サービス機能が設けられているオ
ペレーテイング・システム・レベルで実施され
る。本発明は、ネツトワーク中の各システム・ノ
ードがキーのための自己のIPC待ち行列プロフア
イル名称空間をもつべきことを要求する。そし
て、アプリケーシヨンのコールからノード固有キ
ーが、ノード固有キーを、呼出し手によつて与え
られた待ち行列名に関連づけるライブラリ・ルー
チンに戻される。 本発明はまた、各システムのカーネルに在駐す
るキー・マツピング・テーブル(KMT)をも必
要とする。キー・マツピング・テーブル中の各エ
ントリは、特定の待ち行列を照会する局所キー
と、その待ち行列が実際に駐在するノードと、そ
の待ち行列が実際に駐在するノードで使用される
キーを含む。KMTはシステムのスタート・アツ
プ時に各ノードのカーネルにロードされる。 KTMデータは、ネツトワークを監視するネツ
トワーク管理者によつて保守される。そして、
KMTに対する変更は必要に応じてネツトワーク
管理者によつてなされる。この管理オペレータの
関与するのは、アプリケーシヨン・インターフエ
ースでメツセージ待ち行列の透過性を許容するこ
とである。 前述のM.J.Bachの書物に記述されているよう
な従来技術においては、プロセスはメツセージ待
ち行列を利用してメツセージを送受することによ
つて通信する。その呼プロセスは、受信するプロ
セスがメツセージを見出すことを期待する待ち行
列を識別しなくてはならない。単独
(standalone)多重処理システムにおいては、す
べての待ち行列の位置が既知である。しかし、分
散サービスをもつネツトワーク環境においては、
プロセスが、同一または異なるノードにあるメツ
セージ待ち行列を介して他のノードにあるプロセ
スと通信するこが望ましい。このとき、各プロセ
スがネツトワーク中のすべてのメツセージ待ち行
列の位置情報を暗黙的に知つていることが必要と
されるのであれば、そのことは許容し得ないであ
ろう。すなわち、もしこれが要求されるなら、各
呼プロセスは、実際のメツセージ待ち行列位置が
変わるたび毎にその変更を知る必要があることに
なるからである。 本発明はこの問題を、プロセツサ・ノードの待
ち行列キーを、メツセージ待ち行列の実際のキー
及びノードと相関させるカーネル在駐テーブルを
設けることによつて解決する。これらのテーブル
は、ネツトワーク管理者によつて、メツセージ待
ち行列の実際のノード位置における変更を反映す
るように変更することができる。しかし、呼プロ
セスによつて供給される入力パラメータは変わら
ない。それゆえ、メツセージ待ち行列の実際のノ
ード位置はアプリケーシヨン・プログラム・イン
ターフエースで透過性である。 メツセージ待ち行列の実際の識別子に対するア
ドレス確定(resolution)がカーネル・レベルで
生じる。KMTは入力としてキーを受け取り、所
望の待ち行列のキーとノードIDを与える。各ノ
ードのカーネルをそのように相関させたことによ
り、システム・コール・ルーチンは通信を開始し
たプロセスによつて与えられるキーを受け取り、
それに対応するキーとノードへ進む。このとき、
もしその識別子をもつメツセージ待ち行列がその
ノードの待ち行列ヘツダ・テーブル中で見出され
なかつたら、新しいメツセージ待ち行列が作成さ
れ、もし呼出し者(caller)が、待ち行列が作成
されるべきことを要求したなら、そのメツセージ
待ち行列の識別子が呼出しノードのカーネルに戻
される。呼出しノードのカーネルにおいて、実際
のノード位置とメツセージ待ち行列識別子を含む
新しい代理(surrogate)待ち行列ヘツダ・エン
トリが構成される。次にアプリケーシヨンは、自
己のメツセージを、意図するメツセージ待ち行列
に配置することが可能となる。 E 実施例 第1図は、本発明が実施されるネツトワークを
示す概要図である。ネツトワーク10は、通信リ
ンク30を介して接続された複数のノードA,B
及びCを有するものとして示されている。各ノー
ドA,B,Cはそれぞれが、単独システムまたは
ネツトワーク10の一部として作動し得る多重タ
スク、多重処理能力をもつ少くとも1つのプロセ
ツサ40を含む。尚、第1図において参照番号4
0は各ノードA,B,Cでそれぞれ40A,40
B,40Cとして示され、これは参照番号42以
下についても同様である。図示されているよう
に、通信ネツトワーク30はローカル・エリア・
ネツトワーク(LAN)または広域ネツトワーク
(WAN)のどちらでもよいが、好適な実施例は
ノードA,B及びCの間で通信リンクを確立する
ためのIBMシステム・ネツトワーク・アーキテ
クチヤ(SNA)を利用する。各ノードは、ユー
ザ・アプリケーシヨン42が走ることになる少く
とも1つのプロセツサ40を有する。プロセツサ
40の内部には、好適にはIBMのAIXであるオ
ペレーテイング・システム(O.S.)46の制御の
下にあるプロセス44がある。 各プロセツサ40には、番号48として示されて
いるさまざまな記憶媒体が接続されている。尚、
図示されていないけれどもネツトワーク構成10
によつて意図されているものとして、ネツトワー
ク中の各プロセツサに接続可能な他のさまざまな
端末、記憶及び周辺I/O装置がある。各プロセ
ツサ40のオペレーテイング・システム46の内
部にはカーネル50がある。 各独立ノードA,B,Cは、所与のタスクを実
行するために、互いのノードで利用可能な資源を
共有するために互いに協働することができる。そ
のような分散サービス環境においては、本発明に
よつて与えられるメツセージ待ち行列位置の透過
性を通じて処理する効率的なメツセージの能力を
利用するためにユーザはわずかの対話しか必要と
しない。また資源を共有することにより、ネツト
ワーク中の各ノードで情報を複写する必要性が減
少される。 通信待ち行列のノード位置がユーザ・プログラ
ムに対して透過的であるがゆえに、プロセス間の
通信はより効率的になり、ユーザが通信の詳細に
払うべき注意はより少なくなる。尚、所与の待ち
行列の実際のノード位置は変わり得るけれども、
所与のノードのユーザは、待ち行列の位置を追従
する責任から開放される。ネツトワーク管理者の
1つの任務は、待ち行列のキーと位置を相関させ
るプロフイールの最新のセツトを維持すること
と、適当な相関情報をネツトワークにおける各ノ
ードのカーネル50中のKMTにロードすること
である。 ネツトワーク構成10中の各プロセツサ・ノー
ドのオペレーテイング・システム46には、予定
の待ち行列に必要な情報を維持するデイレクト
リ・サービス機能が含まれている。これらの機能
には、IPCキーの作成、キー位置の定義、特定の
メツセージ待ち行列のためのキーに対する外部
IPC待ち行列名の決定、及びメツセージが到来す
るノードからのネツトワーク位置及び遠隔待ち行
列の戻しがある。 待ち行列プロフアイル・レコードのフオーマツ
トが第1図の参照番号52で示されており、アプ
リケーシヨンの導入プログラムによつてコールさ
れるライブラリ・ルーチン作成IPC−PROFの実
行の結果として作成される。このプログラムは、
長さ14キヤラクタまでの待ち行列名(QNAME)
を供給し、ライブラリ・ルーチンがプロフアイ
ル・レコードを作成し、そのノードに固有の数字
INKEY値を割当てる。システムのスタート・ア
ツプ時に、システムはプロフアイルを読み、第2
図に示すようなエントリをもつKMTを作成す
る。 KMTは、ライブラリ・ルーチンによつて割当
てられる局所キー(LKEY)と、実際のキー
(RKEY)と、LKEYによつて指定される待ち行
列のためのノード(RNODE)を含む。 第3図は、待ち行列ヘツダ・レコードのフオー
マツトを示す。スタート・アツプ時にサーバー・
プロセスがIPC PROFを見出すために待ち行列
名を入力し、その待ち行列に関連するキーを受け
取る。サーバー・プロセスは次にキーを与えるシ
ステム・コール、msggetを発行し、msggetが待
ち行列を作成する。 第3図中の待ち行列ヘツダ・レコードは、特定
の待ち行列が、待ち行列ヘツダ・テーブルが在駐
するノードに対して局所的(L)であるか、あるいは
遠隔(R)に位置しているかを示す表示子を含む。待
ち行列ヘツダ・テーブル・エントリの残りのフオ
ーマツトは局所/遠隔表示子の関数である。すな
わち、もし待ち行列が局所的であるなら、LKEY
が局所待ち行列エントリを含み、LMTYPEはそ
の待ち行列のために最も新しく使用されたメツセ
ージ・タイプの表示子の値である。 遠隔待ち行列の場合、RNODEがそのノードID
を含み、RMODE MSQIDが遠隔ノードにおける
メツセージ待ち行列IDを含む。RNODE
BOOTCNTというフイールドは、遠隔ノードの
電力サイクル状況をあらわす数を含む。 第4図は、メツセージ待ち行列エントリの内容
を示す。MTYPEはメツセージのメツセージ・タ
イプであり、MSGPTRは、メツセージ・テキス
トに対するポインタである。 第5図は、本発明に基づきIPCの間に実行され
る論理をあらわすフローチヤートである。これに
おいて、ノードLOCNODEでのプロセスが通信
を開始したとき、プロセスは、ブロツク80で示
される入力としてLKEYを与えるmsggetシステ
ム・コールを発行する。そのキーは、
LOCNODEのカーネル在駐KMTにおけるルツク
アツプ関数に対する引数である。そして、ブロツ
ク82でKMTが検索される。ブロツク84で一
致が見出されると、ブロツク86でIPC論理が、
LOCNODEとREMNODEの間に通信リンクが存
在するかどうかを判断する(この説明では、
RNODEがREMNODEのためのノードIDを含む
ものと仮定する)。もし通信リンクが存在しない
なら、ブロツク88で通信リンクが確立され、ブ
ロツク90で、KMT中で見出された相関キー
RKEYが関連するノードREMNODEに送られ
る。 もしKMT中で、msggetをコールするために使
用されるLKEYのためのエントリが見出されなか
つたら、メツセージ待ち行列はブロツク92で局
所的であるとみなされ、慣用的な方法で通信が行
なわれる。 ブロツク94で、REMNODEのmsggetトラン
ザクシヨン・プログラムがRKEYを受け取り、
ブロツク96でREMNODEにおける待ち行列ヘ
ツダを検索する。このとき、ブロツク98で一致
が見出されないなら、エラー条件が存在し、そこ
のことはブロツク100で表示される。もし
REMNODEの待ち行列ヘツダがエントリ一致
RKEYを含むなら、ブロツク102で
REMNODEのブート・カウントであるRNODE
BOOTCNTとともにMSQIDがLOCNODEに戻
される。 次にブロツク104で示すようにLOCNODE
に戻つて、Rフオーマツト待ち行列ヘツダ・エン
トリ(第3図参照)がLOCNODE待ち行列ヘツ
ダ・リストに追加され、局所ノードMSQIDが呼
出し手に戻される。呼プロセスは次にmsgsndを
実行し、第5B図に知す論理が適用される。 第5B図を参照すると、LOCNODEにおいて、
MSQID(ブロツク110)が、LOCNODE待ち
行列ヘツダ・リストにインデツクスするために使
用される(ブロツク112)。ブロツク114で、
REMNODE(待ち行列ヘツダ中のRNODE)が既
にLOCNODEと接続されているかどうかの判断
がなされる。もしそうでなければ、ブロツク11
6で接続が確立され、LOCNODEのmsgsndがメ
ツセージ・テキスト、MSQID、RNODE
BOOTCNTとMTYPEのREMNODEへの送信を
行なわせる(ブロツク118)。 REMNODEでは、ブロツク120でその
msgsndトランザクシヨン・プログラムがMSQID
とBOOTCNT MTYPEを受け取る。
REMNODEはこのデータを受け取り、ブロツク
122で先ず受け取つたデータと、REMNODE
における現在のブート・カウントとを比較する。
もしそれらが一致しないならエラー条件が存在
し、そのことはブロツク124でLOCNODEに
戻される。一方、それらのカウント値が一致する
とき、REMNODEmsgsndトランザクシヨン・プ
ログラムが、待ち行列ヘツダを選択し、MTYPE
とともにそのメツセージ待ち行列上にメツセー
ジ・テキスト・ポインタ、MSGPTRを配置する
ためにMSQIDを使用する(ブロツク126)。
ブロツク128でREMNODEは、LOCNODEに
応答し、呼出し者(caller)に、成功裡に完了し
たという状況を戻す。 第5C図は、msgrcvシステム・コールの動作
をあらわすフローチヤートである。LOCNODE
において、ブロツク140でmsgrcvはMSQIDと
MTYPEを受け取る。msgrcvは、その待ち行列
ヘツダ・リストへインデツクスし正しい待ち行列
ヘツダを見出すためにMSQIDを使用する。また
msgrcvは、そのヘツダに含まれているRNODE
情報を使用して、ブロツク144でREMNODE
との接続(リンク)が存在しているかどうかを判
断し、もしそうでなければ、ブロツク146で接
続を確立する。ブロツク148では、その確立さ
れたリンクを介してMSQIDと、RNODE
BOOTCNTと、MTYPEがREMNODEに送られ
る。 REMNODEのmsgrcvトランザクシヨン・プロ
グラムがブロツク150でこの情報を受け取つた
後、そのプログラムは受け取つたブート・カウン
ト値と現在のブート・カウント値を比較する(ブ
ロツク152)。もしそれらのブート・カウント
値が一致しないのならブロツク154でエラー条
件が表示されLOCNODEに戻される。 ブート・カウント値が一致したとき、ブロツク
156でREMNODEのmsgrcvトランザクシヨ
ン・プログラム論理が待ち行列ヘツダを選択する
ために、受け取つたMSQIDを使用する。論理は
次に、ブロツク158で一致するMTYPEをもつ
メツセージがあるか否かを判断するために待ち行
列のメツセージ・エントリをチエツクする。もし
REMNODEのメツセージ待ち行列上に一致する
MTYPEをもつメツセージが存在しないのなら、
論理はブロツク160でメツセージが到来するの
を待つ。もし一致するMTYPEをもつメツセージ
が見出されたなら、ブロツク162で、上記の既
に確立された同一の通信リンクによりメツセー
ジ・テキスト・ポインタがLOCNODEに戻され
る。ブロツク164で、LOCNODEは呼出し手
にメツセージ・テキストを戻す。 第6図は、第5A,5B,5C図に関連する論
理を、特定の仮設的環境を使用して説明する図で
ある。ここでユーザが会議室を予定する
(scheduler)ためにコールするシエル・コマン
ド・プログラムがLOCNODEに存在すると仮定
しよう。このシエル・コマンドは、スケジユー
ラ・デーモン(daemon)IPCメツセージ待ち行
列のためにMSQIDを入手するべくその
LKEY71000のためにmsggetを発行する。また、
ネツトワーク管理者が、LOCNODEからの会議
室の要求がREMNODE中のデーモンによつてサ
ービスされるべきであると決定し、REMNODE
中のデーモンの待ち行列のためのキーが67000で
あると仮定する。この情報は、LOCNODEのカ
ーネルIPCKMT中にロードされている。 動作のシーケンスは次のとおりである。 (1) get roomがキー71000でMSGGETをコー
ル。 (2) MSGGETがキー71000のためのLOCNODE
KEYを参照する。 (3) KMTは、キー71000がRNODE REMNODE
中でRKEY67000に再マツプされたことを表示
する。 (4) MSGGETは今やREMNODE中でキー67000
を探すべきことを知つている。 (5) MSGGETはREMNODEとSNA接続を見出
し、あるいは確立し、キー67000のための
MSQIDを要求するネツトワーク・メツセージ
を送る。 (6) REMNODE中のMSGGETトランザクシヨ
ン・プログラムは、キーが67000である待ち行
列のためのメツセージ待ち行列ヘツダを探し出
す。この場合MSQIDは2である。 (7) REMNODE中のMSGGETトランザクシヨ
ン・プログラムは、LOCNODE中のMSGGET
に、MSQIDが2であることを述べるネツトワ
ーク応答を送る。 (8) MSGGETは、待ち行列ヘツダのリストにエ
ントリを追加する。ヘツダ・エントリはとりわ
けRNODE中のREMNODEと、2である
RNODE MSQIDと、これが遠隔待ち行列ヘツ
ダのための局所“代理”であることを記述する
タグRとを含む。この例では、遠隔待ち行列の
ための代理ヘツダは、LOCNODEの待ち行列
ヘツダ・リストのスロツト1にあり、従つて
LOCNODE MSQIDは1である。 (9) MSGGETは呼出し者にMSQID=1を戻す。 (10) get−roomは、会議室デーモンにIPCメツセ
ージを送るためにこのMSQIDを使用する。 以下に示すのは、第5A,5B,5C及び6図
に関連して説明した論理フローチヤートの擬似コ
ード表現である。
【表】
【表】
長さバツフアの長さ
【表】
〓
〓
待ち行列の割当ては、“よく知られた”待ち行
列、すなわち多くの依頼人によつて使用されると
考えられる待ち行列には重複するキーが作成され
ないように管理されなくてはならない。本発明に
よれば、割当てキーの外部登録の必要なしでアプ
リケーシン・プロジエクトの作成者が大域的に固
有のキーを作成することを可能ならしめる方策が
与えられる。この方策の主要な要素は、待ち行列
プロフアイル(第1図、参照番号52)のエント
リ中で14個のキヤラクタの文字数字
(alphanumeric)待ち行列名を使用することであ
る。 アプリケーシヨンの開発者は、一意的に表現す
るための14個のキヤラクタの名前を選択する。各
待ち行列プロフアイル・エントリは第1図に示さ
れているように、QNAME、LKEY、RNODE、
RKEYというフイールドをもつ。 ライブラリ・ルーチンcreate ipc prof
(QNAME、LKEY、RKEY、NICKNAME)が
待ち行列プロフアイルを作成する。すなわち、呼
出し者が名前を与え、このルーチンが待ち行列プ
ロフアイル・エントリを作成し、それに固有の局
所キーを割当て、その局所キーを呼出し者に戻
す。その後ネツトワーク管理者がRNODEを及び
RKEYのためのデータを与える。 さて、分散アプリケーシヨンがサーバ・デーモ
ンとサーバの要求を作成するコマンド・プログラ
ムから成つていると仮定する。サーバは特定のネ
ツトワーク・ノード上に在駐し、コマンド・プロ
グラムはネツトワークのいくつかのノードのどれ
かで実行することができる。そのようなアプリケ
ーシヨンの導入及び動作は次の例によつて示され
る。 すなわち、デーモンが走るべき位置でアプリケ
ーシヨンの導入プログラムがcreate ipc prof
(3)をコールし、“ACMEsfwr032686”という待ち
行列名を与える。create ipc prof(3)によつて
作成されるプロフアイルは次のものを含む: 名 前“ACMEsfwr032686” 局所キー Ox30000−OxFFFFFの範囲から
create ipc prof(3)によつて選択され、この
ノードにおける他のいかなるプロフアイルとも
衝突しない値。 遠隔ノード 空文字 遠隔キー 0 コマンド・プログラムが走るべき各位置で、ア
プリケーシヨンの導入プログラムはcreate ipc
prof(3)をコールし、“ACMEsfwr032686”の待
ち行列名を与える。create ipc prof(3)によつ
て作成されるプロフアイルは次のものを含む: 名 前 “ACMEsfwr032686” 局所キー create ipc prof(3)によつて
Ox30000−OxFFFFFの範囲から選択され、こ
のノードにおける他のいかなるプロフアイルと
も衝突しない値。 ネツトワーク管理者は、次のものを含むように
コマンド・ノードにおけるプロフアイルを変更す
るように指令される: 遠隔ノード デーモンのノード 遠隔キー デーモンのノードにおける待ち行列の
局所キー デーモンがスタート・アツプするとき、デーモ
ンはfind ipc prof(3)をコールして、待ち行列
名“ACMEsfwr032686”を与えてその名前に関
連するキーを見出す。デーモンは次にその待ち行
列のためのIDを入手するためにmsgget(キー、
0)をコールする。 この14キヤラクタの待ち行列名はソフトウエア
開発者に、待ち行列名を選択する際のきわめて大
きい自由度を与える。すなわち、これにおいて
は、アプリケーシヨン開発者らの間で打合わせが
なくとも、ある開発者によつて注意深く選択され
た名前が、別の開発者によつて選択された名前と
衝突することはきわめて起こり難いことである。
しかし、慎重な開発者といえども衝突が生じるよ
うな場合を有する設計を選択することが全くない
とは言えない。そのような衝突を扱うための例示
的な方策としては次のようなものがある: *好適な待ち行列名がアプリケーシヨン・プログ
ラム中に固定的にコード化されるが、デーモン
とコマンド・プログラムの両方上でコマンド引
数によつて無効(override)ストリングを供給
することもできる。 *デーモンはまたコマンド・プログラムが導入さ
れたとき、そのデーモンまたはコマンド・プロ
グラムは、必要な待ち行列プロフアイルを作成
するためにcreate ipc prof(3)を使用する。
もし名前の衝突のためその作成が失敗したな
ら、管理者が固有の待ち行列を入力するよう促
される。導入プログラムは次にプロフアイルを
作成するためにこの待ち行列名を使用する。 *導入プログラムまたは文書は管理者に、デーモ
ン及びコマンド・プログラムが常に待ち行列名
引数で呼び出されていることを確認するよう指
令する。 次に正しいメツセージの経路指定(routing)
を保証するために実施される技術について説明す
る。上述のBachの文献に述べられているような
単独アプリケーシヨンにおいては、カーネルに所
与のタイプの最初のメツセージを戻させるように
MTYPEパラメータが適宜セツトされる。もし待
ち行列上にこのタイプを満足するメツセージが存
在しないなら、カーネルはプロセスを休眠させ
る。複数のプロセスが1つのメツセージ待ち行列
上で多重チヤネルをセツト・アツプすることがで
き、以て各プロセスが、カーネルが適正な順序を
維持しつつ到来する特定タイプのメツセージを順
に抽出することになる。 分散サービス・ネツトワーク環境においては、
しかし、複数の要求者が同時に同一のサーバを扱
うことが可能である。本発明は、メツセージ・タ
イプを用いて応答メツセージのデマルチプレクス
機能を与える。 MTYPE値は、メツセージ待ち行列ヘツダ(第
3図)中に32ビツトのMTYPE値を与えることに
よつて一意的であるように割当てられる。この値
は、最も新しく使用されたMTYPE値に対応す
る。メツセージ制御(msgct1)のための新しい
コマンドは、待ち行列のメツセージ・タイプの現
在の値を戻させる。MTYPEはプロセスに戻され
る度毎に(第5B図、ブロツク128)直ちにイ
ンクレメントされる。 尚、要求及び応答が同一の待ち行列を流れる方
がより効率的であるので、双方向待ち行列を切換
する際にMTYPEのために確立された規約がさら
にネツトワークの処理能力を高める。 例えば、次のような筋書きにより、起こり得る
問題が描き出される。すなわち、待ち行列を作成
するプロセス中でサーバがパワー・オンすると、
その待ち行列の識別情報が最初の待ち行列ヘツ
ダ・スロツドに入る。そして依頼人がmsggetを
行い、MSQIDを受け取る。ところでサーバは電
源サイクルを通過する。その少し後にサーバにお
けるプロセスが別の待ち行列を作成し、その識別
情報を最初の待ち行列ヘツダ・スロツトに入れ
る。依頼人のプロセスは次にもとのMSQIDを用
いてmsgsndを行う。すると、依頼人からのメツ
セージは依頼人が期待した待ち行列には行かな
い。 本発明によれば、依頼人がメツセージを送る度
毎にブート・カウントの比較が行なわれるために
この問題が回避される。そしてもしブート・カウ
ントが等しくないなら、依頼人はエラー条件を通
知される。ここで第5B図のブロツク122,1
24、及び第5C図のブロツク152,154を
再度参照されたい。 各ノードは、そのルート・デバイス・スーパ
ー・ブロツク(第1図参照番号54)に、サーバ
のパワー・オン状態を示すカウンタ、
BOOTCNTを有する。このカウンタは、サーバ
がパワー・オフされ再びオンにされる度毎にイン
クレメントされる。このカウント値は第5B図及
び第5C図に述べられているようなメツセージ動
作に使用され、そのメツセージ動作は、サーバ
が、メツセージ待ち行列識別子を発行したときと
同じ状態にあることを保証するためにメツセージ
待ち行列識別子を使用する。 F 発明の効果 要約すると、本発明は、多重ノード・ネツトワ
ーク中の任意のノードにあるプロセツサ間のプロ
セス間通信のための、カーネル・レベルで動作可
能な手段を与える。そして通信は、ネツトワーク
中の任意のノードにある、キーで識別されたメツ
セージ待ち行列上に配置されたメツセージを通じ
てなされる。 アプリケーシヨン・レベルでは、メツセージ待
ち行列ノード位置を知る必要がない。というの
は、上述したキー・マツピング・テーブルとそれ
の使用により、メツセージ処理システム・コール
によつて使用するための実際のメツセージ待ち行
列アドレスへの、アプリケーシヨン供給キーの確
定が可能となるからである。また、メツセージ伝
達の完全性は、必要なシステム・コールにおける
ブート・カウント比較ステツプによつて向上され
る。さらに、異なるノードのためのメツセージの
多重化は、待ち行列のヘツダ・エントリ中により
記述的なMTYPEを与えることによつて促進され
る。さらにまた、上述した命名規約により、衝
突、すなわち分散サービス・ネツトワーク環境中
の異なるアプリケーシヨン及びメツセージ待ち行
列によつて同一の名前が使用されることの虞れが
実質的に解消される。
〓
待ち行列の割当ては、“よく知られた”待ち行
列、すなわち多くの依頼人によつて使用されると
考えられる待ち行列には重複するキーが作成され
ないように管理されなくてはならない。本発明に
よれば、割当てキーの外部登録の必要なしでアプ
リケーシン・プロジエクトの作成者が大域的に固
有のキーを作成することを可能ならしめる方策が
与えられる。この方策の主要な要素は、待ち行列
プロフアイル(第1図、参照番号52)のエント
リ中で14個のキヤラクタの文字数字
(alphanumeric)待ち行列名を使用することであ
る。 アプリケーシヨンの開発者は、一意的に表現す
るための14個のキヤラクタの名前を選択する。各
待ち行列プロフアイル・エントリは第1図に示さ
れているように、QNAME、LKEY、RNODE、
RKEYというフイールドをもつ。 ライブラリ・ルーチンcreate ipc prof
(QNAME、LKEY、RKEY、NICKNAME)が
待ち行列プロフアイルを作成する。すなわち、呼
出し者が名前を与え、このルーチンが待ち行列プ
ロフアイル・エントリを作成し、それに固有の局
所キーを割当て、その局所キーを呼出し者に戻
す。その後ネツトワーク管理者がRNODEを及び
RKEYのためのデータを与える。 さて、分散アプリケーシヨンがサーバ・デーモ
ンとサーバの要求を作成するコマンド・プログラ
ムから成つていると仮定する。サーバは特定のネ
ツトワーク・ノード上に在駐し、コマンド・プロ
グラムはネツトワークのいくつかのノードのどれ
かで実行することができる。そのようなアプリケ
ーシヨンの導入及び動作は次の例によつて示され
る。 すなわち、デーモンが走るべき位置でアプリケ
ーシヨンの導入プログラムがcreate ipc prof
(3)をコールし、“ACMEsfwr032686”という待ち
行列名を与える。create ipc prof(3)によつて
作成されるプロフアイルは次のものを含む: 名 前“ACMEsfwr032686” 局所キー Ox30000−OxFFFFFの範囲から
create ipc prof(3)によつて選択され、この
ノードにおける他のいかなるプロフアイルとも
衝突しない値。 遠隔ノード 空文字 遠隔キー 0 コマンド・プログラムが走るべき各位置で、ア
プリケーシヨンの導入プログラムはcreate ipc
prof(3)をコールし、“ACMEsfwr032686”の待
ち行列名を与える。create ipc prof(3)によつ
て作成されるプロフアイルは次のものを含む: 名 前 “ACMEsfwr032686” 局所キー create ipc prof(3)によつて
Ox30000−OxFFFFFの範囲から選択され、こ
のノードにおける他のいかなるプロフアイルと
も衝突しない値。 ネツトワーク管理者は、次のものを含むように
コマンド・ノードにおけるプロフアイルを変更す
るように指令される: 遠隔ノード デーモンのノード 遠隔キー デーモンのノードにおける待ち行列の
局所キー デーモンがスタート・アツプするとき、デーモ
ンはfind ipc prof(3)をコールして、待ち行列
名“ACMEsfwr032686”を与えてその名前に関
連するキーを見出す。デーモンは次にその待ち行
列のためのIDを入手するためにmsgget(キー、
0)をコールする。 この14キヤラクタの待ち行列名はソフトウエア
開発者に、待ち行列名を選択する際のきわめて大
きい自由度を与える。すなわち、これにおいて
は、アプリケーシヨン開発者らの間で打合わせが
なくとも、ある開発者によつて注意深く選択され
た名前が、別の開発者によつて選択された名前と
衝突することはきわめて起こり難いことである。
しかし、慎重な開発者といえども衝突が生じるよ
うな場合を有する設計を選択することが全くない
とは言えない。そのような衝突を扱うための例示
的な方策としては次のようなものがある: *好適な待ち行列名がアプリケーシヨン・プログ
ラム中に固定的にコード化されるが、デーモン
とコマンド・プログラムの両方上でコマンド引
数によつて無効(override)ストリングを供給
することもできる。 *デーモンはまたコマンド・プログラムが導入さ
れたとき、そのデーモンまたはコマンド・プロ
グラムは、必要な待ち行列プロフアイルを作成
するためにcreate ipc prof(3)を使用する。
もし名前の衝突のためその作成が失敗したな
ら、管理者が固有の待ち行列を入力するよう促
される。導入プログラムは次にプロフアイルを
作成するためにこの待ち行列名を使用する。 *導入プログラムまたは文書は管理者に、デーモ
ン及びコマンド・プログラムが常に待ち行列名
引数で呼び出されていることを確認するよう指
令する。 次に正しいメツセージの経路指定(routing)
を保証するために実施される技術について説明す
る。上述のBachの文献に述べられているような
単独アプリケーシヨンにおいては、カーネルに所
与のタイプの最初のメツセージを戻させるように
MTYPEパラメータが適宜セツトされる。もし待
ち行列上にこのタイプを満足するメツセージが存
在しないなら、カーネルはプロセスを休眠させ
る。複数のプロセスが1つのメツセージ待ち行列
上で多重チヤネルをセツト・アツプすることがで
き、以て各プロセスが、カーネルが適正な順序を
維持しつつ到来する特定タイプのメツセージを順
に抽出することになる。 分散サービス・ネツトワーク環境においては、
しかし、複数の要求者が同時に同一のサーバを扱
うことが可能である。本発明は、メツセージ・タ
イプを用いて応答メツセージのデマルチプレクス
機能を与える。 MTYPE値は、メツセージ待ち行列ヘツダ(第
3図)中に32ビツトのMTYPE値を与えることに
よつて一意的であるように割当てられる。この値
は、最も新しく使用されたMTYPE値に対応す
る。メツセージ制御(msgct1)のための新しい
コマンドは、待ち行列のメツセージ・タイプの現
在の値を戻させる。MTYPEはプロセスに戻され
る度毎に(第5B図、ブロツク128)直ちにイ
ンクレメントされる。 尚、要求及び応答が同一の待ち行列を流れる方
がより効率的であるので、双方向待ち行列を切換
する際にMTYPEのために確立された規約がさら
にネツトワークの処理能力を高める。 例えば、次のような筋書きにより、起こり得る
問題が描き出される。すなわち、待ち行列を作成
するプロセス中でサーバがパワー・オンすると、
その待ち行列の識別情報が最初の待ち行列ヘツ
ダ・スロツドに入る。そして依頼人がmsggetを
行い、MSQIDを受け取る。ところでサーバは電
源サイクルを通過する。その少し後にサーバにお
けるプロセスが別の待ち行列を作成し、その識別
情報を最初の待ち行列ヘツダ・スロツトに入れ
る。依頼人のプロセスは次にもとのMSQIDを用
いてmsgsndを行う。すると、依頼人からのメツ
セージは依頼人が期待した待ち行列には行かな
い。 本発明によれば、依頼人がメツセージを送る度
毎にブート・カウントの比較が行なわれるために
この問題が回避される。そしてもしブート・カウ
ントが等しくないなら、依頼人はエラー条件を通
知される。ここで第5B図のブロツク122,1
24、及び第5C図のブロツク152,154を
再度参照されたい。 各ノードは、そのルート・デバイス・スーパ
ー・ブロツク(第1図参照番号54)に、サーバ
のパワー・オン状態を示すカウンタ、
BOOTCNTを有する。このカウンタは、サーバ
がパワー・オフされ再びオンにされる度毎にイン
クレメントされる。このカウント値は第5B図及
び第5C図に述べられているようなメツセージ動
作に使用され、そのメツセージ動作は、サーバ
が、メツセージ待ち行列識別子を発行したときと
同じ状態にあることを保証するためにメツセージ
待ち行列識別子を使用する。 F 発明の効果 要約すると、本発明は、多重ノード・ネツトワ
ーク中の任意のノードにあるプロセツサ間のプロ
セス間通信のための、カーネル・レベルで動作可
能な手段を与える。そして通信は、ネツトワーク
中の任意のノードにある、キーで識別されたメツ
セージ待ち行列上に配置されたメツセージを通じ
てなされる。 アプリケーシヨン・レベルでは、メツセージ待
ち行列ノード位置を知る必要がない。というの
は、上述したキー・マツピング・テーブルとそれ
の使用により、メツセージ処理システム・コール
によつて使用するための実際のメツセージ待ち行
列アドレスへの、アプリケーシヨン供給キーの確
定が可能となるからである。また、メツセージ伝
達の完全性は、必要なシステム・コールにおける
ブート・カウント比較ステツプによつて向上され
る。さらに、異なるノードのためのメツセージの
多重化は、待ち行列のヘツダ・エントリ中により
記述的なMTYPEを与えることによつて促進され
る。さらにまた、上述した命名規約により、衝
突、すなわち分散サービス・ネツトワーク環境中
の異なるアプリケーシヨン及びメツセージ待ち行
列によつて同一の名前が使用されることの虞れが
実質的に解消される。
第1図は、本発明が実施される複数のノードを
もつネツトワークをあらわす概要図、第2図は、
KMTのフオーマツトを示す図、第3図は、待ち
行列ヘツダ・レコードのエントリを示す図、第4
図は、メツセージ待ち行列エントリのフオーマツ
トを示す図、第5A,5B及び5C図は、プロセ
ス間通信の動作の論理フローチヤート、第6図
は、ある仮設的な値を与えた場合のプロセス間通
信の例を示す図である。
もつネツトワークをあらわす概要図、第2図は、
KMTのフオーマツトを示す図、第3図は、待ち
行列ヘツダ・レコードのエントリを示す図、第4
図は、メツセージ待ち行列エントリのフオーマツ
トを示す図、第5A,5B及び5C図は、プロセ
ス間通信の動作の論理フローチヤート、第6図
は、ある仮設的な値を与えた場合のプロセス間通
信の例を示す図である。
Claims (1)
- 【特許請求の範囲】 1 メツセージを格納した待ち行列を有する複数
のプロセツサノードを含み、アプリケーシヨン実
行を要求したノードがアプリケーシヨンを実行す
るノードをユーザに意識させることなく当該アプ
リケーシヨン実行をすることができるネツトワー
クシステムにおいて、 前記各ノードが、 前記要求ノードにおける参照のためのキーを、
前記待ち行列が実際に駐在する実行ノードの名称
と前記実行ノードにおける前記待ち行列固有のキ
ーに相関させるテーブル手段と、 前記テーブル手段を参照し、前記要求ノードと
前記実行ノードのリンクを確立するための手段
と、 前記リンク確立後に前記実行ノードの待ち行列
ヘツダの参照を経て、前記実行ノードの名称と前
記実行ノードにおける前記待ち行列に割り当てら
れた固有の識別子を前記要求ノードに格納するた
めの手段と、 を含むネツトワークシステム。 2 前記待ち行列ヘツダは、前記待ち行列にそれ
ぞれ独立な番号であつて、前記要求ノードが前記
実行ノードにメツセージを要求するごとに増分す
る番号を含むこと、 を特徴とする請求項1のネツトワークシステム。 3 前記待ち行列ヘツダは、前記各ノードの電源
の投入の回数に対応するカウンタ情報を含むこ
と、を特徴とする請求項1のネツトワークシステ
ム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US014888 | 1987-02-13 | ||
| US07/014,888 US5133053A (en) | 1987-02-13 | 1987-02-13 | Interprocess communication queue location transparency |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS63201860A JPS63201860A (ja) | 1988-08-19 |
| JPH0525333B2 true JPH0525333B2 (ja) | 1993-04-12 |
Family
ID=21768375
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP62288623A Granted JPS63201860A (ja) | 1987-02-13 | 1987-11-17 | ネツトワーク管理システム |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5133053A (ja) |
| EP (1) | EP0278316B1 (ja) |
| JP (1) | JPS63201860A (ja) |
| DE (1) | DE3852324T2 (ja) |
Families Citing this family (75)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE68909426T2 (de) * | 1988-01-15 | 1994-01-27 | Quantel Ltd | Datenverarbeitung und -übertragung. |
| US5345587A (en) | 1988-09-14 | 1994-09-06 | Digital Equipment Corporation | Extensible entity management system including a dispatching kernel and modules which independently interpret and execute commands |
| US5117351A (en) * | 1988-10-21 | 1992-05-26 | Digital Equipment Corporation | Object identifier generator for distributed computer system |
| US5551035A (en) * | 1989-06-30 | 1996-08-27 | Lucent Technologies Inc. | Method and apparatus for inter-object communication in an object-oriented program controlled system |
| EP0405829B1 (en) * | 1989-06-30 | 1998-04-15 | AT&T Corp. | Object oriented software system architecture |
| JPH0362257A (ja) * | 1989-07-31 | 1991-03-18 | Toshiba Corp | ネットワークモニタリングシステム |
| WO1991004540A1 (en) * | 1989-09-08 | 1991-04-04 | Auspex Systems, Inc. | Multiple facility operating system architecture |
| AU631749B2 (en) * | 1990-09-14 | 1992-12-03 | Digital Equipment Corporation | System and method for communication between windowing environments |
| JPH04130950A (ja) * | 1990-09-21 | 1992-05-01 | Toshiba Corp | ネットワークシステム |
| EP0552288A1 (en) * | 1990-10-03 | 1993-07-28 | Thinking Machines Corporation | Parallel computer system |
| US5673394A (en) * | 1990-10-31 | 1997-09-30 | Microsoft Corporation | Method of sharing memory between an operating system and an application program |
| EP0490595B1 (en) * | 1990-12-14 | 1998-05-20 | Sun Microsystems, Inc. | Method for operating time critical processes in a window system environment |
| US5617547A (en) * | 1991-03-29 | 1997-04-01 | International Business Machines Corporation | Switch network extension of bus architecture |
| US5347633A (en) * | 1991-04-30 | 1994-09-13 | International Business Machines, Inc. | System for selectively intercepting and rerouting data network traffic |
| FR2679351B1 (fr) * | 1991-07-15 | 1995-01-27 | Bull Sa | Systeme d'exploitation pour dispositif universel de couplage d'un bus d'ordinateur a une liaison specifique d'un reseau. |
| JP3116443B2 (ja) * | 1991-08-30 | 2000-12-11 | ソニー株式会社 | ソケット通信ログ蓄積装置 |
| US5257384A (en) * | 1991-09-09 | 1993-10-26 | Compaq Computer Corporation | Asynchronous protocol for computer system manager |
| US5913922A (en) * | 1991-09-16 | 1999-06-22 | Pitney Bowes Inc. | Method of transmitting messages between software processes in a multitasking data processing system |
| US5287434A (en) * | 1991-10-28 | 1994-02-15 | Monarch Marking Systems, Inc. | Barcode identification system spooler |
| US5313638A (en) * | 1992-03-24 | 1994-05-17 | International Business Machines Corp. | Method using semaphores for synchronizing communication between programs or processes resident in a computer system |
| FR2689267B1 (fr) * | 1992-03-27 | 1994-05-06 | Telemecanique | Procede de reconnaissance de donnees circulant sur un reseau de transmission de donnees et dispositif pour la mise en óoeuvre de ce procede. |
| US5611049A (en) * | 1992-06-03 | 1997-03-11 | Pitts; William M. | System for accessing distributed data cache channel at each network node to pass requests and data |
| US6026452A (en) * | 1997-02-26 | 2000-02-15 | Pitts; William Michael | Network distributed site cache RAM claimed as up/down stream request/reply channel for storing anticipated data and meta data |
| US5577202A (en) * | 1992-08-24 | 1996-11-19 | Trw Inc. | Message handling system for automated gateway between first and second handling systems wherein first envelope is added to a second envelope respectively without changing text |
| US5437036A (en) * | 1992-09-03 | 1995-07-25 | Microsoft Corporation | Text checking application programming interface |
| US5490252A (en) * | 1992-09-30 | 1996-02-06 | Bay Networks Group, Inc. | System having central processor for transmitting generic packets to another processor to be altered and transmitting altered packets back to central processor for routing |
| FR2698461B1 (fr) * | 1992-11-23 | 1995-01-13 | Bull Sa | Dispositif de traitement de l'information permettant la gestion d'une ressource informatique par un système d'administration. |
| US5386568A (en) * | 1992-12-01 | 1995-01-31 | Yamaha Corporation | Apparatus and method for linking software modules |
| US6718399B1 (en) * | 1993-05-21 | 2004-04-06 | Candle Distributed Solutions, Inc. | Communications on a network |
| US5613090A (en) * | 1993-10-05 | 1997-03-18 | Compaq Computer Corporation | Computer system for disparate windowing environments which translates requests and replies between the disparate environments |
| US5802312A (en) * | 1994-09-27 | 1998-09-01 | Research In Motion Limited | System for transmitting data files between computers in a wireless environment utilizing a file transfer agent executing on host system |
| US6085234A (en) * | 1994-11-28 | 2000-07-04 | Inca Technology, Inc. | Remote file services network-infrastructure cache |
| US6247064B1 (en) * | 1994-12-22 | 2001-06-12 | Unisys Corporation | Enqueue instruction in a system architecture for improved message passing and process synchronization |
| US5555396A (en) * | 1994-12-22 | 1996-09-10 | Unisys Corporation | Hierarchical queuing in a system architecture for improved message passing and process synchronization |
| US5563878A (en) * | 1995-01-05 | 1996-10-08 | International Business Machines Corporation | Transaction message routing in digital communication networks |
| US5724508A (en) | 1995-03-09 | 1998-03-03 | Insoft, Inc. | Apparatus for collaborative computing |
| US5838683A (en) | 1995-03-13 | 1998-11-17 | Selsius Systems Inc. | Distributed interactive multimedia system architecture |
| US7058067B1 (en) | 1995-03-13 | 2006-06-06 | Cisco Technology, Inc. | Distributed interactive multimedia system architecture |
| US5781787A (en) * | 1995-04-21 | 1998-07-14 | Lockheed Martin Corporation | Parallel program execution time with message consolidation |
| US6097882A (en) * | 1995-06-30 | 2000-08-01 | Digital Equipment Corporation | Method and apparatus of improving network performance and network availability in a client-server network by transparently replicating a network service |
| US5812767A (en) * | 1995-07-28 | 1998-09-22 | International Business Machines Corporation | System for user registering an address resolution routine to provide address resolution procedure which is used by data link provider interface for resolving address conflicts |
| US5754856A (en) * | 1995-08-30 | 1998-05-19 | Candle Distributed Solutions, Inc. | MVS/ESA message transport system using the XCF coupling facility |
| KR0150072B1 (ko) * | 1995-11-30 | 1998-10-15 | 양승택 | 병렬처리 컴퓨터 시스템에서의 메모리 데이타 경로 제어장치 |
| US5745781A (en) * | 1995-12-26 | 1998-04-28 | International Business Machines Corporation | Memoryless communications adapter including queueing and matching primitives for scalable distributed parallel computer systems |
| US5790789A (en) * | 1996-08-02 | 1998-08-04 | Suarez; Larry | Method and architecture for the creation, control and deployment of services within a distributed computer environment |
| US5781703A (en) * | 1996-09-06 | 1998-07-14 | Candle Distributed Solutions, Inc. | Intelligent remote agent for computer performance monitoring |
| US5946690A (en) * | 1996-12-17 | 1999-08-31 | Inca Technology, Inc. | NDC consistency reconnect mechanism |
| WO1999023571A1 (en) * | 1997-11-03 | 1999-05-14 | Inca Technology, Inc. | Automatically configuring network-name-services |
| SE511098C2 (sv) | 1997-12-08 | 1999-08-02 | Ericsson Telefon Ab L M | Kommunikationssystem och förfarande för att sända meddelanden i ett kommunikationssystem |
| US6310888B1 (en) * | 1997-12-30 | 2001-10-30 | Iwork Software, Llc | System and method for communicating data |
| US6308167B1 (en) * | 1998-04-09 | 2001-10-23 | Compaq Computer Corporation | Computer system using a queuing system and method for managing a queue and heterogeneous data structures |
| US7305473B2 (en) * | 1999-05-28 | 2007-12-04 | The Coca-Cola Company | Provision of transparent proxy services to a user of a client device |
| ATE390788T1 (de) | 1999-10-14 | 2008-04-15 | Bluearc Uk Ltd | Vorrichtung und verfahren zur hardware-ausführung oder hardware-beschleunigung von betriebssystemfunktionen |
| US7237022B1 (en) * | 2000-06-29 | 2007-06-26 | Microsoft Corporation | Suspension and reinstatement of reference handles |
| US7383355B1 (en) | 2000-11-01 | 2008-06-03 | Sun Microsystems, Inc. | Systems and methods for providing centralized management of heterogeneous distributed enterprise application integration objects |
| US7089564B2 (en) * | 2001-02-22 | 2006-08-08 | International Business Machines Corporation | High-performance memory queue |
| US6901533B2 (en) * | 2001-08-23 | 2005-05-31 | International Business Machines Corporation | Reconstructing memory residents queues of an inactive processor |
| US7068604B2 (en) * | 2001-08-23 | 2006-06-27 | International Business Machines Corporation | Managing memory resident queues to control resources of the systems using the queues |
| US20030126109A1 (en) * | 2002-01-02 | 2003-07-03 | Tanya Couch | Method and system for converting message data into relational table format |
| US8041735B1 (en) | 2002-11-01 | 2011-10-18 | Bluearc Uk Limited | Distributed file system and method |
| US7457822B1 (en) | 2002-11-01 | 2008-11-25 | Bluearc Uk Limited | Apparatus and method for hardware-based file system |
| US20120190441A1 (en) * | 2003-03-05 | 2012-07-26 | Sierra Design Group | Gaming Platform |
| US8136155B2 (en) * | 2003-04-01 | 2012-03-13 | Check Point Software Technologies, Inc. | Security system with methodology for interprocess communication control |
| US7308688B2 (en) * | 2003-08-19 | 2007-12-11 | Kabushiki Kaisha Toshiba | System and method for shared memory based IPC queue template having event based notification |
| US20050080759A1 (en) * | 2003-10-08 | 2005-04-14 | International Business Machines Corporation | Transparent interface to a messaging system from a database engine |
| KR100716169B1 (ko) * | 2005-05-06 | 2007-05-10 | 삼성전자주식회사 | 네트워크 관리 시스템에서의 메시지 처리 장치 및 방법 |
| JP5464449B2 (ja) * | 2011-04-06 | 2014-04-09 | 日本電気株式会社 | 障害によるリブートを考慮した処理部間の不整合検出方法並びに共有装置及びクラスタシステム |
| US9690638B2 (en) * | 2011-09-29 | 2017-06-27 | Oracle International Corporation | System and method for supporting a complex message header in a transactional middleware machine environment |
| US9116761B2 (en) * | 2011-09-29 | 2015-08-25 | Oracle International Corporation | System and method for preventing single-point bottleneck in a transactional middleware machine environment |
| US9292569B2 (en) * | 2012-10-02 | 2016-03-22 | Oracle International Corporation | Semi-join acceleration |
| US9674141B2 (en) * | 2013-12-27 | 2017-06-06 | Intel Corporation | Techniques for implementing a secure mailbox in resource-constrained embedded systems |
| US9898414B2 (en) | 2014-03-28 | 2018-02-20 | Oracle International Corporation | Memory corruption detection support for distributed shared memory applications |
| US10452547B2 (en) | 2017-12-29 | 2019-10-22 | Oracle International Corporation | Fault-tolerant cache coherence over a lossy network |
| US10467139B2 (en) | 2017-12-29 | 2019-11-05 | Oracle International Corporation | Fault-tolerant cache coherence over a lossy network |
| US11893267B2 (en) | 2022-01-14 | 2024-02-06 | Bank Of America Corporation | Data flow control and routing using machine learning |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4266271A (en) * | 1978-10-10 | 1981-05-05 | Chamoff Martin E | Reconfigurable cluster of data-entry terminals |
| US4412285A (en) * | 1981-04-01 | 1983-10-25 | Teradata Corporation | Multiprocessor intercommunication system and method |
| US4814979A (en) * | 1981-04-01 | 1989-03-21 | Teradata Corporation | Network to transmit prioritized subtask pockets to dedicated processors |
| US4719622A (en) * | 1985-03-15 | 1988-01-12 | Wang Laboratories, Inc. | System bus means for inter-processor communication |
| EP0201063B1 (en) * | 1985-05-06 | 1993-07-07 | Computer X, Inc. | Method of locating processes in a distributed data processing system |
| US4694396A (en) * | 1985-05-06 | 1987-09-15 | Computer X, Inc. | Method of inter-process communication in a distributed data processing system |
| US4706080A (en) * | 1985-08-26 | 1987-11-10 | Bell Communications Research, Inc. | Interconnection of broadcast networks |
-
1987
- 1987-02-13 US US07/014,888 patent/US5133053A/en not_active Expired - Lifetime
- 1987-11-17 JP JP62288623A patent/JPS63201860A/ja active Granted
-
1988
- 1988-01-26 EP EP88101090A patent/EP0278316B1/en not_active Expired - Lifetime
- 1988-01-26 DE DE3852324T patent/DE3852324T2/de not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| EP0278316A3 (en) | 1990-09-26 |
| DE3852324D1 (de) | 1995-01-19 |
| EP0278316A2 (en) | 1988-08-17 |
| JPS63201860A (ja) | 1988-08-19 |
| EP0278316B1 (en) | 1994-12-07 |
| US5133053A (en) | 1992-07-21 |
| DE3852324T2 (de) | 1995-05-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0525333B2 (ja) | ||
| US7246167B2 (en) | Communication multiplexor using listener process to detect newly active client connections and passes to dispatcher processes for handling the connections | |
| US5341499A (en) | Method and apparatus for processing multiple file system server requests in a data processing network | |
| US5519875A (en) | Distributed processing system for modules, each having modularized objects | |
| US6223217B1 (en) | Distributed object networking service | |
| US5475817A (en) | Object oriented distributed computing system processing request to other object model with code mapping by object managers located by manager of object managers | |
| US6219692B1 (en) | Method and system for efficiently disbursing requests among a tiered hierarchy of service providers | |
| US5765205A (en) | Method and system for on-demand software distribution | |
| US5822521A (en) | Method and apparatus for assigning policy protocols in a distributed system | |
| US6845505B1 (en) | Web request broker controlling multiple processes | |
| US6665786B2 (en) | Dynamic disk partition management | |
| EP0312739B1 (en) | Apparatus and method for interconnecting an application of a transparent services access facility to a remote source | |
| US5687372A (en) | Customer information control system and method in a loosely coupled parallel processing environment | |
| US20100162260A1 (en) | Data Processing Apparatus | |
| US5915131A (en) | Method and apparatus for handling I/O requests utilizing separate programming interfaces to access separate I/O services | |
| US6708171B1 (en) | Network proxy | |
| JPS63174135A (ja) | 分散型メツセージ・ベース・オペレーテイング・システムにおけるノードの自己構成法 | |
| JPH0675889A (ja) | 分散不均一環境におけるサーバー機能の実行方法及び装置 | |
| JPH08339355A (ja) | 分散形システムでの処理タスク実行呼び出し方法及び装置 | |
| US6832223B1 (en) | Method and system for facilitating access to a lookup service | |
| US6269378B1 (en) | Method and apparatus for providing a name service with an apparently synchronous interface | |
| US20030120720A1 (en) | Dynamic partitioning of messaging system topics | |
| US20020046228A1 (en) | Method and system for facilitating access to a lookup service | |
| EP0747812A2 (en) | Customer information control system and method with API start and cancel transaction functions in a loosely coupled parallel processing environment | |
| US6292824B1 (en) | Framework and method for facilitating client-server programming and interactions |