JP2006521638A - ユニバーサルデプロイメントツール - Google Patents

ユニバーサルデプロイメントツール Download PDF

Info

Publication number
JP2006521638A
JP2006521638A JP2006508889A JP2006508889A JP2006521638A JP 2006521638 A JP2006521638 A JP 2006521638A JP 2006508889 A JP2006508889 A JP 2006508889A JP 2006508889 A JP2006508889 A JP 2006508889A JP 2006521638 A JP2006521638 A JP 2006521638A
Authority
JP
Japan
Prior art keywords
deployment
application server
target application
plug
modules
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006508889A
Other languages
English (en)
Inventor
スリードハラ スリニバスル ナラヤナスワミー,
ジェラルド エル. ボイド,
Original Assignee
コンピュータ アソシエイツ シンク,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by コンピュータ アソシエイツ シンク,インコーポレイテッド filed Critical コンピュータ アソシエイツ シンク,インコーポレイテッド
Publication of JP2006521638A publication Critical patent/JP2006521638A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

デプロイメントツール用のシステム及び方法が提供される.1つの側面における本デプロイメントツールは、任意の所定のスタンダードに準拠したアプリケーションツールにより発生されるソフトウエアコンポーネントを組立て且つデプロイする。1つの側面における本システム及び方法は各アプリケーションサーバーの特定のデプロイメント論理をプラグインモジュールに分離する。ユーザはデプロイメント変数を特定し且つ必要に応じてデプロイメントをカスタム化するための一連の入力ツール又はパネルが与えられる。そのカスタム化はターゲットアプリケーションサーバー、及び、オプションとして、ターゲットプラットフォーム及びオペレーティングシステムを選択する能力を包含している。

Description

