Interstage Java EE 7はJava SE環境をベースとして、企業規模の多階層サービスの実装に必要とされるさまざまな機能を提供します。また、アプリケーションの移植性を最大限に向上させるために、オープンソースソフトウェアであるGlassFish v4.1をベースとしています。
以下にJava EE 7の構成について説明します。
Java EE 7コンポーネント
Interstage Java EE 7は、Java EEアプリケーションクライアント、Servlet/JSP、Enterprise JavaBeanという3つのアプリケーションコンポーネントの実行環境を提供します。これらを、Java EE 7コンポーネントと呼びます。Java EE 7コンポーネントは、配備という操作を行うことで実行環境にセットアップされます。
Java EEアプリケーションクライアントは、アプリケーションクライアントコンテナ上で実行するJavaアプリケーションです。クライアントからサーバ環境のアプリケーションにアクセスします。
Servlet/JSPは、WebブラウザからHTTPプロトコル、または、よりセキュアなHTTPSプロトコルでWebサーバに送信されたリクエストで動作します。また、Webサービスとして公開することもできます。Servlet、JSPまたはJSFを使用して作成されたページ、Webフィルタ、Webイベントリスナーを総称してWebコンポーネントと呼びます。
また、WebSocketを利用することにより、サーバ・クライアント双方向での通信を実施することができます。
Enterprise JavaBeans(EJB)は、サーバで動作するアプリケーションです。Servletからアクセスする、または、IIOPプロトコルによりORB(Object Request Broker)を介してクライアントから直接アクセスすることもできます。クライアントからの要求を受けたEnterprise JavaBeansにデータベースアクセス処理などの実際のビジネスロジックを実装します。Webサービスとして公開することや、非同期メッセージを受信するMessage-driven Beanも使用できます。
リモート呼び出しが可能なRemoteインタフェースと、同一Java VM内でのみ呼び出し可能なLocalインタフェースが使用できます。Remoteインタフェースを使用した場合においても同一Java VM内で呼び出した場合にはORBが自動的にIIOP通信を介さずにアプリケーションを呼び出し、不要なネットワーク通信が抑止されるため、性能が最適化されます。
また、クライアントアプリケーションとして以下のアプリケーションコンポーネントの実行も可能です。
Java SEスタンドアロンアプリケーションは、スタンドアロンクライアント(javaコマンドで起動されたJava SE実行環境)上で実行するJavaアプリケーションです。クライアントからサーバ環境のアプリケーションにアクセスします。ただし、Java EEアプリケーションクライアントと異なり依存性の注入(Dependency Injection)やdeployment descriptorファイル(application-client.xml)の利用ができません。このため、汎用的なアプリケーションではないため、Java EEアプリケーションクライアントの利用が推奨されます。
注意
アプレットからJava EE 7が提供するAPI(JNDI APIやEnterprise JavaBeansの呼び出し)は実行できません。
コンテナ
コンテナは、Java EE 7コンポーネントのセキュリティやトランザクションを管理するサービスを提供する実行環境です。ServletやJSPなどのWebコンポーネントは、Webコンテナで実行されます。Enterprise Java Beansは、EJBコンテナ内で実行されます。Java EEアプリケーションクライアントは、アプリケーションクライアントコンテナで実行されます。
Interstage Java EE 7は、WebコンテナとEJBコンテナの上位に位置づけられる論理的な概念をIJServerクラスタと呼びます。
サービス
Java EE 7コンポーネントは、コンテナが提供する各種サービスを使用できます。Java EE 7コンポーネントは、deployment descriptorというJava EE 7コンポーネントごとの定義ファイルに定義を行うか、または、Dependency Injectionを使用することで、コンテナが提供するネーミングサービス、セキュリティサービス、トランザクションサービスなどの各種サービスを使用できます。
API
Java EE 7実行環境は、コンテナが提供する各種サービスの動作を制御するAPIや外部の各種システムにアクセスできるAPIを提供します。Java EE 7コンポーネントは、リソースと呼ばれるオブジェクトを介して外部システムにアクセスします。ツールを使用してリソースを定義することで、アプリケーションコンポーネントからAPIを使用してリソースにアクセスできます。APIには、データベースにアクセスするJDBC、EISにアクセスするconnector、非同期メッセージの送受信を行うJMS、メールサーバにメールの送受信を行うJava Mailなどが用意されています。
ツール
Interstage Java EE 7は、アプリケーションコンポーネントの配備、サービス設定、リソース定義などの設定を行うために各種コマンドを提供しています。
各種コマンド
asadminコマンドなど提供する各種コマンドを使用することで、Java EE 7実行環境の各種設定を行うことができます。