情報再取得手順生成プログラム及び情報再取得手順生成装置
【課題】情報を再取得するユーザの操作を簡略化する。
【解決手段】関係解析手段12は、所定の情報を取得するために情報提供元の装置との間で交換されたメッセージを記録したメッセージ履歴11aに基づき、所定の情報を取得するためのメッセージの遷移関係を解析する。解析結果は、必要に応じて関係提示・修正手段で修正が施される。再取得手順定義手段14は、得られたメッセージの遷移関係に基づいて、所定の情報が再取得されるまでに必要なメッセージを生成し、順次送付して目的の情報を取得するための再取得手順を定義する。
【解決手段】関係解析手段12は、所定の情報を取得するために情報提供元の装置との間で交換されたメッセージを記録したメッセージ履歴11aに基づき、所定の情報を取得するためのメッセージの遷移関係を解析する。解析結果は、必要に応じて関係提示・修正手段で修正が施される。再取得手順定義手段14は、得られたメッセージの遷移関係に基づいて、所定の情報が再取得されるまでに必要なメッセージを生成し、順次送付して目的の情報を取得するための再取得手順を定義する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は情報再取得手順生成プログラム及び情報再取得手順生成装置に関し、特に所望の情報を再取得する手順の生成処理のための情報再取得手順生成プログラム及びその情報再取得手順生成装置に関する。
【背景技術】
【0002】
ワールドワイドウェブ(World Wide Web;以下、WWWとする)上には、さまざまな情報を提供する膨大な数のWebページが公開されている。この中から所望の情報を提供するWebページを検出するための手法として、一般的には検索エンジンが用いられる。また、Webページはリンクによって関連付けられており、リンクを辿って所望のWebページを見つけることもできる。こうして検出されたWebページには、後で再取得したい情報もある。その要求を満たす最も単純な方法の一例として、Webブラウザのブックマーク機能がある。ブックマーク機能とは、何度も訪れるWebサイトのURL(Uniform Resource Locator)を指定により予め記憶しておく機能である。そして、ある操作を行うと記憶されたURLを読み出し、そのURLのWebサイトから、Webページを再取得するという方法である。
【0003】
しかし、Webページの中には、ブックマーク機能のように単純な情報再取得手順では再取得できないものも多くある。例えば、フォーム認識により認証を受けた後でないと取得できないようにアクセス制限がかけられているWebページがある。このようなWebページでは、取得するためには複数のリクエストが必要となるが、ブックマーク機能では特定のURLを1回だけリクエストすることしかできないため、再取得できない。
【0004】
そこで、操作履歴に基づいて、ユーザが行ったリクエストを順次再現するための通信定義情報を生成しておき、この通信定義情報に基づいてリクエストを順次送ることによって、ユーザが再取得を望むWebページを提供する情報の再生処理方法がある(例えば、特許文献1参照)。
【特許文献1】特開2006−190033号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかし、従来の操作履歴に基づいて情報再取得手順を生成する情報再取得手順生成方法では、定義される情報の再取得手順にはユーザが実際に行った手順がそのまま反映されるため、最適化されていないという問題点があった。
【0006】
例えば、「A」「B」「C」「D」という4つのWebページがあり、「A」と「B」、「B」と「C」、「B」と「D」はリンクでつながっている場合について考える。「C」を開くためには、「A」、「B」、「C」の順にリクエストする必要がある。同様に、「D」を開くためには、「A」、「B」、「D」の順にリクエストする必要がある。この場合、「D」を開くための最短の操作手順は、リクエストを矢印で表し、「→A→B→D」となる。しかし、ユーザは常に最短の操作手順で呼び出しを行うとは限らない。例えば、ユーザが途中で「C」を参照し、続いて「D」を参照し、操作履歴に「→A→B→C→B→D」と残っていたとする。この場合、「D」を再取得ための操作手順は、操作履歴に基づいて、「→A→B→C→B→D」という手順が登録されてしまう。
【0007】
このように従来の方法では、よりリクエスト回数の少ない手順での操作が定義される最適化がなされていなかった。
本発明はこのような点に鑑みてなされたものであり、情報を再取得するユーザの操作を簡略化するとともに、最適化された情報再取得手順を生成することが可能な情報再取得手順生成プログラム及び情報再取得手順生成装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、コンピュータを、関係解析手段及び再取得手順定義手段として機能させ、所望の情報を再取得する手順の生成処理のための情報再取得手順生成プログラムが提供される。関係解析手段は、所定の情報が提供されるまでに前記所定の情報の提供元装置との間で交換された一連のメッセージを記録したメッセージ履歴が格納される記憶手段から、メッセージ履歴を読み出し、メッセージ履歴に基づいてメッセージによって取得される情報の遷移関係を解析する。再取得手順定義手段は、関係解析手段によって解析された情報の遷移関係に基づいて、所定の情報が再取得されるまでに必要なメッセージを生成して送付する再取得手順を定義する。
【0009】
このような情報再取得手順生成プログラムをコンピュータが実行すると、所定の情報を取得するために情報提供元の装置との間で交換されたメッセージを記録したメッセージ履歴に基づき、メッセージによって取得された情報の遷移関係が解析される。そして、解析によって得られた情報の遷移関係に基づいて、所定の情報が再取得されるまでに必要なメッセージを生成して送付する再取得手順が定義される。
【0010】
また、上記課題を解決するために、上記処理手段と同様に機能する処理手段を有する情報再取得手順生成装置が提供される。
【発明の効果】
【0011】
開示の情報再取得手順生成プログラム及び情報再取得手順生成装置によれば、所望の情報を取得するために交換されたメッセージ履歴が解析され、その情報を取得するために必要なメッセージを生成し、順に送付する再取得手順が定義される。定義される手順は、解析に基づいて、必要なメッセージのみを送付する手順に最適化されている。定義された再取得手順を実行させれば、所望の情報を自動的に再取得することが可能となり、情報を再取得するユーザの操作を簡略化することができる。
【発明を実施するための最良の形態】
【0012】
以下、本発明の実施の形態を図面を参照して説明する。まず、実施の形態に適用される発明の概念について説明し、その後、実施の形態の具体的な内容を説明する。
図1は、実施の形態に適用される発明の概念図である。
【0013】
情報再取得手順生成装置10は、記憶手段11、関係解析手段12、関係提示・修正手段13及び再取得手順定義手段14を有する。各処理手段は、コンピュータが、情報再取得手順生成プログラムを実行することにより、その処理機能を実現する。
【0014】
記憶手段11には、メッセージ履歴11aと、再取得手順定義情報11bとが格納されている。メッセージ履歴11aには、所定の情報が提供されるまでに、この所定の情報の情報提供元装置と、情報の提供を受けるクライアントとの間で交換された一連のメッセージが時系列に記録されている。メッセージには、クライアント側が情報を要求するリクエストと、これに対する情報提供元装置のレスポンスとが含まれる。再取得手順定義情報11bには、再取得手順定義手段14が生成した所定の情報を再取得するために必要な最小限のメッセージが、送付順とともに定義されている。
【0015】
関係解析手段12は、記憶手段11に格納されるメッセージ履歴11aを読み出し、メッセージに基づいて、情報の遷移関係を解析する。例えば、所定の情報を呼び出すメッセージをノード、そのノード間の遷移関係をエッジとする木構造によって、情報の遷移関係を表す。ノードは、そこに分類されたメッセージを情報の提供元装置との間で交換することによって得られる情報と対応付けることができ、情報の遷移関係は、ノード(またはメッセージ)の遷移関係と言い換えることができる。
【0016】
メッセージ履歴11aには、ユーザの行った操作がそのまま記録されており、必ずしも最適な手順で情報の取得がなされているわけではない。しかし、同一もしくは同様の情報を取得する場合には、メッセージ履歴11aには同一または類似するメッセージが記録される。そこで、メッセージ履歴11aに記録される個々のメッセージを構文解析し、メッセージに共通的に出現する特定データを抽出する。そして抽出された特定データに基づいて、類似または同一のメッセージをまとめ、1つのノードを生成する。具体的には、構文解析によって、メッセージのURLや、リクエストメソッド、レスポンスステータスコードなどを特定データとして抽出する。そして、抽出された特定データによってメッセージを分類し、分類ごとにノードを付与する。そして、同じノードに分類されたうちの1つを代表メッセージに設定し、ノード情報を生成する。次に、得られたノード情報に基づいて、代表メッセージを呼び出したメッセージの属するノードを特定し、親ノードとする。こうして特定された親ノードと子ノードの親子関係をエッジ情報にまとめる。こうして、同一もしくは類似するメッセージ群をノード、そのノード間の遷移関係をエッジとする木構造で表現されるメッセージの遷移関係情報が生成される。遷移関係情報は、関係提示・修正手段13へ出力される。
【0017】
関係提示・修正手段13は、遷移関係情報を取得し、これに基づいてメッセージの遷移関係を表す関係図をユーザに提示する。また、修正要求があれば関係図及び遷移関係情報を修正する。例えば、関係解析手段12において抽出されたノードとエッジに基づいて、メッセージの遷移関係を木構造の関係図で表示装置に表示させる。ユーザは、表示された関係図でメッセージの遷移関係を確認することができる。そしてメッセージの遷移関係を変更したいときは、修正要求を行う。関係提示・修正手段13は、ユーザからの修正要求を受け付けると、要求に基づいて情報の遷移関係を修正し、これに合わせて修正された関係図を再提示する。このような手順が繰り返されて、木構造で表現されるメッセージの遷移関係情報が確定される。
【0018】
再取得手順定義手段14は、関係提示・修正手段13によって確定されたメッセージの遷移関係情報に基づいて、所定の情報を再取得するために必要なメッセージを特定し、再取得手順を定義する。例えば、ノードの遷移関係が木構造で表されているときは、所望の情報に対応するノードへ至る経路を辿り、親ノードを順次検出する。そして、親ノードに対応する代表メッセージに基づき、所望の情報を再取得するまでのメッセージと送付順を手順として定義し、再取得手順定義情報11bを生成する。例えば、再取得手順定義情報11bは、所望の情報を再取得するための処理をコンピュータに実行させる情報再取得プログラムの形式で生成される。
【0019】
このような構成の情報再取得手順生成装置10によれば、関係解析手段12は、記憶手段11に格納されるメッセージ履歴11aを読み出し、記録されるメッセージを構文解析して類似または同一のメッセージ群を1つのノードにまとめる。各ノードには、代表となる代表メッセージを設定しておく。また、各ノードの親ノードを検出して、ノードの遷移関係(木構造)をエッジとして抽出する。こうして、ノードとエッジとによって表されるメッセージの遷移関係情報が生成される。関係提示・修正手段13は、メッセージの遷移関係情報に基づき、メッセージの遷移関係を木構造で表現した関係図をユーザに提示する。これにより、ユーザは、視覚的にメッセージの遷移関係を把握することができる。そして、修正したい場合には、修正要求を行う。ユーザによる修正要求があった場合には、関係提示・修正手段13が、修正要求に応じてメッセージの遷移関係情報を修正し、ユーザに提示している関係図を更新する。そして、再取得手順定義手段14は、こうして修正された遷移関係情報に基づき、所望の情報を再取得する再取得手順を定義し、再取得手順定義情報11bが生成される。再取得手順定義情報11bは、その処理手順をコンピュータに実行させるプログラムの形式で生成されてもよい。
【0020】
こうして生成された再取得手順定義に従って情報取得装置がリクエストを順次行うか、あるいは、情報取得装置に生成された処理プログラムを実行させることにより、所望の情報を自動的に再取得することが可能となる。これにより、情報を再取得しようとするユーザの操作を簡略化することができる。なお、類似もしくは同一のメッセージは1つのノードにまとめられ、メッセージの遷移関係はノード単位で解析される。したがって、同一もしくは類似の情報が繰り返し取得されたような場合でも、遷移関係情報には、1つのノードの遷移関係として定義される。これにより、遷移関係情報に基づいて、所望の情報を得るために最適な手順を提供することが可能となる。
【0021】
以下、実施の形態を、Webページを再取得するための手順生成に適用した場合を例に図面を参照して詳細に説明する。
図2は、実施の形態の情報取得システムの構成を示した図である。
【0022】
情報取得システムでは、Webページの再取得手順を生成する情報再取得手順生成装置100と、Webページを要求するクライアント200、Webページを提供する提供元装置であるWWWサーバ300、及びクライアント200とWWWサーバ300との間のメッセージを中継する中継装置400が、ネットワークを介して接続する。
【0023】
WWWサーバ300は、予め決められた形式に従って送られてきたWebページを要求するメッセージに基づいて、対応するWebページの情報を要求元に提供する。
クライアント200は、WWWサーバ300からWebページの提供を受ける装置で、WWWブラウザ210及び再取得プログラム(記憶部)220を有する。WWWブラウザ210は、Webページを閲覧するための処理を行う。予め決められた所定の手順でWWWサーバ300へアクセスし、所望のWebページの情報を取得し、これを図示しない出力装置に表示・再生する。このとき、このWebページを再取得する手順を実行するための再取得プログラムがあったときは、再取得プログラム(記憶部)220に格納されるこの再取得プログラムを実行し、Webページの情報を再取得する。再取得プログラム(記憶部)220には、情報再取得手順生成装置100が生成した、任意のWebページを再取得する手順を実行するための再取得プログラムが格納される。また、クライアント200では再取得プログラムを実装せず、情報再取得手順生成装置100に再取得を依頼して情報を得るようにしてもよい。
【0024】
中継装置400は、メッセージを中継する中継処理部410及びメッセージ履歴を記憶するメッセージ履歴(記憶部)420を有する。中継処理部410は、クライアント200から取得したリクエストをWWWサーバ300へ中継し、WWWサーバ300からのレスポンスをクライアント200へ返す。このとき、中継したリクエスト及びレスポンスに関する情報をメッセージ履歴として残し、メッセージ履歴(記憶部)420に格納する。情報再取得手順生成装置100から要求があったときには、メッセージ履歴(記憶部)420からメッセージ履歴を読み出して提供する。
【0025】
情報再取得手順生成装置100は、各種情報を記憶する記憶部110、メッセージの遷移関係を表す木構造を生成する木構造生成部120、木構造の表示と訂正を行う木構造表示・修正部130、及び情報再取得手順を実行するプログラムを生成するプログラム生成部140を有する。
【0026】
記憶部110は、ノード情報表111、エッジ情報表112及び再取得プログラム113を記憶する。ノード情報表111及びエッジ情報表112は、メッセージの遷移関係情報であり、メッセージの遷移関係を木構造で表したときのノードとエッジに関する情報である。ノード情報表111には、Webページを取得するメッセージの遷移関係を表す木構造において、各ノードに抽出されたメッセージに関する情報が記録される。エッジ情報表112には、各ノードの親ノードを指定する情報が記録される。再取得プログラム113は、指定されたWebページを再取得する再取得手順を実行させるために生成されたプログラムである。各情報の詳細は後述する。
【0027】
木構造生成部120は、ノード抽出部121及びエッジ抽出部122を有し、関係解析手段として機能する。Webページの遷移関係を木構造で捉えるため、メッセージ履歴に記録されるメッセージを解析し、ノード抽出部121はノード、エッジ抽出部122はエッジを抽出する。
【0028】
ノード抽出部121は、中継装置400からメッセージ履歴を取得し、構文解析を行って特定データを抽出する。例えば、特定データとしてURLなどを抽出し、URLが同じメッセージなど、似たもの同士を1つのノードに分類する。ここでは、URL、リクエストメソッド、レスポンスステータスコード、レスポンスのメディアタイプ、HTMLの場合にはレスポンスタイトル、のすべてが一致するか否かで分類する。そして分類ごとにノードIDを付与し、ノード情報表111に登録する。また、各分類(ノード)に属するメッセージから1つのメッセージを選択し、代表メッセージとする。例えば、ノードに分類されたメッセージ群のうち、最初に発行されたメッセージを代表メッセージに設定する。
【0029】
エッジ抽出部122は、ノード抽出部121で抽出されたノード間の関係を解析する。そして、各ノードについて、代表メッセージの発行元となったメッセージを推測し、それが含まれるノードを親ノードに設定する。すなわち、その間にエッジを引く。各ノードには、必ず1つの親ノードを持つように設定を行う。メッセージ履歴から親ノードが検出されない場合は、仮想的な空白ページ(実際には呼び出されないページ)を親ノードとする。なお、発行元の推測は、メッセージ履歴を当該代表メッセージよりも前に発行されたメッセージを順に検索して行う。また、推測の方法は様々な方法があり、システムに応じて適宜選択される。例えば、発行リクエストの特定データが、発行元のレスポンスに含まれているか否かで判定する方法が考えられる。また、発行リクエストのURLが発行元候補のレスポンスのリンク群に含まれているか否かで判定することもできる。他に、発行リクエストのメソッド、リファラ(referer)ヘッダ、ボディ(パラメータ)、発行元候補のレスポンスのロケーションヘッダ、フォーム、発行リクエストのURLなどを判定材料に使うことが考えられる。ここでは、発行元のURLが発行元候補のレスポンスのロケーションヘッダ及びリンク群に含まれているか否かで判定する。抽出されたエッジは、エッジ情報表112に登録する。これにより、空白ページを根とするメッセージ、もしくはメッセージによって呼び出されるWebページの遷移関係がエッジ情報表112に登録される。
【0030】
木構造表示・修正部130は、木構造表示部131及び木構造修正部132を有し、関係提示・修正手段として機能する。木構造表示部131は、Webページ(メッセージ)の遷移関係を木構造で表示し、木構造修正部132は、入力指示に基づいてその木構造を修正する。木構造表示部131は、木構造生成部120で生成されたノード情報表111及びエッジ情報表112に基づいてメッセージ遷移関係を木構造で表示する。ここで、木構造は、GUI(Graphical User Interface)を用いて表示される。木構造修正部132は、ユーザからの指示が入力されると、指示に従ってノード情報表111及びエッジ情報表112を書き換える。
【0031】
プログラム生成部140は、再取得手順定義手段として機能する。木構造表示・修正部130で修正されたメッセージの遷移関係を表すノード情報表111及びエッジ情報表112に基づいて、所望のWebページを再取得するための手順を定義し、再取得プログラムを生成する。例えば、木構造の根ノードから、目的の情報を取得するメッセージが含まれるノードまでを順に辿り、ノードの代表メッセージに基づくリクエストメッセージを生成し、生成されたリクエストメッセージを順に送付する手順を定義する。
【0032】
ここで、情報再取得手順生成装置100のハードウェア構成について説明する。
図3は、情報再取得手順生成装置のハードウェア構成例を示すブロック図である。
情報再取得手順生成装置100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス107を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、及び通信インタフェース106が接続されている。
【0033】
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションのプログラムが格納される。グラフィック処理装置104には、モニタ108が接続されており、CPU101からの命令に従って画像をモニタ108の画面に表示させる。入力インタフェース105には、キーボード109aやマウス109bが接続されており、キーボード109aやマウス109bから送られてくる信号を、バス107を介してCPU101に送信する。通信インタフェース106は、ネットワーク500に接続されており、ネットワーク500を介してクライアント200や、中継装置400との間でデータの送受信を行う。
【0034】
このようなハードウェア構成によって、情報再取得手順生成装置100の処理機能を実現することができる。なお、図3には、情報再取得手順生成装置100のハードウェア構成を示したが、クライアント200、WWWサーバ300及び中継装置400のハードウェア構成も同様である。
【0035】
次に、このような情報再取得手順生成装置100の動作及び情報再取得手順生成方法について、具体例を用いて説明する。
情報再取得手順生成装置100は、Webページ要求時に、クライアント200とWWWサーバ300間で交換されたメッセージが記憶されるメッセージ履歴に基づいてユーザが所望するWebページの再取得手順を解析する。
【0036】
図4及び図5は、メッセージ履歴の一例を示した図である。図4は、メッセージ履歴の一例の前半部分、図5は、メッセージ履歴の一例の後半部分を示している。
なお、図は、HTTP(Hyper Text Transfer Protocol)を用いたメッセージの履歴である。便宜的に、図4をHTTPメッセージ履歴4200a、図5をHTTPメッセージ履歴4200bとするが、連続する1つのテーブルである。
【0037】
HTTPメッセージ履歴4200a,4200bは、メッセージが得られた順に従ってリクエスト4201と、レスポンス4202の組が記録されている。
順番は、メッセージが得られた時間的順序であり、番号が若いほど前の時間に得られたメッセージになる。リクエスト4201には、クライアント200からWWWサーバ300に向けて送信されたリクエストメッセージが記録される。レスポンス4202には、リクエストに対しWWWサーバ300からクライアント200に向けて送信されたレスポンスメッセージが記録される。
【0038】
図の例では、クライアント200からのログイン要求(POST /login HTTP/1.0)が受け付けられ(順番1)、その後、メニュー要求(GET /menu HTTP/1.0)が発行されている(順番2)。そして、メニューから機能1の情報の要求(GET /f1 HTTP/1.0)が発行されている(順番3)。さらに、再び、メニュー要求(GET /menu HTTP/1.0)が発行され(順番4)、その後、メニューから機能2の情報の要求(GET /f2 HTTP/1.0)が発行されている(順番5)。なお、()内の順番は、HTTPメッセージ履歴4200a,4200bの「順番」に相当する。
【0039】
木構造生成部120では、このHTTPメッセージ履歴4200のリクエスト4201のリクエストメッセージと、レスポンス4202のレスポンスメッセージとを順番に解析し、メッセージの遷移関係を表した木構造情報(ノード情報表111とエッジ情報表112)を得る。
【0040】
ノード抽出部121は、リクエストメッセージとレスポンスメッセージから特定データを抽出し、比較してメッセージをノードに分類する。ここでは、URL、リクエストメソッド、レスポンスステータスコード、レスポンスのメディアタイプ、レスポンスのタイトル(HTMLの場合)、が全て一致するものを同じノードに分類する。具体的には、まず、メッセージを識別するために、それぞれのメッセージにメッセージIDを付与する。図の例では、HTTPメッセージ履歴4200aの順番1にメッセージIDのM1、順番2にM2、HTTPメッセージ履歴4200bの順番3にM3、順番4にM4、順番5にM5を割り当てる。続いて、M1からM5をノードに分類する。M2とM4は、URL(http://example.com/menu)、リクエストメソッド(GET)、レスポンスステータスコード(200)、が共通している。一部図示していない、レスポンスのメディアタイプ(text/html)及びタイトル(メニュー)も共通しているとすると、これらは同じノードに分類される。一方、残りのM1,M3,M5はURLなどがそれぞれ異なるため、互いに異なるノードに分類される。
【0041】
こうして割り当てられたノードを登録したノード情報表111が生成される。図6は、ノード情報表の一例である。
ノード情報表1110は、HTTPメッセージ履歴4200a,4200bを上記のように解析して生成されたものである。ノード情報表1110は、メッセージID1111、リクエスト1112、レスポンス1113、ノードID1114、及び代表1115の各情報項目が登録される。
【0042】
メッセージID1111は、HTTPメッセージ履歴4200a,4200bに記録される時刻順に設定されるメッセージ識別符号である。リクエスト1112は、HTTPメッセージ履歴4200a,4200bに記録されるリクエストメッセージである。レスポンス1113は、HTTPメッセージ履歴4200a,4200bに記録されるレスポンスメッセージである。ノードID1114には、ノード抽出部121によって付与されたノードIDが登録される。代表1115には、各メッセージが代表メッセージであるか否かが登録される。図の例では、代表にのみ丸(○)が登録されている。なお、代表メッセージは、同じノードに分類されたメッセージのうち、メッセージIDの番号が最も若いもの(時間的に最も早い時点で発行されたもの)が選択される。図の例では、メッセージM1はノードN1に分類された代表メッセージである。メッセージM2とメッセージM4は、ともにノードN2に分類されるが、代表メッセージはメッセージIDの番号の若いメッセージM2になっている。同様に、メッセージM3はノードN3、メッセージM5はノードN4に分類され、いずれも代表メッセージに設定されている。
【0043】
続いてエッジ抽出部122が、ノードの親子関係を推測する。まず、空白ページに相当するノードのノードIDを「N0」とする。このノードN0は、どのメッセージも分類されないノードである。次に、ノードN0以外の各ノードの親ノードを決め、その情報をエッジ情報表112に登録する。
【0044】
ここでは、発行リクエストのURLが、発行元候補のレスポンスのロケーションヘッダ及びリンク群に含まれているか否かで判定する。また、発行元候補は、このリクエストよりも前に発行されたメッセージとする。図の例では、ノードN1に分類されたメッセージM1は、それより前に発行されたメッセージがないので、親ノードはノードN0が設定される。次に、ノードN2に分類されたメッセージM2の発行元候補は、メッセージM2より前に発行されたメッセージM1(ノードN1)となる。ここで、メッセージM2の発行リクエストのURL(http://example.com/menu)と、発行元候補のレスポンスのロケーションヘッダに含まれているURLとは同じである。そこで、ノードN2の親ノードには、ノードN1が設定される。なお、もしここで該当するメッセージがなかった場合、親ノードにはノードN0が設定される。以下、順次解析が行われ、各ノードの親ノードが決定され、エッジ情報表112が生成される。
【0045】
図7は、エッジ情報表の一例である。
エッジ情報表1120は、ノード情報表1110に登録される各ノードについて、上記のように解析して決定された親ノードが登録される。エッジ情報表1120には、ノードID1121と、そのノードID1121に登録されるノードに対する親ノードの親ノードID1122と、が登録される。ノードID1121に登録されるIDは、ノード情報表1110のノードID1114に登録されるIDと同じである。親ノードID1122には、ノードID1121に登録されるノードの発行元である親ノードのノードIDが登録される。図の例では、ノードN1の親ノードはノードN0、ノードN2の親ノードはノードN1、そして、ノードN3とノードN4の親ノードはノードN2という親子関係を有することが登録されている。
【0046】
こうして木構造生成部120によってノード情報表1110と、エッジ情報表1120とが生成される。続いて、木構造表示・修正部130によってメッセージ遷移関係を表す木構造の表示と修正処理が行われる。木構造表示部131では、ノード情報表111とエッジ情報表112とに基づいて、メッセージ遷移関係を表すツリー表示画面を表示する。
【0047】
図8は、ツリー表示画面の一例である。図の例は、ノード情報表1111と、エッジ情報表1112とに基づく表示画面である。
ツリー表示画面610には、各ノードを表すアイコン、ノードN0(611)、ノードN1(612)、ノードN2(613)、ノードN3(614)、ノードN4(615)が各ノードの親子関係に基づいて配置されている。以下の説明では、ノード名とともに()内に番号が付されているときは、番号によって指示される表示画面上のアイコンを表す。図の例では、最も左に木構造の頂点となる根ノード、ノードN0(611)が表示される。そして、ノードN0を親ノードとする子ノードがその右隣に配置される。ここでは、ノードN0を親ノードとするノードN1(612)が配置される。同様に、エッジ情報表1120に基づき、ノードN1を親ノードとするノードN2(613)、ノードN2を親ノードとするノードN3(614)と、ノードN4(615)が順に配置される。また、エッジ情報表1110に示された親ノードから子ノードの方向にエッジ(図では矢印)が表示される。
【0048】
また、ノードN0(611)を除くノードのアイコンについては、そこに分類されているメッセージ群をリスト形式(コンボボックス)で表示し、代表メッセージを一番上に表示しておく。このアイコンは、メッセージの種別に応じて形や色を変えてもよい。図の例では、代表メッセージがHTMLの場合には四角形で表示され、それ以外の場合は楕円で表示されている。
【0049】
ノードN0(611)を除く各ノードのアイコンはマウスなどで選択できるようになっており、選択されると、選択中のノードの代表メッセージの詳細を別途表示する。図の例では、ノードN2(613)が選択され、その代表メッセージの詳細画面616が表示されている。ここでは、代表メッセージM2によって取得されたHTMLファイルに基づく表示画面が表示されている。これにより、メッセージによって取得された情報の把握を容易にすることができる。
【0050】
このように、メッセージの遷移関係を木構造で表示することにより、ユーザはメッセージの遷移関係を容易に把握することができる。図の例では、ノードN3の情報は、ノードN1、ノードN2と遷移することによって得られることがわかる。言い換えれば、代表メッセージM1、代表メッセージM2、代表メッセージM3の順にメッセージが送付されて、メッセージM3に対応する情報が得られることがわかる。同様に、ノードN4の情報も、ノードN1、ノードN2と遷移することによって得られることがわかる。メッセージの送付手順としては、代表メッセージM1、代表メッセージM2、代表メッセージM5の順になる。
【0051】
次に、この木構造を修正する場合について説明する。ここでは、ノードが選択されたとき、各ノードに対する修正操作用のメニュー(以下、修正メニューとする)を、ノード上でのポップアップメニューとして表示する。ただし、ノードN0は修正することができない。修正メニュー617では、「このノード以下を削除」「このノードのメッセージを移動」「このノードの親ノードを変更」という修正指示を選択することができる。
【0052】
以下、それぞれの修正指示が選択された場合について説明する。
まず、修正メニュー617から、「このノードのメッセージを移動」が選択された場合について説明する。
【0053】
メッセージの移動が選択されると、メッセージの分類(振り分けられたノード)を修正するため、メッセージ分類修正画面が表示される。図9は、メッセージ分類修正画面の一例を示した図である。
【0054】
メッセージ分類修正画面620は、図8のツリー表示画面610においてノードN2が選択され、「このノードのメッセージを移動」が選択されたときの表示画面である。
メッセージ分類修正画面620には、移動するメッセージ欄621と、移動先欄622、及びOKボタン623が表示される。移動するメッセージ欄621には、移動が指定されたノードに属するメッセージのIDが表示される。この例では、ノードN2に分類されたメッセージM2とメッセージM4が表示されている。移動先欄622には、メッセージの移動先として指定可能なノードの一覧が表示される。この例では、既存のノードN1、N3、N4と、新しいノードが表示されている。新しいノードには、まだ使用されていないノードIDが設定される。図の例では、新しいノードとしてN5が設定されている。ユーザは、移動するメッセージ欄621から移動対象のメッセージ、移動先欄622からその移動先を選択する。そして、OKボタン623が操作されると、指定されたメッセージの移動が実行される。
【0055】
例えば、移動するメッセージがメッセージM2、移動先が新しいノード(N5)に指定されたとする。これにより、ノードN2に分類されていたメッセージM2はノードN5へ移動する。ノード情報表1110のメッセージM2に関するノードIDは「N5」に更新され、メッセージM2はノードN5の代表メッセージになる。これに伴って、ノードN2の代表メッセージは、メッセージM4になり、代表1115の該当欄が更新される。また、エッジ情報表1120のノードID1121には、「N5」が追加される。このとき、ノードN5の親ノードは、移動したメッセージM2が分類されていた元のノードN2の親ノードを引き継がれ、「N1」が登録される。
【0056】
さらに、木構造表示部131は、修正されたノード情報表1110及びエッジ情報表1120に基づいて、ツリー表示画面610を、修正後の木構造の状態に更新する。
図10は、メッセージの分類が修正された後のツリー表示画面の一例である。
【0057】
ツリー表示画面630は、ツリー表示画面610の状態でメッセージM2の分類がノードN2からノードN5に修正された後の状態を表すツリー表示画面である。ツリー表示画面610から変更されていないものは、同じ番号を付す。
【0058】
修正後のツリー表示画面630では、新たに追加されたノードN5(631)が、ノードN1(612)の下に配置される。ノードN5の代表メッセージは、メッセージM2である。これに伴って、ノードN2(632)は、代表メッセージがメッセージM4に変更されている。それ以外の表示は変更されていない。
【0059】
このように、GUI(Graphical User Interface)の操作を行うだけで、簡単にメッセージ遷移関係を修正することができる。
メッセージの分類の修正は、ノードN0を除くすべてのノードのメッセージについて行うことができる。他の例として、ノードN3(614)に分類されるメッセージM3を、ノードN4へ移動させる場合について説明する。ユーザは、図8に示したツリー表示画面610において、ノードN3を選択し、修正メニュー617から「このノードのメッセージを移動」を選択する。選択に応じて、ノードN3に関するメッセージ分類修正画面620が表示されるので、メッセージM3を選択し、ノードN4へ移動する指示を行う。これにより、ノード情報表1110のメッセージM3のノードID1114は、「N4」に修正される。ノードN4の代表メッセージには、既にメッセージM5が登録されているので、代表メッセージには設定されない。なお、エッジ情報表1120には、修正個所はない。
【0060】
木構造表示部131は、修正されたノード情報表1110及びエッジ情報表1120に基づいて、ツリー表示画面610を、修正後の木構造の状態に更新する。
図11は、メッセージの分類が修正された後のツリー表示画面の他の例である。
【0061】
ツリー表示画面640は、ツリー表示画面610の状態でメッセージM3の分類がノードN3からノードN4に修正された後の状態を表したツリー表示画面である。ツリー表示画面610から変更のないものは、同じ番号が付されている。
【0062】
ツリー表示画面640では、メッセージがなくなったノードN3が表示画面から削除され、ノードN2(613)の子ノードは、ノードN4(641)のみになる。ノードN4の代表メッセージはメッセージM5であるのでノードN4(641)には表示されない。移動されたメッセージM3は、メッセージ一覧画面642が選択されたときに表示される。なお、代表メッセージは、任意に設定することができ、メッセージM3を代表メッセージとすることもGUIを用いた簡単な操作で実行できる。
【0063】
次に、修正メニュー617から「このノード以下を削除」が選択された場合について説明する。メッセージの削除が選択されると、選択されたノードと、そのノードの子ノードなど、選択されたノードから派生するノード(以下、子孫ノードとする)はすべて削除される。
【0064】
例えば、図8に示したツリー表示画面610においてノードN2(613)が選択された状態で、修正メニュー617で「このノード以下を削除」が選択された場合で説明する。この場合、選択されたノードN2(613)と、その子孫ノードであるノードN3(614)及びノードN4(615)と、が削除される。例えば、エッジ情報表1120のノードID1121から、選択されたノードN2が削除される。次に、親ノードID1122の値が「N2」であるノードID1121が検索される。ここでは、「N3」「N4」が検出されるので、これらのノードもノードID1121から削除する。続いて、削除したノードN3及びノードN4を親ノードとするノードが検索される。ここでは、該当するノードは検索されないので、削除処理は終了する。これに伴ってノード情報表1110も修正される。
【0065】
さらに、木構造表示部131は、修正されたノード情報表1110及びエッジ情報表1120に基づいて、ツリー表示画面610を、修正後の木構造の状態に更新する。
図12は、ノードが削除された後のツリー表示画面の一例である。
【0066】
ツリー表示画面650は、ツリー表示画面610の状態でノードN2以下のノードが削除された後の状態を表したツリー表示画面である。ツリー表示画面610から変化のないものは、同じ番号が付されている。
【0067】
ツリー表示画面650では、削除が選択されたノードN2より上のノードN0(611)と、ノードN1(612)の表示は変化ない。しかし、選択されたノードN2、その子孫ノードのノードN3及びノードN4が削除され、そのアイコンが表示されていた領域651には、何も表示されない。
【0068】
このように、あるノードの削除が指定されると、エッジを辿って子孫ノード、すなわち、指定されたノードのメッセージ発行後でなければ発行されないメッセージに関するノードも自動的に削除される。
【0069】
次に、修正メニュー617から「このノードの親ノードを変更」が選択された場合について説明する。親ノードの変更が選択されると、ノード間の関係を修正するため、親ノードの変更画面が表示される。図13は、親ノードの変更画面の一例を示した図である。
【0070】
親ノードの変更画面660は、図8のツリー表示画面610においてノードN2が選択され、「このノードの親ノードを変更」が選択されたときの表示画面である。
親ノードの変更画面660には、親ノード欄661及びOKボタン662が表示される。親ノード欄661には、登録可能なノード候補として、全てのノードから、現在選択されているノードと、そのノードの子孫群を除いたノードがリスト形式で表示される。ユーザは、その中から新しく親ノードとして設定するノードIDを選択する。続いてOKボタン662が操作されると、親ノードが指定されたノードに変更される。
【0071】
図の例では、選択されたノードN2の親ノードを、ノードN0に変更するという指示がされている。この場合、エッジ情報表1120のノードN2に対応する親ノードID1122が「N1」から「N0」に修正される。ノード情報表1110には、修正個所はない。
【0072】
木構造表示部131は、修正されたエッジ情報表1120及びノード情報表1110に基づいて、ツリー表示画面を表示する。
図14は、親ノードが変更された後のツリー表示画面の一例である。
【0073】
ツリー表示画面670は、ツリー表示画面610の状態でノードN2の親ノードがノードN1からノードN0に変更された後の状態を表すツリー表示画面である。ツリー表示画面610と同じ状態のものは、同じ番号が付されている。
【0074】
ツリー表示画面670では、ノードN2(671)と、ノードN2(671)を親ノードとするノードN3(672)及びN4(673)とが、ノードN0(611)を親ノードとして表示される。
【0075】
このように、親ノードが修正されたときも、選択されたノードとともに、このノードの子孫のノードが自動的に移動される。
以上のような操作を繰り返して修正されたノード情報表1110及びエッジ情報表1120は、メッセージ遷移関係を示す情報として、プログラム生成部140に送られる。
【0076】
プログラム生成部140では、ノード情報表1110及びエッジ情報表1120によって表されるメッセージの遷移関係を取得し、各ノードの代表メッセージを再取得するようなプログラムを生成する。あるノードの再取得プログラムは、まずそのノードの親ノードを再取得する。そして、その最後のメッセージを元にリクエストを生成する。ただし、親ノードが「N0」のときは、親ノードの再取得はせず、単に代表メッセージのリクエストをそのまま再利用する。最後のレスポンスを元に、再取得したメッセージのリクエストを生成する方法にはさまざまな方法が考えられる。例えば、再取得したメッセージに相当するリンクを探し、リクエストを生成する。実施の形態では、再取得したいメッセージに相当するリンクを探し、リクエストを生成する。また、生成したリクエストのレスポンスについて、元のレスポンス(代表メッセージのレスポンス)と似ていなかったら、エラーメッセージを表示するプログラムを生成する。レスポンス同士が似ているか否かを判定するには、様々な方法が考えられる。例えば、レスポンス中の特定のデータを比較することが考えられる。よく知られている方法として、ステータスコードを比較する方法がある。実施の形態では、ステータスコード、メディアタイプ、(HTMLの場合には)タイトル、の1つでも違えば似ていないと判定する。
【0077】
図15は、生成される再取得プログラムの一例である。
再取得プログラム700の流れを示す。再取得プログラム700では、まず、getMessage(NodeId)によって、ノード情報表111から、引数のノード(NodeId)の代表メッセージを取得する(701)。続いて、getParentIdによってエッジ情報表112から引数のノードの親ノードIDを取得する(702)。結果がnullであれば、代表メッセージのリクエストを再利用する(703)。結果がnullでなければ、最後のレスポンス(第1引数)を元に、再取得したメッセージのリクエストを生成する(704)。また、サーバと通信を行ってレスポンスが元のレスポンスと似ていないときは、エラーメッセージを表示する処理も行う(705)。
【0078】
このように、ノード情報表111及びエッジ情報表112に基づいて所望のメッセージを再取得するための再取得プログラム700が生成される。この再取得プログラム700を用いれば、所望のWebページの情報を簡単に取得することができる。
【0079】
以下、実施の形態の情報再取得プログラムの生成処理の手順についてフローチャートを用いて説明する。
図16は、情報再取得プログラムの生成処理の手順を示したフローチャートである。
【0080】
[ステップS01] Webページの遷移関係を表す木構造を生成する木構造生成処理のうち、メッセージ履歴からノードを抽出するノード抽出処理を行う。詳細は後述する。
[ステップS02] Webページの遷移関係を表す木構造を生成する木構造生成処理のうち、エッジを抽出するエッジ抽出処理を行う。詳細は後述する。
【0081】
[ステップS03] ステップS01で抽出されたノード情報と、ステップS02で抽出されたエッジ情報に基づいて、Webページの遷移関係を示す木構造を表示装置に表示する処理を行う。
【0082】
[ステップS04] 表示装置によりWebページの遷移関係を確認したユーザから修正指示が入力されたかどうかをチェックする。修正指示が入力されたときは、処理をステップS05に進める。修正指示が入力されなかったときは、処理をステップS06に進める。
【0083】
[ステップS05] 木構造の修正指示が入力されたときは、修正指示に従って木構造を修正する。さらに、修正された木構造に応じてノード情報表111及びエッジ情報表112の情報も更新する。その後、処理をステップS03に戻し、更新されたノード情報表111及びエッジ情報表112に基づく木構造表示の処理からの手順を繰り返す。
【0084】
[ステップS06] 修正指示が入力されなかったときは、ユーザが木構造を確定したかどうかを判定する。確定したときは、処理をステップS07へ進める。確定していないときは、処理をステップS04に戻し、修正指示のチェックからの処理を行う。
【0085】
[ステップS07] ユーザが木構造を確定したときには、確定された木構造に基づいて所望のWebページを取得するための再取得プログラムを生成する。
以上の処理手順が実行されることにより、メッセージ履歴に基づいてユーザが希望するWebページを再取得するための再取得プログラムが生成される。クライアント200がこの再取得プログラムを実行することにより、ユーザは、簡略な操作で所望のWebページを参照することができる。
【0086】
次に、木構造生成処理の詳細な手順を、ノード抽出処理、エッジ抽出処理の順に説明する。
図17は、木構造生成処理(ノード抽出処理)の手順を示したフローチャートである。
【0087】
[ステップS101] 中継装置400によって記録されたクライアント200とWWWサーバ300との間で交換されたHTTPメッセージに関するHTTPメッセージ履歴を読み出す。HTTPメッセージ履歴は、所定の期間に記録されたものを全て読み出しておく。
【0088】
[ステップS102] ステップS101で読み出したメッセージ履歴に記録されるメッセージについて、ステップS109までのループ1の処理を行う。
[ステップS103] メッセージ履歴に記録されたメッセージの組(リクエストとレスポンス)のうち、未処理のものを1つ取り出し、メッセージIDを付与してノード情報表111に登録する。メッセージIDは、例えば、メッセージを識別する識別文字Mと、発行順につけられた番号とを組み合わせて構成する。この時点で、ノード情報表111には、メッセージIDに関連付けて、メッセージ履歴から抽出されたリクエストメッセージ及びレスポンスメッセージが登録される。
【0089】
[ステップS104] ステップS103で抽出されたメッセージを構文解析し、特定データを抽出する。例えば、URLやリクエストメソッドを抽出する。
[ステップS105] 抽出された特定データに基づき、このメッセージと同一または類似するメッセージが分類されるノードが既に登録されているかどうか判定する。抽出された特定データと、ノード情報表111に既に登録されるメッセージの特定データとを照合し、同じものがあるかどうかを判定する。同じものがあれば、既登録のメッセージデータと同じノードに分類することができる。同じノードに分類できなければ、処理をステップS106に進める。同じノードに分類できれば、処理をステップS108に進める。
【0090】
[ステップS106] 同じノードに分類できないときは、新しいノードIDをこのメッセージに付与する。付与したノードIDは、このメッセージに対応するノード情報表111のノードID欄に登録する。
【0091】
[ステップS107] さらに、このメッセージを新ノードの代表メッセージに設定する。このメッセージに対応するノード情報表111の代表欄に、「代表(○)」を設定し、処理をステップS109に進める。
【0092】
[ステップS108] 既登録のノード(既ノード)と同じノードに分類できるときは、既ノードのノードIDを付与する。付与したノードIDは、このメッセージに対応するノード情報表111のノードID欄に登録する。
【0093】
[ステップS109] 読み出したメッセージ履歴に記録される全メッセージの処理が終了したかどうかを判定する。全メッセージの処理が終了していないと判定されたときは、処理をステップS102に戻す。終了したと判定されたときは、ループ1を終了し、次ステップへ処理を進める。
【0094】
[ステップS110] 生成されたノード情報表111を出力する。
以上の処理手順が実行されることにより、メッセージ履歴に記録されるメッセージにノードが付与され、ノード情報表111に登録される。
【0095】
図18は、木構造生成処理(エッジ抽出処理)の手順を示したフローチャートである。
[ステップS201] ノード抽出部121によって生成されたノード情報表111の受付処理を行う。
【0096】
[ステップS202] 受け付けたノード情報表111に登録された全てのメッセージの処理が終了するまで、未処理の対象メッセージを1つ選択し、ステップS210までのループ2処理を行う。
【0097】
[ステップS203] 選択された対象メッセージが、代表メッセージであるかどうかを判定する。ノード情報表111の代表欄を参照して判定を行う。代表メッセージであるときは、処理をステップS204に進める。代表メッセージでないときは、処理をステップS210に進める。
【0098】
[ステップS204] この代表メッセージを対象2メッセージと名付ける。対象2メッセージは、その時点において親ノード候補としているノードのメッセージである。すなわち、開始時点では、対象メッセージのノードを仮に親ノード候補としている。
【0099】
[ステップS205] 現時点で対象2メッセージと名付けられている対象2メッセージよりも時間的に前に発行されたメッセージがあるかどうかを判定する。ノード情報表111は、メッセージの発行順にメッセージIDが付与されるので、対象2メッセージよりもメッセージIDの値が若い番号を有するかどうかにより判定する。前のメッセージがないときは、処理をステップS206に進める。前のメッセージがあるときは、処理をステップS207に進める。
【0100】
[ステップS206] 対象2メッセージよりも前のメッセージがないときは、他のメッセージに応じて発行されたものではないので、親ノードをノードN0とし、エッジ情報224の該当する箇所に登録し、処理をステップS210に進める。
【0101】
[ステップS207] 対象2メッセージよりも前のメッセージがあるときは、この前のメッセージを改めて対象2メッセージと名付けなおす。すなわち、親ノード候補を時間的に前に発行されたメッセージのノードにする。
【0102】
[ステップS208] 対象メッセージ(ステップS202で選択されているメッセージ)と、ステップS207で抽出された対象2メッセージ(親ノード候補)とを解析する。そして、対象メッセージは、対象2メッセージから発行されたと推測されるかどうかを判定する。対象メッセージが対象2メッセージから発行されたと推測されたときは、処理をステップS209に進める。対象メッセージが対象2メッセージから発行されたと推測されないときは、処理をステップS205に戻し、さらに前のメッセージをチェックする。
【0103】
[ステップS209] 対象メッセージが、対象2メッセージから発行されたと推測されるときは、対象メッセージの属するノードの親ノードを、対象2メッセージが属するノードとする。エッジ情報表112の対象メッセージの属するノードに対応する親ノードの欄に、対象2メッセージのノードを登録し、処理をステップS210に進める。
【0104】
[ステップS210] ノード情報表111に登録された全てのメッセージの処理が終了したかどうかを判定する。終了していないと判定されたときは、ステップS202に戻って処理を繰り返す。終了したと判定されたときは、ループ2を終了し、処理をステップS211に進める。
【0105】
[ステップS211] 生成されたエッジ情報表112を出力する。
以上の処理手順が実行されることにより、ノード情報表111に基づいて、ノード間の遷移関係が解析され、エッジ情報表112が生成される。
【0106】
このように、メッセージ履歴を解析することにより、Webページの遷移関係を木構造で表現することができる。このとき、Webページを呼び出すためのメッセージは、同一または類似するメッセージが1つのノードに分類され、その後遷移関係が解析されるので、所定のWebページを呼び出すために本当に必要なメッセージのみを木構造上に残すことができる。この木構造に基づいてWebページの再取得手順を生成すれば、所定のWebページを呼び出すために必要なリクエストメッセージのみに最適化されたWebページの再取得手順を生成することができる。
【0107】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、情報再取得手順生成装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。
【0108】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD(Digital Versatile Disc)、CD−ROM(Compact Disc Read Only Memory)などの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0109】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0110】
以上の実施の形態を含む実施形態に関し、更に以下の付記を開示する。
(付記1) 所望の情報を再取得する手順の生成処理のための情報再取得手順生成プログラムにおいて、
コンピュータを、
所定の情報が提供されるまでに前記所定の情報の提供元装置との間で交換された一連のメッセージを記録したメッセージ履歴が格納される記憶手段から前記メッセージ履歴を読み出し、前記メッセージ履歴に基づいて前記メッセージによって取得される情報の遷移関係を解析する関係解析手段、
前記関係解析手段によって解析された前記情報の遷移関係に基づいて、前記所定の情報が再取得されるまでに必要な前記メッセージを生成して送付する再取得手順を定義する再取得手順定義手段、
として機能させることを特徴とする情報再取得手順生成プログラム。
【0111】
(付記2) 前記関係解析手段に、前記メッセージ履歴に記録される前記メッセージを構文解析し、前記メッセージに含まれる特定データが類似する前記メッセージをまとめてノードとして抽出するとともに、前記ノード間の遷移関係をエッジとして抽出し、前記情報の遷移関係を前記ノードと前記エッジとを用いた木構造で表現させる、
ことを特徴とする付記1記載の情報再取得手順生成プログラム。
【0112】
(付記3) 前記関係解析手段に、抽出された前記ノードを順に対象ノードに設定し、前記対象ノードに含まれる対象メッセージよりも前に発行されたメッセージを順に解析して、前記対象メッセージの発行元と判定される発行元候補を検索し、検索された前記発行元候補の属するノードを前記対象ノードの親ノードに設定する処理を繰り返し、抽出された前記ノードすべてに対し前記親ノードを設定することを特徴とする付記1記載の情報再取得手順生成プログラム。
【0113】
(付記4) 前記関係解析手段に、前記特定データとして、前記メッセージに含まれるURL、リクエストメソッド、レスポンスステータスコード、レスポンスのメディアタイプを含む他のメッセージとの共通情報を抽出させる、ことを特徴とする付記1記載の情報再取得手順生成プログラム。
【0114】
(付記5) 前記関係解析手段に、同じノードに分類される複数の前記メッセージのうち、1つのメッセージを代表メッセージに選択させ、
前記再取得手順定義手段に、前記代表メッセージを再取得する手順を定義させる、
ことを特徴とする付記1記載の情報再取得手順生成プログラム。
【0115】
(付記6) 前記コンピュータを、さらに、
前記関係解析手段によって解析された前記情報の遷移関係を前記ノードと前記エッジを用いた木構造で表現した関係図を生成して前記ユーザに提示するとともに、前記ユーザからの修正指示が入力されたときは前記修正指示に基づいて前記情報の遷移関係及び前記関係図を修正する関係提示・修正手段、
として機能させることを特徴とする付記2記載の情報再取得手順生成プログラム。
【0116】
(付記7) 前記関係提示・修正手段に、前記ノードが選択され、前記エッジによって表される前記ノード間の遷移関係を修正する指示が入力されたときは、選択された前記ノードに対する子孫ノードを含めて前記ノード間の遷移関係を修正させる、ことを特徴とする付記6記載の情報再取得手順生成プログラム。
【0117】
(付記8) 前記再取得手順定義手段に、前記木構造の根ノードから、目的の情報を取得するための前記メッセージが含まれる前記ノードまでを順に辿り、前記ノードの代表メッセージに基づくリクエストメッセージを生成し、生成された前記リクエストメッセージを順に送付する処理をコンピュータに実行させる再取得プログラムを生成させる、
ことを特徴とする付記1記載の情報再取得手順生成プログラム。
【0118】
(付記9) 前記再取得手順定義手段に、前記メッセージ履歴から前記リクエストメッセージに対応するレスポンスメッセージを抽出して前記レスポンスメッセージから特定データを抽出し、前記再取得手順で定義された前記リクエストメッセージからのレスポンスに前記特定データが含まれるか否かを判定するエラー処理を定義し、前記エラー処理を前記コンピュータに実行させる再取得プログラムを生成させる、
ことを特徴とする付記8記載の情報再取得手順生成プログラム。
【0119】
(付記10) 所望の情報を再取得する手順を生成する情報再取得手順生成装置において、
所定の情報が提供されるまでに前記所定の情報の提供元装置との間で交換された一連のメッセージを記録したメッセージ履歴が格納される記憶手段と、
前記記憶手段から前記メッセージ履歴を読み出し、前記メッセージ履歴に基づいて前記メッセージによって取得される情報の遷移関係を解析する関係解析手段と、
前記関係解析手段によって解析された前記情報の遷移関係に基づいて、前記所定の情報が再取得されるまでに必要な前記メッセージを生成して送付する再取得手順を定義する再取得手順定義手段と、
を有することを特徴とする情報再取得手順生成装置。
【図面の簡単な説明】
【0120】
【図1】実施の形態に適用される発明の概念図である。
【図2】実施の形態の情報取得システムの構成を示した図である。
【図3】情報再取得手順生成装置のハードウェア構成例を示すブロック図である。
【図4】メッセージ履歴の一例の前半部分を示した図である。
【図5】メッセージ履歴の一例の後半部分を示した図である。
【図6】ノード情報表の一例である。
【図7】エッジ情報表の一例である。
【図8】ツリー表示画面の一例である。
【図9】メッセージ分類修正画面の一例を示した図である。
【図10】メッセージの分類が修正された後のツリー表示画面の一例である。
【図11】メッセージの分類が修正された後のツリー表示画面の他の例である。
【図12】ノードが削除された後のツリー表示画面の一例である。
【図13】親ノードの変更画面の一例を示した図である。
【図14】親ノードが変更された後のツリー表示画面の一例である。
【図15】生成される再取得プログラムの一例である。
【図16】情報再取得プログラムの生成処理の手順を示したフローチャートである。
【図17】木構造生成処理(ノード抽出処理)の手順を示したフローチャートである。
【図18】木構造生成処理(エッジ抽出処理)の手順を示したフローチャートである。
【符号の説明】
【0121】
10 情報再取得手順生成装置
11 記憶手段
11a メッセージ履歴
11b 再取得手順定義情報
12 関係解析手段
13 関係提示・修正手段
14 再取得手順定義手段
【技術分野】
【0001】
本発明は情報再取得手順生成プログラム及び情報再取得手順生成装置に関し、特に所望の情報を再取得する手順の生成処理のための情報再取得手順生成プログラム及びその情報再取得手順生成装置に関する。
【背景技術】
【0002】
ワールドワイドウェブ(World Wide Web;以下、WWWとする)上には、さまざまな情報を提供する膨大な数のWebページが公開されている。この中から所望の情報を提供するWebページを検出するための手法として、一般的には検索エンジンが用いられる。また、Webページはリンクによって関連付けられており、リンクを辿って所望のWebページを見つけることもできる。こうして検出されたWebページには、後で再取得したい情報もある。その要求を満たす最も単純な方法の一例として、Webブラウザのブックマーク機能がある。ブックマーク機能とは、何度も訪れるWebサイトのURL(Uniform Resource Locator)を指定により予め記憶しておく機能である。そして、ある操作を行うと記憶されたURLを読み出し、そのURLのWebサイトから、Webページを再取得するという方法である。
【0003】
しかし、Webページの中には、ブックマーク機能のように単純な情報再取得手順では再取得できないものも多くある。例えば、フォーム認識により認証を受けた後でないと取得できないようにアクセス制限がかけられているWebページがある。このようなWebページでは、取得するためには複数のリクエストが必要となるが、ブックマーク機能では特定のURLを1回だけリクエストすることしかできないため、再取得できない。
【0004】
そこで、操作履歴に基づいて、ユーザが行ったリクエストを順次再現するための通信定義情報を生成しておき、この通信定義情報に基づいてリクエストを順次送ることによって、ユーザが再取得を望むWebページを提供する情報の再生処理方法がある(例えば、特許文献1参照)。
【特許文献1】特開2006−190033号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかし、従来の操作履歴に基づいて情報再取得手順を生成する情報再取得手順生成方法では、定義される情報の再取得手順にはユーザが実際に行った手順がそのまま反映されるため、最適化されていないという問題点があった。
【0006】
例えば、「A」「B」「C」「D」という4つのWebページがあり、「A」と「B」、「B」と「C」、「B」と「D」はリンクでつながっている場合について考える。「C」を開くためには、「A」、「B」、「C」の順にリクエストする必要がある。同様に、「D」を開くためには、「A」、「B」、「D」の順にリクエストする必要がある。この場合、「D」を開くための最短の操作手順は、リクエストを矢印で表し、「→A→B→D」となる。しかし、ユーザは常に最短の操作手順で呼び出しを行うとは限らない。例えば、ユーザが途中で「C」を参照し、続いて「D」を参照し、操作履歴に「→A→B→C→B→D」と残っていたとする。この場合、「D」を再取得ための操作手順は、操作履歴に基づいて、「→A→B→C→B→D」という手順が登録されてしまう。
【0007】
このように従来の方法では、よりリクエスト回数の少ない手順での操作が定義される最適化がなされていなかった。
本発明はこのような点に鑑みてなされたものであり、情報を再取得するユーザの操作を簡略化するとともに、最適化された情報再取得手順を生成することが可能な情報再取得手順生成プログラム及び情報再取得手順生成装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、コンピュータを、関係解析手段及び再取得手順定義手段として機能させ、所望の情報を再取得する手順の生成処理のための情報再取得手順生成プログラムが提供される。関係解析手段は、所定の情報が提供されるまでに前記所定の情報の提供元装置との間で交換された一連のメッセージを記録したメッセージ履歴が格納される記憶手段から、メッセージ履歴を読み出し、メッセージ履歴に基づいてメッセージによって取得される情報の遷移関係を解析する。再取得手順定義手段は、関係解析手段によって解析された情報の遷移関係に基づいて、所定の情報が再取得されるまでに必要なメッセージを生成して送付する再取得手順を定義する。
【0009】
このような情報再取得手順生成プログラムをコンピュータが実行すると、所定の情報を取得するために情報提供元の装置との間で交換されたメッセージを記録したメッセージ履歴に基づき、メッセージによって取得された情報の遷移関係が解析される。そして、解析によって得られた情報の遷移関係に基づいて、所定の情報が再取得されるまでに必要なメッセージを生成して送付する再取得手順が定義される。
【0010】
また、上記課題を解決するために、上記処理手段と同様に機能する処理手段を有する情報再取得手順生成装置が提供される。
【発明の効果】
【0011】
開示の情報再取得手順生成プログラム及び情報再取得手順生成装置によれば、所望の情報を取得するために交換されたメッセージ履歴が解析され、その情報を取得するために必要なメッセージを生成し、順に送付する再取得手順が定義される。定義される手順は、解析に基づいて、必要なメッセージのみを送付する手順に最適化されている。定義された再取得手順を実行させれば、所望の情報を自動的に再取得することが可能となり、情報を再取得するユーザの操作を簡略化することができる。
【発明を実施するための最良の形態】
【0012】
以下、本発明の実施の形態を図面を参照して説明する。まず、実施の形態に適用される発明の概念について説明し、その後、実施の形態の具体的な内容を説明する。
図1は、実施の形態に適用される発明の概念図である。
【0013】
情報再取得手順生成装置10は、記憶手段11、関係解析手段12、関係提示・修正手段13及び再取得手順定義手段14を有する。各処理手段は、コンピュータが、情報再取得手順生成プログラムを実行することにより、その処理機能を実現する。
【0014】
記憶手段11には、メッセージ履歴11aと、再取得手順定義情報11bとが格納されている。メッセージ履歴11aには、所定の情報が提供されるまでに、この所定の情報の情報提供元装置と、情報の提供を受けるクライアントとの間で交換された一連のメッセージが時系列に記録されている。メッセージには、クライアント側が情報を要求するリクエストと、これに対する情報提供元装置のレスポンスとが含まれる。再取得手順定義情報11bには、再取得手順定義手段14が生成した所定の情報を再取得するために必要な最小限のメッセージが、送付順とともに定義されている。
【0015】
関係解析手段12は、記憶手段11に格納されるメッセージ履歴11aを読み出し、メッセージに基づいて、情報の遷移関係を解析する。例えば、所定の情報を呼び出すメッセージをノード、そのノード間の遷移関係をエッジとする木構造によって、情報の遷移関係を表す。ノードは、そこに分類されたメッセージを情報の提供元装置との間で交換することによって得られる情報と対応付けることができ、情報の遷移関係は、ノード(またはメッセージ)の遷移関係と言い換えることができる。
【0016】
メッセージ履歴11aには、ユーザの行った操作がそのまま記録されており、必ずしも最適な手順で情報の取得がなされているわけではない。しかし、同一もしくは同様の情報を取得する場合には、メッセージ履歴11aには同一または類似するメッセージが記録される。そこで、メッセージ履歴11aに記録される個々のメッセージを構文解析し、メッセージに共通的に出現する特定データを抽出する。そして抽出された特定データに基づいて、類似または同一のメッセージをまとめ、1つのノードを生成する。具体的には、構文解析によって、メッセージのURLや、リクエストメソッド、レスポンスステータスコードなどを特定データとして抽出する。そして、抽出された特定データによってメッセージを分類し、分類ごとにノードを付与する。そして、同じノードに分類されたうちの1つを代表メッセージに設定し、ノード情報を生成する。次に、得られたノード情報に基づいて、代表メッセージを呼び出したメッセージの属するノードを特定し、親ノードとする。こうして特定された親ノードと子ノードの親子関係をエッジ情報にまとめる。こうして、同一もしくは類似するメッセージ群をノード、そのノード間の遷移関係をエッジとする木構造で表現されるメッセージの遷移関係情報が生成される。遷移関係情報は、関係提示・修正手段13へ出力される。
【0017】
関係提示・修正手段13は、遷移関係情報を取得し、これに基づいてメッセージの遷移関係を表す関係図をユーザに提示する。また、修正要求があれば関係図及び遷移関係情報を修正する。例えば、関係解析手段12において抽出されたノードとエッジに基づいて、メッセージの遷移関係を木構造の関係図で表示装置に表示させる。ユーザは、表示された関係図でメッセージの遷移関係を確認することができる。そしてメッセージの遷移関係を変更したいときは、修正要求を行う。関係提示・修正手段13は、ユーザからの修正要求を受け付けると、要求に基づいて情報の遷移関係を修正し、これに合わせて修正された関係図を再提示する。このような手順が繰り返されて、木構造で表現されるメッセージの遷移関係情報が確定される。
【0018】
再取得手順定義手段14は、関係提示・修正手段13によって確定されたメッセージの遷移関係情報に基づいて、所定の情報を再取得するために必要なメッセージを特定し、再取得手順を定義する。例えば、ノードの遷移関係が木構造で表されているときは、所望の情報に対応するノードへ至る経路を辿り、親ノードを順次検出する。そして、親ノードに対応する代表メッセージに基づき、所望の情報を再取得するまでのメッセージと送付順を手順として定義し、再取得手順定義情報11bを生成する。例えば、再取得手順定義情報11bは、所望の情報を再取得するための処理をコンピュータに実行させる情報再取得プログラムの形式で生成される。
【0019】
このような構成の情報再取得手順生成装置10によれば、関係解析手段12は、記憶手段11に格納されるメッセージ履歴11aを読み出し、記録されるメッセージを構文解析して類似または同一のメッセージ群を1つのノードにまとめる。各ノードには、代表となる代表メッセージを設定しておく。また、各ノードの親ノードを検出して、ノードの遷移関係(木構造)をエッジとして抽出する。こうして、ノードとエッジとによって表されるメッセージの遷移関係情報が生成される。関係提示・修正手段13は、メッセージの遷移関係情報に基づき、メッセージの遷移関係を木構造で表現した関係図をユーザに提示する。これにより、ユーザは、視覚的にメッセージの遷移関係を把握することができる。そして、修正したい場合には、修正要求を行う。ユーザによる修正要求があった場合には、関係提示・修正手段13が、修正要求に応じてメッセージの遷移関係情報を修正し、ユーザに提示している関係図を更新する。そして、再取得手順定義手段14は、こうして修正された遷移関係情報に基づき、所望の情報を再取得する再取得手順を定義し、再取得手順定義情報11bが生成される。再取得手順定義情報11bは、その処理手順をコンピュータに実行させるプログラムの形式で生成されてもよい。
【0020】
こうして生成された再取得手順定義に従って情報取得装置がリクエストを順次行うか、あるいは、情報取得装置に生成された処理プログラムを実行させることにより、所望の情報を自動的に再取得することが可能となる。これにより、情報を再取得しようとするユーザの操作を簡略化することができる。なお、類似もしくは同一のメッセージは1つのノードにまとめられ、メッセージの遷移関係はノード単位で解析される。したがって、同一もしくは類似の情報が繰り返し取得されたような場合でも、遷移関係情報には、1つのノードの遷移関係として定義される。これにより、遷移関係情報に基づいて、所望の情報を得るために最適な手順を提供することが可能となる。
【0021】
以下、実施の形態を、Webページを再取得するための手順生成に適用した場合を例に図面を参照して詳細に説明する。
図2は、実施の形態の情報取得システムの構成を示した図である。
【0022】
情報取得システムでは、Webページの再取得手順を生成する情報再取得手順生成装置100と、Webページを要求するクライアント200、Webページを提供する提供元装置であるWWWサーバ300、及びクライアント200とWWWサーバ300との間のメッセージを中継する中継装置400が、ネットワークを介して接続する。
【0023】
WWWサーバ300は、予め決められた形式に従って送られてきたWebページを要求するメッセージに基づいて、対応するWebページの情報を要求元に提供する。
クライアント200は、WWWサーバ300からWebページの提供を受ける装置で、WWWブラウザ210及び再取得プログラム(記憶部)220を有する。WWWブラウザ210は、Webページを閲覧するための処理を行う。予め決められた所定の手順でWWWサーバ300へアクセスし、所望のWebページの情報を取得し、これを図示しない出力装置に表示・再生する。このとき、このWebページを再取得する手順を実行するための再取得プログラムがあったときは、再取得プログラム(記憶部)220に格納されるこの再取得プログラムを実行し、Webページの情報を再取得する。再取得プログラム(記憶部)220には、情報再取得手順生成装置100が生成した、任意のWebページを再取得する手順を実行するための再取得プログラムが格納される。また、クライアント200では再取得プログラムを実装せず、情報再取得手順生成装置100に再取得を依頼して情報を得るようにしてもよい。
【0024】
中継装置400は、メッセージを中継する中継処理部410及びメッセージ履歴を記憶するメッセージ履歴(記憶部)420を有する。中継処理部410は、クライアント200から取得したリクエストをWWWサーバ300へ中継し、WWWサーバ300からのレスポンスをクライアント200へ返す。このとき、中継したリクエスト及びレスポンスに関する情報をメッセージ履歴として残し、メッセージ履歴(記憶部)420に格納する。情報再取得手順生成装置100から要求があったときには、メッセージ履歴(記憶部)420からメッセージ履歴を読み出して提供する。
【0025】
情報再取得手順生成装置100は、各種情報を記憶する記憶部110、メッセージの遷移関係を表す木構造を生成する木構造生成部120、木構造の表示と訂正を行う木構造表示・修正部130、及び情報再取得手順を実行するプログラムを生成するプログラム生成部140を有する。
【0026】
記憶部110は、ノード情報表111、エッジ情報表112及び再取得プログラム113を記憶する。ノード情報表111及びエッジ情報表112は、メッセージの遷移関係情報であり、メッセージの遷移関係を木構造で表したときのノードとエッジに関する情報である。ノード情報表111には、Webページを取得するメッセージの遷移関係を表す木構造において、各ノードに抽出されたメッセージに関する情報が記録される。エッジ情報表112には、各ノードの親ノードを指定する情報が記録される。再取得プログラム113は、指定されたWebページを再取得する再取得手順を実行させるために生成されたプログラムである。各情報の詳細は後述する。
【0027】
木構造生成部120は、ノード抽出部121及びエッジ抽出部122を有し、関係解析手段として機能する。Webページの遷移関係を木構造で捉えるため、メッセージ履歴に記録されるメッセージを解析し、ノード抽出部121はノード、エッジ抽出部122はエッジを抽出する。
【0028】
ノード抽出部121は、中継装置400からメッセージ履歴を取得し、構文解析を行って特定データを抽出する。例えば、特定データとしてURLなどを抽出し、URLが同じメッセージなど、似たもの同士を1つのノードに分類する。ここでは、URL、リクエストメソッド、レスポンスステータスコード、レスポンスのメディアタイプ、HTMLの場合にはレスポンスタイトル、のすべてが一致するか否かで分類する。そして分類ごとにノードIDを付与し、ノード情報表111に登録する。また、各分類(ノード)に属するメッセージから1つのメッセージを選択し、代表メッセージとする。例えば、ノードに分類されたメッセージ群のうち、最初に発行されたメッセージを代表メッセージに設定する。
【0029】
エッジ抽出部122は、ノード抽出部121で抽出されたノード間の関係を解析する。そして、各ノードについて、代表メッセージの発行元となったメッセージを推測し、それが含まれるノードを親ノードに設定する。すなわち、その間にエッジを引く。各ノードには、必ず1つの親ノードを持つように設定を行う。メッセージ履歴から親ノードが検出されない場合は、仮想的な空白ページ(実際には呼び出されないページ)を親ノードとする。なお、発行元の推測は、メッセージ履歴を当該代表メッセージよりも前に発行されたメッセージを順に検索して行う。また、推測の方法は様々な方法があり、システムに応じて適宜選択される。例えば、発行リクエストの特定データが、発行元のレスポンスに含まれているか否かで判定する方法が考えられる。また、発行リクエストのURLが発行元候補のレスポンスのリンク群に含まれているか否かで判定することもできる。他に、発行リクエストのメソッド、リファラ(referer)ヘッダ、ボディ(パラメータ)、発行元候補のレスポンスのロケーションヘッダ、フォーム、発行リクエストのURLなどを判定材料に使うことが考えられる。ここでは、発行元のURLが発行元候補のレスポンスのロケーションヘッダ及びリンク群に含まれているか否かで判定する。抽出されたエッジは、エッジ情報表112に登録する。これにより、空白ページを根とするメッセージ、もしくはメッセージによって呼び出されるWebページの遷移関係がエッジ情報表112に登録される。
【0030】
木構造表示・修正部130は、木構造表示部131及び木構造修正部132を有し、関係提示・修正手段として機能する。木構造表示部131は、Webページ(メッセージ)の遷移関係を木構造で表示し、木構造修正部132は、入力指示に基づいてその木構造を修正する。木構造表示部131は、木構造生成部120で生成されたノード情報表111及びエッジ情報表112に基づいてメッセージ遷移関係を木構造で表示する。ここで、木構造は、GUI(Graphical User Interface)を用いて表示される。木構造修正部132は、ユーザからの指示が入力されると、指示に従ってノード情報表111及びエッジ情報表112を書き換える。
【0031】
プログラム生成部140は、再取得手順定義手段として機能する。木構造表示・修正部130で修正されたメッセージの遷移関係を表すノード情報表111及びエッジ情報表112に基づいて、所望のWebページを再取得するための手順を定義し、再取得プログラムを生成する。例えば、木構造の根ノードから、目的の情報を取得するメッセージが含まれるノードまでを順に辿り、ノードの代表メッセージに基づくリクエストメッセージを生成し、生成されたリクエストメッセージを順に送付する手順を定義する。
【0032】
ここで、情報再取得手順生成装置100のハードウェア構成について説明する。
図3は、情報再取得手順生成装置のハードウェア構成例を示すブロック図である。
情報再取得手順生成装置100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス107を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、及び通信インタフェース106が接続されている。
【0033】
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションのプログラムが格納される。グラフィック処理装置104には、モニタ108が接続されており、CPU101からの命令に従って画像をモニタ108の画面に表示させる。入力インタフェース105には、キーボード109aやマウス109bが接続されており、キーボード109aやマウス109bから送られてくる信号を、バス107を介してCPU101に送信する。通信インタフェース106は、ネットワーク500に接続されており、ネットワーク500を介してクライアント200や、中継装置400との間でデータの送受信を行う。
【0034】
このようなハードウェア構成によって、情報再取得手順生成装置100の処理機能を実現することができる。なお、図3には、情報再取得手順生成装置100のハードウェア構成を示したが、クライアント200、WWWサーバ300及び中継装置400のハードウェア構成も同様である。
【0035】
次に、このような情報再取得手順生成装置100の動作及び情報再取得手順生成方法について、具体例を用いて説明する。
情報再取得手順生成装置100は、Webページ要求時に、クライアント200とWWWサーバ300間で交換されたメッセージが記憶されるメッセージ履歴に基づいてユーザが所望するWebページの再取得手順を解析する。
【0036】
図4及び図5は、メッセージ履歴の一例を示した図である。図4は、メッセージ履歴の一例の前半部分、図5は、メッセージ履歴の一例の後半部分を示している。
なお、図は、HTTP(Hyper Text Transfer Protocol)を用いたメッセージの履歴である。便宜的に、図4をHTTPメッセージ履歴4200a、図5をHTTPメッセージ履歴4200bとするが、連続する1つのテーブルである。
【0037】
HTTPメッセージ履歴4200a,4200bは、メッセージが得られた順に従ってリクエスト4201と、レスポンス4202の組が記録されている。
順番は、メッセージが得られた時間的順序であり、番号が若いほど前の時間に得られたメッセージになる。リクエスト4201には、クライアント200からWWWサーバ300に向けて送信されたリクエストメッセージが記録される。レスポンス4202には、リクエストに対しWWWサーバ300からクライアント200に向けて送信されたレスポンスメッセージが記録される。
【0038】
図の例では、クライアント200からのログイン要求(POST /login HTTP/1.0)が受け付けられ(順番1)、その後、メニュー要求(GET /menu HTTP/1.0)が発行されている(順番2)。そして、メニューから機能1の情報の要求(GET /f1 HTTP/1.0)が発行されている(順番3)。さらに、再び、メニュー要求(GET /menu HTTP/1.0)が発行され(順番4)、その後、メニューから機能2の情報の要求(GET /f2 HTTP/1.0)が発行されている(順番5)。なお、()内の順番は、HTTPメッセージ履歴4200a,4200bの「順番」に相当する。
【0039】
木構造生成部120では、このHTTPメッセージ履歴4200のリクエスト4201のリクエストメッセージと、レスポンス4202のレスポンスメッセージとを順番に解析し、メッセージの遷移関係を表した木構造情報(ノード情報表111とエッジ情報表112)を得る。
【0040】
ノード抽出部121は、リクエストメッセージとレスポンスメッセージから特定データを抽出し、比較してメッセージをノードに分類する。ここでは、URL、リクエストメソッド、レスポンスステータスコード、レスポンスのメディアタイプ、レスポンスのタイトル(HTMLの場合)、が全て一致するものを同じノードに分類する。具体的には、まず、メッセージを識別するために、それぞれのメッセージにメッセージIDを付与する。図の例では、HTTPメッセージ履歴4200aの順番1にメッセージIDのM1、順番2にM2、HTTPメッセージ履歴4200bの順番3にM3、順番4にM4、順番5にM5を割り当てる。続いて、M1からM5をノードに分類する。M2とM4は、URL(http://example.com/menu)、リクエストメソッド(GET)、レスポンスステータスコード(200)、が共通している。一部図示していない、レスポンスのメディアタイプ(text/html)及びタイトル(メニュー)も共通しているとすると、これらは同じノードに分類される。一方、残りのM1,M3,M5はURLなどがそれぞれ異なるため、互いに異なるノードに分類される。
【0041】
こうして割り当てられたノードを登録したノード情報表111が生成される。図6は、ノード情報表の一例である。
ノード情報表1110は、HTTPメッセージ履歴4200a,4200bを上記のように解析して生成されたものである。ノード情報表1110は、メッセージID1111、リクエスト1112、レスポンス1113、ノードID1114、及び代表1115の各情報項目が登録される。
【0042】
メッセージID1111は、HTTPメッセージ履歴4200a,4200bに記録される時刻順に設定されるメッセージ識別符号である。リクエスト1112は、HTTPメッセージ履歴4200a,4200bに記録されるリクエストメッセージである。レスポンス1113は、HTTPメッセージ履歴4200a,4200bに記録されるレスポンスメッセージである。ノードID1114には、ノード抽出部121によって付与されたノードIDが登録される。代表1115には、各メッセージが代表メッセージであるか否かが登録される。図の例では、代表にのみ丸(○)が登録されている。なお、代表メッセージは、同じノードに分類されたメッセージのうち、メッセージIDの番号が最も若いもの(時間的に最も早い時点で発行されたもの)が選択される。図の例では、メッセージM1はノードN1に分類された代表メッセージである。メッセージM2とメッセージM4は、ともにノードN2に分類されるが、代表メッセージはメッセージIDの番号の若いメッセージM2になっている。同様に、メッセージM3はノードN3、メッセージM5はノードN4に分類され、いずれも代表メッセージに設定されている。
【0043】
続いてエッジ抽出部122が、ノードの親子関係を推測する。まず、空白ページに相当するノードのノードIDを「N0」とする。このノードN0は、どのメッセージも分類されないノードである。次に、ノードN0以外の各ノードの親ノードを決め、その情報をエッジ情報表112に登録する。
【0044】
ここでは、発行リクエストのURLが、発行元候補のレスポンスのロケーションヘッダ及びリンク群に含まれているか否かで判定する。また、発行元候補は、このリクエストよりも前に発行されたメッセージとする。図の例では、ノードN1に分類されたメッセージM1は、それより前に発行されたメッセージがないので、親ノードはノードN0が設定される。次に、ノードN2に分類されたメッセージM2の発行元候補は、メッセージM2より前に発行されたメッセージM1(ノードN1)となる。ここで、メッセージM2の発行リクエストのURL(http://example.com/menu)と、発行元候補のレスポンスのロケーションヘッダに含まれているURLとは同じである。そこで、ノードN2の親ノードには、ノードN1が設定される。なお、もしここで該当するメッセージがなかった場合、親ノードにはノードN0が設定される。以下、順次解析が行われ、各ノードの親ノードが決定され、エッジ情報表112が生成される。
【0045】
図7は、エッジ情報表の一例である。
エッジ情報表1120は、ノード情報表1110に登録される各ノードについて、上記のように解析して決定された親ノードが登録される。エッジ情報表1120には、ノードID1121と、そのノードID1121に登録されるノードに対する親ノードの親ノードID1122と、が登録される。ノードID1121に登録されるIDは、ノード情報表1110のノードID1114に登録されるIDと同じである。親ノードID1122には、ノードID1121に登録されるノードの発行元である親ノードのノードIDが登録される。図の例では、ノードN1の親ノードはノードN0、ノードN2の親ノードはノードN1、そして、ノードN3とノードN4の親ノードはノードN2という親子関係を有することが登録されている。
【0046】
こうして木構造生成部120によってノード情報表1110と、エッジ情報表1120とが生成される。続いて、木構造表示・修正部130によってメッセージ遷移関係を表す木構造の表示と修正処理が行われる。木構造表示部131では、ノード情報表111とエッジ情報表112とに基づいて、メッセージ遷移関係を表すツリー表示画面を表示する。
【0047】
図8は、ツリー表示画面の一例である。図の例は、ノード情報表1111と、エッジ情報表1112とに基づく表示画面である。
ツリー表示画面610には、各ノードを表すアイコン、ノードN0(611)、ノードN1(612)、ノードN2(613)、ノードN3(614)、ノードN4(615)が各ノードの親子関係に基づいて配置されている。以下の説明では、ノード名とともに()内に番号が付されているときは、番号によって指示される表示画面上のアイコンを表す。図の例では、最も左に木構造の頂点となる根ノード、ノードN0(611)が表示される。そして、ノードN0を親ノードとする子ノードがその右隣に配置される。ここでは、ノードN0を親ノードとするノードN1(612)が配置される。同様に、エッジ情報表1120に基づき、ノードN1を親ノードとするノードN2(613)、ノードN2を親ノードとするノードN3(614)と、ノードN4(615)が順に配置される。また、エッジ情報表1110に示された親ノードから子ノードの方向にエッジ(図では矢印)が表示される。
【0048】
また、ノードN0(611)を除くノードのアイコンについては、そこに分類されているメッセージ群をリスト形式(コンボボックス)で表示し、代表メッセージを一番上に表示しておく。このアイコンは、メッセージの種別に応じて形や色を変えてもよい。図の例では、代表メッセージがHTMLの場合には四角形で表示され、それ以外の場合は楕円で表示されている。
【0049】
ノードN0(611)を除く各ノードのアイコンはマウスなどで選択できるようになっており、選択されると、選択中のノードの代表メッセージの詳細を別途表示する。図の例では、ノードN2(613)が選択され、その代表メッセージの詳細画面616が表示されている。ここでは、代表メッセージM2によって取得されたHTMLファイルに基づく表示画面が表示されている。これにより、メッセージによって取得された情報の把握を容易にすることができる。
【0050】
このように、メッセージの遷移関係を木構造で表示することにより、ユーザはメッセージの遷移関係を容易に把握することができる。図の例では、ノードN3の情報は、ノードN1、ノードN2と遷移することによって得られることがわかる。言い換えれば、代表メッセージM1、代表メッセージM2、代表メッセージM3の順にメッセージが送付されて、メッセージM3に対応する情報が得られることがわかる。同様に、ノードN4の情報も、ノードN1、ノードN2と遷移することによって得られることがわかる。メッセージの送付手順としては、代表メッセージM1、代表メッセージM2、代表メッセージM5の順になる。
【0051】
次に、この木構造を修正する場合について説明する。ここでは、ノードが選択されたとき、各ノードに対する修正操作用のメニュー(以下、修正メニューとする)を、ノード上でのポップアップメニューとして表示する。ただし、ノードN0は修正することができない。修正メニュー617では、「このノード以下を削除」「このノードのメッセージを移動」「このノードの親ノードを変更」という修正指示を選択することができる。
【0052】
以下、それぞれの修正指示が選択された場合について説明する。
まず、修正メニュー617から、「このノードのメッセージを移動」が選択された場合について説明する。
【0053】
メッセージの移動が選択されると、メッセージの分類(振り分けられたノード)を修正するため、メッセージ分類修正画面が表示される。図9は、メッセージ分類修正画面の一例を示した図である。
【0054】
メッセージ分類修正画面620は、図8のツリー表示画面610においてノードN2が選択され、「このノードのメッセージを移動」が選択されたときの表示画面である。
メッセージ分類修正画面620には、移動するメッセージ欄621と、移動先欄622、及びOKボタン623が表示される。移動するメッセージ欄621には、移動が指定されたノードに属するメッセージのIDが表示される。この例では、ノードN2に分類されたメッセージM2とメッセージM4が表示されている。移動先欄622には、メッセージの移動先として指定可能なノードの一覧が表示される。この例では、既存のノードN1、N3、N4と、新しいノードが表示されている。新しいノードには、まだ使用されていないノードIDが設定される。図の例では、新しいノードとしてN5が設定されている。ユーザは、移動するメッセージ欄621から移動対象のメッセージ、移動先欄622からその移動先を選択する。そして、OKボタン623が操作されると、指定されたメッセージの移動が実行される。
【0055】
例えば、移動するメッセージがメッセージM2、移動先が新しいノード(N5)に指定されたとする。これにより、ノードN2に分類されていたメッセージM2はノードN5へ移動する。ノード情報表1110のメッセージM2に関するノードIDは「N5」に更新され、メッセージM2はノードN5の代表メッセージになる。これに伴って、ノードN2の代表メッセージは、メッセージM4になり、代表1115の該当欄が更新される。また、エッジ情報表1120のノードID1121には、「N5」が追加される。このとき、ノードN5の親ノードは、移動したメッセージM2が分類されていた元のノードN2の親ノードを引き継がれ、「N1」が登録される。
【0056】
さらに、木構造表示部131は、修正されたノード情報表1110及びエッジ情報表1120に基づいて、ツリー表示画面610を、修正後の木構造の状態に更新する。
図10は、メッセージの分類が修正された後のツリー表示画面の一例である。
【0057】
ツリー表示画面630は、ツリー表示画面610の状態でメッセージM2の分類がノードN2からノードN5に修正された後の状態を表すツリー表示画面である。ツリー表示画面610から変更されていないものは、同じ番号を付す。
【0058】
修正後のツリー表示画面630では、新たに追加されたノードN5(631)が、ノードN1(612)の下に配置される。ノードN5の代表メッセージは、メッセージM2である。これに伴って、ノードN2(632)は、代表メッセージがメッセージM4に変更されている。それ以外の表示は変更されていない。
【0059】
このように、GUI(Graphical User Interface)の操作を行うだけで、簡単にメッセージ遷移関係を修正することができる。
メッセージの分類の修正は、ノードN0を除くすべてのノードのメッセージについて行うことができる。他の例として、ノードN3(614)に分類されるメッセージM3を、ノードN4へ移動させる場合について説明する。ユーザは、図8に示したツリー表示画面610において、ノードN3を選択し、修正メニュー617から「このノードのメッセージを移動」を選択する。選択に応じて、ノードN3に関するメッセージ分類修正画面620が表示されるので、メッセージM3を選択し、ノードN4へ移動する指示を行う。これにより、ノード情報表1110のメッセージM3のノードID1114は、「N4」に修正される。ノードN4の代表メッセージには、既にメッセージM5が登録されているので、代表メッセージには設定されない。なお、エッジ情報表1120には、修正個所はない。
【0060】
木構造表示部131は、修正されたノード情報表1110及びエッジ情報表1120に基づいて、ツリー表示画面610を、修正後の木構造の状態に更新する。
図11は、メッセージの分類が修正された後のツリー表示画面の他の例である。
【0061】
ツリー表示画面640は、ツリー表示画面610の状態でメッセージM3の分類がノードN3からノードN4に修正された後の状態を表したツリー表示画面である。ツリー表示画面610から変更のないものは、同じ番号が付されている。
【0062】
ツリー表示画面640では、メッセージがなくなったノードN3が表示画面から削除され、ノードN2(613)の子ノードは、ノードN4(641)のみになる。ノードN4の代表メッセージはメッセージM5であるのでノードN4(641)には表示されない。移動されたメッセージM3は、メッセージ一覧画面642が選択されたときに表示される。なお、代表メッセージは、任意に設定することができ、メッセージM3を代表メッセージとすることもGUIを用いた簡単な操作で実行できる。
【0063】
次に、修正メニュー617から「このノード以下を削除」が選択された場合について説明する。メッセージの削除が選択されると、選択されたノードと、そのノードの子ノードなど、選択されたノードから派生するノード(以下、子孫ノードとする)はすべて削除される。
【0064】
例えば、図8に示したツリー表示画面610においてノードN2(613)が選択された状態で、修正メニュー617で「このノード以下を削除」が選択された場合で説明する。この場合、選択されたノードN2(613)と、その子孫ノードであるノードN3(614)及びノードN4(615)と、が削除される。例えば、エッジ情報表1120のノードID1121から、選択されたノードN2が削除される。次に、親ノードID1122の値が「N2」であるノードID1121が検索される。ここでは、「N3」「N4」が検出されるので、これらのノードもノードID1121から削除する。続いて、削除したノードN3及びノードN4を親ノードとするノードが検索される。ここでは、該当するノードは検索されないので、削除処理は終了する。これに伴ってノード情報表1110も修正される。
【0065】
さらに、木構造表示部131は、修正されたノード情報表1110及びエッジ情報表1120に基づいて、ツリー表示画面610を、修正後の木構造の状態に更新する。
図12は、ノードが削除された後のツリー表示画面の一例である。
【0066】
ツリー表示画面650は、ツリー表示画面610の状態でノードN2以下のノードが削除された後の状態を表したツリー表示画面である。ツリー表示画面610から変化のないものは、同じ番号が付されている。
【0067】
ツリー表示画面650では、削除が選択されたノードN2より上のノードN0(611)と、ノードN1(612)の表示は変化ない。しかし、選択されたノードN2、その子孫ノードのノードN3及びノードN4が削除され、そのアイコンが表示されていた領域651には、何も表示されない。
【0068】
このように、あるノードの削除が指定されると、エッジを辿って子孫ノード、すなわち、指定されたノードのメッセージ発行後でなければ発行されないメッセージに関するノードも自動的に削除される。
【0069】
次に、修正メニュー617から「このノードの親ノードを変更」が選択された場合について説明する。親ノードの変更が選択されると、ノード間の関係を修正するため、親ノードの変更画面が表示される。図13は、親ノードの変更画面の一例を示した図である。
【0070】
親ノードの変更画面660は、図8のツリー表示画面610においてノードN2が選択され、「このノードの親ノードを変更」が選択されたときの表示画面である。
親ノードの変更画面660には、親ノード欄661及びOKボタン662が表示される。親ノード欄661には、登録可能なノード候補として、全てのノードから、現在選択されているノードと、そのノードの子孫群を除いたノードがリスト形式で表示される。ユーザは、その中から新しく親ノードとして設定するノードIDを選択する。続いてOKボタン662が操作されると、親ノードが指定されたノードに変更される。
【0071】
図の例では、選択されたノードN2の親ノードを、ノードN0に変更するという指示がされている。この場合、エッジ情報表1120のノードN2に対応する親ノードID1122が「N1」から「N0」に修正される。ノード情報表1110には、修正個所はない。
【0072】
木構造表示部131は、修正されたエッジ情報表1120及びノード情報表1110に基づいて、ツリー表示画面を表示する。
図14は、親ノードが変更された後のツリー表示画面の一例である。
【0073】
ツリー表示画面670は、ツリー表示画面610の状態でノードN2の親ノードがノードN1からノードN0に変更された後の状態を表すツリー表示画面である。ツリー表示画面610と同じ状態のものは、同じ番号が付されている。
【0074】
ツリー表示画面670では、ノードN2(671)と、ノードN2(671)を親ノードとするノードN3(672)及びN4(673)とが、ノードN0(611)を親ノードとして表示される。
【0075】
このように、親ノードが修正されたときも、選択されたノードとともに、このノードの子孫のノードが自動的に移動される。
以上のような操作を繰り返して修正されたノード情報表1110及びエッジ情報表1120は、メッセージ遷移関係を示す情報として、プログラム生成部140に送られる。
【0076】
プログラム生成部140では、ノード情報表1110及びエッジ情報表1120によって表されるメッセージの遷移関係を取得し、各ノードの代表メッセージを再取得するようなプログラムを生成する。あるノードの再取得プログラムは、まずそのノードの親ノードを再取得する。そして、その最後のメッセージを元にリクエストを生成する。ただし、親ノードが「N0」のときは、親ノードの再取得はせず、単に代表メッセージのリクエストをそのまま再利用する。最後のレスポンスを元に、再取得したメッセージのリクエストを生成する方法にはさまざまな方法が考えられる。例えば、再取得したメッセージに相当するリンクを探し、リクエストを生成する。実施の形態では、再取得したいメッセージに相当するリンクを探し、リクエストを生成する。また、生成したリクエストのレスポンスについて、元のレスポンス(代表メッセージのレスポンス)と似ていなかったら、エラーメッセージを表示するプログラムを生成する。レスポンス同士が似ているか否かを判定するには、様々な方法が考えられる。例えば、レスポンス中の特定のデータを比較することが考えられる。よく知られている方法として、ステータスコードを比較する方法がある。実施の形態では、ステータスコード、メディアタイプ、(HTMLの場合には)タイトル、の1つでも違えば似ていないと判定する。
【0077】
図15は、生成される再取得プログラムの一例である。
再取得プログラム700の流れを示す。再取得プログラム700では、まず、getMessage(NodeId)によって、ノード情報表111から、引数のノード(NodeId)の代表メッセージを取得する(701)。続いて、getParentIdによってエッジ情報表112から引数のノードの親ノードIDを取得する(702)。結果がnullであれば、代表メッセージのリクエストを再利用する(703)。結果がnullでなければ、最後のレスポンス(第1引数)を元に、再取得したメッセージのリクエストを生成する(704)。また、サーバと通信を行ってレスポンスが元のレスポンスと似ていないときは、エラーメッセージを表示する処理も行う(705)。
【0078】
このように、ノード情報表111及びエッジ情報表112に基づいて所望のメッセージを再取得するための再取得プログラム700が生成される。この再取得プログラム700を用いれば、所望のWebページの情報を簡単に取得することができる。
【0079】
以下、実施の形態の情報再取得プログラムの生成処理の手順についてフローチャートを用いて説明する。
図16は、情報再取得プログラムの生成処理の手順を示したフローチャートである。
【0080】
[ステップS01] Webページの遷移関係を表す木構造を生成する木構造生成処理のうち、メッセージ履歴からノードを抽出するノード抽出処理を行う。詳細は後述する。
[ステップS02] Webページの遷移関係を表す木構造を生成する木構造生成処理のうち、エッジを抽出するエッジ抽出処理を行う。詳細は後述する。
【0081】
[ステップS03] ステップS01で抽出されたノード情報と、ステップS02で抽出されたエッジ情報に基づいて、Webページの遷移関係を示す木構造を表示装置に表示する処理を行う。
【0082】
[ステップS04] 表示装置によりWebページの遷移関係を確認したユーザから修正指示が入力されたかどうかをチェックする。修正指示が入力されたときは、処理をステップS05に進める。修正指示が入力されなかったときは、処理をステップS06に進める。
【0083】
[ステップS05] 木構造の修正指示が入力されたときは、修正指示に従って木構造を修正する。さらに、修正された木構造に応じてノード情報表111及びエッジ情報表112の情報も更新する。その後、処理をステップS03に戻し、更新されたノード情報表111及びエッジ情報表112に基づく木構造表示の処理からの手順を繰り返す。
【0084】
[ステップS06] 修正指示が入力されなかったときは、ユーザが木構造を確定したかどうかを判定する。確定したときは、処理をステップS07へ進める。確定していないときは、処理をステップS04に戻し、修正指示のチェックからの処理を行う。
【0085】
[ステップS07] ユーザが木構造を確定したときには、確定された木構造に基づいて所望のWebページを取得するための再取得プログラムを生成する。
以上の処理手順が実行されることにより、メッセージ履歴に基づいてユーザが希望するWebページを再取得するための再取得プログラムが生成される。クライアント200がこの再取得プログラムを実行することにより、ユーザは、簡略な操作で所望のWebページを参照することができる。
【0086】
次に、木構造生成処理の詳細な手順を、ノード抽出処理、エッジ抽出処理の順に説明する。
図17は、木構造生成処理(ノード抽出処理)の手順を示したフローチャートである。
【0087】
[ステップS101] 中継装置400によって記録されたクライアント200とWWWサーバ300との間で交換されたHTTPメッセージに関するHTTPメッセージ履歴を読み出す。HTTPメッセージ履歴は、所定の期間に記録されたものを全て読み出しておく。
【0088】
[ステップS102] ステップS101で読み出したメッセージ履歴に記録されるメッセージについて、ステップS109までのループ1の処理を行う。
[ステップS103] メッセージ履歴に記録されたメッセージの組(リクエストとレスポンス)のうち、未処理のものを1つ取り出し、メッセージIDを付与してノード情報表111に登録する。メッセージIDは、例えば、メッセージを識別する識別文字Mと、発行順につけられた番号とを組み合わせて構成する。この時点で、ノード情報表111には、メッセージIDに関連付けて、メッセージ履歴から抽出されたリクエストメッセージ及びレスポンスメッセージが登録される。
【0089】
[ステップS104] ステップS103で抽出されたメッセージを構文解析し、特定データを抽出する。例えば、URLやリクエストメソッドを抽出する。
[ステップS105] 抽出された特定データに基づき、このメッセージと同一または類似するメッセージが分類されるノードが既に登録されているかどうか判定する。抽出された特定データと、ノード情報表111に既に登録されるメッセージの特定データとを照合し、同じものがあるかどうかを判定する。同じものがあれば、既登録のメッセージデータと同じノードに分類することができる。同じノードに分類できなければ、処理をステップS106に進める。同じノードに分類できれば、処理をステップS108に進める。
【0090】
[ステップS106] 同じノードに分類できないときは、新しいノードIDをこのメッセージに付与する。付与したノードIDは、このメッセージに対応するノード情報表111のノードID欄に登録する。
【0091】
[ステップS107] さらに、このメッセージを新ノードの代表メッセージに設定する。このメッセージに対応するノード情報表111の代表欄に、「代表(○)」を設定し、処理をステップS109に進める。
【0092】
[ステップS108] 既登録のノード(既ノード)と同じノードに分類できるときは、既ノードのノードIDを付与する。付与したノードIDは、このメッセージに対応するノード情報表111のノードID欄に登録する。
【0093】
[ステップS109] 読み出したメッセージ履歴に記録される全メッセージの処理が終了したかどうかを判定する。全メッセージの処理が終了していないと判定されたときは、処理をステップS102に戻す。終了したと判定されたときは、ループ1を終了し、次ステップへ処理を進める。
【0094】
[ステップS110] 生成されたノード情報表111を出力する。
以上の処理手順が実行されることにより、メッセージ履歴に記録されるメッセージにノードが付与され、ノード情報表111に登録される。
【0095】
図18は、木構造生成処理(エッジ抽出処理)の手順を示したフローチャートである。
[ステップS201] ノード抽出部121によって生成されたノード情報表111の受付処理を行う。
【0096】
[ステップS202] 受け付けたノード情報表111に登録された全てのメッセージの処理が終了するまで、未処理の対象メッセージを1つ選択し、ステップS210までのループ2処理を行う。
【0097】
[ステップS203] 選択された対象メッセージが、代表メッセージであるかどうかを判定する。ノード情報表111の代表欄を参照して判定を行う。代表メッセージであるときは、処理をステップS204に進める。代表メッセージでないときは、処理をステップS210に進める。
【0098】
[ステップS204] この代表メッセージを対象2メッセージと名付ける。対象2メッセージは、その時点において親ノード候補としているノードのメッセージである。すなわち、開始時点では、対象メッセージのノードを仮に親ノード候補としている。
【0099】
[ステップS205] 現時点で対象2メッセージと名付けられている対象2メッセージよりも時間的に前に発行されたメッセージがあるかどうかを判定する。ノード情報表111は、メッセージの発行順にメッセージIDが付与されるので、対象2メッセージよりもメッセージIDの値が若い番号を有するかどうかにより判定する。前のメッセージがないときは、処理をステップS206に進める。前のメッセージがあるときは、処理をステップS207に進める。
【0100】
[ステップS206] 対象2メッセージよりも前のメッセージがないときは、他のメッセージに応じて発行されたものではないので、親ノードをノードN0とし、エッジ情報224の該当する箇所に登録し、処理をステップS210に進める。
【0101】
[ステップS207] 対象2メッセージよりも前のメッセージがあるときは、この前のメッセージを改めて対象2メッセージと名付けなおす。すなわち、親ノード候補を時間的に前に発行されたメッセージのノードにする。
【0102】
[ステップS208] 対象メッセージ(ステップS202で選択されているメッセージ)と、ステップS207で抽出された対象2メッセージ(親ノード候補)とを解析する。そして、対象メッセージは、対象2メッセージから発行されたと推測されるかどうかを判定する。対象メッセージが対象2メッセージから発行されたと推測されたときは、処理をステップS209に進める。対象メッセージが対象2メッセージから発行されたと推測されないときは、処理をステップS205に戻し、さらに前のメッセージをチェックする。
【0103】
[ステップS209] 対象メッセージが、対象2メッセージから発行されたと推測されるときは、対象メッセージの属するノードの親ノードを、対象2メッセージが属するノードとする。エッジ情報表112の対象メッセージの属するノードに対応する親ノードの欄に、対象2メッセージのノードを登録し、処理をステップS210に進める。
【0104】
[ステップS210] ノード情報表111に登録された全てのメッセージの処理が終了したかどうかを判定する。終了していないと判定されたときは、ステップS202に戻って処理を繰り返す。終了したと判定されたときは、ループ2を終了し、処理をステップS211に進める。
【0105】
[ステップS211] 生成されたエッジ情報表112を出力する。
以上の処理手順が実行されることにより、ノード情報表111に基づいて、ノード間の遷移関係が解析され、エッジ情報表112が生成される。
【0106】
このように、メッセージ履歴を解析することにより、Webページの遷移関係を木構造で表現することができる。このとき、Webページを呼び出すためのメッセージは、同一または類似するメッセージが1つのノードに分類され、その後遷移関係が解析されるので、所定のWebページを呼び出すために本当に必要なメッセージのみを木構造上に残すことができる。この木構造に基づいてWebページの再取得手順を生成すれば、所定のWebページを呼び出すために必要なリクエストメッセージのみに最適化されたWebページの再取得手順を生成することができる。
【0107】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、情報再取得手順生成装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。
【0108】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD(Digital Versatile Disc)、CD−ROM(Compact Disc Read Only Memory)などの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0109】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0110】
以上の実施の形態を含む実施形態に関し、更に以下の付記を開示する。
(付記1) 所望の情報を再取得する手順の生成処理のための情報再取得手順生成プログラムにおいて、
コンピュータを、
所定の情報が提供されるまでに前記所定の情報の提供元装置との間で交換された一連のメッセージを記録したメッセージ履歴が格納される記憶手段から前記メッセージ履歴を読み出し、前記メッセージ履歴に基づいて前記メッセージによって取得される情報の遷移関係を解析する関係解析手段、
前記関係解析手段によって解析された前記情報の遷移関係に基づいて、前記所定の情報が再取得されるまでに必要な前記メッセージを生成して送付する再取得手順を定義する再取得手順定義手段、
として機能させることを特徴とする情報再取得手順生成プログラム。
【0111】
(付記2) 前記関係解析手段に、前記メッセージ履歴に記録される前記メッセージを構文解析し、前記メッセージに含まれる特定データが類似する前記メッセージをまとめてノードとして抽出するとともに、前記ノード間の遷移関係をエッジとして抽出し、前記情報の遷移関係を前記ノードと前記エッジとを用いた木構造で表現させる、
ことを特徴とする付記1記載の情報再取得手順生成プログラム。
【0112】
(付記3) 前記関係解析手段に、抽出された前記ノードを順に対象ノードに設定し、前記対象ノードに含まれる対象メッセージよりも前に発行されたメッセージを順に解析して、前記対象メッセージの発行元と判定される発行元候補を検索し、検索された前記発行元候補の属するノードを前記対象ノードの親ノードに設定する処理を繰り返し、抽出された前記ノードすべてに対し前記親ノードを設定することを特徴とする付記1記載の情報再取得手順生成プログラム。
【0113】
(付記4) 前記関係解析手段に、前記特定データとして、前記メッセージに含まれるURL、リクエストメソッド、レスポンスステータスコード、レスポンスのメディアタイプを含む他のメッセージとの共通情報を抽出させる、ことを特徴とする付記1記載の情報再取得手順生成プログラム。
【0114】
(付記5) 前記関係解析手段に、同じノードに分類される複数の前記メッセージのうち、1つのメッセージを代表メッセージに選択させ、
前記再取得手順定義手段に、前記代表メッセージを再取得する手順を定義させる、
ことを特徴とする付記1記載の情報再取得手順生成プログラム。
【0115】
(付記6) 前記コンピュータを、さらに、
前記関係解析手段によって解析された前記情報の遷移関係を前記ノードと前記エッジを用いた木構造で表現した関係図を生成して前記ユーザに提示するとともに、前記ユーザからの修正指示が入力されたときは前記修正指示に基づいて前記情報の遷移関係及び前記関係図を修正する関係提示・修正手段、
として機能させることを特徴とする付記2記載の情報再取得手順生成プログラム。
【0116】
(付記7) 前記関係提示・修正手段に、前記ノードが選択され、前記エッジによって表される前記ノード間の遷移関係を修正する指示が入力されたときは、選択された前記ノードに対する子孫ノードを含めて前記ノード間の遷移関係を修正させる、ことを特徴とする付記6記載の情報再取得手順生成プログラム。
【0117】
(付記8) 前記再取得手順定義手段に、前記木構造の根ノードから、目的の情報を取得するための前記メッセージが含まれる前記ノードまでを順に辿り、前記ノードの代表メッセージに基づくリクエストメッセージを生成し、生成された前記リクエストメッセージを順に送付する処理をコンピュータに実行させる再取得プログラムを生成させる、
ことを特徴とする付記1記載の情報再取得手順生成プログラム。
【0118】
(付記9) 前記再取得手順定義手段に、前記メッセージ履歴から前記リクエストメッセージに対応するレスポンスメッセージを抽出して前記レスポンスメッセージから特定データを抽出し、前記再取得手順で定義された前記リクエストメッセージからのレスポンスに前記特定データが含まれるか否かを判定するエラー処理を定義し、前記エラー処理を前記コンピュータに実行させる再取得プログラムを生成させる、
ことを特徴とする付記8記載の情報再取得手順生成プログラム。
【0119】
(付記10) 所望の情報を再取得する手順を生成する情報再取得手順生成装置において、
所定の情報が提供されるまでに前記所定の情報の提供元装置との間で交換された一連のメッセージを記録したメッセージ履歴が格納される記憶手段と、
前記記憶手段から前記メッセージ履歴を読み出し、前記メッセージ履歴に基づいて前記メッセージによって取得される情報の遷移関係を解析する関係解析手段と、
前記関係解析手段によって解析された前記情報の遷移関係に基づいて、前記所定の情報が再取得されるまでに必要な前記メッセージを生成して送付する再取得手順を定義する再取得手順定義手段と、
を有することを特徴とする情報再取得手順生成装置。
【図面の簡単な説明】
【0120】
【図1】実施の形態に適用される発明の概念図である。
【図2】実施の形態の情報取得システムの構成を示した図である。
【図3】情報再取得手順生成装置のハードウェア構成例を示すブロック図である。
【図4】メッセージ履歴の一例の前半部分を示した図である。
【図5】メッセージ履歴の一例の後半部分を示した図である。
【図6】ノード情報表の一例である。
【図7】エッジ情報表の一例である。
【図8】ツリー表示画面の一例である。
【図9】メッセージ分類修正画面の一例を示した図である。
【図10】メッセージの分類が修正された後のツリー表示画面の一例である。
【図11】メッセージの分類が修正された後のツリー表示画面の他の例である。
【図12】ノードが削除された後のツリー表示画面の一例である。
【図13】親ノードの変更画面の一例を示した図である。
【図14】親ノードが変更された後のツリー表示画面の一例である。
【図15】生成される再取得プログラムの一例である。
【図16】情報再取得プログラムの生成処理の手順を示したフローチャートである。
【図17】木構造生成処理(ノード抽出処理)の手順を示したフローチャートである。
【図18】木構造生成処理(エッジ抽出処理)の手順を示したフローチャートである。
【符号の説明】
【0121】
10 情報再取得手順生成装置
11 記憶手段
11a メッセージ履歴
11b 再取得手順定義情報
12 関係解析手段
13 関係提示・修正手段
14 再取得手順定義手段
【特許請求の範囲】
【請求項1】
所望の情報を再取得する手順の生成処理のための情報再取得手順生成プログラムにおいて、
コンピュータを、
所定の情報が提供されるまでに前記所定の情報の提供元装置との間で交換された一連のメッセージを記録したメッセージ履歴が格納される記憶手段から前記メッセージ履歴を読み出し、前記メッセージ履歴に基づいて前記メッセージによって取得される情報の遷移関係を解析する関係解析手段、
前記関係解析手段によって解析された前記情報の遷移関係に基づいて、前記所定の情報が再取得されるまでに必要な前記メッセージを生成して送付する再取得手順を定義する再取得手順定義手段、
として機能させることを特徴とする情報再取得手順生成プログラム。
【請求項2】
前記関係解析手段に、前記メッセージ履歴に記録される前記メッセージを構文解析し、前記メッセージに含まれる特定データが類似する前記メッセージをまとめてノードとして抽出するとともに、前記ノード間の遷移関係をエッジとして抽出し、前記情報の遷移関係を前記ノードと前記エッジとを用いた木構造で表現させる、
ことを特徴とする請求項1記載の情報再取得手順生成プログラム。
【請求項3】
前記コンピュータを、さらに、
前記関係解析手段によって解析された前記情報の遷移関係を前記ノードと前記エッジを用いた木構造で表現した関係図を生成して前記ユーザに提示するとともに、前記ユーザからの修正指示が入力されたときは前記修正指示に基づいて前記情報の遷移関係及び前記関係図を修正する関係提示・修正手段、
として機能させることを特徴とする請求項2記載の情報再取得手順生成プログラム。
【請求項4】
前記関係提示・修正手段に、前記ノードが選択され、前記エッジによって表される前記ノード間の遷移関係を修正する指示が入力されたときは、選択された前記ノードに対する子孫ノードを含めて前記ノード間の遷移関係を修正させる、ことを特徴とする請求項3記載の情報再取得手順生成プログラム。
【請求項5】
所望の情報を再取得する手順を生成する情報再取得手順生成装置において、
所定の情報が提供されるまでに前記所定の情報の提供元装置との間で交換された一連のメッセージを記録したメッセージ履歴が格納される記憶手段と、
前記記憶手段から前記メッセージ履歴を読み出し、前記メッセージ履歴に基づいて前記メッセージによって取得される情報の遷移関係を解析する関係解析手段と、
前記関係解析手段によって解析された前記情報の遷移関係に基づいて、前記所定の情報が再取得されるまでに必要な前記メッセージを生成して送付する再取得手順を定義する再取得手順定義手段と、
を有することを特徴とする情報再取得手順生成装置。
【請求項1】
所望の情報を再取得する手順の生成処理のための情報再取得手順生成プログラムにおいて、
コンピュータを、
所定の情報が提供されるまでに前記所定の情報の提供元装置との間で交換された一連のメッセージを記録したメッセージ履歴が格納される記憶手段から前記メッセージ履歴を読み出し、前記メッセージ履歴に基づいて前記メッセージによって取得される情報の遷移関係を解析する関係解析手段、
前記関係解析手段によって解析された前記情報の遷移関係に基づいて、前記所定の情報が再取得されるまでに必要な前記メッセージを生成して送付する再取得手順を定義する再取得手順定義手段、
として機能させることを特徴とする情報再取得手順生成プログラム。
【請求項2】
前記関係解析手段に、前記メッセージ履歴に記録される前記メッセージを構文解析し、前記メッセージに含まれる特定データが類似する前記メッセージをまとめてノードとして抽出するとともに、前記ノード間の遷移関係をエッジとして抽出し、前記情報の遷移関係を前記ノードと前記エッジとを用いた木構造で表現させる、
ことを特徴とする請求項1記載の情報再取得手順生成プログラム。
【請求項3】
前記コンピュータを、さらに、
前記関係解析手段によって解析された前記情報の遷移関係を前記ノードと前記エッジを用いた木構造で表現した関係図を生成して前記ユーザに提示するとともに、前記ユーザからの修正指示が入力されたときは前記修正指示に基づいて前記情報の遷移関係及び前記関係図を修正する関係提示・修正手段、
として機能させることを特徴とする請求項2記載の情報再取得手順生成プログラム。
【請求項4】
前記関係提示・修正手段に、前記ノードが選択され、前記エッジによって表される前記ノード間の遷移関係を修正する指示が入力されたときは、選択された前記ノードに対する子孫ノードを含めて前記ノード間の遷移関係を修正させる、ことを特徴とする請求項3記載の情報再取得手順生成プログラム。
【請求項5】
所望の情報を再取得する手順を生成する情報再取得手順生成装置において、
所定の情報が提供されるまでに前記所定の情報の提供元装置との間で交換された一連のメッセージを記録したメッセージ履歴が格納される記憶手段と、
前記記憶手段から前記メッセージ履歴を読み出し、前記メッセージ履歴に基づいて前記メッセージによって取得される情報の遷移関係を解析する関係解析手段と、
前記関係解析手段によって解析された前記情報の遷移関係に基づいて、前記所定の情報が再取得されるまでに必要な前記メッセージを生成して送付する再取得手順を定義する再取得手順定義手段と、
を有することを特徴とする情報再取得手順生成装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2010−55483(P2010−55483A)
【公開日】平成22年3月11日(2010.3.11)
【国際特許分類】
【出願番号】特願2008−221440(P2008−221440)
【出願日】平成20年8月29日(2008.8.29)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成22年3月11日(2010.3.11)
【国際特許分類】
【出願日】平成20年8月29日(2008.8.29)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]