本願はコンピュータシステムに関するものであって、特に、ターゲットサーバー又はプラットフォームに対してソフトウエアコンポーネントをアッセンブルし且つデプロイするシステム及び方法に関するものである。
アプリケーションサーバーとも呼称されるミドルティア(middle tier)アプリケーションは、典型的に、データベース管理システム、トランズアクションモニタ、ネーミング及びディレクトリィサービス等の広範囲な既存のエンタプライズシステムの上に存在している。これらのアプリケーションサーバーの多くは、種々のエンタプライズシステムを管理し且つアクセスするアプリケーションに対してポータビリティ及びスケーラビリティを与えるためにジャバ2プラットフォーム、エンタプライズエディション(J2EE)等のスタンダード仕様に基づいて構築されている。
例えば、J2EEは後にスタンダードとなるべきエンタプライズアプリケーションを開発するための仕様を定義する。J2EEはこれらのコンポーネントに対して1組のサービスを提供することにより、且つアプリケーション挙動の多くの詳細を自動的に取り扱うことによりエンタプライズアプリケーションを標準化したモジュール型コンポーネントに基づくものとさせる。J2EEは、エンタプライズジャバビーン(EJB)コンポーネント、ジャバサーブレットAPI、ジャバサーバーページ及び拡張マークアップ言語(XML)技術に対するサポートを包含している。
従って、J2EEスタンダード仕様に準拠して構築されたアプリケーションは、J2EEスタンダードをサポートするアプリケーションサーバーへデプロイさせることが可能であり、従ってデプロイされたアプリケーションが、アプリケーションサーバーを介してその基礎となるエンタプライズシステムにより供給された種々の資源を管理し且つアクセスすることを可能とする。概略的に、デプロイメントは、J2EEアプリケーション等のアプリケーションプログラムの種々の部分をアプリケーションサーバーにおける適宜の位置へ分布させ且つ形態特定させるプロセスである。
J2EEはアプリケーションサーバー及びこれらのアプリケーションサーバー上で稼動するアプリケーションに対してスタンダードの仕様を与えるものであるが、各アプリケーションはベンダー又はアプリケーションサーバープロバイダーの特定の基準に従ってデプロイされねばならない。殆どの場合において、アプリケーションサーバーを供給する各ベンダーは、又、アプリケーションをそのアプリケーションサーバーへ特定的にデプロイするためのデプロイメント方法及びツールを提供する。更に、特定のアプリケーションサーバーデプロイメント環境においてデプロイされたアプリケーションは、そのアプリケーションサーバーのみに対してデプロイすることに制限される。従って、アプリケーションを異なるアプリケーションサーバーへデプロイするためには、デプロイするためにそのアプリケーションを開発するために多数のデプロイメント環境ツールを使用せねばならない場合がある。
異なるアプリケーションサーバーに対する異なるデプロイメント方法ということは、ユーザが多数のデプロイメント方法を学習し且つ異なるアプリケーションサーバープロバイダーにより提供される多数の且つ変化するデプロイメントツールに遅れずについて行くことを必要とすることを意味している。同様に、ユーザは、デプロイメント用のアプリケーションを開発するための多数のデプロイメント環境ツールを学習し且つ使用することが必要である。
従って、必要とされていることは、アッセンブルされ且つデプロイされるべき任意の開発環境ツールを使用して構築されたアプリケーション及びコンポーネントをユーザが任意のその他のアプリケーションサーバーへデプロイすることを可能とするようなユニバーサルデプロイメントツールである。
デプロイメントツール用のシステム及び方法が提供される。本デプロイメントツールは、1つの側面においては、任意の所定のスタンダードに準拠したアプリケーションツールにより発生されたプログラムモジュール又はソフトウエアコンポーネントをアッセンブルし且つデプロイする。本システム及び方法は、1つの側面においては、各アプリケーションサーバーの特定デプロイメント論理をプログラインモジュールへ分離する。ユーザは、デプロイメント変数を特定し且つそのデプロイメントを必要に応じてカスタム化するために一連の入力ツール又はパネルが与えられる。そのカスタム化は、ターゲットアプリケーションサーバーを選択するための能力を包含しており、且つ、オプションとして、ターゲットプラットフォーム及びオペレーティングシステムを包含している。提供されるシステム及び方法は、スタンドアローンモードで稼動させることが可能であり、及び/又はそれから開始させることが可能な開発ツール内に統合させることが可能である。
1つの側面においては、本システムは、1つ又はそれ以上のプログラムモジュールをデプロイすべきターゲットアプリケーションサーバーを決定すべく動作可能なデプロイメントモジュールを有している。本システムは、又、デプロイメントモジュールとの相互作用を実現するためにプラグインモジュールに対し共通組のプログラム定義を包含している。該共通組のプログラム定義は、ターゲットアプリケーションサーバーに対してデプロイするためのターゲットアプリケーションサーバー特定情報をコンフィギュア即ち形態特定するためにプラグインモジュール及びデプロイメントモジュールにより使用される。該共通組のプログラム定義は、方法及び変数を定義するオブジェクト指向型インターフェース定義を包含することが可能であり、プラグインモジュールは特定のターゲットアプリケーションサーバーに対してプラグインをカスタム化するために実現することが可能である。
別の側面においては、本システムは1つ又はそれ以上のプラグインモジュールを提供することが可能である。例えば、本システムは本システムがサポートすることが可能な各ターゲットアプリケーションサーバーに対応するプラグインモジュールを提供することが可能である。該プラグインモジュールは該共通組のプログラム定義を実現し、関連するターゲットアプリケーションサーバーに対するアプリケーションサーバー特定コンフィギュレーションに関連するカスタム化を与える。
更に別の側面においては、プログラムモジュール又はファイルをデプロイするための方法が、1つ又はそれ以上のプログラムモジュールをデプロイするためのターゲットアプリケーションサーバーを決定し且つ該ターゲットアプリケーションサーバーと関連するコンフィギュレーション情報を決定するためのターゲットアプリケーションサーバーと関連するプラグインモジュールを動的にロードすることを包含している。デプロイメントファイルは決定したコンフィギュレーション情報でアップデートされ且つプログラムモジュールはアップデートしたデプロイメントファイルで再度パッケージングされる。再度パッケージングされたファイルは、次いで、プラグインで実現されたデプロイルーチンを喚起することによりターゲットアプリケーションサーバーへデプロイさせる準備がなされる。1つの側面においては、本開示のデプロイメントツールが稼動しているシステムから遠隔的に位置されているアプリケーションサーバーに対して、再度パッケージングされたファイルが、例えば、デプロイルーチンが喚起される前に、FTP(ファイル転送プロトコル)を使用してターゲットアプリケーションサーバーへ転送される。
本開示は、プログラムファイル又はプログラムモジュールとも呼称されるソフトウエア又はプログラムユニットを、所定の仕様スタンダードに準拠した任意のミドルティアアプリケーション又はアプリケーションサーバーへデプロイさせるシステム及び方法を記載する。このような所定の仕様スタンダードの1例はJ2EEを包含しており且つこのようなソフトウエアユニットの1例はコンポーネントを包含している。従って、例えば、本開示におけるシステム及び方法は、エンタプライズジャバビーン(EJB)、ウエブアプリケーション、サーブレット等を種々のアプリケーションサーバーへデプロイするための能力を与える。デプロイ可能なEJBは、ステートレスセッションビーン(stateless session bean)、ステートフル(stateful)セッションビーン、ビーン管理型パーシステンス(persistense)エンティティビーン、コンテナ(container)管理型パーシステンスエンティティビーン、メッセージ駆動型ビーン及びウエブコンポーネント又はアプリケーションを包含することが可能であるが、このようなコンポーネントのみに制限されるものではない。
従って、例えば、本開示において与えられるシステム及び方法は、NT、ウインドウズ2000、ソラリス、AIX、HP、リナックス及びAS/400等のプラットフォーム上でウエブロジック(Weblogic)、ウエブスフィア(Websphere)、アイプラネット(iPlanet)、Jrun、Oracle9i又は任意のその他のアプリケーションサーバー等のアプリケーションサーバー及びJ2EE1.3参照実現(Reference Implementation)へのデプロイメントを可能とさせる。
以下の説明において、周知の機能及びコンポーネントは詳細に説明しない。従って、J2EEスタンダード仕様及びジャバプログラミング方法に関連する多くの既知の特徴及び定義については詳細に説明しない。更に、開示される本システム及び方法をJ2EE及びジャバ環境を参照して説明するが、このスタンダード仕様は1例としてのみ使用するものである。従って、理解すべきことであるが、本明細書に開示するデプロイメントツールについてのシステム及び方法はJ2EE及びジャバアプリケーションのみと共に使用することに制限されるものではなく、その他のこのようなスタンダード及び仕様に対しても適用可能なものである。
図1は1実施例において本開示のデプロイメントツールについてのシステム及び方法を例示したアーキテクチャ図である。本開示のデプロイメントツールはデプロイメントウィザードインターフェース102を実現し且つ種々のアプリケーションコンポーネントをアプリケーションサーバーへのデプロイを開始すべく喚起される。デプロイメントウィザードインターフェース102は、デプロイメントプロセスを介してユーザを案内するためにユーザに種々の入力パネル及びメッセージパネルを提示する機能を包含している。代替的に、デプロイメントウィザードインターフェース102は、コマンドラインインターフェース上で喚起させることが可能であり、且つユーザは何等のプレゼンテーションパネル無しでデプロイメントプロセスを稼動させることが可能である。
デプロイメントウィザードインターフェース102はデプロイメントツールを使用するために実現することが可能な多数のメッソド及び変数を定義する。例えば、デプロイメントツールクラスは、その機能を提供するために以下のデプロイメントウィザードメッソド(method)を実現することが可能である。getDeploymentModules()はデプロイされるべきEARファイルのリストをリターンし、setDeployerはアクティブなデプロイメントプラグインに対しデプロイヤー(deployer)をセットし、getDeployerはアクティブなデプロイメントプラグインに対しデプロイヤーをリターンし、getHelperはデプロイメントヘルパーインターフェースをリターンし、isStoppedはデプロイメントが停止された場合に真をリターンし、packageFilesはデプロイされるべきEARファイルをパッケージングし、processFinishは終了ボタンが押し下げられ得た場合に実行され、getPluginBundleはアクティブなプラグインにより使用されているリソースバンドルをリターンし、getBundle()はデプロイメントウィザードにより使用中のバンドルをリターンし、isXmlEditorAllowedはXMLエディターを喚起することが可能である場合に真をリターンし、isRunningInsidJoeはデプロイツールが開発環境であるアドバンテージジョー(Advantage Joe)により喚起されている場合に真をリターンし、getContextRootはプロジェクトに対するコンテキストルートを取得し、getEjbRefsはwar又はプロジェクトに対するejb参照を取得し、setContextRootsはearファイルにおけるapplication.xmlファイルからのコンテキストルート設定を使用してコンテキストルートHashMapをセットし、showSunJ2eeRi()はejbツリーにおいてsun−J2ee−ri.xmlファイルを示すべきである場合に真をリターンする。
1実施例において、2つのクラスがデプロイメントウィザードインターフェース102を実現する。1つのクラス104がAdvantage Joeインターフェース等のデプロイメント環境ツールインターフェース104と通信を行い、且つデプロイメント環境ツール内において喚起させることが可能である。他方のクラス106はコマンドラインからの入力を受取り且つコマンドラインインターフェースとして参照される。
本開示のデプロイメントツールは、各アプリケーションサーバーにとって一意的なアプリケーション特定機能及び特性を分離させ且つモジュール化させるプラグインアーキテクチャを使用する。この一意的な機能及び特性の例は、例えばキャッシングが実施されるべきか否か等のアプリケーションサーバー特定セキュリティ情報及びファクタを包含することが可能である。その他のアプリケーションサーバー特定基準は、アプリケーションサーバーが必要としたクラスを包含するためにEARファイルを予備処理することが必要であるか否かに拘わらず、EARファイルを格納することが必要なアプリケーションサーバーの特定の位置を包含している。更に、多くのアプリケーションサーバーは、通常、アプリケーションサーバー特定デプロイメント記述子を使用することを必要とする。
従って、与えられたターゲットアプリケーションサーバーに対するアプリケーション特定デプロイメントコンフィギュレーション及び機能はそのターゲットアプリケーションに対するプラグインモジュール110内にカプセル化される。プラグインモジュール110はデプロイメントウィザードインターフェース102を実現するクラス104,106の間の通信を実施するためにプラグインデプロイヤーインターフェース112及びその他のヘルパーインターフェースを実現する。
1実施例においては、デプロイメントウィザードインターフェース102を実現するクラス104及び106が、アーカイブJ2EEアプリケーション(EAR)ファイル等のアプリケーション又はコンポーネントの特定したパッケージをデプロイするためにどのサーバープロファイルを使用すべきかを決定するためのサーバープロファイル選択を要求する。例えば、現在インストールされている1つ又はそれ以上のプラグインが決定され且つ使用可能なターゲットサーバーのリストを形成するために使用される。即ち、IBMウエブスフィアプラグインがインストールされている場合には、サーバープロファイルマネージャ108は候補ターゲットサーバーのうちの1つとしてIBMウエブスフィアアプリケーションサーバーをリターンする。
1実施例において、上述したように決定されたターゲットサーバーのリストからターゲットサーバーを選択するためにサーバープロファイルパネルがユーザへ提示される。ユーザは該リストから1つを選択するか又は新たなターゲットアプリケーションサーバーを特定することが可能であり、新たなサーバープロファイルを作成し且つその新たなサーバーと関連するプラグインをインストールする。
当業者にとって既知であるように、プラグインはメインのアプリケーションを向上させる補助的なプログラムのことである。プラグインはメインのアプリケーションに影響することなしにメインのアプリケーションへ付加することが可能なプログラムユニットである。本開示のデプロイメントツールはアプリケーション特定機能に対してプラグインアーキテクチャを使用するので、例えば、これらの新たなターゲットアプリケーションサーバーに対するプラグインを付加することにより容易に付加的なターゲットアプリケーションサーバーを付加することが可能である。従って、デプロイメント用の新たなアプリケーションサーバーは、デプロイメントツールのその他の部分を変更又は修正する必要性なしに動的に付加させることが可能である。
典型的に、デプロイヤー、即ちデプロイメントを実施する人は、サーバータイプを選択し且つデプロイメントの設定を保存するために使用されるサーバープロファイル108を定義する。サーバープロファイル108は、例えば、同一のアプリケーションサーバーに対しての前のデプロイメントセッションから既に作成されている場合がある。サーバープロファイル108はデプロイヤーインターフェース112を実現する対応するプラグイン110を有するサーバーに対して作成される。例えば、サーバープロファイルは、サーバープロファイルマネージャ108により作成され且つ保存され、且つデプロイメントプロセス期間中にユーザにより提供される情報で埋められる。サーバープロファイルはプラグインにより必要とされる情報を格納し、プロファイル名、ホスト名、ホスト番号等の情報を包含している。サーバープロファイルにおけるその他の情報は、デプロイメントプラットフォームのタイプ、ファイル転送プロトコル(ftp)ユーザ識別子(id)、ftpパスワード、デプロイメントディレクトリを包含することが可能である。特定のアプリケーションサーバーに対して必要とされる付加的な情報は、デプロイメントプロセス期間中にユーザから要求される場合があり且つサーバープロファイル内に格納される場合がある。
プラグインがデプロイヤーインターフェース112を実現すると、デプロイメントツールクラス104又は106は、デプロイヤーインターフェース112を実現するプラグインメッソドのインスタンスを喚起することによりそのプラグインによりどのプラットフォームがサポートされるかを決定することが可能である。例えば、getPlatformfメッソドを定義するMultiPlatformPluginインターフェースであるデプロイメントツールクラス104又は106に対してプラットフォーム情報を通信するために設けられたインターフェースを実現するプラグインにおけるクラスは、その特定のプラグインによりサポートされるプラットフォームのリストを提供することが可能である。プラットフォームが114において示したように選択された後に、対応するプラグイン110が活性化されてEARファイルをパッケージングする。
デプロイヤーヘルパーインターフェース116はプラグイン110によって使用することが可能であり、且つデプロイメントウィザードインターフェース116を実現するデプロイメントツールクラス104又は106のサービスを要求するための1つ又はそれ以上のメッソドへのアクセスを与える。例えば、EARファイルがパッケージングされた後に、ユーザはデプロイヤーヘルパーインターフェースを使用してデプロイメント記述子を編集することが可能である。デプロイヤーヘルパーインターフェース116は、そのプラグインがデプロイメントツール104又は106によって活性化される場合に、プラグインへパスされる。パッケージングしたEARファイルに対する要約ページを表示する前に、デプロイメントツール104又は106は、オプションとして、修正すべきパッケージングしたEARファイルの内容を表示することが可能である。修正はヘルパーインターフェースダイアログを使用して、又は提供されるXMLエディターを使用することによって実施することが可能である。
次いで、パッケージングされたEARファイルは、該プラグインによって実現されるデプロイメッソドを使用して選択したターゲットアプリケーションサーバーへデプロイされる。例えば、デプロイメッソドはデプロイメントウィザードインターフェース102を実現するデプロイメントツールクラス104,106から喚起させることが可能である。
図2は1実施例におけるデプロイメントプロセスの概略を例示している。図2はパッケージングされ且つデプロイされるコンポーネントとしてEJB.ear202を示しているが、本開示のデプロイメントツールは、EJB及びウエブアプリケーションコンポーネントの両方を包含することが可能な完全なEARファイル及びその他のファイルを取扱うためにイネーブル即ち動作可能とされる。デプロイ可能なコンポーネントは使用可能なエンタプライズ開発環境ツールのうちのいずれか1つを使用することにより作成することが可能である。このような1つのツールはAdvantage Joe 3.0であり、それはアプリケーションサーバー上へのコンポーネントをモデリングし、構築し、且つデプロイするための能力を提供する。ここに開示したデプロイメントツールは、1実施例において、ジャバアーカイブ(JAR)ファイルを結合し且つそれらをエンタプライズアーカイブ(EAR)ファイル内へ統合させ、それらは、次いで、JARファイル及びEARファイルを作成するためにどのツールを使用したか否かに拘わらず、ターゲットアプリケーションサーバーへデプロイさせることが可能である。
JARファイルは、典型的に、J2EEアプリケーションを構成する1つ又はそれ以上のJ2EEモジュールを包含している。J2EEモジュールは、ウエブ及びEJB等の同一のコンポーネントタイプの1つ又はそれ以上のJ2EEコンポーネントの集まりである。各J2EEモジュールは、典型的に、対応するデプロイメント記述子を包含しており、それは該モジュールにおけるコンポーネントのデプロイメント期間中に必要とされる宣言的データを包含している。
J2EEアプリケーションは、1つ又はそれ以上のJ2EEモジュール及び1つのJ2EEアプリケーションデプロイメント記述子を包含している。J2EEアプリケーションデプロイメント記述子は、通常、WAR及びEJB JARファイルを記述し且つ、存在する場合に、そのアプリケーションに対して特定的なセキュリティ及びデータベース情報を包含している。J2EEアプリケーションはジャバアーカイブ(JAR)ファイルフォーマットを使用して.earファイル名拡張子を有するファイルへパッケージングされる。J2EEアプリケーションを作成する場合に、そのアプリケーションにおいて使用されるJ2EEモジュールが選択され、アプリケーションディレクトリ構造が作成され、J2EEモジュールデプロイメント記述子が作成され、そのJ2EEアプリケーションに対するデプロイメント記述子が作成され、且つJ2EEアプリケーションがパッケージングされる。
再度図2を参照すると、EARファイル202が受取られる。代替的に、本開示のデプロイメントツールは、例えば、デプロイメントツールが開発環境の一部として喚起される場合には、モジュール選択及びモデル情報の形態における入力を受取ることが可能である。即ち、Advantage Joe等の開発ツールの統合された一部として動作する場合には、デプロイメントツールは、1実施例において、開発ツールの情報モデル、JARファイル内にパッケージングされたJ2EEモジュールのディレクトリ、及びプロジェクト選択と共に供給される。
開発ツールの情報モデルは、クラス及び内部論理の記述及びクラス間の関係等のアプリケーションに関する詳細な情報を包含する場合がある。例えば、クラス、仕様、メッソド、プラスチック、プロジェクト、ジャーを包含するオブジェクトのリストから選択することにより関連するオブジェクトを構築し且つデプロイするためにプロジェクト選択を使用することが可能である。従って、プロジェクト選択は、デプロイメントツールが、開発環境ツールを使用して構築した特定のプロジェクト出力を探し出すことを可能とする。この出力は、構築プロセス及び開発環境ツールにおける構築プロセス期間中に作成された任意の適用可能なジャー(jar)ファイルから発生するクラスを包含する出力ディレクトリを包含することが可能である。本開示におけるデプロイメントツールは、J2EEモジュールをEARファイル202へパッケージングするために、開発ツールの情報モデル及び出力ディレクトリへアクセスするためにプロジェクト選択情報を使用する。
204において、入力EARファイル202が処理される。例えば、EARファイル202はその個別的なコンポーネントへ拡張され従ってEARファイル202における1つ又はそれ以上のデプロイメント記述子を抽出し且つ修正することが可能である。本開示において提供されるデプロイヤーインターフェースは、デプロイメント記述子を修正するために使用することが可能である。例えば、供給されるか又は構築されたEARファイル202がデプロイメント記述子を包含するものであるが、これらの記述子はターゲットアプリケーションサーバーへ実際にデプロイメントする前に修正されることが必要な場合がある。当業者にとって既知であるように、デプロイメント記述子は各モジュール及びアプリケーションに対して設けられているXMLファイルを参照し、且つモジュール及びアプリケーションがどのようにしてデプロイされるべきかを記述する。
206において、EARファイルがデプロイされるべきターゲットアプリケーションサーバーを選択する。この選択は、例えば、対応するプラグイン208を有する使用可能なアプリケーションサーバーのリストをユーザへ提示し且つユーザがそのリストからアプリケーションサーバーを選択することを可能とさせることにより決定することが可能である。更に、ユーザはリスト内にリストされていない新たなアプリケーションサーバーをエンターすることのオプションが与えられる。210において、選択したアプリケーションサーバーに対応するプラグインが動的にロードされる。212において、使用可能な任意のその他のプラグインもこの時に動的にロードさせることが可能である。214において、既に存在していない場合には選択したアプリケーションサーバーに対するプロファイルが作成される。例えば、新たなアプリケーションサーバーは対応するアプリケーションサーバープロファイルが作成されることを必要とする場合がある。このアプリケーションサーバープロファイルは、EARファイルがデプロイされるターゲットアプリケーションサーバーのホスト名及びポート番号等の情報を包含している。216において、そのEARファイルがデプロイメント記述子の有効なバージョンを包含しており且つ有効なデータタイプページ(DTD)に準拠するものであることを確保するために妥当性検査が実施される。当業者にとって既知であるように、デプロイメント記述子はXMLファイルであり、従って、DTD内に設けられる有効なドキュメントタイプ宣言と関連付けられる必要がある。218において、そのDTDが編集されることが必要であるか否かが判別され、そうである場合には、220において、DTDに対して適宜の変更が行われる。例えば、そのデプロイメントに対して任意のアプリケーションサーバーセキュリティタグを包含させることを所望するユーザはそのDTDファイルを編集することが可能である。
222において、そのEARファイルが再度パッケージングされる。再度パッケージングされたEARファイルは修正されたDTDファイル及び記述子を包含する場合がある。224において、選択したアプリケーションサーバーに対するターゲットプラットフォームが選択される。その選択は、例えば、選択されたアプリケーションサーバーがその上で稼動するプラットフォームのリストを提示し、且つユーザがそのリストからプラットフォームサーバーを選択することを可能とさせることにより決定することが可能である。選択したアプリケーションサーバーによりサポートされるプラットフォームのリストは、例えば、対応するプラグインにより実現されるプラグインインターフェースメッソドを介して対応するプラグインにより与えられる。
226において、デプロイメントプロセスが開始する。そのデプロイメントプロセスは、例えば、ユーザに提示されたプラットフォームのリストからプラットフォームを選択した後にユーザが終了ボタンを押し下げる場合に開始することが可能である。この場合には、終了ボタンを押し下げるか又は選択したアプリケーションサーバーに関する全てのカスタム化が完了したことを表わす何等かの類似した動作を実施するユーザは、喚起されるべきプラグインにより実現されるデプロイメソッドをトリガする。
以下のステップはプラグイン内において処理される。228において、例えば、EARファイルにおけるデプロイメント記述子においてリストされているデプロイメント特性又はユーザ入力を検査することによって、そのデプロイメントがローカルサーバーに対して行われるか又はネットワークにより接続されている遠隔サーバーに対して行われるか否かを判別する。EARファイルが遠隔サーバーに対してデプロイされることが判別される場合に、アプリケーションサーバー特定デプロイメント記述子ファイルが230において発生される。デプロイメントツールが統合されたデプロイメント環境ツールの一部として喚起される場合には、これらのアプリケーションサーバー特定デプロイメント記述子ファイルは環境ツール内において発生させることが可能である。デプロイメントツールがコマンドラインインターフェース上で喚起される場合には、これらのアプリケーションサーバー特定デプロイメント記述子ファイルは、204において示した処理済のEARファイルからのデータ及びデプロイメントプロセス期間中にユーザから得られた任意のその他の入力を使用して発生させることが可能である。例えば、ターゲットアプリケーションサーバーがウエブ論理アプリケーションサーバーである場合には、weblogic−ejb−jar.xmlファイルをデプロイメント記述子として発生させることが可能である。
デプロイメント記述子ファイルは、例えば、上述した如くユーザにより選択されたプラットフォーム、及びユーザが特定した任意のその他のEJBプロパティ即ち特性を包含することが可能である。例えば、メッセージ駆動型EJBのデプロイメントは、ユーザがサポートされるべきメッセージキューについての情報の幾つかの部分をユーザが供給することを必要とする。本開示のシステム及び方法は、この情報を収集するための1つ又はそれ以上のユーザインターフェースパネルを提供する。即ち、その1つ又はそれ以上のユーザインターフェースパネルは、デプロイメントを行っている人がメッセージ駆動型ビーンに関する情報を特定することを助ける。本開示のデプロイメントツールは、又、ユーザがデプロイメント記述子を直接的に編集することを可能とする。デプロイメント記述子がアップデートされるか又は発生された後に、EARは232において修正されたデプロイメント記述子と共に再構築されるか又は再度パッケージングされる。次いで、結果的に得られるEARファイルは、例えば、ファイル転送プロトコル(FTP)を使用することにより234においてターゲットアプリケーションサーバーへ送られ、且つ本プロセスはステップ240へ進行する。
228において、EARファイルがローカルサーバー、即ちデプロイメントツールと同じプラットフォーム上に乗っているサーバーに対してデプロイされることが判別される場合には、アプリケーションサーバー特定デプロイメントファイルが発生される。238において、発生されたアプリケーションサーバー特定デプロイメントファイルはEARファイルに再度パッケージングされる。
240において、アプリケーションサーバー特定プラグインにより実現されるデプロイヤーインターフェースのデプロイメソッドを喚起することによりデプロイメント手順が実行される。242において、デプロイメントが成功したか否かが判別され、且つ244において、適宜のデプロイメントステータスレポートが発生される。
1実施例において、上述したように、アプリケーションおよびコンポーネントがデプロイされる対応するアプリケーションサーバーに対してプラグインが実現される。1実施例において、既存のデプロイメント記述子を修正し、ターゲットアプリケーションサーバーへのファイルを再度パッケージングし且つデプロイし且つ本開示のシステム及び方法において提供されるデプロイメントツールで相互作用を行うことを実現するためにプラグインに対して1つ又はそれ以上のインターフェースが設けられる。
例えば、アプリケーションサーバーに対するプラグインはDeployerインターフェースを実現する。このDeployerインターフェースはファイルを所望のターゲットアプリケーションサーバーへデプロイするためにプラグインが使用することが可能な種々のメソッドを提供する。プラグインがインスタンス化される場合に、「DeploymentHelper」インターフェースの「setHelper」メソッドが第一メソッドとしてコールされる。DeploymentHelperインターフェースは、例えば、デプロイメントウィザードインターフェースを実現するクラスによってプラグインが動的にロードされた後にそれが必要とする情報及びサービスをプラグインが取得する態様を提供する。setHelperメソッドを介して、DeploymentHelperオブジェクトはプラグイン内へパスさせることが可能である。1実施例において、各プラグインはこのオブジェクトのローカルコピーを維持し且つそのメソッドを使用して本開示のデプロイメントツールと相互作用を行う。
マルチプラットフォームをサポートするプラグインの場合、MulpiPlatformPluginインターフェースが提供される。例えば、プラグインがこのインターフェースを実現するものでない場合には、本開示のデプロイメントツールが、1実施例において、そのプラグインが単一のプラットフォームをサポートするものと仮定する。
Replacerインターフェースをプラグインにより実現することが可能である。該プラグインは、DeploymentHelperインターフェース上でconvertContainersメソッドを使用する場合にこのインターフェースを供給する。ConvertContainersメソッドはEARファイルを開き且つデプロイメント記述子を介してスキャンする。デプロイメント記述子から読取ったストリングが、Replacerがアクティブに留まる限り、例えば、ReplacerインターフェースのisActiveメソッドが真をリターンする限り、Replacerインターフェースへパスされる。このインターフェースにおけるメソッドは、デプロイメント記述子を修正するか又はアップデートするために使用される。
ReplacerインターフェースのcheckForStart及びcheckForEndメソッドが、置換することを必要とする場合のあるストリングの始めと終りとを探し出すためにコールされる。置換されることを必要とする場合のあるストリングは「willReplace」へパスされ、それはそのストリングが置換される場合に真をリターンする。ReplacerインターフェースのnewStringメソッドは置換ストリングをリターンする。新たなデプロイメント記述子が処理されんとする場合には、Replacerインターフェースの初期化メソッドがコールされる。
プラグインがExtendedHelperインターフェースのメソッドgetWindowsServerPageによって与えられるデフォルトウインドウズプラットフォームプロファイル詳細ページを使用する場合にプラグインが実現するためにWindowsServerPageUserインターフェースが提供される。このインターフェースは汎用情報検索パネルを与え、それは、プラグインがユーザからウインドウズプラットフォームプロファイル詳細を取得するために使用することが可能である。
ExtendedHelperインターフェースは、通常、プラグインがデプロイメントヘルパーインターフェースの拡張された特徴を利用することを可能とする。これらの拡張された特徴は、1実施例において、パッケージング及びデプロイメント特徴のデフォルト実現例を与える。
プラグインが、ExtendedHelperインターフェースのメソッド、getUnixServerPageメソッドにより与えられるデフォルトユニックスプラットフォームプロファイル詳細ページを使用する場合に、プラグインが実現するためにUnixServerPageUserインターフェースが提供される。このインターフェースは、ユニックス又はリナックスを基礎としたプラットフォームがユニックスプラットフォームプロファイル詳細情報を取得することをサポートするプラグインによって使用することが可能である。代替的に、プラグインは特定のプラットフォームに関連する情報を検索するためにそれ自身のプロファイル詳細ページを実現することが可能である。
1実施例において、本開示のシステム及び方法において提供されるデプロイメントツールは、コマンドラインインターフェースを使用して別個のプロセスとして開始させることが可能である。例えば、バッチファイルJoeDeployTool.batは、該ツールを開始することを助けるために提供することが可能である。該バッチファイルは該ツールに対する適宜のクラスパス(classpath)をセットし且つ該ツールを活性化させる。1実施例において、該バッチファイルは例えば、パラメータとしてデプロイされるべきEARファイルの位置で喚起される。従って、例えば、該バッチファイルの1つの利用は以下の場合があり、
Figure 2006521638
尚、
EAR FILE locationはEARファイルのパスを特定し;
−ejbTreeはEARファイルのツリービューを表示させ;
−xmlEditorはデプロイメント記述子を編集するためにXMLエディターを喚起させることを可能とさせ;
−noProgressは最終的なデプロイメントプログレスパネルの表示を阻止し、その場合に、進展ページ上に通常表示される出力がスタンダード出力へ送られ;
−contextRoot warName rootNameはウエブアーカイブ(war)ファイルをデプロイする場合に使用すべきコンテキストルートの名前を特定し;このパラメータは全てのwarに対するコンテキストルートを特定することが必要な回数だけ繰返すことが可能である。
該バッチファイル、例えば上のJoeDeployToolが終了すると、それはERRORLEVEL内にステータスコードを残す。例えば、ゼロのステータスは成功したデプロイメントを表わし、且つ例えば、2のステータスはデプロイメントが失敗したことを表わす。ユーザがそのデプロイメントを終了するか又はキャンセルすると、2のステータスをリターンさせることが可能である。
同様に、本開示のシステム及び方法において提供されるデプロイメントツールは、Advantage Joe等の開発環境ツール内から開始させることが可能である。例えば、デプロイメントウィザードインターフェースを実現するAvantage Joeにおけるクラスは、プロジェクトツリーにおけるプロジェクト上を右クリックすることにより開始させることが可能である。デプロイメントウィザードインターフェースを実現するクラスを開始させるためにメニューオプション「Deploy ejb’s/War’s」を使用することが可能である。
プラグインに対して提供される上述したインターフェースに対するインターフェース定義の例についてより詳細に説明する。上述したようにDeployerインターフェースは各デプロイメントプラグインにより実現される以下のコードは1実施例におけるDeployerインターフェースを定義する。
Figure 2006521638
例えば、ユーザをデプロイメントプロセスを介してステップ動作させるためのデプロイメントツールにより提供されるユーザインターフェースパネルからユーザが終了ボタンをクリックする場合に、deploy()メソッドがデプロイメントプロセスを開始するためにコールされる。これらのユーザインターフェースパネルは、ユーザがアプリケーションサーバー特定変数をエンターし且つデプロイメントを開始させることを可能とする。deploy()メソッドはデプロイメント記述子において特定されるようにEARファイル内にパッケージングされた全てのモジュールのデプロイメントを実施する。エラーが発生すると、それはDeploymentExceptionを放つ。各プラグインは、実行期間中に表示されるそれ自身のステータス及びエラーメッセージを有することが可能である。
要約ページを表示する前にpackageFiles()メソッドがコールされる。例えば、その要約ページは、ターゲットアプリケーションサーバーに対するデプロイメントを開始する前に、デプロイヤーがデプロイメントオプションを検証することを可能とする。このメソッドはデプロイされるべき1つ又はそれ以上のファイルをパッケージングする。パッケージングされたファイルは、通常、EARファイルとなるが、EARファイルのみに制限されることは必要ではない。エラーが発生すると、それはDeploymentExceptionを放つ。各プラグインは、実行期間中に表示されるそれ自身のステータス及びエラーメッセージを有することが可能である。
ユーザからのデプロイメントに関連する入力データを収集するためのパネルを表示するためにgetNextPanel()が使用される。典型的に、本開示のシステム及び方法において提供されるデプロイメントツールは紹介ページ及びサーバープロファイル選択ページを表示する。各プラグインはこのメソッドを介してその後のパネルを実現する。各パネルはDeplWizPanel又はDeplWizSummaryのいずれかを拡張することが可能である。DeblWizSummaryはDeplWizPanelを拡張する。
選択したアプリケーションサーバータイプに対する新たなデフォルトサーバープロファイルを作成するためにaddProfile(String sType)が使用される。例えば、ユーザがサーバープロファイル選択ページ上のサーバープロファイル付加ボタンをクリックすると、この対応するプラグインのメソッドが喚起される。各プラグインはそのカスタム化したServerProfileオブジェクト、例えばJ2EE RIServerProfileを包含することが可能であり、それはServerProfileを拡張する。ServerProfileクラスは1つ又はそれ以上の有用な属性を提供し、且つこれらの属性に対するメソッドをセットし且つ取得する。然しながら、プラグインはサーバープロファイルオブジェクトの子に対して新たな属性を付加することが可能である。
例えばプラグインのユーザインターフェース(UI)パネルを介してリソースストリングへアクセスするためにgetResourceString(string key)メソッドを使用することが可能である。Deployerインターフェースを実現するプラグインクラスはローカルResourceBundleオブジェクトを有しており、それからリソースストリングへこのメソッドを使用してアクセスするか又はリターンすることが可能である。通常、ResourceBundleはストリングの対構成としたシーケンスであるリソースストリングを包含している。1つのストリングは1つのキーを表わし且つその他のストリングはそのキーと関連する値を表わす。ジャバプログラムがそのキーストリングを使用してResourceBundleへアクセスし且つResourceBundleは使用されるべき値をリターンする。ResourceBundlesは、異なる言語環境を包含する特定の環境に対してジャバプログラムをカスタム化させることを可能とするために使用される。
setHelper(DeploymentHelper Dn)メソッドは、DeploymentHelperオブジェクトへアクセスするために使用され、且つ1実施例においてはそのオブジェクトのローカルコピーをリターンする。DeploymentHelperオブジェクトをDeploymentHeplerインターフェースを参照してより詳細に説明する。
MultiPlatformPluginインターフェースが、そのプラグインがマルチプラットフォームをサポートする場合に、プラグインにより実現される。1実施例において、このインターフェースが実現されない場合には、本開示のシステム及び方法において提供されるデプロイメントツールが、単一のプラットフォームのみがサポートされるものと仮定する。
MultiPlatformPluginインターフェースは以下のメソッドを定義する。
Figure 2006521638
getPlatforms()メソッドはストリングオブジェクトのIteratorをリターンし、各ストリングオブジェクトはプラットフォームの名前を包含している。各ストリングオブジェクトは、それからユーザが選択することが可能な使用可能なプラットフォームをリストするために使用される。getNumPlatforms()メソッドはこのプラグインによりサポートされるプラットフォームの数をリターンする。getNextPanel(String platform)メソッドは、そのプラグインによりサポートされるマルチプラットフォームの中から1つのプラットフォームを選択するための次のパネルを検索する。
Replacerインターフェースは、プラグインにより実現され、且つDeploymentHelperインターフェース上でconvertContainersメソッドを使用する場合に供給される。ConvertContainrsメソッドはEARファイルを開き且つデプロイメント記述子を介してスキャンする。デプロイメント記述子から読取られたストリングは、isActiveメソッドが真をリターンする場合に、Replacerインターフェースへパスされる。isActiveメソッドは、プラグインが未だにデプロイメント記述子の一部を変換することが必要である限り、真をリターンする。該プラグインがデプロイメント記述子の変換を終了すると、isActiveメソッドは偽をリターンし、その時に、Replacerは変換プロセスを完了することが可能である。置換することを必要とする場合のあるストリングの始めと終りとを探し出すためにcheckForStart及びcheckForEndメソッドがコールされる。置換されることを必要とする場合のあるストリングは「willReplace」へパスされ、それは、そのストリングが置換されるべき場合に真をリターンする。newStringメソッドは置換ストリングをリターンする。新たなデプロイメント記述子が処理されんとする場合には初期化メソッドがコールされる。以下のメソッドはReplacerインターフェースにおいて定義される。
Figure 2006521638
付加的なサーチ又はデプロイメント記述子を介してのスキャンが必要とされる場合にisActive()メソッドは真をリターンする。willReplace(String strToReplace)メソッドは、特定されたストリングが置換されるべき場合に真をリターンする。パラメータstrToReplaceは置換されることを必要とする場合のあるストリングを包含している。
newString()メソッドは置換ストリングをリターンする。checkForStart(String str, int startingIndex)メソッドは、置換されるサブストリングを探し出す特定したストリングにおいてインデックスをリターンする。例えば、パラメータstrは開始シーケンスをサーチするストリングを包含しており、且つパラメータstartingIndexは探し出しを開始するstrにおける位置を包含している。checkForEnd(String str, int startingIndex)は終了サブストリングのインデックスをリターンする。例えば、パラメータstrは終了シーケンスをサーチするためのストリングを包含しており且つパラメータstartIndexはサーチを開始するstrにおける位置を包含している。endingSize()メソッドは終了シーケンスの寸法をリターンする。initialize()メソッドは、典型的に、別のファイルを変換することを開始する前に、再初期化するために使用される。
UnixServerPageUserインターフェースは、1実施例において、パネル上のフィールドに対して必要とされるラベルを取得するための以下のメソッドを定義する。
Figure 2006521638
UnixServerPageUserは、又、フィールドが完成しているか否かを判別するためにpublic void validateFields(String serverName, String hostname, string portNumber, String userId, String password, String DeployLocation)を定義する。DeploymentHelperインターフェースのメソッド「setValidationStatus」は、フィールドを有効又は無効としてセットするためにこのメソッドを実現するプラグインによりコールされる。該フィールドが不完全又は無効である場合には、該プラグインは偽インジケーターをリターンするためにsetValidateStatusを使用することが可能である。
WindowsServerPageUserインターフェースはパネル上のフィールドに対して必要とされるラベルを取得するために以下のメソッドを定義する。
Figure 2006521638
このインターフェースも該フィールドが完成しているか否かを判別するためにpublic void validateFilds(String serverName, String host Name, String portNumber)を定義する。DeploymentHelperインターフェースのメソッド「setValidationStatus」はこのメソッドの実現体によってコールされる。
本開示のシステム及び方法は、又、プラグインが実現することが可能な1つ又はそれ以上の付加的なインターフェースを提供する。例えば、Deployment Helperインターフェースが、デプロイメントウィザーにより動的にロードされた後にそれが必要とする情報及びサービスをプラグインが取得する態様を提供するために該プラグインに対して提供される。該プラグインはデプロイメントツールとは独立的に構築し且つレリーズすることが可能である。
DeployerHelperインターフェースの1つの例示的な定義は以下の如くである。
Figure 2006521638
DeploymentModulesは任意のJ2EEデプロイメントモジュールに対応するオブジェクトである。例えば、DeploymentModulesはejb−jars、ウエブアーカイブ、J2EEモジュールが包含するクライエントjars等のデプロイメントモジュールの集まりを包含している。従って、上のインターフェース定義において、getJ2eeApplication()メソッドは、ユーザによりデプロイされるべく選択されたJ2EEアプリケーションに対応するDeploymentModuleオブジェクトのVectorをリターンする。
getEjbJars(DeploymentModule de)メソッドは与えられたJ2EEアプリケーションに対するejb−jarsに対応するDeploymentModuleオブジェクトのVectorをリターンする。
getBundle()メソッドは本開示のデプロイメントツールに対しResourceBundleをリターンする。saveProfile()メソッドは、与えられたサーバーに対するプロファイルが、例えば、将来使用するために保存されるべき場合に喚起される。例えば、ユーザがサーバープロファイル情報を収集するパネルについて終了した場合に、このメソッドはユーザがそのパネルを使用してエンターしたプロファイルデータを保存するために喚起させることが可能である。1実施例において、本開示において提供されるデプロイメントツールは、プラグインに対するServerProfileオブジェクトの保存及び検索を自動的に管理する。然しながら、このメソッドは所望により、プラグインが実現するためにも使用可能である。
getWorkingProfile()メソッドは、ユーザがデプロイメントに対して特定したターゲットサーバーに関する情報を取得するために喚起される。例えば、ユーザがサーバープロファイルオブジェクトのうちの1つを選択すると、本開示のシステム及び方法において提供されるデプロイメントツールが選択されたサーバープロファイルオブジェクトを使用して作業用プロファイルをセットする。
getHosts()メソッドは、全ての保存したサーバープロファイルオブジェクトにおいて使用した一意的なホスト名のリストをリターンする。プラグインがユーザに対する便利なものとして、例えば、ドロップダウンリストでこのリストを提供することを所望する場合には、このメソッドを使用することが可能である。
isStopped()メソッドは、それを介してデプロイメントプロセスが開始したデプロイメントウィザードが停止したか否かをテストするために喚起される。次いで、該プラグインは、このメソッドが真をリターンする場合にそれ自身終了することが可能である。
log(String text)メソッドは、デプロイメソッドがコールされるといずれかの通常のステータスメッセージを表示するために使用される。完了したステップのようなデプロイメントプロセスに完了する何等かの情報を出力ウインドウへ送ることが可能である。
logError(String text)メソッドは、デプロイメソッドがコールされると何等かのエラーステータスメッセージを表示するために喚起される。例外等のデプロイメントプロセスに関連する何等かの情報を出力ウインドウへ送ることが可能である。
logWarning(String text)メソッドは、デプロイメソッドがコールされると何等かの警告ステータスメッセージを表示するために使用される。不完全なステップ等のデプロイメントプロセスに関連する何等かの情報を出力ウインドウへ送ることが可能である。
logInformation(String text)メソッドは、デプロイメソッドがコールされると何等かの情報ステータスメッセージを表示するために使用される。出力に影響を与えることのない異常条件等のデプロイメントプロセスに関連する情報を出力ウインドウへ送ることが可能である。
setFinishButtonEnabled(boolean b)メソッドは終了ボタンをイネーブル又はディスエーブルさせるために使用される。このボタンのイネーブル動作及びディスエーブル動作は前のユーザ入力に依存する場合がある。
setNextButtonEnabled(boolean b)メソッドは、次ボタンをイネーブル又はディスエーブルさせるために使用される。このボタンのイネーブル動作及びディスエーブル動作は前のユーザ入力に依存する場合がある。
setCursor(int cursorType)メソッドは、例えば、長い稼動プロセス期間中にカーソルをカーソル待機へ変化させるためにカーソルタイプを変化させるために使用される。
getNextPage(Detloyer deployer)メソッドは、例えば、デプロイメントウィザード等のデプロイメントツールにおいて表示すべき次のページを取得するためにコールされる。
updateFrameStatus()メソッドは、プラグインパネル上で何等かのアクションが発生したことをデプロイメントヘルパーインターフェースクラスに通知するために使用される。これらのアクションは、データフィールドのアップデート又はパネル上のあるボタンの押し下げを包含することが可能である。デプロイメントヘルパーインターフェースクラスに対するコールを保証するアクションはプラグインにより決定することが可能である。
getResult()メソッドは、例えば、本開示のデプロイメントツールであるプラグインを喚起するデプロイメントツールの実行結果をリターンする。
setDocTypeInfo(String defaultEarDocType, String defaultEarDtdPath, String defaultEjbDocType, String defultEbjDtdPath)メソッドは、オプションとして、デフォルトDOCTYPE情報をオーバーライドするために使用される。
setDocTypeInfor(ResourceBundle bundle)メソッドは、オプションとして、プロパティファイルからのデフォルトDOCTYPE情報をオーバーライドするために使用される。
setEjb11(Boolean value)及びsetEjb11()メソッドは、オプションとして、ターゲットがEJB1.1バージョンと互換性があることを表わすために使用される。
convertContainer(Replacer stringReplacer)メソッドは、プラグインが供給したストリング置換体を使用してコンテナを変換するために使用される。このメソッドは、デプロイメント記述子を修正するため及びJARS及びEARSを修正したデプロイメント記述子でアップデートするために使用される。
isEjb0rWarAvailable()は、EJB又はウエブアプリケーションがデプロイするため使用可能である場合に真をリターンする。
executeCommand(String cmd, Boolen verboseOnException)及びexecuteCommand(String cmd)メソッドは、別個のプロセスにおけるパラメータ「cmd」において表わされたコマンドを実行する。このcmdの結果はStringWriterオブジェクト内にリターンされる。verboseOnExceptionパラメータは、例外に関してログ内に結果を入れることを該メソッドに告げる。
getVariableValue(String variableName)メソッドは、環境変数の値をリターンする。該メソッドは、該変数が定義されない場合にはヌルをリターンする。
プラグインが実現するために提供される別のインターフェースはExtendedHelperインターフェースである。このインターフェースは、プラグインがヘルパーインターフェースの拡張された特徴を利用することを可能とし、そのことはパッケージング及びデプロイメント特徴のデフォルト実現例を与える。
ExtendeHelperインターフェースの1つの例示的な定義は以下のメソッドを包含することが可能である。
Figure 2006521638
上の定義において、isEarInput()メソッドは、例えば、スタンドアローンモードとしてコールされた場合に、EARファイルがデプロイメントツールへ入力された場合に真をリターンする。
getWindowsServerPage(WindowsServerPageUser pageUser)メソッドはウインドウズをベースとしたサーバーに対しデフォルトサーバー詳細ページをリターンする。
getUnixServerPage(UnixServerPageUser pageUser)メソッドは、ユニックスをベースとしたサーバーに対してデフォルトサーバー詳細ページをリターンする。このページは、例えば、ftp(ファイル転送プロトコル)パラメータを収集する。
createEarFile(DeploymentModule de, int appCount)メソッドは、EARファイルを構築するためにモジュール及びサブモジュールを特定するために使用される。
createRuntimeXml(DeploymentModule de, String earPath)メソッドは、J2EE参照実現に対するデプロイメント記述子であるEARファイルに対するsun−j2ee−ri.xmlファイルを作成するために使用される。
invokeCommandLine(String[] progArray, String processID, String prevErrorMsg)、invokeCommandLine(String progString, String processID)及びinvokeCommandLine(String[] progArray, String processID)メソッドは、コマンドラインインターフェースを使用してコマンドを喚起するために使用される。
genFTPContainers(ResourceBundle bundle)メソッドはftpを介して送られるべきEARファイルを発生する。
deployFTPContainers(ResourceBundle bundle)メソッドは、例えば、FTPによりEARファイルを転送する。
genContainers(ResrouceBundle bundle)メソッドはEARファイルを発生する。
getEarPath()メソッドはEARファイルをアクセスするためのローカルパスをリターンする。
deployContainers(ResourceBundel bundle)メソッドはEARファイルをデプロイする。
setGenerateSql(boolean value)メソッドはJ2EEデプロイツールを使用してSQL(シーケンシャルクエリー言語)を発生すべく試みるべきか否かをプラグインが特定することを可能とする。例えば、パラメータ「value」は、SQLが発生されるべき場合に真をリターンする。デフォルトは偽である。
上に示したインターフェース及び定義したメソッドは例とした記載したに過ぎず、本開示において提供されるシステム及び方法を実現する唯一の態様として解釈すべきではない。そうでなく、コンピュータプログラミングの分野における当業者が理解するように、メソッド及びインターフェース定義は、同様の結果を達成するために同様に機能的手順を実現しながら異なることが可能である。
1実施例においての本開示のシステム及び方法において提供されるデプロイメントツールを使用するデプロイメント方法について、図3及びデプロイメントプロセス期間中に使用される複数個のパネルを例示した図4−13を参照して説明する。図3は1実施例におけるデプロイメント方法を例示しており且つ該プロセス期間中に喚起されるクラス及びメソッドの例をも参照するプロセスフローチャートである。典型的に、ユーザとして呼称されるEJDデプロイヤーの役割を担う人はデプロイメントツールを使用する。例えばコマンドライン上で又は開発環境ツールを介してデプロイメントツールが開始されると、デプロイメントツールにより実現されるデプロイウィザードインターフェースのメソッドが喚起されてユーザに対し図4に示した初期的パネルが提示される。パネル400は使用可能なアプリケーションサーバー402のリスト及び「+」ボタン404及び「X」ボタン406をリストする。このパネルは、ユーザが、ターゲットアプリケーションサーバーを選択し且つ304において示したように選択したターゲットアプリケーションサーバーに対するサーバープロファイルを定義することを可能とさせる。
特定のアプリケーションサーバーに対するプロファイルが存在しない場合には、例えば「+」ボタン404をクリックすることにより新たなサーバープロファイルを付加することが可能である。「X」ボタン406は、既存のサーバープロファイルを削除するために使用することが可能である。サーバープロファイルは、それに対してデプロイメントプラグインが存在する任意のアプリケーションサーバーに対して作成することが可能である。サーバープロファイルは、デプロイメントツールの喚起の間保存される。
306において、デプロイメントプラグインが動的にロードされ且つインスタンス化される。デプロイメントプラグインは上述したインターフェースを実現する。各サーバータイプに対しマルチプロファイルを維持することが可能である。308において、プラグインで実現したメソッドが喚起されてアプリケーションサーバー特定コンフィギュレーション情報を取得する。この情報はデプロイメント期間中に使用されるデプロイメント記述子ファイルを修正するために使用される。301において、アプリケーションサーバー特定コンフィギュレーション情報を具備するEARファイルが再度パッケージングされる。312において、選択されたターゲットアプリケーションサーバーが遠隔マシン上に位置されている場合には、EARファイルは、例えば、FPTによって、そのターゲットアプリケーションサーバーへ転送される。314において、プラグインにより実現されたデプロイメソッドが喚起されてEARファイルをその選択したターゲットアプリケーションサーバーへデプロイさせる。
308において喚起されたプラグインで実現されたクラスは1つを超えるプラットフォームをサポートするプラグインに対するMultiPlatformPluginインターフェースクラスを包含している。例えば、図5に示したディスプレイパネルは、このプラグインによりサポートされるプラットフォームのリストでプラグインのjetNextPanelメソッドが喚起される場合に表示させることが可能である。プラットフォームのリストは、このプラグインにより実現されるjetPlatformsメソッドを喚起することにより得られる。
このパネル500は、ユーザ、即ちデプロイメントを行う人がこのデプロイメント動作に対するターゲットとして使用されるプラットフォームのタイプを選択することを可能とする。ドロップダウンリスト中に表示されるプラットフォームは該プラグインによってサポートされる。
プラグインを介して得られたアプリケーションサーバー特定プロパティ即ち特性は種々のサーバープロファイル詳細を包含することが可能である。そのサーバープロファイル詳細は、特定したアプリケーションサーバー及びプラットフォームに対してデプロイすることが必要とされる情報に依存して異なる場合がある。これらのプロファイル詳細は、サーバープロファイル内に保存され且つサーバープロファイルが次に要求される場合にデフォルト値として使用可能とされる。プロファイル詳細が検索され且つ、例えば、UnixServerPageUser又はWindowsServerPageUserクラスメソッドを喚起することによりデフォルト値として図6に示したパネルを使用して表示される。これらのパネルはプラグインにより使用するために使用可能であり且つDeploymentHelperインターフェースへアクセスすることにより特定のプラグインから得ることが可能である。
図6に示したパネルを介して取得される情報がプラグインに対して充分である場合には、それはDeploymentHelperインターフェースを介してプラグインにより使用することが可能である。代替的に、プラグインはサーバープロファイル詳細情報を得るために異なるプロファイル詳細パネルを実現することが可能である。
サーバーに対してデプロイメント詳細が特定されると、EARファイルがパッケージされ且つ表示される。次いで、ユーザはJ2EEモジュールに対してデプロイメント記述子を修正することが可能である。デプロイメント記述子は多数の異なる態様で修正することが可能である。例えば図7に例示したEJBディスプレイツリーを示したパネルから選択したXMLファイルを編集するためにXMLエディターを使用することが可能である。ユーザがXMLファイルを選択すると、図8に示したようにデプロイメント記述子の選択した部分を修正するためにエディターを開くためにその他のパネルを活性化させることが可能である。図7に示したEARファイルコンテンツパネルから、ユーザがメッセージ駆動型ビーンに関連したパラメータを特定することを所望する場合には、例えばメッセージ駆動型ビーンをユーザにより選択することが可能である。メッセージ駆動型ビーンが選択されると、パラメータを特定するためのパネルを喚起することが可能である。
通常、本開示のデプロイメントツールにおける実現されたクラスはEJBディスプレイツリー702を示すパネルを表示する。該ツリー上のオブジェクトは該パネル上の異なるボタン704を選択することにより修正することが可能である。該ボタンは該クラスにおけるメソッドへ接続されており、それらは付加的なパネルを活性化させる。
図8を参照すると、XMLエディターがユーザにユーザが所望する任意の態様でデプロイメント記述子を修正する能力を与える。代替的に、XMLエディターは、それが最初に喚起される場合にデプロイメントツールによりディスエーブルさせることが可能である。XMLエディダーはXMLに特定的なフォーマッティング及びハイライティングを与えることが可能である。
例えば図9に示したJMSデスティネーションプロパティパネルは、ユーザがEJBをJMS(ジャバメッセージサービス)デスティネーションとしてコンフィギュア即ち形態特定するのに必要な1つ又はそれ以上のパラメータを特定することを可能とする。コネクションファクトリィ(connection factory)の名前は、使用されるメッセージタイプに依存して、TopoicConnectionFactory又はQueuConnectionFactoryのいずれかへデフォルトさせることが可能である。所望により、ユーザはターゲットJ2EEアプリケーションサーバー上にインストールした任意のJMXコネクションファクトリィのJMDI名をこのフィールド内にエンターすることが可能である。
JMSメッセージセレクター902はそれらのプロパティに基づいて入ってくるメッセージをフィルタさせる表現である。例えば、メッセージセレクター表現は以下の如くに表われる場合がある。
Figure 2006521638
このメッセージセレクター902は‘Weather’又は‘Polytics’の値で提示された“NewsType”プロパティを具備するメッセージのみをメッセージコンシューマにより受取らせる。
デプロイメントプロパティパネルとも呼称される上述したパネルを使用して収集した情報は、適宜のデプロイメント記述子における夫々のフィールドを発生するために使用される。
当業者に知られているように、EJBデプロイメント記述子はエンタプライズビーンのジャバアーカイブ(JAR)内に包含されているXML記述子である。このファイルejb−jar−xmlはメッセージビーン提示、そのJMSメッセージセレクター、デスティネーションタイプ、及びTopicsに対するそのサブスクリプションデュアラビリティ(subscription durability)を包含している。これらのプロパティを表わすために使用される記述子フィールドを以下の例に示してある。上述した例のパネルにおいて収集される情報の幾つかはイタリック体で表わしてある。
Figure 2006521638
EAR記述子フォーマットはアプリケーションサーバーベンダーの間で異なる場合がある。以下の例は、J2EE参照実現アプリケーションサーバーにより使用されるフォーマットを示している。上述したパネルを使用して収集することが可能であり且つ記述子をアップデートするために使用することが可能な情報の例はイタリック体で示してある。
Figure 2006521638
他のリソースを参照するEJBは、本開示のシステム及び方法により提供されるリソース参照パネルを使用してそれらのデプロイメント記述子に対して付加された適宜の情報を有することが可能である。図10は1実施例におけるリソース参照パネルを示している。JNDI名、ユーザ名、パスワードフィールドは選択されたリソース参照と関連している。
リソース参照パネル1000がEJBにより参照されるリソースに関連する付加的な情報を付加するために使用される場合には、EJBデプロイメント記述子、例えば上に示したejb−jar.xmlはJNDIを介してアクセスされたJMSオブジェクトに対するリソース参照定義を包含することが必要である。単一のトピック又はキューに対してメッセージを送るメッセージ発生体の場合には、二つのJNDI参照、即ちコネクションファクトリ及びトピック/キューが存在するに過ぎない。例えば、以下のセッションビーンデプロイメント記述子は、トピックに対してメッセージを発行するメッセージ発生体に対してどのようにしてJMS参照(イタリック体)が定義されるかを示している。
Figure 2006521638
EJBデプロイメント記述子における参照を特定することに加えて、コネクションファクトリ及びトピック/キュー名に対する参照もEARデプロイメント記述子において特定される。EAR記述子フォーマットはアプリケーションサーバーベンダーの間で異なる場合がある。以下のEAR記述子は、トピックに対してメッセージを発行するセッションビーンのデプロイメントに対してどのようにしてこれらの参照(イタリック体で示してある)を特定されるかを示している。
Figure 2006521638
図11はリソース環境参照パネルを示している。リソース環境参照は、そのJNDI名と比較してアプリケーションのソースコードにおける異なる名前によりリソースを参照することを可能とする。このパネル1100は、ユーザ、例えばそのデプロイメントを行っている人がコード化した名前とJNDI名との間の相関を特定することを可能とするために使用することが可能である。このことは、EJDソースコードを修正することの必要性無しに、JNDI名をデプロイメント環境間において異なるものとすることを可能とする。
図12は1実施例における要約パネルを示している。この要約パネルは、ターゲットアプリケーションサーバーに対するデプロイメントを開始する前にデプロイメントオプションをユーザが検証することを可能とする。図13は1実施例における進展パネルを例示している。この進展パネルはデプロイメント動作の進展及び結果を示している。このパネルはオプションであり且つデプロイメントツールによりディスエーブルさせることが可能である。
1実施例において、個々のプラグインは互いに分離されている。従って、特定のプラグインにおける障害は、典型的に、他のプラグインに影響を与えることはない。ここに記載したデプロイメントツールインフラストラクチャは、特定したEARファイルのデプロイメントを達成するためにプラグインにより使用される。
本発明のシステム及び方法は汎用コンピュータ上で実現し且つ稼動させることが可能である。例えば本システム及び方法において提供されるデプロイメントツールはEJB2.0仕様及びJ2EE 1.3ブループリントに基づくものとすることが可能である。このデプロイメントツールは、例えばEJB2.0準拠及びJ2EE認定である種々のアプリケーションサーバーに対してEJBのデプロイメントを行うことを可能とする。
上述した実施例は例示的な例であり且つこれらの特定の実施例に制限されるものとして解釈すべきではない。種々の変形及び修正は特許請求の範囲に記載した本発明の精神及び範囲から逸脱することなしに当業者により行うことが可能である。例えば、ここに開示したシステム及び方法は説明の便宜上例としてJ2EE及びジャバ環境に関して説明したが、このようなプログラミング環境のみに制限されるものではない。更に、定義したインターフェース及びクラスはデプロイメントツールの動作上の詳細を説明するために記載したものであるが、プログラミングコードが異なる場合があることを理解すべきである。従って、本発明は特許請求の範囲によるものを除いて制限されるものではない。
1実施例におけるデプロイメントツールを例示したアーキテクチャ図。 1実施例におけるデプロイメントプロセスの外観を例示した機能図。 1実施例におけるデプロイメント方法を例示したフローチャート。 デプロイメントプロセスを介してユーザを案内し且つ特定のターゲットアプリケーションサーバーに関連するデプロイメント情報を収集するためにユーザに対して提示される1実施例におけるスクリーンパネルの例を示した概略図。 デプロイメントプロセスを介してユーザを案内し且つ特定のターゲットアプリケーションサーバーに関連するデプロイメント情報を収集するためにユーザに対して提示される1実施例におけるスクリーンパネルの例を示した概略図。 デプロイメントプロセスを介してユーザを案内し且つ特定のターゲットアプリケーションサーバーに関連するデプロイメント情報を収集するためにユーザに対して提示される1実施例におけるスクリーンパネルの例を示した概略図。 デプロイメントプロセスを介してユーザを案内し且つ特定のターゲットアプリケーションサーバーに関連するデプロイメント情報を収集するためにユーザに対して提示される1実施例におけるスクリーンパネルの例を示した概略図。 デプロイメントプロセスを介してユーザを案内し且つ特定のターゲットアプリケーションサーバーに関連するデプロイメント情報を収集するためにユーザに対して提示される1実施例におけるスクリーンパネルの例を示した概略図。 デプロイメントプロセスを介してユーザを案内し且つ特定のターゲットアプリケーションサーバーに関連するデプロイメント情報を収集するためにユーザに対して提示される1実施例におけるスクリーンパネルの例を示した概略図。 デプロイメントプロセスを介してユーザを案内し且つ特定のターゲットアプリケーションサーバーに関連するデプロイメント情報を収集するためにユーザに対して提示される1実施例におけるスクリーンパネルの例を示した概略図。 デプロイメントプロセスを介してユーザを案内し且つ特定のターゲットアプリケーションサーバーに関連するデプロイメント情報を収集するためにユーザに対して提示される1実施例におけるスクリーンパネルの例を示した概略図。 デプロイメントプロセスを介してユーザを案内し且つ特定のターゲットアプリケーションサーバーに関連するデプロイメント情報を収集するためにユーザに対して提示される1実施例におけるスクリーンパネルの例を示した概略図。 デプロイメントプロセスを介してユーザを案内し且つ特定のターゲットアプリケーションサーバーに関連するデプロイメント情報を収集するためにユーザに対して提示される1実施例におけるスクリーンパネルの例を示した概略図。

Claims (20)

  1. プログラムモジュールをデプロイするシステムにおいて、
    統合型デプロイメント環境において又はスタンドアローンモードにおいて稼動すべく動作可能であり、1個又はそれ以上のプログラムモジュールをデプロイすべきターゲットアプリケーションサーバーを決定すべく動作可能なデプロイメントモジュール、
    前記1つ又はそれ以上のプログラムモジュールを前記デプロイメントモジュールから1つ又はそれ以上のターゲットアプリケーションサーバーへデプロイさせるために前記1つ又はそれ以上のターゲットアプリケーションサーバーと関連するアプリケーションサーバー特定デプロイメントコンフィギュレーションを処理するために前記デプロイメントモジュールにより動的にロード可能な1つ又はそれ以上のプラグインモジュール、
    を有しているシステム。
  2. 請求項1において、前記デプロイメントモジュールが、ユーザがターゲットアプリケーションサーバーを選択することを可能とするためにユーザに使用可能なターゲットアプリケーションサーバーのリストを提供すべく動作可能であるシステム。
  3. 請求項2において、前記デプロイメントモジュールが、該ユーザが新たなターゲットアプリケーションサーバーを付加することを可能とさせるべく動作可能であるシステム。
  4. 請求項3において、前記デプロイメントモジュールをアップデートすることなしに前記デプロイメントモジュールで稼動すべく前記新たなターゲットアプリケーションサーバーと関連する新たなプラグインモジュールを動的にロードさせることが可能であるシステム。
  5. 請求項1において、更に、前記デプロイメントモジュールと相互作用すべく実現するために前記1つ又はそれ以上のプラグインモジュールに対する共通組のプログラム定義を包含しているシステム。
  6. 請求項4において、前記共通組のプログラム定義が、オブジェクト指向型インターフェース定義を包含しているシステム。
  7. 請求項1において、前記アプリケーションサーバー特定デプロイメントコンフィギュレーションが、前記1つ又はそれ以上のターゲットアプリケーションサーバーがその上で稼動する1つ又はそれ以上のプラットフォームを包含しているシステム。
  8. 請求項7において、前記アプリケーションサーバー特定デプロイメントコンフィギュレーションが、前記1つ又はそれ以上のプラットフォームに関連する情報を包含しているシステム。
  9. 請求項1において、前記アプリケーションサーバー特定デプロイメントコンフィギュレーションが、前記ターゲットアプリケーションサーバーのディレクトリ構造を包含しているシステム。
  10. 請求項1において、前記アプリケーションサーバー特定デプロイメントコンフィギュレーションが、前記ターゲットアプリケーションサーバーと関連するセキュリティ情報を包含しているシステム。
  11. 請求項1において、前記アプリケーションサーバー特定デプロイメントコンフィギュレーションが、前記1つ又はそれ以上のプログラムモジュールに関連する情報を包含しているシステム。
  12. プログラムモジュールをデプロイさせる方法において、
    1つ又はそれ以上のプログラムモジュールをデプロイさせるためのターゲットアプリケーションサーバーを決定し、
    前記ターゲットアプリケーションサーバーと関連するコンフィギュレーション情報を決定するために前記ターゲットアプリケーションサーバーと関連するプラグインを動的にロードし、
    デプロイメントファイルを前記決定したコンフィギュレーション情報でアップデートし、
    前記1つ又はそれ以上のプログラムモジュール及び前記アップデートしたデプロイメントファイルをパッケージングし、
    前記パッケージングした1つ又はそれ以上のプログラムモジュールを前記ターゲットアプリケーションサーバーへデプロイする、
    ことを包含している方法。
  13. 請求項12において、更に、前記パッケージングした1つ又はそれ以上のプログラムモジュールを前記ターゲットアプリケーションサーバーへ転送することを包含している方法。
  14. 請求項13において、前記転送が、ファイル転送プロトコル(FTP)による転送を包含している方法。
  15. 請求項12において、前記ターゲットアプリケーションサーバーを決定する場合に、異なるアプリケーションサーバープロバイダーにより提供される複数個のアプリケーションサーバーの中からターゲットアプリケーションサーバーを決定することを包含している方法。
  16. プログラムを1つ又はそれ以上のターゲットアプリケーションサーバーへデプロイさせるためのデプロイメントツールを提供する方法において、
    ターゲットアプリケーションサーバーを決定すべく動作可能なデプロイメントモジュールを与え、
    実現すべきプラグインモジュールに対する1組の共通定義を与える、
    ことを包含しており、前記1組の共通定義は、前記デプロイメントモジュールと前記プラグインモジュールとの間の相互作用を与えるために使用され且つ1つ又はそれ以上のプログラムモジュールを前記ターゲットアプリケーションサーバーへデプロイするために1つ又はそれ以上のターゲットアプリケーションサーバー特定コンフィギュレーションを処理するためにも使用される方法。
  17. 請求項16において、更に、
    前記1組の共通定義を実現する1つ又はそれ以上のプラグインモジュールを与える、
    ことを包含しており、前記1つ又はそれ以上のプラグインモジュールは夫々の1つ又はそれ以上のターゲットアプリケーションサーバーと関連している方法。
  18. プログラムモジュールをデプロイする方法ステップを実施するためにマシンにより実行可能な命令からなるプログラムをタンジブルに実現するマシンにより読取可能なプログラム格納装置において、
    1つ又はそれ以上のプログラムモジュールをデプロイするためにターゲットアプリケーションサーバーを決定し、
    前記ターゲットアプリケーションサーバーと関連するコンフィギュレーション情報を決定するために前記ターゲットアプリケーションサーバーと関連するプラグインモジュールを動的にロードし、
    デプロイメントファイルを前記決定したコンフィギュレーション情報でアップデートし、
    前記1つ又はそれ以上のプログラムモジュール及び前記アップデートしたデプロイメントファイルをパッケージングし、
    前記パッケージングした1つ又はそれ以上のプログラムモジュールを前記ターゲットアプリケーションサーバーへデプロイする、
    ことを包含しているプログラム格納装置。
  19. 1つ又はそれ以上のプログラムモジュールをターゲットアプリケーションサーバーへデプロイするシステムにおいて、
    統合型デプロイメント環境において又はスタンドアローンモードにおいて動作可能であり、1つ又はそれ以上のプログラムモジュールをデプロイするターゲットアプリケーションサーバーを決定すべく動作可能なデプロイメントモジュール、
    前記デプロイメントモジュールと相互作用するために実現すべきプラグインモジュールに対する共通組のプログラム定義、
    を有しており、前記共通組のプログラム定義は、前記ターゲットアプリケーションサーバーへデプロイするためにターゲットアプリケーションサーバー特定情報をコンフィギュアするために前記プラグインモジュール及び前記デプロイメントモジュールにより使用されるシステム。
  20. 請求項19において、更に、
    夫々の1つ又はそれ以上のターゲットアプリケーションサーバーと関連する1つ又はそれ以上のプラグインモジュール、
    を包含しており、前記1つ又はそれ以上のプラグインモジュールは、夫々の1つ又はそれ以上のターゲットアプリケーションサーバーと関連するアプリケーションサーバー特定コンフィギュレーションを決定するために前記共通組のプログラム定義を実現するシステム。
JP2006508889A 2003-03-03 2004-02-26 ユニバーサルデプロイメントツール Pending JP2006521638A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/378,503 US7069553B2 (en) 2003-03-03 2003-03-03 Universal deployment tool
PCT/US2004/005949 WO2004079521A2 (en) 2003-03-03 2004-02-26 Universal deployment tool

Publications (1)

Publication Number Publication Date
JP2006521638A true JP2006521638A (ja) 2006-09-21

Family

ID=32926504

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006508889A Pending JP2006521638A (ja) 2003-03-03 2004-02-26 ユニバーサルデプロイメントツール

Country Status (9)

Country Link
US (1) US7069553B2 (ja)
EP (1) EP1599797A4 (ja)
JP (1) JP2006521638A (ja)
KR (1) KR20050113214A (ja)
AU (1) AU2004216794A1 (ja)
BR (1) BRPI0407738A (ja)
CA (1) CA2514755A1 (ja)
IL (1) IL169816A0 (ja)
WO (1) WO2004079521A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011257957A (ja) * 2010-06-08 2011-12-22 Ricoh Co Ltd 機器制御装置、機器制御プログラム、記憶媒体、及び機器制御システム
CN110136560A (zh) * 2019-05-31 2019-08-16 山东交通学院 斜截式仿生蝙蝠耳喇叭模型功能装置及实验方法

Families Citing this family (124)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6712427B1 (en) * 1999-11-24 2004-03-30 Schukra-Geratebau Gesmbh Lumbar support member
US7606898B1 (en) 2000-10-24 2009-10-20 Microsoft Corporation System and method for distributed management of shared computers
US7448024B2 (en) * 2002-12-12 2008-11-04 Bea Systems, Inc. System and method for software application development in a portal environment
US8122106B2 (en) 2003-03-06 2012-02-21 Microsoft Corporation Integrating design, deployment, and management phases for systems
US7689676B2 (en) 2003-03-06 2010-03-30 Microsoft Corporation Model-based policy application
US7890543B2 (en) 2003-03-06 2011-02-15 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
WO2004091138A1 (en) * 2003-04-04 2004-10-21 Computer Associates Think, Inc. Method and system of alert notification
US20040261060A1 (en) * 2003-06-20 2004-12-23 Haselden J. Kirk Dependency based package deployment
US7765523B2 (en) * 2003-07-10 2010-07-27 Computer Associates Think, Inc. System and method for generating a web-enabled graphical user interface plug-in
EP1649361B1 (en) * 2003-07-11 2019-10-30 Google LLC System and method for generating a graphical user interface (gui) element
US7861243B2 (en) * 2003-07-11 2010-12-28 Computer Associates Think, Inc. Automatically deploying program units to a cluster of networked servers
WO2005008477A2 (en) * 2003-07-11 2005-01-27 Computer Associates Think, Inc. System and method for dynamic generation of a graphical user interface
US20050049998A1 (en) * 2003-08-28 2005-03-03 International Business Machines Corporation Mechanism for deploying enterprise information system resources
US7480895B2 (en) * 2003-11-24 2009-01-20 International Business Machines Corporation Web application development tool
US20050125788A1 (en) * 2003-12-03 2005-06-09 International Business Machines Corporation Wizard-based installation package with run-time debugging support
US20050137932A1 (en) * 2003-12-23 2005-06-23 D'angelo Joseph K. System and method of enterprise risk evaluation and planning
US7778422B2 (en) 2004-02-27 2010-08-17 Microsoft Corporation Security associations for devices
US7647588B2 (en) * 2004-04-15 2010-01-12 International Business Machines Corporation Smart archive for JAR files
US7418501B2 (en) * 2004-04-30 2008-08-26 International Business Machines Corporation Dynamic extension of network-accessible services
US20050246529A1 (en) 2004-04-30 2005-11-03 Microsoft Corporation Isolated persistent identity storage for authentication of computing devies
US7797697B2 (en) * 2004-05-05 2010-09-14 Bea Systems, Inc. System and method for deploying applications with library modules
US20050251495A1 (en) * 2004-05-06 2005-11-10 Bea Systems, Inc. System and method for unified file management
US7730112B2 (en) * 2004-05-10 2010-06-01 Bea Systems Inc. Scoped applications
US7428733B2 (en) * 2004-05-13 2008-09-23 Bea Systems, Inc. System and method for custom module creation and deployment
US7814484B2 (en) * 2004-05-14 2010-10-12 Bea Systems, Inc. System and method for web application extensibility
US7526764B2 (en) * 2004-05-18 2009-04-28 Bea Systems, Inc. System and method for deployment plan
US7707572B2 (en) * 2004-05-19 2010-04-27 Bea Systems, Inc. System and method for application container architecture
US7849412B2 (en) * 2004-05-21 2010-12-07 Computer Associates Think, Inc. System and method for generating a web control in a Windows development environment
US7607126B2 (en) * 2004-05-21 2009-10-20 Bea Systems, Inc. System and method for external override of annotations
US20050267918A1 (en) * 2004-05-28 2005-12-01 Gatev Andrei A System and method for bundling deployment descriptor files within an enterprise archive for fast reliable resource setup at deployment time
US20050267733A1 (en) * 2004-06-01 2005-12-01 Rainer Hueber System and method for a translation process within a development infrastructure
US7490102B2 (en) * 2004-06-07 2009-02-10 Sap Ag System and method for interacting with a persistence layer
US20050289538A1 (en) * 2004-06-23 2005-12-29 International Business Machines Corporation Deploying an application software on a virtual deployment target
US8898256B2 (en) * 2004-07-13 2014-11-25 International Business Machines Corporation Prioritization of application component distribution
US7941402B2 (en) * 2004-09-24 2011-05-10 Sap Ag Storing and using classes in databases
US7849459B2 (en) * 2004-11-04 2010-12-07 International Business Machines Corporation Deploying java applications in resource constrained environments
US9043781B2 (en) * 2004-12-03 2015-05-26 International Business Machines Corporation Algorithm for automated enterprise deployments
US7770150B2 (en) * 2004-12-15 2010-08-03 International Business Machines Corporation Apparatus, system, and method for sharing and accessing data by scopes
US20060136897A1 (en) * 2004-12-22 2006-06-22 Chaitanya Laxminarayan System and method for a packaging and deployment mechanism for Web service applications
US8849960B2 (en) * 2005-02-11 2014-09-30 Hewlett-Packard Development Company, L.P. Non-invasive method and system for automated administration of diverse security constrained servers
US20060195434A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation Multiple Invocation Style Integration Framework
JP4731960B2 (ja) * 2005-03-15 2011-07-27 株式会社日立製作所 プーリング方法、システム及びプログラム
US8812964B2 (en) * 2005-03-31 2014-08-19 International Business Machines Corporation Managing evelopment of an enterprise application
US20060230396A1 (en) * 2005-04-07 2006-10-12 International Business Machines Corporation Deployment of reusable software components to be hosted in a container running on a modular code runtime platform through a runtime platform extension point
US7797147B2 (en) 2005-04-15 2010-09-14 Microsoft Corporation Model-based system monitoring
US8489728B2 (en) 2005-04-15 2013-07-16 Microsoft Corporation Model-based system monitoring
US20060245354A1 (en) * 2005-04-28 2006-11-02 International Business Machines Corporation Method and apparatus for deploying and instantiating multiple instances of applications in automated data centers using application deployment template
US8140816B2 (en) * 2005-05-12 2012-03-20 International Business Machines Corporation Utilizing partition resource requirements from workload estimation to automate partition software configuration and validation
US20060277537A1 (en) * 2005-06-01 2006-12-07 International Business Machines Corporation Deployment of containers and container extensions in a modular code runtime platform through a runtime platform extension point
US8549513B2 (en) 2005-06-29 2013-10-01 Microsoft Corporation Model-based virtual system provisioning
US7945902B1 (en) * 2005-07-13 2011-05-17 Oracle America, Inc. Detection of non-standard application programming interface usage via analysis of executable code
US7661108B2 (en) * 2005-08-12 2010-02-09 Bea Systems, Inc. Messaging component configuration and deployment in an archived form
US9274774B2 (en) * 2005-10-28 2016-03-01 Google Inc. Common installer server
US7941309B2 (en) 2005-11-02 2011-05-10 Microsoft Corporation Modeling IT operations/policies
US20070156913A1 (en) * 2005-12-30 2007-07-05 Hiroyuki Miyamoto Method for enabling extension points through plug-ins
US20070240145A1 (en) * 2006-03-01 2007-10-11 Sbc Knowledge Ventures L.P. Method and system for java application administration and deployment
US7451246B2 (en) * 2006-04-19 2008-11-11 Hewlett-Packard Development Company, L.P. Indirectly controlling a target device on a network
US7802243B1 (en) 2006-04-20 2010-09-21 Open Invention Network Llc System and method for server customization
US20070282801A1 (en) * 2006-06-05 2007-12-06 Ajay A Apte Dynamically creating and executing an application lifecycle management operation
US8589569B2 (en) * 2006-09-06 2013-11-19 Oracle International Corporation Method and apparatus for invoking a plug-in on a server
US8296758B2 (en) * 2006-09-20 2012-10-23 Sap Ag Deployment and versioning of applications
US8468494B2 (en) * 2007-01-22 2013-06-18 Oracle Taleo Llc In-line editor
US20080270974A1 (en) * 2007-04-30 2008-10-30 Krasimir Topchiyski Enterprise JavaBeans Metadata Model
US8327341B2 (en) * 2007-05-31 2012-12-04 Red Hat, Inc. Integrating aspect oriented programming into the application server
US8640146B2 (en) * 2007-05-31 2014-01-28 Red Hat, Inc. Providing extensive ability for describing a management interface
US8302092B2 (en) * 2007-06-26 2012-10-30 Microsoft Corporation Extensible data driven deployment system
US9058571B2 (en) * 2007-08-31 2015-06-16 Red Hat, Inc. Tool for automated transformation of a business process definition into a web application package
US8423955B2 (en) * 2007-08-31 2013-04-16 Red Hat, Inc. Method and apparatus for supporting multiple business process languages in BPM
US8825713B2 (en) * 2007-09-12 2014-09-02 Red Hat, Inc. BPM system portable across databases
US8914804B2 (en) 2007-09-12 2014-12-16 Red Hat, Inc. Handling queues associated with web services of business processes
US8954952B2 (en) * 2007-11-30 2015-02-10 Red Hat, Inc. Portable business process deployment model across different application servers
US8775577B1 (en) * 2007-12-18 2014-07-08 Amazon Technologies, Inc. System and method for configuration management service
US8176114B2 (en) * 2008-02-28 2012-05-08 Oracle International Corporation Distributed cross-application server deployment
US8191075B2 (en) 2008-03-06 2012-05-29 Microsoft Corporation State management of operating system and applications
US8762977B2 (en) * 2008-04-10 2014-06-24 Telefonaktiebolaget L M Ericsson (Publ) Mobile device software management method and apparatus
GB2459682B (en) * 2008-04-30 2012-04-25 Vmware Inc A computer system and a method of deploying an application in a computer system
US9235909B2 (en) * 2008-05-06 2016-01-12 International Business Machines Corporation Simplifying the presentation of a visually complex semantic model within a graphical modeling application
US8010479B2 (en) * 2008-06-18 2011-08-30 International Business Machines Corporation Simplifying the creation of user-defined custom elements for use in a graphical modeling application
US20090319239A1 (en) * 2008-06-18 2009-12-24 International Business Machines Corporation Topology modeling application that handles abstract entities through the realization of conceptual objects
US8291378B2 (en) * 2008-07-29 2012-10-16 International Business Machines Corporation Simplified deployment modeling
US8849987B2 (en) * 2008-07-29 2014-09-30 International Business Machines Corporation Automated discovery of a topology of a distributed computing environment
US8302093B2 (en) * 2008-08-28 2012-10-30 International Business Machines Corporation Automated deployment of defined topology in distributed computing environment
US9280335B2 (en) 2010-09-30 2016-03-08 International Business Machines Corporation Semantically rich composable software image bundles
US8793652B2 (en) 2012-06-07 2014-07-29 International Business Machines Corporation Designing and cross-configuring software
US8417658B2 (en) 2008-09-12 2013-04-09 International Business Machines Corporation Deployment pattern realization with models of computing environments
US8402381B2 (en) * 2008-09-23 2013-03-19 International Business Machines Corporation Automatically arranging widgets of a model within a canvas using iterative region based widget relative adjustments
US8049918B2 (en) * 2008-11-03 2011-11-01 Microsoft Corporation Print plug-in isolation
US9015593B2 (en) * 2008-12-01 2015-04-21 International Business Machines Corporation Managing advisories for complex model nodes in a graphical modeling application
US8918761B1 (en) * 2008-12-05 2014-12-23 Amazon Technologies, Inc. Elastic application framework for deploying software
GB2466220A (en) * 2008-12-12 2010-06-16 Symbian Software Ltd Installing or uninstalling computer programs using installer plug-in modules
US8245223B2 (en) * 2008-12-23 2012-08-14 Microsoft Corporation Networked deployment of multi-application customizations
JP5278185B2 (ja) * 2009-06-12 2013-09-04 株式会社リコー 情報処理装置、インストーラプログラム、及び記憶媒体
US8799203B2 (en) * 2009-07-16 2014-08-05 International Business Machines Corporation Method and system for encapsulation and re-use of models
US8549476B2 (en) * 2009-07-30 2013-10-01 Hewlett-Packard Development Company, L.P. Comparison of result of program operation to result of an operation of a different version of the program
US8499294B2 (en) * 2009-09-30 2013-07-30 Red Hat, Inc. Persisting the changes for managed components in an application server
US9223946B1 (en) * 2009-10-29 2015-12-29 Hewlett Packard Enterprise Development Lp Specification and configuration of management intent
US8650540B2 (en) * 2009-12-31 2014-02-11 International Business Machines Corporation Melding of mediation flow service component architecture (SCA) components
US20110209144A1 (en) * 2010-02-19 2011-08-25 International Business Machines Corporation Application runtime expert for deployment of an application on multiple computer systems
US8930941B2 (en) * 2010-05-26 2015-01-06 Tibco Software Inc. Capability model for deploying componentized applications
US8612963B2 (en) * 2010-12-02 2013-12-17 International Business Machines Corporation Guided problem resolution in deploying an application
US9298482B2 (en) 2011-12-12 2016-03-29 International Business Machines Corporation Plug-in based templatization framework for automating the creation of open virtualization format virtual appliances
US9378255B2 (en) 2012-05-11 2016-06-28 Sap Se Cloud logistics
US9342330B2 (en) * 2012-05-11 2016-05-17 Sap Se Deploying a user-configured virtual appliance template including a portion of an existing computing application to enhance functionality
US10044522B1 (en) 2012-08-21 2018-08-07 Amazon Technologies Inc. Tree-oriented configuration management service
US9992268B2 (en) * 2012-09-27 2018-06-05 Oracle International Corporation Framework for thin-server web applications
US9760361B2 (en) 2012-11-26 2017-09-12 International Business Machines Corporation Optimized installation of received patches for application programs already running on computer systems
US9411571B2 (en) * 2013-02-28 2016-08-09 Adobe Systems Incorporated Method and apparatus for deploying software as a service
US20140380300A1 (en) * 2013-06-25 2014-12-25 Bank Of America Corporation Dynamic configuration framework
CN104283919B (zh) * 2013-07-05 2019-11-05 中兴通讯股份有限公司 一种接口调用系统及方法
CN103649915B (zh) 2013-07-31 2016-11-02 华为技术有限公司 关联插件管理方法、设备及系统
US9432405B2 (en) 2014-03-03 2016-08-30 Microsoft Technology Licensing, Llc Communicating status regarding application of compliance policy updates
US9971583B2 (en) 2014-10-31 2018-05-15 Hewlett Packard Enterprise Development Lp Common deployment model
US9965260B2 (en) 2015-02-18 2018-05-08 Oracle International Corporation Software product release automation framework
CN105159686B (zh) * 2015-09-28 2018-09-04 北京奇虎科技有限公司 一种网站页面开发方法和装置
US20170123777A1 (en) * 2015-10-28 2017-05-04 Hewlett Packard Enterprise Development Lp Deploying applications on application platforms
CN106354533B (zh) * 2016-08-29 2019-09-20 北京恒华伟业科技股份有限公司 一种模块动态加载方法及装置
CN106598663B (zh) * 2016-12-09 2020-07-24 北京恒华伟业科技股份有限公司 一种web应用更新方法及web服务器
US10908926B2 (en) * 2017-09-09 2021-02-02 Box, Inc. Plug-in management wrappers
US10990368B2 (en) 2017-12-26 2021-04-27 Oracle International Corporation On-premises and cloud-based software provisioning
US10698673B2 (en) * 2018-04-20 2020-06-30 Red Hat, Inc. Managing software installation
CN108776589B (zh) * 2018-06-04 2021-07-27 中国电子科技集团公司第十四研究所 雷达信号处理软件组件的部署方法
WO2021162687A1 (en) * 2020-02-12 2021-08-19 Hewlett-Packard Development Company, L.P. Abridged container images
US11762644B2 (en) 2021-05-10 2023-09-19 International Business Machines Corporation Agentless installation for building deployments
CN114385192A (zh) * 2022-01-18 2022-04-22 北京字节跳动网络技术有限公司 一种应用部署方法、装置、计算机设备和存储介质

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2689997B1 (fr) * 1992-04-08 1997-06-13 Innovatron Sa Systeme d'echange de donnees sans contact entre un terminal et un ensemble portatif modulaire.
US6357047B1 (en) * 1997-06-30 2002-03-12 Avid Technology, Inc. Media pipeline with multichannel video processing and playback
US5644364A (en) * 1993-04-16 1997-07-01 Avid Technology, Inc. Media pipeline with multichannel video processing and playback
US5771354A (en) * 1993-11-04 1998-06-23 Crawford; Christopher M. Internet online backup system provides remote storage for customers using IDs and passwords which were interactively established when signing up for backup services
JP3560614B2 (ja) * 1994-03-18 2004-09-02 アヴィッド・テクノロジー・インコーポレーテッド デジタル映像効果のリアルタイム実行に適合させた静止画像のパイプライン処理
IL113572A (en) * 1995-05-01 1999-03-12 Metalink Ltd Symbol decoder
US6505160B1 (en) * 1995-07-27 2003-01-07 Digimarc Corporation Connected audio and other media objects
US5903261A (en) * 1996-06-20 1999-05-11 Data Translation, Inc. Computer based video system
US6175562B1 (en) * 1997-04-29 2001-01-16 Intervoice Limited Partnership Switchless call processing
US6314565B1 (en) * 1997-05-19 2001-11-06 Intervu, Inc. System and method for automated identification, retrieval, and installation of multimedia software components
US6233567B1 (en) * 1997-08-29 2001-05-15 Intel Corporation Method and apparatus for software licensing electronically distributed programs
US6216152B1 (en) * 1997-10-27 2001-04-10 Sun Microsystems, Inc. Method and apparatus for providing plug in media decoders
US5974454A (en) * 1997-11-14 1999-10-26 Microsoft Corporation Method and system for installing and updating program module components
US6334189B1 (en) * 1997-12-05 2001-12-25 Jamama, Llc Use of pseudocode to protect software from unauthorized use
US6480959B1 (en) * 1997-12-05 2002-11-12 Jamama, Llc Software system and associated methods for controlling the use of computer programs
US6141759A (en) * 1997-12-10 2000-10-31 Bmc Software, Inc. System and architecture for distributing, monitoring, and managing information requests on a computer network
US6498791B2 (en) * 1998-04-03 2002-12-24 Vertical Networks, Inc. Systems and methods for multiple mode voice and data communications using intelligently bridged TDM and packet buses and methods for performing telephony and data functions using the same
US6009401A (en) * 1998-04-06 1999-12-28 Preview Systems, Inc. Relicensing of electronically purchased software
US6499035B1 (en) * 1998-07-15 2002-12-24 Microsoft Corporation Licensing java objects
US6067044A (en) * 1998-09-21 2000-05-23 National Systems And Research Company Remote tracking and sensing system and method
US6636506B1 (en) * 1998-11-16 2003-10-21 Fanstel Systems, Llc Internet telephone system and method therefor
US6343280B2 (en) * 1998-12-15 2002-01-29 Jonathan Clark Distributed execution software license server
US6526097B1 (en) * 1999-02-03 2003-02-25 Sarnoff Corporation Frame-level rate control for plug-in video codecs
US6508709B1 (en) * 1999-06-18 2003-01-21 Jayant S. Karmarkar Virtual distributed multimedia gaming method and system based on actual regulated casino games
US6684387B1 (en) * 1999-09-23 2004-01-27 International Business Machines Corporation Method and apparatus for verifying Enterprise Java Beans
US6628644B1 (en) * 1999-09-30 2003-09-30 Cisco Technology, Inc. Telephone-based hypertext transport protocol server
US6557100B1 (en) * 1999-10-21 2003-04-29 International Business Machines Corporation Fastpath redeployment of EJBs
US6614786B1 (en) * 1999-11-24 2003-09-02 Lucent Technologies Inc. Enhanced dual mode telephone for internet telephony
US6757689B2 (en) * 2001-02-02 2004-06-29 Hewlett-Packard Development Company, L.P. Enabling a zero latency enterprise
US6826716B2 (en) * 2001-09-26 2004-11-30 International Business Machines Corporation Test programs for enterprise web applications
US6679177B1 (en) * 2002-04-24 2004-01-20 G&H Technology, Inc. Resettable and redundant NEA-initiated hold-down and release mechanism for a flight termination system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011257957A (ja) * 2010-06-08 2011-12-22 Ricoh Co Ltd 機器制御装置、機器制御プログラム、記憶媒体、及び機器制御システム
CN110136560A (zh) * 2019-05-31 2019-08-16 山东交通学院 斜截式仿生蝙蝠耳喇叭模型功能装置及实验方法

