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-01.txt < prev    next >
Text File  |  1997-08-02  |  17KB  |  414 lines

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