The specification for EJB 3.0 attempts to simplify the complexity of the EJB 2.1 architecture by:
The two most significant changes in the proposed EJB 3.0 specification are:
An annotation-based EJB programming model - all kinds of enterprise beans are just plain old Java objects (POJOs) with appropriate annotations. A configuration-by-exception approach uses intuitive defaults to infer most common parameters. Annotations are used to define the bean's business interface, O/R mappings, resource references, and other information previously defined through deployment descriptors or interfaces. Deployment descriptors are not required; the home interface is gone, and it is no longer necessary to implement a business interface (the container can generate it for you).
For example, you declare a stateless session bean by using the @Stateless annotation. For stateful beans, the @Remove annotation is marked on a particular method to indicate that the bean instance should be removed after a call to the marked method completes.
The new persistence model for entity beans - The new entity beans are also just POJOs with a few annotations and are not persistent entities by birth. An entity instance becomes persistent once it is associated with an EntityManager and becomes part of a persistence context, which is loosely synonymous with a transaction context and implicitly coexists with a transaction's scope.
The entity relationships and O/R mapping is defined through annotations, using the open source Hibernate framework (see the "Generating Hibernate Persistent Objects and JSF Pages" chapter in Integrating with Other Products for information about PowerDesigner's support for Hibernate.
There are also several side effects to these proposals, such as a new client-programming model, use of business interfaces, and an entity bean life cycle.
Please note that the EJB 2.1 programming model (with deployment descriptors and home/remote interfaces) is still valid (and supported by PowerDesigner. The new simplified model, which is only available with Java 5.0, does not entirely replace the EJB 2.1 model.