RFC 3995 - Internet Printing Protocol (IPP): Event Notificat(8)

时间:2006-10-31 来源: 作者: 点击:
differentfromtheDeliveryMethodusedbythePrintertothe extendedNotificationRecipient. ThisextendedNotificationRecipientistransparenttothePrinter butnottotheclient. WhenaclientperformsaSubscriptionCreati
  
   different from the Delivery Method used by the Printer to the
   extended Notification Recipient.

   This extended Notification Recipient is transparent to the Printer
   but not to the client.

   When a client performs a Subscription Creation Operation, it
   specifies the extended Notification Recipient as it would any
   Notification Recipient.  In addition, the client specifies the
   Ultimate Notification Recipient in the Subscription Creation
   Operation in a manner specified by the extended Notification
   Recipient.  Typically, it is either some bytes in the value of
   "notify-user-data" or some additional parameter in the value of
   "notify-recipient-uri".  The client also subscribes directly with the

   extended Notification Recipient (by means outside this document),
   since it is a notification server in its own right.

   The IPP Printer treats the extended Notification Recipient like any
   other Notification Recipient and the IPP Printer is not aware of the
   forwarding.  The Delivery Method that the extended Notification
   Recipient uses for delivering the Event Notification to the Ultimate
   Notification Recipient is beyond the scope of this document and is
   transparent to the IPP Printer.

   Examples of this extended Notification Recipient are paging,
   immediate messaging services, general notification services, and NOS
   vendors’ infrastructure.  Figure 4 shows this approach.

      PDA, desktop, or server                    server or output device
                                                      +---------------+
          +--------+                                  |  ###########  |
          | client |---Subscription Creation -----------># Printer #  |
          +--------+       Operation                  |  # Object  #  |
                                                      |  #####|#####  |
   +------------+     +------------+   IPP-defined    +-------|-------+
   |Ultimate    | any |Notification|<--Event Notifications----+
   |Notification|<----|Recipient   |
   |Recipient   |     +------------+
   +------------+     (Notification Server)

    Figure 4 - Use of an Extended Notification Recipient transparent to
                                the Printer

19.  Object Model for Notification (Normative)

   This section describes the Notification object model that adds a
   Subscription Object which together with the Job and Printer object
   provide the complete Notification semantics.

   The object relationships can be seen pictorially as:

   Subscription Objects (Per-Printer Subscriptions)     Printer object
   +----+                                               +------------+
   | s1 |<--------------------------------------------->|            |
   +----++                                              |            |
    | s2 |<-------------------------------------------->|     p1     |
    +----++                                             |            |
     | s3 |<------------------------------------------->|            |
     +----+                                             +------------+
                    Job objects
                    +---------+
                    |         |
     +----+         |   j1    |
     | s4 |<------->|         |
     +----+         |         |
                    |         |    s4 is a Per-Job Subscription Object
                    ++--------++
                     |         |
       +----+        |   j2    |
       | s5 |<------>|         |
       +----++       |         |
        | s6 |<----->|         |    s5 and s6 are Per-Job Subscription
        +----+       ++--------++                  Objects
                      |         |
                      |   j3    |
                      |         |
                      |         |         <----> indicates association
                      +---------+

               Figure 5 - Object Model for Notification

   s1, s2, and s3 are Per-Printer Subscription Objects and can identify
   Printer and/or Job Events.

   s4, s5, and s6 are Per-Job Subscription Objects and can identify
   Printer and/or Job Events.

19.1.  Object relationships

   This sub-section defines the object relationships between the
   Printer, Job, and Subscription Objects by example.  Whether Per-
   Printer Subscription Objects are actually contained in a Printer
   object or are just bi-directionally associated with them in some way
   is IMPLEMENTATION DEPENDENT and is transparent to the client.
   Similarly, whether Per-Job Subscription Objects are actually

   contained in a Job object or are just bi-directionally associated
   with them in some way is IMPLEMENTATION DEPENDENT and is transparent
   to the client.  The object relationships are defined as follows:

19.2.  Printer Object and Per-Printer Subscription Objects

   1. The Printer object contains (is associated with) zero or more
      Per-Printer Subscription Objects (p1 contains s1-s3 Per-Printer
      Subscription Objects).

   2. Each Per-Printer Subscription Object (s1, s2, and s3) is contained
      in (or is associated with) exactly one Printer object (p1).

