Здравствуйте, сегодня я хотел бы рассказать про свой путь написания оркестратора для оркестратора UiPath. Поведать, какая была первопричина и во что это вылилось.
Как вводную, расскажу про компанию UiPath и ее основной продукт: среда разработки и выполнения программых роботов(далее АРМ). Изначально, продукт разрабатывался как инструмент UI-тестирования, как для web, так и для desktop приложений. Продукт был неплох, но как инструмент для тестирования нужен небольшому кругу лиц, тогда у менеджеров компании появилась идея продавать как платформу для роботизации бизнес процессов. Суть и там и там сводится к имитации действий пользователя, только в первом случае мы это делаем в тестовом окружении, а во втором - в реальной системе. Для управления кучей программных роботов за отдельные деньги, покупается лицензия на оркестратор.
Стоит рассказать про лицензирование. Среда выполнения программных роботов делилась на такие типы как: Attended (выполняется на машине пользователя, запуск производится через трей, запуск через поставляемый компанией оркестратор невозможен) и UnAttended (чаще всего выполняется на виртуальной машине, есть возможность запуска через поставляемый оркестратор). Есть ещё типы лицензий: Named User (выполнение только под одной уникальной доменной записью на одном АРМ) и Concurrent (одна доменная учётная запись может одновременно использоваться на нескольких АРМ). Некоторые вышеуказанные типы комбинируются между собой, соответственно и разная цена на них. Так UnAttended Concurrent - самая дорогая из них, а Named User(Attended) - самая дешевая. Разница в цене между ними вполне достигала 5-7 раз и это все цена на одно рабочее место. Необходимо учитывать, что лицензия покупается на год, но в течении года потребность в лицензиях разная. Более того, потребность разная и в течении недели. Так как автоматизируем действия пользователя, то чаще всего и запускаем роботов в это время (с 9 до 18) Соответственно, если считать только рабочее время, то робот работает 50% времени, а в остальное простаивает, но счётчик, как в такси, тикает.