IP Library › Granted Patent US 10,448,454
Granted Patent B1
US 10,448,454 · App. 15/076,069 · Granted Oct 15, 2019

Self-organizing distributed task coordination for ad-hoc computing environment

Inventors: Simon Tao (Shaghai, CN); Yu Cao (Beijing, CN); Xiaoyan Guo (Beijing, CN); Zhe Dong (Beijing, CN); Kenneth Durazzo (San Ramon, CA)
Assignee: EMC IP Holding Company LLC
H04W84/18G06F9/48G06F9/5083G06F16/27H04L45/60H04L67/1095
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,448,454
App. No.
15/076,069
Filed
Mar 21, 2016
Granted
Oct 15, 2019
Kind
B1
Art Unit
2454
USPC
709/223
Abstract

Processing nodes in a distributed ad-hoc computing environment are discovered, wherein each processing node is configured to discover other processing nodes. A set of candidate processing nodes is selected from the discovered processing nodes. Selection is based on each discovered processing node advertising its own capabilities to other processing nodes, and processing nodes are selected as candidates based on their advertised capabilities. A subset of processing nodes is formed from the set of candidate processing nodes. The subset of processing nodes forms a self-organized task coordination ensemble wherein each processing node in the task coordination ensemble executes the same consensus protocol. By way of example, the distributed ad-hoc computing environment comprises an IoT network and the processing nodes are IoT devices.

Claims (39)

1. A method, comprising:

discovering processing nodes in a distributed ad-hoc wireless computing environment comprising an Internet of Things (IoT) network, wherein each processing node is configured to discover other processing nodes, wherein the processing nodes are IoT devices;

selecting a set of candidate processing nodes from the discovered processing nodes, wherein selection is based on each discovered potential-candidate processing node advertising its own capabilities to other potential-candidate processing nodes, and potential-candidate processing nodes being selected as candidates based on their advertised capabilities; and

forming a subset of processing nodes from the set of candidate processing nodes, wherein the subset of processing nodes form a self-organized task coordination ensemble wherein each processing node in the task coordination ensemble executes the same consensus protocol;

wherein the task coordination ensemble is leveraged to elect one of the processing nodes as a leader in the task coordination ensemble;

wherein the leader exclusively functions as a task assigner at a given time instance;

wherein each processing node in the task coordination ensemble is capable of serving as the leader during a given time period; and

wherein each processing node in the task coordination ensemble comprises a state machine such that the same state machine representation is replicated in each processing node and each processing node is thus able to perform the same task when one processing node in the ensemble fails.

2. The method of claim 1 , further comprising the task coordination ensemble balancing a processing load across each processing node of the task coordination ensemble.

3. The method of claim 1 , further comprising identifying processing nodes in the task coordination ensemble as at least one of a service provider and a service consumer.

4. The method of claim 3 , wherein the processing nodes in the task coordination ensemble publish services they can provide and subscribe to services upon which they depend.

5. The method of claim 4 , further comprising the task coordination ensemble maintaining a service and dependency registry based on the publishing and subscribing functions of the processing nodes of the task coordination ensemble.

6. The method of claim 1 , further comprising adding a new processing node from the set of candidate processing nodes to the task coordination ensemble when one of the existing processing nodes in the task coordination ensemble fails.

7. The method of claim 1 , wherein advertised capabilities used to select processing nodes as candidates comprise at least one of: computing power, storage durability; inter-processing node connection reliability; and power supply capacity.

8. The method of claim 7 , wherein processing nodes are selected as candidate processing nodes when they meet a predetermined minimum threshold for their advertised capabilities.

9. The method of claim 1 , wherein the advertised capabilities used to select processing nodes as candidates are advertised via a REST-based interface.

10. The method of claim 1 , wherein at least two of the processing nodes are different IoT devices having different capabilities, and include at least one of a smartphone, a sensor, an actuator, or an RFID tag.

11. A method, comprising:

