Architecture

Top  Previous  Next

A CirrusPrint system is composed of a server and one or more clients.  The server receives print jobs and documents, processes those jobs, and delivers them to remote printers, files, or users.  The server receives documents in four ways:

 

Network ports, which simulate network printers, allowing normal application printing to submit jobs
File system paths, so that files can be submitted by simply dropping them into a server folder
Email addresses, enabling job submission by email from any application that can email files
API submission, where authorized users can send files to other users or devices

 

As jobs arrive, they are parsed and compressed, converted to new formats if needed, and delivered to remote locations or users.  Encryption and multiple compression techniques are used to transfer documents quickly and with low overhead.

 

Remote locations run CirrusPrint system client software, which is designed to maintain a connection to the CirrusPrint server and receive, decompress, and deliver documents to printers or file locations that are local to the client.  Users can run the CirrusPrint browser client, which maintains a connection to the server and receives documents for viewing.

 

Software Components

 

Server

The Server is installed on a system where the printing application is running, or on another system on the local network where that application runs.  In a public cloud environment, it is best run in the same data center as the printing application to reduce data usage charges, though this is not a requirement.  In fact, it is possible to run a secure spooling application, such as CUPS, in front of CirrusPrint to allow secure submission of print jobs over public networks.  The role of the server is to receive print jobs or documents, parse and spool them, and deliver them to remote printers or users as quickly as possible, either immediately or as soon as a remote location connects.

 

The server can be accessed using any modern browser, such as Chrome, Internet Explorer, Firefox, and others.  It is configured to use either Apache or Nginx web servers, running a private instance distinct from any other web servers on the machine.  If there are no other web servers, it can listen on standard HTTP/HTTPS ports (80/443), or it can be configured to listen on private ports 8482 and 8483, or any other ports desired.

 

A login page is presented, followed by a menu offering server monitoring tools, and if you are logged in as an administrator, configuration tools.  A default admin login with a random password is created on initial startup.  You can obtain the password with a command line request when logged in as root on Linux or Administrator on Windows: cp20s -getpass admin, or via the Windows manager.  This administrative login should be changed as part of the initial configuration, using the Users tool.

 

The CirrusPrint server supports multiple companies or groups in a single installation, so it is suitable for use by ISP's and hosting organizations.

 

System Clients

Clients are configured to connect with a Server.  When started, the client connects to a server, logs in, and waits for document deliveries.  The client and server communicate using techniques to reduce the amount of data that is transferred.  Both standard compression and patented compression techniques are used to dramatically reduce the amount of data that is transferred between the application and remote printers or files.

 

Browser Clients

An HTML5 application, with support for offline use, enables a "location" to be a user's mobile or desktop browser.  When print documents are delivered, they are first converted to PDF format (other document types are sent unmodified).  The browser stores the documents locally to provide viewing access even when offline.  Any given user can use any number of browser clients on different devices, all synchronized with one another while at the same time offering local saved copies on specific devices.

 

Configuration

 

Locations and Users

Remote locations are where client software is installed, on the system or network where printing or document viewing takes place.  Users are special locations that run the browser client, on a desktop system or mobile device.  A system client can receive print jobs or files and deliver them to local (to the client) printers, commands, a viewer, or file system locations.  A browser client can receive jobs, typically converted to PDF format, store them in the browser, and display them on demand.

 

Local Sources (Inputs)

Inputs to the server include network ports, server-side file system paths, and email addresses. Port inputs function just like printers with network ports.  Applications and spoolers can be configured to print to these ports.  Path inputs are simply folders or directories on the server which are monitored for new files, optionally matching naming patterns.  Email inputs are dedicated email addresses which are monitored for PDF attachments, with anti-spam features to prevent printing or forwarding unwanted documents.

 

Remote Devices (Outputs)

Remote devices are configured printers, files, or commands that a remote client delivers a job to.  Jobs can be sent to printer devices by name, network address, or a share name.  For printing, the format of the input data is normally maintained when sending to the output device.  This is important to maintain print job features such as duplex and tray control.  However, CirrusPrint can also convert data to ensure compatibility with the device.  For example, an email source might receive PDF files, but the output may need to be converted to PCL6 for printing, or a PostScript job sent by network port can be converted to PDF for a browser user.

 

A browser user is a special type of device, simply called "browser".  It runs the browser client software to receive, display, and forward documents.  This feature enables the concept of printing to a user rather than a printer, delivering documents faster and with less clutter than emailing them.  A browser user can login to the server from any number of devices, both desktop and mobile.  The user's documents are synchronized across devices when they connect.