Java Platform, Enterprise Edition

Java Platform, Enterprise Edition, abbreviated as Java EE or J2EE earlier, is the specification of a software architecture for transaction based execution of programmed in Java applications and especially web applications. She is one of the major platforms that compete for the middleware market. The main competitor is the. NET platform from Microsoft.

In the specification of the software components and services are defined, which are mainly created in the Java programming language. The specification is intended to provide a generally accepted framework available to distributed on the basis of modular components to develop multi-tier applications. Clearly defined interfaces between components and containers to ensure that software components from different manufacturers are interoperable if they comply with the specification, and that the distributed application scales well.

Components of the specification be developed within the Java Community Process by various companies and finally to the general public in the form of a document and a reference implementation.

Previous versions

The current version of the Java EE specification is version 7.0.

The new name for the specification is Java Platform, Enterprise Edition, short Java EE [ dʒɑ ː ˌ i ː i ː və ]. This replaces the previous acronym J2EE [ ˌ i ː i ː ˌ dʒeɪtu ː ] (Java 2 Platform, Enterprise Edition).

Infrastructure

Java EE components require a special infrastructure, called a Java EE Application Server runtime environment. This server provides technical functionalities such as

  • Security ( Security),
  • Transaction management,
  • Naming and directory services,
  • Communication between Java EE components,
  • Persistence for long-term storage of Java objects,
  • Management of the components over the entire life cycle (including instantiation ),
  • Support for the installation (deployment)

Available. Furthermore, the server encapsulates access to the resources of the underlying operating system (file system, network, ...).

A Java EE server is divided into various logical systems. These are called containers. The current specification requires the following containers:

  • An EJB container as the runtime environment for Enterprise JavaBeans
  • A Web container as the runtime environment for servlets and Java Server Pages ( JSP)
  • A JCA container as the runtime environment for JCA connectors. This is not explicitly defined, but in fact each application server manufacturer must implement this. For, in Enterprise Java Beans (EJB ) and in the Web container restrictions are defined, which do not apply to the JCA runtime environment. This is, for example, the start of thread, or reading and writing to files, etc.
  • A JMS provider as a management system for message queues.

There are numerous implementations for Java EE server available, partly proprietary, partly in the form of freely available open source solutions (eg JBoss). A reference implementation is provided by Oracle. Note that it is not covering all of the servers, the specification of the Java EE completely. However, Oracle released for each version of a list of currently certified server.

As another infrastructure component qualifies for the persistent storage of data, a database management system (DBMS) used. This may be a relational system, or else a similar system such as a OODBMS. The connection of database management systems is usually done via a JDBC driver.

The client-side access to a Java EE application is often done through a browser, but in addition also application clients ( Java applications, CORBA components, web service clients ) are common.

The Java EE APIs include various technologies that extend the functionality of the base Java SE APIs or replace.

  • Session beans, both stateful and stateless, implement the business logic and are mostly from the client accessed
  • Message - driven beans, short MDB, for the processing of JMS messages have been re- introduced in version 2.1
  • Entity beans for mapping persistent data objects (from version 3.0 obsolete because EJBs are used by Detachment and outside of the container )

Implementations

An implementation of the Java EE standards can also be certified by Oracle for each release. Thus, the basic compatibility of applications between servers is confirmed. However, seen often in practice, that porting an application from a Java EE server to another is fraught with problems. So manufacturer -dependent libraries are used partly unconscious.

Complete Java EE server

The current state of certification (after the Oracle TCK) is in brackets.

Open Source Server

  • Apache Geronimo ( used either Apache Tomcat or Jetty ) (Java EE 6 )
  • Enhydra Enterprise ( used Apache Tomcat)
  • Wildfly (formerly JBoss) (Apache Tomcat optional) ( Java EE 7)
  • GlassFish ( used Grizzly ( GlassFish )) ( Java EE 7)
  • Sun GlassFish Enterprise Server ( Sun's implementation based on GlassFish ) (Java EE 6 )

Commercial server

  • ATG Dynamo Application Server ( DAS) (Java EE 1.3)
  • Oracle WebLogic since the acquisition of BEA by Oracle ( Java EE 6 )
  • Oracle Application Server (Java EE 5 )
  • Orion Application Server
  • SAP NetWeaver Application Server (Java EE 5 )
  • IBM WebSphere Application Server ( WAS) (Java EE 6 )

Dissemination of the Java EE server

In 2007, the following numbers of users known Java EE server have been published. Among users there is the number of companies and organizations that licensed the particular server or have a maintenance contract in case of JBoss. JBoss estimates that there are 10,000 users of JBoss Enterprise Application Platform.

Separate web container ( Servlet-/JSP-Container )

  • Apache Tomcat
  • Jetty
  • Resin

Separate EJB container

  • Apache OpenEJB - Open Source

More Java platforms

  • Java Platform, Standard Edition
  • Java Platform, Micro Edition
71884
de