IP Library Granted Patent US 9,800,468
Granted Patent B2
US 9,800,468 · App. 15/267,289 · Granted Oct 24, 2017

Goal-driven provisioning in IoT systems

Inventors: Ned Smith (Beaverton, OR); Sven Schrecker (Mission Viejo, CA)
Assignee: McAfee, Inc.
H04L41/0893G06F21/335G06F21/72G06F21/74H04L41/0806H04L63/0428H04L63/062H04W4/005G06F2221/2115H04L63/0876H04L2463/041H04W12/04
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 9,800,468
App. No.
15/267,289
Granted
Oct 24, 2017
Kind
B2
Abstract

Techniques are disclosed for provisioning Internet of Things (IoT) devices in accordance with a state machine model. More particularly, collections of IoT devices may be organized into enclaves, groups or “shoals” that operate as autonomous or semi-autonomous groups of devices functioning as a collective having a common objective or mission. IoT devices participating in a shoal may be provisioned with shoal-specific context information as part of their device-specific provisioning activity. By way of example, a shoal context object can include a current state variable and a target next state variable. The shoal's target next state variable establishes a goal (e.g., for provisioning activity) without dictating how the individual shoal members (IoT device) are to achieve that goal. This mechanism may be used to drive a shoal's separate devices through their individual provisioning state machines until the shoal itself is made operational.

Claims (33)

1. An Internet of Things (IoT) device, comprising:

a network communication circuit configured to connect the IoT device to a network communication medium;

a memory communicatively coupled to the network communication circuit; and

a processor operatively coupled to the network communication circuit and the memory, the memory storing instructions that when executed cause the processor to:

employ a provisioning state machine that includes a sequence of provisioning states including an initial state and a final state, the final state of which is an operational state;

establish, via the network communication circuit, communication with an additional IoT device of a collection of IoT devices;

establish, prior to reaching the operational state, IoT device-specific state information in the memory and periodically communicate the IoT device-specific state information to the additional IoT device via the network communication circuit;

determine IoT collection-specific state information based on the periodic communication; and

sequence from the initial state through the sequence of provisioning states based on a combination of the IoT collection-specific state information and the IoT device-specific state information until the IoT device and the additional IoT device are in the operational state, comprising instructions that when executed cause the processor to use a mismatch between the a state of the collection of IoT devices and a state of the IoT device to initiate action to move to a new state of the provisioning state machine.

2. The IoT device of claim 1 , wherein the IoT device comprises a pump controller.

3. The Internet of Things (IoT) device of claim 1 , wherein the network communication medium comprises a wireless network communication medium.

4. The IoT device of claim 1 , further comprising a cryptographic element communicatively coupled to the processor.

5. The IoT device of claim 4 , wherein the instructions further comprise instructions that when executed cause the processor to use the cryptographic element to establish secure communication with the additional IoT device.

6. The IoT device of claim 1 , wherein each state in the provisioning state machine has actions associated with provisioning the IoT device.

7. An Internet of Things (IoT) operational method, comprising:

employing in an IoT device a provisioning state machine that includes a sequence of provisioning states including an initial state and a final state, the final state of which is an operational state;

establishing, via a network communication circuit, communication with an additional IoT device of a collection of IoT devices;

establishing, prior to reaching the operational state, IoT device-specific state information in a memory of the IoT device and periodically communicate the IoT device-specific state information to the additional IoT device via the network communication circuit;

determining IoT collection-specific state information based on the periodic communication; and

sequencing from the initial state through the sequence of provisioning states based on a combination of the IoT collection-specific state information and the IoT device-specific state information until the IoT device and the additional IoT device are in the operational state, comprising using a mismatch between a state of the collection of IoT devices and a state of the IoT device to initiate action to move to a new state of the provisioning state machine.

8. The IoT operational method of claim 7 , wherein the IoT device comprises a health monitoring system device.

9. The IoT operational method of claim 7 , wherein the network communication circuit communicates with the additional IoT device using a wireless network communication medium.

10. The IoT operational method of claim 7 , further comprising using a cryptographic element of the IoT device to establish secure communication with at least one of the additional IoT device.

11. The IoT operational method of claim 7 , wherein each state in the provisioning state machine has actions associated with provisioning the IoT device.

12. A non-transitory program storage device on which are stored instructions, comprising instructions that when executed cause an Internet of Things (IoT) device to:

employ a provisioning state machine that includes a sequence of provisioning states including an initial state and a final state, the final state of which is an operational state;

establish, via a network communication circuit, communication with an additional IoT device of a collection of IoT devices;

establish, prior to reaching the operational state, IoT device-specific state information in a memory and periodically communicate the IoT device-specific state information to the additional IoT device of a collection of IoT devices via the network communication circuit;

determine IoT collection-specific state information based on the periodic communication; and

sequence from the initial state through the sequence of provisioning states based on a combination of the IoT collection-specific state information and the IoT device-specific state information until the IoT device and the additional IoT device are in the operational state comprising instructions that when executed cause the IoT device to use a mismatch between the a state of the collection of IoT devices and a state of the IoT device to initiate action to move to a new state of the provisioning state machine.

13. The program storage device of claim 12 , wherein the instructions that when executed cause the IoT device to establish communication through a network communication circuit comprise instructions that when executed cause the IoT device to establish communication through a wireless network communication circuit.

14. The program storage device of claim 12 , wherein the instructions that when executed cause the IoT device to establish communication through a network communication circuit comprise instructions that when executed cause the IoT device to establish secure communication through a network communication circuit using a cryptographic element of the IoT device.

15. The program storage device of claim 12 , wherein each state in the provisioning state machine has actions associated with provisioning the IoT device.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE PATENT TITLES AND REMOVE DUPLICATES IN THE SCHEDULE PREVIOUSLY RECORDED AT REEL: 059354 FRAME: 0335. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 23, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 060792/0307 →
SECURITY INTEREST Recorded Mar 3, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 059354/0335 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045056/0676 Recorded Mar 2, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 059354/0213 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045055/0786 Recorded Oct 26, 2020
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 054238/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045055 FRAME 786. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 055854/0047 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045056 FRAME 0676. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054206/0593 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 045055/0786 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 045056/0676 →
CHANGE OF NAME AND ENTITY CONVERSION Recorded Aug 24, 2017
From: MCAFEE, INC.
To: MCAFEE, LLC
Reel/Frame 043665/0918 →
Continuity (3)
Continuation 14717754 · May 20, 2015
Provisional Application 62138255 · Mar 25, 2015
Related Publication 20170005871A1 · Jan 5, 2017