RFC 3998 - Internet Printing Protocol (IPP): Job and Printer(4)

时间:2006-10-31 来源: 作者: 点击:
Figure1.EmbeddedPrinterObject ###########OutputDevice O+--------+#(Leaf)#+---------------+ /|\|client|---IPP----#Printer#---any-|| /\+--------+#object#|| ###########+---------------+ Figure2.HostedPr
  

                   Figure 1.  Embedded Printer Object

                             ###########          Output Device
    O   +--------+           # (Leaf)  #        +---------------+
   /|\  | client |---IPP----># Printer #---any->|               |
   / \  +--------+           # object  #        |               |
                             ###########        +---------------+

                   Figure 2.  Hosted Printer Object

                                                +---------------+
                                                |               |
                                             +->| Output Device |
                             ########### any/   |               |
    O   +--------+           # (Leaf)  #   /    +---------------+
   /|\  | client |---IPP----># Printer #--*
   / \  +--------+           # Object  #   \    +---------------+
                             ########### any\   |               |
                                             +->| Output Device |
                                                |               |
                                                +---------------+

                   Figure 3.  Output Device Fan-Out

                             ###########           ###########
    O   +--------+           # Non-Leaf#           # subord. #
   /|\  | client |---IPP----># Printer #---IPP----># Printer #
   / \  +--------+           # object  #           # object  #
                             ###########           ###########

   The Subordinate Printer can be a Non-Leaf Printer, as in Figures 4
   through 6, or can be a Leaf Printer, as in Figures 1 through 3.

                   Figure 4.  Chained IPP Printer Objects

                   +------IPP--------------------->###########
                  /                           +---># subord. #
                 /                           /     # Printer #
                /            ###########   IPP     # object  #
    O   +--------+           # Non-Leaf#   /       ###########
   /|\  | client |---IPP----># Printer #--*
   / \  +--------+           # object  #   \
                \            ###########   IPP     ###########
                 \                           \     # subord. #
                  \                           +---># Printer #
                   +------IPP---------------------># object  #
                                                   ###########

   The Subordinate Printer can be a Non-Leaf Printer, as in Figures 4
   through 6, or can be a Leaf Printer, as in Figures 1 through 3.

                   Figure 5.  IPP Printer Object Fan-Out

                             ###########
                             # Non-Leaf#
                        +---># Printer #-+
                       /     # object  #  \
                     IPP     ###########   \       ###########
    O   +--------+   /                      +-IPP-># subord. #
   /|\  | client |--+-----------IPP---------------># Printer #
   / \  +--------+   \                      +-IPP-># object  #
                     IPP     ###########   /       ###########
                       \     # Non-Leaf#  /
                        +---># Printer #-+
                             # object  #
                             ###########

   The Subordinate Printer can be a Non-Leaf Printer, as in Figures 4
   through 6, or can be a Leaf Printer, as in Figures 1 through 3.

                    Figure 6.  IPP Printer Object Fan-In

10.7.  Forwarding Requests

   This section describes the forwarding of Job and Printer requests to
   Subordinate Printer objects.

10.7.1.  Forwarding Requests that Affect Printer Objects

   In Printer Fan-Out, Printer Fan-In, and Chained Printers, the Non-
   Leaf IPP Printer object MUST NOT forward the operations that affect
   Printer objects to its Subordinate Printer objects.  If a client
   seeks to explicitly target a Subordinate Printer, the client MUST
   specify the URI of the Subordinate Printer.  The client can determine
   the URI of any Subordinate Printers by querying the Printer’s
   "subordinate-printers-supported (1setOf uri) attribute (see section
   7.1).

   Table 7 lists the operations that affect Printer objects and the
   forwarding behavior that a Non-Leaf Printer MUST exhibit to its
   immediate Subordinate Printers.  Operations that affect jobs have a
   different forwarding rule (see section 10.7.2 and Table 8):

   Table 7.  Forwarding Operations that Affect Printer Objects

      Printer Operation     Non-Leaf Printer Action
     ---------------------------------------------------------------
    Printer Operations:

      Enable-Printer      MUST NOT forward to any of its Subordinate
                          Printers
      Disable-Printer     MUST NOT forward to any of its Subordinate
                          Printers
      Hold-New-Jobs       MUST NOT forward to any of its Subordinate
                          Printers
      Release-Held-New-   MUST NOT forward to any of its Subordinate
      Jobs                Printers
      Deactivate-Printer  MUST NOT forward to any of its Subordinate
                          Printers
      Activate-Printer    MUST NOT forward to any of its Subordinate
                          Printers
      Restart-Printer     MUST NOT forward to any of its Subordinate
                          Printers
      Shutdown-Printer    MUST NOT forward to any of its Subordinate
                          Printers
      Startup-Printer     MUST NOT forward to any of its Subordinate
                          Printers

    IPP/1.1 Printer       See [RFC2911]
    Operations:

      Get-Printer-        MUST NOT forward to any of its Subordinate
      Attributes          Printers
      Pause-Printer       MUST NOT forward to any of its Subordinate
                          Printers
      Resume-Printer      MUST NOT forward to any of its Subordinate
                          Printers

    Set Operations:       See [RFC3380]

      Set-Printer-        MUST NOT forward to any of its Subordinate
      Attributes          Printers