a given processing node in a distributed ad-hoc wireless computing environment comprising an Internet of Things (IoT) network and participating in a discovery stage as a potential-candidate processing node by advertising its capabilities to other potential-candidate processing nodes in the distributed ad-hoc computing environment, wherein the given processing node is selected into a set of candidate processing nodes based on its own capabilities meeting a predetermined minimum threshold; and

the given processing node participating in a subset of processing nodes from the set of candidate processing nodes to form a self-organized task coordination ensemble, wherein each processing node in the task coordination ensemble executes the same consensus protocol and wherein the processing nodes are IoT devices;

wherein the task coordination ensemble is leveraged to elect one of the processing nodes as a leader in the task coordination ensemble;

wherein the leader exclusively functions as a task assigner at a given time instance;

wherein each processing node in the task coordination ensemble is capable of serving as the leader during a given time period; and

wherein each processing node in the task coordination ensemble comprises a state machine such that the same state machine representation is replicated in each processing node and each processing node is thus able to perform the same task when one processing node in the ensemble fails.

12. The method of claim 11 , further comprising the processing node participating in a balancing of a processing load across each processing node of the task coordination ensemble.

13. The method of claim 11 , further comprising identifying processing nodes in the task coordination ensemble as at least one of a service provider and a service consumer.

14. The method of claim 13 , wherein the processing nodes in the task coordination ensemble publish services they can provide and subscribe to services upon which they depend.

15. The method of claim 11 , further comprising adding a new processing node from the set of candidate processing nodes to the task coordination ensemble when one of the existing processing nodes in the task coordination ensemble fails.

16. The method of claim 11 , wherein advertised capabilities used to select processing nodes as candidates comprise at least one of: computing power, storage durability; inter-processing node connection reliability; and power supply capacity.

17. The method of claim 16 , wherein processing nodes are selected as candidate processing nodes when they meet a predetermined minimum threshold for their advertised capabilities.

18. A system, comprising:

a set of physical processing devices; and

a set of processing nodes in a distributed wireless ad-hoc computing environment comprising an IoT network, the processing nodes being IoT devices and implemented on the set of physical processing devices, the set of processing nodes configured to form a self-organized task coordination ensemble, the task coordination ensemble being formed by: discovering processing nodes in the distributed ad-hoc computing environment, wherein each processing node is configured to discover other processing nodes; selecting a set of candidate processing nodes from the discovered processing nodes, wherein selection is based on each discovered potential-candidate processing node advertising its own capabilities to other potential-candidate processing nodes, and potential-candidate processing nodes being selected as candidates based on their advertised capabilities; and forming a subset of processing nodes from the set of candidate processing nodes, wherein the subset of processing nodes form the self-organized task coordination ensemble, wherein each processing node in the task coordination ensemble executes the same consensus protocol;

wherein the task coordination ensemble is leveraged to elect one of the processing nodes as a leader in the task coordination ensemble;

wherein the leader exclusively functions as a task assigner at a given time instance;

wherein each processing node in the task coordination ensemble is capable of serving as the leader during a given time period; and

wherein each processing node in the task coordination ensemble comprises a state machine such that the same state machine representation is replicated in each processing node and each processing node is thus able to perform the same task when one processing node in the ensemble fails.

19. The system of claim 18 , wherein a processing load is balanced across each of the processing nodes of the task coordination ensemble.

20. The system of claim 18 , wherein at least two of the processing nodes are different IoT devices having different capabilities, and include at least one of a smartphone, a sensor, an actuator, or an RFID tag.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (051302/0528) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.); SECUREWORKS CORP.
Reel/Frame 060438/0593 →
RELEASE OF SECURITY INTEREST AT REEL 051449 FRAME 0728 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
Reel/Frame 058002/0010 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Dec 31, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 051449/0728 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Dec 16, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 051302/0528 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2019
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 050244/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2017
From: DURAZZO, KENNETH
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 041027/0890 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2017
From: TAO, SIMON; CAO, YU; GUO, XIAOYAN; DONG, ZHE
To: EMC CORPORATION
Reel/Frame 041027/0787 →
Cited By (2)
US 12,328,231 US 12,341,849