EJB 2.0 introduces support for message-driven beans, new home interface method syntax, local interfaces, and inter-vendor interoperability. EJB 2.0 also enhances the container managed persistence model defined in EJB 1.1.
EJB 2.0 integrates the EJB component architecture with the Java Message Service (JMS) asynchronous messaging API. EJB 2.0 allows you to define message-driven bean components to respond to JMS messages. An MDB component is similar to an EJB stateless session bean, but the MDB component responds only to JMS messages and has no direct client interface.
For information on JMS and MDB components, see Chapter 31, “Using the Message Service,” in the EAServer Programmer’s Guide.
EJB 2.0 allows you to define business methods in the home interface for an entity bean and changes the syntax of create methods. For information on defining home interface methods, see Chapter 7, “Creating Enterprise JavaBeans Components,” in the EAServer Programmer’s Guide.
In earlier versions, create methods were restricted to methods named create. In EJB 2.0, you can use any name that begins with create, such as createNewAccount.
You can add business methods to the home interface for an entity bean to perform operations that are not specific to a single instance. For example, a home business method might return the average employee salary. For each home business method, the entity bean’s implementation class must have a method with the same name, except for the prefix ejbHome, and the same signature. For example, if the home interface declares:
public double averageSalary();
Then the implementation class must contain:
public double ejbHomeAverageSalary();
The EJB 2.0 architecture introduces local interfaces for calls to an EJB component from within the same Java virtual machine. In EAServer, you can use local interfaces for intercomponent calls, and for component invocations made from servlets hosted in the same server as the component.
Using local interfaces can improve performance, but in coding you must be aware that:
Parameters are passed by reference rather than by copy, so object instances passed through a local invocation can be shared by the client and component. If the component modifies the object, the client sees the changes.
Local interfaces are not location-transparent. The called component must be hosted in the same server process as the calling component.
EAServer 4.0 implements the interoperability requirements in the EJB 2.0 specification to allow interoperability with other EJB 2.0 servers. EAServer continues to support CORBA-2.2 based interoperability, for interacting with other CORBA-based application servers and to allow interoperability between EJB components hosted by EAServer and EAServer components of other types. For more information, see Chapter 9, “EAServer EJB Interoperability,” in the EAServer Programmer’s Guide.
EJB 2.0 enhances the Container-Managed Persistence (CMP) model for entity beans as follows:
The deployment descriptor more fully describes the persistent fields in the bean and the required database queries, making for less work after deploying an EJB-JAR file that contains CMP entity beans.
CMP entity beans in the same EJB-JAR (which maps to an EAServer package) can have container-managed relationships. For example, an Order bean may have an items field that consists of a collection of Inventory bean instances representing the items being purchased. Or, an Employee bean may be related to itself, with manager and employees fields that contain Employee instances.
For more information on EAServer CMP support, see Chapter 27, “Creating Entity Components,” in the EAServer Programmer’s Guide.
| Copyright © 2005. Sybase Inc. All rights reserved. |
|
|