(57)【要約】マルチレベル環境において各レベルのための分散アプリケーションを生成させるための方法であって、それぞれのレベルでアプリケーションを生成させるのに必要な全情報のためのコード・セクションを含む統合構成コードを受信するステップと、上記統合構成コードに含まれていて上記マルチレベル環境の少なくとも1つのレベルで必要な全コード・セクションを構文解析するステップと、上記少なくとも1つのレベルのために構文解析したコード・セクションを抽出するステップと、抽出した上記コード・セクションを、抽出したそれぞれのレベルのためのレベル専用アプリケーションに変換するステップを含む方法と、この方法を具体化した装置が開示されている。
2006512633.tif 000002
【特許請求の範囲】
【請求項１】
マルチレベル環境において各レベルのための分散アプリケーションを生成させるための方法であって、
それぞれのレベルでアプリケーションを生成させるのに必要な全情報のためのコード・セクションを含む統合構成コードを受信するステップと、
上記統合構成コードに含まれていて上記マルチレベル環境の少なくとも1つのレベルで必要な全コード・セクションを構文解析するステップと、
上記少なくとも1つのレベルのために構文解析したコード・セクションを抽出するステップと、
抽出した上記コード・セクションを、抽出したそれぞれのレベルのためのレベル専用アプリケーションに変換するステップを含む方法。
【請求項２】
上記構文解析ステップが、上記統合構成コードに含まれていて上記マルチレベル環境の少なくとも1つのレベルで必要なすべてのコード・セクションを同定する操作を含む、請求項1に記載の方法。
【請求項３】
上記レベル専用アプリケーション・コードがJavaコードである、請求項1に記載の方法。
【請求項４】
上記レベル専用アプリケーション・コードを、上記マルチレベル・データベース環境内の装置に送る、請求項1に記載の方法。
【請求項５】
マルチレベル・データベース環境において統合構成コードを生成させるための方法であって、
上記データベースのデータベーステーブルの少なくとも1つの表現を受信するステップと、
上記データベースから、上記少なくとも1つの表現によって表わされる上記データベーステーブルのすべてのメタ情報として、上記少なくとも1つのデータベーステーブルの内容に関する情報と、このデータベーステーブルについての追加情報に関する情報とを含むメタ情報を検索するステップと、
上記データベースから検索した情報を含む統合構成コードを生成させるステップを含む方法。
【請求項６】
上記統合構成コードがXMLファイルである、請求項1〜5のいずれか1項に記載の方法。
【請求項７】
コンピュータ可読媒体に記憶されていて、コンピュータ装置上またはネットワーク装置上で走らせたときに請求項1〜6のいずれか1項に記載の方法を実施するプログラム・コード手段を含むソフトウエア・ツール。
【請求項８】
コンピュータ可読媒体に記憶されていて、コンピュータ装置上またはネットワーク装置上で走らせたときに請求項1〜6のいずれか1項に記載の方法を実施するプログラム・コード手段を含むコンピュータ・プログラム製品。
【請求項９】
サーバーからダウンロード可能で、コンピュータ装置上またはネットワーク装置上で走らせたときに請求項1〜6のいずれか1項に記載の方法を実施するプログラム・コード手段を含むコンピュータ・プログラム製品。
【請求項１０】
マルチレベル環境において各レベルのための分散アプリケーションを発生させるためのネットワーク装置であって、
マルチレベル環境の異なるレベルのためのコード・セクションを含む統合構成コードを受信する受信モジュールと、
上記受信モジュールに接続されていて、上記統合構成コードのコード・セクションを構文解析、抽出、変換することにより、各レベルのためのレベル専用アプリケーション・コードにする制御装置と、
上記制御装置に接続されていて、上記統合構成コードを改訂するユーザー・インターフェイスと、
上記制御装置に接続されていて、上記レベル専用アプリケーション・コードをネットワーク内の他の装置に伝送するネットワーク・モジュールとを備えるネットワーク装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多層環境またはマルチレベル環境において、好ましくはデータベースにおいて分散アプリケーションを生成させることに関する。本発明は、オブジェクト指向の分散Javaアプリケーションの生成にも関する。
【背景技術】
【０００２】
分散アプリケーションは、典型的なクライアント-サーバー・アプリケーションをより一層進展させたものである。このような分散アーキテクチャ（n層アプリケーションまたは多層アプリケーションとしても知られる）の主な利点は、個々の層がはっきりと分離されることである。これらの層は、一般に、存在しているデータを維持するためのデータベース・サーバーと、オブジェクト論理またはビジネス論理を実行するためのアプリケーション・サーバーと、表現を用意するためのウェブ・サーバーと、ユーザーに対する表示ならびにユーザーとの相互作用を行なうためのクライアント・アプリケーションで構成されている。
【０００３】
このようなアーキテクチャは、アメリカ合衆国特許第5,212,787号に記載されている。この文献には、オブジェクト指向環境の外部にある関係データベースに、この環境から出ることなくアクセスする方法が開示されている。関係データベースへのこのアクセスは、オブジェクト指向環境と関係データベースの間のアプリケーション・プロトコル・インターフェイスを提供する翻訳アプリケーションによって実現される。
【０００４】
このようなアーキテクチャにおける1つの問題は、アプリケーションの開発者が取り扱うべき複雑さが増大することである。従来のクライアント-サーバー・アプリケーションの開発プロセスでは、開発者は、グラフィカルな開発ツールを持っており、データベースのデータに直接アクセスできる。これにより開発プロセスが簡単になる。というのも、開発者はわずかに2つの層だけ取り扱えばよく、取り扱うべき層が3層以上にはならないからである。
【０００５】
多くの場合、n層に分散されたアプリケーションを開発している間、いくつかのタイプのクライアント・アプリケーションを実装する必要がある。一般に、あるアプリケーションは、グラフィカル・ユーザー・インターフェイス（GUI）を備える完全自立型Javaクライアントであり、別のアプリケーションは、巧妙なウェブ・ブラウザベースのアプリケーションである。処理するデータは、ウェブ・サーバーまたはアプリケーション・サーバーに送る必要がある。データがウェブ・サーバーに送られると、アプリケーション・サーバー用に処理され、翻訳される必要がある。するとアプリケーション・サーバーは、オブジェクト論理またはビジネス論理を実行し、データベースを検索する文を生成させる。アプリケーションの開発者は、アーキテクチャが非常に複雑であるためにしばしば混乱し、失敗する。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
したがって、多層環境のすべての層においてアプリケーションの生成を簡単化する方法と装置が望まれている。
【課題を解決するための手段】
【０００７】
本発明の1つの特徴によれば、多層環境のすべての層においてアプリケーションを生成させる方法が提供される。この方法は、それぞれのレベルにおいてアプリケーションを生成させるのに必要な全情報のためのコード・セクションを含む統合構成コードにアクセスする操作を含んでいる。この情報には、データ、コマンド、定義、レイアウトなどが含まれる。アクセスは、例えばユーザーの入力によって受信、検索、生成を行ない、以前に記憶されている統合構成コードを改訂することによって実現することができる。次に、構成コードに関し、マルチレベル環境の少なくとも1つのレベルにおける少なくとも1つのアプリケーションに必要なすべてのセクションが構文解析される。構文解析されたコード・セクションは、その少なくとも1つのレベルのために抽出され、変換され、翻訳されて、それぞれのレベルにおけるレベル専用アプリケーション・コードになる。
【０００８】
本発明の一実施態様では、この方法はさらに、上記統合構成コードの中で、マルチレベル環境の少なくとも1つのレベルで必要な全コード・セクションを同定するステップを含んでいる。
【０００９】
別の一実施態様では、上記レベル専用アプリケーション・コードはJavaコードである。Javaコードは、実際に使用されているハードウエアには関係なくアプリケーションをプログラムすることを可能にしてくれるため、各層のほとんどすべてのサーバー、ミドルウエア、クライアントの装置で走らせることのできるアプリケーションが提供される。したがって生成されたアプリケーションは、利用可能なアプリケーション・プログラム・インターフェイスについての追加情報や、そのアプリケーションが利用される装置の所有者に関する他の性質についての追加情報を必要としない。したがって統合構成コードからは、装置専用情報またはプラットフォーム専用情報を完全になくすことができる。
【００１０】
別の一実施態様によると、上記方法には、上記レベル専用アプリケーションを上記マルチレベル環境内の装置に送信するステップがさらに含まれる。
【００１１】
本発明の別の特徴によると、統合構成コードを生成させる方法が提供される。統合構成コードの生成には、データベースのデータベーステーブルに関する少なくとも1つの表現を受信するステップが含まれる。この少なくとも1つの表現は、データベース内でビジネス・オブジェクトなどのオブジェクトを規定する。これは、例えばユーザーの入力などによって実現できる。その後、この少なくとも1つの表現によって表わされる少なくとも1つのデータベーステーブルの全メタ情報を、このテーブルが記憶されているデータベースから検索する。このメタ情報には、内容に関する情報と、その内容に関する追加情報が含まれている。その追加情報というのは、例えば、少なくとも1つの上記データベーステーブルの属性や関係である。メタ情報には、このデータベーステーブルと他のデータベーステーブル（リストになくてもよい）の関係に関する情報が含まれていてもよい。テーブルとメタ情報を用いて統合構成コードを生成させる。統合構成コードには、各層でアプリケーションを生成させるのに必要な、上記データベースから検索された全メタ情報のためのコード・セクションが含まれている。構成ファイルには、テーブルの上記表現によって規定されるオブジェクトをこの構成ファイルにマッピングするのに必要な全情報が含まれている。構成ファイルを処理したり、構成ファイルを改訂して変更したり、構成ファイルを用いてオブジェクトの関係や内容を変化させたりすることができる。統合構成ファイルは、上記オブジェクトとそのマスク（その中には、オブジェクト論理（例えばビジネス論理）として、検証、表現（例えばフォーマット）、異なる層の間でのコミュニケーション、データベースへの記憶などが含まれる）を規定する。データベースに由来することが不可能な構成ファイルの要素は、以前に生成された他の構成ファイル、ライブラリ、ユーザー入力のいずれかから生成させる必要がある。
【００１２】
一実施態様では、上記統合構成コードはXML（拡張可能マークアップ言語）ファイルである。XMLファイルを用いることにより、実際に使用されている装置とは無関係に構成コードを生成させ、処理することができる。別の利点は、XMLにより、データとコードのための使いやすいポータブルなフォーマットが提供されることである。統合構成XMLファイルにより、データ（例えばオブジェクトやデータ・オブジェクトの内容のほか、そのオブジェクトやデータ・オブジェクトのプログラム・セクションならびに表現の構成）をコードすることが可能になる。
【００１３】
本発明により、開発者は、すべての特徴を一ヶ所に維持して1つの処理系を生成させることが可能になる。開発者は、統合構成ファイルが自動的に生成されるため、努力してプログラムを作ることなく、骨格となる多層アプリケーションを生成させることができる。開発者は、XML構成ファイルから提供される生成された骨格を増強することにより、そのアプリケーション専用の挙動を実現することに集中できる。
【００１４】
本発明の裏にある中心的な考え方は、すべてのオブジェクト（例えばビジネス・オブジェクト）を1つのデータベーステーブルにマッピングできるというものである。したがってこのマッピングを1つの構成ファイルの中で記述することもできる。これは、本発明の1つの特徴によって実現される。すなわち、引数として1つ以上のデータベーステーブルを持ち、テーブルのためにデータベースからメタ情報を読み出すことによって基本的構成ファイルを生成するジェネレータを用いることにより実現される。
【００１５】
構成ファイルは、オブジェクトの表現を構成するのにも使用できる。言い換えるならば、属性の値の形式を決める方法、値を検証する方法、GUI要素の視覚的形式とサイズ（テキストフィールド、チェックボックス、ドロップダウン、メニューなど）を指定することができる。さらに、Javaで実際にプログラムすることなく、構成ファイル内のラベルとそれ以外の特徴を指定することが可能である。こうした全情報が1つのエンティティを記述し、実際に1つのオブジェクトを分解するための青写真となる。
【００１６】
本発明では、Java、XML、JSP（Struts）といった技術を利用するとともにこれらの技術に影響を与える。Javaは、オブジェクト指向でプラットフォームに無関係のプログラム言語であり、生成されるアプリケーションで用いられる。Swingは、グラフィカル・ユーザー・インターフェイス・クラス・ライブラリであり、その具体例としてはJava環境でユーザー・インターフェイスを生成させるためのATWがある。Swingを用いる代わりに他の任意の標準的なGUIライブラリ（例えばATW）を用いてアプリケーションのGUIを生成させることもできる。JDBC（Javaデータベース・コネクティビティ）は、関係データベースで使用されるSQL（構造化照会言語）の命令を実行するためのJava-API（アプリケーション・プログラム・インターフェイス）である。JDBCは、SQLデータベースに直接アクセスするすべてのアプリケーションで使用することができる。XML（拡張可能マークアップ言語）は、構成ファイルで使用される。XMLが拡張可能であるため、構成ファイルにデータを記憶することが可能になる。XMLは、パーサーであるDTD（文書型定義）を提供してXMLファイルをJavaアプリケーションに変換する。Javaサーバー・ページ（JSP）を用いてインターネットとHTMLアプリケーションのためのGUIを生成させる。JSPは、例えばStrutsを用いて生成させることができる。このStrutsというのは、JSPアプリケーションの開発を容易にするためにあらかじめ記憶されている設計パターンを使用したオープン・ソース・フレームワークである。
【００１７】
開発者が最終的に1つのエンティティに必要な全情報を特定すると、必要なコード・ファイルの生成が可能になる。
【００１８】
各エンティティについて得られるファイルは以下の通りである：
1．Javaクラス・ソース・ファイル
・Swingパネル
・Swingテーブル
・クライアント・オブジェクト
・サーバー・オブジェクト
・オブジェクト論理のデータ・オブジェクト
・Strutsアクション
・Strutsフォーム
2．JSP（Javaサーバー・ページ）
・ オブジェクトの表現
【００１９】
本発明のさらに別の特徴によれば、コンピュータ装置上またはネットワーク装置上で走らせたときに上記の方法を実行するプログラム・コード手段を含むソフトウエア・ツールが提供される。
【００２０】
本発明の別の特徴によれば、上記の方法を実行するためのコンピュータ・プログラム製品であって、サーバーからダウンロード可能で、コンピュータ装置上またはネットワーク装置上で走らせたときに上記の全ステップを実行するためのプログラム・コード手段が含まれたコンピュータ・プログラム製品が提供される。
【００２１】
本発明のさらに別の特徴によれば、コンピュータ可読媒体に記憶されていて、コンピュータ装置上またはネットワーク装置上で走らせたときに上記の方法を実行するプログラム・コード手段が含まれたコンピュータ・プログラム製品が提供される。
【００２２】
さらに別の特徴によると、本発明により、多層環境内の各レベルのための分散アプリケーションを生成させるコンピュータ装置が提供される。このコンピュータ装置は、受信モジュールと、制御装置と、ユーザー・インターフェイスと、ネットワーク・モジュールとを備えている。受信モジュールは、マルチレベル環境内の各レベルのためのコード・セクションを含む統合構成コードを受信するのに必要である。制御装置は受信モジュールに接続されており、統合構成コードのコード・セクションを構文解析し、同定し、抽出し、変換して、上記環境内の各レベルのためのレベル専用アプリケーション・コードにする設計になっている。ユーザー・インターフェイスは制御装置に接続されており、統合構成コードを拡張し、改訂する。ネットワーク・モジュールは制御装置に接続されており、生成したレベル専用アプリケーション・コードをネットワーク内の他の装置に転送する。
【発明を実施するための最良の形態】
【００２３】
添付の図面を参照して以下に本発明を詳細に説明する。
【００２４】
説明がわかりにくくなるのを避けるため、方法、インターフェイス、装置、信号伝送技術でよく知られたものに関しては、詳細な説明を省略する。
【００２５】
図1は、典型的な多層環境アーキテクチャの概略を示すブロック・ダイヤグラムである。分散アプリケーションは、典型的なクライアント-サーバー・アプリケーションをより一層進展させたものである。このような分散アーキテクチャ（n層アプリケーションまたは多層アプリケーションとしても知られる）の主な利点は、個々の層がはっきりと分離されることである。図示したマルチレベル環境または多層環境は、データベース・サーバー2と、アプリケーション・サーバー4と、クライアント・アプリケーション6と、ウェブ・サーバー8と、HTML（ハイパーテキスト・マークアップ言語）クライアント10で構成されている。データベース・サーバー2は、多層環境の第1の層、すなわち最下層となっている。データベース・サーバー2は、存在しているデータを維持するために存在しており、データベースのデータを、表、入力、属性、関係といった形態、あるいはこれら以外のメタ情報の形態で物理的に記憶する。データベース・サーバーは、データベース・サーバー・アプリケーションを利用し、物理的に記憶されたデータを検索したり、アプリケーション・サーバー4とデータを交換したりする。
【００２６】
アプリケーション・サーバー4は、環境の第2層を形成する。アプリケーション・サーバー4は、データベース・サーバー2とクライアント・アプリケーション6とウェブ・サーバー8の間をそれぞれつないでいる。アプリケーション・サーバー4は、オブジェクト論理またはビジネス論理を実行するためのものであり、クライアント・アプリケーション6またはウェブ・サーバー8から受信した要求に従ってデータベース・サーバー2に記憶されているデータを調べるための質問を生成させる。要求は、データベースに記憶されている情報を検索するための読み出し操作、またはデータベースの内容を変化させる書き込み操作を含むことができる。アプリケーション・サーバー4は、読み出し操作を実行するための質問構築アプリケーションと、クライアント・アプリケーション6またはウェブ・サーバー8から受信した要求に対応する書き込み操作を実行するためのデータ・オブジェクト更新装置を含んでいる。アプリケーション・サーバー4は、アプリケーション・サーバー・アプリケーションを利用し、データベース・サーバー2とウェブ・サーバー8とクライアント・アプリケーション6の三者間で通信したり、さまざまなプロトコルを処理したりする。
【００２７】
クライアント・アプリケーション6はアプリケーション・サーバー4に接続されていて、データベース・サーバー2にデータ・オブジェクトを送信したり、データベース・サーバー2内のデータ・オブジェクトを更新したりする。クライアント・アプリケーション6は、第3層を形成する。クライアント・アプリケーション6は、データベースへのアクセスを単純化することを目的として、表現およびユーザーとの対話のためのグラフィカル・ユーザー・インターフェイス（GUI）を含んでいる。GUIならびにアプリケーション・サーバー4とのデータ交換は、ユーザーの端末上を走るクライアント・アプリケーションによって実行される。
【００２８】
ウェブ・サーバー8はアプリケーション・サーバー4に接続されていて、データ・オブジェクト要求とデータ・オブジェクトをデータベース・サーバー2とHTMLクライアント10の間で交換する。ウェブ・サーバー8は、表現を用意するためのものであり、環境の第4層を形成する。ウェブ・サーバー8は、さまざまなプロトコルを解釈して要求をHTMLクライアント10とアプリケーション・サーバー4の間でやり取りするためのデータ・オブジェクト更新装置とデータ要求実行装置を備えている。データの交換と解釈は、ウェブ・サーバー・アプリケーションによって実行される。
【００２９】
HTMLクライアント10はウェブ・サーバー8に接続されていて、データ交換を行なったり、ウェブを通じてデータベースにアクセスしたりするる。HTMLクライアント10は、環境の第5層を形成する。HTMLクライアント10は、ウェブ・サーバー8から受信したHTMLコードをウェブ・ページへと変換する。このウェブ・ページは、表示として、またユーザーとの対話のためのグラフィカル・ユーザー・インターフェイスとして機能する。ウェブ・ページは、HTMLグラフィック・アプリケーションとして定義されねばならない。
【００３０】
これらの全アプリケーションを提供するためには、データ・サーバー・アプリケーション、アプリケーション・サーバー・アプリケーション、クライアント・アプリケーション、ウェブ・サーバー・アプリケーション、HTMLグラフィック・アプリケーションを生成させる必要がある。問題は、アプリケーションの開発者が非常に複雑な事柄に対処せねばならないことである。
【００３１】
多くの場合、n層に分散されたアプリケーションを開発している間、いくつかのタイプのクライアント・アプリケーションを実装する必要がある。一般に、あるアプリケーションは、GUIを備える完全自立型Javaクライアント（クライアント・アプリケーション6）であり、別のアプリケーションは、巧妙なウェブ・ブラウザベースのアプリケーション（ウェブ・サーバー8）である。処理するデータは、ウェブ・サーバー8またはアプリケーション・サーバー4に送る必要がある。データがウェブ・サーバー8に送られると、アプリケーション・サーバー4用に処理され、翻訳される必要がある。するとアプリケーション・サーバー4は、オブジェクト論理またはビジネス論理を実行し、データベース・サーバー2を検索する文を生成させる。アーキテクチャが非常に複雑であるため、ほんの些細なエラーが、異なる層同士の相互作用の失敗に結び付く。
【００３２】
図2は、XML構成ファイル26を生成させる1つの具体的な方法についてのブロック図である。この方法は、基本的に、ある程度独立した2つのサブ要素を含んでいる。それは、完全統合構成コードからのアプリケーションの生成と、データベースのメタ情報とアプリケーション専用の要求を用いた構成コードの生成である。後者について、図2に図示、説明されている。サブ要素は両方とも、多層環境内でのアプリケーションの生成を単純化するのに寄与する。
【００３３】
少なくとも1つのサーバー層とクライアント層を有する多層環境内でデータベースと相互作用する分散Javaアプリケーションを生成させるための完全統合構成ファイル26を生成させるためには、オブジェクトまたはビジネス・オブジェクトのプロパティを固定する必要がある。関係データベースでは、必要な情報を含むテーブル20を決めることによってそれが実現できる。関連情報を含む複数個のテーブル20が決まると、テーブル同士のそれぞれの関係を、その情報を含むデータベース24から検索することができる。生成させることになるアプリケーションがデータベースの既存のテーブルにアクセスする設計になっている場合には、必要なテーブルを例えばテーブルのリスト20内で決定すれば十分である。追加情報（例えばデータ構造）もデータベース24から検索することができる。別の方法として、例えばアプリケーションのデモ・バージョンを生成させるには、1つのテーブルの要素と各要素間の関係だけを決定すればよい。
【００３４】
テーブルとメタ情報に基づいて構成ファイルを生成させることができる22。構成ファイル26は、望むアプリケーションのための全情報を含むXML構成ファイルとして生成させることができる。そうすることにより、データベーステーブルの選択またはこれらのテーブルの表現と、データベースまたはビジネス・オブジェクトを規定するそれぞれの関係を、構成ファイルにマッピングすることができる。構成ファイルを生成させる前に、予想される層または必要な層の数に応じて追加情報を決定することもできる。
【００３５】
基本的な考え方は、統合ファイル内のすべてのプロパティを規定し、環境のすべての層でアプリケーションを生成させるのに必要な全情報を含む単一の構造体を生成させるというものである。1つのアプリケーションに必要な個々のプロパティを規定するだけでなく、個々の層の全体構造も1つのファイル内に統合する。基本的にこの考え方は、まず最初に1つの画像を生成させ、そこから必要なピースだけを切り抜くことにより、ジグソーパズルの1つのピースを生成させることにたとえられる。ただしここでは、1つのピースを独立に生成させてぴたりと嵌まる別のピースがどこかにあると期待するのではなく、同じ画像から切り抜かれた全ピースが互いにフィットすることが保証されている。
【００３６】
テーブルの名称のリスト20がエンティティ・ジェネレータ22に送られると、このジェネレータ22は、データベース24から検索された情報を用いてデフォルト構成ファイル26（entities.xml）を生成させる。この統合構成ファイルを生成させるため、ジェネレータはXML技術（例えばパーサーやDTD（文書型定義））を利用する。
【００３７】
図3は、データベース情報をXMLファイルにマッピングするための簡単な1つの例である。このマッピングは、例えばODBCデータベース、ORACLEデータベース、トランス-ベース-データベースのテーブルをその構造および内容とともにXMLファイルに翻訳するトランスレータとして具体化することができる。
【００３８】
データベースの簡単なテーブル30から出発し、このテーブルの入力値をXML構成ファイル30にマッピングする。この実施例にはテーブルの構造と内容だけが記載されており、個々の要素間にはどのような関係もない。この実施例が価格リストに限定されることはなく、あらゆる種類のテーブルの内容（例えば部品表など）にも適用できることに注意されたい。この実施例は、統合ファイル・ジェネレータの1つの側面をいかにして実現するかの考え方だけを示すためのものである。XML設計規則によれば、リストの名称は、XMLファイル・セクションの起点<price list>と終点</price list>を形成する。他のプロパティも、リストの内容に関する追加情報を伴ったサブ要素を形成している。テーブル内には比較的少数の要素しかないため、テーブルと、テーブルの中から選択した要素との間のマッピング関数が明確にわかるはずである。したがって構成ファイル・ジェネレータをいかにして実装するかが十分に理解できよう。実装されるジェネレータの正確な姿は、使用するデータベースの構造と、使用するオペレーション・システムと、ジェネレータを具体化するのに使用する言語によって決まる。
【００３９】
図4は、統合構成ファイルのXMLエンティティ構成ファイル・セクションの一例である。エンティティを利用して同じタイプのオブジェクトまたはビジネス・オブジェクトを定義する。エンティティ構成ファイル（entities.xml）は、あとに続くテキストの意味をエンティティと関係づけるXMLタグ<entityを含んでいる。
【００４０】
タグは、図示した選択が例示にすぎず、図示したテキストに限定されないことを示すために閉じていない。この図では、リストの中に、1つのエンティティのプロパティとして、オブジェクトの名称、ラベル、コメントが規定されている。このエンティティはさらに、ブール式クラス名、文書のクラス名、条件、条件に関して可能なエラー、主キーおよび独自キーとしての符号によっても規定される。
【００４１】
図5は、XML属性構成ファイルの一例である。属性は、オブジェクトまたはビジネス・オブジェクトのプロパティを規定する。図3と図4に示した記述からわかるように、ファイル・セクションは、後に続くテキストを属性と見なすXMLタグ50<attributes>から始まる。第1の属性は、ラベル“Deal id”を名称“DEALID”と関係づける。以後の記述において、クラスの名称、フォーマット、エンティティの最大桁数を規定する。次の属性タグは、エンティティ“検査日”という属性を規定する。
【００４２】
図6は、XML関係構成ファイルの一例である。XMLタグ60<relations>によって示される関係は、オブジェクトまたはビジネス・オブジェクトを記憶またはロードするときの結び付きを表わす。図では、“dealcontract”という名称のエンティティ“CONTRACT”は、親属性“DEALID”に割り当てられる。同様に、“dealpartner”という名称のエンティティ“PARTNER”は、親属性“DEALID”に割り当てられる。他のタイプの属性は、記述子、識別子、オプションの記述子であり、他の関数も規定または固定することができる。
【００４３】
エンティティ、属性、関係は、データベースに記憶されているメタ情報から抽出することができる。構成ファイルそのものは、データベーステーブルだけが決められている場合には自動的に生成させることができ、それぞれのメタ情報がデータベースから検索される。
【００４４】
図7は、XML構成ファイルから多層環境においてアプリケーションを生成させる1つの方法についてのブロック図である。図2に関して説明したように、本発明の方法は、基本的に2つ以上の独立なサブ要素を含んでいる。すなわち、完全統合構成コードからのアプリケーションの生成と、データベースのメタ情報とアプリケーション専用の要求による構成コードの生成である。前者の方法を図7に図示して説明してある。
【００４５】
XML構成ファイル70の中でエンティティ、属性、関係情報が規定されると、フレームワークは、多層環境のすべての層においてアプリケーションのための基本クラスを生成させる71。クライアント側72では、オブジェクトまたはビジネス・オブジェクトのためのアプリケーション74と、スクリーンおよびテーブルのためのアプリケーション75が生成される。サーバー側73では、オブジェクトまたはビジネス・オブジェクトのためのアプリケーション77と、エンティティ・マネージャ記憶のためのアプリケーション78が生成される。ジェネレータ71は、データ・オブジェクトのためのミドルウエア・アプリケーション76も生成させる。
【００４６】
アプリケーションを生成させる際には、JAXB（XML結合のためのJavaアーキテクチャ）の拡張版を用いてXML要素をJavaプログラミング言語によるクラスにマッピングすることができる。標準的なJAXBは、XMLファイル内にあって各層内の個々のアプリケーションに必要な関連セクションを同定することができない。したがってJavaアプリケーションを生成させる前に、XMLファイル内の関連セクションを構文解析し、同定し、抽出する追加の特徴またはツールを設ける必要がある。
【００４７】
基本的な考え方は、環境のすべての層においてアプリケーションを生成させるのに必要な全情報を有する単一の構造体を生成させるというものである。基本的にこの考え方は、まず最初に1つの画像を生成させ、それを複数のピースに分割することによってジグソーパズルを作ることにたとえられる。ただしここでは、単一のピースを独立に生成させ、ぴたりと嵌まる別のピースがどこかにあると期待するのではなく、全ピースが互いにフィットすることが保証されている。
【００４８】
図8は、ビジネス・オブジェクトを具体化したSwingスクリーンの一例である。具体化されたこのSwingスクリーンは、データを伴った視覚要素を対応するオブジェクトまたはビジネス・オブジェクトと結合させる1つの具体的なグリッドバッグ・レイアウトとして提供される。Swingは、グラフィカル・ユーザー・インターフェイス・クラス・ライブラリであり、その具体例としては例えばユーザー・インタフェイスを生成させるためのATWがある。Swingを用いる代わりに、他の任意の標準的なGUIライブラリ（例えばATW）を用いてアプリケーションのGUIを生成させることもできる。クライアントは、図示されたSwingスクリーンを解釈してユーザーが入力するための保護された空欄を表示し、オブジェクト同定入力（dealid）に入力されたときに物品取引の開始日を検索する。この具体的なSwingスクリーンに図示されているすべてのコード・セクションは、XML構成ファイルから直接生成させることができる。
【００４９】
図9は、データベーステーブルをSwingテーブルコードにした1つの例である。デフォルトのレンダラーとエディタを用い、列を、（非）ソート可能、編集可能、（非）サイズ変更可能、文字の好ましい最少-最大数などとして定義する。このSwingスクリーンの具体例に示したすべてのコード・セクションは、XML構成ファイルから直接生成させることができる。
【００５０】
図10は、オブジェクトまたはビジネス・オブジェクトとの相互作用の検証と通知に関する1つの具体例である。クライアント側で検証されるオブジェクトまたはビジネス・オブジェクトに関しては、そのオブジェクトまたはビジネス・オブジェクトが変化した場合に、登録リスナーにそのことが通知される。
【００５１】
図11は、オブジェクトまたはビジネス・オブジェクトのデータ保持に関する1つの具体例である。オブジェクトまたはビジネス・オブジェクトのデータを保持するためのデータ・オブジェクトは、変更された場合にはサーバーに送られることになる。Swingの実装は、“isModified()”などの補助的なメソッドを有している。
【００５２】
図12は、オブジェクトまたはビジネス・オブジェクトのサーバー側ビジネス論理を実行するためのフックに関する一具体例である。このフックは、状態なしの静的なメソッドで提供される。
【００５３】
図13は、グラフィカル・ユーザー・インターフェイスとデータを結合させる1つの具体的な方法についてのブロック図である。このブロック図は、オブジェクトまたはビジネス・オブジェクトのデータがどのようにしてプレゼンテーション層と相互作用するかを示している。これは、パネルが生成されたときにコード・ジェネレータによって実現されたMVC（モデル、ビュー、制御装置）パターンを用いてなされる。
【００５４】
図示したグラフィカル・ユーザー・インターフェイス（GUI）130は、ユーザーからの入力を受信してデータを表示するさまざまな要素を含んでいる。それぞれの入力要素には、アダプタ132によってそれぞれのリスナーが登録される。GUI130の受信要素にユーザーが入力する場合、アダプタは、その要素から値を取得してその値をオブジェクトまたはビジネス・オブジェクト134に送る。ビジネス・オブジェクト134は、登録された全リスナーについて変更されたイベントを実行する。変更されたイベントは、アダプタ制御装置136によって受信される。するとアダプタ制御装置136は、要素を制御し、属性に従ってフォーマットされた値をGUI130に表示させる。
【００５５】
図14〜図17は、クライアントとサーバーの間でデータ・オブジェクトを同期させる方法の一例である。
【００５６】
図14は、クライアントによって変えられたデータ・オブジェクトを有するオブジェクト140を示している。クライアント・アプリケーションは、変更されたデータ・オブジェクト142をオブジェクト140から抽出してサーバーに送る。
【００５７】
図15は、サーバーが変更されたデータ・オブジェクトを受信したときの反応を示している。変更されたそれぞれのデータ・オブジェクト150は、受信されるとまずデータテーブル155に送られ151、値が変更されたそのデータ・オブジェクトを割り当てることが可能かどうかが判定される。次に更新操作152が実施される。この更新操作には、メモリとテーブルに存在しているデータの更新152が含まれる。この更新がなされたことを確認するため、変更されたデータがメモリから読み出され154、更新されたデータ・オブジェクトがクライアントに戻される。
【００５８】
図16は、クライアントがサーバーから更新されたデータ・オブジェクトを受信したときの反応を示している。オブジェクト160のテーブルの中でデータ・オブジェクト162を更新することによって更新がなされる。
【００５９】
図17は、更新されたオブジェクト172に対するクライアントの反応を示している。更新されたオブジェクト172を利用し、クライアントのディスプレイ上でGUI要素が更新される。更新プロセスの後、全データ・オブジェクトと、GUIによって指定された更新されたデータオブジェクトおよび変化していないデータオブジェクトと、オブジェクトが表示される。GUI要素170の更新は、リスナーのアプリケーションとアダプタのアプリケーションによって実行される。
【００６０】
クライアントとサーバーを相互作用させるのに必要な上記のアプリケーションはすべて、オブジェクトそのもの、GUI、抽出・更新プロセス、データ・オブジェクトのプロパティを指定する単一のXMLファイルから生成させることができる。要するに図14〜図17は、1つ以上のクライアントからのデータを、アプリケーションの開発者が特別なコードを書くことなくいかにしてデータベースと同期させるかを示している。
【００６１】
図18〜図22は、上記の生成プロセスで使用されるコードのさまざまなプロパティの具体例である。
【００６２】
図18は、エンティティのプロパティに関する説明である。プロパティとしては、例えば、1つのエンティティに関する名称、ラベル、コメントがある。他のプロパティは、そのエンティティのタイプと取り扱い、データのタイプ、そのエンティティを解釈するときの言語、エラー・メッセージを出す条件、オブジェクト・クラスの名称、データ・オブジェクト・クラスの名称、そのエンティティ内の属性リストに対するアクセスのタイプに関係する。
【００６３】
図19は、エンティティのデータベース関連プロパティに関する説明である。そのようなプロパティは、具体的には、スキームの名称、書き込み表、読み出し表、主キー、主キー生成文、データベース内でのデータ・オブジェクトの検索、選択、更新、削除、挿入などである。
【００６４】
図20は、属性のいろいろなプロパティに関する説明である。
【００６５】
図21は、属性のGUI関連プロパティに関する説明である。GUIに関連する属性を利用し、テキストフィールド、チェックボックス、コード表などの中にデータを配置したり、ラベル、アイコンなどとしてデータを配置したりする。GUIの中に示される表は、行と列の数を決めて配置することができる。コード表の名称を用いて表に名前をつけることができる。
【００６６】
図22は、エンティティ相互の関係を示している。ある関係の名称とエンティティ名は、関係そのものと、その関係によって結び付けられたエンティティ群を記述するために明確にしておく必要がある。外来キーを用いてエンティティ同士を結びつけるキーを定義する。外来キーを利用し、構成ファイルに含まれるデータベースのメタ情報内でさまざまな関係を実現する。図6には、“親属性”という関係だけが示してあるが、他の関係（1：1関係、1：n関係、n：m関係、オプションの関係、制限された関係、2つ以上のテーブルの間の関係など）も定義することができる。
【００６７】
本出願には、実施例の助けを借りて説明した本発明の具体例と実施態様が含まれている。当業者であれば、本発明が上に提示した実施態様の詳細に限定されることはなく、本発明の特徴を逸脱することなく別の形態も実現できることがわかるであろう。上に提示した実施態様は、説明のためと考えるべきであり、本発明を限定すると考えてはならない。したがって、本発明を具体化し利用する可能性は、添付の請求項によってのみ制限される。それゆえ請求項に記載したようにして具体化される本発明のさまざまな実施態様（その中には、それと等価な実施態様も含まれる）も、本発明の範囲に含まれる。
【図面の簡単な説明】
【００６８】
【図１】多層環境を表現したブロック図である。
【図２】XML構成ファイルを生成させる1つの具体的な方法についてのブロック図である。
【図３】データベース情報をXMLファイルにマッピングするための簡単な1つの例である。
【図４】XMLエンティティ構成ファイルの一例である。
【図５】XML属性構成ファイルの一例である。
【図６】XML関係構成ファイルの一例である。
【図７】XML構成ファイルから多層環境においてアプリケーションを生成させる1つの具体的な方法についてのブロック図である。
【図８】ビジネス・オブジェクトを具体化したSwingスクリーンの一例である。
【図９】テーブルをSwingテーブルにした1つの例である。
【図１０】ビジネス・オブジェクトとの相互作用の検証と通知に関する1つの具体例である。
【図１１】ビジネス・オブジェクトのデータ保持に関する1つの具体例である。
【図１２】ビジネス・オブジェクトのサーバー側ビジネス論理を実行するためのフックに関する1つの具体例である。
【図１３】グラフィカル・ユーザー・インターフェイスとデータを結合させる1つの具体的な方法についてのブロック図である。
【図１４−１７】クライアントとサーバーの間でデータ・オブジェクトを同期させる方法の一例である。
【図１８−２２】上記の生成プロセスで使用されるコードのさまざまなプロパティの具体例である。
【図１】
2006512633.tif 000003
【図２】
2006512633.tif 000004
【図３】
2006512633.tif 000005
【図４】
2006512633.tif 000006
【図５】
2006512633.tif 000007
【図６】
2006512633.tif 000008
【図７】
2006512633.tif 000009
【図８】
2006512633.tif 000010
【図９】
2006512633.tif 000011
【図１０】
2006512633.tif 000012
【図１１】
2006512633.tif 000013
【図１２】
2006512633.tif 000014
【図１３】
2006512633.tif 000015
【図１４】
2006512633.tif 000016
【図１５】
2006512633.tif 000017
【図１６】
2006512633.tif 000018
【図１７】
2006512633.tif 000019
【図１８】
2006512633.tif 000020
【図１９】
2006512633.tif 000021
【図２０】
2006512633.tif 000022
【図２１】
2006512633.tif 000023
【図２２】
2006512633.tif 000024
【国際調査報告】
2006512633.tif 000025
2006512633.tif 000026
2006512633.tif 000027