Pull to refresh

Автоматизация торговли: взгляд сервисного инженера

Reading time7 min
Views8.9K
В статье рассказывается о применении программ для управления удаленными рабочими столами компьютеров в технической поддержке в современных торговых сетях.

Введение


Одно время я работал сервисным инженером в подрядной организации, сотрудничающей с крупной ит-аутсорсинговой компанией. В числе клиентов этой компании были несколько торговых сетей и один банк. Им она предоставляла техническую поддержку POS-оборудования и офисной оргтехники. На этом опыте работы и основана настоящая статья. Представленная в ней информация будет интересна в первую очередь сервисным инженерам и сотрудникам службы технической поддержки, готовым перенять некоторую часть, не побоюсь этого слова, того передового опыта предоставления технической поддержки, к которому приобщается сервисный инженер, пришедший работать в вышеупомянутую компанию. Также статья будет полезна всем, кому не безразлична та роль, которую играют информационные технологии в современном обществе.

Автоматизация торговли


Автоматизация розничной торговли пришла в Россию в начале 2000-х с появлением торговых точек современного формата и развитием сетей розничной торговли[1]. 2014 год стал рекордным по объемам новых торговых площадей как в Москве, так и по всей России. Всего по итога года было введено 2,2 млн кв.м торговых площадей в 63 торговых центрах в 49 городах России. В Москве было открыто 14 новых торговых центров общей торговой площадью 0,68 млн кв.м[2]. Все они оснащены современным торговым оборудованием.

На каждой кассе кроме собственно фискального регистратора обычно имеется POS-компьютер, POS-монитор, POS-клавиатура, дисплей покупателя, денежный ящик, сканер штрих-кодов и считыватель магнитных карт. Не чужда работа за компьютером и директорам магазинов. Директорский компьютер также может выполнять функции сервера, хотя бывают и отдельно стоящие сервера. В некоторых магазинах существуют компьютеры для просмотра каталога товаров и проигрывания музыки для торговых центров.

В торговых точках торговых сетей, где мне приходилось бывать в качестве сервисного инженера, на кассах или рабочих местах пользователей применялись моноблоки Posiflex, POS-системы IBM SurePOS 7xx, а также обычные настольные персональные компьютеры, к которым было подключено все необходимое оборудование. На них использовались операционные системы семейства Windows, Ubuntu 10.04, а также специализированное прикладное программное обеспечение, имеющее оконный либо веб-интерфейс.

Техническая поддержка


Все это оборудование нуждается в технической поддержке, поскольку в случае поломки кассир или директор магазина не всегда могут починить его самостоятельно. Обращения пользователей в службу технической поддержки обычно осуществляются по телефону и/или через онлайн-сервисы поддержки, посредством которых пользователи могут не только зарегистрировать заявку, но и проследить ее судьбу — историю состояний/этапов ее решения.

Такая техподдержка может оказываться как ИТ-отделом торговой сети, так и силами специалистов аутсорсинговой компании.

При этом решение проблем не всегда требует выезда сервисного инженера на место их возникновения. Бывает, что техническим специалистам удается их решать с помощью программ удаленного администрирования. Среди таких программ можно назвать некоторые реализации VNC-систем (UltraVNC, x11vnc, TigerVNC, Chicken of the Vnc и другие), а также TeamViewer, основанный на закрытом протоколе передачи данных. С их помощью можно удаленно управлять рабочими столами других компьютеров.

Программы удаленного администрирования


TeamViewer — популярная и очень простая утилита. Для того, чтобы с ее помощью передать управление компьютером техническому специалисту, достаточно запустить TeamViewer и сообщить ему по телефону ID компьютера и пароль, указанные в появившемся окне TeamViewer. В свою очередь технический специалист, также запустив на своем компьютере TeamViewer и указав сообщенные пользователем данные, без труда сможет управлять удаленным компьютером.

Tv7beta_linux.png
Рис. 1. Окно TeamViewer

Для того, чтобы использовать VNC-систему, также не нужно быть хакером, но знать некоторые тонкости работы VNC-систем и протоколов передачи данных все-таки необходимо. В отличие от кроссплатформенного TeamViewer, существует несколько реализаций VNC-систем для различных операционных систем. Для подключения к VNC-серверу техническому специалисту необходимо знать IP-адрес компьютера, на котором он запущен. Также требуется, чтобы на этом компьютере был открыт 5900 порт. Для получения сообщений от VNC-сервера клиент использует 5500 порт, который также должен быть открыт на компьютере сотрудника технической поддержки. При невозможности использовать 5900 порт, VNC-соединение обычно инкапсулируется в некоторые другие сетевые протоколы.

ИТ-отделами торговых сетей для использования на компьютерах, за обеспечение функционирования которых отвечали мы — сервисные инженеры, были выбраны различные программы удаленного администрирования. В одной торговой сети использовался TeamViewer, в другой — UltraVNC, а о третьей, ИТ-отделом которой было принято смелое решение использовать на POS-компьютерах операционную систему Ubuntu 10.04, я могу с уверенность сказать лишь то, что управление удаленными рабочими столами на POS-компьютерах там тоже использовалось. Вероятно, на них работали VNC-сервера x11vnc.

UltraVNC_Viewer.png
Рис. 2. Окно UltraVNC

Также хотелось бы здесь упомянуть MacBook. В торговых сетях такие компьютеры не часто встречаются. Может быть найдется один MacBook на сто магазинов, в каком-нибудь ювелирном салоне. Однако ответственность за его функционирование также может лежать на сервисных инженерах. В состав OS X входит VNC-сервер Apple Remote Desktop. Включить его можно с помощью опции «Удаленное управление» в окне «Системные настройки» -> «Общий доступ». В качестве VNC-клиента для OS X можно назвать утилиту Chicken of the Vnc.

Chicken_of_the_VNC.png
Рис. 3. Логотип Chicken of the Vnc

Протокол передачи данных RFB


VNC-система основана на протоколе передачи данных RFB. Все названные выше реализации этой системы так или иначе выполняют правила и действия, определенные в этом протоколе. Основых действий два. Первое — передача от сервера клиенту информации о прямоугольной области экрана. Второе — передача от клиента серверу информации о нажатых/отпущенных клавишах на клавиатуре, а также информации о перемещении и нажатии кнопок мыши. Также протокол RFB позволяет установить пароль, требуемый для подключения клиента к VNC-серверу, установить размер экрана удаленного стола и количество цветов.

Практически установка параметров VNC-системы может выглядеть, например, так:

Параметры запуска VNC-сервера на компьютере far-host[3]

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

где
-geometry 800x600 — размер экрана удаленного рабочего стола
-shared — к серверу могут подключаться одновременно несколько клиентов
-forever — не завершать x11vnc после отключения первого клиента
-rfbauth ~/.vnc/passwd — при подключении клиентов требовать пароль, указанный в файле ~/.vnc/passwd
-dislay :0 — при подключении к X11-серверу использовать дисплей 0

800px-SSVNC_version_1.0.29.png
Рис. 4. Подключение к x11vnc с помощью SSVNC (Enhanced TightVNC Viewer).

Параметры запуска VNC-клиента TigerVNC на компьютере localhost[4]

TigerVNC — популярный VNC-клиент для Linux.

vncviewer -PreferredEncoding copyRect far-host:0

где
-PreferredEncoding copyRect — использовать кодирование copyRect
far-host:0 — подключиться к нулевому дисплею на хосте far-host

Здесь copyRect — это не метод объекта TCanvas из Delphi, а метод кодирования. Его использование позволяет не передавать пиксели по каналу связи, а скопировать их из копии кадрового буфера клиента. Другой метод кодирования — raw — подразумевает передачу пикселей в порядке слева-направо, сверху-вниз, что может сильно загружать канал связи. При кодировании Hextile от сервера клиенту передается информация не о прямоугольнике, а о небольших квадратах, составляющих этот прямоугольник, закодированная с помощью raw или RRE, цветов фоновых пикселей и пикселей переднего плана (background colour и foreground colour)[5]. Также при использовании TigerVNC можно выбирать методы кодирования ZRLE (сочетание Hextile и сжатия с помощью библиотеки Zlib) и Tight.

Безопасность


Интернет — незащищенная сеть. На практике, в технической поддержке компьютеров торговых сетей, VNC-соединения напрямую через незащищенную сеть обычно не устанавливаются. Для создания безопасного VNC-соединения оно инкапсулируется в протоколы SSL, SSH, а также в протоколы VPN сетей. Чтобы туннелировать VPC-соединение в протокол ssh, необходимо в дополнение к VNC-серверу установить ssh-сервер на компьютер пользователя (far-host), а на компьютере технического специалиста (localhost) выполнить, например, такую команду[6]:

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

С ее помощью данные с 5900 порта компьютера пользователя отправляются на 5900 порт компьютера технического специалиста. Тогда для подключения к удаленному рабочему столу можно использовать следующую команду:

vncviewer localhost:0

Заключение


Большинство людей сегодня волнуют здоровье, семья, близкие, получение удовольствия от работы, материальное благополучие и другие ценности[7], среди которых информационные технологии, казалось бы, стоят не на первом месте, либо вовсе отсутствуют. Однако на самом деле это не совсем так. Достаточно назвать электронную запись ко врачу, интернет-сообщества, тех же сервисных инженеров и технических специалистов, электронные книги, чтобы увидеть, что автоматизация проникла во многие сферы жизни. И, конечно, один из примеров ее проникновения в нашу жизнь, это автоматизация торговли.

Используемые источники


1. Википедия. Автоматизация торговли. wikipedia.org/wiki/автоматизация_торговли
2. 2014 год стал рекордным на рынке торговых центров Москвы
www.malls.ru/rus/news/2014-god-stal-rekordnym-na-rynke-torgovykh-tsentrov-moskvy.shtml
3. Справочное руководство по x11vnc linux.die.net/man/1/x11vnc
4. Справочное руководство по vncviewer linux.die.net/man/1/vncviewer
5. Стандарт протокола RFB 3.8 realvnc.com/docs/rfbproto.pdf
6. Фирсов И.C. Разработка программной системы сетевого мониторинга удаленных комптьютеров с использованием протокола RFB — Томск: ТГУ, 2010 inf.tsu.ru/library/DiplomaWorks/CompScience/2010/Firsov/diplom.pdf
6. VNC — Community Help Wiki help.ubuntu.com/community/VNC
7. Ценности — Википедия ru.wikipedia.org/wiki/ценности
Tags:
Hubs:
Total votes 9: ↑4 and ↓5-1
Comments5

Articles