J2EE, or in the newest versions of Java Platform, Enterprise Edition or just Java EE, is a JAVA platform, which is intended for the development and operation of the business information systems and applications. The basis of this platform is SE platform.

Individual parts of platforms are given by the partial specifications, which are created by multi-company cooperation within i. e. Java Community Process (JCP). Any change request is realized within the Java Specification Request (JSR). These requirements are subsequently approved by the corresponding committee JCP and in a case of positive expression is put together a work group, which works on a relevant specification. The specification itself goes through specific fazes and approvals, which are within the given JCP defined. In committees and work groups work representatives of several companies. The output is then a document with specification, eventually JAVA code, which defines relevant API. If the specification is approved, it is necessary to create the reference implementation of the specification and subsequently is performed set of compatibility tests.

Platform JAVA EE consists of these parts:

  • Java Servlet, JavaServer Pages (JSP) and JavaServer Faces (JSF) for the web application development
  • Contexts and Dependency Injection for inserting the needed dependencies
  • Java Persistence API for providing the access to relational databases
  • Enterprise Java Beans (EJB) for security development of shared business logic
  • Java Connector Architecture (JCA) for access to legacy systems
  • Java Messaging Services (JMS) for the need of access to messaging middleware
  • Portlets are components, which ensure web app and portal integration
  • Web services support

JAVA EE platform application is developed on the base of API and other fragments, which are defined within individual specifications. These applications use application sever (AS) as runtime environment. These app servers are supplied by different suppliers, and application should be, according to the theory, operable on any of them, which implement given version of specification. That is called concept of portability. Most of application servers complete part of the features beyond the specification, therefore the applications become non-transferable, if they use these features.

It is necessary, for the application server to be formally marked as JAVA EE compatible, to go through the complete set of compatibility tests in the Sun Microsystems company. Realization of these tests bounds to themselves political problems, that’s why exist servers, which meet the specifications, but don’t have official marking. There also exist application servers, which support only part of JAVA EE platform.

Current JAVA EE specification

Sun Microsystems created first specification J2EE in 1999-2000. From the version J2EE is the development within JCP.

  • J2EE 1.3 is defined by JSR 58 and was finalized in 2001
  • J2EE 1.4 is defined by JSR 151 and was finalized in 2003
  • JAVA EE 5 is defined by JSR 244 and was finalized in 2006
  • JAVA EE 6 is defined by JSR 316 and was finalized in 2009
  • JAVA EE 7 is defined by JSR 342 and was finalized in 2013
  • JAVA EE 8 is defined by JSR 366 and was finalized in 2017

Some parts of JAVA EE

Servlet is written by program in Java language, which serves as a tool for web app creating. It processes HTTP requirements and generates HTML sites.

Java Server Pages (JSP) are a technology used primarily for dynamical HTML page development, which is based on an original Java language. Originally it had been developed by Sun, but then it was bought by the Oracle company.

Java Server Faces (JSF) is focusing on a clearer development of professional web apps. Developers within Java Server Faces define user interface with the help of special XML tags, based on which are data passed to display or editing from standard Java beans.

Java Persistence API (JPA) is standard, which gives resources to object-based mapping (ORM). That then simplifies the work with saving the objects to database.

Enterprise Java Beans are managed server components, which enables modular creation of business applications.

Java Messaging Services serves to secure app integration. Those can communicate together through Java Messaging Services through messages.

Portlets are web components, thanks to which is possible to integrate web apps and portals. They can be used as changeable components within user interface, which provide presentation layer of information system. Synergy between portlets and portals provides API.