Software routers can be configured to act as intermediate filters by either allowing or suppressing certain classes of messages from being transferred. Furthermore, depending on the vendor, software routers may also be intelligent by not routing messages on topics for which there are no current subscribers.
In a broadcast publish/subscribe environment, software router pairs can be set up to cover all or selective subnets within the organization. Still, software routers must be set up and monitored, and their configuration updated as new applications are added or changed. Moreover, some overhead is incurred in disseminating messages to all connected hosts in each subnet.
Multicast publish/subscribe eliminates the need for software routers and their associated maintenance. With multicast publish/subscribe, network resources such as multicast-enabled routers and switches work in concert to perform much of what is being done by software routers. This includes tracking subscribers (i.e., multicast users) and routing messages.
Multicast-enabled routers communicate among themselves to make this happen automatically and transparently across entire networks. Since it is being done within the network layer, multicast can yield performance improvements and efficiencies when disseminating messages to large numbers of subscribers. These qualities are a major driver for adopting multicast. If multicast publish/subscribe were being employed in the network depicted in Figure 1, the two software routers would not be needed, and subscriber S4 in subnet 3 could receive messages from P1.
To accomplish this, multicast publish/subscribe requires an additional parameter--a multicast address. A publish/subscribe application specifies the multicast address along with a subject name. Unlike subject names that are utilized by the vendor's software, the multicast address is used exclusively by network resources such as routers and switches. It resembles a host IP address (e.g., 188.8.131.52), although it is used more like a logical identifier. In fact, it is used like an alternate subject name by the network resources.
For efficiency, multicast networks are organized into a tree structure, with one router designated as the root of the tree. The tree has only one path between any pair of routers and eliminates the possibility of loops. Wherever a branch in the tree occurs (e.g., MR Root or MR02), messages must be replicated before being sent to each branch.