JPH06180654A - 送信側プロセスと複数の受信側プロセスの間でプロセス間メッセージのスイッチングを行う方法および装置 - Google Patents

送信側プロセスと複数の受信側プロセスの間でプロセス間メッセージのスイッチングを行う方法および装置

Info

Publication number
JPH06180654A
JPH06180654A JP3351788A JP35178891A JPH06180654A JP H06180654 A JPH06180654 A JP H06180654A JP 3351788 A JP3351788 A JP 3351788A JP 35178891 A JP35178891 A JP 35178891A JP H06180654 A JPH06180654 A JP H06180654A
Authority
JP
Japan
Prior art keywords
message
receiving
processes
sending
request
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
JP3351788A
Other languages
English (en)
Inventor
Carolyn L Foss
キャロリン・エル・フォス
Dwight F Hare
ドワイト・エフ・ヘア
Richard F Mcallister
リチャード・エフ・マクアリスター
Tin A Nguyen
ティン・アン・ニューエン
Amy Pearl
エイミー・パール
Sami Shaio
サミ・シャイオ
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH06180654A publication Critical patent/JPH06180654A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

(57)【要約】 【目的】 送り側プロセスと複数の受け側プロセスの間
でプロセス間メッセージのスイッチングを行う方法と装
置を得ることである。 【構成】 サポートされるメッセージは要求メッセージ
と告知メッセージを含む。サポートされる受け側プロセ
スはハンドラプロセスとオブザーバプロセスを含む。要
求メッセージを取り扱い、オブザーブできる。告知メッ
セージをオブザーブし、取り扱うことができる。ハンド
ラプロセスとオブザーバプロセスは実行はもちろん、非
実行とすることができる。送り側プロセスは受け側プロ
セスの実体を指定する必要はない。送り側プロセスと受
け側プロセスは同じコンピュータで、またはネットワー
ク内の2台またはそれ以上のコンピュータで実行でき
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はコンピュータ装置の分野
に関するものである。とくに、本発明は、送り側プロセ
スと複数の受け側プロセスの間でプロセス間メッセージ
スイッチングを行う方法および装置に関するものであ
る。
【0002】
【従来の技術】従来のプロセス間通信装置は、いくつか
のメッセージ種類を取り扱う性能、またはメッセージ配
分法を提供する。典型的な装置は要求メッセージの点間
配分と、プロセス間の通知メッセージのマルチキャスト
配分とをサポートする。プロセスというのは、実行のプ
ロセスにおけるプログラム、実行可能なファイル、の例
である。要求は別のプロセスに対して作用する1つのプ
ロセスに対する呼び出しである。要求は通常は点から点
へ、すなわち1つのプロセス(要求ハンドラと呼ばれ
る)へ通常送られ、または送ることができない時には戻
される。要求には要求ハンドラから要求送り側への応答
メッセージが伴う。応答は要求の結果を示す。通知はあ
る事象が起きたという1つのプロセスによる告知であ
る。通知は通常多重に行われ、1組のプロセス(オブザ
ーバと呼ばれる)へ送られる。通知にはオブザーバから
の応答は伴わず、その通知が送ることができないとして
も、送り側に対して何の作用も生じない。あるプロセス
はそれの実行中に種々の点で送り側、ハンドラまたはオ
ブザーバとして作用できる。
【0003】要求の通常の点間配分および通知の多重配
分は次のような少なくとも2つの欠点を有する。
【0004】(1)要求と通知の間の厳密な二分は融通
性に欠け、要求は観察できず、通知は取り扱うことがで
きない。
【0005】(2)送り側にはメッセージ受け側を識別
するという負担がかけられる。
【0006】それらの欠点により、協同する多重プロセ
ス応用、とくにネットワークに組まれた環境における開
発が妨げられてきた。あるプロセスがオブジェクトを生
じたことを、告知を送ることによりそのプロセスが通知
する場合には、それらのオブジェクトのカウントを含ん
でいるファイルをその告知の結果として更新すべきであ
る。そのカウントが1回確実に増加されるようにするた
めに、1つのプロセスがその告知を取り扱い、他の興味
のあるプロセスがそれを観察できる。通常のプロセス間
通信装置の下においては、正確に1つのプロセスがカウ
ントを更新するという保証がないから、1つの告知では
カウントの更新を行うことができない。第2の例は、他
のプロセスが要求を再検査または再実行することを許す
ために、1つのプロセスが他のプロセスにより行われた
要求の記録を保持するかもしれない場合である。要求メ
ッセージを観察できるプロセスは、その要求の再検査ま
たは再実行のタスクを容易に行うことができる。最後
に、プロセスのダイナミックな性質のために、送り側の
プロセスが、どのプロセスがメッセージを受けるべきか
を知ることが困難にされる。
【0007】後で述べるように、本発明は従来技術の諸
欠点を克服し、送り側プロセスと複数の受け側プロセス
の間の改良したプロセス間メッセージスイッチングを行
う方法および装置を提供するものである。
【0008】
【発明が解決しようとする課題】したがって、本発明の
目的は、送り側プロセスと複数の受け側プロセスの間の
プロセスメッセージのスイッチング、とくに要求メッセ
ージと告知メッセージのスイッチングを改良することで
ある。
【0009】本発明の別の目的は、要求メッセージを取
り扱いおよび観察できるとともに、告知メッセージを観
察および取り扱うことができるようにすることである。
【0010】本発明の別の目的は、受け側プロセスの実
体を知る必要なしに、要求メッセージと告知メッセージ
を送り側プロセスにより送ることができるようにするこ
とである。
【0011】本発明の更に別の目的は、要求メッセージ
と告知メッセージを送り側プロセスにより、非実行受け
側プロセスと実行受け側プロセスへ送ることができるよ
うにすることである。
【0012】
【課題を解決するための手段】それらの目的は、送り側
プロセスと複数の受け側プロセスの間のプロセス間メッ
セージをスイッチングする本発明の方法と装置により実
現される。この方法の好適な実施例は、受け側プロセス
を装置にレジスタリングする過程と、レジスタされた受
け側プロセスを選択して、送り側プロセスから受けたメ
ッセージを受ける過程と、選択された受け側プロセスの
ための受けたメッセージのコピーを待ち合わせする過程
と、受けたメッセージを実行し、または実行せず、配置
する過程と、待機させられたメッセージの可用性につい
ての選択された受け側プロセスを合図する過程と、待機
させられたメッセージを、合図された受け側プロセスに
より要求された時に、送る過程とを有する。本発明の装
置はレジスタリング過程と、選択する過程と、待ち合わ
せする過程と、合図をする過程と、送る過程とを行う種
々の手段を有する。
【0013】受けたメッセージを処理するために、この
方法の好適な実施例は、送り側プロセスをレジスタリン
グする過程と、告知メッセージを捨てる過程と、要求メ
ッセージに応答する過程とを更に有する。同様に、本発
明の装置は捨てる過程と、応答する過程とを行う種々の
手段を更に有する。
【0014】選択されたハンドラプロセスを有しない要
求メッセージに対して応答するために、本発明の方法の
好適な実施例は、要求メッセージを結果で更新する過程
と、応答メッセージを受けるために、レジスタさせられ
たオブザーバプロセスを選択する過程と、送り側プロセ
スと選択されたオブザーバプロセスとに対する応答メッ
セージのコピーを待機させる過程と、待機応答メッセー
ジの可用性について送り側プロセスおよび実行する選択
されたオブザーバプロセスに合図する過程と、合図され
た送り側プロセスとオブザーバプロセスにより要求され
た時に待機応答メッセージを送る過程とを更に有する。
同様に、本発明の装置は、更新、選択、合図および送り
の各過程を行う手段を更に有する。
【0015】選択されたハンドラプロセスでの要求メッ
セージに対して応答するために、この方法の好適な実施
例は、結果を待っている各要求メッセージの付加コピー
を待ち合わせる過程と、上記更新過程、選択過程、合図
過程および送る過程の前に、ハンドラプロセスから結果
を受けた時に、結果を待っている要求メッセージの待ち
合わせを解除する過程とを更に有する。
【0016】受け側プロセスの記録はメッセージパター
ン識別子と、合図のやり方の識別子と、プログラム形式
の識別子とを記録する過程を含む。送り側プロセスは合
図するやり方を記録する過程を含む。受け側プロセスと
送り側プロセスは初期化時、または実行中のある後の点
でダイナミックに記録できる。
【0017】メッセージはメッセージを記述する複数の
メッセージ属性を含む。メッセージ属性はメッセージ標
識と、メッセージクラスと、メッセージ状態とを含む。
メッセージクラスは「要求」と「告知」を含む。メッセ
ージ状態は「作成された」、「送られた」、「取り扱わ
れた」、「待機させられた」、「スタートさせられ
た」、「障害を起こされた」を含む。
【0018】選択は、各メッセージごとにたかだか1つ
のハンドラプロセスと、任意の数のオブザーバプロセス
とを含む。ハンドラプロセスとオブザーバプロセスは、
メッセージクラスとは無関係に選択される。メッセージ
属性を一致させることによりプロセスは選択される。記
録されているメッセージパターンと、プログラム型定義
に含まれているメッセージ特徴内のメッセージパターン
とに対して行われる。
【0019】記法および用語 後で行う詳細な説明を、コンピュータメモリ内のデータ
ビットに対するオペレーションのアルゴリズム表現およ
び記号表現で主として行う。それらのアルゴリズムによ
る説明および表現は、データ処理の分野における専門家
が自己の業績を最も効果的に伝えるために、それらの専
門家が用いる手段である。
【0020】アルゴリズムというのはここでは、および
一般的には、希望の結果へ導く自己矛盾のない一連の過
程であると考えられる。それらの過程は物理量の物理的
取り扱いを要する過程である。通常は、必然的なもので
はないが、それらの量は、記憶、転送、組み合わせ、比
較その他の処理を行うことができる電気信号または磁気
信号の形をとる。主として一般的に用いられているとい
う理由で、それらの信号をビット、値、素子、記号、オ
ブジェクト、キャラクタ、項、番号等と呼ぶことが時に
は便利であることが判明している。しかし、それら全て
の項および類似の項には適切な物理量に関連づけるこ
と、およびそれらの量へ取付けられる単なる便利なラベ
ルであることを記憶すべきである。
【0021】更に、行われる操作は、人の精神活動に一
般的に関連づけられる加算または比較のような表現でし
ばしば呼ばれる。本発明の一部を成す、ここで説明する
オペレーションのいずれにおいても人のそのような能力
は、ほとんどの場合に不必要であり、あるいは望ましく
ない。オペレーションはマシンオペレーションである。
本発明のオペレーションを行うために有用なマシンは汎
用デジタルコンピュータまたはそれに類似の装置を含
む。あらゆる場合に、コンピュータを動作させることに
おける方法オペレーションと計算自体の方法の違いを記
憶しておくべきである。本発明は、他の希望の物理的信
号を発生するために、電気的信号またはその他の(たと
えば機械的、化学的)物理的信号の処理においてコンピ
ュータを動作させる方法過程に関するものである。
【0022】本発明はそれらのオペレーションを行うた
めの装置にも関するものである。この装置は求められて
いる目的のためにとくに構成でき、またはコンピュータ
に内蔵されているコンピュータプログラムにより選択的
に動作させられ、または再構成されるものとしての汎用
コンピュータを含むことができる。ここで提示するアル
ゴリズムは任意の特定のコンピュータまたはその他の装
置に完全に関連するものではない。とくに、種々の汎用
機を、本発明の教示に従って書かれたプログラムで使用
でき、あるいは要求されている方法過程を実行するため
に一層特殊化された装置を構成するためにそれらの汎用
機は一層便利であることを証明できる。それらの種々の
装置のために要求される構造は以下の説明から明らかと
なるであろう。
【0023】以下に、ネットワークに結ばれている1台
または複数のコンピュータにより実行される送り側プロ
セスと、受け側プロセスとの間のメッセージをスイッチ
ングするために特定の応用を有するプロセス間メッセー
ジスイッチングのための方法および装置について説明す
る。本発明を完全に理解できるようにするために、以下
の説明においては、特定の数、材料および構成等のよう
な特定の事項の詳細について数多く述べてある。しか
し、そのような特定の詳細事項なしに本発明を実施でき
ることが当業者には明らかであろう。その他の場合に
は、本発明を不必要に詳しく説明して本発明をあいまい
にしないようにするために、周知のシステムは説明しな
い。
【0024】
【実施例】
1.概 観 まず、本発明のプロセス間メッセージスイッチングのた
めの装置10の好適な実施例のブロック図が示されてい
る図1を参照する。装置10はネットワーク60へ接続
されている複数のコンピュータ30、40、50に関連
して示されている。コンピュータ30、40、50のネ
ットワークは複数の送り側プロセス42と、複数の受け
側プロセス52、54とを有する。それらのプロセス4
0、52、54はメッセージ64〜67を互いに送り合
う。受け側プロセス52はハンドラプロセスであり、プ
ロセス54はオブザーバプロセスである。メッセージ6
4〜67は要求メッセージ、告知メッセージ、結果メッ
セージおよび応答メッセージである。
【0025】本発明のプロセス間メッセージをスイッチ
ングする装置10の好適な実施例は、プロセス42、5
2、54からレジストレーション62を入力として受け
るためのインターフェイス(図示せず)を含むレジスタ
リング手段12と、送り側プロセス42からメッセージ
64、65を入力として受けるためのインターフェイス
(図示せず)を含む選択手段14と、この選択手段14
へ結合される待ち合わせ手段16と、選択手段14へ結
合され、受け側プロセス52、54から結果66を入力
として受けるためのインターフェイス(図示せず)を含
む更新手段18と、レジスタリング手段12と待ち合わ
せ手段16へ結合され、信号をプロセス42、54、5
4へ出力する合図手段20と、プロセス42、52、5
4から確認応答を入力として受け、メッセージ64、6
5、67をプロセス42、52、54へ出力するための
インターフェイス(図示せず)を含む送り手段21とを
有する。
【0026】2.レジスタリング手段 レジスタリング手段12は本発明の装置で受け側プロセ
ス52、54をレジスタリングするためのものである。
受け側プロセス52、54のレジストレーションは、各
受け側プロセス52、54に対してレジスタリングメッ
セージパターンと合図方法を有する。また、受け側プロ
セス52、54のレジストレーションは、各受け側プロ
セス52、54に対してプログラム型識別子をレジスタ
リングすることを含むこともできる。
【0027】メッセージパターンは、レジスタリング受
け側プロセス52、54が受けるメッセージ64、6
5、67を装置10へ記述する。合図方法は、メッセー
ジ64、65、67の可用性についてレジスタリング受
け側プロセス52、54へどのようにして合図するかを
装置10へ記述する。プログラム型識別子は、レジスタ
リング受け側プロセス52、54により実行されている
プログラムを装置10へ記述する。メッセージパターン
と、合図方法と、プログラム型識別子とについては後で
詳しく説明する。
【0028】レジスタリング手段12は、レジスタリン
グプロセス42、54、54のためのレジストレーショ
ン62を入力として受けるためのインターフェイス(図
示せず)を有する。レジスタリング手段12は複数の処
理手段(図示せず)も有する。各処理手段は、それらの
レジストレーション62を処理するため、それに含まれ
ている合図方法またはメッセージパターンを取り出すた
め、選択手段14と合図手段20により後で使用するた
めにそれらを記憶するために、レジストレーションイン
ターフェイスへ結合される。レジストレーション62は
プログラム型識別子を含み、プロセシング手段はプログ
ラム型識別子を取り出し、プログラム型識別子により識
別されたプログラム型定義68を用いて、メッセージパ
ターンを発生する。発生されたメッセージパターンは、
選択手段14により後で使用するために記憶もされる。
また、レジスタリング手段12は、プログラム保留メッ
セージ待ち行列26を検査し、合図手段21へ出力し
て、待機させられているメッセージ64、65の可用性
についてレジスタリング受け側プロセス52、54へ合
図する。プログラム型定義68と、プログラム保留メッ
セージ待ち行列26と、合図手段21についても後で詳
しく説明する。
【0029】レジスタリング手段12は、レジスタリン
グプロセス42、52、54に対するレジストレーショ
ン62を、レジスタリングプロセス42、52、54か
ら直接に受け、または別のソースから間接に受ける。レ
ジスタリング手段は、装置10が動作中にレジスタリン
グ62をダイナミックに受け、または装置10が初期化
される前にスタチックに受けることもできる。レジスタ
リングプロセス42、52、54が初期化される時、ま
たはそれらの実行中のある後の時点で、レジストレーシ
ョン62はそれらのレジスタリングプロセスによりレジ
スタリング手段12へ直接供給されることが好ましい。
レジストレーション62は任意のシステムメッセージ送
りサービスを用いてレジスタリング手段12へ供給する
ことができる。ネットワーク中の種々のコンピュータで
実行するプロセスの間の透過プロセス間メッセージ送り
をサポートするシステムメッセージ送りサービスは用い
られることが好ましい。たとえば、遠隔手順コールで実
現される(UNIX環境におけるMsgsnd)。UN
IXシステムメッセージ送りサービスの詳細については
エム・ジェー・バック(M.J.Back)著「UNI
Xオペレーティング・システムの設計」(プレンティス
・ホール(Prentice Hall)、1986
年)361〜367ページを参照されたい。また、遠隔
手順コールについては「ネットワーク・プログラミング
・ガイド」、サン・マイクロシステムズ(Sun Mi
crosystems)、パートNo.800−385
0−10、33〜40ページを参照されたい。
【0030】結果としてのメッセージパターンおよび合
図方法は周知の任意のデータ構造、たとえばテーブルま
たはリスト、に論理的に格納できる。結果としてメッセ
ージパターンおよび合図方法は、主メモリまたは任意の
周辺装置へ物理的に格納できる。結果としてのメッセー
ジパターンおよび合図方法は、迅速にアクセスするため
に主メモリにテーブル22として格納される。
【0031】レジスタリング手段12は、レジスタリン
グプロセス42、52、54の実行中の任意の点で、そ
れらのプロセスによる追加のレジストレーションもサポ
ートする。同様に、レジスタリング手段12は、以前の
任意のレジストレーションの削除をサポートすることも
できる。以前のレジストレーションの削除を求めている
レジストレーション62を受けると、レジストレーショ
ン手段12は、削除要求に含まれているメッセージパタ
ーンまたは合図方法をテーブル22から除去する。任意
のレジストレーションの追加と削除は、各レジストレー
ションのサブセットの追加と削除のためにサポートもで
きる。
【0032】3.レジストレーション 次に、本発明の装置により用いられる種々のレジストレ
ーションを示すブロック図が示されている図2を参照す
る。先に述べたように、レジストレーション62は複数
のメッセージパターン72、74と、合図方法76また
はプログラム形式識別子78とを含むことができる。メ
ッセージパターン72、74は、レジスタリング受け側
プロセスが受けるべきメッセージを装置へ記述するため
に用いられる。メッセージパターン72、74はハンド
ラパターン72とオブザーバパターン74を含む。各メ
ッセージパターン72、74、ハンドラまたはオブザー
バは少なくとも1つのメッセージ属性を有する。省かれ
たメッセージ属性はワイルドカードを暗に示す、すなわ
ち、それらの省かれたメッセージ属性に対する任意の値
をレジスタリング受け側プロセスが受けることができ
る。メッセージパターン72、74と、それらに含まれ
ているメッセージ属性73、75とは任意のシンタック
スで実現できる。用いられるシンタックスは、受け側プ
ロセスにより実行されるプログラムを開発するプログラ
マにとってはなじみのものであって、レジスタリング手
段が分析するためには便利である。メッセージ属性7
3、75については後で詳しく説明する。
【0033】ハンドルメッセージパターン72とオブザ
ーブメッセージパターン74を含んでいるレジストレー
ションの一例が、図2のレジストレーションの第1の例
62に示されている。ハンドルメッセージパターン72
の例は、レジスタリング受け側プロセスがメッセージク
ラス属性「Request」と、およびオブジェクトを
作成する活動を表す、メッセージオペレーション属性
「Create Obj」とを持つメッセージを受ける
ことを装置へ記述する。オブザーブメッセージパターン
74の例が、メッセージクラス属性「Notice」
と、リンクの変更またはノードの変更の事象の発生を表
すメッセージオペレーション属性「LinkChgd,
NOde Chgd」とを持つメッセージをレジスタリ
ング受け側プロセスが受けることを、装置へ記述する複
数のメッセージ属性75を含む。
【0034】先に述べたように、合図方法76は、メッ
セージの可用性についてレジスタリング受け側プロセス
へどのように合図するか、および応答メッセージの可用
性についてレジスタリング送り側プロセスへどのように
合図するかを、本発明の装置へ記述する。合図方法76
については後で合図手段に関連して詳しく説明する。合
図方法76の仕様は任意のシンタックスで実現できる。
用いられるこのシンタックスは、メッセージパターン7
2、74に対して用いられるシンタックスに一致し、ま
たは類似する。
【0035】合図方法を含む例としてのレジストレーシ
ョンが、図2に第2の例のレジストレーション62に示
されている。例としての合図方法76は、システムサー
ビスコールSelect()を用いて検出できるという
事象の通知を、レジスタリングプロセスに合図すべきで
あることを装置へ記述する。
【0036】先に述べたように、プログラミング形式識
別子78は、レジストレーションプロセスにより実行さ
れているプログラムのプログラム形式定義68を装置に
対して識別する。プログラム形式識別子78は、レジス
タリング受け側プロセスがメッセージパターンを装置へ
レジスタするための別のやり方である。プログラム形式
定義68は、プログラムが受けるべきメッセージを装置
へ記述する。プログラム形式識別子78により識別され
たプログラム形式定義68を介して、装置はレジスタリ
ングプロセスのためのメッセージパターンを発生し、レ
ジスタする。プログラム形式識別子の命名規約について
は、プログラム形式定義68に関連して後で詳しく説明
する。レジストレーション62におけるプログラム形式
識別子78の仕様は任意のシンタックスで実現できる。
用いられるシンタックスはメッセージパターン72、7
4のために用いられるシンタックスと、合図方法76の
ために用いられるシンタックとにも一致し、または類似
する。
【0037】プログラム形式識別子を含んでいる例とし
てのレジストレーションが、図2の第3の例のレジスト
レーション62に示されている。例としてのプログラム
形式識別子78が、識別子「starcalc」により
識別されたプログラムをレジスタリングプロセスが実行
していることを、装置へ記述する。
【0038】4.プログラム形式定義 図2をなお参照する。この図には、本発明の装置により
用いられるプログラム形式定義68を示すブロック図も
示されている。レジスタリングプロセスがメッセージパ
ターンをレジスタするための代わりの方法であることに
加えて、プログラム形式定義68は受け側プロセスを選
択するための選択手段によっても用いられる。プログラ
ム形式定義68は、個々のプログラムを受けるべきメッ
セージを装置に対して記述する。各プログラム形式定義
68はプログラム形式識別子88と、1組のプログラム
開始パラメータ89と、少なくとも1つのメッセージシ
グネイチャ82、84とを有する。メッセージシグネイ
チャ82、84はオブザーブシグネイチャ82と、ハン
ドルシグネイチャ84とを有する。各メッセージシグネ
イチャ82、84はメッセージパターン81、83を有
し、希望によってはメッセージ配置属性85、87を有
する。
【0039】先に述べたように、プログラム形式識別子
88はプログラム形式定義68を識別する。起動パラメ
ータセット89が、プログラムを実行するプロセスをど
のようにして起動するかを装置へ記述する。メッセージ
配置属性85、87は、プログラム形式識別子88によ
り識別されたプログラムを実行する実行受け側プロセス
がないとすると、どのような活動を行うかについて装置
に指令する。メッセージ配置属性85、87については
メッセージ属性に関連して後で詳しく説明する。
【0040】プログラム形式識別子88は任意の命名規
約で実現できる。各プログラム形式識別子88はプログ
ラムサプライヤ識別子およびプログラム識別子、たとえ
ばSUN_FileManagerを含む。プログラム
起動パラメータセット89と、メッセージシグネイチャ
82、84と、メッセージパターン81、83と、それ
に含まれているメッセージ配置属性85、87とを任意
のシンタックスで実現できる。用いられるシンタックス
はレジストレーション62に対して用いられるシンタッ
クスに一致するか、類似することが好ましい。
【0041】プログラム形式定義68は、プログラムを
開発するプログラマにより先にファイルに静的に格納さ
れる(図1参照)。プログラム形式定義68は任意の周
知のシステムファイルサービス、たとえばUNIX環境
におけるCreate、Write、を用いて格納でき
る。UNIX環境におけるシステムファイルサービスに
ついての詳細は、前掲バック(M.J.Back)の
「UNIXオペレーティングシステムの設計」91〜1
06ページを参照されたい。プログラム形式定義68は
任意のファイル編成、たとえば順次または指標付き、で
論理的に格納できる。プログラム形式定義68は任意の
周辺装置に物理的に格納できる。プログラム形式定義6
8は、迅速な検索を容易にするために、直接アクセス記
憶装置の指標付きアクセスに格納される。
【0042】典型的な2つのプログラム形式定義68が
図2に示されている。第1の典型的なプログラム形式定
義68が典型的なプログラム形式識別子「Starca
lc」88により識別され、第2の典型的なプログラム
形式定義68は典型的なプログラム形式識別子「SUN
_FileManager」88により識別される。第
1の典型的なプログラム形式定義「Starcale」
68は1組のプログラム起動パラメータ89と2つの典
型的なメッセージシグネイチャ82、84を有する。起
動パラメータセット「/usr/bin/starca
lc」89は、プログラム「Starcalc」を実行
するプロセスをどのようにして起動するかを装置へ記述
する。第1の典型的なメッセージシグネイチャ82はオ
ブザーブメッセージパターン81と、メッセージ配置属
性「queue」85とを有する。第2の典型的なメッ
セージシグネイチャ84はハンドルメッセージパターン
83とメッセージ配置属性「Start」87を有す
る。
【0043】第1の典型的なメッセージシグネイチャ8
2のメッセージパターン81は、メッセージオペレーシ
ョン属性「saved」を有するメッセージを受けるこ
とを装置へ記述する。第1の典型的なメッセージシグネ
イチャ82のメッセージ配置属性「queue」85
は、プログラム形式識別子「Starcalc」88に
より識別されるプログラム「Starcalc」を実行
するオブザーバプロセス54がないとすると、一致メッ
セージが存在する時に、装置は一致するメッセージを待
ち行列に並べ、そのオブザーバプロセスのレジストレー
ションを保留することを装置に記述する。
【0044】第2の典型的なメッセージシグネイチャ8
4は、メッセージオペレーション属性「show ce
ll」と、メッセージオペレーション属性に対するメッ
セージ引数属性「in int row,in int
col,out float cell」とを有する
メッセージを受けることを装置へ記述する。第2の典型
的なメッセージシグネイチャ84のメッセージ配置属性
「Start」87は、プログラム形式識別子「Sta
rcalc」88により識別されるプログラム「Sta
rcalc」を実行するハンドラプロセス52がないと
すると、そのような一致メッセージが存在する時に、装
置がプログラム「Starcalc」を実行するプロセ
スを起動することを装置に記述する。
【0045】5.選択手段 図1を再び参照して、選択手段14は、本発明の装置1
0により受けられるメッセージ64、65を送り側プロ
セス42から受けるための受け側プロセス52、54を
選択するためのものである。選択は、送り側プロセス4
2から受ける各メッセージ64、65に対して、たかだ
か1つのハンドラプロセス52と任意の数のオブザーバ
プロセス54を選択することを含む。ハンドラプロセス
52は、各要求メッセージ64に対してはもちろん、各
告知メッセージ65に対しても選択される。同様に、オ
ブザーバプロセス54は、各告知メッセージ64に対し
てはもちろん、各要求メッセージ64に対しても選択さ
れる。また、実行する受け側プロセスはもちろん実行し
ない受け側プロセス(すなわち、プログラム)も選択さ
れる。
【0046】選択手段14は送り側プロセス42からメ
ッセージ64、65を入力として受けるためのインター
フェイス(図示せず)を有する。各メッセージ64、6
5は少なくとも1つのメッセージ属性を有する。メッセ
ージ属性はメッセージ64、65を記述する。選択手段
14は、メッセージ64、65におけるメッセージ属性
を、レジストレーションテーブル22に格納されている
メッセージパターンに対して一致させることにより、受
け側プロセス52、54を選択するために選択インター
フェイスへ結合される第1の一致手段(図示せず)を更
に有する。
【0047】また、選択手段14は、メッセージ64、
65におけるメッセージ属性を、ファイル24に格納さ
れているプログラム形式定義68に含まれているメッセ
ージシグネイチャ内のメッセージパターンにおけるメッ
セージ属性に対して一致させることにより、受け側プロ
セス52、54を選択するために第1の一致手段へ結合
される第2の一致手段(図示せず)も有する。選択手段
14は、一致メッセージシグネイチャを有するプログラ
ム形式定義68に含まれているプログラム形式識別子
を、レジスタされた受け側プロセス52、54により実
行されているプログラムのプログラム識別子に対して一
致させるために、第2の一致手段へ結合される第3の一
致手段(図示せず)も有する。
【0048】一致レジスタされたメッセージパターンを
有する実行受け側プロセス52、54が選択される。一
致プログラム形式定義68のプログラム形式識別子によ
り識別されるプログラムを実行する実行する実行受け側
プロセス52、54も選択される。また、識別されたプ
ログラムを実行する実行受け側プロセス52、54がな
く、一致メッセージシグネイチャのメッセージ配置属性
が「start」または「queue」であるとする
と、識別される非実行受け側プロセス(すなわち、プロ
グラム)も選択される。
【0049】また、2つ以上のハンドラプロセス52が
メッセージ64、65を取り扱うことができるものとす
ると、選択手段14は、1つのハンドラプロセス52を
選択するために第3の一致手段へ結合される選択手段
(図示せず)を更に有する。この選択手段は、一致メッ
セージ属性の特異性によりハンドラプロセス52に段階
をつけ、最高の段階を持つハンドラプロセス52を選択
する。段階づけが拘束されたとすると、選択手段はハン
ドラプロセス52の1つを随意に選択する。たとえば、
メッセージ属性「Operation=Create
Obj,File=Project」を有するメッセー
ジ64、65に対して、一致が一層特定のものである、
ハンドルメッセージパターン「Operation=C
reatObj,File=Project」を有する
ハンドラプロセス52がより高い段階をつけられ、した
がって、ハンドルメッセージパターン「Operati
on=Creat Obj」を持つ別のハンドラプロセ
ス52にわたって選択される。
【0050】また、選択手段14は、選択された非実行
受け側プロセス(すなわち、プログラム)をスタートさ
せるために選択手段へ結合されるスタート手段を更に有
する。選択された非実行受け側プロセスは、メッセージ
配置属性「Start」を有する一致メッセージシグネ
イチャを持つプログラム形式定義68のプログラム形式
識別子により識別される。
【0051】メッセージ64、65は、任意のシステム
メッセージ送りサービスを用いて選択手段14へ供給で
きる。ネットワーク内の種々のコンピュータで実行する
プロセスの間の透明なプロセス間メッセージ送りをサポ
ートし、レジスタリング手段12に対して用いられるの
と同じシステムメッセージ送りサービスが用いられるこ
とが好ましい。
【0052】6.メッセージ属性 次に、メッセージを記述するために本発明の装置により
用いられる典型的なメッセージ属性のブロック図が示さ
れている図3を参照する。各メッセージ64、65は少
なくとも1つのメッセージ属性100〜130を有す
る。メッセージ属性100〜130はメッセージ識別子
100と、複数のメッセージ属性102〜130とを有
する。メッセージ属性100〜130はメッセージクラ
ス属性102と、メッセージ状態属性104と、メッセ
ージオペレーション属性106と、メッセージ引数属性
108とを有することが好ましい。また、メッセージ属
性110〜130はメッセージ送り側識別子110と、
メッセージ送り側プログラム形式識別子112と、メッ
セージハンドラ識別子114と、メッセージハンドラプ
ログラム形式識別子116と、メッセージ配置属性11
8と、メッセージ障害理由属性120とを有する。
【0053】メッセージ識別子100はメッセージ6
4、65を一意に識別する。独特なメッセージ識別子1
00は種々のやり方で構成できる。独特のメッセージ識
別子100は送り側コンピュータ識別子と、送り側プロ
セス識別子と、メッセージカウンタたとえばSexta
nt.712.0001のような送り側プロセス特有メ
ッセージ識別子とを有することが好ましい。
【0054】メッセージクラス属性102はメッセージ
64、65のメッセージクラスを記述する。メッセージ
クラスは要求メッセージのクラスと告知メッセージのク
ラスを有することが好ましい。要求クラスを有するメッ
セージは、ハンドラプロセスが要求している送り側プロ
セスに対して作用することを求める、送り側プロセスか
らのメッセージである。要求メッセージは、ハンドラプ
ロセスが見出されないとすると、ハンドラプロセスか
ら、または装置からの応答を伴う。告知クラスを有する
メッセージは、ある事象が起きたことを報知する、送り
側プロセスからのメッセージである。告知メッセージは
ハンドラプロセスまたは装置からの応答を伴わない。告
知メッセージは、ハンドラプロセスが見出されなけれ
ば、送り側プロセスへメッセージを戻すことを伴わな
い。要求メッセージおよび告知メッセージの経路指定お
よびディスポジションについては後で詳しく説明する。
【0055】メッセージ状態属性104はメッセージ6
4、65の状態を記述する。メッセージ状態104は
「作成した」の状態、「送られた」の状態、「取り扱わ
れた」の状態、「待機させられた」の状態、「スタート
させられた」の状態、「障害を起こされた」の状態を有
する。「作成された」の状態は、メッセージ64、65
が送り側プロセスから入力として選択手段により受けら
れたことを示す。「送られた」の状態は、メッセージ6
4、65が選択された受け側プロセスへ送られたことを
示す。「取り扱われた」の状態は、要求メッセージ6
4、65がハンドラプロセスにより取り扱われたことを
示す。「待機させられた」の状態は、メッセージ64、
65が待機させられて、選択された受け側プロセスのス
タートを保留していることを示す。「スタートさせられ
た」の状態は、選択された受け側プロセスがスタートさ
せられて、選択されたプログラムを実行し、メッセージ
64、65を受けることを示す。「障害を起こされた」
の状態は、要求されたオペレーションに障害が起きたこ
と、および取り扱われていない送り側メッセージへ要求
メッセージが戻されている(応答として)ことを示す。
【0056】メッセージオペレーション属性106はメ
ッセージ64、65に関連するオペレーションを記述す
る。メッセージオペレーション106は、要求メッセー
ジにより要求された活動と、告知メッセージにより報知
される出現とを示す。要求された活動は、たとえば、要
求するプロセスに対するオブジェクトの作成、または要
求するプロセスに対するオブジェクトの保管を含む。報
知される発生は、たとえば、「変更されたリンク」、
「変更されたノード」、「作成されたオブジェクト」、
「保管されたオブジェクト」を含む。メッセージ引数属
性108はメッセージオペレーションに関連する引数を
記述する。メッセージ引数は、たとえば、オブジェクト
の作成に使用するパラメータ、またはオブジェクトの保
管に使用するパラメータを含む。
【0057】送り側プロセス識別子110とハンドラプ
ロセス識別子114は、送り側プロセスとハンドラプロ
セスを一意に識別する。送り側プロセス識別子110と
ハンドラプロセス識別子114は各種のやり方で構成で
きる。識別子110、114はホストコンピュータ名と
プロセス識別子、たとえばStrawdog.1332
を含むことが好ましい。先に述べたように、送り側プロ
セスプログラム型識別子112とハンドラプロセスプロ
グラム型識別子116は、送り側プロセスとハンドラプ
ロセスにより実行されるプログラムのプログラム型を識
別する。識別子112、116は各種のやり方で構成す
ることもできる。プログラム型識別子112、116は
プログラムサプライヤ識別子およびプログラム名、たと
えばSUN_FileManagerを含む。
【0058】メッセージディスポジション属性118
は、メッセージ64、65(すなわち、一致させられた
メッセージシグネイチャ)を受けるプログラムを、レジ
スタされている非実行プロセスが実行する場合に、メッ
セージ64、65のディスポジションを記述する。メッ
セージポジション118は「待機させられた」のディス
ポジションと、「スタートさせられた」のディスポジシ
ョンと、ディスポジションが指定されなければ「放棄」
のデフォールトされたディスポジションとを含む。ディ
スポジション「待機させられた」は、メッセージ64、
65を待機させて、一致プログラム型定義により識別さ
れるプログラムを実行する受け側プロセスのスタートを
保留する。ディスポジション「スタート」は、受け側プ
ロセスをスタートさせて、一致するプログラム型定義に
より識別されるプログラムを実行することを装置へ記述
する。デフォールトされたディスポジション「放棄」
は、メッセージを放棄すべきことを装置へ記述する。
【0059】7.待機手段 図1を再び参照して、待機手段16は、選択された受け
側プロセス52、54のメッセージ64、65のコピー
を待機させるためのものである。選択手段14へ結合さ
れている待機手段16は、実行する選択された受け側プ
ロセス52、54が後で検索するために、それらのプロ
セスでのメッセージ64、65のコピーを待機させる。
待機手段16は、メッセージディスポジション属性が
「待ち行列」であるならば、非実行選択された受け側プ
ロセス(すなわち、プログラム)でのメッセージ64、
65のコピーを待機させることも行う。
【0060】メッセージ64、65のコピーは任意のデ
ータ構造において論理的に待機させ、任意の周辺装置に
物理的に格納できる。待ち行列26は、リストとして編
成されているプロセスをプロセスごとに実行するための
送られていない複数のメッセージ待ち行列と、リストと
して編成されている非実行プロセスをプロセスごとに実
行するための送られていない複数のメッセージ行列とを
含む。また、実行プロセスのための待ち行列26は迅速
に検索するためにメモリに物理的に記憶され、非実行プ
ロセスのための待ち行列26は直接アクセス記憶装置に
物理的に記憶される。
【0061】8.合図手段 なお、図1を参照して、合図手段20は、メッセージ6
4、65の可用性について、選択された受け側プロセス
52、54へ合図するためのものである。合図手段20
は、受け側プロセス52、54が選択されて、メッセー
ジ64、65のコピーが待機させられた時に、実行受け
側プロセス52、54に合図する。合図手段20は、一
致プログラム型を有する保留中の受け側プロセス52、
54がそれのプログラム型識別子をレジスタする時に、
保留中の受け側プロセスを、典型的には受け側プロセス
52、54の初期化時に、装置へ合図する。装置10に
よりスタートさせられる受け側プロセス52、54は合
図する必要がないことがわかるであろう。スタート受け
側プロセス52、54はスタートプロセスの一部として
「合図させられる」。
【0062】レジスタリング手段12へ結合されている
合図手段20と、待機手段16とはレジストレーション
テーブル22に格納されているレジスタされた合図方法
を探索し、それに従って受け側プロセス52、54に合
図する。先に述べたように、合図方法は、システム事象
検出サービスによりサポートされる周知の事象延期技術
のいずれかとすることができる。ネットワーク内の種々
のコンピュータの事象検出をサポートするシステム事象
検出サービスが用いられることが好ましく、たとえば、
遠隔手順コールで実現されるUNIX環境において、デ
ータの存在をSelect()system call
でポーリングする。UNIX環境におけるSelect
()system callについての詳細について
は、前掲書「UNIXオペレーティングシステムの設
計」342および388ページを参照されたい。
【0063】信号を受けると、合図された受け側プロセ
ス52、54は、本発明の装置10からのメッセージ6
4、65の待機させられたコピーの選択の実行中の後の
任意の時点で、それらのコピーを検索できる。
【0064】9.送り手段 なお、図1を参照して、送り手段21は、待機させられ
ているメッセージ64、65の待機状態を解除し、メッ
セージ64、65を選択された受け側プロセス52、5
4へ送るためのものである。送り手段21は、受け側プ
ロセス52、54が待機させられているメッセージ6
4、65を受ける用意ができていることを示す確認応答
を、受け側プロセス52、54から受けるためのインタ
ーフェイス(図示せず)を有する。確認応答を受ける
と、送り手段21は待機させられているメッセージ6
4、65を受け、それらのメッセージ64、65を確認
応答する受け側プロセス52、54へ送る。
【0065】任意のシステムメッセージ送りサービスを
用いて確認応答を送り手段21へ供給できる。同様に、
メッセージ64、65の待機させられているコピーを、
任意のシステムメッセージ送りサービスを用いて送るこ
とができる。ネットワーク内の種々のコンピュータで実
行するプロセスの間の透過プロセス間メッセージ送りを
サポートし、レジスタリング手段12と選択手段14の
ために用いられるのと同じシステムメッセージ送りサー
ビスが用いられる。
【0066】10.応 答 なお、図1を参照して、本発明のプロセス間メッセージ
スイッチング装置10は、応答メッセージ67を要求メ
ッセージ64へ供給するための特定のサポートも行う。
要求の結果で要求メッセージ64を更新することにより
応答メッセージ67は発生される。告知メッセージ65
に対しては応答メッセージ67は発生されない。装置1
0は待ち合わせ手段16と追加の更新手段において追加
の特定のサポートを行う。レジスタリング手段12と、
選択手段14と、合図手段20と、送り手段21も応答
メッセージ67をサポートするためにも用いられるが、
それらの手段においては追加のサポートは求められな
い。別々のレジスタリング手段12と、選択手段14
と、待ち合わせ手段16と、合図手段20と、送り手段
21とを使用できることがわかるであろう。
【0067】上記諸機能に加えて、送り側プロセス42
をレジスタリングするためにレジスタリング手段12も
用いられる。送り側プロセスのレジストレーションは送
り側プロセス42のために少なくとも1つの合図方法を
レジスタリングすることを含む。同様に、応答メッセー
ジ67の可用性についてレジスタリング送り側プロセス
42へどのようにして合図するかを合図方法は装置10
へ記述する。レジストレーションは、レジスタリング受
け側プロセス52、54に対して先に述べたように、同
じ手段を用いて同様に行われる。
【0068】要求の結果で要求メッセージ64を更新す
ることにより、応答メッセージ67を発生するために更
新手段18が用いられる。選択手段14へ結合されてい
る更新手段18は、ハンドラプロセスが選択手段14に
より見出されない時に、要求メッセージのメッセージ状
態属性を「障害を起こした」へ更新する。
【0069】上記諸機能に加えて、選択される受け側プ
ロセス52、54のない告知メッセージ65を捨てるた
め、および選択されるハンドラプロセス52のある要求
メッセージ64の追加のコピーを待機させるためにも、
待ち合わせ手段16は用いられる。待ち合わせ手段16
は、選択されたハンドラプロセスでの要求メッセージ6
4のコピーを、少なくとも1つの結果保留メッセージ待
ち行列に並べる。また、応答保留要求メッセージ64
を、周知の任意のデータ構造で論理的に待ち行列にし、
任意の周辺装置に物理的に格納できる。結果保留待ち行
列はプロセスをベースとしてリストとしても編成される
ことも好ましい。また、結果保留待ち行列は迅速アクセ
スのためにメモリに記憶もされる。
【0070】更に、更新手段18はハンドラプロセス5
2からの結果を入力として受けるためのインターフェイ
ス(図示せず)も含む。各結果は結果保留要求メッセー
ジにおけるメッセージ属性に対する更新を含む。結果6
6を受けると、更新手段18は、結果保留待ち行列から
の結果保留要求メッセージを待ち行列から解放し、結果
保留要求メッセージ中のメッセージ状態属性を、結果6
6に従って、「Handled」または「Faile
d」へ更新する。更新手段18は、結果保留要求メッセ
ージ中の他のメッセージ属性、たとえばメッセージ障害
理由属性、を受けた結果66に従って更新もする。
【0071】結果66は任意のシステムメッセージ送り
サービスを用いて更新手段18へ供給できる。他の手段
12、14、21のために用いられる、ネットワーク内
の種々のコンピュータで実行するプロセスの間の透過プ
ロセス間メッセージをサポートする、同じシステムメッ
セージ送りサービスが用いられる。
【0072】同様に、応答メッセージ67を受けるため
に任意の数のオブザーバプロセス54を選択するために
も選択手段14は用いられる。実行オブザーバプロセス
はもちろん非実行オブザーバプロセスが選択される。更
新手段18へ結合されている選択手段14は送り側プロ
セス42からの応答メッセージ67を、メッセージ6
4、65を受けるインターフェイスと同じインターフェ
イスを介して受ける。実行オブザーバプロセスと非実行
オブザーバプロセスを選択するために選択手段14はそ
れの一致手段を、上記と同様のやり方で用いる。
【0073】同様に、合図手段20は、元の送り側プロ
セス42と、選択された実行オブザーバプロセス54
へ、応答メッセージ67の可用性についての合図も行
う。合図手段20は、元の送り側プロセス42と選択さ
れた実行および非実行オブザーバプロセス54に、上記
と同じやり方で合図する。
【0074】また、信号を受けると、送り側プロセス4
2とオブザーバプロセス54の選択を行っている間の任
意の後の時点に、合図された送り側プロセス42とオブ
ザーバプロセス54は、本発明の装置10から応答メッ
セージ67の待機させられているコピーを検索できる。
送り手段21は、応答メッセージ67の待ち行列解消お
よび送りを行うためにも用いられる。応答メッセージ6
7の待機させられているコピーは先に述べたのと同じや
り方で検索できる。
【0075】プロセス間メッセージのスイッチングを行
う本発明の装置10は応答メッセージ67に対してとく
にサポートするが、そのサポートは、好適ではあるが、
選択的なものであることがわかるであろう。とくに、選
択されたハンドラプロセス52からの応答メッセージ6
7を、関与するプロセス42、52、54に戻り通信と
いう負担をかけることにより、実行できる。送り側プロ
セス42はそれ自身を適切なメッセージ属性を有する
「オブザーバプロセス」としてレジスタでき、ハンドラ
プロセス52は、ハンドラプロセス52が「送り側プロ
セス」であるかのように、対応するメッセージ属性を有
する新しい「告知メッセージ」として応答メッセージ6
7を「発生できる」。メッセージ属性を一致させること
により、装置10は元の送り側プロセス42を「選択」
でき、かつ「応答メッセージ」の可用性について元の送
り側プロセス42に合図できる。
【0076】11.要求および告知経路指定 次に、要求メッセージの経路指定とディスポジションを
要約するブロック図が示されている図4を参照する。要
求メッセージ64−1、64−2と、応答メッセージ6
7−1、67−2は、図1の要求メッセージ64と、応
答メッセージ67とにそれぞれ関連する。同様に、ハン
ドラプロセス52−1、52−2と、オブザーバプロセ
ス54−1、54−2は、図1のハンドラプロセッサ5
2と、オブザーバプロセス54とにそれぞれ関連する。
【0077】最初に、メッセージ状態属性「作成され
た」を有する要求メッセージ64−1が、前記したよう
に、本発明のプロセス間メッセージスイッチング装置1
0へ入力として送られる。メッセージ状態属性が「送ら
れた」へ変えられた要求メッセージ64−2のコピー
が、選択された全てのレジスタされたオブザーバプロセ
ス54−1へ最終的に送られる。しかし、メッセージ状
態属性が「送られた」へ変えられた要求メッセージ64
−2のただ1つのコピーが、最高の段階を有する1つの
選択およびレジスタされたハンドラプロセス52−1へ
最終的に送られる。より低い段階の他のハンドラプロセ
ス52−2へは要求メッセージ64−2のコピーは送ら
れない。
【0078】レジスタされたハンドラプロセスが選択さ
れないとすると、装置10は要求メッセージのメッセー
ジ状態属性を「障害を起こした」へ更新し、応答メッセ
ージ67−1を発生する。その応答メッセージ67−1
は元のレジスタされた送り側プロセス42へ最終的に戻
される。
【0079】要求メッセージが取り扱われた後で、結果
66がハンドラプロセス52−1から装置10へ入力と
して送られる。装置10は、要求メッセージのメッセー
ジ状態属性を、受けた結果に従って、「取り扱われた」
から「障害を起こした」へ更新し、応答メッセージ67
−2を発生する。応答メッセージ67−2のコピーは全
ての選択およびレジスタされたオブザーバプロセス54
−2と、元のレジスタされた送り側プロセス42へ最終
的に送られる。
【0080】図5は経路指定を要約するブロック図を示
す。この図には告知メッセージのディスポジションが示
されている。図4と同様に、告知メッセージ65−1、
65−2、65−3と、ハンドラプロセス52−1、5
2−2は、図1の告知メッセージ65と、ハンドラプロ
セス52にそれぞれ関連する。
【0081】最初は、要求メッセージと同様に、メッセ
ージ状態属性が「作成された」である告知メッセージ6
5−1が、先に述べたように、本発明のプロセス間メッ
セージスイッチング装置10へ送られる。同様に、メッ
セージ状態属性が「送られた」へ変更された告知メッセ
ージ65−2のコピーが、全ての選択およびレジスタさ
れたオブザーバプロセス54−1へ最終的に送られる。
同様に、メッセージ状態属性が「送られた」へ変えられ
た告知メッセージ65−2のただ1つのコピーも、1つ
の選択およびレジスタされたハンドラプロセス52−1
へ最終的に送られる。告知メッセージ65−2のコピー
はより下位の段階の他のハンドラプロセス52−2へは
送られない。
【0082】要求メッセージとは異なり、ハンドラプロ
セス52−1,52−2も、オブザーバプロセス54も
選択されないとすると、告知メッセージ65−3は捨て
られる。また、要求メッセージとは異なり、告知メッセ
ージ65−2を取り扱った後では、選択されたハンドラ
プロセス52−1は告知メッセージに対する応答を生じ
ない。
【0083】12.オペレーティング状態 次に、本発明のプロセス間メッセージスイッチング装置
の動作に対する1つのアプローチの可能なオペレーショ
ンを示す状態の例が示されている図6を参照する。装置
は入力を受けるまでは待機状態140にある。5種類の
ループ150、160、170、180、190により
表されている5つの基本的な種類の入力および関連する
処理がある。入力はメッセージパターン152のレジス
トレーション、合図方法162のレジストレーション、
プログラム型172のレジストレーション、送り側プロ
セス182からのメッセージ、またはハンドラプロセス
192からの応答である。
【0084】メッセージパターン152のレジストレー
ションが受けられたとすると、そのレジストレーション
は処理され、それに含まれているメッセージパタンがレ
ジストレーションテーブル156に格納される。メッセ
ージパターンが格納された後で、装置は入力を待つ状態
140へ戻る。
【0085】同様に、合図方法162のレジストレーシ
ョンが受けられたとすると、そのレジストレーションは
処理され、それに含まれている合図方法164が取り出
され、取り出された合図方法はレジストレーションテー
ブル166に格納される。その後で、装置は入力を待つ
状態140へ戻る。
【0086】同様に、プログラム型識別子172のレジ
ストレーションが受けられると、そのレジストレーショ
ンは処理され、それに含まれているプログラム型識別子
が取り出され、プログラム型識別子174により識別さ
れたプログラム型定義を用いてメッセージパターンが発
生され、発生されたメッセージパターンはレジストレー
ションテーブル176に格納され、プログラム保留待ち
行列が利用可能なメッセージ178に対して検査され、
そのメッセージが利用可能179であればレジスタリン
グプロセスが合図される。プログラム保留待ち行列が検
査され、レジスタリングプロセスが合図された後で、応
用可能であるならば、装置は入力を待つ状態140へ戻
る。
【0087】メッセージ182が受けられたとすると、
1つのハンドラプロセスと任意の数のオブザーバプロセ
スが選択される184。プロセスが選択されるとする
と、選択されたプロセス186により後で検索するため
に、メッセージのコピーが待機させられる。メッセージ
が要求メッセージであれば、応答保留メッセージ待ち行
列186において追加のコピーは待機させられる。プロ
セスが選択されないとすると、メッセージが要求メッセ
ージか、告知メッセージ186であるかに応じて、メッ
セージは、元の送り側へ戻すために待機させられるか、
捨てられる。メッセージのコピーが待機させられた後
は、応用可能であれば元の送り側プロセスを含んでいる
選択されたプロセスが、待機させられているメッセージ
188の可用性について合図させられる。プロセスが合
図された後で、装置は入力を待つ状態140へ戻る。
【0088】要求メッセージに対する結果が受けられた
とすると、要求メッセージは応答保留メッセージ待ち行
列から解放され、応答194で更新されて、応答メッセ
ージを作成する。それから任意の数のオブザーバプロセ
ス196が選択される。応答メッセージのコピーが、元
の送り側プロセスおよび選択されたオブザーバプロセス
197による以後の検査のために、待機させられる。応
答メッセージのコピーが待機させられた後で、元の送り
側プロセスと選択されたオブザーバプロセスが、応答メ
ッセージ198の可用性について合図させられる。プロ
セスが合図された後で、装置は入力を待つ状態140へ
戻る。
【0089】13.変 更 以上、本発明のプロセス間メッセージスイッチング装置
を好適な実施例について説明したが、本発明は要求メッ
セージ、告知メッセージ、ハンドラプロセス、オブザー
バプロセスに限定されるものではないことがわかるであ
ろう。本発明はネットワークを介して通信する種々のコ
ンピュータで実行するプロセスに限定されるものでもな
い。本発明は特許請求の範囲および要旨内で種々変更で
き、同じコンピュータにより実行されるプロセスに対す
る広範囲なプロセス間通信状況、およびネットワーク内
の種々のコンピュータで実行されるプロセスに対する広
範囲のプロセス間通信状況に対して機能することを当業
者はわかるであろう。
【図面の簡単な説明】
【図1】送り側プロセスと複数の受け側プロセスの間で
プロセス間メッセージスイッチングを行う本発明の装置
を示すブロック図である。
【図2】いずれも本発明で使用される、典型的なメッセ
ージパターン、合図方法およびプログラム型識別子を含
む典型的なレジストレーションと、典型的なプログラム
型識別子、プログラム起動パラメータ、およびメッセー
ジシグネイチャを含む典型的なプログラム型定義とを示
すブロック図である。
【図3】メッセージを記述するために本発明の装置で用
いられる典型的なメッセージ属性を示す。
【図4】本発明の好適な実施例における要求メッセージ
の経路指定を示す。
【図5】本発明の好適な実施例における告知メッセージ
の経路指定を示す。
【図6】本発明のプロセス間メッセージスイッチング装
置の動作中の典型的な状態を示す状態図である。
【符号の説明】
1 コンピュータ 10 プロセス間メッセージスイッチング装置 12 レジストレーション手段 14 選択手段 16 待ち合わせ手段 18 更新手段 20 合図手段 21 経路指定手段
フロントページの続き (72)発明者 ドワイト・エフ・ヘア アメリカ合衆国 94025 カリフォルニア 州・メンロ パーク・レキシントン ドラ イブ・312 (72)発明者 リチャード・エフ・マクアリスター アメリカ合衆国 94301 カリフォルニア 州・パロ アルト・ウェブスター ストリ ート・149 (72)発明者 ティン・アン・ニューエン アメリカ合衆国 94506 カリフォルニア 州・ダンヴィル・ウィンドチャイム ドラ イブ・304 (72)発明者 エイミー・パール アメリカ合衆国 94040 カリフォルニア 州・マウンテン ビュー・ニルダ アヴェ ニュ・1179 (72)発明者 サミ・シャイオ アメリカ合衆国 94301 カリフォルニア 州・パロ アルト・ホーマー アヴェニ ュ・630・アパートメント ディ

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 プロセス間メッセージスイッチング装置
    で受け側プロセスをレジスタリングする過程と、 前記レジスタされた受け側プロセスを選択して、前記送
    り側からの前記装置により受けられたメッセージを受け
    る過程と、 前記選択された受け側プロセスにより前記受けられたメ
    ッセージのコピーを待機させる過程と、 前記待機させられたメッセージの可用性について前記選
    択された受け側プロセスに合図する過程と、 前記合図された受け側プロセスの要求があった時に、前
    記待機させられているメッセージを前記要求受け側プロ
    セスへ送る過程と、を備えることを特徴とする送り側プ
    ロセスと複数の受け側プロセスの間でプロセス間メッセ
    ージのスイッチングを行う方法。
  2. 【請求項2】 送り側プロセスと複数の受け側プロセス
    の間でメッセージのスイッチングを行う装置において、 レジストレーションを受けるための第1のインターフェ
    イスを有し、前記装置で前記受け側プロセスをレジスタ
    リングする第1のレジスタリング手段と、 前記送り側プロセスから前記メッセージを受けるための
    第2のインターフェイスを有し、前記送り側プロセスか
    ら受けるメッセージを受けるために、前記レジスタされ
    た受け側プロセスを選択する第1の選択手段と、 この第1の選択手段へ結合され、選択された受け側プロ
    セスで前記受けたメッセージを待機させる第1の待ち合
    わせ手段と、 この第1の待ち合わせ手段と前記第1のレジスタリング
    手段へ結合され、前記待機させられているメッセージの
    可用性について、前記選択された受け側プロセスへ合図
    する第1の合図手段と、 送り要求を受けるための第3のインターフェイスを有
    し、前記合図された受け側プロセスの前記送り要求があ
    った時に、前記待機をさせられているメッセージを要求
    している受け側プロセスへ送る第1の送り手段と、を備
    えることを特徴とする送り側プロセスと複数の受け側プ
    ロセスの間でメッセージをスイッチングする装置。
