EEJB was originally designed around remote invocation using the Java Remote Method
Invocation (RMI) mechanism, and later extended to support to standard CORBA transport
for these calls using RMI/IIOP. This design allowed for maximum flexibility in developing
applications without consideration for the deployment scenario, and was a strong
feature in support of a goal of component reuse in J2EE. Many developers are using
EJBs locally, that is, some or all of their EJB calls are between beans in a single
container. With this feedback in mind, the EJB 2.0 expert group has created a local
interface mechanism. The local interface may be defined for a bean during development,
to allow streamlined calls to the bean if a caller is in the same container. This
does not involve the overhead involved with RMI like marshalling etc.
This facility will thus improve the performance of applications in which co-location
is planned. Local interfaces also provide the foundation for container-managed relationships
among entity beans with container-managed persistence.