JBoss EAP の紹介
Red Hat JBoss Enterprise Application Platform 7.1 向け
概要
第1章 一般概念の概要
Red Hat JBoss Enterprise Application Platform の設定方法やデプロイ方法を理解する前に、重要な概念の一部を理解する必要があります。
1.1. Java
Java は、オブジェクト指向、クラス、および同時実行などの概念を取り入れるプログラミグ言語およびコンピューティングプラットフォームです。Java アプリケーションはバイトコードにコンパイルされ、Java 仮想マシン (JVM) 内で実行されます。
1.2. アプリケーションサーバー
アプリケーションサーバーは、web アプリケーションを実行する環境を提供するソフトウェアです。また、ほとんどのアプリケーションサーバーは、環境で実行されている web アプリケーションに API で機能を提供します。たとえば、アプリケーションサーバーはデータベースへ接続するための API を提供できます。
1.3. Java EE 7
Java EE (Java Platform, Enterprise Edition) は、Java アプリケーションを実行および開発するための API とランタイム環境を両方提供する、標準ベースのエンタープライズプラットフォームです。この目的は、簡単に消費できるフレームワークに豊富なエンタープライズ機能を提供してボイラープレートを排除し、技術的な負担を削減することで、開発者の生産性を向上することです。Java EE を構成するフレームワークの組み合わせは厳しくテストされています。JSR 342 をベースとした Java EE 7 は Java EE 6 を引き継ぐプラットフォームで、API によるコンテナーサービスへのアクセスをより容易にし、HTML 5 を含む新興の web 技術のサポートを拡大することに焦点を置いています。
Java EE 7 は API の複数のプロファイル (サブセット) をサポートします。Java EE 7 の仕様はフルプラットフォームおよび Web プロファイルを定義します。
Java EE の Web プロファイル
Java EE 7 の Web プロファイルは web アプリケーションの開発用に設計され、Java EE 7 関連の web ベースの技術によって定義される API のサブセットをサポートします。
Java EE のフルプラットフォーム
Java EE 7 のフルプラットフォームには、Java EE 7 によって定義される API がすべて含まれています (Web プロファイルのすべての項目を含む)。EJB、メッセージングアプリケーション、および web サービス (web アプリケーションではなく) を開発する場合は、フルプラットフォームを使用してください。
第2章 JBoss EAP の概要
2.1. JBoss EAP 7 について
Red Hat JBoss Enterprise Application Platform (JBoss EAP) 7.1 は、Java Enterprise Edition (Java EE ) 7 のフルプラットフォームおよび Web プロファイル仕様の認定実装です。
JBoss EAP のメジャーバージョンは、WildFly コミュニティープロジェクトの機能の完全性が希望のレベルに達した時点で、このコミュニティープロジェクトからフォークされます。その後、テストと製品化が長期間行われ、実稼働向けに安定化、認定、および改良されます。JBoss EAP メジャーバージョンのライフタイムの間、選択された機能はコミュニティープロジェクトからチェリーピックおよびバックポートされ、同じメジャーバージョン内の機能が強化されたマイナーリリースに追加されます。たとえば、JBoss EAP 7.1 は WildFly 11 の作業ブランチからフォークされます。
JBoss EAP は、高可用性クラスタリング、メッセージング、分散キャッシュなど、事前設定されたオプションを機能に提供します。これにより、ユーザーは JBoss EAP が提供するさまざまな API やサービスを使用して、アプリケーションを書き込み、デプロイ、および実行することもできます。
JBoss EAP には、必要時のみにサービスを有効にできるモジュラー後続が含まれているため、起動速度が改善されます。web ベースの管理コンソールと管理コマンドラインインターフェース (CLI) により、XML 設定ファイルを編集する必要がなく、タスクをスクリプト化および自動化する機能が追加されます。さらに、JBoss EAP には、セキュアでスケーラブルな Java EE アプリケーションを迅速に開発するための API と開発フレームワークが含まれています。
表2.1 JBoss EAP の機能
| 機能 | 説明 |
|---|---|
|
Java EE 7 準拠 |
Java Enterprise Edition 7 の フルプラットフォームおよび Web プロファイルは認定されています。 |
|
管理対象ドメイン |
複数のサーバーインスタンスと物理ホストを一元管理し、スタンドアロンサーバーは単一のサーバーインスタンスを許可します。設定、デプロイメント、ソケットバインディング、モジュール、拡張、およびシステムプロパティーをサーバーグループごとに管理します。アプリケーションセキュリティー (セキュリティードメインを含む) を一元的および簡単に管理します。 |
|
管理コンソールおよび管理 CLI |
新しいドメインまたはスタンドアロンサーバー管理インターフェースです。管理 CLI には、管理タスクをスクリプト化および自動化できるバッチモードも含まれています。JBoss EAP の XML 設定ファイルを直接編集することは推奨されません。 |
|
簡素化されたディレクトリーのレイアウト |
モジュールディレクトリーにはすべてのアプリケーションサーバーモジュールが含まれています。ドメインディレクトリーにはドメインデプロイメントのアーティファクトが含まれ、スタンドアロンディレクトリーにはスタンドアロンデプロイメントの設定ファイルが含まれています。 |
|
モジュラークラスローディングの仕組み |
モジュールは要求に応じてロードおよびアンロードされます。これにより、パフォーマンスの向上およびセキュリティーの強化が実現され、起動および再起動時間が短縮されます。 |
|
データソース管理の合理化 |
データベースドライバーは他のサービスと同様にデプロイされます。さらに、データソースは管理コンソールと管理 CLI を使用して作成および管理されます。 |
2.2. サブシステム
JBoss EAP にデプロイされたアプリケーションに公開された API と機能の多くは、サブシステムに分けられます。管理者は、アプリケーションの目的に応じてこれらのサブシステムを設定し、異なる動作を提供できます。たとえば、アプリケーションにデータベースが必要な場合、データソースを datasources サブシステムで設定することができ、その JBoss EAP サーバーまたはドメインへデプロイされた後にアプリケーションによるアクセスが可能になります。
2.3. 高可用性
JBoss EAP では、高可用性 (HA) とは、複数の JBoss EAP インスタンスが連携し、トラフィックの変動、サーバーの負荷、およびサーバーの障害に対してより堅牢なアプリケーションを提供することを言います。HA はスケーラビリティー、ロードバランシング、およびフォールトトラレンスなどの概念を取り入れます。
2.4. 操作モード
JBoss EAP は、機能と API をアプリケーションに提供する他に、強力な管理機能も備えています。これらの管理機能は、JBoss EAP の起動に使用される操作モードによって異なります。JBoss EAP は、個別のインスタンスの管理には スタンドアロンサーバー 操作モードを提供し、単一制御点からインスタンスのグループを管理するために 管理対象ドメイン を提供します。
第3章 例
以下の例は、JBoss EAP の動作と対象の環境を表しています。
3.1. 簡単な例