10.7.2.  Forwarding Requests that Affect Jobs

   Unlike Printer Operations that only affect Printer objects (see
   section 10.7.1), a Non-Leaf Printer object MUST forward operations
   that directly affect jobs to the appropriate Job object(s) in one or
   more of its immediate Subordinate Printer objects.  Forwarding is
   REQUIRED since the purpose of this Job operation is to affect the
   indicated job, which may have been forwarded itself.  This forwarding
   MAY be immediate or queued, depending on the operation and the
   implementation.  For example, a Non-Leaf Printer object MAY
   queue/spool jobs, feeding a job at a time to its Subordinate
   Printer(s), or MAY forward jobs immediately to one of its Subordinate
   Printers.  In either case, the Non-Leaf Printer object forwards Job
   Creation operations to one of its Subordinate Printers.  Only the
   time of forwarding of the Job Creation operations depends on whether
   the policy is to queue/spool jobs in the Non-Leaf Printer or the
   Subordinate Printer.

   When a Non-Leaf Printer object creates a Job object in its
   Subordinate Printer, whether that Non-Leaf Printer object keeps a
   fully formed Job object or just keeps a mapping from the "job-ids"
   that it assigned to those assigned by its Subordinate Printer object
   is IMPLEMENTATION-DEPENDENT.  In either case, the Non-Leaf Printer
   MUST be able to accept and carry out future Job operations that
   specify the "job-id" that the Non-Leaf Printer assigned and returned
   to the job submitting client.

   Table 8 lists the operations that directly affect jobs and the
   forwarding behavior that a Non-Leaf Printer MUST exhibit to its
   Subordinate Printers.

   Table 8.  Forwarding Operations that Affect Jobs Objects

      Operation         Non-Leaf Printer action
    ---------------------------------------------------------------
    Job operations:

      Reprocess-Job     MUST forward to the appropriate Job in one of
                        its Subordinate Printers
      Cancel-Current-   MUST NOT forward
      Job
      Resume-Job        MUST forward to the appropriate Job in one of
                        its Subordinate Printers
      Promote-Job       MUST forward to the appropriate Job in one of
                        its Subordinate Printers

    IPP/1.1 Printer
    operations:

      Print-Job         MUST forward immediately or queue to the
                        appropriate Subordinate Printer
      Print-URI         MUST forward immediately or queue to the
                        appropriate Subordinate Printer
      Validate-Job      MUST forward to the appropriate Subordinate
                        Printer
      Create-Job        MUST forward immediately or queue to the
                        appropriate Subordinate Printer
      Get-Jobs          MUST forward to all its Subordinate Printers
      Purge-Jobs        MUST forward to all its Subordinate Printers

    IPP/1.1 Job
    operations:

      Send-Document     MUST forward immediately or queue to the
                        appropriate Job in one of its Subordinate
                        Printers
      Send-URI          MUST forward immediately or queue to the
                        appropriate Job in one of its Subordinate
                        Printers
      Cancel-Job        MUST forward to the appropriate Job in one of
                        its Subordinate Printers
      Get-Job-          MUST forward to the appropriate Job in one of
      Attributes        its Subordinate Printers if the Non-Leaf
                        Printer doesn’t know the complete status of the
                        Job object
      Hold-Job          MUST forward to the appropriate Job in one of
                        its Subordinate Printers
      Release-Job       MUST forward to the appropriate Job in one of
                        its Subordinate Printers

      Restart-Job       MUST forward to the appropriate Job in one of
                        its Subordinate Printers

    IPP Set operations: See [RFC3380]

      Set-Job-          MUST forward to the appropriate Job in one of
      Attributes        its Subordinate Printers

   When a Printer receives a request that REQUIRES forwarding, it does
   so on a "best efforts basis" and returns a response to its client
   without waiting for responses from any of its Subordinate Printers.
   Such forwarded requests could fail.

10.8.  Additional Attributes to Help with Fan-Out

   The following operation and Job Description attributes are defined to
   help represent Job relationships for Fan-Out and forwarding of jobs.

10.8.1.  output-device-assigned (name(127)) Job Description Attribute -
         from [RFC2911]

   [RFC2911] defines "output-device-assigned" as follows:  "This
   attribute identifies the Output Device to which the Printer object
   has assigned this job.  If an Output Device implements an embedded
   Printer object, the Printer object NEED NOT set this attribute.  If a
   print server implements a Printer object, the value MAY be empty
   (zero-length string) or not returned until the Printer object assigns
   an Output Device to the job.  This attribute is particularly useful
   when a single Printer object supports multiple devices (so called
   "Device Fan-Out" see [RFC2911] section 2.1)."  See also section 10.1
   in this specification.

10.8.2.  original-requesting-user-name (name(MAX)) Operation and Job
         Description Attribute

   The operation attribute containing the user name of the original
   user; i.e., corresponding to the "requesting-user-name" operation
   attribute (see [RFC2911], section 3.2.1.1) that the original client
   supplied to the first Printer object.  The Printer copies the
   "original-requesting-user-name" operation attribute to the
   corresponding Job Description attribute.

10.8.3.  requesting-user-name (name(MAX)) Operation Attribute -
         Additional Semantics

   The IPP/1.1 "requesting-user-name" operation attribute (see [RFC2911]
   section 3.2.1.1) is updated by each client to be itself on each hop;
   i.e., the "requesting-user-name" represents the client forwarding the
   request, not the original client.

10.8.4.  job-originating-user-name (name(MAX)) Job Description Attribute
         - Additional Semantics

   The "job-originating-user-name" Job Description attribute (see
   [RFC2911], section 4.3.6) remains as the authenticated original user,
   not the parent Printer’s authenticated host, and is forwarded by each
   client without changing the value.

11.  Conformance Requirements

   The Job and Printer Administrative operations defined in this
   document are OPTIONAL operations.  However, some operations MUST be
   implemented if others are implemented, as shown in Table 9.

   Table 9.  Conformance Requirement Dependencies for Operations

   Operations REQUIRED             If any of these operations are
                                   supported:
   --------------------------------------------------------------------
   Enable-Printer                  Disable-Printer
   Disable-Printer                 Enable-Printer
   Pause-Printer                   Resume-Printer
   Resume-Printer                  Pause-Printer,
                                     Pause-Printer-After-Current-Job
   Hold-New-Jobs                   Release-Held-New-Jobs
   Release-Held-New-Jobs           Hold-New-Jobs
   Activate-Printer,               Deactivate-Printer
     Disable-Printer,
     Pause-Printer-After-Current-Job
   Deactivate-Printer,             Activate-Printer
     Enable-Printer,
     Resume-Printer
   Restart-Printer                 none
   Shutdown-Printer                none
   Startup-Printer                 none
   Reprocess-Job                   none
   Cancel-Current-Job              none
   Resume-Job                      Suspend-Current-Job
   Suspend-Current-Job             Resume-Job

   Promote-Job                     none
   Schedule-Job-After              Promote-Job

   Tables 10 and 11 list the "printer-state-reasons" and "job-state-
   reasons" values that are REQUIRED if the indicated operations are
   supported.

   Table 10.  Conformance Requirement Dependencies for
              "printer-state-reasons" Values

   "printer-state-       Conformance   If any of the following Printer
   reasons" values:      Requirement   Operations are supported:
   --------------------------------------------------------------------
   ’paused’              REQUIRED      Pause-Printer,
                                       Pause-Printer-After-Current-Job,
                                       or Deactivate-Printer
   ’hold-new-jobs’       REQUIRED      Hold-New-Jobs
   ’moving-to-paused’    OPTIONAL      Pause-Printer,
                                       Pause-Printer-After-Current-Job,
                                       Deactivate-Printer
   ’deactivated’         REQUIRED      Deactivate-Printer

   Table 11.  Conformance Requirement Dependencies for "job-state-
              reasons" Values

   "job-state-reasons"   Conformance   If any of the following Job
   values:               Requirement   operations are supported:

   ’job-suspended’       REQUIRED      Suspend-Current-Job
   ’printer-stopped’     REQUIRED      Always REQUIRED

12.  Normative References

   [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
             Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC2246] Dierks, T. and C. Allen, "The TLS Protocol Version 1.0",
             RFC 2246, January 1999.

   [RFC2616] Fielding,  R., Gettys, J., Mogul, J., Frystyk, H.,
             Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
             Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.

   [RFC2910] Herriot, R., Butler, S., Moore, P., Turner, R., and J.
             Wenn, "Internet Printing Protocol/1.1: Encoding and
             Transport", RFC 2910, September 2000.

   [RFC2911] Hastings, T., Herriot, R., deBry, R., Isaacson, S., and P.
             Powell, "Internet Printing Protocol/1.1: Model and
             Semantics", RFC 2911, September 2000.

   [RFC3380] Hastings, T., Herriot, R., Kugler, C., and H. Lewis,
             "Internet Printing Protocol (IPP): Job and Printer Set
             Operations", RFC 3380, September 2002.

13.  Informative References

   [RFC2567] Wright, F., "Design Goals for an Internet Printing
             Protocol", RFC 2567, April 1999.

   [RFC2568] Zilles, S., "Rationale for the Structure of the Model and
             Protocol for the Internet Printing Protocol", RFC 2568,
             April 1999.

   [RFC2569] Herriot, R., Hastings, T., Jacobs, N., and J. Martin,
             "Mapping between LPD and IPP Protocols", RFC 2569, April
             1999.

   [RFC3196] Hastings, T., Manros, C., Zehler, P., Kugler, C., and H.
             Holst, "Internet Printing Protocol/1.1: Implementor’s
             Guide", RFC 3196, November 2001.

   [RFC3239] Kugler, C., Lewis, H., and T. Hastings, "Internet Printing
             Protocol (IPP): Requirements for Job, Printer, and Device
             Administrative Operations", RFC 3239, February 2002.

   [RFC3995] Herriot, R. and T. Hastings, "Internet Printing Protocol
             (IPP): Event Notifications and Subscriptions", RFC 3995,
             February 2005.

14.  IANA Considerations

   This section contains the registration information that IANA added to
   the IPP Registry according to the procedures defined in [RFC2911],
   section 6, to cover the definitions in this document.  The resulting
   registrations have been published as additions to the
   http://www.iana.org/assignments/ipp-registrations file.

14.1.  Attribute Registrations

   The following table lists all the attributes defined in this
   document.  These have been registered according to the procedures in
   [RFC2911], section 6.2.

   Name                                          Reference  Section
   --------------------------------------        ---------  -------
   Job Description attributes:
   original-requesting-user-name (name(MAX))     [RFC3998]  10.8.2

   Printer Description attributes:
   subordinate-printers-supported (1setOf uri)   [RFC3998]  7.1
   parent-printers-supported (1setOf uri)        [RFC3998]  7.2

   Operation attributes:
   original-requesting-user-name (name(MAX))     [RFC3998]  10.8.2

14.2.  Attribute Value Registrations

   This section lists the additional values defined in this document for
   existing attributes.

   Attribute
     Value                                       Reference  Section
     ---------------------                       ---------  -------
   job-state-reasons (1setOf type2 keyword)
     job-suspended                               [RFC3998]  9.1

   printer-state-reasons (1setOf type2 keyword)
     hold-new-jobs                               [RFC3998]  8.1
------分隔线----------------------------
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容