IP Library Granted Patent US 8,924,931
Granted Patent B2
US 8,924,931 · App. 11/848,161 · Granted Dec 30, 2014

Method and system for determining dependencies in a mainframe development environment

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,924,931
App. No.
11/848,161
Granted
Dec 30, 2014
Kind
B2
Abstract

Techniques are provided for determining dependencies in a mainframe development environment. While executing a first build file to generate a first build of a software program from files in a file system, the activity in the file system is monitored to determine a plurality of files that are being accessed, and first information about the plurality of files is recorded. The first information is sent to a configuration management server. From the configuration management server, second information is received that indicates one or more dependencies which are determined among the plurality of files based on the first information. Based at least on the second information, a second build file is generated. The second build file is executed to generate a second build of the software program, where the second build is generated more efficiently by using less computing resources than the first build of the software program.

Claims (113)

1. A computer-implemented method performed in a mainframe computer system that comprises a mainframe operating system that is one of a Multiple Virtual Storage (MVS) operating system, a z/OS operating system, or an OS390 operating system, the method comprising:

registering one or more supervisor call exit routines with the mainframe operating system;

executing a first build file to generate a first build of a software program from a set of files that are stored in a file system;

while executing the first build file to generate the first build of the software program, using the one or more supervisor call exit routines to:

monitor activity in the file system to determine a plurality of files, from the set of files, that are being accessed in the file system, and

record first information about the plurality of files that are being accessed in the file system;

wherein monitoring the activity in the file system comprises receiving, from the mainframe operating system, an invocation of at least one of the one or more supervisor call exit routines when a file of the plurality of files is accessed in the file system;

based at least on second information that indicates one or more dependencies among the plurality of files, generating a second build file that reflects the one or more dependencies among the plurality of files;

wherein the second information is based on the first information;

executing the second build file to generate a second build of the software program.

2. The computer-implemented method as recited in claim 1 , wherein the second build of the software program is generated by using less computing resources than the first build of the software program.

3. The computer-implemented method as recited in claim 1 , further comprising:

receiving the second information from a configuration management server; and

executing the second build file to generate the second build of the software program further comprises:

a first build process starting a second build process; and

the second build process executing the second build file.

4. The computer-implemented method as recited in claim 3 , wherein generating the second build file based at least on the second information further comprises:

the second build process accessing a template file, wherein the template file is associated with the software program; and

the second build process generating the second build file by substituting one or more variables defined in the template file with one or more values included in the second information.

5. The computer-implemented method as recited in claim 1 , further comprising:

while executing the second build file to generate the second build of the software program, performing the steps of:

monitoring the activity in the file system to determine a second plurality of files, from the set of files, that are being accessed in the file system; and

recording third information about the second plurality of files that are being accessed in the file system;

sending the third information to a configuration management server;

receiving fourth information from the configuration management server, wherein the fourth information indicates second one or more dependencies that are determined among the second plurality of files by the configuration management server based at least on the third information;

based at least on the fourth information, generating a third build file that reflects the second one or more dependencies among the second plurality of files; and

executing the third build file to generate a third build of the software program.

6. The computer-implemented method as recited in claim 5 , wherein the fourth information is generated by the configuration management server based on the first information and the third information.

7. The computer-implemented method as recited in claim 1 , wherein the first information is a set of metadata that includes one or more values for one or more file system attributes of each particular file in the plurality of files.

8. The computer-implemented method as recited in claim 7 , wherein the one or more file system attributes of said each particular file include at least one of:

a file identifier of said each particular file;

a date and time when said each particular file was created;

a date and time when said each particular file was last accessed;

a date and time when said each particular file was last modified;

a version of said each particular file;

a size of said each particular file;

a current checksum associated with said each particular file; or

a path indicating the location in the file system where said each particular file is located.

9. The computer-implemented method as recited in claim 1 , wherein the first information is a set of metadata that includes one or more values indicating at least one of:

an order in which the plurality of files are accessed in the file system;

a target file representing the first build of the software program; and

one or more source files from which the first build of the software program is generated.

10. The computer-implemented method as recited in claim 1 , wherein at least one of the first information and the second information is formatted as an eXtensible Markup Language (XML) document.

11. A non-transitory machine-readable medium storing one or more stored instructions which, when processed by one or more processors of a mainframe computer system that comprises a mainframe operating system that is one of a Multiple Virtual Storage (MVS) operating system, a z/OS operating system, or an OS390 operating system, cause:

registering one or more supervisor call exit routines with the mainframe operating system;

executing a first build file to generate a first build of a software program from a set of files that are stored in a file system;

