Из Википедии, бесплатной энциклопедии
  (Перенаправлено с Java EE )
Перейти к навигации Перейти к поиску

Jakarta EE , ранее называвшаяся Java Platform, Enterprise Edition ( Java EE ) и Java 2 Platform, Enterprise Edition ( J2EE ), представляет собой набор спецификаций, расширяющих Java SE [1] спецификациями для корпоративных функций, таких как распределенные вычисления и веб-сервисы . [2] Приложения Jakarta EE запускаются в эталонных средах выполнения , которые могут быть микросервисами или серверами приложений , которые обрабатывают транзакции, безопасность, масштабируемость, параллелизм и управление развертываемыми компонентами.

Jakarta EE определяется его спецификацией . Спецификация определяет API ( интерфейс прикладного программирования) и их взаимодействие. Как и в случае с другими спецификациями Java Community Process , поставщики должны соответствовать определенным требованиям, чтобы декларировать свои продукты как Jakarta EE-совместимые .

Примеры контекстов, в которых используются среды выполнения ссылок Jakarta EE: электронная коммерция , бухгалтерский учет, банковские информационные системы.

История [ править ]

Платформа была известна как Java 2 Platform, Enterprise Edition или J2EE с версии 1.2, пока название не было изменено на Java Platform, Enterprise Edition или Java EE в версии 1.5.

Java EE поддерживается Oracle в рамках процесса сообщества Java . 12 сентября 2017 года корпорация Oracle объявила, что отправит Java EE в Eclipse Foundation . [3] Проект верхнего уровня Eclipse получил название Eclipse Enterprise for Java (EE4J). [4] Eclipse Foundation была вынуждена изменить название, потому что Oracle владеет торговой маркой для названия «Java» и переименовала платформу Java EE в Jakarta EE. [5] [6] Это название не следует путать с бывшим проектом Jakarta Project, который способствовал развитию ряда текущих и бывших проектов Java в Apache Software Foundation .

  • J2EE 1.2 (12 декабря 1999 г.)
  • J2EE 1.3 (24 сентября 2001 г.)
  • J2EE 1.4 (11 ноября 2003 г.)
  • Java EE 5 (11 мая 2006 г.)
  • Java EE 6 (10 декабря 2009 г.)
  • Java EE 7 (28 мая 2013 г.) [7], но 5 апреля 2013 г. в соответствии со спецификацией. Запланированная дата начала работы - 12 июня 2013 г. [8]
  • Java EE 8 (31 августа 2017 г.) [9]
  • Jakarta EE 8 (10 сентября 2019 г.) [10] - полностью совместим с Java EE 8
  • Jakarta EE 9 (22 ноября 2020 г.) [11] - изменение пространства имен javax. * На jakarta. *.

Технические характеристики [ править ]

Jakarta EE включает несколько спецификаций, которые служат различным целям, таким как создание веб-страниц, чтение и запись из базы данных транзакционным способом, управление распределенными очередями.

API-интерфейсы Jakarta EE включают несколько технологий, расширяющих функциональные возможности базовых API-интерфейсов Java SE , таких как Jakarta Enterprise Beans , соединители , сервлеты , серверные страницы Jakarta и несколько технологий веб-сервисов .

Веб-спецификации [ править ]

  • Сервлет Jakarta : определяет, как управлять HTTP-запросами синхронным или асинхронным способом. Это низкий уровень, и другие спецификации Jakarta EE полагаются на него;
  • Jakarta WebSocket: спецификация API, определяющая набор API для обслуживания соединений WebSocket ;
  • Jakarta Faces : технология построения пользовательских интерфейсов из компонентов;
  • Jakarta Expression Language ( EL ) - это простой язык, изначально разработанный для удовлетворения особых потребностей разработчиков веб-приложений. Он используется специально в Jakarta Faces для привязки компонентов к (поддержки) bean-компонентов, а также в Contexts and Dependency Injection к именованным bean-компонентам, но может использоваться во всей платформе.