JP3351788A 1990-12-14 1991-12-16 送信側プロセスと複数の受信側プロセスの間でプロセス間メッセージのスイッチングを行う方法および装置 Pending JPH06180654A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US62773590A 1990-12-14 1990-12-14
US627735 1990-12-14

Publications (1)

Publication Number Publication Date
JPH06180654A true JPH06180654A (ja) 1994-06-28

Family

ID=24515913

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3351788A Pending JPH06180654A (ja) 1990-12-14 1991-12-16 送信側プロセスと複数の受信側プロセスの間でプロセス間メッセージのスイッチングを行う方法および装置

Country Status (6)

Country Link
US (1) US5367681A (ja)
EP (1) EP0490636B1 (ja)
JP (1) JPH06180654A (ja)
KR (1) KR970004091B1 (ja)
CA (1) CA2058048A1 (ja)
DE (1) DE69130154T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6477585B1 (en) 1995-08-18 2002-11-05 International Business Machines Corporation Filter mechanism for an event management service

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2679350B1 (fr) * 1991-07-16 1995-06-23 Cit Alcatel Structure de logiciel pour systeme de traitement de donnees, notamment pour systeme de telecommunications.
JP3490473B2 (ja) * 1993-02-17 2004-01-26 松下電器産業株式会社 プロセッサ間通信システム
US5734905A (en) * 1993-05-06 1998-03-31 Board Of Trustees Of The Leland Stanford Junior University User interface in object oriented computer system for performing intuitive object transformations
US5862377A (en) * 1994-05-26 1999-01-19 Bay Networks Groups, Inc. Technique for sharing information between applications
EP0689139A3 (en) * 1994-06-22 1997-09-10 Ibm Anonymous response port method and apparatus for microkernel data processing system
EP0689137A3 (en) * 1994-06-22 1998-01-07 International Business Machines Corporation Message control structure registration method and apparatus for a microkernel data processing system
US5724503A (en) * 1995-03-31 1998-03-03 Sun Microsystems, Inc. Method and apparatus for interpreting exceptions in a distributed object system
US5812799A (en) * 1995-06-07 1998-09-22 Microunity Systems Engineering, Inc. Non-blocking load buffer and a multiple-priority memory system for real-time multiprocessing
GB2304944A (en) * 1995-09-12 1997-03-26 Ibm Support for application programs in a distributed environment
JPH0991358A (ja) * 1995-09-28 1997-04-04 Fujitsu Ltd 情報提供装置および方法
US5699522A (en) * 1996-02-23 1997-12-16 Unisys Corporation Data processing system with fast message processing for upgraded input/output stations
US5893911A (en) * 1996-04-17 1999-04-13 Neon Software, Inc. Method for defining and applying rules for message distribution for transaction processing in a distributed application
US5916307A (en) * 1996-06-05 1999-06-29 New Era Of Networks, Inc. Method and structure for balanced queue communication between nodes in a distributed computing application
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
US6233622B1 (en) * 1996-11-12 2001-05-15 International Business Machines Corporation Adapter and handler framework for web server extensions
EP0913775A1 (en) * 1997-10-03 1999-05-06 CANAL+ Société Anonyme Modem control
US6324587B1 (en) * 1997-12-23 2001-11-27 Microsoft Corporation Method, computer program product, and data structure for publishing a data object over a store and forward transport
US6563836B1 (en) * 1998-03-19 2003-05-13 International Business Machines Corporation Algorithm for dynamic prioritization in a queuing environment
US6510429B1 (en) * 1998-04-29 2003-01-21 International Business Machines Corporation Message broker apparatus, method and computer program product
US6668284B1 (en) 1998-11-04 2003-12-23 Beckman Coulter, Inc. Software messaging system
WO2000062158A2 (en) * 1999-04-14 2000-10-19 Tyco Submarine Systems, Ltd. Method and apparatus for managing communications between multiple processes
US6279046B1 (en) * 1999-05-19 2001-08-21 International Business Machines Corporation Event-driven communications interface for logically-partitioned computer
GB0023169D0 (en) * 2000-09-20 2000-11-01 Ibm Message parsing in message processing systems
US6971001B1 (en) * 2001-05-17 2005-11-29 Accenture Global Services Gmbh General and reusable components for defining net-centric application program architectures
US7114158B1 (en) * 2001-10-01 2006-09-26 Microsoft Corporation Programming framework including queueing network
US7228550B1 (en) 2002-01-07 2007-06-05 Slt Logic, Llc System and method for making communication streams available to processes executing under control of an operating system but without the intervention of the operating system
US7386619B1 (en) * 2003-01-06 2008-06-10 Slt Logic, Llc System and method for allocating communications to processors in a multiprocessor system
US8020141B2 (en) * 2004-12-06 2011-09-13 Microsoft Corporation Operating-system process construction
US7882317B2 (en) * 2004-12-06 2011-02-01 Microsoft Corporation Process isolation using protection domains
CN101160563A (zh) * 2005-04-18 2008-04-09 捷讯研究有限公司 用于托管并执行组件应用程序的方法和系统
US8849968B2 (en) 2005-06-20 2014-09-30 Microsoft Corporation Secure and stable hosting of third-party extensions to web services
US8074231B2 (en) * 2005-10-26 2011-12-06 Microsoft Corporation Configuration of isolated extensions and device drivers
US20070094495A1 (en) * 2005-10-26 2007-04-26 Microsoft Corporation Statically Verifiable Inter-Process-Communicative Isolated Processes
US8032898B2 (en) * 2006-06-30 2011-10-04 Microsoft Corporation Kernel interface with categorized kernel objects
CA2667159C (en) 2006-10-27 2015-05-05 Fujitsu Limited Transmission controlling method, sender apparatus and receiver apparatus for wireless communication system
US20080244507A1 (en) * 2007-03-30 2008-10-02 Microsoft Corporation Homogeneous Programming For Heterogeneous Multiprocessor Systems
US8789063B2 (en) * 2007-03-30 2014-07-22 Microsoft Corporation Master and subordinate operating system kernels for heterogeneous multiprocessor systems
US20090287781A1 (en) * 2008-05-19 2009-11-19 International Business Machines Corporation Grouping messages using patterns in a messaging system
US8788601B2 (en) * 2011-05-26 2014-07-22 Stratify, Inc. Rapid notification system
KR101920239B1 (ko) * 2012-03-06 2018-11-20 삼성전자주식회사 파일 시스템 기능을 제공하는 단말기의 장치 및 방법
CN116244099B (zh) * 2023-05-11 2023-09-08 深圳比特微电子科技有限公司 嵌入式系统内进程通讯方法、装置、电子设备和存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2253421A5 (ja) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
FR2253418A5 (ja) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
US4412285A (en) * 1981-04-01 1983-10-25 Teradata Corporation Multiprocessor intercommunication system and method
US4466060A (en) * 1982-02-11 1984-08-14 At&T Bell Telephone Laboratories, Incorporated Message routing in a computer network
US4630196A (en) * 1983-04-13 1986-12-16 At&T Information Systems, Inc. Store and forward facility for use in multiprocessing environment
US4818984A (en) * 1986-11-26 1989-04-04 American Telephone And Telegraph Company, At&T Bell Laboratories Broadcasting messages in a distributed processing system
CA1292078C (en) * 1987-01-05 1991-11-12 Gabor Simor Process traps in a distributed message-based operating system
US5124909A (en) * 1988-10-31 1992-06-23 Hewlett-Packard Company Software program for providing cooperative processing between personal computers and a host computer
US5036459A (en) * 1989-03-09 1991-07-30 U.S. Philips Corporation Multi-processor computer system with distributed memory and an interprocessor communication mechanism, and method for operating such mechanism
US5212792A (en) * 1989-06-01 1993-05-18 Hewlett-Packard Company Method and apparatus for controlling execution of tools in a computer-aided software engineering system
JP3089359B2 (ja) * 1991-01-23 2000-09-18 サン・マイクロシステムズ・インコーポレーテッド 有効範囲を定められたプロセス間メッセージ交換のための方法および装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6477585B1 (en) 1995-08-18 2002-11-05 International Business Machines Corporation Filter mechanism for an event management service

