(57)【要約】【課題】  メッセージ・キューにおいてメッセージをマージする方法、システム、およびコンピュータ・プログラムを提供する。【解決手段】  本発明の実施例は、メッセージ・キューにおいてメッセージをマージするための方法が提供される。本方法は、ホスト・コンピューティング・プラットフォームのプロセッサによりメモリにおいて実行されるメッセージ・キュー・マネージャにおいて、メッセージ・キューに新しいメッセージを加えるという要求を受け取るステップを含む。本方法は、更に、新しいメッセージをメッセージ・キューにおける既存のメッセージに関連付ける関連付けキーを識別するステップと、識別された関連付けキーに対応する関連メッセージをメッセージ・キューにおいて見つけるステップとを含む。最後に、本方法は、メッセージ・キューにおける見つけられた関連メッセージと新しいメッセージをマージするステップを含む。【選択図】  図３
2011118895.tif 000002
【特許請求の範囲】
【請求項１】
メッセージング・キューにおいてメッセージをマージするための方法であって、
ホスト・コンピューティング・プラットフォームのプロセッサによりメモリにおいて実行されるメッセージ・キュー・マネージャにおいてメッセージ・キューに新しいメッセージを加えるという要求を受け取るステップと、
前記新しいメッセージを前記メッセージ・キューにおける既存のメッセージに関連付ける関連付けキーを識別するステップと、
識別された関連付けキーに対応する関連メッセージを前記メッセージ・キューにおいて見つけるステップと、
前記メッセージ・キューにおける見つけられた関連メッセージに前記新しいメッセージをマージするステップと、
を含む、方法。
【請求項２】
受け取られた要求に対してマージ・インジケータが指定されているかどうかを判断するステップと、
受け取られた要求に対してマージ・インジケータが指定されている場合だけ前記識別するステップ、前記見つけるステップ、および前記マージするステップを遂行するステップと、
前記受け取られた要求に対してマージ・インジケータが指定されてない場合、前記識別するステップ、前記見つけるステップ、および前記マージするステップを遂行することなく前記新しいメッセージを前記メッセージ・キューに格納するステップと、
を更に含む、請求項１に記載の方法。
【請求項３】
前記マージするステップは、
前記新しいメッセージおよび前記見つけられた関連メッセージに対するマージ・ルールをロードするステップと、
前記新しいメッセージおよび前記見つけられた関連メッセージの各々におけるデータに前記マージ・ルールを適用してマージ・データを生じさせるステップと、
前記メッセージ・キューにおける見つけられた関連メッセージを前記マージ・データでもって更新し、前記新しいメッセージを廃棄するステップと、
を含む、請求項１に記載の方法。
【請求項４】
前記マージするステップは、
前記新しいメッセージおよび前記見つけられた関連メッセージに対するマージ・ルールをロードするステップと、
前記新しいメッセージおよび前記見つけられた関連メッセージの各々におけるデータに前記マージ・ルールを適用してマージ・データを生じさせるステップと、
前記新しいメッセージを更新し、前記新しいメッセージを前記メッセージ・キューに格納し、前記メッセージ・キューから前記見つけられた関連メッセージを除去するステップと、
を含む、請求項１に記載の方法。
【請求項５】
メモリおよび少なくとも１つのプロセッサを含むホスト・コンピューティング・プラットフォームと、
前記ホスト・コンピューティング・プラットフォームに結合されたメッセージ・キューと、
前記メッセージ・キューに結合され、前記ホスト・コンピューティング・プラットフォームの前記メモリにおいて前記プロセッサにより実行されるメッセージ・キュー・マネージャと、
前記メッセージ・キュー・マネージャに結合されたメッセージ・マージ・モジュールと、を含み、
前記モジュールは、コンピュータのプロセッサによるメモリにおける実行時に、前記メッセージ・キュー・マネージャによって受け取られた新しいメッセージを前記メッセージ・キューに加えるという要求において、前記メッセージ・キューにおける既存のメッセージに前記新しいメッセージを関連付ける関連付けキーを識別し、前記識別された関連付けキーに対応する前記メッセージ・キューにおける関連メッセージを見つけ、前記メッセージ・キューにおける見つけられた関連メッセージと前記新しいメッセージをマージすることを可能ならしめるプログラム・コードを含む、
メッセージ・キューイング・データ処理システム。
【請求項６】
前記関連付けキーは前記新しいメッセージに対するメッセージ・ヘッダ内に配置される、請求項５に記載のシステム。
【請求項７】
前記関連付けキーは前記受け取られた要求に対するパラメータ内に配置される、請求項５に記載のシステム。
【請求項８】
前記関連付けキーは前記新しいメッセージの本体内に配置される、請求項５に記載のシステム。
【請求項９】
前記関連付けキーは前記メッセージ・キューの属性として配置される、請求項５に記載のシステム。
【請求項１０】
前記関連付けキーは環境変数である、請求項５に記載のシステム。
【請求項１１】
前記関連付けキーは前記メッセージ・キュー・マネージャのためのファイル内に配置される、請求項５に記載のシステム。
【請求項１２】
前記メッセージ・マージ・モジュールのプログラム・コードは、更に、前記新しいメッセージおよび前記見つけられた関連メッセージに対するマージ・ルールをロードすること、前記新しいメッセージおよび前記見つけられた関連メッセージの各々におけるデータに前記マージ・ルールを適用してマージ・データを生じさせること、および前記メッセージ・キューにおける前記見つけられた関連メッセージを前記マージ・データでもって更新し、前記新しいメッセージを廃棄することを可能ならしめる、請求項５に記載のシステム。
【請求項１３】
前記マージ・ルールは、前記新しいメッセージおよび前記見つけられた関連メッセージの各々におけるデータをマージするようにプログラムされた実行可能なスクリプトである、請求項１２に記載のシステム。
【請求項１４】
前記マージ・ルールは、前記新しいメッセージおよび前記見つけられた関連メッセージの各々におけるデータをマージするようにプログラムされた実行可能なプログラムである、請求項１２に記載のシステム。
【請求項１５】
メッセージング・キューにおいてメッセージをマージするためのコンピュータ・プログラムであって、
ホスト・コンピューティング・プラットフォームのプロセッサによりメモリにおいて実行されるメッセージ・キュー・マネージャにおいてメッセージ・キューに新しいメッセージを加えるという要求を、受け取るためのコンピュータ使用可能プログラム・コードと、
前記新しいメッセージを前記メッセージ・キューにおける既存のメッセージに関連付ける関連付けキーを識別するためのコンピュータ使用可能プログラム・コードと、
識別された関連付けキーに対応する関連メッセージを前記メッセージ・キューにおいて見つけるためのコンピュータ使用可能プログラム・コードと、
前記メッセージ・キューにおける見つけられた関連メッセージと前記新しいメッセージをマージするためのコンピュータ使用可能プログラム・コードと、
を含む、コンピュータ・プログラム。
【請求項１６】
受け取られた要求に対してマージ・インジケータが指定されているかどうかを判断するためのコンピュータ使用可能プログラム・コードと、
受け取られた要求に対してマージ・インジケータが指定されている場合だけ前記識別するという操作、前記見つけるという操作、および前記マージするという操作を遂行するためのコンピュータ使用可能プログラム・コードと、
前記受け取られた要求に対してマージ・インジケータが指定されてない場合、前記識別するという操作、前記見つけるという操作、および前記マージするという操作を遂行することなく前記新しいメッセージを前記メッセージ・キューに格納するためのコンピュータ使用可能プログラム・コードと、
を更に含む、請求項１５に記載のコンピュータ・プログラム。
【請求項１７】
前記マージするという操作を行うためのコンピュータ使用可能プログラム・コードは、
前記新しいメッセージおよび前記見つけられた関連メッセージに対するマージ・ルールをロードするためのコンピュータ使用可能プログラム・コードと、
前記新しいメッセージおよび前記見つけられた関連メッセージの各々におけるデータに前記マージ・ルールを適用してマージ・データを生じさせるためのコンピュータ使用可能プログラム・コードと、
前記メッセージ・キューにおける前記見つけられた関連メッセージを前記マージ・データでもって更新し、前記新しいメッセージを廃棄するためのコンピュータ使用可能プログラム・コードと、
を含む、請求項１５に記載のコンピュータ・プログラム。
【請求項１８】
前記マージするという操作を遂行するためのコンピュータ使用可能プログラム・コードは、
前記新しいメッセージおよび前記見つけられた関連メッセージに対するマージ・ルールをロードするためのコンピュータ使用可能プログラム・コードと、
前記新しいメッセージおよび前記見つけられた関連メッセージの各々におけるデータに前記マージ・ルールを適用してマージ・データを生じさせるためのコンピュータ使用可能プログラム・コードと、
前記新しいメッセージを更新し、前記新しいメッセージを前記メッセージ・キューに格納し、前記メッセージ・キューから前記見つけられた関連メッセージを除去するためのコンピュータ使用可能プログラム・コードと、
を含む、請求項１５に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メッセージ・キュー管理の分野に関し、特にメッセージ・キューにおける論理的に関連したメッセージのプログラマチック関連付けに関する。
【背景技術】
【０００２】
情報技術の分野では、メッセージ・キューはプロセス間通信またはスレッド間通信のために使用されるソフトウェア・エンジニアリング・コンポーネントである。そのコンポーネントは、メッセージが、メッセージ配送者により収納され且つメッセージが指定の受領者により取り出され得るキューを使用する。この点で、メッセージ・キューは、配送者と指定の受領者との間の非同期メッセージングを可能にする通信コンポーネントである。操作的には、メッセージ・キューは、参加者グループのための非同期通信が達成され得るよう、複数の配送者及び受領者をサポートし得る。
【０００３】
メッセージ・キューの非同期的性質は、多種多様な技術のための理想的なテクノロジ・カプラ（結合器）を提供する。特に、個別の技術がメッセージ・キューにアクセスし得る限り、個別の多種多様な技術がメッセージの受け渡しに従事し、それによって通信を可能にし得る。特に、メッセージ・キューは、そのメッセージ・キューを開き、そこに書き込み、そこから読み出し、それを閉じるためにアプリケーション・プログラム・インターフェイス（ＡＰＩ）を介して種々のメソッド呼出しを展開し得る。同様に各アプリケーションは、メッセージ・キューにメッセージを収納したり或いはメッセージ・キューからメッセージを取り出したりするために、一連のメソッド呼出しを起動するためのロジックを含み得る。特に、動作中、ＡＰＩは、要求時に、利用可能なメッセージを求めてメッセージ・キューをサーチし、それを要求元ロジックに返送し得る。
【０００４】
一般に、メッセージは、他のアプリケーションによって処理されることを目的に１つまたは複数のアプリケーションによってメッセージ・キューに収納される。メッセージは、それがメッセージ・キューに到着するときに処理されるか、または、その後の処理のために蓄積され得る。後者の場合、蓄積されたメッセージは、それが適切である場合、論理的に関連付けられ得る。同じ主題に関係するメッセージは、例えば、同じ口座上の金融業務に関係するメッセージ或いは同じ人物に対するコンタクト管理操作に関係するメッセージのような共通の主題によって論理的に関連付けられ得る。
【０００５】
典型的には、メッセージ・キューにおける論理的に関連したメッセージが或るアプリケーションによって処理される場合、メッセージ・キューにおける各メッセージは、メッセージ・キューにおける他のメッセージと無関係に処理される。この点で、メッセージ・キューにおける各メッセージがそのアプリケーションによって遂行されるべきトランザクションに関係する範囲内で、各トランザクションは、メッセージ・キューにおける残りの他のいずれのメッセージに対応する他のいずれのトランザクションにも無関係に、メッセージ・キューからの対応するメッセージの取り出しに応答して遂行される。それとは別に、アプリケーションは、論理的に関連したメッセージを識別するために、メッセージ・キューにおけるすべてのメッセージを事前処理することが可能であり、その識別された論理的に関連したメッセージのマージを行い、しかる後そのマージされたメッセージを処理することも可能である。
【０００６】
それにもかかわらず、メッセージ・キューにおけるメッセージが論理的に関連しているときでさえ、そのメッセージを個々に処理すること、または、論理的に関連したメッセージのマージを行って論理的関連について決した後、そのメッセージを処理することが依然としてアプリケーションの責任であるということを当業者はわかるであろう。いずれの状況でも、更なるコンピュータ処理は複雑さと処理時間とをアプリケーション・プログラムに加えることを必要とするであろう。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、メッセージ・キュー管理に関する従来技術の欠陥に対処し、メッセージ・キューにおけるメッセージ・マージのための新規な且つ非自明の方法、システム、およびコンピュータ・プログラムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の実施例では、メッセージ・キューにおいてメッセージ・マージングを行うための方法が提供される。本方法は、ホスト・コンピューティング・プラットフォームのプロセッサによりメモリにおいて実行されるメッセージ・キュー・マネージャにおいて、メッセージ・キューに新しいメッセージを加える要求を受け取るステップを含み得る。本方法は、更に、新しいメッセージをメッセージ・キューにおける既存のメッセージと関連付ける関連付けキーを識別するステップと、その識別された関連付けキーに対応する関連メッセージをそのメッセージ・キューにおいて見つけるステップとを含む。更に、本方法は、メッセージ・キューにおける見つけられた関連メッセージに新しいメッセージをマージするステップを含み得る。
【０００９】
本発明の別の実施例では、メッセージ・キューイング・データ処理システムが提供される。そのシステムは、メモリおよび少なくとも１つのプロセッサを含むホスト・コンピューティング・プラットフォームを含む。そのシステムは、更に、ホスト・コンピューティング・プラットフォームに結合されたメッセージ・キューと、そのメッセージ・キューに結合され、ホスト・コンピューティング・プラットフォームのメモリにおいてプロセッサにより実行されるメッセージ・キュー・マネージャとを含み得る。そのシステムは、更に、メッセージ・キュー・マネージャに結合されたメッセージ・マージ・モジュールを含む。そのモジュールは、コンピュータのプロセッサによるメモリにおける実行時に、メッセージ・キュー・マネージャによって受け取られた新しいメッセージをメッセージ・キューに加えるという要求において、メッセージ・キューにおける既存のメッセージと新しいメッセージを関連付ける関連付けキーを識別し、その識別された関連付けキーに対応する関連メッセージをメッセージ・キューにおいて見つけ、メッセージ・キューにおけるその見つけられた関連メッセージと新しいメッセージをマージすることを可能ならしめるプログラム・コードを含み得る。
【００１０】
本発明の更なる態様は、以下の説明において部分的に記述され、その説明から部分的に明らかであり、または、本発明を実施すればわかるであろう。本発明の諸態様は、「特許請求の範囲」に記載された要素およびその組み合わせによって実現および達成されるであろう。前述の一般的な記述および後述の詳細な記述の両方とも単に例示的及び説明的なものであり、本発明を限定するものではないということは当然である。
【図面の簡単な説明】
【００１１】
【図１】メッセージ・キューにおける待ち行列化されたメッセージを論理的にマージするためのプロセスの図解概略図である。
【図２】メッセージ・キューにおける待ち行列化されたメッセージを論理的にマージするように構成されたメッセージ・キューイング・データ処理システムの概略図である。
【図３】メッセージ・キューにおける待ち行列化されたメッセージを論理的にマージするためのプロセスを示すフローチャートである。
【発明を実施するための形態】
【００１２】
本発明の実施例は、論理的に関連付けられたメッセージ（「関連メッセージ」と呼ぶ）を自動マージするための方法、システム、およびコンピュータ・プログラムを提供する。本発明の実施例では、メッセージ・キュー内に収納するためのメッセージが受け取られる。その受け取られたメッセージをマージすべきかどうかに関する表示が、例えば、そのメッセージをメッセージ・キューに収納するという指示と共に含まれたパラメータを参照して、環境変数を通して、そのメッセージに対するメッセージ・ヘッダ内のデータまたはそのメッセージ自体に組み込まれたデータを参照して、決定され得る。受け取られたメッセージをマージすることが決定される場合、その受け取られたメッセージをメッセージ・キューにおける他のメッセージと関連付けるための関連付けキーが、メッセージ・ヘッダにおけるデータおよび／またはメッセージ・データを使ってその２つのメッセージ間の関連を設定するために使用され得る。このように、メッセージ・キューにおけるメッセージの数は、関連メッセージをマージすることによって減らすことが可能である。
【００１３】
さらに、図１は、メッセージ・キュー内の待ち行列メッセージを論理的にマージするためのプロセスを示す。図１に示されるように、１つまたは複数のアプリケーション１１０が、メッセージ・キュー１２０を利用してメッセージ・キュー１２０内のアプリケーション・メッセージ１４０Ａを交換し得る。キュー・マネージャ１３０は、アプリケーション１１０によるメッセージ・キュー１２０上へのアプリケーション１１０によるメッセージ１４０Ａの送付、およびアプリケーション１１０において処理するために、メッセージ・キュー１２０からのメッセージ１４０Ａの除去を管理し得る。アプリケーション１１０のうちの所与の１つがキュー・マネージャ１３０によるメッセージ・キュー１２０上へのメッセージ１４０Ｂの追加を要求するとき、キュー・マネージャ１３０は、メッセージ１４０Ｂが、メッセージ・キュー１２０に既に存在のメッセージ１４０Ａのうちの他の関連メッセージとマージされるべきであるかどうかを判断し得る。それが肯定される場合、キュー・マネージャ１３０は、メッセージ１４０Ｂに関連したメッセージ・キュー１２０におけるメッセージ１４０Ａの特定の１つを識別し得るし、キュー・マネージャジ１３０は、マージ・ルール１５０うちの選択された１つに基づいて、メッセージ１４０Ｂと、メッセージ１４０Ａのうちの関連したメッセージとのマージをも遂行し得る。
【００１４】
一旦マージ・ルール１５０の選択された１つが適用されると、メッセージ１４０Ｂの内容が、メッセージ・キューにおけるメッセージ１４０Ａの関連メッセージとマージされ、そうでない場合、メッセージ１４０Ｂは廃棄され得る。それとは別に、メッセージ１４０Ａのうちの関連メッセージの内容がメッセージ１４０Ｂとマージされ、メッセージ１４０Ａのうちの関連メッセージがメッセージ・キュー１２０から除去されて、廃棄され得る。更なる代替方法として、メッセージ１４０Ｂの内容およびメッセージ・キューにおけるメッセージ１４０Ａのうちの関連メッセージの内容が結合されて新しいメッセージにされ、メッセージ・キュー１２０に収納され得る。いずれの場合も、メッセージ１４０Ｂとメッセージ・キュー１２０におけるメッセージ１４０Ａのうちの関連メッセージとのマージは、不必要にアプリケーション１１０に負担を負わせることなく、キュー・マネージャ１３０によって遂行され得る。
【００１５】
図１に関連して説明したプロセスは、メッセージ・キューイング・データ処理システムにおいて具現化され得る。更に、図２は、メッセージ・キューにおいて待ち行列化されたメッセージを論理的にマージするように構成されたメッセージ・キューイング・データ処理システムの概略図である。そのシステムは、１つまたは複数のサーバ２１０を含み得るし、各サーバは、１つまたは複数のプロセッサ、メモリ、およびオペレーティング・システムを含み、サーバ２１０の各々は１つまたは複数のアプリケーション２２０の実行をホスティングする。１つまたは複数のアプリケーション２２０は、コンピュータ通信ネットワーク２４０上のエンド・ユーザ・クライアント・コンピューティング装置２３０を介してアクセスされ得る。さらに、サーバ２１０の個々のサーバが、コンピュータ通信ネットワーク２４０を介して通信可能に相互に結合され得る。
【００１６】
メモリおよび少なくとも１つのプロセッサを備えたホスト・コンピューティング・プラットフォーム２５０が、コンピュータ通信ネットワーク２４０を介してサーバ２１０に通信可能に結合され得る。ホスト・コンピューティング・プラットフォーム２５０は、メッセージ・キュー・マネージャ２８０によって管理されたメッセージ・キュー２６０のオペレーションをサポートし得る。この点に関して、メッセージ・キュー・マネージャ２８０は、ホスト・コンピューティング・プラットフォーム２５０の１つまたは複数のプロセッサによってメモリで実行され、且つコンピュータ通信ネットワーク２４０を介してアプリケーション２２０の異なるアプリケーションによるメッセージ・キュー２６０内のメッセージ２７０へのアクセスを管理するコンピュータ・プログラムであってもよい。更に、メッセージ・キュー２６０におけるメッセージ２７０の各々は、その分野では周知であるように、メッセージ・キュー２６０に関してメッセージ２７０の対応するメッセージを処理する方法を決定する際にメッセージ・キュー・マネージャ２８０による使用のために、メッセージの本体およびヘッダ部分において表わされた内容を含み得る。
【００１７】
メッセージ・マージ・モジュール２９０は、メッセージ・キュー・マネージャ２８０に結合されてもよく、或いはメッセージ・キュー・マネージャ２８０のコンポーネントであってもよい。メッセージ・マージ・モジュール２９０は、コンピュータのメモリにロードされている時間にプロセッサにより実行されるとき、メッセージ・キュー２６０におけるメッセージ２７０のうちの選択されたメッセージの論理的マージを管理することができるプログラム・コードを含み得る。この点に関して、メッセージ・マージ・モジュール２９０は、ホスト・コンピューティング・プラットフォーム２５０のメモリにおけるプログラム・コードとして、または、ホスト・コンピューティング・プラットフォーム２５０に直接にもしくはコンピュータ通信ネットワーク２４０を介して通信可能に結合された異なるコンピューティング・プラットフォームのメモリ内のプログラム・コードとして、実行され得る。
【００１８】
メッセージ・マージ・モジュール２９０のプログラム・コードは、それが、コンピュータのメモリにおいてプロセッサによって実行された時、メッセージ・キュー２６０にメッセージを収納するという、アプリケーション２２０による要求を識別し得る。それらの要求の各々に対して、そのプログラム・コードは、メッセージ・キュー２６０におけるメッセージ２７０のうちの既存の１つに関して、メッセージに対する論理的マージが望ましいかどうかを判断し得る。この判断は、メッセージのヘッダ、メッセージの本体、もしくはメッセージ・キュー２６０のための格納されたパラメータに格納されたデータ、メッセージ・キューそのもの、またはアプリケーション・プログラム・インターフェースによりパラメータとして送られたデータ、或いはメッセージ・マージ・モジュール２９０によりアクセス可能な環境変数として利用し得るデータ、に基づき得る。メッセージ・キュー２６０におけるメッセージ２７０のうちの既存の１つに関して論理的にマージされるべきメッセージに対応する各要求に対して、プログラム・コードは、メッセージ・キュー２６０におけるメッセージ２７０のうちの既存の１つを見つけ得るし、メッセージ２７０の見つけられた既存の１つ及び要求における対応するメッセージに対してマージ・ルールを適用し得る。最後に、プログラム・コードは各マージされたメッセージをメッセージ・キュー２６０に格納し得る。
【００１９】
メッセージ・マージ・モジュール２９０のオペレーションの更なる説明のために、図３は、メッセージ・キューにおける待ち行列メッセージを論理的にマージするプロセスを表わすフローチャートを示す。それは、ブロック３０５で始まり、メッセージ本体とメッセージ・ヘッダの両方を含み得るメッセージをアプリケーションが書き込む要求が受け取られる。その要求は、更に、メッセージがメッセージ・キューにおける既存のメッセージと論理的にマージされるべきであるかどうかの表示、および、それが肯定される場合、既存のメッセージに対応する関連付けキーのような１つまたは複数のパラメータを含み得る。しかし、本実施例の代替態様では、パラメータは、メッセージ・ヘッダの一部として、メッセージ本体の内容の一部として、メッセージ・キューの属性として、環境変数として、キュー・メッセージの内容として、或いは、ファイルまたはデータベースにおける内容として提供され得る。
【００２０】
ブロック３１０では、マージ・インジケータがある場合、そのマージ・インジケータがメッセージのためにロードされ得る。判定ブロック３１５では、そのメッセージに対して論理的マージが行われるかどうかが判断され得る。そのメッセージに対して論理的マージが行われない限り、ブロック３６０において、そのメッセージがメッセージ・キューに格納され、ブロック３６５においてプロセスが終了し得る。判断ブロック３１５において判断されるようにその論理的マージが行われることが選択される場合、ブロック３２０において、そのメッセージに対する関連付けキーがロードされ、ブロック３２５において、メッセージ・キューにおける関連メッセージが関連付けキーを用いて見つけられる。関連付けキーは、メッセージ・ヘッダの一部、メッセージ本体の内容の一部、メッセージ・キューの属性、環境変数、キュー・メッセージの内容、ファイルもしくはデータベースにおける内容、キュー・マネージャ属性、または、キュー・メッセージの一部のような、最初の要求のパラメータであってもよい。判断ブロック３３０では、関連付けキーに対する関連メッセージがメッセージ・キューにおいて見つかり得たかどうかが判断され得る。それが見つかり得ない場合、ブロック３６０において、メッセージはメッセージ・キューに格納され、ブロック３６５においてプロセスは終了し得る。それが見つかり得た場合、プロセスはブロック３３５を介して継続し得る。
【００２１】
ブロック３３５では、そのメッセージを、メッセージ・キューにおける見つけられた関連メッセージとマージするためにマージ・ルールがロードされ得る。マージ・ルールは、各メッセージにおける関係のあるデータに関する記述、およびその関係のあるデータを結合して単一のメッセージにする方法を含み得る。例えば、マージ・ルールは、マークアップ言語による各メッセージにおけるデータを相互にマッピングする、およびマージされたメッセージ内の或る位置にそのデータをマージするという指示を設け得る。別の例として、マージ・ルールは、２つのメッセージのデータを単一のメッセージにする物理的マージを行うための実行可能なスクリプトまたはプログラムであってもよい。マージ・ルールがメッセージごとに指定されるか、またはメッセージ・マージ・モジュールが特定のマージ・ルールを使用するように任意選択的に構成され得る。別のオプションとして、マージ・ルールは、メッセージが２つのメッセージのマージに起因した修正形式でキューにおける見つけられた関連メッセージを置換すべきものであるかどうか、または、見つけられた関連メッセージが、２つのメッセージのマージに起因した修正形式で更新されるべきものであるかどうかを指定し得る。
【００２２】
ブロック３４０では、それらのメッセージがマージ・ルールに従ってマージされ、判断ブロック３４５において、メッセージが、キューにおける見つけられた関連メッセージを、両メッセージのマージに起因した修正形式で置換すべきかどうかが判断され得るし、或いは、見つけられた関連メッセージが、両メッセージのマージに起因した修正形式で更新されるべきかどうかが判断され得る。前者の場合、ブロック３５５において、見つけられた関連メッセージがメッセージ・キューから除去され得るし、ブロック３６０において、メッセージのマージされた形式がメッセージ・キューに加えられ得る。後者の場合、ブロック３５０において、見つけられた関連メッセージが、マージされたデータでもって更新され、ブロック３６５においてプロセスが終了し得る。
【００２３】
当業者には明らかなように、本発明の諸態様は、システム、方法、またはコンピュータ・プログラムとして具体化され得る。従って、本発明の諸態様は、全体的にハードウェアの実施例、全体的にソフトウェアの実施例(ファームウェア、駐在ソフトウェア、マイクロコード等を含む)、または、本明細書では「回路」、「モジュール」、または「システム」と一般的に呼ばれ得る、ソフトウェアおよびハードウェアの態様を組み合わせた実施例の形式をとり得る。更に、本発明の諸態様は、コンピュータ可読プログラム・コードとして具現化されて１つまたは複数のコンピュータ可読媒体上に塔載されるコンピュータ・プログラムの形式をとり得る。
【００２４】
１つまたは複数のコンピュータ可読媒体の任意の組み合わせが利用可能である。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体であってもよい。例えば、コンピュータ可読記憶媒体は、例えば、電子的、磁気的、光学的、電磁気的、もしくは半導体システム、装置、またはデバイス、或いは上記のものの任意の適切な組み合わせであってもよいが、それらに限定されない。コンピュータ可読記憶媒体の更に特殊な例（限定的なリスト）は、下記のもの、即ち、１つまたは複数のワイヤを有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリ・メモリ（ＲＯＭ）、消去可能プログラマブル・リード・オンリ・メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ（ＣＤ−ＲＯＭ）、光学的記憶装置、磁気記憶装置、または上記のものの任意の適当な組み合わせを含むであろう。本明細書の記載に関して、コンピュータ可読記憶媒体は、命令実行システム、装置、またはデバイスによる使用のための、或いはそれらに関連した、プログラムを含有または記憶し得る任意の実体的媒体であってもよい。
【００２５】
コンピュータ可読信号媒体は、例えば、ベースバンドにおいてまたは搬送波の一部として、コンピュータ可読プログラム・コードを具現化した伝播データ信号を含み得る。そのような伝播信号は、電磁的信号、光学的信号、またはそれの任意の適切な組み合わせ含むが、それに限定されない任意の種々の形式をとり得る。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではなくて、命令実行システム、装置、またはデバイスによる使用のための、或いはそれらに関連した、プログラムを伝送、伝播、または搬送し得る任意のコンピュータ可読媒体であってもよい。
【００２６】
コンピュータ可読媒体上に具現化されたプログラム・コードは、無線、有線、光ファイバ・ケーブル、無線周波数等、または上記のものの任意の適切な組み合わせを含むが、それに限定されない任意の適切な媒体を使用して伝送され得る。本発明の諸態様のためのオペレーションを実行するためのコンピュータ・プログラム・コードは、オブジェクト指向プログラミング言語および通常の手続き型プログラミング言語を含む１つまたは複数のプログラミング言語の任意の組み合わせで書かれたものでもよい。プログラム・コードは、ユーザのコンピュータ上で全体的に、ユーザのコンピュータ上で部分的に、独立型のパッケージ・ソフトとして、ユーザのコンピュータ上で部分的におよびリモート・コンピュータで部分的に、またはリモート・コンピュータもしくはサーバ上で全体的に実行され得る。後述の説明では、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを介してユーザのコンピュータに接続され得るし、（例えば、インターネット・サービス・プロバイダを使ってインターネットを介して）外部コンピュータへの接続が行われ得る。
【００２７】
本発明の諸態様は、本発明の実施例に従って、方法、装置（システム）、およびコンピュータ・プログラムのフローチャートおよび／またはブロック図に関連して上述された。この点に関して、図におけるフローチャートおよびブロック図は、本発明の種々の実施例に従って、システム、方法、およびコンピュータ・プログラムの可能な実施態様のアーキテクチャ、機能、およびオペレーションを表わす。例えば、フローチャートまたはブロック図における各ブロックは、コードのモジュール、セグメント、または一部分を表わし得ており、それには特定された論理機能を実行するための一つまたは複数の実行可能命令を含んでいる。或る代替的な実施態様では、ブロックに記された機能が、図に記された順序から外れて生じ得る、ということにも留意すべきである。例えば、連続して示された２つのブロックが実際には実質的に同時に実行されることもあり、或いは、それらのブロックが時には関連の機能に依存して逆の順序で実行されることもある。更に、ブロック図および／またはフローチャートの各ブロック、並びにブロック図および／またはフローチャートにおける組み合わせが、指定された機能または行為を実行する特殊目的のハードウェア・ベースのシステム、または特殊目的のハードウェアおよびコンピュータ命令の組み合わせ、によって具現化され得る、ということにも留意すべきである。
【００２８】
更に、フローチャートおよび／またはブロック図の各ブロック、並びに、フローチャートおよび／またはブロック図におけるブロックの組み合わせがコンピュータ・プログラム命令によって実行され得るということも当然であろう。これらのコンピュータ・プログラム命令は、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供され、そのコンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行される命令が、フローチャートおよび／またはブロック図のブロックにおいて指定された機能／行為を具現化するための手段を形成するようなマシンを生じさせることも可能である。
【００２９】
これらのコンピュータ・プログラム命令は、コンピュータ可読媒体に格納された命令が、フローチャートおよび／またはブロック図のブロックにおいて指定された機能／行為を具現化する命令を含む製品を製造するよう、特定の方法で機能するべく、コンピュータ、他のプログラマブル・データ処理装置、または他の装置に指示し得るコンピュータ可読媒体に格納されてもよい。コンピュータ・プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置上で実行される命令が、フローチャートおよび／またはブロック図のブロックにおいて指定された機能／行為を具現化するためのプロセスを提供するよう、コンピュータ実施プロセスを生じさせるべく、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを遂行させるために、コンピュータ、他のプログラマブル装置、または他のデバイス上にロードされてもよい。
【００３０】
最後に、本明細書で使用された用語は、単に特定の実施例を説明することを目的とするものであり、本発明を限定することを意図するものではない。本明細書で使用された「含む」という用語は、上述の特徴、整数、ステップ、操作、要素および／またはコンポーネントの存在を指定するが、１つまたは複数の他の特徴、整数、ステップ、操作、要素、コンポーネントおよび／またはそれのグループの存在や追加を妨げない。
【００３１】
「特許請求の範囲」に記載されたすべての手段またはステップ、並びに機能要素の対応する構造、材料、行為、および均等物は、請求項において特定的に記載された要素と組み合わせてその機能を遂行するためのあらゆる構造、材料、または行為を含むことを意図される。本発明に関する記載は、図解および記述を目的として提示されたが、包括的であることまたは開示された形式の発明に限定されることを意図するものではない。本発明の技術的範囲および主旨から逸脱することのない多くの修正および変更が当業者には明らかであろう。本実施例は、本発明の原理および実用的な応用例を最もよく説明するために、および当業者が、意図された特定の用途に適するように種々の修正を具備した種々の実施例に関して本発明を理解することを可能にするために、選択および記述された。
【００３２】
以上のように、本発明を詳細に且つ実施例を参照して説明したが、「特許請求の範囲」において定義された本発明の技術的範囲から逸脱することなく修正および変更することが可能である、ということは明らかであろう。
【図１】
2011118895.tif 000003
【図２】
2011118895.tif 000004
【図３】
2011118895.tif 000005