Tech Paper - Responder Communication Framework

Version 15

    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 224.0.0.0 to 239.0.0.0).
    • Responder uses scope-relative multicast addresses (in the range 239.0.0.0 to 239.255.255.255). 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.

     

    MSMQ .NET Remoting Channel

    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.

     

    Troubleshooting

     

    Responder PubSub (MSMQ Multicast)

    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.

     

    Troubleshooting

     

    Responder Events (IP Multicast)

    Responder events use IP Multicast to communicate the existence of database changes to ArcMap. The green lines in the diagram below represent Responder events.

     

    Troubleshooting

     

    The following diagram shows all of the Responder components and the methods they use to communicate with one another.

     

    Diagram.png