Java Platform, Enterprise Edition
Encyclopedia
Java Platform, Enterprise Edition or Java EE is widely used platform
for server
programming in the Java
programming language. The Java platform (Enterprise Edition) differs from the Java Standard Edition Platform
(Java SE) in that it adds libraries
which provide functionality to deploy fault-tolerant
, distributed
, multi-tier
Java software
, based largely on modular
components running on an application server
.
Java EE is defined by its specification. As with other Java Community Process
specifications, providers must meet certain conformance requirements in order to declare their products as Java EE compliant.
Java EE includes several API
specifications, such as JDBC
, RMI, e-mail
, JMS
, web service
s, XML
, etc., and defines how to coordinate them. Java EE also features some specifications unique to Java EE for components. These include Enterprise JavaBean
s, Connectors
, servlets, portlet
s (following the Java Portlet specification
), JavaServer Pages
and several web service
technologies. This allows developers to create enterprise applications
that are portable
and scalable
, and that integrate with legacy technologies. A Java EE application server
can handle transactions, security, scalability, concurrency
and management of the components that are deployed to it, in order to enable developers to concentrate more on the business logic of the components rather than on infrastructure and integration tasks.
API
s.
This package defines the root of the JavaServer Faces (JSF)
API. JSF is a technology for constructing user interfaces out of components
This package defines the component part of the JavaServer Faces (JSF)
API. Since JSF is primarily component oriented, this is one of the core packages. The package overview contains a UML diagram of the component hierarchy.
The servlet specification defines a set of APIs to service mainly HTTP requests. It includes the JavaServer Pages
specification.
These packages define the injection annotations for the contexts and Dependency Injection (CDI) API.
These packages define the context annotations and interfaces for the Contexts and Dependency Injection (CDI) API.
The Enterprise JavaBean (EJB) specification defines a set of lightweight APIs that an object container (the EJB container) will support in order to provide transactions
(using JTA
), remote procedure call
s (using RMI
or RMI-IIOP
), concurrency control
, dependency injection
and access control
for business objects. This package contains the Enterprise JavaBeans classes and interfaces that define the contracts between the enterprise bean and its clients and between the enterprise bean and the ejb container.
API. Bean Validation provides a unified way to provide constraints on beans (e.g. JPA model classes) that can be enforced cross-layer. In Java EE, JPA
honors bean validation constraints in the persistence layer, while JSF
does so in the view layer.
.
API that contains the interfaces to interact with the transaction support offered by Java EE. Even though this API abstracts from the really low-level details, it is itself also considered somewhat low-level and the average application developer in Java EE is assumed to be relying on transparent handling of transactions by the higher level EJB abstractions.
This package defines the Java Message Service (JMS)
API. The JMS API provides a common way for Java programs to create, send, receive and read an enterprise messaging system's messages.
This package defines the Java EE Connector Architecture (JCA)
API. Java EE Connector Architecture (JCA) is a Java-based technology solution for connecting application servers and enterprise information systems (EIS) as part of enterprise application integration (EAI) solutions. This is a low-level API aimed at vendors that the average application developer typically does not come in contact with.
s, clustering, fault tolerance
, high availability
, security
, etc.), installed size, memory footprint, startup time, etc.
Platform (computing)
A computing platform includes some sort of hardware architecture and a software framework , where the combination allows software, particularly application software, to run...
for server
Server (computing)
In the context of client-server architecture, a server is a computer program running to serve the requests of other programs, the "clients". Thus, the "server" performs some computational task on behalf of "clients"...
programming in the Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
programming language. The Java platform (Enterprise Edition) differs from the Java Standard Edition Platform
Java Platform, Standard Edition
Java Platform, Standard Edition or Java SE is a widely used platform for programming in the Java language. It is the Java Platform used to deploy portable applications for general use...
(Java SE) in that it adds libraries
Library (computer science)
In computer science, a library is a collection of resources used to develop software. These may include pre-written code and subroutines, classes, values or type specifications....
which provide functionality to deploy fault-tolerant
Fault-tolerant design
In engineering, fault-tolerant design is a design that enables a system to continue operation, possibly at a reduced level , rather than failing completely, when some part of the system fails...
, distributed
Distributed computing
Distributed computing is a field of computer science that studies distributed systems. A distributed system consists of multiple autonomous computers that communicate through a computer network. The computers interact with each other in order to achieve a common goal...
, multi-tier
Multitier architecture
In software engineering, multi-tier architecture is a client–server architecture in which the presentation, the application processing, and the data management are logically separate processes. For example, an application that uses middleware to service data requests between a user and a database...
Java software
Application software
Application software, also known as an application or an "app", is computer software designed to help the user to perform specific tasks. Examples include enterprise software, accounting software, office suites, graphics software and media players. Many application programs deal principally with...
, based largely on modular
Modularity (programming)
Modular programming is a software design technique that increases the extent to which software is composed of separate, interchangeable components called modules by breaking down program functions into modules, each of which accomplishes one function and contains everything necessary to accomplish...
components running on an application server
Application server
An application server is a software framework that provides an environment in which applications can run, no matter what the applications are or what they do...
.
Nomenclature, standards, and specifications
The platform was known as Java 2 Platform, Enterprise Edition or J2EE until the name was changed to Java EE in version 5. The current version is called Java EE 6.Java EE is defined by its specification. As with other Java Community Process
Java Community Process
The Java Community Process or JCP, established in 1998, is a formalized process that allows interested parties to get involved in the definition of future versions and features of the Java platform....
specifications, providers must meet certain conformance requirements in order to declare their products as Java EE compliant.
Java EE includes several API
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...
specifications, such as JDBC
Java Database Connectivity
Java DataBase Connectivity, commonly referred to as JDBC, is an API for the Java programming language that defines how a client may access a database. It provides methods for querying and updating data in a database. JDBC is oriented towards relational databases...
, RMI, e-mail
E-mail
Electronic mail, commonly known as email or e-mail, is a method of exchanging digital messages from an author to one or more recipients. Modern email operates across the Internet or other computer networks. Some early email systems required that the author and the recipient both be online at the...
, JMS
Java Message Service
The Java Message Service API is a Java Message Oriented Middleware API for sending messages between two or more clients. JMS is a part of the Java Platform, Enterprise Edition, and is defined by a specification developed under the Java Community Process as JSR 914...
, web service
Web service
A Web service is a method of communication between two electronic devices over the web.The W3C defines a "Web service" as "a software system designed to support interoperable machine-to-machine interaction over a network". It has an interface described in a machine-processable format...
s, XML
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....
, etc., and defines how to coordinate them. Java EE also features some specifications unique to Java EE for components. These include Enterprise JavaBean
Enterprise JavaBean
Enterprise JavaBeans is a managed, server-side component architecture for modular construction of enterprise applications.The EJB specification is one of several Java APIs in the Java EE specification. EJB is a server-side model that encapsulates the business logic of an application...
s, Connectors
Java EE Connector Architecture
Java EE Connector Architecture is a Java-based technology solution for connecting application servers and enterprise information systems as part of enterprise application integration solutions. While JDBC is specifically used to connect Java EE applications to databases, JCA is a more generic...
, servlets, portlet
Portlet
Portlets are pluggable user interface software components that are managed and displayed in a web portal. Portlets produce fragments of markup code that are aggregated into a portal. Typically, following the desktop metaphor, a portal page is displayed as a collection of non-overlapping portlet...
s (following the Java Portlet specification
Java Portlet specification
The Java Portlet Specification defines a contract between the portlet container and portlets and provides a convenient programming model for Java portlet developers.- JSR 168 :...
), JavaServer Pages
JavaServer Pages
JavaServer Pages is a Java technology that helps software developers serve dynamically generated web pages based on HTML, XML, or other document types...
and several web service
Web service
A Web service is a method of communication between two electronic devices over the web.The W3C defines a "Web service" as "a software system designed to support interoperable machine-to-machine interaction over a network". It has an interface described in a machine-processable format...
technologies. This allows developers to create enterprise applications
Enterprise software
Enterprise software, also known as enterprise application software , is software used in organizations, such as in a business or government, contrary to software chosen by individuals...
that are portable
Porting
In computer science, porting is the process of adapting software so that an executable program can be created for a computing environment that is different from the one for which it was originally designed...
and scalable
Scalability
In electronics scalability is the ability of a system, network, or process, to handle growing amount of work in a graceful manner or its ability to be enlarged to accommodate that growth...
, and that integrate with legacy technologies. A Java EE application server
Application server
An application server is a software framework that provides an environment in which applications can run, no matter what the applications are or what they do...
can handle transactions, security, scalability, concurrency
Concurrency (computer science)
In computer science, concurrency is a property of systems in which several computations are executing simultaneously, and potentially interacting with each other...
and management of the components that are deployed to it, in order to enable developers to concentrate more on the business logic of the components rather than on infrastructure and integration tasks.
General APIs
The Java EE APIs includes several technologies that extend the functionality of the base Java SEJava Platform, Standard Edition
Java Platform, Standard Edition or Java SE is a widely used platform for programming in the Java language. It is the Java Platform used to deploy portable applications for general use...
API
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...
s.
.*
This package defines the root of the JavaServer Faces (JSF)JavaServer Faces
JavaServer Faces is a Java-based Web application framework intended to simplify development integration of web-based user interfaces....
API. JSF is a technology for constructing user interfaces out of components
.*
This package defines the component part of the JavaServer Faces (JSF)JavaServer Faces
JavaServer Faces is a Java-based Web application framework intended to simplify development integration of web-based user interfaces....
API. Since JSF is primarily component oriented, this is one of the core packages. The package overview contains a UML diagram of the component hierarchy.
.*
The servlet specification defines a set of APIs to service mainly HTTP requests. It includes the JavaServer PagesJavaServer Pages
JavaServer Pages is a Java technology that helps software developers serve dynamically generated web pages based on HTML, XML, or other document types...
specification.
.*
These packages define the injection annotations for the contexts and Dependency Injection (CDI) API. .*
These packages define the context annotations and interfaces for the Contexts and Dependency Injection (CDI) API. .*
The Enterprise JavaBean (EJB) specification defines a set of lightweight APIs that an object container (the EJB container) will support in order to provide transactionsTransaction processing
In computer science, transaction processing is information processing that is divided into individual, indivisible operations, called transactions. Each transaction must succeed or fail as a complete unit; it cannot remain in an intermediate state...
(using JTA
Java Transaction API
The Java Transaction API is one of the Java Enterprise Edition APIs allowing distributed transactions to be done across multiple XA resources in a Java environment. JTA is a specification developed under the Java Community Process as JSR 907...
), remote procedure call
Remote procedure call
In computer science, a remote procedure call is an inter-process communication that allows a computer program to cause a subroutine or procedure to execute in another address space without the programmer explicitly coding the details for this remote interaction...
s (using RMI
Java remote method invocation
The Java Remote Method Invocation Application Programming Interface , or Java RMI, is a Java application programming interface that performs the object-oriented equivalent of remote procedure calls ....
or RMI-IIOP
RMI-IIOP
RMI-IIOP denotes the Java Remote Method Invocation interface over the Internet Inter-Orb Protocol , which delivers Common Object Request Broker Architecture distributed computing capabilities to the Java 2 platform...
), concurrency control
Concurrency control
In information technology and computer science, especially in the fields of computer programming , operating systems , multiprocessors, and databases, concurrency control ensures that correct results for concurrent operations are generated, while getting those results as quickly as possible.Computer...
, dependency injection
Dependency injection
Dependency injection is a design pattern in object-oriented computer programming whose purpose is to improve testability of, and simplify deployment of components in very large software systems....
and access control
Access control
Access control refers to exerting control over who can interact with a resource. Often but not always, this involves an authority, who does the controlling. The resource can be a given building, group of buildings, or computer-based information system...
for business objects. This package contains the Enterprise JavaBeans classes and interfaces that define the contracts between the enterprise bean and its clients and between the enterprise bean and the ejb container.
This package contains the annotations and interfaces for the declarative validation support offered by the Bean Validation
Bean Validation
Java Bean Validation is a framework that has been approved by the JCP as of 16 November 2009 and is accepted as part of the Java EE 6 specification. Bean Validation defines a metadata model and API for JavaBean validation. The metadata source is annotations, with the ability to override and extend...
API. Bean Validation provides a unified way to provide constraints on beans (e.g. JPA model classes) that can be enforced cross-layer. In Java EE, JPA
Java Persistence API
The Java Persistence API, sometimes referred to as JPA, is a Java programming language framework managing relational data in applications using Java Platform, Standard Edition and Java Platform, Enterprise Edition....
honors bean validation constraints in the persistence layer, while JSF
JavaServer Faces
JavaServer Faces is a Java-based Web application framework intended to simplify development integration of web-based user interfaces....
does so in the view layer.
This package contains the classes and interfaces that define the contracts between a persistence provider and the managed classes and the clients of the Java Persistence API (JPA)
Java Persistence API
The Java Persistence API, sometimes referred to as JPA, is a Java programming language framework managing relational data in applications using Java Platform, Standard Edition and Java Platform, Enterprise Edition....
.
This package provides the Java Transaction API (JTA)
Java Transaction API
The Java Transaction API is one of the Java Enterprise Edition APIs allowing distributed transactions to be done across multiple XA resources in a Java environment. JTA is a specification developed under the Java Community Process as JSR 907...
API that contains the interfaces to interact with the transaction support offered by Java EE. Even though this API abstracts from the really low-level details, it is itself also considered somewhat low-level and the average application developer in Java EE is assumed to be relying on transparent handling of transactions by the higher level EJB abstractions.
.*
This package defines the Java Message Service (JMS)Java Message Service
The Java Message Service API is a Java Message Oriented Middleware API for sending messages between two or more clients. JMS is a part of the Java Platform, Enterprise Edition, and is defined by a specification developed under the Java Community Process as JSR 914...
API. The JMS API provides a common way for Java programs to create, send, receive and read an enterprise messaging system's messages.
.*
This package defines the Java EE Connector Architecture (JCA)Java EE Connector Architecture
Java EE Connector Architecture is a Java-based technology solution for connecting application servers and enterprise information systems as part of enterprise application integration solutions. While JDBC is specifically used to connect Java EE applications to databases, JCA is a more generic...
API. Java EE Connector Architecture (JCA) is a Java-based technology solution for connecting application servers and enterprise information systems (EIS) as part of enterprise application integration (EAI) solutions. This is a low-level API aimed at vendors that the average application developer typically does not come in contact with.
Full
- GlassFishGlassFishGlassFish is an open source application server project started by Sun Microsystems for the Java EE platform and now sponsored by Oracle Corporation. The supported version is called Oracle GlassFish Server...
server Open Source Edition 3.x and upward - Oracle GlassFish Server 3, based on the open source GlassFish application server
- IBM WebSphere Application Server v8.
- IBM WebSphere Application Server Community Edition v3.0
- Apache Geronimo 3.0. http://geronimo.apache.org
- Fujitsu Interstage Application Server powered by Windows Azure V1
- JEUS 7, an application server from JCP member TmaxSoftTmaxSoftTmaxSoft is a South Korea-based multinational corporation specializing in enterprise software system. It was founded in 1997 by former KAIST professor Daeyeon Park...
. According to their web site "JEUS 7 was originally scheduled to be released at the end of 2010."
Web Profile
- JBoss Application Server 6.0. http://www.jboss.org/jbossas
- JBoss Application Server 7.0 http://www.jboss.org/as7
- GlassFishGlassFishGlassFish is an open source application server project started by Sun Microsystems for the Java EE platform and now sponsored by Oracle Corporation. The supported version is called Oracle GlassFish Server...
server Open Source Edition 3.x Web Profile - Caucho ResinResin ServerResin is a software product, a web server and Java application server from Caucho Technology. Resin is provided in two versions, Resin Professional and Resin Open Source ....
4.0. - Apache TomEE
In development for full Java EE 6
- Oracle WebLogic Application Server
- JOnASJOnASJOnAS is an open-source implementation of the Java EE application server specification, developed and hosted by the ObjectWeb consortium ....
5.3 An open-source application server from OW2 http://jonas.ow2.org - JBoss Application Server 7.1
In development for Java EE 6 Web Profile
- JOnASJOnASJOnAS is an open-source implementation of the Java EE application server specification, developed and hosted by the ObjectWeb consortium ....
5.3 An open-source application server from OW2 http://jonas.ow2.org
Java EE 5 certified
- Sun Java System Application ServerSun Java System Application ServerThe Oracle GlassFish Server , is a platform for delivering server-side Java applications and Web services. Produced by Sun Microsystems, the SJSAS is a Java EE 5 certified application server and is a core part of the Java Enterprise System...
Platform Edition 9.0, based on the open-source GlassFish application server - GlassFishGlassFishGlassFish is an open source application server project started by Sun Microsystems for the Java EE platform and now sponsored by Oracle Corporation. The supported version is called Oracle GlassFish Server...
Server Open Source Edition 2.1.x - WebLogic Application Server 10.3.4.0 from OracleOracle CorporationOracle Corporation is an American multinational computer technology corporation that specializes in developing and marketing hardware systems and enterprise software products – particularly database management systems...
- Oracle Containers for Java EE
- JBoss Application Server 5.1
- JBoss Enterprise Application Platform
- JOnASJOnASJOnAS is an open-source implementation of the Java EE application server specification, developed and hosted by the ObjectWeb consortium ....
an open-source application server from OW2 - Apache Geronimo 2.0
- Apache OpenEJBApache OpenEJBOpenEJB is an open source, embeddable and lightweight EJB Container System and EJB Server, released under the Apache 2.0 License. OpenEJB has been integrated with Java EE application servers such as Geronimo, and WebObjects.-History:...
via Apache Geronimo - IBM WebSphere Application Server Community Edition 2.1, based on Apache Geronimo
- IBM WebSphere Application Server V7
- SAP NetWeaverNetWeaverSAP NetWeaver is SAP's integrated technology computing platform and is the technical foundation for many SAP applications since the SAP Business Suite. SAP NetWeaver is marketed as a service-oriented application and integration platform...
Application Server, Java EE 5 Edition from SAPSAP AGSAP AG is a German software corporation that makes enterprise software to manage business operations and customer relations. Headquartered in Walldorf, Baden-Württemberg, with regional offices around the world, SAP is the market leader in enterprise application software... - JEUS 6, an application server from TmaxSoftTmaxSoftTmaxSoft is a South Korea-based multinational corporation specializing in enterprise software system. It was founded in 1997 by former KAIST professor Daeyeon Park...
- NEC WebOTX, an Application Server from NECNEC, a Japanese multinational IT company, has its headquarters in Minato, Tokyo, Japan. NEC, part of the Sumitomo Group, provides information technology and network solutions to business enterprises, communications services providers and government....
- Fujitsu Interstage Application Server
J2EE 1.4 certified
- JBossJBossJBoss Application Server is an open-source Java EE-based application server. An important distinction for this class of software is that it not only implements a server that runs on Java, but it actually implements the Java EE part of Java...
4.x, an open-source application server from JBoss. - Apache Geronimo 1.0, an open-source application server
- Pramati Server 5.0
- JOnASJOnASJOnAS is an open-source implementation of the Java EE application server specification, developed and hosted by the ObjectWeb consortium ....
, an open-source application server from OW2 - Oracle Application Server 10g
- ResinResin ServerResin is a software product, a web server and Java application server from Caucho Technology. Resin is provided in two versions, Resin Professional and Resin Open Source ....
, an application server with integrated XML support - SAP NetWeaverNetWeaverSAP NetWeaver is SAP's integrated technology computing platform and is the technical foundation for many SAP applications since the SAP Business Suite. SAP NetWeaver is marketed as a service-oriented application and integration platform...
Application Server from SAP AGSAP AGSAP AG is a German software corporation that makes enterprise software to manage business operations and customer relations. Headquartered in Walldorf, Baden-Württemberg, with regional offices around the world, SAP is the market leader in enterprise application software... - Sun Java System Web Server
- Sun Java System Application ServerSun Java System Application ServerThe Oracle GlassFish Server , is a platform for delivering server-side Java applications and Web services. Produced by Sun Microsystems, the SJSAS is a Java EE 5 certified application server and is a core part of the Java Enterprise System...
Platform Edition 8.2 - IBMIBMInternational Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...
WebSphere Application ServerWebSphere Application ServerIBM WebSphere Application Server , a software application server, is the flagship product within IBM's WebSphere brand. It was initially created by Donald Ferguson, who later became CTO of CA Technologies, and the first version launched in 1998....
(WAS) - BEA SystemsBEA SystemsBEA Systems, Inc. specialized in enterprise infrastructure software products known as "middleware", which connect software applications to databases and was acquired by Oracle Corporation on April 29, 2008.- History :...
WebLogic server 9 - JEUS 5 from TmaxSoftTmaxSoftTmaxSoft is a South Korea-based multinational corporation specializing in enterprise software system. It was founded in 1997 by former KAIST professor Daeyeon Park...
- T4 from Trifork
- Enterprise Application Server EAServer from Sybase
Differences between implementations
Although by definition all Java EE implementations provide the same base level of technologies (namely, the Java EE spec and the associated APIs), they can differ considerably with respect to extra features (like connectorJava EE Connector Architecture
Java EE Connector Architecture is a Java-based technology solution for connecting application servers and enterprise information systems as part of enterprise application integration solutions. While JDBC is specifically used to connect Java EE applications to databases, JCA is a more generic...
s, clustering, fault tolerance
Fault-tolerant design
In engineering, fault-tolerant design is a design that enables a system to continue operation, possibly at a reduced level , rather than failing completely, when some part of the system fails...
, high availability
High availability
High availability is a system design approach and associated service implementation that ensures a prearranged level of operational performance will be met during a contractual measurement period....
, security
Security
Security is the degree of protection against danger, damage, loss, and crime. Security as a form of protection are structures and processes that provide or improve security as a condition. The Institute for Security and Open Methodologies in the OSSTMM 3 defines security as "a form of protection...
, etc.), installed size, memory footprint, startup time, etc.
See also
- Web containerWeb containerWeb container is the component of a web server that interacts with the servlets. A web container is responsible for managing the lifecycle of servlets, mapping a URL to a particular servlet and ensuring that the URL requester has the correct access rights...
- Deployment DescriptorDeployment DescriptorA deployment descriptor refers to a configuration file for an artifact that is deployed to some container/engine.In the Java Platform, Enterprise Edition, a deployment descriptor describes how a component, module or application should be deployed...
- Java BluePrintsJava BluePrintsJava BluePrints is Sun Microsystems' best practices for Enterprise Java development. This is Sun's official programming model for Java Platform, Enterprise Edition Software Development Kit . It began with Java Pet Store, the original reference application for the Java EE platform...
- Sun Java System Portal ServerSun Java System Portal ServerThe Sun Java System Portal Server is a component of the Sun Java Platform, Enterprise Edition, a software system that supports a wide range of enterprise computing needs....
- Java EE version historyJava EE version historyThe Java Platform, Enterprise Edition or Java EE has undergone several changes since 1.0 as well as numerous additions of new specifications.- J2EE 1.2 :The specification ....
- Sun Community Source LicenseSun Community Source LicenseThe Sun Community Source License is a community source software licensing model designed by Sun Microsystems that covered the J2EE software development kit. Sun introduced the SCSL in 1998 to maintain compatibility within the Java platform and make code available for commercial use...
- Java Research LicenseJava Research LicenseThe Java Research License, or JRL, is a software distribution license created by Sun in an effort to simplify and relax the terms from the "research section" of the Sun Community Source License...
Books
- Solveig Haugland, Mark Cade, Anthony Orapallo: J2EE 1.4: The Big Picture, Prentice Hall, ISBN 0-13-148010-3
- Alan Monnox: Rapid J2EE Development: An Adaptive Foundation for Enterprise Applications, Prentice Hall, ISBN 0-13-147220-8
- Renaud Pawlak, Lionel Seinturier, Jean-Philippe Retaillé: Foundations of AOP for J2EE Development, ISBN 1-59059-507-6
- Christopher Judd, Hakeem Shittu: Pro Eclipse JST: Plug-ins for J2EE Development, ISBN 1-59059-493-2
External links
- Java EE homepage
- Oracle's Java EE Compatibility page - Certified Java EE Compatible Implementations
- Core J2EE Patterns