A Tracking Server takes in camera and object tracking data, processes it and forwards it to one or more render engines. In a single-machine setup, the Tracking Server is run on the same machine as the engine. The Tracking Server is always run on the machine where the camera is defined. In a multi-machine setup, you can choose between several configurations. You can run define cameras locally on each engine, and run a Tracking Server each engine for redundancy purposes. Alternatively, you can define your cameras centrally and run a single tracking server on the central machine, passing the tracking data to each engine. The disadvantage of a single tracking server is that it is a single point of failure. You also need to choose whether the tracking system should be connected directly to the engine, or through a network. Let's start with running one Tracking Server per engine, where the tracking system is directly connected:
This is the simplest setup, with the fewest sources of problems. Here the Tracking Server must be configured to send tracking to the specific IPs of the engines. It is not possible to reroute tracking from camera 1 to engine 2 without changing the physical cabling.
Let's take a look at running one Tracking Server for several machines. Here both tracking systems are sending to the same IP but on different ports. We can now easily reroute the tracking to the engine we want, but we have introduced a single point of failure (engine 2). The tracking for engine 1 now travels through more network adapters, increasing the chance of packet loss.
Let's take a look at a third option, where all tracking systems and engines are connected to the same network. Here we can utilize the broadcast address to send tracking data from all cameras to all engines. The engines will then be configured to listen to one of the cameras by choosing a port to listen to. This allows us to easily switch which engine uses which tracking, and will also allow us to make a redundant backup engine that can take over for any engine in case of a failure. This method (broadcasting tracking) should only be used on closed networks, because when sending to the broadcast address, all machines on the network will receive the tracking. This could swamp large networks with unnecessary data..
Direct cable connection
One Tracking Server per engine
One Tracking Server for all engines
Simple. Less chance of packet loss
No single point of failure
Easy to reroute
More network nodes so a higher chance of packet loss or delay
No rerouting without broadcast
Single point of failure for all tracking data
Your choice depends on your requirements for rerouting on the fly and your network setup.