(57)【要約】【課題】メッセージを高精度でトランザクションごとに関連付け可能な紐付けキーワードを自動抽出する。【解決手段】複数のサーバ間でメッセージを送受信しつつトランザクションを処理する情報システムにおいて、同一のトランザクションが複数回処理された結果、各トランザクションごとにサーバ間で送受信されたメッセージが蓄積されたメッセージログを参照し、各トランザクションで一意なキーワード、及び、異なるトランザクション間で共通するキーワードを抽出する。また、情報システムの実際の運用にともなってメッセージが順次蓄積されたメッセージログを参照し、抽出されたキーワードを利用して、そのメッセージをトランザクションごとに関連付ける紐付けを実施する（Ｓ１１）。そして、その中から実行時間に重なりのあるトランザクションで共通するものを削除し、最終的に残った文字列を紐付けキーワードとする（Ｓ１２〜Ｓ２０）。【選択図】図１０
2010044566.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
複数のサーバ間でネットワークメッセージを送受信しつつトランザクションを処理する情報システムにおいて、同一のトランザクションが複数回処理された結果、各トランザクションごとにサーバ間で送受信されたネットワークメッセージが蓄積されたメッセージログを参照し、ネットワークメッセージをトランザクションごとに関連付けるための紐付けキーワードとして、各トランザクションで一意な第１の文字列、及び、異なるトランザクション間で共通する第２の文字列を抽出する第１ステップと、
前記情報システムの実際の運用に伴ってネットワークメッセージが順次蓄積されたメッセージログを参照し、前記第１の文字列及び第２の文字列を利用して、前記メッセージログに蓄積されたネットワークメッセージをトランザクションごとに関連付ける紐付けを実施し、実行時間に重なりのあるトランザクションに共通する第２の文字列を削除する第２ステップと、
を実現させるための紐付けキーワード自動抽出プログラム。
【請求項２】
前記第１ステップは、前記メッセージログに蓄積された各ネットワークメッセージから、紐付けキーワード候補となり得る文字列を抽出し、そのネットワークメッセージにしか存在しない文字列を削除すると共に、すべてのネットワークメッセージの関連付けが可能な最小数の文字列を選択し、各トランザクションに関する文字列を比較して第１の文字列及び第２の文字列を抽出することを特徴とする請求項１記載の紐付けキーワード自動抽出プログラム。
【請求項３】
前記第１ステップは、プロトコル別に第１の文字列及び第２の文字列を抽出することを特徴とする請求項１又は請求項２に記載の紐付けキーワード自動抽出プログラム。
【請求項４】
前記第２ステップは、前記メッセージログに蓄積されたネットワークメッセージのヘッダを参照し、各トランザクションごとに処理開始日時及び処理終了日時を特定して、実行時間に重なりがあるか否かを判定することを特徴とする請求項１〜請求項３のいずれか１つに記載の紐付けキーワード自動抽出プログラム。
【請求項５】
コンピュータが、
複数のサーバ間でネットワークメッセージを送受信しつつトランザクションを処理する情報システムにおいて、同一のトランザクションが複数回処理された結果、各トランザクションごとにサーバ間で送受信されたネットワークメッセージが蓄積されたメッセージログを参照し、ネットワークメッセージをトランザクションごとに関連付けるための紐付けキーワードとして、各トランザクションで一意な第１の文字列、及び、異なるトランザクション間で共通する第２の文字列を抽出する第１ステップと、
前記情報システムの実際の運用に伴ってネットワークメッセージが順次蓄積されたメッセージログを参照し、前記第１の文字列及び第２の文字列を利用して、前記メッセージログに蓄積されたネットワークメッセージをトランザクションごとに関連付ける紐付けを実施し、実行時間に重なりのあるトランザクションに共通する第２の文字列を削除する第２ステップと、
を実行することを特徴とする紐付けキーワード自動抽出方法。
【請求項６】
複数のサーバ間でネットワークメッセージを送受信しつつトランザクションを処理する情報システムにおいて、同一のトランザクションが複数回処理された結果、各トランザクションごとにサーバ間で送受信されたネットワークメッセージが蓄積されたメッセージログを参照し、ネットワークメッセージをトランザクションごとに関連付けるための紐付けキーワードとして、各トランザクションで一意な第１の文字列、及び、異なるトランザクション間で共通する第２の文字列を抽出するキーワード抽出手段と、
前記情報システムの実際の運用に伴ってネットワークメッセージが順次蓄積されたメッセージログを参照し、前記第１の文字列及び第２の文字列を利用して、前記メッセージログに蓄積されたネットワークメッセージをトランザクションごとに関連付ける紐付けを実施し、実行時間に重なりのあるトランザクションに共通する第２の文字列を削除するキーワード確定手段と、
を含んで構成されたことを特徴とする紐付けキーワード自動抽出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ間で送受信されるネットワークメッセージ（以下「メッセージ」という）を高精度でトランザクションごとに関連付け可能な紐付けキーワードを自動抽出する技術に関する。
【背景技術】
【０００２】
電子商取引システムなどの情報システムは、３階層システムのように、複数のサーバを用いて構築される場合が多い。このような情報システムでは、サーバ間でメッセージの送受信が繰り返されながら、トランザクションが処理される。サーバ間で送受信されるメッセージには、トランザクション単位ごとに共通するトランザクション情報として、セッションＩＤやトランザクションＩＤのような文字列が含まれている。従って、これらの文字列を利用することで、サーバ間で送受信されたメッセージをトランザクションごとに関連付ける「紐付け処理」が可能となり、情報システムの挙動監視やトランザクション実行遅延解析などを行うことができる。
【０００３】
従来の紐付け処理では、トランザクション実行に伴ってサーバ間で送受信されたメッセージに対して、手動にてgrepコマンドのような文字列検索ツールを繰り返し適用し、メッセージ間に共通して含まれる文字列（紐付けキーワード）を特定していた。しかし、紐付けキーワードの特定処理は人手にて行われるため、多大な工数を要することから管理コストの増大を来たしてしまうおそれがあった。このため、受信メッセージを区分することを目的として、同一区分に属する複数の受信メッセージに共通するキーワードを自動抽出する技術が提案された。
【特許文献１】特開平９−３３０３３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、メッセージの紐付けキーワードとしては、トランザクションＩＤのようなトランザクションごとに一意な文字列だけでなく、セッションＩＤのような時間的に重複しないトランザクションで何度も出現する同一の文字列も利用する必要がある。しかしながら、従来提案技術では、同一区分に属する複数の受信メッセージに共通するキーワードのみを抽出していたため、セッションＩＤを利用した紐付け処理が行えず、トランザクションごとにメッセージを紐付けることが困難であった。
【０００５】
そこで、以上のような従来の問題点に鑑み、異なるトランザクション間で共通する文字列についても、紐付けキーワードの利用可否を判定することで、トランザクションごとにメッセージを高精度で紐付け処理できるようにした紐付けキーワード自動抽出技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
複数のサーバ間でメッセージを送受信しつつトランザクションを処理する情報システムにおいて、同一のトランザクションが複数回処理された結果、各トランザクションごとにサーバ間で送受信されたメッセージが蓄積されたメッセージログを参照する。そして、メッセージをトランザクションごとに関連付けるための紐付けキーワードとして、各トランザクションで一意な第１の文字列、及び、異なるトランザクション間で共通する第２の文字列を抽出する。次に、情報システムの実際の運用に伴ってメッセージが順次蓄積されたメッセージログを参照し、第１の文字列及び第２の文字列を利用して、メッセージログに蓄積されたメッセージをトランザクションに関連付ける紐付けを実施する。そして、第２の文字列の中から、実行時間に重なりのあるトランザクションに共通するものを削除し、最終的に残った第１の文字列及び第２の文字列を紐付けキーワードとする。
【発明の効果】
【０００７】
メッセージをトランザクションごとに紐付ける紐付けキーワードとして、トランザクションごとに一意な第１の文字列に加え、実行時間に重なりのないトランザクションで共通する第２の文字列も利用可能となることから、メッセージの紐付け精度を向上させることができる。また、このような紐付けキーワードは自動的に抽出されるため、その抽出に係る労力が少なく、管理コスト削減も図ることができる。
【発明を実施するための最良の形態】
【０００８】
以下、添付された図面を参照して本発明を詳述する。
図１は、本発明を具現化した紐付けキーワード自動抽出装置（以下「キーワード自動抽出装置」という）の一実施形態を示す。
【０００９】
紐付けキーワード抽出対象の一例たる電子商取引システム１０は、Ｗｅｂ(ウェブ）サーバ１０Ａ，ＡＰ（アプリケーション）サーバ１０Ｂ及びＤＢ（データベース）サーバ１０Ｃからなる３階層システムとして構築される。電子商取引システムで１つのトランザクションが処理されると、Ｗｅｂサーバ１０Ａ，ＡＰサーバ１０Ｂ及びＤＢサーバ１０Ｃの間で送受信されたメッセージは、図２に示すようなテキスト形式のメッセージログとして、ＤＢのような外部記憶装置２０に順次蓄積される。
【００１０】
メッセージログの各メッセージは、少なくともタイムスタンプ及びプロトコルが設定された「ヘッダ」と、“[field#id]=[val]”という文字列形式でメッセージの実体が記述された「ボディ」と、を含んで構成される。ボディには、所定の区切り文字（例えば空白など）を用いて、複数のメッセージ実体を記述することができる。メッセージ実体の一部を示す [field#id]は、プロトコルごとに別途定義された値を持つ。また、１トランザクションの同一プロトコル間では、メッセージ実体の一部を示す[field#id]に続く［val」は、すべて同じ値を持つ。
【００１１】
キーワード自動抽出装置３０は、汎用コンピュータを用いて構築され、そのハードディスクなどの外部記憶装置にインストールされた紐付けキーワード自動抽出プログラムを実行することで、紐付けキーワード抽出に係る２つのステップを実現する。
【００１２】
図３は、電子商取引システム１０においてトランザクションが処理されていないときに、システム管理者などの指示に応じて実行される第１ステップの処理内容を示す。なお、キーワード自動抽出装置３０において第１ステップが実行されることで、キーワード抽出手段が実現される。
【００１３】
ステップ１（図では「Ｓ１」と略記する。以下同様）では、電子商取引システム１０のＷｅｂサーバ１０Ａに対して同一のトランザクション処理を複数回依頼し、図４に示すように、その処理結果たる複数のメッセージログを外部記憶装置２０に順次採取する。メッセージログには、少なくとも、メッセージを識別するシーケンス番号（Seq.id)，プロトコルを区別する文字列（protocol）及びメッセージ実体を示す文字列（[field#id]=[val]）が関連付けられたメッセージが登録される。なお、図４は、２つのメッセージログが採取された様子を示しているが、その数は３つ以上であってもよい。
【００１４】
ステップ２では、外部記憶装置２０から時系列にメッセージログを１件読み込む。
ステップ３では、メッセージログから時系列にメッセージを１件読み込む。
ステップ４では、メッセージから紐付けキーワードをすべて抽出する。即ち、メッセージにおいて“[field#id]=[val]”で記述される文字列をすべて抽出し、図５に示すように、シーケンス番号，プロトコル及び紐付けキーワードを関連付けたメッセージを作成する。そして、メモリなどの記憶装置に確保されたテーブルに、キーワード情報として順次登録する。なお、図５に示すキーワード情報は、１つのメッセージログからすべてのメッセージが抽出された様子を示している。
【００１５】
ステップ５では、メッセージログの最後のメッセージまで処理したか否かを判定する。そして、最後のメッセージまで処理したならばステップ６へと進む一方（Ｙｅｓ）、最後のメッセージまで処理していなければステップ３へと戻る（Ｎｏ）。
【００１６】
ステップ６では、外部記憶装置２０に採取された最後のメッセージログまで処理したか否かを判定する。そして、最後のメッセージログまで処理したならばステップ７へと進む一方（Ｙｅｓ）、最後のメッセージログまで処理していなければステップ２へと戻る（Ｎｏ）。
【００１７】
ステップ７では、紐付けキーワードを絞り込む。即ち、キーワード情報の紐付けキーワードのうち、図６において四角で囲んだもののように、そのメッセージにしか存在していないものを削除する。そして、キーワード情報に残った紐付けキーワードのうち、図７に示すように、最小数の紐付けキーワードですべてのメッセージを紐付け可能なものを選択する。なお、図７においては、紐付けキーワード“T100”でメッセージ000，001，002，005及び006が紐付けられると共に、紐付けキーワード“10000”でメッセージ002，003及び004が紐付けられるため、２つの紐付けキーワード“T100”及び“10000”で紐付け処理が可能なことを示している。
【００１８】
ステップ８では、プロトコル別紐付けキーワード情報を作成する。即ち、図８に示すように、各トランザクションに係るメッセージログのキーワード情報を比較し、トランザクションごとに値が異なる紐付けキーワードを「明らかに利用可能である」、異なるトランザクション間で値が同じ紐付けキーワードを「利用可能性がある」と判定する。なお、図８に示す例においては、明らかに利用可能である紐付けキーワードは“T100”及び“T101”、利用可能性がある紐付けキーワードは“10000”であると判定する。そして、図９に示すように、明らに利用可能である紐付けキーワード（Uniq.)及び利用可能性がある紐付けキーワード（Sess.）について、プロトコルごとに、これらを特定するメッセージ実体の一部[field#id]を関連付け、プロトコル別紐付けキーワード情報として保存する。
【００１９】
このような第１ステップを実行することで、複数回実行させた同一トランザクションの処理結果から、メッセージをトランザクションごとに関連付けるために利用される紐付けキーワードが抽出される。このとき、紐付けキーワードとして、明らかに利用可能であるもの（第１の文字列）に加え、利用可能性があるもの（第２の文字列）も抽出される。そして、明らに利用可能である紐付けキーワード及び利用可能性がある紐付けキーワードについて、プロトコルごとに、これらを特定するメッセージ実体の一部[field#id]を関連付けたプロトコル別紐付けキーワード情報が作成される。
【００２０】
また、プロトコル別に、明らかに利用可能である紐付けキーワード及び利用可能性がある紐付けキーワードが抽出されるため、紐付けキーワードのグループ化を通して、その後の処理を簡略化することができる。
【００２１】
図１０は、システム管理者などの指示に応じて、外部記憶装置２０に蓄積されたメッセージログから紐付けキーワードを抽出及び確定する第２ステップの処理内容を示す。ここで、第１ステップの実行後、電子商取引システム１０が実際に運用された結果、トランザクションに関するメッセージログが外部記憶装置２０に蓄積されているものとする。なお、キーワード自動抽出装置３０において第２ステップが実行されることで、キーワード確定手段が実現される。
【００２２】
ステップ１１では、プロトコル別紐付けキーワード情報を参照して、図１１に示すように、外部記憶装置２０に蓄積されたメッセージログの各メッセージの紐付けを実施する。即ち、紐付けキーワードを特定する値を用いて、メッセージログから紐付けキーワードを抽出し、これを利用して各メッセージをトランザクションごとに関連付けたトランザクションデータを作成する。
【００２３】
ステップ１２では、トランザクションデータを１件読み込む。
ステップ１３では、各トランザクションデータごとに、図１２に示すように、トランザクションを識別する識別子（id），処理開始日時，処理終了日時及び利用可能性がある紐付けキーワードを関連付けたレコードを作成する。そして、メモリなどの記憶装置に確保されたテーブルに、トランザクション情報として順次登録する。ここで、トランザクションの処理開始日時及び処理終了日時は、そのトランザクションの開始及び終了に係るメッセージのヘッダに設定されたタイムスタンプを参照すればよい。また、利用可能性がある紐付けキーワードは、図９に示すプロトコル別紐付けキーワード情報を参照し、各メッセージから適宜抽出すれよい。
【００２４】
ステップ１４では、最後のトランザクションデータまで処理したか否かを判定する。そして、最後のトランザクションデータまで処理したならばステップ１５へと進む一方（Ｙｅｓ）、最後のトランザクションデータまで処理していなければステップ１２へと戻る（Ｎｏ）。
【００２５】
ステップ１５では、図１２に示すトランザクション情報からレコードを１件読み込む。
ステップ１６では、レコードの処理開始日時及び処理終了日時を参照し、これと実行時間に重なりのあるトランザクションがあるか否かを判定する。そして、実行時間に重なりのあるトランザクションがあればステップ１７へと進む一方（Ｙｅｓ）、実行時間に重なりのあるトランザクションがなければステップ１９へと進む（Ｎｏ）。
【００２６】
ステップ１７では、実行時間に重なりのあるトランザクションのレコード間に、共通する紐付けキーワードがあるか否かを判定する。そして、共通する紐付けキーワードがあればステップ１８へと進む一方（Ｙｅｓ）、共通する紐付けキーワードがなければステップ１９へと進む（Ｎｏ）。
【００２７】
ステップ１８では、プロトコル別紐付けキーワード情報及びトランザクション情報から、共通する紐付けキーワードに係るデータを削除する。
ステップ１９では、トランザクション情報の最後のレコードまで処理したか否かを判定する。そして、最後のレコードまで処理したならばステップ２０へと進む一方（Ｙｅｓ）、最後のレコードまで処理していなければステップ１５へと戻る（Ｎｏ）。
【００２８】
ステップ２０では、メッセージをトランザクションごとに関連付けるための紐付けキーワードを確定する。即ち、外部記憶装置２０に蓄積されたメッセージログから、プロトコル別紐付けキーワード情報に登録された文字列Uniq.及びSess.に続く文字列（[val]）を確定する。なお、最終的に特定された紐付けキーワードは、任意の時点で参照可能とすべく、例えば、外部記憶装置にテキスト形式で書き込んだり、プリンタなどの印刷装置から出力すればよい。
【００２９】
このような第２ステップを実行することで、利用可能性がある紐付けキーワードの利用可否が判定され、その判定結果を参酌して最終的な紐付けキーワードが確定される。即ち、異なるトランザクションに出現した同一の文字列は、その実行時間に重なりがなければ、メッセージをトランザクションごとに関連付ける紐付けキーワードとして利用可能であると判定される。
【００３０】
このため、メッセージを紐付ける紐付けキーワードとして、トランザクションごとに一意な文字列に加え、実行時間に重なりのないトランザクションで共通する文字列も利用可能となることから、メッセージの紐付け精度を向上させることができる。また、このような紐付けキーワードは、第１ステップ及び第２ステップを経て自動的に抽出されるため、その抽出に係る労力が少なく、管理コスト削減を図ることもできる。
【図面の簡単な説明】
【００３１】
【図１】キーワード自動抽出装置の一実施形態を示す構成図
【図２】メッセージログの説明図
【図３】紐付けキーワード抽出に係る第１ステップの処理内容を示すフローチャート
【図４】第１ステップにおいて採取されたメッセージログの説明図
【図５】紐付けキーワードを抽出したキーワード情報の説明図
【図６】紐付けキーワードを絞り込む処理の説明図
【図７】紐付けキーワードを絞り込んだキーワード情報の説明図
【図８】各トランザクションのキーワード情報から紐付けキーワードを特定する処理の説明図
【図９】プロトコル別紐付けキーワード情報の説明図
【図１０】紐付けキーワード抽出に係る第２ステップの処理内容を示すフローチャート
【図１１】第２ステップにおいてトランザクションの紐付け処理を実施した様子を示す説明図
【図１２】トランザクション情報の説明図
【符号の説明】
【００３２】
１０    電子商取引システム
１０Ａ  Ｗｅｂサーバ
１０Ｂ  ＡＰサーバ
１０Ｃ  ＤＢサーバ
２０    外部記憶装置
３０    キーワード自動抽出装置
【図１】
2010044566.tif 000003
【図２】
2010044566.tif 000004
【図３】
2010044566.tif 000005
【図４】
2010044566.tif 000006
【図５】
2010044566.tif 000007
【図６】
2010044566.tif 000008
【図７】
2010044566.tif 000009
【図８】
2010044566.tif 000010
【図９】
2010044566.tif 000011
【図１０】
2010044566.tif 000012
【図１１】
2010044566.tif 000013
【図１２】
2010044566.tif 000014