WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Automatic computer upgrading    
United States Patent5960189   
Link to this pagehttp://www.wikipatents.com/5960189.html
Inventor(s)Stupek, Jr.; Richard A. (Houston, TX), Shaffer; David Scott (Cypress, TX), Jones; Curtis R. (Cypress, TX), Davis; Steve (Houston, TX), Justice, Jr.; William D. (Houston, TX)
AbstractA method for use in upgrading a resource of a computer from an existing version of the resource to a later version of the resource. The method includes the steps of (a) digitally storing upgrade information which identifies the later version and describes features of the later version relative to one or more earlier versions of the resource, (b) digitally storing in the computer information identifying the existing version, by computer, automatically determining which of the earlier versions is the existing version, and (c) based on the results of the comparing step, automatically determining, or displaying to a user at least some of the upgrade information to aid the user in determining, whether to perform an upgrade. The upgrade information may be stored on a portable medium along with copies of the resources and the upgrade information may include instructions, in accordance with a predefined common syntax, for installing each of the resources.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5960189
Automatic computer upgrading - US Patent 5960189 Drawing
Automatic computer upgrading
Inventor     Stupek, Jr.; Richard A. (Houston, TX) , Shaffer; David Scott (Cypress, TX) , Jones; Curtis R. (Cypress, TX) , Davis; Steve (Houston, TX) , Justice, Jr.; William D. (Houston, TX)
Owner/Assignee     Compaq Computer Corporation (Houston, TX)
Patent assignment
All assignments
Publication Date     September 28, 1999
Application Number     09/076,303
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     May 11, 1998
US Classification     717/169 703/21 709/221 717/173 717/178
Int'l Classification    
Examiner     Teska; Kevin J.
Assistant Examiner     Frejd; Russell W.
Attorney/Law Firm     Sharp, Comfort & Merrett, P.C.
Address
Parent Case     Continuation of prior application Ser. No.: 08/768,215 filed Dec. 17, 1996, now U.S. Pat. No. 5,809,787; which is a continuation of Ser. No. 08/447,980 filed May 23, 1995, now U.S. Pat. No. 5,588,143; which is a continuation of Ser. No. 08/303,173 filed Sep. 8, 1994, now U.S. Pat. No. 5,586,304.
Priority Data    
USPTO Field of Search     395/500 395/575 395/600 395/700 395/500.43 395/500.42 395/712 340/825.22 709/221 380/4 714/38
Patent Tags     automatic computer upgrading
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5588143
Stupek, Jr.
703/20
Dec,1996

[0 after 0 votes]
5586304
Stupek, Jr.
717/170
Dec,1996

[0 after 0 votes]
5485601
Ching

Jan,1996

[0 after 0 votes]
5450589
Maebayashi
717/170
Sep,1995

[0 after 0 votes]
5423023
Batch
717/117
Jun,1995

[0 after 0 votes]
5421006
Jablon
714/36
May,1995

[0 after 0 votes]
5418524
Fennell
340/7.41
May,1995

[0 after 0 votes]
5367686
Fisher
717/174
Nov,1994

[0 after 0 votes]
5210854
Beaverton
717/174
May,1993

[0 after 0 votes]
5155837
Liu
709/221
Oct,1992

[0 after 0 votes]
5155847
Kirouac
709/221
Oct,1992

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. A computer system comprising:

a storage device including one or more upgradeable computer programs stored therein;

the computer system executing software to facilitate updating of at least one upgradeable computer program of the upgradeable computer programs stored in the storage device, the software executing instructions performing the operations of:

determining whether an upgrade is available for the at least one upgradeable computer program; and

when an upgrade is available for the at least one upgradeable computer program, automatically assembling, by computer, information about whether or not the at least one upgradeable computer program should be upgraded.

2. The system of claim 1 wherein the operation of automatically assembling information comprises assembling information that assists a computer system user in determining whether or not to upgrade the at least one upgradeable computer program.

3. The system of claim 1 wherein the computer system comprises a server.

