хабраиндекс
146,06
28 января в 03:24

Новый лидер Java EE? Знакомимся с сервером приложений Wildfly 8 Final в InfoboxCloud IaaS. Часть 1. Быстрый старт

Недавно Oracle заявила о прекращении выпускa коммерческих версий Glassfish. С OpenSource версией все будет неплохо и она останется рефренсной имплементацией Java EE. Однако вызывает опасения тот факт, что качество самого сервера приложений начнет падать без коммерческой версии той же базы кода и соответственно enterprise качество для новых версий Glassfish будет недостижимо. Особенно это касается кейсов, о которых не думают разработчики, но в которых проблемы проявляются в продакшне. Kоммерческий продукт Oracle WebLogic к Glassfish отношения не имеет.

У многих разработчиков необходимость найти сервер приложений Java EE7, который с одной стороны будет иметь OpenSource версию, а с другой — возможность купить коммерческую версию на той же кодовой базе.

image

Таким сервером стал WildFly 8, полностью совместимый со стандартом Java EE 7 (прохождение Java EE TCK на 100%). Red Hat при необходимости продаст JBoss с коммерческой поддержкой. Кодовая база у обоих серверов одна. К тому же Arun Gupta, возможно главный евангелист платформы Java EE, перешел из Oracle в RedHat и крайне советует пользователям переходить на Wildfly. Нет повода ему не верить.

В этой статье мы рассмотрим сервер приложений WildFly 8 в облаке InfoboxCloud.

image



Общая информация


Wildfly – не новый продукт. Это ребрендинг и развитие JBoss AS7/EAP6 в области как администрирования, так и API для разработчика. Wildfly 8 построен с использованием Java SE 7 и требует Java SE7 (или выше) для работы. Этот релиз на 100% проходит Java EE 7 TCK. Минимальный размер дистрибутива — 14 мегабайт, что идеально для построения фреймворков с использованием Wildfly. И конечно доступны средства интеграции с основными Java IDE.

Изменения в администрировании

  • Возможность ассоциировать административных пользователей с ролями и делегировать только необходимые права управления.
  • Использование встраиваемого высокопроизводительного масштабируемого веб-сервера Undertow.io, предоставляющего блокирующие и неблокирующие API, основанные на NIO. Этот веб-сервер может представлять большую гибкость благодаря архитектуре, основанной на композиции. С ней вы можете построить веб-сервер комбинируя небольшие обработчики событий.
  • Wildfly 8 поддерживает богатый набор команд управления, которые были добавлены в Command Line Interface, такие как возможность патчить модульную основу сервера.
  • Все протоколы в Wildfly мультиплексированы на 2 порта: 8080 для приложений и 9990 для управления. Это сделано для того, чтобы меньше времени администраторы тратили на настройки файрволла.

Новые API Java EE 7

Очень важным улучшением стала поддержка Java Enterprise API 7 (100% TCK, полная поддержка стандарта).
Некоторые важные улучшения, включенные в Wildfly:
  • Поддержка WebSocket 1.0. До HTML5 традиционная модель «запрос-ответ» использовалась в HTTP. Необходимо было постоянно опрашивать сервер на предмет изменений. Протокол WebSocket представляет полнодуплексный канал между клиентом и сервером без проблем с задержками соединения. Используя эту технологию вместе с другими клиентскими технологиями, такими как JavaScript и HTML5, мы можем создавать мощные и красивые приложения в браузере.
  • Java API for JSON Processing 1.0 (JSON-P). Этот набор API улучшает возможности приложений, использующих JSON определяя новые API для парсинга, генерации, трансформации и запросов JSON документов. Поэтому вы сможете строить обьектную модель JSON (подобно DOM для XML) и использовать ее в потоковом режиме (как в XML с StAX).
  • Batch Application API 1.0. Это API было спроектировано для стандартизации пакетной обработки для Java приложений. Вы можете подумать об этой технологии для использования вместо старых долгоработающих процедур для большого обьема данных, управляемых shell скриптами или устаревшими языками (COBOL).
  • Concurrency Utilites for Java EE 1.0. Это расширение Java SE Concurrency Utility (JSR-166), которое предоставляет простой и стандартный API для использования многопоточности из JavaEE компонентов сохраняя целостность контейнера.
  • есть и множество других интересных нововведений типа JAX-RS 2.0, JMS 2.0 и др, о чем просто можно почитать в официальном руководстве.


Установка Wildfly 8 Final в InfoboxCloud IaaS


Все примеры в статье создавались для облачных серверов Облачного конструктора InfoboxCloud.

Создание сервера в InfoboxCloud

