IP Library › Granted Patent US 11,487,534
Granted Patent B2
US 11,487,534 · App. 17/306,075 · Granted Nov 1, 2022

Static and runtime analysis of computer program ecosystems

Inventors: John Joyce (Newton, MA); Marshall A. Isman (Newton, MA); Sam Kendall (Lexington, MA)
Assignee: Ab Initio Technology LLC
G06F8/75G06F8/60G06F11/3664G06F11/3688
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 11,487,534
App. No.
17/306,075
Granted
Nov 1, 2022
Kind
B2
Abstract

A method for analyzing a computer program ecosystem includes performing a static analysis, including identifying static dependencies among elements of the ecosystem based on values of parameters in one or more parameter sets associated with the ecosystem, the elements of the ecosystem including the computer programs of the ecosystem and data resources associated with the computer programs. The method includes performing a runtime analysis, including identifying elements of the ecosystem that were utilized during execution of the ecosystem to process data records. The method includes performing a schedule analysis, including identifying a computer program of the ecosystem that has a schedule dependency from another computer program of the ecosystem. The method includes identifying a subset of the elements of the ecosystem as an ecosystem unit based on the results of the static, runtime, and schedule analyses. The method includes migrating the ecosystem unit, testing the ecosystem unit, or both.

Claims (92)

1. A computer-implemented method for analyzing a set of multiple computer programs, the method including:

performing a static analysis of the set of multiple computer programs, including identifying static dependencies among the multiple computer programs and among data resources associated with the computer programs based on values of parameters in one or more parameter sets associated with the set of multiple computer programs;

performing a runtime analysis of the set of multiple computer programs, including identifying one or more of the multiple computer programs, one or more of the data resources, or both that were utilized during execution of the set of multiple computer programs to process data records;

performing a schedule analysis of the set of multiple computer programs, including identifying a particular computer program of the set of multiple computer programs that has a scheduled relationship with another computer program of the set of multiple computer programs;

identifying (i) a subset of computer programs from the set of multiple computer programs and (ii) one or more of the data resources based on the results of the static analysis, the runtime analysis, and the schedule analysis; and

transferring the identified subset of computer programs and the identified one or more data resources from a first computer system to a second computer system.

2. The method of claim 1 , in which performing the runtime analysis includes:

obtaining runtime log information generated by execution of the set of multiple computer programs; and

analyzing the runtime log information to identify the one or more of the multiple computer programs, the one or more of the data resources, or both that were utilized during execution of the set of multiple computer programs.

3. The method of claim 2 , in which identifying the one or more of the multiple computer programs, the one or more of the data resources, or both includes identifying runtime dependencies among the multiple computer programs.

4. The method of claim 1 , in which performing a schedule analysis includes identifying a first computer program of the multiple computer programs that is scheduled to be executed after execution of a second computer program of the multiple computer programs.

5. The method of claim 1 , including executing the set of multiple computer programs to process data records, including:

instantiating one or more of the computer programs of the set of multiple computer programs according to values of parameters in one or more of the parameter sets associated with the set of multiple computer programs; and

executing the instantiated computer programs to process the data records.

6. The method of claim 1 , in which the one or more computer programs include dataflow graphs.

7. A computer system for analyzing a set of multiple computer programs, the computer system including:

one or more processors coupled to a memory, the one or more processors configured to:

perform a static analysis of the set of multiple computer programs, including identifying static dependencies among the multiple computer programs and among data resources associated with the computer programs based on values of parameters in one or more parameter sets associated with the set of multiple computer programs;

perform a runtime analysis of the set of multiple computer programs, including identifying one or more of the multiple computer programs, one or more of the data resources, or both that were utilized during execution of the set of multiple computer programs to process data records;

perform a schedule analysis of the set of multiple computer programs, including identifying a particular computer program of the set of multiple computer programs that has a scheduled relationship with another computer program of the set of multiple computer programs;

identify (i) a subset of computer programs from the set of multiple computer programs and (ii) one or more of the data resources based on the results of the static analysis, the runtime analysis, and the schedule analysis; and

transfer the identified subset of computer programs and the identified one or more data resources from a first computer system to a second computer system.

8. The computer system of claim 7 , in which performing the runtime analysis includes:

obtaining runtime log information generated by execution of the set of multiple computer programs; and

analyzing the runtime log information to identify the one or more of the multiple computer programs, the one or more of the data resources, or both that were utilized during execution of the set of multiple computer programs.

9. The computer system of claim 8 , in which identifying the one or more of the multiple computer programs, the one or more of the data resources, or both includes identifying runtime dependencies among the multiple computer programs.

