How does PaperCut Work? A behind the scenes look!

KB Home   |   How does PaperCut Work? A behind the scenes look!

Main.HowDoesPaperCutWork History

Hide minor edits - Show changes to output

June 08, 2016, at 12:26 PM by Shane Higgins -
June 08, 2016, at 12:26 PM by Shane Higgins -
Added lines 27-37:

!!Multi-Site Environments:
PaperCut offers two solutions,
*[[https://www.papercut.com/products/ng/manual/common/topics/secondary.html|Secondary servers]]
These servers act as an extension of the Application servers' print provider, they carry out the instructions of the application server, analysing and controlling print jobs.
These servers have 3 simple failure modes should the network between them and the Application server be severed. Read more on these modes in the [[https://www.papercut.com/products/ng/manual/common/topics/secondary.html|manual.]]
*[[https://www.papercut.com/products/ng/manual/common/topics/site-server.html|Site servers]]
To add enhanced resiliency to the PaperCut system Sites servers run a copy of the Application servers database which is replicated constantly to minimise the impact on the network.
These servers can be standalone or print servers on the site, and allow the majority of the application server functions to be carried out (including hold release and MFD Embedded functions used in PaperCut MF), while the site is cut off from the Application server. Read more about site servers in the [[https://www.papercut.com/products/ng/manual/common/topics/site-server.html|manual.]]

Changed lines 18-19 from:
As a general rule on all platforms, PaperCut works by interfacing with the Operating System's standard print queueing system rather than replacing it.  This approach means that you don't loose any of the functionality provided by the underlying OS and in most cases can benefit from your existing setup and queues (e.g. AD driver deployment, existing permissions, etc.)
to:
As a general rule on all platforms, PaperCut works by interfacing with the Operating System's standard print queueing system rather than attempting to replace it.  This approach means that you don't loose any of the functionality provided by the underlying OS and in most cases can benefit from your existing setup and queues (e.g. AD driver deployment, existing permissions, etc.)
Added lines 18-19:
As a general rule on all platforms, PaperCut works by interfacing with the Operating System's standard print queueing system rather than replacing it.  This approach means that you don't loose any of the functionality provided by the underlying OS and in most cases can benefit from your existing setup and queues (e.g. AD driver deployment, existing permissions, etc.)
Changed line 28 from:
* No modification is made to the job at all (unless [[https://www.papercut.com/tour/watermark/|watermarking]] is enabled).
to:
* No modification is made to the job at all (unless [[https://www.papercut.com/tour/watermark/|watermarking]], or print attribute modification such as forcing grayscale or duplex, is enabled).
Changed lines 22-23 from:
PaperCut is designed according to the Service Oriented Architecture (SOA) priciple and has full support for a multi-server and multi-operating system environments.  In a standard setup, one server is nominated as the "Primary PaperCut Server" and this hosts the main ''Application Server''.  Other servers are called ''Secondary Servers''.  Secondary servers run a lightweight monitoring component and communicate with the primary server via XML Web Services over HTTP.  It is a fully cross-platform [[https://www.papercut.com/|print management software]] solution.  It is possible to mix server operating systems (Windows, Linux, Mac and Novell) and have them all working together as one.
to:
PaperCut is designed according to the Service Oriented Architecture (SOA) principle and has full support for a multi-server and multi-operating system environments.  In a standard setup, one server is nominated as the "Primary PaperCut Server" and this hosts the main ''Application Server''.  Other servers are called ''Secondary Servers''.  Secondary servers run a lightweight monitoring component and communicate with the primary server via XML Web Services over HTTP.  PaperCut is a fully cross-platform [[https://www.papercut.com/|print management software]] solution.  It is possible to mix server operating systems (Windows, Linux, Mac and Novell) and have them all working together as one.
Changed line 29 from:
* All queue integration is via standard `APIs and/or reading standard spool files.
to:
* All queue integration is done via standard `APIs and/or reading standard spool files.
Changed lines 11-12 from:
# The process that conducts the analysis (the ''print provider'') calls across to the ''application server''.
# The Application Server
makes a decision if the job should proceed.  It factors in details such as:
to:
# The process that conducts the analysis (the ''Print Provider'') calls across to the ''Application Server'' (the central "brains").
# The ''Application Server''
makes a decision if the job should proceed.  It factors in details such as:
Changed lines 16-17 from:
# The ''print provider'' will either unpause the job (allow it to print) or delete if from the queue accordingly.
to:
# The ''Print Provider'' will either unpause the job (allow it to print) or delete if from the queue accordingly.
Changed lines 22-23 from:
PaperCut is designed according to the Service Oriented Architecture (SOA) priciple and has full support for a multi-server and multi-operating system environments.  In a standard setup, one server is nominated as the "Primary PaperCut Server" and this hosts the main ''Application Server''.  Other servers are called ''Secondary Servers''.  Secondary servers run a lightweight monitoring component and communicate with the primary server via XML Web Services over HTTP.  It is a fully cross-platform [[htp://www.papercut.com/|print management software]] solution.  It is possible to mix server operating systems (Windows, Linux, Mac and Novell) and have them all working together as one.
to:
PaperCut is designed according to the Service Oriented Architecture (SOA) priciple and has full support for a multi-server and multi-operating system environments.  In a standard setup, one server is nominated as the "Primary PaperCut Server" and this hosts the main ''Application Server''.  Other servers are called ''Secondary Servers''.  Secondary servers run a lightweight monitoring component and communicate with the primary server via XML Web Services over HTTP.  It is a fully cross-platform [[https://www.papercut.com/|print management software]] solution.  It is possible to mix server operating systems (Windows, Linux, Mac and Novell) and have them all working together as one.
Changed lines 18-25 from:
to:
!!Client Software:
PaperCut does include optional client software, however this is ''not'' involved in the print analysis process.  The client software is optional and at the simplest level can be thought of as a viewing tool.  It simply acts on the direction of the server to say show the user their account balance, ask them to select an account or confirm a print, or show messages such as low balance warnings.  The client software is required to use some advanced features such as popup account selection.

!!Multi-server Environments:
PaperCut is designed according to the Service Oriented Architecture (SOA) priciple and has full support for a multi-server and multi-operating system environments.  In a standard setup, one server is nominated as the "Primary PaperCut Server" and this hosts the main ''Application Server''.  Other servers are called ''Secondary Servers''.  Secondary servers run a lightweight monitoring component and communicate with the primary server via XML Web Services over HTTP.  It is a fully cross-platform [[htp://www.papercut.com/|print management software]] solution.  It is possible to mix server operating systems (Windows, Linux, Mac and Novell) and have them all working together as one.

PaperCut may be hosted in a [[https://www.papercut.com/tour/clustering-and-load-balancing/|clustered]] environment.

Changed line 28 from:
* No modification is made to the job at all (unless watermarking is enabled).
to:
* No modification is made to the job at all (unless [[https://www.papercut.com/tour/watermark/|watermarking]] is enabled).
Changed line 40 from:
[-Keywords: design, function, internals, workings, technical details-]
to:
[-Keywords: design, function, internals, workings, technical details, system architecture-]
September 13, 2010, at 06:59 AM by peter - Noted watermarking modifies job
Changed line 13 from:
## Printer filters such as maximum job size
to:
## The effects of printer filters such as maximum job size
Changed line 21 from:
* No modification is made to the job at all.
to:
* No modification is made to the job at all (unless watermarking is enabled). 
Changed line 31 from:
''Categories:'' [[Category.Architecture | +]], [[Category.Miscellaneous | +]]
to:
''Categories:'' [[Category.Architecture | +]]
Changed line 31 from:
''Categories:'' [[Category.Architecture|+]]
to:
''Categories:'' [[Category.Architecture | +]], [[Category.Miscellaneous | +]]
Changed line 33 from:
[-keywords: design, function -]
to:
[-Keywords: design, function, internals, workings, technical details-]
Changed lines 3-5 from:
A few customers have asked, "how does PaperCut [[https://www.papercut.com/solutions/print-audit-for-business/ | track printing]]".  This Knowledge Base article gives a quick overview of the process and explains what's happening behind the scenes.

# A user at a workstations selects ''Print...'' from their application.  The Applications renders the job and it gets sent to the server's queue.
to:
A few customers have asked "how does PaperCut [[https://www.papercut.com/solutions/print-audit-for-business/ | track printing]]"?  This knowledge base article gives a quick overview of the process and explains what's happening behind the scenes.

# A user at a workstation selects ''Print...'' from their application.  The application renders the job and it gets sent to the server's queue.
Changed lines 8-9 from:
# PaperCut pauses the job (so it does not starting printing until analysis is complete).
# Analysis is conducted by reading the spool file.  These are always located on the server in:
to:
# PaperCut pauses the job (to prevent printing until analysis is complete).
# Analysis is conducted by reading the spool file.  On Windows these are always located on the server in:
Changed line 11 from:
# The process (the Print Provider) that conducts the analysis calls across to the Application Server.
to:
# The process that conducts the analysis (the ''print provider'') calls across to the ''application server''.
Changed line 13 from:
## Printer Filters such as maximum job size
to:
## Printer filters such as maximum job size
Changed lines 16-18 from:
# The Print Provider will either unpause the job (allow it to print) or delete if from the queue accordingly.

to:
# The ''print provider'' will either unpause the job (allow it to print) or delete if from the queue accordingly.

Changed lines 24-25 from:
* All analysis is server-side and not client interaction occurs.
to:
* All analysis is server-side and no client-side printing interaction occurs.
Deleted line 29:
Changed line 31 from:
''Categories:'' [[!Architecture]]
to:
''Categories:'' [[Category.Architecture|+]]
Deleted line 32:
Changed lines 22-25 from:
* All queue integration is via standard `APIs and/or reading standard spool files
* No special driver or driver interaction occurs
* All analysis is server-side and not client interaction occurs
to:
* All queue integration is via standard `APIs and/or reading standard spool files.
* No special driver or driver interaction occurs.
* All analysis is server-side and not client interaction occurs.
Added line 5:
# A user at a workstations selects ''Print...'' from their application.  The Applications renders the job and it gets sent to the server's queue.
Added lines 3-4:
A few customers have asked, "how does PaperCut [[https://www.papercut.com/solutions/print-audit-for-business/ | track printing]]".  This Knowledge Base article gives a quick overview of the process and explains what's happening behind the scenes.
Changed lines 3-4 from:
# The print job arrives in the print queue and begins spooling
# PaperCut detects the event using standard Operating System `APIs (Windows, Novell or CUPS on Mac and Linux)
to:
# The print job arrives in the print queue and begins spooling.
# PaperCut detects the event using standard Operating System `APIs (Windows, Novell or CUPS on Mac and Linux).
Changed line 8 from:
# The process (the Print Provider) that conducts the analysis calls across to the Application Server
to:
# The process (the Print Provider) that conducts the analysis calls across to the Application Server.
Changed lines 13-15 from:
# The Print Provider will either unpause the job (allow it to print) or delete if from the queue accordingly

to:
# The Print Provider will either unpause the job (allow it to print) or delete if from the queue accordingly.

Changed line 19 from:
* All queue integration is via standard APIs and/or reading standard spool files
to:
* All queue integration is via standard `APIs and/or reading standard spool files
Changed lines 1-2 from:
(:title How does PaperCut Work?  Behind the scenes! :)
to:
(:title How does PaperCut Work?  A behind the scenes look! :)
Changed lines 25-32 from:
https://www.papercut.com/products/ng/manual/ch-secondary-print-multiple-servers.html
to:
->https://www.papercut.com/products/ng/manual/ch-secondary-print-multiple-servers.html


----
''Categories:'' [[!Architecture]]
----

[-keywords: design, function -]
Added lines 1-25:
(:title How does PaperCut Work?  Behind the scenes! :)

# The print job arrives in the print queue and begins spooling
# PaperCut detects the event using standard Operating System `APIs (Windows, Novell or CUPS on Mac and Linux)
# PaperCut pauses the job (so it does not starting printing until analysis is complete).
# Analysis is conducted by reading the spool file.  These are always located on the server in:
-->[@C:\Windows\System32\Spool\Printers@]
# The process (the Print Provider) that conducts the analysis calls across to the Application Server
# The Application Server makes a decision if the job should proceed.  It factors in details such as:
## Printer Filters such as maximum job size
## The balance in the user's account
## Other access rules
# The Print Provider will either unpause the job (allow it to print) or delete if from the queue accordingly


!!Other Notes:

* No modification is made to the job at all.
* All queue integration is via standard APIs and/or reading standard spool files
* No special driver or driver interaction occurs
* All analysis is server-side and not client interaction occurs

There is some more discussion on the architecture here in the manual:

https://www.papercut.com/products/ng/manual/ch-secondary-print-multiple-servers.html

Comments

Share your findings and experience with other PaperCut users. Feel free to add comments and suggestions about this Knowledge Base article. Please don't use this for support requests.

Article last modified on June 08, 2016, at 12:26 PM
Printable View   |   Article History   |   Edit Article