Microsoft Message Queue Server (MSMQ) 1.0, which ships as part of the Windows NT 4.0 Option Pack, provides asynchronous communication services for applications that run under Windows NT Server. Message queueing is an integral part of Windows DNA, because it enables reliable messaging when a user is disconnected from the network. It also allows for greater fault tolerance over unreliable networks.
After an MSMQ message is sent, the sender can go on to other work without waiting for the recipient to respond. The message goes into a queue, located on the server, until it receives a request from the recipient indicating that it is ready to receive the message. MSMQ bridges the business-services tier and the data-services tier of a distributed application, because the message queues are considered unstructured storage, like the Microsoft Exchange Server database.
MSMQ provides automatic integration with Microsoft Transaction Server (MTS) 2.0. This feature enables you to develop applications for portable computers that can, for example, participate in transaction processing without being connected to a network. An application can wrap an MSMQ message in MTS transactions, send it into a local queue on a user's portable computer, and then update a database such as a customer account or a product inventory when the network becomes available. When applications use MSMQ's transactional delivery mode, MSMQ makes sure that messages are delivered exactly one time, and that messages are delivered in the order in which they were sent.
MSMQ differs from Microsoft Exchange Server in that Exchange enables person-to-person messaging, whereas MSMQ provides application-to-application messaging. MSMQ can act as a MAPI transport provider to allow MAPI-enabled applications to communicate with other applications using MSMQ. The MSMQ Exchange Connector enables MSMQ to act as a communications transport between computers running Microsoft Exchange Server, and to MSMQ-enabled applications. For example, Microsoft Exchange Server users can receive e-mail messages through MSMQ or send Microsoft Exchange forms that are received as messages by processing applications.