Before we dive into its details, let us first review the basic aspects of synchronous and asynchronous communication. A client makes a request of a server and that server responds with a reply. As a user, you encounter this every time you browse the Web. Your Web browser makes requests of Web sites, which serve Web pages. In terms of enterprise application integration, RPC-style communication is the most common synchronous solution.
Synchronous communication has three major drawbacks.
The second drawback is that the client must initiate the communication. And in some push-like contexts, this responsibility simply does not make sense. The natural flow of information in these scenarios is for a broadcaster to push out updates to multiple listeners. This last point is a boldly underlined shortcoming of today's distributed objects solutions. You already have a number of headaches caused by the lack of smooth, cheap integration between distributed object-based systems.