JP2010529524A - スケーラブル/冗長遠隔通信システムを構築するためのプロセス間通信方法および装置 - Google Patents

スケーラブル/冗長遠隔通信システムを構築するためのプロセス間通信方法および装置 Download PDF

Info

Publication number
JP2010529524A
JP2010529524A JP2010507551A JP2010507551A JP2010529524A JP 2010529524 A JP2010529524 A JP 2010529524A JP 2010507551 A JP2010507551 A JP 2010507551A JP 2010507551 A JP2010507551 A JP 2010507551A JP 2010529524 A JP2010529524 A JP 2010529524A
Authority
JP
Japan
Prior art keywords
multicast
messaging
software component
registered
message
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
JP2010507551A
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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2010529524A publication Critical patent/JP2010529524A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/189Arrangements for providing special services to substations for broadcast or conference, e.g. multicast in combination with wireless systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

メッセージングシステム(108)内のプロセス間通信のためのメッセージングエンティティ(サーバ110aまたはクライアント110b)は、ソフトウェアコンポーネントによる当該メッセージングシステムへの登録を可能にし、登録されたソフトウェアコンポーネント間のユニキャスト通信を可能にし、ソフトウェアコンポーネントによるマルチキャストイベントの登録を可能にし、登録されたソフトウェアコンポーネント間のマルチキャスト通信を可能にする。メッセージングサーバ(110a)は、分散コンピューティングシステム(100)内で新しいメッセージングクライアント(110b)を発見し、登録されたメッセージングクライアント(110b)が使用可能であることを検証し、登録されたメッセージングクライアント(110b)間の同期を維持し、リソースロケーションキャッシュのマスターバージョン(114a)を管理し、マルチキャスト登録データ構造のマスターバージョン(116a)を管理する。

Description

