Взаимодействие RPA с виртуальными средами: опыт UiPath

 Для корректного взаимодействия RPA с приложением программные роботы должны иметь доступ к каждому элементу его интерфейса: к примеру, «видеть» кнопку, понимать ее взаимосвязь с окном, название, подпись. Однако при работе с удаленным рабочим столом у робота нет возможности получить такую информацию. Инструменты компьютерного зрения позволяют роботам визуально распознавать любые элементы на экране, как если бы это делал человек. Как — объясняем в статье.

d95f896d206a3257fadc6e8d3f7cfc9a.png

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

Однако не все так просто. В процессе настройки такого взаимодействия разработчики используют «селекторы», которые идентифицируют элементы приложения, такие как кнопки, текстовые поля, таблицы. Селекторы разбивают все элементы рабочего стола по тегам и классам и «подсказывают» программным роботам их специфику и назначение. Благодаря этому достигается высокая точность действий программных роботов.

Казалось бы, что может быть лучше? Но есть одна проблема — в ряде случаев, например, если пользователи используют виртуальные машины, отечественные Linux-дистрибутивы вроде Astra Linux, AltLinux и РедОС, или же работают в операционной системе MacOS, этот подход попросту не работает, так как единой системы селекторов между разными операционными системами нет. Для взаимодействия с такими средами обычно используют виртуальные рабочие столы (VDI) или средства удаленного доступа (RDP). А они лишь передают «картинку» интерфейса и принципиально не предоставляют сведений о внутренних элементах приложений.

Как решают проблему интеграции RPA и VDI/RDP

Раньше для того, чтобы настроить работу RPA-инструментов с VDI или RDP разработчики заранее задавали координаты для программных нажатий мышкой. Однако это требовало выполнения целого ряда условий:

  • определенного разрешения экрана при подключении к удаленному рабочему столу, которое не должно было изменяться;

  • запуска приложений в полноэкранном режиме;

  • ограничения автоматических обновлений с целью предотвращения любых изменений интерфейса, которые могут привести к несоответствию заданных и фактических координат.

Кроме того, процесс был достаточно трудоемким: по данным UiPath, при таком подходе программисты затрачивали в три раза больше времени на одну только разработку. А ведь при любом обновлении приложения все приходилось начинать с начала.

Со временем компании-разработчики предложили менее ресурсозатратные варианты решения проблемы. К примеру, у UiPath появился специальный сертифицированный плагин для ИТ-продуктов на базе Citrix и RDP, который позволяет идентифицировать элементы приложений (кнопки, поля ввода и др.) и использовать селекторы на удаленных рабочих столах. Разработка роботов для VDI с использованием такого расширения проходит так же, как если бы это был обычный десктоп. Однако и его возможности небезграничны. Во-первых, применение плагина ограничено ИТ-продуктами на базе Citrix или RDP. Во-вторых, далеко не все компании могут оперативно развернуть плагин из-за внутрикорпоративных стандартов безопасности. Так, многие ИБ-специалисты не доверяют аудитам, проведенным в других компаниях, и требуют проведения дополнительных проверок. А это может задержать проект на полгода, а то и больше.

В качестве альтернативы RPA-разработчики могут применять появившиеся на рынке системы компьютерного зрения. Технологии Computer Vision используют нейронные сети и инструменты оптического распознавания для того, чтобы «видеть» любые изображения, как если бы на них смотрел человек: оптическое распознавание позволяет понимать текст на экране, а нейронная сеть, получив изображение, может определить, к примеру, что на изображении является кнопкой, а что полем ввода. Другими словами, она выделяет элементы приложения практически так же, как это делает селектор. Таким образом изменение цвета, шрифта, размера или разрешения картинки для CV-алгоритмов не является препятствием.  

Хотя такой подход позволяет повысить успешность нахождения текстовых полей и кнопок с надписями, все же остается проблема с полями ввода, выпадающими списками и прочими компонентами форм, которые обладают схожим графическим представлением и не содержат текстового описания. Например, если на экране будет десять похожих полей ввода, робот не сможет понять, какое из них нужно использовать. Кроме того, использование технологий Computer Vision в RPA требует высоких компетенций от разработчиков.

Так выглядит результат анализа визуального содержимого экрана удаленного рабочего стола российского дистрибутива Astra Linux с запущенным 1C 8.3 для LinuxТак выглядит результат анализа визуального содержимого экрана удаленного рабочего стола российского дистрибутива Astra Linux с запущенным 1C 8.3 для Linux

UiPath Computer Vision: как программные роботы начинают «видеть»

Несколько лет назад компания UiPath представила свою новую разработку — AI Computer Vision. Технология компьютерного зрения от UiPath позволяет не только определять элементы форм, но и четко идентифицировать их на основании расположенных рядом других элементов. Каждое поле, выпадающий список, и любой другой элемент формы может быть привязан к соответствующей надписи или даже сразу к нескольким другим элементам. Настройка взаимодействия робота с распознанными элементами на экране происходит точно так же, как при их выборе в обычном приложении, что позволяет выполнять настройку Computer Vision без дополнительной подготовки.

Как это использовать?

·         Базовые действия: Click, Hover, Type Into, Get Text

Каждый робот должен уметь справляться с простейшими действиями: кликом мышкой, вводом и получением текста. Алгоритмы Computer Vision «видят» элементы экрана и помогают роботу управлять ими, как если бы это происходило на обычном десктопе.

Активность CV Click в интерфейсе UiPath Studio Активность CV Click в интерфейсе UiPath Studio

Функция CV Click имитирует работу с мышью. Робот может выполнить нажатие левой кнопки мыши, правой, а также двойное нажатие на левую кнопку мыши по указанному компоненту. Как и при настройке обычных приложений, достаточно просто выбрать распознанный компонент на экране. Если же алгоритм Computer Vision обнаружил, что на экране есть похожие элементы, будет предложено выбрать так называемые «якоря». Это другие компоненты формы, которые, находятся рядом с нажимаемым элементом и могут помочь выявить его однозначно.

Процедура выбора якорей для элемента управленияПроцедура выбора якорей для элемента управленияАктивность CV Hover в интерфейсе UiPath StudioАктивность CV Hover в интерфейсе UiPath Studio

Некоторые программы не предполагают использование роботов и дают возможность взаимодействия с элементами управления только после наведения мыши на них. Именно для таких случаев предназначена функция CV Hover, которая позволяет переместить курсор на выбранный элемент.

Активность CV Type Into в интерфейсе UiPath Studio Активность CV Type Into в интерфейсе UiPath Studio

Функция CV Type Into производит ввод текста в выбранный элемент.

Выбор поля Выбор поля «Что искать» с использованием якоря на соответствующей текстовой меткеАктивность CV Get Text с получением значения поля в интерфейсе UiPath StudioАктивность CV Get Text с получением значения поля в интерфейсе UiPath Studio

Функция CV Get Text позволяет извлечь текст как из конкретных полей и надписей, так и с выделенной области приложения.

Активность CV Get Text с получением значения из области приложенияАктивность CV Get Text с получением значения из области приложенияПример выбора области для захвата данных, который осуществляется с привязкой к якорюПример выбора области для захвата данных, который осуществляется с привязкой к якорю

Если все эти базовые действия все же можно при желании выполнить с помощью заранее заготовленных координат, есть целый набор действий, который без Computer Vision выполнить крайне сложно и трудозатратно. Это так называемые «специальные действия».

·         Специальные действия

Активность CV Extract Table в интерфейсе UiPath StudioАктивность CV Extract Table в интерфейсе UiPath Studio

Недавно появившаяся функция CV Extract Table позволяет считать с приложения удаленного рабочего стола таблицу данных в формате классической DataTable. С таблицей можно выполнять любые действия: например, сохранить таблицу в Excel-файл, произвести отправку нескольких писем по каждой строчке, перенести информацию из нее в другую систему.

Пример сохранения таблицы из 1С, которая запущена на удаленном рабочем столе под управлением Astra Linux в файл ExcelПример сохранения таблицы из 1С, которая запущена на удаленном рабочем столе под управлением Astra Linux в файл ExcelАктивность CV Check в интерфейсе UiPath StudioАктивность CV Check в интерфейсе UiPath Studio

Функция CV Check дает возможность нажимать на «чекбоксы» — графические элементы экрана, позволяющие пользователю управлять состояниями включено/выключено.

Активность CV Dropdown Select в интерфейсе UiPath StudioАктивность CV Dropdown Select в интерфейсе UiPath Studio

Функция CV Dropdown Select позволяет выбрать из поля со списком значение, переданное в самой активности. Это может быть как заранее заданное значение, так и значение, полученное из другой системы.

Активность CV Element Exists в интерфейсе UiPath StudioАктивность CV Element Exists в интерфейсе UiPath Studio

Функция CV Element Exists позволяет проверить, есть ли на экране определенный элемент. Как правило, эта функция применяется для контрольной проверки, произошло ли открытие какого-то специфического окна или вкладки после выполнения предыдущих действий.

Функция CV Highlight подсвечивает элементы на экране. Эта активность необходима для случаев, когда необходимо обратить внимание пользователя на какое-либо значение или изменение в программе.

Таким образом, благодаря использованию компьютерного зрения робот может выявлять и управлять различными элементами VDI-интерфейса даже без селекторов. RPA-инструменты могут идентифицировать элементы на экране по шаблону, определить их специфику и выполнить любое действие, которое предусмотрено программой.

Как начать пользоваться UiPath Computer Vision

Сегодня есть три способа начать работу с технологией UiPath Computer Vision:

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

2.       Установить  собственный сервер. Такой вариант не требует подключения к Интернету и может быть установлен как на Windows, так и на Linux. Однако собственный сервер  обладает рядом требований к ИТ-инфраструктуре компании.

3. Использовать набор активностей UiPath Computer Vision Local Server Pack. Набор активностей — упрощенный вариант собственного сервера. Он не предъявляет особенных требований к IT-инфраструктуре компании, но обладает меньшей функциональностью. Например, в нем недоступна функция считывания таблиц, а сами возможности распознавания работают не так качественно, как в полноценной версии. 

Выбор оптимальной модели развертывания UiPath Computer Vision зависит от задач и возможностей каждой конкретной  компании. Однако, как правило, облачный сервис в компаниях используют на этапе планирования и разработки процессов, а локальный сервер устанавливают уже при переходе к промышленной эксплуатации решения. Использование Computer Vision Local Server Pack рекомендуется в тех случаях, когда выполняется работа с приложениями, имеющими простой интерфейс без множества вкладок, кнопок и надписей.

Будущее, которое уже наступило

По данным Statista, уже сейчас больше половины предприятий во всем мире используют технологии виртуализации. И их число неуклонно растет. С учетом этого тренда в ближайшем будущем разработчики RPA будут все чаще встречаться с проблемой настройки взаимодействия с приложениями через VDI и удаленный рабочий стол. Переход к использованию решения UiPath Computer Vision позволит им снизить трудозатраты на разработку процессов роботизации и их встраивание в текущую инфраструктуру компании.

© Habrahabr.ru