(57)【要約】  【課題】  本発明は、上記従来の課題に鑑み、手作業によらず、かつ、システム単位で専用のプログラムを作成せずとも、システム管理者が、容易にシステム分析の名寄せ処理をおこなうことを目的とする。  【解決手段】  名寄せに関する各種ルールが記憶された名寄せルール記憶手段３と、入力データからパラメータ部分を切り出すログ分解手段２と、ログ分解手段２によって分解されたログから名寄せする初期条件を自動生成し、名寄せルール記憶手段３に記憶する初期ルール自動生成手段４と、名寄せルール記憶手段に記憶されているルールに基づき、ログ分解手段２により分解された各入力データを名寄せ処理する名寄せ処理手段５と、名寄せ処理手段５による名寄せ処理の結果を表示する名寄せ結果表示手段６と、利用者の指示より、名寄せルール記憶手段に記憶されている名寄せルールを編集する名寄せルール編集手段７と、を有する事を特徴とする。  【選択図】  図１
2006236280.tif 000002
【特許請求の範囲】
【請求項１】
名寄せに関する各種ルールが記憶された名寄せルールを記憶可能なコンピュータを、
入力データからパラメータ部分を切り出すログ分解手段と、
前記ログ分解手段によって分解されたログから名寄せする初期条件を自動生成し、前記コンピュータに記憶する初期ルール自動生成手段と、
前記コンピュータが記憶しているルールに基づき、前記ログ分解手段により分解された運用ログの各入力データを名寄せ処理する名寄せ処理手段と、
前記名寄せ処理手段による名寄せ処理の結果を表示する名寄せ結果表示手段と、
利用者の指示より、記憶している名寄せルールを編集する名寄せルール編集手段と
として機能させることを特徴とする名寄せ支援プログラム。
【請求項２】
前記名寄せ結果表示手段は、組み合わせの種類数と入力データの所定桁をとの関連を、名寄せ処理した場合と名寄せ処理しなかった場合のグラフを表示する名寄せ効果グラフを表示することを特徴とする請求項１記載の名寄せ支援プログラム。
【請求項３】
前記名寄せ結果表示手段は、入力データに含まれるパラメータとその値の組と、応答時間の関係を結びつけたダイヤグラム表示を行うことを特徴とする請求項１に記載の名寄せ支援プログラム。
【請求項４】
前記名寄せ結果表示手段は、名寄せ後の入力データの種類ごとに、該当プログラムの処理時間の時区間と、該当する処理の発生回数の全発生回数に対する比を示すヒストグラムを表示することを特徴とする請求項１に記載の名寄せ支援プログラム。
【請求項５】
前記名寄せルール編集手段は、前記名寄せ結果表示手段は、入力データに含まれるパラメータとその値の組と、応答時間の関係を結びつけたダイヤグラムを生成するとともに、該ダイアグラムを応答時間でクラスタリングし、応答時間の偏りを判定するとともに、偏りがあると判定した場合は、偏りがなかったパラメータの名寄せルールに校正する編集を行うことを特徴とする請求項１記載の名寄せ支援プログラム。
【請求項６】
前記名寄せルール編集手段は、同一のプログラム名に対するヒストグラムを複数生成し、記憶されているルールを、その応答時間の分散の一番小さい２つのヒストグラムの融合ルールに校正する編集を行うことを特徴とする請求項１記載の名寄せ支援プログラム。
【請求項７】
名寄せに関する各種ルールが記憶された名寄せルール記憶手段と、
入力データからパラメータ部分を切り出すログ分解手段と、
前記ログ分解手段によって分解されたログから名寄せする初期条件を自動生成し、前記名寄せルール記憶手段に記憶する初期ルール自動生成手段と、
前記名寄せルール記憶手段に記憶されているルールに基づき、前記ログ分解手段により分解された運用ログの各入力データを名寄せ処理する名寄せ処理手段と、
前記名寄せ処理手段による名寄せ処理の結果を表示する名寄せ結果表示手段と、
利用者の指示より、名寄せルール記憶手段に記憶されている名寄せルールを編集する名寄せルール編集手段と、
を有する事を特徴とする名寄せ支援装置。
【請求項８】
前記名寄せ結果表示手段は、組み合わせの種類数と入力データの所定桁をとの関連を、名寄せ処理した場合と名寄せ処理しなかった場合のグラフを表示する名寄せ効果グラフを表示することを特徴とする請求項７記載の名寄せ支援装置。
【請求項９】
コンピュータが、
入力データからパラメータ部分を切り出すログ分解ステップと、
前記ログ分解すステップによって分解されたログから名寄せする初期条件を自動生成し、名寄せに関する各種ルールが記憶された名寄せルールを記憶する初期ルール自動生成ステップと、
記憶しているルールに基づき、前記ログ分解手段により分解された運用ログの各入力データを名寄せ処理する名寄せ処理ステップと、
前記名寄せ処理ステップによる名寄せ処理の結果を表示する名寄せ結果表示ステップと、
利用者の指示より、記憶している名寄せルールを編集する名寄せルール編集ステップと
とを実行することを特徴とする名寄せ支援方法。
【請求項１０】
前記名寄せ結果表示ステップでは、組み合わせの種類数と入力データの所定桁をとの関連を、名寄せ処理した場合と名寄せ処理しなかった場合のグラフを表示する名寄せ効果グラフを表示することを特徴とする請求項９記載の名寄せ支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂサーバ・アプリケーションサーバ・データベースサーバからなるＷＥＢシステムなど複数のサーバより構成されるシステムの性能監視の処理を行う前段階として、対象となるデータの関連が深いものをまとめる名寄せ処理に関する発明である
【背景技術】
【０００２】
従来、各サーバのＣＰＵの利用率・サーバ内で利用されているキャッシュのヒット率など、サーバ個々の状態を監視する事は行われている。
【０００３】
しかしながら、近年、Ｗｅｂサーバ・アプリケーションサーバ・データベースサーバからなるＷＥＢシステムなど複数サーバが連携したシステムが一般的となりつつあり、このようなシステムでは、あるリクエストがあると、その処理をＷｅｂサーバが受け、アプリケーションサーバが、リクエストに応じたデータベースサーバへの検索依頼を出すというように、各サーバ同士が連携を行いながら処理を行うため、各サーバ単体の状態だけを監視しても、システムの監視・、障害・ボトルネック部分の解析を行う事が難しい。
【０００４】
これらを解析するためには、大量のリクエストに関する処理それぞれを追っていき、同種のデータをまとめる「名寄せ処理」と呼ばれる処理を行った後、システム分析を行う必要がある。
【０００５】
通常、名寄せとは、企業の顧客情報管理などでデータベース内に重複して登録されている同一人物を、名前、電話番号、住所などをキーにして集約することを示す。
【０００６】
例えば、Ａさんという人物に関する顧客データが顧客情報データベース内に重複して登録されていている場合、それぞれの顧客データ内にある電話番号や住所の情報を比較して、それらも同一であった場合、それを１つのレコードに集約する。
【０００７】
しかし、場合によっては電話番号だが途中で変更になったため異なっていることもあれば、住所の表記として省略形が使われているため、単に文字列の比較を行っただけでは同一であるかどうか判定できない場合もある。名寄せ処理とは、この様な際に対する処理であり、表記の標準化、不要なパラメータの削除、同意の表記群のグループ化などの処理である。
【０００８】
本発明が対象としている名寄せ処理は、上記のような顧客情報管理などで行う名寄せ処理ではなく、システム分析におけるシステムの運用ログの解析を行う際に行う前処理であり、システム分析における名寄せ処理では対象とする入力データの構造や性質、あるいは目的が異なっている。
【０００９】
ここでは、Webサーバの性能分析を例にして、その違いを説明し、本発明の特徴となっているシステム分析における名寄せ処理に必要な特有の用件について述べる。
【００１０】
Webサーバの運用ログには、どのページ（URL）にアクセスしたかとその応答時刻が記録されている。運用ログに記録されているこれらの情報を用いて、ページごとにサーバ側で要求されたページの応答をするのにかかった平均処理時間を求める処理を行うことで、Webサーバの性能分析を行うことを考える。
【００１１】
Webページの名前であるURLについてもう少し詳しく説明する。
【００１２】
Webサーバの運用ログに記録されているURLには、単一のファイル名を示す静的なURLと、プログラムを実行してページを動的に生成する動的なURLが混在している。動的なURLは実行されるプログラム名とその引数の列から構成されている。
URLの例
(0)http://hostname/static.html
(1)http://hostname/dynamic.asp?PARAM1=v1&PARAM2=v2&PARAM3=v3&PARAM4=v4
(2)http://hostname/dynamic.asp?PARAM1=v1&PARAM3=v3&PARAM4=v4
(3)http://hostname/dynamic.asp?PARAM1=vx&PARAM3=v3&PARAM5=v5
(4)http://hostname/program.asp?PARAM2=v2&PARAM4=v4
(0)は静的なURLの例である。http://hostname/static.htmlはhostnameというサーバのstatic.htmlというファイルの名前を表している。
【００１３】
動的なURLについて(1)を例に説明する。動的なURLはプログラムファイルの名前とそのプログラムに渡される引数の並びで構成されている。サーバではこのプログラムを実行してその結果の内容を要求元に返す。
【００１４】
http://hostname/dynamic.aspまでがプログラム名である。その後ろの？に続く部分がこのプログラムに渡される引数のリストである。引数は、パラメータの名前とその値の組を&で区切った形式で表記されている。(1)の場合はPARAM1,PARAM2,PARAM3,PARAM4というパラメータが存在し、それぞれ、v1,v2,v3,v4という値をもっている。このように、動的なURLはその内部に構造をもつ。
【００１５】
(2),(3),(4)も同様に動的なURLの例である。
【００１６】
このようにURLとそのページのアクセス要求をうけてから、ページの内容を生成し要求もとに返すまでが、Webサーバにおける処理時間となり、観測した運用ログ（入力データ）にはURLと処理時間が記録されている。
【００１７】
ここで、Webサーバの運用管理者が、そのサーバが正常に動作しているかを判断するために、ページごとのアクセスに要した平均処理時間を求めようとした場合、URLごとの処理回数で各処理時間の和を割ったものが平均処理時間となる。
【００１８】
しかし、実際には運用管理者が知りたいのは、ある動的なURLを処理するプログラムごとの平均処理時間であったり、あるいは、そのプログラムに渡される引数のパターンごとの平均処理時間であったりするため、URLを単なる文字列として扱うだけでは不十分である。なぜなら、URLを単なる文字列として扱ってしまうと、引数の部分が微妙に異なる非常に多種のURLが存在することになってしまう。
例えば、上のURLの例でいうと、(1),(2),(3)はともにdynamic.aspというプログラムを含むURLである。
【００１９】
さらに、(1)にはPARAM1=v1&PARAM2=v2&PARAM3=v3&PARAM4=v4という引数がともなっているが、(2)にはPARAM2=v2というパラメータを持たず、PARAM1=v1&PARAM3=v3&PARAM4=v4という引数をとっている。
【００２０】
もしも、運用管理者が着目しているのがプログラムごとの平均処理時間であれば、引数部分をすべて無視して、プログラム名の部分だけを用いて統計処理を行えばよい。
【００２１】
しかし、場合によってはPARAM2というパラメータをもっているかどうかで、dynamic.aspプログラムの処理内容が大きく異なるときには、引数部分をすべて無視して平均処理時間を出したとしても、正しい統計値を得ることができず、パラメータが特定の組み合わせであったときに発生するような潜在的な異常を見落としてしまうかもしれない。このような可能性がある場合には、プログラム名に加えてPARAM2という引数の部分の有無も含めて、平均処理時間を求める必要がある。さらには、引数の有無だけにとどまらず、その引数の値によって処理内容が異なるような場合もある。
【００２２】
この場合、求められる名寄せの結果はすべてのパラメータを削除する名寄せであれば、
名寄せ後のURLの例１
(0)http://hostname/static.html
⇒http://hostname/static.html
(1)http://hostname/dynamic.asp?PARAM1=v1&PARAM2=v2&PARAM3=v3&PARAM4=v4
⇒http://hostname/dynamic.asp
(2)http://hostname/dynamic.asp?PARAM1=v1&PARAM3=v3&PARAM4=v4
⇒http://hostname/dynamic.asp
(3)http://hostname/dynamic.asp?PARAM1=vx&PARAM3=v3&PARAM5=v5
⇒http://hostname/dynamic.asp
(4)http://hostname/program.asp?PARAM2=v2&PARAM4=v4
⇒http://hostname/dynamic.asp
であるかもしれないし、あるいは、パラメータPARAM2だけが意味をもっているのであれば、
名寄せ後のURLの例２
(1)http://hostname/static.html
⇒http://hostname/static.html
(2)http://hostname/dynamic.asp?PARAM1=v1&PARAM2=v2&PARAM3=v3&PARAM4=v4
⇒http://hostname/dynamic.asp? PARAM2=v2
(3)http://hostname/dynamic.asp?PARAM1=v1&PARAM3=v3&PARAM4=v4
⇒http://hostname/dynamic.asp
(4)http://hostname/dynamic.asp?PARAM1=vx&PARAM3=v3&PARAM5=v5
⇒http://hostname/dynamic.asp
(5)http://hostname/program.asp?PARAM2=v2&PARAM4=v4
⇒http://hostname/dynamic.asp? PARAM2=v2
のような名寄せが必要であるかもしれない。
【００２３】
ここで重要なのは、どのような名寄せがWebサーバの性能分析を行うのに必要であるかが、前処理の段回では明示的にはわからない点である。場合によってはシステム分析を行う運用管理者自身にもこの時点ではわかっていないことも多い。
【００２４】
例えば、あるプログラムのどのパラメータがそのプログラムの処理にどのような影響を与えているかは、プログラムの設計者の頭の中、あるいは設計仕様書にしか記載されていないことも多い。往々にして、システムの性能分析を行う運用管理者はシステムの設計者とは別の人間であることも多い。また、実装とプログラムの仕様に記載されている内容が異なってしまっていることもありえる。
【００２５】
従って、入力データの性質を保ちつつ、その後のシステム分析やレポーティングの支援となるような名寄せを行うには、実際に観測された入力データから運用管理者が発見的かつ対話的に名寄せの効果を確認しながら名寄せのルールを校正することが可能なサイクルを提供する必要がある。
【００２６】
一般に、システムの性能分析を行う場合は、システムになんらかの問題が潜在する可能性がある場合が多く、性能分析によってその問題点を洗い出す、あるいはその影響範囲を絞り込むことが求められる。
【００２７】
従来は、この部分の処理はその都度、専用の前処理のプログラムを作成し、この作成されたプログラムにより名寄せを中心とした前処理を行い、目的のシステム分析を行う過程を試行錯誤的に行っていたため、前処理と分析が一体となってその都度プログラムしていることが一般的であった。
【特許文献１】特開平４−２９７２２９号公報
【発明の開示】
【発明が解決しようとする課題】
【００２８】
しかしながら、従来のように、Ｗｅｂサービスシステムのような大規模なシステムにおいては、その対象となるデータ数は膨大であり、大量のデータを完全な手作業により名寄せ処理する場合、作業がかなり大変なものとなってしまう。また、システム解析のために、専用のプログラムを作成する方式も、必ずシステム分析には、プログラムの開発に関する作業が発生してしまい、結果として、システム分析の前処理である名寄せ処理には時間がかかってしまっていた。
【００２９】
本発明は、上記従来の課題に鑑み、手作業によらず、かつ、システム単位で専用のプログラムを作成せずとも、システム管理者が、容易にシステム分析の名寄せ処理をおこなうことを目的とする。
【課題を解決するための手段】
【００３０】
本発明は、上記目的を達成するために、名寄せに関する各種ルールが記憶された名寄せルール記憶手段と、入力データからパラメータ部分を切り出すログ分解手段と、前記ログ分解手段によって分解されたログから名寄せする初期条件を自動生成し、前記名寄せルール記憶手段に記憶する初期ルール自動生成手段と、前記名寄せルール記憶手段に記憶されているルールに基づき、前記ログ分解手段により分解された運用ログの各入力データを名寄せ処理する名寄せ処理手段と、前記名寄せ処理手段による名寄せ処理の結果を表示する名寄せ結果表示手段と、利用者の指示より、名寄せルール記憶手段に記憶されている名寄せルールを編集する名寄せルール編集手段と、を有する事を特徴とする。
【発明の効果】
【００３１】
本発明は、上記したように、一旦、システムの運用ログから、システムが仮の初期ルールを自動的に作成し、その定義に従い名寄せした結果をシステム管理者に提示し、更にその自動生成された名寄せルールをシステム管理者が編集できるようにしたので、単純に手作業での名寄せを行う場合に比べ、その名寄せ処理が容易化できる。
【００３２】
また、システム側では、一般的な仮のルールで名寄せ処理を行うだけでも、システム管理者の名寄せ作業の支援の効果は得られるので、各システムごとに専用の名寄せ支援プログラムを作成する手間も省けるので、システム管理者の作業負担を低くする事ができる。
【発明を実施するための最良の形態】
【００３３】
以下、本発明を実施するための最良の形態について述べる。
【００３４】
図１は、本発明の一実施の形態における、名寄せ支援システムのシステム構成図である。
【００３５】
図１において、１はシステムの運用ログが記憶された運用ログファイルで、対象のシステムの運用ログそのものが記憶されている。２は、システムの運用ログファイルに記憶されている入力データからパラメータ部分を切り出すログ分解手段で、その結果を分解結果記憶部２１に記憶する、３は、名寄せの各種ルールが記憶された名寄せルール記憶手段である。４は、分解結果記憶部２１に記憶されている分析結果を基に名寄せの初期ルールを自動生成し、名寄せルール記憶手段３へ生成した初期ルールを記憶させる初期ルール自動生成手段である。５は、名寄せルール記憶手段３に記憶されている名寄せルールを基にログ分解手段により分解された入力データの名寄せ処理を行う名寄せ処理手段、６は、名寄せ処理手段５による名寄せ処理の結果をシステム管理者に対し、可視表示させる名寄せ結果表示手段６で、後述する様に効果グラフ表示部６１・ダイヤグラム表示部６２及びヒストグラム表示部６３の、３つの表示部を有する。
【００３６】
なお図示していないが、本システムには、システム管理者が、システム各種入力・指示を行うためのキーボード・マウスなどの入力を受け付ける入力手段、名寄せ結果表示手段の表示内容を実際に表示させるディスプレイが付随しており、入力（指示）、表示に関し、特に記載のないものは、この図示しない入力手段・ディスプレイによって行われているものとする。
【００３７】
７は、名寄せ名寄せ結果表示手段６の結果を閲覧したシステム管理者の指示に基づき、名寄せルール記憶手段３に記憶されている名寄せルールを編集する名寄せルール編集手段である。また、８は名寄せルール記憶手段３に記憶されている名寄せルールが更新されるたび名寄せルールファイル９へ名寄せルールを蓄積させる名寄せルール出力手段である。
【００３８】
以上のように構成された名寄せ支援システムにおいて、図２のフローチャートを使い、以下、その動作について説明する。
【００３９】
まず、運用ログ１が入力されるとログ分解手段２により、ログの分解処理が行われる（Ｓ１００１）。具体的には、ログ分解処理手段１が、入力データの中から、ファイル名、プログラム名及び引数などのパラメータ部分を切り出す。本実施の形態の場合、対象としているＷｅｂシステムの場合、運用ログには、通常、タイムスタンプとＵＲＬ名が対になって記憶されており、ログ分解処理手段２は、運用ログに記憶されているＵＲＬに含まれているプログラム名またはファイル名と、パラメータ名、及び、パラメータの値部分を切り出している。
例えば、以下の入力データがあった場合について説明する。
http://hostname/dynamic.asp?PARAM1=v1&PARAM2=v2&PARAM3=v3&PARAM4=v4
ログ分解手段２は、プログラム名の識別子（例えばasp）を認識するとともに?以降にあるパラメータ部分の抽出を行う。
ログ分解手段２は、また、「？」の前の部分記述部分をプログラム名として認識し、該プログラム名の後方にある「?」以降をパラメータの記述部分と認識し、「&」でパラメータ式が記述され「=」の左辺はパラメータ名・右辺はパラメータ値と認識する処理を行う。
【００４０】
よって、上記した入力データの場合、ログ分解手段２は、
プログラム名：http://hostname/dynamic.asp
パラメータ名：PARAM1／パラメータ値：v1
パラメータ名：PARAM2／パラメータ値：v2
パラメータ名：PARAM3／パラメータ値：v3
パラメータ名：PARAM4／パラメータ値：v4
を切り出し、分析結果記憶手段２１に記憶する。
この処理を入力データ全てにおいて行う。
【００４１】
次に該ログ分解手段２による処理が行われた入力データは、初期ルール自動生成手段４に送られ、該入力データを利用した名寄せルールを自動生成する（Ｓ１００２）。
【００４２】
この自動生成処理について図３を用いて説明する。なお、図３は、初期ルール自動生成手段３が行う初期ルール自動生成処理の処理フローチャートであり、特に明記の無い限り、初期ルール自動生成手段３が処理しているものとする。
【００４３】
まず、システム管理者より、パラメータの全削除を行うか否かの指示、パラメータ種類数の上限値ｋと入力でータ数の上限値ｎを受け付け（Ｓ２００１）、その結果を名寄せルールの初期値として名寄せルール記憶手段３に記憶する（Ｓ２００２）。
【００４４】
次に、Ｓ２００１で、システム監視者よりパラメータの全削除の指示を受けたか田舎の判断を行う（Ｓ２００３）。
【００４５】
ここで、指定されていなければ、入力データに含まれるプログラム名とパラメータの組み合わせ数を数え上げる（Ｓ２００４）。
【００４６】
Ｓ２００４の処理の後、入力データの全てに共通に含まれるパラメータの有無をチェックする（Ｓ２００５）。ここで、全てに含まれるパラメータが存在する場合、そのパラメータを削除する処理を行う（Ｓ２００６）。
【００４７】
これは、すべての手続きに現れるパラメータ名はその有無によって観測しているシステムの振る舞いに影響を与えていないと想定されるため、そのようなパラメータを削除しておかないと、正確な名寄せ処理が行えなくなってしまうために行うものである。
【００４８】
本実施の形態が対象とするＷｅｂシステムでのパラメータ削除処理の例について以下説明する。
【００４９】
下のような４つの入力データがあった場合について説明する
(1)http://hostname/dynamic.asp?PARAM1=v1&PARAM2=v2&PARAM3=v3&PARAM4=v4
(2)http://hostname/dynamic.asp?PARAM1=v1&PARAM3=v3&PARAM4=v4
(3)http://hostname/dynamic.asp?PARAM1=vx&PARAM3=v3&PARAM5=v5
(4)http://hostname/program.asp?PARAM2=v2&PARAM4=v4
上記の入力データは、上記したログ分解手段２で図４に示されるように、各入力データごとにプログラム名とパラメータ名及びそのパラメータ値が切り出され、分解結果記憶部２１に記憶されている。
【００５０】
ここで初期ルール自動生成手段４は、同じプログラム名で、共通したパラメータ名を有していないかをチェックする。図４の場合、パラメータPARAM3=v3は出現したすべてのプログラムdynamic.aspで用いられているため、このパラメータを削除する名寄せルールを生成する。
【００５１】
本実施の形態の場合、初期ルール自動生成手段４は、正規表現形式による削除ルールを定義する。
例えば、dynamic.aspのPARAM3というパラメータを削除するルールは正規表現を用いて次のように定義する。
プログラム名
“http://hostname/dynamic.asp”
パラメータ
“PARAM3=.*”  =>””  
このルールはプログラム名の照合とパラメータの置換を表現する２つの正規表現からなり、「＝＞」の左辺の正規表現にマッチした部分を右辺に置換することを意味する。
【００５２】
プログラム名に関しては照合だけで置換を行わないので、＝＞と右辺を省略する。
【００５３】
なお、本実施の形態での正規表現では “.” はすべての文字にマッチし、その後ろの*は０回以上の繰り返しを意味するため、.*はパラメータ部分のすべての文字列にマッチするものとする。これは、以後の処理においても同じである。
また、正規表現は「詳説  正規表現  第2版」Jeffrey E F. Friedl著http://www.oreilly.co.jp/books/4873111307/  などで開示されている公知の技術で、テキストデータの照合や置換を行うためのルールの表記法として数多くの計算機言語やツールで提供されている。
そして、初期ルール自動生成手段４は、生成されたデータを名寄せルール記憶手段３へ記憶する。
【００５４】
次に、初期ルール自動生成手段４は、入力データのパラメータの種類数がステップＳ２００１で入力された値より大きいかを判断し（Ｓ２００７）、大きい場合は、パラメータ値の置き換えルールを作成する（Ｓ２００８）。
【００５５】
パラメータの中には個々の処理を区別するために、一連の識別番号を保持しているものや、ユーザIDのように処理の対象となるもの識別子を保持していると思われるものもある。これらの識別番号や識別子は処理自体の振る舞いを規定するものではないことが多い。このようなものを判別するために、初期ルール自動生成手段４が、入力レコードのパラメータごとの値の種類を数えて、その種類が非常に多いものについてはそれを書き換えるルールを生成する。
【００５６】
例えば、以下のような入力データがログ分解手段２に投入されたものとする。
(1)http://hostname/dynamic.asp?SESSION_NO=001&UID=aaaaa&PARAM3=v3
(2)http://hostname/dynamic.asp?SESSION_NO=002&UID=bbbbb&PARAM4=v4
(3)http://hostname/dynamic.asp?SESSION_NO=003&UID=ccccc&PARAM5=v5
ここで、ログ分解手段２は、Ｓ１００１において、図５に示すようにプログラム名・パラメータ名及びパラメータ値を切り出して分解結果記憶部２１に記憶しているものとする。
【００５７】
初期ルール自動生成手段４は、分解結果記憶手段２１を参照し、パラメータ名の同じもの（上記３つのＵＲＬの場合全て）を数え上げ、その数が当初Ｓ２００１でシステム管理者に設定された値ｋより大きい入力データ群があるかを判定し、あれば、それに該当する部分のパラメータ値を固定文字列（本実施の形態では「ｖａｌ」）に変換する処理を行う。
【００５８】
図５に示されるように、入力データ１・２・３は、全てパラメータ名「SESSION_NO」や「UID」を有しており、かつ、そのパラメータ値は入力データごとに異なっている。
【００５９】
初期データ自動生成手段４は、この様な群が多いと、この条件に対応するパラメータ値置き換えルールを自動作成する。
例えば、dynamic.aspのSESSION_NOというパラメータの値をvalという文字列に置換するルールを下記のように正規表現を用いて作成する。
プログラム名
“http://hostname/dynamic.asp”
パラメータ
“SESSION_NO=.*”  =>” SESSION_NO =val”  
初期ルール自動生成手段４は、この作成されたルールを名寄せルール記憶手段３に記憶する。
【００６０】
次に、初期ルール自動生成手段４は、入力データ数が、Ｓ２００１で定義されたｎより小さい場合（Ｓ２００９）、対象パラメータを削除し、プログラム名部分のみ残すルールを作成する（Ｓ２０１０）。
【００６１】
これは、パラメータの種類が非常に多く、それに対して観測された入力データのレコード数が少ない場合には、前述のパラメータの削除や値の書き換えによる名寄せを行ったとしても、名寄せルールに該当する入力レコードが少ないため、名寄せの効果があがらない場合がありえるためである。
【００６２】
初期ルール自動生成手段４は、dynamic.aspのすべてのパラメータを削除するルールを、以下のような正規表現で作成する。
プログラム名
“http://hostname/dynamic.asp”
パラメータ
“.*”  =>””
なお、初期ルール自動生成手段４は、Ｓ２００３において、Ｓ２００１でパラメータ全削除が指定されたと判断した場合も、このＳ２０１０の処理を実行する。
【００６３】
次に、初期ルール自動生成手段４は、プログラム名に変数部分が含まれるかを判定し（Ｓ２０１１）、プログラム名に変数部分が含まれ低た場合は、プログラム名置き換えルールの生成処理を行う（Ｓ２０１２）。
【００６４】
プログラム名の中にはさらにその文字列の中に構造をもち、プログラム名の一部として変数が埋め込まれているものもある。このような場合については入力データからパラメータを切り出すのと同様な方法をもちいて、プログラム名を分解し、変数部分を固定文字列に書き換える名寄せルールを生成する。
例えば、以下の入力データが、ログ分解手段２に入力されたものとする。
(1)http://hostname/aaaaa/dynamic.asp?SESSION_NO=001&PARAM3=v3
(2)http://hostname/bbbbb/dynamic.asp?SESSION_NO=002&PARAM4=v4
(3)http://hostname/ccccc/dynamic.asp?SESSION_NO=003& PARAM5=v5
これは、上記パラメータ値置き換えルールでUIDとして指定されていた「aaaaa」「bbbbb」「ccccc」が含まれ多岐術になっているがために見かけのプログラム名が異なっているが、実は全て、プログラムdynamic.aspでの同様の処理を行っているものである。
【００６５】
初期ルール生成手段４は、分解結果記憶部２１に記憶されている各入力データのプログラム名を「/」で区切られた部分単位で切り出し、同じ部分が異なるのみでその他の部分が異なるプログラム名が所定数以上あった場合、その異なる部分を”val”のような固定文字列に書き換える名寄せルールを生成する。
【００６６】
例えば、上記したデータでは、以下のような表現によってルールを生成する。
プログラム名
“http://hostname/[A-Za-z]+/dynamic.asp” => “http://hostname/val/dynamic.asp”
なお、［A-Z,a-z］は、大文字小文字を含め全ての英文表記を対象とする事を嶋氏、即ち［A-Z,a-z］の部分に何らかの英文表記があれば全て「val」の表記とするルールを自動生成する。
【００６７】
また、この作成されたルールも、初期ルール自動生成手段４によって、名寄せルール記憶手段３に記憶される。
【００６８】
上記した様にして、図２のＳ１００２では、初期ルール自動生成手段４が作成した名寄せルールが名寄せルール記憶手段３に記憶される。
【００６９】
この処理が完了すると次に名寄せ処理手段５が、名寄せルール記憶手段３に記憶されている名寄せルールに従い、名寄せ処理を行う（Ｓ１００３）
この処理が完了すると、名寄せ結果表示手段６が、名寄せ処理手段５が行った名寄せ処理の結果を表示する（Ｓ１００４）。
【００７０】
この表示は、システム管理者が名寄せ支援システムを操作する事によって、効果グラフ表示・ダイヤグラム表示・ヒストグラム表示の何れかが表示できるようになっており、夫々、名寄せ効果グラフ表示部６１・ダイヤグラム表示部６２・ヒストグラム表示部６３が表示処理を行う。
【００７１】
まず、システム管理者が名寄せ効果グラフ表示を選択した場合について説明する。
【００７２】
この選択がなされると、名寄せ効果グラフ表示部６１は、縦軸に組み合わせの種類数、横軸に入力データの所定桁を設定し、入力データの所定桁ごとに、名寄せ処理手段５により、現在の名寄せルール記憶手段３のルールに従い図６に示すように名寄せ処理した場合と名寄せ処理しなかった場合の棒グラフを表示する。
【００７３】
名寄せルールが入力データに現れるパターンの大部分をカバーしていれば、名寄せ効果グラフ上の名寄せ後のデータ種類数は次第に一定の値に収束する。逆に、名寄せルールが入力データに現れるパターンの一部しかカバーしていなければ、名寄せされない入力データが出現しつづけるため、名寄せ後のデータ種類数は収束しないので、この点を、システム管理者が確認することになる。
【００７４】
次に、システム管理者がダイヤグラム表示を選択した場合について説明する。
【００７５】
この選択がなされると、ダイヤグラム表示部６２は、図７に示すように、入力データに含まれるパラメータとその値の組と、応答時間の関係を結びつけたグラフを表示する。
このグラフ表示により、システム管理者は、どのようなパラメータとその値の組が応答時間に影響しているかを確認することができる。
【００７６】
次に、システム管理者がヒストグラム表示を選択した場合について説明する。
【００７７】
この選択がなされると、ヒストグラム表示部６３は、図８に示すように、名寄せ後の入力データの種類ごとに、該当プログラムの処理時間の時区間を横軸に、該当する処理の発生回数の、全発生回数に対する比を縦軸にとった頻度分布のグラフを表示する。
【００７８】
この名寄せ表示の後、システム管理者が、上記グラフの結果を見て、名寄せがうまく言ったかを確認し、もし、名寄せ処理が納得いくものであれば、システムに、処理を終了する指示をだし、納得できないものであれば、名寄せルールの編集処理を行うようシステムに指示する。
【００７９】
この指示を受けたシステムは、処理終了指示ならば、処理を完了し、名寄せルール編集処理の支持であれば、名寄せルール編集手段７を起動する（Ｓ１００５）
Ｓ１００５で、名寄せルール編集手段７を起動すると名寄せ編集手段７による変種処理が行われる（Ｓ１００６）。以下、この名寄せルール編集処理について説明する。
【００８０】
ルール編集手段７の編集は、名寄せ結果表示手段６による表示結果を元に、システム管理者が各種ルールの変更指示を行い、それに合わせて、表示手段６による変更結果の状態表示を行い、変更に伴う名寄せ状態を確認する、ということを繰り返していくことにより行われる。
【００８１】
また、上記したように、名寄せ結果表示手段６による表示は、３種類あり、この名寄せルール編集手段７による編集では、このうちダイヤグラム表示手段６２、ヒストグラム表示部６３のいずれかを利用することにより行われる。
名寄せの対象となる入力データには、多くのパラメータとその値が含まれている。このため、図７で示したように、ダイヤグラム表示部６２による、各パラメータの値とプログラムの応答時間とを結びつけたダイヤグラム表示を行うことで、応答時間がかかるときのパラメータの値がどのような組み合わせをとっていたのかを知ることができる。
応答時間の分布に影響をあたえるようなパラメータやその値は、そのパラメータを名寄せしてしまうと入力データの性質を変えてしまうため、名寄せの対象からはずして、そのパラメータが残るように名寄せルールを生成することが望ましい。
また、逆に、パラメータの組み合わせにかかわらず、応答時間の分布が一点に集中していたり、あるいは広く分布している場合には、それらのパラメータは応答時間には無関係であることから、そのパラメータを削除するように名寄せルールを校正する。
(1)http://hostname/dynamic.asp?PARAM1=v1&PARAM2=v2&PARAM3=v3&PARAM4=v4
(2)http://hostname/dynamic.asp?PARAM1=v1&PARAM3=v3&PARAM4=v4
(3)http://hostname/dynamic.asp?PARAM1=v1&PARAM3=v3&PARAM5=v5
(4)http://hostname/program.asp?PARAM1=v1&PARAM4=v4
ダイヤグラムを用いた名寄せルールの校正で例えば(1)(2)(4)では応答時間が長く、(3)では応答時間が短かった場合、可能性として(3)にだけ含まれるPARAM5が応答時間に影響していることが考えられる。それに対して、PARAM1は(1)から(4)のすべてに含まれるため応答時間に影響を与えていない可能性がある。PARAM2とPARAM3、PARAM4は単独では影響しているかどうか不明である。パラメータの2つ組みについても同様の数え上げを行い、すべての組あわせに対して、応答時間に影響をあたえている可能性のある組み合わせをクラスタリングし、影響を与えていないパラメータが、例えばPARAM2,PARAM3であるならば次のような名寄せルールを生成する。
【００８２】
プログラム名
“dynamic.asp”
パラメータ
“PARAM2=.*”  =>””
“PARAM3=.*”  =>”” 
図９は、このダイヤグラム表示部６２を用いた名寄せルール編集手段７による名寄せルール編集を行う場合のフローチャートである。
【００８３】
まず、ルール編集手段７は、プログラム名を選択する。（Ｓ３００１）。このプログラム名は、名寄せルール編集手段７が、分解結果記憶手段２１から取得したプログラム命の一覧をディスプレイ（図示せず）に表示させ、システム管理者がその表示されたプログラム名の中から選択したプログラム名をルール編集手段７が取得することで行われる。
【００８４】
この選択処理が完了すると、ルール編集手段７は、ダイヤグラム表示部６２に対し、該当プログラムのダイヤグラム表示を行わせる（Ｓ３００２）。
【００８５】
このダイヤグラム表示を応答時間単位でクラスタリングして再表示し（Ｓ３００３）、このクラスタリングした結果、応答時間によって、分布の偏りがあるかを判断し（Ｓ３００４）、ここで偏りがないと判断されると、該プログラム名に対する編集処理を完了する。
【００８６】
逆に、Ｓ３００４にて、分布の偏りがあると判断した場合、ルール編集手段７は、Ｓ３００３でクラスタリングした応答時間のクラスタの１つを抽出し（Ｓ３００５）、抽出したクラスタに属する処理のパラメータの組み合わせをカウントする（Ｓ３００６）。これは、ルール編集手段７が分解結果記憶手段２１に蓄積されている入力データを利用し、該処理を行い、この結果を、ディスプレイに表示することによって行われる。この結果をみたシステム管理者は、パラメータの組み合わせに偏りがあるかチェックし、あれば、入力手段（図示せず）を用い、偏り有無の選択入力を行う。この入力の結果、パラメータの組み合わせに偏りがあると判定された場合（Ｓ３００７）、偏りのなかったパラメータを名寄せ候補として記憶する処理を行う（Ｓ３００８）。
【００８７】
また、Ｓ３００７で偏りがないと判定された、もしくは、Ｓ３００８の処理が完了してれば、ルール編集手段７は、すべてのクラスタをチェックしたのかを判断し（Ｓ３００９）、チェックされていないと判断されれば、Ｓ３００５以降の処理を繰り返し、Ｓ３００９でチェックしたと判定された場合、ルール編集手段７は、対象となるプログラム名すべてにおいてチェックしたかを判断する（Ｓ３０１０）。ここで、チェックが完了していなければ、Ｓ３００１へ戻り、上記した一連の処理を繰り返す。
【００８８】
逆に、ルール編集手段７が、Ｓ３０１０にて、すべてのプログラム名の編集が終了したと判定した場合、Ｓ３００８の処理のたびに記憶してきたパラメータを削除するルールを自動生成し、名寄せルール記憶手段３に追加記憶させる（Ｓ３０１１）。
【００８９】
次にルール編集手段７による、ヒストグラムを用いた名寄せルールの編集処理について説明する。
【００９０】
ヒストグラム表示部６３によるヒストグラム表示は、システム管理者が、プログラム名が同一でパラメータの組み合わせが異なるようないくつかの処理が処理時間において同じ性質をもっているかどうかを判断するため利用する。
【００９１】
処理時間の頻度分布が同じ分布をもつような入力データについては、それらを集約する名寄せ処理を行うように、ルールの修正することがのぞましい。
【００９２】
ヒストグラムを用いた名寄せルールの編集は、類似度の高いヒストグラムを集約するルールを生成することで行う。ヒストグラムの類似度は図１０で示したように、２つのヒストグラムA,Bの重なりの面積であらわすことができる。
プログラム名ごとに、任意の２つのヒストグラムに関してもっとも類似度の高いものを集約する。さらにそれを繰り返して、それ以上集約すると集約する前よりも分散が大きくなってしまうまで繰り返すことで、類似度の高いヒストグラムをもったパラメータの組み合わせを集約することができる。
(1)http://hostname/dynamic.asp?PARAM1=v1&PARAM2=v2&PARAM3=v3&PARAM4=v4
(2)http://hostname/dynamic.asp?PARAM1=v1&PARAM3=v3&PARAM4=v4
(3)http://hostname/dynamic.asp?PARAM1=v1&PARAM3=v3&PARAM5=v5
(4)http://hostname/program.asp?PARAM1=v1&PARAM2=v2＆PARAM4=v4
ヒストグラムを用いた名寄せルールの校正で例えば(1)(2)(4)では互いにヒストグラムの類似度が高く、(3)は類似度が低かった場合、(1),(2),(4)は１つのグループに集約され、(3)は独立していると考えられる。
【００９３】
パラメータの組み合わせをみてみると、PARAM2,PARAM3,PARAM4の組み合わせは(1),(2),(4)に共通し、(3)にはPARAM3,PARAM5が固有に存在する。
【００９４】
したがって、共通に存在するPARAM1,PARAM2を集約する次のような名寄せルールを生成することができる。
プログラム名
“dynamic.asp”
パラメータ
“PARAM1=.*”  =>””
“PARAM3=.*”  =>””  
図１１は、このヒストグラム表示部６３を用いた名寄せルール編集手段７による名寄せルール編集を行う場合のフローチャートである。
【００９５】
以下、このフローチャートを元にヒストグラム表示部６３を用いた名寄せルール編集手段７による名寄せルール編集処理について説明する。
【００９６】
まず、ルール編集手段７は、プログラム名を選択する。（Ｓ４００１）。このプログラム名は、名寄せルール編集手段７が、分解結果記憶手段２１から取得したプログラム命の一覧をディスプレイ（図示せず）に表示させ、システム管理者がその表示されたプログラム名の中から選択したプログラム名をルール編集手段７が取得することで行われる。
【００９７】
この選択処理が完了すると、ルール編集手段７は、ヒストグラム表示部６３に対し、該当プログラムのヒストグラム表示を行わせる（Ｓ４００２）。
【００９８】
次に、ルール編集手段７は、同一のプログラム名を持つ２つのヒストグラムを選択する（Ｓ４００３）。
【００９９】
ここで、ルール編集手段２つのヒストグラムの類似度を計算する。具体的には、上記したように、重なりの面積の比率によって、類似度の計算を行う（Ｓ４００４）。
【０１００】
ルール編集手段７は、現在処理してきた中で、類似度が最大となる２つのヒストグラムを選択し（Ｓ４００５）、その応答時間の分散具合を計算する（Ｓ４００６）。こまたこで、選択した２つのヒストグラムを融合するルールを適用した場合の応答時間の分散を計算し（Ｓ４００７）、今回の対象となった２つのヒストグラムの応答時間の分散と、現在類似度が最大とされる２つのヒストグラムとの応答時間を比較し（Ｓ４００８）、選択した２つのヒストグラムの応答時間の分散が小さいようであれば、２つのヒストグラムを融合するルールを作成し（Ｓ４００９）、このルールに従った名寄せ処理を名寄せ処理手段５に処理させる（Ｓ４０１０）。その後、対象プログラム名に対応した全てのヒストグラムに対するチェックが完了したかを判断し（Ｓ４０１１）、完了していなければＳ４００３以降の処理を繰り返し、完了していれば、全てのプログラム名に対し、該処理を行ったかを確認し（Ｓ４０１２）、完了していなければ、Ｓ４００１以降の処理を繰り返し、完了していれば、処理を完了する。
【０１０１】
なお、名寄せルール編集手段７で編集を行ったルールは処理完了後、名寄せルール記憶手段３に記憶される。
【０１０２】
これら一連の処理が完了すると、名寄せルール出力手段３により、名寄せルール記憶手段３に記憶された名寄せルールファイル９へ記憶する処理が行われる。
【０１０３】
名寄せルールは前述の通り、入力データと照合してプログラム名、パラメータ、およびその値を置換するための正規表現の集合である。校正が完了した名寄せルールを外部のプログラムで読み込み可能な形式で出力することで、名寄せ処理を行うフィルタプログラムや性能分析システムで利用可能な前処理サブプログラムを出力する。
【０１０４】
図１２はファイルに出力された名寄せフィルタ定義の例をしめしている。また、図１３はファイルに出力された名寄せフィルタ定義を外部の分析プログラムで引用する例を示している。
【０１０５】
なお、本実施の形態においての画面インターフェースについて補足する。図１４は本発明の方式を用いた名寄せ支援システムの画面インターフェースの表示例を示している。
【０１０６】
図１４に示すように、画面上には、名寄せ効果グラフのほか、自動生成されたフィルタ定義、定義されたフィルタによる入力データの名寄せ結果、および、入力レコード数や名寄せ前後での出現したURLの種類数、および操作ボタンが配置されている。
操作ボタンには、ダイヤグラムやヒストグラムの表示を指示するボタンや校正されたルールをファイルに出力するためのボタンなどが割り当てられている。
【０１０７】
このように、一画面上に上記各手段の表示結果を並列して表示することで、システム管理者にとってより視認性の高い表示となる。
【０１０８】
また、図１５は本発明の実施形態として、ネットワーク上を流れるサーバ間の通信トラフィックを観測し、その呼び出し関係に基づいてWebサーバ内で動作している処理の処理時間を分析するトランザクション分析システムに本発明による名寄せ支援システムを組み込んだ際の構成図を示している。
【０１０９】
インターネットを通して、クライアントであるWebブラウザから、Webサーバに処理要求がなされ、その結果が返される。
サーバ側にはインターネットとサーバを接続するネットワークスイッチが配置されている。ネットワークスイッチにはミラーポートと呼ばれる通信トラフィックを分析装置などから観測するためのポートを設置することができる。
ミラーポートに接続した分析装置に、本発明による名寄せ支援システムを組み込むことで、入力データに対して集計処理の前処理を本発明による名寄せフィルタを名寄せ処理を行った上で、処理の性能や発生頻度を集計し、レポートを出力することができる。
また、名寄せ支援システムで生成した名寄せルールは、名寄せルールファイルに出力される。この名寄せルールは、分析装置とは独立してやはりミラーポートに接続された異常検知装置の異常検知システムのフィルタルールとしても共有することが可能であり、異常検知システムでは、入力データを、名寄せルールをもちいたフィルタリングを行った上で、処理の性能や発生頻度などを閾値と比較することでシステムの異常を検知し、警告を発するなどの動作を提供することが可能となる。
【図面の簡単な説明】
【０１１０】
【図１】本発明の一実施の形態における、名寄せ支援システムのシステム構成図である。
【図２】本発明の一実施の形態における、名寄せ支援システムの処理フローチャート
【図３】本発明の一実施の形態における、名寄せ支援システムによる初期ルールー自動生成処理のフローチャート
【図４】本発明の一実施の形態における、名寄せ支援システムによるログ分解処理の分解結果を示す図
【図５】本発明の一実施の形態における、名寄せ支援システムによるログ分解処理の分解結果を示す図
【図６】本発明の一実施の形態における、名寄せ支援システムによる名寄せ効果グラフの表示例を示す図
【図７】本発明の一実施の形態における、名寄せ支援システムによるダイヤグラムの表示例を示す図
【図８】本発明の一実施の形態における、名寄せ支援システムによるヒストグラムの表示例を示す図
【図９】本発明の一実施の形態における、ダイヤグラム表示部６２を用いた名寄せルール編集手段７による名寄せルール編集を行う場合のフローチャート
【図１０】本発明の一実施の形態における、名寄せ支援システムによるヒストグラムの表示例を示す図
【図１１】本発明の一実施の形態における、ヒストグラム表示部６２を用いた名寄せルール編集手段７による名寄せルール編集を行う場合のフローチャート
【図１２】本発明の一実施の形態における、ファイルに出力された名寄せフィルタ定義の例をしめした図
【図１３】本発明の一実施の形態における、ファイルに出力された名寄せフィルタ定義を外部の分析プログラムで引用する例を示している。
【図１４】本発明の一実施の形態における、名寄せ支援システムの画面例
【図１５】本発明を分析装置や異常検知装置と組み合わせた場合の構成例
【図１】
2006236280.tif 000003
【図２】
2006236280.tif 000004
【図３】
2006236280.tif 000005
【図４】
2006236280.tif 000006
【図５】
2006236280.tif 000007
【図６】
2006236280.tif 000008
【図７】
2006236280.tif 000009
【図８】
2006236280.tif 000010
【図９】
2006236280.tif 000011
【図１０】
2006236280.tif 000012
【図１１】
2006236280.tif 000013
【図１２】
2006236280.tif 000014
【図１３】
2006236280.tif 000015
【図１４】
2006236280.tif 000016
【図１５】
2006236280.tif 000017