while executing the first build file to generate the first build of the software program, using the one or more supervisor call exit routines to:

monitor activity in the file system to determine a plurality of files, from the set of files, that are being accessed in the file system, and

record first information about the plurality of files that are being accessed in the file system;

wherein monitoring the activity in the file system comprises receiving, from the mainframe operating system, an invocation of at least one of the one or more supervisor call exit routines when a file of the plurality of files is accessed in the file system;

based at least on second information that indicates one or more dependencies among the plurality of files, generating a second build file that reflects the one or more dependencies among the plurality of files;

wherein the second information is based on the first information;

executing the second build file to generate a second build of the software program.

12. The non-transitory machine-readable medium as recited in claim 11 , wherein the second build of the software program is generated by using less computing resources than the first build of the software program.

13. The non-transitory machine-readable medium as recited in claim 11 , wherein the one or more stored instructions further comprising instructions which, when processed by the one or more processors, cause:

receiving the second information from a configuration management server; and

wherein the instructions that cause executing the second build file to generate the second build of the software program further comprise instructions which, when processed by the one or more processors, cause:

a first build process starting a second build process; and

the second build process executing the second build file.

14. The non-transitory machine-readable medium as recited in claim 13 , wherein the instructions that cause generating the second build file based at least on the second information further comprise instructions which, when processed by the one or more processors, cause:

the second build process accessing a template file, wherein the template file is associated with the software program; and

the second build process generating the second build file by substituting one or more variables defined in the template file with one or more values included in the second information.

15. The non-transitory machine-readable medium as recited in claim 11 , wherein the one or more stored instructions further comprise instructions which, when processed by the one or more processors, cause:

while executing the second build file to generate the second build of the software program, performing the steps of:

monitoring the activity in the file system to determine a second plurality of files, from the set of files, that are being accessed in the file system; and

recording third information about the second plurality of files that are being accessed in the file system;

sending the third information to a configuration management server;

receiving fourth information from the configuration management server, wherein the fourth information indicates second one or more dependencies that are determined among the second plurality of files by the configuration management server based at least on the third information;

based at least on the fourth information, generating a third build file that reflects the second one or more dependencies among the second plurality of files; and

executing the third build file to generate a third build of the software program.

16. The non-transitory machine-readable medium as recited in claim 15 , wherein the fourth information is generated by the configuration management server based on the first information and the third information.

17. The non-transitory machine-readable medium as recited in claim 11 , wherein the first information is a set of metadata that includes one or more values for one or more file system attributes of each particular file in the plurality of files.

18. The non-transitory machine-readable medium as recited in claim 17 , wherein the one or more file system attributes of said each particular file include at least one of:

a file identifier of said each particular file;

a date and time when said each particular file was created;

a date and time when said each particular file was last accessed;

a date and time when said each particular file was last modified;

a version of said each particular file;

a size of said each particular file;

a current checksum associated with said each particular file; or

a path indicating the location in the file system where said each particular file is located.

19. The non-transitory machine-readable medium as recited in claim 11 , wherein the first information is a set of metadata that includes one or more values indicating at least one of:

an order in which the plurality of files are accessed in the file system;

a target file representing the first build of the software program; and

one or more source files from which the first build of the software program is generated.

20. The non-transitory machine-readable medium as recited in claim 11 , wherein at least one of the first information and the second information is formatted as an eXtensible Markup Language (XML) document.

21. A mainframe computer system comprising:

one or more processors;

a mainframe operating system that is one of a Multiple Virtual Storage (MVS) operating system, a z/OS operating system, or an OS390 operating system;

a file system; and

logic which, when executed by the one or more processors, is operable to:

register one or more supervisor call exit routines with the mainframe operating system;

execute a first build file to generate a first build of a software program from a set of files that are stored in the file system;

while executing the first build file to generate the first build of the software program, use the one or more supervisor call exit routines to:

monitor activity in the file system to determine the plurality of files, from the set of files, that are being accessed in the file system;

receive, from the mainframe operating system, an invocation of at least one of the one or more supervisor call exit routines when a file of the plurality of files is accessed in the file system; and

record first information about the plurality of files that are being accessed in the file system;

based at least on second information that indicates one or more dependencies among the plurality of files, generate a second build file that reflects the one or more dependencies among the plurality of files;

wherein the second information is based on the first information;

execute the second build file to generate a second build of the software program.

22. The mainframe computer system as recited in claim 21 , wherein the logic, when executed by the one or more processors, is further operable to receive the second information from a configuration management server; and wherein the logic operable to execute the second build file to generate the second build of the software program is further operable, when executed by the one or more processors, to cause a first build process to start a second build process, and to cause the second build process to execute the second build file.

