IP Library Granted Patent US 8,473,951
Granted Patent B2
US 8,473,951 · App. 12/649,925 · Granted Jun 25, 2013

Method and system for traversing in reverse chronological order along a critical path of a plurality of jobs, and reducing time gaps between jobs until an estimated end time of the last job is less than or equal to a target end time

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,473,951
App. No.
12/649,925
Granted
Jun 25, 2013
Kind
B2
Abstract

Systems and methods for improved batch flow management are described. At least some embodiments include a computer system for managing a job flow including a memory storing a plurality of batch queue jobs grouped into Services each including a job and a predecessor job. A time difference is the difference between a scheduled job start time and an estimated predecessor job end time. Jobs with a preceding time gap include jobs immediately preceded only by non-zero time differences. The job start depends upon the predecessor job completion. The computer system further includes a processing unit that identifies jobs preceded by a time gap, selects one of the Services, and traverses in reverse chronological order a critical path of dependent jobs within the Service until a latest job with a preceding time gap is identified or at least those jobs along the critical path preceded by another job are traversed.

Claims (48)

1. A computer system for managing a flow of batch jobs, comprising:

a memory comprising a plurality of jobs within a batch queue grouped together into one or more services that each comprises a job and a predecessor job, wherein a time difference comprises the difference between a scheduled start time of the job and an estimated end time of the predecessor job,

wherein jobs with a preceding time gap comprise jobs immediately preceded only by non-zero time differences, and

wherein the job start depends upon the predecessor job completion; and

a processing unit, coupled to the memory, that identifies those jobs of the plurality of jobs preceded by a time gap, selects a service of the one or more services, traverses in reverse chronological order a critical path of dependent jobs within the selected service until a latest job with a preceding time gap is identified or until at least those jobs along the critical path preceded by another job are traversed,

reduces the time difference between the latest job with a preceding time gap and a nearest predecessor job, and

repeats the traversing and reducing until no jobs with time gaps remain along the critical path or until an estimated end time of the selected service is less than or equal to a target end time,

wherein the processing unit traverses the critical path by selecting, for each job preceded by another job along the critical path, a nearest predecessor job with an estimated end time that is closest to, but not greater than, a scheduled start time of a currently selected job.

2. The computer system of claim 1 , further comprising a display device, wherein the latest job with a preceding time gap, if identified, is indicated on the display device.

3. The computer system of claim 1 , wherein the processing unit further adds new jobs to a service.

4. The computer system of claim 3 , wherein the processing unit further runs a simulation to estimate an execution end time for the service.

5. The computer system of claim 1 , wherein the processing unit further repeats the service selection for each of the one or more services.

6. The computer system of claim 1 , wherein the processing unit simulates the execution of all scheduled jobs within the batch queue to estimate the end time of each of the plurality of jobs.

7. A method for managing a flow of batch jobs within a computer system, comprising:

grouping, by the computer system, a plurality of jobs within a batch queue into one or more services that each comprises a job and a predecessor job;

determining, by the computer system, a time difference comprising the difference between a scheduled start time of the job and an estimated end time of the predecessor job, the job start depending upon the predecessor job completion;

identifying, by the computer system, those jobs of the plurality of jobs preceded by a time gap, which comprise jobs immediately preceded only by non-zero time differences;

selecting, by the computer system, a service of the one or more services; traversing, by the computer system, in reverse chronological order a critical path of dependent jobs within the selected service until a latest job with a preceding time gap is identified or until at least those jobs along the critical path preceded by another job are traversed;

reducing, by the computer system, the time difference between the latest job with a preceding time gap and a nearest predecessor job; and

repeating the traversing and reducing until no jobs with time gaps remain along the critical path or until an estimated end time of the selected service is less than or equal to a target end time,

wherein traversing the critical path comprises selecting, for each job preceded by another job along the critical path, a nearest predecessor job with an estimated end time that is closest to, but not greater than, a scheduled start time of a currently selected job.

