Get in line to improve your business-critical data delivery
When developers create transaction-processing (TP) applications (e.g., for exchange of stock, banking transactions, or shop-floor control), they need to make sure that such applications not only process transactions accurately but also transfer data from one process to another safely and in an orderly way. Data that is lost or disordered when it traverses a network defeats a TP application's purpose. Therefore, developers often use message-queuing technology to guarantee reliable data delivery in TP applications. A message-queuing system increases the reliability of interprocess communication by using a sending process to place data in a queue, and a receiving process to retrieve the data from the queue.
Traditionally, developers have either developed their own message-queuing systems or purchased such systems from a vendor. Developing a sophisticated message-queuing system requires developers to be versed in underlying network communication such as transport protocols and message routing, necessitating long development cycles.
Although third-party technologies offer immediate solutions, buying and maintaining such a technology can be expensive. Microsoft has built its message-queuing technology, Microsoft Message Queue Server (MSMQ), into Windows NT Server 4.0, Enterprise Edition (NTS/E) and Windows NT Server 4.0 Option Pack. With MSMQ, you can design and implement an enterprisewide message-queuing system to support all message-queuing applications in your NT network. MSMQ's software development kit (SDK) lets you develop custom message-queuing applications without the need to program direct interprocess communication or to know underlying network communication. MSMQ is a crucial vehicle for message exchange in your NT network. In this article, I'll help you understand message-queuing technology and MSMQ's unique application of that technology.
What Message-Queuing Does
When application data traverses a network, the data is often referred to as messages. A queue or message queue is a holding place in the network that temporarily stores traveling messages. A queue can reside in a computer sending a message, in a computer receiving a message, or in an intermediary computer between the sending and the receiving computers. A message-queuing system mainly manages queues, messages, and message-queuing servers and clients that create, delete, locate, store, forward, and route queued data.
The message-queuing system guarantees safe and orderly delivery of messages. With this system, a TP application can transfer data from one process to another reliably and process transactional requests accurately. For example, a stockbroker can place customer trade requests in a queue using a stock-trading application with message-queuing enabled. A trade server takes the orders from the queue and processes them without losing or mishandling an order.
Applications that can use asynchronous communication, such as email and Help desk applications, can also use the message-queuing system. After these applications send data to a queue, they don't need to wait for a response before carrying out other tasks. Message queuing also supports mobile applications. For example, when a mobile salesperson enters an order on a laptop at a customer site, the ordering application sends the order to a local queue in the laptop. When the salesperson returns to the office and connects the laptop to the network, the order-receiving application on the server will automatically pick up and process the order from the queue in the laptop.
The MSMQ System
MSMQ is Microsoft's implementation of message-queuing technology for NT networks. An MSMQ system consists of an MSMQ enterprise, which contains one or more sites. An enterprise site contains one or more MSMQ computers, both servers and clients. MSMQ servers run on NTS/E, or on NT Server 4.0 if you install MSMQ from the Option Pack. MSMQ clients run on NT 4.0 or Windows 95 computers. Each MSMQ computer (except dependent clients) can contain message queues. In Screen 1, the left panel shows an MSMQ enterprise, Big Company. Using Big Company as an example, let's take a close look at the MSMQ system.
Enterprise. An MSMQ enterprise comprises the computers in your network that run MSMQ. All MSMQ computers in an enterprise exchange messages directly or through MSMQ servers. Microsoft recommends that one company establish only one enterprise. MSMQ provides an administration tool called MSMQ Explorer, which lets administrators manage the enterprise from the single console Screen 1 shows.