US9760325B2 - Automatic load balancer for presses - Google Patents

Automatic load balancer for presses Download PDF

Info

Publication number
US9760325B2
US9760325B2 US14/866,238 US201514866238A US9760325B2 US 9760325 B2 US9760325 B2 US 9760325B2 US 201514866238 A US201514866238 A US 201514866238A US 9760325 B2 US9760325 B2 US 9760325B2
Authority
US
United States
Prior art keywords
press
presses
print job
highest priority
loaded
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
US14/866,238
Other versions
US20160019012A1 (en
Inventor
Steve Morris
Philippe Mucher
Nir Gilon
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Indigo BV
Original Assignee
Hewlett Packard Indigo BV
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 Hewlett Packard Indigo BV filed Critical Hewlett Packard Indigo BV
Priority to US14/866,238 priority Critical patent/US9760325B2/en
Assigned to HEWLETT-PACKARD INDIGO B.V. reassignment HEWLETT-PACKARD INDIGO B.V. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MUCHER, PHILIPPE, GILON, NIR, MORRIS, STEVE
Publication of US20160019012A1 publication Critical patent/US20160019012A1/en
Application granted granted Critical
Publication of US9760325B2 publication Critical patent/US9760325B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/126Job scheduling, e.g. queuing, determine appropriate device
    • G06F3/1263Job scheduling, e.g. queuing, determine appropriate device based on job priority, e.g. re-arranging the order of jobs, e.g. the printing sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1211Improving printing performance
    • G06F3/1217Improving printing performance achieving reduced idle time at the output device or increased asset utilization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/126Job scheduling, e.g. queuing, determine appropriate device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1282High volume printer device
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/15Indexing scheme related to printer interfaces for computers, indexing schema related to group G06F3/12
    • G06F2206/1508Load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/124Parallel printing or parallel ripping

Definitions

  • a print service provider uses digital presses to print a variety of products.
  • the digital presses may be loaded with a variety of substrates.
  • One or more digital front ends convert customer print jobs to the submission format of the digital presses and queue the jobs to the digital presses.
  • FIG. 1 is a block diagram of a press system in one example of the present disclosure
  • FIG. 2 is a flowchart of a method for a print server of FIG. 1 to send jobs from product pools to raster image processor (RIP) instances and direct outputs from the RIP instances to post-RIP queues on NAS servers in one example of the present disclosure;
  • RIP raster image processor
  • FIGS. 3, 4, and 5 combine to form a flowchart of a method for a press load balancer of FIG. 1 to allocate jobs to presses in one example of the present disclosure
  • FIG. 6 is a block diagram of an implementation of the press system of FIG. 1 in one example of the present disclosure.
  • Any print shop with more than four digital presses may have difficulty allocating jobs to the presses so that the printing load is balanced over the presses and the work of the press operators in selecting jobs and changing substrates and inks is minimized. The result is that the load on the presses is unbalanced, limiting their throughput, and putting unnecessary strain on the operators.
  • MIS management information system
  • DFEs digital front ends
  • the MIS system uses job definition format (JDF) connectivity to select which press will be used.
  • JDF job definition format
  • a job is often printed hours, or even days, after the target press is selected, resulting in poor load balancing over the presses. Therefore many print shops simply defer scheduling to the DFE.
  • the DFE may use a balancing algorithm that takes into account the number of jobs on each press, irrespective of the size of the job.
  • the DFE may use a round robin algorithm, which is sufficient when all the print jobs are of similar length but ill-suited at print shops with a wide range of job lengths.
  • Some print shops have developed their own systems to schedule jobs. However, those systems may require press operator involvement, such as selecting which DFE and press to use. This is demanding work and, even with experienced operators, creates a serious bottleneck in the workflow.
  • a DFE sends print jobs to network accessible storage (NAS) servers instead of presses and a press load balancer (PLB) is deployed to schedule the jobs on the NAS servers.
  • PLB takes jobs from queues on the NASs and sends them to the presses using a scheduling method to select the target press.
  • PLB continuously monitors both the jobs waiting to be printed and the load on the presses. PLB delays the selection of the target press for each job until as late as possible and takes into account the following factors.
  • the priority of the job The MIS system can set a job's priority in its ticket according to the application (brochures, calendars, photo books, etc.). PLB sorts the jobs according to their priority.
  • the required delivery time of the job typically the print shop's customers pay different rates according to the urgency of the job.
  • a job that has to be delivered the following day costs a lot more than a job that can be delivered in ten days.
  • PLB takes the latest delivery time (LDT) into account by raising the job's priority as the delivery time approaches.
  • PLB keeps track of the jobs queued on each press and knows how many copies are required and how many sheets in each copy. From this information, PLB knows how long it will take to print all the jobs loaded on the press.
  • PLB gives priority to presses with the required substrate installed. However, if there is no suitable press available, PLB has a list of “preferred presses” for the most used substrates. This also helps reduce the operators' work in switching substrates.
  • FIG. 1 is a block diagram of a press system 100 in one example of the present disclosure. An overview of system 100 is first provided before going into the details of each component.
  • System 100 includes product pools 102 - 1 , 102 - 2 . . . 102 -I to receive customer print jobs from the MIS of a print shop.
  • Product pools 102 - 1 to 102 - 1 have different priority levels where product pool 102 - 1 has the highest priority while product pool 102 -I has the lowest priority.
  • Each product pool defines a job ticket template.
  • a postscript (PS) bootstrap job ticket is associated with a job to override the job ticket template.
  • product pools 102 - 1 to 102 -I are used instead to organize the jobs by their priority (e.g., by their latest delivery time). For instance, product pool 102 - 1 holds jobs that are due today, product pool 102 - 2 holds jobs that are due tomorrow, product pool 102 - 3 holds jobs that are due two to three days from today, and so forth.
  • System 100 includes a DFE 104 with a print server 106 and raster image processor (RIP) servers 108 - 1 , 108 - 2 . . . 108 -J (referred to as “RIP servers 108 ” collectively or “RIP server 108 ” for a generic individual RIP server).
  • Printer server 106 may be implemented with the HP SmartStream Ultra Print Server or similar software
  • RIP server 108 may be implemented with HP SmartStream RIP Server or similar software.
  • Each RIP server 108 provides RIP instances 110 - 1 , 110 - 2 . . . 110 -K (referred to as “RIP instances 110 ” collectively or “RIP instance 110 ” for a generic individual RIP instance).
  • Print server 106 is configured so blocks of RIP instances 110 are allocated each product pool 102 . Print server 106 sends the jobs in product pools 102 to RIP instances 110 . For each job in product pools 102 , print server 106 uses its product pool and its PS bootstrap job ticket to determine each job's priority and ticketing.
  • RIP instances 110 convert the jobs from the submission format (e.g., PDF) to the press format (e.g., JLYT).
  • Print server 106 directs the outputs from RIP instances 110 to post-RIP queues on NAS servers.
  • System 100 includes NAS servers 112 - 1 , 112 - 2 . . . 112 -L (referred to as “NAS servers 112 ” collectively and “NAS server 112 ” for a generic individual NAS server).
  • Each NAS server 112 has drives 114 - 1 , 114 - 2 . . . 114 -M (referred to as “drives 114 ” collectively or “drive 114 ” for a generic individual drive).
  • Drives 114 may be disk drives, solid state drives, or other forms of nonvolatile memory.
  • each drive 114 has a fast track post-RIP queue 116 and a normal post-RIP queue 118 .
  • Each drive 114 also has press loader queues 120 - 1 , 120 - 2 . . . 120 -N (generically referred to as “press loader queues 120 ” collectively and “press loader queue 120 ” for a generic individual press loader queue) assigned to presses 124 - 1 , 124 - 2 . . . 124 -P (referred to as “presses 124 ” collectively or “press 124 ” for a generic individual press), respectively.
  • press loader queues 120 collectively and “press loader queue 120 ” for a generic individual press loader queue
  • presses 124 - 1 , 124 - 2 . . . 124 -P referred to as “presses 124 ” collectively or “press 124 ” for a generic individual press
  • System 100 includes a PLB 122 .
  • PLB 122 continuously monitors the current loads and the installed substrates on presses 124 .
  • PLB 122 also continuously monitors post-RIP queues 116 , 118 on NAS servers 112 .
  • PLB 122 sees a job in one of the post-RIP queues 116 , 118 on NAS servers 112 , it allocates the job to a press based on the job size, the press load, the substrate required, and the job priority.
  • PLB 122 may use information in a option rule file 126 (e.g., an XML file) to decide the target press.
  • option rule file 126 e.g., an XML file
  • PLB 122 moves the allocated job from its post-RIP queue 116 or 118 to a press loader queue 120 for the target press 124 .
  • a “move” operation transfers a file on the same drive 114 within the same NAS server 112 , which is a faster than a “copy” operation that transfers a file from one component to another over a network.
  • DFE 104 includes a press loader 128 .
  • Press loader 128 monitors press loader queues 120 and sends the jobs to press controllers 130 - 1 , 130 - 2 . . . 130 -Q (referred to as “press controllers 130 ” collectively and “press controller 130 ” for a generic individual press controller) for the corresponding presses 124 - 1 , 124 - 2 . . . 124 -P.
  • Press loader 128 sends the jobs from press loader queues 120 to press controllers 130 on a first-in, first served basis (i.e., in the order which jobs were written to press loader queues 120 ).
  • press loader 128 sends jobs from a press loader queue 120 directly to press 131 .
  • Press loader 128 may be implemented with the HP SmartStream Ultra Job Loader or similar software.
  • DFE 104 includes a job manager 132 .
  • a press operator may use job manager 132 to transfer a job from one press to another.
  • Job monitor 132 may be implemented with the HP SmartStream Ultra Job Manager or similar software.
  • each product pool 102 defines a job ticket template.
  • print server 106 creates a job ticket with the attributes of the job ticket template.
  • the job ticket template defines attributes including the number of copies, the substrate name, the page size, collated/un-collated, duplex/simplex, and the job priority.
  • the job priority may rank a job from a low priority of one to a high priority of 100.
  • a PS bootstrap job ticket is associated with a job to override the job ticket template.
  • the job priority in the PS bootstrap job ticket overrides the job priority in the job ticket template.
  • PS bootstrap job ticket includes a reference to the associated job.
  • product pools 102 - 1 to 102 -I are used instead to organize the jobs by their priority (e.g., by their latest delivery time).
  • the product pool priority is used to specify the RIP priority (the order in which jobs are sent to RIP instances 110 ) and to which post-RIP queue 116 or 118 each job is sent.
  • PLB 122 uses the latest delivery time specified in the job file name by convention to determine the press priority (the order which jobs are sent to presses 124 ).
  • PLB 122 uses the job priority specified in the job file to determine the press priority.
  • the press uses the job priority in the job file to determine the printing order of jobs loaded on the press.
  • FIG. 2 is a flowchart of a method 200 for a print server 106 to send jobs from product pools 102 to RIP instances 110 and direct outputs from RIP instances 110 to post-RIP queues 116 , 118 on NAS servers 112 in one example of the present disclosure.
  • Method 200 begins in block 202 .
  • print server 106 starts to monitor product pools 102 to determine if there is at least one job in product pools 102 .
  • block 202 is followed by block 204 . Otherwise block 202 loops back to itself.
  • print server 106 selects a job from product pools 102 based on product pool priority.
  • Print server 106 first looks at product pool 102 - 1 having the highest priority to see if it contains any jobs. In one example, when product pool 102 - 1 has multiple jobs, print server 106 selects a job on a first-come, first served basis (i.e., in the order which jobs were written to product pool 102 - 1 ). In another example, print server 106 selects a job based on the job priority specified for product pool 102 - 1 or the bootstrap job ticket. When product pool 102 - 1 does not have any jobs, print server 106 looks in product pool 102 - 2 having the next highest priority and repeats the process until print server 106 selects a job.
  • Block 204 is followed by block 206 .
  • print server 106 determines the selected job's priority and ticketing based on the job's bootstrap job ticket so the parameters in the bootstrap job ticket override the default values of the product pool to determine how the job is RIPed and how the job is printed. Specifically the job priority of the bootstrap job ticket overrides the job priority of the job ticket template of the product pool and controls how PLB 122 later allocates the job from post-RIP queues 116 or 118 to a press 124 .
  • Block 206 is followed by block 208 .
  • print server 106 selects a RIP instance 110 and sends the selected job to the selected RIP instance 110 .
  • print server 106 selects the least loaded of the RIP instances 110 allocated to the particular product pool of the selected job. Block 208 is followed by block 210 .
  • print server 106 selects a post-RIP queue 116 or 118 and directs the selected RIP instance 110 to output the job to the selected post-RIP 116 or 118 .
  • Print server 106 directs a job to a fast track post-RIP queue 116 when the product pool priority of the selected job is greater than or equal to a threshold product pool priority. Otherwise print server 106 directs the job to a normal post-RIP queue 116 .
  • print server 106 selects a post-RIP queue 116 or 118 on the least loaded NAS server 112 .
  • Method 200 then loops back to block 202 to process another job.
  • PLB 122 monitors jobs in post-RIP queues 116 , 118 in NAS servers 112 and the current loads and the substrates installed on presses 124 .
  • PLB 122 allocates jobs to presses 124 by taking into account considerations including (1) the number of sheets and the required substrate of each job, (2) the substrate installed on each press, (3) the press preference specified in option rule file 126 , (4) the load on each press determined by the number of sheets still to be printed in the current job and the number of sheets summed over all the jobs in the print queue for the press, and (5) the state of each press.
  • the print queue is the list of jobs loaded on a press waiting to be printed.
  • Jobs can be loaded onto the press but not queued to print (Held List), and jobs can be kept after printing so that the operator can reprint them if needed (Retain List).
  • PLB 112 moves the job from its post-RIP queue 116 or 118 to a press loader queue 120 of the selected press 124 .
  • option rule file 126 is an XML file with three main sections: selection, substrates, and presses.
  • the selection section specifies the sorting method for the jobs in post-RIP queues 116 , 118 on NAS servers 112 .
  • the jobs may be sorted by (1) the name of each job file in alphanumerical order, (2) the job priority specified in each job file, (3) the date/time each job is written to a post-RIP queue 116 or 118 , and (4) the date/time each job is submitted to a product pool 102 .
  • PLB 122 sorts the jobs in post-RIP queues 116 , 118 by their file names in alphanumerical order.
  • each job is named according to their latest delivery date using the format “YYYYMMDD_hhmm_job_name” where “YYYYMMDD” is the year, month, and date, “hhmm” is the time, and “job_name” is a job description that helps the operators to recognize the job.
  • the substrates section has two subsections: substrate and default.
  • the substrate subsection includes multiple substrate sub-subsections. Each substrate sub-subsection specifies a substrate name and a list of “preferred” presses for this substrate.
  • the default subsection includes a section with a list of presses to be used if the required substrate is not defined in the substrates subsection.
  • the presses section has two subsections: press and default.
  • the press subsection may have zero or more press sub-subsections.
  • Each press sub-subsection specifies a press name and the high level for the named press, in minutes of printing. Any press section listed overrides the default setting in the default subsection.
  • the default subsection specifies the default high level, in minutes of printing, for all the presses except presses listed explicitly in the press subsection.
  • option rule file 126 may also include rules related to the required inks for a job that guide PLB 122 in selecting a press 140 based on the inks installed on presses 140 .
  • FIGS. 3, 4, and 5 combine to form a flowchart of a method 300 for PLB 122 to allocate jobs to presses 140 in one example of the present disclosure.
  • Method 300 begins in block 302 on FIG. 3 .
  • PLB 122 starts to monitor the current loads and options installed on presses 124 (e.g., the installed substrates on presses 124 ).
  • Block 302 is followed by block 304 .
  • PLB 122 starts to monitor post-RIP queues 116 , 118 on NAS servers 112 for jobs.
  • Block 304 is followed by block 306 .
  • PLB 122 identifies available presses.
  • a press is available when it is online, it is at least in a standby state, and the number of sheets to be printed by the press is below a high level specified in option rule file 126 .
  • Block 306 is followed by block 308 .
  • PLB 122 selects the highest priority job in post-RIP queues 116 , 118 on NAS servers 112 .
  • PLB 122 determines the highest priority job by the priority of post-RIP queues 116 , 118 and the alphanumeric order of the file names. As described above, the file names reflect the latest delivery dates of the jobs.
  • PLB 122 first looks at all the jobs in fast track post-RIP queues 116 on NAS servers 112 and selects the job having the lowest alphanumeric name. When all the jobs in fast track post-RIP queues 116 have been processed, PLB 122 looks at all the jobs in normal post-RIP queues 118 on NAS servers 112 and selects the job having the lowest alphanumeric name. In other examples, PLB 122 may select the highest priority job based on other criteria.
  • Block 308 is followed by block 310 .
  • PLB 122 determines an option required for the selected job (e.g., the substrate required for the selected job) from the job itself. Block 310 is followed by block 312 .
  • PLB 122 identifies those of the available presses that have the required substrate installed. Block 312 is followed by block 314 .
  • PLB 122 determines if there is at least one identified press. If so, block 314 is followed by block 316 . Otherwise block 314 is followed by block 324 on FIG. 5 .
  • PLB 122 determines if there are multiple identified presses. If so, block 316 is followed by block 318 . Otherwise block 316 is followed block 322 .
  • PLB 122 selects “preferred” presses specified in option rule file 126 for the required substrate from the identified presses. Block 318 is followed by block 320 .
  • PLB 122 allocates the selected job to the least loaded press from the selected presses. Block 320 is followed by block 346 on FIG. 5 .
  • PLB 122 allocates the selected job to the only available press with the required substrate installed. Block 322 is followed by block 346 on FIG. 5 .
  • PLB 122 selects those of the available presses that are specified in option rule file 126 for the required substrate. Block 324 is followed by block 326 .
  • PLB 122 determines if there is at least one selected press. If so, block 326 is followed by block 328 . Otherwise block 326 is followed by block 334 .
  • PLB 122 determines if there are multiple selected presses. If so, block 328 is followed by block 330 . Otherwise block 328 is followed by block 332 .
  • PLB 122 allocates the selected job to the least loaded press from the selected presses. Block 330 is followed by block 346 on FIG. 5 .
  • PLB 122 allocates the selected job to the only selected press.
  • Block 322 is followed by block 346 on FIG. 5 .
  • PLB 122 selects those of the available presses that are specified in option rule file 126 as defaults for unspecified substrates. Block 334 is followed by block 336 .
  • PLB 122 determines if there is at least one selected press. If so, block 336 is followed by block 338 . Otherwise block 336 is followed by block 344 .
  • PLB 122 determines if there are multiple selected presses. If so, block 338 is followed by block 340 . Otherwise block 338 is followed by block 342 .
  • PLB 122 allocates the selected job to the least loaded press from the selected presses. Block 340 is followed by block 346 on FIG. 5 .
  • PLB 122 allocates the selected job to the only selected press. Block 342 is followed by block 346 on FIG. 5 .
  • PLB 122 ignores the selected job until the next run through method 300 as one of the available presses can handle the selected job. Block 344 is followed by block 354 on FIG. 5 .
  • PLB 122 moves the allocated job from its post-RIP queue 116 or 118 to a press loader queue 120 for the target press 124 .
  • press loader 128 monitors press loader queues 120 on NAS servers 112 and loads the jobs via the appropriate press controllers 130 to the corresponding presses 124 .
  • Block 346 is followed by block 348 .
  • PLB 122 adds the allocated job to target press 140 to a list of jobs loaded on the target press 140 (e.g., a print load of target press 140 ).
  • Block 348 is followed by block 350 .
  • PLB 122 determines if the print load of the target press 140 is greater than the high level specified in option rule file 126 . If so, block 350 is followed by block 352 . Otherwise block 350 is followed by block 354 .
  • PLB 122 removes the target press 140 from the list of available presses. Block 352 is followed by block 354 .
  • PLB 122 determines if there is at least one available press. If so, method 300 loops back to block 308 on FIG. 3 to allow the next highest priority job. Otherwise block 354 is followed by block 356 .
  • PLB 122 determines if it is time for a next run through method 300 again. In one example, PLB 122 runs through method 300 every 20 seconds. If so, method 300 loops back to block 306 on FIG. 3 . Otherwise block 356 loops onto itself until it is time to run through method 300 again.
  • Method 300 has been explained using the example that the jobs specify the required substrates. Method 300 is equally applicable when the jobs specify another required option, such as a set of required inks or required finishing equipment, or a combination of required options, such as a required substrate with a set of required inks.
  • another required option such as a set of required inks or required finishing equipment, or a combination of required options, such as a required substrate with a set of required inks.
  • FIG. 6 is a hardware implementation of press system 100 in one example of the present disclosure.
  • System 100 includes a DFE server computer 602 , drives 603 for DFE server computer 602 , RIP server computers 604 , NAS server computers 606 - 1 , 606 - 2 , and 606 - 3 (referred to as “NAS servers 606 ” collectively or “NAS server computer 606 ” for a generic individual NAS server computer), storage arrays 608 - 1 , 608 - 2 , and 608 - 3 (referred to as “storage arrays 608 ” collectively), press controllers 130 - 1 , 130 - 2 , 130 - 3 , 130 - 4 , 130 - 5 , and 130 - 6 , a rack mounted console 610 , and a network switch 612 .
  • NAS servers 606 collectively or “NAS server computer 606 ” for a generic individual NAS server computer
  • DFE server computer 602 executes computer readable instructions for implementing print server 106 , PLB 122 , press loader 122 and job manager 132 .
  • RIP server computers 604 execute computer readable instructions for implementing RIP servers 108 providing RIP instances 110 .
  • NAS server computers 606 - 1 , 606 - 2 , and 606 - 3 execute computer readable instructions for implementing NAS servers 112 - 1 , 112 - 2 , and 112 - 3 .
  • Storage arrays 608 - 1 , 608 - 2 , and 608 - 3 provide drives 114 to each NAS server computer 606 .
  • Console 610 allows a worker to interact with system 100 .
  • Network switch 612 couples DFE server computer 602 , RIP server computers 604 , NAS server computers 606 , storage arrays 608 , press controllers 130 , and console 610 for communication.
  • Each computer described above includes a processor, volatile memory (e.g., RAM), and nonvolatile memory (e.g., a hard disk drive).
  • volatile memory e.g., RAM
  • nonvolatile memory e.g., a hard disk drive
  • the nonvolatile memory provides a non-transitory computer readable medium that stores the computer readable instructions.
  • Examples of the present disclosure offer advantages including (1) increased throughput from spreading the printing load evenly over all the presses, (2) reduced operator workload and increased available print time from the automated job allocation, (3) reduced operator workload and increased available time to print from the reduction in the need swap substrates, and (4) reduced job transfer between presses if a press is down and increased available print time as the number of jobs loaded on each press at any time is minimized.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

A press load balancer automatically balances the printing load over a number of presses by taking into account the load on each press and the substrates (i.e., paper types) and inks installed on the presses to improve throughput while minimizing load on the press operators.

Description

PRIORITY
This application is a Continuation of commonly assigned and co-pending U.S. patent application Ser. No. 13/456,205 filed on Apr. 25, 2012, the disclosure of which is hereby incorporated by reference in its entirety.
BACKGROUND
A print service provider (PSP) uses digital presses to print a variety of products. The digital presses may be loaded with a variety of substrates. One or more digital front ends (DFEs) convert customer print jobs to the submission format of the digital presses and queue the jobs to the digital presses.
BRIEF DESCRIPTION OF THE DRAWINGS
In the drawings:
FIG. 1 is a block diagram of a press system in one example of the present disclosure;
FIG. 2 is a flowchart of a method for a print server of FIG. 1 to send jobs from product pools to raster image processor (RIP) instances and direct outputs from the RIP instances to post-RIP queues on NAS servers in one example of the present disclosure;
FIGS. 3, 4, and 5 combine to form a flowchart of a method for a press load balancer of FIG. 1 to allocate jobs to presses in one example of the present disclosure; and
FIG. 6 is a block diagram of an implementation of the press system of FIG. 1 in one example of the present disclosure.
Use of the same reference numbers in different figures indicates similar or identical elements.
DETAILED DESCRIPTION
Any print shop with more than four digital presses (e.g., HP Indigo presses) may have difficulty allocating jobs to the presses so that the printing load is balanced over the presses and the work of the press operators in selecting jobs and changing substrates and inks is minimized. The result is that the load on the presses is unbalanced, limiting their throughput, and putting unnecessary strain on the operators.
Most print shops have a management information system (MIS) that receives print jobs from customers and handles job ticketing and tracking. The MIS system sends the jobs to one or more digital front ends (DFEs) that are responsible for converting the jobs from the submission format (e.g., PDF, PPML, PostScript) to the native format of the presses (e.g., JLYT for the HP Indigo presses) and queuing the jobs to the presses.
At some print shops, the MIS system uses job definition format (JDF) connectivity to select which press will be used. However, a job is often printed hours, or even days, after the target press is selected, resulting in poor load balancing over the presses. Therefore many print shops simply defer scheduling to the DFE. To schedule the jobs, the DFE may use a balancing algorithm that takes into account the number of jobs on each press, irrespective of the size of the job. Alternatively the DFE may use a round robin algorithm, which is sufficient when all the print jobs are of similar length but ill-suited at print shops with a wide range of job lengths.
Some print shops have developed their own systems to schedule jobs. However, those systems may require press operator involvement, such as selecting which DFE and press to use. This is demanding work and, even with experienced operators, creates a serious bottleneck in the workflow.
In examples of the present disclosure, a DFE sends print jobs to network accessible storage (NAS) servers instead of presses and a press load balancer (PLB) is deployed to schedule the jobs on the NAS servers. PLB takes jobs from queues on the NASs and sends them to the presses using a scheduling method to select the target press. PLB continuously monitors both the jobs waiting to be printed and the load on the presses. PLB delays the selection of the target press for each job until as late as possible and takes into account the following factors.
1. The priority of the job—The MIS system can set a job's priority in its ticket according to the application (brochures, calendars, photo books, etc.). PLB sorts the jobs according to their priority.
2. The required delivery time of the job—Typically the print shop's customers pay different rates according to the urgency of the job. A job that has to be delivered the following day costs a lot more than a job that can be delivered in ten days. PLB takes the latest delivery time (LDT) into account by raising the job's priority as the delivery time approaches.
3. The state of each press—PLB continuously monitors the state of all the presses. There is no benefit in sending a job to a press that is off as the press may be down from a few hours for maintenance to a few days for repair. Once a press is switched on and is at least in the standby state, PLB may send jobs even while the press is warming up.
4. The printing load on each press—PLB keeps track of the jobs queued on each press and knows how many copies are required and how many sheets in each copy. From this information, PLB knows how long it will take to print all the jobs loaded on the press.
5. “High water” mark for the presses—PLB only queues a job on a press if the jobs already loaded can be printed within a certain time. For example, suppose a job is loaded on a press and it consists of 360 copies of 100 sheets each. The job will take approximately 10 hours to print. If the high water mark is configured as 1 hour, PLB will not send any more jobs to that press until it has less than 1 hour of printing left to do (i.e. 36 copies).
6. The required substrate for the job and the installed substrates on the presses—Most press shops use 40 or more substrates while most presses are only installed with four paper trays. By giving preference to presses with the required substrate installed, PLB reduces the operators' work in switching substrates.
7. The preferred presses for the required substrate—PLB gives priority to presses with the required substrate installed. However, if there is no suitable press available, PLB has a list of “preferred presses” for the most used substrates. This also helps reduce the operators' work in switching substrates.
FIG. 1 is a block diagram of a press system 100 in one example of the present disclosure. An overview of system 100 is first provided before going into the details of each component.
System 100 includes product pools 102-1, 102-2 . . . 102-I to receive customer print jobs from the MIS of a print shop. Product pools 102-1 to 102-1 have different priority levels where product pool 102-1 has the highest priority while product pool 102-I has the lowest priority. Each product pool defines a job ticket template. In one example, a postscript (PS) bootstrap job ticket is associated with a job to override the job ticket template. In the example, product pools 102-1 to 102-I are used instead to organize the jobs by their priority (e.g., by their latest delivery time). For instance, product pool 102-1 holds jobs that are due today, product pool 102-2 holds jobs that are due tomorrow, product pool 102-3 holds jobs that are due two to three days from today, and so forth.
System 100 includes a DFE 104 with a print server 106 and raster image processor (RIP) servers 108-1, 108-2 . . . 108-J (referred to as “RIP servers 108” collectively or “RIP server 108” for a generic individual RIP server). Printer server 106 may be implemented with the HP SmartStream Ultra Print Server or similar software, and RIP server 108 may be implemented with HP SmartStream RIP Server or similar software. Each RIP server 108 provides RIP instances 110-1, 110-2 . . . 110-K (referred to as “RIP instances 110” collectively or “RIP instance 110” for a generic individual RIP instance). Print server 106 is configured so blocks of RIP instances 110 are allocated each product pool 102. Print server 106 sends the jobs in product pools 102 to RIP instances 110. For each job in product pools 102, print server 106 uses its product pool and its PS bootstrap job ticket to determine each job's priority and ticketing.
RIP instances 110 convert the jobs from the submission format (e.g., PDF) to the press format (e.g., JLYT). Print server 106 directs the outputs from RIP instances 110 to post-RIP queues on NAS servers.
System 100 includes NAS servers 112-1, 112-2 . . . 112-L (referred to as “NAS servers 112” collectively and “NAS server 112” for a generic individual NAS server). Each NAS server 112 has drives 114-1, 114-2 . . . 114-M (referred to as “drives 114” collectively or “drive 114” for a generic individual drive). Drives 114 may be disk drives, solid state drives, or other forms of nonvolatile memory. In one example, each drive 114 has a fast track post-RIP queue 116 and a normal post-RIP queue 118. Each drive 114 also has press loader queues 120-1, 120-2 . . . 120-N (generically referred to as “press loader queues 120” collectively and “press loader queue 120” for a generic individual press loader queue) assigned to presses 124-1, 124-2 . . . 124-P (referred to as “presses 124” collectively or “press 124” for a generic individual press), respectively. In other words, there is a queue for every press on every drive on the NAS that has a post-RIP queue.
System 100 includes a PLB 122. In one example, PLB 122 continuously monitors the current loads and the installed substrates on presses 124. PLB 122 also continuously monitors post-RIP queues 116, 118 on NAS servers 112. When PLB 122 sees a job in one of the post-RIP queues 116, 118 on NAS servers 112, it allocates the job to a press based on the job size, the press load, the substrate required, and the job priority. PLB 122 may use information in a option rule file 126 (e.g., an XML file) to decide the target press. PLB 122 moves the allocated job from its post-RIP queue 116 or 118 to a press loader queue 120 for the target press 124. Note that a “move” operation transfers a file on the same drive 114 within the same NAS server 112, which is a faster than a “copy” operation that transfers a file from one component to another over a network.
DFE 104 includes a press loader 128. Press loader 128 monitors press loader queues 120 and sends the jobs to press controllers 130-1, 130-2 . . . 130-Q (referred to as “press controllers 130” collectively and “press controller 130” for a generic individual press controller) for the corresponding presses 124-1, 124-2 . . . 124-P. Press loader 128 sends the jobs from press loader queues 120 to press controllers 130 on a first-in, first served basis (i.e., in the order which jobs were written to press loader queues 120). When a press 131 does not have a separate press controller, press loader 128 sends jobs from a press loader queue 120 directly to press 131. Press loader 128 may be implemented with the HP SmartStream Ultra Job Loader or similar software.
DFE 104 includes a job manager 132. A press operator may use job manager 132 to transfer a job from one press to another. Job monitor 132 may be implemented with the HP SmartStream Ultra Job Manager or similar software.
Product Pools and PS Bootstrap Job Ticket
As described above, each product pool 102 defines a job ticket template. When a job is dropped into a product pool 102, print server 106 creates a job ticket with the attributes of the job ticket template. The job ticket template defines attributes including the number of copies, the substrate name, the page size, collated/un-collated, duplex/simplex, and the job priority. The job priority may rank a job from a low priority of one to a high priority of 100.
As described above, in one example, a PS bootstrap job ticket is associated with a job to override the job ticket template. In particular, the job priority in the PS bootstrap job ticket overrides the job priority in the job ticket template. PS bootstrap job ticket includes a reference to the associated job. In the example, product pools 102-1 to 102-I are used instead to organize the jobs by their priority (e.g., by their latest delivery time). The product pool priority is used to specify the RIP priority (the order in which jobs are sent to RIP instances 110) and to which post-RIP queue 116 or 118 each job is sent. In one example, PLB 122 uses the latest delivery time specified in the job file name by convention to determine the press priority (the order which jobs are sent to presses 124). In another example, PLB 122 uses the job priority specified in the job file to determine the press priority. The press uses the job priority in the job file to determine the printing order of jobs loaded on the press.
FIG. 2 is a flowchart of a method 200 for a print server 106 to send jobs from product pools 102 to RIP instances 110 and direct outputs from RIP instances 110 to post-RIP queues 116, 118 on NAS servers 112 in one example of the present disclosure. Method 200 begins in block 202.
In block 202, print server 106 starts to monitor product pools 102 to determine if there is at least one job in product pools 102. When there is at least one job in product pools 102, block 202 is followed by block 204. Otherwise block 202 loops back to itself.
In block 204, print server 106 selects a job from product pools 102 based on product pool priority. Print server 106 first looks at product pool 102-1 having the highest priority to see if it contains any jobs. In one example, when product pool 102-1 has multiple jobs, print server 106 selects a job on a first-come, first served basis (i.e., in the order which jobs were written to product pool 102-1). In another example, print server 106 selects a job based on the job priority specified for product pool 102-1 or the bootstrap job ticket. When product pool 102-1 does not have any jobs, print server 106 looks in product pool 102-2 having the next highest priority and repeats the process until print server 106 selects a job. Block 204 is followed by block 206.
In block 206, print server 106 determines the selected job's priority and ticketing based on the job's bootstrap job ticket so the parameters in the bootstrap job ticket override the default values of the product pool to determine how the job is RIPed and how the job is printed. Specifically the job priority of the bootstrap job ticket overrides the job priority of the job ticket template of the product pool and controls how PLB 122 later allocates the job from post-RIP queues 116 or 118 to a press 124. Block 206 is followed by block 208.
In block 208, print server 106 selects a RIP instance 110 and sends the selected job to the selected RIP instance 110. In one example, print server 106 selects the least loaded of the RIP instances 110 allocated to the particular product pool of the selected job. Block 208 is followed by block 210.
In block 210, print server 106 selects a post-RIP queue 116 or 118 and directs the selected RIP instance 110 to output the job to the selected post-RIP 116 or 118. Print server 106 directs a job to a fast track post-RIP queue 116 when the product pool priority of the selected job is greater than or equal to a threshold product pool priority. Otherwise print server 106 directs the job to a normal post-RIP queue 116. In one example, print server 106 selects a post-RIP queue 116 or 118 on the least loaded NAS server 112. Method 200 then loops back to block 202 to process another job.
Press Load Balancer and Option Rule File
As described above, PLB 122 monitors jobs in post-RIP queues 116, 118 in NAS servers 112 and the current loads and the substrates installed on presses 124. PLB 122 allocates jobs to presses 124 by taking into account considerations including (1) the number of sheets and the required substrate of each job, (2) the substrate installed on each press, (3) the press preference specified in option rule file 126, (4) the load on each press determined by the number of sheets still to be printed in the current job and the number of sheets summed over all the jobs in the print queue for the press, and (5) the state of each press. Note that the print queue is the list of jobs loaded on a press waiting to be printed. Jobs can be loaded onto the press but not queued to print (Held List), and jobs can be kept after printing so that the operator can reprint them if needed (Retain List). After allocating a job, PLB 112 moves the job from its post-RIP queue 116 or 118 to a press loader queue 120 of the selected press 124.
As described above, PLB 122 looks to option rule file 126 to make certain decisions. In one example, option rule file 126 is an XML file with three main sections: selection, substrates, and presses.
The selection section specifies the sorting method for the jobs in post-RIP queues 116, 118 on NAS servers 112. The jobs may be sorted by (1) the name of each job file in alphanumerical order, (2) the job priority specified in each job file, (3) the date/time each job is written to a post-RIP queue 116 or 118, and (4) the date/time each job is submitted to a product pool 102. In one example, PLB 122 sorts the jobs in post-RIP queues 116, 118 by their file names in alphanumerical order. By convention, each job is named according to their latest delivery date using the format “YYYYMMDD_hhmm_job_name” where “YYYYMMDD” is the year, month, and date, “hhmm” is the time, and “job_name” is a job description that helps the operators to recognize the job.
The substrates section has two subsections: substrate and default. The substrate subsection includes multiple substrate sub-subsections. Each substrate sub-subsection specifies a substrate name and a list of “preferred” presses for this substrate. The default subsection includes a section with a list of presses to be used if the required substrate is not defined in the substrates subsection.
The presses section has two subsections: press and default. The press subsection may have zero or more press sub-subsections. Each press sub-subsection specifies a press name and the high level for the named press, in minutes of printing. Any press section listed overrides the default setting in the default subsection. The default subsection specifies the default high level, in minutes of printing, for all the presses except presses listed explicitly in the press subsection.
In one example, option rule file 126 may also include rules related to the required inks for a job that guide PLB 122 in selecting a press 140 based on the inks installed on presses 140.
FIGS. 3, 4, and 5 combine to form a flowchart of a method 300 for PLB 122 to allocate jobs to presses 140 in one example of the present disclosure. Method 300 begins in block 302 on FIG. 3.
In block 302, PLB 122 starts to monitor the current loads and options installed on presses 124 (e.g., the installed substrates on presses 124). Block 302 is followed by block 304.
In block 304, PLB 122 starts to monitor post-RIP queues 116, 118 on NAS servers 112 for jobs. Block 304 is followed by block 306.
In block 306, PLB 122 identifies available presses. A press is available when it is online, it is at least in a standby state, and the number of sheets to be printed by the press is below a high level specified in option rule file 126. Block 306 is followed by block 308.
In block 308, PLB 122 selects the highest priority job in post-RIP queues 116, 118 on NAS servers 112. In one example, PLB 122 determines the highest priority job by the priority of post-RIP queues 116, 118 and the alphanumeric order of the file names. As described above, the file names reflect the latest delivery dates of the jobs. PLB 122 first looks at all the jobs in fast track post-RIP queues 116 on NAS servers 112 and selects the job having the lowest alphanumeric name. When all the jobs in fast track post-RIP queues 116 have been processed, PLB 122 looks at all the jobs in normal post-RIP queues 118 on NAS servers 112 and selects the job having the lowest alphanumeric name. In other examples, PLB 122 may select the highest priority job based on other criteria. Block 308 is followed by block 310.
In block 310, PLB 122 determines an option required for the selected job (e.g., the substrate required for the selected job) from the job itself. Block 310 is followed by block 312.
In block 312, PLB 122 identifies those of the available presses that have the required substrate installed. Block 312 is followed by block 314.
In block 314, PLB 122 determines if there is at least one identified press. If so, block 314 is followed by block 316. Otherwise block 314 is followed by block 324 on FIG. 5.
In block 316, PLB 122 determines if there are multiple identified presses. If so, block 316 is followed by block 318. Otherwise block 316 is followed block 322.
In block 318, PLB 122 selects “preferred” presses specified in option rule file 126 for the required substrate from the identified presses. Block 318 is followed by block 320.
In block 320, PLB 122 allocates the selected job to the least loaded press from the selected presses. Block 320 is followed by block 346 on FIG. 5.
In block 322, PLB 122 allocates the selected job to the only available press with the required substrate installed. Block 322 is followed by block 346 on FIG. 5.
Referring to FIG. 4, in block 324, PLB 122 selects those of the available presses that are specified in option rule file 126 for the required substrate. Block 324 is followed by block 326.
In block 326, PLB 122 determines if there is at least one selected press. If so, block 326 is followed by block 328. Otherwise block 326 is followed by block 334.
In block 328, PLB 122 determines if there are multiple selected presses. If so, block 328 is followed by block 330. Otherwise block 328 is followed by block 332.
In block 330, PLB 122 allocates the selected job to the least loaded press from the selected presses. Block 330 is followed by block 346 on FIG. 5.
In block 332, PLB 122 allocates the selected job to the only selected press. Block 322 is followed by block 346 on FIG. 5.
In block 334, PLB 122 selects those of the available presses that are specified in option rule file 126 as defaults for unspecified substrates. Block 334 is followed by block 336.
In block 336, PLB 122 determines if there is at least one selected press. If so, block 336 is followed by block 338. Otherwise block 336 is followed by block 344.
In block 338, PLB 122 determines if there are multiple selected presses. If so, block 338 is followed by block 340. Otherwise block 338 is followed by block 342.
In block 340, PLB 122 allocates the selected job to the least loaded press from the selected presses. Block 340 is followed by block 346 on FIG. 5.
In block 342, PLB 122 allocates the selected job to the only selected press. Block 342 is followed by block 346 on FIG. 5.
In block 344, PLB 122 ignores the selected job until the next run through method 300 as one of the available presses can handle the selected job. Block 344 is followed by block 354 on FIG. 5.
Referring to FIG. 5, in block 346, PLB 122 moves the allocated job from its post-RIP queue 116 or 118 to a press loader queue 120 for the target press 124. As described above, press loader 128 monitors press loader queues 120 on NAS servers 112 and loads the jobs via the appropriate press controllers 130 to the corresponding presses 124. Block 346 is followed by block 348.
In block 348, PLB 122 adds the allocated job to target press 140 to a list of jobs loaded on the target press 140 (e.g., a print load of target press 140). Block 348 is followed by block 350.
In block 350, PLB 122 determines if the print load of the target press 140 is greater than the high level specified in option rule file 126. If so, block 350 is followed by block 352. Otherwise block 350 is followed by block 354.
In block 352, PLB 122 removes the target press 140 from the list of available presses. Block 352 is followed by block 354.
In block 354, PLB 122 determines if there is at least one available press. If so, method 300 loops back to block 308 on FIG. 3 to allow the next highest priority job. Otherwise block 354 is followed by block 356.
In block 356, PLB 122 determines if it is time for a next run through method 300 again. In one example, PLB 122 runs through method 300 every 20 seconds. If so, method 300 loops back to block 306 on FIG. 3. Otherwise block 356 loops onto itself until it is time to run through method 300 again.
Method 300 has been explained using the example that the jobs specify the required substrates. Method 300 is equally applicable when the jobs specify another required option, such as a set of required inks or required finishing equipment, or a combination of required options, such as a required substrate with a set of required inks.
FIG. 6 is a hardware implementation of press system 100 in one example of the present disclosure. System 100 includes a DFE server computer 602, drives 603 for DFE server computer 602, RIP server computers 604, NAS server computers 606-1, 606-2, and 606-3 (referred to as “NAS servers 606” collectively or “NAS server computer 606” for a generic individual NAS server computer), storage arrays 608-1, 608-2, and 608-3 (referred to as “storage arrays 608” collectively), press controllers 130-1, 130-2, 130-3, 130-4, 130-5, and 130-6, a rack mounted console 610, and a network switch 612. DFE server computer 602 executes computer readable instructions for implementing print server 106, PLB 122, press loader 122 and job manager 132. RIP server computers 604 execute computer readable instructions for implementing RIP servers 108 providing RIP instances 110. NAS server computers 606-1, 606-2, and 606-3 execute computer readable instructions for implementing NAS servers 112-1, 112-2, and 112-3. Storage arrays 608-1, 608-2, and 608-3 provide drives 114 to each NAS server computer 606. Console 610 allows a worker to interact with system 100. Network switch 612 couples DFE server computer 602, RIP server computers 604, NAS server computers 606, storage arrays 608, press controllers 130, and console 610 for communication.
Each computer described above includes a processor, volatile memory (e.g., RAM), and nonvolatile memory (e.g., a hard disk drive). The nonvolatile memory provides a non-transitory computer readable medium that stores the computer readable instructions.
Examples of the present disclosure offer advantages including (1) increased throughput from spreading the printing load evenly over all the presses, (2) reduced operator workload and increased available print time from the automated job allocation, (3) reduced operator workload and increased available time to print from the reduction in the need swap substrates, and (4) reduced job transfer between presses if a press is down and increased available print time as the number of jobs loaded on each press at any time is minimized.
Various other adaptations and combinations of features of the examples disclosed are within the scope of the invention. Numerous examples are encompassed by the following claims.

Claims (14)

What is claimed is:
1. A method for load balancing presses, comprising:
identifying a highest priority print job in a post-raster image processor (RIP) queue;
determining a required option for the identified highest priority print job;
determining whether a press of a set of available presses is specified for the required option for the highest priority print job;
in response to determining that no press is specified for the required option for the highest priority print job,
identifying an additional set of the available presses specified as default for unspecified options;
identifying a least loaded press from the additional set of the available presses; and
allocating the highest priority print job to the least loaded press from the additional set of the available presses, wherein the highest print job is moved from the post-RIP queue to a press loader queue for the least loaded press from the additional set of the available presses; and
printing, by the least loaded press from the additional set of the available presses, the highest priority print job.
2. The method of claim 1, further comprising:
selecting a set of preferred presses from the set of the available presses; and
wherein determining a least loaded press further comprises determining a least loaded press from the set of preferred presses and wherein allocating the highest priority print job further comprises allocating the highest priority print job to the least loaded press of the set of preferred presses.
3. The method of claim 1, further comprising:
in response to a determination that the highest priority print job cannot be allocated to any of the available presses, ignoring the highest priority print job until a next run for allocating the print jobs in the post-RIP queue to the presses.
4. The method of claim 3, further comprising:
adding print jobs allocated to a press to a list of print jobs loaded on that press; and
in response to the list of print jobs loaded on that press exceeding a threshold level, removing that press from the set of available presses.
5. The method of claim 3, further comprising:
in response to the highest priority print job having been allocated or ignored and a determination that at least one press is available:
identifying a next highest priority print job in the post-RIP queue; and
allocating the next highest priority print job to the available press.
6. A non-transitory computer readable medium encoded with executable instructions for execution by a processor to load balance presses, wherein the instructions are to cause the processor to:
identify a highest priority print job in post-raster mage processor (RIP) queue;
determine a required option for the identified highest priority print job;
determine whether a press of a set of available presses is specified for the required option for the highest priority print job;
in response to a determination that no press is specified for the required option for the highest priority print job,
identify an additional set of the available presses specified s defaults for unspecified options;
determine identify a least loaded press from the additional set of the available presses; and
allocate the highest priority print job to the least loaded press from the additional set of the available presses, wherein the highest print job is moved from the post-RIP queue to a press loader queue for the least loaded press from the additional set of the available presses; and
print, by the least loaded press from the additional set of the available presses, the highest priority print job.
7. The non-transitory computer readable medium of claim 6, wherein the executable instructions are further to cause the processor to:
select a set of preferred presses from the set of the available presses; and
wherein to determine a least loaded press and to allocate the highest priority print job, the instructions are further to cause the processor to determine a least loaded press from the set of preferred presses and to allocate the highest priority print job to the least loaded press of the set of preferred presses.
8. The non-transitory computer readable medium of claim 6, wherein the executable instructions are further to cause the processor to:
in response to a determination that the highest priority print job cannot be allocated to any of the available presses, ignore the highest priority print job until a next run for allocating the print jobs in the post-RIP queue to the presses.
9. The non-transitory computer readable medium of claim 8, wherein the executable instructions are further to cause the processor to:
add print jobs allocated to a press to a list of print jobs loaded on that press; and
in response to the list of print jobs loaded on that press exceeding a threshold level, remove that press from the set of available presses.
10. The non-transitory computer readable medium of claim 8, wherein the executable instructions are further to cause the processor to:
in response to the highest priority print job having been allocated or ignored and a determination that at least one press is available:
identify a next highest priority print job in the post-RIP queue; and
allocate the net highest priority print job to the available press.
11. An apparatus to load balance presses, said apparatus comprising:
a processor; and
a memory on which is stored machine readable instructions that are to cause the processor to:
identify a highest priority print job in a post-raster image processor (RIP) queue;
determine a required option for the identified highest priority print job;
determine whether a press of a set of available presses specified for the required option for the highest priority print job;
in response to a determination that no press is specified for the required option for the highest priority print job,
identify an additional set of the available presses specified as defaults for unspecified options;
determine identify a least loaded press from the additional set of the available presses; and
allocate the highest priority print job to the least loaded press from the additional set of the available presses, wherein the highest print job is moved from the post-RIP queue to a press loader queue for the least loaded press from the additional set of the available presses; and
print, by the least loaded press from the additional set of the available presses, the highest priority print job.
12. The apparatus of claim 11, wherein the machine readable instructions are further to cause the processor to:
select a set of preferred presses from the set of the available presses; and
wherein to determine a least loaded press and to allocate the highest priority print job, the machine readable instructions are further to cause the processor to determine a least loaded press from the set of preferred presses and to allocate the highest priority print job to the least loaded press of the set of preferred presses.
13. The apparatus of claim 11, wherein the machine readable instructions are further to cause the processor to:
in response to a determination that the highest priority print job cannot be allocated to any of the available presses, ignore the highest priority print job until a next run for allocating the print jobs in the post-RIP queue to the presses.
14. The apparatus of claim 13, wherein the machine readable instructions are further to cause the processor to:
add print jobs allocated to a press to a list of print jobs loaded on that press; and
in response to the list of print jobs loaded on that press exceeding a threshold level, remove that press from the set of available presses.
US14/866,238 2012-04-25 2015-09-25 Automatic load balancer for presses Active US9760325B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/866,238 US9760325B2 (en) 2012-04-25 2015-09-25 Automatic load balancer for presses

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/456,205 US9170758B2 (en) 2012-04-25 2012-04-25 Automatic load balancer for presses
US14/866,238 US9760325B2 (en) 2012-04-25 2015-09-25 Automatic load balancer for presses

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US13/456,205 Continuation US9170758B2 (en) 2012-04-25 2012-04-25 Automatic load balancer for presses

Publications (2)

Publication Number Publication Date
US20160019012A1 US20160019012A1 (en) 2016-01-21
US9760325B2 true US9760325B2 (en) 2017-09-12

Family

ID=49477027

Family Applications (2)

Application Number Title Priority Date Filing Date
US13/456,205 Expired - Fee Related US9170758B2 (en) 2012-04-25 2012-04-25 Automatic load balancer for presses
US14/866,238 Active US9760325B2 (en) 2012-04-25 2015-09-25 Automatic load balancer for presses

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US13/456,205 Expired - Fee Related US9170758B2 (en) 2012-04-25 2012-04-25 Automatic load balancer for presses

Country Status (1)

Country Link
US (2) US9170758B2 (en)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2804231B1 (en) 2000-01-25 2002-11-08 Vistaprint Usa Inc CENTRALIZED PRINTING OF LOW-VOLUME COMMERCIAL DOCUMENTS ON MACHINES PREVIOUSLY LIMITED TO VERY LARGE PRINTS
US9170758B2 (en) * 2012-04-25 2015-10-27 Hewlett-Packard Indigo B.V. Automatic load balancer for presses
JP6198424B2 (en) * 2013-03-28 2017-09-20 キヤノン株式会社 Order management apparatus and order management method
JP6490017B2 (en) * 2016-01-19 2019-03-27 三菱電機株式会社 Power module, three-phase inverter system, and power module inspection method
JP6638458B2 (en) * 2016-02-18 2020-01-29 株式会社リコー Image formation output control device, control method of image formation output control device, control program of image formation output control device
NO345072B1 (en) 2018-03-08 2020-09-21 Kongsberg Defence & Aerospace As Correction Unit for RF filter
JP6958481B2 (en) * 2018-05-25 2021-11-02 京セラドキュメントソリューションズ株式会社 Remote management system and information processing method
US11954390B2 (en) 2022-01-10 2024-04-09 Kyocera Document Solutions Inc. Printing system for peer-to-peer output management
US11556294B1 (en) 2022-01-10 2023-01-17 Kyocera Document Solutions Inc. Methods and printing system for peer-to-peer output management
US11954391B2 (en) 2022-01-10 2024-04-09 Kyocera Document Solutions Inc. Methods and printing system for peer-to-peer output management
JP2023178663A (en) * 2022-06-06 2023-12-18 キヤノン株式会社 Image forming device, control method for image forming device, and program

Citations (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5040123A (en) * 1989-09-08 1991-08-13 General Motors Corporation Expert system scheduler
US5459850A (en) * 1993-02-19 1995-10-17 Conner Peripherals, Inc. Flash solid state drive that emulates a disk drive and stores variable length and fixed lenth data blocks
US5487144A (en) * 1992-12-01 1996-01-23 Yokogawa Electric Corporation Scheduling system
US5655062A (en) * 1995-03-02 1997-08-05 Eastman Kodak Company Accent color printing
US5978560A (en) * 1997-11-07 1999-11-02 Xerox Corporation Load balancing of distributed printing systems using enhanced printer attributes
US6145031A (en) * 1998-08-26 2000-11-07 International Business Machines Corporation Multiple insertion point queue to order and select elements to be processed
US6373585B1 (en) * 1998-08-26 2002-04-16 International Business Machines Corporation Load balancing for processing a queue of print jobs
US6498656B1 (en) * 1998-08-26 2002-12-24 International Business Machines Corporation Rule based selection criteria for controlling print job distribution
US20030016374A1 (en) * 2001-06-04 2003-01-23 Athena Christodoulou Method of, computer program for, and system for maintaining print system media resources
US20030098991A1 (en) * 2001-11-26 2003-05-29 Tim Laverty Autobatching and print job creation
US20030128384A1 (en) * 2002-01-04 2003-07-10 Nelson Dean S. Dynamic load-balancing print server systems and methods
US20030225726A1 (en) * 2002-05-31 2003-12-04 Simpson Shell S. Mechanism for sharing web-based imaging information from a mainframe computing environment
US20040190042A1 (en) * 2003-03-27 2004-09-30 Ferlitsch Andrew Rodney Providing enhanced utilization of printing devices in a cluster printing environment
US20070239299A1 (en) * 2006-04-06 2007-10-11 Milne Robert J Large scale supply planning
US7355733B2 (en) * 2000-05-04 2008-04-08 Oce-Technologies B.V. Recording material management in a copier or printer
US20080297843A1 (en) * 2007-06-01 2008-12-04 Brother Kogyo Kabushiki Kaisha Printing Device, Method, and Computer Readable Medium Therefor
US7542155B2 (en) * 2006-09-25 2009-06-02 Vistaprint Technologies Limited Preparation of aggregate jobs for production
US20090182655A1 (en) * 1999-02-01 2009-07-16 Sony Corporation Method and apparatus for prioritized delivery of electronic mail messages
US20090185212A1 (en) * 2008-01-23 2009-07-23 Mark Gustafson Multiproduct printing workflow system with dynamic scheduling
US20100118330A1 (en) * 2008-11-07 2010-05-13 Ricardo Fernando Feijoo Systems and Methods for Managing Printer Settings in a Networked Computing Environment
US20100214598A1 (en) * 2009-02-26 2010-08-26 Xerox Corporation System for visually managing office document finishing options
US20100328706A1 (en) * 2009-06-30 2010-12-30 Konica Minolta Systems Laboratory, Inc. Systems and methods for message based determination of printer capabilities
US20110066269A1 (en) * 2009-09-14 2011-03-17 Palo Alto Research Center Incorporated System and methods for dynamic scheduling in cellular manufacturing with batch-splitting
US20110208556A1 (en) * 2010-02-24 2011-08-25 Satoshi Nagahara Worker assignment device, worker assignment program, and worker assignment system
US8009308B2 (en) * 2005-07-12 2011-08-30 Printingforless.Com System and method for handling printing press workload
US8023129B2 (en) * 2002-01-10 2011-09-20 Brother Kogyo Kabushiki Kaisha Information processing device for balancing printing loads connected to a plurality of printing devices, network printing system for a plurality of printing devices, and computer program for information processing device connected to a pluarlity of printing devices
US20120147387A1 (en) * 2010-12-13 2012-06-14 Canon Kabushiki Kaisha Predicting the times of future events in a multi-threaded rip
US20120209654A1 (en) * 2011-02-11 2012-08-16 Avaya Inc. Mobile activity assistant analysis
US20120330709A1 (en) * 2011-06-21 2012-12-27 King Abdulaziz City For Science And Technology Project management systems and methods thereof
US20130063774A1 (en) * 2010-03-01 2013-03-14 Ricoh Company, Ltd. Method And Device For Printing A Scheduled Print Job
US20130100486A1 (en) * 2011-10-25 2013-04-25 Phillip A. McCoog Communication architectures for direct printing and scanning
US20130262169A1 (en) * 2010-08-01 2013-10-03 Johannes P. Van Der Vyver Automated contract mediator
US20130286430A1 (en) * 2012-04-25 2013-10-31 Steve Morris Automatic load balancer for presses

Patent Citations (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5040123A (en) * 1989-09-08 1991-08-13 General Motors Corporation Expert system scheduler
US5487144A (en) * 1992-12-01 1996-01-23 Yokogawa Electric Corporation Scheduling system
US5459850A (en) * 1993-02-19 1995-10-17 Conner Peripherals, Inc. Flash solid state drive that emulates a disk drive and stores variable length and fixed lenth data blocks
US5655062A (en) * 1995-03-02 1997-08-05 Eastman Kodak Company Accent color printing
US5978560A (en) * 1997-11-07 1999-11-02 Xerox Corporation Load balancing of distributed printing systems using enhanced printer attributes
US6145031A (en) * 1998-08-26 2000-11-07 International Business Machines Corporation Multiple insertion point queue to order and select elements to be processed
US6373585B1 (en) * 1998-08-26 2002-04-16 International Business Machines Corporation Load balancing for processing a queue of print jobs
US6498656B1 (en) * 1998-08-26 2002-12-24 International Business Machines Corporation Rule based selection criteria for controlling print job distribution
US20090182655A1 (en) * 1999-02-01 2009-07-16 Sony Corporation Method and apparatus for prioritized delivery of electronic mail messages
US7355733B2 (en) * 2000-05-04 2008-04-08 Oce-Technologies B.V. Recording material management in a copier or printer
US20030016374A1 (en) * 2001-06-04 2003-01-23 Athena Christodoulou Method of, computer program for, and system for maintaining print system media resources
US20030098991A1 (en) * 2001-11-26 2003-05-29 Tim Laverty Autobatching and print job creation
US20030128384A1 (en) * 2002-01-04 2003-07-10 Nelson Dean S. Dynamic load-balancing print server systems and methods
US8023129B2 (en) * 2002-01-10 2011-09-20 Brother Kogyo Kabushiki Kaisha Information processing device for balancing printing loads connected to a plurality of printing devices, network printing system for a plurality of printing devices, and computer program for information processing device connected to a pluarlity of printing devices
US20030225726A1 (en) * 2002-05-31 2003-12-04 Simpson Shell S. Mechanism for sharing web-based imaging information from a mainframe computing environment
US20040190042A1 (en) * 2003-03-27 2004-09-30 Ferlitsch Andrew Rodney Providing enhanced utilization of printing devices in a cluster printing environment
US8009308B2 (en) * 2005-07-12 2011-08-30 Printingforless.Com System and method for handling printing press workload
US20070239299A1 (en) * 2006-04-06 2007-10-11 Milne Robert J Large scale supply planning
US7542155B2 (en) * 2006-09-25 2009-06-02 Vistaprint Technologies Limited Preparation of aggregate jobs for production
US20080297843A1 (en) * 2007-06-01 2008-12-04 Brother Kogyo Kabushiki Kaisha Printing Device, Method, and Computer Readable Medium Therefor
US20090185212A1 (en) * 2008-01-23 2009-07-23 Mark Gustafson Multiproduct printing workflow system with dynamic scheduling
US20100118330A1 (en) * 2008-11-07 2010-05-13 Ricardo Fernando Feijoo Systems and Methods for Managing Printer Settings in a Networked Computing Environment
US20100214598A1 (en) * 2009-02-26 2010-08-26 Xerox Corporation System for visually managing office document finishing options
US20100328706A1 (en) * 2009-06-30 2010-12-30 Konica Minolta Systems Laboratory, Inc. Systems and methods for message based determination of printer capabilities
US20110066269A1 (en) * 2009-09-14 2011-03-17 Palo Alto Research Center Incorporated System and methods for dynamic scheduling in cellular manufacturing with batch-splitting
US20110208556A1 (en) * 2010-02-24 2011-08-25 Satoshi Nagahara Worker assignment device, worker assignment program, and worker assignment system
US20130063774A1 (en) * 2010-03-01 2013-03-14 Ricoh Company, Ltd. Method And Device For Printing A Scheduled Print Job
US20130262169A1 (en) * 2010-08-01 2013-10-03 Johannes P. Van Der Vyver Automated contract mediator
US20120147387A1 (en) * 2010-12-13 2012-06-14 Canon Kabushiki Kaisha Predicting the times of future events in a multi-threaded rip
US20120209654A1 (en) * 2011-02-11 2012-08-16 Avaya Inc. Mobile activity assistant analysis
US20120330709A1 (en) * 2011-06-21 2012-12-27 King Abdulaziz City For Science And Technology Project management systems and methods thereof
US20130100486A1 (en) * 2011-10-25 2013-04-25 Phillip A. McCoog Communication architectures for direct printing and scanning
US20130286430A1 (en) * 2012-04-25 2013-10-31 Steve Morris Automatic load balancer for presses

Also Published As

Publication number Publication date
US20160019012A1 (en) 2016-01-21
US20130286430A1 (en) 2013-10-31
US9170758B2 (en) 2015-10-27

Similar Documents

Publication Publication Date Title
US9760325B2 (en) Automatic load balancer for presses
US8468527B2 (en) Method and system for optimal batching in a production environment
CN102707911B (en) Printing management device, printing management method, and printing system
US8599421B2 (en) Method for managing one or more print processing queues
US8237964B2 (en) Print job scheduling for processing print jobs based on user set delay criteria
US8355149B2 (en) Information processing apparatus, control method thereof, and program
US8015053B2 (en) Processor, system and method for accommodating high priority print jobs
US8836987B2 (en) Print queue management in a print shop environment
US20110286037A1 (en) Cloud computing system, document processing method, and storage medium
CN111752497B (en) Method and system for efficiently scheduling jobs by collecting data from multiple sources
US8654375B2 (en) Resource partitioning in a print system
JP2010079895A (en) Print job assignment method allowing user-prioritization
US9891874B2 (en) Non-transitory computer-readable storage medium storing distributed printing control program, and distributed printing control apparatus
US20190377528A1 (en) Print management apparatus, print management system, and non-transitory computer readable medium
US8570579B2 (en) Methods and systems for determining capacity allocation and job size thresholds for print jobs having heavy-tailed distributions
US9491324B2 (en) Printer-pool based splitting of multi-copy print jobs
US8699064B2 (en) Print job scheduling in a print shop environment
US20160283170A1 (en) Methods and systems for performing queue-based routing of print jobs in a multi-site print production environment
US10268428B2 (en) Medium prompting mechanism
CN107111462B (en) Resource provisioning
US20100100884A1 (en) Load balancing using distributed printing devices
EP3702899B1 (en) Raster image processor allocation scheme
JP5928883B2 (en) Serial tandem printing system, page distribution method, and program
US9264566B1 (en) Print job production methods and systems in a large transaction print environment
JP2018010640A (en) Distributed printing control program, distributed printing control device, and distributed printing control method

Legal Events

Date Code Title Description
AS Assignment

Owner name: HEWLETT-PACKARD INDIGO B.V., NETHERLANDS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MORRIS, STEVE;MUCHER, PHILIPPE;GILON, NIR;SIGNING DATES FROM 20120424 TO 20120425;REEL/FRAME:036756/0765

STCF Information on status: patent grant

Free format text: PATENTED CASE

CC Certificate of correction
MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4