После полутора лет разработки компания Red Hat представила (http://wildfly.org/news/2015/07/02/WildFly9-Final-Released/) релиз свободного сервера приложений WildFly 9 (http://wildfly.org/). Сервер WildFly пришел на смену свободному продукту JBoss Application Server и был переименован чтобы избежать путаницы и пересечения с коммерческим продуктом JBoss Enterprise Application Platform и сообществом JBoss Community, которое не ограничивается разработкой сервера приложений. Реализация сертифицирована на соответствие Full- и Web-профилям Java EE 7. Код WildFly распространяется (http://wildfly.org/downloads/) под лицензией LGPL.
В отличие от коммерческого продукта JBoss Enterprise Application Platform, который позиционируется как полностью протестированная и сертифицированная платформа Java EE, WildFly нацелен в первую очередь на продвижение новых технологий. WildFly выступает в роли upstream-проекта для коммерческого продукта JBoss Enterprise. В качестве основной области использования WildFly рассматривается разработка и быстрое внедрение прототипов.
Основные особенности WildFly 9:
- Поддержка (http://undertow.io/blog/2015/03/26/HTTP2-In-Wildfly.html) протоколов HTTP/2 (http://www.opennet.me/opennews/art.shtml?num=41684) и SPDY, позволяющих увеличить эффективность использования сетевых ресурсов и снизить задержки при соединении и обмене данными между клиентом и сервером. В том числе реализована поддержка технологии server push, предоставляющей средства для отправки данных клиенту по инициативе сервера.
- Возможность (https://www.youtube.com/watch?v=xa_gtRDpwyQ) работы WildFly в роли умного балансировщика нагрузки, проксирующего запросы к выступающим в роли бэкендов узлам WildFly, что избавляет от необходимости запуска дополнительных http-серверов для проброса соединений, таких как Apache и nginx. Поддерживается использование протоколов HTTP, HTTP/2, SPDY и mod_cluster.- Режим мягкого завершения работы сервера, при котором новые запросы перестают приниматься, но обработка уже выполняемых запросов может быть доведена до конца. При инициировании остановки в данном режиме уже обрабатываемые транзакции не обрываются, а приостанавливаются на время обслуживания сервера;
- Возможность управления сервером через CLI-интерфейс в offline-режиме, когда сервер не запущен - CLI сам запустит встроенный вариант сервера в режиме администрирования (admin-only);
- Новый урезанный дистрибутив "WildFly Servlet", включающий только средства для сервлетов. Полный дистрибутив поставляется под именем "WildFly Full", а ядро проекта вынесено в отдельный репозиторий "WildFly Core";
- В подсистему ведения логов добавлена возможность организации прямой отдачи файлов с логами в ответ на HTTP-запрос;
- Подсистема web-сервисов переведена на JBossWS 5.0.0.Final и предоставляет такие новшества, как Apache CXF 3.
- Реализация IIOP переведена с JacORB на OpenJDK Orb, что позволило улучшить совместимость с JVM ORB и Java EE RI;
- Сервисы кластеризации, включая все кэши Infinispan, теперь совместно используют один канал JGroups;
- В управляющей консоли представлена новая раскладка элементов интерфейса пользователя, улучшен интерфейс для просмотра логов, расширен браузер моделей, добавлена поддержка шаблонов для подключения к СУБД PostgreSQL, MySQL, Oracle, SQLServer, DB2 и Sybase, реализована подсистема настройки удалённого доступа, обеспечена возможность выполнения операций flush-* для подключенных пулов, добавлена поддержка запуска управляющей консоли независимо от WildFly.
URL: http://wildfly.org/news/2015/07/02/WildFly9-Final-Released/
Новость: http://www.opennet.me/opennews/art.shtml?num=42570
>Java EEХрестоматийный случай оверинженеринга, инфраструктуры ради инфраструктуры, и фабрики фабрик фабрик объектов.
>фабрики фабрик фабрик объектов.Не лезь со своим уставом в чужой монастырь. Это Ява. У них так принято.
Попробую ликвидировать это непонимание и расскзаать Вам, что JBoss это Web-контейнер.Основное предназначение Web-контейнера это экономить время разработчика на создании и развертывании Web-сервера и так же экономить ресурсы на создании сотни экземпляров однотипных Web-серверов простым способом их обьедингения.
Точно таким же Web-контейнером можно считать связки "Apache+PHP" или "Apache+wsgi+python" или "nginx+fcgi+php".
Не понимаю почему Вы не удивляетесь этим Web-контейнерам? На мой взгляд гораздо более неудобными в админисрировании и тре-их ручной настройки против полностью автоматического контейнеров в Java.
А фабрики фабрик создают с определенной целью - одной из которых - желающие иметь коллекцию всех экземпляров данного класса ну скажем для эффективного уничтожения всех этих экзепляров при выключении родительского обьекта (например закрытие всех соединений в случае закрытия родительского потока обработки подключений).
Не путайте фанатичное создание фабрик фабрик различного рода новичками для того что бы просто выглядить круто. Это совсем другое.
> что JBoss это Web-контейнер
> что JBoss это Application ServerПоправил тебя, не благодари.
Спасибо. Действительно Вы правы это "Application Server".А "Application Server" в частности новый WildFly разве сейчас может кроме HTTP другие протоколы?
Таким образом "Application Server" разве не частный случай Web-контейнера?
>Таким образом "Application Server" разве не частный случай Web-контейнера?Nyet.
Application Server is implementation of Java EE platform
Servlet Container is implementation of Java Servlet API + JSP/JSFJava Servlet API is a subset of Java EE specification.
>>Таким образом "Application Server" разве не частный случай Web-контейнера?
> Nyet.
> Application Server is implementation of Java EE platform
> Servlet Container is implementation of Java Servlet API + JSP/JSF
> Java Servlet API is a subset of Java EE specification.Вы там не запутались со своими спецификациями? JBoss полноценный себе Web-контейнер.
Насчет того какой он там вшивости Servlet/JavaEE в данном контексте не очень важно. Важно, что все они Web-контейнеры в широком смысле слова.
На всякий случай дам Вам ссылку, а то вы опять неверно будете трактовать понятие Web-контейнера и спутаете его с Servlet-контейнером https://en.wikipedia.org/wiki/Web_container
> Вы там не запутались со своими спецификациями? JBoss полноценный себе Web-контейнер.Nyet
Application Server - полная имплементация спецификаций Java EE, т.е. он умеет EJB, CDI, JPA/JTA, JMS, JAX-RS/WS, Servlet, JSP/JSF, Jaxb etc. Пример - JBoss/WildFly, Glassfish, Weblogic, WebSphere. http://www.oracle.com/technetwork/java/javaee/tech/index.html
Web/Servlet Container - имплементация Java Servlet API + JSP/JSF, которые в свою очередь являются частью Java EE. Пример - Tomcat, Jetty, etc.
Web Container кончено часть любого Application Server, но не наоборот.
Tomcat не умеет JSFApache Tomcat™ is an open source software implementation of the Java Servlet, JavaServer Pages, Java Expression Language and Java WebSocket technologies
self-fix
Tomcat можно научить понимать JSF. Это - всего лишь набор библиотек (jar-ов).
> Application Server - полная имплементация спецификаций Java EE, т.е. он умеет
> EJB, CDI, JPA/JTA, JMS, JAX-RS/WS, Servlet, JSP/JSF, Jaxb etc. Пример -
> JBoss/WildFly, Glassfish, Weblogic, WebSphere.Удивил (клиента) -- значит, победил^W считай что впарил залежалый товар :)
И ЧСХ -- чем более товар похож на "это самое, в красивой обертке" тем усерднее и изобретательнее маркетолухи пытаются его впарить :)
Алсо, вот по ссылке, сравни Tomcat и TomEE PluME.
похоже это Вы запутались с терминологией. Web-контейнер - это только часть сервера приложений, который (сервер приложений) реализует весь стек JavaEE. Т.е. сервер приложений можно условно назвать "JavaEE Conainer", в котором реализованы какие-то контейнеры. Посмотрите описание и картинку
https://docs.oracle.com/javaee/5/tutorial/doc/bnabo.htmlВаш веб-контейнер (при классическом построении стандартного JavaEE-приложения, а не через сторонние фреймворки) по большому счету отвечает только за взаимодействие с клиентом через http (с браузером клиента) - это поддержка http-сессий с браузером, отдача всевозможных статических файлов, обработка и отдача JSP-страниц, обработка запросов к сервлетам и т.п. НО в сервлетах и JSP-страницах, при классическом подходе, никакой прикладной бизнес-логики быть не должно, никакой работы с базами данных и т.п. Вся бизнес-логика и работа с базами данных ложится на другой контейнер - EJB-контейнер (контейнер энтерпрайз бинов, всякие Stateless-, Statefull-, Message-driven бины которые используют всякие подсистемы маппинга объектов в базы данных, управления транзакциями и т.д.). Ваши сервлеты и JSP-страницы как раз должны дергать эти бины. Энтерпрайз-бины никто вам не мешает дернуть из "толстого" приложения, никак не связанным с вебом, не через http. На картинке это нарисовано отдельной стрелочкой. В этом случае ваш Web-контейнер вообще не будет задействован.
>[оверквотинг удален]
> к сервлетам и т.п. НО в сервлетах и JSP-страницах, при классическом
> подходе, никакой прикладной бизнес-логики быть не должно, никакой работы с базами
> данных и т.п. Вся бизнес-логика и работа с базами данных ложится
> на другой контейнер - EJB-контейнер (контейнер энтерпрайз бинов, всякие Stateless-, Statefull-,
> Message-driven бины которые используют всякие подсистемы маппинга объектов в базы данных,
> управления транзакциями и т.д.). Ваши сервлеты и JSP-страницы как раз должны
> дергать эти бины. Энтерпрайз-бины никто вам не мешает дернуть из "толстого"
> приложения, никак не связанным с вебом, не через http. На картинке
> это нарисовано отдельной стрелочкой. В этом случае ваш Web-контейнер вообще не
> будет задействован.Основная суть моего примера была (частного случая) показать, что JBOSS выступает как Web-контейнер и позволяет решать множество проблем из коробки именно в вопросе развертывания Web-приложения и экономии ресурсы по сравнению с другими площадками.
Хотя тут есть конечно и обратная сторона медали )))
Ну да ну да. Только, когда начинаешь писать реальное приложение, то оказывается, что мини-нано-супер-микро рантайма %ПЛАТФОРМАНЭЙМ% не хватает и надо или писать свои костыли, или притаскивать сторонние решения и интегрировать их.
Видимо, костыли это от непонимания. За 10 лет работы с JBoss не появилось ни одного костыля. Может я что-то не то делал? Надо будет глянуть свое старье...
Да, ты делал не то. Науя в интерпрайзе ваще Web?
Потому что лучше один приемлемый протокол чем зоопарк из десятка идеально подходящих для конкретных случаев. В итоге выходит дешевле, надёжнее и, как ни странно, эффективнее.
> Потому что лучше один приемлемый протокол чем зоопарк из десятка идеально подходящих
> для конкретных случаев. В итоге выходит дешевле, надёжнее и, как ни
> странно, эффективнее.Му-ха-ха... Просто дурите головы заказчику вот и все. А он бедолага потом ходит и думает, что Java вся такая меделенная.
> WildFlyА я-то думал, что такое "ядрёна вошь". :)
Сектор газа - Ядрёна вошь
>> WildFly
> А я-то думал, что такое "ядрёна вошь". :)"дикий залёт" же.
--- Mueller English-Russian Dictionary:
wild
[waɪld]
1. _a.
1) дикий; wild flower полевой цветок
2) невозделанный; необитаемый
3) пугливый (о животных, птицах и т.п.)
4) бурный, буйный, необузданный
5) бешеный, неистовый; раздражённый; безумный; исступлённый; to be wild
about smth. быть без ума от чего-л.; in wild spirits в возбуждённом
состоянии; it drives me wild это приводит меня в бешенство; wild with
joy вне себя от радости
6) штормовой, бурный
7) необдуманный, сделанный наугад; wild scheme сумасбродный план; wild
shot выстрел наугад; wild guesses
а) домыслы;
б) смутные догадки
8) _разг. распущенный, безнравственный; wild fellow повеса
9) находящийся в беспорядке, растрёпанный; wild hair растрёпанные
волосы; to run wild
а) зарастать;
б) расти недорослем, без образования;
в) вести распутный образ жизни
2. _adv. наугад, как попало
3. _n. (the wilds) пустыня, дебри*
fly
_I [flaɪ] _n.
1) муха
2) _с-х. _разг. вредитель; a fly in the ointment ложка дёгтя в бочке
мёда; a fly on the wheel самомнения ему не занимать стать; there are
no flies on him он не дурак, его не проведёшь
_II [flaɪ]
1. _n.
1) полёт; расстояние полёта; on the fly на лету
2) _уст. одноконный наёмный экипаж
3) _тех. маятник; балансир
4) _pl. _театр. колосники
5) крыло (ветряка)
6) длина (флага)
7) край (флага)
8) откидное полотнище палатки
9) ширинка (у брюк)
2. _v. [...8<...]
_III[flaɪ] _a. _разг.
1) ловкий; проворный
2) хитрый
Скажите, пожалуйста, это решение подходит для хайлоада и распределённых систем или оно просто для энтерпрайза?
Для энтерпрайза.
Отчасти. У всех свой хайлоад ;-)
Один человек добился миллиона HTTP запросов в секунду на одном сервере.>Возможность работы WildFly в роли умного балансировщика нагрузки, проксирующего запросы к выступающим в роли бэкендов узлам WildFly
У Nginx есть некоторые проблемы с масштабированием.
>Сервисы кластеризации, включая все кэши Infinispan, теперь совместно используют один канал JGroups;
> Один человек добился миллиона HTTP запросов в секунду на одном сервере.А ещё есть секретарши, которые могут 300 знаков в минуту набирать ;)
Я могу больше... правда какая-то хрень получается. :)
Один человек добился миллиарда HTTP запросов в секунду на одном сервере.
И умер.
Не,...и теперь им занимается прокуратура.
...и теперь им занимается доктор.
...и теперь про него брешут сказки.
Сперва добейся!
Через unix-сокет?