(57)【要約】【課題】メッセージ紐付け処理で用いるメッセージパターンを自動生成する。【解決手段】本方法では、トランザクションを特定するための紐付けキーを各々有する複数のメッセージを順次受信し、メッセージパターンと紐付けキーとを用いて受信メッセージをトランザクション別に分類し、受信メッセージが属するトランザクションに係るメッセージの系列と各メッセージパターンとを比較し、メッセージパターンのいずれかと合致した際に、受信メッセージが属するトランザクションのIDと当該トランザクションに係るメッセージに含まれる紐付けキーとを含むレコードを記憶部に格納する。そして、所定のタイミングで、未分類メッセージに含まれる紐付けキーを基に記憶部を探索して同一紐付けキーを含むレコードを特定し、特定レコードに係るトランザクションに対応するメッセージパターンに、未分類メッセージを追加することにより、新たなメッセージパターンを生成する。【選択図】図５
2010067048.tif 000002
【特許請求の範囲】
【請求項１】
トランザクションを特定するための紐付けキーワードを各々有する複数のメッセージを順次受信する受信ステップと、
前記メッセージを受信する毎に、メッセージパターンを格納するメッセージパターン格納部に格納されている前記メッセージパターンと前記紐付けキーワードとを用いて、受信した前記メッセージを前記トランザクション別に分類する分類処理を実施し、前記メッセージパターン格納部に格納されている各前記メッセージパターンと、受信した前記メッセージが属する前記トランザクションに係るメッセージの系列とを比較して、受信した前記メッセージによって、受信した前記メッセージが属する前記トランザクションに係るメッセージの系列が、前記メッセージパターン格納部に格納されている前記メッセージパターンのいずれかと合致するという条件を満たしたか判定する紐付け完了判定ステップと、
前記紐付け完了判定ステップにおいて前記条件を満たしたと判定された場合、受信した前記メッセージが属する前記トランザクションの識別子と、当該トランザクションに係るメッセージに含まれる前記紐付けキーワードとを含むレコードを生成し、トランザクション格納部に格納する格納ステップと、
所定のタイミングにて、前記受信ステップにおいて受信した前記メッセージのうち、前記分類処理においていずれの前記トランザクションにも分類されなかった未分類メッセージの各々について、当該未分類メッセージに含まれる前記紐付けキーワードを基に前記トランザクション格納部を探索して同一の紐付けキーワードを含む前記レコードを特定し、当該未分類メッセージの識別子を、特定した前記レコードに係る前記トランザクションである紐付き候補トランザクションに対応して紐付け候補リスト格納部に格納する紐付き候補特定ステップと、
各前記紐付き候補トランザクションについて、前記メッセージパターン格納部に格納され且つ当該紐付き候補トランザクションに対応する前記メッセージパターンに、当該紐付き候補トランザクションに対応して前記紐付け候補リスト格納部に格納されている前記未分類メッセージを追加することにより、新たなメッセージパターンを生成し、前記メッセージパターン格納部に格納するメッセージパターン生成ステップと、
をコンピュータに実行させるためのメッセージパターン生成プログラム。
【請求項２】
前記メッセージパターン格納部が、前記メッセージパターンの出現回数をさらに格納し、
前記格納ステップが、
前記紐付け完了判定ステップにおいて前記条件を満たしたと判定された場合、受信した前記メッセージが属する前記トランザクションに係るメッセージの系列に合致した前記メッセージパターンの前記出現回数をインクリメントするステップ
を含み、
所定のタイミングにて、前記出現回数が所定基準未満である前記メッセージパターンを前記メッセージパターン格納部から削除するステップ
をさらにコンピュータに実行させるための請求項１記載のメッセージパターン生成プログラム。
【請求項３】
前記メッセージパターン生成ステップが、
前記新たなメッセージパターンの識別子を前記派生メッセージパターンの識別子として、前記新たなメッセージパターンの基となった前記メッセージパターンに対応して前記メッセージパターン格納部に格納するステップ
を含み、
前記紐付け完了判定ステップにおいて前記条件を満たしたと判定された際に、受信した前記メッセージが属する前記トランザクションに係るメッセージの系列に合致した前記メッセージパターンに対応して前記メッセージパターン格納部に前記派生メッセージパターンの識別子が格納されている場合には、前記派生メッセージパターンを比較対象として前記紐付け判定ステップを実施する再判定ステップ
をさらにコンピュータに実行させ、
前記再判定ステップの後に、前記格納ステップを実行させる
ことを特徴とする請求項１又は２記載のメッセージパターン生成プログラム。
【請求項４】
トランザクションを特定するための紐付けキーワードを各々有する複数のメッセージを順次受信する受信ステップと、
前記メッセージを受信する毎に、メッセージパターンを格納するメッセージパターン格納部に格納されている前記メッセージパターンと前記紐付けキーワードとを用いて、受信した前記メッセージを前記トランザクション別に分類する分類処理を実施し、前記メッセージパターン格納部に格納されている各前記メッセージパターンと、受信した前記メッセージが属する前記トランザクションに係るメッセージの系列とを比較して、受信した前記メッセージによって、受信した前記メッセージが属する前記トランザクションに係るメッセージの系列が、前記メッセージパターン格納部に格納されている前記メッセージパターンのいずれかと合致するという条件を満たしたか判定する紐付け完了判定ステップと、
前記紐付け完了判定ステップにおいて前記条件を満たしたと判定された場合、受信した前記メッセージが属する前記トランザクションの識別子と、当該トランザクションに係るメッセージに含まれる前記紐付けキーワードとを含むレコードを生成し、トランザクション格納部に格納するステップと、
所定のタイミングにて、前記受信ステップにおいて受信した前記メッセージのうち、前記分類処理においていずれの前記トランザクションにも分類されなかった未分類メッセージの各々について、当該未分類メッセージに含まれる前記紐付けキーワードを基に前記トランザクション格納部を探索して同一の紐付けキーワードを含む前記レコードを特定し、当該未分類メッセージの識別子を、特定した前記レコードに係る前記トランザクションである紐付き候補トランザクションに対応して紐付け候補リスト格納部に格納するステップと、
各前記紐付き候補トランザクションについて、前記メッセージパターン格納部に格納され且つ当該紐付き候補トランザクションに対応する前記メッセージパターンに、当該紐付き候補トランザクションに対応して前記紐付け候補リスト格納部に格納されている前記未分類メッセージを追加することにより、新たなメッセージパターンを生成し、前記メッセージパターン格納部に格納するステップと、
を含み、コンピュータにより実行されるメッセージパターン生成方法。
【請求項５】
トランザクションを特定するための紐付けキーワードを各々有する複数のメッセージを順次受信し、前記メッセージを受信する毎に、メッセージパターンを格納するメッセージパターン格納部に格納されている前記メッセージパターンと前記紐付けキーワードとを用いて、受信した前記メッセージを前記トランザクション別に分類する分類処理を実施し、前記メッセージパターン格納部に格納されている各前記メッセージパターンと、受信した前記メッセージが属する前記トランザクションに係るメッセージの系列とを比較して、受信した前記メッセージによって、受信した前記メッセージが属する前記トランザクションに係るメッセージの系列が、前記メッセージパターン格納部に格納されている前記メッセージパターンのいずれかと合致するという条件を満たしたか判定し、前記条件を満たしたと判定された場合、受信した前記メッセージが属する前記トランザクションの識別子と、当該トランザクションに係るメッセージに含まれる前記紐付けキーワードとを含むレコードを生成し、トランザクション格納部に格納する紐付けエンジン手段と、
所定のタイミングにて、前記紐付けエンジン手段において受信した前記メッセージのうち、前記分類処理においていずれの前記トランザクションにも分類されなかった未分類メッセージの各々について、当該未分類メッセージに含まれる前記紐付けキーワードを基に前記トランザクション格納部を探索して同一の紐付けキーワードを含む前記レコードを特定し、当該未分類メッセージの識別子を、特定した前記レコードに係る前記トランザクションである紐付き候補トランザクションに対応して紐付け候補リスト格納部に格納し、各前記紐付き候補トランザクションについて、前記メッセージパターン格納部に格納され且つ当該紐付き候補トランザクションに対応する前記メッセージパターンに、当該紐付き候補トランザクションに対応して前記紐付け候補リスト格納部に格納されている前記未分類メッセージを追加することにより、新たなメッセージパターンを生成し、前記メッセージパターン格納部に格納するメッセージパターン生成手段と、
を有するメッセージパターン生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、メッセージの紐付け処理で用いるメッセージパターンを自動生成する分野の技術に関する。
【背景技術】
【０００２】
例えば電子商取引など複数のサーバを有するシステムでは、クライアントからのリクエストを受け取ると、サーバ間でメッセージが交換され、処理が進行する。例えば図１に電子商取引システムの一例を示す。図１に示すように、電子商取引システムでは、Ｗｅｂサーバで受信されたリクエスト毎に、当該リクエストに必要となる処理をＡＰ（アプリケーション）サーバに要求して処理結果を得たり、リクエストに必要なＤＢ参照・更新などをＤＢサーバに要求して処理結果を得たりして、サーバ間で複数のメッセージを交換して処理が行われてゆく。また、サーバ間で交換されたメッセージのログを収集し、収集したメッセージのログは、システムの挙動監視などに用いられる。なお、１リクエストの応答に必要なメッセージについては、メッセージに含まれるキーワード等によって１つのトランザクションとして認識される。
【特許文献１】特開平１１−５３３２３号公報
【特許文献２】特開平５−６１６９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
例えば、メッセージをトランザクション毎に分類し、さらにトランザクションに係るメッセージを取り揃える処理（以下、メッセージ紐付け処理と呼ぶ）を行う場合において、トランザクション種別毎のメッセージパターンを用いて、紐付けが完了したか否か（すなわち、トランザクションに係るメッセージが揃ったか否か）を判定する方式が考えられる。
【０００４】
しかし、この方式では、メッセージパターンを予め定義しておく必要があるが、システム運用後に判明するようなトランザクションもあり、メッセージパターンを全て定義することは困難である。なお、この方式では、メッセージパターンとして定義されていないトランザクションが実行されると、当該トランザクションに係るメッセージが揃ったかを正しく判定できない。また、従来技術では、メッセージ紐付け処理で用いるメッセージパターンを自動生成するような技術は存在しない。
【０００５】
従って、本技術の目的は、メッセージ紐付け処理で用いるメッセージパターンを自動生成することである。
【課題を解決するための手段】
【０００６】
本メッセージパターン生成方法は、トランザクションを特定するための紐付けキーワードを各々有する複数のメッセージを順次受信する受信ステップと、メッセージを受信する毎に、メッセージパターンを格納するメッセージパターン格納部に格納されているメッセージパターンと紐付けキーワードとを用いて、受信したメッセージをトランザクション別に分類する分類処理を実施し、メッセージパターン格納部に格納されている各メッセージパターンと、受信したメッセージが属するトランザクションに係るメッセージの系列とを比較して、受信したメッセージによって、受信したメッセージが属するトランザクションに係るメッセージの系列が、メッセージパターン格納部に格納されているメッセージパターンのいずれかと合致するという条件を満たしたか判定する紐付け完了判定ステップと、紐付け完了判定ステップにおいて上記条件を満たしたと判定された場合、受信したメッセージが属するトランザクションの識別子と、当該トランザクションに係るメッセージに含まれる紐付けキーワードとを含むレコードを生成し、トランザクション格納部に格納するステップと、所定のタイミングにて、受信ステップにおいて受信したメッセージのうち、分類処理においていずれのトランザクションにも分類されなかった未分類メッセージの各々について、当該未分類メッセージに含まれる紐付けキーワードを基にトランザクション格納部を探索して同一の紐付けキーワードを含むレコードを特定し、当該未分類メッセージの識別子を、特定したレコードに係るトランザクションである紐付き候補トランザクションに対応して紐付け候補リスト格納部に格納するステップと、各紐付き候補トランザクションについて、メッセージパターン格納部に格納され且つ当該紐付き候補トランザクションに対応するメッセージパターンに、当該紐付き候補トランザクションに対応して紐付け候補リスト格納部に格納されている未分類メッセージを追加することにより、新たなメッセージパターンを生成し、メッセージパターン格納部に格納するステップとを含む。
【発明の効果】
【０００７】
メッセージ紐付け処理で用いるメッセージパターンを自動生成することができる。
【発明を実施するための最良の形態】
【０００８】
まず、本実施の形態の前提となる、メッセージ紐付け処理について説明する。例えば、図２に示すようなメッセージ群がサーバ間でやりとりされたものとして説明する。図２の例では、メッセージ０００、メッセージ００１、メッセージ００２及びメッセージ００５は、tidという共通するタグを有し且つtidの値「tran0」が同一のため、同一のトランザクションに係るメッセージとして認識できる。一方、メッセージ００３及びメッセージ００４についてはtidを有していないので、この点からするとメッセージ００１等と同一のトランザクションに係るメッセージでないと判断される。しかし、メッセージ００３及びメッセージ００４とメッセージ００５とはsidという共通のタグを有しており且つsidの値「sess0」が同一であるので、メッセージ００３及びメッセージ００４とメッセージ００５は、同一のトランザクションに係るメッセージであると判断できる。同様に、メッセージ０１０、メッセージ０１１、メッセージ０１２及びメッセージ０１５は、tidという共通するタグを有し且つtidの値「tran1」が同一のため、同一のトランザクションに係るメッセージとして認識できる。また、メッセージ０１３及びメッセージ０１４についてはtidを有していないが、メッセージ０１５と共通するsidというタグを有しており且つsidの値「sess0」が同一であるので、メッセージ０１３及びメッセージ０１４とメッセージ０１５は、同一のトランザクションに係るメッセージであると判断できる。
【０００９】
なお、例えば図３に示すように、トランザクション種別によって、メッセージの系列はパターン化されており、既知のパターンについてはメッセージパターンとして予め定義されているものとする。そして、オンラインでのメッセージ紐付け処理においては、メッセージパターンのいずれかと一致したかを判定し、いずれかのメッセージパターンと一致した場合には、トランザクションに係るメッセージが揃ったものとみなし、紐付け完了と判断される。従って、図２において、メッセージ０００乃至メッセージ００５を紐付けた時点でメッセージパターン（トランザクション種別「Order」）と一致し、紐付け完了と判断される。そのため、メッセージ００５とメッセージ０１５とは、sidという共通のタグを有し且つsidの値「sess0」が同一であるが、メッセージ００５とメッセージ０１５とは別のトランザクションとして紐付けられる。
【００１０】
一方で、このようなメッセージ紐付け処理では、メッセージパターンとして定義されていないトランザクションについては、紐付け完了を正しく判定できない。例えば図４に示すように、未知のトランザクションが実行された場合、ここでは、Ｍｓｇ１からＭｓｇ５までのメッセージを紐付けるべきである。しかし、ここで、最初のメッセージがＭｓｇ１であり且つ最後のメッセージがＭｓｇ４であるメッセージパターン（例えばパターンＰ）が定義されていると、Ｍｓｇ１乃至Ｍｓｇ４を紐付けた時点でパターンＰと一致し、紐付けが完了したものと判定され、Ｍｓｇ５はいつまで経っても紐付かなくなってしまう。
【００１１】
そこで、本実施の形態では、未紐付けメッセージ（上の例ではＭｓｇ５）の紐付く可能性のあるトランザクションを探索し、紐付く可能性のあるトランザクションに対応するメッセージパターン（上の例ではパターンＰ）に未紐付けメッセージを追加することにより、新たなメッセージパターン（パターンＰ’）を自動生成する。そして、メッセージ紐付け処理においては、あるメッセージパターン（パターンＰ）と一致しても、当該メッセージパターンから派生した派生メッセージパターン（パターンＰ’）が存在する場合には、紐付け完了とは判断せず、派生メッセージパターンと一致することとなるかを確認する。以下、本技術の一実施の形態に係るシステムを説明する。
【００１２】
まず、図５に本実施の形態に係るシステム構成図を示す。本実施の形態における主要な処理を実施する紐付け処理装置３は、例えば社内ＬＡＮ（Local Area Network）のようなネットワーク１を介してメッセージ採取装置５と接続されている。メッセージ採取装置５は、電子商取引システム５００内に設けられており、同じく電子商取引システム５００内に含まれるＷｅｂサーバ、ＡＰサーバ、ＤＢサーバなど（図示せず）のサーバ間で交換されたメッセージを採取するようになっている。なお、メッセージを採取する処理については、従来と同様であるため、ここでは説明は省略する。
【００１３】
紐付け処理装置３は、後で説明するメッセージパターンテーブルを格納するメッセージパターンテーブル格納部３１と、メッセージ採取装置５から受信したメッセージとメッセージパターンテーブル格納部３１に格納されているメッセージパターンとを用いてメッセージ紐付け処理を実施する紐付けエンジン３２と、紐付けエンジン３２によるメッセージ紐付け処理の結果と後で説明するトランザクションテーブルとを格納する紐付け結果格納部３３と、紐付けエンジン３２によるメッセージ紐付け処理で紐付かなかった未紐付けメッセージを格納する未紐付けメッセージ格納部３４と、紐付け結果格納部３３及び未紐付けメッセージ格納部３４に格納されているデータに基づき、後で説明する紐付け候補リストテーブルを生成したり、メッセージパターンを生成したりするメッセージパターン生成部３５と、メッセージパターン生成部３５により生成された紐付け候補リストテーブルを格納する紐付け候補リストテーブル格納部３６と、メッセージパターンテーブル格納部３１に格納されているメッセージパターンテーブルを周期的にチェックする判定部３７とを有する。
【００１４】
図６にメッセージパターンテーブル格納部３１に格納されるメッセージパターンテーブルの一例を示す。図６の例では、メッセージパターンテーブルには、メッセージパターンのＩＤの列と、トランザクション種別（TranType）の列と、条件の列と、カウンタｃｎｔの列と、派生メッセージパターンの列と、関連メッセージパターンの列と、候補フラグ（０：確定済み／１：候補）の列とが含まれる。条件の列には、当該メッセージパターンに関する条件（例えば、最初のメッセージは文字列「Ｘ＝ＡＢＣ」を含み且つ最後のメッセージは文字列「Ｙ＝ＤＥＦＧ」を含む等）が設定される。カウンタｃｎｔの列には、当該メッセージパターンの出現回数が設定される。派生メッセージパターンの列には、当該メッセージパターンから派生したメッセージパターンのパターンＩＤが設定される。また、例えば図７に示すように、本実施の形態では、未紐付けメッセージ（Ｍｓｇ５）と紐付く可能性のあるトランザクションが複数存在した場合（ｔｒａｎ１及びｔｒａｎ２）、紐付く可能性のある複数のトランザクションの各々に対応するメッセージパターン（Ｐ０１及びＰ０２）に、未紐付けメッセージを追加して新たなメッセージパターン（Ｐ１１及びＰ１２）を生成することとなる。なお、新たなメッセージパターンを生成する処理については、後で詳細に説明する。本実施の形態では、上記のように新たなメッセージパターンが複数生成された場合に、あるメッセージパターンから見て、他のメッセージパターンのことを関連メッセージパターンと呼ぶ。すなわち、図７の例では、Ｐ１１から見ると、Ｐ１２が関連メッセージパターンであり、Ｐ１２から見ると、Ｐ１１が関連メッセージパターンである。関連メッセージパターンの列には、上記のような関連メッセージパターンのパターンＩＤが設定される。また、図７の例では、Ｐ１１及びＰ１２のうち、いずれか一方は実在するメッセージパターンであるが、他方は実在しないメッセージパターンとなる。そこで、本実施の形態では、新たに生成したメッセージパターンについて、候補フラグの列に「１」を設定し、当該メッセージパターンが実在することが確認できたら候補フラグの列を「０」に設定する。なお、メッセージパターンが実在するか否かを確認する処理については、後で詳細に説明する。
【００１５】
図８に紐付け結果格納部３３に格納されるトランザクションテーブルの一例を示す。図８の例では、トランザクションテーブルには、トランザクションのＩＤ（TranID）の列と、トランザクション開始時刻（T_start）の列と、トランザクション完了時刻（T_end）の列と、紐付けキーワード（Keyword）の列と、メッセージパターンのパターンＩＤ（PatternID）の列とが含まれる。トランザクション開始時刻の列には、当該トランザクションに係るメッセージのうち、最初のメッセージのタイムスタンプが設定される。トランザクション完了時刻の列には、当該トランザクションに係るメッセージのうち、最後のメッセージのタイムスタンプが設定される。パターンＩＤの列には、メッセージパターンテーブルに格納されているメッセージパターンのうち、当該トランザクションに対応するメッセージパターンのパターンＩＤが設定される。
【００１６】
図９に紐付け候補リストテーブル格納部３６に格納される紐付け候補リストテーブルの一例を示す。図９の例では、紐付け候補リストテーブルには、トランザクションのＩＤ（TranID）の列と、第１紐付け候補リストの列と、第２紐付け候補リストの列とが含まれる。後で説明する紐付け候補リストテーブル生成処理において、未紐付けメッセージの紐付く可能性のあるトランザクションが一意に特定された場合には、当該未紐付けメッセージのメッセージＩＤを、紐付く可能性のあるトランザクションに対応する第１紐付け候補リストに設定する。一方、未紐付けメッセージの紐付く可能性のあるトランザクションが複数存在する場合には、当該未紐付けメッセージのメッセージＩＤを、紐付く可能性のある複数のトランザクションの各々に対応する第２紐付け候補リストに設定する。
【００１７】
次に、図１０を用いて、図５に示した紐付け処理装置３の処理概要を説明する。まず、紐付けエンジン３２は、メッセージ採取装置５から順次メッセージを受信する（図１０：ステップ（１））。そして、紐付けエンジン３２は、メッセージ採取装置５からメッセージを受信する毎に、メッセージパターンテーブルを用いてメッセージ紐付け処理を実施する（ステップ（２））。なお、受信したメッセージによって、いずれかのメッセージパターンと一致した場合には、当該メッセージパターンのカウンタｃｎｔをカウントアップする。そして、トランザクションに係るメッセージが揃ったと判定された場合には、紐付けエンジン３２は、トランザクションに係るメッセージを紐付け結果として紐付け結果格納部３３に格納する（ステップ（３））。また、紐付けエンジン３２は、当該紐付け結果に対応するレコードをトランザクションテーブルに追加する。また、紐付けエンジン３２は、所定のタイミングにて、メッセージ紐付け処理において紐付かなかったメッセージを未紐付けメッセージとして未紐付けメッセージ格納部３４に格納する（ステップ（４））。
【００１８】
そして、メッセージパターン生成部３５は、所定のタイミングにて、未紐付けメッセージ格納部３４から未紐付けメッセージを抽出し、紐付け結果格納部３３に格納されているトランザクションテーブルを参照して、紐付け候補リストテーブルを生成し、紐付け候補リストテーブル格納部３６に格納する（ステップ（５））。その後、メッセージパターン生成部３５は、紐付け候補リストテーブルとトランザクションテーブルとメッセージパターンテーブルとに基づき、新たなメッセージパターンを生成し、メッセージパターンテーブル格納部３１に格納する（ステップ（６））。
【００１９】
なお、ステップ（２）乃至ステップ（６）の処理は繰り返し実行させることで、新たなメッセージパターンを追加すると共に、実在するメッセージパターンのカウンタｃｎｔがカウントアップされることとなる。
【００２０】
そして、判定部３７が、所定のタイミングにて、メッセージパターンテーブルをチェックする（ステップ（７））。例えば、判定部３７は、カウンタｃｎｔが０であるメッセージパターンをメッセージパターンテーブルから削除する。また、カウンタｃｎｔが０でなく、関連メッセージパターンが設定されているメッセージパターンがある場合には、当該メッセージパターンと関連メッセージパターンとのうち、カウンタｃｎｔが最大となるメッセージパターン以外のメッセージパターンをメッセージパターンテーブルから削除する。これにより、実在しないメッセージパターンについては、メッセージパターンテーブルから削除することができる。
【００２１】
次に、図１０のような処理を実施するための紐付け処理装置３の処理をより詳細に説明する。まず、図１０に示したステップ（５）及びステップ（６）の処理の詳細を図１１乃至図１８を用いて説明する。なお、図８に示したトランザクションテーブルが紐付け結果格納部３３に格納されているものとし、未紐付けメッセージが未紐付けメッセージ格納部３４に格納されているものとする。紐付け処理装置３は、定期的又は任意のタイミングにて、図１１に示すような処理を実施する。まず、メッセージパターン生成部３５が、紐付け結果格納部３３と未紐付けメッセージ格納部３４とに格納されているデータを用いて、紐付け候補リストテーブル生成処理を実施する（図１１：ステップＳ１）。
【００２２】
紐付け候補リストテーブル生成処理については図１２乃至図１５を用いて説明する。メッセージパターン生成部３５は、未紐付けメッセージ格納部３４において、未処理の未紐付けメッセージを特定する（図１２：ステップＳ４１）。そして、メッセージパターン生成部３５は、特定未紐付けメッセージから紐付けキーワード及びタイムスタンプを抽出し、一旦記憶装置に格納する（ステップＳ４３）。
【００２３】
そして、メッセージパターン生成部３５は、抽出した紐付けキーワードを基に紐付け結果格納部３３を探索し、特定未紐付けメッセージと紐付く可能性のあるトランザクションが存在するか判断する（ステップＳ４５）。具体的には、トランザクションテーブル及びメッセージパターンテーブルに基づき、候補フラグが０に設定されているメッセージパターンによって紐付けが完了したと判定されたトランザクションであって、抽出した紐付けキーワードと同一の紐付けキーワードを含むトランザクションが存在するか判断する。特定未紐付けメッセージと紐付く可能性のあるトランザクションが存在しないと判断した場合（ステップＳ４５：Ｎｏルート）、ステップＳ５３の処理に移行する。
【００２４】
一方、特定未紐付けメッセージと紐付く可能性のあるトランザクションが存在すると判断した場合（ステップＳ４５：Ｙｅｓルート）、メッセージパターン生成部３５は、紐付く可能性のあるトランザクションを一意に特定可能であるか判断する（ステップＳ４７）。具体的には、以下で説明する３つのケースのいずれに該当するかを判断し、第１及び第２のケースに該当する場合には、紐付く可能性のあるトランザクションを一意に特定可能であると判断し、第３のケースに該当する場合には、紐付く可能性のあるトランザクションを一意に特定できないと判断する。
【００２５】
第１のケースとは、図１３に示すように、未紐付けメッセージ（Ｍｓｇ１）に含まれる紐付けキーワードから、紐付く可能性のあるトランザクションを一意に特定できるケースである。例えば、図１３では、紐付けキーワード「tid1」は、ＩＤ「tran0」のトランザクションにのみ含まれ、ＩＤ「tran0」のトランザクションを、紐付く可能性のあるトランザクションとして一意に特定できる。
【００２６】
また、第２のケースとは、図１４（ａ）及び（ｂ）に示すように、未紐付けメッセージ（Ｍｓｇ４及びＭｓｇ５）に含まれる紐付けキーワードからは、紐付く可能性のあるトランザクションを一意に特定できないが、タイムスタンプを考慮に入れると一意に特定できるケースである。例えば、図１４（ａ）では、紐付けキーワード「sess0」は、ＩＤ「tran0」のトランザクションとＩＤ「tran1」のトランザクションとに含まれるため、紐付く可能性のあるトランザクションを一意に特定できない。しかし、２つのトランザクションのタイムスタンプを比較すると、紐付けキーワード「sess0」は、t1以前は、ＩＤ「tran0」のトランザクションの紐付けキーワードであり、t2以降は、ＩＤ「tran1」のトランザクションの紐付けキーワードであることが分かる。ここでは、t2＜t4＜t5（t4はＭｓｇ４のタイムスタンプ、t5はＭｓｇ５のタイムスタンプ）であるから、ＩＤ「tran1」のトランザクションを、紐付く可能性のあるトランザクションとして一意に特定できる。
【００２７】
さらに、第３のケースとは、図１５に示すように、タイムスタンプを考慮しても、紐付く可能性のあるトランザクションを一意に特定できないケースである。例えば、図１５では、紐付けキーワード「sess0」は、ＩＤ「tran0」のトランザクションとＩＤ「tran1」のトランザクションとに含まれるため、紐付く可能性のあるトランザクションを一意に特定できない。さらに、t1からt2までの間は、紐付けキーワード「sess0」がいずれのトランザクションの紐付けキーワードとなるかは特定することができない。ここでは、t1＜t＜t2（tは未紐付けメッセージのタイムスタンプ）であるから、ＩＤ「tran0」のトランザクションとＩＤ「tran1」のトランザクションとの両方に紐付く可能性があるものと判断される。
【００２８】
そして、紐付く可能性のあるトランザクションを一意に特定可能であると判断した場合（ステップＳ４７：Ｙｅｓルート）、メッセージパターン生成部３５は、紐付く可能性のあるトランザクションに対応する第１紐付け候補リストに、特定未紐付けメッセージのメッセージＩＤを追加する（ステップＳ４９）。なお、紐付く可能性のあるトランザクションに係るレコードが未だ紐付け候補リストテーブルに格納されていなければ、紐付く可能性のあるトランザクションに係るレコードを紐付け候補リストテーブルに追加してから、第１紐付け候補リストにメッセージＩＤを追加する。そして、ステップＳ５３の処理に移行する。
【００２９】
一方、紐付く可能性のあるトランザクションを一意に特定できないと判断した場合（ステップＳ４７：Ｎｏルート）、メッセージパターン生成部３５は、紐付く可能性のあるトランザクションの各々について、当該トランザクションに対応する第２紐付け候補リストに、特定未紐付けメッセージのメッセージＩＤを追加する（ステップＳ５１）。なお、紐付く可能性のあるトランザクションに係るレコードが未だ紐付け候補リストテーブルに格納されていなければ、紐付く可能性のあるトランザクションに係るレコードを紐付け候補リストテーブルに追加してから、第２紐付け候補リストにメッセージＩＤを追加する。そして、ステップＳ５３の処理に移行する。
【００３０】
そして、メッセージパターン生成部３５は、全ての未紐付けメッセージについて処理が完了したか判断する（ステップＳ５３）。全ての未紐付けメッセージについて処理が完了していなければ（ステップＳ５３：Ｎｏルート）、ステップＳ４１の処理に戻る。一方、全ての未紐付けメッセージについて処理が完了した場合（ステップＳ５３：Ｙｅｓルート）、本処理を終了し、元の処理に戻る。
【００３１】
図１１の説明に戻って、メッセージパターン生成部３５は、紐付け候補リストテーブルにおいて未処理のレコードを特定する（ステップＳ３）。そして、メッセージパターン生成部３５は、特定レコードに含まれるTranIDを基にトランザクションテーブルを検索し、特定レコードに係るトランザクションに対応するメッセージパターンＰを特定する（ステップＳ５）。そして、メッセージパターン生成部３５は、特定レコードにおける第１紐付け候補リストにメッセージＩＤが設定されているか判断する（ステップＳ７）。特定レコードにおける第１紐付け候補リストにメッセージＩＤが設定されていないと判断された場合（ステップＳ７：Ｎｏルート）、端子Ａを介してステップＳ１５（図１６）の処理に移行する。
【００３２】
一方、特定レコードにおける第１紐付け候補リストにメッセージＩＤが設定されていると判断された場合（ステップＳ７：Ｙｅｓルート）、メッセージパターン生成部３５は、第１紐付け候補リストに含まれるメッセージをメッセージパターンＰに追加することにより、新たなメッセージパターンＰ’を生成する（ステップＳ９）。そして、メッセージパターン生成部３５は、メッセージパターンＰ’のレコードをメッセージパターンテーブルに追加し、候補フラグを１（候補）に設定する（ステップＳ１１）。例えば、メッセージパターンＰの条件が、最初のメッセージが文字列「Ｘ＝ＡＢＣ」を含み、最後のメッセージが文字列「Ｙ＝ＤＥＦＧ」を含むという条件であり、メッセージパターンＰの最後尾に未紐付けメッセージ（ここでは、文字列「Ｙ＝ＨＩＪ」を含むものとする）を追加してメッセージパターンＰ’を生成した場合、新たに生成されたメッセージパターンＰ’の条件は、最初のメッセージが文字列「Ｘ＝ＡＢＣ」を含み、途中のメッセージが文字列「Ｙ＝ＤＥＦＧ」を含み、さらに最後のメッセージが文字列「Ｙ＝ＨＩＪ」を含むという条件となる。また、メッセージパターン生成部３５は、メッセージパターンテーブルにおいて、メッセージパターンＰのレコードにおける派生メッセージパターンにメッセージパターンＰ’のパターンＩＤを追加する（ステップＳ１３）。そして、端子Ａを介してステップＳ１５（図１６）の処理に移行する。
【００３３】
図１６の説明に移行して、端子Ａの後、メッセージパターン生成部３５は、特定レコードにおける第２紐付け候補リストにメッセージＩＤが設定されているか判断する（図１６：ステップＳ１５）。特定レコードにおける第２紐付け候補リストにメッセージＩＤが設定されていないと判断された場合（ステップＳ１５：Ｎｏルート）、ステップＳ３１の処理に移行する。
【００３４】
一方、特定レコードにおける第２紐付け候補リストにメッセージＩＤが設定されていると判断された場合（ステップＳ１５：Ｙｅｓルート）、メッセージパターン生成部３５は、第２紐付け候補リストに含まれるメッセージの追加要否の組み合わせである追加パターンのうち、未処理のパターンを特定する（ステップＳ１７）。ここで、図１７及び図１８を用いて追加パターンについて説明する。
【００３５】
例えば図１７に示すように、２つの未紐付けメッセージ（Ｍｓｇ３及びＭｓｇ５）が存在し、Ｍｓｇ３は、ＩＤ「tran0」及び「tran1」の２つのトランザクションと紐付く可能性があり、Ｍｓｇ５は、ＩＤ「tran1」及び「tran2」の２つのトランザクションと紐付く可能性があるものとする。この場合、紐付け候補リストテーブル生成処理が実施されると、図１８に示すような紐付け候補リストテーブルが生成される。図１８の紐付け候補リストテーブルにおいて、TranID「tran0」のレコードにおける第２紐付け候補リストにはＭｓｇ３が設定されており、TranID「tran1」のレコードにおける第２紐付け候補リストにはＭｓｇ３及びＭｓｇ５が設定されており、TranID「tran2」のレコードにおける第２紐付け候補リストにはＭｓｇ５が設定されている。そして、各レコードに対応する追加パターンは、同じく図１８に示すとおりとなる。図１８では、TranID「tran0」のレコードに対応する追加パターンは２通り、TranID「tran1」のレコードに対応する追加パターンは４通り、TranID「tran2」のレコードに対応する追加パターンは２通りとなる。なお、図１８では、「○」が設定されている場合にはメッセージを追加し、「×」が設定されている場合にはメッセージを追加しない旨を示している。以降、「○」が設定されているメッセージを要追加メッセージと呼ぶ。
【００３６】
そして、メッセージパターン生成部３５は、特定追加パターンに要追加メッセージが含まれるか判断する（ステップＳ１９）。特定追加パターンに要追加メッセージが含まれないと判断された場合（ステップＳ１９：Ｎｏルート）、ステップＳ２７の処理に移行する。
【００３７】
一方、特定追加パターンに要追加メッセージが含まれると判断された場合（ステップＳ１９：Ｙｅｓルート）、メッセージパターン生成部３５は、メッセージパターンＰ又はメッセージパターンＰ’に要追加メッセージを追加することにより、新たなメッセージパターンを生成する（ステップＳ２１）。なお、ステップＳ２１では、特定レコードにおける第１紐付け候補リストにメッセージＩＤが設定されている場合には、ステップＳ９（図１１）において生成したメッセージパターンＰ’をベースに新たなメッセージパターンを生成する。また、特定レコードにおける第１紐付け候補リストにメッセージＩＤが設定されていなければ、ステップＳ５（図１１）において特定したメッセージパターンＰをベースに新たなメッセージパターンを生成する。そして、メッセージパターン生成部３５は、新たに生成したメッセージパターンのレコードをメッセージパターンテーブルに追加し、候補フラグを１（候補）に設定する（ステップＳ２３）。また、メッセージパターン生成部３５は、メッセージパターンテーブルにおいて、メッセージパターンＰのレコードにおける派生メッセージパターンに、新たに生成したメッセージパターンのパターンＩＤを追加する（ステップＳ２５）。
【００３８】
そして、メッセージパターン生成部３５は、全ての追加パターンについて処理が完了したか判断する（ステップＳ２７）。全ての追加パターンについて処理が完了していなければ（ステップＳ２７：Ｎｏルート）、ステップＳ１７の処理に戻る。一方、全ての追加パターンについて処理が完了した場合（ステップＳ２７：Ｙｅｓルート）、メッセージパターン生成部３５は、追加パターンに従って関連メッセージパターンを設定する（ステップＳ２９）。この処理については、図１８に示したTranID「tran1」に対応する追加パターンを例に説明する。なお、追加パターン１に従って（すなわち、Ｍｓｇ３及びＭｓｇ５を追加して）生成されたメッセージパターンを新パターン１、追加パターン２に従って（すなわち、Ｍｓｇ３を追加して）生成されたメッセージパターンを新パターン２、追加パターン３に従って（すなわち、Ｍｓｇ５を追加して）生成されたメッセージパターンを新パターン３とする。新パターン１と新パターン２とは、共にＭｓｇ３を追加することによって生成されたメッセージパターンであり、新パターン１から見ると、新パターン２が関連メッセージパターンとなり、新パターン２から見ると、新パターン１が関連メッセージパターンとなる。従って、メッセージパターンテーブルにおいて、新パターン１のレコードにおける関連メッセージパターンには新パターン２が設定され、新パターン２のレコードにおける関連メッセージパターンには新パターン１が設定される。また、新パターン１と新パターン３とは、共にＭｓｇ５を追加することによって生成されたメッセージパターンであり、新パターン１から見ると、新パターン３が関連メッセージパターンとなり、新パターン３から見ると、新パターン１が関連メッセージパターンとなる。従って、メッセージパターンテーブルにおいて、新パターン１のレコードにおける関連メッセージパターンには新パターン３が設定され、新パターン３のレコードにおける関連メッセージパターンには新パターン１が設定される。
【００３９】
その後、メッセージパターン生成部３５は、紐付け候補リストテーブル内の全てのレコードについて処理が完了したか判断する（ステップＳ３１）。紐付け候補リストテーブル内の全てのレコードについて処理が完了していなければ（ステップＳ３１：Ｎｏルート）、端子Ｂを介してステップＳ３（図１１）の処理に戻る。一方、紐付け候補リストテーブル内の全てのレコードについて処理が完了した場合（ステップＳ３１：Ｙｅｓルート）、処理を終了する。
【００４０】
以上のような処理を実施することにより、定義済みのメッセージパターンをベースにして、新たなメッセージパターンを生成することができる。
【００４１】
次に、図１０に示したステップ（１）乃至ステップ（３）の処理の詳細を図１９乃至図２２を用いて説明する。まず、紐付けエンジン３２は、メッセージ採取装置５からメッセージを受信する（図１９：ステップＳ６１）。そして、紐付けエンジン３２は、メッセージパターンテーブルに格納されているメッセージパターンに基づき、紐付けが完了したか判断する（ステップＳ６３）。具体的には、受信したメッセージの属するトランザクションに係るメッセージの系列と、メッセージパターンテーブルに格納されている各メッセージパターンとを比較し、受信したメッセージによって、受信したメッセージの属するトランザクションに係るメッセージの系列が、メッセージパターンテーブルに格納されているいずれかのメッセージパターンと合致したか判断する。紐付けが完了していないと判断された場合（ステップＳ６３：Ｎｏルート）、端子Ｃを介して処理を終了する。
【００４２】
一方、紐付けが完了したと判断された場合（ステップＳ６３：Ｙｅｓルート）、紐付けエンジン３２は、メッセージパターンテーブルにおいて、受信したメッセージの属するトランザクションに係るメッセージの系列と合致したメッセージパターンのレコードを特定する（ステップＳ６５）。そして、紐付けエンジン３２は、特定レコードに派生メッセージパターンが設定されているか判断する（ステップＳ６７）。特定レコードに派生メッセージパターンが設定されていると判断された場合（ステップＳ６７：Ｙｅｓルート）、端子Ｄを介してステップＳ８３（図２２）の処理に移行する。
【００４３】
一方、特定レコードに派生メッセージパターンが設定されていないと判断された場合（ステップＳ６７：Ｎｏルート）、紐付けエンジン３２は、受信したメッセージの属するトランザクションに係るメッセージを紐付け結果として紐付け結果格納部３３に格納する（ステップＳ６９）。そして、紐付けエンジン３２は、紐付け結果に対応するレコードをトランザクションテーブルに追加する（ステップＳ７１）。当該レコードのトランザクション開始時刻（T_start）には、紐付け結果において最初のメッセージのタイムスタンプを設定し、トランザクション完了時刻（T_end）には、紐付け結果において最後のメッセージのタイムスタンプを設定する。また、当該レコードの紐付けキーワード（Keyword）には、紐付け結果に係る紐付けキーワードを設定する。また、この紐付けキーワードを一旦記憶装置に格納しておく。なお、記憶装置には、少なくとも前回の紐付け結果に係る紐付けキーワードが格納されているものとする。そして、紐付けエンジン３２は、特定レコードにおけるカウンタｃｎｔをインクリメントする（ステップＳ７３）。そして、端子Ｅを介してステップＳ７５（図２０）の処理に移行する。
【００４４】
図２０の説明に移行して、端子Ｅの後、紐付けエンジン３２は、紐付けキーワードが、前回の紐付け結果に係る紐付けキーワードと同一であるか判断する（図２０：ステップＳ７５）。紐付けキーワードが、前回の紐付け結果に係る紐付けキーワードと同一でないと判断された場合（ステップＳ７５：Ｎｏルート）、処理を終了する。
【００４５】
一方、紐付けキーワードが、前回の紐付け結果に係る紐付けキーワードと同一であると判断された場合（ステップＳ７５：Ｙｅｓルート）、紐付けエンジン３２は、紐付け結果格納部３３から、今回の紐付け結果及び前回の紐付け結果に含まれるメッセージを抽出し、一旦記憶装置に格納する（ステップＳ７７）。そして、紐付けエンジン３２は、抽出したメッセージ群について、他のメッセージパターンによる紐付けが可能であるか判断する（ステップＳ７９）。例えば、図６に示したメッセージパターンテーブルがメッセージパターンテーブル格納部３１に格納されているものとし、Ｐ０１はＭｓｇ１〜Ｍｓｇ４、Ｐ０２はＭｓｇ６〜Ｍｓｇ７、Ｐ１１はＭｓｇ１〜Ｍｓｇ５、Ｐ１２はＭｓｇ５〜Ｍｓｇ７として定義されているものとする。ここで、図２１に示すように、Ｍｓｇ１から順にＭｓｇ７までのメッセージを受信した場合、Ｍｓｇ１〜Ｍｓｇ５がＰ１１と合致し、且つＭｓｇ６〜Ｍｓｇ７がＰ０２と合致するものと判断され、Ｍｓｇ１〜Ｍｓｇ５をトランザクション１（Ｔ１）、Ｍｓｇ６〜Ｍｓｇ７をトランザクション２（Ｔ２）として紐付け結果に格納する（Ｃａｓｅ１）。しかし、トランザクション１に係る紐付けキーワードと、トランザクション２に係る紐付けキーワードとが同一の場合、同じく図２１に示すように、Ｐ０１及びＰ１２を用いて、Ｍｓｇ１〜Ｍｓｇ４をトランザクション１、Ｍｓｇ５〜Ｍｓｇ７をトランザクション２として紐付けることも可能となる（Ｃａｓｅ２）。ステップＳ７９では、このような他のメッセージパターンによる紐付けが可能であるか否かを判断する。
【００４６】
そして、抽出したメッセージ群について、他のメッセージパターンによる紐付けが可能であると判断された場合（ステップＳ７９：Ｙｅｓルート）、紐付けエンジン３２は、当該他のメッセージパターンのカウンタｃｎｔをインクリメントする（ステップＳ８１）。上の例では、Ｐ０１及びＰ１２のカウンタｃｎｔをインクリメントする。なお、Ｐ１１及びＰ０２のカウンタｃｎｔは、ステップＳ７３においてインクリメントされるので、結果としてＰ０１、Ｐ０２、Ｐ１１及びＰ１２のカウンタｃｎｔがインクリメントされることとなる。
【００４７】
一方、抽出したメッセージ群について、他のメッセージパターンによる紐付けができないと判断された場合（ステップＳ７９：Ｎｏルート）、処理を終了する。
【００４８】
次に、ステップＳ６７（図１９）において、特定レコードに派生メッセージパターンが設定されていると判断された場合の処理（すなわち、端子Ｄの後の処理）を図２２を用いて説明する。特定レコードに派生メッセージパターンが設定されていると判断された場合、紐付けエンジン３２は、紐付け完了判定を保留する（図２２：ステップＳ８３）。すなわち、あるトランザクションに係るメッセージの系列が、いずれかのメッセージパターンと合致しても、当該メッセージパターンから派生したメッセージパターンが存在する場合には、派生メッセージパターンと合致することとなる可能性もあるため、当該トランザクションについて紐付け完了とはみなさず、派生メッセージパターンに関連するメッセージを受信するまで一旦保留する。例えば、トランザクションに係るメッセージの系列が、Ｐ０１（Ｍｓｇ１〜Ｍｓｇ４）に合致した際、Ｐ０１から派生したＰ１１（Ｍｓｇ１〜Ｍｓｇ５）が存在する場合、Ｍｓｇ５を受信するまで判定を保留する。
【００４９】
その後、紐付けエンジン３２は、メッセージ採取装置５から、派生メッセージパターンに関連するメッセージを受信する（ステップＳ８５）。そして、紐付けエンジン３２は、ステップＳ８５において受信したメッセージに、保留中のトランザクションに係る紐付けキーワードと同一の紐付けキーワードが含まれるか判断する（ステップＳ８７）。ステップＳ８５において受信したメッセージに、保留中のトランザクションに係る紐付けキーワードと同一の紐付けキーワードが含まれると判断された場合（ステップＳ８７：Ｙｅｓルート）、紐付けエンジン３２は、派生メッセージパターンによる紐付けが完了したものと判断する（ステップＳ８９）。そして、紐付けエンジン３２は、メッセージパターンテーブルにおいて、派生メッセージパターンのレコードを特定し（ステップＳ９１）、端子Ｆを介してステップＳ６７（図１９）の処理に戻る。
【００５０】
一方、ステップＳ８５において受信したメッセージに、保留中のトランザクションに係る紐付けキーワードと同一の紐付けキーワードが含まれないと判断された場合（ステップＳ８７：Ｎｏルート）、紐付けエンジン３２は、特定レコードに係るメッセージパターンによる紐付けが完了したものと判断する（ステップＳ９３）。そして、端子Ｇを介してステップＳ６９（図１９）の処理に戻る。
【００５１】
以上のような処理を実施することにより、あるメッセージパターンから新たなメッセージパターンを生成した場合でも、適切にメッセージ紐付け処理を行うことができる。
【００５２】
次に、図１０に示したステップ（７）の処理の詳細を図２３乃至図２５を用いて説明する。なお、図６に示したメッセージパターンテーブルがメッセージパターンテーブル格納部３１に格納されているものとする。紐付け処理装置３は、定期的又は任意のタイミングにて、図２３に示すような処理を実施する。まず、判定部３７が、メッセージパターンテーブルにおいて、候補フラグが１に設定されているレコードが存在するか判断する（図２３：ステップＳ１０１）。メッセージパターンテーブルにおいて、候補フラグが１に設定されているレコードが存在しないと判断された場合（ステップＳ１０１：Ｎｏルート）、処理を終了する。
【００５３】
一方、メッセージパターンテーブルにおいて、候補フラグが１に設定されているレコードが存在すると判断された場合（ステップＳ１０１：Ｙｅｓルート）、判定部３７は、メッセージパターンテーブルにおいて、候補フラグが１に設定されているレコードを１つ特定する（ステップＳ１０３）。そして、判定部３７は、特定レコードからカウンタｃｎｔを抽出し（ステップＳ１０５）、カウンタｃｎｔが０であるか判断する（ステップＳ１０７）。カウンタｃｎｔが０であると判断された場合（ステップＳ１０７：Ｙｅｓルート）、判定部３７は、メッセージパターンテーブルにおける派生メッセージパターンの列から、特定レコードに係るパターンＩＤを削除する（ステップＳ１０９）。そして、判定部３７は、メッセージパターンテーブルから特定レコードを削除する（ステップＳ１１１）。すなわち、カウンタｃｎｔが０のメッセージパターンは、実在しないメッセージパターンとみなし、メッセージパターンテーブルから削除する。
【００５４】
一方、ステップＳ１０７において、カウンタｃｎｔが０でないと判断された場合（ステップＳ１０７：Ｎｏルート）、判定部３７は、特定レコードに関連メッセージパターンが設定されているか判断する（ステップＳ１１３）。特定レコードに関連メッセージパターンが設定されていないと判断された場合（ステップＳ１１３：Ｎｏルート）、判定部３７は、特定レコードに係るメッセージパターンは実在するものと判断し、特定レコードの候補フラグを０に設定する（ステップＳ１１５）。
【００５５】
一方、特定レコードに関連メッセージパターンが設定されていると判断された場合（ステップＳ１１３：Ｙｅｓルート）、端子Ｈを介してステップＳ１１７（図２４）の処理に移行する。
【００５６】
図２４の説明に移行して、端子Ｈの後、判定部３７は、メッセージパターンテーブルにおいて、関連メッセージパターンのレコードを読み出す（ステップＳ１１７）。なお、関連メッセージパターンが複数設定されている場合には、複数の関連メッセージパターンの各々のレコードを読み出す。そして、判定部３７は、関連メッセージパターンのレコードからカウンタｃｎｔを抽出する（ステップＳ１１９）。そして、判定部３７は、特定レコードに係るメッセージパターンと関連メッセージパターンとのうち、カウンタｃｎｔが最大のメッセージパターンを特定する（ステップＳ１２１）。なお、以降、特定レコードに係るメッセージパターンと関連メッセージパターンとのうち、特定メッセージパターン以外のメッセージパターンを削除対象メッセージパターンと呼ぶ。そして、判定部３７は、メッセージパターンテーブルにおける派生メッセージパターンの列から、削除対象メッセージパターンのパターンＩＤを削除する（ステップＳ１２３）。そして、判定部３７は、メッセージパターンテーブルから、削除対象メッセージパターンのレコードを削除する（ステップＳ１２５）。そして、判定部３７は、特定メッセージパターンは実在するものと判断し、特定メッセージパターンのレコードの候補フラグを０に設定する（ステップＳ１２７）。また、判定部３７は、特定メッセージパターンのレコードから関連メッセージパターンを削除する（ステップＳ１２９）。そして、端子Ｉを介してステップＳ１０１（図２３）の処理に戻る。
【００５７】
図２３及び図２４に示した処理を実施すると、図６に示したメッセージパターンテーブルは、図２５に示すようなデータとなる。図６では、Ｐ１１のレコードにおいて関連メッセージパターンとしてＰ１２が設定されている。Ｐ１１のカウンタｃｎｔとＰ１２のカウンタｃｎｔを比較すると、Ｐ１１のカウンタｃｎｔの方が大きいため、図２５では、Ｐ１２のレコードは削除されている。さらに、図２５では、Ｐ１１のレコードの候補フラグが０に更新されている。また、Ｐ０２のレコードから派生メッセージパターン（Ｐ１２）が削除されており、Ｐ１１のレコードから関連メッセージパターン（Ｐ１２）が削除されている。
【００５８】
以上のような処理を実施することにより、実在しないメッセージパターンをメッセージパターンテーブルから削除することができるようになる。
【００５９】
以上本技術の一実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、上で説明した紐付け処理装置３の機能ブロック図は必ずしも実際のプログラムモジュール構成に対応するものではない。
【００６０】
また、上で説明した各テーブルの構成は一例であって、必ずしも上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００６１】
以上本実施の形態をまとめると以下のようになる。
【００６２】
本メッセージパターン生成方法は、トランザクションを特定するための紐付けキーワードを各々有する複数のメッセージを順次受信する受信ステップと、メッセージを受信する毎に、メッセージパターンを格納するメッセージパターン格納部に格納されているメッセージパターンと紐付けキーワードとを用いて、受信したメッセージをトランザクション別に分類する分類処理を実施し、メッセージパターン格納部に格納されている各メッセージパターンと、受信したメッセージが属するトランザクションに係るメッセージの系列とを比較して、受信したメッセージによって、受信したメッセージが属するトランザクションに係るメッセージの系列が、メッセージパターン格納部に格納されているメッセージパターンのいずれかと合致するという条件を満たしたか判定する紐付け完了判定ステップと、紐付け完了判定ステップにおいて上記条件を満たしたと判定された場合、受信したメッセージが属するトランザクションの識別子と、当該トランザクションに係るメッセージに含まれる紐付けキーワードとを含むレコードを生成し、トランザクション格納部に格納するステップと、所定のタイミングにて、受信ステップにおいて受信したメッセージのうち、分類処理においていずれのトランザクションにも分類されなかった未分類メッセージの各々について、当該未分類メッセージに含まれる紐付けキーワードを基にトランザクション格納部を探索して同一の紐付けキーワードを含むレコードを特定し、当該未分類メッセージの識別子を、特定したレコードに係るトランザクションである紐付き候補トランザクションに対応して紐付け候補リスト格納部に格納するステップと、各紐付き候補トランザクションについて、メッセージパターン格納部に格納され且つ当該紐付き候補トランザクションに対応するメッセージパターンに、当該紐付き候補トランザクションに対応して紐付け候補リスト格納部に格納されている未分類メッセージを追加することにより、新たなメッセージパターンを生成し、メッセージパターン格納部に格納するステップとを含む。
【００６３】
このようにすれば、例えば、システム運用後に判明したトランザクションや、機能追加などの要因により追加となったトランザクションがあったとしても、定義済みのメッセージパターンをベースに、これらのトランザクションに対応するメッセージパターンを自動生成することができ、これらのトランザクションに係るメッセージの紐付けを行うことができるようになる。
【００６４】
また、上で述べた紐付き候補特定ステップが、紐付き候補トランザクションが複数存在する場合、未分類メッセージの識別子を、紐付き候補トランザクションの各々に対応して紐付け候補リスト格納部に格納するステップを含むようにしてもよい。このようにすれば、紐付く可能性のあるトランザクションを一意に特定できない場合にも対処できるようになる。
【００６５】
さらに、上で述べたメッセージパターン格納部が、メッセージパターンの出現回数をさらに格納する場合もある。そして、上で述べた格納ステップが、紐付け完了判定ステップにおいて上記条件を満たしたと判定された場合、受信したメッセージが属するトランザクションに係るメッセージの系列に合致したメッセージパターンの出現回数をインクリメントするステップを含むようにしてもよい。そして、所定のタイミングにて、出現回数が所定基準未満であるメッセージパターンをメッセージパターン格納部から削除するステップをさらに含むようにしてもよい。このようにすれば、実在しないメッセージパターンは削除されるので、メンテナンスが容易になる。
【００６６】
また、上で述べたメッセージパターン生成ステップが、新たなメッセージパターンの識別子を派生メッセージパターンの識別子として、新たなメッセージパターンの基となったメッセージパターンに対応してメッセージパターン格納部に格納するステップを含むようにしてもよい。そして、紐付け完了判定ステップにおいて上記条件を満たしたと判定された際に、受信したメッセージが属するトランザクションに係るメッセージの系列に合致したメッセージパターンに対応してメッセージパターン格納部に派生メッセージパターンの識別子が格納されている場合には、派生メッセージパターンを比較対象として紐付け判定ステップを実施する再判定ステップをさらに含むようにしてもよい。そして、再判定ステップの後に、上で述べた格納ステップを実行させる場合もある。このようにすれば、派生メッセージパターンと合致するかを確認した上で紐付けが完了したか否かを判断するので、新たなメッセージパターンを生成した場合でも、適切にメッセージ紐付け処理を行うことができるようになる。
【００６７】
なお、本技術に係る方法をコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。また、ネットワークを介してディジタル信号にて頒布される場合もある。なお、処理途中のデータについては、コンピュータのメモリ等の記憶装置に一時保管される。
【００６８】
なお、紐付け処理装置３及びメッセージ採取装置５は、図２６のようなコンピュータ装置であって、メモリ２５０１（記憶装置）とＣＰＵ２５０３（処理装置）とハードディスク・ドライブ（ＨＤＤ）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施の形態における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。必要に応じてＣＰＵ２５０３は、表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ２５０１に格納され、必要があればＨＤＤ２５０５に格納される。本技術の実施の形態では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００６９】
（付記１）
トランザクションを特定するための紐付けキーワードを各々有する複数のメッセージを順次受信する受信ステップと、
前記メッセージを受信する毎に、メッセージパターンを格納するメッセージパターン格納部に格納されている前記メッセージパターンと前記紐付けキーワードとを用いて、受信した前記メッセージを前記トランザクション別に分類する分類処理を実施し、前記メッセージパターン格納部に格納されている各前記メッセージパターンと、受信した前記メッセージが属する前記トランザクションに係るメッセージの系列とを比較して、受信した前記メッセージによって、受信した前記メッセージが属する前記トランザクションに係るメッセージの系列が、前記メッセージパターン格納部に格納されている前記メッセージパターンのいずれかと合致するという条件を満たしたか判定する紐付け完了判定ステップと、
前記紐付け完了判定ステップにおいて前記条件を満たしたと判定された場合、受信した前記メッセージが属する前記トランザクションの識別子と、当該トランザクションに係るメッセージに含まれる前記紐付けキーワードとを含むレコードを生成し、トランザクション格納部に格納する格納ステップと、
所定のタイミングにて、前記受信ステップにおいて受信した前記メッセージのうち、前記分類処理においていずれの前記トランザクションにも分類されなかった未分類メッセージの各々について、当該未分類メッセージに含まれる前記紐付けキーワードを基に前記トランザクション格納部を探索して同一の紐付けキーワードを含む前記レコードを特定し、当該未分類メッセージの識別子を、特定した前記レコードに係る前記トランザクションである紐付き候補トランザクションに対応して紐付け候補リスト格納部に格納する紐付き候補特定ステップと、
各前記紐付き候補トランザクションについて、前記メッセージパターン格納部に格納され且つ当該紐付き候補トランザクションに対応する前記メッセージパターンに、当該紐付き候補トランザクションに対応して前記紐付け候補リスト格納部に格納されている前記未分類メッセージを追加することにより、新たなメッセージパターンを生成し、前記メッセージパターン格納部に格納するメッセージパターン生成ステップと、
をコンピュータに実行させるためのメッセージパターン生成プログラム。
【００７０】
（付記２）
前記紐付き候補特定ステップが、
前記紐付き候補トランザクションが複数存在する場合、前記未分類メッセージの識別子を、前記紐付き候補トランザクションの各々に対応して前記紐付け候補リスト格納部に格納するステップ
を含む付記１記載のメッセージパターン生成プログラム。
【００７１】
（付記３）
前記メッセージパターン格納部が、前記メッセージパターンの出現回数をさらに格納し、
前記格納ステップが、
前記紐付け完了判定ステップにおいて前記条件を満たしたと判定された場合、受信した前記メッセージが属する前記トランザクションに係るメッセージの系列に合致した前記メッセージパターンの前記出現回数をインクリメントするステップ
を含み、
所定のタイミングにて、前記出現回数が所定基準未満である前記メッセージパターンを前記メッセージパターン格納部から削除するステップ
をさらにコンピュータに実行させるための付記１又は記載のメッセージパターン生成プログラム。
【００７２】
（付記４）
前記メッセージパターン生成ステップが、
前記新たなメッセージパターンの識別子を前記派生メッセージパターンの識別子として、前記新たなメッセージパターンの基となった前記メッセージパターンに対応して前記メッセージパターン格納部に格納するステップ
を含み、
前記紐付け完了判定ステップにおいて前記条件を満たしたと判定された際に、受信した前記メッセージが属する前記トランザクションに係るメッセージの系列に合致した前記メッセージパターンに対応して前記メッセージパターン格納部に前記派生メッセージパターンの識別子が格納されている場合には、前記派生メッセージパターンを比較対象として前記紐付け判定ステップを実施する再判定ステップ
をさらにコンピュータに実行させ、
前記再判定ステップの後に、前記格納ステップを実行させる
ことを特徴とする付記１乃至３のいずれか１つ記載のメッセージパターン生成プログラム。
【００７３】
（付記５）
トランザクションを特定するための紐付けキーワードを各々有する複数のメッセージを順次受信する受信ステップと、
前記メッセージを受信する毎に、メッセージパターンを格納するメッセージパターン格納部に格納されている前記メッセージパターンと前記紐付けキーワードとを用いて、受信した前記メッセージを前記トランザクション別に分類する分類処理を実施し、前記メッセージパターン格納部に格納されている各前記メッセージパターンと、受信した前記メッセージが属する前記トランザクションに係るメッセージの系列とを比較して、受信した前記メッセージによって、受信した前記メッセージが属する前記トランザクションに係るメッセージの系列が、前記メッセージパターン格納部に格納されている前記メッセージパターンのいずれかと合致するという条件を満たしたか判定する紐付け完了判定ステップと、
前記紐付け完了判定ステップにおいて前記条件を満たしたと判定された場合、受信した前記メッセージが属する前記トランザクションの識別子と、当該トランザクションに係るメッセージに含まれる前記紐付けキーワードとを含むレコードを生成し、トランザクション格納部に格納するステップと、
所定のタイミングにて、前記受信ステップにおいて受信した前記メッセージのうち、前記分類処理においていずれの前記トランザクションにも分類されなかった未分類メッセージの各々について、当該未分類メッセージに含まれる前記紐付けキーワードを基に前記トランザクション格納部を探索して同一の紐付けキーワードを含む前記レコードを特定し、当該未分類メッセージの識別子を、特定した前記レコードに係る前記トランザクションである紐付き候補トランザクションに対応して紐付け候補リスト格納部に格納するステップと、
各前記紐付き候補トランザクションについて、前記メッセージパターン格納部に格納され且つ当該紐付き候補トランザクションに対応する前記メッセージパターンに、当該紐付き候補トランザクションに対応して前記紐付け候補リスト格納部に格納されている前記未分類メッセージを追加することにより、新たなメッセージパターンを生成し、前記メッセージパターン格納部に格納するステップと、
を含み、コンピュータにより実行されるメッセージパターン生成方法。
【００７４】
（付記６）
トランザクションを特定するための紐付けキーワードを各々有する複数のメッセージを順次受信し、前記メッセージを受信する毎に、メッセージパターンを格納するメッセージパターン格納部に格納されている前記メッセージパターンと前記紐付けキーワードとを用いて、受信した前記メッセージを前記トランザクション別に分類する分類処理を実施し、前記メッセージパターン格納部に格納されている各前記メッセージパターンと、受信した前記メッセージが属する前記トランザクションに係るメッセージの系列とを比較して、受信した前記メッセージによって、受信した前記メッセージが属する前記トランザクションに係るメッセージの系列が、前記メッセージパターン格納部に格納されている前記メッセージパターンのいずれかと合致するという条件を満たしたか判定し、前記条件を満たしたと判定された場合、受信した前記メッセージが属する前記トランザクションの識別子と、当該トランザクションに係るメッセージに含まれる前記紐付けキーワードとを含むレコードを生成し、トランザクション格納部に格納する紐付けエンジン手段と、
所定のタイミングにて、前記紐付けエンジン手段において受信した前記メッセージのうち、前記分類処理においていずれの前記トランザクションにも分類されなかった未分類メッセージの各々について、当該未分類メッセージに含まれる前記紐付けキーワードを基に前記トランザクション格納部を探索して同一の紐付けキーワードを含む前記レコードを特定し、当該未分類メッセージの識別子を、特定した前記レコードに係る前記トランザクションである紐付き候補トランザクションに対応して紐付け候補リスト格納部に格納し、各前記紐付き候補トランザクションについて、前記メッセージパターン格納部に格納され且つ当該紐付き候補トランザクションに対応する前記メッセージパターンに、当該紐付き候補トランザクションに対応して前記紐付け候補リスト格納部に格納されている前記未分類メッセージを追加することにより、新たなメッセージパターンを生成し、前記メッセージパターン格納部に格納するメッセージパターン生成手段と、
を有するメッセージパターン生成装置。
【図面の簡単な説明】
【００７５】
【図１】従来の電子商取引システムの一例を示す図である。
【図２】本実施の形態の前提となるメッセージ紐付け処理を説明するための図である。
【図３】メッセージ紐付け処理で用いるメッセージパターンを説明するための図である。
【図４】本実施の形態の前提となるメッセージ紐付け処理における問題点を説明するための図である。
【図５】本実施の形態に係るシステムの概要図である。
【図６】メッセージパターンテーブルのテーブル例を示す図である。
【図７】関連メッセージパターンを説明するための図である。
【図８】トランザクションテーブルのテーブル例を示す図である。
【図９】紐付け候補リストテーブルのテーブル例を示す図である。
【図１０】本実施の形態に係る紐付け処理装置の処理概要を説明するための図である。
【図１１】メッセージパターンを生成する処理の処理フロー（第１の部分）を示す図である。
【図１２】紐付け候補リストテーブル生成処理の処理フローを示す図である。
【図１３】紐付く可能性のあるトランザクションが存在する場合における第１のケースを説明するための図である。
【図１４】（ａ）及び（ｂ）は、紐付く可能性のあるトランザクションが存在する場合における第２のケースを説明するための図である。
【図１５】紐付く可能性のあるトランザクションが存在する場合における第３のケースを説明するための図である。
【図１６】メッセージパターンを生成する処理の処理フロー（第２の部分）を示す図である。
【図１７】追加パターンを説明するための図である。
【図１８】追加パターンを説明するための図である。
【図１９】メッセージ紐付け処理の処理フロー（第１の部分）を示す図である。
【図２０】メッセージ紐付け処理の処理フロー（第２の部分）を示す図である。
【図２１】他のメッセージパターンによる紐付けが可能であるかを判断する処理を説明するための図である。
【図２２】メッセージ紐付け処理の処理フロー（第３の部分）を示す図である。
【図２３】メッセージパターンテーブルをチェックする処理の処理フロー（第１の部分）を示す図である。
【図２４】メッセージパターンテーブルをチェックする処理の処理フロー（第２の部分）を示す図である。
【図２５】メッセージパターンテーブル格納部に格納されるメッセージパターンテーブルのテーブル例を示す図である。
【図２６】コンピュータの機能ブロック図である。
【符号の説明】
【００７６】
１  ネットワーク
３  紐付け処理装置
５  メッセージ採取装置
３１  メッセージパターンテーブル格納部
３２  紐付けエンジン
３３  紐付け結果格納部
３４  未紐付けメッセージ格納部
３５  メッセージパターン生成部
３６  紐付け候補リストテーブル格納部
３７  判定部
５００  電子商取引システム
【図１】
2010067048.tif 000003
【図２】
2010067048.tif 000004
【図３】
2010067048.tif 000005
【図４】
2010067048.tif 000006
【図５】
2010067048.tif 000007
【図６】
2010067048.tif 000008
【図７】
2010067048.tif 000009
【図８】
2010067048.tif 000010
【図９】
2010067048.tif 000011
【図１０】
2010067048.tif 000012
【図１１】
2010067048.tif 000013
【図１２】
2010067048.tif 000014
【図１３】
2010067048.tif 000015
【図１４】
2010067048.tif 000016
【図１５】
2010067048.tif 000017
【図１６】
2010067048.tif 000018
【図１７】
2010067048.tif 000019
【図１８】
2010067048.tif 000020
【図１９】
2010067048.tif 000021
【図２０】
2010067048.tif 000022
【図２１】
2010067048.tif 000023
【図２２】
2010067048.tif 000024
【図２３】
2010067048.tif 000025
【図２４】
2010067048.tif 000026
【図２５】
2010067048.tif 000027
【図２６】
2010067048.tif 000028