How does PaperCut NG work?
Before explaining how PaperCut NG works at a technical and end user level,read through the following key concepts.
Key concepts
Print server
A print serverA print server is a system responsible for hosting print queues and sharing printer resources to desktops. Users submit print jobs to a print server rather then directly to the printer itself. A print server can be a dedicated server but on many networks this server also performs other tasks, such as, file serving is a system responsible for hosting print queues and sharing printer resources to desktop clients/workstations. Users on the workstations submit print jobs to a print server rather then directly to the printer itself. A print server can be a dedicated server but on many networks this server can also perform other tasks such as file serving.
Print queue
A print queueA print queue displays information about documents that are waiting to be printed, such as, the printing status, document owner, and number of pages to print. You can use the print queue to view, pause, resume, restart, and cancel print jobs. is first-in-first-out queue listing all jobs pending on a given printer.
User ID/Username
In a multi-user environment, users log on to a network or computer using a username and password. These are often managed by services such as Active Directory or LDAPThe Lightweight Directory Access Protocol (LDAP) is a directory service protocol that runs on a layer above the TCP/IP stack. It provides a mechanism used to connect to, search, and modify Internet directories. The LDAP directory service is based on a client-server model.. The username is known as the user's identity. PaperCut NG uses this identity to track printing.
Shared account
A shared accountA shared account is an account that is shared by multiple users. For example, in business, shared accounts can be used to track printing costs by business unit, project, or client. Organizations like legal firms, engineering firms, or accounting offices often have long lists of accounts, projects, clients, or matters. In a school or university, shared accounts can be used to track printing by departments, classes, or subjects. is a PaperCut NG term used to represent an account (pool of funds or allocation group) accessible to multiple users. Accounts usually represent "work areas" such as Departments, Faculties, Projects, Clients, Client/Matter, or Cost Centers.
Client/Server model
Client software is a small program that runs on each workstation and communicates with a server. The printing process on most networks works on a client/serverClient software is a small program that runs on each desktop and communicates with a server. The printing process on most networks works on a client/server model with clients (desktops) submitting jobs to a server. PaperCut also uses the client/server model in the optional client software to communicate with end-users. model with clients (workstations) submitting jobs to a server. PaperCut NG also uses the client/server model in the optional client software to communicate with end users.
Application Server
An Application ServerAn Application Server is the primary server program responsible for providing the PaperCut user interface, storing data, and providing services to users. PaperCut uses the Application Server to manage user and account information, manage printers, calculate print costs, provide a web browser interface to administrators and end users, and much more. is a server program responsible for centrally processing business logic
and providing services to end users. PaperCut NG uses the Application Server model to provide a business logic
unit for calculating user costs and providing a web browser interface to end users.
Information provider
A provider is a software component or program responsible for providing information to an Application Server. PaperCut NG uses providers to submit print queue/job information to its Application Server. This information provider is called the Print ProviderA Print Provider is a monitoring service installed on a secondary print server to allow PaperCut to control and track printers. This monitoring component intercepts the local printing and reports the use back to the primary Application Server.. Other important providers included with PaperCut NG include user directory and authentication providers.
Web interface
A web interface is a software program that interacts withusers via a web browser. Examples range from Google, Microsoft SharePoint, Hotmail, Internet banking and router management consoles. PaperCut NG provides a web interface for system administration and management. Web interfaces offer administration flexibility by allowing access from any location on the network and avoid the need for installation of separate software.
Scripting language
A scripting language is a programming language that allows control of one or more software applications. In PaperCut NG, you can use scripting to perform various administrative functions such as modifying parameters for users, shared accounts or printers. It can also be used for programmatic control during the print process to provide functionality such as print job re-direction, user notifications / warnings and confirmation for large or expensive print jobs.
Web Print server
Web PrintWeb Print enables printing from user-owned devices without the need to install printer drivers and manage server authentication. server is the PaperCut terminology for a server that allows laptop (wireless) users to upload Microsoft Office and PDF files to be printed on network printers from personal computers that are not authenticated to the network and do not have network printer drivers.
Understanding the print process flow
To help explain what PaperCut NG is and how it works we'll introduce the system by example. We'll start with a simple high school example:
The student's perspective (transparent quota control):
-
Chris is a student at a local high school. He has logged onto the network using his username, chris.j.smith, and is surfing the Internet. He selects Print from his web browser to print out a web page for his school assignment.
-
The network administrator has allocated Chris a printing credit budget of $20.00 a month. He can see his current account balance of $10.00 in the PaperCut User ClientThe User Client tool is an add-on that resides on a user's desktop. It allows users to view their current account balance via a popup window, provides users with the opportunity to confirm what they are about to print, allows users to select shared accounts via a popup, if administrators have granted access to this feature, and displays system messages, such as, the "low credit" warning message or print policy popups..
-
A confirmation screen listing the number of pages and the cost of the print job is displayed on the Workstation.
-
Chris confirms the print job.
-
5 pages come out of the printer.
-
The network administrator has set a cost-per-page inside PaperCut on the printer at $0.10. Chris' 5 page document costs $0.50.
-
Chris' account balance is now at $9.50. He cancontinue to print until he submits a print job that has a cost that is higher than the balance in his account.
The teacher's perspective (allocation to accounts):
-
Matt is an English and Mathematics teacher at the same local high school.
-
Matt needs to print out a 279 page document for his next class.
-
The network administrator has configured PaperCut to charge users in the faculty group $.01 per page, and has granted Matt access to charge to his personal account or to the English or math department's shared accounts.
-
Matt clicks Print in the application.
-
The PaperCut User Client displays a popup and presents Matt with information about the print jobs and requests an account selection. In this case accounts represent Departments but could also represent projects or other work areas.
-
Matt selects the English department's shared account from the list.
-
The print job is printed and the English department account is charged $2.79 for the print job.
The technical perspective (behind the scenes):
-
When the teacher, Matt, prints from his application, his workstation transfers the print job to the server and places it in the print queue.
-
The PaperCut Print Provider intercepts the print job in the queue prior to printing, pauses it, and analyzes the information determining:
Who printed the document
The number of pages in the document
Other information such as duplex, grayscale mode, paper size, etc.
-
The Print Provider submits the job's information to the Application Server to process the
business logic
. -
The Application Server determines that Matt needs to select the account to charge. It notifies the Client Software on Matt's desktop.
-
The Client Software displays the Popup requesting for the user to select an account.
-
After Matt selects the account, the Application Server is notified of Matt selection. The
business logic
validates that Matt is authorized to charge to the selected account. -
The Application Server charges the appropriate account, logs the job and instructs the Print Provider to resume or unpause the print job in the print queue allowing it to proceed to the printer.
Architecture overview
PaperCut NG was developed using the latest software development strategies, a strong influence being Service Oriented Architecture (SOA). The Print Provider, Application Server and Client Software all communicate with one another using XML-based web servicesWeb services are a standardized way of integrating Web-based applications using the XML, SOAP, WSDL and UDDI open standards over an Internet protocol backbone. over HTTP.
A more detailed explanation of the architecture and support for multiple servers, Web Print servers, server clusteringClustering allows your organisation to ensure your services are not affected if anything should happen to your main server. PaperCut is a cluster compatible application and is supported under Windows (Microsoft Cluster Server / MSCS, Microsoft Failover Cluster Manager / MSFCM, Vetitas Cluster Server / VCS) and Linux (Novell Cluster Services / NCS, Linux-HA) at all levels of the application, including: clustering at the print spooler service layer by integrating with clustering services, failover based clustering at the Application Server layer using clustering services, and at the database layer by utilising cluster aware databases such as Microsoft SQL Server, PostgreSQL, or Oracle., and payment gateways is provided in subsequent sections of this User Guide.