draft-ietf-ipp-not-04.txt   draft-ietf-ipp-not-05.txt 
INTERNET DRAFT Roger K deBry INTERNET DRAFT Roger K deBry
<draft-ietf-ipp-not-04.txt> Utah Valley State College <draft-ietf-ipp-not-05.txt> Utah Valley State College
Harry Lewis [Target Category: Informational] Harry Lewis
IBM Corporation IBM Corporation
Tom Hastings (editor) Tom Hastings (editor)
Xerox Corporation Xerox Corporation
July 6, 2000 January 23, 2001
Internet Printing Protocol: Requirements for IPP Notifications Internet Printing Protocol (IPP): Requirements for IPP Notifications
Copyright (C) The Internet Society (2000). All Rights Reserved. Copyright (C) The Internet Society (2001). All Rights Reserved.
STATUS OF THIS MEMO STATUS OF THIS MEMO
This document is an Internet-Draft and is in full conformance with all This document is an Internet-Draft and is in full conformance with
provisions of Section 10 of [RFC2026]. Internet-Drafts are working all provisions of Section 10 of [RFC2026]. Internet-Drafts are
documents of the Internet Engineering Task Force (IETF), its areas, and working documents of the Internet Engineering Task Force (IETF), its
its working groups. Note that other groups may also distribute working areas, and its working groups. Note that other groups may also
documents as Internet-Drafts. distribute working documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference material time. It is inappropriate to use Internet-Drafts as reference
or to cite them other than as ''work in progress''. material or to cite them other than as ''work in progress.''
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed as The list of Internet-Draft Shadow Directories can be accessed as
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
ABSTRACT ABSTRACT
This document is one of a set of documents, which together describe all This document is one of a set of documents which together describe
aspects of a new Internet Printing Protocol (IPP). IPP is an application all aspects of a new Internet Printing Protocol (IPP). IPP is an
level protocol that can be used for distributed printing on the application level protocol that can be used for distributed printing
Internet. There are multiple parts to IPP, but the primary architectural on the Internet. There are multiple parts to IPP, but the primary
components are the Model and Semantics, and the Encoding and Transport architectural components are the Model, the Protocol and an interface
documents. This document provides a statement of the requirements for to Directory Services. This document provides a statement of the
notifications as part of an IPP Service. requirements for notifications as part of an IPP Service.
The full set of IPP documents include: The full set of IPP documents include:
Design Goals for an Internet Printing Protocol [RFC2567] Design Goals for an Internet Printing Protocol [RFC2567]
Rationale for the Structure and Model and Protocol for the Internet Rationale for the Structure and Model and Protocol for the Internet
Printing Protocol [RFC2568] Printing Protocol [RFC2568]
Internet Printing Protocol/1.1: Model and Semantics [ipp-mod] Internet Printing Protocol/1.0: Model and Semantics [RFC2566]
Internet Printing Protocol/1.1: Encoding and Transport [ipp-pro] Internet Printing Protocol/1.0: Encoding and Transport [RFC2565]
Internet Printing Protocol/1.1: Implementer's Guide [ipp-iig] Internet Printing Protocol/1.0: Implementer's Guide [RFC 2639]
Mapping between LPD and IPP Protocols [RFC2569] Mapping between LPD and IPP Protocols [RFC2569]
The 'Design Goals for an Internet Printing Protocol' document takes a The 'Design Goals for an Internet Printing Protocol' document takes a
broad look at distributed printing functionality, and it enumerates broad look at distributed printing functionality, and it enumerates
real-life scenarios that help to clarify the features that need to be real-life scenarios that help to clarify the features that need to be
included in a printing protocol for the Internet. It identifies included in a printing protocol for the Internet. It identifies
requirements for three types of users: end users, operators, and requirements for three types of users: end users, operators, and
administrators. It calls out a subset of end user requirements that are administrators. It calls out a subset of end user requirements that
satisfied in IPP/1.1. Operator and administrator requirements are out are satisfied in IPP/1.0. Operator and administrator requirements
of scope for the basic documents of version 1.1. are out of scope for version 1.0.
The 'Rationale for the Structure and Model and Protocol for the Internet The 'Rationale for the Structure and Model and Protocol for the
Printing Protocol' document describes IPP from a high level view, Internet Printing Protocol' document describes IPP from a high level
defines a roadmap for the various documents that form the suite of IPP view, defines a roadmap for the various documents that form the suite
specifications, and gives background and rationale for the IETF working of IPP specifications, and gives background and rationale for the
group's major decisions. IETF working group's major decisions.
The 'Internet Printing Protocol/1.1: Encoding and Transport' document is The 'Internet Printing Protocol/1.0: Encoding and Transport' document
a formal mapping of the abstract operations and attributes defined in is a formal mapping of the abstract operations and attributes defined
the model document onto HTTP/1.1. It defines the encoding rules for a in the model document onto HTTP/1.1. It defines the encoding rules
new Internet media type called 'application/ipp'. for a new Internet media type called 'application/ipp'.
The 'Internet Printing Protocol/1.1: Implementer's Guide' document gives The 'Internet Printing Protocol/1.0: Implementer's Guide' document
insight and advice to implementers of IPP clients and IPP objects. It gives insight and advice to implementers of IPP clients and IPP
is intended to help them understand IPP/1.0 and some of the objects. It is intended to help them understand IPP/1.0 and some of
considerations that may assist them in the design of their client and/or the considerations that may assist them in the design of their client
IPP object implementations. For example, a typical order of processing and/or IPP object implementations. For example, a typical order of
requests is given, including error checking. Motivation for some of the processing requests is given, including error checking. Motivation
specification decisions is also included. for some of the specification decisions is also included.
The 'Mapping between LPD and IPP Protocols' document gives some advice The 'Mapping between LPD and IPP Protocols' document gives some
to implementers of gateways between IPP and LPD (Line Printer Daemon) advice to implementers of gateways between IPP and LPD (Line Printer
implementations. Daemon) implementations.
Table of Contents Table of Contents
1 Scope..............................................................4 1 Scope ...........................................................4
2 Terminology........................................................4
3 Scenarios..........................................................7 2 Terminology .....................................................4
4 Requirements......................................................10
5 Security considerations for IPP Notifications requirements........12 3 Scenarios .......................................................8
6 Internationalization Considerations...............................13 4 Requirements ...................................................11
7 IANA Considerations...............................................13
8 References........................................................13 5 Security considerations for IPP Notifications requirements .....13
9 Author's Address..................................................15
6 Internationalization Considerations ............................14
7 IANA Considerations ............................................14
8 References .....................................................14
9 Author's Address ...............................................15
10 Appendix A: Full Copyright Statement...........................16
1 Scope 1 Scope
The scope of this requirements document covers functionality used by the The scope of this requirements document covers functionality used by
following kinds of IPP Users: End Users, Print Administrators and the following kinds of IPP Users: End Users, Print Administrators and
Operators. Operators.
2 Terminology 2 Terminology
It is necessary to define a set of terms in order to be able to clearly It is necessary to define a set of terms in order to be able to
express the requirements for notification services in an IPP System. clearly express the requirements for notification services in an IPP
System.
2.1 Job Submitting End User 2.1 Job Submitting End User
A human end user who submits a print job to an IPP Printer. This person A human end user who submits a print job to an IPP Printer. This
may or may not be within the same security domain as the Printer. This person may or may not be within the same security domain as the
person may or may not be geographically near the printer. Printer. This person may or may not be geographically near the
printer.
2.2 Administrator 2.2 Administrator
A human user who established policy for and configures the print system. A human user who established policy for and configures the print
system.
2.3 Operator 2.3 Operator
A human user who carries out the policy established by the Administrator A human user who carries out the policy established by the
and controls the day to day running of the print system. Administrator and controls the day to day running of the print
system.
2.4 Job Submitting Application 2.4 Job Submitting Application
An application (for example, a batch application), acting on behalf of a An application (for example, a batch application), acting on behalf
Job Submitting End User, which submits a print job to an IPP Printer. of a Job Submitting End User, which submits a print job to an IPP
The application may or may not be within the same security domain as the Printer. The application may or may not be within the same security
Printer. This application may or may not be geographically near the domain as the Printer. This application may or may not be
printer. geographically near the printer.
2.5 Security Domain 2.5 Security Domain
For the purposes of this discussion, the set of network components which For the purposes of this discussion, the set of network components
can communicate without going through a proxy or firewall. A security which can communicate without going through a proxy or firewall. A
domain may be geographically very large, for example - anyplace within security domain may be geographically very large, for example -
IBM.COM. anyplace within IBM.COM.
2.6 IPP Client 2.6 IPP Client
The software component that sends IPP requests to an IPP Printer object The software component that sends IPP requests to an IPP Printer
and accepts IPP responses from an IPP Printer. object and accepts IPP responses from an IPP Printer.
2.7 Job Recipient 2.7 Job Recipient
A human who is the ultimate consumer of the print job. In many cases A human who is the ultimate consumer of the print job. In many cases
this will be the same person as the Job Submitting End User, but this this will be the same person as the Job Submitting End User, but this
need not always be the case. For example, if I use IPP to print a need not always be the case. For example, if I use IPP to print a
document on a printer in a business partner's office, I am the Job document on a printer in a business partner's office, I am the Job
Submitting End User, while the person I intend the document for in my Submitting End User, while the person I intend the document for in my
business partner's office is the Job Recipient. Since one of the goals business partner's office is the Job Recipient. Since one of the
goals of IPP is to be able to print near the Job Recipient of the
of IPP is to be able to print near the Job Recipient of the printed printed output, we would normally expect that person to be in the
output, we would normally expect that person to be in the same security same security domain as, and geographically near, the Printer.
domain as, and geographically near, the Printer. However, this may not However, this may not always be the case. For example, I submit a
always be the case. For example, I submit a print job across the print job across the Internet to a Kinko's print shop. I am both the
Internet to a Kinko's print shop. I am both the Submitting end User and Submitting end User and the Job Recipient, but I am neither near nor
the Job Recipient, but I am neither near nor in the same security domain in the same security domain as the Printer.
as the Printer.
2.8 Job Recipient Proxy 2.8 Job Recipient Proxy
A person acting on behalf of the Job Recipient. In particular, the Job A person acting on behalf of the Job Recipient. In particular, the
Recipient Proxy physically picks up the printed document from the Job Recipient Proxy physically picks up the printed document from the
Printer, if the Job Recipient cannot perform that function. The Proxy is Printer, if the Job Recipient cannot perform that function. The Proxy
by definition geographically near and in the same security domain as the is by definition geographically near and in the same security domain
printer. For example, I submit a print job from home to be printed on a as the printer. For example, I submit a print job from home to be
printer at work. I'd like my secretary to pick up the print job and put printed on a printer at work. I'd like my secretary to pick up the
it on my desk. In this case, I am acting as both Job Submitting End print job and put it on my desk. In this case, I am acting as both
User and Job Recipient. My secretary is acting as a Job Recipient Proxy. Job Submitting End User and Job Recipient. My secretary is acting as
a Job Recipient Proxy.
2.9 Notification Subscriber 2.9 Notification Subscriber
A client that requests the IPP Printer to send Event Notifications to A client that requests the IPP Printer to send Event Notifications to
one or more Notification Recipients. A Notification Subscriber may be a one or more Notification Recipients. A Notification Subscriber may
Job Submitting End User or an End User, an Operator, or an Administrator be a Job Submitting End User or an End User, an Operator, or an
that is not submitting a job. Administrator that is not submitting a job.
2.10 Notification Source 2.10 Notification Source
The entity that sends Event Notifications. The entity that sends Event Notifications.
2.11 Notification Recipient 2.11 Notification Recipient
The entity that receives IPP Notifications about Job and/or Printer The entity that receives IPP Notifications about Job and/or Printer
events. A Notification Recipient may be a: Job Submitting End User, Job events. A Notification Recipient may be a: Job Submitting End User,
Submitting Application, Job Recipient, Job Recipient Proxy, Operator, or Job Submitting Application, Job Recipient, Job Recipient Proxy,
Administrator, etc., and their representatives or log file or usage Operator, or Administrator, etc., and their representatives or log
statistics gathering application or other active or passive entities. file or usage statistics gathering application or other active or
passive entities.
2.12 Notification Recipient Agent 2.12 Notification Recipient Agent
A program which receives Event Notifications on behalf of the A program which receives Event Notifications on behalf of the
Notification Recipient. The agent may take some action on behalf of the Notification Recipient. The agent may take some action on behalf of
recipient, forward the notification to the recipient via some the recipient, forward the notification to the recipient via some
alternative means (for example, page the recipient), or queue the alternative means (for example, page the recipient), or queue the
notification for later retrieval by the recipient. notification for later retrieval by the recipient.
2.13 Event 2.13 Event
A Event is some occurrence (either expected or unexpected) within the A Event is some occurrence (either expected or unexpected) within the
printing system of a change of state, condition, or configuration of a printing system of a change of state, condition, or configuration of
Job or Printer object. a Job or Printer object.
2.14 Event Notification 2.14 Event Notification
When an event occurs, an Event Notification is generated that fully When an event occurs, an Event Notification is generated that fully
describes the event (what the event was, where it occurred, when it describes the event (what the event was, where it occurred, when it
occurred, etc.). Event Notifications are delivered to all the occurred, etc.). Event Notifications are delivered to all the
Notification Recipients that are subscribed to that Event, if any. The Notification Recipients that are subscribed to that Event, if any.
Event Notification is delivered to the address of the Notification The Event Notification is delivered to the address of the
Recipient using the notification delivery method defined in the Notification Recipient using the notification delivery method defined
subscription. However, an Event Notification is sent ONLY if there is a in the subscription. However, an Event Notification is sent ONLY if
corresponding subscription. there is a corresponding subscription.
2.15 Notification Subscription 2.15 Notification Subscription
A Notification Subscription is a request by a Notification Subscriber to A Notification Subscription is a request by a Notification Subscriber
the IPP Printer to send Event Notifications to specified Notification to the IPP Printer to send Event Notifications to specified
Recipient(s) when the event occur. Notification Recipient(s) when the event occur.
2.16 Notification Attributes 2.16 Notification Attributes
IPP Objects (for example, a print job) from which notification are being IPP Objects (for example, a print job) from which notification are
sent may have attributes associated with them. A user may want to have being sent may have attributes associated with them. A user may want
one or more of these associated attributes returned along with a to have one or more of these associated attributes returned along
particular notification. In general, these may include any attribute with a particular notification. In general, these may include any
associated with the object emitting the notification. Examples include: attribute associated with the object emitting the notification.
Examples include:
number-of-intervening jobs number-of-intervening jobs
job-k-octets job-k-octets
job-k-octets processed job-k-octets processed
job impressions job impressions
job-impressions-interpreted job-impressions-interpreted
job-impressions-completed job-impressions-completed
impressionsCompletedCurrentCopy (job MIB) impressionsCompletedCurrentCopy (job MIB)
sheetCompletedCopyNumber (job MIB) sheetCompletedCopyNumber (job MIB)
sheetsCompletedDocumentNumber (job MIB) sheetsCompletedDocumentNumber (job MIB)
Copies-requested Copies-requested
Copy-type Copy-type
Output-destination Output-destination
Job-state-reasons Job-state-reasons
Job ID Job ID
Printer URI Printer URI
Subscription ID (for job independent subscription) Subscription ID (for job independent subscription)
2.17 Notification Delivery Method (or Delivery Method for short) 2.17 Notification Delivery Method (or Delivery Method for short)
Event Notifications are delivered using a method, such as email, TCP/IP, Event Notifications are delivered using a method, such as email,
etc. TCP/IP, etc.
2.18 Immediate Notification 2.18 Immediate Notification
Notifications sent to the Notification Recipient or the Notification Notifications sent to the Notification Recipient or the Notification
Recipient's agent in such a way that the notification arrives Recipient's agent in such a way that the notification arrives
immediately , within the limits of common addressing, routing, network immediately , within the limits of common addressing, routing,
congestion and quality of service. network congestion and quality of service.
2.19 Store and Forward Notification 2.19 Store and Forward Notification
Notifications which are not necessarily delivered to Notification Notifications which are not necessarily delivered to Notification
Recipients immediately, but are queued for delivery by some intermediate Recipients immediately, but are queued for delivery by some
network application, for later retrieval. Email is an example of a store intermediate network application, for later retrieval. Email is an
and forward notification delivery method. example of a store and forward notification delivery method.
2.20 Reliable Delivery of Notifications 2.20 Reliable Delivery of Notifications
Notifications which are delivered by a reliable delivery of packets or Notifications which are delivered by a reliable delivery of packets
character stream, with acknowledgment and retry, such that delivery of or character stream, with acknowledgment and retry, such that
the notification is guaranteed within some determinate time limits. For delivery of the notification is guaranteed within some determinate
example, if the Notification Recipient has logged off and gone home for time limits. For example, if the Notification Recipient has logged
the day, an immediate notification cannot be guaranteed to be delivered, off and gone home for the day, an immediate notification cannot be
even when sent over a reliable transport, because there is nothing there guaranteed to be delivered, even when sent over a reliable transport,
to catch it. Guaranteed delivery requires both store and forward because there is nothing there to catch it. Guaranteed delivery
notification and a reliable transport. requires both store and forward notification and a reliable
transport.
2.21 Notification over Unreliable Transport 2.21 Notification over Unreliable Transport
Notifications are delivered via the fundamental transport address and Notifications are delivered via the fundamental transport address and
routing framework, but no acknowledgment or retry is required. Process routing framework, but no acknowledgment or retry is required.
to process communications, if involved, are unconstrained. Process to process communications, if involved, are unconstrained.
2.22 Human Consumable Notification 2.22 Human Consumable Notification
Notifications which are intended to be consumed by human end users only. Notifications which are intended to be consumed by human end users
Email would be an example of a Human consumable notification, though it only. Email would be an example of a Human consumable notification,
could also contain Machine Consumable Notification. though it could also contain Machine Consumable Notification.
2.23 Machine Consumable Notification 2.23 Machine Consumable Notification
Notifications which are intended for consumption by a program only,
Notifications which are intended for consumption by a program only, such such as an IPP Client. Machine Consumable notifications may not
as an IPP Client. Machine Consumable notifications may not contain human contain human readable information. Do we need both human and
readable information. Do we need both human and machine? Machine machine? Machine readable is intended for application to application
readable is intended for application to application only. The only. The Notification Recipient could process the machine readable
Notification Recipient could process the machine readable Event Event Notification into human readable format.
Notification into human readable format.
2.24 Mixed Notification 2.24 Mixed Notification
A mixed notification contains both Human Consumable and Machine A mixed notification contains both Human Consumable and Machine
Consumable information. Consumable information.
3 Scenarios 3 Scenarios
1.I am sitting in my office and submit a print job to the printer down 1.I am sitting in my office and submit a print job to the printer
the hall. I am in the same security domain as the printer and of down the hall. I am in the same security domain as the printer and
course, geographically near. I want to know immediately when my of course, geographically near. I want to know immediately when
print job will be completed (or if there is a problem) because the my print job will be completed (or if there is a problem) because
document I am working on is urgent. I submit the print job with the the document I am working on is urgent. I submit the print job
following attributes: with the following attributes:
- Notification Recipient - me . Notification Recipient - me
- Notification Events - all . Notification Events - all
- Notification Attributes - job-state-reason . Notification Attributes - job-state-reason
- Notification Type - immediate . Notification Type - immediate
2.I am working from home and submit a print job to the same printer as 2.I am working from home and submit a print job to the same printer
in the previous example. However, since I am not at work, I cannot as in the previous example. However, since I am not at work, I
physically get the print file or do anything with it. It can wait cannot physically get the print file or do anything with it. It
until I get to work this afternoon. However, I'd like my secretary to can wait until I get to work this afternoon. However, I'd like my
pick up the output and put it on my desk so it doesn't get lost or secretary to pick up the output and put it on my desk so it
miss-filed. I'd also like a store and forward notification sent to my doesn't get lost or miss-filed. I'd also like a store and forward
email so that when I get to work I can tell if there was a problem notification sent to my email so that when I get to work I can
with the print job. I submit a print job with the following tell if there was a problem with the print job. I submit a print
attributes: job with the following attributes:
- Notification Recipient - my secretary . Notification Recipient - my secretary
- Notification Events - print complete . Notification Events - print complete
- Notification Type - immediate . Notification Type - immediate
- Notification Recipient - me . Notification Recipient - me
- Notification Events - print complete . Notification Events - print complete
- Notification Attributes - impressions completed . Notification Attributes - impressions completed
- Notification Type - store and forward . Notification Type - store and forward
3.I am sitting in my office and submit a print job to a client at an 3.I am sitting in my office and submit a print job to a client at an
engineering firm we work with on a daily basis. The engineering firm engineering firm we work with on a daily basis. The engineering
is in Belgium. I would like my client to know when the print job is firm is in Belgium. I would like my client to know when the print
complete, so that she can pick it up from the printer in her job is complete, so that she can pick it up from the printer in
building. It is important that she review it right away and get her her building. It is important that she review it right away and
comments back to me. I submit the print job with the following get her comments back to me. I submit the print job with the
attributes: following attributes:
- Notification Recipient - client at engineering firm . Notification Recipient - client at engineering firm
- Notification Events - print complete . Notification Events - print complete
- Notification Type - immediate . Notification Type - immediate
- Notification Language - French . Notification Language - French
4.I am in a hotel room and send a print job to a Kinko's store in the 4.I am in a hotel room and send a print job to a Kinko's store in
town I am working in, in order to get a printed report for the the town I am working in, in order to get a printed report for the
meeting I am attending in the morning. Since I'm going out to dinner meeting I am attending in the morning. Since I'm going out to
after I get this job submitted, an immediate notification won't do me dinner after I get this job submitted, an immediate notification
much good. However, I'd like to check in the morning before I drive won't do me much good. However, I'd like to check in the morning
to the Kinko's store to see if the file has been printed. An email before I drive to the Kinko's store to see if the file has been
notification is sufficient for this purpose. I submit the print job printed. An email notification is sufficient for this purpose. I
with the following attributes: submit the print job with the following attributes:
- Notification Recipient - me . Notification Recipient - me
- Notification Events - print complete . Notification Events - print complete
- Notification Type - store and forward . Notification Type - store and forward
5.I am printing a large, complex print file. I want to have some 5.I am printing a large, complex print file. I want to have some
immediate feedback on the progress of the print job as it prints. I immediate feedback on the progress of the print job as it prints.
submit the print job with the following attributes: I submit the print job with the following attributes:
- Notification Recipient - me . Notification Recipient - me
- Notification Type - immediate . Notification Type - immediate
- Notification Events - all state transitions . Notification Events - all state transitions
- Notification Attributes - impression completed . Notification Attributes - impression completed
6.I am an operator and my duties is to keep the printer running. I 6.I am an operator and my duties is to keep the printer running. I
subscribe independently from a job submission so that my subscription subscribe independently from a job submission so that my
outlasts any particular job. I subscribe with the following subscription outlasts any particular job. I subscribe with the
attributes: following attributes:
- Notification Recipient - me . Notification Recipient - me
- Notification Type - immediate . Notification Type - immediate
- Notification Events - all Printer state transitions . Notification Events - all Printer state transitions
- Notification Attributes - Printer state, printer state reasons, . Notification Attributes - Printer state, printer state reasons,
device powering up, device powering down. device powering up, device powering down.
7.I am a usage statistics gathering application. I subscribe 7.I am a usage statistics gathering application. I subscribe
independently from a job submission so that my subscription outlasts independently from a job submission so that my subscription
any particular job. My subscription may persists across power outlasts any particular job. My subscription may persists across
cycles. I subscribe with the following attributes: power cycles. I subscribe with the following attributes:
- Notification Recipient - me . Notification Recipient - me
- Notification Type - immediate . Notification Type - immediate
- Notification Events - job completion . Notification Events - job completion
- Notification Attributes - impression completed, sheets completed, . Notification Attributes - impression completed, sheets
time submitted, time started, time completed, job owner, job size completed, time submitted, time started, time completed, job
in octets, etc. owner, job size in octets, etc.
8.I am a client application program that displays a list of jobs 8.I am a client application program that displays a list of jobs
currently queued for printing on a printer. I display the "job- currently queued for printing on a printer. I display the "job-
name", "job-state", "job-state-reasons", "page-count", and name", "job-state", "job-state-reasons", "page-count", and
"intervening-jobs" either for the user's jobs or for all jobs. The "intervening-jobs" either for the user's jobs or for all jobs.
window displaying the job list remains open for an independent amount The window displaying the job list remains open for an independent
of time, and it is desired that it represent the current state of the amount of time, and it is desired that it represent the current
queue. It is desired that the application only need to perform a state of the queue. It is desired that the application only need
slow poll in order to recover from any missed notifications. So the to perform a slow poll in order to recover from any missed
event delivery mechanism provides the means to update the screen on notifications. So the event delivery mechanism provides the means
all needed changes, including querying for some attributes that may to update the screen on all needed changes, including querying for
not be delivered in the Notification. some attributes that may not be delivered in the Notification.
9.I am a client application program that displays a list of printers. 9.I am a client application program that displays a list of
For each Printer I display the current state and configuration. The printers. For each Printer I display the current state and
window displaying the printer list remains open for an independent configuration. The window displaying the printer list remains
amount of time, and it is desired that it represent the current state open for an independent amount of time, and it is desired that it
of each printer. It is desired that the application only need to represent the current state of each printer. It is desired that
perform a slow poll in order to recover from any missed the application only need to perform a slow poll in order to
notifications. So the event delivery mechanism provides the means to recover from any missed notifications. So the event delivery
update the screen on all needed changes, including querying for some mechanism provides the means to update the screen on all needed
attributes that may not be delivered in the Notification. changes, including querying for some attributes that may not be
delivered in the Notification.
10. I am an IPP Server that controls one or more devices and implements 10. I am an IPP Server that controls one or more devices and
an IPP Printer object to represent each device. I want to support implements an IPP Printer object to represent each device. I want
IPP Notification for each of the IPP Printer objects that I to support IPP Notification for each of the IPP Printer objects
implement. Many of these devices do not support notification (or that I implement. Many of these devices do not support
IPP). So I need to support the IPP Notification semantics specified notification (or IPP). So I need to support the IPP Notification
for each IPP Printer object myself on behalf of each of the devices semantics specified for each IPP Printer object myself on behalf
that each of the IPP Printer objects represent. When I accept IPP of each of the devices that each of the IPP Printer objects
job creation requests, I convert the request to what the device will represent. When I accept IPP job creation requests, I convert the
accept. In some cases, I must poll the devices in order to be request to what the device will accept. In some cases, I must
informed of their job and device state and state changes in order to poll the devices in order to be informed of their job and device
be able to send IPP Notifications to subscribed Notification state and state changes in order to be able to send IPP
Recipients. Notifications to subscribed Notification Recipients.
11. I am an IPP Server that controls one or more devices and implements 11. I am an IPP Server that controls one or more devices and
an IPP Printer object to represent each device. I want to support implements an IPP Printer object to represent each device. I want
IPP Notification for each of the IPP Printer objects that I to support IPP Notification for each of the IPP Printer objects
implement. These devices all support IPP, including IPP that I implement. These devices all support IPP, including IPP
Notification. I would like the design choice for supporting IPP Notification. I would like the design choice for supporting IPP
Notification for these IPP Printer objects that I implement either Notification for these IPP Printer objects that I implement either
(1) by forwarding the notification to the IPP Printers that I alone (1) by forwarding the notification to the IPP Printers that I
control and have them send the notifications to the intended alone control and have them send the notifications to the intended
Notification Recipients without my involvement or (2) replace the Notification Recipients without my involvement or (2) replace the
notification submitted with the Job to indicate me as the notification submitted with the Job to indicate me as the
Notification Recipient and I will in turn forward Notifications to Notification Recipient and I will in turn forward Notifications to
the Notification Recipients requested by my clients. Most of the the Notification Recipients requested by my clients. Most of the
rest of the contents of the IPP Job that I send to the IPP Printers rest of the contents of the IPP Job that I send to the IPP
that I control will be the same as the IPP Job that I receive from my Printers that I control will be the same as the IPP Job that I
IPP clients. receive from my IPP clients.
12. I am an IPP Server that controls one or more devices and implements 12. I am an IPP Server that controls one or more devices and
an IPP Printer object to represent each device. I want to support implements an IPP Printer object to represent each device. I want
IPP Notification for each of the IPP Printer objects that I to support IPP Notification for each of the IPP Printer objects
implement. These devices all support IPP, including IPP that I implement. These devices all support IPP, including IPP
Notification. Because these IPP Printers MAY also be being Notification. Because these IPP Printers MAY also be being
controlled by other servers (using IPP or other protocols), I only controlled by other servers (using IPP or other protocols), I only
want job events for the jobs that I send, but do want Printer events want job events for the jobs that I send, but do want Printer
all the time, so that I can show proper Printer state to my clients. events all the time, so that I can show proper Printer state to my
So I subscribe to these IPP Printers for Printer events with a long clients. So I subscribe to these IPP Printers for Printer events
standing subscription with myself to as the Notification Recipient. with a long standing subscription with myself to as the
When I get a Job Creation request, I decide to which IPP Printer to Notification Recipient. When I get a Job Creation request, I
send the job. When I do so, I also add a job subscription for Job decide to which IPP Printer to send the job. When I do so, I also
events with me as the Notification Recipient to the job's job add a job subscription for Job events with me as the Notification
subscriptions supplied by my clients (this usage is called "piggy- Recipient to the job's job subscriptions supplied by my clients
backing"). These IPP Printers automatically remove their job (this usage is called "piggy-backing"). These IPP Printers
subscriptions when the job completes as for all job subscriptions so automatically remove their job subscriptions when the job
that I no longer get Job events when my jobs are completed. completes as for all job subscriptions so that I no longer get Job
events when my jobs are completed.
4 Requirements 4 Requirements
The following requirements are intended to be met by the IPP The following requirements are intended to be met by the IPP
Notification specification (not the implementation). The resulting IPP Notification specification (not the implementation). The resulting
Notification Specification document: IPP Notification Specification document:
1.must indicate which of these requirements are REQUIRED and which are 1.must indicate which of these requirements are REQUIRED and which
OPTIONAL for a conforming implementation to support. are OPTIONAL for a conforming implementation to support. See
[RFC2911] section 12.1 for the definition of these important
conformance terms.
2.must be designed to that an IPP Printer can transparently support 2.must be designed to that an IPP Printer can transparently support
the IPP Notification semantics using third party notification the IPP Notification semantics using third party notification
services that exist today or that may be standardized in the future. services that exist today or that may be standardized in the
future.
3.must define means for a Job Submitting End User to specify zero or 3.must define means for a Job Submitting End User to specify zero or
more Notification Recipients when submitting a print job. A Submitter more Notification Recipients when submitting a print job. A
will not be able to prevent out of band subscriptions from authorized Submitter will not be able to prevent out of band subscriptions
persons, such as Operators. from authorized persons, such as Operators.
4.must define means when specifying a Notification Recipient, for a 4.must define means when specifying a Notification Recipient, for a
Notification Subscriber to be able to specify one or more Notification Subscriber to be able to specify one or more
notification events for that Notification Recipient, subject to notification events for that Notification Recipient, subject to
administrative and security policy restrictions. Any of the administrative and security policy restrictions. Any of the
following constitute Job or Printer Events that a Job Submitting End following constitute Job or Printer Events that a Job Submitting
User can specify notifications be sent for: End User can specify notifications be sent for:
- Any standard Printer MIB alert (i.e. device alerts) (critical . Any standard Printer MIB alert (i.e. device alerts) (critical
and warning?) (state change notifications)? and warning?) (state change notifications)?
- Job Received (transition from Unknown to Pending) . Job Received (transition from Unknown to Pending)
- Job Started (Transition from Pending to Processing) . Job Started (Transition from Pending to Processing)
- Page Complete (Page is stacked) . Page Complete (Page is stacked)
- Collated Copy Complete (last sheet of collated copy is stacked) . Collated Copy Complete (last sheet of collated copy is
- Job Complete (transition from Processing or Processing-stopped stacked)
to Completed) . Job Complete (transition from Processing or Processing-
- Job aborted (transition from Pending, Pending-held, Processing, stopped to Completed)
or Processing-stopped to Aborted) . Job aborted (transition from Pending, Pending-held,
- Job canceled (transition from Pending, Pending-held, Processing, Processing, or Processing-stopped to Aborted)
or Processing-held to Canceled) . Job canceled (transition from Pending, Pending-held,
- Other job state changes like 'paused', purged? Processing, or Processing-held to Canceled)
- Device problems for which the job is destined . Other job state changes like 'paused', purged?
- Job (interpreter) issues . Device problems for which the job is destined
. Job (interpreter) issues
5.must define how an End User or Operator subscribes for: 5.must define how an End User or Operator subscribes for:
- Any set of Job Events for a specific job. . Any set of Job Events for a specific job.
- Any set of Printer Events while a specific job is not complete. . Any set of Printer Events while a specific job is not
complete.
6.must define how an End User or Operator subscribes for the following 6.must define how an End User or Operator subscribes for the
without having to submit a Job: following without having to submit a Job:
- Any set of Printer Events for a defined period. . Any set of Printer Events for a defined period.
- Any set of Job Events for all jobs with no control over which . Any set of Job Events for all jobs with no control over which
jobs. jobs.
7.must define how the Notification Subscriber is able to specify either 7.must define how the Notification Subscriber is able to specify
immediate or store and forward notification independently for each either immediate or store and forward notification independently
Notification Recipient. The means may be explicit, or implied by the for each Notification Recipient. The means may be explicit, or
method of delivery chosen by the Job Submitting End User. implied by the method of delivery chosen by the Job Submitting End
User.
8.must define common delivery methods, e.g. email, must be defined. 8.must define common delivery methods, e.g. email, must be defined.
9.must define how an IPP Printer validates its ability to deliver an 9.must define how an IPP Printer validates its ability to deliver an
Event using the specified delivery scheme. If it does not support Event using the specified delivery scheme. If it does not support
the specified scheme, or the specified scheme is invalid for some the specified scheme, or the specified scheme is invalid for some
reason, then the IPP Printer accepts and performs the request anyway reason, then the IPP Printer accepts and performs the request
and responds indicating the unsupported attribute values. There is anyway and responds indicating the unsupported attribute values.
no requirement for the IPP Printer receiving the print request to There is no requirement for the IPP Printer receiving the print
validate the identity of an Notification Recipient, nor the ability request to validate the identity of an Notification Recipient, nor
of the system to deliver an event to that recipient as requested (for the ability of the system to deliver an event to that recipient as
example, if the Notification Recipient is not at work today). requested (for example, if the Notification Recipient is not at
work today).
10. must define a class of IPP event notification delivery methods 10. must define a class of IPP event notification delivery methods
which can flow through corporate firewalls. However, an IPP printer which can flow through corporate firewalls. However, an IPP
need not test to guarantee delivery of the notification through a printer need not test to guarantee delivery of the notification
firewall before accepting a print job. through a firewall before accepting a print job.
11. may define means for delivering a notification to the
11. may define means for delivering a notification to the submitting submitting client when the delivery of an event notification to a
client when the delivery of an event notification to a specified specified Notification Recipient fails. Fall back means of
Notification Recipient fails. Fall back means of subscribers subscribers determining if notifications have failed, i.e.
determining if notifications have failed, i.e. polling, may be polling, may be provided.
provided.
12. must define a mechanism for localizing Human Consumable 12. must define a mechanism for localizing Human Consumable
notifications by the Notification Source. notifications by the Notification Source.
13. may define a way to specify whether or not event delivery requires 13. may define a way to specify whether or not event delivery
acknowledgement back to the Notification Source. requires acknowledgement back to the Notification Source.
14. There must be a mechanism defined so that job independent 14. There must be a mechanism defined so that job independent
subscriptions do not become stale and do not require human subscriptions do not become stale and do not require human
intervention to remove stale subscriptions. However, stale must not intervention to remove stale subscriptions. However, stale must
be the inability to deliver an Event Notification , since temporary not be the inability to deliver an Event Notification , since
Notification delivery problems must be tolerated. temporary Notification delivery problems must be tolerated.
15. A mechanism must be defined so that an Event Subscriber is able to 15. A mechanism must be defined so that an Event Subscriber is
add an Event Subscription to a Job after the Job has been submitted. able to add an Event Subscription to a Job after the Job has been
submitted.
16. A mechanism must be defined so that a client is able to cancel an 16. A mechanism must be defined so that a client is able to cancel
Event Subscription on a job or printer after the job has been an Event Subscription on a job or printer after the job has been
submitted. submitted.
17. A mechanism must be defined so that a client can obtain the set of 17. A mechanism must be defined so that a client can obtain the
current Subscriptions. set of current Subscriptions.
5 Security considerations for IPP Notifications requirements 5 Security considerations for IPP Notifications requirements
By far the biggest security concern is the abuse of notification: By far the biggest security concern is the abuse of notification:
sending unwanted notifications to third parties (i.e., spam). The sending unwanted notifications to third parties (i.e., spam). The
problem is made worse by notification addresses that may be problem is made worse by notification addresses that may be
redistributed to multiple parties (e.g. mailing lists). There exist redistributed to multiple parties (e.g. mailing lists). There exist
scenarios where third party notification is required (see Scenario #2 scenarios where third party notification is required (see Scenario #2
and #3). The fully secure solution would require active agreement of and #3). The fully secure solution would require active agreement of
all recipients before sending out anything. However, requirement #9 all recipients before sending out anything. However, requirement #9
(There is no requirement for IPP Printer receiving the print request to ("There is no requirement for IPP Printer receiving the print request
validate the identity of an event recipient) argues against this. to validate the identity of an event recipient") argues against this.
Certain systems may decide to disallow third party notifications (a Certain systems may decide to disallow third party notifications (a
traditional fax model). traditional fax model).
Clients submitting notification requests to the IPP Printer has the same Clients submitting notification requests to the IPP Printer has the
security issues as submitting an IPP/1.1 print job request. same security issues as submitting an IPP/1.1 print job request. The
The same mechanisms used by IPP/1.1 can therefore be used by the client same mechanisms used by IPP/1.1 can therefore be used by the client
notification submission. Operations that require authentication can use notification submission. Operations that require authentication can
the HTTP authentication. Operations that require privacy can use the use the HTTP authentication. Operations that require privacy can use
HTTP/TLS privacy. the HTTP/TLS privacy.
The notification access control model should be similar to the IPP The notification access control model should be similar to the IPP
access control model. Creating a notification subscription is access control model. Creating a notification subscription is
associated with a user. Only the creator or an operator can cancel the associated with a user. Only the creator or an operator can cancel
subscription. The system may limit the listing of items to only those the subscription. The system may limit the listing of items to only
items owned by the user. Some subscriptions (e.g. those that have a those items owned by the user. Some subscriptions (e.g. those that
lifetime longer than a job) can be done only by privileged users have a lifetime longer than a job) can be done only by privileged
(operators and/or administrators), if that is the authorization policy. users (operators and/or administrators), if that is the authorization
policy.
The standard security concerns (delivery to the right user, privacy of The standard security concerns (delivery to the right user, privacy
content, tamper proof content) apply to the notification delivery. IPP of content, tamper proof content) apply to the notification delivery.
should use the security mechanism of the delivery method used. Some IPP should use the security mechanism of the delivery method used.
delivery mechanisms are more secure than others. Therefore, sensitive Some delivery mechanisms are more secure than others. Therefore,
notifications should use the delivery method that has the strongest sensitive notifications should use the delivery method that has the
security. strongest security.
6 Internationalization Considerations 6 Internationalization Considerations
The Human Consumable notification must be localized to the natural The Human Consumable notification must be localized to the natural
language and charset that Notification Subscriber specifies within the language and charset that Notification Subscriber specifies within
choice of natural languages and charsets that the IPP Printer supports. the choice of natural languages and charsets that the IPP Printer
supports.
The Machine Consumable notification data uses the 'application/ipp' MIME The Machine Consumable notification data uses the 'application/ipp'
media type. It contains some attributes whose text values are required MIME media type. It contains some attributes whose text values are
to be in the natural language and charset that the Notification required to be in the natural language and charset that the
Subscriber specifies within the choice of natural languages and charsets Notification Subscriber specifies within the choice of natural
that the IPP Printer supports. See [RFC2566]. languages and charsets that the IPP Printer supports. See [RFC2566].
7 IANA Considerations 7 IANA Considerations
There will be some notification delivery methods registered with IANA There will be some notification delivery methods registered with IANA
for use in URLs. for use in URLs. These will be defined in other documents.
8 References 8 References
[ipp-mod] [RFC2565]
deBry, R., , Hastings, T., Herriot, R., Isaacson, S., Powell, P.,
"Internet Printing Protocol/1.1: Model and Semantics", < draft-
ietf-ipp-model-v11-07.txt>, work in progress, May 2000.
[ipp-pro]
Herriot, R., Butler, S., Moore, P., Tuner, R., "Internet Printing Herriot, R., Butler, S., Moore, P., Tuner, R., "Internet Printing
Protocol/1.1: Encoding and Transport", Protocol/1.0: Encoding and Transport", RFC 2565, April 1999.
<draft-ietf-ipp-protocol-v11-06.txt>, May 2000.
[RFC2566]
R. deBry, T. Hastings, R. Herriot, S. Isaacson, P. Powell,
"Internet Printing Protocol/1.0: Model and Semantics", RFC 2566,
April 1999.
[RFC2567] [RFC2567]
Wright, D., "Design Goals for an Internet Printing Protocol", Wright, D., "Design Goals for an Internet Printing Protocol",
RFC 2567, April 1999. draft-ietf-ipp-req-03.txt, November, 1998.
[RFC2568] [RFC2568]
Zilles, S., "Rationale for the Structure and Model and Protocol for Zilles, S., "Rationale for the Structure and Model and Protocol for
the Internet Printing Protocol", RFC 2568, April 1999. the Internet Printing Protocol", draft-ietf-ipp-rat-04.txt,
November, 1998.
[RFC2569] [RFC2569]
Herriot, R., Hastings, T., Jacobs, N., Martin, J., "Mapping between Herriot, R., Hastings, T., Jacobs, N., Martin, J., "Mapping between
LPD and IPP Protocols", RFC 2569, April 1999. LPD and IPP Protocols", draft-ietf-ipp-lpd-ipp-map-05.txt, November
1998.
[ipp-iig] [RFC2639]
T. Hastings, C. Manros. "Internet Printing Protocol/1.1: T. Hastings, C. Manros. "Internet Printing Protocol/1.0:
Implementer's Guide", <draft-ietf-ipp-implementers-guide-v11- Implementer's Guide", RFC 2639, July 1999.
01.txt>
May 2000.
9 Author's Addresses [RFC2911]
deBry, R., , Hastings, T., Herriot, R., Isaacson, S., Powell, P.,
"Internet Printing Protocol/1.1: Model and Semantics", RFC 2911,
September 2000.
9 Author's Address
Harry Lewis Harry Lewis
HUC/003G HUC/003G
IBM Corporation IBM Corporation
P.O. Box 1900 P.O. Box 1900
Boulder, CO 80301-9191 Boulder, CO 80301-9191
Phone: (303) 924-5337 Phone: (303) 924-5337
Fax: (303) 924-9889 Fax: (303) 924-9889
e-mail: harryl@us.ibm.com e-mail: harryl@us.ibm.com
skipping to change at page 15, line 32 skipping to change at page 16, line 4
e-mail: debryro@uvsc.edu e-mail: debryro@uvsc.edu
Tom Hastings (editor) Tom Hastings (editor)
Xerox Corporation Xerox Corporation
737 Hawaii St. ESAE 231 737 Hawaii St. ESAE 231
El Segundo, CA 90245 El Segundo, CA 90245
Phone: 310-333-6413 Phone: 310-333-6413
Fax: 310-333-5514 Fax: 310-333-5514
e-mail: hastings@cp10.es.xerox.com e-mail: hastings@cp10.es.xerox.com
IPP Mailing List: ipp@pwg.org IPP Mailing List: ipp@pwg.org
IPP Mailing List Subscription: ipp-request@pwg.org IPP Mailing List Subscription: ipp-request@pwg.org
IPP Web Page: http://www.pwg.org/ipp/ IPP Web Page: http://www.pwg.org/ipp/
10 Appendix A: Full Copyright Statement
Copyright (C) The Internet Society (1998,1999,2000,2001). All Rights
Reserved
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
 End of changes. 

This html diff was produced by rfcdiff 1.25, available from http://www.levkowetz.com/ietf/tools/rfcdiff/