(57)【特許請求の範囲】
【請求項１】
業務ロジック記述ファイルと、Ｗｅｂ画面の構成を記述する画面構成記述ファイルと、業務処理と画面表示の連携制御に必要なデータ定義情報を記述するデータ定義ファイルとの間の整合性をチェックするための整合性チェックプログラムであって、
コンピュータは、
前記業務ロジック記述ファイルと、前記画面構成記述ファイルと、前記データ定義ファイルとを記憶するファイル記憶手段と、
業務ロジック情報を記憶する業務ロジック記憶手段と、
画面構成情報を記憶する画面構成記憶手段と、を備え、
前記コンピュータを、
前記ファイル記憶手段に記憶された前記業務ロジック記述ファイルを構文解析し、当該業務ロジック記述ファイルに記述されている複数のカラム識別子を業務ロジック情報として前記業務ロジック記憶手段に記憶する業務ロジック解析手段、
前記ファイル記憶手段に記憶された前記画面構成記述ファイルを構文解析し、当該画面構成記述ファイルに記述されている複数のカラム識別子を画面構成情報として前記画面構成記憶手段に記憶する画面構成解析手段、
前記ファイル記憶手段に記憶された前記データ定義ファイルに記述されている複数のカラム識別子をデータ定義情報として取得する取得手段、
前記画面構成情報として前記画面構成記憶手段に記憶されたカラム識別子と、前記データ定義情報として前記取得手段が取得したカラム識別子とを比較し、前記画面構成情報として記憶されたカラム識別子の各々が、前記データ定義情報として取得されたカラム識別子の中に存在するか否かをチェックするチェック手段、
前記業務ロジック情報として前記業務ロジック記憶手段に記憶されたカラム識別子と、前記データ定義情報として前記取得手段が取得したカラム識別子とを比較し、前記業務ロジック情報として記憶されたカラム識別子の各々が、前記データ定義情報として取得されたカラム識別子の中に存在するか否かをチェックするチェック手段、
前記画面構成情報として記憶されたカラム識別子が前記データ定義情報として取得されたカラム識別子の中に存在しない場合、又は前記業務ロジック情報として記憶されたカラム識別子が前記データ定義情報として取得されたカラム識別子の中に存在しない場合に、エラーメッセージを表示する表示手段、
として機能させるための整合性チェックプログラム。
【請求項２】
業務ロジック記述ファイルと、Ｗｅｂ画面の構成を記述する画面構成記述ファイルと、業務処理と画面表示の連携制御に必要なデータ定義情報を記述するデータ定義ファイルとの間の整合性をチェックする整合性チェック装置であって、
前記業務ロジック記述ファイルと、前記画面構成記述ファイルと、前記データ定義ファイルとを記憶するファイル記憶手段と、
業務ロジック情報を記憶する業務ロジック記憶手段と、
画面構成情報を記憶する画面構成記憶手段と、
前記ファイル記憶手段に記憶された前記業務ロジック記述ファイルを構文解析し、当該業務ロジック記述ファイルに記述されている複数のカラム識別子を前記業務ロジック情報として前記業務ロジック記憶手段に記憶する業務ロジック解析手段と、
前記ファイル記憶手段に記憶された前記画面構成記述ファイルを構文解析し、当該画面構成記述ファイルに記述されている複数のカラム識別子を前記画面構成情報として前記画面構成記憶手段に記憶する画面構成解析手段と、
前記ファイル記憶手段に記憶された前記データ定義ファイルに記述されている複数のカラム識別子をデータ定義情報として取得する取得手段と、
前記画面構成情報として前記画面構成記憶手段に記憶されたカラム識別子と、前記データ定義情報として前記取得手段が取得したカラム識別子とを比較し、前記画面構成情報として記憶されたカラム識別子の各々が、前記データ定義情報として取得されたカラム識別子の中に存在するか否かをチェックするチェック手段と、
前記業務ロジック情報として前記業務ロジック記憶手段に記憶されたカラム識別子と、前記データ定義情報として前記取得手段が取得したカラム識別子とを比較し、前記業務ロジック情報として記憶されたカラム識別子の各々が、前記データ定義情報として取得されたカラム識別子の中に存在するか否かをチェックするチェック手段と、
前記画面構成情報として記憶されたカラム識別子が前記データ定義情報として取得されたカラム識別子の中に存在しない場合、又は前記業務ロジック情報として記憶されたカラム識別子が前記データ定義情報として取得されたカラム識別子の中に存在しない場合に、エラーメッセージを表示する表示手段と、
を有する整合性チェック装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、業務ロジック記述ファイルと、画面構成記述ファイルと、業務処理と画面表示の連携制御に必要な画面遷移定義情報を記述する画面遷移定義ファイルとの整合性又は業務ロジック記述ファイルと、画面構成記述ファイルと、業務処理と画面表示の連携制御に必要なデータ定義情報を記述するデータ定義ファイルとの整合性をチェックするプログラム及び方法に関する。
【背景技術】
【０００２】
アプリケーションをModel（ロジック）、View（プレゼンテーション）、Controller（制御）の3つの部分に分割して、それぞれを別個に作成することによって、機能分離を明確化し、各機能の独立性を確保して、プログラミングの分業を効率的に進めることができる。また、コンポーネント間の依存性を最小限に抑えることによって、他の部分が変更されたことによる影響を受けにくくすることもできる。こうすることでコンポーネントの再利用性が高まる。また、他のコンポーネントが変更されたことによるメンテナンスも最小限に抑えることができ、保守性も高まる。
【０００３】
このようなMVCモデルは、Webサイト上の決済サービスや、統合認証、バックエンド接続、セッション管理など、Webアプリケーション構築の開発生産性向上を目的に、広く活用されている。
【０００４】
具体的には、Java（登録商標）言語、COBOL言語又はC言語などによって業務ロジックを記述する部分(Model)、HTMLやJSPによるWeb画面の構成を記述する部分(View)、Servletによる業務処理とWeb画面表示の連携制御を記述する部分(Control)というように分割して、それぞれを別個に作成する（例えば、非特許文献１参照）。
【０００５】
なお、「EJB」は、Enterprise JavaBeansの略であって、サーバサイドでのビジネスロジックの集約化を目的としたコンポーネント仕様のことである。 「JSP」は、Java Server Pages の略であって、HTMLの中にJavaのコードを埋め込んで実行させるためのしくみである。 「Servlet」は、サーバサイドでのJava実行形態のひとつであって、Webサーバと連携してJavaのプログラムを動作させるためのしくみである。
【非特許文献１】“ＭＶＣモデル開発フレームワーク”[online]、「２００４年４月２３日検索」、インターネット<URL: http://works.nri.co.jp/solution/about_ow/framework/framework01.html >
【発明の開示】
【発明が解決しようとする課題】
【０００６】
例えば、Java言語で記述、コンパイルして得られるClassファイルと各種定義ファイルとJSPファイルとをデプロイし、その後に各処理を実際に実行してエラーを発見する場合、実行時まで判明しないエラーが数多くあり、またあらゆるパターンを一つずつ実行しなければエラーを発見することが出来ない。
【０００７】
そこで、本発明は、コンパイルやデプロイをすることなく、Javaファイル等の業務ロジック記述ファイルと、JSPファイル等の画面構成記述ファイルと、業務処理と画面表示の連携制御に必要なXMLファイル等の画面遷移定義ファイル又はデータ定義ファイルとの間の不整合をチェックし、発見するプログラム及び方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の第１の特徴は、整合性チェックプログラムであって、業務ロジック記述ファイルと、画面構成記述ファイルと、業務処理と画面表示の連携制御に必要な画面遷移定義情報を記述する画面遷移定義ファイルとの間の整合性をチェックさせるためにコンピュータを、
業務ロジック記述ファイルに記述されている複数の業務処理要素名を業務ロジック情報として記憶する記憶手段、
複数の画面構成記述ファイルのファイル名と画面構成記述ファイルに記述されている複数の業務処理要素識別子とを画面構成情報として記憶する記憶手段、
画面遷移定義ファイルに記述されている複数の画面識別子と複数の業務処理要素識別子と複数の業務処理要素名とを画面遷移定義情報として記憶する記憶手段、
画面遷移定義情報として記憶された画面識別子と、画面構成情報として記憶された画面構成記述ファイル名とを比較し、画面識別子の各々が画面構成記述ファイル名のいずれかに対応するかを調べる比較手段、
画面遷移定義情報として記憶された業務処理要素名と、業務ロジック情報として記憶された業務処理要素名とを比較し、画面遷移定義情報として記憶された業務処理要素名の各々が業務ロジック情報として記憶された業務処理要素名のいずれかに対応するかを調べる比較手段、
画面構成情報として記憶された業務処理要素識別子と、業務ロジック情報として記憶された業務処理要素名とを比較し、画面構成情報として記憶された業務処理要素識別子の各々が業務ロジック情報として記憶された業務処理要素名のいずれかに対応するかを調べる比較手段、
画面識別子に対応する画面構成記述ファイルが存在しない、画面遷移定義情報として記憶された業務処理要素名に対応する業務処理要素名が、業務ロジック情報として記憶されていない、又は画面構成情報として記憶された業務処理要素識別子に対応する業務処理要素名が、業務ロジック情報として記憶されていない場合に、エラーメッセージを表示する表示手段、として機能させることにある。
【０００９】
業務ロジック記述ファイルとは、例えばJavaファイルであり、業務処理要素識別子とは、例えばアクションIDであり、業務処理要素名とは、例えばメソッド名であり、記憶手段とは、例えばフレキシブルディスク、ハードディスク、ランダムアクセスメモリなどである。
【００１０】
画面構成記述ファイルとは、例えばJSPファイルであり、画面遷移定義ファイルとは、例えば後述する画面遷移定義XMLファイルなどである。
【００１１】
「画面識別子の各々が画面構成記述ファイル名のいずれかに対応する」とは、「画面識別子の各々が画面構成記述ファイル名のいずれかと同じ」ということを意味しない。例えば、画面識別子が"test_01"で、画面構成記述ファイル名が"test_01.jsp"である場合のように、画面識別子が画面構成記述ファイル名から拡張子を除いた残りである場合などは、「画面識別子が画面構成記述ファイル名に対応する」に該当する。
【００１２】
また、「画面構成情報として記憶された業務処理要素識別子が業務ロジック情報として記憶された業務処理要素名に対応する」とは、「画面構成情報として記憶された業務処理要素識別子が業務ロジック情報として記憶された業務処理要素名と同じ」ということを意味しない。画面構成情報として記憶された業務処理要素識別子（アクションID）が"doSearch"で、業務ロジック情報として記憶された業務処理要素名（メソッド名）が"search"である場合のように、画面構成情報として記憶された業務処理要素識別子が、業務ロジック情報として記憶された業務処理要素名の前に"do"を付加したものである場合などは、「画面構成情報として記憶された業務処理要素識別子が業務ロジック情報として記憶された業務処理要素名に対応する」に該当する。
【００１３】
表示手段とは、例えば液晶ディスプレイ、ＣＲＴディスプレイなどである。エラーメッセージとは、業務処理に支障をきたす不整合が発見されたことを伝えるものである。
【００１４】
本発明の第２の特徴は、コンピュータを、画面構成記述ファイル名の各々が、画面識別子のいずれかに対応するかを調べる比較手段、画面構成記述ファイル名に対応する画面識別子が存在しない場合に、警告メッセージを表示する表示手段、としてさらに機能させることにある。
【００１５】
警告メッセージとは、業務処理に支障はきたさない不整合が発見されたことを伝えるものである。
【００１６】
本発明の第３の特徴は、コンピュータを、業務ロジック情報として記憶された業務処理要素名の各々が、画面遷移定義情報として記憶された業務処理要素名のいずれかに対応するかを調べる比較手段、
業務ロジック情報として記憶された業務処理要素名の各々が、画面構成情報として記憶された業務処理要素識別子のいずれかに対応するかを調べる比較手段、
業務ロジック情報として記憶された業務処理要素名に対応する業務処理要素名が、画面遷移定義情報として記憶されていない場合に、警告メッセージを表示する表示手段、としてさらに機能させることにある。
【００１７】
本発明の第４の特徴は、業務ロジック記述ファイルと、画面構成記述ファイルと、業務処理と画面表示の連携制御に必要なデータ定義情報を記述するデータ定義ファイルとの間の整合性をチェックさせるためにコンピュータを、
業務ロジック記述ファイルに記述されている複数のカラム識別子を業務ロジック情報として記憶する記憶手段、
複数の画面構成記述ファイルに記述されている複数のカラム識別子を画面構成情報として記憶する記憶手段、
データ定義ファイルに記述されている複数のカラム識別子をデータ定義情報として記憶する記憶手段、
画面構成情報として記憶されたカラム識別子と、データ定義情報として記憶されたカラム識別子とを比較し、画面構成情報として記憶されたカラム識別子の各々が、データ定義情報として記憶されたカラム識別子のいずれかに対応するかを調べる比較手段、
業務ロジック情報として記憶されたカラム識別子と、データ定義情報として記憶されたカラム識別子とを比較し、業務ロジック情報として記憶されたカラム識別子の各々が、データ定義情報として記憶されたカラム識別子のいずれかに対応するかを調べる比較手段、
業務ロジック情報として記憶された業務処理要素名に対応する業務処理要素識別子が、画面構成情報として記憶されていない場合に、警告メッセージを表示する表示手段、として機能させることにある。
【００１８】
データ定義ファイルとは、例えば後述するデータ定義XMLファイルなどである。
【００１９】
本発明の第５の特徴は、コンピュータを、データ定義情報として記憶されたカラム識別子の各々が、画面構成情報として記憶されたカラム識別子のいずれかに対応するかを調べる比較手段、
画面構成情報として記憶されたカラム識別子に対応するカラム識別子が、データ定義情報として記憶されていない、又は業務ロジック情報として記憶されたカラム識別子に対応するカラム識別子が、データ定義情報として記憶されていない場合に、エラーメッセージを表示する表示手段、としてさらに機能させることにある。
【００２０】
本発明の第６の特徴は、コンピュータを、データ定義情報として記憶されたカラム識別子の各々が、業務ロジック情報として記憶されたカラム識別子のいずれかに対応するかを調べる比較手段、データ定義情報として記憶されたカラム識別子に対応するカラム識別子が、画面構成情報として記憶されていない場合に、警告メッセージを表示する表示手段、としてさらに機能させることにある。
【発明の効果】
【００２１】
本発明の第１の特徴によれば、画面識別子の各々が、画面構成記述ファイル名のいずれかに対応するかを調べることによって、画面遷移定義ファイルで定義されているが、作成されていない画面構成記述ファイルを発見することができる。
【００２２】
また、画面遷移定義情報として記憶された業務処理要素名の各々が、業務ロジック情報として記憶された業務処理要素名のいずれかに対応するかを調べることによって、画面遷移定義ファイルで定義されているが、業務ロジック記述ファイル内に記述されていない業務処理要素を発見することができる。
【００２３】
さらに、画面構成情報として記憶された業務処理要素識別子の各々が、業務ロジック情報として記憶された業務処理要素名のいずれかに対応するかを調べることによって、画面構成記述ファイルで使用されているが、業務ロジック記述ファイル内に記述されていない業務処理要素を発見することができる。
【００２４】
このようにして、コンパイルやデプロイをすることなく、業務ロジック記述ファイルと画面構成記述ファイルと画面遷移定義ファイルとの間の不整合を発見することができる。また、一度のチェックプログラム実行で複数の不整合を発見することができる。
【００２５】
本発明の第２の特徴によれば、画面構成記述ファイル名の各々が、画面識別子のいずれかに対応するかを調べることによって、作成されてはいるが、画面遷移定義ファイルで使用されていない画面構成記述ファイルを発見することができる。
【００２６】
本発明の第３の特徴によれば、業務ロジック情報として記憶された業務処理要素名の各々が、画面遷移定義情報として記憶された業務処理要素名のいずれかに対応するかを調べることによって、業務ロジック記述ファイルに記述されているが、画面遷移定義ファイルで定義されていない業務処理要素を発見することができる。
【００２７】
また、業務ロジック情報として記憶された業務処理要素名の各々が、画面構成情報として記憶された業務処理要素識別子のいずれかに対応するかを調べることによって、業務ロジック記述ファイルに記述されているが、画面構成記述ファイルで使用されていない業務処理要素を発見することができる。
【００２８】
本発明の第４の特徴によれば、画面構成情報として記憶されたカラム識別子の各々が、データ定義情報として記憶されたカラム識別子のいずれかに対応するかを調べることによって、画面構成記述ファイルに記述されているが、データ定義ファイルで定義されていないカラム識別子を発見することができる。
【００２９】
また、業務ロジック情報として記憶されたカラム識別子の各々が、データ定義情報として記憶されたカラム識別子のいずれかに対応するかを調べることによって、業務ロジック記述ファイルに記述されているが、データ定義ファイルで定義されていないカラム識別子を発見することができる。
【００３０】
本発明の第５の特徴によれば、データ定義情報として記憶されたカラム識別子の各々が、画面構成情報として記憶されたカラム識別子のいずれかに対応するかを調べることによって、データ定義ファイルで定義されているが、画面構成記述ファイルで使用されていないカラム識別子を発見することができる。
【００３１】
本発明の第６の特徴によれば、データ定義情報として記憶されたカラム識別子の各々が、業務ロジック情報として記憶されたカラム識別子のいずれかに対応するかを調べることによって、データ定義ファイルで定義されているが、業務ロジック記述ファイルで使用されていないカラム識別子を発見することができる。
【発明を実施するための最良の形態】
【００３２】
以下に図面に基づいて、本発明を実施するための最良の形態を説明する。なお、以下の説明は、単なる例示に過ぎず、本発明の技術的範囲は以下の説明に限定されるものではない。
【実施例１】
【００３３】
図１は、実施例１にかかるWebアプリケーションサーバ２０の概略構成を示す。図１に示すように、サーバ２０はクライアント１０のWebブラウザからリクエストを受け取り、レスポンスを返す。具体的には、サーバ２０は、画面遷移定義XMLファイル２１ａ、データ定義XMLファイル２１ｂと、これら定義ファイルを読み込んで動作するコントローラ２２と、コントローラから処理要求を受け取り、所定のデータなどを返すJavaBL（ビジネスロジックを構築するJavaアプリケーション）２３と、コントローラからページ表示要求を受け取り、ページ表示をレスポンスとしてクライアントへ返すJSP２４とを記憶部（図示せず）に記憶する。
【００３４】
本実施例の整合性チェックツールは、これら定義ファイル２１とJavaBL（以下適宜、「Javaアプリケーション」と呼ぶ）２３とJSP２４との間の整合性を、コンパイルやデプロイを経ずにチェック可能とするものである。
【００３５】
図２は、実施例１における整合性チェック装置の構成図を示す。図２に示すように、整合性チェック装置３０は、中央処理装置（ＣＰＵ）３１と、メインメモリ３２と、入力装置３３と、ファイル装置３４と、出力装置３６とを備え、それら各装置がバス３７を介してデータをやり取りすることができる。
【００３６】
入力装置３３にはキーボードや、ＦＤドライブやネットワークインターフェースカードなどが含まれる。この入力装置を用いて各種ファイルを作成又は読み込む。
【００３７】
ファイル装置３４には、ハードディスクドライブが含まれる。入力装置３３を用いて作成又は読み込まれた画面遷移定義XMLファイル２１ａ、データ定義ＸＭＬファイル、JavaBLソースファイル、JSPソースファイル等がファイル装置３４ａに格納され、整合性チェックプログラム（以下適宜、「整合性チェックツール」と呼ぶ）、画面遷移定義情報取得ルーチン４２、データ定義情報取得ルーチン、JavaBL情報取得ルーチン、JSP情報取得ルーチン、画面遷移定義チェックルーチン、データ定義チェックルーチン等がファイル装置３４ｂに格納されるものとする。
【００３８】
メインメモリ３２は、整合性チェックツールのワークエリアとして使用される。出力装置３６には、液晶ディスプレイ、ＣＲＴディスプレイ等が含まれる。整合性をチェックした結果としてのエラーメッセージ、警告メッセージなどが出力装置３６に出力される。
【００３９】
中央処理装置（ＣＰＵ）３１は、（１）画面遷移定義情報として記憶された画面識別子と、画面構成情報として記憶された画面構成記述ファイル名とを比較し、画面識別子の各々が画面構成記述ファイル名のいずれかに対応するかを調べる比較手段、（２）画面遷移定義情報として記憶された業務処理要素名と、業務ロジック情報として記憶された業務処理要素名とを比較し、画面遷移定義情報として記憶された業務処理要素名の各々が業務ロジック情報として記憶された業務処理要素名のいずれかに対応するかを調べる比較手段、（３）画面構成情報として記憶された業務処理要素名と、業務ロジック情報として記憶された業務処理要素名とを比較し、画面構成情報として記憶された業務処理要素名の各々が業務ロジック情報として記憶された業務処理要素名のいずれかに対応するかを調べる比較手段、として機能する。
【００４０】
図３は、実施例１における整合性チェック処理の流れを示すフローチャートである。図３に示すように、
ステップＳ１１で、画面遷移定義XMLファイル２１ａ、データ定義XMLファイルを読み込み、
ステップＳ１２で、画面遷移定義情報、データ定義情報を取得し、
ステップＳ２１で、JSPソースファイルを読み込み、
ステップＳ２２で、JSPソースファイルの構文を解析し、
ステップＳ２３で、JSP構文解析結果をJSPリポジトリに登録し、
ステップＳ２４で、JSPリポジトリからJSP情報を取得し、
ステップＳ３１で、Javaソースファイルを読み込み、
ステップＳ３２で、Javaソースファイルの構文を解析し、
ステップＳ３３で、Java構文解析結果をJavaリポジトリに登録し、
ステップＳ３４で、JavaリポジトリからJavaBL情報を取得し、
ステップＳ４１で、画面遷移定義情報とJSP情報とJavaBL情報とに基づいて画面遷移定義の整合性をチェックし、かつデータ定義情報とJSP情報とJavaBL情報とに基づいてデータ定義の整合性をチェックし、
ステップＳ４２で、エラーの有無を調べ、エラーが存在する場合はステップＳ４３でエラーメッセージを表示し
ステップＳ４４で、警告の要否を調べ、警告が必要な場合はステップＳ４５で警告メッセージを表示する。
【００４１】
図４は、実施例１における整合性チェックツールの内部構成を示す。図４に示すように、整合性チェックツール４０は情報取得ルーチン４１と整合性チェックルーチン４６から構成されている。情報取得ルーチン４１は、画面遷移定義情報取得ルーチン４２とデータ定義情報取得ルーチン４３とJavaBL情報取得ルーチン４４とJSP情報取得ルーチン４５とを含む。また、整合性チェックルーチン４６は、画面遷移定義チェックルーチン４７とデータ定義チェックルーチン４８とを含む。
【００４２】
画面遷移定義情報取得ルーチン４２は、画面遷移定義XMLファイル２１ａを読み込み、画面遷移定義情報を出力する。画面遷移定義XMLファイル２１ａは、あるページで、あるアクションが要求されたら、どのJavaBLを実行し、その返値に応じてどのページへ遷移するか等を定義する。
【００４３】
データ定義情報取得ルーチン４３は、データ定義XMLファイル２１ｂを読み込み、データ定義情報を出力する。データ定義XMLファイル２１ｂは、カラムID、カラムIDに対応するカラム日本語名、データチェック情報、初期値等を定義する。
【００４４】
JavaBLソースファイル２３ｓは、Javaパーサによって構文解析される。
【００４５】
構文解析方法は、Java言語の構造定義を例えば大きく３つの部分に分けて行う。１つ目の部分は、プログラム、ファイル、ファイル中の関数宣言や大域変数宣言等の宣言文により表現されるプログラムの全体構造である。２つ目の部分は、制御文、ブロック又は式等のプログラムの基本構造である。３つ目の部分は、変数や関数の名前や型、定数、演算子及びそれらの宣言等のプログラムの基本要素である。
【００４６】
構文解析結果は、XMLファイルとしてJavaリポジトリに格納される。JavaBL情報取得ルーチン４４は、低レベルAPI (application programming interface)を介してJavaリポジトリからJavaBL情報を取得し、取得したJavaBL情報を画面遷移定義チェックルーチン４７及びデータ定義チェックルーチン４８へ出力する。Javaパーサ（解析器）及びJavaリポジトリ用の低レベルなAPIとしては名古屋大学大学院情報科学研究科（阿草研究室）開発のJapidが使用可能である。
【００４７】
JSPソースファイル２４ｓは、JSPパーサによって構文解析される。構文解析方法は、JavaBL情報取得の場合と同様である。
【００４８】
構文解析結果は、XMLファイルとしてJSPリポジトリに格納される。JSP情報取得ルーチン４５は、低レベルなAPIを介してJSPリポジトリからJSP情報を取得し、取得したJSP情報を画面遷移定義チェックルーチン４７及びデータ定義チェックルーチン４８へ出力する。JSPパーサ（解析器）、JSPリポジトリ用の低レベルAPIとしては名古屋大学大学院情報科学研究科（阿草研究室）開発のWapidが使用可能である。
【００４９】
次に、整合性チェックルーチンについて説明する。整合性チェックルーチンは、画面遷移定義チェックルーチン４７とデータ定義チェックルーチン４８とを備える。
【００５０】
画面遷移定義チェックルーチン４７は、画面遷移定義情報取得ルーチン４２から画面遷移定義情報を受け取り、JavaBL情報取得ルーチン４４からJavaBL情報を受け取り、JSP情報取得ルーチン４５からJSP情報を受け取り、画面遷移定義XMLファイル２１ａ、JavaBLソースファイル２３ｓ、JSPソースファイル２４ｓ間の整合性をチェックし、不整合を発見したらエラー(Error)メッセージ、警告(Warning)メッセージを出力装置３６に出力する。
【００５１】
画面遷移定義チェックルーチン４７は、画面遷移定義XMLファイル２１ａに記述されたメソッドが正しくJavaBLソース２３ｓに記述されているか、及び画面遷移定義XMLファイル２１ａに記述された遷移を行うようにJSPソース２４ｓが記述されているかをチェックする。
【００５２】
データ定義チェックルーチン４８は、データ定義情報取得ルーチン４３からデータ定義情報を受け取り、JavaBL情報取得ルーチン４４からJavaBL情報を受け取り、JSP情報取得ルーチン４５からJSP情報を受け取り、データ定義XMLファイル２１ｂとJavaBLソースファイル２３ｓとJSPソースファイル２４ｓとの間の整合性をチェックし、不整合を発見したらエラー(Error)メッセージ、警告(Warning)メッセージを表示装置３６に出力する。
【００５３】
データ定義チェックルーチン４８は、データ定義XMLファイル２１ｂに記述されたデータが正しくJavaBLソース２３ｓ、JSPソース２４ｓで利用されているかをチェックする。
【００５４】
図５に画面遷移定義チェックの概要の一例を示す。まず、画面遷移定義XMLファイル２１ａの内容とそれから取得される画面遷移定義情報について説明する。画面遷移定義XMLファイル２１ａの内容は以下のとおりとする。
【００５５】
・・・・・
<ControlIProcess>
<PageId>query</PageId>
<ActionId>doSearch</ActionId>
<PLTr>search</PLTr>
<NextPage>
<ProcRet>0</ProcRet>
<NextPageId>searchOk</NextPageId>
<NextPageJSPPath>searchOk.jsp</ NextPageJSPPath >
・・・
</NextPage>
・・・・・
</ControlIProcess>
そして、
・<ActionId>と</ActionId>とに挟まれた”doSearch”を、アクションＩＤとして、
・<PLTr>と</PLTr>とに挟まれた”search”を、実行するJavaBLの名前として
取得する。
【００５６】
さらに、
・ページＩＤ”query”、アクションＩＤ”doSearch”に対応する実行ＢＬ（ビジネスロジック）”search”を実行した場合に、返値が”0”のときはページＩＤ”searchOk”のページへ遷移する
ことなどが画面遷移定義情報として取得される。
【００５７】
前記の如く、画面遷移定義情報取得ルーチン４２は、取得したい画面遷移定義情報のタグ名を予め定めておき、かかるタグ名に対応する要素の内容を抽出する。
【００５８】
次に、JSPソースファイル２４ｓの内容とそれから取得されるJSP情報について説明する。JSPソースファイル２４ｓの内容は以下のとおりとする。
【００５９】
・・・・・
<form method=post action=”<%=
servletURL %>” onSubmit=”return
submitEventHandler(this)”>
・・・・・
<input type=”submit”
name=”ACT_doSearch” value=”実行”>
</font></p>
</form>
・・・・・・ 
前記のようなJSPファイル２４ｓから、JSPの情報全てが解析されてJSPリポジトリに格納される。その後、例えばtype属性が”submit”であるinputタグのname属性の属性値”ACT_doSearch”がJSP情報として抽出され、利用される。
【００６０】
次に、Javaソースファイル２３ｓの内容とそれから取得されるJavaBL情報について説明する。Javaソースファイル２３ｓの内容は以下のとおりとする。
【００６１】
・・・・・
public int search(SessionDataHolder argSdh,
DataStoreBean argDs, RequestDataHolder argRdh){
・・・・・
}
・・・・・
前記のようなJavaソースファイル２３ｓから、Javaの情報全てが解析されてJavaリポジトリに格納される。その後、例えば
直後が、“(”で、
直前が、int、stringなどのデータ型で、
直前のデータ型の直前がpublic、privateなどの修飾子である、
文字列” search”が、メソッド名としてJavaBL情報として抽出され、利用される。
【００６２】
画面遷移定義チェックルーチン４７は、これら画面遷移定義情報、JSP情報、JavaBL情報を照らし合わせて、画面遷移定義の整合性をチェックする。
【００６３】
図６にデータ定義チェックの概要の一例を示す。まず、データ定義XMLファイル２１ｂの内容とそれから取得されるデータ定義情報について説明する。データ定義XMLファイル２１ｂの内容は以下のとおりとする。
【００６４】
また、データ定義XMLファイル２１ｂの一例を以下に示す。
【００６５】
・・・・・
<DataStoreBean>
<DataStoreId>DSTestControl</DataStoreId>
<DataBuf>
<columnId>kaiin_no</columnId>
<columnName>会員ＮＯ</columnName>
<columnType>String</columnType>
<checkSet>
<model>1</model>
<chkTyp>IS_NOT_NULL</chkTyp>
</checkSet>
・・・・・
前記のようなデータ定義XMLファイル２１ｂから、カラムＩＤ”kaiin_no”がデータ定義情報として取得される。データ定義情報取得ルーチン４３も、画面遷移定義情報取得ルーチン４２と同様に、取得したいデータ定義情報のタグ名を予め定めておき、かかるタグ名に対応する要素の内容を抽出する。
【００６６】
次に、JSPソースファイル２４ｓの内容とそれから取得されるJSP情報について説明する。JSPソースファイル２４ｓの内容は以下のとおりとする。
【００６７】
・・・・・・ 
<input type=”text” name=”kaiin_no”
value=”<%= 
Util.htmlEscape(ds.getItem(“kaiin_no”))
%>” onBlur=’blurEventHandler(this)’
size=”9” maxlength=”8”>
・・・・・
前記のようなJSPソースファイル２４ｓから、type属性が”text”であるinputタグのname属性”kaiin_no”がJSP情報として取得される。
【００６８】
次に、Javaソースファイル２３ｓの内容とそれから取得されるJavaBL情報について説明する。Javaソースファイル２３ｓの内容は以下のとおりとする。
【００６９】
・・・・・
String sKaiinNo = argDs.getItem(“kaiin_no”);
・・・・・
前記のようなJavaソースファイル２４ｓから、例えばメソッド名の直後の括弧”()“内の引数”kaiin_no”がJavaBL情報として取得される。
【００７０】
図７に整合性チェックツール実行結果表示画面の一例を示す。同図に示す例では、３行目に示すように画面遷移定義XMLファイル(c:/usr/local/gnt/def/CORE_Def\TestSaiHouControl.XML）と、４行目に示すようにデータ定義XMLファイル(c:/usr/local/gnt/def/CORE_Def\DSTestSaiHouControl.XML）を解析してチェックしたところ、６行目に示すように画面遷移チェック結果は”OK”だが、７〜９行目に示すようにJavaファイル（TestBl.Java）の２４行目に記述されているカラムID”kounyuu_bi”がデータ定義XMLファイル(DSTestSaiHouControl.XML)で定義されていないことが、エラーメッセージとして表示され、また１１〜１２行目に示すようにデータ定義XMLファイル(DSTestSaiHouControl.XML)で定義されているカラムID ”nyuu_bi”が使用されていないことが、警告メッセージとして表示され、１３行目に示すようにデータチェック結果が”NG”であると表示される。
【００７１】
エラーメッセージとは、修正しないと実行時にエラーを発生する不整合を指摘するメッセージである。警告メッセージとは、修正しなくても実行可能な不整合を指摘するメッセージである。
【００７２】
図８（ａ）〜（ｄ）に整合性チェックルーチンが取得するデータ定義情報、データチェック情報、JavaBL（ビジネスロジック）情報及びカラム情報のイメージを示す。同９（ａ）〜（ｅ）にJSP情報、アクションＩＤ情報、カラムＩＤ情報、画面遷移定義情報及び返値・遷移先情報のイメージを示す。
【００７３】
図８（ａ）に示すデータ定義情報の例では、
データストアＩＤとして”ds_sample_id01”、
ファイルパスとして”c:\usr\local\o3w\def\ds_sample_id01.XML”、
カラムIDとしてカラムID_01〜09、
カラム日本語名としてカラム日本語名_01〜09を取得する。また、各カラムＩＤに対応するデータチェック情報及び初期値も取得する。
【００７４】
図８（ｂ）に示すデータチェック情報の例では、データの種類として、数値、半角及び範囲は許容するが、英数及び日付は不可である。
【００７５】
図８（ｃ）に示すJavaビジネスロジック情報の例では、
コントロールＩＤとして”sample_id01_”、
ファイルパスとして”c:\usr\local\o3w\def\ sample_id01.java”、
メソッド名として”search”, ”Ok”, ”cancel”、 メソッド名_04、メソッド名_05、メソッド名_06を取得する。また、各メソッドのメソッド位置、カラム情報及び返値も取得する。
【００７６】
図８（ｄ）に示すカラム情報の例では、カラムID_03、カラムID_05、各カラムIDに対応するカラム出現位置を取得する。
【００７７】
図９（ａ）に示すJSP情報の例では、ファイル名として”test_01.jsp”, ”test_02.jsp”, ”test_03.jsp”を取得する。また、各ファイルに対応するアクションＩＤ情報及びカラムＩＤ情報も取得する。
【００７８】
図９（ｂ）に示すアクションＩＤ情報の例では、”doSearch”, ”doOk”及び”doCancel”を取得する。
【００７９】
図９（ｃ）に示すカラムＩＤ情報の例では、”カラムID_03”及び”カラムID_07”を取得する。
【００８０】
図９（ｄ）に示す画面遷移定義情報の例では、
画面遷移IDとして”sample_id01”、
ファイルパスとして”c:\usr\local\o3w\def\sample_id01.XML”、
ページIDとして”test_01”, “test_02”, “test_03”、
ページID”test_01”に対応するアクションIDとして”doSearch”, “doOk”, “doCancel”、
ページID”test_02”に対応するアクションIDとして“doOk”、
ページID”test_03”に対応するアクションIDとして“doOk”、
ページID”test_01”のアクションID ”doSearch” に対応する実行BLとして“search”、
ページID”test_01”のアクションID ”doOk” に対応する実行BLとして“Ok”、
ページID”test_01”のアクションID ”docancel” に対応する実行BLとして“cancel”、
などを取得する。また、各実行BLに対応する返値・遷移先情報も取得する。
【００８１】
図９（ｅ）に示す返値・遷移先ページ情報の例では、
返値が”0”なら、ページID ”test_02”へ、
返値が”1”なら、ページID ”test_03”へ、
返値が”2”なら、ページID ”test_01”へ、
遷移することを示している。
【００８２】
次に、データ定義整合性チェックについて説明する。例えば、データ定義チェックルーチンは、
図８（ｄ）に示す各カラムIDが、図８（ａ）に示すデータ定義情報中に存在するか、
図９（ｂ）に示すアクションID ”doSearch”, ”doOk”, “doCancel”のそれぞれに対応するメソッド”search”, “Ok”, “cancel”が、図８（ｃ）に示すJavaBL情報中に存在するか、
図９（ｃ）に示す各カラムIDが、図８（ａ）に示すデータ定義情報中に存在するかをチェックする。
【００８３】
次に、画面遷移定義整合性チェックについて説明する。例えば、画面遷移定義チェックルーチンは、
図９（ｄ）に示す各ページIDが、図９（ａ）に示すJSP情報中に存在するか、
図９（ｅ）に示す各遷移先ページIDが、図９（ａ）に示すJSP情報中に存在するかをチェックする。
【００８４】
前記の如く、本発明の実施例によれば、ページID（画面識別子）の各々が、JSPファイル名（画面構成記述ファイル名）のいずれかに対応するかを調べることによって、画面遷移定義XMLファイルで定義されているが、作成されていないJSPファイルを発見することができる。
【００８５】
また、画面遷移定義情報として記憶されたメソッド名（業務処理要素名）の各々が、業務ロジック情報として記憶されたメソッド名のいずれかに対応するかを調べることによって、画面遷移定義XMLファイルで定義されているが、JavaBLファイル（業務ロジック記述ファイル）内に記述されていないメソッドを発見することができる。
【００８６】
さらに、画面構成情報として記憶されたメソッド名の各々が、業務ロジック情報として記憶されたメソッド名のいずれかに対応するかを調べることによって、JSPファイルで使用されているが、JavaBLファイル内に記述されていないメソッドを発見することができる。
【００８７】
このようにして、コンパイルやデプロイをすることなく、JaveBLファイルとJSPファイルと画面遷移定義XMLファイル又はデータ定義XMLファイルとの間の不整合を発見することができる。
【図面の簡単な説明】
【００８８】
【図１】実施例１におけるWebアプリケーションサーバ２０の概略構成を示す図である。
【図２】実施例１における整合性チェック装置の構成図を示すブロック図である。
【図３】実施例１における整合性チェック処理の流れを示すフローチャートである。
【図４】実施例１における整合性チェックツールの内部構成を示す図である。
【図５】実施例１における画面遷移定義チェックの概要の一例を示す。
【図６】実施例１におけるデータ定義チェックの概要の一例を示す。
【図７】実施例１における整合性チェックツール実行結果表示画面の一例を示す。
【図８】実施例１において整合性チェックルーチンが取得する情報のイメージを示し、（ａ）はデータ定義情報、（ｂ）はデータチェック情報、（ｃ）はJavaBL（ビジネスロジック）情報及び（ｄ）はカラム情報のイメージを示す。
【図９】実施例１において整合性チェックルーチンが取得する情報のイメージを示し、（ａ）はJSP情報、（ｂ）はアクションＩＤ情報、（ｃ）はカラムＩＤ情報、（ｄ）は画面遷移定義情報及び（ｅ）は返値・遷移先情報のイメージを示す。
【符号の説明】
【００８９】
２１ａ…画面遷移定義ＸＭＬファイル、  ２１ｂ…データ定義ＸＭＬファイル、
２３ｓ…JavaBLソースファイル、  ２４ｓ…JSPソースファイル、
３１…整合性チェック装置、  ３１…中央処理装置、
３２…メインメモリ、  ３３…入力装置、
３４…ファイル装置、  ３６…出力装置、
３７…バス、  ４０…整合性チェックツール、
４２…画面遷移定義情報取得ルーチン、  ４３…データ定義情報取得ルーチン、
４４…JavaBL情報取得ルーチン、  ４５…JSP情報取得ルーチン、
４７…画面遷移定義チェックルーチン、  ４８…データ定義チェックルーチン
【図１】
0004630572.tif 000002
【図２】
0004630572.tif 000003
【図３】
0004630572.tif 000004
【図４】
0004630572.tif 000005
【図５】
0004630572.tif 000006
【図６】
0004630572.tif 000007
【図７】
0004630572.tif 000008
【図８】
0004630572.tif 000009
【図９】
0004630572.tif 000010