10. The computer system of claim 7 , in which performing a schedule analysis includes identifying a first computer program of the multiple computer programs that is scheduled to be executed after execution of a second computer program of the multiple computer programs.

11. The computer system of claim 7 , in which the one or more processors are configured to execute the set of multiple computer programs to process data records, including:

instantiating one or more of the computer programs of the set of multiple computer programs according to values of parameters in one or more of the parameter sets associated with the set of multiple computer programs; and

executing the instantiated computer programs to process the data records.

12. The computer system of claim 7 , in which the one or more computer programs include dataflow graphs.

13. A non transitory computer readable medium storing instructions for causing a computing system to analyze a set of multiple computer programs, the analyzing including:

performing a static analysis of the set of multiple computer programs, including identifying static dependencies among the multiple computer programs and among data resources associated with the computer programs based on values of parameters in one or more parameter sets associated with the set of multiple computer programs;

performing a runtime analysis of the set of multiple computer programs, including identifying one or more of the multiple computer programs, one or more of the data resources, or both that were utilized during execution of the set of multiple computer programs to process data records;

performing a schedule analysis of the set of multiple computer programs, including identifying a particular computer program of the set of multiple computer programs that has a scheduled relationship with another computer program of the set of multiple computer programs;

identifying (i) a subset of computer programs from the set of multiple computer programs and (ii) one or more of the data resources based on the results of the static analysis, the runtime analysis, and the schedule analysis; and

transferring the identified subset of computer programs and the identified one or more data resources from a first computer system to a second computer system.

14. The non transitory computer readable medium of claim 13 , in which performing the runtime analysis includes:

obtaining runtime log information generated by execution of the set of multiple computer programs; and

analyzing the runtime log information to identify the one or more of the multiple computer programs, the one or more of the data resources, or both that were utilized during execution of the set of multiple computer programs.

15. The non transitory computer readable medium of claim 14 , in which identifying the one or more of the multiple computer programs, the one or more of the data resources, or both includes identifying runtime dependencies among the multiple computer programs.

16. The non transitory computer readable medium of claim 13 , in which performing a schedule analysis includes identifying a first computer program of the multiple computer programs that is scheduled to be executed after execution of a second computer program of the multiple computer programs.

17. The non transitory computer readable medium of claim 13 , in which the instructions cause the computing system to execute the set of multiple computer programs to process data records, including:

instantiating one or more of the computer programs of the set of multiple computer programs according to values of parameters in one or more of the parameter sets associated with the set of multiple computer programs; and

executing the instantiated computer programs to process the data records.

18. The non transitory computer readable medium of claim 13 , in which the one or more computer programs include dataflow graphs.

19. A computer-implemented method for analyzing a set of multiple computer programs, the method including:

performing a static analysis of the set of multiple computer programs, including identifying static dependencies among the multiple computer programs and among data resources associated with the computer programs based on values of parameters in one or more parameter sets associated with the set of multiple computer programs;

performing a runtime analysis of the set of multiple computer programs, including identifying one or more of the multiple computer programs, one or more of the data resources, or both that were utilized during execution of the set of multiple computer programs to process data records;

performing a schedule analysis of the set of multiple computer programs, including identifying a particular computer program of the set of multiple computer programs that has a scheduled relationship with another computer program of the set of multiple computer programs;

identifying (i) a subset of computer programs from the set of multiple computer programs and (ii) one or more of the data resources based on the results of the static analysis, the runtime analysis, and the schedule analysis; and

testing the identified subset of computer programs.

20. The method of claim 19 , in which performing the runtime analysis includes:

obtaining runtime log information generated by execution of the set of multiple computer programs; and

analyzing the runtime log information to identify the one or more of the multiple computer programs, the one or more of the data resources, or both that were utilized during execution of the set of multiple computer programs.

21. The method of claim 20 , in which identifying the one or more of the multiple computer programs, the one or more of the data resources, or both includes identifying runtime dependencies among the multiple computer programs.

22. The method of claim 19 , in which performing a schedule analysis includes identifying a first computer program of the multiple computer programs that is scheduled to be executed after execution of a second computer program of the multiple computer programs.

23. The method of claim 19 , including executing the set of multiple computer programs to process data records, including:

instantiating one or more of the computer programs of the set of multiple computer programs according to values of parameters in one or more of the parameter sets associated with the set of multiple computer programs; and

executing the instantiated computer programs to process the data records.

24. The method of claim 19 , in which the one or more computer programs include dataflow graphs.

25. A non transitory computer readable medium storing instructions for causing a computing system to analyze a set of multiple computer programs, the analyzing including:

