Chapter 2. Introduction to Red Hat JBoss Enterprise Application Platform
Before you start working with Red Hat JBoss Enterprise Application Platform, you must understand some general components that are used by JBoss EAP.
When you understand these components, you can enhance both your use of JBoss EAP and your ability to configure JBoss EAP.
2.1. Uses of JBoss EAP
Red Hat JBoss Enterprise Application Platform (JBoss EAP) 8-beta is compatible with Jakarta EE 10 specifications, such as web profile and full-platform specifications. Each major version of JBoss EAP provides you with a tested, stabilized, and certified product.
JBoss EAP provides preconfigured options for features such as high-availability clustering, messaging, and distributed caching.
You can use JBoss EAP to deploy and run applications using supported APIs and services. Additionally, you can configure JBoss EAP to meet your needs, for example:
- You can customize JBoss EAP to include only the subsystems required to meet your needs.
- You can script and automate tasks by using the management command line interface (CLI) to avoid having to edit XML configuration files.
Major versions of JBoss EAP are forked from the WildFly community project at intervals when the community project has reached the desired feature completeness level. The major version is tested until it is stabilized, certified, and enhanced for production use.
During the lifecycle of a JBoss EAP major version, selected features are cherry-picked and back-ported from the community project into minor releases within the major release. Each minor release introduces feature enhancements to the major release.
- For more information about the WildFly community project, see the WildFly community page.
2.2. JBoss EAP features
JBoss EAP includes a variety of features to meet the needs of your organization.
Table 2.1. Features of JBoss EAP
Jakarta EE compatible
JBoss EAP 8.0 Beta is a Jakarta EE 10 compatible implementation for both web profile and full-platform specifications.
Provides centralized management of multiple server instances and physical hosts, compared to a standalone server that supports just a single server instance.
Provides server-group management of configuration, deployment, socket bindings, modules, extensions, and system properties.
Provides centralized and simplified management of application security and security domains.
Management console and management CLI
Used for configuration and administration of EAP, such as for deploying and undeploying applications, configuring system settings, and performing other administrative tasks.
The management CLI includes a batch mode that scripts and automates management tasks.
Do not directly edit the JBoss EAP XML configuration files while JBoss EAP is running. Use the management CLI to modify configurations.
Simplified directory layout
The modules directory contains application server modules.
The domain directories contain the configuration for the managed domain.
The standalone directories contain the configuration for a standalone server instance.
Modular class-loading mechanisms
JBoss EAP uses JBoss Modules which is a thread-safe, fast, and highly concurrent, delegating class loader model, that provide exact control over the classes visible to a given module or application.
Streamlined datasource management
Database driver deployment is similar to other JBoss EAP services.
The management console and management CLI create and manage datasources.
Unified security framework
Elytron provides a single unified framework for managing and configuring access for both standalone servers and servers in managed domains.
Additionally, Elytron is used to configure security access for applications deployed on JBoss EAP servers.
2.3. Application servers
An application server, or app server, is software that provides an environment to run web applications. Most app servers use a set of APIs to provide functionality to web applications. For example, an app server can use an API to connect to a database.
2.4. JBoss EAP subsystems
JBoss EAP organizes APIs into subsystems. You can configure these subsystems to enhance the capabilities of your JBoss EAP instance. For example, you can tune subsystems to improve performance, configure security, and to configure connections to external resources such as databases, identity providers, messaging brokers, and more.
Administrators can configure these subsystems to support different behavior, depending on the goal of the application.
For instance, if an application requires a database, you must configure a datasource so that a deployed application on a JBoss EAP server or a domain server can access the database.
2.5. High availability (HA) functionality of JBoss EAP
HA services are used to guarantee availability of deployed Jakarta EE application(s) by protecting against a single point of failure (failover) and preventing long delays during times of high request volumes (load balancing).
HA in JBoss EAP refers to multiple JBoss EAP instances working together to deliver applications that are most resistant to fluctuations in data flow, server load, and server failure. In addition to load balancing, HA also incorporates scalability and fault tolerance.
2.6. Supported operating modes in JBoss EAP
JBoss EAP has powerful management capabilities for deployed applications. These capabilities differ depending on which operating mode is used to start JBoss EAP.
JBoss EAP offers the following operating modes:
- Standalone server to manage instances individually
- Servers in a managed domain for managing groups of instances from a single control point