Skip to main content
Skip table of contents

MyQ Architecture

MyQ Servers and applications

MyQ is a distributed system made of servers and client applications. The image below depicts a high level overview of all the components and main communication channels. Each component usually runs on its own computer be it a server, a PC, a mobile phone, or a printer.

MyQ Servers and apps overview

The Central Server is responsible for the Site Servers configuration, reporting, and licensing. Site Servers still need additional individual configuration.

A Site Server is responsible for print job spooling, scan delivering, user interaction with printers, printer monitoring, and much more.

MyQ Desktop Client is an additional application running on users' PCs. It offers user authentication and identification, project and cost-center selection, local printer monitoring (mostly USB), client spooling and many other features.

The OCR Server is used for Optical Character Recognition in scan jobs. An OCR server uses a lot of resources, so it usually runs on its own machine.

The MyQ X Mobile Client is used for native printing on iOS, macOS, and Android devices.

The Mobile Print Agent gives users access to printers via AirPrint (for iOS), and Mopria Print Service (for Android smart phones or tablets). It usually runs on its own machine with access to a Wi-Fi network where mobile devices can discover it. 

Print Server from the OS process perspective

In the image below, you can see what OS processes are running on a Print Server, and what the main communication channels are.

OS processes on a Site server

The heart of the system is the Print Server. It's based on the WSF Platform – MyQ’s platform for network services development. MyQ specific logic is implemented as Platform services, which are packaged in plugin*.dll files. These plugins are written in C++ and a few of them also in C#. WSF Platform also supports services implemented in PHP. PHP doesn't support DLLs, so the platform services implemented in PHP are invoked via a set of php.exe workers.

The Print Server also manages a set of Job Processor workers which are used for job parsing. The Job Processor is running as a process and not as a part of the Print Server, to avoid its failure in case of the Job Processor’s failure.

As a network server, Print Server Service is responsible for receiving print jobs via LPR, IPP, and other protocols. It also handles Messages, which is our push-notification engine. Messages are used to notify clients about events in the system.

Apache is an HTTP server for our Web UI and MyQ REST API. Both applications are implemented in PHP. Apache is maintaining a set of php-cgi.exe workers to handle execution.

HTTP Router is our reverse proxy through which all incoming HTTP based traffic flows. Its main functionality is TLS termination.

Terminal Packages implement the embedded terminal for a specific vendor. They expose their own API used by the printers.

PM Server is a component created by Kyocera. It provides API to configure Kyocera devices and to install the embedded terminal application. PM Server uses the Thrift technology to implement its API. MyQ is also providing part of its API via Thrift, so the PM Server can access it.

Many of the components use the Database Server to store data. Furthermore, many of the components including Firebird, store their data in the MyQ Data Folder which is located by default in C:\ProgramData\MyQ. In production, this folder is typically located on a network drive.

Executable names

Friendly name

Executable name

Alternative names

HTTP Router



HTTP Server



Database Server



Print Server


Kyocera Provider


PM Server



Terminal Package

Job Processor


*used for vendor name

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.