IP Library Granted Patent US 8,621,433
Granted Patent B2
US 8,621,433 · App. 11/384,586 · Granted Dec 31, 2013

Managing version information for software components

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 8,621,433
App. No.
11/384,586
Granted
Dec 31, 2013
Kind
B2
Abstract

A system manages version information for a group of software components by maintaining a version repository containing version information for all of the components. The system determines a baseline for the components, modifies data in the repository in connection with updating software components, and accesses the data in the repository to determine version information for the components. The system described herein also determines if a group of software components correspond to a particular baseline by maintaining baseline information in the version repository. The system obtains the particular baseline for the group of components, compares the version information for each of the components with a corresponding minimum version provided in connection with the baseline, and determines whether a group of software components correspond to the particular baseline.

Claims (48)

1. A method of managing information for software components of an integrated software program, the method comprising:

maintaining, on a computer running the integrated software program, a version repository containing version information for all of the software components of the integrated software program that are on the computer;

maintaining, in the version repository separately from the version information, baseline information for a set of baselines for the integrated software program, wherein the baseline information is received from a manufacturer of the integrated software program and each baseline in the set of baselines represents a minimum set of software components for the integrated software program and a minimum version number for each software component of the minimum set required by the manufacturer of the integrated software program to comply with each baseline;

modifying the version information in the repository in connection with updating at least one of the software components of the integrated software program that is on the computer;

accessing, from the version repository, the version information for the software components of the integrated software program that are on the computer following the updating of the integrated software program;

determining, based on the baseline information maintained in the version repository, whether each software component of the integrated system that is on the computer following the updating of the integrated program has a version number greater than or equal to a minimum version number of a corresponding software component of a minimum set of software components represented by a most recent baseline in the set of baselines; and

reporting, to a consumer process, a baseline of the integrated software program on the computer as a particular baseline in the set of baselines that is earlier than the most recent baseline when all of the software components of the integrated software program that are on the computer do not have a version number that is greater than or equal to the minimum version number of a corresponding software component of the minimum set of software components represented by the most recent baseline in the set of baselines.

2. A method, according to claim 1 , wherein the integrated software program is a computer operating system.

3. A method, according to claim 1 , wherein only trusted installation processes operating on the computer are allowed to modify data in the version repository.

4. A method, according to claim 3 , wherein any consumer process operating on the computer is allowed to obtain data from the version repository irrespective of trust level.

5. A method, according to claim 1 , wherein the version information is provided to a user application for display to a user.

6. A method, according to claim 1 , wherein accessing the version information in the version repository includes providing an index value that corresponds to specific software component version information.

7. A method, according to claim 6 , wherein an error code is received in response to attempting to access version information in the version repository using an index value that does not correspond to any software component of the integrated software program that is on the computer.

8. A computer-readable medium not consisting of a signal, the computer-readable medium storing computer-executable instructions that, when executed, cause a computer to perform a method of managing information for software components of an integrated software program, the method comprising:

maintaining, on the computer, a version repository containing version information for all of the software components of the integrated software program that are on the computer;

maintaining, in the version repository separately from the version information, baseline information for a set of baselines for the integrated software program, wherein the baseline information is received from a manufacturer of the integrated software program and each baseline in the set of baselines represents a minimum set of software components for the integrated software program and a minimum version number for each software component of the minimum set required by the manufacturer of the integrated software program to comply with each baseline;

modifying the version information in the repository in connection with updating at least one of the software components of the integrated software program that is on the computer;

accessing, from the version repository, the version information for the software components of the integrated software program that are on the computer following the updating of the integrated software program;

determining, based on the baseline information in the version repository, whether each software component of the integrated software program has a version number greater than or equal to a minimum version number of a corresponding software component of a minimum set of software components represented by a most recent baseline in the set of baselines; and

reporting, to a consumer process, a baseline of the integrated software program on the computer as a particular baseline in the set of baselines that is earlier than the most recent baseline when all of the software components of the integrated software program that are on the computer do not have a version number that is greater than or equal to the minimum version number of a corresponding software component of the minimum set of software components represented by the most recent baseline in the set of baselines.

9. A computer comprising:

a processor for executing computer executable instructions; and

memory storing computer executable instructions that, when executed by the processor, cause the computer to perform a method of managing information for software components of an integrated software program running on the computer, the method comprising:

maintaining, on the computer, a version repository containing version information for all of the software components of the integrated software program that are on the computer;

maintaining, in the version repository separately from the version information, baseline information for a set of baselines for the integrated software program, wherein the baseline information is received from a manufacturer of the integrated software program and each baseline in the set of baselines represents a minimum set of software components for the integrated software program and a minimum version number for each software component of the minimum set required by the manufacturer of the integrated software program to comply with each baseline;

modifying the version information in the repository in connection with updating at least one of the software components of the integrated software program that is on the computer;

accessing, from the version repository, the version information for the software components of the integrated software program that are on the computer following the updating of the integrated software program;

determining, based on the baseline information in the version repository, whether each software component of the integrated software program has a version number greater than or equal to a minimum version number of a corresponding software component of a minimum set of software components represented by a most recent baseline in the set of baselines; and

reporting, to a consumer process, a baseline of the integrated software program on the computer as a particular baseline in the set of baselines that is earlier than the most recent baseline when all of the software components of the integrated software program that are on the computer do not have a version number that is greater than or equal to the minimum version number of a corresponding software component of the minimum set of software components represented by the most recent baseline in the set of baselines.

10. A computer, according to claim 9 , wherein the method further comprises:

receiving baseline information for a new baseline for the integrated software program from the manufacturer of the integrated software program; and

updating the baseline information for the set of baselines for the integrated software program which is stored on the computer in the version repository.

11. A computer, according to claim 9 , wherein the integrated software program is a computer operating system.

12. A computer, according to claim 9 , wherein the version information is provided to a user application for display to a user.

13. A computer, according to claim 9 , wherein the version information in the version repository is accessed by providing an index value that corresponds to specific software component version information.

14. A computer, according to claim 13 , wherein an error code is received in response to attempting to access version information in the version repository using an index value that does not correspond to any software component of the integrated software program that is on the computer.

15. A method, according to claim 1 , further comprising:

reporting, to an installation process operating on the computer, that a particular software component on the computer is out-of-date when the particular software component has a version number less than the minimum version number of a corresponding software component of the minimum set represented by the most recent baseline in the set of baselines.

16. A method, according to claim 15 , further comprising:

updating, by the installation process, the particular software component to the minimum version number of the corresponding software component of the minimum set represented by the most recent baseline in the set of baselines.

17. A method, according to claim 1 , further comprising:

receiving baseline information for a new baseline for the integrated software program from the manufacturer of the integrated software program; and

updating the baseline information for the set of baselines for the integrated software program which is stored on the computer in the version repository.

18. A computer, according to claim 9 , wherein the method further comprises:

reporting, to an installation process operating on the computer, that a particular software component on the computer is out-of-date when the particular software component has a version number less than the minimum version number of a corresponding software component of the minimum set represented by the most recent baseline in the set of baselines; and

updating, by the installation process, the particular software component to the minimum version number of the corresponding software component of the minimum set represented by the most recent baseline in the set of baselines.

19. A method, according to claim 1 , wherein reporting the baseline of the integrated software program on the computer as the particular baseline is performed in response to receiving a request for a current baseline of the integrated software program on the computer from the consumer process.

20. A computer, according to claim 9 , wherein reporting the baseline of the integrated software program on the computer as the particular baseline is performed in response to receiving a request for a current baseline of the integrated software program on the computer from the consumer process.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2006
From: BACK, ALAN B.; HOLMES, JAMES AARON; NAYAR, MANOJ; CHANDRASHEKAR, SRIDHAR
To: MICROSOFT CORPORATION
Reel/Frame 017579/0506 →