Java architectures #3 – J2EE

J2EE stands for Java 2 Platform, Enterprise Edition and are a set of specifications that extend Java Standart Edition (SE) addressed to enterprise solutions. First release was J2EE 1.2 (December 12, 1999).

J2EE contains several specifications that serve different purposes, like generating web pages, reading and writing from a database in a transactional way, managing distributed queues [1].

This specifications would be implemented and supported by a J2EE application sever like JBoss or WebSphere.

J2EE tiers

J2EE specifications and technologies have changed within releases, but here’s an example from Java EE 5 (May, 2006):

Web technologies:

  • Java API for RESTful Web Services (JAX-RS)
  • Java API for XML-Based Web Services (JAX-WS)
  • Java Architecture for XML Binding (JAXB)
  • Java API for XML-Based RPC (JAX-RPC)

Web application technologies:

  • Java Servlet 3.0, 2.5
  • JavaServer Faces 2.0
  • JavaServer Pages 2.2/Expression Language 2.2
  • A Standard Tag Library for JavaServer Pages (JSTL)

Enterprise Application technologies:

  • Dependency Injection for Java 1.0
  • Enterprise JavaBeans 3.1
  • Java Persistence 2.0
  • Java Message Service API
  • Java Transaction API (JTA)
  • JavaMail 1.4

Note that some specifications like JDBC, JNI, RMI ansd others are supported in Java SE .

General View

EJB were one of the main aspects of J2EE but not the only, the goal was to provide a full set of solutions for web and enterprise applications.

Here an example of a J2EE solution architecture [3]:

Example of a J2EE app.

There would be different containers, Web and EJB and communication api’s like RMI or WebServices/SOAP.

End user application could be Swing, Java Applets or later, Web pages.