Smartix e-queue system architecture

We present an architectural description of our electronic queue components and summary of used technologies.

Architecture diagram

1. In the system, the head company, territorial offices and their branches are set up, linked to locations and differentiated by administration rights.

2. Each office is associated with displays and kiosks located inside these offices and employees, who can register and log in to the system.

3. Operator’s workplaces are points for customer service. When an employee is authorized at the workplace, he chooses the functionality that he is ready to perform (servicing legal entities, individuals, general issues, etc.) within the system.

4. The electronic queue system use interface of the ticket kiosks to invite customers to receive queue ticket for the desired direction (loans, deposits, other issues, etc.).

5. Depending on the employee’s working functionality (types of applications that a particular employee can/ready to process), the electronic queue system sends an application to a suitable operator’s workplace.

System take into account the workload of workplaces, intersection of applications between tables is supported, which can equally process different types of applications.

When the ticket’s queue comes up, information on the display is updated and client is called to the table with the employee linked to the system.

Applications distribution algorithm

1. For each type of application (loans, deposits, other issues, etc.) system takes into account free, busy and inactive operator’s workplaces.

2. When the next client is called, after the exception of busy and inactive employees, the one who processed the least number of requests for the specified period is selected from all free employees.

Single server

Technologies

Our solution is developed using only free technologies, which means that it does not require the purchase of third-party licenses, Linux OS can be used as a basis. The launch of the electronic queue system does not imply any additional payments, except for the acquisition of a license for the electronic queue itself and payment for commissioning.

  • PostgreSQL — DBMS ver. 12 and higher
  • ActiveMQ — message broker
  • Бэк-офис/Back office/Operator’s workplace — Spring/SpringBoot
  • Rest service for ticket kiosks — Spring/SpringBoot
  • Rest service/Web application for electronic displays — Spring/SpringBoot
  • Background system process (Daemon) — Java
  • Front-end server — Nginx

Deployment scheme

In accordance with this scheme, the solution server can be launched exclusively within the internal network of the organization. Access to the global Internet is required only for the speech synthesis service.

Security

  • Provides role-based access policy within the back- and front-office, configurable by groups, in accordance with customer requirements
  • Data transfer between the server and clients is carried out using the https protocol with encryption
  • Ticket kiosks and electronic displays use unique details — login and password to access the server

Reliability

The WebSocket protocol is used to exchange information — each connection of a workplace or an electronic display creates a WebSocket connection. When changes are made on the server, all information is transmitted in real time to client devices.

WebSocket is not only an advanced technology, but also the ability to completely abandon the poll method, which significantly reduces the load and allows the system to expand — connect more client devices based on the same amount of hardware resources. Additionally, WebSocket allows to instantly respond to any changes that occur on the server.

Ticket kiosk

  • UI: Application for electron (electron v 8.3 and higher)
  • Background process — Java
  • Complete ISO image for ticket kiosks based on Fedora 32 Linux distribution

Electronic display

  • Latest Firefox version
  • Complete ISO image for electronic displays based on Fedora 32 Linux distribution

Features of complete ISO images

  • Fully updated OS
  • Installed required Runtime Environment (Java 11, electron 8.3)
  • Created and configured users, under which the applications run
  • Configured sudoers (allowed to run some utilities as root to fully automate work. For example, the software can change the time zone)
  • Added required system services
  • The launch of electronic queue applications is fully scripted. In case of crashes repeated restart is implemented
  • Added openvpn
  • Configured sshd for enhanced security (root login restriction, special user for remote key-only login)
  • Installed and configured firewalld
  • Installed and configured fail2ban for strong sshd protection
  • Available replace of desktop wallpapers, logos and icons

Any changes can be made according to customer requirements. Builds can be prepared individually for a specific client.

We use modern technologies, pay attention to the reliability and safety of the solution. Our electronic queue meets all the basic requirements for systems of this class, if necessary, the components can be adapted to the customer.