(57)【要約】【課題】  フレームワークを利用したＷｅｂアプリケーションの開発において、開発者等にフレームワークを意識させることなく、画面デザイン，ビジネスロジックの分散開発を可能とするＷｅｂアプリケーション開発支援装置を提供する。【解決手段】  ＶａｌｕｅＯｂｊｅｃｔ定義部１０１は、Ｗｅｂアプリケーションの一部を構成するプレゼンテーション層とビジネスロジック層との間の入出力項目を保持するクラスであるＶａｌｕｅＯｂｊｅｃｔクラスの定義情報を画面仕様情報記憶部１０３に記憶する。画面仕様定義部１０２は、Ｗｅｂアプリケーションの表示画面及びビジネスロジックの遷移を階層的に管理し、各表示画面及びビジネスロジックの仕様の定義情報を画面仕様情報記憶部１０３に記憶する。プレゼンテーション層ソースコード自動生成部１０４は、画面仕様情報記憶部１０３に記憶された定義情報に基づき、プレゼンテーション層ソースコード１１０を生成する。【選択図】      図１
2006163855.tif 000002
【特許請求の範囲】
【請求項１】
表示画面の画面遷及び表示画面とビジネスロジックとの関連付けを記述した設定ファイルを有し、当該設定ファイルに基づきクライアントからの要求に応じたイベントの実行及びページ遷移を行うプレゼンテーション層と、ビジネスロジック層とを有するＷｅｂアプリケーションの開発支援装置であって、
プレゼンテーション層とビジネスロジック層との間の入出力項目を保持するクラスについて定義したＶａｌｕｅＯｂｕｊｅｃｔ定義情報と、前記表示画面の画面遷移及び各表示画面とビジネスロジックとの関連付けを定義した画面仕様定義情報とを記憶する画面仕様情報記憶部と、
各表示画面における入出力項目の入力を受付け、前記ＶａｌｕｅＯｂｕｊｅｃｔ定義情報として、前記画面仕様情報記憶部に記憶するＶａｌｕｅＯｂｕｊｅｃｔ定義部と、
各表示画面についての画面遷移定義情報及びイベント実行定義情報と、前記イベント実行定義情報に対応するビジネスロジック定義情報との入力を受付け、前記画面仕様定義情報として、画面仕様情報記憶部に記憶する画面仕様定義部と、
前記画面仕様情報記憶部に記憶された各定義情報に基づき、前記プレゼンテーション層と、前記ビジネスロジック層を構成するビジネスロジックの雛形とを生成する手段と
を備えることを特徴とするＷｅｂアプリケーション開発支援装置。
【請求項２】
前記画面仕様定義部は、
前記画面仕様情報記憶部に記憶された画面仕様定義情報を取得し、
前記表示画面及びビジネスロジックの画面遷移を階層的に表示する手段を備えることを特徴とする請求項１に記載のＷｅｂアプリケーション開発支援装置。
【請求項３】
表示画面の遷移情報及び表示画面とビジネスロジックとの関連付けを定義した画面仕様定義情報と、プレゼンテーション層とビジネスロジック層との間の入出力項目を定義したＶａｌｕｅＯｂｕｊｅｃｔ定義情報とを記憶する画面仕様情報記憶部と、当該画面仕様情報記憶部に前記ＶａｌｕｅＯｂｕｊｅｃｔ定義情報を記憶するＶａｌｕｅＯｂｕｊｅｃｔ定義部部と、前記画面仕様情報記憶部に画面仕様定義情報を記憶する画面仕様定義部と、前記画面仕様情報記憶部に記憶された各定義情報に基づきＷｅｂアプリケーションのプレゼンテーション層の一部を生成するソースコード生成部とを備えるＷｅｂアプリケーション開発支援装置によるＷｅｂアプリケーション開発支援方法であって、
ＶａｌｕｅＯｂｕｊｅｃｔ定義部が、各表示画面における入出力項目の入力を受付け、前記ＶａｌｕｅＯｂｕｊｅｃｔ定義情報として、前記画面仕様情報記憶部に記憶するステップと、
画面仕様定義部が、各表示画面についての画面遷移定義情報及びイベント定義情報と、前記イベント定義情報に対応するビジネスロジック定義情報との入力を受付け、前記画面仕様定義情報として、画面仕様情報記憶部に記憶するステップと、
前記ソースコード生成部が、前記画面仕様情報記憶部に記憶された各定義情報に基づき、表示画面の遷移情報及び表示画面とビジネスロジックとの関連付けを記述した設定ファイルと、当該設定ファイルの記述に基づきイベントの実行又はページ遷移を行うコントローラとを含むプレゼンテーション層と、前記ビジネスロジック層を構成するビジネスロジックの雛形とを生成するステップと
を備えることを特徴とするＷｅｂアプリケーション開発支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂアプリケーション開発支援装置及び開発支援方法に関し、特に、Ｓｔｒｕｔｓ等のフレームワークを利用したＷｅｂアプリケーションの開発を支援する装置及び方法に関する。
【背景技術】
【０００２】
近年、大規模システムを構成するＷｅｂアプリケーション開発等において、画面デザインとビジネスロジックとの分散開発による効率化を目的として、Ｗｅｂアプリケーションを、業務処理部分(モデル)と、ブラウザに表示するためのレイアウト部分(ビュー)と、業務部分とレイアウト部分を制御する制御部分(コントローラー)とに分けるＭＶＣ(モデル−ビュー−コントローラー)モデルが採用されることがある。
このようなＭＶＣモデルでは、各ページ毎に画面遷移とビジネスロジックとを記述しているため、ビジネスロジックの内容及び画面遷移状況を確認するためには、各ページ毎にソースコードを参照して、ビジネスロジック部分，ページ遷移部分を区別する必要があった。特に、大規模システム開発の場合には、各ページに記述された画面遷移の全体像を把握することが困難なものとなっていた。
このような分散開発において、近時、開発の更なる効率化を図るとともに、ビジネスロジック，画面遷移等の把握を容易なものとするために、ＭＶＣモデルに適したフレームワークが利用されている。このようなフレームワークとしては、例えば、Ｊ２ＥＥ（Ｊａｖａ２  Ｅｎｔｅｒｐｒｉｓｅ  Ｅｄｉｔｉｏｎ，「ＪＡＶＡ」は、米国サンマイクロシステムズ社の登録商標）を前提としたＳｔｒｕｔｓが多く利用されている。ここで、Ｓｔｒｕｔｓを利用したＷｅｂアプリケーションでは、設定ファイル，コントローラ（ＡｃｔｉｏｎＳｅｒｖｌｅｔ），フォームＢｅａｎクラスを含むプレゼンテーション層を有している。設定ファイルには、予め、全ての画面遷移，ビジネスロジックの関連付け及び入力パラメータ等が記述されており、１つのコントローラがクライアントからの全てのリクエストを受付け、設定ファイルに記述された情報に基づき、該当するイベントの実行や適切なページへの振り分け等を行っている。また、各ページの入出力情報については、フォームＢｅａｎにより、コントローラとのやり取りを行っている。
以上のように、Ｓｔｒｕｔｓ等のフレームワークを利用した場合には、画面遷移の階層的な構造等の全体像を確認することが可能となるとともに、分散開発された表示画面及びビジネスロジックを容易かつ適切に連携させることが可能となっている。
【０００３】
一方、Ｗｅｂアプリケーション開発の効率化を図るための開発支援装置としては、従来より、Ｗｅｂアプリケーションを構成するＳｅｒｖｌｅｔ，Ｊｓｐ，Ｂｅａｎの各ソースコードを生成する手段を備えたものが公知となっている（例えば、特許文献１参照。）。
【特許文献１】特開２００１−３４４１０５号公報
【０００４】
前記特許文献１に記載のＷｅｂアプリケーション開発支援装置では、Ｓｅｒｖｌｅｔ，Ｊｓｐ，Ｂｅａｎのそれぞれについて、開発担当者等により予め作成された詳細な設計情報に基づき対応定義表を生成するとともに、各設計情報，対応定義表及び各テンプレートを用いてＳｅｒｖｌｅｔ，Ｊｓｐ，Ｂｅａｎの各ソースコードを生成することを可能としている。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、Ｗｅｂアプリケーションの分散開発において、フレームワークを利用する場合には、各開発者がフレームワークの知識を有することが要求されるとともに、前述の設定ファイル，コントローラ，フォームＢｅａｎ等を実装する工程が必要となるため、必ずしも効率良く開発作業を行うことができるものではなかった。
また、前記特許文献１に記載の開発支援装置では、フレームワークの利用を想定したものでは無かったため、生成されたＷｅｂアプリケーションについて、各画面遷移の階層的な構造等、全体像を把握することが困難なものとなっていた。
また、前記特許文献１に記載の開発支援装置では、ソースコードの生成のために、Ｓｅｒｖｌｅｔ，Ｊｓｐ，Ｂｅａｎのそれぞれについて、開発支援装置の仕様に応じた詳細な設計情報を予め作成しておく必要があるため、画面デザインやビジネスロジック等について具体的な仕様を決定することが必要になり、また、設計情報の作成に手間が掛かる可能性がある等、必ずしも効率良く開発作業を行うことができるものでは無かった。
【０００６】
本発明は前記課題を解決するためのものであり、フレームワークを利用したＷｅｂアプリケーションの開発支援装置として、簡易な定義情報に基づき表示画面とビジネスロジックとの連携部分のみを生成することにより、詳細な設計情報の作成を不要とするとともに、各開発者にフレームワークを意識させることなく、画面デザイン，ビジネスロジックの実装に専念させることを可能とするＷｅｂアプリケーション開発支援装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
前記課題を解決するため本発明は、表示画面の画面遷及び表示画面とビジネスロジックとの関連付けを記述した設定ファイルを有し、当該設定ファイルに基づきクライアントからの要求に応じたイベントの実行及びページ遷移を行うプレゼンテーション層と、ビジネスロジック層とを有するＷｅｂアプリケーションの開発支援装置であって、プレゼンテーション層とビジネスロジック層との間の入出力項目を保持するクラスについて定義したＶａｌｕｅＯｂｕｊｅｃｔ定義情報と、前記表示画面の画面遷移及び各表示画面とビジネスロジックとの関連付けを定義した画面仕様定義情報とを記憶する画面仕様情報記憶部と、各表示画面における入出力項目の入力を受付け、前記ＶａｌｕｅＯｂｕｊｅｃｔ定義情報として、前記画面仕様情報記憶部に記憶するＶａｌｕｅＯｂｕｊｅｃｔ定義部と、各表示画面についての画面遷移定義情報及びイベント実行定義情報と、前記イベント実行定義情報に対応するビジネスロジック定義情報との入力を受付け、前記画面仕様定義情報として、画面仕様情報記憶部に記憶する画面仕様定義部と、前記画面仕様情報記憶部に記憶された各定義情報に基づき、前記プレゼンテーション層と、前記ビジネスロジック層を構成するビジネスロジックの雛形とを生成する手段とを備えることを特徴とする。
また、前記画面仕様定義部は、前記画面仕様情報記憶部に記憶された画面仕様定義情報を取得し、前記表示画面及びビジネスロジックの画面遷移を階層的に表示する手段を備えることを特徴とする。
また、表示画面の遷移情報及び表示画面とビジネスロジックとの関連付けを定義した画面仕様定義情報と、プレゼンテーション層とビジネスロジック層との間の入出力項目を定義したＶａｌｕｅＯｂｕｊｅｃｔ定義情報とを記憶する画面仕様情報記憶部と、当該画面仕様情報記憶部に前記ＶａｌｕｅＯｂｕｊｅｃｔ定義情報を記憶するＶａｌｕｅＯｂｕｊｅｃｔ定義部部と、前記画面仕様情報記憶部に画面仕様定義情報を記憶する画面仕様定義部と、前記画面仕様情報記憶部に記憶された各定義情報に基づきＷｅｂアプリケーションのプレゼンテーション層の一部を生成するソースコード生成部とを備えるＷｅｂアプリケーション開発支援装置によるＷｅｂアプリケーション開発支援方法であって、ＶａｌｕｅＯｂｕｊｅｃｔ定義部が、各表示画面における入出力項目の入力を受付け、前記ＶａｌｕｅＯｂｕｊｅｃｔ定義情報として、前記画面仕様情報記憶部に記憶するステップと、画面仕様定義部が、各表示画面についての画面遷移定義情報及びイベント定義情報と、前記イベント定義情報に対応するビジネスロジック定義情報との入力を受付け、前記画面仕様定義情報として、画面仕様情報記憶部に記憶するステップと、前記ソースコード生成部が、前記画面仕様情報記憶部に記憶された各定義情報に基づき、表示画面の遷移情報及び表示画面とビジネスロジックとの関連付けを記述した設定ファイルと、当該設定ファイルの記述に基づきイベントの実行又はページ遷移を行うコントローラとを含むプレゼンテーション層と、前記ビジネスロジック層を構成するビジネスロジックの雛形とを生成するステップとを備える。
【発明の効果】
【０００８】
以上の構成により本発明では、例えば、Ｓｔｒｕｔｓ等のフレームワークを利用したＷｅｂアプリケーション開発において、画面デザイン及びビジネスロジックを除いた部分のソースコードの生成等が可能となるため、各開発者にフレームワークを意識させることなく、画面デザイン又はビジネスロジックの実装に専念させることが可能となる。従って、フレームワークについての正確な知識を有しない開発者によっても適切な分散開発を行うことが可能となる。
また、画面仕様定義情報に基づき各表示画面及び関連付けられたビジネスロジックの画面遷移を階層表示することとしたので、設定ファイルに記述された内容を確認することなく、画面遷移等を把握させることが可能となる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の一実施の形態に係るＷｅｂアプリケーション開発支援装置について、図面に基づき説明する。本実施の形態では、フレームワークとしてＳｔｒｕｔｓを利用したＷｅｂアプリケーションの開発に用いるＷｅｂアプリケーション開発支援装置の例について説明する。
図１は、本実施の形態に係るＷｅｂアプリケーション開発支援装置の概略構成を示すブロック図である。
Ｗｅｂアプリケーション開発支援装置１００は、開発対象となるＷｅｂアプリケーションの一部を構成するプレゼンテーション層を示すソースコード１１０を生成するものであり、ＶａｌｕｅＯｂｊｅｃｔ定義部１０１と、画面仕様定義部１０２と、画面仕様情報記憶部１０３と、プレゼンテーション層ソースコード自動生成部１０４とを備える。
ＶａｌｕｅＯｂｊｅｃｔ定義部１０１は、Ｗｅｂアプリケーションの一部を構成するプレゼンテーション層とビジネスロジック層との間の入出力項目を保持するクラスであるＶａｌｕｅＯｂｊｅｃｔクラスの定義情報を画面仕様情報記憶部１０３に記憶する。
画面仕様定義部１０２は、Ｗｅｂアプリケーションの表示画面及びビジネスロジックの遷移を階層的に管理し、各表示画面及びビジネスロジックの仕様の定義情報を画面仕様情報記憶部１０３に記憶する。
プレゼンテーション層ソースコード自動生成部１０４は、画面仕様情報記憶部１０３に記憶された定義情報に基づき、プレゼンテーション層ソースコード１１０を生成する。
【００１０】
図２は、本実施の形態に係るＷｅｂアプリケーション開発支援装置１００の生成するプレゼンテーション層を含むＷｅｂアプリケーションの概略構成の一例を示す図である。
Ｗｅｂアプリケーション２００は、プレゼンテーション層２１０，ビジネスロジック増２２０，データベース層２３０とから構成されている。
プレゼンテーション層２１０は、クライアントの要求を受け取りその処理結果を表示する処理や、ビジネスロジックを呼び出す処理などを行うものである。本例では、ＷｅｂアプリケーションフレームワークにＳｔｒｕｔｓを使った場合を示しており、この場合には、画面遷移情報などが記述されたＸＭＬ形式のＳｔｒｕｔｓ設定ファイル２１１，クライアントの要求を受け取り、ビジネスロジックを呼び出し、ビジネスロジックの結果を設定する処理を行うコントローラとしてのアクションクラス２１２，クライアントの入力データを保持するアクションフォームＢｅａｎクラス２１３，画面のデザインを実装するＪＳＰファイル２１４などで構成される。
ビジネスロジック層２２０は、業務処理を行うビジネスロジッククラス２２１で構成され、データベース層２３０は、データベースにアクセスし、データを取得したり、登録したりするデータベースアクセスクラス２３１で構成される。
本実施の形態に係るＷｅｂアプリケーション開発支援装置１００は、Ｗｅｂアプリケーション２００のうち、プレゼンテーション層２１０を構成するＳｔｒｕｔｓ設定ファイル２１１，アクションクラス２１２，アクションフォームＢｅａｎクラス２１３と、ビジネスロジック層２２０を構成するビジネスロジッククラス２２１の雛形をプレゼンテーション層ソースコード１１０として生成する。
【００１１】
図３は、本実施の形態に係るＷｅｂアプリケーション開発支援装置１００の行うプレゼンテーション層ソースコード生成処理の概要を示すフローチャートである。
Ｗｅｂアプリケーション開発装置１００では、ＶａｌｕｅＯｂｊｅｃｔ定義部１０１が定義画面を表示し、ユーザにより任意に定義されたＶａｌｕｅＯｂｊｅｃｔ情報を画面仕様情報記憶部１０３に記憶するとともに（ステップ３０１）、画面仕様定義部１０２が定義画面を表示し、ユーザにより任意に定義された画面情報及びビジネスロジック情報を画面仕様情報記憶部１０３に記憶する（ステップ３０２）。
プレゼンテーション層ソースコード自動生成部１０４は、画面仕様情報記憶部１０３に記憶された画面仕様情報を取得し、プレゼンテーション層ソースコード１０５を生成する（ステップ３０３）。
【００１２】
次に、本実施の形態に係るＷｅｂアプリケーション開発支援装置１００の行う開発支援処理方法について、開発者用端末等に表示する定義画面の例に基づき説明する。
【００１３】
図４は、ＶａｌｕｅＯｂｊｅｃｔ定義部１０１が表示するＶａｌｕｅＯｂｊｅｃｔ定義画面の一例を示す図である。
図４に示すＶａｌｕｅＯｂｊｅｃｔ定義画面４００では、ＶａｌｕｅＯｂｊｅｃｔに関する設定項目として、ＶａｌｕｅＯｂｊｅｃｔのＩＤ４０１，ＶａｌｕｅＯｂｊｅｃｔが入力項目か出力項目かを示すタイプ４０２，ＶａｌｕｅＯｂｊｅｃｔの説明４０３と、ＶａｌｕｅＯｂｊｅｃｔクラスの各項目についての項目名（プロパティ）４０４，項目の型４０５，項目の説明４０６との各入力フィールドを有する。ここで、項目名４０４，型４０５，説明４０６については、複数定義することができるものとする。
【００１４】
図５は、画面仕様定義部１０２が表示する画面仕様定義画面の一例を示す図である。
図５に示す画面仕様定義画面５００は、後述するように画面仕様情報記憶部１０３に記憶された情報に基づき表示画面及びビジネスロジックの遷移を階層的に表示する画面遷移表示部５１０と、画面遷移表示部５１０に表示した要素５１１の設定を定義する設定定義部５２０とを有する。
画面遷移表示部５１０に表示する要素５１１としては、ＪＳＰなどの表示画面と、画面のリンクやボタンのクリックなどのイベントによって呼び出されるビジネスロジックが該当する。
本例では、画面遷移表示部５１０において、表示画面を示す要素５１１が選択された場合の設定定義部５２０の例を示している。
設定定義部５２０では、表示画面に関する設定項目として、画面名５２１，ＵＲＩ５２２，表示画面の出力項目を保持するＶａｌｕｅＯｂｊｅｃｔを示す出力ＶＯ５２３の各入力フィールドと、表示画面上で発生するイベント設定部５３０として、イベントの追加，編集，削除ボタン５３１〜５３３と、イベント名５３４，イベントのタイプ５３５，イベントの入力項目を保持するＶａｌｕｅＯｂｊｅｃｔを示す入力ＶＯ５３６，ビジネスロジックを一意に識別するロジックＩＤ５３７，イベント後の遷移先を示す遷移先ＵＲＩ５３８の各入力フィールドを有する。
【００１５】
図６は、画面仕様定義部１０２が表示する画面仕様定義画面の他の例を示す図である。
図６に示す画面仕様定義画面６００では、画面遷移表示部６１０において、ビジネスロジックを示す要素６１１が選択された場合の、設定定義部６２０を示している。
設定定義部６２０では、ビジネスロジックに関する設定項目として、ビジネスロジック名６２１，ビジネスロジックＩＤ６２２，ビジネスロジックのクラス名６２３，ビジネスロジックのメソッド名６２４，ビジネスロジックの引数を示す入力ＶＯ６２５，ビジネスロジックの戻り値を示す出力ＶＯ６２６の各入力フィールドを有する。なお、入力ＶＯ６２５及び出力ＶＯ６２６については、「ｒｅｑｕｅｓｔ」又は「ｓｅｓｓｉｏｎ」などのスコープを定義することができる。
【００１６】
以下、前述の各定義画面を用いて行う画面仕様情報生成処理の具体例について説明する。
本例では、Ｗｅｂアプリケーションとして、顧客番号を入力させるフォームがある入力画面と、入力画面に入力された顧客番号に対応する顧客情報を出力する出力画面の２画面で構成する。なお、このＷｅｂアプリケーションは、フレームワークとしてＳｔｒｕｔｓを利用しているものとする。
【００１７】
まず、ＶａｌｕｅＯｂｊｅｃｔ定義画面により、入出力画面の各入出力項目を保持するクラスを定義させる。
図７は、入力画面の入力項目を保持するクラスを定義させるためのＶａｌｕｅＯｂｊｅｃｔ定義画面を示す図である。
ＶａｌｕｅＯｂｊｅｃｔ定義画面７００では、開発者によりＩＤ７０１に「ＣｕｓｔｏｍｅｒＮｏ」が、タイプ７０２に「入力」が、説明７０３に「顧客番号を保持するＶａｌｕｅＯｂｊｅｃｔ」が定義され、さらにＶａｌｕｅＯｂｊｅｃｔの項目７０４に「ｎｏ，Ｓｔｒｉｎｇ，顧客番号」が定義されている。
図８は、出力画面の出力項目を保持するクラスを定義させるためのＶａｌｕｅＯｂｊｅｃｔ定義画面を示す図である。
ＶａｌｕｅＯｂｊｅｃｔ定義画面８００では、開発者によりＩＤ８０１に「Ｃｕｓｔｏｍｅｒ」が、タイプ８０２に「出力」が、説明８０３に「顧客情報を保持するＶａｌｕｅＯｂｊｅｃｔ」が定義され、さらにＶａｌｕｅＯｂｊｅｃｔの項目８０４〜８０７に「ｎｏ，Ｓｔｒｉｎｇ，顧客番号」「ｎａｍｅ，Ｓｔｒｉｎｇ，名前」「ａｄｄｒｅｓｓ，Ｓｔｒｉｎｇ，住所」「ｔｅｌ，Ｓｔｒｉｎｇ，電話番号」のそれぞれが定義されている。
ＶａｌｕｅＯｂｊｅｃｔ定義部１０１は、以上の各ＶａｌｕｅＯｂｊｅｃｔ定義画面７００，８００に定義された内容を画面仕様情報記憶部１０３に記憶する。
【００１８】
次に、画面仕様定義画面により、入出力画面及びビジネスロジックに関する画面仕様を定義させる。
図９は、入力画面の画面仕様を定義させるための画面仕様定義画面を示す図である。
画面仕様定義画面９００では、開発者により画面名９０１に「入力画面」が、ＵＲＩ９０２に「／ｉｎｐｕｔ．ｊｓｐ」が定義されるとともに、イベント設定部９０４に「ｏｕｔｐｕｔ，Ｆｏｒｍ，ｃｕｓｔｏｍｅｒＮｏ，ｓｅａｒｃｈ，／ｏｕｔｐｕｔ．ｊｓｐ」が定義されている。なお、本例に示す入力画面の画面仕様では、出力ＶＯ９０３は空欄となる。
図１０は、入力画面のイベントによって呼び出されるビジネスロジックである顧客情報検索の画面仕様を定義させるための画面仕様定義画面を示す図である。
画面仕様定義画面９００では、開発者によりビジネスロジック名１００１に「顧客情報検索」が、ＩＤ１００２に「ｓｅａｒｃｈ」が、クラス１００３に「ｓａｍｐｌｅ．ＣｕｓｔｏｍｅｒＬｏｇｉｃ」が、メソッド１００４に「ｓｅａｒｃｈ」が、入力ＶＯ１００５に「ＣｕｔｍｅｒＮｏ，ｒｅｑｕｅｓｔ」が、出力ＶＯ１００６に「ｃｕｓｔｏｍｅｒ，ｒｅｑｕｅｓｔ」が定義されている。
図１１は、出力画面の画面仕様を定義させるための画面仕様定義画面を示す図である。
画面仕様定義画面１１００では、開発者により画面名１１０１に「出力画面」が、ＵＲＩ１１０２に「／ｏｕｔｐｕｔ．ｊｓｐ」が、出力ＶＯ１１０３に「ｃｕｓｔｏｍｅｒ」が定義されている。なお、本例では、出力画面においてはＶａｌｕｅＯｂｊｅｃｔの項目は定義されていない。
画面仕様定義部１０１は、以上の各画面仕様定義画面９００，１０００，１１００に定義された内容を画面仕様情報記憶部１０３に記憶するとともに、記憶した内容に基づき画面仕様定義画面９００，１０００，１１００の画面遷移表示部の表示内容を変更する。
【００１９】
図１２は、画面仕様情報記憶部１０３に記憶される画面仕様情報の一例として、図７，８に示すＶａｌｕｅＯｂｊｅｃｔ定義画面に定義された内容に基づきＶａｌｕｅＯｂｊｅｃｔ定義部１０１が記憶した情報と、図９〜１１に示す画面仕様定義画面に定義された内容に基づき画面仕様定義部１０２が記憶した情報とを示す図である。
画面仕様情報１２００は、例えば、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）ファイルとして生成されており、図１１に示すように、ＶａｌｕｅＯｂｊｅｃｔ情報１２１０と、ビジネスロジック情報１２２０と、画面情報１２３０とで構成されている。
ＶａｌｕｅＯｂｊｅｃｔ情報１２１０には、図７に示すＶａｌｕｅＯｂｊｅｃｔ定義画面７００に定義されたＶａｌｕｅＯｂｊｅｃｔについての定義情報１２１１と、図８に示すＶａｌｕｅＯｂｊｅｃｔ定義画面８００に定義されたＶａｌｕｅＯｂｊｅｃｔについての定義情報１２１２とが含まれる。
ビジネスロジック情報１２２０には、図１０に示す画面仕様定義画面１０００に定義されたビジネスロジックについての定義情報１２２１が含まれる。なお、定義情報１２２１におけるｉｎｐｕｔ−ｖｏ属性又はｏｕｔｐｕｔ−ｖｏ属性の値は、ＶａｌｕｅＯｂｊｅｃｔ情報１２１０の各定義情報１２１１，１２１２におけるｉｄ属性の値に対応している。
画面情報１２３０には、図９に示す画面仕様定義画面９００に定義された入力画面についての定義情報１１３１と、図１１に示す画面仕様定義画面１１００に定義された出力画面についての定義情報１２３２とが含まれる。なお、定義情報１２３１における＜ｅｖｅｎｔ＞タグのｌｏｇｉｃ属性の値は、ビジネスロジック情報１２２０の定義情報１２２１における＜ｂｕｓｉｎｅｓｓ−ｌｏｇｉｃ＞タグのｉｄ属性の値に対応している。また、＜ｅｖｅｎｔ＞タグのｆｏｒｗａｒｄ属性の値は、定義情報１２３２における＜ｂｏｕｎｄａｒｙ＞タグのｐａｔｈ属性の値に対応している。
【００２０】
図１３は、画面仕様定義部１０２が画面仕様情報記憶部１０３に記憶した画面仕様情報に基づき、画面遷移を表示する処理手順を示したフローチャートである。
本処理では、予め開発者によりトップ画面が指定される。例えば、図１２に示す画面仕様情報１２００では、入力画面がトップ画面として指定される。
画面仕様定義部１０２は、画面仕様情報に含まれる画面情報について以下の処理を繰り返す（ステップ１３０１）。
画面仕様定義部１０２は、画面情報を読み込み、画面情報の定義情報に基づき、ノードを設定するとともに（ステップ１３０２）、当該画面情報に含まれるイベントについて以下の処理を繰り返す（ステップ１３０３）。
画面仕様定義部１０２は、画面情報に含まれるイベントのロジックに設定されているビジネスロジックＩＤに基づきビジネスロジック情報を読み込み（ステップ１３０４）、そのビジネスロジックを現在のドの子ノードとして追加する（ステップ１３０５）。
次に、画面情報における当該イベントの遷移先ＵＲＩに設定されている画面情報を読み込み（ステップ１３０６）、その画面をビジネスロジックの子ノードに追加する（ステップ１３０７）。
以上の処理を画面仕様情報に含まれる画面情報，ビジネスロジック情報について繰り返し、その結果を画面仕様定義画面の画面遷移表示部に階層表示する（ステップ１３０８）。
例えば、図１２に示す画面仕様情報１２００の場合、画面情報１２３０を読み込み、まず、トップ画面としての入力画面の定義情報１２３１に基づき「入力画面」を最上位のノードとして設定する。次に、入力画面の定義情報１２３１に含まれるイベントのビジネスロジックＩＤ「ｓｅａｒｃｈ」に基づき、ビジネスロジック情報１２２０の定義情報１２２１を読み込み、「顧客情報検索」を子ノードに追加するとともに、定義情報１２３１の遷移先ＵＲＩのｐａｔｈに基づき出力画面の定義情報１２３２を読み込み、ビジネスロジック「顧客情報検索」の子ノードとして「出力画面」を設定する。
以上の処理結果に基づき、各ノードを画面遷移表示部に階層表示する。なお、ルートの階層は表示された画面を選択してルートに指定することもできる。
従って、開発者は、設定ファイルの記述を確認すること無く、画面推移表示部の表示によりＷｅｂアプリケーションの画面推移を容易に把握することができ、修正作業等も容易となる。
【００２１】
以下、プレゼンテーション層ソースコード自動生成部１０４が、画面仕様情報記憶部１０３に記憶された画面仕様情報に基づき、プレゼンテーション層ソースコード１１０を生成する処理について説明する。
図１４は、ＶａｌｕｅＯｂｊｅｃｔ情報に基づき、ＶａｌｕｅＯｂｊｅｃｔクラスとアクションフォームＢｅａｎクラスのソースコードを生成する処理手順を示すフローチャートである。
プレゼンテーション層ソースコード自動生成部１０４は、ＶａｌｕｅＯｂｊｅｃｔ情報に含まれる各定義情報について、以下の処理を繰り返す（ステップ１４０１）。
まず、ＶａｌｕｅＯｂｊｅｃｔ情報の各定義情報を読み込み(ステップ１４０２)、ＶａｌｕｅＯｂｊｅｃｔクラスを生成して（ステップ１４０３）、＜ｐｒｏｐｅｒｔｙ＞タグ毎に属性とその属性のｓｅｔｔｅｒ／ｇｅｔｔｅｒを生成する（ステップ１４０４）。ＶａｌｕｅＯｂｊｅｃｔクラスの生成では、＜ｖａｕｌｅ−ｏｂｊｅｃｔ＞タグのｉｄ属性の値の最初の１文字目を大文字にし、その後にＶａｌｕｅを付けたクラス名とする。属性の型名は、＜ｐｒｏｐｅｒｔｙ＞タグのｔｙｐｅ属性の値で、属性の変数名は、＜ｐｒｏｐｅｒｔｙ＞タグのｎａｍｅ属性の値である。
次に、＜ｖａｕｌｅ−ｏｂｊｅｃｔ＞タグのｔｙｐｅ属性の値が「ｉｎｐｕｔ」であるか否かを判定する（ステップ１４０５）。
判定の結果、ｔｙｐｅ属性の値が「ｉｎｐｕｔ」である場合には、アクションフォームＢｅａｎクラスを生成し（ステップ１４０６）、ｖａｌｕｅＯｂｊｅｃｔクラスの場合と同様に、＜ｐｒｏｐｅｒｔｙ＞タグごとに属性とその属性のｓｅｔｔｅｒ／ｇｅｔｔｅｒを生成するとともに（ステップ１４０７）、アクションフォームＢｅａｎクラスの定義をＳｔｒｕｔｓ設定ファイルに追加する（ステップ１４０８）。アクションフォームＢｅａｎクラスの生成では、まず、親クラスとして、ＳｔｒｕｔｓのクラスであるＡｃｔｉｏｎＦｏｒｍを継承する。アクションフォームＢｅａｎクラスの属性の型名は、＜ｐｒｏｐｅｒｔｙ＞タグのｔｙｐｅ属性の値とし、属性の変数名は、＜ｐｒｏｐｅｒｔｙ＞タグのｎａｍｅ属性の値とする。Ｓｔｒｕｔｓ設定ファイルには、＜ＶａｌｕｅＯｂｊｅｃｔ＞タグのｉｄ属性の値をｎａｍｅ属性の値とし、クラス名をｔｙｐｅ属性の値とした＜ｆｏｒｍ-Ｂｅａｎ＞タグを追加する。
一方、ステップ１４０５において、ｔｙｐｅ属性の値が「ｉｎｐｕｔ」でない場合には、アクションフォームＢｅａｎクラスの生成を行わずに、次の定義情報について処理を行う。
以上の処理を繰り返すことにより、ＶａｌｕｅＯｂｊｅｃｔクラス及びアクションフォームＢｅａｎクラスを生成する。
【００２２】
図１５は、ビジネスロジック情報に基づき、プレゼンテーション層に対応するビジネスロジック層を構成するビジネスロジッククラスの雛形ソースコードを生成する処理手順を示すフローチャートである。
プレゼンテーション層ソースコード自動生成部１０４は、ビジネスロジック情報に含まれる各定義情報について、以下の処理を繰り返す（ステップ１５０１）。
まず、ビジネスロジック情報の各定義情報を読み込み（ステップ１５０２）、＜ｂｕｓｉｎｅｓｓ−ｌｏｇｉｃ＞タグのｃｌａｓｓ属性の値をクラス名とするビジネスロジッククラスを生成する（ステップ１５０３）。
次に、＜ｂｕｓｉｎｅｓｓ−ｌｏｇｉｃ＞タグのｍｅｔｈｏｄ属性の値のメソッドを生成する（ステップ１５０４）。メソッドの生成では、定義情報にｉｎｐｕｔ−ｖｏ属性が定義されている場合には、その値に対応するＶａｌｕｅＯｂｊｅｃｔをメソッドの引数とする。ｉｎｐｕｔ−ｖｏ属性が定義されていない場合は、引数は空である。また、定義情報にｏｕｔｐｕｔ−ｖｏ属性が定義されている場合には、その値に対応するＶａｌｕｅＯｂｊｅｃｔをメソッドの戻り値とする。ｏｕｔｐｕｔ−ｖｏ属性が定義されていない場合は、ｖｏｉｄ型である。
なお、ビジネスロジック情報の定義情報が複数ある場合には、以上の処理を繰り返し、ビジネスロジッククラスの雛形ソースコードの生成を繰り返す。
【００２３】
図１６は、画面情報に基づき、アクションクラスのソースコードを生成する処理手順を示すフローチャートである。
プレゼンテーション層ソースコード自動生成部１０４は、画面情報の各定義情報に含まれるイベント情報について以下の処理を繰り返す（ステップ１６０１）。
まず、各イベント情報を読み込み、＜ｅｖｅｎｔ＞タグのｎａｍｅ属性の値の最初の１文字目を大文字にし、その後にＡｃｔｉｏｎをつけたクラス名のアクションクラスを生成する（ステップ１６０２）。
次に、親クラスとして、ＳｔｒｕｔｓのクラスであるＡｃｔｉｏｎクラスを継承し、ｅｘｅｃｕｔｅメソッドをオーバライドする（ステップ１６０３）。Ａｃｔｉｏｎクラスとは、要求に対して、対応するＢｅａｎなどで実装されたビジネスロジックの処理をハンドリングするものであり、ＡｃｔｉｏｎＳｅｒｖｌｅｔによって、Ａｃｔｉｏｎクラスのｅｘｅｃｕｔｅメソッドが呼び出され、この中で、認証，バリデーションなどの処理を実行して、適切なビジネスロジックを呼び出すこととなる。
アクションクラスの生成において、定義情報に＜ｅｖｅｎｔ＞タグのｌｏｇｉｃ属性に対応する＜ｂｕｓｉｎｅｓｓ−ｌｏｇｉｃ＞タグのｉｎｐｕｔ−ｖｏ属性が定義されている場合には、ｅｘｅｃｕｔｅメソッドで、ｉｎｐｕｔ−ｖｏ属性に対応するＶａｌｕｅＯｂｊｅｃｔ情報によって生成したアクションフォームｂｅａｎクラスを取得し、そのデータをｉｎｐｕｔ−ｖｏ属性に対応するＶａｌｕｅＯｂｊｅｃｔ情報によって生成したＶａｌｕｅＯｂｊｅｃｔにコピーする処理を生成する。
＜ｅｖｅｎｔ＞タグのｌｏｇｉｃ属性に対応する＜ｂｕｓｉｎｅｓｓ−ｌｏｇｉｃ＞タグのｉｎｐｕｔ−ｖｏ属性が定義されている場合には、ｅｘｅｃｕｔｅメソッドで、ｉｎｐｕｔ−ｖｏ属性に対応するＶａｌｕｅＯｂｊｅｃｔ情報によって生成したアクションフォームｂｅａｎクラスを取得し、そのデータをｉｎｐｕｔ−ｖｏ属性に対応するＶａｌｕｅＯｂｊｅｃｔ情報によって生成したＶａｌｕｅＯｂｊｅｃｔにコピーする処理を生成する。また、ｉｎｐｕｔ−ｖｏ属性に対応するＶａｌｕｅＯｂｊｅｃｔ情報によって生成したＶａｌｕｅＯｂｊｅｃｔを引数として、＜ｅｖｅｎｔ＞タグのｌｏｇｉｃ属性に対応する＜ｂｕｓｉｎｅｓｓ−ｌｏｇｉｃ＞タグのｍｅｔｈｏｄ属性に示すメソッドを呼び出す処理を生成する。
ｉｎｐｕｔ−ｖｏ属性が定義されていない場合には、引数無しで、＜ｅｖｅｎｔ＞タグのｌｏｇｉｃ属性に対応する＜ｂｕｓｉｎｅｓｓ−ｌｏｇｉｃ＞タグのｍｅｔｈｏｄ属性に示すメソッドを呼び出す処理を生成する。
＜ｅｖｅｎｔ＞タグのｌｏｇｉｃ属性に対応する＜ｂｕｓｉｎｅｓｓ−ｌｏｇｉｃ＞タグのｏｕｔｐｕｔ−ｖｏ属性が定義されている場合には、処理結果を返す処理を生成する。
以上の処理により生成したアクションクラスの定義をＳｔｒｕｔｓ設定ファイルに追加する（ステップ１６０４）。具体的には、定義情報の＜ｅｖｅｎｔ＞タグのｎａｍｅ属性の値の頭に「／」を付けた文字列をｐａｔｈ属性の値とし、アクションクラスのクラス名をｔｙｐｅ属性の値とし、ｌｏｇｉｃ属性に対応するビジネスロジック情報の定義情報におけるｉｎｐｕｔ−ｖｏ属性の値をｎａｍｅ属性の値とし、ビジネスロジック情報の定義情報におけるｉｎｐｕｔ属性の値をｓｃｏｐｅ属性の値とした＜ａｃｔｉｏｎ＞タグを追加する。また、「ｓｕｃｃｅｓｓ」をｎａｍｅ属性の値とし、＜ｅｖｅｎｔ＞タグのｆｏｒｗａｒｄ属性の値をｐａｔｈ属性の値とした＜ｆｏｒｗａｒｄ＞タグを追加する。
【００２４】
以上の処理により、プレゼンテーション層ソースコード自動生成部１０４が生成したソースコードの具体例を図１７〜２２に示す。
図１７は、ＶａｌｕｅＯｂｊｅｃｔ情報１２１０に含まれる定義情報１２１１に基づき生成した入力ＶａｌｕｅＯｂｊｅｃｔクラスを示すソースコードの一例を示す図である。
入力ＶａｌｕｅＯｂｊｅｃｔクラス１７００では、定義情報１２１１の＜ＶａｌｕｅＯｂｊｅｃｔ＞タグ及び＜Ｐｒｏｐｅｒｔｙ＞タグの各属性値に基づき、クラス名，属性及びその属性のｓｅｔｔｅｒ／ｇｅｔｔｅｒが生成されている。
具体的には、クラス名として「ＣｕｓｔｏｍｅｒＮｏＶａｌｕｅ」が設定され、顧客番号に関する属性「ｎｏ」と、その属性のｓｅｔｔｅｒ／ｇｅｔｔｅｒが生成されている。
図１８は、ＶａｌｕｅＯｂｊｅｃｔ情報１２１０に含まれる定義情報１２１１に基づき生成したアクションフォームＢｅａｎクラスのソースコードの一例を示す図である。
アクションフォームＢｅａｎクラス１８００では、入力ＶａｌｕｅＯｂｊｅｃｔクラス１７００と略同様に、定義情報１２１１の＜ＶａｌｕｅＯｂｊｅｃｔ＞タグ及び＜Ｐｒｏｐｅｒｔｙ＞タグの各属性値に基づき、クラス名，属性及びその属性のｓｅｔｔｅｒ／ｇｅｔｔｅｒが生成されている。
図１９は、ＶａｌｕｅＯｂｊｅｃｔ情報１２１０に含まれる定義情報１２１２に基づき生成した出力ＶａｌｕｅＯｂｊｅｃｔクラスを示すソースコードの一例を示す図である。
出力ＶａｌｕｅＯｂｊｅｃｔクラス１９００では、入力ＶａｌｕｅＯｂｊｅｃｔクラス１７００と略同様に、定義情報１２１２の＜ＶａｌｕｅＯｂｊｅｃｔ＞タグ及び＜Ｐｒｏｐｅｒｔｙ＞タグの各属性値に基づき、クラス名，属性及びその属性のｓｅｔｔｅｒ／ｇｅｔｔｅｒが生成されている。
具体的には、クラス名として「ＣｕｓｔｏｍｅｒＶａｌｕｅ」が設定され、顧客番号，名前，住所及び電話番号に関する各属性「ｎｏ」，「ｎａｍｅ」，「ａｄｄｒｅｓｓ」及び「ｔｅｌ」と、各属性のｓｅｔｔｅｒ／ｇｅｔｔｅｒが生成されている。
【００２５】
図２０は、ビジネスロジック情報１２２０に含まれる定義情報１２２１に基づき生成したビジネスロジックの雛形ソースコードを示す図である。
ビジネスロジックの雛形ソースコード２０００では、定義情報１２２１の＜ｂｕｓｉｎｅｓｓ−ｌｏｇｉｃ＞タグの各属性値に基づき、クラス名及び各メソッドが生成されているとともに、ビジネスロジック記述部を有している。
具体的には、クラス名として「ｓａｍｐｌｅ．ＣｕｓｔｏｍｅｒＬｏｇｉｃ」が設定されるとともに、「ｓｅａｒｃｈ」メソッドが生成されている。
【００２６】
図２１は、画面情報１２３０の定義情報１２３１に基づき生成したアクションクラスのソースコードを示す図である。
アクションクラスのソースコード２１００では、定義情報１２３１の＜ｅｖｅｎｔ＞タグの各属性値及びｌｏｇｉｃ属性値に基づき参照したビジネスロジック情報１２２０の定義情報１２２１に基づき、クラス名及び書くメソッドが生成されている。
図２２は、ＶａｌｕｅＯｂｊｅｃｔ情報及び画面情報に基づき定義情報を追加したＳｔｒｕｔｓ設定ファイルのソースコードを示す図である。
Ｓｔｒｕｔｓ設定ファイルのソースコード２２００は、ＶａｌｕｅＯｂｕｊｅｃｔ情報１２１０及び画面情報１２３０の各定義情報１２１１，１３１１に基づき、アクションフォームＢｅａｎクラス及びアクションクラスの設定情報，画面遷移情報を記述している。
【００２７】
以上のように、本実施の形態に係るＷｅｂアプリケーション開発支援装置では、プレゼンテーション層を構成するＳｔｒｕｔｓ設定ファイル，アクションクラス，アクションフォームＢｅａｎクラスと、各クラス等に対応したビジネスロジッククラスの雛形を生成することが可能となるため、開発者は、画面デザイン及びビジネスロジックの実装に専念することが可能となる。
また、画面仕様定義画面において、画面仕様情報に基づき、定義された画面遷移を階層的に表示することととしたので、画面遷移の把握及び編集が容易となる。
【００２８】
なお、前記実施の形態では、フレームワークとしてＳｔｒｕｔｓを利用した場合を前提として説明したが、これに限られるものでは無く、他のフレームワークに対応したクラス等を生成することとしてもよい。
また、本発明のＷｅｂアプリケーション開発支援装置を構成する各定義部及びソースコード生成部は、それぞれ別端末で構成してもよい。
【図面の簡単な説明】
【００２９】
【図１】本発明の一実施の形態に係るＷｅｂアプリケーション開発支援装置の概略構成を示すブロック図である。
【図２】Ｓｔｒｕｔｓを利用したＷｅｂアプリケーションの概略構成を示す図である。
【図３】本発明の一実施の形態に係るＷｅｂアプリケーション開発支援装置による処理の概要を示すフローチャートである。
【図４】ＶａｌｕｅＯｂｕｊｅｃｔ定義画面の画面構成の一例を示す図である。
【図５】画面仕様定義画面（画面仕様定義）の画面構成の一例を示す図である。
【図６】画面仕様定義画面（ビジネスロジック定義）の画面構成の一例を示す図である。
【図７】ＶａｌｕｅＯｂｕｊｅｃｔ定義の一例を示す図である。
【図８】ＶａｌｕｅＯｂｕｊｅｃｔ定義の一例を示す図である。
【図９】画面仕様定義の一例を示す図である。
【図１０】ビジネスロジック定義の一例を示す図である。
【図１１】画面仕様定義の一例を示す図である。
【図１２】画面仕様情報を示すソースコードの一例を示す図である。
【図１３】画面仕様定義部の行う画面遷移表示処理手順を示すフローチャートである。
【図１４】プレゼンテーション層ソースコード自動生成部の行うソースコード生成処理手順を示すフローチャートである。
【図１５】プレゼンテーション層ソースコード自動生成部の行うソースコード生成処理手順を示すフローチャートである。
【図１６】プレゼンテーション層ソースコード自動生成部の行うソースコード生成処理手順を示すフローチャートである。
【図１７】生成したＶａｌｕｅＯｂｕｊｅｃｔのソースコードの一例を示す図である。
【図１８】生成したアクションフォームＢｅａｎのソースコードの一例を示す図である。
【図１９】生成したＶａｌｕｅＯｂｕｊｅｃｔのソースコードの一例を示す図である。
【図２０】生成したビジネスロジックの雛形のソースコードの一例を示す図である。
【図２１】生成したアクションクラスのソースコードの一例を示す図である。
【図２２】生成したＳｔｒｕｔｓ設定ファイルのソースコードの一例を示す図である。
【符号の説明】
【００３０】
１００  Ｗｅｂアプリケーション開発支援装置、１０１  ＶａｌｕｅＯｂｕｊｅｃｔ定義部、１０２  画面仕様定義部、１０３  画面仕様情報記憶部、１０４  プレゼンテーション層ソースコード自動生成部、１１０  プレゼンテーション層ソースコード。
【図１】
2006163855.tif 000003
【図２】
2006163855.tif 000004
【図３】
2006163855.tif 000005
【図４】
2006163855.tif 000006
【図５】
2006163855.tif 000007
【図６】
2006163855.tif 000008
【図７】
2006163855.tif 000009
【図８】
2006163855.tif 000010
【図９】
2006163855.tif 000011
【図１０】
2006163855.tif 000012
【図１１】
2006163855.tif 000013
【図１２】
2006163855.tif 000014
【図１３】
2006163855.tif 000015
【図１４】
2006163855.tif 000016
【図１５】
2006163855.tif 000017
【図１６】
2006163855.tif 000018
【図１７】
2006163855.tif 000019
【図１８】
2006163855.tif 000020
【図１９】
2006163855.tif 000021
【図２０】
2006163855.tif 000022
【図２１】
2006163855.tif 000023
【図２２】
2006163855.tif 000024