What is MSMQ? I know it is a way of communicating between applications through messages. But I cannot understand what this means. A real world example would be helpful.
MSMQ is Microsoft's message queuing server. MSMQ can be used a a message broker to transmit messages (self-describing data structures) from one application to another.
A classic usage example is the integration of two stand-alone information systems. An application can be written which extracts information from one information system. For example, a purchase order for a flight. That information is packed into a message (e.g., the flight date and time, airline, passenger class, etc.). The message is then sent to a MSMQ server, where it is "queued" in a database. (The MSMQ server is similar to an e-mail server, but it's designed to let applications "talk" to each other, whereas a mail server is designed to let humans talk to each other).
At a later time, a second application starts to read the orders from the queue. Each order is passed on to another information system, where the credit card balance is checked and the flight is booked.
Here is a reference to a book covering MSMQ, Designing Applications With MSMQ: Message Queuing For Developers.