US 7,458,073 B1
Development and build environment for packaged software delivery
Glen Darling, San Jose, Calif. (US); Matthew Balint, San Jose, Calif. (US); Badari Kakumani, San Jose, Calif. (US); and Mala Devlin, San Jose, Calif. (US)
Assigned to Cisco Technology, Inc., San Jose, Calif. (US)
Filed on Dec. 03, 2003, as Appl. No. 10/728,370.
Application 10/728370 is a continuation of application No. 10/727099, filed on Dec. 02, 2003.
Int. Cl. G06F 9/44 (2006.01); G06F 9/45 (2006.01); G06F 15/177 (2006.01)
U.S. Cl. 717—168  [717/122; 717/163; 717/167; 717/171; 717/172; 719/331] 31 Claims
OG exemplary drawing
 
1. A method of a build environment for packaged software delivery in a distributed network of nodes, the method comprising the computer-implemented steps of:
the build environment compiling source code files into one or more executable file modules;
wherein each of the one or more modules contains an image for a process or a dynamically linked library (DLL);
the build environment creating a software package that comprises the one or more modules, wherein the software package is delivered to the nodes in the distributed network;
wherein the software package is created based on at least one of a feature, characteristic, or purpose;
the build environment creating metadata for a first module, of the one or more modules, that includes any module information such as the first module's: binary signature, name, directory path, and characteristics, wherein the first module provides and uses at least one application program interface (API);
the build environment gathering API dependency information for the first module by
(a) receiving a list of dependent modules for a given process or DLL of the first module;
(b) storing, in the metadata of the first module, dependency information for the dependent modules in the list, wherein the dependency information includes API names and versions that the process or DLL depends on;
(c) collecting additional dependency information from one or more module specifications that are separate from the list of dependent modules, wherein the additional dependency information includes API names and versions that the process or DLL depends on; and
(d) storing the additional dependency information in the metadata of the first module; and
the build environment inserting the metadata of the first module into the software package.