ナビゲーションをスキップ

WebLogic デプロイメント プログラマーズ ガイド

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

WebLogic デプロイメント API について

以下の節では、WebLogic デプロイメント API の構造と機能について説明します。

 


デプロイメント API の概要

WebLogic デプロイメント API は J2EE Deployment API 標準 (JSR-88) のインタフェースを実装し拡張したもので、WebLogic Server アプリケーションに特定のデプロイメント機能を提供します。このマニュアルおよび「WebLogic Deployment API JavaDocs」は、WebLogic Server に対してプログラム的なデプロイメント工程の実施を考えている、開発者および独立系ソフトウェア ベンダ (Independent Software Vendor : ISV) 向けに書かれています。

注意 : WebLogic Server 9.0 では、旧リリースで使われていた weblogic.management.deploy API の使用は非推奨になっています。

デプロイメントのフェーズ

ここで説明する機能は、Deployer ツールでアプリケーションを効率的にコンフィグレーションしてデプロイできるようにするためのものです。デプロイメントのプロセスには以下のような複数のフェーズがあり、これらのフェーズを 1 つのツールに実装できます (どのフェーズも省略可能)。

1) アプリケーション評価 - このフェーズではアプリケーション ファイルを検査および評価して、アプリケーションの構造と組み込まれている標準の記述子の内容を判断します。

2) フロントエンド コンフィグレーション - このフェーズでは、アプリケーションに組み込まれている情報に基づいてコンフィグレーション情報を確立します。この情報には、WebLogic Server 記述子、デフォルト、ユーザ定義によるデプロイメント プランの形式があります。

3) デプロイメント コンフィグレーション - このフェーズでは、特定のデプロイメントについてユーザと会話して目的のコンフィグレーションを確立しチューニングします。これまでに解決されていなかった要素はこのフェーズで解決され、既存のコンフィグレーションや確立された環境固有の情報をオーバーライドすることもできます。

4) デプロイメント準備 - このフェーズでは、最終的なデプロイメント プランを生成し、クライアントサイドでアプリケーションをある程度検証します。

5) アプリケーションのデプロイメント - このフェーズでは、サーバサイド処理とアプリケーションの起動のために管理サーバにアプリケーションとプランを配布します。

これらのフェーズの実装については、この章に続く「デプロイメントのためのアプリケーションのコンフィグレーション」、「デプロイメント工程の実行」の各章で説明します。この章では、こうした工程の実行に必要な一連のパッケージについて、パッケージごとにその概要を紹介します。

 


J2EE Deployment API への準拠

WebLogic デプロイメント API のクラスとインタフェースには、J2EE Deployment API 標準 (JSR-88) インタフェースが拡張されて実装されています。これについては、「javax.enterprise.deploy」のサブパッケージ (model、shared、および spi) に説明されています。さらに、WebLogic デプロイメント API には一般的なデプロイメント タスクを簡単に行うために、ヘルパー クラスを備えた Tools パッケージが用意されています。

WebLogic では、J2EE Deployment API 標準 (JSR-88) に記述されている「Product Provider (製品プロバイダ)」の役割をサポートしています。そのため、任意の J2EE ネットワーク クライアント用の拡張可能なコンポーネントに加えて、WebLogic Server 環境に固有のユーティリティも用意されています。そうした拡張機能には、以下のようなものがあります。

 


SPI パッケージ

BEA では J2EE 製品プロバイダとして、WebLogic Server でのコンフィグレーションとデプロイの方法を具体的に制御するために javax SPI パッケージを拡張しています。このパッケージのコア インタフェースは DeploymentManager で、ここから他のすべてのデプロイメント アクティビティを開始、モニタ、および制御できます。

WebLogicDeploymentManager インタフェースは、javax.enterprise.deploy.spi.DeploymentManager インタフェースの WebLogic Server 拡張です。WebLogicDeploymentManager のオブジェクトでは Weblogic Server デプロイメント フレームワークがステートレスでインタフェースされます。これにより、基本的なデプロイメント機能に加えて、プロダクションの再デプロイメント、エンタープライズ アプリケーション内のモジュールの部分的なデプロイメントなどの幅広い WebLogic Server デプロイメント機能が実現します。WebLogicDeploymentManager オブジェクトは、通常 Tools パッケージの SessionHelper ヘルパー クラスから SessionHelper.getDeploymentManager メソッドを使用して取得します。この方法を始めとした、WebLogicDeploymentManager の各種の取得方法については、「アプリケーション評価」で説明されています。

weblogic.deploy.api.spi

