WO2020217240A1 - Server based computing for the internet of things (iot) - Google Patents

Server based computing for the internet of things (iot) Download PDF

Info

Publication number
WO2020217240A1
WO2020217240A1 PCT/IL2020/050436 IL2020050436W WO2020217240A1 WO 2020217240 A1 WO2020217240 A1 WO 2020217240A1 IL 2020050436 W IL2020050436 W IL 2020050436W WO 2020217240 A1 WO2020217240 A1 WO 2020217240A1
Authority
WO
WIPO (PCT)
Prior art keywords
iot device
thin
virtual
notification
publish
Prior art date
Application number
PCT/IL2020/050436
Other languages
French (fr)
Inventor
Eliav GNESSIN
Original Assignee
Cloud Of Things Ltd
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 Cloud Of Things Ltd filed Critical Cloud Of Things Ltd
Publication of WO2020217240A1 publication Critical patent/WO2020217240A1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • 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/10Protocols in which an application is distributed across nodes in the network
    • 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
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network

Definitions

  • SBC server-based- computing
  • RDP Remote Desktop Protocol
  • Citrix Remote Desktops in which the client is a thin compute device that has limited data processing capabilities and the heavy operating system functionality runs on a server farm or in the Cloud.
  • IoT devices have yet to evolve in such a manner.
  • a system comprising a virtual Internet of Things (IoT) device including a user application capable of executing logic associated with a remote thin IoT device, wherein the remote thin IoT device does not include the user application and cannot execute the logic independently of the virtual IoT device.
  • IoT Internet of Things
  • the thin IoT device upon receipt of the change message, executes at least one pre-defined peripheral of a Central Processing Unit (CPU) of the thin IoT device.
  • CPU Central Processing Unit
  • the system further comprises a device manager, wherein the device manager is configured to: provide a record associated with the thin IoT device, the record including parameters identifying the thin IoT device; upon activation of the thin IoT device, generate the virtual IoT device associated with the thin IoT device, the virtual IoT device having one or more identity parameters including an address; create a publish/subscribe topic having a unique identifier in a publish/subscribe service, the publish/subscribe service being associated with the virtual IoT device and with the thin IoT device; and send the unique identifier to the thin IoT device and to the virtual IoT device, thereby causing the thin IoT device and the virtual IoT device to subscribe to the publish/subscribe topic.
  • the device manager is configured to: provide a record associated with the thin IoT device, the record including parameters identifying the thin IoT device; upon activation of the thin IoT device, generate the virtual IoT device associated with the thin IoT device, the virtual IoT device having
  • the thin IoT device further comprises a Central Processing Unit (CPU), the processing resource configured to: receive, from the virtual IoT device, a change message associated with the desired change in the operation of the thin IoT device, the change message generated by the virtual IoT device by executing a command received by the virtual IoT device from a user of the thin IoT device, the command associated with a desired change in operation of the thin IoT device; translate the change message to General Purpose Input Output (GPIO) actions; and execute the GPIO actions.
  • CPU Central Processing Unit
  • the change message is received by the thin IoT device via a publish/subscribe service.
  • the change message is sent to the thin IoT device via a publish/subscribe service.
  • the thin IoT device upon receipt of the change message, executes at least one pre-defined peripheral of a Central Processing Unit (CPU) of the thin IoT device.
  • CPU Central Processing Unit
  • the notification by the thin IoT device via a proxy device and wherein the proxy device sends the notification via the publish/subscribe service.
  • the change message is received by the thin IoT device via a publish/subscribe service.
  • Fig. 7 is a flowchart illustrating one example of a sequence of operations carried out for handling an input notification by a thin IoT device, in accordance with the presently disclosed subject matter.
  • Any reference in the specification to a method should be applied mutatis mutandis to a system capable of executing the method and should be applied mutatis mutandis to a non-transitory computer readable medium that stores instructions that once executed by a computer result in the execution of the method.
  • each thin IoT device 50 is associated with a respective virtual IoT device instance 36 in the cloud-based operating system 34.
  • the virtual IoT device instance 36 includes the user application 16 (instead of it being within the IoT device 10), and a publish/subscribe client 38.
  • the device management platform 30 includes a cloud device instance manager module 32, that is configured to generate a virtual IoT device instance 36 in the cloud-based operating system 34 upon registering a thin IoT device 50 using the device management module 28.
  • thin IoT devices 50 need to be registered as part of their activation.
  • a device management platform 30 (also referred to herein as“device manager”) is utilized.
  • the device management platform 30 is configured to execute a thin IoT device registration process 500.
  • the device management platform 30 is configured to provide a record associated with a thin IoT device 50, the record including parameters identifying the thin IoT device 50 (block 510).
  • This record is provided, for example, by a manufacturer of the thin IoT device, and the parameters are required for activating the thin IoT device (e.g. identification information, security tokens, information of publish/subscribe channels to register to, etc.).
  • the device management platform 30 sends the unique identifier to the thin IoT device 50 and to the virtual IoT device instance 36, thereby causing the thin IoT device 50 and the virtual IoT device instance 36 to subscribe to the publish/subscribe topic. In some cases, the device management platform 30 further sends to the thin IoT device and to the virtual IoT device a security token usable (and required) for subscribing to the publish/subscribe topic.

Abstract

A system comprising a virtual Internet of Things (IoT) device including a user application capable of executing logic associated with a remote thin IoT device, wherein the remote thin IoT device does not include the user application and cannot execute the logic independently of the virtual IoT device.

Description

