System and method for incremental software installation
First Claim
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.
21 Assignments
0 Petitions
Accused Products
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.
37 Citations
20 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
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. - View Dependent Claims (11, 12, 13, 14)
-
-
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. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification