In object-oriented programs, objects send messages to objects. In distributed systems, components send messages (and sometimes whole components) to components. Such a flow of objects necessitates advanced mechanisms for message passing and communication between various applications.
The Java Message Service (JMS) will work in concert with other technologies to provide reliable, asynchronous communications between components in a distributed computing environment. JMS is a common API and provider framework that enables the development of portable, message-based applications in the Java programming language. The JMS specification provides significant improvements over traditional process-oriented messaging systems and improves programmer productivity by defining a common set of messaging concepts and programming strategies that will be supported by all JMS technology-compliant messaging systems.
For more information on the Java Message Service API, visit http://java.sun.com/products/jms and the Java Message Service tutorial, in particular, the overview (Chapters 33 and 34 are on The Java Message Service API and using the JMS in J2EE all)