Разработка интерфейса запуска и управления множественными удалёнными задачами
|
ВВЕДЕНИЕ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1 Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1 Термины и определения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Общие требования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3 Требования к безопасности . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3.1 Общие требования к безопасности . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Требования к совместимости . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5 Обзор задач подлежащих автоматизации . . . . . . . . . . . . . . . . . . . . 10
2 Общая архитектура и взаимодействие с
приложениями-клиентами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1 Размещение системы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.1 Размещение на выделенном сервере . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.2 Размещение системы на локальных машинах пользователей . . . . . . . . . 14
2.2 Взаимодействие с приложениями-клиентами . . . . . . . . . . . . . . . . . . 15
2.2.1 Взаимодействие посредством общей памяти . . . . . . . . . . . . . . . . . . 15
2.2.2 Взаимодействие через сеть . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.3 Взаимодействие через файлы . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 Взаимодействие с удаленными задачами . . . . . . . . . . . . . . . . . . . . 17
2.3.1 Юнит-контроллер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3 Внутренняя архитектура . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1 Менеджер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1.1 Запуск юнитов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1.2 Обработка команд общего обслуживания системы и генерация событий . . 21
3.2 Протокол обмена сообщениями . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.1 Сообщения-команды от клиентов . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.2 Сообщения-обновления от юнитов . . . . . . . . . . . . . . . . . . . . . . . . 23
23.3 Рассмотрение сценариев поведения при частичной неработоспособности системы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3.1 Разрыв связи с удаленной машиной . . . . . . . . . . . . . . . . . . . . . . . 24
3.3.2 Выход из строя менеджера . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4 Особенности реализации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.1 Используемые технологии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.1.1 Язык Python 2.7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.1.2 Библиотека ZeroMQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2 Общие и вспомогательные элементы . . . . . . . . . . . . . . . . . . . . . . . 28
4.2.1 Событийно-ориентированная архитектура . . . . . . . . . . . . . . . . . . . 28
4.2.2 Семейство классов Worker . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.2.3 Класс Logger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.3 Менеджер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.3.1 Прием и отправка сообщений . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.3.2 Запуск новых юнитов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.4 Базовый шаблон юнита . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.4.1 Класс UnitWorker и его потомки . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.4.2 Класс UnitContext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.5 Универсальный юнит-контроллер . . . . . . . . . . . . . . . . . . . . . . . . 40
4.5.1 Буферизация вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.5.2 Ожидание завершения процесса . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.5.3 Запуск в мультиплексоре GNU Screen . . . . . . . . . . . . . . . . . . . . . . 42
4.6 Универсальный монитор . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
ЗАКЛЮЧЕНИЕ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ . . . . . . . . . . . . . . . . . . . . 45
ПРИЛОЖЕНИЯ
1 Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1 Термины и определения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Общие требования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3 Требования к безопасности . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3.1 Общие требования к безопасности . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Требования к совместимости . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5 Обзор задач подлежащих автоматизации . . . . . . . . . . . . . . . . . . . . 10
2 Общая архитектура и взаимодействие с
приложениями-клиентами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1 Размещение системы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.1 Размещение на выделенном сервере . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.2 Размещение системы на локальных машинах пользователей . . . . . . . . . 14
2.2 Взаимодействие с приложениями-клиентами . . . . . . . . . . . . . . . . . . 15
2.2.1 Взаимодействие посредством общей памяти . . . . . . . . . . . . . . . . . . 15
2.2.2 Взаимодействие через сеть . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.3 Взаимодействие через файлы . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 Взаимодействие с удаленными задачами . . . . . . . . . . . . . . . . . . . . 17
2.3.1 Юнит-контроллер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3 Внутренняя архитектура . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1 Менеджер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1.1 Запуск юнитов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1.2 Обработка команд общего обслуживания системы и генерация событий . . 21
3.2 Протокол обмена сообщениями . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.1 Сообщения-команды от клиентов . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.2 Сообщения-обновления от юнитов . . . . . . . . . . . . . . . . . . . . . . . . 23
23.3 Рассмотрение сценариев поведения при частичной неработоспособности системы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3.1 Разрыв связи с удаленной машиной . . . . . . . . . . . . . . . . . . . . . . . 24
3.3.2 Выход из строя менеджера . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4 Особенности реализации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.1 Используемые технологии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.1.1 Язык Python 2.7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.1.2 Библиотека ZeroMQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2 Общие и вспомогательные элементы . . . . . . . . . . . . . . . . . . . . . . . 28
4.2.1 Событийно-ориентированная архитектура . . . . . . . . . . . . . . . . . . . 28
4.2.2 Семейство классов Worker . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.2.3 Класс Logger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.3 Менеджер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.3.1 Прием и отправка сообщений . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.3.2 Запуск новых юнитов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.4 Базовый шаблон юнита . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.4.1 Класс UnitWorker и его потомки . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.4.2 Класс UnitContext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.5 Универсальный юнит-контроллер . . . . . . . . . . . . . . . . . . . . . . . . 40
4.5.1 Буферизация вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.5.2 Ожидание завершения процесса . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.5.3 Запуск в мультиплексоре GNU Screen . . . . . . . . . . . . . . . . . . . . . . 42
4.6 Универсальный монитор . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
ЗАКЛЮЧЕНИЕ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ . . . . . . . . . . . . . . . . . . . . 45
ПРИЛОЖЕНИЯ
Современные крупные организации имеют сложные компьютерные сети, состоящие из
многих устройств различных видов, выполняющих разнообразные как серверные, так и
клиентские функции. В таких сетях в ходе эксплуатации неизбежно возникает множество
проблем различного рода. Часть проблем могут быть решены с помощью типовых процедур (задач), которые хорошо поддаются автоматизации. Даже многие нестандартные и
комплексные проблемы требуют выполнения таких процедур, как части решения.
Даже с учетом применения хороших практик построения меж-командного взаимодействия, при достаточно больших размерах сети команды технической поддержки могут
быть существенно обременены и необходимостью ручного запуска автоматизированных
процедур, и контролем за их выполнением. Решению задачи также зачастую сопутствуют
процедуры принятия запроса на обслуживание и ответа на этот запрос. Таким образом,
инженер технической поддержки, решая несколько задач одновременно, вынужден распылять свое внимание на малозначимые шаблонные действия, что сказывается как на общей
производительности труда так, и на качестве решения проблем.
Именно в наше время крупные компании, зачастую никак не связанные с информационными технологиями, вынуждены проводить компьютеризацию. Продолжают образовываться крупные сети, содержащие тысячи и десятки тысяч устройств. Команды обслуживания таких сетей вынуждены разделяться на более мелкие и специализированные, чтобы
совладать с ростом инфраструктуры, а меж-командное взаимодействие, тем временем, все
больше структурированным и формальным. Таким образом, именно сейчас проблема возникновения большого количества формальных рабочих процедур требует решения.
Целью данной работы является построение программного комплекса, предоставляющего интерфейс для запуска и контроля выполнения удаленных задач в соответствии с
предоставленными требованиями к информационной безопасности.
Для достижения этой цели будут проведены:
– анализ и сравнение возможных способов предоставления доступа к интерфейсу,
– анализ и сравнение способов коммуникации с удаленными устройствами,
– анализ и сравнение моделей меж-процессного взаимодействия и выбор наиболее устойчивой к сбоям моделям,
4– построение протокола взаимодействия с интерфейсом.
Практическая значимость исследования заключается в возможности применения построенного программного комплекса на реальном проекте. Требования, предъявляемые к
программному комплексу, определяются спецификой этого конкретного проекта и пожеланиями работающих на нем инженеров.
Для уменьшения потерь эффективности на формальной рутине применяется множество структурных решений. Все такие решения жестко привязаны к специфике той инфраструктуры, в которой они призваны работать, и могут быть распространены на иные
инфраструктуры других проектов лишь только в виде общих концепций. Часто специфические требования и особенности работы инфраструктуры и вовсе не позволяют привносить в нее зарекомендовавшие себя средства решения схожих проблем. Новизна данной
работы, обусловлена тем, что готовых решений, которые можно применить на проекте, не
существует (либо они закрыты для стороннего пользования), и разрабатываемое решение
впервые решает задачу снижения нагрузки формальной рутины на инженеров проекта.
Данная работа состоит из введения, четырех глав и заключения.
В первой главе производится постановка задачи и обзор требований, в том числе требований к безопасности.
Во второй и третьей главах производится построение общей и внутренней архитектуры программного комплекса соответственно и сопутствующий анализ различных средств,
многих устройств различных видов, выполняющих разнообразные как серверные, так и
клиентские функции. В таких сетях в ходе эксплуатации неизбежно возникает множество
проблем различного рода. Часть проблем могут быть решены с помощью типовых процедур (задач), которые хорошо поддаются автоматизации. Даже многие нестандартные и
комплексные проблемы требуют выполнения таких процедур, как части решения.
Даже с учетом применения хороших практик построения меж-командного взаимодействия, при достаточно больших размерах сети команды технической поддержки могут
быть существенно обременены и необходимостью ручного запуска автоматизированных
процедур, и контролем за их выполнением. Решению задачи также зачастую сопутствуют
процедуры принятия запроса на обслуживание и ответа на этот запрос. Таким образом,
инженер технической поддержки, решая несколько задач одновременно, вынужден распылять свое внимание на малозначимые шаблонные действия, что сказывается как на общей
производительности труда так, и на качестве решения проблем.
Именно в наше время крупные компании, зачастую никак не связанные с информационными технологиями, вынуждены проводить компьютеризацию. Продолжают образовываться крупные сети, содержащие тысячи и десятки тысяч устройств. Команды обслуживания таких сетей вынуждены разделяться на более мелкие и специализированные, чтобы
совладать с ростом инфраструктуры, а меж-командное взаимодействие, тем временем, все
больше структурированным и формальным. Таким образом, именно сейчас проблема возникновения большого количества формальных рабочих процедур требует решения.
Целью данной работы является построение программного комплекса, предоставляющего интерфейс для запуска и контроля выполнения удаленных задач в соответствии с
предоставленными требованиями к информационной безопасности.
Для достижения этой цели будут проведены:
– анализ и сравнение возможных способов предоставления доступа к интерфейсу,
– анализ и сравнение способов коммуникации с удаленными устройствами,
– анализ и сравнение моделей меж-процессного взаимодействия и выбор наиболее устойчивой к сбоям моделям,
4– построение протокола взаимодействия с интерфейсом.
Практическая значимость исследования заключается в возможности применения построенного программного комплекса на реальном проекте. Требования, предъявляемые к
программному комплексу, определяются спецификой этого конкретного проекта и пожеланиями работающих на нем инженеров.
Для уменьшения потерь эффективности на формальной рутине применяется множество структурных решений. Все такие решения жестко привязаны к специфике той инфраструктуры, в которой они призваны работать, и могут быть распространены на иные
инфраструктуры других проектов лишь только в виде общих концепций. Часто специфические требования и особенности работы инфраструктуры и вовсе не позволяют привносить в нее зарекомендовавшие себя средства решения схожих проблем. Новизна данной
работы, обусловлена тем, что готовых решений, которые можно применить на проекте, не
существует (либо они закрыты для стороннего пользования), и разрабатываемое решение
впервые решает задачу снижения нагрузки формальной рутины на инженеров проекта.
Данная работа состоит из введения, четырех глав и заключения.
В первой главе производится постановка задачи и обзор требований, в том числе требований к безопасности.
Во второй и третьей главах производится построение общей и внутренней архитектуры программного комплекса соответственно и сопутствующий анализ различных средств,
Возникли сложности?
Нужна помощь преподавателя?
Помощь студентам в написании работ!
В результате выполнения данной работы был проведен анализ различных методов и
средств меж-процессной коммуникации. На основании этого анализа было спроектирован
и реализован программный комплекс, предоставляющий интерфейс для запуска удаленных задач со следующими возможностями:
– контроль вывода удаленной задачи и его ретрансляция клиентам,
– передача команд юниту, управляющему удаленной задачей, для изменения процесса
выполнения,
– отслеживание и логирование ошибок, возникающих во время выполнения удаленной
задачи.
Полученный программный комплекс устойчив к частичной потере работоспособности,
может работать со многими клиентами одновременно и соответствует заявленным требованиям, в том числе, требованиям к безопасности.
На момент написания этой работы программный комплекс находится на стадии тестирования и внедрения.
средств меж-процессной коммуникации. На основании этого анализа было спроектирован
и реализован программный комплекс, предоставляющий интерфейс для запуска удаленных задач со следующими возможностями:
– контроль вывода удаленной задачи и его ретрансляция клиентам,
– передача команд юниту, управляющему удаленной задачей, для изменения процесса
выполнения,
– отслеживание и логирование ошибок, возникающих во время выполнения удаленной
задачи.
Полученный программный комплекс устойчив к частичной потере работоспособности,
может работать со многими клиентами одновременно и соответствует заявленным требованиям, в том числе, требованиям к безопасности.
На момент написания этой работы программный комплекс находится на стадии тестирования и внедрения.
Pieter Hintjens; ZeroMQ. Messaging for Many Applications; O’Reilly Media, 2013.
2. Daniel J. Barrett, Richard E. Silverman, Robert G. Byrnes; SSH, The Secure Shell: The
Definitive Guide; O’Reilly Media, 2005.
3. Luciano Ramalho; Fluent Python: Clear, Concise, and Effective Programming 1st Edition;
O’Reilly Media, 2015.
4. Немет Э., Снайдер Г., Хейн Т., Уэйли Б.; Unix и Linux. Руководство системного администратора 4-е издание; ООО “И.Д. Вильямс”, 2012.
5. https://docs.python.org/2/; Оффциальная документация Python 2.7
2. Daniel J. Barrett, Richard E. Silverman, Robert G. Byrnes; SSH, The Secure Shell: The
Definitive Guide; O’Reilly Media, 2005.
3. Luciano Ramalho; Fluent Python: Clear, Concise, and Effective Programming 1st Edition;
O’Reilly Media, 2015.
4. Немет Э., Снайдер Г., Хейн Т., Уэйли Б.; Unix и Linux. Руководство системного администратора 4-е издание; ООО “И.Д. Вильямс”, 2012.
5. https://docs.python.org/2/; Оффциальная документация Python 2.7
Работу высылаем на протяжении 30 минут после оплаты.
Заказать работу
Заявка на оценку стоимости
Это краткая форма заказа. После ее заполнения вы перейдете на полную форму заказа работы
Каталог работ (128296)
- Бакалаврская работа (30820)
- Диссертация (947)
- Магистерская диссертация (17685)
- Дипломные работы, ВКР (52560)
- Главы к дипломным работам (2091)
- Курсовые работы (9469)
- Контрольные работы (6178)
- Отчеты по практике (1299)
- Рефераты (1436)
- Задачи, тесты, ПТК (611)
- Ответы на вопросы (147)
- Статьи, Эссе, Сочинения (880)
- Бизнес-планы (49)
- Презентации (99)
- РГР (82)
- Авторефераты (РГБ) (1688)
- Диссертации (РГБ) (1879)
- Прочее (376)
Новости
06.01.2018
Помощь студентам и аспирантам в выполнении работ от наших партнеров
Помощь в выполнении учебных и научных работ на заказ ОФОРМИТЬ ЗАКАЗ
дальше»» Все новости
Статьи
- Где лучше заказывать диссертации и дипломные?
- Выполнение научных статей
- Подготовка диссертаций
- Подводные камни при написании магистерской работы
- Помощь в выполнении дипломных работ
»» Все статьи
Заказать работу
Заявка на оценку стоимости
Это краткая форма заказа. После ее заполнения вы перейдете на полную форму заказа работы