JP2001527665A - 分散コンピュータ環境におけるインタープロセス通信 - Google Patents

分散コンピュータ環境におけるインタープロセス通信

Info

Publication number
JP2001527665A
JP2001527665A JP51094398A JP51094398A JP2001527665A JP 2001527665 A JP2001527665 A JP 2001527665A JP 51094398 A JP51094398 A JP 51094398A JP 51094398 A JP51094398 A JP 51094398A JP 2001527665 A JP2001527665 A JP 2001527665A
Authority
JP
Japan
Prior art keywords
memory space
agent
socket
data
data structure
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.)
Withdrawn
Application number
JP51094398A
Other languages
English (en)
Inventor
バーマン ザーガム
ジム ユーレン
ロバート ショー
シルヴィア チャン
ラース プラム
ミノー グプタ
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.)
Tandem Computers Inc
Original Assignee
Tandem Computers 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 Tandem Computers Inc filed Critical Tandem Computers Inc
Publication of JP2001527665A publication Critical patent/JP2001527665A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 複数のCPU(5a〜c)と、複数の非共有メモリー空間と、セレクトシステム呼び出しを実行するための手段(10a〜c)とを含むコンピューティング環境(2)。この接続維持システムは、メモリー空間の間のインタープロセス接続を取り扱うためにエージェント(30〜33a〜c)が夫々の非共有メモリー空間内に独立に存在する点において、障害許容性で且つ拡張性である。

Description

