IP Library Granted Patent US 10,360,021
Granted Patent B2
US 10,360,021 · App. 15/653,270 · Granted Jul 23, 2019

Systems and methods for reliable software update in a network of moving things including, for example, autonomous vehicles

Inventors: Henrique Manuel Pereira Cabral (Matosinhos, PT); Carlos Eduardo Braga Ameixieira (Oporto, PT)
Assignee: Veniam, Inc.
G06F8/656G06F8/65G06F9/445G06F16/00H04L12/4641H04W48/20G06F2221/034H04W76/10
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,360,021
App. No.
15/653,270
Granted
Jul 23, 2019
Kind
B2
Abstract

Communication network architectures, systems and methods for supporting a network of mobile nodes. As a non-limiting example, various aspects of this disclosure provide communication network architectures, systems, and methods for supporting a dynamically configurable communication network comprising a complex array of both static and moving communication nodes (e.g., the Internet of moving things). Aspects of the disclosure disclose systems and methods for reliable software update in a network of moving things including, for example, autonomous vehicles.

Claims (58)

1. A method of performing reliable software updates at a first node of a wireless network comprising a plurality of nodes and a cloud-based system communicatively coupled to storage containing software updates for the plurality of nodes, the method comprising:

periodically communicating, by the first node to the cloud-based system, a request for an identifier of a software update for application to the first node;

in response to the request, receiving an identifier of a respective software update for application to the first node;

determining whether the received identifier is on a list of identifiers of software updates blacklisted by the first node;

determining whether the first node is a member node of a group of nodes designated to download an available software update that is not blacklisted at the member node and without regard to status information about the available software update that is shared by neighbor nodes of the member node;

communicating with one or more neighbor nodes of the first node to determine status of the identified software update at the one or more neighbor nodes, if the first node is not a member of the group of nodes;

downloading the software update identified by the received identifier, if the first node is a member of the group of nodes; and

applying the downloaded software update to the first node.

2. The method according to claim 1 , where communicating with the one or more neighbor nodes of the first node to determine status of the identified software update at the one or more neighbor nodes comprises:

receiving software update status information from the one or more neighbor nodes; and

determining whether to download the software update identified by the received identifier to the first node, based on the software update status information received from the one or more neighbor nodes.

3. The method according to claim 1 , wherein the one or more neighbor nodes are within direct wireless communication range of the first node.

4. The method according to claim 1 , wherein the method further comprises:

determining whether measurements of the operation of the updated software on the first node match expected operation represented by information received with the downloaded software update; and

sending notification of failure of performance of the first node to match the information representative of the expected operation.

5. The method according to claim 1 , wherein method further comprises:

sharing the list of identifiers of software updates blacklisted by the first node with the one or more neighbor nodes.

6. The method according to claim 1 , wherein nodes of the plurality of nodes are designated as members of the group of nodes by the cloud-based system.

7. The method according to claim 1 , wherein the plurality of nodes comprise a plurality of fixed nodes at known geographic locations and a plurality of mobile nodes located in respective vehicles operating in a geographic area served by the wireless network.

8. A non-transitory computer-readable medium on which is stored one or more code sections, each code section comprising instructions executable by one or more processors, the instructions for causing the one or more processors to perform the steps of a method of performing reliable software updates at a first node of a wireless network comprising a plurality of nodes and a cloud-based system communicatively coupled to storage containing software updates for the plurality of nodes, the steps of the method comprising:

periodically communicating, by the first node to the cloud-based system, a request for an identifier of a software update for application to the first node;

in response to the request, receiving an identifier of a respective software update for application to the first node;

determining whether the received identifier is on a list of identifiers of software updates blacklisted by the first node;

determining whether the first node is a member node of a group of nodes designated to download an available software update that is not blacklisted at the member node and without regard to status information about the available software update that is shared by neighbor nodes of the member node;

communicating with one or more neighbor nodes of the first node to determine status of the identified software update at the one or more neighbor nodes, if the first node is not a member of the group of nodes;

