The task of writing distributed enterprise applications presents us with many significant challenges. Some of these can be overcome by increasing program modularity - composing a unified application from multiple independent modules. This not only allows us to build complex systems using an "assembly-line" approach, but also comes with the benefit of reusability of the modules themselves.
However, it would be helpful if we had a well-defined, reliable framework that would guarantee that our communications would be safely handled between these distributed modules. This is what messaging systems provide for us - a reliable, secure, guaranteed message-delivery mechanism.
In this introductory chapter we will:
Define enterprise messaging, clients, destination, domains, and messages
Discuss Message-Oriented Middleware (MOM)
Look at JMS and the messaging domains supported by JMS
Discuss JMS and its relation to other Java technologies
Look at the areas that JMS does not address
Discuss JMS's role in enterprise applications, application integration, and mobile messaging
Finish off this introductory chapter by looking at the various design patterns available for designing MOM applications