In a large enterprise, a message queuing network is made of three primary types of systems:
The Primary Enterprise Controller, or PEC, is responsible for maintaining the configuration of the entire enterprise system. There is only one PEC within an enterprise-wide installation.This system is responsible for holding the certification keys, which are used to validate messages in the system. Even if a message queuing network consists of only one computer, that computer must be configured as the Primary Enterprise Controller.
A Site Controller has information about the computers and queues that are at one site where a site is regarded as a number of computers that are connected together via a fast network. Fast in this definition means 10Mbit Ethernet speeds and faster. In the site where the PEC is located, the PEC also functions as a site controller.
A Message Router supports the routing of message from one site to another. The Message Routing server is the system that holds the messages as they are moving from sender to receiver. If using memory-based delivery, the messages will be in the Message Router's system memory. For disk and transactional-based delivery, the messages will be stored on this systems disk. Site Controllers and Enterprise Controllers function as Message Routers as well. Since every site has at least a PEC or Site Controller, then every site will by default have a Message Router. Additional Message Routers can be added to a site if a particular site generates a great deal of traffic.
Dynamic routing means that there does not have to be a single defined path between the sender and the receiver of messages. In static types of routing, like in the Internet, the routing tables along the way define a single path between two points. Techniques such as a spanning-tree algorithm to resolve multiple paths are used to ensure this. In dynamic routing, there can be multiple paths between a sender and a receiver. Each machine in this path is a message router (or a PEC or Site Controller).
When configuring an enterprise installation of MSMQ, you determine the "cost" of the links between two message routers. This cost can be based on any factors that you determine as relevant. Things such as speed of link, available bandwidth on link, and actual financial cost of the link can go into computing the "cost" for a link. When performing dynamic routing, MSMQ will compute the least cost link between the sender and the receiver and send the message that way. This makes the configuration of an MSMQ enterprise much simpler, as static routes do not need to be explicitly created.