1    Advanced Printing Software Overview

Advanced Printing Software is a flexible, distributed, client/server print system for the Tru64 UNIX operating system. This print system includes the following features:

The print system is based on the following industry printing standards:

1.1    Terminology

Understanding Advanced Printing Software concepts is beneficial for simplifying the administration of the system. This section defines and describes terms used in this manual.

1.1.1    Clients and Servers

Advanced Printing Software employs a client/server printing architecture. The clients and servers use an interprocess communication mechanism to exchange information. Clients send requests to the servers, and the servers return responses to the clients. The print system software includes several client programs that interface to the print system and provide server programs that perform the operations requested by the client programs.

1.1.1.1    Client Programs

Client programs allow users to initiate print, list, and system administration operations. Upon receipt of a request, a server performs the operation and sends a result back to the client. Depending on the request, the result could be a simple acknowledgment, an error code, or a set of requested information, such as a formatted list of print jobs.

The following client programs are supported:

1.1.1.2    Server Programs

There are two types of server programs:

Every configuration includes at least one spooler and one supervisor. Each spooler and supervisor manages a database of persistent print objects. All objects in the print system, except for physical printers, are created and stored in a spooler database. Physical printer objects are stored in a supervisor database.

The spooler is viewed as the primary server in the system. Supervisors are nearly invisible to end users.

1.1.2    Objects and Object Attributes

The print system architecture is described in terms of named objects and object attributes. Objects include printers, queues, print jobs, and so on. Attributes of an object describe the object. Examples of attributes are printer names, document formats, and job identifiers.

The following objects are defined in Advanced Printing Software:

Some attributes are assigned values by the system when you create an object. Many of those attributes are read only; you cannot set their values. Other attributes, those that can be defined or modified by you and other print system users, are called read-write attributes.

The print system supports a great number of attributes; however, you need not be familiar with all of them. You should become familiar with those attributes you encounter often.

Attributes have standard names, comprised of one or more words separated by hyphens. Some examples of common printer attributes are printer-name, associated-queue-enabled, input-trays-ready, and sides-supported. Similarly, job-name, job-id, and job-state-message are examples of job attributes. A document object can be described by attributes such as document-format, sides, and number-up.

1.1.3    Operations

Operations are the actions that you perform on objects. For example, users print documents, list status information, remove jobs, enable or disable a printer, and set server attributes.

The following operations are supported:

Some operations are intended for use by end-users, while others are intended solely for administrative purposes. Most operations apply to only certain objects, while some apply to all. For example, administrators use the create operation to create new printers, queues, and initial-value objects. Users create jobs and documents by using the print operation. Similarly, administrators set printer attributes, but users can modify jobs.

1.1.4    Logical Printers, Physical Printers, and Queues

Advanced Printing Software defines two kinds of printer objects; logical printers and physical printers. Both terms refer to software representations of printing devices.

A logical printer object includes characteristics and capabilities of one or more physical printers. Users specify logical printers when they print jobs and the logical printer sends the job to a physical printer that can satisfy the job and document requirements.

A physical printer is a software representation of an actual output device. The physical printer object contains information about the printer make and model, connection details, and a list of ready-to-use features.

The logical printer and physical printer are joined by way of queues. By associating a logical printer and a physical printer with a queue, you establish a relationship between the logical printer that the user specifies for printing and the physical printer defined by characteristics of the output device.

The distinction between the logical printer and the physical printer allows users to specify printers in terms of capabilities rather than by their addresses or model numbers. In this way, printer hardware configurations can evolve with little or no need for users to update their desktop printer settings. Logical printers are used to provide end users with physical printers that have certain site-specific, default attribute values. It also allows setting up fan-in and fan-out queues, where several similar logical printers can send jobs to one queue, or where one queue can issue jobs to more than one output device.

1.1.5    Documents and Jobs