Also Published As

Publication number Publication date
EP0490636B1 (en) 1998-09-09
KR970004091B1 (ko) 1997-03-25
DE69130154T2 (de) 1999-05-20
KR920013166A (ko) 1992-07-28
US5367681A (en) 1994-11-22
EP0490636A2 (en) 1992-06-17
DE69130154D1 (de) 1998-10-15
EP0490636A3 (en) 1993-07-14
CA2058048A1 (en) 1992-06-15

Similar Documents

Publication Publication Date Title
JPH06180654A (ja) 送信側プロセスと複数の受信側プロセスの間でプロセス間メッセージのスイッチングを行う方法および装置
EP0760131B1 (en) Method and apparatus for distributing events in an operating system
JP3782477B2 (ja) オペレーティングシステムのシステム管理のためのイベントアーキテクチャ
US7721286B2 (en) Preemptive multi-tasking with cooperative groups of tasks
US6401138B1 (en) Interface for patient context sharing and application switching
US6658490B1 (en) Method and system for multi-threaded processing
US6138168A (en) Support for application programs in a distributed environment
EP0912014B1 (en) A method, apparatus and program product for accessing a management information service provided by a server
JP3746798B2 (ja) 協調型のタスク・グループを有する横取り型のマルチ・タスキング方法およびデータ処理システム
US5060150A (en) Process creation and termination monitors for use in a distributed message-based operating system
US5621892A (en) Method and apparatus for managing alerts and events in a networked computer system
US5379426A (en) Method and apparatus for object oriented interprocess message switching
JPH11242605A (ja) マルチスレッドのクライアント・ベースapiをシングルスレッドのサーバ・ベースapiにインタフェースさせる方法、装置、およびプログラム製品
EP0953906A2 (en) Method and apparatus for detecting input directed to a thread in a multi-threaded process
WO1995002217B1 (en) Agent-based multithreading application programming interface
WO1996000939A2 (en) Method for enforcing a hierarchical invocation structure in real time asynchronous software applications
WO1999030456A2 (en) A method and apparatus relating to messaging in a distributed communication system
US20040064530A1 (en) Accessibility system events mechanism and method
KR20070115925A (ko) 장치 테스트를 위한 시스템 및 방법
US8365194B2 (en) Creating and processing dynamic proxy actions for actions that are not yet registered with a client side broker
US6745389B1 (en) System of objects and program components
JP3089359B2 (ja) 有効範囲を定められたプロセス間メッセージ交換のための方法および装置
RU2316043C2 (ru) Механизм и способ предоставления информации событий в системе доступа
EP0967549A2 (en) Processing asynchronously called operations of objects
EP0274413A2 (en) Process traps in a distributed message-based system