IP Library Granted Patent US 10,897,413
Granted Patent B1
US 10,897,413 · App. 16/835,857 · Granted Jan 19, 2021

Determining operational status of internet of things devices

Inventors: Hui Xu (Palo Alto, CA); Jong Ho Won (San Jose, CA); Karen Brems (Redwood City, CA)
Assignee: VMWARE, Inc.
H04L43/0805H04L67/12
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,897,413
App. No.
16/835,857
Granted
Jan 19, 2021
Kind
B1
Abstract

Disclosed are various examples for offline detection of Internet of Things (IoT) devices or any type of devices that report a heartbeat or status indication. A linked hash map be utilized as a data structure in which heartbeat message are stored. The oldest heartbeat message is stored at the head of the data structure so that only the head of the data structure requires checking if the oldest node is designated as online.

Claims (57)

1. A system, comprising:

a computing device comprising at least one processor; and

a memory comprising executable instructions, wherein the instructions, when executed by the at least one processor, cause the computing device to at least:

identify a grouping of internet of things (IoT) devices, the grouping of IoT devices represented in a data structure, wherein individual entries within the data structure comprise a device identifier and a timestamp;

receive, from one of the IoT devices in the grouping, an indication that the one of the IoT devices is operational;

replace a first entry in the data structure corresponding to the one of the IoT devices with a new entry comprising a respective device identifier and a respective timestamp corresponding to when the indication was received; and

periodically traverse the data structure to determine whether any of the IoT devices in the grouping have failed to send a respective operational indication within an offline check period, wherein the data structure is ordered according to the timestamp of a respective entry in the data structure.

2. The system of claim 1 , wherein the data structure comprises a linked hash map that preserves ordering according to timestamp, and wherein a respective key for entries in the data structure is the device identifier.

3. The system of claim 2 , wherein the instructions periodically traverse the data structure by:

identifying a head of the linked hash map, wherein the head of the linked hash map comprises an oldest entry in the data structure according to the timestamp;

in response to determining that the head of the linked hash map has a first timestamp that indicates that an IoT device corresponding to the head of the linked hash map is offline based on the offline check period, identifying a next oldest member of the linked hash map; and

iterating through the linked hash map to identify members of the linked hash map with a respective timestamp and indicates that a respective IoT device is offline.

4. The system of claim 3 , wherein the instructions periodically traverse according to a check interval, wherein the offline check period is different from the check interval.

5. The system of claim 1 , wherein the instructions, when executed, further cause the at least one computing device to at least:

identify a second grouping of IoT devices represented in a second data structure;

receive, from one of the IoT devices in the second grouping, an indication that the one of the IoT devices in second grouping is operational;

replace a second entry in the second data structure corresponding to the one of the IoT devices in the second grouping with a new entry comprising a respective device identifier and a respective timestamp corresponding to when the indication was received; and

periodically traverse the second data structure to determine whether any of the second grouping of IoT devices have failed to send a respective operational indication within a second check interval, wherein the second data structure is ordered according to the timestamp of a respective entry in the second data structure.

6. The system of claim 4 , wherein the instructions periodically traverse the data structure by:

identifying a head of the linked hash map, wherein the head of the linked hash map comprises an oldest entry in the data structure according to the timestamp; and

in response to determining that the head of the linked hash map has a first timestamp that indicates that an IoT device corresponding to the head of the linked hash map is operational, generate a determination that all of the IoT devices in the grouping are operational.

7. The system of claim 6 , wherein the determination that all of the IoT devices in the grouping are operational is made without individually checking an operational state of a remainder of the IoT devices in the grouping.

8. A non-transitory computer-readable medium embodying instructions that, when executed by at least one computing device, cause the at least one computing device to at least:

identify a grouping of internet of things (IoT) devices, the grouping of IoT devices represented in a data structure, wherein individual entries within the data structure comprise a device identifier and a timestamp;

receive, from one of the IoT devices in the grouping, an indication that the one of the IoT devices is operational;

replace a first entry in the data structure corresponding to the one of the IoT devices with a new entry comprising a respective device identifier and a respective timestamp corresponding to when the indication was received; and

periodically traverse the data structure to determine whether any of the IoT devices in the grouping have failed to send a respective operational indication within an offline check period, wherein the data structure is ordered according to the timestamp of a respective entry in the data structure.