downloading the software update identified by the received identifier, if the first node is a member of the group of nodes; and

applying the downloaded software update to the first node.

9. The non-transitory computer-readable medium according to claim 8 , where communicating with the one or more neighbor nodes of the first node to determine status of the identified software update at the one or more neighbor nodes comprises:

receiving software update status information from the one or more neighbor nodes; and

determining whether to download the software update identified by the received identifier to the first node, based on the software update status information received from the one or more neighbor nodes.

10. The non-transitory computer-readable medium according to claim 8 , wherein the one or more neighbor nodes are within direct wireless communication range of the first node.

11. The non-transitory computer-readable medium according to claim 8 , wherein the steps of the method further comprise:

determining whether measurements of the operation of the updated software on the first node match expected operation represented by information received with the downloaded software update; and

sending notification of failure of performance of the first node to match the information representative of the expected operation.

12. The non-transitory computer-readable medium according to claim 8 , wherein the steps of the method further comprise:

sharing the list of identifiers of software updates blacklisted by the first node with the one or more neighbor nodes.

13. The non-transitory computer-readable medium according to claim 8 , wherein nodes of the plurality of nodes are designated as members of the group of nodes by the cloud-based system.

14. The non-transitory computer-readable medium according to claim 8 , wherein the plurality of nodes comprise a plurality of fixed nodes at known geographic locations and a plurality of mobile nodes located in respective vehicles operating in a geographic area served by the wireless network.

15. A system for performing reliable software updates at a first node of a wireless network comprising a plurality of nodes and a cloud-based system communicatively coupled to storage containing software updates for the plurality of nodes, the system comprising:

one or more processors operably coupled to storage of the first node and to at least one wireless communication interface configured to communicate using the wireless network, the one or more processors operable to:

periodically communicate, by the first node to the cloud-based system, a request for an identifier of a software update for application to the first node;

in response to the request, receive an identifier of a respective software update for application to the first node;

determine whether the received identifier is on a list of identifiers of software updates blacklisted by the first node;

determine whether the first node is a member node of a group of nodes designated to download an available software update that is not blacklisted at the member node and without regard to status information about the available software update that is shared by neighbor nodes of the member node;

communicate with one or more neighbor nodes of the first node to determine status of the identified software update at the one or more neighbor nodes, if the first node is not a member of the group of nodes;

download the software update identified by the received identifier, if the first node is a member of the group of nodes; and

apply the downloaded software update to the first node.

16. The system according to claim 15 , where communicating with the one or more neighbor nodes of the first node to determine status of the identified software update at the one or more neighbor nodes comprises:

receiving software update status information from the one or more neighbor nodes; and

determining whether to download the software update identified by the received identifier to the first node, based on the software update status information received from the one or more neighbor nodes.

17. The system according to claim 15 , wherein the one or more neighbor nodes are within direct wireless communication range of the first node.

18. The system according to claim 15 , wherein the method further comprises:

determining whether measurements of the operation of the updated software on the first node match expected operation represented by information received with the downloaded software update; and

sending notification of failure of performance of the first node to match the information representative of the expected operation.

19. The system according to claim 15 , wherein method further comprises:

sharing the list of identifiers of software updates blacklisted by the first node with the one or more neighbor nodes.

20. The system according to claim 15 , wherein nodes of the plurality of nodes are designated as members of the group of nodes by the cloud-based system.

21. The system according to claim 15 , wherein the plurality of nodes comprises a plurality of fixed nodes at known geographic locations and a plurality of mobile nodes located in respective vehicles operating in a geographic area served by the wireless network.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2024
From: VENIAM, INC.
To: NEXAR, LTD.
Reel/Frame 067023/0866 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2019
From: BRAGA AMEIXIEIRA, CARLOS EDUARDO; PEREIRA CABRAL, HENRIQUE MANUEL
To: VENIAM, INC.
Reel/Frame 048722/0232 →
Continuity (2)
Provisional Application 62376955 · Aug 19, 2016
Related Publication 20180052681A1 · Feb 22, 2018
Cited By (1)
US 12,384,410