]> git.ipfire.org Git - thirdparty/cups.git/blob - standards/rfc2567.txt
Load cups into easysw/current.
[thirdparty/cups.git] / standards / rfc2567.txt
1
2
3
4
5
6
7 Network Working Group F.D. Wright
8 Request for Comments: 2567 Lexmark International
9 Category: Experimental April 1999
10
11
12 Design Goals for an Internet Printing Protocol
13
14 Status of this Memo
15
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.
20
21 Copyright Notice
22
23 Copyright (C) The Internet Society (1999). All Rights Reserved.
24
25 IESG Note
26
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.
39
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
43 IPP.
44
45 Abstract
46
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
55
56
57
58 Wright Experimental [Page 1]
59 \f
60 RFC 2567 Internet Printing Design Goals April 1999
61
62
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.
66
67 The full set of IPP documents includes:
68
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]
76
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.
82
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.
92
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".
97
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.
105
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.
109
110
111
112
113
114 Wright Experimental [Page 2]
115 \f
116 RFC 2567 Internet Printing Design Goals April 1999
117
118
119 TABLE OF CONTENTS
120
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
167
168
169
170 Wright Experimental [Page 3]
171 \f
172 RFC 2567 Internet Printing Design Goals April 1999
173
174
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
194
195 1. INTRODUCTION
196
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
201 functionality.
202
203 2. TERMINOLOGY
204
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.
215
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
223
224
225
226 Wright Experimental [Page 4]
227 \f
228 RFC 2567 Internet Printing Design Goals April 1999
229
230
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
233 implementations.
234
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.
242
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.
254
255 The IPP protocol will support the following physical configurations:
256
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.
269
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
279
280
281
282 Wright Experimental [Page 5]
283 \f
284 RFC 2567 Internet Printing Design Goals April 1999
285
286
287 the protocol (e.g. V2.0) may include support for these initially
288 excluded wants and needs.
289
290 3. DESIGN GOALS
291
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.
301
302 3.1. END-USER
303
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.
307
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.
313
314 3.1.1. Finding or locating a printer.
315
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:
321
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.)
325
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:
328
329 - inside a functional sub-domain
330 - include only a particular domain (lexmark.com)
331 - exclude specified domains
332
333
334
335
336
337
338 Wright Experimental [Page 6]
339 \f
340 RFC 2567 Internet Printing Design Goals April 1999
341
342
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
347 attributes.
348
349 3.1.2. Create an instance of the printer.
350
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.
370
371 3.1.3. Viewing the status and capabilities of a printer.
372
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.:
378
379 - supported media, commonly paper, by size and type
380 - paper handling capability, e.g. duplex, collating, finishing
381 - color capability
382
383 When checking the status of the printer and its print jobs, the end-
384 user typically wants to be able to determine:
385
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)
390
391
392
393
394 Wright Experimental [Page 7]
395 \f
396 RFC 2567 Internet Printing Design Goals April 1999
397
398
399 3.1.4. Submitting a print job.
400
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.
415
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
419 protocol):
420
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.
424
425 A standard action shall be defined should the job's requirements not
426 match the capabilities of the printer.
427
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:
436
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
440
441 Print jobs will also be submitted by background or batch applications
442 without human intervention.
443
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
446 limited to:
447
448
449
450 Wright Experimental [Page 8]
451 \f
452 RFC 2567 Internet Printing Design Goals April 1999
453
454
455 - number of copies
456 - single or two sided printing
457 - finishing
458 - job priority
459
460 3.1.5. Viewing the status of a submitted print job.
461
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.
465
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
468 required.
469
470 Notification means are not defined by the protocol but the protocol
471 must provide a means of enabling and disabling the notification.
472
473 3.1.6. Canceling a Print Job
474
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.
480
481 3.2. OPERATOR (NOT REQUIRED FOR V1.0)
482
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
491 protocol.
492
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.
497
498 3.2.1. Alerting.
499
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
503
504
505
506 Wright Experimental [Page 9]
507 \f
508 RFC 2567 Internet Printing Design Goals April 1999
509
510
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.
516
517 3.2.2. Changing Print and Job Status.
518
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.
523
524 3.3. ADMINISTRATOR (NOT REQUIRED FOR V1.0)
525
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.
531
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:
536
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
541 administrators
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
549
550 The administrator must have the capability to perform all the above
551 tasks locally or remotely to the printer.
552
553 4. OBJECTIVES OF THE PROTOCOL
554
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
558 needs (V2.0).
559
560
561
562 Wright Experimental [Page 10]
563 \f
564 RFC 2567 Internet Printing Design Goals April 1999
565
566
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.
575
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
581 end-user.
582
583 4.1. SECURITY CONSIDERATIONS
584
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.
593
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
604 same domain.
605
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
611 non-repudiation.
612
613
614
615
616
617
618 Wright Experimental [Page 11]
619 \f
620 RFC 2567 Internet Printing Design Goals April 1999
621
622
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:
629
630 - defective software
631 - malicious software (e.g. Trojan horses)
632 - inappropriate software (i.e. software doing something
633 deemed unreasonable by the user.)
634
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.
641
642 Examples including security considerations can be found in sections 5
643 (IPP SCENARIOS) and 10 (APPENDIX - DETAILED SCENARIOS) later in this
644 document.
645
646 4.2. INTERACTION WITH LPD (RFC1179)
647
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
658 between LPD and IPP.
659
660 4.3. EXTENSIBILITY
661
662 The Internet Printing Protocol shall be extensible by several means
663 that facilitate interoperability and prevent implementation
664 collisions:
665
666 - by providing a process whereby implementers can submit proposals
667 for registration of new attributes and new enumerated values for
668 existing attributes.
669
670
671
672
673
674 Wright Experimental [Page 12]
675 \f
676 RFC 2567 Internet Printing Design Goals April 1999
677
678
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.
682
683 * that do not require review and approval. IANA will be the
684 repository for such registrations.
685
686 - by providing syntax in the protocol so that implementers may add
687 private (i.e. unregistered) attributes and enumerated attribute
688 values.
689
690 - by providing versioning and negotiation so as to enable future
691 implementations of IPP to interoperate with implementations of
692 version 1.0 of IPP.
693
694 4.4. FIREWALLS
695
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
701 firewall technology.
702
703 4.5. INTERNATIONALIZATION
704
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.
708
709 5. IPP SCENARIOS
710
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.
719
720 See the IPP Model and Semantics document for details on
721 configurations of clients, servers and firewalls.
722
723
724
725
726
727
728
729
730 Wright Experimental [Page 13]
731 \f
732 RFC 2567 Internet Printing Design Goals April 1999
733
734
735 5.1. PRINTER DISCOVERY
736
737 Client Directory Service
738 Service
739
740 +----------------------------------------------------------- >
741 give me information on printers with these characteristics
742
743
744 < -----------------------------------------------------------+
745 Information on Printers matching these characteristics
746
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.
754
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.
759
760 Characteristics that might be considered when locating a Printer
761 include:
762
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
771 of IPP)
772 - maximum job size (spool size) (outside the scope of IPP)
773 - whether or not Printer support compression (outside the scope of
774 IPP)
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
779
780
781
782
783
784
785
786 Wright Experimental [Page 14]
787 \f
788 RFC 2567 Internet Printing Design Goals April 1999
789
790
791 Responses could additionally include:
792
793 - how to get more information
794 - web page
795 - telephone number
796 - help desk
797
798 5.2. DRIVER INSTALLATION
799
800 Client Printer
801
802 +----------------------------------------------------------- >
803 Where can I find a driver & software to install it?
804
805
806 < -----------------------------------------------------------+
807 URIs for drivers and install software
808
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
819 installation.
820
821 5.3. SUBMITTING A PRINT JOB
822
823 Client IPP Printer
824
825 +----------------------------------------------------------- >
826 Here is a Print Job
827 - Job attributes
828 - Print data
829
830
831 < -----------------------------------------------------------+
832 Response
833
834 The protocol must support these sources of client data:
835
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
839
840
841
842 Wright Experimental [Page 15]
843 \f
844 RFC 2567 Internet Printing Design Goals April 1999
845
846
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.
850
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:
854
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
860 - how much printed
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)
866
867 5.4. GETTING STATUS/CAPABILITIES
868
869 Client IPP Printer
870
871 +----------------------------------------------------------- >
872 Get status and/or capabilities of Printer
873
874
875 < -----------------------------------------------------------+
876 Status/Capabilities
877
878 Clients will need to get information about
879
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
884 - queued
885 - printing
886 - completed
887
888
889
890
891
892
893
894
895
896
897
898 Wright Experimental [Page 16]
899 \f
900 RFC 2567 Internet Printing Design Goals April 1999
901
902
903 - Job submission attributes supported/required
904 - scheduling attributes (e.g. priority)
905 - production attributes (e.g. number of copies)
906
907 5.5. ASYNCHRONOUS NOTIFICATION
908
909 Client IPP Printer
910
911 +----------------------------------------------------------- >
912 Use the following method to notify me of Printer events
913
914 .
915 .
916 .
917 < -----------------------------------------------------------+
918 Asynchronous notification of Printer event
919
920 Clients must be able to request asynchronous notification for Printer
921 events such as
922
923 - job completion
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
927
928 Note: end-user notification is a V1.0 design goal while operator
929 notification is for V2.0.
930
931 5.6. JOB CANCELING
932
933 Client IPP Printer
934
935 +----------------------------------------------------------- >
936 Cancel the named job as indicated
937
938
939 < -----------------------------------------------------------+
940 Response (did it or not)
941
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.
946
947
948
949
950
951
952
953
954 Wright Experimental [Page 17]
955 \f
956 RFC 2567 Internet Printing Design Goals April 1999
957
958
959 6. SECURITY CONSIDERATIONS
960
961 The security considerations for IPP are described in Section 4.1
962 above.
963
964 7. REFERENCES
965
966 [ipp-iig] Hastings, T. and C. Manros, "Internet Printing
967 Protocol/1.0: Implementer's Guide", Work in Progress.
968
969 [RFC2569] Herriot, R., Hastings, T., Jacobs, N. and J. Martin,
970 "Mapping between LPD and IPP Protocols", RFC 2569, April
971 1999.
972
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.
976
977 [RFC2565] Herriot, R., Butler, S., Moore, P. and R. Tuner, "Internet
978 Printing Protocol/1.0: Encoding and Transport", RFC 2565,
979 April 1999.
980
981 [RFC2568] Zilles, S., "Rationale for the Structure and Model and
982 Protocol for the Internet Printing Protocol", RFC 2568,
983 April 1999.
984
985 [ISO10175] ISO/IEC 10175, Document Printing Application, June 1996.
986
987 [RFC1179] McLaughlin, L., "Line Printer Daemon Protocol" RFC 1179,
988 August 1990.
989
990 [SSL] Netscape, The SSL Protocol, Version 3, (Text version
991 3.02), November 1996.
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010 Wright Experimental [Page 18]
1011 \f
1012 RFC 2567 Internet Printing Design Goals April 1999
1013
1014
1015 8. ACKNOWLEDGMENTS
1016
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:
1020
1021 Scott Isaacson Roger deBry
1022 Novell Utah Valley State College
1023 sisaacson@novell.com debryro@uvsc.edu
1024
1025 Carl-Uno Manros Robert Herriot
1026 Xerox Sun
1027 manros@cp10.es.xerox.com Robert.Herrior@pahv.xerox.xom
1028
1029 Tom Hastings Peter Zehler
1030 Xerox Xerox
1031 hastings@cp10.es.xerox.com Peter.Zehler@usa.xerox.com
1032
1033 9. AUTHOR'S ADDRESS
1034
1035 F.D. (Don) Wright
1036 Lexmark International
1037 C14/035-3
1038 740 New Circle Rd
1039 Lexington, KY 40550
1040
1041 Phone: 606-232-4808
1042 Fax: 606-232-6740
1043 EMail: don@lexmark.com
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066 Wright Experimental [Page 19]
1067 \f
1068 RFC 2567 Internet Printing Design Goals April 1999
1069
1070
1071 10. APPENDIX - DETAILED SCENARIOS
1072
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.
1081
1082 10.1. PRINTER DISCOVERY WITHIN AN ENTERPRISE
1083
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.
1093
1094 Client Directory Service
1095
1096 +---------------------------------------------------------- >
1097 Find a printer with these characteristics
1098 - prints color, prints transparencies
1099 - prints Postscript
1100 - is in building 003
1101 - accessible by the client
1102
1103 < ----------------------------------------------------------+
1104 Printer "Color-A"
1105 - prints color, prints transparencies
1106 - prints Postscript
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
1114
1115 Printer "Color-B"
1116 - prints color, prints transparencies
1117 - prints Postscript
1118 - in room J-10, building 003
1119
1120
1121
1122 Wright Experimental [Page 20]
1123 \f
1124 RFC 2567 Internet Printing Design Goals April 1999
1125
1126
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
1133
1134 10.2. PRINTER DISCOVERY ACROSS ENTERPRISES
1135
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
1142 public printers.
1143
1144 Client Company B Directory Service
1145
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
1151
1152 < ----------------------------------------------------------+
1153 Printer "Public-A"
1154 - prints black and white
1155 - prints Postscript
1156 - in El Segundo, room H-6, building A
1157 - driver ABC-Postscript-V1.3 required, here is URI
1158 - printer is public
1159 - help available at http://xerox/elSegundo/publicPrinters
1160
1161 Printer "Public-B"
1162 - prints black and white
1163 - prints PCL/5e
1164 - is in El Segundo, room J-10, building A
1165 - driver XYZ-PCL-V2.4 required, here is URI
1166 - printer is public
1167 - help available at http://xerox/elSegundo/publicPrinters
1168
1169 10.3. PRINTER DISCOVERY ON THE INTERNET -LOGICAL OPERATIONS
1170
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.
1175
1176
1177
1178 Wright Experimental [Page 21]
1179 \f
1180 RFC 2567 Internet Printing Design Goals April 1999
1181
1182
1183 Client Ink-o's Directory Service
1184
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
1190
1191 < ----------------------------------------------------------+
1192 Printer "Color-A"
1193 - prints color
1194 - 600 dpi laser printer
1195 - prints Postscript
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
1200
1201 Printer "Mono-B"
1202 - prints black and white
1203 - 300 dpi inkjet printer
1204 - prints Postscript
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
1209
1210 10.4. PRINTER DISCOVERY ON THE INTERNET - AUTHENTICATION
1211
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.
1218
1219 Client SirZippy Directory Service
1220
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
1227
1228
1229
1230
1231
1232
1233
1234 Wright Experimental [Page 22]
1235 \f
1236 RFC 2567 Internet Printing Design Goals April 1999
1237
1238
1239 Tell me when you are open for business
1240
1241 < ----------------------------------------------------------+
1242 Printer "Color-A"
1243 - prints color transparencies
1244 - prints Postscript
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
1251
1252
1253 Printer "Color-B"
1254 - prints color transparencies
1255 - prints Postscript
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
1262
1263 10.5. DRIVER DOWNLOAD
1264
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.
1270
1271 Client IPP Printer
1272
1273 +---------------------------------------------------------- >
1274 Tell me where to find print drivers for you
1275
1276
1277
1278 < ----------------------------------------------------------+
1279 Driver install file is at
1280 http://www.ibm.com/drivers/NP12a/Win95
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290 Wright Experimental [Page 23]
1291 \f
1292 RFC 2567 Internet Printing Design Goals April 1999
1293
1294
1295 10.6. SUBMITTING A PRINT JOB AS A FILE
1296
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.
1303
1304 Client IPP Printer
1305
1306 +---------------------------------------------------------- >
1307 Here is a print job
1308 - job name = MyJob
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
1315
1316 < ----------------------------------------------------------+
1317 Print job accepted and spooled
1318 - job id = #12345
1319 - current state of print job = spooled
1320 - submission time = 02/12/97, 15:35
1321 - printer state = printing
1322
1323 10.7. SUBMITTING A PRINT JOB WITH TWO DOCUMENTS
1324
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.
1331
1332 Client IPP Printer
1333
1334 +---------------------------------------------------------- >
1335 Here is a print job
1336 - job name = MyJob
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
1341
1342 < ----------------------------------------------------------+
1343
1344
1345
1346 Wright Experimental [Page 24]
1347 \f
1348 RFC 2567 Internet Printing Design Goals April 1999
1349
1350
1351 Print job accepted and spooled
1352 - job id = #12345
1353 - submission time = 02/12/97, 15:35
1354 +---------------------------------------------------------- >
1355 - here is the document to print
1356
1357 < ----------------------------------------------------------+
1358 - OK
1359
1360 +---------------------------------------------------------- >
1361 - here is the document to print, it is the last document.
1362
1363 < ----------------------------------------------------------+
1364 - OK
1365
1366 10.8. SUBMITTING A PRINT JOB AS A FILE, PRINTING FAILS
1367
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
1376 printer.)
1377
1378 Client IPP Printer
1379
1380 +---------------------------------------------------------- >
1381 Here is a print job
1382 - job name = MyJob
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
1389
1390 < ----------------------------------------------------------+
1391 Print job accepted
1392
1393 - printing failed
1394 - current state of print job = canceled (A4 not available)
1395 - submission time = 02/12/97, 15:35
1396 - printer state = ready
1397
1398
1399
1400
1401
1402 Wright Experimental [Page 25]
1403 \f
1404 RFC 2567 Internet Printing Design Goals April 1999
1405
1406
1407 10.9. SUBMITTING A PRINT JOB WITH AUTHENTICATION, PRIVACY AND PAYMENT
1408
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.
1417
1418 Client IPP Printer
1419
1420 +---------------------------------------------------------- >
1421 < ----------------------------------------------------------+
1422
1423 Mutual authentication and exchange of secret keys
1424
1425 +---------------------------------------------------------- >
1426 Here is a print job (encrypted)
1427 - job name = MyJob
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
1435
1436 < ----------------------------------------------------------+
1437 Print job accepted and spooled (encrypted)
1438 - job id = #12345
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
1444
1445 +---------------------------------------------------------- >
1446 < ----------------------------------------------------------+
1447 Payment transaction
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458 Wright Experimental [Page 26]
1459 \f
1460 RFC 2567 Internet Printing Design Goals April 1999
1461
1462
1463 10.10. SUBMITTING A PRINT JOB WITH DECRYPTION ERROR
1464
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
1473 decryption.
1474
1475 Client IPP Printer
1476
1477 +---------------------------------------------------------- >
1478 < ----------------------------------------------------------+
1479 Mutual authentication and exchange of secret keys
1480
1481
1482 +---------------------------------------------------------- >
1483 Here is a print job (encrypted)
1484 - job name = MyJob
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
1492
1493 < ----------------------------------------------------------+
1494 Print job accepted and spooled (encrypted)
1495 - job id = #12345
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
1501
1502 +---------------------------------------------------------- >
1503 < ----------------------------------------------------------+
1504 Payment transaction
1505 .
1506 .
1507 .
1508 < ----------------------------------------------------------+
1509 Asynchronous response (email in this case)
1510 - decryption failed on job #12345
1511
1512
1513
1514 Wright Experimental [Page 27]
1515 \f
1516 RFC 2567 Internet Printing Design Goals April 1999
1517
1518
1519 - no pages printed
1520 - current state of job = aborted
1521
1522 10.11. SUBMITTING A PRINT JOB WITH AUTHENTICATION
1523
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
1530 the output.
1531
1532 Client IPP Printer
1533
1534 +---------------------------------------------------------- >
1535 < ----------------------------------------------------------+
1536 Authentication
1537
1538 Note: An authentication failure would end the transaction at
1539 this point.
1540
1541 +---------------------------------------------------------- >
1542 Here is a print job
1543 - job name = MyJob
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
1551
1552 < ----------------------------------------------------------+
1553 Print job accepted and spooled
1554 - job id = #12345
1555 - current state of print job = spooled
1556 - submission time = 02/12/97, 15:35
1557 - printer state = printing
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570 Wright Experimental [Page 28]
1571 \f
1572 RFC 2567 Internet Printing Design Goals April 1999
1573
1574
1575 10.12. SUBMITTING A PRINT JOB GENERATED DYNAMICALLY
1576
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.
1584
1585 Client IPP Printer
1586
1587 +---------------------------------------------------------- >
1588 Here is a print job
1589 - job name = MyJob
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
1596
1597
1598 < ----------------------------------------------------------+
1599 Print data accepted and spooling started
1600 - job id = #12345
1601 - current job state = spooled
1602 - submission time = 02/12/97, 15:35
1603 - printer state = printing
1604
1605 10.13. SUBMITTING A PRINT JOB WITH A PRINTER JAM - CANCELED
1606
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.
1615
1616 Client IPP Printer
1617 +---------------------------------------------------------- >
1618 Here is a print job
1619 - job name = MyJob
1620 - notify me by email when done printing
1621 - print on iso-a4-white paper
1622 - print on both sides of the paper
1623
1624
1625
1626 Wright Experimental [Page 29]
1627 \f
1628 RFC 2567 Internet Printing Design Goals April 1999
1629
1630
1631 - return status of the printer in response
1632 - document is in Postscript format
1633 - here is the document to print
1634
1635 < ----------------------------------------------------------+
1636 Print data accepted and printing started
1637 - job id = #12345
1638
1639 +---------------------------------------------------------- >
1640 - What is the status of print job #12345?
1641
1642 < --------------------------------------------------------- +
1643 - Job #12345 accepted but printer jammed, cannot continue
1644
1645 +---------------------------------------------------------- >
1646 - Cancel job #12345
1647
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
1654
1655 10.14. SUBMITTING A PRINT JOB WITH A PRINTER JAM - RECOVERED
1656
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.
1665
1666 Client IPP Printer
1667
1668 +---------------------------------------------------------- >
1669 Here is a print job
1670 - job name = MyJob
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
1677
1678 < ----------------------------------------------------------+
1679
1680
1681
1682 Wright Experimental [Page 30]
1683 \f
1684 RFC 2567 Internet Printing Design Goals April 1999
1685
1686
1687 Print data accepted and printing started
1688 - job id = #12345
1689
1690 < --------------------------------------------------------- +
1691 - Notification: printer jammed, cannot continue
1692
1693 * Jam is clear by human intervention, printing continues
1694
1695 +---------------------------------------------------------- >
1696 Here is the last part of the document to print
1697
1698 < ----------------------------------------------------------+
1699 Print job received
1700 - current job state = printing
1701 - submission time = 02/12/97, 15:35
1702 - printer state = printing
1703
1704 10.15. SUBMITTING A PRINT JOB WITH SERVER PULL
1705
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.
1712
1713 Client IPP Printer
1714
1715 +---------------------------------------------------------- >
1716 Here is a print job
1717
1718 - job name = MyJob
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
1724
1725 < ----------------------------------------------------------+
1726 Print data accepted and printing started
1727 - job id = #12345
1728 - current state of job = spooled
1729 - submission time = 02/12/97, 13:15
1730 - printer state = printing
1731
1732 .
1733 .
1734 < ----------------------------------------------------------+
1735
1736
1737
1738 Wright Experimental [Page 31]
1739 \f
1740 RFC 2567 Internet Printing Design Goals April 1999
1741
1742
1743 Get the file to be printed
1744
1745 +---------------------------------------------------------- >
1746 Here it is
1747
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.
1751
1752 < ----------------------------------------------------------+
1753 Data received
1754
1755 10.16. SUBMITTING A PRINT JOB WITH REFERENCED RESOURCES
1756
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.
1764
1765 Client IPP Printer
1766
1767 +---------------------------------------------------------- >
1768 Here is a print job
1769 - job name = MyJob
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
1774
1775 < ----------------------------------------------------------+
1776 Print job accepted and spooled
1777 - job id = #12345
1778 - submission time = 02/12/97, 15:35
1779
1780 +---------------------------------------------------------- >
1781 - here is the document to print
1782
1783 < ----------------------------------------------------------+
1784 - OK
1785
1786 +---------------------------------------------------------- >
1787 - here is the URI to print, it is the last document.
1788
1789 < ----------------------------------------------------------+
1790 - OK
1791
1792
1793
1794 Wright Experimental [Page 32]
1795 \f
1796 RFC 2567 Internet Printing Design Goals April 1999
1797
1798
1799 < ----------------------------------------------------------+
1800 Get the external resource
1801
1802 +---------------------------------------------------------- >
1803 Here it is
1804
1805 10.17. GETTING CAPABILITIES
1806
1807 10.17.1. Submission Attributes
1808
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
1812 print request.
1813
1814 Client IPP Printer
1815 +---------------------------------------------------------- >
1816 I'm going to submit a Postscript job
1817 give me your job submission attributes
1818
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
1824 - default is 1
1825 - print-quality = draft, normal, high
1826 - default is draft
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
1831 - default = 3
1832
1833 10.17.2. Printer Capabilities
1834
1835 An end-user wants to determine the resolution, marking technology,
1836 and PDLs supported by the printer.
1837
1838 Client IPP Printer
1839 +---------------------------------------------------------- >
1840 Please tell me the
1841 - resolution of the printer
1842 - the marking technology of the printer
1843 - PDLs supported
1844 < ----------------------------------------------------------+
1845 Printer resolution = 600 dpi
1846 Marking Technology = laser
1847
1848
1849
1850 Wright Experimental [Page 33]
1851 \f
1852 RFC 2567 Internet Printing Design Goals April 1999
1853
1854
1855 PDLs supported = Postscript level 2, PCL/6
1856
1857 10.18. GETTING STATUS
1858
1859 10.18.1. Printer State/Status
1860
1861 An end-user wants to determine the state or status of the printer.
1862
1863 Client IPP Printer
1864
1865 +---------------------------------------------------------- >
1866 What is the state of the printer?
1867
1868 < ----------------------------------------------------------+
1869 Printer state = out-of-paper
1870
1871 10.18.2. Job Status
1872
1873 An end user wants to get the status of a job he has submitted.
1874
1875 Client IPP Printer
1876
1877 +---------------------------------------------------------- >
1878 Please tell me the status of job #12345
1879
1880 < ----------------------------------------------------------+
1881 Job #12345 is queued
1882 it is number 3 in the queue
1883 printer state = printing
1884
1885 10.18.3. Status of All My Jobs
1886
1887 An end user wants to get a list of all of the jobs he has submitted
1888 to this Printer.
1889
1890 Client IPP Printer
1891
1892 +---------------------------------------------------------- >
1893 Please tell me the status of my jobs
1894
1895 < ----------------------------------------------------------+
1896 Job #00012 is complete
1897 Printed at 12:35 on 01/23/97
1898
1899 Job #09876 is printing
1900
1901 Job #12345 is queued
1902 it is number 3 in the queue
1903
1904
1905
1906 Wright Experimental [Page 34]
1907 \f
1908 RFC 2567 Internet Printing Design Goals April 1999
1909
1910
1911 Job #34567 is queued
1912 it is number 7 in the queue
1913
1914 10.19. ASYNCHRONOUS NOTIFICATION
1915
1916 10.19.1. Job Completion
1917
1918 An end-user wants to get notification of events that affect his print
1919 jobs. Print job completes without error.
1920
1921 Client IPP Printer
1922
1923 < ----------------------------------------------------------+
1924 Print job #123 completed
1925
1926 10.19.2. Job Complete with Data
1927
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
1930 information.
1931
1932 Client IPP Printer
1933
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
1940
1941 10.19.3. Print Job Fails
1942
1943 An end-user wants to get notification of events that affect his print
1944 jobs. Print job fails. Printer is unattended.
1945
1946 Client IPP Printer
1947
1948 < ----------------------------------------------------------+
1949 Print job #123 failed
1950 - total pages printed = 15
1951 - number of pages submitted = 25
1952 - printer-state = jammed
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962 Wright Experimental [Page 35]
1963 \f
1964 RFC 2567 Internet Printing Design Goals April 1999
1965
1966
1967 10.20. CANCEL A JOB
1968
1969 The end-user submits a print job and later decides to cancel it.
1970
1971 Client IPP Printer
1972
1973 +---------------------------------------------------------- >
1974 < ----------------------------------------------------------+
1975 Authentication.
1976
1977
1978 +---------------------------------------------------------- >
1979 Cancel job #1234
1980
1981 < ----------------------------------------------------------+
1982 Job #1234 Canceled
1983
1984
1985 10.21. END TO END SCENARIO - WITHIN AN ENTERPRISE
1986
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.
1999
2000 End-user selects print from the application pull down menu. An IPP
2001 printer is selected from the list of Printers offered
2002
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.
2005
2006 Client IPP Printer
2007 +---------------------------------------------------------- >
2008 Here is a print job
2009 - job-name = memo-to-boss
2010 - notify me by email when job is complete
2011 - print on us-letter-white paper
2012 - print 1 copy
2013 - print at normal quality
2014 - print on 1 side
2015
2016
2017
2018 Wright Experimental [Page 36]
2019 \f
2020 RFC 2567 Internet Printing Design Goals April 1999
2021
2022
2023 - give me the state of the printer in response
2024
2025 The driver generates the print data and passes it to the IPP driver a
2026 piece at a time as it is generated.
2027
2028 +---------------------------------------------------------- >
2029 Here is the print data
2030
2031
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
2037
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.
2040
2041 End-user selects job #1234 from list and clicks on it to see its
2042 status.
2043
2044 +---------------------------------------------------------- >
2045 Give me the state of job #1234
2046 and the state of the Printer
2047
2048 < ----------------------------------------------------------+
2049 Job #1234 state = spooled
2050 - it is number 3 in the queue
2051 - printer state = printing
2052
2053 The job completes without error
2054
2055 < ----------------------------------------------------------+
2056 Job #1234 completed
2057 12 of 12 pages printed
2058
2059 10.22. END TO END SCENARIO - ACROSS ENTERPRISES
2060
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
2070 printer.
2071
2072
2073
2074 Wright Experimental [Page 37]
2075 \f
2076 RFC 2567 Internet Printing Design Goals April 1999
2077
2078
2079 Client Company B's Directory Service
2080
2081 End user connects to B's Directory service
2082
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
2088
2089 < ----------------------------------------------------------+
2090 Printer "Public-A"
2091 - http://www.lexmark.com/pubprinter/a
2092
2093 Printer "Public-B"
2094 - http://www.lexmark.com/pubprinter/b
2095
2096 End user selects Public-A
2097
2098 Client Public-A
2099
2100 +---------------------------------------------------------- >
2101 Where can I find a driver for you?
2102
2103 < ----------------------------------------------------------+
2104 Drivers at http://www.lexmark.com/pubprinters/a/os245
2105
2106 End user gets driver and installs it on his PC.
2107
2108 End-user selects print from the application pull down menu. "Public-
2109 A" is selected from the list of Printers offered
2110
2111 +---------------------------------------------------------- >
2112 I'm going to submit a print job
2113 give me your job submission attributes
2114
2115 < ----------------------------------------------------------+
2116
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
2121 - default is 1
2122 - print-quality = draft, normal, high
2123 - default is draft
2124 - sides = 1-sided, 2-sided-long-edge
2125 - default is 2-sided-long-edge
2126
2127
2128
2129
2130 Wright Experimental [Page 38]
2131 \f
2132 RFC 2567 Internet Printing Design Goals April 1999
2133
2134
2135 Job scheduling attributes for this Printer are:
2136 - job-priority = 1,2,3
2137 default = 3
2138
2139 Driver puts up dialogue with available options and fills in the
2140 defaults.
2141
2142 End-user makes choices and submits job
2143
2144 +---------------------------------------------------------- >
2145 Here is a print job
2146 - job-name = memo-to-Don-Wright
2147 - notify me by email when job is complete
2148 - print on us-letter-white paper
2149 - print 1 copy
2150 - print at normal quality
2151 - print on 1 side
2152 - give me the state of the printer in response
2153
2154
2155 The driver generates the print data and passes it to the IPP driver a
2156 piece at a time.
2157
2158 +---------------------------------------------------------- >
2159 Here is the print data
2160
2161 < ----------------------------------------------------------+
2162 Print data received, and spooling started
2163 print job id = #1234
2164
2165 Print data received, file is spooled
2166
2167 - printer state = printing
2168 - time submitted = 2/12/97, 15:35
2169 - current job state = spooled
2170
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.
2173
2174 End-user selects job #1234 from list and clicks on it to see its
2175 status.
2176
2177 +---------------------------------------------------------- >
2178 Give me the state of job #1234
2179 and the state of the Printer
2180
2181 < ----------------------------------------------------------+
2182 Job #1234 state = spooled
2183
2184
2185
2186 Wright Experimental [Page 39]
2187 \f
2188 RFC 2567 Internet Printing Design Goals April 1999
2189
2190
2191 - it is number 3 in the queue
2192 - printer state = printing
2193
2194 * The job completes without error
2195 < ----------------------------------------------------------+
2196 Job #1234 completed
2197 12 of 12 pages printed
2198
2199 10.23. END TO END SCENARIO - ON THE INTERNET
2200
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
2209 eavesdropping.
2210
2211 End-user completes presentation. She goes to the web and connects to
2212 the SirZippy home page.
2213
2214 Client SirZippy Directory Service
2215 +---------------------------------------------------------- >
2216
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)
2222 -
2223
2224 Available Printers matching these characteristics are looked up in the
2225 Directory Service
2226
2227 < ----------------------------------------------------------+
2228
2229 Printer "Color-A"
2230 - located at 123 First Street in San Jose
2231 - URI is http://www.SirZippy.com/FirstStreet/Color-A
2232 - prints color transparencies
2233 - 600 dpi laser
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
2238
2239
2240
2241
2242 Wright Experimental [Page 40]
2243 \f
2244 RFC 2567 Internet Printing Design Goals April 1999
2245
2246
2247 Printer "Color-B"
2248 - located at 67 San Carlos Street, San Jose
2249 - URI is http://www.SirZippy.com/SanCarlos/Color-B
2250 - prints color transparencies
2251 - 1200 dpi laser
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
2257
2258 The user decides to use the first printer because it is closer. She
2259 connects to the URI given to get a driver.
2260
2261 Client Driver URI
2262
2263 +---------------------------------------------------------- >
2264 I need a driver for "Color-A"
2265
2266
2267 < ----------------------------------------------------------+
2268 Driver installer is at http://www.xerox.com/prtdrvrs
2269
2270 Driver is installed
2271
2272 User connects to
2273 "Color-A"
2274
2275 Client IPP Printer "Color-A"
2276
2277 +---------------------------------------------------------- >
2278 < ----------------------------------------------------------+
2279 Mutual authentication and exchange of secret keys
2280
2281 +---------------------------------------------------------- >
2282 I'm going to submit a print job
2283 give me your job submission attributes
2284
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
2290 - default is 1
2291 - print-quality = draft, normal, high
2292 - default is draft
2293 - sides = 1-sided, 2-sided-long-edge
2294 - default is 2-sided-long-edge
2295
2296
2297
2298 Wright Experimental [Page 41]
2299 \f
2300 RFC 2567 Internet Printing Design Goals April 1999
2301
2302
2303 Job scheduling attributes for this Printer are:
2304 - job-priority = 1,2,3
2305 default = 3
2306
2307 Driver puts up dialogue with available options and fills in the
2308 defaults.
2309
2310 End-user makes choices and submits job
2311
2312 +---------------------------------------------------------- >
2313 Here is a print job
2314
2315 - job-name = presentation
2316 - notify me by email when job is complete
2317 - print on us-letter-transparency
2318 - print 1 copy
2319 - print at high quality
2320 - print by 9:00 am tomorrow morning
2321 - give me the state of the printer in response
2322
2323 The driver generates the print data and passes it to the IPP driver a
2324 piece at a time.
2325
2326 +---------------------------------------------------------- >
2327 Here is the print data
2328
2329 < ---------------------------------------------------------+
2330 Print data received, and spooling started
2331 print job id = #1234
2332
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
2337
2338 +---------------------------------------------------------- >
2339 < ----------------------------------------------------------+
2340 Payment transaction
2341
2342 < ----------------------------------------------------------+
2343 Job is scheduled to print, pick up after 9:00am tomorrow
2344 Thank you for using SirZippy
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354 Wright Experimental [Page 42]
2355 \f
2356 RFC 2567 Internet Printing Design Goals April 1999
2357
2358
2359 11. Full Copyright Statement
2360
2361 Copyright (C) The Internet Society (1999). All Rights Reserved.
2362
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
2375 English.
2376
2377 The limited permissions granted above are perpetual and will not be
2378 revoked by the Internet Society or its successors or assigns.
2379
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.
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410 Wright Experimental [Page 43]
2411 \f