Before explaining how PaperCut NG works at a technical and end-user level, the reader should be familiar with the following key concepts.
A print server 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 may be a dedicated server but on many networks this server may also perform other tasks such as file serving.
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 LDAP. The username is known as the user's identity. PaperCut NG uses this identity to track printing.
A shared account 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" and the term can be used interchangeably with terms such as Departments, Faculties, Projects, Clients, Client/Matter, or Cost Centers.
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/server 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.
An application server 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.
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 Provider. Other important providers included with PaperCut NG include user directory and authentication providers.
A web application is a software program that interacts with end-users via a web browser. Examples range from Google, Microsoft SharePoint, Hotmail, Internet banking and router management consoles. PaperCut NG provides a web-based interface for system administration and management. Web applications offer administration flexibility by allowing access from any location on the network and avoid the need for installation of separate software.
A scripting language is a programming language that allows control of one or more software applications. In PaperCut NG scripting can be used 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.
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 Client Tool window.
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 may continue 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 presses the
button in the application.The PaperCut client tool 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.
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 services over HTTP.
A more detailed explanation of the architecture and support for multiple servers, web print servers, server clustering, and payment gateways can be found in subsequent sections of this User Guide.
© Copyright 1999-2014. PaperCut Software International Pty Ltd. All rights reserved.