The invention relates to the field of print job management, and in particular, to generating workflows in a print shop environment.
Print shops are typically medium or large scale facilities capable of supplying printing services to meet a variety of customer demands. For example, print shops are often used to print documents for mass-mailing (e.g., customer bills, advertisements, etc.). Because print shops engage in printing on a scale that is hard to match, their customer base is usually varied. Print shop customers may therefore include both large institutional clients (e.g., credit card companies and banks), and small customers (e.g., small businesses and churches).
Print shops are generally arranged to print incoming jobs from customers in a way that is economical, yet fast. Thus, print shops often include a number of high-volume printers capable of printing incoming jobs quickly and at high quality. Print shops also typically include post-printing devices that are used to process the printed documents of each job (e.g., stackers, staplers, cutters, binders, etc.). Print shops may also provide digital/web publishing, e-mail, or other multimedia services to customers. Because print shops serve a variety of customers, they are often tasked with processing jobs that have varying printing formats, delivery dates, and media requirements. Print shops therefore often use a centralized print server that coordinates activity between printers and other devices of the print shop.
Customers submit their print jobs to print shops in a variety of formats. Along with the print data itself, a print job may include a job ticket describing what the customer wants (e.g., deliverable products, deadlines, e-mail blasts, etc.). For example, a customer may request that the print shop publish the print data at a web page and receive three copies of a printed document made from the print data. Customers may communicate their requests for services to the print shop in different ways. For example, a customer may use a Web-to-Print application that generates an XML or JDF file for the print shop, or a customer may simply telephone a print shop operator to request print shop services.
As jobs are received at a print shop from different customers, each job ticket may include different services requested by a customer. To perform services requested by customers, a print shop performs a set of print shop activities. For example, to print a bound document, a print shop may engage in activities such as “pre-flight” review of print data, printing the document, post-print binding the document, physically shipping the document to the customer, and billing the customer. A customer's requested services can vary with each incoming job, and print shop devices and personnel perform different activities to process incoming jobs having different requested services. However, deciding the specific activities to perform for incoming print data is often a time consuming process, and print shop operators desire ways to more quickly and easily generate an ordered set of discrete activities that a print shop may perform for incoming print jobs to meet the demands of customers.
Embodiments described herein address the concerns of print shop operators and managers by using a set of rules to generate a workflow for each incoming print job, wherein the rules define the priority, resources, and the dependency of activities within a print shop. When a customer submits a print job to the print shop, a workflow generator of the print shop dynamically generates a workflow of activities to perform that are tailored to the print job. The workflow is generated based upon available activities in the print shop, a job ticket of the print job, and rules defined for the customer. These generated workflows determine the nature and order of activities to perform to meet customer demands for a specific job. Thus, custom workflows may be generated “from scratch” for each incoming print job.
One embodiment is a system that generates a workflow for a print job based upon rules defined for customers of the print shop. The system comprises an interface, a memory, a workflow generator, and a resource manager. The system stores rules defined for customers that describe logical relationships of activities at the print shop. Different combinations of the rules may be used to generate different workflows of print shop activities. The system receives a print job for a customer, and identifies rules that apply to the job (e.g., rules defined for the customer). The system then identifies activities available at the print shop, and generates a workflow for the print job based on the rules defined for the customer, the available activities, and a job ticket of the print job. The system also directs the resources of the print shop to perform the activities of the workflow.
Using the system described above, it is possible to generate workflows that are customized for incoming print jobs and customers. Furthermore, by generating these workflows “from scratch” as a print job is received, there is no need to generate and manage workflow templates prior to receipt of a print job. Rather, the rules allow the print shop to dynamically generate different workflows for different jobs and customers.
Other exemplary embodiments may be described below.
Some embodiments of the present invention are now described, by way of example only, and with reference to the accompanying drawings. The same reference number represents the same element or the same type of element on all drawings.
The figures and the following description illustrate specific exemplary embodiments of the invention. It will thus be appreciated that those skilled in the art will be able to devise various arrangements that, although not explicitly described or shown herein, embody the principles of the invention and are included within the scope of the invention. Furthermore, any examples described herein are intended to aid in understanding the principles of the invention, and are to be construed as being without limitation to such specifically recited examples and conditions. As a result, the invention is not limited to the specific embodiments or examples described below, but by the claims and their equivalents.
Clients 110-112 may serve banks, credit card companies, or other customers having printing and document delivery needs (e.g., monthly bank statements, monthly credit card bills, etc.). Clients 110-112 may also serve customers with digital publishing needs (e.g., needs for e-mail services, web publishing services, and others). Information describing the services requested by the customer may be included in job tickets sent by clients 110-112.
Print shop resources 130 include the devices and components of the print shop that are used to perform print shop activities. For example, print shop resources 130 may include personnel, printers, post-printing machinery, e-mail or web publishing servers, media, ink, firmware versions for print shop devices, and others. Print shop resources 130 may exist within the confines of the print shop itself, or may comprise off-site devices and functional components managed by workflow server 120. The print shop resources 131-134 illustrated in
While in operation, workflow server 120 identifies available activities that may be performed by print shop resources 130. Workflow server 120 may determine available print shop activities based upon the nature of print shop resources 130. For example, when print shop resources 130 include e-mail server 132, available activities may include generating e-mails, scheduling times to send e-mails, and selecting e-mail recipients. Activities may be associated with a category or type of resource (e.g., personnel, printers, servers) and may also be associated with specific named print shop resources (e.g., Susan, printing system 131, e-mail server 132).
Innumerable print shop activities may be defined, and certain print shop activities may be logically related with each other so that they have order and dependency relationships (e.g., a post-printing activity such as hole punching may depend upon the print data being successfully printed). A print shop operator may prioritize activities (e.g., to ensure that billing is the last activity performed), and may make certain activities required (e.g., billing may be required for every print job that enters the system). Furthermore, certain activities may be required, altered, or made optional based upon specific clients, customers, or information in a job ticket of the print job (e.g., services requested by the customer, multimedia parameters, size of the print data, format of the print data, etc.). For example, thank-you letters may be sent to high value or long-term customers, while credit checks may be performed upon new customers. The logical relationships of print shop activities are hereinafter referred to as “print shop rules” or “rules.” In addition to printing activities, rules may regulate non-printing activities (e.g., billing, shipping, document review, multimedia/digital/internet activities, credit checks, etc.). In order to aid an operator of the print shop in managing rules and activities, a Graphical User Interface (GUI) 122 is provided for generation and manipulation of activities and rules. Workflow server 120 stores rules for the print shop in memory 123.
Once rules and activities have been defined, workflow generator 124 is operable to generate a workflow for a print job of a customer. Workflow generator 124 generates the workflow based on information in a job ticket of the print job (e.g., services requested by the customer, the size of a print job, etc.) and the rules for the print job (e.g., the rules for the customer). The available activities are dynamically scheduled into the customized workflow to defined an ordered set of activities to perform (including, for example, activities that run in parallel).
Resource manager 125 of workflow server 120 analyzes the generated workflow and directs print shop resources 130 to perform the activities defined by the workflow for a given print job. In one embodiment, resource manager 125 identifies activities that relate to specific print shop resources 131-134 (e.g., the activity “e-mail the client a printing status report” may relate to e-mail server 132), and instructs the specific resources to perform the identified activities. Resource manager 125 may further receive feedback from print shop resources 130 (e.g., information indicating that an activity has successfully completed).
Thus, while in operation, workflow server 120 receives and processes incoming print jobs from clients 110-112. Workflow server 120 determines the services requested by the customer, and dynamically generates (i.e., “from scratch”) a workflow of activities to perform in order to achieve the services requested by the customer while complying with the rules of the print shop. These dynamically generated workflows are customized for each incoming job.
In step 202, interface 121 receives a print job from a customer. A print job may include print data and a job ticket. The job ticket may define, for example, parameters for multimedia or printing activities, print job handling requirements, or services requested by the customer. Print jobs are received from clients 110-112. Print jobs may be received in any of a variety of formats known to one of ordinary skill in the art.
In step 204, workflow generator 124 engages in the workflow creation process by identifying rules defined for the print job, such as rules defined for the customer that submitted the print job. The rules may be identified based upon information in the job ticket of the print job. For example, the customer may be identified based upon information in a job ticket for the print job, information in memory 123 indicating the source of the print data, or information in the print data itself. Once the customer has been identified, workflow generator 124 may retrieve rules for the customer from memory 123. Different combinations of rules may be used to generate different workflows.
In step 206, workflow generator 124 identifies a set of available activities to perform with print shop resources 130. Print shop resources 130 may automatically indicate their status (e.g., “online,” “busy,” “offline”) and available activities (e.g., e-mail, print, bind) to workflow server 120 as a set of JDF device capabilities. Each activity may be associated with a specific capability of a print shop resource 131-134. Workflow generator 124 may determine the availability of activities based on the availability of associated print shop resources.
In step 208, workflow generator 124 generates a custom workflow based on the rules for the print job (e.g., the rules for the customer), the set of available activities, and a job ticket of the print job. Custom workflows are not merely assigned from a predefined workflow template, but rather are generated “from scratch” depending upon available activities at the print shop. For example, custom workflows may not even exist for a print job until after the print job is received at workflow server 120. The workflow comprises an ordered set of print shop activities, and is arranged to conform with the print shop rules (e.g., the rules defined for the customer). To determine an activity to place at a location in the workflow, workflow generator 124 filters the available activities based upon a job ticket of the print job and the rules for the print job. Information in a job ticket of the print job may include print data and multimedia characteristics (e.g., e-mail addressees, print data size, print data format, etc.), as well as services requested by the customer (e.g., three copies, in black and white, delivered in one week). In one embodiment, workflow generator 124 analyzes the services requested by the customer to generate selection criteria for the activities. The rules may also provide criteria for choosing from the set of available activities of the print shop. For example, a rule may require a credit check activity to be performed for new clients. Using the job ticket and the rules for the customer, the available activities can be placed at specific locations in the workflow.
To aid workflow generator 124 in selecting an activity to place at a location in the workflow, print shop activities are associated with information that describes their resources, dependencies, and priorities. This information may be assigned to activities prior to receiving the print job. Furthermore, rules may alter the dependency, priority, and resource information for print shop activities under specific conditions. Resource information describes the print shop resources 130 used for a specific activity. Dependency information describes activities that are performed before the current activity. Priority information describes where the activity would be placed in the workflow if no dependency relationships existed between activities.
Workflow generator 124 may position activities in the workflow based upon their resource usage, dependencies, and priority (e.g., high priority activities may be performed before low priority activities). In certain circumstances, workflow generator 124 may place a low priority activity in front of a high priority activity. This may occur when the high priority activity is dependent upon the low priority activity. For example, a printed product generally cannot be shipped before it is printed. Thus, even if the activity of printing has a lower priority than the activity of shipping, printing may be scheduled to occur before shipping. In a similar fashion, workflow generator 124 may schedule a low priority activity in front of a medium priority activity, if a high priority activity depends upon the low priority activity. Using the dynamic workflow generation process described above, entirely different workflows can be generated for different print jobs, even when no such workflows existed in the system beforehand.
In step 210, resource manager 125 analyzes the generated workflow and directs the print shop resources 131-134 to perform the activities of the workflow. Resource manager 125 is further operable to receive feedback from each of print shop resources 131-134 indicating the progress of the resource for the current activity in the workflow. Once the workflow has been completed, resource manager 125 may delete the workflow from memory 123, or may otherwise remove the workflow from workflow server 120. Many workflows may be processed in parallel by workflow server 120, and workflow server 120 may generate a new workflow for each new incoming job by initiating method 200 at step 202.
Using the method 200 described above, rules can be used to define the priority, dependency, and resources of activities within a print shop. Once rules are defined, workflow server 120 is operable to dynamically generate (i.e., “from scratch”) a workflow of activities to perform based upon the job tickets for incoming print jobs and the rules. Thus, customized workflows are dynamically generated for each incoming job. These dynamically generated workflows reduce the expense and time taken when determining how to process an incoming job.
In the following examples, additional processes, systems, and methods are described in the context of workflow server 120 as it dynamically generates customized workflows of print shop activities for incoming jobs.
According to
Also according to
In a further example, workflow server 120 manages both on-site and off-site resources as part of print shop resources 130 (e.g., resources outside of the print shop or owned by another party). On-site and off-site resources may perform functionally similar activities (e.g., both may perform printing activities), and it may be preferable to perform certain functions with on-site activities or off-site activities depending upon the expected load at each resource (e.g., the number of activities scheduled at the resource) or the cost of performing the function at each resource. For example, performing a task using an off-site resource may generally be expected to result in quicker performance of the task, but may also be more expensive. Workflow server 120 may therefore use a set of default rules indicating when a function should be performed with activities using on-site or off-site resources. In one embodiment, workflow server 120 decides whether to bypass the default rules for an incoming print job. For example, a function may be moved to off-site resources when certain cost or load balancing criteria are met (e.g., if an on-site resource is overburdened, workflow server 120 may select a similar off-site resource to perform the same function).
In a further example, workflow generator 124 determines the cost and/or resource load associated with activities in the workflow performed for incoming print jobs. For example, a print shop resource may report the cost or time that it has taken to perform a given activity scheduled in a workflow for a print job, or a print shop operator may provide this information to workflow generator 124. This historic usage information may be stored in memory 123 and may be used to determine a predicted cost and/or load for each activity in the print shop. Predicted costs may depend, for example, upon a job ticket of the print job (e.g., print job size) or the type of activity (e.g., color printing vs. black and white printing). Furthermore, predicted cost or load may be based upon time of day or time of year (e.g., at the end of each month, each activity may routinely encounter a significantly higher load). In order to determine a predicted cost and/or load, regression techniques may be used to generate distribution curves (e.g., linear, quadratic, power, and exponential curves) that correlate the cost or load of an activity to customer rules or print job parameters (e.g., cost vs. print job size, time vs. load, etc.).
In a further example, workflow server 120 groups sets of related activities in the workflow, and arranges the workflow based upon the groups of activities. In this embodiment, activities are grouped based upon their functions (e.g., printing, e-mail, etc.) or resources used (e.g., printing system 131). Workflow generator 124 determines the resources, dependency, and priority of each group of activities as a whole, and generates workflows by locating the groups of activities in the workflow as if they were individual activities.
Embodiments disclosed herein can take the form of software, hardware, firmware, or various combinations thereof. In one particular embodiment, software is used to direct a processing system of workflow generator 120 to perform the various operations disclosed herein.
The computer readable storage medium 612 can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor device. Examples of the computer readable storage medium 612 include a solid state memory, a magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk, and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W), and DVD.
The processing system 600, being suitable for storing and/or executing the program code, includes at least one processor 602 coupled to memory elements 604 through a system bus 650. The memory elements 604 can include local memory employed during actual execution of the program code, bulk storage, and cache memories that provide temporary storage of at least some program code and/or data in order to reduce the number of times the code and/or data are retrieved from bulk storage during execution.
Input/output or I/O devices 606 (including but not limited to keyboards, displays, pointing devices, etc) can be coupled to the system either directly or through intervening I/O controllers. Network adapter interfaces 608 may also be coupled to the system to enable the processing system 600 to become coupled to other data processing systems or storage devices through intervening private or public networks. Modems, cable modems, IBM Channel attachments, SCSI, Fibre Channel, and Ethernet cards are just a few of the currently available types of network or host interface adapters. Presentation device interface 610 may be coupled to the system to interface to one or more presentation devices, such as printing systems and displays for presentation of presentation data generated by processor 602.
Although specific embodiments were described herein, the scope of the invention is not limited to those specific embodiments. The scope of the invention is defined by the following claims and any equivalents thereof.
Number | Name | Date | Kind |
---|---|---|---|
6573910 | Duke et al. | Jun 2003 | B1 |
6825943 | Barry et al. | Nov 2004 | B1 |
7051328 | Rai et al. | May 2006 | B2 |
7065567 | Squires et al. | Jun 2006 | B1 |
7079266 | Rai et al. | Jul 2006 | B1 |
7099027 | Barry et al. | Aug 2006 | B1 |
7125179 | Rai et al. | Oct 2006 | B1 |
7148985 | Christodoulou et al. | Dec 2006 | B2 |
7558638 | Chang et al. | Jul 2009 | B2 |
7626717 | Rai et al. | Dec 2009 | B2 |
8120801 | Zhang et al. | Feb 2012 | B2 |
8259321 | Zhang et al. | Sep 2012 | B2 |
8284423 | Jahn et al. | Oct 2012 | B2 |
8427670 | Rai | Apr 2013 | B2 |
8650152 | Dettinger et al. | Feb 2014 | B2 |
20020071134 | Jackson | Jun 2002 | A1 |
20030041765 | Hill | Mar 2003 | A1 |
20030061178 | Ogawa | Mar 2003 | A1 |
20030177082 | Buckwalter | Sep 2003 | A1 |
20030212611 | Barrot et al. | Nov 2003 | A1 |
20040006522 | Keane | Jan 2004 | A1 |
20040068424 | Lee et al. | Apr 2004 | A1 |
20040111430 | Hertling et al. | Jun 2004 | A1 |
20040184061 | Christiansen | Sep 2004 | A1 |
20040196470 | Christiansen | Oct 2004 | A1 |
20040196493 | Christiansen | Oct 2004 | A1 |
20050065830 | Duke | Mar 2005 | A1 |
20050096770 | Chua et al. | May 2005 | A1 |
20050151993 | Gartstein | Jul 2005 | A1 |
20050154625 | Chua et al. | Jul 2005 | A1 |
20050248804 | Goel et al. | Nov 2005 | A1 |
20050275875 | Jennings, Jr. | Dec 2005 | A1 |
20060039026 | Lofthus et al. | Feb 2006 | A1 |
20060044597 | Dumitrescu et al. | Mar 2006 | A1 |
20060092467 | Dumitrescu et al. | May 2006 | A1 |
20060149755 | Marshall et al. | Jul 2006 | A1 |
20070070379 | Rai et al. | Mar 2007 | A1 |
20070091355 | Rai | Apr 2007 | A1 |
20070124182 | Rai | May 2007 | A1 |
20070177191 | Eschbach et al. | Aug 2007 | A1 |
20070185777 | Pyle et al. | Aug 2007 | A1 |
20070236708 | Jahn et al. | Oct 2007 | A1 |
20070242303 | Barry et al. | Oct 2007 | A1 |
20070247657 | Zhang et al. | Oct 2007 | A1 |
20070247659 | Zhang et al. | Oct 2007 | A1 |
20080137108 | Song et al. | Jun 2008 | A1 |
20080144080 | Randt | Jun 2008 | A1 |
20080170254 | Shah | Jul 2008 | A1 |
20080180728 | Sekine | Jul 2008 | A1 |
20080256541 | Rai | Oct 2008 | A1 |
20080273213 | Steinhart et al. | Nov 2008 | A1 |
20080273224 | Maulsby et al. | Nov 2008 | A1 |
20080285067 | Rai | Nov 2008 | A1 |
20090033977 | Morales et al. | Feb 2009 | A1 |
20090043628 | Gombert | Feb 2009 | A1 |
20090063710 | Sekine | Mar 2009 | A1 |
20090063718 | Sekine et al. | Mar 2009 | A1 |
20090109464 | Knodt | Apr 2009 | A1 |
20090244600 | Haycock et al. | Oct 2009 | A1 |
20090251721 | Knodt | Oct 2009 | A1 |
20090279123 | Sekine | Nov 2009 | A1 |
20090279124 | Liu et al. | Nov 2009 | A1 |
20090279125 | Liu et al. | Nov 2009 | A1 |
20090281862 | Conescu et al. | Nov 2009 | A1 |
20090282412 | Sekine | Nov 2009 | A1 |
20100053657 | Weber | Mar 2010 | A1 |
20100060909 | Conescu et al. | Mar 2010 | A1 |
20100195140 | Shepherd et al. | Aug 2010 | A1 |
20100231968 | Hirasawa et al. | Sep 2010 | A1 |
20100250267 | Brenner et al. | Sep 2010 | A1 |
20110037996 | DeRoller | Feb 2011 | A1 |
20110075195 | Cain | Mar 2011 | A1 |
20110090529 | Hertling | Apr 2011 | A1 |
20110170893 | Nishikawa | Jul 2011 | A1 |
20110199646 | Homma | Aug 2011 | A1 |
20120057191 | Gnanasambandam | Mar 2012 | A1 |
20120092688 | Pangrazio | Apr 2012 | A1 |
20120188587 | Gaertner | Jul 2012 | A1 |
20120212771 | Goddard | Aug 2012 | A1 |
Number | Date | Country |
---|---|---|
1184779 | Mar 2002 | EP |
1320008 | Jun 2003 | EP |
Number | Date | Country | |
---|---|---|---|
20120218591 A1 | Aug 2012 | US |