home *** CD-ROM | disk | FTP | other *** search
/ Internet Core Protocols / Oreilly-InternetCoreProtocols.iso / RFCs / rfc2567.txt < prev    next >
Encoding:
Text File  |  1999-10-14  |  90.5 KB  |  2,412 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                       F.D. Wright
  8. Request for Comments: 2567                        Lexmark International
  9. Category: Experimental                                       April 1999
  10.  
  11.  
  12.              Design Goals for an Internet Printing Protocol
  13.  
  14. Status of this Memo
  15.  
  16.    This memo defines an Experimental Protocol for the Internet
  17.    community.  It does not specify an Internet standard of any kind.
  18.    Discussion and suggestions for improvement are requested.
  19.    Distribution of this memo is unlimited.
  20.  
  21. Copyright Notice
  22.  
  23.    Copyright (C) The Internet Society (1999).  All Rights Reserved.
  24.  
  25. IESG Note
  26.  
  27.    This document defines an Experimental protocol for the Internet
  28.    community.  The IESG expects that a revised version of this protocol
  29.    will be published as Proposed Standard protocol.  The Proposed
  30.    Standard, when published, is expected to change from the protocol
  31.    defined in this memo.  In particular, it is expected that the
  32.    standards-track version of the protocol will incorporate strong
  33.    authentication and privacy features, and that an "ipp:" URL type will
  34.    be defined which supports those security measures.  Other changes to
  35.    the protocol are also possible.  Implementers are warned that future
  36.    versions of this protocol may not interoperate with the version of
  37.    IPP defined in this document, or if they do interoperate, that some
  38.    protocol features may not be available.
  39.  
  40.    The IESG encourages experimentation with this protocol, especially in
  41.    combination with Transport Layer Security (TLS) [RFC2246], to help
  42.    determine how TLS may effectively be used as a security layer for
  43.    IPP.
  44.  
  45. Abstract
  46.  
  47.    This document is one of a set of documents, which together describe
  48.    all aspects of a new Internet Printing Protocol (IPP).  IPP is an
  49.    application level protocol that can be used for distributed printing
  50.    using Internet tools and technologies.  This document takes a broad
  51.    look at distributed printing functionality, and it enumerates real-
  52.    life scenarios that help to clarify the features that need to be
  53.    included in a printing protocol for the Internet.  It identifies
  54.    requirements for three types of users: end users, operators, and
  55.  
  56.  
  57.  
  58. Wright                        Experimental                      [Page 1]
  59.  
  60. RFC 2567             Internet Printing Design Goals           April 1999
  61.  
  62.  
  63.    administrators.  The design goals document calls out a subset of end
  64.    user requirements that are satisfied in IPP/1.0. Operator and
  65.    administrator requirements are out of scope for version 1.0.
  66.  
  67.    The full set of IPP documents includes:
  68.  
  69.    Design Goals for an Internet Printing Protocol (this document)
  70.    Rationale for the Structure and Model and Protocol for the
  71.    Internet Printing Protocol [RFC2568]
  72.    Internet Printing Protocol/1.0: Model and Semantics [RFC2568]
  73.    Internet Printing Protocol/1.0: Encoding and Transport [RFC2565]
  74.    Internet Printing Protocol/1.0: Implementer's Guide [ipp-iig]
  75.    Mapping between LPD and IPP Protocols [RFC2569]
  76.  
  77.    The "Rationale for the Structure and Model and Protocol for the
  78.    Internet Printing Protocol" document describes IPP from a high level
  79.    view, defines a roadmap for the various documents that form the suite
  80.    of IPP specifications, and gives background and rationale for the
  81.    IETF working group's major decisions.
  82.  
  83.    The "Internet Printing Protocol/1.0: Model and Semantics" document
  84.    describes a simplified model consisting of abstract objects, their
  85.    attributes, and their operations that is independent of encoding and
  86.    transport.  The model consists of a Printer and a Job object.  The
  87.    Job optionally supports multiple documents.  IPP 1.0 semantics allow
  88.    end-users and operators to query printer capabilities, submit print
  89.    jobs, inquire about the status of print jobs and printers, and cancel
  90.    print jobs.  This document also addresses security,
  91.    internationalization, and directory issues.
  92.  
  93.    The "Internet Printing Protocol/1.0: Encoding and Transport" document
  94.    is a formal mapping of the abstract operations and attributes defined
  95.    in the model document onto HTTP/1.1.  It defines the encoding rules
  96.    for a new Internet media type called "application/ipp".
  97.  
  98.    The "Internet Printing Protocol/1.0: Implementer's Guide" document
  99.    gives insight and advice to implementers of IPP clients and IPP
  100.    objects.  It is intended to help them understand IPP/1.0 and some of
  101.    the considerations that may assist them in the design of their client
  102.    and/or IPP object implementations.  For example, a typical order of
  103.    processing requests is given, including error checking.  Motivation
  104.    for some of the specification decisions is also included.
  105.  
  106.    The "Mapping between LPD and IPP Protocols" document gives some
  107.    advice to implementers of gateways between IPP and LPD (Line Printer
  108.    Daemon) implementations.
  109.  
  110.  
  111.  
  112.  
  113.  
  114. Wright                        Experimental                      [Page 2]
  115.  
  116. RFC 2567             Internet Printing Design Goals           April 1999
  117.  
  118.  
  119. TABLE OF CONTENTS
  120.  
  121.    1. INTRODUCTION.....................................................4
  122.    2. TERMINOLOGY......................................................4
  123.    3. DESIGN GOALS.....................................................6
  124.    3.1. End-user.......................................................6
  125.    3.1.1. Finding or locating a printer................................6
  126.    3.1.2. Create an instance of the printer............................7
  127.    3.1.3. Viewing the status and capabilities of a printer.............7
  128.    3.1.4. Submitting a print job.......................................8
  129.    3.1.5. Viewing the status of a submitted print job..................9
  130.    3.1.6. Canceling a Print Job........................................9
  131.    3.2. Operator (NOT REQUIRED FOR V1.0)...............................9
  132.    3.2.1. Alerting.....................................................9
  133.    3.2.2. Changing Print and Job Status...............................10
  134.    3.3. Administrator (NOT REQUIRED FOR v1.0).........................10
  135.    4. OBJECTIVES OF THE PROTOCOL......................................10
  136.    4.1. SECURITY CONSIDERATIONS.......................................11
  137.    4.2. Interaction with LPD (RFC1179)................................12
  138.    4.3. Extensibility.................................................12
  139.    4.4. Firewalls.....................................................13
  140.    4.5. Internationalization..........................................13
  141.    5. IPP SCENARIOS...................................................13
  142.    5.1. Printer Discovery.............................................14
  143.    5.2. Driver Installation...........................................15
  144.    5.3. Submitting a Print Job........................................15
  145.    5.4. Getting Status/Capabilities...................................16
  146.    5.5. Asynchronous Notification.....................................17
  147.    5.6. Job Canceling.................................................17
  148.    6. Security Considerations.........................................18
  149.    7. REFERENCES......................................................18
  150.    8. ACKNOWLEDGMENTS.................................................19
  151.    9. AUTHOR'S ADDRESS................................................19
  152.    10. APPENDIX - DETAILED SCENARIOS..................................20
  153.    10.1. Printer discovery within an enterprise.......................20
  154.    10.2. Printer discovery across enterprises.........................21
  155.    10.3. Printer discovery on the Internet -logical operations........21
  156.    10.4. Printer discovery on the Internet - authentication...........22
  157.    10.5. Driver Download..............................................23
  158.    10.6. Submitting a print job as a file.............................24
  159.    10.7. Submitting a print job with two documents....................24
  160.    10.8. Submitting a print job as a file, printing fails.............25
  161.    10.9. Submitting a print job with authentication, PRIVACY and
  162.          payment......................................................26
  163.    10.10. Submitting a print job with decryption error................27
  164.    10.11. Submitting a print job with authentication..................28
  165.    10.12. Submitting a print job generated dynamically................29
  166.    10.13. Submitting a print job with a Printer jam - CANCELED........29
  167.  
  168.  
  169.  
  170. Wright                        Experimental                      [Page 3]
  171.  
  172. RFC 2567             Internet Printing Design Goals           April 1999
  173.  
  174.  
  175.    10.14. Submitting a print job with a Printer jam - recovered.......30
  176.    10.15. Submitting a print job with server pull.....................31
  177.    10.16. Submitting a print job with referenced resources............32
  178.    10.17. Getting Capabilities........................................33
  179.    10.17.1. Submission Attributes.....................................33
  180.    10.17.2. Printer Capabilities......................................33
  181.    10.18. Getting Status..............................................34
  182.    10.18.1. Printer State/Status......................................34
  183.    10.18.2. Job Status................................................34
  184.    10.18.3. Status of All My Jobs.....................................34
  185.    10.19. Asynchronous Notification...................................35
  186.    10.19.1. Job Completion............................................35
  187.    10.19.2. Job Complete with Data....................................35
  188.    10.19.3. Print Job Fails...........................................35
  189.    10.20. Cancel a job................................................36
  190.    10.21. End to end Scenario - within an enterprise..................36
  191.    10.22. End to end Scenario - across enterprises....................37
  192.    10.23. End to End Scenario - on the internet.......................40
  193.    11. Full Copyright Statement.......................................43
  194.  
  195. 1. INTRODUCTION
  196.  
  197.    The IPP protocol is heavily influenced by the printing model
  198.    introduced in the Document Printing Application (DPA) [ISO10175]
  199.    standard.  Although DPA specifies both end user and administrative
  200.    features, IPP version 1.0 (IPP/1.0) focuses only on end user
  201.    functionality.
  202.  
  203. 2. TERMINOLOGY
  204.  
  205.    Internet Printing for the purposes of this document is the
  206.    application of Internet tools, programs, servers and networks to
  207.    allow end-users to print to a remote printer using, after initial
  208.    setup or configuration, the same methods, operations and paradigms as
  209.    would be used for a locally attached or a local area network attached
  210.    printer.  This could include the use of HTTP servers and browsers and
  211.    other applications for providing static, dynamic and interactive
  212.    printer locating services, user installation, selection,
  213.    configuration, print job submission, printer capability inquiry and
  214.    status inquiry of remote printers and jobs.
  215.  
  216.    For the purposes of this document, a WEB Browser is software
  217.    available from a number of sources including but not limited to the
  218.    following:  Microsoft Internet Explorer, NCSA Mosaic, Netscape
  219.    Navigator, Sun Hot Java!.  The major task of these products is to use
  220.    the Hypertext Transport Protocol (HTTP) to retrieve, interpret and
  221.    display Hypertext Markup Language (HTML).  These products are often a
  222.    part of a complete Internet Printing system because they are often
  223.  
  224.  
  225.  
  226. Wright                        Experimental                      [Page 4]
  227.  
  228. RFC 2567             Internet Printing Design Goals           April 1999
  229.  
  230.  
  231.    used as a means of obtaining the status of or more information about
  232.    the printing system; however, they may not be present in all
  233.    implementations.
  234.  
  235.    Throughout this document, 'printer' shall be interpreted to include
  236.    any device which is capable of marking on a piece of media using any
  237.    available technology.  These design goals do not include support for
  238.    multi-tiered printing solutions involving servers (single or
  239.    multiple) logically in front of the actual printing device yet all
  240.    such configurations shall be supported but shall appear to the end-
  241.    user as only a single device.
  242.  
  243.    Throughout this document 'driver' refers to the code installed in
  244.    some client operating system to generate the print data stream for
  245.    the intended printer. Some computing environments may not include a
  246.    separate printer driver.  Rather, the generation of the proper print
  247.    data stream is accomplished in an application on that computer. How
  248.    such a computer environment or application is updated to support a
  249.    new printer now made available using IPP is outside the scope of IPP.
  250.    The actual details for installing a printer driver are operating
  251.    system dependent and are also outside the scope of IPP. See also
  252.    section 4.1 (SECURITY CONSIDERATIONS) for security implications of
  253.    driver download and installation.
  254.  
  255.    The IPP protocol will support the following physical configurations:
  256.  
  257.    - An IPP client talking to an IPP Printer object imbedded in a
  258.      single, physical output device.
  259.    - An IPP Client talking to a server containing one or more IPP
  260.      Printer objects. Each Printer object is associated with exactly one
  261.      physical output device supported by the server. The protocol
  262.      between the server and the output devices is undefined.
  263.    - An IPP Client talking to an IPP Printer object in a server. The
  264.      Printer object is associated with one or more physical output
  265.      devices, but the client only sees the Printer object, which is an
  266.      abstraction and represents all of the associated physical output
  267.      devices. The protocol between the server and the physical output
  268.      devices is undefined.
  269.  
  270.    Throughout this document, certain design goals will be identified as
  271.    not being a part of version 1.0 (or V1.0) of the protocol or as being
  272.    satisfied by means outside of IPP.  IPP is assumed to be one part, an
  273.    enabler, of a complete Internet Printing solution.  For example
  274.    printer instance creation is not performed by but is enabled by the
  275.    protocol.  Globally, none of the operator or administrators wants and
  276.    needs are included in the design goals for version 1.0.  Some of the
  277.    end-user wants and needs may also be excluded from version 1.0 and
  278.    will be so noted in the description of them.  Subsequent versions of
  279.  
  280.  
  281.  
  282. Wright                        Experimental                      [Page 5]
  283.  
  284. RFC 2567             Internet Printing Design Goals           April 1999
  285.  
  286.  
  287.    the protocol (e.g. V2.0) may include support for these initially
  288.    excluded wants and needs.
  289.  
  290. 3. DESIGN GOALS
  291.  
  292.    The next three sections identify the design goals for an Internet
  293.    printing protocol from three roles assumed by humans: end-user,
  294.    operator, and administrator.  The goals defined here are only those
  295.    that need to be addressed by an Internet printing protocol.  Other
  296.    wants and needs, such as that the operator needs physical access to
  297.    the printer (e.g. to be able to load paper or clear jams) are not
  298.    covered by this document.  Section 5 contains scenarios which provide
  299.    more detailed examples of the entire process including discovery,
  300.    status, printing and end-of-job reporting.
  301.  
  302. 3.1. END-USER
  303.  
  304.    An end-user of a printer accepting jobs through the Internet is one
  305.    of the roles in which humans act.  The end-user is the person that
  306.    will submit a job to be printed on the printer.
  307.  
  308.    The wants and needs of the end-user are broken down into six
  309.    categories: finding/locating a printer, creating a local instance of
  310.    a printer, viewing printer status, viewing printer capabilities,
  311.    submitting a print job, viewing print job status, altering the
  312.    attributes of a print job.
  313.  
  314. 3.1.1. Finding or locating a printer.
  315.  
  316.    End-users want to be able to find and locate printers to which they
  317.    are authorized to print.  They want to be able to perform this
  318.    function using a standard WEB browser or other application.  Multiple
  319.    criteria can be applied to find the printers needed.  These criteria
  320.    include but are not limited to:
  321.  
  322.    - by name (Printer 1, Joes-color-printer, etc.)
  323.    - by geographic location (bldg 1, Kentucky, etc.)
  324.    - by capability or attribute (color, duplex, legal paper, etc.)
  325.  
  326.    Additionally, while it is outside of scope of IPP, end-users want to
  327.    be able to limit the scope of their searching to:
  328.  
  329.    - inside a functional sub-domain
  330.    - include only a particular domain (lexmark.com)
  331.    - exclude specified domains
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338. Wright                        Experimental                      [Page 6]
  339.  
  340. RFC 2567             Internet Printing Design Goals           April 1999
  341.  
  342.  
  343.    While an Internet printing protocol may not of itself include this
  344.    function, IPP must define and enable a directory schema which will
  345.    provide the necessary information for a directory service
  346.    implementation to consistently represent printers by their IPP
  347.    attributes.
  348.  
  349. 3.1.2. Create an instance of the printer.
  350.  
  351.    After finding the desired printer, an end-user needs to be able to
  352.    create a local instance of that printer within the end-user operating
  353.    system or desktop.  This local instance will vary depending upon the
  354.    printing paradigm of the operating system.  For example, some UNIX
  355.    users will only want a queue or a reference to a remote printer
  356.    created on their machine while other UNIX users and Windows NT users
  357.    will want the queue and also the necessary icons and registry entries
  358.    to be created and initialized.  Where required, drivers may need to
  359.    be downloaded from some repository and installed on the computer.
  360.    All necessary decompressing, unpacking, and other installation
  361.    actions should occur without end-user interaction or intervention
  362.    excepting initial approval by the end-user.  Once the local instance
  363.    of the printer has been installed, it shall appear to the end-user of
  364.    the operating system and to the applications running there as any
  365.    other printer (local, local area network connected, or network
  366.    operating system connected) on the end-user desktop or environment.
  367.    IPP's role in this goal is simply to enable the creation of the
  368.    printer instance providing information such as where to locate a
  369.    printer driver for this printer, as an attribute of an IPP Printer.
  370.  
  371. 3.1.3. Viewing the status and capabilities of a printer.
  372.  
  373.    Before using a selected printer or, in fact at any time, the end-user
  374.    needs the ability to verify the characteristics and status of both
  375.    printers and jobs queued for that printer.  When checking the
  376.    characteristics of a printer, the end-user typically wants to be able
  377.    to determine the capability of the device, e.g.:
  378.  
  379.    - supported media, commonly paper, by size and type
  380.    - paper handling capability, e.g. duplex, collating, finishing
  381.    - color capability
  382.  
  383.    When checking the status of the printer and its print jobs, the end-
  384.    user typically wants to be able to determine:
  385.  
  386.    - is the printer on-line?
  387.    - what are the defaults to be used for printing?
  388.    - how many jobs are queued for the printer?
  389.    - how are job priorities assigned? (outside the scope of IPP)
  390.  
  391.  
  392.  
  393.  
  394. Wright                        Experimental                      [Page 7]
  395.  
  396. RFC 2567             Internet Printing Design Goals           April 1999
  397.  
  398.  
  399. 3.1.4. Submitting a print job.
  400.  
  401.    Once the desired printer has been located and installed, the end-user
  402.    wants to print to that printer from normal applications using
  403.    standard methods.  These normal applications include such programs as
  404.    word processors, spreadsheets, data-base applications, WEB browsers,
  405.    production printing applications, etc.  Additionally, the end-user
  406.    may want to print a file already existing on the end-user's computer
  407.    -- "simple push".  In addition to printing from an application and
  408.    simple push, the end-user needs to have the ability to submit a print
  409.    job by reference.  Printing by reference is defined to mean as
  410.    submitting a job by providing a reference to an existing document.
  411.    The reference, a URI, will be resolved before the actual print
  412.    process occurs.  Submitting a job by reference relieves the user from
  413.    downloading the document from the remote server and then sending it
  414.    via IPP to the printer.  This saves both time and network bandwidth.
  415.  
  416.    Some means shall be provided to determine if the format of a job
  417.    matches the capability of the printer.  This can be done by one of
  418.    the following (all of which are outside of scope of the IPP
  419.    protocol):
  420.  
  421.       - the end-user selects the correct printer driver
  422.       - the printer automatically selects the proper interpreter
  423.       - the end-user uses some other manual procedure.
  424.  
  425.    A standard action shall be defined should the job's requirements not
  426.    match the capabilities of the printer.
  427.  
  428.    Because the end-user does not want to know the details of the
  429.    underlying printing process, the protocol must support job-to-printer
  430.    capability matching (all implementations are not necessarily required
  431.    to implement this function.)  This matching capability requires
  432.    knowing both the printer's capabilities and attributes and those
  433.    capabilities and attributes required by the job.  Actions taken when
  434.    a print job requires capabilities or attributes that are not
  435.    available on the printer vary and can include but are not limited to:
  436.  
  437.    - rejecting the print job
  438.    - redirecting the print job to another printer (Not in V1.0)
  439.    - printing the job, accepting differences in the appearance
  440.  
  441.    Print jobs will also be submitted by background or batch applications
  442.    without human intervention.
  443.  
  444.    End-users need the ability to set certain print job parameters at the
  445.    time the job is submitted.  These parameters include but are not
  446.    limited to:
  447.  
  448.  
  449.  
  450. Wright                        Experimental                      [Page 8]
  451.  
  452. RFC 2567             Internet Printing Design Goals           April 1999
  453.  
  454.  
  455.    - number of copies
  456.    - single or two sided printing
  457.    - finishing
  458.    - job priority
  459.  
  460. 3.1.5. Viewing the status of a submitted print job.
  461.  
  462.    After a job has been submitted to a printer, the end-user needs a way
  463.    to view the status of that job (i.e. job waiting, job printing, job
  464.    done) and to determine where the job is in the print queue.
  465.  
  466.    In addition to the need to inquire about the status of a print job,
  467.    automatic notification of the completion of that job is also
  468.    required.
  469.  
  470.    Notification means are not defined by the protocol but the protocol
  471.    must provide a means of enabling and disabling the notification.
  472.  
  473. 3.1.6. Canceling a Print Job
  474.  
  475.    While a job is waiting to be printed or has been started but not yet
  476.    completed, the original creator/submitter of the print job (i.e. the
  477.    end-user) shall be able to cancel the job entirely (job is waiting)
  478.    or the remaining portion of it (job is printing.)  Altering the print
  479.    job itself is not a V1.0 design goal.
  480.  
  481. 3.2. OPERATOR (NOT REQUIRED FOR V1.0)
  482.  
  483.    An operator of a printer accepting jobs through the Internet is one
  484.    of the roles in which humans act.  The operator has the
  485.    responsibility of monitoring the status of the printer as well as
  486.    managing and controlling the jobs at the device.  These
  487.    responsibilities include but are not limited to the replenishing of
  488.    supplies (ink, toner, paper, etc.), the clearing of minor errors
  489.    (paper jams, etc.) and the re-prioritization of end-user jobs.
  490.    Operator wants and needs will not be addressed by V1.0 of the
  491.    protocol.
  492.  
  493.    The wants and needs of the operator include all those of the end-user
  494.    but may include additional privileges.  For example, an operator may
  495.    be able to view all print jobs on a printer while the end-user might
  496.    only be able to see his own jobs.
  497.  
  498. 3.2.1. Alerting.
  499.  
  500.    One of the required operator functions is having the ability to
  501.    discover or to be alerted to changes in the status of a printer
  502.    particularly those changes that cause a printer to stop printing and
  503.  
  504.  
  505.  
  506. Wright                        Experimental                      [Page 9]
  507.  
  508. RFC 2567             Internet Printing Design Goals           April 1999
  509.  
  510.  
  511.    to be able to correct those problems.  As such, an Internet printing
  512.    protocol shall be able to alert a designated operator or operators to
  513.    these conditions such as 'out of paper', 'out of ink', etc.
  514.    Additionally. the operator shall be able to, asynchronous to other
  515.    printer activity, inquire as to a printer's or a job's status.
  516.  
  517. 3.2.2. Changing Print and Job Status.
  518.  
  519.    Another of the required operator functions is the ability to affect
  520.    changes to printer and job status remotely.  For example, the
  521.    operator will need to be able to re-prioritize or cancel any print
  522.    jobs on a printer to which the operator has authority.
  523.  
  524. 3.3. ADMINISTRATOR (NOT REQUIRED FOR V1.0)
  525.  
  526.    An administrator of a printer accepting jobs through the Internet is
  527.    one of the roles in which humans act.  The administrator has the
  528.    responsibility of creating the printer instances and controlling the
  529.    authorization of other end-users and operators.  Administrator wants
  530.    and needs will not be addressed by V1.0 of the protocol.
  531.  
  532.    The wants and needs of the administrator include all those of the
  533.    end-user and, in some environments, some or all of those of the
  534.    operator.  Minimally, the administrator must also have the tools,
  535.    programs, utilities and supporting protocols available to be able to:
  536.  
  537.    - create an instance of a printer
  538.    - create, edit and maintain the list of authorized end-users
  539.    - create, edit and maintain the list of authorized operators
  540.    - create, edit and maintain the list of authorized
  541.      administrators
  542.    - create, customize, change or otherwise alter the manner in
  543.      which the status capabilities and other information about printers
  544.      and jobs are presented
  545.    - create, customize, or change other printer or job features
  546.    - administrate billing or other charge-back mechanisms
  547.    - create sets of defaults
  548.    - create sets of capabilities
  549.  
  550.    The administrator must have the capability to perform all the above
  551.    tasks locally or remotely to the printer.
  552.  
  553. 4. OBJECTIVES OF THE PROTOCOL
  554.  
  555.    The protocol to be defined by an Internet printing working group will
  556.    address the wants and needs of the end-user (V1.0).  It will not, at
  557.    least initially, address the operator or administrator wants and
  558.    needs (V2.0).
  559.  
  560.  
  561.  
  562. Wright                        Experimental                     [Page 10]
  563.  
  564. RFC 2567             Internet Printing Design Goals           April 1999
  565.  
  566.  
  567.    The protocol defined shall be independent of the operating system of
  568.    both the client and the server.  Generally, any platform capable of
  569.    supporting a WEB Browser should be capable of being a client.
  570.    Generally, any platform providing a WEB/HTTP server and printing
  571.    services should be capable of being a server.  Usage of the WEB
  572.    Browser and Server is not required for IPP; the operating system,
  573.    operating system extensions or other applications may provide IPP
  574.    functionality directly.
  575.  
  576.    In many environments such as Windows 95, Windows NT and OS/2, the
  577.    print data is created and transmitted to the printer on the fly
  578.    rather than being created, spooled and then transmitted to the
  579.    printer (a typical UNIX method.)  The Internet Printing Protocol must
  580.    properly handle either methodology and make this transparent to the
  581.    end-user.
  582.  
  583. 4.1. SECURITY CONSIDERATIONS
  584.  
  585.    It is required that the Internet Printing Protocol be able to operate
  586.    within a secure environment. Wherever reasonable, IPP ought to make
  587.    use of existing security protocols and services. IPP will not invent
  588.    new security features when the design goals described in this
  589.    document can be met by existing protocols and services. Examples of
  590.    such services include Secure Socket Layer Version 3 (SSL3) [SSL] and
  591.    HTTP Digest Access Authentication [RFC2069].  Note: SSL3 is not on
  592.    the IETF standards track.
  593.  
  594.    Since we cannot anticipate the security levels or the specific
  595.    threats that any given IPP print administrator may be concerned with,
  596.    IPP must be capable of operating with different security mechanisms
  597.    and policies as required by the individual installation. The initial
  598.    security needs of IPP are derived from two primary considerations.
  599.    First, the printing environments described in this document take into
  600.    account that the client, the Printer, and the document to be printed
  601.    may each exist in different security domains. When objects are in
  602.    different security domains the design goals for authentication and
  603.    message protection may be much stronger than when they are all in the
  604.    same domain.
  605.  
  606.    Secondly, the sensitivity and value of the content being printed will
  607.    vary from one instance of a print job to another. For example, a
  608.    publicly available document does not need the same level of
  609.    protection as a payroll document does.  Message protection design
  610.    goals include data origin authentication, privacy, integrity, and
  611.    non-repudiation.
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618. Wright                        Experimental                     [Page 11]
  619.  
  620. RFC 2567             Internet Printing Design Goals           April 1999
  621.  
  622.  
  623.    In many environments (e.g. Windows, OS/2) a printer driver may be
  624.    needed to create the proper datastream for printer.  This document
  625.    discusses downloading such a new driver from a variety of sources.
  626.    Downloading and installing any software, including drivers) on a
  627.    computer exposes that computer to a number of security risks
  628.    including but not limited to:
  629.  
  630.       - defective software
  631.       - malicious software (e.g. Trojan horses)
  632.       - inappropriate software (i.e. software doing something
  633.         deemed unreasonable by the user.)
  634.  
  635.    As such, proper security considerations and actions need to be taken
  636.    by the user and/or a system administrator to prevent the compromising
  637.    of the computer.  Administrators should configure downloading
  638.    mechanism for printer drivers in such a way as to be able to verify
  639.    the source of driver software and encrypt or otherwise protect that
  640.    software during download.
  641.  
  642.    Examples including security considerations can be found in sections 5
  643.    (IPP SCENARIOS) and 10 (APPENDIX - DETAILED SCENARIOS) later in this
  644.    document.
  645.  
  646. 4.2. INTERACTION WITH LPD (RFC1179)
  647.  
  648.    Many versions of UNIX and in fact other operating systems provide a
  649.    means of printing as described in [RFC1179] (Line Printer Daemon
  650.    Protocol.)  This document describes the file formats for the control
  651.    and data files as well as the messages used by the protocol.  Because
  652.    of the simplistic approach taken by this protocol, many manufacturers
  653.    have include proprietary enhancements and extensions to 'lpd.'
  654.    Because of this divergence and due to other design goals described in
  655.    this document, there is no requirement for backward compatibility or
  656.    interoperability with 'lpd'.  However, a mapping of LPD functionality
  657.    and IPP functionality shall be provided so as to enable a gateway
  658.    between LPD and IPP.
  659.  
  660. 4.3. EXTENSIBILITY
  661.  
  662.    The Internet Printing Protocol shall be extensible by several means
  663.    that facilitate interoperability and prevent implementation
  664.    collisions:
  665.  
  666.       - by providing a process whereby implementers can submit proposals
  667.       for registration of new attributes and new enumerated values for
  668.       existing attributes.
  669.  
  670.  
  671.  
  672.  
  673.  
  674. Wright                        Experimental                     [Page 12]
  675.  
  676. RFC 2567             Internet Printing Design Goals           April 1999
  677.  
  678.  
  679.          * that require review and approval.  The Internet Assigned
  680.          Number Authority (IANA) will be the repository for such
  681.          accepted registration proposals after review.
  682.  
  683.          * that do not require review and approval.  IANA will be the
  684.          repository for such registrations.
  685.  
  686.       - by providing syntax in the protocol so that implementers may add
  687.       private (i.e. unregistered) attributes and  enumerated attribute
  688.       values.
  689.  
  690.       - by providing versioning and negotiation so as to enable future
  691.       implementations of IPP to interoperate with implementations of
  692.       version 1.0 of IPP.
  693.  
  694. 4.4. FIREWALLS
  695.  
  696.    As stated in section 3 Design Goals, Internet printing shall, by
  697.    definition, support printing from one enterprise to another.  As
  698.    such, the Internet printing protocol must be capable of passing
  699.    through firewalls and/or proxy servers (where enabled by the firewall
  700.    administrator) preferably without modification to the existing
  701.    firewall technology.
  702.  
  703. 4.5. INTERNATIONALIZATION
  704.  
  705.    Users of Internet printing will come from all over the world.  As
  706.    such, where appropriate, internationalization and localization will
  707.    be enabled for the protocol.
  708.  
  709. 5. IPP SCENARIOS
  710.  
  711.    Each of the scenarios in this section describes a specific IPP
  712.    operation, such as submitting a print job. Section 10 contains
  713.    several detailed flows for each scenario to provide additional
  714.    detail.  The examples should not be considered exhaustive, but
  715.    illustrative of the functions and features required in the protocol.
  716.    Flows are intended to be protocol neutral. It is not assumed that all
  717.    of the functions and features described in these scenarios will
  718.    necessarily be supported directly by IPP or in version 1.0 of IPP.
  719.  
  720.    See the IPP Model and Semantics document for details on
  721.    configurations of clients, servers and firewalls.
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730. Wright                        Experimental                     [Page 13]
  731.  
  732. RFC 2567             Internet Printing Design Goals           April 1999
  733.  
  734.  
  735. 5.1. PRINTER DISCOVERY
  736.  
  737.    Client                                               Directory Service
  738.    Service
  739.  
  740.     +----------------------------------------------------------- >
  741.        give me information on printers with these characteristics
  742.  
  743.  
  744.     < -----------------------------------------------------------+
  745.         Information on Printers matching these characteristics
  746.  
  747.    The objective of printer discovery is to locate printers that meet
  748.    the client's wants and needs. The Directory Service should provide
  749.    enough information for the client to make an initial choice. The
  750.    client may have to connect to each individual Printer offered to get
  751.    more detail.  Not all information available from the Directory
  752.    Service is obtained using IPP; some information may be
  753.    administratively provided.
  754.  
  755.    The actual protocol used between client and Directory or Name Service
  756.    is considered outside the scope of IPP. Printer Discover is included
  757.    in the scenarios to provide design goals for the directory schema for
  758.    IPP Printers and to further define Printer attributes.
  759.  
  760.    Characteristics that might be considered when locating a Printer
  761.    include:
  762.  
  763.    - capabilities of the Printer, e.g. PDLs supported
  764.    - physical location, e.g. in building 010
  765.    - driver required and location
  766.    - cost per page to print (outside the scope of IPP)
  767.    - whether or not printer is access controlled
  768.    - whether or not usage requires client authentication
  769.    - whether or not Printer can be authenticated
  770.    - whether or not payment is required for printing (outside the scope
  771.      of IPP)
  772.    - maximum job size (spool size) (outside the scope of IPP)
  773.    - whether or not Printer support compression (outside the scope of
  774.      IPP)
  775.    - whether or not Printer supports encryption
  776.    - administrative limits on this Printer
  777.       - maximum number of copies per job
  778.       - maximum number of pages per job
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786. Wright                        Experimental                     [Page 14]
  787.  
  788. RFC 2567             Internet Printing Design Goals           April 1999
  789.  
  790.  
  791.    Responses could additionally include:
  792.  
  793.    - how to get more information
  794.       - web page
  795.       - telephone number
  796.       - help desk
  797.  
  798. 5.2. DRIVER INSTALLATION
  799.  
  800.    Client                                               Printer
  801.  
  802.     +----------------------------------------------------------- >
  803.        Where can I find a driver & software to install it?
  804.  
  805.  
  806.     < -----------------------------------------------------------+
  807.         URIs for drivers and install software
  808.  
  809.    Driver here refers to the code installed in some client operating
  810.    system to generate the print data stream for the intended printer.
  811.    The actual details for installing a printer driver are operating
  812.    system dependent and are also outside the scope of IPP.  However, an
  813.    IPP printer or a directory service advertising an IPP Printer should
  814.    be capable of telling a client what drivers are available and/or
  815.    required, where they can be found, and provide pointers to
  816.    installation instructions, installation code or initialization
  817.    strings required to install the driver.  See section 4.1 (SECURITY
  818.    CONSIDERATIONS) for security implications of driver download and
  819.    installation.
  820.  
  821. 5.3. SUBMITTING A PRINT JOB
  822.  
  823.    Client                                               IPP Printer
  824.  
  825.     +----------------------------------------------------------- >
  826.        Here is a Print Job
  827.         - Job attributes
  828.         - Print data
  829.  
  830.  
  831.     < -----------------------------------------------------------+
  832.         Response
  833.  
  834.    The protocol must support these sources of client data:
  835.  
  836.    - Print data is a file submitted with the job
  837.    - Print data is generated on the fly by an application
  838.    - Print data is a file referenced by a URI
  839.  
  840.  
  841.  
  842. Wright                        Experimental                     [Page 15]
  843.  
  844. RFC 2567             Internet Printing Design Goals           April 1999
  845.  
  846.  
  847.    The protocol must handle overrun conditions in the printer and must
  848.    support overlapped printing and downloading of the file in devices
  849.    that are unable to spool files before printing them.
  850.  
  851.    Every print request will have a response. Responses will indicate
  852.    success or failure of the request and provide information on failures
  853.    when they occur. Responses would include things like:
  854.  
  855.    - Got the print job and queued it
  856.    - Got the print job and am printing it
  857.    - Got the print job, started to print it, but printing failed
  858.       - why it failed (e.g. unrecoverable PostScript error)
  859.       - state of the printer
  860.       - how much printed
  861.    - Got the print job but couldn't print it
  862.       - why it can't be printed
  863.       - state of the printer
  864.    - Got the print job but don't know what to do with it
  865.    - Didn't get a complete print job (e.g. communication failure)
  866.  
  867. 5.4. GETTING STATUS/CAPABILITIES
  868.  
  869.    Client                                               IPP Printer
  870.  
  871.     +----------------------------------------------------------- >
  872.        Get status and/or capabilities of Printer
  873.  
  874.  
  875.     < -----------------------------------------------------------+
  876.         Status/Capabilities
  877.  
  878.    Clients will need to get information about
  879.  
  880.    - Static capabilities of the device
  881.    - Dynamic state of the Printer (e.g. out of paper)
  882.    - State of a specific job owned by this client
  883.    - State of all jobs owned by this client
  884.       - queued
  885.       - printing
  886.       - completed
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898. Wright                        Experimental                     [Page 16]
  899.  
  900. RFC 2567             Internet Printing Design Goals           April 1999
  901.  
  902.  
  903.    - Job submission attributes supported/required
  904.       - scheduling attributes (e.g. priority)
  905.       - production attributes (e.g. number of copies)
  906.  
  907. 5.5. ASYNCHRONOUS NOTIFICATION
  908.  
  909.    Client                                               IPP Printer
  910.  
  911.     +----------------------------------------------------------- >
  912.        Use the following method to notify me of Printer events
  913.  
  914.                                  .
  915.                                  .
  916.                                  .
  917.     < -----------------------------------------------------------+
  918.         Asynchronous notification of Printer event
  919.  
  920.    Clients must be able to request asynchronous notification for Printer
  921.    events such as
  922.  
  923.    - job completion
  924.    - a fatal error that requires the job to be resubmitted
  925.    - a condition that severely impacts a queued job for this client
  926.       e.g. printer is out of paper
  927.  
  928.    Note: end-user notification is a V1.0 design goal while operator
  929.    notification is for V2.0.
  930.  
  931. 5.6. JOB CANCELING
  932.  
  933.    Client                                               IPP Printer
  934.  
  935.     +----------------------------------------------------------- >
  936.        Cancel the named job as indicated
  937.  
  938.  
  939.     < -----------------------------------------------------------+
  940.         Response (did it or not)
  941.  
  942.    Similarly clients must be able to make changes to jobs which have
  943.    been submitted and are queued for printing.  Changing of job
  944.    attributes should also be supported.  Job modifications, holding and
  945.    releasing of jobs are not included in the design goals for IPP v1.0.
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954. Wright                        Experimental                     [Page 17]
  955.  
  956. RFC 2567             Internet Printing Design Goals           April 1999
  957.  
  958.  
  959. 6. SECURITY CONSIDERATIONS
  960.  
  961.    The security considerations for IPP are described in Section 4.1
  962.    above.
  963.  
  964. 7. REFERENCES
  965.  
  966.    [ipp-iig]  Hastings, T. and C. Manros, "Internet Printing
  967.               Protocol/1.0: Implementer's Guide", Work in Progress.
  968.  
  969.    [RFC2569]  Herriot, R., Hastings, T., Jacobs, N. and J. Martin,
  970.               "Mapping between LPD and IPP Protocols", RFC 2569, April
  971.               1999.
  972.  
  973.    [RFC2566]  deBry, R., Hastings, T., Herriot, R., Isaacson, S. and P.
  974.               Powell, "Internet Printing Protocol/1.0: Model and
  975.               Semantics", RFC 2568, April 1999.
  976.  
  977.    [RFC2565]  Herriot, R., Butler, S., Moore, P. and R. Tuner, "Internet
  978.               Printing Protocol/1.0: Encoding and Transport", RFC 2565,
  979.               April 1999.
  980.  
  981.    [RFC2568]  Zilles, S., "Rationale for the Structure and Model and
  982.               Protocol for the Internet Printing Protocol", RFC 2568,
  983.               April 1999.
  984.  
  985.    [ISO10175] ISO/IEC 10175, Document Printing Application, June 1996.
  986.  
  987.    [RFC1179]  McLaughlin, L., "Line Printer Daemon Protocol" RFC 1179,
  988.               August 1990.
  989.  
  990.    [SSL]      Netscape, The SSL Protocol, Version 3, (Text version
  991.               3.02), November 1996.
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.  
  999.  
  1000.  
  1001.  
  1002.  
  1003.  
  1004.  
  1005.  
  1006.  
  1007.  
  1008.  
  1009.  
  1010. Wright                        Experimental                     [Page 18]
  1011.  
  1012. RFC 2567             Internet Printing Design Goals           April 1999
  1013.  
  1014.  
  1015. 8. ACKNOWLEDGMENTS
  1016.  
  1017.    This document draws heavily from preliminary work done by others
  1018.    especially in the Printer Working Group (PWG).  The author gratefully
  1019.    acknowledges the specific contributions of:
  1020.  
  1021.    Scott Isaacson                   Roger deBry
  1022.    Novell                           Utah Valley State College
  1023.    sisaacson@novell.com             debryro@uvsc.edu
  1024.  
  1025.    Carl-Uno Manros                  Robert Herriot
  1026.    Xerox                            Sun
  1027.    manros@cp10.es.xerox.com         Robert.Herrior@pahv.xerox.xom
  1028.  
  1029.    Tom Hastings                     Peter Zehler
  1030.    Xerox                            Xerox
  1031.    hastings@cp10.es.xerox.com       Peter.Zehler@usa.xerox.com
  1032.  
  1033. 9. AUTHOR'S ADDRESS
  1034.  
  1035.    F.D. (Don) Wright
  1036.    Lexmark International
  1037.    C14/035-3
  1038.    740 New Circle Rd
  1039.    Lexington, KY  40550
  1040.  
  1041.    Phone: 606-232-4808
  1042.    Fax: 606-232-6740
  1043.    EMail: don@lexmark.com
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066. Wright                        Experimental                     [Page 19]
  1067.  
  1068. RFC 2567             Internet Printing Design Goals           April 1999
  1069.  
  1070.  
  1071. 10. APPENDIX - DETAILED SCENARIOS
  1072.  
  1073.    The following are more detailed scenarios illustrating how the
  1074.    Internet Printing Protocol is expected to be used as a part of a
  1075.    complete Internet Printing system.  Some parts of the scenarios
  1076.    include concepts, functions and information that may be outside of
  1077.    the scope of version 1.0 of IPP (e.g. cost per page, payments means
  1078.    available, etc.)  The information contained herein is meant to be
  1079.    generic.  There may not be an exact wording or terminology match
  1080.    between these scenarios and the implementation documents.
  1081.  
  1082. 10.1. PRINTER DISCOVERY WITHIN AN ENTERPRISE
  1083.  
  1084.    A user wants to find a color Postscript printer in his/her enterprise
  1085.    which will print transparencies. The client, directory service, and
  1086.    printer are all behind the same corporate firewall. Because color
  1087.    foils are expensive, printers of this type are access controlled and
  1088.    require an account to be established so that printing can be billed
  1089.    back to the using department. Note the request to find a printer
  1090.    usable by Dept.  J15. Drivers for all supported printers are
  1091.    available from the server they are associated with. A help desk is
  1092.    provided for end user support.  The printer is unattended.
  1093.  
  1094.    Client                                  Directory Service
  1095.  
  1096.       +---------------------------------------------------------- >
  1097.         Find a printer with these characteristics
  1098.         - prints color, prints transparencies
  1099.         - prints Postscript
  1100.         - is in building 003
  1101.         - accessible by the client
  1102.  
  1103.       < ----------------------------------------------------------+
  1104.         Printer "Color-A"
  1105.         - prints color, prints transparencies
  1106.         - prints Postscript
  1107.         - in room H-6, building 003
  1108.         - driver ABC-Postscript-V1.3 required, here is URI
  1109.         - cost is $.45 per page for color transparencies
  1110.         - limit is 10 pages per job
  1111.         - authentication required to use printer
  1112.         - printer is unattended
  1113.         - help desk at x5001
  1114.  
  1115.          Printer "Color-B"
  1116.         - prints color, prints transparencies
  1117.         - prints Postscript
  1118.         - in room J-10, building 003
  1119.  
  1120.  
  1121.  
  1122. Wright                        Experimental                     [Page 20]
  1123.  
  1124. RFC 2567             Internet Printing Design Goals           April 1999
  1125.  
  1126.  
  1127.         - driver XYZ-Postscript-V2.4 required, here is URI
  1128.         - cost is $1.25 page for color transparencies
  1129.         - limit is 5 pages per job
  1130.         - authentication is required to use printer
  1131.         - printer is unattended
  1132.         - help desk at x5001
  1133.  
  1134. 10.2. PRINTER DISCOVERY ACROSS ENTERPRISES
  1135.  
  1136.    A user in Company A wants to find a public printer in a business
  1137.    partner's enterprise (Company B) on which to print a purchase order.
  1138.    The client is behind one corporate firewall and the directory service
  1139.    and the printer are behind a different corporate firewall. Drivers
  1140.    for all supported printers are available from the server they are
  1141.    associated with. A web page is provided for end user support for
  1142.    public printers.
  1143.  
  1144.    Client                        Company B Directory Service
  1145.  
  1146.       +---------------------------------------------------------- >
  1147.         Find a printer with these characteristics
  1148.         - prints black and white
  1149.         - is in El Segundo, building A
  1150.         - is a public printer
  1151.  
  1152.       < ----------------------------------------------------------+
  1153.         Printer "Public-A"
  1154.         - prints black and white
  1155.         - prints Postscript
  1156.         - in El Segundo, room H-6, building A
  1157.         - driver ABC-Postscript-V1.3 required, here is URI
  1158.         - printer is public
  1159.         - help available at http://xerox/elSegundo/publicPrinters
  1160.  
  1161.          Printer "Public-B"
  1162.         - prints black and white
  1163.         - prints PCL/5e
  1164.         - is in El Segundo, room J-10, building A
  1165.         - driver XYZ-PCL-V2.4 required, here is URI
  1166.         - printer is public
  1167.         - help available at http://xerox/elSegundo/publicPrinters
  1168.  
  1169. 10.3. PRINTER DISCOVERY ON THE INTERNET -LOGICAL OPERATIONS
  1170.  
  1171.    A student wants to print a paper on a printer at his neighborhood
  1172.    Ink-o's print shop. The report was written using Microsoft Word. The
  1173.    student is interested in the cost of printing since his budget is
  1174.    limited. Note the use of logical operators to find this information.
  1175.  
  1176.  
  1177.  
  1178. Wright                        Experimental                     [Page 21]
  1179.  
  1180. RFC 2567             Internet Printing Design Goals           April 1999
  1181.  
  1182.  
  1183.    Client                          Ink-o's Directory Service
  1184.  
  1185.       +---------------------------------------------------------- >
  1186.         Find a Printer with these characteristics
  1187.         - prints color or black and white
  1188.         - costs less than $.50 per page
  1189.         - tell me about resolution and marking technology
  1190.  
  1191.       < ----------------------------------------------------------+
  1192.         Printer "Color-A"
  1193.         - prints color
  1194.         - 600 dpi laser printer
  1195.         - prints Postscript
  1196.         - driver ABC-Postscript-V1.3 required, here is URI
  1197.         - cost is $.50 per page for color
  1198.         - payment required prior to submitting print job
  1199.         - here is URI for more information on Ink-o's
  1200.  
  1201.          Printer "Mono-B"
  1202.         - prints black and white
  1203.         - 300 dpi inkjet printer
  1204.         - prints Postscript
  1205.         - driver XYZ-Postscript-V2.4 required, here is URI
  1206.         - cost is $0.35 page for black and white
  1207.         - payment required prior to submitting print job
  1208.         - here is URI for more information on Ink-o's
  1209.  
  1210. 10.4. PRINTER DISCOVERY ON THE INTERNET - AUTHENTICATION
  1211.  
  1212.    An executive in her hotel room is finishing an important presentation
  1213.    on her laptop computer. She connects to a local print shop through
  1214.    the web to get a copy of her charts printed for tomorrow's
  1215.    presentation.  She must find a print shop that is convenient to her
  1216.    hotel and can print color transparencies. She wants to be sure that
  1217.    the printer can be authenticated and can accept encrypted data.
  1218.  
  1219.    Client                         SirZippy Directory Service
  1220.  
  1221.       +---------------------------------------------------------- >
  1222.         Find a Printer with these characteristics
  1223.         - prints color transparencies
  1224.         - is in Boulder, Colorado
  1225.         - Printer can be authenticated
  1226.         - Printer supports encryption
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234. Wright                        Experimental                     [Page 22]
  1235.  
  1236. RFC 2567             Internet Printing Design Goals           April 1999
  1237.  
  1238.  
  1239.         Tell me when you are open for business
  1240.  
  1241.       < ----------------------------------------------------------+
  1242.         Printer "Color-A"
  1243.         - prints color transparencies
  1244.         - prints Postscript
  1245.         - driver ABC-Postscript-V1.3 required, here is URI
  1246.         - payment required prior to submitting print job
  1247.         - Printer can be authenticated
  1248.         - Data can be encrypted
  1249.         - Located at 1670 Pearl Street, Boulder, CO
  1250.         - This Branch is open 24 hours a day
  1251.  
  1252.  
  1253.         Printer "Color-B"
  1254.         - prints color transparencies
  1255.         - prints Postscript
  1256.         - driver ABC-Postscript-V1.3 required, here is URI
  1257.         - payment required prior to submitting print job
  1258.         - Printer can be authenticated
  1259.         - Data can be encrypted
  1260.         - Located at 1220 Arapahoe, Boulder, CO
  1261.         - This Branch is open from 9:00 am to 6:30 pm
  1262.  
  1263. 10.5. DRIVER DOWNLOAD
  1264.  
  1265.    An end user in an enterprise wants to print a lengthy report on a
  1266.    newly installed high speed PostScript printer. Since she will likely
  1267.    use this printer often, she would like to download a driver and
  1268.    install it on her workstation. She is running Windows 95.  Note:
  1269.    Driver download is not a V1.0 design goal.
  1270.  
  1271.    Client                                        IPP Printer
  1272.  
  1273.       +---------------------------------------------------------- >
  1274.         Tell me where to find print drivers for you
  1275.  
  1276.  
  1277.  
  1278.       < ----------------------------------------------------------+
  1279.         Driver install file is at
  1280.         http://www.ibm.com/drivers/NP12a/Win95
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290. Wright                        Experimental                     [Page 23]
  1291.  
  1292. RFC 2567             Internet Printing Design Goals           April 1999
  1293.  
  1294.  
  1295. 10.6. SUBMITTING A PRINT JOB AS A FILE
  1296.  
  1297.    An end-user wants to submit a print job. The print file already
  1298.    exists on his workstation. The client and printer are behind the same
  1299.    corporate firewall. The printer is available to anyone behind the
  1300.    firewall and no authorization or authentication is required. The data
  1301.    is pushed to the printer. The printer is capable of spooling the
  1302.    output. No errors occur.
  1303.  
  1304.    Client                                        IPP Printer
  1305.  
  1306.       +---------------------------------------------------------- >
  1307.         Here is a print job
  1308.         - job name = MyJob
  1309.         - notify me by email when done printing
  1310.         - print on iso-a4-white paper
  1311.         - print on both sides of the paper
  1312.         - return status of the printer in response
  1313.         - document is in Postscript format
  1314.         - here is the document to print
  1315.  
  1316.       < ----------------------------------------------------------+
  1317.         Print job accepted and spooled
  1318.         - job id = #12345
  1319.         - current state of print job = spooled
  1320.         - submission time = 02/12/97, 15:35
  1321.         - printer state = printing
  1322.  
  1323. 10.7. SUBMITTING A PRINT JOB WITH TWO DOCUMENTS
  1324.  
  1325.    An end-user wants to submit a print job. The print file already
  1326.    exists on his workstation. The client and printer are behind the same
  1327.    corporate firewall. The printer is available to anyone behind the
  1328.    firewall and no authorization or authentication is required. The data
  1329.    is pushed to the printer. The job consists of two separate documents.
  1330.    The printer is capable of spooling the output. No errors occur.
  1331.  
  1332.    Client                                        IPP Printer
  1333.  
  1334.       +---------------------------------------------------------- >
  1335.         Here is a print job
  1336.         - job name = MyJob
  1337.         - notify me by email when done printing
  1338.         - print on iso-a4-white paper
  1339.         - print on both sides of the paper
  1340.         - return status of the printer in response
  1341.  
  1342.       < ----------------------------------------------------------+
  1343.  
  1344.  
  1345.  
  1346. Wright                        Experimental                     [Page 24]
  1347.  
  1348. RFC 2567             Internet Printing Design Goals           April 1999
  1349.  
  1350.  
  1351.         Print job accepted and spooled
  1352.         - job id = #12345
  1353.         - submission time = 02/12/97, 15:35
  1354.       +---------------------------------------------------------- >
  1355.         - here is the document to print
  1356.  
  1357.       < ----------------------------------------------------------+
  1358.         - OK
  1359.  
  1360.       +---------------------------------------------------------- >
  1361.         - here is the document to print, it is the last document.
  1362.  
  1363.       < ----------------------------------------------------------+
  1364.         - OK
  1365.  
  1366. 10.8. SUBMITTING A PRINT JOB AS A FILE, PRINTING FAILS
  1367.  
  1368.    An end-user wants to submit a print job. The print file already
  1369.    exists on his workstation. The client and printer are behind the same
  1370.    corporate firewall. The printer is available to anyone behind the
  1371.    firewall and no authorization or authentication is required. The data
  1372.    is pushed to the printer. The printer is not capable of spooling the
  1373.    output so it begins printing while still receiving the file. An error
  1374.    occurs and the printer cannot complete printing (in this case the
  1375.    user requires A4 paper and that paper size is not available on the
  1376.    printer.)
  1377.  
  1378.    Client                                        IPP Printer
  1379.  
  1380.       +---------------------------------------------------------- >
  1381.         Here is a print job
  1382.         - job name = MyJob
  1383.         - notify me by email when done printing
  1384.         - print on iso-a4-white paper
  1385.         - print on both sides of the paper
  1386.         - return status of the printer in response
  1387.         - document is in Postscript format
  1388.         - here is the document to print
  1389.  
  1390.       < ----------------------------------------------------------+
  1391.              Print job accepted
  1392.  
  1393.         - printing failed
  1394.         - current state of print job = canceled (A4 not available)
  1395.         - submission time = 02/12/97, 15:35
  1396.         - printer state = ready
  1397.  
  1398.  
  1399.  
  1400.  
  1401.  
  1402. Wright                        Experimental                     [Page 25]
  1403.  
  1404. RFC 2567             Internet Printing Design Goals           April 1999
  1405.  
  1406.  
  1407. 10.9. SUBMITTING A PRINT JOB WITH AUTHENTICATION, PRIVACY AND PAYMENT
  1408.  
  1409.    A traveling executive needs to print a set of transparencies for an
  1410.    important business meeting. The charts are in Lotus Freelance format
  1411.    on his notebook computer. He has located a SirZippy print shop near
  1412.    his hotel that will print color transparencies. Because the
  1413.    information on the charts is sensitive, he wants to be sure that his
  1414.    data is sent to the Printer in an encrypted format. He also wants to
  1415.    authenticate the Printer. The Printer also authenticates the user.
  1416.    Payment occurs across the Internet.
  1417.  
  1418.    Client                                               IPP Printer
  1419.  
  1420.       +---------------------------------------------------------- >
  1421.       < ----------------------------------------------------------+
  1422.  
  1423.         Mutual authentication and exchange of secret keys
  1424.  
  1425.       +---------------------------------------------------------- >
  1426.         Here is a print job (encrypted)
  1427.         - job name = MyJob
  1428.         - notify me by email when done printing
  1429.         - print on iso-a4-white paper
  1430.         - print on both sides of the paper
  1431.         - return status of the printer in response
  1432.         - tell me where to pick up output
  1433.         - document is in Postscript format
  1434.         - here is the document to print
  1435.  
  1436.       < ----------------------------------------------------------+
  1437.         Print job accepted and spooled (encrypted)
  1438.         - job id = #12345
  1439.         - current state of print job = spooled
  1440.         - submission time = 02/12/97, 15:35
  1441.         - printer state = printing
  1442.         - payment required to proceed with job
  1443.         - pick up at 230 East Main after 3:30 pm today
  1444.  
  1445.       +---------------------------------------------------------- >
  1446.       < ----------------------------------------------------------+
  1447.         Payment transaction
  1448.  
  1449.  
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.  
  1457.  
  1458. Wright                        Experimental                     [Page 26]
  1459.  
  1460. RFC 2567             Internet Printing Design Goals           April 1999
  1461.  
  1462.  
  1463. 10.10. SUBMITTING A PRINT JOB WITH DECRYPTION ERROR
  1464.  
  1465.    A traveling executive needs to print a set of transparencies for an
  1466.    important business meeting. The charts are in Lotus Freelance format
  1467.    on his notebook computer. He has located a SirZippy print shop near
  1468.    his hotel that will print color transparencies. Because the
  1469.    information on the charts is sensitive, he wants to be sure that his
  1470.    data is sent to the printer in an encrypted format. He also wants to
  1471.    authenticate the printer. The printer also authenticates the user.
  1472.    Payment occurs across the Internet. An error occurs during
  1473.    decryption.
  1474.  
  1475.    Client                                        IPP Printer
  1476.  
  1477.       +---------------------------------------------------------- >
  1478.       < ----------------------------------------------------------+
  1479.         Mutual authentication and exchange of secret keys
  1480.  
  1481.  
  1482.       +---------------------------------------------------------- >
  1483.         Here is a print job (encrypted)
  1484.         - job name = MyJob
  1485.         - notify me by email when done printing
  1486.         - print on iso-a4-white paper
  1487.         - print on both sides of the paper
  1488.         - return status of the printer in response
  1489.         - tell me where to pick up output
  1490.         - document is in Postscript format
  1491.         - here is the document to print
  1492.  
  1493.       < ----------------------------------------------------------+
  1494.         Print job accepted and spooled (encrypted)
  1495.         - job id = #12345
  1496.         - current state of print job = spooled
  1497.         - submission time = 02/12/97, 15:35
  1498.         - printer state = printing
  1499.         - payment required to proceed with job
  1500.         - pick up at 230 East Main after 3:30 pm today
  1501.  
  1502.       +---------------------------------------------------------- >
  1503.       < ----------------------------------------------------------+
  1504.         Payment transaction
  1505.         .
  1506.         .
  1507.         .
  1508.       < ----------------------------------------------------------+
  1509.         Asynchronous response (email in this case)
  1510.         - decryption failed on job #12345
  1511.  
  1512.  
  1513.  
  1514. Wright                        Experimental                     [Page 27]
  1515.  
  1516. RFC 2567             Internet Printing Design Goals           April 1999
  1517.  
  1518.  
  1519.         - no pages printed
  1520.         - current state of job = aborted
  1521.  
  1522. 10.11. SUBMITTING A PRINT JOB WITH AUTHENTICATION
  1523.  
  1524.    An end-user wants to submit a print job. The print file already
  1525.    exists on his workstation. The client and printer are behind the same
  1526.    corporate firewall. The printer is available to anyone behind the
  1527.    firewall but authentication and authorization is required.
  1528.    Authorization takes place using the authenticated end-user's name.
  1529.    The data is pushed to the printer. The printer is capable of spooling
  1530.    the output.
  1531.  
  1532.    Client                                        IPP Printer
  1533.  
  1534.       +---------------------------------------------------------- >
  1535.       < ----------------------------------------------------------+
  1536.         Authentication
  1537.  
  1538.         Note: An authentication failure would end the transaction at
  1539.                   this point.
  1540.  
  1541.       +---------------------------------------------------------- >
  1542.         Here is a print job
  1543.         - job name = MyJob
  1544.         - notify me by email when done printing
  1545.         - print on iso-a4-white paper
  1546.         - print on both sides of the paper
  1547.         - return status of the printer in response
  1548.         - tell me where to pick up output
  1549.         - document is in Postscript format
  1550.         - here is the document to print
  1551.  
  1552.       < ----------------------------------------------------------+
  1553.         Print job accepted and spooled
  1554.         - job id = #12345
  1555.         - current state of print job = spooled
  1556.         - submission time = 02/12/97, 15:35
  1557.         - printer state = printing
  1558.  
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564.  
  1565.  
  1566.  
  1567.  
  1568.  
  1569.  
  1570. Wright                        Experimental                     [Page 28]
  1571.  
  1572. RFC 2567             Internet Printing Design Goals           April 1999
  1573.  
  1574.  
  1575. 10.12. SUBMITTING A PRINT JOB GENERATED DYNAMICALLY
  1576.  
  1577.    An end-user wants to submit a print job. The print data is generated
  1578.    dynamically and is being transmitted by a printer driver on the
  1579.    client workstation as available. The client and printer are behind
  1580.    the same corporate firewall. The printer is available to anyone
  1581.    behind the firewall and no authentication and authorization is
  1582.    required. The data is pushed to the printer. The printer is capable
  1583.    of spooling the output.  No error occurs.
  1584.  
  1585.    Client                                        IPP Printer
  1586.  
  1587.       +---------------------------------------------------------- >
  1588.         Here is a print job
  1589.         - job name = MyJob
  1590.         - notify me by email when done printing
  1591.         - print on iso-a4-white paper
  1592.         - print on both sides of the paper
  1593.         - return status of the printer in response
  1594.         - document is in Postscript format
  1595.         - here is the print job
  1596.  
  1597.  
  1598.       < ----------------------------------------------------------+
  1599.         Print data accepted and spooling started
  1600.         - job id = #12345
  1601.         - current job state = spooled
  1602.         - submission time = 02/12/97, 15:35
  1603.         - printer state = printing
  1604.  
  1605. 10.13. SUBMITTING A PRINT JOB WITH A PRINTER JAM - CANCELED
  1606.  
  1607.    An end-user wants to submit a print job. The print data is generated
  1608.    dynamically and is being transmitted by a printer driver on the
  1609.    client workstation as available. The client and printer are behind
  1610.    the same corporate firewall. The printer is available to anyone
  1611.    behind the firewall and no authentication and authorization is
  1612.    required. The data is pushed to the printer. The printer is not
  1613.    capable of spooling the output. The printer jams notifies the user
  1614.    and the user chooses to cancel the job.
  1615.  
  1616.    Client                                            IPP Printer
  1617.       +---------------------------------------------------------- >
  1618.         Here is a print job
  1619.         - job name = MyJob
  1620.         - notify me by email when done printing
  1621.         - print on iso-a4-white paper
  1622.         - print on both sides of the paper
  1623.  
  1624.  
  1625.  
  1626. Wright                        Experimental                     [Page 29]
  1627.  
  1628. RFC 2567             Internet Printing Design Goals           April 1999
  1629.  
  1630.  
  1631.         - return status of the printer in response
  1632.         - document is in Postscript format
  1633.         - here is the document to print
  1634.  
  1635.       < ----------------------------------------------------------+
  1636.         Print data accepted and printing started
  1637.         - job id = #12345
  1638.  
  1639.       +---------------------------------------------------------- >
  1640.         - What is the status of print job #12345?
  1641.  
  1642.       < --------------------------------------------------------- +
  1643.         - Job #12345 accepted but printer jammed, cannot continue
  1644.  
  1645.       +---------------------------------------------------------- >
  1646.         - Cancel job #12345
  1647.  
  1648.       * Printer flushes remaining data
  1649.       < ----------------------------------------------------------+
  1650.          Print job terminated
  1651.         - current job state = canceled
  1652.         - submission time = 02/12/97, 15:35
  1653.         - printer state = jammed
  1654.  
  1655. 10.14. SUBMITTING A PRINT JOB WITH A PRINTER JAM - RECOVERED
  1656.  
  1657.    An end-user wants to submit a print job. The print data is generated
  1658.    dynamically and is being transmitted by a printer driver on the
  1659.    client workstation as available. The client and printer are behind
  1660.    the same corporate firewall. The printer is available to anyone
  1661.    behind the firewall and no authentication and authorization is
  1662.    required. The data is pushed to the printer. The printer is not
  1663.    capable of spooling the output. The printer jams, notifies the user
  1664.    and the user clears the jam and elects to continue.
  1665.  
  1666.    Client                                        IPP Printer
  1667.  
  1668.       +---------------------------------------------------------- >
  1669.         Here is a print job
  1670.         - job name = MyJob
  1671.         - notify me by email when done printing
  1672.         - print on iso-a4-white paper
  1673.         - print on both sides of the paper
  1674.         - return status of the printer in response
  1675.         - document is in Postscript format
  1676.         - here is the document to print
  1677.  
  1678.       < ----------------------------------------------------------+
  1679.  
  1680.  
  1681.  
  1682. Wright                        Experimental                     [Page 30]
  1683.  
  1684. RFC 2567             Internet Printing Design Goals           April 1999
  1685.  
  1686.  
  1687.         Print data accepted and printing started
  1688.         - job id = #12345
  1689.  
  1690.       < --------------------------------------------------------- +
  1691.         - Notification: printer jammed, cannot continue
  1692.  
  1693.       * Jam is clear by human intervention, printing continues
  1694.  
  1695.       +---------------------------------------------------------- >
  1696.          Here is the last part of the document to print
  1697.  
  1698.       < ----------------------------------------------------------+
  1699.          Print job received
  1700.         - current job state = printing
  1701.         - submission time = 02/12/97, 15:35
  1702.         - printer state = printing
  1703.  
  1704. 10.15. SUBMITTING A PRINT JOB WITH SERVER PULL
  1705.  
  1706.    An end-user wants to submit a print job. The print data is in a file
  1707.    and is publicly available. It is pulled by the printer. The client
  1708.    and printer are behind the same corporate firewall. The printer is
  1709.    available to anyone behind the firewall and no authentication and
  1710.    authorization is required. The printer is capable of spooling the
  1711.    output. Printing may start before the entire job has been pulled.
  1712.  
  1713.    Client                                        IPP Printer
  1714.  
  1715.       +---------------------------------------------------------- >
  1716.         Here is a print job
  1717.  
  1718.         - job name = MyJob
  1719.         - notify me by email when done printing
  1720.         - print on iso-a4-white paper
  1721.         - print on both sides of the paper
  1722.         - return status of the printer in response
  1723.         - here is a reference to the data to be printed
  1724.  
  1725.       < ----------------------------------------------------------+
  1726.         Print data accepted and printing started
  1727.         - job id = #12345
  1728.         - current state of job = spooled
  1729.         - submission time = 02/12/97, 13:15
  1730.         - printer state = printing
  1731.  
  1732.         .
  1733.         .
  1734.        < ----------------------------------------------------------+
  1735.  
  1736.  
  1737.  
  1738. Wright                        Experimental                     [Page 31]
  1739.  
  1740. RFC 2567             Internet Printing Design Goals           April 1999
  1741.  
  1742.  
  1743.         Get the file to be printed
  1744.  
  1745.        +---------------------------------------------------------- >
  1746.         Here it is
  1747.  
  1748.         Note: Failure to find the file, would end the transaction
  1749.                   with an error at this point and an asynchronous
  1750.                   notification would be send to the Client.
  1751.  
  1752.        < ----------------------------------------------------------+
  1753.          Data received
  1754.  
  1755. 10.16. SUBMITTING A PRINT JOB WITH REFERENCED RESOURCES
  1756.  
  1757.    An end-user wants to submit a print job.  Part of the print data is
  1758.    on a file on the user's workstation. It is pushed by the client, but
  1759.    the print job requires some resource not included in the print file.
  1760.    The client and printer are behind the same corporate firewall. The
  1761.    printer is available to anyone behind the firewall and no
  1762.    authentication and authorization is required. The printer is capable
  1763.    of spooling the output. No errors occur.
  1764.  
  1765.    Client                                        IPP Printer
  1766.  
  1767.       +---------------------------------------------------------- >
  1768.         Here is a print job
  1769.         - job name = MyJob
  1770.         - notify me by email when done printing
  1771.         - print on iso-a4-white paper
  1772.         - print on both sides of the paper
  1773.         - return status of the printer in response
  1774.  
  1775.       < ----------------------------------------------------------+
  1776.         Print job accepted and spooled
  1777.         - job id = #12345
  1778.         - submission time = 02/12/97, 15:35
  1779.  
  1780.       +---------------------------------------------------------- >
  1781.         - here is the document to print
  1782.  
  1783.       < ----------------------------------------------------------+
  1784.         - OK
  1785.  
  1786.       +---------------------------------------------------------- >
  1787.         - here is the URI to print, it is the last document.
  1788.  
  1789.       < ----------------------------------------------------------+
  1790.         - OK
  1791.  
  1792.  
  1793.  
  1794. Wright                        Experimental                     [Page 32]
  1795.  
  1796. RFC 2567             Internet Printing Design Goals           April 1999
  1797.  
  1798.  
  1799.        < ----------------------------------------------------------+
  1800.          Get the external resource
  1801.  
  1802.        +---------------------------------------------------------- >
  1803.          Here it is
  1804.  
  1805. 10.17. GETTING CAPABILITIES
  1806.  
  1807. 10.17.1. Submission Attributes
  1808.  
  1809.    An end-user wants to get the production and scheduling attributes
  1810.    that are supported or required when submitting jobs to this printer.
  1811.    The client will use these attributes when forming the subsequent
  1812.    print request.
  1813.  
  1814.    Client                                        IPP Printer
  1815.       +---------------------------------------------------------- >
  1816.         I'm going to submit a Postscript job
  1817.         give me your job submission attributes
  1818.  
  1819.       < ----------------------------------------------------------+
  1820.         Postscript production attributes for this Printer are:
  1821.         - medium-select = us-letter-white, us-legal-white
  1822.            - default is us-letter-white
  1823.            -   copies = 1,2,3,4,5
  1824.            - default is 1
  1825.                 - print-quality = draft, normal, high
  1826.            - default is draft
  1827.                 - sides = 1-sided, 2-sided-long-edge
  1828.            - default is 2-sided-long-edge
  1829.         - Job scheduling attributes for this Printer are:
  1830.              - job-priority = 1,2,3
  1831.            - default = 3
  1832.  
  1833. 10.17.2. Printer Capabilities
  1834.  
  1835.    An end-user wants to determine the resolution, marking technology,
  1836.    and PDLs supported by the printer.
  1837.  
  1838.    Client                                        IPP Printer
  1839.       +---------------------------------------------------------- >
  1840.         Please tell me the
  1841.         - resolution of the printer
  1842.         - the marking technology of the printer
  1843.         - PDLs supported
  1844.       < ----------------------------------------------------------+
  1845.         Printer resolution  = 600 dpi
  1846.         Marking Technology = laser
  1847.  
  1848.  
  1849.  
  1850. Wright                        Experimental                     [Page 33]
  1851.  
  1852. RFC 2567             Internet Printing Design Goals           April 1999
  1853.  
  1854.  
  1855.         PDLs supported = Postscript level 2, PCL/6
  1856.  
  1857. 10.18. GETTING STATUS
  1858.  
  1859. 10.18.1. Printer State/Status
  1860.  
  1861.    An end-user wants to determine the state or status of the printer.
  1862.  
  1863.    Client                                        IPP Printer
  1864.  
  1865.       +---------------------------------------------------------- >
  1866.         What is the state of the printer?
  1867.  
  1868.       < ----------------------------------------------------------+
  1869.         Printer state = out-of-paper
  1870.  
  1871. 10.18.2. Job Status
  1872.  
  1873.    An end user wants to get the status of a job he has submitted.
  1874.  
  1875.    Client                                        IPP Printer
  1876.  
  1877.       +---------------------------------------------------------- >
  1878.         Please tell me the status of job #12345
  1879.  
  1880.       < ----------------------------------------------------------+
  1881.         Job #12345 is queued
  1882.         it is number 3 in the queue
  1883.         printer state = printing
  1884.  
  1885. 10.18.3. Status of All My Jobs
  1886.  
  1887.    An end user wants to get a list of all of the jobs he has submitted
  1888.    to this Printer.
  1889.  
  1890.    Client                                        IPP Printer
  1891.  
  1892.       +---------------------------------------------------------- >
  1893.         Please tell me the status of my jobs
  1894.  
  1895.       < ----------------------------------------------------------+
  1896.         Job #00012 is complete
  1897.         Printed at 12:35 on 01/23/97
  1898.  
  1899.         Job #09876 is printing
  1900.  
  1901.         Job #12345 is queued
  1902.         it is number 3 in the queue
  1903.  
  1904.  
  1905.  
  1906. Wright                        Experimental                     [Page 34]
  1907.  
  1908. RFC 2567             Internet Printing Design Goals           April 1999
  1909.  
  1910.  
  1911.         Job #34567 is queued
  1912.         it is number 7 in the queue
  1913.  
  1914. 10.19. ASYNCHRONOUS NOTIFICATION
  1915.  
  1916. 10.19.1. Job Completion
  1917.  
  1918.    An end-user wants to get notification of events that affect his print
  1919.    jobs. Print job completes without error.
  1920.  
  1921.    Client                                        IPP Printer
  1922.  
  1923.       < ----------------------------------------------------------+
  1924.         Print job #123 completed
  1925.  
  1926. 10.19.2. Job Complete with Data
  1927.  
  1928.    An end-user wants to get notification of events that affect his print
  1929.    jobs. Print job completes, users asked for all end of job
  1930.    information.
  1931.  
  1932.    Client                                        IPP Printer
  1933.  
  1934.       < ----------------------------------------------------------+
  1935.         Print job #123 completed
  1936.         - total pages printed = 15
  1937.         - number of copies printed = 3
  1938.         - total cost to print = $7.45
  1939.         - pick up copies in room H-6, building 005
  1940.  
  1941. 10.19.3. Print Job Fails
  1942.  
  1943.    An end-user wants to get notification of events that affect his print
  1944.    jobs. Print job fails. Printer is unattended.
  1945.  
  1946.    Client                                        IPP Printer
  1947.  
  1948.       < ----------------------------------------------------------+
  1949.         Print job #123 failed
  1950.         - total pages printed = 15
  1951.         - number of pages submitted = 25
  1952.         - printer-state = jammed
  1953.  
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959.  
  1960.  
  1961.  
  1962. Wright                        Experimental                     [Page 35]
  1963.  
  1964. RFC 2567             Internet Printing Design Goals           April 1999
  1965.  
  1966.  
  1967. 10.20. CANCEL A JOB
  1968.  
  1969.    The end-user submits a print job and later decides to cancel it.
  1970.  
  1971.    Client                                        IPP Printer
  1972.  
  1973.       +---------------------------------------------------------- >
  1974.       < ----------------------------------------------------------+
  1975.         Authentication.
  1976.  
  1977.  
  1978.       +---------------------------------------------------------- >
  1979.         Cancel job #1234
  1980.  
  1981.       < ----------------------------------------------------------+
  1982.         Job #1234 Canceled
  1983.  
  1984.  
  1985. 10.21. END TO END SCENARIO - WITHIN AN ENTERPRISE
  1986.  
  1987.    An office worker prints on shared departmental printers. All printers
  1988.    in the office are public, that is, no authentication or authorization
  1989.    is required. Printers are protected from external access by a
  1990.    firewall. No billing or accounting is required. Most printing is done
  1991.    from desktop applications. A help desk is provided for printing
  1992.    problems. Standard operating systems and applications are used.
  1993.    Drivers are available, but are installed manually by support
  1994.    personnel. This scenario assumes that drivers have been installed and
  1995.    that drivers are not IPP aware, that is, they cannot communicate
  1996.    across an IPP connection to obtain status and capabilities. IPP
  1997.    printers appear in application pull-down menus.  Printer
  1998.    configuration data is hard wired into the driver.
  1999.  
  2000.    End-user selects print from the application pull down menu. An IPP
  2001.    printer is selected from the list of Printers offered
  2002.  
  2003.    The driver puts up a dialogue with hard-wired set of options for this
  2004.    printer. The end-user makes choices and submits job.
  2005.  
  2006.    Client                                        IPP Printer
  2007.       +---------------------------------------------------------- >
  2008.         Here is a print job
  2009.         - job-name = memo-to-boss
  2010.         - notify me by email when job is complete
  2011.         - print on us-letter-white paper
  2012.         - print 1 copy
  2013.         - print at normal quality
  2014.         - print on 1 side
  2015.  
  2016.  
  2017.  
  2018. Wright                        Experimental                     [Page 36]
  2019.  
  2020. RFC 2567             Internet Printing Design Goals           April 1999
  2021.  
  2022.  
  2023.         - give me the state of the printer in response
  2024.  
  2025.    The driver generates the print data and passes it to the IPP driver a
  2026.    piece at a time as it is generated.
  2027.  
  2028.       +---------------------------------------------------------- >
  2029.         Here is the print data
  2030.  
  2031.  
  2032.       < ----------------------------------------------------------+
  2033.         Print data received, file is spooled
  2034.         - printer state = printing
  2035.         - time submitted = 2/12/97, 15:35
  2036.         - current job state = spooled
  2037.  
  2038.    Client adds this job to list of current jobs. List of jobs and state
  2039.    of each is available on a pull-down menu on the client.
  2040.  
  2041.    End-user selects job #1234 from list and clicks on it to see its
  2042.    status.
  2043.  
  2044.       +---------------------------------------------------------- >
  2045.         Give me the state of job #1234
  2046.         and the state of the Printer
  2047.  
  2048.       < ----------------------------------------------------------+
  2049.         Job #1234 state = spooled
  2050.         - it is number 3 in the queue
  2051.         - printer state = printing
  2052.  
  2053.    The job completes without error
  2054.  
  2055.       < ----------------------------------------------------------+
  2056.         Job #1234 completed
  2057.         12 of 12 pages printed
  2058.  
  2059. 10.22. END TO END SCENARIO - ACROSS ENTERPRISES
  2060.  
  2061.    An office worker in Company A needs to print an office document on a
  2062.    "public" printer at Company B, a business partner. Both companies
  2063.    have corporate firewalls so the print request must flow out of A's
  2064.    firewall and into B's firewall. The office worker can look at public
  2065.    printers in Company B's directory service. The document is generated
  2066.    by a desktop application. Since the printer is "public" no
  2067.    authentication or authorization is required.  A driver is downloaded.
  2068.    The driver is IPP aware, that is, it can communicate dynamically
  2069.    through the IPP protocol layer to obtain information about the
  2070.    printer.
  2071.  
  2072.  
  2073.  
  2074. Wright                        Experimental                     [Page 37]
  2075.  
  2076. RFC 2567             Internet Printing Design Goals           April 1999
  2077.  
  2078.  
  2079.    Client                      Company B's Directory Service
  2080.  
  2081.    End user connects to B's Directory service
  2082.  
  2083.       +---------------------------------------------------------- >
  2084.         Find a Printer with these characteristics
  2085.         - public (no authorization or authentication required)
  2086.         - is in Lexington, building 004
  2087.         - prints black and white
  2088.  
  2089.       < ----------------------------------------------------------+
  2090.         Printer "Public-A"
  2091.         - http://www.lexmark.com/pubprinter/a
  2092.  
  2093.         Printer "Public-B"
  2094.         - http://www.lexmark.com/pubprinter/b
  2095.  
  2096.    End user selects Public-A
  2097.  
  2098.    Client                                           Public-A
  2099.  
  2100.       +---------------------------------------------------------- >
  2101.         Where can I find a driver for you?
  2102.  
  2103.       < ----------------------------------------------------------+
  2104.         Drivers at http://www.lexmark.com/pubprinters/a/os245
  2105.  
  2106.    End user gets driver and installs it on his PC.
  2107.  
  2108.    End-user selects print from the application pull down menu. "Public-
  2109.    A" is selected from the list of Printers offered
  2110.  
  2111.       +---------------------------------------------------------- >
  2112.         I'm going to submit a print job
  2113.         give me your job submission attributes
  2114.  
  2115.       < ----------------------------------------------------------+
  2116.  
  2117.         Production attributes for this Printer are:
  2118.         - medium-select = us-letter-white, us-legal-white
  2119.            - default is us-letter-white
  2120.            -   copies = 1,2,3,4,5
  2121.            - default is 1
  2122.                 - print-quality = draft, normal, high
  2123.            - default is draft
  2124.                 - sides = 1-sided, 2-sided-long-edge
  2125.            - default is 2-sided-long-edge
  2126.  
  2127.  
  2128.  
  2129.  
  2130. Wright                        Experimental                     [Page 38]
  2131.  
  2132. RFC 2567             Internet Printing Design Goals           April 1999
  2133.  
  2134.  
  2135.         Job scheduling attributes for this Printer are:
  2136.         - job-priority = 1,2,3
  2137.            default = 3
  2138.  
  2139.    Driver puts up dialogue with available options and fills in the
  2140.    defaults.
  2141.  
  2142.    End-user makes choices and submits job
  2143.  
  2144.       +---------------------------------------------------------- >
  2145.         Here is a print job
  2146.         - job-name = memo-to-Don-Wright
  2147.         - notify me by email when job is complete
  2148.         - print on us-letter-white paper
  2149.         - print 1 copy
  2150.         - print at normal quality
  2151.         - print on 1 side
  2152.         - give me the state of the printer in response
  2153.  
  2154.  
  2155.    The driver generates the print data and passes it to the IPP driver a
  2156.    piece at a time.
  2157.  
  2158.       +---------------------------------------------------------- >
  2159.         Here is the print data
  2160.  
  2161.       < ----------------------------------------------------------+
  2162.         Print data received, and spooling started
  2163.         print job id = #1234
  2164.  
  2165.         Print data received, file is spooled
  2166.  
  2167.         - printer state = printing
  2168.         - time submitted = 2/12/97, 15:35
  2169.         - current job state = spooled
  2170.  
  2171.    Client adds this job to list of current jobs.  List of jobs and state
  2172.    of each is available on a pull-down menu on the client.
  2173.  
  2174.    End-user selects job #1234 from list and clicks on it to see its
  2175.    status.
  2176.  
  2177.       +---------------------------------------------------------- >
  2178.         Give me the state of job #1234
  2179.         and the state of the Printer
  2180.  
  2181.       < ----------------------------------------------------------+
  2182.         Job #1234 state = spooled
  2183.  
  2184.  
  2185.  
  2186. Wright                        Experimental                     [Page 39]
  2187.  
  2188. RFC 2567             Internet Printing Design Goals           April 1999
  2189.  
  2190.  
  2191.         - it is number 3 in the queue
  2192.         - printer state = printing
  2193.  
  2194.        * The job completes without error
  2195.       < ----------------------------------------------------------+
  2196.         Job #1234 completed
  2197.         12 of 12 pages printed
  2198.  
  2199. 10.23. END TO END SCENARIO - ON THE INTERNET
  2200.  
  2201.    An executive in her hotel room is finishing an important presentation
  2202.    on her laptop computer. She connects to a local print shop through
  2203.    the web to get a copy of her charts printed for tomorrow's
  2204.    presentation.  She must find a print shop that is convenient and can
  2205.    print color transparencies. She must download and temporarily install
  2206.    a driver in order to generate the PDL required by the print shop.
  2207.    Mutual authentication is required by the print shop and payment must
  2208.    be made in advance. The job is encrypted on the wire to prevent
  2209.    eavesdropping.
  2210.  
  2211.    End-user completes presentation. She goes to the web and connects to
  2212.    the SirZippy home page.
  2213.  
  2214.       Client                      SirZippy Directory Service
  2215.       +---------------------------------------------------------- >
  2216.  
  2217.         Find me a printer with these characteristics
  2218.         - Near Market Street in San Jose
  2219.         - Prints color transparencies
  2220.         - drivers can be downloaded
  2221.         - supports privacy (encryption)
  2222.         -
  2223.  
  2224.    Available Printers matching these characteristics are looked up in the
  2225.    Directory Service
  2226.  
  2227.       < ----------------------------------------------------------+
  2228.  
  2229.         Printer "Color-A"
  2230.         - located at 123 First Street in San Jose
  2231.         - URI is http://www.SirZippy.com/FirstStreet/Color-A
  2232.         - prints color transparencies
  2233.         - 600 dpi laser
  2234.         - driver ABC-Postscript-V1.3 available at this URI
  2235.         - cost = $.75 per page
  2236.         - authentication required to use printer
  2237.         - payment required prior to printing
  2238.  
  2239.  
  2240.  
  2241.  
  2242. Wright                        Experimental                     [Page 40]
  2243.  
  2244. RFC 2567             Internet Printing Design Goals           April 1999
  2245.  
  2246.  
  2247.         Printer "Color-B"
  2248.         - located at 67 San Carlos Street, San Jose
  2249.         - URI is http://www.SirZippy.com/SanCarlos/Color-B
  2250.         - prints color transparencies
  2251.         - 1200 dpi laser
  2252.         - driver XYZ-PostScript-V4.3 available at this URI
  2253.         - cost = $1.25 per page
  2254.         - authentication required to use printer
  2255.         - payment required prior to printing
  2256.         - more information at this URI
  2257.  
  2258.    The user decides to use the first printer because it is closer. She
  2259.    connects to the URI given to get a driver.
  2260.  
  2261.    Client                                         Driver URI
  2262.  
  2263.       +---------------------------------------------------------- >
  2264.         I need a driver for "Color-A"
  2265.  
  2266.  
  2267.       < ----------------------------------------------------------+
  2268.          Driver installer is at http://www.xerox.com/prtdrvrs
  2269.  
  2270.         Driver is installed
  2271.  
  2272.         User connects to
  2273.         "Color-A"
  2274.  
  2275.    Client                              IPP Printer "Color-A"
  2276.  
  2277.       +---------------------------------------------------------- >
  2278.       < ----------------------------------------------------------+
  2279.         Mutual authentication and exchange of secret keys
  2280.  
  2281.       +---------------------------------------------------------- >
  2282.         I'm going to submit a print job
  2283.         give me your job submission attributes
  2284.  
  2285.       < ----------------------------------------------------------+
  2286.         Production attributes for this Printer are:
  2287.         - medium-select = us-letter-white, us-legal-white
  2288.              - default is us-letter-white
  2289.         - copies = 1,2,3,4,5
  2290.              - default is 1
  2291.         - print-quality = draft, normal, high
  2292.              - default is draft
  2293.         - sides = 1-sided, 2-sided-long-edge
  2294.              - default is 2-sided-long-edge
  2295.  
  2296.  
  2297.  
  2298. Wright                        Experimental                     [Page 41]
  2299.  
  2300. RFC 2567             Internet Printing Design Goals           April 1999
  2301.  
  2302.  
  2303.         Job scheduling attributes for this Printer are:
  2304.         - job-priority = 1,2,3
  2305.            default = 3
  2306.  
  2307.    Driver puts up dialogue with available options and fills in the
  2308.    defaults.
  2309.  
  2310.    End-user makes choices and submits job
  2311.  
  2312.       +---------------------------------------------------------- >
  2313.          Here is a print job
  2314.  
  2315.         - job-name = presentation
  2316.         - notify me by email when job is complete
  2317.         - print on us-letter-transparency
  2318.         - print 1 copy
  2319.         - print at high quality
  2320.         - print by 9:00 am tomorrow morning
  2321.         - give me the state of the printer in response
  2322.  
  2323.    The driver generates the print data and passes it to the IPP  driver a
  2324.    piece at a time.
  2325.  
  2326.       +---------------------------------------------------------- >
  2327.        Here is the print data
  2328.  
  2329.        < ---------------------------------------------------------+
  2330.        Print data received, and spooling started
  2331.        print job id = #1234
  2332.  
  2333.        Print data received, file is spooled
  2334.         - printer state = printing
  2335.         - time submitted = 2/12/97, 15:35
  2336.         - current job state = held, waiting for payment
  2337.  
  2338.       +---------------------------------------------------------- >
  2339.       < ----------------------------------------------------------+
  2340.         Payment transaction
  2341.  
  2342.       < ----------------------------------------------------------+
  2343.         Job is scheduled to print, pick up after 9:00am tomorrow
  2344.         Thank you for using SirZippy
  2345.  
  2346.  
  2347.  
  2348.  
  2349.  
  2350.  
  2351.  
  2352.  
  2353.  
  2354. Wright                        Experimental                     [Page 42]
  2355.  
  2356. RFC 2567             Internet Printing Design Goals           April 1999
  2357.  
  2358.  
  2359. 11.  Full Copyright Statement
  2360.  
  2361.    Copyright (C) The Internet Society (1999).  All Rights Reserved.
  2362.  
  2363.    This document and translations of it may be copied and furnished to
  2364.    others, and derivative works that comment on or otherwise explain it
  2365.    or assist in its implementation may be prepared, copied, published
  2366.    and distributed, in whole or in part, without restriction of any
  2367.    kind, provided that the above copyright notice and this paragraph are
  2368.    included on all such copies and derivative works.  However, this
  2369.    document itself may not be modified in any way, such as by removing
  2370.    the copyright notice or references to the Internet Society or other
  2371.    Internet organizations, except as needed for the purpose of
  2372.    developing Internet standards in which case the procedures for
  2373.    copyrights defined in the Internet Standards process must be
  2374.    followed, or as required to translate it into languages other than
  2375.    English.
  2376.  
  2377.    The limited permissions granted above are perpetual and will not be
  2378.    revoked by the Internet Society or its successors or assigns.
  2379.  
  2380.    This document and the information contained herein is provided on an
  2381.    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
  2382.    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
  2383.    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
  2384.    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
  2385.    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  2386.  
  2387.  
  2388.  
  2389.  
  2390.  
  2391.  
  2392.  
  2393.  
  2394.  
  2395.  
  2396.  
  2397.  
  2398.  
  2399.  
  2400.  
  2401.  
  2402.  
  2403.  
  2404.  
  2405.  
  2406.  
  2407.  
  2408.  
  2409.  
  2410. Wright                        Experimental                     [Page 43]
  2411.  
  2412.