SERVER BASED COMPUTING FOR THE INTERNET OF THINGS
(IOT)
TECHNICAL FIELD
The presently disclosed subject matter relates to a server-based computing model for the Internet of Things.
BACKGROUND
As the Internet of Things and accompanying technologies evolve, connectivity is becoming ubiquitous and device lifecycles require replacing device hardware to make sure these devices stay modern and to keep their TCO (Total Cost of Ownership) low. These two patterns in the personal computing world, led to the creation of server-based- computing (SBC) technologies such as RDP (Remote Desktop Protocol) and Citrix Remote Desktops, in which the client is a thin compute device that has limited data processing capabilities and the heavy operating system functionality runs on a server farm or in the Cloud. However, IoT devices have yet to evolve in such a manner.
There is thus a need in the art for a new server-based computing model for the Internet of Things. GENERAL DESCRIPTION
In accordance with a first aspect of the presently disclosed subject matter, there is provided a system comprising a virtual Internet of Things (IoT) device including a user application capable of executing logic associated with a remote thin IoT device, wherein the remote thin IoT device does not include the user application and cannot execute the logic independently of the virtual IoT device.
In some cases, the system further comprises a processing resource, external to the thin IoT device, the processing resource configured to: receive a command from a user of the thin IoT device, the command associated with a desired change in operation of the thin IoT device; execute the command on the virtual IoT device, remotely from the thin IoT device, utilizing the user application, thereby generating a change message associated with the desired change in the operation of the thin IoT device; and send the change message to the thin IoT device, thereby causing the thin IoT device to implement the desired change in the operation of the thin IoT device.
In some cases, a logic associated with executing the command also depends on a current state of the thin IoT device, prior to executing the command.
In some cases, the change message is sent to the thin IoT device via a publish/subscribe service.
In some cases, the change message is sent to the thin IoT device via a proxy device, and wherein the change message is sent to the proxy device via the publish/subscribe service.
In some cases, the publish/subscribe service is an Message Queuing Telemetry Transport (MQTT) based service.
In some cases, the thin IoT device, upon receipt of the change message, executes at least one pre-defined peripheral of a Central Processing Unit (CPU) of the thin IoT device.
In some cases, the thin IoT device, upon receipt of the change message, translates the change message to General Purpose Input Output (GPIO) actions, and executes the GPIO actions.
In some cases, the system further comprises a processing resource, external to the thin IoT device, the processing resource configured to: receive a notification from the thin IoT device, the notification being indicative of input obtained by the thin IoT device; analyze the notification on the virtual IoT device, remotely from the thin IoT device, utilizing the user application, to determine a notification response, if any; and perform the notification response, if any.
In some cases, the notification response includes one or more of the following: (a) sending a command to the thin IoT device, (b) sending a message to a user of the thin IoT device, or (c) sending a message to another application.
In some cases, the notification is sent by the thin IoT device via a publish/subscribe service.
In some cases, the notification by the thin IoT device via a proxy device, and wherein the proxy device sends the notification via the publish/subscribe service.
In some cases, the publish/subscribe service is an Message Queuing Telemetry Transport (MQTT) based service. In some cases, the notification is a translation of General-Purpose Input Output (GPIO) actions made by the thin IoT device.
In some cases, the system further comprises a device manager, wherein the device manager is configured to: provide a record associated with the thin IoT device, the record including parameters identifying the thin IoT device; upon activation of the thin IoT device, generate the virtual IoT device associated with the thin IoT device, the virtual IoT device having one or more identity parameters including an address; create a publish/subscribe topic having a unique identifier in a publish/subscribe service, the publish/subscribe service being associated with the virtual IoT device and with the thin IoT device; and send the unique identifier to the thin IoT device and to the virtual IoT device, thereby causing the thin IoT device and the virtual IoT device to subscribe to the publish/subscribe topic.
In some cases, the device manager further sends to the thin IoT device and to the virtual IoT device a security token usable for subscribing to the publish/subscribe topic.
In some cases, the thin IoT device further comprises a Central Processing Unit (CPU), the processing resource configured to: receive, from the virtual IoT device, a change message associated with the desired change in the operation of the thin IoT device, the change message generated by the virtual IoT device by executing a command received by the virtual IoT device from a user of the thin IoT device, the command associated with a desired change in operation of the thin IoT device; translate the change message to General Purpose Input Output (GPIO) actions; and execute the GPIO actions.
In some cases, a logic associated with the virtual IoT device executing the command also depends on a current state of the thin IoT device, prior to executing the command.
In some cases, the change message is received by the thin IoT device via a publish/subscribe service.
In some cases, the thin IoT device further comprises a Central Processing Unit (CPU), the CPU configured to: send a notification to the virtual IoT device, the notification being indicative of input obtained by the thin IoT device, thereby causing the virtual IoT device to determine a notification response, if any, utilizing the user application. In some cases, the notification response includes one or more of the following: (a) sending a command to the thin IoT device, (b) sending a message to a user of the thin IoT device, or (c) sending a message to another application.
In some cases, the notification is sent by the thin IoT device via a publish/subscribe service.
In some cases, the notification is a translation of General-Purpose Input Output (GPIO) actions made by the thin IoT device.
In accordance with a second aspect of the presently disclosed subject matter, there is provided a method of operating a virtual Internet of Things (IoT) device including a user application capable of executing logic associated with a remote thin IoT device, wherein the remote thin IoT device does not include the user application and cannot execute the logic independently of the virtual IoT device, the method comprising: receiving, by a first processing resource executing the virtual IoT device and external to the thin IoT device, a command from a user of the thin IoT device, the command associated with a desired change in operation of the thin IoT device; executing the command by the first processing resource, remotely from the thin IoT device, utilizing the user application, thereby generating a change message associated with the desired change in the operation of the thin IoT device; and sending, by the first processing resource, the change message to the thin IoT device, thereby causing the thin IoT device to implement the desired change in the operation of the thin IoT device.
In some cases, a logic associated with executing the command also depends on a current state of the thin IoT device, prior to executing the command.
In some cases, the change message is sent to the thin IoT device via a publish/subscribe service.
In some cases, the change message is sent to the thin IoT device via a proxy device, and wherein the change message is sent to the proxy device via the publish/subscribe service.
In some cases, the thin IoT device, upon receipt of the change message, executes at least one pre-defined peripheral of a Central Processing Unit (CPU) of the thin IoT device.
In some cases, the publish/subscribe service is an Message Queuing Telemetry Transport (MQTT) based service. In some cases, the thin IoT device, upon receipt of the change message, translates the change message to General Purpose Input Output (GPIO) actions, and executes the GPIO actions.
In some cases, the method further comprises: receiving, by the first processing resource, a notification from the thin IoT device, the notification being indicative of input obtained by the thin IoT device; analyzing the notification, by the first processing resource and remotely from the thin IoT device, utilizing the user application, to determine a notification response, if any; and performing, by the first processing resource, the notification response, if any.
In some cases, the notification response includes one or more of the following: (a) sending a command to the thin IoT device, (b) sending a message to a user of the thin IoT device, or (c) sending a message to another application.
In some cases, the notification is sent by the thin IoT device via a publish/subscribe service.
In some cases, the notification by the thin IoT device via a proxy device, and wherein the proxy device sends the notification via the publish/subscribe service.
In some cases, the publish/subscribe service is an Message Queuing Telemetry Transport (MQTT) based service.
In some cases, the notification is a translation of General-Purpose Input Output (GPIO) actions made by the thin IoT device.
In some cases, the method further comprises operating a device manager having a second processing resource, and the method further comprises: providing, by the second processing resource, a record associated with the thin IoT device, the record including parameters identifying the thin IoT device; upon activation of the thin IoT device, generating, by the second processing resource, the virtual IoT device associated with the thin IoT device, the virtual IoT device having one or more identity parameters including an address; creating, by the second processing resource, a publish/subscribe topic having a unique identifier in a publish/subscribe service, the publish/subscribe service being associated with the virtual IoT device and with the thin IoT device; and sending, by the second processing resource, the unique identifier to the thin IoT device and to the virtual IoT device, thereby causing the thin IoT device and the virtual IoT device to subscribe to the publish/subscribe topic. In some cases, the method further comprises sending, by the second processing resource, to the thin IoT device and to the virtual IoT device, a security token usable for subscribing to the publish/subscribe topic.
In some cases, the thin IoT device further comprises a Central Processing Unit (CPU), and the method further comprises: receiving, by the CPU, from the virtual IoT device, a change message associated with the desired change in the operation of the thin IoT device, the change message generated by the virtual IoT device by executing a command received by the virtual IoT device from a user of the thin IoT device, the command associated with a desired change in operation of the thin IoT device; translating, by the third processing resource, the change message to General Purpose Input Output (GPIO) actions; and executing, by the third processing resource, the GPIO actions.
In some cases, a logic associated with the virtual IoT device executing the command also depends on a current state of the thin IoT device, prior to executing the command.
In some cases, the change message is received by the thin IoT device via a publish/subscribe service.
In some cases, the thin IoT device further comprises a Central Processing Unit (CPU), and wherein the method further comprises: sending, by the CPU, a notification to the virtual IoT device, the notification being indicative of input obtained by the thin IoT device, thereby causing the virtual IoT device to determine a notification response, if any, utilizing the user application.
In some cases, the notification response includes one or more of the following: (a) sending a command to the thin IoT device, (b) sending a message to a user of the thin IoT device, or (c) sending a message to another application.
In some cases, the notification is sent by the thin IoT device via a publish/subscribe service.
In some cases, the notification is a translation of General-Purpose Input Output (GPIO) actions made by the thin IoT device.
In accordance with a third aspect of the presently disclosed subject matter, there is provided a non-transitory computer readable storage medium having computer readable program code embodied therewith, the computer readable program code, executable by at least one processor of a gateway to perform a method of operating a virtual Internet of Things (IoT) device including a user application capable of executing logic associated with a remote thin IoT device, wherein the remote thin IoT device does not include the user application and cannot execute the logic independently of the virtual IoT device, the method comprising: receiving, by a first processing resource executing the virtual IoT device and external to the thin IoT device, a command from a user of the thin IoT device, the command associated with a desired change in operation of the thin IoT device; executing the command by the first processing resource, remotely from the thin IoT device, utilizing the user application, thereby generating a change message associated with the desired change in the operation of the thin IoT device; and sending, by the first processing resource, the change message to the thin IoT device, thereby causing the thin IoT device to implement the desired change in the operation of the thin IoT device.
BRIEF DESCRIPTION OF THE DRAWINGS
In order to understand the presently disclosed subject matter and to see how it may be carried out in practice, the subject matter will now be described, by way of non- limiting examples only, with reference to the accompanying drawings, in which:
Fig. 1 is a block diagram schematically illustrating an Internet of Things architecture, in accordance with the prior art;
Fig. 2 is a block diagram schematically illustrating an Internet of Things architecture with virtualization, in accordance with the presently disclosed subject matter;
Fig. 3 is a flowchart illustrating one example of a sequence of operations carried out for executing a command by a virtual IoT device instance, in accordance with the presently disclosed subject matter;
Fig. 4 is a flowchart illustrating one example of a sequence of operations carried out for a virtual IoT device instance responding to a notification from a thin IoT device, in accordance with the presently disclosed subject matter;
Fig. 5 is a flowchart illustrating one example of a sequence of operations carried out for registering a new thin IoT device, in accordance with the presently disclosed subject matter; Fig. 6 is a flowchart illustrating one example of a sequence of operations carried out for handling a change message by a thin IoT device, in accordance with the presently disclosed subject matter; and
Fig. 7 is a flowchart illustrating one example of a sequence of operations carried out for handling an input notification by a thin IoT device, in accordance with the presently disclosed subject matter.
DETAILED DESCRIPTION
In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the presently disclosed subject matter. However, it will be understood by those skilled in the art that the presently disclosed subject matter may be practiced without these specific details. In other instances, well- known methods, procedures, and components have not been described in detail so as not to obscure the presently disclosed subject matter.
In the drawings and descriptions set forth, identical reference numerals indicate those components that are common to different embodiments or configurations.
Unless specifically stated otherwise, as apparent from the following discussions, it is appreciated that throughout the specification discussions utilizing terms such as "receiving", "executing", "sending", "analyzing", "performing", “providing”, “generating”,“creating”,“translating” or the like, include action and/or processes of a computer that manipulate and/or transform data into other data, said data represented as physical quantities, e.g. such as electronic quantities, and/or said data representing the physical objects. The terms “computer”, “processor”, “processing resource” and “controller” should be expansively construed to cover any kind of electronic device with data processing capabilities, including, by way of non-limiting example, a personal desktop/laptop computer, a server, a computing system, a communication device, a smartphone, a tablet computer, a smart television, a processor (e.g. digital signal processor (DSP), a microcontroller, a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), etc.), a group of multiple physical machines sharing performance of various tasks, virtual servers co-residing on a single physical machine, any other electronic computing device, and/or any combination thereof. The operations in accordance with the teachings herein may be performed by a computer specially constructed for the desired purposes or by a general-purpose computer specially configured for the desired purpose by a computer program stored in a non-transitory computer readable storage medium. The term "non-transitory" is used herein to exclude transitory, propagating signals, but to otherwise include any volatile or non-volatile computer memory technology suitable to the application.
As used herein, the phrase "for example," "such as", "for instance" and variants thereof describe non-limiting embodiments of the presently disclosed subject matter. Reference in the specification to "one case", "some cases", "other cases" or variants thereof means that a particular feature, structure or characteristic described in connection with the embodiment(s) is included in at least one embodiment of the presently disclosed subject matter. Thus, the appearance of the phrase "one case", "some cases", "other cases" or variants thereof does not necessarily refer to the same embodiment(s).
It is appreciated that, unless specifically stated otherwise, certain features of the presently disclosed subject matter, which are, for clarity, described in the context of separate embodiments, may also be provided in combination in a single embodiment. Conversely, various features of the presently disclosed subject matter, which are, for brevity, described in the context of a single embodiment, may also be provided separately or in any suitable sub-combination.
In embodiments of the presently disclosed subject matter, fewer, more and/or different stages than those shown in Figs. 3-7 may be executed. In embodiments of the presently disclosed subject matter one or more groups of stages illustrated in Figs. 3-7 may be executed simultaneously. Figs. 1 and 2 illustrate a general schematic of the system architecture in accordance with an embodiment of the presently disclosed subject matter. Some of the module in Figs. 1 and 2 can be made up of any combination of software, hardware and/or firmware that performs the functions as defined and explained herein. Some modules in Figs. 1 and 2 may be centralized in one location or dispersed over more than one location. In other embodiments of the presently disclosed subject matter, the system may comprise fewer, more, and/or different modules than those shown in Figs. 1 and 2.
Any reference in the specification to a method should be applied mutatis mutandis to a system capable of executing the method and should be applied mutatis mutandis to a non-transitory computer readable medium that stores instructions that once executed by a computer result in the execution of the method.
Any reference in the specification to a system should be applied mutatis mutandis to a method that may be executed by the system and should be applied mutatis mutandis to a non-transitory computer readable medium that stores instructions that may be executed by the system.
Any reference in the specification to a non-transitory computer readable medium should be applied mutatis mutandis to a system capable of executing the instructions stored in the non-transitory computer readable medium and should be applied mutatis mutandis to method that may be executed by a computer that reads the instructions stored in the non-transitory computer readable medium.
Bearing this in mind, attention is drawn to Fig. 1, a block diagram schematically illustrating an Internet of Things architecture, in accordance with the prior art.
An Internet of Things (IoT) device 10 is a connected device such as a home appliance, a vehicle, an electronic sign, etc. which is designed to connect to a communication network and to a publish/subscribe service.
IoT devices usually have a common architecture, according to which an IoT device 10 includes a communication layer 12, a publish-subscribe client 14, a user application 16, a General-Purpose Input-Output (GPIO) abstraction layer 18, and a hardware access layer 20. The communication layer 12 includes drivers and protocols allowing to connect the IoT device 10 to a wired or wireless network via protocols such as Bluetooth, Z-Wave, Thread, CAN bus, MQTT, CoAP, etc., and by that to enable the IoT device to communicate with external entities. The publish-subscribe client 14 enables the IoT device 10 to register to a publish/subscribe service (e.g. an Message Queuing Telemetry Transport (MQTT) based publish/subscribe service) for publishing messages on one or more channels to which the IoT device 10 is registered and/or for receiving messages published on the one or more channels to which the IoT device 10 is registered. Accordingly, the communication layer 12, and the publish-subscribe client 14 enable the IoT device 10 to connect to a publish/subscribe service 24, over the Internet 26 (or over any other network which enables access to a publish-subscribe service 24).
The user application 16 is computerized code executable by the IoT device 10 designed to provide a logic implementing a desired functionality of the IoT device 10. The GPIO abstraction layer 18 and the hardware access layer 20 are software layers for controlling GPIOs 22 (being uncommitted digital signal pins on an integrated circuit or electronic circuit board of the IoT device 10 whose behavior, including whether it acts as input or output, is controllable by the user application at run time) of the IoT device 10. The hardware access layer 20 is responsible for the translation of commands to registers and hardware implementation, while the GPIO abstraction layer 18 provides the ability to use simple commands to run complex hardware access layer 20 functions.
IoT device 10 is also capable of connecting to a device management platform 30, which is responsible for management of a plurality of IoT devices, including registering the devices (e.g. as part of activation thereof), providing the IoT device 10 with information required for its operation (e.g. information of publish/subscribe channels to which the IoT device 10 is required to register, etc.). For this purpose, the device management platform may have a device management module 28, configured to implement the logic required for its operation.
It is important to note, that the IoT device 10 according to the prior art includes the user application 16 internally. Accordingly, the IoT device 10 is responsible for executing the user application 16 using its own local resources (processing resources, storage, etc.). Due to the fact that in many cases the IoT devices 10 have limited resources, the user application 16 is limited by such limited resources of the IoT devices 10.
Turning to Fig. 2, there is shown a block diagram schematically illustrating an Internet of Things architecture with virtualization, in accordance with the presently disclosed subject matter.
According to the presently disclosed subject matter, the IoT device 10 is transformed to a thin IoT device 50. This is achieved by removing the user application 16 therefrom, and moving it to a cloud-based operating system 14 instead. By that, the user application 16 is no longer limited by the resources of the thin IoT device 50, as it can utilize resources provided thereto by the cloud-based operating system 34.
In order to enable moving the user application 16 to the cloud-based operating system 34, each thin IoT device 50 is associated with a respective virtual IoT device instance 36 in the cloud-based operating system 34. The virtual IoT device instance 36 includes the user application 16 (instead of it being within the IoT device 10), and a publish/subscribe client 38. The device management platform 30 includes a cloud device instance manager module 32, that is configured to generate a virtual IoT device instance 36 in the cloud-based operating system 34 upon registering a thin IoT device 50 using the device management module 28. Upon registering the new thin IoT device 50, the device management platform 30 registers both the virtual IoT device and the thin IoT device 50 to relevant publish/subscribe channels provided by a publish/subscribe service 24 to enable communication between the virtual IoT device and the thin IoT device 50.
This new architecture enables generating a system comprising a virtual IoT device (or a virtual IoT device instance 50 of such virtual IoT device), which includes a user application 16 capable of executing logic associated with a remote thin IoT device 50, while the remote thin IoT device 50 does not include the user application 16 and cannot execute the logic independently of the virtual IoT device (or the virtual IoT device instance 50 of such virtual IoT device).
Having described the new architecture, attention is drawn to Fig. 3, a flowchart illustrating one example of a sequence of operations carried out for executing a command by a virtual IoT device instance, in accordance with the presently disclosed subject matter.
According to some examples of the presently disclosed subject matter, the virtual IoT device instance 36 that is executing on the cloud-based operating system 34 is configured to execute a command execution process 300. For this purpose, the virtual IoT device instance 36 receives a command from a user (whether human, or a computerized user, including, for example, an application that uses the thin IoT device 50) of the thin IoT device 50 associated therewith, the command associated with a desired change in operation of the thin IoT device 50 (block 310). The command is designed to be executed by the user application 16. In accordance with the prior art, it would have been executed by the user application 16 that is installed on the IoT device 10. However, according to the presently disclosed subject matter, the command is executed by the user application 16 that is installed on the virtual IoT device instance 36 (operating on the cloud-based operating system 34) associated with the thin IoT device 50. The command can be received from the user of the thin IoT device 50 directly, or via the thin IoT device that can send it to the virtual IoT device instance 36 via the publish/subscribe service. The virtual IoT device instance 36 is configured to execute the command, remotely from the thin IoT device 50, utilizing the user application 16, thereby generating a change message associated with the desired change in the operation of the thin IoT device (block 320). As indicated herein, the command is associated with a desired change in the operation of the thin IoT device 50, and accordingly, after the command is executed by the user application 16, the required change is determined (by the user application 16), and a change message designating the thin IoT device 50 is generated, while noting that the change message does not require execution by any user application on the thin IoT device 50, as it is already a result of the execution of the command on the user application 16 on the virtual IoT device instance 36.
It is to be noted that in some cases, the logic that is associated with executing the command received at block 310 also depends on a current state of the thin IoT device 50, prior to executing the command. Accordingly, the virtual IoT device instance 36 maintains information that enable it to determine the current state of the thin IoT device 50 (which it can determine due to the fact that it executes the user application 16 in order to determine any required state change).
The virtual IoT device instance 36 sends the change message determined at block 320 to the thin IoT device 50, thereby causing the thin IoT device 50 to implement the desired change in the operation of the thin IoT device 50 (block 330). The change message can be sent to the thin IoT device 50 via the publish/subscribe service (that, as indicated herein, can be an Message Queuing Telemetry Transport (MQTT) based service), on a channel that both the virtual IoT device instance 36 and the thin IoT device 50 are registered to. It is to be noted that in some cases, the change message can be sent to the thin IoT device 50 via a proxy device. In such cases, the change message can be sent to the proxy device via the publish/subscribe service.
The thin IoT device 50, upon receipt of the change message, translates the change message to General Purpose Input Output (GPIO) actions (e.g. using the GPIO abstraction layer 18), and executes the GPIO actions (via the hardware access layer 20). Alternatively, the thin IoT device 50, upon receipt of the change message, can execute at least one pre-defined peripheral of a Central Processing Unit (CPU) of the thin IoT device 50. The CPU peripherals can include functions such as: configuring clock sources, performing I2C based queries and write operations, Pulse Width Modulation (PWM), Serial Peripheral Interface (SPI), Local Universal Asynchronous Receive/Transmit (UART), Watchdog Timer (WDT), Power management, Logging, Digital to Analog Conversion (DAC), Analog to Digital Conversion (ADC), etc.
It is to be noted that, with reference to Fig. 3, some of the blocks can be integrated into a consolidated block or can be broken down to a few blocks and/or other blocks may be added. It should be also noted that whilst the flow diagram is described also with reference to the system elements that realizes them, this is by no means binding, and the blocks can be performed by elements other than those described herein.
Turning to Fig. 4, there is shown a flowchart illustrating one example of a sequence of operations carried out for a virtual IoT device instance responding to a notification from a thin IoT device, in accordance with the presently disclosed subject matter.
According to some examples of the presently disclosed subject matter, the virtual IoT device instance 36 that is executing on the cloud-based operating system 34 is configured to execute a notification response process 400. For this purpose, the virtual IoT device instance 36 can be configured to receive a notification from the thin IoT device 50 associated therewith, the notification being indicative of input obtained by the thin IoT device 50 (e.g. via its GPIO’s 22) (block 410). The input can be, for example, a measurement acquired by a sensor of the thin IoT device 50. The notification received at block 410 can be sent by the thin IoT device 50 via a publish/subscribe service, over a channel that both the virtual IoT device instance 36 and the thin IoT device 50 are registered to. It is to be noted that in some cases, the notification can be sent by the thin IoT device 50 via a proxy device. In such cases, the notification can be sent to the proxy device via the publish/subscribe service. It is to be noted that the notification can be a translation of GPIO actions made by the thin IoT device 50.
The virtual IoT device instance 36 is configured to analyze the notification, remotely from the thin IoT device 50, utilizing the user application 16, to determine a notification response, if any (block 420). For example, a notification response can be to provide a user of the thin IoT client 50 with some information as determined by the user application 16 (e.g. upon a temperature reading obtained by a temperature sensor of the thin IoT device exceeding a threshold, a warning notification of the threshold breach can be provided as part of a notification response). The virtual IoT device instance 36 performs the notification response, if any (as in some cases the user application 16 execution on the notification received from the thin IoT device 50 results in no notification response being required (e.g. in the temperature sensor example - in case the threshold is not breached there is no need in performing any action). The notification response can include, for example, sending a command to the thin IoT device, sending a message to a user of the thin IoT device, or sending a message to another application.
It is to be noted that, with reference to Fig. 4, some of the blocks can be integrated into a consolidated block or can be broken down to a few blocks and/or other blocks may be added. It should be also noted that whilst the flow diagram is described also with reference to the system elements that realizes them, this is by no means binding, and the blocks can be performed by elements other than those described herein.
Having described the operations of the virtual IoT device instance 36, attention is drawn to Fig. 5, a flowchart illustrating one example of a sequence of operations carried out for registering a new thin IoT device, in accordance with the presently disclosed subject matter.
According to some examples of the presently disclosed subject matter, thin IoT devices 50 need to be registered as part of their activation. For this purpose, a device management platform 30 (also referred to herein as“device manager”) is utilized. The device management platform 30 is configured to execute a thin IoT device registration process 500. For this purpose, the device management platform 30 is configured to provide a record associated with a thin IoT device 50, the record including parameters identifying the thin IoT device 50 (block 510). This record is provided, for example, by a manufacturer of the thin IoT device, and the parameters are required for activating the thin IoT device (e.g. identification information, security tokens, information of publish/subscribe channels to register to, etc.).
upon activation of the thin IoT device (e.g. using the device management module 28), the device management platform 30 generates the virtual IoT device instance 36 associated with the thin IoT device 50 (e.g. using the cloud device instance manager module 32), the virtual IoT device instance 36 having one or more identity parameters including an address (block 520). Such identity parameters are required, for example for enabling management of the virtual IoT device instance 36 by multiple cloud-based operating systems 34, and/or for accommodating change of identification keys as part of the device lifecycle.
The device management platform 30 creates a publish/subscribe topic having a unique identifier in a publish/subscribe service, the publish/subscribe service being associated with the virtual IoT device instance 50 and with the thin IoT device 50 (block 530). The publish/subscribe topic that is generated enables communication between the virtual IoT device instance 50 and the thin IoT device 50.
The device management platform 30 sends the unique identifier to the thin IoT device 50 and to the virtual IoT device instance 36, thereby causing the thin IoT device 50 and the virtual IoT device instance 36 to subscribe to the publish/subscribe topic. In some cases, the device management platform 30 further sends to the thin IoT device and to the virtual IoT device a security token usable (and required) for subscribing to the publish/subscribe topic.
It is to be noted that, with reference to Fig. 5, some of the blocks can be integrated into a consolidated block or can be broken down to a few blocks and/or other blocks may be added. It should be also noted that whilst the flow diagram is described also with reference to the system elements that realizes them, this is by no means binding, and the blocks can be performed by elements other than those described herein.
Turning to Fig. 6, there is shown a flowchart illustrating one example of a sequence of operations carried out for handling a change message by a thin IoT device, in accordance with the presently disclosed subject matter.
According to some examples of the presently disclosed subject matter, the thin IoT device 50 is configured to execute a change message handling process 600. For this purpose, the thin IoT device 50 can be configured to receive, from the virtual IoT device instance 36 associated therewith, a change message associated with the desired change in the operation of the thin IoT device 50, the change message generated by the virtual IoT device instance 36 by executing a command received by the virtual IoT device instance 36 from a user of the thin IoT device 50, the command associated with a desired change in operation of the thin IoT device (block 610). The change message can be generated by the virtual IoT device instance in accordance with the command execution process 300 detailed herein with reference to Fig. 3. In some cases, the change message is received by the thin IoT device 50 via a publish/subscribe service. The thin IoT device translates the change message to General Purpose Input Output (GPIO) actions (e.g. using the GPIO abstraction layer) (block 620) and executes the GPIO actions (e.g. via the hardware access layer) (block 630).
As indicated herein, the logic associated with the virtual IoT device instance 36 executing the command also depends on a current state of the thin IoT device 50, prior to executing the command
It is to be noted that, with reference to Fig. 6, some of the blocks can be integrated into a consolidated block or can be broken down to a few blocks and/or other blocks may be added. It should be also noted that whilst the flow diagram is described also with reference to the system elements that realizes them, this is by no means binding, and the blocks can be performed by elements other than those described herein.
Attention is drawn to Fig. 7, a flowchart illustrating one example of a sequence of operations carried out for handling an input notification by a thin IoT device, in accordance with the presently disclosed subject matter.
According to some examples of the presently disclosed subject matter, the thin IoT device 50 is configured to execute an input notification handling process 700. For this purpose, the thin IoT device 50 can be configured to send a notification, to the virtual IoT device instance 36 associated therewith, the notification being indicative of input obtained by the thin IoT device 50, thereby causing the virtual IoT device instance 36 to determine a notification response, if any, utilizing the user application 16 (in accordance with the notification response process 400 detailed herein with reference to Fig. 4) (block 710). The notification can be sent by the thin IoT device 50 via a publish/subscribe service. The notification can be sent upon detection of input obtained via the GPIO’s 22 of the thin IoT device 50. In some cases, the notification can be a translation of GPIO actions made by the thin IoT device 50. As indicated herein, the notification response can includes sending a command to the thin IoT device, sending a message to a user of the thin IoT device, or sending a message to another application.
It is to be noted that, with reference to Fig. 7, block 710 can be broken down to a few blocks and/or other blocks may be added. It should be also noted that whilst the flow diagram is described also with reference to the system elements that realizes them, this is by no means binding, and the blocks can be performed by elements other than those described herein. It is to be understood that the presently disclosed subject matter is not limited in its application to the details set forth in the description contained herein or illustrated in the drawings. The presently disclosed subject matter is capable of other embodiments and of being practiced and carried out in various ways. Hence, it is to be understood that the phraseology and terminology employed herein are for the purpose of description and should not be regarded as limiting. As such, those skilled in the art will appreciate that the conception upon which this disclosure is based may readily be utilized as a basis for designing other structures, methods, and systems for carrying out the several purposes of the present presently disclosed subject matter.
It will also be understood that the system according to the presently disclosed subject matter can be implemented, at least partly, as a suitably programmed computer. Likewise, the presently disclosed subject matter contemplates a computer program being readable by a computer for executing the disclosed method. The presently disclosed subject matter further contemplates a machine-readable memory tangibly embodying a program of instructions executable by the machine for executing the disclosed method.

Claims

CLAIMS:
1. A system comprising a virtual Internet of Things (IoT) device including a user application capable of executing logic associated with a remote thin IoT device, wherein the remote thin IoT device does not include the user application and cannot execute the logic independently of the virtual IoT device.
2. The system of claim 1, further comprising a processing resource, external to the thin IoT device, the processing resource configured to:
receive a command from a user of the thin IoT device, the command associated with a desired change in operation of the thin IoT device;
execute the command on the virtual IoT device, remotely from the thin IoT device, utilizing the user application, thereby generating a change message associated with the desired change in the operation of the thin IoT device; and
send the change message to the thin IoT device, thereby causing the thin IoT device to implement the desired change in the operation of the thin IoT device.
3. The system of claim 2, wherein a logic associated with executing the command also depends on a current state of the thin IoT device, prior to executing the command.
4. The system of claim 2, wherein the change message is sent to the thin IoT device via a publish/subscribe service.
5. The system of claim 4, wherein the change message is sent to the thin IoT device via a proxy device, and wherein the change message is sent to the proxy device via the publish/subscribe service.
6. The system of claim 4, wherein the publish/subscribe service is an Message Queuing Telemetry Transport (MQTT) based service.
7. The system of claim 2, wherein the thin IoT device, upon receipt of the change message, executes at least one pre-defined peripheral of a Central Processing Unit (CPU) of the thin IoT device.
8. The system of claim 2, wherein the thin IoT device, upon receipt of the change message, translates the change message to General Purpose Input Output (GPIO) actions, and executes the GPIO actions.
9. The system of claim 1, further comprising a processing resource, external to the thin IoT device, the processing resource configured to:
receive a notification from the thin IoT device, the notification being indicative of input obtained by the thin IoT device;
analyze the notification on the virtual IoT device, remotely from the thin IoT device, utilizing the user application, to determine a notification response, if any; and perform the notification response, if any.
10. The system of claim 9, wherein the notification response includes one or more of the following: (a) sending a command to the thin IoT device, (b) sending a message to a user of the thin IoT device, or (c) sending a message to another application.
11. The system of claim 9, wherein the notification is sent by the thin IoT device via a publish/subscribe service.
12. The system of claim 11, wherein the notification by the thin IoT device via a proxy device, and wherein the proxy device sends the notification via the publish/subscribe service.
13. The system of claim 11, wherein the publish/subscribe service is an Message Queuing Telemetry Transport (MQTT) based service.
14. The system of claim 11, wherein the notification is a translation of General-Purpose Input Output (GPIO) actions made by the thin IoT device.
15. The system of claim 1, further comprising a device manager, wherein the device manager is configured to: provide a record associated with the thin IoT device, the record including parameters identifying the thin IoT device;
upon activation of the thin IoT device, generate the virtual IoT device associated with the thin IoT device, the virtual IoT device having one or more identity parameters including an address;
create a publish/subscribe topic having a unique identifier in a publish/subscribe service, the publish/subscribe service being associated with the virtual IoT device and with the thin IoT device; and
send the unique identifier to the thin IoT device and to the virtual IoT device, thereby causing the thin IoT device and the virtual IoT device to subscribe to the publish/subscribe topic.
16. The system of claim 15, wherein the device manager further sends to the thin IoT device and to the virtual IoT device a security token usable for subscribing to the publish/subscribe topic.
17. The system of claim 1, wherein the thin IoT device further comprises a Central Processing Unit (CPU), the CPU configured to:
receive, from the virtual IoT device, a change message associated with the desired change in the operation of the thin IoT device, the change message generated by the virtual IoT device by executing a command received by the virtual IoT device from a user of the thin IoT device, the command associated with a desired change in operation of the thin IoT device;
translate the change message to General Purpose Input Output (GPIO) actions; and
execute the GPIO actions.
18. The system of claim 17, wherein a logic associated with the virtual IoT device executing the command also depends on a current state of the thin IoT device, prior to executing the command.
19. The system of claim 17, wherein the change message is received by the thin IoT device via a publish/subscribe service.
20. The system of claim 1, wherein the thin IoT device further comprises a Central Processing Unit (CPU), the CPU configured to:
send a notification to the virtual IoT device, the notification being indicative of input obtained by the thin IoT device, thereby causing the virtual IoT device to determine a notification response, if any, utilizing the user application.
21. The system of claim 20, wherein the notification response includes one or more of the following: (a) sending a command to the thin IoT device, (b) sending a message to a user of the thin IoT device, or (c) sending a message to another application.
22. The system of claim 20, wherein the notification is sent by the thin IoT device via a publish/subscribe service.
23. The system of claim 20, wherein the notification is a translation of General-
Purpose Input Output (GPIO) actions made by the thin IoT device.
24. A method of operating a virtual Internet of Things (IoT) device including a user application capable of executing logic associated with a remote thin IoT device, wherein the remote thin IoT device does not include the user application and cannot execute the logic independently of the virtual IoT device, the method comprising:
receiving, by a first processing resource executing the virtual IoT device and external to the thin IoT device, a command from a user of the thin IoT device, the command associated with a desired change in operation of the thin IoT device;
executing the command by the first processing resource, remotely from the thin
IoT device, utilizing the user application, thereby generating a change message associated with the desired change in the operation of the thin IoT device; and
sending, by the first processing resource, the change message to the thin IoT device, thereby causing the thin IoT device to implement the desired change in the operation of the thin IoT device.
25. The method of claim 24, wherein a logic associated with executing the command also depends on a current state of the thin IoT device, prior to executing the command.
26. The method of claim 24, wherein the change message is sent to the thin IoT device via a publish/subscribe service.
27. The method of claim 26, wherein the change message is sent to the thin IoT device via a proxy device, and wherein the change message is sent to the proxy device via the publish/subscribe service.
28. The method of claim 26, wherein the publish/subscribe service is an Message Queuing Telemetry Transport (MQTT) based service.
29. The method of claim 24, wherein the thin IoT device, upon receipt of the change message, executes at least one pre-defined peripheral of a Central Processing Unit (CPU) of the thin IoT device.
30. The method of claim 24, wherein the thin IoT device, upon receipt of the change message, translates the change message to General Purpose Input Output (GPIO) actions, and executes the GPIO actions.
31. The method of claim 24, further comprising:
receiving, by the first processing resource, a notification from the thin IoT device, the notification being indicative of input obtained by the thin IoT device;
analyzing the notification, by the first processing resource and remotely from the thin IoT device, utilizing the user application, to determine a notification response, if any; and
performing, by the first processing resource, the notification response, if any.
32. The method of claim 31, wherein the notification response includes one or more of the following: (a) sending a command to the thin IoT device, (b) sending a message to a user of the thin IoT device, or (c) sending a message to another application.
33. The method of claim 31, wherein the notification is sent by the thin IoT device via a publish/subscribe service.
34. The method of claim 33, wherein the notification by the thin IoT device via a proxy device, and wherein the proxy device sends the notification via the publish/subscribe service.
35. The method of claim 32, wherein the publish/subscribe service is an Message Queuing Telemetry Transport (MQTT) based service.
36. The method of claim 32, wherein the notification is a translation of General- Purpose Input Output (GPIO) actions made by the thin IoT device.
37. The method of claim 24, further comprises operating a device manager having a second processing resource, and the method further comprises:
providing, by the second processing resource, a record associated with the thin IoT device, the record including parameters identifying the thin IoT device;
upon activation of the thin IoT device, generating, by the second processing resource, the virtual IoT device associated with the thin IoT device, the virtual IoT device having one or more identity parameters including an address;
creating, by the second processing resource, a publish/subscribe topic having a unique identifier in a publish/subscribe service, the publish/subscribe service being associated with the virtual IoT device and with the thin IoT device; and
sending, by the second processing resource, the unique identifier to the thin IoT device and to the virtual IoT device, thereby causing the thin IoT device and the virtual IoT device to subscribe to the publish/subscribe topic.
38. The method of claim 37, further comprising sending, by the second processing resource, to the thin IoT device and to the virtual IoT device, a security token usable for subscribing to the publish/subscribe topic.
39. The method of claim 24, wherein the thin IoT device further comprises a Central Processing Unit (CPU), and wherein the method further comprises:
receiving, by the CPU, from the virtual IoT device, a change message associated with the desired change in the operation of the thin IoT device, the change message generated by the virtual IoT device by executing a command received by the virtual IoT device from a user of the thin IoT device, the command associated with a desired change in operation of the thin IoT device;
translating, by the CPU, the change message to General Purpose Input Output (GPIO) actions; and
executing, by the CPU, the GPIO actions.
40. The method of claim 39 wherein a logic associated with the virtual IoT device executing the command also depends on a current state of the thin IoT device, prior to executing the command.
41. The method of claim 39, wherein the change message is received by the thin IoT device via a publish/subscribe service.
42. The method of claim 24, wherein the thin IoT device further comprises a Central Processing Unit (CPU), and wherein the method further comprises:
sending, by the CPU, a notification to the virtual IoT device, the notification being indicative of input obtained by the thin IoT device, thereby causing the virtual IoT device to determine a notification response, if any, utilizing the user application.
43. The method of claim 42, wherein the notification response includes one or more of the following: (a) sending a command to the thin IoT device, (b) sending a message to a user of the thin IoT device, or (c) sending a message to another application.
44. The method of claim 42, wherein the notification is sent by the thin IoT device via a publish/subscribe service.
45. The method of claim 42, wherein the notification is a translation of General- Purpose Input Output (GPIO) actions made by the thin IoT device.
46. A non-transitory computer readable storage medium having computer readable program code embodied therewith, the computer readable program code, executable by at least one processor of a gateway to perform a method of operating a virtual Internet of Things (IoT) device including a user application capable of executing logic associated with a remote thin IoT device, wherein the remote thin IoT device does not include the user application and cannot execute the logic independently of the virtual IoT device, the method comprising:
receiving, by a first processing resource executing the virtual IoT device and external to the thin IoT device, a command from a user of the thin IoT device, the command associated with a desired change in operation of the thin IoT device;
executing the command by the first processing resource, remotely from the thin IoT device, utilizing the user application, thereby generating a change message associated with the desired change in the operation of the thin IoT device; and
sending, by the first processing resource, the change message to the thin IoT device, thereby causing the thin IoT device to implement the desired change in the operation of the thin IoT device.
PCT/IL2020/050436 2019-04-22 2020-04-14 Server based computing for the internet of things (iot) WO2020217240A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962836749P 2019-04-22 2019-04-22
US62/836,749 2019-04-22

Publications (1)

Publication Number Publication Date
WO2020217240A1 true WO2020217240A1 (en) 2020-10-29

Family

ID=72940944

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IL2020/050436 WO2020217240A1 (en) 2019-04-22 2020-04-14 Server based computing for the internet of things (iot)

Country Status (1)

Country Link
WO (1) WO2020217240A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115361447A (en) * 2022-08-09 2022-11-18 神州顶联科技有限公司 Internet of things gateway data processing method of water operation billing equipment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160088049A1 (en) * 2013-05-06 2016-03-24 Convida Wireless, Llc Internet of things (iot) adaptation services
US20160135241A1 (en) * 2014-11-10 2016-05-12 Qualcomm Incorporated Connectivity module for internet of things (iot) devices
US20160308957A1 (en) * 2015-04-16 2016-10-20 Verizon Patent And Licensing Inc. Software-defined iot controller

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160088049A1 (en) * 2013-05-06 2016-03-24 Convida Wireless, Llc Internet of things (iot) adaptation services
US20160135241A1 (en) * 2014-11-10 2016-05-12 Qualcomm Incorporated Connectivity module for internet of things (iot) devices
US20160308957A1 (en) * 2015-04-16 2016-10-20 Verizon Patent And Licensing Inc. Software-defined iot controller

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115361447A (en) * 2022-08-09 2022-11-18 神州顶联科技有限公司 Internet of things gateway data processing method of water operation billing equipment

Similar Documents

Publication Publication Date Title
US10469600B2 (en) Local Proxy for service discovery
US10541868B2 (en) System and method for automatically updating bios setup options
US10873518B1 (en) Transmission of subscription-based messages to internet of things (IoT) devices
US9003007B2 (en) Administration of virtual machine affinity in a data center
US20200006904A1 (en) Infrastructure management device
US9348771B1 (en) Cloud-based instrument driver system
WO2017106208A2 (en) Device management with tunneling
US10691501B1 (en) Command invocations for target computing resources
US10091278B1 (en) Data exchange services
US10623289B1 (en) Systems and methods for detecting nonfunctional endpoint devices
JP2017111791A (en) Method, system and computer program for cloud-based computing cluster for simulated operator training system
US10838780B2 (en) Portable hosted content
US20180241632A1 (en) Systems and methods for network topology discovery
US20160132358A1 (en) Peripheral device sharing across virtual machines running on different host computing systems
US20150288777A1 (en) Startup of message-passing-interface (mpi) based applications in a heterogeneous environment
WO2020217240A1 (en) Server based computing for the internet of things (iot)
US10091294B2 (en) Networking component management in host computing systems in a virtual computing environment
US11922297B2 (en) Edge AI accelerator service
US10445201B2 (en) System and method for automated integration and stress testing of hardware and software service in management controller using containerized toolbox
US20230195601A1 (en) Synthetic data generation for enhanced microservice debugging in microservices architectures
US11190553B2 (en) Gateway action framework
US20170118293A1 (en) Method and system for efficient task management
US9436523B1 (en) Holistic non-invasive evaluation of an asynchronous distributed software process
US20220350618A1 (en) Peer booting operating systems on an edge network
CN113485780B (en) Desktop transmission method based on web server

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: 20795054

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205 DATED 18/03/2022)

122 Ep: pct application non-entry in european phase

Ref document number: 20795054

Country of ref document: EP

Kind code of ref document: A1