JP2006216034A - 相関メッセージを、ネットワークを介して通信するための待機セッション - Google Patents

相関メッセージを、ネットワークを介して通信するための待機セッション Download PDF

Info

Publication number
JP2006216034A
JP2006216034A JP2006015456A JP2006015456A JP2006216034A JP 2006216034 A JP2006216034 A JP 2006216034A JP 2006015456 A JP2006015456 A JP 2006015456A JP 2006015456 A JP2006015456 A JP 2006015456A JP 2006216034 A JP2006216034 A JP 2006216034A
Authority
JP
Japan
Prior art keywords
message
session
group
messages
computer system
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
JP2006015456A
Other languages
English (en)
Other versions
JP4769585B2 (ja
Inventor
Craig A Critchley
エイ.クリッチュリー クレイグ
Krishnan Srinivasan
スリニヴァサン クリシュナン
Hill Richard
ヒル リチャード
Richard Dievendorff
ディーヴェンドルフ リチャード
Uday Hedge
ヘッジ ウダイ
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 JP2006216034A publication Critical patent/JP2006216034A/ja
Application granted granted Critical
Publication of JP4769585B2 publication Critical patent/JP4769585B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】メッセージがネットワークを介してあるアプリケーションから別のアプリケーションに個別のグループ分けまたは通信セッションで送達されることを可能にする。
【解決手段】送信側コンピュータシステムは、受信側コンピュータシステムのキューに関連メッセージのグループを送信する。受信側コンピュータシステムは、そのグループのメッセージが関連していることを識別し、セッション指向通信チャネルを開始する。受信側コンピュータは、適切なアプリケーションにそのメッセージグループを渡し、第1のメッセージグループに関連していない新しいメッセージグループのための新しい異なるセッション指向通信チャネルを開く。受信された各メッセージの順序識別子が、グループ内のメッセージが特定のアプリケーションによって、どんな順序で処理されるかについて受信コンピュータシステムに指示する。
【選択図】図1

Description

本発明は、相関のあるメッセージを、ネットワークを介してあるアプリケーションから別のアプリケーションに安全でリソース効率のよいやり方で送信するためのシステム、方法およびコンピュータプログラム製品に関する。
コンピュータ化されたシステムの普及が進むにつれて、ローカルエリアネットワークなどの小規模なネットワーク、ならびにインターネットなどの大規模のまたは世界的規模のネットワーク内でコンピュータシステムを相互接続する必要性も高まってきた。一般にコンピュータシステムおよび関連装置は、たとえば単純に個人的な電子メールを交換するためであろうが、商品を販売するためであろうが、様々な理由のために所与のネットワークに接続され、ファイルの共有などのためにアカウント情報を提供する。しかし、コンピュータシステムが個人的な使用のためにますます洗練されるにつれて、ネットワーク上でコンピュータシステムを相互接続することに付随する課題も増加してきたことが理解されよう。
一般にコンピューティングシステムは、アプリケーションプログラムでメッセージを構成し、次いでメッセージがその宛先に適切に届くように1つまたは複数のやり方でメッセージをパッケージ化することによって、ネットワーク上の別のコンピューティングシステムにメッセージを通信する。具体的には、送信側コンピュータシステム上の1つまたは複数のコンポーネントまたはモジュールはアドレスまたはルーティング情報をメッセージに追加することがあり、別のコンポーネントまたはモジュールはメッセージが転送中に読み出され得ないようにそれを暗号化し得る。次いで、受信側のコンピュータシステムは、メッセージを取り、適宜データをアンパックし、データを処理する。したがって、送信側と受信側コンピュータ上の1つまたは複数のアプリケーション間でデータを渡すことは、一般に複数の異なるコンピュータシステム上の複数のアプリケーション、モジュール、コンポーネント、プロトコルおよび処理リソースを要する。
残念なことに、現在のいくつかの待機メッセージ通信機構に付随する複数の問題がある。別のコンピュータから相関のあるメッセージを受信するときに受信側コンピュータは一般に、個々のメッセージがどのように処理されるか、それが処理されるべきかどうか、またはどのアプリケーションで処理されるかについての何らかのコンテキストを得るために、受信される各メッセージを「ピーク」(peek)(または照会)しなければならない。一般に受信側のコンピュータもまた、メッセージが一緒に処理されるようにそれがグループ内で相関しているかどうか判断するために、この「ピーク」または「照会」機能を行わなければならないことがある。このようにメッセージをピークまたは照会するために、受信側コンピュータシステム上のモジュールは、メッセージが別のアプリケーションではなく、あるアプリケーションによって、あるいは関連のないメッセージと共にではなく、アプリケーション上の関連のある別のメッセージと共に処理される必要があることなどを認識する前に、メッセージを非直列化(deserialize)し、次いでメッセージ内の数層のヘッダを読み出す必要があり得る。場合によっては、これは、完全に異なるコンピュータシステムによってメッセージが処理される必要があることを認識する前に受信側コンピュータシステムがメッセージ内の数層のヘッダを読み出すことを必要とし得る。
したがって、メッセージを受信し、転送し、処理するための従来のシステムは、具体的には所定の順序およびグループ分けで処理される関連するメッセージについての複数の問題をもたらし得る。たとえばメッセージをグループで処理するためのある従来方法は、メッセージが受信される順序でそれを処理することである。残念なことに、メッセージがそれぞれ適切な順序でグループで、さらには特定のグループ分けで受信側コンピュータに届くという保証はほとんどない。たとえばメッセージの通過経路に沿った任意の数の中継または処理機構は、あるメッセージを次のメッセージよりも遅延させることがあり、メッセージが順序が狂って届くことを引き起こす。これは、関連のないメッセージが関連のあるメッセージのグループと混合されて受信される場合に悪化され得る。したがって、受信側コンピュータシステムは、メッセージがどのように処理されるべきかについての適切なコンテキストを得るためにかなりの量のメッセージを読む必要があり得る。
リソース処理の観点からの問題を潜在的にもたらすことに加えて、メッセージを適切なアプリケーションに転送する前にある量のメッセージを読み出す(または「ピークする」または「照会する」)ことを受信側のコンピュータシステムに求めることは、セキュリティに関する他の問題をもたらし得る。たとえば、メッセージがアンパックされ、非直列化されまたは復号されるまでメッセージの処理コンテキストが確認され得ない場合、メッセージ内の機密情報は、不適切なアプリケーションまたはプロセスによるインターセプトに対して脆弱であり得る。
したがって、この技術の利点は、メッセージがネットワークを介してあるアプリケーションから別のアプリケーションに相関が取られるやり方で、また適切なときに意図される処理順序でまたはグループ分けで送信されることを可能にするシステム、方法およびコンピュータプログラム製品で実現され得る。さらに、この技術の利点は、メッセージが適切なアプリケーションによって受信される前に、意図されないアプリケーションまたはコンピュータシステムにメッセージの一部を非直列化しまたは復号することを求めずにメッセージがネットワークを介して送信されることを可能にするシステムおよび方法で実現され得る。
本発明は、個別の通信セッションおよびセッション指向チャネルを介して関連メッセージをキューに入れることによって、相関を取るやり方で意図されるようにメッセージが通信されることを可能にするシステム、方法およびコンピュータプログラム製品を用いて当技術の上記問題の1つまたは複数を解決する。具体的には、本発明によるシステムおよび方法は、受信側のコンピュータシステムがそれぞれ異なるメッセージグループを適切に処理し得るように、あるアプリケーションから別のアプリケーションに個別の通信セッションでメッセージが送信されることを可能にする。
たとえば本発明の少なくとも1つの実装では、送信側コンピュータの観点からの一方法は、受信側コンピュータシステム上で処理される相関するメッセージのグループを作成する行為を備え、該グループ内のあるメッセージは第1のメッセージであり、該グループ内の別のメッセージは最後のメッセージである。この方法は、そのメッセージグループのためのセッション指向通信チャネルを作成し、受信側コンピュータシステム上のアドレス指定可能なキューにメッセージグループを送信する行為をも備える。送信側コンピュータシステムの観点からのこの方法は、異なるメッセージグループのための異なるセッション指向通信チャネルを作成する行為をさらに備える。したがって、本発明の実施は、送信側コンピュータシステムが個別の通信セッションを介して個別のグループ分けで相関メッセージを送信することを可能にする。
受信側コンピュータシステムの観点からの本発明の一方法は、キューで1つまたは複数のメッセージを受信する行為を備え、このキューで、メッセージのうちの少なくとも1つは、相関メッセージのグループの第1のメッセージとして識別可能である。この方法は、相関メッセージのグループのためのセッション指向通信チャネルを作成し、グループの最後のメッセージなど、グループの残りのメッセージのうちの1つまたは複数を最終的に受信する行為をも備える。グループの最後のメッセージを受信し、受信側コンピュータシステムがセッション内のすべてのメッセージが受信されたことを認識し、かつ/またはグループ内の受信された相関メッセージのすべてを処理した後に、セッションチャネルは閉じられる。相関メッセージの異なるグループの第1のメッセージを受信すると、受信側コンピュータは、異なるセッション指向の通信チャネルを作成する。したがって、本発明の実施は、受信側コンピュータシステムが個別のセッション指向通信チャネルを使用してメッセージグループを相関させることを可能にする。
さらに、グループ内の十分に関連したメッセージは、受信側のコンピュータシステム上で、コンテキストを求めて詳細に読み出される必要はなく、また関連のないメッセージグループと混合されない。さらに、所与の通信セッション内のメッセージは、送信側コンピュータシステムによって示されるように、指定された順序またはグループ分けで処理され得る。さらに、相関メッセージのグループは、メッセージが受信されまたは送信されるときに、また適切なときに、指定されたアプリケーションによって部分的に処理されることもできる。さらに、送信側または受信側のアプリケーションは、部分的に処理されたグループを識別するセッション識別子をもつセッションチャネルを作成することによって、部分的に処理されたグループに再接続することができる。さらに、メッセージは、転送中の遅延、メッセージサイズまたは送信の失敗による受信順序の変化に対処するやり方で送信され得る。さらに、本発明の実施は、断続的なルータが、同じセッションの一部である複数のメッセージのルートを「選択し」、同じ受信側処理ノードに「付ける」ことを可能にする。
本発明の追加の特徴および利点について、以下の説明で述べ、またそれは説明から一部明らかであり、あるいはこうした例示的な実施を行うことによって知ることができる。こうした実施の特徴および利点は、添付の特許請求の範囲中に具体的に指摘する手段および組合わせによって実現され取得され得る。これらのおよび他の特徴は、以下の説明および添付の特許請求の範囲からより完全に明らかになり、または以下で述べる例示的な実施を行うことよって知ることができる。
本発明の上記および他の利点および特徴が取得され得るやり方について述べるために、上記で簡潔に述べた本発明についてのより具体的な説明は、添付の諸図面中に示されるその具体的な実施形態を参照することによって提供される。これらの図面は本発明の一般的な実施形態を示すものにすぎず、したがってその範囲を限定するものと見なすべきでないとの理解のもとに、本発明について、添付の諸図面を使用することによってさらに具体的にかつ詳細に示し説明する。
本発明は、個別の通信セッションおよびセッション指向チャネルを介して関連メッセージをキューに入れることによって、相関を取るやり方で意図されるようにメッセージが通信されることを可能にするシステム、方法およびコンピュータプログラム製品に及ぶ。具体的には、本発明によるシステムおよび方法は、受信側コンピュータシステムがそれぞれ異なるメッセージグループを適切に処理することができるように、メッセージがあるアプリケーションから別のアプリケーションに個別の通信セッションで送信されることを可能にする。
たとえば、本明細書および特許請求の範囲から理解されるように、本発明のある態様は、キューイングプロトコルの側面を通信セッションの一般的な側面と組み合わせることを伴う。本発明の別の態様は、特定のキューに送信され、次いで単一の処理ノードまたはアプリケーションによって相関を取るやり方で処理される相関のあるメッセージを準備し、受信することを伴う。本発明の別の態様は、セッション内で特定の順序で、またはグループの一部として適宜メッセージを識別し処理することに関する。
たとえば図1に、本発明の1つまたは複数の実施を行うための概要概略図を示す。具体的には、図1は、送信側コンピュータシステム100上のアプリケーション103が、特定の処理ノードによってたとえば順次に、またはグループの一部として任意の順序で処理されるなど、相関を取るやり方で処理される1つまたは複数の相関するメッセージ110、113および115を作成することを示している。たとえば、ユーザは、オンライン銀行で特定のアプリケーションの使用を必要とするある取引を要求し、次いでその取引の完了後に、同じアプリケーションを使用するが、異なる1組の相関データをユーザに必ずしも求めない別の取引をオンライン銀行で要求することがある。
一般に、送信側コンピュータシステム100は、そうするように構成されている場合、個別の通信セッション、および対応するセッション指向チャネル120を開始する。送信側コンピュータシステム100は、何らかのやり方でメッセージグループを相関させるための機構を伴って構成されている限りは、本明細書で述べるように、セッション通信を必ずしも理解する必要はない。たとえば、通信セッションを実施しない送信側コンピュータシステムは、グループ内のあるメッセージは第1のメッセージであり、グループ内の別のメッセージは最後のメッセージであることを示すことによって単純にメッセージグループを相関させることができる。
一般に、通信チャネルは単純に、ネットワーク通信の状態を定義する1つまたは複数の層を有するネットワークスタックなどの通信スタックである。一方、セッションは、相関メッセージのあるグループはある通信セッションに関連付けられ、異なる相関メッセージのグループは異なる通信セッションに関連付けられるような、相関メッセージのグループのための個別の識別子と理解されよう。次いで、セッション指向チャネルは、個別のメッセージセッションを通信するために使用されるチャネルである。本発明の一部の実装では、送信側または受信側コンピュータシステムは、所与の任意の通信セッションについて、1つのセッション指向通信チャネルを作成する。他の実装では、1つのセッション内で複数の通信チャネル有すること、および1つのセッション指向チャネルに関連して使用される複数の通信セッションを有することが可能である。
いずれにせよ図1は、相関が取られるように処理されるメッセージ110、113および115のそれぞれが最初にセッション指向チャネル120を介して受信側コンピュータシステム150に送信されることを示している。したがって、ライタ105は、各メッセージ110、113および115が共通のセッション識別子を有するように、各メッセージが相関グループの一部であることを示すセッション情報を各メッセージ110、113および115内に含める。ライタ105は、セッションが順序付けられたセッションであるか、それともセッション内のメッセージが任意の順序で処理され得るかどうかなど、メッセージの順序付けに関するヘッダ情報をも含めることができる。セッションが順序付けられたセッションである場合、ライタ105は、たとえばメッセージ110がグループ内の3つのメッセージのうちの第1のメッセージであることを示す順序識別子を含め得る。
しかし、順序識別子は、すべての場合で必要であるとは限らない。たとえば送信側コンピュータシステム100がセッションを実施しないように構成されているが、メッセージグループが相関していることを識別し得る場合、本発明の実施は、受信側コンピュータシステム150がメッセージグループをセッションに関連付け、次いで単一の処理ノードでメッセージグループをいずれかの任意の順序で処理することを可能にする。具体的には、受信側コンピュータシステム150は、メッセージ110、113および115がどのように受信されようが、順番正しくであろうが、順序が乱れた状態であろうが、順序付けられまたは順序付けられないセッションにメッセージが関連付けられていようが、そうでなかろうが、メッセージ110、113および115を処理し得る。したがって、本発明の実施は、順序付けが相関メッセージの所与のグループに関連付けられ、または必ずしも関連付けられない場合に適用することができる。
さらに、アプリケーションライタ105は、キューマネージャ140で特定のセッション指向のキューを識別するキューアドレス123の情報を含めることによってメッセージを準備することができる。アプリケーションライタ105は、ローカルキューマネージャ130によって維持される通信チャネル120についての状態情報をも含め得る。具体的には、通信チャネルについての状態情報は、特に挙げると、各メッセージ110、113および115を特定のセッションの一部として相関させる情報を含み得る。したがって、送信側コンピュータシステム100上で、キューマネージャ130は、アプリケーション103とインターフェースする1つまたは複数のコンポーネントと、セッション指向チャネルの1つまたは複数の層とを備える。さらに、キューマネージャ130(および/またはキューマネージャ140)は、チャネル通信スタック内の各層についての状態情報、ならびにメッセージ110、113、115などのグループ分けが通信セッション117に関連することを識別する状態情報を維持することができる。キューマネージャ130、140は、送信側および/または受信側コンピュータシステムに対してローカルとすることができ、またリモートとし、したがってルーティング経路上の中間システム上に存在し得る。
図1に示すように、キューマネージャ130は、受信側キューマネージャ140にメッセージを送信する前に、相関するメッセージグループ(すなわちセッション)をキュー内に格納するなど、任意の数の適切な機能を実施し得る。キューマネージャ130は、メッセージ110、113および115への対応する1つまたは複数のヘッダ、ならびに移送のための各メッセージのパッケージを含み得る。具体的には、キューマネージャ130は、適切な場合に所与のメッセージヘッダ内に状態値を含め得る。キューマネージャ130は、メッセージがアドレス指定されたキュー123にトンネルされ得るように、他のデータ構造内に機密のデータ構造体を挿入することによって各メッセージ110、113および115の一部をカプセル化することもできる。
さらに、キューマネージャ130は、特定の通信セッションのメッセージが適切に転送されることを確実にするのに役立つ単純オブジェクトアクセスプロトコル(「SOAP」:Simple Object Access Protocol)メッセージの場合には、「経由」情報などのヘッダ情報を挿入することができる。このようなSOAPヘッダ情報は、「SOAP認識型(SOAP−aware)」である中間ルータにとって特に有用であり得る。接続経路内の中間ルータがSOAP認識型である場合、ヘッダ情報(「経由」(Via)など)は、特定の通信セッションで受信され渡されるすべてのメッセージが、処理に適したノードに転送されることを中間ルータが保証する助けとなり得る。
アプリケーションライタ105によってまだ挿入されていない場合、キューマネージャ130はセッション識別子をメッセージ110、113および115内に挿入することができ、このセッション識別子は、相関メッセージの指定されたグループのための通信セッションを一意に識別する。相関メッセージの別のグループとは異なるやり方で処理される相関メッセージの各グループについて新しい異なるセッションが作成されるので、相関メッセージの各グループ分けは、一意のセッション識別子(「ID」)を有する。したがって、図1に示すようにメッセージ110は、そのメッセージがセッション117の一部であることの情報を含む。メッセージ113および115にセッション117の識別子が設けられる場合、受信側コンピュータシステム150は、処理のために各メッセージ110、113および115を相関グループの一部として容易に認識する。
図1は、送信側コンピュータシステム100がメッセージ110、113、115をアドレス指定されたキュー123に直接に向けることができる。ある実装では、メッセージの中継は、1つまたは複数のストア、ならびに送信側および/または受信側コンピュータシステム間の転送中間物(図示せず)に沿ってメッセージを渡すことを伴う。メッセージ(110、113および/または115)の転送中に1つまたは複数の点で接続が失敗し得ることも理解されよう。しかし、少なくとも一部はそれぞれのメッセージが各メッセージグループに一意のセッション識別子を含むという理由から、またSOAPメッセージヘッダ内でこの情報がSOAP認識型ルータにとって使用可能である場合には、接続の中断および失敗は対処され得る。
具体的には、失敗し、中断されまたは再開された通信セッション内のメッセージは、適切な処理ノードに依然としてルーティングされ、好ましい順序またはグループ分けで最終的に処理され得る。たとえば、送信側コンピュータシステム100は、セッション内のメッセージのうちの1つ(113など)が適切に送信されなかったことの表示を受信し得る。送信側コンピュータシステム100は、失敗したメッセージを適切なセッション(117など)の識別子情報に単純に再び関連付け、メッセージを再送し得る。
さらに、送信側コンピュータシステム100上のアプリケーション103(および受信側コンピュータシステム150上のアプリケーション160)は、アプリケーション103がクラッシュした場合に通信セッションに再接続することができる。たとえばアプリケーション103は、1つまたは複数のメッセージを作成している間、相関メッセージグループのための現在のセッションを適切な位置に格納することができる。たとえばアプリケーション103はクラッシュすると、新しいセッション指向チャネルを作成し、新しいセッション識別子を使用するか、それともストレージからセッション識別子を回復するかどうかをも決定する。グループが完全には送信されていない場合、アプリケーション103は、単純に新しいセッション指向チャネルを回復されたセッション識別子に関連付けることができる。受信側コンピュータシステム150についての議論から理解されるように、アプリケーションのクラッシュの後にアプリケーション160が新しいセッション指向チャネルを回復されたセッション識別子に関連付ける場合には、類似のプロセスが発生し得る。
したがって、送信側コンピュータシステム100(および受信側コンピュータシステム150)は、それぞれのメッセージ110、113および115が適切なキューマネージャに関してそれが送信されまたは受信される順序に関係なく適切なセッションの一部として適切に通信されることを保証し、したがって適宜それを送信し、または処理することができる。さらに、送信側コンピュータシステム100は以前に送信したメッセージをキューマネージャ130に再送する必要がなく、また受信側コンピュータシステム150は以前に受信したすべてのメッセージをキューマネージャ140から再送させる必要がないので、処理リソースは節約される。
受信側コンピュータシステム150がグループ内のメッセージのうちの1つまたは複数を受信するときに、特定のアプリケーション160のためのリスナモジュール145は、アプリケーション160などのアプリケーションによって処理される必要がある相関メッセージのグループが送信中であることを識別する。応答してリスナ145は、受信される相関メッセージを適切なアプリケーションに直接に中継するためにセッション指向チャネル121を開始する。たとえば、受信側コンピュータシステム150は、相関メッセージのグループが入力メッセージ110、113などのヘッダ情報内に見られる1つまたは複数のセッション識別子(117など)を識別することによって、送信メッセージのグループが受信中であることを識別する。別の実装では、メッセージが何らかの他の相関情報、たとえば「第1のメッセージ」または「最後のメッセージ」の標識などを含むときに、受信側コンピュータシステム150は、相関メッセージのグループが送信中であり、または受信されたことを識別する。
一般に通信セッション内の各メッセージは、アンパックされまたは詳細に読み出される必要なしに、アドレス指定されたキュー123で受信される。メッセージ110、113および115が受信されるときに、キューマネージャ140はメッセージを瞬間的に格納することができ、キュー123は、その各順序識別子内に示されるように、受信されるメッセージを順序付けることができる。もちろん、セッション内のメッセージのセッション情報が、そのセッションが順序付けられていないことを示す場合、キュー123は、処理の前に必ずしもメッセージを順序付けない。したがって、順序識別子は、セッションが順序付けられたセッションとして示されている状況において実装される。
たとえば、図1は、メッセージ110が順序付けられたセッション内でアプリケーション160によって処理される3つのメッセージのうちの1つであることを示している。受信されるメッセージ内の別の識別子は、メッセージ110が同時に、あるいは順次にではなく、他のメッセージ113および115と共に単一の処理ノードによって消費される任意の順序で処理されることを示し得る。したがって、ある実施形態では、キュー123は、順序付けられまたは適宜処理されるのに十分な数のメッセージが受信されるまで、キューマネージャ140で、受信される各メッセージをバッファに入れる。これは、複数の理由のために有用であり得る。
たとえば、メッセージ115は、接続経路内の転送中間物での何らかの遅延によりメッセージ113より早く到達し得る。あるいは、キュー123への送信は、一時的に失敗し得る。送信は同じグループで再開され得るが、メッセージがキュー123に送信されまたはそこで受信される順序に何らかの誤った順序付けが存在し得る。しかし、順序付けられたセッション内の各メッセージは特定の順序識別子で相関が取られ得るので、多岐に渡るメッセージ遅延が比較的に容易に対処され得る。さらに、メッセージは受信されるときにバッファ内に入れられ得るので、アプリケーション103およびキューマネージャ130は、正確に送信された前のメッセージを再処理し再送しなければならないのではなく、メッセージが適切に中継されなかった点で、適切なセッション識別子を含むメッセージを単純に再作成し得る。
いずれにせよ、図1は、次いでリスナモジュール145が受信されたメッセージ110、113および115を適切な順序で取り、処理のためにセッション指向チャネル121を介してアプリケーション160にそれを渡すことを示している。図1は、別のアプリケーション170のための別のリスナ147が、異なるキューに125に向けられた他のメッセージを識別したことも示している。したがって、リスナ147は、キューアドレス125で受信される相関メッセージをアプリケーション170に渡すために使用される異なるセッション指向チャネル127を作成する。したがって、図1は、それぞれ異なるリスナ145および147が、それぞれ異なるセッション指向チャネル121、127を介して相関メッセージの関連のないグループを区別し得ることを示している。さらに、個々のリスナ145、147などは、キューマネージャ140のキューから同じアプリケーション160または170への、複数であるが異なっているセッション指向通信チャネルを適宜作成し得る。
いずれにせよ、受信された各メッセージをアプリケーション160に渡した後に、リスナモジュール145は、最後のメッセージを識別し、セッション指向チャネル121を閉じ、あるいはメッセージの新しいグループのための新しいまたは異なるセッションを再開する。たとえばある実施形態では、最後のメッセージは単純に、最後のメッセージの順序識別子によって推論され得る。すなわち、リスナモジュール145は、メッセージ115が3つのメッセージのうちの3番目を表すこと、ならびにメッセージ110および113のそれぞれが既に受信されていることを識別する。もちろん、最後のメッセージの標識は最後のメッセージ(115など)を送信した後に送信側コンピュータシステムによって送信される別個のメッセージとすることもでき、またはメッセージ自体が、それが送信側コンピュータシステム100によって送信された単純に最後のメッセージであることの標識を含み得る。したがって、リスナモジュール145は、相関メッセージの新しいセッションについて新しい異なるセッション指向チャネルを開始することができ、また相関メッセージのそれぞれ異なるグループについてこうしたセッションを同時に作成することができる。したがって、相関メッセージの関連のないグループの分離を確実にするために、送信側と受信側の両方のコンピュータシステム上で様々な手順が実施され得る。
図2は、複数のメッセージが指定されたアプリケーションによって意図されるように処理され得るように、複数の相関メッセージをリソース効率のよいやり方で通信する方法の一連の行為を示している。図2の諸行為について図1を参照して以下で論じ、またそれは、送信側と受信側の両方のコンピュータシステムの観点からの行為を含む。たとえば、図2は、送信側コンピュータの観点100からの本発明の実施による方法が、相関メッセージのグループを作成する行為200を備えることを示している。行為200は、受信側コンピュータシステム上で処理される相関メッセージのグループを作成することを含み、該グループ内のあるメッセージは第1のメッセージであり、該グループ内の別のメッセージは最後のメッセージである。たとえば、送信側のコンピュータシステム100は、個別の通信セッション用に構成される場合は、それぞれが一意のセッションIDを含む相関メッセージのグループを作成し得る。あるいは、送信側コンピュータシステム100は、複数のセッション用に構成されない場合は、少なくとも1つのメッセージがグループ内の第1のメッセージとして識別可能であり、また別のメッセージがグループ内の最後のメッセージとして識別可能であるように他の機構によってメッセージを相関させることができる。
送信側コンピュータ100の観点からの方法もまた、セッションを作成する行為210を含む。行為210は、メッセージグループのためのセッション指向通信チャネルを作成することを含む。たとえば、送信側コンピュータシステム100は、キューマネージャ130によって維持される1つまたは複数の状態層を有するセッション指向通信チャネルを開始する。キューマネージャ130は開始された通信チャネル120についてのセッション情報をアプリケーション103に渡し、アプリケーションライタ105は、グループの各相関メッセージ内にセッションIDを挿入する。アプリケーションライタ105は、セッションが順序付けられたセッションであること、または処理にとって順序付けが重要でないこと、またはメッセージグループが単一の処理ノードによって任意の順序で処理されることを示すヘッダ情報を挿入することもできる。順序付けられたセッションの場合のいくつかの例では、ライタインターフェース105は、メッセージが順序付けられ処理されるべき特定の順序を示す(「3の1」などの)順序標識を各メッセージ内に挿入することもできる。これらのおよび類似の挿入機能が代わりに、または共有されるやり方で、アプリケーション103および/またはキューマネージャ130によって実施され得る。
送信側コンピュータ100の観点からの方法は、グループを送信する行為220をも備える。行為220は、受信側コンピュータシステム上のアドレス指定可能なキューにメッセージグループを送信することを含む。たとえば複数のメッセージのうちの少なくとも1つが準備された後に、送信側コンピュータシステム100は、グループの相関メッセージ110、113および115をキューマネージャ140上のアドレス指定されたキュー123に送信する。メッセージは、受信側コンピュータシステム140上のその最終宛先に中継されるときに1つまたは複数のストアおよび転送点を介して中継され、このストアおよび転送点で、メッセージは1つまたは複数の目的のためにバッファに入れられる。上記で示したように、送信側コンピュータシステム100は、相関メッセージのうちの1つが失敗し、または適切に送信されていないことの表示を受信する場合には、単純にメッセージを適切なセッションIDに再び関連付け、そのメッセージを再送し得る。最終的に、複数の各メッセージは、受信側コンピュータシステム140上の指定されたセッション指向キュー123に中継される。
さらに、図2は、送信側コンピュータ100の観点からの方法が、異なるセッションを作成する行為230をさらに備えることを示している。行為230は、相関メッセージの異なるグループについて異なるセッション指向通信チャネルを作成することを含む。たとえば1組のメッセージと同時に、あるいはメッセージグループの最後のメッセージ115が適切に作成されまたは送信された後に、アプリケーション103は、相関する1つまたは複数のメッセージ(図示せず)の新しい異なるグループのための新しい通信セッション(図示せず)を開始する。もちろん、送信されるさらなるメッセージがない場合、新しいセッションは必ずしも作成される必要はない。しかし、アプリケーションは、異なるグループがそれぞれ異なるセッション識別子を有するように、相関を取るやり方で処理される相関メッセージの各セットが確実に1つの個別のセッション識別子にだけ関連付けられるようにする。
図示するように図2は、複数のメッセージが意図されるように処理され得るように、相関メッセージのグループをリソース効率のよりやり方で処理する、受信側コンピュータ150の観点からの方法をも示している。具体的には図2は、受信側からの方法が、1つまたは複数のメッセージを受信する行為240を備えることを示している。行為240は、キューで1つまたは複数のメッセージを受信すること含み、該メッセージの少なくとも1つは相関メッセージのグループの第1のメッセージとして識別可能である。たとえば受信側コンピュータシステム150が、通信セッションを理解するように構成された送信側コンピュータシステムからメッセージグループを受信している場合、受信側コンピュータシステムは、メッセージヘッダ内に含まれるセッション情報を識別することによって相関グループを容易に識別する。あるいは、送信側コンピュータシステム100が通信セッションを実施するようには構成されていないが、メッセージグループ化に対処するようには構成されている場合、受信側コンピュータシステム150は、受信されるメッセージのグループ内の最初のメッセージおよび最後のメッセージの標識を識別するなど、他の表示で相関グループ化を識別する。
受信側コンピュータ150の観点からの図2の方法は、セッションを作成する行為250をも備える。行為250は、メッセージグループのためのセッション指向通信チャネルを作成することを含む。受信側コンピュータシステム150上のリスナモジュール145は、キュー123からアプリケーション160にメッセージを渡すために使用されるセッション指向通信チャネル121を開始する。順序付けられたセッションの場合にキューマネージャ140でメッセージが適切に順序付けられるときに、受信されたメッセージ110、113および115をアプリケーション160に渡すためセッション指向チャネル121が使用される。適切な場合にこれは、アプリケーション170が相関メッセージのグループを部分的に処理し得るように、メッセージが受信されるときに行われ得る。あるいは、たとえば順序付けられていないセッションの場合には、すべてのメッセージが受信されると、かつ/またはそのメッセージグループに関連しない相関メッセージの新しいグループのために新しいセッション指向チャネルが開始されるとすぐに、メッセージはセッション指向チャネルを介してアプリケーション160に渡され得る。
したがって、受信側コンピュータ150の観点からの図2の方法は、グループの最後のメッセージを受信する行為260をも備える。行為260は、メッセージグループの最後のメッセージを受信することを含む。たとえば、メッセージ110は、そのメッセージが3つのメッセージのシーケンス内の第1のメッセージとして処理されることの順序識別子を含み得る。あるいは別の実装では、複数のメッセージ内の各メッセージと共に含まれる別個のメッセージ(図示せず)が、メッセージセッションのインデックスとして働き、またセッション内のメッセージの数、およびそのそれぞれの順序、ならびにそれがどのように処理されるべきかを示す。いずれの場合にも、最後のメッセージは、そのセッション指向チャネルを介して送信されるさらなるメッセージが存在せず、セッションに関連する他のすべてのメッセージが受信されたと見なすことを受信側コンピュータシステム150に示す。
受信側コンピュータの観点からの図2の方法はさらに、異なるセッションを作成する行為270を備える。行為270は、相関メッセージの異なるグループの第1のメッセージを受信すると、異なる後続のセッション指向通信チャネルを作成することを含む。たとえばある実装では、リスナモジュール145は、最後のメッセージを識別するまで、あるいはセッション内のすべてのメッセージが受信され、セッション指向チャネル121を介してアプリケーション160に渡されたことを識別するときまで、セッション指向チャネルを使用可能な状態に保つ。すなわち、リスナモジュール145は、たとえば各メッセージ110、113、115が受信されるまで、またはたとえば「3の1」、「3の2」および「3の3」などが受信されるまでセッション指向チャネルを開いたまま保つ。
メッセージグループに関連しない新しいメッセージを受信すると、リスナ145は、メッセージの新しいグループ化のための異なる通信セッションを開始し得る。これは、受信側コンピュータシステムが相関メッセージのグループを個別のセッションに配列しまたは編成することを可能にする。これはさらに、受信側コンピュータシステム150および送信側コンピュータシステム100が、確実にメッセージがグループとして、かつ/または適切な場合には指定された順序で処理されるようにすることを可能にする。したがって、別のセッションまたはグループ分けの一部として送信される相関メッセージ(図示せず)の異なるグループが、不注意に相関メッセージの別のグループと共に処理されない。
したがって、本発明の実施は、グループ内の各メッセージがいずれかの意味のあるやり方でアンパックされ、読み出されることを必要とせずにメッセージグループが定められたやり方で送信され処理されることができる複数のやり方を提供する。さらに、本発明の実施は、相関メッセージが送信側コンピュータシステムによって指定された順序で(またはそれ無しで)、また単一の処理ノードで処理され得るように、(順序付けられまたは順序付けられない)特定の通信セッション内のメッセージがキューに入るように送信されることを可能にする。さらに、セッション内のメッセージがセッション識別子に関連付けられ得るので、本発明の実施は、アプリケーションの障害時の送信を提供する。たとえば本発明の実施は、送信側または受信側コンピュータシステムが重複する前のデータを送信しまたは受信することを必要とせずに、送信側および受信側のキューマネージャが送信の様々なシーケンスで送信を停止し、開始し、かつ/または回復されたセッション識別子との関連付けを再開することを可能にする。
さらに、メッセージが、特定のキューおよびセッション指向チャネルに向けられる特定の通信セッションにグループ分けされ得るので、本発明の実施は、メッセージが相関メッセージの他のグループと混合されるのではなく、適切にグループ分けされることを提供する。ある場合では、これは、受信側コンピュータシステム上でメッセージがソートされ、グループから取り除かれることを必要としないのでリソース効率をもたらす。さらに、具体的にはSOAPメッセージなどのメッセージでは、各セッションがメッセージヘッダ内の特定のキューに向けられ得るので、個別の通信セッションチャネルを介して送信されるメッセージは、アドレス指定されたキューまたはアプリケーションに届くまで、たとえばアドレス指定のために非直列化されまたは復号される必要はない。
図3および以下の議論は、本発明が実施され得る適切なコンピューティング環境についての簡潔で一般的な説明を提供するためのものである。必須ではないが、本発明について、ネットワーク環境内でコンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈で述べる。プログラムモジュールは一般に、特定のタスクを実施し、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造体などを含む。データ構造体およびプログラムモジュールに関連するコンピュータ実行可能命令は、本明細書で開示する諸方法のステップを実行するためのプログラムコード手段の例を表す。こうした実行可能命令または関連のデータ構造体の特定のシーケンスは、こうしたステップ中で述べる機能を実施するための対応する行為の例を表す。
本発明は、パーソナルコンピュータ、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブル消費家電、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなどを含めて、多くのタイプのコンピュータシステム構成をもつネットワークコンピューティング環境内で実施され得ることが当業者には理解されよう。本発明は、ローカルとリモートの処理装置がタスクを実施し、また通信ネットワークを介して(有線リンク、無線リンク、あるいは有線または無線リンクの組合せによって)リンクされる分散コンピューティング環境内で実施されることもできる。分散コンピューティング環境内では、プログラムモジュールは、ローカルとリモートの両方のメモリ記憶装置内に置かれ得る。
図3を参照すると、本発明を実施するための例示的なシステムが、処理装置321と、システムメモリ322と、システムメモリ322を含めて様々なシステム構成要素を処理装置321に結合するシステムバス323とを含む従来型コンピュータ320の形の汎用コンピューティング装置を含んでいる。システムバス323は、メモリバスまたはメモリコントローラ、周辺バス、および様々なバスアーキテクチャのいずれかを用いたローカルバスを含めて、複数タイプのバス構造のいずれかであり得る。システムメモリは、読出し専用メモリ(ROM:read only memory)324と、ランダムアクセスメモリ(RAM:random access memory)325とを含む、起動時などにコンピュータ320内の要素間で情報を転送するのに役立つ基本ルーチンを含む基本入出力システム(BIOS:basic input/output system)326は、ROM324に格納され得る。
コンピュータ320は、磁気ハードディスク339から読み出しまたはそこに書き込むための磁気ハードディスクドライブ327、取外し可能な磁気ディスク329から読み出しまたはそこに書き込むための磁気ディスクドライブ328、およびCD−ROMや他の光媒体などの取外し可能な光ディスク331から読み出しまたはそこに書き込むための光ディスクドライブ330をも含み得る。磁気ハードディスクドライブ327、磁気ディスクドライブ328および光ディスクドライブ330はそれぞれ、ハードディスクドライブインターフェース332、磁気ディスクドライブインターフェース333および光ディスクドライブインターフェース334によってシステムバス323に接続される。ドライブおよびその関連のコンピュータ読取り可能媒体は、コンピュータ320のためのコンピュータ実行可能命令、データ構造体、プログラムモジュールおよび他のデータの不揮発性の記憶域を提供する。本明細書で述べる例示的な環境は磁気ハードディスク339、取外し可能磁気ディスク329および取外し可能光ディスク331を使用しているが、磁気カセット、フラッシュメモリカード、デジタル多用途ディスク、ベルヌーイカートリッジ、RAM、ROMなどを含めて、データを格納するための他のタイプのコンピュータ読取り可能媒体が使用され得る。
オペレーティングシステム335、1つまたは複数のアプリケーションプログラム336、他のプログラムモジュール337およびプログラムデータ338を含めて、1つまたは複数のプログラムモジュールを備えるプログラムコード手段は、ハードディスク339、磁気ディスク329、光ディスク331、ROM324またはRAM325内に格納され得る。ユーザは、キーボード340、ポインティング装置342、またはマイク、ジョイスティック、ゲームパッド、パラボラアンテナ、スキャナなどの他の入力装置(図示せず)を用いて、コンピュータ320にコマンドおよび情報を入力することができる。これらのおよび他の入力装置はしばしば、システムバス323に結合されたシリアルポートインターフェース346を介して処理装置321に接続される。あるいは、入力装置は、パラレルポート、ゲームポートまたはユニバーサルシリアルバス(USB:universal serial bus)などの他のインターフェースよって接続されることもできる。モニタ347または別の表示装置もまた、ビデオアダプタ348などのインターフェースを介してシステムバス323に接続される。モニタ347に加えて、パーソナルコンピュータは一般に、スピーカおよびプリンタなどの他の周辺出力装置(図示せず)を含む。
コンピュータ320は、リモートコンピュータ349aおよび349bなどの1つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク化された環境内で動作することができる。リモートコンピュータ349aおよび349bはそれぞれ、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の一般的なネットワークノードとすることができ、また図3にはメモリ記憶装置350aおよび350b、ならびにその関連のアプリケーションプログラム336aおよび336bだけが示されているが、コンピュータ320に関して上記で述べた要素の多くまたはすべてを一般に含む。図3に示す論理接続は、限定のためではなく例を挙げるために本明細書で提示されているローカルエリアネットワーク(LAN:local area network)351と、広域ネットワーク(WAN:wide area network)352とを含む。こうしたネットワーキング環境は、オフィス規模または企業規模のコンピュータネットワーク、イントラネットおよびインターネットでは一般的である。
LANネットワーキング環境内で使用される場合、コンピュータ320は、ネットワークインターフェースまたはアダプタ353を介してローカルネットワーク351に接続される。WANネットワーキング環境内で使用される場合、コンピュータ320は、モデム354、無線リンク、またはインターネットなどの広域ネットワーク352を介して通信を確立する他の手段を含み得る。内部にあっても、外部にあってもよいモデム354は、シリアルポートインターフェース346を介してシステムバス323に接続され得る。ネットワーク環境内では、コンピュータ320に関して示したプログラムモジュール、またはその一部は、リモートメモリ記憶装置内に格納され得る。図示するネットワーク接続は例示的なものであり、広域ネットワーク352を介して通信を確立する他の手段が使用され得ることが理解されよう。
本発明は、その精神または本質的な特性から逸脱せずに他の特定の形で実施され得る。説明した諸実施形態は、すべての点において、限定的ではなく、例示的なものにすぎないと見なすべきである。したがって、本発明の範囲は、上記の説明ではなく、添付の特許請求の範囲によって示される。特許請求の範囲の等価物の意味および範囲内に含まれるすべての変更は、その範囲内に包含される。
相関メッセージを受信側コンピュータシステムに送受信するための本発明による概要概略図である。 本発明に従って相関メッセージを通信する行為を備える、送信側および受信側コンピュータシステムの観点からの方法を示す図である。 本発明の1つまたは複数の実施を行うのに適したコンピューティング環境の概略図である。
符号の説明
100 送信側コンピュータシステム
103 アプリケーション
105 ライタ
110 メッセージ
117 セッション
120 チャネル
121 チャネル
123 キュー:アドレス
125 キュー:アドレス
127 チャネル
130 キューマネージャ
140 キューマネージャ
145 リスナ
147 リスナ
150 受信側コンピュータシステム
160 アプリケーション
170 アプリケーション

Claims (20)

  1. 送信側システム上のアプリケーションが、受信側コンピュータシステム上で処理される相関メッセージのグループを送信するコンピュータ化された環境内の送信側コンピュータシステム上で、前記相関メッセージが意図されるように処理され得るように前記複数のメッセージをリソース効率のよいやり方で通信する方法であって、
    受信側コンピュータシステム上で処理される相関メッセージのグループを作成する行為であって、前記グループ内の1つのメッセージは第1のメッセージであり、前記グループ内の別のメッセージは最後のメッセージである行為と、
    前記メッセージグループのためのセッション指向通信チャネルを作成する行為と、
    前記メッセージグループを受信側コンピュータシステム上のアドレス指定可能なキューに送信する行為と、
    相関メッセージの異なるグループのための異なるセッション指向通信チャネルを作成する行為と
    を備えることを特徴とする方法。
  2. 前記セッション指向通信チャネルを介して前記メッセージグループを送信し、前記異なるセッション指向通信チャネルを介して前記異なる相関メッセージグループを送信する行為をさらに備えることを特徴とする請求項1に記載の方法。
  3. キューマネージャは、前記相関メッセージグループが前記セッションに関連付けられる、前記セッション指向通信チャネルの状態を維持することを特徴とする請求項2に記載の方法。
  4. 前記グループ内のメッセージのうちの少なくとも1つが前記受信側コンピュータシステムに適切に送信されたことの表示を受信する行為と、
    前記メッセージが前記相関メッセージグループの一部であることを示すための対応するセッション識別子を含む前記メッセージを再送する行為と
    をさらに備えることを特徴とする請求項1に記載の方法。
  5. 前記グループ内の各メッセージはセッション識別子に関連付けられ、前記異なるグループの各メッセージは異なるセッション識別子に関連付けられることを特徴とする請求項1に記載の方法。
  6. 前記送信側コンピュータシステム上の前記アプリケーションに障害が生じる場合に、
    前記アプリケーションが再開すると新しいセッション指向通信チャネルを開始する行為と、
    前記新しいセッション指向チャネルが、前記アプリケーションに障害が生じる前に前記アプリケーションで使用されていた前記セッション識別子に関連付けられるように、また前記アプリケーションが前のセッションに再接続されるように、前記セッション指向通信チャネルに関連する前記セッション識別子を回復する行為と
    をさらに備えることを特徴とする請求項5に記載の方法。
  7. カプセル化された前記メッセージグループまたは異なるメッセージグループがトンネリングプロトコルを介して中継されるように、前記メッセージグループまたは異なるメッセージグループのいずれかをカプセル化する行為をさらに備えることを特徴とする請求項1に記載の方法。
  8. ルータは、前記相関メッセージグループ内のメッセージのうちの少なくとも1つと、前記相関メッセージグループ内のメッセージのうちの少なくとも第2のメッセージと、前記相関メッセージグループの一部でない別のメッセージとを中継し、前記ルータは、前記少なくとも1つのメッセージと前記少なくとも第2のメッセージとが共通の通信セッションに関連すること、および前記別のメッセージが前記共通の通信セッションに関連しないことを識別することを特徴とする請求項1に記載の方法。
  9. 少なくとも前記相関メッセージグループは、SOAPメッセージングプロトコルを使用して前記受信側コンピュータシステムに送信され、前記グループ内の各メッセージのメッセージヘッダ内に1つまたは複数の経由情報(via)を挿入する行為をさらに備えることを特徴とする請求項1に記載の方法。
  10. 前記セッション指向チャネルは順序付けられたセッションのために作成され、前記相関メッセージグループ内の各メッセージ内に順序識別子を挿入する行為をさらに備えることを特徴とする請求項1に記載の方法。
  11. 受信される複数のメッセージの相関が取られるコンピュータ化された環境内の受信側コンピュータシステム上で、前記複数の相関メッセージが意図されるように処理され得るように前記複数のメッセージをリソース効率のよいやり方で受信し処理する方法であって、
    キューで1つまたは複数のメッセージを受信する行為であって、前記1つまたは複数のメッセージのうちの少なくとも1つは相関メッセージグループの第1のメッセージとして識別可能である行為と、
    前記相関メッセージグループのためのセッション指向通信チャネルを作成する行為と、
    前記相関メッセージグループの最後メッセージを受信する行為と、
    異なる相関メッセージグループの第1のメッセージを受信すると、異なるセッション指向通信チャネルを作成する行為とを備えることを特徴とする方法。
  12. 前記相関メッセージグループのメッセージは、前記受信側コンピュータシステムが前記相関メッセージグループ内のいずれかのメッセージ内で通信セッション識別子を識別することに基づいて前記セッション指向通信チャネルを開始するように、前記通信セッション識別子を備えることを特徴とする請求項11に記載の方法。
  13. 前記異なるグループの前記第1メッセージ内の新しい異なる通信セッション識別子を識別する行為と、
    前記新しい通信セッション識別子に基づいて前記異なるセッション指向通信チャネルを開始する行為と
    をさらに備えることを特徴とする請求項12に記載の方法。
  14. 前記相関メッセージグループの少なくとも前記第1メッセージを、前記セッション指向通信チャネルを介して特定のアプリケーションに渡す行為と、
    前記グループの前記相関メッセージが部分的に処理されるように、前記相関メッセージグループの前記最後のメッセージを受信する前に前記特定のアプリケーション上で前記相関メッセージグループの少なくとも前記第1メッセージを処理する行為と
    をさらに備えることを特徴とする請求項11に記載の方法。
  15. 前記セッション指向通信チャネルは順序付けられたセッションのために作成され、
    前記グループの各メッセージ内で順序識別子を識別する行為と、
    前記順序識別子に従って前記特定のアプリケーション上で前記グループのメッセージを処理する行為と
    をさらに備えることを特徴とする請求項11に記載の方法。
  16. 前記受信側コンピュータシステム上の前記アプリケーションに障害が生じる場合に、
    前記アプリケーションが再開すると新しいセッション指向通信チャネルを開始する行為と、
    前記新しいセッション指向チャネルが、前記アプリケーションに障害が生じる前に前記アプリケーションで使用されていた前記セッション識別子に関連付けられ、また前記アプリケーションが前のセッションに再接続されるように、前記セッション指向通信チャネルに関連する前記セッション識別子を回復する行為と
    をさらに備えることを特徴とする請求項11に記載の方法。
  17. 前記相関メッセージグループ内のメッセージのうちの1つの送信が失敗したことの表示を受信する行為と、
    受信された前記相関メッセージグループの他のメッセージをバッファに入れる行為と、
    新しいメッセージを受信する行為と、
    前記新しいメッセージ内のセッション識別子に基づいて、前記新しいメッセージが前記相関メッセージグループの一部であることを識別する行為と
    をさらに備えることを特徴とする請求項11に記載の方法。
  18. 前記セッション指向チャネルは、前記特定のアプリケーションに関連するリスナモジュールによって開始されることを特徴とする請求項11に記載の方法。
  19. 前記メッセージグループは受信側コンピュータシステムの宛先キューで受信され維持され、前記キューは送信側コンピュータシステムによって具体的にアドレス指定されることを特徴とする請求項11に記載の方法。
  20. 受信される複数のメッセージが特定のアプリケーションによって処理される受信側コンピュータシステム上で使用するためのコンピュータプログラム製品であって、プロセッサによって実行されるときに前記受信側コンピュータシステムに
    キューで1つまたは複数のメッセージを受信する行為であって、前記1つまたは複数のメッセージのうちの少なくとも1つは相関メッセージグループの第1のメッセージとして識別可能である行為と、
    前記相関メッセージグループのためのセッション指向通信チャネルを作成する行為と、
    前記相関メッセージグループの最後メッセージを受信する行為と、
    異なる相関メッセージグループの第1のメッセージを受信すると、異なるセッション指向通信チャネルを作成する行為とを備える、前記複数の相関メッセージをリソース効率のよいやり方で意図されるように受信し処理する方法を実施させるコンピュータ実行可能命令がそれ上に格納された1つまたは複数のコンピュータ読取り可能媒体を備えることを特徴とするコンピュータプログラム製品。
JP2006015456A 2005-02-04 2006-01-24 相関メッセージを、ネットワークを介して通信するための待機セッション Active JP4769585B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/050,990 2005-02-04
US11/050,990 US7421501B2 (en) 2005-02-04 2005-02-04 Queued sessions for communicating correlated messages over a network

Publications (2)

Publication Number Publication Date
JP2006216034A true JP2006216034A (ja) 2006-08-17
JP4769585B2 JP4769585B2 (ja) 2011-09-07

Family

ID=36390129

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006015456A Active JP4769585B2 (ja) 2005-02-04 2006-01-24 相関メッセージを、ネットワークを介して通信するための待機セッション

Country Status (6)

Country Link
US (1) US7421501B2 (ja)
EP (1) EP1694025B1 (ja)
JP (1) JP4769585B2 (ja)
KR (1) KR101247001B1 (ja)
CN (1) CN1816014B (ja)
AT (1) ATE526765T1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011113441A (ja) * 2009-11-30 2011-06-09 Fujitsu Ltd メッセージ分類用属性選択装置,メッセージ分類用属性選択プログラムおよびメッセージ分類用属性選択方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8094804B2 (en) 2003-09-26 2012-01-10 Avaya Inc. Method and apparatus for assessing the status of work waiting for service
US8738412B2 (en) 2004-07-13 2014-05-27 Avaya Inc. Method and apparatus for supporting individualized selection rules for resource allocation
US7502843B2 (en) * 2004-12-30 2009-03-10 Microsoft Corporation Server queuing system and method
GB0518416D0 (en) * 2005-09-09 2005-10-19 Standard Life Assurance Compan Improvements in and relating to service orientated architecture
US8554846B2 (en) * 2005-09-27 2013-10-08 Oracle International Corporation System and method for providing a messaging kernel
US7953973B2 (en) * 2006-12-14 2011-05-31 Radware Ltd. Systems, methods, and computer program products for passively routing secure socket layer (SSL) encoded network traffic
US7706368B2 (en) * 2007-04-06 2010-04-27 Research In Motion Limited System and method for correlating messages within a wireless transaction
US8954994B2 (en) * 2007-04-23 2015-02-10 Oracle International Corporation System and method for message service with unit-of-order
US8291432B2 (en) * 2010-12-01 2012-10-16 International Business Machines Corporation Providing invocation context to IMS service provider applications
CN102841840B (zh) * 2012-07-11 2015-09-09 山东大学 基于消息重排序和消息数目检验的消息日志恢复方法
US9092282B1 (en) * 2012-08-14 2015-07-28 Sprint Communications Company L.P. Channel optimization in a messaging-middleware environment
US9264338B1 (en) 2013-04-08 2016-02-16 Sprint Communications Company L.P. Detecting upset conditions in application instances
EP2811437A1 (en) * 2013-06-07 2014-12-10 Accenture Global Services Limited Computer system, computer-implemented method and computer program product for sequencing incoming messages for processing at an application
KR101516956B1 (ko) 2013-10-11 2015-05-04 에스케이텔레콤 주식회사 메시지 처리를 위한 단말 장치, 메시지 처리 방법 및 기록 매체
US9766985B1 (en) * 2014-10-09 2017-09-19 EMC IP Holding Company LLC Deviceless brokerless backup
FR3031261B1 (fr) * 2014-12-24 2017-01-13 Overkiz Procede de traitement de messages montants ou descendants applicatifs en provenance ou a destination d’une unite electronique de controle d’une installation domotique par un serveur
CN104731912B (zh) * 2015-03-24 2017-12-19 浪潮集团有限公司 一种消息中间件mq的消息传输方法和装置
US20190238605A1 (en) * 2018-01-31 2019-08-01 Salesforce.Com, Inc. Verification of streaming message sequence

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6446206B1 (en) * 1998-04-01 2002-09-03 Microsoft Corporation Method and system for access control of a message queue
JP2004295895A (ja) * 2003-03-27 2004-10-21 Microsoft Corp 2点間の保証および機能の構成が可能なメッセージ配信

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6301608B1 (en) * 1996-08-14 2001-10-09 At&T Corp. Method and apparatus providing personalized mailbox filters
JP3938824B2 (ja) * 1999-10-29 2007-06-27 松下電器産業株式会社 通信装置および通信方法
US20030217094A1 (en) * 2002-05-17 2003-11-20 Anthony Dean Andrews Correlation framework
US7493623B2 (en) * 2003-02-05 2009-02-17 Nokia Corporation System and method for identifying applications targeted for message receipt in devices utilizing message queues
US7370333B2 (en) * 2003-06-02 2008-05-06 Microsoft Corporation Efficient processing of a convoy workflow scenario in a message driven process
US7502843B2 (en) * 2004-12-30 2009-03-10 Microsoft Corporation Server queuing system and method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6446206B1 (en) * 1998-04-01 2002-09-03 Microsoft Corporation Method and system for access control of a message queue
JP2004295895A (ja) * 2003-03-27 2004-10-21 Microsoft Corp 2点間の保証および機能の構成が可能なメッセージ配信

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011113441A (ja) * 2009-11-30 2011-06-09 Fujitsu Ltd メッセージ分類用属性選択装置,メッセージ分類用属性選択プログラムおよびメッセージ分類用属性選択方法

Also Published As

Publication number Publication date
US20060177069A1 (en) 2006-08-10
US7421501B2 (en) 2008-09-02
ATE526765T1 (de) 2011-10-15
KR101247001B1 (ko) 2013-03-25
CN1816014B (zh) 2011-11-16
CN1816014A (zh) 2006-08-09
EP1694025B1 (en) 2011-09-28
JP4769585B2 (ja) 2011-09-07
KR20060089617A (ko) 2006-08-09
EP1694025A1 (en) 2006-08-23

Similar Documents

Publication Publication Date Title
JP4769585B2 (ja) 相関メッセージを、ネットワークを介して通信するための待機セッション
US9003053B2 (en) Message acceleration
US9379852B2 (en) Packet recovery method, communication system, information processing device, and program
US10430374B2 (en) Selective acknowledgement of RDMA packets
US10419329B2 (en) Switch-based reliable multicast service
US8503450B2 (en) TCP receiver acceleration
US9413652B2 (en) Systems and methods for path maximum transmission unit discovery
US11277350B2 (en) Communication of a large message using multiple network interface controllers
KR101201140B1 (ko) 요구-응답 전송 프로토콜들에 의한 신뢰성 있는 단방향메시징
US7953093B2 (en) TCP/IP reordering
JP2007202153A (ja) ネットワークプロセッサーのキュー管理装置及びその方法
US7536468B2 (en) Interface method, system, and program product for facilitating layering of a data communications protocol over an active message layer protocol
US20120002680A1 (en) Interruption, at least in part, of frame transmission
TW200537877A (en) Retransmission system and method for a transport offload engine
CN101778093A (zh) 基于udp协议的数据传输方法
US9043477B2 (en) Communication system, server, terminal, packet data transferring method, and program therefor
US20070291782A1 (en) Acknowledgement filtering
US20130346551A1 (en) Identification of a Protocol Used in a Message
US20070253335A1 (en) Computer system with black hole management
EP3319297B1 (en) Network interface device and host processing device
JP2006260543A (ja) データをネットワークに送信する方法及び装置並びにデータをネットワークから受信する方法及び装置
US11444886B1 (en) Out of order packet buffer selection
JP4384951B2 (ja) アクセスポイント管理装置およびアクセスポイントのソフトウェアバージョンアップ方法
WO2023222235A1 (en) Switch controller, sending controller and methods for use in switch controller and sending controller in reliable multicast communication
JPWO2016103568A1 (ja) パケット処理装置、方法、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110414

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: 20110614

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110620

R150 Certificate of patent or registration of utility model

Ref document number: 4769585

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140624

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

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

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