Роботизированные системы. Результаты работы
Оглавление
- Введение
- Результаты
- Где развернуто
- Анализ производительности
- Масштабирование
- Заключение
- Список литературы
Результаты
В прошлых работах мы познакомились с историей пояления роботов, их классификацией и применении. Определили, что такое роботизированная система и актуализировали теорию для применения роботов в образовании.
Следующим шагом мы описали некоторые современные технологии, способные упростить реализацию любой роботизированной системы. Также описали лучшие на данный момент практики реализации информационных систем.
Далее по ходу работы нам удалось представить макет архитектуры, построенной на микросервисах. Данная архитектура в теории является универсальной для любой распределенной системы как таковой, что мы и показали в последующих главах. Мы рассмотрели несколько наиболее часло используемых программных компонентов и по итогу смогли понять, что любую бизнес логику возможно вынести в отдельный микросервис и встроить в систему, спроектированную на основе нашей архитектуры.
Далее мы наиболее подробно смогли описать устройство минимального сегмента нашей системы - микросервиса и обобщить, максимально инкапсулируя всю логику. Рассмотрели некоторые примеры.
В заключение теоретической части мы представили сервис распознавания лиц, основанный на алгоритмах машинного обучения, с некоторым теоретическим сопровождением.
На этом и подвели итоги вводной и теоретической частей работы.
Следующим этапом работы послужила практическая часть, в начале которой мы провели сбор функциональных требований. Реализацию системы мы начали с построения абстракции, в рамках чего составили техническое задание и соотнесли задачу с нашей обстракцией.
Наибелее важным этапом послужила именно реализация с представлением примеров программных компонентов.
В первую очередь мы рассмотрели сервис маршрутизации с технологией единого входа, созданного для обстрагирования сервисов от реализации авторизации и аутентификации.
В рамках этой системы сервис работает максимально автономно и выполняет только свою основную функцию.
Основным сервисом со стороны бизнес логики системы выступил сервис распознавания лиц. В качестве основной технологии выступил язык программирования Python 3. Сервис способен распознавать человека после сопоставления с базой известных сигнатур по фотографии.
Основным интерфейсом взаимодействия пользователя с системой послужило веб приложение, написанное с использованием библиотеки React.js, были представлены основные компоненты и описан способ добавления сопутствубщей логики.
Далее мы рассмотрели способ упрвления производительностью системы и развертывание на сервере, на чем и завершили основную часть работы, так как сопоставили этот этап с конечным результатом, основываясь на схеме жизненного цикла проекта.
Где развернуто 1
В качестве сервера для развертывания системы была использована машина с операционной системой Alpine Linux. Система спроектирована для управления Docker контейнерами при помощи docker compose. Каждый отдельный микросервис в итоге представляет именно такой Docker контейнер.
Анализ производительности 2 3
Для выравнивания нагрузки был использован метод распределения заданий между несколькими сетевыми устройствами или контейнерами с целью оптимизации использования ресурсов, сокращения времени обслуживания запросов, горизонтального масштабирования кластера, а также обеспечения отказоустойчивости или резервирования (load balancing)
Для этой нетривиальной задачи мы выбрали PM2. PM2 представляет собой менеджер процессов с открытым исходным кодом. В основном применяется в средах, где необходимо запустить приожение на NodeJS, но также его можно использовать и сдругими языками.
Для примера команда pm2 start app.js “демонизирует” процесс NodeJS, следит за потреблением им памяти и считает нагрузку на процессор.
Команда такого вида pm2 start app.js -i max позволяет тому же приложению использовать все имеющиеся ресурсы системы.
По итогам тестирования удалось определить, что на данный момент система способна работать на среднем потреблении ресурсов в силу того, что все необходимые сервисы способны поочередно выполнять свои функции и это не помешает общей функциональности системы. Увеличение числа пользователей решается горизонтальный масштабированием.
Для мониторинга системы можно воспользоватся командой pm2 monit.
Масштабирование 4
Масштабирование системы производится добавлением нового контейнера с микросервисом в систему. Для примера систему можно расширить такими возможностями:
- Разнообразные сервисы обработки данных
- Развитие сервисов компьютерного зрения
- Голосовой модуль
- Управление переферийными устройствами
- Хранение данных
- Сбор и обработка статистики
На этом список однозначно не ограничивается. Система способна адаптироваться под требования пользователей.
Заключение
В заключение можно сказать, что была проделана сложная и кропотливая работа. Были достигнуты все поставленные цели, а разработанную систему уже можно использовать в целях создания распределенных роботизированных систем.
На самом деле показанная архитектура подойдет не только для роботизированных систем. Если любая абстрактная задача имеет пересечение с собранными в рамках данной работы функциональми требованиями, то решить ее можно при помощи подобной архитектуры, что говорит о большой степени абстракции и универсальности результата.
Список литературы
-
Горелик Д. В. Использование контейнеров для построения системы работы с удаленными виртуальными машинами // Семидесятая Международная студенческая научная конференция ГУАП: сб. докл. Ч. 2. Технические науки. СПб.: ГУАП, 2017. С. 66-69. ↩︎
-
Четверушкин Б.Н. Высокопроизводительные многопроцессорные вычислительные системы // Вестник РАН. - 2002. - Т. 72, № 9. ↩︎
-
Копысов С.П. Динамическая балансировка нагрузки для параллельного распределенного МДО // Методы и средства обработки информации / Под ред. Королева Л.Н. - M.: МГУ, 2003. ↩︎
-
FOWLER M. Patterns of Enterprise Application Architecture. -Addison-Wesley Professional, 2002. - 560 p. ↩︎
Комментарии