以下の例は簡単な JBoss EAP のセットアップを表しています。JBoss EAP インスタンスには 2 つのアプリケーションがデプロイされています。また、datasources サブシステムを使用してデータベースに接続するよう設定され、レガシー security サブシステムまたは elytron サブシステムのいずれかを使用できる Kerberos サーバーに接続するよう設定されています。これらの接続は、デプロイされたアプリケーションに公開されます。JBoss EAP インスタンスは undertow サブシステム経由でリクエストを処理し、これらのリクエストを適切なアプリケーションに転送します。アプリケーションは、JBoss EAP によって公開される API を使用してデータベースおよび Kerberos サーバーに接続し、実装されたビジネスロジックを実行します。実行完了後、アプリケーションは undertow サブシステム経由で応答を要求元に返信します。
3.2. 拡張された例

この例は、ロードバランサーまたは web サーバーのいずれかを使用する管理対象ドメインの 3 つの JBoss EAP インスタンスが関係するより複雑なセットアップを表しています。また、3 つのインスタンスは、mod_cluster を使用するロードバランシングと Infinispan を使用するセッションレプリケーションを介して高可用性をサポートするよう設定されています。3 つの JBoss EAP インスタンスにはすべて web アプリケーション、web サービス、および EJB がデプロイされています。1 つの JBoss EAP インスタンスには、 messaging-activemq サブシステムより設定された JMS キューがあります。3 つの JBoss EAP インスタンスはすべてデータソースを介してデータベースに接続します。また、レガシー security サブシステムまたは elytron サブシステムのいずれかを使用して LDAP サーバーに接続します。さらに、1 つの JBoss EAP インスタンスは、messaging-activemq サブシステム経由で外部メッセージブローカーに接続するよう設定されています。設定済みのこれらの接続は、対応するインスタンスにデプロイされたアプリケーション、webサービス、EJB、および JMS キューに公開されます。
アプリケーション、web サービス、または EJB 向けの受信リクエストは、すべて最初にロードバランサーまたは web サーバーによって受信されます。設定したロードバランシングアルゴリズムと各 JBoss EAP インスタンスによって提供される情報を基に、web サーバーまたはロードバランサーはそのリクエストを適切な JBoss EAP インスタンスに転送します。JBoss EAP インスタンスは undertow サブシステム経由でリクエストを処理し、これらのリクエストを適切なアプリケーションに転送します。アプリケーションは JBoss EAP によって公開される API を使用してデータベースおよび Kerberos サーバーに接続し、実装されたビジネスロジックを実行します。実行完了後、アプリケーションは undertow サブシステム経由で応答を要求元に返信します。セッション情報などの永続化されない情報は、infinispan サブシステム経由で JBoss EAP インスタンスの間で伝搬されます。
Revised on 2018-04-16 00:13:29 EDT
