Extended messaging extends the base JMS support, support for EJB 2.0 message-driven beans, and the Enterprise Java Bean (EJB) component model, to use the existing container-managed persistence and transactional behavior.
In addition to providing such container-managed messaging, extended messaging provides new types of enterprise beans and administrative objects for messaging, and new functionality like data mapping and late response handling. (The abbreviation, CMM, for the term container-managed messaging is sometimes used to represent extended messaging.)
Extended messaging uses the bean-managed messaging implementation to provide the JMS interfaces, which ensures that both bean-managed and extended messaging use consistent JMS support.
An application that uses extended messaging can receive messages by using a receiver bean, either by the onMessage() method of a message-driven bean or by a stateless session bean that polls for a message from a named destination. With extended messaging and a message-driven bean, code within the bean can use the message to invoke business logic, as either a method within the same bean or another enterprise bean. Both the incoming message and the invocation of the receiver bean can be included within the scope of a transaction. For outbound messages, an application calls a sender bean that turns a method call into a JMS message that is then sent asynchronously. These message beans are implemented as enterprise beans by WebSphere Application Server. Application developers can create these message beans by using WebSphere Studio Application Developer Integration Edition, although they can be created without the help of WebSphere Studio.
With extended messaging, the JMS usage is simplified, because JMS support is managed by the extended messaging service. This helps to effectively separate business logic from the messaging infrastructure. Also, the use of data mapping enables messages to drive existing or new enterprise beans as though they are invoked from any EJB client. WebSphere Studio enables the types of message beans that support extended messaging to be developed easily and hides the messaging infrastructure from developers.
For more conceptual information about extended messaging, see the following topics: