JP2004520640A - 非同期メッセージ交換システムで使用される方法および装置 - Google Patents

非同期メッセージ交換システムで使用される方法および装置 Download PDF

Info

Publication number
JP2004520640A
JP2004520640A JP2002520071A JP2002520071A JP2004520640A JP 2004520640 A JP2004520640 A JP 2004520640A JP 2002520071 A JP2002520071 A JP 2002520071A JP 2002520071 A JP2002520071 A JP 2002520071A JP 2004520640 A JP2004520640 A JP 2004520640A
Authority
JP
Japan
Prior art keywords
message
delivery
result
delivery result
state
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
JP2002520071A
Other languages
English (en)
Inventor
マイカルセン、トーマス
ルーベルー、イザベル
サットン、スタンレイ
タイ、ステファン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2004520640A publication Critical patent/JP2004520640A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】非同期メッセージ交換システムで使用される方法および装置を提供すること。
【解決手段】非同期メッセージ交換システム内で使用されるコンピュータ・ベースの方法に、(i)システム内で送信される少なくとも1つのメッセージに関する少なくとも1つのメッセージ送達結果状態を定義し、メッセージ送達結果状態をシステム内で送信されるメッセージに関連付けるステップと、(ii)システム内で、関連するメッセージ送達結果状態と共にメッセージを送信するステップと、(iii)メッセージの送信側が最終的な受信側へのメッセージの送達の結果に関して通知されることができるように、送信されたメッセージの送達を監視し、関連するメッセージ送達結果状態に関するメッセージの送達結果を評価するステップとが含まれる。
【選択図】図1

Description

