IPP Components
The following table describes the components that make up IPP support in the
Solaris OS:
Table A-1 IPP Components
Component |
Function |
httpd |
The Apache Web Server. This provides an HTTP transport listener that can
listen for HTTP requests on the IANA registered IPP port of tcp/631.
Once a request has been received, it is passed on to the IPP
Apache module. |
mod_ipp.so
|
The Apache IPP module. This Apache module looks at the clients
HTTP request to determine if it looks like an IPP request (mime-type of
application/ipp and HTTP POST operation). Once it has been determined to be
an IPP request it is passed on to the IPP listener library. This
module also introduces and processes IPP-specific Apache configuration directives. |
libipp-listener.so
|
The IPP listener library. This
library makes use of a core IPP marshaling library to decode the IPP
request and dispatch it to one of it's IPP operation implementation functions. These
functions convert the IPP request into PAPI calls to interact with the local
print service. Once serviced, the listener library encodes and sends the results back
to the requesting client. |
libipp-core.so
|
The IPP marshaling library decodes and encodes IPP
byte streams for reception and transmission on the wire. |
libpapi.so
|
The PAPI library provides
applications like the IPP listening service a means of interacting with the print
service. |
IPP Libraries
The IPP Listening Service library (libipp-listener) – Is where the bulk of the protocol request processing occurs.
The library reads and validates requests by using the core IPP library, libipp-core.so.
After the request has been validated, the request is translated to a series
of client API calls. The result of these calls are then translated into
an appropriate IPP response by using the core IPP library. The response is
returned to the client system by the web server. The interface to the
listening service library is a project private interface that is specific to the
IPP server-side implementation.
The IPP Core library (libipp-core.so) – Is shared between client and server operation. The IPP core
library contains routines that enable it to read and write protocol requests and
responses. The library converts IPP request and response data between the standard binary
representation and a set of common data structures. Ultimately, this common data representation
is used in translating requests to and from a print service neutral representation
and passed between a generic printing interface, libpapi.so. Since both client-side and server-side IPP
support must perform this function, this is shared by clients and servers.
The PAPI library (libpapi.so) – Provides applications a print service independent means of interacting with a
print service or protocol. In this instance, it provides the Apache IPP listening
service a means of interacting with the local LP service. It determines the
print service to interact with based on client-side queue configuration data stored in
the printers.conf configuration database.