robotic process automation что это
Основы RPA: программные роботы и зачем они нужны
Многие наши читатели хорошо знают, что такое RPA, но тем не менее, мы часто встречаем на Хабре вопросы о программных роботах, и поэтому решили подготовить статью об основах роботизированной автоматизации. Те, кто не до конца понимают, что же такое программные роботы, смогут узнать что-то новое, а опытные читатели повторят основы RPA.
Статья написана при поддержке технического эксперта UiPath: Кристины Виролайнен.
Зачем нужен RPA
«. если бы вы были фермером, стали бы вы покупать трактор с позитронным мозгом, жатку, борону, доильный аппарат, автомобиль и так далее — всё с позитронным мозгом? Или приобрели бы обычную технику и одного позитронного робота, который мог бы на ней работать? Причем хочу вас предупредить, что второй вариант в пятьдесят, а то и в сто раз дешевше.»
А. Азимов «Стальные пещеры» 1953 г.
Введем определение: Robotic Process Automation — роботизированная автоматизация бизнес-процессов, такая автоматизация базируется не на классическом подходе с использованием программирования и API систем, а на применении программных роботов, которые работают с пользовательским интерфейсом (GUI) ваших систем. При этом роботы могут работать и с API, если системы его предоставляют.
Применение RPA
Два главных эффекта от внедрения роботизации — RPA обеспечивает бизнесу снижение затрат и повышение эффективности рабочих процессов.
IТ-специалисты полагаются на RPA для развертывания приложений и мониторинга сетевых устройств. RPA является идеальным решением для удаленного управления IТ-инфраструктурой, потому что может находить и устранять проблемы быстрее, чем человек, и делать это в режиме 24/7.
Финансовые и бухгалтерские отделы используют RPA для устранения человеческих ошибок и оптимизации времени ввода данных: обработка списаний, поступлений, выставление счетов — всё это задачи для робота.
В центрах обработки клиентских запросов и в приложениях для обслуживания клиентов роботы могут помогать сотрудникам поддержки, повышая их производительность. Таким образом, человеческие ресурсы могут быть перераспределены для решения более сложных вопросов. Робот найдет информацию о клиенте сразу во всех системах и представит сотруднику поддержки полную информацию с историей его обслуживания. Таким образом сотрудник контакт-центра тратит свои ресурсы на помощь клиенту, а не на работу с бизнес-приложениями и поиск информации.
Отделы кадров полагаются на роботов в оформлении сотрудников, отпусков, больничных, переводов и увольнений. Например, обработка запросов от сотрудников с помощью RPA позволяет автоматически формировать и предоставлять необходимые справки и документы. Роботы могут проводить поиск и обработку резюме и откликов кандидатов — список задач не ограничен.
RPA обеспечивает интеграцию корпоративных приложений, упрощая рабочий процесс для отделов продаж. Благодаря автоматизированной роботизации отделы продаж сокращают циклы продаж и повышают показатели конверсии.
Аутсорсеры бизнес-процессов (BPO) могут легко использовать RPA для оптимизации управления клиентскими операциями.
Роботы способны быстро взять на себя возросшую нагрузку. Например, во время пандемии в рамках господдержки были введены льготные кредиты для предприятий малого и среднего бизнеса. Это привело к большому потоку заявок на такой кредит. Один банк, решая проблему возросшей нагрузки на персонал, за 3 недели роботизировал процесс обработки и проверки заявок на льготный кредит. Это позволило принимать большее число заявок и помогло многим предприятиям: в день робот обрабатывал от 500 до 1500 заявок, а средняя скорость работы с одной заявкой увеличилась в 5 раз. Банку удалось снять рутинную нагрузку с 3000 своих сотрудников, что позволило им работать в штатном режиме.
RPA — роботы, которые не видны
В течение многих лет роботы играли важную роль в производстве. Под роботами обычно привыкли понимать устройства, выполняющие полезную работу без участия человека. Все мы хорошо представляем себе завод и роботов, которые насыпают продукт, упаковывают, наклеивают этикетки, и делают массу другой полезной работы. Но существуют и программные роботы — эти программы способны производить вычисления и автономно решать поставленные им задачи.
По сути программные роботы имитируют действия человека: они могут видеть элементы открытых приложений; понимать, где находятся кнопки, поля для ввода, текст, таблицы и другие интерактивные элементы интерфейса. Роботы «знают», что им нужно сделать — нажать на кнопку, ввести данные, и делают это. Главная сила программных роботов — их способность взаимодействовать с пользовательским интерфейсом. Это дает возможность автоматизировать длинные сквозные процессы, в которых задействовано множество систем. При этом мы не привязываемся к наличию API у систем: могут быть роботизированы как стандартные офисные приложения, так и сложные ERP-системы, и даже самописные или legacy-приложения, классическая интеграция с которыми невозможна. В общем, любые системы и приложения, с которыми может работать человек, могут быть автоматизированы с использованием роботов.
Робота можно представить, как умного стажера: вы даете ему задачу скопировать данные из файла Excel и занести их все в 1С, или наоборот. С этой задачей идеально справится робот, но, конечно, он умеет не только копировать и переносить данные. Робот также может проводить простую аналитику, а с помощью ИИ — обрабатывать данные по сложным алгоритмам. Классическими примерами использования роботов являются финансовые процессы: проведение сверок с контрагентами, расчет заработной платы, обработка больничных листов и др.
Чтобы не запутаться в терминологии, добавим: робот — программа, которая выполняет роботизированные процессы. Один робот может выполнять и процессы для бухгалтерии, и процессы для кадров. Вы можете роботизировать несколько процессов, имея всего одну лицензию робота.
Преимущества роботизации в компании
Благодаря RPA можно по-новому взглянуть на бизнес-процессы. Эта технология позволяет автоматизировать множество корпоративных функций: от бэк-офиса до удаленной IТ-инфраструктуры. Вот основные преимущества роботизации:
Сотрудники могут сосредоточиться на более интеллектуальной работе, а не на повторяющихся рутинных задачах. Избавившись от необходимости выполнять повторяющиеся механические задачи, у людей появляется время максимально использовать свой потенциал, они вдохновляются решением сложных нетривиальных задач. Производительность труда в таком коллективе возрастает.
Роботы не ошибаются — возможность ошибки полностью исключена. Человек может некорректно вводить текстовые и цифровые данные, робот же всегда действует по указанной инструкции и никогда не опечатывается.
Робот — цифровой сотрудник, который справится с работой, которую можно делать по инструкции. Он отлично выполняет такие операции, как:
Копировать и распознавать текст.
Вставлять скопированный текст в другие системы и формы.
Выполнять действия в приложениях.
Работать со сканами документов. Роботы могут использовать сторонние движки для распознавания текста, чтобы потом работать с текстом.
Работать с базами данных и госсистемами.
Отправлять сообщения в мессенджерах.
Выполнять другие простые и рутинные операции.
RPA значительно сокращает время, необходимое для выполнения широкого спектра бизнес-процессов, включая обработку поступлений, обслуживание клиентов и любые другие процессы, требующие доступа к нескольким существующим IТ-системам. Производительность предприятия возрастает по мере сокращения времени рабочего цикла и транзакций.
Бизнес-аналитика более надежна и легкодоступна. Каждая транзакция, совершенная с помощью RPA, записывается в журнал. С помощью этих данных можно всесторонне анализировать любые завершенные процессы.
Если необходимо, робот может спрашивать у человека помощи и ждать его ответа.
Выполняет операции в 10-20 раз быстрее человека.
Не ошибается и работает 24/7.
Помогает бизнесу расти без увеличения персонала.
Какие есть альтернативы?
У роботизации есть два основных конкурента:
Ничего не менять и работать по-старому.
Использовать классическую автоматизацию бизнес-процессов.
У каждого из путей есть свои плюсы и минусы. Программные роботы — не панацея: если процесс имеет большое число ветвлений и исключений, или часто требуется принятие интеллектуальных решений человеком — лучшим вариантом будет оставить этот процесс на ручном исполнении.
Классическая автоматизация может выигрывать тогда, когда требуется автоматизация работы в одной системе. Например, в статье «Лайфхаки для роботизации 1С» мы отмечаем, что при необходимости автоматизации работы в 1С и, уже имея компетенции разработки в этой системе, дешевле будет провести автоматизацию классическим способом.
Однако, когда в процессе задействовано более одной системы, роботизация значительно обходит по эффективности классическую автоматизацию.
RPA-решения имеют целый ряд преимуществ по сравнению с сервисами для классической автоматизации бизнес-процессов. В первую очередь это:
Простота реализации: роботизация одного процесса занимает 2 месяца, а если роботизация поставлена на поток — то этот процесс можно сократить до двух недель. Выше мы привели пример робота, разработанного за 3 недели, и в этом же банке есть робот, разработанный за рекордных 3 дня.
Быстрый эффект — 6 месяцев до возврата инвестиций, ROI.
Роботы требуют минимум изменений в действующих IТ-системах, поскольку в этом случае работа происхолит с пользовательским интерфейсом.
Выводы
Программные роботы — эффективный инструмент по оптимизации бизнес-процессов. По сравнению с классической разработкой RPA-системы проще разворачиваются, быстрее окупаются и требуют минимальных изменений в существующих IT-системах. Параллельная автоматизация нескольких процессов с помощью одного робота позволяет повышать экономическую выгоду каждой лицензии. Сегодня программные роботы всё больше завоевывают рынок и становятся движущей силой цифровой трансформации компаний.
RPA инструменты и не только…
Однажды на работе мне поставили R&D задачу создать бота, который будет «ходить» по сайту, выбирать товары, заполнять формы и оплачивать покупки. На тот момент мы писали часть Antifraud системы, которая позволяла детектировать ботов в браузере. И с этого момента все началось.
Оглавление
Open source проекты
RPA vs Test Automation
Парсинг сайтов и RPA
Пример работы бота на Python
Как детектировать бота?
Коротко о RPA
Более четкое определение:
За время создания своего бота я нашел несколько направлений RPA:
Направления в RPA
Open source проекты
Начнем сразу с open source проектов, т.к. они представляют большой интерес.
Рассмотрим инструменты относительно языков программирования:
RPA open source
Конечно это не все инструменты, но по крайней мере основные, которые мне удалось найти. Я Python разработчик, поэтому рассмотрю только те инструменты, которые попробовал на практике.
Объединил 2 технологии в 1 короткий обзор т.к. использовал их для одной и той же задачи: создание бота, который выбирает товары, добавляет их в корзину и оплачивает покупки. Цель: сдетектировать и заблокировать бота, используя fingerprint и треки мыши. О том как детектировать ботов будет в соответствующем разделе.
Selenium
RPA Framework
Robocorp
Robocorp создала стек технологий RPA с открытым исходным кодом, чтобы можно было создавать и развертывать роботов. Также у них есть облачная платформа, куда можно деплоить созданных ботов.
TagUI
TagUI RPA
Из всех инструментов мне больше всего понравился RPA Framework, у которого есть возможность работать с Playwright, также в этом фреймворке очень удобные selector в отличие от Selenium, что позволяет гораздо быстрее писать код.
Пример на Selenium и на RPA Framework
Selenium
RPA Framework
На мой взгляд у RPA Framework более удобное API.
Платные сервисы
Сказать что их много значит ничего не сказать. Платных Enterprise версий огромное количество. Но проблема в том, что многие организации не понимают истинной разницы в возможностях одного программного обеспечения RPA и другого. Возможно, они также слышали, что RPA предназначена только для очень крупных корпораций и что минимальные первоначальные инвестиции в лицензирование могут достигать 100 000 долларов в год, что теперь не всегда так.
RPA products
Список ведущих поставщиков RPA на основе матрицы пиковых значений Everest Group для поставщиков технологий RPA 2020:
Everest группирует инструменты RPA в три основных сегмента в зависимости от их возможностей, влияния на рынок и способности успешно поставлять продукт. Everest также выделяет UiPath, Automation Anywhere, Blue Prism, Intellibot и Nividous в качестве лидеров.
UiPath vs Automation Anywhere vs Blue Prism
Компания Blue Prism, основанная в 2001 году, была пионером в секторе RPA и использовала термин «Robotic Process Automation». Четыре года спустя генеральный директор UiPath Дэниел Дайнс технически основал UiPath как компанию под названием «DeskOver». Однако только в 2015 году она действительно родилась и была переименована в RPA-компанию.
В таблице ниже представлен краткий снимок каждого из трех инструментов RPA с точки зрения доходов, размера, сотрудников и оценки:
VS
Спустя годы на рынок вышли более доступные конкуренты, такие как UiPath и Automation Anywhere с такими же (или лучшими) возможностями, повышенной гибкостью и простотой внедрения. В результате RPA была «демократизирована» для компаний любого размера во многих отраслях, включая малые и средние организации.
Automation Anywhere оценивает 4,5 / 5 звезд с 4310 отзывами
Blue Prism 4,4 / 5 звезд по 158 отзывам
Что делает UiPath самой популярной платформой RPA?
UiPath превратился в единственную платформу RPA на рынке, созданную для поддержки полного жизненного цикла автоматизации. Портфель продуктов компании продолжает оставаться в авангарде инноваций, постоянно расширяя свои традиционные возможности RPA за счет включения таких инструментов, как интеллектуальный анализ процессов, встроенная аналитика, улучшенные компоненты AI Fabric, RPA на основе SaaS и автоматизация тестирования.
Другие ключевые сильные стороны UiPath:
Long Running Workflows
Machine Learning and Predictive Analytics
Process Document Understanding
Flexible Licensing Model and Low Cost of Entry
Для точной оценки состояния RPA компаний я использовал агрегатор G2, он позволяет выбрать нужный инструмент в зависимости от различных показателей (рейтинг, цена, язык и пр.). Также можно построить G2 график для выбора инструмента, выглядит он следующим образом:
G2 Grid Мини обзор популярных и не очень RPA
UiPath
UiPath прост в установке и имеет возможности разработки на основе пользовательского интерфейса. Подробное онлайн-руководство поможет быстро освоиться. Согласно Quadrant Review компании Gartner, UiPath имеет первоклассную команду поддержки клиентов, и в целом UiPath идеально подходит для компаний, стремящихся к быстрому внедрению RPA.
GUI UiPath
Automation Anywhere
Automation Anywhere, наиболее известная своими инструментами RPA, представляет собой веб-решение RPA, которое использует программных ботов для завершения бизнес-процессов. Позволяет создавать сложные процессы RPA, обеспечивает масштабируемость, необходимую для удовлетворения широкого спектра задач, от рутинной обработки копирования и вставки до модификации данных.
GUI Automation Anywhere
Blue Prism
Blue Prism, старейший инструмент в индустрии RPA, в последние годы неуклонно растет.
Blue Prism специализируется на сквозной RPA для компаний из списка Fortune. Blue Prism также предлагает высококлассных роботов. Роботы не только очень сложные, но и обладают глубокими возможностями создания сценариев для настройки расширенных сетей RPA. Имеет отличные возможности отладки и потрясающую масштабируемость.
GUI Blue Prism
Microsoft Power Automate
Microsoft Power Automate предоставляет простое и эффективное решение RPA. Самым значительным преимуществом Microsoft Power Automate является простота настройки. Данные из экосистемы Microsoft легко доступны. Легко управлять оркестрацией робота.
WinActor
GUI WinActor
Test Automation
Автоматизация тестирования помогает разработчикам и тестировщикам экономить время и увеличивать охват тестированием за счет автоматизации повторяющихся тестовых случаев.
Типичным методом тестирования является тестирование пользовательского интерфейса, для которого тестировщики обычно используют специализированные фреймворки (например, Selenium), которые позволяют автоматизировать взаимодействие с пользовательским интерфейсом и проверять поведение системы. Если бы тестировщики выполняли эти тесты вручную, они никогда бы не смогли адекватно протестировать, найти проблемы на разных платформах и, возможно, пропустить определенные ошибки.
Automation Testing Tools
Инструментов ни сколько не меньше чем у RPA.
Вот небольшой список:
IBM Rational Functional Tester
Telerik Test Studio
HPE Unified Functional Testing (UFT)
Сводная картинка по некоторым инструментам:
QA Automation tools
RPA vs Test Automation
Коротко: это практически одно и то же.
RPA и Test Automation можно рассматривать как одно и то же. Компании используют их для автоматизации задач, экономии затрат и освобождения времени сотрудников для других дел.
Сходства:
инструменты для обеих практик автоматизируют взаимодействие пользовательского интерфейса.
Различия:
сценарии тестирования, созданные для автоматизации тестирования, зависят от тестируемой системы (SUT).
RPA не различают, автоматизируют ли они перенос данных в систему бухгалтерского учета или, например, помечают ваши электронные письма.
RPA инструменты не зависят от программного обеспечения, в котором запущен процесс.
Парсинг сайтов и RPA
Цели у компаний, которые занимаются парсингом сайтов, разные, но тем не менее такие инструменты есть и некоторые из них являются полноценным RPA инструментом (например, Octoparse).
Process Bots VS Search Bots
Сильные стороны RPA:
Управление входами и выходами через UX
Работа с авторизацией для бизнес-приложений
Передача данных в бизнес-процессе
Бизнес-шаблоны для определенных шаблонов использования (обслуживание клиентов, финансовые таблицы и т.д.)
Сильные стороны поискового робота:
Масштабирование для одновременной обработки десятков тысяч страниц
Отсутствие конфигурации и автоматическая обработка для множества типов веб-страниц
Поисковые роботы автоматически адаптируются при изменении страниц
Богатая индивидуальная конфигурация
Всестороннее чтение HTML страницы (Имя автора; UPC продукта)
Автоматическое извлечение настроения из текста
Извлечение связанных сущностей из текста (организации, местоположения, люди и т.д.)
Но какие боты лучше?
Как и все, от чего зависит, но одна ключевая отличительная черта между веб-ботами и ботами RPA может быть показана путем обсуждения того, в каких контекстах мы хотим, чтобы наши боты работали.
Боты RPA были разработаны в эпоху статических приложений. Таблицы необходимо обновлять с помощью бухгалтерского программного обеспечения. Заявки подаются в одном и том же формате месяцами или годами. А использование данных, передаваемых между приложениями, было четко определено и несколько ограничено.
Сегодня все наши приложения находятся в облаке. А конвейеры данных сильно зависят от неструктурированных данных из интернета. С появлением RPA вывод используемых нами приложений стал значительно более динамичным. Ключевое различие между поисковыми и технологическими роботами заключается в том, что поисковые боты созданы для адаптации к постоянно меняющимся веб-страницам, а RPA прерывается, когда сайты меняются, а точнее когда меняется дом-дерево в html разметке.
Теперь возьмем поискового бота с поддержкой AI. Вводим один сайт например, в Crawlbot Diffbot, ждем несколько минут, и тысячи страниц распознаются и анализируются как страницы продуктов. Загружаем данные в формате JSON или CSV, либо загружаем приложение или панель инструментов с выбранными результатами. Основная технология, лежащая в основе этого варианта использования, возможно будет лучше чем боты RPA. Поисковые боты сами ускоряют чтение и классификацию Интернета!
Инструменты для парсинга
Scrape.do
Scrapingdog
ParseHub
Diffbot
Octoparse
Octoparse выделяется как простой в использовании инструмент для парсинга веб-страниц без кода. Он предоставляет облачные сервисы для хранения извлеченных данных и ротации IP-адресов для предотвращения блокировки IP-адресов. Вы можете запланировать парсинг в любое определенное время. Кроме того, он предлагает функцию бесконечной прокрутки. Результаты загрузки могут быть в форматах CSV, Excel или API.
ScrapingBee
Luminati
Scraper API
Scrapy
Import.io
Инструмент для парсинга веб-сайтов с оперативным управлением всеми веб-данными, обеспечивая точность, полноту и надежность. Import.io предлагает конструктор для формирования собственных наборов данных путем импорта данных с определенной веб-страницы и последующего экспорта извлеченных данных в CSV. Кроме того, он позволяет создавать более 1000 API-интерфейсов в соответствии с вашими требованиями. Есть приложение для Mac OS X, Linus и Windows.
BPM и RPA
BPM (Business Process Management, управление бизнес-процессами) – это концепция процессного управления организацией, сочетающая в себе идеологию и программное обеспечение для управления бизнес-процессами.
Концепция BPM рассматривает всю работу компании как набор из множества бизнес-процессов и четко отвечает на все вопросы о каждом из них (например, где и когда выполняется процесс, кто ответственный и т.д.).
Основная функция BPM-системы — это организация правильного взаимодействия участников бизнес-процесса.
Основной источник неэффективности процессов, как правило, находится в моментах передачи ответственности между его исполнителями. Именно здесь случается искажение или неполная передача информации, потеря задач, нарушение сроков исполнения, а то и просто непонимание, как бизнес-процесс должен продолжаться.
Второй основной точкой неэффективности бизнес-процессов являются люди: они совершают ошибки, долго выполняют свои задачи и при этом дороги. Благодаря технологии RPA исполнителей бизнес-процессов можно заменить роботами, что сделает исполнение процессов дешевле и качественнее.
CAMUNDA Сервисы BPM с интеграцией RPA
Camunda
Платформа Camunda обеспечивает подход на основе жизненного цикла к проектированию, организации, анализу и мониторингу ваших RPA-ботов в том виде, в каком они работают сегодня. Кроме того, Camunda предлагает архитектурный путь вперед, который в будущем заменит ботов RPA на API / микросервисы.
Основные преимущества:
Проектирование сквозного процесса
Согласование сценариев RPA
Оперативное наблюдение за действиями ботов RPA
В BPM-системе ELMA робот участвует в процессе наравне с обычными пользователями. В гибких бизнес-процессах ELMA роботы могут постепенно заменять пользователей системы — задача за задачей. Освободившиеся от скучной работы сотрудники смогут перераспределить это время и свой опыт на более интересные творческие и полезные для компании задачи.
Выгоды для бизнеса от использования RPA + BPM:
Снижение издержек на рутинные операции.
Масштабирование бизнеса без расширения штата.
Освобождение времени сотрудников на более интеллектуальный труд.
Лучший Customer Experience за счет качества и скорости сервиса.
ProcessMaker
Безопасный RPA.
Взлом RPA
Можно ли взломать RPA? Да, можно. Например, обработка данных с сайта (загрузка картинок, текста и пр.), откуда робот может скачать зараженный скрипт под видом обычной картинки, а скаченный скрипт может повлиять на работу бота, добавляя новые правила в обработку, или просто остановит его. Много что можно сделать, выбор огромный.
Риски безопасности, на которые стоит обратить внимание:
Риски выбора инструмента: выбор нужного инструмента от проверенного производителя. Компании обычно выбирают инструменты, не соответствующие их требованиям.
Операционные риски или риски исполнения: развертывание правильной операционной модели необходимо для уменьшения функциональных проблем или проблем с производительностью.
Злоупотребление привилегированным доступом: злоумышленники получают несанкционированный доступ к системе, чтобы получить конфиденциальные данные пользователя и чтобы свободно перемещаться в сетях робота. Вредоносное программное обеспечение, установленное внутри системы, которое создаст сценарий уничтожения важных конфиденциальных данных, нарушая жизненно важные бизнес-процессы.
Раскрытие конфиденциальных данных: malware проникает в систему и создает сценарий, при котором данные пользователей утекают в сеть.
Отказ в обслуживании: создание необходимых условия для остановки работы бота.
Но самая серьезная проблема состоит в том, чтобы гарантировать, что конфиденциальные данные не будут использованы неправомерно с помощью привилегий, присвоенных программным роботам или разработчикам рабочих процессов для роботов.
Проблема безопасности может быть разбита на два тесно взаимосвязанных момента:
RPA для пентеста
Посмотрим с позиции пентестера. Мы можем с помощью RPA создать скрипт, который будет циклически проверять страницы на уязвимости. Рассуждая дальше, мы можем подготовить целую армию роботов, чтобы симулировать атаки на различные API и сайты. Можно попробовать автоматизировать основные популярные сценарии взлома.
Продолжение следует.
В следующей статье мы создадим своего бота, рассмотрим какие есть алгоритмы детектирования ботов, которые написаны на Selenium и с помощью RPA. Создадим свой алгоритм, подведем итоги.