【0001】
【発明の属する技術分野】
本発明は、非同期メッセージ交換を使用する分散ソフトウェア・システムおよび並行ソフトウェア・システムに関する。
【0002】
【従来の技術】
分散ソフトウェア・システムおよび並行ソフトウェア・システムでは、異なる形の電子通信が使用される。メッセージ交換が、そのような通信モデルの1つである。メッセージ交換を用いて、システム構成要素が、メッセージを送ることによって互いに通信する。メッセージによって、あるアプリケーション固有データが運ばれる。
【0003】
メッセージ交換は、システム構成要素がある時点でメッセージを送り、メッセージ送達およびメッセージの受信側と独立に計算を継続するという点で、本来非同期である。メッセージ送信側は、後の時点にメッセージに対する応答を受け取る場合がある。メッセージの送信側および受信側は、時間独立である、すなわち、これらは、ネットワーク上で同時に使用可能である必要がない。
【0004】
分散ソフトウェア・システムおよび並行ソフトウェア・システムの多くが、非同期メッセージ交換に依存し、このためにメッセージ・ミドルウェアを使用する。メッセージ・ミドルウェアは、ソフトウェア・システムの構成要素の間でのメッセージ交換動作をもたらす1つまたは複数のソフトウェア・プログラムを指す。メッセージ・ミドルウェアを用いると、メッセージは、通常は、ある形の宛先、たとえばメッセージ・キューに送られ、そこから、メッセージ・ミドルウェアの他のクライアント、たとえば最終メッセージ受信側が、そのメッセージを読み取ることができる。したがって、メッセージの送信側および受信側は、必ずしも互いの存在を意識しない。
【0005】
【発明が解決しようとする課題】
各メッセージ送達の失敗およびそれぞれの成功は、メッセージの送信側にとって重要であり、場合によってはクリティカルなことさえある。メッセージ送達失敗がそれによって判定されるアプリケーション固有の判断基準は、一般に、送信側によって、また、メッセージによって異なる。しかし、これらの判断基準を指定し、判断基準に従ってメッセージ送達を評価し、評価の結果に反応することは、行うことが困難であり、既存のメッセージ・ミドルウェアによって簡単にはサポートされない。
【0006】
既存のメッセージ・ミドルウェア、たとえばMQSeries(IBMCorporation社の商標)またはJava(R)Message Service JMS(Sun Microsystems,Inc.の商標)の実施形態は、メッセージ送達失敗の非常に限られたアイデア概念だけをサポートし、本来メッセージの送信側がメッセージ単位で定義することができても良い種々の失敗の概念を区別しない。メッセージの送信側は、メッセージの宛先を指定するだけであり、メッセージ送達が信頼性があると宣言することができる。メッセージ・ミドルウェアは、システム・クラッシュなどの失敗が存在する場合であっても、宛先へのメッセージの送達を保証する。既存のメッセージ・ミドルウェアは、メッセージ送達の失敗およびそれぞれの成功をそれに基づいて判定することができるアプリケーション固有の判断基準の定義をサポートしない。
【0007】
【課題を解決するための手段】
本発明は、好ましくはメッセージ単位で、メッセージ送達結果を定義し、処理する方法および装置を提供する。結果は、「成功」または「失敗」のいずれかであることが好ましい。
【0008】
本発明の一態様では、非同期メッセージ交換システムで使用されるコンピュータベースの方法であって、システム内で送信される少なくとも1つのメッセージに関する少なくとも1つのメッセージ送達結果状態を定義し、少なくとも1つのメッセージ送達結果状態をシステム内で送信されるメッセージに関連付けるステップと、関連する少なくとも1つのメッセージ送達結果状態と共にメッセージをシステム内で送信するステップと、メッセージの送信側がメッセージの送達結果に関して通知されることができるように、送信されたメッセージの送達を監視し、関連する少なくとも1つのメッセージ送達結果状態に関してメッセージの送達結果を評価するステップとを含む方法。
【0009】
本発明のもう1つの態様では、(i)メッセージ単位でメッセージ送達結果状態を指定するステップと、(ii)メッセージとメッセージ結果状態のオブジェクト表現を関連付けるステップと、(iii)これらの結果状態と共にメッセージを送出するステップと、(iv)結果状態に関してメッセージ送達の状況に関して照会するステップと、(v)メッセージについて指定された結果状態の修正または置換を可能にするステップと、(vi)評価結果通知を受け取るオブジェクトを指定するステップとを実行するためにメッセージの送信側によって使用されるアプリケーション・プログラミング・インターフェースが提供される。
【0010】
本発明のもう1つの態様では、(i)永続オブジェクトとしてメッセージ結果状態を表現し、(ii)メッセージ送達を観察し、(iii)メッセージ結果状態を評価し、(iv)結果状態に関するメッセージ送達の状況に関する照会に答え、(v)送信された各メッセージの評価結果に関してメッセージ送信側または送信側が指定するオブジェクトに通知する:動作の1つまたは複数を実行する、コンピュータベースの装置が提供される。この装置は、本明細書に記載の発明的教示を実施するように適合された既存のメッセージ・ミドルウェアを使用して実施することができる。
【0011】
添付図面と共に読まれるべき、本発明の例示的実施形態の詳細な説明を、これから示す。
【0012】
【発明の実施の形態】
本発明を、非同期メッセージ交換を使用する例示的ソフトウェア・システムに関して下で説明する。このシステムは、分散並行システムであることが好ましい。既知のように、分散ソフトウェア・システムは、システムの構成要素が、通信ネットワークによって結合された複数のコンピュータ・システムに常駐することができるシステムであり、並行ソフトウェア・システムは、複数の計算タスクを並行に、すなわち同時に処理することができるシステムである。しかし、本発明が、特定のソフトウェア・システム・アーキテクチャに制限されないことを理解されたい。そうではなく、本発明は、メッセージ送達結果を定義し、処理することが望ましい、すべてのソフトウェア・システム・アーキテクチャに、より一般的に適用可能である。下で説明する例示的実施形態では、「成功」および「失敗」が結果状態になると見なすが、本発明はこれに制限されない。
【0013】
前に述べたように、非同期メッセージ交換は、時間依存ソフトウェア処理の間のメッセージの交換を指す。通常、メッセージの送信側が、メッセージ・ミドルウェアを使用して、ミドルウェアによって管理されるある形の宛先、たとえばリモート・メッセージ・キューにメッセージを送る。メッセージの最終的な受信側は、宛先からメッセージを読み取るメッセージ・ミドルウェアの他のクライアントである。
【0014】
また、前に述べたように、各メッセージ送達の失敗およびそれぞれの成功は、メッセージの送信側にとって重要であり、場合によってはクリティカルである。メッセージ送達失敗がそれによって判定されるアプリケーション固有の判断基準は、一般に、送信側によって、また、メッセージによって異なる可能性がある。たとえば、メッセージm1がそれぞれ時間ウィンドウt1およびt2内に特定の最終受信側r1およびr2に到達する場合に限って、メッセージm1を「成功」とみなすことができる。また、もう1つのメッセージm2は、時間ウィンドウt3内にm2を受け取る異なる匿名の最終受信側が5つ未満である場合に、「失敗」とみなすことができる。
【0015】
しかし、前に述べたように、そのような判断基準を指定し、判断基準に従ってメッセージ送達を評価し、評価の結果に反応することは、行うことが困難であり、既存のメッセージ・ミドルウェアによって簡単にはサポートされない。
【0016】
既存のメッセージ・ミドルウェア・システムは、メッセージ送達失敗の非常に限られた概念だけをサポートするが、メッセージの送信側がメッセージ単位で定義することができる種々の失敗の概念を区別しない。メッセージの送信側は、メッセージの宛先、たとえばメッセージ・キューを指定するだけである。メッセージの最終的な受信側は、通常は指定されない。メッセージ・ミドルウェアは、中間宛先へのメッセージの信頼性のある送達を保証することができるが、最終受信側によるメッセージ受信の肯定応答は、アプリケーション側でコーディングされなければならず、ミドルウェアによって直接にはサポートされない。
【0017】
本発明は、メッセージ送達失敗の定義および管理のためのより洗練されたレベルを導入する。本明細書で教示されるように、メッセージ送達失敗の種々の概念を、簡単にプログラムすることができ、メッセージ送達失敗を管理するという重荷が、送信側からミドルウェアにシフトされる。1特定の応用例が、処置が異なる失敗状態を有することのできる、個々の処置の結果に関して、送信側が、処置のグループの全体的な結果すなわち送られたメッセージを定義できることである。そのような特別なケースが、トランザクションの成功がメッセージ送達の成功に依存するトランザクションである。
【0018】
下で詳細に説明するように、本発明の好ましい態様では、メッセージの送信側によって、(i)メッセージ単位でメッセージ送達失敗状態を指定し、(ii)メッセージとメッセージ失敗状態(のオブジェクト表現)を関連付け、(iii)これらの失敗状態と共にメッセージを送出し、(iv)失敗状態に関してメッセージ送達の状況に関して照会し、(v)メッセージについて指定された失敗状態の修正または置換を可能にし、(vi)失敗評価結果通知を受け取るオブジェクトを指定する:のに使用されるアプリケーション・プログラミング・インターフェースが提供される。
【0019】
さらに、やはり下で詳細に説明するように、本発明のもう1つの好ましい態様では、(i)永続オブジェクトとしてメッセージ失敗状態を表現し、(ii)メッセージ送達を観察し、(iii)メッセージ失敗状態を評価し、(iv)失敗状態に関するメッセージ送達の状況に関する照会に答え、(v)送信された各メッセージの評価結果に関してメッセージ送信側に通知する:コンピュータベースの装置が提供される。この装置は、本明細書に記載の発明的教示を実施するように適合された既存のメッセージ・ミドルウェアを使用して実施することができる。
【0020】
メッセージ送達失敗状態を表す永続オブジェクトでセットされる値には、たとえば、必須または任意選択の受信側、宛先(メッセージ・キューなど)および最終的な受信側(宛先からメッセージを読み取る他のアプリケーション・オブジェクトなど)の両方のリスト、特定のまたは不特定の最終受信側によるメッセージ読取のタイムアウトおよび必要な時間ウィンドウの指定、メッセージを受信しなければならない最終受信側の数または範囲の基数指定、および送信側から使用可能であるかメッセージ送達システムによって公開される他の値が含まれる。
【0021】
メッセージ失敗状態の表現は、さまざまな形で互いに関係することができる。これには、たとえば、一般化−特殊化階層およびツリー、またはリンク・リストの形の順序付けが含まれる。
【0022】
本発明の好ましい実施形態を、下で例示的に詳細に説明する。
【0023】
まず図1を参照すると、ブロック図に、本発明の実施形態によるメッセージ交換を使用するシステムが示されている。このシステムには、メッセージ送信側102、たとえばメッセージを送るメッセージ・ミドルウェアのクライアントが含まれる。メッセージ送信側102は、3つのモジュールを使用する。失敗定義モジュール104は、メッセージ送達失敗状態を定義するのに使用される。メッセージ送達モジュール106は、失敗状態と共にメッセージを送るのに使用される。失敗評価モジュール108は、失敗状態に関してメッセージ送達の状況に関して照会するのに使用される。
【0024】
失敗定義モジュール104は、失敗状態の表現を作成し、管理する。これらの表現は、上で説明したものなどの値を担持する永続オブジェクトである。
【0025】
メッセージ送達モジュール106は、関連する失敗状態と共にメッセージを送り、宛先および最終受信側へのメッセージの送達を観察する。このモジュールは、MQSeriesまたはJMSの実装など、既存のメッセージ・ミドルウェア110を使用する。
【0026】
失敗評価モジュール108は、メッセージに関連する失敗状態に従って、メッセージ送達モジュール106によって観察される実際のメッセージ送達に基づいてメッセージ送達を成功または失敗として評価する。評価の状況は、メッセージを送信した後ならばいつでも照会することができ、失敗評価モジュール108は、メッセージ送信側または送信側が指定したオブジェクトに、評価の結果に関して通知する。アプリケーション・プログラミング・インターフェース(API)の一部としてのインターフェースが、この目的のためにシステムによって定義される。このインターフェースは、アプリケーションの一部として、メッセージ送信側(または指定されたオブジェクト)によって実装され、提供される。
【0027】
用語「インターフェース」が、本明細書で、ソフトウェア工学の技術用語として使用され、インターフェースによって、あるサービス・プロバイダ(たとえばオブジェクト)が提供する動作(機能)の組がグループ化されることを諒解されたい。したがって、インターフェースには、動作の定義が含まれ、インターフェースは、ソフトウェア構成要素によって実装される。ソフトウェア構成要素は、アプリケーションの構成要素または、たとえば図1に示されたものなどのメッセージ送達システムの構成要素のいずれかとすることができる。
【0028】
既存のメッセージ・ミドルウェア110は、メッセージ・キューまたはJMS Topicオブジェクトなどの宛先112への(信頼性のある)メッセージ送達に使用される。最終的なメッセージ受信側114へのメッセージ送達を観察するために、最終的な受信側が、宛先112からメッセージを読み取る前に、メッセージ送達モジュール106に登録し、観察のためにメッセージ送達モジュール106が使用することのできるインターフェースを提供することができる。このインターフェースは、APIの一部としてシステムによって定義され、システムとの通信のためにアプリケーション(この例では最終的な受信側)によって実装される。代替案では、最終的な受信側114が、宛先からメッセージを読み取るための特定のインターフェースおよびオブジェクトを使用し、その結果、メッセージ送達モジュール106が、最終的な受信側が宛先からメッセージを読む時に、必ずそのオブジェクトによって自動的に通知されるようにすることができる。
【0029】
ソフトウェア・システムが分散される時に、失敗定義モジュール104、メッセージ送達モジュール106、失敗評価モジュール108、およびメッセージ・ミドルウェア110が、1つまたは複数のコンピュータ・システムに常駐することができるが、メッセージ送信側102、宛先112、および最終的なメッセージ受信側114が、それら自体の別々のコンピュータ・システムに常駐することを諒解されたい。コンピュータ・システムのそれぞれを、適当な通信ネットワークを介して結合することができる。
【0030】
図2を参照すると、流れ図に、本発明の実施形態によるメッセージ交換処理が示されている。具体的に言うと、図2は、別々の図に詳細に示されたステップ、すなわち、メッセージ失敗定義および送られたメッセージ(図4、この図4は図3を参照する)、メッセージ送達観察(図5)、メッセージ失敗評価(図6)、およびメッセージ失敗状態修正(図7)に関係する。
【0031】
処理200は、ステップ202で、障害状態と共にメッセージを送信することによって開始される(図4に記載されているように)。メッセージが送信された後に、ステップ204でメッセージの送達を観察し(図5)、それと並列に、ステップ206で失敗状態を評価する(図6)。任意選択として、ステップ208で、メッセージの失敗状態を修正することができる(図7)。送達観察および失敗評価は、メッセージが送信された直後に平行して行うことができる。失敗状態は、メッセージが送信された後のいつでも修正することができ、失敗評価処理の結果に影響する。
【0032】
図3を参照すると、本発明の実施形態によるメッセージ失敗定義を示す流れ図が示されている。処理300は、ステップ302で、特殊な(アプリケーション固有の)メッセージ失敗状態が望まれるかどうかを判定することによって開始される。特殊な失敗状態が望まれない場合には、ステップ304で、標準の事前定義の失敗モデルの表現を作成するか、別のオブジェクトまたは永続ストアから取得し、失敗定義の処理が終了する。特殊な失敗状態が望まれる場合には、ステップ306で、メッセージ送信側が失敗定義モジュールを使用して失敗状態を定義する。状態が定義された後に、ステップ308で特殊な失敗モデルの表現を作成し、処理が終了する。失敗状態の表現は、永続オブジェクトである。
【0033】
図4を参照すると、流れ図に、本発明の実施形態による失敗状態を伴うメッセージ送信の処理が示されている。
【0034】
処理400は、ステップ402でメッセージ失敗を定義することによって(図3に関して上で説明したように)、またはステップ404で送信されるメッセージを作成することによって、開始される。この2つのステップの順序は、どれでもよいが、ステップ406でのメッセージを失敗表現に関連付ける次の処理ステップのために、この両方を完了する必要がある。その後、失敗表現に関連付けられたメッセージを、ステップ408でメッセージ送達モジュールを使用して送信することができる。
【0035】
図5を参照すると、流れ図に、本発明の実施形態によるメッセージ送達観察が示されている。
【0036】
処理500は、ステップ502で、メッセージ送達モジュール(またはメッセージ送達モジュールによって指定されるエンティティ)が、最終的なメッセージ受信側によるメッセージ受信の肯定応答の受信を待っている時に開始される。そのような肯定応答は、最終的な受信側によってメッセージ送達モジュールに直接に、または最終的な受信側が宛先からの読取に使用する特殊なインターフェースおよびオブジェクトの使用を介して間接的に、通信することができる。直接通信の場合には、メッセージの読取およびメッセージ送達モジュールへの受信の肯定応答の送信が、2つの別々の別個の処置になる。間接的な場合には、肯定応答の送信が、受信側がメッセージを読み取る時にシステムによって暗黙のうちに自動的に実行される。受信側は、この場合には、システムによって提供される特定の読取動作を使用する。
【0037】
1つの肯定応答を受信した時に、ステップ504で、最終的な受信側の識別が、判定され、メッセージ送達ログに記録される。メッセージ送達ログは、送信されたメッセージの最終的なメッセージ受信側の永続的記録である。その後、この処理は、ステップ506で、観察を継続するか否かを判定することによって継続される。この判断では、外部および内部のタイムアウトを考慮に入れる。内部タイムアウトは、システム内で指定される、メッセージに関連するタイムアウトである。外部タイムアウトは、システムの外部で(場合によってはアプリケーションによって)管理され、単一のメッセージに関連しないイベントである。外部タイムアウトは、処理を終了させる外部イベントである。観察を継続する場合には、処理は、肯定応答を受信するステップすなわちステップ502から繰り返される。観察を停止する場合には、処理が終了する。
【0038】
図6を参照すると、本発明の実施形態によるメッセージ失敗評価の処理を示す流れ図が示されている。
【0039】
処理600は、ステップ602で、送信されたメッセージmの評価されない失敗状態のすべてが、失敗表現(図3に関して上で説明した)およびメッセージ送達ログ(図5に関して上で説明した)を使用して評価される時に開始される。たとえば、タイムアウト発生、または最終的なメッセージ受信側によって読み取られたメッセージの肯定応答がメッセージ送達ログに入れられるなど、評価を判定する判断基準が使用可能になれば、状態を真または偽と評価することができる。そのようなイベントならびに他のイベントによって、状態の評価にトリガをかけることができる。
【0040】
1つの条件が評価されるや否や、処理が継続して、ステップ604で特定の失敗状態が真と評価されるかどうかを検査する。真と評価される失敗状態は、メッセージ送達が失敗したことを暗示する。そうである場合には、ステップ606で、メッセージ送達失敗の結果通知が、失敗評価モジュールによってメッセージ送信側、または結果通知の受信についてメッセージ送信側によって指定されたオブジェクトに送られる。
【0041】
メッセージ送達失敗の結果通知を送信した後に、または、条件が偽と評価された場合に、処理は、ステップ608で、評価を継続するか、評価を停止するかを決定することによって継続される。この決定では、上で説明したように外部タイムアウトおよび内部タイムアウトを考慮に入れる。評価を継続する場合には、処理は、メッセージmのすべての評価されていない失敗条件を評価するステップすなわち、ステップ602から繰り返される。
【0042】
決定が、失敗評価を停止することである場合には、ステップ610で、すべての失敗状態を評価し、かつ、すべての条件が偽と評価されたかどうかを判定する。そうである場合には、ステップ612で、メッセージ送達成功の結果通知をメッセージ送信側または指定された通知オブジェクトに送信する。そうでない場合、およびメッセージ送達成功の通知を送信した後に、処理が終了する。
【0043】
失敗評価モジュール108(図1)は、たとえば、どの状態がこれまでに評価されたか、または最終的な受信側から受信された受信の肯定応答の数など、評価の状況に関する照会を、メッセージ送信側が行うのにいつでも使用することができるインターフェースを提供する。
【0044】
図7を参照すると、流れ図に、本発明の実施形態による送信メッセージの失敗状態の修正または置換もしくはその両方の処理が示されている。
【0045】
処理700は、ステップ702で、失敗状態修正すなわち、それぞれの置換が望まれるかどうかを判定することによって開始される。この決定は、メッセージ送信側が行うことができる。状態を修正することが望まれる場合には、ステップ704で、図3に関して上で説明した処理に従って失敗状態を定義し、ステップ706で、結果の修正された失敗表現または新規の失敗表現を、送信されたメッセージに関連付ける。処理は、失敗状態修正の最初の判断状態すなわちステップ702に戻ることによって継続される。修正なしに関する決定が行われる場合には、処理が終了する。
【0046】
上の詳細な説明では、本発明を実践する好ましい方法を説明した。当業者は、本明細書に記載の教示を与えられれば、複数の変形形態を実現するであろう。
【0047】
たとえば、失敗定義、失敗評価、およびメッセージ送達という3つのモジュール(図1)を、単一のモジュールとして実施することができ、さらに多数の別々のモジュールに分割することができる(たとえば、別のメッセージ送達観察モジュール)。
【0048】
メッセージ失敗状態に加えてまたはその代わりに、メッセージ成功状態を指定することができる。メッセージ成功状態は、失敗に関して定義する、すなわち、対応する失敗状態にマッピングすることができ、その結果、上で説明した本発明を実施する好ましい形が、すべての態様での成功状態に適用可能になる。
【0049】
もう1つの変形形態が、メッセージ送信の前のメッセージ失敗定義およびメッセージ作成の可変順序、最終的な受信側によって読み取られるメッセージを観察する異なる形、およびメッセージに関する評価結果に関してメッセージ送信側に通知する異なる形を含めることができる。
【0050】
図8を参照すると、図に示され本明細書で詳細に説明されたメッセージ交換処理を使用するシステムのさまざまな機能構成要素/モジュールの1つまたは複数を実施するのに適するコンピュータ・システムの一般化されたハードウェア・アーキテクチャを示すブロック図が示されている。たとえば図1に関して図示され説明されたものなどのメッセージ交換システムの個々の構成要素を、1つのそのようなコンピュータ・システムで、または複数の別々のそのようなコンピュータ・システムで実施することができることを理解されたい。
【0051】
図からわかるように、コンピュータ・システムは、プロセッサ800、メモリ810、および入出力装置820に従って実施することができる。本明細書で使用される用語「プロセッサ」が、たとえばCPU(中央処理装置)または他の処理回路もしくはその両方を含むものなど、すべての処理装置を含むことが意図されていることを了解されたい。本明細書で使用される用語「メモリ」は、たとえばRAM、ROM、固定メモリ・デバイス(たとえばハード・ドライブ)、取外し可能メモリ・デバイス(たとえばディスケット)、フラッシュ・メモリなど、プロセッサまたはCPUに関連するメモリを含むことが意図されている。さらに本明細書で使用される用語「入出力装置」は、たとえば、処理装置にデータを入力するための、たとえばキーボードなどの1つまたは複数の入力装置、または処理装置に関連する結果を提示するための、たとえばCRTディスプレイまたはプリンタなどの1つまたは複数の出力装置、あるいはその両方を含むことが意図されている。用語「プロセッサ」が、複数の処理装置を指す場合があることと、処理装置に関連するさまざまな要素を、他の処理装置が共用できることを理解されたい。
【0052】
したがって、本明細書に記載の本発明の方法を実行する命令またはコードを含むソフトウェア構成要素を、1つまたは複数の関連するメモリ・デバイス(たとえばROM、固定メモリ、または取外し可能メモリ)に保管することができ、使用の準備ができた時に、一部または全体を(たとえばRAMに)ロードし、CPUによって実行することができる。
【0053】
添付図面に関して本発明の例示的実施形態を説明してきたが、本発明が、これらの正確な実施形態に制限されず、当業者が、さまざまな他の変更および修正を行うことができることを理解されたい。
【図面の簡単な説明】
【図1】
本発明の実施形態によるメッセージ交換を使用するシステムのブロック図である。
【図2】
図4、図5、図6、および図7の流れ図に関係する、本発明の実施形態によるメッセージ交換処理の流れ図である。
【図3】
本発明の実施形態によるメッセージ失敗定義処理の流れ図である。
【図4】
本発明の実施形態によるメッセージ送信処理の流れ図である。
【図5】
本発明の実施形態によるメッセージ送達観察処理の流れ図である。
【図6】
本発明の実施形態によるメッセージ失敗評価処理の流れ図である。
【図7】
本発明の実施形態によるメッセージ失敗状態修正処理の流れ図である。
【図8】
本発明によるメッセージ交換システムを実施するのに適するコンピュータ・システムの一般化されたハードウェア・アーキテクチャを示すブロック図である。

