Milestone Federated Architecture

The Milestone Federated architecture is used by customers having a large installation with many sites, or because of distributed and/or unreliable network connections - in transportation sector.

Each site is a complete self-contained XProtect Corporate (central or remote) or XProtect Expert (remote) installation, and will in most cases not require any specific considerations from a plug-in point of view.

When developing own applications using the MIP .Net library, site support should be considered as the application will need to add sites of interest to the list of servers - if a complete view of all sites makes sense. Having all sites with all cameras available can also be a problematic approach from a scaling point of view when a customer has thousands of cameras and numerous sites.

Login and Connecting to all sites

Normally a user should login to all sites with same credentials. Also, usually just one server address is defined, e.g. the top of the hierarchy, and then any child sites to the specified one should be added to the configuration.

Please checkout the EnvironmentManager class for methods on getting site information.

A typical startup sequence could be:

  1. Initialize VideoOS.Platform.SDK.Environment
  2. Add top site with address and credentials
  3. Get top SiteItem class from EnvironmentManager
  4. Recursive add any child sites to list of servers
  5. Perform login to all sites

Under Component Samples there are a few samples starting with "MultiSite"

MIP Configuration and setup

As each site has its own Management Server and Event Server, MIP configuration is stored with each site. There is no 'combined' set of configuration. This also means that .Net Component solutions may need to load MIP configuration for each site specifically.

Notice that access to the list of cameras in the Management Client is only the cameras on that site, and x-site MIP configuration is not easy to do.

Therefore a .Net Component solution should not span services over multiple sites, unless specifically designed to do that. E.g. a plugin in the management client cannot map cameras from another site, hence a service fetching video from for analysis - should be configured to work with one site only.

But a solution just consuming video and events can easily span multiple sites.