(57)【要約】【課題】分散したＤＢに対する接続をユーザの選択により動的に切り替え、該ＤＢのテーブルへのアクセス処理が可能なウェブアプリケーションプログラムを業務仕様の枠組みから自動生成可能とし、また、同一のＤＢ内の異なるテーブルをユーザの選択により動的に切り替えてアクセス処理が可能なウェブアプリケーションプログラムを業務仕様の枠組みから自動生成可能とし、生産性と保守性に優れたウェブアプリケーションプログラム生成環境を構築すること。【解決手段】コード生成部１０７が、外部記憶装置１０４内の入出力テーブル１０９で指定されるＤＢ（同一のＤＢ又は分散ＤＢ）上の複数のテーブルをそれぞれ定義する業務仕様、及びログイン情報１１０で指定される前記ＤＢへ接続するための接続情報に基づいて「前記複数のテーブルを動的に切り替えてアクセス可能なプログラムコード１１２〜１１４」を生成する構成を特徴とする。【選択図】図１
2005148976.tif 000002
【特許請求の範囲】
【請求項１】
データベースへアクセスするウェブアプリケーションプログラムを生成するプログラム生成装置において、
データベース上の複数のテーブルをそれぞれ定義する複数の定義情報を記憶する第１の記憶手段と、
前記データベースへ接続するための接続情報を記憶する第２の記憶手段と、
前記第１の記憶手段に記憶される複数の定義情報、及び前記第２の記憶手段に記憶される前記接続情報に基づいて「前記複数のテーブルを動的に切り替えてアクセス可能なプログラムコード」を生成する生成手段と、
を有することを特徴とするプログラム生成装置。
【請求項２】
前記データベースは、異なる複数のデータベースであり、
前記データベース上の複数のテーブルは、前記異なる複数のデータベース上にそれぞれ配置されるものであり、
前記第２の記憶手段は、前記複数のデータベースへ接続するための複数の接続情報をそれぞれ記憶することを特徴とする請求項１記載のプログラム生成装置。
【請求項３】
前記データベース上の複数のテーブルは、同一のデータベース上に配置されることを特徴とする請求項１記載のプログラム生成装置。
【請求項４】
前記データベースは、ローカル接続可能なデータベース又はリモート接続可能なデータベースを含むことを特徴とする請求項１〜３のいずれかに記載のプログラム生成装置。
【請求項５】
前記異なる複数のデータベースは、ローカル接続可能なデータベース及びリモート接続可能なデータベースを含むことを特徴とする請求項２記載のプログラム生成装置。
【請求項６】
データベースへアクセスするウェブアプリケーションプログラムを生成するためのプログラム生成方法において、
指定されるデータベース上の複数のテーブルをそれぞれ定義する複数の定義情報、及び前記データベースへ接続するための接続情報に基づいて「前記複数のテーブルを動的に切り替えてアクセス可能なプログラムコード」を生成する生成工程を有することを特徴とするプログラム生成方法。
【請求項７】
請求項６に記載されたプログラム生成方法を実行するためのプログラム。
【請求項８】
請求項６に記載されたプログラム生成方法を実行するためのプログラムをコンピュータが読み取り可能に記憶した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウェブ（Ｗｅｂ）アプリケーション開発支援システムにおいて、ユーザが動的にデータベース（ＤＢ）の切り替えが可能なウェブアプリケーションプログラムの一連のプログラムコードを業務仕様という枠組みの中から自動生成可能なプログラム生成装置およびプログラム生成方法およびプログラムおよび記録媒体に関するものである。
【背景技術】
【０００２】
従来、リレーショナルデータベースシステムなど、複数のテーブルに分かれて格納されているデータベース（ＤＢ）システムの場合、ＤＢを構成する複数の関連あるテーブルに対してデータ入力を行わなければならなかった。
【０００３】
また、膨大なデータを扱い、しかも適切に所望のデータにアクセスするためには、ＤＢ固有のデータ構造を意識する必要があった。
【０００４】
この問題に対し特開平６-６８１５１号公報（特許文献１）の「データベースアクセス方法および装置」では、ＤＢのデータ構造を論理的に構築したスキーマを管理し表示するブラウザ手段により、ＤＢアクセス手段を備える方法を提案している。この方法により、ユーザはＤＢの構造を意識することなく、効率よくＤＢの操作が行えるようになった。
【特許文献１】特開平６-６８１５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１では、テーブルの切り替えが行えるのは単一のＤＢシステム内のリレーションが張られているテーブルのみとなっており、分散型ＤＢに対してのアクセス手段については何ら考慮がなされていない。
【０００６】
そのため、対象となるＤＢシステム以外のＤＢにアクセスしようとする場合、そのＤＢ用のアプリケーションを一から開発しなくてはならないという問題点があった。
【０００７】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、データベースへアクセスするウェブアプリケーションプログラムを生成するプログラム生成装置（プログラム生成方法）において、指定されるデータベース（同一のデータベース又は分散データベース）上の複数のテーブルをそれぞれ定義する複数の定義情報、及び前記データベースへ接続するための接続情報に基づいて「前記複数のテーブルを動的に切り替えてアクセス可能なプログラムコード」を生成することにより、分散したデータベースに対する接続をユーザの選択により動的に切り替え、該データベースのテーブルへのアクセス処理が可能なウェブアプリケーションプログラム、又は同一のデータベース内の異なるテーブルをユーザの選択により動的に切り替えてアクセス処理が可能なウェブアプリケーションプログラムを業務仕様の枠組みから選択的に自動生成でき、生産性と保守性に優れたウェブアプリケーションプログラムの領域を広げることができる優れたプログラム生成環境を構築できるプログラム生成装置およびプログラム生成方法およびプログラムおよび記録媒体を提供することである。
【課題を解決するための手段】
【０００８】
本発明の第１の発明は、データベースへアクセスするウェブアプリケーションプログラムを生成するプログラム生成装置において、データベース上の複数のテーブルをそれぞれ定義する複数の定義情報を記憶する第１の記憶手段（図１に示す外部記憶装置１０４内の入出力テーブル１０９，図４）と、前記データベースへ接続するための接続情報を記憶する第２の記憶手段（図１に示す外部記憶装置１０４内のログイン情報１１０，図５）と、前記第１の記憶手段に記憶される複数の定義情報、及び前記第２の記憶手段に記憶される前記接続情報に基づいて「前記複数のテーブルを動的に切り替えてアクセス可能なプログラムコード（図１に示すＪＳＰコード１１２，サーブレットコード１１３，Ｂｅａｎコード１１４）」を生成する生成手段（図１に示す処理装置１０３内のコード生成部１０７，図１０〜図１５に示す各ステップ）とを有することを特徴とする。
【０００９】
本発明の第２の発明は、前記データベースは、異なる複数のデータベースであり（図６，図８に示す分散したＤＢシステム）、前記データベース上の複数のテーブルは、前記異なる複数のデータベース上にそれぞれ配置されるものであり、前記第２の記憶手段は、前記複数のデータベースへ接続するための複数の接続情報をそれぞれ記憶することを特徴とする。
【００１０】
本発明の第３の発明は、前記データベース上の複数のテーブルは、同一のデータベース（図７に示すＤＢシステム）上に配置されることを特徴とする。
【００１１】
本発明の第４の発明は、前記データベースは、ローカル接続可能なデータベース（図７に示す内部ＤＢシステム）又はリモート接続可能なデータベース（図８に示す外部ＤＢシステム）を含むことを特徴とする。
【００１２】
本発明の第５の発明は、前記異なる複数のデータベースは、ローカル接続可能なデータベース及びリモート接続可能なデータベース（図７に示す内部ＤＢシステム及び外部ＤＢシステム）を含むことを特徴とする。
【００１３】
本発明の第６の発明は、データベースへアクセスするウェブアプリケーションプログラムを生成するためのプログラム生成方法において、指定されるデータベース上の複数のテーブルをそれぞれ定義する複数の定義情報、及び前記データベースへ接続するための接続情報に基づいて「前記複数のテーブルを動的に切り替えてアクセス可能なプログラムコード」を生成する生成工程（図１０〜図１５に示す各ステップ）を有することを特徴とする。
【００１４】
本発明の第７の発明は、請求項６に記載されたプログラム生成方法を実行するためのプログラムであることを特徴とする。
【００１５】
本発明の第８の発明は、請求項６に記載されたプログラム生成方法を実行するためのプログラムを記録媒体にコンピュータが読み取り可能に記憶させたことを特徴とする。
【発明の効果】
【００１６】
本発明によれば、データベースへアクセスするウェブアプリケーションプログラムを生成するプログラム生成装置（プログラム生成方法）において、指定されるデータベース（同一のデータベース又は分散データベース）上の複数のテーブルをそれぞれ定義する複数の定義情報、及び前記データベースへ接続するための接続情報に基づいて「前記複数のテーブルを動的に切り替えてアクセス可能なプログラムコード」を生成するので、分散したデータベースに対する接続をユーザの選択により動的に切り替え、該データベースのテーブルへのアクセス処理が可能なウェブアプリケーションプログラム、又は同一のデータベース内の異なるテーブルをユーザの選択により動的に切り替えてアクセス処理が可能なウェブアプリケーションプログラムを業務仕様の枠組みから選択的に自動生成でき、生産性と保守性に優れたウェブアプリケーションプログラムの領域を広げることができる優れたプログラム生成環境を構築できる等の効果を奏する。
【発明を実施するための最良の形態】
【００１７】
以下、図を参照して本発明のアプリケーション開発システムについて説明する。
【００１８】
図１は、本発明の一実施形態を示すプログラム生成装置の構成を示すブロック図である。
【００１９】
図において、１０１は入力装置で、キーボードやマウス等のポインティングデバイス等に相当し、業務仕様情報（データ項目のデータベースへの配置とデータ項目間の関係、即ちあるデータがどのような条件のもとにどのようなデータから求められるかを示す情報等）の入力を行うことが可能である。
【００２０】
１０２は表示装置で、ＣＲＴ，ＬＣＤ等で構成され、業務仕様情報の入力画面や、該入力画面から入力された業務仕様情報、生成されたプログラムコード等を表示可能である。１０４はハードディスク等の外部記憶装置で、入力された業務仕様（データベース上の複数のテーブルをそれぞれ定義した定義情報）を記憶するための入出力テーブル１０９、入力されたデータベースへ接続するための接続情報を記憶するログイン情報１１０，入力された生成するウェブアプリケーションのアプリケーション名１１１，生成されたプログラムコード（ＪＳＰコード１１２，サーブレット（Ｓｅｒｖｌｅｔ）コード１１３，Ｂｅａｎコード１１４）等を記憶するものである。
【００２１】
１０３は処理装置で、ＣＰＵ，ＲＯＭ，ＲＡＭ等から構成され、ＣＰＵがＲＯＭ，外部記憶装置１０４又はその他の記録媒体に格納されるプログラムをＲＡＭ上にロードして実行することにより実現されるものであり、画面制御部１０５，コード生成部１０７を備える。
【００２２】
画面制御部１０５は、入力装置１０１から業務仕様情報の入力を行うために表示装置１０２の画面（不図示）を制御する業務仕様記述部１１６を有する。
【００２３】
コード生成部１０７は、入力装置１０１から入力された又は外部記憶装置１０４から読み出された業務仕様情報に基づいてプログラムコード（ＪＳＰコード１１２，サーブレット（Ｓｅｒｖｌｅｔ）コード１１３，Ｂｅａｎコード１１４）を生成し、外部記憶装置１０４に記憶させる。
【００２４】
１０８は全体制御部で、画面制御部１０５，コード生成部１０７等の各部の制御を行う。
【００２５】
図２は、図１に示したコード生成部１０７によって生成したサーブレット、ＪＳＰ、およびＢｅａｎを利用したウェブアプリケーションシステムの全体構成の一例を示す図である。
【００２６】
コード生成部１０７によって生成されたサーブレット、ＪＳＰ、およびＢｅａｎは、それぞれ実行可能な状態で、サーバ３０４側のアプリケーションサーバ３０６上に配置される。
【００２７】
このＷｅｂアプリケーションシステムは、クライアント３０１からウェブブラウザ３０２によって利用される。ウェブブラウザ３０２からＪＳＰ３０９にアクセスすることにより、ＨＴＭＬページ３０３を生成し、クライアント３０１側に返送する。そして、ウェブブラウザ３０２上には、ＪＳＰ３０９から送信されるＨＴＭＬページ３０３が表示される。
【００２８】
また、Ｗｅｂブラウザ３０２からのリクエストは、ＨＴＴＰ経由でサーバ３０４側に送信される。サーバ３０４にはＨＴＴＰサーバ３０５とアプリケーションサーバ３０６があり、アプリケーションサーバ３０６にはサーブレットやＪＳＰの実行環境が含まれている。
【００２９】
サーバ３０４側にリクエストが送信されると、リクエストに応じて該当するサーブレット３０７が起動される。サーブレット３０７は、対応するＢｅａｎ３０８に処理を要求する。さらに、Ｂｅａｎ３０８は、サーブレット３０７からの要求に応じてＤＢアクセスオブジェクト３１０ａ，ＤＢアクセスオブジェクト３１０ｂを利用して内部データベース３１１ａ，外部データベース３１１ｂにアクセスし、その処理結果をＢｅａｎ３０８内に保持する。
【００３０】
次に、サーブレット３０７からＪＳＰ３０９にＢｅａｎ３０８を渡し、ＪＳＰ３０９を呼び出す。ＪＳＰ３０９は、Ｂｅａｎ３０８で保持する処理結果を参照して、ＨＴＭＬページを生成し、クライアント３０１側に返送する。クライアント３０１側に返送されたＨＴＭＬページは、Ｗｅｂブラウザ３０２上に表示される。
【００３１】
サーブレット３０７は、Ｗｅｂブラウザ３０２からのリクエストの受け付け、Ｂｅａｎ３０８への処理要求、およびＪＳＰ３０９の呼び出しという、それぞれの間をつなぎ、制御する役割を持つ。ＪＳＰ３０９はＨＴＭＬページを出力するための表示に関することを受け持ち、Ｂｅａｎ３０８はデータベース３１１ａ，３１１ｂへのアクセス等の業務に関する処理を受け持つ。
【００３２】
なお、Ｂｅａｎ３０８やＪＳＰ３０９を利用せずにサーブレット３０７のみで（又は、サーブレット３０７やＢｅａｎ３０８を利用せずにＪＳＰ３０９のみで）、Ｗｅｂブラウザ３０２からのリクエストを処理することは可能であるが、Ｂｅａｎ３０８やＪＳＰ３０９を利用してそれぞれの役割を明確に分離することで、機能分担を簡潔に把握することができる。
【００３３】
なお、Ｂｅａｎ３０８は、内部データベースアクセス用のＢｅａｎと外部データベースアクセス用のＢｅａｎとに分けて実装してもよい。
【００３４】
また、内部データベースが複数あってもよいし、外部データベースが複数あってもよい。
【００３５】
図３は、本発明のプログラム生成装置における第１の制御処理手順の一例を示すフローチャートであり、図１に示した処理装置１０３の全体制御部１０８の動作に対応する。なお、Ｓ１０１〜Ｓ１０５は各ステップを示す。
【００３６】
図１に示した処理装置１０３は、コード生成する業務仕様（入出力テーブル）の入力を行う入力モードと、入力された業務仕様（入出力テーブル）からプログラムコードを生成する生成モードとを有する。
【００３７】
まず、全体制御部１０８が起動されると、ステップＳ１０１において、入力装置１０１からオペレータの指示により選択されたモードが生成モードか入力モードかを判定し、入力モードが選択されたと判定した場合には、ステップＳ１０２に進み、全体制御部１０８は、画面制御部１０５を起動する。
【００３８】
起動された画面制御部１０５は、ステップＳ１０３において、業務仕様記述部１１６により業務仕様入力画面（不図示）を表示させ、オペレータからの業務仕様の一形態である入出力テーブル（詳細は図４に示す）への項目入力，ログイン情報（詳細は図５に示す）の入力，生成するウェブアプリケーションのアプリケーション名１１１の入力等を受け付け、外部記憶装置１０４に格納し（入出力テーブル１０９，ログイン情報１１０，アプリケーション名１１１）、処理を終了する。
【００３９】
一方、ステップＳ１０１において、入力装置１０１からオペレータの指示により選択されたモードが生成モードであると判定した場合には、ステップＳ１０４に進み、全体制御部１０８は、外部記憶装置１０４に格納された入出力テーブルを読み出し、該読み出した入出力テーブル内の業務仕様情報に基づいてコード生成を行う。
【００４０】
そして、ステップＳ１０５において、全体制御部１０８は、生成されたコードを、オペレータの指示により表示装置１０２に表示したり、外部記憶装置１０４に書き込む出力処理を行う。
【００４１】
以下、図４を参照して、本発明のプログラム生成装置における業務仕様情報（入出力テーブル）について説明する。図示しない入力画面から入力される業務仕様情報は、内部的には図４に示すような入出力テーブルの形式で保存される。
【００４２】
図４は、本発明のプログラム生成装置における業務仕様情報（図１に示した入出力テーブル１０９）について説明する模式図であり、ウェブアプリケーションにおけるＤＢの動的な切り替え機能とそれを表示するための画面の定義を記述した業務仕様を入出力テーブルの形式で示したものに対応する。
【００４３】
列１は、ＤＢシステム名を示したものであり、ＤＢシステムを利用するときに識別用として用いる。
【００４４】
列２は、データファイル番号を示したものであり、データファイルを構成するデータ項目として列３のデータファイル項目枝番がある。
【００４５】
列４はデータファイルの名称であり、列５はデータファイル項目枝番に対応する各データ項目の名称である。
【００４６】
列６は、その項目の種別を示したＩＯ区分である。ＩＯ区分はそれぞれ、ファイルであることを示す「Ｆ」、表示項目であることを示す「Ｄ」、複数のテーブルをまとめて、一つの画面で制御できる機能があることを示す「Ｇ１」と「Ｇ２」がある。この制御については別途下記で説明する。
【００４７】
即ち、列６のＩＯ区分で「Ｆ」が指定されている場合には、その行のデータはデータ項目を定義し、「Ｄ」が指定されている場合には、その行のデータは画面表示項目を定義し、「Ｇ１」，「Ｇ２」が指定されている場合には、その行のデータはＤＢ・テーブルの切り替え機能を定義するものとなる。
【００４８】
列７は、各項目の桁数を表している。列８は、表示方法を示しており、「Ｓ」の場合は検索用の項目として表示され、「Ｈ」の場合は検索結果を表示する項目として扱われる。また、検索用にも結果用にも使用される項目は「Ｓ，Ｈ」として定義する。列９は、項目の項番を示している。
【００４９】
図５は、図１に示したログイン情報を説明するための模式図である。
【００５０】
図において、６０１はＤＢシステム名で、生成されるアプリケーションで接続するＤＢシステムの名称に対応する。６０２はＪＤＢＣドライバで、ＤＢシステムに接続する際に用いるドライバである。６０３はＵＲＬ，６０４はユーザ名，６０５はパスワードで、ＤＢシステムに接続する際に用いるＵＲＬ，ユーザ名，パスワードに対応する。
【００５１】
なお、入出力テーブル１０９，ログイン情報１１０，アプリケーション名１１１は、業務仕様記述部１１６により表示される業務仕様入力画面（不図示）から入力する構成であってもよいし、その他の任意のアプリケーションにより生成されるテキストファイル，ＣＳＶファイル，その他のファイル形式のファイルであってもよい。
【００５２】
以下、図６〜図８を参照して、ＤＢの動的な切り替えについて説明する。
【００５３】
図６〜図８は、本発明のプログラム生成装置により生成されるアプリケーションによるＤＢ接続切り替えを説明するためのＤＢ構成図であり、特に図６は外部（リモート）分散ＤＢ構成図に対応し、図７は内部（ローカル）同一ＤＢ構成図に対応し、図８は内部（ローカル）ＤＢ及び外部（リモート）ＤＢによる分散ＤＢ構成図に対応する。
【００５４】
ＤＢの動的な切り替えとは、一つの生成された画面において検索や更新の対象となるＤＢ・テーブルを画面上の操作で選択することで、対象ＤＢ・テーブルを切り替えることができる機能を示している。
【００５５】
本発明では、図６〜図８に示すように、切り替え対象のＤＢ・テーブルを仮想的に一つのテーブルとして制御する手段をとる（図６〜図８に示す仮想ＤＢ４０１）。
【００５６】
具体的には、予め定義してあるログイン情報１１０（ＪＤＢＣドライバ，ＵＲＬ，ユーザ名，パスワード）を入出力テーブル１０９の列６に「Ｇ２」が定義されている行（図４の例では「行２」，「行３」）の列３の値（図４の例では「ＣｌｉＤＢ／ＣｌｉｎｉｃＭ」，「ＤｒｕＤＢ／ＤｒｕｇｓｔｏｒｅＭ」）と照らし合わせて取得し、その情報をアプリケーションに付加する。アプリケーション生成後に画面上からユーザがテーブルを選択すれば、上記情報を利用してＤＢシステム・テーブルへのアクセスを行うことが可能となっている。
【００５７】
この切り替えの際、図６に示すような異なる外部ＤＢシステム同士の切り替えの場合、及び図８に示すような外部ＤＢシステムと内部のＤＢシステムとを切り替える場合（即ち、分散型ＤＢの場合）は、ＤＢシステムそのものの切り替えを生成されたアプリケーション内で行うこととなる。
【００５８】
また、図７に示すような同一ＤＢシステム内での切り替えの場合は、上記の外部ＤＢの切り替えの場合と同様にして、ＤＢシステム内のテーブルをその都度切り替えてセレクトすることを生成されたアプリケーション内で行うこととなる。
【００５９】
このような制御方法により、生成されたアプリケーションのユーザは、ＤＢシステムの物理的な構成や接続を意識することなく切り替えが行えるようになる。
【００６０】
例えば、図６に示すように、外部のＤＢシステムに接続されたテーブル同士を交互に切り替えたり、図７に示すように、内部のＤＢ内のテーブルを切り替えたり、図８に示すように、内部と外部のＤＢシステムを組み合わせたものでも、そのことを意識することなく切り替えることが可能となる。
【００６１】
切り替えの対象となるＤＢ・テーブルは、図４で示した入出力テーブル１０９の列６で「Ｇ２」が指定されている行（図４の例では「行２」「行３」）の列３の値（図４の例では「ＣｌｉＤＢ／ＣｌｉｎｉｃＭ」，「ＤｒｕＤＢ／ＤｒｕｇｓｔｏｒｅＭ」）となる。この値の記述ルールは、ＤＢシステム名／テーブル名のように「／」記号で区切って表す。
【００６２】
このＤＢ切り替え機能を使用すれば、例えばユーザが薬を検索したいといった場合には、ＣｌｉＤＢ（例えば内部ＤＢシステム）に接続されている病院テーブル（ＣｌｉｎｉｃＭ）とＤｒｕＤＢ（例えば外部ネットワークに接続されている外部ＤＢシステム）に接続されている薬局テーブルを、ユーザが操作画面（後述する図９に示す）上から選択することで、ＤＢの切り替えを行いその検索対象をリアルタイムに切り替えることが可能となる。
【００６３】
このように、複数のＤＢ・テーブルをまとめる仮想的なテーブルの生成は、上記の図４に示した入出力テーブル１０９の「行１」〜「行３」の定義を読み込んで行われる。
【００６４】
まず、入出力テーブル１０９において、列６のＩＯ区分が「Ｇ１」の行（図４の例では「行１」）をセレクトする。この行は、対象となるＤＢ・テーブルを仮想的に一つにまとめるための項目となる。対象となるＤＢ・テーブルは、ＩＯ区分に「Ｇ２」が指定されている行２，行３に記述されている。
【００６５】
ＩＯ区分に「Ｇ２」が指定された行２，行３の列３のデータファイル項目枝番はＤＢ／テーブル名を示している。なお、生成されたアプリケーションの操作画面に表示されるテーブル名称（後述する図９の２０１ａ，２０１ｂ）は列５で指定されているデータファイル項目名（図４の例では、「病院」，「薬局」）となる。
【００６６】
図９は、本発明のプログラム生成装置により生成されるウェブアプリケーションにおける操作画面の一例を示す模式図である。
【００６７】
上述したような生成方法により生成された操作画面は、図９の左上にあるようなプルダウン式の選択メニュー２０１と切り替え検索ボタン２０２が自動的に生成され、選択メニュー２０１の中に、２０１ａ，２０１ｂに示すように、図４の列６で「Ｇ２」が定義された行のデータファイル項目名がテーブル名称として表示される。この選択メニュー２０１でテーブル名称（２０１ａ又は２０１ｂ）を選択し、切り替え検索ボタン２０２を押下すれば、ＤＢ・テーブルの接続を切り替え、選択したテーブルが検索・更新の対象となる。
【００６８】
なお、検索のための処理は、検索条件入力欄２０３に値を入力し、検索ボタン２０４を指示することで行われる。
【００６９】
また、更新のための処理は、検索結果表示入力覧２０５で値を変更入力し、更新ボタン２０６を指示することで行われる。
【００７０】
さらに、検索条件入力欄２０３に値を入力した状態で、切り替え検索ボタン２０２を指示すると、ＤＢ・テーブルの接続を切り替え、該切り替えられたＤＢ・テーブルに対して、該検索条件入力欄２０３に入力されている検索条件での検索処理が実行される。これにより、同一の検索条件で、ＤＢ・テーブルを切り替えて順次検索することが可能である。
【００７１】
以下、図１０〜図１４のフローチャートを参照して、図１に示したコード生成部１０７によるコード生成処理について説明する。
【００７２】
図１０は、本発明の第２の制御処理手順の一例を示すフローチャートであり、図１に示したコード生成部１０７によるコード生成処理に対応する。なお、Ｓ２０１〜Ｓ２０７は各ステップを示す。
【００７３】
まず、ステップＳ２０１において、外部記憶装置１０４に記憶された入出力テーブル１０９から１行（１データ項目）を読み取り、ステップＳ２０２において、列６のＩＯ区分の値を取得し、ステップＳ２０３において、取得したＩＯ区分の値が「Ｇ１」であるか否かをチェックする。
【００７４】
ステップＳ２０３で、列６のＩＯ区分の値に「Ｇ１」が定義されていないと判定した場合には、そのままステップＳ２０５に進む。
【００７５】
一方、ステップＳ２０３で、列６のＩＯ区分の値に「Ｇ１」が定義されていると判定した場合には、ステップＳ２０４において、入出力テーブル１０９から列６のＩＯ区分の値が「Ｇ２」となる行を全て取得してグループ化し、列２，列３，列４の情報をグループの「ＤＢ情報」としてＲＡＭ内のワークエリアに書き込む。
【００７６】
次に、ステップＳ２０５において、画面表示項目，ファイル項目情報の取得処理（図１１）を行い、ステップＳ２０６に進む。
【００７７】
ステップＳ２０６において、入出力テーブル１０９内の全行（全データ項目）について、ステップＳ２０１〜Ｓ２０５の処理を終了したか否かを判定し、まだ終了していないと判定した場合には、ステップＳ２０１の処理に戻る。
【００７８】
一方、ステップＳ２０６で、入出力テーブル１０９内の全行（全データ項目）について、ステップＳ２０１〜Ｓ２０５の処理を終了したと判定した場合には、ステップＳ２０７の処理に進む。
【００７９】
次に、ステップＳ２０７において、ＪＳＰ，サーブレット，Ｂｅａｎ生成処理を行い、処理を終了し、図２のフローチャートに戻る。
【００８０】
図１１は、本発明の第３の制御処理手順の一例を示すフローチャートであり、図１０に示したステップＳ２０５の画面表示項目，ファイル項目情報の取得処理に対応する。なお、Ｓ３０１〜Ｓ３０４は各ステップを示す。
【００８１】
まず、ステップＳ３０１において、列６のＩＯ区分の値が「Ｄ」であるか否かをチェックする。
【００８２】
ステップＳ３０１で、列６のＩＯ区分の値に「Ｄ」が定義されていると判定した場合には、「画面表示項目指定情報」と判定して、ステップＳ３０２に進み、図１０のステップＳ２０１で入出力テーブル１０９から読み出した１行のデータ（列２〜列８）を「画面表示項目指定情報」として取得してＲＡＭ内のワークエリアに書き込み、ステップＳ３０３に進む。
【００８３】
一方、ステップＳ３０１で、列６のＩＯ区分の値に「Ｄ」が定義されていないと判定した場合には、そのままステップＳ３０３に進む。
【００８４】
ステップＳ３０３で、列６のＩＯ区分の値に「Ｆ」が定義されていると判定した場合には、ファイル項目定義情報と判定して、ステップＳ３０４に進み、図１０のステップＳ２０１で入出力テーブル１０９から読み出した１行のデータ（列１〜列７）を「ファイル項目定義情報」として取得してＲＡＭ内のワークエリアに書き込む。
【００８５】
一方、ステップＳ３０３で、列５のＩＯ区分の値に「Ｆ」が定義されていないと判定した場合には、そのまま処理を終了し、図１０のフローチャートにリターンする。
【００８６】
図１２は、本発明の第４の制御処理手順の一例を示すフローチャートであり、図１０のステップＳ２０７に示したＪＳＰ，サーブレット，Ｂｅａｎ生成処理に対応する。なお、Ｓ４０１〜Ｓ４０３は各ステップを示す。
【００８７】
まず、ステップＳ４０１において、外部記憶装置１０４に格納されたログイン情報１１０，アプリケーション名１１１，ＲＡＭ内のワークエリアに記憶されたＤＢ情報，ファイル項目情報に基づいて、各データベースへの接続，データ検索，データ更新を行うＢｅａｎ１１４を生成する（詳細は図１３に示す）。
【００８８】
次に、ステップＳ４０２において、外部記憶装置１０４に格納されたアプリケーション名１１１，ＲＡＭに記憶されたＤＢ情報，画面用情報に基づいて、ウェブブラウザからの入力データを取得してＢｅａｎ１１４，ＪＳＰ１１２を呼び出しウェブアプリケーション全体を制御するサーブレット１１３を生成する（詳細は図１４に示す）。
【００８９】
次に、ステップＳ４０３において、外部記憶装置１０４に格納されたアプリケーション名１１１，ＲＡＭに記憶されたＤＢ情報，画面用情報，ファイル項目情報に基づいて、図９に示した操作画面のウェブブラウザへの表示を制御するＪＳＰ１１２を生成し（詳細は図１５に示す）、処理を終了して、図１０のフローチャートに戻る。
【００９０】
図１３は、本発明の第５の制御処理手順の一例を示すフローチャートであり、図１２のステップＳ４０１に示したＢｅａｎ生成処理に対応する。なお、Ｓ５０１〜Ｓ５０５は各ステップを示す。
【００９１】
まず、ステップＳ５０１において、Ｂｅａｎファイルを生成する。なお、Ｂｅａｎファイル名は、例えば、図示しない入力画面より入力されたアプリケーション名に文字列「Ｂｅａｎ」を付加し拡張子を「ｊａｖａ（登録商標）」としたＢｅａｎファイルとする。また、このとき、作成したＢｅａｎファイル内の先頭に、「パッケージ名（例えば、アプリケーション名に文字列「Ｂｅａｎ」を付加したもの）の宣言、「ｊａｖａ（登録商標）．ｓｑｌ」パッケージのインポート、Ｊａｖａ（登録商標）Ｂｅａｎｓを利用するために必要なインタフェースの実装等を行うコード、データベース接続オブジェクトの宣言、ＳＱＬステートメントオブジェクトの宣言、結果セットオブジェクトの宣言等を行うコード」を格納しておく。
【００９２】
次に、ステップＳ５０２において、外部記憶装置１０４に格納されたログイン情報１１０，ＲＡＭに記憶されたＤＢ情報に基づいて「各ＤＢに対する各ＤＢ接続用メソッドに対応する各コード」をＢｅａｎファイル内に生成する。
【００９３】
詳細には、「ログイン情報１１０内のＤＢシステム名６０１に対応するＪＤＢＣドライバ６０２を用いてドライバクラスをロードし、さらに、ログイン情報１１０内のＤＢシステム名６０１に対応するＵＲＬ６０３，ユーザ名６０４，パスワード６０５を用いてデータベースへ接続する処理を行い、さらに、ＳＱＬステートメントオブジェクトを生成する処理を行う各ＤＢ毎のＤＢ接続用メソッドに対応するコード」をＢｅａｎファイル内に生成する。
【００９４】
次に、ステップＳ５０３において、ＲＡＭに記憶されたＤＢ情報に基づいて「各ＤＢに対する各ＤＢ切断用メソッドに対応する各コード」をＢｅａｎファイル内に生成する。
【００９５】
詳細には、「ＳＱＬステートメントオブジェクトとデータベース接続オブジェクトをクローズする処理を行う各ＤＢ毎のＤＢ切断用メソッドに対応するコード」をＢｅａｎファイル内に生成する。
【００９６】
次に、ステップＳ５０４において、ＲＡＭに記憶されたＤＢ情報，ファイル項目情報に基づいて「各テーブルに対する各データ検索用メソッドに対応するコード」をＢｅａｎファイル内に生成する。
【００９７】
詳細には、「データファイル番号をテーブル名、該データファイル番号内のデータ項目枝番をテーブル内の項目名とし、セットされた検索条件によりテーブルデータを検索するＳＱＬ文を生成し、該ＳＱＬ文のクエリを実行し検索結果を取得する各テーブル毎のデータ検索用メソッドに対応するコード」をＢｅａｎファイル内に生成する。
【００９８】
次に、ステップＳ５０５において、ＲＡＭに記憶されたＤＢ情報，ファイル項目情報に基づいて「各テーブルに対する各データ更新用メソッド」をＢｅａｎファイル内に生成する。
【００９９】
詳細には、「データファイル番号をテーブル名、該データファイル番号内のデータ項目枝番をテーブル内の項目名とし、セットされた更新データによりテーブルデータを更新するＳＱＬ文を生成し、該ＳＱＬ文のクエリを実行する各テーブル毎のデータ更新用メソッドに対応するコード」をＢｅａｎファイル内に生成する。
【０１００】
そして、処理を終了し、図１２のフローチャートにリターンする。
【０１０１】
図１４は、本発明の第６の制御処理手順の一例を示すフローチャートであり、図１に示したコード生成部１０７によるサーブレット作成処理（図１２のステップＳ４０２）に対応する。なお、Ｓ６０１〜Ｓ６０７は各ステップを示す。
【０１０２】
まず、ステップＳ６０１において、サーブレットファイルを生成する。このサーブレットファイルのファイル名は、例えば、アプリケーション名に文字列「Ｓｅｒｖｌｅｔ」を付加し拡張子を「ｊａｖａ（登録商標）」とする。なお、このとき、サーブレットファイル内の先頭に、「使用するＢｅａｎパッケージ及びその他必要なパッケージをインポートするコード、アクセス修飾子，クラスの定義，クラス（例えば、ＨｔｔｐＳｅｒｖｌｅｔクラス）の継承、ウェブブラウザ（ＨＴＭＬフォーム）から送信されたパラメータ（送信情報）を受け取るためのメソッドを示すコード」を格納しておく。
【０１０３】
次に、ステップＳ６０２において、ＲＡＭに記憶された画面表示項目情報に基づいて「ウェブブラウザからの送信情報を受け取るコード」をサーブレットファイル内に生成する。
【０１０４】
次に、ステップＳ６０３において、ＲＡＭに記憶されたＤＢ情報に基づいて「切り替え検索が指示された場合、Ｂｅａｎのメソッドを用いて、テーブル切り替え検索処理を行うコード」をサーブレットファイル内に生成する。
【０１０５】
詳細には、「ウェブブラウザからの送信情報に基づいてユーザからの指示に基づいて切り替え検索が指示された（ユーザにより切り替え検索ボタン２０２が指示された）と判定した場合、さらに、切り替え先のテーブルが現在接続されているＤＢか判定し、現在接続されているＤＢでない場合、現在接続されているＤＢのＤＢ切断用メソッドにより切断し、切り替え先のテーブルのＤＢのＤＢ接続用メソッドにより切り替え先のテーブルのＤＢに接続し、接続したＤＢの情報を所定の記憶領域（セッションオブジェクト）に保存し、切り替え先のテーブルのデータ検索用メソッドを用いて、ウェブブラウザから取得した検索条件での検索処理を実行し、一方、切り替え先のテーブルが現在接続されているＤＢの場合には、切り替え先のテーブルのデータ検索用メソッドを用いて、ウェブブラウザから取得した検索条件での検索処理を実行するコード」をサーブレットファイル内に生成する。
【０１０６】
次に、ステップＳ６０４において、ＲＡＭに記憶されたＤＢ情報に基づいて「検索が指示された場合、Ｂｅａｎのメソッドを用いて、データ検索処理を行うコード」をサーブレットファイル内に生成する。
【０１０７】
詳細には、「ウェブブラウザからの送信情報に基づいてユーザからの指示に基づいて検索が指示された（ユーザにより検索ボタン２０４が指示された）と判定した場合、さらに、現在のテーブルのＤＢが接続されているか判定し、現在のテーブルのＤＢが接続されていない場合は、現在のテーブルのＤＢに対応するＤＢ接続用メソッドにより現在のテーブルのＤＢに接続し、接続したＤＢの情報を所定の記憶領域（セッションオブジェクト）に保存し、現在のテーブルのデータ検索用メソッドを用いて、ウェブブラウザから取得した検索条件での検索処理を実行し、一方、現在のテーブルのＤＢが接続されている場合は、そのまま、現在のテーブルのデータ検索用メソッドを用いて、ウェブブラウザから取得した検索条件での検索処理を実行するコード」をサーブレットファイル内に生成する。
【０１０８】
次に、ステップＳ６０５において、ＲＡＭに記憶されたＤＢ情報に基づいて「更新が指示された場合、Ｂｅａｎのメソッドを用いて、データ更新処理を行うコード」をサーブレットファイル内に生成する。
【０１０９】
詳細には、「ウェブブラウザからの送信情報に基づいてユーザからの指示に基づいて更新が指示された（ユーザにより更新ボタン２０６が指示された）と判定した場合、さらに、現在のテーブルのＤＢが接続されているか判定し、現在のテーブルのＤＢが接続されていない場合は、現在のテーブルのＤＢに対応するＤＢ接続用メソッドにより現在のテーブルのＤＢに接続し、接続したＤＢの情報を所定の記憶領域（セッションオブジェクト）に保存し、現在のテーブルのデータ更新用メソッドを用いて、ウェブブラウザから取得した更新データの更新処理を実行し、一方、現在のテーブルのＤＢが接続されている場合は、そのまま、現在のテーブルのウェブブラウザから取得した更新データの更新処理を実行するコード」をサーブレットファイル内に生成する。
【０１１０】
次に、ステップＳ６０６において、「Ｂｅａｎを所定の記憶領域（例えば、セッションオブジェクト）に保存するコード」をサーブレットファイル内に生成する。
【０１１１】
次に、ステップＳ６０７において、「ＪＳＰを呼び出すコード」をサーブレットファイル内に生成し、処理を終了して図１２のフローチャートにリターンする。
【０１１２】
図１５は、本発明の第７の制御処理手順の一例を示すフローチャートであり、図１に示したコード生成部１０７によるＪＳＰ作成処理（図１２のステップＳ４０３）に対応する。なお、Ｓ７０１〜Ｓ７１０は各ステップを示す。
【０１１３】
まず、ステップＳ７０１において、ＪＳＰファイルを生成する。このＪＳＰファイルのファイル名は、例えば、アプリケーション名に拡張子を「ｊｓｐ」とする。なお、このＪＳＰファイル内には、「ＪＳＰページのＭＩＭＥタイプとエンコードするキャラクタセットを設定するコード、当該データファイルに対応するＢｅａｎをインスタンスするコード、ｈｔｍｌのタグである「＜ｈｔｍｌ＞＜ｈｅａｄ＞＜ｔｉｔｌｅ＞アプリケーション名＜／ｔｉｔｌｅ＞」等のコード」を生成し格納しておくものとする。
【０１１４】
次に、ステップＳ７０２において、「所定の記憶領域（セッションオブジェクト）からＢｅａｎを取得するコード」をＪＳＰファイル内に生成する。
【０１１５】
次に、ｈｔｍｌのタグである「＜／ｈｅａｄ＞＜ｂｏｄｙ＞」等を格納した後、ステップＳ７０３において、「フォームのパラメータが送信されたときに、起動するサーブレットを指定するコード」を生成する。詳細には、ｈｔｍｌのタグである「＜ｆｏｒｍ  ｍｅｔｈｏｄ＝"ｐｏｓｔ"  ａｃｔｉｏｎ＝サーブレットのｕｒｌ＞」等のコードを格納する。
【０１１６】
次に、ステップＳ７０４において、ＲＡＭに記憶されたＤＢ情報に基づいて「選択メニュー２０１を生成するコード」をＪＳＰファイル内に生成する。
【０１１７】
次に、ステップＳ７０５において、「フォームのパラメータを送信する機能を備える切り替え検索ボタン２０２を生成するコード」をＪＳＰファイル内に生成する。
【０１１８】
次に、ステップＳ７０６において、ＲＡＭに記憶された画面表示項目情報（特に「Ｓ」「Ｓ，Ｈ」のある項目）に基づいて「検索条件入力欄２０３を生成するコード」をＪＳＰファイル内に生成する。なお、この検索条件入力欄２０３を生成するコードは、画面表示項目情報内で指定される各項目の桁数に応じて各項目の入力欄を生成するにコードとする。
【０１１９】
次に、ステップＳ７０７において、「フォームのパラメータを送信する機能を備える検索ボタン２０２を生成するコード」をＪＳＰファイル内に生成する。
【０１２０】
次に、ステップＳ７０８において、ＲＡＭに記憶された画面表示項目情報（特に「Ｓ，Ｈ」「Ｈ」のある項目）に基づいて「検索結果表示入力欄２０５を生成するコード」をＪＳＰファイル内に生成する。なお、この検索結果表示入力欄２０５を生成するコードは、画面表示項目情報内で指定される各項目の桁数に応じて各項目の表示入力欄を生成するにコードとする。
【０１２１】
次に、ステップＳ７０９において、「フォームのパラメータを送信する機能を備える更新ボタン２０６を生成するコード」をＪＳＰファイル内に生成する。
【０１２２】
次に、ステップＳ７１０において、ＲＡＭ内に格納された画面表示項目情報に基づいて「Ｂｅａｎ内に検索条件情報が格納されている場合、該検索条件情報を検索条件入力欄２０３にセットし、また、Ｂｅａｎ内に検索結果情報が格納されている場合、該検索結果情報を検索結果表示入力欄２０５にセットするコード」をＪＳＰファイル内に生成する。
【０１２３】
最後に、ｈｔｍｌのタグである"＜／ｆｏｒｍ＞＜／ｂｏｄｙ＞＜／ｈｔｍｌ＞"等を格納し、処理を終了して図１２のフローチャートにリターンする。なお、このＪＳＰ内に、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ等の各種スクリプトコード等も含むように構成してもよい。
【０１２４】
図４に示すように、テーブルの定義と画面構成を業務仕様の一部として定義することにより、ＤＢ接続切り替え、操作に関するコードと画面を自動生成することができる。これにより、業務仕様の変更などに柔軟に対応でき、設計・実装・管理を一元管理し高品質でスピーディーなウェブアプリケーションの開発が可能となる。
【０１２５】
以下、図４に示した入出力テーブル１０９の内容にそって、図１０〜図１５に示した処理による、ユーザが動的にＤＢ・テーブルを切り替え可能な操作画面（図９）の生成例について示す。
【０１２６】
図４に示した入出力テーブル１０９の行１では、列６に「Ｇ１」が定義されおり、同じ列６に「Ｇ２」が定義されている行２，行３の項目をまとめて仮想的に一つのテーブルとする処理が行われる。
【０１２７】
また、行２では、列６に「Ｇ２」が定義されていることから、列３で定義している「ＣｌｉＤＢ／ＣｌｉｎｉｃＭ」を画面上で選択可能なテーブルとして使用できることを示している。
【０１２８】
同様に、行３も「ＤｒｕＤＢ／ＤｒｕｇｓｔｏｒｅＭ」が選択可能なテーブルとして定義されている。
【０１２９】
さらに、行４〜行１０では、列６に「Ｄ」が定義されているので、実際に画面の表示項目となることを示している。それぞれ列５のデータファイル項目名が画面に表示され、列７で指定した桁数分の入力項目が生成される。なお、生成される画面は検索用とその結果表示用という構成になっている。検索用（図９の検索条件入力欄２０３）には、列８で「Ｓ」又は「Ｓ，Ｈ」が指定されている行４〜行７までの項目が表示され、結果表示用（図９の検索結果表示入力欄２０５）には「Ｈ」又は「Ｓ，Ｈ」が指定されている行６〜行１０の項目が表示される。
【０１３０】
また、行１１〜行２４では、列６に「Ｆ」が定義されているので、ファイル定義であることを示している。このファイル定義は行２，行３で定義されている「病院」と「薬局」の二つのＤＢ・テーブルについて定義しており、行１１〜行１７が「病院」を示し、行１８〜行２４が「薬局」を示している。
【０１３１】
そして、上記図４に示した入出力テーブル１０９に基づく図１０〜図１５の処理の結果、実行時に図９のような操作画面を表示するウェブアプリケーションが生成される。
【０１３２】
まず、図４に示した入出力テーブル１０９の行１の定義より、この画面がＤＢ・テーブルを動的に切り替えることが出来る機能がある画面ということになり、図９に示すようなＤＢ・テーブルの選択メニュー２０１と切り替え確認のための切り替え検索ボタン２０２が図１に示したコード生成部１０７により自動的に生成される。
【０１３３】
選択メニュー２０１に表示されているテーブル２０１ａ，２０１ｂは、図１の行２，行３で定義されているＤＢ・テーブルとなる。例えば、ここで「Ｃｌｉｎｉｃ（病院）」２０１ａを選択し、切り替え検索ボタン２０２を押下すれば検索の対象は図４に示した入出力テーブル１０９の行１１〜行１７で定義されている「ＣｌｉＤＢ」ＤＢシステムの「ＣｌｉｎｉｃＭ」テーブルとなる。
【０１３４】
また、検索するためのキーを入力する項目は、図４に示した入出力テーブル１０９の行４〜行７の項目となっている。
【０１３５】
これにより生成された検索条件入力欄２０３に必要な値を入力し、検索ボタン２０４を指示すると、指定されたテーブルを検索し、図９に示す検索結果表示入力欄２０５に結果一覧が表示される。
【０１３６】
この検索結果表示入力欄２０５は、図４に示した入出力テーブル１０９の行６〜行１０で定義された項目が表示される。なお、図４に示した入出力テーブル１０９で利用したアプリケーションにおけるＤＢの構成は図６に示すＤＢ構成に対応する。
【０１３７】
なお、この図４に示した入出力テーブル１０９を用いた生成例は、異なる外部ＤＢシステム間での切り替えに対応するが、図４に示した入出力テーブル１０９の定義を変更すれば、図６に示したような外部ＤＢを切り替える機能以外にも、図８に示したような内部ＤＢ内のテーブルを切り替える機能や、図９に示したような内部と外部ＤＢの切り替えを行う機能を付加することが可能である。
【０１３８】
図１６は、本発明のプログラム生成装置における業務仕様情報（図１に示した入出力テーブル１０９）について説明する模式図であり、同一のＤＢシステム（内部ＤＢ又は外部ＤＢ）内でテーブル切り替えを行う場合に対応する。
【０１３９】
例えば、入出力定義を図１６に示した入出力テーブルのように行２，行３の列３の値を「ＣｌｉＤＢ／ＣｌｉｎｉｃＭ」，「ＣｌｉＤＢ／ＤｒｕｇｓｔｏｒｅＭ」とし、「／」記号の前のＤＢシステム名称を同一の「ＣｌｉＤＢ」として記述し、図１６の行１１〜行２４のファイル定義も列１のＤＢシステム名を「ＣｌｉＤＢ」と同一とする。このように定義を変更した場合は、同一のＤＢ（内部ＤＢのみ又は外部ＤＢのみ）の「ＣｌｉｎｉｃＭ」テーブルと「ＤｒｕｇｓｔｏｒｅＭ」テーブルを交互に切り替えることになる。内部ＤＢのみのＤＢ構成は、図７に示した例に対応する。
【０１４０】
また、図４の行２の列３に示した「ＣｌｉＤＢ」を外部ＤＢとし、図４の行３の列３の「ＤｒｕＤＢ」を内部ＤＢとする。なお、内部ＤＢ，外部ＤＢの区別は、図５に示したログイン情報１１０のＵＲＬ６０３で定義される。
【０１４１】
このようなＤＢ構成の場合は、外部ＤＢ「ＣｌｉＤＢ」のテーブル「ＣｌｉｎｉｃＭ」と内部ＤＢ「ＤｒｕＤＢ」のテーブル「ＤｒｕｇｓｔｏｒｅＭ」を交互に切り替えることが可能となる。このような外部ＤＢ及び内部ＤＢからなるＤＢ構成は、図８に示した例に対応する。
【０１４２】
以上示したように、ＤＢの接続方法（ＵＲＬ指定（ネットワーク接続でもローカルでもよい）等）とＤＢのテーブル構成を業務仕様を入力として、ＤＢの選択画面プログラム（ＪＳＰ１１２）を生成するステップと、ＤＢへの接続（割り当て）処理プログラム（サーブレット１１３）を生成するステップと、ＤＢへのアクセス処理プログラム（Ｂｅａｎ１１４）を生成するステップとを備えることにより、ウェブアプリケーション開発支援システムにおいて、ネットワーク接続された複数のＤＢをユーザ選択により動的に切り替えてアクセスする機能、又は、同一ＤＢ上の複数のテーブルをユーザ選択により動的に切り替えてアクセスできる機能を、業務仕様の枠組みの中で定義し、プログラムコードを自動生成することができる。
【０１４３】
従って、生成された操作画面上で対象となるＤＢ上のテーブルへの割り当てとアクセス処理をユーザが動的に切り替えることができる機能を有するアプリケーションプログラムを、ＤＢ接続のための定義を業務仕様の枠組みの中で定義して自動生成することができ、生産性，保守性，管理性を著しく向上することができる。
【０１４４】
また、分散したＤＢに対してユーザの選択による動的に接続を切り替え、また該テーブルへのアクセス処理が自動生成可能となったことで、生産性と保守性に優れたＷｅｂアプリケーションプログラムの領域を広げることができる。
【０１４５】
同様な定義・生成方式の枠組みの中で、同一ＤＢで異なるテーブルへの接続、アクセス処理を自動生成可能とした。
【０１４６】
また、上記実施形態中では、２つのＤＢ・テーブルを例にして、該２つのＤＢ・テーブルを切り替え可能なウェブアプリケーションの生成方法について説明したが、切り替え可能なＤＢ・テーブルは２つに限られるものではなく、入出力テーブル１０９に切り替え可能な３つ以上のＤＢ・テーブルを定義し、ログイン情報１１０に対応するＤＢの接続情報をそれぞれ定義することにより、３つ以上のＤＢ・テーブルを切り替え可能なウェブアプリケーションを生成することができる。
【０１４７】
また、ログイン情報１１０に、ＤＢシステム名，ＪＤＢＣドライバ名，ＵＲＬ，ユーザ名，パスワードを記憶させる場合について説明したが、ＪＤＢＣドライバ名，ＵＲＬ，ユーザ名，パスワードの代わりに、ＤＢシステムのオブジェクト名を記憶させるように構成してもよい。その場合、ＤＢシステムのオブジェクト名からＤＢシステムを検索して接続するようなＤＢ接続用メソッドを生成するように構成する。
【０１４８】
また、図４，図５，図１６の各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【０１４９】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１５０】
また、本発明のプログラム生成装置により生成されるプログラムコードを、ＡＳＰ（Ａｃｔｉｖｅ  Ｓｅｒｖｅｒ  Ｐａｇｅｓ），ＰＨＰ（Ｈｙｐｅｒｔｅｘｔ  Ｐｒｅｐｒｏｓｅｓｓｏｒ）等のＪａｖａ（登録商標）以外の他のプログラムによるウェブアプリケーションとすることで、本発明のプログラム生成装置を各種ウェブアプリケーションの生成にも適用可能である。
【０１５１】
さらに、上記実施形態では、入出力テーブル１０９で指定されるデータベース上の複数のテーブルをそれぞれ定義する複数の定義情報、及びログイン情報１１０で指定される前記データベースへ接続するための接続情報に基づいて「前記複数のテーブルを動的に切り替えてアクセス可能なプログラムコード」を生成するプログラム生成装置について説明したが、複数のテーブルを動的に切り替えてアクセスすることができるデータベースアクセス装置（方法）そのものも本発明に含まれるものである。
【０１５２】
さらに、上記各実施形態では、ウェブアプリケーションサーバ上で動作するウェブアプリケーションプログラムを生成するプログラム生成装置について説明したが、ミドルウェアとしてウェブアプリケーションサーバの代わりに、ノーツ（商品名）・アプリケーションサーバやドミノ（商品名）・アプリケーションサーバ等のグループウェアを利用したアプリケーションを生成するように構成してもよい。
【０１５３】
この場合、サーブレットの代わりに、エージェントと呼ばれるＪａｖａ（登録商標）で作成されたプログラムをプログラム生成装置で生成し、グループウェアのアプリケーションサーバに配置するものとする。また、ＪＳＰにより表示していた入出力画面は、フォームと呼ばれるコンテンツとして、プログラム生成装置で生成して、グループウェアのデータベースに登録しておく。また、Ｂｅａｎは上記実施形態と同一のものを使用可能である。
【０１５４】
また、本発明のプログラム生成装置が生成するアプリケーションは、ＰＤＡ（携帯情報端末）や携帯電話といった携帯端末をクライアントとするアプリケーションとしてもよい。
【０１５５】
そして、クライアントとの間のプロトコルもＨＴＴＰのみではなく、ＷＡＰ（Ｗｉｒｅｌｅｓｓ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）等とし、ＪＳＰにより生成されるコードも、ＨＴＭＬに限られるものではなく、ＸＭＬ，ＷＭＬ等のその他の構造化言語とするような、プログラムを、本発明のプログラム生成装置が生成するように構成してもよい。
【０１５６】
また、上記実施形態では、プログラム生成装置が、データベースへのアクセスを行うためのＢｅａｎ，各データ項目の入出力画面を選択された画面パターンで表示するためのＪＳＰ、入出力画面からの入力情報を取得して該入力情報に基づいてＢｅａｎ，ＪＳＰの実行を制御してアプリケーション全体を統括制御するサーブレットから構成されるウェブアプリケーションを生成する場合について説明したが、上記Ｂｅａｎ，ＪＳＰの機能をも含んだサーブレットのみ、上記Ｂｅａｎの機能を含んだサーブレットとＪＳＰのみ、又は、上記ＪＳＰの機能を含んだサーブレットとＢｅａｎのみ、から構成されるウェブアプリケーションを生成するように構成してもよいことはいうまでもない。
【０１５７】
さらに、上記実施形態内に記載された各変形例を組み合わせた構成も全て本発明に含まれるものである。
【０１５８】
以下、図１７に示すメモリマップを参照して本発明に係るプログラム生成装置で読み取り可能なデータ処理プログラムの構成について説明する。
【０１５９】
図１７は、本発明に係るプログラム生成装置で読み取り（読み出し）可能な各種データ処理プログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【０１６０】
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０１６１】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０１６２】
本実施形態における図３，図１０，図１１，図１２，図１３，図１４，図１５に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０１６３】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１６４】
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【０１６５】
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＤＶＤ−ＲＯＭ，磁気テープ，不揮発性のメモリカード，ＲＯＭ，ＥＥＰＲＯＭ，シリコンディスク等を用いることができる。
【０１６６】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１６７】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１６８】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウエアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１６９】
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ，データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【産業上の利用可能性】
【０１７０】
本発明のプログラム生成装置により生成されるプログラムコードを、ＡＳＰ（Ａｃｔｉｖｅ  Ｓｅｒｖｅｒ  Ｐａｇｅｓ），ＰＨＰ（Ｈｙｐｅｒｔｅｘｔ  Ｐｒｅｐｒｏｓｅｓｓｏｒ）等のＪａｖａ（登録商標）以外の他のプログラムによるアプリケーションとすることで、本発明のプログラム生成装置を各種アプリケーションの生成にも適用可能である。
【図面の簡単な説明】
【０１７１】
【図１】本発明の一実施形態を示すプログラム生成装置の構成を示すブロック図である。
【図２】図１に示したコード生成部によって生成したサーブレット、ＪＳＰ、およびＢｅａｎを利用したウェブアプリケーションシステムの全体構成の一例を示す図である。
【図３】本発明のプログラム生成装置における第１の制御処理手順の一例を示すフローチャートである。
【図４】本発明のプログラム生成装置における業務仕様情報（図１に示した入出力テーブル）について説明する模式図である。
【図５】図１に示したログイン情報を説明するための模式図である。
【図６】本発明のプログラム生成装置により生成されるアプリケーションによるＤＢ接続切り替えを説明するためのＤＢ構成（外部（リモート）分散ＤＢ構成）を示す図である。
【図７】本発明のプログラム生成装置により生成されるアプリケーションによるＤＢ接続切り替えを説明するためのＤＢ構成（内部（ローカル）同一ＤＢ構成）を示す図である。
【図８】本発明のプログラム生成装置により生成されるアプリケーションによるＤＢ接続切り替えを説明するためのＤＢ構成（内部（ローカル）ＤＢ及び外部（リモート）ＤＢによる分散ＤＢ構成）を示す図である。
【図９】本発明のプログラム生成装置により生成されるウェブアプリケーションにおける操作画面の一例を示す模式図である。
【図１０】本発明の第２の制御処理手順の一例を示すフローチャートである。
【図１１】本発明の第３の制御処理手順の一例を示すフローチャートである。
【図１２】本発明の第４の制御処理手順の一例を示すフローチャートである。
【図１３】本発明の第５の制御処理手順の一例を示すフローチャートである。
【図１４】本発明の第６の制御処理手順の一例を示すフローチャートである。
【図１５】本発明の第７の制御処理手順の一例を示すフローチャートである。
【図１６】本発明のプログラム生成装置における業務仕様情報（図１に示した入出力テーブル）について説明する模式図である。
【図１７】本発明に係るプログラム生成装置で読み取り（読み出し）可能な各種データ処理プログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【符号の説明】
【０１７２】
１０１  入力装置
１０２  表示装置
１０３  処理装置（ＣＰＵ，ＲＡＭ，ＲＯＭ）
１０４  外部記憶装置（ハードディスク）
１０５  画面制御部
１１６  業務仕様記述部
１０７  コード生成部
１０８  全体制御部
１０９  入出力テーブル
１１０  ログイン情報
１１１  アプリケーション名
１１２  ＪＳＰコード
１１３  Ｓｅｒｖｌｅｔコード
１１４  Ｂｅａｎコード
【図１】
2005148976.tif 000003
【図２】
2005148976.tif 000004
【図３】
2005148976.tif 000005
【図４】
2005148976.tif 000006
【図５】
2005148976.tif 000007
【図６】
2005148976.tif 000008
【図７】
2005148976.tif 000009
【図８】
2005148976.tif 000010
【図９】
2005148976.tif 000011
【図１０】
2005148976.tif 000012
【図１１】
2005148976.tif 000013
【図１２】
2005148976.tif 000014
【図１３】
2005148976.tif 000015
【図１４】
2005148976.tif 000016
【図１５】
2005148976.tif 000017
【図１６】
2005148976.tif 000018
【図１７】
2005148976.tif 000019