4. The system of claim 1 wherein the software further executes instructions performing the operation of storing information identifying features of a replacement version relative to another version of a resource and storing instructions for automatically installing the replacement version.

5. The system of claim 1 wherein the software further executes instructions performing the operation of automatically determining the importance of said upgrade.

6. The system of claim 1 wherein the software further executes instructions performing the operation of automatically providing information to a computer system user to determine the importance of the upgrade.

7. The system of claim 1 wherein the software further executes instructions performing the operation of automatically installing upgrades of sufficient importance.

8. The system of claim 1 wherein the operation of determining whether an upgrade is available comprises:

determining which upgradeable computer programs are included on the computer system;

storing information identifying the version of each of the upgradeable computer programs; and

determining if any a replacement is available for any of the upgradeable computer programs.

9. The system of claim 1 wherein the software further executes instructions performing the operations of:

causing an old version of the at least one upgradeable computer program to be saved to the storage device; and

causing the at least one upgradeable computer program to be updated.

10. The system of claim 9 wherein the software further executes instructions performing the operation causing the old version to be restored.

11. The system of claim 1 wherein the software further executes instructions which cause the at least one upgradeable computer program to be upgraded.

12. The system of claim 11 wherein the computer program is upgraded by retrieving an upgrade from a CD-ROM.

13. The system of claim 11 wherein the computer program is upgraded by retrieving an upgrade from an on-line service.

14. The system of claim 1 wherein the step of automatically assembling information comprises retrieving information about the upgrade from an on-line service.

15. The system of claim 14 wherein the step of automatically assembling information comprises retrieving information about the upgrade from a bulletin board service.

16. A computer system comprising:

a storage device including one or more upgradeable computer programs stored therein;

the computer system executing software to facilitate updating of at least one upgradeable computer program of the upgradeable computer programs stored in the storage device, the software executing instructions performing the operations of:

determining whether an upgrade is available for the at least one upgradeable computer program;

retrieving upgrade information from an on-line service; and

when an upgrade is available for the at least one upgradeable computer program, automatically assembling, by computer, information that assists a computer system user in determining whether or not to upgrade the at least one upgradeable computer program.

17. The system of claim 16 wherein the software further executes instructions which cause the at least one upgradeable computer program to be upgraded.

18. The system of claim 17 wherein the computer program is upgraded by retrieving an upgrade from the on-line service.

19. The system of claim 16 wherein the computer system comprises a server.

20. A computer system comprising:

a storage device including one or more upgradeable computer programs stored therein;

the computer system executing software to facilitate updating of at least one upgradeable computer program of the upgradeable computer programs stored in the storage device, the software executing instructions performing the operations of:

determining whether an upgrade is available for a computer system resource;

when an upgrade is available for a resource, assembling by computer information about whether or not the computer system should be upgraded; and

storing on a storage medium information identifying features of a replacement version relative to another version.

21. The system of claim 20 wherein the software further executes instructions performing the operation of automatically determining the importance of the replacement version.

22. The system of claim 20 wherein the software further executes instructions performing the operation of automatically installing upgrades of sufficient importance.

23. The system of claim 20 wherein the software further executes instructions performing the operation of automatically installing the replacement version.

24. A computer system comprising:

a storage device including one or more upgradeable computer programs stored therein;

the computer system executing software to facilitate updating of at least one upgradeable computer program of the upgradeable computer programs stored in the storage device, the software executing instructions performing the operations of:

determining whether an upgrade is available for a computer system resource;

when an upgrade is available for a resource, assembling by computer information about whether the computer system should be upgraded; and

automatically determining the importance of the upgrade.

25. The method of claim 24 wherein the software further executes instructions performing the operation of automatically installing upgrades of sufficient importance.

26. A computer system comprising:

a storage device including a number of upgradeable computer programs stored therein;

the computer system executing software to facilitate updating of at least one upgradeable computer program of the upgradeable computer programs stored in the storage device, the software executing instructions performing the operations of:

determining whether an upgrade is available for a computer system resource;

