Parts of the server

Command processor
The command processor is the interface to all the clients and the submission daemons. Clients and submission daemons consist of the command line or InfoPrint Manager clients and submission daemons (such as the GUI, Select, Submit Express, or IPP Gateway), which use an internal, proprietary, object-oriented API (OOAPI). The command processor parses and analyzes requests from clients and daemons in a specific language, locates the pdserver owning the target object of the request, and sends the request (using an internal platform-independent protocol) to the pdserver containing the object. It then waits for the results and returns formatted results to the requester in their language. The command processor owns the copy of all print files for jobs submitted to it for any logical or actual destination in the system. If the actual destination processing the job cannot directly access the command processor's copy of the print file, the command processor provides the print file upon request to the pdserver containing the actual destination. It also does automatic data stream determination and owns the local to global ID mapping table. The local to global job id mapping tables allow users to refer to their jobs by 1, 2, or 3 instead of serverName:123450000. Each user can have a job 1. The command processor also manages and dispatches GUI events to all operator and administrator GUIs connected to it.
Spooler
The spooler provides the job management function. It owns and manages print jobs (not print files) including their creation and validation. It makes sure jobs are scheduled for printing to an appropriate actual destination based on the actual destination's scheduling algorithm and attributes. It holds retained jobs for possible reprint. And it sends notification for events that occur in the spooler to end users and to the command processor for dispatch to GUIs.