Documents are files that users print. Some documents are formatted in a printer language, such as PCL or PostScript, by an application or by a printer driver. They can also be simple text files with little or no formatting information.

A request to print one or more documents creates a job in the system. The print system assigns the job and its documents unique identifiers that are used for tracking and management. The print system also gives the job a name and inserts the job at the end of a queue for printing.

1.1.6    Initial-Value Objects

The system supports two objects that supply an initial set of attributes to jobs and documents:

An initial-value-job object is a set of job attributes that is applied to jobs upon the job's submission to the system. You can associate one or more logical printers on a spooler with an initial-value-job object to cause all jobs submitted to those printers to take on the initial set of job attributes. Users can specify an initial-value-job object as part of a print job submission to cause the job to take on the attributes.

An initial-value-document object is similar to an initial-value-job object, except that it can contain only document attributes and applises to the individual documents that comprise jobs.

Initial-value objects apply commonly-used sets of job and document attributes to their print jobs. You can create as many of them as you like, and add, remove, or change the attributes and values they contain.

1.1.7    Supported and Ready Attributes

Several attributes declare when certain objects or features are supported and ready for use. These attributes are referred to as xxx-supported and xxx-ready attributes. Most of these attributes apply to printers and are set by administrators and operators. A few of these attributes apply to servers, but those are set by the servers and are read only.

The spooler schedules jobs for printing based on job requirements and printing features that are ready to use. Many printing capabilities need to be declared as supported and ready for use before users can take advantage of them. Administrators and operators need to set certain xxx-supported and xxx-ready attributes so that users can use features of an output device or of the printing software. For example, you need to set the sides-supported and sides-ready attributes of a physical printer so that users can print two-sided documents .

Physical printers, logical printers, spoolers, and supervisors treat supported and ready attributes as described in the following list:

See Chapter 5 for more information about the supported and ready attributes you need to set.

1.1.8    Name Services

In Advanced Printing Software, servers, printers, and queues are identified by name. Name services make it possible for distributed clients and servers to find the network address of an object from its name. Clients and servers use the name services to locate one another when processing requests.

1.1.9    Server Databases

Servers maintain objects, such as printers, queues, and jobs, in a persistent, on-disk database. That allows you to define attributes for those objects that remain on the system until changed, even when it is rebooted. You create printer, queue, and initial-value objects to support the needs of users. Job and document objects are created when print clients submit jobs. All of these objects, except for physical printer objects, are stored in a spooler's database. Physical printer objects are stored in supervisor databases.

In addition to the objects mentioned, each server database holds a server object that it uses to store attributes that describe the server, such as its name, whether it is a supervisor or spooler, the names of printers and queues it supports, and so forth.

1.1.10    User Classes and Access Control

To place limits on which users are permitted to manage the Advanced Printing Software, the print system defines distinct classes of users and the operations that each class can perform.

Access control lists are used to limit access to spoolers and supervisors. Administrators define access control lists that specify which users perform certain kinds of operations on a server by server basis.

1.1.11    Notification Profile and Events

You can stay informed about how your printing environment is functioning by define notification profiles. Server, printer, queue, job, and document objects in the system have various events associated with them. For example, there are events that tell you when a printer changes state, when a job completes, and when a server is being shut down. In addition to specifying a list of events, the notification profile specifies the means by which you will be notified whenever certain events occur. You can choose to be informed of events by e-mail or on your X/Motif console.

1.2    Software Components

This section describes Advanced Printing Software components in more detail. It covers the client programs, server programs, server daemons, printer attribute files, translators, and modification filters.

1.2.1    Client Interfaces

Advanced Printing Software includes a command-line interface (CLI) to the system and three Graphical User Interfaces (GUIs).

1.2.1.1    End-User Interface

The CLI accesses all print, list, and job removal programs that end users access. In addition to the CLI, end users can use the pdprint and pdprintinfo GUI interfaces to perform these functions. The installation procedure integrates the pdprint and pdprintinfo GUIs into the CDE desktop, making them the default print and print information actions.

1.2.1.2    Administrative Interfaces

All system functions are accessable to print administrators through the CLI, and many of the same functions can be performed using the pdprintadmin GUI.

1.2.2    Server Programs

Advacned Printing Software includes three primary server programs that provide the bulk of the print system capabilities:

These server programs are multithreaded applications, capable of simultaneously handling many printers, jobs, and requests. In small-to-medium-sized installations, you might need only one spooler process and one supervisor process. Larger installations (more than 50 printers) will need to run more than one supervisor process. If you need to support printing from the print system to existing lpr or lpd systems or printers, you will need to configure the LPD Outbound Gateway Supervisor.

1.2.2.1    Spooler

The spooler, pdsplr, is a central component in the print system. It performs the following functions:

Clients make requests to submit print jobs to named printers. The spooler puts the job in a queue associated with the printer and applies initial-value-job and initial-value-document attributes to the job and its documents, respectively. The spooler stores the job's document files in a spool directory, where it is accessed by or delivered to a supervisor. When the associated physical printer is ready to accept the job, the spooler transfers the job to the supervisor for printing.

1.2.2.2    Supervisor

The supervisor, pdspvr, controls and communicates with output devices connected directly to a host or through network connections. It is responsible for sending document data to the output device and for returning and reporting status information about job progress while the job is in the printing state. It can also report when the device is not responding to communication attempts.

A supervisor process can control and communicate with as many as 50 output devices of various types and connection methods. Depending on the printer, its native language, and its connection capabilities, the supervisor offers bidirectional communication, flexible device control, multiple printer languages, filters that can translate or modify the document data stream, and optional formatted separator pages.

1.2.2.3    LPD Outbound Gateway Supervisor

The LPD Outbound Gateway Supervisor, pdspvlpr, allows users to submit print jobs to existing lp or lpr printers or print systems in your environment. You can submit jobs to an LPD queue and remove jobs that have not already printed from the queue.

1.2.3    Server Daemons

The Advanced Printing Software includes the following daemon programs that work on behalf of the client interfaces and server programs:

The protoserver daemon serves as the server registration and lookup agent for spoolers and supervisors running on a host. Clients must first communicate with a host's protoserver to acquire the RPC binding information for servers specified in an operation. The protoserver registers itself on a host using a fixed, registered program number.

The notification server distributes notification messages issued by spoolers and supervisors. It is responsible for sending e-mail or displaying messages on the GUI message areas when significant events occur. The console notification daemon, pdconntf, is required when you want notification messages to appear in the CDE system console window.

Only one copy of each of these daemons runs on a host at a time. The protoserver daemon and the notification server daemon run automatically, under control of the inetd program.

1.2.4    Printer Attribute Files

Advanced Printing Software supports many printer models. For each supported printer model, the software includes a printer attribute file. Each file specifies a set of attributes that describe and pertain to the capabilities of the respective printer model, without options. Use printer attribute files to install newly supported printers in your print system. The files have names that make it easy to identify the printer manufacturer and model to which they apply.

1.2.5    Translation and Modification Filters

The supervisor can translate or modify the document data stream while passing it to the output device. Administrators can set up one or more translation filters to automatically translate documents of one format to a different format that is compatible with a target printer. Users can specify modification filters while printing a document. Such a filter might be used to add line and page numbers, remove unwanted sections of a document, or to change the code set of the document to conform to a printer's requirements.

You can configure most programs that take their input from stdin and sends output to stdout, including most standard UNIX utilities, as a translation or modification filter. You can also develop and configure your own filter programs.

Advanced Primting Software includes a translation filter, trn_asciips, that changes text documents to PostScript. This filter can also format text with one-, two-, or four-page images per side (number-up), and can print them in landscape or portrait orientations (content-orientation). You need to set up your supervisor's filter-definition attribute to use this feature if users need to print text files on PostScript printers.