Cosminexus 機能解説

[目次][用語][索引][前へ][次へ]

7.3.1 展開ディレクトリ形式の概要

ここでは,展開ディレクトリ形式の概要,デプロイおよびアンデプロイの方法について説明します。

<この項の構成>
(1) 展開ディレクトリ形式のJ2EEアプリケーションとは
(2) J2EEアプリケーションのデプロイ
(3) J2EEアプリケーションのアンデプロイ

(1) 展開ディレクトリ形式のJ2EEアプリケーションとは

J2EEサーバ上で実行できるアプリケーションの形式の一つに,展開ディレクトリ形式のJ2EEアプリケーションがあります。展開ディレクトリ形式のJ2EEアプリケーションは,EJBやサーブレットなどのアプリケーションの実体を,J2EEサーバの外部にある一定のルールに従ったファイル/ディレクトリに持つアプリケーションです。アプリケーションディレクトリというルートディレクトリを作成し,アプリケーションディレクトリ下に,EJB-JAR,Webアプリケーションなどの構成要素が格納されていれば,J2EEアプリケーションとして動作できます。アプリケーションディレクトリについては,「7.3.2 アプリケーションディレクトリの構成」を参照してください。

展開ディレクトリ形式のJ2EEアプリケーションを次の図に示します。

図7-2 展開ディレクトリ形式のJ2EEアプリケーション

[図データ]

展開ディレクトリ形式のJ2EEアプリケーションが保持するのは,DDとアプリケーションディレクトリへのパス情報です。J2EEサーバの作業ディレクトリ下に,EJB-JAR,Webアプリケーションなどの構成要素を保持しません。

展開ディレクトリ形式のJ2EEアプリケーションの特長について説明します。

(a) J2EEアプリケーションの入れ替えの容易化

展開ディレクトリ形式のJ2EEアプリケーションでは,構成要素をEAR形式にアーカイブする必要はありません。このため,アーカイブ形式のJ2EEアプリケーションと比べて,少ない手順でJ2EEアプリケーションの入れ替えができます。

また,リロード機能を使用することで,さらに少ない手順でJ2EEアプリケーションを動的に入れ替えられます。リロード機能では,J2EEアプリケーションを構成するファイルの更新を検知し,更新したJ2EEアプリケーションをリロードします。リロード機能を使用することで,J2EEサーバを再起動することなく,デプロイ済みのサーブレット,JSPやEJB-JARを動的に入れ替えられるようになります。リロード機能については,「7.5 J2EEアプリケーションの更新検知とリロード」を参照してください。

(b) 複数のJ2EEサーバでのアプリケーションディレクトリの共有

展開ディレクトリ形式のJ2EEアプリケーションでは,複数のJ2EEサーバでアプリケーションディレクトリを共有できます。

例えば,アーカイブ形式のJ2EEアプリケーションを使用している場合に,同じ内容のJ2EEアプリケーションを複数のJ2EEサーバで実行させるときは,複数のJ2EEサーバ上に,EARファイル/ZIPファイルをそれぞれ配置する必要があります。また,インポートしたJ2EEアプリケーションを入れ替える場合には,J2EEサーバの数だけ,再インポートや再デプロイが必要になります。

しかし,展開ディレクトリ形式のJ2EEアプリケーションでは,DDとアプリケーションディレクトリへのパス情報だけを保持するため,アプリケーションディレクトリ以下にあるEJB-JAR,Webアプリケーションなどの構成要素を,複数のJ2EEサーバで共有できます。

例えば,J2EEサーバをクラスタ構成で配置している場合にそれぞれのJ2EEサーバで同じJ2EEアプリケーションを使用するときは,同一のディレクトリをアプリケーションディレクトリとして指定できます。同一のアプリケーションディレクトリを参照しているため,J2EEアプリケーションに変更が発生した場合には,そのアプリケーションディレクトリでクラスファイルなどを更新するだけで,すべてのJ2EEアプリケーションの入れ替えができるようになります。アプリケーションディレクトリの共有の例を次の図に示します。

図7-3 アプリケーションディレクトリの共有の例

[図データ]

なお,J2EEアプリケーションを共有する場合には,それぞれのJ2EEサーバから参照できる環境(共有ディスク装置など)にアプリケーションディレクトリを配置してください。

(2) J2EEアプリケーションのデプロイ

展開ディレクトリ形式のJ2EEアプリケーションをJ2EEサーバ内にインポートしてクライアントから実行可能な状態にするためには,デプロイが必要です。J2EEアプリケーションを実行するJ2EEサーバに,展開ディレクトリ形式のJ2EEアプリケーションをインポートしてください。アプリケーション開始時に生成される各クラスローダは,クラスパスとしてアプリケーションディレクトリを保持して動作します。

(3) J2EEアプリケーションのアンデプロイ

展開ディレクトリ形式のJ2EEアプリケーションを削除する場合は,展開ディレクトリ形式のJ2EEアプリケーションに対してアンデプロイを実行します。アンデプロイの処理完了後に,J2EEサーバへのJ2EEアプリケーションの登録が解除されます。なお,アプリケーションディレクトリは削除されません。