(57)【要約】【課題】プログラミング言語に知識のない開発者が、データ項目をはじめとするいくつかの業務ルールを指定することにより、画面プログラムを含む基本的業務ロジックの完全自動生成を可能とし、仕様に準拠したＷｅｂアプリケーションの実行形式プログラムの自動生成装置を提供する。【解決手段】データ項目情報を規定した設定ファイルを生成するためのモデル定義スキーマ作成支援入力手段と、業務処理パターンを規定した設定ファイルを生成するためのアクション定義スキーマ作成支援入力手段と、表示レイアウトを規定した設定ファイルを生成するためのプレゼンテーション定義スキーマ作成支援手段と、利用者毎に保持・管理するための管理手段と、ソースコード生成手段と、ソースコードビルド手段と、データ移行用スクリプト生成手段と、プログラムダウンロード手段とを有するプログラム自動生成装置である。【選択図】      図１
2004265278.tif 000002
【特許請求の範囲】
【請求項１】
開発対象となるＷｅｂアプリケーションが取り扱う全データ項目に関する項目情報を規定した設定ファイルを対話的に生成するためのモデル定義スキーマ作成支援入力手段と、各データ項目に対する業務処理パターンを規定した設定ファイルを対話的に生成するためのアクション定義スキーマ作成支援入力手段と、各データ項目の表示レイアウトを規定した設定ファイルを対話的に生成するためのプレゼンテーション定義スキーマ作成支援手段と、当該スキーマファイルを利用者毎に保持・管理するための管理手段と、当該スキーマを用いてＷｅｂアプリケーションのソースコードを生成するコード生成手段と、生成されたソースコードをコンパイルし、実行形式ファイルを生成するためのソースコードビルド手段と、ＣＳＶ形式のデータをＸＭＬ形式に変換し、初期データとしてアプリケーションに登録するためのデータ移行用スクリプト生成手段と、最終的に生成された実行形式プログラムを利用者に提供するためのプログラムダウンロード手段と、を有することを特徴とするプログラム自動生成装置。
【請求項２】
前記モデル定義は、データベースへの格納形式を定義したストアモデルと、ＷｅｂＦｏｒｍへの入出力用として定義したプレゼンテーションモデルと、ＷｅｂＦｏｒｍへの一覧表示用として定義したリストモデルと、ＷｅｂＦｏｒｍから入力される検索条件格納用として定義したコンディションモデルと、ストアモデル中に格納されるコードの意味を規定したマスタモデルの５種類の基本モデルに関するＸＭＬ形式の定義ファイルを自動生成することを特徴とする請求項１に記載のプログラム自動生成装置。
【請求項３】
前記アクション定義は、ストアモデルの詳細表示を実現するアクションと、ストアモデルの一覧表示ならびに絞り込み検索を実現するアクションと、ストアモデルの新規生成を実現するアクションと、ストアモデルの更新を実現するアクションと、ストアモデルの削除を実現するアクションの組み合わせによるソースファイルを自動生成することを特徴とする請求項１に記載のプログラム自動生成装置。
【請求項４】
前記プレゼンテーション定義は、表示対象となるプレゼンテーションモデルをＸＭＬデータ形式で入力し、ＨＴＭＬ文書を出力とするＸＳＬファイルと、当該ＸＳＬファイルを呼び出すＪＳＰファイルを自動生成することを特徴とする請求項１に記載のプログラム自動生成装置。
【請求項５】
前記モデル定義について、ストアモデルとプレゼンテーションモデルの相互変換を行うメソッドと、ストアモデルとリストモデルの相互変換を行うメソッドと、ストアモデルの正当性を検証するメソッドと、プレゼンテーションモデルの各項目の入力チェックを行うメソッドと、プレゼンテーションモデルの各項目の入力文字変換処理を行うメソッドを有するヘルパクラスを定義するソースファイルを自動生成することを特徴とする請求項１に記載のプログラム自動生成装置。
【請求項６】
前記定義情報をファイルによって保持・管理することを特徴とする請求項１に記載のプログラム自動生成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、Ｗｅｂアプリケーション自動生成技術に関し、特に定型化された業務アプリケーションが完全自動生成される開発環境の提供に関する。
【０００２】
【従来の技術】
従来から様々な種類の業務アプリケーションが開発されているが、近年のＯＳの多様化、多バージョン化に伴い、システム管理の負荷を軽減する視点から汎用的な利用者インタフェース部分の提供を目的としたＷｅｂアプリケーションシステムの開発が求められている。
【０００３】
これまでのＷｅｂアプリケーション開発は、個々の業務仕様に基づき、要求定義、システム設計、開発、テストといった一連の工程を進めていくものである。このとき、要求定義はヒアリングという形で実施されるが、業務によって本要求定義の内容は全く異なる。そのためシステム開発は毎回、業務に密接に対応したオーダーシステムとなっている。
【０００４】
また、Ｗｅｂアプリケーションの開発に必要な要素技術としては、入出力のインタフェース部分を司るＨＴＭＬ言語と、業務ロジックを記述するＣやＪａｖａ（登録商標）といったプログラミング言語と、データベースアクセスを司るＳＱＬとを組み合わせて行っている。これらはそれぞれ別個の技術であるため、開発にあたってはそれぞれの技術を理解している開発者を投入する必要がある。かつ、これらの技術要素を統合する開発者の存在も必要不可欠である。
【０００５】
近年では、Ｗｅｂアプリケーションを稼働させるためのフレームワークを利用することで、画面遷移処理や入力チェック等の共通処理部分についてはコードの再利用性を高めることができるようになった。さらに、画面の入出力定義に関してはＧＵＩを用いたＷｅｂアプリケーション開発ツールを用いることで、プログラムが容易にかつ効率的に構築できるようになっている。かつ、このような開発ツールはフレームワークと連携した業務ロジックの一部のソースコードを自動生成する機能を有しており、開発者の生産性向上に寄与することに貢献している。
【０００６】
【発明が解決しようとする課題】
しかしながら、実際の業務システムを開発する工程を通して、これらの開発ツールを用いてもなお、システムの開発コストや納期を著しく低減化するには至っていない。なぜならば、開発ツールは業務アプリケーションの業務ロジックの雛形を自動生成するものの、最終的にはシステムエンジニアやプログラマによる業務ロジックのコーディングとテストが必要不可欠である。ところが、これらの開発ツールおよび基盤となるフレームワークを十分に理解した上で、個々の業務ロジックを実装するためには、その環境に熟達した開発者であることが求められている。すなわち、このような開発者を確保できなければ逆に生産性を低下させ、納期通りにシステムを開発することが困難な状況となっている。
【０００７】
さらに、Ｗｅｂアプリケーション開発では従来型アプリケーション開発と異なり、入出力対象のデータ項目と、データベースに格納されるデータ項目は一致しない。これは、Ｗｅｂアプリケーションにおける入出力インタフェースであるＷｅｂブラウザはすべてのデータを文字列として取り扱うが、実際にデータベースに格納されるデータは数字型や日付型といったそれぞれの型情報が必要となることに起因している。すなわち、入出力対象データ項目と、データベースに格納されるデータ項目間での変換作業が必要となる。このような変換作業は通常、開発者が作成することとなるが、Ｗｅｂアプリケーションに対応した統一的変換モデルが求められている。
【０００８】
さらに、Ｗｅｂアプリケーション開発では、作成されたアプリケーションの機能テストおよび負荷テストを実施する必要があるが、テストのためのシナリオについても、プログラム開発とは別個に行う必要がある。
【０００９】
なお、このような開発環境を改善して効率性を向上させるプログラム自動生成技術に関する先行技術として、特許２９８８９１１に記載された「プログラム自動生成装置」や、特開２００１？３４４１０５に記載された「Ｗｅｂアプリケーション開発方法、開発支援システム、および該方法に係るプログラムを記憶した記憶媒体」などがある。
【００１０】
前者は、画面プログラムの効率的な生成、及び当該画面アプリケーションを構成する画面表示以外のロジック並びに文書を自動生成する方法が開示されている。しかし、この方法は画面プログラムを座標変数Ｘ、Ｙで指定する類のクライアントサーバ方式アプリケーションに対して有効であるが、ＨＴＭＬで画面プログラムを構築するＷｅｂアプリケーションに対しては利用できない。合わせて、Ｗｅｂアプリケーション特有の課題である入出力インタフェースにおけるデータ項目と、実際にデータベースに格納されるデータ項目との変換作業を自動化するものではない。また、開発者によって事前に準備された業務ロジックを呼び出すための処理コードを自動生成する方法が示されているが、業務ロジックそのものの自動生成については検討されていない。
【００１１】
また、後者は、Ｗｅｂアプリケーションの開発において、それぞれの画面に対応させて、各業務処理コンポーネントを１対１の関係で定義し、画面デザインを元に各コンポーネントを自動生成する方法を開示している。しかしこの方法は開発するＷｅｂアプリケーションの雛形を生成することで開発作業を軽減することは可能であるが、完全に動作するＷｅｂアプリケーションとはなっていない。さらに、ソースコードの一部生成までを行うものであり、データ移行用スクリプト、実行可能形式ファイルまでを包括的に生成するものとはなっていない。
【００１２】
本発明は以上のような問題を解決するためになされたものであり、その目的は、プログラミング言語に知識のない開発者が、データ項目をはじめとするいくつかの業務ルールを指定することにより、画面プログラムを含む基本的業務ロジックの完全自動生成を可能とし、仕様に準拠したＷｅｂアプリケーションの実行形式プログラムの自動生成装置を提供することにある。
【００１３】
【課題を解決するための手段】
以上のような目的を達成するために、本発明に係るプログラム自動生成装置は、開発対象となるＷｅｂアプリケーションが取り扱う全データ項目に関する項目情報を規定した設定ファイルを対話的に生成するためのモデル定義スキーマ作成支援入力手段と、各データ項目に対する業務処理パターンを規定した設定ファイルを対話的に生成するためのアクション定義スキーマ作成支援入力手段と、各データ項目の表示レイアウトを規定した設定ファイルを対話的に生成するためのプレゼンテーション定義スキーマ作成支援手段と、当該スキーマファイルを利用者毎に保持・管理するための管理手段と、当該スキーマを用いてＷｅｂアプリケーションのソースコードを生成するコード生成手段と、生成されたソースコードをコンパイルし、実行形式ファイルを生成するためのソースコードビルド手段と、ＣＳＶ形式のデータをＸＭＬ形式に変換し、初期データとしてアプリケーションに登録するためのデータ移行用スクリプト生成手段と、最終的に生成された実行形式プログラムを利用者に提供するためのプログラムダウンロード手段とを有するものである。
【００１４】
【発明の実施の形態】
以下、図面に基づいて、本発明の好適な実施の形態について説明する。
【００１５】
図１は、本発明に係るプログラム自動生成装置の一実施の形態を示した機能ブロック構成図である。本実施の形態におけるプログラム自動生成装置は、開発対象となるＷｅｂアプリケーションが使用するデータベースの項目情報の入力と、各データ項目に対する各種属性の入力、各データ項目に対応した業務処理パターンの入力、各データ項目の表示レイアウトパターンの入力を行うと、入力された情報から設定ファイルを生成し、さらに当該設定ファイルからプログラム本体を生成し、またプログラムから実行形式ファイルまでの生成を行って、利用者に提供するものである。
【００１６】
本実施の形態におけるプログラム自動生成装置は、対話型システム仕様入力部１、モデル定義スキーマ生成部２、アクション定義スキーマ生成部３、プレゼンテーション定義スキーマ生成部４、データ移行スクリプト生成部５、プログラムコード生成部６、プログラムコードビルド用スクリプト生成部７、実行ファイル生成部８、生成プログラムダウンロード部９、利用者定義ファイル管理部１０より構成される。対話型システム仕様入力部１は、ＧＵＩスタイルの画面から当該自動生成装置が出力するモデル定義スキーマ、アクション定義スキーマ、プレゼンテーション定義スキーマの各スキーマの生成に必要なすべてのパラメータの入力を行うことができる。また、過去に利用者が作成済みの各スキーマ情報を利用者定義ファイル管理部１０から読み込む利用者定義ファイル読込部１１と、利用者認証部１２を有している。利用者認証部１２は、利用者毎に発行された利用者ＩＤおよびパスワードを管理しており、これらの情報を用いて利用者の認証とスキーマファイルの選択を行うものである。
【００１７】
モデル定義スキーマ生成部２は、対話型システム仕様入力部１で入力されたパラメータを元に、Ｗｅｂアプリケーション上で動作するデータ構造の定義ファイルを生成する。アクション定義スキーマ生成部３は、対話型システム仕様入力部１で入力されたパラメータを元に、Ｗｅｂアプリケーションの各画面毎の機能と、画面遷移情報が記述された定義ファイルを生成する。プレゼンテーション定義スキーマ生成部４は、対話型システム仕様入力部１で入力されたパラメータを元に、入出力画面に関する定義ファイルを生成する。なお、各スキーマの種類と特徴については、使用されるとき若しくは生成される処理の説明のときに併せて説明する。
【００１８】
データ移行スクリプト生成部５は、初期データをデータベースに登録するための変換スクリプトファイルを生成する。変換対象データはＣＳＶ形式にて利用者が別途、用意するものとし、対話型システム仕様入力部１ではＣＳＶ形式の項目定義を入力することができるものとする。変換スクリプトファイルはＸＳＬファイルとして生成される。変換スクリプトを用いたデータ移行手順は、使用されるとき若しくは生成される処理の説明のときに併せて説明する。
【００１９】
プログラムコード生成部６は、モデル定義スキーマ生成部２、アクション定義スキーマ生成部３、プレゼンテーション定義スキーマ生成部４によってそれぞれ生成されたスキーマファイルを入力とし、プログラムのソースコードを生成する。プログラムコードビルド用スクリプト生成部７は、プログラムコード生成部６で生成されたプログラムのソースコード、データ移行スクリプト生成部５で生成された変換スクリプトを対象としたプログラムコードをコンパイルし、実行ファイルを生成し、さらに実行ファイル一式を利用者に転送するための圧縮ファイル形式生成までの一連の手順を実施するためのビルドファイルを生成する。実行ファイル生成部８は、プログラムコードビルド用スクリプト生成部７が生成したビルドファイルを読み込み、さらに実行ファイル付属設定ファイル管理部１３および実行ファイル付属ライブラリ管理部１４からそれぞれ入手できるファイルを組み込み、最終的な実行形式プログラムファイル一式を生成し、その配布形式である圧縮ファイルまでを生成する。生成プログラムダウンロード部９は、利用者認証部１２と連携し、適切な認証処理を経由して、生成したプログラム一式の圧縮ファイル形式を利用者にダウンロードさせる。
【００２０】
まず、最初に本実施の形態により生成される画面の例、その画面を表示するために用いられる各スキーマファイルでの定義内容と考え方を示すことで本実施の形態の概要について説明する。
【００２１】
図２は、本実施の形態により生成される簡単な画面の一例を示した図である。本図はＷｅｂブラウザ上に表示される。画面はタイトル部１５、画面遷移ボタン部１６、対象データ操作ボタン部１７、データ表示部分部１８から構成されている。この例では、画面遷移ボタン部１６を押下することにより、ボタンのアクション属性で指定された別画面へ遷移することができる。また、対象データ操作ボタン部１７を押下することにより、対象データを絞り込んだ処理画面へ遷移することができる。図３に、図２の対象データ操作ボタン１７を押下した後の画面例を示す。図３では絞り込まれた一件の対象データに対する操作を行えるボタン部１９が用意されている。ボタン部１９により、対象データの更新あるいは削除処理が可能となっている。つまり、本実施の形態では、対象データを限定しない通常の画面遷移と、対象データを絞り込んだ基本機能（検索、一覧表示、新規作成、更新、削除）を実現する業務処理の組み合わせから構成されたＷｅｂアプリケーションを開発する際に好適な装置を提供するものである。
【００２２】
図４および図５は、図３に示した自動生成された画面のソースプログラムの一部である。画面ソースプログラム全体はＨＴＭＬ文書とＸＭＬ形式で表現される対象データをＨＴＭＬ文書に変換するための変換用ＸＳＬを呼び出すタグライブラリを組み合わせたＪＳＰ形式ファイルから構成される。タイトルや画面遷移ボタン等の画面構成部品は、プレゼンテーション定義スキーマ生成部４で生成されたスキーマファイルに従ってレイアウトや内容が決定される。データ表示部分は、画面ソースプログラム中に埋め込まれたタグライブラリで指定されたＸＳＬ文書にて定義される。ＸＳＬ文書中に指定された各データ項目は、モデル定義スキーマ生成部２およびプレゼンテーション定義スキーマ生成部４で生成されたスキーマファイルに従ってラベル名や表示サイズ、表示属性が決定される。
【００２３】
図６は、図３に示した自動生成された画面の各ボタンを押下した際に呼び出されるＷｅｂサーバ側で動作する、自動生成されたソースプログラムの一部である。本プログラムはアクション定義スキーマ生成部３で生成されたスキーマファイルによって、表示機能を提供することが規定されている。そのため、生成されるプログラムは、詳細表示機能を実現するためのメソッドが含まれたものとなっている。
【００２４】
次に、本実施の形態のプログラム生成に使用されるスキーマファイルについて説明する。
【００２５】
モデル定義スキーマは、モデル定義スキーマ生成部２によって生成されるスキーマファイルである。利用者が入力したデータ項目情報から、ストアモデル、プレゼンテーションモデル、リストモデル、コンディションモデル、マスタモデルの５種類の基本モデルを規定している。ただしリストモデルとコンディションモデルについては、さらにリストモデルのプレゼンテーションモデル、コンディションモデルのプレゼンテーションモデルに関するスキーマが生成される。すべてのモデルはＸＭＬ形式のデータ構造を有している。ストアモデルはデータベースへの保存対象となるＸＭＬデータであり、数値型、日付型、文字型といった型情報を有する。また、後述するマスタデータを参照する場合、対象マスタデータのＩＤを有する。図７にストアモデルのＸＭＬ形式表現例を示す。プレゼンテーションモデルはストアモデルと対になっており、ストアモデルと同じデータ項目を管理するが、すべて文字型となっている。またマスタデータについては、対象マスタデータのＩＤと、実際に表示する内容の両方を有する。図８にプレゼンテーションモデルのＸＭＬ形式表現例を示す。リストモデルはストアモデルで定義されたデータ項目の部分集合が定義されており、かつ複数のデータ値がひとつのＸＭＬデータ中に集約される構造を有している。図９にリストモデルのＸＭＬ形式表現例を示す。図１０にリストモデルのプレゼンテーションモデルのＸＭＬ形式表現例を示す。コンディションモデルはＷｅｂブラウザから入力される検索条件を格納するモデルである。図１１にコンディションモデルのＸＭＬ形式表現例を示す。図１２にコンディションモデルのプレゼンテーションモデルのＸＭＬ形式表現例を示す。マスタモデルは、業務アプリケーション中で一貫して利用される各種コード値を規定する。図１３にマスタモデルのＸＭＬ形式表現例を示す。各モデル定義には、プロジェクト内でユニークなモデルＩＤが設定される。他スキーマファイルから当該モデルを参照する場合には、このモデルＩＤを用いる。スキーマファイルはＸＭＬ形式のファイルで出力され、利用者定義ファイル管理部１０へ保存される。
【００２６】
アクション定義スキーマは、アクション定義スキーマ生成部３によって生成されるスキーマファイルであり、詳細表示、一覧表示、更新、新規作成、削除の５種類の基本アクションを規定している。各アクション定義は、同定義に対応したモデル定義を、モデルＩＤによって参照する。ひとつのモデルに対して、複数のアクション定義を行うことができる。詳細表示アクションは１乃至複数のモデルをデータベースから読み込み、表示する機能を提供する。一覧表示アクションは同一モデルに対する検索結果集合の一部を表示する機能および、現在表示されている検索結果集合の前後を表示するための機能を提供する。更新アクションはモデルの更新機能を提供する。新規生成アクションはモデルの新規作成機能を提供する。削除アクションはモデルの削除機能を提供する。加えて、これらの基本アクションを格納するためのコンテナアクション機能を提供する。コンテナアクションを用いることで、複数の基本アクションを同一画面上に表現することが可能となる。各アクション定義には、プロジェクト内でユニークなアクションＩＤが設定される。他スキーマファイルから当該アクションを参照する場合には、このアクションＩＤを用いる。生成されたスキーマファイルはＸＭＬ形式のファイルで出力され、利用者定義ファイル管理部１０へ保存される。
【００２７】
プレゼンテーション定義スキーマは、プレゼンテーション定義スキーマ生成部４によって生成されるスキーマファイルであり、アクションＩＤならびにモデルＩＤへの参照情報が含まれている。参照先のアクションスキーマならびにモデルスキーマによって指定されたデータ項目の表示レイアウト情報を規定する。レイアウトはデータ項目の並び順に従い、ＨＴＭＬのテーブル形式に準拠したＨＴＭＬ文書が生成される。生成されたスキーマファイルはＸＭＬ形式のファイルで出力され、利用者定義ファイル管理部１０へ保存される。
【００２８】
次に、本実施の形態のプログラム生成に使用されるスキーマファイルから生成される各種プログラムソースコードおよび各基本機能の詳細について説明する。
【００２９】
図１４に生成される各種ファイルの一覧を示す。生成されるファイルは、プログラムに関するファイル、見た目に関するファイル、設定に関するファイルの３種類に大別される。プログラムに関するファイルは、Ｗｅｂサーバ上で動作するＪａｖａ（登録商標）のソースコードとなっている。ただしモデル定義ファイルは、ＲＥＬＡＸ文法に準拠したＸＭＬ形式で記述される。モデルクラスは、モデル定義ファイルから生成され、ＸＭＬ形式ファイルの入出力機能を備えたＪａｖａ（登録商標）のソースコードとなっている。アクションクラスはアクション定義スキーマから生成されるＪａｖａ（登録商標）のソースコードであり、画面遷移とプロセスビーンの呼び出しを受け持つものである。プロセスビーンはデータベースアクセスを伴う業務処理コードであり、データベースから読み込んだデータをストアモデル形式に変換して呼び出し元のアクションクラスに返すといった処理を行う。ヘルパクラスはストアモデルと各モデルとの変換処理を行うＪａｖａ（登録商標）のソースコードとなっており、ストアモデルとプレゼンテーションモデルの相互変換、ストアモデルとリストモデルの相互変換といったモデル間の変換処理を提供する。また、入力チェックコードや妥当性チェックのためのコードも含まれる。
【００３０】
見た目に関するファイルは、静的な部分を取り扱うＨＴＭＬファイルと、動的に変更を伴う画面を表現するＪＳＰファイルから構成される。さらに、ＸＭＬ形式で表現されたモデルをＨＴＭＬ形式へと変換するためのＸＳＬファイルおよび、文字の大きさや色に関するビュー定義を行うＣＳＳファイルも自動生成される。
【００３１】
設定に関するファイルは、各画面名称と、画面遷移の関連性を記述した画面遷移定義ファイルと、Ｗｅｂサーバ起動時の初期パラメータ値やセッションタイムアウト値などを設定することのできるＷｅｂ環境設定ファイルと、利用者の操作権限を設定することのできる権限設定ファイルと、ＣＳＶ形式のファイルを各モデルに従ったＸＭＬ形式のファイルに変換するためのＣＳＶ変換ファイルと、ＸＭＬ形式で準備された初期データをデータベースに読込ませるための初期データファイルから構成される。
【００３２】
図１５に詳細表示機能の処理手順を示す。利用者側ユーザーインタフェース２０からのデータ要求には、当該データを特定するためのデータＩＤが含まれる。アクションクラス２３は利用者からの要求を受け取り、データＩＤを入手する。次にアクションクラス２３はデータ読込用プロセスビーン２４を生成し、データＩＤをパラメータとしてセットしたのち、プロセスビーンを実行する。プロセスビーンは事前に準備されているデータベースへの接続用コネクションを用いてデータベース２５に接続し、対象データを取得したのち、データをストアモデル形式に変換して呼び出し元のアクションクラスへ返す。アクションクラスはヘルパクラス２２の変換メソッドを呼び出し、ストアモデルからプレゼンテーションモデルを生成する。アクションクラスは生成されたプレゼンテーションモデルを利用者側に返す。プレゼンテーションモデルは最終的にＸＭＬ表現形式に変換され、ＸＳＬファイル２１によってＨＴＭＬ出力レイアウトに変換されたのちに利用者側へ送信される。
【００３３】
図１６に一覧表示機能の処理手順を示す。利用者側ユーザーインタフェース２６から検索条件が格納されたコンディションモデルのプレゼンテーションモデルが送信される。アクションクラス２９は利用者からの検索要求を受け取り、コンディションモデルへ変換したのち、データ読込用プロセスビーン３０を生成し、コンディションモデルをパラメータとしてセットし、プロセスビーンを実行する。プロセスビーンは事前に準備されているデータベースへの接続用コネクションを用いてデータベース３１に接続し、対象データを検索したのち、検索条件に合致したデータの集合をデータベースのカーソルとしてアクションへ返す。アクションクラスは次に、カーソルから予め指定された件数分だけのデータを取得し、ヘルパクラス２８の変換メソッドを利用してリストモデルのプレゼンテーションモデルを入手し、利用者側へ送信する。リストモデルのプレゼンテーションモデルは最終的にＸＭＬ表現形式に変換され、ＸＳＬファイル２７によってＨＴＭＬ出力レイアウトに変換されたのちに利用者側へ送信される。
【００３４】
図１７に更新機能の処理手順を示す。利用者側ユーザーインタフェース３２から更新対象データのデータＩＤが送信される。アクションクラス    は利用者からの検索要求を受け取り、ロックマネージャ３５に対して当該データＩＤがすでに別の利用者によって更新作業中でないかどうかを確認する。その後、ロックマネージャに対してロック処理を行う。次にアクションクラス    はデータ読込用プロセスビーン３７を生成し、データＩＤをパラメータとしてセットしたのち、プロセスビーンを実行する。プロセスビーンは事前に準備されているデータベースへの接続用コネクションを用いてデータベース３８に接続し、対象データを取得したのち、データをストアモデル形式に変換して呼び出し元のアクションクラスへ返す。アクションクラスはヘルパクラス３４の変換メソッドを呼び出し、更新モードとしてストアモデルをプレゼンテーションモデルに変換する。更新モードにおけるプレゼンテーションモデルは、参照先のマスタモデルの情報がすべて含まれる形式となっている。その後、アクションクラスは生成されたプレゼンテーションモデルを利用者側に返す。プレゼンテーションモデルは最終的にＸＭＬ表現形式に変換され、ＸＳＬファイル３３によってＨＴＭＬ出力レイアウトに変換されたのちに利用者側へ送信される。ここで送信されるプレゼンテーションモデル中のマスタモデルには、すべての選択肢が含まれており、モデル定義スキーマ中に記載された情報から、ＸＳＬＴ処理によって選択肢がＨＴＭＬにおけるコンボボックス、チェックボックス、ラジオボタンのいずれかに展開される。以上の手順までで更新対象データをロックし、編集用のプレゼンテーションモデルを利用者側に送信することが可能となる。ここで通信はいったん終了する。次に、利用者側が編集完了データを送信する手順を図１８に示す。利用者側３９において編集されたデータはプレゼンテーションモデル形式でアクションクラス４３に送信される。アクションクラスはヘルパクラス４１の変換メソッドを呼び出し、プレゼンテーションモデルをストアモデルに変換する。次にアクションクラスはプロセスビーン４４を生成し、更新対象ストアモデルを引渡す。プロセスビーンは事前に準備されているデータベースへの接続用コネクションを用いてデータベース４５に接続し、データベースに対する更新作業を行なう。正常終了後、アクションクラスはロックマネージャ４２に登録されたロック情報を消去したのち、更新完了したストアモデルをヘルパクラス４１の変換メソッドを用いてプレゼンテーションモデルに変換し、利用者側に返す。プレゼンテーションモデルは最終的にＸＭＬ表現形式に変換され、ＸＳＬファイル４０によってＨＴＭＬ出力レイアウトに変換されたのちに利用者側へ送信される。
【００３５】
図１９に新規作成機能の処理手順を示す。利用者側４９からの新規データ作成要求をアクションクラス４９が受け取ると、対象データの新規ストアモデルを生成し、ヘルパクラス４８の変換メソッドを用いてプレゼンテーションモデルに変換し、利用者側に返す。プレゼンテーションモデルは最終的にＸＭＬ表現形式に変換され、ＸＳＬファイル４７によってＨＴＭＬ出力レイアウトに変換されたのちに利用者側へ送信される。以上の手順までで新規入力用のプレゼンテーションモデルを利用者側に送信することが可能となる。このとき、保存対象となるストアモデルのプライマリキー（当該ストアモデルの識別子）は、仮の値が設定されている。ここで通信はいったん終了する。次に、利用者側が新規入力データを送信する手順を図２０に示す。利用者側５０から新規入力されたプレゼンテーションモデルはアクションクラス５４に送信される。アクションクラスはヘルパクラス５２の変換メソッドを呼び出し、プレゼンテーションモデルをストアモデルに変換する。次にアクションクラスはプロセスビーン５５を生成し、ストアモデルを引渡す。プロセスビーンは事前に準備されているデータベースへの接続用コネクションを用いてデータベース５６に接続し、データベースに対する登録作業を行なう。このとき、仮値であるプライマリキーを、実際にデータベースへ格納するための値に変更する作業もあわせて行う。正常終了後、登録が完了したストアモデルをヘルパクラス５２の変換メソッドを用いてプレゼンテーションモデルに変換し、利用者側に返す。プレゼンテーションモデルは最終的にＸＭＬ表現形式に変換され、ＸＳＬファイル５１によってＨＴＭＬ出力レイアウトに変換されたのちに利用者側へ送信される。
【００３６】
図２１に削除機能の処理手順を示す。利用者側５７から削除対象データをアクションクラス５９が受け取ると、対象データへの更新ロックをロックマネージャ５８から取得後、削除処理を行うプロセスビーン６０を生成し、実際の削除処理を行う。プロセスビーンは事前に準備されているデータベースへの接続用コネクションを用いてデータベース６１に接続し、データベースに対する削除作業を行なう。正常終了後、当該対象データへの更新ロックを解除し、指定されたＨＴＭＬを利用者画面に表示させる。
【００３７】
本実施の形態において特徴的なことは、業務アプリケーションの基本機能を表示、一覧表示、新規作成、更新、削除の５つに集約したこと、対象データをＷｅｂアプリケーションにおいて有効なストアモデル、プレゼンテーションモデル、リストモデル、コンディションモデル、マスタモデルといった基本データ要素に区分したこと、各モデルの相互変換を行う機能を提供するヘルパクラスという考え方を導入したこと、そしてこれらの組み合わせによって業務アプリケーションを体系的に構築する手法を示したことである。さらに、これらを実現するソースコードを、設定ファイルから完全に自動生成するための仕組みを提供することで、開発生産性を著しく高めている。すなわち、従来のＷｅｂアプリケーション開発においては、利用者の要求に応じてその都度、業務ロジックを定義し、画面設計を行うという開発スタイルであったが、本実施の形態では、利用者は予め用意された基本機能を選択し、組み合わせることで業務アプリケーションを構築するという開発スタイルを提供している。その結果、利用者はプログラム言語やＷｅｂ特有の構造を理解しなくとも、データ項目を指定し、それに附随する基本機能を選択するという手順によってＷｅｂアプリケーションを開発可能とするものである。このため、利用者は半完成品状態のプログラムコードではなく、完全に稼動する実行形式ファイルを入手することができる。なお、本実施の形態で不足する、より個々の業務に特化したアプリケーションロジックの追加方法については、フローチャートの説明のときに併せて説明する。
【００３８】
次に、本実施の形態における処理の流れの概要について図２２に示したフローチャートを用いて説明する。
【００３９】
利用者は対話型システム仕様入力部１への接続処理６２（ステップ１）を行い、プロジェクトファイルを選択処理６３を行う（ステップ２）。その後、ステップ３において、図２３の例に示す入力インタフェースを利用して、システム仕様入力処理６６を行う。入力完了後、これまで入力した値をプロジェクトファイルに保存後、プログラムの自動生成処理を実行する。プログラム自動生成処理は、プログラムソースコードの自動生成６７（ステップ４）、プログラムソースコードのコンパイル６８（ステップ５）および実行形式ファイルの圧縮保存による配布用ファイルの生成６８（ステップ６）から構成される。なお、以上の処理はすべてＷｅｂブラウザ上から行えるものとする。
【００４０】
以下、本実施の形態における上記各処理の詳細について説明する。
【００４１】
ステップ１において、利用者は対話型システム仕様入力部１への接続処理６２を行う。図２３に接続処理の画面例を示す。利用者は、本自動生成処理装置への接続のために利用者毎に設定されている利用者ＩＤ入力部６９とパスワード入力部７０に適切な値を入力し、ログオンボタン部７１を押下する。入力された利用者ＩＤとパスワードは、利用者認証部１２によって認証され、認証が成功するとステップ２へ進む。認証が失敗した場合、以降のステップを実行することはできない。
【００４２】
ステップ２は、新規プロジェクトの開始処理６５、あるいは既存プロジェクトの読込処理６４のいずれかを選択６３する。図２４にプロジェクト選択の画面例を示す。既存プロジェクト読込指定部７２においては、すでに開発中あるいは開発完了のプロジェクト名称が表示されており、いずれかのプロジェクト名称を選択することができる。利用者定義ファイル読込部１１によって、登録済みプロジェクト情報を読み込む。新規プロジェクト開始処理６５においては、新規プロジェクト入力部７３にプロジェクト名称を入力する。決定ボタン７４を押すと、利用者定義ファイル管理部１０に新しいプロジェクト情報格納テーブルを用意する。
【００４３】
次に、本実施の形態において特徴的なシステム仕様入力処理（ステップ３）について説明する。
【００４４】
図２５の画面において、最初に利用者はプロジェクトに追加するモデル名を登録する。モデル名の登録は、モデル名登録部７５に適切な名称を設定するものである。モデル名登録後、当該モデルに関する項目を定義するモデル定義部７６、アクション選定を行うアクション定義部７７、表示時における追加情報を設定するプレゼンテーション定義部７８への入力が可能となる。一つのモデル定義から、対応するストアモデル、プレゼンテーションモデル、コンディションモデル、リストモデル、コンディションモデルのプレゼンテーションモデル、リストモデルのプレゼンテーションモデルに関する定義を導出できる。項目名、型、主キー、マスタ入力形式、自動採番の情報から、ストアモデルに関する定義が決定される。入力フィルタ、入力チェック、入力形式の情報から、プレゼンテーションモデルに関する定義が決定される。各項目が一覧表示時に適用されるかどうかの指定情報から、リストモデルおよびリストモデルのプレゼンテーションモデルに関する定義が決定される。各項目が検索条件として適用されるかどうかの指定情報から、コンディションモデルおよびコンディションモデルのプレゼンテーションモデルに関する定義が決定される。各定義ファイルはＸＭＬ形式で作成され、利用者のプロジェクト情報に蓄積される。
【００４５】
ストアモデルの定義において、マスタ入力形式を指定することにより、選択可能フィールドを用意することができる。ここでは、ラジオボタン、コンボボックス、チェックボックスの３種類のいずれかを指定できる。ラジオボタンならびにコンボボックスは選択肢のいずれか一つだけを選択することができる。チェックボックスは、選択肢の複数を同時に指定することができる
【００４６】
図２５の画面において、アクション定義部７７に値を入力することにより、当該モデルに関する基本的アクションの有無を決定できる。具体的には、モデルの詳細表示、一覧表示、新規作成、更新、削除といった５つのアクションのいずれか（あるいはすべて）を選択することで、モデルに関する操作を決定できる。さらに、各アクションはそれぞれで操作権限を指定することができる。操作権限は「対象アプリケーション」と「権限名」の組み合わせから構成される。例えば操作権限が（ＫＡＩＩＮ，ＵＰＤＡＴＥ）の場合、ＫＡＩＩＮという識別子で示される対象アプリケーションに対して、ＵＰＤＡＴＥ権限を有している場合にのみ、本アクションが利用できることを示している。
【００４７】
アクションの定義において、基本アクションとして提供されている定義以外の、独自のアクションを指定することもできる。この場合、独自業務ロジックとして、本自動生成システムへの追加登録が可能なプロセスビーン形式で業務ロジックを実装し、当該業務ロジックの名称（クラス名）を指定する。この方式により、本自動生成システムで出力されたアプリケーションを拡張することができる。
【００４８】
図２５の画面において、プレゼンテーション定義部７８に値を入力することにより、ＷｅｂＦｏｒｍ上における見た目部分の変更を行なうことができる。レイアウト方法を指定することで、表示レイアウトの構成を選択できる。通常は「標準」が選択されており、これは図２および図３に示すように、タイトル、エラーメッセージ、ナビゲーションバー、対象モデルの表示から構成されるＨＴＭＬ画面レイアウトとして用意されている。ここで特徴的なことは、利用者に見た目部分を詳細に開発してもらうのではなく、本自動生成システムが予め用意したレイアウトから選択することで、見た目部分を決定するという開発スタイルを採用している点である。このようにすることで、利用者はＨＴＭＬの知識を有する必要なしに、見た目を決定することができる。また、プレゼンテーション定義に対応するモデル定義上のラベル名やサイズに関する情報を参照し、見た目を司るＨＴＭＬファイルの生成時において、項目名称にラベル名を使用し、また各項目の入力フィールドの最大幅をサイズ情報から取得する。
【００４９】
図２６の画面において、利用者は開発するＷｅｂアプリケーションに移行する初期データが格納されたＣＳＶファイルの形式を登録する。ＣＳＶファイルはコンマ区切りから構成される文字列であるが、各列が登録したモデルのどの項目に対応するかを指定する。
【００５０】
開発するＷｅｂアプリケーションに関するすべての設定が完了後、利用者は図２７に示す画面よりプログラム生成ボタン７９を押下する。するとただちに本Ｗｅｂアプリケーションを識別するユニークなＩＤ文字列と、作成された本Ｗｅｂアプリケーションをダウンロードするためのパスワード文字列が生成され、図２８に示す画面を用いて利用者に返される。
【００５１】
利用者は本自動生成装置における、Ｗｅｂアプリケーション開発の進捗度合いについて、図２９の画面から調べることができる。本Ｗｅｂアプリケーション識別項目部８０と、パスワード項目部８１に適切な値を入力し、進捗確認ボタン部８２を押下することによって、図３０の画面が表示される。ここで、進捗度合いとして「待機中」「ソースコード生成中」「コンパイル中」「テスト中」「完了」のいずれかを知ることができる。
【００５２】
利用者はＷｅｂアプリケーションの自動生成が完了後、図３１に示す文面から成る電子メールを本自動生成装置より受け取る。これによって利用者はＷｅｂアプリケーションの生成が完了したことを知ることができる。
【００５３】
利用者は図３１に示された電子メール文面中に記載された、ダウンロード用Ｗｅｂページを、Ｗｅｂブラウザを用いてアクセスする。すると図３２に示すダウンロード画面が表示される。ここで、本Ｗｅｂアプリケーション識別項目部８３と、パスワード項目部８４に適切な値を入力し、ダウンロード実行ボタン部８５を押下することによって、本自動生成装置によって作成されたＷｅｂアプリケーションシステムのインストール可能実行ファイルの圧縮形式ファイルを入手することができる。
【００５４】
【発明の効果】
本発明によれば、利用者がアプリケーション中にて取り扱うデータに関するモデル情報、アクション情報、プレゼンテーション情報をそれぞれ入力することにより、当該データの詳細表示、検索絞り込み機能付一覧表示、新規作成、更新、削除といった基本的業務ロジックを実装したＷｅｂアプリケーションを容易かつ迅速に構築することができる。また、構築したＷｅｂアプリケーションの仕様変更についても、プロジェクト管理ファイルを変更することで、簡単に修正作業を行なうことができる。
【００５５】
また、利用者が独自に開発した業務ロジックを割り付けることができるため、自動生成された業務ロジックを超えた、より独自の業務ロジックの利用が行える。
【００５６】
また、画面プログラムの生成に関しては、ＨＴＭＬ形式のテンプレートを指定できるため、自動生成された画面を超えた、よりユーザーフレンドリーなオリジナルの画面によって構成されたＷｅｂアプリケーションを構築することができる。
【００５７】
また、利用者が予め準備したＣＳＶ形式ファイルからのデータ移行処理を行うための変換スクリプトファイルを提供するため、容易に初期データの一括登録を行うことができる。
【図面の簡単な説明】
【図１】本発明によるプログラム自動生成装置の一実施の形態を示した機能ブロック構成図である。
【図２】本発明によるフロント画面の一例を示した画面レイアウト図である。
【図３】本発明による処理画面の一例を示した画面レイアウト図である。
【図４】本発明によるフロント画面のソースプログラムリストの実施例を示す図である。
【図５】本発明による処理画面のソースプログラムリストの実施例を示す図である。
【図６】本発明によるＷｅｂサーバ側で動作するソースプログラムリストの実施例を示す図である。
【図７】本発明によるストアモデルのＸＭＬ形式表現例を示す図である。
【図８】本発明によるプレゼンテーションモデルのＸＭＬ形式表現例を示す図である。
【図９】本発明によるリストモデルのＸＭＬ形式表現例を示す図である。
【図１０】本発明によるリストモデルのプレゼンテーションモデルのＸＭＬ形式表現例を示す図である。
【図１１】本発明によるコンディションモデルのＸＭＬ形式表現例を示す図である。
【図１２】本発明によるコンディションモデルのプレゼンテーションモデルのＸＭＬ形式表現例を示す図である。
【図１３】本発明によるマスタモデルのＸＭＬ形式表現例を示す図である。
【図１４】本発明による生成される各種ファイルの一覧を示す図である。
【図１５】本発明による詳細表示機能の処理手順を示す図である。
【図１６】本発明による一覧表示機能の処理手順を示す図である。
【図１７】本発明による更新機能の処理手順を示す図である。
【図１８】本発明による利用者側が編集完了データを送信する手順を示す図である。
【図１９】本発明による新規作成機能の処理手順を示す図である。
【図２０】本発明による利用者側が新規入力データを送信する手順を示す図である。
【図２１】本発明による削除機能の処理手順を示す図である。
【図２２】本発明による処理の流れの概要について示したフローチャートである。
【図２３】本発明による対話型システム仕様入力部への接続処理画面のレイアウトを示す図である。
【図２４】本発明によるプロジェクト選択の画面のレイアウトを示す図である。
【図２５】本発明によるシステム仕様入力処理画面のレイアウトを示す図である。
【図２６】本発明による初期データが格納されたＣＳＶファイルの形式を登録する画面のレイアウトを示す図である。
【図２７】本発明によるアプリケーション自動生成開始画面のレイアウトを示す図である。
【図２８】本発明によるアプリケーション自動生成ジョブ登録画面のレイアウトを示す図である。
【図２９】本発明によるアプリケーション自動生成進捗確認画面のレイアウトを示す図である。
【図３０】本発明によるアプリケーションの開発状況確認画面のレイアウトを示す図である。
【図３１】本発明によるアプリケーションの開発完了表示画面のレイアウトを示す図である。
【図３２】本発明によるアプリケーションのダウンロード確認画面のレイアウトを示す図である。
【符号の説明】１    ステップ
１  対話型システム仕様入力部
２  モデル定義スキーマ生成部
３  アクション定義スキーマ生成部
４  プレゼンテーション定義スキーマ生成部
５  データ移行スクリプト生成部
６  プログラムコード生成部
７  プログラムコードビルド用スクリプト生成部
８  実行ファイル生成部
９  生成プログラムダウンロード部
１０  利用者定義ファイル管理部
１１  利用者定義ファイル読込部
１２  利用者認証部
１３  実行ファイル付属設定ファイル管理部
１４  実行ファイル付属ライブラリ管理部
１５  タイトル部
１６  画面遷移ボタン部
１７  対象データ操作ボタン部
１８  データ表示部分部
１９  操作ボタン部
２０、２６、３２、３９、４６、５０、５７  利用者側ユーザーインタフェース
２１、２７、３３、４０、４７、５１  ＸＬＳファイル
２２、２８、３４、４１、４８、５２  ヘルパクラス
２３、２９、３６、４３、４９、５４、５９  アクションクラス
２４、３０、３７、４４、５５、６０  プロセスビーン
２５、３１、３８、４５、５６、６１  データベース
３５、４２、５３、５８  ロックマネージャ
６２  システムへの接続処理（ステップ１）
６３  プロジェクトの選択処理（ステップ２）
６４  既存プロジェクト管理ファイル読込処理
６５  新規プロジェクト管理ファイル生成処理
６６  システム仕様入力処理（ステップ３）
６７  プログラム自動生成（ステップ４）
６８  実行形式ファイル生成（ステップ５、６）
６９  利用者ＩＤ入力部
７０  パスワード入力部
７１  ログオンボタン部
７２  既存プロジェクト読込指定部
７３  新規プロジェクト入力部
７４  決定ボタン
７５  モデル名登録部
７６  モデル定義部
７７  アクション定義部
７８  プレゼンテーション定義部
７９  プログラム生成ボタン
８０  アプリケーション識別項目部
８１  パスワード項目部
８２  進捗確認ボタン
８３  アプリケーション識別項目部
８４  パスワード項目部
８５  ダウンロード実行ボタン
【図１】
2004265278.tif 000003
【図２】
2004265278.tif 000004
【図３】
2004265278.tif 000005
【図４】
2004265278.tif 000006
【図５】
2004265278.tif 000007
【図６】
2004265278.tif 000008
【図７】
2004265278.tif 000009
【図８】
2004265278.tif 000010
【図９】
2004265278.tif 000011
【図１０】
2004265278.tif 000012
【図１１】
2004265278.tif 000013
【図１２】
2004265278.tif 000014
【図１３】
2004265278.tif 000015
【図１４】
2004265278.tif 000016
【図１５】
2004265278.tif 000017
【図１６】
2004265278.tif 000018
【図１７】
2004265278.tif 000019
【図１８】
2004265278.tif 000020
【図１９】
2004265278.tif 000021
【図２０】
2004265278.tif 000022
【図２１】
2004265278.tif 000023
【図２２】
2004265278.tif 000024
【図２３】
2004265278.tif 000025
【図２４】
2004265278.tif 000026
【図２５】
2004265278.tif 000027
【図２６】
2004265278.tif 000028
【図２７】
2004265278.tif 000029
【図２８】
2004265278.tif 000030
【図２９】
2004265278.tif 000031
【図３０】
2004265278.tif 000032
【図３１】
2004265278.tif 000033
【図３２】
2004265278.tif 000034