Что осуществляется с помощью специальных программ роботов
Перейти к содержимому

Что осуществляется с помощью специальных программ роботов

  • автор:

 

20.3.1. Поисковые системы общего назначения

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

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

Интерфейс таких поисковых систем содержит список разделов каталога и поле поиска.

Заполнение баз данных осуществляется с помощью специальных программ-роботов, которые периодически «обходят» Web –серверы Интернета, читают все встречающиеся документы, выделяют в них ключевые слова и заносят в базу данных, содержащую URL –адреса документов.

20.3.2. Специализированные поисковые системы

Позволяют искать информацию в других информационных «слоях» Интернета :

серверах файловых архивов,

Могут быть двух типов:

На основе использования баз данных

Основные характеристики поисковых систем

Эта характеристика представляет собой отношение количества найденных по запросу документов к общему числу документов в сети Интернет, удовлетворяющих данному запросу.

Пример. В Интернете имеется 100 страниц, содержащих словосочетание «как выбрать автомобиль «, а по соответствующему запросу было найдено всего 60 из них, то полнота поиска будет 0,6

Определяется степенью соответствия найденных документов запросу пользователя.

Пример. Если по запросу «как выбрать автомобиль» находится 100 документов, в 50 из них содержится словосочетание «как выбрать автомобиль», а в остальных просто наличествуют эти слова(«как правильно выбрать магнитолу и установить их в автомобиль), то точность поиска считается равной 50/100 =0,5

Характеризуется временем , проходящим с момента публикации документов в сети Интернет , до занесения их в индексную базу поисковой системы.

Пример. На следующий день после появления интересной новости, большое количество пользователей обратились к поисковым системам с соответствующими запросами.

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

1.4. Скорость поиска

Тесно связана с его устойчивостью к нагрузкам.

Пример. По данном ООО»Рамблер Интернет Холдинг» на сегодняшний день в рабочие часы к поисковой машине Рамблер приходит около 60 запросов в сек. Поисковая машина должна отрабатывать запрос максимально оперативно, чтобы не тормозить выполнение следующих запросов.

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

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

Разновидности роботов и их классификация

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

История зарождения робототехники

фото девушки и робота

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

Термин «робот» появился на свет благодаря чешскому писателю К. Чапеку, который употребил его в 1920 году в своей пьесе, а первые реальные прототипы современных андроидов — в 30-х годах прошлого столетия. Толчок развитию робототехники дал Г. Форд в работах по созданию поточных линий. Первая в мире компания по изготовлению промышленных роботов (Unimation) возникла в США в 1956 году, а ее первенец — промышленный робот заработал в концерне General Motors в начале 1960-х годов. Примерно в это же время появилась лаборатория по исследованию искусственного интеллекта.

Серьезно продвинуло робототехнику вперед создание систем управления на базе микропроцессоров в 1970-х годах, что удешевило изготовление роботов, а также разработка официального языка программирования роботов в 1982 году. Первый робот (Scara) с электроприводом изготовлен компанией Adept в 1984 году. Резкое развитие робототехники началось в начале XXI века. Она стала охватывать многие области человеческой деятельности: от бытовых работ до работ на космической станции.

В развитии роботостроения можно выделить 3 важных этапа:

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

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

Виды роботов, применяемые в современном мире

мужчина настраивает робота

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

По управлению

Управление роботами осуществляется с помощью специальных программ. Выделяются такие разновидности:

  1. Жесткопрограммируемые устройства. По сути, это роботы 1-го поколения, в которые вводится программа, не изменяющаяся в процессе работы.
  2. Адаптивное программирование. В программах содержатся сведения о состоянии внешних факторов. Через сенсорную систему роботы могут распознавать состояние внешнего мира и корректировать режимы работы с учетом изменения условий.
  3. Гибкопрограммируемые роботы. Это устройства последнего поколения, которые могут изменять программу своих действий, принимая во внимание только конечную цель, получая и анализируя информацию об окружающем мире.

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

По позиционированию

По позиционированию возможных перемещений роботы подразделяются на такие виды:

  1. Роботы с прямоугольной или декартовой системой координат. Они совершают возвратно-поступательные перемещения по двум координатам — плоское позиционирование или по трем координатам — пространственное позиционирование.
  2. Роботы с цилиндрической системой координат. Имеется возможность одной степени вращательного движения и не менее одного направления поступательного перемещения.
  3. Роботы с полярной или сферической системой координат. Манипулятор имеет две степени вращения и одну поступательную степень.
  4. Шарнирные роботы. Они имеют не менее трех вращательных степеней подвижности.
  5. Роботы SCARA. Они обладают двумя вращательными степенями подвижности по параллельным осям.
  6. Комбинированная кинематика. Такие роботы могут совмещать разный тип позиционирования.

Помимо указанного распределения роботы разделяются по числу степеней подвижности. Они могут иметь 1, 2, 3 и N степеней.

По назначению

По своему основному назначению роботы подразделяются на множество разновидностей. Можно выделить основные виды:

  1. Промышленные роботы . Наиболее распространенные разновидности: литейные, для механической обработки, сборочные, окрасочные, строительные, фасовочно-сортировочные, транспортные, сельскохозяйственные.
  2. Медицинские роботы. Они используются: для проведения хирургических операций (роботы-хирурги), приготовления лекарственных препаратов (роботы-фармацевты), ухода за больными (робот-сиделка), диагностики заболеваний (роботы-диагносты), обучения медицинским навыкам (робот-педагог). Кроме того, в медицине применяются роботизированные системы в виде протезов конечностей и трансплантатов для замены внутренних органов.
  3. Бытовые роботы. Они в последнее время получили большую популярность. Выделяется несколько категорий: роботы для транспортировки предметов и грузов в автоматическом режиме по заданному маршруту; робот-домохозяйка (приготовление пищи, мойка, пылесосы и т. д.); универсальный робот-помощник по дому; «умный дом», т. е. роботизированная система всего жизнеобеспечения. Особую категорию составляют социальные роботы: «поводыри», «домашние животные», игрушки, универсальные роботы для общения и снятия напряжения.
  4. Роботы для обеспечения безопасности. Они активно используются подразделениями МЧС, среди прочего при тушении пожаров, разборе завалов, разминировании, наводнениях, спасении людей в экстремальных условиях.
  5. Боевые роботы. Это обширная группа разнообразной техники для ведения боевых действий, в т. ч. беспилотные летательные аппараты, самоходные танки и БТР, надводные и подводные аппараты, и т. д.
  6. Исследовательские роботы. Они необходимы при проведении исследований в экстремальных условиях: высокая температура, радиация, разряженный воздух и т. п. Они способны работать на земле и под землей, на воде и под водой, в воздухе и космосе.

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

По способу передвижения

По способу перемещения роботы можно подразделить на такие виды:

  1. Колесное перемещение. Может использоваться разное количество колес: 1, 2, 4 и более в зависимости от назначения и необходимой маневренности.
  2. Гусеничный способ. Он значительно увеличивает проходимость, а потому востребован в боевых установках.
  3. Шагающий принцип. Он имитирует движение человека.
  4. Полет в воздухе. Это беспилотные летающие аппараты разного назначения.
  5. Плавающий принцип. Используются гребные винты или паруса.
  6. Имитация движения животных. В роботах может использоваться принцип передвижения змей, птиц, насекомых и т. д.

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

Современные роботы от топовых производителей

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

Новая модель промышленных роботов KUKA KR QUANTEC PA Arctic предназначен для работы при значительных минусовых температурах без дополнительной защиты. Его разработчики задались целью создания устройства для пищевой отрасли со способностью работать в морозильной камере и достигли нужного результата. Робот способен производить различные манипуляции с замороженными продуктами.

Робот-манипулятор KUKA KR QUANTEC PA arctic

  • Диапазон температур -30°C – +5°C
  • Количество осей 5
  • Дополнительная нагрузка, кг 50
  • Максимальный радиус действия 3195 мм
  • Монтажное положение на полу
  • Полезная нагрузка, кг 240 / 180 / 120
  • Система управления KR C4
  • Стабильность повторяемости ±0,06 мм
  • Тип защиты IP 65

Fanuc

Одним из самых мощных промышленных роботов является модель FANUC M-2000iA/1200. Она идеально подходит для погрузочно-разгрузочных работ, транспортировки и паллетирования тяжелых грузов. Робот имеет большую длину хода, обеспечивающую возможность работы с крупногабаритными изделиями. Особой популярностью такое оборудование пользуется в машиностроении и на кузнечных производствах.

Universal Robots

фото роботов Universal Robots

Среди роботов серии Universal Robots выделяется робот-манипулятор UR10. Он прекрасно сочетается с сельскохозяйственным, фармацевтическим и технологическим оборудованием. Его можно использовать для полировки деталей, литья, упаковки продукции, завинчивания при сборке, склеивании, сварке и дозировании. Он удобен при погрузочных работах и при проведении лабораторных исследований в экстремальных условиях.

Примеры использования роботов

Роботы широко используются в разных компаниях для выполнения различных производственных задач. Можно привести несколько примеров:

  1. Упаковка и складирование. На больших складах с активным оборотом товара эффективно применяется робот-погрузчик Packaging World. В сфере упаковки продуктов питания надежно показали себя роботизированные системы Yasakawa. Роботы Robotics Tomorrow активно используются крупными компаниями Graphic Packaging, WestRock, Master Packaging и Malnove.
  2. Бумажное производство. Приклеивание этикеток, обертывание, упаковка и расфасовка обеспечиваются оборудованием Control ENGINEering и Pulp & Paper Canada.
  3. Деревообработка. Высоко оценивается работа роботов Robotics Online при окраске, обработке, сортировке деревянных изделий в компании Willamette Valley Co.
  4. Металлообработка. Внедрение роботов в Canadian Metalworking позволило значительно повысить производительность труда. Роботы обеспечивают обработку, транспортировку и складирование деталей, обслуживание станков, проведение контроля качества.
  5. Сталелитейное производство. Концерн Teesside Beam Mill использует роботы RobotWorx в своих металлургических подразделениях. С их помощью изготавливается различный стальной профиль в автоматическом режиме.

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

VII Международная студенческая научная конференция Студенческий научный форум — 2015

В зависимости от предметной области в определении понятия «робототехника» выделяют те или иные признаки (табл. 1).

Определение понятия «Робототехника»

Определение

Источник

Робототехника – производственная техника, основанная на применении роботов.

Ожегов С. И. Толковый словарь русского языка

Робототехника – область науки и техники, ориентированная на создание роботов и робототехнических систем, построенных на базе мехатронных модулей.

Приказ Минобрнауки РФ от 9.11.2009 №545 «Об утверждении и введении в действие ФГОС ВПО по направлению подготовки 221000 «Мехатроника и робототехника»

Робототехника – технические устройства, связанные с изготовлением и применением роботов.

Современный энциклопедический словарь по ред. Т.Ф. Елфимовой

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

Накано Э. Роботы и робототехника

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

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

Рис. 1. Примеры сред программирования роботами

NXT-G – графическая среда программирования, созданная специально для популярного робототехнического комплекта Lego Mindstorms NXT. Она используется для программирования модуля NXT Brick. Данный софт имеет интуитивно понятный интерфейс, создание программ управления роботами напоминает создание блок-схем и осуществляется с помощью специальных блоков, размещаемых на LEGO-балках вдоль оси последовательности действий. Порядок выполнения программы определяется порядком следования блоков.

TrikStudio – коммерческая программа, ориентированная на программирование учебных роботов фирмы Trik. Включает в себя симулятор, который позволяет тестировать программы без использования реального робототехнического набора.

Microsoft Robotics Developer Studio (MRDS). Платформа MRDS включает в себя язык визуального программирования Visual Programming Language (VPL) и имитационную визуальную 3D-среду. Язык визуального программирования Visual Programming Language (VPL) предлагается в качестве средства описания алгоритмов поведения роботов для начинающих программистов (в том числе данный язык программирования может изучаться учащимся), язык C# – для профессиональных. Написание программы на VPL заключается в выборе подходящих компонентов для решения поставленной задачи и устанавливания связи между ними.

RobotC – является лидером среди языков программирования для изучения роботов и подготовки к соревнованиям. Он основан на языке программирования С и обладает простой в использовании средой разработки. Является платным программным обеспечением.

BricxCC – наиболее распространенный инструмент, поддерживающий язык программирования NXC. Это свободно распространяемая программа, имеющая большое число различных инструментов для работы с блоками Lego Mindstorms, фактически может полностью заменить стандартное программное обеспечение Lego (кроме драйверов). Встроенные библиотеки языка позволяют работать с устройством на различных уровнях, присутствуют низкоуровневые средства обращения к входам и выходам устройства, обращение к физическим адресам памяти, а также высокоуровневые команды управления моторами и получения данных с датчиков.

Arduino – среда программирования роботов на базе Arduino. Интерфейс среды разработки Ардуино содержит следующие основные элементы: текстовый редактор для написания кода, область для вывода сообщений, текстовая консоль, панель инструментов с традиционными кнопками и главное меню. Данный софт позволяет компьютеру взаимодействовать с Ардуино как для передачи данных, так и для прошивки кода в контроллер.

RPA | Роботизация процессов глазами аналитика

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

 

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

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

План

Что такое робот и что он умеет

С точки зрения участия в бизнес-процессах компании робот – это виртуальный сотрудник-оператор. Вот как живой, только:

  • У него идеальная память
    Он ничего не забудет и не перепутает.
  • Он всегда на работе
    Ночные запуски – без проблем.

Он оперирует формальной логикой:

  • У робота напрочь отсутствует интуиция
    Человек при поиске файла с названием «Отчет за дату ДДММГГ.xlsx» интуитивно поймет, что файл «Отчет за дату 120220 (исправлено).xlsx» ему тоже подходит, а разницу в названии с файлом «Отчет за дату 120220 .xlsx» он даже вряд ли заметит. Робот же последние два файла определит как неподходящие под маску. Можно смягчить условия поиска, но стоит ли обрабатывать файл «Отчет за дату 120220 Переделать!.xlsx«?
  • Робот не стремится достичь какой-либо определенной цели
    Он просто выполняет то, что явно задано сценарием, не обращая внимания ни на какие непредусмотренные сигналы и события. Робот считает сценарий успешно завершенным, если ему удалось выполнить все заложенные в него шаги. Неважно, сколько сообщений об ошибках будет на экране, если они не блокируют выполнение шагов сценария или робот специально не обучен их «отлавливать».

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

У сотрудника-оператора есть старший сотрудник или начальник, к которому можно обратиться при возникновении непредвиденных ситуаций. Для робота тоже должны быть такие кураторы по каждому процессу.

Сотрудник работает на своем ПК или в терминальной сессии, каждый робот также работает в своем собственном окружении. Если бы и можно было запустить в одной сессии несколько роботов, это привело бы к печальным последствиям: попробуйте с коллегой подключить к одному компьютеру две клавиатуры и набирать каждый свой текст.

С точки зрения автоматизируемых приложений робот – это обычный пользователь, который нажимает на кнопки, вводит и считывает данные. Если приложение лицензируется по количеству одновременных подключений – робот займет лицензию при работе в нем.
Помимо взаимодействия с экранными формами приложений, роботы на используемой мной платформе умеют:

  • извлекать и преобразовывать данные
  • выполнять операции с файлами и папками
  • запускать и останавливать приложения
  • читать и записывать некоторые типы файлов без помощи приложений
  • распознавать тексты со скан-копий (OCR)
  • выполнять некоторые операции в офисных приложениях командами, без использования экранных форм
  • запускать сценарии PowerShell и макросы VBA
  • напрямую работать с почтовыми ящиками
  • направлять HTTP и SOAP запросы
  • обращаться к базам данных
  • взаимодействовать с пользователем в той же сессии при помощи диалоговых окон
  • выполнять вставки кода
  • и многое другое.

Существует и альтернативная форма использования – виртуальный помощник: робот запущен в окружении реального пользователя, который при необходимости запускает тот или иной сценарий, или робот сам реагирует на наступление предусмотренного события. Напоминает использование макросов, только для разработки подобных сценариев не требуются специальные навыки (зато требуются лицензии RPA).

Задачи, которые решает робот

Что роботизировать

Итак, мы используем виртуального сотрудника, чтобы он выполнял формализованные сценарии.
С точки зрения эффекта от роботизации приоритет должен быть за несложными, но продолжительными и часто повторяющимися процессами. Тут все просто:

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

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

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

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

Плохо подходят под роботизацию процессы:

  • с непредсказуемыми внешними факторами, где невозможен своевременный контроль результата
  • использующие неформализуемые признаки
  • основанные на интуитивной интерпретации ситуации

Но часто и здесь есть выход – комбинировать роботизацию с ручным принятием решений:

  • В одних случаях можно разделить процесс на этапы, где механическую часть выполняет робот, а принятие решений обеспечивает человек.
  • В других случаях применима сортировка предметов обработки (например, документов) уже в процессе выполнения сценария: при возникновении признаков «сомнительности» робот отправляет их на ручной разбор сотрудникам, остальное обрабатывает самостоятельно.

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

Пример 1:
– Мне нужно, чтобы робот отслеживал получение новых писем на общий почтовый ящик и при поступлении новых пересылал их по списку рассылки.
– Попросите администраторов настроить переадресацию на почтовом сервере.

Пример 2:
– Мы каждое утро печатаем огромное количество документов. Можно сделать так, чтобы мы пришли утром, а робот уже все напечатал, мы подпишем и отправим?
– Технически это возможно, но есть несколько вопросов: Кто будет контролировать ночью наличие бумаги, краски и качество печати? Удобно будет потом фасовать напечатанное по стопкам и подписывать? Удобно будет контролировать и отмечать, что подписали и отправили? С учетом всего этого, много времени сэкономит такая автоматизация?
–…

Пример 3:
– Необходимо, чтобы робот выполнял в приложении такую-то операцию .
– Хорошо, покажите, как вы ее выполняете вручную.
– Я не выполняю, приложение пока не позволяет это делать.
– Тогда сначала обратитесь с этим вопросом к разработчику приложения.

Тем не менее, использование роботов – отличный выход, если выполнение необходимых операций возможно, а автоматизация средствами самой системы потребует значительных временных и финансовых ресурсов.

Несколько примеров направлений, подходящих под роботизацию:

  • Регулярная загрузка документов из банк-клиентов
    Обычно бизнес интересуют выписки, но могут быть и варианты.
    Здесь RPA вне конкуренции – банки редко дают клиентам API.
  • Другие транспортные задачи
    Обнаружить появление нового сообщения или файла, загрузить, распаковать, расшифровать, разложить по папкам, уведомить ответственных сотрудников.
    В ход идут почта, электронный документооборот, сервисы личных кабинетов, обменные папки.
  • Мониторинг сайтов и поиск сведений
    Робот отслеживает появление новостей или изменение текста на определенных страницах сайтов и выполняет рассылку заинтересованным лицам. Как варианты: дополнительная фильтрация результатов или поиск на сайтах по определенным критериям (например, проверка контрагентов).
  • Регулярные рутинные операции в информационных системах
    Такие как:
    • загрузка файлов
    • ввод данных со скан-копий
    • «двойной ввод»
    • формирование отчетности
    • обновление справочников

    Управление рисками

    Поговорим о том, что может пойти не так:

    Риск Комментарий Как управлять
    Ошибки логики сценария Ошибка разработчика. Ошибаются все – вопрос в том, насколько грубо и насколько сложно исправить ситуацию. Хорошая читаемость сценария уменьшает вероятность появления ошибок и упрощает их поиск и исправление. По возможности должно быть предусмотрено рецензирование сценариев. Разработчик и заказчик в первое время после внедрения или доработки сценария наблюдают за результатами запусков.
    Ошибки постановки задачи Во многих случаях на этапе сбора требований описывают только самый простой вариант развития событий.
    Даже после наводящих вопросов не вспоминают все ситуации, когда что-то идет не по плану, и не упоминают необязательные диалоговые окна и уведомления, которые может выдавать приложение.
    Это нормально. Мы потому и роботизируем эти операции, что они механические и при их выполнении исполнитель часто действует неосознанно.
    По возможности привлекать экспертов к постановке задач. Разработчику придется уточнять последовательность действий когда неописанная ситуация возникнет при разработке или уже в эксплуатации сценария.
    Сбой платформы RPA Проблемы непосредственно с функционалом роботов: закончился срок действия лицензий, зависло приложение робота, сбой на стороне модуля управления запуском роботов. Необходимы наблюдение и контроль.
    Сбой окружения Что-то в окружении робота мешает выполнить сценарий. Например:
    * cистемные уведомления, которые блокируют доступ к формам приложений: уведомления об обновлениях windows, отчеты об ошибках, уведомления службы предотвращения выполнения и т.п.
    * нет свободной оперативной памяти
    * переполнен диск.
    Все системные уведомления для робота необходимо отключить.
    За оперативной памятью и диском необходимо наблюдение.
    Сбой инфраструктуры Недоступны связанные с выполнением сценария внутренние сервисы. Например, робот не может отправить уведомление из-за сбоя почтового сервера или выложить файл на сетевой диск из-за проблем в дата-центре. Это аварии в масштабах компании, которые устраняет IT.
    Сбой целевого сервиса Недоступны целевые для сценария сайты или приложения. Необходимо обращаться к администраторам и службам поддержки соответствующих ресурсов.
    Обновление автоматизируемого сайта/приложения При работе с внешними системами это самая острая проблема RPA. Хорошо, если есть тестовая среда и регламентирован порядок обновления. Но это часто не так даже с системами, используемыми внутри компании, не говоря уже про внешние. Просто в один прекрасный момент они начинают вести себя по-другому в части, критичной для сценария. И тут два варианта:
    1) при выполнении сценария происходит сбой: робот не находит нужное окно, кнопку, поле в таблице и т.п.
    2) Сбоя не происходит, но результат становится некорректным.
    В первом случае все просто: разработчик получает уведомление о возникшем сбое, при анализе понимает, что произошло обновление, и выполняет доработку сценария. Иногда требуется незначительная правка, иногда изменение логики сценария. Это будни.
    Во втором случае помогут своевременный контроль результата и фантазия разработчика, предусматривающего лишние проверки «на всякий случай».
    Некорректные бизнес-настройки Без предупреждения изменены или не актуализированы нетехнические настройки, за которые отвечает бизнес. Например, бизнес-пользователи по каким-то причинам производят замену сертификата, используемого в сценарии обмена сообщениями, робот продолжает использовать старый – возникает сбой. Всегда должен быть куратор от бизнеса, который следит за актуальными настройками и своевременно оповещает о внесении изменений.
    Потеря компетенции у бизнес-пользователей После роботизации процесса у бывших исполнителей появляется соблазн полностью отстраниться от участия в процессе, в том числе в разборе сложных ситуаций и ручном исполнении в случае сбоя. А в случае замены сотрудников может возникнуть ситуация, когда уже никто со стороны бизнеса не знает, как выполнить нужные операции. Это снова про куратора процесса.
    Также должен быть определен план действий (или смирение с потерями) в аварийном случае, когда сбой роботизации невозможно оперативно устранить.
    В некоторых случаях стоит оформить и сохранить инструкции по выполнению операций.
    Безопасность Робот со временем обрастает связкой «ключей от всех дверей». Взлом сервера скомпрометирует все учетные данные, которые там хранятся. С осторожностью назначать права доступа.
    При необходимости изолировать окружение робота от корпоративных ресурсов.
    Хранить используемые в сценариях пароли только в зашифрованном виде.
    И вообще, специалисты ИБ могут давать отличные советы, когда не заняты затягиванием согласований.
    Кстати, некоторые из платформ RPA прошли сертификацию на соответствие стандартам ИБ.

    Всё это либо общие для IT риски, либо следствия неопределенности при работе с неподконтрольными сервисами и приложениями. При «классической автоматизации» работы с внешними веб-сервисами точно так же возникнет сбой при неожиданном изменении последних.

    Идеальный пример с точки зрения управления рисками: RPA внедряется в компании с единственной целью – «загнать» десятки роботов в SAP конкретную информационную систему. Экономический эффект просчитан, разработкой сценариев занимаются опытные специалисты, сформулированы детальные ТЗ с привлечением экспертов, все взаимодействие регламентировано, среды контролируются, отлажен порядок тестирования.
    Но это лишь один из вариантов использования роботов.

    О постановке задач

    Условно можно выделить два подхода к постановке задач:

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

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

    Исходя из обозначенных ранее рисков, при постановке задачи необходимо:

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

      О сроках

      Срок разработки и запуска в эксплуатацию сценария не может быть постоянной величиной, он зависит от:

      • целевого приложения/сервиса
        Проще всего автоматизировать работу с сайтами, не перегруженными скриптами. Труднее среднего роботизировать с дополнительными обработками и старые приложения, написанные на Delphi. Проблемы решаемые, но требуют внимания и занимают дополнительное время.
      • сложности реализуемой логики
        Не только в части бизнес-правил, но и в части общего алгоритма работы сценария, технических решений по манипулированию данными, обеспечения отказоусточивости и пр.
        Чем больше шагов и правил содержит сценарий – тем больше срок разработки.
      • требований к составлению документации

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

      Есть еще и непрогнозируемые факторы простоя:

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

      Замечу, что RPA хорошо вписывается в гибкие подходы.

      Часто можно уже через несколько часов разработки показать заказчику прототип сценария с хотя бы частично реализованной бизнес-логикой, на этом этапе могут быть выявлены дополнительные требования, о которых не вспомнили при постановке задачи. Разумеется, на этом разработка не заканчивается – предстоит проработка деталей и работа над отказоустойчивостью. Последним можно пренебречь разве что в «одноразовых» сценариях, что позволяет очень оперативно прийти на помощь бизнесу.

      А иногда заказчики заинтересованы в поэтапном внедрении с оценкой промежуточных результатов.

      Архитектура

      Минимально необходимых компонента всего два:

        Студия, при помощи которой разработчик создает и публикует сценарии

      Робот, который выполняет один из доступных сценариев по команде
      Робот должен быть запущен в интерфейсной сессии, иначе он не сможет взаимодействовать с экранными формами приложений. Есть несколько вариантов в каком окружении запускать робота, это может быть:

      • физический ПК, на котором выполнен вход в интерфейсную сессию
      • RDP-сессия на сервере
      • виртуальная машина

      Или в этом окружении должны быть установлены и настроены приложения, которые использует робот при выполнении сценариев, или робот может использовать RDP/Citrix подключение к удаленному серверу с необходимыми приложениями.

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

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

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

      У меня же управление реализовано на стороне SQL сервера.

      Связка RPA с другими сервисами позволяет существенно расширить возможности роботизации:

      • Самое очевидное – почта и мобильные мессенджеры
        Для рассылки сообщений или даже приема команд.
      • Самое интересное – BPM -система
        Для обеспечения формализованного взаимодействия с сотрудниками.
        В простом случае пользователь просто ставит задачу роботу, заполнив необходимые для сценария параметры, робот выполняет и закрывает ее.
        В более сложном – на задачах реализован полный бизнес-процесс со подэтапами, сроками и ответственными, робот подключается на заданных этапах маршрута. Робот может и сам создавать задачи по расписанию или при выполнении определенных условий, т.е. инициировать начало бизнес-процесса.
        При либеральном подходе в качестве альтернативы можно рассмотреть и облачные «командные» сервисы с открытым API.
      • Самое фантастическое – голосовые и чат-боты
        Сотрудники на естественном языке общаются с ботами, которые уточняют постановку задач для роботов. Последние уже выполняют механическую работу с конкретными системами и передают результат по обратной цепочке.

      Выбор платформы

      О знакомстве с функционалом

      Вендоров RPA несколько десятков. При первичной выборке я обращал внимание прежде всего на наличие открытой документации и пробного периода – и это исключило почти всех.
      Как можно получить представление о конкретном решении:

      • Пробный период
        Бесплатное использование платформы в течение ограниченного срока – безусловно, лучший вариант для покупателя с планами на внутреннюю разработку.
      • Документация, форумы, видео уроки
        Позволяют поверхностно оценить возможности и вопросы. которые возникают при использовании.
      • Демонстрация
        Представители с ноутбука запускают демонстрационный стенд, отвечают на вопросы.
      • Референс-визит
        Демонстрация у действующих клиентов вендора. По сравнению с предыдущим пунктом можно узнать, с какими трудностями столкнулись при внедрении.
      • Пилотный проект
        Обсуждал с несколькими партнерами такой вариант, схемы похожие:
        • Заказчик выбирает показательный процесс, описывает требования, платит порядка полумиллиона рублей
        • Через пару месяцев партнер разворачивает стенд у заказчика с разработанным процессом
        • Заказчик имеет право использовать разработанный сценарий в течение нескольких месяцев, после чего принимает решение о покупке

        О стоимости

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

        Существуют даже бесплатные версии платформ RPA, имеющие некоторые ограничения (не обязательно функциональные). Отдельные возможности можно реализовать и на решениях, не относящихся к миру RPA: средства автоматизации управления web-браузером, макросы, сценарные языки, системы автоматизации тестирования и т.д.

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

        Другая крайность: использование десятков и сотен роботов в условиях высокой нагрузки, большие команды разработки из сертифицированных разработчиков. И на лицензии, и на ФОТ порядок затрат будет в десятках миллионов рублей в год. Становятся заметными расходы на инфраструктуру.

        Посередине между ними варианты с покупкой минимально необходимого набора лицензий на коммерческие версии платформ с использованием штатного модуля управления запуском (порядок затрат на лицензии в миллионах рублей в год), так и без него (от нескольких сот тысяч рублей в год).

        Есть разные варианты привязки лицензии на робота и Студию, но общий подход такой: «один одновременно запущенный экземпляр = одна лицензия».

        Чего не хватает в используемой платформе RPA

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

        Все мои пожелания сводятся к процессу разработки сценариев:

        По моему мнению, идеологически неправильно представлять операции с экранными формами приложений и сайтов в виде простой последовательности действий. Это выглядит лаконично и легко для восприятия, но не способствует грамотному подходу к отказоустойчивости.
        Простой пример: робот нажал на кнопку (а точнее попытался нажать) и 5 минут ждет появления сообщения «ОК». Если сообщение появилось – хорошо, если нет – возникает сбой. А если приложение «вылетело» через 10 секунд после нажатия кнопки? А если через две минуты возникло сообщение об ошибке? Робот все равно будет ждать 5 минут, не сможет выполнить второе действие – чтение сообщения, и только тогда выведет сбой.
        Я использую собственные шаблоны и библиотеки, в которых это учтено, но от их использования в сценарии страдает читаемость, гораздо удобнее и нагляднее был бы встроенный контейнер по примеру тест-кейса:

        Что сделать Что должно произойти Чего точно не должно произойти
        Нажать кнопку Появилось сообщение «ОК» Не должно появиться сообщение об ошибке
        Приложение не должно пропасть из списка запущенных процессов

        У меня еще есть опция периодически повторять инициирующее действие (а если приложение просто не среагировало на нажатие кнопки?).
        Здесь смысл не столько в том, что неудобно и плохо читается, а в том, что это должен быть стандарт работы с экранными формами.

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

        • контролировать общее время выполнения сценария, а не только отдельного шага
        • иметь возможность «отлова» мешающих выполнению основного сценария случайных диалогов («Поступило новое сообщение»)

        Как развитие предыдущего пункта – автоматический выбор настроек мне только мешает, приходится специально каждый раз переоткрывать формы настроек, проверять, перевыбирать, исправлять. Это касается:

        • типов переменных, особенно раздражает в циклах For Each
        • целей для операций с экранными формами – селекторов
        • имен действий

        Явное указание этих настроек при инициации вместо присвоения значений «по умолчанию» было бы гораздо лучше.

        Требования к разработчикам сценариев

        Подходы к разработке

        Любой сценарий и состоит из действий (Activity). Они выполняют полезные операции: кликнуть мышкой, присвоить переменной значение, объединить файлы pdf в один и т.п. В их свойствах разработчик сценария уточняет, как именно нужно выполнить действие.
        Вендоры платформ предлагают большой набор готовых действий, что позволяет «программировать квадратиками» без навыков разработки.

        Некоторые платформы RPA предоставляют возможность использовать только заранее предусмотренные вендором действия.
        Некоторые – предусматривают возможность расширения за счет:

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

        Обучение

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

        Ключевые навыки

        Каким же должен быть разработчик сценариев RPA? Не обязательно опытным программистом, это мы уже выяснили.

        Работа с заказчиками, обследование процессов, поиск обходных решений, предложение лучшего варианта реализации, анализ возможных точек сбоя, разработка алгоритмов как в части сценария, так и в части формализации бизнес-процесса – для этого нужно быть прежде всего аналитиком. Подход «просто делать что сказали» здесь работает плохо.

        • Обязателен опыт программирования
        • Обязателен опыт работы в 1С/SAP
        • Наличие сертификатов приветствуется
        • Изредка выполнять функции аналитика

        Ну что ж, я не все понимаю в этой жизни.

        Если сузить вопрос до перечисления навыков и технологий, то это прежде всего:

        • Уверенное понимание:
          • Типов данных
            Для начала вполне хватит базовых: строки, числа, даты, булевые, массивы.
            Интерес ко всяким DataTable, Attachment и Dictionary придет в процессе работы.
          • Циклов и условных переходов
          • Управления исключениями
          • Структуры XML+HTML
            это необходимо для тонкой настройки целей для действий в экранных формах
          • Синтаксиса RegEx

          Следующие навыки менее важны, требуются не всегда и/или придут с опытом:

          • SQL
            на уровне выборок, манипулирования данными, создания простых процедур и функций
          • JSON
            Как для использования в веб-сервисах, так и просто для хранения и передачи данных в сценариях.
          • REST и SOAP запросы
          • VBA
            на уровне «найти подходящий пример и адаптировать»
          • Языки программирования, поддерживаемые платформой

          Заключение

          Я выделяю 3 ключевые особенности технологии RPA, которые отличают роботизацию от «классической» автоматизации и других решений создания сценариев:

          1. Возможность имитации поведения пользователя в приложениях
          2. Легкость освоения разработки сценариев
          3. Стандартизированная и документированная среда разработки

          Благодаря этому у роботизации широкие возможности применения для бизнеса разных масштабов.

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

           

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *