Технологии 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.