(57)【要約】【課題】サーバ側で動的に生成されるオブジェクトやウェブページをも対象に含み、ウェブアプリケーションを生成し、システムの変更や再構成を支援する。【解決手段】分類処理部４０により、ウェブアプリケーションを実行することによって取得される静的なＨＴＭＬコンテンツの構成を解析し分類する。そして、この分類結果を用いて、テンプレート抽出部５０により、ウェブアプリケーションにおける動的なＨＴＭＬコンテンツのテンプレートを抽出する。また、分類処理部４０の分類結果と、静的なＨＴＭＬコンテンツを取得する際に得られるアクセス情報とに基づいて、遷移抽出部６０により、処理対象であるウェブアプリケーションの遷移情報を抽出する。そして、抽出されたテンプレートと遷移情報とに基づいて、モデル生成部７０により、ウェブアプリケーションのモデルを生成するＨＴＭＬ文書をレンダリングして画像を生成する。【選択図】        図２
2005004428.tif 000002
【特許請求の範囲】
【請求項１】
所定のウェブアプリケーションを実行することによって取得される静的なウェブコンテンツの構成を解析して当該ウェブアプリケーションにおける動的なウェブコンテンツのテンプレートを抽出するテンプレート抽出部と、
前記静的なウェブコンテンツを取得する際に得られるアクセス情報に基づいて、前記ウェブアプリケーションの遷移情報を抽出する遷移抽出部と、
前記テンプレート抽出部にて抽出されたテンプレートと前記遷移抽出部にて抽出された遷移情報とに基づいて前記ウェブアプリケーションのモデルを生成するモデル生成部と
を備えることを特徴とするウェブアプリケーションモデル生成装置。
【請求項２】
前記テンプレート抽出部は、複数の前記静的なウェブコンテンツを比較して、各ウェブコンテンツに共通する固定部分をウェブコンテンツ全体のテンプレートとして抽出し、特定の表示形式が繰り返し用いられている場合に当該繰り返し用いられている部分を表示形式のテンプレートとして抽出することを特徴とする請求項１に記載のウェブアプリケーションモデル生成装置。
【請求項３】
複数の前記静的なウェブコンテンツを、当該ウェブコンテンツの視覚的な特徴と論理的な特徴とに基づいて分類する分類処理部をさらに備え、
前記テンプレート抽出部は、前記分類処理部にて分類された前記ウェブコンテンツのグループごとにテンプレートの抽出を行うことを特徴とする請求項１に記載のウェブアプリケーションモデル生成装置。
【請求項４】
複数のウェブコンテンツを当該ウェブコンテンツ間の類似度に応じて分類する分類手段と、
前記分類手段にて分類された前記ウェブコンテンツのグループごとに、当該ウェブコンテンツの構成を解析するウェブコンテンツ解析手段と、
前記ウェブコンテンツに記述された前記グループ間での呼び出し情報を遷移情報として抽出する遷移抽出手段と、
前記ウェブコンテンツ解析手段による解析結果と前記遷移抽出手段にて抽出された遷移情報とに基づいてウェブアプリケーションのモデルを生成するモデル生成部と
を備えることを特徴とするウェブアプリケーションモデル生成装置。
【請求項５】
前記分類手段は、前記複数のウェブコンテンツに対し、構造が類似するか否か及び役割が類似するか否かという判断基準の一方または双方を用いて分類を行うことを特徴とする請求項４に記載のウェブアプリケーションモデル生成装置。
【請求項６】
前記ウェブコンテンツ解析手段は、同一グループに含まれる前記ウェブコンテンツの構成に関して、各ウェブコンテンツで共通に用いられる固定部分と、状況により変更が生じる部分とを識別し、さらに当該状況により変化が生じる部分のうちで、特定の表示形式が繰り返し利用されている部分とその他の部分とを識別することを特徴とする請求項４に記載のウェブアプリケーションモデル生成装置。
【請求項７】
モデルを生成しようとする対象である前記ウェブアプリケーションを実行する実行支援手段と、
前記実行支援手段による動作のログを取得するログ取得手段とをさらに備え、
前記分類手段は、前記実行支援手段による前記ウェブアプリケーションの実行により取得された静的なウェブコンテンツを分類し、
前記遷移抽出手段は、前記ログ取得手段にて取得された前記ログと前記ウェブコンテンツ解析手段による解析結果とに基づいて前記遷移情報を取得することを特徴とする請求項４に記載のウェブアプリケーションモデル生成装置。
【請求項８】
複数のウェブコンテンツの記述を比較し、構造が同一または類似する部分と、役割が同一または類似する部分とを判断して、当該ウェブコンテンツ間の類似度を計算する類似度計算部と、
前記類似度計算部にて計算された類似度に基づいて前記複数のウェブコンテンツを分類する分類実行部と
を備えることを特徴とするウェブコンテンツ分類装置。
【請求項９】
前記分類実行部は、相互間の類似度が予め設定された閾値以内である複数の前記ウェブコンテンツを同一のグループに分類することを特徴とする請求項８に記載のウェブコンテンツ分類装置。
【請求項１０】
前記分類実行部は、前記類似度計算部によって計算された各ウェブコンテンツの類似度を示す情報を出力し、所定のウェブコンテンツを包含するグループの指示の入力を受け付けるユーザインターフェイス手段を備え、当該ユーザインターフェイス手段にて入力した指示に基づいて当該ウェブコンテンツを分類することを特徴とする請求項８に記載のウェブコンテンツ分類装置。
【請求項１１】
前記ユーザインターフェイス手段は、前記類似度計算部によって計算された各ウェブコンテンツの類似度を、当該ウェブコンテンツを表すシンボルにより表現した画面を生成し、所定のディスプレイ装置に表示させることを特徴とする請求項１０に記載のウェブコンテンツ分類装置。
【請求項１２】
コンピュータを用いて、ウェブアプリケーションの生成を支援するウェブアプリケーション生成支援方法であって、
所定のウェブアプリケーションを実行することによって取得される静的なウェブコンテンツの構成を解析して当該ウェブアプリケーションにおける動的なウェブコンテンツのテンプレートを抽出し、所定の記憶手段に格納するステップと、
前記静的なウェブコンテンツを取得する際に得られるアクセス情報に基づいて、前記ウェブアプリケーションの遷移情報を抽出し、所定の記憶手段に格納するステップと、
前記記憶手段に格納された前記テンプレート及び遷移情報に基づいて前記ウェブアプリケーションのモデルを生成するステップと
を含むことを特徴とするウェブアプリケーション生成支援方法。
【請求項１３】
コンピュータを用いて、ウェブアプリケーションの生成を支援するウェブアプリケーション生成支援方法であって、
複数の静的ウェブコンテンツを当該静的ウェブコンテンツ間の類似度に応じて分類し、分類結果を所定の記憶手段に格納する第１のステップと、
前記記憶手段に格納された分類結果における前記静的ウェブコンテンツのグループごとに、当該静的ウェブコンテンツの構成を解析し、解析結果を所定の記憶手段に格納する第２のステップと、
前記静的ウェブコンテンツに記述された前記グループ間での呼び出しＵＲＩを遷移情報として抽出し、所定の記憶手段に格納する第３のステップと、
前記記憶手段に格納された前記解析結果及び前記遷移情報に基づいてウェブアプリケーションのモデルを生成する第４のステップと
を含むことを特徴とするウェブアプリケーション生成支援方法。
【請求項１４】
前記第１のステップは、
複数の静的ウェブコンテンツの記述を比較し、構造が同一または類似する部分と、役割が同一または類似する部分とを判断して、当該静的ウェブコンテンツ間の類似度を計算するステップと、
計算された類似度に基づいて前記複数の静的ウェブコンテンツを分類するステップと
を含むことを特徴とする請求項１３に記載のウェブアプリケーション生成支援方法。
【請求項１５】
コンピュータを制御して、ウェブアプリケーションの生成を支援するプログラムであって、
所定のウェブアプリケーションを実行することによって取得される静的なウェブコンテンツの構成を解析して当該ウェブアプリケーションにおける動的なウェブコンテンツのテンプレートを抽出し、所定の記憶手段に格納する第１の処理と、
前記静的なウェブコンテンツを取得する際に得られるアクセス情報に基づいて、前記ウェブアプリケーションの遷移情報を抽出し、所定の記憶手段に格納する第２の処理と、
前記記憶手段に格納された前記テンプレート及び遷移情報に基づいて前記ウェブアプリケーションのモデルを生成する第３の処理と
を前記コンピュータに実行させることを特徴とするプログラム。
【請求項１６】
前記第１の処理では、複数の前記静的なウェブコンテンツを比較して、各ウェブコンテンツに共通する固定部分をウェブコンテンツ全体のテンプレートとして抽出し、特定の表示形式が繰り返し用いられている場合に当該繰り返し用いられている部分を表示形式のテンプレートとして抽出することを特徴とする請求項１５に記載のプログラム。
【請求項１７】
前記第１の処理では、所定のウェブアプリケーションを実行することによって取得される複数の前記静的なウェブコンテンツを、当該ウェブコンテンツの視覚的な特徴と論理的な特徴とに基づいて分類し、分類された前記ウェブコンテンツのグループごとにテンプレートの抽出を行うことを特徴とする請求項１５に記載のプログラム。
【請求項１８】
コンピュータを制御して、ウェブアプリケーションの生成を支援するプログラムであって、
複数のウェブコンテンツを当該ウェブコンテンツ間の類似度に応じて分類し、分類結果を所定の記憶手段に格納する第１の処理と、
前記記憶手段に格納された分類結果における前記ウェブコンテンツのグループごとに、当該ウェブコンテンツの構成を解析し、解析結果を所定の記憶手段に格納する第２の処理と、
前記ウェブコンテンツに記述された前記グループ間での呼び出し情報を遷移情報として抽出し、所定の記憶手段に格納する第３の処理と、
前記記憶手段に格納された前記解析結果及び前記遷移情報に基づいてウェブアプリケーションのモデルを生成する第４の処理と
を前記コンピュータに実行させることを特徴とするプログラム。
【請求項１９】
前記第１の処理は、
複数のウェブコンテンツの記述を比較し、構造が同一または類似する部分と、役割が同一または類似する部分とを判断して、当該ウェブコンテンツ間の類似度を計算する処理と、
計算された類似度に基づいて前記複数のウェブコンテンツを分類する処理と
を含むことを特徴とする請求項１８に記載のプログラム。
【請求項２０】
前記第２の処理では、同一グループに含まれる前記ウェブコンテンツの構成に関して、各ウェブコンテンツで共通に用いられる固定部分と、状況により変更が生じる部分とを識別し、さらに当該状況により変化が生じる部分のうちで、特定の表示形式が繰り返し利用されている部分とその他の部分とを識別することを特徴とする請求項１８に記載のプログラム。
【請求項２１】
請求項１５から請求項２０のいずれかに記載のプログラムを、コンピュータが読み取り可能に記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ウェブアプリケーションに対してリバースエンジニアリングを行い、ウェブアプリケーションの構築を支援する方法及びシステムに関する。
【０００２】
【従来の技術】
インターネット等のＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）ベースのネットワーク上で利用されるウェブアプリケーションを構成するシステムは、近年、大規模化かつ複雑化している。そのため、ウェブアプリケーションの管理者がシステム全体を把握しメンテナンスすることは、多大な手間を要する。しかしながら、システム構築時には想定しなかった要求項目が生じたために、既存のシステムを再構成する必要が生じる場合や、既存のシステムに新たに要求項目を加えるために、既存のシステムを生かしつつ変更を加えなければならない場合がある。
【０００３】
従来、既存のシステムを新規システムに再構成するための技術として、ウェブアプリケーションの仕様書に記述されている情報に基づいてシステムを再構成する手法がある（例えば、特許文献１、２参照）。また、ウェブサイトのリバースエンジニアリングにより、生成されるウェブコンテンツやオブジェクトの特定、相互関連の発見など、ウェブサイト全体の構成の把握を行い、ウェブサイト管理者がウェブサイト全体の機能を理解してメンテナンスする方法がある（例えば、非特許文献１参照）。さらにまた、サーバ上で動作するプログラムを解析することによっても、既存のシステムを変更して再構成することが可能である（例えば、非特許文献２参照）。
【０００４】
【特許文献１】
特開２００１−１３４４２３号公報
【特許文献２】
特開２００１−２７９４６号公報
【特許文献３】
特開２００２−２４５０６８号公報
【非特許文献１】
Ｓｃｏｔｔ  Ｔｉｌｌｅｙ，Ｓｈｉｈｏｎｇ  Ｈｕａｎｇ著，“Ｅｖａｌｕａｔｉｎｇ  ｔｈｅ  Ｒｅｖｅｒｓｅ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｃａｐａｂｉｌｉｔｉｅｓ  ｏｆ  Ｗｅｂ  Ｔｏｏｌｓ  ｆｏｒ  Ｕｎｄｅｒｓｔａｎｄｉｎｇ  Ｓｉｔｅ  Ｃｏｎｔｅｎｔ  ａｎｄ  Ｓｔｒｕｃｔｕｒｅ：  Ａ  Ｃａｓｅ  Ｓｔｕｄｙ”，Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２３ｒｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｓｏｆｔｗａｒｅ  Ｅｎｇｉｎｅｅｒｉｎｇ（ＩＣＳＥ２００１：  Ｍａｙ  １２−１９，  ２００１；  Ｔｏｒｏｎｔｏ，  Ｃａｎａｄａ），ｐ．５１４−５２３，Ｌｏｓ  Ａｌａｍｉｔｏｓ，ＣＡ：  ＩＥＥＥ  Ｃｏｍｐｕｔｅｒ  Ｓｏｃｉｅｔｙ  Ｐｒｅｓｓ，２００１
【非特許文献２】
Ａｈｍｅｄ  Ｅ．  Ｈａｓｓａｎ  ａｎｄ  Ｒｉｃｈａｒｄ  Ｃ．  Ｈｏｌｔ著，“Ａｒｃｈｉｔｅｃｔｕｒｅ  ｒｅｃｏｖｅｒｙ  ｏｆ  ｗｅｂ  ａｐｐｌｉｃａｔｉｏｎｓ”，Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２４ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｓｏｆｔｗａｒｅ  Ｅｎｇｉｎｅｅｒｉｎｇ（ＩＣＳＥ２００２），ｐ．３４９−３５９
【非特許文献３】
“Ｔｈｅ  ”３ＤＭ”  ＸＭＬ  ３−ｗａｙ  ｍｅｒｇｉｎｇ  ａｎｄ  ｄｉｆｆｅｒｅｎｃｉｎｇ  ｔｏｏｌ”、［ｏｎｌｉｎｅ］、［平成１５年４月２０日検索］、インターネット＜ＵＲＬ：  ＨＹＰＥＲＬＩＮＫ  ”ｈｔｔｐ：／／ｗｗｗ．ｃｓ．ｈｕｔ．ｆｉ／￣ｃｔｌ／３ｄｍ／”  ｈｔｔｐ：／／ｗｗｗ．ｃｓ．ｈｕｔ．ｆｉ／￣ｃｔｌ／３ｄｍ／＞
【非特許文献４】
Ｓｕｄａｒｓｈａｎ  Ｓ．  Ｃｈａｗａｔｈｅ  ａｎｄ  Ａｎａｎｄ  Ｒａｊａｒａｍａｎ  ａｎｄ  Ｈｅｃｔｏｒ  Ｇａｒｃｉａ−Ｍｏｌｉｎａ  ａｎｄ  Ｊｅｎｎｉｆｅｒ  Ｗｉｄｏｍ著，“Ｃｈａｎｇｅ  Ｄｅｔｅｃｔｉｏｎ  ｉｎ  Ｈｉｅｒａｒｃｈｉｃａｌｌｙ  Ｓｔｒｕｃｔｕｒｅｄ  Ｉｎｆｏｒｍａｔｉｏｎ”，Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  １９９６  ＡＣＭ  ＳＩＧＭＯＤ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｍａｎａｇｅｍｅｎｔ  ｏｆ  Ｄａｔａ，ｐ．４９３−５０４
【０００５】
【発明が解決しようとする課題】
上記のように、従来から、既存のシステムを変更したり新規システムに再構成したりする作業を効率的に行うための種々の手法が提案されている。
しかしながら、特許文献１、２に開示された、ウェブアプリケーションの仕様書に記述されている情報に基づいてシステムを再構成する手法は、システムが解析可能な仕様書が存在し、当該仕様書が常に正しくメンテナンスされていることを前提としている。そして、現実に運用されているシステムでは、仕様書が必ず存在するとは限らない上、仕様書のメンテナンスに要する手間は無視できないものであるため、必ずしも現実的な手法とはいえない。
【０００６】
また、非特許文献１に開示された、ウェブサイトのリバースエンジニアリングにより、ウェブサイト管理者がウェブサイト全体の機能を理解してメンテナンスする方法は、静的なウェブコンテンツを対象にしたものである。昨今利用されているＪＳＰ（ＪａｖａＳｅｒｖｅｒ  Ｐａｇｅｓ：米国サン・マイクロシステムズ社の商標）、Ｓｅｒｖｌｅｔ等、サーバ側で動的に生成されるウェブコンテンツに関するリバースエンジニアリングは、未だ実現されていない。
【０００７】
さらに、非特許文献２に開示された、サーバ上で動作するプログラムを解析して既存のシステムを変更し再構成する手法は、データベースの操作などのサーバ側における処理も解析できるという利点があるものの、現実のウェブアプリケーションが様々な方法で開発されているため、それらの開発方法ごとに解析プログラムを作成しなければならないという問題がある。また、サーバ側においてソースコードなどが失われていた場合には、プログラムの解析が不可能になってしまう。
【０００８】
そこで本発明は、上記の問題に鑑み、サーバ側で動的に生成されるオブジェクトやウェブコンテンツを対象に含み、ウェブアプリケーションモデルを生成し、システムの変更や再構成を支援することを目的とする。
【０００９】
【課題を解決するための手段】
上記の目的を達成する本発明は、次のように構成されたウェブアプリケーションモデル生成装置として実現される。この装置は、所定のウェブアプリケーションを実行することによって取得される静的なウェブコンテンツの構成を解析して、このウェブアプリケーションにおける動的なウェブコンテンツのテンプレートを抽出するテンプレート抽出部と、静的なウェブコンテンツを取得する際に得られるアクセス情報に基づいて、処理対象であるウェブアプリケーションの遷移情報を抽出する遷移抽出部と、テンプレート抽出部にて抽出されたテンプレートと遷移抽出部にて抽出された遷移情報とに基づいてウェブアプリケーションのモデルを生成するモデル生成部とを備えることを特徴とする。
【００１０】
ここで詳細には、このテンプレート抽出部は、複数の静的なウェブコンテンツを比較して、各ウェブコンテンツに共通する固定部分をウェブコンテンツ全体のテンプレートとして抽出し、特定の表示形式が繰り返し用いられている場合に、この繰り返し用いられている部分を表示形式のテンプレートとして抽出する。
また、このウェブアプリケーションモデル生成装置は、複数の静的なウェブコンテンツを、このウェブコンテンツの視覚的な特徴と論理的な特徴とに基づいて分類する分類処理部をさらに備える構成とすることができる。この場合、テンプレート抽出部は、分類処理部にて分類されたウェブコンテンツのグループごとにテンプレートの抽出を行うことができる。
【００１１】
また、本発明による他のウェブアプリケーションモデル生成装置は、複数のウェブコンテンツを相互の類似度に応じて分類する分類手段と、この分類手段にて分類されたウェブコンテンツのグループごとに、ウェブコンテンツの構成を解析するウェブコンテンツ解析手段と、ウェブコンテンツに記述されたグループ間での呼び出し情報（例えばＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ））を遷移情報として抽出する遷移抽出手段と、ウェブコンテンツ解析手段による解析結果と遷移抽出手段にて抽出された遷移情報とに基づいてウェブアプリケーションのモデルを生成するモデル生成部とを備えることを特徴とする。
【００１２】
ここで、より好ましくは、この分類手段は、複数のウェブコンテンツに対し、構造が類似するか否か及び役割が類似するか否かという判断基準の一方または双方を用いて分類を行う。
また、ウェブコンテンツ解析手段は、同一グループに含まれるウェブコンテンツの構成に関して、各ウェブコンテンツで共通に用いられる固定部分と、状況により変更が生じる部分とを識別し、さらに状況により変化が生じる部分のうちで、特定の表示形式が繰り返し利用されている部分とその他の部分とを識別する。
【００１３】
さらに、このウェブアプリケーションモデル生成装置は、モデルを生成しようとする対象であるウェブアプリケーションを実行する実行支援手段と、この実行支援手段による動作のログを取得するログ取得手段とをさらに備える構成とすることができる。この場合、分類手段は、実行支援手段によるウェブアプリケーションの実行により取得された静的なウェブコンテンツを分類し、遷移抽出手段は、ログ取得手段にて取得されたログとウェブコンテンツ解析手段による解析結果とに基づいて遷移情報を取得する。
【００１４】
また本発明は、次のように構成されたウェブコンテンツ分類装置としても実現される。この装置は、複数のウェブコンテンツの記述を比較し、構造が同一または類似する部分と、役割が同一または類似する部分とを判断して、ウェブコンテンツ間の類似度を計算する類似度計算部と、この類似度計算部にて計算された類似度に基づいて複数のウェブコンテンツを分類する分類実行部とを備えることを特徴とする。
【００１５】
ここで詳細には、この分類実行部は、相互間の類似度が予め設定された閾値以内である複数のウェブコンテンツを同一のグループに分類する。あるいは、類似度計算部によって計算された各ウェブコンテンツの類似度を示す情報を出力し、所定のウェブコンテンツを包含するグループの指示の入力を受け付けるユーザインターフェイス手段を備え、このユーザインターフェイス手段にて入力した指示に基づいてウェブコンテンツを分類する。なお、このユーザインターフェイス手段は、類似度計算部によって計算された各ウェブコンテンツの類似度を、ウェブコンテンツを表すシンボルと類似度を表現した画面を生成し、所定のディスプレイ装置に表示させることができる。
【００１６】
また、上記の目的を達成する他の本発明は、コンピュータを用いて実行される、次のようなウェブアプリケーション生成支援方法としても実現される。すなわち、この方法は、所定のウェブアプリケーションを実行することによって取得される静的なウェブコンテンツの構成を解析して、このウェブアプリケーションにおける動的なウェブコンテンツのテンプレートを抽出し、所定の記憶手段に格納するステップと、静的なウェブコンテンツを取得する際に得られるアクセス情報に基づいて、このウェブアプリケーションの遷移情報を抽出し、所定の記憶手段に格納するステップと、記憶手段に格納されたテンプレート及び遷移情報に基づいてウェブアプリケーションのモデルを生成するステップとを含むことを特徴とする。
【００１７】
さらに、本発明による他のウェブアプリケーション生成支援方法は、複数の静的ウェブコンテンツを相互の類似度に応じて分類し、分類結果を所定の記憶手段に格納する第１のステップと、記憶手段に格納された分類結果における静的ウェブコンテンツのグループごとに、この静的ウェブコンテンツの構成を解析し、解析結果を所定の記憶手段に格納する第２のステップと、静的ウェブコンテンツに記述されたグループ間での呼び出し情報を遷移情報として抽出し、所定の記憶手段に格納する第３のステップと、記憶手段に格納された解析結果及び遷移情報に基づいてウェブアプリケーションのモデルを生成する第４のステップとを含むことを特徴とする。
【００１８】
また本発明は、コンピュータを制御して上述したウェブアプリケーションモデル生成装置やウェブコンテンツ分類装置として機能させるプログラム、または上記のウェブアプリケーション生成支援方法の各ステップに対応する処理をコンピュータに実行させるプログラムとしても実現される。このプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより、提供することができる。
【００１９】
【発明の実施の形態】
以下、添付図面に示す実施の形態に基づいて、この発明を詳細に説明する。
本発明は、動的に生成されるオブジェクトやウェブコンテンツを含むウェブアプリケーションのシステムに対するリバースエンジニアリングを実現する。これにより、当該ウェブアプリケーションの抽象的なモデル（以下、ウェブアプリケーションモデル）を生成して、システムの変更や再構成を支援する。
なお、本明細書の説明において、
「ウェブコンテンツ」は、ウェブ上で利用される電子的な文書、
「静的ウェブコンテンツ」は、呼び出しＵＲＩに対して常に同一のコンテンツを返すウェブコンテンツ（例えば、ＨＴＭＬ、ＸＭＬ、ＸＨＴＭＬ）、
「動的ウェブコンテンツ」は、呼び出しＵＲＩに対して複数の静的ウェブコンテンツを生成し得るウェブコンテンツ（例えば、ＪＳＰ、Ｓｅｒｖｌｅｔ）
をそれぞれ意味するものとする。
【００２０】
図１は、本実施の形態によるウェブアプリケーションモデル生成装置を実現するコンピュータ装置のハードウェア構成の例を模式的に示した図である。
図１に示すコンピュータ装置は、演算手段であるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：中央処理装置）１０１と、Ｍ／Ｂ（マザーボード）チップセット１０２及びＣＰＵバスを介してＣＰＵ１０１に接続されたメインメモリ１０３と、同じくＭ／Ｂチップセット１０２及びＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）を介してＣＰＵ１０１に接続されたビデオカード１０４と、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスを介してＭ／Ｂチップセット１０２に接続されたハードディスク１０５、ネットワークインターフェイス１０６と、さらにこのＰＣＩバスからブリッジ回路１０７及びＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バスなどの低速なバスを介してＭ／Ｂチップセット１０２に接続されたフロッピーディスクドライブ１０８及びキーボード／マウス１０９とを備える。
なお、図１は本実施の形態を実現するコンピュータ装置のハードウェア構成を例示するに過ぎず、本実施の形態を適用可能であれば、他の種々の構成を取ることができる。例えば、ビデオカード１０４を設ける代わりに、ビデオメモリのみを搭載し、ＣＰＵ１０１にてイメージデータを処理する構成としても良いし、外部記憶装置として、ＡＴＡ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ）やＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）などのインターフェイスを介してＣＤ−Ｒ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅｃｏｒｄａｂｌｅ）やＤＶＤ−ＲＡＭ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のドライブを設けても良い。
【００２１】
図２は、図１に示すようなコンピュータ装置にて実現される本実施の形態によるウェブアプリケーションモデル生成装置の機能構成を示す図である。
図２を参照すると、本実施の形態のウェブアプリケーションモデル生成装置は、処理対象であるウェブアプリケーションへのアクセスを支援するアクセス支援処理部１０と、当該ウェブアプリケーションへのアクセスにおけるログを取得する静的コンテンツ取得部２０及びアクセス情報取得部３０と、静的コンテンツ取得部２０にて取得された静的コンテンツ（ＨＴＭＬコンテンツ）を分類する分類処理部４０と、分類結果及びアクセスログに基づいてウェブアプリケーションモデルを生成するテンプレート抽出部５０、遷移抽出部６０及びモデル生成部７０とを備える。
【００２２】
図２に示した各構成要素は、例えば図１のプログラム制御されたＣＰＵ１０１にて実現されるソフトウェアブロックである。ＣＰＵ１０１を制御してこれらの機能を実現するプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより提供することができる。
【００２３】
アクセス支援処理部１０は、ウェブアプリケーションの実行を支援する。具体的には、ウェブアプリケーションにより提供されるコンテンツ内で、次に探索可能なリンクを検出して実行する。あるいは、そのようなリンクをディスプレイ装置に表示出力し、ユーザに対して実行を促すようにしても良い。すでに本実施の形態によって実行されているウェブアプリケーションの場合、当該ウェブアプリケーションに関する当該実行時の呼び出し情報のリストがアクセス情報（ログ）として残されている（後述）ので、これを取得して順に実行していくこともできる。なお、アクセス支援処理部１０は、従来のブラウザの機能にて実現可能である。
【００２４】
静的コンテンツ取得部２０は、ウェブアプリケーションの実行に基づき静的コンテンツを取得する。取得される静的コンテンツとは、ウェブアプリケーションにアクセスして得られるＨＴＴＰレスポンス、すなわちＨＴＭＬ、ＸＨＴＭＬ、ＸＭＬなどの文書やＨＴＭＬオブジェクトである。取得された静的コンテンツは、例えば図１のメインメモリ１０３やハードディスク１０５等の所定の記憶手段に格納され、後述する分類処理部４０の処理で使用される。また、アクセス支援処理部１０においても、さらに次のリンク先を探索する対象として用いられる。
【００２５】
アクセス情報取得部３０は、ウェブアプリケーションにアクセスした際のＨＴＴＰリクエストをアクセス情報として取得する。
図３は、アクセス情報取得部３０にて取得されたアクセス情報の構成例を示す図である。
図３に示す例では、アクセス支援処理部１０から発行されたＨＴＴＰリクエストと、その宛先ＵＲＩ及び通信データと、そのＨＴＴＰレスポンスである静的コンテンツを特定するファイル名とが対応付けられて格納されている。
アクセス情報取得部３０により取得されたアクセス情報は、例えば図１のメインメモリ１０３やハードディスク１０５等の所定の記憶手段に格納され、後述する遷移抽出部６０の処理で使用される。また上述したように、アクセス支援処理部１０がウェブアプリケーションにおけるリンクを実行する際の実行対象の情報としても用いることができる。
【００２６】
静的コンテンツ取得部２０及びアクセス情報取得部３０は、ウェブアプリケーションが実行されているサーバとクライアントとのトランザクション間に設けられる。具体的には、プロキシサーバにより実現したり、クライアント側で用いるブラウザの機能として実装したりすることができる。静的コンテンツ取得部２０及びアクセス情報取得部３０による、これらＨＴＴＰリクエスト及びＨＴＴＰレスポンスのログを取得する機能は、従来のネットワーク技術にて実現可能である。
【００２７】
分類処理部４０は、処理対象であるウェブアプリケーションから抽象的なモデルを抽出するため、静的コンテンツ取得部２０にて取得された静的コンテンツの特徴量を計算し、分類を行う。この特徴量は、各静的コンテンツ間の類似度を判断する際の指標として用いる。
図４は、分類処理部４０の構成を示す図である。
図４を参照すると、分類処理部４０は、静的コンテンツ間の類似度を計算する類似度計算部４１と、類似度計算部４１にて計算された類似度に基づいて各静的コンテンツをグループに分ける分類実行部４２とを備える。以下、類似度の計算とコンテンツの分類の各処理について詳細に説明する。
【００２８】
＜類似度の計算＞
類似度計算部４１は、以下の考え方に基づいて、静的コンテンツ間の類似度を計算する。本実施の形態では、静的コンテンツの類似度の概念として、構造に関する類似度と役割に関する類似度とを定義する。構造に関する類似度は、ページレイアウト等、静的コンテンツの構造が類似しているかどうかを示し、静的コンテンツの視覚的な特徴を意味する。役割に関する類似度は、フォームの有無やその内容等、静的コンテンツの役割が類似しているかどうかを示し、静的コンテンツの論理的な特徴を意味する。
【００２９】
静的コンテンツの構造に関する類似度を求めるには、処理対象である複数の静的コンテンツから、例えばＨＴＭＬの場合、ｔａｂｌｅ、ｔｄ、ｔｈ等のレイアウトに影響を与えるタグの構造を抽出し、比較する。これにより、複数の静的コンテンツ間の構造に関する類似度を数値化して表すことができる。さらに、それぞれのタグが持つ属性（ａｔｔｒｉｂｕｔｅ）および、当該タグのサブツリー内に含まれるエレメント等の情報をその特徴値として関連付ける事により、より詳細な比較が可能である。例えば、タグｔｄにおける属性としてはａｌｉｇｎ、ｖａｌｉｇｎ、ｂｇｃｏｌｏｒ、ｃｏｌｓｐａｎ、ｒｏｗｓｐａｎ、ｈｅｉｇｈｔ、ｗｉｄｔｈが有り、さらにｔｄセル内のテキストのサイズやリンク、画像の数やそのリンク先などを特徴値として用いることができる。なお、構造に関する類似度を求める上記の手法に関しては、例えば、特許文献３に開示された従来技術を用いることができる。
【００３０】
静的コンテンツの役割に関する類似度を求めるには、フォームの有無やその送信先のＵＲＩや送信方法、フォーム内で用いられている構成要素等に着目し、比較する。例えば、静的コンテンツのＨＴＭＬ文書からフォームタグ（ｆｏｒｍ）および、その構成要素であるｉｎｐｕｔ、ｔｅｘｔａｒｅａ、ｏｐｔｉｏｎ、ｂｕｔｔｏｎ、ｓｅｌｅｃｔ等のタグを抽出し、それぞれの属性や、ｏｐｔｉｏｎタグ内の文字列などを特徴値として各タグに関連付けする。そして、これらの特徴値を複数の静的コンテンツ間で比較することにより、当該静的コンテンツの役割に関する類似度を数値化して表すことができる。
なお、役割に関する類似度を求める上記の手法に関しては、上記構造に関する類似度の場合と同様に、特許文献３に開示された従来技術を用いることができる。ただし、役割に関する類似度の導出においては、各タグの出現順序やテーブル内での配置など、ＨＴＭＬ記述およびレイアウト上での構造は無視する。すなわち、２つの静的コンテンツにおいて、同一ＵＲＩへの送信を行い、その送信方法や構成要素が等しいｆｏｒｍが存在する場合、そのＨＴＭＬ文書内での位置やｆｏｒｍ構成要素の出現順に関係なく、役割は同じであると判断される。
【００３１】
図５は、静的コンテンツの役割に関する類似の概念を説明する図である。
図５において、文書１における実線の枠５１１で囲まれたｆｏｒｍと文書２における実線の枠５２１で囲まれたｆｏｒｍとは、ＨＴＭＬ文書中における位置や、破線で囲まれたＬＡＢＥＬ、ＩＮＰＵＴ等の出現順序は異なるが、役割は同一であると判定される。一方、文書１における実線の枠５１２で囲まれたｆｏｒｍと文書２における実線の枠５２２で囲まれたｆｏｒｍとは、ＨＴＭＬ文書中の位置およびｆｏｒｍ構成要素の出現順序は完全に一致するものの、送信先ＵＲＩや変数名が異なるため、異なる役割であると判定される。このように、各ｆｏｒｍの機能に基づいて判定を行い、静的コンテンツ間で同一あるいは類似した役割のｆｏｒｍが存在する場合は類似度を上げ、あるフォームがどちらか一方にしか存在しない場合は類似度を下げる。かかる操作を比較対象である静的コンテンツ中の各フォームについて行うことにより、静的コンテンツ全体の類似度を数値化することができる。
【００３２】
以上の特徴量（類似度）の考え方に基づけば、例えば、取得された静的コンテンツにおいて、同じテンプレートを持つ静的コンテンツ同士は、視覚的な特徴量が数値的に近い値となる。一方、同じフォームを持つＨＴＭＬコンテンツ同士は、視覚的に異なるテンプレートを用いて生成されたものであっても論理的な特徴量は数値的に近い値を示すこととなる。
【００３３】
＜コンテンツの分類＞
次に分類処理部４０は、上記のようにして得られた２種類の類似度に基づいて、静的コンテンツの分類を行う。静的コンテンツの分類方法（基準）としては、構造が類似しているものをグループとする、役割が類似しているものをグループとする、構造および役割の双方が類似している物をグループとする等の方法が考えられる。どのような分類方法を適用するかについては、ウェブアプリケーションモデルの生成目的や用途等に応じて選択し設定することが好ましい。静的コンテンツの分類結果は、図１に示したメインメモリ１０３やハードディスク１０５等の所定の記憶手段に格納され、テンプレート抽出部５０や遷移抽出部６０の処理にて利用される。また、処理対象である静的コンテンツの類似度をユーザが把握し、分類作業を容易なものとするため、計算されたコンテンツ間の類似度を示す情報を表示して、ユーザの手作業による分類操作を受け付けるユーザインターフェイスを提供することができる。このユーザインターフェイスについては後述する。
【００３４】
テンプレート抽出部５０は、分類処理部４０による分類結果に基づいて、グループ分けされた上記の静的コンテンツを解析し、個々のグループに対し、ＪＳＰに代表される動的なコンテンツ（以下、動的コンテンツ）を割り当てる。これを実現するために、テンプレート抽出部５０は、同一グループに分類された静的コンテンツにおいて共通に用いられる固定部分と、状況により変更が生じる部分とを識別し、さらに状況により変化が生じる部分のうちで、特定の表示形式が繰り返し利用されている部分（繰り返し部分）とその他の部分とを識別する。
【００３５】
具体的には、テンプレート抽出部５０は、まず、ＪＳＰなどから動的に生成されるＨＴＭＬコンテンツ中で、状況により変更が発生する部分と、グループ内で共通に利用されている固定部分とを切り分ける。この切り分け処理には、ドキュメントの差分計算機能を持つ既存のツールを用いて行うことができる（例えば、非特許文献３、４参照）。ＨＴＭＬコンテンツから抽出された固定部分は、動的コンテンツへの置き換えに際して、当該動的コンテンツのデザインテンプレートとして用いることができる。
【００３６】
次に、テンプレート抽出部５０は、状況により変更が発生する部分の中から繰り返し部分を発見し、その表示形式を抽出する。例えば、ウェブコンテンツを介して商品の販売サービスを行うウェブアプリケーションでは、通常、ユーザが購買しようとする商品の情報を管理するショッピングカートの役割を担うウェブコンテンツ（以下、カートページ）が生成される。カートページは、ユーザが購買意思を持った対象商品に関する情報（商品名、単価、数量、合計価格など）を管理する。そして、このカートページが表示される場合、管理されている商品ごとに、決まった形の表示欄に商品情報が埋め込まれて表示される。したがって、個々の商品に対応する表示欄には、特定の表示形式が繰り返し利用されることとなる（繰り返し部分）。一方、埋め込まれる商品情報は、個々の商品ごとに異なる不規則な内容となる。
【００３７】
図６〜１１は、静的コンテンツ取得部２０により取得されたカートページの構成例を示す図である。
図６〜１１の各カートページは、登録された商品情報を表示する欄６０１の数及びその表示内容と、合計金額を表示する欄６０２の値のみが異なっている。図６、７、１０の例では、商品表示欄６０１の数は１つで同じであるが、購入個数や商品が異なっており、これに伴って合計金額欄６０２の金額も異なっている。図８では２個、図９では０個、図１１では６個の商品表示欄６０１が表示されている。これらのカートページから、固定部分や繰り返し部分が抽出されて当該カートページのテンプレートが得られる。
【００３８】
図１２は、図６〜１１のカートページからテンプレートを抽出する様子を説明する図である。
テンプレート抽出部５０は、まず、図６〜１１を比較して共通部分と変化の生じた部分とを切り分ける。上述したように共通部分は、カートページ全体のデザインテンプレートとなる。図示の共通部分において、斜線を付した欄６１１は、図６〜１１のカートページにおける商品表示欄６０１に対応し、同じく斜線を付した欄６１２は、図６〜１１のカートページにおける合計金額欄６０２の値の部分に対応している。これらの部分は、状況により変化の生じた部分として取り出される。
【００３９】
図１３は、図６〜１１のカートページから切り分けられた、状況により変化の生じた部分を示す図である。図１３（Ａ）は、図６〜１１のカートページにおける商品表示欄６０１であり、図１３（Ｂ）は、図６〜１１のカートページにおける合計金額欄６０２に記載された値である。
テンプレート抽出部５０は、これらの状況により変化の生じた部分から繰り返し用いられている表示形式を検出する。この際、特定の表示欄に記載されているテキスト等の抽象化を行う。この情報の抽象化には、所定の従来技術を用いることができる。
【００４０】
図１４は、図１３に示した状況により変化の生じた部分の情報から繰り返し部分を検出する様子を示す図である。
図１４に示すように、図１３（Ａ）からは、表示例１４０１のような表示形式が繰り返し部分として検出される。表示例１４０１中の「ｓｈｏｒｔｔｅｘｔ」及び「ｄｉｇｉｔ」は該当位置に記述される情報の抽象表現であり、「ｓｈｏｒｔｔｅｘｔ」は所定のテキストが記述されることを意味し、「ｄｉｇｉｔ」は所定の数字が記述されることを意味している。テンプレート抽出部５０は、図１４に示すような繰り返し部分のタグ構造を、ＨＴＭＬコンテンツを動的コンテンツへ置き換える際に、当該動的コンテンツの表示形式のデザインテンプレートとして用いる。
【００４１】
また、テンプレート抽出部５０は、このような繰り返し部分を検出した場合、例えば所定のディスプレイ装置に表示することにより、そのタグ構造と表示例とをユーザに提示することができる。さらに、タグ構造中で抽象化されている部分（図１４の例では「ｓｈｏｒｔｔｅｘｔ」及び「ｄｉｇｉｔ」）に対して、実際にサンプル中で用いられていた値をユーザに提示することができる。これにより、実際には固定値や固定の文字列が入力される場合に、ユーザが当該固定値や固定文字列を選択することができる。また、ユーザは、これらの情報を、Ｔａｇ  ＬｉｂｒａｒｙやＪａｖａ  Ｂｅａｎｓ（米国サン・マイクロシステムズ社の商標）等を動的コンテンツに配置したりする際の目安とすることができる。
【００４２】
ここで、繰り返し発見のためには、少なくとも２回以上の繰り返し部分の表示（以下、繰り返し表示）が行われている必要がある。しかし、実際には２回以上の繰り返し表示を行う可能性があるにもかかわらず、取得した実行サンプルには２回以上の繰り返し表示が出現しない場合もあり得る。例えば、上記のカートページの例では、図６、７、１０は、それぞれ商品表示欄６０１が１つしかないため、サンプルがこれらのみである場合、商品表示欄６０１が繰り返し利用される表示形式かどうかを識別することができない。
【００４３】
そこでこの様な場合には、繰り返し表示を含むサンプルを再度取得するか、グループ内のコンテンツから該当する箇所を集めて、擬似的に繰り返し表示を作成し、これに基づいて繰り返し表示を探索することにより、繰り返し部分として用いられる表示形式の抽出を行うことができる。
図１５は、図６、７、１０の商品表示欄６０１から繰り返し部分を抽出する様子を示す図である。
図１５に示すように、図６、７、１０の商品表示欄６０１を集めて繰り返し表示を探索することにより、商品表示欄６０１を抽象化した表示形式が検出されることとなる。
【００４４】
以上のテンプレート抽出部５０による処理で残った、状況により変更が発生し繰り返し部分には属さない部分は、当該ＨＴＭＬコンテンツを所望するユーザや当該ＨＴＭＬコンテンツが生成された時刻等に応じて変更される部分（「ようこそ○○さん」「おはようございます」「こんにちは」「サービス時間外」といったメッセージなど）と判断できる。
以上の分類を行うことにより、動的コンテンツ中のＪａｖａ  ＢｅａｎｓやＴａｇ  Ｌｉｂｒａｒｙ等のモジュールの位置と用途が特定され、ウェブサイト（ウェブアプリケーションを含むシステム）の再構築の際に、これらのモジュールを効率良く再利用することが可能となる。
【００４５】
遷移抽出部６０は、アクセス情報取得部３０にて取得されたアクセス情報と分類処理部４０にて分類された静的コンテンツのグループとに基づいて、ウェブアプリケーションにおける遷移を抽出する。まず、分類処理部４０の分類結果に基づき、アクセス情報における各ＨＴＭＬリクエスト及び各ＨＴＭＬレスポンスに、グループが割り当てられる。次に、アクセス情報におけるＵＲＩから、パラメータ部分を抽出する。このとき、再構成などの処理対象である既存のウェブアプリケーション固有の知識を用いることが可能な場合は、サーバロジック呼び出しを推定することができる。例えば、ＵＲＩが「．ｄｏ」で終わる場合は、Ａｐａｃｈｅ  Ｊａｋａｒｔａ  Ｐｒｏｊｅｃｔの一部であり、ウェブアプリケーションフレームワークであるＳｔｒｕｔｓにおけるアクション呼び出しに相当する。このようにして、グループ間の呼び出しＵＲＩと必要なパラメータに基づき、アプリケーションの遷移に関する情報を抽出することができる。
【００４６】
モデル生成部７０は、テンプレート抽出部５０にて抽出されたテンプレートを含む動的コンテンツと、遷移抽出部６０にて抽出された遷移情報とを用いてウェブアプリケーションの抽象的なモデルを生成する。生成されたモデルは、例えば図１に示したハードディスク１０５に格納され、処理対象となった既存のウェブアプリケーションの変更や再構成に利用される。
【００４７】
次に、分類処理部４０の分類実行部４２により提供されるユーザインターフェイスについて説明する。
分類実行部４２は、類似度計算部４１により計算された静的コンテンツ間の類似度の情報を表示するユーザインターフェイス画面を生成し、所定のディスプレイ装置に表示する。
図１６は、分類実行部４２により生成されるユーザインターフェイス画面の構成例を示す図である。
図１６のユーザインターフェイス画面には、静的コンテンツ取得部２０にて取得された各静的コンテンツを表す図形と、アクション呼び出しのロジックを表す星形図形とが配置されたグラフが描画されている。図形間のエッジは、取得された静的コンテンツ間の遷移、すなわち当該ウェブアプリケーションにおける可能な遷移に相当する。すなわち、所定の図形に対応する静的コンテンツからは、エッジの張られたアクション呼び出しにより、同じくエッジの張られた他の図形に対応する静的コンテンツに遷移できることを意味している。
この画面において、静的コンテンツを表す図形は、類似度計算部４１により計算された静的コンテンツ間の類似度を対応する図形の間の距離に反映させて、配置されている。すなわち、類似度が高いと判断された静的コンテンツに関しては、画面上の対応する図形間の距離が短くなっている。
【００４８】
ユーザは、マウスドラッグして所望の図形を囲む、所望の図形をクリックする等の操作によって、所望の静的コンテンツを選択し、グループ分けを行うことができる。分類実行部４２は、ユーザによるこのような操作を受け付けて、これに従って静的コンテンツを分類する。また、予め設定された閾値に基づいて、分類実行部４２が静的コンテンツのグループ化を行う場合は、当該グループ化の結果を、ユーザインターフェイス画面に反映させることができる。画面上でいくつかの静的コンテンツの図形を囲む破線は、静的コンテンツを分類した結果であるグループを示している。ユーザは、必要があれば、この画面上の破線を修正する操作を行うことにより、静的コンテンツの分類を所望の内容に変更することができる。
【００４９】
なお、ユーザインターフェイス画面には、静的コンテンツの構造に関する類似度あるいは役割に関する類似度のみに基づいて図形を配置したり、２種類の類似度の重み付けを設定して表示したりすることができる。具体的には、ウェブコンテンツをサムネイル等の小さな図形で表示し、類似度を図形間の距離で表現することができる。また他の手段としてウェブコンテンツを表す文字と、類似度を表現する数値で表示するなどの方法により表現することができる。したがって、ユーザは、類似度の重み付けを変更しながらユーザインターフェイス画面の表示を行い、静的コンテンツの分類を実施し、修正することができる。
【００５０】
上述したように、静的コンテンツの分類が行われた後、テンプレート抽出部５０及び遷移抽出部６０による処理を経て、モデル生成部７０によりウェブアプリケーションモデルが生成される。このウェブアプリケーションモデルの構成は、既存のエディタを用いて、ディスプレイ装置等に表示出力することができる。例えばＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ：統一記述言語）をウェブアプリケーションモデルの記述言語として用いる場合、コンポーネント図やクラス図など各種の図として出力することが可能である。
図１７は、図１６に示した分類結果（破線枠）に基づいて、モデル生成部７０により生成されたウェブアプリケーションモデルの構成を示す図である。
図１７に示すように、このウェブアプリケーションモデルは、商品カタログのページ（カタログページ）と、カートページという２つの動的コンテンツと、購買決定を行うチェックアウトのページ（図１６に示すように、このページは１種類の静的コンテンツで構成される）とを備える。また、カタログページまたはカートページから呼び出されてカートページへ遷移するロジックと、カートページまたはチェックアウトのページから呼び出されてカタログページへ遷移するロジックと、カートページから呼び出されてチェックアウトページへ遷移するロジックとを備える。
【００５１】
図１８は、以上のように構成された本実施の形態のウェブアプリケーションモデル生成装置によるウェブアプリケーションモデルを生成する処理の流れを説明するフローチャートである。
図１８を参照すると、まず、通常の実行環境でモデルの生成対象であるウェブアプリケーションが実行される（ステップ１８０１）。ウェブアプリケーションをユーザがブラウザを操作して実行する方法や、アクセス支援処理部１０の機能等による自動実行が考えられる。そして、このウェブアプリケーション実行時に、静的コンテンツ取得部２０及びアクセス情報取得部３０により、静的コンテンツとアクセス情報とが取得される（ステップ１８０２）。
【００５２】
ステップ１８０１、１８０２は、ウェブアプリケーション内のリンクを辿って当該ウェブアプリケーションにて提供される全てのコンテンツが実行されるまで繰り返される（ステップ１８０３）。そして、ウェブアプリケーションの実行が終了したならば、次に、分類処理部４０により、取得された静的コンテンツの類似度が計算され（ステップ１８０４）、当該類似度の計算結果に基づいて当該静的コンテンツが分類される（ステップ１８０５）。分類結果は、例えば図１のメインメモリ１０３等に保持される。また、図１５に示したようなユーザインターフェイス画面を生成し、ユーザによる分類の実施や分類結果の修正を受け付けることができる。
【００５３】
次に、テンプレート抽出部５０により、分類された静的コンテンツのグループごとに動的コンテンツのテンプレートの抽出が行われる（ステップ１８０６）。本実施の形態では、上述したように、ノードレベルでの共通部分（固定部分）と異なる部分（状況により変化が生じる部分）とを認識してテンプレートとするため、精度良く動的コンテンツを生成することができる。
次に、遷移抽出部６０により、テンプレート抽出部５０にて抽出されたテンプレートとアクセス情報取得部３０にて取得されたアクセス情報とから、分類された静的コンテンツのグループ間の遷移が抽出される（ステップ１８０７）。
そして最後に、モデル生成部７０により、テンプレート抽出部５０にて抽出された動的コンテンツのテンプレートと遷移抽出部６０にて抽出された遷移の情報とに基づいて、ウェブアプリケーションの抽象的なモデルが生成される（ステップ１８０８）。
【００５４】
次に、既存のウェブアプリケーションが更新された場合の、本実施の形態のウェブアプリケーションモデル生成装置を用いた、対応モデルの更新について説明する。
既存のウェブアプリケーションの一部が変更された場合を考える。ここでは、当該ウェブアプリケーションが生成する静的コンテンツ「０３．ｈｔｍｌ」、「０９．ｈｔｍｌ」が変更されたものとする。
図１９は、かかるウェブアプリケーションの変更が行われた場合における本実施の形態のウェブアプリケーションモデル生成装置の動作を説明する図である。
【００５５】
まず、アクセス支援処理部１０により当該ウェブアプリケーションが実行され、静的コンテンツ取得部２０及びアクセス情報取得部３０により静的コンテンツとアクセス情報とが取得される。このとき、変更された箇所が特定できるならば、その部分を実行して静的コンテンツとアクセス情報とを取得すれば良い。また、ウェブアプリケーション全体を実行した場合は、ドキュメントの差分計算用のツールを用いてすでに取得されている更新前の静的コンテンツと今回取得した更新後の静的コンテンツとを比較することにより、更新された静的コンテンツを特定することができる。図１９に示す例では、静的コンテンツ「０３．ｈｔｍｌ」、「０９．ｈｔｍｌ」と、アクセス情報の最終行が変更箇所として特定される。
【００５６】
次に、分類処理部４０により、取得された静的コンテンツが分類される。このとき、更新された静的コンテンツのみを分類対象とすることで、更新前の分類に対しインクリメンタルに分類結果を追加することができる。更新された静的コンテンツが更新前のグループのいずれかに属するようであれば、生成される動的コンテンツの数に変化はなく、当該静的コンテンツが属するグループに対して更新内容に対応する変更操作が行われる。一方、更新された静的コンテンツが更新前のグループのいずれにも属さないならば、新たなグループとして認識され、動的コンテンツが生成されることとなる。図１９に示す例では、静的コンテンツ「０３．ｈｔｍｌ」、「０９．ｈｔｍｌ」はグループ「ｇｒｏｕｐＢ」に属しており、グループ「ｇｒｏｕｐＢ」に相当する動的コンテンツに変更が加えられることとなる。
【００５７】
次に、分類処理部４０の分類結果及びアクセス情報取得部３０にて取得されたアクセス情報に基づくテンプレート抽出部５０及び遷移抽出部６０の処理を経て、モデル生成部７０により更新されたウェブアプリケーションモデルが生成される。図１９に示す例では、上述したようにグループ「ｇｒｏｕｐＢ」に相当する動的コンテンツの内容が変更されることで、ウェブアプリケーションモデルの更新が実現される。具体的には、テンプレート抽出部５０により、グループ「ｇｒｏｕｐＢ」に対する詳細な変更部分の再計算がおこなわれ、モデル生成部７０により、計算結果がウェブアプリケーションモデルに反映される。
【００５８】
以上、本実施の形態は、動的なウェブコンテンツを対象として、ウェブアプリケーションモデルを生成するシステム及び方法について説明したが、本発明は、ウェブアプリケーションのみならず、一般に、ユーザがＧＵＩを用いて情報を取得・入力し、その入力に基づいて処理が行われるような、他のシステムにも適用可能である。
例えば、米国ＩＢＭ社の３２７０端末、５２５０端末等を用いてホストコンピュータを操作するシステムに適用することができる。この場合、上述した実施の形態における、ウェブコンテンツにおける表示形式が３２７０端末上の画面表示に対応し、ウェブコンテンツの役割は、各種機能キーへの機能割り当ておよび入力項目に相当する。
【００５９】
さらに、呼び出し情報は、ＨＴＴＰプロトコルでのトランザクションを解析することにより得られるものであるが、ホストコンピュータ操作においては３２７０プロトコルでのトランザクション等を解析することによって呼び出し情報を得ることができる。これらの情報に対して本発明を適用し、３２７０端末上の画面表示、昨日キーへの機能割り当ておよび入力項目に基づく類似度を計算してグループ分けを行うことにより、ホストコンピュータのアプリケーションのモデルおよびテンプレートを生成することができる。
【００６０】
【発明の効果】
以上説明したように、本発明によれば、サーバ側で動的に生成されるオブジェクトやウェブコンテンツを対象として、ウェブアプリケーションモデルを生成し、システムの変更や再構成を支援することが可能となる。
【図面の簡単な説明】
【図１】本実施の形態によるウェブアプリケーションモデル生成装置を実現するコンピュータ装置のハードウェア構成の例を模式的に示した図である。
【図２】図１に示すようなコンピュータ装置にて実現される本実施の形態によるウェブアプリケーションモデル生成装置の機能構成を示す図である。
【図３】本実施の形態のアクセス情報取得部にて取得されたアクセス情報の構成例を示す図である。
【図４】本実施の形態の分類処理部の構成を示す図である。
【図５】本実施の形態で用いられる、静的コンテンツの役割に関する類似の概念を説明する図である。
【図６】本実施の形態の静的コンテンツ取得部により取得されたカートページの構成例を示す図である。
【図７】本実施の形態の静的コンテンツ取得部により取得されたカートページの構成例を示す図である。
【図８】本実施の形態の静的コンテンツ取得部により取得されたカートページの構成例を示す図である。
【図９】本実施の形態の静的コンテンツ取得部により取得されたカートページの構成例を示す図である。
【図１０】本実施の形態の静的コンテンツ取得部により取得されたカートページの構成例を示す図である。
【図１１】本実施の形態の静的コンテンツ取得部により取得されたカートページの構成例を示す図である。
【図１２】図６〜１１のカートページからテンプレートを抽出する様子を説明する図である。
【図１３】図６〜１１のカートページから切り分けられた、状況により変化の生じた部分を示す図である。
【図１４】図１３に示した状況により変化の生じた部分の情報から繰り返し部分を検出する様子を示す図である。
【図１５】図６、７、１０の商品表示欄から繰り返し部分を抽出する様子を示す図である。
【図１６】本実施の形態の分類実行部により生成されるユーザインターフェイス画面の構成例を示す図である。
【図１７】本実施の形態のモデル生成部により生成されたウェブアプリケーションモデルの構成を示す図である。
【図１８】本実施の形態によるウェブアプリケーションモデルを生成する処理の流れを説明するフローチャートである。
【図１９】ウェブアプリケーションの変更が行われた場合における本実施の形態のウェブアプリケーションモデル生成装置の動作を説明する図である。
【符号の説明】
１０…アクセス支援処理部、２０…静的コンテンツ取得部、３０…アクセス情報取得部、４０…分類処理部、４１…類似度計算部、４２…分類実行部、５０…テンプレート抽出部、６０…遷移抽出部、７０…モデル生成部、１０１…ＣＰＵ、１０３…メインメモリ、１０５…ハードディスク
【図１】
2005004428.tif 000003
【図２】
2005004428.tif 000004
【図３】
2005004428.tif 000005
【図４】
2005004428.tif 000006
【図５】
2005004428.tif 000007
【図６】
2005004428.tif 000008
【図７】
2005004428.tif 000009
【図８】
2005004428.tif 000010
【図９】
2005004428.tif 000011
【図１０】
2005004428.tif 000012
【図１１】
2005004428.tif 000013
【図１２】
2005004428.tif 000014
【図１３】
2005004428.tif 000015
【図１４】
2005004428.tif 000016
【図１５】
2005004428.tif 000017
【図１６】
2005004428.tif 000018
【図１７】
2005004428.tif 000019
【図１８】
2005004428.tif 000020
【図１９】
2005004428.tif 000021