set of possible attributes that may be supported by instances of that
object type. For each object (instance), the actual set of supported
attributes and values describe a specific implementation. The
object's attributes and values describe its state, capabilities,
realizable features, job processing functions, and default behaviors
and characteristics. For example, the Printer object type is defined
as a set of attributes that each Printer object potentially supports.
In the same manner, the Job object type is defined as a set of
attributes that are potentially supported by each Job object.
Each attribute included in the set of attributes defining an object
type is labeled as:
RFC 2566 IPP/1.0: Model and Semantics April 1999
- "REQUIRED": each object MUST support the attribute.
- "OPTIONAL": each object MAY support the attribute.
There is no such similar labeling of attribute values. However, if
an implementation supports an attribute, it MUST support at least one
of the possible values for that attribute.
2.1 Printer Object
The major component of the IPP/1.0 model is the Printer object. A
Printer object implements the server-side of the IPP/1.0 protocol.
Using the protocol, end users may query the attributes of the Printer
object and submit print jobs to the Printer object. The actual
implementation components behind the Printer abstraction may take on
different forms and different configurations. However, the model
abstraction allows the details of the configuration of real
components to remain opaque to the end user. Section 3 describes
each of the Printer operations in detail.
The capabilities and state of a Printer object are described by its
attributes. Printer attributes are divided into two groups:
- "job-template" attributes: These attributes describe supported
job processing capabilities and defaults for the Printer object.
(See section 4.2)
- "printer-description" attributes: These attributes describe the
Printer object's identification, state, location, references to
other sources of information about the Printer object, etc. (see
section 4.4)
Since a Printer object is an abstraction of a generic document output
device and print service provider, a Printer object could be used to
represent any real or virtual device with semantics consistent with
the Printer object, such as a fax device, an imager, or even a CD
writer.
Some examples of configurations supporting a Printer object include:
1) An output device with no spooling capabilities
2) An output device with a built-in spooler
3) A print server supporting IPP with one or more associated output
devices
3a) The associated output devices may or may not be capable of
spooling jobs
3b) The associated output devices may or may not support IPP
RFC 2566 IPP/1.0: Model and Semantics April 1999
The following figures show some examples of how Printer objects can
be realized on top of various distributed printing configurations.
The embedded case below represents configurations 1 and 2. The hosted
and fan-out figures below represent configurations 3a and 3b.
Legend:
##### indicates a Printer object which is
either embedded in an output device or is
hosted in a server. The Printer object
might or might not be capable of queuing/spooling.
any indicates any network protocol or direct
connect, including IPP
embedded printer:
output device
+---------------+
O +--------+ | ########### |
/|\ | client |------------IPP------------># Printer # |
/ \ +--------+ | # Object # |
=7= |