Claims (35)

  1. 非同期メッセージ交換システムで使用されるコンピュータベースの方法であって、
    システム内で送信される少なくとも1つのメッセージに関する少なくとも1つのメッセージ送達結果状態を定義し、少なくとも1つのメッセージ送達結果状態をシステム内で送信されるメッセージに関連付けるステップと、
    関連する少なくとも1つのメッセージ送達結果状態と共にメッセージをシステム内で送信するステップと、
    メッセージの送信側がメッセージの送達結果に関して通知されることができるように、送信されたメッセージの送達を監視し、関連する少なくとも1つのメッセージ送達結果状態に関してメッセージの送達結果を評価するステップと
    を含む方法。
  2. 送達結果が、成功および失敗の1つである、請求項1に記載の方法。
  3. 少なくとも1つのメッセージ送達結果状態が、特定のメッセージと独立に定義される、請求項2に記載の方法。
  4. メッセージ送達結果状態が、永続オブジェクトとして表現される、請求項1ないし3のいずれか一項に記載の方法。
  5. 特定のメッセージ送達結果状態表現が、関連するオブジェクトの組である、請求項4に記載の方法。
  6. 送信されるメッセージが、1つまたは複数の永続オブジェクトの形のメッセージ送達結果状態の表現に関連付けられる、請求項1ないし3のいずれか一項に記載の方法。
  7. メッセージ送達結果状態の特定の表現が、異なるメッセージの組と関連付けられる、請求項6に記載の方法。
  8. 送達を監視するステップが、1つまたは複数の宛先および1つまたは複数の最終的なメッセージ受信側の少なくとも1つに従って実行される、請求項1ないし7のいずれか一項に記載の方法。
  9. 送達を監視するステップが、メッセージ受信を永続メッセージ送達ログに記録するステップを含む、請求項1ないし8のいずれか一項に記載の方法。
  10. 送達結果が、結果表現オブジェクトと、メッセージ受信が記録されるメッセージ送達ログとを使用することによって評価される、請求項1ないし9のいずれか一項に記載の方法。
  11. 送達結果評価の状況が、メッセージ送信側によって照会される、請求項1ないし10のいずれか一項に記載の方法。
  12. 送達結果が、メッセージ送信側に送信される、請求項1ないし11のいずれか一項に記載の方法。
  13. 送達結果が、メッセージ送信側が結果通知を受け取るために指定したオブジェクトに送信される、請求項1ないし11のいずれか一項に記載の方法。
  14. メッセージ送達監視および送達結果評価の少なくとも1つが、タイムアウトをそれに関連付けられる、請求項1ないし13のいずれか一項に記載の方法。
  15. メッセージが送出された後に、メッセージに関連する1つまたは複数のメッセージ送達結果状態を修正するステップをさらに含む、請求項1ないし14のいずれか一項に記載の方法。
  16. メッセージが送出された後に、メッセージに関連する1つまたは複数のメッセージ送達結果状態を置換するステップをさらに含む、請求項1ないし14のいずれか一項に記載の方法。
  17. 非同期メッセージ交換システムで使用される装置であって、
    (i)システム内で送信される少なくとも1つのメッセージに関する少なくとも1つのメッセージ送達結果状態を定義し、メッセージ送達結果状態をシステム内で送信されるメッセージに関連付け、(ii)関連するメッセージ送達結果状態と共にメッセージをシステム内で送信し、(iii)メッセージの送信側がメッセージの送達結果に関して通知されることができるように、送信されたメッセージの送達を監視し、関連するメッセージ送達結果状態に関してメッセージの送達結果を評価する:ように機能する1つまたは複数のプロセッサ
    を含む装置。
  18. メッセージ送達結果が、成功および失敗の1つである、請求項17に記載の装置。
  19. 少なくとも1つのメッセージ送達結果が、特定のメッセージと独立に定義される、請求項17または18に記載の装置。
  20. メッセージ送達結果状態が、永続オブジェクトとして表現される、請求項17ないし19のいずれか一項に記載の装置。
  21. 特定のメッセージ送達結果状態表現が、関連するオブジェクトの組である、請求項20に記載の装置。
  22. 送信されるメッセージが、1つまたは複数の永続オブジェクトの形のメッセージ結果状態の表現に関連付けられる、請求項17ないし19のいずれか一項に記載の装置。
  23. メッセージ送達結果状態の特定の表現が、異なるメッセージの組と関連付けられる、請求項22に記載の装置。
  24. メッセージ送達監視動作が、1つまたは複数の宛先および1つまたは複数の最終的なメッセージ受信側の少なくとも1つに従って実行される、請求項17ないし23のいずれか一項に記載の装置。
  25. メッセージ送達監視動作が、メッセージ受信を永続メッセージ送達ログに記録することを含む、請求項17ないし24のいずれか一項に記載の装置。
  26. 送達結果が、結果表現オブジェクトと、メッセージ受信が記録されるメッセージ送達ログとを使用することによって評価される、請求項17ないし25のいずれか一項に記載の装置。
  27. 送達結果評価の状況が、メッセージ送信側によって照会される、請求項17ないし26のいずれか一項に記載の装置。
  28. 送達結果が、メッセージ送信側に送信される、請求項17ないし27のいずれか一項に記載の装置。
  29. 送達結果が、メッセージ送信側が結果通知を受け取るために指定したオブジェクトに送信される、請求項17ないし27のいずれか一項に記載の装置。
  30. メッセージ送達結果監視および送達結果評価の少なくとも1つが、タイムアウトをそれに関連付けられる、請求項17ないし29のいずれか一項に記載の装置。
  31. 1つまたは複数のプロセッサが、さらに、メッセージが送出された後に、メッセージに関連する1つまたは複数のメッセージ送達結果状態を修正するように機能する、請求項17ないし30のいずれか一項に記載の装置。
  32. 1つまたは複数のプロセッサが、さらに、メッセージが送出された後に、メッセージに関連する1つまたは複数のメッセージ送達結果状態を置換するように機能する、請求項17ないし30のいずれか一項に記載の装置。
  33. データ処理システムで実行される時に、前記システムに請求項1ないし16のいずれか一項に記載の方法を実行させる命令を含むコンピュータ・プログラム。
  34. 非同期メッセージ交換システムに関連するアプリケーション・プログラミング・インターフェースであって、実行される時に、
    メッセージ単位でメッセージ送達結果状態を指定するステップと、
    メッセージとメッセージ結果状態を関連付けるステップと、
    関連付けられた結果状態と共にメッセージを送信するステップと、
    結果状態に関してメッセージ送達の状況に関して照会するステップと、
    メッセージについて指定された結果状態の修正および置換の少なくとも1つを可能にするステップと、
    評価結果通知を受け取るオブジェクトを指定するステップと
    の実施を可能にするソフトウェア・コードを含む、アプリケーション・プログラミング・インターフェース。
  35. 非同期メッセージ交換システム内で使用される装置であって、
    (i)永続オブジェクトとしてメッセージ結果状態を表現し、(ii)メッセージ送達を観察し、(iii)メッセージ結果状態を評価し、(iv)結果状態に関するメッセージ送達の状況に関する照会に答え、(v)送信された各メッセージの評価結果に関してメッセージ送信側または送信側が指定するオブジェクトに通知する:ように機能する1つまたは複数のプロセッサ
    を含む装置。
