home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_i / draft-ietf-ipp-rat-00.txt < prev    next >
Text File  |  1997-07-17  |  16KB  |  371 lines

  1.  
  2.  INTERNET-DRAFT                                       Stephen N. Zilles
  3.                                                       Adobe Systems Inc.
  4.                                                            July 14, 1997
  5.  
  6.           Rationale for the Structure of the Model and Protocol
  7.                 for the Internet Printing Protocol (IPP)
  8.                       <draft-ietf-ipp-rat-00.txt>
  9.                           Expires Jan 14, 1998
  10.  
  11. Status of this Memo
  12.      This document is an Internet-Draft.  Internet-Drafts are working
  13.      documents of the Internet Engineering Task Force (IETF), its areas,
  14.      and its working groups.  Note that other groups may also distribute
  15.      working documents as Internet-Drafts.
  16.      Internet-Drafts are draft documents valid for a maximum of six
  17.      months and may be updated, replaced, or obsoleted by other
  18.      documents at any time.  It is inappropriate to use Internet-Drafts
  19.      as reference material or to cite them other than as "work in
  20.      progress."
  21.      To learn the current status of any Internet-Draft, please check the
  22.      "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow
  23.      Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
  24.      munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
  25.      ftp.isi.edu (US West Coast).
  26.  
  27.                                 Abstract
  28. This document is one of a set of documents which together describe all
  29. aspects of a new Internet Printing Protocol (IPP). IPP is an application
  30. level protocol that can be used for distributed printing on the
  31. Internet. There are multiple parts to IPP, but the primary architectural
  32. components are the Model, the Protocol and an interface to Directory
  33. Services. This document provides a high level overview of the
  34. architecture and provides the rational for the decisions made in
  35. structuring the architecture.
  36.  The full set of IPP documents include:
  37.      Internet Printing Protocol/1.0: Requirements
  38.      Internet Printing Protocol/1.0: Model and Semantics
  39.      Internet Printing Protocol/1.0: Security
  40.      Internet Printing Protocol/1.0: Protocol Specification
  41.      Internet Printing Protocol/1.0: Directory Schema
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63. Zilles                                              [Page 1]
  64.  
  65.  
  66.  
  67.   Rationale for the Structure of the Model and Protocol July 14, 1997
  68.  
  69.  
  70.                            TABLE OF CONTENTS
  71.  
  72.  
  73. 1. ARCHITECTURAL OVERVIEW..............................................3
  74.  
  75.  
  76. 2. THE PRINTER.........................................................4
  77.  
  78.  
  79. 3. RATIONAL FOR THE MODEL..............................................4
  80.  
  81.  
  82. 4. RATIONAL FOR THE PROTOCOL...........................................5
  83.  
  84.  4.1 The Encoding .....................................................5
  85.  
  86.  4.2 Smission Mechanism ...............................................5
  87.  
  88.  
  89. 5. RATIONAL FOR THE DIRECTORY SCHEMA...................................6
  90.  
  91.  
  92. 6. RATIONAL FOR SECURITY...............................................6
  93.  
  94.  
  95. 7. AUTHOR'S ADDRESSES..................................................7
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124. Zilles                                              [Page 2]
  125.  
  126.  
  127.  
  128.       Rationale for the Structure of the Model and Protocol July 14, 1997
  129.  
  130.          1      Rationale for the Structure of the Model and Protocol
  131.          2            for the Internet Printing Protocol (IPP)
  132.  
  133.          3  1. Architectural Overview
  134.          4  The Internet Printing Protocol (IPP) is an application level
  135.          5  protocol that can be used for distributed printing on the
  136.          6  Internet. This protocol defines interactions between a
  137.          7  client and a server. The client is provided the capability
  138.          8  to inquire about capabilities of a printer, to submit print
  139.          9  jobs and to inquire about and cancel print jobs. The server
  140.         10  for these requests is the Printer; the Printer is an
  141.         11  abstraction a generic document output device and/or a print
  142.         12  service provider. Thus, the Printer could be a real printing
  143.         13  device, such as a computer printer or fax output device, or
  144.         14  it could be a service that interfaced with output devices.
  145.         15  The architecture for IPP defines (in the Model document) an
  146.         16  abstract Model for the data which is used to control the
  147.         17  printing process and to provide information about the
  148.         18  process and the capabilities of the Printer. This abstract
  149.         19  Model is hierarchical in nature and reflects the structure
  150.         20  of the Printer and the Jobs that may be being processed by
  151.         21  the Printer.  The Internet provides a channel between the
  152.         22  client and the server/Printer. Use of this channel requires
  153.         23  flattening and sequencing the hierarchical Model data.
  154.         24  Therefore, the IPP also defines (in the Protocol document)
  155.         25  an encoding of the data in the model for transfer between
  156.         26  the client and server. This transfer of data may be either a
  157.         27  request or the response to a request.   Finally, the IPP
  158.         28  defines (in the Protocol document) a protocol for
  159.         29  transfering the encoded request and response data between
  160.         30  the client and the server/Printer.
  161.         31  An example of a typical interaction would by a request from
  162.         32  the client to create a print job. The client would assemble
  163.         33  the Model data to be associated with that job, such as the
  164.         34  name of the job, the media to use, the number of pages to
  165.         35  place on each media instance, etc. This data would then be
  166.         36  encoded according to the Protocol and would be transmitted
  167.         37  according to the Protocol. The server/Printer would receive
  168.         38  the encoded Model data, decode it into a form understood by
  169.         39  the server/Printer and, based on that data, do one of two
  170.         40  things: (1) accept the job or (2) reject the job. In either
  171.         41  case, the server must construct a response in terms of the
  172.         42  Model data, encode that response according to the Protocol
  173.         43  and transmit that encoded Model data as the response to the
  174.         44  request using the Protocol.
  175.         45  Another part of the IPP architecture is the Directory
  176.         46  Schema. The role of the Directory Schema is to provide a
  177.         47  standard set of attributes which might be used to query a
  178.         48  directory service for the URI of a Printer that is likely to
  179.         49  meet the needs of the client.
  180.         50  The IPP architecture also addresses security issues such as
  181.         51  control of access to server/Printers and secure
  182.         52  transmissions of requests, response and the data to be
  183.         53  printed.
  184.  
  185.             Zilles                                              [Page 3]
  186.  
  187.  
  188.  
  189.       Rationale for the Structure of the Model and Protocol July 14, 1997
  190.  
  191.         54  2. The Printer
  192.         55  Because the (abstract) server/Printer encompasses a wide
  193.         56  range of implementations, it is necessary to make some
  194.         57  assumptions about a minimal implementation. The most likely
  195.         58  minimal implementation is one that is embedded in an output
  196.         59  device running a specialized real time operating system and
  197.         60  with limited processing, memory and storage capabilities.
  198.         61  This Printer will be connected to the Internet and will have
  199.         62  at least a TCP/IP capability with (likely) SNMP support for
  200.         63  the Internet connection. In addition, it is likely the the
  201.         64  Printer will be an HTML/HTTP server to allow direct user
  202.         65  access to information about the printer.
  203.  
  204.         66  3. Rationale For The Model
  205.         67  The Model is defined independently of any encoding of the
  206.         68  Model data both to support the likely uses of IPP and to be
  207.         69  robust with respect to the possibility of alternate
  208.         70  encodings.
  209.         71  It is expected that a client or server/Printer would
  210.         72  represent the Model data in some data structure within the
  211.         73  applications/servers that support IPP. Therefore, the Model
  212.         74  was designed to make that representation straightforward.
  213.         75  Typically, a parser or formatter would be used to convert
  214.         76  from or to the encoded data format. Once in an internal form
  215.         77  suitable to a product, the data can be manipulated by the
  216.         78  product. For example, the data sent with a Print Job can be
  217.         79  used to control the processing of that Print Job.
  218.         80  The semantics of IPP are attached to the (abstract) Model.
  219.         81  Therefore, the application/server is not dependent on the
  220.         82  encoding of the Model data, and it is possible to consider
  221.         83  alternative mechanisms and formats by which the data could
  222.         84  be transmitted from a client to a server; for example, a
  223.         85  server could have a direct, client-less GUI interface that
  224.         86  might be used to accept some kinds of Print Jobs. This
  225.         87  independence would also allow a different encoding and/or
  226.         88  transmission mechanism to be used if the ones adopted here
  227.         89  were shown to be overly limiting in the future. Such a
  228.         90  change could be migrated into new products as an alternate
  229.         91  protocol stack/parser for the Model data.
  230.         92  Having an abstract Model also allow the Model data to be
  231.         93  aligned with the (abstract) model used in the Printer, Job
  232.         94  and Host Resources MIBs. This provides consistency in
  233.         95  interpretation of the data obtained independently of how the
  234.         96  data is accessed, whether via IPP or via SNMP and the
  235.         97  Printer/Job MIBs.
  236.  
  237.         98  4. Rationale For The Protocol
  238.         99  There are two parts to the Protocol: (1) the encoding of the
  239.        100  Model data and (2) the mechanism for transmitting the model
  240.        101  data between client and server.
  241.  
  242.        102  4.1 The Encoding
  243.        103  The TranTo make it simpler to develop embedded printers, a
  244.        104  very simple binary encoding has been chosen. This encoding
  245.  
  246.             Zilles                                              [Page 4]
  247.  
  248.  
  249.  
  250.       Rationale for the Structure of the Model and Protocol July 14, 1997
  251.  
  252.        105  is adequate to represent the kinds of data that occur within
  253.        106  the Model. It has a simple structure consisting of name
  254.        107  value pairs in which the names are length specified strings
  255.        108  constrained to characters from a subset of ASCII and the
  256.        109  values are either scalars or a sequence of scalars. Each
  257.        110  scalar value has a length specification.
  258.        111  A fully encoded request/response has a version number, an
  259.        112  operation (for a request) or a status (for a response),
  260.        113  associated parameters which are encoded Model data and,
  261.        114  optionally, print data following the Model data.
  262.        115  [ISSUE: what should be said about Parameters and Attributes]
  263.  
  264.        116  4.2 Smission Mechanism
  265.        117  The chosen mechanism for transmitting the encoded Model data
  266.        118  is HTTP 1.1 Post (and associated response). No modifications
  267.        119  to HTTP 1.1 are proposed or required.
  268.        120   The sole role of the Transmission Mechanism is to provide a
  269.        121  transfer of encoded Model data from/to the client to/from
  270.        122  the server. This could be done using any data delivery
  271.        123  mechanism. The key reasons why HTTP 1.1 Post is used are:
  272.        124  1. HTTP 1.0 is already widely deployed and, based on the
  273.        125     recent evidence, HTTP 1.1 will be widely deployed as the
  274.        126     manufactures release new products. The performance
  275.        127     benefits of HTTP 1.1 have been shown and manufactures are
  276.        128     reacting postively.
  277.        129  2. Wide deployment has meant that many of the problems of
  278.        130     making a protocol work in a wide range of environments
  279.        131     from local net to intranet to internet have been solved
  280.        132     and will stay solved with HTTP 1.1 deployment.
  281.        133  3. HTTP 1.1 solves most of the problems that might have
  282.        134     required a new protocol to be developed. HTTP 1.1 allows
  283.        135     persistent connections that make a multi-message protocol
  284.        136     be more efficient; for example it is practical to have a
  285.        137     separate CreatJob and SendJob messages. Chunking allows
  286.        138     the transmission of large print files without having to
  287.        139     prescan the file to determine the file length. The accept
  288.        140     headers allow the client's protocol and localization
  289.        141     desires to be transmitted with the IPP operations and
  290.        142     data. The HTTP redirect response allows a client to be
  291.        143     informed  when a Job he is interested in is moved to
  292.        144     another server/Printer for any reason.
  293.        145  4. Most network Printers will be implementing HTTP servers
  294.        146     for reasons other than IPP. These network attached
  295.        147     Printers want to provide information on how to use the
  296.        148     printer, its current state, etc. in HTML. This requires
  297.        149     having an HTTP server which would be available to do IPP
  298.        150     functions as well.
  299.        151  5. Most of the complexity of HTTP 1.1 is concerned with the
  300.        152     implementation of proxies and not the implementation of
  301.        153     clients and/or servers. Work is proceding in the HTTP
  302.        154     Working Group to help identify what must be done by a
  303.        155     server. As the Protocol document shows, that is not very
  304.        156     much.
  305.  
  306.  
  307.             Zilles                                              [Page 5]
  308.  
  309.  
  310.  
  311.       Rationale for the Structure of the Model and Protocol July 14, 1997
  312.  
  313.        157  6. An HTTP based solution fits will with the Internet
  314.        158     security mechanism that are currently deployed or being
  315.        159     deployed. HTTP will run over SSL/TLS. The digest
  316.        160     authentication mechanism of HTTP 1.1 provides an adequate
  317.        161     level of access control (at least for intranet usage).
  318.        162     These solutions are deployed and in practical use; a new
  319.        163     solution would require extensive use to have the same
  320.        164     degree of confidence in its security.
  321.  
  322.        165  5. Rationale For The Directory Schema
  323.        166  Successful use of IPP depends on the client finding a
  324.        167  suitable IPP enabled Printer to which to send a IPP
  325.        168  requests, such as print a job. This task is simplified if
  326.        169  there is a Directory Service which can be queried for a
  327.        170  suitable Printer. The purpose of the Directory Schema is to
  328.        171  have a standard description of Printer attributes that can
  329.        172  be associated the the URI for the printer. These attributes
  330.        173  are a subset of the Model attributes and can be encoded in
  331.        174  the appropriate query syntax for the Directory Service being
  332.        175  used by the client.
  333.  
  334.        176  6. Rationale For Security
  335.        177  Security is an areas of active work on the Internet.
  336.        178  Complete solutions to a wide range of security concerns are
  337.        179  not yet available. Therefore, in the design of IPP, the
  338.        180  focus has been on identifying a set of security
  339.        181  protocols/features that are implemented (or currently
  340.        182  implementable) and solve real problems with distributed
  341.        183  printing. The two areas that seem appropriate to support
  342.        184  are: (1) authorization to use a Printer and (2) secure
  343.        185  interaction with a printer. The chosen mechanisms are the
  344.        186  digest authentication mechanism of HTTP 1.1 and the SSL/TLS
  345.        187  secure communication mechanism, which also includes
  346.        188  authorization.
  347.  
  348.        189  7. Author's Addresses
  349.        190      Stephen Zilles
  350.        191      Adobe Systems Incorporated
  351.        192      345 Park Avenue
  352.        193      MailStop W14
  353.        194      San Jose, CA 95110-2704
  354.        195
  355.        196      Phone: +1 408 536-4766
  356.        197      Fax:   +1 408 537-4042
  357.        198      Email: szilles@adobe.com
  358.        199
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.             Zilles                                              [Page 6]
  369.  
  370.  
  371.