23. The mainframe computer system as recited in claim 22 , wherein the logic operable to generate the second build file based at least on the second information is further operable, when executed by the one or more processors, to:

cause the second build process to access a template file, wherein the template file is associated with the software program; and

cause the second build process to generate the second build file by substituting one or more variables defined in the template file with one or more values included in the second information.

24. The mainframe computer system as recited in claim 21 , wherein the logic, when executed by the one or more processors, is further operable to:

while executing the second build file to generate the second build of the software program:

monitor the activity in the file system to determine a second plurality of files, from the set of files, that are being accessed in the file system, and

record third information about the second plurality of files that are being accessed in the file system;

send the third information to a configuration management server;

receive fourth information from the configuration management server, wherein the fourth information indicates second one or more dependencies that are determined among the second plurality of files by the configuration management server based at least on the third information;

based at least on the fourth information, generate a third build file that reflects the second one or more dependencies among the second plurality of files; and

execute the third build file to generate a third build of the software program.

25. The mainframe computer system as recited in claim 24 , wherein the fourth information is generated by the configuration management server based on the first information and the third information.

Assignments (18)
CORRECTIVE ASSIGNMENT TO CORRECT THE STATE OF INCORPORATION OF ASSIGNEE PREVIOUSLY RECORDED ON REEL 67667 FRAME 560. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Apr 24, 2025
From: SERENA SOFTWARE, INC.
To: ROCKET SOFTWARE, INC.
Reel/Frame 072051/0748 →
CORRECTIVE ASSIGNMENT TO CORRECT THE STATE OF INCORPORATION OF THE ASSIGNEE PREVIOUSLY RECORDED ON REEL 67667 FRAME 560. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 7, 2025
From: SERENA SOFTWARE, INC.
To: ROCKET SOFTWARE, INC.
Reel/Frame 071336/0509 →
SECURITY INTEREST Recorded Jan 10, 2025
From: ADMIRAL SOFTWARE LLC F/K/A AMC SOFTWARE LLC; ROCKET SOFTWARE, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 069819/0708 →
SECURITY INTEREST Recorded Dec 18, 2024
From: ADMIRAL SOFTWARE LLC; ROCKET SOFTWARE, INC.
To: ROYAL BANK OF CANADA
Reel/Frame 069623/0372 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2024
From: SERENA SOFTWARE, INC.
To: ROCKET SOFTWARE, INC.
Reel/Frame 067667/0560 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
RELEASE OF SECURITY INTEREST REEL/FRAME 039136/0241 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: SERENA SOFTWARE, INC
Reel/Frame 062623/0123 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ENTIT SOFTWARE LLC; ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
NOTICE OF SUCCESSION OF AGENCY Recorded May 2, 2017
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 042383/0830 →
SECURITY INTEREST Recorded Jul 12, 2016
From: SERENA SOFTWARE, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 039136/0241 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY'S NAME PREVIOUSLY RECORDED AT REEL: 026073 FRAME: 0206. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT. Recorded Jun 9, 2016
From: LEHMAN COMMERCIAL PAPER INC., AS RESIGNING ADMINISTRATIVE AGENT AND COLLATERAL AGENT
To: BARCLAYS BANK PLC, AS ADMINISTATIVE AGENT
Reel/Frame 038963/0840 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 032679/0596 Recorded May 2, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: SERENA SOFTWARE, INC.
Reel/Frame 038589/0480 →
RELEASE OF SECURITY AGREEMENT Recorded Apr 17, 2014
From: BARCLAYS BANK PLC, AS COLLATERAL AGENT
To: SERENA SOFTWARE, INC.
Reel/Frame 032712/0493 →
SECURITY INTEREST Recorded Apr 15, 2014
From: SERENA SOFTWARE, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 032679/0596 →
SECURITY AGREEMENT Recorded Apr 4, 2011
From: SERENA SOFTWARE, INC., A DELAWARE CORPORATION
To: BARCLAYS BANK PLC. AS ADMINISTRATIVE AGENT
Reel/Frame 026073/0206 →
PATENT SECURITY AGREEMENT Recorded May 1, 2008
From: SERENA SOFTWARE, INC.
To: LEHMAN BROTHERS COMMERCIAL PAPER INC.
Reel/Frame 020887/0052 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2007
From: MITCHELL, STUART
To: SERENA SOFTWARE, INC.
Reel/Frame 020046/0640 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2007
From: HARDING, JEREMY; TROTH, MICHAEL; RAYMOND, PETER
To: SERENA SOFTWARE, INC.
Reel/Frame 019770/0417 →