weblogic.deploy.api.spi パッケージには、WebLogic Server にデプロイするアプリケーションのコンフィグレーションおよびデプロイに必要なインタフェースが用意されています。このパッケージを使用すると、デプロイメント ツールでエンタープライズ アプリケーションまたはスタンドアロン モジュールの WebLogic Server 固有のデプロイメント コンフィグレーションを表現できます。

前述のように、weblogic.deploy.api.spi には WebLogicDeploymentManager インタフェースがあります。デプロイメント ツールではこのデプロイメント マネージャを使用して、WebLogic Server でのすべてのデプロイメント関連工程 (アプリケーションの配布、起動、停止) を行います。WebLogicDeploymentManager は、J2EE DeploymentManager インタフェースの重要な拡張で、エンタープライズ アプリケーション モジュールのモジュールレベルの対象指定、プロダクションの再デプロイメント、アプリケーションのバージョニング、アプリケーションのステージング モード、デプロイされたアプリケーションへの管理アクセスの制約などの機能がサポートされます。

spi パッケージの WebLogicDeploymentConfiguration クラスと WebLogicDConfigBean クラスで、アプリケーションのデプロイメントとコンフィグレーションの記述子 (WebLogic Server デプロイメント記述子) が表されます。WebLogicDeploymentConfiguration オブジェクトはデプロイメント プランのラッパーです。WebLogicDConfigBean には、Weblogic デプロイメント記述子のプロパティがカプセル化されます。

weblogic.deploy.api.spi.factories

このパッケージに含まれるインタフェースは WebLogicDeploymentFactory のみです。これは javax.enterprise.deploy.spi.factories.DeploymentFactory の WebLogic 拡張です。このファクトリ インタフェースを使用すると、さまざまな特性をもつ DeploymentManager オブジェクトを選択して割り当てられます。WebLogicDeploymentManager の特性は、この WebLogicDeploymentFactory の public フィールドで定義されます。

モジュールを対象指定する

モジュールの対象指定とは、アプリケーション内の特定のモジュールを別の対象にデプロイすることです (jsr88 の仕様にある、すべてのモジュールを同じ対象のセットにデプロイするだけの処理とは異なります)。モジュールの対象指定をサポートするツールは、WebLogicDeploymentManager.createTargetModuleID メソッド群です。TargetModuleID オブジェクトの使用については、「Target オブジェクト」に説明されています。

WebLogicTargetModuleID クラスには、javax.enterprise.deploy.spi.TargetModuleID インタフェースの WebLogic Server 拡張が含まれています。このクラスの WebLogicTargetModuleID は、コンフィグレーションされている TargetInfoMBean (AppDeploymentMBean および SubDeploymentMBean) と密接に関係しています。TargetModuleID の実装には、アプリケーション モジュールについて、またアプリケーション モジュールとその対象との関係について、MBean にあるよりも詳細に記述されます。

WebLogic 対象の種類のクエリ サポート

WebLogic Server では、WebLogicTarget クラスに WebLogic Server で使用できる対象の種類を管理するための直接インタフェースが提供されています。対象へのアクセサ メソッドは以下のとおりです。

boolean isCluster()

この対象がクラスタかどうかを示します。

boolean isJMSServer()

この対象が JMS サーバかどうかを示します。

boolean isSAFAgent()

この対象が SAF エージェントかどうかを示します。

boolean isServer()

この対象がサーバかどうかを示します。

boolean isVirtualHost()

この対象が仮想ホストかどうかを示します。

サーバのステージング モード

アプリケーションのステージング モードは、デプロイメントの動作に影響します。アプリケーションのステージング動作は、DeploymentOptions.setStageMode(string) と以下の値を使用して設定されます。それぞれの値とその結果を示します。

DConfigBean 検証

DConfigBean のプロパティ セッターでは、無効な値の設定が拒否されます。これには、プロパティの型の検証 (整数型プロパティに対する非数値の指定の検証など) が含まれます。一部のプロパティでは、さらにセマンティックな検証 (関連する最小値よりも最大値が小さく指定されていないことの確認など) が行われます。

 


Model パッケージ

このパッケージの一連のクラスは javax.enterprise.deploy.model インタフェースの WebLogic Server 拡張および実装です。model インタフェースでは、J2EE アプリケーションの標準的な要素 (デプロイメント記述子など) を表現します。

weblogic.deploy.api.model

このパッケージには、デプロイ可能なオブジェクトの J2EE コンフィグレーションの表現に使用されるインタフェース群が含まれています。デプロイ可能なオブジェクトとは、エンタープライズ アプリケーションまたはスタンドアロン モジュールのデプロイメント コンテナです。

