RFC 2566:Internet Printing Protocol/1.0: Model and...
RFC-Ref

1. Introduction

   The Internet Printing Protocol (IPP) is an application level protocol
   that can be used for distributed printing using Internet tools and
   technologies.  IPP version 1.0 (IPP/1.0) focuses only on end user
   functionality.  This document is just one of a suite of documents
   that fully define IPP.  The full set of IPP documents includes:

     Design Goals for an Internet Printing Protocol [RFC2567]
     Rationale for the Structure and Model and Protocol for the Internet
        Printing Protocol [RFC2568]
     Internet Printing Protocol/1.0: Model and Semantics (this document)
     Internet Printing Protocol/1.0: Encoding and Transport [RFC2565]
     Internet Printing Protocol/1.0: Implementer's Guide [ipp-iig]
     Mapping between LPD and IPP Protocols [RFC2569]

   Anyone reading these documents for the first time is strongly
   encouraged to read the IPP documents in the above order.

   This document is laid out as follows:

     - The rest of Section 1 is an introduction to the IPP simplified
       model for distributed printing.
     - Section 2 introduces the object types covered in the model with
       their basic behaviors, attributes, and interactions.
     - Section 3 defines the operations included in IPP/1.0.  IPP
       operations are synchronous, therefore, for each operation, there
       is a both request and a response.
     - Section 4 defines the attributes (and their syntaxes) that are
       used in the model.
     - Sections 5 - 6 summarizes the implementation conformance
       requirements for objects that support the protocol and IANA
       considerations, respectively.
     - Sections 7 - 11 cover the Internationalization and Security
       considerations as well as References, Author contact information,
       and Formats for Registration Proposals.
     - Sections 12 - 14 are appendices that cover Terminology, Status
       Codes and Messages, and "media" keyword values.

             Note: This document uses terms such as "attributes",
             "keywords", and "support".  These terms have special
             meaning and are defined in the model terminology section
             12.2.  Capitalized terms, such as MUST, MUST NOT, REQUIRED,
             SHOULD, SHOULD NOT, MAY, NEED NOT, and OPTIONAL, have
             special meaning relating to conformance.  These terms are
             defined in section 12.1 on conformance terminology, most of
             which is taken from RFC 2119 [RFC2119].

     - Section 15 is an appendix that helps to clarify the effects of
       interactions between related attributes and their values.
     - Section 16 is an appendix that enumerates the subset of Printer
       attributes that form a generic directory schema.  These
       attributes are useful when registering a Printer so that a
       client can find the Printer not just by name, but by filtered
       searches as well.
     - Section 17 is an appendix that provides a Change History
       summarizing the clarification and changes that might affect an
       implementation since the June 30, 1998 draft.

1.1. Simplified Printing Model

   In order to achieve its goal of realizing a workable printing
   protocol for the Internet, the Internet Printing Protocol (IPP) is
   based on a simplified printing model that abstracts the many
   components of real world printing solutions.  The Internet is a
   distributed computing environment where requesters of print services
   (clients, applications, printer drivers, etc.) cooperate and interact
   with print service providers.  This model and semantics document
   describes a simple, abstract model for IPP even though the underlying
   configurations may be complex "n-tier" client/server systems.  An
   important simplifying step in the IPP model is to expose only the key
   objects and interfaces required for printing.  The model described in
   this model document does not include features, interfaces, and
   relationships that are beyond the scope of the first version of IPP
   (IPP/1.0).  IPP/1.0 incorporates many of the relevant ideas and
   lessons learned from other specification and development efforts
   [HTPP] [ISO10175] [LDPA] [P1387.4] [PSIS] [RFC1179] [SWP].  IPP is
   heavily influenced by the printing model introduced in the Document
   Printing Application (DPA) [ISO10175] standard.  Although DPA
   specifies both end user and administrative features, IPP version 1.0
   (IPP/1.0) focuses only on end user functionality.

   The IPP/1.0 model encapsulates the important components of
   distributed printing into two object types:

     - Printer (Section 2.1)
     - Job (Section 2.2)

   Each object type has an associated set of operations (see section 3)
   and attributes (see section 4).

   It is important, however, to understand that in real system
   implementations (which lie underneath the abstracted IPP/1.0 model),
   there are other components of a print service which are not
   explicitly defined in the IPP/1.0 model. The following figure
   illustrates where IPP/1.0 fits with respect to these other
   components.

                                +--------------+
                                |  Application |
                      o         +. . . . . . . |
                     \|/        |   Spooler    |
                     / \        +. . . . . . . |   +---------+
                   End-User     | Print Driver |---|  File   |
         +-----------+ +-----+  +------+-------+   +----+----+
         |  Browser  | | GUI |         |                |
         +-----+-----+ +--+--+         |                |
               |          |            |                |
               |      +---+------------+---+            |
   N   D   S   |      |      IPP Client    |------------+
   O   I   E   |      +---------+----------+
   T   R   C   |                |
   I   E   U   |
   F   C   R   -------------- Transport ------------------
   I   T   I
   C   O   T                    |         --+
   A   R   Y           +--------+--------+  |
   T   Y               |    IPP Server   |  |
   I                   +--------+--------+  |
   O                            |           |
   N                   +-----------------+  | IPP Printer
                       |  Print Service  |  |
                       +-----------------+  |
                                |         --+
                       +-----------------+
                       | Output Device(s)|
                       +-----------------+

   An IPP Printer object encapsulates the functions normally associated
   with physical output devices along with the spooling, scheduling and
   multiple device management functions often associated with a print
   server. Printer objects are optionally registered as entries in a
   directory where end users find and select them based on some sort of
   filtered and context based searching mechanism (see section 16).  The
   directory is used to store relatively static information about the
   Printer, allowing end users to search for and find Printers that

   match their search criteria, for example: name, context, printer
   capabilities, etc.  The more dynamic information, such as state,
   currently loaded and ready media, number of jobs at the Printer,
   errors, warnings, and so forth, is directly associated with the
   Printer object itself rather than with the entry in the directory
   which only represents the Printer object.

   IPP clients implement the IPP protocol on the client side and give
   end users (or programs running on behalf of end users) the ability to
   query Printer objects and submit and manage print jobs.  An IPP
   server is just that part of the Printer object that implements the
   server-side protocol.  The rest of the Printer object implements (or
   gateways into) the application semantics of the print service itself.
   The Printer objects may be embedded in an output device or may be
   implemented on a host on the network that communicates with an output
   device.

   When a job is submitted to the Printer object and the Printer object
   validates the attributes in the submission request, the Printer
   object creates a new Job object.  The end user then interacts with
   this new Job object to query its status and monitor the progress of
   the job.  End users may also cancel the print job by using the Job
   object's Cancel-Job operation.  The notification service is out of
   scope for IPP/1.0, but using such a notification service, the end
   user is able to register for and receive Printer specific and Job
   specific events.  An end user can query the status of Printer objects
   and can follow the progress of Job objects by polling using the Get-
   Printer-Attributes, Get-Jobs, and Get-Job-Attributes operations.

Google
Web
RFC-Ref