APPARATUS AND METHOD FOR GENERATING A SOFTWARE DEPENDENCY MAP
First Claim
1. A method for altering an existing configuration of a first software functionality on a client device to install a second software functionality comprising:
- receiving a request to install a second software functionality on a client device;
receiving a software manifest describing a plurality of software files residing on the client device;
accessing a software installation map comprising a plurality of software elements representing at least the plurality of software files described in the software manifest, a plurality of software files for installing the second software functionality, and a plurality of dependency pointers representing dependencies between the software files;
analyzing the software installation map to determine a first software installation route for installing the second software functionality, the software installation route comprising;
the plurality of software files for installing the second software functionality, the plurality of software files including at least one existing software file associated with the first software functionality to be altered for installation of the second software functionality, andan installation order for installing the plurality of software files; and
providing the first software installation route to the client device to alter the first software functionality and install the second software functionality.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for generating a software installation map, also referred to as a dependency map, that involves receiving a first software package comprising at least a first software file and a second software file. The first software file is dependent on the second software file. The method further involves generating a first software element representing the first software file and generating a second software element representing the second software file. The method involves generating a first dependency pointer representing the dependency between the first software file and the second software file. Finally, the software elements are provided in an installation map, and the process repeats for each software file in the first software package.
339 Citations
242 Claims
-
1. A method for altering an existing configuration of a first software functionality on a client device to install a second software functionality comprising:
-
receiving a request to install a second software functionality on a client device; receiving a software manifest describing a plurality of software files residing on the client device; accessing a software installation map comprising a plurality of software elements representing at least the plurality of software files described in the software manifest, a plurality of software files for installing the second software functionality, and a plurality of dependency pointers representing dependencies between the software files; analyzing the software installation map to determine a first software installation route for installing the second software functionality, the software installation route comprising; the plurality of software files for installing the second software functionality, the plurality of software files including at least one existing software file associated with the first software functionality to be altered for installation of the second software functionality, and an installation order for installing the plurality of software files; and providing the first software installation route to the client device to alter the first software functionality and install the second software functionality. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 19)
-
-
11. A method for receiving instructions for installing a second software functionality on a client device with an existing first software functionality comprising:
-
providing an installation request for a second software functionality wherein a first software functionality currently resides on a client device; providing a software manifest describing a plurality of software files residing on the client device and associated with at least the first software functionality; and receiving a software installation route comprising; a plurality of software files for installing the second software functionality, the plurality of software files including at least one software file associated with the first software functionality to be altered for installation of the second software functionality; and an installation order for installing the plurality of software files. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
20. A software management system for managing a plurality of software installation maps, comprising:
-
a first module configured for hosting a first software installation map, the first software installation map comprising; a first plurality of software elements representing a first plurality of software files; a first plurality of dependency pointers representing a plurality of dependencies between the first plurality of software files; a second module configured for hosting a second software installation map, the second software installation map configured to communicate with the first software installation map to collectively define a virtual software installation map, the second software installation map comprising; a second plurality of software elements representing a second plurality of software files; and a second plurality of dependency pointers representing a plurality of dependencies between the second plurality of software files. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. A method for managing a plurality of software installation maps:
-
receiving a request for installing a first software functionality on a client device wherein the first software functionality comprises a first software file referenced in a first software installation map and a second software file referenced in a second software installation map; combining the first installation map and the second installation map into a virtual software installation map; generating a software installation route from the virtual software installation map, wherein the software installation route includes the first software file from the first installation map and the second file from the second software installation map; and providing the software installation route to the client device. - View Dependent Claims (31, 32, 33, 34, 35, 36, 37, 38, 39)
-
-
40. A system for substantially duplicating a software configuration from a first computing system to at least a second computing system comprising:
-
a software installation map configured to receive a source software manifest reflecting a source software configuration describing a plurality of source software files residing on a source client; the software installation map further configured to generate a first software installation route describing a plurality of software files and associated dependencies, the first software installation route being a function of the source software manifest; and the software installation map further configured to provide the first software installation route to a target client, the first route providing an identification of software files to substantially duplicate the source software configuration of the source client on the target client. - View Dependent Claims (41, 42, 43, 44, 45, 46, 47, 48)
-
-
49. A method for substantially duplicating a software configuration from a first computing system to at least a second computing system comprising:
-
receiving a request for duplicating a software configuration from a source client to a target client, the source client having a source software manifest listing the source software files residing on the source client and the target client having a target software load listing the target software files residing on the target client; receiving the source software manifest; generating a first software installation route based on the source software manifest, the first software installation route generated from a software installation map; and providing the first software installation route to the target client. - View Dependent Claims (50, 51, 52, 53, 54, 55, 56, 57)
-
-
58. A system for managing software installation errors comprising:
-
a service provider module for hosting a software installation map, the software installation map comprising; a plurality of software elements representing a plurality of software files; a plurality of dependency pointers representing a plurality of dependencies between the plurality of software files; at least one software installation route describing a subset of the plurality of software files combinable to represent at least one software functionality; the service provider configured to provide the installation route to a client device to install the subset of the plurality of software files; and an error analysis module in communication with the service provider module, the error analysis module configured to analyze an error message received from the client device in association with installation of the subset the plurality of software files. - View Dependent Claims (59, 60, 61, 62, 63)
-
-
64. A method for managing software installation errors comprising:
-
providing a software installation route to a client device for installing a software functionality; receiving an error string associated with the software installation route; parsing the error string to determine a cause of the error; associating the received error with a software element associated with the error; and associating the received error with the software installation route used for installing the software functionality. - View Dependent Claims (65, 66, 67, 68, 69, 70, 71, 72, 73, 74)
-
-
75. A method for transmitting software installation errors, comprising:
-
upon a request for installing a software functionality, receiving a software installation route from a service provider module, the software installation route providing at least one software file for installing the software functionality; installing the at least one software file based on the software installation route on a client device; receiving an installation error during installation of the software installation route; and transmitting the installation error to the service provider module. - View Dependent Claims (76, 77)
-
-
78. A method for returning a software configuration on a computing device to a previous state comprising:
-
receiving a request for returning a client device software configuration to a previous state; comparing a previous state software manifest comprising a list of a plurality of software files residing on the client device during the previous state with a software installation map to identify software elements within the map associated with the list of the plurality of software files residing on the client device during the previous state; generating a previous state installation route describing at least a portion of the software elements within the map and associated software files for returning the client device to the previous state; and providing the previous state installation route to the computing device. - View Dependent Claims (79, 80, 81, 82, 83, 84, 85, 86, 87, 88)
-
-
89. A method for returning a software configuration of a computing device to a previous state comprising;
-
requesting a rollback of a computing device software configuration to a configuration as described in a previous software manifest; providing the previous software manifest to a software installation map, the previous software manifest describing a listing of each software file and associated version residing on the computing device at the time of the previous software manifest; comparing the previous software manifest with a current software manifest of the computing device to generate a list of differences between the previous software manifest and the current software manifest; providing the list of differences to the software installation map; receiving a previous state installation route describing software files and an associated version for returning the computing device to the previous software configuration at the time of the previous state; and installing the software files on the computing device. - View Dependent Claims (90, 91, 92, 93, 94, 95, 96, 97)
-
-
98. A method for installing software on a computing device comprising:
-
receiving a first software installation request to install a first software functionality; accessing a software installation map comprising; a plurality of software elements representing a plurality of software files, a subset of the plurality of software elements associated with the first software functionality; a plurality of dependency pointers identifying functional dependencies between the plurality of software files; determining at least one installation route for installing the first software functionality, the at least one installation route identifying the subset of the plurality of software elements; and providing the installation route to a computing device. - View Dependent Claims (99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114)
-
-
115. A method for installing software on a computing device comprising:
-
transmitting a software installation request for installing a first software functionality; receiving at least one installation route from a software installation map, the installation route identifying; a plurality of software elements for installing the first software functionality, each software element having an associated software file; an installation order for installing the software files; a confidence factor associated with the installation route, the confidence factor representing an estimate of whether the installation route will provide for a successful installation; receiving the software files for installing the first software functionality, the plurality of software files associated with the at least one installation route; and installing the software files to obtain the first software functionality. - View Dependent Claims (116, 117, 118, 119)
-
-
120. A method for generating dependencies within a software installation map comprising:
-
creating a first software element in a software installation map, wherein the first software element represents a first software file; creating a second software element in the software installation map, wherein the second software element represents a second software file; analyzing a first software package being the source of the first software file and the second software file to identify a dependency between the first software file and the second software file; and defining a first dependency pointer within the software installation map, the first dependency pointer representing the dependency from the first software file to the second software file. - View Dependent Claims (121, 122, 123, 124, 125, 126, 127, 128, 129)
-
-
130. An apparatus for generating dependencies within a software installation map configured for performing the operations of:
-
creating a first software element in a software installation map, wherein the first software element represents a first software file; creating a second software element in the software installation map, wherein the second software element represents a second software file; analyzing a first software package being the source of the first software file and the second software file to identify a dependency between the first software file and the second software file; and defining a first dependency pointer within the software installation map, the first dependency pointer representing the dependency from the first software file to the second software file. - View Dependent Claims (131, 132, 133, 134, 135, 136, 137, 138, 139)
-
-
140. A method for automating software installations accounting for an installation policy, the method comprising:
-
defining a client installation policy for a client device; transmitting a software installation request for installing a first software functionality; receiving a software installation route from a software installation map, the software installation route describes a plurality of software files for installing the first software functionality, the software installation route comprising; a confidence factor representing an indication of previous installation success based on the software installation route; a route installation policy; and installing the first software functionality based on a combination of the client installation policy and the route installation policy. - View Dependent Claims (141, 142, 143, 144, 145, 146, 147, 148, 149)
-
-
150. A method for providing a software installation accounting for an installation policy comprising:
-
maintaining a software installation map comprising; a plurality of software elements representing a plurality of software files; a plurality of dependency pointers representing dependencies between each of the plurality of software files; at least one software installation route for installing a first software functionality, the installation route including a subset of the plurality of software elements and having a route installation policy defining a level of manual interaction suggested for installing the software functionality; receiving a request for installing the first software functionality from a client device; and providing the first software installation route to the client device. - View Dependent Claims (151, 152, 153, 154, 155, 156, 157, 158, 159)
-
-
160. A software run-time error detection system comprising:
-
an error receiving module residing on a server device, the error receiving module to receive run-time error messages from a software monitoring agent residing on a client device, the software monitoring agent configured to detect run-time errors associated with at least one software functionality installed on the client device; and a route manager residing on the server device, the route manager in communication with the error receiving module, the route manager further configured to modify a confidence factor associate with at least one software installation route defined in a software installation map, the software installation route defining a plurality of software elements associated with the software functionality installed on the client device. - View Dependent Claims (161, 162, 163, 164, 165, 166, 167, 168, 169)
-
-
170. A method for monitoring software run-time errors on a client device comprising:
-
receiving a software monitoring agent on the client device; configuring the software agent to detect at least one type of run-time error occurring on the client device; monitoring the client device for an occurrence of the at least one type of run-time error; and providing at least one error message and a software manifest to a route manager, the software manifest listing a plurality of software files residing on the client device. - View Dependent Claims (171, 172, 173, 174, 175, 176, 177, 178, 179)
-
-
180. A method for providing information to assess a contemplated software installation comprising:
-
receiving a request for assessing a contemplated installation of a first software functionality on a client device; receiving a software manifest comprising a plurality of software files residing on the client device; accessing an existing software installation map to determine a plurality of installation files for assessing the installation and to identify a plurality of dependencies between the plurality of installation files; generating at least one new software installation route describing the plurality of installation files and their dependencies for assessing the installation; comparing the at least one new software installation route against at least one existing and substantially similar software installation route residing in the software installation map to provide a new confidence factor associated with the at least one new software installation route based on an existing confidence factor of the at least one existing software installation routes. - View Dependent Claims (181, 182, 183, 184, 185, 186, 187, 188)
-
-
189. A method for validating and repairing a software installation comprising:
-
installing a first software file on a client device wherein the first software file is a subset of an installation of a first software functionality, the first software file further having at least one dependency on at least one dependent software file presumed to reside on the client device; determining whether the at least one dependent software file resides on the client device; and installing the at least one dependent software file. - View Dependent Claims (190, 191, 192, 193, 194, 195, 196, 197)
-
-
198. An apparatus for validating and repairing a software installation comprising:
-
a software agent residing on a client device, the software agent in communication with a software installation map residing on a server device;
the software agent configured to;install a first software file on the client device received form the software installation map, the first software file is a subset of an installation of a first software functionality, the first software file further having at least one dependency on at least one dependent software file presumed to reside on the client device; determine whether the at least one dependent software file resides on the client device; request the at least one dependent software file from the software installation map; and install the at least one dependent software file. - View Dependent Claims (199, 200, 201, 202, 203, 204, 205)
-
-
206. A method for maintaining a software repository of software files used for installing at least a first software functionality comprising:
-
maintaining a first software application within a primary storage facility of the software repository, the first software application comprising a plurality of software files wherein each software file is represented by a plurality of software elements maintained in a software installation map; updating a usage factor of a first software element associated with a first software file from the plurality of software files, the usage factor being a function of a number of times the first software file is installed during a first time period; and moving the first software file from the primary storage facility of the software repository to a secondary storage facility as a function of the usage factor. - View Dependent Claims (207, 208, 209, 210, 211, 212, 213, 214, 215, 216)
-
-
217. A method for maintaining a software repository of software files used for installing at least a first software functionality comprising:
-
maintaining a first software application within a primary storage facility of the software repository, the first software application comprising a plurality of software files wherein each software file is represented by a plurality of software elements maintained in a software installation map, wherein each software element maintained in the software installation map has at least one associated dependency and a confidence factor associated with the dependency; updating an aging factor of a first software element associated with a first software file from the plurality of software files, the aging factor being a function of at least one of a number of times the first software file is installed during a first time period and the confidence factor; and moving the first software file from the primary storage facility of the software repository to a secondary storage facility as a function of the aging factor. - View Dependent Claims (218, 219, 220, 221, 222, 223)
-
-
224. A system for maintaining a software warehouse of software files used for installing at least a first software functionality used for installing at least a first software functionality comprising:
-
a first storage facility for hosting a plurality of software files wherein each of the plurality of software files are represented by a software element maintained on a software installation map, wherein each software element maintained in the software installation map has at least one associated dependency and a confidence factor associated with the dependency; an aging module configured to monitor the plurality of software files and age a software file as function of at least one of a number of times the first software file is installed during a first time period and the confidence factor; and a second storage facility in communication with the first storage facility, the second storage facility for receiving from the first storage facility and hosting a plurality of software files when the age of the software file meets a threshold. - View Dependent Claims (225)
-
-
226. A method for generating a software installation map comprising:
-
receiving a first software package comprising at least a first software file and a second software file, the first software file being dependent on the second software file; generating a first software element representing the first software file; generating a second software element representing the second software file; and generating a first dependency pointer representing the dependency between the first software file and the second software file. - View Dependent Claims (227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242)
-
Specification