8. The method of claim 7 , further comprising displaying, if identified, the latest job with a preceding time gap by the computer system.

9. The method of claim 7 , further comprising adding, by the computer system, new jobs to a service.

10. The method of claim 9 , further comprising running a simulation to estimate an execution end time for the service.

11. The method of claim 7 , further comprising repeating the selecting for each of the one or more services.

12. The method of claim 7 , further comprising estimating, by the computer system, the end time of each of the plurality of jobs by performing a simulation of the execution of all scheduled jobs within the batch queue.

13. A non-transitory computer-readable storage medium comprising software that can be executed on a processor to cause the processor to perform a method for managing a flow of batch jobs within a computer system, comprising:

grouping, by the computer system, a plurality of jobs within a batch queue into one or more services that each comprises a job and a predecessor job;

determining, by the computer system, a time difference comprising the difference between a scheduled start time of the job and an estimated end time of the predecessor job, the job start depending upon the predecessor job completion;

identifying, by the computer system, those jobs of the plurality of jobs preceded by a time gap, which comprise jobs immediately preceded only by non-zero time differences;

selecting, by the computer system, a service of the one or more services;

traversing, by the computer system, in reverse chronological order a critical path of dependent jobs within the selected service until a latest job with a preceding time gap is identified or until at least those jobs along the critical path preceded by another job are traversed;

reducing, by the computer system, the time difference between the latest job with a preceding time gap and a nearest predecessor job; and

repeating the traversing and reducing until no jobs with time gaps remain along the critical path or until an estimated end time of the selected service is less than or equal to a target end time,

wherein traversing the critical path comprising selecting, for each job preceded by another job along the critical path, a nearest predecessor job with an estimated end time that is closest to, but not greater than, a scheduled start time of a currently selected job.

14. A networked computer system, comprising:

a communication network; and a plurality of computer systems each coupled to the communication network, at least one computer system of the plurality of computer systems comprising: a memory comprising a plurality of jobs within a batch queue grouped together into one or more services that each comprises a job and a predecessor job,

wherein a time difference comprises the difference between a scheduled start time of the job and an estimated end time of the predecessor job,

wherein jobs with a preceding time gap comprise jobs immediately preceded only by non-zero time differences, and wherein the job start depends upon the predecessor job completion; and

a processing unit, coupled to the memory, that identifies those jobs of the plurality of jobs preceded by a time gap, selects a service of the one or more services, and traverses in reverse chronological order a critical path of dependent jobs within the selected service until a latest job with a preceding time gap is identified or until at least those jobs along the critical path preceded by another job are traversed,

reduces the time difference between the latest job with a preceding time gap and a nearest predecessor job, and

repeats the traversing and reducing until no jobs with time gaps remain along the critical path or until an estimated end time of the selected service is less than or equal to a target end time,

wherein the processing unit traverses the critical path by selecting, for each job preceded by another job along the critical path, a nearest predecessor job with an estimated end time that is closest to, but not greater than, a scheduled start time of a currently selected job.

15. The networked computer system of claim 14 , wherein the at least one computer system further comprises a display device, and wherein the latest job with a preceding time gap, if identified, is indicated on the display device.

16. The networked computer system of claim 14 , where the processing unit further adds new jobs to a service.

17. The computer system of claim 16 , wherein the processing unit further runs a simulation to estimate an execution end time for the service.

18. The networked computer system of claim 14 , wherein the processing unit further repeats the service selection for each of the one or more services.

19. The networked computer system of claim 14 , wherein the processing unit simulates the execution of all scheduled jobs within the batch queue to estimate the end time of each of the plurality of jobs.

Assignments (13)
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0568 →
GRANT OF FIRST LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0628 →
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 052844/0646 →
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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2009
From: SHARON, EYAL; TOURGEMAN, YOEL; TCHENAK, YAKOV; ADMON, TAMAR; AMRAM, HANA; CHENKIN, OHAD
To: BMC SOFTWARE, INC.
Reel/Frame 023718/0547 →