Спецификации веб-сервисов [ править ]

  • Веб-службы Jakarta RESTful обеспечивают поддержку в создании веб-служб в соответствии с архитектурным шаблоном передачи репрезентативного состояния (REST);
  • Jakarta JSON Processing - это набор спецификаций для управления информацией, закодированной в формате JSON;
  • Jakarta JSON Binding предоставляет спецификации для преобразования информации JSON в классы Java или из них;
  • Связывание Jakarta XML позволяет отображать XML в объекты Java;
  • Веб-службы Jakarta XML могут использоваться для создания веб-служб SOAP.

Спецификации предприятия [ править ]

  • Jakarta Contexts and Dependency Injection ( CDI ) - это спецификация для предоставления контейнера для внедрения зависимостей ;
  • Спецификация Jakarta Enterprise Beans ( EJB ) определяет набор облегченных API-интерфейсов, которые контейнер объектов (контейнер EJB) будет поддерживать для обеспечения транзакций (с использованием JTA ), удаленных вызовов процедур (с использованием RMI или RMI-IIOP ), управления параллелизмом , зависимостей. внедрение и контроль доступа к бизнес-объектам. Этот пакет содержит классы и интерфейсы Jakarta Enterprise Beans, которые определяют контракты между корпоративным компонентом и его клиентами, а также между корпоративным компонентом и контейнером ejb.
  • Jakarta Persistence ( JPA ) - это спецификации объектно-реляционного сопоставления между таблицами базы данных отношений и классами Java.
  • Jakarta Transactions ( JTA ) содержит интерфейсы и аннотации для взаимодействия с поддержкой транзакций, предлагаемой Jakarta EE. Несмотря на то, что этот API абстрагируется от действительно низкоуровневых деталей, интерфейсы также считаются несколько низкоуровневыми, и предполагается, что средний разработчик приложений в Jakarta EE либо полагается на прозрачную обработку транзакций абстракциями EJB более высокого уровня, либо использует аннотации, предоставляемые этим API в сочетании с управляемыми компонентами CDI.
  • Jakarta Messaging ( JMS ) предоставляет программам Java общий способ создания, отправки, получения и чтения сообщений корпоративной системы обмена сообщениями.

Другие характеристики [ править ]

  • Проверка: этот пакет содержит аннотации и интерфейсы для поддержки декларативной проверки, предлагаемой Bean Validation API. Проверка bean-компонентов обеспечивает унифицированный способ предоставления ограничений для bean-компонентов (например, классов модели JPA), которые могут применяться на нескольких уровнях. В Jakarta EE JPA учитывает ограничения проверки bean-компонентов на уровне сохраняемости, а JSF - на уровне представления.
  • Jakarta Batch предоставляет средства для пакетной обработки в приложениях для выполнения длительных фоновых задач, которые могут включать большой объем данных и которые, возможно, необходимо периодически выполнять.
  • Jakarta Connectors - это инструмент на основе Java для подключения серверов приложений и корпоративных информационных систем ( EIS ) в рамках интеграции корпоративных приложений ( EAI ). Это низкоуровневый API, предназначенный для поставщиков, с которыми средний разработчик приложений обычно не контактирует.

Интернет-профиль [ править ]

В попытке ограничить размер веб-контейнеров как в физическом, так и в концептуальном плане был создан веб-профиль, являющийся подмножеством спецификаций Jakarta EE. Веб-профиль Jakarta EE включает следующее:

Сертифицированные справочные среды выполнения [ править ]

Хотя по определению все реализации Jakarta EE предоставляют один и тот же базовый уровень технологий (а именно, спецификацию Jakarta EE и соответствующие API-интерфейсы), они могут значительно отличаться в отношении дополнительных функций (таких как соединители , кластеризация , отказоустойчивость , высокая доступность , безопасность , и т. д.), установленный размер, объем памяти, время запуска и т. д.


Джакарта ЭЭ [15] [16] [ править ]

Java EE [ править ]

Пример кода [ править ]

Пример кода, показанный ниже, демонстрирует, как различные технологии в Java EE 7 используются вместе для создания веб-формы для редактирования пользователя.

