📜 ⬆️ ⬇️

Trade Automation: A Service Engineer's View

The article describes the use of programs for managing remote desktops of computers in technical support in modern retail networks.

Introduction


At one time I worked as a service engineer in a contracting organization cooperating with a large IT outsourcing company. Among the clients of this company were several retail chains and one bank. She provided them with technical support for POS equipment and office equipment. This work experience is based on this article. The information presented in it will be of interest primarily to service engineers and technical support staff who are ready to adopt some of it, I am not afraid of this word, of the advanced experience in providing technical support to which the service engineer who came to work at the aforementioned company joins. Also, the article will be useful to anyone who is not indifferent to the role played by information technology in modern society.

Trade automation


Automation of retail trade came to Russia in the early 2000s with the advent of modern format retail outlets and the development of retail chains [1]. 2014 was a record year in terms of new retail space both in Moscow and throughout Russia. Total for the year was introduced 2.2 million square meters of retail space in 63 shopping centers in 49 cities of Russia. In Moscow, 14 new shopping centers were opened with a total sales area of ​​0.68 million square meters [2]. All of them are equipped with modern trading equipment.

In addition to the actual fiscal registrar, there is usually a POS computer, a POS monitor, a POS keyboard, a customer display, a cash drawer, a barcode scanner, and a magnetic card reader at each checkout. Work at the computer and directors of shops is not alien. A management computer can also act as a server, although there are also standalone servers. In some stores there are computers for viewing the catalog of goods and playing music for shopping centers.
')
In sales outlets of retail chains, where I had to be as a service engineer, Posiflex monoblocks, IBM SurePOS 7xx POS systems, as well as regular desktop personal computers, to which all necessary equipment was connected, were used at cash registers or user workplaces. They used the operating systems of the Windows family, Ubuntu 10.04, as well as specialized application software that has a window or web interface.

Technical support


All this equipment needs technical support, because in the event of a breakdown, the cashier or store manager cannot always fix it himself. User requests to the technical support service are usually made by phone and / or through online support services, through which users can not only register an application, but also trace its fate - the history of the states / stages of its solution.

Such technical support can be provided by the IT department of the sales network, as well as by the specialists of the outsourcing company.

At the same time, solving problems does not always require a service engineer to go to the place of their origin. It happens that technical specialists manage to solve them with the help of remote administration programs. Among such programs are some implementations of VNC systems (UltraVNC, x11vnc, TigerVNC, Chicken of the Vnc and others), as well as TeamViewer, based on a closed data transfer protocol. With their help, you can remotely manage the desktops of other computers.

Remote Administration Programs


TeamViewer is a popular and very simple utility. In order to transfer control of the computer to a technician with its help, it is enough to start TeamViewer and tell it by phone the computer ID and password specified in the TeamViewer window that appears. In turn, a technical specialist, also by running TeamViewer on his computer and specifying the data communicated by the user, can easily control a remote computer.

Tv7beta_linux.png
Fig. 1. TeamViewer window

In order to use a VNC system, you also do not need to be a hacker, but you still need to know some of the subtleties of how VNC systems work and data transfer protocols. Unlike the cross-platform TeamViewer, there are several implementations of VNC systems for different operating systems. To connect to a VNC server, a technician needs to know the IP address of the computer on which it is running. It also requires port 5900 to be open on this computer. To receive messages from the VNC server, the client uses port 5500, which must also be opened on the computer of the technical support officer. When it is not possible to use the 5900 port, a VNC connection is usually encapsulated in some other network protocols.

IT departments of retail networks for use on computers, for the functioning of which we were responsible - service engineers, selected various programs of remote administration. TeamViewer was used in one trading network, UltraVNC was used in the other, and the third, which IT department made a bold decision to use the Ubuntu 10.04 operating system on POS computers, I can say with confidence that the management of remote desktops on POS- computers were used there too. Probably, the x11vnc VNC servers worked on them.

UltraVNC_Viewer.png
Fig. 2. UltraVNC window

I would also like to mention here a macbook. In trading networks such computers are not often found. Maybe there is one MacBook in a hundred stores, in some jewelry salon. However, the responsibility for its operation may also lie on the service engineers. OS X includes the Apple Remote Desktop VNC Server. You can enable it using the “Remote Management” option in the “System Settings” -> “Sharing” window. As a VNC client for OS X, you can call the utility Chicken of the Vnc.

Chicken_of_the_VNC.png
Fig. 3. Chicken of the Vnc Logo

RFB Data Transfer Protocol


The VNC system is based on the RFB data transfer protocol. All the above-mentioned implementations of this system somehow fulfill the rules and actions defined in this protocol. There are two main actions. The first is to transfer information about the rectangular area of ​​the screen from the server to the client. The second is the transmission from the client to the server of information about the keys pressed / released on the keyboard, as well as information about moving and clicking the mouse buttons. Also, the RFB protocol allows you to set the password required to connect the client to the VNC server, set the screen size of the remote table and the number of colors.

In practice, setting the parameters of a VNC system might look like this:

VNC server startup options on far-host computer [3]

x11vnc -geometry 800x600 -forever -shared -rfbauth ~ / .vnc / passwd -display: 0

Where
-geometry 800x600 - the size of the remote desktop screen
-shared - several clients can connect to the server at the same time
-forever - do not terminate x11vnc after disabling the first client
-rfbauth ~ / .vnc / passwd - when connecting clients, require the password specified in the file ~ / .vnc / passwd
-dislay: 0 - when connecting to the X11-server, use the display 0

800px-SSVNC_version_1.0.29.png
Fig. 4. Connect to x11vnc using SSVNC (Enhanced TightVNC Viewer).

Tigervnc VNC client startup options on localhost [4]

TigerVNC is a popular VNC client for Linux.

vncviewer -PreferredEncoding copyRect far-host: 0

Where
-PreferredEncoding copyRect - use copyRect encoding
far-host: 0 - connect to the zero display on the far-host host

Here, copyRect is not a method of a TCanvas object from Delphi, but an encoding method. Its use makes it possible not to transfer pixels over a communication channel, but to copy them from a copy of the client's frame buffer. Another coding method - raw - involves the transfer of pixels in order from left to right, top to bottom, which can greatly load the communication channel. When encoding Hextile from the server, information about the small squares that make up this rectangle, encoded with raw or RRE, background and foreground colors and background pixels (5), is transmitted to the client not from the rectangle. Also, when using TigerVNC, you can choose ZRLE coding methods (a combination of Hextile and compression using the Zlib library) and Tight.

Security


The Internet is an unsecured network. In practice, in technical support of computers of retail networks, VNC connections directly through an unprotected network are usually not established. To create a secure VNC connection, it is encapsulated in SSL, SSH, and VPN protocols. To tunnel a VPC connection to the ssh protocol, you need to install an ssh server on the user's computer (far-host) in addition to the VNC server, and execute, for example, the following command on the technician's computer (localhost):

ssh -L 5900: localhost: 5900 powerdog @ far-host

With its help, data from the 5900 port of the user's computer is sent to the 5900 port of the computer technician. Then you can use the following command to connect to the remote desktop:

vncviewer localhost: 0

Conclusion


Most people today are concerned about health, family, loved ones, getting pleasure from work, material well-being and other values ​​[7], among which information technologies, it would seem, are not in the first place, or are completely absent. However, this is not really the case. It is enough to name the electronic record to the doctor, the Internet community, the same service engineers and technical specialists, e-books to see that automation has penetrated into many areas of life. And, of course, one of the examples of its penetration into our life is the automation of trade.

Sources used


1. Wikipedia. Automation of trade. wikipedia.org/wiki/automatization_trade
2. 2014 was a record year in the market of shopping centers in Moscow
www.malls.ru/rus/news/2014-god-stal-rekordnym-na-rynke-torgovykh-tsentrov-moskvy.shtml
3. The x11vnc reference guide linux.die.net/man/1/x11vnc
4. Handbook for vncviewer linux.die.net/man/1/vncviewer
5. RFB 3.8 protocol standard realvnc.com/docs/rfbproto.pdf
6. Firsov I.C. Development of a software system for network monitoring of remote computers using the RFB protocol - Tomsk: TSU, 2010 inf.tsu.ru/library/DiplomaWorks/CompScience/2010/Firsov/diplom.pdf
6. VNC - Community Help Wiki help.ubuntu.com/community/VNC
7. Values ​​- Wikipedia ru.wikipedia.org/wiki/values

Source: https://habr.com/ru/post/261765/


All Articles