9. The non-transitory computer-readable medium of claim 8 , wherein the data structure comprises a linked hash map that preserves ordering according to timestamp, and wherein a respective key for entries in the data structure is the device identifier.

10. The non-transitory computer-readable medium of claim 9 , wherein the instructions periodically traverse the data structure by:

identifying a head of the linked hash map, wherein the head of the linked hash map comprises an oldest entry in the data structure according to the timestamp;

in response to determining that the head of the linked hash map has a first timestamp that indicates that an IoT device corresponding to the head of the linked hash map is offline based on the offline check period, identifying a next oldest member of the linked hash map; and

iterating through the linked hash map to identify members of the linked hash map with a respective timestamp and indicates that a respective IoT device is offline.

11. The non-transitory computer-readable medium of claim 10 , wherein the instructions periodically traverse according to a check interval, wherein the offline check period is different from the check interval.

12. The non-transitory computer-readable medium of claim 8 , wherein the instructions, when executed, further cause the at least one computing device to at least:

identify a second grouping of IoT devices represented in a second data structure;

receive, from one of the IoT devices in the second grouping, an indication that the one of the IoT devices in second grouping is operational;

replace a second entry in the second data structure corresponding to the one of the IoT devices in the second grouping with a new entry comprising a respective device identifier and a respective timestamp corresponding to when the indication was received; and

periodically traverse the second data structure to determine whether any of the second grouping of IoT devices have failed to send a respective operational indication within a second check interval, wherein the second data structure is ordered according to the timestamp of a respective entry in the second data structure.

13. The non-transitory computer-readable medium of claim 11 , wherein the instructions periodically traverse the data structure by:

identifying a head of the linked hash map, wherein the head of the linked hash map comprises an oldest entry in the data structure according to the timestamp; and

in response to determining that the head of the linked hash map has a first timestamp that indicates that an IoT device corresponding to the head of the linked hash map is operational, generate a determination that all of the IoT devices in the grouping are operational.

14. The non-transitory computer-readable medium of claim 13 , wherein the determination that all of the IoT devices in the grouping are operational is made without individually checking an operational state of a remainder of the IoT devices in the grouping.

15. A method, comprising:

identifying a grouping of internet of things (IoT) devices, the grouping of IoT devices represented in a data structure, wherein individual entries within the data structure comprise a device identifier and a timestamp;

receiving, from one of the IoT devices in the grouping, an indication that the one of the IoT devices is operational;

replacing a first entry in the data structure corresponding to the one of the IoT devices with a new entry comprising a respective device identifier and a respective timestamp corresponding to when the indication was received; and

periodically traversing the data structure to determine whether any of the IoT devices in the grouping have failed to send a respective operational indication within an offline check period, wherein the data structure is ordered according to the timestamp of a respective entry in the data structure.

16. The method of claim 14 , wherein the data structure comprises a linked hash map that preserves ordering according to timestamp, and wherein a respective key for entries in the data structure is the device identifier.

17. The method of claim 16 , wherein periodically traversing the data structure further comprises:

identifying a head of the linked hash map, wherein the head of the linked hash map comprises an oldest entry in the data structure according to the timestamp;

in response to determining that the head of the linked hash map has a first timestamp that indicates that an IoT device corresponding to the head of the linked hash map is offline based on the offline check period, identifying a next oldest member of the linked hash map; and

iterating through the linked hash map to identify members of the linked hash map with a respective timestamp and indicates that a respective IoT device is offline.

18. The method of claim 17 , wherein periodically traversing is performed according to a check interval, wherein the offline check period is different from the check interval.

19. The method of claim 18 , wherein periodically traversing the data structure further comprises:

identifying a head of the linked hash map, wherein the head of the linked hash map comprises an oldest entry in the data structure according to the timestamp;

in response to determining that the head of the linked hash map has a first timestamp that indicates that an IoT device corresponding to the head of the linked hash map is operational, generate a determination that all of the IoT devices in the grouping are operational.

20. The method of claim 19 , wherein the determination that all of the IoT devices in the grouping are operational is made without individually checking an operational state of a remainder of the IoT devices in the grouping.

Assignments (4)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067103/0030 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 2, 2020
From: XU, HUI; WON, JONG HO; BREMS, KAREN
To: VMWARE, INC.
Reel/Frame 052292/0561 →