performing a static analysis of the set of multiple computer programs, including identifying static dependencies among the multiple computer programs and among data resources associated with the computer programs based on values of parameters in one or more parameter sets associated with the set of multiple computer programs;

performing a runtime analysis of the set of multiple computer programs, including identifying one or more of the multiple computer programs, one or more of the data resources, or both that were utilized during execution of the set of multiple computer programs to process data records;

performing a schedule analysis of the set of multiple computer programs, including identifying a particular computer program of the set of multiple computer programs that has a scheduled relationship with another computer program of the set of multiple computer programs;

identifying (i) a subset of computer programs from the set of multiple computer programs and (ii) one or more of the data resources based on the results of the static analysis, the runtime analysis, and the schedule analysis; and

testing the identified subset of computer programs.

26. The non transitory computer readable medium of claim 25 , in which performing the runtime analysis includes:

obtaining runtime log information generated by execution of the set of multiple computer programs; and

analyzing the runtime log information to identify the one or more of the multiple computer programs, the one or more of the data resources, or both that were utilized during execution of the set of multiple computer programs.

27. The non transitory computer readable medium of claim 26 , in which identifying the one or more of the multiple computer programs, the one or more of the data resources, or both includes identifying runtime dependencies among the multiple computer programs.

28. The non transitory computer readable medium of claim 25 , in which performing a schedule analysis includes identifying a first computer program of the multiple computer programs that is scheduled to be executed after execution of a second computer program of the multiple computer programs.

29. The non transitory computer readable medium of claim 25 , in which the instructions cause the computing system to execute the set of multiple computer programs to process data records, including:

instantiating one or more of the computer programs of the set of multiple computer programs according to values of parameters in one or more of the parameter sets associated with the set of multiple computer programs; and

executing the instantiated computer programs to process the data records.

30. The non transitory computer readable medium of claim 25 , in which the one or more computer programs include dataflow graphs.

31. A computer system for analyzing a set of multiple computer programs, the computer system including:

one or more processors coupled to a memory, the one or more processors configured to:

perform a static analysis of the set of multiple computer programs, including identifying static dependencies among the multiple computer programs and among data resources associated with the computer programs based on values of parameters in one or more parameter sets associated with the set of multiple computer programs;

perform a runtime analysis of the set of multiple computer programs, including identifying one or more of the multiple computer programs, one or more of the data resources, or both that were utilized during execution of the set of multiple computer programs to process data records;

perform a schedule analysis of the set of multiple computer programs, including identifying a particular computer program of the set of multiple computer programs that has a scheduled relationship with another computer program of the set of multiple computer programs;

identify (i) a subset of computer programs from the set of multiple computer programs and (ii) one or more of the data resources based on the results of the static analysis, the runtime analysis, and the schedule analysis; and

test the identified subset of computer programs.

32. The computer system of claim 31 , in which performing the runtime analysis includes:

obtaining runtime log information generated by execution of the set of multiple computer programs; and

analyzing the runtime log information to identify the one or more of the multiple computer programs, the one or more of the data resources, or both that were utilized during execution of the set of multiple computer programs.

33. The computer system of claim 32 , in which identifying the one or more of the multiple computer programs, the one or more of the data resources, or both includes identifying runtime dependencies among the multiple computer programs.

34. The computer system of claim 31 , in which performing a schedule analysis includes identifying a first computer program of the multiple computer programs that is scheduled to be executed after execution of a second computer program of the multiple computer programs.

35. The computer system of claim 31 , in which the one or more processors are configured to execute the set of multiple computer programs to process data records, including:

instantiating one or more of the computer programs of the set of multiple computer programs according to values of parameters in one or more of the parameter sets associated with the set of multiple computer programs; and

executing the instantiated computer programs to process the data records.

36. The computer system of claim 31 , in which the one or more computer programs include dataflow graphs.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2021
From: JOYCE, JOHN; ISMAN, MARSHALL A.; KENDALL, SAM
To: AB INITIO SOFTWARE LLC
Reel/Frame 056136/0637 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2021
From: AB INITIO SOFTWARE LLC
To: AB INITIO ORIGINAL WORKS LLC
Reel/Frame 056136/0660 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2021
From: AB INITIO ORIGINAL WORKS LLC
To: AB INITIO TECHNOLOGY LLC
Reel/Frame 056136/0680 →
Continuity (3)
Continuation 16746392 · Jan 17, 2020
Provisional Application 62851295 · May 22, 2019
Related Publication 20210263734A1 · Aug 26, 2021
Cited By (1)
US 12,596,538