IP Library Granted Patent US 7,225,430
Granted Patent B2
US 7,225,430 · App. 09/915,862 · Granted May 29, 2007

Software code management method and apparatus

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,225,430
App. No.
09/915,862
Granted
May 29, 2007
Kind
B2
Abstract

A method and apparatus for managing the use of a software code by a selected application program are disclosed. The method includes detecting an instance of using the code, identifying the application program that is using the code, confirming a conflict between the code and the application, and reporting the conflict to one or more selected parties. Confirmation of the conflict may occur by using a database whose content includes a plurality of selected application programs, along with a corresponding plurality of proper software codes, such as DLL files, which are appropriate for each of the selected application programs to use. A computer workstation or networked computer system may embody the method in the form of instructions stored in a machine-accessible medium.

Claims (87)

1. A method for managing execution of a software code by a selected application program, comprising:

configuring a database having a plurality of application programs, wherein each one of the plurality of application programs corresponds to at least one designated software code, wherein the plurality of application programs includes the selected application program, and wherein the corresponding at least one designated software code is not the software code executed by the selected application program;

detecting the execution of all or a portion of the software code, wherein the detecting is not performed by the software code;

identifying the selected application program that is executing the software code;

confirming a conflict between the selected application program and the software code in response to the application program executing the software code, wherein the conflict between the selected application program and the software code is confirmed after the execution of the software code has been detected, and wherein confirming the conflict includes determining that the executed software code is not correct for the selected application program; and

after confirming the conflict, recording that the selected application and the executed software code conflict in the database.

2. The method of claim 1 , wherein configuring the database further includes:

obtaining information relating to at least one of the plurality of application programs and corresponding at least one designated software code in a non-automated fashion.

3. The method of claim 1 , wherein configuring the database further includes:

entering information relating to at least one of the plurality of application programs and the corresponding at least one designated software code by using a snapshot of installation activity required for the at least one of the plurality of application programs.

4. The method of claim 1 , wherein at least one of the plurality of applications programs is associated with a system resident installation package, and wherein configuring the database further includes:

entering information relating to the at least one of the plurality of application programs and the corresponding at least one designated software code by automated examination of the system resident installation package.

5. The method of claim 1 , wherein confirming a conflict between the software code and the selected application program further includes:

determining that the software code is not the same as the corresponding at least one designated software code.

6. The method of claim 5 , wherein the corresponding at least one designated software code has a version number which differs from a version number associated with the software code executed by the selected application program, and wherein determining that the improper software code is not the same as the corresponding at least one designated software code further includes:

determining the version number of the corresponding at least one designated software code and the version number of the software code executed by the selected application program; and

comparing the version number of the corresponding at least one designated software code to the version number of the software code executed by the selected application program.

7. The method of claim 1 , wherein the software code is a software library, and wherein detecting execution of the software code further includes:

enabling detection of a library loading operation.

8. The method of claim 7 , wherein enabling detection of a library loading operation further includes:

setting a software hook activated by the library loading operation.

9. The method of claim 1 , wherein identifying the selected application program further includes:

determining a file name of the selected application program.

10. The method of claim 1 , wherein the selected application program has an application version number, and wherein identifying the selected application program further includes:

determining the application version number.

11. The method of claim 1 , further including:

reporting the conflict; and

alerting a selected party regarding the conflict.

12. The method of claim 11 , wherein the selected party is an end user of the selected application program.

13. The method of claim 1 , further including:

reporting the conflict; and

activating an alarm.

14. The method of claim 1 , wherein at least one of the plurality of application programs is associated with an executable code, and wherein configuring the database further includes:

obtaining information relating to the at least one of the plurality of application programs and the corresponding at least one designated software code by automated examination of the executable code; and

entering the information into the database.

15. A computer workstation, comprising:

a processor module; and

a machine-accessible medium communicatively coupled to the processor module, the machine-accessible medium having instructions associated therewith for managing execution of a software code by a selected application program, which when executed are capable of causing the processor module to perform:

configuring a database having a plurality of application programs, wherein each one of the plurality of application programs corresponds to at least one designated software code, wherein the plurality of application programs includes the selected application program, and wherein the corresponding at least one designated software code is not the software code executed by the selected application program;

detecting the execution of all or a portion of the software code, wherein the detecting is not performed by the software code;

identifying the selected application program that is executing the software code;

confirming a conflict between the software code and the selected application program in response to the application program executing the software code, wherein the conflict between the selected application program and the software code is confirmed after the execution of the software code has been detected, and wherein confirming the conflict includes determining that the executed software code is not correct for the selected application program; and

after confirming the conflict, recording that the selected application and the executed software code conflict in the database.

16. The computer workstation of claim 15 , wherein confirming a conflict between the software code and the selected application program further includes:

determining that the software code executed by the selected application program is not the same as the corresponding at least one designated software code.

17. The computer workstation of claim 16 , wherein the corresponding at least one designated software code has a version number which differs from a version number associated with the software code executed by the selected application program, and wherein determining that the software code executed by the selected application program is not the same as the corresponding at least one designated software code further includes:

determining the version number of the corresponding at least one designated software code and the version number of the software code executed by the selected application program; and

comparing the version number of the corresponding at least one designated software code to the version number of the software code executed by the selected application program.

18. The computer workstation of claim 15 , wherein the software code is a software library, and wherein detecting execution of the software code further includes:

enabling detection of a library loading operation.

19. The computer workstation of claim 18 , wherein enabling detection of a library loading operation further includes:

setting a software hook activated by the library loading operation.

20. The computer workstation of claim 15 , wherein at least one of the plurality of application programs is associated with an executable code, and wherein configuring the database further includes:

obtaining information relating to the at least one of the plurality of application programs and the corresponding at least one designated software code by automated examination of the executable code; and

entering the information into the database.

21. A computer system network, comprising:

a server comprising:

a processor module;

a machine-accessible medium communicatively coupled to the processor module, the machine-accessible medium having instructions associated therewith for managing execution of a software code by a selected application program, which when executed are capable of causing the processor module to perform:

configuring a database having a plurality of application programs, wherein each one of the plurality of application programs corresponds to at least one designated software code, wherein the plurality of application programs includes the selected application program, and wherein the corresponding at least one designated software code is not the software code executed by the selected application program;

detecting the execution of the software code, wherein the detecting is not performed by the software code;

identifying the selected application program that is executing the software code;

confirming a conflict between the software code and the selected application program in response to the application program executing the software code, wherein the conflict between the selected application program and the software code is confirmed after the execution of the software code has been detected, and wherein confirming the conflict includes determining that the executed software code is not correct for the selected application program; and

after confirming the conflict, recording that the selected application and the executed software code conflict in the database; and

a client communicatively coupled to the server, wherein execution of the selected application program is initiated by the client.

22. The computer system network of claim 21 , wherein the database is stored on the server.

23. The computer system network of claim 21 , wherein confirming a conflict between the software code and the selected application program further includes:

determining that the software code is not the same as the corresponding at least one designated software code.

24. The computer system network of claim 21 , wherein at least one of the plurality of application programs is associated with an executable code, and wherein configuring the database further includes:

obtaining information relating to the at least one of the plurality of application programs and the corresponding at least one designated software code by automated examination of the executable code; and

entering the information into the database.

25. A machine-accessible medium having instructions associated therewith for managing execution of a software code by a selected application program, which when executed are capable of causing a processor module to perform:

configuring a database having a plurality of application programs, wherein each one of the plurality of application programs corresponds to at least one designated software code, wherein the plurality of application programs includes the selected application program, and wherein the corresponding at least one designated software code is not the software code executed by the selected application program;

detecting the execution of the software code, wherein the detecting is not performed by the software code;

identifying the selected application program that is executing the software code;

confirming a conflict between the improper software code and the selected application program in response to the application program executing the software code, wherein the conflict between the selected application program and the software code is confirmed after the execution of the software code has been detected, and wherein confirming the conflict includes determining that the executed software code is not correct for the selected application program; and

after confirming the conflict, recording that the selected application and the executed software code conflict in the database.

26. The machine-accessible medium of claim 25 , wherein confirming a conflict between the software code and the selected application program further includes:

determining that the software code executed by the selected application program is not the same as the corresponding at least one designated software code.

27. The machine-accessible medium of claim 26 , wherein the corresponding at least one designated software code has a version number which differs from a version number associated with the software code executed by the selected application program, and wherein determining that the software code executed by the selected application program is not the same as the corresponding at least one designated software code further includes:

determining the version number of the proper software code and the version number of the improper software code; and

comparing the version number of the corresponding at least one designated software code to the version number of the software code executed by the selected application program.

