Технологии Java
В этом уроке мы установим различия между типами платформ и серверов Java.
Spring Framework
Spring Framework — это платформа для приложений и контейнер инверсии управления. Платформа Spring традиционно использовалась для дополнения модели Enterprise JavaBeans (EJB). Она имеет следующие основные функции.
- Внедрение зависимостей
- Аспектно-ориентированное программирование.
- Абстракция бизнес-логики.
Spring Boot
Spring Boot работает на базе Spring Framework и имеет собственную технологию автонастройки. Приложения Spring Boot работают автономно и идеально подходят для микрослужб.
Данные Spring
Spring Data упрощает доступ к данным для реляционных и нереляционных баз данных, платформ MapReduce и облачных служб данных.
Spring Security
Spring Security — это де-факто стандарт защиты приложений Spring. Он обеспечивает высокоуровневую проверку подлинности и контроль доступа. Например, Spring Security хорошо интегрируется с Active Directory.
Spring Cloud
Spring Cloud используется для распределенных систем. Spring Cloud включает инструменты обнаружения служб, управления конфигурацией, мониторинга, а также удобный интерфейс разработки.
Spring Batch
Spring Batch — это нетребовательная платформа для надежных пакетных приложений, важных для ежедневных операций.
MicroProfile и Jakarta EE
MicroProfile и Jakarta Enterprise Edition (EE) — это своего рода последующие реализации с открытым кодом для спецификаций Java EE.
MicroProfile — это набор спецификаций для архитектур на базе микрослужб. Разработчики MicroProfile называют себя открытым сообществом по оптимизации Java Enterprise для архитектуры на базе микрослужб. Проект MicroProfile предназначен для внедрения инноваций в нескольких реализациях и совместной работы в общей сфере интересов.
Jakarta EE — это набор спецификаций для создания корпоративных приложений. Благодаря модульной структуре разработчики могут создавать эффективные программные решения. Приложения Jakarta EE можно упаковыть как ФАЙЛЫ EAR или WAR-файлы.
WebProfile — это подмножество Jakarta EE для внутренних служб с веб-фокусом, но не волнуйтесь! Вы можете добавить определенные API корпоративной платформы поверх этого решения.
Серверы приложений
Приложения Java EE должны быть развернуты на серверах приложений, совместимых с Java EE (WebLogic, WebSphere, WildFly, GlassFish, Payara и др.).
Apache Tomcat — это HTTP-сервер и контейнер Java Servlet. Он реализует спецификации Servlet, JavaServer Pages (JSP), Java Expression Language и Java WebSocket.
Oracle Weblogic Server — это унифицированная и расширяемая платформа для разработки, развертывания и выполнения корпоративных приложений. WebLogic Server предлагает надежную отработанную реализацию Java EE и Jakarta EE.
Red Hat JBoss Enterprise Application Platform (JBoss EAP) обеспечивает безопасность, производительность и масштабируемость корпоративного класса в локальных и виртуальных реализациях или в частных, общедоступных или гибридных облаках.
WildFly — это решение с открытым кодом, на базе которого создана платформа JBoss EAP. Этим решением управляет сообщество, поэтому оно отлично подходит для разработки и тестирования.
IBM WebSphere Application Server (WAS) — это гибкая серверная среда выполнения Java со множеством функций безопасности, предназначенная для корпоративных приложений. Эта среда ориентирована на обеспечение высокого уровня надежности. Она поддерживает микрослужбы и модели программирования на основе стандартов. Вы можете выполнять модернизацию в удобном для вас темпе, улучшить контроль рабочих нагрузок, анализировать корпоративные приложения и ускорить переход на Kubernetes.
Open Liberty — это управляемая сообществом версия WAS с открытым кодом.
Oracle GlassFish представляет собой эталонную реализацию многих веб-стандартов Java EE (включая Java Servlet и JSP).
Другие платформы для архитектуры на базе микрослужб
Netty — это неблокирующая клиент-серверная платформа ввода-вывода. Она обеспечивает быструю и простую разработку сетевых приложений, например протокольных серверов и клиентов. Эта платформа значительно упрощает и ускоряет программирование сетевых решений, например для серверов сокетов TCP и UDP. Netty представляет платформу для асинхронных, управляемых событиями сетевых приложений. Она обеспечивает быструю разработку обслуживаемых высокопроизводительных протокольных решений для серверов и клиентов.
Quarkus — это стек Java для Kubernetes, предназначенный для работы с OpenJDK HotSpot и GraalVM. Кваркус набирает все больше и больше импульса. Но существует множество подобных платформ, ориентированных на повышение производительности, например Vert.x, Helidon, Payara Micro и KumuluzEE.
Micronaut — это современная платформа полного стека на базе виртуальной машины Java для создания модульных, легко тестируемых микрослужб и бессерверных приложений. В Micronaut поддерживается внедрение зависимостей и аспектно-ориентированная среда выполнения, не использующие отражение. Благодаря этому приложения Micronaut можно легко запустить на GraalVM.