The primary goal of a JMS messaging system is to reliably distribute asynchronous business events and information between applications. This is achieved by a loosely coupled communication style of application integration. A more tightly coupled communication mechanism, such as sockets or direct calls to the AppServer, is useful for passing large amounts of data or for subsecond response time.