JP2008527538A - メッセージング・システム内のキャッシング・エンジン - Google Patents

メッセージング・システム内のキャッシング・エンジン Download PDF

Info

Publication number
JP2008527538A
JP2008527538A JP2007550409A JP2007550409A JP2008527538A JP 2008527538 A JP2008527538 A JP 2008527538A JP 2007550409 A JP2007550409 A JP 2007550409A JP 2007550409 A JP2007550409 A JP 2007550409A JP 2008527538 A JP2008527538 A JP 2008527538A
Authority
JP
Japan
Prior art keywords
message
messaging
caching
messages
caching engine
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
JP2007550409A
Other languages
English (en)
Inventor
トンプソン,バリー・ジェイ
シング,クル
フラヴァル,ピエール
Original Assignee
テーベラ・インコーポレーテッド
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 テーベラ・インコーポレーテッド filed Critical テーベラ・インコーポレーテッド
Publication of JP2008527538A publication Critical patent/JP2008527538A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/15Flow control; Congestion control in relation to multipoint traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/801Real time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/806Broadcast or multicast traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/822Collecting or measuring resource availability data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/829Topology based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • 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/1859Arrangements for providing special services to substations for broadcast or conference, e.g. multicast adapted to provide push services, e.g. data channels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Small-Scale Networks (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

より低減された待ち時間、およびパフォーマンスのネックで大きいメッセージ量を処理するメッセージ・パブリッシュ/サブスクライブ・システムが、要求される。本発明によって提案される終端間ミドルウェア・アーキテクチャは、大量の、待ち時間の少ないメッセージング向けに設計され、ストレージおよびストレージ・サービスを有するキャッシング・エンジン(CE)を使用するデータ・キャッシングを介する保証された配信サービス品質を有する。メッセージングにおいて、メッセージング・アプライアンス(MA)は、メッセージを受信し、ルーティングするが、まず、コピーをCEに送ることによって、ルーティングされるメッセージのすべてまたはサブセットを記録する。次に、所定の期間にわたって、記録されたメッセージが、メッセージング・システム内の任意の構成要素による要求時の再送に使用可能であり、これによって、保証接続および保証切断の配信サービス品質ならびに部分的データ・パブリケーション・サービスが実現される。

Description

関連出願
(先行出願の引用)
本願は、「Event Router System and Method」という名称の2005年1月6日に出願した米国特許仮出願第60/641988号、および「Hybrid Feed Handlers And Latency Measurement」という名称の2005年6月8日に出願した米国特許仮出願第60/688983号の利益を主張し、以上の仮出願を参照により組み込む。
本願は、「End−To−End Publish/Subscribe Middleware Architecture」という名称の2005年12月23日に出願した米国特許仮出願第11/316778号(弁理士整理番号50003−00004)に関連し、これを参照により組み込む。
本発明は、データ・メッセージングに関し、より詳細には、パブリッシュとサブスクライブ(以下では「パブリッシュ/サブスクライブ」)ミドルウェア・アーキテクチャを有するメッセージング・システム内のキャッシング・エンジンに関する。
データ・メッセージング・インフラストラクチャによって要求されるパフォーマンス・レベルがますます高くなっていることが、ネットワーキング・インフラストラクチャやネットワーキング・プロトコルの進歩の抗し難い根本的な理由となっている。基本的に、データ配信には、データの様々な送信元と宛先だけでなくデータ送信元とデータ宛先の間における様々なタイプの相互接続アーキテクチャや通信モードがかかわる。既存のデータ・メッセージング・アーキテクチャの例には、ハブ・アンド・スポーク、ピア・ツー・ピア、ストア・アンド・フォワードが含まれる。
ハブ・アンド・スポーク・システム構成では、すべての通信は、ハブ経由でトランスポートされ、しばしば、非常に多くの量を処理する際、パフォーマンスのネックを生じさせる。したがって、このメッセージング・システム・アーキテクチャは、待ち時間をもたらす。このネックを回避する1つのやり方は、より多くのサーバを展開し、それらの異なるサーバにわたってネットワーク負荷を分散させることである。しかし、そのようなアーキテクチャは、スケーラビリティの問題や、動作上の問題をもたらす。ハブ・アンド・スポーク構成を有するシステムと比較して、ピア・ツー・ピア構成を有するシステムは、データを処理し、フィルタリングするアプリケーション群に不要なストレスをかけ、そのシステムの最も遅いコンシューマまたはノードが速度の限界である。次に、ストア・アンド・フォワード・システム構成では、永続性を与えるために、システムは、データを格納してから、パスにおける次のノードに、そのデータを転送する。格納オペレーションは、通常、メッセージに索引を付けて、ディスクに書き込むことによって行われ、これにより、パフォーマンスのネックが生じる可能性がある。さらに、メッセージ量が増加すると、インデキシングのタスクや書き込みのタスクは、さらに遅くなる可能性があり、このため、さらなる待ち時間を生じさせる可能性がある。
データ整合性を与えるために、これらのストア・アンド・フォワード・システムは、論理的であれ物理的であれ、すべての災害からデータ損失なしで回復する能力を実現しなければならない。これは、通常、リモート・ディスク・ミラーリング技術またはデータベース・レプリケーション技術を用いて実現される。そのような実装に関する課題は、常時少ない待ち時間で1次サイトと2次サイトとの間のデータ整合性を保証することである。1つのオプションは、同期式ソリューションを実装することであり、この場合に、1次サイトに書き込まれるデータの各ブロックは、2次サイトにミラーリングされた後に、完全と考えられる。そのような同期式実装に関する問題は、これがメッセージング・レイヤの全体的パフォーマンスに影響することである。代替オプションは、非同期式アプローチを実装することである。しかし、このアプローチに関して、データ損失または破壊を避けるという課題は、災害が発生している間にデータ整合性を維持することである。もう1つの課題は、データ更新の順序を保証することである。
既存のデータ・メッセージング・アーキテクチャは、いくつかの欠点を共有している。1つの共通の欠点は、既存のアーキテクチャにおけるデータ・メッセージングが、アプリケーション・レベルに存在するソフトウェアに依拠することである。このことは、メッセージング・インフラストラクチャが、OS(オペレーティング・システム)キューイングやネットワークI/O(入力/出力)を経験し、これにより、パフォーマンスのネックが生じる可能性があることを意味する。別の共通の欠点は、他のプロトコルが、状況下で、より適切である場合でさえ、既存のアーキテクチャは、データ・トランスポート・プロトコルを、動的にではなく、静的に使用することである。一般的なプロトコルのいくつかの例には、ルーティング可能なマルチキャスト、ブロードキャスト、またはユニキャストが含まれる。実際、既存のアーキテクチャにおけるAPI(アプリケーション・プログラミング・インタフェース)は、複数のトランスポート・プロトコルの間で、リアルタイムで切り換えを行うように設計されていない。
また、ネットワーク構成決定は、通常、展開時に行われ、通常、特定の想定の下で、ネットワーク条件とメッセージング条件の1つのセットを最適化するように定義される。静的(固定の)構成に関連する限界は、リアルタイムの動的なネットワーク再構成を除外する。つまり、既存のアーキテクチャは、すべてのネットワーク・データ・トランスポート負荷条件に必ずしも適しているわけではない特定のトランスポート・プロトコル向けに構成され、したがって、既存のアーキテクチャは、しばしば、変化、または、より高い負荷容量要件をリアルタイムで扱うことができない。
さらに、データ・メッセージングが、特定の受信者、または特定の受信者グループを宛先としている場合、既存のメッセージング・アーキテクチャは、いくつかのネットワークにわたってデータをトランスポートするために、ルーティング可能なマルチキャストを使用する。しかし、マルチキャスト向けにセットアップされたシステムには、データを配信するのに使用できるマルチキャスト・グループの数に限界があり、その結果、メッセージング・システムは、システムにサブスクライブしていない宛先(すなわち、サブスクライバではないコンシューマ)にデータを送信してしまうことになる。これにより、コンシューマのデータ処理負荷、およびデータ・フィルタリングによる破棄率が高まる。すると、何らかの理由で過負荷になり、データのフローについて行くことができないコンシューマは、結局は、着信データをドロップし、後に、再送を求める。再送は、すべてのコンシューマが、繰り返しの伝送を受信し、コンシューマのすべてが、着信データを再処理するという点で、システム全体に影響を及ぼす。したがって、再送は、マルチキャスト・ストームを生じさせて、ついには、ネットワーク化されたシステム全体をダウンさせる可能性がある。
システムが、破棄率を低減する策としてユニキャスト・メッセージング向けにセットアップされた場合、メッセージング・システムは、データ重複のために帯域幅が飽和する可能性がある。例えば、複数のコンシューマが、関心対象の所与のトピックにサブスクライブした場合、メッセージング・システムは、データを各サブスクライバに配信しなければならず、実際、システムは、そのデータの異なるコピーを各サブスクライバに送信する。また、これにより、コンシューマが、サブスクライブ対象でないデータをフィルタリングして除く問題が解決されるものの、ユニキャスト伝送は、スケーラブルではなく、このため、ある特定のデータにサブスクライブする相当に大きいコンシューマ・グループ、または消費パターンの相当な重複に適合可能ではない。
既存のアーキテクチャの1つのより一般的な欠点は、それらのアーキテクチャのプロトコル変換が遅く、回数が多いことである。このことの理由は、ますます多くの新たな技術が、レガシー・システムと統合される、EAI(Enterprise Application Integration)ドメインにおけるIT(情報技術)応急処置戦略である。
したがって、いくつかの領域でデータ・メッセージング・システム・パフォーマンスを向上させる必要性が存在する。パフォーマンスが向上を必要とする可能性がある例が、速度、リソース割り当て、待ち時間などである。
本発明は、ある程度、以上の所見と、そのような欠点に、異なるアプローチを使用して、より良い結果で対処することができるという考えとに基づく。以上の所見は、大量の、待ち時間が少ないメッセージングのための、およびデータ・キャッシングを介して保証された配信サービス品質を有する、終端間メッセージ・パブリッシュ/サブスクライブ・アーキテクチャを生み出した。その目的で、そのようなアーキテクチャ(パブリッシュ/サブスクライブ・ミドルウェア・システム)を有するメッセージング・インフラストラクチャは、後でより詳細に説明するインデクシング・サービスとストレージ・サービスを有するキャッシング・エンジン(CE)をも含む。
一般に、メッセージング・アプライアンス(MA)は、メッセージを受信し、ルーティングする。CEに緊密に結合された時に、MAは、CEにコピーを送ることによって、ルーティングされるメッセージのすべてまたはサブセットをまず格納する。次に、所定の期間にわたって、記録されたメッセージが、メッセージング・システム内の任意の構成要素による要求時の再送に使用可能であり、これによって、融合された接続中保証と切断中保証の配信サービス品質が実現され、かつ部分的データ・パブリケーション・サービスが実現される。
そのようなサービスをサポートするために、CEは、MAの転送レートについて行くように設計される。例えば、CEは、できる限り高速にメッセージをプッシュするためのMAとCEとの間の高スループット接続と、バック・エンドCEデータベースからのメッセージを挿入し再生するための高スループットでスマートなインデクシング機構と、高スループット永続ストレージ・デバイスとを用いて設計される。この設計での考慮事項の1つは、再生要求の待ち時間を減らすことである。
このため、本明細書で示され、広く説明される本発明の目的によれば、1つの例示的なシステムは、キャッシング・エンジン、メッセージング・アプライアンス、インタフェース媒体を含む。キャッシング・エンジンは、メッセージを送信し、受信するように機能するメッセージ・レイヤと、まず受信されたメッセージをインデクシングし、受信された部分的にパブリッシュされたメッセージのイメージを維持するように機能するインデクシング・サービスを有するキャッシング・レイヤと、ストレージされ、受信されたメッセージのすべてまたはサブセットをストレージに格納するように機能するストレージ・サービスと、受信されたメッセージと送信されたメッセージをトランスポートする1つまたは複数の物理インタフェースと、1つまたは複数の物理インタフェースのそれぞれを介するメッセージの送信と受信を制御するチャネル管理を有するメッセージング・トランスポート・レイヤとを含む。メッセージング・アプライアンスとキャッシング・エンジンとの間の物理媒体は、ファブリックにこだわらず、イーサネット(登録商標)、メモリ・ベースの直接接続、またはInfinibandとして構成される。
さらに、前述のシステムは、インタフェース媒体を介してリンクされ、各メッセージング・アプライアンスと管理メッセージを交換するように構成されたプロビジョニング−マネージメント・システムを用いても実現される。キャッシング・エンジン構成は、管理メッセージを介して、P&Mシステムから、キャッシング・エンジンに直接に接続されたMAを介して通信される。効果的に、キャッシング・エンジンは、近隣ベースのメッセージ・アーキテクチャ内でもう1つの近隣として働く。
上で説明したキャッシング・エンジンを使用する様々な方法は、メッセージングにおいてサービス品質を提供することができる。1つのそのような方法は、メッセージング・トランスポート・レイヤと管理メッセージ・レイヤを有し、さらに、インデクシング・サービスとストレージ・サービスならびに関連するストレージを備えたキャッシング・レイヤを有するキャッシング・エンジン内で行われる。この方法は、データと管理メッセージをメッセージ・トランスポート・レイヤによって受信するステップと、管理メッセージを管理メッセージ・レイヤに、データ・メッセージをキャッシング・レイヤに転送するステップとを含み、管理メッセージ・レイヤに転送されたメッセージ取得要求メッセージは、キャッシング・レイヤにルーティングされる。この方法は、さらに、インデクシング・サービス内でデータ・メッセージを、トピック・ベースでインデクシングするステップと、インデクシングに基づいて、データ・メッセージをストレージ・デバイス内に格納するステップとを含み、データ・メッセージは、メッセージ取得要求メッセージに応答する再送に使用可能である所定の期間ストレージ・デバイス内で維持される。
データ・メッセージは、完全なデータ・メッセージまたは部分的にパブリッシュされたデータ・メッセージのいずれかであり、各データ・メッセージは、関連するトピックを有するので、インデクシング・サービスは、各完全なデータ・メッセージのマスタ・イメージを維持する。次に、部分的に完全なメッセージである受信されたデータ・メッセージについて、インデクシング・サービスは、受信されたデータ・メッセージを、その部分的にパブリッシュされたメッセージの関連トピックに類似する関連トピックを有する完全なメッセージの最も最近のマスタ・イメージと比較して、マスタ・イメージをどのように更新しなければならないかを決定する。部分的にパブリッシュされたメッセージとマスタ・イメージは、両方がインデクシングされ、再送に使用可能である。
これらのキャッシング・エンジンは、1次CE、2次CEからなるフォールト・トレラントペアとして、または3つ以上のCEノードからなるフォールト・トレラント・グループとして、構成され展開されることが可能である。3つ以上のCEが互いに論理的にリンクされる場合に、これらは、同一のデータにサブスクライブし、したがって、サブスクライブされたデータの固有の一貫したビューを維持する。データへのCEのサブスクライブが、アプリケーション・プログラミング・インタフェース(API)と同様に、トピック・ベースであることに留意されたい。データ損失の場合に、CEは、フォールト・トレラント・グループの他のCEメンバに、失われたデータの再生を要求する。同一のフォールト・トレラント・グループのCEの間でのデータの同期化は、メッセージング・ファブリックによって並列化され、このメッセージング・ファブリックは、MAを介して、サブスクライブされたメッセージング・トラフィックのコピーをすべてのキャッシング・エンジン・インスタンスにインテリジェントにまた効率的に転送する。その結果、これは、フォールト・トレラント展開および災害復旧(disaster recovery)展開に関する非同期データ整合性を可能にし、ここで、データ同期化が実行され、永続性は、ストレージ/ディスク・ミラーリング技術またはデータベース・レプリケーション技術を活用することによるのではなく、メッセージング・ファブリックによって保証される。
要するに、本発明の以上、およびその他の特徴、態様、および利点は、本明細書の説明、添付の特許請求の範囲、および後段で説明する添付の図面から、より良く理解されるようになろう。
本明細書に組み込まれ、本明細書の一部を構成する添付の図面は、本発明の様々な態様を例示し、説明と一緒に、本発明の諸原理を説明する役割をする。好都合な場合はいつでも、同一の符号が、すべての図面で、同一の要素、または同様の要素を指すのに使用される。
本発明の諸態様と諸原理による様々な実施形態の詳細の概要を述べる前に、以下は、この説明の全体で使用されるいくつかの用語の簡単な説明である。この説明は、単に、そのような用語がどのように使用される可能性があるかについて、明確にし、読者に理解を与えることを、ただし、それらの用語が使用される文脈に、それらの用語を限定することなく、特許請求の範囲を限定することなしに、意図していることに留意されたい。
「ミドルウェア」という用語が、2つの別個の、しばしば、既に存在するプログラムの間を仲介する任意のプログラミングを表す一般的な用語として、コンピュータ業界で使用されている。通常、ミドルウェア・プログラムは、様々なアプリケーションが通信することができるように、メッセージング・サービスを提供する。異種のアプリケーションを、しばしば、ミドルウェアの使用を介して、一緒に系統立って結び付けることは、EAI(Enterprise Application Integration)として知られる。しかし、この文脈において、「ミドルウェア」は、送信元と宛先の間におけるメッセージングの文脈で使用される、より広い用語であり、そのようなメッセージングを可能にするように展開される機構であることが可能であり、このため、ミドルウェア・アーキテクチャは、以下に説明するとおり、個々に、または組合せで、効果的なデータ・メッセージングを円滑にするネットワーキング、およびコンピュータのハードウェア構成要素やソフトウェア構成要素をも範囲に含む。さらに、「メッセージング・システム」または「ミドルウェア・システム」という用語が、パブリッシャとサブスクライバの間におけるメッセージのルーティングをメッセージング・サーバが管理する、パブリッシュ/サブスクライブ・システムの文脈において使用されることが可能である。実際、メッセージング・ミドルウェアにおけるパブリッシュ/サブスクライブのパラダイムは、スケーラブルな、したがって、強力なモデルである。
「コンシューマ」という用語が、クライアント−サーバ・アプリケーションなどの文脈において使用される。1つの実例では、コンシューマは、API(アプリケーション・プログラミング・インタフェース)を使用して、ミドルウェア・システムに登録し、情報にサブスクライブし、ミドルウェア・システムによって配信されたデータを受信するシステムまたはアプリケーションである。ミドルウェア・アーキテクチャ境界内のAPIは、コンシューマであり、外部コンシューマは、APIを使用せず、メッセージが、プロトコル変換を経る(以下に説明するとおり)通信相手である、任意のパブリッシュ/サブスクライブ・システム(または外部データ宛先)である。
「外部データ送信元」という用語が、データ配信システムとメッセージ・パブリッシュ/サブスクライブ・システムの文脈において使用される。1つの実例では、外部データ送信元は、一般的なプロトコルの1つで、または独自のメッセージ・プロトコルでメッセージをパブリッシュする、企業プライベート・ネットワークの内部または外部に配置された、システムまたはアプリケーションと見なされる。外部データ送信元の例は、ミドルウェア・システムを介してトレーダに配信される株式市場の取引値をパブリッシュする市場データ・エクスチェンジである。外部データ送信元の別の例は、トランザクション・データである。本発明の通常の実装では、以下により詳細に説明するとおり、ミドルウェア・アーキテクチャは、外部データ送信元からのデータが、ミドルウェア・システム・ドメインに入ると、変換される、固有のネイティブ・プロトコルを採用し、従来のシステムによくある複数のプロトコル変換を回避することに留意されたい。
また、「外部データ宛先」という用語も、データ配信システムとメッセージ・パブリッシュ/サブスクライブ・システムの文脈において使用される。外部データ宛先は、例えば、ローカル/グローバル・ネットワークを介してルーティングされる情報にサブスクライブする、企業プライベート・ネットワークの内部または外部に配置されたシステムまたはアプリケーションである。外部データ宛先の一例は、トレーダによってパブリッシュされたトランザクション注文を扱う市場データ・エクスチェンジである。外部データ宛先の別の例が、トランザクション・データである。以上のミドルウェア・アーキテクチャでは、外部データ宛先を宛先とするメッセージは、ネイティブ・プロトコルから、外部データ宛先に関連する外部プロトコルに変換されることに留意されたい。
本明細書の説明から確認することができるとおり、本発明は、ミドルウウェア・アーキテクチャ内で様々な構成で実装されるキャッシング・エンジン(CE)を用いて様々な仕方で実施されることが可能である。したがって、この説明は、図1に示された終端間ミドルウェア・アーキテクチャの例から始まる。
この例示的なアーキテクチャは、以下を含むいくつかの有益な特徴を併せ持つ。すなわち、メッセージング一般的概念、API、フォールト・トレランス、P&M(プロビジョニング−マネージメント)、QoS(サービス品質−融合型、ベスト・エフォート型、接続中保証型、切断中保証型など)、保証された配信QoSのための永続キャッシング、名前空間とセキュリティ・サービスの管理、パブリッシュ/サブスクライブ・エコシステム(コア構成要素、イングレス構成要素、イグレス構成要素)、トランスポート・トランスペアレント・メッセージング、近隣ベースのメッセージング(ハブ・アンド・スポーク、ピア・ツー・ピア、ストア・アンド・フォワードの間の混成であり、必要に応じて、サブスクリプションをすべての近隣に広めることができるサブスクリプション・ベースのルーティング・プロトコルを使用するモデル)、レイト・スキーマ・バインディング、部分的パブリッシング(データ全体ではなく、パブリッシングによって変更された情報だけ)、ネットワーク・リソースとシステム・リソースの動的割り当てである。後段で説明するとおり、パブリッシュ/サブスクライブ・システムは、ミドルウェア・アーキテクチャのフォールト・トレラント設計を有利に組み込む。パブリッシュ/サブスクライブ・エコシステムのコアMA部分は、前述したネイティブ・メッセージング・プロトコル(ミドルウェア・システムに固有の)を使用するのに対して、イングレス部分とイグレス部分、エッジMAは、そのネイティブ・プロトコルへの変換や、そのネイティブ・プロトコルからの変換をそれぞれ行うことに留意されたい。
パブリッシュ/サブスクライブ・システム構成要素に加えて、図1は、論理接続、およびそれらの論理接続間の通信も示す。見て取ることができるとおり、図示されるミドルウェア・アーキテクチャは、分散システムのアーキテクチャである。このアーキテクチャを有するシステムにおいて、2つの別個の物理構成要素の間の論理通信は、メッセージ・ストリームと、関連するメッセージ・プロトコルで確立される。メッセージ・ストリームは、メッセージ2つのカテゴリの1つ、すなわち管理メッセージとデータ・メッセージのいずれかを含む。管理メッセージは、様々な物理構成要素の管理と制御、データへのサブスクリプションの管理、その他のために使用される。データ・メッセージは、送信元と宛先の間でデータをトランスポートするために使用され、通常のパブリッシュ/サブスクライブ・メッセージングでは、データ・メッセージの複数の送信者と複数の受信者とが存在する。
ミドルウェア・アーキテクチャを有する分散パブリッシュ/サブスクライブ・システムは、例示される構造上の構成と論理通信で、いくつかの論理機能を実行するように設計される。1つの論理機能は、エッジMA(メッセージング・アプライアンス)構成要素において有利に実行されるメッセージ・プロトコル変換である。第2の論理機能は、パブリッシャからサブスクライバにメッセージをルーティングすることである。メッセージは、パブリッシュ/サブスクライブ・ネットワーク全体でルーティングされることに留意されたい。このため、ルーティング機能は、メッセージが伝搬される、例えば、エッジMA106a〜b(またはAPI)からコアMA108a〜cまで、または1つのコアMAから別のコアMAまで、さらに、最終的に、エッジMA(例えば、106b)またはAPI 110a〜bまで、各MAによって実行される。API 110a〜bは、プロセス間通信バス(ソケット、共有メモリなど)を介して、アプリケーション1121〜nと通信する。
第3の論理機能は、例えば、接続中保証タイプや切断中保証タイプを含め、様々なタイプの保証配信サービス品質のためにメッセージを格納することである。第4の機能は、サブスクライバに、それらのメッセージを配信することである。図示されるとおり、API 106a〜bは、サブスクライブするアプリケーション1121〜nにメッセージを配信する。
このパブリッシュ/サブスクライブ・ミドルウェア・アーキテクチャでは、システム構成機能は、他の管理機能やシステム・パフォーマンス監視機能と同様にP&Mシステム102、104によって管理される。構成には、パブリッシュ/サブスクライブ・ミドルウェア・システムのネットワークおよび構成要素の物理的構成と論理的構成との両方が含まれる。監視と報告には、すべてのネットワークやシステムの構成要素の健全性の監視と、要求に応じてまたはログに結果を自動的に報告することが含まれる。P&Mシステムは、管理メッセージを介して、構成機能、監視機能、報告機能を実行する。加えて、P&Mシステムによって、システム管理者は、パブリッシュ/サブスクライブ・ネットワーク全体にわたってルーティングされるメッセージのそれぞれに関連するメッセージ名前空間を決めることができる。したがって、パブリッシュ/サブスクライブ・ネットワークは、名前空間ベースのサブネットワークに物理的および/または論理的に分割されることが可能である。
P&Mシステムは、1つまたは複数のMAを有するパブリッシュ/サブスクライブ・ミドルウェア・システムを管理する。MAは、ネットワークにおけるMAの役割に応じて、エッジMAまたはコアMAとして展開される。エッジMAは、メッセージを、外部プロトコルからネイティブ・プロトコルに、またネイティブ・プロトコルから外部プロトコルに変換するプロトコル変換エンジンを含むこと以外は、ほとんどの点でコアMAと同様である。このため、一般に、パブリッシュ/サブスクライブ・システム・ミドルウェア・アーキテクチャの境界は、エッジMA106a〜bとAPI 110a〜bが存在するエッジを特徴とし、それらの境界内に、コアMA108a〜cが存在する。
システム・アーキテクチャは、特定の限られた地理的区域に限定されておらず、実際、地域的境界または国境を越えるように、さらに、大陸間にわたるようにさえ設計されることに留意されたい。そのようなケースでは、1つのネットワークにおけるエッジMAは、別の地理的に遠隔のネットワークにおけるエッジMAと、既存のネットワーキング・インフラストラクチャを介して通信することができる。
通常のシステムでは、コアMA108a〜cは、パブリッシュされたメッセージをシステム内で、エッジMAまたはAPI(例えば、API 110a〜b)に向けて内部でルーティングする。特にコアMAにおけるルーティング・マップは、最大容量、少ない待ち時間、および効率的なルーティングのために設計される。さらに、コアMA間のルーティングは、リアルタイムで動的に変化することが可能である。いくつかのノード(コアMA)を横断する所与のメッセージング・パスに関して、ルーティングのリアルタイムの変更は、ネットワーク利用率、全体的な終端間待ち時間、通信量、ネットワーク遅延、損失、ジッタを含め、1つまたは複数のメトリックに基づく。
代替として、2つ以上の異なるパスから最良のパフォーマンスを示すパスを動的に選択する代わりに、MAは、メッセージ・レプリケーションに基づき、マルチパス・ルーティングを実行することができ、このため、すべてのパスにわたって同一のメッセージを送信することができる。異なるパスの収束点に位置するすべてのMAは、重複メッセージをドロップして、最初に着信したメッセージだけを転送する。このルーティング・アプローチは、少ない待ち時間のためにメッセージング・インフラストラクチャを最適化するという利点を有する。ただし、このルーティング方法の欠点は、そのインフラストラクチャが、重複トラフィックを伝送するのに、より多くのネットワーク帯域幅を必要とすることである。
エッジMAは、着信メッセージのいずれの外部メッセージ・プロトコルも、ミドルウェア・システムのネイティブ・メッセージ・プロトコルに変換し、送信メッセージに関してネイティブ・プロトコルから外部プロトコルに変換する能力を有する。つまり、外部プロトコルは、メッセージが、パブリッシュ/サブスクライブ・ネットワーク・ドメインに入る際に(イングレス)、ネイティブ(例えば、Tervela(商標))メッセージ・プロトコルに変換され、ネイティブ・プロトコルは、メッセージが、パブリッシュ/サブスクライブ・ネットワーク・ドメインを出る際に(イグレス)、外部プロトコルに変換される。エッジMAの別の機能は、パブリッシュされたメッセージを、サブスクライブする外部データ宛先に配信することである。
さらに、エッジMA106a〜bとコアMA108a〜cはともに、メッセージを格納してから、それらのメッセージを転送することができる。これが行われることが可能な1つの形は、CE(キャッシング・エンジン)118a〜bを使用して行うことである。1つまたは複数のCEが、同一のMAに接続されることが可能である。理論上、APIは、このストア・アンド・フォワード能力を有さないと言われているが、現実には、API 110a〜bは、メッセージを格納してから、それらのメッセージをアプリケーションに配信することができ、アプリケーションから受信されたメッセージを格納してから、それらのメッセージをコアMA、エッジMA、または別のAPIに配信することができる。
MA(エッジMAまたはコアMA)は、CEに対する能動的な接続を有する場合、ルーティングされるメッセージのすべて、またはサブセットをCEに転送し、CEは、それらのメッセージを、保存のためにストレージ領域に書き込む。記録されたメッセージは、所定の期間にわたって、要求に基づく再送が可能である。このアーキテクチャを活用する例は、データ再生、部分的パブリッシュ、様々なサービス品質レベルである。部分的パブリッシュは、すべての情報の伝送ではなく、更新された情報だけの伝送しか要求しないため、ネットワーク負荷およびコンシューマ負荷を減らすのに有効である。
ルーティング・マップが、ルーティングにどのように影響を与えるかを例示するように、パブリッシュ/サブスクライブ・ルーティング・パスのいくつかの例が、図1に示されている。この例示では、パブリッシュ/サブスクライブ・ネットワークのミドルウェア・アーキテクチャが、パブリッシャとサブスクライバの間で5つ以上の異なる通信パスを提供する。
第1の通信パスは、外部データ送信元を外部データ宛先にリンクする。外部データ送信元1141〜nから受信された、パブリッシュされたメッセージは、ネイティブ(例えば、Tervela(商標))メッセージ・プロトコルに変換され、次に、エッジMA106aによってルーティングされる。ネイティブ・プロトコル・メッセージが、エッジMA106aからルーティングされることが可能な1つの形は、外部データ宛先116nに対してである。そのパスは、通信パス1aとして呼び出される。そのケースでは、ネイティブ・プロトコル・メッセージは、外部データ宛先に適した外部プロトコル・メッセージに変換される。ネイティブ・プロトコル・メッセージが、エッジMA106bからルーティングされることが可能な別の形は、内部でコアMA108bを経由してである。そのパスは、通信パス1bとして呼び出される。そのパスに沿って、コアMA108bは、ネイティブ・メッセージをエッジMA106aにルーティングする。しかし、エッジMA106aは、ネイティブ・プロトコル・メッセージを外部データ宛先1161にルーティングする前に、それらのメッセージを、その外部データ宛先1161に適した外部メッセージ・プロトコルに変換する。見て取ることができるとおり、その通信パスは、APIが、メッセージをパブリッシャからサブスクライバにルーティングすることを要求しない。したがって、パブリッシュ/サブスクライブ・システムが、外部送信元−宛先通信のために使用される場合、システムは、APIを含まなくてもよい。
通信パス2として呼び出される別の通信パスは、外部データ送信元114nを、API 110bを使用するアプリケーションにリンクする。外部データ送信元から受信された、パブリッシュされたメッセージは、エッジMA106aにおいて、ネイティブ・メッセージ・プロトコルに変換され、次に、エッジMAによってコアMA108aにルーティングされる。第1のコアMA108aから、メッセージは、別のコアMA108c経由でAPI 110bにルーティングされる。APIから、メッセージは、サブスクライブするアプリケーション(例えば、1122)に配信される。通信パスは、双方向であるため、別の実例では、メッセージは、サブスクライブするアプリケーション1121〜nから外部データ宛先116nまで、逆方向のパスをたどることも可能である。各実例において、コアMAは、ネイティブ・プロトコル・メッセージを受信して、ルーティングするのに対して、エッジMAは、外部プロトコル・メッセージまたはネイティブ・プロトコル・メッセージを受信し、ネイティブ・プロトコル・メッセージまたは外部プロトコル・メッセージをそれぞれルーティングする(エッジMAは、そのような外部メッセージ・プロトコルに/から、ネイティブ・メッセージ・プロトコルに/から変換を行う)。エッジMAのそれぞれは、イングレス・メッセージを、ネイティブ・プロトコル・チャネルと外部プロトコル・チャネルの両方に同時にルーティングすることができる。その結果、各エッジMAは、イングレス・メッセージを、外部コンシューマと内部コンシューマの両方に同時にルーティングすることができ、ただし、内部コンシューマは、ネイティブ・プロトコル・メッセージを消費し、外部コンシューマは、外部プロトコル・メッセージを消費する。この能力により、メッセージング・インフラストラクチャが、レガシー・アプリケーションとレガシー・システムに、シームレスにかつ円滑に一体化されることが可能になる。
通信パス3として呼び出される、さらに別の通信パスは、API 110a〜bをともに使用する、2つのアプリケーションをリンクする。それらのアプリケーションの少なくとも1つは、メッセージをパブリッシュするか、またはメッセージにサブスクライブする。パブリッシュされたメッセージの、サブスクライブする(パブリッシュする)アプリケーションへの(またはからの)配信は、パブリッシュ/サブスクライブ・ネットワークのエッジ上に位置するAPIを介して行われる。アプリケーションが、メッセージにサブスクライブすると、コアMAまたはエッジMAの1つが、それらのメッセージをAPIに向けてルーティングし、APIは、データが、サブスクライブするアプリケーションに配信される用意ができると、それらのアプリケーションに通知する。アプリケーションからパブリッシュされたメッセージは、APIを介して、APIが「登録」されているコアMA108cに送信される。
MAに「登録」(ログイン)することにより、APIは、そのMAに論理的に接続されるようになることに留意されたい。APIは、登録(「ログイン」要求)メッセージをMAに送信することにより、MAに対する接続を開始する。登録の後、APIは、APIのサブスクリプション・メッセージをMAに送信することにより、関心対象の特定のトピックにサブスクライブすることができる。トピックは、パブリッシュ/サブスクライブ・メッセージングに関して、メッセージに対する共有したアクセス・ドメインとターゲットを定義するのに使用され、したがって、1つまたは複数のトピックへのサブスクリプションにより、そのようなトピック表記を有するメッセージの受信と送信が可能になる。P&Mは、ネットワークにおけるMAに定期資格更新を送信し、各MAは、そのMA独自のテーブルを、それに相応して更新する。したがって、APIが、ある特定のトピックにサブスクライブする資格があることが、MAに分かった場合(MAは、ルーティング資格テーブルを使用して、APIの資格を検証する)、MAは、そのAPIに対する論理接続をアクティブにする。次に、APIが、コアMA108cに適切に登録されている場合、コアMA108cは、図示されるとおり、データを第2のAPI 110にルーティングする。その他の実例では、そのコアMA108bは、さらなる1つまたは複数のMA(図示せず)経由でメッセージをルーティングすることができ、それらのMAは、それらのメッセージをAPI 110bにルーティングし、API 110bは、それらのメッセージを、サブスクライブするアプリケーション1121〜nに配信する。
見て取ることができるとおり、通信パス3は、外部データ・メッセージ・プロトコルが全くかかわらないため、エッジMAの存在を要求しない。その種の通信パスを例示する一実施形態では、企業システムは、様々なトピックに関する最新ニュースを従業員にパブリッシュするニュースサーバを有して構成される。ニュースを受信するのに、従業員は、APIを使用するニュース・ブラウザ・アプリケーションを介して、従業員の関心対象のトピックにサブスクライブする。
ミドルウェア・アーキテクチャは、1つまたは複数のトピックへのサブスクリプションを可能にすることに留意されたい。さらに、このアーキテクチャは、トピック表記においてワイルドカードを許すことにより、単一のサブスクリプション要求で、一群の関連するトピックへのサブスクリプションを可能にする。
通信パス4として呼び出される、さらに別のパスが、P&Mシステム102と104に関連する多くのパスの1つであり、それらのパスのそれぞれは、P&Mを、パブリッシュ/サブスクライブ・ネットワーク・ミドルウェア・アーキテクチャにおけるMAの1つにリンクする。P&Mシステムと各MAの間で行き来するメッセージは、そのMAを構成し、監視するのに使用される管理メッセージである。1つのシステム構成では、P&Mシステムは、MA群と直接に通信する。別のシステム構成では、P&Mシステムは、MA群と、他のMA群を介して通信する。さらに別の構成では、P&Mシステムは、MA群と直接に通信することも、間接的に通信することもできる。
通常の実装では、ミドルウェア・アーキテクチャは、スイッチ、ルータ、その他のネットワーキング・アプライアンスを有するネットワークにわたって展開され、任意のタイプの物理媒体を介して通信することができるチャネル・ベースのメッセージングを使用する。このファブリックにこだわらないチャネル・ベースのメッセージングの1つの例示的な実装が、IPベースのネットワークである。その環境では、すべてのパブリッシュ/サブスクライブ・物理構成要素間のすべての通信は、UDP(ユーザ・データグラム・プロトコル)を介して実行され、トランスポートの信頼性は、メッセージング・レイヤによって提供される。この原理によるオーバーレイ・ネットワークが、図1aに示される。
図示されるとおり、オーバーレイ通信1、2、3が、スイッチ214a〜c、ルータ216、サブネット218a〜cを介して、3つのコアMA208a〜cの間で行われることが可能である。つまり、それらの通信パスは、サブネット、スイッチ、ルータなどのネットワーキング・インフラストラクチャから成る、基礎をなすネットワークの上に確立されることが可能であり、前述したとおり、そのアーキテクチャは、広い地理的区域に(異なる国、または異なる大陸にさえ)わたることが可能である。
とりわけ、本発明の諸原理による以上、およびその他の終端間ミドルウェア・アーキテクチャは、様々なビジネス環境における様々な企業インフラストラクチャにおいて実施されることが可能である。1つのそのような実装が、図2に示される。
この企業インフラストラクチャでは、市場データ配信プラント12が、様々な市場データ・エクスチェンジ3201〜nからの株式市場取引値をトレーダ(図示されていないアプリケーション)にルーティングするために、パブリッシュ/サブスクライブ・ネットワークの上に構築される。そのようなオーバーレイ・ソリューションは、例えば、MA間や、そのようなMA群とP&Mシステムの間で相互接続を提供するために、基礎をなすネットワークに依拠する。API 3101〜nへの市場データ配信は、アプリケーション・サブスクリプションに基づく。このインフラストラクチャでは、アプリケーション(図示せず)を使用するトレーダが、パブリッシュ/サブスクライブ・ネットワークを介して(コアMA308a〜bとエッジMA306b経由で)API 3101〜nから市場データ・エクスチェンジ3201〜nに戻るようにルーティングされるトランザクション注文を行うことができる。
論理的に、パブリッシュ/サブスクライブ・ネットワークの物理構成要素は、OSI(Open Systems Interconnection)参照モデルのレイヤ1ないし4に類似したメッセージング・トランスポート・レイヤ上に構築される。OSIモデルのレイヤ1ないし4は、物理レイヤ、データリンク・レイヤ、ネットワーク・レイヤ、トランスポート・レイヤである。
このため、本発明の一実施形態では、パブリッシュ/サブスクライブ・ネットワークは、例えば、1つまたは複数のメッセージング・ライン・カードを、ネットワーク・スイッチとルータのすべて、またはサブセットに挿入することにより、基礎をなすネットワーク/ファブリックの中に直接に展開されることが可能である。本発明の別の実施形態では、パブリッシュ/サブスクライブ・ネットワークは、メッシュ・オーバーレイ・ネットワーク(すべての物理構成要素が、相互接続された)として展開されることが可能である。例えば、4つのMAの完全メッシュ・ネットワークは、それらのMAのそれぞれが、そのMAの3つのピアMAのそれぞれに接続されたネットワークである。通常の実装では、パブリッシュ/サブスクライブ・ネットワークは、1つまたは複数の外部データ送信元および/または宛先、1つまたは複数のP&M(プロビジョニング−マネージメント)システム、1つまたは複数のMA(メッセージング・アプライアンス)、1つまたは複数のオプションのCE(キャッシング・エンジン)、1つまたは複数のオプションのAPI(アプリケーション・プログラミング・インタフェース)のメッシュ・ネットワークである。
とりわけ、パブリッシュ/サブスクライブ・ネットワーク全体の通信は、基礎をなすトランスポート・ロジックとは独立であるネイティブ・プロトコル・メッセージを使用して行われる。このことが、このアーキテクチャを、トランスポート・トランスペアレントなチャネル・ベースのメッセージング・アーキテクチャと呼ぶ理由である。
図3は、チャネル・ベースのメッセージング・アーキテクチャ320を、より詳細に示す。一般に、メッセージング送信元とメッセージング宛先の間の各通信パスは、メッセージング・トランスポート・チャネルと考えられる。各チャネル3261〜nは、チャネル送信元とチャネル宛先の間にインタフェース3281〜nを有して、物理媒体を介して確立される。それぞれのそのようなチャネルは、ネイティブ(例えば、Tervela(商標))メッセージ・プロトコルなどの、特定のメッセージ・プロトコル向けに確立される。エッジMA群(パブリッシュ/サブスクライブ・ネットワークのイングレスとイグレスを管理するMA群)だけが、チャネル・メッセージ・プロトコル(外部メッセージ・プロトコル)を使用する。チャネル・メッセージ・プロトコルに基づき、チャネル管理レイヤ324は、着信メッセージと送信メッセージが、プロトコル変換を要求するかどうかを判定する。各エッジMAにおいて、着信メッセージのチャネル・メッセージ・プロトコルが、ネイティブ・プロトコルとは異なる場合、チャネル管理レイヤ324は、プロセスのためにメッセージを、PTE(プロトコル変換エンジン)332を通るように送ってから、ネイティブ・メッセージ・レイヤ330に転送することにより、プロトコル変換を実行する。また、各エッジMAにおいて、送信メッセージのネイティブ・メッセージ・プロトコルが、チャネル・メッセージ・プロトコル(外部メッセージ・プロトコル)とは異なる場合、チャネル管理レイヤ324は、プロセスのためにメッセージを、PTE(プロトコル変換エンジン)332を通るように送ってから、トランスポート・チャネル3261〜nにルーティングすることにより、プロトコル変換を実行する。したがって、チャネルは、物理媒体を有するインタフェース3281〜nを管理し、さらにその物理媒体に関連する特定のネットワークとトランスポート・ロジックを管理し、さらにメッセージ再組立てまたはメッセージ・フラグメンテーションを管理する。
つまり、チャネルは、OSIトランスポート・レイヤないし物理レイヤ322を管理する。チャネル・リソースの最適化は、チャネルごとに行われる(例えば、帯域幅、メッセージ・サイズ分布、チャネル宛先リソース、チャネル健全性統計を含め、消費パターンに基づく、物理媒体に関するメッセージ密度最適化)。その場合、通信チャネルは、ファブリックにこだわらないため、特定のタイプのファブリックは、全く要求されない。実際、任意のファブリック媒体、例えば、ATM、Infiniband、またはEthernet(登録商標)でよい。
ところで、例えば、単一のメッセージが、複数のフレームにわたって分割される場合、または複数のメッセージが、単一のフレーム・メッセージ・フラグメンテーションにパックされる場合、または再組立てが、メッセージをチャネル管理レイヤに送るのに先立って行われる場合、メッセージ・フラグメンテーションまたはメッセージ再組立てが、必要とされる可能性がある。
図3は、ミドルウェア・アーキテクチャを有するネットワークにおける、いくつかの可能なチャネル実装をさらに示す。1つの実装340では、通信は、イーサネット交換ネットワークを介するマルチキャストを使用して、ネットワーク・ベースのチャネルを介して行われ、イーサネット交換ネットワークは、そのような通信のための物理媒体の役割をする。この実装では、送信元は、送信元のUDPポートを介して、送信元のIPアドレスから、関連するUDPポートを有する宛先のグループ(IPマルチキャスト・アドレスとして定義される)にメッセージを送信する。この実装342のバリエーションでは、送信元と宛先の間の通信は、UDPユニキャストを使用して、イーサネット交換ネットワークを介して行われる。送信元は、送信元のIPアドレスから、UDPポートを介して、それぞれのIPアドレスにおいてUDPポートを有する選定された宛先にメッセージを送信する。
別の実装344では、チャネルは、ネイティブのInfinibandトランスポート・プロトコルを使用するInfiniband相互接続を介して確立され、ただし、Infinibandファブリックは、物理媒体である。この実装では、チャネルは、ノード・ベースであり、送信元と宛先の間の通信は、それぞれのノード・アドレスを使用して、ノード・ベースである。さらに別の実装346では、チャネルは、RDMA(Remote Direct Memory Access)などの、本明細書でDC(直接接続)と呼ばれる、メモリ・ベースのチャネルである。このタイプのチャネルでは、メッセージは、送信元マシンから、宛先マシンのメモリの中に直接に送信され、このため、NICからアプリケーション・メモリ空間へのメッセージを扱うCPU処理を回避し、場合により、メッセージをカプセル化して、ネットワーク・パケットにするネットワーク・オーバーヘッドを回避する。
ネイティブ・プロトコルに関して、1つのアプローチは、前述したネイティブのTervela(商標)メッセージ・プロトコルを使用する。概念上、Tervela(商標)メッセージ・プロトコルは、IPベースのプロトコルと同様である。各メッセージは、メッセージ・ヘッダと、メッセージ・ペイロードとを含む。メッセージ・ヘッダは、いくつかのフィールドを含み、フィールドの1つは、トピック情報用である。前述したとおり、トピックは、コンシューマによって、共有情報ドメインにサブスクライブするのに使用される。
図4は、1つの可能なトピック・ベースのメッセージ・フォーマットを示す。図示されるとおり、メッセージは、ヘッダ370とペイロードを含む本文372、374を含む。2つのタイプのメッセージ、データ・メッセージと管理メッセージが、異なるメッセージ本文と異なるペイロード・タイプを持って示されている。ヘッダは、送信元名前空間IDと宛先名前空間ID、送信元セッションIDと宛先セッションID、トピック・シーケンス番号、ホップ・タイムスタンプに関するフィールドを含み、さらに、ヘッダは、トピック表記フィールド(好ましくは、可変長の)を含む。
トピックは、T1、T2、T3、T4のような、トークン・ベースのストリングとして定義されることもある。その際、T1、T2、T3、T4は可変長のストリングである。一例では、トピックはIBM株のリアルタイムの取引値を含むメッセージに関するトピック表記であるNYSE.RTF.IBM376として定義されることも可能である。一部の例では、メッセージの中のトピック表記は、1つまたは複数の整数値であってよいキーに符号化される、またはマップされることも可能である。そのような場合、各トピックは、一意のキーにマップされ、トピックとキーの間でマッピングするデータベースは、P&Mシステムによって保持され、オーバーザワイヤで、すべてのMAに更新が行われる。その結果、APIが、1つのトピックにサブスクライブする、またはパブリッシュすると、MAは、メッセージのトピック・フィールドのために使用された、関連する一意のキーを戻すことができる。
好ましくは、サブスクリプション・フォーマットは、メッセージ・トピックと同一のフォーマットに従う。しかし、サブスクリプション・フォーマットは、いずれのトピック・サブストリングとも合うワイルドカード、またはトピック・ストリングに対する通常の表現パターン一致もサポートする。実際のトピックに対するワイルドカード・マッピングを扱うことは、P&Mシステムに依存すること、あるいはワイルドカードまたはパターン一致要求の複雑さに依存して、MAによって扱われることが可能である。
例えば、パターン一致規則は、以下のような一致規則に従う。すなわち、
例#1 T1.*.T3.T4というワイルドカードを有するストリングが、T1.T2a.T3.T4およびT1.T2b.T3.T4と一致するが、T1.T2.T3.T4.T5とは一致しない。
例#2 T1.*.T3.T4*というワイルドカードを有するストリングが、T1.T2a.T3.T4およびT1.T2b.T3.T4とは一致しないが、T1.T2.T3.T4.T5とは一致する。
例#3 T1.*.T3.T4.[*](オプションの第5の要素)というワイルドカードを有するストリングが、T1.T2a.T3.T4、T1.T2b.T3.T4、およびT1.T2.T3.T4.T5とは一致するが、T1.T2.T3.T4.T5.T6とは一致しない。
例#4 T1.T2*.T3.T4というワイルドカードを有するストリングが、T1.T2a.T3.T4およびT1.T2b.T3.T4と一致するが、T1.T5a.T3.T4とは一致しない。
例#5 T1.*T3.T4.>(任意の数の末尾要素)という、ワイルドカードを有するストリングが、T1.T2a.T3.T4、T1.T2b.T3.T4、T1.T2.T3.T4.T5、およびT1.T2.T3.T4.T5.T6と一致する。
図5は、トピック・ベースのメッセージ・ルーティングを示す。図示されるとおり、トピックは、T1.T2.T3.T4のような、トークン・ベースのストリングと定義され、ただし、T1、T2、T3、T4は可変長のストリングである。見て取ることができるとおり、特定のトピック表記400を有する着信メッセージが、通信チャネル404に選択的にルーティングされ、ルーティング決定は、ルーティング・テーブル402に基づいて行われる。チャネルに対するトピック・サブスクリプションのマッピングにより、経路が定義され、パブリッシュ/サブスクライブ・ネットワーク全体にわたってメッセージを伝えるのに使用される。それらすべての経路のスーパーセット、またはサブスクリプションとチャネルの間のマッピングにより、ルーティング・テーブルが定義される。ルーティング・テーブルは、サブスクリプション・テーブルとも呼ばれる。ストリング・ベースのトピックを介するルーティングのためのサブスクリプション・テーブルは、いくつかの仕方で構造化できるが、好ましくは、テーブルのサイズと、ルーティング・ルックアップ速度を最適化するように構成される。1つの実装では、サブスクリプション・テーブルは、動的ハッシュ・マップ構造として定義されてもよく、別の実装では、サブスクリプション・テーブルは、図5の図に示されるとおり、ツリー構造で構成される。
ツリーは、エッジによって結び付けられたノード(例えば、T1,...T10)を含む。ただし、トピック・サブスクリプションの各サブストリングは、ツリーにおけるノードに対応する。所与のサブスクリプションにマップされたチャネルは、そのサブスクリプションのリーフ・ノード上に格納されて、各リーフ・ノードに関して、トピック・サブスクリプションが由来する(すなわち、受信されたサブスクリプション要求が経由した)チャネルのリストを示す。そのリストは、トピック表記がサブスクリプションと一致するメッセージのコピーを、いずれのチャネルが受信すべきかを示す。図示されるとおり、メッセージ・ルーティング・ルックアップは、メッセージ・トピックを入力として取り込み、そのトピックの各サブストリングを使用して、ツリーを解析して、その着信メッセージ・トピックに関連する、様々なチャネルを探し出す。例えば、T1、T2、T3、T4、T5は、チャネル1、2、3に向かわせられ、T1、T2、T3は、チャネル4に向かわせられ、T1、T6、T7、T*、T9は、チャネル4と5に向かわせられ、T1、T6、T7、T8、T9は、チャネル1に向かわせられ、T1、T6、T7、T*、T10は、チャネル5に向かわせられる。
ルーティング・テーブル構造の選択は、ルーティング・ルックアップ・テーブルを最適化するように意図されているが、ルックアップのパフォーマンスは、着信メッセージ・トピックと一致する1つまたは複数のトピック・サブスクリプションを見出すためのサーチ・アルゴリズムにも依存する。したがって、ルーティング・テーブル構造は、そのようなアルゴリズムを受け容れることができなければならず、その逆も同様である。ルーティング・テーブルのサイズを小さくする1つの仕方は、ルーティング・アルゴリズムが、パブリッシュ/サブスクライブ・ネットワーク全体にわたってサブスクリプションを選択的に広めることを可能にすることによってである。例えば、あるサブスクリプションが、既に広められている別のサブスクリプションのサブセット(例えば、ストリング全体の一部分)であるように見える場合、MAは、そのサブスクリプションのスーパーセットに関する情報を既に有しているので、そのサブセット・サブスクリプションを広める必要は、全くない。
以上に基づき、好ましいメッセージ・ルーティング・プロトコルは、トピック・ベースのルーティング・プロトコルであり、資格は、サブスクライバと、それぞれのトピックとの間のマッピングにおいて示される。資格は、サブスクライバごとに、またはサブスクライバのグループ/クラスごとに指定され、サブスクライバが、どのようなメッセージを消費する権利を有するか、またはいずれのメッセージが、そのようなプロデューサ(パブリッシャ)によって作成(パブリッシュ)されてもよいかを示す。それらの資格は、P&Mシステムにおいて定義され、パブリッシュ/サブスクライブ・ネットワークにおけるすべてのMAに通信され、その後、MAによって、MAのルーティング・テーブルを作成し、更新するのに使用される。
パブリッシュ/サブスクライブ・ネットワーク内でルーティングされるすべてのメッセージは、特定のチャネルで受信されるか送信される。これらのチャネルを使用して、MAは、パブリッシュ/サブスクライブ・ネットワーク内のすべての他の物理構成要素と通信する。しかし、これらのインタフェースが中断される時があり、あるいは宛先が負荷について行くことができない時がある。これら、およびその他の類似する状況で、メッセージを、ストレージから再び呼び出し、再送することが可能である。したがって、ストア・アンド・フォワード機能が必要な時には、必ず、MAは、キャッシング・エンジン(CE)に機能的に関連する。さらに、非常にしばしば、信頼性、利用可能性、整合性が、企業オペレーションにおいて必要なので、パブリッシュ/サブスクライブ・システムは、フォールト・トレラント・システムとして展開される構成要素のいくつかを用いて、フォールト・トレランスのために設計される。
例えば、MAは、第1のMAが1次MAと呼ばれ、第2のMAが2次MAすなわちフォールト・トレラントMA(FT MA)と呼ばれる、フォールト・トレラントMAペアとして展開される。次に、ストア・アンド・フォワード・オペレーションのために、CE(キャッシュ・エンジン)が、1次コア/エッジMAまたは2次コア/エッジMAに接続される。1次MAまたは2次MAは、CEに対する能動的な接続を有するときに、ルーティングされるメッセージのすべてまたはサブセットをそのCEに転送し、そのCEは、それらのメッセージを、インデクシングし、保存のためにストレージ領域に格納する。記録されたメッセージは、所定の期間にわたって、要求時の再送に利用可能である。さらに、図2に示されているように、CEは、障害の場合に2次CEが1次CEを引き継ぐフォールト・トレラントCEペアとして展開されることが可能である。
図6に示されるように、CEは、物理媒体を介して、MAに直接に接続され、大量の、待ち時間が少ないメッセージング環境において、ストア・アンド・フォワード・アーキテクチャのフィーチャを提供するように設計される。次いで図7は、本発明の一実施形態に従って構成されたCEを例示するブロック図である。
CE700は、いくつかの機能を実行する。メッセージ・データ永続性のために、1つの機能は、MAによって転送されたデータ・メッセージを受信すること、様々なメッセージ・ヘッダ・フィールドを使用して、それらのメッセージに索引を付けること、それらのメッセージをストレージ領域710の中に格納することを含む。別の機能は、MAからのメッセージ取得要求に応答すること、失われたまたは受信されなかった(そのため、コンシューマによって再び要求された)メッセージを再送することを含む。
一般に、CEは、MAと同一の論理レイヤ上に構築される。しかし、CEのネイティブ(例えば、Tervela(商標))メッセージング・レイヤは、相当に簡略化される。ルーティング・エンジン・ロジックの必要性は全くない。というのは、パブリッシュ/サブスクライブ・ネットワークにおける別の物理構成要素にルーティングされるのとは異なり、すべてのメッセージは、CEにおいてローカルで扱われて、CEの管理メッセージ・レイヤ714に、またはCEのキャッシング・レイヤ702に送られるからである。前述の場合と同様に、管理メッセージは、キャッシング・レイヤ702に転送される取得要求以外は、通常、管理目的で使用されるからである。すべてのデータ・メッセージは、キャッシング・レイヤに転送され、キャッシング・レイヤは、インデキシング・サービス712を使用して、トピックベース・インデキシングでそれらのメッセージに最初にインデキシングを行い、次に、ストレージ領域710(例えば、RAID、ディスクなど)の中に、それらのメッセージを格納するために、ストレージ・サービス708を使用する。すべてのデータ・メッセージは、しばしば冗長持続性ストレージであるストレージ領域710の中に事前定義された期間にわたって保持される。インデキシング・サービス712は、「ガーベジ・コレクション」活動を担い、有効期限が切れたデータ・メッセージが、ストレージ領域から破棄される必要がある場合、ストレージ・サービス708に通知する。
CEは、ソフトウェア・ベースのソリューションまたは組み込みソリューションとすることが可能である。より具体的には、CEは、ハイ・エンド・サーバ内のオペレーティング・システム(OS)の上で動作するソフトウェア・アプリケーションとして構成されることが可能である。そのようなサーバは、MAとの間のデータ転送レートを高めるためにハイ・パフォーマンスNIC(ネットワーク・インタフェース・カード)を含む。もう1つの構成では、CEは、MAとの間のネットワークI/O(入出力)の高速化とストレージ領域との間のストレージI/Oの加速との両方のための組み込みソリューションである。そのような組込みソリューションは、1つまたは複数のディスクへのデータの効率的なストリーミングのために設計される。したがって、一般的にパフォーマンスを改善するために、CEの実装は、MA−CE−ストレージ・データ転送レートを最大にし、要求されたメッセージの取得待ち時間を最小にするために設計される。
例えば、MAとCEとの間のデータ転送を最大にするために、MAとCEの通信リンクは、直接の10ギガビット/sイーサネット・ファイバ相互接続またはMyrinetなどの任意の他のスループットが高く待ち時間の少ない相互接続として実装される。また、このリンクでのスループットを高めるために、CEは、できる限り多くのメッセージを単一の大きいフレームにパックすることが可能である。さらに、ソフトウェア・ベースのCEは、CPU(中央処理装置)とOSをバイパスし、これによってスループットを最大にし、待ち時間を最小にするremote direct memory accessを介してMAと通信する。その場合に、ストレージI/O効率を最大にするために、CEは、ディスクI/Oを複数のストレージ・デバイスにまたがって分散させる。1つの実装で、CEは、分散データベース・ロジックと分散ハイ・パフォーマンス冗長ストレージ技術の組み合わせを使用する。また、要求されたメッセージの取得待ち時間を最小にするために、CEの1つの実装は、RAM(ランダム・アクセス・メモリ)を使用して、インデックスを維持し、最も最近のメッセージまたは最も頻繁に取得されるメッセージをストレージ・デバイスにフラッシュする前にこれらのメッセージを維持する。
MAとインタフェースするときに、CEは、2タイプのメッセージを扱い、一方のタイプは、通常のまたは完全なデータ・メッセージであり、他方のタイプは、不完全なまたは部分的にパブリッシュされたデータ・メッセージである。具体的に言うと、CE 700のインデクシング・サービス712は、部分的にパブリッシュされたメッセージを受信する時に、そのメッセージを、この部分的にパブリッシュされたメッセージのマスタ・イメージとも呼ばれる、同一トピックに関する最後の既知の完全なメッセージと比較する。インデクシング・サービス712は、すべての完全なメッセージについて、マスタ・イメージをRAM(図示せず)内で維持する。部分的にパブリッシュされたメッセージ(新しい値を伴うメッセージ更新)は、そのメッセージのマスタ・イメージ内の古い値を置換すると同時に、これによって更新されない未変更の値を維持する。任意の他のデータ・メッセージと同様に、部分的にパブリッシュされたメッセージはインデクシングされ、再送に使用可能である。また、CEによって記録される任意の他のメッセージと同様に、マスタ・イメージも、異なるメッセージ・タイプとして供給されることが可能であること、またはそのメッセージ・ヘッダ・フラグがそれがマスタ・イメージであることを示す異なる値を有することが可能であることを除いて、再送に使用可能である。実際に、マスタ・イメージは、アプリケーションに重要である場合があり、それぞれのAPIを使用することによって、そのようなアプリケーションは、任意の所与の時に、部分的にパブリッシュされたメッセージ・ストリームのマスタ・イメージを要求することが可能である。その後に、そのようなアプリケーションは、部分的にパブリッシュされたメッセージ更新を受け取る。
融合された接続中保証サービス品質(QoS)と切断中保証サービス品質を実現するために、メッセージング・ファブリックは、常時、データ永続性とデータ保全性を維持しなければならない。フォールト・トレラント永続キャッシング・ソリューションを実現するために、これらのキャッシング・エンジンは、1次CEと2次CEの対からなるフォールト・トレラント・ペアとしてまたは3つ以上のCEノードからなるフォールト・トレラント・グループとして構成され、展開されることが可能である。3つ以上のキャッシング・エンジンが、同一トピック・ベースのサブスクリプションを介して互いに論理的にリンクされる場合に、これらは、同一のデータにサブスクライブし、したがって、サブスクライブされたデータの固有の一貫したビューを維持する。データ損失の場合に、キャッシング・エンジンは、フォールト・トレラント・グループの他のキャッシング・エンジン・メンバに、失われたデータの再生を要求することが可能である。同一のフォールト・トレラント・グループのキャッシング・エンジンの間でのデータの同期化は、メッセージング・ファブリックによって並列化され、このメッセージング・ファブリックは、MAを介して、サブスクライブされたメッセージング・トラフィックのコピーをすべてのキャッシング・エンジン・インスタンスにインテリジェントにまた効率的に転送する。その結果、これは、フォールト・トレラント展開と災害復旧展開に関する非同期データ整合性を可能にする。ここで、データ同期化と永続性は、ストレージ/ディスク・ミラーリング技術またはデータベース・レプリケーション技術を活用することによるのではなく、メッセージング・ファブリックによって実行され、保証される。
冗長性とデータ整合性にメッセージング・ファブリックを使用することの利点の1つは、データとインデックス(データベース・レプリケーションに関して)および/またはディスク・ストレージ・オーバーヘッド(リモート・ディスク・ミラーリングに関して)ではなく、データだけがキャッシング・エンジンの間で同期化されるので、同期化トラフィックに起因する帯域幅利用率が下がることである。第2の利点は、メッセージング・レイヤが既に任意の所与のサブスクリプションに対するメッセージの順序を保証するので、メッセージ順序付けが解決されることである。
さらに説明するために、図8に、キャッシング・エンジン・フォールト・トレラント・ペア構成を有するメッセージング・アプライアンスを示し、1次MAから2次MAへのAPIのフェイルオーバ・プロセスを説明する。
CE障害イベントの前すなわちフェーズ#1で、2つのキャッシング・エンジンの両方は、同一トピックにサブスクライブしているので、同一のサブスクライブされたメッセージング・トラフィックを受信する。1次キャッシング・エンジンが故障する時、すなわちイベント#2に、MAはその故障を検出し、2次MA(1次MAを引き継ぐ)にフェイルオーバし、このフェイルオーバは、2次MAへのAPIフェイルオーバも行う。少し後に、1次キャッシング・エンジンは、復旧し、これが、イベント#3であり、1次キャッシング・エンジンは、そのサブスクリプションを再開始し、データの受信時に、そのサブスクリプションのすべてでデータ損失を検出する。この失われたデータは、サブスクリプションあたり1つまたは複数の再生要求を2次キャッシング・エンジンに送ることによって要求される。データ同期化フェーズは、メッセージング・ロジックを活用して、1次キャッシング・エンジンと2次キャッシング・エンジンとの間で開始される。
本発明の一実施形態では、データ同期化トラフィックは、メッセージング・ファブリックを経るが、図8に示されているように、これが同期化パス#1である。このパスは、事前定義のメッセージ・レートまたは事前定義の帯域幅を超えないように構成されることが可能である。これは、1次キャッシング・エンジンおよび2次キャッシング・エンジンが、異なる地理的位置に置かれる場合の、WANリンクまたは専用ファイバ接続などの帯域幅を減らされたサイト間リンクを使用する災害復旧構成にクリティカルである可能性がある。
その代わりに、本発明のもう1つの実施形態では、データ同期化トラフィックが、InfinibandまたはMyrinetなどの代替の高速相互接続直接リンクまたはスイッチを経て、同期化トラフィックを通常のメッセージング・トラフィックから分離する。そのような代替同期化パス#2は、同期化トラフィック向けの1次リンクまたはバックアップ・リンクとして使用可能とすることが可能である。このリンクは、専用同期化パスとして静的に構成されることが可能であり、あるいは、全体的なメッセージング・ファブリック負荷に基づいてリアル・タイムで動的に選択されることが可能である。キャッシング・エンジンまたはメッセージング・アプライアンスのいずれかは、同期化トラフィックをメッセージング・ファブリックからこの代替同期化パスに移動することを判断することが可能である。
同期化が終わった時、すなわちイベント#4の時に、1次CEは、引き継ぎの準備ができている。その時に、1次MAは、アクティブになるか、故障が2次CEおよび/または2次MAで発生するまでインアクティブのままであるかのいずれかであることが可能である。
要するに、本発明は、メッセージングの新たなアプローチを提供し、より具体的には、メッセージング・システムの有効性を改善し、キャッシング・ソリューションの管理しやすさを単純化し、様々なレベルの保証された配信サービス品質に関する回復待ち時間を減らす、フォールト・トレラント永続キャッシング機能を有する終端間パブリッシュ/サブスクライブ・ミドルウェア・アーキテクチャを提供する。本発明を、本発明の、いくつかの好ましいバージョンに関連して、相当に詳細に説明してきたが、他のバージョンも可能である。したがって、添付の特許請求の範囲の趣旨および範囲は、本明細書に含まれる好ましいバージョンの説明に限定されてはならない。
本発明の諸原理による終端間ミドルウェア・アーキテクチャを示す図である。 オーバーレイ・ネットワークを示す図である。 本発明の諸原理による終端間ミドルウェア・アーキテクチャで実施される企業インフラストラクチャを示す図である。 チャネル・ベースのメッセージング・システム・アーキテクチャを示す図である。 1つの可能なトピック・ベースのメッセージ・フォーマットを示す図である。 1つの可能なトピック・ベースのメッセージ・フォーマットを示す図である。 トピック・ベースのメッセージ・ルーティングおよびルーティング・テーブルを示す図である。 MAとCEの間における通信のためのインタフェースを示す図である。 MAとCEの間における通信のためのインタフェースを示す図である。 本発明の一実施形態に従って構成されたCE(キャッシング・エンジン)を示すブロック図である。 1次キャッシング・エンジンと2次キャッシング・エンジンを有するフォールト・トレラント構成を示し、障害の場合の異なるフェーズを示す図である。

Claims (53)

  1. 1つまたは複数のアプリケーションと、
    上記アプリケーションへおよび上記アプリケーションからを含むメッセージの受信およびルーティングのために機能する複数のメッセージング・アプライアンスと、
    フォールト・トレラント構成で構成された複数のキャッシング・エンジンであって、1つまたは複数のキャッシング・エンジンは、前記複数のメッセージング・アプライアンスの中からの各指定されたメッセージング・アプライアンスに接続され、前記複数のキャッシング・エンジンのそれぞれは、対応してトピックにサブスクライブし、同一トピックにサブスクライブするキャッシング・エンジンのグループ内のすべてのキャッシング・エンジンが同一のメッセージ・データを受信し、上記トピックに関連するすべてのメッセージ・トラフィックの一貫した同期化されたビューを維持するように冗長性を提供するために、対応して前記同一トピックにサブスクライブするキャッシング・エンジンに接続された前記指定されたメッセージング・アプライアンスのいずれかに論理的にリンクされる、複数のキャッシング・エンジンと
    を含むメッセージング・システム。
  2. 前記複数のメッセージング・アプライアンスを含み、メッセージ・ファブリックを介してまたはキャッシング・エンジン間の直接接続が存在する場合に上記直接接続を介して、前記一貫した同期化されたビューを提供するように機能する、前記メッセージ・トラフィックをルーティングするメッセージング・ファブリックであって、リアル・タイム・フェイルオーバが、メッセージング・アプライアンスまたはキャッシング・エンジンのいずれかによって、メッセージング・ファブリック負荷に基づいて判断される、メッセージング・ファブリックを有する請求項1に記載のメッセージング・システム。
  3. 前記直接接続は、高速直接接続またはスイッチを含む請求項2に記載のメッセージング・システム。
  4. 前記高速直接接続は、Infiniband相互接続またはMyrinet相互接続を含む請求項3に記載のメッセージング・システム。
  5. 前記一貫した同期化されたビューを維持するために、各キャッシング・エンジンは、前記メッセージ・データを獲得するのに予め決めた帯域幅および/またはメッセージ・レートを使用するように機能する請求項1に記載のメッセージング・システム。
  6. 1つまたは複数のキャッシング・エンジンの故障の時に、同一のメッセージング・アプライアンスに接続されているアクティブのままである任意の他のキャッシング・エンジンが前記故障したキャッシング・エンジンを引き継ぎ、アクティブであるものが残っていない場合またはそのメッセージング・アプライアンスを伴う任意の他の故障の時に、前記故障したメッセージング・アプライアンスの前記キャッシング・エンジンに論理的にリンクされたもう1つのメッセージング・アプライアンスが、それを引き継ぐように機能し、すべての引き継ぎが、故障したキャッシング・エンジンおよび/またはメッセージング・アプライアンスに論理的に接続された前記1つまたは複数のアプリケーションに対してトランスペアレントである請求項1に記載のメッセージング・システム。
  7. 回復した、任意の故障したキャッシング・エンジンは、失われたデータをそれに送るように、アクティブのままである別のキャッシング・エンジンに要求することによって、前記失われたデータを取得するようにさらに機能する請求項6に記載のメッセージング・システム。
  8. 各キャッシング・エンジンは、
    メッセージを送信し、受信するように機能するメッセージ・レイヤと、
    まず受信されたメッセージをインデクシングし、受信された部分的にパブリッシュされたメッセージのイメージを維持するように機能するインデクシング・サービスを有するキャッシング・レイヤと、
    受信されたメッセージのすべてまたはサブセットを前記ストレージに格納するように機能するストレージおよびストレージ・サービスと、
    受信されたメッセージと送信されたメッセージをトランスポートする1つまたは複数の物理チャネル・インターフェースと、
    前記1つまたは複数の物理チャネル・インターフェースのそれぞれを介するメッセージの送信と受信を制御するチャネル管理を有するメッセージ・トランスポート・レイヤと
    を含む請求項1に記載のメッセージング・システム。
  9. 各キャッシング・エンジン内の前記ストレージは、格納された受信されたメッセージが上記キャッシング・エンジンからの要求時の再送信に一時的に使用可能なままであることを可能にするように機能する請求項8に記載のメッセージング・システム。
  10. メッセージング・ファブリックと、メッセージング・ファブリックを介して前記メッセージング・アプライアンスにリンクされ、各メッセージング・アプライアンスと管理メッセージを交換するように構成されたプロビジョニング・マネージメント・システムとをさらに含む請求項1に記載のメッセージング・システム。
  11. 各メッセージング・アプライアンスは、さらに、メッセージ伝送プロトコルとメッセージ・ルーティング・パスを動的に選択することによってメッセージの前記ルーティングを実行するように機能する請求項1に記載のメッセージング・システム。
  12. 前記メッセージング・ファブリックは、チャネル・ベースであり、ファブリックにこだわらない物理媒体である相互接続を含む請求項1に記載のメッセージング・システム。
  13. 前記相互接続は、イーサネット(登録商標)、メモリ・ベースの直接接続、またはInfinibandとして構成される請求項12に記載のメッセージング・システム。
  14. 前記相互接続は、スループットが高く待ち時間が少ない相互接続のために機能する直接10ギガビット・イーサネット・ファイバ相互接続またはMyrinet相互接続としてである請求項12に記載のメッセージング・システム。
  15. 前記メッセージは、前記メッセージが前記メッセージング・システムに入る時に互いから分離され、メッセージが前記メッセージング・システムから出る時に組み合わされる、スキーマとペイロードを用いて構成される請求項1に記載のメッセージング・システム。
  16. 前記メッセージと管理メッセージがトピック・ベースのフォーマットを有し、各メッセージがヘッダとペイロードを有し、前記ヘッダが送信元名前空間識別フィールドと宛先名前空間識別フィールドに加えてトピック・フィールドを含む請求項10に記載のメッセージング・システム。
  17. 前記メッセージは、トピック・フィールドを有するサブスクリプション・メッセージを含み、前記トピック・フィールドは、上記トピックと前記サブスクリプション・メッセージが同一の数のトピック・サブストリングを有するという条件付きで前記トピックを任意のトピック・サブストリングと一致させる任意の数のワイルド・カードを有する可変長ストリングを有する請求項1に記載のメッセージング・システム。
  18. 前記キャッシング・エンジンは、メッセージ・データ・ストア・アンド・フォワード機能を含むサービス品質機能を提供するように機能する請求項1に記載のメッセージング・システム。
  19. 各キャッシング・エンジンに関連する前記ストレージは、メッセージ入出力を分散させるように機能する複数のストレージ・デバイスを含む請求項8に記載のメッセージング・システム。
  20. 各キャッシング・エンジン内の前記メッセージ・レイヤは、管理メッセージを扱うように機能する管理メッセージ・レイヤを含む請求項8に記載のメッセージング・システム。
  21. 各キャッシング・エンジン内の前記メッセージ・レイヤは、要求されたメッセージを前記キャッシング・レイヤから取得し、ヘッダ・フィールドとペイロードを有する受信されたメッセージをフォーマットするように機能する請求項8に記載のメッセージング・システム。
  22. 前記キャッシング・レイヤは、さらに、ランダム・アクセス・メモリ(RAM)を含み、前記インデクシング・サービスは、さらに、前記イメージを前記RAM内で維持するように機能する請求項8に記載のメッセージング・システム。
  23. 前記キャッシング・レイヤによって受け取られ、維持される各部分的にパブリッシュされたメッセージの前記イメージは、更新値および前記更新によって変更されない古い値を含む請求項8に記載のメッセージング・システム。
  24. その間に前記メッセージが前記ストレージ内で再送に一時的に使用可能なままである時間は、所定である請求項9に記載のメッセージング・システム。
  25. 前記ストレージは、冗長永続メモリ・デバイスである請求項8に記載のメッセージング・システム。
  26. ソフトウェア・ベースの構成または組み込みベースの構成として提供される請求項1に記載のメッセージング・システム。
  27. オペレーティング・システムの上で動作するソフトウェア・アプリケーション内で実施される請求項1に記載のメッセージング・システム。
  28. メッセージング・トラフィックの前記一貫した同期化されたビューは、前記メッセージング・システムが部分的パブリッシュ型、融合型、接続中保証型、切断中保証型のうちの1つまたは組み合わせを含むメッセージング・サービス品質を提供できるようにする請求項1に記載のメッセージング・システム。
  29. 複数のメッセージング・アプライアンスを有するメッセージング・ファブリックを構成するステップと、
    1つまたは複数のキャッシング・エンジンが前記複数のメッセージング・アプライアンスの中からの各指定されたメッセージング・アプライアンスに接続されるフォールト・トレラント構成で複数のキャッシング・エンジンを構成するステップと、
    冗長性を与えるために、トピックへのサブスクリプションによって、前記複数のキャッシング・エンジンのそれぞれを、上記キャッシング・エンジンと共通して類似するトピックにサブスクライブされた接続された1つまたは複数の他のキャッシング・エンジンである前記指定されたメッセージング・アプライアンスのうちのいずれかに論理的にリンクするステップと、
    同一のトピックにサブスクライブするキャッシング・エンジンのグループごとに、前記グループ内のすべてのキャッシング・エンジンが、同一のメッセージ・データを受信し、上記トピックに関連するすべてのメッセージ・トラフィックの一貫した同期化されたビューを維持するように、内のすべてのキャッシング・エンジンを同期化するステップであって、上記同期化は、メッセージング・サービス品質の提供を可能にする、同期化するステップと
    を提供することを含む、メッセージング・システム内でサービス品質を提供する方法。
  30. メッセージング・サービス品質は、部分的パブリッシュ・メッセージング、融合されたメッセージング、接続中保証メッセージング、切断中保証メッセージングを含む請求項29に記載の方法。
  31. 1つまたは複数のキャッシング・エンジンの故障の時に、同一のメッセージング・アプライアンスに接続された、アクティブのままである任意の他のキャッシング・エンジンによって、前記故障したキャッシング・エンジンを引き継ぐステップと、アクティブであるものが残っていない場合またはそのメッセージング・アプライアンスを伴う任意の他の故障の時に、前記故障したメッセージング・アプライアンスの前記キャッシング・エンジンに論理的にリンクされたもう1つのメッセージング・アプライアンスによって、前記故障したメッセージング・アプライアンスを引き継ぐステップとをさらに含む請求項29に記載の方法。
  32. 前記キャッシング・エンジンのそれぞれと1つまたは複数のアプリケーションとの間をそれらのめいめいの指定されたメッセージング・アプライアンスを介してインターフェースするステップをさらに含み、すべての引き継ぎが、故障したキャッシング・エンジンおよび/またはメッセージング・アプライアンスに論理的に接続された前記1つまたは複数のアプリケーションに対してトランスペアレントである請求項29に記載の方法。
  33. 前記一貫した同期化されたビューを維持するステップは、メッセージ・ファブリックを介してまたはキャッシング・エンジン間の直接接続が存在する場合に上記直接接続を介して、達成され、リアル・タイム・フェイルオーバは、メッセージング・アプライアンスまたはキャッシング・エンジンのいずれかによって、メッセージング・ファブリック負荷に基づいて判断される請求項29に記載の方法。
  34. メッセージング・トランスポート・レイヤ、管理メッセージ・レイヤ、キャッシング・レイヤを、インデクシング・サービスと関連するストレージと共に有するキャッシング・エンジン内で
    データと管理メッセージを前記メッセージ・トランスポート・レイヤによって受信するステップと、
    管理メッセージを前記管理メッセージ・レイヤに、データ・メッセージを前記キャッシング・レイヤに転送するステップであって、前記管理メッセージ・レイヤに転送されたメッセージ取得要求メッセージは、前記キャッシング・レイヤにルーティングされる、ステップと、
    前記インデクシング・サービス内で前記データ・メッセージをインデクシングするステップであって、前記インデクシングがトピック・ベースである、ステップと、
    前記インデクシングに基づいて、前記データ・メッセージをストレージ・デバイス内に格納するステップであって、前記データ・メッセージは、メッセージ取得要求メッセージに応答する再送に使用可能である所定の期間の間に前記ストレージ・デバイス内で維持される、ステップと
    を実行するステップ
    を含む、キャッシング・エンジンを用いてサービス品質を提供する方法。
  35. 前記データ・メッセージは、完全なデータ・メッセージまたは部分的にパブリッシュされたデータ・メッセージのいずれかである請求項34に記載のキャッシング・エンジンを用いてサービス品質を提供する方法。
  36. 各データ・メッセージは関連するトピックを有し、前記インデクシング・サービスは各完全なデータ・メッセージのマスタ・イメージを維持し、部分的に完全なメッセージである受信されたデータ・メッセージについて、前記インデクシング・サービスは、前記受信されたデータ・メッセージを、前記部分的にパブリッシュされたメッセージの関連トピックに類似する関連トピックを有する完全なメッセージの最も最近のマスタ・イメージと比較して、前記マスタ・イメージをどのように更新しなければならないかを決定する請求項35に記載のキャッシング・エンジンを用いてサービス品質を提供する方法。
  37. 前記部分的にパブリッシュされたメッセージがインデクシングされ、再送に使用可能である請求項35に記載のキャッシング・エンジンを用いてサービス品質を提供する方法。
  38. 前記マスタ・イメージがインデクシングされ、再送に使用可能である請求項36に記載のキャッシング・エンジンを用いてサービス品質を提供する方法。
  39. メッセージを送信し、受信するように機能するメッセージ・レイヤと、
    まず受信されたメッセージをインデクシングし、受信された部分的にパブリッシュされたメッセージのイメージを維持するように機能するインデクシング・サービスを有するキャッシング・レイヤ、ストレージ、受信されたメッセージのすべてまたはサブセットを前記ストレージに格納するように機能するストレージ・サービスであって、前記受信されたメッセージのすべてまたはサブセットは、要求時の再送信に一時的に使用可能なままになる、キャッシング・レイヤ、ストレージ、ストレージ・サービスと、
    受信されたメッセージおよび送信されたメッセージをトランスポートする1つまたは複数の物理チャネル・インターフェースと、
    前記1つまたは複数の物理チャネル・インターフェースのそれぞれを介するメッセージの送信と受信を制御するチャネル管理を有するメッセージング・トランスポート・レイヤと
    を含む、メッセージング・システム内のキャッシング・エンジン。
  40. 故障時に2次キャッシング・エンジンが1次キャッシング・エンジンを引き継ぐ、フォールト・トレラント・キャッシング・エンジン・ペアまたはフォールト・トレラント・キャッシング・エンジン・グループの一部としてフォールト・トレラント機能を有して展開される請求項41に記載のキャッシング・エンジン。
  41. 前記メッセージ・レイヤは、管理メッセージを扱うように機能する管理メッセージ・レイヤを含む請求項42に記載のキャッシング・エンジン。
  42. 前記メッセージ・レイヤは、要求されたメッセージを前記キャッシング・レイヤから取得し、ヘッダ・フィールドとペイロードを有する受信されたメッセージをフォーマットするように機能する請求項39に記載のキャッシング・エンジン。
  43. 前記キャッシング・レイヤは、さらに、ランダム・アクセス・メモリ(RAM)を含み、前記インデクシング・サービスは、さらに、前記イメージを前記RAM内で維持するように機能する請求項39に記載のキャッシング・エンジン。
  44. 前記キャッシング・レイヤによって受け取られ、維持される各部分的にパブリッシュされたメッセージの前記イメージは、更新値および前記更新によって変更されない古い値を含む請求項39に記載のキャッシング・エンジン。
  45. 前記メッセージが前記ストレージ内で再送に一時的に使用可能なままである時間は、所定である請求項39に記載のキャッシング・エンジン。
  46. 前記ストレージは、冗長永続メモリ・デバイスである請求項39に記載のキャッシング・エンジン。
  47. ソフトウェア・ベースの構成または組み込みベースの構成として提供される請求項39に記載のキャッシング・エンジン。
  48. オペレーティング・システムの上で動作するソフトウェア・アプリケーション内に埋め込まれる請求項39に記載のキャッシング・エンジン。
  49. 部分的データ・パブリケーション・サービスと、保証接続と保証切断のメッセージ配信サービス品質とを提供するように機能する請求項39に記載のキャッシング・エンジン。
  50. 前記ストレージは、メッセージ入出力を分散させるように機能する複数のストレージ・デバイスを含む請求項39に記載のキャッシング・エンジン。
  51. 前記キャッシング・エンジンのオペレーションを管理するように機能するプロビジョニング・マネージメント・システムをさらに含む請求項1に記載のメッセージング・システム。
  52. 前記アプリケーションがネイティブ・メッセージ・フォーマットでパブリッシュし、サブスクライブするステップを可能にするように機能する1つまたは複数のアプリケーション・プログラミング・インターフェースをさらに含む請求項1に記載のメッセージング・システム。
  53. 前記メッセージング・アプライアンスのいずれかに関連し、前記アプリケーションが外部メッセージ・フォーマットでパブリッシュし、サブスクライブするステップを可能にするように機能する、1つまたは複数のプロトコル変換エンジンをさらに含む請求項1に記載のメッセージング・システム。
JP2007550409A 2005-01-06 2005-12-23 メッセージング・システム内のキャッシング・エンジン Pending JP2008527538A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US64198805P 2005-01-06 2005-01-06
US68898305P 2005-06-08 2005-06-08
US11/316,778 US7970918B2 (en) 2005-01-06 2005-12-23 End-to-end publish/subscribe middleware architecture
PCT/US2005/047637 WO2006074109A2 (en) 2005-01-06 2005-12-23 A caching engine in a messaging system

Publications (1)

Publication Number Publication Date
JP2008527538A true JP2008527538A (ja) 2008-07-24

Family

ID=36641970

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2007550409A Pending JP2008527538A (ja) 2005-01-06 2005-12-23 メッセージング・システム内のキャッシング・エンジン
JP2007550402A Pending JP2008537612A (ja) 2005-01-06 2005-12-23 インテリジェント・メッセージング・アプリケーション・プログラミング・インタフェース
JP2007550501A Pending JP2008527860A (ja) 2005-01-06 2006-01-06 メッセージ・パブリッシュ/サブスクライブ・システム内のプロビジョニング−マネージメント

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2007550402A Pending JP2008537612A (ja) 2005-01-06 2005-12-23 インテリジェント・メッセージング・アプリケーション・プログラミング・インタフェース
JP2007550501A Pending JP2008527860A (ja) 2005-01-06 2006-01-06 メッセージ・パブリッシュ/サブスクライブ・システム内のプロビジョニング−マネージメント

Country Status (6)

Country Link
US (3) US7970918B2 (ja)
EP (3) EP1851646A2 (ja)
JP (3) JP2008527538A (ja)
AU (3) AU2005322959A1 (ja)
CA (3) CA2594082A1 (ja)
WO (3) WO2006073969A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013109600A (ja) * 2011-11-21 2013-06-06 Fujitsu Ltd ストレージ装置、ストレージシステム、データ更新方法およびデータ管理プログラム

Families Citing this family (114)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7546234B1 (en) 2003-01-08 2009-06-09 Xambala, Inc. Semantic processing engine
US8458467B2 (en) * 2005-06-21 2013-06-04 Cisco Technology, Inc. Method and apparatus for adaptive application message payload content transformation in a network infrastructure element
US7987272B2 (en) 2004-12-06 2011-07-26 Cisco Technology, Inc. Performing message payload processing functions in a network element on behalf of an application
JP2008527538A (ja) * 2005-01-06 2008-07-24 テーベラ・インコーポレーテッド メッセージング・システム内のキャッシング・エンジン
US7710988B1 (en) 2005-03-11 2010-05-04 Xambala Corporation Method and system for non-deterministic finite automaton filtering
GB0521355D0 (en) * 2005-10-19 2005-11-30 Ibm Publish/subscribe system and method for managing subscriptions
US8676876B2 (en) * 2006-06-27 2014-03-18 International Business Machines Corporation Synchronizing an active feed adapter and a backup feed adapter in a high speed, low latency data communications environment
US8296778B2 (en) * 2006-06-27 2012-10-23 International Business Machines Corporation Computer data communications in a high speed, low latency data communications environment
US8122144B2 (en) 2006-06-27 2012-02-21 International Business Machines Corporation Reliable messaging using redundant message streams in a high speed, low latency data communications environment
US8745185B1 (en) * 2006-10-12 2014-06-03 Timothy J. Salo Method and apparatus for providing semantically aware network services
US7822849B2 (en) * 2006-11-16 2010-10-26 Path Solutions, Inc. Apparatus and method for measuring and using response to SNMP requests to provide real-time network parameter estimates in a network management zone
US8695015B2 (en) 2006-12-06 2014-04-08 International Business Machines Corporation Application message conversion using a feed adapter
US8850451B2 (en) * 2006-12-12 2014-09-30 International Business Machines Corporation Subscribing for application messages in a multicast messaging environment
US8327381B2 (en) * 2006-12-12 2012-12-04 International Business Machines Corporation Referencing message elements in an application message in a messaging environment
US9178916B2 (en) 2007-06-28 2015-11-03 Voxer Ip Llc Real-time messaging method and apparatus
US8180029B2 (en) 2007-06-28 2012-05-15 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US20110019662A1 (en) 2007-06-28 2011-01-27 Rebelvox Llc Method for downloading and using a communication application through a web browser
US11095583B2 (en) 2007-06-28 2021-08-17 Voxer Ip Llc Real-time messaging method and apparatus
US8849946B2 (en) * 2007-12-05 2014-09-30 Oracle International Corporation System and method for hypertext transfer protocol publish and subscribe server
WO2009112081A1 (en) * 2008-03-14 2009-09-17 Nokia Siemens Networks Oy A publish/subscribe system for heterogeneous access management
US8630316B2 (en) 2008-06-19 2014-01-14 Microsoft Corporation Clock synchronization using correlation events
US9009296B1 (en) * 2009-08-07 2015-04-14 Google Inc. System and method of determining latency
US8537844B2 (en) * 2009-10-06 2013-09-17 Electronics And Telecommunications Research Institute Ethernet to serial gateway apparatus and method thereof
US9183580B2 (en) * 2010-11-04 2015-11-10 Digimarc Corporation Methods and systems for resource management on portable devices
US8484661B2 (en) * 2010-03-19 2013-07-09 At&T Mobility Ii Llc Agnostic execution cluster for an agnostic execution environment
US8661080B2 (en) * 2010-07-15 2014-02-25 International Business Machines Corporation Propagating changes in topic subscription status of processes in an overlay network
US9107140B2 (en) 2010-08-13 2015-08-11 At&T Mobility Ii Llc Carrier-driven bearer path selection
US11062391B2 (en) * 2010-09-17 2021-07-13 International Business Machines Corporation Data stream processing framework
US9584949B2 (en) 2011-01-27 2017-02-28 Microsoft Technology Licensing, Llc Cloud based master data management architecture
US9128768B2 (en) 2011-01-27 2015-09-08 Microsoft Technology Licensing, LCC Cloud based master data management
US20120198018A1 (en) * 2011-01-27 2012-08-02 Microsoft Corporation Securely publishing data to network service
KR101866270B1 (ko) * 2011-02-21 2018-07-05 삼성전자주식회사 데이터 공유 시스템 및 방법
US8959162B2 (en) 2011-02-23 2015-02-17 International Business Machines Corporation Publisher-based message data cashing in a publish-subscription environment
US8874666B2 (en) 2011-02-23 2014-10-28 International Business Machines Corporation Publisher-assisted, broker-based caching in a publish-subscription environment
US8725814B2 (en) 2011-02-24 2014-05-13 International Business Machines Corporation Broker facilitated peer-to-peer publisher collaboration in a publish-subscription environment
US8489694B2 (en) 2011-02-24 2013-07-16 International Business Machines Corporation Peer-to-peer collaboration of publishers in a publish-subscription environment
US9185181B2 (en) 2011-03-25 2015-11-10 International Business Machines Corporation Shared cache for potentially repetitive message data in a publish-subscription environment
US9208523B2 (en) * 2011-04-11 2015-12-08 Dell Products L.P. Low latency financial data network architecture
CN102147755B (zh) * 2011-04-14 2012-07-04 中国人民解放军国防科学技术大学 一种基于内存缓存技术的多核系统容错方法
US9325814B2 (en) * 2011-06-02 2016-04-26 Numerex Corp. Wireless SNMP agent gateway
US20130031001A1 (en) * 2011-07-26 2013-01-31 Stephen Patrick Frechette Method and System for the Location-Based Discovery and Validated Payment of a Service Provider
US8825864B2 (en) * 2011-09-29 2014-09-02 Oracle International Corporation System and method for supporting a dynamic resource broker in a transactional middleware machine environment
US9558048B2 (en) * 2011-09-30 2017-01-31 Oracle International Corporation System and method for managing message queues for multinode applications in a transactional middleware machine environment
US20130091192A1 (en) * 2011-10-11 2013-04-11 Mohammed Saleem Shafi Asynchronous messaging bus
US8880932B2 (en) * 2011-11-15 2014-11-04 Oracle International Corporation System and method for signaling dynamic reconfiguration events in a middleware machine environment
US8903991B1 (en) * 2011-12-22 2014-12-02 Emc Corporation Clustered computer system using ARP protocol to identify connectivity issues
US9871732B2 (en) 2012-01-10 2018-01-16 International Business Machines Corporation Dynamic flow control in multicast systems
US9537793B2 (en) * 2012-10-10 2017-01-03 Cisco Technology, Inc. Ensuring any-to-any reachability with opportunistic layer 3 forwarding in massive scale data center environments
US9311640B2 (en) 2014-02-11 2016-04-12 Digimarc Corporation Methods and arrangements for smartphone payments and transactions
EP2809031B1 (en) * 2013-05-31 2023-09-27 Dassault Systèmes Communication middleware for managing multicast channels
EP2835938B1 (en) * 2013-06-03 2018-11-07 Huawei Technologies Co., Ltd. Message publishing and subscribing method and apparatus
US9497088B2 (en) 2013-08-29 2016-11-15 Oracle International Corporation Method and system for end-to-end classification of level 7 application flows in networking endpoints and devices
US9544202B2 (en) 2013-08-29 2017-01-10 Oracle International Corporation Dynamic assignment and enforcement of application-driven per-connection service level agreements
JP6101622B2 (ja) * 2013-12-11 2017-03-22 日本電信電話株式会社 情報配信システム及び情報配信方法
CN106105100B (zh) * 2014-03-18 2019-09-06 Twc专利信托公司 处理应用编程接口请求的方法和装置
US9971665B2 (en) * 2014-03-31 2018-05-15 Honeywell International Inc. Subscription methods and systems for component information of a system
US9244801B2 (en) 2014-03-31 2016-01-26 International Business Machines Corporation Increasing the accuracy of service quality management metrics
TW201545510A (zh) 2014-05-30 2015-12-01 Ibm 在分散式計算系統中進行訊息路由的方法
US9396051B2 (en) * 2014-10-06 2016-07-19 Oracle International Corporation Integration application building tool
GB2532490B (en) 2014-11-21 2017-02-22 Ibm Publish/subscribe messaging using message structure
US10887253B1 (en) * 2014-12-04 2021-01-05 Amazon Technologies, Inc. Message queuing with fan out
US10333879B2 (en) 2015-08-07 2019-06-25 Satori Worldwide, Llc Scalable, real-time messaging system
US9319363B1 (en) 2015-08-07 2016-04-19 Machine Zone, Inc. Scalable, real-time messaging system
US9407585B1 (en) * 2015-08-07 2016-08-02 Machine Zone, Inc. Scalable, real-time messaging system
US9602455B2 (en) 2015-08-07 2017-03-21 Machine Zone, Inc. Scalable, real-time messaging system
US10530824B2 (en) 2015-09-25 2020-01-07 Microsoft Technology Licensing, Llc Real-time end-to-end latency monitoring
US9319365B1 (en) 2015-10-09 2016-04-19 Machine Zone, Inc. Systems and methods for storing and transferring message data
US9385976B1 (en) 2015-10-09 2016-07-05 Machine Zone, Inc. Systems and methods for storing message data
US9397973B1 (en) 2015-10-16 2016-07-19 Machine Zone, Inc. Systems and methods for transferring message data
US10484251B1 (en) 2015-11-24 2019-11-19 SRB Technologies, Inc. Protocol agnostic message oriented middleware for IoT, SaaS and enterprise integration
CN107204908A (zh) 2016-03-17 2017-09-26 阿里巴巴集团控股有限公司 一种基于通信接口框架的消息发送、接收方法及装置
US9602450B1 (en) 2016-05-16 2017-03-21 Machine Zone, Inc. Maintaining persistence of a messaging system
US10374872B2 (en) * 2016-05-24 2019-08-06 Apstra, Inc. Configuring system resources for different reference architectures
US10404647B2 (en) 2016-06-07 2019-09-03 Satori Worldwide, Llc Message compression in scalable messaging system
US10666712B1 (en) * 2016-06-10 2020-05-26 Amazon Technologies, Inc. Publish-subscribe messaging with distributed processing
US9608928B1 (en) * 2016-07-06 2017-03-28 Machine Zone, Inc. Multiple-speed message channel of messaging system
US9967203B2 (en) 2016-08-08 2018-05-08 Satori Worldwide, Llc Access control for message channels in a messaging system
US10374986B2 (en) 2016-08-23 2019-08-06 Satori Worldwide, Llc Scalable, real-time messaging system
US10305981B2 (en) 2016-08-31 2019-05-28 Satori Worldwide, Llc Data replication in scalable messaging system
US9667681B1 (en) 2016-09-23 2017-05-30 Machine Zone, Inc. Systems and methods for providing messages to multiple subscribers
US10547527B2 (en) * 2016-10-01 2020-01-28 Intel Corporation Apparatus and methods for implementing cluster-wide operational metrics access for coordinated agile scheduling
US10187278B2 (en) 2017-02-24 2019-01-22 Satori Worldwide, Llc Channel management in scalable messaging system
US10447623B2 (en) 2017-02-24 2019-10-15 Satori Worldwide, Llc Data storage systems and methods using a real-time messaging system
US10270726B2 (en) 2017-02-24 2019-04-23 Satori Worldwide, Llc Selective distribution of messages in a scalable, real-time messaging system
US10289525B2 (en) * 2017-08-21 2019-05-14 Amadeus S.A.S. Multi-layer design response time calculator
US10681164B2 (en) * 2018-05-03 2020-06-09 Microsoft Technology Licensing, Llc Input and output schema mappings
CN109063752B (zh) * 2018-07-17 2022-06-17 华北水利水电大学 基于神经网络的多源高维多尺度实时数据流的分拣方法
CN109117606B (zh) * 2018-08-08 2020-10-09 瑞芯微电子股份有限公司 设备客户端的drm标准适配方法、装置及硬件保护中间件
TWI803687B (zh) 2018-08-23 2023-06-01 美商阿爾克斯股份有限公司 用於路由最佳化的系統及其方法
CN109194736B (zh) * 2018-08-30 2021-04-27 百度在线网络技术(北京)有限公司 消息去重方法、装置、电子设备、介质和无人车
CN109672996B (zh) * 2018-12-29 2022-02-11 重庆邮电大学 一种基于v2x路侧设备系统及其信息分发方法
WO2020209865A1 (en) * 2019-04-12 2020-10-15 Jpmorgan Chase Bank, N.A. System and method for implementing a consolidated contributions data bridge for outbound market and reference data
CN110287020A (zh) * 2019-05-10 2019-09-27 中国船舶重工集团公司第七一五研究所 一种实时操作系统平台下的高效并行计算方法
US11711374B2 (en) 2019-05-31 2023-07-25 Varmour Networks, Inc. Systems and methods for understanding identity and organizational access to applications within an enterprise environment
US11863580B2 (en) 2019-05-31 2024-01-02 Varmour Networks, Inc. Modeling application dependencies to identify operational risk
US11055155B2 (en) 2019-08-09 2021-07-06 Ciena Corporation Virtual programming in a microservice architecture
US11169862B2 (en) 2019-08-09 2021-11-09 Ciena Corporation Normalizing messaging flows in a microservice architecture
US10891176B1 (en) 2019-08-09 2021-01-12 Ciena Corporation Optimizing messaging flows in a microservice architecture
EP4004732A1 (en) * 2019-08-09 2022-06-01 Ciena Corporation Normalizing messaging flows, optimizing messaging flows, and virtual programming in a microservice architecture
AU2020353720A1 (en) * 2019-09-25 2022-03-31 Commonwealth Scientific And Industrial Research Organisation Cryptographic services for browser applications
TWI774110B (zh) * 2019-11-29 2022-08-11 凌華科技股份有限公司 適於工業自動化設備之共享記憶體的資料分發服務之系統及其運作方法
CN111245919B (zh) * 2020-01-07 2022-09-20 上海航天计算机技术研究所 一种基于OpenDDS的反射内存网组织管理方法
US11777846B2 (en) * 2020-05-06 2023-10-03 Nokia Solutions And Networks Oy Ultra reliable segment routing
CN112821952A (zh) * 2020-12-07 2021-05-18 沈阳飞机设计研究所扬州协同创新研究院有限公司 一种基于fc网络的数据订阅与分发方法
US20220197728A1 (en) * 2020-12-22 2022-06-23 Nokia Solutions And Networks Oy Intent-based networking using partitioning for scalability
US11818152B2 (en) * 2020-12-23 2023-11-14 Varmour Networks, Inc. Modeling topic-based message-oriented middleware within a security system
US11876817B2 (en) 2020-12-23 2024-01-16 Varmour Networks, Inc. Modeling queue-based message-oriented middleware relationships in a security system
CN112751943A (zh) * 2021-01-19 2021-05-04 国网江苏省电力有限公司无锡供电分公司 数据通信方法、中间设备及数据通信系统
CN113112366A (zh) * 2021-04-09 2021-07-13 上海中汇亿达金融信息技术有限公司 分布式数据总线
CN114584614A (zh) * 2022-01-17 2022-06-03 北京智芯微电子科技有限公司 用于智能终端与采集终端之间的信息交互方法
CN114827116A (zh) * 2022-03-10 2022-07-29 红塔辽宁烟草有限责任公司 一种实现工业互联实时监控系统及应用
CN114827307B (zh) * 2022-04-14 2024-04-19 中国建设银行股份有限公司 基于多数据系统的数据共享方法、系统及服务器
CN115277886B (zh) * 2022-07-30 2023-06-27 重庆长安汽车股份有限公司 一种基于数据分发服务的车辆数据采集方法
CN115720236B (zh) * 2022-11-18 2024-04-19 北京航天发射技术研究所 一种基于异构网络的轻量化通信中间件

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1145204A (ja) * 1997-06-09 1999-02-16 At & T Corp 逆ツリー生成法を用いて網内にキャッシュを動的に複製する方法およびシステム
JP2005521938A (ja) * 2002-03-29 2005-07-21 グッド テクノロジー インコーポレイテッド データサービスによるデータ処理装置の全無線同期システム及び方法
JP2006523905A (ja) * 2003-03-06 2006-10-19 インターナショナル・ビジネス・マシーンズ・コーポレーション パブリッシュ/サブスクライブ・メッセージングのためのシステム及び方法

Family Cites Families (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557798A (en) * 1989-07-27 1996-09-17 Tibco, Inc. Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
JP2511591B2 (ja) * 1990-10-29 1996-06-26 インターナショナル・ビジネス・マシーンズ・コーポレイション 無線光通信システムの動作方法および光通信システム
JPH0888651A (ja) 1994-09-20 1996-04-02 Nippon Telegr & Teleph Corp <Ntt> 無線パケット転送方法
US6226365B1 (en) * 1997-08-29 2001-05-01 Anip, Inc. Method and system for global communications network management and display of market-price information
JPH08191336A (ja) * 1995-01-06 1996-07-23 Mitsubishi Electric Corp プロトコル管理方式
US5870605A (en) * 1996-01-18 1999-02-09 Sun Microsystems, Inc. Middleware for enterprise information distribution
US5832499A (en) * 1996-07-10 1998-11-03 Survivors Of The Shoah Visual History Foundation Digital library system
US5905873A (en) * 1997-01-16 1999-05-18 Advanced Micro Devices, Inc. System and method of routing communications data with multiple protocols using crossbar switches
EP0981884B1 (en) 1997-05-14 2005-11-02 Citrix Systems, Inc. System and method for managing the connection between a server and a client node
US6628616B2 (en) 1998-01-30 2003-09-30 Alcatel Frame relay network featuring frame relay nodes with controlled oversubscribed bandwidth trunks
US6141705A (en) * 1998-06-12 2000-10-31 Microsoft Corporation System for querying a peripheral device to determine its processing capabilities and then offloading specific processing tasks from a host to the peripheral device when needed
US6507863B2 (en) * 1999-01-27 2003-01-14 International Business Machines Corporation Dynamic multicast routing facility for a distributed computing environment
CN1328885C (zh) 1999-02-23 2007-07-25 阿尔卡塔尔互联网运行公司 具有接入质量的多业务网络交换机
US7020697B1 (en) * 1999-10-01 2006-03-28 Accenture Llp Architectures for netcentric computing systems
US20020026533A1 (en) * 2000-01-14 2002-02-28 Dutta Prabal K. System and method for distributed control of unrelated devices and programs
JP2001282656A (ja) * 2000-03-28 2001-10-12 Canon Inc ネットワーク・デバイス制御装置および方法
US6990513B2 (en) 2000-06-22 2006-01-24 Microsoft Corporation Distributed computing services platform
JP2002009847A (ja) * 2000-06-23 2002-01-11 Ntt Communications Kk Lan間接続サービスオペレーション連携方法、装置及び記録媒体
US7315554B2 (en) 2000-08-31 2008-01-01 Verizon Communications Inc. Simple peering in a transport network employing novel edge devices
US7272662B2 (en) 2000-11-30 2007-09-18 Nms Communications Corporation Systems and methods for routing messages to communications devices over a communications network
US20020078265A1 (en) * 2000-12-15 2002-06-20 Frazier Giles Roger Method and apparatus for transferring data in a network data processing system
US7177917B2 (en) 2000-12-27 2007-02-13 Softwired Ag Scaleable message system
US6868069B2 (en) * 2001-01-16 2005-03-15 Networks Associates Technology, Inc. Method and apparatus for passively calculating latency for a network appliance
US20020156973A1 (en) * 2001-01-29 2002-10-24 Ulrich Thomas R. Enhanced disk array
JP4481518B2 (ja) 2001-03-19 2010-06-16 株式会社日立製作所 情報中継装置及び転送方法
US6832297B2 (en) * 2001-08-09 2004-12-14 International Business Machines Corporation Method and apparatus for managing data in a distributed buffer system
JP3609763B2 (ja) 2001-08-17 2005-01-12 三菱電機インフォメーションシステムズ株式会社 経路制御システム、経路制御方法及びそれをコンピュータに実行させるためのプログラム
JP3818102B2 (ja) * 2001-08-31 2006-09-06 住友電気工業株式会社 放熱基板とその製造方法及び半導体装置
IL161389A0 (en) 2001-10-15 2004-09-27 Semandex Networks Inc Dynamic content based multicast routing in mobile networks
JP3901487B2 (ja) * 2001-10-18 2007-04-04 富士通株式会社 Vpnサービス管理システム、vpnサービスマネージャ及びvpnサービスエージェント
CA2361861A1 (en) * 2001-11-13 2003-05-13 Ibm Canada Limited-Ibm Canada Limitee Wireless messaging services using publish/subscribe systems
US7406537B2 (en) * 2002-11-26 2008-07-29 Progress Software Corporation Dynamic subscription and message routing on a topic between publishing nodes and subscribing nodes
US20030105931A1 (en) * 2001-11-30 2003-06-05 Weber Bret S. Architecture for transparent mirroring
US8122118B2 (en) * 2001-12-14 2012-02-21 International Business Machines Corporation Selection of communication protocol for message transfer based on quality of service requirements
CN1432950A (zh) 2002-01-14 2003-07-30 英业达股份有限公司 适用于企业对企业网站商品的清单购物模式的实现方法
GB0205951D0 (en) * 2002-03-14 2002-04-24 Ibm Methods apparatus and computer programs for monitoring and management of integrated data processing systems
US7551629B2 (en) * 2002-03-28 2009-06-23 Precache, Inc. Method and apparatus for propagating content filters for a publish-subscribe network
US7529929B2 (en) * 2002-05-30 2009-05-05 Nokia Corporation System and method for dynamically enforcing digital rights management rules
US20030225857A1 (en) 2002-06-05 2003-12-04 Flynn Edward N. Dissemination bus interface
US7243347B2 (en) * 2002-06-21 2007-07-10 International Business Machines Corporation Method and system for maintaining firmware versions in a data processing system
US7672275B2 (en) * 2002-07-08 2010-03-02 Precache, Inc. Caching with selective multicasting in a publish-subscribe network
US20040083305A1 (en) * 2002-07-08 2004-04-29 Chung-Yih Wang Packet routing via payload inspection for alert services
US7720910B2 (en) 2002-07-26 2010-05-18 International Business Machines Corporation Interactive filtering electronic messages received from a publication/subscription service
US6721806B2 (en) * 2002-09-05 2004-04-13 International Business Machines Corporation Remote direct memory access enabled network interface controller switchover and switchback support
KR100458373B1 (ko) * 2002-09-18 2004-11-26 전자부품연구원 이기종 프로토콜과 멀티미디어 데이터의 통합처리 방법 및장치
US6871113B1 (en) 2002-11-26 2005-03-22 Advanced Micro Devices, Inc. Real time dispatcher application program interface
GB0228941D0 (en) * 2002-12-12 2003-01-15 Ibm Methods, apparatus and computer programs for processing alerts and auditing in a publish/subscribe system
US7349980B1 (en) * 2003-01-24 2008-03-25 Blue Titan Software, Inc. Network publish/subscribe system incorporating Web services network routing architecture
WO2004072800A2 (en) 2003-02-06 2004-08-26 Progress Software Corporation Dynamic subscription and message routing on a topic between a publishing node and subscribing nodes
US20040225554A1 (en) * 2003-05-08 2004-11-11 International Business Machines Corporation Business method for information technology services for legacy applications of a client
JP2004348680A (ja) 2003-05-26 2004-12-09 Fujitsu Ltd 複合イベント通知システムおよび複合イベント通知プログラム
US7831693B2 (en) * 2003-08-18 2010-11-09 Oracle America, Inc. Structured methodology and design patterns for web services
US20050251556A1 (en) * 2004-05-07 2005-11-10 International Business Machines Corporation Continuous feedback-controlled deployment of message transforms in a distributed messaging system
JP2008527538A (ja) * 2005-01-06 2008-07-24 テーベラ・インコーポレーテッド メッセージング・システム内のキャッシング・エンジン
EP1849093A2 (en) * 2005-01-06 2007-10-31 Tervela Inc. Hardware-based messaging appliance
US8130758B2 (en) * 2005-06-27 2012-03-06 Bank Of America Corporation System and method for low latency market data
US7539892B2 (en) * 2005-10-14 2009-05-26 International Business Machines Corporation Enhanced resynchronization in a storage-based mirroring system having different storage geometries

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1145204A (ja) * 1997-06-09 1999-02-16 At & T Corp 逆ツリー生成法を用いて網内にキャッシュを動的に複製する方法およびシステム
JP2005521938A (ja) * 2002-03-29 2005-07-21 グッド テクノロジー インコーポレイテッド データサービスによるデータ処理装置の全無線同期システム及び方法
JP2006523905A (ja) * 2003-03-06 2006-10-19 インターナショナル・ビジネス・マシーンズ・コーポレーション パブリッシュ/サブスクライブ・メッセージングのためのシステム及び方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013109600A (ja) * 2011-11-21 2013-06-06 Fujitsu Ltd ストレージ装置、ストレージシステム、データ更新方法およびデータ管理プログラム

Also Published As

Publication number Publication date
US20060149840A1 (en) 2006-07-06
CA2594082A1 (en) 2006-07-13
WO2006073969A2 (en) 2006-07-13
JP2008537612A (ja) 2008-09-18
CA2594119A1 (en) 2006-07-13
EP1849094A2 (en) 2007-10-31
US7970918B2 (en) 2011-06-28
US9253243B2 (en) 2016-02-02
WO2006073969A9 (en) 2006-09-08
WO2006073969A3 (en) 2007-11-22
AU2005322833A1 (en) 2006-07-13
EP1851647A2 (en) 2007-11-07
US20110231470A1 (en) 2011-09-22
CA2594036A1 (en) 2006-07-13
AU2005322959A1 (en) 2006-07-13
EP1851646A2 (en) 2007-11-07
WO2006074109A3 (en) 2007-06-14
US8321578B2 (en) 2012-11-27
WO2006074109A2 (en) 2006-07-13
WO2006074380A3 (en) 2007-11-22
WO2006074380A2 (en) 2006-07-13
AU2006203872A1 (en) 2006-07-13
US20130166681A1 (en) 2013-06-27
JP2008527860A (ja) 2008-07-24

Similar Documents

Publication Publication Date Title
JP2008527538A (ja) メッセージング・システム内のキャッシング・エンジン
US20060146999A1 (en) Caching engine in a messaging system
CN114128229B (zh) 用于服务和拓扑交换协议的方法、系统和装置
US10275412B2 (en) Method and device for database and storage aware routers
US20110185082A1 (en) Systems and methods for network virtualization
CN101124567A (zh) 消息传递系统中的缓存引擎
US20140079059A1 (en) System and method that routes flows via multicast flow transport for groups
US20110243131A1 (en) System and method that routes flows via multicast flow transport for groups
JP6179141B2 (ja) データ転送システムおよびネットワーク負荷軽減方法
Christian Bachmeir et al. Diversity Protected, Cache Based Reliable Content Distribution Building on Scalable, P2P, and Multicast Based Content Discovery

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100615

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100915

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100924

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101221