when an upgrade is available for a resource, assembling, by computer, information about whether the computer system should be upgraded; and

automatically providing information to a computer system user to determine the importance of the upgrade.

27. A computer system comprising:

a storage device including one or more upgradeable computer programs stored therein;

the computer system executing software to facilitate updating of at least one upgradeable computer program of the upgradeable computer programs stored in the storage device, the software executing instructions performing the operations of:

determining whether an upgrade is available for a computer system resource;

when an upgrade is available for a resource, assembling, by computer, information about whether the computer system should be upgraded; and

automatically installing upgrades of sufficient importance.

28. A computer system comprising:

a storage device including one or more upgradeable computer programs stored therein;

the computer system executing software to facilitate updating of at least one upgradeable computer program of the upgradeable computer programs stored in the storage device, the software executing instructions performing the operations of:

selecting a resource to be updated at the local computer;

assembling, by computer, information identifying features of a replacement version of the resource relative to another version;

saving an old version of the computer resource to a storage medium at the local computer;

coupling the computer to a remote computer; and

updating the resource from the old version to a new version by downloading the new version from the remote computer to the local computer.

29. The system of claim 28 wherein the software further executes instructions performing the operation of downgrading the computer resource from the new version back to the old version, the old version being accessed from the storage medium at the local computer.

30. The system of claim 29 wherein the software further executes instructions performing the operation of maintaining information about a plurality of resources available on the local computer.

31. The system of claim 30 wherein the information includes the name and version number of each piece of software on the local computer.

32. The system of claim 29 wherein the new version is downloaded from an on-line service.

33. The system of claim 32 wherein the on-line service comprises a bulletin board service.
 Description Submit all comments and votes
 


BACKGROUND

This invention relates to automatic computer upgrading.

The user of a computer system (e.g., a stand-alone PC or a network) is usually concerned with maintaining maximum utility and efficiency of system resources while at the same time minimizing the cost, in time, money and frustration, of maintaining the system. System resources, e.g., system firmware, software applications, operating systems (OS), OS drivers and system partition utilities, are frequently upgraded by the manufacturer. Therefore, to effectively balance system utility with the costs of the system, the user frequently would have to perform a detailed analysis of the available upgrades and the effect those upgrades would have on the user's system.

During such an analysis, the user would have to compare the version number of each system resource to that of its upgrade to determine whether or not an upgrade is available. When an upgrade is available, the user would have to understand the differences between the system version of the resource and the corresponding upgrade, as well as how these differences would affect (i.e., improve or diminish) the capabilities of the computer system.

Even when the user is able to determine with accuracy the benefits of an upgrade to the system, the user is almost never able to determine how an upgrade will impact a resource that is not upgraded. It is not uncommon for an upgrade to reduce the ability of a resource to properly function with another resource. In addition, upgrades often exist solely to repair hidden bugs which may not have surface on the user's system, a situation in which the user almost always ignores the upgrade until the bug is encountered, usually resulting in lost information.

Many resource manufacturers address some of these problems by making certain aspects of the upgrade determination easier for the user. The NetWare Management System by Novell inspects network loadable modules (NLMs) on a network server to determine the current version of the NLM, its most recent revision level, and the revision date. Thus, NMS not only tells the user which resources are currently on the system, but also provides information that allows the user to easily determine whether or not upgrades are available. Likewise, the Frye Utilities NetWare Management program provides the titles and version numbers of NLMs on the server. Manufacturers also usually provide descriptions of the changes made from one version of a resource to the next. Nevertheless, despite the availability of this type of information, the user, in general, either never upgrades or upgrades whether it is needed or not.

SUMMARY

In general, in one aspect, the invention features a method for use in upgrading a resource of a computer from an existing version of the resource to a later version of the resource. The method includes the steps of (a) digitally storing upgrade information which identifies the later version and describes features of the later version relative to one or more earlier versions of the resource, (b) digitally storing in the computer information identifying the existing version, by computer, automatically determining which of the earlier versions is the existing version, and (c) based on the results of the comparing step, automatically determining, or displaying to a user at least some of the upgrade information to aid the user in determining, whether to perform an upgrade.

Implementations of the invention include the following features. The upgrade information may be stored on a portable medium, the later version of the resource may also be stored on the portable medium, and the upgrade information may identify the location of the resource on the portable medium. The portable medium may be a CD-ROM, and may contain stored later versions of multiple resources, and upgrade information with respect to each of the resources.

The upgrade information may be stored in the form of a database, and may include instructions for installation of the resource. The installation instructions may be expressed in accordance with a predefined common syntax. The resource may include a complete standalone software package, or less than all of a complete standalone software package.

The upgrade may be automatically performed on a network server, or on a network client. In the latter case the upgrade may be performed via the network, or by automatically storing the later versions and installation instructions on a portable storage medium for manual installation on the client.

The upgrade information may include information concerning reasons for the later version, and an indication of the type of change from a prior version to the later version (e.g., feature enhancement, performance enhancement, or bug fix). The upgrade information also may include an indication of the importance of the change from the prior version to the later version, and information identifying other resources that must be upgraded before the resource may be upgraded.

In general, in another aspect, the invention features supplying later versions of resources for upgrading existing versions, by storing copies of the resources and upgrade information which identifies the later versions, describes features of the later versions relative to one or more earlier versions of the resource, and provides instructions, in accordance with a predefined common syntax, for installing each of the resources. The copies of the resources and the upgrade information may be stored on a portable storage medium or within an on-line service.

Among the advantages of the invention are the following. The invention automatically determines the availability of upgrades to resources on a computer system. The invention may also determine the importance of each of the upgrades. In addition, information regarding dependencies between upgrades is provided. As a result, the user can, with little effort, make an educated determination of which resources should and should not be upgraded at a particular time. Resources to be upgraded may be selected automatically, and the upgrades may be made automatically in a network environment or manually using automatically generated upgrade diskettes.

Other advantages and features will become apparent from the following description and from the claims.

DESCRIPTION

FIG. 1 is a functional block diagram of a network server and a server manager, including an automatic upgrade device.

FIG. 2 is a functional block diagram of a server and a server manager during an automatic upgrade.

FIG. 3 is a flow diagram for automatically updating resources on a network server.

FIG. 4 is a diagram of components of a management information base.

FIGS. 5A-5C are templates for records in an upgrade database.

FIG. 5D is a functional block diagram of components of an upgrade database.

FIG. 6 is a functional block diagram of an upgrade advisor.

FIGS. 7A-7B and 8 are flow diagrams for upgrade advising.

FIGS. 9 and 10 are screen shots of a graphical user interface for an upgrade advisor.

FIG. 11 is a functional block diagram of components of a client of the network server.

Referring to FIG. 1, a network server 1 provides network resources 3 to a network of client computers (not shown). Network resources include firmware, software applications, operating systems (OS), OS drivers and hardware drivers. A management information base (MIB) 5 within the server 1 maintains basic descriptive information about each of the resources 3 available on the server 1. Included in the MIB 5 are the name and version number of each piece of software, its location in the server, and the date and time of its release. The information in the MIB 5 ensures that the server 1 always has a current record of the resources 3 it provides to the network.

Upgrades 7 to the network resources 3 are provided to a server manager 2 by a distribution medium (not shown), such as a CD-ROM. The upgrades 7 may also be provided by an on-line service (not shown), such as a bulletin board service administered by a manufacturer of network resources. The basic units of the upgrades 7 are upgrade objects 8, each of which corresponds to an individually upgradable network resource 3. The upgrade objects are grouped into upgrade packages 6 which correspond to resource 3 groupings on the server. A package 6 may contain any number of upgrade objects 8 (i.e., may upgrade any number of individual network resources 3), including only a single object 8.

In addition to the resource upgrades 7, the CD-ROM contains an upgrade database 9, which stores information about each of the upgrade packages 6 (e.g., name and location of the package on the CD-ROM, description of the upgrades, and instructions for installation of the package to the server), and the individual upgrade objects 8 within each package 6. If the upgrades 7 are provided by an on-line service, the upgrade database 9 will also be provided by the service.

The server manager 2 oversees the network resources 3 stored on the server 1. An upgrade device 10 in the server manager 2 is responsible for automatically analyzing and executing the resource upgrades 7 available to the server 1. When the upgrades 7 become available to the network (e.g., by inserting the CD-ROM into the server manager drive, or by logging into the on-line service), an upgrade advisor 11 in the upgrade device 10 automatically analyzes each network resource 3 currently on the server 1 to determine the availability and necessity of the corresponding upgrade 7. When the analysis is complete, the upgrade advisor 11 presents a report and/or graphical display to the user. This output is in the form of upgrade recommendations, each supported by an explanation of the reasons for upgrade. The results may also be used to create upgrade diskettes.

To determine which upgrades 7 should be installed to the server, the upgrade advisor 11 retrieves information about the MIB 5 from a server database 13 located in the server manager. The server database 13 tells the upgrade advisor 11 the location of each piece of information contained in the MIB. The upgrade advisor 11 supplies the location information to a data retriever 15, which uses it to retrieve from the MIB 5 data (MIB data) about the network resources 3. The upgrade advisor 11 then retrieves upgrade information from the upgrade database 9 and performs two types of comparisons: a) whether or not a particular upgrade package corresponds to a resource on the server, and b) whether or not the version number of the upgrade package matches the version number of the corresponding network resource (i.e, whether or not the upgrade package represents a true upgrade for the existing network resource). If the upgrade applies to a resource on the server and if the upgraded and current versions of the network resource do not match, the upgrade advisor 11 uses additional information from the upgrade database 9 to analyze the level of severity of the upgrade, i.e., to determine the importance of the upgrade to the efficient operation of the server. The upgrade advisor is described in more detail below.

Referring also to FIGS. 2 through 4, the upgrade database may also contain information about a resource (e.g., a driver) which is not recognized by the server manager. In this situation, the upgrade advisor places information about the resource (e.g., name, version number) into a driver table 32 in the MIB 5. An agent 21 of the server manager located in the server uses this information to search for the resource (i.e., to see if the resource has been installed on the network). If so, the server manager creates entries for the resource in the server database.

When the upgrade advisor 11 and/or the user have selected 100 the network resources 3 that need to be upgraded, an upgrade installer 17 oversees the automatic installation of the packages to the server. At the outset, the appropriate upgrade packages 7 are retrieved 102 from the distribution medium (or the on-line service) and supplied 106 to a server upgrader 22 located in the upgrade installer 17. Installation instructions 20 are retrieved 104 from the database 9 and are supplied 106 to the server upgrader 22. The instructions are coded in a unique package scripting language (PSL), which can be read and executed at the time of installation. Rules of syntax for a preferred PSL are listed in the table below.

__________________________________________________________________________ Package Script Language __________________________________________________________________________ A package Script Language (PSL) is defined that should make is easier for package owners to develop installation scripts for their products. Commands The installer will look for a .PSL file and begin executing it. PSL commands are: MKDIR[.backslash.err] <director> COPY[.backslash.u][.backslash.err] <source><destination> DELETE[.backslash.err] <source><destination> RUN.sub.-- [os][.backslash.err] <executable>[ . . . parameter list . . . Where, .backslash.u - add the opposite of this command (or copy <destination><source>) to the UNDO.PSL file (see below) .backslash.err - on error, stop script processing and report a package failed status (run undo.psl and report failed in job status table).) source file to copy - can be any number of specifications: d: [.backslash.directory.backslash.] <filename> .backslash..backslash.server.backslash.share.backslash.[directory]<filenam e> SYSPART: [.backslash.directory.backslash.]<filename> destination for file - see specs for <x> os - defined as NT (WinNT), 02 (OS/2), SC (SCO UNIX), UW (UnixWare), and NW (NetWare). For COPY, any file attributes will be preserved but ignored (i.e., copying over a ReadOnly doesn't case an error). Section Headlines Each PSL is broken into sections designated by a section heading. There are four special section heading names that the script processor will look to execute. The headings are executed in this order: Main, EISA ID, OS, and User Defined. section is run on all machines section is executed if board with ID specified is installed. EISA ID is specified: CPQXXX where X can be an alphanumeric character or "?" to match any alphanumeric in that position. section should be run on machine if specified OS is running. a user defined section. It must be immediately followed by: executable should return 1 for execute remainder of section, or 0 for skip section. OS is defined as NT (WinNT), 02 (OS/2), SC (SCO UNIX), UW (UnixWare), and NW (NetWare). this section defines the <undo>.PSL file. The presence of this section causes the interpreter to create an <undo>. PSL file based on the naming. The [undo] section contains: filename=<undo>.psl - or the name of the undo file to be created, this text is added to the undo file untouched, the end of the undo section. __________________________________________________________________________

In the server upgrader 22, several upgrade packages 7 and the corresponding installation instructions 20 are grouped 108 into a "job" 18. Within each job 18, the installation instructions for every package are included in a control file 18a. The control file also includes a pre-appointed time at which the installation of the packages in the job should be carried out.

When the job 18 is ready to be installed to the target server, the server upgrader 22 connects 109 with the server through a login service 24 and then sends 110 the job 18, including the control file 18a, to a staging area 19. The staging area 19 may be in the target server, in the server manager, or anywhere else in the network capable of handling the deposit and retrieval of upgrade files. Within the staging area 19, each package is placed into a corresponding package directory 71, and the control file is stored separately. The server manager then notifies 112 the agent 21 that a job has been sent to the staging area 19. When the pre-appointed time arrives 114, the agent 21 executes 116 the instructions in the control file, thereby installing the packages from the package directories 71 to the target network resources 3. The agent then deletes 117 the control file from the staging area 19.

Before the packages are installed to the targets, the agent 21 may store 115 the older revision levels of the resources on a local hard disk 23. As a result, the user always has access to previous versions of the resources. Maintaining old versions of upgraded resources allows the user to downgrade the resource, if needed, in the future.

After the installation is complete, job status data 73 is generated 118 and temporarily stored 120 in a results directory 75 in the staging area 19. The agent 21 retrieves the job status data 73 from the results directory 75 and places 122 it into a job status table 34 in the MIB 5. A results manager 26 in the upgrade installer monitors the MIB 5 for the job status data 73 and retrieves 124 the data as soon as it appears. The results manager 26 then sends 125 the data to a history manager 28, which tracks the history of upgrades on the server. The history manager 28 is responsible for providing 126 the history information to the user (or to storage). The server upgrader 22 then cleans 128 the staging area of any extraneous information. Because a single copy of a package may be used to upgrade a resource on multiple servers (using multiple control files), the packages are left 130 in the staging area 19 by the server upgrader.

Referring to FIGS. 5A through 5C, the upgrade database actually consists of three databases: a "Package" database 25, a "Description" database 27, and a "How.sub.-- To" database 29. The Package database 25 contains the information which associates upgrade objects with each package, as well as the information needed to retrieve a package from the distribution medium (CD-ROM) and properly install the package to the server. For each upgrade package, the database maintains a unique package number 25a and a count 25b of the number of database records (i.e., upgrade objects) associated with the package. In addition, the version number 25c and the upgrade date 25d of the package are maintained. The Package database also maintains the name 25e of the package and the location 25f of the package on the CD-ROM (i.e., CD drive and directory name). To enable automatic installation of the package, the database contains the package script 25g (the installation instructions for the package). The database also contains information regarding the dependencies between the package and other upgrade objects or packages: child dependencies 25h are the upgrade objects associated with a package; sibling dependencies 25j are the packages upon which a package depends; and parent dependencies 25i are the packages or upgrade objects which together constitute a larger package. Finally, the database indicates whether or not the package can be selected by the user for upgrade and whether or not the package can be displayed to the user through a user interface