JP2002520071A 2000-08-15 2001-07-26 非同期メッセージ交換システムで使用される方法および装置 Pending JP2004520640A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/638,762 US6832243B1 (en) 2000-08-15 2000-08-15 Methods and apparatus for defining, observing and evaluating message delivery outcome on a per-message basis
PCT/GB2001/003358 WO2002015008A2 (en) 2000-08-15 2001-07-26 Methods and apparatus for asynchronous messaging

Publications (1)

Publication Number Publication Date
JP2004520640A true JP2004520640A (ja) 2004-07-08

Family

ID=24561314

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002520071A Pending JP2004520640A (ja) 2000-08-15 2001-07-26 非同期メッセージ交換システムで使用される方法および装置

Country Status (8)

Country Link
US (1) US6832243B1 (ja)
EP (1) EP1405182B1 (ja)
JP (1) JP2004520640A (ja)
KR (1) KR100537869B1 (ja)
CN (1) CN1277194C (ja)
AU (1) AU2001272674A1 (ja)
DE (1) DE60125988T2 (ja)
WO (1) WO2002015008A2 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030037102A1 (en) * 2001-08-14 2003-02-20 Philippe Eckert Message broker
US7319858B2 (en) 2001-11-16 2008-01-15 Cingular Wireless Ii, Llc System and method for querying message information
US7793334B2 (en) 2001-11-16 2010-09-07 At&T Mobility Ii Llc System and method for password protecting a distribution list
US7657253B2 (en) * 2001-11-16 2010-02-02 At&T Mobility Ii Llc System and method for providing message notification
US7454195B2 (en) 2001-11-16 2008-11-18 At&T Mobility Ii, Llc System for the centralized storage of wireless customer information
US7317697B2 (en) 2001-11-16 2008-01-08 At&T Mobility Ii Llc System for handling file attachments
US8660537B2 (en) * 2001-11-16 2014-02-25 At&T Mobility Ii Llc System for the storage and retrieval of messages
US7401148B2 (en) 2001-11-16 2008-07-15 At&T Mobility Ii Llc System for customer access to messaging and configuration data
US7152180B2 (en) * 2002-12-06 2006-12-19 Ntt Docomo, Inc. Configurable reliable messaging system
US7277529B1 (en) 2003-02-27 2007-10-02 Cingular Wireless Ii, Llc System and method for voice mail service in an environment having multiple voice mail technology platforms
US7248857B1 (en) 2004-02-27 2007-07-24 Cingular Wireless Ii, Llc System and method for enhanced message notification
US7590701B2 (en) * 2003-07-11 2009-09-15 Salesforce.Com, Inc. Apparatus and method for generating alert messages in a message exchange network
US20070204275A1 (en) * 2005-08-29 2007-08-30 Rhysome, Inc. Method and system for reliable message delivery
US20100250684A1 (en) * 2009-03-30 2010-09-30 International Business Machines Corporation High availability method and apparatus for shared resources
US8701128B2 (en) 2011-02-14 2014-04-15 General Electric Company Method, system and computer program product for a client application programming interface (API) in a service oriented architecture
CN104145260B (zh) * 2012-03-26 2016-08-10 华为技术有限公司 一种分布式作业系统的业务处理方法、执行单元和系统
US20130298199A1 (en) * 2012-05-02 2013-11-07 Elwha Llc Control of Transmission to a Target Device with a Cloud-Based Architecture
US9148331B2 (en) 2012-05-02 2015-09-29 Elwha Llc Control of transmission to a target device with a cloud-based architecture
CN103019866B (zh) * 2012-10-24 2017-02-08 北京京东世纪贸易有限公司 基于消息队列的分布式方法和系统
CN103428273B (zh) * 2013-07-18 2016-12-28 北京百度网讯科技有限公司 在异步式交互中进行响应询问的方法与装置
CN104407917B (zh) * 2014-11-13 2018-10-16 中国建设银行股份有限公司 一种基于jms的交易处理方法及装置
US11863580B2 (en) 2019-05-31 2024-01-02 Varmour Networks, Inc. Modeling application dependencies to identify operational risk
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
US11876817B2 (en) 2020-12-23 2024-01-16 Varmour Networks, Inc. Modeling queue-based message-oriented middleware relationships in a security system
US11818152B2 (en) * 2020-12-23 2023-11-14 Varmour Networks, Inc. Modeling topic-based message-oriented middleware within a security system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0469199B1 (en) 1990-07-31 1998-05-27 Hewlett-Packard Company Object based system
US5379426A (en) 1991-01-25 1995-01-03 Sun Microsystems, Inc. Method and apparatus for object oriented interprocess message switching
IL111154A0 (en) 1993-10-21 1994-12-29 Martino Ii John A Systems and methods for electronic messaging
US5966663A (en) * 1997-01-14 1999-10-12 Ericsson Messaging Systems Inc. Data communications protocol for facilitating communications between a message entry device and a messaging center
GB9703996D0 (en) * 1997-02-26 1997-04-16 British Telecomm Message system
US6163802A (en) * 1997-04-04 2000-12-19 International Business Machines Corporation Message tracking system
JPH1115755A (ja) * 1997-06-20 1999-01-22 Matsushita Graphic Commun Syst Inc ファクシミリ型電子メール装置
US6529932B1 (en) * 1998-04-01 2003-03-04 Microsoft Corporation Method and system for distributed transaction processing with asynchronous message delivery
US6463462B1 (en) * 1999-02-02 2002-10-08 Dialogic Communications Corporation Automated system and method for delivery of messages and processing of message responses
US6584466B1 (en) * 1999-04-07 2003-06-24 Critical Path, Inc. Internet document management system and methods