19.3.  Job Object and Per-Job Subscription Objects

   1. A Job object (j1, j2, j3) is associated with zero or more Per-Job
      Subscription Objects (s4-s6).  Job j1 is associated with Per-Job
      Subscription Object s4, Job j2 is associated with Per-Job
      Subscription Objects s5 and s6, and Job j3 is not associated with
      any Per-Job Subscription Object.

   2. Each Per-Job Subscription Object is associated with exactly one
      Job object.

20.  Per-Job versus Per-Printer Subscription Objects (Normative)

   Per-Job and Per-Printer Subscription Objects are quite similar.
   Either type of Subscription Object can subscribe to Job Events,
   Printer Events, or both.  Both types of Subscription Objects can be
   queried using the Get-Subscriptions and Get-Subscription-Attributes
   operations and canceled using the Cancel-Subscription operation.
   Both types of Subscription Objects create Subscription Objects which
   have the same Subscription Object attributes defined.  However, there
   are some semantic differences between Per-Job Subscription Objects
   and Per-Printer Subscription Objects.  A Per-Job Subscription Object
   is established by the client when submitting a job and after creating
   the job using the Create-Job-Subscriptions operation by specifying
   the "job-id" of the Job with the "notify-job-id" attribute.  A Per-
   Printer Subscription Object is established between a client and a
   Printer using the Create-Printer-Subscriptions operation.  Some
   specific differences are:

   1. A client usually creates one or more Per-Job Subscription Objects
      as part of the Job Creation operations (Create-Job, Print-Job, and
      Print-URI), rather than using the OPTIONAL Create-Job-
      Subscriptions operation, especially since Printer implementations
      NEED NOT support the Create-Job-Subscriptions operation, since it
      is OPTIONAL.

   2. For Per-Job Subscription Objects, the Subscription Object is only
      valid while the job is "not-complete" (see sections 5.4.3) while
      for the Per-Printer Subscription Objects, the Subscription Object
      is valid until the time (in seconds) that the Printer returned in
      the "notify-lease-expiration-time" operation attribute.

   3. Job Events in a Per-Job Subscription Object apply only to "one
      job" (the Job created by the Job Creation operation or references
      by the Create-Job-Subscriptions operation) while Job Events in a
      Per-Printer Subscription Object apply to ALL jobs contained in the
      IPP Printer.

21.  Normative References

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

   [RFC2396]         Berners-Lee, T., Fielding, R., and L. Masinter,
                     "Uniform Resource Identifiers (URI): Generic
                     Syntax", RFC 2396, August 1998.

   [RFC2717]         Petke, R. and I. King, "Registration Procedures for
                     URL Scheme Names", RFC 2717, November 1999.

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

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

   [RFC3381]         Hastings, T., Lewis, H., and R. Bergman, "IPP: Job
                     Progress Attributes", RFC 3381,  September 2002.

   [RFC3996]         Herriot, R., Hastings, T., and H. Lewis, "Internet
                     Printing Protocol (IPP): The ’ippget’ Delivery
                     Method for Event Notifications", RFC 3996, March
                     2005.

