IP Library Granted Patent US 7,448,033
Granted Patent B1
US 7,448,033 · App. 10/845,977 · Granted Nov 4, 2008

System and method for identifying changes made to a computer system due to software installation

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 7,448,033
App. No.
10/845,977
Granted
Nov 4, 2008
Kind
B1
Abstract

A method and apparatus identifies changes made to a computer system caused by the installation of software. The state of the computer system is recorded before the software is installed and, after the software is installed, the recorded state is compared against the state of the computer system. Changes are written into a manifest, which may be combined with any new or changed files and an installation program to produce a package which can be sent to another computer system for installation.

Claims (61)

1. A method of identifying changes made to a computer system resulting from installation of software, the method comprising:

for each of a first plurality of objects, recording at least one first state of the computer system prior to installation of the software;

for each of a second plurality of objects, recording at least one second state of the computer system, at least some of the objects in the first plurality corresponding to at least some of the objects in the second plurality, after the installation of the software;

comparing the at least one second state with the at least one first state, said comparing comprising comparing a reference count for each of at least one DLL file recorded in the first state with a reference count for each of the at least one DLL file recorded in the second state; and

producing a record of the changes responsive to the comparing step.

2. The method of claim 1 , wherein at least some of the objects comprise files and the recording the at least one first state step comprises:

allocating a plurality of the files on the computer system into a plurality of sets of the files; and

building at least one hierarchical structure for each of the sets of files allocated, each of the at least one hierarchical structure corresponding to a storage structure of the files in each set.

3. The method of claim 1 wherein the recording at least one second state and the comparing steps comprise:

recording a second state of a first object in the second plurality selected from a file and a link;

comparing the second state recorded with at least one the first state recorded;

discarding the second state; and

recording a second state of a second object in the second plurality after discarding step.

4. The method of claim 1 wherein the producing step comprises indicating an object in the second plurality and absent from the first plurality is added to the computer system.

5. The method of claim 1 wherein:

the comparing step comprises comparing at least one property of a first object in the first plurality with at least one property of a second object in the second plurality and corresponding to the first object; and

the producing step comprises indicating at least one selected from the first object and the second object is changed.

6. The method of claim 1 wherein the producing step comprises:

building an interim record of changes;

identifying at least one location specified in the interim record; and

building the record by substituting an alias of the at least one location in place of the at least one location.

7. The method of claim 1 , additionally comprising providing the record to a different computer system.

8. The method of claim 7 , wherein at least a plurality of the objects in the second plurality comprise files, the method additionally comprising providing at least one file corresponding to at least one of the file objects in the second plurality.

9. The method of claim 8 comprising the additional step of renaming at least one of the files provided.

10. The method of claim 9 wherein the renaming at least one of files step comprises computing a checksum.

11. A computer program product comprising a computer useable medium having computer readable program code embodied therein for identifying changes made to a computer system resulting from installation of software, the computer program product comprising:

computer readable program code devices configured to cause a computer to, for each of a first plurality of objects, record at least one first state of the computer system prior to installation of the software;

computer readable program code devices configured to cause a computer to, for each of a second plurality of objects, record at least one second state of the computer system, at least some of the objects in the first plurality corresponding to at least some of the objects in the second plurality, after the installation of the software;

computer readable program code devices configured to cause a computer to compare the at least one second state with the at least one first state, said comparing comprising comparing a reference count for each of at least one DLL file recorded in the first state with a reference count for each of the at least one DLL file recorded in the second state; and

computer readable program code devices configured to cause a computer to produce a record of the changes responsive to the computer readable program code devices configured to cause a computer to compare.

12. The computer program product of claim 11 , wherein at least some of the objects comprise files and the computer readable program code devices configured to cause a computer to record the at least one first state step comprises:

computer readable program code devices configured to cause a computer to allocate a plurality of the files on the computer system into a plurality of sets of the files; and

computer readable program code devices configured to cause a computer to build at least one hierarchical structure for each of the sets of files allocated, each of the at least one hierarchical structure corresponding to a storage structure of the files in each set.

13. The computer program product of claim 11 wherein the computer readable program code devices configured to cause a computer to record at least one second state and the computer readable program code devices configured to cause a computer to compare comprise:

computer readable program code devices configured to cause a computer to record a second state of a first object in the second plurality selected from a file and a link;

computer readable program code devices configured to cause a computer to compare the second state recorded with at least one the first state recorded;

computer readable program code devices configured to cause a computer to discard the second state; and

computer readable program code devices configured to cause a computer to record a second state of a second object in the second plurality after discarding step.

14. The computer program product of claim 11 wherein the computer readable program code devices configured to cause a computer to produce comprise computer readable program code devices configured to cause a computer to indicate an object in the second plurality and absent from the first plurality is added to the computer system.