В Jakarta EE (веб-интерфейс) пользовательский интерфейс может быть построен с использованием Jakarta Servlet , Jakarta Server Pages ( JSP ) или Jakarta Server Faces ( JSF ) с Facelets . В приведенном ниже примере используются Faces и Facelets . Явно не показано, что входные компоненты используют Jakarta EE Bean Validation API для проверки ограничений.

<html  xmlns = "http://www.w3.org/1999/xhtml"  xmlns: h = "http://xmlns.jcp.org/jsf/html"  xmlns: f = "http: //xmlns.jcp .org / jsf / core " > <f: metadata>  <f: viewParam  name = "user_id"  value = "# {userEdit.user}"  converter = "# {userConvertor}"  />  </ f: metadata> <h: body> <h: messages  /> <h: form>  <h: panelGrid  columns = "2" >  <h: outputLabel  for = "firstName"  value = "Имя"  />  <h: inputText  id = "firstName"  value = "# {userEdit.user. firstName} "  label = " Имя "  /> <h: outputLabel  for = "lastName"  value = "Last name"  />  <h: inputText  id = "lastName"  value = "# {userEdit.user.lastName}"  label = "Фамилия"  /> <h: commandButton  action = "# {userEdit.saveUser}"  value = "Сохранить"  />  </ h: panelGrid>  </ h: form> </ h: body> </html>

Пример класса Backing Bean [ править ]

Для облегчения просмотра Jakarta EE использует концепцию, называемую «Backing Bean». В приведенном ниже примере используется внедрение контекстов и зависимостей (CDI) и Jakarta Enterprise Beans ( EJB ).

@Named @ViewScoped публичный  класс  UserEdit  { частный  пользователь-  пользователь ; @Inject  private  UserDAO  userDAO ; общедоступная  строка  saveUser ()  {  userDAO . сохранить ( этот . пользователь );  addFlashMessage ( «Пользователь»  +  этот . пользователь . getId ()  +  «сохранен» ); вернуть  "users.xhtml? faces-redirect = true" ;  } public  void  setUser ( Пользователь-  пользователь )  {  this . пользователь  =  пользователь ;  } общедоступный  пользователь  getUser ()  {  возвращаемый  пользователь ;  } }

Пример класса объекта доступа к данным [ править ]

Для реализации бизнес-логики Jakarta Enterprise Beans ( EJB ) является специальной технологией в Jakarta EE. Для фактического сохранения может использоваться JDBC или Jakarta Persistence (JPA). В приведенном ниже примере используются EJB и JPA. Явно не показано, что JTA используется EJB для управления транзакционным поведением.

@Stateless общедоступный  класс  UserDAO  { @PersistenceContext  private  EntityManager  entityManager ; public  void  save ( Пользователь-  пользователь )  {  entityManager . персистировать ( пользователь );  } public  void  update ( Пользователь-  пользователь )  {  entityManager . слияние ( пользователь );  } общедоступный  список < Пользователь >  getAll ()  {  return  entityManager . createNamedQuery ( "User.getAll" ,  User . класс )  . getResultList ();  }}

Пример класса сущности [ править ]

Для определения классов сущностей / моделей Jakarta EE предоставляет Jakarta Persistence ( JPA ), а для выражения ограничений этих сущностей - API проверки компонентов. В приведенном ниже примере используются обе эти технологии.

@Entity public  class  User  { @Id  @GeneratedValue ( стратегия  =  IDENTITY )  частный  Целочисленный  идентификатор ; @Size ( min  =  2 ,  message = "Имя слишком короткое" )  private  String  firstName ; @Size ( min  =  2 ,  message = "Слишком короткая фамилия" )  private  String  lastName ; общедоступное  целое число  getId ()  {  идентификатор возврата  ; }  public  void  setId ( Целочисленный  идентификатор )  {  this . id  =  id ;  } общедоступная  строка  getFirstName ()  {  return  firstName ;  } public  void  setFirstName ( String  firstName )  {  this . firstName  =  firstName ;  } общедоступная  строка  getLastName ()  {  return  lastName ;  } public  void  setLastName ( String  lastName )  {  это . lastName  =  lastName ;  }}