米国特許法119条による優先権の主張
本特許出願は、本出願の譲受人に譲渡され、参照により明白に本明細書に組み込まれる、2007年5月4日に出願された米国仮出願第60/916,247号の優先権を主張するものである。
本開示は、一般に、遠隔通信システムに関する。より詳細には、本開示は、スケーラブル/冗長遠隔通信システムを構築するためのプロセス間通信方法および装置に関する。
分散冗長遠隔通信システムを構築するとき、ある種のメッセージングレイヤが、プロセス間(または、スレッド間)通信を行うために使用される。これは、分散ソフトウェアの有限状態機械に、サービスを提供するために通信することを許す。
典型的なメッセージングシステムは、コンポーネント間でポイントツーポイントメッセージを送信する方法を提供する。メッセージをマルチキャストまたはブロードキャストする能力は、時々提供されるが、常に提供されるわけではない。
多くのプロセス間通信方式も、オペレーティングシステムおよび/またはバックプレーン固有である。メッセージングは、通常、他のすべてのソフトウェアが記録される基本的なサービスであるので、これは、それらのサービスの移植を困難にし、システムの全ソフトウェアアーキテクチャに影響を及ぼす。
多くの他のシステムは、他のアプリケーションと同様、メッセージングのトップに、名前解決、ネットワーク時間分配、および分散ハートビートの階層化のようなサービスを提供する。このことは処理の非効率をももたらす。
図1は、分散コンピューティングシステム内に実施されるメッセージングシステムの一例を示す図である。 図2は、ソフトウェアコンポーネントがメッセージングシステムにどのように登録することができるかを示す一例を示す図である。 図3は、メッセージングエンティティが登録されたソフトウェアコンポーネント間のユニキャスト通信をどのように可能にするかを示す一例を示す図である。 図4は、ソフトウェアコンポーネントがマルチキャストイベントをどのように登録することができるかを示す一例を示す図である。 図5は、メッセージングエンティティが登録されたソフトウェアコンポーネント間のマルチキャスト通信をどのように可能にするかを示す一例を示す図である。 図6は、メッセージングサーバによって実行される機能のいくつかを示す図である。 図7は、メッセージングサーバによって実行されるプロセス間通信のための方法の一例を示す図である。 図7Aは、図7の方法に対応する手段(means-plus-function)ブロックを示す図である。 図8は、メッセージングエンティティによって実行されるプロセス間通信のための方法の一例を示す図である。 図8Aは、図8の方法に対応する手段ブロックを示す図である。 図9は、本明細書に記載のメッセージングシステムがどのように実施されるかを示す例を示す図である。 図10は、本明細書に記載のメッセージングシステムがどのように実施されるかを示す例を示す図である。 図11は、本明細書に記載のメッセージングシステムがどのように実施されるかを示す例を示す図である。 図12は、分散コンピューティングシステムにおいてソフトウェアコンポーネント間のプロセス間通信を可能にするための装置のハードウェア実装の一部を示す図である。
プロセス間通信のための装置が開示される。本装置はメッセージングシステムにおいてメッセージングエンティティとして使用できる。本装置は、プロセッサと、前記プロセッサに結合された回路と、を含むことができる。該回路は、ソフトウェアコンポーネントによるメッセージングシステムへの登録を可能にし、登録されたソフトウェアコンポーネント間のユニキャスト通信を可能にし、ソフトウェアコンポーネントによるマルチキャストイベントの登録を可能にし、登録されたソフトウェアコンポーネント間のマルチキャスト通信を可能にするように構成できる。
プロセス間通信のための装置が開示される。本装置はメッセージングシステムにおいてメッセージングサーバとして使用できる。本装置は、プロセッサと、前記プロセッサに結合された回路と、を含むことができる。該回路は、分散コンピューティングシステム内で新しいメッセージングクライアントを発見し、登録されたメッセージングクライアントが使用可能であることを検証し、登録されたメッセージングクライアント間の同期を維持し、リソースロケーションキャッシュのマスターバージョンを管理し、マルチキャスト登録データ構造のマスターバージョンを管理するように構成できる。
メッセージングシステム内のメッセージングエンティティによって実行され得るプロセス間通信のための方法が開示される。本方法は、ソフトウェアコンポーネントによるメッセージングシステムへの登録を可能にすることを含むことができる。本方法は、登録されたソフトウェアコンポーネント間のユニキャスト通信を可能にすることを含むこともできる。本方法は、ソフトウェアコンポーネントによるマルチキャストイベントの登録を可能にすることを含むこともできる。本方法は、登録されたソフトウェアコンポーネント間のマルチキャスト通信を可能にすることを含むこともできる。
メッセージングシステム内のメッセージングサーバによって実行され得るプロセス間通信のための方法が開示される。本方法は、分散コンピューティングシステム内で新しいメッセージングクライアントを発見することを含むことができる。本方法は、登録されたメッセージングクライアントが使用可能であることを検証することを含むこともできる。本方法は、登録されたメッセージングクライアント間の同期を維持することを含むこともできる。本方法は、リソースロケーションキャッシュのマスターバージョンを管理することを含むこともできる。本方法は、マルチキャスト登録データ構造のマスターバージョンを管理することを含むこともできる。
分散コンピューティングシステムにおいてソフトウェアコンポーネント間のプロセス間通信を可能にするように構成されたメッセージングエンティティを備えるハードウェアユニットが開示される。メッセージングエンティティは、ソフトウェアコンポーネントによるメッセージングシステムへの登録を可能にするように構成された登録コンポーネントを含むことができる。メッセージングエンティティは、登録されたソフトウェアコンポーネント間のユニキャスト通信を可能にするように構成されたリソースロケーションサーバを含むこともできる。メッセージングエンティティは、ソフトウェアコンポーネントによるマルチキャストイベントの登録を可能にするように構成されたマルチキャスト登録コンポーネントを含むこともできる。メッセージングエンティティは、登録されたソフトウェアコンポーネント間のマルチキャスト通信を可能にするように構成されたマルチキャスト通信コンポーネントを含むこともできる。
また、分散コンピューティングシステムにおいてソフトウェアコンポーネント間のプロセス間通信を可能にするように構成されたメッセージングサーバを備えるハードウェアユニットが開示される。メッセージングサーバは、分散コンピューティングシステム内で新しいメッセージングクライアントを発見するように構成されたクライアント発見コンポーネントを含むことができる。メッセージングサーバは、登録されたメッセージングクライアントが使用可能であることを検証するように構成された検証コンポーネントを含むこともできる。メッセージングサーバは、登録されたメッセージングクライアント間の同期を維持するように構成された同期コンポーネントを含むこともできる。メッセージングサーバは、リソースロケーションキャッシュのマスターバージョンを管理するように構成されたキャッシュマネージャを含むこともできる。メッセージングサーバは、マルチキャスト登録データ構造のマスターバージョンを管理するように構成されたマルチキャスト登録マネージャを含むこともできる。
分散コンピューティングシステムにおいてソフトウェアコンポーネント間のプロセス間通信を可能にするように構成されたメッセージングエンティティを備える装置も開示される。メッセージングエンティティは、ソフトウェアコンポーネントによるメッセージングシステムへの登録を可能にするための手段を含むことができる。メッセージングエンティティは、登録されたソフトウェアコンポーネント間のユニキャスト通信を可能にするための手段を含むこともできる。メッセージングエンティティは、ソフトウェアコンポーネントによってマルチキャストイベントの登録を可能にするための手段を含むこともできる。メッセージングエンティティは、登録されたソフトウェアコンポーネント間のマルチキャスト通信を可能にするための手段を含むこともできる。
分散コンピューティングシステムにおいてソフトウェアコンポーネント間のプロセス間通信を可能にするように構成されたメッセージングサーバを備える装置も開示される。本装置は、分散コンピューティングシステム内で新しいメッセージングクライアントを発見するための手段を含むことができる。本装置は、登録されたメッセージングクライアントが使用可能であることを検証するための手段を含むこともできる。本装置は、登録されたメッセージングクライアント間の同期を維持するための手段を含むこともできる。本装置は、リソースロケーションキャッシュのマスターバージョンを管理するための手段を含むこともできる。本装置は、マルチキャスト登録データ構造のマスターバージョンを管理するための手段を含むこともできる。
分散コンピューティングシステムにおいてソフトウェアコンポーネント間のプロセス間通信を可能にするためのコンピュータプログラム製品も開示される。コンピュータプログラム製品は、その上に命令を有するコンピュータ可読媒体を含むことができる。命令は、ソフトウェアコンポーネントによるメッセージングシステムへの登録を可能にするためのコードを含むことができる。命令は、登録されたソフトウェアコンポーネント間のユニキャスト通信を可能にするためのコードを含むこともできる。命令は、ソフトウェアコンポーネントによってマルチキャストイベントの登録を可能にするためのコードを含むこともできる。命令は、登録されたソフトウェアコンポーネント間のマルチキャスト通信を可能にするためのコードを含むこともできる。
分散コンピューティングシステムにおいてソフトウェアコンポーネント間のプロセス間通信を可能にするためのコンピュータプログラム製品が開示される。コンピュータプログラム製品は、その上に命令を有するコンピュータ可読媒体を含むことができる。命令は、分散コンピューティングシステム内で新しいメッセージングクライアントを発見するためのコードを含むことができる。命令は、登録されたメッセージングクライアントが使用可能であることを検証するためのコードを含むこともできる。命令は、登録されたメッセージングクライアント間の同期を維持するためのコードを含むこともできる。命令は、リソースロケーションキャッシュのマスターバージョンを管理するためのコードを含むこともできる。命令は、マルチキャスト登録データ構造のマスターバージョンを管理するためのコードを含むこともできる。
本開示は、メッセージのメッセージユニキャストおよびマルチキャスト(ブロードキャストを含む)が可能なメッセージングレイヤを提供する分散ソフトウェアアーキテクチャに関する。メッセージングシステムは、システムの分散性質を隠すこと、論理名を物理アドレスに解決するための方法を提供すること、ならびにネットワーク時間を分散モジュールに分配し、分散モジュールがまだ使用可能であることを検証することが可能である。
本明細書に記載のいくつかの態様の利点は、システムの分散性質を隠すことが可能なソフトウェアの共通のレイヤを提供するために、多くの様々なシステム(たとえば、*NIX、Sun Solaris、RTOS、DSP)に移植できるメッセージングシステムである。これは、柔軟なソフトウェアアーキテクチャを提供する。記載のソフトウェアコンポーネントは、他のコンポーネントについての知識なしにハードウェア/ソフトウェアアーキテクチャ内で随所に移動することができる。
本明細書に記載のメッセージングシステムは、ソフトウェアコンポーネント間のユニキャスト、マルチキャストまたはブロードキャストメッセージのうちの少なくとも1つを実行する能力を提供する単一の統一インターフェースを提供することができる。さらに、ユニキャスト、マルチキャスト、またはブロードキャストメッセージのうちの少なくとも1つは、肯定応答されることができる。マルチキャストメッセージ受信者は、送信者にとって未知とすることができる。これはマルチキャストメッセージの送信者を受信者から切り離す。この切り離しは、適切に進化する非常に柔軟なソフトウェアアーキテクチャを構築することを可能にする。受信者は、送信者を変更する必要なしに自由に往来することができる。これは、イベント駆動型有限状態機械ソフトウェア開発モデルに好適である。
メッセージングシステム中のすべての、またはいくつかのソフトウェアコンポーネントは、論理名によって特定できる。論理名のシステム全体にわたるロケーションは、ソフトウェアコンポーネントがメッセージングシステムに登録する実行時に構築されることができる。この登録は、新しいエントリを名前キャッシュに入れさせることができる。新しいエントリは、名前キャッシュに追加されると、メッセージングソフトウェアを実行することが可能なすべてのハードウェアエンティティにもブロードキャストされることができる。キャッシュが変更されるたびに、シーケンス番号がキャッシュの現在のレベルを表すためにインクリメントされる。このシーケンス番号は、すべてのハードウェアエンティティが矛盾の無い名前キャッシュを有することを確認するために、ハートビート動作中に使用されることができる。効率のために、名前キャッシュの更新は、フル更新またはインクリメンタル更新のいずれかとすることができる。メッセージングシステムは、フル更新のほうが速くなるほど要求側が古くない限り、インクリメンタル更新を得ようとするように構成され得る。
特定のコンポーネントに送信されるすべてのメッセージは、コンポーネントの論理名を利用することができる。メッセージングシステム自体は、メッセージが送信のために処理されているときに論理名を物理的ロケーションに変換することができる。この特徴は、システムの分散性質を隠し、コンポーネントがいかなるソフトウェアにも影響を及ぼすことなくシステム内で移動することを可能にする。
分散ハードウェアアーキテクチャ上で使用されているとき、メッセージングレイヤは、すべての必要とされるコンポーネントが応答していることを確認するために「ハートビート」機構を提供することもできる。ハートビートメッセージは、マスターネットワーク時間と、ならびに名前キャッシュを表す整数と、を含むことができる。ネットワーク時間は、システム中のすべてエンティティの時間同期をとるために使用されることができる。名前キャッシュシーケンス番号は、スレーブキャッシュの各々が最新であるか否かを判断するために使用されることができる。古いと判断されたキャッシュは、それらをマスターと再び同期をとるためにフル更新またはインクリメンタル更新を要求することができる。
メッセージングレイヤは、(Sun Solarisベースのサーバのような)単一のオペレーティングシステムタイプの環境で、または、遠隔通信装置に特有の分散マルチCPU環境内で使用できるようにも構成可能である。この能力は、1つの環境で書かれたソフトウェアに、再コンパイルのみで異なる環境において使用されることを許す。この能力は、メッセージングレイヤの上に構築されたソフトウェアに非常に高いレベルの移植性を与える。
図1に分散コンピューティングシステム100を示す。分散コンピューティングシステム100は、通信バス104を介して互いに電子通信している複数のハードウェアユニット102を含む。ハードウェアユニット102は遠隔通信装置およびデータ通信装置で利用されることができる。たとえば、ハードウェアユニット102は、ルータ、スイッチ、基地局などの中に含まれている様々な処理モジュールまたはボードとすることができる。ハードウェアユニット102は、1つ以上のタスクを実行するように協働する様々なソフトウェアコンポーネント106を含む。
メッセージングシステム108は、分散コンピューティングシステム100内に実施される。メッセージングシステム108は、メッセージングサーバ110aと、1つ以上のメッセージングクライアント110bとを含む。「メッセージングエンティティ」110という用語は、本明細書では、メッセージングサーバ110aまたはメッセージングクライアント110bのいずれかを指すために使用されることができる。
メッセージングシステム108は、分散コンピューティングシステム100内のソフトウェアコンポーネント106に互いに通信することを許す。ソフトウェアコンポーネント106は有限状態機械とすることができ、メッセージングシステム108の目的は、通信している有限状態機械を同期状態に保つこととすることができる。
ソフトウェアコンポーネント106間の通信は、ユニキャスト、マルチキャスト、またはブロードキャストとすることができる。有利なことに、メッセージングシステム108は、分散コンピューティングシステム100の分散性質を隠すことが可能である。分散コンピューティングシステム100内のソフトウェアコンポーネント106は、物理アドレスの代わりに論理名によって特定されることができる。したがって、ソフトウェアコンポーネント106は、分散コンピューティングシステム100のトポロジ内のそれらのそれぞれのロケーションにかかわらず、互いに通信することが可能である。
メッセージングサーバ110aは、リソースロケーションキャッシュのマスターバージョン114aとマルチキャスト登録データ構造のマスターバージョン116aとを管理する。メッセージングクライアント110bの各々は、リソースロケーションキャッシュのローカルコピー114bと、マルチキャスト登録データ構造のローカルコピー116bとを用いて作動する。
各メッセージングエンティティ110(すなわち、メッセージングサーバ110aまたはメッセージングクライアント110bのいずれか)は、分散コンピューティングシステム100内のソフトウェアコンポーネント106にメッセージングシステム108に登録することを許すように構成されることができる。各メッセージングエンティティ110はまた、登録されたソフトウェアコンポーネント106間の通信を可能にすることができる。
これらの機能を実行することに加えて、メッセージングサーバ110aは、分散コンピューティングシステム100内で新しいメッセージングクライアント110bを発見するようにも構成されることができる。メッセージングサーバ110aは、登録されたメッセージングクライアント110bが使用可能であることを検証することもできる。メッセージングサーバ110aは、登録されたメッセージングクライアント110b間の同期を維持することもできる。メッセージングサーバ110aは、リソースロケーションキャッシュのマスターバージョン114aとマルチキャスト登録データ構造のマスターバージョン116aとを管理することもできる。
図2は、ソフトウェアコンポーネント106がメッセージングシステム108にどのように登録することができるかを示す一例を示す。ソフトウェアコンポーネント106は、登録メッセージ222をメッセージングサーバ110aに送信することができる。登録メッセージ222は、ソフトウェアコンポーネント106の物理アドレス224を含むことができる。登録メッセージ222は、ソフトウェアコンポーネント106用の論理名226を含むこともできる。登録メッセージ222は、論理名226用の1つ以上のエイリアス228を含むこともできる。
登録メッセージ222の受信に応答して、メッセージングサーバ110aは、リソースロケーションキャッシュのマスターバージョン114a中にソフトウェアコンポーネント106用のエントリ230を生成することができる。該エントリ230は、ソフトウェアコンポーネント106の物理アドレス224と、ソフトウェアコンポーネント106の論理名226と、論理名226用のエイリアス228とを関連付けることができる。
メッセージングサーバ110aは、ブロードキャストメッセージ232をメッセージングシステム108内のすべてメッセージングクライアント110bに送信することもできる。ブロードキャストメッセージ232は、リソースロケーションキャッシュのマスターバージョン114aに追加されたエントリ230を含むことができる。ブロードキャストメッセージ232の受信に応答して、各メッセージングクライアント110bは、そのリソースロケーションキャッシュのローカルコピー114bを、リソースロケーションキャッシュのマスターバージョン114aに追加されたエントリ230を含むように更新することができる。
メッセージングサーバ110aは、登録コンポーネント234を有して示されている。登録コンポーネント234は、ソフトウェアコンポーネント106によるメッセージングシステム108への登録を可能にするように構成されることができる。より詳細には、登録コンポーネント234は、登録メッセージ222を処理し、適切なエントリ230をリソースロケーションキャッシュのマスターバージョン114aに追加し、エントリ230をもつブロードキャストメッセージ232をメッセージングシステム108内のすべてのメッセージングクライアント110bに送信するように構成されることができる。
図2の例では、ソフトウェアコンポーネント106は、登録メッセージ222をメッセージングサーバ110aに送信する。代替として、ソフトウェアコンポーネント106は、登録メッセージ222をメッセージングクライアント110bに送信することができ、メッセージングクライアント110bは、関連する情報(たとえば、物理アドレス224、論理名226、およびエイリアス228)をメッセージングサーバ110aに転送することができる。
図3は、メッセージングエンティティ110(すなわち、メッセージングサーバ110aまたはメッセージングクライアント110bのいずれか)が、登録されたソフトウェアコンポーネント106間のユニキャスト通信をどのように可能にするかを示す一例を示す。この例では、メッセージングシステム108内のソフトウェアコンポーネント106aが、メッセージングシステム108内の別のソフトウェアコンポーネント106bによって最終的に受信されるメッセージ336を送信すると仮定する。ただし、送信者ソフトウェアコンポーネント106aは、受信者ソフトウェアコンポーネント106bの物理アドレス224を知らなくてよい。代わりに、送信者ソフトウェアコンポーネント106aによって送信されるメッセージ336の宛先は、ソフトウェアコンポーネント106bの論理名226によって特定される。
送信者ソフトウェアコンポーネント106aからメッセージ336を受信すると、メッセージングエンティティ110は、受信者ソフトウェアコンポーネント106bの論理名226を受信者ソフトウェアコンポーネント106bの物理アドレス224に解決する。これは、リソースロケーションキャッシュ114(メッセージングエンティティ110がメッセージングサーバ110aであるならば、リソースロケーションキャッシュのマスターバージョン114a、または、メッセージングエンティティ110がメッセージングクライアント110bであるならば、リソースロケーションキャッシュのローカルコピー114bのいずれか)を参照することによって達成できる。そして、メッセージングエンティティ110は、当該メッセージ336を受信者ソフトウェアコンポーネント106bに転送する。
メッセージングエンティティ110は、リソースロケーションサーバ340を有して示されている。リソースロケーションサーバ340は、登録されたソフトウェアコンポーネント106間のユニキャスト通信を可能にするように構成されることができる。より詳細には、リソースロケーションサーバ340は、送信者ソフトウェアコンポーネント106aからのメッセージ336を処理し、受信者ソフトウェアコンポーネント106bの論理名226を受信者ソフトウェアコンポーネント106bの物理アドレス224に解決し、メッセージ336を受信者ソフトウェアコンポーネント106bに転送するように構成されることができる。
受信者ソフトウェアコンポーネント106bは、メッセージ336の受信に肯定応答することができる。受信者ソフトウェアコンポーネント106bは、肯定応答メッセージ338をメッセージングエンティティ110に返送することができる。メッセージングエンティティ110は、該肯定応答メッセージ338を送信者ソフトウェアコンポーネント106aに転送することができる。
メッセージングシステム108は、分散コンピューティングシステム100においてソフトウェアコンポーネント106間のマルチキャスト通信を可能にする。図4は、ソフトウェアコンポーネント106がマルチキャストイベントをどのように登録することができるかを示す一例を示す。
ソフトウェアコンポーネント106は、マルチキャスト登録メッセージ442をメッセージングサーバ110aに送信することができる。マルチキャスト登録メッセージ442は、当該ソフトウェアコンポーネント106の物理アドレス224を含むことができる。マルチキャスト登録メッセージ442は、当該ソフトウェアコンポーネント106が登録しているマルチキャストイベントの論理名444を含むこともできる。
マルチキャスト登録メッセージ442の受信に応答して、メッセージングサーバ110aは、マルチキャスト登録データ構造のマスターバージョン116a中にソフトウェアコンポーネント106用のエントリ446を生成することができる。このエントリ446は、ソフトウェアコンポーネント106の物理アドレス224、およびソフトウェアコンポーネント106が登録しているマルチキャストイベントの論理名444を関連付ける。
メッセージングサーバ110aは、ブロードキャストメッセージ448をメッセージングシステム108内のすべてメッセージングクライアント110bに送信することもできる。ブロードキャストメッセージ448は、マルチキャスト登録データ構造のマスターバージョン116aに追加されたエントリ446を含むことができる。ブロードキャストメッセージ448の受信に応答して、各メッセージングクライアント110bは、マルチキャスト登録データ構造のマスターバージョン116aに追加されたエントリ446を含むように、そのマルチキャスト登録データ構造116aのローカルコピーを更新することができる。
メッセージングサーバ110aは、マルチキャスト登録コンポーネント450を有して示されている。マルチキャスト登録コンポーネント450は、ソフトウェアコンポーネント106によるマルチキャストイベントの登録を可能にするように構成されることができる。より詳細には、マルチキャスト登録コンポーネント450は、マルチキャスト登録メッセージ442を処理し、適切なエントリ446をマルチキャスト登録データ構造のマスターバージョン116aに追加し、エントリ446をもつブロードキャストメッセージ448をメッセージングシステム108内のすべてのメッセージングクライアント110bに送信するように構成できる。
図4の例では、ソフトウェアコンポーネント106は、マルチキャスト登録メッセージ442をメッセージングサーバ110aに送信する。代替として、ソフトウェアコンポーネント106は、マルチキャスト登録メッセージ442をメッセージングクライアント110bに送信することができ、メッセージングクライアント110bは、関連する情報(たとえば、ソフトウェアコンポーネント106の物理アドレス224、およびソフトウェアコンポーネント106が登録しているマルチキャストイベントの論理名444)をメッセージングサーバ110aに転送することができる。
図5は、メッセージングエンティティ110(すなわち、メッセージングサーバ110aまたはメッセージングクライアント110bのいずれか)が登録されたソフトウェアコンポーネント106間のマルチキャスト通信をどのように可能にするかを示す一例を示す。この例では、メッセージングシステム108内のソフトウェアコンポーネント106aが、メッセージングシステム108内の複数のソフトウェアコンポーネント106b〜106dによって最終的に受信されるマルチキャストメッセージ552を送信すると仮定する。ただし、送信者ソフトウェアコンポーネント106aは、受信者ソフトウェアコンポーネント106b〜106dの物理アドレス224b〜224dを知らなくてよい。代わりに、送信者ソフトウェアコンポーネント106aによって送信されたマルチキャストメッセージ552の宛先は、マルチキャストイベント用の論理名444によって特定される。
送信者ソフトウェアコンポーネント106aからマルチキャストメッセージ552を受信すると、メッセージングエンティティ110は、マルチキャストイベントを登録したソフトウェアコンポーネント106b〜106dの物理アドレス224b〜224dを特定する。これは、マルチキャスト登録データ構造116を参照することによって達成できる。そして、メッセージングエンティティ110は、マルチキャストメッセージ552を受信者ソフトウェアコンポーネント106b〜106dに転送する。
受信者ソフトウェアコンポーネント106b〜106dの各々は、肯定応答メッセージ554をメッセージングエンティティ110に返送することによって、マルチキャストメッセージ552に応答することができる。マルチキャストメッセージ552を受信するようになされたソフトウェアコンポーネント106b〜106dのすべてが肯定応答メッセージ554で応答した後、次いで、メッセージングエンティティ110は、単一の肯定応答メッセージ556を送信者ソフトウェアコンポーネント106aに返送する。
メッセージングエンティティ110は、マルチキャスト通信コンポーネント558を有して示されている。マルチキャスト通信コンポーネント558は、登録されたソフトウェアコンポーネント106間のマルチキャスト通信を可能にするように構成されることができる。より詳細には、マルチキャスト通信コンポーネント558は、送信者ソフトウェアコンポーネント106aから受信されたマルチキャストメッセージ552を処理し、マルチキャストイベントを登録したソフトウェアコンポーネント106b〜106dの物理アドレス224b〜224dを特定し、マルチキャストメッセージ552をこれらの物理アドレス224b〜224dに転送するように構成されることができる。マルチキャスト通信コンポーネント558は、受信者ソフトウェアコンポーネント106b〜106dから受信された肯定応答メッセージ554を処理し、単一の肯定応答メッセージ556を送信者ソフトウェアコンポーネント106aに返送するようにも構成されることができる。
図6は、メッセージングサーバ110aによって実行されることができる機能のいくつかを示す。メッセージングサーバ110aは、検証コンポーネント680を有して示されている。検証コンポーネント680は、登録されたメッセージングクライアント110bが使用可能であることを検証するように構成されることができる。
メッセージングサーバ110aは、ハートビートメッセージ662をメッセージングシステム108中のすべてのメッセージングクライアント110bに周期的に送信することができる。すべての登録されたメッセージングクライアント110bは、ハートビート応答664をメッセージングサーバ110aに送信することによって、受信された各ハートビートメッセージ662に応答するように構成されることができる。特定のメッセージングクライアント110aが送信されたハートビートメッセージ662に応答し続ける限り、メッセージングサーバ110aは、メッセージングクライアント110bがまだ使用可能であると結論付けることができる。ただし、特定のメッセージングクライアント110bが連続ハートビートメッセージ662(たとえば、3つの連続ハートビートメッセージ662)のうちのいくつかに応答することができない場合、メッセージングサーバ110aは、メッセージングクライアント110bがもはや使用可能でないと結論付けることができる。
メッセージングサーバ110aはまた、同期コンポーネント682を有して示されている。同期コンポーネント682は、登録されたメッセージングクライアント110b間の同期を維持するように構成されることができる。登録されたメッセージングクライアント110b間の同期を維持するために、メッセージングサーバ110aによって送信されたハートビートメッセージ662は、メッセージングシステム108のためのマスター時間666を含むことができる。各メッセージングクライアント110bは、ハートビートメッセージ662中で受信されたマスター時間666に基づいて、そのローカル時間668を更新する(すなわち、ローカル時間668がマスター時間666と同じになるようにする)ことができる。
メッセージングサーバ110aはまた、キャッシュマネージャ684を有して示されている。キャッシュマネージャ684は、リソースロケーションキャッシュのマスターバージョン114aを管理するように構成されることができる。キャッシュマネージャ684は、リソースロケーションキャッシュ114aに対する変更が行なわれるときはいつでも、メッセージングシステム108内のメッセージングクライアント110bに通知するように構成されることができる。そして、各メッセージングクライアント110bは、そのリソースロケーションキャッシュのローカルコピー114bを更新することができる。
メッセージングサーバ110aによって送信されたハートビートメッセージ662は、キャッシュシーケンス番号672aを含むことができる。キャッシュシーケンス番号672aは、リソースロケーションキャッシュのローカルコピー114bがリソースロケーションキャッシュのマスターバージョン114aに対して最新であることを保証するために、メッセージングクライアント110bによって使用されることができる。
リソースロケーションキャッシュのマスターバージョン114aが更新されるときはいつでも、メッセージングサーバ110aはキャッシュシーケンス番号672aをインクリメントすることができる。各メッセージングクライアント110bは、ローカルキャッシュシーケンス番号672bを、ハートビートメッセージ662中に含まれるマスターキャッシュシーケンス番号672aと比較することができる。ローカルキャッシュシーケンス番号672bがマスターキャッシュシーケンス番号672aと一致する場合には、メッセージングクライアント110bは、リソースロケーションキャッシュのローカルコピー114bが最新であると結論付けることができる。しかしながら、ローカルキャッシュシーケンス番号672bがマスターキャッシュシーケンス番号672aと一致しない場合には、メッセージングクライアント110bは、リソースロケーションキャッシュのローカルコピー614bが古いと結論付けることができる。そして、メッセージングクライアント110bは、更新要求674をメッセージングサーバ110aに送信する。
メッセージングクライアント110bから更新要求674を受信すると、メッセージングサーバ110aは、リソースロケーションキャッシュ更新676をメッセージングクライアント110bに送信する。リソースロケーションキャッシュ更新676は、フル更新とすることができる、すなわち、リソースロケーションキャッシュのマスターバージョン114a全体のコピーがメッセージングクライアント110bに送信されることができる。代替として、リソースロケーションキャッシュ更新676は、インクリメンタル更新とすることができる、すなわち、ローカルキャッシュ114bが最後に更新されてから行われた上記キャッシュ114aに対する変更のみが送信されることができる。
メッセージングサーバ110aはまた、クライアント発見コンポーネント678を有して示されている。クライアント発見コンポーネント678は、分散コンピューティングシステム100内の新しいメッセージングクライアント110bを発見するように構成されることができる。ハートビートメッセージ662を分散コンピューティングシステム100中のすべてのメッセージングクライアント110bに送信することによって、新しいメッセージングクライアント110bは、メッセージングサーバ110aの身元(identity)を判断することが可能である。そして、新しいメッセージングクライアント110bは、メッセージングシステム108に登録することに関して(たとえば、メッセージングサーバ110aに応答664を送信することによって)メッセージングサーバ110aと交信することができる。
メッセージングサーバ110aはまた、マルチキャスト登録マネージャ686を有して示されている。マルチキャスト登録マネージャ686は、マルチキャスト登録データ構造のマスターバージョン116aを管理するように構成されることができる。マルチキャスト登録マネージャ686は、マルチキャスト登録データ構造116aに対して変更が行われるときはいつでも、メッセージングシステム108内のメッセージングクライアント110bに通知するように構成されることができる。そして、各メッセージングクライアント110bは、そのマルチキャスト登録データ構造のローカルコピー116bを更新する。
図7は、分散コンピューティングシステム100内に実施されるメッセージングシステム108内のメッセージングサーバ110aによって実行されることができるプロセス間通信のための方法700の一例を示す。
図示の方法700によれば、メッセージングサーバ110aは、分散コンピューティングシステム100内で新しいメッセージングクライアント110bを発見する702。これは、ハートビートメッセージ662を分散コンピューティングシステム100中のすべてのメッセージングクライアント110bに送信することによって達成されることができる。ハートビートメッセージ662を受信すると、新しいメッセージングクライアント110bは、メッセージングサーバ110aの身元を判断することが可能である。そして、新しいメッセージングクライアント110bは、メッセージングシステム108に登録することに関してメッセージングサーバ110aと交信することができる。
メッセージングサーバ110aは、登録されたメッセージングクライアント110bが使用可能であることを検証することもできる704。これは、ハートビートメッセージ662を分散コンピューティングシステム100中のすべてのメッセージングクライアント110bに周期的に送信することによって達成されることができる。すべての登録されたメッセージングクライアント110bは、応答664をメッセージングサーバ110aに送信することによって、受信された各ハートビートメッセージ662に応答するように構成されることができる。特定のメッセージングクライアント110aが、送信されたハートビートメッセージ662に応答し続ける限り、メッセージングサーバ110aは、当該メッセージングクライアント110bがまだ使用可能であると結論付けることができる。しかしながら、特定のメッセージングクライアント110bが連続するハートビートメッセージ662のうちのいくつか(たとえば、3つの連続するハートビートメッセージ662)に応答することができない場合には、メッセージングサーバ110aは、当該メッセージングクライアント110bがもはや使用可能でないと結論付けることができる。
メッセージングサーバ110aは、登録されたメッセージングクライアント110bの間の同期を維持することもできる706。メッセージングサーバ110aによって送信されたハートビートメッセージ662は、メッセージングシステム108用のマスター時間666を含むことができる。各メッセージングクライアント110bは、ハートビートメッセージ662中で受信されたマスター時間666に基づいて、そのローカル時間668を更新することができる。
メッセージングサーバ110aは、メッセージングリソースロケーションキャッシュのマスターバージョン114aを管理することもできる708。メッセージングサーバ110aは、メッセージングリソースロケーションキャッシュのマスターバージョン114aに対して行われる変更(たとえば、新しいソフトウェアコンポーネント106がメッセージングシステム108に登録するとき)に関して、メッセージングシステム108内のメッセージングクライアント110bに通知することができる。
メッセージングサーバ110aは、マルチキャスト登録データ構造のマスターバージョン116aを管理することもできる。メッセージングサーバ110aは、マルチキャスト登録データ構造のマスターバージョン116aに対して行われる変更(たとえば、ソフトウェアコンポーネント106がマルチキャストイベントを登録するとき)に関して、メッセージングシステム108内のメッセージングクライアント110bに通知することができる。
上述の図7の方法700は、図7Aに示す手段(means-plus-function)ブロック700Aに対応する様々なハードウェア、および/または1つまたは複数のソフトウェアコンポーネント、および/または1つまたは複数のモジュールによって実行されることができる。言い換えれば、図7に示すブロック702〜710は、図7Aに示す手段ブロック702A〜710Aに対応する。
図8は、分散コンピューティングシステム100内に実施されるメッセージングシステム108内のメッセージングエンティティ110(すなわち、メッセージングサーバ110aまたはメッセージングクライアント110bのいずれか)によって実行されることができるプロセス間通信のための方法800の一例を示す。
図示の方法800によれば、メッセージングエンティティ110は、ソフトウェアコンポーネント106によるメッセージングシステム108への登録を可能にすることができる802。ソフトウェアコンポーネント106は、登録メッセージ222をメッセージングエンティティ110に送信する。登録メッセージ222の受信に応答して、メッセージングエンティティ110は、ソフトウェアコンポーネント106用のエントリ230に、リソースロケーションキャッシュのマスターバージョン114a中に生成させられることができる。エントリ230は、ソフトウェアコンポーネント106の物理アドレス224、ソフトウェアコンポーネント106の論理名226、および該論理名226について存在する全てのエイリアス228を関連付けることができる。メッセージングシステム108内のすべてのメッセージングクライアント110bは、リソースロケーションキャッシュのマスターバージョン114aに追加されたエントリ230について通知されることができる。
メッセージングエンティティ110はまた、登録されたソフトウェアコンポーネント106間のユニキャスト通信を可能にすることができる804。メッセージングエンティティ110は、宛先が受信者ソフトウェアコンポーネント106bの論理名226によって特定されたメッセージ336を受信することができる。メッセージングエンティティ110は、受信者ソフトウェアコンポーネント106bの論理名226を、受信者ソフトウェアコンポーネント106bの物理アドレス224に解決することができる。これは、リソースロケーションキャッシュ114を参照することによって達成できる。そして、メッセージングエンティティ110は、メッセージ336を受信者ソフトウェアコンポーネント106bの物理アドレス224に転送する。
メッセージングエンティティ110はまた、分散コンピューティングシステム100内のソフトウェアコンポーネント106によるマルチキャストイベントの登録を可能にすることができる806。マルチキャスト登録メッセージ442の受信に応答して、メッセージングエンティティ110は、ソフトウェアコンポーネント106用のエントリ446に、マルチキャスト登録データ構造のマスターバージョン116a中に生成させられることができる。該エントリ446は、ソフトウェアコンポーネント106の物理アドレス224、およびソフトウェアコンポーネント106が登録しているマルチキャストイベントの論理名444を関連付けることができる。
メッセージングエンティティ110はまた、登録されたソフトウェアコンポーネント106間のマルチキャスト通信を可能にすることができる808。マルチキャストイベント用の論理名444を含むマルチキャストメッセージ552を受信すると、メッセージングエンティティ110は、マルチキャストイベントを登録したソフトウェアコンポーネント106b〜106dの物理アドレス224b〜224dを特定することができる。これは、マルチキャスト登録データ構造116を参照することによって達成されることができる。そして、メッセージングエンティティ110は、マルチキャストメッセージ552を適切な受信者ソフトウェアコンポーネント106b〜106dに転送することができる。
上述の図8の方法800は、図8Aに示す手段ブロック800Aに対応する様々なハードウェア、および/または1つまたは複数のソフトウェアコンポーネント、および/または1つまたは複数のモジュールによって実行されることができる。言い換えれば、図8に示すブロック802〜808は、図8Aに示す手段ブロック802A〜808Aに対応する。
図9は、本明細書に記載のメッセージングシステムがUNIX(登録商標)ベースのシステム上でどのように実施されるかについての例を示す。図示の例では、メッセージングシステムは、イーサネット(登録商標)バックプレーン上に階層化(layered)されており、ユーザカーネルインターフェースがソケットレイヤを使用して実施される。本アーキテクチャは、UNIXロード可能カーネルモジュールに、メッセージングシステムの一部となり、カーネルコンポーネントとユーザスペースコンポーネントとの間の区分をぼやかすことを許す。メッセージングシステムは、メッセージングカーネルモジュール902と、リソースロケーションサーバ904と、リソースロケーションキャッシュ906と、マルチキャストメッセージ肯定応答処理コンポーネント908とを含む。
図10は、本明細書に記載のメッセージングシステムがSun Solarisシステム上でどのように実施されるかについての例を示す。本システムは、単一のOSシステム上で実行していても、コンポーネント間で同じメッセージングインターフェースを維持することができる。本アーキテクチャでは、ハートビートすることおよびローカルキャッシュ保守のようなメッセージング機能は、自動的に使用不能にできる。メッセージングカーネルモジュールが再加工され、ユーザスペースソフトウェアがLinux(登録商標)用に再コンパイルされたならば、同じソフトウェアシステムはLinuxベースのシステム上で動作することができる。メッセージングシステムは、制御メッセージングコンポーネント1002と、リソースロケーションキャッシュ1006と、マルチキャストメッセージ肯定応答処理コンポーネント1008とを含む。
図11は、本明細書に記載のメッセージングシステムがリアルタイムオペレーティングシステム(RTOS)上でどのように実施されるかについての例を示す。メッセージングシステムは、リソースロケーションサーバ1104と、リソースロケーションキャッシュ1106と、マルチキャストメッセージ肯定応答処理コンポーネント1108とを含む。
すべてのメッセージ宛先が動的に構築され、解決されることができるので、冗長性が本システム内でサポートされることもできる。このことは、特定のハードウェアユニットが故障したとき、メッセージングシステムがそれらの論理名を登録せず、任意の分散キャッシュを更新することができることを意味する。取り替えがオンラインで行われるとき、新しいユニットは、同じ論理名ではあるが新しい物理的ロケーションに登録することができる。アプリケーションへのいかなる変更もなしに、新しいユニットは、システムに完全に参加する準備ができている。スタンバイユニットは、いくつかの論理名のためのスタンバイユニットレジスタを持つことによって「ホット」に保つこともできる。これにより、アクティブユニットに、(名前を解決することが可能であることによって)それらの存在を判断し、また、スタンバイユニットを同期状態に保つために更新メッセージをそれに送信することを許す。スタンバイユニットは、アクティブユニットが死んだことを検出したとき、そのアクティブユニットの論理名のすべてを登録することができる。これにより、ホットとウォームの両方の冗長性を実施することが可能になる。
図12は、上述の分散コンピューティングシステム100においてソフトウェアコンポーネント106間のプロセス間通信を可能にするための装置のハードウェア実装の一部を示す。回路装置は、参照番号1200によって示され、ルータ、スイッチ、基地局などに含まれている様々な処理モジュール中またはボード中に実装されることができる。
装置1200は、いくつかの回路を連結する中央データバス1202を備える。回路は、CPU(中央処理装置)またはコントローラ1204と、受信回路1206と、送信回路1208と、メモリユニット1210とを含む。
装置1200が無線デバイスの一部である場合、受信回路1206および送信回路1208はRF(無線周波数)回路に接続できるが、それは図面に示されていない。受信回路1206は、受信信号をデータバス1202に送信する前に、それらの信号を処理し、バッファリングする。一方、送信回路1208は、データバス1202からのデータをデバイス1200から送信する前に、そのデータを処理し、バッファリングする。装置1200が無線デバイスの一部でない場合、受信回路1206および送信回路1208は、有線接続を介して、他の装置(たとえば、他のハードウェアユニット102)からデータを受信し、他の装置にデータを送信するように構成されることができる。CPU/コントローラ1204は、データバス1202のデータ管理の機能と、さらには、メモリユニット1210の命令内容を実行することを含む一般的なデータ処理の機能とを実行する。
図12に示すように別々に配設する代わりに、代替として、送信回路1208および受信回路1206はCPU/コントローラ1204の一部とすることができる。
メモリユニット1210は、参照番号1212によって全体的に示されるモジュールおよび/または命令のセットを含む。本実施形態において、モジュール/命令1212は、とりわけ、ソフトウェアコンポーネント106によるメッセージングシステム108への登録を可能にするための登録機能1234と、登録されたソフトウェアコンポーネント106間のユニキャスト通信を可能にするためのユニキャスト通信機能1218と、ソフトウェアコンポーネント106によるマルチキャストイベントの登録を可能にするためのマルチキャスト登録機能1220と、登録されたソフトウェアコンポーネント106間のマルチキャスト通信を可能にするためのマルチキャスト通信機能1222と、分散コンピューティングシステム100内で新しいメッセージングクライアント110bを発見するための発見機能1224と、登録されたメッセージングクライアント110bが使用可能であることを検証するための検証機能1226と、登録されたメッセージングクライアント110b間の同期を維持するための同期機能1228と、リソースロケーションキャッシュ1214を管理するためのキャッシュ管理機能1230と、マルチキャスト登録データ構造1216を管理するためのマルチキャスト管理機能1232と、を含む。登録機能1234、ユニキャスト通信機能1218、マルチキャスト登録機能1220、マルチキャスト通信機能1222、発見機能1224、検証機能1226、同期機能1228、キャッシュ管理機能1230、およびマルチキャスト管理機能1232は、図1〜図11において図示および説明したプロセスステップを実行するためのコンピュータ命令またはコードを含む。
エンティティに特定の固有の命令は、選択的に実施できる。たとえば、装置1200がメッセージングクライアント110bの機能を提供する場合、登録機能1234、ユニキャスト通信機能1218、マルチキャスト登録機能1220、およびマルチキャスト通信機能1222が実施されることができる。装置1200がメッセージングサーバ110aの機能を提供する場合、図示の機能のすべてが実施されることができる。
さらに、リソースロケーションキャッシュ1214およびマルチキャスト登録データ構造1216は、メモリユニット1210中に含められることができる。代替として、リソースロケーションキャッシュ1214およびマルチキャスト登録データ構造1216は、上記ユニット1210以外の1つ以上の他のメモリユニット中に記憶されることができる。
本実施形態では、メモリユニット1210はRAM(ランダムアクセスメモリ)回路である。例示的な機能(登録機能1234、ユニキャスト通信機能1218、マルチキャスト登録機能1220、マルチキャスト通信機能1222、発見機能1224、検証機能1226、同期機能1228、キャッシュ管理機能1230、およびマルチキャスト管理機能1232など)は、ソフトウェアルーチン、モジュールおよび/またはデータセットである。メモリユニット1210は、揮発性タイプまたは不揮発性タイプのいずれかとすることができる別のメモリ回路(図示せず)に接続される(tied)ことができる。代替として、メモリユニット1210は、EEPROM(電気的に消去可能なプログラム可能な読出し専用メモリ)、EPROM(電気的にプログラム可能な読出し専用メモリ)、ROM(読出し専用メモリ)、ASIC(特定用途向け集積回路)、磁気ディスク、光ディスク、および当技術分野でよく知られている他のものなど、他の回路タイプとされることができる。
さらに、説明した本発明のプロセスを、当技術分野で知られている任意のコンピュータ可読媒体上で搬送されるコンピュータ可読命令としてコード化することもできることに留意されたい。本明細書および添付の特許請求の範囲において、「コンピュータ可読媒体」という用語は、図12において図示および説明したCPU/コントローラ1204など、実行用の任意のプロセッサに命令を与えることに関与する任意の媒体を指す。そのような媒体は、記憶タイプとすることができ、たとえば、図12中のメモリユニット1210の説明において、同じく前述した揮発性または不揮発性の記憶媒体の形態をとることができる。そのような媒体は、また、伝送タイプとすることができ、同軸ケーブル、銅線、光ケーブル、機械またはコンピュータによって読取り可能な信号を搬送することが可能な音波、電磁波または光波を搬送するエアインターフェースを含むことができる。コンピュータ可読媒体は、装置1200とは別個のコンピュータ製品の一部とすることができる。
本明細書で使用する「判断」という用語は、多種多様な動作を包含し、したがって、「判断」は、計算、算出、処理、導出、調査、探索(たとえば、テーブル、データベースまたは別のデータ構造での探索)、確認などを含むことができる。また、「判断」は、受信(たとえば、情報を受信すること)、アクセス(たとえば、メモリ中のデータにアクセスすること)などを含むことができる。また、「判断」は、解決、選択、選出、確立などを含むことができる。
「に基づいて」という句は、別段に明示されていない限り、「のみに基づいて」を意味しない。言い換えれば、「に基づいて」という句は、「のみに基づいて」と「に少なくとも基づいて」の両方を表す。
上記に加えて、本開示に関連して説明した様々な他の例示的な論理ブロック、モジュールおよび回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ信号(FPGA)または他のプログラマブル論理デバイス、個別ゲートまたはトランジスタロジック、個別ハードウェアコンポーネント、または本明細書に記載の機能を実行するように設計されたその任意の組合せを用いて実施または実行できる。
本開示に関連して説明した方法またはアルゴリズムのステップは、直接ハードウェアか、プロセッサによって実行されるソフトウェアモジュールか、またはその2つの組合せで実施できる。ソフトウェアモジュールは、当技術分野で知られている任意の形式の記憶媒体中に存在することができる。使用できる記憶媒体のいくつかの例には、前述のように、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD−ROMなどがある。ソフトウェアモジュールは、単一の命令、または多数の命令を備えることができ、いくつかの異なるコードセグメント上で、異なるプログラム間で、および複数の記憶媒体にわたって分散できる。記憶媒体は、プロセッサがその記憶媒体から情報を読み取ることができ、その記憶媒体に情報を書き込むことができるように、プロセッサに結合できる。代替として、記憶媒体はプロセッサに一体化することができる。
さらに、図7〜図8によって示されたものなど、本明細書に記載の方法および技法を実行するためのモジュールおよび/または他の適切な手段は、適用可能な場合にモバイルデバイスおよび/または基地局によってダウンロードおよび/または他の方法で取得できることを諒解されたい。たとえば、そのようなデバイスは、本明細書に記載の方法を実行するための手段の転送を可能にするために、サーバに結合できる。
特許請求の範囲は、上記の正確な構成およびコンポーネントに限定されないことを理解されたい。特許請求の範囲を逸脱することなく、本明細書に記載のシステム、方法および装置の構成、動作および詳細において、様々な改変、変更および変形を行うことができる。

