7 Network Working Group F.D. Wright
8 Request for Comments: 2567 Lexmark International
9 Category: Experimental April 1999
12 Design Goals for an Internet Printing Protocol
16 This memo defines an Experimental Protocol for the Internet
17 community. It does not specify an Internet standard of any kind.
18 Discussion and suggestions for improvement are requested.
19 Distribution of this memo is unlimited.
23 Copyright (C) The Internet Society (1999). All Rights Reserved.
27 This document defines an Experimental protocol for the Internet
28 community. The IESG expects that a revised version of this protocol
29 will be published as Proposed Standard protocol. The Proposed
30 Standard, when published, is expected to change from the protocol
31 defined in this memo. In particular, it is expected that the
32 standards-track version of the protocol will incorporate strong
33 authentication and privacy features, and that an "ipp:" URL type will
34 be defined which supports those security measures. Other changes to
35 the protocol are also possible. Implementers are warned that future
36 versions of this protocol may not interoperate with the version of
37 IPP defined in this document, or if they do interoperate, that some
38 protocol features may not be available.
40 The IESG encourages experimentation with this protocol, especially in
41 combination with Transport Layer Security (TLS) [RFC2246], to help
42 determine how TLS may effectively be used as a security layer for
47 This document is one of a set of documents, which together describe
48 all aspects of a new Internet Printing Protocol (IPP). IPP is an
49 application level protocol that can be used for distributed printing
50 using Internet tools and technologies. This document takes a broad
51 look at distributed printing functionality, and it enumerates real-
52 life scenarios that help to clarify the features that need to be
53 included in a printing protocol for the Internet. It identifies
54 requirements for three types of users: end users, operators, and
58 Wright Experimental [Page 1]
60 RFC 2567 Internet Printing Design Goals April 1999
63 administrators. The design goals document calls out a subset of end
64 user requirements that are satisfied in IPP/1.0. Operator and
65 administrator requirements are out of scope for version 1.0.
67 The full set of IPP documents includes:
69 Design Goals for an Internet Printing Protocol (this document)
70 Rationale for the Structure and Model and Protocol for the
71 Internet Printing Protocol [RFC2568]
72 Internet Printing Protocol/1.0: Model and Semantics [RFC2568]
73 Internet Printing Protocol/1.0: Encoding and Transport [RFC2565]
74 Internet Printing Protocol/1.0: Implementer's Guide [ipp-iig]
75 Mapping between LPD and IPP Protocols [RFC2569]
77 The "Rationale for the Structure and Model and Protocol for the
78 Internet Printing Protocol" document describes IPP from a high level
79 view, defines a roadmap for the various documents that form the suite
80 of IPP specifications, and gives background and rationale for the
81 IETF working group's major decisions.
83 The "Internet Printing Protocol/1.0: Model and Semantics" document
84 describes a simplified model consisting of abstract objects, their
85 attributes, and their operations that is independent of encoding and
86 transport. The model consists of a Printer and a Job object. The
87 Job optionally supports multiple documents. IPP 1.0 semantics allow
88 end-users and operators to query printer capabilities, submit print
89 jobs, inquire about the status of print jobs and printers, and cancel
90 print jobs. This document also addresses security,
91 internationalization, and directory issues.
93 The "Internet Printing Protocol/1.0: Encoding and Transport" document
94 is a formal mapping of the abstract operations and attributes defined
95 in the model document onto HTTP/1.1. It defines the encoding rules
96 for a new Internet media type called "application/ipp".
98 The "Internet Printing Protocol/1.0: Implementer's Guide" document
99 gives insight and advice to implementers of IPP clients and IPP
100 objects. It is intended to help them understand IPP/1.0 and some of
101 the considerations that may assist them in the design of their client
102 and/or IPP object implementations. For example, a typical order of
103 processing requests is given, including error checking. Motivation
104 for some of the specification decisions is also included.
106 The "Mapping between LPD and IPP Protocols" document gives some
107 advice to implementers of gateways between IPP and LPD (Line Printer
108 Daemon) implementations.
114 Wright Experimental [Page 2]
116 RFC 2567 Internet Printing Design Goals April 1999
121 1. INTRODUCTION.....................................................4
122 2. TERMINOLOGY......................................................4
123 3. DESIGN GOALS.....................................................6
124 3.1. End-user.......................................................6
125 3.1.1. Finding or locating a printer................................6
126 3.1.2. Create an instance of the printer............................7
127 3.1.3. Viewing the status and capabilities of a printer.............7
128 3.1.4. Submitting a print job.......................................8
129 3.1.5. Viewing the status of a submitted print job..................9
130 3.1.6. Canceling a Print Job........................................9
131 3.2. Operator (NOT REQUIRED FOR V1.0)...............................9
132 3.2.1. Alerting.....................................................9
133 3.2.2. Changing Print and Job Status...............................10
134 3.3. Administrator (NOT REQUIRED FOR v1.0).........................10
135 4. OBJECTIVES OF THE PROTOCOL......................................10
136 4.1. SECURITY CONSIDERATIONS.......................................11
137 4.2. Interaction with LPD (RFC1179)................................12
138 4.3. Extensibility.................................................12
139 4.4. Firewalls.....................................................13
140 4.5. Internationalization..........................................13
141 5. IPP SCENARIOS...................................................13
142 5.1. Printer Discovery.............................................14
143 5.2. Driver Installation...........................................15
144 5.3. Submitting a Print Job........................................15
145 5.4. Getting Status/Capabilities...................................16
146 5.5. Asynchronous Notification.....................................17
147 5.6. Job Canceling.................................................17
148 6. Security Considerations.........................................18
149 7. REFERENCES......................................................18
150 8. ACKNOWLEDGMENTS.................................................19
151 9. AUTHOR'S ADDRESS................................................19
152 10. APPENDIX - DETAILED SCENARIOS..................................20
153 10.1. Printer discovery within an enterprise.......................20
154 10.2. Printer discovery across enterprises.........................21
155 10.3. Printer discovery on the Internet -logical operations........21
156 10.4. Printer discovery on the Internet - authentication...........22
157 10.5. Driver Download..............................................23
158 10.6. Submitting a print job as a file.............................24
159 10.7. Submitting a print job with two documents....................24
160 10.8. Submitting a print job as a file, printing fails.............25
161 10.9. Submitting a print job with authentication, PRIVACY and
162 payment......................................................26
163 10.10. Submitting a print job with decryption error................27
164 10.11. Submitting a print job with authentication..................28
165 10.12. Submitting a print job generated dynamically................29
166 10.13. Submitting a print job with a Printer jam - CANCELED........29
170 Wright Experimental [Page 3]
172 RFC 2567 Internet Printing Design Goals April 1999
175 10.14. Submitting a print job with a Printer jam - recovered.......30
176 10.15. Submitting a print job with server pull.....................31
177 10.16. Submitting a print job with referenced resources............32
178 10.17. Getting Capabilities........................................33
179 10.17.1. Submission Attributes.....................................33
180 10.17.2. Printer Capabilities......................................33
181 10.18. Getting Status..............................................34
182 10.18.1. Printer State/Status......................................34
183 10.18.2. Job Status................................................34
184 10.18.3. Status of All My Jobs.....................................34
185 10.19. Asynchronous Notification...................................35
186 10.19.1. Job Completion............................................35
187 10.19.2. Job Complete with Data....................................35
188 10.19.3. Print Job Fails...........................................35
189 10.20. Cancel a job................................................36
190 10.21. End to end Scenario - within an enterprise..................36
191 10.22. End to end Scenario - across enterprises....................37
192 10.23. End to End Scenario - on the internet.......................40
193 11. Full Copyright Statement.......................................43
197 The IPP protocol is heavily influenced by the printing model
198 introduced in the Document Printing Application (DPA) [ISO10175]
199 standard. Although DPA specifies both end user and administrative
200 features, IPP version 1.0 (IPP/1.0) focuses only on end user
205 Internet Printing for the purposes of this document is the
206 application of Internet tools, programs, servers and networks to
207 allow end-users to print to a remote printer using, after initial
208 setup or configuration, the same methods, operations and paradigms as
209 would be used for a locally attached or a local area network attached
210 printer. This could include the use of HTTP servers and browsers and
211 other applications for providing static, dynamic and interactive
212 printer locating services, user installation, selection,
213 configuration, print job submission, printer capability inquiry and
214 status inquiry of remote printers and jobs.
216 For the purposes of this document, a WEB Browser is software
217 available from a number of sources including but not limited to the
218 following: Microsoft Internet Explorer, NCSA Mosaic, Netscape
219 Navigator, Sun Hot Java!. The major task of these products is to use
220 the Hypertext Transport Protocol (HTTP) to retrieve, interpret and
221 display Hypertext Markup Language (HTML). These products are often a
222 part of a complete Internet Printing system because they are often
226 Wright Experimental [Page 4]
228 RFC 2567 Internet Printing Design Goals April 1999
231 used as a means of obtaining the status of or more information about
232 the printing system; however, they may not be present in all
235 Throughout this document, 'printer' shall be interpreted to include
236 any device which is capable of marking on a piece of media using any
237 available technology. These design goals do not include support for
238 multi-tiered printing solutions involving servers (single or
239 multiple) logically in front of the actual printing device yet all
240 such configurations shall be supported but shall appear to the end-
241 user as only a single device.
243 Throughout this document 'driver' refers to the code installed in
244 some client operating system to generate the print data stream for
245 the intended printer. Some computing environments may not include a
246 separate printer driver. Rather, the generation of the proper print
247 data stream is accomplished in an application on that computer. How
248 such a computer environment or application is updated to support a
249 new printer now made available using IPP is outside the scope of IPP.
250 The actual details for installing a printer driver are operating
251 system dependent and are also outside the scope of IPP. See also
252 section 4.1 (SECURITY CONSIDERATIONS) for security implications of
253 driver download and installation.
255 The IPP protocol will support the following physical configurations:
257 - An IPP client talking to an IPP Printer object imbedded in a
258 single, physical output device.
259 - An IPP Client talking to a server containing one or more IPP
260 Printer objects. Each Printer object is associated with exactly one
261 physical output device supported by the server. The protocol
262 between the server and the output devices is undefined.
263 - An IPP Client talking to an IPP Printer object in a server. The
264 Printer object is associated with one or more physical output
265 devices, but the client only sees the Printer object, which is an
266 abstraction and represents all of the associated physical output
267 devices. The protocol between the server and the physical output
268 devices is undefined.
270 Throughout this document, certain design goals will be identified as
271 not being a part of version 1.0 (or V1.0) of the protocol or as being
272 satisfied by means outside of IPP. IPP is assumed to be one part, an
273 enabler, of a complete Internet Printing solution. For example
274 printer instance creation is not performed by but is enabled by the
275 protocol. Globally, none of the operator or administrators wants and
276 needs are included in the design goals for version 1.0. Some of the
277 end-user wants and needs may also be excluded from version 1.0 and
278 will be so noted in the description of them. Subsequent versions of
282 Wright Experimental [Page 5]
284 RFC 2567 Internet Printing Design Goals April 1999
287 the protocol (e.g. V2.0) may include support for these initially
288 excluded wants and needs.
292 The next three sections identify the design goals for an Internet
293 printing protocol from three roles assumed by humans: end-user,
294 operator, and administrator. The goals defined here are only those
295 that need to be addressed by an Internet printing protocol. Other
296 wants and needs, such as that the operator needs physical access to
297 the printer (e.g. to be able to load paper or clear jams) are not
298 covered by this document. Section 5 contains scenarios which provide
299 more detailed examples of the entire process including discovery,
300 status, printing and end-of-job reporting.
304 An end-user of a printer accepting jobs through the Internet is one
305 of the roles in which humans act. The end-user is the person that
306 will submit a job to be printed on the printer.
308 The wants and needs of the end-user are broken down into six
309 categories: finding/locating a printer, creating a local instance of
310 a printer, viewing printer status, viewing printer capabilities,
311 submitting a print job, viewing print job status, altering the
312 attributes of a print job.
314 3.1.1. Finding or locating a printer.
316 End-users want to be able to find and locate printers to which they
317 are authorized to print. They want to be able to perform this
318 function using a standard WEB browser or other application. Multiple
319 criteria can be applied to find the printers needed. These criteria
320 include but are not limited to:
322 - by name (Printer 1, Joes-color-printer, etc.)
323 - by geographic location (bldg 1, Kentucky, etc.)
324 - by capability or attribute (color, duplex, legal paper, etc.)
326 Additionally, while it is outside of scope of IPP, end-users want to
327 be able to limit the scope of their searching to:
329 - inside a functional sub-domain
330 - include only a particular domain (lexmark.com)
331 - exclude specified domains
338 Wright Experimental [Page 6]
340 RFC 2567 Internet Printing Design Goals April 1999
343 While an Internet printing protocol may not of itself include this
344 function, IPP must define and enable a directory schema which will
345 provide the necessary information for a directory service
346 implementation to consistently represent printers by their IPP
349 3.1.2. Create an instance of the printer.
351 After finding the desired printer, an end-user needs to be able to
352 create a local instance of that printer within the end-user operating
353 system or desktop. This local instance will vary depending upon the
354 printing paradigm of the operating system. For example, some UNIX
355 users will only want a queue or a reference to a remote printer
356 created on their machine while other UNIX users and Windows NT users
357 will want the queue and also the necessary icons and registry entries
358 to be created and initialized. Where required, drivers may need to
359 be downloaded from some repository and installed on the computer.
360 All necessary decompressing, unpacking, and other installation
361 actions should occur without end-user interaction or intervention
362 excepting initial approval by the end-user. Once the local instance
363 of the printer has been installed, it shall appear to the end-user of
364 the operating system and to the applications running there as any
365 other printer (local, local area network connected, or network
366 operating system connected) on the end-user desktop or environment.
367 IPP's role in this goal is simply to enable the creation of the
368 printer instance providing information such as where to locate a
369 printer driver for this printer, as an attribute of an IPP Printer.
371 3.1.3. Viewing the status and capabilities of a printer.
373 Before using a selected printer or, in fact at any time, the end-user
374 needs the ability to verify the characteristics and status of both
375 printers and jobs queued for that printer. When checking the
376 characteristics of a printer, the end-user typically wants to be able
377 to determine the capability of the device, e.g.:
379 - supported media, commonly paper, by size and type
380 - paper handling capability, e.g. duplex, collating, finishing
383 When checking the status of the printer and its print jobs, the end-
384 user typically wants to be able to determine:
386 - is the printer on-line?
387 - what are the defaults to be used for printing?
388 - how many jobs are queued for the printer?
389 - how are job priorities assigned? (outside the scope of IPP)
394 Wright Experimental [Page 7]
396 RFC 2567 Internet Printing Design Goals April 1999
399 3.1.4. Submitting a print job.
401 Once the desired printer has been located and installed, the end-user
402 wants to print to that printer from normal applications using
403 standard methods. These normal applications include such programs as
404 word processors, spreadsheets, data-base applications, WEB browsers,
405 production printing applications, etc. Additionally, the end-user
406 may want to print a file already existing on the end-user's computer
407 -- "simple push". In addition to printing from an application and
408 simple push, the end-user needs to have the ability to submit a print
409 job by reference. Printing by reference is defined to mean as
410 submitting a job by providing a reference to an existing document.
411 The reference, a URI, will be resolved before the actual print
412 process occurs. Submitting a job by reference relieves the user from
413 downloading the document from the remote server and then sending it
414 via IPP to the printer. This saves both time and network bandwidth.
416 Some means shall be provided to determine if the format of a job
417 matches the capability of the printer. This can be done by one of
418 the following (all of which are outside of scope of the IPP
421 - the end-user selects the correct printer driver
422 - the printer automatically selects the proper interpreter
423 - the end-user uses some other manual procedure.
425 A standard action shall be defined should the job's requirements not
426 match the capabilities of the printer.
428 Because the end-user does not want to know the details of the
429 underlying printing process, the protocol must support job-to-printer
430 capability matching (all implementations are not necessarily required
431 to implement this function.) This matching capability requires
432 knowing both the printer's capabilities and attributes and those
433 capabilities and attributes required by the job. Actions taken when
434 a print job requires capabilities or attributes that are not
435 available on the printer vary and can include but are not limited to:
437 - rejecting the print job
438 - redirecting the print job to another printer (Not in V1.0)
439 - printing the job, accepting differences in the appearance
441 Print jobs will also be submitted by background or batch applications
442 without human intervention.
444 End-users need the ability to set certain print job parameters at the
445 time the job is submitted. These parameters include but are not
450 Wright Experimental [Page 8]
452 RFC 2567 Internet Printing Design Goals April 1999
456 - single or two sided printing
460 3.1.5. Viewing the status of a submitted print job.
462 After a job has been submitted to a printer, the end-user needs a way
463 to view the status of that job (i.e. job waiting, job printing, job
464 done) and to determine where the job is in the print queue.
466 In addition to the need to inquire about the status of a print job,
467 automatic notification of the completion of that job is also
470 Notification means are not defined by the protocol but the protocol
471 must provide a means of enabling and disabling the notification.
473 3.1.6. Canceling a Print Job
475 While a job is waiting to be printed or has been started but not yet
476 completed, the original creator/submitter of the print job (i.e. the
477 end-user) shall be able to cancel the job entirely (job is waiting)
478 or the remaining portion of it (job is printing.) Altering the print
479 job itself is not a V1.0 design goal.
481 3.2. OPERATOR (NOT REQUIRED FOR V1.0)
483 An operator of a printer accepting jobs through the Internet is one
484 of the roles in which humans act. The operator has the
485 responsibility of monitoring the status of the printer as well as
486 managing and controlling the jobs at the device. These
487 responsibilities include but are not limited to the replenishing of
488 supplies (ink, toner, paper, etc.), the clearing of minor errors
489 (paper jams, etc.) and the re-prioritization of end-user jobs.
490 Operator wants and needs will not be addressed by V1.0 of the
493 The wants and needs of the operator include all those of the end-user
494 but may include additional privileges. For example, an operator may
495 be able to view all print jobs on a printer while the end-user might
496 only be able to see his own jobs.
500 One of the required operator functions is having the ability to
501 discover or to be alerted to changes in the status of a printer
502 particularly those changes that cause a printer to stop printing and
506 Wright Experimental [Page 9]
508 RFC 2567 Internet Printing Design Goals April 1999
511 to be able to correct those problems. As such, an Internet printing
512 protocol shall be able to alert a designated operator or operators to
513 these conditions such as 'out of paper', 'out of ink', etc.
514 Additionally. the operator shall be able to, asynchronous to other
515 printer activity, inquire as to a printer's or a job's status.
517 3.2.2. Changing Print and Job Status.
519 Another of the required operator functions is the ability to affect
520 changes to printer and job status remotely. For example, the
521 operator will need to be able to re-prioritize or cancel any print
522 jobs on a printer to which the operator has authority.
524 3.3. ADMINISTRATOR (NOT REQUIRED FOR V1.0)
526 An administrator of a printer accepting jobs through the Internet is
527 one of the roles in which humans act. The administrator has the
528 responsibility of creating the printer instances and controlling the
529 authorization of other end-users and operators. Administrator wants
530 and needs will not be addressed by V1.0 of the protocol.
532 The wants and needs of the administrator include all those of the
533 end-user and, in some environments, some or all of those of the
534 operator. Minimally, the administrator must also have the tools,
535 programs, utilities and supporting protocols available to be able to:
537 - create an instance of a printer
538 - create, edit and maintain the list of authorized end-users
539 - create, edit and maintain the list of authorized operators
540 - create, edit and maintain the list of authorized
542 - create, customize, change or otherwise alter the manner in
543 which the status capabilities and other information about printers
544 and jobs are presented
545 - create, customize, or change other printer or job features
546 - administrate billing or other charge-back mechanisms
547 - create sets of defaults
548 - create sets of capabilities
550 The administrator must have the capability to perform all the above
551 tasks locally or remotely to the printer.
553 4. OBJECTIVES OF THE PROTOCOL
555 The protocol to be defined by an Internet printing working group will
556 address the wants and needs of the end-user (V1.0). It will not, at
557 least initially, address the operator or administrator wants and
562 Wright Experimental [Page 10]
564 RFC 2567 Internet Printing Design Goals April 1999
567 The protocol defined shall be independent of the operating system of
568 both the client and the server. Generally, any platform capable of
569 supporting a WEB Browser should be capable of being a client.
570 Generally, any platform providing a WEB/HTTP server and printing
571 services should be capable of being a server. Usage of the WEB
572 Browser and Server is not required for IPP; the operating system,
573 operating system extensions or other applications may provide IPP
574 functionality directly.
576 In many environments such as Windows 95, Windows NT and OS/2, the
577 print data is created and transmitted to the printer on the fly
578 rather than being created, spooled and then transmitted to the
579 printer (a typical UNIX method.) The Internet Printing Protocol must
580 properly handle either methodology and make this transparent to the
583 4.1. SECURITY CONSIDERATIONS
585 It is required that the Internet Printing Protocol be able to operate
586 within a secure environment. Wherever reasonable, IPP ought to make
587 use of existing security protocols and services. IPP will not invent
588 new security features when the design goals described in this
589 document can be met by existing protocols and services. Examples of
590 such services include Secure Socket Layer Version 3 (SSL3) [SSL] and
591 HTTP Digest Access Authentication [RFC2069]. Note: SSL3 is not on
592 the IETF standards track.
594 Since we cannot anticipate the security levels or the specific
595 threats that any given IPP print administrator may be concerned with,
596 IPP must be capable of operating with different security mechanisms
597 and policies as required by the individual installation. The initial
598 security needs of IPP are derived from two primary considerations.
599 First, the printing environments described in this document take into
600 account that the client, the Printer, and the document to be printed
601 may each exist in different security domains. When objects are in
602 different security domains the design goals for authentication and
603 message protection may be much stronger than when they are all in the
606 Secondly, the sensitivity and value of the content being printed will
607 vary from one instance of a print job to another. For example, a
608 publicly available document does not need the same level of
609 protection as a payroll document does. Message protection design
610 goals include data origin authentication, privacy, integrity, and
618 Wright Experimental [Page 11]
620 RFC 2567 Internet Printing Design Goals April 1999
623 In many environments (e.g. Windows, OS/2) a printer driver may be
624 needed to create the proper datastream for printer. This document
625 discusses downloading such a new driver from a variety of sources.
626 Downloading and installing any software, including drivers) on a
627 computer exposes that computer to a number of security risks
628 including but not limited to:
631 - malicious software (e.g. Trojan horses)
632 - inappropriate software (i.e. software doing something
633 deemed unreasonable by the user.)
635 As such, proper security considerations and actions need to be taken
636 by the user and/or a system administrator to prevent the compromising
637 of the computer. Administrators should configure downloading
638 mechanism for printer drivers in such a way as to be able to verify
639 the source of driver software and encrypt or otherwise protect that
640 software during download.
642 Examples including security considerations can be found in sections 5
643 (IPP SCENARIOS) and 10 (APPENDIX - DETAILED SCENARIOS) later in this
646 4.2. INTERACTION WITH LPD (RFC1179)
648 Many versions of UNIX and in fact other operating systems provide a
649 means of printing as described in [RFC1179] (Line Printer Daemon
650 Protocol.) This document describes the file formats for the control
651 and data files as well as the messages used by the protocol. Because
652 of the simplistic approach taken by this protocol, many manufacturers
653 have include proprietary enhancements and extensions to 'lpd.'
654 Because of this divergence and due to other design goals described in
655 this document, there is no requirement for backward compatibility or
656 interoperability with 'lpd'. However, a mapping of LPD functionality
657 and IPP functionality shall be provided so as to enable a gateway
662 The Internet Printing Protocol shall be extensible by several means
663 that facilitate interoperability and prevent implementation
666 - by providing a process whereby implementers can submit proposals
667 for registration of new attributes and new enumerated values for
674 Wright Experimental [Page 12]
676 RFC 2567 Internet Printing Design Goals April 1999
679 * that require review and approval. The Internet Assigned
680 Number Authority (IANA) will be the repository for such
681 accepted registration proposals after review.
683 * that do not require review and approval. IANA will be the
684 repository for such registrations.
686 - by providing syntax in the protocol so that implementers may add
687 private (i.e. unregistered) attributes and enumerated attribute
690 - by providing versioning and negotiation so as to enable future
691 implementations of IPP to interoperate with implementations of
696 As stated in section 3 Design Goals, Internet printing shall, by
697 definition, support printing from one enterprise to another. As
698 such, the Internet printing protocol must be capable of passing
699 through firewalls and/or proxy servers (where enabled by the firewall
700 administrator) preferably without modification to the existing
703 4.5. INTERNATIONALIZATION
705 Users of Internet printing will come from all over the world. As
706 such, where appropriate, internationalization and localization will
707 be enabled for the protocol.
711 Each of the scenarios in this section describes a specific IPP
712 operation, such as submitting a print job. Section 10 contains
713 several detailed flows for each scenario to provide additional
714 detail. The examples should not be considered exhaustive, but
715 illustrative of the functions and features required in the protocol.
716 Flows are intended to be protocol neutral. It is not assumed that all
717 of the functions and features described in these scenarios will
718 necessarily be supported directly by IPP or in version 1.0 of IPP.
720 See the IPP Model and Semantics document for details on
721 configurations of clients, servers and firewalls.
730 Wright Experimental [Page 13]
732 RFC 2567 Internet Printing Design Goals April 1999
735 5.1. PRINTER DISCOVERY
737 Client Directory Service
740 +----------------------------------------------------------- >
741 give me information on printers with these characteristics
744 < -----------------------------------------------------------+
745 Information on Printers matching these characteristics
747 The objective of printer discovery is to locate printers that meet
748 the client's wants and needs. The Directory Service should provide
749 enough information for the client to make an initial choice. The
750 client may have to connect to each individual Printer offered to get
751 more detail. Not all information available from the Directory
752 Service is obtained using IPP; some information may be
753 administratively provided.
755 The actual protocol used between client and Directory or Name Service
756 is considered outside the scope of IPP. Printer Discover is included
757 in the scenarios to provide design goals for the directory schema for
758 IPP Printers and to further define Printer attributes.
760 Characteristics that might be considered when locating a Printer
763 - capabilities of the Printer, e.g. PDLs supported
764 - physical location, e.g. in building 010
765 - driver required and location
766 - cost per page to print (outside the scope of IPP)
767 - whether or not printer is access controlled
768 - whether or not usage requires client authentication
769 - whether or not Printer can be authenticated
770 - whether or not payment is required for printing (outside the scope
772 - maximum job size (spool size) (outside the scope of IPP)
773 - whether or not Printer support compression (outside the scope of
775 - whether or not Printer supports encryption
776 - administrative limits on this Printer
777 - maximum number of copies per job
778 - maximum number of pages per job
786 Wright Experimental [Page 14]
788 RFC 2567 Internet Printing Design Goals April 1999
791 Responses could additionally include:
793 - how to get more information
798 5.2. DRIVER INSTALLATION
802 +----------------------------------------------------------- >
803 Where can I find a driver & software to install it?
806 < -----------------------------------------------------------+
807 URIs for drivers and install software
809 Driver here refers to the code installed in some client operating
810 system to generate the print data stream for the intended printer.
811 The actual details for installing a printer driver are operating
812 system dependent and are also outside the scope of IPP. However, an
813 IPP printer or a directory service advertising an IPP Printer should
814 be capable of telling a client what drivers are available and/or
815 required, where they can be found, and provide pointers to
816 installation instructions, installation code or initialization
817 strings required to install the driver. See section 4.1 (SECURITY
818 CONSIDERATIONS) for security implications of driver download and
821 5.3. SUBMITTING A PRINT JOB
825 +----------------------------------------------------------- >
831 < -----------------------------------------------------------+
834 The protocol must support these sources of client data:
836 - Print data is a file submitted with the job
837 - Print data is generated on the fly by an application
838 - Print data is a file referenced by a URI
842 Wright Experimental [Page 15]
844 RFC 2567 Internet Printing Design Goals April 1999
847 The protocol must handle overrun conditions in the printer and must
848 support overlapped printing and downloading of the file in devices
849 that are unable to spool files before printing them.
851 Every print request will have a response. Responses will indicate
852 success or failure of the request and provide information on failures
853 when they occur. Responses would include things like:
855 - Got the print job and queued it
856 - Got the print job and am printing it
857 - Got the print job, started to print it, but printing failed
858 - why it failed (e.g. unrecoverable PostScript error)
859 - state of the printer
861 - Got the print job but couldn't print it
862 - why it can't be printed
863 - state of the printer
864 - Got the print job but don't know what to do with it
865 - Didn't get a complete print job (e.g. communication failure)
867 5.4. GETTING STATUS/CAPABILITIES
871 +----------------------------------------------------------- >
872 Get status and/or capabilities of Printer
875 < -----------------------------------------------------------+
878 Clients will need to get information about
880 - Static capabilities of the device
881 - Dynamic state of the Printer (e.g. out of paper)
882 - State of a specific job owned by this client
883 - State of all jobs owned by this client
898 Wright Experimental [Page 16]
900 RFC 2567 Internet Printing Design Goals April 1999
903 - Job submission attributes supported/required
904 - scheduling attributes (e.g. priority)
905 - production attributes (e.g. number of copies)
907 5.5. ASYNCHRONOUS NOTIFICATION
911 +----------------------------------------------------------- >
912 Use the following method to notify me of Printer events
917 < -----------------------------------------------------------+
918 Asynchronous notification of Printer event
920 Clients must be able to request asynchronous notification for Printer
924 - a fatal error that requires the job to be resubmitted
925 - a condition that severely impacts a queued job for this client
926 e.g. printer is out of paper
928 Note: end-user notification is a V1.0 design goal while operator
929 notification is for V2.0.
935 +----------------------------------------------------------- >
936 Cancel the named job as indicated
939 < -----------------------------------------------------------+
940 Response (did it or not)
942 Similarly clients must be able to make changes to jobs which have
943 been submitted and are queued for printing. Changing of job
944 attributes should also be supported. Job modifications, holding and
945 releasing of jobs are not included in the design goals for IPP v1.0.
954 Wright Experimental [Page 17]
956 RFC 2567 Internet Printing Design Goals April 1999
959 6. SECURITY CONSIDERATIONS
961 The security considerations for IPP are described in Section 4.1
966 [ipp-iig] Hastings, T. and C. Manros, "Internet Printing
967 Protocol/1.0: Implementer's Guide", Work in Progress.
969 [RFC2569] Herriot, R., Hastings, T., Jacobs, N. and J. Martin,
970 "Mapping between LPD and IPP Protocols", RFC 2569, April
973 [RFC2566] deBry, R., Hastings, T., Herriot, R., Isaacson, S. and P.
974 Powell, "Internet Printing Protocol/1.0: Model and
975 Semantics", RFC 2568, April 1999.
977 [RFC2565] Herriot, R., Butler, S., Moore, P. and R. Tuner, "Internet
978 Printing Protocol/1.0: Encoding and Transport", RFC 2565,
981 [RFC2568] Zilles, S., "Rationale for the Structure and Model and
982 Protocol for the Internet Printing Protocol", RFC 2568,
985 [ISO10175] ISO/IEC 10175, Document Printing Application, June 1996.
987 [RFC1179] McLaughlin, L., "Line Printer Daemon Protocol" RFC 1179,
990 [SSL] Netscape, The SSL Protocol, Version 3, (Text version
991 3.02), November 1996.
1010 Wright Experimental [Page 18]
1012 RFC 2567 Internet Printing Design Goals April 1999
1017 This document draws heavily from preliminary work done by others
1018 especially in the Printer Working Group (PWG). The author gratefully
1019 acknowledges the specific contributions of:
1021 Scott Isaacson Roger deBry
1022 Novell Utah Valley State College
1023 sisaacson@novell.com debryro@uvsc.edu
1025 Carl-Uno Manros Robert Herriot
1027 manros@cp10.es.xerox.com Robert.Herrior@pahv.xerox.xom
1029 Tom Hastings Peter Zehler
1031 hastings@cp10.es.xerox.com Peter.Zehler@usa.xerox.com
1036 Lexmark International
1043 EMail: don@lexmark.com
1066 Wright Experimental [Page 19]
1068 RFC 2567 Internet Printing Design Goals April 1999
1071 10. APPENDIX - DETAILED SCENARIOS
1073 The following are more detailed scenarios illustrating how the
1074 Internet Printing Protocol is expected to be used as a part of a
1075 complete Internet Printing system. Some parts of the scenarios
1076 include concepts, functions and information that may be outside of
1077 the scope of version 1.0 of IPP (e.g. cost per page, payments means
1078 available, etc.) The information contained herein is meant to be
1079 generic. There may not be an exact wording or terminology match
1080 between these scenarios and the implementation documents.
1082 10.1. PRINTER DISCOVERY WITHIN AN ENTERPRISE
1084 A user wants to find a color Postscript printer in his/her enterprise
1085 which will print transparencies. The client, directory service, and
1086 printer are all behind the same corporate firewall. Because color
1087 foils are expensive, printers of this type are access controlled and
1088 require an account to be established so that printing can be billed
1089 back to the using department. Note the request to find a printer
1090 usable by Dept. J15. Drivers for all supported printers are
1091 available from the server they are associated with. A help desk is
1092 provided for end user support. The printer is unattended.
1094 Client Directory Service
1096 +---------------------------------------------------------- >
1097 Find a printer with these characteristics
1098 - prints color, prints transparencies
1100 - is in building 003
1101 - accessible by the client
1103 < ----------------------------------------------------------+
1105 - prints color, prints transparencies
1107 - in room H-6, building 003
1108 - driver ABC-Postscript-V1.3 required, here is URI
1109 - cost is $.45 per page for color transparencies
1110 - limit is 10 pages per job
1111 - authentication required to use printer
1112 - printer is unattended
1113 - help desk at x5001
1116 - prints color, prints transparencies
1118 - in room J-10, building 003
1122 Wright Experimental [Page 20]
1124 RFC 2567 Internet Printing Design Goals April 1999
1127 - driver XYZ-Postscript-V2.4 required, here is URI
1128 - cost is $1.25 page for color transparencies
1129 - limit is 5 pages per job
1130 - authentication is required to use printer
1131 - printer is unattended
1132 - help desk at x5001
1134 10.2. PRINTER DISCOVERY ACROSS ENTERPRISES
1136 A user in Company A wants to find a public printer in a business
1137 partner's enterprise (Company B) on which to print a purchase order.
1138 The client is behind one corporate firewall and the directory service
1139 and the printer are behind a different corporate firewall. Drivers
1140 for all supported printers are available from the server they are
1141 associated with. A web page is provided for end user support for
1144 Client Company B Directory Service
1146 +---------------------------------------------------------- >
1147 Find a printer with these characteristics
1148 - prints black and white
1149 - is in El Segundo, building A
1150 - is a public printer
1152 < ----------------------------------------------------------+
1154 - prints black and white
1156 - in El Segundo, room H-6, building A
1157 - driver ABC-Postscript-V1.3 required, here is URI
1159 - help available at http://xerox/elSegundo/publicPrinters
1162 - prints black and white
1164 - is in El Segundo, room J-10, building A
1165 - driver XYZ-PCL-V2.4 required, here is URI
1167 - help available at http://xerox/elSegundo/publicPrinters
1169 10.3. PRINTER DISCOVERY ON THE INTERNET -LOGICAL OPERATIONS
1171 A student wants to print a paper on a printer at his neighborhood
1172 Ink-o's print shop. The report was written using Microsoft Word. The
1173 student is interested in the cost of printing since his budget is
1174 limited. Note the use of logical operators to find this information.
1178 Wright Experimental [Page 21]
1180 RFC 2567 Internet Printing Design Goals April 1999
1183 Client Ink-o's Directory Service
1185 +---------------------------------------------------------- >
1186 Find a Printer with these characteristics
1187 - prints color or black and white
1188 - costs less than $.50 per page
1189 - tell me about resolution and marking technology
1191 < ----------------------------------------------------------+
1194 - 600 dpi laser printer
1196 - driver ABC-Postscript-V1.3 required, here is URI
1197 - cost is $.50 per page for color
1198 - payment required prior to submitting print job
1199 - here is URI for more information on Ink-o's
1202 - prints black and white
1203 - 300 dpi inkjet printer
1205 - driver XYZ-Postscript-V2.4 required, here is URI
1206 - cost is $0.35 page for black and white
1207 - payment required prior to submitting print job
1208 - here is URI for more information on Ink-o's
1210 10.4. PRINTER DISCOVERY ON THE INTERNET - AUTHENTICATION
1212 An executive in her hotel room is finishing an important presentation
1213 on her laptop computer. She connects to a local print shop through
1214 the web to get a copy of her charts printed for tomorrow's
1215 presentation. She must find a print shop that is convenient to her
1216 hotel and can print color transparencies. She wants to be sure that
1217 the printer can be authenticated and can accept encrypted data.
1219 Client SirZippy Directory Service
1221 +---------------------------------------------------------- >
1222 Find a Printer with these characteristics
1223 - prints color transparencies
1224 - is in Boulder, Colorado
1225 - Printer can be authenticated
1226 - Printer supports encryption
1234 Wright Experimental [Page 22]
1236 RFC 2567 Internet Printing Design Goals April 1999
1239 Tell me when you are open for business
1241 < ----------------------------------------------------------+
1243 - prints color transparencies
1245 - driver ABC-Postscript-V1.3 required, here is URI
1246 - payment required prior to submitting print job
1247 - Printer can be authenticated
1248 - Data can be encrypted
1249 - Located at 1670 Pearl Street, Boulder, CO
1250 - This Branch is open 24 hours a day
1254 - prints color transparencies
1256 - driver ABC-Postscript-V1.3 required, here is URI
1257 - payment required prior to submitting print job
1258 - Printer can be authenticated
1259 - Data can be encrypted
1260 - Located at 1220 Arapahoe, Boulder, CO
1261 - This Branch is open from 9:00 am to 6:30 pm
1263 10.5. DRIVER DOWNLOAD
1265 An end user in an enterprise wants to print a lengthy report on a
1266 newly installed high speed PostScript printer. Since she will likely
1267 use this printer often, she would like to download a driver and
1268 install it on her workstation. She is running Windows 95. Note:
1269 Driver download is not a V1.0 design goal.
1273 +---------------------------------------------------------- >
1274 Tell me where to find print drivers for you
1278 < ----------------------------------------------------------+
1279 Driver install file is at
1280 http://www.ibm.com/drivers/NP12a/Win95
1290 Wright Experimental [Page 23]
1292 RFC 2567 Internet Printing Design Goals April 1999
1295 10.6. SUBMITTING A PRINT JOB AS A FILE
1297 An end-user wants to submit a print job. The print file already
1298 exists on his workstation. The client and printer are behind the same
1299 corporate firewall. The printer is available to anyone behind the
1300 firewall and no authorization or authentication is required. The data
1301 is pushed to the printer. The printer is capable of spooling the
1302 output. No errors occur.
1306 +---------------------------------------------------------- >
1309 - notify me by email when done printing
1310 - print on iso-a4-white paper
1311 - print on both sides of the paper
1312 - return status of the printer in response
1313 - document is in Postscript format
1314 - here is the document to print
1316 < ----------------------------------------------------------+
1317 Print job accepted and spooled
1319 - current state of print job = spooled
1320 - submission time = 02/12/97, 15:35
1321 - printer state = printing
1323 10.7. SUBMITTING A PRINT JOB WITH TWO DOCUMENTS
1325 An end-user wants to submit a print job. The print file already
1326 exists on his workstation. The client and printer are behind the same
1327 corporate firewall. The printer is available to anyone behind the
1328 firewall and no authorization or authentication is required. The data
1329 is pushed to the printer. The job consists of two separate documents.
1330 The printer is capable of spooling the output. No errors occur.
1334 +---------------------------------------------------------- >
1337 - notify me by email when done printing
1338 - print on iso-a4-white paper
1339 - print on both sides of the paper
1340 - return status of the printer in response
1342 < ----------------------------------------------------------+
1346 Wright Experimental [Page 24]
1348 RFC 2567 Internet Printing Design Goals April 1999
1351 Print job accepted and spooled
1353 - submission time = 02/12/97, 15:35
1354 +---------------------------------------------------------- >
1355 - here is the document to print
1357 < ----------------------------------------------------------+
1360 +---------------------------------------------------------- >
1361 - here is the document to print, it is the last document.
1363 < ----------------------------------------------------------+
1366 10.8. SUBMITTING A PRINT JOB AS A FILE, PRINTING FAILS
1368 An end-user wants to submit a print job. The print file already
1369 exists on his workstation. The client and printer are behind the same
1370 corporate firewall. The printer is available to anyone behind the
1371 firewall and no authorization or authentication is required. The data
1372 is pushed to the printer. The printer is not capable of spooling the
1373 output so it begins printing while still receiving the file. An error
1374 occurs and the printer cannot complete printing (in this case the
1375 user requires A4 paper and that paper size is not available on the
1380 +---------------------------------------------------------- >
1383 - notify me by email when done printing
1384 - print on iso-a4-white paper
1385 - print on both sides of the paper
1386 - return status of the printer in response
1387 - document is in Postscript format
1388 - here is the document to print
1390 < ----------------------------------------------------------+
1394 - current state of print job = canceled (A4 not available)
1395 - submission time = 02/12/97, 15:35
1396 - printer state = ready
1402 Wright Experimental [Page 25]
1404 RFC 2567 Internet Printing Design Goals April 1999
1407 10.9. SUBMITTING A PRINT JOB WITH AUTHENTICATION, PRIVACY AND PAYMENT
1409 A traveling executive needs to print a set of transparencies for an
1410 important business meeting. The charts are in Lotus Freelance format
1411 on his notebook computer. He has located a SirZippy print shop near
1412 his hotel that will print color transparencies. Because the
1413 information on the charts is sensitive, he wants to be sure that his
1414 data is sent to the Printer in an encrypted format. He also wants to
1415 authenticate the Printer. The Printer also authenticates the user.
1416 Payment occurs across the Internet.
1420 +---------------------------------------------------------- >
1421 < ----------------------------------------------------------+
1423 Mutual authentication and exchange of secret keys
1425 +---------------------------------------------------------- >
1426 Here is a print job (encrypted)
1428 - notify me by email when done printing
1429 - print on iso-a4-white paper
1430 - print on both sides of the paper
1431 - return status of the printer in response
1432 - tell me where to pick up output
1433 - document is in Postscript format
1434 - here is the document to print
1436 < ----------------------------------------------------------+
1437 Print job accepted and spooled (encrypted)
1439 - current state of print job = spooled
1440 - submission time = 02/12/97, 15:35
1441 - printer state = printing
1442 - payment required to proceed with job
1443 - pick up at 230 East Main after 3:30 pm today
1445 +---------------------------------------------------------- >
1446 < ----------------------------------------------------------+
1458 Wright Experimental [Page 26]
1460 RFC 2567 Internet Printing Design Goals April 1999
1463 10.10. SUBMITTING A PRINT JOB WITH DECRYPTION ERROR
1465 A traveling executive needs to print a set of transparencies for an
1466 important business meeting. The charts are in Lotus Freelance format
1467 on his notebook computer. He has located a SirZippy print shop near
1468 his hotel that will print color transparencies. Because the
1469 information on the charts is sensitive, he wants to be sure that his
1470 data is sent to the printer in an encrypted format. He also wants to
1471 authenticate the printer. The printer also authenticates the user.
1472 Payment occurs across the Internet. An error occurs during
1477 +---------------------------------------------------------- >
1478 < ----------------------------------------------------------+
1479 Mutual authentication and exchange of secret keys
1482 +---------------------------------------------------------- >
1483 Here is a print job (encrypted)
1485 - notify me by email when done printing
1486 - print on iso-a4-white paper
1487 - print on both sides of the paper
1488 - return status of the printer in response
1489 - tell me where to pick up output
1490 - document is in Postscript format
1491 - here is the document to print
1493 < ----------------------------------------------------------+
1494 Print job accepted and spooled (encrypted)
1496 - current state of print job = spooled
1497 - submission time = 02/12/97, 15:35
1498 - printer state = printing
1499 - payment required to proceed with job
1500 - pick up at 230 East Main after 3:30 pm today
1502 +---------------------------------------------------------- >
1503 < ----------------------------------------------------------+
1508 < ----------------------------------------------------------+
1509 Asynchronous response (email in this case)
1510 - decryption failed on job #12345
1514 Wright Experimental [Page 27]
1516 RFC 2567 Internet Printing Design Goals April 1999
1520 - current state of job = aborted
1522 10.11. SUBMITTING A PRINT JOB WITH AUTHENTICATION
1524 An end-user wants to submit a print job. The print file already
1525 exists on his workstation. The client and printer are behind the same
1526 corporate firewall. The printer is available to anyone behind the
1527 firewall but authentication and authorization is required.
1528 Authorization takes place using the authenticated end-user's name.
1529 The data is pushed to the printer. The printer is capable of spooling
1534 +---------------------------------------------------------- >
1535 < ----------------------------------------------------------+
1538 Note: An authentication failure would end the transaction at
1541 +---------------------------------------------------------- >
1544 - notify me by email when done printing
1545 - print on iso-a4-white paper
1546 - print on both sides of the paper
1547 - return status of the printer in response
1548 - tell me where to pick up output
1549 - document is in Postscript format
1550 - here is the document to print
1552 < ----------------------------------------------------------+
1553 Print job accepted and spooled
1555 - current state of print job = spooled
1556 - submission time = 02/12/97, 15:35
1557 - printer state = printing
1570 Wright Experimental [Page 28]
1572 RFC 2567 Internet Printing Design Goals April 1999
1575 10.12. SUBMITTING A PRINT JOB GENERATED DYNAMICALLY
1577 An end-user wants to submit a print job. The print data is generated
1578 dynamically and is being transmitted by a printer driver on the
1579 client workstation as available. The client and printer are behind
1580 the same corporate firewall. The printer is available to anyone
1581 behind the firewall and no authentication and authorization is
1582 required. The data is pushed to the printer. The printer is capable
1583 of spooling the output. No error occurs.
1587 +---------------------------------------------------------- >
1590 - notify me by email when done printing
1591 - print on iso-a4-white paper
1592 - print on both sides of the paper
1593 - return status of the printer in response
1594 - document is in Postscript format
1595 - here is the print job
1598 < ----------------------------------------------------------+
1599 Print data accepted and spooling started
1601 - current job state = spooled
1602 - submission time = 02/12/97, 15:35
1603 - printer state = printing
1605 10.13. SUBMITTING A PRINT JOB WITH A PRINTER JAM - CANCELED
1607 An end-user wants to submit a print job. The print data is generated
1608 dynamically and is being transmitted by a printer driver on the
1609 client workstation as available. The client and printer are behind
1610 the same corporate firewall. The printer is available to anyone
1611 behind the firewall and no authentication and authorization is
1612 required. The data is pushed to the printer. The printer is not
1613 capable of spooling the output. The printer jams notifies the user
1614 and the user chooses to cancel the job.
1617 +---------------------------------------------------------- >
1620 - notify me by email when done printing
1621 - print on iso-a4-white paper
1622 - print on both sides of the paper
1626 Wright Experimental [Page 29]
1628 RFC 2567 Internet Printing Design Goals April 1999
1631 - return status of the printer in response
1632 - document is in Postscript format
1633 - here is the document to print
1635 < ----------------------------------------------------------+
1636 Print data accepted and printing started
1639 +---------------------------------------------------------- >
1640 - What is the status of print job #12345?
1642 < --------------------------------------------------------- +
1643 - Job #12345 accepted but printer jammed, cannot continue
1645 +---------------------------------------------------------- >
1648 * Printer flushes remaining data
1649 < ----------------------------------------------------------+
1650 Print job terminated
1651 - current job state = canceled
1652 - submission time = 02/12/97, 15:35
1653 - printer state = jammed
1655 10.14. SUBMITTING A PRINT JOB WITH A PRINTER JAM - RECOVERED
1657 An end-user wants to submit a print job. The print data is generated
1658 dynamically and is being transmitted by a printer driver on the
1659 client workstation as available. The client and printer are behind
1660 the same corporate firewall. The printer is available to anyone
1661 behind the firewall and no authentication and authorization is
1662 required. The data is pushed to the printer. The printer is not
1663 capable of spooling the output. The printer jams, notifies the user
1664 and the user clears the jam and elects to continue.
1668 +---------------------------------------------------------- >
1671 - notify me by email when done printing
1672 - print on iso-a4-white paper
1673 - print on both sides of the paper
1674 - return status of the printer in response
1675 - document is in Postscript format
1676 - here is the document to print
1678 < ----------------------------------------------------------+
1682 Wright Experimental [Page 30]
1684 RFC 2567 Internet Printing Design Goals April 1999
1687 Print data accepted and printing started
1690 < --------------------------------------------------------- +
1691 - Notification: printer jammed, cannot continue
1693 * Jam is clear by human intervention, printing continues
1695 +---------------------------------------------------------- >
1696 Here is the last part of the document to print
1698 < ----------------------------------------------------------+
1700 - current job state = printing
1701 - submission time = 02/12/97, 15:35
1702 - printer state = printing
1704 10.15. SUBMITTING A PRINT JOB WITH SERVER PULL
1706 An end-user wants to submit a print job. The print data is in a file
1707 and is publicly available. It is pulled by the printer. The client
1708 and printer are behind the same corporate firewall. The printer is
1709 available to anyone behind the firewall and no authentication and
1710 authorization is required. The printer is capable of spooling the
1711 output. Printing may start before the entire job has been pulled.
1715 +---------------------------------------------------------- >
1719 - notify me by email when done printing
1720 - print on iso-a4-white paper
1721 - print on both sides of the paper
1722 - return status of the printer in response
1723 - here is a reference to the data to be printed
1725 < ----------------------------------------------------------+
1726 Print data accepted and printing started
1728 - current state of job = spooled
1729 - submission time = 02/12/97, 13:15
1730 - printer state = printing
1734 < ----------------------------------------------------------+
1738 Wright Experimental [Page 31]
1740 RFC 2567 Internet Printing Design Goals April 1999
1743 Get the file to be printed
1745 +---------------------------------------------------------- >
1748 Note: Failure to find the file, would end the transaction
1749 with an error at this point and an asynchronous
1750 notification would be send to the Client.
1752 < ----------------------------------------------------------+
1755 10.16. SUBMITTING A PRINT JOB WITH REFERENCED RESOURCES
1757 An end-user wants to submit a print job. Part of the print data is
1758 on a file on the user's workstation. It is pushed by the client, but
1759 the print job requires some resource not included in the print file.
1760 The client and printer are behind the same corporate firewall. The
1761 printer is available to anyone behind the firewall and no
1762 authentication and authorization is required. The printer is capable
1763 of spooling the output. No errors occur.
1767 +---------------------------------------------------------- >
1770 - notify me by email when done printing
1771 - print on iso-a4-white paper
1772 - print on both sides of the paper
1773 - return status of the printer in response
1775 < ----------------------------------------------------------+
1776 Print job accepted and spooled
1778 - submission time = 02/12/97, 15:35
1780 +---------------------------------------------------------- >
1781 - here is the document to print
1783 < ----------------------------------------------------------+
1786 +---------------------------------------------------------- >
1787 - here is the URI to print, it is the last document.
1789 < ----------------------------------------------------------+
1794 Wright Experimental [Page 32]
1796 RFC 2567 Internet Printing Design Goals April 1999
1799 < ----------------------------------------------------------+
1800 Get the external resource
1802 +---------------------------------------------------------- >
1805 10.17. GETTING CAPABILITIES
1807 10.17.1. Submission Attributes
1809 An end-user wants to get the production and scheduling attributes
1810 that are supported or required when submitting jobs to this printer.
1811 The client will use these attributes when forming the subsequent
1815 +---------------------------------------------------------- >
1816 I'm going to submit a Postscript job
1817 give me your job submission attributes
1819 < ----------------------------------------------------------+
1820 Postscript production attributes for this Printer are:
1821 - medium-select = us-letter-white, us-legal-white
1822 - default is us-letter-white
1823 - copies = 1,2,3,4,5
1825 - print-quality = draft, normal, high
1827 - sides = 1-sided, 2-sided-long-edge
1828 - default is 2-sided-long-edge
1829 - Job scheduling attributes for this Printer are:
1830 - job-priority = 1,2,3
1833 10.17.2. Printer Capabilities
1835 An end-user wants to determine the resolution, marking technology,
1836 and PDLs supported by the printer.
1839 +---------------------------------------------------------- >
1841 - resolution of the printer
1842 - the marking technology of the printer
1844 < ----------------------------------------------------------+
1845 Printer resolution = 600 dpi
1846 Marking Technology = laser
1850 Wright Experimental [Page 33]
1852 RFC 2567 Internet Printing Design Goals April 1999
1855 PDLs supported = Postscript level 2, PCL/6
1857 10.18. GETTING STATUS
1859 10.18.1. Printer State/Status
1861 An end-user wants to determine the state or status of the printer.
1865 +---------------------------------------------------------- >
1866 What is the state of the printer?
1868 < ----------------------------------------------------------+
1869 Printer state = out-of-paper
1873 An end user wants to get the status of a job he has submitted.
1877 +---------------------------------------------------------- >
1878 Please tell me the status of job #12345
1880 < ----------------------------------------------------------+
1881 Job #12345 is queued
1882 it is number 3 in the queue
1883 printer state = printing
1885 10.18.3. Status of All My Jobs
1887 An end user wants to get a list of all of the jobs he has submitted
1892 +---------------------------------------------------------- >
1893 Please tell me the status of my jobs
1895 < ----------------------------------------------------------+
1896 Job #00012 is complete
1897 Printed at 12:35 on 01/23/97
1899 Job #09876 is printing
1901 Job #12345 is queued
1902 it is number 3 in the queue
1906 Wright Experimental [Page 34]
1908 RFC 2567 Internet Printing Design Goals April 1999
1911 Job #34567 is queued
1912 it is number 7 in the queue
1914 10.19. ASYNCHRONOUS NOTIFICATION
1916 10.19.1. Job Completion
1918 An end-user wants to get notification of events that affect his print
1919 jobs. Print job completes without error.
1923 < ----------------------------------------------------------+
1924 Print job #123 completed
1926 10.19.2. Job Complete with Data
1928 An end-user wants to get notification of events that affect his print
1929 jobs. Print job completes, users asked for all end of job
1934 < ----------------------------------------------------------+
1935 Print job #123 completed
1936 - total pages printed = 15
1937 - number of copies printed = 3
1938 - total cost to print = $7.45
1939 - pick up copies in room H-6, building 005
1941 10.19.3. Print Job Fails
1943 An end-user wants to get notification of events that affect his print
1944 jobs. Print job fails. Printer is unattended.
1948 < ----------------------------------------------------------+
1949 Print job #123 failed
1950 - total pages printed = 15
1951 - number of pages submitted = 25
1952 - printer-state = jammed
1962 Wright Experimental [Page 35]
1964 RFC 2567 Internet Printing Design Goals April 1999
1969 The end-user submits a print job and later decides to cancel it.
1973 +---------------------------------------------------------- >
1974 < ----------------------------------------------------------+
1978 +---------------------------------------------------------- >
1981 < ----------------------------------------------------------+
1985 10.21. END TO END SCENARIO - WITHIN AN ENTERPRISE
1987 An office worker prints on shared departmental printers. All printers
1988 in the office are public, that is, no authentication or authorization
1989 is required. Printers are protected from external access by a
1990 firewall. No billing or accounting is required. Most printing is done
1991 from desktop applications. A help desk is provided for printing
1992 problems. Standard operating systems and applications are used.
1993 Drivers are available, but are installed manually by support
1994 personnel. This scenario assumes that drivers have been installed and
1995 that drivers are not IPP aware, that is, they cannot communicate
1996 across an IPP connection to obtain status and capabilities. IPP
1997 printers appear in application pull-down menus. Printer
1998 configuration data is hard wired into the driver.
2000 End-user selects print from the application pull down menu. An IPP
2001 printer is selected from the list of Printers offered
2003 The driver puts up a dialogue with hard-wired set of options for this
2004 printer. The end-user makes choices and submits job.
2007 +---------------------------------------------------------- >
2009 - job-name = memo-to-boss
2010 - notify me by email when job is complete
2011 - print on us-letter-white paper
2013 - print at normal quality
2018 Wright Experimental [Page 36]
2020 RFC 2567 Internet Printing Design Goals April 1999
2023 - give me the state of the printer in response
2025 The driver generates the print data and passes it to the IPP driver a
2026 piece at a time as it is generated.
2028 +---------------------------------------------------------- >
2029 Here is the print data
2032 < ----------------------------------------------------------+
2033 Print data received, file is spooled
2034 - printer state = printing
2035 - time submitted = 2/12/97, 15:35
2036 - current job state = spooled
2038 Client adds this job to list of current jobs. List of jobs and state
2039 of each is available on a pull-down menu on the client.
2041 End-user selects job #1234 from list and clicks on it to see its
2044 +---------------------------------------------------------- >
2045 Give me the state of job #1234
2046 and the state of the Printer
2048 < ----------------------------------------------------------+
2049 Job #1234 state = spooled
2050 - it is number 3 in the queue
2051 - printer state = printing
2053 The job completes without error
2055 < ----------------------------------------------------------+
2057 12 of 12 pages printed
2059 10.22. END TO END SCENARIO - ACROSS ENTERPRISES
2061 An office worker in Company A needs to print an office document on a
2062 "public" printer at Company B, a business partner. Both companies
2063 have corporate firewalls so the print request must flow out of A's
2064 firewall and into B's firewall. The office worker can look at public
2065 printers in Company B's directory service. The document is generated
2066 by a desktop application. Since the printer is "public" no
2067 authentication or authorization is required. A driver is downloaded.
2068 The driver is IPP aware, that is, it can communicate dynamically
2069 through the IPP protocol layer to obtain information about the
2074 Wright Experimental [Page 37]
2076 RFC 2567 Internet Printing Design Goals April 1999
2079 Client Company B's Directory Service
2081 End user connects to B's Directory service
2083 +---------------------------------------------------------- >
2084 Find a Printer with these characteristics
2085 - public (no authorization or authentication required)
2086 - is in Lexington, building 004
2087 - prints black and white
2089 < ----------------------------------------------------------+
2091 - http://www.lexmark.com/pubprinter/a
2094 - http://www.lexmark.com/pubprinter/b
2096 End user selects Public-A
2100 +---------------------------------------------------------- >
2101 Where can I find a driver for you?
2103 < ----------------------------------------------------------+
2104 Drivers at http://www.lexmark.com/pubprinters/a/os245
2106 End user gets driver and installs it on his PC.
2108 End-user selects print from the application pull down menu. "Public-
2109 A" is selected from the list of Printers offered
2111 +---------------------------------------------------------- >
2112 I'm going to submit a print job
2113 give me your job submission attributes
2115 < ----------------------------------------------------------+
2117 Production attributes for this Printer are:
2118 - medium-select = us-letter-white, us-legal-white
2119 - default is us-letter-white
2120 - copies = 1,2,3,4,5
2122 - print-quality = draft, normal, high
2124 - sides = 1-sided, 2-sided-long-edge
2125 - default is 2-sided-long-edge
2130 Wright Experimental [Page 38]
2132 RFC 2567 Internet Printing Design Goals April 1999
2135 Job scheduling attributes for this Printer are:
2136 - job-priority = 1,2,3
2139 Driver puts up dialogue with available options and fills in the
2142 End-user makes choices and submits job
2144 +---------------------------------------------------------- >
2146 - job-name = memo-to-Don-Wright
2147 - notify me by email when job is complete
2148 - print on us-letter-white paper
2150 - print at normal quality
2152 - give me the state of the printer in response
2155 The driver generates the print data and passes it to the IPP driver a
2158 +---------------------------------------------------------- >
2159 Here is the print data
2161 < ----------------------------------------------------------+
2162 Print data received, and spooling started
2163 print job id = #1234
2165 Print data received, file is spooled
2167 - printer state = printing
2168 - time submitted = 2/12/97, 15:35
2169 - current job state = spooled
2171 Client adds this job to list of current jobs. List of jobs and state
2172 of each is available on a pull-down menu on the client.
2174 End-user selects job #1234 from list and clicks on it to see its
2177 +---------------------------------------------------------- >
2178 Give me the state of job #1234
2179 and the state of the Printer
2181 < ----------------------------------------------------------+
2182 Job #1234 state = spooled
2186 Wright Experimental [Page 39]
2188 RFC 2567 Internet Printing Design Goals April 1999
2191 - it is number 3 in the queue
2192 - printer state = printing
2194 * The job completes without error
2195 < ----------------------------------------------------------+
2197 12 of 12 pages printed
2199 10.23. END TO END SCENARIO - ON THE INTERNET
2201 An executive in her hotel room is finishing an important presentation
2202 on her laptop computer. She connects to a local print shop through
2203 the web to get a copy of her charts printed for tomorrow's
2204 presentation. She must find a print shop that is convenient and can
2205 print color transparencies. She must download and temporarily install
2206 a driver in order to generate the PDL required by the print shop.
2207 Mutual authentication is required by the print shop and payment must
2208 be made in advance. The job is encrypted on the wire to prevent
2211 End-user completes presentation. She goes to the web and connects to
2212 the SirZippy home page.
2214 Client SirZippy Directory Service
2215 +---------------------------------------------------------- >
2217 Find me a printer with these characteristics
2218 - Near Market Street in San Jose
2219 - Prints color transparencies
2220 - drivers can be downloaded
2221 - supports privacy (encryption)
2224 Available Printers matching these characteristics are looked up in the
2227 < ----------------------------------------------------------+
2230 - located at 123 First Street in San Jose
2231 - URI is http://www.SirZippy.com/FirstStreet/Color-A
2232 - prints color transparencies
2234 - driver ABC-Postscript-V1.3 available at this URI
2235 - cost = $.75 per page
2236 - authentication required to use printer
2237 - payment required prior to printing
2242 Wright Experimental [Page 40]
2244 RFC 2567 Internet Printing Design Goals April 1999
2248 - located at 67 San Carlos Street, San Jose
2249 - URI is http://www.SirZippy.com/SanCarlos/Color-B
2250 - prints color transparencies
2252 - driver XYZ-PostScript-V4.3 available at this URI
2253 - cost = $1.25 per page
2254 - authentication required to use printer
2255 - payment required prior to printing
2256 - more information at this URI
2258 The user decides to use the first printer because it is closer. She
2259 connects to the URI given to get a driver.
2263 +---------------------------------------------------------- >
2264 I need a driver for "Color-A"
2267 < ----------------------------------------------------------+
2268 Driver installer is at http://www.xerox.com/prtdrvrs
2275 Client IPP Printer "Color-A"
2277 +---------------------------------------------------------- >
2278 < ----------------------------------------------------------+
2279 Mutual authentication and exchange of secret keys
2281 +---------------------------------------------------------- >
2282 I'm going to submit a print job
2283 give me your job submission attributes
2285 < ----------------------------------------------------------+
2286 Production attributes for this Printer are:
2287 - medium-select = us-letter-white, us-legal-white
2288 - default is us-letter-white
2289 - copies = 1,2,3,4,5
2291 - print-quality = draft, normal, high
2293 - sides = 1-sided, 2-sided-long-edge
2294 - default is 2-sided-long-edge
2298 Wright Experimental [Page 41]
2300 RFC 2567 Internet Printing Design Goals April 1999
2303 Job scheduling attributes for this Printer are:
2304 - job-priority = 1,2,3
2307 Driver puts up dialogue with available options and fills in the
2310 End-user makes choices and submits job
2312 +---------------------------------------------------------- >
2315 - job-name = presentation
2316 - notify me by email when job is complete
2317 - print on us-letter-transparency
2319 - print at high quality
2320 - print by 9:00 am tomorrow morning
2321 - give me the state of the printer in response
2323 The driver generates the print data and passes it to the IPP driver a
2326 +---------------------------------------------------------- >
2327 Here is the print data
2329 < ---------------------------------------------------------+
2330 Print data received, and spooling started
2331 print job id = #1234
2333 Print data received, file is spooled
2334 - printer state = printing
2335 - time submitted = 2/12/97, 15:35
2336 - current job state = held, waiting for payment
2338 +---------------------------------------------------------- >
2339 < ----------------------------------------------------------+
2342 < ----------------------------------------------------------+
2343 Job is scheduled to print, pick up after 9:00am tomorrow
2344 Thank you for using SirZippy
2354 Wright Experimental [Page 42]
2356 RFC 2567 Internet Printing Design Goals April 1999
2359 11. Full Copyright Statement
2361 Copyright (C) The Internet Society (1999). All Rights Reserved.
2363 This document and translations of it may be copied and furnished to
2364 others, and derivative works that comment on or otherwise explain it
2365 or assist in its implementation may be prepared, copied, published
2366 and distributed, in whole or in part, without restriction of any
2367 kind, provided that the above copyright notice and this paragraph are
2368 included on all such copies and derivative works. However, this
2369 document itself may not be modified in any way, such as by removing
2370 the copyright notice or references to the Internet Society or other
2371 Internet organizations, except as needed for the purpose of
2372 developing Internet standards in which case the procedures for
2373 copyrights defined in the Internet Standards process must be
2374 followed, or as required to translate it into languages other than
2377 The limited permissions granted above are perpetual and will not be
2378 revoked by the Internet Society or its successors or assigns.
2380 This document and the information contained herein is provided on an
2381 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
2382 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
2383 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
2384 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
2385 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
2410 Wright Experimental [Page 43]