Responder Communication Framework White Paper
With similar names used for various communication methods it's easy to become confused. Are you using MSMQ .NET Remoting Channel, MSMQ Multicast or IP Multicast? What are the differences between all of these similarly named communication frameworks? It's enough to make your head spin. The purpose of this section is to explain each of these communication frameworks, what they do and how you may troubleshoot them effectively.
Before getting into the various communication frameworks, it's important to first understand the multicast address. While it might look like an IP address, it is not. A multicast address consists of a group address: 239.254.000.007. The group address is followed by a colon and a port number: 8005
So an MSMQ multicast address might look like this in the configuration XML: 239.254.000.007:8005
While an IP multicast address appears in the configuration XML like this:
<multicast group="239.254.000.007" port="8005" ttl="2" />
A few things to remember about multicasting:
- Multicast communication is connectionless.
- Multicast groups are restricted to class C network IP addresses (in the range 188.8.131.52 to 184.108.40.206).
- Responder uses scope-relative multicast addresses (in the range 220.127.116.11 to 18.104.22.168). This means the group is intended for local use within a domain. It does not need to be globally unique and messages are not passed beyond the domain boundary.
IP Multicast and MSMQ Multicast use multicast to communicate information to various components. For this reason it is critical that the multicast addresses for these two communication methods do not overlap.
The multicast address for a single communication framework (e.g., IP Multicast) may appear in multiple configuration files. This address MUST be consistent across all configuration files to ensure data is communicated accurately.
Multicast Address Summary
Important things to remember about your multicast addresses:
- All multicast addresses must fall in the same class/range.
- Multicast addresses for different communication frameworks must not overlap.
- A multicast address for a single communication framework must be consistent across all configurations.
The pages in this section focus on the various communication frameworks employed by Responder.
Responder's MSMQ .NET Remoting Channel facilitates the majority of communication between components. The blue lines in the diagram below represent MSMQ .NET Remoting Channel.
Responder PubSub uses MSMQ Multicast and PGM to communicate database changes between Responder Explorer and Data Services. The red lines in the diagram below represent Responder PubSub.
Responder events use IP Multicast to communicate the existence of database changes to ArcMap. The green lines in the diagram below represent Responder events.
The following diagram shows all of the Responder components and the methods they use to communicate with one another.