Claims (40)

  1. プロセス間通信のための装置であって、
    プロセッサと、
    ソフトウェアコンポーネントによる前記メッセージングシステムへの登録を可能にし、登録されたソフトウェアコンポーネント間のユニキャスト通信を可能にし、ソフトウェアコンポーネントによるマルチキャストイベントの登録を可能にし、登録されたソフトウェアコンポーネント間のマルチキャスト通信を可能にするように構成された、前記プロセッサに結合された回路と、
    を備える装置。
  2. ソフトウェアコンポーネントによる前記メッセージングシステムへの登録を可能にするために、前記プロセッサに結合された前記回路は、前記ソフトウェアコンポーネント用の論理名を決定し、前記ソフトウェアコンポーネント用の物理アドレスを決定し、前記ソフトウェアコンポーネント用の前記論理名と前記ソフトウェアコンポーネント用の前記物理アドレスとを関連付けるエントリをリソースロケーションキャッシュに追加させるようにさらに構成される、請求項1に記載の装置。
  3. 登録されたソフトウェアコンポーネント間のユニキャスト通信を可能にするために、前記プロセッサに結合された前記回路は、ソフトウェアコンポーネントに宛てられたメッセージを受信し、前記ソフトウェアコンポーネントを特定する論理名を物理アドレスに解決し、前記メッセージを前記物理アドレスに送信するようにさらに構成される、請求項1に記載の装置。
  4. ソフトウェアコンポーネントによるマルチキャストイベントの登録を可能にするために、前記プロセッサに結合された前記回路は、マルチキャストイベントに対応するマルチキャスト登録メッセージを受信し、前記ソフトウェアコンポーネントの前記物理アドレスと前記マルチキャストイベント用の論理名とを関連付けるエントリを、マルチキャスト登録データ構造中に生成させるようにさらに構成される、請求項1に記載の装置。
  5. 登録されたソフトウェアコンポーネント間のマルチキャスト通信を可能にするために、前記プロセッサに結合された前記回路は、マルチキャストイベントに対応するマルチキャストメッセージを送信者ソフトウェアコンポーネントから受信し、どのソフトウェアコンポーネントが前記マルチキャストイベントを登録したかをマルチキャスト登録データ構造を参照することによって判断し、前記マルチキャストイベントを登録した前記ソフトウェアコンポーネントに前記マルチキャストメッセージを送信し、前記マルチキャストメッセージを受信した前記ソフトウェアコンポーネントから肯定応答メッセージを受信し、前記送信者ソフトウェアコンポーネントに肯定応答メッセージを送信するようにさらに構成される、請求項1に記載の装置。
  6. プロセス間通信のための装置であって、
    プロセッサと、
    前記分散コンピューティングシステム内で新しいメッセージングクライアントを発見し、登録されたメッセージングクライアントが使用可能であることを検証し、前記登録されたメッセージングクライアント間の同期を維持し、リソースロケーションキャッシュのマスターバージョンを管理し、マルチキャスト登録データ構造のマスターバージョンを管理するように構成された、前記プロセッサに結合された回路と、
    を備える装置。
  7. 新しいメッセージングクライアントを発見し、登録されたメッセージングクライアントが使用可能であることを検証し、前記登録されたメッセージングクライアント間の同期を維持するために、前記プロセッサに結合された前記回路は、ハートビートメッセージを前記メッセージングシステム内のメッセージングクライアントに送信し、前記ハートビートメッセージに対する応答を処理するようにさらに構成される、請求項6に記載の装置。
  8. 前記リソースロケーションキャッシュの前記マスターバージョンを管理するために、前記プロセッサに結合された前記回路は、前記リソースロケーションキャッシュに対して変更が行われるときはいつでも、前記メッセージングシステム内のメッセージングクライアントに通知するようにさらに構成され、前記マルチキャスト登録データ構造の前記マスターバージョンを管理するために、前記プロセッサに結合された前記回路は、前記マルチキャスト登録データ構造に対して変更が行われるときはいつでも、前記メッセージングシステム内のメッセージングクライアントに通知するようにさらに構成される、請求項6に記載の装置。
  9. メッセージングシステム内のメッセージングエンティティによって実行される、プロセス間通信のための方法であって、
    ソフトウェアコンポーネントによる前記メッセージングシステムへの登録を可能にすることと、
    登録されたソフトウェアコンポーネント間のユニキャスト通信を可能にすることと、
    ソフトウェアコンポーネントによるマルチキャストイベントの登録を可能にすることと、
    登録されたソフトウェアコンポーネント間のマルチキャスト通信を可能にすることと、
    を含む方法。
  10. ソフトウェアコンポーネントによる前記メッセージングシステムへの登録を可能にすることは、
    前記ソフトウェアコンポーネント用の論理名を決定することと、
    前記ソフトウェアコンポーネント用の物理アドレスを決定することと、
    前記ソフトウェアコンポーネント用の前記論理名と前記ソフトウェアコンポーネント用の前記物理アドレスとを関連付けるエントリを、リソースロケーションキャッシュに追加させることと、
    を含む、請求項9に記載の方法。
  11. 登録されたソフトウェアコンポーネント間のユニキャスト通信を可能にすることは、
    論理名によって特定されるソフトウェアコンポーネントに宛てられたメッセージを受信することと、
    前記論理名を物理アドレスに解決することと、
    前記メッセージを前記物理アドレスに送信することと、
    を含む、請求項9に記載の方法。
  12. ソフトウェアコンポーネントによるマルチキャストイベントの登録を可能にすることは、
    マルチキャストイベントに対応するマルチキャスト登録メッセージを受信することと、
    前記ソフトウェアコンポーネントの前記物理アドレスと前記マルチキャストイベント用の論理名とを関連付けるエントリを、マルチキャスト登録データ構造中に生成させることと、
    を含む、請求項9に記載の方法。
  13. 登録されたソフトウェアコンポーネント間のマルチキャスト通信を可能にすることは、
    マルチキャストイベントに対応するマルチキャストメッセージを、送信者ソフトウェアコンポーネントから受信することと、
    マルチキャスト登録データ構造を参照することによって、どのソフトウェアコンポーネントが前記マルチキャストイベントを登録したかを判断することと、
    前記マルチキャストイベントを登録した前記ソフトウェアコンポーネントに前記マルチキャストメッセージを送信することと、
    前記マルチキャストメッセージを受信した前記ソフトウェアコンポーネントから肯定応答メッセージを受信することと、
    前記送信者ソフトウェアコンポーネントに肯定応答メッセージを送信することと、
    を含む、請求項9に記載の方法。
  14. 分散コンピューティングシステム内に実施されたメッセージングシステム内のメッセージングサーバによって実行される、プロセス間通信のための方法であって、
    前記分散コンピューティングシステム内で新しいメッセージングクライアントを発見することと、
    登録されたメッセージングクライアントが使用可能であることを検証することと、
    前記登録されたメッセージングクライアント間の同期を維持することと、
    リソースロケーションキャッシュのマスターバージョンを管理することと、
    マルチキャスト登録データ構造のマスターバージョンを管理することと、
    を含む方法。
  15. 新しいメッセージングクライアントを発見することと、登録されたメッセージングクライアントが使用可能であることを検証することと、前記登録されたメッセージングクライアント間の同期を維持することとは、
    前記メッセージングシステム内のメッセージングクライアントにハートビートメッセージを送信することと、
    前記ハートビートメッセージに対する応答を処理することと、
    を含む、請求項14に記載の方法。
  16. 前記リソースロケーションキャッシュの前記マスターバージョンを管理することは、前記リソースロケーションキャッシュに対して変更が行われるときはいつでも、前記メッセージングシステム内のメッセージングクライアントに通知することを含み、前記マルチキャスト登録データ構造の前記マスターバージョンを管理することは、前記マルチキャスト登録データ構造に対して変更が行われるときはいつでも、前記メッセージングシステム内のメッセージングクライアントに通知することを含む、請求項14に記載の方法。
  17. 分散コンピューティングシステムにおいてソフトウェアコンポーネント間のプロセス間通信を可能にするように構成されたメッセージングエンティティを備えるハードウェアユニットであって、前記メッセージングエンティティが、
    ソフトウェアコンポーネントによる前記メッセージングシステムへの登録を可能にするように構成された登録コンポーネントと、
    登録されたソフトウェアコンポーネント間のユニキャスト通信を可能にするように構成されたリソースロケーションサーバと、
    ソフトウェアコンポーネントによるマルチキャストイベントの登録を可能にするように構成されたマルチキャスト登録コンポーネントと、
    登録されたソフトウェアコンポーネント間のマルチキャスト通信を可能にするように構成されたマルチキャスト通信コンポーネントと、
    を備える、ハードウェアユニット。
  18. 前記登録コンポーネントは、
    前記ソフトウェアコンポーネント用の論理名を決定し、
    前記ソフトウェアコンポーネント用の物理アドレスを決定し、
    前記ソフトウェアコンポーネント用の前記論理名と前記ソフトウェアコンポーネント用の前記物理アドレスとを関連付けるエントリをリソースロケーションキャッシュに追加させる、
    ようにさらに構成される、請求項17に記載のハードウェアユニット。
  19. 前記リソースロケーションサーバは、
    論理名によって特定されるソフトウェアコンポーネントに宛てられたメッセージを受信し、
    前記論理名を物理アドレスに解決し、
    前記物理アドレスに前記メッセージを送信する、
    ようにさらに構成される、請求項17に記載のハードウェアユニット。
  20. 前記マルチキャスト登録コンポーネントは、
    マルチキャストイベントに対応するマルチキャスト登録メッセージを受信し、
    前記ソフトウェアコンポーネントの前記物理アドレスと前記マルチキャストイベント用の論理名とを関連付けるエントリを、マルチキャスト登録データ構造中に生成させる、
    ようにさらに構成される、請求項17に記載のハードウェアユニット。
  21. 前記マルチキャスト通信コンポーネントは、
    マルチキャストイベントに対応するマルチキャストメッセージを送信者ソフトウェアコンポーネントから受信し、
    マルチキャスト登録データ構造を参照することによって、どのソフトウェアコンポーネントが前記マルチキャストイベントを登録したかを判断し、
    前記マルチキャストイベントを登録した前記ソフトウェアコンポーネントに前記マルチキャストメッセージを送信し、
    前記マルチキャストメッセージを受信した前記ソフトウェアコンポーネントから肯定応答メッセージを受信し、
    前記送信者ソフトウェアコンポーネントに肯定応答メッセージを送信する、
    ようにさらに構成された、請求項17に記載のハードウェアユニット。
  22. 分散コンピューティングシステムにおいてソフトウェアコンポーネント間のプロセス間通信を可能にするように構成されたメッセージングサーバを備えるハードウェアユニットであって、前記メッセージングサーバが、
    前記分散コンピューティングシステム内で新しいメッセージングクライアントを発見するように構成されたクライアント発見コンポーネントと、
    登録されたメッセージングクライアントが使用可能であることを検証するように構成された検証コンポーネントと、
    前記登録されたメッセージングクライアント間の同期を維持するように構成された同期コンポーネントと、
    リソースロケーションキャッシュのマスターバージョンを管理するように構成されたキャッシュマネージャと、
    マルチキャスト登録データ構造のマスターバージョンを管理するように構成されたマルチキャスト登録マネージャと、
    を備えるハードウェアユニット。
  23. 前記クライアント発見コンポーネントと前記検証コンポーネントと前記同期コンポーネントとは、それぞれ
    前記メッセージングシステム内のメッセージングクライアントにハートビートメッセージを送信し、
    前記ハートビートメッセージに対する応答を処理する、
    ように構成される、請求項22に記載のハードウェアユニット。
  24. 前記キャッシュマネージャは、前記リソースロケーションキャッシュに対して変更が行われるときはいつでも、前記メッセージングシステム内のメッセージングクライアントに通知するように構成され、前記マルチキャスト登録マネージャは、前記マルチキャスト登録データ構造に対して変更が行われるときはいつでも、前記メッセージングシステム内のメッセージングクライアントに通知するように構成される、請求項22に記載のハードウェアユニット。
  25. 分散コンピューティングシステムにおいてソフトウェアコンポーネント間のプロセス間通信を可能にするように構成されたメッセージングエンティティを備える装置であって、前記メッセージングエンティティが、
    ソフトウェアコンポーネントによる前記メッセージングシステムへの登録を可能にするための手段と、
    登録されたソフトウェアコンポーネント間のユニキャスト通信を可能にするための手段と、
    ソフトウェアコンポーネントによるマルチキャストイベントの登録を可能にするための手段と、
    登録されたソフトウェアコンポーネント間のマルチキャスト通信を可能にするための手段と、
    を備える装置。
  26. ソフトウェアコンポーネントによる前記メッセージングシステムへの登録を可能にするための前記手段は、
    前記ソフトウェアコンポーネント用の論理名を決定するための手段と、
    前記ソフトウェアコンポーネント用の物理アドレスを決定するための手段と、
    前記ソフトウェアコンポーネント用の前記論理名と前記ソフトウェアコンポーネント用の前記物理アドレスとを関連付けるエントリを、リソースロケーションキャッシュに追加させるための手段と、
    を備える、請求項25に記載の装置。
  27. 登録されたソフトウェアコンポーネント間のユニキャスト通信を可能にするための前記手段は、
    論理名によって特定されるソフトウェアコンポーネントに宛てられたメッセージを受信するための手段と、
    前記論理名を物理アドレスに解決するための手段と、
    前記メッセージを前記物理アドレスに送信するための手段と、
    を備える、請求項25に記載の装置。
  28. ソフトウェアコンポーネントによるマルチキャストイベントの登録を可能にするための前記手段は、
    マルチキャストイベントに対応するマルチキャスト登録メッセージを受信するための手段と、
    前記ソフトウェアコンポーネントの前記物理アドレスと前記マルチキャストイベント用の論理名とを関連付けるエントリを、マルチキャスト登録データ構造中に生成させるための手段と、
    を備える、請求項25に記載の装置。
  29. 登録されたソフトウェアコンポーネント間のマルチキャスト通信を可能にするための前記手段は、
    マルチキャストイベントに対応するマルチキャストメッセージを送信者ソフトウェアコンポーネントから受信するための手段と、
    マルチキャスト登録データ構造を参照することによって、どのソフトウェアコンポーネントが前記マルチキャストイベントを登録したかを判断するための手段と、
    前記マルチキャストイベントを登録した前記ソフトウェアコンポーネントに前記マルチキャストメッセージを送信するための手段と、
    前記マルチキャストメッセージを受信した前記ソフトウェアコンポーネントから肯定応答メッセージを受信するための手段と、
    前記送信者ソフトウェアコンポーネントに肯定応答メッセージを送信するための手段と、
    を備える、請求項25に記載の装置。
  30. 分散コンピューティングシステムにおいてソフトウェアコンポーネント間のプロセス間通信を可能にするように構成されたメッセージングサーバを備える装置であって、
    前記分散コンピューティングシステム内で新しいメッセージングクライアントを発見するための手段と、
    登録されたメッセージングクライアントが使用可能であることを検証するための手段と、
    前記登録されたメッセージングクライアント間の同期を維持するための手段と、
    リソースロケーションキャッシュのマスターバージョンを管理するための手段と、
    マルチキャスト登録データ構造のマスターバージョンを管理するための手段と、
    を備える装置。
  31. 新しいメッセージングクライアントを発見するための前記手段と、登録されたメッセージングクライアントが使用可能であることを検証するための前記手段と、前記登録されたメッセージングクライアント間の同期を維持するための前記手段とは、それぞれ、
    前記メッセージングシステム内のメッセージングクライアントにハートビートメッセージを送信するための手段と、
    前記ハートビートメッセージに対する応答を処理するための手段と、
    を備える、請求項30に記載の装置。
  32. 前記リソースロケーションキャッシュの前記マスターバージョンを管理するための前記手段は、前記リソースロケーションキャッシュに対して変更が行われるときはいつでも、前記メッセージングシステム内のメッセージングクライアントに通知するための手段を備え、前記マルチキャスト登録データ構造の前記マスターバージョンを管理するための前記手段は、前記マルチキャスト登録データ構造に対して変更が行われるときはいつでも、前記メッセージングシステム内のメッセージングクライアントに通知するための手段を備える、請求項30に記載の装置。
  33. 分散コンピューティングシステムにおいてソフトウェアコンポーネント間のプロセス間通信を可能にするためのコンピュータプログラム製品であって、その上に命令を有するコンピュータ可読媒体を備え、前記命令が、
    ソフトウェアコンポーネントによる前記メッセージングシステムへの登録を可能にするためのコードと、
    登録されたソフトウェアコンポーネント間のユニキャスト通信を可能にするためのコードと、
    ソフトウェアコンポーネントによるマルチキャストイベントの登録を可能にするためのコードと、
    登録されたソフトウェアコンポーネント間のマルチキャスト通信を可能にするためのコードと、
    を備えるコンピュータプログラム製品。
  34. ソフトウェアコンポーネントによる前記メッセージングシステムへの登録を可能にするための前記コードが、
    前記ソフトウェアコンポーネント用の論理名を決定するためのコードと、
    前記ソフトウェアコンポーネント用の物理アドレスを決定するためのコードと、
    前記ソフトウェアコンポーネント用の前記論理名と前記ソフトウェアコンポーネント用の前記物理アドレスとを関連付けるエントリをリソースロケーションキャッシュに追加させるためのコードと、
    を備える、請求項33に記載のコンピュータプログラム製品。
  35. 登録されたソフトウェアコンポーネント間のユニキャスト通信を可能にするための前記コードは、
    論理名によって特定されるソフトウェアコンポーネントに宛てられたメッセージを受信するためのコードと、
    前記論理名を物理アドレスに解決するためのコードと、
    前記物理アドレスに前記メッセージを送信するためのコードと、
    を備える、請求項33に記載のコンピュータプログラム製品。
  36. ソフトウェアコンポーネントによるマルチキャストイベントの登録を可能にするための前記コードは、
    マルチキャストイベントに対応するマルチキャスト登録メッセージを受信するためのコードと、
    前記ソフトウェアコンポーネントの前記物理アドレスと前記マルチキャストイベント用の論理名とを関連付けるエントリを、マルチキャスト登録データ構造中に生成させるためのコードと、
    を備える、請求項33に記載のコンピュータプログラム製品。
  37. 登録されたソフトウェアコンポーネント間のマルチキャスト通信を可能にするための前記コードは、
    マルチキャストイベントに対応するマルチキャストメッセージを送信者ソフトウェアコンポーネントから受信するためのコードと、
    マルチキャスト登録データ構造を参照することによって、どのソフトウェアコンポーネントが前記マルチキャストイベントを登録したかを判断するためのコードと、
    前記マルチキャストメッセージを、前記マルチキャストイベントを登録した前記ソフトウェアコンポーネントに送信するためのコードと、
    前記マルチキャストメッセージを受信した前記ソフトウェアコンポーネントから肯定応答メッセージを受信するためのコードと、
    前記送信者ソフトウェアコンポーネントに肯定応答メッセージを送信するためのコードと、
    を備える、請求項33に記載のコンピュータプログラム製品。
  38. 分散コンピューティングシステムにおいてソフトウェアコンポーネント間のプロセス間通信を可能にするためのコンピュータプログラム製品であって、その上に命令を有するコンピュータ可読媒体を備え、前記命令が、
    前記分散コンピューティングシステム内で新しいメッセージングクライアントを発見するためのコードと、
    登録されたメッセージングクライアントが使用可能であることを検証するためのコードと、
    前記登録されたメッセージングクライアント間の同期を維持するためのコードと、
    リソースロケーションキャッシュのマスターバージョンを管理するためのコードと、
    マルチキャスト登録データ構造のマスターバージョンを管理するためのコードと、
    を備えるコンピュータプログラム製品。
  39. 新しいメッセージングクライアントを発見するための前記コードと、登録されたメッセージングクライアントが使用可能であることを検証するための前記コードと、前記登録されたメッセージングクライアント間の同期を維持するための前記コードとは、それぞれ、
    前記メッセージングシステム内のメッセージングクライアントにハートビートメッセージを送信するためのコードと、
    前記ハートビートメッセージに対する応答を処理するためのコードと、
    を備える、請求項38に記載のコンピュータプログラム製品。
  40. 前記リソースロケーションキャッシュの前記マスターバージョンを管理するための前記コードは、前記リソースロケーションキャッシュに対して変更が行われるときはいつでも、前記メッセージングシステム内のメッセージングクライアントに通知するためのコードを備え、前記マルチキャスト登録データ構造の前記マスターバージョンを管理するための前記コードは、前記マルチキャスト登録データ構造に対して変更が行われるときはいつでも、前記メッセージングシステム内のメッセージングクライアントに通知するためのコードを備える、請求項38に記載のコンピュータプログラム製品。