【発明の詳細な説明】 分散コンピュータ環境におけるインタープロセス通信 〔マイクロフィッシュ付表および著作権情報〕 この出願は、本発明に関連したソフトウエアコンポーネントのためのソースコ ード表を含んだ、2シート上の111フレームからなるマイクロフィッシュと共に 出願されている。付表部分にはA,B,DおよびEのラベルが付されている。 この特許出願書類の開示部分には、著作権の保護を受ける部分が含まれている 。著作権者は、この特許書類または特許の開示を、特許商標庁において明かなよ うに何人かが複製することに異議を申し立てるものではないが、それでも全ての 著作権を保有するものである。 〔発明の背景〕 本発明は、デジタル回路の分野およびそのインストラクションおよびプログラ ムコードの分野に関する。より特定的に言えば、本発明はデジタル回路間のデー タ通信、または同じ回路で実行されているプロセス間のデータ通信に関する。本 発明は更に、障害許容性で且つ拡張可能な分散プロセッサおよび分散デジタルプ ロセッシングシステムに関する。 本発明のこの議論は、コンピュータプログラミングおよびソフトウエア、特に データのインプットおよびアウトプット(I/O)、ネットワーク通信、およびイ ンタープロセス通信に関して或る程度精通していることを前提としている。本発 明はまた、共に譲渡された米国特許第4,228,496号(これは本明細書の一部をな す参照として本願に組み込まれる)で述べたマルチプロセッサおよび非共有メモ リーコンピュータシステムについて、本発明を理解し且つ実施するために必要な 範囲で、或る程度精通していることを前提とする。本発明の議論はまた、UNIXお よび関連のオペレーティングシステム、並びにインタープロセス通信およびネッ トワーク通信を可能にするための周知のソケットプロトコールについて、或る程 度精通していることを前提とする。 全ての場合において、ここに与えられる用語解説および特定の例は、本発明を 例示することを意図したものであり、限定的なものではない。本発明は、制限さ れない種々のオペレーティングシステム環境において実施され得ることが、当業 者には明かであろう。従って、本発明は添付の請求の範囲に与えられた限定によ る場合を除き、制限されるべきものではない。 セレクト( )およびソケット( )の背景 UNIXおよび他のオペレーティングシステム(OS's)において、プロセスは、セ レクト( )(または同様の)システムコールを使用して、それがインタープロセ ス通信の特定の資源に興味があることをOS核に知らせる。単純な例は、特定の 資源が読み出されるべきデータを有し、または書き込みに利用可能になるために 待機することを必要とするプロセスである。接続が準備できているかどうかを決 定するために、CPU時間を使用して反復して接続を問い合わせるのではなく、 このプロセスはセレクト( )を呼び出して、接続が直ちに準備できないないとき は休止する。セレクト( )に対する呼び出しはOS核に登録され、この呼び出し プロセスは、インタープロセス通信資源が準備できたときに覚醒される必要があ る。 セレクト( )OS呼び出しは、1以上のソケットへのオープン接続を有するプ ロセスによって使用され得る。ソケットはインタープロセス通信のための資源で あり、これは、一般には利用者プロセスと、共通のインターネットプロトコール TCPまたはIPのようなネットワークI/Oプロトコールを取り扱う特定のI/O プロセスとの間で使用される。ソケットは、一般にはOSメモリー空間内のデー タ構造として実現され、該メモリー空間は、OSNデータをソケットに供給でき るI/Oプロセス、および該ソケットを介して通信する利用者プロセスに対して アクセス可能である。ソケットデータ構造は、それに付随して、インタープロセ ス通信を取り扱うために必要な全ての情報を有しており、また一般には、利用者 プロセスとI/O接続との間に流れる実際のデータパケットを一時的に保存する ために、メモリー位置へのポインタを含んでいる。 セレクト( )はまた、パイプ(pipes)またはFIFOsのようなインタープロセス通 信のために、並びにttys、ディスクオープンおよびディレクトリーオープンのよ うな他のオープンI/Oのために使用される、他のOSデータ構造上で使用して もよい。セレクト( )は、それが如何なる種類のデータ構造上に呼び出されたと しても同様の機能を実行するが、異なったデータ構造のためのセレクト( )実 行の詳細は、以下で更に詳細に説明するように、異なったオペレーティングシス テムにおいては変化し得る。 セレクト( )システム呼び出しおよびソケットの良好な説明は、Richard Steve ns,(セクション6.13)、Prentics Hall,1990による参考書(UNIXネットワーク プログラミング)の中に見ることができる。 分散メモリー環境の背景 一つの中央演算ユニット(CPU)または共有メモリーを備えた複数のCPUsを有 するオペレーティングシステムでは、セレクト( )は容易に実行することができ る。これは、図1に示すように、システム中のソケット、パイプ、またはFIFOs に相当するデータ構造が一つのメモリー空間に含まれており、従って、当該メモ リー空間内で実行されている全てのプロセス(OSを含む)に直接アクセスする ことが可能だからである。 しかし、米国特許第4,228,494号で述べられているような非共有メモリー分散 システムでは、セレクト( )の実行はより困難である。何故なら、異なったデー タ構造上での異なる事象の発生に関する情報が、セレクトを呼び出している利用 者プロセスを保持したメモリーとは異なるメモリーに含まれており、セレクトを 呼び出したプロセスに対してローカルなOSにさえ直接にアクセス可能でない可 能性があるからである。 分散メモリー環境において、セレクト( )機能を効果的に実行するための方法 が必要とされている。 〔発明の概要〕 <用語解説> 次の用語は、以下の説明に従って、また当該技術において理解されている広い 意味に従って使用される。 接続: プロセス間、またはプロセスとI/O装置(例えばソケット、RAMフ ァイル、ディスクファイル、ディレクトリー、pipe、FIFO、TTY等)との間でデ ータを通信するための手段。 事象: 読み出し可能状態(ready-to-read)、書き込み可能状態(ready-to-wr ite)、または例外条件(exceptional condition)のような、接続上でのできご と。 ファイル記述子(FD): 利用者プロセスに対してローカルであり、当該プロセ スおよび関連の(子供)プロセスのみによって所有される、当該プロセスによっ てオープンまたは作製される特定の接続を特定するための識別子。 I/Oプロセス: ネットワークのような幾つかの物理的資源上でのデータの 入力および出力を管理する、入力/出力プロセス。サーバープロセスとも呼ばれ る。 核(Kernel): 全ての他のプロセスの作業を管理する、オペレーティングシス テムを実行する実行可能なコード。 メッセージ: 分散CPU環境において、通信チャンネルを通して2以上の異な ったCPUの間、またはメモリー空間の間で通信されるデータ。 オペレーティングシステム(OS): 核、およびプロセスに利用可能で呼び出し 可能な機能および資源 プロセス: 独立に実行可能で、且つ与えられた何れかの時点で実行または休 止している、実行可能なプログラムコードおよび関連の状態情報のコレクション (一般的にはシーケンス)。 ソケット: 或るプロセスが他のプロセスとの間でデータを通信することを可 能にする、メモリーに常駐するデータ構築物。 利用者プロセス: 利用者機能を実行するように作製されたプロセス。アプリ ケーションとも呼ばれる。 〔図面の簡単な説明〕 図1は、セレクト( )機能が利用され得る従来技術のコンピューティング環境 を示すブロック図である。 図2は、本発明を具体化した分散コンピューティング環境を示すブロック図で ある。 図3は、本発明に従うエージェントを示すブロック図である。 図4は、本発明に従ってインタープロセス接続を形成する方法のフローチャー トである。 図5は、本発明に従って分散セレクトを達成する方法のフローチャートである 。 図6は、本発明が実行され得る一般化されたコンピューティングシステムを示 すブロック図である。 〔好ましい実施例の説明〕 単一メモリー空間コンピュータにおけるセレクト( )およびソケット 図1は、従来技術のコンピューティング環境を示すブロック図である。この図 には、複数のCPU5a〜bと、共有メモリー空間10と、I/Oプロセス22a 〜cを備えたI/Oポート15a〜bと、利用者プロセス24a〜cと、ソケッ ト26a〜bと、FIFO27とを有するコンピュータシステム1が示されている。 図1に示したプロセスは、オペレーティングシステムプロセス(核とも言う) 20と、I/Oプロセス22a〜cと、利用者プロセス24a〜cとを含んでい る。 核20は連続的に実行されているプロセスであり、これはオペレーティングシ ステムの動作、および他のプロセスによる資源の使用の全体を管理する。I/O プロセス22a〜cは夫々、ネットワーク接続、ディスクドライブ、またはビデ オディスプレーのような物理的I/Oインターコネクションに一般的に接続され ており、この物理的装置とシステム中の他のプロセスとの間のデータ通信を管理 する。利用者プロセス24a〜cは、利用者に呼び出された実行可能なコードで あり、利用者機能を実行する。 ソケット26a〜bおよびFIFO27は、共有メモリー空間内に常駐しているデ ータ構造であり、インタープロセス通信を容易にするためにプロセスまたは核に よって作製される。 図1に示すように、ソケットBは、I/Oプロセス22bと利用者プロセス2 4aとの間に接続されている。ソケットBがこのように接続されると、たとえ利 用者プロセスAが利用可能でないときでも、利用者プロセスAに向けられたデー タはI/OプロセスBによって受信され、ソケットBによって指定されたメモリ ー位置に保存される。核によって利用者プロセスAが利用可能になったとき、ま たは覚醒されたときは何時でも、如何なる新たなアクションI/OプロセスBが とられたとしても中断することなく、ソケットBからデータの読み出しを行うこ とができる。ソケットBは一般的に、該ソケットからのデータを要求する利用 者プロセスが当該ソケット上で読み出しを行うまで、大量のデータパケットを受 信できるように構築される。実行される夫々の読み出しについて、ソケットBは 、I/OプロセスBから受信した順序で、次のデータを送達して廃棄する。 セレクト( ) 利用者プロセスAのようなプロセスは、ソケットBへのアクセスを必要とする ときにソケットB上にセレクト( )を呼び出すが、ソケットBが所望の動作のた めに準備できていることは保証されない。ソケットBが要求された動作を実行可 能な状態にあるとき、セレクト( )呼び出しは、利用者プロセスAが覚醒される ことを望むOS核20に対して覚醒信号を送る。 より一般的に言えば、プロセスは、1以上の接続上で1以上の事象が生じるこ とを待っているときに、セレクト( )型の機能を呼び出すことができる。もし直 ちに事象が発生しないならば、プロセスは、セレクト( )を呼び出した後に休止 してもよい。セレクト( )の或る特定の実行においては、ソケット上に呼び出さ れたときに3種類の事象が存在する。即ち、(1)ソケットがそこからデータを 読み出され得る状態にある、(2)ソケットがそこにデータを書き込まれ得る状 態にある、および(3)ソケットに関する例外条件がペンディングしている。一 般的に、例外条件はソケットについてのみ定義されるのに対して、読み出し/書 き込みが可能な状態は殆どの接続について定義される。 特定の例において、セレクト( )を呼び出すプロセスは、下記のパラメータをO S核20に提供する。即ち、 読み出しのためのビットマスク; 書き込みのためのビットマスク; 例外のためのビットマスク(ソケットについて); ビットマスクのサイズ(ビットの数); タイムアウト;および セレクト( )復帰値についての変数 である。 ビットマスクにおけるビットは、呼び出しプロセスが当該動作について興味あ る接続を同定する。問題の接続が準備できていないときは、当該プロセスは、接 続のうちの一つが準備できるまで、またはタイムアウトが終了するまで停止され る。セレクト( )システム呼び出しは、何回の接続要求が動作可能であるかのカ ウント(この値はタイムアウトが終了するときに0であり得る)を戻し、ビット マスクを更新する。即ち、ビットがセットされて対応する接続が動作可能な状態 になければ、ビットは0にクリアされる。ビットがセットされて対応する接続が 準備できていれば、ビットは1にセットされたままである。 ファイル記述子(FD's) 一般に、UNIXおよび類似のシステムでは、利用者プロセスによる接続要求に関 する情報は、利用者プロセスと、ファイル記述子(FD's)を使用するOSとの間で 通信される。FD'sは、一般的に、利用者プロセスが特定のシステム呼び出しを 実行して、オープン( )(存在するディスクファイル、ディレクトリー等上の)、 ソケット( )、pipe( )等のような接続を確立するときに割り当てられる整数の識 別子である。FD'sは一旦復帰すると、その後のシステム呼び出し、例えば読み出 し( )、書き込み( )、クローズ( )、またはセレクト( )のために使用されて、そ の動作を実行する接続を特定し、また上記のようなビットマスクに使用される。 FD'sは、一般にこれらを要求するプロセスに対してローカルであるが、子供プロ セスによって受け継がれることができ、或る場合には他のプロセスに渡すことも できる。OS 20は、各プロセス、該プロセスについて定義されたFD's、および これらFD'sによって特定された接続についての情報に関するデータ構造を保持す る。 インタープロセス通信のための共有メモリー空間の使用 図1に示した共有メモリーシステムにおいては、インタープロセス通信は共有 メモリーのメカニズムによって生じ、OS 20によって管理される。OS 20また は何れか他のオーソライズされたプロセスが、何れか一つのソケット26a〜b または何れか他の接続資源の状態を知りたいときは、これらのソケットが常駐し ている共有メモリー空間を読み出し、それによって関連のデータを取得する。 分散メモリー空間の実現の概観 図2は、分散されたセレクト( )および他のインタープロセス通信機能が、本 発明に従って有利に利用され得るコンピューティング環境2を示すブロック図で ある。図1にのように、該コンピューティング環境は、CPUs 5a〜c、ポート 1のようなI/Oポート、利用者プロセス24a〜d、26aのようなソケット 、および27aのようなパイプ(pipes)またはFIFOsを含んでいてもよい。 コンピューティング環境2は、多くの非共有メモリー空間10a〜cに分散さ れており、夫々のメモリースペースが一般的にそれ自身のOS核20、22または 23を有しているいる点で、コンピューティング環境1とは異なっている。イン タープロセス通信のための資源を含んだ一つのメモリー空間に常駐しているデー タ構造は、異なるメモリー空間のプロセスに対して直接アクセス可能ではない。 この議論の目的において、データ構造、プロセスおよびCPUsは、それらが同じメ モリー空間に直接に関連しているときは相互にローカルであると称し、また他の メモリー空間に接続されたプロセスまたはCPUsに対しては遠隔であると称する。 本発明に従えば、利用者プロセスAのような利用者プロセスは、必ずしも分散 メモリー環境において実行中であることを知らない;しかし、本発明は、利用者 プロセスAの立場からは、あたかも全てのプロセスが同じメモリー空間で実行さ れているかのように、利用者プロセスAが当該環境における何れか他のプロセス とのインタープロセス接続を確立することを可能にする。 本発明によれば、利用者プロセス(例えば利用者プロセスA)は更に、開かれ たインタープロセス接続上において、これら接続が呼び出しプロセスに対してロ ーカルでないときにも、セレクト( )型の機能を呼び出すことができる。 これを可能にするコンピュータ環境2(CPUsが相互にデータ通信することを可 能にする通信チャンネル50を含む)は、これを可能にする多くのメカニズムを 含んでいる。このCPUからCPUへの通信のためのメカニズムは、メッセージシステ ム、例えば米国特許第4,228,496号に記載のGuardianTMメッセージシステムで ある。 本発明によれば、コンピュータ環境2はまた、インタープロセス通信を容易に し且つ分散セレクト( )機能を実行するするために、多くのエージェントプロセ スを含んでいる。これらエージェントプロセス(例えば30a〜c、32a〜c 、33a〜c)は、分散環境に亘って接続を管理するために、以下で述べるよう に 夫々のOSによって作製される。 遠隔インタープロセス接続の確率 本発明は、図2および図4に示すように、本発明に従って二つのプロセス間の 接続が分散メモリー環境で確立される方法を考慮することによって、更に理解す ることができる。この例の目的のために、メモリースペース10aにおける利用 者プロセスAが、遠隔メモリー空間10cの中に常駐しているI/OプロセスA との接続を確立することを要求していると仮定する。利用者プロセスAは、それ が分散メモリー環境において実行されていることを必ずしも知っていない。 本発明によれば、インタープロセス接続は次のようにして行われる。即ち、利 用者プロセスAはシステム機能を呼び出して、I/OプロセスAへの接続を形成 する(ステップS2)。一つの特定の実施例において、このシステム機能はソケッ ト( )呼び出しであってもよいであろう。 このシステム機能呼び出しは、オペレーティングシステムのメモリー空間10 aによって受信されるが(ステップS4)、これは分散環境に亘って動作するよう に特別に設計されている。オペレーティングシステムは、利用者プロセスAがI /OプロセスAとのソケットを形成することを要求するソケットエージェント1 を覚醒させる(ステップS6)。ソケットエージェント1は、利用者プロセスAに 対してローカルなシャドウソケットAを作製する(ステップS8)。該シャドウソ ケットAが作製されると、これは利用者プロセスAの立場から見ると、正に非分 散メモリー環境内にソケットがあるように挙動する。 次いで、ソケットエージェント1は、CPU 1およびCPUバス50を介して遠隔 メモリー空間10cにメッセージを送る(ステップS10)。このメッセージが遠 隔メモリースペースでI/OプロセッサAによって受信されると、I/Oプロセ スAは、接続情報を保持し且つポート1に受信されたデータを保存するために、 真のソケットAをそのメモリー空間に作製する(ステップS14)。 ソケットAによって、利用者プロセスAが当該データの行き先であることが示 されると、I/OプロセスAまたは核23は、CPUを介してメモリー空間10a へのメッセージを再度開始し、メモリー空間10aプロセスに対して、ソケット Aにデータが存在存在することについての警報を発する(ステップS16)。本 発明の一実施例によれば、ソケットエージェント1のような1/OプロセスAは 、常に実行され且つそれが分散環境にあることを特別に知っているプロセスであ る。本発明の一実施例によれば、データが直ちにソケットAからシャドウソケッ トAに転送され、利用者プロセスAにより動作可能になるまでそこに保存される 一つのモードが定義され、また、利用者プロセスAからの実要求を受け取るまで データがソケットAに保持される別のモードが定義される。 メッセージがメモリースペース10aにおいて受信されると、これは常に実行 されているソケットエージェント1へ渡される(ステップS18)。次いで、ソケ ットエージェント1はシャドウソケットAを調べ、I/OプロセスAからのメッ セージに応答してアクションをとる必要があるかどうかを決定する(ステップS 20)。ソケットエージェント1は、利用者プロセスAがデータを受信するため に待機していることを決定すると、ソケットエージェント1は利用者プロセスA に対する覚醒を開始することができ、ついで、これは適切なアクションをとるこ とができる(ステップS22)。 分散セレクト( ) 本発明は更に、分散メモリー空間環境におケルセレクト( )システム機能を実 行するための手段を提供することによって、当該環境を更に向上させる。本発明 によれば、30aからcのようなエージェントは、図5に示すように、分散セレ クト( )の実行において多くの重要な機能を行う。 本発明の一実施例によれば、エージェントは、そのローカルOSによって、遠隔 接続を参照する何れかのローカルプロセスからの全てのセレクト( )呼び出しを 渡される(ステップT2)。該エージェントは、遠隔接続へのメッセージを作製し 、これはメッセージバス50上を転送される(ステップT6)。このエージェント プロセスは、分散セレクト( )呼び出しによって指定された事象に応答して、遠 隔接続から全ての通知メッセージを受け取る(ステップT8)。 遠隔接続を管理する遠隔プロセスまたはエージェントは、インタープロセス資 材が所定の利用者プロセスに有益であり、その動作が所定の資材にとって有益で あり、且つそのCPUsが所定の資源/動作に有益であるトラックを維持する。 I/Oプロセスまたは遠隔エージェントが、セレクト( )を介して、または特 定のFDが準備できているときは他の呼び出しを介して通知のための要求を受け取 ったとき、もしFDが準備できていなれば、I/Oプロセスまたは遠隔エージェン トは、FDに興味があること、何れのCPUがFDに有益であるか、および如何なる事 象が有益であるかを示す情報を保存する(ステップT10)。もし、FDが問題の動 作について準備が完了したら、I/Oプロセスは、要求しているCPUに対して準 備完了の情報を送る(ステップT12)。 論理的に言えば、呼び出しプロセス(または呼び出しプロセスの代わりにOS核 )は、所定のFDにおける興味を表している遠隔プロセスに当該メッセージを送る が、本発明によれば、該遠隔プロセスからの応答は必ずしも呼び出しプロセスに は戻らない。何故なら、呼び出しプロセスは終了し、またセレクト( )上でタイ ムアウトして、通常は退去してしまっている可能性があるからである。本発明は 、セレクト( )に対する全ての応答をエージェントプロセスに戻すことによって 、この問題を解決する。エージェントプロセスは、応答を受け取って適切なアク ションをとるために、常に利用可能である。 エージェントプロセスは、セレクト( )と遠隔プロセスを呼び出すローカルプ ロセスとの間の媒介者として動作する。エージェントは、OS核によって構築され たセレクト( )メッセージを取得し、これを遠隔プロセスへと送る。エージェン トは、遠隔プロセスから、セレクト( )が準備できたことのメッセージを受け取 る。エージェントは、メッセージからの情報をソケットのようなデータ構造に送 り、作動可能なFDsのリストにリンクしたFDsを呼び出しプロセスに加え、選択さ れたFDが準備完了したときに呼び出しプロセスを覚醒させる。 図3は、本発明の実施例の一例としての、エージェントプロセスのブロック図 である。本発明によれば、エージェントプロセスは、ローカルオペレーティング システムと、ローカルプロセスと相互作用するためのローカルインターフェース を含んでいる。本発明の一実施例によれば、このローカルインターフェースは、 ローカルプロセスが如何なる遠隔アクセスをも要求しないときでも、これらロー カルプロセスから全てのセレクト( )呼び出しを受け取る。本発明によれば、エ ージェントがそのセレクトデータベースから、特定の接続操作が遠隔プロセスの 通知を要求すること、および遠隔プロセスが既に通知されていることを決定する と、プロセスが実行されているCPUは当該特定の接続事象の通知を所望し、エー ジェントプロセス30aは、遠隔インターフェース134を介して遠隔メモリー 空間で実行中の遠隔プロセスへとメッセージを送る。 エージェントプロセス30aが、遠隔プロセスへ送られた要求に対する何等か の応答を受け取ると、これら応答をディストリビュータ136に渡し、該ディス トリビュータは、何れのローカルプロセスがその応答の通知を受けることを必要 としているか、また如何なるアクション(例えばローカルプロセスの覚醒)をと ることが必要かを決定する。次いで、ディストリビュータはローカルインターフ ェースを使用して、このような応答を通信し、適切なアクションをとる。 本発明の他の側面は、複数のソケット機能呼び出しの間の整合性を維持するた めに、利用者プロセスおよびI/Oプロセスが同じメモリー空間内に常駐してい るときでも、本発明では、別のシャドウソケットおよび実ソケットを用い、また ソケットエージェントを使用して、利用者プロセスとI/Oプロセスとの間で通 信し得ることである。 本発明を組み込んだ環境の一つの具体的な実施例では、各分散メモリー空間内 に三つのエージェントプロセスと、一つの取扱いソケットと、一つの取扱いパイ プと、一つの取扱いFIFOsとが存在する。別の実施例では、一つのエージェント プロセス、または2以上のエージェントプロセスを用いて、異なったインタープ ロセス通信資源を取り扱うことができるであろう。例えば、一つのエージェント プロセスはパイプおよびFIFOsを扱い、別のプロセスはソケットを扱うことがで きるであろう。 分散セレクト( )におけるOS核コード機能 本発明の一つの具体的な実施例において、OS核コードは、分散セレクト( )を 実行するために幾つかの機能を行う。この核は、プロセス呼び出しセレクト( ) からの入力パラメータを許容および有効化し、戻りパラメータ情報を集め、フォ ーマットする。それは、核データ構造をマークして、ローカルエージェントに必 要とされる情報を提供する。それはまた、遠隔プロセスに送信されるセレクト( )メッセージを構築する。 一実施例におけるOS核は、システム呼び出し「待機」を呼び出し、セレクト( ) 呼び出しプロセスを中断する。この呼び出しプロセスは、FDが準備できたときに はエージェントによって覚醒され、セレクト( )がタイムアウトし、または信号 が割り込んだときにはOS核によって覚醒される。FDが準備完了することにより呼 び出しプロセスが覚醒されるときは、それは更に、何れのFDが準備できたのか、 また何れの動作(読み出し/書き込み/例外)のために準備完了したのかを学習 する必要がある。本発明の一つの最適化は、データ構造のリンクしたリストの位 置を、エージェントに提供することである。呼び出しプロセスが覚醒されると、 OS核(呼び出しプロセスの代わりに)がこのリストを読んで、何れのFDsが準備 できているかを学習する。核は、これらFDsは呼び出しプロセスが必要としてい るものであるかどうかをチェックする。もしそうであれば、核は呼び出しプロセ スが提供するビットマップを更新して、呼び出しプロセスに制御を戻すが、もし そうでなければ、核は呼び出しプロセスを再度中断して、問題のFDsの準備がで きるのを待つ。 CPUsの間のリデューシングメッセージ 本発明の有益性は、ローカルCPUに同じ接続またはFDが存在する複数の事例の 取扱い方に関する。当該技術において知られているように、呼び出しプロセスは 、親のオープンFDsを受け継いだ子プロセスを分岐( )もしくは作製でき、または 呼び出しプロセスは複数のFDsを呼び出して開き(call dup( ))、同じ接続を参照 する複数のFDsを得ることができる。これらの何れかの場合において、同じFDに ついての興味が複数回示されるように、セレクトが呼び出される可能性がある。 両親および子供は、独立して一つのFD上にセレクト( )を呼び出す可能性があり 、或いは、一つのプロセスが同じオープンを参照する複数のFDsを用いて、セレ クト( )を呼び出す可能性がある。バス50におけるメッセージのバンド幅を減 少させるために、特定のFDおよび当該FD上の事象に興味があることを示している 遠隔プロセスへ、単一のセレクト( )メッセージのみを送ることが望ましい。 本発明によれば、第二のセレクト( )要求がローカルOS核に入って来たときに 、当該セレクトはエージェントプロセスに渡され、該プロセスは保有しているデ ータベースをチェックして、当該遠隔プロセスが当該FDに関して既にコンタクト されていること、従って遠隔プロセスへもう一つメッセージを送る必要がないこ とを決定する(ステップT6)。しかし、遠隔プロセスがFDの準備完了を示す応答 を送ったときに、当該応答がセレクト( )を呼び出した全ての呼び出しプロセス および/または同じプロセスにおける複数の複製FDsに配布されるように、当該 エージェントプロセスは、この第二のセレクト( )呼び出しが行われたことを記 録する。重複したセレクト( )要求を遠隔プロセスに送信しないことによって、 セレクトの送信側および受信側の両方で、バス50を通る重複メッセージが省略 される。 障害許容性 本発明は、図2に示すような分散メモリー環境において、セレクト( )機能お よびインタープロセス通信の障害許容範囲を増大するためのメカニズムを提供す る。本発明のこの側面に従えば、エージェントプロセスは、時々、接続情報を保 持している遠隔プロセスが遠隔CPUにおいて未だ実行中であるかどうかを調べる ためにチェックする。遠隔プロセスが予期に反して終了していれば、ローカルエ ージェントはこれを知り、休止もしくは休眠している可能性があるローカルプロ セスに知らせ、覚醒された遠隔プロセスによるアクションを待って、適切なアク ションをとる。本発明のこの側面に従えば、図2に示した分散メモリーシステム は、一つの全メモリー空間およびその関連CPUが故障しても、全体の環境は機能 し続けて、一つの区画の故障を補償できる点で障害許容性である。 拡張性 本発明はまた、図2に示したような分散メモリーシステムにおいて、拡張性を 増大させるための手段を提供する。本発明のこの側面に従えば、CPUsを備えた如 何なる数の追加のメモリー空間を集積システムに追加することができ、夫々の別 々の空間はそれ自身の一組のエージェントプロセスを有しており、ソケット接続 、FIFO接続およびパイプ接続を取り扱う。本発明は、当該システムに加えられる 追加のメモリー空間環境の数に関係なく、同じ方法で働くであろう。 FIFOsおよびパイプの実行の変形 本発明に従えば、インタープロセス通信は、ソケット、パイプ、またはFIFOの ような異なるタイプのインタープロセス通信について、同一に取り扱われ得る。 しかし、本発明はまた、特性を最適化するために、異なったタイプのインタープ ロセス接続の取扱いにおける変形を許容する。 図2に示すように、ソケット、FIFOsおよびパイプのための夫々のメモリー空 間内に、別のエージェントプロセスが作製され得る。本発明の一実施例に従えば 、32cのようなパイプエージェントは、先に説明したソケットと同様に動作し 得るが、パイプ接続については、32cのようなパイプ接続は遠隔I/Oプロセ スと通信するのではなく、33cのような遠隔パイプエージェントと通信する点 で異なっている。この場合、遠隔パイプエージェント33cはシャドウパイプ2 7bを作製して、利用者プロセスCとローカルにデータを通信する。32cと3 3cとの間の通信のようなパイプエージェント通信は、ソケットの場合と同様に 、CPUシステムバス50を占有する。このようなエージェント対エージェントの 通信は、ソケット通信の場合には必要ではない。何故なら、ソケットの場合には 、連続的に実行されている遠隔I/Oプロセスが常に存在し、これが遠隔実ソケ ットを作製でき、且つ受信メッセージを遠隔末端に送ることができるからである 。FIFOsおよびパイプは、このような連続的に実行されるプロセスを自動的に伴 っておらず、そのためエージェント対エージェントの通信が使用される。 しかし、ソケット、パイプおよびFIFOsについて、本発明の本質的な動作は同 様である。夫々の場合、本発明による動作システムは、遠隔インタープロセス接 続の両末端に連続的に実行されるプロセスを設けることにより、インタープロセ ス通信およびセレクト機能を容易にする。ソケットの場合、この連続的に実行さ れるプロセスの一方の末端にはソケットエージェントがあり、他端にはI/Oプ ロセス自身がある。このI/Oプロセスは、エージェントと同様に、分散環境で 動作するように、また受信メッセージを遠隔メモリー空間へ向けて送信できるよ うに特別に設計されている。 更に、本発明によれば、分散セレクト機能は、ディレクトリーファイルおよび ディスクファイルを含む他の種類のファイルと共に使用できることが理解される はずである。これらの二つのファイルタイプは、読み出しおよび書き込みのため の準備が常にできており、例外については準備できていない。そのため、これら のファイルについてのセレクト( )の実行は、分散環境においてさえ、セレクト( ) がファイルタイプを決定したときに状態が知られている点において些細なことで ある。 TTYsについての実行の変形 もう一つの実施例に従えば、TTYファイル(キャラクターファイルとも呼ばれ る)は、セレクトがソケット上に呼び出されるのと同じ方法で実行されるセレク トを有している。本発明によれば、TTYセレクト( )は、ソケットセレクト( )と 同様に、中央I/Oプロセスに依拠してデータ構造の制御を維持する。しかし、 TTYの場合、I/OプロセスA22bはテルネット(Telnet)サーバーであり、オ ープンTTY接続の状態を保持するデータ構造状態を維持する能力を有している。 このテルネットサーバーはまた、夫々のCPU内のTTYエージェントプロセスと通信 して、状態をセレクト( )に戻す能力を有してしており、また、夫々のCPU内のエ ージェントプロセスは、TTYセレクト指示を待っているプロセスを覚醒する。 コンテンション方式およびデータ転送方式 一実施例において、本発明は、22bのようなI/Oプロセスによって受け取 られたデータを、遠隔メモリー空間へ送信する二つの異なった方式を提供する。 通常の場合はデータ転送方式であり、ここではデータがプロセス22bに受信 されると直ぐに、プロセス22bはこのデータのポートアドレスを調べ、ソケッ トAにおける該データの最終的なアドレスを探す。プロセス22bは、26aか ら該データの行き先がメモリー10aのプロセス24aであることを決定する。 次いで、プロセス22bは、パケットデータを含むソケットエージェントaへの メッセージを作製し、該メッセージをバス50を通して送信する。このメッセー ジがソケットエージェント1によって受信されると、ソケットエージェント1は 、該パケットデータをシャドウソケットAが指定するメモリー位置にの中に置き 、次いで利用者プロセス24aを適切に覚醒させる。 本発明はまた、コンテンション方式の転送ストラテジーを提供する。I/Oプ ロセス22bが、1以上のメモリー空間内の利用者プロセスが特定のソケットか らのデータ読み取りに興味があることを決定したとき、I/Oプロセス22bは コンテンション方式で動作する。その場合に、I/Oプロセス22bは、次に如 何なるプロセスが当該データに対する読み出しを行うかを知らないから、パケッ トデータをシャドウソケットに転送できない。コンテンション方式において、こ のパケットデータは次いでソケットAに保存され、メッセージは、当該データが バス50バス50を通って送信される準備ができていることを示す。読み出し( )が26bのようなローカルプロセスによって呼び出されると、当該読み出しは 、OSによってローカルソケットエージェントに転送され、次いで、該エージェン トはメッセージをバス50を通して送信して、データのパケットを送達する。こ の方法において、常に次の利用可能なパケットを次の読み出し要求へと送達する ソケットプロトコールが保存される。 コンピュータ読み取り可能な媒体に関する発明 図6は、本発明の特徴を用いたソフトウエアを実行するために使用され得るコ ンピュータシステムの例を示している。図6は、モニター703、スクリーン7 05、キャビネット707、キーボード709、およびマウス711を含んだコ ンピュータシステム700を示している。マウス711は、マウスボタン713 のような1以上のボタンを有し得る。キャビネット707は、CD-ROMまたは他の タイプのディスク711を読み取るためのディスクドライブ715を収容するよ うに示されている。キャビネット707はまた、図2に示すような複数のコンピ ュータプロセッサ、およびメモリー空間を収容している。本発明の一実施例に従 えば、本発明は、ディスク717のような媒体に記録されたオペレーティングシ ステムソフトウエア、またはシステムユーティリティーソフトウエアの中に組み 込むことができ、該ディスクが適切なコンピュータシステムにロードされると、 これは該システムに上記の方法を実行させる。 特定の実施例を参照して本発明を説明してきたが、当業者には他の実施例が明 かであろう。特に、方法のステップは、本発明を理解する目的のために機能的に 分類されている。しかし、当業者は、本発明の本質的な性質を変化させることな く、種々の方法ステップを異なった順序で実行してもよく、或いは異なった機能 的分類に置き換えるてもよいことを理解するであろう。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,DE, DK,ES,FI,FR,GB,GR,IE,IT,L U,MC,NL,PT,SE),CA,JP (72)発明者 ユーレン ジム アメリカ合衆国 カリフォルニア州 95133 サン ホセ クリークストーン サークル 1745 (72)発明者 ショー ロバート アメリカ合衆国 カリフォルニア州 95014 クーパーティノ ヴァリー グリ ーン ドライヴ 20975―#238 (72)発明者 チャン シルヴィア アメリカ合衆国 カリフォルニア州 94040 マウンテン ヴィュー ラサール ドライヴ 2690 (72)発明者 プラム ラース アメリカ合衆国 カリフォルニア州 95055 ミルピタス コヴェントリー ウ ェイ 900 (72)発明者 グプタ ミノー アメリカ合衆国 カリフォルニア州 95030 ロス ガトス ラス カンブレス ロード 18338