javax.enterprise.deploy.model インタフェースの WebLogic Server 実装を使用すると、WebLogic Server アプリケーションのインストール ディレクトリに格納されているアプリケーションで作業できます。WebLogic Server アプリケーションのインストール ディレクトリとは、コンフィグレーションの過程で生成される、アプリケーションのデプロイメント ファイル、デプロイメント、および外部 WebLogic デプロイメント記述子の管理に用いる正式なディレクトリ構造です。アプリケーション インストール ディレクトリの配置の詳細については、「Preparing Applications and Modules for Deployment」を参照してください。任意の J2EE アプリケーションと、(拡張として) アプリケーション インストール ディレクトリにあるアプリケーションがサポートされています。

注意 : weblogic.deploy.api.model では、J2EE デプロイメント記述子要素に対するコンフィグレーション中の動的な変更がサポートされません。したがって、Xpath リスナの登録と削除はサポートされません。DDBean.addXPathListenerremoveXPathListener はサポートされていません。

weblogic.deploy.api.model パッケージの WebLogicDeployableObject クラスと WebLogicDDBean インタフェースで、アプリケーションの標準的なデプロイメント記述子が表現されます。

デプロイメント記述子にアクセスする

J2EE Deployment API では、J2EE デプロイメント記述子には DeployableObject を介してアクセスするように規定されています。DeployableObject はアプリケーション内のモジュールを表します。記述子の要素は DDBean で表されます。デプロイメント記述子の各要素に 1 つの DDBean が対応します。記述子のルート要素は DDBeanRoot オブジェクトで表されます。これらのインタフェースはすべて、対応するこのパッケージのインタフェースおよびクラス内に実装されます。

WebLogicDeployableObject クラス (DeployableObject の WebLogic Server 実装) には createDeployableObject メソッドがあり、このメソッドでアプリケーションのデプロイメント記述子の WebLogicDeployableObject 群および WebLogicDDBean 群を作成します。基本的なコンフィグレーション タスクを実行するには、WebLogicDDBean に WebLogicDConfigBean からアクセスして実行します。WebLogicDConfigBean は WebLogic Server へのアプリケーションのデプロイに必要なサーバ コンフィグレーションのプロパティを表しています。これらについては、「コンフィグレーション プロセスの概要」で説明されています。

サーバ環境 (この場合は WebLogic Server) の具体的なコンフィグレーション情報を格納する DConfigBean と異なり、DDBean オブジェクトにはアプリケーションの一般的なデプロイメント記述子要素が格納されます。たとえば、Web アプリケーションをデプロイする場合、デプロイメント記述子、つまり最終的に WebLogicDDBean に格納される情報は、.war アーカイブの WEB-INF/web.xml ファイルから取得されます。WebLogicDConfigBean の情報は、WebLogicDDBean に基づいて .war アーカイブの WEB-INF/weblogic.xml から取得されます。これらの Bean はコンフィグレーション情報を保持するという基本的な目的については同じですが、論理的には異なるものです。DDBean ではアプリケーションについて記述され、DConfigBean では特定の環境に対してアプリケーションがコンフィグレーションされます。

これらのオブジェクトは両方ともコンフィグレーション セッションを開始するときに生成されます。WebLogicDeployableObject、WebLogicDDBean、および WebLogicDConfigBean はすべてコンフィグレーション セッションの中でインスタンス化され、操作されます。コンフィグレーション セッション中に可能な操作については、「アプリケーションのコンフィグレーション」で説明されています。

 


Shared パッケージ

WebLogic デプロイメント API では、 weblogic.deploy.api.shared インタフェースを拡張して以下の種類を用意し、サーバを全面的に操作できるようにしています。

weblogic.deploy.api.shared

weblogic.deploy.api.shared パッケージには、WebLogic Server 固有のデプロイメント コマンド、モジュールのタイプ、および (クラスとしての) 対象の種類を表現する一連のクラスが用意されています。これらのクラスのオブジェクトは Model パッケージおよび SPI パッケージのメンバーで共有できます。

このパッケージでは、標準の javax.enterprise.deploy.shared クラスにある ModuleType および CommandType の定義が拡張され、WebLogic Server で使用できるさらに詳細な情報が含まれています。この拡張で追加されているのは以下のとおりです。

WebLogicTargetType クラス (J2EE Deployment API 標準 (JSR-88) では必須でない) では、WebLogic Server でサポートされる多様なデプロイメント対象の種類が列挙されます。このクラスは javax のデプロイメント クラスを拡張するものではありません。WebLogicTargetType クラスには、サーバ、クラスタ、仮想ホスト、JMS サーバの各対象の種類を定義します。対象の詳細については、「Target オブジェクト」を参照してください。

デプロイ用、更新用のコマンド タイプ