JP2010507551A 2007-05-04 2008-05-02 スケーラブル/冗長遠隔通信システムを構築するためのプロセス間通信方法および装置 Pending JP2010529524A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US91624707P 2007-05-04 2007-05-04
US12/112,961 US8464272B2 (en) 2007-05-04 2008-04-30 Inter-process communication methods and apparatus for building scalable/redundant telecommunications systems
PCT/US2008/062408 WO2008137668A2 (en) 2007-05-04 2008-05-02 Inter- process communication methods and apparatus for scalable and redundant telecommunications systems

Publications (1)

Publication Number Publication Date
JP2010529524A true JP2010529524A (ja) 2010-08-26

Family

ID=39940504

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010507551A Pending JP2010529524A (ja) 2007-05-04 2008-05-02 スケーラブル/冗長遠隔通信システムを構築するためのプロセス間通信方法および装置

Country Status (7)

Country Link
US (1) US8464272B2 (ja)
EP (1) EP2156313A2 (ja)
JP (1) JP2010529524A (ja)
KR (1) KR20100017611A (ja)
CN (1) CN101675424A (ja)
TW (1) TW200910108A (ja)
WO (1) WO2008137668A2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8589732B2 (en) 2010-10-25 2013-11-19 Microsoft Corporation Consistent messaging with replication
WO2015137954A1 (en) * 2014-03-13 2015-09-17 Hewlett-Packard Development Company, L.P. Component multicast protocol
WO2016040889A1 (en) * 2014-09-11 2016-03-17 Cisco Technology, Inc. Crowd-sourced cloud computing
CN105426260B (zh) * 2015-10-30 2018-08-21 北京航天自动控制研究所 一种支持分布式系统的透明进程间通信系统及方法
CN105391711A (zh) * 2015-11-05 2016-03-09 山东超越数控电子有限公司 业务平台及基于tipc协议的通信方法
US10873540B2 (en) 2016-07-06 2020-12-22 Cisco Technology, Inc. Crowd-sourced cloud computing resource validation
US10360606B2 (en) 2016-07-19 2019-07-23 Cisco Technology, Inc. Crowd-sourced cloud computing in a multiple resource provider environment
CN107920012B (zh) * 2016-10-10 2021-05-11 腾讯科技(深圳)有限公司 即时通信消息的存储方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0784744A (ja) * 1993-08-30 1995-03-31 Hewlett Packard Co <Hp> ウィンドウ・インターフェース装置およびその方法
JPH0830455A (ja) * 1994-07-18 1996-02-02 Hitachi Ltd オブジェクト指向情報処理システム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994001832A1 (en) 1992-07-07 1994-01-20 Systems Strategies, Inc. Apparatus and method for providing service oriented, message-based interprocess communication in a networked computing system
CA2240022C (en) * 1995-12-08 2002-02-19 Amsc Subsidiary Corporation Mobile communications from computer aided dispatch system via a customer premises gateway for satellite communication system
US6430698B1 (en) * 1998-10-05 2002-08-06 Nortel Networks Limited Virtual distributed home agent protocol
US20040031033A1 (en) * 2001-06-02 2004-02-12 Ravi Chandra Method and apparatus for inter-process communication management
US6920485B2 (en) * 2001-10-04 2005-07-19 Hewlett-Packard Development Company, L.P. Packet processing in shared memory multi-computer systems
TW589907B (en) 2002-03-15 2004-06-01 Ind Tech Res Inst Method and system of multicast management mechanism for mobile networks
US7080151B1 (en) * 2002-04-01 2006-07-18 Utstarcom, Inc. Method and system for mobile IP home agent redundancy by using home agent control nodes for managing multiple home agents
US6721907B2 (en) * 2002-06-12 2004-04-13 Zambeel, Inc. System and method for monitoring the state and operability of components in distributed computing systems
US7734681B2 (en) * 2002-08-20 2010-06-08 Symantec Operating Corporation Inter-process messaging using multiple client-server pairs
JP4292890B2 (ja) * 2003-06-26 2009-07-08 株式会社日立製作所 マルチキャスト配信方法、配信装置およびシステム
US7721907B2 (en) * 2005-11-22 2010-05-25 Rexam Closure Systems Inc. Child-resistant flip-top dispensing closure and package
US8560651B2 (en) * 2006-03-07 2013-10-15 Cisco Technology, Inc. Method and system for streaming user-customized information

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0784744A (ja) * 1993-08-30 1995-03-31 Hewlett Packard Co <Hp> ウィンドウ・インターフェース装置およびその方法
US5742778A (en) * 1993-08-30 1998-04-21 Hewlett-Packard Company Method and apparatus to sense and multicast window events to a plurality of existing applications for concurrent execution
JPH0830455A (ja) * 1994-07-18 1996-02-02 Hitachi Ltd オブジェクト指向情報処理システム

