(57)【要約】  【課題】 DBMSのテーブル構造変更に簡易に対応する。  【解決手段】  エンティティクラスソースコード生成手段５は、各項目毎の項目特性特定情報に基づき、対応する前記エンティティ項目名、項目の型、項目の表示名を差し込み処理をしたエンティティクラスソースコードを生成する。ストレージクラスソースコード生成手段７は、テーブル操作特定情報に基づき、各テーブル操作について各エンティティ項目の型を対応づけたストレージクラスソースコードを生成する。クラスデータ生成手段９は、これら２つのソースコードをコンパイルして、エンティティクラスおよびストレージクラスを生成する。項目特性特定情報およびテーブル操作特定情報を変更し前処理を実施するだけで、これに合致したビューモデルオブジェクトを得ることができ、テーブル構造の変更を画面まで伝えることができる。  【選択図】  図１
2006285690.tif 000002
【特許請求の範囲】
【請求項１】
データベース管理システムとウェブブラウザ端末との間に位置するJ2EEサーバを用いた画面生成方法であって、
1)前記データベース管理システムにおける各フィールドについての項目特性を項目毎に特定する項目特性特定情報であって、主キー特定情報、エンティティ項目名、項目の型、項目の表示名を含む項目特性特定情報、および、2)前記データベース管理システムで用いられるメソッド情報を特定するメソッド特定情報を記憶しておき、
前記項目特性特定情報から、項目毎のエンティティ項目名、項目の型、項目の表示名を読み出して、これらを、フィールド宣言部、コンストラクタ手続き部、主キーおよび主キー以外の項目についての属性の情報取得手続き部、主キーおよび主キー以外の項目についての属性情報設定手続き部で構成されるエンティティクラススケルトンXMLデータに差し込み処理をして、フィールド宣言部、コンストラクタ手続き部、主キーおよび主キー以外の項目についての属性の情報取得手続き部、主キーおよび主キー以外の項目についての属性情報設定手続き部で構成されるエンティティクラスデータを生成し、
前記メソッド特定情報で特定されるメソッド名、引数、戻り値を、フィールド宣言部、コンストラクタ手続き部、各メソッドを適用するエンティティを登録するエンティティ登録手続き部で構成されるストレージクラススケルトンXMLデータに差し込み処理をして、フィールド宣言部、コンストラクタ手続き部、各メソッドを適用するエンティティを登録するエンティティ登録手続き部で構成されるストレージクラスデータを生成し、
リフレクションAPIを用いて、前記コンパイルして生成されたエンティティクラスデータから、各エンティティ項目毎に、項目名、項目の型、項目の表示名を特定したフィールド情報定義データを取り出し、
リフレクションAPIを用いて、前記コンパイルして生成されたストレージクラスデータから、各メソッド毎に適用するエンティティ項目名、項目の型を特定したメソッド情報定義データを取り出し、
基本設定データを記憶するビューモデル定義記憶手段から、前記基本設定データを読み出して、前記取り出したフィールド情報定義データおよびメソッド情報定義データに合致したビューモデルオブジェクトを生成し、
前記データベース管理システムまたは前記ウェブブラウザ端末から、画面の種類を特定した画面生成要求があると、予め記憶しているビューモデルクラスデータおよび前記ビューモデルオブジェクトを用いて、要求された種類の画面のHTMLデータを生成すること、
を特徴とする画面生成方法。
【請求項２】
データベース管理システムとウェブブラウザ端末との間に位置する処理サーバにおける画面を生成する方法であって、
前記データベース管理システムにおける各フィールドについての項目特性を項目毎に特定する項目特性特定情報、および前記データベース管理システムで用いられるテーブル操作を特定するテーブル操作特定情報を記憶しておき、
前記各項目毎の項目特性特定情報に基づき、対応する前記エンティティ項目名、項目の型、項目の表示名を差し込み処理をしたエンティティクラスソースコードを生成し、
前記項目特性特定情報および前記テーブル操作特定情報に基づいて、各テーブル操作について前記各エンティティ項目の型を対応づけたストレージクラスソースコードを生成し、
前記エンティティクラスソースコードおよび前記ストレージクラスソースコードをコンパイルして、エンティティクラスデータおよびストレージクラスデータを生成し、
前記生成されたエンティティクラスデータから、各エンティティ項目毎に、項目名、項目の型、項目の表示名を特定したフィールド情報定義データを取り出し、
前記生成されたストレージクラスデータから、各テーブル操作毎のエンティティ項目名および項目の型を特定したメソッド情報定義データを取り出し、
基本設定データを記憶するビューモデル定義記憶手段から、前記基本設定データを読み出して、前記取り出したフィールド情報定義データおよびメソッド情報定義データに合致したビューモデルオブジェクトを生成し、
前記データベース管理システムまたは前記ウェブブラウザ端末から、画面の種類を特定した画面生成要求があると、前記ビューモデルオブジェクトを用いて、要求された種類の画面データを生成すること、
を特徴とする画面生成方法。
【請求項３】
データベース管理システムとウェブブラウザ端末との間に位置する処理サーバに用いるプログラムのクラスデータ生成方法であって、
前記データベース管理システムにおける各フィールドについての項目特性を項目毎に特定する項目特性特定情報、および前記データベース管理システムで用いられるテーブル操作を特定するテーブル操作特定情報を記憶しておき、
前記各項目毎の項目特性特定情報に基づき、対応する前記エンティティ項目名、項目の型、項目の表示名を差し込み処理をしたエンティティクラスソースコードを生成し、
前記項目特性特定情報および前記テーブル操作特定情報に基づいて、各テーブル操作について前記各エンティティ項目の型を対応づけたストレージクラスソースコードを生成し、
前記エンティティクラスソースコードおよび前記ストレージクラスソースコードをコンパイルして、エンティティクラスデータおよびストレージクラスデータを生成すること、
を特徴とするクラスデータの生成方法。
【請求項４】
データベース管理システムとウェブブラウザ端末との間に位置する処理サーバにおける画面を生成する装置であって、
前記データベース管理システムにおける各フィールドについての項目特性を項目毎に特定する項目特性特定情報、および前記データベース管理システムで用いられるテーブル操作を特定するテーブル操作特定情報を記憶する記憶手段、
前記各項目毎の項目特性特定情報に基づき、対応する前記エンティティ項目名、項目の型、項目の表示名を差し込み処理をしたエンティティクラスソースコードを生成するエンティティクラスソースコード生成手段、
前記項目特性特定情報および前記テーブル操作特定情報に基づいて、各テーブル操作について前記各エンティティ項目の型を対応づけたストレージクラスソースコードを生成するストレージクラスソースコード生成手段、
前記エンティティクラスソースコードおよび前記ストレージクラスソースコードをコンパイルして、エンティティクラスデータおよびストレージクラスデータを生成するクラスデータ生成手段、
前記生成されたエンティティクラスデータから、各エンティティ項目毎に、項目名、項目の型、項目の表示名を特定したフィールド情報定義データを取り出すとともに、前記生成されたストレージクラスデータから、各テーブル操作毎のエンティティ項目名および項目の型を特定したメソッド情報定義データを取り出す情報取り出し手段、
基本設定データを記憶するビューモデル定義記憶手段から、前記基本設定データを読み出して、前記取り出したフィールド情報定義データおよびメソッド情報定義データに合致したビューモデルオブジェクトを生成するビューモデルオブジェクト生成手段、
前記データベース管理システムまたは前記ウェブブラウザ端末から、画面の種類を特定した画面生成要求があると、前記ビューモデルオブジェクトを用いて、要求された種類の画面データを生成する画面データ生成手段、
を備えたことを特徴とする画面生成装置。
【請求項５】
データベース管理システムとウェブブラウザ端末との間に位置する処理サーバにおける画面を生成する装置であって、
前記データベース管理システムにおける各フィールドについての項目特性を項目毎に特定する項目特性特定情報、および前記データベース管理システムで用いられるテーブル操作を特定するテーブル操作特定情報を記憶する記憶手段、
前記各項目毎の項目特性特定情報に基づき、対応する前記エンティティ項目名、項目の型、項目の表示名を差し込み処理をしたエンティティクラスソースコードを生成するエンティティクラスソースコード生成手段、
前記項目特性特定情報および前記テーブル操作特定情報に基づいて、各テーブル操作について前記各エンティティ項目の型を対応づけたストレージクラスソースコードを生成するストレージクラスソースコード生成手段、
前記エンティティクラスソースコードおよび前記ストレージクラスソースコードをコンパイルして、エンティティクラスデータおよびストレージクラスデータを生成するクラスデータ生成手段、
前記生成されたエンティティクラスデータから、各エンティティ項目毎に、項目名、項目の型、項目の表示名を特定したフィールド情報定義データを取り出すとともに、前記生成されたストレージクラスデータから、各テーブル操作毎のエンティティ項目名および項目の型を特定したメソッド情報定義データを取り出す情報取り出し手段、
基本設定データを記憶するビューモデル定義記憶手段から、前記基本設定データを読み出して、前記取り出したフィールド情報定義データおよびメソッド情報定義データに合致したビューモデルオブジェクトを生成するビューモデルオブジェクト生成手段、
前記データベース管理システムまたは前記ウェブブラウザ端末から、画面の種類を特定した画面生成要求があると、前記ビューモデルオブジェクトを用いて、要求された種類の画面データを生成する画面データ生成手段、
を備えた画面自動生成装置であって、
前記データベース管理システムに対して、所定件数毎に分割して検索結果データを受け取る分割受け取り手段を備え、
前記画面データ生成手段は、前記受け取った検索結果データを表示する画面データを生成すること、
を特徴とする画面自動生成装置。
【請求項６】
データベース管理システムとウェブブラウザ端末との間に位置する処理サーバに用いるプログラムのクラスデータ生成装置であって、
前記データベース管理システムにおける各フィールドについての項目特性を項目毎に特定する項目特性特定情報、および前記データベース管理システムで用いられるテーブル操作を特定するテーブル操作特定情報を記憶する記憶手段、
前記各項目毎の項目特性特定情報に基づき、対応する前記エンティティ項目名、項目の型、項目の表示名を差し込み処理をしたエンティティクラスソースコードを生成するエンティティクラスソースコード生成手段、
前記項目特性特定情報および前記テーブル操作特定情報に基づいて、各テーブル操作について前記各エンティティ項目の型を対応づけたストレージクラスソースコードを生成するストレージクラスソースコード生成手段、
前記エンティティクラスソースコードおよび前記ストレージクラスソースコードをコンパイルして、エンティティクラスデータおよびストレージクラスデータを生成するクラスデータ生成手段、
を備えたことを特徴とするクラスデータの生成装置。
【請求項７】
データベース管理システムとウェブブラウザ端末との間に位置する画面自動生成装置であって、
前記ウェブブラウザ端末からの検索要請に基づいて前記データベース管理システムに、検索要請を与える手段、
前記データベース管理システムから検索結果データを受け取ると、この検索結果データに基づいて検索結果を表示する画面データを生成する画面データ生成手段、
を備えた画面自動生成装置であって、
前記データベース管理システムに対して、所定件数毎に分割して検索結果データを受け取る分割受け取り手段を備え、
前記画面データ生成手段は、前記受け取った検索結果データを表示する画面データを生成すること、
を特徴とする画面自動生成装置。
【請求項８】
データベース管理システムとウェブブラウザ端末との間に位置する処理サーバにおける画面を生成するプログラムであって、
前記プログラムは、以下のＡ）〜Ｈ）の処理を前記処理サーバに実行させること、
Ａ）前記データベース管理システムにおける各フィールドについての項目特性を項目毎に特定する項目特性特定情報、および前記データベース管理システムで用いられるテーブル操作を特定するテーブル操作特定情報を記憶しておき、
Ｂ）前記各項目毎の項目特性特定情報に基づき、対応する前記エンティティ項目名、項目の型、項目の表示名を差し込み処理をしたエンティティクラスソースコードを生成し、
Ｃ）前記項目特性特定情報および前記テーブル操作特定情報に基づいて、各テーブル操作について前記各エンティティ項目の型を対応づけたストレージクラスソースコードを生成し、
Ｄ）前記エンティティクラスソースコードおよび前記ストレージクラスソースコードをコンパイルして、エンティティクラスデータおよびストレージクラスデータを生成し、
Ｅ）前記生成されたエンティティクラスデータから、各エンティティ項目毎に、項目名、項目の型、項目の表示名を特定したフィールド情報定義データを取り出し、
Ｆ）前記生成されたストレージクラスデータから、各テーブル操作毎のエンティティ項目名および項目の型を特定したメソッド情報定義データを取り出し、
Ｇ）基本設定データを記憶するビューモデル定義記憶手段から、前記基本設定データを読み出して、前記取り出したフィールド情報定義データおよびメソッド情報定義データに合致したビューモデルオブジェクトを生成し、
Ｈ）前記データベース管理システムまたは前記ウェブブラウザ端末から、画面の種類を特定した画面生成要求があると、前記ビューモデルオブジェクトを用いて、要求された種類の画面データを生成すること、
を特徴とする画面生成プログラム。
【請求項９】
データベース管理システムとウェブブラウザ端末との間に位置する処理サーバに用いるクラスデータ生成プログラムであって、
前記プログラムは、以下のＡ）〜Ｄ）の処理を前記処理サーバに実行させること、
Ａ）前記データベース管理システムにおける各フィールドについての項目特性を項目毎に特定する項目特性特定情報、および前記データベース管理システムで用いられるテーブル操作を特定するテーブル操作特定情報を記憶しておき、
Ｂ）前記各項目毎の項目特性特定情報に基づき、対応する前記エンティティ項目名、項目の型、項目の表示名を差し込み処理をしたエンティティクラスソースコードを生成し、
Ｃ）前記項目特性特定情報および前記テーブル操作特定情報に基づいて、各テーブル操作について前記各エンティティ項目の型を対応づけたストレージクラスソースコードを生成し、
Ｄ）前記エンティティクラスソースコードおよび前記ストレージクラスソースコードをコンパイルして、エンティティクラスデータおよびストレージクラスデータを生成する、
を特徴とするクラスデータ生成プログラム。
【請求項１０】
データベース管理システムとウェブブラウザ端末との間に位置する処理サーバにおける画面を生成する方法であって、
前記データベース管理システムにおける各フィールドについての項目特性を項目毎に特定する項目特性特定情報、および前記データベース管理システムで用いられるテーブル操作を特定するテーブル操作特定情報を記憶しておき、
前記各項目毎の項目特性特定情報に基づき、対応する前記エンティティ項目名、項目の型、項目の表示名を差し込み処理をしたエンティティクラスソースコードを生成し、
前記メソッド特定情報を読み出して、前記メソッド特定情報を差し込み処理をしたストレージクラスソースコードを生成し、
前記エンティティクラスソースコードおよび前記ストレージクラスソースコードをコンパイルして、エンティティクラスデータおよびストレージクラスデータを生成し、
前記生成されたエンティティクラスデータから、各エンティティ項目毎に、項目名、項目の型、項目の表示名を特定したフィールド情報定義データを取り出し、
前記生成されたストレージクラスデータから、各手続き毎に手続きを行うエンティティ項目名を特定したメソッド情報定義データを取り出し、
基本設定データを記憶するビューモデル定義記憶手段から、前記基本設定データを読み出して、前記取り出したフィールド情報定義データおよびメソッド情報定義データに合致したビューモデルオブジェクトを生成し、
前記データベース管理システムまたは前記ウェブブラウザ端末から、画面の種類を特定した画面生成要求があると、前記ビューモデルオブジェクトを用いて、要求された種類の画面データを生成すること、
を特徴とする画面生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画面自動生成装置に関し、特に、テーブル構造の変動処理に関する。
【背景技術】
【０００２】
今日、データベースとウェブブラウザとを接続するミドルウェア技術としてJ2EEサーバが知られている。J2EEサーバは、一般的にサーブレット（servret)、JSP、EJBで構成されている。たとえば、ウェブブラウザからデータベースに記憶されている個人情報を用いて、ある地域の居住会員一覧表示画面の要求が与えられた場合には、サーブレット、JSP、EJBは、以下のように連携して、ウェブブラウザに画面を送信する。
【０００３】
サーブレットはウェブブラウザからの要求を受け取る。サーブレットは、定められたプログラムに基づいて、前記ある地域の居住会員一覧のリストを要求する命令をEJBに渡す。EJBは、この命令を解釈して、データベースサーバが理解できる命令に変換して、データベースサーバに与える。EJBは、データベースサーバから結果を受け取ると、結果をサーブレットに返す。サーブレットは、JSPに表示画面の生成依頼を行う。JSPはHTML画面を生成して、サーブレットに生成した画面を渡す。サーブレットは、これをウェブブラウザに送信する。
【０００４】
このようにJ2EEサーバにおいては、ウェブブラウザとのやり取りを担当するサーブレット、画面生成を担当するJSP、データベースサーバとのやり取りを行うEJBに役割分担を行わせて、必要な機能を実現している。
【０００５】
当然のことながら、サーブレット、画面生成を担当するJSP、データベースサーバについては、各々基本的なプログラムについてはある程度準備されているので、データベースのデータ構造に関係するデータ処理（各種の演算処理、表示処理など）についてのみ、個別にプログラムを準備すればよい。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、データベースのデータ構造が変更された場合には、前記個別のプログラムの変更が非常に煩雑であった。たとえば、データベースのデータ構造として、個人情報テーブルに「氏名」「年齢」「誕生日」の３つの項目がある場合に、４番目の項目として、項目「就職先」が追加された場合、以下のような修正が必要となる。「個人情報エンティティクラス」には「就職先」属性の追加を、また、「個人情報ストレージクラス」の登録操作において「就職先」引数の追加を、EJBについては「個人情報ストレージクラス」の登録操作に「就職先」引数の追加を、JSPについては、「就職先」フィールドを追加して表示、表示形式の変換、初期値の設定が必要であった。
【０００７】
このように、データベースのテーブル構成の変更(項目の追加、削除、変更、正規化によるテーブル分割)がなされると、(1)呼び出し側のEJB内の業務処理、(2)画面表示処理、(3)初期値の設定、(4)入力値及び結果値の検証処理、(5)表示形式変換処理、(6)EJB-Servlet間の受け渡しの為のクラスの変更が必要である。また、業務処理(呼び出しクラス、呼び出し手続き)の変更により、さらに、 (7)呼び出し側のEJB内の業務処理、(8)画面表示処理、(9)初期値の設定、(10)入力値及び結果値の検証処理、(11)表示形式変換処理も必要であった。
【０００８】
かかるデータベースのテーブル構造が変更された場合に、どのように変更されたかをデータベースサーバに問いあわせ、回答によって処理を変更することも考えられる。しかし、かかる問いあわせ機能としては、データベースサーバの機能に依存することとなるので、データベースの種類ごとに（たとえば、マイクロソフト社のMS SQL Server（商標）やOracle Database 10g （商標）など）、異なるプログラムが必要となる。
【０００９】
特許文献１には、表示については自動的に行うことができる装置が開示されているが、具体的にどのようにすれば可能なのか、また、表示以外の連動処理については何ら記載されていない。
【特許文献１】特開2003-99241号
【００１０】
かかる問題はJAVA（商標）以外のオブジェクト指向の言語の場合にも同様に問題となる。
【００１１】
この発明は、データベースの種類に依存することなく、データベースのテーブル構造が変更になった場合でも、簡易に変更に対応できる装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
１）本発明にかかるデータベース管理システムとウェブブラウザ端末との間に位置するJ2EEサーバを用いた画面生成方法においては、1)前記データベース管理システムにおける各フィールドについての項目特性を項目毎に特定する項目特性特定情報であって、主キー特定情報、エンティティ項目名、項目の型、項目の表示名を含む項目特性特定情報、および、2)前記データベース管理システムで用いられるメソッド情報を特定するメソッド特定情報を記憶しておき、前記項目特性特定情報から、項目毎のエンティティ項目名、項目の型、項目の表示名を読み出して、これらを、フィールド宣言部、コンストラクタ手続き部、主キーおよび主キー以外の項目についての属性の情報取得手続き部、主キーおよび主キー以外の項目についての属性情報設定手続き部で構成されるエンティティクラススケルトンXMLデータに差し込み処理をして、フィールド宣言部、コンストラクタ手続き部、主キーおよび主キー以外の項目についての属性の情報取得手続き部、主キーおよび主キー以外の項目についての属性情報設定手続き部で構成されるエンティティクラスデータを生成し、前記メソッド特定情報で特定されるメソッド名、引数、戻り値を、フィールド宣言部、コンストラクタ手続き部、各メソッドを適用するエンティティを登録するエンティティ登録手続き部で構成されるストレージクラススケルトンXMLデータに差し込み処理をして、フィールド宣言部、コンストラクタ手続き部、各メソッドを適用するエンティティを登録するエンティティ登録手続き部で構成されるストレージクラスデータを生成し、リフレクションAPIを用いて、前記コンパイルして生成されたエンティティクラスデータから、各エンティティ項目毎に、項目名、項目の型、項目の表示名を特定したフィールド情報定義データを取り出し、リフレクションAPIを用いて、前記コンパイルして生成されたストレージクラスデータから、各メソッド毎に適用するエンティティ項目名、項目の型を特定したメソッド情報定義データを取り出し、基本設定データを記憶するビューモデル定義記憶手段から、前記基本設定データを読み出して、前記取り出したフィールド情報定義データおよびメソッド情報定義データに合致したビューモデルオブジェクトを生成し、前記データベース管理システムまたは前記ウェブブラウザ端末から、画面の種類を特定した画面生成要求があると、予め記憶しているビューモデルクラスデータおよび前記ビューモデルオブジェクトを用いて、要求された種類の画面のHTMLデータを生成する。
【００１３】
このように、前記項目特性特定情報から前記エンティティ項目名、項目の型、項目の表示名を差し込み処理をしたエンティティクラスソースコードを生成するとともに、前記テーブル操作特定情報に基づいて、各テーブル操作について前記各エンティティ項目の型を対応づけたストレージクラスソースコードを生成し、生成後のこれらのデータからビューモデルオブジェクトを生成している。したがって、前記項目特性特定情報および前記テーブル操作特定情報を変更するだけで、これに合致したビューモデルオブジェクトを得ることができる。このビューモデルオブジェクトを用いて画面データを生成することにより、簡易に画面を生成することができる。
【００１４】
２）本発明にかかる画面生成方法は、データベース管理システムとウェブブラウザ端末との間に位置する処理サーバにおける画面を生成する方法であって、前記データベース管理システムにおける各フィールドについての項目特性を項目毎に特定する項目特性特定情報、および前記データベース管理システムで用いられるテーブル操作を特定するテーブル操作特定情報を記憶しておき、前記各項目毎の項目特性特定情報に基づき、対応する前記エンティティ項目名、項目の型、項目の表示名を差し込み処理をしたエンティティクラスソースコードを生成し、
前記項目特性特定情報および前記テーブル操作特定情報に基づいて、各テーブル操作について前記各エンティティ項目の型を対応づけたストレージクラスソースコードを生成し、前記エンティティクラスソースコードおよび前記ストレージクラスソースコードをコンパイルして、エンティティクラスデータおよびストレージクラスデータを生成し、前記生成されたエンティティクラスデータから、各エンティティ項目毎に、項目名、項目の型、項目の表示名を特定したフィールド情報定義データを取り出し、前記生成されたストレージクラスデータから、各テーブル操作毎のエンティティ項目名および項目の型を特定したメソッド情報定義データを取り出し、基本設定データを記憶するビューモデル定義記憶手段から、前記基本設定データを読み出して、前記取り出したフィールド情報定義データおよびメソッド情報定義データに合致したビューモデルオブジェクトを生成し、前記データベース管理システムまたは前記ウェブブラウザ端末から、画面の種類を特定した画面生成要求があると、前記ビューモデルオブジェクトを用いて、要求された種類の画面データを生成する。
【００１５】
このように、前記項目特性特定情報から前記エンティティ項目名、項目の型、項目の表示名を差し込み処理をしたエンティティクラスソースコードを生成するとともに、前記テーブル操作特定情報に基づいて、各テーブル操作について前記各エンティティ項目の型を対応づけたストレージクラスソースコードを生成し、生成後のこれらのデータからビューモデルオブジェクトを生成している。したがって、前記項目特性特定情報および前記テーブル操作特定情報を変更するだけで、これに合致したビューモデルオブジェクトを得ることができる。このビューモデルオブジェクトを用いて画面データを生成することにより、簡易に画面を生成することができる。
【００１６】
３）本発明にかかるクラスデータの生成方法は、データベース管理システムとウェブブラウザ端末との間に位置する処理サーバに用いるプログラムのクラスデータ生成方法であって、前記データベース管理システムにおける各フィールドについての項目特性を項目毎に特定する項目特性特定情報、および前記データベース管理システムで用いられるテーブル操作を特定するテーブル操作特定情報を記憶しておき、前記各項目毎の項目特性特定情報に基づき、対応する前記エンティティ項目名、項目の型、項目の表示名を差し込み処理をしたエンティティクラスソースコードを生成し、前記項目特性特定情報および前記テーブル操作特定情報に基づいて、各テーブル操作について前記各エンティティ項目の型を対応づけたストレージクラスソースコードを生成し、前記エンティティクラスソースコードおよび前記ストレージクラスソースコードをコンパイルして、エンティティクラスデータおよびストレージクラスデータを生成する。
【００１７】
このように、前記項目特性特定情報から前記エンティティ項目名、項目の型、項目の表示名を差し込み処理をしたエンティティクラスソースコードを生成するとともに、前記テーブル操作特定情報に基づいて、各テーブル操作について前記各エンティティ項目の型を対応づけたストレージクラスソースコードを生成することができる。これにより、ビューモデルオブジェクト用のクラスデータを生成することができる。
【００１８】
４）本発明にかかる画面生成装置は、データベース管理システムとウェブブラウザ端末との間に位置する処理サーバにおける画面を生成する装置であって、前記データベース管理システムにおける各フィールドについての項目特性を項目毎に特定する項目特性特定情報、および前記データベース管理システムで用いられるテーブル操作を特定するテーブル操作特定情報を記憶する記憶手段、前記各項目毎の項目特性特定情報に基づき、対応する前記エンティティ項目名、項目の型、項目の表示名を差し込み処理をしたエンティティクラスソースコードを生成するエンティティクラスソースコード生成手段、前記項目特性特定情報および前記テーブル操作特定情報に基づいて、各テーブル操作について前記各エンティティ項目の型を対応づけたストレージクラスソースコードを生成するストレージクラスソースコード生成手段、前記エンティティクラスソースコードおよび前記ストレージクラスソースコードをコンパイルして、エンティティクラスデータおよびストレージクラスデータを生成するクラスデータ生成手段、前記生成されたエンティティクラスデータから、各エンティティ項目毎に、項目名、項目の型、項目の表示名を特定したフィールド情報定義データを取り出すとともに、前記生成されたストレージクラスデータから、各テーブル操作毎のエンティティ項目名および項目の型を特定したメソッド情報定義データを取り出す情報取り出し手段、基本設定データを記憶するビューモデル定義記憶手段から、前記基本設定データを読み出して、前記取り出したフィールド情報定義データおよびメソッド情報定義データに合致したビューモデルオブジェクトを生成するビューモデルオブジェクト生成手段、前記データベース管理システムまたは前記ウェブブラウザ端末から、画面の種類を特定した画面生成要求があると、前記ビューモデルオブジェクトを用いて、要求された種類の画面データを生成する画面データ生成手段を備えている。
【００１９】
５）本発明にかかる画面生成装置は、データベース管理システムとウェブブラウザ端末との間に位置する処理サーバにおける画面を生成する装置であって、前記データベース管理システムにおける各フィールドについての項目特性を項目毎に特定する項目特性特定情報、および前記データベース管理システムで用いられるテーブル操作を特定するテーブル操作特定情報を記憶する記憶手段、前記各項目毎の項目特性特定情報に基づき、対応する前記エンティティ項目名、項目の型、項目の表示名を差し込み処理をしたエンティティクラスソースコードを生成するエンティティクラスソースコード生成手段、前記項目特性特定情報および前記テーブル操作特定情報に基づいて、各テーブル操作について前記各エンティティ項目の型を対応づけたストレージクラスソースコードを生成するストレージクラスソースコード生成手段、前記エンティティクラスソースコードおよび前記ストレージクラスソースコードをコンパイルして、エンティティクラスデータおよびストレージクラスデータを生成するクラスデータ生成手段、前記生成されたエンティティクラスデータから、各エンティティ項目毎に、項目名、項目の型、項目の表示名を特定したフィールド情報定義データを取り出すとともに、前記生成されたストレージクラスデータから、各テーブル操作毎のエンティティ項目名および項目の型を特定したメソッド情報定義データを取り出す情報取り出し手段、基本設定データを記憶するビューモデル定義記憶手段から、前記基本設定データを読み出して、前記取り出したフィールド情報定義データおよびメソッド情報定義データに合致したビューモデルオブジェクトを生成するビューモデルオブジェクト生成手段、前記データベース管理システムまたは前記ウェブブラウザ端末から、画面の種類を特定した画面生成要求があると、前記ビューモデルオブジェクトを用いて、要求された種類の画面データを生成する画面データ生成手段、前記データベース管理システムに対して、所定件数毎に分割して検索結果データを受け取る分割受け取り手段を備え、前記画面データ生成手段は、前記受け取った検索結果データを表示する画面データを生成する。
【００２０】
このように、前記項目特性特定情報から前記エンティティ項目名、項目の型、項目の表示名を差し込み処理をしたエンティティクラスソースコードを生成するとともに、前記テーブル操作特定情報に基づいて、各テーブル操作について前記各エンティティ項目の型を対応づけたストレージクラスソースコードを生成し、生成後のこれらのデータからビューモデルオブジェクトを生成している。したがって、前記項目特性特定情報および前記テーブル操作特定情報を変更するだけで、これに合致したビューモデルオブジェクトを得ることができる。このビューモデルオブジェクトを用いて画面データを生成することにより、簡易に画面を生成することができる。また、前記データベース管理システムに対して、所定件数毎に分割して検索結果データを受け取る分割受け取り手段を備え、前記画面データ生成手段は、前記所定件数毎に分割して検索結果データを表示する画面データを生成する。したがって、検索結果の件数が多い場合でも、これを分割して受け取ることができる。
【００２１】
６）本発明にかかるクラスデータの生成装置は、データベース管理システムとウェブブラウザ端末との間に位置する処理サーバに用いるプログラムのクラスデータ生成装置であって、前記データベース管理システムにおける各フィールドについての項目特性を項目毎に特定する項目特性特定情報、および前記データベース管理システムで用いられるテーブル操作を特定するテーブル操作特定情報を記憶する記憶手段、前記各項目毎の項目特性特定情報に基づき、対応する前記エンティティ項目名、項目の型、項目の表示名を差し込み処理をしたエンティティクラスソースコードを生成するエンティティクラスソースコード生成手段、前記項目特性特定情報および前記テーブル操作特定情報に基づいて、各テーブル操作について前記各エンティティ項目の型を対応づけたストレージクラスソースコードを生成するストレージクラスソースコード生成手段、前記エンティティクラスソースコードおよび前記ストレージクラスソースコードをコンパイルして、エンティティクラスデータおよびストレージクラスデータを生成するクラスデータ生成手段を備えている。
【００２２】
このように、前記項目特性特定情報から前記エンティティ項目名、項目の型、項目の表示名を差し込み処理をしたエンティティクラスソースコードを生成するとともに、前記テーブル操作特定情報に基づいて、各テーブル操作について前記各エンティティ項目の型を対応づけたストレージクラスソースコードを生成することができる。これにより、ビューモデルオブジェクト用のクラスデータを生成することができる。
【００２３】
７）本発明にかかる画面自動生成装置は、データベース管理システムとウェブブラウザ端末との間に位置する画面自動生成装置であって、前記ウェブブラウザ端末からの検索要請に基づいて前記データベース管理システムに、検索要請を与える手段、前記データベース管理システムから検索結果データを受け取ると、この検索結果データに基づいて検索結果を表示する画面データを生成する画面データ生成手段、前記データベース管理システムに対して、所定件数毎に分割して検索結果データを受け取る分割受け取り手段を備え、前記画面データ生成手段は、前記受け取った検索結果データを表示する画面データを生成する。
【００２４】
８）本発明にかかるプログラムは、データベース管理システムとウェブブラウザ端末との間に位置する処理サーバにおける画面を生成するプログラムであって、前記プログラムは、以下のＡ）〜Ｈ）の処理を前記処理サーバに実行させること、Ａ）前記データベース管理システムにおける各フィールドについての項目特性を項目毎に特定する項目特性特定情報、および前記データベース管理システムで用いられるテーブル操作を特定するテーブル操作特定情報を記憶しておき、Ｂ）前記各項目毎の項目特性特定情報に基づき、対応する前記エンティティ項目名、項目の型、項目の表示名を差し込み処理をしたエンティティクラスソースコードを生成し、Ｃ）前記項目特性特定情報および前記テーブル操作特定情報に基づいて、各テーブル操作について前記各エンティティ項目の型を対応づけたストレージクラスソースコードを生成し、Ｄ）前記エンティティクラスソースコードおよび前記ストレージクラスソースコードをコンパイルして、エンティティクラスデータおよびストレージクラスデータを生成し、Ｅ）前記生成されたエンティティクラスデータから、各エンティティ項目毎に、項目名、項目の型、項目の表示名を特定したフィールド情報定義データを取り出し、Ｆ）前記生成されたストレージクラスデータから、各テーブル操作毎のエンティティ項目名および項目の型を特定したメソッド情報定義データを取り出し、Ｇ）基本設定データを記憶するビューモデル定義記憶手段から、前記基本設定データを読み出して、前記取り出したフィールド情報定義データおよびメソッド情報定義データに合致したビューモデルオブジェクトを生成し、Ｈ）前記データベース管理システムまたは前記ウェブブラウザ端末から、画面の種類を特定した画面生成要求があると、前記ビューモデルオブジェクトを用いて、要求された種類の画面データを生成する。
【００２５】
このように、前記項目特性特定情報から前記エンティティ項目名、項目の型、項目の表示名を差し込み処理をしたエンティティクラスソースコードを生成するとともに、前記テーブル操作特定情報に基づいて、各テーブル操作について前記各エンティティ項目の型を対応づけたストレージクラスソースコードを生成し、生成後のこれらのデータからビューモデルオブジェクトを生成している。したがって、前記項目特性特定情報および前記テーブル操作特定情報を変更するだけで、これに合致したビューモデルオブジェクトを得ることができる。このビューモデルオブジェクトを用いて画面データを生成することにより、簡易に画面を生成することができる。
【００２６】
９）本発明にかかるプログラムは、データベース管理システムとウェブブラウザ端末との間に位置する処理サーバに用いるクラスデータ生成プログラムであって、前記プログラムは、以下のＡ）〜Ｄ）の処理を前記処理サーバに実行させる、Ａ）前記データベース管理システムにおける各フィールドについての項目特性を項目毎に特定する項目特性特定情報、および前記データベース管理システムで用いられるテーブル操作を特定するテーブル操作特定情報を記憶しておき、Ｂ）前記各項目毎の項目特性特定情報に基づき、対応する前記エンティティ項目名、項目の型、項目の表示名を差し込み処理をしたエンティティクラスソースコードを生成し、Ｃ）前記項目特性特定情報および前記テーブル操作特定情報に基づいて、各テーブル操作について前記各エンティティ項目の型を対応づけたストレージクラスソースコードを生成し、Ｄ）前記エンティティクラスソースコードおよび前記ストレージクラスソースコードをコンパイルして、エンティティクラスデータおよびストレージクラスデータを生成する。
【００２７】
このように、前記項目特性特定情報から前記エンティティ項目名、項目の型、項目の表示名を差し込み処理をしたエンティティクラスソースコードを生成するとともに、前記テーブル操作特定情報に基づいて、各テーブル操作について前記各エンティティ項目の型を対応づけたストレージクラスソースコードを生成することができる。これにより、ビューモデルオブジェクト用のクラスデータを生成することができる。
【００２８】
１０）本発明にかかる画面生成方法は、データベース管理システムとウェブブラウザ端末との間に位置する処理サーバにおける画面を生成する方法であって、前記データベース管理システムにおける各フィールドについての項目特性を項目毎に特定する項目特性特定情報、および前記データベース管理システムで用いられるテーブル操作を特定するテーブル操作特定情報を記憶しておき、前記各項目毎の項目特性特定情報に基づき、対応する前記エンティティ項目名、項目の型、項目の表示名を差し込み処理をしたエンティティクラスソースコードを生成し、前記メソッド特定情報を読み出して、前記メソッド特定情報を差し込み処理をしたストレージクラスソースコードを生成し、前記エンティティクラスソースコードおよび前記ストレージクラスソースコードをコンパイルして、エンティティクラスデータおよびストレージクラスデータを生成し、前記生成されたエンティティクラスデータから、各エンティティ項目毎に、項目名、項目の型、項目の表示名を特定したフィールド情報定義データを取り出し、前記生成されたストレージクラスデータから、各手続き毎に手続きを行うエンティティ項目名を特定したメソッド情報定義データを取り出し、基本設定データを記憶するビューモデル定義記憶手段から、前記基本設定データを読み出して、前記取り出したフィールド情報定義データおよびメソッド情報定義データに合致したビューモデルオブジェクトを生成し、前記データベース管理システムまたは前記ウェブブラウザ端末から、画面の種類を特定した画面生成要求があると、前記ビューモデルオブジェクトを用いて、要求された種類の画面データを生成する。
【００２９】
このように、前記項目特性特定情報から前記エンティティ項目名、項目の型、項目の表示名を差し込み処理をしたエンティティクラスソースコードを生成するとともに、前記テーブル操作特定情報に基づいて、各テーブル操作について前記各エンティティ項目の型を対応づけたストレージクラスソースコードを生成し、生成後のこれらのデータからビューモデルオブジェクトを生成している。したがって、前記項目特性特定情報および前記テーブル操作特定情報を変更するだけで、これに合致したビューモデルオブジェクトを得ることができる。このビューモデルオブジェクトを用いて画面データを生成することにより、簡易に画面を生成することができる。
【００３０】
なお、本明細書において「項目特性特定情報」とは、項目の特性を特定する情報であり、項目の特性を間接的に特定するインデックスデータはもちろん、項目の特性を直接的に特定する場合も含む概念である。「テーブル操作特定情報」はテーブル操作の特性を特定する情報であり、間接的に特定するインデックスデータはもちろん、直接的に特定する場合も含む概念である。
【発明を実施するための最良の形態】
【００３１】
１．機能ブロック図
図１に、本件発明にかかる画面生成装置１の全体構成を示す。画面生成装置１は、データベース管理システム２とウェブブラウザ端末３との間に位置する処理サーバにて、画面を生成する装置であって、記憶手段４、エンティティクラスソースコード生成手段５、ストレージクラスソースコード生成手段７、クラスデータ生成手段９、情報取り出し手段１１、ビューモデルオブジェクト生成手段１３、および画面データ生成手段１５を備えている。
【００３２】
記憶手段４は、前記データベース管理システムにおける各フィールドについての項目特性を項目毎に特定する項目特性特定情報、および前記データベース管理システムで用いられるテーブル操作を特定するテーブル操作特定情報を記憶する。エンティティクラスソースコード生成手段５は、前記各項目毎の項目特性特定情報に基づき、対応する前記エンティティ項目名、項目の型、項目の表示名を差し込み処理をしたエンティティクラスソースコードを生成する。ストレージクラスソースコード生成手段７は、前記項目特性特定情報および前記テーブル操作特定情報に基づいて、各テーブル操作について前記各エンティティ項目の型を対応づけたストレージクラスソースコードを生成する。クラスデータ生成手段９は、前記エンティティクラスソースコードおよび前記ストレージクラスソースコードをコンパイルして、エンティティクラスデータおよびストレージクラスデータを生成する。情報取り出し手段１１は、前記生成されたエンティティクラスデータから、各エンティティ項目毎に、項目名、項目の型、項目の表示名を特定したフィールド情報定義データを取り出すとともに、前記生成されたストレージクラスデータから、各テーブル操作毎のエンティティ項目名および項目の型を特定したメソッド情報定義データを取り出す。ビューモデルオブジェクト生成手段１３は、基本設定データを記憶したビューモデル定義記憶手段１４からその基本設定データを読み出して、前記取り出したフィールド情報定義データおよびメソッド情報定義データに合致したビューモデルオブジェクトを生成する。画面データ生成手段１５は、画面生成のための基礎データを記憶しており、データベース管理システム２または前記ウェブブラウザ端末３から、画面の種類を特定した画面生成要求があると、前記ビューモデルオブジェクトを用いて、要求された種類の画面データを生成する。
【００３３】
このように、前記項目特性特定情報から前記エンティティ項目名、項目の型、項目の表示名を差し込み処理をしたエンティティクラスソースコードを生成するとともに、前記テーブル操作特定情報に基づいて、各テーブル操作について前記各エンティティ項目の型を対応づけたストレージクラスソースコードを生成し、生成後のこれらのデータからビューモデルオブジェクトを生成している。したがって、前記項目特性特定情報および前記テーブル操作特定情報を変更するだけで、これに合致したビューモデルオブジェクトを得ることができる。このビューモデルオブジェクトをもちいて画面データを生成することにより、簡易に画面を生成することができる。
【００３４】
以下の実施形態では、前記項目特性特定情報および前記テーブル操作特定情報からのストレージクラスおよびエンティティクラスの生成は、前処理として実行され、サーブレット起動時に、前処理時に生成されたストレージクラスとエンティティクラスを用いて、動的にビューモデルオブジェクトが生成される。また、ウェブブラウザ端末またはデータベース管理システムから要請があると、生成したビューモデルオブジェクトを用いて、画面を動的に生成する。
【００３５】
２．ハードウェア構成
図１に示す画面生成装置１のハードウェア構成について、図２を用いて説明する。図２は、ＣＰＵを用いて構成したハードウェア構成の一例である。
【００３６】
画面生成装置１は、ＣＰＵ２３、メモリ２７、ハードディスク２６、モニタ３０、ＣＤＤ（ＣＤ−ＲＯＭドライブ）２５、入力デバイス２８、通信ボード３１およびバスライン２９を備えている。ＣＰＵ２３は、ハードディスク２６に記憶された各プログラムにしたがいバスライン２９を介して、各部を制御する。
【００３７】
ハードディスク２６は、オペレーティングシステムプログラム２６ｏ（以下ＯＳと略す）、クラスデータ記憶部２６ｃ、定義データ記憶部２６ｄ、スケルトン記憶部２６ｓ、JVM（Java Virtual Machine)２６j、クラス生成クラス（プログラム）２６ｐを有する。
【００３８】
クラスデータ記憶部２６ｃは、後述するクラスデータおよび各種の設定ファイルが記憶されている。
【００３９】
定義データ記憶部２６ｄには、永続化定義ファイルが記憶されている。永続化定義ファイルは、図３に示すように、XML形式のタグで、エンティティ名、パッケージ名、項目名、項目の型、項目の表示名、ストレージに用意する手続き、ストレージに用意する手続きの引数、ストレージに用意する手続きの引数の型などテーブルに依存した情報とストレージクラス及びエンティティクラスを生成する為に必要な情報（項目特性特定情報およびテーブル操作特定情報）が記載されている。以下、具体的に説明する。
【００４０】
行１０７には、エンティティに関する定義部である。行１０１の<persistence-module name="Person">は、エンティティ名が「Person」であることを示している。行１０２の<package>com.hisas.ias.person</package>は、パッケージ名が「com.hisas.ias.person」であることを示している。行１０３の<entity name="Person" primary-keys="name">は、エンティティ識別子であるエンティティクラス名が「Person」で、テーブルの主キー項目名が「name」であることを示している。行１０４の<entity-field name="name" type="String" sql-type="VARCHAR">は、項目名が「name」で、項目のjavaの型が「String」で、データベース上の型が「VARCHAR」であることを示している。行１０５の<display-name>氏名</display-name>は、項目の表示名が「氏名」であることを示している。行１０６ａで１項目分の定義を構成している。同様に、行１０６ｂは、項目名が「年齢」、項目のjavaの型「int」、データベース上の型「NUMERIC」であることを、行１０６ｃは、項目名が「birth」、項目のjavaの型「java.sql.Date」、データベース上の型「DATE」であることを示している。
【００４１】
行１１１はストレージに関する定義部である。行１０８の<storage name="PersonStorage" basics="create lookup update remove" >は、ストレージクラス名が「PersonStorage」で、基本手続きとして「登録」「主キー検索」「更新」「削除」が存在することが記述されている。行１０９、行１１０は、拡張手続きの記述であり、行１０９の<method name="lookupAll" sql="lookupAll()" type="lookupAny"><description>社員エンティティを全件検索する。</description></method>は、拡張手続きとして「lookupAll」という手続きが存在し、SQL文との関連名が「lookupAll()」であり、手続きの種別が「lookupAny（複数件検索）」であることを示す。行１１０の<method name="lookupByName" sql="lookup(name)" type="lookupAny">は、拡張手続きとして「lookupByName」という手続きが存在し、SQL文との関連名が「lookup (name)」であり、手続きの種別が「lookupAny（複数件検索）」であり、引数名は「name」であり、引数のjavaでの型は「String」であり、データベース上の型が「VARCHAR」であることを示している。
【００４２】
スケルトン記憶部２６ｓには、エンティティスケルトンおよびストレージスケルトンが記憶されている。
【００４３】
エンティティスケルトンは、図４〜図８に示すように、一部を差し込み形式でデータの挿入を行うことができる半完成ソースコードである。後述するようにこのような差し込み処理を行うことにより、データベースのテーブル構造に依存しないエンティティクラスのソースコードを完成することができる。また、差し込みの指定には、後述するように、分岐のタグ（<select>や<option>）や繰り返しのタグ（<foreach>）などの制御命令で記述されている。これにより、「項目の方が文字列型であった場合の処理」や「項目名分繰り返す」などの処理を記述することができる。
【００４４】
ストレージスケルトンは、図９〜図１１に示すように、差し込み形式でデータの挿入を行うことができる半完成ソースコードである。後述する差し込み処理を行うことにより、データベースのテーブル構造に依存しないストレージクラスのソースコードを完成することができる。差し込みの指定手法については、エンティティスケルトンと同様である。
【００４５】
オペレーティングシステムプログラム（ＯＳ）２６ｏとして、本実施形態においては、LINUX（商標）を採用したが、これに限定されるものではない。
【００４６】
JVM２６ｊは、Javaバイトコードをそのプラットフォームのネイティブコードに変換して実行するプログラムである。
【００４７】
クラス生成クラス２６ｐは、スケルトン記憶部２６sに記憶されたエンティティスケルトン、ストレージスケルトン、永続化定義ファイルによって、エンティティクラスおよびストレージクラスを生成する。具体的処理については後述する。
【００４８】
なお、上記各プログラムは、ＣＤＤ２５を介して、プログラムが記憶されたＣＤＲＯＭ２５ａから読み出されてハードディスク２６にインストールされたものである。なお、ＣＤ−ＲＯＭ以外に、フレキシブルディスク（ＦＤ）、ＩＣカード等のプログラムをコンピュータ可読の記録媒体から、ハードディスクにインストールさせるようにしてもよい。さらに、通信回線を用いてダウンロードするようにしてもよい。
【００４９】
本実施形態においては、プログラムをＣＤ−ＲＯＭからハードディスク２６にインストールさせることにより、ＣＤ−ＲＯＭに記憶させたプログラムを間接的にコンピュータに実行させるようにしている。しかし、これに限定されることなく、ＣＤ−ＲＯＭに記憶させたプログラムをＣＤＤ２５から直接的に実行するようにしてもよい。なお、コンピュータによって、実行可能なプログラムとしては、そのままインストールするだけで直接実行可能なものはもちろん、一旦他の形態等に変換が必要なもの（例えば、データ圧縮されているものを、解凍する等）、さらには、他のモジュール部分と組合して実行可能なものも含む。
【００５０】
３．前処理
クラス生成処理部２ａによる、エンティティクラスとストレージクラスの生成処理について説明する。
【００５１】
（３．１）エンティティクラスの生成
本実施形態においては、エンティティスケルトンと呼ばれるXMLソースコードを用意し、図２に示すクラス生成クラス２６ｐが、かかるソースコードに記載された条件分岐に従って、前記永続化定義データにおけるデータベース管理システムのテーブル構造に依存する部分を、差し込み処理を行うことにより、エンティティクラスソースコードを生成した。
【００５２】
クラス生成クラス２６ｐは、XML解析を行うXML解析クラス、生成処理を行うソースコード生成クラス、自動実行処理を行う自動実行クラスを有する。本実施形態においては、XML解析クラスとして「XERCES」というオープンソースのXMLエンジンを、自動実行部として「ANT」という自動実行エンジンを採用したが、これに限定されるものではない。
【００５３】
クラス生成クラス２６ｐにおける処理について図１２を用いて説明する。ソースコード生成クラス１５３は、ANT１５１から生成実行命令を受けると(r1)、XML解析クラス１５５にエンティティスケルトンのDOM（Document Object Model ）の取得命令を行う(r3)。XML解析クラス１５５は、エンティティスケルトン１５７からDOMを取得する(r4)。これにより、図５〜図８に示すエンティティスケルトンについて、そのDOMが取得される。ソースコード生成クラス１５３は、XML解析クラス１５５にストレージスケルトンについて、そのDOMの取得命令を行う(r5)。XML解析クラス１５５は、ストレージスケルトン１５９のDOMを取得する(r6)。これにより、図９〜図１１に示すストレージスケルトンについて、そのDOMが取得される。
【００５４】
ソースコード生成クラス１５３は、XML解析クラス１５５に対して、永続化定義ファイルのDOM取得命令を行う(r7)。XML解析クラス１５５は、永続化定義ファイル１６１からDOMを取得する(r8)。この例では、エンティティクラス名、パッケージ名、項目名、項目の型、項目の表示名などが解析結果として取得される。ソースコード生成クラス１５３は、エンティティスケルトンのDOMツリーのトラバース／ソースコードの生成をおこなう（r9）。具体的には、すでに得られたエンティティスケルトンのDOMに、永続化定義ファイル１６１から得られた解析結果を適用し、分岐の条件や繰り返し条件に従い、解析結果から必要な情報を差し込んで、ソースコードを完成させる。図５〜図８のエンティティスケルトンに対する差し込み処理について、図１３を用いて説明する。
【００５５】
ソースコード生成クラス１５３は、エンティティスケルトンのDOMについて、ルートノードを現在位置に設定し（図１３ステップＳ５）、以下の処理を行う。子ノードが存在するか判断し（ステップＳ１４）、存在する場合には、現在位置の子ノードを取得し（ステップＳ１５）、ノード判定をおこなう（ステップＳ１７）。現在位置の子ノードが「foreach」である場合には、エレメント属性を判断する（ステップＳ１９）。エレメント属性に応じて処理がなされ（ステップＳ２１〜ステップＳ３１）、次のノードが存在するかの判断を行う（ステップＳ３３）。存在する場合には、現在位置の次のノードを取得し（ステップＳ３５）、ステップＳ１４以下の処理を繰り返す。存在しない場合には、ステップＳ３５の処理を行うことなくステップＳ１４以下の処理を繰り返す。
【００５６】
一方、ステップＳ１７にてノードが「foreach」でない場合には、ノードが「select」であれば、element属性の値を判断し（図１４ステップＳ３７）、属性値が「entity」であればエンティティ定義を参照ターゲットに設定し（ステップＳ３９）、「storage」であればストレージ定義を参照ターゲットに設定し（ステップＳ４１）、省略されていれば、既に設定されているを参照ターゲットを設定する（ステップＳ４３）。現在位置の子ノードのoptionタグのcase属性を判断し（ステップＳ４５）、case属性がselectノードのattr属性であれば、現在位置を合致したノードに設定し（ステップＳ４７）、図１３ステップＳ１４の判断を行う。また、ステップＳ４５にてcase属性がselectノードのattr属性でなければステップＳ４７をすることなく、ステップＳ１４の判断を行う。
【００５７】
また、図１３ステップＳ１７にて、ノードが「select」でなければ、各ノードに応じて、処理を行う（ステップＳ５１〜ステップＳ６５）。
【００５８】
このように、繰り返し処理および条件分岐処理を解析したノードの階層構造に応じて行うことにより、永続化定義ファイル１６１に設定されているデータベースシステムにテーブル構造に合致したエンティティクラスソースコードが生成される。
【００５９】
具体的に説明すると以下のようである。例えば、図４に示すフィールド宣言部では、パッケージ名を挿入する部分（行２２０１の領域２２０１a)、エンティティクラス名を挿入する部分（行２２０２）が、テーブル構造に依存する部分である。なお、承継している親クラス、実装しているインタフェースがある場合には、行２２０３ａ〜２２０３ｂ，２２０４にて必要な処理がなされる。図３に示す永続化定義ファイルでは、かかる特定がないので無視される。
【００６０】
図５に示すコンストラクタ手続き部では、以下の処理がなされる。行２３０１は抽出したエンティティクラス名が挿入されることを記述している。行２３０２ａおよび行２３０２ｂによって、その間の行が、エンティティ定義部の項目分繰返し処理される。行２３０３は読み出したエンティティの項目名を挿入する行である。
【００６１】
行２３０４には項目の表示名が挿入される行、行２３０５ａ〜２３０５ｂの行では項目の型によって、該当する場合をおこなうための記述である。たとえば、行２３０６は項目の型が「boolean」であった場合、行２３０７は項目の型がどれでもなかった場合の処理である。行２３０８は項目名が挿入される行、行２３０９はエンティティクラス名が挿入される行、行２３１０ａ〜２３１０ｂは項目分繰返すことにより、引数の型と引数名が列挙される行、行２３１１ａ，２３１１ｂは、その間の行をエンティティ定義部の項目分繰返す記述である。行２３１２ａ〜２３１２ｂは項目の型を判定する行である。たとえば、行２３１３は項目の型が「boolean」であった場合の処理を、行２３１４は項目の型がどれでもなかった場合の処理をする行である。
【００６２】
図６に示す主キーの属性情報取得手続き部では、以下の処理がなされる。行２４０１ａと２４０１ｂは、その間の行がエンティティの項目分、繰り返し処理する記述である。行２４０２ａはエンティティの項目が主キーか否かを選択する行、行２４０３は主キーである場合に行２４０３ｂまでの処理を実行することが記述されている。行２４０４はエンティティの項目の型が挿入され、行２４０５はエンティティの項目名の先頭文字を大文字化し、行２４０６はエンティティの項目名を挿入することが記述されている。行２４０７ａ〜２４０７ｂは、エンティティの項目の型ごとの処理がおこなわれる。たとえば、行２４０７ｃは項目の型が「boolean」であった場合の処理をする行である。
【００６３】
図７に示す主キー以外の属性情報取得手続き部では以下の処理がなされる。行２５０１ａと２５０１ｂは、その間の行がエンティティの項目分繰り返し処理をする記述である。行２５０２ａはエンティティの項目が主キーかどうかを選択する行、行２５０３ａはエンティティの項目が主キーでない場合に行２５０３ｂまでの処理を実行する記述である。行２５０４はエンティティの項目の型が挿入され、行２５０５ではエンティティの項目名の先頭文字が大文字化され、行２５０６はエンティティの項目名の先頭文字が大文字化される。行２５０７はエンティティの項目の型が挿入され、行２５０８はエンティティの項目名の先頭文字が大文字化され、行２５０９はエンティティの項目名が挿入され、行２５１０ａ〜２５１０ｂはエンティティの項目の型による選択をする行で、行２５１１はエンティティの項目の型がbooleanの場合の処理で、行２５１２は、エンティティの項目の型がintの場合の処理で、行２５１３はエンティティの項目の型が「java.sql.Date」の場合の処理で、行２５１４はエンティティの項目の型がどれでもなかった場合の処理である。
【００６４】
図８に示す属性情報設定手続き部では以下の処理が行われる。行２６０１ａと２６０１ｂにより、その間の行がストレージ定義部の基本手続き分、繰り返し処理される。行２６０２は以下の２６０３の処理選択である。この場合であれば、ストレージ定義の「basics」属性の値にupdateが存在していた場合にソースコードに記載される内容が、行２６０４以下に記載されている。行２６０４はエンティティの項目分の繰り返し処理が規定されている。行２６０５は、エンティティの項目が主キーかどうかの選択であり、行２６０６はエンティティの項目が主キー以外の場合のみ処理である。この場合、図３に示す永続化定義ファイルでは、主キー以外の項目としては「age」「birth」があり、それぞれ、エンティティの項目の型は「int」「java.sql.Date」であるので、行部分２６０７a、２６０７ｂ、２６０７ｃ、２６０７ｄにより、それぞれ、挿入される。その際、行部分２６０７ｂでは、エンティティの項目名の先頭文字の大文字化がおこなわれる。行２６１１には、エンティティの項目名が挿入される。
【００６５】
行２６１２は、エンティティの項目の型による選択処理であり、例えば、行２６１３はエンティティの項目の型がbooleanの場合の処理である。行２６１５は、エンティティの項目の型による選択処理であり、例えば、行２６１４は、エンティティの項目の型がbooleanの場合の処理である。
【００６６】
生成されたソースコードは出力される（図１２r10）。生成されたソースコードを図１５〜図１７に示す。
【００６７】
同様にして、ソースコード生成クラス１５３は、ストレージスケルトンのDOMツリーのトラバース／ソースコードの生成をおこなう（図１３r11）。すでに得られたストレージスケルトンのDOMに、永続化定義ファイル１６１から得られた解析結果を適用し、分岐の条件や繰り返し条件に従い、解析結果から必要な情報を差し込んで、ソースコードを完成させる。生成されたソースコードは同様に出力される（図１２r13）
（３．２）ストレージクラスの生成
同様にして、ストレージスケルトンについて、DOMツリーのトラバース／ソースコードの生成をおこなう（r9）。具体的には、すでに得られたストレージスケルトンのDOMに、永続化定義ファイル１６１から得られた解析結果を適用し、分岐の条件や繰り返し条件に従い、解析結果から必要な情報を差し込んで、ソースコードを完成させる。かかる処理については、エンティティスケルトンに対する差し込み処理と同様である。
【００６８】
図９〜図１１のストレージスケルトンに対する差し込み処理について簡単に説明する。図９に示すフィールド宣言部では、パッケージ名を挿入する部分（行１２０１の領域１２０１a)、ストレージクラス名を挿入する部分（行１２０２）、エンティティクラス名を挿入する部分（行１２０３の領域１２０３ａ、行１２０４の領域１２０４ａ)が、テーブル構造に依存する部分である。
【００６９】
図１０、図１０ａに示すコンストラクタ手続き部では、以下の処理が行われる。行１３０１は抽出したストレージクラス名が挿入され、行１３０２は、ストレージ定義部の基本手続き分だけ、行１３０４の処理を繰り返す記述である。基本手続きとしては、定義ファイルでは「create」「lookup」「update」「remove」の４つが規定されている。
【００７０】
行１３０４は、エンティティ定義部の項目が「create」の場合である。行１３０４では、行１３０３の処理が、定義ファイルの項目「name」「age」「birth」について繰り返し処理がなされる。なお、図１０では省略しているが、他の「lookup」「update」「remove」についても、同様に規定されている。
【００７１】
行１３０５は、ストレージ定義部に拡張手続きが存在する場合であり、上記定義ファイルでは、「lookupAll」「lookupByName」が該当する。行１３０６は、手続の引数分処理を繰り返すという記述であり、上記定義ファイルでは、「lookupAll」の場合は無し、「lookupByName」の場合は「name」である。行１３０７は手続き名であり、上記定義ファイルでは、「lookupAll」、「lookupByName」が該当する。
【００７２】
生成されたソースコードは出力される（図１２r13）。生成されたソースコードを図１５〜図１７に示す。
【００７３】
このようにして自動生成された完成されたソースコードは、コンパイルされて、動作時にはスケルトンに記載されたライブラリ部品であるコアストレージやコアエンティティクラス（予め準備されている）を利用することにより、所定の処理が実行可能となる。たとえば、コアストレージによって、自動生成されたクラスのメソッドに関連付けられたSQL文が取り出され、自動生成されたストレージクラスから渡された引数を利用して当該のテーブルに対する手続きが実行される。
【００７４】
４．サーブレット起動時の処理
つぎに、前処理が終了後、サーブレット起動時における動作について説明する。サーブレット起動時には前記前処理で生成したストレージクラスおよびエンティティクラスを用いて、ビューモデルオブジェクトが生成される。
【００７５】
かかるビューモデルオブジェクト生成処理は、図２１〜図２３に示すサーブレット５０１、セッション管理クラス５０３、ビューモデルマネージャ５０５、ビューモデルリソースマネージャ５０７、ビューモデル設定ファイル５０９、初期値設定方法オブジェクト５１１、表示形式変換方法オブジェクト５１３、ビューモデルオブジェクト５１５、フィールド情報オブジェクト５１７、エンティティマネージャ５１９、エンティティクラス５２１、ストレージクラス５２３、メソッド情報オブジェクト５２５、初期値生成クラス５２７で実現される。
【００７６】
なお、セッション管理クラス５０３はJ2EEサーバ２６j（図２参照）から提供される。他のクラス、および各種の設定ファイルは、クラスデータ記憶部２６ｃに記憶されている。
【００７７】
以下、図２１〜図２３のシーケンス図を用いて説明する。ウェブサーバから初期化命令が与えられると（図２１p1）、サーブレット５０１はビューモデルマネージャ５０５にビューモデル生成命令を与える（p2）。ビューモデルマネージャ５０５は、ビューモデルリソースマネージャ５０７にビューモデル生成命令をあたえる（p3)。ビューモデルリソースマネージャ５０７は、ビューモデル設定ファイル５０９からビューモデル設定データを読み出す（図２２p4)。ビューモデルリソースマネージャ５０７は、初期値設定方法オブジェクト５１１、表示形式変換方法オブジェクト５１３、ビューモデルオブジェクト５１５、フィールド情報オブジェクト５１７を生成する（p5〜p8）。ビューモデルリソースマネージャ５０７は、エンティティマネージャ５１９にテーブルの項目名取得命令、画面の表示名取得命令、項目の型取得命令を与える（p9〜p11）。エンティティマネージャ５１９は前処理にて生成したエンティティクラス５２１から、テーブルの項目名、画面の表示名、項目の型を取得する（p12〜p14）。
【００７８】
ビューモデルリソースマネージャ５０７は、エンティティクラス５２１から抽出したフィールド情報に、ビューモデル設定ファイル５０９から読み出したデータを加えて、フィールド情報オブジェクト５１７に、１フィールドごとに、テーブルの項目名、画面の表示名、項目の型、初期値取得方法、表示形式変換方法、画面入力用コントロールの種類、表示順序、表示可否、初期値リストの値を設定する（図２３p15)。
【００７９】
図２２に示すエンティティクラス５２１からのフィールド情報の取得処理については、図２４を用いて説明する。
【００８０】
ＣＰＵ２３は、エンティティクラスをロードし（ステップＳ３１）、エンティティクラスをインスタンス化し（ステップＳ３３）。インスタンス化されたエンティティオブジェクトから属性名一覧取得操作(メソッド)のクラスを取り出す（ステップＳ３５）。属性名一覧取得操作を実行し（ステップＳ３７）、全フィールド情報を保持するマップを生成する（ステップＳ３９）。
【００８１】
つぎに、フィールド情報を生成し属性名を設定する（ステップＳ４３）。当該属性名が、既に設定ファイルに設定されているか否か判断し（ステップＳ４５）、設定されていない場合は、インスタンス化されたエンティティオブジェクトから属性の型取得操作(メソッド)のクラスを取り出す（ステップＳ４７）。属性の型取得操作クラスを実行し属性の型をフィールド情報に設定する（ステップＳ４９）。インスタンス化されたエンティティオブジェクトから属性の表示名取得操作(メソッド)のクラスを取り出す（ステップＳ５１）。属性の表示名取得操作クラスを実行し、属性の表示名をフィールド情報に設定する（ステップＳ５３）。フィールド情報の入力用コントロール、表示用コントロール、表示形式変換方法、表示順序、常時可否、初期値取得方法、初期値、初期値リストに、デフォルト値を設定する（ステップＳ５５）。全フィールド情報マップに属性名をキーとしフィールド情報を値として保持する（ステップＳ５７）。
【００８２】
一方、ステップＳ４５にて、当該属性名が既に設定ファイルに設定されている場合は、設定ファイルから属性の型を取得しフィールド情報に設定する（ステップＳ６１）。設定ファイルから属性の表示名を取得しフィールド情報に設定する（ステップＳ６３）。フィールド情報の入力用コントロール、表示用コントロール、表示形式変換方法、表示順序、常時可否、初期値取得方法、初期値、初期値リストに設定ファイルから読み込んだ値を設定する（ステップＳ６５）。
【００８３】
属性名分、ステップＳ４３〜ステップＳ５７の処理を繰り返す（ステップＳ４１、ステップＳ５９）。
【００８４】
なお、ステップＳ３５，Ｓ３７，Ｓ４７〜Ｓ５３の処理については、リフレクションAPIを用いればよい。
【００８５】
かかる取得処理が終了すると、ビューモデルリソースマネージャ５０７は、フィールド情報をビューモデルオブジェクト５１５に追加する（図２３p16)。
【００８６】
つぎに、ビューモデルリソースマネージャ５０７は、メソッド情報の取得命令をエンティティマネージャ５１９に与える（図２３p17）。エンティティマネージャ５１９は、前処理にて生成したストレージクラス５２３からメソッド情報を取得する（p18)。
【００８７】
図２５を用いてストレージクラスからのメソッド情報の取得について説明する。ＣＰＵ２３は、ストレージクラスをロードし（ステップＳ１０１）、ストレージクラスのインスタンス化を行う（ステップＳ１０３）。ＣＰＵ２３は、インスタンス化されたストレージオブジェクトからストレージクラスに存在する全メソッドのクラスを取り出す（ステップＳ１０５）。つぎにＣＰＵ２３は、全メソッドを実行する（ステップＳ１０７）。ＣＰＵ２３は、全メソッド情報を保持するマップを生成する（ステップＳ１０９）。ＣＰＵ２３は、メソッドの数だけ、以下のステップＳ１１３〜ステップＳ１２１を繰り返す（ステップＳ１１１，ステップＳ１２３）。
【００８８】
まず、あるメソッド情報を保持するマップを生成する（ステップＳ１１３）。つぎに、ＣＰＵ２３はインスタンス化されたストレージオブジェクトから当該操作名一覧操作（メソッド）のクラスを取り出す（ステップＳ１１５）。ＣＰＵ２３はメソッドのクラスから当該メソッドの引数の名前群を取得し当該メソッド情報マップに”名前群”をキーとし、名前群リストを値として保持する（ステップＳ１１７）。ＣＰＵ２３はメソッドのクラスから当該操作の引数の型群を取得し当該メソッド情報マップに” 型群”をキーとし型群リストを値として保持する（ステップＳ１１９）。ＣＰＵ２３は全メソッド情報マップに操作名をキーとし当該メソッド情報マップを値として保持する（ステップＳ１１９）。
【００８９】
なお、ステップＳ１０５，Ｓ１０７，Ｓ１１５，Ｓ１１７，Ｓ１２１の処理については、リフレクションAPIを用いればよい。
【００９０】
つぎに、ビューモデルリソースマネージャ５０７は、取得したメソッド情報によってメソッド情報オブジェクト５２５を生成し（図２３p19)、取得したメソッド情報をビューモデルオブジェクト５１５に設定する（p20)。
【００９１】
つぎに、ビューモデルマネージャ５０５は、ビューモデルリソースマネージャ５０７にビューモデルの取得命令を与える（図２１p21）。
【００９２】
ビューモデルマネージャ５０５は、ビューモデルオブジェクト５１５にフィールド情報の取得命令を与え（p22）、ビューモデルオブジェクト５１５はフィールド情報オブジェクト５１７から初期値取得方法を取得する（p23）。ビューモデルオブジェクト５１５は、取得した初期値取得方法を参照して、初期値設定方法オブジェクト５１１から初期値設定方法を取得する(p24)。ビューモデルオブジェクト５１５は、初期値生成クラス５２７から初期値を取得する（p25）
ビューモデルマネージャ５０５は、ビューモデルオブジェクト５１５に初期値設定命令を行い（p26)、ビューモデルオブジェクト５１５は、フィールド情報オブジェクト５１７に初期値を設定する（p27）。
【００９３】
サーブレット５０１はセッション管理クラス５０３にビューモデルオブジェクトを保持させる(p28,p29)。
【００９４】
このように本発明においては、前処理にて生成したエンティティクラスおよびストレージクラスを用いて、サーブレット起動時にビューモデルオブジェクトを動的に生成している。したがって、データベースのテーブル構造が変更となっても、永続化定義ファイルの記述を変更し前処理(ソースコード生成およびコンパイル)を実施するだけで、自動的にビューモデルオブジェクトが生成される。
【００９５】
図２６、図２７に前記スケルトンデータおよび永続化定義ファイルから生成されたビューモデルオブジェクトのデータ構造を示す。このように、データベースシステムのテーブル構造を永続化定義ファイルで指定することにより、指定された項目および手続きに合致したビューモデルオブジェクトが自動的に生成される。
【００９６】
５．画面データの生成処理
以下、生成されたビューモデルオブジェクト５１５を用いた画面データの生成処理について説明する。
【００９７】
（５．１）初回の画面データの生成処理
まず、初回の画面データの生成処理について説明する。かかる処理は、図２８に示すセッション管理クラス５０３、ビューモデルオブジェクト５１５、フィールド情報オブジェクト５１７、メソッド情報オブジェクト５２５、JSP５３１、表示変換方法オブジェクト５１３、表示形式変換クラス５３３で実現される。
【００９８】
JSP５３１は、ウェブブラウザから問いあわせ画面要求、たとえば、レコード追加のための画面要求が与えられると、セッション管理クラス５０３に対してビューモデル取得命令を与える（図２８p31）。セッション管理クラス５０３は、ウェブサーバに対して、ビューモデルの取得命令を与える（p32）。ウェブサーバは、ビューモデルオブジェクト５１５にビューモデル取得命令を与える（p33)。JSP５３１は、ビューモデルオブジェクト５１５からメソッド情報を取得する（p34）。JSP５３１は、メソッド情報オブジェクト５２５にメソッド引数名の取得命令を与え（p35)、ビューモデルオブジェクト５１５にフィールド情報の取得命令を与える（p36)。JSP５３１はフィールド情報の選択をおこなう（p37）。JSP５３１は、フィールド情報オブジェクト５１７にテーブルの項目名、画面の表示名、項目の型の取得命令を与える（p38)。また、JSP５３１は、フィールド情報オブジェクト５１７に表示形式変換方法オブジェクトの取得命令を与える（p40)。フィールド情報オブジェクト５１７は、表示変換方法オブジェクト５１３から表示形式変換方法を取得する（p41）。JSP５３１は、フィールド情報オブジェクト５１７に画面入力用コントロールの種類の取得命令を与える（p42)。またJSP５３１は、表示形式変換クラス５３３に、表示変換方法オブジェクト５１３から取得した表示形式変換方法を与えて、表示形式を変換させる。例えば、あるフィールドについては、最初に「\」をつけるなどである。
【００９９】
JSP５３１は、フィールド情報オブジェクト５１７に表示順序、表示可否、初期値リスト、初期値の取得命令を与える（p44)。JSP５３１はかかるフィールド情報から問いあわせ画面を構築して、ウェブブラウザに生成したHTMLファイルを送信する。これにより、ウェブブラウザ端末は問い合わせ画面を表示することができる。
【０１００】
なお、JSP５３１における画面生成処理は、ＪＳＦ、タグライブラリを用いて、スケルトン形式で生成しておき、これに差し込み処理をするようにすればよい。
【０１０１】
（５．２）操作時における画面データ生成処理
つぎに、操作時における画面データの生成処理について説明する。
【０１０２】
かかる処理は、図２９〜図３１に示すサーブレット５０１、セッション管理クラス５０３、ビューモデルマネージャ５０５、ビューモデルオブジェクト５１５、フィールド情報オブジェクト５１７、エンティティマネージャ５１９、エンティティクラス５２１、ストレージクラス５２３、メソッド情報オブジェクト５２５、JSP５３１、表示変換方法オブジェクト５１３、表示形式変換クラス５３３で実現される。
【０１０３】
サーブレット５０１は、ウェブブラウザから問いあわせ結果画面生成要求、たとえば、レコード追加のための画面に対して、入力データを追加データが与えられると、セッション管理クラス５０３に対してビューモデル取得命令を与える（図２９p53）。セッション管理クラス５０３は、ウェブサーバに対して、ビューモデルの取得命令を与える（p55）。ウェブサーバは、ビューモデルオブジェクト５１５にビューモデル取得命令を与える（p57)。サーブレット５０１は、ビューモデルオブジェクト５１５にメソッド情報の取得命令を与える（p61)。ビューモデルオブジェクト５１５はメソッド情報オブジェクト５２５からメソッド情報を取得する（p63)。サーブレット５０１は、メソッド情報オブジェクト５２５からメソッド引数名を取得する（p65)。サーブレット５０１は、ビューモデルオブジェクト５１５にフィールド情報の取得命令を与え（p67）、ビューモデルオブジェクト５１５はフィールド情報オブジェクト５１７からフィールド情報を取得する（p69)。サーブレット５０１は、フィールド情報の選択をおこなう（p71)。サーブレット５０１は、フィールド情報オブジェクト５１７から項目の型を取得し（p73）、引数の型を変換する(p75)。
【０１０４】
つぎに、サーブレット５０１は、ビューモデルマネージャ５０５にテーブル操作命令を与える（図３０,p77)。ビューモデルマネージャ５０５は、ビューモデルオブジェクト５１５からテーブル操作に関する情報を取得し（p79)、エンティティマネージャ５１９にテーブル操作命令を与える（p81)。エンティティマネージャ５１９は、ストレージクラス５２３にかかるテーブル操作命令を与え（p82)、ストレージクラス５２３は、エンティティクラス５２１にテーブル操作の生成命令を与える（p83)。エンティティマネージャ５１９は、ビューモデルオブジェクト５１５に結果の反映をおこなう（p84)。
【０１０５】
サーブレット５０１は、生成されたビューモデルオブジェクト５１５をセッション管理クラス５０３に保持させ（図２９,p85）、セッション管理クラス５０３は、このビューモデルオブジェクト５１５をウェブサーバに保持させる（p86)。サーブレット５０１は、 ウェブサーバに対してJSPにリダイレクトする命令を与える（p87)。 ウェブブラウザはリダイレクトの結果としてJSP５３１を参照し、JSP５３１のdoPostが呼び出される（図３１，p91）。次にJSP５３１はセッション管理クラス５０３にビューモデルの取得命令を与える(p93)。セッション管理クラス５０３は、ウェブサーバにビューモデルの取得命令を与え（p95)、ウェブサーバはビューモデルオブジェクト５１５からビューモデルを取得する(p97)。JSP５３１は、フィールド情報オブジェクト５１７からテーブル項目、画面表示名、項目の型を取得し（p101)、さらに、表示形式変換方法の取得命令を与える(p103)。フィールド情報オブジェクト５１７は、表示変換方法オブジェクト５１３から表示形式変換方法を取得する(p105)。JSP５３１は、フィールド情報オブジェクト５１７から与えられた表示形式変換方法オブジェクトに従い表示形式変換のプログラムを呼出して表示変換を行う(p107)。JSP５３１はフィールド情報オブジェクト５１７から、画面出力用のコントロールの種類、表示順序、表示可否、初期値リスト、初期値を取得し(P111)、得られたデータを用いて画面のHTMLデータを構築する（P113)。このHTMLデータはウェブブラウザ端末に渡され、画面が表示される。この場合も、画面の基礎データ（画面スケルトンデータ）をHTML形式で準備しておき、得られたデータを差し込み処理を行えばよい。これにより、得られたデータに応じた画面を生成することができる。
【０１０６】
このように、本実施形態においては、スケルトンデータを定義データに基づき、変形させることにより、ストレージクラスデータおよびエンティティクラスデータを生成している。したがって、データベースシステムのテーブル構造が変更されても、これにあわせて 永続化定義ファイルの記述を変更し前処理(ソースコード生成およびコンパイル)を実施するだけで、画面作成用のクラスデータが生成される。
【０１０７】
また、サーブレット起動時にビューモデルオブジェクトを生成し、端末から画面要求があると、前記オブジェクトデータから、画面データを生成している。オブジェクトデータはコンピュータが演算処理がしやすいデータとしてメモリ上に展開されているので、その都度データを生成しても、タイムラグの問題がほとんどない。
【０１０８】
上記実施形態においては、データベースを操作する場合における画面を生成する場合であるので、必要な画面生成用のデータとして何が必要であるかについては、予めスケルトン中に記載しておけばよい。これに対して、例えば、ログイン時などのようにデータベースを直接操作しない場合には、どのような処理を行うかによって、引数や戻り値などが異なる。このような場合には、このような設定が可能なクラス（ビューアクションクラス）を作成できるようにすればよい。これにより、例えば、ＩＤ認証画面などについても同様に自動生成することができる。
【０１０９】
上記実施形態においては、テーブルの情報を走査し、受け渡しの為のクラスを自動的に生成し、画面表示処理、初期値設定処理、表示形式変換処理、の各処理を行う為の情報をテーブルの情報と設定ファイルから構築し、各処理を実行する為の「手続き」及び「画面」を自動的に構築する。したがって、テーブル構成の変更の影響による業務システムの修正の手間を大幅に低減することができる。また、「呼び出しクラス」及び「呼び出し手続き」の情報を走査し、手続き情報と設定ファイルから取得した情報を基に、各処理を実行する為の「手続き」及び「画面」を自動的に構築する。これにより、テーブル構成の変更の影響による業務システムの修正の手間を大幅に低減することができる。
【０１１０】
このように、データベーステーブル構造の変更による影響箇所の自動的な修正を、テーブルを操作する一部分だけでなく「画面表示処理」「初期値設定処理」「表示形式変換処理」まで広げることにより、定義ファイルを変更するだけで、DBMS(データベースマネジメントシステム)の変更の影響や正規化によるテーブルの分割の影響を吸収することができる。
【０１１１】
６．第２の実施形態
上記実施形態においては、データベースサーバ特有の命令を用いないので、DBMSが変わった場合でも、データ構造が同じであれば、同じ永続化定義ファイルを用いることができる。さらに、以下のような機能を保有させることができる。
【０１１２】
従来、JDBCインタフェースは、DBMSに依存しない処理が可能であるので、用いられることが多い。しかし、かかるインタフェースを利用してデータベースへの問い合せを実行した場合、その結果をウェブページをまたがって保持できないため、ページをまたがって操作することができない。したがって膨大なリストに対する処理であっても１つのウェブページ上で操作を完了する必要がある。しかし、この方式の場合、たとえば、全件検索など検索結果データの数が多い場合、メモリ不足が頻発するおそれがある。
【０１１３】
以下に説明する発明は、上記の問題を解決し、DBMSに依存せず膨大なデータを管理できるデータ処理装置を提供するために、DBMSから与えられる結果データの位置を保持し、所定件数毎に件数を分割して、結果を渡すようにしている。
【０１１４】
かかるキャッシュ装置について図３２〜図３５を用いて説明する。これらは、キャッシュ装置６００のシーケンス図である。
【０１１５】
キャッシュ装置６００は、サーブレット５０１、セッション管理クラス５０３、JSP５３１、ビューモデルマネージャ５０５、ビューモデルオブジェクト５１５、ストレージプロキシクラス６０１、シリアライザブルエンティティリストオブジェクト６０３、キャッシュクラス６０５、ストレージクラス６０７、エンティティリストオブジェクト６０９、エンティティオブジェクト６１１を備えている（図３２〜図３５参照）。
【０１１６】
サーブレット５０１は、ウェブブラウザからdoPost命令が与えられると（図３２u1）、ビューモデルマネージャ５０５にテーブル操作命令を与える（u2）。ビューモデルマネージャ５０５はビューモデルオブジェクト５１５に対してビューモデル取得を行う（u3）。また、ストレージプロキシクラス６０１に検索命令を与える（u4）。ストレージプロキシクラス６０１は、シリアライザブルエンティティリストオブジェクト６０３に対して、生成命令、ページ幅設定、対象エンティティ設定を行う（u11)。ページ幅は、Ｗｅｂブラウザ端末から生成時に引数として与えられる。以下では、ページ幅が５０件であるものとする。ストレージプロキシクラス６０１は、キャッシュクラス６０５に検索命令を与える（u12)。キャッシュクラス６０５は、ストレージクラス６０７に全件件数の取得をおこなう（u13)。ここでは、全件が１９９件あったものとする。キャッシュクラス６０５は、シリアライザブルエンティティリストオブジェクト６０３に全件件数１９９件を設定する（u14）。
【０１１７】
キャッシュクラス６０５は、ストレージクラスに検索命令を与える（u15)。ストレージクラス６０７はエンティティリストオブジェクト６０９の生成を行う（u16）。キャッシュクラス６０５は、シリアライザブルエンティティリストオブジェクト６０３からページ幅を取得する（u17）。
【０１１８】
キャッシュクラス６０５は、エンティティリストオブジェクト６０９にエンティティ取得命令を与える（u18）。エンティティリストオブジェクト６０９は、エンティティオブジェクト６１１の生成を行う（u19）。キャッシュクラス６０５は結果のエンティティを保持する（u20）。処理u18〜u20がページ幅分（５０件分）繰り返される。これにより、ページ幅分の検索結果データ、すなわち、５０件分のデータがシリアライザブルエンティティリストオブジェクト６０３に保持される。キャッシュクラス６０５は現在位置を設定する（u22）。
【０１１９】
ストレージプロキシクラス６０１は、検索結果を保持したシリアライザブルエンティティリストをビューモデルマネージャ５０５に返却する（u23）。
【０１２０】
ビューモデルマネージャ５０５は、ビューモデルオブジェクト５１５に結果を反映させる（u24)。サーブレット５０１は、反映されたビューモデルオブジェクトをセッション管理クラス５０３に保持させ（図３３u25)、セッション管理クラス５０３はこれをウェブサーバに保持させる。サーブレット５０１は、 ウェブサーバに対してJSPにリダイレクトする命令を与える（u27)。 ウェブブラウザはリダイレクトの結果としてJSP５３１を参照し、JSP５３１のdoPostが呼び出される（u28）。JSP５３１はセッション管理クラス５０３にビューモデルの取得命令を与える(u29)。セッション管理クラス５０３は、ウェブサーバにビューモデルの取得命令を与え（u30)、ウェブサーバはビューモデルオブジェクト５１５からビューモデルを取得する(u31)。
【０１２１】
ビューモデルオブジェクトは、JSP５３１からの呼出しに従い要素分取得を繰り返す（u34、u36)。JSP５３１は、得られたデータを用いて画面のHTMLデータを構築する。なお、ビューモデルオブジェクトを用いた画面生成については既に説明したので説明は省略する。これにより、１ページ目の画面（５０件分）が生成される。
【０１２２】
つぎに、図３４，３５を用いて、次ページ以降の画面生成について説明する。サーブレット５０１はウェブブラウザからdoPost命令が与えられると（図３４u41）、セッション管理クラス５０３にビューモデル取得命令を行う（u42）。セッション管理クラス５０３は、ビューモデルオブジェクト５１５に対してビューモデル取得命令を与える（u43）。また、サーブレット５０１は、次ページが存在するか否かの問い合わせを行う（u44)。ビューモデルオブジェクト５１５は、シリアライザブルエンティティリストオブジェクト６０３に問い合わせを行う(u45)。シリアライザブルエンティティリストオブジェクト６０３は、全件数および現在位置から次ページが存在するか否かを判断し、結果をサーブレット５０１に返す。
【０１２３】
この場合、次ページが存在するので、サーブレット５０１は、ビューモデルオブジェクト５１５にページ取得命令を与える（u46）。ビューモデルオブジェクト５１５は、シリアライザブルエンティティリストオブジェクト６０３にページ取得命令を与える(u51)。シリアライザブルエンティティリストオブジェクト６０３は、次ページ取得命令をキャッシュクラス６０５に与える(u52)。キャッシュクラス６０５はストレージクラス６０７に全件件数の取得を行う（u54)。この場合、全件は１９９件である。キャッシュクラス６０５は、シリアライザブルエンティティリストオブジェクト６０３に全件件数の設定を行う(u55)。キャッシュクラス６０５はストレージクラス６０７に全件検索命令を与え（u56)。ストレージクラス６０７はエンティティリストオブジェクト６０９の生成を行う（u57）。キャッシュクラス６０５は、シリアライザブルエンティティリストオブジェクト６０３からページ幅を取得する（u58）。キャッシュクラス６０５はエンティティリストオブジェクト６０９に現在位置の設定を行う(u59)。この場合、５１件目が現在位置である。キャッシュクラス６０５は、エンティティリストオブジェクト６０９にエンティティ取得命令を与える（u60）。エンティティリストオブジェクト６０９は、エンティティオブジェクト６１１の生成を行う（u61）。キャッシュクラス６０５は結果のエンティティを保持する（u62）。処理u60〜u62がページ幅分（５０件分）繰り返される。これにより、ページ幅分の検索結果データ、すなわち、５０件分のデータがシリアライザブルエンティティリストオブジェクト６０３に保持される。キャッシュクラス６０５はシリアライザブルエンティティリストオブジェクト６０３に現在位置の更新を設定する（u63）。シリアライザブルエンティティリストオブジェクト６０３は、ビューモデルオブジェクト５１５に次ページのリストを与える（u64）。
【０１２４】
図３５u71〜u80までの処理は、図３３u25〜u37と同様であるので、説明は省略する。これにより、JSP５３１は、得られたデータを用いて画面のHTMLデータを構築することができる。あとは、次ページが存在する間、図３４u41以下の処理が繰り返される。
【０１２５】
このように、DBMSに対して、全件件数を問いあわせ、所定の問いあわせ件数になるまで１件を受け取るという行為をページ幅分だけ繰り返して、ページ幅になるとクライアントに出力することにより、検索結果データの数が多い場合でもメモリ不足もなく、表示が可能となる。このように、DBMSにおける検索結果を『全件取得しページ幅ずつ分けて出力する』のではなく『ページ幅ずつ取得しそのまま出力する』ことにより、検索件数にかかわらず、メモリの有効利用を図ることができる。
【０１２６】
このように、本実施形態においては、「テーブルに対する全件検索結果出力画面のリストのページめくり(もどり)機能」の実現を独自の構造と手続きにより実現しているので、そのような機能を保持しない場合でも、定められた件数ずつ、ウェブブラウザ端末（webブラウザ端末）に受け渡すことができる。
【０１２７】
７．他の実施形態
上記実施形態においては、図１に示す機能を実現する為に、ＣＰＵを用い、ソフトウェアによってこれを実現している。しかし、その一部もしくは全てを、ロジック回路等のハードウェアによって実現してもよい。
【０１２８】
なお、上記プログラムの一部の処理をオペレーティングシステム（ＯＳ）にさせるようにしてもよい。
【図面の簡単な説明】
【０１２９】
【図１】本発明にかかる画面生成装置１の機能ブロック図である。
【図２】図１に示す画面生成装置１をＣＰＵを用いて実現したハードウエア構成の一例を示す図である。
【図３】定義ファイルの一例である。
【図４】エンティティスケルトンデータ（フィールド宣言部）である。
【図５】エンティティスケルトンデータ（コンストラクタ手続部）である。
【図６】エンティティスケルトンデータ（主キー属性の情報取得手続部）である。
【図７】エンティティスケルトンデータ（主キー以外の属性の情報取得手続部）である。
【図８】エンティティスケルトンデータ（属性情報設定手続部）である。
【図９】ストレージスケルトンデータ（フィールド宣言部）である。
【図１０】ストレージスケルトンデータ（コンストラクタ手続部）である。
【図１０ａ】ストレージスケルトンデータ（コンストラクタ手続部）である。
【図１１】ストレージスケルトンデータ（エンティティ登録手続部）である。
【図１２】クラス生成クラス２６ｐにおけるソースコード生成処理を示す。
【図１３】エンティティクラスソースコードの生成処理（詳細）を示す。
【図１４】エンティティクラスソースコードの生成処理（詳細）を示す。
【図１５】生成されたエンティティクラスソースコード（フィールド宣言部）を示す。
【図１６】生成されたエンティティクラスソースコード（コンストラクタ手続部）を示す。
【図１７】生成されたエンティティクラスソースコード（属性情報取得／設定手続部）を示す。
【図１８】生成されたストレージクラスソースコード（フィールド宣言部）を示す。
【図１９】生成されたストレージクラスソースコード（コンストラクタ手続部）を示す。
【図２０】生成されたストレージクラスソースコード（エンティティ登録手続部）を示す。
【図２１】ビューモデル生成処理の、シーケンス図である。
【図２２】ビューモデル生成処理の、シーケンス図である。
【図２３】ビューモデル生成処理の、シーケンス図である。
【図２４】エンティティクラスからのフィールド情報抽出フローチャートである。
【図２５】ストレージクラスからのメソッド情報抽出フローチャートである。
【図２６】生成されたビューモデルオブジェクトにおける各オブジェクトの関係を示すオブジェクト図である。
【図２７】生成されたビューモデルオブジェクトにおける各オブジェクトの関係を示すオブジェクト図である。
【図２８】ビューモデルオブジェクトを用いた初回表示時のシーケンス図である。
【図２９】ビューモデルオブジェクトを用いた初回表示時のシーケンス図である。
【図３０】ビューモデルオブジェクトを用いた操作時のシーケンス図である。
【図３１】ビューモデルオブジェクトを用いた操作時のシーケンス図である。
【図３２】ページング処理の検索〜最初のページまでのシーケンス図である。
【図３３】ページング処理の検索〜最初のページまでのシーケンス図である。
【図３４】ページング次ページ以降のシーケンス図である。
【図３５】ページング次ページ以降のシーケンス図である。
【符号の説明】
【０１３０】
１・・・・ 画面生成装置
２３・・・ＣＰＵ
２７・・・メモリ
【図１】
2006285690.tif 000003
【図２】
2006285690.tif 000004
【図３】
2006285690.tif 000005
【図４】
2006285690.tif 000006
【図５】
2006285690.tif 000007
【図６】
2006285690.tif 000008
【図７】
2006285690.tif 000009
【図８】
2006285690.tif 000010
【図９】
2006285690.tif 000011
【図１０】
2006285690.tif 000012
【図１０ａ】
2006285690.tif 000013
【図１１】
2006285690.tif 000014
【図１２】
2006285690.tif 000015
【図１３】
2006285690.tif 000016
【図１４】
2006285690.tif 000017
【図１５】
2006285690.tif 000018
【図１６】
2006285690.tif 000019
【図１７】
2006285690.tif 000020
【図１８】
2006285690.tif 000021
【図１９】
2006285690.tif 000022
【図２０】
2006285690.tif 000023
【図２１】
2006285690.tif 000024
【図２２】
2006285690.tif 000025
【図２３】
2006285690.tif 000026
【図２４】
2006285690.tif 000027
【図２５】
2006285690.tif 000028
【図２６】
2006285690.tif 000029
【図２７】
2006285690.tif 000030
【図２８】
2006285690.tif 000031
【図２９】
2006285690.tif 000032
【図３０】
2006285690.tif 000033
【図３１】
2006285690.tif 000034
【図３２】
2006285690.tif 000035
【図３３】
2006285690.tif 000036
【図３４】
2006285690.tif 000037
【図３５】
2006285690.tif 000038