IP Library › Granted Patent US 9,552,201
Granted Patent B2
US 9,552,201 · App. 13/222,392 · Granted Jan 24, 2017

System and method for incremental software installation

Inventors: Arn Close Hyndman (Ottawa, CA); Gordon Frederick Walls (Nepean, CA)
Assignee: Avaya Inc.
G06F8/68
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,552,201
App. No.
13/222,392
Filed
Aug 31, 2011
Granted
Jan 24, 2017
Kind
B2
Art Unit
2197
USPC
717/169
Abstract

Disclosed herein are systems, methods, and non-transitory computer-readable storage media for performing incremental software installations. The system identifies a set of files associated with one or more software programs. Each file can be a component of a software program, or any file accessed by the software program or system when the software program is executed. The system receives a list of files associated with a software version that is not installed on the system. The system determines the differences between the set of files and the list of files, and receives a missing file from the list of files based on the differences. Finally, the system builds the software version on the system using the set of files and the missing file. In building the software version, the system does not assume a linear progression of updates and is able to reuse existing files to create nonlinear variations of software.

Claims (42)

1. A method comprising:

identifying, by a target device of a software installation, a first file and a second file that are stored on the target device, wherein the first file is required to execute a first software program previously installed on the target device and the second file is required to execute a second software program previously installed on the target device;

receiving, by the target device, a list of files that are required to execute a third software program on the target device, the list of files comprising the first file, the second file, and a third file;

generating, by the target device during runtime, a unique identifier for each of the first file, second file, and third file, wherein the unique identifier is generated using a hash function applied to contents of the first file, second file, and third file to generate a first unique identifier, a second unique identifier, and a third unique identifier, respectively;

determining, by the target device, whether files included in the list of files are present on the device to yield a determination, wherein the determination includes an analysis of the first unique identifier, second unique identifier, and third unique identifier;

based on the determination, receiving the third file at the target device; and

building, by the target device, the third software program on the target device using the first file, the second file, and the third file.

2. The method of claim 1 , wherein the first file is not required to execute the second software program and the second file is not required to execute the first software program.

3. The method of claim 1 , wherein the list of files further comprises a fourth file, wherein the fourth file is required to execute the first software program and the second software program.

4. The method of claim 1 , wherein determining whether the files included in the list of files are present on the target device comprises comparing the first unique identifier, the second unique identifier, and third unique identifier with identifiers contained in the list of files.

5. The method of claim 1 , wherein the hash function comprises a cryptographic hash function.

6. The method of claim 1 , further comprising:

digitally signing the first unique identifier, the second unique identifier, and the third unique identifier with a key.

7. The method of claim 1 , further comprising receiving, from an incremental installer object, a determination that the third software program is required at the target device.

8. The method of claim 1 , wherein the third file is received from a second device having transmitted the third file in a manner resistant to tampering.

9. The method of claim 1 , further comprising:

using the hash function to further ensure file integrity of the first file, the second file, and the third file.

10. A system comprising:

a processor; and

a non-transitory computer-readable storage medium storing instructions configured to when executed by the processor, cause the processor to perform an incremental software installation on the system:

accessing a first file and a second file that are stored at the system, wherein the first file is required to execute a first software program previously installed on the system and the second file is required to execute a second software program previously installed on the system;

receiving a list of files that are required to execute a third software program, the list comprising the first file, the second file, and a third file;

generating, during runtime, a unique identifier for each of the first file, second file, and third file, wherein the unique identifier is generated using a hash function applied to contents of the first file, second file, and third file to generate a first unique identifier, a second unique identifier, and a third unique identifier, respectively;

determining whether files included in the list of files are present on the device to yield a determination, wherein the determination includes an analysis of the first unique identifier, second unique identifier, and third unique identifier;

based on the difference, receiving the third file at the system; and

building the third software program on the system using the first file, the second file, and the third file.

11. The system of claim 10 , wherein the hash function comprises a cryptographic hash function.

12. The system of claim 11 , wherein the first unique identifier, the second unique identifier, and the third unique identifier are further digitally signed with a key.

13. The system of claim 10 , wherein the contents upon which the hash function is applied includes portions of the first file, second file, and third file that are relevant to use for execution of the first file, second file, and third file and wherein the contents upon which the hash function is applied excludes portions of the first file, the second file, and the third file that change from build to build.

14. The system of claim 10 , further comprising deleting one file from the system based on a least recently used basis.

15. A non-transitory computer-readable storage device storing instructions which, when executed by a processor, cause the processor to perform an incremental software installation on a device by:

identifying, by the device, a first file and a second file that are stored on the device, wherein the first file is required to execute a first software program previously installed on the device and the second file is required to execute a second software program previously installed on the device;

receiving, by the device, a list of files that are required to execute a third software program, the list of files comprising the first file, the second file, and a third file;

generating, by the device during runtime, a unique identifier for each of the first file, second file, and third file, wherein the unique identifier is generated using a hash function applied to contents of the first file, second file, and third file to generate a first unique identifier, a second unique identifier, and a third unique identifier, respectively;

