idnits 2.17.1 draft-ietf-ipp-req-02.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Looks like you're using RFC 2026 boilerplate. This must be updated to follow RFC 3978/3979, as updated by RFC 4748. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** Missing expiration date. The document expiration date should appear on the first and last page. ** The document seems to lack a 1id_guidelines paragraph about Internet-Drafts being working documents. ** The document seems to lack a 1id_guidelines paragraph about 6 months document validity -- however, there's a paragraph with a matching beginning. Boilerplate error? ** The document seems to lack a 1id_guidelines paragraph about the list of current Internet-Drafts. ** The document seems to lack a 1id_guidelines paragraph about the list of Shadow Directories. == No 'Intended status' indicated for this document; assuming Proposed Standard Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** The document seems to lack separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. ** The abstract seems to contain references ([IPP-PRO], [IPP-RAT], [ISO10175], [IPPMOD], [IPPLPD]), which it shouldn't. Please replace those with straight textual mentions of the documents in question. ** The document seems to lack a both a reference to RFC 2119 and the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. RFC 2119 keyword, line 91: '...2. Operator (NOT REQUIRED FOR V1.0) .....' RFC 2119 keyword, line 94: '...ministrator (NOT REQUIRED FOR v1.0) .....' RFC 2119 keyword, line 417: '...2.2. OPERATOR (NOT REQUIRED FOR V1.0)...' RFC 2119 keyword, line 457: '... ADMINISTRATOR (NOT REQUIRED FOR V1.0)...' Miscellaneous warnings: ---------------------------------------------------------------------------- == Line 309 has weird spacing: '...nstance provi...' == Line 862 has weird spacing: '...for the purpo...' == Line 962 has weird spacing: '...erprise which...' -- The exact meaning of the all-uppercase expression 'NOT REQUIRED' is not defined in RFC 2119. If it is intended as a requirements expression, it should be rewritten using one of the combinations defined in RFC 2119; otherwise it should not be all-uppercase. -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- Couldn't find a document date in the document -- date freshness check skipped. Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'ISO10175' is mentioned on line 33, but not defined == Missing Reference: 'IPP MOD' is mentioned on line 43, but not defined == Unused Reference: 'IPP-MOD' is defined on line 894, but no explicit reference was found in the text == Unused Reference: 'IPP-REQ' is defined on line 909, but no explicit reference was found in the text == Outdated reference: A later version (-05) exists of draft-ietf-ipp-lpd-ipp-map-04 ** Downref: Normative reference to an Experimental draft: draft-ietf-ipp-lpd-ipp-map (ref. 'IPP LPD') -- No information found for draft-ietf-ipp-mod - is the name correct? -- Possible downref: Normative reference to a draft: ref. 'IPP-MOD' -- No information found for draft-ietf-ipp-pro - is the name correct? -- Possible downref: Normative reference to a draft: ref. 'IPP-PRO' == Outdated reference: A later version (-04) exists of draft-ietf-ipp-rat-03 ** Downref: Normative reference to an Experimental draft: draft-ietf-ipp-rat (ref. 'IPP-RAT') -- Possible downref: Non-RFC (?) normative reference: ref. 'IPP-REQ' Summary: 12 errors (**), 0 flaws (~~), 10 warnings (==), 8 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 INTERNET DRAFT F.D. Wright, Lexmark International 2 3 June 30, 1997 Expires: Dec 30, 1998 5 Design Goals for an Internet Printing Protocol 7 STATUS OF THIS MEMO 9 This document is an Internet-Draft. Internet-Drafts are working 10 documents of the Internet Engineering Task Force (IETF), its 11 areas, and its working groups. Note that other groups may also 12 distribute working documents as Internet-Drafts. 14 Internet-Drafts are draft documents valid for a maximum of six 15 months and may be updated, replaced, or obsoleted by other 16 documents at any time. It is inappropriate to use Internet- 17 Drafts as reference material or to cite them other than as ''work 18 in progress.'' 20 To learn the current status of any Internet-Draft, please check 21 the ''1id-abstracts.txt'' listing contained in the Internet- 22 Drafts Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net 23 (Europe), munnari.oz.au (Pacific Rim), ftp.ietf.org (US East 24 Coast), or ftp.isi.edu (US West Coast). 26 Abstract 28 This document is one of a set of documents, which together 29 describe all aspects of a new Internet Printing Protocol (IPP). 30 IPP is an application level protocol that can be used for 31 distributed printing using Internet tools and technologies. The 32 protocol is heavily influenced by the printing model introduced 33 in the Document Printing Application (DPA) [ISO10175] standard. 34 Although DPA specifies both end user and administrative features, 35 IPP version 1.0 (IPP/1.0) focuses only on end user functionality. 37 The full set of IPP documents includes: 39 Design Goals for an Internet Printing Protocol (this document) 40 (informational) 41 Rationale for the Structure and Model and Protocol for the 42 Internet Printing Protocol [IPP-RAT] (informational) 43 Internet Printing Protocol/1.0: Model and Semantics [IPP MOD] 44 Internet Printing Protocol/1.0: Encoding and Transport [IPP-PRO] 45 Mapping between LPD and IPP Protocols [IPP LPD] (informational) 47 Copyright(C) The Internet Society 1998. All Rights Reserved. 49 The design goals document, "Design Goals for an Internet Printing 50 Protocol", takes a broad look at distributed printing 51 functionality, and it enumerates real-life scenarios that help to 52 clarify the features that need to be included in a printing 53 protocol for the Internet. It identifies requirements for three 54 types of users: end users, operators, and administrators. The 55 design goals document calls out a subset of end user requirements 56 that are satisfied in IPP/1.0. Operator and administrator 57 requirements are out of scope for version 1.0. The rationale 58 document, "Rationale for the Structure and Model and Protocol for 59 the Internet Printing Protocol", describes IPP from a high level 60 view, defines a roadmap for the various documents that form the 61 suite of IPP specifications, and gives background and rationale 62 for the IETF working group's major decisions. The document, 63 "Internet Printing Protocol/1.0: Model and Semantics", describes 64 simplified model with abstract objects, their attributes, and 65 their operations. The model introduces a Printer and a Job. The 66 Job supports multiple documents per Job. The model document also 67 addresses how security, internationalization, and directory 68 issues are addressed. The protocol specification, "Internet 69 Printing Protocol/1.0: Encoding and Transport", is a formal 70 mapping of the abstract operations and attributes defined in the 71 model document onto HTTP/1.1. The protocol specification defines 72 the encoding rules for a new Internet media type called 73 "application/ipp". The "Mapping between LPD and IPP Protocols" 74 gives some advice to implementers of gateways between IPP and LPD 75 (Line Printer Daemon) implementations. 77 Expires: Dec 30, 1998 78 Copyright(C) The Internet Society 1998. All Rights Reserved. 80 TABLE OF CONTENTS 82 1. TERMINOLOGY.................................................5 83 2. DESIGN GOALS................................................7 84 2.1. End-user ................................................7 85 2.1.1. Finding or locating a printer. ......................7 86 2.1.2. Create an instance of the printer. ..................8 87 2.1.3. Viewing the status and capabilities of a printer. ...8 88 2.1.4. Submitting a print job. .............................9 89 2.1.5. Viewing the status of a submitted print job. .......10 90 2.1.6. Canceling a Print Job ..............................10 91 2.2. Operator (NOT REQUIRED FOR V1.0) .......................10 92 2.2.1. Alerting. ..........................................11 93 2.2.2. Changing Print and Job Status. .....................11 94 2.3. Administrator (NOT REQUIRED FOR v1.0) ..................11 95 3. OBJECTIVES OF THE PROTOCOL.................................13 96 3.1. SECURITY CONSIDERATIONS ................................13 97 3.2. Interaction with LPD (RFC1179) .........................14 98 3.3. Extensibility ..........................................15 99 3.4. Firewalls ..............................................15 100 3.5. Internationalization ...................................15 101 4. IPP SCENARIOS..............................................17 102 4.1. Printer Discovery ......................................18 103 4.2. Driver Installation ....................................19 104 4.3. Submitting a Print Job .................................19 105 4.4. Getting Status/Capabilities ............................20 106 4.5. Asynchronous Notification ..............................21 107 4.6. Job Canceling ..........................................21 108 5. COPYRIGHT..................................................23 109 6. REFERENCES.................................................24 110 7. ACKNOWLEDGMENTS............................................25 111 8. AUTHOR'S ADDRESS...........................................25 112 9. APPENDIX - DETAILED SCENARIOS..............................26 113 9.1. Printer discovery within an enterprise .................26 114 9.2. Printer discovery across enterprises ...................28 115 9.3. Printer discovery on the Internet -logical operations ..29 116 9.4. Printer discovery on the Internet - authentication .....30 117 9.5. Driver Download ........................................32 118 9.6. Submitting a print job as a file .......................33 119 9.7. Submitting a print job with two documents ..............34 120 9.8. Submitting a print job as a file, printing fails .......35 121 9.9. Submitting a print job with authentication, PRIVACY and 122 payment .....................................................35 123 9.10. Submitting a print job with decryption error ..........37 124 9.11. Submitting a print job with authentication ............39 126 Expires: Dec 30, 1998 127 Copyright(C) The Internet Society 1998. All Rights Reserved. 129 9.12. Submitting a print job generated dynamically ..........40 130 9.13. Submitting a print job with a Printer jam - CANCELED ..41 131 9.14. Submitting a print job with a Printer jam - recovered .42 132 9.15. Submitting a print job with server pull ...............43 133 9.16. Submitting a print job with referenced resources ......44 134 9.17. Getting Capabilities ..................................45 135 9.17.1. Submission Attributes .............................45 136 9.17.2. Printer Capabilities ..............................45 137 9.18. Getting Status ........................................46 138 9.18.1. Printer State/Status ..............................46 139 9.18.2. Job Status ........................................46 140 9.18.3. Status of All My Jobs .............................46 141 9.19. Asynchronous Notification .............................48 142 9.19.1. Job Completion ....................................48 143 9.19.2. Job Complete with Data ............................48 144 9.19.3. Print Job Fails ...................................48 145 9.20. Cancel a job ..........................................49 146 9.21. End to end Scenario - within an enterprise ............50 147 9.22. End to end Scenario - across enterprises ..............52 148 9.23. End to End Scenario - on the internet .................55 150 Expires: Dec 30, 1998 151 Copyright(C) The Internet Society 1998. All Rights Reserved. 153 1. TERMINOLOGY 155 Internet Printing for the purposes of this document is the 156 application of Internet tools, programs, servers and networks to 157 allow end-users to print to a remote printer using, after initial 158 setup or configuration, the same methods, operations and 159 paradigms as would be used for a locally attached or a local area 160 network attached printer. This could include the use of HTTP 161 servers and browsers and other applications for providing static, 162 dynamic and interactive printer locating services, user 163 installation, selection, configuration, print job submission, 164 printer capability inquiry and status inquiry of remote printers 165 and jobs. 167 For the purposes of this document, a WEB Browser is software 168 available from a number of sources including but not limited to 169 the following: Microsoft Internet Explorer, NCSA Mosaic, Netscape 170 Navigator, Sun Hot Java!. The major task of these products is to 171 use the Hypertext Transport Protocol (HTTP) to retrieve, 172 interpret and display Hypertext Markup Language (HTML). These 173 products are often a part of a complete Internet Printing system 174 because they are often used as a means of obtaining the status of 175 or more information about the printing system; however, they may 176 not be present in all implementations. 178 Throughout this document, 'printer' shall be interpreted to 179 include any device which is capable of marking on a piece of 180 media using any available technology. These design goals do not 181 include support for multi-tiered printing solutions involving 182 servers (single or multiple) logically in front of the actual 183 printing device yet all such configurations shall be supported 184 but shall appear to the end-user as only a single device. 186 Throughout this document 'driver' refers to the code installed in 187 some client operating system to generate the print data stream 188 for the intended printer. Some computing environments may not 189 include a separate printer driver. Rather, the generation of the 190 proper print data stream is accomplished in an application on 191 that computer. How such a computer environment or application is 192 updated to support a new printer now made available using IPP is 193 outside the scope of IPP. The actual details for installing a 194 printer driver are operating system dependent and are also 195 outside the scope of IPP. See also section 3.1 (SECURITY 197 Expires: Dec 30, 1998 198 Copyright(C) The Internet Society 1998. All Rights Reserved. 200 CONSIDERATIONS) for security implications of driver download and 201 installation. 203 The IPP protocol will support the following physical 204 configurations: 206 - An IPP client talking to an IPP Printer object imbedded in a 207 single, physical output device. 208 - An IPP Client talking to a server containing one or more IPP 209 Printer objects. Each Printer object is associated with 210 exactly one physical output device supported by the server. 211 The protocol between the server and the output devices is 212 undefined. 213 - An IPP Client talking to an IPP Printer object in a server. 214 The Printer object is associated with one or more physical 215 output devices, but the client only sees the Printer object, 216 which is an abstraction and represents all of the associated 217 physical output devices. The protocol between the server and 218 the physical output devices is undefined. 220 Throughout this document, certain design goals will be identified 221 as not being a part of version 1.0 (or V1.0) of the protocol or 222 as being satisfied by means outside of IPP. IPP is assumed to be 223 one part, an enabler, of a complete Internet Printing solution. 224 For example printer instance creation is not performed by but is 225 enabled by the protocol. Globally, none of the operator or 226 administrators wants and needs are included in the design goals 227 for version 1.0. Some of the end-user wants and needs may also 228 be excluded from version 1.0 and will be so noted in the 229 description of them. Subsequent versions of the protocol (e.g. 230 V2.0) may include support for these initially excluded wants and 231 needs. 233 Expires: Dec 30, 1998 234 Copyright(C) The Internet Society 1998. All Rights Reserved. 236 2. DESIGN GOALS 238 The next three sections identify the design goals for an Internet 239 printing protocol from three roles assumed by humans: end-user, 240 operator, and administrator. The goals defined here are only 241 those that need to be addressed by an Internet printing protocol. 242 Other wants and needs, such as that the operator needs physical 243 access to the printer (e.g. to be able to load paper or clear 244 jams) are not covered by this document. Section 4 contains 245 scenarios which provide more detailed examples of the entire 246 process including discovery, status, printing and end-of-job 247 reporting. 249 2.1. END-USER 251 An end-user of a printer accepting jobs through the Internet is 252 one of the roles in which humans act. The end-user is the person 253 that will submit a job to be printed on the printer. 255 The wants and needs of the end-user are broken down into six 256 categories: finding/locating a printer, creating a local instance 257 of a printer, viewing printer status, viewing printer 258 capabilities, submitting a print job, viewing print job status, 259 altering the attributes of a print job. 261 2.1.1. Finding or locating a printer. 263 End-users want to be able to find and locate printers to which 264 they are authorized to print. They want to be able to perform 265 this function using a standard WEB browser or other application. 266 Multiple criteria can be applied to find the printers needed. 267 These criteria include but are not limited to: 269 - by name (Printer 1, Joes-color-printer, etc.) 270 - by geographic location (bldg 1, Kentucky, etc.) 271 - by capability or attribute (color, duplex, legal paper, etc.) 273 Additionally, while it is outside of scope of IPP, end-users want 274 to be able to limit the scope of their searching to: 276 - inside a functional sub-domain 277 - include only a particular domain (lexmark.com) 278 - exclude specified domains 280 Expires: Dec 30, 1998 281 Copyright(C) The Internet Society 1998. All Rights Reserved. 283 While an Internet printing protocol may not of itself include 284 this function, IPP must define and enable a directory schema 285 which will provide the necessary information for a directory 286 service implementation to consistently represent printers by 287 their IPP attributes. 289 2.1.2. Create an instance of the printer. 291 After finding the desired printer, an end-user needs to be able 292 to create a local instance of that printer within the end-user 293 operating system or desktop. This local instance will vary 294 depending upon the printing paradigm of the operating system. 295 For example, some UNIX users will only want a queue or a 296 reference to a remote printer created on their machine while 297 other UNIX users and Windows NT users will want the queue and 298 also the necessary icons and registry entries to be created and 299 initialized. Where required, drivers may need to be downloaded 300 from some repository and installed on the computer. All 301 necessary decompressing, unpacking, and other installation 302 actions should occur without end-user interaction or intervention 303 excepting initial approval by the end-user. Once the local 304 instance of the printer has been installed, it shall appear to 305 the end-user of operating system and to the applications running 306 there as any other printer (local, local area network connected, 307 or network operating system connected) on the end-user desktop or 308 environment. An IPP's role in this goal is simply to enable the 309 creation of the printer instance providing information such as 310 where to locate a printer driver for this printer, as an 311 attribute of an IPP Printer. 313 2.1.3. Viewing the status and capabilities of a printer. 315 Before using a selected printer or, in fact at any time, the end- 316 user needs the ability to verify the characteristics and status 317 of both printers and jobs queued for that printer. When checking 318 the characteristics of a printer, the end-user typically wants to 319 be able to determine the capability of the device, e.g.: 321 - supported media, commonly paper, by size and type 322 - paper handling capability, e.g. duplex, collating, finishing 323 - color capability 325 When checking the status of the printer and its print jobs, the 326 end-user typically wants to be able to determine: 328 Expires: Dec 30, 1998 329 Copyright(C) The Internet Society 1998. All Rights Reserved. 331 - is the printer on-line? 332 - what are the defaults to be used for printing? 333 - how many jobs are queued for the printer? 334 - how are job priorities assigned? (outside the scope of IPP) 336 2.1.4. Submitting a print job. 338 Once the desired printer has been located and installed, the end- 339 user wants to print to that printer from normal applications 340 using standard methods. These normal applications include such 341 programs as word processors, spreadsheets, data-base 342 applications, WEB browsers, production printing applications, 343 etc. Additionaly, the end-user may want to print a file already 344 existing on the end-user's computer -- "simple push." In 345 addition to printing from an application and simple push, the 346 end-user needs to have the ability to submit a print job by 347 reference. Printing by reference is defined to mean as 348 submitting a job by providing a reference to an existing 349 document. The reference, a URI, will be resolved before the 350 actual print process occurs. Submitting a job by reference 351 relieves the user from downloading the job from the remote server 352 and then sending it via IPP to the printer. This saves both time 353 and network bandwidth. 355 Some means shall be provided to determine if the format of a job 356 matches the capability of the printer. This can be done by one 357 of the following (all of which are outside of scope of the IPP 358 protocol): 360 - the end-user selects the correct printer driver 361 - the printer automatically selects the proper interpreter 362 - the end-user uses some other manual procedure. 364 A standard action shall be defined should the job's requirements 365 not match the capabilities of the printer. 367 Because the end-user does not want to know the details of the 368 underlying printing process, the protocol must support job-to- 369 printer capability matching (all implementations are not 370 necessarily required to implement this function.) This matching 371 capability requires knowing both the printer's capabilities and 372 attributes and those capabilities and attributes required by the 373 job. Actions taken when a print job requires capabilities or 374 attributes that are not available on the printer vary and can 375 include but are not limited to: 377 Expires: Dec 30, 1998 378 Copyright(C) The Internet Society 1998. All Rights Reserved. 380 - rejecting the print job 381 - redirecting the print job to another printer (Not in V1.0) 382 - printing the job, accepting differences in the appearance 384 Print jobs will also be submitted by background or batch 385 applications without human intervention. 387 End-users need the ability to set certain print job parameters at 388 the time the job is submitted. These parameters include but are 389 not limited to: 391 - number of copies 392 - single or two sided printing 393 - finishing 394 - job priority 396 2.1.5. Viewing the status of a submitted print job. 398 After a job has been submitted to a printer, the end-user needs a 399 way to view the status of that job (i.e. job waiting, job 400 printing, job done) and to determine where the job is in the 401 print queue. 403 In addition to the need to inquire about the status of a print 404 job, automatic notification of the completion of that job is also 405 required. Notification means are not defined by the protocol but 406 the protocol must provide a means of enabling and disabling the 407 notification. 409 2.1.6. Canceling a Print Job 411 While a job is waiting to be printing or has been started but not 412 yet completed, the original creator/submitter of the print job 413 (i.e. the end-user) shall be able to cancel the job entirely (job 414 is waiting) or the remaining portion of it (job is printing.) 415 Altering the print job itself is not a V1.0 design goal. 417 2.2. OPERATOR (NOT REQUIRED FOR V1.0) 419 An operator of a printer accepting jobs through the Internet is 420 one of the roles in which humans act. The operator has the 422 Expires: Dec 30, 1998 423 Copyright(C) The Internet Society 1998. All Rights Reserved. 425 responsibility of monitoring the status of the printer as well as 426 managing and controlling the jobs at the device. These 427 responsibilities include but are not limited to the replenishing 428 of supplies (ink, toner, paper, etc.), the clearing of minor 429 errors (paper jams, etc.) and the re-prioritization of end-user 430 jobs. Operator wants and needs will not be addressed by V1.0 of 431 the protocol. 433 The wants and needs of the operator include all those of the end- 434 user but may include additional privileges. For example, an 435 operator may be able to view all print jobs on a printer while 436 the end-user may only be able to see his own jobs. 438 2.2.1. Alerting. 440 One of the required operator functions is having the ability to 441 discover or to be alerted to changes in the status of a printer 442 particularly those changes that cause a printer to stop printing 443 and to be able to correct those problems. As such, an Internet 444 printing protocol shall be able to alert a designated operator or 445 operators to these conditions such as 'out of paper', 'out of 446 ink', etc. Additionally. the operator shall be able to, 447 asynchronous to other printer activity, inquire as to a printer's 448 or a job's status. 450 2.2.2. Changing Print and Job Status. 452 Another of the required operator functions is the ability to 453 affect changes to printer and job status remotely. For example, 454 the operator will need to be able to re-prioritize or cancel any 455 print jobs on a printer to which the operator has authority. 457 2.3. ADMINISTRATOR (NOT REQUIRED FOR V1.0) 459 An administrator of a printer accepting jobs through the Internet 460 is one of the roles in which humans act. The administrator has 461 the responsibility of creating the printer instances and 462 controlling the authorization of other end-users and operators. 463 Administrator wants and needs will not be addressed by V1.0 of 464 the protocol. 466 The wants and needs of the administrator include all those of the 467 end-user and, in some environments, some or all of those of the 468 operator. Minimally, the administrator must also have the tools, 470 Expires: Dec 30, 1998 471 Copyright(C) The Internet Society 1998. All Rights Reserved. 473 programs, utilities and supporting protocols available to be able 474 to: 476 - create an instance of a printer 477 - create, edit and maintain the list of authorized end-users 478 - create, edit and maintain the list of authorized operators 479 - create, edit and maintain the list of authorized 480 administrators 481 - create, customize, change or otherwise alter the manner in 482 which the status capabilities and other information about 483 printers and jobs are presented 484 - create, customize, or change other printer or job features 485 - administrate billing or other charge-back mechanisms 486 - create sets of defaults 487 - create sets of capabilities 489 The administrator must have the capability to perform all the 490 above tasks locally or remotely to the printer. 492 Expires: Dec 30, 1998 493 Copyright(C) The Internet Society 1998. All Rights Reserved. 495 3. OBJECTIVES OF THE PROTOCOL 497 The protocol to be defined by an Internet printing working group 498 will address the wants and needs of the end-user (V1.0). It will 499 not, at least initially, address the operator or administrator 500 wants and needs (V2.0). 502 The protocol defined shall be independent of the operating system 503 of both the client and the server. Generally, any platform 504 capable of supporting a WEB Browser should be capable of being a 505 client. Generally, any platform providing a WEB/HTTP server and 506 printing services should be capable of being a server. Usage of 507 the WEB Browser and Server is not required for IPP; the operating 508 system, operating system extensions or other applications may 509 provide IPP functionality directly. 511 In many environments such as Windows 95, Windows NT and OS/2, the 512 print data is created and transmitted to the printer on the fly 513 rather than being created, spooled and then transmitted to the 514 printer (a typical UNIX method.) The Internet Printing Protocol 515 must properly handle either methodology and make this transparent 516 to the end-user. 518 3.1. SECURITY CONSIDERATIONS 520 It is required that the Internet Printing Protocol be able to 521 operate within a secure environment. Wherever reasonable, IPP 522 ought to make use of existing security protocols and services. 523 IPP will not invent new security features when the design goals 524 described in this document can be met by existing protocols and 525 services. Examples of such services include Transport Layer 526 Security (TLS) and HTTP Digest Authentication. 528 Since we cannot anticipate the security levels or the specific 529 threats that any given IPP print administrator may be concerned 530 with, IPP must be capable of operating with different security 531 mechanisms and policies as required by the individual 532 installation. The initial security needs of IPP are derived from 533 two primary considerations. First, the printing environments 534 described in this document take into account that the client, the 535 Printer, and the document to be printed may each exist in 536 different security domains. When objects are in different 537 security domains the design goals for authentication and message 539 Expires: Dec 30, 1998 540 Copyright(C) The Internet Society 1998. All Rights Reserved. 542 protection may be much stronger than when they are all in the 543 same domain. 545 Secondly, the sensitivity and value of the content being printed 546 will vary from one instance of a print job to another. For 547 example, a publicly available document does not need the same 548 level of protection as a payroll document does. Message 549 protection design goals include data origin authentication, 550 privacy, integrity, and non-repudiation. 552 In many environments (e.g. Windows, OS/2) a printer driver may be 553 needed to create the proper datastream for printer. This 554 document discusses downloading such a new driver from a variety 555 of sources. Downloading and installing any software, including 556 drivers) on a computer exposes that computer to a number of 557 security risks including but not limited to: 559 - defective software 560 - malicious software (e.g. trojan horses) 561 - inappropriate software (i.e. software doing something 562 deemed unreasonable by the user.) 564 As such, proper security considerations and actions need to be 565 taken by the user and/or a system administrator to prevent the 566 compromising of the computer. IPP design goals do not include 567 addressing the security considerations associated with the 568 downloading and installing of software (including drivers) on a 569 computer. 571 Examples including security considerations can be found in 572 sections 4 (IPP SCENARIOS) and 9 (APPENDIX - DETAILED SCENARIOS) 573 later in this document. 575 3.2. INTERACTION WITH LPD (RFC1179) 577 Many versions of UNIX and in fact other operating systems provide 578 a means of printing as described in RFC1179 (Line Printer Daemon 579 Protocol.) This document describes the file formats for the 580 control and data files as well as the messages used by the 581 protocol. Because of the simplistic approach taken by this 582 protocol, many manufacturers have include proprietary 583 enhancements and extensions to 'lpd.' Because of this divergence 584 and due to other design goals described in this document, there 585 is no requirement for backward compatibility or interoperability 587 Expires: Dec 30, 1998 588 Copyright(C) The Internet Society 1998. All Rights Reserved. 590 with 'lpd'. However, a mapping of LPD functionality and IPP 591 functionality shall be provided so as to enable a gateway between 592 LPD and IPP. 594 3.3. EXTENSIBILITY 596 The Internet Printing Protocol shall be extensible by several 597 means that facilitate interoperability and prevent implementation 598 collisions: 600 - by providing a process whereby implementers can submit 601 proposals for registration of new attributes and new 602 enumerated values for existing attributes. 604 * that require review and approval. The Internet 605 Assigned Number Authority (IANA) will be the repository 606 for such accepted registration proposals after review. 608 * that do not require review and approval. IANA will 609 be the repository for such registrations. 611 - by providing syntax in the protocol so that implementers 612 may add private (i.e. unregistered) attributes and 613 enumerated attribute values. 615 - by providing versioning and negotiation so as to enable 616 future implementations of IPP to interoperate with 617 implementations of version 1.0 of IPP. 619 3.4. FIREWALLS 621 As stated in the end-user wants and needs section, Internet 622 printing shall by definition support printing from one enterprise 623 to another. As such, the Internet printing protocol must be 624 capable of passing through firewalls and/or proxy servers (where 625 enabled by the firewall administrator) preferably without 626 modification to the existing firewall technology. 628 3.5. INTERNATIONALIZATION 630 Expires: Dec 30, 1998 631 Copyright(C) The Internet Society 1998. All Rights Reserved. 633 Users of Internet printing will come from all over the world. As 634 such, where appropriate, internationalization and localization 635 will be enabled for the protocol. 637 Expires: Dec 30, 1998 638 Copyright(C) The Internet Society 1998. All Rights Reserved. 640 4. IPP SCENARIOS 642 Each of the scenarios in this section describes a specific IPP 643 operation, such as submitting a print job. Section 9.0 contains 644 several detailed flows for each scenario to provide additional 645 detail. The examples should not be considered exhaustive, but 646 illustrative of the functions and features required in the 647 protocol. Flows are intended to be protocol neutral. It is not 648 assumed that all of the functions and features described in these 649 scenarios will necessarily be supported directly by IPP or in 650 version 1.0 of IPP. 652 See the IPP Model and Semantics document for details on 653 configurations of clients, servers and firewalls. 655 Expires: Dec 30, 1998 656 Copyright(C) The Internet Society 1998. All Rights Reserved. 658 4.1. PRINTER DISCOVERY 660 Client Directory 661 Service Service 663 +----------------------------------------------------------- > 664 give me information on printers with these characteristics 666 < -----------------------------------------------------------+ 667 Information on Printers matching these characteristics 669 The objective of printer discovery is to locate printers that 670 meet the client's wants and needs. The Directory Service should 671 provide enough information for the client to make an initial 672 choice. The client may have to connect to each individual Printer 673 offered to get more detail. Not all information available from 674 the Directory Service is obtained using IPP; some information may 675 be administratively provided. 677 The actual protocol used between client and Directory or Name 678 Service is considered outside the scope of IPP. Printer Discover 679 is included in the scenarios to provide design goals for the 680 directory schema for IPP Printers and to further define Printer 681 attributes. 683 Characteristics that might be considered when locating a Printer 684 include: 686 - capabilities of the Printer, e.g. PDLs supported 687 - physical location, e.g. in building 010 688 - driver required and location 689 - cost per page to print (outside the scope of IPP) 690 - whether or not printer is access controlled 691 - whether or not usage requires client authentication 692 - whether or not Printer can be authenticated 693 - whether or not payment is required for printing (outside the 694 scope of IPP) 695 - maximum job size (spool size) (outside the scope of IPP) 696 - whether or not Printer support compression (outside the scope 697 of IPP) 698 - whether or not Printer supports encryption 699 - administrative limits on this Printer 701 Expires: Dec 30, 1998 702 Copyright(C) The Internet Society 1998. All Rights Reserved. 704 - maximum number of copies per job 705 - maximum number of pages per job 707 Responses could additionally include: 709 - how to get more information 710 - web page 711 - telephone number 712 - help desk 714 4.2. DRIVER INSTALLATION 716 Client Printer 718 +----------------------------------------------------------- > 719 Where can I find a driver & software to install it? 721 < -----------------------------------------------------------+ 722 URIs for drivers and install software 724 Driver here refers to the code installed in some client operating 725 system to generate the print data stream for the intended 726 printer. The actual details for installing a printer driver are 727 operating system dependent and are also outside the scope of IPP. 728 However, an IPP printer or a directory service advertising an IPP 729 Printer should be capable of telling a client what drivers are 730 available and /or required, where they can be found, and provide 731 pointers to installation instructions, installation code or 732 initialization strings required to install the driver. See 733 section 3.1 (SECURITY CONSIDERATIONS) for security implications 734 of driver download and installation. 736 4.3. SUBMITTING A PRINT JOB 738 Client IPP Printer 740 +----------------------------------------------------------- > 741 Here is a Print Job 742 - Job attributes 743 - Print data 745 Expires: Dec 30, 1998 746 Copyright(C) The Internet Society 1998. All Rights Reserved. 748 < -----------------------------------------------------------+ 749 Response 751 The protocol must support these sources of client data: 753 - Print data is a file submitted with the job 754 - Print data is generated on the fly by an application 755 - Print data is a file referenced by a URI 757 The protocol must handle overrun conditions in the printer and 758 must support overlapped printing and downloading of the file in 759 devices that are unable to spool files before printing them. 761 Every print request will have a response. Responses will indicate 762 success or failure of the request and provide information on 763 failures when they occur. Responses would include things like: 765 - Got the print job and queued it 766 - Got the print job and am printing it 767 - Got the print job, started to print it, but printing failed 768 - why it failed (e.g. unrecoverable PostScript error) 769 - state of the printer 770 - how much printed 771 - Got the print job but couldn't print it 772 - why it can't be printed 773 - state of the printer 774 - Got the print job but don't know what to do with it 775 - Didn't get a complete print job (e.g. communication failure) 777 4.4. GETTING STATUS/CAPABILITIES 779 Client IPP Printer 781 +----------------------------------------------------------- > 782 Get status and/or capabilities of Printer 784 < -----------------------------------------------------------+ 785 Status/Capabilities 787 Clients will need to get information about 789 Expires: Dec 30, 1998 790 Copyright(C) The Internet Society 1998. All Rights Reserved. 792 - Static capabilities of the device 793 - Dynamic state of the Printer (e.g. out of paper) 794 - State of a specific job owned by this client 795 - State of all jobs owned by this client 796 - queued 797 - printing 798 - completed 799 - Job submission attributes supported/required 800 - scheduling attributes (e.g. priority) 801 - production attributes (e.g. number of copies) 803 4.5. ASYNCHRONOUS NOTIFICATION 805 Client IPP Printer 807 +----------------------------------------------------------- > 808 Use the following method to notify me of Printer events 810 . 811 . 812 . 813 < -----------------------------------------------------------+ 814 Asynchronous notification of Printer event 816 Clients must be able to request asynchronous notification for 817 Printer events such as 819 - job completion 820 - a fatal error that requires the job to be resubmitted 821 - a condition that severely impacts a queued job for this client 822 e.g. printer is out of paper 824 Note: end-user notification is a V1.0 design goal while operator 825 notification is for V2.0. 827 4.6. JOB CANCELING 829 Client IPP Printer 831 Expires: Dec 30, 1998 832 Copyright(C) The Internet Society 1998. All Rights Reserved. 834 +----------------------------------------------------------- > 835 Cancel the named job as indicated 837 < -----------------------------------------------------------+ 838 Response (did it or not) 840 Similarly clients must be able to make changes to jobs which have 841 been submitted and are queued for printing. Changing of job 842 attributes should also be supported. Job modifications, holding 843 and releasing of jobs are not included in the design goals for 844 IPP v1.0. 846 Expires: Dec 30, 1998 847 Copyright(C) The Internet Society 1998. All Rights Reserved. 849 5. COPYRIGHT 851 Copyright(C) The Internet Society 1997. All Rights Reserved. 853 This document and translations of it may be copied and furnished 854 to others, and derivative works that comment on or otherwise 855 explain it or assist in its implementation may be prepared, 856 copied, published and distributed, in whole or in part, without 857 restriction of any kind, provided that the above copyright notice 858 and this paragraph are included on all such copies and derivative 859 works. However, this document itself may not be modified in any 860 way, such as by removing the copyright notice or references to 861 the Internet Society or other Internet organizations, except as 862 needed for the purpose of developing Internet standards in which 863 case the procedures for copyrights defined in the Internet 864 Standards process must be followed, or as required to translate 865 it into languages other than English. 867 The limited permissions granted above are perpetual and will not 868 be revoked by the Internet Society or its successors or assigns. 870 This document and the information contained herein is provided on 871 an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET 872 ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR 873 IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE 874 OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY 875 IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR 876 PURPOSE." 878 Expires: Dec 30, 1998 879 Copyright(C) The Internet Society 1998. All Rights Reserved. 881 6. REFERENCES 883 RFC1179 - Line Printer Daemon Protocol 885 RFC1759 - Printer MIB 887 ISO/IEC 10175, Document Printing Application 889 [IPP LPD] 890 Herriot, R., Hastings, T., Jacobs, N., Martin, J., 891 "Mapping between LPD and IPP Protocols", 892 draft-ietf-ipp-lpd-ipp-map-04.txt, June 1998. 894 [IPP-MOD] 895 Isaacson, S., deBry, R., Hastings, T., Herriot, R., Powell, P., 896 "Internet Printing Protocol/1.0: Model and Semantics" 897 draft-ietf-ipp-mod-10.txt, June, 1998. 899 [IPP-PRO] 900 Herriot, R., Butler, S., Moore, P., Tuner, R., 901 "Internet Printing Protocol/1.0: Encoding and Transport", 902 draft-ietf-ipp-pro-06.txt, June, 1998. 904 [IPP-RAT] 905 Zilles, S., "Rationale for the Structure and Model and Protocol 906 for the Internet Printing Protocol", 907 draft-ietf-ipp-rat-03.txt, June, 1998. 909 [IPP-REQ] 910 (this document) 912 Expires: Dec 30, 1998 913 Copyright(C) The Internet Society 1998. All Rights Reserved. 915 7. ACKNOWLEDGMENTS 917 This document draws heavily from preliminary work done by others 918 especially in the Printer Working Group (PWG). The author 919 gratefully acknowledges the specific contributions of: 921 Scott Isaacson Roger Debry 922 Novell IBM 923 sisaacson@novell.com rdebry@us.ibm.com 925 Carl-Uno Manros Robert Herriot 926 Xerox Sun 927 manros@cp10.es.xerox.com Robert.Herriot@eng.sun.com 929 Tom Hastings Peter Zehler 930 Xerox Xerox 931 hastings@cp10.es.xerox.com Peter.Zehler@usa.xerox.com 933 8. AUTHOR'S ADDRESS 935 F.D. (Don) Wright 936 Lexmark International 937 C14/035-3 938 740 New Circle Rd 939 Lexington, KY 40550 941 Phone: 606-232-4808 942 Fax: 606-232-6740 943 E-mail: don@lexmark.com 945 Expires: Dec 30, 1998 946 Copyright(C) The Internet Society 1998. All Rights Reserved. 948 9. APPENDIX - DETAILED SCENARIOS 950 The following are more detailed scenarios illustrating how the 951 Internet Printing Protocol is expected to be used as a part of a 952 complete Internet Printing system. Some parts of the scenarios 953 include concepts, functions and information that may be outside 954 of the scope of version 1.0 of IPP (e.g. cost per page, payments 955 means available, etc.) The information contained herein is meant 956 to be generic. There may not be an exact wording or terminology 957 match between these scenarios and the implementation documents. 959 9.1. PRINTER DISCOVERY WITHIN AN ENTERPRISE 961 A user wants to find a color Postscript printer in his/her 962 enterprise which will print transparencies. The client, 963 directory service, and printer are all behind the same corporate 964 firewall. Because color foils are expensive, printers of this 965 type are access controlled and require an account to be 966 established so that printing can be billed back to the using 967 department. Note the request to find a printer usable by Dept. 968 J15. Drivers for all supported printers are available from the 969 server they are associated with. A help desk is provided for end 970 user support. The printer is unattended. 972 Client Directory Service 974 +---------------------------------------------------------- > 975 Find a printer with these characteristics 976 - prints color, prints transparencies 977 - prints Postscript 978 - is in building 003 979 - accessible by the client 981 < ----------------------------------------------------------+ 982 Printer "Color-A" 983 - prints color, prints transparencies 984 - prints Postscript 985 - in room H-6, building 003 986 - driver ABC-Postscript-V1.3 required, here is URI 987 - cost is $.45 per page for color transparencies 988 - limit is 10 pages per job 989 - authentication required to use printer 991 Expires: Dec 30, 1998 992 Copyright(C) The Internet Society 1998. All Rights Reserved. 994 - printer is unattended 995 - help desk at x5001 997 Printer "Color-B" 998 - prints color, prints transparencies 999 - prints Postscript 1000 - in room J-10, building 003 1001 - driver XYZ-Postscript-V2.4 required, here is URI 1002 - cost is $1.25 page for color transparencies 1003 - limit is 5 pages per job 1004 - authentication is required to use printer 1005 - printer is unattended 1006 - help desk at x5001 1008 Expires: Dec 30, 1998 1009 Copyright(C) The Internet Society 1998. All Rights Reserved. 1011 9.2. PRINTER DISCOVERY ACROSS ENTERPRISES 1013 A user in Company A wants to find a public printer in a business 1014 partner's enterprise (Company B) on which to print a purchase 1015 order. The client is behind one corporate firewall and the 1016 directory service and the printer are behind a different 1017 corporate firewall. Drivers for all supported printers are 1018 available from the server they are associated with. A web page is 1019 provided for end user support for public printers. 1021 Client Company B Directory Service 1023 +---------------------------------------------------------- > 1024 Find a printer with these characteristics 1025 - prints black and white 1026 - is in El Segundo, building A 1027 - is a public printer 1029 < ----------------------------------------------------------+ 1030 Printer "Public-A" 1031 - prints black and white 1032 - prints Postscript 1033 - in El Segundo, room H-6, building A 1034 - driver ABC-Postscript-V1.3 required, here is URI 1035 - printer is public 1036 - help available at http://xerox/elSegundo/publicPrinters 1038 Printer "Public-B" 1039 - prints black and white 1040 - prints PCL/5e 1041 - is in El Segundo, room J-10, building A 1042 - driver XYZ-PCL-V2.4 required, here is URI 1043 - printer is public 1044 - help available at http://xerox/elSegundo/publicPrinters 1046 Expires: Dec 30, 1998 1047 Copyright(C) The Internet Society 1998. All Rights Reserved. 1049 9.3. PRINTER DISCOVERY ON THE INTERNET -LOGICAL OPERATIONS 1051 A student wants to print a paper on a printer at his neighborhood 1052 Ink-o's print shop. The report was written using Microsoft Word. 1053 The student is interested in the cost of printing since his 1054 budget is limited. Note the use of logical operators to find this 1055 information. 1057 Client Ink-o's Directory Service 1059 +---------------------------------------------------------- > 1060 Find a Printer with these characteristics 1061 - prints color or black and white 1062 - costs less than $.50 per page 1063 - tell me about resolution and marking technology 1065 < ----------------------------------------------------------+ 1066 Printer "Color-A" 1067 - prints color 1068 - 600 dpi laser printer 1069 - prints Postscript 1070 - driver ABC-Postscript-V1.3 required, here is URI 1071 - cost is $.50 per page for color 1072 - payment required prior to submitting print job 1073 - here is URI for more information on Ink-o's 1075 Printer "Mono-B" 1076 - prints black and white 1077 - 300 dpi inkjet printer 1078 - prints Postscript 1079 - driver XYZ-Postscript-V2.4 required, here is URI 1080 - cost is $0.35 page for black and white 1081 - payment required prior to submitting print job 1082 - here is URI for more information on Ink-o's 1084 Expires: Dec 30, 1998 1085 Copyright(C) The Internet Society 1998. All Rights Reserved. 1087 9.4. PRINTER DISCOVERY ON THE INTERNET - AUTHENTICATION 1089 An executive in her hotel room is finishing an important 1090 presentation on her laptop computer. She connects to a local 1091 print shop through the web to get a copy of her charts printed 1092 for tomorrow's presentation. She must find a print shop that is 1093 convenient to her hotel and can print color transparencies. She 1094 wants to be sure that the printer can be authenticated and can 1095 accept encrypted data. 1097 Client SirZippy Directory Service 1099 +---------------------------------------------------------- > 1100 Find a Printer with these characteristics 1101 - prints color transparencies 1102 - is in Boulder, Colorado 1103 - Printer can be authenticated 1104 - Printer supports encryption 1106 Tell me when you are open for business 1108 < ----------------------------------------------------------+ 1109 Printer "Color-A" 1110 - prints color transparencies 1111 - prints Postscript 1112 - driver ABC-Postscript-V1.3 required, here is URI 1113 - payment required prior to submitting print job 1114 - Printer can be authenticated 1115 - Data can be encrypted 1116 - Located at 1670 Pearl Street, Boulder, CO 1117 - This Branch is open 24 hours a day 1119 Printer "Color-B" 1120 - prints color transparencies 1121 - prints Postscript 1122 - driver ABC-Postscript-V1.3 required, here is URI 1123 - payment required prior to submitting print job 1124 - Printer can be authenticated 1125 - Data can be encrypted 1127 Expires: Dec 30, 1998 1128 Copyright(C) The Internet Society 1998. All Rights Reserved. 1130 - Located at 1220 Arapahoe, Boulder, CO 1131 - This Branch is open from 9:00am to 6:30pm 1133 Expires: Dec 30, 1998 1134 Copyright(C) The Internet Society 1998. All Rights Reserved. 1136 9.5. DRIVER DOWNLOAD 1138 An end user in an enterprise wants to print a lengthy report on a 1139 newly installed high speed PostScript printer. Since she will 1140 likely use this printer often, she would like to download a 1141 driver and install it on her workstation. She is running Windows 1142 95. Note: Driver download is not a V1.0 design goal. 1144 Client IPP Printer 1146 +---------------------------------------------------------- > 1147 Tell me where to find print drivers for you 1149 < ----------------------------------------------------------+ 1150 Driver install file is at 1151 http://www.ibm.com/drivers/NP12a/Win95 1153 Expires: Dec 30, 1998 1154 Copyright(C) The Internet Society 1998. All Rights Reserved. 1156 9.6. SUBMITTING A PRINT JOB AS A FILE 1158 An end-user wants to submit a print job. The print file already 1159 exists on his workstation. The client and printer are behind the 1160 same corporate firewall. The printer is available to anyone 1161 behind the firewall and no authorization or authentication is 1162 required. The data is pushed to the printer. The printer is 1163 capable of spooling the output. No errors occur. 1165 Client IPP Printer 1167 +---------------------------------------------------------- > 1168 Here is a print job 1169 - job name = MyJob 1170 - notify me by email when done printing 1171 - print on iso-a4-white paper 1172 - print on both sides of the paper 1173 - return status of the printer in response 1174 - document is in Postscript format 1175 - here is the document to print 1177 < ----------------------------------------------------------+ 1178 Print job accepted and spooled 1179 - job id = #12345 1180 - current state of print job = spooled 1181 - submission time = 02/12/97, 15:35 1182 - printer state = printing 1184 Expires: Dec 30, 1998 1185 Copyright(C) The Internet Society 1998. All Rights Reserved. 1187 9.7. SUBMITTING A PRINT JOB WITH TWO DOCUMENTS 1189 An end-user wants to submit a print job. The print file already 1190 exists on his workstation. The client and printer are behind the 1191 same corporate firewall. The printer is available to anyone 1192 behind the firewall and no authorization or authentication is 1193 required. The data is pushed to the printer. The job consists of 1194 two separate documents. The printer is capable of spooling the 1195 output. No errors occur. 1197 Client IPP Printer 1199 +---------------------------------------------------------- > 1200 Here is a print job 1201 - job name = MyJob 1202 - notify me by email when done printing 1203 - print on iso-a4-white paper 1204 - print on both sides of the paper 1205 - return status of the printer in response 1207 < ----------------------------------------------------------+ 1208 Print job accepted and spooled 1209 - job id = #12345 1210 - submission time = 02/12/97, 15:35 1211 +---------------------------------------------------------- > 1212 - here is the document to print 1214 < ----------------------------------------------------------+ 1215 - OK 1217 +---------------------------------------------------------- > 1218 - here is the document to print, it is the last document. 1220 < ----------------------------------------------------------+ 1221 - OK 1223 Expires: Dec 30, 1998 1224 Copyright(C) The Internet Society 1998. All Rights Reserved. 1226 9.8. SUBMITTING A PRINT JOB AS A FILE, PRINTING FAILS 1228 An end-user wants to submit a print job. The print file already 1229 exists on his workstation. The client and printer are behind the 1230 same corporate firewall. The printer is available to anyone 1231 behind the firewall and no authorization or authentication is 1232 required. The data is pushed to the printer. The printer is not 1233 capable of spooling the output so it begins printing while still 1234 receiving the file. An error occurs and the printer cannot 1235 complete printing (in this case the user requires A4 paper and 1236 that paper size is not available on the printer.) 1238 Client IPP Printer 1240 +---------------------------------------------------------- > 1241 Here is a print job 1242 - job name = MyJob 1243 - notify me by email when done printing 1244 - print on iso-a4-white paper 1245 - print on both sides of the paper 1246 - return status of the printer in response 1247 - document is in Postscript format 1248 - here is the document to print 1250 < ----------------------------------------------------------+ 1251 Print job accepted 1253 - printing failed 1254 - current state of print job = canceled (A4 not available) 1255 - submission time = 02/12/97, 15:35 1256 - printer state = ready 1258 9.9. SUBMITTING A PRINT JOB WITH AUTHENTICATION, PRIVACY AND 1259 PAYMENT 1261 A traveling executive needs to print a set of transparencies for 1262 an important business meeting. The charts are in Lotus Freelance 1263 format on his notebook computer. He has located a SirZippy print 1264 shop near his hotel that will print color transparencies. Because 1265 the information on the charts is sensitive, he wants to be sure 1266 that his data is sent to the Printer in an encrypted format. He 1267 also wants to authenticate the Printer. The Printer also 1268 authenticates the user. Payment occurs across the Internet. 1270 Expires: Dec 30, 1998 1271 Copyright(C) The Internet Society 1998. All Rights Reserved. 1273 Client IPP Printer 1275 +---------------------------------------------------------- > 1276 < ----------------------------------------------------------+ 1278 Mutual authentication and exchange of secret keys 1280 +---------------------------------------------------------- > 1281 Here is a print job (encrypted) 1282 - job name = MyJob 1283 - notify me by email when done printing 1284 - print on iso-a4-white paper 1285 - print on both sides of the paper 1286 - return status of the printer in response 1287 - tell me where to pick up output 1288 - document is in Postscript format 1289 - here is the document to print 1291 < ----------------------------------------------------------+ 1292 Print job accepted and spooled (encrypted) 1293 - job id = #12345 1294 - current state of print job = spooled 1295 - submission time = 02/12/97, 15:35 1296 - printer state = printing 1297 - payment required to proceed with job 1298 - pick up at 230 East Main after 3:30pm today 1300 +---------------------------------------------------------- > 1301 < ----------------------------------------------------------+ 1302 Payment transaction 1304 Expires: Dec 30, 1998 1305 Copyright(C) The Internet Society 1998. All Rights Reserved. 1307 9.10. SUBMITTING A PRINT JOB WITH DECRYPTION ERROR 1309 A traveling executive needs to print a set of transparencies for 1310 an important business meeting. The charts are in Lotus Freelance 1311 format on his notebook computer. He has located a SirZippy print 1312 shop near his hotel that will print color transparencies. Because 1313 the information on the charts is sensitive, he wants to be sure 1314 that his data is sent to the printer in an encrypted format. He 1315 also wants to authenticate the printer. The printer also 1316 authenticates the user. Payment occurs across the Internet. An 1317 error occurs during decryption. 1319 Client IPP Printer 1321 +---------------------------------------------------------- > 1322 < ----------------------------------------------------------+ 1323 Mutual authentication and exchange of secret keys 1325 +---------------------------------------------------------- > 1326 Here is a print job (encrypted) 1327 - job name = MyJob 1328 - notify me by email when done printing 1329 - print on iso-a4-white paper 1330 - print on both sides of the paper 1331 - return status of the printer in response 1332 - tell me where to pick up output 1333 - document is in Postscript format 1334 - here is the document to print 1336 < ----------------------------------------------------------+ 1337 Print job accepted and spooled (encrypted) 1338 - job id = #12345 1339 - current state of print job = spooled 1340 - submission time = 02/12/97, 15:35 1341 - printer state = printing 1342 - payment required to proceed with job 1343 - pick up at 230 East Main after 3:30pm today 1345 +---------------------------------------------------------- > 1346 < ----------------------------------------------------------+ 1347 Payment transaction 1348 . 1350 Expires: Dec 30, 1998 1351 Copyright(C) The Internet Society 1998. All Rights Reserved. 1353 . 1354 . 1355 < ----------------------------------------------------------+ 1356 Asynchronous response (email in this case) 1357 - decryption failed on job #12345 1358 - no pages printed 1359 - current state of job = aborted 1361 Expires: Dec 30, 1998 1362 Copyright(C) The Internet Society 1998. All Rights Reserved. 1364 9.11. SUBMITTING A PRINT JOB WITH AUTHENTICATION 1366 An end-user wants to submit a print job. The print file already 1367 exists on his workstation. The client and printer are behind the 1368 same corporate firewall. The printer is available to anyone 1369 behind the firewall but authentication and authorization is 1370 required. Authorization takes place using the authenticated end- 1371 user's name. The data is pushed to the printer. The printer is 1372 capable of spooling the output. 1374 Client IPP Printer 1376 +---------------------------------------------------------- > 1377 < ----------------------------------------------------------+ 1378 Authentication 1380 Note: An authentication failure would end the transaction at 1381 this point. 1383 +---------------------------------------------------------- > 1384 Here is a print job 1385 - job name = MyJob 1386 - notify me by email when done printing 1387 - print on iso-a4-white paper 1388 - print on both sides of the paper 1389 - return status of the printer in response 1390 - tell me where to pick up output 1391 - document is in Postscript format 1392 - here is the document to print 1394 < ----------------------------------------------------------+ 1395 Print job accepted and spooled 1396 - job id = #12345 1397 - current state of print job = spooled 1398 - submission time = 02/12/97, 15:35 1399 - printer state = printing 1401 Expires: Dec 30, 1998 1402 Copyright(C) The Internet Society 1998. All Rights Reserved. 1404 9.12. SUBMITTING A PRINT JOB GENERATED DYNAMICALLY 1406 An end-user wants to submit a print job. The print data is 1407 generated dynamically and is being transmitted by a printer 1408 driver on the client workstation as available. The client and 1409 printer are behind the same corporate firewall. The printer is 1410 available to anyone behind the firewall and no authentication and 1411 authorization is required. The data is pushed to the printer. The 1412 printer is capable of spooling the output. No error occurs. 1414 Client IPP Printer 1416 +---------------------------------------------------------- > 1417 Here is a print job 1418 - job name = MyJob 1419 - notify me by email when done printing 1420 - print on iso-a4-white paper 1421 - print on both sides of the paper 1422 - return status of the printer in response 1423 - document is in Postscript format 1424 - here is the print job 1426 < ----------------------------------------------------------+ 1427 Print data accepted and spooling started 1428 - job id = #12345 1429 - current job state = spooled 1430 - submission time = 02/12/97, 15:35 1431 - printer state = printing 1433 Expires: Dec 30, 1998 1434 Copyright(C) The Internet Society 1998. All Rights Reserved. 1436 9.13. SUBMITTING A PRINT JOB WITH A PRINTER JAM - CANCELED 1438 An end-user wants to submit a print job. The print data is 1439 generated dynamically and is being transmitted by a printer 1440 driver on the client workstation as available. The client and 1441 printer are behind the same corporate firewall. The printer is 1442 available to anyone behind the firewall and no authentication and 1443 authorization is required. The data is pushed to the printer. The 1444 printer is not capable of spooling the output. The printer jams 1445 notifies the user and the user chooses to cancel the job. 1447 Client IPP Printer 1448 +---------------------------------------------------------- > 1449 Here is a print job 1450 - job name = MyJob 1451 - notify me by email when done printing 1452 - print on iso-a4-white paper 1453 - print on both sides of the paper 1454 - return status of the printer in response 1455 - document is in Postscript format 1456 - here is the document to print 1458 < ----------------------------------------------------------+ 1459 Print data accepted and printing started 1460 - job id = #12345 1462 +---------------------------------------------------------- > 1463 - What is the status of print job #12345? 1465 < --------------------------------------------------------- + 1466 - Job #12345 accepted but printer jammed, cannot continue 1468 +---------------------------------------------------------- > 1469 - Cancel job #12345 1471 * Printer flushes remaining data 1472 < ----------------------------------------------------------+ 1473 Print job terminated 1474 - current job state = canceled 1475 - submission time = 02/12/97, 15:35 1476 - printer state = jammed 1478 Expires: Dec 30, 1998 1479 Copyright(C) The Internet Society 1998. All Rights Reserved. 1481 9.14. SUBMITTING A PRINT JOB WITH A PRINTER JAM - RECOVERED 1483 An end-user wants to submit a print job. The print data is 1484 generated dynamically and is being transmitted by a printer 1485 driver on the client workstation as available. The client and 1486 printer are behind the same corporate firewall. The printer is 1487 available to anyone behind the firewall and no authentication and 1488 authorization is required. The data is pushed to the printer. The 1489 printer is not capable of spooling the output. The printer jams, 1490 notifies the user and the user clears the jam and elects to 1491 continue. 1493 Client IPP Printer 1495 +---------------------------------------------------------- > 1496 Here is a print job 1497 - job name = MyJob 1498 - notify me by email when done printing 1499 - print on iso-a4-white paper 1500 - print on both sides of the paper 1501 - return status of the printer in response 1502 - document is in Postscript format 1503 - here is the document to print 1505 < ----------------------------------------------------------+ 1506 Print data accepted and printing started 1507 - job id = #12345 1509 < --------------------------------------------------------- + 1510 - Notification: printer jammed, cannot continue 1512 * Jam is clear by human intervention, printing continues 1514 +---------------------------------------------------------- > 1515 Here is the last part of the document to print 1517 < ----------------------------------------------------------+ 1518 Print job received 1519 - current job state = printing 1520 - submission time = 02/12/97, 15:35 1521 - printer state = printing 1523 Expires: Dec 30, 1998 1524 Copyright(C) The Internet Society 1998. All Rights Reserved. 1526 9.15. SUBMITTING A PRINT JOB WITH SERVER PULL 1528 An end-user wants to submit a print job. The print data is in a 1529 file and is publicly available. It is pulled by the printer. The 1530 client and printer are behind the same corporate firewall. The 1531 printer is available to anyone behind the firewall and no 1532 authentication and authorization is required. The printer is 1533 capable of spooling the output. Printing may start before the 1534 entire job has been pulled. 1536 Client IPP Printer 1538 +---------------------------------------------------------- > 1539 Here is a print job 1540 - job name = MyJob 1541 - notify me by email when done printing 1542 - print on iso-a4-white paper 1543 - print on both sides of the paper 1544 - return status of the printer in response 1545 - here is a reference to the data to be printed 1547 < ----------------------------------------------------------+ 1548 Print data accepted and printing started 1549 - job id = #12345 1550 - current state of job = spooled 1551 - submission time = 02/12/97, 13:15 1552 - printer state = printing 1554 . 1555 . 1556 < ----------------------------------------------------------+ 1557 Get the file to be printed 1559 +---------------------------------------------------------- > 1560 Here it is 1562 Note: Failure to find the file, would end the transaction 1563 with an error at this point and an asynchronous 1564 notification would be send to the Client. 1566 < ----------------------------------------------------------+ 1567 Data received 1569 Expires: Dec 30, 1998 1570 Copyright(C) The Internet Society 1998. All Rights Reserved. 1572 9.16. SUBMITTING A PRINT JOB WITH REFERENCED RESOURCES 1574 An end-user wants to submit a print job. Part of the print data 1575 is on a file on the user's workstation. It is pushed by the 1576 client, but the print job requires some resource not included in 1577 the print file. The client and printer are behind the same 1578 corporate firewall. The printer is available to anyone behind the 1579 firewall and no authentication and authorization is required. The 1580 printer is capable of spooling the output. No errors occur. 1582 Client IPP Printer 1584 +---------------------------------------------------------- > 1585 Here is a print job 1586 - job name = MyJob 1587 - notify me by email when done printing 1588 - print on iso-a4-white paper 1589 - print on both sides of the paper 1590 - return status of the printer in response 1592 < ----------------------------------------------------------+ 1593 Print job accepted and spooled 1594 - job id = #12345 1595 - submission time = 02/12/97, 15:35 1597 +---------------------------------------------------------- > 1598 - here is the document to print 1600 < ----------------------------------------------------------+ 1601 - OK 1603 +---------------------------------------------------------- > 1604 - here is the URI to print, it is the last document. 1606 < ----------------------------------------------------------+ 1607 - OK 1609 < ----------------------------------------------------------+ 1610 Get the external resource 1612 +---------------------------------------------------------- > 1613 Here it is 1615 Expires: Dec 30, 1998 1616 Copyright(C) The Internet Society 1998. All Rights Reserved. 1618 9.17. GETTING CAPABILITIES 1619 9.17.1. Submission Attributes 1621 An end-user wants to get the production and scheduling attributes 1622 that are supported or required when submitting jobs to this 1623 printer. The client will use these attributes when forming the 1624 subsequent print request. 1626 Client IPP Printer 1627 +---------------------------------------------------------- > 1628 I'm going to submit a Postscript job 1629 give me your job submission attributes 1631 < ----------------------------------------------------------+ 1632 Postscript production attributes for this Printer are: 1633 - medium-select = us-letter-white, us-legal-white 1634 - default is us-letter-white 1635 - copies = 1,2,3,4,5 1636 - default is 1 1637 - print-quality = draft, normal, high 1638 - default is draft 1639 - sides = 1-sided, 2-sided-long-edge 1640 - default is 2-sided-long-edge 1641 - Job scheduling attributes for this Printer are: 1642 - job-priority = 1,2,3 1643 - default = 3 1645 9.17.2. Printer Capabilities 1647 An end-user wants to determine the resolution, marking 1648 technology, and PDLs supported by the printer. 1650 Client IPP Printer 1651 +---------------------------------------------------------- > 1652 Please tell me the 1653 - resolution of the printer 1654 - the marking technology of the printer 1655 - PDLs supported 1656 < ----------------------------------------------------------+ 1657 Printer resolution = 600 dpi 1658 Marking Technology = laser 1659 PDLS supported = Postscript level 2, PCL/6 1661 Expires: Dec 30, 1998 1662 Copyright(C) The Internet Society 1998. All Rights Reserved. 1664 9.18. GETTING STATUS 1665 9.18.1. Printer State/Status 1667 An end-user wants to determine the state or status of the 1668 printer. 1670 Client IPP Printer 1672 +---------------------------------------------------------- > 1673 What is the state of the printer? 1675 < ----------------------------------------------------------+ 1676 Printer state = out-of-paper 1678 9.18.2. Job Status 1680 An end user wants to get the status of a job he has submitted. 1682 Client IPP Printer 1684 +---------------------------------------------------------- > 1685 Please tell me the status of job #12345 1687 < ----------------------------------------------------------+ 1688 Job #12345 is queued 1689 it is number 3 in the queue 1690 printer state = printing 1692 9.18.3. Status of All My Jobs 1694 An end user wants to get a list of all of the jobs he has 1695 submitted to this Printer. 1697 Client IPP Printer 1699 +---------------------------------------------------------- > 1700 Please tell me the status of my jobs 1702 < ----------------------------------------------------------+ 1703 Job #00012 is complete 1704 Printed at 12:35 on 01/23/97 1706 Expires: Dec 30, 1998 1707 Copyright(C) The Internet Society 1998. All Rights Reserved. 1709 Job #09876 is printing 1711 Job #12345 is queued 1712 it is number 3 in the queue 1714 Job #34567 is queued 1715 it is number 7 in the queue 1717 Expires: Dec 30, 1998 1718 Copyright(C) The Internet Society 1998. All Rights Reserved. 1720 9.19. ASYNCHRONOUS NOTIFICATION 1721 9.19.1. Job Completion 1723 An end-user wants to get notification of events that affect his 1724 print jobs. Print job completes without error. 1726 Client IPP Printer 1728 < ----------------------------------------------------------+ 1729 Print job #123 completed 1731 9.19.2. Job Complete with Data 1733 An end-user wants to get notification of events that affect his 1734 print jobs. Print job completes, users asked for all end of job 1735 information. 1737 Client IPP Printer 1739 < ----------------------------------------------------------+ 1740 Print job #123 completed 1741 - total pages printed = 15 1742 - number of copies printed = 3 1743 - total cost to print = $7.45 1744 - pick up copies in room H-6, building 005 1746 9.19.3. Print Job Fails 1748 An end-user wants to get notification of events that affect his 1749 print jobs. Print job fails. Printer is unattended. 1751 Client IPP Printer 1753 < ----------------------------------------------------------+ 1754 Print job #123 failed 1755 - total pages printed = 15 1756 - number of pages submitted = 25 1757 - printer-state = jammed 1759 Expires: Dec 30, 1998 1760 Copyright(C) The Internet Society 1998. All Rights Reserved. 1762 9.20. CANCEL A JOB 1764 The end-user submits a print job and later decides to cancel it. 1766 Client IPP Printer 1768 +---------------------------------------------------------- > 1769 < ----------------------------------------------------------+ 1770 Authentication. 1772 +---------------------------------------------------------- > 1773 Cancel job #1234 1775 < ----------------------------------------------------------+ 1776 Job #1234 Canceled 1778 Expires: Dec 30, 1998 1779 Copyright(C) The Internet Society 1998. All Rights Reserved. 1781 9.21. END TO END SCENARIO - WITHIN AN ENTERPRISE 1783 An office worker prints on shared departmental printers. All 1784 printers in the office are public, that is, no authentication or 1785 authorization is required. Printers are protected from external 1786 access by a firewall. No billing or accounting is required. Most 1787 printing is done from desktop applications. A help desk is 1788 provided for printing problems. Standard operating systems and 1789 applications are used. Drivers are available, but are installed 1790 manually by support personnel. This scenario assumes that drivers 1791 have been installed and that drivers are not IPP aware, that is, 1792 they cannot communicate across an IPP connection to obtain status 1793 and capabilities. IPP printers appear in application pull-down 1794 menus. Printer configuration data is hard wired into the driver. 1796 End-user selects print from the application pull down menu. An 1797 IPP printer is selected from the list of Printers offered 1799 The driver puts up a dialogue with hard-wired set of options 1800 for this printer. The end-user makes choices and submits job. 1802 Client IPP Printer 1803 +---------------------------------------------------------- > 1804 Here is a print job 1805 - job-name = memo-to-boss 1806 - notify me by email when job is complete 1807 - print on us-letter-white paper 1808 - print 1 copy 1809 - print at normal quality 1810 - print on 1 side 1811 - give me the state of the printer in response 1813 The driver generates the print data and passes it to the IPP 1814 driver a piece at a time as it is generated. 1816 +---------------------------------------------------------- > 1817 Here is the print data 1819 < ----------------------------------------------------------+ 1820 Print data received, file is spooled 1821 - printer state = printing 1822 - time submitted = 2/12/97, 15:35 1824 Expires: Dec 30, 1998 1825 Copyright(C) The Internet Society 1998. All Rights Reserved. 1827 - current job state = spooled 1829 Client adds this job to list of current jobs. List of jobs and 1830 state of each is available on a pull-down menu on the client. 1832 End-user selects job #1234 from list and clicks on it to see its 1833 status. 1835 +---------------------------------------------------------- > 1836 Give me the state of job #1234 1837 and the state of the Printer 1839 < ----------------------------------------------------------+ 1840 Job #1234 state = spooled 1841 - it is number 3 in the queue 1842 - printer state = printing 1844 The job completes without error 1846 < ----------------------------------------------------------+ 1847 Job #1234 completed 1848 12 of 12 pages printed 1850 Expires: Dec 30, 1998 1851 Copyright(C) The Internet Society 1998. All Rights Reserved. 1853 9.22. END TO END SCENARIO - ACROSS ENTERPRISES 1855 An office worker in Company A needs to print an office document 1856 on a "public" printer at Company B, a business partner. Both 1857 companies have corporate firewalls so the print request must flow 1858 out of A's firewall and into B's firewall. The office worker can 1859 look at public printers in Company B's directory service. The 1860 document is generated by a desktop application. Since the printer 1861 is "public" no authentication or authorization is required. A 1862 driver is downloaded. The driver is IPP aware, that is, it can 1863 communicate dynamically through the IPP protocol layer to obtain 1864 information about the printer. 1866 Client Company B's Directory Service 1868 End user connects to B's Directory service 1870 +---------------------------------------------------------- > 1871 Find a Printer with these characteristics 1872 - public (no authorization or authentication required) 1873 - is in Lexington, building 004 1874 - prints black and white 1876 < ----------------------------------------------------------+ 1877 Printer "Public-A" 1878 - http://www.lexmark.com/pubprinter/a 1880 Printer "Public-B" 1881 - http://www.lexmark.com/pubprinter/b 1883 End user selects Public-A 1885 Client Public-A 1887 +---------------------------------------------------------- > 1888 Where can I find a driver for you? 1890 < ----------------------------------------------------------+ 1891 Drivers at http://www.lexmark.com/pubprinters/a/os245 1893 End user gets driver and installs it on his PC. 1895 Expires: Dec 30, 1998 1896 Copyright(C) The Internet Society 1998. All Rights Reserved. 1898 End-user selects print from the application pull down menu. 1899 "Public-A" is selected from the list of Printers offered 1901 +---------------------------------------------------------- > 1902 I'm going to submit a print job 1903 give me your job submission attributes 1905 < ----------------------------------------------------------+ 1906 Production attributes for this Printer are: 1907 - medium-select = us-letter-white, us-legal-white 1908 - default is us-letter-white 1909 - copies = 1,2,3,4,5 1910 - default is 1 1911 - print-quality = draft, normal, high 1912 - default is draft 1913 - sides = 1-sided, 2-sided-long-edge 1914 - default is 2-sided-long-edge 1916 Job scheduling attributes for this Printer are: 1917 - job-priority = 1,2,3 1918 default = 3 1920 Driver puts up dialogue with available options and fills in the 1921 defaults. 1923 End-user makes choices and submits job 1925 +---------------------------------------------------------- > 1926 Here is a print job 1927 - job-name = memo-to-Don-Wright 1928 - notify me by email when job is complete 1929 - print on us-letter-white paper 1930 - print 1 copy 1931 - print at normal quality 1932 - print on 1 side 1933 - give me the state of the printer in response 1935 The driver generates the print data and passes it to the IPP 1936 driver a piece at a time. 1938 +---------------------------------------------------------- > 1939 Here is the print data 1941 < ----------------------------------------------------------+ 1943 Expires: Dec 30, 1998 1944 Copyright(C) The Internet Society 1998. All Rights Reserved. 1946 Print data received, and spooling started 1947 print job id = #1234 1949 Print data received, file is spooled 1951 - printer state = printing 1952 - time submitted = 2/12/97, 15:35 1953 - current job state = spooled 1955 Client adds this job to list of current jobs. List of jobs and 1956 state of each is available on a pull-down menu on the client. 1958 End-user selects job #1234 from list and clicks on it to see its 1959 status. 1961 +---------------------------------------------------------- > 1962 Give me the state of job #1234 1963 and the state of the Printer 1965 < ----------------------------------------------------------+ 1966 Job #1234 state = spooled 1967 - it is number 3 in the queue 1968 - printer state = printing 1970 * The job completes without error 1971 < ----------------------------------------------------------+ 1972 Job #1234 completed 1973 12 of 12 pages printed 1975 Expires: Dec 30, 1998 1976 Copyright(C) The Internet Society 1998. All Rights Reserved. 1978 9.23. END TO END SCENARIO - ON THE INTERNET 1980 An executive in her hotel room is finishing an important 1981 presentation on her laptop computer. She connects to a local 1982 print shop through the web to get a copy of her charts printed 1983 for tomorrow's presentation. She must find a print shop that is 1984 convenient and can print color transparencies. She must download 1985 and temporarily install a driver in order to generate the PDL 1986 required by the print shop. Mutual authentication is required by 1987 the printshop and payment must be made in advance. The job is 1988 encrypted on the wire to prevent eavesdropping. 1990 End-user completes presentation. She goes to the web and connects 1991 to the SirZippy home page. 1993 Client SirZippy Directory Service 1994 +---------------------------------------------------------- > 1996 Find me a printer with these characteristics 1997 - Near Market Street in San Jose 1998 - Prints color transparencies 1999 - drivers can be downloaded 2000 - supports privacy (encryption) 2001 - 2003 Available Printers matching these characteristics are looked up 2004 in the Directory Service 2006 < ----------------------------------------------------------+ 2008 Printer "Color-A" 2009 - located at 123 First Street in San Jose 2010 - URI is http://www.SirZippy.com/FirstStreet/Color-A 2011 - prints color transparencies 2012 - 600 dpi laser 2013 - driver ABC-Postscript-V1.3 available at this URI 2014 - cost = $.75 per page 2015 - authentication required to use printer 2016 - payment required prior to printing 2018 Printer "Color-B" 2019 - located at 67 San Carlos Street, San Jose 2020 - URI is http://www.SirZippy.com/SanCarlos/Color-B 2022 Expires: Dec 30, 1998 2023 Copyright(C) The Internet Society 1998. All Rights Reserved. 2025 - prints color transparencies 2026 - 1200 dpi laser 2027 - driver XYZ-Poscscript-V4.3 available at this URI 2028 - cost = $1.25 per page 2029 - authentication required to use printer 2030 - payment required prior to printing 2031 - 2032 - more information at this URI 2034 The user decides to use the first printer because it is closer. 2035 She connects to the URI given to get a driver. 2037 Client Driver URI 2039 +---------------------------------------------------------- > 2040 I need a driver for "Color-A" 2042 < ----------------------------------------------------------+ 2043 Driver installer is at http://www.xerox.com/prtdrvrs 2045 Driver is installed 2047 User connects to 2048 "Color-A" 2050 Client IPP Printer "Color-A" 2052 +---------------------------------------------------------- > 2053 < ----------------------------------------------------------+ 2054 Mutual authentication and exchange of secret keys 2056 +---------------------------------------------------------- > 2057 I'm going to submit a print job 2058 give me your job submission attributes 2060 < ----------------------------------------------------------+ 2061 Production attributes for this Printer are: 2062 - medium-select = us-letter-white, us-legal-white 2063 - default is us-letter-white 2064 - copies = 1,2,3,4,5 2065 - default is 1 2066 - print-quality = draft, normal, high 2067 - default is draft 2068 - sides = 1-sided, 2-sided-long-edge 2070 Expires: Dec 30, 1998 2071 Copyright(C) The Internet Society 1998. All Rights Reserved. 2073 - default is 2-sided-long-edge 2075 Job scheduling attributes for this Printer are: 2076 - job-priority = 1,2,3 2077 default = 3 2079 Driver puts up dialogue with available options and fills in the 2080 defaults. 2082 End-user makes choices and submits job 2084 +---------------------------------------------------------- > 2085 Here is a print job 2086 - job-name = presentation 2087 - notify me by email when job is complete 2088 - print on us-letter-transparency 2089 - print 1 copy 2090 - print at high quality 2091 - print by 9:00 am tomorrow morning 2092 - give me the state of the printer in response 2094 The driver generates the print data and passes it to the IPP 2095 driver a piece at a time. 2097 +---------------------------------------------------------- > 2098 Here is the print data 2100 < ---------------------------------------------------------+ 2101 Print data received, and spooling started 2102 print job id = #1234 2104 Print data received, file is spooled 2105 - printer state = printing 2106 - time submitted = 2/12/97, 15:35 2107 - current job state = held, waiting for payment 2109 +---------------------------------------------------------- > 2110 < ----------------------------------------------------------+ 2111 Payment transaction 2113 < ----------------------------------------------------------+ 2114 Job is scheduled to print, pick up after 9:00am tomorrow 2115 Thank you for using SirZippy 2117 Expires: Dec 30, 1998 2118 Copyright(C) The Internet Society 1998. All Rights Reserved.