J2EE, nebo v novějších verzích Java Platform, Enterprise Edition či jen Java EE, je platforma JAVA, která je určená pro vývoj a provoz podnikových informačních systémů a aplikací. Základem této platformy je platforma SE.

Jednotlivé části platformy jsou dány dílčími specifikacemi, které vytváří v rámci spolupráce více firem v rámci takzvaného Java Community Process (JCP). Jakýkoliv změnový požadavek je realizován v rámci tzv. Java Specification Request (JSR). Takové požadavky následně schvaluje odpovídající výbor JCP a v případě kladného vyjádření je sestavena pracovní skupina, která na příslušné specifikaci pracuje. Samotná specifikace prochází specifickými fázemi a schvalováním, které jsou v rámci daného JCP definovány. Ve výborech i pracovních skupinách pracují zástupci více firem. Výstupem následně je dokument se specifikací, případně JAVA kód, který definuje příslušná API. Pokud je specifikace schválena, je nutné vytvořit i takzvanou referenční implementaci dané specifikace a následně se provádí sada testů kompatibility.

Platforma JAVA EE se skládá z následujících součástí:

  • Java Servlet, JavaServer Pages (JSP) a JavaServer Faces (JSF) pro vývoj webových aplikací
  • Contexts and Dependency Injection pro vkládání potřebných závislostí
  • Java Persistence API pro zprostředkování přístupu k relačním databázím
  • Enterprise Java Beans (EJB) pro zajištění vývoje sdílené business logiky
  • Java Connector Architecture (JCA) pro přístup k legacy systémům
  • Java Messaging Services (JMS) za účelem přístupu ke zprávovému middleware
  • Portlety jako komponenty, které zajišťují integraci webových aplikací a portálů
  • Podpora Webových služeb

Aplikace platformy JAVA EE je vyvíjena na základě API a dalších fragmentů, které jsou definovány v rámci jednotlivých specifikací. Tyto aplikace používají jako běhové prostředí takzvaný aplikační server (AS). Tyto aplikační servery dodávají různí dodavatelé, a aplikace by měla podle teorie být provozovatelná na kterémkoliv z těch, které implementují danou verzi specifikace. Tomu se říká koncept přenositelnosti. Většina aplikační serverů ale doplňuje část vlastností nad rámec dané specifikace a tímto se aplikace stávají nepřenositelnými, pokud tyto vlastnosti využívají.

Aby byl aplikační server oficiálně označen za JAVA EE kompatibilní, je nutné, aby prošel kompletní sadou testů kompatibility u společnosti Sun Microsystems. Realizace těchto testů na sebe váže jisté politické problémy, proto existují servery, které specifikace splňují, ale oficiální označení nemají. Zároveň existují aplikační servery, které podporují pouze část platformy JAVA EE.

Dosavadní specifikace JAVA EE

Sun Microsystems vytvořila první specifikaci J2EE v letech 1999-2000. Od verze J2EE vývoj probíhá v rámci JCP.

  • J2EE 1.3 je definována JSR 58 a byla finalizována v roce 2001
  • J2EE 1.4 je definována JSR 151 a byla finalizována v roce 2003
  • JAVA EE 5 je definována JSR 244 a byla finalizována v roce 2006
  • JAVA EE 6 je definována JSR 316 a byla finalizována v roce 2009
  • JAVA EE 7 je definována JSR 342 a byla finalizována v roce 2013
  • JAVA EE 8 je definována JSR 366 a byla finalizována v roce 2017

Některé součásti JAVA EE

Servlet je programem napsaným v jazyce Java, který slouží jako nástroj pro tvorbu webových aplikací. Zpracovává HTTP požadavky a generuje HTML stránky.

Java Server Pages (JSP) jsou technologií používanou pro vývoj především dynamických HTML stránek, která je založená na jazyce Java. Původně ji vyvinul Sun, ale následně byla koupena společností Oracle.

Java Server Faces (JSF) se soustředí na čistější vývoj profesionálních webových aplikací. Vývojáři v rámci Java Server Faces definují uživatelské interface za pomocí speciálních XML tagů, na základě kterých jsou předávána data k zobrazení nebo editaci ze standardních Java beanů.

Java Persistence API (JPA) je standardem, který dává prostředky k objektově relačnímu mapování (ORM). To následně zjednodušuje práci s ukládáním objektů do databáze.

Enterprise Java Beans jsou řízené serverové komponenty, které umožňují modulární tvorbu podnikových aplikací.

Java Messaging Services slouží k zajištění integrace aplikací. Ty spolu mohou komunikovat prostřednictvím Java Messaging Services pomocí zpráv.

Portlety jsou webové komponenty, díky nimž je možné integrovat webové aplikace a portály. Mohou být používané jako výměnné komponenty v rámci uživatelského rozhraní, které poskytují prezentační vrstvu danému informačnímu systému. Součinnost mezi portlety a portály zajišťují API.