Also Published As

Publication number Publication date
IL169816A0 (en) 2007-07-04
US20040177352A1 (en) 2004-09-09
CA2514755A1 (en) 2004-09-16
EP1599797A2 (en) 2005-11-30
AU2004216794A1 (en) 2004-09-16
WO2004079521A3 (en) 2005-03-10
WO2004079521A2 (en) 2004-09-16
EP1599797A4 (en) 2008-05-07
KR20050113214A (ko) 2005-12-01
BRPI0407738A (pt) 2006-02-14
US7069553B2 (en) 2006-06-27

Similar Documents

Publication Publication Date Title
US7069553B2 (en) Universal deployment tool
US7861243B2 (en) Automatically deploying program units to a cluster of networked servers
US6430556B1 (en) System and method for providing a query object development environment
US7627865B2 (en) Method and apparatus for accessing instrumentation data from within a managed code environment
US7873965B2 (en) Methods and apparatus for communicating changes between a user-interface and an executing application, using property paths
US7305671B2 (en) Conversion of an object model to a source file generation model
US7516440B2 (en) System and method for providing a java interface to an application view component
US8726270B2 (en) Distributed installation configuration over multiple machines
US6505228B1 (en) Dynamic determination of execution sequence
US20030182626A1 (en) On-demand creation of MIDlets
EP1974498B1 (en) Method, system and computer program product for automatically cloning it resource structures
US20070288853A1 (en) Software, methods and apparatus facilitating presentation of a wireless communication device user interface with multi-language support
US20030195951A1 (en) Method and system to dynamically detect, download and install drivers from an online service
US20030182625A1 (en) Language and object model for describing MIDlets
US7890853B2 (en) Apparatus and machine-readable medium for generating markup language representing a derived entity which extends or overrides attributes of a base entity
WO2002044897A1 (en) Generating a declarative user interface
US7533114B2 (en) Mobile device having extensible software for presenting server-side applications, software and methods
US20070061277A1 (en) Method, system, and storage medium for providing dynamic deployment of grid services over a computer network
US9049044B1 (en) Method of management and distribution of device adapters for element management systems
Bai Developing Java Web Applications to Access Databases
Bai Develop Java Web Applications to Access Databases
Kromann et al. Introducing PDO
CA2591250A1 (en) Software, methods and apparatus facilitating presentation of a wireless communication device user interface with multi-language support
EP1873656A1 (en) Facilitating access to application data at an application server by a wireless communication device
Brown et al. Data Access Options for Web Applications