Design Goals for an Internet Printing Protocol
RFC 2567
Document | Type |
RFC
- Experimental
(April 1999)
Was
draft-ietf-ipp-req
(ipp WG)
|
|
---|---|---|---|
Author | F. Don Wright | ||
Last updated | 2013-03-02 | ||
RFC stream | Internet Engineering Task Force (IETF) | ||
Formats | |||
Additional resources | Mailing list discussion | ||
IESG | Responsible AD | (None) | |
Send notices to | (None) |
RFC 2567
Request for posting confirmation emailed to previous authors: Rakesh Gandhi , Himanshu Shah lt; ----------------------------------------------------------+ Print job accepted and spooled (encrypted) - job id = #12345 - current state of print job = spooled - submission time = 02/12/97, 15:35 - printer state = printing - payment required to proceed with job - pick up at 230 East Main after 3:30 pm today +---------------------------------------------------------- > < ----------------------------------------------------------+ Payment transaction . . . < ----------------------------------------------------------+ Asynchronous response (email in this case) - decryption failed on job #12345 Wright Experimental [Page 27] RFC 2567 Internet Printing Design Goals April 1999 - no pages printed - current state of job = aborted 10.11. SUBMITTING A PRINT JOB WITH AUTHENTICATION An end-user wants to submit a print job. The print file already exists on his workstation. The client and printer are behind the same corporate firewall. The printer is available to anyone behind the firewall but authentication and authorization is required. Authorization takes place using the authenticated end-user's name. The data is pushed to the printer. The printer is capable of spooling the output. Client IPP Printer +---------------------------------------------------------- > < ----------------------------------------------------------+ Authentication Note: An authentication failure would end the transaction at this point. +---------------------------------------------------------- > Here is a print job - job name = MyJob - notify me by email when done printing - print on iso-a4-white paper - print on both sides of the paper - return status of the printer in response - tell me where to pick up output - document is in Postscript format - here is the document to print < ----------------------------------------------------------+ Print job accepted and spooled - job id = #12345 - current state of print job = spooled - submission time = 02/12/97, 15:35 - printer state = printing Wright Experimental [Page 28] RFC 2567 Internet Printing Design Goals April 1999 10.12. SUBMITTING A PRINT JOB GENERATED DYNAMICALLY An end-user wants to submit a print job. The print data is generated dynamically and is being transmitted by a printer driver on the client workstation as available. The client and printer are behind the same corporate firewall. The printer is available to anyone behind the firewall and no authentication and authorization is required. The data is pushed to the printer. The printer is capable of spooling the output. No error occurs. Client IPP Printer +---------------------------------------------------------- > Here is a print job - job name = MyJob - notify me by email when done printing - print on iso-a4-white paper - print on both sides of the paper - return status of the printer in response - document is in Postscript format - here is the print job < ----------------------------------------------------------+ Print data accepted and spooling started - job id = #12345 - current job state = spooled - submission time = 02/12/97, 15:35 - printer state = printing 10.13. SUBMITTING A PRINT JOB WITH A PRINTER JAM - CANCELED An end-user wants to submit a print job. The print data is generated dynamically and is being transmitted by a printer driver on the client workstation as available. The client and printer are behind the same corporate firewall. The printer is available to anyone behind the firewall and no authentication and authorization is required. The data is pushed to the printer. The printer is not capable of spooling the output. The printer jams notifies the user and the user chooses to cancel the job. Client IPP Printer +---------------------------------------------------------- > Here is a print job - job name = MyJob - notify me by email when done printing - print on iso-a4-white paper - print on both sides of the paper Wright Experimental [Page 29] RFC 2567 Internet Printing Design Goals April 1999 - return status of the printer in response - document is in Postscript format - here is the document to print < ----------------------------------------------------------+ Print data accepted and printing started - job id = #12345 +---------------------------------------------------------- > - What is the status of print job #12345? < --------------------------------------------------------- + - Job #12345 accepted but printer jammed, cannot continue +---------------------------------------------------------- > - Cancel job #12345 * Printer flushes remaining data < ----------------------------------------------------------+ Print job terminated - current job state = canceled - submission time = 02/12/97, 15:35 - printer state = jammed 10.14. SUBMITTING A PRINT JOB WITH A PRINTER JAM - RECOVERED An end-user wants to submit a print job. The print data is generated dynamically and is being transmitted by a printer driver on the client workstation as available. The client and printer are behind the same corporate firewall. The printer is available to anyone behind the firewall and no authentication and authorization is required. The data is pushed to the printer. The printer is not capable of spooling the output. The printer jams, notifies the user and the user clears the jam and elects to continue. Client IPP Printer +---------------------------------------------------------- > Here is a print job - job name = MyJob - notify me by email when done printing - print on iso-a4-white paper - print on both sides of the paper - return status of the printer in response - document is in Postscript format - here is the document to print < ----------------------------------------------------------+ Wright Experimental [Page 30] RFC 2567 Internet Printing Design Goals April 1999 Print data accepted and printing started - job id = #12345 < --------------------------------------------------------- + - Notification: printer jammed, cannot continue * Jam is clear by human intervention, printing continues +---------------------------------------------------------- > Here is the last part of the document to print < ----------------------------------------------------------+ Print job received - current job state = printing - submission time = 02/12/97, 15:35 - printer state = printing 10.15. SUBMITTING A PRINT JOB WITH SERVER PULL An end-user wants to submit a print job. The print data is in a file and is publicly available. It is pulled by the printer. The client and printer are behind the same corporate firewall. The printer is available to anyone behind the firewall and no authentication and authorization is required. The printer is capable of spooling the output. Printing may start before the entire job has been pulled. Client IPP Printer +---------------------------------------------------------- > Here is a print job - job name = MyJob - notify me by email when done printing - print on iso-a4-white paper - print on both sides of the paper - return status of the printer in response - here is a reference to the data to be printed < ----------------------------------------------------------+ Print data accepted and printing started - job id = #12345 - current state of job = spooled - submission time = 02/12/97, 13:15 - printer state = printing . . < ----------------------------------------------------------+ Wright Experimental [Page 31] RFC 2567 Internet Printing Design Goals April 1999 Get the file to be printed +---------------------------------------------------------- > Here it is Note: Failure to find the file, would end the transaction with an error at this point and an asynchronous notification would be send to the Client. < ----------------------------------------------------------+ Data received 10.16. SUBMITTING A PRINT JOB WITH REFERENCED RESOURCES An end-user wants to submit a print job. Part of the print data is on a file on the user's workstation. It is pushed by the client, but the print job requires some resource not included in the print file. The client and printer are behind the same corporate firewall. The printer is available to anyone behind the firewall and no authentication and authorization is required. The printer is capable of spooling the output. No errors occur. Client IPP Printer +---------------------------------------------------------- > Here is a print job - job name = MyJob - notify me by email when done printing - print on iso-a4-white paper - print on both sides of the paper - return status of the printer in response < ----------------------------------------------------------+ Print job accepted and spooled - job id = #12345 - submission time = 02/12/97, 15:35 +---------------------------------------------------------- > - here is the document to print < ----------------------------------------------------------+ - OK +---------------------------------------------------------- > - here is the URI to print, it is the last document. < ----------------------------------------------------------+ - OK Wright Experimental [Page 32] RFC 2567 Internet Printing Design Goals April 1999 < ----------------------------------------------------------+ Get the external resource +---------------------------------------------------------- > Here it is 10.17. GETTING CAPABILITIES 10.17.1. Submission Attributes An end-user wants to get the production and scheduling attributes that are supported or required when submitting jobs to this printer. The client will use these attributes when forming the subsequent print request. Client IPP Printer +---------------------------------------------------------- > I'm going to submit a Postscript job give me your job submission attributes < ----------------------------------------------------------+ Postscript production attributes for this Printer are: - medium-select = us-letter-white, us-legal-white - default is us-letter-white - copies = 1,2,3,4,5 - default is 1 - print-quality = draft, normal, high - default is draft - sides = 1-sided, 2-sided-long-edge - default is 2-sided-long-edge - Job scheduling attributes for this Printer are: - job-priority = 1,2,3 - default = 3 10.17.2. Printer Capabilities An end-user wants to determine the resolution, marking technology, and PDLs supported by the printer. Client IPP Printer +---------------------------------------------------------- > Please tell me the - resolution of the printer - the marking technology of the printer - PDLs supported < ----------------------------------------------------------+ Printer resolution = 600 dpi Marking Technology = laser Wright Experimental [Page 33] RFC 2567 Internet Printing Design Goals April 1999 PDLs supported = Postscript level 2, PCL/6 10.18. GETTING STATUS 10.18.1. Printer State/Status An end-user wants to determine the state or status of the printer. Client IPP Printer +---------------------------------------------------------- > What is the state of the printer? < ----------------------------------------------------------+ Printer state = out-of-paper 10.18.2. Job Status An end user wants to get the status of a job he has submitted. Client IPP Printer +---------------------------------------------------------- > Please tell me the status of job #12345 < ----------------------------------------------------------+ Job #12345 is queued it is number 3 in the queue printer state = printing 10.18.3. Status of All My Jobs An end user wants to get a list of all of the jobs he has submitted to this Printer. Client IPP Printer +---------------------------------------------------------- > Please tell me the status of my jobs < ----------------------------------------------------------+ Job #00012 is complete Printed at 12:35 on 01/23/97 Job #09876 is printing Job #12345 is queued it is number 3 in the queue Wright Experimental [Page 34] RFC 2567 Internet Printing Design Goals April 1999 Job #34567 is queued it is number 7 in the queue 10.19. ASYNCHRONOUS NOTIFICATION 10.19.1. Job Completion An end-user wants to get notification of events that affect his print jobs. Print job completes without error. Client IPP Printer < ----------------------------------------------------------+ Print job #123 completed 10.19.2. Job Complete with Data An end-user wants to get notification of events that affect his print jobs. Print job completes, users asked for all end of job information. Client IPP Printer < ----------------------------------------------------------+ Print job #123 completed - total pages printed = 15 - number of copies printed = 3 - total cost to print = $7.45 - pick up copies in room H-6, building 005 10.19.3. Print Job Fails An end-user wants to get notification of events that affect his print jobs. Print job fails. Printer is unattended. Client IPP Printer < ----------------------------------------------------------+ Print job #123 failed - total pages printed = 15 - number of pages submitted = 25 - printer-state = jammed Wright Experimental [Page 35] RFC 2567 Internet Printing Design Goals April 1999 10.20. CANCEL A JOB The end-user submits a print job and later decides to cancel it. Client IPP Printer +---------------------------------------------------------- > < ----------------------------------------------------------+ Authentication. +---------------------------------------------------------- > Cancel job #1234 < ----------------------------------------------------------+ Job #1234 Canceled 10.21. END TO END SCENARIO - WITHIN AN ENTERPRISE An office worker prints on shared departmental printers. All printers in the office are public, that is, no authentication or authorization is required. Printers are protected from external access by a firewall. No billing or accounting is required. Most printing is done from desktop applications. A help desk is provided for printing problems. Standard operating systems and applications are used. Drivers are available, but are installed manually by support personnel. This scenario assumes that drivers have been installed and that drivers are not IPP aware, that is, they cannot communicate across an IPP connection to obtain status and capabilities. IPP printers appear in application pull-down menus. Printer configuration data is hard wired into the driver. End-user selects print from the application pull down menu. An IPP printer is selected from the list of Printers offered The driver puts up a dialogue with hard-wired set of options for this printer. The end-user makes choices and submits job. Client IPP Printer +---------------------------------------------------------- > Here is a print job - job-name = memo-to-boss - notify me by email when job is complete - print on us-letter-white paper - print 1 copy - print at normal quality - print on 1 side Wright Experimental [Page 36] RFC 2567 Internet Printing Design Goals April 1999 - give me the state of the printer in response The driver generates the print data and passes it to the IPP driver a piece at a time as it is generated. +---------------------------------------------------------- > Here is the print data < ----------------------------------------------------------+ Print data received, file is spooled - printer state = printing - time submitted = 2/12/97, 15:35 - current job state = spooled Client adds this job to list of current jobs. List of jobs and state of each is available on a pull-down menu on the client. End-user selects job #1234 from list and clicks on it to see its status. +---------------------------------------------------------- > Give me the state of job #1234 and the state of the Printer < ----------------------------------------------------------+ Job #1234 state = spooled - it is number 3 in the queue - printer state = printing The job completes without error < ----------------------------------------------------------+ Job #1234 completed 12 of 12 pages printed 10.22. END TO END SCENARIO - ACROSS ENTERPRISES An office worker in Company A needs to print an office document on a "public" printer at Company B, a business partner. Both companies have corporate firewalls so the print request must flow out of A's firewall and into B's firewall. The office worker can look at public printers in Company B's directory service. The document is generated by a desktop application. Since the printer is "public" no authentication or authorization is required. A driver is downloaded. The driver is IPP aware, that is, it can communicate dynamically through the IPP protocol layer to obtain information about the printer. Wright Experimental [Page 37] RFC 2567 Internet Printing Design Goals April 1999 Client Company B's Directory Service End user connects to B's Directory service +---------------------------------------------------------- > Find a Printer with these characteristics - public (no authorization or authentication required) - is in Lexington, building 004 - prints black and white < ----------------------------------------------------------+ Printer "Public-A" - http://www.lexmark.com/pubprinter/a Printer "Public-B" - http://www.lexmark.com/pubprinter/b End user selects Public-A Client Public-A +---------------------------------------------------------- > Where can I find a driver for you? < ----------------------------------------------------------+ Drivers at http://www.lexmark.com/pubprinters/a/os245 End user gets driver and installs it on his PC. End-user selects print from the application pull down menu. "Public- A" is selected from the list of Printers offered +---------------------------------------------------------- > I'm going to submit a print job give me your job submission attributes < ----------------------------------------------------------+ Production attributes for this Printer are: - medium-select = us-letter-white, us-legal-white - default is us-letter-white - copies = 1,2,3,4,5 - default is 1 - print-quality = draft, normal, high - default is draft - sides = 1-sided, 2-sided-long-edge - default is 2-sided-long-edge Wright Experimental [Page 38] RFC 2567 Internet Printing Design Goals April 1999 Job scheduling attributes for this Printer are: - job-priority = 1,2,3 default = 3 Driver puts up dialogue with available options and fills in the defaults. End-user makes choices and submits job +---------------------------------------------------------- > Here is a print job - job-name = memo-to-Don-Wright - notify me by email when job is complete - print on us-letter-white paper - print 1 copy - print at normal quality - print on 1 side - give me the state of the printer in response The driver generates the print data and passes it to the IPP driver a piece at a time. +---------------------------------------------------------- > Here is the print data < ----------------------------------------------------------+ Print data received, and spooling started print job id = #1234 Print data received, file is spooled - printer state = printing - time submitted = 2/12/97, 15:35 - current job state = spooled Client adds this job to list of current jobs. List of jobs and state of each is available on a pull-down menu on the client. End-user selects job #1234 from list and clicks on it to see its status. +---------------------------------------------------------- > Give me the state of job #1234 and the state of the Printer < ----------------------------------------------------------+ Job #1234 state = spooled Wright Experimental [Page 39] RFC 2567 Internet Printing Design Goals April 1999 - it is number 3 in the queue - printer state = printing * The job completes without error < ----------------------------------------------------------+ Job #1234 completed 12 of 12 pages printed 10.23. END TO END SCENARIO - ON THE INTERNET An executive in her hotel room is finishing an important presentation on her laptop computer. She connects to a local print shop through the web to get a copy of her charts printed for tomorrow's presentation. She must find a print shop that is convenient and can print color transparencies. She must download and temporarily install a driver in order to generate the PDL required by the print shop. Mutual authentication is required by the print shop and payment must be made in advance. The job is encrypted on the wire to prevent eavesdropping. End-user completes presentation. She goes to the web and connects to the SirZippy home page. Client SirZippy Directory Service +---------------------------------------------------------- > Find me a printer with these characteristics - Near Market Street in San Jose - Prints color transparencies - drivers can be downloaded - supports privacy (encryption) - Available Printers matching these characteristics are looked up in the Directory Service < ----------------------------------------------------------+ Printer "Color-A" - located at 123 First Street in San Jose - URI is http://www.SirZippy.com/FirstStreet/Color-A - prints color transparencies - 600 dpi laser - driver ABC-Postscript-V1.3 available at this URI - cost = $.75 per page - authentication required to use printer - payment required prior to printing Wright Experimental [Page 40] RFC 2567 Internet Printing Design Goals April 1999 Printer "Color-B" - located at 67 San Carlos Street, San Jose - URI is http://www.SirZippy.com/SanCarlos/Color-B - prints color transparencies - 1200 dpi laser - driver XYZ-PostScript-V4.3 available at this URI - cost = $1.25 per page - authentication required to use printer - payment required prior to printing - more information at this URI The user decides to use the first printer because it is closer. She connects to the URI given to get a driver. Client Driver URI +---------------------------------------------------------- > I need a driver for "Color-A" < ----------------------------------------------------------+ Driver installer is at http://www.xerox.com/prtdrvrs Driver is installed User connects to "Color-A" Client IPP Printer "Color-A" +---------------------------------------------------------- > < ----------------------------------------------------------+ Mutual authentication and exchange of secret keys +---------------------------------------------------------- > I'm going to submit a print job give me your job submission attributes < ----------------------------------------------------------+ Production attributes for this Printer are: - medium-select = us-letter-white, us-legal-white - default is us-letter-white - copies = 1,2,3,4,5 - default is 1 - print-quality = draft, normal, high - default is draft - sides = 1-sided, 2-sided-long-edge - default is 2-sided-long-edge Wright Experimental [Page 41] RFC 2567 Internet Printing Design Goals April 1999 Job scheduling attributes for this Printer are: - job-priority = 1,2,3 default = 3 Driver puts up dialogue with available options and fills in the defaults. End-user makes choices and submits job +---------------------------------------------------------- > Here is a print job - job-name = presentation - notify me by email when job is complete - print on us-letter-transparency - print 1 copy - print at high quality - print by 9:00 am tomorrow morning - give me the state of the printer in response The driver generates the print data and passes it to the IPP driver a piece at a time. +---------------------------------------------------------- > Here is the print data < ---------------------------------------------------------+ Print data received, and spooling started print job id = #1234 Print data received, file is spooled - printer state = printing - time submitted = 2/12/97, 15:35 - current job state = held, waiting for payment +---------------------------------------------------------- > < ----------------------------------------------------------+ Payment transaction < ----------------------------------------------------------+ Job is scheduled to print, pick up after 9:00am tomorrow Thank you for using SirZippy Wright Experimental [Page 42] RFC 2567 Internet Printing Design Goals April 1999 11. Full Copyright Statement Copyright (C) The Internet Society (1999). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Wright Experimental [Page 43]