javax.enterprise.spi.shared パッケージに定義されている必須のコマンド タイプに加えて、デプロイ用と更新用のコマンド タイプが追加されました。WebLogicDeploymentManager から、これらのコマンドを利用できます。

モジュールのタイプのサポート

サポートされているモジュールのタイプには、JMS、JDBC、インターセプション、WSEE、コンフィグ、および WLDF があります。これらは weblogic.deploy.api.shared.WebLogicModuleType クラスにフィールドとして定義されています。

全種類の WebLogic Server 対象のサポート

対象は、J2EE Deployment API 仕様では実装されず、WebLogic Deployment API で実装されます。有効な対象の値は以下のとおりです。

これらは、weblogic.deploy.api.shared.WebLogicTargetType クラスの列挙フィールドの値です。

 


Tools パッケージ

このパッケージのツールを使用すると、一般的なデプロイメント ツールのタスクを最小限の制御で明示的にオブジェクトを操作して行えます。こうしたタスクには、WebLogicDeploymentManagerWebLogicDeployableObject の制御やデプロイメント プランの生成などがあります。

weblogic.deploy.api.tools

weblogic.deploy.api.tools パッケージには、次のような処理に役立つ便利なクラス群が用意されています。

Tools パッケージのクラス群は、J2EE Deployment API 標準 (JSR-88) インタフェースの拡張ではありません。これらのクラス群を使用すると、WebLogic デプロイメント API で提供されるデプロイメント オペレーションに簡単にアクセスできます。

SessionHelper

コンフィグレーション セッションは直接 WebLogicDeploymentManager から制御することもできますが、この制御を簡単に行えるメソッド群が SessionHelper に用意されています。SessionHelper のメソッドには以下のようなものがあります。

使用しているツールで直接 WebLogic Server J2EE Deployment API 実装に対してコーディングする場合、常に SessionHelper を使用する必要があります。

SPI パッケージ」で説明したように、SessionHelper を使用すると 1 回のメソッド呼び出しで WebLogicDeploymentManager を自動的に取得できます。この作業を効率的に行うには、アプリケーションを検索できる必要があります。SessionHelper では「インストール ルート」抽象を使用してアプリケーションとデプロイメント プランのアーティファクトを表示します。これは理想的には実際のアプリケーションの構成です。インストール ルートは次のように表示されます。

インストール ルート (例 : myapp)

-- アプリケーション

----- アーカイブ (例 : myapp.ear)

-- プラン

----- デプロイメント プラン (例 : plan.xml)

----- 外部記述子 (例 : META-INF/weblogic-application.xml)

アプリケーションは上記の構成でなくても構いません。ただし、アプリケーションとコンフィグレーション アーティファクトは共通のルートに保持するのが推奨されるアプローチです。そうすることで SessionHelper で解釈できる形式になります。

SessionHelper.getModuleInfo() では、アプリケーション構造の理解に役立つオブジェクトが返されます。この場合、DDBean および DeployableObject を直接扱う必要がありません。このオブジェクトでは以下の情報が提供されます。

デプロイメント記述子は、内部的には記述子 Bean のツリー (個々の記述子要素を表す型付きの Java Bean オブジェクトのツリー) として表現されます。こうした Bean ツリーを使用すると、より一般的な DDBean および DConfigBean オブジェクトを扱うよりも簡単に処理できます。各モジュールの記述子 Bean ツリーには、関連する各モジュールの WebLogicDDBeanRoot および WebLogicDConfigBeanRoot オブジェクトから、それらのオブジェクトにある getDescriptorBean メソッドを介して直接アクセスできます。WebLogicDConfigBean から取得した Bean ツリーを変更すると、関連付けられた DConfigBean (従ってアプリケーションのデプロイメント プラン) を変更するのと同じ結果が得られます。

デプロイメント プランを作成する

weblogic.PlanGenerator を使用すると、アプリケーション内にある標準記述子および WebLogic Server 記述子に基づいてデプロイメント プランのテンプレートを作成できます。結果として作成されるプランによりアプリケーションの構造が記述され、すべてのデプロイメント記述子が特定されて、アプリケーションのコンフィグレーション可能なプロパティのサブセットがエクスポートされます。プロパティがエクスポートされると、そのプロパティは WebLogic Server コンソールのようなツールに対して公開されます。そうしたツールではプランを使用して、管理者がプロパティに適切な値を指定できるように支援します。PlanGenerator ツールからは、デフォルトではアプリケーションの依存関係、つまり正常なデプロイメントに必要なプロパティのみがエクスポートされます。この動作は以下のオプションの 1 つを用いてオーバーライドできます。

 

フッタのナビゲーションのスキップ  ページの先頭 前 次