См. Также [ править ]

  • Веб-контейнер
  • Дескриптор развертывания
  • Java BluePrints
  • Сервер системного портала Sun Java
  • Лицензия сообщества Sun на исходный код
  • Лицензия на исследования Java

Ссылки [ править ]

  1. ^ «Различия между Java EE и Java SE - Ваша первая чашка: Введение в платформу Java EE» . Docs.oracle.com. 2012-04-01 . Проверено 18 июля 2012 .
  2. ^ «Обзор Java EE» . Корпорация Oracle . Проверено 26 февраля 2017 года .
  3. ^ Джон К. Уотерс (2017-09-12). «Java EE переходит на платформу Eclipse Foundation» . ADTmag . Проверено 13 сентября 2017 .
  4. ^ Битон, Уэйн. «EE4J FAQ | Фонд Eclipse» . www.eclipse.org .
  5. ^ Chirgwin, Ричард (4 марта 2018). «Java EE переименована в« Jakarta EE »после спора с брендом Big Red» . Программное обеспечение. Реестр . Проверено 19 марта 2018 .
  6. Перейти ↑ Vaughan-Nichols, Steven J. (5 марта 2018 г.). «Прощай, JEE, привет, Джакарта, ЭЭ» . Linux и открытый исходный код. ZDNet . Проверено 10 июля 2020 .
  7. ^ a b «JSR 342: Спецификация платформы Java ™, Enterprise Edition 7 (Java EE 7)» . Процесс сообщества Java .
  8. ^ Вильдт, Тори. «Представляем Java EE 7: начало 12 июня» . Архивировано из оригинала на 2013-09-13 . Проверено 28 мая 2013 .
  9. ^ a b «Спецификация платформы Java, Enterprise Edition (Java EE), v8» (PDF) . Oracle.
  10. ^ "Джакарта EE 8" . projects.eclipse.org . Проверено 11 июля 2020 .
  11. ^ "Джакарта EE 9" . eclipse.org . Проверено 23 ноября 2020 .
  12. ^ «JSR 316: платформа Java ™, Enterprise Edition 6 (Java EE 6) Specification» . Процесс сообщества Java .
  13. ^ «Необходимые компоненты» . WebProfile. Jakarta EE . Проверено 11 июля 2020 .
  14. ^ "Jakarta EE WebProfile" . jakarta.ee . Проверено 15 июля 2020 .
  15. ^ «Продукты, совместимые с Jakarta EE 9» . Jakarta.ee .
  16. ^ «Продукты, совместимые с Jakarta EE 8» . Jakarta.ee .
  17. ^ a b c d e f g «Совместимость с Java EE» . www.oracle.com . Проверено 5 августа 2018 .
  18. ^ a b c d e f g «Совместимость с Java EE» .
  19. ^ a b «Сравнение GlassFish Open Source Edition версий 2.x и 3.0.x» . Архивировано из оригинала на 2012-12-20.
  20. ^ «Совместимость с Java EE» . Java.sun.com. 2010-09-07 . Проверено 18 июля 2012 .
  21. ^ "Oracle Weblogic Server 14.1.1" . www.oracle.com .
  22. ^ "Oracle Weblogic Server 12.1.1" . www.oracle.com .
  23. ^ Лайонс, Уилл; Хамфри, Питер (2011). «Oracle Web Logic Server 12c: разработка современных легких приложений Java EE 6» (PDF) . Архивировано из оригинального (PDF) 15 декабря 2011 года . Проверено 3 декабря 2011 .
  24. ^ «Совместимость с Java EE» . www.oracle.com .
  25. ^ "JBoss AS 7.1.0.Final" Thunder "выпущен - полный профиль Java EE 6 сертифицирован! | Моя Wiki | Сообщество Planet JBoss" . Planet.jboss.org. 2012-02-17 . Проверено 18 июля 2012 .
  26. ^ "Сервер приложений JBoss - Сообщество JBoss" .
  27. ^ "Сервер приложений JBoss - Сообщество JBoss" .
  28. ^ «Совместимость с Java EE» .
  29. ^ "JBoss AS теперь сертифицирован EE5!" . 15 сентября 2008 года архивации с оригинала на 20 сентября 2008 года . Проверено 7 августа +2016 .
  30. ^ «Доступность Red Hat JBoss Enterprise Application Platform 7.2» .
  31. ^ Деловой провод (2012-06-20). «Red Hat запускает платформу корпоративных приложений JBoss 6, чтобы помочь предприятиям перенести разработку и развертывание приложений в облако» . Деловой провод . Проверено 18 июля 2012 .
  32. ^ «Что нового в WebSphere Application Server V8» . Ibm.com . Проверено 18 июля 2012 .
  33. ^ a b «IBM WebSphere Application Server Liberty поставляет первый готовый к работе, Java EE 8-совместимый сервер приложений и расширяет поддержку приложений Spring Boot» . IBM . Проверено 12 июля 2018 .
  34. ^ «Java EE 7 - Протестированные конфигурации - IBM WebSphere Application Server Liberty Profile» . Oracle.com .
  35. ^ "Java EE 7 приземлился в WAS Liberty - WASdev" . 25 июня 2015 г.
  36. ^ «Протестированные конфигурации веб-профиля IBM Java EE 6» .
  37. ^ "Apache Geronimo: Указатель" . geronimo.apache.org . 25 января 2010 г.
  38. ^ «Apache Geronimo полностью сертифицирован для Java EE 6 - The H Open: Новости и возможности» . H-online.com. 2011-11-14. Архивировано из оригинального 20 апреля 2012 года . Проверено 18 июля 2012 .
  39. ^ «Протестированные конфигурации, Java EE 6 - TMAX JEUS 7» . Oracle.com. 2010-09-07 . Проверено 18 июля 2012 .
  40. ^ "Сервер веб-приложений Java EE6, программное обеспечение WAS" . Us.tmaxsoft.com. Архивировано из оригинала на 2012-07-02 . Проверено 18 июля 2012 .
  41. ^ «Java EE 6 - Протестированные конфигурации, Java EE 6 - Hitachi uCosminexus Application Server v9.0» . Oracle.com.
  42. ^ «Fujitsu Interstage Application Server под управлением Windows Azure» . Архивировано из оригинального 10 августа 2011 года.
  43. ^ «Протестированные конфигурации, Java EE6 - Fujitsu Interstage» . Oracle.com. 2010-09-07 . Проверено 18 июля 2012 .
  44. ^ "Fujitsu выпускает межкаскадный сервер приложений V10.1" . Fujitsu.
  45. ^ "Сертификация сервера приложений NEC WebOTX V9.x" .
  46. ^ "Apache TomEE" . Openejb.apache.org . Проверено 18 июля 2012 .
  47. ^ "MarketWatch.com" . MarketWatch.com . Проверено 18 июля 2012 .
  48. ^ TomEE, Apache. «Apache TomEE 7.0.1» .
  49. ^ "Веб-профиль Java EE 6 сервера приложений смолы" (PDF) . caucho.com . 2011 г.
  50. ^ "Пожалуйста, приветствуйте Siwpas как сертифицированный вариант Java EE!" . Oracle.com . Проверено 7 декабря 2015 .
  51. ^ "Выпущен JOnAS 5.3.0 RC1" . jonas.ow2.org . 2013-01-07. Архивировано из оригинала на 2013-10-15 . Проверено 25 февраля 2014 .
  52. ^ «Сертифицирован веб-профиль SAP NetWeaver Cloud Java EE 6! (Аквариум)» .
  53. ^ «Программные решения SAP - бизнес-приложения и технологии» .

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • Гупта, Арун (2013). Java EE 7 Essentials . О'Рейли.
  • Гонсалвес, Антонио (2013). Начиная с Java EE 7 . АПресс.
  • Java EE от Oracle Technology Network
  • Страница совместимости Oracle с Java EE - Сертифицированные реализации, совместимые с Java EE
  • Базовые шаблоны J2EE
  • Краткое руководство, знакомящее начинающих разработчиков Java EE с платформой Java EE