Отказываемся от платных RPA платформ и базируемся на OpenSource (OpenRPA)

Вводная


Ранее на Хабре очень подробно освещалась тема Автоматизации десктопных GUI приложений на Python. В то время меня очень сильно привлекла эта статья, потому что в ней раскрываются элементы, схожие с элементами создания роботов. А так как по роду своей профессиональной деятельности я занимаюсь роботизацией бизнес-процессов компании (RPA — область, в которой не было полнофункциональных OpenSource аналогов до недавнего времени), данная тема была очень актуальна для меня.


Топовые существующие IT решения в области RPA (UI Path, Blueprism, Automation Anywhere и другие) имеют 2 существенные проблемы:


  • Проблема 1: Технические ограничения функциональности платформы, так как скрипты роботов создаются только в графическом интерфейсе (да, там есть возможность вызывать программный код, но эта возможность имеет ряд ограничений)
  • Проблема 2: Крайне дорогая лицензионная политика продажи этих решений (Для топовых платформ около 8000$ за одного постоянно работающего робота в год). Сделайте с десяток роботов, чтобы попасть на ежегодную крупную сумму в виде лицензионных отчислений.

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


На чем же базируется концепция RPA?


RPA (Robotic Process Automation) — это одна из самых экономически выгодных форм достижения цели. Так как RPA предполагает не отказываться от всевозможных legacy систем компании, а сделать необходимый скрипт автоматизации на базе этих самых систем — это даёт свои плоды как в отношении скорости разработки (потому что не надо переделывать существующий зоопарк систем), так и в отношении бизнес-результата (экономия ПШЕ/FTE, увеличение выручки компании, уменьшение расходов компании).


В основе инструментов RPA лежать следующие технологии:


  • управление открытыми web страницами браузера;
  • управление открытыми десктопными GUI приложениями;
  • управление мышью и клавиатурой (нажатие клавиш, hotkeys, кнопок мыши, перемещение курсора);
  • поиск графических элементов на экране рабочего стола для применения дальнейших действий мышью и/или клавиатурой;

Многолетним практическим опытом нам удалось показать, что именно этот набор технологий позволяет реализовать роботизацию практически любого бизнес-процесса, в которых не требуется элемент распознавания/применения искусственного интеллекта (в этих случаях требуется подключать к роботу соответствующие библиотеки, доступные в существующем мире IT). Отсутствие хотя-бы одного из вышеперечисленных инструментов существенно влияет на возможности RPA.


Ведь все инструменты RPA можно найти в интернете. Чего же тогда не хватает?


А не хватает самого главного — не хватает их целостности. Целостность, которая позволит реализовать синергетический эффект от использования различных инструментов (web, gui, мышь, клавиатура) в одном скрипте робота, что зачастую является необходимостью (как показывает практика) при разработке. Именно эту ключевую возможность предоставляют все топовые RPA платформы, и теперь эту возможность стала предоставлять первая OpenSource RPA платформа OpenRPA


Как устроена OpenRPA?


OpenRPA — это OpenSource проект на базе языка программирования Python 3, который состоит из лучших существующих python библиотек, которые позволяют реализовать необходимый инструментарий RPA платформы (перечень ключевых инструментов RPA см. выше).


Перечень ключевых библиотек:


  • pywinauto;
  • selenium;
  • keyboard;
  • pyautogui

Так как все библиотеки не знают о существовании друг друга, в OpenRPA реализована важнейшая функция RPA платформы, которая позволяет их использовать вместе. Особенно явно это проявляется при использовании библиотеки pywinauto для управления десктопным GUI приложением. В этой области была проведено дополнение функциональности библиотеки до того функциональность уровня, который предлагается в лучших RPA платформах (селекторы для GUI приложений, разрядонезависимость, студия создания селектора и др.).


Заключение


Современный мир IT сегодня настолько открыт для всех, что даже сложно представить, что до сих пор существуют еще области, где господствуют только платные лицензионные решения. Так как данная лицензионная политика сильно ограничивает развитие данного направления, то я надеюсь, что мы сможем переломить эту ситуацию: чтобы любая компания могла позволить себе RPA; чтобы наши IT коллеги могли с легкостью найти себе работу в RPA вне зависимости от экономической ситуации в их регионы (сегодня регионы со слабой экономикой не могут позволить себе RPA).


Если данная тема будет для Вас интересна, то в дальнейшем могу составить tutorial специально для Хабр по использованию OpenRPA — пишите в комментариях.


Всем спасибо и хорошего дня!

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 20

    0
    С названием беда — OpenRPA на просторах GitHub'а уже есть.
      +1

      Да, знаю про этих ребят — они тоже делают открытый софт (правда по лиц. MPL-2.0), но они выбрали графический путь как и Ui Path со всеми вытекающими. Надеюсь, что у них получится превзойти платные альтернативы.


      А появился их OpenRPA на несколько месяцев позже (это можно сравнить по репозиториям). Но, действительно, возникает путаница из-за того, что название они выбрали такое же.


      Есть идея обновить название на OpenRPA Python. Буду благодарен услышать Ваши комментарии по этому поводу. Спасибо!

        –1
        Сама концепция напоминает тезис «для того, чтобы перевозить грузы быстрее, чем гужевой тягой, давайте посадим лошадь в кузов автомобиля».
        Лошадь при этом все равно надо будет кормить, а легаси-системы — поддерживать. И RPA тоже поддерживать. При изменении в легаси затраты на переналадку системы удваиваются.
        Буду считать RPA злом, уж извините.
          +1

          Пишите туториал, интересно

            0

            А как можно скачать и протестировать данную RPA платформу?

              0
              Congratulation buddy! :)
              0

              Пишите туториал — посмотрел на репозиторий — проведена неплохая работа по документированию, но для "Хелло-Уорлд", кажется примера нет. Так что ждем! Спасибо !

                0
                Ждем туториал!
                  0

                  Да, интересно. Туториал действительно не помешал бы

                    0
                    Очень рад, что тема для вас интересна. По документирования всей этой истории — сейчас активно этим занимаюсь. К концу лета ожидаю, что по части документирования (RUS + ENG) вопросов возникнуть не должно.

                    Опубликовал следующую статью. Как и обещал, первая статья-туториал: habr.com/ru/post/509644

                    Enjoy :)
                      0
                      Все равно остаются проблемы:
                      — отказоустойчивость;
                      — система управления такими автоматизациями;
                      — система управления данными;
                      — система управления исключениями;
                      — транзакционность;
                      — центр компетенции;
                      — «Энтерпрайзность»;
                      — отладка решений;
                      — сертификация безопасности таких приложений.

                      Автоматизации можно и в макросах написать или Autoit. На сегодняшний момент алгоритм подключения коннекторов и внешних механизмов никак не изменился. Везде одно и то же.

                      А значит ключевыми остаются вопросы:
                      — Скорость разработки
                      — Скорость ввода продукции в прод
                      — Система и контроль версий(но тут проще)
                      — Модульность, переиспользование, фишки, плюшки
                      — подключение и интеграция внешних библиотек
                      и т.д.

                      Все делать на питоне… то еще ГМО. Роботизацией, а уж тем более RPA — это сложно назвать.

                      Однако, смотр в OpenSource — это хороший задел!
                      Да, среди разработчиков известных монстр-Вендров очень много тех, кто может и хочет кодить в этих продуктах. Но чрезмерное использование кода — приводит к мысли, что что-то ты делаешь неправильно.

                      Говорить, о том, что не можешь что-то использовать в сценариях — тоже глупо, т.к. тебе ничего не мешает установить последний релиз бесплатной визуальной студии и написать любую активность под свои потребности, хотя Invoke кода в продуктах и так хватает, а значит, скорее всего не хватает возможностей и компетенции именно в этом продукте. И на питоне проще, т.к. только его и знаешь…

                      На самом деле можно долго обсуждать, что круче платное и полноценное решение или бесплатное «на коленках решение».

                      P.S. не в коем случае не хотел обидеть. Только конструктивная лирика.

                      Всех благ в твоем начинании!
                        0
                        Спасибо за развернутый комментарий! Некоторые тезисы субъективны и являются характеристикой личного отношения, но в целом этот коммент для меня очень полезен, так как на текущий момент я активно работаю над методичкой «IT4Business», в которой я привожу многие наиболее популярные тезисы IT, рассматриваю их плюсы и минусы.

                        Спасибо!
                        0

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


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


                        А название, как вариант — OSRPA. RPA OS, если сделаете целую операционку.)

                          0
                          Проблема 2: Крайне дорогая лицензионная политика продажи этих решений

                          есть бесплатный UIPath community edition с учебной академией, кучей роликов на ютубе и большими коммьюнити. Точнее он платный, если годовой оборот( или выручка, не помню уже) компании несколько миллионов $
                            0
                            Спасибо за комментарий! учебная академия: да, ролики на youtube: да, большое комунити: да, бесплатный: к сожалению, не совсем так

                            Опускается достаточно важный факт, что Ui Path является бесплатным только в случае установки на 1 компьютер — не более. И бесплатная версия не содержит оркестратор (а для промышленных роботов это достаточно существенный компонент, да и роботов гораздо больше чем 1).

                            Как вариант тут можно тоже рассматривать всякие конструкции. Например, можно использовать UI Path community версию для написания одного робота, а администрировать его бесплатным оркестратором pyOpenRPA :)

                            Спасибо!
                              0
                              И бесплатная версия не содержит оркестратор (а для промышленных роботов это достаточно существенный компонент, да и роботов гораздо больше чем 1).

                              уже содержит, но облачный. В принципе, одного робота для автоматизации 3-5 «рутин» достаточно, на мой взгляд. разделить выполнение по дням недели, как самый простой вариант, или по рабочим часам.
                              А за популяцию RPA огромный + :)
                          0
                          Особенно явно это проявляется при использовании библиотеки pywinauto для управления десктопным GUI приложением. В этой области была проведено дополнение функциональности библиотеки до того функциональность уровня, который предлагается в лучших RPA платформах (селекторы для GUI приложений, разрядонезависимость, студия создания селектора и др.).

                          За ссылку на статью спасибо. Но вот здесь немного недопонял. В pywinauto чего-то не хватает? А почему issue не завели? Селекторы там как раз есть — это WindowSpecification, весь верхнеуровневый интерфейс на них построен. Разрядонезависимость — тоже не очень понятно. pywinauto поддерживает 32/64-битные приложения и Python'ы.

                            0
                            Спасибо за комментарий! Хочу лишний раз отметить важность библиотеки pywinauto, потому что без этой библиотеки мне не удалось бы выдать рабочий продукт за несколько месяцев.

                            Ниже отвечаю на Ваши вопросы:
                            В pywinauto чего-то не хватает?
                            pywinauto и pyOpenRPA — это принципиально разные продукты с принципиально разным назначением и поставленными задачами. В pywinauto всего хватает для решения поставленных перед ним задач (+ в карму от меня за этот проект :) ).
                            pywinauto — это отличная библиотека, которая предоставляет необходимую функциональность для решения своей задачи (работы с GUI). В pyOpenRPA используются возможности pywinauto, а также добавляются новые возможности, которые решают уже другую задачу (упрощают процесс разработки роботов новыми функциями).
                            В случае pyOpenRPA речь идет про единый пакет функциональности для RPA (GUI, WEB, MOUSE, KEYBOARD, IMAGE, и т.д.), где GUI — это лишь одна из составляющих.
                            И цель у pyOpenRPA другая, а именно: обеспечить полноценный бесплатный аналог топовых дорогостоящих RPA платформ (UiPath, Blueprism, Automation Anywhere, WinAutomation), а это уже более широкая тема, в которую, в частности, входит GUI.

                            А почему issue не завели?
                            А зачем создавать issue в pywinauto, если я не исправляю дефекты pywinauto, а разрабатываю новые возможности pyOpenRPA? pywinauto и pyOpenRPA — это принципиально разные продукты с принципиально разным назначением и поставленными задачами (см. выше).

                            Селекторы там как раз есть — это WindowSpecification, весь верхнеуровневый интерфейс на них построен
                            Поддерживаю тезис. Для pyOpenRPA я дообогащаю функциональность селекторов, доведя ее до уровня топовых дорогостоящих RPA платформ (UiPath, Blueprism, Automation Anywhere, WinAutomation). Для pywinauto это и не нужно, потому что у нее изначально нет цели становиться платформой RPA.

                            Разрядонезависимость — тоже не очень понятно. pywinauto поддерживает 32/64-битные приложения и Python'ы
                            Поддерживаю тезис. В pyOpenRPA я упростил работу с разной разрядностью, если в рамках одного проекта робота нужно управлять приложениями разных разрядностей. Это было сделано, опять же, для того, чтобы догнать, и перегнать топовые и дорогостоящие RPA платформы (UiPath, Blueprism, Automation Anywhere, WinAutomation)

                            Еще раз спасибо за разработку библиотеки pywinauto! Ее существование помогло в достижении RPA целей!

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

                          Самое читаемое