15. The computer program product of claim 11 wherein:

the computer readable program code devices configured to cause a computer to compare comprise computer readable program code devices configured to cause a computer to compare at least one property of a first object in the first plurality with at least one property of a second object in the second plurality and corresponding to the first object; and

the computer readable program code devices configured to cause a computer to produce comprise computer readable program code devices configured to cause a computer to indicate at least one selected from the first object and the second object is changed.

16. The computer program product of claim 11 wherein the computer readable program code devices configured to cause a computer to produce comprise:

computer readable program code devices configured to cause a computer to build an interim record of changes;

computer readable program code devices configured to cause a computer to identify at least one location specified in the interim record; and

computer readable program code devices configured to cause a computer to build the record by substituting an alias of the at least one location in place of the at least one location.

17. The computer program product of claim 11 , additionally comprising computer readable program code devices configured to cause a computer to provide the record to a different computer system.

18. The computer program product of claim 17 , wherein at least a plurality of the objects in the second plurality comprise files, the computer program product additionally comprising computer readable program code devices configured to cause a computer to provide at least one file corresponding to at least one of the file objects in the second plurality.

19. The computer program product of claim 18 additionally comprising computer readable program code devices configured to cause a computer to rename at least one of the files provided.

20. The computer program product of claim 19 wherein the computer readable program code devices configured to cause a computer to rename at least one of files comprise computer readable program code devices configured to cause a computer to compute a checksum.

21. A system for identifying changes made to a computer system due to an installation of software, the system comprising:

a space state retriever having an input operatively coupled to receive at least one property of at least one file, the space state retriever for providing at an output a first set of property information responsive to the at least one property received at the first input and not after the installation of the software;

a before tree storage having an input/output coupled to the space state retriever output for storing the set of property information; and

a difference calculator having a first input coupled to the before tree storage input/output for receiving the set of property information, a second input operatively coupled to receive at least one property corresponding to a state of the computer system after the installation of the software, the difference calculator for performing a comparison between the first set and the at least one property and providing at an output coupled to an apparatus output a second set of property information responsive to the comparison, the second set comprising at least one indication indicating one selected from deletion and addition, said comparison comprising comparing a reference count for each of at least one DLL file recorded in the first state with a reference count for each of the at least one DLL file recorded in the second state.

22. The system of claim 21 , wherein the first set of property information comprises a plurality of groups of information, at least one of the groups comprising a name characteristic of a file and at least one additional characteristic of the file.

23. The system of claim 21 wherein the first set of information comprises a tree, the tree comprising a plurality of subtrees, each subtree corresponding to at least one type of the at least one file.

24. The system of claim 21 , additionally comprising a post processor for adjusting the second set of property information.

25. The system of claim 21 additionally comprising a file retriever having a first input coupled to the difference calculator output for receiving a third set of property information corresponding to the second set of property information and a second input for receiving at least one of the at least one file, the file retriever for retrieving and providing at an output at least one of the at least one file responsive to the third set of property information.

26. The system of claim 25 wherein the file retriever additionally provides at a checksum output the at least one file retrieved;

additionally comprising a checksum calculator having an input coupled to the file retriever checksum output to receive the at least one of the at least one file, the checksum calculator for computing and providing at an output a checksum of the at least one of the at least one file received at the checksum input; and

wherein the at least one of the at least one file provided at the file retriever output is stored responsive to the checksum provided at the checksum calculator output.

Assignments (13)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2025
From: BMC SOFTWARE, INC.
To: BMC HELIX, INC.
Reel/Frame 070442/0197 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052854/0139) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0617 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052844/0646) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0408 →
OMNIBUS ASSIGNMENT OF SECURITY INTERESTS IN PATENT COLLATERAL Recorded Mar 4, 2024
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS RESIGNING COLLATERAL AGENT
To: GOLDMAN SACHS BANK USA, AS SUCCESSOR COLLATERAL AGENT
Reel/Frame 066729/0889 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 1, 2024
From: ALTER DOMUS (US) LLC
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 066567/0283 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Sep 30, 2021
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 057683/0582 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052854/0139 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052844/0646 →
RELEASE OF PATENTS Recorded Oct 5, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.; BMC ACQUISITION L.L.C.
Reel/Frame 047198/0468 →
SECURITY INTEREST Recorded Oct 2, 2018
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE, AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047185/0744 →
SECURITY AGREEMENT Recorded Sep 11, 2013
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 031204/0225 →
MERGER Recorded Apr 25, 2005
From: MARIMBA, INC.
To: BMC SOFTWARE, INC.
Reel/Frame 015942/0420 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2004
From: KRUGER, LOUIS P.; MAH, ANSON; SHAIO, SAMI
To: MARIMBA, INC.
Reel/Frame 015339/0532 →