Also Published As

Publication number Publication date
WO2002015008A3 (en) 2003-12-31
WO2002015008A2 (en) 2002-02-21
US6832243B1 (en) 2004-12-14
EP1405182A2 (en) 2004-04-07
AU2001272674A1 (en) 2002-02-25
KR20030020462A (ko) 2003-03-08
KR100537869B1 (ko) 2005-12-21
EP1405182B1 (en) 2007-01-10
CN1545655A (zh) 2004-11-10
DE60125988D1 (de) 2007-02-22
DE60125988T2 (de) 2007-10-18
CN1277194C (zh) 2006-09-27

Similar Documents

Publication Publication Date Title
JP2004520640A (ja) 非同期メッセージ交換システムで使用される方法および装置
US9553836B2 (en) Systems and methods for processing emails
US20030050988A1 (en) E-mail system providing filtering methodology on a per-domain basis
US20010042122A1 (en) System and method for monitoring server performance using a server
US20070162560A1 (en) System and method for asynchronous request response
RU2004109133A (ru) Улучшение доступности и масштабируемости в системе передачи сообщений способом, прозрачным для приложения
US8726079B2 (en) Handling of messages in a message system
US7590701B2 (en) Apparatus and method for generating alert messages in a message exchange network
US8230019B2 (en) Alerting electronic mail users of undeliverable recipients
CN110413425B (zh) 第三方消息回调方法、装置、服务器和存储介质
US9015731B2 (en) Event handling system and method
JP2007526674A (ja) トランスポートにとらわれないプルモードメッセージングサービス
AU2010253923C1 (en) Delivering messages using user-defined agents
US8370443B2 (en) Reliable messaging using publish subscribe mechanism
EP1952318B1 (en) Independent message stores and message transport agents
US20080140833A1 (en) Methods and computer program products that manage communication interfaces between order handling programs
CN113961372A (zh) 一种mq多实例消息发送方法和装置
CN108880994B (zh) 一种重发邮件的方法和装置
US7970831B2 (en) Intelligent email services
CN111078433A (zh) 商户通知发送方法、装置及电子设备
Dunphy et al. BizTalk Design Patterns and Practices
JP2002358267A (ja) 資源配布方法と、資源配布処理用プログラム及びそのプログラムの記録媒体

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060508

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060718

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061016

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20061121

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20070202