28. The machine-accessible medium of claim 25 , wherein the software code is a software library, and wherein detecting execution of the software code further includes:

enabling detection of a library loading operation.

29. The machine-accessible medium of claim 25 , wherein at least one of the plurality of application programs is associated with an executable code, and wherein configuring the database further includes:

obtaining information relating to the at least one of the plurality of application programs and the corresponding at least one designated software code by automated examination of the executable code; and

entering the information into the database.

Assignments (20)
NOTICE OF SUCCESSION OF AGENCY FOR SECURITY INTEREST AT REEL/FRAME 054665/0873 Recorded Apr 29, 2025
From: BANK OF AMERICA, N.A., AS RESIGNING AGENT
To: ALTER DOMUS (US) LLC, AS SUCCESSOR AGENT
Reel/Frame 071123/0386 →
SECURITY INTEREST Recorded Dec 9, 2020
From: CELLSEC, INC.; PULSE SECURE, LLC; INVANTI, INC.; MOBILEIRON, INC.; INVANTI US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 054665/0873 →
SECURITY INTEREST Recorded Dec 9, 2020
From: CELLSEC, INC.; PULSE SECURE, LLC; IVANTI, INC.; MOBILEIRON, INC.; IVANTI US LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 054665/0062 →
RELEASE OF SECURITY INTEREST : RECORDED AT REEL/FRAME - 41052/0762 Recorded Dec 1, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: CRIMSON CORPORATION
Reel/Frame 054560/0857 →
RELEASE OF SECURITY INTEREST : RECORDED AT REEL/FRAME - 41459/0387 Recorded Dec 1, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: CRIMSON CORPORATION
Reel/Frame 054637/0161 →
MERGER Recorded Apr 19, 2018
From: CRIMSON CORPORATION
To: IVANTI, INC.
Reel/Frame 045983/0075 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 40183/0506 Recorded Jan 23, 2017
From: JEFFERIES FINANCE LLC
To: CRIMSON CORPORATION
Reel/Frame 041463/0457 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 40182/0345 Recorded Jan 23, 2017
From: JEFFERIES FINANCE LLC
To: CRIMSON CORPORATION
Reel/Frame 041463/0581 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jan 20, 2017
From: CRIMSON CORPORATION
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 041052/0762 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jan 20, 2017
From: CRIMSON CORPORATION
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 041459/0387 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Sep 29, 2016
From: CRIMSON CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 040182/0345 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Sep 29, 2016
From: CRIMSON CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 040183/0506 →
RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT R/F 031029/0849 Recorded Sep 28, 2016
From: JEFFERIES FINANCE LLC
To: CRIMSON CORPORATION
Reel/Frame 040171/0307 →
RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT R/F 032333/0637 Recorded Sep 28, 2016
From: JEFFERIES FINANCE LLC
To: CRIMSON CORPORATION
Reel/Frame 040171/0037 →
NUNC PRO TUNC ASSIGNMENT Recorded Sep 21, 2016
From: LANDESK SOFTWARE, INC.
To: CRIMSON CORPORATION
Reel/Frame 039819/0845 →
SECURITY AGREEMENT Recorded Feb 25, 2014
From: LANDESK SOFTWARE, INC.; CRIMSON CORPORATION
To: JEFFERIES FINANCE LLC
Reel/Frame 032333/0637 →
SECURITY AGREEMENT Recorded Aug 16, 2013
From: LANDESK GROUP, INC.; LANDSLIDE HOLDINGS, INC.; CRIMSON ACQUISITION CORP.; LANDESKSOFTWARE, INC.; CRIMSON CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 031029/0849 →
RELEASE OF SECURITY INTEREST Recorded Aug 12, 2013
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: LANDESK SOFTWARE, INC.
Reel/Frame 030993/0622 →
PATENT SECURITY AGREEMENT Recorded Jul 13, 2012
From: LANDESK SOFTWARE, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
Reel/Frame 028541/0782 →
RELEASE OF SECURITY INTEREST Recorded Jun 20, 2012
From: WELLS FARGO CAPITAL FINANCE, LLC
To: LANDESK GROUP, INC.; LANDSLIDE HOLDINGS, INC.; LANDESK SOFTWARE, INC.; CRIMSON ACQUISITION CORP.; CRIMSON CORPORATION
Reel/Frame 028413/0913 →