determining, by the device, whether files included in the list of files are present on the device to yield a determination, wherein the determination includes an analysis of the first unique identifier, second unique identifier, and third unique identifier;

based on the determination, receiving the third file at the device; and

building, by the device, the third software program at the device using the first file, the second file, and the third file.

16. The non-transitory computer-readable storage device of claim 15 , wherein the third file is received from a second device that transmitted the third file using data compression.

17. The non-transitory computer-readable storage device of claim 15 , wherein the third file is received using multithreading communications with overlapped decompression.

18. The non-transitory computer-readable storage device of claim 15 , wherein determining whether the files included in the list of files are present on the device comprises comparing the first unique identifier, the second unique identifier, and third unique identifier with identifiers contained in the list of files.

19. The non-transitory computer-readable storage device of claim 15 , wherein the first file is not required to execute the second software program and the second file is not required to execute the first software program.

20. The non-transitory computer-readable storage device of claim 15 , wherein the list of files further comprises a fourth file, wherein the fourth file is required to execute the first software program and the second software program.

Assignments (21)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2024
From: AVAYA LLC
To: ARLINGTON TECHNOLOGIES, LLC
Reel/Frame 067022/0780 →
INTELLECTUAL PROPERTY RELEASE AND REASSIGNMENT Recorded Mar 25, 2024
From: CITIBANK, N.A.
To: AVAYA LLC; AVAYA MANAGEMENT L.P.
Reel/Frame 066894/0117 →
INTELLECTUAL PROPERTY RELEASE AND REASSIGNMENT Recorded Mar 25, 2024
From: WILMINGTON SAVINGS FUND SOCIETY, FSB
To: AVAYA LLC; AVAYA MANAGEMENT L.P.
Reel/Frame 066894/0227 →
(SECURITY INTEREST) GRANTOR'S NAME CHANGE Recorded Sep 21, 2023
From: AVAYA INC.
To: AVAYA LLC
Reel/Frame 065019/0231 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 045034/0001) Recorded May 18, 2023
From: GOLDMAN SACHS BANK USA., AS COLLATERAL AGENT
To: AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; ZANG, INC. (FORMER NAME OF AVAYA CLOUD INC.); HYPERQUALITY, INC.; HYPERQUALITY II, LLC; CAAS TECHNOLOGIES, LLC; AVAYA MANAGEMENT L.P.
Reel/Frame 063779/0622 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 53955/0436) Recorded May 18, 2023
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063705/0023 →
RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 61087/0386) Recorded May 18, 2023
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063690/0359 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded May 4, 2023
From: AVAYA INC.; AVAYA MANAGEMENT L.P.; INTELLISIST, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 063542/0662 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded May 3, 2023
From: AVAYA MANAGEMENT L.P.; AVAYA INC.; INTELLISIST, INC.; KNOAHSOFT INC.
To: WILMINGTON SAVINGS FUND SOCIETY, FSB [COLLATERAL AGENT]
Reel/Frame 063742/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS AT REEL 45124/FRAME 0026 Recorded Apr 26, 2023
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: AVAYA HOLDINGS CORP.; AVAYA INC.; AVAYA MANAGEMENT L.P.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
Reel/Frame 063457/0001 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Aug 5, 2022
From: AVAYA INC.; INTELLISIST, INC.; AVAYA MANAGEMENT L.P.; AVAYA CABINET SOLUTIONS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 061087/0386 →
SECURITY INTEREST Recorded Sep 25, 2020
From: AVAYA INC.; AVAYA MANAGEMENT L.P.; INTELLISIST, INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 053955/0436 →
SECURITY INTEREST Recorded Jan 23, 2018
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; ZANG, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 045124/0026 →
SECURITY INTEREST Recorded Jan 10, 2018
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS LLC; OCTEL COMMUNICATIONS LLC; VPNET TECHNOLOGIES, INC.; ZANG, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 045034/0001 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 029608/0256 Recorded Dec 15, 2017
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVAYA INC.
Reel/Frame 044891/0801 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 030083/0639 Recorded Dec 15, 2017
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVAYA INC.
Reel/Frame 045012/0666 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 041576/0001 Recorded Dec 15, 2017
From: CITIBANK, N.A.
To: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS INC.; OCTEL COMMUNICATIONS LLC (FORMERLY KNOWN AS OCTEL COMMUNICATIONS CORPORATION); VPNET TECHNOLOGIES, INC.
Reel/Frame 044893/0531 →
SECURITY INTEREST Recorded Jan 27, 2017
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS INC.; OCTEL COMMUNICATIONS CORPORATION; VPNET TECHNOLOGIES, INC.
To: CITIBANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 041576/0001 →
SECURITY AGREEMENT Recorded Mar 13, 2013
From: AVAYA, INC.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., THE
Reel/Frame 030083/0639 →
SECURITY AGREEMENT Recorded Jan 10, 2013
From: AVAYA, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 029608/0256 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2011
From: HYNDMAN, ARN CLOSE; WALLS, GORDON FREDERICK
To: AVAYA INC.
Reel/Frame 026838/0186 →
Continuity (1)
Related Publication 20130055231A1 · Feb 28, 2013