Enterprise beans (EJB components) are Java programming language server components that contain business logic. The EJB container provides local and remote access to enterprise beans.
There are three types of enterprise beans: session beans, entity beans, and message-driven beans. Session beans represent transient objects and processes and typically are used by a single client. Entity beans represent persistent data, typically maintained in a database. Message-driven beans are used to pass messages asynchronously to application modules and services.
The container is responsible for creating the enterprise bean, binding the enterprise bean to the naming service so other application components can access the enterprise bean, ensuring only authorized clients have access to the enterprise bean’s methods, saving the bean’s state to persistent storage, caching the state of the bean, and activating or passivating the bean when necessary.
Sun Java System Application Server 9 conforms to Java EE 5 and EJB 3.0 specifications Therefore a JNDI name will be no longer be required for EJB 3.0 session beans that expose a Remote view. If a deployed Remote EJB 3.0 bean does not provide a global JNDI name, the container will assign it one at runtime. The assigned JNDI name is the fully qualified class name of the remote EJB's business interface. In addition, EJB clients that use the new Remote EJB 3.0 client view will not be required to map their remote @EJB references to a global JNDI name within sun-ejb-jar.xml. If a JNDI name has not been associated with the ejb reference, the container will derive the default JNDI name for the target EJB from its associated business interface.
Applications using this EJB 3.0 feature will no longer need sun-ejb-jar.xml or sun-application-client.xml configuration files. The older method of providing a JNDI name in sun-ejb-jar.xml will continue to work. It will also be possible for the application to map an ejb-reference or @EJB reference to a specific global JNDI name.