JBoss EAP の紹介

Red Hat JBoss Enterprise Application Platform 7.3

サブシステムや操作モードなど、一般的な Red Hat JBoss Enterprise Application Platform の概念の説明

概要

本ドキュメントでは、Red Hat JBoss Enterprise Application Platform (JBoss EAP) の全般的な概要を説明します。また、本書は JBoss EAP のサブシステムや、異なる操作モードについても紹介します。

第1章 一般概念の概要

Red Hat JBoss Enterprise Application Platform の設定方法やデプロイ方法を理解する前に、重要な概念の一部を理解する必要があります。

1.1. Java

Java は、オブジェクト指向、クラス、および同時実行などの概念を取り入れたプログラミグ言語およびコンピューティングプラットフォームです。Java アプリケーションはバイトコードにコンパイルされ、Java 仮想マシン (JVM) 内で実行されます。

1.2. アプリケーションサーバー

アプリケーションサーバーは、Web アプリケーションを実行する環境を提供するソフトウェアです。また、ほとんどのアプリケーションサーバーは、環境で実行されている web アプリケーションに API で機能を提供します。たとえば、アプリケーションサーバーでは、データベースへ接続するための API を利用できます。

1.3. Jakarta EE 8

Eclipse Foundation によって管理されている Jakarta EE Platform 8 は、Jakarta EE アプリケーションをホストする標準プラットフォームとなっています。

Jakarta EE Platform 8 の詳細は、Jakarta EE Platform 8 仕様 を参照してください。

1.4. Java Enterprise Edition 8

Java Platform, Enterprise Edition (Java EE) は、Java アプリケーションの実行および開発を行うための API とランタイム環境を両方提供する、標準ベースのエンタープライズプラットフォームです。この目的は、簡単に消費できるフレームワークに豊富なエンタープライズ機能を提供してボイラープレートを排除し、技術的な負担を削減することで、開発者の生産性を向上することです。Java EE を設定するフレームワークの組み合わせは厳しくテストされています。

JSR 366 をベースとする Java EE 8 は Java EE 7 上に構築されます。本リリースでは主に、現在のアプリケーションに必要な API およびプログラミングモデルを向上することに焦点を置きました。Java EE (JSR 366) の仕様の他に、以下の仕様が Java EE で新規導入または更新されました。

  • JSR 250: Common Annotations 1.3
  • JSR 338: Java Persistence 2.2
  • JSR 356: Java API for WebSocket 1.1
  • JSR 365: Contexts and Dependency Injection (CDI) 2.0
  • JSR 367: The Java API for JSON Binding (JSON-B) 1.0
  • JSR 369: Java Servlet 4.0
  • JSR 370: Java API for RESTful Web Services (JAX-RS) 2.1
  • JSR 372: JavaServer Faces (JSF) 2.3
  • JSR 374: Java API for JSON Processing (JSON-P) 1.1
  • JSR 375: Java EE Security API 1.0
  • JSR 380: Bean Validation 2.0
  • JSR 919: JavaMail 1.6

1.5. Java EE から Jakarta EE への移行

Java Enterprise Edition 8 リリース後、Oracle は Java EE を Eclipse Foundation に移しました。段階的な転送プロセスの一環として、API コード、実装コード、およびテクノロジープレビューキット (TCK) コードが移されました。新しい認定プロセス Jakarta EE Specification Process (JESP) が設定され、Eclipse Foundation Technology Compatibility Kit ライセンスの新しい仕様ライセンスが作成されました。

この移行プロセスの一環として、既存の Java EE 仕様に対応するすべての Jakarta 仕様に対して新しい名前が作成されました。すべての新規の名前は Jakarta で始まり、その後に仕様の簡単な説明が続きます。JBoss EAP ドキュメントに記載されている Java EE 仕様名と対応する Jakarta EE 仕様の名前は、Java EE Specifications Relevant for JBoss EAP and the Corresponding Jakarta EE Specifications の項に記載されています。

その他のリソース

JBoss EAP と対応する Jakarta EE 仕様の Java EE 仕様 を参照してください。

1.6. JBoss EAP と対応する Jakarta EE 仕様の Java EE 仕様

表1.1 JBoss EAP と対応する Jakarta EE 仕様の Java EE 仕様

Java EE 8 仕様Java EE 8 省略形Jakarta EE 8 仕様

Java Servlet

 

Jakarta Servlet

JavaServer Faces

JSF

Jakarta Server Faces

Java API for WebSocket

 

Jakarta WebSocket

Concurrency Utilities for Java EE

 

Jakarta Concurrency

Interceptors

 

Jakarta Interceptors

Java Authentication Service Provider Interface for Containers

JASPIC

Jakarta Authentication

Java Authorization Contract for Containers

JACC

Jakarta Authorization

Java EE Security API

 

Jakarta Security

Java Message Service

JMS

Jakarta Messaging

Java Persistence API

JPA

Jakarta Persistence

Java Transaction API

JTA

Jakarta Transactions

Batch Applications for the Java Platform

