A - Asynchronous Communication


Asynchronous Communication



Asynchronous communication is an exchange of messages between two components in which the requsitioner does not await the delivery of the response. In practice, it implies that the thread of execution is not blocked pending the arrival of a response.

In the event, a mechanism usually exists to enable the target component of returning the response. This is best illustrated in the case of Java Message Service (see JMS), where the return address is a common message server, a queue or a topic.

In this mode of communication, there is a measurable time interval between the sending and receiving of the content of any message (see Message). Message-Oriented Middleware (see MOM) is typically implemented based on this concept by introducing message queues that queue (persists) messages sent by a system until they are accepted by the receiving system(s).

Note that asynchronous messaging facilitates looser coupling between components (see Loose Coupling) to the extent that a target of a request need not be even active at the time the request was dispatched.

Asynchronous messages are more efficient than synchronous messages and are the recommended style of exchange, although, synchronous messages are required in specific circumstances.