Claims (1)

  1. 【特許請求の範囲】 1.複数のCPUおよび複数のメモリー空間を有するコンピューティング環境に おいて、第一のメモリー空間内に存在する複数のプロセスに、第二のメモリー空 間内で生じる事象の通知を受信させるための方法であって: 前記第一のメモリー空間内にエージェントを作製することと; 前記第一のメモリー空間における前記複数のプロセスのうちの一つによ って、前記第二のメモリー空間における1以上の事象の通知を求める要求を、前 記エージェントに向けることと; 前記要求を表すメッセージを、前記第二のメモリー空間へ送信すること と; 前記エージェントによって、前記第二のメモリー空間から前記要求され た通知を受信することと; 前記受信された通知を、前記第一のメモリー空間内の前記要求している プロセスへ配信することとを具備した方法。 2.請求項1に記載の方法であって:更に、 前記第一のメモリー空間内に、要求された通知が未解決である事象を示 す情報を保存することと; 新たな要求を、未解決の要求に関する前記保存された情報と比較するこ とと; 前記事象の通知に関する要求が未解決であるときは、前記新たな要求の 前記第二のメモリー空間への送信を抑制することとを具備する方法。 3.請求項1に記載の方法であって、通知に関する前記要求はセレクト( )機 能によって発生される方法。 4.請求項1に記載の方法であって、前記要求しているプロセスは、それが分 散メモリー空間環境において実行されていることを知らなくてもよい方法。 5.請求項1に記載の方法であって、通知に関する前記要求は、前記第二のメ モリー空間におけるプロセスによって受信される方法。 6.請求項5に記載の方法であって、前記第二のメモリー空間における前記プ ロセスは、第二のエージェントである方法。 7.請求項5に記載の方法であって、前記第二のメモリー空間における前記プ ロセスは、連続的に実行されているI/Oプロセスである方法。 8.請求項7に記載の方法であって、前記連続的に実行されているプロセスは 、前記第二のメモリー空間において連続的に実行されているプロセスが連続的に 実行されている分散環境のために特別に設計される方法。 9.請求項1に記載の方法であって:更に、 インタープロセス通信を容易にするために、前記第一のメモリー空間内 に第一のデータ構造を作製することと; インタープロセス通信を容易にするために、前記第二のメモリー空間内 に第二のデータ構造を作製することとを具備する方法。 10.請求項9に記載の方法であって、前記第一のデータ構造は、前記第一の メモリー空間における前記複数のプロセスに関しては標準化されたプロトコール に従って動作するシャドウソケットであり、また前記第二のデータ構造は、標準 化されたプロトコールに従って前記第二のメモリー空間で動作するソケットであ る方法。 11.請求項9に記載の方法であって、前記第一のデータ構造は、前記第一の メモリー空間における前記複数のプロセスに関しては標準化されたプロトコール に従って動作するパイプであり、また前記第二のデータ構造は、標準化されたプ ロトコールに従って前記第二のメモリー空間で動作するシャドウパイプである方 法。 12.請求項9に記載の方法であって、前記第一のデータ構造は、前記第一の メモリー空間における前記複数のプロセスに関しては標準化されたプロトコール に従って動作するFIFOであり、また前記第二のデータ構造は、標準化されたプロ トコールに従って前記第二のメモリー空間で動作するシャドウFIFOである方法。 13.請求項10に記載の方位法であって、前記ソケットにおいて受信された データデータは前記シャドウソケットに転送されて、前記第一のメモリー空間で 前記複数のプロセスのうちの一つによって読み出されるまで、前記シャドウソケ ットより指示された位置に保存される方法。 14.請求項13に記載の方法であって、前記ソケットは二つの方式、即ち、 データが直ちに前記シャドウソケットに転送される転送モードと、読み出し要求 が前記ソケットに受信されるまでデータが前記ソケットに保持されるコンテンシ ョン方式とに従って動作する方法。 15.分散セレクト機能を組み込んだ分散動作システムであって: 第一のメモリー空間において実行されている第一のエージェントと; 第二のメモリー空間において実行されている第二のエージェントと; 前記第一のメモリー空間に常駐している、インタープロセス通信のため の第一のデータ構造と; 前記第二のメモリー空間に常駐している、インタープロセス通信のため の第二のデータ構造とを具備し、 前記第一および第二のエージェントは、前記第一および前記第二のメモ リー空間の間でメッセージを送信および受信し、また標準のセレクト機能インタ ーフェースを利用者プロセスに提供する方法。 16.分散コンピューティング環境であって: 複数の中央演算ユニットと; 複数のメモリー空間と; 前記複数の中央演算ユニットの間でメッセージを通信するための通信チ ャンネルと; 第一のメモリー空間において実行されている第一のエージェントと; 第二のメモリー空間において実行されている第二のエージェントと; 前記第一のメモリー空間に常駐する、インタープロセス通信のための第 一のデータ構造と; 前記第二のメモリー空間に常駐する、インタープロセス通信のための第 二のデータ構造とを具備し、 前記第一および第二のエージェントは、前記第一および第二のメモリー 空間の間でメッセージを送信および受信し、また標準のセレクト機能インターフ ェースを利用者プロセスに提供する分散コンピューティング環境。 17.コンピュータで実行可能なプログラムコードを含む固定されたコンピュ ータ読み取り可能な媒体であって、適切に構成されたコンピュータシステムにロ ードされたときに、該コンピュータに請求項1の方法を行わせる媒体。 18.コンピュータで実行可能なプログラムコードを含む固定されたコンピュ ータ読み取り可能な媒体であって、適切に構成されたコンピュータシステムにロ ードされたときに、該コンピュータに請求項14の方法を行わせる媒体。 19.複数のCPUおよび複数のメモリー空間を有するコンピューティング環境 において、第一のメモリー空間内に存在するプロセスと第二のメモリー空間内に 存在するプロセスとの間の通信を容易にするための方法であって: 前記第一のメモリー空間内に第一のエージェントプロセスを作製するこ とと; 第二のメモリー空間におけるプロセスへのインタープロセス接続を作製 するための第一のプロセスによって、前記エージェントに要求を指令することと ; 前記要求を表すメッセージを、前記エージェントから前記第二のメモリ ー空間へ送信することと; 前記第二のメモリー空間内の第二のプロセスにおいて、前記要求を受信 することと; インタープロセス通信を容易にするために、前記第二のメモリー空間内 にデータ構造を作製することと; 前記第一および第二のデータ構造を使用して、夫々のメモリー空間にお けるプロセスとの間でデータ通信することと; 前記エージェントおよび前記第二のプロセスを使用して、前記データ構 造の間でデータ通信することとを具備する方法。 20.請求項19に記載の方法であって、前記第一のプロセスは、それが分散 メモリー空間環境において実行されていることを知らなくてもよい方法。 21.請求項19に記載の方法であって、前記第二のメモリー空間における前 記プロセスは第二のエージェントである方法。 22.請求項19に記載の方法であって、前記第二のメモリー空間における前 記プロセスは、連続的に実行されているI/Oプロセスである方法。 23.請求項2に記載の方法であって、前記未解決の要求および前記抑制され た新たな要求が同じプロセスによって発生される方法。 24.請求項2に記載の方法であって、前記未解決の要求および前記抑制され た新たな要求が二つの異なったプロセスによって発生される方法。
