(57)【要約】【課題】動的ウェブアプリケーションにおいて、ブラウザとウェブアプリケーションの様々なインタラクションに応じて変化する動的コンテンツを一意に識別できるウェブアプリケーションモデルが作成できるようにする。【解決手段】ウェブアプリケーションが生成しているウェブコンテンツの要素にＩＤ（要素ＩＤ）を設定するサーバー出力要素ＩＤ設定部１を備える。また、ブラウザと上述したウェブアプリケーションとの間のインタラクションを検知するインタラクション監視部２を備える。また、検知されたインタラクションにより生成される動的コンテンツの要素（動的要素）にこれを識別するためのＩＤ（動的要素ＩＤ）を設定する動的要素識別部３を備える。【選択図】  図１
2011013940.tif 000002
【特許請求の範囲】
【請求項１】
動的コンテンツを生成するウェブアプリケーションのモデルを作成する動的ウェブアプリケーションモデル生成装置において、
ブラウザと前記ウェブアプリケーションとの間のインタラクションを検知するインタラクション監視手段と、
前記ウェブアプリケーションを実行することによって取得されるウェブコンテンツの要素にこれを識別するための要素ＩＤを設定するサーバー出力要素ＩＤ設定手段と、
前記インタラクションにより生成される前記動的コンテンツの要素を判別し、判別した要素にこれを識別するための動的要素ＩＤを設定する動的要素識別手段と
を少なくとも備えることを特徴とする動的ウェブアプリケーションモデル生成装置。
【請求項２】
請求項１記載の動的ウェブアプリケーションモデル生成装置において、
前記要素ＩＤおよび前記動的要素ＩＤで識別される要素を関連付けて、前記インタラクションによる前記要素の遷移を表すモデルを生成するモデル生成部を備えることを特徴とする動的ウェブアプリケーションモデル生成装置。
【請求項３】
請求項１または２記載の動的ウェブアプリケーションモデル生成装置において、
前記サーバ出力要素ＩＤ設定手段は、前記インタラクションに対するレスポンス中の全ての要素に対して、要素のパスのツリー構造から各要素に対してこれを識別するための要素ＩＤを設定し、
前記動的要素識別手段は、前記ウェブアプリケーションが出力する要素の中で、前記インタラクションにより変化した要素を判別する
ことを特徴とする動的ウェブアプリケーションモデル生成装置。
【請求項４】
請求項３記載の動的ウェブアプリケーションモデル生成装置において、
前記インタラクションはユーザー操作によるものであり、
前記インタラクション監視手段は、前記ユーザー操作を検知し、
前記動的要素識別手段は、前記インタラクション監視手段が検知したユーザの操作によって新たに発生した要素に前記動的要素ＩＤを設定し、設定した動的要素ＩＤと共に、前記ユーザー操作の種類、前記動的要素ＩＤを設定した要素、および前記動的要素ＩＤを設定した要素の画面構造上のパスを含む前記動的要素ＩＤを設定した要素の属性を記憶し、
前記モデル生成部は、前記要素の属性を用い、前記要素ＩＤおよび前記動的要素ＩＤで識別される要素を関連付けて、前記インタラクションによる前記要素の遷移を表すモデルを生成する
ことを特徴とする動的ウェブアプリケーションモデル生成装置。
【請求項５】
請求項３または４記載の動的ウェブアプリケーションモデル生成装置において、
前記インタラクションは、前記ウェブアプリケーションに対するリクエストであり、
前記インタラクション監視手段は、前記リクエストを検知し、
前記動的要素識別手段は、前記インタラクション監視手段が検知したリクエストに対するレスポンスで新たに発生した要素に前記動的要素ＩＤを設定し、設定した動的要素ＩＤと共に、前記リクエストのメソッド，ヘッダ，パラメータを含む前記インタラクション監視手段が検知したリクエストの属性を記憶し、
前記モデル生成部は、前記リクエストの属性を用い、前記要素ＩＤおよび前記動的要素ＩＤで識別される要素を関連付けて、前記インタラクションによる前記要素の遷移を表すモデルを生成する
ことを特徴とする動的ウェブアプリケーションモデル生成装置。
【請求項６】
動的コンテンツを生成するウェブアプリケーションのモデルを作成する動的ウェブアプリケーションモデル生成方法において、
ブラウザと前記ウェブアプリケーションとの間のインタラクションを検知するインタラクション監視ステップと、
前記ウェブアプリケーションを実行することによって取得されるウェブコンテンツの要素にこれを識別するための要素ＩＤを設定するサーバー出力要素ＩＤ設定ステップと、
前記インタラクションにより生成される前記動的コンテンツの要素を判別し、判別した要素にこれを識別するための動的要素ＩＤを設定する動的要素識別ステップと
を少なくとも備えることを特徴とする動的ウェブアプリケーションモデル生成方法。
【請求項７】
請求項６記載の動的ウェブアプリケーションモデル生成方法において、
前記要素ＩＤおよび前記動的要素ＩＤで識別される要素を関連付けて、前記インタラクションによる前記要素の遷移を表すモデルを生成するモデル生成ステップ
を備えることを特徴とする動的ウェブアプリケーションモデル生成方法。
【請求項８】
請求項６または７記載の動的ウェブアプリケーションモデル生成方法において、
前記サーバ出力要素ＩＤ設定ステップでは、前記インタラクションに対するレスポンス中の全ての要素に対して、要素のパスのツリー構造から各要素に対してこれを識別するための要素ＩＤを設定し、
前記動的要素識別ステップでは、前記ウェブアプリケーションが出力する要素の中で、前記インタラクションにより変化した要素を判別する
ことを特徴とする動的ウェブアプリケーションモデル生成方法。
【請求項９】
請求項８記載の動的ウェブアプリケーションモデル生成方法において、
前記インタラクションはユーザー操作によるものであり、
前記インタラクション監視ステップでは、前記ユーザー操作を検知し、
前記動的要素識別ステップでは、前記インタラクション監視ステップで検知したユーザの操作によって新たに発生した要素に前記動的要素ＩＤを設定し、設定した動的要素ＩＤと共に、前記ユーザー操作の種類、前記動的要素ＩＤを設定した要素、および前記動的要素ＩＤを設定した要素の画面構造上のパスを含む前記動的要素ＩＤを設定した要素の属性を記憶し、
前記モデル生成ステップでは、前記要素の属性を用い、前記要素ＩＤおよび前記動的要素ＩＤで識別される要素を関連付けて、前記インタラクションによる前記要素の遷移を表すモデルを生成する
ことを特徴とする動的ウェブアプリケーションモデル生成方法。
【請求項１０】
請求項８または９記載の動的ウェブアプリケーションモデル生成方法において、
前記インタラクションは、前記ウェブアプリケーションに対するリクエストであり、
前記インタラクション監視ステップでは、前記リクエストを検知し、
前記動的要素識別ステップでは、前記インタラクション監視ステップで検知したリクエストに対するレスポンスで新たに発生した要素に前記動的要素ＩＤを設定し、設定した動的要素ＩＤと共に、前記リクエストのメソッド，ヘッダ，パラメータを含む前記インタラクション監視ステップで検知したリクエストの属性を記憶し、
前記モデル生成ステップでは、前記リクエストの属性を用い、前記要素ＩＤおよび前記動的要素ＩＤで識別される要素を関連付けて、前記インタラクションによる前記要素の遷移を表すモデルを生成する
ことを特徴とする動的ウェブアプリケーションモデル生成方法。
【請求項１１】
コンピュータに、動的コンテンツを生成するウェブアプリケーションのモデルを作成させるためのプログラムにおいて、
ブラウザと前記ウェブアプリケーションとの間のインタラクションを検知するインタラクション監視機能と、
前記ウェブアプリケーションを実行することによって取得されるウェブコンテンツの要素にこれを識別するための要素ＩＤを設定するサーバー出力要素ＩＤ設定機能と、
前記インタラクションにより生成される前記動的コンテンツの要素を判別し、判別した要素にこれを識別するための動的要素ＩＤを設定する動的要素識別機能と
を少なくとも備えることを特徴とするプログラム。
【請求項１２】
請求項１１記載のプログラムにおいて、
前記要素ＩＤおよび前記動的要素ＩＤで識別される要素を関連付けて、前記インタラクションによる前記要素の遷移を表すモデルを生成するモデル生成機能
を備えることを特徴とするプログラム。
【請求項１３】
請求項１１または１２記載のプログラムにおいて、
前記サーバ出力要素ＩＤ設定機能は、前記インタラクションに対するレスポンス中の全ての要素に対して、要素のパスのツリー構造から各要素に対してこれを識別するための要素ＩＤを設定し、
前記動的要素識別機能は、前記ウェブアプリケーションが出力する要素の中で、前記インタラクションにより変化した要素を判別する
ことを特徴とするプログラム。
【請求項１４】
請求項１３記載のプログラムにおいて、
前記インタラクションはユーザー操作によるものであり、
前記インタラクション監視機能は、前記ユーザー操作を検知し、
前記動的要素識別機能は、前記インタラクション監視機能で検知したユーザの操作によって新たに発生した要素に前記動的要素ＩＤを設定し、設定した動的要素ＩＤと共に、前記ユーザー操作の種類、前記動的要素ＩＤを設定した要素、および前記動的要素ＩＤを設定した要素の画面構造上のパスを含む前記動的要素ＩＤを設定した要素の属性を記憶し、
前記モデル生成機能は、前記要素の属性を用い、前記要素ＩＤおよび前記動的要素ＩＤで識別される要素を関連付けて、前記インタラクションによる前記要素の遷移を表すモデルを生成する
ことを特徴とするプログラム。
【請求項１５】
請求項１３または１４記載のプログラムにおいて、
前記インタラクションは、前記ウェブアプリケーションに対するリクエストであり、
前記インタラクション監視機能は、前記リクエストを検知し、
前記動的要素識別機能は、前記インタラクション監視機能で検知したリクエストに対するレスポンスで新たに発生した要素に前記動的要素ＩＤを設定し、設定した動的要素ＩＤと共に、前記リクエストのメソッド，ヘッダ，パラメータを含む前記インタラクション監視機能で検知したリクエストの属性を記憶し、
前記モデル生成機能は、前記リクエストの属性を用い、前記要素ＩＤおよび前記動的要素ＩＤで識別される要素を関連付けて、前記インタラクションによる前記要素の遷移を表すモデルを生成する
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウェブアプリケーションの画面構造の動的部分をブラウザとウェブアプリケーションとのインターラクション条件と手順により構造化し、動的コンテンツを含むウェブアプリケーションの抽象的なモデルを作成する動的ウェブアプリケーションモデル生成装置および方法ならびにプログラムに関する。
【背景技術】
【０００２】
近年では、例えば、データの処理や保存をサーバー側で行い、処理結果の表示やユーザーの操作は端末のブラウザーで行うウェブアプリケーションによるサービスが盛んに行われるようになっている。ウェブアプリケーションは、ブラウザー上で動作するため、端末側ではソフトのインストールが不要となり、負担の大きいデータの処理や保存が、サービス提供者側（サーバー側）で行われる。このため、性能が限られた端末でも利用しやすく、また、複数の機器から同じ設定のアプリケーションが使えるという利点がある。また、ユーザー（端末）側では、アプリケーションのインストールやバージョンアップなどの運用管理が必要ないなどの利点もある。
【０００３】
この中で、ウェブ画面を解析し、ウェブアプリケーションを変更し、また統合する事が良く行われる。ウェブアプリケーションを変更するためには、ウェブアプリケーションの構造を理解する必要がある。ウェブアプリケーションの構造の理解を助けるため、ウェブアプリケーションのソースコードなどの内部構造ではなく、画面構造などのウェブアプリケーションの構造分析を行う技術などが存在する。
【０００４】
なお、本明細書の説明において、「静的ウェブコンテンツ」は、呼び出しＵＲＩ（Uniform Resource Identifier）に対して常に同一のコンテンツを返すウェブコンテンツを意味するものとして説明を行う。例えば、ＨＴＭＬ、ＸＭＬ、ＸＨＴＭＬなどが、「静的ウェブコンテンツ」である。
【０００５】
また、「サーバー生成動的ウェブコンテンツ」は、呼び出しＵＲＩに対して複数の静的ウェブコンテンツを生成し得るウェブコンテンツを意味するものとして説明を行う。例えば、ＪＳＰ、Ｓｅｒｖｌｅｔなどが、「サーバー生成動的ウェブコンテンツ」である。また、「クライアント生成動的ウェブコンテンツ」は、ユーザーの操作によってクライアント（端末装置）側で動的に生成しうるウェブコンテンツである。
【０００６】
また、「動的コンテンツ」は、「サーバー生成動的ウェブコンテンツ」または「クライアント生成動的ウェブコンテンツ」の両方またはどちらか片方を含むウェブコンテンツを意味するものとして説明を行う。また、「動的ウェブアプリケーション」は、ウェブ上で利用されるアプリケーションで、「サーバー生成動的ウェブコンテンツ」または「クライアント生成動的ウェブコンテンツ」を生成するアプリケーションを意味するものとして説明を行う。
【０００７】
前述したように、ウェブアプリケーションの構造を解析し、ウェブアプリケーションの画面の構造を可視化する技術として、特許文献１、特許文献２が存在する。これらの技術では、ウェブアプリケーションのレスポンスに対してテンプレートを適用し、サーバー生成動的ウェブコンテンツを識別する。また、サイトのページ遷移情報を、レスポンスから抽出し、ウェブアプリケーションのページ遷移を行う。加えて、ウェブアプリケーションのページ内のサーバーで生成されたサーバー生成動的ウェブコンテンツのうち、変化をしない静的部分と変化をする動的部分とを識別する。識別された部分は、静的部分と動的部分に分けた図としてモデル化される。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特許第４０９７２６３号公報
【特許文献２】特開２００５−１２２５０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、上述した技術では、次のような問題点がある。
【００１０】
第１の問題点は、例えば、ブラウザとウェブアプリケーションとの間のインタラクションの条件に応じて変化する動的コンテンツを解析することができない点である。例えば、認証が要求されるＨＴＴＰリクエストの場合などでは、クッキー（Cookie）のヘッダに応じて認証状態が異なり、同一のＵＲＬにアクセスした場合でもウェブアプリケーションによるレスポンスが異なることがある。また、シングルクリックやダブルクリックなどのユーザーによる異なる操作イベントの種類に対応し、表示される画面が変更される場合などである。これらのように、ＨＴＴＰリクエストやユーザによる操作などのインタラクションの条件に応じて変化する動的コンテンツを、上述した技術では解析することができない。
【００１１】
これは、上述した技術では、サーバーの出力したコンテンツをテンプレートと比較し、アプリケーションモデルを作成するため、インタラクション条件に応じてコンテンツが変化するモデルを生成していないからである。従って、例えば、同一ＵＲＬに対して、異なる条件のインタラクション（ＨＴＴＰリクエスト）を行っても、当該ＵＲＬへのリクエストのレスポンスがインタラクション（リクエスト内容）によって異なる場合などは、テンプレートに当てはまらないレスポンスが返ってくる場合がある。このような場合、テンプレートにより変化しない部分と変化する部分とを分けて識別することはできない。
【００１２】
第２の問題点は、連続する複数のインタラクションによって生成される動的コンテンツを一意に識別することができない点である。動的ウェブアプリケーションでは、ブラウザとウェブアプリケーションのインタラクションの条件に応じ、ウェブアプリケーションのコンテンツが動的に変化する場合がある。また、動的ウェブアプリケーションでは、複数のインタラクションを含む一連のインタラクションに応じ、ウェブアプリケーションの動的ウェブコンテンツが異なることがある。
【００１３】
このような場合、連続する複数のインタラクションが全て行われるまでは、生成されるコンテンツが特定できない。一連のインタラクションと、個々のインタラクション条件に応じ、どの動的ウェブコンテンツが生成されるかを特定することができないと、インタラクション中の動的コンテンツを識別することができない。
【００１４】
まとめると、上述した技術では、動的ウェブアプリケーションにおいて、例えば、ブラウザとウェブアプリケーションのインタラクションに応じて変化する動的コンテンツや、一連のインタラクションに応じて変化する動的コンテンツなどを、一意に識別できるウェブアプリケーションモデルを作成することができないという問題がある。
【００１５】
本発明は、以上のような問題点を解消するためになされたものであり、動的ウェブアプリケーションにおいて、ブラウザとウェブアプリケーションの様々なインタラクションに応じて変化する動的コンテンツを一意に識別できるウェブアプリケーションモデルが作成できるようにすることを目的とする
【課題を解決するための手段】
【００１６】
本発明に係る動的ウェブアプリケーションモデル生成装置は、動的コンテンツを生成するウェブアプリケーションのモデルを作成する動的ウェブアプリケーションモデル生成装置であり、ブラウザとウェブアプリケーションとの間のインタラクションを検知するインタラクション監視手段と、ウェブアプリケーションを実行することによって取得されるウェブコンテンツの要素にこれを識別するための要素ＩＤを設定するサーバー出力要素ＩＤ設定手段と、インタラクションにより生成される動的コンテンツの要素を判別し、判別した要素にこれを識別するための動的要素ＩＤを設定する動的要素識別手段とを少なくとも備える。
【００１７】
本発明に係る動的ウェブアプリケーション生成方法は、動的コンテンツを生成するウェブアプリケーションのモデルを作成する動的ウェブアプリケーションモデル生成方法であり、ブラウザとウェブアプリケーションとの間のインタラクションを検知するインタラクション監視ステップと、ウェブアプリケーションを実行することによって取得されるウェブコンテンツの要素にこれを識別するための要素ＩＤを設定するサーバー出力要素ＩＤ設定ステップと、インタラクションにより生成される動的コンテンツの要素を判別し、判別した要素にこれを識別するための動的要素ＩＤを設定する動的要素識別ステップとを少なくとも備える。
【００１８】
本発明に係るプログラムは、コンピュータに、動的コンテンツを生成するウェブアプリケーションのモデルを作成させるためのプログラムであり、ブラウザとウェブアプリケーションとの間のインタラクションを検知するインタラクション監視機能と、ウェブアプリケーションを実行することによって取得されるウェブコンテンツの要素にこれを識別するための要素ＩＤを設定するサーバー出力要素ＩＤ設定機能と、インタラクションにより生成される動的コンテンツの要素を判別し、判別した要素にこれを識別するための動的要素ＩＤを設定する動的要素識別機能とを少なくとも備える。
【発明の効果】
【００１９】
以上説明したように、本発明によれば、インタラクションにより生成される動的コンテンツの要素にこれを識別するための動的要素ＩＤを設定するようにしたので、動的ウェブアプリケーションにおいて、ブラウザとウェブアプリケーションの様々なインタラクションに応じて変化する動的コンテンツを一意に識別できるウェブアプリケーションモデルが作成できるようになる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施の形態１における動的ウェブアプリケーションモデル生成装置の構成を示す構成図である。
【図２】本発明の実施の形態２における動的ウェブアプリケーションモデル生成装置の構成を示す構成図である。
【図３】本発明の実施の形態２における動的ウェブアプリケーションモデル生成装置の動作例を説明するフローチャートである。
【図４】本発明の実施の形態２における動的ウェブアプリケーションモデル生成装置の動作例を説明するフローチャートである。
【図５】本発明の実施の形態３における動的ウェブアプリケーションモデル生成装置の構成を示す構成図である。
【図６】画面要素記憶部の構成例を示す構成図である。
【図７】動的要素記憶部の構成例を示す構成図である。
【図８】本発明の実施の形態３における動的ウェブアプリケーションモデル生成装置の動作例を説明するフローチャートである。
【図９】本発明の実施の形態３における動的ウェブアプリケーションモデル生成装置の動作例を説明するフローチャートである。
【図１０】ウェブアプリケーションのユーザー操作により、アプリケーションに要素が追加される状態を説明する構成図である。
【図１１】生成したモデルの表示例を示す構成図である。
【図１２】本発明の実施の形４における動的ウェブアプリケーションモデル生成装置の構成を示す構成図である。
【図１３】画面要素記憶部の構成例を示す構成図である。
【図１４】動的要素記憶部の構成例を示す構成図である。
【図１５】本発明の実施の形態４における動的ウェブアプリケーションモデル生成装置の動作例を説明するフローチャートである。
【図１６】リクエストにより、ウェブアプリケーションが、画面に要素を追加する状態を説明するための構成図である。
【図１７】生成したモデルの表示例を示す構成図である。
【発明を実施するための形態】
【００２１】
以下、本発明の実施の形態について図を参照して説明する。
【００２２】
［実施の形態１］
はじめに、本発明の実施の形態１について説明する。図１は、本発明の実施の形態１における動的ウェブアプリケーションモデル生成装置の構成を示す構成図である。本実施の形態１における装置は、まず、ウェブアプリケーションが生成しているウェブコンテンツの要素にＩＤ（要素ＩＤ）を設定するサーバー出力要素ＩＤ設定部１を備える。また、ブラウザと上述したウェブアプリケーションとの間のインタラクションを検知するインタラクション監視部２を備える。
【００２３】
また、検知されたインタラクションにより生成される動的コンテンツの要素（動的要素）にこれを識別するためのＩＤ（動的要素ＩＤ）を設定する動的要素識別部３を備える。なお、インタラクションは、例えば、ブラウザからのリクエストおよびこのリクエストに対応するウェブアプリケーションからのレスポンスなどの、発生した一連の動作である。また、インタラクションは、ユーザによる操作およびこの操作に対応したウェブアプリケーションによるコンテンツの生成などの、発生した一連の動作である。
【００２４】
サーバー出力要素ＩＤ設定部１は、ウェブアプリケーションにより生成されるコンテンツの中の静的部分と、ユーザー操作により動的に生成される部分とを切り分けるため、静的に生成されるＨＴＭＬの要素（静的要素）に対しは、静的要素ＩＤを設定する。このようにして設定された静的要素ＩＤは、例えば、画面要素記憶部に記憶される。
【００２５】
インタラクション監視部２は、インタラクションが行われるかどうかを識別（検出）するために、インタラクションの発生を監視する。例えば、ユーザー操作のイベントを、インタラクションが発生したものとして検知する。このようにしてインタラクションの発生を検知したら、この検知したインタラクションにおいてウェブアプリケーションが動作することで追加された動的ウェブコンテンツの要素（動的要素）の存在有無の判定を、動的要素識別部３に依頼する。
【００２６】
動的要素識別部３は、まず、インタラクションの前後で動的ウェブコンテンツを構成する要素群の比較を行い、インタラクションにより追加・変更された要素（動的要素）を識別する。識別された動的要素に、対象としているインタラクションにより生成される動的要素群全体に対し、これら要素が含まれた追加画面を識別するための追加画面部品識別ＩＤを設定する。追加画面部品識別ＩＤは、対象としているインタラクションによって生成された同一の画面の要素であることを示すものである。
【００２７】
また、識別された動的要素に対し、追加・変更されものであることを示すＩＤ（動的要素ＩＤ）を、発生した順番に設定する。また、動的要素ＩＤと共に、この要素が含まれている画面（ＨＴＭＬ）のＵＲＬ、画面構造上のパス情報（位置）と、付加されている要素情報とを記憶する。これらの設定は、既に動的要素ＩＤが設定されている要素に対しては行わない。なお、画面構造上のパス情報の好適な実施例は、ＸＰＡＴＨまたはＸＱＵＥＲＹである。
【００２８】
動的要素識別部３は、上記のように、追加・変更された要素として識別した動的要素に対してこれを識別するための動的要素ＩＤおよび追加画面部品識別ＩＤを設定し、これらを設定したタイミングで、設定した動的要素ＩＤと共に、インタラクション種別、インタラクションの属性を付加し、例えば動的要素記憶部に記憶する。
【００２９】
上述した本実施の形態における動的ウェブアプリケーションモデル生成装置の動作をまとめると、まず、インタラクション監視部で、ブラウザとウェブアプリケーションとの間のインタラクションを検知する（インタラクション監視ステップ）。次に、サーバー出力要素ＩＤ設定部１で、ウェブアプリケーションを実行することによって取得されるウェブコンテンツの要素にこれを識別するための要素ＩＤを設定する（サーバー出力要素ＩＤ設定ステップ）。次に、動的要素識別部３で、インタラクションにより生成される動的コンテンツの要素を判別し、判別した要素にこれを識別するための動的要素ＩＤを設定する（動的要素識別ステップ）。
【００３０】
これにより、インタラクションとインタラクションにより生成される動的コンテンツとの関係が識別できるようになる。また、インタラクションが発生した順番にこのインタラクションにより追加・変更された動的要素のＩＤが設定されるので、インタラクションの手順に応じて追加・変更される動的ウェブコンテンツを、インタラクションから一意に識別することが可能になる。
【００３１】
また、インタラクションにより動的に生成される動的ウェブコンテンツの要素、および連続する一連のインタラクションによって生成される動的ウェブコンテンツの要素を、インタラクションから一意に識別することができ、動的に生成されるウェブアプリケーションモデルを作成することが可能になる。例えば、モデル生成部で、要素ＩＤおよび動的要素ＩＤで識別される要素を関連付けて、インタラクションによる要素の遷移を表すモデルを生成すればよい。
【００３２】
［実施の形態２］
次に、本発明の実施の形態２について説明する。図２は、実施の形態２における動的ウェブアプリケーションモデル生成装置の機能構成を示す構成図である。この動的ウェブアプリケーションモデル生成装置は、サーバ出力要素ＩＤ設定部１１，インタラクション監視部１２，動的要素識別部１３，ウェブアプリケーションモデル記憶部１４，およびモデル生成部１５を備える。
【００３３】
サーバ出力要素ＩＤ設定部１１は、ウェブアプリケーション１６が実行されることによって生成（取得）されるウェブコンテンツ（ウェブ画面）を構成する各要素に要素ＩＤを設定する。また、インタラクション監視部１２は、ウェブアプリケーション１６の実行に関与するインタラクションを検知する。また、動的要素識別部１３は、検知されたインタラクションにより生成される動的コンテンツの要素（動的要素）判別し、これを識別するためのＩＤ（動的要素ＩＤ）を、この要素の情報と共に設定する。動的要素識別部１３は、ウェブアプリケーション１６が出力する要素の中で、検知されたインタラクションにより変化した要素を判別する。また、動的要素識別部１３は、インタラクションが発生した（検出された）順に、このインタラクションにより追加・変更された動的要素にＩＤを設定する。
【００３４】
ウェブアプリケーションモデル記憶部１４は、画面要素記憶部１４１および動的要素記憶部１４２を備える。画面要素記憶部１４１は、サーバ出力要素ＩＤ設定部１１が設定した要素ＩＤを記憶する。また、動的要素記憶部１４２は、動的要素識別部１３により設定された動的要素ＩＤ、およびこの要素が含まれている画面のＵＲＬ、画面構造上のパス情報と、付加されている要素情報とをする。
【００３５】
モデル生成部１５は、サーバ出力要素ＩＤ設定部１１，インタラクション監視部１２，動的要素識別部１３により解析され、ウェブアプリケーションモデル記憶部１４に記憶されたデータをもとに、ウェブアプリケーション１６により生成される画面の構造モデルを生成する。例えば、モデル生成部１５では、インタラクション手順と、このインタラクション手順によって変化し，また追加される部分をページ内に記述し、変化し，追加された部分をインタラクションに関連付け、一連のインタラクションによりページ内容が変化することを表すモデルを生成する。
【００３６】
次に、より詳細に説明する。
【００３７】
サーバー出力要素ＩＤ設定部１１は、ウェブアプリケーション１６により生成されるコンテンツの中の、静的部分とインタラクションにより動的に生成される部分を切り分けるため、静的に生成されるＨＴＭＬの各要素に対しては、静的要素ＩＤを設定する。静的要素ＩＤは、ウェブアプリケーション１６に対して発行されたＨＴＴＰリクエストの宛先ＵＲＩと、このＨＴＴＰリクエストのレスポンス中のＨＴＭＬ要素ごとに設定される。また、静的要素ＩＤは、ＵＲＩと静的要素のツリー構造上のパス（要素のパスのツリー構造）に基づいて一意に設定される。言い換えると、内容が同じ要素であっても、ＵＲＩ，画面上の位置などが異なれば、異なる要素ＩＤとなる。これによって、ウェブアプリケーション１６が出力する全てのＨＴＭＬ要素に、ＩＤが設定される。
【００３８】
なお、サーバー出力要素ＩＤ設定部１１は、ブラウザ１８とウェブアプリケーション１６の間の通信を中継する箇所に設置される。サーバー出力要素ＩＤ設定部１１が配置される箇所の好適な例は、ＨＴＴＰプロキシサーバである。また、サーバー出力要素ＩＤ設定部１１は、クライアント（端末装置）にインストールされるブラウザを拡張する機能を発現するプログラムに含まれていてもよい。
【００３９】
インタラクション監視部２２は、インタラクションが行われるかどうかを判別（検出）するために、インタラクションを監視する手段である。インタラクションを検知したら、インタラクションの情報とインタラクション情報が行われた画面の構造を動的要素識別部１３にわたし、動的要素識別部１３にインタラクションによって追加された要素があるかの判定の処理を委譲する。
【００４０】
動的要素識別部１３は、サーバー出力要素ＩＤ設定部１１が生成した要素ＩＤ、または、インタラクション監視部２２が検出したインタラクションが起こる前までのインタラクションで付与された要素ＩＤがあるか否かを確認することで、当該インタラクションによって生成（追加・変更）された要素（動的要素）かどうかを識別する。識別した動的要素に動的要素ＩＤを設定し、識別された動的要素群が含まれる追加された画面を識別するため追加画面部品識別ＩＤを各動的要素に設定し、これらを画面要素記憶部１４１に記憶する。また、動的要素記憶部１４２に、設定された動的要素ＩＤの動的要素が、どのイベント（インタラクション）により生成されたかを記憶する。
【００４１】
モデル生成部１５は、図２に示すように、ウェブアプリケーションモデル記憶部１４の
画面要素記憶部１４１に記憶された要素ＩＤの要素と、動的要素記憶部１４２に記憶された動的要素ＩＤおよび対応する情報を用い、検出されたインタラクションに応じ、ウェブアプリケーション１６が要素を追加・変更することを示す抽象モデルを作成して出力する。
【００４２】
次に、本実施の形態における動的ウェブアプリケーションモデル生成装置の動作について図２および図３のフローチャートを用いて説明する。まず、ステップＳ１０で、ブラウザ１８とウェブアプリケーション１６の間でインタラクションが行われると、ステップＳ２０で、インタラクション監視部２２が、行われたインタラクションを検知する。
【００４３】
次に、サーバー出力要素ＩＤ設定部１１が、ウェブアプリケーション１６の実行によって取得されるウェブコンテンツの要素、例えば、ウェブアプリケーション１６により生成されるＨＴＭＬの各要素に対して要素ＩＤを設定し、これを画面要素記憶部１４１に記憶する。要素ＩＤは、発行されたＨＴＴＰリクエストの宛先ＵＲＩ、このリクエストのレスポンス中のＨＴＭＬ要素ごとに設定される。また、要素ＩＤは、ＵＲＩと要素のツリー構造上のパスに基づいて一意に設定される。また、サーバー出力要素ＩＤ設定部１１は、要素ＩＤを設定した後、画面要素記憶部１４１に、設定した要素ＩＤ、当該要素ＩＤが静的要素か動的要素かを示す値、当該要素ＩＤが設定された要素の画面上のパス（位置）、要素自身、およびレスポンスに対応するリクエストが送られたベースＵＲＬを記憶する。
【００４４】
次に、ステップＳ３０で、動的要素識別部１３が、検出されたインタラクションに伴って追加・変更された動的要素を識別（判別）し、判別した動的要素に動的要素ＩＤを設定する。ここで、ステップＳ３０について、図４のフローチャートを用いてより詳細に説明する。まず、ステップＳ３１で、動的要素識別部１３が、発生（検出）したインタラクションの前後で動的ウェブコンテンツの要素群の比較を行い、検出されたインタラクションにより追加・変更された要素の存在を識別する。動的要素識別部１３は、識別した要素の中で、既に存在している動的要素ＩＤがなく、かつ動的要素識別部１３によってＩＤが設定されていない要素であることを判定する。
【００４５】
次に、ステップＳ３２で、動的要素識別部１３は、識別した要素が、動的要素識別部１３によって動的要素ＩＤが設定されていなければ、ＵＲＩとＨＴＭＬのツリー構造上のパスが識別できるユニークな動的要素ＩＤを設定する。パス表現の好適な実施例は、ＸＰＡＴＨまたはＸＱＵＥＲＹである。また、動的要素識別部１３は、インタラクションによって追加された一連の要素群に追加画面部品識別ＩＤを設定し、動的要素記憶部１４２に記憶する。従って、新たにＩＤが設定される動的要素には、追加画面部品識別ＩＤと動的要素ＩＤとが設定される。また、これらのＩＤと共に、静的要素か動的要素かを示す値（動的）、対象となる動的要素の画面上のパス（位置）、要素自身、操作対象の画面のＵＲＬを、画面要素記憶部１４１に記憶する。
【００４６】
次に、ステップＳ３３で、識別された動的要素に、インタラクションによって生成される要素全体に対して追加画面部品識別ＩＤを設定し、動的要素記憶部１４２に記憶する。
【００４７】
モデル生成部１５は、ウェブアプリケーションモデル記憶部１７に記憶されたデータから、ウェブアプリケーションモデルを生成する。生成方法は、動的要素記憶部１４２に記憶された全ての動的要素ＩＤを順にみていき、前の動的要素ＩＤがあるものを、該当するインタラクションと関連付ける。動的要素ＩＤから、このＩＤに対応して画面要素記憶部１４１に記憶されているＵＲＬを参照することで、インタラクションにおける操作対象となった画面のＵＲＬが識別できる。従って、すべてのリクエストの関連を設定することで、インタラクションの繋がりを関連付けることができる。
【００４８】
まず、インタラクションを関連付け、これらのインタラクションで追加された情報を画面のベースＵＲＬを元に表示する。次に、これらの画面のベースＵＲＬに対して追加された要素（動的要素）を動的要素ＩＤを用いて画面要素記憶部１４１から取得することで、画面に追加された要素を関連付ける。これを、動的要素記憶部１４２に記憶された全ての要素ＩＤに対して行うことにより、ウェブアプリケーションモデルを生成して出力する。
【００４９】
モデル生成部１５は、ウェブアプリケーションモデル記憶部１４にデータが記憶されていればモデルを生成することができる。また、モデル生成部１５によるモデルの生成タイミングは、インタラクションが行われている最中でも、インタラクション終了後のタイミングでも良い。
【００５０】
［実施の形態３］
次に、本発明の実施の形態３について説明する。本実施の形態３における動的ウェブアプリケーションモデル生成装置は、図５に示すように、サーバ出力要素ＩＤ設定部１０１，インタラクション監視部１０２，動的要素識別部１０３，ウェブアプリケーションモデル記憶部１０４，およびモデル生成部１０５を備える。ここで、本実施の形態では、インタラクション監視部１０２は、インタラクションとしてリクエストの発生を監視するリクエスト監視部１０２１と、インタラクションとしてユーザーによる操作入力を監視するユーザー操作監視部１０２２とを備える。
【００５１】
まず、サーバ出力要素ＩＤ設定部１０１は、サーバ側ウェブアプリケーション１０７が実行されることによって生成（取得）されるウェブコンテンツ（ウェブ画面）を構成する各要素に要素ＩＤを設定する。
【００５２】
インタラクション監視部１０２において、リクエスト監視部１０２１は、サーバ側ウェブアプリケーション１０７に送出されたリクエストの発生を、インタラクションとして監視（検出）する。また、ユーザー操作監視部１０２２は、端末側ウェブアプリケーションが受け付けたユーザの操作入力を、インタラクションとして監視（検出）する。
【００５３】
動的要素識別部１０３は、検知されたインタラクションにより生成される動的コンテンツの要素（動的要素）を判別し、判別した動的要素にこれを識別するためのＩＤ（動的要素ＩＤ）を、この要素の情報（属性）と共に設定する。要素の属性は、後述するように、ユーザー操作の種類、動的要素ＩＤを設定した要素そのもの、および動的要素ＩＤを設定した要素の画面構造上のパス（位置）を含むものである。また、動的要素識別部１０３は、インタラクションが発生した（検出された）順に、このインタラクションにより追加・変更された動的要素にＩＤを設定する。
【００５４】
ウェブアプリケーションモデル記憶部１０４は、画面要素記憶部１０４１および動的要素記憶部１０４２を備える。画面要素記憶部１０４１は、サーバ出力要素ＩＤ設定部１０１が設定した要素ＩＤを記憶する。また、動的要素記憶部１０４２は、動的要素識別部１０３により設定された動的要素ＩＤ、およびこの要素が含まれている画面のＵＲＬ、画面構造上のパス情報と、付加されている要素情報とを記憶する。
【００５５】
また、モデル生成部１０５は、サーバ出力要素ＩＤ設定部１０１，インタラクション監視部１０２，動的要素識別部１０３により解析され、ウェブアプリケーションモデル記憶部１０４に記憶されたデータをもとに、端末側ウェブアプリケーション１０６およびサーバ側ウェブアプリケーション１０７により生成される画面の構造モデルを生成する。例えば、モデル生成部１０５では、インタラクション手順と、このインタラクション手順によって変化し，また追加される部分をページ内に記述し、変化し，追加された部分をインタラクションに関連付け、一連のインタラクションによりページ内容が変化することを表すモデルを生成する。
【００５６】
次に、より詳細に説明する。
【００５７】
サーバー出力要素ＩＤ設定部１０１は、端末側ウェブアプリケーション１０６およびサーバ側ウェブアプリケーション１０７により生成されるコンテンツの静的部分とインタラクションにより動的に生成される部分を切り分けるため、静的に生成されるＨＴＭＬの要素に対しては、静的要素ＩＤを設定する。また、要素ＩＤは、サーバ側ウェブアプリケーション１０７に対して発行されたＨＴＴＰリクエストの宛先ＵＲＩと、このＨＴＴＰリクエストのレスポンス中のＨＴＭＬ要素ごとに設定される。また、要素ＩＤは、ＵＲＩと要素のツリー構造上のパスに基づいて一意に設定される。言い換えると、内容が同じ要素であっても、ＵＲＩ，画面上の位置などが異なれば、異なる要素ＩＤとなる。これによって、サーバ側ウェブアプリケーション１０７が出力する全てのＨＴＭＬ要素に、要素ＩＤが設定される。
【００５８】
なお、サーバー出力要素ＩＤ設定部１０１は、ブラウザ１００とサーバ側ウェブアプリケーション１０７との間の通信を中継する箇所に設置される。サーバー出力要素ＩＤ設定部１０１が配置される箇所の好適な例は、ＨＴＴＰプロキシサーバである。また、サーバー出力要素ＩＤ設定部１０１は、クライアントにインストールされるブラウザを拡張する機能を発現するプログラムに含まれていてもよい。
【００５９】
インタラクション監視部１０２において、リクエストを監視するリクエスト監視部１０２１は、ユーザーのブラウザ１００に対する操作入力により発生するリクエストを監視（検出）する。リクエスト監視部１０２１は、リクエストの発生を検知すると、検知したリクエストに対するレスポンスのＨＴＭＬ（画面）およびＨＴＭＬ情報を，サーバ出力要素ＩＤ設定部１０１に通知する。この通知により、サーバ出力要素ＩＤ設定部１０１は、前述したように、ＨＴＭＬ要素ごとに静的要素ＩＤを設定する。また、サーバ出力要素ＩＤ設定部１０１は、図６に示すように、各要素ＩＤに、静的要素か動的要素かを示す値，この要素の画面構造上のパス情報（位置），この要素そのもの，およびＨＴＭＬのＵＲＬを対応させて画面要素記憶部１０４１に記憶する。
【００６０】
また、インタラクション監視部１０２において、ユーザー操作監視部１０２２は、ユーザーのブラウザ１００に対する操作入力を監視（検出）する。ユーザー捜査官支部１０２２は、ユーザー操作を検知すると、ユーザーの操作情報（どの位置のどの要素に対してどの様な操作をしたか）および画面における操作対象となる要素情報を、動的要素識別部１０３に通知する。
【００６１】
動的要素識別部１０３は、通知された要素の中で、まだ要素ＩＤが設定されていない要素を動的要素と判定する。このようにして判定した動的要素に対し、動的要素識別部１０３は、ＵＲＩとＨＴＭＬのツリー構造上のパスが識別可能なユニークな動的要素ＩＤを設定する。また、動的要素識別部１０３は、図７に示すように、設定した動的要素ＩＤに、操作の順番を示す操作ＩＤ，操作（イベント）の内容（ユーザー操作の種類），対象となる動的要素のパス，検出した操作により追加された要素の要素ＩＤ，検出した操作により追加された要素の部品識別ＩＤ，および当該操作の１つ前の操作ＩＤを対応づけ、動的要素記憶部１０４２に記憶する。なお、パス表現の好適な実施例は、ＸＰＡＴＨまたはＸＱＵＥＲＹである。
【００６２】
次に、本実施の形態３における動的ウェブアプリケーションモデル生成装置の動作例について図８および図９のフローチャートを用いて説明する。まず、図８に示すように、ステップＳ１０１で、ユーザーの操作によりクライアント（ブラウザ１００）からサーバ側ウェブアプリケーション１０７にリクエストが送られると、ステップＳ１０２で、リクエスト監視部１０２１は、ブラウザ１００からのリクエストを検知する。また、リクエスト監視部１０２１は、検知したリクエストに対応する要素に対する要素ＩＤの設定を、サーバー出力要素ＩＤ設定部１０１に依頼する。ここでは、リクエスト監視部１０２１は、サーバー出力要素ＩＤ設定部１０１に、リクエストと画面のＨＴＭＬ情報を渡す。
【００６３】
これにより、サーバー出力要素ＩＤ設定部１０１が、静的に生成されるＨＴＭＬの要素に対し、静的要素ＩＤを設定する。この静的要素ＩＤは、発行されたＨＴＴＰリクエストの宛先ＵＲＩおよび当該リクエストのレスポンス中のＨＴＭＬ要素ごとに、これらが識別されるように設定されている。また、設定される要素ＩＤは、ＵＲＩと要素のツリー構造上のパスに基づいて一意に設定されている。サーバー出力要素ＩＤ設定部１０１は、要素ＩＤを設定した後、図６に示すように、画面要素記憶部１０４１に、設定した要素ＩＤ、この要素ＩＤの要素が静的要素か動的要素かを示す値、要素ＩＤの要素の画面上のパス（位置）、要素自身、および検知したレスポンスに対応するリクエストが送られたベースＵＲＬを記憶する。
【００６４】
次に、ステップＳ２０１で、ユーザーにより端末側ウェブアプリケーション１０６が操作されると、ステップＳ２０２で、ユーザー操作監視部１０２２が、ユーザーの操作イベント（インタラクション）を検知する。この検知により、ステップＳ３００で、動的要素識別部１０３が、ユーザーの操作により発生した追加要素（動的要素）を識別（判別）し、識別した追加要素に動的要素ＩＤを設定する。
【００６５】
図９は、動的要素識別部１０３による動的要素ＩＤ設定の手順を示すフローチャートである。まず、動的要素識別部１０３は、ステップＳ３１０で、識別した要素に対して既に要素ＩＤが設定されているかを調べ、要素ＩＤが設定されていなければ、ユーザー操作によって端末側ウェブアプリケーション１０６で生成された動的コンテンツの要素（動的要素）であると判断する。
【００６６】
次に、ステップＳ３２０で、動的要素識別部１０３は、判断した動的要素に、ＵＲＩとＨＴＭＬのツリー構造上のパス毎に、これらが識別可能な動的要素ＩＤを設定する。次に、ステップＳ３３０で、動的要素識別部１０３は、検出したユーザーの操作によって生成された各動的要素に対し、これが、検出されたユーザーの操作によって生成された同一の画面の要素であることを示す追加画面部品識別ＩＤを設定する。
【００６７】
また、動的要素識別部１０３は、図７に示すように、操作対象の要素ＩＤ，ユーザーが行った操作の種類（イベント），操作によって生成された要素のパス（増加分パス），操作によって発生した動的要素ＩＤ、操作によって発生した画面中の要素群を識別するための追加画面部品ＩＤ，およびこの操作の前の操作のＩＤ（前操作ＩＤ）を、操作の順番を示す操作ＩＤ毎に動的要素記憶部１０５２に記憶する。
【００６８】
このようにして、図６、図７に示すようなデータ構造として、ウェブアプリケーションモデル記憶部１０５にウェブアプリケーションモデルのデータが記憶される。
【００６９】
以下、実施の形態３について、図１０および図１１を用いてより詳細に説明する。図１０は、ユーザーの操作により、ウェブアプリケーションが、アプリケーションに要素を追加する状態を説明する構成図である。
【００７０】
図１０において、画面１２０１は、ユーザーの操作により最初にアクセスされた画面である。ユーザーがアクセスの操作をすると、サーバー出力要素ＩＤ設定部１０１が、アクセスした画面のベースのＵＲＩとして「ｈｔｔｐ：／／Ｐ」を認識し、当該アクセスに対するレスポンス中に含まれる要素として「Ｂ」があることを認識する。次いで、サーバー出力要素ＩＤ設定部１０１は、図６に示すように、要素Ｂに要素ＩＤ１を設定し、これが静的要素であることを示す「静的」、位置（パス）として／Ａ／Ｂ、要素として要素Ｂ全体、ベースＵＲＬとして「ｈｔｔｐ：／／Ｐ」を画面要素記憶部１０５１に記憶する。
【００７１】
続いて、画面１２０１でユーザーが要素Ｂをクリック（シングルクリック）すると、画面Ｐの要素中に新たな要素Ｘが生成された画面１２０２が表示される。このとき、ユーザーによる要素Ｂのクリックが、ユーザー操作監視部１０２２によりユーザーの操作イベントとして検出される。この検出により、動的要素識別部１０３が、検出されたイベントにより新たに生成された要素を調べる。
【００７２】
新たに生成された要素Ｘは、画面要素記憶部１０５１に記憶されておらず、また、要素Ｘには、サーバー出力要素ＩＤ設定部１０１によってＩＤが設定されていない。このことにより、動的要素識別部１０３は、要素Ｘは、ユーザー操作により新たに生成された動的要素であると判断し、図７に示すように、ＵＲＩとＨＴＭＬのツリー構造上のパスにユニークな動的要素ＩＤとして、要素Ｘに対して２を設定する。また、動的要素識別部１０３は、操作対象が／Ｂの要素であるので操作対象要素ＩＤとして１を設定する。また、操作イベントとして「Ｃｌｉｃｋ」を設定する。また、増加した要素Ｘのパス「／Ａ／Ｂ／Ｘ」を増加分パスに設定する。また、動的要素識別部１０３は、対象となる動的要素は、初めて検出されたイベントにより生成された要素であるので、操作ＩＤと相手１を設定する。また、追加画面部品識別ＩＤとして「ＸＸＸ」を設定する。また、動的要素識別部１０３は、これらの設定を、動的要素記憶部１０５２に記憶する。
【００７３】
また、画面１２０２でユーザが要素Ｘをシングルクリックすることにより表示される画面Ｐの要素Ｘが要素Ｙに変更された画面１２０３、および、画面１２０２でユーザが要素Ｘをダブルクリックすることにより表示される画面Ｐの要素Ｘが要素Ｙ２に変更された画面１２０４についても、上述同様に、新たに生成した動的要素Ｙ，動的要素Ｙ２対し、動的要素ＩＤが設定され、対応する情報が設定されて動的要素記憶部１０４２に記憶される。
【００７４】
次に、モデルの生成について説明する。モデル生成部１０５は、動的要素記憶部１４２に記憶されている全ての操作ＩＤを順にみていき、前操作ＩＤがあるものを、その操作と関連付ける。動的要素ＩＤから、画面要素記憶部１４２の要素ＩＤに対応するレコードを取得し、取得したレコード中のベースＵＲＬを取得することで、対象となる画面のＵＲＬが識別できる。従って、すべての操作の関連を設定することで、操作間の繋がりを関連付けることができる。図７の例では、操作ＩＤ２および操作ＩＤ３は、操作ＩＤ１の操作と関連があることを示している。このように、操作を関連付け、これらの操作で新たに生成された動的要素を、動的要素記憶部１０５２に記憶された増加分パスで取得する。
【００７５】
動的要素が生成された対象のＵＲＬは、動的要素記憶部１０５２の操作対象要素ＩＤに対応する画面要素記憶部１０５１の要素の画面のベースＵＲＬからわかる。従って、ベースＵＲＬの画面に対して追加された動的要素を、要素ＩＤを用いて画面要素記憶部１０５１から取得することで、画面に追加された要素を関連付ける。これを全ての操作に対して行うことで、図１１に示すようなウェブアプリケーションモデルが生成され、ユーザーに視認可能に出力される。
【００７６】
図１１に示すモデルについて説明すると、まず、図６に示す要素ＩＤ１の要素１３０１，要素ＩＤ２の要素１３０３，要素ＩＤ３の要素１３０６，および要素ＩＤ４の要素１３０６が、各要素間の遷移の方向を示す矢印と共に表示される。また、各要素間の遷移の起源となるインタラクションであるユーザーイベント１３０２，１３０４，１３０５が表示される。また、各々の要素に対し、位置（パス）および静的要素であるか動的要素であるかを示すコメント１３０１ａ，１３０３ａ，１０３６ａ，および１３０７ｂが表示される。このモデルを確認することで、例えば、要素１３０３の表示は、要素１３０１の表示をシングルクリックすることで生成される動的要素であることがわかる。また、要素１３０３の表示をシングルクリックすると要素１３０６が表示され、要素１３０３の表示をダブルクリックすると要素１３０７が表示されることがわかる。
【００７７】
モデル利用部１０１は、モデル生成部１０５が生成したモデルを元に、動的画面をカスタマイズするために、ウェブアプリケーションのカスタマイズできる画面箇所を表示するなどして、モデル生成部１０５の出力結果を用いる。
【００７８】
［実施の形態４］
次に、本発明の実施の形態４について説明する。本実施の形態では、インタラクションとして、主にリクエストを対象にした場合について示す。本実施の形態４における動的ウェブアプリケーションモデル生成装置は、図１２に示すように、サーバ出力要素ＩＤ設定部２１０１，リクエスト監視部２１０２，動的要素識別部２１０３，ウェブアプリケーションモデル記憶部２１０４，およびモデル生成部１０５を備える。ここで、本実施の形態では、リクエスト監視部２１０２、インタラクションとしてリクエストの発生を監視する。
【００７９】
まず、サーバ出力要素ＩＤ設定部２１０１は、ウェブアプリケーション２１０７が実行されることによって生成（取得）されるウェブコンテンツ（ウェブ画面）を構成する各要素に要素ＩＤを設定する。
【００８０】
リクエスト監視部２１０２は、ウェブアプリケーション２１０７に送出されたリクエストの発生を、インタラクションとして監視（検出）する。
【００８１】
動的要素識別部２１０３は、検知されたリクエストに対するレスポンス（動的コンテンツ）の要素（動的要素）を判別し、判別した動的要素にこれを識別するためのＩＤ（動的要素ＩＤ）を、要素の情報およびインタラクション監視部２１０２が検知したリクエストの属性と共に設定する。要素の情報は、要素そのもの、要素の画面構造上のパス（位置）を含む。また、リクエストの属性は、リクエストのメソッド，ヘッダ，パラメータを含むものである。また、動的要素識別部２１０３は、リクエストが発生した（検出された）順に、このリクエストにより追加・変更された動的要素にＩＤを設定する。
【００８２】
ウェブアプリケーションモデル記憶部２１０４は、画面要素記憶部２１４１および動的要素記憶部２１４２を備える。画面要素記憶部２１４１は、サーバ出力要素ＩＤ設定部２１０１が設定した要素ＩＤを記憶する。また、動的要素記憶部２１４２は、動的要素識別部２１０３により設定された動的要素ＩＤ、およびこの要素が含まれている画面のＵＲＬ、画面構造上のパス情報と、付加されている要素情報とを記憶する。
【００８３】
また、モデル生成部２１０５は、サーバ出力要素ＩＤ設定部２１０１，リクエスト監視部２１０２，動的要素識別部２１０３により解析され、ウェブアプリケーションモデル記憶部２１０４に記憶されたデータをもとに、ウェブアプリケーション２１０７により生成される画面の構造モデルを生成する。例えば、モデル生成部２１０５では、リクエストの順と、このリクエストの順によって変化し，また追加される部分をページ内に記述し、変化し，追加された部分をリクエストに関連付け、一連のリクエストによりページ内容が変化することを表すモデルを生成する。
【００８４】
次に、より詳細に説明する。
【００８５】
サーバー出力要素ＩＤ設定部２１０１は、ウェブアプリケーション２１０７により生成されるコンテンツの静的部分とインタラクションにより動的に生成される部分を切り分けるため、静的に生成されるＨＴＭＬの要素に対しては、静的要素ＩＤを設定する。また、要素ＩＤは、ウェブアプリケーション２１０７に対して発行されたＨＴＴＰリクエストの宛先ＵＲＩと、このＨＴＴＰリクエストのレスポンス中のＨＴＭＬ要素ごとに設定される。また、要素ＩＤは、ＵＲＩと要素のツリー構造上のパスに基づいて一意に設定される。言い換えると、内容が同じ要素であっても、ＵＲＩ，画面上の位置などが異なれば、異なる要素ＩＤとなる。これによって、ウェブアプリケーション２１０７が出力する全てのＨＴＭＬ要素に、要素ＩＤが設定される。
【００８６】
なお、サーバー出力要素ＩＤ設定部２１０１は、ブラウザ２１００とウェブアプリケーション２１０７との間の通信を中継する箇所に設置される。サーバー出力要素ＩＤ設定部２１０１が配置される箇所の好適な例は、ＨＴＴＰプロキシサーバである。また、サーバー出力要素ＩＤ設定部２１０１は、クライアントにインストールされるブラウザを拡張する機能を発現するプログラムに含まれていてもよい。
【００８７】
リクエスト監視部２１０２は、ユーザーのブラウザ２１００に対する操作入力により発生するリクエストを監視（検出）する。リクエスト監視部２１０２は、リクエストの発生を検知すると、検知したリクエストに対するレスポンスのＨＴＭＬ（画面）およびＨＴＭＬ情報を，サーバ出力要素ＩＤ設定部２１０１に通知する。この通知により、サーバ出力要素ＩＤ設定部２１０１は、前述したように、ＨＴＭＬ要素ごとに静的要素ＩＤを設定する。
【００８８】
サーバ出力要素ＩＤ設定部２１０１は、図１３に示すように、要素ＩＤに、対応するリクエストを識別するリクエストＩＤ、この要素のレスポンス画面構造上のパス情報（位置），この要素，およびＨＴＭＬのＵＲＬ（ベースＵＲＬ）を対応させて画面要素記憶部２１４１に記憶する。加えて、サーバー出力要素ＩＤ設定部２１０１は、リクエストＩＤをキーにし、動的要素記憶部２１４２に、追加された要素の要素ＩＤを記憶する。
【００８９】
動的要素識別部２１０３は、検出された同一ユーザーの一連のリクエストのうち連続するリクエストのレスポンスを比較し、リクエストが送られる前の画面のＨＴＭＬ要素群を画面要素記憶部２１４１から取得し、リクエスト監視部２１０２により検出されたユーザーのリクエストへのレスポンスを比較する。検出される各レスポンス中のＨＴＭＬを構成している要素は、サーバー出力要素ＩＤ設定部２１０１が設定した要素ＩＤを備えている。これら要素の中で、対象とするリクエストのレスポンスには含まれているが、１つ前のリクエストのレスポンスは含まれていない要素ＩＤを、リクエストＩＤに対応させて動的要素記憶部２１４２に記憶（追加記憶）する。
【００９０】
例えば、図１３に示すように、画面要素記憶部２１４１にリクエストＩＤ１の要素として要素ＩＤ１と要素ＩＤ２とが記憶されている。リクエストＩＤ１は、これ以前のリクエストがないため、対象とするリクエスト（リクエストＩＤ１）のレスポンスには含まれているが、１つ前のリクエスト（存在しない）のレスポンスは含まれていない要素ＩＤは、要素ＩＤ１および要素ＩＤ２である。従って、動的要素識別部２１０３は、図１４に示すように、リクエストＩＤ１に対応させ、追加要素ＩＤに１、２を追加する。また、リクエストＩＤ１には、これより前のリクエストがないので、前リクエストＩＤは「なし」となる。なお、図１４に示すように、動的要素記憶部２１４２には、リクエストＩＤに対応させて、リクエストメソッド、リクエストヘッダ、リクエストパラメータが記憶されている。これらの記憶は、リクエスト監視部２１０２により、リクエストを検出した段階で行われる。
【００９１】
次に、本実施の形態における動的ウェブアプリケーションモデル生成装置の動作例について、図１５のフローチャートを用いて説明する。まず、ステップＳ２１００で、ユーザーの操作によりクライアント（ブラウザ２１００）からウェブアプリケーション２１０７にリクエストが送られると、ステップＳ２２００で、リクエスト監視部２１０２がリクエストを検知する。続いて、リクエスト監視部２１０２は、サーバー出力要素ＩＤ設定部２１０１に、レスポンスのＨＴＭＬ要素に対するＩＤ設定の依頼を行う。
【００９２】
この依頼により、サーバー出力要素ＩＤ設定部２１０１は、ウェブアプリケーション２１０７によるレスポンスを待つ。ウェブアプリケーション２１０７よりレスポンスが返された段階で、このレスポンス中の静的または動的に生成されるＨＴＭＬの各要素に対し、サーバー出力要素ＩＤ設定部２１０１が要素ＩＤを設定する。この要素ＩＤは、発行されたＨＴＴＰリクエストの宛先ＵＲＩとそのリクエストのレスポンス中のＨＴＭＬ要素ごと設定される。また、要素ＩＤは、ＵＲＩと要素のツリー構造上のパスに基づいて一意に設定される。
【００９３】
サーバー出力要素ＩＤ設定部２１０１は、要素ＩＤを設定した後、画面要素記憶部２１４１に、要素ＩＤ、当該要素の画面（レスポンス）上のパス、要素自身、検出されたレスポンスに対応するリクエストが送られたベースＵＲＬ、および、リクエストにより追加された部分全体に対する識別としての追加画面部品識別ＩＤを記憶する。
【００９４】
ステップＳ２３００で、動的要素識別部２１０３は、検出されたリクエストを送る前のリクエストのレスポンスに割り当てられたＩＤの要素群を、パスおよびトップの要素の属性値で比較をする。パスが全て同一でかつ属性値も同一な場合は、追加・変更された動的要素がないと判断する。パスが同一でない場合は動的要素であると認識し、画面要素記憶部２１４１に要素変更種別として、追加を記憶する。また、パスが同一でこのパスの要素の属性値が異なる場合には、画面要素記憶部２１４１に要素変更種別として、変更を記憶する。例えば、図１３に示すように、要素ＩＤ４のパス「／Ｂ／Ｘ／Ｙ２」は、１つ前のリクエストＩＤ１にはないので、要素ＩＤ４の要素変更種別は追加となるが、要素ＩＤ５のパス「／Ｂ／Ｘ／Ｙ２”」は、１つ前のリクエストＩＤ２の要素ＩＤ４のパスが同一で属性値が異なるので、要素ＩＤ５の要素変更種別は変更となる。
【００９５】
以下、実施の形態４について、図１６および図１７を用いてより詳細に説明する。図１６は、リクエストにより、ウェブアプリケーション２１０７が、画面に要素を追加する状態を説明するための構成図である。
【００９６】
まず、画面２２０１は、ユーザーの操作により最初にアクセスされた画面である。ユーザーがアクセスの操作をすると、ブラウザ２１００よりウェブアプリケーション２１０７にリクエストが送出され、このリクエストがリクエスト監視部２１０２に検知される。リクエスト監視部２１０２は、リクエストを検知して、リクエストパスが「／ｐｏｓｔｓ」、リクエストメソッドが「ＧＥＴ」、ヘッダはなし、リクエストパラメータはなし、として動的要素記憶部２１４２に記憶する（図１４）。また、このリクエストの前には、ウェブアプリケーション２１０７に対してリクエストが送られていないので、前リクエストＩＤはなしとして動的要素記憶部２１４２に記憶する。
【００９７】
続いて、リクエスト監視部２１０２は、リクエストを検知したらリクエストと画面のＨＴＭＬ情報をサーバー出力要素ＩＤ設定部２１０１に渡し、サーバー出力要素ＩＤ設定部２１０１に、ＩＤ設定処理を委譲する。
【００９８】
サーバー出力要素ＩＤ設定部２１０１は、検知されたリクエストの宛先のＵＲＩとして「ｈｔｔｐ：／／Ｐ」を、画面のレスポンス中に含まれる要素として「Ｂ」があることを認識し、要素Ｂにサーバーで出力されたことを示すために要素ＩＤとして１を設定する。（図１３）また、要素Ｂの全体「<bstyle=~><x></x></b>」を、画面要素記憶部２１４１に記憶する。また、このリクエスト（リクエストＩＤ１）中には、／Ｂのパスの要素（要素ＩＤ１）と／Ｂ／Ｘのパスの要素（要素ＩＤ２）があるため、／Ｂ／Ｘの要素についても同様に画面要素記憶部２１４１に記憶する。
【００９９】
また、／Ｂ、および／Ｂ／Ｘの要素は、同一のリクエストに対するレスポンスに含まれる要素で、また追加された要素であるので、同じ追加画面部品Ｉ識別Ｄ「ＭＭＭ」を設定し、画面要素記憶部２１４１に記憶する。
【０１００】
また、動的要素識別部２１０３では、前のリクエストを比較し、異なるパスがあるかを確認する。リクエストＩＤ１のリクエストは、前にリクエストが存在していないので、パスが／Ｂ、／Ｂ／Ｘの要素は、新規追加要素であると認識し、動的要素記憶部２１４２に、リクエストＩＤをキーにして追加されたと認識された要素である要素ＩＤ１および要素ＩＤ２を追加要素ＩＤとして記憶する（図１４）。
【０１０１】
次に、画面２２０１の状態より、リクエストパスが「／ｐｏｓｔｓ」、リクエストメソッドが「ＰＯＳＴ」、ヘッダとして「Ｃｏｏｋｉｅ：ａｕｔｈ＝０」、リクエストパラメータとして「Ｕｓｅｒ＝ｎｏｎｅ」というリクエストがウェブアプリケーション２１０７に送出されると、画面２２０２に遷移する。言い換えると、上述したリクエストにより、画面２２０２がレスポンスとして返される。画面２２０２では、「Ｙ」という要素が追加される。
【０１０２】
この場合、リクエスト監視部２１０２は、リクエスト（リクエストＩＤ２）を検知して、リクエストパスが「／ｐｏｓｔｓ」、リクエストメソッドが「ＰＯＳＴ」、ヘッダとして「Ｃｏｏｋｉｅ：ａｕｔｈ＝０」、リクエストパラメータとして「Ｕｓｅｒ＝ｎｏｎｅ」を、動的要素記憶部２１４２に記憶する。また、画面２２０１での画面を表示するためにリクエストＩＤ１のリクエストで「ＧＥＴ」が送られており、前リクエストＩＤは１とし、動的要素記憶部２１４２に記憶する。
【０１０３】
ここで、リクエストＩＤ２に対するレスポンスの中のパスが／Ｂおよび／Ｂ／Ｘの要素は、既に、要素ＩＤが設定されて画面要素記憶部２１４１に格納されている。このため、サーバー出力要素ＩＤ設定部２１０１は、リクエストＩＤ２に対するレスポンスの中のパスが／Ｂおよび／Ｂ／Ｘの要素には、要素ＩＤは設定しない。一方、リクエストＩＤ２のレスポンスにおいては、パスが／Ｂ／Ｘ／Ｙという要素「Ｙ」が追加されている。このため、要素「Ｙ」には、／Ｂ／Ｘ／ＹというパスおよびリクエストＩＤ２のＵＲＩのペアに対してユニークなＩＤ３を設定する。
【０１０４】
また、パスが／Ｂ／Ｘ／Ｙの要素に対し、同じリクエスト（リクエストＩＤ２）で追加されたことを示すためのＩＤとして、追加画面部品Ｉ識別Ｄ「ＸＸＸ」を設定し、画面要素記憶部２１４１に記憶する。
【０１０５】
動的要素識別部２１０３は、画面２２０２に遷移する前のリクエストＩＤ１とリクエストＩＤ２とを比較し、異なるパス（要素）があるかを確認する。リクエストＩＤ１のリクエストが前リクエストであるため、これにより追加された／Ｂおよび／Ｂ／Ｘの要素（要素ＩＤ１，２）と、今回のリクエスト（リクエストＩＤ２）に対するレスポンス中の要素とを比較する。リクエストＩＤ２に対するレスポンスには、パスが／Ｂ、／Ｂ／Ｘの要素はあるが、パスが／Ｂ／Ｘ／Ｙの要素が存在しないため、これを追加要素であると識別する。また、動的要素記憶部２１４２に、リクエストＩＤをキーにして追加されたと認識された要素ＹのＩＤ３を記憶する。
【０１０６】
一方、画面２２０１の状態より、リクエストパスが「／ｐｏｓｔｓ」、リクエストメソッドが「ＰＯＳＴ」、ヘッダとして「Ｃｏｏｋｉｅ：ａｕｔｈ＝１」、リクエストパラメータとして「Ｕｓｅｒ＝ｙｙｙ」というリクエストがウェブアプリケーション２１０７に送出されると、画面２２０３に遷移する。言い換えると、上述したリクエストにより、画面２２０３がレスポンスとして返される。画面２２０３では、「Ｙ２」という要素が追加される。この画面２２０３への遷移におけるリクエストでは、画面２２０２の場合とはリクエストヘッダが異なり、このことにより、レスポンスが異なる。
【０１０７】
この場合、リクエスト監視部２１０２は、リクエスト（リクエストＩＤ３）を検知して、リクエストパスが「／ｐｏｓｔｓ」、リクエストメソッドが「ＰＯＳＴ」、ヘッダとして「Ｃｏｏｋｉｅ：ａｕｔｈ＝１」、リクエストパラメータとして「Ｕｓｅｒ＝ｙｙｙ」を、動的要素記憶部２１４２に記憶する。また、画面２２０１での画面を表示するためにリクエストＩＤ１のリクエストで「ＧＥＴ」が送られており、前リクエストＩＤは１とし、動的要素記憶部２１４２に記憶する。
【０１０８】
ここで、この場合においても、リクエストＩＤ３に対するレスポンスの中のパスが／Ｂおよび／Ｂ／Ｘの要素は、既に、要素ＩＤが設定されて画面要素記憶部２１４１に格納されている。このため、サーバー出力要素ＩＤ設定部２１０１は、リクエストＩＤ３に対するレスポンスの中のパスが／Ｂおよび／Ｂ／Ｘの要素には、要素ＩＤは設定しない。一方、このリクエストＩＤ３のレスポンスにおいては、パスが／Ｂ／Ｘ／Ｙ２という要素「Ｙ２」が追加されている。このため、要素「Ｙ２」には、／Ｂ／Ｘ／Ｙ２というパスおよびリクエストＩＤ３のＵＲＩのペアに対してユニークなＩＤ４を設定する。
【０１０９】
また、パスが／Ｂ／Ｘ／Ｙ２の要素に対し、同じリクエスト（リクエストＩＤ３）で追加されたことを示すためのＩＤとして、追加画面部品Ｉ識別Ｄ「ＹＹＹ」を設定し、画面要素記憶部２１４１に記憶する。
【０１１０】
動的要素識別部２１０３は、画面２２０２に遷移する前のリクエストＩＤ１とリクエストＩＤ３とを比較し、異なるパス（要素）があるかを確認する。リクエストＩＤ１のリクエストが前リクエストであるため、これにより追加された／Ｂおよび／Ｂ／Ｘの要素（要素ＩＤ１，２）と、今回のリクエスト（リクエストＩＤ３）に対するレスポンス中の要素とを比較する。リクエストＩＤ３に対するレスポンスには、パスが／Ｂ、／Ｂ／Ｘの要素はあるが、パスが／Ｂ／Ｘ／Ｙ２の要素が存在しないため、これを追加要素であると識別する。また、動的要素記憶部２１４２に、リクエストＩＤをキーにして追加されたと認識された要素ＹのＩＤ４を記憶する。
【０１１１】
次に、画面２２０３の状態より、リクエストパスが「／ｐｏｓｔｓ」、リクエストメソッドが「ＰＯＳＴ」、ヘッダとして「Ｃｏｏｋｉｅ：ａｕｔｈ＝１」、リクエストパラメータとして「Ｐ＝Ｑ＆Ｒ＝Ｓ」というリクエストがウェブアプリケーション２１０７に送出されると、画面２２０４に遷移する。言い換えると、上述したリクエストにより、画面２２０４がレスポンスとして返される。画面２２０４では、「Ｙ２”」という要素に変更される。
【０１１２】
この場合、リクエスト監視部２１０２は、リクエスト（リクエストＩＤ４）を検知して、リクエストパスが「／ｐｏｓｔｓ」、リクエストメソッドが「ＰＯＳＴ」、ヘッダとして「Ｃｏｏｋｉｅ：ａｕｔｈ＝１」、リクエストパラメータとして「Ｐ＝Ｑ＆Ｒ＝Ｓ」を、動的要素記憶部２１４２に記憶する。また、前リクエストＩＤは３とし、動的要素記憶部２１４２に記憶する。
【０１１３】
ここで、この場合においても、リクエストＩＤ３に対するレスポンスの中のパスが／Ｂおよび／Ｂ／Ｘの要素は、既に、要素ＩＤが設定されて画面要素記憶部２１４１に格納されている。このため、サーバー出力要素ＩＤ設定部２１０１は、リクエストＩＤ４に対するレスポンスの中のパスが／Ｂおよび／Ｂ／Ｘの要素には、要素ＩＤは設定しない。一方、このリクエストＩＤ４のレスポンスにおいては、パスが／Ｂ／Ｘ／Ｙ２”という要素「Ｙ２”」が追加されている。このため、要素「Ｙ２”」には、／Ｂ／Ｘ／Ｙ２”というパスおよびリクエストＩＤ２のＵＲＩのペアに対してユニークなＩＤ４を設定する。
【０１１４】
また、パスが／Ｂ／Ｘ／Ｙ２”の要素に対し、同じリクエスト（リクエストＩＤ４）で追加されたことを示すためのＩＤとして、追加画面部品Ｉ識別Ｄ「ＺＺＺ」を設定し、画面要素記憶部２１４１に記憶する。
【０１１５】
動的要素識別部２１０３は、画面２２０２に遷移する前のリクエストＩＤ１とリクエストＩＤ２とを比較し、異なるパス（要素）があるかを確認する。リクエストＩＤ１のリクエストが前リクエストであるため、これにより追加された／Ｂおよび／Ｂ／Ｘの要素（要素ＩＤ１，２）と、今回のリクエスト（リクエストＩＤ４）に対するレスポンス中の要素とを比較する。リクエストＩＤ２に対するレスポンスには、パスが／Ｂ、／Ｂ／Ｘの要素はあるが、パスが／Ｂ／Ｘ／Ｙ２”の要素が存在しないため、これを追加要素であると識別する。また、動的要素記憶部２１４２に、リクエストＩＤをキーにして追加されたと認識された要素ＹのＩＤ４を記憶する。
【０１１６】
以上のように、各画面についてリクエストおよび追加要素を識別することで、図１３、図１４に示すように、ウェブアプリケーションモデル記憶部２１０４にウェブアプリケーションモデルのデータが記憶される。
【０１１７】
次に、モデルの生成について説明する。モデル生成部２１０５は、動的要素記憶部２１４２に記憶された全てのリクエストＩＤを順にみていき、前リクエストＩＤがあるものを、そのリクエストと関連付ける。動的要素ＩＤから、画面要素記憶部２１４１に記憶されている要素ＩＤに対応するＵＲＬを検索することで、画面のＵＲＬが識別できる。従って、すべてのリクエストの関連を設定することで、インタラクション（リクエスト）の繋がりを関連付けることができる。図１６の例では、リクエストＩＤの２と３は、リクエストＩＤ１のリクエストと関連があり、リクエストＩＤ４のリクエストは、リクエストＩＤ３のリクエストが、前のリクエストであり、関連があることが示されている。
【０１１８】
このように、リクエストを関連付け、これらのリクエストで追加された情報（要素）を画面のベースＵＲＬを元に表示し、表示した画面のベースＵＲＬに対して追加された要素をリクエストＩＤを用いて画面要素記憶部から取得することで、画面に追加された要素を関連付ける。これをウェブアプリケーションモデル記憶部２１０４に記憶された全てのリクエストに対して行うことにより、図１７に示すようにウェブアプリケーションモデルが生成され、ユーザに視認可能に出力される。
【０１１９】
図１７に示すモデルについて説明すると、まず、図１３に示す要素ＩＤ２の要素２３０１，要素ＩＤ３の要素２３０４，要素ＩＤ４の要素２３０５，および要素ＩＤ５の要素２３０７が、各要素間の遷移の方向を示す矢印と共に表示される。また、各要素間の遷移の起源となるインタラクションであるリクエスト２２０３，２３０３，２３０６が表示される。これらは、リクエストパス，リクエストメソッド，リクエストパラメータ，およびヘッダで構成されている。また、各々の要素に対し、位置（パス）および静的要素であるか動的要素であるかを示すコメント２０３１ａ，２３０４ａ，２３０５ａ，２３０７ａが表示される。
【０１２０】
このモデルを確認することで、例えば、要素２３０１の表示において、ヘッダが「Ｃｏｏｋｉｅ：ａｕｔｈ＝０」のリクエスト２３０２により、要素２３０４を含むレスポンスが返され、ヘッダが「Ｃｏｏｋｉｅ：ａｕｔｈ＝１」のリクエスト２３０３により、要素２３０５を含むレスポンスが返されることがわかる。
【０１２１】
モデル利用部２１０１は、モデル生成部２１０５が生成したモデルを元に、動的画面をカスタマイズするために、ウェブアプリケーションのカスタマイズできる画面箇所を表示するなどして、モデル生成部２１０５の出力結果を用いる。
【０１２２】
なお、上述した各実施の形態における動的ウェブアプリケーションモデル生成装置は、ＣＰＵと主記憶装置と外部記憶装置とネットワーク接続装置となどを備えたサーバーなどのコンピュータ機器であり、上述した各機能を実現させるプログラムが主記憶装置に展開され、展開されたプログラムによりＣＰＵが動作することで、上述した各手段（機能）が実現される。例えば、プログラムは、サーバ出力要素ＩＤ設定部１１としての機能，インタラクション監視部１２としての機能，および動的要素識別部１３としての機能を、コンピュータに実現させるものである。また、ウェブアプリケーション記憶部１４は、上記主記憶装置や外部記憶装置の一部で構成されるものである。また、各機能は、複数のコンピュータ機器に分散させるようにしてもよい。
【産業上の利用可能性】
【０１２３】
本発明は、例えば、マッシュアップによるアプリケーションのカスタマイズをするために、事前にウェブアプリケーションの構造を解析しモデルを構築することで、既存ウェブアプリケーションのカスタマイズを用意に行えるようにするなどの利用形態に適用可能である。また、ウェブアプリケーションの構成を把握し、既存システムに他システムを統合または既存システムに変更を加える際に、ウェブアプリケーションの管理者がシステム全体を把握するのに用いるなど、アプリケーションの変更・保守で利用することができる。
【符号の説明】
【０１２４】
１…インタラクション監視部、２…サーバー出力要素ＩＤ設定部、３…動的要素識別部。
【図１】
2011013940.tif 000003
【図２】
2011013940.tif 000004
【図３】
2011013940.tif 000005
【図４】
2011013940.tif 000006
【図５】
2011013940.tif 000007
【図６】
2011013940.tif 000008
【図７】
2011013940.tif 000009
【図８】
2011013940.tif 000010
【図９】
2011013940.tif 000011
【図１０】
2011013940.tif 000012
【図１１】
2011013940.tif 000013
【図１２】
2011013940.tif 000014
【図１３】
2011013940.tif 000015
【図１４】
2011013940.tif 000016
【図１５】
2011013940.tif 000017
【図１６】
2011013940.tif 000018
【図１７】
2011013940.tif 000019