Для работы Вам необходимо иметь аккаунт в сервисе InfoboxCloud Облачный конструктор (Пробная версия). Открываем панель управления Облачным конструктором. Переходим в раздел «Облачный конструктор».

image

В данном разделе вы видите список ваших серверов. Создадим новый.

image

Выберем необходимые настройки сервера. В InfoboxCloud можно менять CPU, RAM, диск и др. независимо друг от друга, создавая сервер, подходящий именно Вам.

image

Выберем ОС для сервера (в процессе установки Wildfly она будет обновлена, к тому же скоро появятся самые последние версии шаблонов ОС).

image

Сервер готов к созданию. Создаем.

image

Данные для доступа к серверу придут к вам на email. При необходимости пароль можно поменять в настройках сервера в панели управления Облачным конструктором.

Подключаемся к серверу по ssh.

image

Для установки Wildfly 8 Final в InfoboxCloud достаточно выполнить команду (для CentOS, Ubuntu или Fedora):
wget repository.jelasticloud.com/scripts/wildfly8/linux64/wildfly-standalone && chmod +x wildfly-standalone && ./wildfly-standalone && rm -rf wildfly-standalone

image

Установка займет некоторое время. ОС будет обновлена, установлена последняя версия JDK, установлен WildFly, создан пользователь WildFly для сервера приложений и зарегистрирован сервис для автозапуска ОС.
Это не стандартная команда. Фактически на сервер скачивается наш скрипт и все делает автоматически. При желании можно посмотреть скрипт и разобраться в процессе ручной установки WildFly, однако для быстрого старта ручная установка занимает слишком много времени пользователя.

image



Проверить корректность установки можно, зайдя на <ip–адрес сервера>:8080

image

По адресу <ip–адрес сервера>:9990 находится консоль управления WildFly.

image

Для использования консоли управления необходимо создать пользователя управления. В целях безопасности пароль по-умолчанию не установлен.

Добавление пользователей в WildFly

Для того, чтобы добавить пользователя в WildFly, необходимо запустить add-user.sh из каталога bin. Можно создавать пользователей приложений (application) и пользователей для управления WildFly (management).
Можно создавать пользователей и в неинтерактивном режиме:
add-user.sh -m -u {username} -p {password}

После добавления пользователя управления можно войти в консоль управления.
image

CLI


WildFly включает в себя Command Line Interface (CLI). Запустить его можно из директории bin командой:
./jboss-cli.sh

Далее можно соединяться к локальному или удаленному экземпляру WildFly. Для соединения с локальным вводим команду connect. Можно например перезагрузить сервер WildFly командой restart. В неинтерактивном режиме это будет выглядеть так:
./jboss–cli.sh -c --command=restart.
Для соединения с удаленным экземпляром WildFly после connect нужно написать IP-адрес сервера, которым мы хотим управлять.

Успешного использования WildFly в облаке InfoboxCloud. В следующих частях мы поговорим о более сложных сценариях развертывания Wildfly и разработке Java EE 7 приложений.

Автор: Юрий Трухин
+12
8863
53
infobox 44,3

Комментарии (8)

0
VoVanJinn, #
Даешь WildFly ESB до кучи, и мы подумаем…
+4
infobox, #
Пожалуйста: проект SwitchYard. Это новый ESB–проект, и он прекрасно запускается на WildFly.
+1
VoVanJinn, #
Все такое ссыкотно-свежее. Но поковырять хочется.
По описанию SwitchYard сулит развитие новых вещей, которые они побоялись втиснуть в JBoss ESB.
Да и наличие Apache Camel лично меня радует.
Спасибо, вам, добрый человек.
0
wisd, #
А мануалы и реконфигураторы для миграции есть? Чтобы можно было легко и играючи например с GlassFish 4 мигрировать?
0
infobox, #
Руководства по миграции с Glassfish не встречал — можно попросить написать у Arun Gupta, евангелиста WildFly. Есть полезная книжка от разработчиков WildFly: WildFly 8 Administration.
0
endymion, #
Вдоволь наигравшись с JBoss 4 и 7(community edition), новое приложение я бы начал писать вообще без использования JEE. Благо технологий хватает.
+1
iZENfire, #
Почему кнопку «Отмена» в пользовательском интерфейсе управления настройками Инфобокса поставили справа от кнопки «Далее»? Интуитивнее «отмена» ассоциируется с «хватит. вернуть всё как было», то есть кнопка «Отмена» должа быть гораздо левее кнопки «Далее», даже левее кнопки «Назад» — всё согласно «стрелы времени» и начала отсчёта исторических действий в европейской традиции.
0
infobox, #
Спасибо большое за ваш отзыв. Мы передадим его команде разработчиков.

Только зарегистрированные пользователи могут оставлять комментарии.
Войдите, пожалуйста.