The IPP client-side support in Oracle Solaris is implemented underneath the PAPI. This support enables any applications that are using the PAPI to use IPP, as well as other print services and protocols.
Applications include the following:
GNOME Desktop Environment - Applications using libgnomeprint
BSD commands - BSD UNIX LPD print service commands:
LP commands - System V UNIX LP print service commands:
The IPP client-side support for applications is provided through a loadable module, psm-ipp.so, that is loaded at runtime, based on the printer-uri for the printer or job that is being manipulated.
Because IPP is layered on top of an HTTP transport, both client-side and server-side support need the ability to read and write HTTP protocol. On the server-side, this support is provided by the Apache web server. On the client-side, this support is provided by an HTTP library, libhttp-core.so.
psm-lpsched provides a translation between the print service independent representation of the PAPI and the LP print spooler (lpsched). It takes the PAPI attributes passed into various PAPI functions and converts them into an internal lpsched representation of the data. It then contacts lpsched to perform the requested operation. Once performed, it converts the results back into a print service neutral PAPI representation and returns them to the caller.
The LP print spooler (lpsched), provides a spooling service, translations of job data to a printer ready format, and transmission of the job data to the physical printer.