Snapshots and Synchronization
AggreGate server keeps device snapshots, i.e. cached device metadata and most recent setting values. System operators only work with snapshots and rarely with devices directly. The server, in its turn, synchronizes snapshots with devices.
Synchronization is made on a “best effort” basis, i.e. at the earliest opportunity when the device gets online and connects to the server. This is the way AggreGate solves the problem of remote configuration, control and monitoring of devices with unstable availability.
Data Buffering
If a device is disconnected, AggreGate server queues setting changes and requested operations, while the device itself may buffer events and value updates. Both server-side and device-side updates will be synchronized once the connection is restored.
Device-side queuing of value updates and events during disconnection periods is only supported by a small set of communication protocols, including AggreGate protocol used by agents.
Synchronization Stages
Device synchronization process includes several stages:
- Updating device metadata, i.e. information about available settings, operations, and events
- Reading current values of device settings and storing them in the server-side snapshot
- Pushing setting changes performed since the last synchronization into the device (if it was disconnected for a while)
- Reading device’s internal setting change and event archives and storing those updates/events in the server event database
- If a device has recently connected, subscribing to device events and value changes and starting to process them asynchronously
Device Batch Operations
Since device snapshots are stored on the server, batch operations with a large number of devices are possible regardless of how many devices are currently connected to the server.
Several devices can be combined into a group in which a setting change made to one device is automatically applied to all other devices.
Batch operations can be performed even on devices that are not fully identical, e.g. running different firmware versions and having differing setting formats. In each such case, the server will also perform the operation on a “best-effort” basis, i.e. try to match the settings of one device to the settings of another.
Delayed Configuration
AggreGate lets you view and change the configuration of any device which has been connected to the server at least once. All server-side profile changes are stored in the device snapshot and written to the device immediately when it becomes available.
This helps to manage devices that have non-persistent or unstable connections with the server, such as wireless devices, devices connected via LPWA and satellite links, or devices periodically stopped for maintenance.
Imagine you are controlling a large fleet of forklifts with integrated vehicle controllers. You may need to change a particular setting on all controllers at once – say, decrease the top speed limit due to an update in the safety requirements. Your devices may be re-configured only when the forklifts carrying them are within range of a base station. There is never a single instance where all devices are in range at once, so you'll need to perform several configuration update cycles.