The core of SimageM2M system is based on several patent pending concepts that are revolutionary for the device management industry. The most important innovations are device normalization, device-to-server synchronization and server-side device data caching. Combination of these technologies allows SimageM2M to perform in totally different domains, ranging from SCADA and network management to physical access control.
In SimageM2M, each device is represented as a so-called context, within a hierarchical structure of contexts. Each context includes a set of formalized data elements of three types: properties, methods, and events. A context also contains metadata that describes the data elements available in it. Additionally, the metadata includes a list of all child contexts of the current context. Thus, the data elements and the metadata of each device are stored entirely within the context. This technology is called device normalization.
Some parallels exist with object-oriented programming, where objects typically contain properties, events, and methods. Properties are internal variables of the device, methods are operations that the device can perform, and events are a way for the device to notify the server of changes detected in the internal or external operating conditions.
Virtually any device designed to perform a function can be described as a set of properties, methods, and events. For example, a smart remotely-controlled water tank can have a "water level" property to reflect current amount of water in the tank, and "turn valve on" and "turn valve off" methods to control the valve that lets the water into the tank. This smart water tank may also generate a number of events such as "nearly empty", "nearly full", and "overflow".
Data Caching and Grouped Operations
Additionally, server stores a copy of the data elements of each device, and the system operators work only with the copies of the data elements stored on the server, and rarely directly with the data elements of the devices. The server, in its turn, synchronizes its own local copies of the data elements with the data elements of devices.
Synchronization is made on a "best effort" basis, i.e. at the earliest opportunity when the device becomes online and connects to the server. Thus, SimageM2M solves the problem of remote configuration, control and monitoring of devices with unstable availability.
Since the synchronized copies of device data elements are stored on the server, so called "group operations" become possible. Group operations are one of the strongest aspects in SimageM2M, as they spare the user from the necessity to configure and control each device separately. Group operations involve making simultaneous changes to the copies of data elements of several devices.
For example, several devices in a system can be combined into a group in which a change made to a copy of the data element of any device is automatically repeated for the corresponding elements of all other devices in the group. Moreover, group operations can be performed on devices that are not fully identical. For example, there may be a difference in the set of data elements of devices caused by different firmware versions these devices are running. In each such case the server will also perform the operation on a "best-effort" basis, i.e. try to match the elements of one device to the data elements of another device.
Robust Communications Protocol
Central server uses an open and well-documented communications protocol to intelligently access, manipulate and process the data elements and the metadata of each device connected to the system.
In combination, the object-based representation of devices and the communications protocol provide a foundation for a system that automatically learns about the specifics of each connected device, even if this device has connected to the system for the first time. As a result, the cost and complexity of implementing the support for new devices in the system are greatly reduced.
SimageM2M has its own domain-specific languages: expression language and query language. These languages are very similar to the Java programming language and Structured Query Language (SQL) respectively. However, both languages were designed for the "natural" understanding of normalized data coming from hardware devices and circulating inside the system. They greatly simplify complex data processing required in modern device management systems. All LinkServer data processing facilities, such as alerts or reports, may be flexibly customized using expression and query languages.
The use of the central server has other benefits, such as: centralized user management, coordinated authentication and authorization of devices and users, and correct handling of events generated by devices located in different time zones.
Further, in contrast to direct device configuration, SimageM2M makes use of hardware device controllers that establish outgoing connections to the server. Whereas typical Web based configuration requires a real IP address to be assigned to each device for this device to be accessible over the network, SimageM2M only requires a single real IP address – for the server. All devices in the system establish an outgoing connection to the server. This eliminates the necessity to configure firewalls on each device’s side, and also allows interaction with devices on cellular networks, such as GPRS, which only allow outgoing connections.