Открыть сервис

WildFly

WildFly (ранее известный как JBoss Application Server) — это сервер приложений с открытым исходным кодом, реализующий спецификации Java Platform, Enterprise Edition (Java EE, ныне Jakarta EE). Разрабатывается и поддерживается компанией Red Hat, входящей в состав IBM. WildFly предназначен для развёртывания, запуска и управления корпоративными Java-приложениями, включая веб-сервисы, микросервисы и распределённые системы.

История

Происхождение и развитие JBoss AS

История WildFly начинается с проекта JBoss, основанного в 1999 году Марком Флейри (Marc Fleury) как сервер приложений с открытым кодом. Первоначально проект назывался JBoss Application Server (JBoss AS) и быстро завоевал популярность благодаря лёгкости, модульности и соответствию стандартам Java EE. В 2006 году компания Red Hat приобрела JBoss Inc., что обеспечило проекту стабильное финансирование и корпоративную поддержку.

Переименование в WildFly

В 2012 году было объявлено, что следующая версия сервера (8.0) будет выпущена под новым именем — WildFly. Основные причины переименования: устранение путаницы с брендом JBoss (который стал обозначать целую экосистему продуктов Red Hat, включая JBoss EAP — коммерческую версию) и подчёркивание нового подхода к архитектуре (модульная, легковесная, облачная). Первая версия WildFly 8.0 вышла в феврале 2014 года.

Версии и история выпусков

С момента переименования WildFly регулярно обновляется, следуя за развитием Jakarta EE. Ключевые версии:

  • WildFly 8 (2014) — первая версия, поддержка Java EE 7.
  • WildFly 9 (2015) — внедрение модульной архитектуры, улучшенная поддержка Docker.
  • WildFly 10 (2016) — поддержка Java EE 7, улучшения в управлении памятью.
  • WildFly 11 (2017) — переход на Jakarta EE 8, улучшенная интеграция с OpenShift.
  • WildFly 12 (2018) — поддержка Java 10, новые функции безопасности.
  • WildFly 13 (2018) — улучшенная поддержка HTTP/2, TLS 1.3.
  • WildFly 14 (2019) — поддержка Jakarta EE 8, улучшения в кластеризации.
  • WildFly 15 (2019) — улучшенная поддержка микросервисов, интеграция с MicroProfile.
  • WildFly 16 (2020) — поддержка Java 11, улучшения в управлении конфигурацией.
  • WildFly 17 (2020) — поддержка Jakarta EE 8, улучшенная поддержка GraalVM.
  • WildFly 18 (2021) — поддержка Jakarta EE 9, улучшения в безопасности.
  • WildFly 19 (2021) — поддержка Jakarta EE 9.1, улучшенная интеграция с Kubernetes.
  • WildFly 20 (2022) — поддержка Jakarta EE 10, улучшения в производительности.
  • WildFly 21 (2022) — поддержка Java 17, улучшения в модульной системе.
  • WildFly 22 (2023) — поддержка Jakarta EE 10, улучшения в управлении кластером.
  • WildFly 23 (2023) — поддержка Java 17, улучшения в безопасности.
  • WildFly 24 (2024) — поддержка Jakarta EE 10, улучшения в совместимости с облачными платформами.
  • WildFly 25 (2024) — поддержка Java 21, улучшения в модульной архитектуре.

Архитектура и компоненты

Модульная система

WildFly построен на модульной архитектуре, основанной на проекте JBoss Modules. В отличие от традиционных серверов приложений (например, Apache Tomcat), где все библиотеки загружаются в единый classloader, WildFly использует изолированные модули. Каждый модуль содержит свой набор классов и зависимостей, что предотвращает конфликты версий и упрощает развёртывание приложений.

Основные компоненты

  • Сервер приложений — ядро WildFly, отвечающее за управление жизненным циклом приложений, обработку запросов и управление ресурсами.
  • Веб-контейнер — реализация сервлетов (Apache Tomcat, интегрированный в WildFly) для обработки HTTP-запросов.
  • EJB-контейнер — поддержка Enterprise JavaBeans для создания распределённых бизнес-логик.
  • JPA-провайдер — реализация Java Persistence API (обычно Hibernate) для работы с базами данных.
  • JMS-провайдер — поддержка Java Message Service (ActiveMQ Artemis) для асинхронного обмена сообщениями.
  • Контейнер безопасности — управление аутентификацией и авторизацией (Elytron).
  • Управление транзакциями — поддержка распределённых транзакций (Narayana).

Режимы работы

