Java Platform, Enterprise Edition
Java Platform, Enterprise Edition (również jako Java Enterprise, J2EE oraz Java EE czasami tłumaczona jako Java Korporacyjna) jest szeroko rozpowszechnioną serwerową platformą programistyczną języka Java. Definiuje standard tworzenia aplikacji w języku programowania Java opartych na wielowarstwowej architekturze komponentowej. Komponenty są zwykle osadzane na serwerze aplikacyjnym obsługującym Java Enterprise. Standard ten określa zestaw interfejsów programistycznych jakich musi dostarczać zgodny serwer aplikacyjny.
Standard Java Enterprise aktualnie tworzony jest przez Oracle, które wykupiło oryginalnego twórcę – Sun Microsystems. Firma ta dostarcza poza definicją interfejsów programistycznych, wzorcową implementację serwera aplikacyjnego (otwarta wersja: GlassFish, komercyjna Sun Java System Application Server).
Rozwiązanie oparte na Java Enterprise powinno poprawnie funkcjonować na dowolnej platformie sprzętowej, systemie operacyjnym czy też serwerze aplikacji Java Enterprise. Zdarza się, iż aplikacje wymagają pewnych zmian przy przenoszeniu na inny serwer. Wynika to z faktu, iż nie wszystkie aspekty funkcjonowania aplikacji są objęte specyfikacją.
Standardowe API
edytujStandard Java Enterprise obejmuje obecnie interfejsy programistyczne do:
- łączenia ze sobą oraz wdrażania komponentów
- tworzenia komponentów implementujących logikę biznesową w tym komponentów obsługujących komunikację asynchroniczną (EJB)
- obsługi komunikacji za pomocą komunikatów (JMS)
- dostępu do danych za pomocą mapowania obiektowo relacyjnego (JPA)
- zapewnienia transakcyjności operacji (JTA)
- zapewnienia bezpieczeństwa
- definiowania interfejsu użytkownika typu thin client (Servlet API, JSP, JSF)
- obsługi technologii XML-owych oraz usług sieciowych (JAX-WS, JAX-RPC, JAXB, SAAJ, StAX)
- wysyłania poczty (Java Mail)
Standardowe i alternatywne narzędzia
edytujTermin Java Enterprise jest często kojarzony z ogółem technologii umożliwiających tworzenie aplikacji typu enterprise. Wówczas pod pojęciem Java Enterprise rozumie się nie tylko zestaw standardowych interfejsów programistycznych i architekturą komponentową, lecz również narzędzia często wykorzystywane przy tworzeniu takich rozwiązań. Do narzędzi takich można zaliczyć:
- Ant, Maven – automatyzacja procesu budowania aplikacji,
- XDoclet – generowanie kodu, plików konfiguracyjnych czy skryptów,
- różne narzędzia do testowania: JUnit, Cactus.
Ponadto do narzędzi takich zaliczane bywają alternatywy dla standardowych interfejsów Java Enterprise:
- narzędzia do mapowania obiektowo-relacyjnego: iBATIS – alternatywy dla JPA,
- frameworki tworzenia interfejsu użytkownika w technologii w aplikacjach internetowych JSF, Struts, WebWork, Spring Framework, JBoss SEAM Framework – alternatywy dla JSP.
Historia
edytujPoczątki Java Enterprise sięgają grudnia 1999 roku, kiedy to została wydana wersja J2EE 1.2. Zakres API wchodzących w skład Java Enterprise zmieniał się w kolejnych wersjach. Niektóre interfejsy były zastępowane przez nowsze wersje, inne przenoszone do zestawu API Java Standard Edition. W każdej wersji definiowano nową wersję standardu Java Platform oznaczaną numerem wydania. Pozostałe zmiany zostały zaprezentowane poniżej.
J2EE 1.2
edytuj- J2EE Connector 1.0
- Enterprise JavaBeans 1.1
- Enterprise JavaBeans to CORBA Mapping 1.1
- JavaServer Pages 1.1
- Java Servlet 2.2
- Java Naming and Directory Interface 1.2.1
- JDBC 3.0, JDBC Optional Package API 2.0
- JavaMail API 1.1
- JavaBeans Activation Framework 1.0.1
- Java Transaction API 1.0.1
- Java Transaction Service 1.1
- RMI over IIOP
- Java IDL API
J2EE 1.3
edytuj- Enterprise JavaBeans 2.0
- JavaServer Pages 1.2
- Java Servlet 2.3
- Java Message Service 1.0.2b
- JavaMail API 1.2
- Java Transaction API 1.0.1B
- Java Transaction Service 1.0
J2EE 1.4
edytuj- J2EE Connector 1.5
- J2EE Deployment API 1.1
- J2EE Management 1.0
- Enterprise JavaBeans 2.1
- Java API for XML Processing 1.2
- Java API for XML Registries 1.0
- Java API for XML-based RPC 1.1
- Java Authorization Contract for Containers 1.0
- Java Message Service 1.1
- Java Servlet 2.4
- JavaBeans Activation Framework 1.0.2
- JavaMail API 1.3
- JavaServer Pages 2.0
- SOAP with Attachments API for Java 1.2
Java EE 5
edytuj- Implementing Enterprise Web Services
- Java API for XML-Based Web Services (JAX-WS) 2.0
- Java Architecture for XML Binding (JAXB) 2.0
- SOAP with Attachments API for Java (SAAJ)
- Streaming API for XML
- Web Service Metadata for the Java Platform
- JavaServer Faces 1.2
- JavaServer Pages 2.1
- JavaServer Pages Standard Tag Library
- Java Servlet 2.5
- Common Annotations for the Java Platform
- Enterprise JavaBeans 3.0
- JavaBeans Activation Framework (JAF) 1.1
- JavaMail API 1.4.1
- Java Message Service API
- Java Persistence API
- Java Transaction API (JTA) 1.1
Java EE 6
edytuj- Java API for RESTful Web Services (JAX-RS) 1.1
- Implementing Enterprise Web Services 1.3
- Java API for XML-Based Web Services (JAX-WS) 2.2
- Java Architecture for XML Binding (JAXB) 2.2
- Web Services Metadata for the Java Platform
- Java API for XML-Based RPC (JAX-RPC) 1.1
- Java APIs for XML Messaging 1.3
- Java API for XML Registries (JAXR) 1.0
- Java Servlet 3.0
- JavaServer Faces 2.0
- JavaServer Pages 2.2/Expression Language 2.2
- Standard Tag Library for JavaServer Pages (JSTL) 1.2
- Debugging Support for Other Languages 1.0
- Contexts and Dependency Injection for Java (Web Beans 1.0)
- Dependency Injection for Java 1.0
- Bean Validation 1.0
- Enterprise JavaBeans 3.1 (includes Interceptors 1.1)
- Java EE Connector Architecture 1.6
- Java Persistence 2.0
- Common Annotations for the Java Platform 1.1
- Java Message Service API 1.1
- Java Transaction API (JTA) 1.1
- JavaMail 1.4
Java EE 7
edytuj- Java API for RESTful Web Services (JAX-RS) 2.0
- Java API for WebSocket (WebSocket) 1.0
- Java API for JSON Processing (JSON-P) 1.0
- Java Servlet 3.1
- JavaServer Faces 2.2
- JavaServer Pages 2.3
- Expression Language 3.0
- Bean Validation 1.1
- Enterprise JavaBeans 3.2
- Java Persistence 2.1
- Common Annotations for the Java Platform 1.2
- Java Message Service API 2.0
- Java Transaction API (JTA) 1.2