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

Введение


Одно время я работал сервисным инженером в подрядной организации, сотрудничающей с крупной ит-аутсорсинговой компанией. В числе клиентов этой компании были несколько торговых сетей и один банк. Им она предоставляла техническую поддержку 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/ценности

Комментарии (5)


  1. medved6216
    03.07.2015 19:04
    +3

    Открывая статью, прочитав заголовок, надеялся увидеть решения автоматизации торговли, даже со стороны сервисного инженер: настройка оборудования, серверов, терминалов. А увидел программы для подключения к удаленному рабочему столу. Но раз пошло такое дело: TeamViewer — вам придется заплатить, чтобы использовать это в коммерции. VNC — чтобы это использовать, Вам необходимо находится в локальной сети предприятия, а все крупные предприятия имеют между своими офисами VPN соединение. Расскажите лучше о построении такой сети и настройки оборудования для автоматизации торговли, о применяемых методах защиты сети и т.д. Про helpdesk и так много информации.


    1. dance000
      03.07.2015 23:17

      1. Полностью согласен, я тоже ожидал некоторых технических подробностей в вопросе автоматизации, но прочитал лишь про настройку VNC. Жаль что ожидания не всегда соответствуют действительности )
      2. Насколько интересен будет опыт автоматизации? Я занимаюсь автоматизацией магазинов, ресторанов и т.д. более 8 лет. Какое именно направление и какие вопросы были бы на ваш взгляд более интересными для освещения?


      1. medved6216
        04.07.2015 00:52

        Было бы вообще интересно узнать об автоматизации торговой точки(магазин, ресторан и т.п.), возможно даже интернет-магазин: с чего начать, примеры проектов автоматизации, варианты автоматизации, результаты автоматизации (на сколько сокращаются расходы), способы организации ЛВС организации при автоматизации, организация безопасности сети, что отдается на аутсорсинг и т.д. Эту тему можно раскрывать очень долго и есть чего много рассказать.


        1. dance000
          04.07.2015 13:01

          хм, после выходных попробую скомпоновать в удобочитаемый текст )


        1. saboteur_kiev
          06.07.2015 02:16

          Интернет-магазин очень удобно начинать с розничного магазина.

          Когда-то я участвовал в создании первой в UA интернет-аптеки, но была база — розничная сеть по Киеву, на базе одной из центральных аптек сделали обработку заказов.

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

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

          Оператор-провизор тоже уже не нужен, можно взять любого человека, который набирает хотя бы тремя пальцами, главное вежливость и аккуратность.

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

          p.s. Кстати, кроме teamviewer есть бесплатные решения, например rmansys.ru/order/price/#free_lic
          Бесплатная версия доступна в коммерческом использовании, правда с лимитами.
          Ну и вообще, если платить, то у тимвивера цены заоблачные, есть более дешевые решения с аналогичным функционалом (то есть возможность логинится за нат), остальной функционал как бы есть везде.