Patent Publication Number: US-2003234958-A1

Title: Printing system

Description:
BACKGROUND  
       [0001] Today, some printers are able to locally retain print jobs indefinitely in a local non-volatile memory for future printing. For ease of discussion, printers that have this capability may be referred to, herein, as supporting “retention printing”. For ease of discussion, a printer that supports retention printing may be referred to herein as a “retention printer”. One example of a retention printer is described in the patent entitled “MULTIPLE COPY PRINTER WITH PRINT JOB RETENTION”, having U.S. Pat. No. 6,160,629. That patent is incorporated herein by reference  
       [0002] There are a number of different types of retention printing. One type of retention printing is commonly referred to as “quick-copy printing”. According to quick-copy printing, a printer retains a received job in a local non-volatile memory. In addition, the printer prints the job. Thereafter, a user can print additional copies of the retained job. Typically, the user can accomplish this task by inputting an appropriate request at the local control panel of the printer. The printer responds to the request by accessing the job from the memory and then printing the requested copies.  
       [0003] A second type of retention printing is commonly referred to as “Proof and Hold printing”. According to “Proof and Hold printing”, a printer retains a received multi-copy print job in memory and prints a limited number of copies (typically one copy). Thereafter, a user can cause the rest of the copies to be printed by, for example, inputting an appropriate request at the printer control panel.  
       [0004] A third type of retention printing is commonly referred to as “private printing”. According to private printing, a printer retains a received print job and delays printing the job until the printer receives a privacy code. Upon receiving the appropriate code, the printer prints the job.  
       [0005] A fourth type of retention printing is commonly referred to as “simple retention printing”. According to simple retention printing, a printer retains a received print job and does not immediately print it. Future printing of the retained job is available to users by, for example, the user inputting an appropriate request at the printer control panel.  
       [0006] For purposes of this application, a print job that invokes any type of retention printing described above may generally be referred to herein as a “retention job”. Additionally, a print job that directs a printer to perform “quick-copy printing” may be referred to herein as a “quick-copy job”. A print job that directs a printer to perform “poof and hold printing” may be referred to herein as a “proof and hold job”. A print job that directs a printer to perform “private printing” may be referred to herein as a “private printing job”. A print job that directs the printer to perform “simple retention printing” may be referred to herein as a “simple retention job”.  
       [0007] One problem with retention printing is associated with the limited storage space that is available at the printer to retain jobs. As the printer retains more and more jobs, the storage space is depleted. At some point, the retention printer may be unable to retain additional jobs.  
       SUMMARY  
       [0008] In accordance with one embodiment a method comprises receiving, sequentially, a plurality of retention jobs; processing each one of the jobs, at least in part, by retaining each one of the jobs in a local non-volatile memory; selecting one of the retained jobs for archival; and archiving the selected job on a remote storage system. 
     
    
    
     DESCRIPTIONS OF THE DRAWINGS  
     [0009]FIG. 1 shows a computing system in accordance with a first embodiment of the invention;  
     [0010]FIG. 2A and FIG. 2B illustrate an aspect of a printer;  
     [0011]FIG. 3 shows a computing system in accordance with a second embodiment of the invention;  
     [0012]FIG. 4 is a high-level block diagram of a printer;  
     [0013]FIG. 5 illustrates the operation of the printer upon receiving a “quick-copy” job;  
     [0014]FIG. 6A and FIG. 6B illustrates an aspect of the printer functionality;  
     [0015]FIG. 7 illustrate the operation the printer to receive and respond to a request to re-print the “target job” after the job has been archived;  
     [0016]FIG. 8A illustrates an example of a job archive system; and  
     [0017]FIG. 8B illustrates another example of a job archive system. 
    
    
     DESCRIPTION  
     [0018]FIG. 1 shows a computing system  102  that incorporates an embodiment of the invention. The computing system  102  includes a printer  104 , a source  105  and a storage system  106 . All these devices are connected to a network  108 .  
     [0019] The printer  104  supports at least one of the retention printing types described. As shown, the printer  104  includes a local memory  110 . The memory  110  is a non-volatile memory and is used by the printer  104  to retain jobs. The source  105  may represent any device or device(s) that is capable of transmitting retention jobs to the printer  104  over the network  108 .  
     [0020]FIG. 2A and FIG. 2B illustrate an aspect of the printer  104  operation. Turning to FIG. 2A, it is assumed the source  105  functions to transmit, sequentially, retention jobs to the printer  104  (step  202 ). The printer  104  receives each of these jobs in the order they are transmitted (step  204 ).  
     [0021] As each retention job is received, the printer  104  processes the job appropriately (step  206 ). This includes retaining the job in the local memory  110 . Step  206  may also include printing the job. “Quick-copy jobs”, for example, are processed by both retaining the job in the memory  110  and printing the job.  
     [0022] In the next part of this discussion, it is assumed that the printer  104  is presently retaining a set of jobs  120  in the memory  110 . Turning now to FIG. 2B, the printer  104  automatically selects at least one of the retained jobs from the set of jobs  120  to archive (step  210 ). Next, the printer  104  operates to archive the selected job on the remote storage system  106  (step  212 ). Step  212  may involve the printer  104  transmitting the selected job over the network  108  to the storage system  106 . The storage system  106  receives the selected job and functions to archive the selected job.  
     [0023] SECOND EMBODIMENT  
     [0024]FIG. 3 shows a second embodiment of the invention in the form of a computing system  302 . As shown, the computing system  302  includes a user computer  304 , a printer  306  and a job archive system  308 . All these devices are connected to a network  310 .  
     [0025] The user computer  304  may represent, for example, a personal computer, a workstation, a network computer, etc. The user computer  304  includes a display device  312 , a processor unit  314 , user input devices  316  and a memory  318 . The memory  318  is shown being external to the processor unit  314  but may in fact be physically located within the processor unit  314 . Stored in the memory  318  is a software module  320 . The processor unit  314  can execute the software module  320 .  
     [0026] The software module  320  enables the computer  304 , at the direction of a user, to generate and transmit a retention job to the printer  306 . The software module  320  may include, for example, a word processing application and a print driver.  
     [0027] PRINTER BLOCK DIAGRAM  
     [0028]FIG. 4 shows a high-level block diagram of the printer  306  according to one specific implementation. As shown in FIG. 4, the printer  306  includes a control system  402 , a memory  404 , an input-output (I/O) port  406 , a print engine  408  and a user interface  409 . All these items are connected via a local interface  410 . It is noted that the printer  306  may also include other components that are not shown. For example, the printer  306  may include a scanner for enabling walk-up users to make copies.  
     [0029] The printer&#39;s local interface  410  may include, for example, one or more data buses with accompanying control buses. Furthermore, the user interface  409  may represent one or more local control panels that are accessible to walk-up users.  
     [0030] The I/O port  406  facilitates communications with other devices over the network  310 . For example, the I/O port  406  enables the printer  306  to receive a retention job over the network  310  from the user computer  304 . The I/O port  406  also enables the printer  306  to transmit retention jobs over the network system  310  to the job archive system  308  for archival purposes.  
     [0031] The print engine  408  includes the necessary hardware for enabling the printer  306  to controllably place marks on media. The print engine  408  may incorporate any type of printing technology. For example, the print engine  408  may be a laser print engine, an ink jet print engine, a dye sublimation print engine, a thermal dye print engine, etc.  
     [0032] The memory  404  is a non-volatile memory and is used by the printer  306  to retain jobs. The memory  404  may represent, for example, one or more disk drives or any other type (or types) of non-volatile storage device. In other embodiments, the memory  404  may represent a volatile memory, such as a Random Access Memory (RAM).  
     [0033] The control system  402  orchestrates the operation of the printer  306 . The control system  402  may include one or more microprocessors, various memory devices and other hardware circuits. Aspects of the control system  402  operation is directed by the execution of firmware  420  which is stored in a memory  421 .  
     [0034] OPERATION OF PRINTER (RETENTION PRINTING)  
     [0035] It is noted that the printer  306  supports retention printing. FIG. 5 illustrates, for example, the operation of the printer  306  upon receiving a “quick-copy” job from, for example, the computer  304 .  
     [0036] Turning now to FIG. 5, the printer  306  receives a “quick-copy job” from the computer  304  over the network  310  (step  502 ). The “quick-copy job” includes the appropriate commands for directing the printer  306  to perform “quick-copy” printing.  
     [0037] In response to the quick-copy job, the printer  306  operates to retain the job in the memory  404  (step  504 ). Additionally, the printer  306  operates to print the job (step  506 ).  
     [0038] Thereafter, a walk-up user can cause additional copies of the retained job to be printed by inputting an appropriate request at the printer&#39;s local user interface  409 .  
     [0039] OPERATION OF PRINTER (JOB ARCHIVAL)  
     [0040] In this embodiment, the printer  306  can also function to archive locally retained jobs on the job archive system  308 . FIG. 6A and FIG. 6B illustrates this aspect of the printer  306  functionality. As the steps in FIG. 6A are described, the printer  306  is assumed to be presently retaining a group of jobs  422  in the memory  404  (see FIG. 4).  
     [0041] Turning to FIG. 6A, the printer  306  monitors for a predetermined “trigger event” (step  602 ). Upon detecting this event, the printer  306  operates to select a job from the group of retained jobs  422  (step  610 ). [For ease of the following discussion, the job selected at step  610  may be referred to herein as the “target job”. It is also noted that the target job is selected in accordance with a predefined “job selection policy”. Examples of possible “trigger events” as well as possible “job selection policies” are provided below.] 
     [0042] The printer  306 , at step  612 , operates to transmit the target job to the job archive system  308 . The job archive system  308  receives and archives the target job (step  614 ).  
     [0043] Additionally, the printer  306  stores information that can later be used to retrieve the target job. In this example embodiment, the printer  306  stores a pointer to the new location of the target job (step  616 ). The printer  306  can later make use of the pointer to retrieve a copy of the target job from the job archive system  308 .  
     [0044] In the present embodiment, after a job is archived by the printer  306 , a walk-up user of the printer  306  can still re-print the job. FIG. 7 illustrates, for example, the operation the printer  306  to receive and respond to a request to re-print the above mentioned “target job” after the job has been archived.  
     [0045] Referring now to FIG. 7, a walk-up user to the printer  306  interacts with the user interface  409  to input an appropriate request to print a copy of the archived target job (step  702 ).  
     [0046] In response to the request, the printer  306  reads the pointer that was stored at step  616  in order to locate the target job on the archive system  308  (step  704 ). The printer  306  makes use of this information to transmit an appropriate request, over the network  310 , to the archive system  308  (step  706 ).  
     [0047] In response to the request, the archive system  308  returns a copy of the target job to the printer  306 . The printer  306  receives the copy and prints it (step  708  and step  710 ).  
     [0048] TRIGGER EVENT EXAMPLES  
     [0049] As indicated above, the printer  306  monitors for a “trigger event” at step  602 . Upon detecting a trigger event, the printer  306  proceeds to archive a retained job. In the next part of this description, some specific examples of “trigger events” that could be used to trigger the archival of a retained job are discussed.  
     [0050] Trigger Event Example #1  
     [0051] According to one implementation, the printer  306  is configured to archive a job when the capacity of the memory  404  to retain new jobs falls below a pre-determined threshold value. Thus, for example, at step  602  the printer  306  may monitor the memory  404  to determine when the capacity of the memory  404  to retain additional jobs falls below a threshold value. Once this event is detected (step  604 ), the printer  306  proceeds to archive one (or more) of the retained jobs  422 .  
     [0052] Trigger Event Example #2  
     [0053] According to another implementation, the printer  306  is configured to archive those jobs that have been retained for a threshold period of time.  
     [0054] Thus, at step  602 , the printer  306  may monitor the retained jobs  422  to identify jobs that have been retained for more than, for example, one week (other time periods, of course, may be used). Once a job that meets this criterion is detected, the printer  306  proceeds to archive the job.  
     [0055] Trigger Event Example #3  
     [0056] According to yet another implementation, the printer  306  is configured to archive those retained jobs that have not been accessed from the memory  404  for at least a threshold period of time.  
     [0057] Thus, at step  602 , the printer  306  may monitor the retained jobs  422  to identify jobs that have not been accessed for printing for more than 48 hours. Once a job that meets this criterion is detected, the printer  306  proceeds to archive the job.  
     [0058] Trigger Event Example #4  
     [0059] According to other implementations, retained jobs are each assigned an “expiration date”. The expiration date may be assigned, for example, by operation of the computer that originated the job (e.g., the computer  304 ) or by operation of the printer  306 .  
     [0060] Thus, at step  602 , the printer  304  may monitor the retained jobs  422  to identify those jobs that have “expired”. Once a job that meets this criterion is detected, the printer  306  proceeds to archive the job.  
     [0061] JOB SELECTION POLICY EXAMPLES  
     [0062] As noted above, the printer  306  operates to select a job to archive at step  610 . The selection of the job is performed in accordance with a pre-defined “job selection policy”. Some example job selections policies have already been discussed above.  
     [0063] For example, the printer  306  may select a retained job based upon the amount of time the job has been retained (see trigger event example #2). The printer  306  may also select a retained job based upon the length of time that has past since the job was last accessed from the memory  404  (see trigger event example #3). The printer  306  may also select a retained job based upon an assigned expiration date (see trigger event example #4).  
     [0064] Additional examples of “job selection policies” are provided below.  
     [0065] Job Selection Policy Example #1  
     [0066] According to one implementation, the printer  306  is configured to select the retained job, from the group of retained jobs  422 , that has not been accessed for re-printing for the longest period of time. Thus, for example, assume the retained jobs  422  include only two jobs, Job A and Job B. Job A was last accessed  2  hours ago for printing. Job B was last accessed 24 hours ago for printing. In this example, the printer  306  would select Job “B” at step  610  for archival as job “B” has not been accessed for the longest period of time.  
     [0067] Job Selection Policy Example #2  
     [0068] According to another implementation, the printer  306  is configured to select the retained job, from the group of retained jobs  422 , that was received first by the printer  306 .  
     [0069] Thus, for example, assume again that retained jobs  422  include only two jobs: Job “A” and Job “B”. Job “A” was received first by the printer  306 . In this example, the printer  306  operates to select Job “A” for archival as this job is the “oldest” retained job.  
     [0070] Job Selection Policy Example #3  
     [0071] According to yet another implementation, the printer  306  is configured to select the retained job, from the group of retained jobs  422 , that has the greatest file size.  
     [0072] JOB RETRIEVAL  
     [0073] In the embodiment just described the printer  306  stores a pointer when a job is archived. The printer  306  can later use the pointer to retrieve the archived job. It is noted that in other implementations, the printer  306  can identify a previously archived job without the use of a pointer. For example, the printer  306  may be configured to perform a discovery procedure over the network  310  to locate a previously archived job.  
     [0074] ARCHIVE SYSTEM  
     [0075]FIG. 8A illustrates the job archive system  308 . As shown, the job archive system  308  includes a server computer  802  and an associated memory  804  that is used to store a server program  806 . The server computer  802  runs the program  806 .  
     [0076] The server program  806  enables the job archive system  308  to archive jobs (e.g., the target job described above) received from the printer  306  over the network  310  and to return copies of these archived jobs upon receiving an appropriate request from the printer  306 .  
     [0077] The job archive system  308  includes a memory  808  that is used to archive jobs. The memory  808  may represent, for example, one or more disk drives, one or more tape drives, one or more optical based storage systems or some combination thereof.  
     [0078] It is noted that in other embodiments, the job archive system may be configured differently. For example, FIG. 8B shows one alternative implementation of the archive system  308 . In this case, the job archive system is a retention printer  820 . The retention printer  820  can receive jobs from other retention printers and can archive these jobs in a local non-volatile memory  822 . The memory  822  may represent, for example, a local disk drive.  
     [0079] It is noted that in still other embodiments, the job archive system operates to archive jobs in a hierarchical fashion. For example, the job storage system may include a disk drive and a tape drive. Jobs, when first received, are archived on the disk drive. After a period of time, the job may then be moved to the tape drive for long term storage.  
     [0080] In still other embodiments, the job archive system may be an Internet Service Provider (ISP) that archives jobs received over the INTERNET. The ISP may charge a fee for use of this service.  
     [0081] OTHER EMBODIMENTS  
     [0082] It is also noted that the present invention may be embodied in the form of a “computer-readable medium ” that stores (either temporarily or permanently) computer executable instructions for performing the steps depicted in one or more of the flow diagrams described above. As used herein, the phrase “computer-readable medium” can refer to any medium that can contain, store or propagate computer executable instructions. Thus, in this document, the phrase “computer-readable medium” may refer to a medium such as a CD ROM or a magnetic storage device. The phrase “computer-readable medium” may also refer to signals that are used to propagate the computer executable instructions over a network or a network system, such as the Public Internet.  
     [0083] Although several specific embodiments of the invention have been described and illustrated, the invention is not to be limited to specific forms or arrangements of parts so described and illustrated. The invention is limited only by the claims and the equivalents thereof.