Identifying Your Business Goals
Applies To: Windows Server 2008, Windows Vista
Core functionality of Message Queuing enables the failsafe delivery of messages between applications that may be running at different times and/or may be running on disparate platforms. Message Queuing incorporates several features to provide this functionality. This topic describes which Message Queuing features may be useful for achieving specific business goals.
Mission critical applications demand fault tolerance so that a system can continue to operate even if some of the system's components fail. You can implement high availability through fault tolerance for Message Queuing by configuring Message Queuing as a highly available service in a Windows Server cluster. For more information about providing fault tolerance for Message Queuing in a Windows Server cluster, see Message Queuing in Server Clusters [LH].
Consider the following factors when evaluating Message Queuing performance criteria against your business goals.
Message delivery method
Message Queuing provides two basic message delivery methods, express and recoverable. Express message delivery provides much higher performance than recoverable message but also incurs a risk of message loss if the system fails or if the Message Queuing Service is stopped. For more information about these delivery methods see Message Delivery Methods [LH].
System memory requirements
Because Message Queuing uses memory mapped files to hold queued messages, there must be enough system memory available on the sending and receiving computers to hold messages that are queued under normal operations. For more information about system memory requirements see the Memory considerations section of the topic Planning Overview [LH].
When using the recoverable message delivery method, all messages are persisted to disk and disk performance becomes a primary consideration for Message Queuing performance. For more information see the topic Message Queuing Message and Data Files and the Disk considerations section of the topic Planning Overview [LH].
Message delivery mechanism
If your business goals require that you deliver messages over HTTP or HTTPS, you must enable a different set of network ports than if your business goals only require that you deliver messages using the direct method. The message delivery mechanism that is used will also impact Message Queuing performance. For a complete list of the network ports used by various Message Queuing delivery mechanisms and their relative performance, see Network Ports Used by Message Queuing [MSMQ_LH].
For information about configuring firewalls for Message Queuing see Configuring Firewalls for Message Queuing [LH].
Security is typically a primary concern when evaluating business goals. Message Queuing uses access control, message authentication, encryption, and auditing for security.
Message Queuing access control
Access control is used to restrict user access to Message Queuing objects in Active Directory Domain Services and can be implemented by assigning security descriptors to objects. For more information see Access Control for Message Queuing [LH]. For more information about Message Queuing and Active Directory Domain Services see Message Queuing and Active Directory Domain Services [LH].
Message Queuing authentication
Message Queuing provides both Server authentication through the use of Kerberos V5 and message authentication through the use of certificates. For more information about Message Queuing authentication see Authentication for Message Queuing [LH].
Message Queuing encryption
Message Queuing provides message encryption through the use of symmetric and asymmetric (public/private) key encryption algorithms. For more information about Message Queuing encryption see Encryption for Message Queuing [LH].
Message Queuing auditing
You can use auditing to record which users attempt to access Message Queuing objects, the type of operation attempted, and whether that access succeeded or failed. For more information see Auditing Message Queuing Objects [LH].
Reliable Message Delivery
Message Queuing supports transactional sending and receiving of messages to ensure failsafe message delivery. Transactional sending and receiving of messages guarantees that either the message will be sent/received or that a copy of the message is saved to disk if it cannot be delivered for some reason. Because the implementation of transactional messaging writes a copy of each message to disk, transactional messaging incurs additional overhead when compared to non-transactional messaging. Transactional messaging can only be performed when using the recoverable message delivery method. For more information about Message Queuing transactional messaging see Transactional Messaging [LH].
Message Queuing supports the generation of positive or negative acknowledgement messages that indicate the success or failure of delivery of an individual message. Acknowledgment messages can be generated for both transactional and non-transactional messages.
Message Queuing clients can communicate with foreign computers that run operating systems that do not support Message Queuing or use other messaging systems with a connector application such as the MSMQ-MQSeries Bridge. For more information see Cross-Platform Messaging [MSMQ_LH].
Message Queuing supports setting the priority of the messages that are sent to a queue on a destination computer. The priority of a message is determined first by the queue priority (also known as the base priority), and then by the message priority. Message prioritization is a powerful tool for ensuring that time sensitive messages are delivered in an efficient manner and are not obstructed by less mission critical messages. For more information see Message Priority [LH].
Message Queuing supports connectionless messaging which ensures that messages are delivered eventually even if a connection to a destination queue is not immediately available. If a connection to a destination queue is not immediately available, the message is resent to the destination queue once a connection becomes available. This functionality accommodates the interaction of all providers and consumers of Message Queuing messages as a single system.
Asynchronous Message Delivery
Asynchronous message delivery support provides a "publish-subscribe" message delivery model which helps to ensure the following:
No providers (publishers) of Message Queuing messages are systematically waiting on consumers (subscribers) of Message Queuing messages to receive messages.
No consumers of Message Queuing messages are systematically waiting on providers of Message Queuing messages to send messages.
The "publish-subscribe" model used by Message Queuing helps to ensure that resources are not wasted waiting for messages to be delivered or received.