22.  Informative References

   [IANA-CON]        Narten, T. and H. Alvestrand, "Guidelines for
                     Writing an IANA Considerations Section in RFCs",
                     BCP 26, RFC 2434, October 1998.

   [RFC2565]         Herriot, R., Butler, S., Moore, P., and R. Turner,
                     "Internet Printing Protocol/1.0: Encoding and
                     Transport", RFC 2565, April 1999.

   [RFC2566]         deBry, R., Hastings, T., Herriot, R., Isaacson, S.,
                     and P. Powell, "Internet Printing Protocol/1.0:
                     Model and Semantics", RFC 2566, April 1999.

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

   [RFC2568]         Zilles, S., "Rationale for the Structure and 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.

   [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.

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

   [RFC3997]         Hastings, T., Editor, deBry, R., and H. Lewis,
                     "Internet Printing Protocol (IPP): Requirements for
                     IPP Notifications", RFC 3997, March 2005.

23.  IANA Considerations

   This section contains the registration information that IANA added to
   the IPP Registry according to the procedures defined in RFC 2911
   [RFC2911] section 6 to cover the definitions in this document.  In
   addition, this section defines how Events and Delivery Methods will
   be registered when they are defined in other documents.  The
   resulting registrations have been published in the
   http://www.iana.org/assignments/ipp-registrations registry.

23.1.  Attribute Registrations

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

   Subscription Template attributes:                 Reference  Section
   ---------------------------------                 ---------  -------
   notify-attributes (1setOf type2 keyword)          [RFC3995]  5.3.4
   notify-attributes-supported (1setOf type2 keyword)
                                                     [RFC3995]  5.3.4.1
   notify-charset (charset)                          [RFC3995]  5.3.6
   notify-events (1setOf type2 keyword)              [RFC3995]  5.3.3
   notify-events-default (1setOf type2 keyword)      [RFC3995]  5.3.3.1
   notify-events-supported (1setOf type2 keyword)    [RFC3995]  5.3.3.2
   notify-lease-duration (integer(0:67108863))       [RFC3995]  5.3.8
   notify-lease-duration-default (integer(0:67108863))
                                                     [RFC3995]  5.3.8.1
   notify-lease-duration-supported (1setOf (integer(0: 67108863) |
          rangeOfInteger(0:67108863)))               [RFC3995]  5.3.8.2
   notify-max-events-supported (integer(2:MAX))      [RFC3995]  5.3.3.3
   notify-natural-language (naturalLanguage)         [RFC3995]  5.3.7
   notify-pull-method (type2 keyword)                [RFC3995]  5.3.2
   notify-pull-method-supported (1setOf type2 keyword)
                                                     [RFC3995]  5.3.2.1
   notify-recipient-uri (uri)                        [RFC3995]  5.3.1
   notify-schemes-supported  (1setOf uriScheme)      [RFC3995]  5.3.1.1
   notify-time-interval (integer(0:MAX))             [RFC3995]  5.3.9
   notify-user-data (octetString(63))                [RFC3995]  5.3.5

   Subscription Description Attributes:
   notify-job-id (integer(1:MAX))                    [RFC3995]  5.4.6
   notify-lease-expiration-time (integer(0:MAX))     [RFC3995]  5.4.3
   notify-printer-up-time (integer(1:MAX))           [RFC3995]  5.4.4
   notify-printer-uri (uri)                          [RFC3995]  5.4.5
   notify-sequence-number (integer (0:MAX))          [RFC3995]  5.4.2
   notify-subscriber-user-name (name(MAX))           [RFC3995]  5.4.7
   notify-subscription-id  (integer (1:MAX))         [RFC3995]  5.4.1

   Printer Description Attributes:
   printer-state-change-date-time (dateTime)         [RFC3995]  6.2
   printer-state-change-time (integer(1:MAX))        [RFC3995]  6.1

   Attributes Only in Event Notifications
   notify-subscribed-event (type2 keyword)           [RFC3995]  8.1
   notify-text (text(MAX))                           [RFC3995]  8.2

23.2.  Additional Enum Attribute Value Registrations within the IPP
       registry

   The following table lists all the new enum attribute values defined
   in this document.  These have been registered within the IPP registry
   according to the procedures in RFC 2911 [RFC2911] section 6.1.

   Attribute
     Value      Name                                 Reference   Section
     ------     -----------------------------        ---------   -------
   operations-supported (1setOf type2 enum)          [RFC2911]   4.4.15
     0x0016     Create-Printer-Subscriptions         [RFC3995]   7.1
     0x0017     Create-Job-Subscriptions             [RFC3995]   7.1
     0x0018     Get-Subscription-Attributes          [RFC3995]   7.1
     0x0019     Get-Subscriptions                    [RFC3995]   7.1
     0x001A     Renew-Subscription                   [RFC3995]   7.1
     0x001B     Cancel-Subscription                  [RFC3995]   7.1

23.3.  Operation Registrations

   The following table lists all of the operations defined in this
   document.  These have been registered according to the procedures in
   RFC 2911 [RFC2911] section 6.4.

   Operation Name                                    Reference   Section
   ---------------------------------                 ---------   -------
   Cancel-Subscription                               [RFC3995]   11.2.7
   Create-Job - Extensions                           [RFC3995]   11.1.3
   Create-Job-Subscriptions                          [RFC3995]   11.1.1
   Create-Printer-Subscriptions                      [RFC3995]   11.1.2
   Get-Printer-Attributes - Extensions               [RFC3995]   11.2.3
   Get-Subscription-Attributes                       [RFC3995]   11.2.4
   Get-Subscriptions                                 [RFC3995]   11.2.5
   Print-Job - Extensions                            [RFC3995]   11.1.3
   Print-URI - Extensions                            [RFC3995]   11.1.3
   Renew-Subscription                                [RFC3995]   11.2.6
   Validate-Job Operation - Extensions               [RFC3995]   11.2.2

23.4.  Status code Registrations

   The following table lists all the status codes defined in this
   document.  These have been registered according to the procedures in
   RFC 2911 [RFC2911] section 6.6.

   Value    Status Code Name                        Reference  Section
   -----    ----------------------------            ---------  -------
   0x0000:0x00FF - Successful:
   0x0003   successful-ok-ignored-subscriptions     [RFC3995]  12.1
   0x0005   successful-ok-too-many-events           [RFC3995]  13.4

   0x0400:0x04FF - Client Error:
   0x0414   client-error-ignored-all-subscriptions  [RFC3995]  12.2
   0x0415   client-error-too-many-subscriptions     [RFC3995]  13.3

23.5.  Attribute Group tag Registrations

   The following table lists all the attribute group tags defined in
   this document.  These have been registered according to the
   procedures in RFC 2911 [RFC2911] section 6.5.

   Value    Attribute Group Tag Name                 Reference  Section
   -----    --------------------------------         --------   -------
   0x06     subscription-attributes-tag              [RFC3995]  14
   0x07     event-notification-attributes-tag        [RFC3995]  14

23.6.  Registration of Events

   The following table lists all the Events defined in this document as
   type2 keywords to be used with the "notify-events", "notify-events-
   default", and "notify-events-supported" Subscription Template
   attributes (see section 5.3.3)).  Rather than creating a separate
   section in the IPP Registry for Events, these event keywords have
   been registered according to the procedures of [RFC2911] section 7.1
   as additional keyword attribute values for use with the "notify-
   events" Subscription Template attribute (see section 5.3.3), i.e.,
   registered as keyword values for the "notify-events", "notify-
   events-default", and "notify-events-supported" attributes:

   Attribute (attribute syntax)
     Value                                          Reference  Section
     ---------------------                          ---------  -------
   notify-events (1setOf type2 keyword)             [RFC3995]  5.3.3
   notify-events-default (1setOf type2 keyword)     [RFC3995]  5.3.3.1
   notify-events-supported (1setOf type2 keyword)   [RFC3995]  5.3.3.2
   notify-subscribed-event (type2 keyword)          [RFC3995]  8.1
     No Events:
       none                                         [RFC3995]  5.3.3.4.1
     Printer Events:
       printer-state-changed                        [RFC3995]  5.3.3.4.2
       printer-restarted                            [RFC3995]  5.3.3.4.2
       printer-shutdown                             [RFC3995]  5.3.3.4.2
       printer-stopped                              [RFC3995]  5.3.3.4.2

       printer-config-changed                       [RFC3995]  5.3.3.4.2
       printer-media-changed                        [RFC3995]  5.3.3.4.2
       printer-finishings-changed                   [RFC3995]  5.3.3.4.2
       printer-queue-order-changed                  [RFC3995]  5.3.3.4.2
     Job Events:
       job-state-changed                            [RFC3995]  5.3.3.4.3
       job-created                                  [RFC3995]  5.3.3.4.3
       job-completed                                [RFC3995]  5.3.3.4.3
       job-stopped                                  [RFC3995]  5.3.3.4.3
       job-config-changed                           [RFC3995]  5.3.3.4.3
       job-progress                                 [RFC3995]  5.3.3.4.3

23.7.  Registration of Event Notification Delivery Methods

   This section describes the requirements and procedures for
   registration and publication of Event Notification Delivery Methods
------分隔线----------------------------
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容