Batch processing job streams using and/or precedence logic
First Claim
1. A method for use in analyzing job streams, comprising the steps of:
- receiving input information defining a job stream including arbitrary precedence logic, said job stream involving a number of jobs to be executed using a defined resource set, said jobs including multiple predecessor jobs and multiple successor jobs that may be the same or different than the predecessor jobs, where an execution of each of said successor jobs is dependent on an outcome of one or more of said predecessor jobs, and said arbitrary precedence logic includes at least one AND precedence set such that execution of first successor job is dependent on an outcome of each of two or more of said predecessor jobs and at least one OR precedence set such that execution of a second successor job, that may be the same or different than said first successor job, is dependent on an outcome of less than all of two or more predecessor jobs;
first configuring a first processor to execute a Critical Path Method (CPM) algorithm adapted to handle said arbitrary precedence logic, said CPM algorithm involving the identification of a job path within said job stream wherein each job of said job path has an identical early start and late start time upon proper application of all associated precedences; and
first employing said processor to process said job stream using said CPM algorithm.
2 Assignments
0 Petitions
Accused Products
Abstract
A product and associated methodology provided for scheduling job streams and leveling machine loads automatically without regard to specific knowledge of a job'"'"'s internals or estimates of its machine load and without specific knowledge of a machine'"'"'s resources or its total machine load capability. This involves use of a generalized critical path method algorithm in conjunction with a resource leveling algorithm. The generalized CPM algorithm supports arbitrary precedence logic and precedence types. The invention can therefore provide automatic resource leveling in connection with a broad range of practical applications including managing resources of a computer network.
190 Citations
66 Claims
-
1. A method for use in analyzing job streams, comprising the steps of:
-
receiving input information defining a job stream including arbitrary precedence logic, said job stream involving a number of jobs to be executed using a defined resource set, said jobs including multiple predecessor jobs and multiple successor jobs that may be the same or different than the predecessor jobs, where an execution of each of said successor jobs is dependent on an outcome of one or more of said predecessor jobs, and said arbitrary precedence logic includes at least one AND precedence set such that execution of first successor job is dependent on an outcome of each of two or more of said predecessor jobs and at least one OR precedence set such that execution of a second successor job, that may be the same or different than said first successor job, is dependent on an outcome of less than all of two or more predecessor jobs;
first configuring a first processor to execute a Critical Path Method (CPM) algorithm adapted to handle said arbitrary precedence logic, said CPM algorithm involving the identification of a job path within said job stream wherein each job of said job path has an identical early start and late start time upon proper application of all associated precedences; and
first employing said processor to process said job stream using said CPM algorithm. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method for use in analyzing job streams, comprising the steps of:
-
receiving input information defining a job stream including arbitrary precedence types, said job stream involving a number of jobs to be executed using a defined resource set, said jobs including multiple predecessor jobs and multiple successor jobs that may be the same or different than the predecessor jobs, where an execution of each of said successor jobs is dependent on an outcome of one or more of said predecessor jobs, and said arbitrary precedence types include at least a first outcome type relating to a first outcome of a first predecessor job and a second outcome type, different than said first outcome type, relating to a second outcome of a second predecessor job;
first configuring a first processor to execute a Critical Path Method (CPM) algorithm adapted to handle said arbitrary precedence types, said CPM algorithm involving the identification of a job path within said job stream wherein each job of said job path has an identical early start and late start time upon proper application of associated precedences; and
first employing said processor to process said job stream using said CPM algorithm. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A method for use in analyzing job streams, comprising the steps of:
-
receiving input information defining a job stream involving a number of jobs to be executed using a defined resource set, said jobs including multiple predecessor jobs and multiple successor jobs that may be the same or different than the predecessor jobs, where an execution of each of said successor jobs is dependent on a completion of one or more of said predecessor jobs;
first configuring a first processor to execute a resource leveling algorithm directed to moderating a usage extremum of at least one resource of said defined resource set, said extremum being one of a relative minimum usage level of said resource and a relative maximum usage level of said resource; and
first employing said first processor to process said job stream using said resource leveling algorithm. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37)
-
-
38. A scheduler, comprising:
-
input structure configured to receive input information defining a job stream including arbitrary precedence logic, said job stream involving a number of jobs to be executed using a defined resource set, said jobs including multiple predecessor jobs and multiple successor jobs that may be the same or different than the predecessor jobs, where an execution of each of said successor jobs is dependent on an outcome of one or more of said predecessor jobs, and said arbitrary precedence logic includes at least one AND precedence set such that execution of first successor job is dependent on an outcome of each of two or more of said predecessor jobs and at least one OR precedence set such that execution of a second successor job, that may be the same or different than said first successor job, is dependent on an outcome of less than all of two or more predecessor jobs;
processing structure configured to execute a Critical Path Method (CPM) algorithm adapted to handle said arbitrary precedence logic, said CPM algorithm involving the identification of a job path within said job stream wherein each job of said job path has an identical early start and late start time upon proper application of all associated precedences; and
output structure for providing an output based on processing of the job stream by said processing structure using the CPM algorithm. - View Dependent Claims (39, 40)
-
-
41. A scheduler, comprising:
-
input structure configured to receive input information defining a job stream including arbitrary precedence types, said job stream involving a number of jobs to be executed using a defined resource set, said jobs including multiple predecessor jobs and multiple successor jobs that may be the same or different than the predecessor jobs, wherein execution of each of said successor jobs is dependent on an outcome of one or more of said predecessor jobs, and said arbitrary precedence types include at least a first outcome type relating to a first outcome of a first predecessor job and a second outcome type, different than said first outcome type, relating to a second outcome of a second predecessor job;
processing structure configured to execute a critical path method algorithm adapted to handle said arbitrary precedence types, said CPM algorithm involving the identification of a job path within said job stream, wherein each job of said job path has an identical Early Start and Late Start time upon proper application of said associated precedences; and
output structure for providing an output based on processing of the job stream by said processing structure using the CPM algorithm. - View Dependent Claims (42)
-
-
43. A method for use in analyzing job streams, comprising the steps of:
-
receiving input information including a definition of a job stream involving a number of jobs to be executed using a defined resource set;
identifying a parent object of said job stream having first and second child objects;
identifying a float associated with the parent object; and
first configuring a first processor to execute logic for determining a second float associated with one of the first and second child objects, said second float defining a temporal flexibility for at least one of a start time and an end time for executing said one of the first and second child objects, said second float including an inherited portion associated with a first float of said first parent object. - View Dependent Claims (44, 45, 46, 47, 48, 54)
-
-
49. A method for use in analyzing job streams, comprising the steps of:
-
receiving input information defining a number of jobs to be executed using a defined resource set, said jobs including multiple predecessor jobs and multiple successor jobs that may be the same or different than the predecessor jobs, where an execution of each of said successor jobs is dependent on a completion of one or more of said predecessor jobs; and
operating a computer system to determine and graphically depict, on a graphical user interface, output information including float for at least one of said number of jobs, where said float relates to a temporal flexibility of at least one of a start time and an end time for a subject job. - View Dependent Claims (50, 51)
-
-
52. A method for use in analyzing job streams, comprising the steps of:
-
receiving input information defining a job stream involving a number of jobs to be executed using a defined resource set, said jobs including multiple predecessor jobs and multiple successor jobs that may be the same or different than the predecessor jobs, where an execution of each of said successor jobs is dependent on a completion of one or more of said predecessor jobs;
first operating a computer system to graphically depict, on a graphical user interface, a usage graph reflecting a usage level of at least one resource of said resource set over a time period corresponding to execution of at least a portion of said job stream according to a first job stream schedule;
receiving, relative to said graphical user interface, a user input for altering a portion of said usage graph; and
second operating said computer system to alter said first job stream schedule based on said user input. - View Dependent Claims (53)
-
-
55. A method for use in analyzing job streams, comprising the steps of:
-
receiving input information defining a job stream involving a number of jobs to be executed using a defined resource set, said jobs including multiple predecessor jobs and multiple successor jobs that may be the same or different than the predecessor jobs, where an execution of each of said successor jobs is dependent-on a completion of one or more of said predecessor jobs;
first operating a computer system to determine, for a first job of said number of jobs, first information related to an execution time of said first job and second information relating to a float time of said first job; and
second operating said computer system to make a determination regarding a time for triggering an alarm concerning a delay in completion of said first job, said determination being based at least in part on said second information relating to said float time of said first job. - View Dependent Claims (56, 57)
-
-
58. A method for use in analyzing a job stream, comprising the steps of:
-
receiving input information defining a job stream involving a number of jobs to be executed using a defined resource set, said jobs including multiple predecessor jobs and multiple successor jobs that may be the same or different than the predecessor jobs, where an execution of each of said successor jobs is dependent on a completion of one or more of said predecessor jobs;
identifying first and second subsets of said job stream, said first subset of said job stream including at least a first job, said first subset being a predecessor within a context of said job stream to said second subset of said job stream, said second subset including at least a second job, wherein said definition of said job stream requires that said first subset is at least partially executed prior to said second subset;
second identifying a critical path relative to said second subset, where each critical path job on said critical path has zero float time such that a delay of any one of said critical path jobs results in a delay in completion of said second subset;
third identifying a first subset float time relating to a temporal flexibility in executing said first subset without delaying completion of said job stream; and
using said first subset float time to establish an execution time of a critical path job of said second subset. - View Dependent Claims (59)
-
-
60. A method for use in analyzing a job stream, comprising the steps of:
-
receiving input information defining a job stream involving a number of jobs to be executed using a defined resource set, said jobs including multiple predecessor jobs and multiple successor jobs that may be the same or different than the predecessor jobs, where an execution of each of said successor jobs is dependent on a completion of one or more of said predecessor jobs;
operating a computer system to identify a back float for a first successor job of said successor jobs, said back float relating to a flexibility to move a scheduled starting time of said first successor job to an earlier time without rescheduling a preceding one of said predecessor jobs; and
using said back float to determine an actual starting time for said first successor job. - View Dependent Claims (61, 62)
-
-
63. A method for use in analyzing a job stream, comprising the steps of:
-
receiving input information defining a job stream involving a number of jobs to be executed using a defined resource set, said jobs including multiple predecessor jobs and multiple successor jobs that may be the same or different than the predecessor jobs, where an execution of each of said successor jobs is dependent on a completion of one or more of said predecessor jobs;
first operating a computer system to add a float time to said entire job stream, said float time relating to a temporal flexibility for an execution time of said job stream; and
second operating said computer system to use said input information and said added float time to schedule execution of said job stream. - View Dependent Claims (64, 65, 66)
-
Specification