(57)【要約】デプロイメントツール用のシステム及び方法が提供される．１つの側面における本デプロイメントツールは、任意の所定のスタンダードに準拠したアプリケーションツールにより発生されるソフトウエアコンポーネントを組立て且つデプロイする。１つの側面における本システム及び方法は各アプリケーションサーバーの特定のデプロイメント論理をプラグインモジュールに分離する。ユーザはデプロイメント変数を特定し且つ必要に応じてデプロイメントをカスタム化するための一連の入力ツール又はパネルが与えられる。そのカスタム化はターゲットアプリケーションサーバー、及び、オプションとして、ターゲットプラットフォーム及びオペレーティングシステムを選択する能力を包含している。
2006521638.tif 000002
【特許請求の範囲】
【請求項１】
プログラムモジュールをデプロイするシステムにおいて、
統合型デプロイメント環境において又はスタンドアローンモードにおいて稼動すべく動作可能であり、１個又はそれ以上のプログラムモジュールをデプロイすべきターゲットアプリケーションサーバーを決定すべく動作可能なデプロイメントモジュール、
前記１つ又はそれ以上のプログラムモジュールを前記デプロイメントモジュールから１つ又はそれ以上のターゲットアプリケーションサーバーへデプロイさせるために前記１つ又はそれ以上のターゲットアプリケーションサーバーと関連するアプリケーションサーバー特定デプロイメントコンフィギュレーションを処理するために前記デプロイメントモジュールにより動的にロード可能な１つ又はそれ以上のプラグインモジュール、
を有しているシステム。
【請求項２】
請求項１において、前記デプロイメントモジュールが、ユーザがターゲットアプリケーションサーバーを選択することを可能とするためにユーザに使用可能なターゲットアプリケーションサーバーのリストを提供すべく動作可能であるシステム。
【請求項３】
請求項２において、前記デプロイメントモジュールが、該ユーザが新たなターゲットアプリケーションサーバーを付加することを可能とさせるべく動作可能であるシステム。
【請求項４】
請求項３において、前記デプロイメントモジュールをアップデートすることなしに前記デプロイメントモジュールで稼動すべく前記新たなターゲットアプリケーションサーバーと関連する新たなプラグインモジュールを動的にロードさせることが可能であるシステム。
【請求項５】
請求項１において、更に、前記デプロイメントモジュールと相互作用すべく実現するために前記１つ又はそれ以上のプラグインモジュールに対する共通組のプログラム定義を包含しているシステム。
【請求項６】
請求項４において、前記共通組のプログラム定義が、オブジェクト指向型インターフェース定義を包含しているシステム。
【請求項７】
請求項１において、前記アプリケーションサーバー特定デプロイメントコンフィギュレーションが、前記１つ又はそれ以上のターゲットアプリケーションサーバーがその上で稼動する１つ又はそれ以上のプラットフォームを包含しているシステム。
【請求項８】
請求項７において、前記アプリケーションサーバー特定デプロイメントコンフィギュレーションが、前記１つ又はそれ以上のプラットフォームに関連する情報を包含しているシステム。
【請求項９】
請求項１において、前記アプリケーションサーバー特定デプロイメントコンフィギュレーションが、前記ターゲットアプリケーションサーバーのディレクトリ構造を包含しているシステム。
【請求項１０】
請求項１において、前記アプリケーションサーバー特定デプロイメントコンフィギュレーションが、前記ターゲットアプリケーションサーバーと関連するセキュリティ情報を包含しているシステム。
【請求項１１】
請求項１において、前記アプリケーションサーバー特定デプロイメントコンフィギュレーションが、前記１つ又はそれ以上のプログラムモジュールに関連する情報を包含しているシステム。
【請求項１２】
プログラムモジュールをデプロイさせる方法において、
１つ又はそれ以上のプログラムモジュールをデプロイさせるためのターゲットアプリケーションサーバーを決定し、
前記ターゲットアプリケーションサーバーと関連するコンフィギュレーション情報を決定するために前記ターゲットアプリケーションサーバーと関連するプラグインを動的にロードし、
デプロイメントファイルを前記決定したコンフィギュレーション情報でアップデートし、
前記１つ又はそれ以上のプログラムモジュール及び前記アップデートしたデプロイメントファイルをパッケージングし、
前記パッケージングした１つ又はそれ以上のプログラムモジュールを前記ターゲットアプリケーションサーバーへデプロイする、
ことを包含している方法。
【請求項１３】
請求項１２において、更に、前記パッケージングした１つ又はそれ以上のプログラムモジュールを前記ターゲットアプリケーションサーバーへ転送することを包含している方法。
【請求項１４】
請求項１３において、前記転送が、ファイル転送プロトコル（ＦＴＰ）による転送を包含している方法。
【請求項１５】
請求項１２において、前記ターゲットアプリケーションサーバーを決定する場合に、異なるアプリケーションサーバープロバイダーにより提供される複数個のアプリケーションサーバーの中からターゲットアプリケーションサーバーを決定することを包含している方法。
【請求項１６】
プログラムを１つ又はそれ以上のターゲットアプリケーションサーバーへデプロイさせるためのデプロイメントツールを提供する方法において、
ターゲットアプリケーションサーバーを決定すべく動作可能なデプロイメントモジュールを与え、
実現すべきプラグインモジュールに対する１組の共通定義を与える、
ことを包含しており、前記１組の共通定義は、前記デプロイメントモジュールと前記プラグインモジュールとの間の相互作用を与えるために使用され且つ１つ又はそれ以上のプログラムモジュールを前記ターゲットアプリケーションサーバーへデプロイするために１つ又はそれ以上のターゲットアプリケーションサーバー特定コンフィギュレーションを処理するためにも使用される方法。
【請求項１７】
請求項１６において、更に、
前記１組の共通定義を実現する１つ又はそれ以上のプラグインモジュールを与える、
ことを包含しており、前記１つ又はそれ以上のプラグインモジュールは夫々の１つ又はそれ以上のターゲットアプリケーションサーバーと関連している方法。
【請求項１８】
プログラムモジュールをデプロイする方法ステップを実施するためにマシンにより実行可能な命令からなるプログラムをタンジブルに実現するマシンにより読取可能なプログラム格納装置において、
１つ又はそれ以上のプログラムモジュールをデプロイするためにターゲットアプリケーションサーバーを決定し、
前記ターゲットアプリケーションサーバーと関連するコンフィギュレーション情報を決定するために前記ターゲットアプリケーションサーバーと関連するプラグインモジュールを動的にロードし、
デプロイメントファイルを前記決定したコンフィギュレーション情報でアップデートし、
前記１つ又はそれ以上のプログラムモジュール及び前記アップデートしたデプロイメントファイルをパッケージングし、
前記パッケージングした１つ又はそれ以上のプログラムモジュールを前記ターゲットアプリケーションサーバーへデプロイする、
ことを包含しているプログラム格納装置。
【請求項１９】
１つ又はそれ以上のプログラムモジュールをターゲットアプリケーションサーバーへデプロイするシステムにおいて、
統合型デプロイメント環境において又はスタンドアローンモードにおいて動作可能であり、１つ又はそれ以上のプログラムモジュールをデプロイするターゲットアプリケーションサーバーを決定すべく動作可能なデプロイメントモジュール、
前記デプロイメントモジュールと相互作用するために実現すべきプラグインモジュールに対する共通組のプログラム定義、
を有しており、前記共通組のプログラム定義は、前記ターゲットアプリケーションサーバーへデプロイするためにターゲットアプリケーションサーバー特定情報をコンフィギュアするために前記プラグインモジュール及び前記デプロイメントモジュールにより使用されるシステム。
【請求項２０】
請求項１９において、更に、
夫々の１つ又はそれ以上のターゲットアプリケーションサーバーと関連する１つ又はそれ以上のプラグインモジュール、
を包含しており、前記１つ又はそれ以上のプラグインモジュールは、夫々の１つ又はそれ以上のターゲットアプリケーションサーバーと関連するアプリケーションサーバー特定コンフィギュレーションを決定するために前記共通組のプログラム定義を実現するシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願はコンピュータシステムに関するものであって、特に、ターゲットサーバー又はプラットフォームに対してソフトウエアコンポーネントをアッセンブルし且つデプロイするシステム及び方法に関するものである。
【背景技術】
【０００２】
アプリケーションサーバーとも呼称されるミドルティア（ｍｉｄｄｌｅ  ｔｉｅｒ）アプリケーションは、典型的に、データベース管理システム、トランズアクションモニタ、ネーミング及びディレクトリィサービス等の広範囲な既存のエンタプライズシステムの上に存在している。これらのアプリケーションサーバーの多くは、種々のエンタプライズシステムを管理し且つアクセスするアプリケーションに対してポータビリティ及びスケーラビリティを与えるためにジャバ２プラットフォーム、エンタプライズエディション（Ｊ２ＥＥ）等のスタンダード仕様に基づいて構築されている。
【０００３】
例えば、Ｊ２ＥＥは後にスタンダードとなるべきエンタプライズアプリケーションを開発するための仕様を定義する。Ｊ２ＥＥはこれらのコンポーネントに対して１組のサービスを提供することにより、且つアプリケーション挙動の多くの詳細を自動的に取り扱うことによりエンタプライズアプリケーションを標準化したモジュール型コンポーネントに基づくものとさせる。Ｊ２ＥＥは、エンタプライズジャバビーン（ＥＪＢ）コンポーネント、ジャバサーブレットＡＰＩ、ジャバサーバーページ及び拡張マークアップ言語（ＸＭＬ）技術に対するサポートを包含している。
【０００４】
従って、Ｊ２ＥＥスタンダード仕様に準拠して構築されたアプリケーションは、Ｊ２ＥＥスタンダードをサポートするアプリケーションサーバーへデプロイさせることが可能であり、従ってデプロイされたアプリケーションが、アプリケーションサーバーを介してその基礎となるエンタプライズシステムにより供給された種々の資源を管理し且つアクセスすることを可能とする。概略的に、デプロイメントは、Ｊ２ＥＥアプリケーション等のアプリケーションプログラムの種々の部分をアプリケーションサーバーにおける適宜の位置へ分布させ且つ形態特定させるプロセスである。
【０００５】
Ｊ２ＥＥはアプリケーションサーバー及びこれらのアプリケーションサーバー上で稼動するアプリケーションに対してスタンダードの仕様を与えるものであるが、各アプリケーションはベンダー又はアプリケーションサーバープロバイダーの特定の基準に従ってデプロイされねばならない。殆どの場合において、アプリケーションサーバーを供給する各ベンダーは、又、アプリケーションをそのアプリケーションサーバーへ特定的にデプロイするためのデプロイメント方法及びツールを提供する。更に、特定のアプリケーションサーバーデプロイメント環境においてデプロイされたアプリケーションは、そのアプリケーションサーバーのみに対してデプロイすることに制限される。従って、アプリケーションを異なるアプリケーションサーバーへデプロイするためには、デプロイするためにそのアプリケーションを開発するために多数のデプロイメント環境ツールを使用せねばならない場合がある。
【０００６】
異なるアプリケーションサーバーに対する異なるデプロイメント方法ということは、ユーザが多数のデプロイメント方法を学習し且つ異なるアプリケーションサーバープロバイダーにより提供される多数の且つ変化するデプロイメントツールに遅れずについて行くことを必要とすることを意味している。同様に、ユーザは、デプロイメント用のアプリケーションを開発するための多数のデプロイメント環境ツールを学習し且つ使用することが必要である。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従って、必要とされていることは、アッセンブルされ且つデプロイされるべき任意の開発環境ツールを使用して構築されたアプリケーション及びコンポーネントをユーザが任意のその他のアプリケーションサーバーへデプロイすることを可能とするようなユニバーサルデプロイメントツールである。
【課題を解決するための手段】
【０００８】
デプロイメントツール用のシステム及び方法が提供される。本デプロイメントツールは、１つの側面においては、任意の所定のスタンダードに準拠したアプリケーションツールにより発生されたプログラムモジュール又はソフトウエアコンポーネントをアッセンブルし且つデプロイする。本システム及び方法は、１つの側面においては、各アプリケーションサーバーの特定デプロイメント論理をプログラインモジュールへ分離する。ユーザは、デプロイメント変数を特定し且つそのデプロイメントを必要に応じてカスタム化するために一連の入力ツール又はパネルが与えられる。そのカスタム化は、ターゲットアプリケーションサーバーを選択するための能力を包含しており、且つ、オプションとして、ターゲットプラットフォーム及びオペレーティングシステムを包含している。提供されるシステム及び方法は、スタンドアローンモードで稼動させることが可能であり、及び／又はそれから開始させることが可能な開発ツール内に統合させることが可能である。
【０００９】
１つの側面においては、本システムは、１つ又はそれ以上のプログラムモジュールをデプロイすべきターゲットアプリケーションサーバーを決定すべく動作可能なデプロイメントモジュールを有している。本システムは、又、デプロイメントモジュールとの相互作用を実現するためにプラグインモジュールに対し共通組のプログラム定義を包含している。該共通組のプログラム定義は、ターゲットアプリケーションサーバーに対してデプロイするためのターゲットアプリケーションサーバー特定情報をコンフィギュア即ち形態特定するためにプラグインモジュール及びデプロイメントモジュールにより使用される。該共通組のプログラム定義は、方法及び変数を定義するオブジェクト指向型インターフェース定義を包含することが可能であり、プラグインモジュールは特定のターゲットアプリケーションサーバーに対してプラグインをカスタム化するために実現することが可能である。
【００１０】
別の側面においては、本システムは１つ又はそれ以上のプラグインモジュールを提供することが可能である。例えば、本システムは本システムがサポートすることが可能な各ターゲットアプリケーションサーバーに対応するプラグインモジュールを提供することが可能である。該プラグインモジュールは該共通組のプログラム定義を実現し、関連するターゲットアプリケーションサーバーに対するアプリケーションサーバー特定コンフィギュレーションに関連するカスタム化を与える。
【００１１】
更に別の側面においては、プログラムモジュール又はファイルをデプロイするための方法が、１つ又はそれ以上のプログラムモジュールをデプロイするためのターゲットアプリケーションサーバーを決定し且つ該ターゲットアプリケーションサーバーと関連するコンフィギュレーション情報を決定するためのターゲットアプリケーションサーバーと関連するプラグインモジュールを動的にロードすることを包含している。デプロイメントファイルは決定したコンフィギュレーション情報でアップデートされ且つプログラムモジュールはアップデートしたデプロイメントファイルで再度パッケージングされる。再度パッケージングされたファイルは、次いで、プラグインで実現されたデプロイルーチンを喚起することによりターゲットアプリケーションサーバーへデプロイさせる準備がなされる。１つの側面においては、本開示のデプロイメントツールが稼動しているシステムから遠隔的に位置されているアプリケーションサーバーに対して、再度パッケージングされたファイルが、例えば、デプロイルーチンが喚起される前に、ＦＴＰ（ファイル転送プロトコル）を使用してターゲットアプリケーションサーバーへ転送される。
【発明を実施するための最良の形態】
【００１２】
本開示は、プログラムファイル又はプログラムモジュールとも呼称されるソフトウエア又はプログラムユニットを、所定の仕様スタンダードに準拠した任意のミドルティアアプリケーション又はアプリケーションサーバーへデプロイさせるシステム及び方法を記載する。このような所定の仕様スタンダードの１例はＪ２ＥＥを包含しており且つこのようなソフトウエアユニットの１例はコンポーネントを包含している。従って、例えば、本開示におけるシステム及び方法は、エンタプライズジャバビーン（ＥＪＢ）、ウエブアプリケーション、サーブレット等を種々のアプリケーションサーバーへデプロイするための能力を与える。デプロイ可能なＥＪＢは、ステートレスセッションビーン（ｓｔａｔｅｌｅｓｓ  ｓｅｓｓｉｏｎ  ｂｅａｎ）、ステートフル（ｓｔａｔｅｆｕｌ）セッションビーン、ビーン管理型パーシステンス（ｐｅｒｓｉｓｔｅｎｓｅ）エンティティビーン、コンテナ（ｃｏｎｔａｉｎｅｒ）管理型パーシステンスエンティティビーン、メッセージ駆動型ビーン及びウエブコンポーネント又はアプリケーションを包含することが可能であるが、このようなコンポーネントのみに制限されるものではない。
【００１３】
従って、例えば、本開示において与えられるシステム及び方法は、ＮＴ、ウインドウズ２０００、ソラリス、ＡＩＸ、ＨＰ、リナックス及びＡＳ／４００等のプラットフォーム上でウエブロジック（Ｗｅｂｌｏｇｉｃ）、ウエブスフィア（Ｗｅｂｓｐｈｅｒｅ）、アイプラネット（ｉＰｌａｎｅｔ）、Ｊｒｕｎ、Ｏｒａｃｌｅ９ｉ又は任意のその他のアプリケーションサーバー等のアプリケーションサーバー及びＪ２ＥＥ１．３参照実現（Ｒｅｆｅｒｅｎｃｅ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ）へのデプロイメントを可能とさせる。
【００１４】
以下の説明において、周知の機能及びコンポーネントは詳細に説明しない。従って、Ｊ２ＥＥスタンダード仕様及びジャバプログラミング方法に関連する多くの既知の特徴及び定義については詳細に説明しない。更に、開示される本システム及び方法をＪ２ＥＥ及びジャバ環境を参照して説明するが、このスタンダード仕様は１例としてのみ使用するものである。従って、理解すべきことであるが、本明細書に開示するデプロイメントツールについてのシステム及び方法はＪ２ＥＥ及びジャバアプリケーションのみと共に使用することに制限されるものではなく、その他のこのようなスタンダード及び仕様に対しても適用可能なものである。
【００１５】
図１は１実施例において本開示のデプロイメントツールについてのシステム及び方法を例示したアーキテクチャ図である。本開示のデプロイメントツールはデプロイメントウィザードインターフェース１０２を実現し且つ種々のアプリケーションコンポーネントをアプリケーションサーバーへのデプロイを開始すべく喚起される。デプロイメントウィザードインターフェース１０２は、デプロイメントプロセスを介してユーザを案内するためにユーザに種々の入力パネル及びメッセージパネルを提示する機能を包含している。代替的に、デプロイメントウィザードインターフェース１０２は、コマンドラインインターフェース上で喚起させることが可能であり、且つユーザは何等のプレゼンテーションパネル無しでデプロイメントプロセスを稼動させることが可能である。
【００１６】
デプロイメントウィザードインターフェース１０２はデプロイメントツールを使用するために実現することが可能な多数のメッソド及び変数を定義する。例えば、デプロイメントツールクラスは、その機能を提供するために以下のデプロイメントウィザードメッソド（ｍｅｔｈｏｄ）を実現することが可能である。ｇｅｔＤｅｐｌｏｙｍｅｎｔＭｏｄｕｌｅｓ（）はデプロイされるべきＥＡＲファイルのリストをリターンし、ｓｅｔＤｅｐｌｏｙｅｒはアクティブなデプロイメントプラグインに対しデプロイヤー（ｄｅｐｌｏｙｅｒ）をセットし、ｇｅｔＤｅｐｌｏｙｅｒはアクティブなデプロイメントプラグインに対しデプロイヤーをリターンし、ｇｅｔＨｅｌｐｅｒはデプロイメントヘルパーインターフェースをリターンし、ｉｓＳｔｏｐｐｅｄはデプロイメントが停止された場合に真をリターンし、ｐａｃｋａｇｅＦｉｌｅｓはデプロイされるべきＥＡＲファイルをパッケージングし、ｐｒｏｃｅｓｓＦｉｎｉｓｈは終了ボタンが押し下げられ得た場合に実行され、ｇｅｔＰｌｕｇｉｎＢｕｎｄｌｅはアクティブなプラグインにより使用されているリソースバンドルをリターンし、ｇｅｔＢｕｎｄｌｅ（）はデプロイメントウィザードにより使用中のバンドルをリターンし、ｉｓＸｍｌＥｄｉｔｏｒＡｌｌｏｗｅｄはＸＭＬエディターを喚起することが可能である場合に真をリターンし、ｉｓＲｕｎｎｉｎｇＩｎｓｉｄＪｏｅはデプロイツールが開発環境であるアドバンテージジョー（Ａｄｖａｎｔａｇｅ  Ｊｏｅ）により喚起されている場合に真をリターンし、ｇｅｔＣｏｎｔｅｘｔＲｏｏｔはプロジェクトに対するコンテキストルートを取得し、ｇｅｔＥｊｂＲｅｆｓはｗａｒ又はプロジェクトに対するｅｊｂ参照を取得し、ｓｅｔＣｏｎｔｅｘｔＲｏｏｔｓはｅａｒファイルにおけるａｐｐｌｉｃａｔｉｏｎ．ｘｍｌファイルからのコンテキストルート設定を使用してコンテキストルートＨａｓｈＭａｐをセットし、ｓｈｏｗＳｕｎＪ２ｅｅＲｉ（）はｅｊｂツリーにおいてｓｕｎ−Ｊ２ｅｅ−ｒｉ．ｘｍｌファイルを示すべきである場合に真をリターンする。
【００１７】
１実施例において、２つのクラスがデプロイメントウィザードインターフェース１０２を実現する。１つのクラス１０４がＡｄｖａｎｔａｇｅ  Ｊｏｅインターフェース等のデプロイメント環境ツールインターフェース１０４と通信を行い、且つデプロイメント環境ツール内において喚起させることが可能である。他方のクラス１０６はコマンドラインからの入力を受取り且つコマンドラインインターフェースとして参照される。
【００１８】
本開示のデプロイメントツールは、各アプリケーションサーバーにとって一意的なアプリケーション特定機能及び特性を分離させ且つモジュール化させるプラグインアーキテクチャを使用する。この一意的な機能及び特性の例は、例えばキャッシングが実施されるべきか否か等のアプリケーションサーバー特定セキュリティ情報及びファクタを包含することが可能である。その他のアプリケーションサーバー特定基準は、アプリケーションサーバーが必要としたクラスを包含するためにＥＡＲファイルを予備処理することが必要であるか否かに拘わらず、ＥＡＲファイルを格納することが必要なアプリケーションサーバーの特定の位置を包含している。更に、多くのアプリケーションサーバーは、通常、アプリケーションサーバー特定デプロイメント記述子を使用することを必要とする。
【００１９】
従って、与えられたターゲットアプリケーションサーバーに対するアプリケーション特定デプロイメントコンフィギュレーション及び機能はそのターゲットアプリケーションに対するプラグインモジュール１１０内にカプセル化される。プラグインモジュール１１０はデプロイメントウィザードインターフェース１０２を実現するクラス１０４，１０６の間の通信を実施するためにプラグインデプロイヤーインターフェース１１２及びその他のヘルパーインターフェースを実現する。
【００２０】
１実施例においては、デプロイメントウィザードインターフェース１０２を実現するクラス１０４及び１０６が、アーカイブＪ２ＥＥアプリケーション（ＥＡＲ）ファイル等のアプリケーション又はコンポーネントの特定したパッケージをデプロイするためにどのサーバープロファイルを使用すべきかを決定するためのサーバープロファイル選択を要求する。例えば、現在インストールされている１つ又はそれ以上のプラグインが決定され且つ使用可能なターゲットサーバーのリストを形成するために使用される。即ち、ＩＢＭウエブスフィアプラグインがインストールされている場合には、サーバープロファイルマネージャ１０８は候補ターゲットサーバーのうちの１つとしてＩＢＭウエブスフィアアプリケーションサーバーをリターンする。
【００２１】
１実施例において、上述したように決定されたターゲットサーバーのリストからターゲットサーバーを選択するためにサーバープロファイルパネルがユーザへ提示される。ユーザは該リストから１つを選択するか又は新たなターゲットアプリケーションサーバーを特定することが可能であり、新たなサーバープロファイルを作成し且つその新たなサーバーと関連するプラグインをインストールする。
【００２２】
当業者にとって既知であるように、プラグインはメインのアプリケーションを向上させる補助的なプログラムのことである。プラグインはメインのアプリケーションに影響することなしにメインのアプリケーションへ付加することが可能なプログラムユニットである。本開示のデプロイメントツールはアプリケーション特定機能に対してプラグインアーキテクチャを使用するので、例えば、これらの新たなターゲットアプリケーションサーバーに対するプラグインを付加することにより容易に付加的なターゲットアプリケーションサーバーを付加することが可能である。従って、デプロイメント用の新たなアプリケーションサーバーは、デプロイメントツールのその他の部分を変更又は修正する必要性なしに動的に付加させることが可能である。
【００２３】
典型的に、デプロイヤー、即ちデプロイメントを実施する人は、サーバータイプを選択し且つデプロイメントの設定を保存するために使用されるサーバープロファイル１０８を定義する。サーバープロファイル１０８は、例えば、同一のアプリケーションサーバーに対しての前のデプロイメントセッションから既に作成されている場合がある。サーバープロファイル１０８はデプロイヤーインターフェース１１２を実現する対応するプラグイン１１０を有するサーバーに対して作成される。例えば、サーバープロファイルは、サーバープロファイルマネージャ１０８により作成され且つ保存され、且つデプロイメントプロセス期間中にユーザにより提供される情報で埋められる。サーバープロファイルはプラグインにより必要とされる情報を格納し、プロファイル名、ホスト名、ホスト番号等の情報を包含している。サーバープロファイルにおけるその他の情報は、デプロイメントプラットフォームのタイプ、ファイル転送プロトコル（ｆｔｐ）ユーザ識別子（ｉｄ）、ｆｔｐパスワード、デプロイメントディレクトリを包含することが可能である。特定のアプリケーションサーバーに対して必要とされる付加的な情報は、デプロイメントプロセス期間中にユーザから要求される場合があり且つサーバープロファイル内に格納される場合がある。
【００２４】
プラグインがデプロイヤーインターフェース１１２を実現すると、デプロイメントツールクラス１０４又は１０６は、デプロイヤーインターフェース１１２を実現するプラグインメッソドのインスタンスを喚起することによりそのプラグインによりどのプラットフォームがサポートされるかを決定することが可能である。例えば、ｇｅｔＰｌａｔｆｏｒｍｆメッソドを定義するＭｕｌｔｉＰｌａｔｆｏｒｍＰｌｕｇｉｎインターフェースであるデプロイメントツールクラス１０４又は１０６に対してプラットフォーム情報を通信するために設けられたインターフェースを実現するプラグインにおけるクラスは、その特定のプラグインによりサポートされるプラットフォームのリストを提供することが可能である。プラットフォームが１１４において示したように選択された後に、対応するプラグイン１１０が活性化されてＥＡＲファイルをパッケージングする。
【００２５】
デプロイヤーヘルパーインターフェース１１６はプラグイン１１０によって使用することが可能であり、且つデプロイメントウィザードインターフェース１１６を実現するデプロイメントツールクラス１０４又は１０６のサービスを要求するための１つ又はそれ以上のメッソドへのアクセスを与える。例えば、ＥＡＲファイルがパッケージングされた後に、ユーザはデプロイヤーヘルパーインターフェースを使用してデプロイメント記述子を編集することが可能である。デプロイヤーヘルパーインターフェース１１６は、そのプラグインがデプロイメントツール１０４又は１０６によって活性化される場合に、プラグインへパスされる。パッケージングしたＥＡＲファイルに対する要約ページを表示する前に、デプロイメントツール１０４又は１０６は、オプションとして、修正すべきパッケージングしたＥＡＲファイルの内容を表示することが可能である。修正はヘルパーインターフェースダイアログを使用して、又は提供されるＸＭＬエディターを使用することによって実施することが可能である。
【００２６】
次いで、パッケージングされたＥＡＲファイルは、該プラグインによって実現されるデプロイメッソドを使用して選択したターゲットアプリケーションサーバーへデプロイされる。例えば、デプロイメッソドはデプロイメントウィザードインターフェース１０２を実現するデプロイメントツールクラス１０４，１０６から喚起させることが可能である。
【００２７】
図２は１実施例におけるデプロイメントプロセスの概略を例示している。図２はパッケージングされ且つデプロイされるコンポーネントとしてＥＪＢ．ｅａｒ２０２を示しているが、本開示のデプロイメントツールは、ＥＪＢ及びウエブアプリケーションコンポーネントの両方を包含することが可能な完全なＥＡＲファイル及びその他のファイルを取扱うためにイネーブル即ち動作可能とされる。デプロイ可能なコンポーネントは使用可能なエンタプライズ開発環境ツールのうちのいずれか１つを使用することにより作成することが可能である。このような１つのツールはＡｄｖａｎｔａｇｅ  Ｊｏｅ  ３．０であり、それはアプリケーションサーバー上へのコンポーネントをモデリングし、構築し、且つデプロイするための能力を提供する。ここに開示したデプロイメントツールは、１実施例において、ジャバアーカイブ（ＪＡＲ）ファイルを結合し且つそれらをエンタプライズアーカイブ（ＥＡＲ）ファイル内へ統合させ、それらは、次いで、ＪＡＲファイル及びＥＡＲファイルを作成するためにどのツールを使用したか否かに拘わらず、ターゲットアプリケーションサーバーへデプロイさせることが可能である。
【００２８】
ＪＡＲファイルは、典型的に、Ｊ２ＥＥアプリケーションを構成する１つ又はそれ以上のＪ２ＥＥモジュールを包含している。Ｊ２ＥＥモジュールは、ウエブ及びＥＪＢ等の同一のコンポーネントタイプの１つ又はそれ以上のＪ２ＥＥコンポーネントの集まりである。各Ｊ２ＥＥモジュールは、典型的に、対応するデプロイメント記述子を包含しており、それは該モジュールにおけるコンポーネントのデプロイメント期間中に必要とされる宣言的データを包含している。
【００２９】
Ｊ２ＥＥアプリケーションは、１つ又はそれ以上のＪ２ＥＥモジュール及び１つのＪ２ＥＥアプリケーションデプロイメント記述子を包含している。Ｊ２ＥＥアプリケーションデプロイメント記述子は、通常、ＷＡＲ及びＥＪＢ  ＪＡＲファイルを記述し且つ、存在する場合に、そのアプリケーションに対して特定的なセキュリティ及びデータベース情報を包含している。Ｊ２ＥＥアプリケーションはジャバアーカイブ（ＪＡＲ）ファイルフォーマットを使用して．ｅａｒファイル名拡張子を有するファイルへパッケージングされる。Ｊ２ＥＥアプリケーションを作成する場合に、そのアプリケーションにおいて使用されるＪ２ＥＥモジュールが選択され、アプリケーションディレクトリ構造が作成され、Ｊ２ＥＥモジュールデプロイメント記述子が作成され、そのＪ２ＥＥアプリケーションに対するデプロイメント記述子が作成され、且つＪ２ＥＥアプリケーションがパッケージングされる。
【００３０】
再度図２を参照すると、ＥＡＲファイル２０２が受取られる。代替的に、本開示のデプロイメントツールは、例えば、デプロイメントツールが開発環境の一部として喚起される場合には、モジュール選択及びモデル情報の形態における入力を受取ることが可能である。即ち、Ａｄｖａｎｔａｇｅ  Ｊｏｅ等の開発ツールの統合された一部として動作する場合には、デプロイメントツールは、１実施例において、開発ツールの情報モデル、ＪＡＲファイル内にパッケージングされたＪ２ＥＥモジュールのディレクトリ、及びプロジェクト選択と共に供給される。
【００３１】
開発ツールの情報モデルは、クラス及び内部論理の記述及びクラス間の関係等のアプリケーションに関する詳細な情報を包含する場合がある。例えば、クラス、仕様、メッソド、プラスチック、プロジェクト、ジャーを包含するオブジェクトのリストから選択することにより関連するオブジェクトを構築し且つデプロイするためにプロジェクト選択を使用することが可能である。従って、プロジェクト選択は、デプロイメントツールが、開発環境ツールを使用して構築した特定のプロジェクト出力を探し出すことを可能とする。この出力は、構築プロセス及び開発環境ツールにおける構築プロセス期間中に作成された任意の適用可能なジャー（ｊａｒ）ファイルから発生するクラスを包含する出力ディレクトリを包含することが可能である。本開示におけるデプロイメントツールは、Ｊ２ＥＥモジュールをＥＡＲファイル２０２へパッケージングするために、開発ツールの情報モデル及び出力ディレクトリへアクセスするためにプロジェクト選択情報を使用する。
【００３２】
２０４において、入力ＥＡＲファイル２０２が処理される。例えば、ＥＡＲファイル２０２はその個別的なコンポーネントへ拡張され従ってＥＡＲファイル２０２における１つ又はそれ以上のデプロイメント記述子を抽出し且つ修正することが可能である。本開示において提供されるデプロイヤーインターフェースは、デプロイメント記述子を修正するために使用することが可能である。例えば、供給されるか又は構築されたＥＡＲファイル２０２がデプロイメント記述子を包含するものであるが、これらの記述子はターゲットアプリケーションサーバーへ実際にデプロイメントする前に修正されることが必要な場合がある。当業者にとって既知であるように、デプロイメント記述子は各モジュール及びアプリケーションに対して設けられているＸＭＬファイルを参照し、且つモジュール及びアプリケーションがどのようにしてデプロイされるべきかを記述する。
【００３３】
２０６において、ＥＡＲファイルがデプロイされるべきターゲットアプリケーションサーバーを選択する。この選択は、例えば、対応するプラグイン２０８を有する使用可能なアプリケーションサーバーのリストをユーザへ提示し且つユーザがそのリストからアプリケーションサーバーを選択することを可能とさせることにより決定することが可能である。更に、ユーザはリスト内にリストされていない新たなアプリケーションサーバーをエンターすることのオプションが与えられる。２１０において、選択したアプリケーションサーバーに対応するプラグインが動的にロードされる。２１２において、使用可能な任意のその他のプラグインもこの時に動的にロードさせることが可能である。２１４において、既に存在していない場合には選択したアプリケーションサーバーに対するプロファイルが作成される。例えば、新たなアプリケーションサーバーは対応するアプリケーションサーバープロファイルが作成されることを必要とする場合がある。このアプリケーションサーバープロファイルは、ＥＡＲファイルがデプロイされるターゲットアプリケーションサーバーのホスト名及びポート番号等の情報を包含している。２１６において、そのＥＡＲファイルがデプロイメント記述子の有効なバージョンを包含しており且つ有効なデータタイプページ（ＤＴＤ）に準拠するものであることを確保するために妥当性検査が実施される。当業者にとって既知であるように、デプロイメント記述子はＸＭＬファイルであり、従って、ＤＴＤ内に設けられる有効なドキュメントタイプ宣言と関連付けられる必要がある。２１８において、そのＤＴＤが編集されることが必要であるか否かが判別され、そうである場合には、２２０において、ＤＴＤに対して適宜の変更が行われる。例えば、そのデプロイメントに対して任意のアプリケーションサーバーセキュリティタグを包含させることを所望するユーザはそのＤＴＤファイルを編集することが可能である。
【００３４】
２２２において、そのＥＡＲファイルが再度パッケージングされる。再度パッケージングされたＥＡＲファイルは修正されたＤＴＤファイル及び記述子を包含する場合がある。２２４において、選択したアプリケーションサーバーに対するターゲットプラットフォームが選択される。その選択は、例えば、選択されたアプリケーションサーバーがその上で稼動するプラットフォームのリストを提示し、且つユーザがそのリストからプラットフォームサーバーを選択することを可能とさせることにより決定することが可能である。選択したアプリケーションサーバーによりサポートされるプラットフォームのリストは、例えば、対応するプラグインにより実現されるプラグインインターフェースメッソドを介して対応するプラグインにより与えられる。
【００３５】
２２６において、デプロイメントプロセスが開始する。そのデプロイメントプロセスは、例えば、ユーザに提示されたプラットフォームのリストからプラットフォームを選択した後にユーザが終了ボタンを押し下げる場合に開始することが可能である。この場合には、終了ボタンを押し下げるか又は選択したアプリケーションサーバーに関する全てのカスタム化が完了したことを表わす何等かの類似した動作を実施するユーザは、喚起されるべきプラグインにより実現されるデプロイメソッドをトリガする。
【００３６】
以下のステップはプラグイン内において処理される。２２８において、例えば、ＥＡＲファイルにおけるデプロイメント記述子においてリストされているデプロイメント特性又はユーザ入力を検査することによって、そのデプロイメントがローカルサーバーに対して行われるか又はネットワークにより接続されている遠隔サーバーに対して行われるか否かを判別する。ＥＡＲファイルが遠隔サーバーに対してデプロイされることが判別される場合に、アプリケーションサーバー特定デプロイメント記述子ファイルが２３０において発生される。デプロイメントツールが統合されたデプロイメント環境ツールの一部として喚起される場合には、これらのアプリケーションサーバー特定デプロイメント記述子ファイルは環境ツール内において発生させることが可能である。デプロイメントツールがコマンドラインインターフェース上で喚起される場合には、これらのアプリケーションサーバー特定デプロイメント記述子ファイルは、２０４において示した処理済のＥＡＲファイルからのデータ及びデプロイメントプロセス期間中にユーザから得られた任意のその他の入力を使用して発生させることが可能である。例えば、ターゲットアプリケーションサーバーがウエブ論理アプリケーションサーバーである場合には、ｗｅｂｌｏｇｉｃ−ｅｊｂ−ｊａｒ．ｘｍｌファイルをデプロイメント記述子として発生させることが可能である。
【００３７】
デプロイメント記述子ファイルは、例えば、上述した如くユーザにより選択されたプラットフォーム、及びユーザが特定した任意のその他のＥＪＢプロパティ即ち特性を包含することが可能である。例えば、メッセージ駆動型ＥＪＢのデプロイメントは、ユーザがサポートされるべきメッセージキューについての情報の幾つかの部分をユーザが供給することを必要とする。本開示のシステム及び方法は、この情報を収集するための１つ又はそれ以上のユーザインターフェースパネルを提供する。即ち、その１つ又はそれ以上のユーザインターフェースパネルは、デプロイメントを行っている人がメッセージ駆動型ビーンに関する情報を特定することを助ける。本開示のデプロイメントツールは、又、ユーザがデプロイメント記述子を直接的に編集することを可能とする。デプロイメント記述子がアップデートされるか又は発生された後に、ＥＡＲは２３２において修正されたデプロイメント記述子と共に再構築されるか又は再度パッケージングされる。次いで、結果的に得られるＥＡＲファイルは、例えば、ファイル転送プロトコル（ＦＴＰ）を使用することにより２３４においてターゲットアプリケーションサーバーへ送られ、且つ本プロセスはステップ２４０へ進行する。
【００３８】
２２８において、ＥＡＲファイルがローカルサーバー、即ちデプロイメントツールと同じプラットフォーム上に乗っているサーバーに対してデプロイされることが判別される場合には、アプリケーションサーバー特定デプロイメントファイルが発生される。２３８において、発生されたアプリケーションサーバー特定デプロイメントファイルはＥＡＲファイルに再度パッケージングされる。
【００３９】
２４０において、アプリケーションサーバー特定プラグインにより実現されるデプロイヤーインターフェースのデプロイメソッドを喚起することによりデプロイメント手順が実行される。２４２において、デプロイメントが成功したか否かが判別され、且つ２４４において、適宜のデプロイメントステータスレポートが発生される。
【００４０】
１実施例において、上述したように、アプリケーションおよびコンポーネントがデプロイされる対応するアプリケーションサーバーに対してプラグインが実現される。１実施例において、既存のデプロイメント記述子を修正し、ターゲットアプリケーションサーバーへのファイルを再度パッケージングし且つデプロイし且つ本開示のシステム及び方法において提供されるデプロイメントツールで相互作用を行うことを実現するためにプラグインに対して１つ又はそれ以上のインターフェースが設けられる。
【００４１】
例えば、アプリケーションサーバーに対するプラグインはＤｅｐｌｏｙｅｒインターフェースを実現する。このＤｅｐｌｏｙｅｒインターフェースはファイルを所望のターゲットアプリケーションサーバーへデプロイするためにプラグインが使用することが可能な種々のメソッドを提供する。プラグインがインスタンス化される場合に、「ＤｅｐｌｏｙｍｅｎｔＨｅｌｐｅｒ」インターフェースの「ｓｅｔＨｅｌｐｅｒ」メソッドが第一メソッドとしてコールされる。ＤｅｐｌｏｙｍｅｎｔＨｅｌｐｅｒインターフェースは、例えば、デプロイメントウィザードインターフェースを実現するクラスによってプラグインが動的にロードされた後にそれが必要とする情報及びサービスをプラグインが取得する態様を提供する。ｓｅｔＨｅｌｐｅｒメソッドを介して、ＤｅｐｌｏｙｍｅｎｔＨｅｌｐｅｒオブジェクトはプラグイン内へパスさせることが可能である。１実施例において、各プラグインはこのオブジェクトのローカルコピーを維持し且つそのメソッドを使用して本開示のデプロイメントツールと相互作用を行う。
【００４２】
マルチプラットフォームをサポートするプラグインの場合、ＭｕｌｐｉＰｌａｔｆｏｒｍＰｌｕｇｉｎインターフェースが提供される。例えば、プラグインがこのインターフェースを実現するものでない場合には、本開示のデプロイメントツールが、１実施例において、そのプラグインが単一のプラットフォームをサポートするものと仮定する。
【００４３】
Ｒｅｐｌａｃｅｒインターフェースをプラグインにより実現することが可能である。該プラグインは、ＤｅｐｌｏｙｍｅｎｔＨｅｌｐｅｒインターフェース上でｃｏｎｖｅｒｔＣｏｎｔａｉｎｅｒｓメソッドを使用する場合にこのインターフェースを供給する。ＣｏｎｖｅｒｔＣｏｎｔａｉｎｅｒｓメソッドはＥＡＲファイルを開き且つデプロイメント記述子を介してスキャンする。デプロイメント記述子から読取ったストリングが、Ｒｅｐｌａｃｅｒがアクティブに留まる限り、例えば、ＲｅｐｌａｃｅｒインターフェースのｉｓＡｃｔｉｖｅメソッドが真をリターンする限り、Ｒｅｐｌａｃｅｒインターフェースへパスされる。このインターフェースにおけるメソッドは、デプロイメント記述子を修正するか又はアップデートするために使用される。
【００４４】
ＲｅｐｌａｃｅｒインターフェースのｃｈｅｃｋＦｏｒＳｔａｒｔ及びｃｈｅｃｋＦｏｒＥｎｄメソッドが、置換することを必要とする場合のあるストリングの始めと終りとを探し出すためにコールされる。置換されることを必要とする場合のあるストリングは「ｗｉｌｌＲｅｐｌａｃｅ」へパスされ、それはそのストリングが置換される場合に真をリターンする。ＲｅｐｌａｃｅｒインターフェースのｎｅｗＳｔｒｉｎｇメソッドは置換ストリングをリターンする。新たなデプロイメント記述子が処理されんとする場合には、Ｒｅｐｌａｃｅｒインターフェースの初期化メソッドがコールされる。
【００４５】
プラグインがＥｘｔｅｎｄｅｄＨｅｌｐｅｒインターフェースのメソッドｇｅｔＷｉｎｄｏｗｓＳｅｒｖｅｒＰａｇｅによって与えられるデフォルトウインドウズプラットフォームプロファイル詳細ページを使用する場合にプラグインが実現するためにＷｉｎｄｏｗｓＳｅｒｖｅｒＰａｇｅＵｓｅｒインターフェースが提供される。このインターフェースは汎用情報検索パネルを与え、それは、プラグインがユーザからウインドウズプラットフォームプロファイル詳細を取得するために使用することが可能である。
【００４６】
ＥｘｔｅｎｄｅｄＨｅｌｐｅｒインターフェースは、通常、プラグインがデプロイメントヘルパーインターフェースの拡張された特徴を利用することを可能とする。これらの拡張された特徴は、１実施例において、パッケージング及びデプロイメント特徴のデフォルト実現例を与える。
【００４７】
プラグインが、ＥｘｔｅｎｄｅｄＨｅｌｐｅｒインターフェースのメソッド、ｇｅｔＵｎｉｘＳｅｒｖｅｒＰａｇｅメソッドにより与えられるデフォルトユニックスプラットフォームプロファイル詳細ページを使用する場合に、プラグインが実現するためにＵｎｉｘＳｅｒｖｅｒＰａｇｅＵｓｅｒインターフェースが提供される。このインターフェースは、ユニックス又はリナックスを基礎としたプラットフォームがユニックスプラットフォームプロファイル詳細情報を取得することをサポートするプラグインによって使用することが可能である。代替的に、プラグインは特定のプラットフォームに関連する情報を検索するためにそれ自身のプロファイル詳細ページを実現することが可能である。
【００４８】
１実施例において、本開示のシステム及び方法において提供されるデプロイメントツールは、コマンドラインインターフェースを使用して別個のプロセスとして開始させることが可能である。例えば、バッチファイルＪｏｅＤｅｐｌｏｙＴｏｏｌ．ｂａｔは、該ツールを開始することを助けるために提供することが可能である。該バッチファイルは該ツールに対する適宜のクラスパス（ｃｌａｓｓｐａｔｈ）をセットし且つ該ツールを活性化させる。１実施例において、該バッチファイルは例えば、パラメータとしてデプロイされるべきＥＡＲファイルの位置で喚起される。従って、例えば、該バッチファイルの１つの利用は以下の場合があり、
【００４９】
【表１】
2006521638.tif 000003
【００５０】
尚、
ＥＡＲ  ＦＩＬＥ  ｌｏｃａｔｉｏｎはＥＡＲファイルのパスを特定し；
−ｅｊｂＴｒｅｅはＥＡＲファイルのツリービューを表示させ；
−ｘｍｌＥｄｉｔｏｒはデプロイメント記述子を編集するためにＸＭＬエディターを喚起させることを可能とさせ；
−ｎｏＰｒｏｇｒｅｓｓは最終的なデプロイメントプログレスパネルの表示を阻止し、その場合に、進展ページ上に通常表示される出力がスタンダード出力へ送られ；
−ｃｏｎｔｅｘｔＲｏｏｔ  ｗａｒＮａｍｅ  ｒｏｏｔＮａｍｅはウエブアーカイブ（ｗａｒ）ファイルをデプロイする場合に使用すべきコンテキストルートの名前を特定し；このパラメータは全てのｗａｒに対するコンテキストルートを特定することが必要な回数だけ繰返すことが可能である。
【００５１】
該バッチファイル、例えば上のＪｏｅＤｅｐｌｏｙＴｏｏｌが終了すると、それはＥＲＲＯＲＬＥＶＥＬ内にステータスコードを残す。例えば、ゼロのステータスは成功したデプロイメントを表わし、且つ例えば、２のステータスはデプロイメントが失敗したことを表わす。ユーザがそのデプロイメントを終了するか又はキャンセルすると、２のステータスをリターンさせることが可能である。
【００５２】
同様に、本開示のシステム及び方法において提供されるデプロイメントツールは、Ａｄｖａｎｔａｇｅ  Ｊｏｅ等の開発環境ツール内から開始させることが可能である。例えば、デプロイメントウィザードインターフェースを実現するＡｖａｎｔａｇｅ  Ｊｏｅにおけるクラスは、プロジェクトツリーにおけるプロジェクト上を右クリックすることにより開始させることが可能である。デプロイメントウィザードインターフェースを実現するクラスを開始させるためにメニューオプション「Ｄｅｐｌｏｙ  ｅｊｂ’ｓ／Ｗａｒ’ｓ」を使用することが可能である。
【００５３】
プラグインに対して提供される上述したインターフェースに対するインターフェース定義の例についてより詳細に説明する。上述したようにＤｅｐｌｏｙｅｒインターフェースは各デプロイメントプラグインにより実現される以下のコードは１実施例におけるＤｅｐｌｏｙｅｒインターフェースを定義する。
【００５４】
【表２】
2006521638.tif 000004
【００５５】
例えば、ユーザをデプロイメントプロセスを介してステップ動作させるためのデプロイメントツールにより提供されるユーザインターフェースパネルからユーザが終了ボタンをクリックする場合に、ｄｅｐｌｏｙ（）メソッドがデプロイメントプロセスを開始するためにコールされる。これらのユーザインターフェースパネルは、ユーザがアプリケーションサーバー特定変数をエンターし且つデプロイメントを開始させることを可能とする。ｄｅｐｌｏｙ（）メソッドはデプロイメント記述子において特定されるようにＥＡＲファイル内にパッケージングされた全てのモジュールのデプロイメントを実施する。エラーが発生すると、それはＤｅｐｌｏｙｍｅｎｔＥｘｃｅｐｔｉｏｎを放つ。各プラグインは、実行期間中に表示されるそれ自身のステータス及びエラーメッセージを有することが可能である。
【００５６】
要約ページを表示する前にｐａｃｋａｇｅＦｉｌｅｓ（）メソッドがコールされる。例えば、その要約ページは、ターゲットアプリケーションサーバーに対するデプロイメントを開始する前に、デプロイヤーがデプロイメントオプションを検証することを可能とする。このメソッドはデプロイされるべき１つ又はそれ以上のファイルをパッケージングする。パッケージングされたファイルは、通常、ＥＡＲファイルとなるが、ＥＡＲファイルのみに制限されることは必要ではない。エラーが発生すると、それはＤｅｐｌｏｙｍｅｎｔＥｘｃｅｐｔｉｏｎを放つ。各プラグインは、実行期間中に表示されるそれ自身のステータス及びエラーメッセージを有することが可能である。
【００５７】
ユーザからのデプロイメントに関連する入力データを収集するためのパネルを表示するためにｇｅｔＮｅｘｔＰａｎｅｌ（）が使用される。典型的に、本開示のシステム及び方法において提供されるデプロイメントツールは紹介ページ及びサーバープロファイル選択ページを表示する。各プラグインはこのメソッドを介してその後のパネルを実現する。各パネルはＤｅｐｌＷｉｚＰａｎｅｌ又はＤｅｐｌＷｉｚＳｕｍｍａｒｙのいずれかを拡張することが可能である。ＤｅｂｌＷｉｚＳｕｍｍａｒｙはＤｅｐｌＷｉｚＰａｎｅｌを拡張する。
【００５８】
選択したアプリケーションサーバータイプに対する新たなデフォルトサーバープロファイルを作成するためにａｄｄＰｒｏｆｉｌｅ（Ｓｔｒｉｎｇ  ｓＴｙｐｅ）が使用される。例えば、ユーザがサーバープロファイル選択ページ上のサーバープロファイル付加ボタンをクリックすると、この対応するプラグインのメソッドが喚起される。各プラグインはそのカスタム化したＳｅｒｖｅｒＰｒｏｆｉｌｅオブジェクト、例えばＪ２ＥＥ ＲＩＳｅｒｖｅｒＰｒｏｆｉｌｅを包含することが可能であり、それはＳｅｒｖｅｒＰｒｏｆｉｌｅを拡張する。ＳｅｒｖｅｒＰｒｏｆｉｌｅクラスは１つ又はそれ以上の有用な属性を提供し、且つこれらの属性に対するメソッドをセットし且つ取得する。然しながら、プラグインはサーバープロファイルオブジェクトの子に対して新たな属性を付加することが可能である。
【００５９】
例えばプラグインのユーザインターフェース（ＵＩ）パネルを介してリソースストリングへアクセスするためにｇｅｔＲｅｓｏｕｒｃｅＳｔｒｉｎｇ（ｓｔｒｉｎｇ  ｋｅｙ）メソッドを使用することが可能である。Ｄｅｐｌｏｙｅｒインターフェースを実現するプラグインクラスはローカルＲｅｓｏｕｒｃｅＢｕｎｄｌｅオブジェクトを有しており、それからリソースストリングへこのメソッドを使用してアクセスするか又はリターンすることが可能である。通常、ＲｅｓｏｕｒｃｅＢｕｎｄｌｅはストリングの対構成としたシーケンスであるリソースストリングを包含している。１つのストリングは１つのキーを表わし且つその他のストリングはそのキーと関連する値を表わす。ジャバプログラムがそのキーストリングを使用してＲｅｓｏｕｒｃｅＢｕｎｄｌｅへアクセスし且つＲｅｓｏｕｒｃｅＢｕｎｄｌｅは使用されるべき値をリターンする。ＲｅｓｏｕｒｃｅＢｕｎｄｌｅｓは、異なる言語環境を包含する特定の環境に対してジャバプログラムをカスタム化させることを可能とするために使用される。
【００６０】
ｓｅｔＨｅｌｐｅｒ（ＤｅｐｌｏｙｍｅｎｔＨｅｌｐｅｒ  Ｄｎ）メソッドは、ＤｅｐｌｏｙｍｅｎｔＨｅｌｐｅｒオブジェクトへアクセスするために使用され、且つ１実施例においてはそのオブジェクトのローカルコピーをリターンする。ＤｅｐｌｏｙｍｅｎｔＨｅｌｐｅｒオブジェクトをＤｅｐｌｏｙｍｅｎｔＨｅｐｌｅｒインターフェースを参照してより詳細に説明する。
【００６１】
ＭｕｌｔｉＰｌａｔｆｏｒｍＰｌｕｇｉｎインターフェースが、そのプラグインがマルチプラットフォームをサポートする場合に、プラグインにより実現される。１実施例において、このインターフェースが実現されない場合には、本開示のシステム及び方法において提供されるデプロイメントツールが、単一のプラットフォームのみがサポートされるものと仮定する。
【００６２】
ＭｕｌｔｉＰｌａｔｆｏｒｍＰｌｕｇｉｎインターフェースは以下のメソッドを定義する。
【００６３】
【表３】
2006521638.tif 000005
【００６４】
ｇｅｔＰｌａｔｆｏｒｍｓ（）メソッドはストリングオブジェクトのＩｔｅｒａｔｏｒをリターンし、各ストリングオブジェクトはプラットフォームの名前を包含している。各ストリングオブジェクトは、それからユーザが選択することが可能な使用可能なプラットフォームをリストするために使用される。ｇｅｔＮｕｍＰｌａｔｆｏｒｍｓ（）メソッドはこのプラグインによりサポートされるプラットフォームの数をリターンする。ｇｅｔＮｅｘｔＰａｎｅｌ（Ｓｔｒｉｎｇ  ｐｌａｔｆｏｒｍ）メソッドは、そのプラグインによりサポートされるマルチプラットフォームの中から１つのプラットフォームを選択するための次のパネルを検索する。
【００６５】
Ｒｅｐｌａｃｅｒインターフェースは、プラグインにより実現され、且つＤｅｐｌｏｙｍｅｎｔＨｅｌｐｅｒインターフェース上でｃｏｎｖｅｒｔＣｏｎｔａｉｎｅｒｓメソッドを使用する場合に供給される。ＣｏｎｖｅｒｔＣｏｎｔａｉｎｒｓメソッドはＥＡＲファイルを開き且つデプロイメント記述子を介してスキャンする。デプロイメント記述子から読取られたストリングは、ｉｓＡｃｔｉｖｅメソッドが真をリターンする場合に、Ｒｅｐｌａｃｅｒインターフェースへパスされる。ｉｓＡｃｔｉｖｅメソッドは、プラグインが未だにデプロイメント記述子の一部を変換することが必要である限り、真をリターンする。該プラグインがデプロイメント記述子の変換を終了すると、ｉｓＡｃｔｉｖｅメソッドは偽をリターンし、その時に、Ｒｅｐｌａｃｅｒは変換プロセスを完了することが可能である。置換することを必要とする場合のあるストリングの始めと終りとを探し出すためにｃｈｅｃｋＦｏｒＳｔａｒｔ及びｃｈｅｃｋＦｏｒＥｎｄメソッドがコールされる。置換されることを必要とする場合のあるストリングは「ｗｉｌｌＲｅｐｌａｃｅ」へパスされ、それは、そのストリングが置換されるべき場合に真をリターンする。ｎｅｗＳｔｒｉｎｇメソッドは置換ストリングをリターンする。新たなデプロイメント記述子が処理されんとする場合には初期化メソッドがコールされる。以下のメソッドはＲｅｐｌａｃｅｒインターフェースにおいて定義される。
【００６６】
【表４】
2006521638.tif 000006
【００６７】
付加的なサーチ又はデプロイメント記述子を介してのスキャンが必要とされる場合にｉｓＡｃｔｉｖｅ（）メソッドは真をリターンする。ｗｉｌｌＲｅｐｌａｃｅ（Ｓｔｒｉｎｇ  ｓｔｒＴｏＲｅｐｌａｃｅ）メソッドは、特定されたストリングが置換されるべき場合に真をリターンする。パラメータｓｔｒＴｏＲｅｐｌａｃｅは置換されることを必要とする場合のあるストリングを包含している。
【００６８】
ｎｅｗＳｔｒｉｎｇ（）メソッドは置換ストリングをリターンする。ｃｈｅｃｋＦｏｒＳｔａｒｔ（Ｓｔｒｉｎｇ  ｓｔｒ，  ｉｎｔ  ｓｔａｒｔｉｎｇＩｎｄｅｘ）メソッドは、置換されるサブストリングを探し出す特定したストリングにおいてインデックスをリターンする。例えば、パラメータｓｔｒは開始シーケンスをサーチするストリングを包含しており、且つパラメータｓｔａｒｔｉｎｇＩｎｄｅｘは探し出しを開始するｓｔｒにおける位置を包含している。ｃｈｅｃｋＦｏｒＥｎｄ（Ｓｔｒｉｎｇ  ｓｔｒ，  ｉｎｔ  ｓｔａｒｔｉｎｇＩｎｄｅｘ）は終了サブストリングのインデックスをリターンする。例えば、パラメータｓｔｒは終了シーケンスをサーチするためのストリングを包含しており且つパラメータｓｔａｒｔＩｎｄｅｘはサーチを開始するｓｔｒにおける位置を包含している。ｅｎｄｉｎｇＳｉｚｅ（）メソッドは終了シーケンスの寸法をリターンする。ｉｎｉｔｉａｌｉｚｅ（）メソッドは、典型的に、別のファイルを変換することを開始する前に、再初期化するために使用される。
【００６９】
ＵｎｉｘＳｅｒｖｅｒＰａｇｅＵｓｅｒインターフェースは、１実施例において、パネル上のフィールドに対して必要とされるラベルを取得するための以下のメソッドを定義する。
【００７０】
【表５】
2006521638.tif 000007
【００７１】
ＵｎｉｘＳｅｒｖｅｒＰａｇｅＵｓｅｒは、又、フィールドが完成しているか否かを判別するためにｐｕｂｌｉｃ  ｖｏｉｄ  ｖａｌｉｄａｔｅＦｉｅｌｄｓ（Ｓｔｒｉｎｇ  ｓｅｒｖｅｒＮａｍｅ，  Ｓｔｒｉｎｇ  ｈｏｓｔｎａｍｅ，  ｓｔｒｉｎｇ  ｐｏｒｔＮｕｍｂｅｒ，  Ｓｔｒｉｎｇ  ｕｓｅｒＩｄ，  Ｓｔｒｉｎｇ  ｐａｓｓｗｏｒｄ，  Ｓｔｒｉｎｇ  ＤｅｐｌｏｙＬｏｃａｔｉｏｎ）を定義する。ＤｅｐｌｏｙｍｅｎｔＨｅｌｐｅｒインターフェースのメソッド「ｓｅｔＶａｌｉｄａｔｉｏｎＳｔａｔｕｓ」は、フィールドを有効又は無効としてセットするためにこのメソッドを実現するプラグインによりコールされる。該フィールドが不完全又は無効である場合には、該プラグインは偽インジケーターをリターンするためにｓｅｔＶａｌｉｄａｔｅＳｔａｔｕｓを使用することが可能である。
【００７２】
ＷｉｎｄｏｗｓＳｅｒｖｅｒＰａｇｅＵｓｅｒインターフェースはパネル上のフィールドに対して必要とされるラベルを取得するために以下のメソッドを定義する。
【００７３】
【表６】
2006521638.tif 000008
【００７４】
このインターフェースも該フィールドが完成しているか否かを判別するためにｐｕｂｌｉｃ  ｖｏｉｄ  ｖａｌｉｄａｔｅＦｉｌｄｓ（Ｓｔｒｉｎｇ  ｓｅｒｖｅｒＮａｍｅ，  Ｓｔｒｉｎｇ  ｈｏｓｔ  Ｎａｍｅ，  Ｓｔｒｉｎｇ  ｐｏｒｔＮｕｍｂｅｒ）を定義する。ＤｅｐｌｏｙｍｅｎｔＨｅｌｐｅｒインターフェースのメソッド「ｓｅｔＶａｌｉｄａｔｉｏｎＳｔａｔｕｓ」はこのメソッドの実現体によってコールされる。
【００７５】
本開示のシステム及び方法は、又、プラグインが実現することが可能な１つ又はそれ以上の付加的なインターフェースを提供する。例えば、Ｄｅｐｌｏｙｍｅｎｔ  Ｈｅｌｐｅｒインターフェースが、デプロイメントウィザーにより動的にロードされた後にそれが必要とする情報及びサービスをプラグインが取得する態様を提供するために該プラグインに対して提供される。該プラグインはデプロイメントツールとは独立的に構築し且つレリーズすることが可能である。
【００７６】
ＤｅｐｌｏｙｅｒＨｅｌｐｅｒインターフェースの１つの例示的な定義は以下の如くである。
【００７７】
【表７】
2006521638.tif 000009
【００７８】
ＤｅｐｌｏｙｍｅｎｔＭｏｄｕｌｅｓは任意のＪ２ＥＥデプロイメントモジュールに対応するオブジェクトである。例えば、ＤｅｐｌｏｙｍｅｎｔＭｏｄｕｌｅｓはｅｊｂ−ｊａｒｓ、ウエブアーカイブ、Ｊ２ＥＥモジュールが包含するクライエントｊａｒｓ等のデプロイメントモジュールの集まりを包含している。従って、上のインターフェース定義において、ｇｅｔＪ２ｅｅＡｐｐｌｉｃａｔｉｏｎ（）メソッドは、ユーザによりデプロイされるべく選択されたＪ２ＥＥアプリケーションに対応するＤｅｐｌｏｙｍｅｎｔＭｏｄｕｌｅオブジェクトのＶｅｃｔｏｒをリターンする。
【００７９】
ｇｅｔＥｊｂＪａｒｓ（ＤｅｐｌｏｙｍｅｎｔＭｏｄｕｌｅ  ｄｅ）メソッドは与えられたＪ２ＥＥアプリケーションに対するｅｊｂ−ｊａｒｓに対応するＤｅｐｌｏｙｍｅｎｔＭｏｄｕｌｅオブジェクトのＶｅｃｔｏｒをリターンする。
【００８０】
ｇｅｔＢｕｎｄｌｅ（）メソッドは本開示のデプロイメントツールに対しＲｅｓｏｕｒｃｅＢｕｎｄｌｅをリターンする。ｓａｖｅＰｒｏｆｉｌｅ（）メソッドは、与えられたサーバーに対するプロファイルが、例えば、将来使用するために保存されるべき場合に喚起される。例えば、ユーザがサーバープロファイル情報を収集するパネルについて終了した場合に、このメソッドはユーザがそのパネルを使用してエンターしたプロファイルデータを保存するために喚起させることが可能である。１実施例において、本開示において提供されるデプロイメントツールは、プラグインに対するＳｅｒｖｅｒＰｒｏｆｉｌｅオブジェクトの保存及び検索を自動的に管理する。然しながら、このメソッドは所望により、プラグインが実現するためにも使用可能である。
【００８１】
ｇｅｔＷｏｒｋｉｎｇＰｒｏｆｉｌｅ（）メソッドは、ユーザがデプロイメントに対して特定したターゲットサーバーに関する情報を取得するために喚起される。例えば、ユーザがサーバープロファイルオブジェクトのうちの１つを選択すると、本開示のシステム及び方法において提供されるデプロイメントツールが選択されたサーバープロファイルオブジェクトを使用して作業用プロファイルをセットする。
【００８２】
ｇｅｔＨｏｓｔｓ（）メソッドは、全ての保存したサーバープロファイルオブジェクトにおいて使用した一意的なホスト名のリストをリターンする。プラグインがユーザに対する便利なものとして、例えば、ドロップダウンリストでこのリストを提供することを所望する場合には、このメソッドを使用することが可能である。
【００８３】
ｉｓＳｔｏｐｐｅｄ（）メソッドは、それを介してデプロイメントプロセスが開始したデプロイメントウィザードが停止したか否かをテストするために喚起される。次いで、該プラグインは、このメソッドが真をリターンする場合にそれ自身終了することが可能である。
【００８４】
ｌｏｇ（Ｓｔｒｉｎｇ  ｔｅｘｔ）メソッドは、デプロイメソッドがコールされるといずれかの通常のステータスメッセージを表示するために使用される。完了したステップのようなデプロイメントプロセスに完了する何等かの情報を出力ウインドウへ送ることが可能である。
【００８５】
ｌｏｇＥｒｒｏｒ（Ｓｔｒｉｎｇ  ｔｅｘｔ）メソッドは、デプロイメソッドがコールされると何等かのエラーステータスメッセージを表示するために喚起される。例外等のデプロイメントプロセスに関連する何等かの情報を出力ウインドウへ送ることが可能である。
【００８６】
ｌｏｇＷａｒｎｉｎｇ（Ｓｔｒｉｎｇ  ｔｅｘｔ）メソッドは、デプロイメソッドがコールされると何等かの警告ステータスメッセージを表示するために使用される。不完全なステップ等のデプロイメントプロセスに関連する何等かの情報を出力ウインドウへ送ることが可能である。
【００８７】
ｌｏｇＩｎｆｏｒｍａｔｉｏｎ（Ｓｔｒｉｎｇ  ｔｅｘｔ）メソッドは、デプロイメソッドがコールされると何等かの情報ステータスメッセージを表示するために使用される。出力に影響を与えることのない異常条件等のデプロイメントプロセスに関連する情報を出力ウインドウへ送ることが可能である。
【００８８】
ｓｅｔＦｉｎｉｓｈＢｕｔｔｏｎＥｎａｂｌｅｄ（ｂｏｏｌｅａｎ  ｂ）メソッドは終了ボタンをイネーブル又はディスエーブルさせるために使用される。このボタンのイネーブル動作及びディスエーブル動作は前のユーザ入力に依存する場合がある。
【００８９】
ｓｅｔＮｅｘｔＢｕｔｔｏｎＥｎａｂｌｅｄ（ｂｏｏｌｅａｎ  ｂ）メソッドは、次ボタンをイネーブル又はディスエーブルさせるために使用される。このボタンのイネーブル動作及びディスエーブル動作は前のユーザ入力に依存する場合がある。
【００９０】
ｓｅｔＣｕｒｓｏｒ（ｉｎｔ  ｃｕｒｓｏｒＴｙｐｅ）メソッドは、例えば、長い稼動プロセス期間中にカーソルをカーソル待機へ変化させるためにカーソルタイプを変化させるために使用される。
【００９１】
ｇｅｔＮｅｘｔＰａｇｅ（Ｄｅｔｌｏｙｅｒ  ｄｅｐｌｏｙｅｒ）メソッドは、例えば、デプロイメントウィザード等のデプロイメントツールにおいて表示すべき次のページを取得するためにコールされる。
【００９２】
ｕｐｄａｔｅＦｒａｍｅＳｔａｔｕｓ（）メソッドは、プラグインパネル上で何等かのアクションが発生したことをデプロイメントヘルパーインターフェースクラスに通知するために使用される。これらのアクションは、データフィールドのアップデート又はパネル上のあるボタンの押し下げを包含することが可能である。デプロイメントヘルパーインターフェースクラスに対するコールを保証するアクションはプラグインにより決定することが可能である。
【００９３】
ｇｅｔＲｅｓｕｌｔ（）メソッドは、例えば、本開示のデプロイメントツールであるプラグインを喚起するデプロイメントツールの実行結果をリターンする。
【００９４】
ｓｅｔＤｏｃＴｙｐｅＩｎｆｏ（Ｓｔｒｉｎｇ  ｄｅｆａｕｌｔＥａｒＤｏｃＴｙｐｅ，  Ｓｔｒｉｎｇ  ｄｅｆａｕｌｔＥａｒＤｔｄＰａｔｈ，  Ｓｔｒｉｎｇ  ｄｅｆａｕｌｔＥｊｂＤｏｃＴｙｐｅ，  Ｓｔｒｉｎｇ  ｄｅｆｕｌｔＥｂｊＤｔｄＰａｔｈ）メソッドは、オプションとして、デフォルトＤＯＣＴＹＰＥ情報をオーバーライドするために使用される。
【００９５】
ｓｅｔＤｏｃＴｙｐｅＩｎｆｏｒ（ＲｅｓｏｕｒｃｅＢｕｎｄｌｅ  ｂｕｎｄｌｅ）メソッドは、オプションとして、プロパティファイルからのデフォルトＤＯＣＴＹＰＥ情報をオーバーライドするために使用される。
【００９６】
ｓｅｔＥｊｂ１１（Ｂｏｏｌｅａｎ  ｖａｌｕｅ）及びｓｅｔＥｊｂ１１（）メソッドは、オプションとして、ターゲットがＥＪＢ１．１バージョンと互換性があることを表わすために使用される。
【００９７】
ｃｏｎｖｅｒｔＣｏｎｔａｉｎｅｒ（Ｒｅｐｌａｃｅｒ  ｓｔｒｉｎｇＲｅｐｌａｃｅｒ）メソッドは、プラグインが供給したストリング置換体を使用してコンテナを変換するために使用される。このメソッドは、デプロイメント記述子を修正するため及びＪＡＲＳ及びＥＡＲＳを修正したデプロイメント記述子でアップデートするために使用される。
【００９８】
ｉｓＥｊｂ０ｒＷａｒＡｖａｉｌａｂｌｅ（）は、ＥＪＢ又はウエブアプリケーションがデプロイするため使用可能である場合に真をリターンする。
【００９９】
ｅｘｅｃｕｔｅＣｏｍｍａｎｄ（Ｓｔｒｉｎｇ  ｃｍｄ，  Ｂｏｏｌｅｎ  ｖｅｒｂｏｓｅＯｎＥｘｃｅｐｔｉｏｎ）及びｅｘｅｃｕｔｅＣｏｍｍａｎｄ（Ｓｔｒｉｎｇ  ｃｍｄ）メソッドは、別個のプロセスにおけるパラメータ「ｃｍｄ」において表わされたコマンドを実行する。このｃｍｄの結果はＳｔｒｉｎｇＷｒｉｔｅｒオブジェクト内にリターンされる。ｖｅｒｂｏｓｅＯｎＥｘｃｅｐｔｉｏｎパラメータは、例外に関してログ内に結果を入れることを該メソッドに告げる。
【０１００】
ｇｅｔＶａｒｉａｂｌｅＶａｌｕｅ（Ｓｔｒｉｎｇ  ｖａｒｉａｂｌｅＮａｍｅ）メソッドは、環境変数の値をリターンする。該メソッドは、該変数が定義されない場合にはヌルをリターンする。
【０１０１】
プラグインが実現するために提供される別のインターフェースはＥｘｔｅｎｄｅｄＨｅｌｐｅｒインターフェースである。このインターフェースは、プラグインがヘルパーインターフェースの拡張された特徴を利用することを可能とし、そのことはパッケージング及びデプロイメント特徴のデフォルト実現例を与える。
【０１０２】
ＥｘｔｅｎｄｅＨｅｌｐｅｒインターフェースの１つの例示的な定義は以下のメソッドを包含することが可能である。
【０１０３】
【表８】
2006521638.tif 000010
【０１０４】
上の定義において、ｉｓＥａｒＩｎｐｕｔ（）メソッドは、例えば、スタンドアローンモードとしてコールされた場合に、ＥＡＲファイルがデプロイメントツールへ入力された場合に真をリターンする。
【０１０５】
ｇｅｔＷｉｎｄｏｗｓＳｅｒｖｅｒＰａｇｅ（ＷｉｎｄｏｗｓＳｅｒｖｅｒＰａｇｅＵｓｅｒ  ｐａｇｅＵｓｅｒ）メソッドはウインドウズをベースとしたサーバーに対しデフォルトサーバー詳細ページをリターンする。
【０１０６】
ｇｅｔＵｎｉｘＳｅｒｖｅｒＰａｇｅ（ＵｎｉｘＳｅｒｖｅｒＰａｇｅＵｓｅｒ  ｐａｇｅＵｓｅｒ）メソッドは、ユニックスをベースとしたサーバーに対してデフォルトサーバー詳細ページをリターンする。このページは、例えば、ｆｔｐ（ファイル転送プロトコル）パラメータを収集する。
【０１０７】
ｃｒｅａｔｅＥａｒＦｉｌｅ（ＤｅｐｌｏｙｍｅｎｔＭｏｄｕｌｅ  ｄｅ，  ｉｎｔ  ａｐｐＣｏｕｎｔ）メソッドは、ＥＡＲファイルを構築するためにモジュール及びサブモジュールを特定するために使用される。
【０１０８】
ｃｒｅａｔｅＲｕｎｔｉｍｅＸｍｌ（ＤｅｐｌｏｙｍｅｎｔＭｏｄｕｌｅ  ｄｅ，  Ｓｔｒｉｎｇ  ｅａｒＰａｔｈ）メソッドは、Ｊ２ＥＥ参照実現に対するデプロイメント記述子であるＥＡＲファイルに対するｓｕｎ−ｊ２ｅｅ−ｒｉ．ｘｍｌファイルを作成するために使用される。
【０１０９】
ｉｎｖｏｋｅＣｏｍｍａｎｄＬｉｎｅ（Ｓｔｒｉｎｇ［］  ｐｒｏｇＡｒｒａｙ，  Ｓｔｒｉｎｇ  ｐｒｏｃｅｓｓＩＤ，  Ｓｔｒｉｎｇ  ｐｒｅｖＥｒｒｏｒＭｓｇ）、ｉｎｖｏｋｅＣｏｍｍａｎｄＬｉｎｅ（Ｓｔｒｉｎｇ  ｐｒｏｇＳｔｒｉｎｇ，  Ｓｔｒｉｎｇ  ｐｒｏｃｅｓｓＩＤ）及びｉｎｖｏｋｅＣｏｍｍａｎｄＬｉｎｅ（Ｓｔｒｉｎｇ［］  ｐｒｏｇＡｒｒａｙ，  Ｓｔｒｉｎｇ  ｐｒｏｃｅｓｓＩＤ）メソッドは、コマンドラインインターフェースを使用してコマンドを喚起するために使用される。
【０１１０】
ｇｅｎＦＴＰＣｏｎｔａｉｎｅｒｓ（ＲｅｓｏｕｒｃｅＢｕｎｄｌｅ  ｂｕｎｄｌｅ）メソッドはｆｔｐを介して送られるべきＥＡＲファイルを発生する。
【０１１１】
ｄｅｐｌｏｙＦＴＰＣｏｎｔａｉｎｅｒｓ（ＲｅｓｏｕｒｃｅＢｕｎｄｌｅ  ｂｕｎｄｌｅ）メソッドは、例えば、ＦＴＰによりＥＡＲファイルを転送する。
【０１１２】
ｇｅｎＣｏｎｔａｉｎｅｒｓ（ＲｅｓｒｏｕｃｅＢｕｎｄｌｅ  ｂｕｎｄｌｅ）メソッドはＥＡＲファイルを発生する。
【０１１３】
ｇｅｔＥａｒＰａｔｈ（）メソッドはＥＡＲファイルをアクセスするためのローカルパスをリターンする。
【０１１４】
ｄｅｐｌｏｙＣｏｎｔａｉｎｅｒｓ（ＲｅｓｏｕｒｃｅＢｕｎｄｅｌ  ｂｕｎｄｌｅ）メソッドはＥＡＲファイルをデプロイする。
【０１１５】
ｓｅｔＧｅｎｅｒａｔｅＳｑｌ（ｂｏｏｌｅａｎ  ｖａｌｕｅ）メソッドはＪ２ＥＥデプロイツールを使用してＳＱＬ（シーケンシャルクエリー言語）を発生すべく試みるべきか否かをプラグインが特定することを可能とする。例えば、パラメータ「ｖａｌｕｅ」は、ＳＱＬが発生されるべき場合に真をリターンする。デフォルトは偽である。
【０１１６】
上に示したインターフェース及び定義したメソッドは例とした記載したに過ぎず、本開示において提供されるシステム及び方法を実現する唯一の態様として解釈すべきではない。そうでなく、コンピュータプログラミングの分野における当業者が理解するように、メソッド及びインターフェース定義は、同様の結果を達成するために同様に機能的手順を実現しながら異なることが可能である。
【０１１７】
１実施例においての本開示のシステム及び方法において提供されるデプロイメントツールを使用するデプロイメント方法について、図３及びデプロイメントプロセス期間中に使用される複数個のパネルを例示した図４−１３を参照して説明する。図３は１実施例におけるデプロイメント方法を例示しており且つ該プロセス期間中に喚起されるクラス及びメソッドの例をも参照するプロセスフローチャートである。典型的に、ユーザとして呼称されるＥＪＤデプロイヤーの役割を担う人はデプロイメントツールを使用する。例えばコマンドライン上で又は開発環境ツールを介してデプロイメントツールが開始されると、デプロイメントツールにより実現されるデプロイウィザードインターフェースのメソッドが喚起されてユーザに対し図４に示した初期的パネルが提示される。パネル４００は使用可能なアプリケーションサーバー４０２のリスト及び「＋」ボタン４０４及び「Ｘ」ボタン４０６をリストする。このパネルは、ユーザが、ターゲットアプリケーションサーバーを選択し且つ３０４において示したように選択したターゲットアプリケーションサーバーに対するサーバープロファイルを定義することを可能とさせる。
【０１１８】
特定のアプリケーションサーバーに対するプロファイルが存在しない場合には、例えば「＋」ボタン４０４をクリックすることにより新たなサーバープロファイルを付加することが可能である。「Ｘ」ボタン４０６は、既存のサーバープロファイルを削除するために使用することが可能である。サーバープロファイルは、それに対してデプロイメントプラグインが存在する任意のアプリケーションサーバーに対して作成することが可能である。サーバープロファイルは、デプロイメントツールの喚起の間保存される。
【０１１９】
３０６において、デプロイメントプラグインが動的にロードされ且つインスタンス化される。デプロイメントプラグインは上述したインターフェースを実現する。各サーバータイプに対しマルチプロファイルを維持することが可能である。３０８において、プラグインで実現したメソッドが喚起されてアプリケーションサーバー特定コンフィギュレーション情報を取得する。この情報はデプロイメント期間中に使用されるデプロイメント記述子ファイルを修正するために使用される。３０１において、アプリケーションサーバー特定コンフィギュレーション情報を具備するＥＡＲファイルが再度パッケージングされる。３１２において、選択されたターゲットアプリケーションサーバーが遠隔マシン上に位置されている場合には、ＥＡＲファイルは、例えば、ＦＰＴによって、そのターゲットアプリケーションサーバーへ転送される。３１４において、プラグインにより実現されたデプロイメソッドが喚起されてＥＡＲファイルをその選択したターゲットアプリケーションサーバーへデプロイさせる。
【０１２０】
３０８において喚起されたプラグインで実現されたクラスは１つを超えるプラットフォームをサポートするプラグインに対するＭｕｌｔｉＰｌａｔｆｏｒｍＰｌｕｇｉｎインターフェースクラスを包含している。例えば、図５に示したディスプレイパネルは、このプラグインによりサポートされるプラットフォームのリストでプラグインのｊｅｔＮｅｘｔＰａｎｅｌメソッドが喚起される場合に表示させることが可能である。プラットフォームのリストは、このプラグインにより実現されるｊｅｔＰｌａｔｆｏｒｍｓメソッドを喚起することにより得られる。
【０１２１】
このパネル５００は、ユーザ、即ちデプロイメントを行う人がこのデプロイメント動作に対するターゲットとして使用されるプラットフォームのタイプを選択することを可能とする。ドロップダウンリスト中に表示されるプラットフォームは該プラグインによってサポートされる。
【０１２２】
プラグインを介して得られたアプリケーションサーバー特定プロパティ即ち特性は種々のサーバープロファイル詳細を包含することが可能である。そのサーバープロファイル詳細は、特定したアプリケーションサーバー及びプラットフォームに対してデプロイすることが必要とされる情報に依存して異なる場合がある。これらのプロファイル詳細は、サーバープロファイル内に保存され且つサーバープロファイルが次に要求される場合にデフォルト値として使用可能とされる。プロファイル詳細が検索され且つ、例えば、ＵｎｉｘＳｅｒｖｅｒＰａｇｅＵｓｅｒ又はＷｉｎｄｏｗｓＳｅｒｖｅｒＰａｇｅＵｓｅｒクラスメソッドを喚起することによりデフォルト値として図６に示したパネルを使用して表示される。これらのパネルはプラグインにより使用するために使用可能であり且つＤｅｐｌｏｙｍｅｎｔＨｅｌｐｅｒインターフェースへアクセスすることにより特定のプラグインから得ることが可能である。
【０１２３】
図６に示したパネルを介して取得される情報がプラグインに対して充分である場合には、それはＤｅｐｌｏｙｍｅｎｔＨｅｌｐｅｒインターフェースを介してプラグインにより使用することが可能である。代替的に、プラグインはサーバープロファイル詳細情報を得るために異なるプロファイル詳細パネルを実現することが可能である。
【０１２４】
サーバーに対してデプロイメント詳細が特定されると、ＥＡＲファイルがパッケージされ且つ表示される。次いで、ユーザはＪ２ＥＥモジュールに対してデプロイメント記述子を修正することが可能である。デプロイメント記述子は多数の異なる態様で修正することが可能である。例えば図７に例示したＥＪＢディスプレイツリーを示したパネルから選択したＸＭＬファイルを編集するためにＸＭＬエディターを使用することが可能である。ユーザがＸＭＬファイルを選択すると、図８に示したようにデプロイメント記述子の選択した部分を修正するためにエディターを開くためにその他のパネルを活性化させることが可能である。図７に示したＥＡＲファイルコンテンツパネルから、ユーザがメッセージ駆動型ビーンに関連したパラメータを特定することを所望する場合には、例えばメッセージ駆動型ビーンをユーザにより選択することが可能である。メッセージ駆動型ビーンが選択されると、パラメータを特定するためのパネルを喚起することが可能である。
【０１２５】
通常、本開示のデプロイメントツールにおける実現されたクラスはＥＪＢディスプレイツリー７０２を示すパネルを表示する。該ツリー上のオブジェクトは該パネル上の異なるボタン７０４を選択することにより修正することが可能である。該ボタンは該クラスにおけるメソッドへ接続されており、それらは付加的なパネルを活性化させる。
【０１２６】
図８を参照すると、ＸＭＬエディターがユーザにユーザが所望する任意の態様でデプロイメント記述子を修正する能力を与える。代替的に、ＸＭＬエディターは、それが最初に喚起される場合にデプロイメントツールによりディスエーブルさせることが可能である。ＸＭＬエディダーはＸＭＬに特定的なフォーマッティング及びハイライティングを与えることが可能である。
【０１２７】
例えば図９に示したＪＭＳデスティネーションプロパティパネルは、ユーザがＥＪＢをＪＭＳ（ジャバメッセージサービス）デスティネーションとしてコンフィギュア即ち形態特定するのに必要な１つ又はそれ以上のパラメータを特定することを可能とする。コネクションファクトリィ（ｃｏｎｎｅｃｔｉｏｎ  ｆａｃｔｏｒｙ）の名前は、使用されるメッセージタイプに依存して、ＴｏｐｏｉｃＣｏｎｎｅｃｔｉｏｎＦａｃｔｏｒｙ又はＱｕｅｕＣｏｎｎｅｃｔｉｏｎＦａｃｔｏｒｙのいずれかへデフォルトさせることが可能である。所望により、ユーザはターゲットＪ２ＥＥアプリケーションサーバー上にインストールした任意のＪＭＸコネクションファクトリィのＪＭＤＩ名をこのフィールド内にエンターすることが可能である。
【０１２８】
ＪＭＳメッセージセレクター９０２はそれらのプロパティに基づいて入ってくるメッセージをフィルタさせる表現である。例えば、メッセージセレクター表現は以下の如くに表われる場合がある。
【０１２９】
【表９】
2006521638.tif 000011
【０１３０】
このメッセージセレクター９０２は‘Ｗｅａｔｈｅｒ’又は‘Ｐｏｌｙｔｉｃｓ’の値で提示された“ＮｅｗｓＴｙｐｅ”プロパティを具備するメッセージのみをメッセージコンシューマにより受取らせる。
【０１３１】
デプロイメントプロパティパネルとも呼称される上述したパネルを使用して収集した情報は、適宜のデプロイメント記述子における夫々のフィールドを発生するために使用される。
【０１３２】
当業者に知られているように、ＥＪＢデプロイメント記述子はエンタプライズビーンのジャバアーカイブ（ＪＡＲ）内に包含されているＸＭＬ記述子である。このファイルｅｊｂ−ｊａｒ−ｘｍｌはメッセージビーン提示、そのＪＭＳメッセージセレクター、デスティネーションタイプ、及びＴｏｐｉｃｓに対するそのサブスクリプションデュアラビリティ（ｓｕｂｓｃｒｉｐｔｉｏｎ  ｄｕｒａｂｉｌｉｔｙ）を包含している。これらのプロパティを表わすために使用される記述子フィールドを以下の例に示してある。上述した例のパネルにおいて収集される情報の幾つかはイタリック体で表わしてある。
【０１３３】
【表１０】
2006521638.tif 000012
【０１３４】
ＥＡＲ記述子フォーマットはアプリケーションサーバーベンダーの間で異なる場合がある。以下の例は、Ｊ２ＥＥ参照実現アプリケーションサーバーにより使用されるフォーマットを示している。上述したパネルを使用して収集することが可能であり且つ記述子をアップデートするために使用することが可能な情報の例はイタリック体で示してある。
【０１３５】
【表１１】
2006521638.tif 000013
【０１３６】
他のリソースを参照するＥＪＢは、本開示のシステム及び方法により提供されるリソース参照パネルを使用してそれらのデプロイメント記述子に対して付加された適宜の情報を有することが可能である。図１０は１実施例におけるリソース参照パネルを示している。ＪＮＤＩ名、ユーザ名、パスワードフィールドは選択されたリソース参照と関連している。
【０１３７】
リソース参照パネル１０００がＥＪＢにより参照されるリソースに関連する付加的な情報を付加するために使用される場合には、ＥＪＢデプロイメント記述子、例えば上に示したｅｊｂ−ｊａｒ．ｘｍｌはＪＮＤＩを介してアクセスされたＪＭＳオブジェクトに対するリソース参照定義を包含することが必要である。単一のトピック又はキューに対してメッセージを送るメッセージ発生体の場合には、二つのＪＮＤＩ参照、即ちコネクションファクトリ及びトピック／キューが存在するに過ぎない。例えば、以下のセッションビーンデプロイメント記述子は、トピックに対してメッセージを発行するメッセージ発生体に対してどのようにしてＪＭＳ参照（イタリック体）が定義されるかを示している。
【０１３８】
【表１２】
2006521638.tif 000014
【０１３９】
ＥＪＢデプロイメント記述子における参照を特定することに加えて、コネクションファクトリ及びトピック／キュー名に対する参照もＥＡＲデプロイメント記述子において特定される。ＥＡＲ記述子フォーマットはアプリケーションサーバーベンダーの間で異なる場合がある。以下のＥＡＲ記述子は、トピックに対してメッセージを発行するセッションビーンのデプロイメントに対してどのようにしてこれらの参照（イタリック体で示してある）を特定されるかを示している。
【０１４０】
【表１３】
2006521638.tif 000015
【０１４１】
図１１はリソース環境参照パネルを示している。リソース環境参照は、そのＪＮＤＩ名と比較してアプリケーションのソースコードにおける異なる名前によりリソースを参照することを可能とする。このパネル１１００は、ユーザ、例えばそのデプロイメントを行っている人がコード化した名前とＪＮＤＩ名との間の相関を特定することを可能とするために使用することが可能である。このことは、ＥＪＤソースコードを修正することの必要性無しに、ＪＮＤＩ名をデプロイメント環境間において異なるものとすることを可能とする。
【０１４２】
図１２は１実施例における要約パネルを示している。この要約パネルは、ターゲットアプリケーションサーバーに対するデプロイメントを開始する前にデプロイメントオプションをユーザが検証することを可能とする。図１３は１実施例における進展パネルを例示している。この進展パネルはデプロイメント動作の進展及び結果を示している。このパネルはオプションであり且つデプロイメントツールによりディスエーブルさせることが可能である。
【０１４３】
１実施例において、個々のプラグインは互いに分離されている。従って、特定のプラグインにおける障害は、典型的に、他のプラグインに影響を与えることはない。ここに記載したデプロイメントツールインフラストラクチャは、特定したＥＡＲファイルのデプロイメントを達成するためにプラグインにより使用される。
【０１４４】
本発明のシステム及び方法は汎用コンピュータ上で実現し且つ稼動させることが可能である。例えば本システム及び方法において提供されるデプロイメントツールはＥＪＢ２．０仕様及びＪ２ＥＥ  １．３ブループリントに基づくものとすることが可能である。このデプロイメントツールは、例えばＥＪＢ２．０準拠及びＪ２ＥＥ認定である種々のアプリケーションサーバーに対してＥＪＢのデプロイメントを行うことを可能とする。
【０１４５】
上述した実施例は例示的な例であり且つこれらの特定の実施例に制限されるものとして解釈すべきではない。種々の変形及び修正は特許請求の範囲に記載した本発明の精神及び範囲から逸脱することなしに当業者により行うことが可能である。例えば、ここに開示したシステム及び方法は説明の便宜上例としてＪ２ＥＥ及びジャバ環境に関して説明したが、このようなプログラミング環境のみに制限されるものではない。更に、定義したインターフェース及びクラスはデプロイメントツールの動作上の詳細を説明するために記載したものであるが、プログラミングコードが異なる場合があることを理解すべきである。従って、本発明は特許請求の範囲によるものを除いて制限されるものではない。
【図面の簡単な説明】
【０１４６】
【図１】１実施例におけるデプロイメントツールを例示したアーキテクチャ図。
【図２】１実施例におけるデプロイメントプロセスの外観を例示した機能図。
【図３】１実施例におけるデプロイメント方法を例示したフローチャート。
【図４】デプロイメントプロセスを介してユーザを案内し且つ特定のターゲットアプリケーションサーバーに関連するデプロイメント情報を収集するためにユーザに対して提示される１実施例におけるスクリーンパネルの例を示した概略図。
【図５】デプロイメントプロセスを介してユーザを案内し且つ特定のターゲットアプリケーションサーバーに関連するデプロイメント情報を収集するためにユーザに対して提示される１実施例におけるスクリーンパネルの例を示した概略図。
【図６】デプロイメントプロセスを介してユーザを案内し且つ特定のターゲットアプリケーションサーバーに関連するデプロイメント情報を収集するためにユーザに対して提示される１実施例におけるスクリーンパネルの例を示した概略図。
【図７】デプロイメントプロセスを介してユーザを案内し且つ特定のターゲットアプリケーションサーバーに関連するデプロイメント情報を収集するためにユーザに対して提示される１実施例におけるスクリーンパネルの例を示した概略図。
【図８】デプロイメントプロセスを介してユーザを案内し且つ特定のターゲットアプリケーションサーバーに関連するデプロイメント情報を収集するためにユーザに対して提示される１実施例におけるスクリーンパネルの例を示した概略図。
【図９】デプロイメントプロセスを介してユーザを案内し且つ特定のターゲットアプリケーションサーバーに関連するデプロイメント情報を収集するためにユーザに対して提示される１実施例におけるスクリーンパネルの例を示した概略図。
【図１０】デプロイメントプロセスを介してユーザを案内し且つ特定のターゲットアプリケーションサーバーに関連するデプロイメント情報を収集するためにユーザに対して提示される１実施例におけるスクリーンパネルの例を示した概略図。
【図１１】デプロイメントプロセスを介してユーザを案内し且つ特定のターゲットアプリケーションサーバーに関連するデプロイメント情報を収集するためにユーザに対して提示される１実施例におけるスクリーンパネルの例を示した概略図。
【図１２】デプロイメントプロセスを介してユーザを案内し且つ特定のターゲットアプリケーションサーバーに関連するデプロイメント情報を収集するためにユーザに対して提示される１実施例におけるスクリーンパネルの例を示した概略図。
【図１３】デプロイメントプロセスを介してユーザを案内し且つ特定のターゲットアプリケーションサーバーに関連するデプロイメント情報を収集するためにユーザに対して提示される１実施例におけるスクリーンパネルの例を示した概略図。
【図１】
2006521638.tif 000016
【図２】
2006521638.tif 000017
【図３】
2006521638.tif 000018
【図４】
2006521638.tif 000019
【図５】
2006521638.tif 000020
【図６】
2006521638.tif 000021
【図７】
2006521638.tif 000022
【図８】
2006521638.tif 000023
【図９】
2006521638.tif 000024
【図１０】
2006521638.tif 000025
【図１１】
2006521638.tif 000026
【図１２】
2006521638.tif 000027
【図１３】
2006521638.tif 000028
【国際調査報告】
2006521638.tif 000029
2006521638.tif 000030