本製品のGlassFishは、Java SE環境をベースとして企業規模の多階層サービスの実装に必要とされる様々な機能を提供します。
また、アプリケーションの移植性を最大限に向上させるために、Eclipse GlassFishをベースとし、当社独自の機能を追加しています。
Eclipse GlassFishとの差異については「第2章 Eclipse GlassFishとの差異」を参照してください。
また、本書はEclipse GlassFishのドキュメントを参照しながら読むことを前提として記述しています。
GlassFishの機能の詳細な説明についてはGlassFishのドキュメントを参照してください。
本書は、GlassFishのドキュメントに記載されていない情報や本製品独自機能などについて説明しています。
関連ドキュメント
Jakarta EE Core Profile規約
https://jakarta.ee/specifications/coreprofile/11/
(個別の規約についてはhttps://jakarta.ee/specifications/を参照してください)
ベースとなるEclipse GlassFishのバージョン
Eclipse GlassFish 8.0.0-M9 をベースとしています。
利用可能なJakarta EE技術
本製品は、Jakarta EE Core Profile 11規約に準拠したアプリケーションの実行環境GlassFishを提供します。
また、Jakarta EE Core Profile 11に加えて、以下のコンポーネント仕様を利用したアプリケーションの動作が可能です。
Jakarta Activation 2.1
Jakarta Annotations 3.0
Jakarta Authentication 3.1
Jakarta Authorization 3.0
Jakarta Batch 2.1
Jakarta Concurrency 3.1
Jakarta Connectors 2.1
Jakarta Contexts and Dependency Injection 4.1
Jakarta Debugging Support for Other Languages 2.0
Jakarta Dependency Injection 2.0
Jakarta Enterprise Beans 4.0(注1)(注2)
Jakarta Enterprise Web Services 2.0(注3)
Jakarta Expression Language 6.0
Jakarta Faces 4.1
Jakarta Interceptors 2.2
Jakarta JSON Processing 2.1
Jakarta JSON Binding 3.0
Jakarta Mail 2.1
Jakarta Managed Beans 2.0
Jakarta Messaging 3.1
Jakarta Pages 4.0
Jakarta Persistence 3.2
Jakarta RESTful Web Services 4.0
Jakarta Security 4.0
Jakarta Servlet 6.1
Jakarta SOAP with Attachments 3.0(注3)
Jakarta Standard Tag Library 3.0
Jakarta Transactions 2.0
Jakarta Validation 3.1
Jakarta WebSocket 2.2
Jakarta XML Binding 4.0(注3)
Jakarta XML Web Services 4.0(注3)
注1)Jakarta EE Platformから削除された以下の機能は使用できません。
Embeddable EJB Container
Entity Beans
注2)Enterprise Beans 2.x APIは互換のために提供されている機能であり、将来的に削除される可能性があるため、使用を推奨しません。
注3)互換のために提供されている機能であり、将来的に削除される可能性があるため、使用を推奨しません。
注意
Jakarta Dataは使用できません。
GlassFishの構成
GlassFishは、Jakarta EEアプリケーションクライアント、Servlet/JSP/WebSocket、Enterprise JavaBean等のアプリケーションコンポーネントの実行環境を提供します。これらを、Jakarta EEコンポーネントと呼びます。Jakarta EEコンポーネントは、配備という操作をすることで実行環境にセットアップされます。
Jakarta EEアプリケーションクライアント
Jakarta EEアプリケーションクライアントは、アプリケーションクライアントコンテナ上で実行するJavaアプリケーションです。クライアントからサーバ環境のアプリケーションにアクセスします。
Servlet/JSP/WebSocket
Servlet/JSPは、WebブラウザからHTTPプロトコル、または、よりセキュアーなHTTPSプロトコルでWebサーバに送信されたリクエストで動作します。また、Webサービスとして公開もできます。Servlet、JSPまたはJSFを使用して作成されたページ、Webフィルター、Webイベントリスナーを総称してWebコンポーネントと呼びます。
また、WebSocketを利用するという方法で、サーバ・クライアント双方向での通信を実施できます。
Enterprise JavaBeans(EJB)
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 SEスタンドアロンアプリケーションは、スタンドアロンクライアント(javaコマンドで起動されたJava SE実行環境)上で実行するJavaアプリケーションです。クライアントからサーバ環境のアプリケーションにアクセスします。ただし、Jakarta EEアプリケーションクライアントと異なり依存性の注入(Dependency Injection)やdeployment descriptorファイル(application-client.xml)の利用ができません。このため、汎用的なアプリケーションではないため、Jakarta EEアプリケーションクライアントの利用が推奨されます。
注意
アプレットからJakarta EEが提供するAPI(JNDI APIやEnterprise JavaBeansの呼び出し)は実行できません。
コンテナは、Jakarta EEコンポーネントのセキュリティやトランザクションを管理するサービスを提供する実行環境です。ServletやJSPなどのWebコンポーネントは、Webコンテナで実行されます。Enterprise Java Beansは、EJBコンテナ内で実行されます。Jakarta EEアプリケーションクライアントは、アプリケーションクライアントコンテナで実行されます。
GlassFishは、WebコンテナとEJBコンテナの上位に位置づけられる論理的な概念をGlassFish Serverクラスターと呼びます。
Jakarta EEコンポーネントは、コンテナが提供する各種サービスを使用できます。Jakarta EEコンポーネントは、deployment descriptorというJakarta EEコンポーネントごとの定義ファイルに定義をするか、または、Dependency Injectionを使用することで、コンテナが提供するネーミングサービス、セキュリティサービス、トランザクションサービスなどの各種サービスを使用できます。
GlassFishは、コンテナが提供する各種サービスの動作を制御するAPIや外部の各種システムにアクセスできるAPIを提供します。Jakarta EEコンポーネントは、リソースと呼ばれるオブジェクトを介して外部システムにアクセスします。ツールを使用してリソースを定義することで、アプリケーションコンポーネントからAPIを使用してリソースにアクセスできます。APIには、データベースにアクセスするJDBC、EISにアクセスするconnector、非同期メッセージの送受信をするJMS、メールサーバーにメールの送受信をするJakarta Mailなどが用意されています。
GlassFishは、ライフサイクルモジュールの実行環境を提供します。ライフサイクルモジュールは、GlassFish Serverクラスターの起動・通常停止時のライフサイクルイベント発生時に呼び出されるJavaアプリケーションです。ライフサイクルモジュールは、GlassFish Serverクラスターの起動時に初期化され、ライフサイクルの各フェーズでイベント通知を受け取ります。ライフサイクルモジュールを作成、設定することで、データベースの初期化/回収処理やEJB呼出しなどの処理が行えます。
詳細はEclipse GlassFishのドキュメントに含まれる「Application Development Guide」の「Developing Lifecycle Listeners」を参照してください。
ツール
GlassFishは、アプリケーションコンポーネントの配備、サービス設定、リソース定義などの設定をするために各種コマンドを提供しています。
asadminコマンドなど提供する各種コマンドを使用することで、GlassFishの各種設定ができます。