JBatch

Jakarta Batch

JavaMail API

 

Jakarta Mail

Java EE Connector Architecture

JCA

Jakarta Connectors

Common Annotations for Java Platform

 

Jakarta Annotations

JavaBeans Activation Framework

JAF

Jakarta Activation

Bean Validation

JBV

Jakarta Bean Validation

Expression Language

JEL

Jakarta Expression Language

Enterprise JavaBeans 3.2

EJB

Jakarta Enterprise Beans

Java Architecture for XML Binding

JAXB

JAXB

Java API for JSON Binding

JSON-B

Jakarta JSON Binding

JavaServer Pages

JSP

Jakarta Server Pages

Java API for XML-Based Web Services

JAX-WS

Jakarta XML Web Services

Java API for RESTful Web Services

JAX-RS

Jakarta RESTful Web Services

JavaServer Pages Standard Tag Library

JSTL

Jakarta Standard Tag Library

Contexts and Dependency Injections

CDI

Jakarta Contexts and Dependency Injection

Java API for JSON Processing

JSON-P

Jakarta JSON Processing

Java API for XML-Based RPC

JAX-RPC

Jakarta XML RPC

Java API for XML Registries

JAXR

Jakarta XML Registries

第2章 JBoss EAP の概要

2.1. JBoss EAP 7 について

Red Hat JBoss Enterprise Application Platform (JBoss EAP) 7.3 は、Web Profile と Full Platform 仕様の両方に対応する Jakarta EE 8 対応実装です。また、Java Enterprise Edition (Java EE) 8 仕様の認定実装でもあります。JBoss EAP のメジャーバージョンは、WildFly コミュニティープロジェクトの機能の完全性が希望のレベルに達した時点で、このコミュニティープロジェクトからフォークされます。その後、テストと製品化が長期間行われ、実稼働向けに安定化、認定、および改良されます。JBoss EAP メジャーバージョンのライフタイムの間、選択された機能はコミュニティープロジェクトからチェリーピックおよびバックポートされ、同じメジャーバージョン内の機能が強化されたマイナーリリースに追加されます。

JBoss EAP は、高可用性クラスターリング、メッセージング、分散キャッシュなど、事前設定されたオプションを機能に提供します。これにより、ユーザーは JBoss EAP が提供するさまざまな API やサービスを使用して、アプリケーションを書き込み、デプロイ、および実行することもできます。

JBoss EAP には、必要時のみにサービスを有効にできるモジュラー後続が含まれているため、起動速度が改善されます。web ベースの管理コンソールと管理コマンドラインインターフェイス (CLI) により、XML 設定ファイルを編集する必要がなく、タスクをスクリプト化および自動化する機能が追加されます。さらに、JBoss EAP には、セキュアでスケーラブルな Java EE アプリケーションを迅速に開発するための API と開発フレームワークが含まれています。

表2.1 JBoss EAP の機能

機能説明

Jakarta EE 対応

Web Profile と Full Platform 仕様 の Jakarta EE 8 対応実装。

Java EE 準拠

Java Enterprise Edition 8 の フルプラットフォームおよび Web プロファイルは認定されています。

管理対象ドメイン

複数のサーバーインスタンスと物理ホストを一元管理し、スタンドアロンサーバーは単一のサーバーインスタンスを許可します。設定、デプロイメント、ソケットバインディング、モジュール、拡張、およびシステムプロパティーをサーバーグループごとに管理します。アプリケーションセキュリティー (セキュリティードメインを含む) を一元的および簡単に管理します。

管理コンソールおよび管理 CLI

新しいドメインまたはスタンドアロンサーバー管理インターフェイスです。管理 CLI には、管理タスクをスクリプト化および自動化できるバッチモードも含まれています。JBoss EAP の XML 設定ファイルの直接編集は推奨されません。

簡素化されたディレクトリーのレイアウト

モジュールディレクトリーにはすべてのアプリケーションサーバーモジュールが含まれています。ドメインディレクトリーにはドメインデプロイメントのアーティファクトが含まれ、スタンドアロンディレクトリーにはスタンドアロンデプロイメントの設定ファイルが含まれています。

モジュラークラスローディングの仕組み

モジュールは必要に応じてロードおよびアンロードされます。これにより、パフォーマンスの向上およびセキュリティーの強化が実現され、起動および再起動時間が短縮されます。

データソース管理の合理化

データベースドライバーは他のサービスと同様にデプロイされます。さらに、データソースは管理コンソールと管理 CLI を使用して作成および管理されます。

統一されたセキュリティーフレームワーク

Elytron では、スタンドアロンサーバーと管理対象ドメインの両方のアクセスを管理および設定できる単一の統合フレームワークを利用できます。JBoss EAP サーバーにデプロイされたアプリケーションのセキュリティーアクセスを設定するためにも使用できます。

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. 簡単な例

intro example simple

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

3.2. 広範な例

intro example expanded

この例は、ロードバランサーまたは 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 2023-01-28 12:57:51 +1000