- Printer (Section 2.1)
- Job (Section 2.2)
RFC 2566 IPP/1.0: Model and Semantics April 1999
Each object type has an associated set of operations (see section 3)
and attributes (see section 4).
It is important, however, to understand that in real system
implementations (which lie underneath the abstracted IPP/1.0 model),
there are other components of a print service which are not
explicitly defined in the IPP/1.0 model. The following figure
illustrates where IPP/1.0 fits with respect to these other
components.
+--------------+
| Application |
o +. . . . . . . |
\|/ | Spooler |
/ \ +. . . . . . . | +---------+
End-User | Print Driver |---| File |
+-----------+ +-----+ +------+-------+ +----+----+
| Browser | | GUI | | |
+-----+-----+ +--+--+ | |
| | | |
| +---+------------+---+ |
N D S | | IPP Client |------------+
O I E | +---------+----------+
T R C | |
I E U |
F C R -------------- Transport ------------------
I T I
C O T | --+
A R Y +--------+--------+ |
T Y | IPP Server | |
I +--------+--------+ |
O | |
N +-----------------+ | IPP Printer
| Print Service | |
+-----------------+ |
| --+
+-----------------+
| Output Device(s)|
+-----------------+
An IPP Printer object encapsulates the functions normally associated
with physical output devices along with the spooling, scheduling and
multiple device management functions often associated with a print
server. Printer objects are optionally registered as entries in a
directory where end users find and select them based on some sort of
filtered and context based searching mechanism (see section 16). The
directory is used to store relatively static information about the
Printer, allowing end users to search for and find Printers that
RFC 2566 IPP/1.0: Model and Semantics April 1999
match their search criteria, for example: name, context, printer
capabilities, etc. The more dynamic information, such as state,
currently loaded and ready media, number of jobs at the Printer,
errors, warnings, and so forth, is directly associated with the
Printer object itself rather than with the entry in the directory
which only represents the Printer object.
IPP clients implement the IPP protocol on the client side and give
end users (or programs running on behalf of end users) the ability to
query Printer objects and submit and manage print jobs. An IPP
server is just that part of the Printer object that implements the
server-side protocol. The rest of the Printer object implements (or
gateways into) the application semantics of the print service itself.
The Printer objects may be embedded in an output device or may be
implemented on a host on the network that communicates with an output
device.
When a job is submitted to the Printer object and the Printer object
validates the attributes in the submission request, the Printer
object creates a new Job object. The end user then interacts with
this new Job object to query its status and monitor the progress of
the job. End users may also cancel the print job by using the Job
object's Cancel-Job operation. The notification service is out of
scope for IPP/1.0, but using such a notification service, the end
user is able to register for and receive Printer specific and Job
specific events. An end user can query the status of Printer objects
and can follow the progress of Job objects by polling using the Get-
Printer-Attributes, Get-Jobs, and Get-Job-Attributes operations.
2. IPP Objects
The IPP/1.0 model introduces objects of type Printer and Job. Each
type of object models relevant aspects of a real-world entity such as
a real printer or real print job. Each object type is defined as a
=6= |