Service and Process Models
Simple monitoring systems allow direct visualization of values that were collected from devices. However, devices from different manufacturers use differing approaches for providing values with the same physical meaning.
For example, network management products are used to track CPU load of network nodes. This simple metric is available in many different forms:
However, a Network Device Dashboard should have a "CPU Load" chart equally looking for all device types. A "High CPU Load" alert is also expected to behave similarly. Moreover, we'd like to build a "CPU Load Overview" report showing current utilization of all devices in the network.
The right way to ensure the above requirements is having a numeric "CPU Load" metric in every device that provides CPU data. This metric should have common format, but its calculation and update policy will differ between device types.
Models operating inside AggreGate server solve this and similar cases by simulating different business objects or processes. The models range from simple, such as CPU load model, to really complicated ones, e.g. representing a whole industrial plant.
Each model comprises:
A model may act on its own (absolute model) or get attached to lower-level objects, such as devices (relative model). In the second case, multiple instances of a model are created, each of them using object it's attached to as its primary data source.
The third model type assumes explicit on-demand model instance creation. For example, an Oil Rig model may hold information about devices and controllers installed on a rig, as well as data collected from the particular rig (that's not a single device indeed). Such models are called instantiable models.