WO2000038091A1 - Method and apparatus for creating adaptive workflows - Google Patents

Method and apparatus for creating adaptive workflows Download PDF

Info

Publication number
WO2000038091A1
WO2000038091A1 PCT/US1999/024193 US9924193W WO0038091A1 WO 2000038091 A1 WO2000038091 A1 WO 2000038091A1 US 9924193 W US9924193 W US 9924193W WO 0038091 A1 WO0038091 A1 WO 0038091A1
Authority
WO
WIPO (PCT)
Prior art keywords
workflows
model
environment
nodes
task
Prior art date
Application number
PCT/US1999/024193
Other languages
French (fr)
Inventor
Yuri V. Smirnov
Philip C. Nelson
Jeffrey B. Winner
Yuh-Wen Soung
Cristos J. Goodrow
John L. Flight
Original Assignee
Impresse Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Impresse Corporation filed Critical Impresse Corporation
Priority to AU13157/00A priority Critical patent/AU1315700A/en
Publication of WO2000038091A1 publication Critical patent/WO2000038091A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06316Sequencing of tasks or work

Definitions

  • the present invention involves the selection of jobs for execution in manufacturing processes from declarative descriptions of the environment in which the processes are performed.
  • An adaptive workflow system that includes a scheduling engine and a workflow engine.
  • the scheduling engine may be configured to build workflows that describe sequences of tasks to be performed in a dynamically changing environment.
  • the workflow engine may be configured to monitor the execution of the tasks within the environment and to provide the scheduling engine with information regarding deviations of task executions from the workflows. When such deviations (e.g., changes in the environment) are detected and/or when new tasks are added, the workflow engine may trigger the scheduling engine to rebuild the workflows for as yet uncompleted tasks.
  • the workflows may define start and end times, etc. for the tasks.
  • the tasks may be a set of job requests to be processed in a manufacturing environment (e.g., a print shop).
  • the scheduling engine may be made up of an aggregate planner and a detailed scheduler. Aggregate plans that describe which jobs to do and how to do them may be first made and then passed to the detailed scheduler for timelining, and specific resource allocation, etc.
  • the manufacturing environment may be represented by a declarative model that describes the bills of materials and bills of resources for the manufacturing environment.
  • the manufacturing environment may be represented by a model that includes the resources consumed by the job requests.
  • workflows may be generated from the detailed schedule.
  • the workflows represent procedural steps to accomplish the process to be performed within the manufacturing environment.
  • generating a workflow may be accomplished by choosing one or more of a number of paths through the model (e.g., using the hierarchical aggregate planning and detailed scheduling approach), each of the paths comprising an alternating series of one or more of the state nodes and one or more of the task nodes with any predecessor state node in one of the paths representing a precondition for a subsequent task node along the one of the paths and any following state node of the subsequent task node along the one of the paths representing a result of applying one or more actions that correspond to that task node.
  • generating a workflow may be accomplished by choosing any one of a plurality of feasible routes for completion of the process defined by the model; by choosing an optimal one of a plurality of routes for completion of the process defined by the model; or by choosing one of a plurality of routes defined by the model according to one or more user-defined criteria for route selection.
  • the routes so chosen may define bills of resources for the real world environment defined by the model.
  • New workflows may be generated in response to an update to the model.
  • Figure 1 illustrates a model having task nodes and state nodes organized for use according to an embodiment of the present invention
  • Figure 2 illustrates a detailed model of a hypothetical print shop environment
  • Figure 3 illustrates an example of the hierarchical nature of a model having task nodes and state nodes organized for use according to an embodiment of the present invention
  • Figures 4A and 4B illustrate a printing process modeled by one or more task nodes according to a desired level of granularity for a model having task nodes and state nodes organized for use according to an embodiment of the present invention
  • Figure 5 illustrates an example of a scheduling system employing a model having task nodes and state nodes organized according to an embodiment of the present invention
  • Figure 6 illustrates a further example of a scheduling system configured in accordance with an embodiment of the present invention.
  • the method makes use of a declarative model of the real world environment.
  • the model is used to generate detailed schedules and workflows, i.e., procedural steps to be followed in accomplishing the process defined by the model.
  • the model may be regarded as a directed graph made up of state nodes and task nodes.
  • the task nodes and state nodes are interconnected with one another in such a way so as to define one or more paths through the directed graph, with each path defining a route to a completed product.
  • Each of the paths includes an alternating series of one or more of the state nodes and one or more of the task nodes. In some cases, two or more of the paths may share one or more task nodes and/or state nodes.
  • Generating the actual workflows may be accomplished using a scheduler that is permitted to access the model.
  • the scheduler uses rules to determine the criteria by which the workflows are produced.
  • generating the workflows may involve choosing any of a number of feasible routes defined by the model.
  • more sophisticated criteria for workflow generation such as optimizing for cost, value, execution time or other (e.g., user-defined) criteria may be specified and workflows generated accordingly.
  • the present scheme employs a hierarchical methodology in which an aggregate plan is first produced. Using the aggregate plan, a detailed schedule for the job requests may then be determined. The aggregate plan is arrived at through the use of a multidimensional bin packing scheme that accommodates contingencies.
  • the "bins" represent capacities of the manufacturing processes represented in the model.
  • the bin packing scheme is applied in order to arrive at an aggregate plan for doing the jobs. From this aggregate plan, a detailed schedule (i.e., one that includes start and end times, etc.) may be produced.
  • a workflow engine is used to monitor the real world environment.
  • the workflow engine may monitor the completion of tasks, starting of tasks and/or various equipment/resource states. This information may be used to determine when rescheduling operations are needed.
  • the workflow engine may trigger the scheduler to build new workflows for the remaining tasks. Any new workflow(s) would need to be built according to the current state of the real world environment.
  • the workflow engine is also configured to update the model of the environment so that the current state of the real world is accurately reflected.
  • the print shop includes a number of machines, which are used in the printing of books and similar articles.
  • the print shop includes a number of printers, each of which is capable of producing a document, printed on paper or another material, from a computer-readable file (e.g., a PostScriptTM file).
  • the print shop includes special printers for producing covers.
  • the print shop may include machines for binding the various documents and covers together and other machines for cutting the resulting products to size.
  • all of the products (e.g., books) produced by the print shop are produced using similar processes, but any of the end products may be created in any of a variety of ways.
  • the print shop is an example of a homogeneous manufacturing environment.
  • Model 10 represents the print shop environment in terms of its bill of materials and bill of resources. Stated differently, model 10 represents the print shop jobs to be performed in terms of the resources those jobs consume, along with the alternative paths therefor. It should be appreciated that model 10 may be instantiated as a computer-readable file and may thus be regarded as a virtual representation of the bill of materials and bill of resources. Importantly, the manner in which the inventory items that make up the bill of materials are interconnected to tasks that make up the bill of resources implicitly defines the workflow in the print shop.
  • a bill of materials is a summary that defines a product structure. More than merely a parts list, a bill of materials provides some idea of how a product is assembled from its constituent parts. In some cases, it may indicate the types and quantities of subassemblies required to produce the product. Although the bill of materials shows the assembly chain for the product, it does not provide any information as to how or when the assembly is to be completed.
  • a bill of resources is a precise list of the available reusable resources that may be employed to assemble the product. For example, the various machines that are located on the print shop floor comprise at least a portion of the print shop's bill of resources. In some cases, outside vendors and suppliers may be part of the bill of resources.
  • Workflows then may be regarded as detailed sets of instructions for how to assemble the product of interest.
  • the workflow specifies the order in which various resources are employed to produce the items on the bill of materials and, hence, acts as assembly instructions for the product.
  • Model 10 is unique in that it integrates a bill of materials with a bill of resources to provide a logical flow structure that may be easily used to identify available workflows. That is, one or more workflows may be regarded as instances of the model.
  • model 10 includes a collection of state nodes 12 and task nodes 14.
  • the nodes 12 and 14 are interconnected in such a fashion so as to form a state transition graph. That is, task nodes 14 define processes or actions by which predecessor state nodes 12 are transformed to successor state nodes 12.
  • the processes or actions defined by the task nodes 14 are those associated with the available resources of the manufacturing or other process defined by model 10 (e.g., the print shop machines and/or their associated operators for the above print shop example).
  • the state nodes 12 represent intermediate states (or milestones) which have been identified as comprising the bill of materials. All state nodes 12 are the outcome or result of a task node 14.
  • state nodes 12 and task nodes 14 always appear in alternating order as one proceeds along a path through the model. Paths are defined as complete routes to a final product and therefore may be regarded as workflows or production plans. Separating the state nodes 12 and task nodes 14 in this fashion provides clarity in the logical semantics of parallel paths. For example, all inputs to a task node 14 represent logical AND requirements. That is, the action associated with a given task node 14 cannot be performed until all of the associated inventory items represented by the state nodes 12 which feed the task node 14 are available. All inputs to a state node 12, on the other hand, represent logical ORs. That is, the inventory item defined by a given state node 12 may be produced by any of the actions associated with any immediate predecessor task node 14.
  • state nodes are represented using rectangles while task nodes are represented using ovals.
  • the logical flows that interconnect the nodes are depicted with thick lines representing logical ANDs and thin lines representing logical ORs.
  • model 10 may exist as a virtual representation of the associated manufacturing environment, for example, as may be present in a computer system, a computer-readable storage medium or other database environment. In some cases, model 10 may exist in various component parts in one or more locations of a distributed processing environment. Regardless of its physical location or makeup, however, it should be appreciated that model 10 may be continuously updated with information regarding the real-world manufacturing environment that it represents. In this way, as resources are taken off line or added, model 10 is available to identify new production plans.
  • a task node 14 may be defined with various attributes. For example, each task node may have an associated resource that actually performs the actions represented by the . task node. In addition, each task node 14 will have an associated capacity, which may represent the resource's required time for completing the task. Such information may become useful for identifying and avoiding bottlenecks in the manufacturing environment when using model 10 to plan/schedule multiple jobs.
  • the task nodes 14 also have defined predecessors, which in this case are represented by the state nodes 12. As indicated above, however, the attribute list need not include semantic definitions, because the structure of model 10 is such that the node type inherently defines the logical semantics. Other attributes relating to the rules and variants associated with each task node 14 may also be included.
  • State nodes 12 may also have associated attributes. Among these may be an indication of predecessor and/or successor actions/events. Other rules may also form attributes. In general, all nodes of model 10 will have associated rules and each rule may be associated with a successor node of the model. During processing of a real world job in the manufacturing environment represented by model 10, after an action associated with a node has been completed, all rules of the node may be evaluated. If a rule is satisfied, the job may be passed to the successor node associated with the rule. If more than one rule is satisfied, the job may be passed to multiple successor nodes, as represented by the existence of multiple parallel paths in the model 10.
  • each manufacturing process represented by a task node 14 requires certain resources to complete its associated task. These resources may be divided into materials and assets. Materials are those items which can be used only once (i.e., consumables) and are completely used up by the task that uses them. In the print shop environment, examples of materials include paper, toner (for the printers, etc.) and RIPed (raster image processed) images, etc. Assets are those resources that are not consumed by the processes that use them. Examples include the actual print machines, the physical plant, operators, etc. (i.e., assets are reusable resources). Both materials and assets may be represented in model 10.
  • a predecessor state node in one of the paths represents a precondition for a subsequent task node along that path.
  • a state node following a preceding task node along the one of the paths represents a result of applying one or more actions (e.g., manufacturing processes or sub-processes) that correspond to that task node.
  • State nodes and task nodes may be chosen to represent any appropriate level of item or material (in the case of state nodes) or process (in the case of task nodes). In one embodiment, for example, task nodes are introduced into the model to represent significant steps in the processing of materials in the manufacturing environment.
  • each task node represents a transformation process for an item or material from a preceding state to a following state.
  • the present model is flexible in that multiple task nodes may be used to represent multiple ways of transforming the item or material from the preceding state to the following state.
  • different actions or processes whether performed by humans, machines or both
  • the same task node e.g., depending upon the granularity of the model chosen to represent a particular manufacturing environment.
  • the model may be hierarchically arranged such that each task node may be expanded to its own directed graph representation using the model structure described herein.
  • Another interesting feature of the present model is the manner in which the logical semantics of the routes defined by the directed graph are implicit in the model structure itself. For example, all inputs to a task node implicitly represent logical AND requirements. Because of the hierarchy defined by the directed graph, it is axiomatic that the action (or actions) associated with a particular task node cannot be performed until all of the associated materials or items represented by the state nodes which feed that task node are available. The model structure itself makes this logical argument explicit, without having to introduce additional attributes when defining the task node. All inputs to a state node, on the other hand, represent logical ORs. That is, the inventory item or material defined by a particular state node may be produced by any of the actions associated with any immediate predecessor task nodes. Again, the structure of the present model itself defines these relationships, without requiring any additional defining attributes for a state node.
  • Model 20 presents a fully detailed model 20 of the hypothetical print shop.
  • Model 20 is created using a "top-down" approach, wherein the end product, book 22, is regarded as the outcome of the entire manufacturing process.
  • Model 20 is illustrated using the state node/ task node representation discussed above, where inventory items which make up the bill of materials for a book 22 are represented using rectangles and manufacturing processes which act on the inventory items are represented using ovals.
  • book 22 represents the final state (i.e., the output of the print shop manufacturing environment), it is recognized that this state must be the result of some action.
  • a book is produced once it is cut to shape; thus, book 22 is the result of one of either of two cutting processes 24 or 26.
  • model 20 accurately reflects the logical OR nature of these alternative processes.
  • model 20 accommodates the act of binding with task nodes representing two hypothetical alternative binding processes 30 and 32. As shown, these processes act on the predecessor inventory items, namely printed cover 34 and printed body 36.
  • the body of the book 22 refers to all material included within the cover.
  • the printed cover 34 and printed body 36 are represented using appropriate state nodes and the various logical combinations of these items, which may be acted upon by the two binding processes are also illustrated. It should be appreciated, however, that the very node definition will lead to the logical flow illustrated in model 20 and no additional rules need be defined.
  • Both the printed cover 34 and the printed body 36 are the result of independent printing processes.
  • printed cover 34 may be produced by either of cover printing processes 38 or 40
  • printed body 36 may be produced by any of printing processes 42, 44, 46 or 48.
  • appropriate task nodes representing these various processes are introduced into model 20. Again, the node definition itself has provided an immediate indication of the logical paths available within the manufacturing process.
  • the printing processes 42, 44, 46 and 48 each act upon a RIPed document, although some printing processes may only act upon certain types of RIPed documents.
  • two types of RIPed documents 50 and 52 may be produced, but each by independent RIPing processes 54, 56 and 58.
  • these individual inventory items are represented by state nodes assigned to the RIPed documents 50 and 52 and the various RIPing processes 54, 56 and 58 are represented using appropriate task node.
  • the RIPing processes themselves act upon PostScript files 60, represented by an appropriate state node.
  • the PostScript file 60 is produced in response to a retrieval process 62, such as loading a PostScript file.
  • cover PostScript file 64 For the cover, no RIPing process is required; thus printed cover 34 is produced directly from a cover PostScript file 64.
  • body PostScript file cover PostScript file 64 is retrieved by a retrieval process 66.
  • the retrieval processes 62 and 66 are carried out in response to a job request 64.
  • model 20 may be created by examining the prerequisites and/or preconditions that must exist in order to execute a particular task, and also determining the actions that are required to arrive at a particular inventory item. These prerequisites and actions are then combined in the logical hierarchy discussed above to form a single model in which the bill of materials (represented by the individual inventory items) and the bill of resources (represented by the collection of actions) are integrated with one another. This procedure may be applied to any manufacturing process, but is especially applicable to homogeneous manufacturing processes such as the print shop example, because a number of products may be produced using similar processes.
  • model 20 has not illustrated the integration of consumables, such integration is easily achieved.
  • consumables may be represented as predecessor state nodes to the tasks that consume them.
  • any or all of the printing processes 42, 44, 46 and/or 48 may draw upon paper, toner and other materials in addition to the RIPed documents.
  • Such materials may be represented as state nodes similar to the RIPed documents 50 and 52, with the exception that the state would have to be defined to indicate its consumable status.
  • state nodes representing consumables may be implemented so that their available/not available status must be defined prior to execution of a subsequent task.
  • direct feedback from the manufacturing environment may be used to update this status in real time.
  • any route through the model to a completed product automatically provides a complete bill of materials and bill of resources for that product.
  • alternative routes and, hence, alternative bills of materials and bills of resources
  • a scheduler may make use of the model to assist in the efficient employment of resources within the manufacturing environment. In essence, the scheduler will be required to perform route selection according to rules by which such routes may be chosen to achieve desirable or optimal results.
  • Model 70 is a virtual representation of a manufacturing environment that produces product, as represented by state node 72. Notice that multiple routes are defined by model 70, each route including its own state nodes (shown as rectangles) and task nodes (shown as ovals), some of which may be shared between routes. As explained above, these various routes each define bills of materials and bills of resources that may be used to produce the final product.
  • a particular route (i.e., a workflow) is defined by path 74, which includes task node 76, state node 78 and task node 80.
  • path 74 which includes task node 76, state node 78 and task node 80.
  • model 70 is used by a manufacturer that subcontracts the work to be performed by the process represented by task node 76.
  • this process is a self-contained unit that ultimately delivers the item represented by state node 78.
  • the manufacturer need not be concerned with the manner in which the item represented by state node 78 is actually produced.
  • model 70 need only include a representation of the process used to deliver that item (i.e., the granularity of task node 76 is such that an entire subcontracted manufacturing process is represented).
  • model 90 is a break down of task node 76, created to have the same logical semantic structure between task nodes and state nodes as in model 70.
  • model 90 uses the same directed graph approach, should the manufacture who relies upon model 70 to assist in scheduling and other tasks (e.g., order promising, etc.) wish to identify potential bottlenecks, model 90 could be substituted for task node 76 in model 70. In such a case, the scheduler could identify problems that might not otherwise be detectable by the manufacturer.
  • model 70 is hierarchically arranged such that any task node may be expanded to its own directed graph representation using a similar model structure.
  • Task nodes may also be defined at various levels of granularity as follows.
  • a task node 100 represents a transformation process between state nodes 102 and 104.
  • task node 100 may represent a document printing process employing any printer and any printer operator.
  • the process represented by task node 100 is very coarse, in that the print shop owner is concerned only with the document printing process and not individual printing machines/operators.
  • Figure 4B now illustrates the same document printing process, however, this time task nodes 110, 112 and 114 have been used to represent the process as performed by three different document printing machines. At this level of granularity, a model that included task nodes 110, 112 and 114 would provide different routes to produce the item represented by task node 104, differentiated by printing machine, but not by individual operator.
  • state nodes may also be used to represent any desired inventory item in the production process of the manufacturing environment being modeled. Thus, entire subassemblies may be represented in some cases, while in other cases lesser items may be included. Of course, corresponding task nodes will be needed to properly represent the processes used to produce the items represented by the state nodes.
  • Figure 5 illustrates one example of how a scheduler may make use of a model configured in accordance with the teachings presented herein.
  • the scheduler and the model may each be implemented in a computer system having a general-purpose processor and an accompanying memory and input/output system.
  • the scheduler may represent executable or other code representing a series of computer- readable instructions to be executed by the processor in accordance with the discussion provided below.
  • the model may exist as a computer readable database or other file accessible by the processor (e.g., stored in memory).
  • Model 130 is configured as a directed graph to represent a real-world manufacturing environment as described above.
  • model 130 includes multiple routes between alternating series of state nodes and task nodes to represent various ways in which a product may be produced.
  • Scheduler 132 is permitted to access model 130 so as to produce workflows 134 in response to tasks 136.
  • Tasks 136 may represent orders that are being placed for processing within the manufacturing environment, carry-overs from previous orders (e.g., that were not completed during previous shifts, etc.) or other requirements.
  • Workflows 134 represent the route through model 130 chosen by scheduler 132 for completion of individual tasks 136. That is, each workflow 138 represents a detailed set of instructions to complete a task (i.e., to produce a product called for by the associated task 136).
  • Model 130 may be continually updated to accurately reflect the real-world manufacturing environment, which it represents. Thus, as various operators take breaks or are replaced with new workers, and/or as machines are rotated in and out of service and/or as items in a particular bill of materials are completed or delayed due to equipment failure, model 130 is updated. This allows scheduler 132 to update workflows 134 to account for the changes in the real world environment.
  • scheduler 132 may determine which of the number of possible routes represented in model 130 are available to process each task 136 and may then provide work assignments accordingly. For example, scheduler 132 may determine which routes are unavailable by determining which processes represented by task nodes in model 130 are already filled to capacity and decide to schedule new tasks 136 along routes that do not include those task nodes.
  • scheduler 136 is a hierarchical process that incorporates an aggregate planning level and a detailed scheduling level as discussed below.
  • Figure 6 illustrates an alternative system for generating workflows in accordance with yet another embodiment of the present invention.
  • orders 140 are applied to a workflow engine 142.
  • the orders may represent requests for products that are produced in a manufacturing environment represented by model 144.
  • Model 144 may be a model organized in the fashion discussed above (e.g., as a directed graph with alternating series of state nodes and task nodes, etc.) or a model organized in another fashion.
  • workflow engine 142 calls upon scheduler 148 to provide scheduling information.
  • scheduler 148 queries model 144 to determine available routes for product completion that may be available. For example, where model 144 is configured as described above, scheduler 148 may examine routes as alternating series of state nodes and task nodes, and assess each complete route through the model 144 on the basis of one or more selection criteria. These criteria may be as simple as finding a viable route (i.e., any complete path through the model), to more complex selections involving a determination of the effect of loading particular manufacturing processes (as represented by task nodes) with additional projects (corresponding to new orders, etc.), to custom value maximizing selection decisions. Again, it is preferable that scheduler 148 perform this route selection procedure in a hierarchical fashion, employing an aggregate planning level and a detailed scheduling level.
  • model 144 accurately reports the current state of the manufacturing environment to scheduler 148. This state is continually updated according to updates 152 provided by workflow engine 142.
  • Workflow engine 142 receives update information (e.g., representing task completions, state availability, process availability, resource availability, etc.) and provides the necessary update information 152 that allows model 144 to accurately reflect the current state of the real world.
  • Scheduler 148 relies on the real world state reflected by model 144 to produce route selection decisions 154. These route selection decisions (made in accordance with the scheduler's rules for such selections) form the basis for the workflows 156 returned by workflow engine 142. Such workflows may be returned any time new orders 140 are placed, in response to events that affect the real world environment represented by model 144, or upon user request (e.g., at the start of a new shift in the manufacturing environment).
  • the scheduling task is preferably accomplished in two (or more) stages.
  • an aggregate planner is used at the lowest level of this hierarchical approach to scheduling.
  • the aggregate plan produced thereby then provides heuristic guidance to/for a detailed scheduler that may be used to determine a detailed timeline and/or sequence for the job requests.
  • the aggregate planner relies on a bin packing scheme wherein "bins" correspond to individual (or groups of) manufacturing processes, e.g., as represented by task nodes in the model of the manufacturing environment.
  • the capacity of the bins is determined by the resources available to perform the processes they represent and may be weighted to account for differences between work shifts, operators, etc.
  • the bin packing performed by the aggregate planner is, in essence, a route selection procedure and allows bottlenecks in the manufacturing environment to be identified.
  • the bin packing is performed in multiple dimensions and alternative routes (i.e., contingencies) are accounted for to identify an optimal or viable plan.
  • the selection of which jobs to perform is the task of the aggregate planner and the detailed scheduler.
  • the manner in which this task is accomplished may be considered with reference to the following.
  • N job requests are awaiting scheduling.
  • the jobs may each have an inherent value V and a cost (with respect to a particular operation) to complete C (here, cost may be measured in time or other units).
  • the N jobs may be plotted as a function of their values versus cost.
  • the goal of any manufacturing environment (or at least the owners thereof) is to choose (i.e., schedule) the subset of the N jobs that will return the highest value without exceeding a cost threshold C lh .
  • the number of all possible subsets of the N jobs is 2 N .
  • N For any appreciable N, trying all possible solutions then becomes difficult and requires significant time to process (e.g., if every combination of subsets of the N jobs is to be evaluated to find the best total V without exceeding C .
  • the process of examining every combination of the jobs is a one-dimensional bin packing problem where a particular job I is either included in the solution or not. The order of the jobs is at this point irrelevant.
  • the aggregate planner accounts for the multidimensional aspect of the manufacturing environment. However, it must also account for the multiple alternative routes identified in the model. For example, any of a number of print machines may be used. Each of these printers may have different costs and each must be accounted for. Thus, the aggregate planner performs the multidimensional bin packing procedure for each alternative route until a best (or sometimes just an acceptable) subset of jobs is identified.
  • the updates 146 received by workflow engine 142 may come in a variety of forms.
  • the updates 146 may reflect job completions and/or partial completions (e.g., as individual tasks associated with jobs are completed).
  • the updates 146 may reflect deviations from the workflows provided by scheduler 148. Such deviations may be encountered as a result of equipment failures, operator errors or inaccurate scheduling due to a lack of knowledge regarding parameters of a particular job. Whatever the reason, the deviations represent aberrations in the workflows 156 and should be accounted for.
  • the adaptive workflow system accounts for these deviations by having the workflow engine 142 update the model 144 to accurately reflect the true state of the real world (i.e., the actual state rather than just the projected state according to the previously produced workflows). Further, workflow engine 142 may issue reschedule commands 150, once a significant (which may be a user definable concept) deviation has been noted (alternatively, the model updates themselves may act a reschedule commands). This allows the workflows 156 to be rebuilt, based on the current state of the real world, as reflected in model 144. The newly bulit workflows 156 may then accommodate the prior deviations.
  • the scheduler 148 may operate according to a constraint that requires as few variations as possible for in-progress (or other) jobs when carrying out a reschedule operation.
  • scheduler 148 may make dramatic changes to the prior workflows in response to a reschedule command.

Abstract

A scheduling engine and an associated workflow engine may be configured to build workflows that describe sequences of tasks to be performed in a dynamically changing environment. The workflow engine may be configured to monitor the execution of the tasks within the environment and to provide the scheduling engine with information regarding deviations of task executions from the workflows. When such deviations are detected, the workflow engine may trigger the scheduling engine to rebuild the workflows for as yet uncompleted tasks. The scheduling engine may receive the information regarding the deviations via a declarative model of the physical environment. In general, the tasks may be a set of job requests to be processed in a manufacturing environment (e.g., a print shop). Also, the scheduling engine may be made up of an aggregate planner and a detailed scheduler. Aggregate plans for the jobs may be first made for the jobs and then passed to the detailed scheduler for timelining, etc. Building the aggregate plans may be accomplished by selecting a subset of the job requests according to a procedure for packing bins representing the resources of the manufacturing plant.

Description

METHOD AND APPARATUS FOR CREATING ADAPTIVE WORKFLOWS
FIELD OF THE INVENTION
The present invention involves the selection of jobs for execution in manufacturing processes from declarative descriptions of the environment in which the processes are performed.
BACKGROUND
Within manufacturing environments, the questions of deciding what products to produce (assuming the environment is capable of producing more than a single product), when to produce them, how much of each to produce and whether to accept new orders for different products must all be weighed against the realities of the various constraints imposed upon and within the environment. To assist in making such decisions, computational tools may be used to determine which products to produce and/or when to produce them. These tools are sometimes divided into two aspects: planning tools and scheduling tools. The term planning is used to identify those activities, and the relations therebetween, required to accomplish a set of goals. Scheduling then becomes the assignment of specific resources and time windows to the actions identified in the plan.
Although the use of such tools may assist in answering the questions posed, alone they cannot be relied upon to produce useful results. For example, if such tools are used in a static fashion, i.e., so that they are not used in a manner that accurately reflects the changes in the environment being experienced, they cannot be expected to produce reliable results. Further, such tools will not necessarily yield workflows that reflect detailed sets of instructions for how to assemble the products of interest. That is, where workflow specify the order in which various resources are to be employed to produce the products and, hence, act as assembly instructions for the product, scheduling tools may only generate worklists for individual items of equipment. What is needed therefore is an improved scheme for addressing the above-described needs of manufacturing environments.
SUMMARY OF THE INVENTION
An adaptive workflow system that includes a scheduling engine and a workflow engine is provided. The scheduling engine may be configured to build workflows that describe sequences of tasks to be performed in a dynamically changing environment. The workflow engine may be configured to monitor the execution of the tasks within the environment and to provide the scheduling engine with information regarding deviations of task executions from the workflows. When such deviations (e.g., changes in the environment) are detected and/or when new tasks are added, the workflow engine may trigger the scheduling engine to rebuild the workflows for as yet uncompleted tasks. The workflows may define start and end times, etc. for the tasks.
In general, the tasks may be a set of job requests to be processed in a manufacturing environment (e.g., a print shop). In such a scheme, the scheduling engine may be made up of an aggregate planner and a detailed scheduler. Aggregate plans that describe which jobs to do and how to do them may be first made and then passed to the detailed scheduler for timelining, and specific resource allocation, etc.
In some cases, the manufacturing environment may be represented by a declarative model that describes the bills of materials and bills of resources for the manufacturing environment. Alternatively, the manufacturing environment may be represented by a model that includes the resources consumed by the job requests.
Ultimately, workflows may be generated from the detailed schedule. The workflows represent procedural steps to accomplish the process to be performed within the manufacturing environment. In such cases, generating a workflow may be accomplished by choosing one or more of a number of paths through the model (e.g., using the hierarchical aggregate planning and detailed scheduling approach), each of the paths comprising an alternating series of one or more of the state nodes and one or more of the task nodes with any predecessor state node in one of the paths representing a precondition for a subsequent task node along the one of the paths and any following state node of the subsequent task node along the one of the paths representing a result of applying one or more actions that correspond to that task node.
In general though, any of a number of model representations may be used. Thus, generating a workflow may be accomplished by choosing any one of a plurality of feasible routes for completion of the process defined by the model; by choosing an optimal one of a plurality of routes for completion of the process defined by the model; or by choosing one of a plurality of routes defined by the model according to one or more user-defined criteria for route selection. The routes so chosen may define bills of resources for the real world environment defined by the model. New workflows may be generated in response to an update to the model.
Further details of these and other embodiments will be discussed below, however, it should be remembered that these are merely examples of implementations of the present invention.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention is illustrated by way of example, and not limitation, in the figures of the accompanying drawings in which like reference numerals refer to similar elements and in which:
Figure 1 illustrates a model having task nodes and state nodes organized for use according to an embodiment of the present invention;
Figure 2 illustrates a detailed model of a hypothetical print shop environment;
Figure 3 illustrates an example of the hierarchical nature of a model having task nodes and state nodes organized for use according to an embodiment of the present invention;
Figures 4A and 4B illustrate a printing process modeled by one or more task nodes according to a desired level of granularity for a model having task nodes and state nodes organized for use according to an embodiment of the present invention;
Figure 5 illustrates an example of a scheduling system employing a model having task nodes and state nodes organized according to an embodiment of the present invention; and
Figure 6 illustrates a further example of a scheduling system configured in accordance with an embodiment of the present invention.
DETAILED DESCRIPTION
A scheme for producing workflows for a set of jobs to be performed in a real world environment is described herein. Many of the techniques to be discussed will make reference to a manufacturing environment (and, in particular, a print shop environment) in which similar types of products are produced in similar ways. However, upon review of this specification, those of ordinary skill in the art will recognize that the planning techniques discussed herein may find application in a variety of environments. Therefore, in the following description the illustrated embodiments should be regarded as examples only, and should not be deemed to limit the scope of the present invention.
Before describing the workflow creation scheme in detail, it is helpful to present an overview. The method makes use of a declarative model of the real world environment. The model is used to generate detailed schedules and workflows, i.e., procedural steps to be followed in accomplishing the process defined by the model. In one embodiment, the model may be regarded as a directed graph made up of state nodes and task nodes. The task nodes and state nodes are interconnected with one another in such a way so as to define one or more paths through the directed graph, with each path defining a route to a completed product. Each of the paths includes an alternating series of one or more of the state nodes and one or more of the task nodes. In some cases, two or more of the paths may share one or more task nodes and/or state nodes.
Generating the actual workflows may be accomplished using a scheduler that is permitted to access the model. The scheduler uses rules to determine the criteria by which the workflows are produced. In some cases, generating the workflows may involve choosing any of a number of feasible routes defined by the model. However, in other cases, more sophisticated criteria for workflow generation, such as optimizing for cost, value, execution time or other (e.g., user-defined) criteria may be specified and workflows generated accordingly.
Because of the complexity of the scheduling task, the present scheme employs a hierarchical methodology in which an aggregate plan is first produced. Using the aggregate plan, a detailed schedule for the job requests may then be determined. The aggregate plan is arrived at through the use of a multidimensional bin packing scheme that accommodates contingencies. The "bins" represent capacities of the manufacturing processes represented in the model. Thus, given a list of possible jobs to be performed, the multiple possible ways in which those jobs may be performed in terms of the resources they use and consume, and the capacities of those resources, the bin packing scheme is applied in order to arrive at an aggregate plan for doing the jobs. From this aggregate plan, a detailed schedule (i.e., one that includes start and end times, etc.) may be produced.
As the tasks are processed according to the detailed schedule, a workflow engine is used to monitor the real world environment. For example, the workflow engine may monitor the completion of tasks, starting of tasks and/or various equipment/resource states. This information may be used to determine when rescheduling operations are needed. Thus, if the workflow engine detects that the execution of the tasks is deviating from the established workflow (e.g., due to equipment failures, lack of consumable resources, operator error, etc.), the workflow engine may trigger the scheduler to build new workflows for the remaining tasks. Any new workflow(s) would need to be built according to the current state of the real world environment. Hence, the workflow engine is also configured to update the model of the environment so that the current state of the real world is accurately reflected.
To better understand the above-described method, first consider a hypothetical print shop. The print shop includes a number of machines, which are used in the printing of books and similar articles. For example, the print shop includes a number of printers, each of which is capable of producing a document, printed on paper or another material, from a computer-readable file (e.g., a PostScript™ file). In addition, the print shop includes special printers for producing covers. Besides printers, the print shop may include machines for binding the various documents and covers together and other machines for cutting the resulting products to size. In general, all of the products (e.g., books) produced by the print shop are produced using similar processes, but any of the end products may be created in any of a variety of ways. For example depending upon the availability of resources (e.g., the printing, binding and cutting machines) and materials (e.g., paper and ink for the printers, cover stock, etc.) one route may be chosen over another. Thus, the print shop is an example of a homogeneous manufacturing environment.
Consider now the following scenario. A number of jobs, perhaps each at various stages of completion and each having certain deadlines for completion, are waiting to be processed. Each job has an associated cost of completion and each completed job has an associated value. Any job not completed on time carries an associated penalty, which may or may not have a linear relationship with the delay. The task facing the owner of the hypothetical print shop then, is to decide how best to employ the available resources and materials to complete the existing job requests within their designated time frames while optimizing for cost/value. In other words, the print shop owner needs to determine what work to do, when to do it, what resources to apply/utilize, etc., to complete the products. To this task can be added the complication that while the shop is running and without disrupting the in-progress operations, the print shop owner would like to be able to accept new orders, each of which will carry its own completion time deadlines, costs and values.
To assist the print shop owner in these and other matters, the model illustrated in Figure 1 is introduced. Model 10 represents the print shop environment in terms of its bill of materials and bill of resources. Stated differently, model 10 represents the print shop jobs to be performed in terms of the resources those jobs consume, along with the alternative paths therefor. It should be appreciated that model 10 may be instantiated as a computer-readable file and may thus be regarded as a virtual representation of the bill of materials and bill of resources. Importantly, the manner in which the inventory items that make up the bill of materials are interconnected to tasks that make up the bill of resources implicitly defines the workflow in the print shop.
Before going further, it is helpful to define some terms. A bill of materials, as used herein, is a summary that defines a product structure. More than merely a parts list, a bill of materials provides some idea of how a product is assembled from its constituent parts. In some cases, it may indicate the types and quantities of subassemblies required to produce the product. Although the bill of materials shows the assembly chain for the product, it does not provide any information as to how or when the assembly is to be completed. A bill of resources on the other hand, is a precise list of the available reusable resources that may be employed to assemble the product. For example, the various machines that are located on the print shop floor comprise at least a portion of the print shop's bill of resources. In some cases, outside vendors and suppliers may be part of the bill of resources.
Workflows then may be regarded as detailed sets of instructions for how to assemble the product of interest. The workflow specifies the order in which various resources are employed to produce the items on the bill of materials and, hence, acts as assembly instructions for the product. Model 10 is unique in that it integrates a bill of materials with a bill of resources to provide a logical flow structure that may be easily used to identify available workflows. That is, one or more workflows may be regarded as instances of the model.
Returning to Figure 1, model 10 includes a collection of state nodes 12 and task nodes 14. The nodes 12 and 14 are interconnected in such a fashion so as to form a state transition graph. That is, task nodes 14 define processes or actions by which predecessor state nodes 12 are transformed to successor state nodes 12. The processes or actions defined by the task nodes 14 are those associated with the available resources of the manufacturing or other process defined by model 10 (e.g., the print shop machines and/or their associated operators for the above print shop example). Thus, in model 10, the state nodes 12 represent intermediate states (or milestones) which have been identified as comprising the bill of materials. All state nodes 12 are the outcome or result of a task node 14.
In model 10, state nodes 12 and task nodes 14 always appear in alternating order as one proceeds along a path through the model. Paths are defined as complete routes to a final product and therefore may be regarded as workflows or production plans. Separating the state nodes 12 and task nodes 14 in this fashion provides clarity in the logical semantics of parallel paths. For example, all inputs to a task node 14 represent logical AND requirements. That is, the action associated with a given task node 14 cannot be performed until all of the associated inventory items represented by the state nodes 12 which feed the task node 14 are available. All inputs to a state node 12, on the other hand, represent logical ORs. That is, the inventory item defined by a given state node 12 may be produced by any of the actions associated with any immediate predecessor task node 14.
In model 10, state nodes are represented using rectangles while task nodes are represented using ovals. The logical flows that interconnect the nodes are depicted with thick lines representing logical ANDs and thin lines representing logical ORs.
Those of ordinary skill in the art will appreciate that model 10 may exist as a virtual representation of the associated manufacturing environment, for example, as may be present in a computer system, a computer-readable storage medium or other database environment. In some cases, model 10 may exist in various component parts in one or more locations of a distributed processing environment. Regardless of its physical location or makeup, however, it should be appreciated that model 10 may be continuously updated with information regarding the real-world manufacturing environment that it represents. In this way, as resources are taken off line or added, model 10 is available to identify new production plans.
Within the virtual representation, a task node 14 may be defined with various attributes. For example, each task node may have an associated resource that actually performs the actions represented by the .task node. In addition, each task node 14 will have an associated capacity, which may represent the resource's required time for completing the task. Such information may become useful for identifying and avoiding bottlenecks in the manufacturing environment when using model 10 to plan/schedule multiple jobs. The task nodes 14 also have defined predecessors, which in this case are represented by the state nodes 12. As indicated above, however, the attribute list need not include semantic definitions, because the structure of model 10 is such that the node type inherently defines the logical semantics. Other attributes relating to the rules and variants associated with each task node 14 may also be included.
State nodes 12 may also have associated attributes. Among these may be an indication of predecessor and/or successor actions/events. Other rules may also form attributes. In general, all nodes of model 10 will have associated rules and each rule may be associated with a successor node of the model. During processing of a real world job in the manufacturing environment represented by model 10, after an action associated with a node has been completed, all rules of the node may be evaluated. If a rule is satisfied, the job may be passed to the successor node associated with the rule. If more than one rule is satisfied, the job may be passed to multiple successor nodes, as represented by the existence of multiple parallel paths in the model 10.
Within this representation, each manufacturing process represented by a task node 14 requires certain resources to complete its associated task. These resources may be divided into materials and assets. Materials are those items which can be used only once (i.e., consumables) and are completely used up by the task that uses them. In the print shop environment, examples of materials include paper, toner (for the printers, etc.) and RIPed (raster image processed) images, etc. Assets are those resources that are not consumed by the processes that use them. Examples include the actual print machines, the physical plant, operators, etc. (i.e., assets are reusable resources). Both materials and assets may be represented in model 10.
To summarize, within the alternating structure of state nodes and task nodes, a predecessor state node in one of the paths (i.e., workflows) represents a precondition for a subsequent task node along that path. Similarly, a state node following a preceding task node along the one of the paths represents a result of applying one or more actions (e.g., manufacturing processes or sub-processes) that correspond to that task node. State nodes and task nodes may be chosen to represent any appropriate level of item or material (in the case of state nodes) or process (in the case of task nodes). In one embodiment, for example, task nodes are introduced into the model to represent significant steps in the processing of materials in the manufacturing environment.
It is important to recognize that the manufacturing processes or sub-processes represented by the individual task nodes may correspond to on-site or off-site processes (e.g., where subcontractors or remote manufacturing facilities may be employed). In general then, each task node represents a transformation process for an item or material from a preceding state to a following state. The present model is flexible in that multiple task nodes may be used to represent multiple ways of transforming the item or material from the preceding state to the following state. In other words, different actions or processes (whether performed by humans, machines or both) that lead to the same result may be represented by different task nodes, or, if preferable, by the same task node (e.g., depending upon the granularity of the model chosen to represent a particular manufacturing environment). Indeed, because of this flexibility, the model may be hierarchically arranged such that each task node may be expanded to its own directed graph representation using the model structure described herein.
Another interesting feature of the present model is the manner in which the logical semantics of the routes defined by the directed graph are implicit in the model structure itself. For example, all inputs to a task node implicitly represent logical AND requirements. Because of the hierarchy defined by the directed graph, it is axiomatic that the action (or actions) associated with a particular task node cannot be performed until all of the associated materials or items represented by the state nodes which feed that task node are available. The model structure itself makes this logical argument explicit, without having to introduce additional attributes when defining the task node. All inputs to a state node, on the other hand, represent logical ORs. That is, the inventory item or material defined by a particular state node may be produced by any of the actions associated with any immediate predecessor task nodes. Again, the structure of the present model itself defines these relationships, without requiring any additional defining attributes for a state node.
Figure 2 presents a fully detailed model 20 of the hypothetical print shop. Model 20 is created using a "top-down" approach, wherein the end product, book 22, is regarded as the outcome of the entire manufacturing process. Model 20 is illustrated using the state node/ task node representation discussed above, where inventory items which make up the bill of materials for a book 22 are represented using rectangles and manufacturing processes which act on the inventory items are represented using ovals.
Similar logical flows to those discussed above are inherent in the node structure and are represented in model 20 with thick lines representing logical ANDs and thin lines representing logical ORs.
Having decided that book 22 represents the final state (i.e., the output of the print shop manufacturing environment), it is recognized that this state must be the result of some action. In the print shop hypothetical, a book is produced once it is cut to shape; thus, book 22 is the result of one of either of two cutting processes 24 or 26. Notice that model 20 accurately reflects the logical OR nature of these alternative processes.
Because all task nodes (by which cutting processes 24 and 26 are represented in model 20) represent actions that are employed on one or more items of a bill of materials, it follows that the inputs to cutting processes 24 and 26 must be represented by state nodes. In this case, before a book can be cut to size by either of cutting processes 24 or 26, some bound material 28 must exist. The bound material 28 is represented in model 20 by the predecessor state node to the task nodes associated with the two cutting processes. Notice that the logical AND requirement for the bound material is also represented in model 20, thus illustrating the need for the bound material 28 to exist before the cutting process may be commenced.
If bound material 28 is available, it follows that some binding process must have been applied. Thus, model 20 accommodates the act of binding with task nodes representing two hypothetical alternative binding processes 30 and 32. As shown, these processes act on the predecessor inventory items, namely printed cover 34 and printed body 36. Here, the body of the book 22 refers to all material included within the cover. The printed cover 34 and printed body 36 are represented using appropriate state nodes and the various logical combinations of these items, which may be acted upon by the two binding processes are also illustrated. It should be appreciated, however, that the very node definition will lead to the logical flow illustrated in model 20 and no additional rules need be defined.
Both the printed cover 34 and the printed body 36 are the result of independent printing processes. For example, printed cover 34 may be produced by either of cover printing processes 38 or 40, while printed body 36 may be produced by any of printing processes 42, 44, 46 or 48. Thus, appropriate task nodes representing these various processes are introduced into model 20. Again, the node definition itself has provided an immediate indication of the logical paths available within the manufacturing process.
The printing processes 42, 44, 46 and 48 each act upon a RIPed document, although some printing processes may only act upon certain types of RIPed documents. In the hypothetical print shop environment, two types of RIPed documents 50 and 52 may be produced, but each by independent RIPing processes 54, 56 and 58. Thus, these individual inventory items are represented by state nodes assigned to the RIPed documents 50 and 52 and the various RIPing processes 54, 56 and 58 are represented using appropriate task node.
The RIPing processes themselves act upon PostScript files 60, represented by an appropriate state node. The PostScript file 60 is produced in response to a retrieval process 62, such as loading a PostScript file.
For the cover, no RIPing process is required; thus printed cover 34 is produced directly from a cover PostScript file 64. As for the body PostScript file, cover PostScript file 64 is retrieved by a retrieval process 66. The retrieval processes 62 and 66 are carried out in response to a job request 64.
Notice then that model 20 may be created by examining the prerequisites and/or preconditions that must exist in order to execute a particular task, and also determining the actions that are required to arrive at a particular inventory item. These prerequisites and actions are then combined in the logical hierarchy discussed above to form a single model in which the bill of materials (represented by the individual inventory items) and the bill of resources (represented by the collection of actions) are integrated with one another. This procedure may be applied to any manufacturing process, but is especially applicable to homogeneous manufacturing processes such as the print shop example, because a number of products may be produced using similar processes.
Although model 20 has not illustrated the integration of consumables, such integration is easily achieved. For example, consumables may be represented as predecessor state nodes to the tasks that consume them. Thus, any or all of the printing processes 42, 44, 46 and/or 48 may draw upon paper, toner and other materials in addition to the RIPed documents. Such materials may be represented as state nodes similar to the RIPed documents 50 and 52, with the exception that the state would have to be defined to indicate its consumable status. Thus, in some embodiments, state nodes representing consumables may be implemented so that their available/not available status must be defined prior to execution of a subsequent task. Preferably, direct feedback from the manufacturing environment may be used to update this status in real time.
From the above, it should be apparent that when the present model is used to represent a real-world manufacturing environment, any route through the model to a completed product automatically provides a complete bill of materials and bill of resources for that product. Further, alternative routes (and, hence, alternative bills of materials and bills of resources) are also provided. Thus, a scheduler may make use of the model to assist in the efficient employment of resources within the manufacturing environment. In essence, the scheduler will be required to perform route selection according to rules by which such routes may be chosen to achieve desirable or optimal results.
As indicated above, an embodiment of the model may be hierarchical in nature in that one or more task nodes themselves may be further represented by other embodiments of the model. An example of this hierarchical nature is illustrated in Figure 3. In the drawing, a model 70 is illustrated in part. Model 70 is a virtual representation of a manufacturing environment that produces product, as represented by state node 72. Notice that multiple routes are defined by model 70, each route including its own state nodes (shown as rectangles) and task nodes (shown as ovals), some of which may be shared between routes. As explained above, these various routes each define bills of materials and bills of resources that may be used to produce the final product. A particular route (i.e., a workflow) is defined by path 74, which includes task node 76, state node 78 and task node 80. When the process represented by task node 80 operates on the item represented by state node 80, the product represented by state node 72 is produced.
Assume now that model 70 is used by a manufacturer that subcontracts the work to be performed by the process represented by task node 76. For the manufacturer, this process is a self-contained unit that ultimately delivers the item represented by state node 78. The manufacturer need not be concerned with the manner in which the item represented by state node 78 is actually produced. Thus, model 70 need only include a representation of the process used to deliver that item (i.e., the granularity of task node 76 is such that an entire subcontracted manufacturing process is represented).
The subcontractor employed by the manufacturer, however, is very much concerned with the manufacturing process represented by task node 76 in model 70. Indeed, as shown in Figure 3, the entire subcontracted manufacturing environment may itself be represented by a model 90, which has similar structure to that of model 70. That is, model 90 is a break down of task node 76, created to have the same logical semantic structure between task nodes and state nodes as in model 70. Because model 90 uses the same directed graph approach, should the manufacture who relies upon model 70 to assist in scheduling and other tasks (e.g., order promising, etc.) wish to identify potential bottlenecks, model 90 could be substituted for task node 76 in model 70. In such a case, the scheduler could identify problems that might not otherwise be detectable by the manufacturer. Thus, model 70 is hierarchically arranged such that any task node may be expanded to its own directed graph representation using a similar model structure.
Task nodes may also be defined at various levels of granularity as follows. In Figure 4A, a task node 100 represents a transformation process between state nodes 102 and 104. Returning to the print shop metaphor discussed above, task node 100 may represent a document printing process employing any printer and any printer operator. At this level of granularity, the process represented by task node 100 is very coarse, in that the print shop owner is concerned only with the document printing process and not individual printing machines/operators.
Figure 4B now illustrates the same document printing process, however, this time task nodes 110, 112 and 114 have been used to represent the process as performed by three different document printing machines. At this level of granularity, a model that included task nodes 110, 112 and 114 would provide different routes to produce the item represented by task node 104, differentiated by printing machine, but not by individual operator.
Similar to the manner in which task nodes may be employed at various levels of granularity, state nodes may also be used to represent any desired inventory item in the production process of the manufacturing environment being modeled. Thus, entire subassemblies may be represented in some cases, while in other cases lesser items may be included. Of course, corresponding task nodes will be needed to properly represent the processes used to produce the items represented by the state nodes.
Figure 5 illustrates one example of how a scheduler may make use of a model configured in accordance with the teachings presented herein. Note that the scheduler and the model may each be implemented in a computer system having a general-purpose processor and an accompanying memory and input/output system. The scheduler, for example, may represent executable or other code representing a series of computer- readable instructions to be executed by the processor in accordance with the discussion provided below. Similarly, the model may exist as a computer readable database or other file accessible by the processor (e.g., stored in memory).
Model 130 is configured as a directed graph to represent a real-world manufacturing environment as described above. Thus, model 130 includes multiple routes between alternating series of state nodes and task nodes to represent various ways in which a product may be produced. Scheduler 132 is permitted to access model 130 so as to produce workflows 134 in response to tasks 136. Tasks 136 may represent orders that are being placed for processing within the manufacturing environment, carry-overs from previous orders (e.g., that were not completed during previous shifts, etc.) or other requirements. Workflows 134 represent the route through model 130 chosen by scheduler 132 for completion of individual tasks 136. That is, each workflow 138 represents a detailed set of instructions to complete a task (i.e., to produce a product called for by the associated task 136). Model 130 may be continually updated to accurately reflect the real-world manufacturing environment, which it represents. Thus, as various operators take breaks or are replaced with new workers, and/or as machines are rotated in and out of service and/or as items in a particular bill of materials are completed or delayed due to equipment failure, model 130 is updated. This allows scheduler 132 to update workflows 134 to account for the changes in the real world environment.
To produce workflows 134, scheduler 132 may determine which of the number of possible routes represented in model 130 are available to process each task 136 and may then provide work assignments accordingly. For example, scheduler 132 may determine which routes are unavailable by determining which processes represented by task nodes in model 130 are already filled to capacity and decide to schedule new tasks 136 along routes that do not include those task nodes. Of course, many other scheduling methods are known in the art and may be used to produce the workflows 134. Preferably, scheduler 136 is a hierarchical process that incorporates an aggregate planning level and a detailed scheduling level as discussed below.
Figure 6 illustrates an alternative system for generating workflows in accordance with yet another embodiment of the present invention. In the system, orders 140 are applied to a workflow engine 142. The orders may represent requests for products that are produced in a manufacturing environment represented by model 144. Model 144 may be a model organized in the fashion discussed above (e.g., as a directed graph with alternating series of state nodes and task nodes, etc.) or a model organized in another fashion. In response to orders 140 and/or updates 146 received from the real world environment represented by model 144, workflow engine 142 calls upon scheduler 148 to provide scheduling information.
These calls are made in the form of schedule or reschedule commands 150. In response, scheduler 148 queries model 144 to determine available routes for product completion that may be available. For example, where model 144 is configured as described above, scheduler 148 may examine routes as alternating series of state nodes and task nodes, and assess each complete route through the model 144 on the basis of one or more selection criteria. These criteria may be as simple as finding a viable route (i.e., any complete path through the model), to more complex selections involving a determination of the effect of loading particular manufacturing processes (as represented by task nodes) with additional projects (corresponding to new orders, etc.), to custom value maximizing selection decisions. Again, it is preferable that scheduler 148 perform this route selection procedure in a hierarchical fashion, employing an aggregate planning level and a detailed scheduling level.
In any event, model 144 accurately reports the current state of the manufacturing environment to scheduler 148. This state is continually updated according to updates 152 provided by workflow engine 142. Workflow engine 142 receives update information (e.g., representing task completions, state availability, process availability, resource availability, etc.) and provides the necessary update information 152 that allows model 144 to accurately reflect the current state of the real world.
Scheduler 148 relies on the real world state reflected by model 144 to produce route selection decisions 154. These route selection decisions (made in accordance with the scheduler's rules for such selections) form the basis for the workflows 156 returned by workflow engine 142. Such workflows may be returned any time new orders 140 are placed, in response to events that affect the real world environment represented by model 144, or upon user request (e.g., at the start of a new shift in the manufacturing environment).
As indicated, the scheduling task is preferably accomplished in two (or more) stages. At the lowest level of this hierarchical approach to scheduling, an aggregate planner is used. The aggregate plan produced thereby then provides heuristic guidance to/for a detailed scheduler that may be used to determine a detailed timeline and/or sequence for the job requests. The aggregate planner relies on a bin packing scheme wherein "bins" correspond to individual (or groups of) manufacturing processes, e.g., as represented by task nodes in the model of the manufacturing environment. The capacity of the bins is determined by the resources available to perform the processes they represent and may be weighted to account for differences between work shifts, operators, etc. The bin packing performed by the aggregate planner is, in essence, a route selection procedure and allows bottlenecks in the manufacturing environment to be identified. The bin packing is performed in multiple dimensions and alternative routes (i.e., contingencies) are accounted for to identify an optimal or viable plan.
The selection of which jobs to perform then is the task of the aggregate planner and the detailed scheduler. The manner in which this task is accomplished may be considered with reference to the following. Suppose N job requests are awaiting scheduling. The jobs may each have an inherent value V and a cost (with respect to a particular operation) to complete C (here, cost may be measured in time or other units). Thus, the N jobs may be plotted as a function of their values versus cost. The goal of any manufacturing environment (or at least the owners thereof) is to choose (i.e., schedule) the subset of the N jobs that will return the highest value without exceeding a cost threshold Clh.
Nominally, the number of all possible subsets of the N jobs is 2N. For any appreciable N, trying all possible solutions then becomes difficult and requires significant time to process (e.g., if every combination of subsets of the N jobs is to be evaluated to find the best total V without exceeding C . In a sense, the process of examining every combination of the jobs is a one-dimensional bin packing problem where a particular job I is either included in the solution or not. The order of the jobs is at this point irrelevant.
The aggregate planner accounts for the multidimensional aspect of the manufacturing environment. However, it must also account for the multiple alternative routes identified in the model. For example, any of a number of print machines may be used. Each of these printers may have different costs and each must be accounted for. Thus, the aggregate planner performs the multidimensional bin packing procedure for each alternative route until a best (or sometimes just an acceptable) subset of jobs is identified.
Returning now to Figure 6, the updates 146 received by workflow engine 142 may come in a variety of forms. For example, the updates 146 may reflect job completions and/or partial completions (e.g., as individual tasks associated with jobs are completed). In addition, the updates 146 may reflect deviations from the workflows provided by scheduler 148. Such deviations may be encountered as a result of equipment failures, operator errors or inaccurate scheduling due to a lack of knowledge regarding parameters of a particular job. Whatever the reason, the deviations represent aberrations in the workflows 156 and should be accounted for.
The adaptive workflow system accounts for these deviations by having the workflow engine 142 update the model 144 to accurately reflect the true state of the real world (i.e., the actual state rather than just the projected state according to the previously produced workflows). Further, workflow engine 142 may issue reschedule commands 150, once a significant (which may be a user definable concept) deviation has been noted (alternatively, the model updates themselves may act a reschedule commands). This allows the workflows 156 to be rebuilt, based on the current state of the real world, as reflected in model 144. The newly bulit workflows 156 may then accommodate the prior deviations.
In some cases, it may be important to preserve as many aspects of prior workflows as possible in subsequent workflows (e.g., that are built in response to a reschedule command). Accordingly, the scheduler 148 may operate according to a constraint that requires as few variations as possible for in-progress (or other) jobs when carrying out a reschedule operation.
In other cases, it may be impossible or impractical to introduce only minor variations into a workflow, for example where an equipment failure prevents such actions. In such cases, scheduler 148 may make dramatic changes to the prior workflows in response to a reschedule command.
Although the foregoing specification and accompanying figures discuss and illustrate specific embodiments, it should be appreciated that the present invention is to be measured only in terms of the claims that follow.

Claims

CLAIMSWhat is claimed is:
1. A system, comprising: a scheduler; and means for monitoring the current state of a schedule produced by the scheduler and the execution of the schedule in a physical environment.
2. The system of claim 1 wherein the scheduler comprises an aggregate planning level and a detailed scheduling level.
3. The system of claim 1 wherein the means for monitoring comprises a workflow engine configured to receive updates from the physical environment during execution of the schedule.
4. The system of claim 3 wherein the means for monitoring further comprises a virtual representation of the physical environment, the virtual representation being updateable by the workflow engine in response to the updates.
5. The system of claim 4 wherein the virtual representation of the physical environment comprises a model of a manufacturing environment.
6. The system of claim 4 wherein the virtual representation of the physical environment comprises a model of a print shop environment.
7. An adaptive workflow system, comprising: a scheduling engine configured to build workflows that describe a sequence of executing tasks to be performed in a dynamically changing environment; and a workflow engine configured to monitor the execution of the tasks within the environment and to provide the scheduling engine with information regarding deviations of task executions from the workflows so as to trigger the scheduling engine to build new workflows for as yet uncompleted ones of the tasks.
8. The adaptive workflow system of claim 7 wherein the workflows also describe start and end times for the tasks.
9. The adaptive workflow system of claim 7 wherein the information regarding deviations of tasks from the workflows is provided to the scheduling engine through a model of the environment.
10. The adaptive workflow system of claim 9 wherein the model comprises a directed graph, having a first number of state nodes and a second number of task nodes interconnected with the state nodes to define one or more paths through the directed graph, each of the paths comprising an alternating series of one or more of the state nodes and one or more of the task nodes with any predecessor state node in one of the paths representing a precondition for a subsequent task node along the one of the paths and any following state node of the subsequent task node along the one of the paths representing a result of applying one or more actions that correspond to that task node.
11. The adaptive workflow system of claim 10 wherein the state nodes comprise virtual representations of inventory items of a manufacturing environment.
12. The adaptive workflow system of claim 10 wherein at least a subset of the first number of state nodes as arranged in the hierarchy defined by the directed graph collectively define a bill of materials for a manufacturing environment.
13. The adaptive workflow system of claim 12 wherein the subset of the first number of state nodes define a route through the directed graph.
14. The adaptive workflow system of claim 12 wherein each of the second number of task nodes defines a virtual representation of a manufacturing process.
15. The adaptive workflow system of claim 12 wherein the second number of task nodes collectively define routings for the manufacturing environment.
16. The adaptive workflow system of claim 14 wherein individual ones of the routings define bills of resources for the manufacturing environment.
17. The adaptive workflow system of claim 12 wherein the second number of task nodes collectively define a group of reusable resources for the manufacturing environment.
18. A system, comprising: means for monitoring execution of workflows in a manufacturing environment; and means for updating the workflows based upon the execution thereof.
19. The system of claim 18 wherein the means for monitoring execution of workflows comprises a workflow engine configured to receive updates regarding the execution of the workflows from the manufacturing environment.
20. The system of claim 19 wherein the means for updating the workflows comprises a scheduling engine configured to build the workflows according to a current state of the manufacturing environment as reflected by a virtual representation thereof.
21. The system of claim 20 wherein the scheduling engine comprises an aggregate planning level and a detailed scheduling level.
22. The system of claim 21 wherein the scheduling engine is further configured to update the workflows in response to new job requests to be performed within the manufacturing environment.
23. The system of claim 21 wherein the workflows are updated by the scheduling engine in response to detected deviations in the workflows.
24. The system of claim 21 wherein the workflow engine is configured to ensure that the current state of the manufacturing environment is reflected in the virtual representation thereof.
PCT/US1999/024193 1998-12-18 1999-10-15 Method and apparatus for creating adaptive workflows WO2000038091A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU13157/00A AU1315700A (en) 1998-12-18 1999-10-15 Method and apparatus for creating adaptive workflows

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/216,355 US6546364B1 (en) 1998-12-18 1998-12-18 Method and apparatus for creating adaptive workflows
US09/216,355 1998-12-18

Publications (1)

Publication Number Publication Date
WO2000038091A1 true WO2000038091A1 (en) 2000-06-29

Family

ID=22806726

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1999/024193 WO2000038091A1 (en) 1998-12-18 1999-10-15 Method and apparatus for creating adaptive workflows

Country Status (3)

Country Link
US (1) US6546364B1 (en)
AU (1) AU1315700A (en)
WO (1) WO2000038091A1 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1418518A2 (en) * 2002-10-30 2004-05-12 Xerox Corporation Planning and scheduling reconfigurable systems with regular and diagnostic jobs
JP2004152296A (en) * 2002-10-30 2004-05-27 Xerox Corp Planning and scheduling system and method of reconfigurable system around off-line resource
EP1425633A2 (en) * 2001-04-30 2004-06-09 Hewlett-Packard Company Managing bookbinding consumables
EP1600836A2 (en) * 2004-05-27 2005-11-30 Xerox Corporation Exception handling in manufacturing systems combining on-line planning and predetermined rules
EP1770619A1 (en) * 2005-09-26 2007-04-04 Sap Ag Executable task modeling systems and methods
US7363209B2 (en) 2003-02-10 2008-04-22 Siemens Aktiengesellschaft System and method for controlling jobs of a production device
EP2161637A1 (en) * 2008-09-04 2010-03-10 Siemens Aktiengesellschaft Method for updating manufacturing planning data for a production process
EP2176778A2 (en) * 2007-06-29 2010-04-21 Microsoft Corporation Progressively implementing declarative models in distributed systems
EP2218021A1 (en) * 2007-10-26 2010-08-18 Microsoft Corporation Translating declarative models
EP2290617A3 (en) * 2009-08-31 2011-07-27 Accenture Global Services Limited Travel passenger check-in

Families Citing this family (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7546346B2 (en) 1997-07-28 2009-06-09 Juniper Networks, Inc. Workflow systems and methods for project management and information management
KR100375651B1 (en) * 1999-02-19 2003-03-15 (주)선테크놀로지 Operator's input processing unit and method thereof
US7289964B1 (en) * 1999-08-31 2007-10-30 Accenture Llp System and method for transaction services patterns in a netcentric environment
US7603285B2 (en) * 2000-03-31 2009-10-13 Ventyx Software Srl Enterprise scheduling system for scheduling mobile service representatives
US7079266B1 (en) * 2000-11-03 2006-07-18 Xerox Corporation Printshop resource optimization via the use of autonomous cells
US7065567B1 (en) * 2000-11-03 2006-06-20 Xerox Corporation Production server for automated control of production document management
US7064848B2 (en) 2000-12-12 2006-06-20 Xerox Corporation System and method for converting print jobs stored in printshop job description language files into printshop workflow
US6842749B2 (en) * 2001-05-10 2005-01-11 Hewlett-Packard Development Company, L.P. Method to use the internet for the assembly of parts
SG121719A1 (en) * 2001-07-19 2006-05-26 Oce Tech Bv Method for creating a workflow
WO2003014927A2 (en) * 2001-08-08 2003-02-20 Trivium Systems Inc. Scalable messaging platform for the integration of business software components
US7289966B2 (en) * 2001-08-14 2007-10-30 Norman Ken Ouchi Method and system for adapting the execution of a workflow route
US20030037090A1 (en) * 2001-08-14 2003-02-20 Koh Horne L. Tool services layer for providing tool service functions in conjunction with tool functions
US20030135384A1 (en) * 2001-09-27 2003-07-17 Huy Nguyen Workflow process method and system for iterative and dynamic command generation and dynamic task execution sequencing including external command generator and dynamic task execution sequencer
US7043318B1 (en) * 2001-10-23 2006-05-09 Advanced Micro Devices, Inc. Lot start agent that determines quantity and timing for lot starts
US6895573B2 (en) * 2001-10-26 2005-05-17 Resultmaker A/S Method for generating a workflow on a computer, and a computer system adapted for performing the method
CA2476314A1 (en) * 2002-02-07 2003-08-14 Think-Dynamics Inc. Method and system for managing resources in a data center
US20030182172A1 (en) * 2002-03-25 2003-09-25 Claggett Stuart Lee System and method to build project management processes
US7151973B1 (en) * 2002-07-18 2006-12-19 Oracle International Corporation Methods and systems for scheduling and buffer balancing
US7373211B1 (en) 2002-09-06 2008-05-13 National Semiconductor Corporation Graphical user interface for compliance monitoring in semiconductor wafer fabrication and method of operation
US7184850B1 (en) 2002-09-06 2007-02-27 National Semiconductor Corporation System and method for allocating multi-function resources for a wetdeck process in semiconductor wafer fabrication
US6957113B1 (en) * 2002-09-06 2005-10-18 National Semiconductor Corporation Systems for allocating multi-function resources in a process system and methods of operating the same
US7230736B2 (en) * 2002-10-30 2007-06-12 Palo Alto Research Center, Incorporated Planning and scheduling reconfigurable systems with alternative capabilities
US7299244B2 (en) * 2002-12-10 2007-11-20 Hewlett-Packard Development Company, L.P. System and method for dynamic sequencing of a requirements-based workflow
US8122453B2 (en) * 2003-02-04 2012-02-21 International Business Machines Corporation Method and system for managing resources in a data center
US8738415B2 (en) * 2003-03-24 2014-05-27 Hewlett-Packard Development Company, L.P. Automated workflow assignment to print jobs
US20030191681A1 (en) * 2003-05-06 2003-10-09 Gallion Kirk P. Method for managing a business process related to a document publishing project
CN1826610A (en) * 2003-05-07 2006-08-30 Sap股份有限公司 An end user oriented workflow approach including structured processing of ad hoc workflows with a collaborative process engine
US20050028073A1 (en) * 2003-07-28 2005-02-03 Henry Steven G. Method and system for automating workflows
JP4642368B2 (en) * 2003-08-01 2011-03-02 ハイデルベルガー ドルツクマシーネン アクチエンゲゼルシヤフト Automatic operation
US7167767B2 (en) * 2003-08-22 2007-01-23 Ged Integrated Solutions, Inc. Glass production sequencing
US7043319B1 (en) * 2003-09-30 2006-05-09 National Semiconductor Corporation System and method for visualizing the use of resources in a process system
US7039482B2 (en) * 2003-10-28 2006-05-02 Taiwan Semiconductor Manufacturing Company, Ltd. Floating process flow control system to handle operation events in a full automation plant
JP4676784B2 (en) * 2004-03-02 2011-04-27 株式会社リコー Process management apparatus, process management method, and process management program
US20050256818A1 (en) * 2004-04-30 2005-11-17 Xerox Corporation Workflow auto generation from user constraints and hierarchical dependence graphs for workflows
US7765291B1 (en) 2004-05-19 2010-07-27 Ultimus, Inc. Business process management/workflow automation software
US20050267792A1 (en) * 2004-05-28 2005-12-01 Sumit Mehrotra Method and system for laboratory management
US7640532B2 (en) * 2004-08-25 2009-12-29 International Business Machines Corporation Mapping software code to business logic
US20060092467A1 (en) * 2004-09-01 2006-05-04 Dumitrescu Tiberiu A Print job workflow system
US20060044597A1 (en) * 2004-09-01 2006-03-02 Dumitrescu Tiberiu A Print job workflow system
US8171474B2 (en) * 2004-10-01 2012-05-01 Serguei Mankovski System and method for managing, scheduling, controlling and monitoring execution of jobs by a job scheduler utilizing a publish/subscription interface
US7522175B2 (en) * 2004-11-23 2009-04-21 General Electric Company Workflow engine based dynamic modification of image processing and presentation in PACS
US7525554B2 (en) * 2005-01-03 2009-04-28 General Electric Company Content based hanging protocols facilitated by rules based system
US20060212336A1 (en) * 2005-03-21 2006-09-21 High Altitude Software Smart, web-based time management software
US8230042B2 (en) 2005-04-19 2012-07-24 International Business Machines Corporation Policy based auditing of workflows
US7734492B2 (en) * 2005-04-26 2010-06-08 Xerox Corporation Validation and analysis of JDF workflows using colored petri nets
US20060265201A1 (en) * 2005-05-03 2006-11-23 Martin Nathaniel G Method of improving workflows for a print shop
JP4345721B2 (en) * 2005-07-14 2009-10-14 コニカミノルタビジネステクノロジーズ株式会社 Management system
US7415485B2 (en) * 2005-09-13 2008-08-19 International Business Machines Corporation Workflow application having linked workflow components
US20070061182A1 (en) * 2005-09-13 2007-03-15 Brooks Patrick J Workflow operational console
US20070101342A1 (en) * 2005-10-31 2007-05-03 Microsoft Corporation Automated device driver management
US20070101328A1 (en) * 2005-10-31 2007-05-03 Microsoft Corporation Sequencing a single task sequence across multiple operating environments
JP2007133727A (en) * 2005-11-11 2007-05-31 Fujitsu Ltd Information processing apparatus, information processing method and program
US7483760B2 (en) * 2005-12-20 2009-01-27 Intel Corporation Mechanism for execution of global flow changes in a manufacturing system
US20070143169A1 (en) * 2005-12-21 2007-06-21 Grant Chad W Real-time workload information scheduling and tracking system and related methods
US20070156255A1 (en) * 2005-12-29 2007-07-05 Holger Herrmann Selecting resources to perform physical operations
US20070219843A1 (en) * 2006-03-14 2007-09-20 Keeler Jesse M Method and apparatus for providing work flows used to resolve alarm conditions detected in a system
US7752614B2 (en) * 2006-03-23 2010-07-06 International Business Machines Corporation Dynamic workflow documentation system
US20070244904A1 (en) * 2006-04-18 2007-10-18 Kristopher Durski Method and Architecture for Goal Oriented Applications, Configurations and Workflow Solutions on-the-Fly
US8396736B2 (en) * 2006-04-21 2013-03-12 Process Assets, Llc Systems and methods for providing documentation having succinct communication with scalability
US8082546B2 (en) * 2006-09-29 2011-12-20 International Business Machines Corporation Job scheduling to maximize use of reusable resources and minimize resource deallocation
US20080103990A1 (en) * 2006-10-31 2008-05-01 Danielson Philip G System and Method for Managing Workflow Using a Configurable Bill of Materials and Data Element Repository
US9691038B2 (en) * 2006-11-03 2017-06-27 International Business Machines Corporation Method and apparatus for examining workflow processes
US8015053B2 (en) * 2007-03-20 2011-09-06 Xerox Corporation Processor, system and method for accommodating high priority print jobs
WO2008124512A1 (en) * 2007-04-03 2008-10-16 Zurisoft, Llc Mixed workforce using priority queuing of automated bid dispatch and compliance monitoring
US20080255909A1 (en) * 2007-04-13 2008-10-16 International Business Machines Corporation Product, method and system for dynamically changing the execution sequence of steps or tasks in a computerized process
US8725546B2 (en) * 2007-07-18 2014-05-13 Xerox Corporation Workflow scheduling method and system
US20090025002A1 (en) * 2007-07-18 2009-01-22 Xerox Corporation Methods and systems for routing large, high-volume, high-variability print jobs in a document production environment
US8145517B2 (en) * 2007-07-18 2012-03-27 Xerox Corporation Methods and systems for scheduling job sets in a production environment
US20090030896A1 (en) * 2007-07-23 2009-01-29 Autiq As Inference search engine
US8705080B2 (en) * 2007-09-11 2014-04-22 Xerox Corporation Automated print shop service capability determination
JP4508226B2 (en) * 2007-09-28 2010-07-21 富士ゼロックス株式会社 Workflow system and program
US20090089115A1 (en) * 2007-10-01 2009-04-02 Oracle International Corporation Computer-implemented methods and systems for deriving process flow diagrams
US20090119618A1 (en) * 2007-11-06 2009-05-07 David Everton Norman User-specified configuration of prediction services
US20090119669A1 (en) * 2007-11-06 2009-05-07 David Everton Norman User-specified configuration of scheduling services
US20090125366A1 (en) * 2007-11-13 2009-05-14 Dipanjan Chakraborty Method and system for dynamic adaptation of workflows
JP4568320B2 (en) * 2007-11-19 2010-10-27 株式会社日立製作所 Processing procedure generation apparatus and processing procedure generation method
US20090158286A1 (en) * 2007-12-18 2009-06-18 International Business Machines Corporation Facility for scheduling the execution of jobs based on logic predicates
US20090235356A1 (en) * 2008-03-14 2009-09-17 Clear Blue Security, Llc Multi virtual expert system and method for network management
US8869165B2 (en) * 2008-03-20 2014-10-21 International Business Machines Corporation Integrating flow orchestration and scheduling of jobs and data activities for a batch of workflows over multiple domains subject to constraints
US20090249293A1 (en) * 2008-03-31 2009-10-01 International Business Machines Corporation Defining Workflow Processing Using a Static Class-Level Network in Object-Oriented Classes
JP5083408B2 (en) * 2008-06-25 2012-11-28 富士通株式会社 Configuration management apparatus, configuration management program, and configuration management method
US8856018B2 (en) * 2008-09-15 2014-10-07 The Boeing Company Methods and systems for optimizing production forecasts using statistically prioritized discrete modeling methodology
US8266477B2 (en) * 2009-01-09 2012-09-11 Ca, Inc. System and method for modifying execution of scripts for a job scheduler using deontic logic
US20100262451A1 (en) * 2009-04-14 2010-10-14 The Boeing Company Simplified Approach for Service Composition and Orchestration
US9014827B2 (en) * 2010-01-14 2015-04-21 International Business Machines Corporation Dynamically generating a manufacturing production work flow with selectable sampling strategies
US9818077B2 (en) 2010-07-23 2017-11-14 Hewlett-Packard Development Company, L.P. Arranging functional elements into a workflow
US8893133B2 (en) * 2010-09-01 2014-11-18 International Business Machines Corporation Dynamic test scheduling by ordering tasks for performance based on similarities between the tasks
US9280386B1 (en) * 2011-07-14 2016-03-08 Google Inc. Identifying task instance outliers based on metric data in a large scale parallel processing system
US20140067360A1 (en) * 2012-09-06 2014-03-06 International Business Machines Corporation System And Method For On-Demand Simulation Based Learning For Automation Framework
JP6470690B2 (en) * 2012-11-07 2019-02-13 ベックマン コールター, インコーポレイテッド Automatic sample processing system
US20140136268A1 (en) * 2012-11-15 2014-05-15 Hewlett-Packard Development Company, L.P. Validating Feasibility of Proposed Contract Provisions
US20140324512A1 (en) * 2013-04-29 2014-10-30 International Business Machines Corporation Automated business function implementation analysis and adaptive transaction integration
US10089434B2 (en) 2014-05-06 2018-10-02 Beckman Coulter, Inc. Method and system for forming site network
GB201417262D0 (en) * 2014-09-30 2014-11-12 Bizagi Group Contextual workflow management
US10067798B2 (en) 2015-10-27 2018-09-04 International Business Machines Corporation User interface and system supporting user decision making and readjustments in computer-executable job allocations in the cloud
US10768612B2 (en) * 2017-06-02 2020-09-08 Applied Materials, Inc. Method for back end planning and scheduling
US20190279126A1 (en) * 2018-03-07 2019-09-12 Optessa Inc. Generating a global workflow sequence for multiple workflow stages
US11436543B2 (en) * 2020-12-31 2022-09-06 Target Brands, Inc. Plan creation interfaces for warehouse operations
US11710088B1 (en) * 2021-02-16 2023-07-25 Target Brands, Inc. Scalable order management monitoring

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5432887A (en) * 1993-03-16 1995-07-11 Singapore Computer Systems Neural network system and method for factory floor scheduling

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3581072A (en) 1968-03-28 1971-05-25 Frederick Nymeyer Auction market computation system
US3703006A (en) 1970-10-28 1972-11-14 Collins Radio Co Algorithm for synthesizing economical data communication network
US3703725A (en) 1970-11-02 1972-11-21 Texas Instruments Inc Method for operating a manufacturing line
US3905045A (en) 1973-06-29 1975-09-09 Control Data Corp Apparatus for image processing
UST918004I4 (en) 1973-04-03 1974-01-01 Program generator for branching questionnaire
US3930251A (en) 1974-05-09 1975-12-30 Compugraphic Corp Character image generation apparatus and CRT phototypesetting systems
DE2430762A1 (en) 1974-06-26 1976-01-15 Gruner & Jahr PROCESS FOR INFORMATION PROCESSING FOR THE PRODUCTION OF A PRINTING FORM AND DEVICE FOR CARRYING OUT THE PROCESS
US3988570A (en) 1975-01-10 1976-10-26 Endyn Industries Ltd. Controlled access and automatic revenue reporting system
US4017831A (en) 1976-03-15 1977-04-12 The Boeing Company N/C machine paging, status and report system
US4231096A (en) 1978-10-10 1980-10-28 Eltra Corporation Digital typesetter
US4266271A (en) 1978-10-10 1981-05-05 Chamoff Martin E Reconfigurable cluster of data-entry terminals
US4433426A (en) 1980-06-16 1984-02-21 Veb Kombinat Polygraph "Werner Lamberz" Control system for printing machines
US4400783A (en) 1980-09-05 1983-08-23 Westinghouse Electric Corp. Event-logging system
DE3136703C1 (en) 1981-09-16 1982-11-04 M.A.N.- Roland Druckmaschinen AG, 6050 Offenbach Devices on printing presses with register adjustment devices
US4449186A (en) 1981-10-15 1984-05-15 Cubic Western Data Touch panel passenger self-ticketing system
US4495582A (en) 1982-06-04 1985-01-22 Harris Graphics Corporation Control system for pre-setting and operation of a printing press and collator
US4475156A (en) 1982-09-21 1984-10-02 Xerox Corporation Virtual machine control
JPS5995645A (en) 1982-11-24 1984-06-01 Toshiba Corp Information arranging device
US4584648A (en) 1983-09-14 1986-04-22 Pitney Bowes Inc. Post office window system with programmable prompts
US4578768A (en) 1984-04-06 1986-03-25 Racine Marsh V Computer aided coordinate digitizing system
US4648023A (en) 1985-05-23 1987-03-03 Powell Roger A Method for resource allocation for the manufacture of a product
US4796194A (en) 1986-08-20 1989-01-03 Atherton Robert W Real world modeling and control process
US4839829A (en) 1986-11-05 1989-06-13 Freedman Henry B Automated printing control system
JPS6476360A (en) 1987-09-18 1989-03-22 Hitachi Ltd Work scheduling system
US5016170A (en) 1988-09-22 1991-05-14 Pollalis Spiro N Task management
US5212791A (en) * 1989-09-27 1993-05-18 International Business Machines Corporation Dynamic scheduling
US5233533A (en) 1989-12-19 1993-08-03 Symmetrix, Inc. Scheduling method and apparatus
US5291394A (en) 1990-06-01 1994-03-01 Motorola, Inc. Manufacturing control and capacity planning system
JP2789801B2 (en) 1990-08-23 1998-08-27 トヨタ自動車株式会社 Production plan creation method
US5748899A (en) 1990-09-07 1998-05-05 Lowry Computer Products, Inc. Method and system for collecting and processing bar code data
US5229948A (en) 1990-11-03 1993-07-20 Ford Motor Company Method of optimizing a serial manufacturing system
US5406476A (en) 1991-04-11 1995-04-11 Sun Microsystems, Inc. Method and apparatus for resource constraint scheduling
JPH04365162A (en) 1991-06-13 1992-12-17 Matsushita Electric Ind Co Ltd Analyzing method and scheduling method of resource allocation and systems therefor
US5369570A (en) * 1991-11-14 1994-11-29 Parad; Harvey A. Method and system for continuous integrated resource management
US5291397A (en) 1991-12-20 1994-03-01 Powell Roger A Method for resource allocation and project control for the production of a product
US5287194A (en) 1992-11-25 1994-02-15 Xerox Corporation Distributed printing
US5574640A (en) 1993-03-25 1996-11-12 Carnegie Mellon University Case-based scheduling method for creating a schedule
US5794207A (en) 1996-09-04 1998-08-11 Walker Asset Management Limited Partnership Method and apparatus for a cryptographically assisted commercial network system designed to facilitate buyer-driven conditional purchase offers
US5630070A (en) * 1993-08-16 1997-05-13 International Business Machines Corporation Optimization of manufacturing resource planning
US5463555A (en) 1993-09-28 1995-10-31 The Dow Chemical Company System and method for integrating a business environment with a process control environment
US5734837A (en) 1994-01-14 1998-03-31 Action Technologies, Inc. Method and apparatus for building business process applications in terms of its workflows
US5592602A (en) 1994-05-17 1997-01-07 Macromedia, Inc. User interface and method for controlling and displaying multimedia motion, visual, and sound effects of an object on a display
US5586219A (en) 1994-09-30 1996-12-17 Yufik; Yan M. Probabilistic resource allocation system with self-adaptive capability
US5768506A (en) 1994-09-30 1998-06-16 Hewlett-Packard Co. Method and apparatus for distributed workflow building blocks of process definition, initialization and execution
US5596502A (en) 1994-11-14 1997-01-21 Sunoptech, Ltd. Computer system including means for decision support scheduling
US5557367A (en) 1995-03-27 1996-09-17 Xerox Corporation Method and apparatus for optimizing scheduling in imaging devices
US5504568A (en) 1995-04-21 1996-04-02 Xerox Corporation Print sequence scheduling system for duplex printing apparatus
US5757669A (en) 1995-05-31 1998-05-26 Netscape Communications Corporation Method and apparatus for workgroup information replication
JPH0934953A (en) 1995-07-21 1997-02-07 Toppan Printing Co Ltd Plate making process progress management system
JPH09512377A (en) 1995-08-18 1997-12-09 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン Method and apparatus for process and project management computer systems
US5754857A (en) 1995-12-08 1998-05-19 Sun Microsystems, Inc. Distributed asynchronous workflow on the net
US5778364A (en) 1996-01-02 1998-07-07 Verity, Inc. Evaluation of content of a data set using multiple and/or complex queries
WO1997028506A1 (en) 1996-02-02 1997-08-07 Wallace Computer Services, Inc. Custom product estimating and order processing system
BR9600543A (en) 1996-02-06 1997-12-30 Samir Jacob Bechara Computerized system for choosing and adapting glasses
US5758328A (en) 1996-02-22 1998-05-26 Giovannoli; Joseph Computerized quotation system and method
US5765139A (en) 1996-04-30 1998-06-09 International Business Machines Corporation Method and apparatus for transforming a resource planning data structure into a scheduling data structure
US5729790A (en) 1997-01-21 1998-03-17 Xerox Corporation Operation scheduling system for a digital printing apparatus using a tree of possible schedules
JP3619643B2 (en) 1997-10-01 2005-02-09 株式会社アマダ Ordering system for sheet metal processing using the Internet

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5432887A (en) * 1993-03-16 1995-07-11 Singapore Computer Systems Neural network system and method for factory floor scheduling

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CLASSEN I ET AL: "Towards evolutionary and adaptive workflow systems-infrastructure support based on Higher-Order Object Nets and CORBA", PROCEEDINGS. FIRST INTERNATIONAL ENTERPRISE DISTRIBUTED OBJECT COMPUTING WORKSHOP (CAT. NO.97TB100130), PROCEEDINGS FIRST INTERNATIONAL ENTERPRISE DISTRIBUTED OBJECT COMPUTING WORKSHOP, GOLD COAST, QLD., AUSTRALIA, 24-26 OCT. 1997, 1997, Los Alamitos, CA, USA, IEEE Comput. Soc, USA, pages 300 - 308, XP002135793, ISBN: 0-8186-8031-8 *
KERR R M: "A knowledge based, integrated process planning and scheduling system for document preparation", ADVANCES IN PRODUCTION MANAGEMENT SYSTEMS. PROCEEDINGS OF THE 4TH IFIP TC5/WG5.7 INTERNATIONAL CONFERENCE, ARMS '90, ESPOO, FINLAND, 20-22 AUG. 1990, 1991, Amsterdam, Netherlands, North-Holland, Netherlands, pages 497 - 506, XP000892975, ISBN: 0-444-88919-1 *
SHETH A: "From contemporary workflow process automation to adaptive and dynamic work activity coordination and collaboration", PROCEEDINGS. EIGHTH INTERNATIONAL WORKSHOP ON DATABASE AND EXPERT SYSTEMS APPLICATIONS (CAT. NO. 97TB100181), DATABASE AND EXPERT SYSTEMS APPLICATIONS. 8TH INTERNATIONAL CONFERENCE, DEXA '97. PROCEEDINGS, TOULOUSE, FRANCE, 1-2 SEPT. 1997, 1997, Los Alamitos, CA, USA, IEEE Comput. Soc, USA, pages 24 - 27, XP002135795, ISBN: 0-8186-8147-0 *
SUNG JOO PARK ET AL: "Heuristic knowledge representation of production scheduling: an integrated modeling approach", EXPERT SYSTEMS WITH APPLICATIONS, 1996, ELSEVIER, UK, vol. 10, no. 3-4, pages 325 - 339, XP000893055, ISSN: 0957-4174 *

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1425633A2 (en) * 2001-04-30 2004-06-09 Hewlett-Packard Company Managing bookbinding consumables
EP1425633A4 (en) * 2001-04-30 2007-01-03 Hewlett Packard Co Managing bookbinding consumables
EP1418518A2 (en) * 2002-10-30 2004-05-12 Xerox Corporation Planning and scheduling reconfigurable systems with regular and diagnostic jobs
EP1418518A3 (en) * 2002-10-30 2004-05-19 Xerox Corporation Planning and scheduling reconfigurable systems with regular and diagnostic jobs
JP2004152296A (en) * 2002-10-30 2004-05-27 Xerox Corp Planning and scheduling system and method of reconfigurable system around off-line resource
US8315898B2 (en) 2002-10-30 2012-11-20 Palo Alto Research Center, Incorporated Planning and scheduling reconfigurable systems around off-line resources
US7233405B2 (en) 2002-10-30 2007-06-19 Palo Alto Research Center, Incorporated Planning and scheduling reconfigurable systems with regular and diagnostic jobs
US7363209B2 (en) 2003-02-10 2008-04-22 Siemens Aktiengesellschaft System and method for controlling jobs of a production device
EP1600836A3 (en) * 2004-05-27 2007-07-18 Xerox Corporation Exception handling in manufacturing systems combining on-line planning and predetermined rules
EP1600836A2 (en) * 2004-05-27 2005-11-30 Xerox Corporation Exception handling in manufacturing systems combining on-line planning and predetermined rules
EP1770619A1 (en) * 2005-09-26 2007-04-04 Sap Ag Executable task modeling systems and methods
EP2176778A2 (en) * 2007-06-29 2010-04-21 Microsoft Corporation Progressively implementing declarative models in distributed systems
EP2176778A4 (en) * 2007-06-29 2011-10-12 Microsoft Corp Progressively implementing declarative models in distributed systems
EP2218021A1 (en) * 2007-10-26 2010-08-18 Microsoft Corporation Translating declarative models
EP2218021A4 (en) * 2007-10-26 2011-10-12 Microsoft Corp Translating declarative models
EP2161637A1 (en) * 2008-09-04 2010-03-10 Siemens Aktiengesellschaft Method for updating manufacturing planning data for a production process
US8306645B2 (en) 2008-09-04 2012-11-06 Siemens Aktiengesellschaft Method for updating manufacturing planning data for a production process
EP2290617A3 (en) * 2009-08-31 2011-07-27 Accenture Global Services Limited Travel passenger check-in
US8706533B2 (en) 2009-08-31 2014-04-22 Accenture Global Services Limited Travel passenger check-in

Also Published As

Publication number Publication date
US6546364B1 (en) 2003-04-08
AU1315700A (en) 2000-07-12

Similar Documents

Publication Publication Date Title
US6546364B1 (en) Method and apparatus for creating adaptive workflows
US6279009B1 (en) Dynamic creation of workflows from deterministic models of real world processes
US6278901B1 (en) Methods for creating aggregate plans useful in manufacturing environments
US6321133B1 (en) Method and apparatus for order promising
Smith Reactive scheduling systems
Davenport et al. A survey of techniques for scheduling with uncertainty
Hoitomt et al. A practical approach to job-shop scheduling problems
Fox et al. The integrated supply chain management system
Biswas et al. Object oriented modeling and decision support for supply chains
US6842899B2 (en) Apparatus and method for resource negotiations among autonomous agents
Porter et al. Manufacturing classifications: relationships with production control systems
AU764982B2 (en) Method for computerized supply chain planning
USRE38633E1 (en) Automated, electronic network based, project management server system
US8024275B2 (en) Method and system for monitoring a business process
US6347256B1 (en) Manufacturing process modeling techniques
US7130809B1 (en) System for planning a new product portfolio
KR20010079838A (en) Computer-implemented product development planning method
Beck et al. Supply chain coordination via mediated constraint relaxation
US20210342763A1 (en) Distributing order execution in a mom system
JP6853134B2 (en) Production support system and production support method
Li Proposing an architectural framework of a hybrid knowledge‐based system for production rescheduling
Bosi et al. Enhancing CLP branch and bound techniques for scheduling problems
Manheim et al. Working with an intelligent assistant: experiments with a symbiotic DSS for production planning and scheduling
Beck et al. Open planning, scheduling and constraint management architectures
Zimmermann Decentralized Scheduling of Discrete Production Systems with Limited Buffers

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref country code: AU

Ref document number: 2000 13157

Kind code of ref document: A

Format of ref document f/p: F

AK Designated states

Kind code of ref document: A1

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

CFP Corrected version of a pamphlet front page

Free format text: REVISED ABSTRACT RECEIVED BY THE INTERNATIONAL BUREAU AFTER COMPLETION OF THE TECHNICAL PREPARATIONS FOR INTERNATIONAL PUBLICATION

122 Ep: pct application non-entry in european phase