この節では、J2EE アプリケーションの移行の必要性と、移行する必要のある特定のファイルについて説明します。移行が成功すると、J2EE アプリケーションが Application Server に再配備されます。
ここでは、次の内容について説明します。
Sun Java System Application Server 8.2 (以後 Application Server と呼びます) は、J2EE v1.4 に準拠したサーバーで、Java コミュニティーによって開発されたコンポーネント標準に基づいています。これとは対照的に、Sun Java SystemApplication Server 7 (Application Server 7) は J2EE v1.3 準拠のサーバーで、Sun ONE Application Server 6.x (Application Server 6.x) は J2EE v1.2 準拠のサーバーです。これら 3 つの J2EE バージョン間には、J2EE アプリケーションのコンポーネント API に大きな違いがあります。
次の表は、J2EE v1.4 準拠の Sun Java System Application Server 8.2、J2EE v1.3 準拠の Sun ONE Application Server 7、および J2EE v1.2 準拠の Sun ONE Application Server 6.x によって使用されるコンポーネント API の違いを示したものです。
表 3–1 J2EE コンポーネントの API に関する Application Server バージョン間の比較
コンポーネント API |
Sun ONE Application Server 6.x |
Sun Java System Application Server 7 |
Sun Java System Application Server 8.2 |
---|---|---|---|
JDK |
1.2.2 |
1.4 |
1.4 |
サーブレット |
2.2 |
2.3 |
2.4 |
JSP |
1.1 |
1.2 |
2.0 |
JDBC |
2.0 |
2.0 |
2.1、3.0 |
「EJB」 |
1.1 |
2.0 |
2.0 |
JNDI |
1.2 |
1.2 |
1.2.1 |
JMS |
1.0 |
1.1 |
1.1 |
JTA |
1.0 |
1.01 |
1.01 |
J2EE は、標準化されたモジュール化コンポーネントに基づき、これらのコンポーネントに対するサービスをすべて提供し、多数の詳細なアプリケーション動作を複雑なプログラミングなしで自動的に処理することで、エンタープライズアプリケーションの開発を簡略化します。J2EE v1.4 アーキテクチャーには、多くのコンポーネント API が含まれています。主な J2EE コンポーネントには次のようなものがあります。
クライアントアプリケーション
Web アプリケーション
EJB (Enterprise Java Beans)
コネクタ
EAR (Enterprise Application Archive)
J2EE コンポーネントは別個にパッケージ化されており、配備用の J2EE アプリケーションにバンドルされています。各コンポーネント、その関連ファイル (GIF および HTML ファイル、またはサーバー側ユーティリティークラス)、および配備記述子は、モジュール内に組み込まれて J2EE アプリケーションに追加されています。J2EE アプリケーションは、1 つ以上のエンタープライズ Bean、Web、またはアプリケーションクライアントコンポーネントモジュールによって構成されています。最終的なエンタープライズソリューションは、設計要件に従って、J2EE アプリケーションを 1 つだけ使用することも、複数で構成することもできます。
J2EE アプリケーションと各モジュールには、それぞれ独自の配備記述子があります。配備記述子は .xml という拡張子の付いた XML ドキュメントで、ここにはコンポーネントの配備設定が記述されています。
J2EE アプリケーションとそのすべてのモジュールは、EAR (Enterprise Application Archive) ファイルで提供されます。EAR ファイルは、.ear という拡張子の付いた標準の JAR (Java Archive) ファイルです。ear extension. EAR ファイルには EJB JAR ファイル、アプリケーションクライアント JAR ファイル、WAR (Web Archive) ファイルのいずれか、またはすべてが格納されています。
J2EE の詳細については、次の内容を参照してください。
J2EE 仕様はアプリケーションの要件を広く網羅してはいますが、現在も進化の途上にある標準です。アプリケーションの一部が含まれていなかったり、実装の詳細がアプリケーションプロバイダの裁量に委ねられている部分もあります。
これによって、アプリケーションサーバーの実装に違いが生じたり、アプリケーションサーバー上の J2EE コンポーネントの配備方法にも違いが生じています。特定のアプリケーションサーバー製品で使用可能な一連の設定および配備ツールによっても、製品の実装方法の違いが発生します。
仕様そのものが絶え間なく進化するため、アプリケーションプロバイダーは困難に直面します。また、それぞれのコンポーネント API も進化の途上にあります。このため、製品によって準拠の度合いにばらつきが発生しています。特に、Application Server などの新しい製品では、他の確立されたアプリケーションサーバープラットフォーム上に配備された J2EE アプリケーションコンポーネント、モジュール、およびファイル間の相違点に取り組む必要があります。こうした相違点に対応するには、以前の J2EE 標準の実装詳細 (ファイル命名規則やメッセージ構文) 間のマッピングが必要になります。
さらに、製品プロバイダは通常、追加の機能やサービスを製品とバンドルします。これらの機能は、カスタム JSP タグまたは独自の Java API ライブラリとして提供されます。残念ながら、これらの独自機能を搭載すると、アプリケーションの移植性は失われてしまします。
J2EE アプリケーションは、移行の対象となる次のファイルカテゴリで構成されています。
配備記述子 (XML ファイル)
独自の API を含む JSP ソースファイル
独自の API を含む Java ソースファイル
配備を実行するには、スタンドアロンのエンタープライズ Bean (EJB、JAR ファイル)、フロントエンドの Web コンポーネント (WAR ファイル)、およびエンタープライズアプリケーション (EAR ファイル) の配備記述子を指定します。配備記述子は、J2EE コンポーネントまたはアプリケーションのすべての外部依存を解決するために使用されます。配備記述子の J2EE 仕様 は、すべてのアプリケーションサーバー製品間で共通です。ただしこの仕様では、アプリケーションに関係するコンポーネントの配備状況のいくつかは、製品の実装に依存したままになっています。
J2EE では、特別なカスタムタグを追加することで JSP の拡張方法を指定します。製品ベンダーは、開発者の作業の一部を簡略化するために、製品内にいくつかのカスタム JSP 拡張を含めています。しかしこうした独自のカスタムタグを使用すると、JSP ファイルの移植性が失われてしまいます。さらに JSP は、他の Java ソースファイル内で定義されたメソッドも呼び出すことができます。独自の API を格納する JSP は、移植する前に書き換える必要があります。
Java ソースファイルは、EJB、サーブレット、またはその他のヘルパークラスの場合があります。EJB とサーブレットは、標準の J2EE サービスを直接呼び出すことができます。ヘルパークラス内で定義されたメソッドを呼び出すこともできます。Java ソースファイルは、アプリケーションのビジネスレイヤー (EJB など) をエンコードするために使用されます。ベンダーは、いくつかのサービスと独自の Java API を製品にバンドルしています。独自の Java API を使用することは、アプリケーションの移植性を失う大きな原因となります。J2EE は進化の途上にある標準なので、さまざまな製品がさまざまなバージョンの J2EE コンポーネント API をサポートする可能性があります。
Migration Tool for Sun Java System Application Server 8.2 (以後 Migration Tool と呼びます) は J2EE アプリケーションを他のサーバープラットフォームから Sun Java System Application Server 8.2 に移行します。
Sun Java System Application Server 8.2 では、次のソースプラットフォームがサポートされています。
Sun ONE Application Server 6.x
Sun Java System Application Server 7
Sun Java System Application Server 8.0/8.1
J2EE Reference Implementation Application Server (RI) 1.3、1.4 Beta1
WebLogic Application Server (WLS) 5.1、6.0、6.1、8.1
WebSphere Application Server (WAS) 4.0、5.x
Sun ONE Web Server 6.0
JBoss Application Server 3.0
TomCat Web Server 4.1
Migration Tool を使用すると、ソースコードを大きく変更することなしに、J2EE アプリケーションの Sun Java System Application Server 8.2 への移行を自動化できます。
このツールの主要な機能は次のとおりです。
アプリケーションサーバー固有の配備記述子の移行
選択したカスタム JSP (Java Server Pages) タグと独自 API の実行時サポート
選択した設定パラメータの Application Server における同等の機能による変換
移行されたアプリケーションをターゲットサーバーである Application Server に構築および配備するための、Ant ベースのスクリプトの自動生成
移行完了後の包括的な移行レポートの生成
Migration Tool は次の場所からダウンロードします。
http://java.sun.com/j2ee/tools/migration/index.html。
Java Application Verification Kit (AVK) for the Enterprise を使用すると、アプリケーションを構築し、そのアプリケーションが J2EE API を正しく使用していることを確認するためのテストを行ったり、特定のガイドラインや規則を使用して他の J2EE 互換アプリケーションサーバーに移行することができます。
Java Application Verification Kit (AVK) は次の場所からダウンロードします。
http://java.sun.com/j2ee/verified/ 。
ここでの配備とは、これまで旧バージョンの Sun の Application Server またはサードパーティーのアプリケーションサーバープラットフォームに配備されていた状態から移行されたアプリケーションの配備を指しています。
移行されたアプリケーションの配備については、『Sun Java System Application Server Enterprise Edition 8.2 Developer’s Guide 』を参照してください。Migration Tool for Sun Java System Application Server 8.2 (J2EE アプリケーション用) を使用してアプリケーションを移行したら、移行後または配備前のタスクを実行する必要があります。ここではその内容について説明します。また、移行されたアプリケーションを実行するために Application Server の準備を行う必要もあります。詳細については、http://java.sun.com/j2ee/tools/migration/doc/postinstall.htmlを参照してください。