idnits 2.17.1 draft-ietf-ipp-req-03.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 == The page length should not exceed 58 lines per page, but there was 52 longer pages, the longest (page 10) being 64 lines 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], [IPP-IIG], [IPP-MOD], [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 99: '...2. Operator (NOT REQUIRED FOR V1.0)......' RFC 2119 keyword, line 102: '...ministrator (NOT REQUIRED FOR v1.0)......' RFC 2119 keyword, line 403: '...3.2. OPERATOR (NOT REQUIRED FOR V1.0)...' RFC 2119 keyword, line 438: '... ADMINISTRATOR (NOT REQUIRED FOR V1.0)...' Miscellaneous warnings: ---------------------------------------------------------------------------- == Line 574 has weird spacing: '...tes and enume...' == Line 805 has weird spacing: '...for the purpo...' -- 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: 'IPP LPD' is mentioned on line 51, but not defined == Missing Reference: 'RFC2069' is mentioned on line 498, but not defined ** Obsolete undefined reference: RFC 2069 (Obsoleted by RFC 2617) == Unused Reference: 'IPP-LPD' is defined on line 828, but no explicit reference was found in the text == Outdated reference: A later version (-01) exists of draft-ietf-ipp-implementers-guide-00 ** Downref: Normative reference to an Informational draft: draft-ietf-ipp-implementers-guide (ref. 'IPP-IIG') ** 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' ** Downref: Normative reference to an Experimental draft: draft-ietf-ipp-rat (ref. 'IPP-RAT') -- Possible downref: Non-RFC (?) normative reference: ref. 'ISO10175' ** Downref: Normative reference to an Informational RFC: RFC 1179 -- Possible downref: Non-RFC (?) normative reference: ref. 'SSL' Summary: 15 errors (**), 0 flaws (~~), 8 warnings (==), 9 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 November 16, 1998 Expires: May 16, 1999 6 Design Goals 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 areas, and 12 its working groups. Note that other groups may also distribute working 13 documents as Internet-Drafts. 15 Internet-Drafts are draft documents valid for a maximum of six months 16 and may be updated, replaced, or obsoleted by other documents at any 17 time. It is inappropriate to use Internet-Drafts as reference material 18 or to cite them other than as ''work in progress.'' 20 To learn the current status of any Internet-Draft, please check the 21 ''1id-abstracts.txt'' listing contained in the Internet-Drafts Shadow 22 Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe), 23 munnari.oz.au (Pacific Rim), ftp.ietf.org (US East Coast), or 24 ftp.isi.edu (US West Coast). 26 Abstract 28 This document is one of a set of documents, which together describe all 29 aspects of a new Internet Printing Protocol (IPP). IPP is an 30 application level protocol that can be used for distributed printing 31 using Internet tools and technologies. This document takes a broad look 32 at distributed printing functionality, and it enumerates real-life 33 scenarios that help to clarify the features that need to be included in 34 a printing protocol for the Internet. It identifies requirements for 35 three types of users: end users, operators, and administrators. The 36 design goals document calls out a subset of end user requirements that 37 are satisfied in IPP/1.0. Operator and administrator requirements are 38 out of scope for version 1.0. 40 Expires May 16, 1999 41 The full set of IPP documents includes: 43 Design Goals for an Internet Printing Protocol (this document) 45 Rationale for the Structure and Model and Protocol for the 46 Internet Printing Protocol [IPP-RAT] 47 Internet Printing Protocol/1.0: Model and Semantics [IPP-MOD] 48 Internet Printing Protocol/1.0: Encoding and Transport [IPP-PRO] 49 Internet Printing Protocol/1.0: Implementer's Guide [IPP-IIG] 51 Mapping between LPD and IPP Protocols [IPP LPD] 53 The "Rationale for the Structure and Model and Protocol for the Internet 54 Printing Protocol" document describes IPP from a high level view, 55 defines a roadmap for the various documents that form the suite of IPP 56 specifications, and gives background and rationale for the IETF working 57 group's major decisions. 59 The "Internet Printing Protocol/1.0: Model and Semantics" document 60 describes a simplified model consisting of abstract objects, their 61 attributes, and their operations that is independent of encoding and 62 transport. The model consists of a Printer and a Job object. The Job 63 optionally supports multiple documents. IPP 1.0 semantics allow end- 64 users and operators to query printer capabilities, submit print jobs, 65 inquire about the status of print jobs and printers, and cancel print 66 jobs. This document also addresses security, internationalization, and 67 directory issues. 69 The "Internet Printing Protocol/1.0: Encoding and Transport" document is 70 a formal mapping of the abstract operations and attributes defined in 71 the model document onto HTTP/1.1. It defines the encoding rules for a 72 new Internet media type called "application/ipp". 74 The "Internet Printing Protocol/1.0: Implementer's Guide" document gives 75 insight and advice to implementers of IPP clients and IPP objects. It 76 is intended to help them understand IPP/1.0 and some of the 77 considerations that may assist them in the design of their client and/or 78 IPP object implementations. For example, a typical order of processing 79 requests is given, including error checking. Motivation for some of the 80 specification decisions is also included. 82 The "Mapping between LPD and IPP Protocols" document gives some advice 83 to implementers of gateways between IPP and LPD (Line Printer Daemon) 84 implementations. 86 Expires: May 16, 1999 87 TABLE OF CONTENTS 89 1. INTRODUCTION.......................................................5 90 2. TERMINOLOGY........................................................5 91 3. DESIGN GOALS.......................................................7 92 3.1. End-user.......................................................7 93 3.1.1. Finding or locating a printer..............................7 94 3.1.2. Create an instance of the printer..........................7 95 3.1.3. Viewing the status and capabilities of a printer...........8 96 3.1.4. Submitting a print job.....................................8 97 3.1.5. Viewing the status of a submitted print job................9 98 3.1.6. Canceling a Print Job.....................................10 99 3.2. Operator (NOT REQUIRED FOR V1.0)..............................10 100 3.2.1. Alerting..................................................10 101 3.2.2. Changing Print and Job Status.............................10 102 3.3. Administrator (NOT REQUIRED FOR v1.0).........................11 103 4. OBJECTIVES OF THE PROTOCOL........................................12 104 4.1. SECURITY CONSIDERATIONS.......................................12 105 4.2. Interaction with LPD (RFC1179)................................13 106 4.3. Extensibility.................................................13 107 4.4. Firewalls.....................................................14 108 4.5. Internationalization..........................................14 109 5. IPP SCENARIOS.....................................................15 110 5.1. Printer Discovery.............................................16 111 5.2. Driver Installation...........................................17 112 5.3. Submitting a Print Job........................................17 113 5.4. Getting Status/Capabilities...................................18 114 5.5. Asynchronous Notification.....................................19 115 5.6. Job Canceling.................................................19 116 6. Security Considerations...........................................20 117 7. COPYRIGHT.........................................................21 118 8. REFERENCES........................................................22 119 9. ACKNOWLEDGMENTS...................................................23 120 10. AUTHOR'S ADDRESS.................................................23 121 11. APPENDIX - DETAILED SCENARIOS....................................24 122 11.1. Printer discovery within an enterprise.......................24 123 11.2. Printer discovery across enterprises.........................26 124 11.3. Printer discovery on the Internet -logical operations........27 125 11.4. Printer discovery on the Internet - authentication...........28 126 11.5. Driver Download..............................................29 127 11.6. Submitting a print job as a file.............................30 128 11.7. Submitting a print job with two documents....................31 129 11.8. Submitting a print job as a file, printing fails.............32 130 11.9. Submitting a print job with authentication, PRIVACY and payment 131 ...................................................................32 132 11.10. Submitting a print job with decryption error................34 133 11.11. Submitting a print job with authentication..................35 134 11.12. Submitting a print job generated dynamically................36 135 11.13. Submitting a print job with a Printer jam - CANCELED........37 136 11.14. Submitting a print job with a Printer jam - recovered.......38 137 11.15. Submitting a print job with server pull.....................39 139 Expires: May 16, 1999 140 11.16. Submitting a print job with referenced resources............40 141 11.17. Getting Capabilities........................................41 142 11.17.1. Submission Attributes...................................41 143 11.17.2. Printer Capabilities....................................41 144 11.18. Getting Status..............................................42 145 11.18.1. Printer State/Status....................................42 146 11.18.2. Job Status..............................................42 147 11.18.3. Status of All My Jobs...................................42 148 11.19. Asynchronous Notification...................................43 149 11.19.1. Job Completion..........................................43 150 11.19.2. Job Complete with Data..................................43 151 11.19.3. Print Job Fails.........................................43 152 11.20. Cancel a job................................................44 153 11.21. End to end Scenario - within an enterprise..................45 154 11.22. End to end Scenario - across enterprises....................47 155 11.23. End to End Scenario - on the internet.......................50 157 Expires: May 16, 1999 159 1. INTRODUCTION 161 The IPP protocol is heavily influenced by the printing model introduced 162 in the Document Printing Application (DPA) [ISO10175] standard. 163 Although DPA specifies both end user and administrative features, IPP 164 version 1.0 (IPP/1.0) focuses only on end user functionality. 166 2. TERMINOLOGY 168 Internet Printing for the purposes of this document is the application 169 of Internet tools, programs, servers and networks to allow end-users to 170 print to a remote printer using, after initial setup or configuration, 171 the same methods, operations and paradigms as would be used for a 172 locally attached or a local area network attached printer. This could 173 include the use of HTTP servers and browsers and other applications for 174 providing static, dynamic and interactive printer locating services, 175 user installation, selection, configuration, print job submission, 176 printer capability inquiry and status inquiry of remote printers and 177 jobs. 179 For the purposes of this document, a WEB Browser is software available 180 from a number of sources including but not limited to the following: 181 Microsoft Internet Explorer, NCSA Mosaic, Netscape Navigator, Sun Hot 182 Java!. The major task of these products is to use the Hypertext 183 Transport Protocol (HTTP) to retrieve, interpret and display Hypertext 184 Markup Language (HTML). These products are often a part of a complete 185 Internet Printing system because they are often used as a means of 186 obtaining the status of or more information about the printing system; 187 however, they may not be present in all implementations. 189 Throughout this document, 'printer' shall be interpreted to include any 190 device which is capable of marking on a piece of media using any 191 available technology. These design goals do not include support for 192 multi-tiered printing solutions involving servers (single or multiple) 193 logically in front of the actual printing device yet all such 194 configurations shall be supported but shall appear to the end-user as 195 only a single device. 197 Throughout this document 'driver' refers to the code installed in some 198 client operating system to generate the print data stream for the 199 intended printer. Some computing environments may not include a separate 200 printer driver. Rather, the generation of the proper print data stream 201 is accomplished in an application on that computer. How such a computer 202 environment or application is updated to support a new printer now made 203 available using IPP is outside the scope of IPP. The actual details for 204 installing a printer driver are operating system dependent and are also 205 outside the scope of IPP. See also section 4.1 (SECURITY CONSIDERATIONS) 206 for security implications of driver download and installation. 208 The IPP protocol will support the following physical configurations: 210 Expires: May 16, 1999 211 - An IPP client talking to an IPP Printer object imbedded in a single, 212 physical output device. 213 - An IPP Client talking to a server containing one or more IPP Printer 214 objects. Each Printer object is associated with exactly one physical 215 output device supported by the server. The protocol between the 216 server and the output devices is undefined. 217 - An IPP Client talking to an IPP Printer object in a server. The 218 Printer object is associated with one or more physical output 219 devices, but the client only sees the Printer object, which is an 220 abstraction and represents all of the associated physical output 221 devices. The protocol between the server and the physical output 222 devices is undefined. 224 Throughout this document, certain design goals will be identified as not 225 being a part of version 1.0 (or V1.0) of the protocol or as being 226 satisfied by means outside of IPP. IPP is assumed to be one part, an 227 enabler, of a complete Internet Printing solution. For example printer 228 instance creation is not performed by but is enabled by the protocol. 229 Globally, none of the operator or administrators wants and needs are 230 included in the design goals for version 1.0. Some of the end-user 231 wants and needs may also be excluded from version 1.0 and will be so 232 noted in the description of them. Subsequent versions of the protocol 233 (e.g. V2.0) may include support for these initially excluded wants and 234 needs. 236 Expires: May 16, 1999 237 3. DESIGN GOALS 239 The next three sections identify the design goals for an Internet 240 printing protocol from three roles assumed by humans: end-user, 241 operator, and administrator. The goals defined here are only those that 242 need to be addressed by an Internet printing protocol. Other wants and 243 needs, such as that the operator needs physical access to the printer 244 (e.g. to be able to load paper or clear jams) are not covered by this 245 document. Section 5 contains scenarios which provide more detailed 246 examples of the entire process including discovery, status, printing and 247 end-of-job reporting. 249 3.1. END-USER 251 An end-user of a printer accepting jobs through the Internet is one of 252 the roles in which humans act. The end-user is the person that will 253 submit a job to be printed on the printer. 255 The wants and needs of the end-user are broken down into six categories: 256 finding/locating a printer, creating a local instance of a printer, 257 viewing printer status, viewing printer capabilities, submitting a print 258 job, viewing print job status, altering the attributes of a print job. 260 3.1.1. Finding or locating a printer. 262 End-users want to be able to find and locate printers to which they are 263 authorized to print. They want to be able to perform this function 264 using a standard WEB browser or other application. Multiple criteria 265 can be applied to find the printers needed. These criteria include but 266 are not limited to: 268 - by name (Printer 1, Joes-color-printer, etc.) 269 - by geographic location (bldg 1, Kentucky, etc.) 270 - by capability or attribute (color, duplex, legal paper, etc.) 272 Additionally, while it is outside of scope of IPP, end-users want to be 273 able to limit the scope of their searching to: 275 - inside a functional sub-domain 276 - include only a particular domain (lexmark.com) 277 - exclude specified domains 279 While an Internet printing protocol may not of itself include this 280 function, IPP must define and enable a directory schema which will 281 provide the necessary information for a directory service implementation 282 to consistently represent printers by their IPP attributes. 284 3.1.2. Create an instance of the printer. 286 Expires: May 16, 1999 287 After finding the desired printer, an end-user needs to be able to 288 create a local instance of that printer within the end-user operating 289 system or desktop. This local instance will vary depending upon the 290 printing paradigm of the operating system. For example, some UNIX users 291 will only want a queue or a reference to a remote printer created on 292 their machine while other UNIX users and Windows NT users will want the 293 queue and also the necessary icons and registry entries to be created 294 and initialized. Where required, drivers may need to be downloaded from 295 some repository and installed on the computer. All necessary 296 decompressing, unpacking, and other installation actions should occur 297 without end-user interaction or intervention excepting initial approval 298 by the end-user. Once the local instance of the printer has been 299 installed, it shall appear to the end-user of the operating system and 300 to the applications running there as any other printer (local, local 301 area network connected, or network operating system connected) on the 302 end-user desktop or environment. IPP's role in this goal is simply to 303 enable the creation of the printer instance providing information such 304 as where to locate a printer driver for this printer, as an attribute of 305 an IPP Printer. 307 3.1.3. Viewing the status and capabilities of a printer. 309 Before using a selected printer or, in fact at any time, the end-user 310 needs the ability to verify the characteristics and status of both 311 printers and jobs queued for that printer. When checking the 312 characteristics of a printer, the end-user typically wants to be able to 313 determine the capability of the device, e.g.: 315 - supported media, commonly paper, by size and type 316 - paper handling capability, e.g. duplex, collating, finishing 317 - color capability 319 When checking the status of the printer and its print jobs, the end-user 320 typically wants to be able to determine: 322 - is the printer on-line? 323 - what are the defaults to be used for printing? 324 - how many jobs are queued for the printer? 325 - how are job priorities assigned? (outside the scope of IPP) 327 3.1.4. Submitting a print job. 329 Once the desired printer has been located and installed, the end-user 330 wants to print to that printer from normal applications using standard 331 methods. These normal applications include such programs as word 332 processors, spreadsheets, data-base applications, WEB browsers, 333 production printing applications, etc. Additionally, the end-user may 334 want to print a file already existing on the end-user's computer -- 335 "simple push." In addition to printing from an application and simple 336 push, the end-user needs to have the ability to submit a print job by 337 reference. Printing by reference is defined to mean as submitting a job 339 Expires: May 16, 1999 340 by providing a reference to an existing document. The reference, a URI, 341 will be resolved before the actual print process occurs. Submitting a 342 job by reference relieves the user from downloading the document from 343 the remote server and then sending it via IPP to the printer. This 344 saves both time and network bandwidth. 346 Some means shall be provided to determine if the format of a job matches 347 the capability of the printer. This can be done by one of the following 348 (all of which are outside of scope of the IPP protocol): 350 - the end-user selects the correct printer driver 351 - the printer automatically selects the proper interpreter 352 - the end-user uses some other manual procedure. 354 A standard action shall be defined should the job's requirements not 355 match the capabilities of the printer. 357 Because the end-user does not want to know the details of the underlying 358 printing process, the protocol must support job-to-printer capability 359 matching (all implementations are not necessarily required to implement 360 this function.) This matching capability requires knowing both the 361 printer's capabilities and attributes and those capabilities and 362 attributes required by the job. Actions taken when a print job requires 363 capabilities or attributes that are not available on the printer vary 364 and can include but are not limited to: 366 - rejecting the print job 367 - redirecting the print job to another printer (Not in V1.0) 368 - printing the job, accepting differences in the appearance 370 Print jobs will also be submitted by background or batch applications 371 without human intervention. 373 End-users need the ability to set certain print job parameters at the 374 time the job is submitted. These parameters include but are not limited 375 to: 377 - number of copies 378 - single or two sided printing 379 - finishing 380 - job priority 382 3.1.5. Viewing the status of a submitted print job. 384 After a job has been submitted to a printer, the end-user needs a way to 385 view the status of that job (i.e. job waiting, job printing, job done) 386 and to determine where the job is in the print queue. 388 In addition to the need to inquire about the status of a print job, 389 automatic notification of the completion of that job is also required. 391 Expires: May 16, 1999 392 Notification means are not defined by the protocol but the protocol must 393 provide a means of enabling and disabling the notification. 395 3.1.6. Canceling a Print Job 397 While a job is waiting to be printing or has been started but not yet 398 completed, the original creator/submitter of the print job (i.e. the 399 end-user) shall be able to cancel the job entirely (job is waiting) or 400 the remaining portion of it (job is printing.) Altering the print job 401 itself is not a V1.0 design goal. 403 3.2. OPERATOR (NOT REQUIRED FOR V1.0) 405 An operator of a printer accepting jobs through the Internet is one of 406 the roles in which humans act. The operator has the responsibility of 407 monitoring the status of the printer as well as managing and controlling 408 the jobs at the device. These responsibilities include but are not 409 limited to the replenishing of supplies (ink, toner, paper, etc.), the 410 clearing of minor errors (paper jams, etc.) and the re-prioritization of 411 end-user jobs. Operator wants and needs will not be addressed by V1.0 412 of the protocol. 414 The wants and needs of the operator include all those of the end-user 415 but may include additional privileges. For example, an operator may be 416 able to view all print jobs on a printer while the end-user might only 417 be able to see his own jobs. 419 3.2.1. Alerting. 421 One of the required operator functions is having the ability to discover 422 or to be alerted to changes in the status of a printer particularly 423 those changes that cause a printer to stop printing and to be able to 424 correct those problems. As such, an Internet printing protocol shall be 425 able to alert a designated operator or operators to these conditions 426 such as 'out of paper', 'out of ink', etc. Additionally. the operator 427 shall be able to, asynchronous to other printer activity, inquire as to 428 a printer's or a job's status. 430 3.2.2. Changing Print and Job Status. 432 Another of the required operator functions is the ability to affect 433 changes to printer and job status remotely. For example, the operator 434 will need to be able to re-prioritize or cancel any print jobs on a 435 printer to which the operator has authority. 437 Expires: May 16, 1999 438 3.3. ADMINISTRATOR (NOT REQUIRED FOR V1.0) 440 An administrator of a printer accepting jobs through the Internet is one 441 of the roles in which humans act. The administrator has the 442 responsibility of creating the printer instances and controlling the 443 authorization of other end-users and operators. Administrator wants and 444 needs will not be addressed by V1.0 of the protocol. 446 The wants and needs of the administrator include all those of the end- 447 user and, in some environments, some or all of those of the operator. 448 Minimally, the administrator must also have the tools, programs, 449 utilities and supporting protocols available to be able to: 451 - create an instance of a printer 452 - create, edit and maintain the list of authorized end-users 453 - create, edit and maintain the list of authorized operators 454 - create, edit and maintain the list of authorized 455 administrators 456 - create, customize, change or otherwise alter the manner in 457 which the status capabilities and other information about printers 458 and jobs are presented 459 - create, customize, or change other printer or job features 460 - administrate billing or other charge-back mechanisms 461 - create sets of defaults 462 - create sets of capabilities 464 The administrator must have the capability to perform all the above 465 tasks locally or remotely to the printer. 467 Expires: May 16, 1999 468 4. OBJECTIVES OF THE PROTOCOL 470 The protocol to be defined by an Internet printing working group will 471 address the wants and needs of the end-user (V1.0). It will not, at 472 least initially, address the operator or administrator wants and needs 473 (V2.0). 475 The protocol defined shall be independent of the operating system of 476 both the client and the server. Generally, any platform capable of 477 supporting a WEB Browser should be capable of being a client. 478 Generally, any platform providing a WEB/HTTP server and printing 479 services should be capable of being a server. Usage of the WEB Browser 480 and Server is not required for IPP; the operating system, operating 481 system extensions or other applications may provide IPP functionality 482 directly. 484 In many environments such as Windows 95, Windows NT and OS/2, the print 485 data is created and transmitted to the printer on the fly rather than 486 being created, spooled and then transmitted to the printer (a typical 487 UNIX method.) The Internet Printing Protocol must properly handle 488 either methodology and make this transparent to the end-user. 490 4.1. SECURITY CONSIDERATIONS 492 It is required that the Internet Printing Protocol be able to operate 493 within a secure environment. Wherever reasonable, IPP ought to make use 494 of existing security protocols and services. IPP will not invent new 495 security features when the design goals described in this document can 496 be met by existing protocols and services. Examples of such services 497 include Secure Socket Layer Version 3 (SSL3) [SSL] and HTTP Digest 498 Access Authentication [RFC2069]. Note: SSL3 is not on the IETF 499 standards track. 501 Since we cannot anticipate the security levels or the specific threats 502 that any given IPP print administrator may be concerned with, IPP must 503 be capable of operating with different security mechanisms and policies 504 as required by the individual installation. The initial security needs 505 of IPP are derived from two primary considerations. First, the printing 506 environments described in this document take into account that the 507 client, the Printer, and the document to be printed may each exist in 508 different security domains. When objects are in different security 509 domains the design goals for authentication and message protection may 510 be much stronger than when they are all in the same domain. 512 Secondly, the sensitivity and value of the content being printed will 513 vary from one instance of a print job to another. For example, a 514 publicly available document does not need the same level of protection 515 as a payroll document does. Message protection design goals include 516 data origin authentication, privacy, integrity, and non-repudiation. 518 Expires: May 16, 1999 519 In many environments (e.g. Windows, OS/2) a printer driver may be needed 520 to create the proper datastream for printer. This document discusses 521 downloading such a new driver from a variety of sources. Downloading 522 and installing any software, including drivers) on a computer exposes 523 that computer to a number of security risks including but not limited 524 to: 526 - defective software 527 - malicious software (e.g. Trojan horses) 528 - inappropriate software (i.e. software doing something 529 deemed unreasonable by the user.) 531 As such, proper security considerations and actions need to be taken by 532 the user and/or a system administrator to prevent the compromising of 533 the computer. Administrators should configure downloading mechanism for 534 printer drivers in such a way as to be able to verify the source of 535 driver software and encrypt or otherwise protect that software during 536 download. 538 Examples including security considerations can be found in sections 5 539 (IPP SCENARIOS) and 11 (APPENDIX - DETAILED SCENARIOS) later in this 540 document. 542 4.2. INTERACTION WITH LPD (RFC1179) 544 Many versions of UNIX and in fact other operating systems provide a 545 means of printing as described in [RFC1179] (Line Printer Daemon 546 Protocol.) This document describes the file formats for the control and 547 data files as well as the messages used by the protocol. Because of the 548 simplistic approach taken by this protocol, many manufacturers have 549 include proprietary enhancements and extensions to 'lpd.' Because of 550 this divergence and due to other design goals described in this 551 document, there is no requirement for backward compatibility or 552 interoperability with 'lpd'. However, a mapping of LPD functionality 553 and IPP functionality shall be provided so as to enable a gateway 554 between LPD and IPP. 556 4.3. EXTENSIBILITY 558 The Internet Printing Protocol shall be extensible by several means that 559 facilitate interoperability and prevent implementation collisions: 561 - by providing a process whereby implementers can submit proposals 562 for registration of new attributes and new enumerated values for 563 existing attributes. 565 * that require review and approval. The Internet Assigned 566 Number Authority (IANA) will be the repository for such 567 accepted registration proposals after review. 569 Expires: May 16, 1999 570 * that do not require review and approval. IANA will be the 571 repository for such registrations. 573 - by providing syntax in the protocol so that implementers may add 574 private (i.e. unregistered) attributes and enumerated attribute 575 values. 577 - by providing versioning and negotiation so as to enable future 578 implementations of IPP to interoperate with implementations of 579 version 1.0 of IPP. 581 4.4. FIREWALLS 583 As stated in section 3 Design Goals, Internet printing shall, by 584 definition, support printing from one enterprise to another. As such, 585 the Internet printing protocol must be capable of passing through 586 firewalls and/or proxy servers (where enabled by the firewall 587 administrator) preferably without modification to the existing firewall 588 technology. 590 4.5. INTERNATIONALIZATION 592 Users of Internet printing will come from all over the world. As such, 593 where appropriate, internationalization and localization will be enabled 594 for the protocol. 596 Expires: May 16, 1999 597 5. IPP SCENARIOS 599 Each of the scenarios in this section describes a specific IPP 600 operation, such as submitting a print job. Section 11 contains several 601 detailed flows for each scenario to provide additional detail. The 602 examples should not be considered exhaustive, but illustrative of the 603 functions and features required in the protocol. Flows are intended to 604 be protocol neutral. It is not assumed that all of the functions and 605 features described in these scenarios will necessarily be supported 606 directly by IPP or in version 1.0 of IPP. 608 See the IPP Model and Semantics document for details on configurations 609 of clients, servers and firewalls. 611 Expires: May 16, 1999 612 5.1. PRINTER DISCOVERY 614 Client Directory Service 615 Service 617 +----------------------------------------------------------- > 618 give me information on printers with these characteristics 620 < -----------------------------------------------------------+ 621 Information on Printers matching these characteristics 623 The objective of printer discovery is to locate printers that meet the 624 client's wants and needs. The Directory Service should provide enough 625 information for the client to make an initial choice. The client may 626 have to connect to each individual Printer offered to get more detail. 627 Not all information available from the Directory Service is obtained 628 using IPP; some information may be administratively provided. 630 The actual protocol used between client and Directory or Name Service is 631 considered outside the scope of IPP. Printer Discover is included in the 632 scenarios to provide design goals for the directory schema for IPP 633 Printers and to further define Printer attributes. 635 Characteristics that might be considered when locating a Printer 636 include: 638 - capabilities of the Printer, e.g. PDLs supported 639 - physical location, e.g. in building 010 640 - driver required and location 641 - cost per page to print (outside the scope of IPP) 642 - whether or not printer is access controlled 643 - whether or not usage requires client authentication 644 - whether or not Printer can be authenticated 645 - whether or not payment is required for printing (outside the scope of 646 IPP) 647 - maximum job size (spool size) (outside the scope of IPP) 648 - whether or not Printer support compression (outside the scope of IPP) 649 - whether or not Printer supports encryption 650 - administrative limits on this Printer 651 - maximum number of copies per job 652 - maximum number of pages per job 654 Responses could additionally include: 656 - how to get more information 657 - web page 658 - telephone number 659 - help desk 661 Expires: May 16, 1999 663 5.2. DRIVER INSTALLATION 665 Client Printer 667 +----------------------------------------------------------- > 668 Where can I find a driver & software to install it? 670 < -----------------------------------------------------------+ 671 URIs for drivers and install software 673 Driver here refers to the code installed in some client operating system 674 to generate the print data stream for the intended printer. The actual 675 details for installing a printer driver are operating system dependent 676 and are also outside the scope of IPP. However, an IPP printer or a 677 directory service advertising an IPP Printer should be capable of 678 telling a client what drivers are available and /or required, where they 679 can be found, and provide pointers to installation instructions, 680 installation code or initialization strings required to install the 681 driver. See section 4.1 (SECURITY CONSIDERATIONS) for security 682 implications of driver download and installation. 684 5.3. SUBMITTING A PRINT JOB 686 Client IPP Printer 688 +----------------------------------------------------------- > 689 Here is a Print Job 690 - Job attributes 691 - Print data 693 < -----------------------------------------------------------+ 694 Response 696 The protocol must support these sources of client data: 698 - Print data is a file submitted with the job 699 - Print data is generated on the fly by an application 700 - Print data is a file referenced by a URI 702 The protocol must handle overrun conditions in the printer and must 703 support overlapped printing and downloading of the file in devices that 704 are unable to spool files before printing them. 706 Expires: May 16, 1999 707 Every print request will have a response. Responses will indicate 708 success or failure of the request and provide information on failures 709 when they occur. Responses would include things like: 711 - Got the print job and queued it 712 - Got the print job and am printing it 713 - Got the print job, started to print it, but printing failed 714 - why it failed (e.g. unrecoverable PostScript error) 715 - state of the printer 716 - how much printed 717 - Got the print job but couldn't print it 718 - why it can't be printed 719 - state of the printer 720 - Got the print job but don't know what to do with it 721 - Didn't get a complete print job (e.g. communication failure) 723 5.4. GETTING STATUS/CAPABILITIES 725 Client IPP Printer 727 +----------------------------------------------------------- > 728 Get status and/or capabilities of Printer 730 < -----------------------------------------------------------+ 731 Status/Capabilities 733 Clients will need to get information about 735 - Static capabilities of the device 736 - Dynamic state of the Printer (e.g. out of paper) 737 - State of a specific job owned by this client 738 - State of all jobs owned by this client 739 - queued 740 - printing 741 - completed 742 - Job submission attributes supported/required 743 - scheduling attributes (e.g. priority) 744 - production attributes (e.g. number of copies) 746 Expires: May 16, 1999 748 5.5. ASYNCHRONOUS NOTIFICATION 750 Client IPP Printer 752 +----------------------------------------------------------- > 753 Use the following method to notify me of Printer events 755 . 756 . 757 . 758 < -----------------------------------------------------------+ 759 Asynchronous notification of Printer event 761 Clients must be able to request asynchronous notification for Printer 762 events such as 764 - job completion 765 - a fatal error that requires the job to be resubmitted 766 - a condition that severely impacts a queued job for this client 767 e.g. printer is out of paper 769 Note: end-user notification is a V1.0 design goal while operator 770 notification is for V2.0. 772 5.6. JOB CANCELING 774 Client IPP Printer 776 +----------------------------------------------------------- > 777 Cancel the named job as indicated 779 < -----------------------------------------------------------+ 780 Response (did it or not) 782 Similarly clients must be able to make changes to jobs which have been 783 submitted and are queued for printing. Changing of job attributes 784 should also be supported. Job modifications, holding and releasing of 785 jobs are not included in the design goals for IPP v1.0. 787 Expires: May 16, 1999 788 6. SECURITY CONSIDERATIONS 790 The security considerations for IPP are described in Section 4.1 above. 792 Expires: May 16, 1999 793 7. COPYRIGHT 795 Copyright(C) The Internet Society 1997. All Rights Reserved. 797 This document and translations of it may be copied and furnished to 798 others, and derivative works that comment on or otherwise explain it or 799 assist in its implementation may be prepared, copied, published and 800 distributed, in whole or in part, without restriction of any kind, 801 provided that the above copyright notice and this paragraph are included 802 on all such copies and derivative works. However, this document itself 803 may not be modified in any way, such as by removing the copyright notice 804 or references to the Internet Society or other Internet organizations, 805 except as needed for the purpose of developing Internet standards in 806 which case the procedures for copyrights defined in the Internet 807 Standards process must be followed, or as required to translate it into 808 languages other than English. 810 The limited permissions granted above are perpetual and will not be 811 revoked by the Internet Society or its successors or assigns. 813 This document and the information contained herein is provided on an "AS 814 IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK 815 FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT 816 LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT 817 INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR 818 FITNESS FOR A PARTICULAR PURPOSE." 820 Expires: May 16, 1999 821 8. REFERENCES 823 [IPP-IIG] 824 Hastings, T., Manros, C., "Internet Printing Protocol/1.0: 825 Implementer's Guide", draft-ietf-ipp-implementers-guide-00.txt, 826 November 1998, work in progress. 828 [IPP-LPD] 829 Herriot, R., Hastings, T., Jacobs, N., Martin, J., 830 "Mapping between LPD and IPP Protocols", 831 draft-ietf-ipp-lpd-ipp-map-05.txt, November 1998. 833 [IPP-MOD] 834 deBry, R., Hastings, T., Herriot, R., Isaacson, S., Powell, 835 P., "Internet Printing Protocol/1.0: Model and Semantics" 836 draft-ietf-ipp-mod-11.txt, November, 1998. 838 [IPP-PRO] 839 Herriot, R., Butler, S., Moore, P., Tuner, R., 840 "Internet Printing Protocol/1.0: Encoding and Transport", 841 draft-ietf-ipp-pro-07.txt, November, 1998. 843 [IPP-RAT] 844 Zilles, S., "Rationale for the Structure and Model and Protocol 845 for the Internet Printing Protocol", 846 draft-ietf-ipp-rat-04.txt, November, 1998. 848 [ISO10175] 849 ISO/IEC 10175, Document Printing Application, June 1996. 851 [RFC1179] 852 McLaughlin, L. III, (editor), "Line Printer Daemon Protocol" 853 RFC 1179, August 1990. 855 [SSL] 856 Netscape, The SSL Protocol, Version 3, (Text version 3.02), November 857 1996. 859 Expires: May 16, 1999 860 9. ACKNOWLEDGMENTS 862 This document draws heavily from preliminary work done by others 863 especially in the Printer Working Group (PWG). The author gratefully 864 acknowledges the specific contributions of: 866 Scott Isaacson Roger deBry 867 Novell IBM 868 sisaacson@novell.com rdebry@us.ibm.com 870 Carl-Uno Manros Robert Herriot 871 Xerox Sun 872 manros@cp10.es.xerox.com Robert.Herriot@eng.sun.com 874 Tom Hastings Peter Zehler 875 Xerox Xerox 876 hastings@cp10.es.xerox.com Peter.Zehler@usa.xerox.com 878 10. AUTHOR'S ADDRESS 880 F.D. (Don) Wright 881 Lexmark International 882 C14/035-3 883 740 New Circle Rd 884 Lexington, KY 40550 886 Phone: 606-232-4808 887 Fax: 606-232-6740 888 E-mail: don@lexmark.com 890 Expires: May 16, 1999 891 11. APPENDIX - DETAILED SCENARIOS 893 The following are more detailed scenarios illustrating how the Internet 894 Printing Protocol is expected to be used as a part of a complete 895 Internet Printing system. Some parts of the scenarios include concepts, 896 functions and information that may be outside of the scope of version 897 1.0 of IPP (e.g. cost per page, payments means available, etc.) The 898 information contained herein is meant to be generic. There may not be 899 an exact wording or terminology match between these scenarios and the 900 implementation documents. 902 11.1. PRINTER DISCOVERY WITHIN AN ENTERPRISE 904 A user wants to find a color Postscript printer in his/her enterprise 905 which will print transparencies. The client, directory service, and 906 printer are all behind the same corporate firewall. Because color foils 907 are expensive, printers of this type are access controlled and require 908 an account to be established so that printing can be billed back to the 909 using department. Note the request to find a printer usable by Dept. 910 J15. Drivers for all supported printers are available from the server 911 they are associated with. A help desk is provided for end user support. 912 The printer is unattended. 914 Client Directory Service 916 +---------------------------------------------------------- > 917 Find a printer with these characteristics 918 - prints color, prints transparencies 919 - prints Postscript 920 - is in building 003 921 - accessible by the client 923 < ----------------------------------------------------------+ 924 Printer "Color-A" 925 - prints color, prints transparencies 926 - prints Postscript 927 - in room H-6, building 003 928 - driver ABC-Postscript-V1.3 required, here is URI 929 - cost is $.45 per page for color transparencies 930 - limit is 10 pages per job 931 - authentication required to use printer 932 - printer is unattended 933 - help desk at x5001 935 Printer "Color-B" 936 - prints color, prints transparencies 937 - prints Postscript 938 - in room J-10, building 003 940 Expires: May 16, 1999 941 - driver XYZ-Postscript-V2.4 required, here is URI 942 - cost is $1.25 page for color transparencies 943 - limit is 5 pages per job 944 - authentication is required to use printer 945 - printer is unattended 946 - help desk at x5001 948 Expires: May 16, 1999 950 11.2. PRINTER DISCOVERY ACROSS ENTERPRISES 952 A user in Company A wants to find a public printer in a business 953 partner's enterprise (Company B) on which to print a purchase order. The 954 client is behind one corporate firewall and the directory service and 955 the printer are behind a different corporate firewall. Drivers for all 956 supported printers are available from the server they are associated 957 with. A web page is provided for end user support for public printers. 959 Client Company B Directory Service 961 +---------------------------------------------------------- > 962 Find a printer with these characteristics 963 - prints black and white 964 - is in El Segundo, building A 965 - is a public printer 967 < ----------------------------------------------------------+ 968 Printer "Public-A" 969 - prints black and white 970 - prints Postscript 971 - in El Segundo, room H-6, building A 972 - driver ABC-Postscript-V1.3 required, here is URI 973 - printer is public 974 - help available at http://xerox/elSegundo/publicPrinters 976 Printer "Public-B" 977 - prints black and white 978 - prints PCL/5e 979 - is in El Segundo, room J-10, building A 980 - driver XYZ-PCL-V2.4 required, here is URI 981 - printer is public 982 - help available at http://xerox/elSegundo/publicPrinters 984 Expires: May 16, 1999 986 11.3. PRINTER DISCOVERY ON THE INTERNET -LOGICAL OPERATIONS 988 A student wants to print a paper on a printer at his neighborhood Ink- 989 o's print shop. The report was written using Microsoft Word. The student 990 is interested in the cost of printing since his budget is limited. Note 991 the use of logical operators to find this information. 993 Client Ink-o's Directory Service 995 +---------------------------------------------------------- > 996 Find a Printer with these characteristics 997 - prints color or black and white 998 - costs less than $.50 per page 999 - tell me about resolution and marking technology 1001 < ----------------------------------------------------------+ 1002 Printer "Color-A" 1003 - prints color 1004 - 600 dpi laser printer 1005 - prints Postscript 1006 - driver ABC-Postscript-V1.3 required, here is URI 1007 - cost is $.50 per page for color 1008 - payment required prior to submitting print job 1009 - here is URI for more information on Ink-o's 1011 Printer "Mono-B" 1012 - prints black and white 1013 - 300 dpi inkjet printer 1014 - prints Postscript 1015 - driver XYZ-Postscript-V2.4 required, here is URI 1016 - cost is $0.35 page for black and white 1017 - payment required prior to submitting print job 1018 - here is URI for more information on Ink-o's 1020 Expires: May 16, 1999 1022 11.4. PRINTER DISCOVERY ON THE INTERNET - AUTHENTICATION 1024 An executive in her hotel room is finishing an important presentation on 1025 her laptop computer. She connects to a local print shop through the web 1026 to get a copy of her charts printed for tomorrow's presentation. She 1027 must find a print shop that is convenient to her hotel and can print 1028 color transparencies. She wants to be sure that the printer can be 1029 authenticated and can accept encrypted data. 1031 Client SirZippy Directory Service 1033 +---------------------------------------------------------- > 1034 Find a Printer with these characteristics 1035 - prints color transparencies 1036 - is in Boulder, Colorado 1037 - Printer can be authenticated 1038 - Printer supports encryption 1040 Tell me when you are open for business 1042 < ----------------------------------------------------------+ 1043 Printer "Color-A" 1044 - prints color transparencies 1045 - prints Postscript 1046 - driver ABC-Postscript-V1.3 required, here is URI 1047 - payment required prior to submitting print job 1048 - Printer can be authenticated 1049 - Data can be encrypted 1050 - Located at 1670 Pearl Street, Boulder, CO 1051 - This Branch is open 24 hours a day 1053 Printer "Color-B" 1054 - prints color transparencies 1055 - prints Postscript 1056 - driver ABC-Postscript-V1.3 required, here is URI 1057 - payment required prior to submitting print job 1058 - Printer can be authenticated 1059 - Data can be encrypted 1060 - Located at 1220 Arapahoe, Boulder, CO 1061 - This Branch is open from 9:00 am to 6:30 pm 1063 Expires: May 16, 1999 1065 11.5. DRIVER DOWNLOAD 1067 An end user in an enterprise wants to print a lengthy report on a newly 1068 installed high speed PostScript printer. Since she will likely use this 1069 printer often, she would like to download a driver and install it on her 1070 workstation. She is running Windows 95. Note: Driver download is not a 1071 V1.0 design goal. 1073 Client IPP Printer 1075 +---------------------------------------------------------- > 1076 Tell me where to find print drivers for you 1078 < ----------------------------------------------------------+ 1079 Driver install file is at 1080 http://www.ibm.com/drivers/NP12a/Win95 1082 Expires: May 16, 1999 1084 11.6. SUBMITTING A PRINT JOB AS A FILE 1086 An end-user wants to submit a print job. The print file already exists 1087 on his workstation. The client and printer are behind the same corporate 1088 firewall. The printer is available to anyone behind the firewall and no 1089 authorization or authentication is required. The data is pushed to the 1090 printer. The printer is capable of spooling the output. No errors occur. 1092 Client IPP Printer 1094 +---------------------------------------------------------- > 1095 Here is a print job 1096 - job name = MyJob 1097 - notify me by email when done printing 1098 - print on iso-a4-white paper 1099 - print on both sides of the paper 1100 - return status of the printer in response 1101 - document is in Postscript format 1102 - here is the document to print 1104 < ----------------------------------------------------------+ 1105 Print job accepted and spooled 1106 - job id = #12345 1107 - current state of print job = spooled 1108 - submission time = 02/12/97, 15:35 1109 - printer state = printing 1111 Expires: May 16, 1999 1113 11.7. SUBMITTING A PRINT JOB WITH TWO DOCUMENTS 1115 An end-user wants to submit a print job. The print file already exists 1116 on his workstation. The client and printer are behind the same corporate 1117 firewall. The printer is available to anyone behind the firewall and no 1118 authorization or authentication is required. The data is pushed to the 1119 printer. The job consists of two separate documents. The printer is 1120 capable of spooling the output. No errors occur. 1122 Client IPP Printer 1124 +---------------------------------------------------------- > 1125 Here is a print job 1126 - job name = MyJob 1127 - notify me by email when done printing 1128 - print on iso-a4-white paper 1129 - print on both sides of the paper 1130 - return status of the printer in response 1132 < ----------------------------------------------------------+ 1133 Print job accepted and spooled 1134 - job id = #12345 1135 - submission time = 02/12/97, 15:35 1136 +---------------------------------------------------------- > 1137 - here is the document to print 1139 < ----------------------------------------------------------+ 1140 - OK 1142 +---------------------------------------------------------- > 1143 - here is the document to print, it is the last document. 1145 < ----------------------------------------------------------+ 1146 - OK 1148 Expires: May 16, 1999 1150 11.8. SUBMITTING A PRINT JOB AS A FILE, PRINTING FAILS 1152 An end-user wants to submit a print job. The print file already exists 1153 on his workstation. The client and printer are behind the same corporate 1154 firewall. The printer is available to anyone behind the firewall and no 1155 authorization or authentication is required. The data is pushed to the 1156 printer. The printer is not capable of spooling the output so it begins 1157 printing while still receiving the file. An error occurs and the printer 1158 cannot complete printing (in this case the user requires A4 paper and 1159 that paper size is not available on the printer.) 1161 Client IPP Printer 1163 +---------------------------------------------------------- > 1164 Here is a print job 1165 - job name = MyJob 1166 - notify me by email when done printing 1167 - print on iso-a4-white paper 1168 - print on both sides of the paper 1169 - return status of the printer in response 1170 - document is in Postscript format 1171 - here is the document to print 1173 < ----------------------------------------------------------+ 1174 Print job accepted 1176 - printing failed 1177 - current state of print job = canceled (A4 not available) 1178 - submission time = 02/12/97, 15:35 1179 - printer state = ready 1181 11.9. SUBMITTING A PRINT JOB WITH AUTHENTICATION, PRIVACY AND PAYMENT 1183 A traveling executive needs to print a set of transparencies for an 1184 important business meeting. The charts are in Lotus Freelance format on 1185 his notebook computer. He has located a SirZippy print shop near his 1186 hotel that will print color transparencies. Because the information on 1187 the charts is sensitive, he wants to be sure that his data is sent to 1188 the Printer in an encrypted format. He also wants to authenticate the 1189 Printer. The Printer also authenticates the user. Payment occurs across 1190 the Internet. 1192 Client IPP Printer 1194 +---------------------------------------------------------- > 1195 < ----------------------------------------------------------+ 1197 Mutual authentication and exchange of secret keys 1199 Expires: May 16, 1999 1201 +---------------------------------------------------------- > 1202 Here is a print job (encrypted) 1203 - job name = MyJob 1204 - notify me by email when done printing 1205 - print on iso-a4-white paper 1206 - print on both sides of the paper 1207 - return status of the printer in response 1208 - tell me where to pick up output 1209 - document is in Postscript format 1210 - here is the document to print 1212 < ----------------------------------------------------------+ 1213 Print job accepted and spooled (encrypted) 1214 - job id = #12345 1215 - current state of print job = spooled 1216 - submission time = 02/12/97, 15:35 1217 - printer state = printing 1218 - payment required to proceed with job 1219 - pick up at 230 East Main after 3:30 pm today 1221 +---------------------------------------------------------- > 1222 < ----------------------------------------------------------+ 1223 Payment transaction 1225 Expires: May 16, 1999 1227 11.10. SUBMITTING A PRINT JOB WITH DECRYPTION ERROR 1229 A traveling executive needs to print a set of transparencies for an 1230 important business meeting. The charts are in Lotus Freelance format on 1231 his notebook computer. He has located a SirZippy print shop near his 1232 hotel that will print color transparencies. Because the information on 1233 the charts is sensitive, he wants to be sure that his data is sent to 1234 the printer in an encrypted format. He also wants to authenticate the 1235 printer. The printer also authenticates the user. Payment occurs across 1236 the Internet. An error occurs during decryption. 1238 Client IPP Printer 1240 +---------------------------------------------------------- > 1241 < ----------------------------------------------------------+ 1242 Mutual authentication and exchange of secret keys 1244 +---------------------------------------------------------- > 1245 Here is a print job (encrypted) 1246 - job name = MyJob 1247 - notify me by email when done printing 1248 - print on iso-a4-white paper 1249 - print on both sides of the paper 1250 - return status of the printer in response 1251 - tell me where to pick up output 1252 - document is in Postscript format 1253 - here is the document to print 1255 < ----------------------------------------------------------+ 1256 Print job accepted and spooled (encrypted) 1257 - job id = #12345 1258 - current state of print job = spooled 1259 - submission time = 02/12/97, 15:35 1260 - printer state = printing 1261 - payment required to proceed with job 1262 - pick up at 230 East Main after 3:30 pm today 1264 +---------------------------------------------------------- > 1265 < ----------------------------------------------------------+ 1266 Payment transaction 1267 . 1268 . 1269 . 1270 < ----------------------------------------------------------+ 1271 Asynchronous response (email in this case) 1272 - decryption failed on job #12345 1273 - no pages printed 1274 - current state of job = aborted 1276 Expires: May 16, 1999 1278 11.11. SUBMITTING A PRINT JOB WITH AUTHENTICATION 1280 An end-user wants to submit a print job. The print file already exists 1281 on his workstation. The client and printer are behind the same corporate 1282 firewall. The printer is available to anyone behind the firewall but 1283 authentication and authorization is required. Authorization takes place 1284 using the authenticated end-user's name. The data is pushed to the 1285 printer. The printer is capable of spooling the output. 1287 Client IPP Printer 1289 +---------------------------------------------------------- > 1290 < ----------------------------------------------------------+ 1291 Authentication 1293 Note: An authentication failure would end the transaction at 1294 this point. 1296 +---------------------------------------------------------- > 1297 Here is a print job 1298 - job name = MyJob 1299 - notify me by email when done printing 1300 - print on iso-a4-white paper 1301 - print on both sides of the paper 1302 - return status of the printer in response 1303 - tell me where to pick up output 1304 - document is in Postscript format 1305 - here is the document to print 1307 < ----------------------------------------------------------+ 1308 Print job accepted and spooled 1309 - job id = #12345 1310 - current state of print job = spooled 1311 - submission time = 02/12/97, 15:35 1312 - printer state = printing 1314 Expires: May 16, 1999 1316 11.12. SUBMITTING A PRINT JOB GENERATED DYNAMICALLY 1318 An end-user wants to submit a print job. The print data is generated 1319 dynamically and is being transmitted by a printer driver on the client 1320 workstation as available. The client and printer are behind the same 1321 corporate firewall. The printer is available to anyone behind the 1322 firewall and no authentication and authorization is required. The data 1323 is pushed to the printer. The printer is capable of spooling the output. 1324 No error occurs. 1326 Client IPP Printer 1328 +---------------------------------------------------------- > 1329 Here is a print job 1330 - job name = MyJob 1331 - notify me by email when done printing 1332 - print on iso-a4-white paper 1333 - print on both sides of the paper 1334 - return status of the printer in response 1335 - document is in Postscript format 1336 - here is the print job 1338 < ----------------------------------------------------------+ 1339 Print data accepted and spooling started 1340 - job id = #12345 1341 - current job state = spooled 1342 - submission time = 02/12/97, 15:35 1343 - printer state = printing 1345 Expires: May 16, 1999 1347 11.13. SUBMITTING A PRINT JOB WITH A PRINTER JAM - CANCELED 1349 An end-user wants to submit a print job. The print data is generated 1350 dynamically and is being transmitted by a printer driver on the client 1351 workstation as available. The client and printer are behind the same 1352 corporate firewall. The printer is available to anyone behind the 1353 firewall and no authentication and authorization is required. The data 1354 is pushed to the printer. The printer is not capable of spooling the 1355 output. The printer jams notifies the user and the user chooses to 1356 cancel the job. 1358 Client IPP Printer 1359 +---------------------------------------------------------- > 1360 Here is a print job 1361 - job name = MyJob 1362 - notify me by email when done printing 1363 - print on iso-a4-white paper 1364 - print on both sides of the paper 1365 - return status of the printer in response 1366 - document is in Postscript format 1367 - here is the document to print 1369 < ----------------------------------------------------------+ 1370 Print data accepted and printing started 1371 - job id = #12345 1373 +---------------------------------------------------------- > 1374 - What is the status of print job #12345? 1376 < --------------------------------------------------------- + 1377 - Job #12345 accepted but printer jammed, cannot continue 1379 +---------------------------------------------------------- > 1380 - Cancel job #12345 1382 * Printer flushes remaining data 1383 < ----------------------------------------------------------+ 1384 Print job terminated 1385 - current job state = canceled 1386 - submission time = 02/12/97, 15:35 1387 - printer state = jammed 1389 Expires: May 16, 1999 1391 11.14. SUBMITTING A PRINT JOB WITH A PRINTER JAM - RECOVERED 1393 An end-user wants to submit a print job. The print data is generated 1394 dynamically and is being transmitted by a printer driver on the client 1395 workstation as available. The client and printer are behind the same 1396 corporate firewall. The printer is available to anyone behind the 1397 firewall and no authentication and authorization is required. The data 1398 is pushed to the printer. The printer is not capable of spooling the 1399 output. The printer jams, notifies the user and the user clears the jam 1400 and elects to continue. 1402 Client IPP Printer 1404 +---------------------------------------------------------- > 1405 Here is a print job 1406 - job name = MyJob 1407 - notify me by email when done printing 1408 - print on iso-a4-white paper 1409 - print on both sides of the paper 1410 - return status of the printer in response 1411 - document is in Postscript format 1412 - here is the document to print 1414 < ----------------------------------------------------------+ 1415 Print data accepted and printing started 1416 - job id = #12345 1418 < --------------------------------------------------------- + 1419 - Notification: printer jammed, cannot continue 1421 * Jam is clear by human intervention, printing continues 1423 +---------------------------------------------------------- > 1424 Here is the last part of the document to print 1426 < ----------------------------------------------------------+ 1427 Print job received 1428 - current job state = printing 1429 - submission time = 02/12/97, 15:35 1430 - printer state = printing 1432 Expires: May 16, 1999 1434 11.15. SUBMITTING A PRINT JOB WITH SERVER PULL 1436 An end-user wants to submit a print job. The print data is in a file and 1437 is publicly available. It is pulled by the printer. The client and 1438 printer are behind the same corporate firewall. The printer is available 1439 to anyone behind the firewall and no authentication and authorization is 1440 required. The printer is capable of spooling the output. Printing may 1441 start before the entire job has been pulled. 1443 Client IPP Printer 1445 +---------------------------------------------------------- > 1446 Here is a print job 1447 - job name = MyJob 1448 - notify me by email when done printing 1449 - print on iso-a4-white paper 1450 - print on both sides of the paper 1451 - return status of the printer in response 1452 - here is a reference to the data to be printed 1454 < ----------------------------------------------------------+ 1455 Print data accepted and printing started 1456 - job id = #12345 1457 - current state of job = spooled 1458 - submission time = 02/12/97, 13:15 1459 - printer state = printing 1461 . 1462 . 1463 < ----------------------------------------------------------+ 1464 Get the file to be printed 1466 +---------------------------------------------------------- > 1467 Here it is 1469 Note: Failure to find the file, would end the transaction 1470 with an error at this point and an asynchronous 1471 notification would be send to the Client. 1473 < ----------------------------------------------------------+ 1474 Data received 1476 Expires: May 16, 1999 1478 11.16. SUBMITTING A PRINT JOB WITH REFERENCED RESOURCES 1480 An end-user wants to submit a print job. Part of the print data is on a 1481 file on the user's workstation. It is pushed by the client, but the 1482 print job requires some resource not included in the print file. The 1483 client and printer are behind the same corporate firewall. The printer 1484 is available to anyone behind the firewall and no authentication and 1485 authorization is required. The printer is capable of spooling the 1486 output. No errors occur. 1488 Client IPP Printer 1490 +---------------------------------------------------------- > 1491 Here is a print job 1492 - job name = MyJob 1493 - notify me by email when done printing 1494 - print on iso-a4-white paper 1495 - print on both sides of the paper 1496 - return status of the printer in response 1498 < ----------------------------------------------------------+ 1499 Print job accepted and spooled 1500 - job id = #12345 1501 - submission time = 02/12/97, 15:35 1503 +---------------------------------------------------------- > 1504 - here is the document to print 1506 < ----------------------------------------------------------+ 1507 - OK 1509 +---------------------------------------------------------- > 1510 - here is the URI to print, it is the last document. 1512 < ----------------------------------------------------------+ 1513 - OK 1515 < ----------------------------------------------------------+ 1516 Get the external resource 1518 +---------------------------------------------------------- > 1519 Here it is 1521 Expires: May 16, 1999 1523 11.17. GETTING CAPABILITIES 1524 11.17.1. Submission Attributes 1526 An end-user wants to get the production and scheduling attributes that 1527 are supported or required when submitting jobs to this printer. The 1528 client will use these attributes when forming the subsequent print 1529 request. 1531 Client IPP Printer 1532 +---------------------------------------------------------- > 1533 I'm going to submit a Postscript job 1534 give me your job submission attributes 1536 < ----------------------------------------------------------+ 1537 Postscript production attributes for this Printer are: 1538 - medium-select = us-letter-white, us-legal-white 1539 - default is us-letter-white 1540 - copies = 1,2,3,4,5 1541 - default is 1 1542 - print-quality = draft, normal, high 1543 - default is draft 1544 - sides = 1-sided, 2-sided-long-edge 1545 - default is 2-sided-long-edge 1546 - Job scheduling attributes for this Printer are: 1547 - job-priority = 1,2,3 1548 - default = 3 1550 11.17.2. Printer Capabilities 1552 An end-user wants to determine the resolution, marking technology, and 1553 PDLs supported by the printer. 1555 Client IPP Printer 1556 +---------------------------------------------------------- > 1557 Please tell me the 1558 - resolution of the printer 1559 - the marking technology of the printer 1560 - PDLs supported 1561 < ----------------------------------------------------------+ 1562 Printer resolution = 600 dpi 1563 Marking Technology = laser 1564 PDLs supported = Postscript level 2, PCL/6 1566 Expires: May 16, 1999 1568 11.18. GETTING STATUS 1569 11.18.1. Printer State/Status 1571 An end-user wants to determine the state or status of the printer. 1573 Client IPP Printer 1575 +---------------------------------------------------------- > 1576 What is the state of the printer? 1578 < ----------------------------------------------------------+ 1579 Printer state = out-of-paper 1581 11.18.2. Job Status 1583 An end user wants to get the status of a job he has submitted. 1585 Client IPP Printer 1587 +---------------------------------------------------------- > 1588 Please tell me the status of job #12345 1590 < ----------------------------------------------------------+ 1591 Job #12345 is queued 1592 it is number 3 in the queue 1593 printer state = printing 1595 11.18.3. Status of All My Jobs 1597 An end user wants to get a list of all of the jobs he has submitted to 1598 this Printer. 1600 Client IPP Printer 1602 +---------------------------------------------------------- > 1603 Please tell me the status of my jobs 1605 < ----------------------------------------------------------+ 1606 Job #00012 is complete 1607 Printed at 12:35 on 01/23/97 1609 Job #09876 is printing 1611 Job #12345 is queued 1612 it is number 3 in the queue 1614 Job #34567 is queued 1615 it is number 7 in the queue 1617 Expires: May 16, 1999 1619 11.19. ASYNCHRONOUS NOTIFICATION 1620 11.19.1. Job Completion 1622 An end-user wants to get notification of events that affect his print 1623 jobs. Print job completes without error. 1625 Client IPP Printer 1627 < ----------------------------------------------------------+ 1628 Print job #123 completed 1630 11.19.2. Job Complete with Data 1632 An end-user wants to get notification of events that affect his print 1633 jobs. Print job completes, users asked for all end of job information. 1635 Client IPP Printer 1637 < ----------------------------------------------------------+ 1638 Print job #123 completed 1639 - total pages printed = 15 1640 - number of copies printed = 3 1641 - total cost to print = $7.45 1642 - pick up copies in room H-6, building 005 1644 11.19.3. Print Job Fails 1646 An end-user wants to get notification of events that affect his print 1647 jobs. Print job fails. Printer is unattended. 1649 Client IPP Printer 1651 < ----------------------------------------------------------+ 1652 Print job #123 failed 1653 - total pages printed = 15 1654 - number of pages submitted = 25 1655 - printer-state = jammed 1657 Expires: May 16, 1999 1659 11.20. CANCEL A JOB 1661 The end-user submits a print job and later decides to cancel it. 1663 Client IPP Printer 1665 +---------------------------------------------------------- > 1666 < ----------------------------------------------------------+ 1667 Authentication. 1669 +---------------------------------------------------------- > 1670 Cancel job #1234 1672 < ----------------------------------------------------------+ 1673 Job #1234 Canceled 1675 Expires: May 16, 1999 1677 11.21. END TO END SCENARIO - WITHIN AN ENTERPRISE 1679 An office worker prints on shared departmental printers. All printers in 1680 the office are public, that is, no authentication or authorization is 1681 required. Printers are protected from external access by a firewall. No 1682 billing or accounting is required. Most printing is done from desktop 1683 applications. A help desk is provided for printing problems. Standard 1684 operating systems and applications are used. Drivers are available, but 1685 are installed manually by support personnel. This scenario assumes that 1686 drivers have been installed and that drivers are not IPP aware, that is, 1687 they cannot communicate across an IPP connection to obtain status and 1688 capabilities. IPP printers appear in application pull-down menus. 1689 Printer configuration data is hard wired into the driver. 1691 End-user selects print from the application pull down menu. An IPP 1692 printer is selected from the list of Printers offered 1694 The driver puts up a dialogue with hard-wired set of options 1695 for this printer. The end-user makes choices and submits job. 1697 Client IPP Printer 1698 +---------------------------------------------------------- > 1699 Here is a print job 1700 - job-name = memo-to-boss 1701 - notify me by email when job is complete 1702 - print on us-letter-white paper 1703 - print 1 copy 1704 - print at normal quality 1705 - print on 1 side 1706 - give me the state of the printer in response 1708 The driver generates the print data and passes it to the IPP driver a 1709 piece at a time as it is generated. 1711 +---------------------------------------------------------- > 1712 Here is the print data 1714 < ----------------------------------------------------------+ 1715 Print data received, file is spooled 1716 - printer state = printing 1717 - time submitted = 2/12/97, 15:35 1718 - current job state = spooled 1720 Client adds this job to list of current jobs. List of jobs and state of 1721 each is available on a pull-down menu on the client. 1723 End-user selects job #1234 from list and clicks on it to see its status. 1725 Expires: May 16, 1999 1726 +---------------------------------------------------------- > 1727 Give me the state of job #1234 1728 and the state of the Printer 1730 < ----------------------------------------------------------+ 1731 Job #1234 state = spooled 1732 - it is number 3 in the queue 1733 - printer state = printing 1735 The job completes without error 1737 < ----------------------------------------------------------+ 1738 Job #1234 completed 1739 12 of 12 pages printed 1741 Expires: May 16, 1999 1743 11.22. END TO END SCENARIO - ACROSS ENTERPRISES 1745 An office worker in Company A needs to print an office document on a 1746 "public" printer at Company B, a business partner. Both companies have 1747 corporate firewalls so the print request must flow out of A's firewall 1748 and into B's firewall. The office worker can look at public printers in 1749 Company B's directory service. The document is generated by a desktop 1750 application. Since the printer is "public" no authentication or 1751 authorization is required. A driver is downloaded. The driver is IPP 1752 aware, that is, it can communicate dynamically through the IPP protocol 1753 layer to obtain information about the printer. 1755 Client Company B's Directory Service 1757 End user connects to B's Directory service 1759 +---------------------------------------------------------- > 1760 Find a Printer with these characteristics 1761 - public (no authorization or authentication required) 1762 - is in Lexington, building 004 1763 - prints black and white 1765 < ----------------------------------------------------------+ 1766 Printer "Public-A" 1767 - http://www.lexmark.com/pubprinter/a 1769 Printer "Public-B" 1770 - http://www.lexmark.com/pubprinter/b 1772 End user selects Public-A 1774 Client Public-A 1776 +---------------------------------------------------------- > 1777 Where can I find a driver for you? 1779 < ----------------------------------------------------------+ 1780 Drivers at http://www.lexmark.com/pubprinters/a/os245 1782 End user gets driver and installs it on his PC. 1784 End-user selects print from the application pull down menu. "Public-A" 1785 is selected from the list of Printers offered 1787 +---------------------------------------------------------- > 1788 I'm going to submit a print job 1789 give me your job submission attributes 1791 < ----------------------------------------------------------+ 1793 Expires: May 16, 1999 1794 Production attributes for this Printer are: 1795 - medium-select = us-letter-white, us-legal-white 1796 - default is us-letter-white 1797 - copies = 1,2,3,4,5 1798 - default is 1 1799 - print-quality = draft, normal, high 1800 - default is draft 1801 - sides = 1-sided, 2-sided-long-edge 1802 - default is 2-sided-long-edge 1804 Job scheduling attributes for this Printer are: 1805 - job-priority = 1,2,3 1806 default = 3 1808 Driver puts up dialogue with available options and fills in the 1809 defaults. 1811 End-user makes choices and submits job 1813 +---------------------------------------------------------- > 1814 Here is a print job 1815 - job-name = memo-to-Don-Wright 1816 - notify me by email when job is complete 1817 - print on us-letter-white paper 1818 - print 1 copy 1819 - print at normal quality 1820 - print on 1 side 1821 - give me the state of the printer in response 1823 The driver generates the print data and passes it to the IPP driver a 1824 piece at a time. 1826 +---------------------------------------------------------- > 1827 Here is the print data 1829 < ----------------------------------------------------------+ 1830 Print data received, and spooling started 1831 print job id = #1234 1833 Print data received, file is spooled 1835 - printer state = printing 1836 - time submitted = 2/12/97, 15:35 1837 - current job state = spooled 1839 Client adds this job to list of current jobs. List of jobs and state of 1840 each is available on a pull-down menu on the client. 1842 End-user selects job #1234 from list and clicks on it to see its status. 1844 Expires: May 16, 1999 1845 +---------------------------------------------------------- > 1846 Give me the state of job #1234 1847 and the state of the Printer 1849 < ----------------------------------------------------------+ 1850 Job #1234 state = spooled 1851 - it is number 3 in the queue 1852 - printer state = printing 1854 * The job completes without error 1855 < ----------------------------------------------------------+ 1856 Job #1234 completed 1857 12 of 12 pages printed 1859 Expires: May 16, 1999 1861 11.23. END TO END SCENARIO - ON THE INTERNET 1863 An executive in her hotel room is finishing an important presentation on 1864 her laptop computer. She connects to a local print shop through the web 1865 to get a copy of her charts printed for tomorrow's presentation. She 1866 must find a print shop that is convenient and can print color 1867 transparencies. She must download and temporarily install a driver in 1868 order to generate the PDL required by the print shop. Mutual 1869 authentication is required by the print shop and payment must be made in 1870 advance. The job is encrypted on the wire to prevent eavesdropping. 1872 End-user completes presentation. She goes to the web and connects 1873 to the SirZippy home page. 1875 Client SirZippy Directory Service 1876 +---------------------------------------------------------- > 1878 Find me a printer with these characteristics 1879 - Near Market Street in San Jose 1880 - Prints color transparencies 1881 - drivers can be downloaded 1882 - supports privacy (encryption) 1883 - 1885 Available Printers matching these characteristics are looked up in the 1886 Directory Service 1888 < ----------------------------------------------------------+ 1890 Printer "Color-A" 1891 - located at 123 First Street in San Jose 1892 - URI is http://www.SirZippy.com/FirstStreet/Color-A 1893 - prints color transparencies 1894 - 600 dpi laser 1895 - driver ABC-Postscript-V1.3 available at this URI 1896 - cost = $.75 per page 1897 - authentication required to use printer 1898 - payment required prior to printing 1900 Printer "Color-B" 1901 - located at 67 San Carlos Street, San Jose 1902 - URI is http://www.SirZippy.com/SanCarlos/Color-B 1903 - prints color transparencies 1904 - 1200 dpi laser 1905 - driver XYZ-PostScript-V4.3 available at this URI 1906 - cost = $1.25 per page 1907 - authentication required to use printer 1908 - payment required prior to printing 1909 - 1911 Expires: May 16, 1999 1912 - more information at this URI 1914 The user decides to use the first printer because it is closer. She 1915 connects to the URI given to get a driver. 1917 Client Driver URI 1919 +---------------------------------------------------------- > 1920 I need a driver for "Color-A" 1922 < ----------------------------------------------------------+ 1923 Driver installer is at http://www.xerox.com/prtdrvrs 1925 Driver is installed 1927 User connects to 1928 "Color-A" 1930 Client IPP Printer "Color-A" 1932 +---------------------------------------------------------- > 1933 < ----------------------------------------------------------+ 1934 Mutual authentication and exchange of secret keys 1936 +---------------------------------------------------------- > 1937 I'm going to submit a print job 1938 give me your job submission attributes 1940 < ----------------------------------------------------------+ 1941 Production attributes for this Printer are: 1942 - medium-select = us-letter-white, us-legal-white 1943 - default is us-letter-white 1944 - copies = 1,2,3,4,5 1945 - default is 1 1946 - print-quality = draft, normal, high 1947 - default is draft 1948 - sides = 1-sided, 2-sided-long-edge 1949 - default is 2-sided-long-edge 1951 Job scheduling attributes for this Printer are: 1952 - job-priority = 1,2,3 1953 default = 3 1955 Driver puts up dialogue with available options and fills in the 1956 defaults. 1958 End-user makes choices and submits job 1960 +---------------------------------------------------------- > 1961 Here is a print job 1963 Expires: May 16, 1999 1965 - job-name = presentation 1966 - notify me by email when job is complete 1967 - print on us-letter-transparency 1968 - print 1 copy 1969 - print at high quality 1970 - print by 9:00 am tomorrow morning 1971 - give me the state of the printer in response 1973 The driver generates the print data and passes it to the IPP driver a 1974 piece at a time. 1976 +---------------------------------------------------------- > 1977 Here is the print data 1979 < ---------------------------------------------------------+ 1980 Print data received, and spooling started 1981 print job id = #1234 1983 Print data received, file is spooled 1984 - printer state = printing 1985 - time submitted = 2/12/97, 15:35 1986 - current job state = held, waiting for payment 1988 +---------------------------------------------------------- > 1989 < ----------------------------------------------------------+ 1990 Payment transaction 1992 < ----------------------------------------------------------+ 1993 Job is scheduled to print, pick up after 9:00am tomorrow 1994 Thank you for using SirZippy 1996 Expires: May 16, 1999