(57)【要約】【課題】本発明は公開異種分散型アプリケーションから非公開同種非分散型アプリケーションを生成するシステム及び方法を提供する。【解決手段】当該方法は、公開異種分散型アプリケーションに対する処理を実行することにより、前記アプリケーションは部分的にＪａｖａコードにより書かれる段階、前記公開異種分散型アプリケーションに基づき非公開同種非分散型Ｊａｖａアプリケーションを生成する段階を有する。ある実施例では、生成する段階でドライバ及びスタブが生成される。生成されたドライバ及びスタブは元のコード・ベースと結合され、前記非公開同種非分散型Ｊａｖａアプリケーションを生成する。ドライバの生成はユーザー・コンポーネントのＪａｖａによる実装を生成し、展開時に実行されるウェブ・アプリケーションのイベント処理機構を設定する。スタブの生成は動作を保存しているＪａｖａによる実装でデータベース及び種々のライブラリを置き換える。【選択図】図２
2009087353.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
公開異種分散型アプリケーションに対して処理を実行し、それにより前記アプリケーションが部分的にＪａｖａコードにより書かれる段階、及び
前記公開異種分散型アプリケーションに基づき非公開同種非分散型Ｊａｖａアプリケーションを生成する段階、を有する方法。
【請求項２】
前記非公開同種非分散型Ｊａｖａアプリケーションを生成する段階で、ドライバ及びスタブが生成される、請求項１記載の方法。
【請求項３】
一旦ドライバ及びスタブが生成されると、それらは元のコード・ベースと結合され、前記非公開同種非分散型Ｊａｖａアプリケーションを生成する、請求項２記載の方法。
【請求項４】
ウェブ・アプリケーションのドメインで、ドライバの生成は、ユーザー・コンポーネントのＪａｖａによる実装を生成するとともに、展開時に実行されるウェブ・アプリケーションのイベント処理機構を設定し、それにより前記スタブの生成はデータベース及び種々のライブラリ・コンポーネントを、動作を保存しているＪａｖａによる実装で置き換える、請求項２記載の方法。
【請求項５】
前記ドライバはモジュールを呼び出し、制御スレッドを保持する、請求項２記載の方法。
【請求項６】
前記スタブは前記モジュールにより呼び出される、請求項５記載の方法。
【請求項７】
前記非公開同種非分散型Ｊａｖａアプリケーションは純粋なＪａｖａである、請求項１記載の方法。
【請求項８】
ウェブ・アプリケーションのために環境を生成する前記方法は、スタンドアロン・ツールとして用いられ、型検査、静的解析、又は試験と組み合わせて用いることができる、請求項１記載の方法。
【請求項９】
前記非公開同種非分散型Ｊａｖａアプリケーションに含まれるアプリケーション・コードは、モジュールに含まれ、それにより１又は複数のドライバは展開中に生じる項目をシミュレートし、展開時に、設定コードはウェブ及びエンタープライズＪａｖａビーンズ（ＥＪＢ）層の両方のイベント処理クラスのインスタンスを生成する、請求項１記載の方法。
【請求項１０】
前記設定コードは、展開記述子ファイルに従いイベント処理マッピングを満たす、請求項９記載の方法。
【請求項１１】
コンピューター読み取り可能な媒体に組み込まれたプログラムであって、コンピューターにより読み込まれると、
公開異種分散型アプリケーションに対して処理を実行し、それにより前記アプリケーションが部分的にＪａｖａコードにより書かれる段階、及び
前記公開異種分散型アプリケーションに基づき非公開同種非分散型アプリケーションを生成する段階、を実行するプログラム。
【請求項１２】
前記非公開同種非分散型Ｊａｖａアプリケーションを生成する段階で、ドライバ及びスタブが生成される、請求項１１記載のプログラム。
【請求項１３】
一旦ドライバ及びスタブが生成されると、それらは元のコード・ベースと結合され、前記非公開同種非分散型Ｊａｖａアプリケーションを生成する、請求項１２記載のプログラム。
【請求項１４】
ドライバの生成は、ユーザー・コンポーネントのＪａｖａによる実装を生成するとともに、展開時に実行されるウェブ・アプリケーションのイベント処理機構を設定し、それにより前記スタブの生成はデータベース及び種々のライブラリ・コンポーネントを、動作を保存しているＪａｖａによる実装で置き換える、請求項１２記載のプログラム。
【請求項１５】
前記ドライバはモジュールを呼び出し、制御スレッドを保持する、請求項１２記載のプログラム。
【請求項１６】
前記スタブは前記モジュールにより呼び出される、請求項１５記載のプログラム。
【請求項１７】
前記非公開同種非分散型Ｊａｖａアプリケーションは純粋なＪａｖａである、請求項１１記載のプログラム。
【請求項１８】
公開異種分散型アプリケーションのために環境を生成する前記プログラムは、スタンドアロン・ツールとして用いられ、型検査、静的解析、又は試験と組み合わせて用いることができる、請求項１１記載のプログラム。
【請求項１９】
前記非公開同種非分散型Ｊａｖａアプリケーションに含まれるアプリケーション・コードは、モジュールに含まれ、それにより１１又は複数のドライバは展開中に生じる項目をシミュレートし、展開時に、設定コードはウェブ及びエンタープライズＪａｖａビーンズ（ＥＪＢ）層の両方のイベント処理クラスのインスタンスを生成する、請求項１記載のプログラム。
【請求項２０】
前記設定コードは、展開記述子ファイルに従いイベント処理マッピングを満たす、請求項１９記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にソフトウェア検証の分野に関し、より詳細には公開異種分散型アプリケーションから非公開同種非分散型アプリケーションを生成するシステム及び方法に関する。
【背景技術】
【０００２】
正規の検証技術は、通常、非公開同種非分散型アプリケーションに有効である。例えば、言語の例としてＪａｖａ(登録商標)、検証方法として型検査を例に取ると、Ｊａｖａ型検査技術は、自動実行可能な純粋なＪａｖａ（ｐｕｒｅ  Ｊａｖａ）で書かれた単一のＪａｖａ仮想機械（ＪＶＭ）で動作可能なプログラムに有効である。しかしながら、現実には公開の、異種の、分散型のウェブ・アプリケーションである多くのアプリケーションが存在する。つまり（１）エンド・ユーザーにより駆動される、（２）多くの言語（例えば、Ｊａｖａ、ＪａｖａＳｃｒｉｐｔ、ＨＴＭＬ、及びＳＭＬ）で書かれた人工物を有する、（３）分散型環境で場合によっては異なる装置に存在するクライアント、サーバー、及びデータベースに配置される、アプリケーションである。Ｊａｖａ型検査技術を適用するために、全ての非Ｊａｖａ構成要素（ユーザーを含む）がｐｕｒｅ  Ｊａｖａによる実装として表される必要がある。更に、分散型のアプリケーションは、結果としてＪａｖａプログラムが非分散型であるが元のアプリケーションの全ての関連動作を失わないように処理される必要がある。全てのこのような処理動作と同様に、特に速度、精度、及び自動化の問題が決定的に重要である。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明の目的は、公開異種分散型アプリケーションから非公開同種非分散型アプリケーションを生成するシステム及び方法を提供することである。
【課題を解決するための手段】
【０００４】
本発明は、従来の方法及びシステムに関連する少なくともいくつかの不利点及び問題を実質的に除去又は低減する、（公開異種分散型アプリケーションから）非公開同種非分散型アプリケーションを生成する方法及びシステムを提供する。
【０００５】
本発明の特定の実施例によると、方法が提供される。当該方法は、公開型異種分散型アプリケーションに対する処理を実行し、それにより前記アプリケーションは部分的にＪａｖａコードにより書かれる段階を有する（しかしながら、当該方法は他のプログラム言語にも等しく適用可能である）。当該方法は、前記公開型異種分散型アプリケーションに基づき非公開型同種非分散型Ｊａｖａアプリケーションを生成する段階を更に有する。特定の実施例では、前記非公開型同種非分散型Ｊａｖａアプリケーションを生成する段階で、ドライバ及びスタブが生成される。一旦ドライバ及びスタブが生成されると、それらは元のアプリケーション固有のコード・ベース（一般的に解析中のモジュールと称される）と結合され、非公開型同種非分散型Ｊａｖａアプリケーションを生成する。ウェブ・アプリケーションの領域では、ドライバの生成は、ユーザー・コンポーネントのＪａｖａによる実装を生成するとともに、展開時に実行されるウェブ・アプリケーションのイベント処理機構を設定し、それにより前記スタブの生成は種々のバック・エンド・コンポーネント（例えばデータベース及びＪ２ＥＥコンポーネント）を、動作を保存しているＪａｖａによる実装で置き換える。結果として、前記非公開型同種非分散型Ｊａｖａアプリケーションは純粋なＪａｖａである。
【発明の効果】
【０００６】
本発明の特定の実施例の技術的利点は、スタンドアロン・ツールとしてパッケージされる方法を有する。公開異種分散型アプリケーションのために環境を生成する前記方法は、スタンドアロン・ツールとして用いられ、型検査、静的解析、又は試験と組み合わせて用いることができる。更に、当該ツールは特定のドメインに基づき構成され拡張されうる。従って、当該ツールは種々のアプリケーションに適用できる。また、当該方法は、型検査、静的解析、及び試験のようないくつかの技術により用いられうる試験装備と考えられるドライバ及びスタブを生成する。
【０００７】
他の技術的利点は、以下の図面、説明、及び請求項から当業者に直ちに明らかである。更に、特定の利点が以上に列挙されたが、種々の実施例は、列挙された利点の何れも有さないか、又は一部若しくは全てを有して良い。
【０００８】
本発明の特定の実施例及びその利点のより完全な理解のため、添付の図と共に以下の説明を参照する。
【発明を実施するための最良の形態】
【０００９】
図１は、本発明のある実施例に関連するウェブ・アプリケーション・ドメイン１０の一例を説明する概略図である。図１は、クライアント１２、データベース１８、及びＪ２ＥＥサーバー１４を有する。Ｊ２ＥＥサーバー１４はサーブレット及びエンタープライズ・ジャバ・ビーンズ（Enterprise  Java  beans：ＥＪＢ）を有する。
【００１０】
本発明の実施例の教示によると、ウェブ・アプリケーションの環境生成を効率的に提供するシステムが提供される。このような方法は、部分的にＪａｖａで書かれた公開異種分散型ウェブ・アプリケーションを、正式な検証技術（例えば、Ｊａｖａ型検査など）により分析することが可能な非公開同種非分散型Ｊａｖａプログラムに変換しうる。
【００１１】
当該記述はドライバ及びスタブの生成を規定する。ドライバの生成は、ユーザー・コンポーネントのＪａｖａによる実装を生成し、同時に展開時に行われるウェブ・アプリケーションのイベント処理機構を設定する。スタブの生成は、データベースやＪ２ＥＥコンポーネントのような実際のコンポーネントを、重要な動作を保存するが非分散型プログラムで実行されるＪａｖａによる実装に置き換えうる。一旦ドライバ及びスタブが生成されると、それらは元のアプリケーション固有のコード・ベース（元のライブラリを除く）と結合され、非公開同種非分散型Ｊａｖａプログラムを生成する。
【００１２】
このような手法の使用には複数の利点がある。例えば、柔軟な方法はスタンドアロン・ツールとしてパッケージされうる。更に、当該ツールは特定のドメインに基づき構成され拡張されうる。従って、当該ツールは種々のアプリケーションに適用できる。また、当該方法は、型検査、静的解析、及び試験のようないくつかの技術により用いられうる試験装備と考えられるドライバ及びスタブを生成する。
【００１３】
再び図１を参照する。「公開」の語は、ユーザー・コンポーネントがウェブ・ブラウザ、アプレット、又はグラフィカル・ユーザー・インターフェース（ＧＵＩ）を通じてアプリケーションを駆動する状況を表す。「異種」の語は、Ｊａｖａに加え多くの他の言語、例えばＨＴＭＬ、ＪａｖａＳｃｒｉｐｔ、ＰＨＰ、Ｐｅｒｌ等が用いられる事実を表す。本発明との関連では、「複合」の語は、展開記述子ファイルによりアプリケーションの主要部分が展開時に生成される、標準的に本来分散型の複数層のアーキテクチャを示す。
【００１４】
留意すべき点は、非公開同種非分散型システムにのみ適用可能な既存の型検査技術が環境生成と称される追加型を必要とすることである。本発明は、公開異種分散型アプリケーションの欠陥を検出する試験装備／試験スーツ／試験ケースの生成に関する。これは、標準的に任意の試験／検証技術の最初の段階である。検証ツールのアーキテクチャは、通常、製品のホワイト・ペーパーとして企業から出版される。従ってこれらの項目と本発明により提案される環境生成ツールとの類似点を識別することは比較的容易である。
【００１５】
従って、本願明細書で提案されるシステムは、非公開同種非分散型Ｊａｖａアプリケーションを、部分的にＪａｖａで書かれた公開異種分散型アプリケーションから生成する方法を提供する。このようなアプリケーションのための環境生成は、スタンドアロン・ツールとしてパッケージでき、型検査、静的解析、及び試験と組み合わせて使用することができる。このような公開異種分散型アプリケーションの型検査のＪａｖａによる実装のための環境生成は、現在、既存のシステムにはない。
【００１６】
図２は、例であるシステム２０の環境生成技術の一例を説明する概略ブロック図である。解析中のモジュールがＪａｖａクラスの集合である場合（例えばアプリケーション固有のコード・ベースであり、再使用可能なライブラリを除く）、環境生成はモジュールのドライバ及びスタブを生成する。ドライバは、制御スレッドを保持し通常はモジュールを呼び出すＪａｖａクラスである。その他の環境クラスはスタブと称される。ウェブ・アプリケーションのドメインでは、ドライバはエンド・ユーザーをシミュレートし、スタブはデータベースやＪ２ＥＥライブラリのようなバック・エンド・コンポーネントをモデル化する。
【００１７】
モデル化原則については、環境内で非決定論をモデル化する特定の方法が提供される。既存の環境生成技術は、同種のシステムにのみ適用可能であり、純粋なＪａｖａによる実装のみに有効なユーザーの仕様、一般的な静的解析及び動的解析に依存する。
【００１８】
従って、異種システムを処理するための新たな技術が必要である。特に、ウェブ・アプリケーションの分野では、（１）イベント処理マッピングを含むイベント処理機構、（２）格納及び検索機構、（３）ＥＪＢの特性（エンティティ及びセッション・ビーンズ、それらの寿命）、及び（４）特定のアプリケーションで用いられる認証機構、に関する情報を有する展開記述子ファイルを処理するための新たな技術が必要である。
【００１９】
これら複合的特徴の全ては、記述子ファイル及びドメイン・セマンティクスに従い展開時に動的に生成される。結果として生じる展開されたアプリケーションは、現在は型検査エンジンにより処理できない分散型環境で実行される。
【００２０】
図３は、本発明のある実施例によるウェブ・アプリケーションの環境生成の一例を説明する概略ブロック図である。図３は、一式のドライバ２６、モジュール３０（ウェブ・コンテナ内にサーブレット、及びＥＪＢコンテナ内にＥＪＢを含む）、及び一式のスタブ３４を有する。スタブは、この非限定的な例では、ｊａｖａｘ．ｓｅｒｖｌｅｔコンポーネント（ウェブ・コンテナからストリーミングされる）、及びｊａｂａｘ．ｅｊｂコンポーネント（ＥＪＢコンテナからストリーミングされる）を有する。モジュール３０は、データベースと結合される。データベースは、本発明の動作を実行するために必要な如何なる項目も有しうる。
【００２１】
効率的に、公開システムは、いくつかのコンポーネント（例えば、人的コンポーネント、又は人的コンポーネントのＪａｖａ表現）に応じる。これらのシステムは非分散型であり、単一の機械のみが用いられる。最終的に、非Ｊａｖａであった如何なるコンポーネントも翻訳されるので、全てが純粋なＪａｖａになる。
【００２２】
アプリケーション・コードは、標準的にウェブ・アプリケーションの開発者により書かれたコードであり、図３の中央コンポーネント（モジュール３０）に含まれてよい。ドライバ２６は、展開時間中に生じる項目をシミュレートする。展開時間には、設定コードはウェブ及びＥＪＢ層の両方のイベント処理クラスのインスタンスを作成する。更に、設定コードは、展開記述子ファイルに従いイベント処理マッピングを満たす。
【００２３】
クライアント・コードについては、ドライバの生成は２つの特徴、つまりシナリオ及びユーザー入力を対象とする。シナリオ（イベントのシーケンス）は、自動化された記述から既存のコード生成技術を再利用する。それらも、ＵＭＬ、ＸＭＬに基づく記述、及び／又はＷＡＶＥ仕様を用いてよい。
【００２４】
ユーザー入力を生成するため、ドライバの生成は、ユーザーがデータを入力する場所を示す定記号列（例えば、「ｕｓｅｒＮａｍｅ」）、例えばユーザーのユーザー名の識別に対応する。このようなプレースホルダーのセットは有限である。識別は静的解析を用いて行われる。プレースホルダーは具体的な値（例えば「Ｊ．Ｓｍｉｔｈ」）、記号、又は抽象値により満たされる。静的解析は、ドメイン・パーティションを見付けるために用いられ、全ての関連する具体的な値を生成してよい。
【００２５】
留意すべき点は、図３の説明で新規な点が、アーキテクチャが動作するドメインであることである。本願明細書で説明される技術は、ウェブ・アプリケーションに適用されていない。また、このような技術は公開異種分散型アプリケーションに適用されていない。
【００２６】
スタブの生成を特にライブラリを参照して説明する。多くのクラスがコンテナとして（例えば鍵及びその値を保持するマップを用いて）、カスタマイズされた静的解析及びドメイン特有の知識を用いてモデル化される。ＥＪＢはそれらのセマンティクス及び記述子ファイルを用いてモデル化される。データベースは情報を保持するコンテナとしてモデル化されてよい。多くのライブラリは、同様の方法で実装される。留意すべき点は、ドメイン毎にスタブが異なり、従って生成されたＪａｖａコードがこれらの相違を反映するようにドメインのセマンティクスが検査されるべきであることである。スタブは同一のドメインからの複数のアプリケーションに渡り再利用されてよい。
【００２７】
図４及び図５は、公開異種分散型ウェブ・アプリケーションから非公開同種非分散型アプリケーションを生成するアーキテクチャの一例を説明する概略ブロック図である。図４で、システム５０はウェブ・アプリケーションのための環境生成の一例として示される。ドライバに対し、ユーザーが実行しうる一連の動作を記述するためにユース・ケースが用いられてよい。モジュールは、アーキテクチャの中央部分により表現される。理想的には、当該モジュールは影響を受けない。つまり、当該モジュールは開発者が何を作成しても損なわれないままである。当該システムのバック・エンドには、データベース及びライブラリ・コンポーネントがある。
【００２８】
図４に示されるように、ドライバはユーザー仕様及び記述子ファイルから生成される。図４の第１の部分は、シミュレートされるユーザー動作を説明する。モジュール部分では、「注文が確認された後に買い物かごが空になる」というプロパティが自動的に型検査により検証される。ビジネス・ロジックは、アプリケーション・コードを有するセグメントで検証される。Ｊ２ＥＥ／データベースの呼び出しは、図の第３の部分で、ドメイン固有の知識及び記述子ファイルを用いてスタブに切り出される。これは、サーバー／データベースとの相互作用を含む。
【００２９】
同様の相互作用の一例は、図５により提供される。再び、初期ユーザー動作（ドライバに関連する）及び検証されるビジネス・ロジックの間の相互作用がある。図５の中央のアプリケーション・コードは、スタブと相互作用し、それにより複合ライブラリがスタブとして切り出される。
【００３０】
多数の事例研究が行われ、本発明のいくつかの態様が更に検証される。例えば、ＳＵＮのペット店が以下のパラメータを用いて試験された。つまり、（１）ドメイン：Ｊ２ＥＥライブラリ、ｘｍｌ記述子ファイル、（２）元のコード・ベース（ライブラリを除く）、１３Ｋ  ＮＣ  ＬＯＣ（コードの非コメント・ライン）である。ペット店の例のために生成された環境は、ライブラリ及びドライバのためのスタブを含み６．５Ｋ  ＮＣ  ＬＯＣだった。
【００３１】
第２の事例研究は、異なるアプリケーションを用いて行われた。ここでアプリケーションはウェブ・アプリケーションを展開するフレームワークを表す。一旦環境が生成されると、型検査が実行されてよい。アプリケーションは以下のパラメータを用い記述されてよい。つまり、（１）Ｊ２ＥＥ及びフレームワーク・ライブラリ、ｘｍｌ記述子ファイル、（２）元のコード・ベース（ライブラリを除く）、６３．５Ｋ  ＮＣ  ＬＯＣ（コメント・ラインを含む）である。この例で生成された環境は３Ｋ  ＮＣ  ＬＯＣだった。
【００３２】
これらのシナリオでは、アーキテクチャは、ウェブ・アプリケーションに理想的な環境生成技術を提供する。公開分散システム（他の言語が直ちに用いられる場合、必ずしもＪａｖａで書かれている必要はない）は、このデータを転換し、最終的に、既存の型検査技術（又は静的解析のような他の技術）により実行可能な同種の非分散型の純粋なＪａｖａプログラムを生成する。ユース・ケースがない場合でも、ドライバが生成され有用な試験ケースを生成してよい。
【００３３】
留意すべき重要な点は、図３、４、及び５に示されたコンポーネントが、デジタル回路、アナログ回路、ソフトウェア、又はこれら要素の如何なる適切な組合せとして実施されてもよいことである。更に、これらの示されたコンポーネントは、ソフトウェア及び／又はアルゴリズムを有し、本願明細書に記載されたそれらの特徴及び／又はアプリケーションを達成してよい。ソフトウェアは、本願明細書で説明された機能が実行されるようコードを実行してよい。或いは、このような動作及び技術は、如何なる適切なハードウェア、コンポーネント、装置、特定用途向け集積回路（ＡＳＩＣ）、追加のソフトウェア、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、プロセッサー、消去可能ＲＯＭ（ＥＥＰＲＯＭ）、又は当該動作を実現可能な如何なる他の適切な物により達成されてもよい。この構成ではこれらのアーキテクチャの構造により有意な柔軟性が提供される。従って、このような機能は説明された環境の外部で提供されてもよいことが容易に理解されるだろう。このような場合、このような機能は別個のコンポーネント、装置、又はモジュールに直ちに実装されてよい。
【００３４】
本発明は識別されている特定のコンポーネントと共に詳細に記載されたが、種々の変化及び変形が当業者により提案され得る。また全てのこのような変化及び変形は特許請求の範囲内に包含されると見なされる。
【００３５】
更に、留意すべき点は、開示された特定の処理フローに関し、当該フローの議論された如何なる段階も本発明の範囲から逸脱することなく変更、増加、又は省略されてよいことである。更に、段階は本発明の範囲から逸脱することなく如何なる適切な順序で、又は同時に実行されて良い。
【００３６】
当業者は、多数の他の変化、置換、変形、改造、及び変更を確認し得る。また本発明は、全てのこのような変化、置換、変形、改造、及び変更を特許請求の範囲内に包含すると見なされる。
【００３７】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）  方法であって、
公開異種分散型アプリケーションに対して処理を実行し、それにより前記アプリケーションが部分的にＪａｖａコードにより書かれる段階、及び
前記公開異種分散型アプリケーションに基づき非公開同種非分散型Ｊａｖａアプリケーションを生成する段階、を有する方法。
（付記２）  前記非公開同種非分散型Ｊａｖａアプリケーションを生成する段階で、ドライバ及びスタブが生成される、付記１記載の方法。
（付記３）  一旦ドライバ及びスタブが生成されると、それらは元のコード・ベースと結合され、前記非公開同種非分散型Ｊａｖａアプリケーションを生成する、付記２記載の方法。
（付記４）  ウェブ・アプリケーションのドメインで、ドライバの生成は、ユーザー・コンポーネントのＪａｖａによる実装を生成するとともに、展開時に実行されるウェブ・アプリケーションのイベント処理機構を設定し、それにより前記スタブの生成はデータベース及び種々のライブラリ・コンポーネントを、動作を保存しているＪａｖａによる実装で置き換える、付記２記載の方法。
（付記５）  前記ドライバはモジュールを呼び出し、制御スレッドを保持する、付記２記載の方法。
（付記６）  前記スタブは前記モジュールにより呼び出される、付記５記載の方法。
（付記７）  前記非公開同種非分散型Ｊａｖａアプリケーションは純粋なＪａｖａである、付記１記載の方法。
（付記８）  ウェブ・アプリケーションのために環境を生成する前記方法は、スタンドアロン・ツールとして用いられ、型検査、静的解析、又は試験と組み合わせて用いることができる、付記１記載の方法。
（付記９）  前記非公開同種非分散型Ｊａｖａアプリケーションに含まれるアプリケーション・コードは、モジュールに含まれ、それにより１又は複数のドライバは展開中に生じる項目をシミュレートし、展開時に、設定コードはウェブ及びエンタープライズＪａｖａビーンズ（ＥＪＢ）層の両方のイベント処理クラスのインスタンスを生成する、付記１記載の方法。
（付記１０）  前記設定コードは、展開記述子ファイルに従いイベント処理マッピングを満たす、付記９記載の方法。
（付記１１）  コンピューター読み取り可能な媒体に組み込まれたプログラムであって、コンピューターにより読み込まれると、
公開異種分散型アプリケーションに対して処理を実行し、それにより前記アプリケーションが部分的にＪａｖａコードにより書かれる段階、及び
前記公開異種分散型アプリケーションに基づき非公開同種非分散型アプリケーションを生成する段階、を実行するプログラム。
（付記１２）  前記非公開同種非分散型Ｊａｖａアプリケーションを生成する段階で、ドライバ及びスタブが生成される、付記１１記載のプログラム。
（付記１３）  一旦ドライバ及びスタブが生成されると、それらは元のコード・ベースと結合され、前記非公開同種非分散型Ｊａｖａアプリケーションを生成する、付記１２記載のプログラム。
（付記１４）  ドライバの生成は、ユーザー・コンポーネントのＪａｖａによる実装を生成するとともに、展開時に実行されるウェブ・アプリケーションのイベント処理機構を設定し、それにより前記スタブの生成はデータベース及び種々のライブラリ・コンポーネントを、動作を保存しているＪａｖａによる実装で置き換える、付記１２記載のプログラム。
（付記１５）  前記ドライバはモジュールを呼び出し、制御スレッドを保持する、付記１２記載のプログラム。
（付記１６）  前記スタブは前記モジュールにより呼び出される、付記１５記載のプログラム。
（付記１７）  前記非公開同種非分散型Ｊａｖａアプリケーションは純粋なＪａｖａである、付記１１記載のプログラム。
（付記１８）  公開異種分散型アプリケーションのために環境を生成する前記プログラムは、スタンドアロン・ツールとして用いられ、型検査、静的解析、又は試験と組み合わせて用いることができる、付記１１記載のプログラム。
（付記１９）  前記非公開同種非分散型Ｊａｖａアプリケーションに含まれるアプリケーション・コードは、モジュールに含まれ、それにより１１又は複数のドライバは展開中に生じる項目をシミュレートし、展開時に、設定コードはウェブ及びエンタープライズＪａｖａビーンズ（ＥＪＢ）層の両方のイベント処理クラスのインスタンスを生成する、付記１記載のプログラム。
（付記２０）  前記設定コードは、展開記述子ファイルに従いイベント処理マッピングを満たす、付記１９記載のプログラム。
（付記２１）  システムであって、
公開異種分散型アプリケーションに対する処理を実行し、それにより前記アプリケーションが部分的にＪａｖａコードにより書かれる段階、及び前記公開異種分散型アプリケーションに基づき非公開同種非分散型アプリケーションを生成する段階、を実行するアプリケーション・コードを含むモジュールを有するシステム。
（付記２２）  前記非公開同種非分散型Ｊａｖａアプリケーションを生成する段階で、ドライバ及びスタブが生成される、付記２１記載のシステム。
（付記２３）  一旦ドライバ及びスタブが生成されると、それらは元のコード・ベースと結合され、前記非公開同種非分散型Ｊａｖａアプリケーションを生成する、付記２２記載のシステム。
（付記２４）  ドライバの生成は、ユーザー・コンポーネントのＪａｖａによる実装を生成するとともに、展開時に実行されるウェブ・アプリケーションのイベント処理機構を設定し、それにより前記スタブの生成はデータベース及び種々のライブラリ・コンポーネントを、動作を保存しているＪａｖａによる実装で置き換える、付記２２記載のシステム。
（付記２５）  前記ドライバは前記モジュールを呼び出し、制御スレッドを保持し、前記スタブは前記モジュールにより呼び出される、付記２２記載のシステム。
【図面の簡単な説明】
【００３８】
【図１】本発明のある実施例に関連するウェブ・アプリケーション・ドメインの一例を説明する概略図である。
【図２】環境生成技術の一例を説明する概略ブロック図である。
【図３】本発明のある実施例によるウェブ・アプリケーションの環境生成の一例を説明する概略ブロック図である。
【図４】公開異種分散型ウェブ・アプリケーションから非公開同種非分散型アプリケーションを生成するアーキテクチャの一例を説明する概略ブロック図である。
【図５】公開異種分散型ウェブ・アプリケーションから非公開同種非分散型アプリケーションを生成するアーキテクチャの一例を説明する概略ブロック図である。
【符号の説明】
【００３９】
１０  ウェブ・アプリケーション・ドメイン
１２  クライアント
１４  Ｊ２ＥＥサーバー
１８  データベース
２０  コード・ベース
２６  一式のドライバ
３０  モジュール
３４  一式のスタブ
【図１】
2009087353.tif 000003
【図２】
2009087353.tif 000004
【図３】
2009087353.tif 000005
【図４】
2009087353.tif 000006
【図５】
2009087353.tif 000007