(57)【要約】【課題】呼出関係にあるオブジェクトを正確に判定すること。【解決手段】判定システムは、第１サーバ８０ａ、第２サーバ８０ｂ、判定装置９０を有する。判定装置９０は、算出部９１が、第１オブジェクトに対するリクエストの特徴と、第２オブジェクトに対するリクエストの特徴とを基に、第１オブジェクト毎に、第１オブジェクトと各第２オブジェクトとの類似度をそれぞれ算出する。そして、判定部９２が、第１オブジェクト毎の類似度の閾値を特定し、特定した閾値を基にして、呼出関係にある第１オブジェクトと第２オブジェクトとの組みを判定する。【選択図】図１
2014127025.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
第１オブジェクトに対するリクエストの特徴と、第２オブジェクトに対するリクエストの特徴とを基にして、第１オブジェクト毎に、第１オブジェクトと第２オブジェクトとの類似度をそれぞれ算出し、
算出した前記類似度を基にして、第１オブジェクト毎の類似度の閾値を特定し、特定した前記閾値を基にして、呼出関係にある第１オブジェクトと第２オブジェクトとの組みを判定する、
処理を実行させることを特徴とする判定プログラム。
【請求項２】
前記判定する処理は、第１オブジェクトと各第２オブジェクトとの各類似度を類似度の値に応じて、第１グループまたは第２グループに分類し、第１グループに分類された類似度を基にして、第１オブジェクト毎の類似度の閾値を特定することを特徴とする請求項１に記載の判定プログラム。
【請求項３】
前記判定する処理は、前記第１グループに分類された各類似度の最小値、平均値、最大値のいずれか一つを基にして、第１オブジェクト毎の類似度の閾値を特定することを特徴とする請求項２に記載の判定プログラム。
【請求項４】
コンピュータが実行する判定方法であって、
第１オブジェクトに対するリクエストの特徴と、第２オブジェクトに対するリクエストの特徴とを基にして、第１オブジェクト毎に、第１オブジェクトと第２オブジェクトとの類似度をそれぞれ算出し、
算出した前記類似度を基にして、第１オブジェクト毎の類似度の閾値を特定し、特定した前記閾値を基にして、呼出関係にある第１オブジェクトと第２オブジェクトとの組みを判定する、
処理を実行することを特徴とする判定方法。
【請求項５】
第１サーバと第２サーバと判定装置とを有する判定システムであって、
前記判定装置は、
前記第１サーバの第１オブジェクトに対するリクエストの特徴と、前記第２サーバの第２オブジェクトに対するリクエストの特徴とを基にして、第１オブジェクト毎に、第１オブジェクトと第２オブジェクトとの類似度をそれぞれ算出する算出部と、
算出した前記類似度を基にして、第１オブジェクト毎の類似度の閾値を特定し、特定した前記閾値を基にして、呼出関係にある第１オブジェクトと第２オブジェクトとの組みを判定する判定部と
を有することを特徴とする判定システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、判定プログラム、判定方法および判定システムに関する。
【背景技術】
【０００２】
複数階層に分かれたサーバ間でメッセージを送り合い、クライアントからのリクエストを処理するサービス提供システムが広く使用されている。図１８は、サービス提供システムを含むＷＥＢシステムの構成の一例を示す図である。図１８に示すように、このＷＥＢシステムは、クライアント１０ａ，１０ｂ，１０ｃ，１０ｄ、ファイアウォール２０、スイッチ３０、サービス提供システム４０、監視装置５０を有する。クライアント１０ａ，１０ｂ，１０ｃ，１０ｄをまとめて適宜、クライアント１０と表記する。
【０００３】
クライアント１０はネットワーク６０に接続される。ファイアウォール２０は、ネットワーク６０、スイッチ３０に接続される。スイッチ３０は、ファイアウォール２０、サービス提供システム４０、監視装置５０に接続される。
【０００４】
クライアント１０は、サービス提供システム４０に対して、リクエストを送信し、サービス提供システム４０からのレスポンスを受信する装置である。例えば、クライアント１０は、ＨＴＴＰメッセージをサービス提供システム４０に送信し、ＵＲＬ（Uniform  Resource  Locator）等のパス表記で指定されるコンテントをレスポンスとして受信する。
【０００５】
ファイアウォール２０は、ネットワーク６０とサービス提供システム４０との間で送受信されるデータを監視し、不正なアクセスを検出、遮断する装置である。なお、ファイアウォール２０を基準としたクライアント１０側が公開ネットワークとなり、ファイアウォール２０を基準としたサービス提供システム４０側がＤＭＳ（DeMilitarized  Zone）となる。
【０００６】
スイッチ３０は、データを受信した場合に、受信したデータの宛先にデータを送信する装置である。
【０００７】
サービス提供システム４０は、Ｗｅｂサーバ４０ａとＤＢサーバ４０ｂを有する。Ｗｅｂサーバ４０ａは、ＤＢサーバ４０ｂと協働して、クライアント１０からのリクエストに応答する装置である。Ｗｅｂサーバ４０ａは、クライアント１０からリクエストを受信した場合に、処理に使用するデータをＤＢサーバ４０ｂから取得する。Ｗｅｂサーバ４０ａは、ＤＢサーバ４０ｂから取得したデータをリクエストに応じて変換、整形し、レスポンスとしてクライアント１０に送信する。
【０００８】
ＤＢサーバ４０ｂは、Ｗｅｂサーバ４０ａからのデータ要求に応答して、自サーバの記憶装置に記憶されたデータをＷｅｂサーバ４０ａに送信する装置である。例えば、Ｗｅｂサーバ４０ａとＤＢサーバ４０ｂとの間では、ＳＱＬによる問い合わせとその問い合わせ結果が送受信される。
【０００９】
監視装置５０は、クライアント１０、Ｗｅｂサーバ４０ａ、ＤＢサーバ４０ｂの間で送受信される電文の送信回数や処理時間等を統計処理し、サービス提供システム４０の状態を監視する装置である。電文には、Ｗｅｂサーバ４０ａからＤＢサーバへのリクエストとなるＳＱＬ（Structured  Query  Language）メッセージや、クライアント１０からのＨＴＴＰメッセージに応答するＷｅｂサーバ４０ａのＵＲＬが含まれる。
【００１０】
例えば、監視装置５０が、サービス提供システム４０において、応答遅延などの異常を検出した場合には、管理者は応答遅延の原因となる遅延箇所を調査し、修正を行う。この時、サービス提供システム４０全体で遅延が発生しているように見えても、ある一部の処理に遅延が発生しているのみであり、係る遅延がサービス提供システム４０全体の遅延に影響を与えている場合がある。
【００１１】
図１９は、ＷｅｂサーバおよびＤＢサーバのオブジェクトの呼出関係の一例を示す図である。以下の説明では、呼出元のメッセージを親オブジェクトと表記する。また、呼び出されたメッセージを子オブジェクトと表記する。図１９において、ＵＲＬ１ａ〜１ｃは、クライアントからのリクエストに応じて発生するメッセージであり、ＳＱＬ２ａ〜２ｃのいずれかを呼び出す。ＳＱＬ２ａ〜２ｃは、あるＵＲＬに応じて発生するメッセージである。ここでは、親オブジェクトを「ＵＲＬ」とし、子オブジェクトを「ＳＱＬ」とする。
【００１２】
図１９では、Ｗｅｂサーバ４０ａの親オブジェクト「ＵＲＬ１ａ」が、子オブジェクト「ＳＱＬ２ａ」、「ＳＱＬ２ｃ」を呼び出す例を示している。図１９では、子オブジェクト「ＳＱＬ２ｃ」に遅延が発生すると、係る遅延の影響により、親オブジェクト「ＵＲＬ１ａ」も遅延しているように見える。
【００１３】
ここで、呼出関係が分かれば、親オブジェクトの呼び出し先である子オブジェクトを集中的に調査することで、遅延箇所の調査時間を削減することができる。例えば、親オブジェクト「ＵＲＬ１ａ」と、子オブジェクト「ＳＱＬ２ａ」、「ＳＱＬ２ｃ」とが呼び出し関係にあることが事前に分かっていたものとする。そうすると、親オブジェクト「ＵＲＬ１ａ」を含む処理に遅延が発生した場合に、「ＵＲＬ１ａ」の呼び出し先である「ＳＱＬ２ａ」、「ＳＱＬ２ｃ」を集中的に調査することで、「ＳＱＬ２ｃ」の遅延を効率的に検出することができる。
【００１４】
呼出関係を特定する技術１について説明する。技術１は、監視装置５０が通信内容を全て保存しておき、時間的に内包関係にある親オブジェクトと子オブジェクトとを、呼出関係にある親オブジェクトと子オブジェクトとして特定する技術である。
【００１５】
図２０は、技術１を説明するための図である。図２０の横軸は、時間軸である。図２０に示す例では、時間帯Ｔ１において、Ｗｅｂサーバ４０ａでは親オブジェクト「ＵＲＬ１ａ」が実行され、ＤＢサーバ４０ｂでは子オブジェクト「ＳＱＬ２ａ」、「ＳＱＬ２ｂ」が呼び出されている。このため、技術１では、親オブジェクト「ＵＲＬ１ａ」と子オブジェクト「ＳＱＬ２ａ」、「ＳＱＬ２ｂ」が呼出関係にあると判定する。
【００１６】
図２０に示す時間帯Ｔ２において、Ｗｅｂサーバ４０ａでは「ＵＲＬ１ｂ」が実行され、ＤＢサーバ４０ｂでは子オブジェクト「ＳＱＬ２ａ」、「ＳＱＬ２ｃ」が呼び出されている。このため、技術１では、親オブジェクト「ＵＲＬ１ｂ」と子オブジェクト「ＳＱＬ２ａ」、「ＳＱＬ２ｃ」が呼出関係にあると判定する。
【００１７】
図２０に示す時間帯Ｔ３において、Ｗｅｂサーバ４０ａでは「ＵＲＬ１ｃ」が実行され、ＤＢサーバ４０ｂでは子オブジェクト「ＳＱＬ２ｄ」、「ＳＱＬ２ｅ」が呼び出されている。このため、技術１では、親オブジェクト「ＵＲＬ１ｃ」と子オブジェクト「ＳＱＬ２ｄ」、「ＳＱＬ２ｅ」が呼出関係にあると判定する。
【００１８】
しかし、技術１のように、通信内容を全て保存して内包関係を判定するためには、一定水準以上の計算資源を有した監視装置を利用することになる。このため、より簡易的に、呼出関係にある親オブジェクトと子オブジェクトとを特定することが求められる。
【００１９】
より簡易的に、呼出関係にある親オブジェクトと子オブジェクトとを特定する技術として、技術２が存在する。技術２は、一定間隔の集計区間で、各オブジェクトに対するリクエスト数を計数し、オブジェクト毎のリクエスト数の時系列変化を統計値として取得する。そして、技術２は、各オブジェクトに対する統計値の相関係数を算出し、相関係数が大きくなる各オブジェクトを、呼出関係にある親オブジェクトと子オブジェクトとして判定する。
【００２０】
図２１は、技術２を説明するための図である。図２１のグラフ７０，７１ａ、７１ｂは、それぞれ、ＵＲＬ１ａ、ＳＱＬ２ａ，２ｂの統計値とする。グラフ７０，７１ａ，７１ｂの横軸は時間軸であり、縦軸はリクエスト数である。例えば、ＵＲＬ１ａとＳＱＬ２ａとが呼出関係に有る場合には、リクエスト数の時系列変化が類似したものになるため、相関係数が高くなる。これに対して、ＵＲＬ１ａとＳＱＬ２ｂとが呼出関係にない場合には、リクエスト数の時系列変化が類似しないため、相関係数が低くなる。
【先行技術文献】
【特許文献】
【００２１】
【特許文献１】特開２０１１−２５８０５７号公報
【特許文献２】特開２０１０−４４７４２号公報
【発明の概要】
【発明が解決しようとする課題】
【００２２】
しかしながら、上述した技術では、呼出関係にあるオブジェクトを正確に判定することができないという問題がある。
【００２３】
実システムでは、オブジェクトの呼出関係が１対１であるとは限らず、呼出関係が多対１となる場合がある。このような場合には、ある子オブジェクトが複数の親オブジェクトから呼び出される。そうすると、呼出関係にあるオブジェクト同士であっても、相関係数が低く算出される場合があり、呼出関係にあるオブジェクトを正確に判定することができない。
【００２４】
１つの側面では、本発明は、呼出関係にあるオブジェクトを正確に判定することができる判定プログラム、判定方法および判定システムを提供することを目的とする。
【課題を解決するための手段】
【００２５】
第１の案では、コンピュータに算出する処理と、判定する処理を実行させる。算出する処理は、第１オブジェクトに対するリクエストの特徴と、第２オブジェクトに対するリクエストの特徴とを基にして、第１オブジェクト毎に、第１オブジェクトと第２オブジェクトとの類似度をそれぞれ算出する。判定する処理は、算出した類似度を基にして、第１オブジェクト毎の類似度の閾値を特定し、特定した閾値を基にして、呼出関係にある第１オブジェクトと第２オブジェクトとの組みを判定する。
【発明の効果】
【００２６】
１態様によれば、呼出関係にあるオブジェクトを正確に判定することができるという効果を奏する。
【図面の簡単な説明】
【００２７】
【図１】図１は、本実施例１に係る判定システムの構成を示す図である。
【図２】図２は、本実施例２に係るシステムの構成を示す図である。
【図３】図３は、本実施例２に係る判定装置の構成を示す機能ブロック図である。
【図４】図４は、リクエスト数データのデータ構造の一例を示す図である。
【図５】図５は、オブジェクト相関係数テーブルのデータ構造の一例を示す図である。
【図６】図６は、閾値テーブルのデータ構造の一例を示す図である。
【図７】図７は、呼出関係組み合わせテーブルのデータ構造の一例を示す図である。
【図８】図８は、子オブジェクトから親オブジェクトへのリストのデータ構造の一例を示す図である。
【図９】図９は、クラスタリング結果の一例を示す図である。
【図１０】図１０は、本実施例２に係る判定装置の処理手順を示すフローチャートである。
【図１１】図１１は、オブジェクト相関係数テーブル生成処理の処理手順を示すフローチャートである。
【図１２】図１２は、閾値テーブル生成処理の処理手順を示すフローチャートである。
【図１３】図１３は、その他のリクエスト数データのデータ構造の一例を示す図である。
【図１４】図１４は、図１３に示したリクエスト数データから生成されるオブジェクト相関係数テーブルのデータ構造の一例を示す図である。
【図１５】図１５は、図１４に示したオブジェクト相関係数テーブルから生成されるリストのデータ構造の一例を示す図である。
【図１６】図１６は、親オブジェクトと子オブジェクトとの呼出関係の一例を示す図である。
【図１７】図１７は、判定プログラムを実行するコンピュータの一例を示す図である。
【図１８】図１８は、サービス提供システムを含むＷＥＢシステムの構成の一例を示す図である。
【図１９】図１９は、ＷｅｂサーバおよびＤＢサーバのオブジェクトの呼出関係の一例を示す図である。
【図２０】図２０は、技術１を説明するための図である。
【図２１】図２１は、技術２を説明するための図である。
【発明を実施するための形態】
【００２８】
以下に、本願の開示する判定プログラム、判定方法および判定システムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００２９】
本実施例１に係る判定システムの構成について説明する。図１は、本実施例１に係る判定システムの構成を示す図である。図１に示すように、この判定システムは、第１サーバ８０ａ、第２サーバ８０ｂ、判定装置９０を有する。判定装置９０は、算出部９１、判定部９２を有する。
【００３０】
算出部９１は、第１サーバ８０ａの第１オブジェクトに対するリクエストの特徴と、前記第２サーバ８０ｂの第２オブジェクトに対するリクエストの特徴とを基に、第１オブジェクト毎に、第１オブジェクトと第２オブジェクトとの類似度をそれぞれ算出する。
【００３１】
判定部９２は、算出部９１に算出された類似度を基にして、第１オブジェクト毎の類似度の閾値を特定し、特定した閾値を基にして、呼出関係にある第１オブジェクトと第２オブジェクトとの組みを判定する。
【００３２】
次に、本実施例１に係る判定システムの効果について説明する。判定システムの判定装置９０は、算出部９１が、第１オブジェクトに対するリクエストの特徴と、第２オブジェクトに対するリクエストの特徴とを基に、第１オブジェクト毎に、第１オブジェクトと各第２オブジェクトとの類似度をそれぞれ算出する。そして、判定部９２が、第１オブジェクト毎の類似度の閾値を特定し、特定した閾値を基にして、呼出関係にある第１オブジェクトと第２オブジェクトとの組みを判定する。このため、本実施例１に係る判定システムによれば、呼出関係が多対１であっても、呼出関係にある第１オブジェクトと第２オブジェクトとの類似度の閾値を算出でき、呼出関係にあるオブジェクトを正確に判定することができる。
【実施例２】
【００３３】
次に、本実施例２に係るシステムの構成について説明する。図２は、本実施例２に係るシステムの構成を示す図である。図２に示すように、このシステムは、クライアント１０ａ，１０ｂ，１０ｃ，１０ｄ、ファイアウォール２０、スイッチ３０、サービス提供システム４０、判定装置１００を有する。クライアント１０ａ，１０ｂ，１０ｃ，１０ｄをまとめて適宜、クライアント１０と表記する。
【００３４】
クライアント１０はネットワーク６０に接続される。ファイアウォール２０は、ネットワーク６０、スイッチ３０に接続される。スイッチ３０は、ファイアウォール２０、サービス提供システム４０、判定装置１００に接続される。
【００３５】
クライアント１０は、サービス提供システム４０に対して、リクエストを送信し、サービス提供システム４０からのレスポンスを受信する装置である。例えば、クライアント１０は、ＨＴＴＰメッセージをサービス提供システム４０に送信し、ＵＲＬ等のパス表記で指定されるコンテントをレスポンスとして受信する。
【００３６】
ファイアウォール２０は、ネットワーク６０とサービス提供システム４０との間で送受信されるデータを監視し、不正なアクセスを検出、遮断する装置である。なお、ファイアウォール２０を基準としたクライアント１０側が公開ネットワークとなり、ファイアウォール２０を基準としたサービス提供システム４０側がＤＭＳとなる。
【００３７】
スイッチ３０は、データを受信した場合に、受信したデータの宛先にデータを送信する装置である。
【００３８】
サービス提供システム４０は、Ｗｅｂサーバ４０ａとＤＢサーバ４０ｂを有する。Ｗｅｂサーバ４０ａは、ＤＢサーバ４０ｂと協働して、クライアント１０からのリクエストに応答する装置である。Ｗｅｂサーバ４０ａは、クライアント１０からリクエストを受信した場合に、処理に使用するデータをＤＢサーバ４０ｂから取得する。Ｗｅｂサーバ４０ａは、ＤＢサーバ４０ｂから取得したデータをリクエストに応じて変換、整形し、レスポンスとしてクライアント１０に送信する。
【００３９】
ＤＢサーバ４０ｂは、Ｗｅｂサーバ４０ａからのデータ要求に応答して、自サーバの記憶装置に記憶されたデータをＷｅｂサーバ４０ａに送信する装置である。例えば、Ｗｅｂサーバ４０ａとＤＢサーバ４０ｂとの間では、ＳＱＬによる問い合わせとその問い合わせ結果が送受信される。
【００４０】
判定装置１００は、クライアント１０、Ｗｅｂサーバ４０ａ、ＤＢサーバ４０ｂの間で送受信されるリクエストを基にして、呼出関係となる親オブジェクトと子オブジェクトとを判定する装置である。その他の処理は、図１８に示した監視装置５０と同様であるため、説明を省略する。
【００４１】
なお、判定装置１００は、スイッチ３０のミラーリング機能等を利用して、クライアント１０、Ｗｅｂサーバ４０ａ、ＤＢサーバ４０ｂの間で送受信されるリクエストを傍受する。ミラーリング機能は、単一または複数ポートを指定し、指定したポートで流れているパケットを複製し、別途指定したポートに複製したパケットを出力するものである。判定装置１００は、このミラーリング機能を利用することで、サービス提供システム４０に影響を与えることなく、処理を実行することができる。
【００４２】
次に、図２に示した判定装置１００の構成について説明する。図３は、本実施例２に係る判定装置の構成を示す機能ブロック図である。図３に示すように、この判定装置１００は、通信部１１０、入力部１２０、表示部１３０、記憶部１４０、制御部１５０を有する。
【００４３】
通信部１１０は、スイッチ３０を介して他の装置とデータ通信を行う処理部である。例えば、通信部１１０は、スイッチ３０からクライアント１０、Ｗｅｂサーバ４０ａ、ＤＢサーバ４０ｂの間で送受信されるリクエストの情報を取得する処理部である。後述する制御部１５０は、通信部１１０を介して他の装置とデータをやり取りする。通信部１１０は、例えば、通信装置に対応する。
【００４４】
入力部１２０は、各種の情報を入力する入力装置である。例えば、入力部１２０は、キーボードやマウス、入力ボタン、タッチパネル等に対応する。
【００４５】
表示部１３０は、各種の情報を表示する表示装置である。例えば、表示部１３０は、ディスプレイやタッチパネル等に対応する。
【００４６】
記憶部１４０は、リクエスト数データ１４１、オブジェクト相関係数テーブル１４２、閾値テーブル１４３、呼出関係組み合わせテーブル１４４を記憶する。記憶部１４０は、例えば、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子などの記憶装置に対応する。
【００４７】
リクエスト数データ１４１は、時間毎のオブジェクトに対するリクエスト数を示す情報である。オブジェクトは、親オブジェクトおよび子オブジェクトに対応する。図４は、リクエスト数データのデータ構造の一例を示す図である。図４に示す例では、リクエスト数データ１４１は、一定集計間隔毎のオブジェクトに対するリクエスト数を示す。
【００４８】
図４の１段目では、オブジェクト「ＵＲＬ１１」に対するリクエスト数は、「２０１２年７月２６日１０時００分〜１０時００分５９秒」の間に「１２０回」であることを示す。オブジェクト「ＵＲＬ１１」に対するリクエスト数は、「２０１２年７月２６日１０時０１分〜１０時０１分５９秒」の間に「８７回」であることを示す。オブジェクト「ＵＲＬ１１」に対するリクエスト数は、「２０１２年７月２６日１０時０２分〜１０時０２分５９秒」の間に「９２回」であることを示す。
【００４９】
オブジェクト相関係数テーブル１４２は、親オブジェクトと子オブジェクトとの相関係数を示す情報である。図５は、オブジェクト相関係数テーブルのデータ構造の一例を示す図である。図５に示すように、このオブジェクト相関係数テーブル１４２は、親オブジェクトと子オブジェクトと相関係数とを対応付ける。例えば、親オブジェクト「ＵＲＬ１１」と子オブジェクト「ＳＱＬ２１」との相関係数は「０．８７」となる。相関係数に関する詳しい説明は後述する。相関係数は、類似度の一例である。
【００５０】
閾値テーブル１４３は、呼出関係にあるといえる親オブジェクトと子オブジェクトとの相関係数の閾値を保持するテーブルである。図６は、閾値テーブルのデータ構造の一例を示す図である。例えば、図６の１段目では、子オブジェクト「ＳＱＬ２１」に対する閾値が「０．８５」となっている。子オブジェクト「ＳＱＬ２１」との相関係数が「０．８５」以上となる親オブジェクトが、子オブジェクト「ＳＱＬ２１」と呼出関係にある親オブジェクトとなる。
【００５１】
呼出関係組み合わせテーブル１４４は、呼出関係にある親オブジェクトと子オブジェクトとの組みを示す情報である。図７は、呼出関係組み合わせテーブルのデータ構造の一例を示す図である。図７に示すように、例えば、親オブジェクト「ＵＲＬ１１」と呼出関係にある子オブジェクトは「ＳＱＬ２１」、「ＳＱＬ２２」、「ＳＱＬ２３」となる。
【００５２】
制御部１５０は、リクエスト数データ取得部１５１、算出部１５２、判定部１５３を有する。制御部１５０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）や、ＦＰＧＡ（Field  Programmable  Gate  Array）などの集積装置に対応する。また、制御部１５０は、例えば、ＣＰＵやＭＰＵ（Micro  Processing  Unit）等の電子回路に対応する。
【００５３】
リクエスト数データ取得部１５１は、スイッチ３０から、クライアント１０、Ｗｅｂサーバ４０ａ、ＤＢサーバ４０ｂの間で送受信されるリクエストの情報を取得し、リクエスト数データ１４１を生成する処理部である。リクエスト数データ取得部１５１は、リクエスト数データ１４１を、記憶部１４０に格納する。
【００５４】
例えば、リクエスト数データ取得部１５１は、リクエストの情報を基にして、オブジェクト毎のリクエスト数を、所定時間間隔毎に集計することで、リクエスト数データ１４１を生成する。
【００５５】
算出部１５２は、リクエスト数データ１４１を基にして、各オブジェクト間の相関係数を算出することで、オブジェクト相関係数テーブル１４２を生成する。また、算出部１５２は、オブジェクト相関係数テーブル１４２を基にして、閾値テーブル１４３を生成する。
【００５６】
まず、算出部１５２が、リクエスト数データ１４１を基にして、オブジェクト相関係数テーブル１４２を生成する処理の一例について説明する。ここでは説明の便宜上、親オブジェクトＡ１と子オブジェクトＢ１との相関係数を算出するものとする。
【００５７】
算出部１５２は、親オブジェクトＡ１および子オブジェクトＢ１について、時間帯ｔ、ｔ＋１、ｔ＋２、・・・、ｔ＋ｎのリクエスト数を特定する。算出部１５２は、時間帯毎に、親オブジェクトＡ１および子オブジェクトのリクエスト数の差の絶対値をそれぞれ算出し、各差の絶対値を合計した合計値を算出する。算出部１５２は、合計値が０に近づくほど、相関係数の値が１に近づき、合計値が０から離れるほど、相関係数の値が０に近づく変換テーブルを利用して、合計値を相関係数に変換することで、親オブジェクトＡ１と子オブジェクトとの相関係数を算出する。
【００５８】
算出部１５２は、他の親オブジェクトＡ１と子オブジェクトとの組みについても、同様の処理によって相関係数を算出し、オブジェクト相関係数テーブル１４２を生成する。なお、上記の相関係数を算出する処理は、一例である。算出部１５２は、その他の周知技術を利用して、親オブジェクトと子オブジェクトとの相関係数を求めても良い。
【００５９】
続いて、算出部１５２が、オブジェクト相関係数テーブル１４２を基にして、閾値テーブル１４３を生成する処理について説明する。算出部１５２は、オブジェクト相関係数テーブル１４２を基にして、子オブジェクトから親オブジェクトへのリストを生成する。図８は、子オブジェクトから親オブジェクトへのリストのデータ構造の一例を示す図である。リストは、子オブジェクト、親オブジェクト、相関係数を対応付ける。
【００６０】
図８に示すリスト１６は、子オブジェクト「ＳＱＬ２１」から各親オブジェクトに対するリストである。リスト１７は、子オブジェクト「ＳＱＬ２２」から各親オブジェクトに対するリストである。リスト１８は、子オブジェクト「ＳＱＬ２３」から各親オブジェクトに対するリストである。その他のリストについては、説明を省略する。
【００６１】
算出部１５２は、図８に示すリストを生成した後に、各リストを、高スコアのグループと低スコアのグループにクラスタリングする処理を行う。高スコアは、相関係数が大きいことを示し、低スコアは、相関係数が小さいことを示す。本実施例２に係るサービス提供システム４０では、ほとんどの相関係数の値はゼロとその近傍に集まり、一部の相関係数の値が高めとなる。例えば、算出部１５２は、スミルノフ・グラフス検定等により、相関係数が大のグループと小のグループに分類する。
【００６２】
スミルノフ・グラフス検定は、１つあるいは少数の外れ値が母集団に存在していると仮定して、外れ値検定を行うものである。上記のように、サービス提供システム４０では、ほとんどの相関係数の値はゼロとその近傍に集まるため、高スコアのグループに分類する相関係数が、外れ値として検定される。
【００６３】
算出部１５２は、スミルノフ・グラフス検定以外の方法により、クラスタリングしても良い。例えば、算出部１５２は、Generalized  ESD法またはKmeansを基にしてクラスタリングしても良い。
【００６４】
Generalized  ESD法は、スミルノフ・グラフス検定をベースとした方法であるが、初めから複数の外れ値が存在するという仮定のもので、外れ値検定を行う。母集団の近傍に複数の外れ値が存在する場合に、スミルノフ・グラフス検定では、外れ値とは検定出来ないが、Generalized  ESD法では、外れ値として検定することができる。
【００６５】
Kmeansは、２つの正規分布にしたがった集合が存在するときに、それらを分類する方法である。
【００６６】
なお、算出部１５２は、相関係数の全てが低スコアのグループに含まれる場合には、各相関係数のうち、最大の相関係数を、高スコアのグループに分類する。すなわち、算出部１５２は、少なくもの一つの相関係数が、高スコアのグループに属するようにする。
【００６７】
算出部１５２が、図８に示すリストに対してクラスタリングを実行すると、図９に示すものとなる。図９は、クラスタリング結果の一例を示す図である。図９に示すように、リスト１６は、高スコアのグループ１６ａと、低スコアのグループ１６ｂに分類される。リスト１７は、高スコアのグループ１７ａと、低スコアのグループ１７ｂに分類される。リスト１８は、高スコアのグループ１８ｂと、低スコアのグループ１８ｂに分類される。
【００６８】
算出部１５２は、クラスタリングを実行した後に、高スコアのグループに含まれる相関係数から、呼出関係にあるといえる親オブジェクトと子オブジェクトとの相関係数の閾値を決定する。例えば、算出部１５２は、高スコアのグループに含まれる相関係数のうち、最小のものを、閾値として決定する。算出部１５２は、リスト毎に、子オブジェクトの閾値を決定し、決定した閾値と子オブジェクトとを対応付けることで、閾値テーブル１４３を生成する。
【００６９】
例えば、図９において、リスト１６の高スコアのグループ１６ａのうち、最小の相関係数は、「０．８５」となる。このため、子オブジェクト「ＳＱＬ２１」の閾値は「０．８５」となる。同様に、子オブジェクト「ＳＱＬ２２」の閾値は「０．２５」となる。子オブジェクト「ＳＱＬ２３」の閾値は「０．１０」となる。
【００７０】
図９の説明に戻る。判定部１５３は、オブジェクト相関係数テーブル１４２および閾値テーブル１４３を基にして、呼出関係にある親オブジェクトと子オブジェクトとを判定し、呼出関係組み合わせテーブル１４４を生成する処理部である。
【００７１】
判定部１５３は、子オブジェクトと呼出関係にある親オブジェクトを判定する場合には、子オブジェクトの閾値を閾値テーブル１４３から取得し、係る閾値以上の相関係数となる親オブジェクトを、呼出関係にある親オブジェクトとして判定する。
【００７２】
例えば、子オブジェクト「ＳＱＬ２１」と呼出関係にある親オブジェクトを判定する場合を例にして説明する。図６に示す例では、「ＳＱＬ２１」の閾値は「０．８５」となる。判定部１５３は、子オブジェクト「ＳＱＬ２１」との相関係数が「０．８５」以上となる親オブジェクトを、子オブジェクトと呼出関係にある親オブジェクトとして判定する。例えば、図５の１行目では、親オブジェクト「ＵＲＬ１１」と子オブジェクト「ＳＱＬ２１」との相関係数が「０．８７」となり、閾値「０．８５」以上である。このため、判定部は、親オブジェクト「ＵＲＬ１１」と子オブジェクト「ＳＱＬ２１」とが呼出関係にあると判定する。判定部１５３は、上記の処理を繰り返し実行することで、呼出関係組み合わせテーブル１４４を生成する。
【００７３】
次に、本実施例２に係る判定装置１００の処理手順の一例について説明する。図１０は、本実施例２に係る判定装置の処理手順を示すフローチャートである。図１０に示す処理は、例えば、判定装置１００がリクエスト数データを取得したことを契機に実行しても良いし、定期的に実行しても良い。
【００７４】
図１０に示すように、判定装置１００は、リクエスト数データを取得し（ステップＳ１０１）、オブジェクト相関係数テーブル生成処理を実行する（ステップＳ１０２）。判定装置１００は、閾値テーブル生成処理を実行し（ステップＳ１０３）、呼出関係組み合わせテーブル１４４を生成する（ステップＳ１０４）。
【００７５】
次に、図１０のステップＳ１０２に示したオブジェクト相関係数テーブル生成処理の処理手順について説明する。図１１は、オブジェクト相関係数テーブル生成処理の処理手順を示すフローチャートである。
【００７６】
図１１に示すように、判定装置１００は、リクエスト数データ１４１から子オブジェクトの各時間帯のリクエスト数を取得する（ステップＳ２０１）。判定装置１００は、リクエスト数データから親オブジェクトの各時間帯のリクエスト数を取得する（ステップＳ２０２）。判定装置１００は、子オブジェクトと親オブジェクトとの各時間帯のリクエスト数の相関係数を算出する（ステップＳ２０３）。
【００７７】
判定装置１００は、全ての親オブジェクトが完了したか否かを判定する（ステップＳ２０４）。判定装置１００は、全ての親オブジェクトが完了していない場合には（ステップＳ２０４，Ｎｏ）、ステップＳ２０２に移行する。
【００７８】
一方、判定装置１００は、全ての親オブジェクトが完了した場合には（ステップＳ２０４，Ｙｅｓ）、全ての子オブジェクトが完了したか否かを判定する（ステップＳ２０５）。判定装置１００は、全ての子オブジェクトが完了していない場合には（ステップＳ２０５，Ｎｏ）、ステップＳ２０１に移行する。
【００７９】
一方、判定装置１００は、全ての子オブジェクトが完了した場合には（ステップＳ２０５，Ｙｅｓ）、オブジェクト相関係数テーブル１４２に相関係数を登録し（ステップＳ２０６）、処理を終了する。
【００８０】
次に、図１０のステップＳ１０３に示した閾値テーブル生成処理の処理手順について説明する。図１２は、閾値テーブル生成処理の処理手順を示すフローチャートである。
【００８１】
図１２に示すように、判定装置１００は、オブジェクト相関係数テーブル１４２を取得する（ステップＳ３０１）。判定装置１００は、オブジェクト相関係数テーブル１４２から、子オブジェクトが同一である相関係数を全て取得する（ステップＳ３０２）。
【００８２】
判定装置１００は、相関係数群を２つのグループにクラスタリングする（ステップＳ３０３）。判定装置１００は、全ての子オブジェクトが完了したか否かを判定する（ステップＳ３０４）。判定装置１００は、全ての子オブジェクトが完了していない場合には（ステップＳ３０４，Ｎｏ）、ステップＳ３０２に移行する。
【００８３】
判定装置１００は、全ての子オブジェクトが完了した場合には（ステップＳ３０４，Ｙｅｓ）、閾値テーブル１４３に相関係数の閾値を格納する（ステップＳ３０５）。
【００８４】
次に、図４に示したリクエスト数データとは異なるリクエスト数データに対して、判定装置１００が上記処理を実行した場合について説明する。図１３は、その他のリクエスト数データのデータ構造の一例を示す図である。図３のリクエスト数データ１４１ａに示すオブジェクトのうち、旅費精算、休暇申請、ロゴ画像を、親オブジェクトとする。旅費テーブル問い合わせ、出勤テーブル問い合わせ、セッション管理問い合わせを、子オブジェクトとする。
【００８５】
算出部１５２が、上述した処理により、リクエスト数データ１４１ａから、オブジェクト相関係数テーブルを生成すると、図１４に示すオブジェクト相関係数テーブル１４２ａとなる。図１４は、図１３に示したリクエスト数データから生成されるオブジェクト相関係数テーブルのデータ構造の一例を示す図である。
【００８６】
算出部１５２が、上述した処理により、オブジェクト相関係数テーブル１４２ａを基にして、子オブジェクトから親オブジェクトへのリストを生成すると、図１５に示すリスト２５，２６が生成される。図１５は、図１４に示したオブジェクト相関係数テーブルから生成されるリストのデータ構造の一例を示す図である。
【００８７】
算出部１５２が、上述した処理により、リスト２５を高スコアのグループと低スコアのグループにクラスタリングする処理を行うと、高スコアのグループはグループ２５ａとなり、低スコアのグループはグループ２５ｂとなる。算出部１５２が、リスト２６を高スコアのグループと低スコアのグループにクラスタリングする処理を行うと、高スコアのグループはグループ２６ａとなり、低スコアのグループはグループ２６ｂとなる。
【００８８】
算出部１５２は、クラスタリングを実行した後に、高スコアのグループに含まれる相関係数から、呼出関係にあるといえる親オブジェクトと子オブジェクトとの相関係数の閾値を決定する。例えば、図１５において、子オブジェクト「旅費テーブル問い合わせ」の閾値は「０．９８」となる。子オブジェクト「セッション管理テーブル問い合わせ」の閾値は「０．２３」となる。算出部１５２は、上記処理を実行することにより、閾値テーブル１４３を生成する。ここでは、リスト２５，２６から生成される閾値テーブル１４３のデータ構造の図示を省略する。
【００８９】
判定部１５３が、閾値テーブル１４３と、オブジェクト相関係数テーブル１４２とを基にして、呼出関係を判定すると、親オブジェクトと子オブジェクトとの呼出関係は、図１６に示すものとなる。図１６は、親オブジェクトと子オブジェクトとの呼出関係の一例を示す図である。図１６に示すように、親オブジェクト「旅費精算」と呼出関係にある子オブジェクトは、「旅費テーブル問い合わせ」、「セッション管理テーブル問い合わせ」となる。また、親オブジェクト「休暇申請」と呼出関係にある子オブジェクトは、「出勤テーブル問い合わせ」、「セッション管理テーブル問い合わせ」となる。
【００９０】
次に、本実施例２に係る判定装置１００の効果について説明する。判定装置１００は、リクエスト数データ１４１を基にして、子オブジェクトと各親オブジェクトとの相関係数をそれぞれ算出したリストを生成する。判定装置１００は、算出したリストを基にして、相関係数の閾値を判定し、判定した閾値を基にして、呼出関係にある第１オブジェクトと第２オブジェクトとの組みを判定する。このため、判定装置１００によれば、親オブジェクトと子オブジェクトとの呼出関係が多対１の場合であっても、相関係数を用いた簡易的な手法によって、親オブジェクトと子オブジェクトとの呼出関係を正確に特定することができる。
【００９１】
また、判定装置１００は、リストを高スコアのグループと、低スコアのグループとに分類し、高スコアのグループに分類した相関係数の値を基にして、呼出関係の判定に利用する閾値テーブル１４３を生成する。このため、呼出関係にある相関係数の閾値を判定することができる。
【００９２】
ところで、判定装置１００は、高スコアのグループに含まれる相関係数のうち、最小のものを、子オブジェクトの閾値として決定する場合について説明したがこれに限定されるものではない。例えば、判定装置１００は、高スコアのグループに含まれる相関係数の平均値を求め、求めた平均値を、子オブジェクトの閾値として決定しても良い。また、判定装置１００は、高スコアのグループに含まれる相関係数のうち、最大のものを、子オブジェクトの閾値として決定しても良い。
【００９３】
次に、上記の実施例に示した判定装置と同様の機能を実現する判定プログラムを実行するコンピュータの一例を説明する。図１７は、判定プログラムを実行するコンピュータの一例を示す図である。
【００９４】
図１７に示すように、コンピュータ３００は、各種演算処理を実行するＣＰＵ３０１と、ユーザからのデータの入力を受け付ける入力装置３０２と、ディスプレイ３０３を有する。また、コンピュータ３００は、記憶媒体からプログラム等を読取る読み取り装置３０４と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインタフェース装置３０５とを有する。また、コンピュータ３００は、各種情報を一時記憶するＲＡＭ３０６と、ハードディスク装置３０７を有する。そして、各装置３０１〜３０７は、バス３０８に接続される。
【００９５】
ハードディスク装置３０７は、例えば、算出プログラム３０７ａ、判定プログラム３０７ｂを有する。ＣＰＵ３０１は、各プログラム３０７ａ，３０７ｂを読み出してＲＡＭ３０６に展開する。
【００９６】
算出プログラム３０７ａは、算出プロセス３０６ａとして機能する。判定プログラム３０７ｂは、判定プロセス３０６ｂとして機能する。
【００９７】
例えば、算出プロセス３０６ａは、算出部９１，１５２等に対応する。判定プロセス３０６ｂは、判定部９２，１５３等に対応する。
【００９８】
なお、各プログラム３０７ａ、３０７ｂについては、必ずしも最初からハードディスク装置３０７に記憶させておかなくてもよい。例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ３００がこれらから各プログラム３０７ａ，３０７ｂを読み出して実行するようにしてもよい。
【００９９】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１００】
（付記１）コンピュータに、
第１オブジェクトに対するリクエストの特徴と、第２オブジェクトに対するリクエストの特徴とを基にして、第１オブジェクト毎に、第１オブジェクトと第２オブジェクトとの類似度をそれぞれ算出し、
算出した前記類似度を基にして、第１オブジェクト毎の類似度の閾値を特定し、特定した前記閾値を基にして、呼出関係にある第１オブジェクトと第２オブジェクトとの組みを判定する、
処理を実行させることを特徴とする判定プログラム。
【０１０１】
（付記２）前記判定する処理は、第１オブジェクトと各第２オブジェクトとの各類似度を類似度の値に応じて、第１グループまたは第２グループに分類し、第１グループに分類された類似度を基にして、第１オブジェクト毎の類似度の閾値を特定することを特徴とする付記１に記載の判定プログラム。
【０１０２】
（付記３）前記判定する処理は、前記第１グループに分類された各類似度の最小値、平均値、最大値のいずれか一つを基にして、第１オブジェクト毎の類似度の閾値を特定することを特徴とする付記２に記載の判定プログラム。
【０１０３】
（付記４）コンピュータが実行する判定方法であって、
第１オブジェクトに対するリクエストの特徴と、第２オブジェクトに対するリクエストの特徴とを基にして、第１オブジェクト毎に、第１オブジェクトと第２オブジェクトとの類似度をそれぞれ算出し、
算出した前記類似度を基にして、第１オブジェクト毎の類似度の閾値を特定し、特定した前記閾値を基にして、呼出関係にある第１オブジェクトと第２オブジェクトとの組みを判定する、
処理を実行することを特徴とする判定方法。
【０１０４】
（付記５）前記判定する処理は、第１オブジェクトと各第２オブジェクトとの各類似度を類似度の値に応じて、第１グループまたは第２グループに分類し、第１グループに分類された類似度を基にして、第１オブジェクト毎の類似度の閾値を特定することを特徴とする付記４に記載の判定方法。
【０１０５】
（付記６）前記判定する処理は、前記第１グループに分類された各類似度の最小値、平均値、最大値のいずれか一つを基にして、第１オブジェクト毎の類似度の閾値を特定することを特徴とする付記５に記載の判定方法。
【０１０６】
（付記７）第１サーバと第２サーバと判定装置とを有する判定システムであって、
前記判定装置は、
前記第１サーバの第１オブジェクトに対するリクエストの特徴と、前記第２サーバの第２オブジェクトに対するリクエストの特徴とを基にして、第１オブジェクト毎に、第１オブジェクトと第２オブジェクトとの類似度をそれぞれ算出する算出部と、
算出した前記類似度を基にして、第１オブジェクト毎の類似度の閾値を特定し、特定した前記閾値を基にして、呼出関係にある第１オブジェクトと第２オブジェクトとの組みを判定する判定部と
を有することを特徴とする判定システム。
【０１０７】
（付記８）前記判定部は、第１オブジェクトと各第２オブジェクトとの各類似度を類似度の値に応じて、第１グループまたは第２グループに分類し、第１グループに分類された類似度を基にして、第１オブジェクト毎の類似度の閾値を特定することを特徴とする付記７に記載の判定システム。
【０１０８】
（付記９）前記判定部は、前記第１グループに分類された各類似度の最小値、平均値、最大値のいずれか一つを基にして、第１オブジェクト毎の類似度の閾値を特定することを特徴とする付記８に記載の判定システム。
【符号の説明】
【０１０９】
８０ａ  第１サーバ
８０ｂ  第２サーバ
９０    判定装置
９１    算出部
９２    判定部
【図１】
2014127025.tif 000003
【図２】
2014127025.tif 000004
【図３】
2014127025.tif 000005
【図４】
2014127025.tif 000006
【図５】
2014127025.tif 000007
【図６】
2014127025.tif 000008
【図７】
2014127025.tif 000009
【図８】
2014127025.tif 000010
【図９】
2014127025.tif 000011
【図１０】
2014127025.tif 000012
【図１１】
2014127025.tif 000013
【図１２】
2014127025.tif 000014
【図１３】
2014127025.tif 000015
【図１４】
2014127025.tif 000016
【図１５】
2014127025.tif 000017
【図１６】
2014127025.tif 000018
【図１７】
2014127025.tif 000019
【図１８】
2014127025.tif 000020
【図１９】
2014127025.tif 000021
【図２０】
2014127025.tif 000022
【図２１】
2014127025.tif 000023