The present invention relates to a system and method for retrieving and maintaining valid data from devices and in particular, from devices being managed remotely in a network.
Large numbers of devices may be deployed to record and generate data. For example, utility companies may operate a large number of smart meters and these data need to be communicated to a central location. For such devices, it is in general important to be economical with system resources such as power usage, especially when the devices are battery powered and it is difficult or not feasible to replace the batteries.
Devices can be operated and managed by device management servers in order to coordinate the data communication to application servers and other entities.
WO 2015/036791 describes a system and method for managing devices more effectively by synchronising data from the devices with corresponding locations within a memory store. This enables the data to be available even when the devices are not in communication with a device manager.
However, some data types becomes less useful as the time increases from the last synchronisation.
Therefore, there is required a system and method that overcomes this problem.
Devices generate or record data values for particular attributes. For example, a device may have one or more sensors that generate values. The devices include one or more communications interfaces allowing them to send their data to a device manager or other receiving entity or server. In order to preserve bandwidth, power or other resources, the devices do not send their data all of the time but may do so according to a schedule or when prompted to do so (e.g. following a wake-up message being sent to them). A data store, database or other storage array maintains a copy of device values for each attribute. The stored values are updated (synchronised) whenever the values for particular attributes are received from the devices. Therefore, a copy or snapshot of the data are maintained that can be queried whenever a particular attribute value is required. The stored values represent the latest available values. As newer values are received then the older values are replaced in the memory store.
If a requested attribute value is determined to be too old or out of date (e.g. expired) then such a value may not be of use to a requester even though it is the latest available attribute value. Instead of providing the expired value, a newly received value of the attribute is provided in response to the request. There are several ways in which the new value is received. There may be by an immediate query sent to the device. For example, a wake-up message may be sent to the device in order to prompt it to return the attribute value (e.g. earlier than it would otherwise send the value). Therefore, attribute values do not need to be communicated unnecessarily, optimising system resource use (e.g. device battery power). Alternatively, the value may be returned the next time that the device is active or in communication with the device manager (e.g. a communications interface, such as a wireless interface, is powered). This may be at a time when another function is required that would not otherwise result in the particular attribute value from being returned (e.g. a heartbeat message, a status message, another attribute value being returned). This can be administered by the use of a queuing system with the device querying the queue whenever it wakes or is in active communication. Requested values are only returned by the device when an entry for that device (or group of devices) and attribute value is present on the queue. This further reduces system resource use but increases the time for responding to a query for a particular attribute value.
Against this background and in accordance with a first aspect there is provided a method for managing device data comprising the steps of: receiving from one or more devices values of one or more attributes; storing the values of the one or more attributes associated with the one or more devices in a memory store; maintaining synchronisation of the one or more values between the attributes stored in the memory store and the corresponding attributes associated with the devices, wherein the device attributes comprise at least a first attribute; receiving a request for the value of the first attribute; determining if the value of the first attribute has expired; and if the stored value of the first attribute has expired then receiving the value of the first attribute from the one or more devices and providing the received value of the first attribute in response to the request.
Preferably, if the value of the first attribute has not expired then the method may further comprise the step of retrieving from the memory store the stored value of the first attribute and providing the retrieved value of the first attribute in response to the request. In either case, a valid value of the attribute is usually or always provided (i.e. a value that is recent enough to be useful to the requester).
Optionally, receiving the value of the first attribute from the device may further comprise the steps of:
Optionally, the device may have a first state where it is unable to provide the value of the first attribute and a second state where it is able to provide the value of the first attribute. The device may have different states in order to limit the use of system resources under particular circumstances.
Advantageously, the step of receiving the value of the first attribute from the device may further comprise the steps of:
Optionally, the message may be sent to the device over a first communications channel and the value of the first attribute is received from the device over a second communications channel different to the first communications channel. For example, the first communications channel may require less power or system resources or be optimised for intermittent communications, whereas the second communications channel may be more optimised for sending data (e.g. more securely or more reliably).
Preferably, the first state may be a low power state and the second state may a high power state with the device drawing a higher power than when in the low power state. This preserves power and can extend the life of the device, especially when battery powered.
Optionally, the synchronisation of the one or more values between the attributes stored in the memory store and the corresponding attributes associated with the devices may be maintained at intervals and the first attribute has a first synchronisation interval. The synchronisation may also be carried out whenever the device or devices are available and in communication, which may or may not be at regular intervals or at predetermined times.
Optionally, the device attributes may further comprise a second attribute, the second attribute having a second synchronisation interval shorter than the first synchronisation interval, and further wherein the step of receiving the value of the first attribute when the value of the first attribute has expired further may comprise the steps of:
Preferably, the first attribute may have an expiry time or duration and the step of determining if the value of the first attribute has expired comprises comparing the expiry time or duration with a time period since the value was synchronised and/or stored in the memory store. Such a time may be stored as a timestamp or the value may be associated with a record time at the device that send the attribute value, for example. The expiry time or duration may also be stored with the attribute value (or otherwise associated with it in a data store). However, it may be preferable for the expiry time, duration or other indication of a validity period to be received with the request for the attribute value. For example, this may be an absolute time (e.g. three days and six hours) or as a specific time and date (e.g. 13:00 on 23/06/2021 or numerical equivalent). Receiving such an indication with the request has the advantage of increased flexibility because different requests (even if received at the same or similar times) can result in the same attribute value being considered as unexpired for one request (resulting in the stored attribute value being returned) or as expired for another request (and so prompting a fresh acquisition or synchronisation of the attribute value). Therefore, the freshness of attribute value can be changed for different uses. Of course, if a request for an attribute value indicates that the stored value has expired then the stored value can be replaced with the more recent value, when it is acquired and subsequently synchronised.
Optionally, the expiry time or duration may be determined from information received with the request for the value of the first attribute. Therefore, different requesters may have different validity time requirements or the same requester can vary such validity parameters and times more easily.
Optionally, the request may associated with a particular device of the one or more devices. Furthermore, groups or sets of devices may be queried or the attribute values from all devices may be queried at the same time.
Optionally, the request may include data indicating an expiration time of the requested value. This may be a code or flag that indicates a particular period (e.g. 2 hours, 3 days, etc.), an absolute time or time code (e.g. 202106241300) or a number of seconds, minutes and/or hours or other indication.
Preferably, the step of determining if the value of the first attribute has expired further comprises determining if the current time is not earlier than the expiration time of the requested value. The expiration time may be taken directly from the request or a further step may be to calculate the expiration time using the data within the request. There can be other ways to determine if the requested value has expired including but not limited to determining if the current time or the time of the request falls before the time that the data was acquired or stored and a time calculated by adding a length of time indicated in the request to that acquisition time, for example. If the current time is out of this range then the stored attribute value has expired.
According to a second aspect, there is provided a system comprising:
Optionally, the synchroniser may be further configured to synchronise the one or more values between the attributes stored in the memory store and the corresponding attributes associated with the devices at intervals and the first attribute has a first synchronisation interval, the device attributes further comprise a second attribute, the second attribute having a second synchronisation interval shorter than the first synchronisation interval, and wherein the device manager is further configured to: at the time of a synchronisation for the second attribute, receive the value of the first attribute and the value of the second attribute and providing the value of the first attribute in response to the request.
According to a third aspect, there is provided a method for managing device data comprising the steps of:
Preferably, if the stored value of the first attribute has not expired then the method may further comprise the step of retrieving from the memory store the stored value of the first attribute and providing the retrieved value of the first attribute in response to the request.
Optionally, the request may be associated with a particular device of the one or more devices.
Advantageously, if the stored value of the first attribute has expired then the value of the first attribute may be received by:
The methods described above may be implemented as a computer program comprising program instructions to operate a computer. The computer program may be stored on a computer-readable medium.
The computer system may include a processor or processors (e.g. local, virtual or cloud-based) such as a Central Processing unit (CPU), and/or a single or a collection of Graphics Processing Units (GPUs). The processor may execute logic in the form of a software program. The computer system may include a memory including volatile and non-volatile storage medium. A computer-readable medium may be included to store the logic or program instructions. The different parts of the system may be connected using a network (e.g. wireless networks and wired networks). The computer system may include one or more interfaces. The computer system may contain a suitable operating system such as UNIX, Windows® or Linux, for example.
It should be noted that any feature described above may be used with any particular aspect or embodiment of the invention.
The present invention may be put into practice in a number of ways and embodiments will now be described by way of example only and with reference to the accompanying drawings, in which:
It should be noted that the figures are illustrated for simplicity and are not necessarily drawn to scale. Like features are provided with the same reference numerals.
The request from the customer server 20 includes a validity period or time for the particular requested attribute value. This information defines the oldest acceptable value (the values may change over time or be an instantaneous sensor reading, for example). The device management server 30 checks if the copy of the value that it has previously stored has expired or is older than the validity period indicated in the request. The upper box of the sequence diagram shows the device management server 30 returning the attribute value in response to the request when the stored copy of the value has not expired or is still within the requested validity period. The lower box in
A further optional step may be to return the out of date value in addition to the customer server 20. The response may indicate which value is current or within the validity period and which value has expired. Therefore, the customer server 20 can optionally receive both the stored value that is out of date or expired as well as the current value or at least a more recent value, from the device or devices 10.
In this figure, four devices 10 are shown. However, any number may be included and typically this would include many thousands of devices 10. Each device includes at least one communications interface 210 that enables the device 10 to communicate with the device management server 30. This may be accomplished through a wide area network (WAN) 230 that can include a telecommunications network or the internet, for example. Any suitable communications protocols and channels may be used to communicate with the devices 10, including those described in WO 2015/036791.
The synchronised attribute values are stored within a database 240 in communication with the device management server 30. Individual copies of values 220 are stored, updated and deleted within the database 240, as necessary. The database may be separate from the device management server 30 or incorporated within it.
Each device may include a further interface (not shown in this Figure) for receiving a wakeup message (e.g. SMS). The wakeup message may be sent over a different communications channel to that of the request and response (i.e. data).
At step 340, a request for a particular attribute value or values originating at one or more devices 10 is received. The device manager server 30 determines whether or not the requested data has a value that has expired within its database or memory store 240. This determination is made at step 350. If the value has not expired and remains valid and if it has not already done so, the value is retrieved at step 360. The attribute value is provided to the requestor at step 370.
When the stored value has expired or does not otherwise meet the validity requirements in the request then at step 380, the attribute value is received from the device, either immediately or at the next opportunity at step 380. This attribute value is returned to the requestor at step 390. The requirements may also include other factors as well as expiry time.
This provides a more efficient system and method because the various interfaces 210 in a device 10 are only being utilised when they were scheduled to do so and this can prolong the system resources such as battery charge and reduce unnecessary bandwidth usage as well.
The following describes further example implementations of the system and method for managing device data. Customer application servers 20 communicate with devices 10 in the field, of which there may be a very large number. For example, utilities companies operate a large number of smart meters in people's homes. These smart meters generate attribute values, such the amount of used resource. With such devices 10, it is generally important to be very economical with power usage. The devices may use the LWM2M protocol to transmit the attribute data securely over wireless communication channels.
Device management (DM) platforms (DMP) facilitate the operation of customer application servers (AS) 20 and devices 10. In other words, the AS 20 communicates with the devices 10 via the DMP. The DMP communicates with the devices 10 and the AS 20. The DMP (e.g. through its server or servers 30) can receive data from the devices 10 and queue commands to the devices 10 when data or actions are required, for example. The DMP maintains a ‘shadow copy’ of device parameters, which is available to the AS 20 when needed. This minimises power consumption by the device 10, since power is consumed only when the device 10 periodically transmits data.
The DMP therefore allows the AS 20 to interact with the DMP via a single set of integrated application programming interfaces (APIs) or other interfaces, rather than directly with each device 20.
WO 2015/036791 describes in detail how to synchronise the attribute values with the memory store 240 as well as how the attribute values are transmitted to the device manager server 30 from the devices 10 in a secure manner. The synchroniser may synchronise the attribute values at intervals, which may be defined by a schedule (e.g. contact device A at time X, device B at time Y, etc.) or at a particular time interval (e.g. every X minutes). The interval or specified times may be pre-determined or dynamically set based on other criteria. Certain groups of devices (e.g. heart monitors) may then be synchronised more often than others.
Timeliness rules may indicate the criticality of a data item and how frequently the Device Manager 30 should attempt to update the information; e.g. meter readings from a power meter where at least one meter reading is required in a 24 hour period. Timeliness meta-data attributes allows connectivity systems to operate in concert with the physical devices, to automate the data collection activities and for optimisation (e.g. operating during times of low cellular activity).
The DMP determines whether the shadow copy of data associated with a particular device is relatively new and up-to-date, or outdated and expired. If the data is outdated or expired, then the DMP queues a command to the device 10 and requests the device 10 to transmit current data to the DMP. This is achieved by setting a threshold period for using a particular set of shadow data, after which the DMP requests up to date data from the device, to update the shadow data and/or send requested data to the AS 20. An advantage of this approach is to reduce the burden of computation of the AS 20, since some computation is shifted to the DMP.
With reference to
For data that is not available, or is older than the “Validity Period”, a read request will be queued waiting for the device to connect to the Device Management Platform to provide the current variable value. If required, an attempt can be made to “wake up” the device by using SMS functionality or another direct communications channel, to prompt the device to supply the data more quickly (i.e. change from a low power state where the communications interface 210 is not in operation to a high power state when it is).
Variables reads from either the device shadow or the device 10 (depending on the validity test) are returned asynchronously via an outbound notification API readVariableNotification.
Setting getShadowOutOfValidity to true will return the device shadow value, even if the value is older than the validatiyPeriod, and the “read variable” request is also queued.
The following provides an example implementation. An engineer has an upcoming engineer visit to provide some maintenance to an installed water meter. In advance, the engineer wants to know whether or not the battery needs replacing. To conserve power, the meter is configured to only provide its battery level once a month, but it will be a couple of weeks until it next provides updated battery information (according to the synchronisation schedule for this attribute value and device combination). The engineer logs into a platform and asks for the battery level. The engineer's platform requests the battery level from the device manager server 30, specifying seven days as the validity period. The device manager server 30 (via a platform interface) determines that the battery level reading currently stored within memory store 240 is outside of the validity period and so queues a read of the battery level onto the meter's command queue.
The water meter is scheduled to check-in with the device manager server 30 daily to provide the water usage/metering data. When it does so, it is informed that it must also provide an update-to-date battery reading, which it does (e.g. by reading the request from the queue). The new battery level information is then forwarded to the Engineer's platform, so that they have full understanding of the device's current status and what parts are required for his visit.
Further benefits include:
As will be appreciated by the skilled person, details of the above embodiment may be varied without departing from the scope of the present invention, as defined by the appended claims.
For example, expiry of particular attribute values may be set by attribute type (e.g. associated within the memory store as further data field), for particular devices or sets of devices, or predetermined and stored at the device manager. The queue may take different forms and may be managed by a queue manager as a separate entity or server. The data may be transmitted using LWM2M or other secure protocol. The optional steps may be triggered by the request from the customer server or defined by other logic.
There may be one attribute value or two attribute values having different synchronisation schedules or intervals. Furthermore, there may be more than two attribute values have different (or the same) synchronisation schedules or intervals. When an up to date attribute value is requested then at the next synchronisation (for any value), then the requested value may additionally be returned. Other non-requested values may also be returned at the same time to update the stored values in case these are subsequently requested.
Many combinations, modifications, or alterations to the features of the above embodiments will be readily apparent to the skilled person and are intended to form part of the invention. Any of the features described specifically relating to one embodiment or example may be used in any other embodiment by making the appropriate changes.
Number | Date | Country | Kind |
---|---|---|---|
2109876.9 | Jul 2021 | GB | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/GB2022/051565 | 6/20/2022 | WO |