Method and apparatus for processing print jobs via parallel spooling and despooling operations
Title: | Method and apparatus for processing print jobs via parallel spooling and despooling operations |
---|---|
Patent Number: | 7,468,802 |
Publication Date: | December 23, 2008 |
Appl. No: | 09/550219 |
Application Filed: | April 17, 2000 |
Abstract: | A system and method for concurrently spooling and despooling print jobs, which allows print data associated with a print job to be despooled from storage at the same time that additional print data associated with the print job is spooled onto storage. Print jobs are received and storing of the print job is initiated. The portion of the print data that has been stored is concurrently read from the storage device, and sent to the print engine, thereby allowing the print job to be printed as the print job is being stored onto the storage device. |
Inventors: | Johnson, Charles David (Boulder, CO, US); Miller, Russel Neil (Boulder, CO, US); Teklits, Larry David (Loveland, CO, US) |
Assignees: | International Business Machines Corporation (Armonk, NY, US) |
Claim: | 1. A method for increasing print job throughput in printer spooling arrangements, comprising: receiving a print job having associated print data; writing print data associated with the print job to a storage device; monitoring the storage device to determine when print data associated with the print job becomes available on the storage device; reading the print data associated with the print job from the storage device upon determining at least a portion of print data associated with the print job on the storage device is available for printing, while concurrently writing print data associated with the print job to the storage device; suspending reading print data associated with the print job from the storage device upon detecting a predetermined condition associated with print data associated with the print job; and printing the print data associated with the print job that is read from the storage device concurrently while print data associated with the print job is being written to the storage device. |
Claim: | 2. The method of claim 1 , further comprising generating a message indicating that the print job is pending. |
Claim: | 3. The method of claim 2 , further comprising initiating the reading of the print data from the storage device in response to recognition of the message. |
Claim: | 4. The method of claim 1 , further comprising: maintaining status attributes to identify a data file for the print job that has been created on the storage device to spool the print data, and to identify when at least a portion of the print data associated with the print job becomes available on the storage device. |
Claim: | 5. The method of claim 1 , wherein the suspending reading of the print data associated with the print job further comprising suspending reading of the print data associated with the print job if the quantity of the print data written to the storage device is less than a predetermined number of bytes. |
Claim: | 6. The method of claim 1 , wherein the suspending reading of the print data associated with the print job further comprising suspending reading of the print data associated with the print job when all of the print data written to the storage device has been read from the storage device but before the print data has been written to the storage device in its entirety. |
Claim: | 7. The method of claim 6 , further comprising generating an end of job indication when the print data has been written to the storage device in its entirety. |
Claim: | 8. The method of claim 6 , further comprising resuming reading of the print data when additional print data has been written to the storage device. |
Claim: | 9. The method of claim 1 , further comprising reading the print data for printing from the storage device only after the writing of the print data has completed, if the print data is associated with predetermined one or more file types. |
Claim: | 10. The method of claim 9 , wherein the predetermined file types includes a PDF file type. |
Claim: | 11. The method of claim 1 , further comprising reading a number of bytes of the print data from the storage device that is above a number of bytes of the print data that has been written to the storage device. |
Claim: | 12. The method of claim 1 , further comprising updating despool availability status to identify the print data as available for reading for printing from the storage device upon creation of a data file on the storage device to which the print data is directed. |
Claim: | 13. The method of claim 12 , wherein the monitoring further comprises monitoring the despool availability status to determine when to initiate the reading of the print data from the storage device. |
Claim: | 14. The method of claim 13 , wherein monitoring the despool availability status comprises monitoring the despool availability status using a back-end despooling daemon. |
Claim: | 15. The method of claim 12 , wherein updating the despool availability status comprises updating the despool availability status using a front-end spooling daemon. |
Claim: | 16. A printing device for processing print job requests, comprising: at least one input channel to receive the print job requests; a storage medium to store print data associated with the print job requests; a spooling module coupled to receive the print job requests and associated print data, and to write print data associated with a print job request to the storage medium; a despooling module for monitoring the storage device to determine when print data associated with the print job becomes available on the storage device and for receiving notification of an availability of the print data associated with a print job request on the storage medium, and to read print data associated with the print job from the storage device upon determining at least a portion of print data associated with the print job on the storage device is available for printing, while concurrently writing print data associated with the print job to the storage device, the despooling module further suspending reading print data associated with the print job from the storage device upon detecting a predetermined condition associated with print data associated with the print job; and a print engine to print the print data associated with a print job request that is read from the storage medium concurrently while print data associated with the print job is being written to the storage device. |
Claim: | 17. The printing device of claim 16 , further comprising a job monitor module to maintain spooling status including an active spool indication to indicate that the print data is being written to the storage medium. |
Claim: | 18. The printing device of claim 16 , further comprising a job monitor module to maintain spooling status including a write count indication to indicate a number of bytes of the print data that has been written to the storage medium. |
Claim: | 19. The printing device of claim 16 , wherein the despooling module comprises means for reading the first portion of the print data that does not exceed the write count indication. |
Claim: | 20. The printing device of claim 16 , wherein the storage medium is a hard disk. |
Claim: | 21. The printing device of claim 20 , wherein the hard disk is formatted with a spooler directory to reserve storage for the print data associated with the print job requests. |
Claim: | 22. The printing device of claim 20 , wherein the hard disk is resident on the printing device. |
Claim: | 23. A print server system for processing print jobs, comprising: one or more client systems arranged in a network to generate print jobs identifying print data for printing; transmission media coupled to receive the print jobs and to transfer the print jobs initiated on the network; a printing device coupled to the network via the transmission media to receive and process the print jobs, the printing device comprising: a storage medium to store print data associated with the print jobs; a spooling module coupled to receive the print job requests and associated print data, and to write print data associated with a print job request to the storage medium; a despooling module for monitoring the storage device to determine when print data associated with the print job becomes available on the storage device and for receiving notification of an availability of the print data associated with a print job request on the storage medium, and to read print data associated with the print job from the storage device upon determining at least a portion of print data associated with the print job on the storage device is available for printing, while concurrently writing print data associated with the print job to the storage device, the despooling module further suspending reading print data associated with the print job from the storage device upon detecting a predetermined condition associated with print data associated with the print job; and a print engine to print the print data associated with a print job request that is read from the storage medium concurrently while print data associated with the print job is being written to the storage device. |
Claim: | 24. The print server system of claim 23 , wherein the printing device comprises at least one input channel to receive the print job requests. |
Claim: | 25. The print server system of claim 23 , wherein the printing device further comprises a job monitor module to maintain spooling status including an active spool indication to indicate that the print data is being written to the storage medium. |
Claim: | 26. The print server system of claim 23 , wherein the printing device further comprises a job monitor module to maintain spooling status including a write count indication to indicate a number of bytes of the print data that has been written to the storage medium. |
Claim: | 27. The print server system of claim 23 , wherein the despooling module comprises means for reading the first portion of the print data that does not exceed the write count indication. |
Claim: | 28. A computer-readable program storage medium tangibly embodying a program of instructions executable by a printer system to process print jobs by performing steps comprising: receiving a print job having associated print data; writing print data associated with the print job to a storage device; monitoring the storage device to determine when print data associated with the print job becomes available on the storage device; reading print data associated with the print job from the storage device upon determining at least a portion of print data associated with the print job on the storage device is available for printing, while concurrently writing print data associated with the print job to the storage device; suspending reading print data associated with the print job from the storage device upon detecting a predetermined condition associated with print data associated with the print job; and printing the print data associated with the print job that is read from the storage device concurrently while print data associated with the print job is being written to the storage device. |
Claim: | 29. A method for concurrently spooling and despooling a print job to and from a storage device to increase printer throughput, comprising: creating a file on a storage device in which to store the print job; writing print data associated with the print job to the storage device; maintaining a status indicator on a panel indicating whether the print data is currently being written to the storage device; monitoring the status indicator to determine if the print job is currently being written to the storage medium; reading print data associated with the print job from the storage device upon determining at least a portion of print data associated with the print job on the storage device is available for printing, while concurrently writing print data associated with the print job to the storage device; suspending reading print data associated with the print job from the storage device upon detecting a predetermined condition associated with print data associated with the print job; and sending to the printing device for printing the print data associated with the print job that is read concurrently while print data associated with the print job is being written to the storage medium. |
Current U.S. Class: | 358/115 |
Patent References Cited: | 5367673 November 1994 Goldsmith et al. 5371873 December 1994 Niwa 5478155 December 1995 Sasaki 5546511 August 1996 Kwak 5790852 August 1998 Salm 5791790 August 1998 Bender et al. 5930467 July 1999 Morita 6023343 February 2000 Hoang et al. 6081883 June 2000 Popelka et al. 8-123637 May 1996 |
Primary Examiner: | Garcia, Gabriel I |
Attorney, Agent or Firm: | Merchant & Gould |
Accession Number: | edspgr.07468802 |
Database: | USPTO Patent Grants |
Language: | English |
---|