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