Jakarta EE (ранее — Java Platform, Enterprise Edition, сокр. Java EE, до версии 5.0 — Java 2 Enterprise Edition или J2EE). В 2018 Eclipse Foundation переименовала Java EE в Jakarta EE — набор спецификаций и соответствующей документации для языка Java, описывающей архитектуру серверной платформы для задач средних и крупных предприятий.
Jakarta EE | |
---|---|
Тип | веб-фреймворк и рабочая группа |
Автор | Sun Microsystems |
Разработчики | Sun Microsystems, Oracle и Eclipse Foundation |
Написана на | Java |
Операционная система | Кроссплатформенное программное обеспечение |
Последняя версия |
|
Сайт | jakarta.ee (англ.) |
Медиафайлы на Викискладе |
Спецификации детализированы настолько, чтобы обеспечить переносимость программ с одной реализации платформы на другую. Основная цель спецификаций — обеспечить масштабируемость приложений и целостность данных во время работы системы. Java EE во многом ориентирована на использование её через веб, как в интернете, так и в локальных сетях. Вся спецификация создаётся и утверждается через JCP (Java Community Process) в рамках инициативы Sun Microsystems Inc.
Java EE является промышленной технологией и в основном используется в высокопроизводительных проектах, в которых необходима надежность, масштабируемость, гибкость.
Популярности Java EE также способствует то, что Sun предлагает бесплатный комплект разработки, SDK, позволяющий предприятиям разрабатывать свои системы, не тратя больших средств. В этот комплект входит сервер приложений GlassFish с лицензией для разработки.
Версии
правитьАктуальная версия Java EE имеет номер 8.0. Развитие технологии Java EE отображено на странице истории версий.
При переходе на версию 5.0 изменилось и название спецификации с J2EE [ˌdʒeɪˈtuː ˌiːˈiː] (Java 2 Platform, Enterprise Edition), на Java Platform, Enterprise Edition, сокращённо Java EE [ˈdʒɑːvə ˌiːˈiː].
Версия | Полное имя | Дата публикации |
---|---|---|
1.0 | Java 2 Platform Enterprise Edition, v 1.0 | декабрь 1999 |
1.2 | Java 2 Platform Enterprise Edition, v 1.2 | 2000 |
1.2.1 | Java 2 Platform Enterprise Edition, v 1.2.1 | 23 мая 2000 |
1.3 | Java 2 Platform Enterprise Edition, v 1.3 | 24 сентября 2001 |
1.4 | Java 2 Platform Enterprise Edition, v 1.4 | 24 ноября 2003 |
5.0 | Java Platform, Enterprise Edition, v 5 | 11 мая 2006 |
6.0 | Java Platform, Enterprise Edition, v 6 | 6 декабря 2009 |
7.0 | Java Platform, Enterprise Edition, v 7 | 12 июня 2013 |
8.0 | Java Platform, Enterprise Edition, v 8 | 18 сентября 2017[2][3] |
Jakarta EE 8 | 2019-09-10[4] | |
Jakarta EE 9 | 2020-12-08[5] | |
Jakarta EE 9.1 | 2021-05-25[6] | |
Jakarta EE 10 | 2022-09-22[7] | |
Jakarta EE 11 | Planned |
Технологии
правитьJava EE включает в себя стандарты следующих технологий:
Описание | Использованная версия | |||||
---|---|---|---|---|---|---|
J2EE 1.4 | Java EE 5 | Java EE 6 | Java EE 7 | Java EE 8 | ||
2003 г. | 2006 г. | 2009 г. | 2013 г. | 2018 г. | ||
EJB | Enterprise JavaBeans — спецификация технологии серверных компонентов, содержащих бизнес-логику | 2.1 | 3.0 | 3.1 | 3.2 | 3.2 |
JPA | Java Persistence API — управление постоянством и объектно-реляционное отображение | Нет | 1.0 | 2.0 | 2.1 | 2.2 |
Servlet | Обслуживание запросов веб-клиентов | 2.4 | 2.5 | 3.0 | 3.1 | 4.0 |
JSP | JavaServer Pages — динамическая генерация веб-страниц на стороне сервера | 2.0 | 2.1 | 2.2 | 2.3 | 2.3 |
JSTL | JavaServer Pages Standard Tag Library | Нет | 1.2 | 1.2 | 1.2 | 1.2 |
JSF | JavaServer Faces — компонентный серверный фреймворк для разработки веб-приложений на технологии Java | Нет | 1.2 | 2.0 | 2.2 | 2.3 |
JAX-WS | Java API for XML Web Services — создание веб-сервисов | 1.0 | 1.2 | 1.2 | 2.2 | 2.2 |
JAX-RS | Java API for RESTful Web Services — создание RESTful веб-сервисов | Нет | Нет | 1.1 | 2.0 | 2.1 |
WebSocket | Java API for WebSocket | Нет | Нет | Нет | 1.0 | 1.1 |
JSON-P | Java API for JSON Processing — разбор и генерация JSON | Нет | Нет | Нет | 1.0 | 1.1 |
JSON-B | Java API for JSON Binding — преобразование Java объектов в/из JSON | Нет | Нет | Нет | Нет | 1.0 |
JNDI | Java Naming and Directory Interface — служба каталогов | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 |
JMS | Java Message Service — обмен сообщениями | 1.1 | 1.1 | 1.1 | 2.0 | 2.0 |
JTA | Java Transaction API — управление транзакциями | 1.0.1B | 1.1 | 1.1 | 1.2 | 1.2 |
JAAS | Java Authentication and Authorization Service — Java-реализация PAM | 1.0 | 1.0 | 1.0 | ||
JavaMail | Получение и отправка электронной почты | 1.2 | 1.4 | 1.4 | 1.5 | 1.6 |
JACC | Java Authorization Contract for Containers | 1.0 | 1.1 | 1.1 | 1.4 | 1.5 |
JCA | J2EE Connector Architecture | 1.5 | 1.5 | 1.6 | 1.6 | 1.7 |
JAF | JavaBeans Activation Framework | 1.0 | 1.1 | 1.1 | 1.1 | 1.1 |
StAX | Streaming API for XML | Нет | 1.0 | 1.0 | 1.0 | 1.0 |
CDI | Context and Dependency Injection | Нет | Нет | 1.0 | 1.1 | 2.0 |
Validation | Bean Validation | Нет | Нет | 1.0 | 1.1 | 2.0 |
Security | Java EE Security API | Нет | Нет | Нет | Нет | 1.0 |
API в Java EE
правитьJava EE API включает в себя несколько технологий, которые расширяют функциональность базовых Java SE API-интерфейсов.
javax.servlet. *
правитьСпецификация сервлетов определяет набор программных интерфейсов для обслуживания HTTP-запросов. Она включает в себя спецификации JavaServer Pages.
javax.websocket. *
правитьСпецификация Java API для WebSocket определяет набор программных интерфейсов для обслуживания WebSocket-соединений.
javax.faces. *
правитьЭтот пакет является корнем JavaServer Faces API. JSF — это технология для построения пользовательских интерфейсов из компонентов.
javax.faces.component. *
правитьЭтот пакет — составная часть JavaServer Faces (JSF) API.
javax.el. *
правитьЭтот пакет определяет классы и интерфейсы для языка выражений в Java EE. Expression Language (EL) — это простой язык, изначально предназначенный для удовлетворения конкретных потребностей разработчиков веб-приложений. Он используется, в частности, в JSF для связывания компонентов (backing) beans и в CDI name beans, но может быть использован для других платформ.
javax.enterprise.inject. *
правитьЭти пакеты определяют аннотации вложения для (CDI) API (англ.).
javax.enterprise.context. *
правитьЭти пакеты определяют контекст аннотации и интерфейсы для (CDI) API (англ.).
javax.ejb. *
правитьEnterprise JavaBean (EJB) определяет набор API-интерфейсов удалённого вызова процедур (с использованием RMI или RMI-IIOP), управление параллелизмом, инъекции зависимости и контроля доступа для бизнес-объектов. Этот пакет содержит классы и интерфейсы, определяющие связь между корпоративным компонентом и его клиентом, а также между корпоративным компонентом и EJB-контейнером.
javax.validation. *
правитьЭтот пакет содержит аннотации и интерфейсы для поддержки декларативной проверки Bean Validation[англ.] API. Bean Validation обеспечивает единый способ обеспечения ограничения на bean (например, классов JPA модели), что может быть реализовано с помощью cross-layer.
javax.persistence. *
правитьЭтот пакет содержит классы и интерфейсы, которые определяют связь между поставщиком, управляемым классом и клиентом Java Persistence API (JPA).
javax.transaction. *
правитьЭтот пакет предоставляет Java Transaction API (JTA), который содержит интерфейсы и аннотации для взаимодействия с поддержкой транзакций, предлагаемой Java EE.
javax.security.auth.message. *
правитьЭтот пакет предоставляет Java SPI (JASPIC), который содержит интерфейсы и классы для создания модулей аутентификации для безопасных "Java EE"-приложений.
javax.enterprise.concurrent. *
правитьЭтот пакет предоставляет интерфейсы для взаимодействия непосредственно с платформой Java EE, по умолчанию управляет запуском потоков.
javax.jms. *
правитьЭтот пакет определяет Java Message Server (JMS) API (Application Programming Interface). JMS API предоставляет для программ Java распространенный способ создавать, отправлять, получать и читать сообщения системы корпоративного обмена сообщениями.
javax.batch.api. *
правитьЭтот пакет определяет вступление AP для Java EE batch applications. Batch applications API предоставляет средства для запуска длительных фоновых задач, которые, возможно, связаны с большим объёмом данных.
javax.resource. *
правитьЭтот пакет определяет Java EE Connector Architecture[англ.]. Java EE Connector Architecture (JCA) является Java-технологией для решения проблем подключения серверов приложений к их корпоративным информационным системам (КИС) в рамках интеграции корпоративных приложений (EAI).
Сервер приложений
правитьСервер приложений J2EE (часто называемый J2EE-контейнер) — это реализация системы в соответствии со спецификацией J2EE, обеспечивающая работу модулей с логикой конкретного приложения. Включает в себя как минимум следующие сервисы:
- EJB-контейнер, который поддерживает автоматическую синхронизацию Java-объектов с базой данных (CMP — container managed persistence, BMP — bean managed persistence);
- JMS — сервис доставки сообщений между компонентами и серверами;
- управление ресурсами (доступ к СУБД, файловой системе, почтовому серверу и т. д.);
- безопасность и защита данных;
- поддержка транзакций (в том числе и распределённых, двухфазных). См. Java Transaction API.
- веб-сервер и сервлет-сервер;
- поддержка веб-сервисов.
- JSF
Разработчики J2EE-приложений также пишут свои программы в соответствии с спецификациями J2EE, что обеспечивает их работу внутри таких серверов.
Технологию J2EE рационально использовать для реализации крупных проектов, например, для организации сложных веб-порталов и предоставления услуг онлайн, особенно если необходимо обеспечить бесперебойную работу многих тысяч пользователей.
Свободные серверы с открытым исходным кодом
- GlassFish
- JBoss Application Server (Apache Tomcat optional)
- WildFly (наследник JBoss с поддержкой JavaEE7)
- Apache Geronimo (использует Apache Tomcat или Jetty)
- Apache TomEE и TomEE Plus (основан на Tomcat с использованием других технологий Apache, нет поддержки JavaEE Full Profile)
- Enhydra Enterprise (использует Apache Tomcat)
- JOnAS (использует Apache Tomcat)
- Resin (собственный Servlet- и EJB-контейнеры)
- Oracle Glassfish Server (Эталонная реализация на основе GlassFish)
Коммерческие серверы
- ATG Dynamo Application Server (DAS)
- IBM WebSphere
- SAP NetWeaver Application Server
- TmaxSoft JEUS
- Oracle WebLogic (BEA)
- Oracle Application Server
- Orion Application Server
- Borland Application Server
- Oracle iPlanet
Отдельные Servlet/JSP-контейнеры
- Apache Tomcat — Open Source
- Caucho Technology Resin — Open Source
- Enhydra Server — Open Source
- Jetty — Open Source
Отдельные EJB-контейнеры
- Apache OpenEJB — Open Source
См. также
правитьПримечания
править- ↑ The Eclipse Foundation’s Jakarta EE Working Group Releases Jakarta EE 10 — 2022.
- ↑ JSR 366: Java Platform, Enterprise Edition 8 (Java EE 8) Specification (англ.). Java Community Process. Дата обращения: 22 декабря 2017. Архивировано 22 марта 2018 года.
- ↑ "Компания Oracle выпустила Java SE 9 и Java EE 8". OpenNET. 2017-09-22. Архивировано 22 декабря 2017. Дата обращения: 22 декабря 2017.
- ↑ Mmayel, Shabnam; Obradovic, Tanja (2019-09-10). "Jakarta EE 8 Released!". News. Jakarta EE (Press release). Eclipse Foundation. Архивировано 5 марта 2022. Дата обращения: 5 марта 2022.
- ↑ Mmayel, Shabnam; Obradovic, Tanja (2020-12-08). "Jakarta EE 9 Released!". News. Jakarta EE (Press release). Eclipse Foundation. Архивировано 5 марта 2022. Дата обращения: 5 марта 2022.
- ↑ Obradovic, Tanja; Grimstad, Ivar (2021-05-25). "The Jakarta EE Working Group Releases Jakarta EE 9.1 as Industry Continues to Embrace Open Source Enterprise Java". News. Jakarta EE (Press release). Eclipse Foundation. Архивировано 5 марта 2022. Дата обращения: 5 марта 2022.
- ↑ Obradovic, Tanja; Grimstad, Ivar (2022-09-22). "The Eclipse Foundation's Jakarta EE Working Group Releases Jakarta EE 10 to Usher in the Era of Cloud Native Java". News. Jakarta EE (Press release). Eclipse Foundation. Архивировано 21 июля 2024. Дата обращения: 17 июля 2024.
Ссылки
правитьЛитература
править- Себастьян Дашнер. Изучаем Java EE. Современное программирование для больших предприятий. — СПб.: «Питер», 2018. — 384 с. — ISBN 978-5-4461-0774-2.
- Арун Гупта. Java EE 7. Основы = Java EE 7 Essentials. — М.: «Вильямс», 2014. — 336 с. — ISBN 978-5-8459-1896-3.
- Браун К.; Крейг Г.; Хестер Г. и др. Создание корпоративных Java-приложений для IBM WebSphere. — Кудиц-Образ, 2005. — 860 с. — ISBN 5-9579-0061-3, 0-321-18579-X.