Tuesday, August 26, 2008

Identify the uses, benefits, and characteristics of Enterprise JavaBeans technology, for version 3.0 of the EJB specification

-Identify the uses, benefits, and characteristics of Enterprise JavaBeans technology, for version 3.0 of the EJB specification.

Here we go with the marketing hype!

That's what this objective is really all about - making sure the aspiring SCBCD candidates know the marketing hype around EJB3.0, and making sure they can spout off that marketing hype in a design meeting or in front of an architecture review board.

Page 8 of the JSR220 EJB 3.0 Simplified API document covers they hype pretty good, first in the introduction on page 9, and then again at the beginning of chapter 2 on page 13:

1.1 Overview

The EJB 3.0 release of the Enterprise JavaBeans architecture provides a new, simplified API for the
enterprise application developer. This API is targeted at ease of development and is a simplification of
the APIs defined by earlier versions of the EJB specification. The existing EJB 2.1 APIs remain avail-
able for use in applications that require them and components written to those APIs may be used in con-
junction with components written to the new EJB 3.0 APIs.


1.2 Goals of this Release

The purpose of the EJB 3.0 release is to improve the EJB architecture by reducing its complexity from
the enterprise application developer’s point of view.
EJB 3.0 is focused on the following goals:

• Definition of the Java language metadata annotations that can be used to annotate EJB appli-
cations. These metadata annotations are targeted at simplifying the developer’s task, at reduc-
ing the number of program classes and interfaces the developer is required to implement, and
at eliminating the need for the developer to provide an EJB deployment descriptor.

• Specification of programmatic defaults, including for metadata, to reduce the need for the
developer to specify common, expected behaviors and requirements on the EJB container. A
“configuration by exception” approach is taken whenever possible.

• Encapsulation of environmental dependencies and JNDI access through the use of annota-
tions, dependency injection mechanisms, and simple lookup mechanisms.

• Simplification of the enterprise bean types.

• Elimination of the requirement for EJB component interfaces for session beans. The required
business interface for a session bean can be a plain Java interface rather than an EJBObject,
EJBLocalObject, or java.rmi.Remote interface.

• Elimination of the requirement for home interfaces for session beans.

• Simplification of entity persistence through the Java Persistence API. Support for light-weight
domain modeling, including inheritance and polymorphisis

• Elimination of all required interfaces for persistent entities

• Specification of Java language metadata annotations and XML deployment descriptor ele-
ments for the object/relational mapping of persistent entities

• A query language for Java Persistence that is an extension to EJB QL, with addition of projec-
tion, explicit inner and outer join operations, bulk update and delete, subqueries, and
group-by. Addition of a dynamic query capability and support for native SQL queries.

• An interceptor facility for session beans and message-driven beans.

• Reduction of the requirements for usage of checked exceptions.

• Elimination of the requirement for the implementation of callback interfaces.



The EJB 3.0 release is focused on a simplification of the Enterprise JavaBeans architecture from the
developer’s point of view. This simplification has several main aspects:

• Simplification of the interface definition requirements for enterprise beans: elimination of
requirements for the specification of home and component interfaces in the EJB 3.0 program-
ming model.

• Simplification of the contractual requirements between the bean provider and the container:
elimination of the requirements for enterprise beans to implement the javax.ejb.Enter-
priseBean interfaces.

• Simplification of APIs for access to a bean's environment: definition of a dependency injection
facility and simpler look-up APIs.

• Introduction of Java metadata annotations to be used as an alternative to deployment descrip-
tors.

• Simplification of object persistence by the definition of a light-weight object/relational map-
ping facility based on the direct use of Java classes rather than persistent components.

Again, this has been very liberally taken from the EJB 3.0 Simplified API document. You should definitely go over it and see how Sun wants to position the EJB3.0 specification. Note that these points are repeated again in the EJB 3.0 Core Contracts document. You can be pretty sure that Sun wants you to be up and on top of these ideas.

Chapter 2, page 29 of the Core Contracts document also outlines the goals of EJB and the EJB 3.0 Specification. Any JEE or J2EE developer should be familiar with these, and be able to answer a question on:

The Enterprise JavaBeans (EJB) architecture has the following goals:

• The Enterprise JavaBeans architecture will be the standard component architecture for build-
ing object-oriented business applications in the Java™ programming language.

• The Enterprise JavaBeans architecture will be the standard component architecture for build-
ing distributed business applications in the Java™ programming language.

• The Enterprise JavaBeans architecture will support the development, deployment, and use of
web services.

• The Enterprise JavaBeans architecture will make it easy to write applications: application
developers will not have to understand low-level transaction and state management details,
multi-threading, connection pooling, or other complex low-level APIs.

• Enterprise JavaBeans applications will follow the Write Once, Run Anywhere™ philosophy of
the Java programming language. An enterprise bean can be developed once, and then
deployed on multiple platforms without recompilation or source code modification.


• The Enterprise JavaBeans architecture will address the development, deployment, and runtime
aspects of an enterprise application’s life cycle.

• The Enterprise JavaBeans architecture will define the contracts that enable tools from multiple
vendors to develop and deploy components that can interoperate at runtime.

• The Enterprise JavaBeans architecture will make it possible to build applications by combin-
ing components developed using tools from different vendors.

• The Enterprise JavaBeans architecture will provide interoperability between enterprise beans
and Java Platform, Enterprise Edition (Java EE) components as well as non-Java program-
ming language applications.

• The Enterprise JavaBeans architecture will be compatible with existing server platforms. Ven-
dors will be able to extend their existing products to support Enterprise JavaBeans.

• The Enterprise JavaBeans architecture will be compatible with other Java programming lan-
guage APIs.

• The Enterprise JavaBeans architecture will be compatible with the CORBA protocols.
The purpose of the EJB 3.0 release is both to continue to achieve these goals and to improve the EJB
architecture by reducing its complexity from the enterprise application developer’s point of view.

No comments: