Architecture
Class Interaction Figures
Unified Access to Milestone Configuration
Legend: Green boxes contains plug-in development / classes, blue boxes contains Milestone-developed classes / applications. Gray box is the MIP Enviroment.
All plug-ins can access any Milestone Items via the Configuration class. All configuration items are provided via a base class (Item), and identified by a fully qualified identification (FQID). The purpose of a fully qualified identification is to be able to scale to very large systems where loading the entire configuration is not possible.
The fully qualified identification contains fields for identifying which server owns the configuration item, what type of server it is, the item's ID and a few other fields. An application can save an item's FQID in XML format, and later use it directly without having to contact any servers for looking up where items reside.
Items can be accessed in several ways, and the calling method can be synchronous or asynchronous.
All access via the Configuration class isolates the plug-in from having to know the different XProtect VMS configurations, as the MIP Environment implements the unification / abstraction layer.
Unified Method for Providing Plug-In Configuration to Milestone Applications
When access to a plug-in owned Item is required, the following steps takes place:
- The Environment will identify owning plug-in via the PluginDefinition
- Call the GetItem() method on the ItemManager class
- The ItemManager implementation decides if configuration is stored on 3rd party server or on Milestone server
- If on Milestone server, the Configuration class supply a few methods to assist a plug-in with storing and gettings its configuration.