]>
Commit | Line | Data |
---|---|---|
ef416fc2 | 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 |