WO2023117071A1 - Management of offline internet-of-things devices - Google Patents

Management of offline internet-of-things devices Download PDF

Info

Publication number
WO2023117071A1
WO2023117071A1 PCT/EP2021/087239 EP2021087239W WO2023117071A1 WO 2023117071 A1 WO2023117071 A1 WO 2023117071A1 EP 2021087239 W EP2021087239 W EP 2021087239W WO 2023117071 A1 WO2023117071 A1 WO 2023117071A1
Authority
WO
WIPO (PCT)
Prior art keywords
client
server
operation instructions
condition
operations
Prior art date
Application number
PCT/EP2021/087239
Other languages
French (fr)
Inventor
Oscar Novo Diaz
Rajat KANDOI
Original Assignee
Telefonaktiebolaget Lm Ericsson (Publ)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget Lm Ericsson (Publ) filed Critical Telefonaktiebolaget Lm Ericsson (Publ)
Priority to PCT/EP2021/087239 priority Critical patent/WO2023117071A1/en
Publication of WO2023117071A1 publication Critical patent/WO2023117071A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Definitions

  • LoT offline Internet of Things
  • Open Mobile Alliance Lightweight Machine to Machine (LwM2M) protocol is a vendor-agnostic standard for managing constrained devices on a variety of networks.
  • the LwM2M protocol is disclosed in “Lightweight Machine to Machine Technical Specification: Core”, Version 1.2, November 10, 2020, Open Mobile Alliance (OMA), OMA-TS- LightweightM2M_Core-Vl_2-20201110-A.
  • OMA LwM2M is necessary to realize the potential of loT devices.
  • the LwM2M builds on the Constrained Application Protocol (CoAP) and it has been designed for remote management of loT devices.
  • the Constrained Application Protocol (CoAP) is disclosed in Z. Shelby, K. Hartke, and C. Bormann, “The Constrained Application Protocol (CoAP)”, RFC 7252, Internet Engineering Task Force (IETF), 2014, https://datatracker.ietf.org/doc/html/rfc7252.
  • the LwM2M defines a data model where each piece of information made available by a LwM2M client is a resource.
  • the data model is a tree with maximum depth of four, consisting of, objects, object instances, resources, and resource instances.
  • Objects can have object instances; resources can have resource instances; and resources are located in object instances.
  • a resource informing about the temperature of a device, along with other resource(s) expanding that information can be located in a single object instance.
  • FIG. 9 the LwM2M client has a group of resources, each of which belongs to an object.
  • the figure also shows multiple instances of resource 3 of object 0 and multiple instances of object 1.
  • the LwM2M supports four logical interfaces which help to standardize the way the actual device management is done.
  • the four logical interfaces are as follows: [0005] Bootstrap Interface - The bootstrap interface is used to provision essential information into an LwM2M client to enable the LwM2M client to perform a register operation with one or more LwM2M servers.
  • Client Registration Interface The client registration interface is used by an LwM2M client to register with one or more LwM2M servers, maintain each registration, and de-register from one or more LwM2M Server.
  • the device management and service enablement interface is used by a LwM2M server to access object instances and resources available from a registered LwM2M Client.
  • the interface provides this access using Create, Read, Read-Composite, Write, Write-Composite, Delete, Execute, Write-Attributes, or Discover operations.
  • Information Reporting Interface The information reporting interface is used by an LwM2M server to observe any changes in a resource on a registered LwM2M client, receiving notifications when new values are available. This observation relationship is initiated by sending an Observe or Observe-Composite operation to the LwM2M client for an object, an object instance, or a resource. An observation ends when a Cancel Observation or Cancel Observation- Composite operation is performed.
  • the LwM2M finds its use in fields such as manufacturing, logistics, medicine, utilities, remote controlling, robotics, automotive industry, and security.
  • loT devices Managing loT devices over LwM2M requires the loT devices to be connected to a LwM2M server. But many times, loT devices can accidentally or intentionally go offline (i.e., disconnected from the LwM2M server). Accidental disconnections of the loT devices from the LwM2M server may occur due to network issues, and intentional disconnections of the loT devices from the LwM2M server are normally initiated by the loT devices in order to save battery power of the loT devices (which is an important aspect of the lifecycle of the loT devices). Thus, currently it is a common practice for constrained loT devices to be periodically disconnected from the server to save energy.
  • the LwM2M server loses communication with the loT devices, and thus the loT devices cannot be managed remotely by the server until the devices are reconnected to the LwM2M server.
  • the managed loT devices get disconnected from the LwM2M server in dangerous situations (e.g., a robot in a factory performing a dangerous operation such as manipulating hazardous materials gets disconnected during the operation) or while performing a certain task requiring a continuous management (e.g., a drone flying in a city may need to continuously receive operation commands).
  • loT devices i.e., LwM2M clients
  • LwM2M clients the loT devices
  • the current LwM2M standard does not provide a solution for managing loT devices that are offline (i.e., not connected to the LwM2M server).
  • a method performed by a client comprises receiving a set of one or more operation instructions transmitted by a server and storing the received set of one or more operation instructions.
  • the method further comprises after storing the set of one or more operation instructions, determining that the client is no longer connected to the server and based at least on determining that the client is no longer connected to the server, performing a set of one or more operations based on the received set of one or more operation instructions while the client is not connected to the server.
  • a method performed by a server comprises detecting one or more conditions (e.g., detecting a powering up of anloT device and/or determining that the loT device is of a particular type or is configured to perform a particular action).
  • the method further comprises, upon detecting the condition, transmitting towards a client connected to the server a set of one or more operation instructions configured to cause the client to perform a set of one or more operations based on the set of one or more operation instructions after the client is disconnected from the server.
  • a computer program comprising instructions which when executed by processing circuitry cause the processing circuitry to perform any of the methods described above.
  • a client configured to receive a set of one or more operation instructions transmitted by a server and store the received set of one or more operation instructions.
  • the client is further configured to after storing the set of one or more operation instructions, determine that the client is no longer connected to the server and based at least on determining that the client is no longer connected to the server, perform a set of one or more operations based on the received set of one or more operation instructions while the client is not connected to the server.
  • a server configured to detect one or more conditions (e.g., detecting a powering up of an loT device and/or determining that the loT device is of a particular type or is configured to perform a particular action).
  • the server is further configured to, upon detecting the condition, transmit towards a client connected to the server a set of one or more operation instructions configured to cause the client to perform a set of one or more operations based on the set of one or more operation instructions after the client is disconnected from the server.
  • the embodiments of this disclosure provide a method for managing loT devices when they are offline. More specifically, by providing in advance to the loT devices operations to perform in case the loT devices (i.e., LwM2M clients) are disconnected from the loT server (i.e., LwM2M server), the embodiments enable reliable management of offline loT devices and minimize the dangers caused by abrupted disconnections of the loT devices from the network.
  • the loT devices i.e., LwM2M clients
  • LwM2M server i.e., LwM2M server
  • FIG. 1 shows an exemplary environment.
  • FIG. 2 shows a message flow diagram according to some embodiments.
  • FIG. 3 shows a message flow diagram according to some embodiments.
  • FIG. 4 shows a message flow diagram according to some embodiments.
  • FIG. 5 shows a process according to some embodiments.
  • FIG. 6 shows a process according to some embodiments.
  • FIG. 7 shows an apparatus according to some embodiments.
  • FIG. 8 shows an apparatus according to some embodiments.
  • FIG. 9 shows a relationship between an LwM2M client, objects, object instances, resources, and resource instances.
  • FIG. 10 shows an overall logical architecture of LwM2M based system.
  • Embodiments of this disclosure provide a method for an loT server (e.g., a LwM2M server) to enable remote management of an loT client (e.g., a LwM2M client) that goes offline (either inadvertently or intentionally). More specifically, while the LwM2M client is connected to the LwM2M server, the LwM2M server may provide to the LwM2M client offline instructions on how to behave in case the LwM2M client goes offline. Additionally, the LwM2M server may provide to the LwM2M client conditions for executing such offline instructions.
  • a loT server e.g., a LwM2M server
  • the LwM2M client determines whether the conditions are satisfied or not, and only upon determining that the condition are satisfied, the LwM2M client executes the offline instructions.
  • FIG. 1 shows the exemplary environment 100 according to some embodiments.
  • the environment 100 includes a robot 102 comprising one or more sensors and/or one or more actuators (“S/A”) 190, and an loT server 106.
  • the robot 102 is configured to move hazardous material storage containers 104 (e.g., radioactive waste storage containers) from an unsafe area 112 to a safe area 114.
  • the operation of the robot 102 may be based on the readings from the sensors and/or the actuation of the actuators 190.
  • the S/A 190 may be a temperature sensor configured to measure the surrounding temperature of the robot 102, and the operation of the robot 102 may depend on the measured surrounding temperature.
  • the S/A 190 may be an actuator (e.g., a motor) that is configured to cause the robot 102 to move from the unsafe area 112 to the safe area 114.
  • the S/A 190 are loT devices.
  • an loT device is defined as any constrained computing device that is configured to (i) perform certain functions, (ii) be connected to a network, and (iii) transmit and/or receive data over the network.
  • Examples of an loT device include but are not limited to radiation sensors, smart fire alarms, smart door locks, medical sensors, fitness trackers, smart security systems, and smart thermostats.
  • An loT server is any server that is capable of transmitting data towards and/or receiving data from an loT device.
  • An loT device and an loT server may communicate with each other using LwM2M.
  • the loT device is a LwM2M client and the loT server is a LwM2M server.
  • the S/A 190 of the robot 102 are LwM2M clients and the loT server 106 is a LwM2M server.
  • one or more middle entities e.g., a gateway, a router, a base station, etc.
  • the robot 102 and the loT server 106 may transmit data to and/or receive data from each other via such middle entities.
  • Such middle entities are not shown in FIG 1 for simplicity.
  • the S/A 190 of the robot 102 are configured to receive from the loT server 106 a command 150 transmitted by the loT server 106 and operate according to the received command 150.
  • the command 150 may cause the sensor 190 of the robot 102 to monitor the environment from hazards before the robot 102 picking up one of the containers 104 and move the container from the unsafe area 112 to the safe area 114.
  • the command 150 may cause the actuator 190 to trigger the robot 102 to move from the unsafe area 112 to the safe area 114.
  • the robot 102 monitors the area with its sensors, may pick up the container 104 and move the container 104 from the area 112 to the area 114.
  • the S/A 190 of the robot 102 are configured to operate generally based on commands received from the loT server 106. However, there may be some scenarios where the S/A 190 are disconnected from the loT server 106, thereby failing to receive any command from the loT server 106.
  • the S/A 190 are connected to the loT server 106 via a cellular network (e.g., 3G, 4G, 5G, etc.), there may be a scenario where the cellular network to which the S/A 190 are connected is down (e.g., due to bad weather, network maintenance, etc.). Once the cellular network 110 is down, the S/A 190 can no longer receive command(s) from the loT server 106. Once the S/A 190 stop receiving command(s) from the loT server 106, the S/A 190 may stop operating.
  • a cellular network e.g., 3G, 4G, 5G, etc.
  • FIG. 1 shows a scenario where the S/A 190 stop operating, thereby resulting in that the robot 102 stops operating in the middle area 116 as the robot 102 was carrying the container 104 from the unsafe area 112 to the safe area 114.
  • another robot or a machine operating in the middle area 116 may collide with the robot 102. Such collision may cause the robot 102 to drop the container 104, thereby leaking hazardous material.
  • operation instructions execution of which causes the S/A 190 of the robot 102 to perform one or more particular operations when the S/A 190 are disconnected from the loT server 106 are provided to the S/A 190 before the S/A 190 are disconnected from the loT server 106.
  • operation instructions are referred as offline operation instructions.
  • the offline operation instructions that the S/A 190 received from the loT server 106 may be stored in a storage medium (e.g., a memory) provided in the robot 102. Then, if the S/A 190 become disconnected from the loT server 106, the stored offline operation instructions may be retrieved from its storage medium and the offline operation instructions may be executed, and thus a desired operation can still be performed even after the S/A 190 are disconnected from the loT server 106.
  • a storage medium e.g., a memory
  • the offline operation instruction(s) may cause the S/A 190 continue its operation - monitoring the environmental condition for triggering the robot 102 to move the container or actuating the robot 102 to move the container 104 from the unsafe area 112 to the safe area 114 - until it drops off the container 104 at the safe area 114.
  • the followings are different ways of the loT server 106 providing the offline operation instructions to the robot 102.
  • this operation mode of an loT device is referred as the “non-recording mode.”
  • an loT device receives and stores offline operation instructions - i.e., the operation instructions for the loT device, which are to be executed when the loT device is disconnected from the loT server - and executes the stored offline operation instructions once the loT device is disconnected from the loT server.
  • this operation mode of an loT device receiving consecutively and storing sequential operation instructions before executing them is referred as the “recording mode.”
  • the loT server may transmit towards the loT device a start recording command.
  • the loT device Upon receiving the start recording command, the loT device is configured to switch from the nonrecording mode to the recording mode.
  • the loT server may transmit towards the loT device one or more sequential offline operation instructions.
  • an offline operation instruction is an operation instruction to be executed by an loT device when the loT device is disconnected from the loT server.
  • the loT server may transmit towards the loT device a stop recording command.
  • the loT device may be configured to switch back from the recording mode to the non-recording mode.
  • FIG. 2 is an exemplary message flow diagram 200 illustrating the recording mode according to some embodiments.
  • the loT server 106 may transmit towards the sensor/actuator (“S/A”) 190 (i.e., an loT device) a start recording command 202.
  • the start recording command 202 informs the S/A 190 that (i) messages transmitted by the loT server 106 towards the S/A 190 after the start recording command 202 should be stored by the S/A 190 and (ii) operation instructions included in the messages are to be executed by the S/A 190 when the S/A 190 is disconnected from the loT server 106.
  • the start recording command 202 may indicate that the operation instructions included in the received messages should be executed in the order of receiving the messages.
  • the S/A 190 and the loT server 106 may be configured to operate based on LwM2M.
  • S/A 190 are LwM2M clients and the loT server 106 is an LwM2M server.
  • the S/A 190 Upon receiving the start recording command 202, the S/A 190 is configured to switch from the non-recording mode to the recording mode. Additionally and optionally, the S/A 190 may transmit towards the loT server 106 an acknowledgement message 204 indicating the successful receipt of the start recording command 202.
  • the loT server 106 may transmit towards the S/A 190 a set of one or more offline operation instructions.
  • the set of one or more offline operation instructions includes a first offline operation instruction 206, a second offline operation instruction 210, and a third offline operation instruction 214.
  • the start recording command 202 may also indicate that the operation instructions should be executed in the order of receiving the messages.
  • the start recording command 202 may indicate to the S/A 190, the first, second, and third offline operation instructions 206, 210, and 214 must be performed sequentially in the order of the S/A 190 receiving the first, second, and third offline operation instructions 206, 210, and 214.
  • the start recording command 202 may include a temperature threshold value indicating the minimum surrounding temperature of the robot 102 that needs to be reached in order for the robot 102 to perform the instructions 206, 210, and 214 and/or a humidity threshold value indicating the minimum surrounding humidity level of the robot 102 that needs to be reached in order for the robot 102 to perform the instructions 206, 210, and 214.
  • such additional condition e.g., the temperature threshold value and/or the humidity threshold value
  • Execution of the first offline operation instruction 206 causes the robot 102 to perform a particular offline operation.
  • the first offline operation instruction 206 may cause the S/A 190 to read the surrounding temperature of the robot 102.
  • the S/A 190 may optionally transmit towards the loT server 106 an acknowledgement message 208 indicating the successful receipt of the first offline operation instruction 206.
  • the loT server 106 may transmit towards the S/A 190 a second offline operation instruction 210.
  • execution of the second offline operation instruction 210 causes the S/A 190 to perform a particular offline operation.
  • the second offline operation instruction 210 may cause the S/A 190 to store the measured surrounding temperature into a storage or check whether the robot 102 is currently located at either the unsafe area 112 or the safe area 114.
  • the robot 102 may optionally transmit towards the loT server 106 an acknowledgement message 212 indicating the successful receipt of the second offline operation instruction 210.
  • theloT server 106 may transmit towards the S/A 190 a third offline operation instruction 214.
  • execution of the third offline operation instruction 214 causes the S/A 190 to execute a particular offline operation.
  • the third offline operation instruction 214 may cause the robot 102 to move itself to any of the unsafe area 112 or the safe area 114 that is closest to the robot 102’s current location in case the robot 102 is carrying the hazardous container and the robot 102 is currently not in the unsafe area 112 or the safe area 114.
  • the robot 102 may optionally transmit towards the loT server 106 an acknowledgement message 216 indicating the successful receipt of the third offline operation instruction 214.
  • FIG. 2 shows that the S/A 190 receives three offline operation instructions
  • the number of offline operation instructions the S/A 190 receives from the loT server is not limited to three but it can be any number greater than or equal to 1.
  • the loT server 106 may transmit towards the S/A 190 a stop recording command 218.
  • the stop recording command 218 informs the S/A 190 that the transmission of the offline operation instructions is over.
  • the S/A 190 may switch back from the recording mode to the non-recording mode.
  • the S/A 190 may transmit towards the loT server 106 an acknowledgement message 220 indicating the successful receipt of the stop recording command 218.
  • the S/A 190 may be desirable for the S/A 190 to perform a different set of offline operations based on a different condition. For example, it may be desirable for the S/A 190 to perform a first set of offline operations if a first condition is satisfied but to perform a second set of offline operations if a second condition is satisfied. In another example, it may be desirable for the S/A 190 to perform a first set of offline operations if a first condition is satisfied but to perform a second set of offline operations if the first condition and a second condition is satisfied. In such embodiments, the loT server 106 may transmit towards the S/A 190 multiple pairs of start recording commands and stop recording commands where each of the start recording commands includes a different condition for executing a different set of offline operation instructions.
  • FIG. 3 is an exemplary message flow diagram 300 showing multiple pairs of start recording commands and stop recording commands.
  • the loT server 106 may transmit towards the S/A 190 a first start recording command 302 that includes a first condition that needs to be satisfied in order for the S/A 190 to execute a first set of offline operation instructions 304 when the S/A 190 is disconnected from the loT server 106.
  • the loT server 106 may transmit towards the S/A 190 a first stop recording command 306 indicating that the transmission of the first set of offline operation instructions 304 is completed.
  • the loT server 106 may transmit towards the S/A 190 a second start recording command 308 that includes a second condition that needs to be satisfied in order for the S/A 190 to execute a second set of offline operation instructions 310 when the S/A 190 is disconnected from the loT server 106.
  • the loT server 106 may transmit towards the S/A 190 a second stop recording command 312 indicating that the transmission of the second set of offline operation instructions 310 is completed.
  • the S/A 190 After receiving the second stop recording command 312, in case the S/A 190 is disconnected from the loT server 106, the S/A 190 determines whether any one or more of the first and second conditions is satisfied.
  • the S/A 190 executes only the first set of offline operation instructions 304 while in the case the second condition is satisfied but the first condition is not satisfied, the S/A 190 executes only the second set of offline operation instructions 310. In case both the first and second conditions are satisfied, the S/A 190 may execute both of the first and second set of offline operation instructions 304 and 310.
  • the loT server 106 provides sequential offline operation instructions to the S/A 190 by transmitting towards the S/A 190 multiple messages (i.e., a start recording command, one or more offline operation instructions, and a stop recording command) consecutively.
  • the loT server 106 may provide the sequential offline operation instructions to the S/A 190 by sending a single offline instruction file.
  • FIG. 4 is an exemplary message flow diagram 400 corresponding to such embodiments.
  • the loT server 106 may transmit towards the S/A 190 an offline instruction file 402.
  • the offline instruction file 402 contains a set of sequential offline operation instructions.
  • the S/A 190 may optionally transmit towards the loT server 106 an acknowledgement message 404 indicating the successful receipt of the offline instruction file 402.
  • the S/A 190 may store the received offline instruction file 402 in a storage medium (e.g., a memory) included in the robot 102.
  • a storage medium e.g., a memory
  • the S/A 190 may validate the received offline instruction file 402 and store the received offline instruction file 402 only upon a successful validation of the file. If the S/A 190 cannot validate the received offline instruction file 402, the S/A 190 may just delete the file.
  • the S/A 190 may optionally transmit towards the loT server 106 an acknowledgement message 406 indicating the successful validation of the offline instruction file 402.
  • the S/A 190 may retrieve the offline instruction file 402 stored in the storage medium and sequentially execute offline operation instructions contained in the retrieved offline instruction file 402.
  • the offline instruction file 402 may additionally include a condition (that may comprise a set of one or more sub-conditions) for executing the sequential offline operation instructions.
  • the data included in the offline operation instruction file 402 may be as simple as below:
  • the file 402 may contain a specific operation instruction to be executed by the S/A 190 when there is an error in one or more of the operation instructions.
  • the file 402 may contain an error label and the specific operation instruction may be defined in the error label.
  • LwM2M specifies four interfaces: bootstrap, client registration, device management, and reporting.
  • the device management interface is used by an LwM2M server to access object instances and resources available from a registered LwM2M client.
  • This interface provides access to objects using the following operations: create, read, read-composite, write, write-composite, delete, execute, write-attributes, or discover.
  • some embodiments of this disclosure provide a new methodology for managing offline loT devices.
  • a new LwM2M object called offline management is created.
  • This name of the new LwM2M object is merely an example and does not limit the embodiments of this disclosure in any way.
  • Each instance of this new object defines a condition. Once the condition defined in each instance is met, the LwM2M client may act according to the actions defined inside the object instance.
  • the new LwM2M object needs to be supported by both the LwM2M client and the LwM2M server. This new LwM2M object may be defined shown in Table 1 below:
  • condition resource field of ID “1” specified in the new LwM2M object defines the condition that needs to be met by the LwM2M client 102 to execute an action specified in the actionOperation resource field of ID “2” when the LwM2M client 102 is disconnected from the LwM2M server 106.
  • the LwM2M client 102 may have different instances of this LwM2M object.
  • the instances can be executed according to the priority level indicated in the priority resource field of ID “11” specified in the LwM2M object.
  • Each of the different instances may define a different condition and an action to be performed by the LwM2M client 102 in case the condition is satisfied.
  • the condition resource field defines a specific condition for performing an offline operation in a string (i.e., a sequence of characters).
  • the condition may be as simple as a Boolean indicating whether the LwM2M client 102’s characteristic or a particular variable of another LwM2M object is equal to a certain value.
  • the condition may be defined using the conditional attributes that are defined in the LwM2M specification (such as, for example, “Greater Than,” “Less Than,” “Step,” etc.).
  • CoAP Constrained Application Protocol
  • data format languages such as JSON, or scripting languages such as JavaScript can also be used for defining the condition as long as the LwM2M client can interpret its meaning.
  • the actionOperation resource field specifies the operation the LwM2M client 102 will perform in case the condition is met when the LwM2M client 102 is disconnected from the LwM2M server 106.
  • the OperationTarget resource field of ID “3” specifies the target parameters of the actionOperation resource field.
  • the target parameter can be an LwM2M Object ID, Object Instance ID, Resource ID, and Resource Instance ID.
  • the parameter may be represented using the CoRE Link format (e.g., /3/0/1), as disclosed in Z. Shelby, “Constrained RESTful Environments (CoRE) Link Format”, RFC 6690, Internet Engineering Task Force (IETF), 2012, https://datatracker.ietf.org/doc/html/rfc6690.
  • An actionOperation resource with the value ‘write ’ will change the value of a Resource, the value of a Resource Instance, the values of an array of Resources Instances, or the values of multiple Resources from an Object Instance.
  • An actionOperation resource with value ‘execute ’ will perform some actions in an individual resource (e.g., identified in the OperationTarget resource).
  • An actionOperation resource with value "create ’ will create a new object instance within the LwM2M client.
  • evaluating whether one or more conditions for performing an offline operation is executed only once. But in other embodiments, such evaluation is executed several times. For example, the condition(s) for performing an offline operation may be evaluated each time a resource value change. In such embodiments, the number of evaluating the condition(s) for performing an offline operation may be limited. For example, the maxConditionlnterval resource field limits the maximum number of times the condition(s) for performing an offline-operation is evaluated.
  • the LwM2M object may also define the status of evaluating the condition(s). For example, if a condition has been evaluated several times, the status of the last evaluation is recorded in the resources identified as 9 and 10.
  • FIG. 5 shows a process 500 performed by a client according to some embodiments.
  • the process 500 may begin with step s502.
  • Step s502 comprises receiving a set of one or more operation instructions transmitted by a server.
  • Step s504 comprises storing the received set of one or more operation instructions.
  • Step s506 comprises after storing the set of one or more operation instructions, determining that the client is no longer connected to the server.
  • Step s508 comprises based at least on determining that the client is no longer connected to the server, performing a set of one or more operations based on the received set of one or more operation instructions while the client is not connected to the server.
  • the client is a Lightweight Machine-to-Machine, LwM2M, client, and the server is an LwM2M server.
  • the method further comprises the client receiving a start recording command transmitted by the server, and as a result of receiving the start recording command, the client switching to a recording mode during which the client is configured to receive the set of one or more operation instructions transmitted by the server sequentially and store the set of one or more operation instructions before executing any operation instruction included in the set.
  • the start recording command comprises operation condition information specifying a condition for triggering the client to perform the set of one or more operations when the client is not connected to the server.
  • the method further comprises the client receiving a stop recording command transmitted by the server; and as a result of receiving the stop recording command, the client switching from the recording mode to a non-recording mode during which the client is configured to not to store one or more operation instructions that are to be executed when the client is not connected to the server.
  • the set of one or more operation instructions comprises a first operation instruction, a second operation instruction, and a third operation instruction
  • the first operation instruction is configured to cause the client to perform a first operation
  • the second operation instruction is configured to cause the client to perform a second operation
  • the third operation instruction is configured to cause the client to perform a third operation
  • receiving the set of operation instructions comprises receiving the first operation instruction, the second operation instruction, and the third operation instruction sequentially.
  • the performing the set of one or more operations comprises performing the first, second, and third operations sequentially.
  • the method further comprises the client receiving another start recording command transmitted by the server; as a result of receiving said another start recording command, the client switching to the recording mode, the client receiving another set of one or more operation instructions during the recording mode; and during the recording mode, the client storing the received another set of one or more operation instructions.
  • said another start recording command comprises a different condition for triggering the client to perform said another set of one or more operations when the client is disconnected from the server.
  • the method further comprises determining whether any of (i) the condition for triggering the client to perform the set of one or more operations and (ii) said another condition for triggering the client to perform said another set of one or more operations is satisfied, wherein said one or more operations are performed further based on determining that the condition is satisfied and when the client is disconnected from the server.
  • the method further comprises the client comparing the condition with said another condition; and as a result of determining that the condition is same as said another condition, the client replacing the set of one or more operations with said another set of one or more operations such that the client is configured to perform said another set of one or more operations when the condition is satisfied and when the client is not connected to the server.
  • receiving the set of one or more operation instructions comprises receiving a file transmitted by the server and retrieving by the client the set of one or more operation instructions from the received file, and the set of one or more operation instructions is configured to trigger the client to perform the set of one or more operations sequentially after the client is disconnected from the server.
  • the file includes a first condition for triggering the client to perform the set of one or more operations after the client is disconnected from the server.
  • the method further comprises receiving another file transmitted by the server; and retrieving by the client a different set of one or more operation instructions from said another file, wherein said another file includes a second condition for triggering the client to perform another set of one or more operations based on the different set of one or more operation instructions after the client is disconnected from the server.
  • the method further comprises adding the received set of one or more operation instructions in one or more predefined resource fields of an LwM2M object that is stored in a storage medium included in the client; and retrieving the set of one or more operation instructions from the storage medium after the client is disconnected from the server.
  • the object includes a first resource field indicating a condition, wherein satisfying the condition triggers the client to perform the set of one or more operations when the client is not connected to the server, and a second resource field indicating the set of one or more operations.
  • FIG. 6 shows a process 600 performed by a server according to some embodiments.
  • the process 600 may begin with step s602.
  • Step s602 comprises detecting one or more conditions (e.g., the server receiving a command signal from another entity, detecting a powering up of an loT device and/or determining that the loT device is configured to perform a particular action).
  • Step s604 comprises upon detecting the condition, transmitting towards a client connected to the server a set of one or more operation instructions configured to cause the client to perform a set of one or more operations based on the set of one or more operation instructions after the client is disconnected from the server.
  • the client is a Lightweight Machine-to-Machine, LwM2M, client
  • the server is an LwM2M server.
  • the method comprises the server transmitting towards the client a start recording command; and after transmitting the start recording command, the server transmitting the set of one or more operation instructions separately, wherein the start recording command is configured to cause the client to switch to a recording mode during which the client is configured to receive the set of one or more operation instructions transmitted by the server sequentially and store the set of one or more operation instructions before executing any operation instruction included in the set.
  • the start recording command comprises operation condition information specifying a condition for triggering the client to perform the set of one or more operations when the client is not connected to the server.
  • the method further comprises the server transmitting towards the client a stop recording command, wherein the stop recording command is configured to cause the client to switch from the recording mode to a non-recording mode during which the client is configured to not to store one or more operation instructions that are to be executed when the client is not connected to the server.
  • the method further comprises the server transmitting towards the client another start recording command; and after transmitting said another start recording comment, the server transmitting towards the client another set of one or more operation instructions.
  • said another start recording command comprises a different condition for triggering the client to perform said another set of one or more operations when the client is disconnected from the server.
  • condition is same as said another condition, and the set of one or more operations is different from said another set of one or more operations.
  • transmitting the set of one or more operation instructions comprises the server transmitting towards the client a file containing the set of one or more operation instructions.
  • the file includes a first condition for triggering the client to perform the set of one or more operations after the client is disconnected from the server.
  • the method further comprises the server transmitting towards the client another file containing a different set of one or more operation instructions, wherein said another file includes a second condition for triggering the client to perform another set of one or more operations based on the different set of one or more operation instructions after the client is disconnected from the server.
  • FIG. 7 is a partial block diagram of the S/A 190 (i.e., an loT device or a LwM2M client), according to some embodiments.
  • the S/A 190 may comprise: processing circuitry (PC) 702, which may include one or more processors (P) 755 (e.g., one or more general purpose microprocessors and/or one or more other processors, such as an application specific integrated circuit (ASIC), field-programmable gate arrays (FPGAs), and the like); communication circuitry 748, which is coupled to an antenna arrangement 749 comprising one or more antennas and which comprises a transmitter (Tx) 745 and a receiver (Rx) 747 for enabling the S/A 190 to transmit data and receive data (e.g., wirelessly transmit/receive data); and a local storage unit (a.k.a., “data storage system”) 708, which may include one or more non-volatile storage devices and/or one or more volatile storage devices.
  • PC processing circuitry
  • P processor
  • CPP 741 includes a computer readable medium (CRM) 742 storing a computer program (CP) 743 comprising computer readable instructions (CRI) 744.
  • CRM 742 may be a non-transitory computer readable medium, such as, magnetic media (e.g., a hard disk), optical media, memory devices (e.g., random access memory, flash memory), and the like.
  • the CRI 744 of computer program 743 is configured such that when executed by PC 702, the CRI causes the S/A 190 to perform steps described herein (e.g., steps described herein with reference to the flow charts).
  • the S/A 190 may be configured to perform steps described herein without the need for code. That is, for example, PC 702 may consist merely of one or more ASICs. Hence, the features of the embodiments described herein may be implemented in hardware and/or software.
  • FIG. 8 is a block diagram of an apparatus 800, according to some embodiments, for implementing the loT server 106.
  • apparatus 800 may comprise: processing circuitry (PC) 802, which may include one or more processors (P) 855 (e.g., a general purpose microprocessor and/or one or more other processors, such as an application specific integrated circuit (ASIC), field-programmable gate arrays (FPGAs), and the like), which processors may be co-located in a single housing or in a single data center or may be geographically distributed (i.e., apparatus 800 may be a distributed computing apparatus); a network interface 848 comprising a transmitter (Tx) 845 and a receiver (Rx) 847 for enabling apparatus 800 to transmit data to and receive data from other nodes connected to a network 110 (e.g., an Internet Protocol (IP) network) to which network interface 848 is connected (directly or indirectly) (e.g., network interface 848 may be wirelessly connected to the network 110,
  • a network 110
  • CPP 841 may be provided.
  • CPP 841 includes a computer readable medium (CRM) 842 storing a computer program (CP) 843 comprising computer readable instructions (CRI) 844.
  • CRM 842 may be a non-transitory computer readable medium, such as, magnetic media (e.g., a hard disk), optical media, memory devices (e.g., random access memory, flash memory), and the like.
  • the CRI 844 of computer program 843 is configured such that when executed by PC 802, the CRI causes apparatus 800 to perform steps described herein (e.g., steps described herein with reference to the flow charts).
  • apparatus 800 may be configured to perform steps described herein without the need for code. That is, for example, PC 802 may consist merely of one or more ASICs. Hence, the features of the embodiments described herein may be implemented in hardware and/or software.

Abstract

A method performed by a client is provided. The method comprises receiving a set of one or more operation instructions transmitted by a server and storing the received set of one or more operation instructions. The method further comprises after storing the set of one or more operation instructions, determining that the client is no longer connected to the server; and based at least on determining that the client is no longer connected to the server, performing a set of one or more operations based on the received set of one or more operation instructions.

Description

MANAGEMENT OF OFFLINE INTERNET -OF- THINGS DEVICES
TECHNICAL FIELD
[0001] Disclosed are embodiments related to a method performed by a client, a method performed by a server, a client, a server, computer programs, and carriers, for managing offline Internet of Things (loT) devices.
BACKGROUND
[0002] Open Mobile Alliance (OMA) Lightweight Machine to Machine (LwM2M) protocol is a vendor-agnostic standard for managing constrained devices on a variety of networks. The LwM2M protocol is disclosed in “Lightweight Machine to Machine Technical Specification: Core”, Version 1.2, November 10, 2020, Open Mobile Alliance (OMA), OMA-TS- LightweightM2M_Core-Vl_2-20201110-A. The OMA LwM2M is necessary to realize the potential of loT devices. The LwM2M builds on the Constrained Application Protocol (CoAP) and it has been designed for remote management of loT devices. The Constrained Application Protocol (CoAP) is disclosed in Z. Shelby, K. Hartke, and C. Bormann, “The Constrained Application Protocol (CoAP)”, RFC 7252, Internet Engineering Task Force (IETF), 2014, https://datatracker.ietf.org/doc/html/rfc7252.
[0003] The LwM2M defines a data model where each piece of information made available by a LwM2M client is a resource. The data model is a tree with maximum depth of four, consisting of, objects, object instances, resources, and resource instances. Objects can have object instances; resources can have resource instances; and resources are located in object instances. For example, a resource informing about the temperature of a device, along with other resource(s) expanding that information (for example, the specification of the units used in the temperature sensor) can be located in a single object instance. The relationship of objects and resources is illustrated in FIG. 9. In FIG. 9, the LwM2M client has a group of resources, each of which belongs to an object. The figure also shows multiple instances of resource 3 of object 0 and multiple instances of object 1.
[0004] As shown in FIG. 10, the LwM2M supports four logical interfaces which help to standardize the way the actual device management is done. The four logical interfaces are as follows: [0005] Bootstrap Interface - The bootstrap interface is used to provision essential information into an LwM2M client to enable the LwM2M client to perform a register operation with one or more LwM2M servers.
[0006] Client Registration Interface - The client registration interface is used by an LwM2M client to register with one or more LwM2M servers, maintain each registration, and de-register from one or more LwM2M Server.
[0007] Device Management and Service Enablement Interface - The device management and service enablement interface is used by a LwM2M server to access object instances and resources available from a registered LwM2M Client. The interface provides this access using Create, Read, Read-Composite, Write, Write-Composite, Delete, Execute, Write-Attributes, or Discover operations.
[0008] Information Reporting Interface - The information reporting interface is used by an LwM2M server to observe any changes in a resource on a registered LwM2M client, receiving notifications when new values are available. This observation relationship is initiated by sending an Observe or Observe-Composite operation to the LwM2M client for an object, an object instance, or a resource. An observation ends when a Cancel Observation or Cancel Observation- Composite operation is performed.
[0009] With an enormous range of possible applications, the LwM2M finds its use in fields such as manufacturing, logistics, medicine, utilities, remote controlling, robotics, automotive industry, and security.
[0010] Managing loT devices over LwM2M requires the loT devices to be connected to a LwM2M server. But many times, loT devices can accidentally or intentionally go offline (i.e., disconnected from the LwM2M server). Accidental disconnections of the loT devices from the LwM2M server may occur due to network issues, and intentional disconnections of the loT devices from the LwM2M server are normally initiated by the loT devices in order to save battery power of the loT devices (which is an important aspect of the lifecycle of the loT devices). Thus, currently it is a common practice for constrained loT devices to be periodically disconnected from the server to save energy. [0011] After the loT devices are disconnected from the LwM2M server, the LwM2M server loses communication with the loT devices, and thus the loT devices cannot be managed remotely by the server until the devices are reconnected to the LwM2M server. However, there may be some scenarios where the managed loT devices get disconnected from the LwM2M server in dangerous situations (e.g., a robot in a factory performing a dangerous operation such as manipulating hazardous materials gets disconnected during the operation) or while performing a certain task requiring a continuous management (e.g., a drone flying in a city may need to continuously receive operation commands). Therefore, it is desirable to provide a way to manage the operations of the loT devices (i.e., LwM2M clients) even when the loT devices are not connected to the LwM2M server. The current LwM2M standard, however, does not provide a solution for managing loT devices that are offline (i.e., not connected to the LwM2M server).
SUMMARY
[0012] Accordingly, in one aspect, there is provided a method performed by a client. The method comprises receiving a set of one or more operation instructions transmitted by a server and storing the received set of one or more operation instructions. The method further comprises after storing the set of one or more operation instructions, determining that the client is no longer connected to the server and based at least on determining that the client is no longer connected to the server, performing a set of one or more operations based on the received set of one or more operation instructions while the client is not connected to the server.
[0013] In another aspect, there is provided a method performed by a server. The method comprises detecting one or more conditions (e.g., detecting a powering up of anloT device and/or determining that the loT device is of a particular type or is configured to perform a particular action). The method further comprises, upon detecting the condition, transmitting towards a client connected to the server a set of one or more operation instructions configured to cause the client to perform a set of one or more operations based on the set of one or more operation instructions after the client is disconnected from the server.
[0014] In another aspect, there is provided a computer program comprising instructions which when executed by processing circuitry cause the processing circuitry to perform any of the methods described above. [0015] In another aspect, there is provided a client. The client is configured to receive a set of one or more operation instructions transmitted by a server and store the received set of one or more operation instructions. The client is further configured to after storing the set of one or more operation instructions, determine that the client is no longer connected to the server and based at least on determining that the client is no longer connected to the server, perform a set of one or more operations based on the received set of one or more operation instructions while the client is not connected to the server.
[0016] In another aspect, there is provided a server. The server is configured to detect one or more conditions (e.g., detecting a powering up of an loT device and/or determining that the loT device is of a particular type or is configured to perform a particular action). The server is further configured to, upon detecting the condition, transmit towards a client connected to the server a set of one or more operation instructions configured to cause the client to perform a set of one or more operations based on the set of one or more operation instructions after the client is disconnected from the server.
[0017] The embodiments of this disclosure provide a method for managing loT devices when they are offline. More specifically, by providing in advance to the loT devices operations to perform in case the loT devices (i.e., LwM2M clients) are disconnected from the loT server (i.e., LwM2M server), the embodiments enable reliable management of offline loT devices and minimize the dangers caused by abrupted disconnections of the loT devices from the network.
BRIEF DESCRIPTION OF THE DRAWINGS
[0018] The accompanying drawings, which are incorporated herein and form part of the specification, illustrate various embodiments.
[0019] FIG. 1 shows an exemplary environment.
[0020] FIG. 2 shows a message flow diagram according to some embodiments.
[0021] FIG. 3 shows a message flow diagram according to some embodiments.
[0022] FIG. 4 shows a message flow diagram according to some embodiments.
[0023] FIG. 5 shows a process according to some embodiments.
[0024] FIG. 6 shows a process according to some embodiments. [0025] FIG. 7 shows an apparatus according to some embodiments.
[0026] FIG. 8 shows an apparatus according to some embodiments.
[0027] FIG. 9 shows a relationship between an LwM2M client, objects, object instances, resources, and resource instances.
[0028] FIG. 10 shows an overall logical architecture of LwM2M based system.
DETAILED DESCRIPTION
[0029] Embodiments of this disclosure provide a method for an loT server (e.g., a LwM2M server) to enable remote management of an loT client (e.g., a LwM2M client) that goes offline (either inadvertently or intentionally). More specifically, while the LwM2M client is connected to the LwM2M server, the LwM2M server may provide to the LwM2M client offline instructions on how to behave in case the LwM2M client goes offline. Additionally, the LwM2M server may provide to the LwM2M client conditions for executing such offline instructions. In case such conditions are provided to the LwM2M client, when the LwM2M client is disconnected from the LwM2M server, the LwM2M client determines whether the conditions are satisfied or not, and only upon determining that the condition are satisfied, the LwM2M client executes the offline instructions.
[0030] For simple explanation, embodiments of this disclosure are explained using an exemplary environment 100 shown in FIG. 1. However, the embodiments are not limited to the environment 100 and can be applied in various environments.
[0031] FIG. 1 shows the exemplary environment 100 according to some embodiments. The environment 100 includes a robot 102 comprising one or more sensors and/or one or more actuators (“S/A”) 190, and an loT server 106. The robot 102 is configured to move hazardous material storage containers 104 (e.g., radioactive waste storage containers) from an unsafe area 112 to a safe area 114. The operation of the robot 102 may be based on the readings from the sensors and/or the actuation of the actuators 190. For example, the S/A 190 may be a temperature sensor configured to measure the surrounding temperature of the robot 102, and the operation of the robot 102 may depend on the measured surrounding temperature. In another example, the S/A 190 may be an actuator (e.g., a motor) that is configured to cause the robot 102 to move from the unsafe area 112 to the safe area 114.
[0032] In the environment 100, the S/A 190 are loT devices. In this disclosure, an loT device is defined as any constrained computing device that is configured to (i) perform certain functions, (ii) be connected to a network, and (iii) transmit and/or receive data over the network. Examples of an loT device include but are not limited to radiation sensors, smart fire alarms, smart door locks, medical sensors, fitness trackers, smart security systems, and smart thermostats. An loT server is any server that is capable of transmitting data towards and/or receiving data from an loT device.
[0033] An loT device and an loT server may communicate with each other using LwM2M. In such case, the loT device is a LwM2M client and the loT server is a LwM2M server. Thus, in some embodiments, the S/A 190 of the robot 102 are LwM2M clients and the loT server 106 is a LwM2M server.
[0034] In some embodiments, there are provided one or more middle entities (e.g., a gateway, a router, a base station, etc.) between the robot 102 and the loT server 106. The robot 102 and the loT server 106 may transmit data to and/or receive data from each other via such middle entities. Such middle entities are not shown in FIG 1 for simplicity.
[0035] Referring back to FIG. 1, the S/A 190 of the robot 102 are configured to receive from the loT server 106 a command 150 transmitted by the loT server 106 and operate according to the received command 150. For example, the command 150 may cause the sensor 190 of the robot 102 to monitor the environment from hazards before the robot 102 picking up one of the containers 104 and move the container from the unsafe area 112 to the safe area 114. Alternatively or additionally, the command 150 may cause the actuator 190 to trigger the robot 102 to move from the unsafe area 112 to the safe area 114. In response to receiving the command 150, the robot 102 monitors the area with its sensors, may pick up the container 104 and move the container 104 from the area 112 to the area 114.
[0036] As explained above, the S/A 190 of the robot 102 are configured to operate generally based on commands received from the loT server 106. However, there may be some scenarios where the S/A 190 are disconnected from the loT server 106, thereby failing to receive any command from the loT server 106.
[0037] For example, in case the S/A 190 are connected to the loT server 106 via a cellular network (e.g., 3G, 4G, 5G, etc.), there may be a scenario where the cellular network to which the S/A 190 are connected is down (e.g., due to bad weather, network maintenance, etc.). Once the cellular network 110 is down, the S/A 190 can no longer receive command(s) from the loT server 106. Once the S/A 190 stop receiving command(s) from the loT server 106, the S/A 190 may stop operating.
[0038] FIG. 1 shows a scenario where the S/A 190 stop operating, thereby resulting in that the robot 102 stops operating in the middle area 116 as the robot 102 was carrying the container 104 from the unsafe area 112 to the safe area 114. In such scenario, another robot or a machine operating in the middle area 116 may collide with the robot 102. Such collision may cause the robot 102 to drop the container 104, thereby leaking hazardous material.
[0039] Accordingly, in the embodiments of this disclosure, operation instructions execution of which causes the S/A 190 of the robot 102 to perform one or more particular operations when the S/A 190 are disconnected from the loT server 106 are provided to the S/A 190 before the S/A 190 are disconnected from the loT server 106. In this disclosure, such operation instructions are referred as offline operation instructions.
[0040] The offline operation instructions that the S/A 190 received from the loT server 106 may be stored in a storage medium (e.g., a memory) provided in the robot 102. Then, if the S/A 190 become disconnected from the loT server 106, the stored offline operation instructions may be retrieved from its storage medium and the offline operation instructions may be executed, and thus a desired operation can still be performed even after the S/A 190 are disconnected from the loT server 106.
[0041] For example, in the scenario illustrated in FIG. 1, the offline operation instruction(s) may cause the S/A 190 continue its operation - monitoring the environmental condition for triggering the robot 102 to move the container or actuating the robot 102 to move the container 104 from the unsafe area 112 to the safe area 114 - until it drops off the container 104 at the safe area 114. [0042] The followings are different ways of the loT server 106 providing the offline operation instructions to the robot 102.
[0043] Generally, once an loT device receives an operation instruction from an loT server, the loT device executes the received operation instruction right away or temporarily stores the received operation instruction and executes the stored operation instruction some time before the loT device receives the next operation instruction. In this disclosure, this operation mode of an loT device is referred as the “non-recording mode.”
[0044] Contrary to the non-recording mode, in this embodiment, an loT device receives and stores offline operation instructions - i.e., the operation instructions for the loT device, which are to be executed when the loT device is disconnected from the loT server - and executes the stored offline operation instructions once the loT device is disconnected from the loT server. In this disclosure, this operation mode of an loT device receiving consecutively and storing sequential operation instructions before executing them is referred as the “recording mode.”
[0045] In order to configure the loT device to be in the recording mode (i.e., to switch the operation mode of the loT device from the non-recording mode to the recording mode), in some embodiments, the loT server may transmit towards the loT device a start recording command. Upon receiving the start recording command, the loT device is configured to switch from the nonrecording mode to the recording mode.
[0046] After transmitting the start recording command, the loT server may transmit towards the loT device one or more sequential offline operation instructions. As explained above, an offline operation instruction is an operation instruction to be executed by an loT device when the loT device is disconnected from the loT server.
[0047] After transmitting sequential offline operation instructions towards the loT device while the loT device operates in the recording mode, the loT server may transmit towards the loT device a stop recording command. Upon receiving the stop recording command, the loT device may be configured to switch back from the recording mode to the non-recording mode.
[0048] In a summary, the start recording command and the stop recording command are used by the loT server to delimit the operations to be performed by the loT device when the loT device is disconnected from the loT server. [0049] FIG. 2 is an exemplary message flow diagram 200 illustrating the recording mode according to some embodiments.
[0050] As shown in FIG. 2, the loT server 106 may transmit towards the sensor/actuator (“S/A”) 190 (i.e., an loT device) a start recording command 202. The start recording command 202 informs the S/A 190 that (i) messages transmitted by the loT server 106 towards the S/A 190 after the start recording command 202 should be stored by the S/A 190 and (ii) operation instructions included in the messages are to be executed by the S/A 190 when the S/A 190 is disconnected from the loT server 106. Additionally, the start recording command 202 may indicate that the operation instructions included in the received messages should be executed in the order of receiving the messages.
[0051] In some embodiments, the S/A 190 and the loT server 106 may be configured to operate based on LwM2M. In such embodiments, S/A 190 are LwM2M clients and the loT server 106 is an LwM2M server.
[0052] Upon receiving the start recording command 202, the S/A 190 is configured to switch from the non-recording mode to the recording mode. Additionally and optionally, the S/A 190 may transmit towards the loT server 106 an acknowledgement message 204 indicating the successful receipt of the start recording command 202.
[0053] After transmitting the start recording command 202 but before transmitting a stop recording command 218, the loT server 106 may transmit towards the S/A 190 a set of one or more offline operation instructions. In FIG. 2, the set of one or more offline operation instructions includes a first offline operation instruction 206, a second offline operation instruction 210, and a third offline operation instruction 214. As explained above, in some embodiments, the start recording command 202 may also indicate that the operation instructions should be executed in the order of receiving the messages. In such embodiments, the start recording command 202 may indicate to the S/A 190, the first, second, and third offline operation instructions 206, 210, and 214 must be performed sequentially in the order of the S/A 190 receiving the first, second, and third offline operation instructions 206, 210, and 214.
[0054] In some embodiments, in addition to the S/A 190 being disconnected from the loT server 106, there may be an additional condition (which may comprise a set of one or more sub- conditions) that needs to be satisfied in order for the S/A 190 to execute the first, second, and third offline operation instructions 206, 210, and 214. For example, the start recording command 202 may include a temperature threshold value indicating the minimum surrounding temperature of the robot 102 that needs to be reached in order for the robot 102 to perform the instructions 206, 210, and 214 and/or a humidity threshold value indicating the minimum surrounding humidity level of the robot 102 that needs to be reached in order for the robot 102 to perform the instructions 206, 210, and 214. In some embodiments, such additional condition (e.g., the temperature threshold value and/or the humidity threshold value) may be included in the payload of the message (i.e., the start recording command) 202.
[0055] Execution of the first offline operation instruction 206 causes the robot 102 to perform a particular offline operation. For example, the first offline operation instruction 206 may cause the S/A 190 to read the surrounding temperature of the robot 102. After receiving the first offline operation instruction 206, the S/A 190 may optionally transmit towards the loT server 106 an acknowledgement message 208 indicating the successful receipt of the first offline operation instruction 206.
[0056] After transmitting the first offline operation instruction 206, the loT server 106 may transmit towards the S/A 190 a second offline operation instruction 210. Like the first offline operation instruction 206, execution of the second offline operation instruction 210 causes the S/A 190 to perform a particular offline operation. For example, the second offline operation instruction 210 may cause the S/A 190 to store the measured surrounding temperature into a storage or check whether the robot 102 is currently located at either the unsafe area 112 or the safe area 114. After receiving the second offline operation instruction 210, the robot 102 may optionally transmit towards the loT server 106 an acknowledgement message 212 indicating the successful receipt of the second offline operation instruction 210.
[0057] After transmitting the second offline operation instruction 210, theloT server 106 may transmit towards the S/A 190 a third offline operation instruction 214. Like the first and second offline operation instructions 206 and 210, execution of the third offline operation instruction 214 causes the S/A 190 to execute a particular offline operation. For example, the third offline operation instruction 214 may cause the robot 102 to move itself to any of the unsafe area 112 or the safe area 114 that is closest to the robot 102’s current location in case the robot 102 is carrying the hazardous container and the robot 102 is currently not in the unsafe area 112 or the safe area 114. After receiving the third offline operation instruction 214, the robot 102 may optionally transmit towards the loT server 106 an acknowledgement message 216 indicating the successful receipt of the third offline operation instruction 214.
[0058] Even though FIG. 2 shows that the S/A 190 receives three offline operation instructions, the number of offline operation instructions the S/A 190 receives from the loT server is not limited to three but it can be any number greater than or equal to 1.
[0059] Once the loT server 106 finishes transmitting all the required offline operation instructions to the S/A 190, the loT server 106 may transmit towards the S/A 190 a stop recording command 218. The stop recording command 218 informs the S/A 190 that the transmission of the offline operation instructions is over. Upon receiving the stop recording command 218, the S/A 190 may switch back from the recording mode to the non-recording mode. Optionally, the S/A 190 may transmit towards the loT server 106 an acknowledgement message 220 indicating the successful receipt of the stop recording command 218.
[0060] In some embodiments, it may be desirable for the S/A 190 to perform a different set of offline operations based on a different condition. For example, it may be desirable for the S/A 190 to perform a first set of offline operations if a first condition is satisfied but to perform a second set of offline operations if a second condition is satisfied. In another example, it may be desirable for the S/A 190 to perform a first set of offline operations if a first condition is satisfied but to perform a second set of offline operations if the first condition and a second condition is satisfied. In such embodiments, the loT server 106 may transmit towards the S/A 190 multiple pairs of start recording commands and stop recording commands where each of the start recording commands includes a different condition for executing a different set of offline operation instructions.
[0061] FIG. 3 is an exemplary message flow diagram 300 showing multiple pairs of start recording commands and stop recording commands.
[0062] As shown in FIG. 3, the loT server 106 may transmit towards the S/A 190 a first start recording command 302 that includes a first condition that needs to be satisfied in order for the S/A 190 to execute a first set of offline operation instructions 304 when the S/A 190 is disconnected from the loT server 106. [0063] After transmitting the first set of offline operation instructions 304, the loT server 106 may transmit towards the S/A 190 a first stop recording command 306 indicating that the transmission of the first set of offline operation instructions 304 is completed.
[0064] After transmitting the first stop recording command 304, the loT server 106 may transmit towards the S/A 190 a second start recording command 308 that includes a second condition that needs to be satisfied in order for the S/A 190 to execute a second set of offline operation instructions 310 when the S/A 190 is disconnected from the loT server 106.
[0065] After transmitting the second set of offline operation instructions 310, the loT server 106 may transmit towards the S/A 190 a second stop recording command 312 indicating that the transmission of the second set of offline operation instructions 310 is completed.
[0066] After receiving the second stop recording command 312, in case the S/A 190 is disconnected from the loT server 106, the S/A 190 determines whether any one or more of the first and second conditions is satisfied.
[0067] In case the first condition is satisfied but the second condition is not satisfied, the S/A 190 executes only the first set of offline operation instructions 304 while in the case the second condition is satisfied but the first condition is not satisfied, the S/A 190 executes only the second set of offline operation instructions 310. In case both the first and second conditions are satisfied, the S/A 190 may execute both of the first and second set of offline operation instructions 304 and 310.
[0068] As explained above, in some embodiments, the loT server 106 provides sequential offline operation instructions to the S/A 190 by transmitting towards the S/A 190 multiple messages (i.e., a start recording command, one or more offline operation instructions, and a stop recording command) consecutively. However, in other embodiments, instead of sending the sequential offline operation instructions consecutively, the loT server 106 may provide the sequential offline operation instructions to the S/A 190 by sending a single offline instruction file.
[0069] FIG. 4 is an exemplary message flow diagram 400 corresponding to such embodiments. As shown in FIG. 4, the loT server 106 may transmit towards the S/A 190 an offline instruction file 402. The offline instruction file 402 contains a set of sequential offline operation instructions. After receiving the offline instruction file 402, the S/A 190 may optionally transmit towards the loT server 106 an acknowledgement message 404 indicating the successful receipt of the offline instruction file 402.
[0070] Upon receiving the offline instruction file 402, the S/A 190 may store the received offline instruction file 402 in a storage medium (e.g., a memory) included in the robot 102. Optionally, the S/A 190 may validate the received offline instruction file 402 and store the received offline instruction file 402 only upon a successful validation of the file. If the S/A 190 cannot validate the received offline instruction file 402, the S/A 190 may just delete the file.
[0071] After successfully validating the offline instruction file 402, the S/A 190 may optionally transmit towards the loT server 106 an acknowledgement message 406 indicating the successful validation of the offline instruction file 402.
[0072] After storing the offline instruction file 402, in case the S/A 190 is disconnected from the loT server 106, the S/A 190 may retrieve the offline instruction file 402 stored in the storage medium and sequentially execute offline operation instructions contained in the retrieved offline instruction file 402. In some embodiments, the offline instruction file 402 may additionally include a condition (that may comprise a set of one or more sub-conditions) for executing the sequential offline operation instructions.
[0073] The data included in the offline operation instruction file 402 may be as simple as below:
Figure imgf000014_0001
[0074] There may be a scenario where the S/A 190 may not be able to execute one or more of the offline operation instructions contained in the file 402 because there is an error in the offline operation instructions. To resolve this problem, in some embodiments, the file 402 may contain a specific operation instruction to be executed by the S/A 190 when there is an error in one or more of the operation instructions. In one example, the file 402 may contain an error label and the specific operation instruction may be defined in the error label. [0075] As explained above, LwM2M specifies four interfaces: bootstrap, client registration, device management, and reporting.
[0076] The device management interface is used by an LwM2M server to access object instances and resources available from a registered LwM2M client. This interface provides access to objects using the following operations: create, read, read-composite, write, write-composite, delete, execute, write-attributes, or discover.
[0077] However, conventional management and manipulation of the object instances and resources of the LwM2M client can only be done by the LwM2M server when the LwM2M server is connected to the LwM2M client.
[0078] Accordingly, some embodiments of this disclosure provide a new methodology for managing offline loT devices. In those embodiments, a new LwM2M object called offline management is created. This name of the new LwM2M object is merely an example and does not limit the embodiments of this disclosure in any way. Each instance of this new object defines a condition. Once the condition defined in each instance is met, the LwM2M client may act according to the actions defined inside the object instance. The new LwM2M object needs to be supported by both the LwM2M client and the LwM2M server. This new LwM2M object may be defined shown in Table 1 below:
Table 1 : LwM2M Object Offline Management
Figure imgf000015_0001
Figure imgf000016_0001
Figure imgf000017_0001
[0079] Like the name of this LwM2M object, the names of the resource fields, the IDs associated with the resource fields, and the ID associated with the LwM2M object are provided for simple explanation. They do not limit the embodiments of this disclosure in any way.
[0080] The condition resource field of ID “1” specified in the new LwM2M object defines the condition that needs to be met by the LwM2M client 102 to execute an action specified in the actionOperation resource field of ID “2” when the LwM2M client 102 is disconnected from the LwM2M server 106.
[0081] The LwM2M client 102 may have different instances of this LwM2M object. The instances can be executed according to the priority level indicated in the priority resource field of ID “11” specified in the LwM2M object. Each of the different instances may define a different condition and an action to be performed by the LwM2M client 102 in case the condition is satisfied.
[0082] The condition resource field defines a specific condition for performing an offline operation in a string (i.e., a sequence of characters). The condition may be as simple as a Boolean indicating whether the LwM2M client 102’s characteristic or a particular variable of another LwM2M object is equal to a certain value. Alternatively, the condition may be defined using the conditional attributes that are defined in the LwM2M specification (such as, for example, “Greater Than,” “Less Than,” “Step,” etc.). [0083] One example of the condition is: avgLatency=20 microSec or applicationProc=CoAP, which may indicate that the condition is that (i) the average latency is 20 microseconds and (2) the used application protocol is the Constrained Application Protocol (CoAP).
[0084] In order to enable more complex conditions, multiple validation rules can be defined in the string through logical AND or logical OR operations. The definition of the conditions inside the condition resource field are vendor specific.
[0085] Additionally, data format languages such as JSON, or scripting languages such as JavaScript can also be used for defining the condition as long as the LwM2M client can interpret its meaning.
[0086] The actionOperation resource field specifies the operation the LwM2M client 102 will perform in case the condition is met when the LwM2M client 102 is disconnected from the LwM2M server 106.
[0087] The OperationTarget resource field of ID “3” specifies the target parameters of the actionOperation resource field. The target parameter can be an LwM2M Object ID, Object Instance ID, Resource ID, and Resource Instance ID. The parameter may be represented using the CoRE Link format (e.g., /3/0/1), as disclosed in Z. Shelby, “Constrained RESTful Environments (CoRE) Link Format”, RFC 6690, Internet Engineering Task Force (IETF), 2012, https://datatracker.ietf.org/doc/html/rfc6690.
[0088] There can be multiple OperationTarget resources in the LwM2M object.
[0089] Some examples of the combination of the actionOperation resource (ID = 2) and the OperationTarget resource (ID = 3), Arguments resource (ID = 4) and New Value resource (ID = 5) are as follow:
[0090] An actionOperation resource with the value ‘write ’ will change the value of a Resource, the value of a Resource Instance, the values of an array of Resources Instances, or the values of multiple Resources from an Object Instance. The identifiers of those values will be defined in the OperationTarget resource (ID = 3) using the CoRE Link Format.
[0091] An actionOperation resource with value ‘execute ’ will perform some actions in an individual resource (e.g., identified in the OperationTarget resource). The execute operation may have some arguments described in the Arguments resource (ID = 4). Examples of valid arguments are:
5
7,0 = ‘https://omaspecworks.org’
2=’10.3’
[0092] An actionOperation resource with value "create ’ will create a new object instance within the LwM2M client. The ‘create ’ operation targets an object and all the resources of the object are populated with the information defined in the new value resource (ID = 5).
[0093] In some embodiments, evaluating whether one or more conditions for performing an offline operation is executed only once. But in other embodiments, such evaluation is executed several times. For example, the condition(s) for performing an offline operation may be evaluated each time a resource value change. In such embodiments, the number of evaluating the condition(s) for performing an offline operation may be limited. For example, the maxConditionlnterval resource field limits the maximum number of times the condition(s) for performing an offline-operation is evaluated.
[0094] The LwM2M object may also define the status of evaluating the condition(s). For example, if a condition has been evaluated several times, the status of the last evaluation is recorded in the resources identified as 9 and 10.
[0095] FIG. 5 shows a process 500 performed by a client according to some embodiments. The process 500 may begin with step s502. Step s502 comprises receiving a set of one or more operation instructions transmitted by a server. Step s504 comprises storing the received set of one or more operation instructions. Step s506 comprises after storing the set of one or more operation instructions, determining that the client is no longer connected to the server. Step s508 comprises based at least on determining that the client is no longer connected to the server, performing a set of one or more operations based on the received set of one or more operation instructions while the client is not connected to the server.
[0096] In some embodiments, the client is a Lightweight Machine-to-Machine, LwM2M, client, and the server is an LwM2M server. [0097] In some embodiments, the method further comprises the client receiving a start recording command transmitted by the server, and as a result of receiving the start recording command, the client switching to a recording mode during which the client is configured to receive the set of one or more operation instructions transmitted by the server sequentially and store the set of one or more operation instructions before executing any operation instruction included in the set.
[0098] In some embodiments, the start recording command comprises operation condition information specifying a condition for triggering the client to perform the set of one or more operations when the client is not connected to the server.
[0099] In some embodiments, the method further comprises the client receiving a stop recording command transmitted by the server; and as a result of receiving the stop recording command, the client switching from the recording mode to a non-recording mode during which the client is configured to not to store one or more operation instructions that are to be executed when the client is not connected to the server.
[0100] In some embodiments, the set of one or more operation instructions comprises a first operation instruction, a second operation instruction, and a third operation instruction, the first operation instruction is configured to cause the client to perform a first operation, the second operation instruction is configured to cause the client to perform a second operation, the third operation instruction is configured to cause the client to perform a third operation, and receiving the set of operation instructions comprises receiving the first operation instruction, the second operation instruction, and the third operation instruction sequentially.
[0101] In some embodiments, the performing the set of one or more operations comprises performing the first, second, and third operations sequentially.
[0102] In some embodiments, the method further comprises the client receiving another start recording command transmitted by the server; as a result of receiving said another start recording command, the client switching to the recording mode, the client receiving another set of one or more operation instructions during the recording mode; and during the recording mode, the client storing the received another set of one or more operation instructions. [0103] In some embodiments, said another start recording command comprises a different condition for triggering the client to perform said another set of one or more operations when the client is disconnected from the server.
[0104] In some embodiments, the method further comprises determining whether any of (i) the condition for triggering the client to perform the set of one or more operations and (ii) said another condition for triggering the client to perform said another set of one or more operations is satisfied, wherein said one or more operations are performed further based on determining that the condition is satisfied and when the client is disconnected from the server.
[0105] In some embodiments, the method further comprises the client comparing the condition with said another condition; and as a result of determining that the condition is same as said another condition, the client replacing the set of one or more operations with said another set of one or more operations such that the client is configured to perform said another set of one or more operations when the condition is satisfied and when the client is not connected to the server.
[0106] In some embodiments, receiving the set of one or more operation instructions comprises receiving a file transmitted by the server and retrieving by the client the set of one or more operation instructions from the received file, and the set of one or more operation instructions is configured to trigger the client to perform the set of one or more operations sequentially after the client is disconnected from the server.
[0107] In some embodiments, the file includes a first condition for triggering the client to perform the set of one or more operations after the client is disconnected from the server.
[0108] In some embodiments, the method further comprises receiving another file transmitted by the server; and retrieving by the client a different set of one or more operation instructions from said another file, wherein said another file includes a second condition for triggering the client to perform another set of one or more operations based on the different set of one or more operation instructions after the client is disconnected from the server.
[0109] In some embodiments, the method further comprises adding the received set of one or more operation instructions in one or more predefined resource fields of an LwM2M object that is stored in a storage medium included in the client; and retrieving the set of one or more operation instructions from the storage medium after the client is disconnected from the server. [0110] In some embodiments, the object includes a first resource field indicating a condition, wherein satisfying the condition triggers the client to perform the set of one or more operations when the client is not connected to the server, and a second resource field indicating the set of one or more operations.
[0111] FIG. 6 shows a process 600 performed by a server according to some embodiments. The process 600 may begin with step s602. Step s602 comprises detecting one or more conditions (e.g., the server receiving a command signal from another entity, detecting a powering up of an loT device and/or determining that the loT device is configured to perform a particular action). Step s604 comprises upon detecting the condition, transmitting towards a client connected to the server a set of one or more operation instructions configured to cause the client to perform a set of one or more operations based on the set of one or more operation instructions after the client is disconnected from the server.
[0112] In some embodiments, the client is a Lightweight Machine-to-Machine, LwM2M, client, and the server is an LwM2M server.
[0113] In some embodiments, the method comprises the server transmitting towards the client a start recording command; and after transmitting the start recording command, the server transmitting the set of one or more operation instructions separately, wherein the start recording command is configured to cause the client to switch to a recording mode during which the client is configured to receive the set of one or more operation instructions transmitted by the server sequentially and store the set of one or more operation instructions before executing any operation instruction included in the set.
[0114] In some embodiments, the start recording command comprises operation condition information specifying a condition for triggering the client to perform the set of one or more operations when the client is not connected to the server.
[0115] In some embodiments, the method further comprises the server transmitting towards the client a stop recording command, wherein the stop recording command is configured to cause the client to switch from the recording mode to a non-recording mode during which the client is configured to not to store one or more operation instructions that are to be executed when the client is not connected to the server. [0116] In some embodiments, the method further comprises the server transmitting towards the client another start recording command; and after transmitting said another start recording comment, the server transmitting towards the client another set of one or more operation instructions.
[0117] In some embodiments, said another start recording command comprises a different condition for triggering the client to perform said another set of one or more operations when the client is disconnected from the server.
[0118] In some embodiments, the condition is same as said another condition, and the set of one or more operations is different from said another set of one or more operations.
[0119] In some embodiments, transmitting the set of one or more operation instructions comprises the server transmitting towards the client a file containing the set of one or more operation instructions.
[0120] In some embodiments, the file includes a first condition for triggering the client to perform the set of one or more operations after the client is disconnected from the server.
[0121] In some embodiments, the method further comprises the server transmitting towards the client another file containing a different set of one or more operation instructions, wherein said another file includes a second condition for triggering the client to perform another set of one or more operations based on the different set of one or more operation instructions after the client is disconnected from the server.
[0122] FIG. 7 is a partial block diagram of the S/A 190 (i.e., an loT device or a LwM2M client), according to some embodiments. As shown in FIG. 7, the S/A 190 may comprise: processing circuitry (PC) 702, which may include one or more processors (P) 755 (e.g., one or more general purpose microprocessors and/or one or more other processors, such as an application specific integrated circuit (ASIC), field-programmable gate arrays (FPGAs), and the like); communication circuitry 748, which is coupled to an antenna arrangement 749 comprising one or more antennas and which comprises a transmitter (Tx) 745 and a receiver (Rx) 747 for enabling the S/A 190 to transmit data and receive data (e.g., wirelessly transmit/receive data); and a local storage unit (a.k.a., “data storage system”) 708, which may include one or more non-volatile storage devices and/or one or more volatile storage devices. In embodiments where PC 702 includes a programmable processor, a computer program product (CPP) 741 may be provided. CPP 741 includes a computer readable medium (CRM) 742 storing a computer program (CP) 743 comprising computer readable instructions (CRI) 744. CRM 742 may be a non-transitory computer readable medium, such as, magnetic media (e.g., a hard disk), optical media, memory devices (e.g., random access memory, flash memory), and the like. In some embodiments, the CRI 744 of computer program 743 is configured such that when executed by PC 702, the CRI causes the S/A 190 to perform steps described herein (e.g., steps described herein with reference to the flow charts). In other embodiments, the S/A 190 may be configured to perform steps described herein without the need for code. That is, for example, PC 702 may consist merely of one or more ASICs. Hence, the features of the embodiments described herein may be implemented in hardware and/or software.
[0123] FIG. 8 is a block diagram of an apparatus 800, according to some embodiments, for implementing the loT server 106. As shown in FIG. 8, apparatus 800 may comprise: processing circuitry (PC) 802, which may include one or more processors (P) 855 (e.g., a general purpose microprocessor and/or one or more other processors, such as an application specific integrated circuit (ASIC), field-programmable gate arrays (FPGAs), and the like), which processors may be co-located in a single housing or in a single data center or may be geographically distributed (i.e., apparatus 800 may be a distributed computing apparatus); a network interface 848 comprising a transmitter (Tx) 845 and a receiver (Rx) 847 for enabling apparatus 800 to transmit data to and receive data from other nodes connected to a network 110 (e.g., an Internet Protocol (IP) network) to which network interface 848 is connected (directly or indirectly) (e.g., network interface 848 may be wirelessly connected to the network 110, in which case network interface 848 is connected to an antenna arrangement); and a local storage unit (a.k.a., “data storage system”) 808, which may include one or more non-volatile storage devices and/or one or more volatile storage devices. In embodiments where PC 802 includes a programmable processor, a computer program product (CPP) 841 may be provided. CPP 841 includes a computer readable medium (CRM) 842 storing a computer program (CP) 843 comprising computer readable instructions (CRI) 844. CRM 842 may be a non-transitory computer readable medium, such as, magnetic media (e.g., a hard disk), optical media, memory devices (e.g., random access memory, flash memory), and the like. In some embodiments, the CRI 844 of computer program 843 is configured such that when executed by PC 802, the CRI causes apparatus 800 to perform steps described herein (e.g., steps described herein with reference to the flow charts). In other embodiments, apparatus 800 may be configured to perform steps described herein without the need for code. That is, for example, PC 802 may consist merely of one or more ASICs. Hence, the features of the embodiments described herein may be implemented in hardware and/or software.

Claims

CLAIMS:
1. A method (500) performed by a client (700), comprising: receiving (s502) a set of one or more operation instructions transmitted by a server; storing (s504) the received set of one or more operation instructions; after storing the set of one or more operation instructions, determining (s506) that the client is no longer connected to the server; and based at least on determining that the client is no longer connected to the server, performing (s508) a set of one or more operations based on the received set of one or more operation instructions while the client is not connected to the server.
2. The method of claim 1 , wherein the client is a Lightweight Machine-to-Machine, LwM2M, client, and the server is an LwM2M server.
3. The method of claim 1 or 2, further comprising: the client receiving a start recording command transmitted by the server; as a result of receiving the start recording command, the client switching to a recording mode during which the client is configured to receive the set of one or more operation instructions transmitted by the server sequentially and store the set of one or more operation instructions before executing any operation instruction included in the set.
4. The method of claim 3, wherein the start recording command comprises operation condition information specifying a condition for triggering the client to perform the set of one or more operations when the client is not connected to the server.
5. The method of any one of claims 3-4, further comprising: the client receiving a stop recording command transmitted by the server; and as a result of receiving the stop recording command, the client switching from the recording mode to a non-recording mode during which the client is configured to not to store one or more operation instructions that are to be executed when the client is not connected to the server.
25
6. The method of any one of claims 1-5, wherein the set of one or more operation instructions comprises a first operation instruction, a second operation instruction, and a third operation instruction, the first operation instruction is configured to cause the client to perform a first operation, the second operation instruction is configured to cause the client to perform a second operation, and the third operation instruction is configured to cause the client to perform a third operation, and receiving the set of operation instructions comprises receiving the first operation instruction, the second operation instruction, and the third operation instruction sequentially.
7. The method of claim 6, wherein the performing the set of one or more operations comprises performing the first, second, and third operations sequentially.
8. The method of any one of claims 4-7, further comprising: the client receiving another start recording command transmitted by the server; as a result of receiving said another start recording command, the client switching to the recording mode, the client receiving another set of one or more operation instructions during the recording mode; and during the recording mode, the client storing the received another set of one or more operation instructions.
9. The method of claim 8, wherein said another start recording command comprises a different condition for triggering the client to perform said another set of one or more operations when the client is disconnected from the server.
10. The method of claim 9, further comprising: determining whether any of (i) the condition for triggering the client to perform the set of one or more operations and (ii) said another condition for triggering the client to perform said another set of one or more operations is satisfied, wherein said one or more operations are performed further based on determining that the condition is satisfied and when the client is disconnected from the server.
11. The method of claim 9, further comprising: the client comparing the condition with said another condition; and as a result of determining that the condition is same as said another condition, the client replacing the set of one or more operations with said another set of one or more operations such that the client is configured to perform said another set of one or more operations when the condition is satisfied and when the client is not connected to the server.
12. The method of any one of claims 1-2, wherein receiving the set of one or more operation instructions comprises receiving a file transmitted by the server and retrieving by the client the set of one or more operation instructions from the received file, and the set of one or more operation instructions is configured to trigger the client to perform the set of one or more operations sequentially after the client is disconnected from the server.
13. The method of claim 12, wherein the file includes a first condition for triggering the client to perform the set of one or more operations after the client is disconnected from the server.
14. The method of claim 13, further comprising: receiving another file transmitted by the server; and retrieving by the client a different set of one or more operation instructions from said another file, wherein said another file includes a second condition for triggering the client to perform another set of one or more operations based on the different set of one or more operation instructions after the client is disconnected from the server.
15. The method of any one of claims 1-2, further comprising: adding the received set of one or more operation instructions in one or more predefined resource fields of an LwM2M object that is stored in a storage medium included in the client; and retrieving the set of one or more operation instructions from the storage medium after the client is disconnected from the server.
16. The method of claim 15, wherein the LwM2M object includes: a first resource field indicating a condition, wherein satisfying the condition triggers the client to perform the set of one or more operations when the client is not connected to the server, and a second resource field indicating the set of one or more operations.
17. A method (600) performed by a server (800), comprising: detecting (s602) one or more conditions; and upon detecting the condition, transmitting (s604) towards a client connected to the server a set of one or more operation instructions configured to cause the client to perform a set of one or more operations based on the set of one or more operation instructions after the client is disconnected from the server.
18. The method of claim 17, wherein the client is a Lightweight Machine-to-Machine, LwM2M, client, and the server is an LwM2M server.
19. The method of claim 17 or 18, comprising: the server transmitting towards the client a start recording command; and after transmitting the start recording command, the server transmitting the set of one or more operation instructions separately, wherein
28 the start recording command is configured to cause the client to switch to a recording mode during which the client is configured to receive the set of one or more operation instructions transmitted by the server sequentially and store the set of one or more operation instructions before executing any operation instruction included in the set.
20. The method of claim 19, wherein the start recording command comprises operation condition information specifying a condition for triggering the client to perform the set of one or more operations when the client is not connected to the server.
21. The method of claim 19 or 20, further comprising the server transmitting towards the client a stop recording command, wherein the stop recording command is configured to cause the client to switch from the recording mode to a non-recording mode during which the client is configured to not to store one or more operation instructions that are to be executed when the client is not connected to the server.
22. The method of any one of claims 19-21, further comprising: the server transmitting towards the client another start recording command; and after transmitting said another start recording comment, the server transmitting towards the client another set of one or more operation instructions.
23. The method of claim 22, wherein said another start recording command comprises a different condition for triggering the client to perform said another set of one or more operations when the client is disconnected from the server.
24. The method of claim 23, wherein the condition is same as said another condition, and the set of one or more operations is different from said another set of one or more operations.
29
25. The method of any one of claims 17-18, wherein transmitting the set of one or more operation instructions comprises the server transmitting towards the client a file containing the set of one or more operation instructions.
26. The method of claim 25, wherein the file includes a first condition for triggering the client to perform the set of one or more operations after the client is disconnected from the server.
27. The method of claim 25 or 26, further comprising: the server transmitting towards the client another file containing a different set of one or more operation instructions, wherein said another file includes a second condition for triggering the client to perform another set of one or more operations based on the different set of one or more operation instructions after the client is disconnected from the server.
28. A computer program (743 or 843) comprising instructions (744 or 844) which when executed by processing circuitry (702 or 802) cause the processing circuitry to perform the method of any one of claims 1 -27.
29. A carrier containing the computer program of claim 28, wherein the carrier is one of an electronic signal, an optical signal, a radio signal, and a computer readable storage medium.
30. A client (700), the client being configured to: receive (s502) a set of one or more operation instructions transmitted by a server; store (s504) the received set of one or more operation instructions; after storing the set of one or more operation instructions, determine (s506) that the client is no longer connected to the server; and based at least on determining that the client is no longer connected to the server, perform (s508) a set of one or more operations based on the received set of one or more operation instructions while the client is not connected to the server.
30
31. The client of claim 30, wherein the client is further configured to perform the method of any one of claims 2-16.
32. A server (800), the server being configured to: detect (s602) one or more conditions; and upon detecting the condition, transmit (s604) towards a client connected to the server a set of one or more operation instructions configured to cause the client to perform a set of one or more operations based on the set of one or more operation instructions after the client is disconnected from the server.
33. The server of claim 32, wherein the server is further configured to perform the method of any one of claims 18-27.
31
PCT/EP2021/087239 2021-12-22 2021-12-22 Management of offline internet-of-things devices WO2023117071A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/EP2021/087239 WO2023117071A1 (en) 2021-12-22 2021-12-22 Management of offline internet-of-things devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2021/087239 WO2023117071A1 (en) 2021-12-22 2021-12-22 Management of offline internet-of-things devices

Publications (1)

Publication Number Publication Date
WO2023117071A1 true WO2023117071A1 (en) 2023-06-29

Family

ID=79730635

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2021/087239 WO2023117071A1 (en) 2021-12-22 2021-12-22 Management of offline internet-of-things devices

Country Status (1)

Country Link
WO (1) WO2023117071A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2584754A1 (en) * 2011-10-17 2013-04-24 Alcatel Lucent Method of managing a network of clients
US20210297309A1 (en) * 2018-06-01 2021-09-23 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for performing communication in internet of things

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2584754A1 (en) * 2011-10-17 2013-04-24 Alcatel Lucent Method of managing a network of clients
US20210297309A1 (en) * 2018-06-01 2021-09-23 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for performing communication in internet of things

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Lightweight Machine to Machine Technical Specification: Transport Bindings", no. 1.1, 12 June 2018 (2018-06-12), pages 1 - 67, XP064192760, Retrieved from the Internet <URL:ftp/Public_documents/DM/LightweightM2M/Permanent_documents/> [retrieved on 20180619] *

Similar Documents

Publication Publication Date Title
US11805441B2 (en) Method and system for group communication, group server, and group member device
US20210227367A1 (en) Cross-resource subscription for m2m service layer
US11881992B2 (en) Intelligent plug-and-play point-to-multipoint internet of things (IoT) platform and method of managing and using the same
EP3479546B1 (en) Data management microservice in a microservice domain
EP3039888B1 (en) Internet of things event management systems and methods
CN101981900B (en) Providing remote field testing for mobile devices
US10021064B2 (en) Apparatus and method for translating industrial process control and automation system events into mobile notifications
EP3516849B1 (en) Group command management for device groups
EP2840813A1 (en) Service method and system using instance interface of virtualization object in internet of things environment
US20160028780A1 (en) Managed Device-to-Device Communication in Business Computing Systems
KR102036420B1 (en) Managing application relationships in machine-to-machine systems
CN102238026B (en) The management method of Internet of Things notification message and informing business capability device
AU2013379634A1 (en) Operation trigger method and device for machine-to-machine communications
US10078326B2 (en) Apparatus and method for event detection to support mobile notifications related to industrial process control and automation system
US10367692B2 (en) Rules implementation system
US11088989B2 (en) Semantic validation method and apparatus
US20180338019A1 (en) Message broker system
WO2023117071A1 (en) Management of offline internet-of-things devices
US11240351B2 (en) Communications with constrained devices
US10877820B1 (en) Application event delivery
GB2580973A (en) Message exchange between client and server
US11503134B2 (en) Electronic device subscription
EP3687116B1 (en) Monitoring facilities by sensors
Chakurkar et al. An Efficient Way to Manage Constrained Devices in Internet of Things
EP3750340B1 (en) Service layer methods for offloading iot application message generation and response handling

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21844676

Country of ref document: EP

Kind code of ref document: A1