JP51094398A 1996-08-21 1997-08-20 分散コンピュータ環境におけるインタープロセス通信 Withdrawn JP2001527665A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US2479696P 1996-08-21 1996-08-21
US08/835,398 US6470398B1 (en) 1996-08-21 1997-04-07 Method and apparatus for supporting a select () system call and interprocess communication in a fault-tolerant, scalable distributed computer environment
US60/024,796 1997-04-07
US08/835,398 1997-04-07
PCT/US1997/014681 WO1998008164A1 (en) 1996-08-21 1997-08-20 Interprocess communication in a distributed computer environment

Publications (1)

Publication Number Publication Date
JP2001527665A true JP2001527665A (ja) 2001-12-25

Family

ID=26698880

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51094398A Withdrawn JP2001527665A (ja) 1996-08-21 1997-08-20 分散コンピュータ環境におけるインタープロセス通信

Country Status (4)

Country Link
US (2) US6470398B1 (ja)
EP (1) EP0920662A1 (ja)
JP (1) JP2001527665A (ja)
WO (1) WO1998008164A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010061648A (ja) * 2008-09-04 2010-03-18 Internatl Business Mach Corp <Ibm> ハイブリッド・コンピューティング環境におけるデータ処理のための方法、装置、およびプログラム

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0967545A1 (en) * 1998-06-23 1999-12-29 BRITISH TELECOMMUNICATIONS public limited company A system and method for the co-ordination and control of information supply using a distributed multi-agent platform
US20060034275A1 (en) * 2000-05-03 2006-02-16 At&T Laboratories-Cambridge Ltd. Data transfer, synchronising applications, and low latency networks
US6976258B1 (en) 1999-11-30 2005-12-13 Ensim Corporation Providing quality of service guarantees to virtual hosts
US6754716B1 (en) 2000-02-11 2004-06-22 Ensim Corporation Restricting communication between network devices on a common network
US7343421B1 (en) 2000-02-14 2008-03-11 Digital Asset Enterprises Llc Restricting communication of selected processes to a set of specific network addresses
US6948003B1 (en) 2000-03-15 2005-09-20 Ensim Corporation Enabling a service provider to provide intranet services
US6985937B1 (en) 2000-05-11 2006-01-10 Ensim Corporation Dynamically modifying the resources of a virtual server
US6907421B1 (en) 2000-05-16 2005-06-14 Ensim Corporation Regulating file access rates according to file type
US6909691B1 (en) 2000-08-07 2005-06-21 Ensim Corporation Fairly partitioning resources while limiting the maximum fair share
US6732211B1 (en) * 2000-09-18 2004-05-04 Ensim Corporation Intercepting I/O multiplexing operations involving cross-domain file descriptor sets
US6854119B1 (en) * 2000-09-29 2005-02-08 International Business Machines Corporation Method, apparatus and article of manufacture for tracking processes
DE10051147B4 (de) * 2000-10-16 2005-04-14 Siemens Ag Verfahren zum Zugriff auf ein IP-Netz und zur Arbeit in diesem
US7219354B1 (en) 2000-12-22 2007-05-15 Ensim Corporation Virtualizing super-user privileges for multiple virtual processes
US7356820B2 (en) * 2001-07-02 2008-04-08 International Business Machines Corporation Method of launching low-priority tasks
CA2383825A1 (en) * 2002-04-24 2003-10-24 Ibm Canada Limited-Ibm Canada Limitee Dynamic configuration and self-tuning of inter-nodal communication resources in a database management system
US20040139452A1 (en) * 2003-01-14 2004-07-15 Hope Clifford C. Dynamic recipients in an event management system
US20040139446A1 (en) * 2003-01-14 2004-07-15 Hope Clifford C. Event management system and method
US20040139444A1 (en) * 2003-01-14 2004-07-15 Hope Clifford C. Notification service in an event management system
CA2416352A1 (en) * 2003-01-14 2004-07-14 Cognos Incorporated Autonomous dynamic behavior modification in an event management system
US20040138931A1 (en) * 2003-01-14 2004-07-15 Hope Clifford C. Trend detection in an event management system
US8230445B2 (en) * 2003-01-14 2012-07-24 International Business Machines Corporation Event management method and system
CA2416357A1 (en) * 2003-01-14 2004-07-14 Cognos Incorporated Message suppression in an event management system
CA2416355A1 (en) * 2003-01-14 2004-07-14 Cognos Incorporated Iterative escalation in an event management system
US20040139450A1 (en) * 2003-01-14 2004-07-15 Hope Clifford C. Contextual drill through in an event management system
US7096391B2 (en) * 2003-04-29 2006-08-22 Hewlett-Packard Development Company, L.P. Error message suppression system and method
KR100548154B1 (ko) * 2003-06-11 2006-01-31 (주)엔텔스 유무선 통신망에서의 패킷 전송 제어 및 패킷 과금 데이터생성을 위한 방법 및 장치
US7675850B2 (en) 2003-12-05 2010-03-09 Zte Corporation Apparatus for realizing soft-switch allopatric disaster recovery based on packet network
US7454758B2 (en) 2004-02-05 2008-11-18 Aol Llc, A Delaware Limited Liability Company Inter-process communication on a computer
US20060200278A1 (en) * 2005-03-02 2006-09-07 Honeywell International Inc. Generic software fault mitigation
US7565685B2 (en) * 2005-11-12 2009-07-21 Intel Corporation Operating system independent data management
US7934218B2 (en) * 2006-03-30 2011-04-26 International Business Machines Corporation Interprocess communication management using a socket layer
US8627402B2 (en) 2006-09-19 2014-01-07 The Invention Science Fund I, Llc Evaluation systems and methods for coordinating software agents
US8607336B2 (en) * 2006-09-19 2013-12-10 The Invention Science Fund I, Llc Evaluation systems and methods for coordinating software agents
US8984579B2 (en) * 2006-09-19 2015-03-17 The Innovation Science Fund I, LLC Evaluation systems and methods for coordinating software agents
US8601530B2 (en) * 2006-09-19 2013-12-03 The Invention Science Fund I, Llc Evaluation systems and methods for coordinating software agents
US10025734B1 (en) * 2010-06-29 2018-07-17 EMC IP Holding Company LLC Managing I/O operations based on application awareness
US9235585B1 (en) 2010-06-30 2016-01-12 Emc Corporation Dynamic prioritized recovery
US9697086B2 (en) * 2010-06-30 2017-07-04 EMC IP Holding Company LLC Data access during data recovery
US9367561B1 (en) 2010-06-30 2016-06-14 Emc Corporation Prioritized backup segmenting
US9442778B2 (en) 2012-10-01 2016-09-13 Salesforce.Com, Inc. Method and system for secured inter-application communication in mobile devices
CN114979305B (zh) * 2022-06-30 2024-03-22 京东方科技集团股份有限公司 一种通信方法、装置、设备、存储介质及程序产品

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4924384A (en) 1988-09-21 1990-05-08 International Business Machines Corporation Method for controlling the peer-to-peer processing of a distributed application across a synchronous request/response interface using push-down stack automata
US5142622A (en) * 1989-01-31 1992-08-25 International Business Machines Corporation System for interconnecting applications across different networks of data processing systems by mapping protocols across different network domains
JPH0689269A (ja) * 1991-02-13 1994-03-29 Hewlett Packard Co <Hp> プロセッサの制御装置、プロセッサの休止装置およびそれらの方法
IL97894A0 (en) 1991-04-17 1992-06-21 Ibm Multi-processor computer system
US5537417A (en) * 1993-01-29 1996-07-16 International Business Machines Corporation Kernel socket structure for concurrent multiple protocol access
US5590181A (en) * 1993-10-15 1996-12-31 Link Usa Corporation Call-processing system and method
CA2118169A1 (en) * 1993-10-27 1995-04-28 Michael R.C. Seaman Event architecture for system management in an operating system
US5606705A (en) * 1994-04-15 1997-02-25 Honeywell Inc. Communication coordinator for messages to be sent from at least one data source to a plurality of clients
US5706516A (en) 1995-01-23 1998-01-06 International Business Machines Corporation System for communicating messages among agent processes
US5918018A (en) * 1996-02-09 1999-06-29 Secure Computing Corporation System and method for achieving network separation
US5867661A (en) * 1996-02-15 1999-02-02 International Business Machines Corporation Method and apparatus of using virtual sockets for reducing data transmitted over a wireless communication link between a client web browser and a host web server using a standard TCP protocol
US5721825A (en) * 1996-03-15 1998-02-24 Netvision, Inc. System and method for global event notification and delivery in a distributed computing environment
US6282581B1 (en) * 1997-03-27 2001-08-28 Hewlett-Packard Company Mechanism for resource allocation and for dispatching incoming calls in a distributed object environment
US6157959A (en) * 1997-07-03 2000-12-05 Tandem Computers, Incorporated Method and apparatus for providing portable kernel-mode support for fast interprocess communication
US6567861B1 (en) * 1997-09-17 2003-05-20 International Business Machines Corporation Method and apparatus for remotely running objects using data streams and/or complex parameters
US6237035B1 (en) * 1997-12-18 2001-05-22 International Business Machines Corporation System and method for preventing duplicate transactions in an internet browser/internet server environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010061648A (ja) * 2008-09-04 2010-03-18 Internatl Business Mach Corp <Ibm> ハイブリッド・コンピューティング環境におけるデータ処理のための方法、装置、およびプログラム

