Java Enterprise Edition JEE

  • Definition

    The JEE is an umbrella specification that bundles many other specifications introduced by the Java Community Process (JCP). Many companies and open source foundations like Oracle, IBM or Apache belong to that community that is responsible to bring out the final proposal of each specification.

  • History

    I don't want to start from the beginning of JEE (so called JPE Project-Java Professional Edition) so lets start with version 1.2. Only the most important and last introduced APIs are shown in figure 1 below, for example the J2EE1.4 specification has already included 20 other specifications.

    Figure 1

    The first version of J2EE was solely developed by Sun in the year 1999 and included about ten Java Specification Requests (JSR) to build enterprise application with Java.

    The followed release was developed by the JCP under the JSR-58 and introduced new features like Entity Beans (EJB CMP) and XML descriptor files. To connect to legacy EIS (Enterprise Information Systems) the J2EE Connector Architecture (JCA) was involved too.

    Since J2EE1.4 (JSR-151) the specification includes support for web services, and a timer service to invoke bean operations in interval or at designated timepoints. The EJB standard emerged to version 2.1 (JSR-153).

    Most of the projects developed with J2EE complained about the system complexity and a the huge consumption of development time. J2EE was seen as a heavy-weight component model, difficult to test, to deploy and to run. That was the time when frameworks like Spring, Struts or Hibernate came up and presented a new way of developing Java enterprise applications.

    That's why JEE5 was invented. To address this problem domain. With JEE5 a remarkable improvement turned out and many API were reviewed and inspected to simplify the development process. EJB3 displaced the heavy EJB2.1 component model and Entity Beans were removed and displaced with the JPA (Java Persistence API). JavaServer Faces (JSF) was introduced as the standard presentation layer framework and the oldstyle JAX-WS2.0 webservice API was replaced by JAX-RPC as SOAP web services API.

    The JEE6 (JSR-316) follows the path of ease of development by embracing the concepts of annotations, POJOs (Plain Old Java Objects) and configuration-by-exception mechanism. It comes with RESTful webservices (JAX-RS 1.1), simplified EJB in version 3.1 (JSR-318) and enriched JPA2.0 (JSR-317) and timer service. The major theme of JEE6 is portability away application servers. Also some older specifications were marked as deprecated and will be removed in future.

    Content of the JEE5 specification:

    Figure 2
  • Where to start

    There are plenty of books available about the Java Enterprise Edition. We want to highlight a few of them and point out the most important chapters to read. It is worth to read the final JSR papers regarding the particular specifications (see JSR links).

    For rookies it is proposed to start with the book Beginning EJB 3 Application Development (Google Books) published by Apress.

    - EJB3 SessionBeans, chapter 2
    - EJB3 Message-Driven Beans, chapter 5
    - The Java Persistence API, chapter 3
    - Advanced features of the JPA, chapter 4

    Who want to know more about how transaction handling within the EJB container works is encouraged to read chapter 8 (Transaction Support).

    How a complete JEE application is bundled and deployed is mentioned in chapter 11 (EJB3 Deployment). It's recommended to have a understanding about the application is deployed and managed within the application server.

  • What's next

    For readers who want to dive deeper into the Enterprise JavaBeans technology we recommend the standard print from O'Reilly Enterprise JavaBeans 3.0 in the 5th. edition (Google Books). This book is fluent to read and any EJB developer should be familiar with it.

  • Java Persistence API (JPA)

    Because the Java Persistence API is a huge and important part of the Java Enterprise technology you should spend the time and have a closer look at it to obtain a deeper understanding how to deal with the JPA and how the persistence layer works in a container managed environment. To achieve this knowledge refer to Pro JPA 2 - Mastering the Java Persistence API (Google Books).

  • Training Material

    Registered users have access to the project media area to download additional training material.

    Free available slides can be viewed at slideshare.com/openwms. The site is updated from time to time.

    Screenscasts about the project itself will follow. You'll enjoy them with a beer at youtube.com/openwms.