Also Published As

Publication number Publication date
EP2156313A2 (en) 2010-02-24
US20080276249A1 (en) 2008-11-06
WO2008137668A2 (en) 2008-11-13
US8464272B2 (en) 2013-06-11
TW200910108A (en) 2009-03-01
KR20100017611A (ko) 2010-02-16
WO2008137668A3 (en) 2008-12-31
CN101675424A (zh) 2010-03-17

Similar Documents

Publication Publication Date Title
JP2010529524A (ja) スケーラブル/冗長遠隔通信システムを構築するためのプロセス間通信方法および装置
US9992041B2 (en) Scaling address resolution for massive data centers
JP4583452B2 (ja) サーバ間の直接通信を用いることによってノード構成におけるサーバ・イベントを監視するための方法及びシステム
JP5016063B2 (ja) 整合性のとれた耐障害性分散ハッシュテーブル(dht)オーバレイネットワーク
US8891535B2 (en) Managing a global forwarding table in a distributed switch
CN105993161B (zh) 用于解析地址的元件、方法、系统和计算机可读存储设备
JP2014116968A (ja) フェデレーションインフラストラクチャ内の一貫性
US7813341B2 (en) Overhead reduction for multi-link networking environments
US10069941B2 (en) Scalable event-based notifications
JP2017517064A5 (ja)
US20230036465A1 (en) Association with a Network Data Analytics Function
WO2016149880A1 (zh) 数据读取方法、设备和系统
CN114679349B (zh) 一种数据通信方法及装置
CN112118322A (zh) 一种网络设备的数据同步方法、网络设备及系统
JP2018014049A (ja) 情報処理システム、情報処理装置、情報処理方法及びプログラム
WO2019011247A1 (zh) Mac地址信息同步方法、设备及存储介质
US8861400B2 (en) Requesting multicast membership information in a distributed switch in response to a miss event
JP4335907B2 (ja) ピアツーピアルックアップシステムに対するモビリティチャーン処理のための方法および装置
CN116094923B (zh) 云实例迁移后的网关更新方法及装置和电子设备
US20090254526A1 (en) Network management information (nmi) distribution
JP2009508211A (ja) エンドポイントに透過な独立したメッセージ処理システム及び方法
US20240056411A1 (en) Address resolution service
JP2009271857A (ja) 計算機システム
JPH09114722A (ja) 分散システムにおける共有情報管理方法
JP2013210796A (ja) 冗長化構築システム及び冗長化構築プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110705

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111129