Технологии Java
В этом уроке мы различаем различные типы платформ Java, серверов и платформ.
Spring Framework
Spring Framework — это платформа для создания приложений и контейнер инверсии управления (IoC). 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 — это набор спецификаций для архитектур микрослужб. Он называет себя открытым форумом для оптимизации Enterprise Java для архитектуры микрослужб. MicroProfile направлена на внедрение инноваций в нескольких реализациях и совместную работу над общими областями интересов.
Jakarta EE — это набор спецификаций для создания корпоративных приложений. Модульная структура позволяет разработчикам создавать эффективные программные решения. Приложения Jakarta EE можно упаковывать как файлы EAR или файлы WAR.
Веб-профиль — это подмножество Jakarta EE для серверных служб с уклоном на веб-технологии, но не переживайте! Вы можете добавить определенные API корпоративной платформы поверх него.
Серверы приложений
Приложения Java EE должны развертываться на серверах приложений, совместимых с Java EE (Weblogic, WebSphere, WildFly, GlassFish, Payara и других).
Apache Tomcat — это HTTP-сервер и контейнер Java Servlet. Он реализует спецификации Servlet, Java Server Pages (JSP), языка выражений Java и 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 (включая Servlet и JSP).
Другие платформы для архитектур, ориентированных на микрослужбы
Netty — это неблокирующий фреймворк ввода-вывода (NIO) для клиентских и серверных приложений. Это обеспечивает быструю и простую разработку сетевых приложений, таких как серверы протоколов и клиенты. Это значительно упрощает и оптимизирует сетевое программирование, например, TCP- и UDP-серверы сокетов. Netty — это асинхронная платформа сетевых приложений на основе событий для быстрого разработки поддерживаемых, высокопроизводительных серверов и клиентов протокола.
Quarkus — это собственный стек Java Kubernetes, адаптированный для OpenJDK HotSpot и GraalVM. Кваркус набирает все больше и больше импульса. Кстати, существуют более ориентированные на производительность платформы, такие как Vert.x, Helidon, Payara Micro и KumuluzEE.
Micronaut — это современная полнофункциональная платформа на основе JVM для создания модульных и легко тестируемых микрослужб и бессерверных приложений. Micronaut включает внедрение зависимостей и среду выполнения программирования на основе аспектов, которая не использует отражения, что упрощает выполнение приложений Micronaut в GraalVM.