Also Published As

Publication number Publication date
WO1998008164A1 (en) 1998-02-26
US6470398B1 (en) 2002-10-22
US20020112089A1 (en) 2002-08-15
EP0920662A1 (en) 1999-06-09

Similar Documents

Publication Publication Date Title
JP2001527665A (ja) 分散コンピュータ環境におけるインタープロセス通信
US6823512B1 (en) Apparatus and method for providing and processing prioritized messages in an ordered message clustered computing environment
US6336147B1 (en) Method and apparatus for managing connections for communication among objects in a distributed object system
US5062040A (en) Handling of notification of asynchronous events by user and stub processes of a distributed process executing on a plurality of processors of a multi-processor system
US7246167B2 (en) Communication multiplexor using listener process to detect newly active client connections and passes to dispatcher processes for handling the connections
Lauer et al. On the duality of operating system structures
US7082604B2 (en) Method and apparatus for breaking down computing tasks across a network of heterogeneous computer for parallel execution by utilizing autonomous mobile agents
Mullender et al. The design of a capability-based distributed operating system
US5530905A (en) Temporary state preservation for a distributed file service which purges virtual circuit control information after expiration of time limit of inactivity
JPH03126158A (ja) スケジユーリング方法及び装置
EP2618257B1 (en) Scalable sockets
CN112698963B (zh) 一种事件通知方法及装置
Mullender et al. The Amoeba distributed operating system
Rashid An inter-process communication facility for UNIX
JPH05508037A (ja) 端末装置とユーザプログラムとの間のデータ通信を実現するための装置および方法
US6412018B1 (en) System for handling asynchronous message packet in a multi-node threaded computing environment
EP0725345A1 (en) Apparatus and method for efficient transfer of data and events between processes and between processes and drivers in a parallel, fault tolerant message based operating system
BRIGHTWELL et al. Scalability limitations of VIA-based technologies in supporting MPI
US6032267A (en) Apparatus and method for efficient modularity in a parallel, fault tolerant, message based operating system
Tanenbaum A comparison of three microkernels
Nothaas et al. Ibdxnet: Leveraging infiniband in highly concurrent java applications
CN114124680B (zh) 一种文件访问控制告警日志管理方法及装置
Kepecs et al. SODA: A simplified operating system for distributed applications
Argyroulis Recent Advancements In Distributed System Communications
Besaw Berkeley UNIX† System Calls and Interprocess Communication

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040423

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20050616

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20060418