(57)【要約】【課題】  Ｗｅｂサイトの検証に必要なページを効率よく収集することができるようにする。【解決手段】  ページ取得要求が入力されると、ページ取得手段４により、ページ３の内容が取得され、ページ３の内容及びページ取得に利用された通信情報を含むページ情報が生成される。次に、分類手段５により、所属判定条件６ｂに基づいて、ページ情報がグループに分類して格納される。分類対象ページ情報が所属判定条件を満たすグループが存在しない場合、グループ作成手段７により、分類対象ページ情報が条件を満たす所属判定条件及びグループが作成され、作成されたグループにページ情報を分類して格納される。そして、ページ取得依頼手段８により、グループ作成手段７で新たに作成されたグループに分類されたページ情報内のリンク情報に基づくページ取得要求が、ページ取得手段４に対して出力される。【選択図】  図１
2006058966.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上のサーバから、リンク情報によって関連付けられたページの集合を収集するためのページ情報収集プログラムにおいて、
コンピュータに、
ページ取得手段が、ページ取得要求に応じて、前記ネットワークを介してページの内容を取得し、前記ページの内容及びページ取得に利用された通信情報を含むページ情報を生成し、
分類手段が、前記ページ取得手段で生成された前記ページ情報を分類対象ページ情報とし、グループ分けを行う際の各グループに所属するページ情報の条件を定義した所属判定条件と、前記分類対象ページ情報とを比較し、前記分類対象ページ情報が前記所属判定条件を満たす前記グループを特定し、特定した前記グループに前記分類対象ページ情報を分類して記憶手段に格納し、
グループ作成手段が、前記分類対象ページ情報が前記所属判定条件を満たす前記グループが存在しない場合、前記分類対象ページ情報が条件を満たす前記所属判定条件を生成し、生成した前記所属判定条件に対応する前記グループを作成し、作成した前記グループに前記分類対象ページ情報を分類して前記記憶手段に格納し、
ページ取得依頼手段が、前記グループ作成手段で新たに作成された前記グループに分類された前記分類対象ページ情報から前記リンク情報を抽出し、抽出した前記リンク情報に基づく前記ページ取得要求を、前記ページ取得手段に対して出力する、
処理を実行させることを特徴とするページ情報収集プログラム。
【請求項２】
前記コンピュータに、
前記グループ作成手段が、予め定義された所属判定条件生成規則に従って、新たな前記所属判定条件を生成する、
処理を実行させることを特徴とする請求項１記載のページ情報収集プログラム。
【請求項３】
前記コンピュータに、
所属判定条件生成規則定義部が、操作入力に応じて、前記所属判定条件生成規則の内容を変更する、
処理を実行させることを特徴とする請求項２記載のページ情報収集プログラム。
【請求項４】
前記所属判定条件には、前記ページの内容を取得したときのレスポンスステータスコードの同一性に関する条件が定義されていることを特徴とする請求項１記載のページ情報収集プログラム。
【請求項５】
前記所属判定条件には、前記ページの内容に含まれるリンク情報の同一性に関する条件が定義されていることを特徴とする請求項１記載のページ情報収集プログラム。
【請求項６】
前記リンク情報の同一性に関する条件では、予め指定された名前のクエリパラメタに関しては、クエリパラメタ名と値とが同一であることを前記グループに所属するための条件とし、その他のクエリパラメタに関しては、クエリパラメタ名が同一であることを前記グループに所属するための条件とすることを特徴とする請求項５記載のページ情報収集プログラム。
【請求項７】
コンピュータに、
前記ページ取得手段が、既に取得したことのある前記ページ情報を取得する際には、再取得する際に辿るべきリンク情報の順番を示す再取得経路情報を参照し、前記再取得経路情報に沿った経路でリンク情報を順番に辿り、前記ページ情報を再取得する、
処理を実行させることを特徴とする請求項１記載のページ情報収集プログラム。
【請求項８】
コンピュータに、
前記分類手段が、前記ページ取得手段で再取得された前記ページ情報を分類し、同一のリクエストで過去に取得した前記ページ情報と同じ前記グループに分類されたか否かを判定し、判定結果を出力する、
処理を実行させることを特徴とする請求項７記載のページ情報収集プログラム。
【請求項９】
コンピュータにより、ネットワーク上のサーバから、リンク情報によって関連付けられたページの集合を収集するためのページ情報収集方法において、
ページ取得手段が、ページ取得要求に応じて、前記ネットワークを介してページの内容を取得し、前記ページの内容及びページ取得に利用された通信情報を含むページ情報を生成し、
分類手段が、前記ページ取得手段で生成された前記ページ情報を分類対象ページ情報とし、グループ分けを行う際の各グループに所属するページ情報の条件を定義した所属判定条件と、前記分類対象ページ情報とを比較し、前記分類対象ページ情報が前記所属判定条件を満たす前記グループを特定し、特定した前記グループに前記分類対象ページ情報を分類して記憶手段に格納し、
グループ作成手段が、前記分類対象ページ情報が前記所属判定条件を満たす前記グループが存在しない場合、前記分類対象ページ情報が条件を満たす前記所属判定条件を生成し、生成した前記所属判定条件に対応する前記グループを作成し、作成した前記グループに前記分類対象ページ情報を分類して前記記憶手段に格納し、
ページ取得依頼手段が、前記グループ作成手段で新たに作成された前記グループに分類された前記分類対象ページ情報から前記リンク情報を抽出し、抽出した前記リンク情報に基づく前記ページ取得要求を、前記ページ取得手段に対して出力する、
ことを特徴とするページ情報収集方法。
【請求項１０】
ネットワーク上のサーバから、リンク情報によって関連付けられたページの集合を収集するページ情報収集装置において、
ページ取得要求に応じて、前記ネットワークを介してページの内容を取得し、前記ページの内容及びページ取得に利用された通信情報を含むページ情報を生成するページ取得手段と、
前記ページ取得手段で生成された前記ページ情報を分類対象ページ情報とし、グループ分けを行う際の各グループに所属するページ情報の条件を定義した所属判定条件と、前記分類対象ページ情報とを比較し、前記分類対象ページ情報が前記所属判定条件を満たす前記グループを特定し、特定した前記グループに前記分類対象ページ情報を分類して記憶手段に格納する分類手段と、
前記分類対象ページ情報が前記所属判定条件を満たす前記グループが存在しない場合、前記分類対象ページ情報が条件を満たす前記所属判定条件を生成し、生成した前記所属判定条件に対応する前記グループを作成し、作成した前記グループに前記分類対象ページ情報を分類して前記記憶手段に格納するグループ作成手段と、
前記グループ作成手段で新たに作成された前記グループに分類された前記分類対象ページ情報から前記リンク情報を抽出し、抽出した前記リンク情報に基づく前記ページ取得要求を、前記ページ取得手段に対して出力するページ取得依頼手段と、
を有することを特徴とするページ情報収集装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＷｅｂサイトからページ情報を収集するページ情報収集プログラム、ページ情報収集方法、及びページ情報収集装置に関し、特にＷｅｂアプリケーションによって制御されたページ情報を収集するページ情報収集プログラム、ページ情報収集方法、及びページ情報収集装置に関する。
【背景技術】
【０００２】
Ｗｅｂサイトを構築した場合、そのＷｅｂサイト内のページが、計画通りに作られていることを検証する必要がある。なお、Ｗｅｂサイトの規模が巨大な場合や、Ｗｅｂアプリケーションを多用している等の理由で構造が複雑な場合、人手によって検証作業を行うのは困難である。そこで、Ｗｅｂサイト内の入力項目への自動入力等を行い、Ｗｅｂサイトの自動検証を行うシステムが考えられている。
【０００３】
Ｗｅｂサイトの自動検証を行うシステムでは、検証対象のＷｅｂサイト内の各ページの情報を自動収集する。ページの収集は、Ｗｅｂサイトが持つデータやプログラム（Ｗｅｂアプリケーションなど）の全体構成が把握できない状況で、そのＷｅｂサイトのテストを行うときに重要な作業である。
【０００４】
例えば、入力テストを行うとき、ページを収集することで初めてそのページを具体的な入力テスト対象として把握できるような場合がある。また、あるページＡで得られた（ランダムな）データを用いないとページＢを得られないといった構造はよくある。例えば、ログイン後でないと取得できないページがある。この場合、ページＢのテストをするには、毎回ページＡを取得しなければならない。そこで、ページＡとページＢとを自動取得する技術が望まれる。
【０００５】
Ｗｅｂサイト内の任意のページからリンク情報を辿ることで参照可能なページ群を収集するシステムとして、以下のようなものがあった。
まず、基点となるページを得るためのＨＴＴＰ(HyperText Transfer Protocol)リクエスト情報をユーザが入力する。システムは、そのＨＴＴＰリクエストを発行し、ＨＴＴＰレスポンスを解析してそこに含まれるリンク情報群のうち、初めて発見されたリンク情報群のみからＨＴＴＰリクエスト群を作成する。作成されたＨＴＴＰリクエスト群を全て発行し終わるまで、この処理（リクエスト発行→レスポンス解析→リクエスト群作成）を繰り返す。なお、基点となるページから一定回数以上リンク情報を辿らないと辿り着けないページについては、レスポンス解析以降の処理を停止することもできる（例えば、特許文献１参照）。
【特許文献１】米国特許第６，５８４，５６９号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、Ｗｅｂアプリケーションを含むＷｅｂサイトのページの収集では、一般的に次のような問題のトレードオフがある。
リンクを辿る回数を増やすと、収集すべきページ数が膨大になってしまい、処理負荷が過大となる。また、リンクを辿る回数を減らすと、未収集ページが増加してしまい、Ｗｅｂサイトの検証の信頼性が低下する。
【０００７】
また、同一ページを重複して収集するのを避けるため、収集したページに含まれるリンク情報のうち、初めて発見されたリンク情報のみを辿ることが行われる。その際、初めて発見されたリンク情報か否かの判定を、例えば、ＵＲＬ(Uniform Resource Locator)、及びパラメタ（クエリパラメタを含む）の組による比較で行うことができる。この場合、判定対象のリンク情報のＵＲＬとＣＧＩ(Common Gateway Interface)のクエリパラメタとが、過去に取得したページへのリンク情報と同じであれば、既に辿ったリンク情報であると判断される。既に辿ったリンク情報と判定された場合、該当リンク情報で示されるページは収集されない。
【０００８】
但し、ＵＲＬ、及びパラメタ（クエリパラメタを含む）の組が完全に一致した場合のみを、同一リンク情報と判定すると、ほぼ同じページを大量に収集してしまう場合がある。例えば、スケジュール管理を行うＷｅｂサイトにおいて、ユーザの任意の日の予定表を表示させるページへのリンク情報が、/foo.cgi?date=1、/foo.cgi?date=2・・・という記載の場合がある。このリンク情報では、クエリパラメタの値によって日付が指定されている。この場合、一日の予定表を示すページの構造は同じであるため、全ての日付について該当ページを取得する必要はない。
【０００９】
しかし、ＵＲＬ、及びパラメタ（クエリパラメタを含む）の組でリンク情報の完全同一性を比較してしまうと、全ての日付に対応するページが取得されてしまう。その結果、無駄なページの検証処理が大量に発生し、システムの処理効率が低下する。
【００１０】
なお、クエリパラメタの値を比較対象から除外すれば、/foo.cgi?date=1、/foo.cgi?date=2・・・というリンク情報があっても、日付に対応する全てのページを取得することは無くなる。但し、クエリパラメタの値を比較対象から除外すると、クエリパラメタの値によって異なる構造のページに遷移する場合に、検査対象とすべきページが収集されない可能性が発生する。
【００１１】
例えば、登録されたスケジュールを表示するページへのリンク情報が/bar.cgi?action=viewと記載され、スケジュールの編集を行うページへのリンク情報が/bar.cgi?action=editと記載されている場合がある。この場合、表示のみのページと編集を行うページとでは、ページの構造が異なる。そのため、それぞれのページを個別に検証対象として収集すべきである。
【００１２】
ところが、リンク情報の比較対象としてクエリパラメタの値を除外し、ＵＲＬとクエリの名前との組で比較を行うと、/bar.cgi?action=viewと/bar.cgi?action=editとは、同一のリンク情報と判断され、一方のページしか取得されない。その結果、検証すべきページが収集できない結果となる。
【００１３】
そこで、検査対象とすべきページを漏れなく収集し、且つ、データ構造が同じページを重複して収集する事態をできるだけ少なく抑えることができるシステムが望まれている。
また、Ｗｅｂサイトの自動検証を行う際には、同一ページの再取得が必要となる場合もある。ページを再取得するシステムでは、例えば、ページ収集の際に発行したＨＴＴＰリクエストを記憶しておく。ユーザから、例えばＵＲＬなどの、あるページを指定する入力が行われると、システムはそのページの収集時に取得した際に用いたリクエストを発行する。そして、システムは、発行したリクエストに対するレスポンスを受け取ると、そのレスポンスを出力する。
【００１４】
しかし、ページ再取得を行うシステムでは、所定の手順に沿って複数のＨＴＴＰリクエストを順に送ることで、初めて有効な意味を持つＨＴＴＰリクエストが出力されるような場合（例えば、トランザクション処理）に、正しいページ再取得を行うことができない。その場合、ページの再取得に失敗したことや、どのリクエストの時点で失敗しているのかを自動判別することができず、人手による検証が必要となる。その結果、ユーザへの負荷が過大となる。
【００１５】
本発明はこのような点に鑑みてなされたものであり、Ｗｅｂサイトの検証に必要なページを効率よく収集することができるページ情報収集プログラム、ページ情報収集方法、及びページ情報収集装置を提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明では上記課題を解決するために、図１に示すような処理をコンピュータに実行させるページ情報収集プログラムが提供される。本発明に係るページ情報収集プログラムは、ネットワーク１上のサーバ２から、リンク情報によって関連付けられたページ３の集合を収集するためのものである。このページ情報収集プログラムにより、図１に示す各要素が以下の処理を実行する。
【００１７】
ページ取得手段４が、ページ取得要求に応じて、ネットワーク１を介してページ３の内容を取得し、ページ３の内容及びページ取得に利用された通信情報を含むページ情報を生成する。分類手段５が、ページ取得手段４で生成されたページ情報を分類対象ページ情報とし、グループ分けを行う際の各グループ６ａに所属するページ情報の条件を定義した所属判定条件６ｂと、分類対象ページ情報とを比較し、分類対象ページ情報が所属判定条件６ｂを満たすグループを特定し、特定したグループに分類対象ページ情報を分類して記憶手段６に格納する。グループ作成手段７が、分類対象ページ情報が所属判定条件を満たすグループが存在しない場合、分類対象ページ情報が条件を満たす所属判定条件を生成し、生成した所属判定条件に対応するグループを作成し、作成したグループに分類対象ページ情報を分類して記憶手段６に格納する。ページ取得依頼手段８が、グループ作成手段７で新たに作成されたグループに分類された分類対象ページ情報からリンク情報を抽出し、抽出したリンク情報に基づくページ取得要求を、ページ取得手段４に対して出力する。
【００１８】
このようなページ情報収集プログラムによれば、ページ取得要求が入力されると、ページ取得手段４により、ネットワーク１を介してページ３の内容が取得され、ページ３の内容及びページ取得に利用された通信情報を含むページ情報が生成される。次に、分類手段５により、ページ取得手段４で生成されたページ情報が分類対象ページ情報とされ、所属判定条件６ｂと分類対象ページ情報とが比較され、分類対象ページ情報が所属判定条件６ｂを満たすグループが特定され、特定されたグループに分類対象ページ情報を分類して記憶手段６に格納される。分類対象ページ情報が所属判定条件を満たすグループが存在しない場合、グループ作成手段７により、分類対象ページ情報が条件を満たす所属判定条件が生成され、生成された所属判定条件に対応するグループが作成され、作成されたグループに分類対象ページ情報を分類して記憶手段６に格納される。そして、ページ取得依頼手段８により、グループ作成手段７で新たに作成されたグループに分類された分類対象ページ情報からリンク情報が抽出され、抽出されたリンク情報に基づくページ取得要求が、ページ取得手段４に対して出力される。
【００１９】
また、上記課題を解決するために、コンピュータにより、ネットワーク上のサーバから、リンク情報によって関連付けられたページの集合を収集するためのページ情報収集方法において、ページ取得手段が、ページ取得要求に応じて、前記ネットワークを介してページの内容を取得し、前記ページの内容及びページ取得に利用された通信情報を含むページ情報を生成し、分類手段が、前記ページ取得手段で生成された前記ページ情報を分類対象ページ情報とし、グループ分けを行う際の各グループに所属するページ情報の条件を定義した所属判定条件と、前記分類対象ページ情報とを比較し、前記分類対象ページ情報が前記所属判定条件を満たす前記グループを特定し、特定した前記グループに前記分類対象ページ情報を分類して記憶手段に格納し、グループ作成手段が、前記分類対象ページ情報が前記所属判定条件を満たす前記グループが存在しない場合、前記分類対象ページ情報が条件を満たす前記所属判定条件を生成し、生成した前記所属判定条件に対応する前記グループを作成し、作成した前記グループに前記分類対象ページ情報を分類して前記記憶手段に格納し、ページ取得依頼手段が、前記グループ作成手段で新たに作成された前記グループに分類された前記分類対象ページ情報から前記リンク情報を抽出し、抽出した前記リンク情報に基づく前記ページ取得要求を、前記ページ取得手段に対して出力する、ことを特徴とするページ情報収集方法が提供される。
【００２０】
さらに、上記課題を解決するために、ネットワーク上のサーバから、リンク情報によって関連付けられたページの集合を収集するページ情報収集装置において、ページ取得要求に応じて、前記ネットワークを介してページの内容を取得し、前記ページの内容及びページ取得に利用された通信情報を含むページ情報を生成するページ取得手段と、前記ページ取得手段で生成された前記ページ情報を分類対象ページ情報とし、グループ分けを行う際の各グループに所属するページ情報の条件を定義した所属判定条件と、前記分類対象ページ情報とを比較し、前記分類対象ページ情報が前記所属判定条件を満たす前記グループを特定し、特定した前記グループに前記分類対象ページ情報を分類して記憶手段に格納する分類手段と、前記分類対象ページ情報が前記所属判定条件を満たす前記グループが存在しない場合、前記分類対象ページ情報が条件を満たす前記所属判定条件を生成し、生成した前記所属判定条件に対応する前記グループを作成し、作成した前記グループに前記分類対象ページ情報を分類して前記記憶手段に格納するグループ作成手段と、前記グループ作成手段で新たに作成された前記グループに分類された前記分類対象ページ情報から前記リンク情報を抽出し、抽出した前記リンク情報に基づく前記ページ取得要求を、前記ページ取得手段に対して出力するページ取得依頼手段と、を有することを特徴とするページ情報収集装置が提供される。
【発明の効果】
【００２１】
本発明では、所属判定条件に基づいて取得したページ情報が所属するグループを判定し、既存のグループに所属しないページ情報を取得した場合に、そのページ情報内のリンク情報に基づくページ取得要求を出力するようにした。そのため、同一グループに所属する複数のページが取得されても、最初に格納されたページからのリンク情報に基づくページ取得要求のみが出力され、リンク先のページの内容が取得される。その結果、内容の共通性の高い複数のページそれぞれからリンク先のページの収集を行わずに済み、必要なページを効率的に収集できる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施の形態を図面を参照して説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
【００２３】
図１は、実施の形態に適用される発明の概念図である。本発明では、ネットワーク１上のサーバ２から、リンク情報によって関連付けられたページ３の集合を収集するために、ページ取得手段４、分類手段５、記憶手段６、グループ作成手段７、及びページ取得依頼手段８が設けられている。
【００２４】
ページ取得手段４は、ページ取得要求に応じて、ネットワーク１を介してページ３の内容を取得し、ページ３の内容及びページ取得に利用された通信情報を含むページ情報を生成する。通信情報には、例えば、ページ３を取得するためにサーバ２に対して送信されたリクエストや、リクエストに応じたサーバ２から出力されたレスポンスのヘッダ情報等が含まれる。
【００２５】
分類手段５は、ページ取得手段４で生成されたページ情報を分類対象ページ情報とする。さらに、分類手段５は、グループ分けを行う際の各グループ６ａに所属するページ情報の条件を定義した所属判定条件６ｂと、分類対象ページ情報とを比較し、分類対象ページ情報が所属判定条件６ｂを満たすグループを特定する。そして、分類手段５は、特定したグループに分類対象ページ情報を分類して記憶手段６に格納する。
【００２６】
グループ作成手段７は、分類対象ページ情報が所属判定条件を満たすグループが存在しない場合、分類対象ページ情報が条件を満たす所属判定条件を生成する。そして、グループ作成手段７は、生成した所属判定条件に対応するグループを作成し、作成したグループに分類対象ページ情報を分類して記憶手段６に格納する。
【００２７】
ページ取得依頼手段８は、グループ作成手段７で新たに作成されたグループに分類された分類対象ページ情報からリンク情報を抽出し、抽出したリンク情報に基づくページ取得要求を、ページ取得手段４に対して出力する。ページ取得依頼手段８から出力されるページ取得要求により、取得したページ情報からリンクが張られたリンク先のページが取得される。
【００２８】
これにより、基点となるページ（例えば、Ｗｅｂサイトのトップページ）のページ取得要求が入力されると、ページ取得手段４により、ネットワーク１を介してページ３の内容が取得され、ページ３の内容及びページ取得に利用された通信情報を含むページ情報が生成される。
【００２９】
次に、分類手段５により、ページ取得手段４で生成されたページ情報が分類対象ページ情報とされ、所属判定条件６ｂと分類対象ページ情報とが比較される。基点のページに関するページ情報が取得された場合、またグループが作成されていないため、グループ作成手段７により、分類対象ページ情報が条件を満たす所属判定条件が生成され、さらに、生成された所属判定条件に対応するグループが作成される。そして、グループ作成手段７で作成されたグループに、分類対象ページ情報を分類して、記憶手段６に格納される。
【００３０】
すると、ページ取得依頼手段８により、グループ作成手段７で新たに作成されたグループに分類された分類対象ページ情報からリンク情報が抽出され、抽出されたリンク情報に基づくページ取得要求が、ページ取得手段４に対して出力される。
【００３１】
その後、リンク先のページに関するページ情報が、ページ取得手段４によって取得される。取得されたページ情報の何れかのグループ６ａの所属判定条件６ｂを満たしていれば、ページ情報は、該当するループに分類され、記憶手段６に格納される。
【００３２】
取得したページ情報が何れのグループの所属判定条件も満たしていなければ、グループ作成手段７により新たなグループが作成される。すると、ページ取得依頼手段８により、新たなグループに分類されたページ情報からリンク情報が抽出され、そのリンク情報に基づくページ取得要求が出力される。
【００３３】
このように、取得したページ情報が新たなグループに分類された場合にのみ、そのページ情報からのリンク先の他のページに関するページを取得するようにしたため、同一性の高いページを重複して収集することを防止できる。その結果、効率よくサーバ２上のページ収集が可能となる。
【００３４】
ところで、収集したページ情報は、サーバ２に構築したＷｅｂサイトのデータ検証に有効に利用することができる。すなわち、Ｗｅｂサイトを立ち上げる場合、正しくＷｅｂページ同士が関連付けられていることを検証する必要がある。検証作業を行うには、Ｗｅｂサイト内のＷｅｂページを収集する必要がある。Ｗｅｂページの収集は、Ｗｅｂページ間のリンクを辿ることによって行われる。
【００３５】
その際、ページ間の同一性を考えずに全てのページを収集したのでは、無駄な検証作業が発生してしまう。そこで、本発明を適用して、既に取得しているページと同一性の高いページを取得した場合、そのページから先のリンクは辿らないようにすることで、無駄なページの収集を防止できる。
【００３６】
以下、本発明をＷｅｂサイト検証装置に適用した場合を例に採り、本発明の実施の形態を具体的に説明する。
図２は、本実施の形態のシステム構成を示す図である。Ｗｅｂサイト検証装置１００は、ネットワーク１０を介してＷｅｂサーバ２１０，２２０，・・・に接続されている。Ｗｅｂサイト検証装置１００は、Ｗｅｂサーバ２１０，２２０，・・・に格納されたＷｅｂページ（例えば、ＨＴＴＰデータ）を収集し、各ページが計画通りに作成されていることを検証する。
【００３７】
図３は、Ｗｅｂサイト検証装置のハードウェア構成例を示す図である。Ｗｅｂサイト検証装置１００は、ＣＰＵ(Central Processing Unit)１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ(Random Access Memory)１０２、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、及び通信インタフェース１０６が接続されている。
【００３８】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションプログラムが格納される。
【００３９】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。
【００４０】
通信インタフェース１０６は、ネットワーク１０に接続されている。通信インタフェース１０６は、ネットワーク１０を介して、他のコンピュータとの間でデータの送受信を行う。
【００４１】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図３には、Ｗｅｂサイト検証装置１００のハードウェア構成例を示したが、Ｗｅｂサーバ２１０，２２０，・・・も同様のハードウェア構成で実現することができる。
【００４２】
図４は、Ｗｅｂサイト検証装置の機能を示すブロック図である。Ｗｅｂサイト検証装置１００は、ページ取得依頼部１１０、ページ取得部１２０、ページ同一性判定部１３０、及びＨＴＴＰデータ検証部１４０を有している。
【００４３】
ページ取得依頼部１１０は、ページ取得部１２０に対してページ取得要求を出力する。例えば、ページ取得依頼部１１０は、ユーザによって、Ｗｅｂサイトのトップページを指定したページ収集要求が出されると、指定されたトップページの取得要求をページ取得部１２０に渡す。また、ページ取得依頼部１１０は、ページが取得された際に、ページ同一性判定部１３０において新たなページクラスが生成された場合、取得したページのリンク情報を抽出し、各リンク情報で示されたページの取得要求をページ取得部１２０に渡す。
【００４４】
ページ取得部１２０は、ページ取得依頼部１１０からの要求に応じてページを取得する。この際、ページ取得部１２０は、取得すべきページが、既に取得したページの再取得の場合、予め指定された経路（例えば、前回取得したときと同じ手順）を辿って、目的のページを取得する。例えば、ログイン処理の後に取得したページの再取得であれば、ログイン処理を行った後、該当ページ取得のＨＴＴＰリクエストを送信する。
【００４５】
ページ取得部１２０は、取得したページに関するページ情報２０をページ同一性判定部１３０に渡す。ページ情報２０には、接続に使用したデータ、リクエスト、及びレスポンスが含まれる。ページの内容は、レスポンスに含まれている。
【００４６】
なお、ページ取得部１２０は、過去に取得したページの再取得を行った場合、ページ情報２０をページ同一性判定部１３０に渡すと共に、ページ同一性判定部１３０に対して同一性判定依頼を出力する。
【００４７】
ページ同一性判定部１３０は、取得したページ情報２０をページクラス単位に分類する。ページクラスは、所定の所属判定条件を満たしたページ情報２０の集合である。取得したページ情報２０が、既存のページクラスの何れの所属判定条件にも適合しなかった場合、ページ同一性判定部１３０は、新たなページクラスを生成し、そのページクラスに取得したページ情報２０を格納する。取得したページ情報２０が、既存のページクラスの何れかの所属判定条件に適合した場合、ページ同一性判定部１３０は、該当する新たなページクラスを生成し、そのページクラスに取得したページ情報２０を格納する。
【００４８】
なお、ページ同一性判定部１３０は、ページ情報２０と共に同一性判定依頼を受け取っている場合、ページ情報２０の内容が、過去に同一リクエストに応じて取得したものと同じか否か（同一ページクラスに所属するか否か）を判定し、判定結果をページ取得部１２０に返す。
【００４９】
ＨＴＴＰデータ検証部１４０は、収集したページ情報２０に基づいて、そのページ情報２０内のＨＴＴＰデータが正しく作成されているかどうかを検証する。
データの収集は、ページ取得依頼部１１０に対して、ユーザからの操作入力等により、Ｗｅｂサイトのデータ収集指示が入力された場合に開始される。そして、Ｗｅｂサイト内のどのページを取得するのかが、ページ取得依頼部１１０によって管理される。
【００５０】
図５は、ページ取得依頼部の処理手順を示すフローチャートである。以下、図５に示す処理をステップ番号に沿って説明する。
［ステップＳ１］ページ取得依頼部１１０は、操作入力等により、Ｗｅｂサイトのデータ収集指示を受け付ける。データ収集指示では、ＷｅｂサイトのトップページのＵＲＬが指定される。データ収集指示では、例えば、新規に立ち上げたＷｅｂサーバ内のデータ検証を行う際に、そのＷｅｂサーバのトップページを指定したデータ収集指示が入力される。
【００５１】
［ステップＳ２］ページ取得依頼部１１０は、トップページの取得要求を、ページ取得部１２０に対して出力する。これにより、ページ取得部１２０でトップページのページ情報２０が取得される。ページ情報２０は、ページ同一性判定部１３０に渡され、ページクラス毎に分類される。トップページの場合、最初のページ情報となるため、新しいページクラスが生成され、取得したページ情報２０はそのページクラスに所属する。
【００５２】
［ステップＳ３］ページ取得依頼部１１０は、ページ同一性判定部１３０による分類結果を取得する。
［ステップＳ４］ページ取得依頼部１１０は、新しいページクラスに分類されたか否かを判断する。新しいページクラスに分類された場合、処理がステップＳ５に進められる。既存のページクラスに分類された場合、処理がステップＳ６に進められる。
【００５３】
［ステップＳ５］ページ取得依頼部１１０は、取得したページ情報２０内のＨＴＴＰデータを解析し、そのＨＴＴＰデータに含まれるリンク情報を、収集対象リンク情報としてリストアップする。このとき、収集対象のＷｅｂサーバとは異なるＷｅｂサーバに存在するページへのリンク情報は、処理対象からは除外される。
【００５４】
［ステップＳ６］ページ取得依頼部１１０は、収集対象リンク情報としてリストアップされたリンク情報のうち、未取得のリンク情報があるか否かを判断する。未取得のリンク情報があれば、処理がステップＳ７に進められる。未取得のリンク情報がなければ、処理が終了する。
【００５５】
［ステップＳ７］ページ取得依頼部１１０は、収集対象のリンク情報を１つ選択し、そのリンク情報に基づくページ取得要求をページ取得部１２０に対して出力する。その後、処理がステップＳ３に進められる。これにより、ページ取得部１２０により、リンク情報に対応するページ情報２０が取得され、ページ同一性判定部１３０により、ページクラス毎の分類が行われる。その後、ステップＳ３〜ステップＳ６の処理が繰り返されることで、取得したページ情報２０が新しいページクラスに分類された場合にのみ、そのページ情報から他のページへのリンク情報が、収集対象となる。
【００５６】
このように、本実施の形態では、取得したページ情報２０が新しいページクラスに分類された場合にのみ、そのページ情報２０から他のページへのリンク情報を、収集対象とする。その結果、Ｗｅｂサイトのページ収集に際し、同じページクラスに分類されたページ情報２０から先のリンクは辿られないこととなる。これにより、不要なページ収集が防止される。
【００５７】
以下、ページ取得部１２０とページ同一性判定部１３０の機能を詳細に説明する。なお、ページ取得部１２０は、ＨＴＴＰデータの再取得を行う際に、ページ同一性判定部１３０における分類機能を利用する。そこで、以下の説明では、ページ同一性判定部１３０によるＨＴＴＰデータの分類処理を先に説明し、その後、ページ取得部１２０について説明する。
【００５８】
図６は、ページ情報分類部の機能を示すブロック図である。ページ同一性判定部１３０は、ページクラス保持部１３１、ページ情報分類部１３４、ページクラス作成部１３５、所属判定条件生成規則定義部１３６、及び所属判定条件変更部１３７を有している。
【００５９】
ページクラス保持部１３１は、複数のページクラス１３１ａ，１３１ｂ，１３１ｃを記憶する。ページクラス１３１ａ，１３１ｂ，１３１ｃは、所属判定条件１３２ａ，１３２ｂ，１３２ｃと１以上のページ情報１３３ａ，１３３ｂ，１３３ｃとを含んでいる。所属判定条件１３２ａ，１３２ｂ，１３２ｃは、各ページクラス１３１ａ，１３１ｂ，１３１ｃにＨＴＴＰデータが所属するか否かを判定する為の条件である。
【００６０】
所属判定条件には、優先度が設定されている。優先度は、複数のページクラスの所属判定条件を満たすＨＴＴＰデータがあった場合に、そのＨＴＴＰデータを所属させるページクラスの優先順位を示している。優先度の値が高いほど、そのページクラスの優先順位が高くなる。
【００６１】
ページ情報１３３ａ，１３３ｂ，１３３ｃは、各ページクラス１３１ａ，１３１ｂ，１３１ｃに所属するものとして分類されたページの内容である。
ページ情報分類部１３４は、ページ情報２０（接続に使用したデータ、リクエスト、及びレスポンスを含む）が入力されると、ページ情報２０が所属するページクラスを判断する。所属するページクラスは、ページクラス１３１ａ，１３１ｂ，１３１ｃを優先度が高い順に選択し、選択したページクラスの所属判定条件をページ情報２０が満たしているか否かによって判断される。ページ情報分類部１３４は、ページ情報２０が所属するページクラスを検出した場合、そのページクラスにページ情報２０を格納する。また、ページ情報分類部１３４は、所属するページクラスが無いと判断した場合、ページクラス作成部１３５に対して所属判定条件作成依頼を出力する。この際、ページ情報２０がページ情報分類部１３４からページクラス作成部１３５に渡される。
【００６２】
ページクラス作成部１３５は、新たにページクラスを作成し、そのページクラスが有する所属判定条件を作成する。なお、ページクラス作成部１３５は、所属判定条件生成規則定義部１３６に定義されている所属判定条件生成規則に従って、所属判定条件を生成する。
【００６３】
具体的には、ページクラス作成部１３５は、ページ情報２０の内容を解析し、所属判定条件生成規則に従って、ページ情報２０に含まれる情報を所属判定条件の各項目に設定する。そして、ページクラス作成部１３５は、ページクラス保持部１３１内に新たなページクラスを格納し、生成した所属判定条件を設定する。さらに、ページクラス作成部１３５は、取得したページ情報２０を新たに生成したページクラスに格納する。
【００６４】
所属判定条件生成規則定義部１３６は、ユーザから、所属判定条件の初期設定を指示する操作入力に応じて、所属判定条件を生成するための所属判定条件生成規則を決定する。また、所属判定条件生成規則定義部１３６は、ユーザからの所属判定条件の変更を指示する操作入力に応じて、所属判定条件生成規則を変更する。そして、所属判定条件生成規則定義部１３６は、ページクラス作成部１３５からの要求に応じて、所属判定条件生成規則を渡す。
【００６５】
所属判定条件変更部１３７は、ユーザからの所属判定条件の変更指示に応じて、ページクラスに設定されている所属判定条件の内容を変更する。
次に、ページクラス保持部１３１に格納されるデータについて詳細に説明する。
【００６６】
図７は、ページクラス保持部のデータ構造例を示す図である。ページクラス保持部１３１には、ページクラスのＩＤ、所属判定優先度、所属判定条件、所属ページ情報のＩＤの集合、及び再取得用ページ情報のＩＤが互いに関連付けて、１つのページクラスとして格納されている。
【００６７】
ページクラスのＩＤは、各ページクラスの識別情報である。所属判定優先度は、所属判定の際の優先度（値が大きいほど優先度が高い）である。所属判定条件は、該当するページクラスにページ情報が所属するための条件である。所属判定条件の詳細は、後述する。所属ページ情報のＩＤの集合は、ページクラスに所属するページ情報の識別番号である。
【００６８】
再取得用ページ情報のＩＤは、ページクラスに所属するページ情報を再取得する際に利用すべきページ情報の識別番号である。再取得経路（基点となるページからリンク情報を辿る手順）を探索する際には、再取得用ページ情報のＩＤで示されるページ情報のページに遷移するためのリンク情報を有している、他のページが検出される。検出されたページを経由した経路が、再取得時の経路となる。
【００６９】
図７に示したように、ページクラス保持部１３１では、ページクラス毎に、そのページクラスに所属するページ情報のＩＤのみが登録されており、ページ情報は、ページ情報群としてとして纏めて管理される。
【００７０】
図８は、ページ情報群のデータ構造例を示す図である。ページ情報群１３３には、ページ情報のＩＤ、接続に使用したデータ、リクエストデータ、及びレスポンスデータが互いに関連付けられ、１つのページ情報として格納されている。
【００７１】
ページ情報のＩＤは、格納されたページ情報の識別番号である。接続に使用したデータは、ページ情報を取得するために、Ｗｅｂサーバとの間の通信の接続に使用されたデータである。接続に使用したデータには、ＵＲＬやプロキシサーバのＩＤアドレス等が含まれる。リクエストデータは、ページを取得するためにＷｅｂサーバに送信されたリクエストの内容である。レスポンスデータは、リクエストの送信に応じてＷｅｂサーバから返されたレスポンスの内容である。
【００７２】
次に、ページ情報分類部１３４が実行する処理を、詳細に説明する。
図９は、ページ情報分類処理の手順を示すフローチャートである。以下、図９に示す処理をステップ番号に沿って説明する。
【００７３】
［ステップＳ１１］ページ情報分類部１３４は、ページクラスを優先度順にソートする。具体的には、ページ情報分類部１３４は、ページクラス保持部１３１内の各ページクラスの所属判定条件を参照し、優先度の値が高い順にページクラスを並べる。
【００７４】
［ステップＳ１２］ページ情報分類部１３４は、分類対象であるページ情報を取得する。
［ステップＳ１３］ページ情報分類部１３４は、比較していないページクラスがあるか否かを判断する。比較していないページクラスがあれば、処理がステップＳ１６に進められる。全てのページクラスとの比較が終了していれば、処理がステップＳ１４に進められる。
【００７５】
［ステップＳ１４］ステップＳ１３において全てのページクラスとの比較が終了したと判断された場合、取得したＨＴＴＰデータは既存のページクラスの何れにも所属しない。その場合、ページクラス作成部１３５が、ページクラス保持部１３１内に新しいページクラスを作成する。そして、ページクラス作成部１３５は、新たに作成したページクラスに、ページ情報を格納する。
【００７６】
［ステップＳ１５］ページクラス作成部１３５は、所属判定条件を作成し、ステップＳ１４で生成したページクラスに所属判定条件を設定する。所属判定条件は、所属判定条件生成規則定義部１３６に定義された所属判定条件生成規則に従って作成される。その後、処理が終了する。
【００７７】
［ステップＳ１６］ステップＳ１３において比較していないページクラスがあると判断された場合、ページ情報分類部１３４は、次のページクラスを比較対象として選択する。即ち、ページ情報分類部１３４は、比較していないページクラスの中で、最も優先度の高いページクラスを比較対象として選択する。
【００７８】
［ステップＳ１７］ページ情報分類部１３４は、所属判定処理を行う。所属判定処理の詳細は後述する。
［ステップＳ１８］ページ情報分類部１３４は、ステップＳ１７における所属判定処理の結果、ページ情報がステップＳ１６で選択したページクラスに所属と判定されたか否かを判断する。所属すると判定された場合、処理がステップＳ１９に進められる。所属しないと判定された場合、処理がステップＳ１３に進められ、次のページクラスとの比較処理が行われる。
【００７９】
［ステップＳ１９］ページ情報分類部１３４は、ステップＳ１６で選択したページクラスに、ページ情報を分類する。具体的には、ページ情報分類部１３４は、選択したページクラス内にページ情報を格納する。その後、処理が終了する。
【００８０】
このようにして、ページ情報を分類することができる。
次に、所属判定条件の作成方法について詳細に説明する。所属判定条件は、所属判定条件生成規則定義部１３６に定義された所属判定条件生成規則に従って作成される。
【００８１】
ところで、所属判定条件には、リクエストに含まれるＵＲＬやパラメタ、取得したＨＴＴＰデータに含まれるリンク情報のＵＲＬやパラメタが利用される。そこで、まずＵＲＬとパラメタのデータ構造について説明する。
【００８２】
図１０は、ＵＲＬとパラメタのデータ構造を示す図である。ＨＴＴＰデータの所在地は、ＵＲＬ４１で指定される。ＵＲＬ４１には、パラメタ４２を付加することができる。パラメタ４２は、ＵＲＬ４１で指定されたＨＴＴＰデータを取得する際に、そのＨＴＴＰデータを保持するＷｅｂサーバに渡される。そして、ＵＲＬ４１においてＷｅｂアプリケーションが指定されている場合、「？」以降にクエリ４３を設定することができる。クエリ４３は、１以上のクエリパラメタ４４，４５で構成される。クエリパラメタ４４は、名前４６と値４７とを有している。
【００８３】
このようなデータ構造のＵＲＬ及びパラメタが、リクエストやＨＴＴＰデータに含まれる。そして、分類対象のＨＴＴＰデータに関係するＵＲＬ及びパラメタを解析することで、所属判定条件を生成することができる。
【００８４】
所属判定条件は、所属判定条件生成規則に従って生成される。所属判定条件生成規則は、例えば、所属判定条件の雛形で定義することができる。所属判定条件の雛形を使用した場合、その雛形内の各項目に対して取得したＨＴＴＰデータのデータを登録することで、所属判定条件を生成することができる。
【００８５】
図１１は、所属判定条件生成規則の表示例を示す図である。所属判定条件生成規則３０には、大別して３つの所属判定項目３１〜３３、指定クエリパラメタ名設定部３４、ＯＫボタン３５、キャンセルボタン３６が設けられている。各項目に対して、ページ情報から抽出した情報を設定することで、所属判定条件が作成される。
【００８６】
所属判定項目３１には、リクエストの同一性を考慮した所属判定基準が定義される。所属判定項目３１の設定領域の左上にはチェックボックスが設けられている。このチェックボックスがチェックされている場合に、所属判定項目３１に定義されている所属判定基準が適用される。
【００８７】
所属判定項目３１内には、ＵＲＬ設定部３１ａと、クエリ判定基準設定部３１ｂとが設けられている。ＵＲＬ設定部３１ａには、ページクラスに含まれるべきＨＴＴＰデータのＵＲＬが設定される。クエリ判定基準設定部３１ｂには、ページクラスに含まれるべきＨＴＴＰデータを取得する際のリクエストに含まれるべきクエリの内容が設定される。
【００８８】
クエリ判定基準設定部３１ｂの設定領域の左上にはチェックボックスが設けられている。このチェックボックスがチェックされている場合に、クエリ判定基準設定部３１ｂに定義されている所属判定基準が適用される。
【００８９】
クエリ判定基準設定部３１ｂ内には、クエリ設定部３１ｂａ、及び判定対象指定部３１ｂｂ，３１ｂｃ，３１ｂｄが設けられている。クエリ設定部３１ｂａには、リクエストに含まれるべきクエリパラメタが設定される。但し、クエリ設定部３１ｂａに設定されたクエリパラメタのうち、判定対象指定部３１ｂｂ，３１ｂｃ，３１ｂｄによって指定された情報のみが所属判定条件として適用される。
【００９０】
判定対象指定部３１ｂｂ，３１ｂｃ，３１ｂｄでは、クエリ設定部３１ｂａに設定されたクエリパラメタのうち、所属判定条件として使用する情報が指定される。判定対象指定部３１ｂｂ，３１ｂｃ，３１ｂｄは、それぞれ選択ボタンが設けられており、選択ボタンが選択されたとき、対応する判定対象指定部で指定されたクエリパラメタが、所属判定条件として適用される。
【００９１】
判定対象指定部３１ｂｂが選択された場合、クエリパラメタ（名前と値）の集合が判定対象となる。判定対象指定部３１ｂｃが選択された場合、クエリパラメタの名前の集合が判定対象となる。判定対象指定部３１ｂｄが選択された場合、任意に指定されたクエリパラメタ（名前と値）の集合と、その他のクエリパラメタの名前の集合とが判定対象となる。判定対象指定部３１ｂｄが選択された場合、指定クエリパラメタ名設定部３４に設定された名前の指定クエリパラメタについては、クエリパラメタ（名前と値）の集合が判定対象となる。
【００９２】
所属判定項目３２には、レスポンスステータスコードを考慮した所属判定基準が定義される。所属判定項目３２の設定領域の左上にはチェックボックスが設けられている。このチェックボックスがチェックされている場合に、所属判定項目３２に定義されている所属判定基準が適用される。
【００９３】
所属判定項目３２内には、レスポンスステータスコード設定部３２ａが設けられている。レスポンスステータスコード設定部３２ａには、ページクラスに所属するＨＴＴＰデータを取得したときのレスポンスステータスコードが設定される。
【００９４】
所属判定項目３３には、レスポンスが含むリンク情報を考慮した所属判定基準が定義される。所属判定項目３２の設定領域の左上にはチェックボックスが設けられている。このチェックボックスがチェックされている場合に、所属判定項目３３に定義されている所属判定基準が適用される。
【００９５】
所属判定項目３３には、リンク情報のＵＲＬ設定部３３ａ、リンク情報のクエリ設定部３３ｂ、クエリ判定要否設定部３３ｃ、集合同一性判定要否設定部３３ｄが設けられている。
【００９６】
ＵＲＬ設定部３３ａには、ＨＴＴＰデータに含まれるべきＵＲＬが設定される。クエリ設定部３３ｂには、ＵＲＬ設定部３３ａに設定されたＵＲＬに対応付けて、そのＵＲＬに付与されるべきクエリが設定される。
【００９７】
クエリ判定要否設定部３３ｃでは、クエリ内の情報の内、同一性の判定を行う情報の指定が行われる。クエリ判定要否設定部３３ｃは、判定対象指定部３３ｃａ，３３ｃｂ，３３ｃｃが設けられている。
【００９８】
判定対象指定部３３ｃａ，３３ｃｂ，３３ｃｃでは、クエリ判定要否設定部３３ｃに設定されたクエリパラメタのうち、所属判定条件として使用する情報が指定される。判定対象指定部３３ｃａ，３３ｃｂ，３３ｃｃは、それぞれ選択ボタンが設けられており、選択ボタンが選択されたとき、対応する判定対象指定部で指定されたクエリパラメタが、所属判定条件として適用される。
【００９９】
判定対象指定部３３ｃａが選択された場合、クエリパラメタ（名前と値）の集合が判定対象となる。判定対象指定部３３ｃｂが選択された場合、クエリパラメタの名前の集合が判定対象となる。判定対象指定部３３ｃｃが選択された場合、任意に指定されたクエリパラメタ（名前と値）の集合と、その他のクエリパラメタの名前の集合とが判定対象となる。判定対象指定部３３ｃｃが選択された場合、指定クエリパラメタ名設定部３４に設定された名前の指定クエリパラメタについては、クエリパラメタ（名前と値）の集合が判定対象となる。
【０１００】
集合同一性判定要否設定部３３ｄは、集合によって同一性を判定するか否かを示す設定項目である。集合によって同一性を判定する場合、ＨＴＴＰデータ内に同じ内容のリンク情報が複数あっても、それらの集合を１つのリンク情報と判断して、属性判定を行う。この際、リンク情報において属性判定の判定対象となる情報が同一であれば、同一の集合として扱うものとする。
【０１０１】
指定クエリパラメタ名設定部３４には、クエリパラメタを判定対象として使用する際に、名前と値とを判定対象とするパラメタの名称が設定される。
ＯＫボタン３５は、雛形に設定した項目を編集した際に、その編集内容を確定するためのボタンである。キャンセルボタン３６は、雛形に設定した項目を編集した際に、その編集内容を反映させずに編集を終了させるためのボタンである。
【０１０２】
このような所属判定条件生成規則３０の設定内容に相当する所属判定条件生成規則が、所属判定条件生成規則定義部１３６において定義される。所属判定条件生成規則３０では、初期条件が予め設定されている。初期条件は、ユーザからの操作入力に応答して、所属判定条件生成規則定義部１３６により設定される。初期条件として、所属判定項目３１，３２，３３等の各種チェックボックスの選択の有無が選択される。また、初期条件として、クエリ判定基準設定部３１ｂのチェックボックスがチェックされている場合、初期条件において判定対象指定部３１ｂｂ，３１ｂｃ，３１ｂｄのうちの１つが選択される。同様に、初期条件として、クエリ判定要否設定部３３ｃのチェックボックスがチェックされている場合、初期条件において判定対象指定部３３ｃａ，３３ｃｂ，３３ｃｃのうちの１つが選択される。また、初期条件において、指定クエリパラメタ名設定部３４へのパラメタ名の設定も行われる。
【０１０３】
このような所属判定条件生成規則３０に基づいて、ページクラス作成部１３５がＨＴＴＰデータの所属判定条件を生成する。このとき、ページクラス作成部１３５は、ＨＴＴＰデータをＷｅｂサーバから取得する際のリクエストの内容もページ取得部１２０から受け取る。
【０１０４】
図１２は、リクエストの例を示す図である。このリクエスト４８の内容は、「GET /HTTP/1.0」である。このリクエスト４８をネットワーク１０上に送信することで、Ｗｅｂサーバからレスポンスが返される。
【０１０５】
本実施の形態では、リクエスト４８に示されるＵＲＬ及びクエリは、以下の様にして抽出することができる。
ページ情報分類部１３４及びページクラス作成部１３５は、Ｗｅｂサーバに対する接続に使用したデータ及びリクエスト４８をパーズ（データ構造を解析すること）して、それらのデータから以下の情報を抽出することができる。
【０１０６】
例えば、ページ情報分類部１３４やページクラス作成部１３５は、接続に使用したデータから、プロキシサーバを経由しない場合、ホスト名及びポート番号を抽出できる。また、ページ情報分類部１３４やページクラス作成部１３５は、リクエスト４８のリクエスト行（１行目）から、ホスト名、ポート番号を抽出することもできる。また、ページ情報分類部１３４やページクラス作成部１３５は、リクエストのＨｏｓｔヘッダフィールドがあれば、そのデータからホスト名及びポート番号を抽出することも可能である。
【０１０７】
図１３は、レスポンスの例を示す図である。レスポンス４９には、ＨＴＴＰ形式で記述されたページの内容（ＨＴＴＰデータ）が含まれている。
レスポンスステータスコードは、以下の方法で抽出できる。
【０１０８】
例えば、ページ情報分類部１３４やページクラス作成部１３５は、レスポンス４９をパーズして、ステータスコードを抽出する。なお、ステータス行は、レスポンス４９の１行目に当たる。
【０１０９】
さらに、レスポンスが含むリンク情報は、以下のようにして抽出できる。
例えば、ページ情報分類部１３４やページクラス作成部１３５は、レスポンス４９をパーズして、リンク情報を抽出する。具体的には、ページ情報分類部１３４やページクラス作成部１３５は、ステータスコードが3XXのときは、Location ヘッダフィールド（など）からリンク情報を抽出する。また、ページ情報分類部１３４やページクラス作成部１３５は、エンティティボディをパーズする。そして、ページ情報分類部１３４やページクラス作成部１３５は、レスポンス４９がＨＴＭＬデータであった場合は、href属性値や、formタグによって示されたフォームのパーズ結果や、metaタグによって示されたrefresh先などからリンク情報を抽出する。
【０１１０】
図１２、図１３に示したようなリクエスト４８とレスポンス４９とを受け取ったページクラス作成部１３５は、リクエスト４８とレスポンス４９とから、所属判定条件生成規則３０の各項目に該当する情報を抽出し、抽出した情報を各項目に設定する。その結果、所属判定条件が生成される。
【０１１１】
図１４は、所属判定条件の例を示す図である。所属判定条件３０ａは、所属判定条件生成規則３０と同じデータ構造であり、各種項目に、リクエスト４８とレスポンス４９とから抽出された情報が設定されている。
【０１１２】
この例では、ＵＲＬ設定部３１ａには「http://www.sample.com」と設定されている。レスポンスステータスコード設定部３２ａには「200」と設定されている。ＵＲＬ設定部３３ａには、「http://www.sample.com/foo.cgi」と「http://www.sample.com/bar.cgi」とが２つずつ設定されている。クエリ設定部３３ｂには、ＵＲＬ設定部３３ａに設定されているＵＲＬ「http://www.sample.com/foo.cgi」に対応付けて「date=1」と「date=2」とが設定されている。また、クエリ設定部３３ｂには、ＵＲＬ設定部３３ａに設定されているＵＲＬ「http://www.sample.com/bar.cgi」に対応付けて「action=view」と「action=edit」とが設定されている。
【０１１３】
このようにして生成された所属判定条件３０ａが、レスポンス４９に含まれるＨＴＴＰデータと共に、新たに作成されたページクラスに設定される。この際、所属判定条件３０ａの優先度は、所定の初期値が設定される。
【０１１４】
次に、ページ情報分類部１３４における所属判定処理について説明する。
図１５は、所属判定処理の手順を示すフローチャートである。以下、図１５に示す処理をステップ番号に沿って説明する。
【０１１５】
［ステップＳ２１］ページ情報分類部１３４は、選択したページクラスの所属判定条件を参照し、リクエストのＵＲＬやクエリが判定対象か否かを判断する。これは、所属判定項目３１のチェックボックスがチェックされているか否かによって判断できる。判定対象であれば、処理がステップＳ２２に進められる。判定対象でなければ、処理がステップＳ２３に進められる。
【０１１６】
［ステップＳ２２］ページ情報分類部１３４は、リクエストのＵＲＬと所属判定条件３０ａのＵＲＬ設定部３１ａに設定されたＵＲＬとが同一か否かを判断する。また、クエリの同一性も判定対象となる場合、ページ情報分類部１３４は、リクエストのクエリパラメタとクエリ設定部３１ｂａに設定されたクエリパラメタとが同一か否かを判断する。判定対象の全てが同一の場合、処理がステップＳ２３に進められる。不一致の判定対象がある場合、処理がステップＳ２８に進められる。
【０１１７】
［ステップＳ２３］ページ情報分類部１３４は、レスポンスステータスコードが判定対象か否かを判断する。これは、所属判定項目３２のチェックボックスがチェックされているか否かによって判断できる。判定対象の場合、処理がステップＳ２４に進められる。判定対象では無い場合、処理がステップＳ２５に進められる。
【０１１８】
［ステップＳ２４］ページ情報分類部１３４は、レスポンスのレスポンスステータスコードと、レスポンスステータスコード設定部３２ａに設定されたレスポンスステータスコードとが同一か否かを判断する。同一であれば、処理がステップＳ２５に進められる。同一でなければ、処理がステップＳ２８に進められる。
【０１１９】
［ステップＳ２５］ページ情報分類部１３４は、リンク情報が判定対象か否かを判断する。これは、所属判定項目３３のチェックボックスがチェックされているか否かによって判断できる。リンク情報が判定対象の場合、処理がステップＳ２６に進められる。リンク情報が判定対象ではない場合、処理がステップＳ２７に進められる。
【０１２０】
［ステップＳ２６］ページ情報分類部１３４は、ＨＴＴＰデータに含まれるリンク情報と、ＵＲＬ設定部３３ａやクエリ設定部３３ｂに設定されているＵＲＬ及びクエリパラメタとが一致するか否かを判断する。なお、クエリパラメタについては、判定対象として定義されている情報のみが比較される。
【０１２１】
例えば、図１４に示すような内容の所属判定条件３０ａであれば、ＵＲＬ「http://www.sample.com/foo.cgi」については、クエリパラメタの名前のみが比較される。一方、ＵＲＬ「http://www.sample.com/bar.cgi」については、指定クエリパラメタ名設定部３４で「action」が設定されていることから、クエリパラメタの名前と値とが比較される。
【０１２２】
リンク情報が同一であれば、処理がステップＳ２７に進められる。リンク情報が同一でなければ、処理がステップＳ２８に進められる。
［ステップＳ２７］ページ情報分類部１３４は、取得したページ情報が、選択したページクラスに所属すると判定する。その後、処理が終了する。
【０１２３】
［ステップＳ２８］何れかの判定処理において、同一ではないと判断されると、ページ情報分類部１３４は、取得したページ情報が、選択されたページクラスに所属しないと判定する。その後、処理が終了する。
【０１２４】
このようにして、取得したページ情報と過去に取得したページ情報との同一性に基づいて、ページ情報をページクラスに分類することができる。そして、新たなページクラスが生成されると、そのページクラスに格納されたＨＴＴＰデータからのリンク情報で示されるページ情報が収集される。
【０１２５】
次に、ページ取得部１２０の機能を詳細に説明する。
図１６は、ページ取得部の機能を示すブロック図である。ページ取得部１２０は、ページ取得依頼受付部１２１、通信部１２２、再現性検証部１２３、最短リクエストシーケンス検出部１２４、ページクラス間遷移情報１２５、及びページクラス間遷移登録部１２６を有している。
【０１２６】
ページ取得依頼受付部１２１は、ページ取得依頼を受け付ける。ページ取得依頼は、ＨＴＴＰデータから抽出されたリンク情報に従ったページの取得依頼や、過去に取得したページの再取得依頼がある。ページの再取得依頼の場合、ページ取得依頼受付部１２１は、再取得の為のリクエストシーケンスを作成する。リクエストシーケンスは、目的のページを過去に取得した際に、ページのリンク情報を辿ってそのページに至るまでの経路を、ページの取得順として指定したものである。ページ取得依頼受付部１２１は、単一のページのリクエストまたはリクエストシーケンスを、通信部１２２に渡す。
【０１２７】
通信部１２２は、ページ取得依頼受付部１２１から受け取ったリクエストまたはリクエストシーケンスに従って、Ｗｅｂサーバに対してリクエスト４８を送信し、そのリクエスト４８に対するレスポンス４９を受け取る。そして、通信部１２２は、通常の（ページの再取得ではない）ページ取得依頼の場合、取得したリクエスト４８とレスポンス４９との組を、ページ同一性判定部１３０に渡す。また、通信部１２２は、ページの再取得依頼の場合、リクエストシーケンスに沿って取得された最後のページのリクエスト４８とレスポンス４９との組を、再現性検証部１２３に渡す。
【０１２８】
再現性検証部１２３は、ページ同一性判定部１３０に対して、取得したリクエスト４８とレスポンス４９を渡すと共に、分類依頼を出力する。この分類依頼に従ってページ同一性判定部１３０により、過去に取得したＨＴＴＰデータとの同一性判定が行われ、判定結果がページ同一性判定部１３０から返される。判定結果が、ＮＧ（不一致）の場合、再現性検証部１２３は、最短リクエストシーケンス検出部１２４に対して、判定結果を通知する。また、再現性検証部１２３は、判定結果を、モニタに表示する。
【０１２９】
最短リクエストシーケンス検出部１２４は、最短リクエストシーケンス検出依頼に応じて、指定されたページについて、そのページを取得するのに必要な最短のリクエストシーケンスを検出する。具体的には、最短リクエストシーケンス検出部１２４は、ページクラス間遷移情報１２５を参照し、トップページから指定されたページを取得するまでのリンク関係の経路を検出し、検出された各経路に沿ったリクエストシーケンスを作成する。そして、最短リクエストシーケンス検出部１２４は、作成したリクエストシーケンスをページ取得依頼受付部１２１に渡し、ページの再取得を依頼する。
【０１３０】
その後、最短リクエストシーケンス検出部１２４からリクエストシーケンスに基づくページに関し、再現性検証部１２３から再現性の判定結果を受け取る。取得したページが過去に取得したページと同一ページクラスに分類されれば、そのリクエストシーケンスによるページ再取得が成功したこととなる。そこで、最短リクエストシーケンス検出部１２４は、ページ再取得が成功したリクエストシーケンスのうち、最も短い経路（指定されたページに至るまでに取得すべき他のページが最も少ない）を検出する。
【０１３１】
ページクラス間遷移情報１２５は、各ページクラスの所属するページ情報同士のリンク関係を示す情報である。
ページクラス間遷移登録部１２６は、ページ同一性判定部１３０によるページ情報の分類結果に基づいて、ページクラス間遷移情報１２５の内容を更新する。
【０１３２】
図１７は、ページ間遷移情報のデータ構造例を示す図である。ページクラス間遷移情報１２５には、遷移先ページクラスのＩＤと遷移元ページクラスのＩＤとの組に対応付けて、そのページクラス間の遷移を示すリンク情報のＩＤが設定されている。
【０１３３】
最短リクエストシーケンス検出部１２４は、このようなページクラス間遷移情報１２５に基づいて、ページクラス間遷移関係図５０を認識する。ページクラス間遷移関係図５０では、ページクラスがノードで示され、ページクラス間の遷移がエッジ（矢印）で示されている。
【０１３４】
次に、ページクラス間遷移情報１２５の更新処理について説明する。
まず、ページ情報分類部１３４によって、新たなページ情報「ＨＤｘ（ｘは１以上の整数）」が新たなページクラス「ＰＣｙ（ｙは１以上の整数）」に分類される。具体的には、ページ情報分類部１３４は、図８に示すページ情報群１３３に「ＨＤｘ」の行を追加する。
【０１３５】
次に、ページ情報分類部１３４は、図７に示すページクラス保持部１３１に「ＰＣｙ」の行を追加する。このとき、「所属判定優先度」及び「所属判定条件」に、ページクラス作成部１３５によって作成された優先度及び所属判定条件が書き込まれる。ページクラス保持部１３１に新しい行が追加されることにより、新しいページクラスが生成される。なお、「ＰＣｙ」が既成のときは、新しいページクラスを生成する処理は、省略される。
【０１３６】
さらに、ページ情報分類部１３４は、ページクラス保持部１３１の「ＰＣｙ」の「所属ＨＴＴＰデータのＩＤの集合」に「ＨＤｘ」を書き込む。また、ページ情報分類部１３４は、ページクラス保持部１３１の「ＰＣｙ」の「再取得用ＨＴＴＰデータのＩＤ」に「ＨＤｘ」を書き込む。なお、「ＰＣｙ」が既成のときは、「再取得用ＨＴＴＰデータのＩＤ」に対する書き込み処理は省かれる。
【０１３７】
ページクラス間遷移登録部１２６は、ページクラス保持部１３１の内容の更新状況を確認し、ページクラス間遷移情報１２５の「ＰＣｙ」の列及び行を追加する。なお、「ＰＣｙ」が既成のときは、列及び行の追加処理は省かれる。
【０１３８】
さらに、ページクラス間遷移登録部１２６は、ページクラス間遷移情報１２５に対し、情報を登録する。具体的には、ページクラス間遷移登録部１２６は、ページクラス保持部１３１の追加したページ情報のリクエストの元のページクラスのＩＤである「ＰＣｓ（ｓは０以上の整数）」を「遷移元ページクラスのＩＤ」とし、「ＰＣｙ」を「遷移先ページクラス」とする部分に、「ＨＤｘ」を付け加える。
【０１３９】
なお、そのＨＴＴＰデータのリクエストの元であるページクラスのＩＤが不明な場合は、例えば、最初に取得したページ情報を示す「ＰＣ０」を「ＰＣｓ」とする。また、ＨＴＴＰデータのリクエストのRefererヘッダフィールドからリクエスト元の「ＰＣｓ」を推測することもできる。
【０１４０】
最短リクエストシーケンス検出部１２４は、ページクラス間遷移情報１２５に基づいて、ページクラス間遷移関係図５０を生成する。具体的には、次のような手順で生成する。
最短リクエストシーケンス検出部１２４は、ページ情報再取得の際の基点「ＰＣ０」として黒いノードを用意する。次に、最短リクエストシーケンス検出部１２４は、図７に示すページクラス保持部１３１の各ページクラスのＩＤ「ＰＣｉ（ｉは１以上の整数）」毎に四角いノードを用意する。さらに、最短リクエストシーケンス検出部１２４は、ページクラス間遷移情報１２５で、遷移情報があるノード間について、有向のエッジ（矢印）を用意する。
【０１４１】
あるノード「ＰＣｙ」の経路情報を出力する際は、最短リクエストシーケンス検出部１２４は、さらに、ページクラス保持部１３１から「ＰＣｙ」の再取得用ページ情報のＩＤ「ＨＤｘ」を取得する。次に、最短リクエストシーケンス検出部１２４は、ページクラス間遷移情報１２５の「ＰＣｙ」の列を走査し、「ＨＤｘ」がある行の「ＰＣｓ」を得る。そして、最短リクエストシーケンス検出部１２４は、ＰＣｓ→ＰＣｙのエッジを経路情報として出力する。
【０１４２】
最短リクエストシーケンス検出部１２４は、「ＰＣｓ」が「ＰＣ０（基点となるページのページクラス）」でない場合は、その「ＰＣｓ」を新たな「ＰＣｙ」と考え、ページクラス保持部１３１から再取得用ページ情報のＩＤを取得するところから繰り返す。このように、順次、再取得用ページ情報を基点となるページに向かって辿っていくことで、再取得時の経路情報を得ることができる。
【０１４３】
図１８は、ページクラス間遷移関係図の例を示す図である。ページクラス間遷移関係図５０ａは、複数のノード５１〜５５と、複数のエッジ６１〜７２で構成されている。ノード５１〜５５それぞれが、ページクラスに相当する。エッジ６１〜７２は、ページクラス間の遷移関係に相当する。遷移関係は、原則として、ページクラスのリンク情報を辿ることで遷移可能な関係を表している。
【０１４４】
図１８の例では、ノード５１がページ情報再取得の基点となるページクラスを示している。なお、ノード５１から出ているエッジ６１，６４，６５，６６については、例えばＷｅｂブラウザのブックマーク機能（予め設定されたＵＲＬを指定してページを遷移させる機能）などで、ダイレクトにページ情報を取得できたときの遷移関係に相当する。
【０１４５】
そして、再取得用ページ情報に基づいて生成された経路情報を構成するエッジ、及びノードが強調表示されている（図１８では、太線で示されている）。即ち、ノード５４に相当するページを再取得する際には、ノード５１、ノード５２、ノード５３、ノード５４の順で各ノードに相当するページを取得することが示されている。この各ページの取得順が、リクエストシーケンスである。
【０１４６】
ここで、最短リクエストシーケンス検出部１２４に対して、最短リクエストシーケンス検出要求があると、最短のリクエストシーケンスが検出される。
図１９は、最短リクエストシーケンス検出処理の手順を示すフローチャートである。以下、図１９に示す処理をステップ番号に沿って説明する。
【０１４７】
［ステップＳ３１］最短リクエストシーケンス検出部１２４は、最短リクエストシーケンスの発見対象であるページクラスの指定する入力を受け付ける。
［ステップＳ３２］最短リクエストシーケンス検出部１２４は、基点となるページクラスから指定されたページクラスまでの経路のうち、まだ再現性を確認していない経路があるか否かを判断する。再現性未確認の経路があれば、処理がステップＳ３４に進められる。未確認の経路が無ければ処理がステップＳ３３に進められる。
【０１４８】
［ステップＳ３３］最短リクエストシーケンス検出部１２４は、現在のＷｅｂサイトの状態では、指定されたページクラスの再取得が不可能であることを示すエラーメッセージを出力する。エラーメッセージでは、例えば、発行したリクエストの内容（リクエストシーケンス）、取得したレスポンスの内容、ページ情報がどのページクラスに所属するものと判定されたかなどが示される。その後、処理が終了する。
【０１４９】
［ステップＳ３４］最短リクエストシーケンス検出部１２４は、未検証の経路のうち、次に最短な経路を再現性確認対象として選択する。なお、最短の経路とは、リンク情報に基づくページの遷移回数が最も少ない経路である。
【０１５０】
［ステップＳ３５］最短リクエストシーケンス検出部１２４は、選択した経路に沿ってページ再取得を試みる。具体的には、最短リクエストシーケンス検出部１２４は、選択した経路に基づくリクエストシーケンスを生成し、そのリクエストシーケンスに従ったページ情報の再取得要求をページ取得依頼受付部１２１に対して出力する。すると、ページ取得依頼受付部１２１によって、経路上の各ページ情報のリクエストが生成される。そのリクエストに応じて、通信部１２２によってリクエストに応じたレスポンスが取得される。
【０１５１】
リクエストシーケンスにおいて最後に取得されたページ情報（リクエスト、レスポンス等を含む）は、再現性検証部１２３に渡され、再現性が判定される。そして、再現性の判定結果が、最短リクエストシーケンス検出部１２４に渡される。
【０１５２】
［ステップＳ３６］最短リクエストシーケンス検出部１２４は、ページ再取得による再現性の判定結果に基づき、再取得が成功したか否かを判断する。具体的には、再取得したページ情報が、ページ同一性判定部１３０によってステップＳ３１で指定されたページクラスに所属すると判定された場合、再取得成功と判定される。再取得に成功した場合、処理がステップＳ３７に進められる。再取得に失敗した場合、処理がステップＳ３２に進められる。
【０１５３】
［ステップＳ３７］最短リクエストシーケンス検出部１２４は、ステップＳ３４で選択した経路を再取得経路として強調表示したページクラス間遷移関係図を表示する。
また、最短リクエストシーケンス検出部１２４は、再取得経路に従って、ページクラス保持部１３１の再取得用ページ情報のＩＤの値を更新する。具体的には、最短リクエストシーケンス検出部１２４は、ページクラス間遷移情報１２５を参照し、再取得経路において直接のリンク関係を有するページクラス対の間で、遷移元ページクラスから遷移先ページクラスへのリンク情報を有するページ情報のＩＤを取得する。そして、最短リクエストシーケンス検出部１２４は、取得したページ情報のＩＤを、遷移元ページクラスの再取得用ページ情報のＩＤとして、ページクラス保持部１３１に登録する。
【０１５４】
このようにして、指定されたページクラスに所属するページ情報を再取得可能な最短の経路が検出される。最短リクエストシーケンス検出部１２４は、探索結果に基づいて、ページクラス間遷移関係図を更新する。
【０１５５】
図２０は、更新されたページクラス間遷移関係図を示す図である。これは、図１９に示したページクラス間遷移関係図５０ａのノード５４に対応するページクラスを指定して、最短リクエストシーケンス検出処理を行った結果を示すページクラス間遷移関係図５０ｂである。
【０１５６】
この例では、ページクラス間遷移関係図５０ａにおいてノード５１からノード５２を経由してノード５３に至っていた経路が、ページクラス間遷移関係図５０ｂではノード５１からノード５３に直接遷移する経路に変更されている。即ち、ページクラス間遷移関係図５０ａでは、３つのリクエストからなるリクエストシーケンスによりノード５４に対応するページクラスのページ情報を取得できたのに対し、ページクラス間遷移関係図５０ｂでは、２つのリクエストで同様のページ情報を取得できる。すなわち、遷移回数が１回減少している。
【０１５７】
ここで、ページの再現性が得られない場合について説明する。ページの再現性が得られない場合で多いのが、Ｗｅｂサーバ側で、登録及び削除可能なデータの存在の有無に応じて、リクエストに対するレスポンスの内容を変更する制御を行っている場合である。例えば、最初にページ情報を取得した際には、判断要素となるデータが存在しており、その後、そのデータが削除されてしまうと、データの再登録の処理を経由したリクエストシーケンスでなければページを再現することができない。このような処理を行うＷｅｂアプリケーションの例を以下に示す。
【０１５８】
図２１は、データの登録と削除が可能なＷｅｂアプリケーションの例を示す図である。図２１には、ユーザがメールで情報を受け取れる様に、ユーザのメールアドレスが登録可能なＷｅｂアプリケーションのメニュー画面６０が示されている。この画面には、複数のリンク先表示部６１〜６３が表示されている。リンク先表示部６１〜６３は、それぞれリンク情報に対応付けられており、リンク先表示部６１〜６３が選択されることで、対応するリンク情報に基づくリクエストが送信される。
【０１５９】
「登録情報確認・変更」のリンク先表示部６１、「注文」のリンク先表示部６２、及び「お問い合わせ」のリンク先表示部６３が設けられている。ここで、「登録情報確認・変更」のリンク先表示部６１でリンク先のＨＴＴＰデータを取得すれば、メールアドレスの登録や削除が可能である。
【０１６０】
また、「お問い合わせ」のリンク先表示部６３でリンク先のＨＴＴＰデータを取得すれば、Ｗｅｂアプリケーション上で質問を送信することができる。但し、回答は電子メールで行われるため、先にメールアドレスが登録されている必要がある。
【０１６１】
図２２は、問い合わせ入力画面を示す図である。問い合わせ入力画面７０は、「お問い合わせ」のリンク先表示部６３が選択された際に表示される。このときのリクエスト３０１に含まれるパラメタは、例えば「question.jsp?user=test」である。
【０１６２】
問い合わせ入力画面７０には、登録済メールアドレス表示部７１、質問入力部７２、送信ボタン７３等が設けられている。登録済メールアドレス表示部７１には、既に登録されているユーザの電子メールアドレスが表示される。質問入力部７２は、Ｗｅｂサイト管理者への質問内容を入力するテキストボックスである。送信ボタン７３は、問い合わせをＷｅｂサーバへ送信するためのボタンである。送信ボタン７３が選択されると、問い合わせ受け付け通知画面８０に遷移する。
【０１６３】
ここで、電子メールアドレスを未登録の状態で「お問い合わせ」のリンク先表示部６３が選択されると、メールアドレス登録画面に遷移する。
図２３は、メールアドレス登録画面を示す図である。メールアドレス登録画面９０は、電子メールアドレスが未登録の状態で、「お問い合わせ」のリンク先表示部６３が選択された際に表示される。すなわち、問い合わせ入力画面７０と同じリクエスト３０１が出力されたにもかかわらず、異なるＨＴＴＰデータがレスポンスとして返されている。これは、再現性が無いことを意味する。
【０１６４】
メールアドレス登録画面９０には、電子メールアドレス入力部９１と登録ボタン９２とが設けられている。電子メールアドレス入力部９１は、ユーザの電子メールアドレスを入力するためのテキストボックスである。登録ボタン９２は、入力した電子メールアドレスをＷｅｂサーバに送信し、登録を依頼するためのボタンである。登録ボタン９２が選択されると、問い合わせ入力画面７０に遷移する。
【０１６５】
このように電子メールアドレスを登録することで、問い合わせ入力画面７０のページ情報を取得することができる。
このようなページ構造のＷｅｂアプリケーションからページ情報を収集するとき、既に電子メールが登録済であれば、次のような手順でページ情報が収集される。
【０１６６】
図２４は、ページ情報収集手順を示す図である。図２４に示すようにメニュー画面６０からリクエスト３０１がＷｅｂサーバに送信されると、問い合わせ入力画面７０のページ情報が取得できる。そこで、質問内容の送信ボタン７３が選択されると、送信ボタン７３に対応するリクエスト３０２がＷｅｂサーバに送信され、問い合わせ受け付け通知画面８０のページ情報が取得できる。
【０１６７】
これにより、リクエスト３０１の次にリクエスト３０２を送信するリクエストシーケンスが得られる。このリクエストシーケンスは、ページクラス間遷移情報１２５に記憶される。
【０１６８】
その後、他のページのテスト入力等の結果として、登録されていた電子メールアドレスが削除された場合を想定する。その場合、図２４と同じリクエストシーケンスでページ情報の取得を行うと、想定外のページ情報が返されることとなる。
【０１６９】
図２５は、電子メールアドレスが削除後のページ再取得状況を示す図である。図２５に示すようにメニュー画面６０からリクエスト３０１を送信すると、メールアドレス登録画面９０のページ情報が取得される。このメールアドレス登録画面９０には、問い合わせ入力画面７０に存在するリンク情報が設けられていない。従って、問い合わせ入力画面７０からの遷移に使用されたリクエスト３０２は、Ｗｅｂアプリケーションが想定している遷移を無視していることとなり、Ｗｅｂアプリケーションにおいて不正なリクエストと解釈されてしまう。
【０１７０】
その結果、リクエスト３０２の応答として問い合わせ入力画面７０のページ情報が取得できることを想定していたにもかかわらず、他のページ情報（例えば、エラーページ）がＷｅｂサーバから送られてくる。
【０１７１】
本実施の形態のような再現性判定処理が行われないと、ユーザは、誤ったページ情報（例えば、エラーページ）に基づいてＷｅｂサイトの検証作業を続行してしまう可能性がある。誤ったページ情報で検証作業を行っても、正しい検証結果は得られず、検証結果の信頼性の低下を招いてしまう。
【０１７２】
一方、本実施の形態では、他のページが送られてくると、再現性の判定において、再現性無しと判定される。その結果、ユーザは、同じリクエストシーケンスを用いたのでは、目的のページ情報を得られないことが分かる。そこで、ユーザは、ページの再現性が無い原因の調査をして、電子メールアドレスの再登録を行うことができる。
【０１７３】
また、ユーザは、最短リクエストシーケンス検出部１２４に対して、問い合わせ入力画面７０のページ情報が所属するページクラスへの最短リクエストシーケンス検出要求を入力すれば、問い合わせ入力画面７０に至るまでの最短のリクエストシーケンスを自動取得させることができる。この例では、メールアドレス登録画面９０を経由したリクエストシーケンスが取得できる。
【０１７４】
ところで、ページ再取得の際の経路（リクエストシーケンス）を、ユーザからの操作入力によって変更することもできる。その場合、最短リクエストシーケンス検出部１２４は、ユーザからの操作入力に応じて、図１８に示すページクラス間遷移関係図５０ａを画面に表示する。そして、ユーザが新たな経路を指定すると、最短リクエストシーケンス検出部１２４は、指定された経路を、ページ再取得の際の経路として記憶する。
【０１７５】
以上のように本実施の形態によれば、所属判定条件によってページ情報の同一性が判定される。そして、既に取得したページ情報と同一性の高いページ情報を重複して取得した場合、その先のリンクを辿るのを取りやめる。これにより、不要なＨＴＴＰデータの収集を防止できる。
【０１７６】
しかも、所属判定条件はグループ毎に設けられており、個別に内容を変更することができる。従って、各グループ毎に同一性の認定範囲を設定でき、ユーザの意図に沿ったグループ分けを行うことができる。すなわち、Ｗｅｂアプリケーションの入出力は、ＨＴＴＰを使用するということ以外は、自由度が高い。そのため、ＵＲＬの比較など、固定的な所属判定条件だけでは、適当なＨＴＴＰデータの分類とならない場合がある。本実施の形態のように、グループ毎に所属判定条件を変更可能であれば、柔軟性の高いＨＴＴＰデータの分類が可能となる。
【０１７７】
また、新たなグループを作成する場合に生成する所属判定条件の生成規則を、ユーザが任意に変更することもできる。これにより、検証対象のＷｅｂサイトのデータ構造に応じて、適当な所属判定条件を自動生成することが可能となる。すなわち、同一ＷｅｂサイトにあるＷｅｂアプリケーションは、同一のワークフレームで作成されることが多い。その場合、使用の大枠は同じである。そこで、あるＷｅｂサイトのＨＴＴＰデータを収集する際には、新たなページクラスの追加に伴う所属判定条件の追加・更新方法を、フレームワークに適したように規定しておくことで、その後の作業（所属判定条件の変更等）を効率的に行うことができる。
【０１７８】
また、所属判定条件として、レスポンスステータスコードを利用したことにより、ページの違いを的確に判断できる。すなわち、レスポンスステータスコードが異なれば、そのページの内容も異なる事が多い。そのため、レスポンスステータスコードに基づいて分類すれば、的確な分類が可能となる。
【０１７９】
また、所属判定条件として、取得したＨＴＴＰページに含まれるリンク情報の同一性を利用したことにより、ページ収集の効率性を向上させることができる。すなわち、ページ収集は、リンク情報によるリンク先のページの検出を目的の１つとしているため、リンク情報が共通であれば、重複してリンク先のページを取得する必要はない。従って、このような重複したリンク先のページの取得が排除されることで、ページの収集効率が向上する。
【０１８０】
また、任意に指定したクエリパラメタと、それ以外のクエリパラメタとで、同一性の判断基準（名前が同一であればよいか、名前と値とが同一である必要があるか）を変えた事により、ページ収集を効率的に行うことができる。すなわち、クエリパラメタについては、純粋にデータ値としての役割が大きいもの（例えば、カレンダーの日付（/foo.cgi?date=値）など）と、処理の条件分岐値としての役割が大きいもの（例えば、参照と編集との分岐（/bar.cgi?action=値）など）がある。
【０１８１】
条件分岐値としての役割が大きいクエリパラメタについては、値に応じて取得されるページの内容も異なることが多い。そこで、クエリパラメタ毎に値を参照するか否かを設定できることで、カレンダーの日付のように、値が異なっても同一性の高いページが収集されることが既知の場合、クエリパラメタの値を参照しないように設定できる。これにより、効率的なページ収集が可能となる。
【０１８２】
また、ページの再取得において、過去に取得したページとの同一性（再現性）を判定することにより、誤ったページに基づいてＷｅｂサイトの検証が行われるのを防止できる。すなわち、ページを再取得するためのＨＴＴＰリクエストシーケンスは、ログイン作業など複数のリクエストを必要とする場合もあれば、目的のページに対する１つのリクエストで取得できるものもある。従って、再取得したページの再現性を判定すれば、正しいリクエストシーケンスで取得されたことを確認できる。これにより、Ｗｅｂサイトの検証処理の信頼性を向上させることができる。
【０１８３】
また、ページ再取得のための最短のリクエストシーケンスを検出できるようにしたため、ページ再取得の際の処理効率が向上する。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、Ｗｅｂサイト検証装置１００が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１８４】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１８５】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１８６】
（付記１）  ネットワーク上のサーバから、リンク情報によって関連付けられたページの集合を収集するためのページ情報収集プログラムにおいて、
コンピュータに、
ページ取得手段が、ページ取得要求に応じて、前記ネットワークを介してページの内容を取得し、前記ページの内容及びページ取得に利用された通信情報を含むページ情報を生成し、
分類手段が、前記ページ取得手段で生成された前記ページ情報を分類対象ページ情報とし、グループ分けを行う際の各グループに所属するページ情報の条件を定義した所属判定条件と、前記分類対象ページ情報とを比較し、前記分類対象ページ情報が前記所属判定条件を満たす前記グループを特定し、特定した前記グループに前記分類対象ページ情報を分類して記憶手段に格納し、
グループ作成手段が、前記分類対象ページ情報が前記所属判定条件を満たす前記グループが存在しない場合、前記分類対象ページ情報が条件を満たす前記所属判定条件を生成し、生成した前記所属判定条件に対応する前記グループを作成し、作成した前記グループに前記分類対象ページ情報を分類して前記記憶手段に格納し、
ページ取得依頼手段が、前記グループ作成手段で新たに作成された前記グループに分類された前記分類対象ページ情報から前記リンク情報を抽出し、抽出した前記リンク情報に基づく前記ページ取得要求を、前記ページ取得手段に対して出力する、
処理を実行させることを特徴とするページ情報収集プログラム。
【０１８７】
（付記２）  前記コンピュータに、
前記グループ作成手段が、予め定義された所属判定条件生成規則に従って、新たな前記所属判定条件を生成する、
処理を実行させることを特徴とする付記１記載のページ情報収集プログラム。
【０１８８】
（付記３）  前記コンピュータに、
所属判定条件生成規則定義部が、操作入力に応じて、前記所属判定条件生成規則の内容を変更する、
処理を実行させることを特徴とする付記２記載のページ情報収集プログラム。
【０１８９】
（付記４）  前記コンピュータに、
所属判定条件変更手段が、操作入力に応答して、前記所属判定条件の内容を変更する、
処理を実行させることを特徴とする付記１記載のページ情報収集プログラム。
【０１９０】
（付記５）  前記所属判定条件には、前記ページの内容を取得したときのレスポンスステータスコードの同一性に関する条件が定義されていることを特徴とする付記１記載のページ情報収集プログラム。
【０１９１】
（付記６）  前記所属判定条件には、前記ページの内容に含まれるリンク情報の同一性に関する条件が定義されていることを特徴とする付記１記載のページ情報収集プログラム。
【０１９２】
（付記７）  前記リンク情報の同一性に関する条件では、予め指定された名前のクエリパラメタに関しては、クエリパラメタ名と値とが同一であることを前記グループに所属するための条件とし、その他のクエリパラメタに関しては、クエリパラメタ名が同一であることを前記グループに所属するための条件とすることを特徴とする付記６記載のページ情報収集プログラム。
【０１９３】
（付記８）  コンピュータに、
前記ページ取得手段が、既に取得したことのある前記ページ情報を取得する際には、再取得する際に辿るべきリンク情報の順番を示す再取得経路情報を参照し、前記再取得経路情報に沿った経路でリンク情報を順番に辿り、前記ページ情報を再取得する、
処理を実行させることを特徴とする付記１記載のページ情報収集プログラム。
【０１９４】
（付記９）  コンピュータに、
前記分類手段が、前記ページ取得手段で再取得された前記ページ情報を分類し、同一のリクエストで過去に取得した前記ページ情報と同じ前記グループに分類されたか否かを判定し、判定結果を出力する、
処理を実行させることを特徴とする付記８記載のページ情報収集プログラム。
【０１９５】
（付記１０）  コンピュータに、
前記ページ取得手段が、最短経路検出要求に応答して、基点となるページから既に取得したことのある前記ページに至るまでの１以上の経路を辿って前記ページ情報の再取得を行い、同一のリクエストで過去に取得した前記ページ情報と同じ前記グループに分類された経路のうち最もページ取得回数の少ない経路を、前記再取得経路と定める、
処理を実行させることを特徴とする付記９記載のページ情報収集プログラム。
【０１９６】
（付記１１）  コンピュータにより、ネットワーク上のサーバから、リンク情報によって関連付けられたページの集合を収集するためのページ情報収集方法において、
ページ取得手段が、ページ取得要求に応じて、前記ネットワークを介してページの内容を取得し、前記ページの内容及びページ取得に利用された通信情報を含むページ情報を生成し、
分類手段が、前記ページ取得手段で生成された前記ページ情報を分類対象ページ情報とし、グループ分けを行う際の各グループに所属するページ情報の条件を定義した所属判定条件と、前記分類対象ページ情報とを比較し、前記分類対象ページ情報が前記所属判定条件を満たす前記グループを特定し、特定した前記グループに前記分類対象ページ情報を分類して記憶手段に格納し、
グループ作成手段が、前記分類対象ページ情報が前記所属判定条件を満たす前記グループが存在しない場合、前記分類対象ページ情報が条件を満たす前記所属判定条件を生成し、生成した前記所属判定条件に対応する前記グループを作成し、作成した前記グループに前記分類対象ページ情報を分類して前記記憶手段に格納し、
ページ取得依頼手段が、前記グループ作成手段で新たに作成された前記グループに分類された前記分類対象ページ情報から前記リンク情報を抽出し、抽出した前記リンク情報に基づく前記ページ取得要求を、前記ページ取得手段に対して出力する、
ことを特徴とするページ情報収集方法。
【０１９７】
（付記１２）  ネットワーク上のサーバから、リンク情報によって関連付けられたページの集合を収集するページ情報収集装置において、
ページ取得要求に応じて、前記ネットワークを介してページの内容を取得し、前記ページの内容及びページ取得に利用された通信情報を含むページ情報を生成するページ取得手段と、
前記ページ取得手段で生成された前記ページ情報を分類対象ページ情報とし、グループ分けを行う際の各グループに所属するページ情報の条件を定義した所属判定条件と、前記分類対象ページ情報とを比較し、前記分類対象ページ情報が前記所属判定条件を満たす前記グループを特定し、特定した前記グループに前記分類対象ページ情報を分類して記憶手段に格納する分類手段と、
前記分類対象ページ情報が前記所属判定条件を満たす前記グループが存在しない場合、前記分類対象ページ情報が条件を満たす前記所属判定条件を生成し、生成した前記所属判定条件に対応する前記グループを作成し、作成した前記グループに前記分類対象ページ情報を分類して前記記憶手段に格納するグループ作成手段と、
前記グループ作成手段で新たに作成された前記グループに分類された前記分類対象ページ情報から前記リンク情報を抽出し、抽出した前記リンク情報に基づく前記ページ取得要求を、前記ページ取得手段に対して出力するページ取得依頼手段と、
を有することを特徴とするページ情報収集装置。
【０１９８】
（付記１３）  ネットワーク上のサーバから、リンク情報によって関連付けられたページの集合を収集するためのページ情報収集プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータに、
ページ取得手段が、ページ取得要求に応じて、前記ネットワークを介してページの内容を取得し、前記ページの内容及びページ取得に利用された通信情報を含むページ情報を生成し、
分類手段が、前記ページ取得手段で生成された前記ページ情報を分類対象ページ情報とし、グループ分けを行う際の各グループに所属するページ情報の条件を定義した所属判定条件と、前記分類対象ページ情報とを比較し、前記分類対象ページ情報が前記所属判定条件を満たす前記グループを特定し、特定した前記グループに前記分類対象ページ情報を分類して記憶手段に格納し、
グループ作成手段が、前記分類対象ページ情報が前記所属判定条件を満たす前記グループが存在しない場合、前記分類対象ページ情報が条件を満たす前記所属判定条件を生成し、生成した前記所属判定条件に対応する前記グループを作成し、作成した前記グループに前記分類対象ページ情報を分類して前記記憶手段に格納し、
ページ取得依頼手段が、前記グループ作成手段で新たに作成された前記グループに分類された前記分類対象ページ情報から前記リンク情報を抽出し、抽出した前記リンク情報に基づく前記ページ取得要求を、前記ページ取得手段に対して出力する、
処理を実行させることを特徴とするページ情報収集プログラムを記録したコンピュータ読み取り可能な記録媒体。
【図面の簡単な説明】
【０１９９】
【図１】実施の形態に適用される発明の概念図である。
【図２】本実施の形態のシステム構成を示す図である。
【図３】Ｗｅｂサイト検証装置のハードウェア構成例を示す図である。
【図４】Ｗｅｂサイト検証装置の機能を示すブロック図である。
【図５】ページ取得依頼部の処理手順を示すフローチャートである。
【図６】ページ情報分類部の機能を示すブロック図である。
【図７】ページクラス保持部のデータ構造例を示す図である。
【図８】ページ情報群のデータ構造例を示す図である。
【図９】ページ情報分類処理の手順を示すフローチャートである。
【図１０】ＵＲＬとパラメタのデータ構造を示す図である。
【図１１】所属判定条件生成規則の表示例を示す図である。
【図１２】リクエストの例を示す図である。
【図１３】レスポンスの例を示す図である。
【図１４】所属判定条件の例を示す図である。
【図１５】所属判定処理の手順を示すフローチャートである。
【図１６】ページ取得部の機能を示すブロック図である。
【図１７】ページ間遷移情報のデータ構造例を示す図である。
【図１８】ページクラス間遷移関係図の例を示す図である。
【図１９】最短リクエストシーケンス検出処理の手順を示すフローチャートである。
【図２０】更新されたページクラス間遷移関係図を示す図である。
【図２１】データの登録と削除が可能なＷｅｂアプリケーションの例を示す図である。
【図２２】問い合わせ入力画面を示す図である。
【図２３】メールアドレス登録画面を示す図である。
【図２４】ページ情報収集手順を示す図である。
【図２５】電子メールアドレスが削除後のページ再取得状況を示す図である。
【符号の説明】
【０２００】
１  ネットワーク
２  サーバ
３  ページ
４  ページ取得手段
５  分類手段
６  記憶手段
７  グループ作成手段
８  ページ取得依頼手段
【図１】
2006058966.tif 000003
【図２】
2006058966.tif 000004
【図３】
2006058966.tif 000005
【図４】
2006058966.tif 000006
【図５】
2006058966.tif 000007
【図６】
2006058966.tif 000008
【図７】
2006058966.tif 000009
【図８】
2006058966.tif 000010
【図９】
2006058966.tif 000011
【図１０】
2006058966.tif 000012
【図１１】
2006058966.tif 000013
【図１２】
2006058966.tif 000014
【図１３】
2006058966.tif 000015
【図１４】
2006058966.tif 000016
【図１５】
2006058966.tif 000017
【図１６】
2006058966.tif 000018
【図１７】
2006058966.tif 000019
【図１８】
2006058966.tif 000020
【図１９】
2006058966.tif 000021
【図２０】
2006058966.tif 000022
【図２１】
2006058966.tif 000023
【図２２】
2006058966.tif 000024
【図２３】
2006058966.tif 000025
【図２４】
2006058966.tif 000026
【図２５】
2006058966.tif 000027