Sun Java System Application Server Enterprise Edition 8.2 配備計画ガイド

J2EE プラットフォームの概要

Application Server は、多層エンタープライズアプリケーションを開発するための標準規格を定義する Java 2 Enterprise Edition (J2EE) 1.4 テクノロジを実装します。J2EE プラットフォームは、標準化されたモジュール型コンポーネントに基づく開発を可能にし、それらのコンポーネントに対するサービスの完全なセットを提供し、複雑なプログラミング不要でアプリケーション動作の細部の多くを自動的に処理することによって、エンタープライズアプリケーションを簡素化します。

J2EE アプリケーション

J2EE アプリケーションは、JavaServer Pages (JSP)、Java サーブレット、Enterprise JavaBeans (EJB) モジュールなどのコンポーネントで構成されます。ソフトウェア開発者はこれらのコンポーネントを利用して、大規模分散アプリケーションを構築できます。開発者は J2EE アプリケーションを、zip ファイルに似た Java アーカイブ (JAR) ファイルにパッケージ化して本番サイトに配布できます。管理者は、J2EE JAR ファイルを 1 つ以上のサーバーインスタンス (またはインスタンスのクラスタ) に配備することにより、J2EE アプリケーションを Application Server 上にインストールします。

次の図は、以降の節で説明する J2EE プラットフォームのコンポーネントを示したものです。

J2EE プラットフォームのコンポーネント

コンテナ

J2EE のアプリケーションモデルでは、エンタープライズアプリケーションを 3 つの基本部品 (コンポーネント、コンテナ、およびコネクタ) に分割します。アプリケーション開発者が主に扱うのはコンポーネントであり、システムベンダーは、複雑さを隠蔽し移植性を促進するコンテナおよびコネクタを実装します。コンテナはクライアントとコンポーネントの間を仲介し、トランザクションサポートやリソースプーリングなどのサービスをその両者に透過的に提供します。コンテナの仲介により、コンポーネントの動作の多くを、プログラムコードで指定するのではなく配備時に指定することが可能になります。

Application Server では、各サーバーインスタンスには 2 種類のコンテナ (Web コンテナと EJB コンテナ) が含まれます。コンテナは、J2EE コンポーネントのセキュリティーやトランザクション管理などのサービスを提供する実行時環境です。JavaServer Pages (JSP) やサーブレットなどの Web コンポーネントは、Web コンテナ内で実行されます。Enterprise JavaBeans は EJB コンテナ内で実行されます。

J2EE サービス

J2EE プラットフォームのサービスは、アプリケーションプログラミングを簡素化します。また、配備環境で利用可能なリソースを使用するために、コンポーネントやアプリケーションを配備時にカスタマイズすることを可能にします。この節では、J2EE プラットフォームのネームサービス、配備サービス、トランザクションサービス、およびセキュリティーサービスの概要を示します。J2EE プラットフォームは、次のようなサービスをアプリケーションに対して提供します。

Web サービス

クライアントは HTTP、RMI/IIOP、JMS 経由でのアクセスに加えて、リモート Web サービスとして J2EE 1.4 アプリケーションにアクセスできます。Web サービスは、Java API for XML-based RPC (JAX-RPC) を使用して実装されます。J2EE アプリケーションは Web サービスに対するクライアントとして動作することもでき、これはネットワークアプリケーションで典型的な構成です。

Web Services Description Language (WSDL) は、Web サービスのインタフェースを記述する XML 形式です。Web サービスのコンシューマは、WSDL ドキュメントを動的に解析して、Web サービスが提供する操作とその実行方法を特定できます。Application Server では、ほかのアプリケーションが Java API for XML Registries (JAXR) を経由してアクセス可能なレジストリを使用して、Web サービスインタフェースの記述を分散させています。

クライアントアクセス

クライアントは複数の方法で J2EE アプリケーションにアクセスできます。ブラウザクライアントは、ハイパーテキストトランスファープロトコル (HTTP) を使用して Web アプリケーションにアクセスします。セキュリティー保護された通信のために、ブラウザでは、Secure Sockets Layer (SSL) を使用する HTTPS プロトコルを利用します。

アプリケーションクライアントコンテナ内で動作するリッチクライアントアプリケーションは、オブジェクトリクエストブローカ (ORB)、リモートメソッド呼び出し (RMI) および (IIOP) internet inter-ORB protocol、または IIOP/SSL (セキュリティー保護された IIOP) を使用して Enterprise JavaBeans (EJB) を直接検索し、アクセスできます。そのようなアプリケーションは、HTTP/HTTPS、JMS、および JAX-RPC を使用してアプリケーションや Web サービスにアクセスできます。それらのアプリケーションでは JMS を使用して、アプリケーションおよびメッセージ駆動型 Bean との間でメッセージを送受信します。

J2EE Web サービスにアクセスできるのは、WS-I Basic Profile (Web サービス相互運用性基本プロファイル) に準拠したクライアントです。WS-I は J2EE 標準の根幹的な部分であり、Web サービスの相互運用性について定義しています。WS-I に準拠することにより、サポートされているすべての言語で記述されたクライアントが、Application Server に配備された Web サービスにアクセスできます。

最適なアクセス機構は、個別のアプリケーションおよび予想されるトラフィック量によって異なります。Application Server は、HTTP、HTTPS、JMS、IIOP、および IIOP/SSL のそれぞれに対応した設定が可能なリスナーをサポートします。各プロトコルに対して複数のリスナーを設定し、スケーラビリティーと信頼性を高めることができます。

J2EE アプリケーションは、ほかのサーバー上に配備された EJB モジュールなどの J2EE コンポーネントのクライアントとしても動作でき、これらのアクセス機構のうち任意のものを使用できます。

外部システムとリソース

J2EE プラットフォームでは、外部のシステムのことを「リソース」と呼びます。たとえば、データベース管理システムは JDBC リソースです。各リソースは、その Java Naming and Directory Interface (JNDI) 名によって一意に識別されます。アプリケーションは、次の API とコンポーネントを通して外部システムにアクセスします。