WildFly поддерживает несколько режимов запуска:

  • Standalone — одиночный сервер, подходящий для разработки и небольших развёртываний.
  • Domain — управляемый кластер серверов, где один контроллер (Domain Controller) управляет несколькими экземплярами (Host Controller). Режим используется для масштабирования и централизованного управления.
  • Embedded — встраиваемый режим, позволяющий запускать WildFly внутри других приложений (например, для тестирования).

Классификация и версии

WildFly vs JBoss EAP

WildFly — это сообщество-управляемая версия сервера приложений, распространяемая под лицензией Apache 2.0. JBoss Enterprise Application Platform (JBoss EAP) — коммерческая версия, основанная на стабильных релизах WildFly, с дополнительными патчами безопасности, долгосрочной поддержкой (LTS) и сертификацией для корпоративных сред. JBoss EAP поставляется Red Hat с подпиской на поддержку.

Версии Jakarta EE

WildFly поддерживает различные версии Jakarta EE (ранее Java EE). Начиная с WildFly 8, сервер соответствует Java EE 7; с WildFly 11 — Jakarta EE 8; с WildFly 18 — Jakarta EE 9; с WildFly 20 — Jakarta EE 10. Актуальная версия (WildFly 25) поддерживает Jakarta EE 10.

Применение

Корпоративные приложения

WildFly широко используется для развёртывания корпоративных Java-приложений: ERP-систем, CRM, банковских систем, порталов и веб-сервисов. Благодаря поддержке Java EE/Jakarta EE, он обеспечивает стандартизированную среду для разработки и развёртывания.

Микросервисы и облачные технологии

WildFly поддерживает создание микросервисов с помощью MicroProfile — набора спецификаций для облачных Java-приложений. Сервер интегрируется с контейнерными платформами, такими как Docker и Kubernetes, а также с Red Hat OpenShift. WildFly может запускаться в виде контейнера, что упрощает развёртывание в облачных средах.

Разработка и тестирование

Благодаря лёгкости и быстрому запуску, WildFly часто используется разработчиками для локального тестирования и отладки приложений. Встроенная поддержка горячей замены кода (hot deployment) ускоряет цикл разработки.

Примеры использования

Пример: развёртывание веб-приложения

Разработчик создаёт Java-приложение с использованием сервлетов, JSP, EJB и JPA. Приложение упаковывается в WAR-файл (Web Archive) или EAR-файл (Enterprise Archive) и развёртывается на WildFly через веб-консоль управления, командную строку (CLI) или автоматическое копирование в директорию deployments. Сервер автоматически обнаруживает и запускает приложение, предоставляя ему доступ к базам данных, очередям сообщений и другим ресурсам.

Пример: кластеризация

Для обеспечения высокой доступности и масштабирования WildFly может быть настроен в режиме домена. Несколько серверов объединяются в кластер, где запросы распределяются между ними. Сервер поддерживает репликацию сессий, распределённые транзакции и синхронизацию состояния между узлами.

Интересные факты

  • WildFly — один из немногих серверов приложений, полностью поддерживающих спецификации Jakarta EE, включая такие сложные компоненты, как EJB 3.2, JPA 2.2 и JMS 2.0.
  • В 2020 году WildFly стал первым сервером приложений, получившим сертификацию Jakarta EE 9.
  • Сервер поддерживает GraalVM — высокопроизводительную виртуальную машину, позволяющую запускать Java-приложения с улучшенной производительностью.
  • WildFly активно используется в российских компаниях для разработки корпоративных систем, включая банковский сектор и государственные учреждения.

Критика

Несмотря на популярность, WildFly подвергается критике за:

  • Сложность конфигурациимодульная архитектура и большое количество параметров могут затруднить настройку для новичков.
  • Потребление ресурсов — по сравнению с лёгкими серверами (например, Tomcat или Jetty), WildFly требует больше оперативной памяти и процессорного времени.
  • Зависимость от Red Hat — хотя WildFly является открытым проектом, его развитие сильно зависит от решений Red Hat, что может вызывать опасения у некоторых пользователей.
  • Совместимость с новыми технологиями — иногда WildFly отстаёт в поддержке новейших версий Java и Jakarta EE по сравнению с конкурентами (например, Payara или GlassFish).

Источники

  • Официальная документация WildFly (wildfly.org)
  • JBoss Community Wiki (developer.jboss.org)
  • Red Hat JBoss EAP Documentation (access.redhat.com)
  • Jakarta EE Specification (jakarta.ee)
  • «WildFly: A Comprehensive Guide» by Francesco Marchioni (2023)
  • Java EE 7 Essentials by Arun Gupta (2013)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →