JP2011503752A - 設定可能なアシュアランスを用いた分散メッセージシステム - Google Patents

設定可能なアシュアランスを用いた分散メッセージシステム Download PDF

Info

Publication number
JP2011503752A
JP2011503752A JP2010534236A JP2010534236A JP2011503752A JP 2011503752 A JP2011503752 A JP 2011503752A JP 2010534236 A JP2010534236 A JP 2010534236A JP 2010534236 A JP2010534236 A JP 2010534236A JP 2011503752 A JP2011503752 A JP 2011503752A
Authority
JP
Japan
Prior art keywords
message
assurance
cursor
transfer
capture
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.)
Granted
Application number
JP2010534236A
Other languages
English (en)
Other versions
JP5473930B2 (ja
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2011503752A publication Critical patent/JP2011503752A/ja
Application granted granted Critical
Publication of JP5473930B2 publication Critical patent/JP5473930B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Operations Research (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

本発明は、分散メッセージシステム内のアシュアランスを構成する方法、システム、及びコンピュータプログラムプロダクトにまで及ぶ。定義された一連のメッセージログ及びカーソル要素は、設定可能となるように起動され且つ解除されて、分散メッセージシステム内において、種々の異なるキャプチャアシュアランス、転送アシュアランス、及び配信アシュアランスを構成する。キャプチャアシュアランス、転送アシュアランス、及び配信アシュアランスの構成は、メッセージシステムに対してエンドツーエンドアシュアランスを提供し得る。エンドツーエンドアシュアランスは、ベストエフォート、最大1回、最小1回、及び1回限定アシュアランスのうち一つを含み、デュラブル若しくは非デュラブルのうち一つを含み得る。定義された一連の起動可能であり且つ解除可能なメッセージログ及びカーソル要素を使用することによって、所望のアシュアランス間におけるより効率的なトランザクションが容易にせしめられる。いくつかの実施形態においては、キャプチャアシュアランス、転送アシュアランス、及び配信アシュアランスの構成は、デュアラブル1回限定メッセージ配信を提供する。

Description

コンピュータシステム及び関連技術は社会の多くの態様に影響を及ぼしている。実際、コンピュータシステムの情報処理能力は我々が生活し仕事をする方法を変えている。現在、コンピュータシステムは、コンピュータシステムの到来前に手動的に実行された多くのタスク(例えば、文書処理、スケジューリング、課金処理等)を普通に実行している。最近においては、コンピュータシステムは互いに接続され且つ他の電子装置と接続されて有線及び無線のコンピュータネットワークを形成し、その有線及び無線のコンピュータネットワーク上で、コンピュータシステム及び他の電子装置は電子データを転送することができる。従って、多くのコンピューティングタスクの性能が、多くの異なるコンピュータシステム及び/又は多くの異なるコンピュータ要素にわたり分散されている。
分散メッセージシステムは、キューイングを実行し且つメッセージパターンをパブリッシュし且つサブスクライブし(「pub/sub」)得る。キューは本質的には1対1のコンシューマメッセージの交換である。メッセージプロデューサはメッセージをキューに挿入し、メッセージコンシューマはキューからメッセージを取り出す。他方では、pub/subシステムは、1対多数のメッセージ交換である。メッセージプロデューサがメッセージをパブリッシュし、複数のメッセージコンシューマが、パブリッシュされたメッセージにサブスクライブし且つ受信する。
キューイング及びpub/subパターンを実装するものを含む分散メッセージシステムは、メッセージストアによって通常戻される。これら分散メッセージシステムにおいて、トピックからメッセージにサブスクライブし又はキューから消費する個別のコンシューマの状態は、メッセージストアを用いて順序付けされる。コンシューマ(例えば、ユーザコードアプリケーション)は、分散メッセージシステムを通常使用して、メッセージがメッセージログからコンシューマへと、一度だけ配信されることを確認する。コンシューマは、メッセージを検索するのにトランザクションを使用する。これは、アプリケーションの状態は、本来カーソル状態に結合されているからである。残念ながら、トランザクションの使用は、キュー又はトピックからメッセージを受信する多数のコンシューマに対してスケールしない。
また、典型的な分散メッセージシステムには、他の多くの制限がある。例えば、分散メッセージシステムは、多くの場合、限定数のネットワークトポロジ又は単一のネットワークトポロジに強く結合されている。したがって、他のネットワークトポロジに使用する分散メッセージシステムを変更する能力が、もしあるならば、限定されている。例えば、いくつかの分配メッセージシステムは、コンシューマがファイアウォールを介してキュー若しくはトピックと分離されているトポロジー上で使用され得ない。
さらに、分散メッセージシステムは、自身が提供するメッセージアシュアランスにおいて通常制限されている。例えば、ベストエフォートメッセージ配信を提供する分散メッセージシステムは、メッセージが今までに全くドロップされていないことを確認するように一般には設計されていない。高アシュアランスを提供する分散メッセージシステムさえも、低いアシュアランスを提供するように通常変更され得ない。例えば、1回限定アシュアランスを提供する分散メッセージシステムは、最大1回、採用1回、若しくはベストエフォート配信を提供するように容易には通常変更され得ない。
また、同様の制限が分散メッセージシステム内のメッセージの永続性に関連づけられている。すなわち、分散メッセージシステムは、自身が提供するメッセージストアのタイプにおいて通常制限される。さらに、アシュアランスに関連付けられた制限と同様に、メッセージのストレージに関して高い信頼性を提供する分散メッセージシステムさえも、信頼性のより低いメッセージストレージを提供するように変更され得ない。例えば、デュラブルメッセージストレージを提供する分散メッセージシステムは、揮発性の若しくは非トランザクションのメッセージストレージを提供するように容易には通常変更され得ない。
分配メッセージシステムのネットワークトポロジに起因して、これらアシュアランス及びメッセージログに制限を課すことができるし、又は、これらアシュアランス及びメッセージログは、分配メッセージシステムのソフトウェア内のハードコード化された命令から生じ得る。例えば、デュラブルキューを設計する開発者にとって、信頼性の低いメッセージストレージのオプションを含ませ又は考慮する理由は全くないであろう(そして、開発者の雇い主の見解から、それはリソースの浪費であり得る)。同様に、ベストエフォート配信を用いたpub/subメッセージシステムの開発者は、より信頼性の高いメッセージ配信が必ずしも必要ではないときに、より信頼性の高いメッセージ配信のためのオプションを付加する重要なリソースを浪費するであろう。
しかしながら、ほとんどのコンピュータ化されたシステムのように、分散メッセージシステムの要求は、経時変化し得る。例えば、分配メッセージシステムは、より多くのユーザを獲得し得る。ユーザのタイプは(例えば、フリーウエアから収益モデルまで移行して)変化し得るし、政府の規制は変更し得るし、コストを削減する戦略的企業決定等なされ得る。変更された要求に関して、メッセージ配信アシュアランスとメッセージストレージの信頼性に対する対応する変化が保証され得る。
例えば、フリーウエアから収益モデルまで移行するとき、顧客は、高メッセージ配信アシュアランスを(例えば、ベストエフォートから1回限定まで)要求し得る。あるいは、費用を節減するために、IT部門は、メッセージ配信アシュアランスを低減させることが、コスト的により効率的であることを決定し得る(例えば、最小1回からベストエフォートまで)。別の典型的な理由としては、分配メッセージシステム上で駆動するビジネスアプリケーションが変更されたか又は置換されていることがあげられ、その結果、分散メッセージシステムのその要求に変化が生じる。同様に、アシュアランスを高レベルの低コスト効率において利用すると、基本的なネットワークの故障率が変化してしまっているかもしれない。残念ながら、分配メッセージシステムにおいて既存のメッセージ配信アシュアランス及びメッセージ記ストレージの信頼性を変更する(増大させ又は低減させる)効率的な方法は、通常全くない。
1つの選択は、所望の配信アシュアランスとストレージの信頼性機構を含むようにコードを再構築することがある。しかしながら、これは、時間がかかって、高価である場合があり、開発者にリソースが集中してしまう。別の選択は、所望の配信アシュアランス及びストレージ信頼性を含む新規分配メッセージシステムを購入することである。しかしながら、これもコスト高であり得るし、既存の要素とメッセージとの統合中に、互換性が困難となり得る。
本発明は、分散メッセージシステム内のアシュアランスを構成する方法、システム、及びコンピュータプログラムプロダクトにまで及ぶ。コンポーネント化メッセージシステムは、種々の異なるキャプチャプロトコル、転送プロトコル、及び転送プロトコルの全ての設定が容易にし、所望のメッセージアシュアランスを提供するように互いに情報のやり取りを行う。従って、企業は、メッセージシステムをより効率的に設定して(且つ設定を変更して)、企業の(変更される可能性のある動的な)企業論理と整合させることができる。
いくつかの実施形態においては、コンポーネント化メッセージシステムはメッセージログとカーソルを含む。一般に、メッセージログは、メッセージを記憶するように構成されている。また、メッセージログは、拡張可能な一連のキャプチャプロトコルのうちいずれかを構成して、メッセージをメッセージプロデューサからキャプチャするメッセージログ要素を含む。これにより、プロデューサは、異なるアシュアランスを用いて且つ異なるプロトコル上においてメッセージを分散メッセージシステムに伝えることが可能となる。例えば、すべてのリクエスト‐リスポンスプロトコルが、最小1回(ALO:At−Least−Once)アシュアランスを達成するのに使用され得る。他方では、メッセージが消失したか又はクラッシュが生じる場合、ワンウェイプロトコルは、フィードバックが全くないので、最大1回(AMO:At−Most−Once)を実行し得るに過ぎない。拡張可能な一連のキャプチャプロトコルは、一連のメッセージキャプチャアシュアランス内から種々の異なるメッセージキャプチャアシュアランスのうちいずれかを提供し得る。異なるメッセージキャプチャアシュアランスは、異なる組み合わせのメッセージログ要素を使用することによって容易にせしめられる。かかる使用は、デュアラブルストア及びトランザクションの1つ以上を利用することを含む。
一般に、カーソルは、メッセージログにおけるメッセージを介して、コンシューマの進行を追跡するように構成されている。また、カーソルはカーソル要素を含む。カーソル要素は、拡張可能な一連の配信プロトコルのうちいずれか及び/又はメッセージ変換パターン(MEPs)を構成して、メッセージをメッセージコンシューマに配信する。MEPsは、誰が最初に誰にデータを送信するのかを通常認識し、かつ、そのデータは何を含んでいるのかを通常認識する(例えば、ワンウェイ対リクエスト‐リプライ)。配信プロトコルは、データがワイヤ(例えば、XML、バイトパケット等)上にどのように現れるかを示す。拡張可能な一連の配信プロトコルは、一連のメッセージ配信アシュアランス内から種々の異なるメッセージ配信アシュアランスのうちいずれかを提供し得る。異なるメッセージ配信アシュアランスは、異なる組み合わせのカーソル要素を使用することによって容易にせしめられる。かかる使用は、デュアラブルストア及びトランザクションの1つ以上を利用することを含む。
また、メッセージログ及びカーソルの各々は、互いにインターオペレイトして、拡張可能な一連の転送プロトコルのうちいずれかを構成して、メッセージをメッセージログから分離カーソルに転送する更なる要素を含む。拡張可能な一連の転送プロトコルは、一連のメッセージ転送アシュアランス内から種々の異なるメッセージ転送アシュアランスのうちいずれかを提供し得る。異なるメッセージ転送アシュアランスは、異なる組み合わせのメッセージログ及びカーソル要素を使用することによって容易にせしめられる。かかる使用は、1つ以上のタイムウィンドウを使用すること及び認証された配信を変更することを含む。
従って、キャプチャアシュアランス、転送アシュアランス、及び配信アシュアランスの様々な組み合わせが結合されて、例えば、ベストエフォート、最大1回、最小1回、及び1回限定等及びデュラブル又は揮発性の異なるエンドツーエンドアシュアランスを提供し得る。
発明のさらなる特徴及び利点は、詳細な説明で説明され、それに続いて、詳細な説明から部分的に明らかとなり、又はこの発明の実施によって理解されるであろう。本発明の特徴及び利点は、添付された請求の範囲において特に指摘された手段及び組合せによって認識され且つ得られるであろう。本発明のこれら特徴及び他の特徴は、以下の説明と添付した特許請求の範囲から、より完全に明らかになるだろうし、又は、以下に詳細に説明するように、本発明の実施によって理解され得る。
本発明の上述の利点及び他の利点及び特徴が理解され得る方法について説明するために、簡単に説明された本発明のより特定の説明が、添付図面に図示されている特定の実施形態を参照することによって提供されるだろう。これらの図面は本発明の典型的実施形態のみを示すものであり、本発明の範囲を限定するものとして考慮されるべきものでないことを理解すれば、本発明は、添付図面を使用してさらなる特異性及び詳細と共に、記述され且つ説明されるだろう。
分散メッセージシステム内のアシュアランスを構成することを容易にするコンピュータアーキテクチャ100の実施例を示す図である。
デュラブル1回限定エンドツーエンドメッセージ転送アシュアランスを分散メッセージシステムに提供するように構成された例示的コンピュータアーキテクチャを示す図である。 分散メッセージシステムに対して設定可能となるように構成され得るアシュアランスの種々のマトリクスを示す図である。 分配メッセージシステム内のメッセージアシュアランスを設定する例示的方法のフロー図である。
本発明は、分散メッセージシステム内のアシュアランスを設定する方法、システム、及びコンピュータプログラムプロダクトにまで及ぶ。コンポーネント化メッセージシステムは、種々の異なるキャプチャプロトコル、転送プロトコル、及び転送プロトコルの全てを設定することを容易にせしめ、所望のメッセージアシュアランスを提供するように互いに情報のやり取りを行う。従って、企業は、メッセージシステムをより効率的に設定し(且つ設定を変更して)、企業の(変更される可能性のある動的な)企業論理と整合せしめる。
いくつかの実施形態においては、コンポーネント化メッセージシステムはメッセージログとカーソルを含む。一般に、メッセージログは、メッセージを記憶するように設定されている。また、メッセージログは、メッセージログ要素を含む。メッセージログ要素は、拡張可能な一連のキャプチャプロトコルのうちいずれかを構成して、メッセージをメッセージプロデューサからキャプチャする。拡張可能な一連のキャプチャプロトコルは、一連のメッセージキャプチャアシュアランス内から種々の異なるメッセージキャプチャアシュアランスのうちいずれかを提供し得る。異なるメッセージキャプチャアシュアランスは、異なる組み合わせのメッセージログ要素を使用することによって容易にせしめられる。かかる使用は、デュアラブルストア及びトランザクションの1つ以上を利用することを含む。
一般に、カーソルは、メッセージログにおけるメッセージを介して、コンシューマの進行を追跡するように設定されている。また、カーソルは、拡張可能な一連の配信プロトコルのうちいずれかを構成して、メッセージをメッセージコンシューマに配信するカーソル要素を含む。拡張可能な一連の配信プロトコルは、一連のメッセージ配信アシュアランス内から種々の異なるメッセージ配信アシュアランスのうちいずれかを提供し得る。異なるメッセージ配信アシュアランスは、異なる組み合わせのカーソル要素を使用することによって容易にせしめられる。かかる使用は、デュアラブルストア及びトランザクションの1つ以上を利用することを含む。
また、メッセージログ及びカーソルの各々は、互いにインターオペレイトして、拡張可能な一連の転送プロトコルのうちいずれかを構成して、メッセージを前記メッセージログから前記分離カーソルに転送する更なる要素を含む。拡張可能な一連の転送プロトコルは、一連のメッセージ転送アシュアランス内から種々の異なるメッセージ転送アシュアランスのうちいずれかを提供し得る。異なるメッセージ転送アシュアランスは、異なる組み合わせのメッセージログ及びカーソル要素を使用することによって容易にせしめられる。かかる使用は、1つ以上のタイムウィンドウを使用すること及び認証された配信の使用を変更することを含む。
従って、キャプチャアシュアランス、転送アシュアランス、及び配信アシュアランスの様々な組み合わせが結合されて、例えば、ベストエフォート、最大1回、最小1回、及び1回限定等の異なるエンドツーエンドアシュアランスを提供し得る。
本発明の実施形態は、以下でさらに詳細に説明するように、コンピュータハードウェアを含む専用若しくは汎用のコンピュータを、含み得るし、又は利用し得る。また、本発明の範囲内の実施形態は、コンピュータ実行可能命令及び/又はデータ構造を転送し若しくは記憶する物理的コンピュータ読取可能媒体及び他のコンピュータ読取可能媒体を含む。かかるコンピュータ読取可能媒体は、汎用若しくは専用コンピュータシステムによってアクセスされ得る利用可能な媒体であり得る。コンピュータ実行可能命令を記憶するコンピュータ読取可能媒体は、物理的な記憶媒体である。コンピュータ実行可能命令を転送するコンピュータ読取可能媒体は、伝送媒体である。したがって、限定ではなく、例として、本発明の実施形態は、明瞭に全く異なる2種類のコンピュータ読取可能媒体を少なくとも含み得る。かかる2種類のコンピュータ読取可能媒体は、物理的記憶媒体及び伝送媒体である。
物理的記憶媒体は、RAM、ROM、EEPROM、CD−ROM、他の光ディスク記憶装置、磁気ディスク記憶装置、他の磁気記憶装置、又は、コンピュータ実行可能命令又はデータ構造の形態で所望のプログラムコード手段を記憶するのに使用され且つ汎用若しくは専用コンピュータによってアクセスされ得るいかなる他の媒体を含む。
「ネットワーク」とは、コンピュータシステム及び/又はモジュール及び/又は他の電子装置の間の電子データの転送を可能にする1つ以上のデータリンクとして定義される。 (配線接続、ワイヤレス、又は配線接続若しくはワイヤレスの組み合わせかのうちいずれかによって)ネットワーク又は別の通信接続上において情報がコンピュータに転送され又は提供されるとき、コンピュータは接続を伝送路であると適切にみなす。伝送媒体はネットワーク及び/又はデータリンクを含み得る。そのネットワーク及び/又はデータリンクは、コンピュータ実行可能命令又はデータ構造の形態で所望のプログラムコード手段を伝送するのに使用されかつ汎用若しくは専用コンピュータによってアクセスされ得る。上記組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。
さらに、様々なコンピュータシステム要素に到達する際に、コンピュータ実行可能命令又はデータ構造の形態のプログラムコード手段は、伝送媒体から物理的記憶媒体まで自動的に転送され得る(又はその逆も同様である)。例えば、ネットワーク若しくはデータリンク上で受信されたコンピュータ実行可能命令又はデータ構造は、ネットワークインターフェースモジュール内のRAMにおいてバッファリングされ、そして、コンピュータシステムのRAM及び/又はコンピュータシステムにおける少数の揮発性物理的記憶媒体に最終的に転送され得る。したがって、物理的記憶媒体は、伝送媒体をも利用する(又は主に伝送媒体を利用する)コンピュータシステム要素に含まれ得ることが理解されるべきである。
コンピュータ実行可能命令は、汎用コンピュータ、専用コンピュータ、又は専用処理デバイスに特定の機能又は一群の機能を実行せしめる命令及びデータを例えば含む。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語等の中間的フォーマット命令、又はソースコードであってもよい。本発明が構造の機能及び/又は方法論の動作に対して特定の言語によって説明されてきたが、添付した特許請求の範囲において定義された本発明は、上述した特徴又は動作に必ずしも限定されないことが理解されるできである。むしろ、上述した特徴又は動作は特許請求の範囲に係る発明を実装する例示的形態として説明されている。
当業者であれば、本発明は多くのタイプのコンピュータシステム構成を有するネットワークコンピュータ環境において実施され得ることを十分理解するだろう。その多くのタイプのコンピュータシステム構成は、パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、メッセージプロセッサ、携帯端末デバイス、マルチプロセッサシステム、マイクロプロセッサベースの家庭用電化製品若しくはプログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、携帯電話、PDA、ポケットベル、ルータ、スイッチ、等を含む。また、本発明は分散コンピュータ環境においても実施され得る、分散コンピュータ環境において、 (配線接続のデータリンク、無線データリンク、又は、配線接続のデータリンク及び無線データリンクの組み合わせのうちいずれかによって、)リンクされているローカル及びリモートコンピュータシステムの双方がタスクを実行する。分散システム環境においては、プログラムモジュールはローカル記憶デバイス及びリモートメモリ記憶デバイスの双方に設けられ得る。
図1A、分散メッセージシステム内のアシュアランスを設定することを容易にするコンピュータアーキテクチャ100の実施例を示している。図示されているように、コンピュータアーキテクチャ100は、メッセージプロデューサ105、デュラブルリソースマネージャ106、メッセージログ102、カーソル103、デュラブルリソースマネージャ108、メッセージコンシューマ(s)107、及びアシュアランス設定マネージャ104を含む。表されたコンピュータシステムの各々は、例えば、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、及びインターネット等のネットワーク上で互いに接続され得る(又はネットワークの一部であり得る)。従って、図示された要素の各々と、すべての他の接続された要素とは、メッセージ関連データを作成することができ且つ(例えば、インターネットプロトコル(「IP」)データグラムとIPデータグラムを利用する他の高レイヤプロトコル、Transmission Control Protocol(「TCP」)、Hypertext Transfer Protocol(「HTTP」)、Simple Mail Transfer Protocol(「SMTP」)等の)ネットワーク上でメッセージ関連データを交換することができる。
一般に、メッセージプロデューサ105はメッセージ(例えば、メッセージ164)をメッセージログ102に送信する。メッセージはデュラブルリソース106からのリソースに基づいている。メッセージログ102は、(なり得るメッセージコンシューマに関する認識を本質的になくとも)メッセージを記憶するように、例えば、pub/subにおいてキュー若しくはパブリッシャとして機能する等所望のメッセージ動作を実行する。適切であるときに、メッセージ(例えば、メッセージ164)は、ネットワーク上のメッセージログ102からカーソル103へ送信される。そして、カーソル103は、例えば、待機メッセージを受信し又はpub/sub環境においてサブスクライバとして機能する等の所望のメッセージング動作を実行する、そして、カーソル103はメッセージ(例えば、メッセージ164)をメッセージコンシューマ107に送信する。そのメッセージコンシューマ107は、デュラブルリソースマネージャ108にメッセージを記憶し、又はメッセージ内容を用いて他の動作を実行し得る。カーソル103は、メッセージシーケンスにおいて、メッセージコンシューマ又はメッセージコンシューマのグループの進行を記憶することができる。
メッセージログ102及びカーソル103は各々、起動可能であり且つ解除可能である要素を含む。かかる要素は、所望のメッセージアシュアランス若しくはそれらの一部を構成するように、種々の異なる組合せにおいて起動され且つ解除され得る。例えば、メッセージログ要素152は、トランザクションバッファ121、読取りキャッシュ123、デュアラブルストア122、タイムウィンドウマネージャ124、及び承認要素126を含む。一般に、メッセージログ要素152は、拡張可能な一連のキャプチャプロトコルのうちいずれかを構成するように起動され且つ解除され得る。各キャプチャプロトコルは、異なるキャプチャアシュアランスを提供するように設定され得る。例えば、キャプチャプロトコルはデュアラブルストア122の使用によって異なり、トランザクションコーディネータ111を含むトランザクションへの参加によって異なり、異なるキャプチャアシュアランスを提供する。
トランザクションバッファ121は、起動されると、処理中のトランザクションに対するメッセージの追跡を維持する。トランザクションバッファ121は、揮発性リソースマネージャとしてトランザクションに参加し得る。任意で、準備中にデュラブルリソースマネージャとして参加する(‘‘EDPR’’)。メッセージプロデューサがコミットを開始するときに、トランザクションバッファは、準備通知を受信する。そして、トランザクションバッファ121は、(起動されると)トランザクションにおいてデュアラブルストア122に参加し、メッセージを保存し得る。トランザクションバッファ121がコミットされたことを受信すると、トランザクションバッファ121は読取りキャッシュ123にメッセージを移動させる。したがって、メッセージは、デュアラブルストアから読み返す必要を要することなく、短期間ベースで利用可能であり得る。
同様に、カーソル要素153はトランザクション要素131、承認要素132、及びデュアラブルストア要素133を含む。一般に、カーソル要素153は、拡張可能な一連の配信プロトコルのうちいずれかを構成するように起動され且つ解除され得る。各配信プロトコルは、異なる配信アシュアランスを提供するように設定され得る。例えば、配信プロトコルは、トランザクション要素131及びデュアラブルステイト要素133の使用によって異なり、異なる配信アシュアランスを提供し得る。起動されると、トランザクション要素131及びデュアラブルステイト要素133は、トランザクションバッファ121及びデュアラブルストア122と同様に、それぞれ機能して、メッセージを(複数の)メッセージコンシューマ107に配信し得る。
さらに、種々のメッセージログ要素152及びカーソル要素153は、拡張可能な一連の転送プロトコルのうちいずれかを構成するように起動され且つ解除され得る。各転送プロトコルは、異なる転送アシュアランスを提供するように、設定され得る。例えば、転送プロトコルは、承認要素126、132及びタイムウィンドウマネージャ124の使用によって異なり、異なる転送アシュアランスを提供し得る。
例えば、タイムウィンドウマネージャ124は、起動されると、デュアラブルストア122がメッセージの所定ウィンドウを(例えば、1日)維持する。承認要素126と132はインターオペレイトして、カーソル103からメッセージログ102にメッセージの承認を提供する。例えば、メッセージ又はメッセージの範囲がカーソル103において受信されていると、承認要素133は、承認要素126に対するメッセージ又はメッセージの範囲の受信を承認し得る。承認を受信する際に、適切なメッセージがメッセージログ102から破棄され得る。起動されると、このインターオペレイトによって、デュアラブルストア122は、承認されるまで、メッセージを保持する。したがって、サブスクリプションがいったん作成されるとコンシューマがすべてのメッセージを見失いそうにないというアシュアランスが存在する。
一般に、アシュアランス設定マネージャ104は、コマンドをメッセージログ102及びカーソル103に送信して、メッセージログ要素152及びカーソル要素153の適切の要素を起動し且つ解除する。適切なメッセージログ要素152及びカーソル要素153の起動及び解除は、所望のキャプチャ、転送、及び配信プロトコルの構成を生じせしめる。そして、所望のキャプチャ、転送、及び配信プロトコルはインターオペレイトして、所望のエンドツーエンドメッセージアシュアランスを提供する。
いくつかの実施形態においては、アシュアランス設定マネージャ104は、(例えば、システムの若しくは他の低レベルの)ランタイム設定データ109を受信する。ランタイム設定データ109は、所望のエンドツーエンドメッセージアシュアランスをコンピュータアーキテクチャにおいてメッセージの転送に提供し得るキャプチャアシュアランス、転送アシュアランス、及び配信アシュアランスの組合せを示す。
ランタイム設定データ109から、アシュアランス設定マネージャ104は、メッセージログ要素設定を構築し得る。メッセージログ要素設定は、適切なメッセージログ要素を起動し且つ解除して、キャプチャアシュアランスと転送アシュアランスの第1の部分とを構成するためのものである。例えば、メッセージログ要素設定162は、トランザクションバッファ121、デュアラブルストア122、タイムウィンドウマネージャ125、及び承認要素126を起動し且つ解除して、キャプチャアシュアランス及びカーソル要素153とインターオペレイトし得る転送アシュアランスの第1の部分を構成するためのものである。
ランタイム設定データ109から、アシュアランス設定マネージャ104は、カーソル要素設定を構築し得る。カーソル要素設定は、適切なカーソル要素を起動し且つ解除して、配信アシュアランスと転送アシュアランスの第2の部分を構成するためのものである。例えば、カーソル要素設定163は、トランザクション要素131、デュアラブルステイト要素133、及び承認要素132を起動し且つ解除して、前記配信アシュアランス及びメッセージログ要素152とインターオペレイトし得る前記転送アシュアランスの前記第2の部分を構成するためのものである。
アシュアランス設定マネージャ104は、前記メッセージログ及びカーソルにおいて前記キャプチャアシュアランス、前記転送アシュアランス、及び前記配信アシュアランスを構成し、所望のエンドツーエンドメッセージアシュアランスを実装するようにコンピュータアーキテクチャ100の要素に対して命令する。アシュアランス設定マネージャ104は、メッセージログ要素構成162をメッセージログ102に送信して、キャプチャアシュアランスと転送アシュアランスの第1部分を構成するようにメッセージログ102に命令し得る。同様に、アシュアランス設定マネージャ104は、カーソル要素設定163をカーソル103に送信して、前記配信アシュアランスと前記転送アシュアランスの前記第2の部分を構成するようにカーソル103に命令する。
先に説明したように、メッセージログ要素及びカーソル要素は、所望のエンドツーエンドメッセージアシュアランスを提供するように、起動され且つ解除される。いくつかの実施形態においては、各要素は、個別に起動可能であり、解除可能である。例えば、各要素は起動制御と解除制御とを含み得る。例えば、メッセージログ102において、トランザクションバッファ121は起動制御121Aと解除制御121Dとを含み、デュアラブルストア122は起動制御122Aと解除制御122Dとを含み、タイムウィンドウマネージャは起動制御124Aと解除制御124Dとを含み、そして、承認要素126は起動制御126Aと解除制御126Dとを含む。同様に、カーソル103において、トランザクション要素131は起動制御131Aと解除制御131Dとを含み、デュアラブルステイト要素133は起動制御133Aと解除制御133Dとを含み、そして、承認要素132は起動制御132Aと解除制御132Dとを含む。個別に起動可能であり且つ解除可能な要素は高度の細分性を提供する。この細分性は、広範囲な種々の異なる一連のメッセージキャプチャアシュアランス、メッセージ転送アシュアランス、及びメッセージ配信アシュアランスの設定を容易にせしめる。
そういうものとして、メッセージログ要素設定162は、メッセージログ要素102を個別に起動し解除する命令を含み得る。同様に、カーソル要素設定163は、カーソル要素103を個別に起動し解除する命令を含み得る。組合せにおいて、メッセージログ要素設定162及びカーソル要素設定163は、所望のエンドツーエンドメッセージアシュアランスを提供するようにメッセージログ102及びカーソル103に命令する。
図2は、分散メッセージシステムに対して設定可能となるように構成され得るアシュアランスの種々のマトリクス200を示している。マトリクス200を、図1Aのコンピュータアーキテクチャ100の要素を参照して説明する。
キャプチャアシュアランスマトリクス201は、種々の異なるキャプチャアシュアランスのプロパティの実施例を表している。メッセージストア102はメッセージプロデューサ105からのメッセージをキャプチャするのに使用し得る。キャプチャアシュアランスマトリクス201内において、各キャプチャアシュアランスはキャプチャアシュアランスが利用し若しくは利用しないアシュアランスのプロパティを示す。各キャプチャアシュアランスは、異なる組み合わせのメッセージログ要素152を起動し且つ解除することを介して実装され得る。
例えば、キャプチャアシュアランス211は、デュアラブルストアもトランザクションも利用していない。したがって、メッセージを送信することは、トランザクションについて考慮していないし、トランザクションのコミット/アボート状態であるにも関わらず、コンシューマはメッセージを見ることができる。さらに、クラッシュ又は停電が生ずると、メッセージが消失される。コンピュータアーキテクチャ100内において、キャプチャアシュアランス211は、デュアラブルストア122を解除し且つトランザクションバッファ121を解除することによって、実装され得る。
キャプチャアシュアランス221は、デュアラブルストアを利用していないものの、トランザクションを利用している。したがって、コンシューマは、(例えば、トランザクションコーディネータ111によって調整された)コミットされたトランザクションに対するメッセージを見る。しかしながら、クラッシュ又は停電が生ずると、メッセージが消失される。コンピュータアーキテクチャ100内において、キャプチャアシュアランス221は、デュアラブルストア122を解除し且つトランザクションバッファ121を起動させることによって、実装され得る。
キャプチャアシュアランス231は、デュアラブルストアを利用しているものの、トランザクションは利用していない。したがって、メッセージを送信することは、トランザクションについて考慮していないし、トランザクションのコミット/アボート状態であるにも関わらず、コンシューマはメッセージを見ることができる。しかしながら、クラッシュ又は停電が生ずると、メッセージが消失しないように、メッセージは永久的に(例えば、ディスクに)記憶される。コンピュータアーキテクチャ100内において、キャプチャアシュアランス231は、デュアラブルストア122を起動し且つトランザクションバッファ121を解除することによって、実装され得る。
キャプチャアシュアランス241は、デュアラブルストア及びトランザクションを利用する。したがって、コンシューマは、コミットされたトランザクションに対するメッセージを見るし、クラッシュ又は停電の場合においてメッセージは消失されない。コンピュータアーキテクチャ100内において、キャプチャアシュアランス241は、デュアラブルストア122を起動し且つトランザクションバッファ121を起動することによって、実装され得る。
転送シュアランスマトリクス202は、メッセージストア102からカーソル103へとメッセージを転送するのに使用され得る種々の異なる転送アシュアランスのプロパティの実施例を表している。転送アシュアランスマトリクス202内において、各転送アシュアランスは転送アシュアランスが利用し若しくは利用しないアシュアランスのプロパティを示す。各転送アシュアランスは、異なる組み合わせのメッセージログ要素152及びカーソル要素153を起動し且つ解除することを介して実装され得る。
例えば、転送アシュアランス212は、承認された配信又はタイムウィンドウを利用しない。転送アシュアランス212は本質的にはベストエフォート配信を表している。コンピュータアーキテクチャ100内において、転送アシュアランス212は、タイムウィンドウマネージャ124を解除し且つ承認要素126と132を解除することによって実装され得る。
転送アシュアランス222は、承認された配信を利用するものの、タイムウィンドウを利用しない。転送アシュアランス222は、承認されるまでメッセージを(おそらく永久に)保持する。転送アシュアランス222は、サブスクリプションがいったん作成されるとコンシューマがメッセージを見失いそうにないというアシュアランスを提供する。しかしながら、タイムウィンドウは全く利用されないので、サブスクリプションは、古いメッセージを取得することができない。コンピュータアーキテクチャ100内において、転送アシュアランス222は、タイムウィンドウマネージャ124を解除し且つ承認要素126と132を起動することによって実装され得る。
転送アシュアランス232は、承認された配信を利用しないものの、タイムウィンドウを利用する。転送アシュアランス232は、メッセージの所定ウィンドウを(例えば、1日)保持するよう保証する。したがって、既存の加入者は、オンライン‐ウィンドウに後れをとるまで、メッセージを見逃しそうにはない。新規加入者には、所定の範囲の過去のメッセージを受信する実質的な見込みがある。コンピュータアーキテクチャ100内において、転送アシュアランス232は、タイムウィンドウマネージャ124を起動し且つ承認要素126及び132を解除することによって実装され得る。
転送アシュアランス242は、承認された配信を利用し、タイムウィンドウを利用している。転送アシュアランス242は本質的には転送アシュアランス222と転送アシュアランス232の論理ANDである。したがって、既存の加入者はメッセージを見逃しそうにはなく、新規加入者には、所定の範囲の過去のメッセージを受信する実質的な見込みがある。コンピュータアーキテクチャ100内において、転送アシュアランス242は、タイムウィンドウマネージャ124を起動し且つ承認要素126及び132を起動することによって実装され得る。
保存方針に依存して、割当量に達しているときに、メッセージログ102は異なる動作をすることができる。例えば、転送アシュアランス212を利用するとき、割当量に達しているときに、メッセージログ102は単にメッセージをドロップし得る。メッセージがドロップされると、メッセージログ102はメッセージプロデューサ105にエラーメッセージを送信しない。そういうものとして、メッセージプロデューサ105は、遅延が生じるばあい、ほとんど動作しない。
転送アシュアランス222、232、又は242を利用するとき、メッセージログ102は、プロデューサに対する送信の応答を遅延させて、コンシューマがメッセージをドレーニングする更なる時間を与えることができる。したがって、メッセージログ102は、タイムアウトとメッセージ再試行を避けるためにある程度補償し得る。しかしながら、メッセージログ102は、メッセージプロデューサがエラーを受信して、場合によってはリトライすることを生じせしめるタイムアウトに最終的に達し得る。
配信アシュアランスマトリクス203は、メッセージをカーソル103から(複数の)メッセージコンシューマ107へと転送するのに使用され得る種々の異なる配信アシュアランスのプロパティの実施例を表している。配信アシュアランスマトリックス203内において、各転送アシュアランスは転送アシュアランスが利用し若しくは利用しないアシュアランスプロパティを示している。各転送シュアランスは、異なる組み合わせのカーソル要素153を起動し且つ解除することを介して実装され得る。
例えば、配信アシュアランス213は、デュアラブルステイトもトランザクションをも利用していない。配信アシュアランス213は、パブリッシュ/サブスクライブ機能を本質的には表している。コンピュータアーキテクチャ100内において、配信アシュアランス213は、デュアラブルステイト要素133及びトランザクション要素131を解除することによって、実装され得る。
配信アシュアランス223は、デュアラブルステイトを利用しているものの、トランザクションは利用していない。したがって、コンシューマは、ごく小さな変化を実施する機構として揮発性トランザクションを使用している。カーソル103は、(例えば、トランザクションコーディネータ112によって調整された)トランザクションに参加し、1回限定配信をコミットされた状態に提供する。コンピュータアーキテクチャ100内において、配信アシュアランス223は、デュアラブルステイト要素133を解除し且つトランザクション要素131を起動することによって、実装され得る。
配信アシュアランス233は、デュアラブルステイトを利用しているものの、トランザクションは利用していない。したがって、カーソル103は永続的であるものの、(複数の)メッセージコンシューマ107はトランザクションを使用しない。提供されたアシュアランスのプロパティはデュアラブルステイト要素133と(複数の)メッセージコンシューマ107との間で実装された用途パターン(プロトコル)に依存し得る。例えば、第1の用途パターンは、メッセージをロック(して、他のコンシューマがメッセージにアクセスするのを防止)するロッキングプロトコルと、配信が完了した旨をカーソルに知らせる承認プロトコルとを使用することを含む。第1の用途パターンにおいて、コンシューマ(107)は、メッセージを受信すると直ちに且つそれを処理する前に、承認プロトコルを利用する。次に、メッセージ承認動作の後に、第1の用途パターンは、メッセージに基づいた作業を行うことを含む。第1の用途パターンを使用する(複数の)メッセージコンシューマ107は、最大1回メッセージ配信を提供される。
第2の用途パターンは、メッセージをロックするロッキングプロトコルと、配信が完了した旨をカーソルに知らせる承認プロトコルとを使用することを含む。第2の用途パターンにおいて、コンシューマ(107)は、メッセージに基づいた動作をした後に、自身がメッセージを受信したことをカーソルに知らせる承認プロトコルを使用することを含む。第2の用途パターンを使用する(複数の)メッセージコンシューマ107は、最小1回メッセージ配信を提供される。
コンピュータアーキテクチャ100内において、配信アシュアランス233は、デュアラブルステイト要素133を起動し且つトランザクション要素131を解除することによって、実装され得る。(先に説明した第1及び第2の用途パターンを含む)異なる用途パターンは、配信アシュアランス233に異なるプロパティを提供し得る。かかる異なるプロパティとは、例えば、最大1回メッセージ配信及び最小1回メッセージ配信等である。とにかく、配信アシュアランス233は、デュラブルメッセージステートを提供し、クラッシュ又は停電からの回復が起こり得る。
配信アシュアランス243は、デュアラブルステイト及びトランザクションを利用している。従って、配信アシュアランス243は、(複数の)メッセージコンシューマ107にデュアラブル1回限定配信を提供する。コンピュータアーキテクチャ100内において、配信アシュアランス243は、デュアラブルステイト要素133を起動し且つトランザクション要素131を起動することによって、実装され得る。
先に説明したように、種々のアシュアランスが、(例えば、低レベルの)ランタイム設定データによって表され得る。可能であるものの、ランタイム設定データはエンドユーザの意志を必ずしも表していない。多くのエンドユーザが異なるアシュアランスに関して十分な理解を欠いているので、高レベルモデルは、非効率(例えば、無駄なリソース)及びアシュアランスの不適当な組み合わせからの保護を提供し得る。例えば、高レベルモデルはデュラブルトランザクションキャプチャを提供するキャプチャアシュアランスと、ベストエフォートである転送アシュアランスの組合せを防止することができる。高レベルモデルは、アシュアランスの適切な組合せを選択して、エンドツーエンドアシュアランスを提供するランタイム設定データを利用し得る。
図3は、分配メッセージシステム内のメッセージアシュアランスを設定する例示的方法300のフローチャートを示している。マトリクス300を、図1Aのコンピュータアーキテクチャ100に示した要素及びデータを参照して説明する。
方法300は、ランタイム設定データを受信する動作(動作301)を含む。そのランタイム設定データは、分散メッセージシステムにおけるメッセージの転送に対する所望のエンドツーエンドメッセージアシュアランスを提供し得るキャプチャアシュアランス、転送アシュアランス、及び配信アシュアランスの組合せを示す。例えば、アシュアランス設定マネージャ104はランタイム設定データ109を受信し得る。ランタイム設定データ109は、コンピュータアーキテクチャ100におけるメッセージの転送に対して所望のエンドツーエンドメッセージアシュアランスを提供し得るキャプチャアシュアランス、転送アシュアランス、及び配信アシュアランスを示し得る。
方法300はランタイム設定データからメッセージログ要素設定を構築する動作を含む(動作302)。メッセージログ要素設定は、適切なメッセージログ要素を起動し且つ解除して、キャプチャアシュアランスを構成し且つ転送アシュアランスの第1の部分を構成して、カーソル要素によって提供された転送アシュアランスの対応する第2の部分とインターオペレイトする。例えば、アシュアランス設定マネージャ104は、メッセージログ要素設定162を構築し得る。メッセージログ要素設定162は、適切なメッセージログ要素152を起動し且つ解除して、キャプチャアシュアランスを構成する命令を含み得る。メッセージログ要素設定162は、適切なメッセージログ要素152を起動し且つ解除して、転送アシュアランスの第1の部分を構成して、カーソル要素103によって提供された転送アシュアランスの対応する第2の部分とインターオペレイトする命令を含み得る。
方法300は、ランタイム設定データからカーソル要素設定を構築する動作(動作303)を含む。カーソル要素設定は、適切なカーソル要素を起動し且つ解除して、配信アシュアランスを構成し且つ転送アシュアランスの対応する第2の部分を構成して、メッセージログ要素によって提供された転送アシュアランスの第1の部分とインターオペレイトする。例えば、アシュアランス設定マネージャ104はカーソル要素設定163を構築し得る。カーソル要素設定163は、適切なカーソル要素153を起動し且つ解除して、配信アシュアランスを構成せしめる命令を含み得る。カーソル要素設定163は、適切なカーソル要素153を起動し且つ解除して、転送アシュアランスの第2の部分を構成して、メッセージログ要素102によって提供された転送アシュアランスの第1の部分とインターオペレイトせしめる命令をも含み得る。
方法300は、前記メッセージログ及びカーソルにおいて前記キャプチャアシュアランス、前記転送アシュアランス、及び前記配信アシュアランスを構成して、前記所望のエンドツーエンドメッセージアシュアランスを前記分散メッセージシステムに対して提供するように、分散メッセージシステムに命令する動作(動作304)を含む。例えば、アシュアランス設定マネージャは、前記メッセージログ及びカーソルにおいて前記キャプチャアシュアランス、前記転送アシュアランス、及び前記配信アシュアランスを構成して、前記所望のエンドツーエンドメッセージアシュアランスをコンピュータアーキテクチャ100に対して提供するようにコンピュータアーキテクチャ100に命令し得る。
動作304は、メッセージログ要素設定をメッセージログに送信して、キャプチャアシュアランスと転送アシュアランスの前記第1の部分とを構成するようにメッセージログに命令する動作(動作305)を含み得る。例えば、アシュアランス設定マネージャ104は、メッセージログ要素設定162をメッセージログ102に送信して、コンピュータアーキテクチャ100に対して前記キャプチャアシュアランスと転送アシュアランスの前記第1の部分とを構成するようにメッセージログ102に命令をする。動作304は、カーソル要素設定をカーソルに送信して、前記配信アシュアランスと前記転送アシュアランスの前記第2の部分とを構成するようにカーソルに命令する動作(動作306)を含み得る。例えば、アシュアランス設定マネージャ104は、カーソル要素設定163をカーソル103に送信して、コンピュータアーキテクチャ100に対して前記配信アシュアランスと前記転送アシュアランスの前記第2の部分とを構成するようにカーソル103に命令し得る。
メッセージログ102とカーソル103は、メッセージログ要素設定162とカーソル要素設定163に関する命令をそれぞれ実装し得る。命令から、メッセージログ102及びカーソル103は、適切なメッセージログ要素152とカーソル要素153とをそれぞれ起動し且つ解除して、キャプチャアシュアランス、転送アシュアランス、及び配信アシュアランスを構成せしめ得る。それとともに、キャプチャアシュアランス、転送アシュアランス、及び配信アシュアランスは、所望のエンドツーエンドメッセージアシュアランスをコンピュータアーキテクチャ100に対して提供する。
図1B参照すると、図1Bは、デュラブル1回限定エンドツーエンドメッセージ転送アシュアランスを提供するように構成されたコンピュータアーキテクチャ100を示している。図IBに示されたアシュアランスは、コンピュータアーキテクチャ100内で方法300を適用することに起因し得る。図示されているように、メッセージログ102はキャプチャアシュアランス241を構成して、メッセージプロデューサ105からのデュラブルトランザクションベースのメッセージキャプチャを提供する。メッセージログ102とカーソル103は、転送アシュアランス242を構成するようにインターオペレイトして、タイムウィンドウの保持及びメッセージログ102とカーソル103と間のメッセージ承認転送を提供する。カーソル103は配信アシュアランス243を構成して、(複数の)メッセージコンシューマ107にデュアラブルトランザクションベースのメッセージ配信を提供する。キャプチャアシュアランス241、転送アシュアランス242、及び配信アシュアランス243の構成は、ともに、デュラブル1回限定エンドツーエンドアシュアランス174を提供する。
そういうものとして、メッセージプロデューサ105からのメッセージ(例えば、メッセージ164)が、システムクラッシュ及び/又は停電の場合でさえメッセージコンシューマ107において一度だけ受信されるように本質的に保証される。
従って、本発明の実施形態は、起動可能であり且つ解除可能である定義された一連のメッセージ要素を使用して、種々の異なるメッセージアシュアランスの設定を容易にせしめる。よって、本発明の実施形態は、キューをシミュレートし且つ種々の異なるメッセージアシュアランスのうちいずれかを有するメッセージシステムをパブリッシュ/サブスクライブするように実装され得る。定義された一連の要素が使用されるので、メッセージシステム内においてアシュアランスを設定し且つアシュアランスの設定を変更することは、非常に効率的である。
このように、本発明の実施形態によって、事業主は、コストに対して、種々のメッセージアシュアランスに対する需要のバランスをとることが可能となり、かかるメッセージアシュアランスを提供する。例えば、コンシューマが全てのメッセージ(例えば、ストリーミングメディア)を受信することを、ビジネスルールが必要としないときには、ベストエフォート配信又は最大1回配信を使用することによって、リソースが節約され得る。さらに、企業のビジネスルールが変化するとき、メッセージシステムは、新規ビジネスルールに従うように容易に移行され得る。例えば、リソースを節約するために、メッセージシステムは、いくつかの他のタイプの配信アシュアランスからベストエフォートに移行され得る。他方では、ビジネスルールが、収入モデルに移行する場合、コンシューマ(例えば、有料入場者)が少なくとも一度だけメッセージを得ることを保障するように、アシュアランスがこれに応じて移行され得る。
本発明は、本発明の趣旨若しくは本質的な特性から逸脱することなく、他の特定の形態において具現化され得る。上述した実施形態は、すべての点において単なる実例として考慮されるべきであり、限定するものではないと考慮すべきである。したがって、本発明の範囲は、先に説明した説明というよりはむしろ、添付した特許請求の範囲によって示されている。特許請求の範囲の均等な意味及び範囲に含まれるすべての変更が、特許請求の範囲の範囲内に包含されるべきである。

Claims (20)

  1. 設定可能なアシュアランスを用いたコンポーネント化メッセージシステム(100)であって、
    メッセージを記憶するように構成されたメッセージログ(102)と、
    前記メッセージログ(102)におけるメッセージ(164)を介してコンシューマ(107)の進行を追跡するように構成されたカーソル(103)と、を含み、
    前記メッセージログは、1つ以上のプロセッサ、システムメモリ、及びメッセージログ要素(152)を含み、
    前記メッセージログ要素(152)は拡張可能な一連のキャプチャプロトコルのうちいずれかを構成して、メッセージ(164)をメッセージプロデューサ(105)からキャプチャし、
    前記拡張可能な一連のキャプチャプロトコルは一連のメッセージキャプチャアシュアランス内から種々の異なるメッセージキャプチャアシュアランスのうりいずれかを提供するように構成され、
    前記一連のメッセージキャプチャアシュアランスは、デュアラブルストア(122)の使用により変化し且つトランザクションの使用により変化し、
    前記カーソル(103)は、1つ以上のプロセッサ、システムメモリ、及びカーソル要素(153)を含み、
    前記カーソル要素(153)は、拡張可能な一連の配信ロトコルのうちいずれかを構成して、メッセージ(164)をメッセージコンシューマ(107)に配信し、
    前記拡張可能な一連の配信プロトコルは、一連のメッセージ配信アシュアランス(203)内から種々の異なるメッセージ配信アシュアランスのうちいずれかを提供するように構成され、
    前記一連のメッセージ配信アシュアランスは、デュアラブルストア(122)の使用によって変化し且つトランザクションの使用によって変化し、
    前記メッセージログ(102)及び前記カーソル(103)の各々は、互いにインターオペレイトして、拡張可能な一連の転送プロトコルのうちいずれかを構成して、メッセージを前記メッセージログ(102)から前記分離カーソル(103)へと転送する要素をさらに含み、
    前記拡張可能な一連の転送プロトコルは、一連のメッセージ転送アシュアランス(202)内から種々の異なるメッセージ転送アシュアランスのうちいずれかを提供するように構成され、
    前記一連のメッセージ転送アシュアランスは、タイムウィンドウの使用によって異なり、承認された配信の使用によって異なることを特徴とするシステム。
  2. 拡張可能な一連のキャプチャプロトコルを実装する前記メッセージログ要素は、
    トランザクションバッファと、
    デュアラブルストアとを含み、
    前記トランザクションバッファは、前記一連のキャプチャプロトコルのうちから選択されたキャプチャプロトコルを構成する際に幇助するよう設定可能に起動され且つ解除され、
    前記トランザクションバッファは、トランザクションの動作を選択されたキャプチャプロトコルに与えるように起動され、
    前記トランザクションバッファは、
    非トランザクションの動作を選択されたキャプチャプロトコルに与えるように解除され、
    前記デュアラブルストアは、前記拡張可能な一連のキャプチャプロトコルのうちから選択されたキャプチャプロトコルを実装する際に、幇助するよう設定可能に起動され且つ解除され、
    前記デュアラブルストアは、デュアラブルストレージを選択されたキャプチャプロトコルに与えるように起動され、
    前記デュアラブルストアは、揮発性ストレージを選択されたキャプチャプロトコルに与えるように解除されることを特徴とする請求項1に記載のシステム。
  3. 前記トランザクションバッファ及びデュアラブルストアのうちの1つが起動され且つ前記トランザクションバッファ及びデュアラブルストアのうちの1つが解除されることを特徴とする請求項2に記載のシステム。
  4. 拡張可能な一連の転送プロトコルを実装する前記カーソル要素は、
    トランザクション要素と、
    デュアラブルステイト要素とを含み、
    前記トランザクション要素は、前記拡張可能な一連の転送プロトコルのうちから選択された転送プロトコルを構成する際に、幇助するよう設定可能に起動され且つ解除され、
    前記トランザクション要素は、トランザクションの動作を選択された転送プロトコルに与えるように起動され、
    前記トランザクション要素は、非トランザクションの動作を選択された転送プロトコルに与えるように解除され、
    前記デュアラブルステイト要素は、前記拡張可能な一連の転送プロトコルのうちから選択された転送プロトコルを実装する際に、幇助するよう設定可能に起動され且つ解除され、
    前記デュアラブルステイト要素は、デュアラブルカーソルステイトを選択された転送プロトコルに与えるように起動され、
    前記デュアラブルステイト要素は、揮発性カーソルステイトを選択された転送プロトコルに与えるように解除されることを特徴とする請求項1に記載のシステム。
  5. 前記トランザクション要素及びデュアラブルステイト要素のうちの1つが起動され且つ前記トランザクション要素及びデュアラブルステイト要素のうちの1つが解除されることを特徴とする請求項4に記載のシステム。
  6. 拡張可能な一連の転送プロトコルを実装するように互いにインターオペレイトする前記メッセージログ及び前記分離カーソルは、
    メッセージ承認要素と、
    タイムウィンドウ要素とを含み、
    前記メッセージ承認要素は、前記一連の拡張可能な転送プロトコルのうちから選択された転送プロトコルを実装する際に、幇助するよう設定可能に起動可能であり且つ解除可能であり、
    前記メッセージ承認要素は、メッセージ承認動作を選択された転送プロトコルに与えるように起動され、
    前記メッセージ承認要素は、メッセージ承認動作を選択された転送プロトコルに対して防止するように解除され、
    前記タイムウィンドウ要素は、前記一連の拡張可能な転送プロトコルのうちから選択された転送プロトコルを実装する際に、幇助するよう設定可能に起動可能であり且つ解除可能であり、
    前記タイムウィンドウ要素は、メッセージのウィンドウの維持を選択された転送プロトコルに提供するように起動され、
    前記タイムウィンドウ要素は、メッセージのウィンドウの維持を選択された転送プロトコルに対して防止するように解除されることを特徴とする請求項1に記載のシステム。
  7. 前記メッセージ承認要素及びタイムウィンドウ要素のうちの1つが起動され且つ前記メッセージ承認要素及びタイムウィンドウ要素のうちの1つが解除されることを特徴とする請求項6に記載のシステム。
  8. 前記メッセージログ要素及び前記カーソル要素は、設定で変えられるように起動され且つ解除されて、ベストエフォートメッセージ配信、最大1回メッセージ配信、最小1回メッセージ配信、及び1回限定メッセージ配信のうち一つを提供することを特徴とする請求項1に記載のシステム。
  9. 前記メッセージログ要素及び前記カーソル要素は、設定で変えられるように起動され且つ解除されて、デュアラブルメッセージ配信又は揮発性メッセージ配信のうち一つを提供することを特徴とする請求項1に記載のシステム。
  10. 前記メッセージログ要素及び前記カーソル要素は、設定で変えられるように起動され且つ解除されて、デュアラブル1回限定メッセージ配信を提供することを特徴とする請求項1に記載のシステム。
  11. 設定可能なアシュアランスを用いコンポーネント化メッセージシステムであって、メッセージのデュラブル1回限定配信を複数のクライアントに提供するように構成された前記コンポーネント化メッセージシステムは、
    メッセージログと、
    分離クライアントサイドカーソルとを含み、
    前記メッセージログは、1つ以上のプロセッサ、システムメモリ、及び構成可能なメッセージストレージ要素を含み、
    前記構成可能なメッセージストレージ要素は、拡張可能な一連のキャプチャプロトコルのうちいずれかを実装してメッセージをメッセージプロデューサからキャプチャし、
    前記メッセージログ要素は、メッセージプロデューサからのメッセージをキャプチャするデュアラブルトランザクションベースのキャプチャプロトコルを実装するように構成され、
    前記分離クライアントサイドカーソルは前記メッセージログから分離され、
    前記分離カーソルは、1つ以上のプロセッサ、システムメモリ、及びカーソル要素を含み、
    前記カーソル要素は、拡張可能な一連の配信プロトコルを実装してメッセージをメッセージコンシューマに配信し、
    前記カーソル要素は、メッセージをメッセージコンシューマに配信するデュアラブルトランザクションベースの配信プロトコルを実装するように構成され、
    前記メッセージログ及び前記分離カーソルの各々は、拡張可能な一連の転送プロトコルを実装するように互いにインターオペレイトして、メッセージを前記メッセージログから前記分離カーソルに転送する要素をも含み、
    前記インターオペレイトする要素は、メッセージ承認動作及びメッセージのウィンドウの保持を提供する転送プロトコルを実装するように構成されていることを特徴とするシステム。
  12. 前記デュアラブルトランザクションベースのキャプチャプロトコルを実装する前記デュアラブルストア要素は、
    トランザクションバッファと、
    デュアラブルストアとを含み、
    前記トランザクションバッファは、前記一連の拡張可能なキャプチャプロトコルのうちから選択されたキャプチャプロトコルを実装する際に幇助するよう設定可能に起動され且つ解除され、
    前記トランザクションバッファは、トランザクションの動作を前記デュアラブルトランザクションベースのキャプチャプロトコルに与えるように起動され、
    前記デュアラブルストアは、前記拡張可能な一連のキャプチャプロトコルのうちから選択されたキャプチャプロトコルを実装する際に、幇助するよう設定可能に起動可能であり且つ解除可能であり、
    前記デュアラブルストアは、デュアラブルストレージを前記デュアラブルトランザクションベースのキャプチャプロトコルに与えるように起動されることを特徴とする請求項11に記載のシステム。
  13. 前記デュアラブルトランザクションベースのキャプチャプロトコルを実装する前記分離クライアントサイド要素は、
    トランザクション要素と、
    デュアラブルステイト要素とを含み、
    前記トランザクション要素は、前記一連の拡張可能な配信プロトコルのうちから選択された配信プロトコルを実装する際に、幇助するよう設定可能に起動可能であり且つ解除可能であり、
    前記トランザクション要素は、トランザクションの動作をデュアラブルトランザクションベースの配信プロトコルに与えるように起動され、
    前記デュアラブルステイト要素は、前記拡張可能な一連の転送プロトコルのうちから選択された転送プロトコルを実装する際に、幇助するよう設定可能に起動可能であり且つ解除可能であり、
    前記デュアラブルステイト要素は、デュアラブルカーソルステイトを前記デュアラブルトランザクションベースの配信プロトコルに与えるように起動されることを特徴とする請求項11に記載のシステム。
  14. メッセージ承認動作及びメッセージのウィンドウの保持を提供する転送プロトコルを実装するインターオペレイトする要素は、
    メッセージ承認要素と、
    タイムウィンドウ要素とを含み、
    前記メッセージ承認要素は、前記一連の拡張可能な転送プロトコルのうちから選択された転送プロトコルを実装する際に、幇助するよう設定可能に起動可能であり且つ解除可能であり、
    前記メッセージ承認要素は、メッセージ承認動作を前記転送プロトコルに与えるように起動され、
    前記タイムウィンドウ要素は、前記一連の拡張可能な転送プロトコルのうちから選択された転送プロトコルを実装する際に、幇助するよう設定可能に起動可能であり且つ解除可能であり、
    前記タイムウィンドウ要素は、メッセージのウィンドウの維持を前記転送プロトコルに提供するように起動されることを特徴とする請求項11に記載のシステム。
  15. メッセージログ(102)及びカーソル(103)を含む分散メッセージシステム(100)において、エンドツーエンドメッセージアシュアランスをメッセージプロバイダ(106)からメッセージコンシューマ(107)へのメッセージの転送に対して設定する方法は、
    所望のエンドツーエンドメッセージアシュアランスを前記分散メッセージシステム(100)のメッセージの転送に与え得るキャプチャアシュアランス、転送アシュアランス、及び配信アシュアランスの組合せを示す受信ランタイム設定データ(109)を受信する動作と、
    前記ランタイム設定データ(109)からのメッセージログ要素設定(162)を構築する動作であって、適切なメッセージログ要素(152)を起動し且つ解除して、前記キャプチャアシュアランスを構成し且つカーソル要素によって与えられた前記転送アシュアランスの対応する第2の部分とインターオペレイトする前記転送アシュアランスの第1の部分を構成するメッセージログ要素設定(162)を構築する動作と、
    前記ランタイム設定データ(109)からのカーソル要素設定(163)を構築する動作であって、適切なカーソル要素構成(153)を起動し且つ解除して配信アシュアランスを構成し且つ前記転送アシュアランスの前記対応する第2の部分を構成して、前記メッセージログ要素によって与えられた前記転送アシュアランスの前記第1の部分とインターオペレイトするカーソル要素設定(163)を構築する動作と、
    前記メッセージログ及びカーソルにおいて前記キャプチャアシュアランス、前記転送アシュアランス、及び前記配信アシュアランスを構成して、前記所望のエンドツーエンドメッセージアシュアランスを前記分散メッセージシステムに対して提供するように前記分散メッセージシステム(101)に命令する動作と、
    前記メッセージログ要素構成(162)を前記メッセージログ(102)に送信して、前記キャプチャアシュアランスと転送アシュアランスの前記第1の部分を構成するように、前記メッセージログ(102)に命令する動作と、
    前記カーソル要素構成(163)を前記カーソル(103)に送信し、前記配信アシュアランスと前記転送アシュアランスの前記第2の部分を構成するように前記カーソル(103)に命令する動作とを含む方法。
  16. キャプチャアシュアランス、転送アシュアランス、及び配信アシュアランスの組合せを示すランタイム設定データを受信する前記動作は、デュアラブル1回限定メッセージ配信を提供し得るキャプチャアシュアランス、転送アシュアランス、及び配信アシュアランスの組合せを示すランタイム設定データを受信する動作を含むことを特徴とする請求項15に記載の方法。
  17. 前記メッセージログ及びカーソルにおいて前記キャプチャアシュアランス、前記転送アシュアランス、及び前記配信アシュアランスを構成して、前記所望のエンドツーエンドメッセージアシュアランスを前記分散メッセージシステムに対して実装するように、前記分散メッセージシステムに命令する動作は、
    前記メッセージログ及びカーソルにおいて前記キャプチャアシュアランス、前記転送アシュアランス、及び前記配信アシュアランスを構成して、前記所望のエンドツーエンドメッセージアシュアランスをメッセージキューイングシステムに対して実装するように前記分散メッセージシステムに命令する動作を含むことを特徴とする請求項15に記載の方法。
  18. 前記メッセージログ及びカーソルにおいて前記キャプチャアシュアランス、前記転送アシュアランス、及び前記配信アシュアランスを構成して、前記所望のエンドツーエンドメッセージアシュアランスを前記分散メッセージシステムに対して実装するように、前記分散メッセージシステムに命令をする動作は、
    前記メッセージログ及びカーソルにおいて前記キャプチャアシュアランス、前記転送アシュアランス、及び前記配信アシュアランスを構成して、前記所望のエンドツーエンドメッセージアシュアランスをパブリッシュ/サブスクライブメッセージシステムに対して実装するように前記分散メッセージシステムに命令する動作を含むことを特徴とする請求項15に記載の方法。
  19. 前記メッセージログ及びカーソルにおいて前記キャプチャアシュアランス、前記転送アシュアランス、及び前記配信アシュアランスを構成して、前記所望のエンドツーエンドメッセージアシュアランスを前記分散メッセージシステムに対して実装するように前記分散メッセージシステムに命令する動作は、
    前記メッセージログ及びカーソルにおいて前記キャプチャアシュアランス、前記転送アシュアランス、及び前記配信アシュアランスを構成して、ベストエフォートメッセージメッセージ配信、最大1回メッセージ配信、最小1回メッセージ配信、及び1回限定メッセージ配信のうち一つと、デュアラブルメッセージ配信及び揮発性メッセージ配信のうち一つを実装するように前記分散メッセージシステムに命令する動作を含むことを特徴とする請求項15に記載の方法。
  20. 前記キャプチャプロトコル及び前記転送プロトコルの前記第1の部分を構成するよう前記メッセージログ要素設定において命令された通りに前記メッセージログ要素を起動し且つ解除する前記メッセージログの動作と、
    前記配信プロトコル及び前記転送プロトコルの前記第2の部分を構成する前記カーソル要素設定において命令された通りに前記カーソル要素を起動し且つ解除する前記カーソルの動作と、をさらに含む請求項15に記載の方法。
JP2010534236A 2007-11-16 2008-11-14 設定可能なアシュアランスを用いた分散メッセージシステム Expired - Fee Related JP5473930B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US98873507P 2007-11-16 2007-11-16
US60/988,735 2007-11-16
US12/163,572 US8214847B2 (en) 2007-11-16 2008-06-27 Distributed messaging system with configurable assurances
US12/163,572 2008-06-27
PCT/US2008/083654 WO2009065049A1 (en) 2007-11-16 2008-11-14 Distributed messaging system with configurable assurances

Publications (2)

Publication Number Publication Date
JP2011503752A true JP2011503752A (ja) 2011-01-27
JP5473930B2 JP5473930B2 (ja) 2014-04-16

Family

ID=40639176

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010534236A Expired - Fee Related JP5473930B2 (ja) 2007-11-16 2008-11-14 設定可能なアシュアランスを用いた分散メッセージシステム

Country Status (6)

Country Link
US (1) US8214847B2 (ja)
EP (1) EP2223280A4 (ja)
JP (1) JP5473930B2 (ja)
CN (1) CN101861598B (ja)
RU (1) RU2480829C2 (ja)
WO (1) WO2009065049A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7693952B2 (en) * 2003-03-27 2010-04-06 Microsoft Corporation Availability and scalability in a messaging system in a manner transparent to the application
FR2930392B1 (fr) * 2008-04-22 2022-01-28 Trustseed Procede et dispositif de securisation de transferts de donnees
US8266126B2 (en) * 2010-03-24 2012-09-11 Matrixx Software, Inc. System with multiple conditional commit databases
CN102014373B (zh) * 2010-11-22 2015-04-01 中兴通讯股份有限公司 一种激活配置的方法及装置
US8843580B2 (en) * 2011-02-20 2014-09-23 International Business Machines Corporation Criteria-based message publication control and feedback in a publish/subscribe messaging environment
US8793322B2 (en) 2011-02-20 2014-07-29 International Business Machines Corporation Failure-controlled message publication and feedback in a publish/subscribe messaging environment
US9015303B2 (en) 2011-09-12 2015-04-21 Microsoft Corporation Message queue behavior optimizations
US9344391B2 (en) 2012-03-14 2016-05-17 Microsoft Technology Licensing, Llc High density hosting for messaging service
US9509529B1 (en) * 2012-10-16 2016-11-29 Solace Systems, Inc. Assured messaging system with differentiated real time traffic
CN103034541B (zh) * 2012-11-16 2016-09-28 北京奇虎科技有限公司 一种分布式消息系统及其中的设备和方法
GB2512086A (en) * 2013-03-20 2014-09-24 Ibm Transaction capable queuing
WO2014207919A1 (ja) * 2013-06-28 2014-12-31 株式会社 東芝 電子機器
RU2630389C2 (ru) * 2016-02-01 2017-09-07 Федеральное государственное бюджетное образовательное учреждение высшего образования "Рыбинский государственный авиационный технический университет имени П.А. Соловьева" Система информационной поддержки разработчика программного обеспечения для микроконтроллеров
US11663015B2 (en) 2020-07-23 2023-05-30 International Business Machines Corporation Tracking asynchronous event processing
US11962558B1 (en) * 2022-10-24 2024-04-16 Amdocs Development Limited System, method, and computer program for an exactly once messaging protocol in a publish-subscribe messaging system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004295896A (ja) * 2003-03-27 2004-10-21 Microsoft Corp メッセージ交換システムにおける可用性および拡張性をアプリケーションに透過的に向上させる方法

Family Cites Families (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020004812A1 (en) 1997-06-26 2002-01-10 Tetsuro Motoyama Method and system for diagnosis and control of machines using connectionless modes having delivery monitoring and an alternate communication mode
GB2268374A (en) 1992-06-23 1994-01-05 Ibm Network addressing
US5786771A (en) 1993-02-12 1998-07-28 International Business Machines Corporation Selectable checking of message destinations in a switched parallel network
US5377350A (en) 1993-04-30 1994-12-27 International Business Machines Corporation System for cooperative communication between local object managers to provide verification for the performance of remote calls by object messages
IL111154A0 (en) 1993-10-21 1994-12-29 Martino Ii John A Systems and methods for electronic messaging
US5826269A (en) 1995-06-21 1998-10-20 Microsoft Corporation Electronic mail interface for a network server
US6339794B2 (en) 1995-12-08 2002-01-15 Microsoft Corporation Wire protocol for a media server system
GB2313524A (en) 1996-05-24 1997-11-26 Ibm Providing communications links in a computer network
US5872930A (en) 1996-07-11 1999-02-16 Microsoft Corporation Load balancing between E-mail servers within a local area network
US5870556A (en) 1996-07-12 1999-02-09 Microsoft Corporation Monitoring a messaging link
US5796633A (en) * 1996-07-12 1998-08-18 Electronic Data Systems Corporation Method and system for performance monitoring in computer networks
US5819272A (en) 1996-07-12 1998-10-06 Microsoft Corporation Record tracking in database replication
US5951648A (en) 1997-03-03 1999-09-14 Mylex Corporation Reliable event delivery system
US5951695A (en) 1997-07-25 1999-09-14 Hewlett-Packard Company Fast database failover
US6058389A (en) 1997-10-31 2000-05-02 Oracle Corporation Apparatus and method for message queuing in a database system
US6446206B1 (en) 1998-04-01 2002-09-03 Microsoft Corporation Method and system for access control of a message queue
US6205498B1 (en) 1998-04-01 2001-03-20 Microsoft Corporation Method and system for message transfer session management
US6256634B1 (en) 1998-06-30 2001-07-03 Microsoft Corporation Method and system for purging tombstones for deleted data items in a replicated database
US6594701B1 (en) 1998-08-04 2003-07-15 Microsoft Corporation Credit-based methods and systems for controlling data flow between a sender and a receiver with reduced copying of data
US7050432B1 (en) 1999-03-30 2006-05-23 International Busines Machines Corporation Message logging for reliable multicasting across a routing network
US7020697B1 (en) 1999-10-01 2006-03-28 Accenture Llp Architectures for netcentric computing systems
US6970945B1 (en) 1999-11-01 2005-11-29 Seebeyond Technology Corporation Systems and methods of message queuing
US7003571B1 (en) 2000-01-31 2006-02-21 Telecommunication Systems Corporation Of Maryland System and method for re-directing requests from browsers for communication over non-IP based networks
US7162512B1 (en) 2000-02-28 2007-01-09 Microsoft Corporation Guaranteed exactly once delivery of messages
US6772216B1 (en) 2000-05-19 2004-08-03 Sun Microsystems, Inc. Interaction protocol for managing cross company processes among network-distributed applications
US6980518B1 (en) 2000-06-23 2005-12-27 International Business Machines Corporation Gossip-based reliable multicast message recovery system and method
US20020123966A1 (en) 2000-06-23 2002-09-05 Luke Chu System and method for administration of network financial transaction terminals
US6816458B1 (en) 2000-09-13 2004-11-09 Harris Corporation System and method prioritizing message packets for transmission
US20020178227A1 (en) * 2001-05-25 2002-11-28 International Business Machines Corporation Routing instant messages using configurable, pluggable delivery managers
US20030023737A1 (en) 2001-06-18 2003-01-30 Johnson Peter E. Message accumulation for communication processes using a common protocol
US6954792B2 (en) 2001-06-29 2005-10-11 Sun Microsystems, Inc. Pluggable authentication and access control for a messaging system
US6877107B2 (en) 2001-07-05 2005-04-05 Softwired Ag Method for ensuring operation during node failures and network partitions in a clustered message passing server
US7254616B1 (en) 2001-07-27 2007-08-07 Ciena Corporation Reliable communication mechanism with “at most once” delivery guarantee
US7631092B2 (en) 2001-10-05 2009-12-08 Bea Systems, Inc. System and method for providing a pluggable message store
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
US7007197B2 (en) 2002-05-31 2006-02-28 Microsoft Corporation Virtual logging system and method
US7162524B2 (en) 2002-06-21 2007-01-09 International Business Machines Corporation Gapless delivery and durable subscriptions in a content-based publish/subscribe system
US7720910B2 (en) 2002-07-26 2010-05-18 International Business Machines Corporation Interactive filtering electronic messages received from a publication/subscription service
US7203706B2 (en) 2002-08-01 2007-04-10 Oracle International Corporation Buffered message queue architecture for database management systems with memory optimizations and “zero copy” buffered message queue
US7181482B2 (en) 2002-08-01 2007-02-20 Oracle International Corporation Buffered message queue architecture for database management systems
AU2003301374A1 (en) 2002-10-17 2004-05-04 Tibco Software Inc. Method and system to communicate messages in a computer network
US7152180B2 (en) 2002-12-06 2006-12-19 Ntt Docomo, Inc. Configurable reliable messaging system
US7290051B2 (en) 2003-01-09 2007-10-30 Sun Microsystems, Inc. Method and apparatus for hardware implementation independent verification of network layers
US7676580B2 (en) * 2003-03-27 2010-03-09 Microsoft Corporation Message delivery with configurable assurances and features between two endpoints
US7287066B2 (en) * 2003-10-31 2007-10-23 Sap Aktiengesellschaft Publish-subscribe system having a reliability mechanism
US7634583B2 (en) 2003-12-18 2009-12-15 Microsoft Corporation Systems and methods that utilize persisted push/pull state to provide reliable message publishing
GB2412762B (en) 2004-04-02 2009-01-28 Symbian Software Ltd Inter process communication in a computing device
US7360111B2 (en) 2004-06-29 2008-04-15 Microsoft Corporation Lossless recovery for computer systems with remotely dependent data recovery
US7660873B2 (en) 2004-08-16 2010-02-09 General Electric Company Systems and methods for communicating messages
US7483943B2 (en) 2004-09-21 2009-01-27 Microsoft Corporation Reliable messaging using clocks with synchronized rates
US7668961B2 (en) 2004-09-23 2010-02-23 Microsoft Corporation Unilateral web services interaction contract
US8055711B2 (en) 2004-10-29 2011-11-08 Emc Corporation Non-blocking commit protocol systems and methods
US7525964B2 (en) 2004-11-03 2009-04-28 International Business Machines Corporation Mechanism for delivering messages to competing consumers in a point-to-point system
US7613830B2 (en) 2004-12-10 2009-11-03 Microsoft Corporation Reliably transferring queued application messages
GB0427798D0 (en) 2004-12-18 2005-01-19 Ibm Publish/subscribe messaging system
CA2594267C (en) 2005-01-06 2012-02-07 J. Barry Thompson End-to-end publish/subscribe middleware architecture
FR2881308B1 (fr) 2005-01-21 2007-03-23 Meiosys Soc Par Actions Simpli Procede d'acceleration de la transmission de donnees de journalisation en environnement multi ordinateurs et systeme utilisant ce procede
US20060248145A1 (en) * 2005-04-18 2006-11-02 Srimantee Karmakar System and method for providing various levels of reliable messaging between a client and a server
US7941808B2 (en) 2005-12-29 2011-05-10 Sap Ag Cursor component for messaging service
US8255455B2 (en) 2005-12-30 2012-08-28 Sap Ag Method and system for message oriented middleware virtual provider distribution
US7818417B2 (en) 2006-01-10 2010-10-19 International Business Machines Corporation Method for predicting performance of distributed stream processing systems
US20070245018A1 (en) 2006-04-12 2007-10-18 International Business Machines Corporation Dynamic access control in a content-based publish/subscribe system with delivery guarantees
US20080209007A1 (en) 2007-02-27 2008-08-28 Tekelec Methods, systems, and computer program products for accessing data associated with a plurality of similarly structured distributed databases
US7631214B2 (en) 2007-05-31 2009-12-08 International Business Machines Corporation Failover processing in multi-tier distributed data-handling systems
US8136122B2 (en) 2007-08-30 2012-03-13 Software Ag Systems and/or methods for providing feature-rich proprietary and standards-based triggers via a trigger subsystem
DE602008004570D1 (de) 2007-09-20 2011-02-24 Markport Ltd Nachrichtenübermittlung in mobilfunknetzen

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004295896A (ja) * 2003-03-27 2004-10-21 Microsoft Corp メッセージ交換システムにおける可用性および拡張性をアプリケーションに透過的に向上させる方法

Also Published As

Publication number Publication date
CN101861598A (zh) 2010-10-13
CN101861598B (zh) 2013-06-19
JP5473930B2 (ja) 2014-04-16
WO2009065049A1 (en) 2009-05-22
RU2480829C2 (ru) 2013-04-27
EP2223280A4 (en) 2012-08-08
US20090133038A1 (en) 2009-05-21
RU2010119446A (ru) 2011-11-20
EP2223280A1 (en) 2010-09-01
US8214847B2 (en) 2012-07-03

Similar Documents

Publication Publication Date Title
JP5473930B2 (ja) 設定可能なアシュアランスを用いた分散メッセージシステム
US8544075B2 (en) Extending a customer relationship management eventing framework to a cloud computing environment in a secure manner
Crane et al. What Are Comet and Reverse Ajax?
US9794305B2 (en) Consistent messaging with replication
RU2356089C2 (ru) Передача и прием сообщений посредством индивидуально конфигурируемых канала обмена данных и модели программирования
US8200764B2 (en) System and method for achieving highly scalable real-time collaboration applications using HTTP
US8135794B2 (en) Availability and scalability in a messaging system in a manner transparent to the application
Han et al. On the performance of distributed ledgers for internet of things
US20070192326A1 (en) Distributed session failover
US20080270411A1 (en) Distributed behavior controlled execution of modeled applications
NZ531382A (en) Message delivery with configurable assurances and features between two endpoints
JP2006216035A (ja) 通信バインディングオブジェクトを構築し、使用するシステムおよび方法
Roy RabbitMQ in depth
US7882236B2 (en) Communication channel model
US20100094933A1 (en) System and Method for Generating Exception Delay Messages when Messages are Delayed
US9021109B1 (en) Controlling requests through message headers
Li et al. Modeling message queueing services with reliability guarantee in cloud computing environment using colored petri nets
Pallickara et al. An analysis of reliable delivery specifications for Web Services
Sonam et al. MORID: MQTT oriented routing between IoT devices
Jayalath et al. A modular architecture for secure and reliable distributed communication
Papadopoulos et al. RAC: a remote application calling framework for coordination of mobile apps
Buckley et al. Web Services Reliability Patterns.
Sharma et al. Deploying Pulsar on Kubernetes
Romano et al. A lightweight and scalable e-Transaction protocol for three-tier systems with centralized back-end database
Kanere et al. Architecture of Real Time Messaging server using duplex web services

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110812

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130617

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130701

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130717

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131206

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140106

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140204

R150 Certificate of patent or registration of utility model

Ref document number: 5473930

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees