idnits 2.17.1 draft-ietf-ipp-req-00.txt: -(344): Line appears to be too long, but this could be caused by non-ascii characters in UTF-8 encoding -(532): Line appears to be too long, but this could be caused by non-ascii characters in UTF-8 encoding -(775): Line appears to be too long, but this could be caused by non-ascii characters in UTF-8 encoding -(812): Line appears to be too long, but this could be caused by non-ascii characters in UTF-8 encoding -(851): Line appears to be too long, but this could be caused by non-ascii characters in UTF-8 encoding -(877): Line appears to be too long, but this could be caused by non-ascii characters in UTF-8 encoding -(890): Line appears to be too long, but this could be caused by non-ascii characters in UTF-8 encoding -(1100): Line appears to be too long, but this could be caused by non-ascii characters in UTF-8 encoding -(1289): Line appears to be too long, but this could be caused by non-ascii characters in UTF-8 encoding -(1546): Line appears to be too long, but this could be caused by non-ascii characters in UTF-8 encoding -(1548): Line appears to be too long, but this could be caused by non-ascii characters in UTF-8 encoding -(1549): Line appears to be too long, but this could be caused by non-ascii characters in UTF-8 encoding -(1552): Line appears to be too long, but this could be caused by non-ascii characters in UTF-8 encoding -(1667): Line appears to be too long, but this could be caused by non-ascii characters in UTF-8 encoding -(1703): Line appears to be too long, but this could be caused by non-ascii characters in UTF-8 encoding -(1717): Line appears to be too long, but this could be caused by non-ascii characters in UTF-8 encoding -(1727): Line appears to be too long, but this could be caused by non-ascii characters in UTF-8 encoding -(1740): Line appears to be too long, but this could be caused by non-ascii characters in UTF-8 encoding Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Cannot find the required boilerplate sections (Copyright, IPR, etc.) in this document. Expected boilerplate is as follows today (2024-04-26) according to https://trustee.ietf.org/license-info : IETF Trust Legal Provisions of 28-dec-2009, Section 6.a: This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 2: Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 3: This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** Missing document type: Expected "INTERNET-DRAFT" in the upper left hand corner of the first page ** 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. == There are 68 instances of lines with non-ascii characters in the document. == No 'Intended status' indicated for this document; assuming Proposed Standard == The page length should not exceed 58 lines per page, but there was 4 longer pages, the longest (page 48) being 60 lines Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an Introduction section. ** The document seems to lack a Security Considerations section. (A line matching the expected section header was found, but with an unexpected indentation: ' 4.1. SECURITY' ) ** 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 an Authors' Addresses Section. ** There are 408 instances of too long lines in the document, the longest one being 13 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == Line 729 has weird spacing: '...erprise which...' -- 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) No issues found here. Summary: 12 errors (**), 0 flaws (~~), 4 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 INTERNET DRAFT F.D. Wright, Lexmark International 3 4 March 24, 1997 Expires: Sept 24, 1997 6 Requirements for an Internet Printing Protocol 8 STATUS OF THIS MEMO 10 This document is an Internet-Draft. Internet-Drafts are working 11 documents of the Internet Engineering Task Force (IETF), its 12 areas, and its working groups. Note that other groups may also 13 distribute working documents as Internet-Drafts. 15 Internet-Drafts are draft documents valid for a maximum of six 16 months and may be updated, replaced, or obsoleted by other 17 documents at any time. It is inappropriate to use Internet- 18 Drafts as reference material or to cite them other than as ''work 19 in progress.'' 21 To learn the current status of any Internet-Draft, please check 22 the ''1id-abstracts.txt'' listing contained in the Internet- 23 Drafts Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net 24 (Europe), munnari.oz.au (Pacific Rim), ds.internic.net (US East 25 Coast), or ftp.isi.edu (US West Coast). 27 ABSTRACT 29 This document is one of a set of documents which together 30 describe all aspects of a new Internet Printing Protocol (IPP). 31 IPP is an application level protocol that can be used for 32 distributed printing on the Internet. The protocol is heavily 33 influenced by the printing model introduced in the Document 34 Printing Application (ISO/IEC 10175 DPA) standard. Although DPA 35 identifies the both end user and administrative features, IPP is 36 initially focused only on the end user functionality. 38 The full set of IPP documents include: 40 Internet Printing Protocol/1.0: Requirements 41 Internet Printing Protocol/1.0: Model and Semantics 42 Internet Printing Protocol/1.0: Security 43 Internet Printing Protocol/1.0: Protocol Specification 44 Internet Printing Protocol/1.0: Directory Schema 45 This document describes the requirements for an Internet printing 46 protocol. It describes the end-user, operator and administrator 47 wants and needs in the context of printing documents from a 48 variety of sources. These sources include standard desktop 49 applications (e.g. word processors, spreadsheets, and browsers), 50 documents selected by reference (e.g. URL) and documents created 51 by batch or background applications. Additionally, requirements 52 for light-weight printer status and management and job status and 53 management services will be discussed. 55 TABLE OF CONTENTS 57 1. TERMINOLOGY..................................................5 58 2. REQUIREMENTS.................................................6 59 2.1. END-USER.................................................6 60 2.1.1. Finding or locating a printer........................6 61 2.1.2. Create an instance of the printer....................7 62 2.1.3. Viewing the status of a printer......................7 63 2.1.4. Submitting a print job...............................8 64 2.1.5. Viewing the status of a submitted print job..........9 65 2.1.6. Canceling a Print Job................................9 66 2.2. OPERATOR.................................................9 67 2.2.1. Alerting............................................10 68 2.2.2. Changing Print and Job Status.......................10 69 2.3. ADMINISTRATOR...........................................10 70 3. IPP SCENARIOS...............................................12 71 3.1. PRINTER DISCOVERY.......................................13 72 3.2. DRIVER INSTALLATION.....................................14 73 3.3. SUBMITTING A PRINT JOB..................................14 74 3.4. GETTING STATUS/CAPABILITIES.............................15 75 3.5. ASYNCHRONOUS NOTIFICATION...............................16 76 3.6. JOB CANCELING...........................................16 77 4. OBJECTIVES OF THE PROTOCOL..................................18 78 4.1. SECURITY................................................18 79 4.2. INTERACTION WITH LPD (RFC1179)..........................18 80 4.3. EXTENSIBILITY...........................................19 81 4.4. FIREWALLS...............................................19 82 4.5. INTERNATIONALIZATION....................................20 83 5. REFERENCES..................................................21 84 6. ACKNOWLEDGMENTS.............................................21 85 7. AUTHOR'S ADDRESS............................................21 86 8. APPENDIX - DETAILED SCENARIOS...............................22 87 8.1. PRINTER DISCOVERY WITHIN AN ENTERPRISE..................22 88 8.2. PRINTER DISCOVERY ACROSS ENTERPRISES....................24 89 8.3. PRINTER DISCOVERY ON THE INTERNET -LOGICAL OPERATIONS...25 90 8.4. PRINTER DISCOVERY ON THE INTERNET - AUTHENTICATION......26 91 8.5. DRIVER DOWNLOAD.........................................28 92 8.6. SUBMITTING A PRINT JOB AS A FILE........................29 93 8.7. SUBMITTING A PRINT JOB WITH TWO DOCUMENTS...............30 94 8.8. SUBMITTING A PRINT JOB AS A FILE, PRINTING FAILS........31 95 8.9. SUBMITTING A PRINT JOB WITH AUTHENTICATION, PRIVACY AND 96 PAYMENT......................................................32 97 8.10. SUBMITTING A PRINT JOB WITH DECRYPTION ERROR...........33 98 8.11. SUBMITTING A PRINT JOB WITH AUTHENTICATION.............35 99 8.12. SUBMITTING A PRINT JOB GENERATED DYNAMICALLY...........36 100 8.13. SUBMITTING A PRINT JOB WITH A PRINTER JAM - CANCELED...37 101 8.14. SUBMITTING A PRINT JOB WITH A PRINTER JAM - RECOVERED..38 102 8.15. SUBMITTING A PRINT JOB WITH SERVER PULL................39 103 8.16. SUBMITTING A PRINT JOB WITH REFERENCED RESOURCES.......40 104 8.17. GETTING CAPABILITIES...................................41 105 8.17.1. Submission Attributes..............................41 106 8.17.2. Printer Capabilities...............................41 107 8.18. GETTING STATUS.........................................42 108 8.18.1. Printer State/Status...............................42 109 8.18.2. Job Status.........................................42 110 8.18.3. Status of All My Jobs..............................42 111 8.19. ASYNCHRONOUS NOTIFICATION..............................44 112 8.19.1. Job Completion.....................................44 113 8.19.2. Job Complete with Data.............................44 114 8.19.3. Print Job Fails....................................44 115 8.20. CANCEL A JOB...........................................45 116 8.21. END TO END SCENARIO - WITHIN AN ENTERPRISE.............46 117 8.22. END TO END SCENARIO - ACROSS ENTERPRISES...............48 118 8.23. END TO END SCENARIO - ON THE INTERNET..................51 120 1. TERMINOLOGY 122 Internet Printing for the purposes of this document is the 123 application of World Wide Web tools, programs, servers and 124 networks to allow end-users to print to a remote printer using, 125 after initial setup or configuration, the same methods, 126 operations and paradigms as would be used for a locally attached 127 or a local area network attached printer. This could include the 128 use of HTTP servers and browsers for providing static, dynamic 129 and interactive printer locating services, user installation, 130 selection, configuration, print job submission, printer 131 capability inquiry and status inquiry of remote printers and 132 jobs. 134 For the purposes of this document, a WEB Browser is software 135 available from a number of sources including but not limited to 136 the following: Microsoft Internet Explorer, NCSA Mosaic, Netscape 137 Navigator, Sun Hot Java!. The major task of these products is to 138 use the Hypertext Transport Protocol (HTTP) to retrieve, 139 interpret and display Hypertext Markup Language (HTML). 141 Throughout this document, 'printer' shall be interpreted to 142 include any device which is capable of marking on a piece of 143 media using any available technology. No assumption is made 144 about multi-tiered printing solutions involving servers (single 145 or multiple) logically in front of the actual printing device and 146 all such configurations shall be supported but shall appear to 147 the end-user as only a single device. 149 Throughout this document, certain requirements will be identified 150 as not being a part of version 1.0 (or V1.0) of the protocol or 151 as being satisfied by means outside of IPP. For example printer 152 instance creation is not performed by but is enabled by the 153 protocol. Globally, none of the operator or administrators 154 requirements will be included in version 1.0. Some of the end- 155 user requirements may also be excluded from version 1.0 and will 156 be so noted in the description of that requirement. Subsequent 157 versions of the protocol (e.g. V2.0) may include support for 158 these initially excluded requirements. 160 2. REQUIREMENTS 162 The next three sections identify the requirements of an Internet 163 printing protocol from three roles assumed by humans: end-user, 164 operator, and administrator. The requirements defined here are 165 only those that need to be addressed by an application level 166 Internet printing protocol. Other requirements, such as that the 167 operator needs physical access to the printer (e.g. to be able to 168 load paper or clear jams) are not covered by this document. 169 Section 3 contains scenarios which provide more detailed examples 170 of the entire process including discovery, status, printing and 171 end-of-job reporting. 173 2.1. END-USER 175 An end-user of a printer accepting jobs through the Internet is 176 one of the roles in which humans act. The end-user is the person 177 that will submit a job to be printed on the printer. 179 The requirements of the end-user are broken down into six 180 categories: finding/locating, local instance, viewing printer 181 status, viewing printer capabilities, submitting a print job, 182 viewing job status, altering the attributes of a print job. 184 2.1.1. Finding or locating a printer. 186 end-users want to be able to find and locate printers to which 187 they are authorized to print. They want to be able to perform 188 this function using a standard WEB browser or other application. 189 Multiple criteria can be applied to find the printers needed. 190 These criteria include but are not limited to: 192 - by name (Printer 1, Joes-color-printer, etc.) 193 - by geographic location (bldg 1, Kentucky, etc.) 194 - by capability or attribute (color, duplex, legal paper, etc.) 196 Additionally, end-users want to be able to limit the scope of 197 their searching to: 199 - inside a functional sub-domain 200 - include only a particular domain (lexmark.com) 201 - exclude specified domains 202 2.1.2. Create an instance of the printer. 204 After finding the desired printer, an end-user needs to be able 205 to create a local instance of that printer within the end-user 206 operating system or desktop. This local instance will vary 207 depending upon the printing paradigm of the operating system. 208 For example, some UNIX users will only want a queue or a 209 reference to a remote printer created on their machine while 210 other UNIX users and Windows NT users will want the queue and 211 also the necessary icons and registry entries to be created and 212 initialized. Where required, drivers may need to be downloaded 213 from some repository and installed on the computer. All 214 necessary decompressing, unpacking, and other installation 215 actions should occur without end-user interaction or intervention 216 excepting initial approval by the end-user. Once the local 217 instance of the printer has been installed, it shall appear to 218 the end-user of operating system and to the applications running 219 there as any other printer (local, local area network connected, 220 or network operating system connected) on the end-user desktop or 221 environment. An Internet Printing Protocol's role in this 222 requirement is to enable (by providing configuration information, 223 driver location, etc.) the creation of the printer instance 224 rather than the actual creation of the printer instance. 226 2.1.3. Viewing the status and capabilities of a printer. 228 Before using a selected printer or, in fact at any time, the end- 229 user needs the ability to verify the characteristics and status 230 of both printers and jobs queued for that printer. When checking 231 the characteristics of a printer, the end-user typically wants to 232 be able to determine the capability of the device, e.g.: 234 - loaded media, commonly paper, by size and type 235 - paper handling capability, e.g. duplex, collating, finishing 236 - color capability 238 When checking the status of the printer, the end-user typically 239 wants to be able to determine: 241 - is the printer on-line? 242 - what are the defaults to be used for printing? 243 When checking the status on jobs queued for the printer, the end- 244 user typically wants to be able to determine: 246 - how many jobs are queued for the printer? 247 - how are job priorities assigned? 249 2.1.4. Submitting a print job. 251 Once the desired printer has been located and installed, the end- 252 user wants to print to that printer from normal applications 253 using standard methods. These normal applications include such 254 programs as word processors, spreadsheets, data-base 255 applications, WEB browsers, production printing applications, 256 etc. In addition to printing from an application, the end-user 257 needs to have the ability to submit a print job by reference. 258 Printing by reference is defined to mean as submitting a job by 259 providing a reference to an existing document. The reference, a 260 URL, will be resolved before the actual print process occurs. 262 Some means shall be provided to determine if the format of a job 263 matches the capability of the printer. This can be done by one 264 of the following: 266 - the end-user selects the correct printer driver 267 - the printer automatically selects the proper interpreter 268 - the end-user uses some other manual procedure. 270 A standard action shall be defined should the job's requirements 271 not match the capabilities of the printer. 273 Because the end-user does not want to know the details of the 274 underlying printing process, the protocol must support job-to- 275 printer capability matching (all implementations are not 276 necessarily required to implement this function.) This matching 277 capability requires knowing both the printer's capabilities and 278 attributes and those capabilities and attributes required by the 279 job. Actions taken when a print job requires capabilities or 280 attributes that are not available on the printer vary and can 281 include but are not limited to: 283 - rejecting the print job 284 - redirecting the print job to another printer 285 - printing the job, accepting differences in the appearance 287 Print jobs will also be submitted by background or batch 288 applications without human intervention. Any application level 289 Internet printing application must support this type of printing. 291 end-users need the ability to set certain print job parameters at 292 the time the job is submitted. These parameters include but are 293 not limited to: 295 - number of copies 296 - single or two sided printing 297 - finishing 298 - job priority 300 2.1.5. Viewing the status of a submitted print job. 302 After a job has been submitted to a printer, the end-user needs a 303 way to view the status of that job (i.e. job waiting, job 304 printing, job done) and to determine where the job is in the 305 print queue. 307 In addition to the need to inquire about the status of a print 308 job, automatic notification of the completion of that job is also 309 required. New notification means are not defined by the protocol 310 but the protocol must provide a means of enabling and disabling 311 the notification. 313 2.1.6. Canceling a Print Job 315 While a job is waiting to be printing or has been started but not 316 yet completed, the original creator/submitter of the print job 317 (i.e. the end-user) shall be able to cancel the job entirely (job 318 is waiting) or the remaining portion of it (job is printing.) 319 Altering the print job itself is not a V1.0 requirement. 321 2.2. OPERATOR 322 An operator of a printer accepting jobs through the Internet is 323 one of the roles in which humans act. The operator has the 324 responsibility of monitoring the status of the printer as well as 325 managing and controlling the jobs at the device. These 326 responsibilities include but are not limited to the replenishing 327 of supplies (ink, toner, paper, etc.), the clearing of minor 328 errors (paper jams, etc.) and the re-prioritization of end-user 329 jobs. Operator requirements will not be addressed by V1.0 of the 330 protocol. 332 The requirements of the operator include all those of the end- 333 user but may include additional privileges. For example, an 334 operator may be able to view all print jobs on a printer while 335 the end-user may only see his own jobs. 337 2.2.1. Alerting. 339 One of the required operator functions is having the ability to 340 discover or to be alerted to changes in the status of a printer 341 particularly those changes that cause a printer to stop printing 342 and to be able to correct those problems. As such, an Internet 343 printing protocol shall be able to alert a designated operator or 344 operators to these conditions such as �out of paper�, �out of 345 ink�, etc. Additionally. the operator shall be able to, 346 asynchronous to other printer activity, inquire as to a printer's 347 or a job's status. 349 2.2.2. Changing Print and Job Status. 351 Another of the required operator functions is the ability to 352 affect changes to printer and job status remotely. For example, 353 the operator will need to be able to re-prioritize or cancel any 354 print jobs on a printer to which the operator has authority. 356 2.3. ADMINISTRATOR 358 An administrator of a printer accepting jobs through the Internet 359 is one of the roles in which humans act. The administrator has 360 the responsibility of creating the printer instances and 361 controlling the authorization of other 362 end-users and operators. Administrator requirements will not be 363 addressed by V1.0 of the protocol. 365 The requirements of the administrator include all those of the 366 end-user and, in some environments, some or all of those of the 367 operator. Minimally, the administrator must also have the tools, 368 programs, utilities and supporting protocols available to be able 369 to: 371 - create an instance of a printer 372 - create, edit and maintain the list of authorized end-users 373 - create, edit and maintain the list of authorized operators 374 - create, edit and maintain the list of authorized 375 administrators 376 - create, customize, change or otherwise alter the manner in 377 which the status capabilities and other information about 378 printers and jobs are presented 379 - create, customize, or change other printer or job features 380 - administrate billing or other charge-back mechanisms 381 - create sets of defaults 382 - create sets of capabilities 384 The administrator must have the capability to perform all the 385 above tasks locally or remotely to the printer. 387 3. IPP SCENARIOS 389 Each of the scenarios in this section describes a specific IPP 390 operation, such as submitting a print job. Section 8.0 contains 391 several detailed flows for each scenario to provide additional 392 detail. The examples should not be considered exhaustive, but 393 illustrative of the functions and features required in the 394 protocol. Flows are intended to be protocol neutral. It is not 395 assumed that all of the functions and features described in these 396 scenarios will necessarily be supported directly by IPP or in 397 version 1.0 of IPP. 399 These scenarios support one of three physical configurations: 401 - An IPP client talking to an IPP Printer object imbedded in a 402 single, physical output device. 403 - An IPP Client talking to a server containing one or more IPP 404 Printer objects. Each Printer object is associated with 405 exactly one physical output device supported by the server. 406 The protocol between the server and the output devices is 407 undefined. 408 - An IPP Client talking to an IPP Printer object in a server. 409 The Printer object is associated with one or more physical 410 output devices, but the client only sees the Printer object, 411 which is an abstraction and represents all of the associated 412 physical output devices. The protocol between the server and 413 the physical output devices is undefined. 415 Clients and Printers may or may not be behind firewalls, i.e. not 416 directly on the Internet. At least the following should be 417 considered: 419 - Client and Printer are behind the same firewall. 420 - Client is behind one firewall and Printer is behind another. 421 - Client is behind a firewall and Printer is not. 422 - Printer is behind a firewall and the client is not. 423 - Neither Client nor Printer are behind a firewall. 425 See draft-ietf-ipp-security-01.txt for more details on these and 426 other configurations of clients, servers and firewalls. 428 3.1. PRINTER DISCOVERY 430 Client Directory 431 Service Service 433 +----------------------------------------------------------- > 434 give me information on printers with these characteristics 436 < -----------------------------------------------------------+ 437 Information on Printers matching these characteristics 439 The objective of printer discovery is to locate printers that 440 meet the client�s requirements. The directory Service should 441 provide enough information for the client to make an initial 442 choice. The client may have to connect to each individual Printer 443 offered to get more detail. 445 The actual protocol used between client and Directory or Name 446 service is considered outside the scope of IPP. Printer Discover 447 is included in the scenarios to provide requirements for the 448 directory schema for IPP Printers and to further define Printer 449 attributes. 451 Characteristics that might be considered when locating a Printer 452 include: 454 - capabilities of the Printer, e.g. PDLs supported 455 - physical location, e.g. in building 010 456 - driver required and location 457 - cost per page to print 458 - whether or not printer is access controlled 459 - whether or not usage requires client authentication 460 - whether or not Printer can be authenticated 461 - whether or not payment is required for printing 462 - maximum job size (spool size) 463 - whether or not Printer support compression 464 - whether or not Printer supports encryption 465 - administrative limits on this Printer 466 - maximum number of copies per job 467 - maximum number of pages per job 469 Responses could additionally include: 471 - how to get more information 472 - web page 473 - telephone number 474 - help desk 476 3.2. DRIVER INSTALLATION 478 Client Printer 480 +----------------------------------------------------------- > 481 Where can I find a driver & software to install it? 483 < -----------------------------------------------------------+ 484 URLs for drivers and install software 486 Driver here refers to the code installed in the client operating 487 system to generate the print data stream for the intended 488 printer. The actual details for installing a printer driver are 489 operating system independent and are beyond the scope of IPP. 490 However, an IPP printer or a directory service advertising an IPP 491 Printer should be capable of telling a client what drivers are 492 required, where they can be found, and provide pointers to 493 installation instructions, installation code or initialization 494 strings required to install the driver. 496 3.3. SUBMITTING A PRINT JOB 498 Client IPP Printer 500 +----------------------------------------------------------- > 501 Here is a Print Job 502 - Job and document attributes 503 - Print data 505 < -----------------------------------------------------------+ 506 Response 508 The protocol must support these sources of client data: 510 - Print data is a file submitted with the job 511 - Print data is generated on the fly by an application 512 - Print data is a file referenced by a URL 514 The protocol must handle overrun conditions in the printer and 515 must support overlapped printing and downloading of the file in 516 devices that are unable to spool files before printing them. 518 Every print request will have a response. Responses will indicate 519 success or failure of the request and provide information on 520 failures when they occur. Responses would include things like: 522 - Got the print job and queued it 523 - Got the print job and am printing it 524 - Got the print job, started to print it, but printing failed 525 - why it failed (e.g. unrecoverable PostScript error) 526 - state of the printer 527 - how much printed 528 - Got the print job but couldn�t print it 529 - why it can�t be printed 530 - state of the printer 531 - Got the print job but don�t know what to do with it 532 - Didn�t get a complete print job (e.g. communication failure) 534 3.4. GETTING STATUS/CAPABILITIES 536 Client IPP Printer 538 +----------------------------------------------------------- > 539 Get status and/or capabilities of Printer 541 < -----------------------------------------------------------+ 542 Status/Capabilities 544 Clients will need to get information about 546 - Static capabilities of the device (e.g. marking technology) 547 - Dynamic state of the Printer (e.g. out of paper) 548 - State of a specific job owned by this client 549 - State of all jobs owned by this client 550 - queued 551 - printing 552 - completed 553 - Job submission attributes supported/required 554 - scheduling attributes (e.g. priority) 555 - production attributes (e.g. number of copies) 557 3.5. ASYNCHRONOUS NOTIFICATION 559 Client IPP Printer 561 +----------------------------------------------------------- > 562 Use the following method to notify me of Printer events 564 . 565 . 566 . 567 < -----------------------------------------------------------+ 568 Asynchronous notification of Printer event 570 Clients must be able to request asynchronous notification for 571 Printer events such as 573 - job completion 574 - a fatal error that requires the job to be resubmitted 575 - a condition that severely impacts a queued job for this client 576 e.g. printer is out of paper 578 Note: end-user notification is a V1.0 requirement while operator 579 notification is for V2.0. 581 3.6. JOB CANCELING 583 Client IPP Printer 585 +----------------------------------------------------------- > 586 Modify the named job as indicated 588 < -----------------------------------------------------------+ 589 Response (did it or not) 591 Clients must be able to make changes to jobs which have been 592 submitted and are queued for printing. Changing of job 593 attributes should also be supported. Job modifications, holding 594 and releasing of jobs will not be required in IPP v1.0. 596 4. OBJECTIVES OF THE PROTOCOL 598 The protocol to be defined by an Internet printing working group 599 will address the requirements of the end-user (V1.0). It will 600 not, at least initially, address the operator or administrator 601 requirements (V2.0). 603 The protocol defined shall be independent of the operating system 604 of both the client and the server. Any platform capable of 605 supporting a WEB Browser shall be supported as a client. Any 606 platform providing a WEB/HTTP server and printing services shall 607 be supported as a server. Usage of the WEB Browser and Server is 608 not required for IPP; the operating system, operating system 609 extensions or other applications may provide IPP functionality 610 directly. 612 In many environments such as Windows 95, Windows NT and OS/2, the 613 print data is created and transmitted to the printer ''on the 614 fly'' rather than being created, spooled and then transmitted to 615 the printer (a typical UNIX method.) The Internet Printing 616 Protocol must properly handle this methodology and make this 617 transparent to the end-user. 619 4.1. SECURITY 621 Security definitions, issues and requirements are discussed in a 622 separate draft. See ''draft-ietf-ipp-security-00.txt'' for these 623 requirements. Authentication shall be required in V1.0. 624 Privacy, payment, and other aspects of security are not required 625 for V1.0. 627 4.2. INTERACTION WITH LPD (RFC1179) 629 Many versions of UNIX and in fact other operating systems provide 630 a means of printing as described in RFC1179 (Line Printer Daemon 631 Protocol.) This document describes the file formats for the 632 control and data files as well as the messages used by the 633 protocol. Because of the simplistic approach taken by this 634 protocol, many manufacturers have include proprietary 635 enhancements and extensions to 'lpd.' Because of this divergence 636 and due to other requirements described in this document, there 637 is no requirement for backward compatibility or interoperability 638 with 'lpd'. However, a mapping of LPD functionality and IPP 639 functionality shall be provided so as to enable a gateway between 640 LPD and IPP. 642 4.3. EXTENSIBILITY 644 The Internet Printing Protocol shall be extensible by several 645 means that facilitates interworking and prevents implementation 646 collisions: 648 - by providing a process whereby implementers can submit 649 proposals for registration of new attributes, new enumerated 650 values for existing attributes and new tags for attributes 651 or attribute values 653 - that require review and approval. The Internet Assigned 654 Number Authority (IANA) will be the repository for such 655 accepted registration proposals after review. 657 - that do not require review and approval. IANA will be the 658 repository for such registrations. 660 - by providing syntax in the protocol so that implementers 661 may add private (i.e. unregistered) attributes, enumerated 662 attribute values, and tags. 664 - by providing versioning and negotiation so as to enable 665 future implementations of IPP to interoperate with 666 implementations of version 1.0 of IPP. 668 4.4. FIREWALLS 670 As stated in the end-user requirements section, Internet printing 671 shall by definition support printing from one enterprise to 672 another. As such, the Internet printing protocol must be capable 673 of passing through firewalls and/or proxy servers (where enabled 674 by the firewall administrator) preferably without modification to 675 the existing firewall technology. 677 4.5. INTERNATIONALIZATION 679 Users of Internet printing will come from all over the world. As 680 such, where appropriate, internationalization and localization 681 will be enabled for the protocol. 683 5. REFERENCES 685 RFC1179 - Line Printer Daemon Protocol 686 RFC1759 - Printer MIB 687 ISO/IEC 10175, Document Printing Application 689 6. ACKNOWLEDGMENTS 691 This document draws heavily from preliminary work done by others 692 especially in the Printer Working Group (PWG). The author 693 gratefully acknowledges the specific contributions of: 695 Scott Isaacson Roger Debry 696 Novell IBM 697 scott_isaacson@novell.com rdebry@us1.ibm.com 699 Carl-Uno Manros Robert Herriot 700 Xerox Sun 701 manros@cp10.es.xerox.com Robert.Herriot@eng.sun.com 703 Tom Hastings Peter Zehler 704 Xerox Xerox 705 hastings%cp10.es.xerox.com Peter_Zehler@wb.xerox.com 707 7. AUTHOR'S ADDRESS 709 F.D. (Don) Wright 710 Lexmark International 711 C14/035-3 712 740 New Circle Rd 713 Lexington, KY 40511 715 Phone: 606-232-4808 716 Fax: 606-232-6740 717 E-mail: don@lexmark.com 718 8. APPENDIX - DETAILED SCENARIOS 720 The following are more detailed scenarios illustrating how the 721 Internet Printing Protocol is expected to be used. The 722 information contained herein is meant to be generic. There may 723 not be an exact wording or terminology match between these 724 scenarios and the implementation documents. 726 8.1. PRINTER DISCOVERY WITHIN AN ENTERPRISE 728 A user wants to find a color Postscript printer in his/her 729 enterprise which will print transparencies. The client, 730 directory service, and Printer are all behind the same corporate 731 firewall. Because color foils are expensive, Printers of this 732 type are access controlled and require an account to be 733 established so that printing can be billed back to the using 734 department. Note the request to find a Printer usable by Dept. 735 J15. Drivers for all supported Printers are available from the 736 server they are associated with. A help desk is provided for end 737 user support. The printer is unattended. 739 Client Directory Service 741 +---------------------------------------------------------- > 742 Find a Printer with these characteristics 743 - prints color, prints transparencies 744 - prints Postscript 745 - is in building 003 746 - usable by department J15 748 < ----------------------------------------------------------+ 749 Printer � �Color-A� 750 � 751 - prints color, prints transparencies 752 - prints Postscript 753 - in room H-6, building 003 754 - driver ABC-Postscript-V1.3 required, here is URL 755 - cost is $.45 per page for color transparencies 756 - limit is 10 pages per job 757 - authentication required to use printer 758 - printer is unattended 759 - help desk at x5001 760 Printer � �Color-B� 761 � 762 - prints color, prints transparencies 763 - prints Postscript 764 - in room J-10, building 003 765 - driver XYZ-Postscript-V2.4 required, here is URL 766 - cost is $1.25 page for color transparencies 767 - limit is 5 pages per job 768 - authentication is required to use printer 769 - printer is unattended 770 - help desk at x5001 772 8.2. PRINTER DISCOVERY ACROSS ENTERPRISES 774 A user in Company A wants to find a public printer in a business 775 partner�s enterprise (Company B) on which to print a purchase 776 order. The client is behind one corporate firewall and the 777 directory service and the Printer are behind a different 778 corporate firewall. Drivers for all supported Printers are 779 available from the server they are associated with. A web page is 780 provided for end user support for public printers. 782 Client Company B Directory Service 784 +---------------------------------------------------------- > 785 Find a Printer with these characteristics 786 - prints black and white 787 - is in El Segundo, building A 788 - is a public printer (accessible from outside firewall) 790 < ----------------------------------------------------------+ 791 Printer � �Public-A� 792 � 793 - prints black and white 794 - prints Postscript 795 - in El Segundo, room H-6, building A 796 - driver ABC-Postscript-V1.3 required, here is URL 797 - printer is public 798 - help available at http://xerox/elSegundo/publicPrinters 800 Printer � �Public-B� 801 � 802 - prints black and white 803 - prints PCL/5e 804 - is in El Segundo, room J-10, building A 805 - driver XYZ-PCL-V2.4 required, here is URL 806 - printer is public 807 - help available at http://xerox/elSegundo/publicPrinters 809 8.3. PRINTER DISCOVERY ON THE INTERNET -LOGICAL OPERATIONS 811 A student wants to print a paper on a printer at his neighborhood 812 Kinko�s print shop. The report was written using Microsoft Word. 813 The student is interested in the cost of printing since his 814 budget is limited. Note the use of logical operators to find this 815 information. 817 Client Kinko�s Directory Service 819 +---------------------------------------------------------- > 820 Find a Printer with these characteristics 821 - prints color or black and white 822 - costs less than $.50 per page 823 - tell me about resolution and marking technology 825 < ----------------------------------------------------------+ 826 Printer � �Color-A� 827 � 828 - prints color 829 - 600 dpi laser printer 830 - prints Postscript 831 - driver ABC-Postscript-V1.3 required, here is URL 832 - cost is $.50 per page for color 833 - payment required prior to submitting print job 834 - here is URL for more information on Kinko�s 836 Printer � �Mono-B� 837 � 838 - prints black and white 839 - 300 dpi inkjet printer 840 - prints Postscript 841 - driver XYZ-Postscript-V2.4 required, here is URL 842 - cost is $0.35 page for black and white 843 - payment required prior to submitting print job 844 - here is URL for more information on Kinko�s 846 8.4. PRINTER DISCOVERY ON THE INTERNET - AUTHENTICATION 848 An executive in her hotel room is finishing an important 849 presentation on her laptop computer. She connects to a local 850 print shop through the web to get a copy of her charts printed 851 for tomorrow�s presentation. She must find a print shop that is 852 convenient to her hotel and can print color transparencies. She 853 wants to be sure that the printer can be authenticated and can 854 accept encrypted data. 856 Client SirSpeedy Directory Service 858 +---------------------------------------------------------- > 859 Find a Printer with these characteristics 860 - prints color transparencies 861 - is in Downtown Boulder, Colorado 862 - Printer can be authenticated 863 - Printer supports encryption 865 Give me the Printer�s public key 866 Tell me when you are open for business 868 < ----------------------------------------------------------+ 869 Printer � �Color-A� 870 � 871 - prints color transparencies 872 - prints Postscript 873 - driver ABC-Postscript-V1.3 required, here is URL 874 - payment required prior to submitting print job 875 - Printer can be authenticated 876 - Data can be encrypted 877 - Printer�s public key = � �CG&89Hj$#004?� 878 � 879 - Located at 1670 Pearl Street, Boulder, CO 880 - This Branch is open 24 hours a day 882 Printer � �Color-B� 883 � 884 - prints color transparencies 885 - prints Postscript 886 - driver ABC-Postscript-V1.3 required, here is URL 887 - payment required prior to submitting print job 888 - Printer can be authenticated 889 - Data can be encrypted 890 - Printer�s public key = � �CG&7%%j$#003� 891 � 892 - Located at 1220 Arapahoe, Boulder, CO 893 - This Branch is open from 9:00am to 6:30pm 895 8.5. DRIVER DOWNLOAD 897 An end user in an enterprise wants to print a lengthy report on a 898 newly installed high speed PostScript printer. Since she will 899 likely use this printer often, she would like to download a 900 driver and install it on her workstation. She is running Windows 901 95. Note: Driver download is not a V1.0 requirement. 903 Client IPP Printer 905 +---------------------------------------------------------- > 906 Tell me where to find print drivers for you 907 I am using Windows 95 version 1.2 909 < ----------------------------------------------------------+ 910 Driver install file is at 911 http://www.ibm.com/drivers/NP12a/Win95 913 8.6. SUBMITTING A PRINT JOB AS A FILE 915 An end-user wants to submit a print job. The print file already 916 exists on his workstation. The client and Printer are behind the 917 same corporate firewall. The printer is available to anyone 918 behind the firewall and no authorization or authentication is 919 required. The data is pushed to the Printer. The Printer is 920 capable of spooling the output. No errors occur. 922 Client IPP Printer 924 +---------------------------------------------------------- > 925 Here is a print job 926 - job name = MyJob 927 - notify me by email when done printing 928 - print on iso-a4-white paper 929 - print on both sides of the paper 930 - return status of the printer in response 931 - document is in Postscript format 932 - here is the document to print 934 < ----------------------------------------------------------+ 935 Print job accepted and spooled 936 - job id = #12345 937 - current state of print job = spooled 938 - submission time = 02/12/97, 15:35 939 - printer state = printing 941 8.7. SUBMITTING A PRINT JOB WITH TWO DOCUMENTS 943 An end-user wants to submit a print job. The print file already 944 exists on his workstation. The client and Printer are behind the 945 same corporate firewall. The printer is available to anyone 946 behind the firewall and no authorization or authentication is 947 required. The data is pushed to the Printer. The job consists of 948 two separate documents. The Printer is capable of spooling the 949 output. No errors occur. 951 Client IPP Printer 953 +---------------------------------------------------------- > 954 Here is a print job 955 - job name = MyJob 956 - notify me by email when done printing 957 - print on iso-a4-white paper 958 - print on both sides of the paper 959 - return status of the printer in response 960 - document #1 is in Postscript format 961 - here is the document to print 962 - document #2 is in Postscript format 963 - here is the document to print 965 < ----------------------------------------------------------+ 966 Print job accepted and spooled 967 - job id = #12345 968 - current state of print job = spooled 969 - submission time = 02/12/97, 15:35 970 - printer state = printing 972 8.8. SUBMITTING A PRINT JOB AS A FILE, PRINTING FAILS 974 An end-user wants to submit a print job. The print file already 975 exists on his workstation. The client and Printer are behind the 976 same corporate firewall. The printer is available to anyone 977 behind the firewall and no authorization or authentication is 978 required. The data is pushed to the Printer. The Printer is not 979 capable of spooling the output so it begins printing while still 980 receiving the file. An error occurs and the printer cannot 981 complete printing (in this case the user requires A4 paper and 982 that paper size is not available on the printer.) 984 Client IPP Printer 986 +---------------------------------------------------------- > 987 Here is a print job 988 - job name = MyJob 989 - notify me by email when done printing 990 - print on iso-a4-white paper 991 - print on both sides of the paper 992 - return status of the printer in response 993 - document is in Postscript format 994 - here is the document to print 996 < ----------------------------------------------------------+ 997 Print job accepted - printing failed - current state of 998 print job = canceled (A4 not available) 999 - submission time = 02/12/97, 15:35 1000 - printer state = ready 1002 8.9. SUBMITTING A PRINT JOB WITH AUTHENTICATION, PRIVACY AND 1003 PAYMENT 1005 A traveling executive needs to print a set of transparencies for 1006 an important business meeting. The charts are in Lotus Freelance 1007 format on his notebook computer. He has located a SirSpeedy print 1008 shop near his hotel that will print color transparencies. Because 1009 the information on the charts is sensitive, he wants to be sure 1010 that his data is sent to the Printer in an encrypted format. He 1011 also wants to authenticate the Printer. The Printer also 1012 authenticates the user. Payment occurs across the Internet. 1014 Client IPP Printer +---------------------------------------- 1015 ------------------ > 1016 < ----------------------------------------------------------+ 1017 Mutual authentication and exchange of secret keys 1019 +---------------------------------------------------------- > 1020 Here is a print job 1021 - job name = MyJob 1022 - notify me by email when done printing 1023 - print on iso-a4-white paper 1024 - print on both sides of the paper 1025 - return status of the printer in response 1026 - tell me where to pick up output 1027 - document is in Postscript format 1028 - here is the document to print (encrypted) 1030 < ----------------------------------------------------------+ 1031 Print job accepted and spooled 1032 - job id = #12345 1033 - current state of print job = spooled 1034 - submission time = 02/12/97, 15:35 1035 - printer state = printing 1036 - payment required to proceed with job 1037 - pick up at 230 East Main after 3:30pm today 1039 +---------------------------------------------------------- > 1040 < ----------------------------------------------------------+ 1041 Payment transaction 1043 8.10. SUBMITTING A PRINT JOB WITH DECRYPTION ERROR 1045 A traveling executive needs to print a set of transparencies for 1046 an important business meeting. The charts are in Lotus Freelance 1047 format on his notebook computer. He has located a SirSpeedy print 1048 shop near his hotel that will print color transparencies. Because 1049 the information on the charts is sensitive, he wants to be sure 1050 that his data is sent to the Printer in an encrypted format. He 1051 also wants to authenticate the Printer. The Printer also 1052 authenticates the user. Payment occurs across the Internet. An 1053 error occurs during decryption. 1055 Client IPP Printer 1057 +---------------------------------------------------------- > 1058 < ----------------------------------------------------------+ 1059 Mutual authentication and exchange of secret keys 1061 +---------------------------------------------------------- > 1062 Here is a print job 1063 - job name = MyJob 1064 - notify me by email when done printing 1065 - print on iso-a4-white paper 1066 - print on both sides of the paper 1067 - return status of the printer in response 1068 - tell me where to pick up output 1069 - document is in Postscript format 1070 - here is the document to print (encrypted) 1072 < ----------------------------------------------------------+ 1073 Print job accepted and spooled 1074 - job id = #12345 1075 - current state of print job = spooled 1076 - submission time = 02/12/97, 15:35 1077 - printer state = printing 1078 - payment required to proceed with job 1079 - pick up at 230 East Main after 3:30pm today 1081 +---------------------------------------------------------- > 1082 < ----------------------------------------------------------+ 1083 Payment transaction 1084 . 1085 . 1086 . 1087 < ----------------------------------------------------------+ 1088 Asynchronous response (email in this case) 1089 - decryption failed on job #12345 1090 - no pages printed 1091 - current state of job = aborted 1093 8.11. SUBMITTING A PRINT JOB WITH AUTHENTICATION 1095 An end-user wants to submit a print job. The print file already 1096 exists on his workstation. The client and Printer are behind the 1097 same corporate firewall. The printer is available to anyone 1098 behind the firewall but authentication and authorization is 1099 required. Authorization takes place using the authenticated end- 1100 user�s name. The data is pushed to the Printer. The Printer is 1101 capable of spooling the output. 1103 Client IPP Printer 1105 +---------------------------------------------------------- > 1106 < ----------------------------------------------------------+ 1107 Authentication 1109 Note: An authentication failure would end the transaction at 1110 this point. 1112 +---------------------------------------------------------- > 1113 Here is a print job 1114 - job name = MyJob 1115 - notify me by email when done printing 1116 - print on iso-a4-white paper 1117 - print on both sides of the paper 1118 - return status of the printer in response 1119 - tell me where to pick up output 1120 - document is in Postscript format 1121 - here is the document to print 1123 < ----------------------------------------------------------+ 1124 Print job accepted and spooled 1125 - job id = #12345 1126 - current state of print job = spooled 1127 - submission time = 02/12/97, 15:35 1128 - printer state = printing 1130 8.12. SUBMITTING A PRINT JOB GENERATED DYNAMICALLY 1132 An end-user wants to submit a print job. The print data is 1133 generated dynamically and is being transmitted by a printer 1134 driver on the client workstation as available. The client and 1135 Printer are behind the same corporate firewall. The printer is 1136 available to anyone behind the firewall and no authentication and 1137 authorization is required. The data is pushed to the Printer. The 1138 Printer is capable of spooling the output. No error occurs. 1140 Client IPP Printer 1142 +---------------------------------------------------------- > 1143 Here is a print job 1144 - job name = MyJob 1145 - notify me by email when done printing 1146 - print on iso-a4-white paper 1147 - print on both sides of the paper 1148 - return status of the printer in response 1149 - document is in Postscript format 1150 - here is the print job 1152 < ----------------------------------------------------------+ 1153 Print data accepted and spooling started 1154 - job id = #12345 1155 - current job state = spooled 1156 - submission time = 02/12/97, 15:35 1157 - printer state = printing 1159 8.13. SUBMITTING A PRINT JOB WITH A PRINTER JAM - CANCELED 1161 An end-user wants to submit a print job. The print data is 1162 generated dynamically and is being transmitted by a printer 1163 driver on the client workstation as available. The client and 1164 Printer are behind the same corporate firewall. The printer is 1165 available to anyone behind the firewall and no authentication and 1166 authorization is required. The data is pushed to the Printer. The 1167 Printer is not capable of spooling the output. The printer jams 1168 notifies the user and the user chooses to cancel the job. 1170 Client IPP Printer 1171 +---------------------------------------------------------- > 1172 Here is a print job 1173 - job name = MyJob 1174 - notify me by email when done printing 1175 - print on iso-a4-white paper 1176 - print on both sides of the paper 1177 - return status of the printer in response 1178 - document is in Postscript format 1179 - here is the document to print 1181 < ----------------------------------------------------------+ 1182 Print data accepted and printing started 1183 - job id = #12345 1185 +---------------------------------------------------------- > 1186 - What is the status of print job #12345? 1188 < --------------------------------------------------------- + 1189 - Job #12345 accepted but printer jammed, cannot continue 1191 +---------------------------------------------------------- > 1192 - Cancel job #12345 1194 * Printer flushes remaining data 1195 < ----------------------------------------------------------+ 1196 Print job terminated 1197 - current job state = canceled 1198 - submission time = 02/12/97, 15:35 1199 - printer state = jammed 1201 8.14. SUBMITTING A PRINT JOB WITH A PRINTER JAM - RECOVERED 1203 An end-user wants to submit a print job. The print data is 1204 generated dynamically and is being transmitted by a printer 1205 driver on the client workstation as available. The client and 1206 Printer are behind the same corporate firewall. The printer is 1207 available to anyone behind the firewall and no authentication and 1208 authorization is required. The data is pushed to the Printer. The 1209 Printer is not capable of spooling the output. The printer jams, 1210 notifies the user and the user clears the jam and elects to 1211 continue. 1213 Client IPP Printer 1215 +---------------------------------------------------------- > 1216 Here is a print job 1217 - job name = MyJob 1218 - notify me by email when done printing 1219 - print on iso-a4-white paper 1220 - print on both sides of the paper 1221 - return status of the printer in response 1222 - document is in Postscript format 1223 - here is the document to print 1225 < ----------------------------------------------------------+ 1226 Print data accepted and printing started 1227 - job id = #12345 1229 < --------------------------------------------------------- + 1230 - Notification: printer jammed, cannot continue 1232 * Jam is clear by human intervention, printing continues 1234 +---------------------------------------------------------- > 1235 Here is the last part of the document to print 1237 < ----------------------------------------------------------+ 1238 Print job received 1239 - current job state = printing 1240 - submission time = 02/12/97, 15:35 1241 - printer state = printing 1243 8.15. SUBMITTING A PRINT JOB WITH SERVER PULL 1245 An end-user wants to submit a print job. The print data is in a 1246 file and is publicly available. It is pulled by the Printer. The 1247 client and Printer are behind the same corporate firewall. The 1248 printer is available to anyone behind the firewall and no 1249 authentication and authorization is required. The Printer is 1250 capable of spooling the output. Printing may start before the 1251 entire job has been pulled. 1253 Client IPP Printer 1255 +---------------------------------------------------------- > 1256 Here is a print job 1257 - job name = MyJob 1258 - notify me by email when done printing 1259 - print on iso-a4-white paper 1260 - print on both sides of the paper 1261 - return status of the printer in response 1262 - here is a reference to the data to be printed 1264 < ----------------------------------------------------------+ 1265 Print data accepted and printing started 1266 - job id = #12345 1267 - current state of job = spooled 1268 - submission time = 02/12/97, 13:15 1269 - printer state = printing 1271 . 1272 . 1273 < ----------------------------------------------------------+ 1274 Get the file to be printed 1276 +---------------------------------------------------------- > 1277 Here it is 1279 Note: Failure to find the file, would end the transaction 1280 with an error at this point and an asynchronous 1281 notification would be send to the Client. 1283 < ----------------------------------------------------------+ 1284 Data received 1286 8.16. SUBMITTING A PRINT JOB WITH REFERENCED RESOURCES 1288 An end-user wants to submit a print job. The print data is on a 1289 file on the user�s workstation. It is pushed by the client, but 1290 printing requires some resources not included in the print file, 1291 e.g. a high resolution image or a font resource. Printer. The 1292 client and Printer are behind the same corporate firewall. The 1293 printer is available to anyone behind the firewall and no 1294 authentication and authorization is required. The Printer is 1295 capable of spooling the output. No errors occur. 1297 Client IPP Printer 1299 +---------------------------------------------------------- > 1300 Here is a print job 1301 - job name = MyJob 1302 - notify me by email when done printing 1303 - print on iso-a4-white paper 1304 - print on both sides of the paper 1305 - return status of the printer in response 1306 - external resource required - here is URL 1307 - here is the data to be printed 1308 - (with an external data reference) 1310 < ----------------------------------------------------------+ 1311 Print data accepted and printing started 1312 - job id = #12345 1313 - current state of job = spooled 1314 - submission time = 02/12/97, 13:15 1315 - printer state = printing 1317 . 1318 . 1319 < ----------------------------------------------------------+ 1320 Get the external resource 1322 +---------------------------------------------------------- > 1323 Here it is 1325 8.17. GETTING CAPABILITIES 1327 8.17.1. Submission Attributes 1329 An end-user wants to get the production and scheduling attributes 1330 that are supported or required when submitting jobs to this 1331 Printer. The client will use these attributes when forming the 1332 subsequent print request. 1334 Client IPP Printer 1335 +---------------------------------------------------------- > 1336 I�m going to submit a Postscript job 1337 give me your job submission attributes 1339 < ----------------------------------------------------------+ 1340 Postscript production attributes for this Printer are: 1341 - medium-select = us-letter-white, us-legal-white 1342 - default is us-letter-white 1343 - copies = 1,2,3,4,5 1344 - default is 1 1345 - print-quality = draft, normal, high 1346 - default is draft 1347 - sides = 1-sided, 2-sided-long-edge 1348 - default is 2-sided-long-edge 1349 - Job scheduling attributes for this Printer are: 1350 - job-priority = 1,2,3 1351 - default = 3 1353 8.17.2. Printer Capabilities 1355 An end-user wants to determine the resolution, marking 1356 technology, and PDLs supported by the printer. 1358 Client IPP Printer 1359 +---------------------------------------------------------- > 1360 Please tell me the 1361 - resolution of the printer 1362 - the marking technology of the printer 1363 - PDLs supported 1364 < ----------------------------------------------------------+ 1365 Printer resolution = 600 dpi 1366 Marking Technology = laser 1367 PDLS supported = Postscript level 2, PCL/6 1369 8.18. GETTING STATUS 1371 8.18.1. Printer State/Status 1373 An end-user wants to determine the state or status of the 1374 printer. 1376 Client IPP Printer 1378 +---------------------------------------------------------- > 1379 What is the state of the printer? 1381 < ----------------------------------------------------------+ 1382 Printer state = out-of-paper 1384 8.18.2. Job Status 1386 An end user wants to get the status of a job he has submitted. 1388 Client IPP Printer 1390 +---------------------------------------------------------- > 1391 Please tell me the status of job #12345 1393 < ----------------------------------------------------------+ 1394 Job #12345 is queued 1395 it is number 3 in the queue 1396 printer state = printing 1398 8.18.3. Status of All My Jobs 1400 An end user wants to get a list of all of the jobs he has 1401 submitted to this Printer. 1403 Client IPP Printer 1405 +---------------------------------------------------------- > 1406 Please tell me the status of my jobs 1408 < ----------------------------------------------------------+ 1409 Job #00012 is complete 1410 Printed at 12:35 on 01/23/97 1412 Job #09876 is printing 1414 Job #12345 is queued 1415 it is number 3 in the queue 1417 Job #34567 is queued 1418 it is number 7 in the queue 1420 8.19. ASYNCHRONOUS NOTIFICATION 1422 8.19.1. Job Completion 1424 An end-user wants to get notification of events that affect his 1425 print jobs. Print job completes without error. 1427 Client IPP Printer 1429 < ----------------------------------------------------------+ 1430 Print job #123 completed 1432 8.19.2. Job Complete with Data 1434 An end-user wants to get notification of events that affect his 1435 print jobs. Print job completes, users asked for all end of job 1436 information. 1438 Client IPP Printer 1440 < ----------------------------------------------------------+ 1441 Print job #123 completed 1442 - total pages printed = 15 1443 - number of copies printed = 3 1444 - total cost to print = $7.45 1445 - pick up copies in room H-6, building 005 1447 8.19.3. Print Job Fails 1449 An end-user wants to get notification of events that affect his 1450 print jobs. Print job fails. Printer is unattended. 1452 Client IPP Printer 1454 < ----------------------------------------------------------+ 1455 Print job #123 failed 1456 - total pages printed = 15 1457 - number of pages submitted = 25 1458 - printer-state = jammed 1460 8.20. CANCEL A JOB 1462 The end-user submits a print job and later decides to cancel it. 1464 Client IPP Printer 1466 +---------------------------------------------------------- > 1467 < ----------------------------------------------------------+ 1468 Authentication. 1470 +---------------------------------------------------------- > 1471 Cancel job #1234 1473 < ----------------------------------------------------------+ 1474 Job #1234 Canceled 1476 8.21. END TO END SCENARIO - WITHIN AN ENTERPRISE 1478 An office worker prints on shared departmental printers. All 1479 printers in the office are public, that is, no authentication or 1480 authorization is required. Printers are protected from external 1481 access by a firewall. No billing or accounting is required. Most 1482 printing is done from desktop applications. A help desk is 1483 provided for printing problems. Standard operating systems and 1484 applications are used. Drivers are available, but are installed 1485 manually by support personnel. This scenario assumes that drivers 1486 have been installed and that drivers are not IPP aware, that is, 1487 they cannot communicate across an IPP connection to obtain status 1488 and capabilities. IPP printers appear in application pull-down 1489 menus. Printer configuration data is hard wired into the driver. 1491 Client IPP Printer 1493 End-user selects print from the application pull down menu. An 1494 IPP printer is selected from the list of Printers offered 1496 The driver puts up a dialogue with hard-wired set of options 1497 for this printer. The end-user makes choices and submits job. 1499 +---------------------------------------------------------- > 1500 Here is a print job 1501 - job-name = memo-to-boss 1502 - notify me by email when job is complete 1503 - print on us-letter-white paper 1504 - print 1 copy 1505 - print at normal quality 1506 - print on 1 side 1507 - give me the state of the printer in response 1509 The driver generates the print data and passes it to the IPP 1510 driver a piece at a time as it is generated. 1512 +---------------------------------------------------------- > 1513 Here is the print data 1515 < ----------------------------------------------------------+ 1516 Print data received, file is spooled 1517 - printer state = printing 1518 - time submitted = 2/12/97, 15:35 1519 - current job state = spooled 1521 Client adds this job to list of current jobs. List of jobs and 1522 state of each is available on a pull-down menu on the client. 1524 End-user selects job #1234 from list and clicks on it to see its 1525 status. 1527 +---------------------------------------------------------- > 1528 Give me the state of job #1234 1529 and the state of the Printer 1531 < ----------------------------------------------------------+ 1532 Job #1234 state = spooled 1533 - it is number 3 in the queue 1534 - printer state = printing 1536 The job completes without error 1538 < ----------------------------------------------------------+ 1539 Job #1234 completed 1540 12 of 12 pages printed 1542 8.22. END TO END SCENARIO - ACROSS ENTERPRISES 1544 An office worker in Company A needs to print an office document 1545 on a � �public� 1546 � printer at Company B, a business partner. Both 1547 companies have corporate firewalls so the print request must flow 1548 out of A�s firewall and into B�s firewall. The office worker can 1549 look at public printers in Company B�s directory service. The 1550 document is generated by a desktop application. Since the printer 1551 is � �public� 1552 � no authentication or authorization is required. A 1553 driver is downloaded. The driver is IPP aware, that is, it can 1554 communicate dynamically through the IPP protocol layer to obtain 1555 information about the printer. 1557 Client Company B�s Directory Service 1559 End user connects to B�s Directory service 1561 +---------------------------------------------------------- > 1562 Find a Printer with these characteristics 1563 - public (no authorization or authentication required) 1564 - is in Lexington, building 004 1565 - prints black and white 1567 < ----------------------------------------------------------+ 1568 Printer � �Public-A� 1569 � 1570 - http://www.lexmark.com/pubprinter/a 1572 Printer � �Public-B� 1573 � 1574 - http://www.lexmark.com/pubprinter/b 1576 End user selects Public-A 1578 Client Public-A 1580 +---------------------------------------------------------- > 1581 I am using OS/2 V4.5, where can I find a driver for you? 1583 < ----------------------------------------------------------+ 1584 Drivers at http://www.lexmark.com/pubprinters/a/os245 1586 End user gets driver and installs it on his PC. 1588 End-user selects print from the application pull down menu. 1589 � �Public-A� 1590 � is selected from the list of Printers offered 1592 +---------------------------------------------------------- > 1593 I�m going to submit a print job 1594 give me your job submission attributes 1596 < ----------------------------------------------------------+ 1597 Production attributes for this Printer are: 1598 - medium-select = us-letter-white, us-legal-white 1599 - default is us-letter-white 1600 - copies = 1,2,3,4,5 1601 - default is 1 1602 - print-quality = draft, normal, high 1603 - default is draft 1604 - sides = 1-sided, 2-sided-long-edge 1605 - default is 2-sided-long-edge 1607 Job scheduling attributes for this Printer are: 1608 - job-priority = 1,2,3 1609 default = 3 1611 Driver puts up dialogue with available options and fills in the 1612 defaults. 1614 End-user makes choices and submits job 1616 +---------------------------------------------------------- > 1617 Here is a print job 1618 - job-name = memo-to-Don-Wright 1619 - notify me by email when job is complete 1620 - print on us-letter-white paper 1621 - print 1 copy 1622 - print at normal quality 1623 - print on 1 side 1624 - give me the state of the printer in response 1626 The driver generates the print data and passes it to the IPP 1627 driver a piece at a time. 1629 +---------------------------------------------------------- > 1630 Here is the print data 1632 < ----------------------------------------------------------+ 1633 Print data received, and spooling started 1634 print job id = #1234 1636 Print data received, file is spooled 1638 - printer state = printing 1639 - time submitted = 2/12/97, 15:35 1640 - current job state = spooled 1642 Client adds this job to list of current jobs. List of jobs and 1643 state of each is available on a pull-down menu on the client. 1645 End-user selects job #1234 from list and clicks on it to see its 1646 status. 1648 +---------------------------------------------------------- > 1649 Give me the state of job #1234 1650 and the state of the Printer 1652 < ----------------------------------------------------------+ 1653 Job #1234 state = spooled 1654 - it is number 3 in the queue 1655 - printer state = printing 1657 * The job completes without error 1658 < ----------------------------------------------------------+ 1659 Job #1234 completed 1660 12 of 12 pages printed 1662 8.23. END TO END SCENARIO - ON THE INTERNET 1664 An executive in her hotel room is finishing an important 1665 presentation on her laptop computer. She connects to a local 1666 print shop through the web to get a copy of her charts printed 1667 for tomorrow�s presentation. She must find a print shop that is 1668 convenient and can print color transparencies. She must download 1669 and temporarily install a driver in order to generate the PDL 1670 required by the print shop. Mutual authentication is required by 1671 the printshop and payment must be made in advance. The job is 1672 encrypted on the wire to prevent eavesdropping. 1674 End-user completes presentation. She goes to the web and connects 1675 to the SirSpeedy home page. 1677 Client SirSpeedy Directory Service 1678 +---------------------------------------------------------- > 1680 Find me a printer with these characteristics 1681 - Near Market Street in San Jose 1682 - Prints color transparencies 1683 - drivers can be downloaded 1684 - supports privacy (encryption) 1685 - takes my VISA card 1686 - give me rough cost per page 1688 Available Printers matching these characteristics are looked up 1689 in the Directory Service 1691 < ----------------------------------------------------------+ 1693 Printer � �Color-A� 1694 � 1695 - located at 123 First Street in San Jose 1696 - URL is http://www.SirSpeedy.com/FirstStreet/Color-A 1697 - prints color transparencies 1698 - 600 dpi laser 1699 - driver ABC-Postscript-V1.3 available at this URL 1700 - cost = $.75 per page 1701 - authentication required to use printer 1702 - payment required prior to printing 1703 - printer�s public key = � �!@8778961� 1704 � 1706 Printer � �Color-B� 1707 � 1709 - located at 67 San Carlos Street, San Jose 1710 - URL is http://www.SirSpeedy.com/SanCarlos/Color-B 1711 - prints color transparencies 1712 - 1200 dpi laser 1713 - driver XYZ-Poscscript-V4.3 available at this URL 1714 - cost = $1.25 per page 1715 - authentication required to use printer 1716 - payment required prior to printing 1717 - printer�s public key = � �!@#$%78961� 1718 � 1719 - more information at this URL 1721 The user decides to use the first printer because it is closer. 1722 She connects to the URL given to get a driver. 1724 Client Driver URL 1726 +---------------------------------------------------------- > 1727 I need a driver for � �Color-A� 1728 � 1729 I am using Windows 95 1731 < ----------------------------------------------------------+ 1732 Driver installation files 1734 Driver is installed 1736 User connects to 1737 � �Color-A� 1738 � 1740 Client IPP Printer � �Color-A� 1741 � 1743 +---------------------------------------------------------- > 1744 < ----------------------------------------------------------+ 1745 Mutual authentication and exchange of secret keys 1747 +---------------------------------------------------------- > 1748 I�m going to submit a print job 1749 give me your job submission attributes 1751 < ----------------------------------------------------------+ 1752 Production attributes for this Printer are: 1753 - medium-select = us-letter-white, us-legal-white 1754 - default is us-letter-white 1755 - copies = 1,2,3,4,5 1756 - default is 1 1757 - print-quality = draft, normal, high 1758 - default is draft 1759 - sides = 1-sided, 2-sided-long-edge 1760 - default is 2-sided-long-edge 1762 Job scheduling attributes for this Printer are: 1763 - job-priority = 1,2,3 1764 default = 3 1766 Driver puts up dialogue with available options and fills in the 1767 defaults. 1769 End-user makes choices and submits job 1771 +---------------------------------------------------------- > 1772 Here is a print job 1773 - job-name = presentation 1774 - notify me by email when job is complete 1775 - print on us-letter-transparency 1776 - print 1 copy 1777 - print at high quality 1778 - print by 9:00 am tomorrow morning 1779 - give me the state of the printer in response 1781 The driver generates the print data and passes it to the IPP 1782 driver a piece at a time. 1784 +---------------------------------------------------------- > 1785 Here is the print data 1787 < ---------------------------------------------------------+ 1788 Print data received, and spooling started 1789 print job id = #1234 1791 Print data received, file is spooled 1792 - printer state = printing 1793 - time submitted = 2/12/97, 15:35 1794 - current job state = held, waiting for payment 1796 +---------------------------------------------------------- > 1797 < ----------------------------------------------------------+ 1798 Payment transaction 1800 < ----------------------------------------------------------+ 1801 Job is scheduled to print, pick up after 9:00am tomorrow 1802 Thank you for using SirSpeedy