Jakarta EE

Jakarta EE, před rokem 2018 označovaná jako Java Platform, Enterprise Edition neboli Java EE, ještě dříve jako Java 2 Enterprise Edition nebo J2EE, je součást platformy Java určená pro vývoj a provoz podnikových aplikací a informačních systémů. Součásti platformy jsou definovány nad platformou Java SE.

Vývoj platformy

Jednotlivé součásti platformy Java EE jsou definovány pomocí dílčích specifikací, které jsou vytvářeny ve spolupráci více firem v rámci tzv. Java Community Process (JCP). Vlastní Java EE je poté definována zastřešující specifikací opět vyvíjenou v rámci JCP. Tato specifikace především fixuje konkrétní verze jednotlivých dílčích specifikací patřících do dané verze Java EE.

Historie

Původní specifikace J2EE byla vytvořena firmou Sun Microsystems zhruba v letech 1999 – 2000. Od J2EE 1.3 je vývoj veden v rámci JCP.

  • JSR 58 definuje J2EE 1.3 – finalizována v roce 2001.
  • JSR 151 definuje J2EE 1.4 – finalizována v roce 2003.
  • JSR 244 definuje Java EE 5 – finalizována v roce 2006.
  • JSR 316 definuje Java EE 6 – finalizována v roce 2009.
  • JSR 342 definuje Java EE 7 – finalizována v roce 2013.
  • JSR 366 definuje Java EE 8 – finalizována v roce 2017
  • Jakarta EE 8 – finalizována v září 2019, plně kompatibilní s Java EE 8[1]

Součásti platformy

Součástí platformy jsou především specifikace pro:

  • vývoj webových aplikací – Java Servlet, Java Server Pages (JSP), JavaServer Faces (JSF)
  • Contexts and Dependency Injection – vkládání závislostí
  • přístup k relačním databázím – Java Persistence API
  • vývoj sdílené business logiky – Enterprise Java Beans (EJB)
  • přístup k legacy systémům – Java Connector Architecture (JCA)
  • přístup ke zprávovému middleware – Java Messaging Services (JMS)
  • komponenty zajišťující integraci webových aplikací a portálů – Portlety
  • podpora technologií Webových služeb

Vývoj a provoz aplikací

Aplikace pro platformu Java EE jsou vyvíjeny na základě API a dalších fragmentů definovaných v jednotlivých specifikacích. Běhovým prostředím pro tyto aplikace je poté tzv. Aplikační Server (dále AS). Tyto AS jsou dodávány různými dodavateli, aplikace by teoreticky měla být provozovatelná na kterémkoliv AS kteréhokoliv dodavatele implementujícím příslušnou verzi specifikace – koncept přenositelnosti. Většina AS však doplňuje některé vlastnosti nad rámec specifikace a aplikace využívající těchto vlastností poté nejsou přenositelné.

Významné aplikační servery

Aby mohl aplikační server oficiálně používat označení „Java EE kompatibilní“ musí projít kompletní sadou testů kompatibility u Sun Microsystems. S realizací těchto oficiálních testů jsou někdy spojeny různé „politické“ problémy a proto je některé servery nemají, i když specifikace splňují. Některé aplikační servery navíc mohou podporovat pouze některé součásti platformy Java EE.

  • Open Source aplikační servery
    • GlassFish
    • JBoss
    • JOnAS
    • Apache Geronimo
    • Apache Tomcat (částečná implementace)
  • Komerční aplikační servery
    • IBM WebSphere
    • Oracle WebLogic Server

Virtualizace aplikačních serverů

Java EE aplikační servery

  • JBoss
  • IBM WebSphere
  • BEA WebLogic

lze virtualizovat komerčním softwarem

  • FabricServer DataSynapse J2EE virtualization

Reference

  1. Welcome to the Future of Cloud Native Java [online]. Eclipse, 2019-09-10 [cit. 2019-09-12]. Dostupné online. (anglicky) 

Externí odkazy

  • Logo Wikimedia Commons Obrázky, zvuky či videa k tématu Java EE na Wikimedia Commons
  • Oficiální stránky Jakarta EE
Java
Platforma Java
Java (jazyk) • Micro Edition • Standard EditionEnterprise EditionJava CardJavaFXJDK • Android SDK
Java Virtual Machine
Java Virtual MachineHotSpotOpenJDK • Da Vinci Machine • Squawk • Maxine VM • JRockit • Kaffe • Apache Harmony
JVM programovací jazyky
BeanShell • ClojureGroovy • Java Tcl • JRubyJython • Rhino • Nashorn • Scala • Fantom • Kotlin
Nasazení aplikací
AppletyServletyMIDletyJSPWeb Start (JNLP) • .class • .jar
Frameworky a knihovny
SE
AWTSWT • Swing • JUnit • GNU Classpath • XMLBeans
EE
Hibernate • TopLink • Apache Wicket Apache StrutsSpring Framework • JBoss Application Server • FaceletsGlassFish
Ostatní