Автор молодец, просто работа не нужна больше
Подробнее о работе
Гарантия сервиса Автор24
Уникальность не ниже 50%
ВВЕДЕНИЕ 3
1. ОБЗОР 5
1.1 Обзор аналогов 5
1.2 Классификация систем 8
1.3 Пример использования в программных продуктах… 10
2. ТЕХНОЛОГИИ 11
3. АНАЛИЗ 16
4. РЕЗУЛЬТАТ РАБОТЫ 22
4.1 Проектирование… 22
4.2 Компонента “Memory”… 23
4.3 Адаптеры… 25
4.4 Компонента “Deligate”… 28
4.5 Компонента “Consumer”… 29
ГЛОССАРИЙ 31
ЗАКЛЮЧЕНИЕ 34
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 36
ПРИЛОЖЕНИЕ 37
1.1 Обзор аналогов
Осознание необходимости создания системы выполнения периодических заданий обоснованно увеличивающимся количеством продуктов, решающих проблемы в направление расписаний, и исследований, производимых в данной области.
Выполнение заданий – это параметризуемый процесс. Ряд программ имеют функциональность благодаря которой можно задать параметры, изменяющие поведение системы при выполнении задач.
Разработчики продукта Microsoft создали модуль под названием cron[8] (планировщик задач) - программное обеспечение, часто называемое сервисом операционной системы, производящее запуск программ в зависимости от различных параметров, например:
1. Наступление определенного времени
2. Переход системы в некоторое состояние (бездействие, режим ожидания)
3. Вызов выполнения администратором операционной системы
В планировщике имеются некоторые настройки.
...
1.2 Классификация систем
Существуют несколько классификаций систем периодического выполнение заданий:
1. По реализации
2. По параметризации
Классификация по реализации представляет из себя разделение на платформы для которых созданы решения. Примером платформ является: дополнения для фреймворков, консольные приложения, браузерные решения. Второй классификацией является разделения реализаций по
1. Реализация параметризируемых заданий
2. Реализация программных единоразовых задач
3. Реализация программных периодических задач
Реализация параметризируемых заданий – выполнение задач: через
определенный интервал времени, при наступлении заданного времени или по расписанию. Под параметризацией подразумевается передача параметров, изменяющих поведение процесса, распределения и выборки заданий.
Реализация программных единоразовых задач – выполнение задач один раз при наступлении заданного времени или сразу после создания.
...
1.3 Пример использования в программных продуктах
Youtrack - Информационная система (dashboard), разработанная для помощи, как командам разработчиков, так и менеджерам проектов. В представленной программе существуют 17 разных генерируемых отчетов. Они делятся на отчеты о ходе работ и отчеты о состоянии проекта.
Планировщик задач Windows – в версиях ОС Windows до XP включительно представленные сервис планировался использовать, для операций совершаемых конечным пользователем. Начиная с Windows Vista данное программное обеспечение широко используется самой ОС для администрирования устройства (дефрагментации разделов жёсткого диска, тестирования компонентов, индексирования файлов и т. д.). Параллельно для Windows создан и независимый планировщик NnCron.
Теоретическая и практическая значимость проблем периодического выполнения параметризируемых задач и определили выбор темы диплома, его цель и задачи.
2.
...
2. ТЕХНОЛОГИИ
Для создания приложения использовались такие технологий как:
1. PHP 5.6
2. NGINX
3. Symfony
4. VueJs
5. RabbitMQ
6. Composer
PHP - это распространенный язык программирования не имеющий определенного назначения, с открытым исходным кодом. Архитектура PHP создана специальным образом для разработки продукта любого предназначения. PHP может удовлетворить потребности программистов любого уровня. PHP поддерживает несколько режимов работы:
1. FCGI
2. CLI
FCGI - общий интерфейс шлюза, стандарт, описывающий, каким образом веб-сервер, в нашем случае nginx должен взаимодействовать с программами (скриптами), как веб-сервер должен передавать параметры HTTP-запроса, как должны отдавать результат своей работы веб-серверу. Программу работающую с веб-сервером по протоколу CGI обычно называют шлюзом, на 5 рисунке представлена схема взаимодействия в FCGI режиме.
...
4.1 Проектирование
Перед началом разработки программного продукта была разработана архитектура удовлетворяющая следующий критериям[7]:
1. Гибкость системы – необходимо, чтобы часть разрабатываемого программного продукта можно было изменить, дополнить без особых усилий. Чем быстрее и удобнее можно внести изменения в существующий функционал, чем меньше проблеми ошибок это вызовет - тем гибче и система.
2. Расширяемость системы - возможность добавлять в программный продукт новый функционал, не изменяя ее основной структуры.
3. Тестируемость - код, который в большей степени склонен к тестированию, содержит меньше ошибок и стабильнее работать.
4. Возможность повторного использования – возможность использования, фрагментов программы повторно в других системах.
Рисунок 5 – Схема взаимодействия
Система разработанная в рамках данной дипломной работы состоит из нескольких подсистем, в дальнейшим они будут называться компонентами.
...
4.2 Компонента “Memory”
Компонента “Memory” создана для хранения задач. При разработке данной части программного продукта был выявлен набор свойств задач, использующихся в схожих по назначению системах:
1. Дата последнего запуска(runDate)
2. Время между запусками задач(cycleTime)
3. Дата первоначального запуска(date)
4. идентификатор задачи(identificator)
5. консольная команда(command)
6. опции запускаемой команды(options)
Взаимодействие различных классов внутри компоненты первоначально описалось на уровне интерфейсов[1]. Каждый из интерфейсов имеет свой уровень ответственности. Компонента состоит из основной части, интерфейс которой называется TaskMemory, предназначающийся для взаимодействия с задачами, и части для ее конфигурации, интерфейс которой называется TaskMemoryConfig. В реализации интерфейса TaskMemory существуют такие методы как:
1.
...
4.3 Адаптеры
В реализованом программном продукте процесс формирования задач
может осуществляться тремя способами:
1. Используя адаптер
2. Используя аннотацию
3. Используя командную строку
При разработке, в определенный момент времени может понадобиться формирование задач в ходе выполнения кода, для этого была разработана библиотека взаимодействия с компонентой “Memory” под названием “TaskMemoryPHPImpl”. Так как взаимодействие с “Momry” производиться через интерфейс командной строки, то была реализована сериализация обьекта Task, из библиотеки “CommandBuilder” , в строковое представление. К примеру для сохранения задач используя командную строку необходимо выполнить php taskMemory.php -m="save" -i="test" -t="120" -d="1527173011"
-c="php /some/path/script.php -f -flag=test". А для сохранение вышесказанной задачи из программного кода необходимо сформировать обьект Task и передать его в метод save библиотеки “TaskMemoryPHPImpl”.
...
4.4 Компонента “Deligate”
После того как задачи были добавлены в хранилище, необходимо инициализировать их запуск. Для этого была разработана компонента “Deligate“, которая использует RabbitMQ. Главным плюсом использования посредника сообщений, как RabbitMQ[9], является - отправитель, посредник и получатель могут быть на разных физических/виртуальных машинах, которые могут быть даже разделены локализационно.
Инициализация запуска происходит седующим образом:
1. Происходит запрос в “Memory“ для получения списка всех задач.
2. Отсеивание тех задач , которые необходимо запустить
3. Добавление задачи в RabbitMQ
4. Посылается запрос на обновление информации о задаче в хранилище или ее удаление(если в настройках задачи не задана периодичность).
Рисунок 10 – Результата работы “Deligate”
На 10 рисунке показан результат деятельности скрипта “Deligate”. В административной панели RabbitMQ можно увидеть, что сообшение успешно добавлено в очередь.
...
ГЛОССАРИЙ
Архитектура системы
Принципиальная организация системы, воплощенная в её элементах, их взаимоотношениях друг с другом и со средой, а также принципы, направляющие её проектирование.
Аннотация
Аннотации используются для анализа кода, компиляции или выполнения. Аннотируемы пакеты, классы, методы, переменные и параметры. Выглядит как @ИмяАннотации , предваряющее определение переменной, параметра, метода, класса, пакета.
Бандл
Бандл по своему смыслу близок к понятию плагина, но с важным отличием: весь функционал в симфони предоставляется бандлами (видимо подразумевается что "функции ядра", как таковые не доступны прикладному программисту, т.е. ядро лишь руководит бандлами, напр., их загрузкой).
Веб сервер
Веб-сервер включает в себя несколько компонентов, которые контролируют доступ веб-пользователей к размещенным на сервере файлам, как минимум
— это HTTP-сервер.
...
ЗАКЛЮЧЕНИЕ
Тема автоматизации выполнения повседневных или единоразовых задач обслуживания на компьютере становится, с течением времени, всё более актуальной. Чем больше функций разрабатывается в определенном программной продукте, тем больше выявляется задач по обслуживанию. Но компьютер - на то он и машина, чтобы брать наиболее рутинную работу на себя, оставляя для человека лишь разрешенные действия. Функциональность периодического выполнение заданий является неотьемлемой частью систем любого размера. В рамках данной выпускной квалифицированной работы были выявлены и проанализированы системы имеющие частичную функциональность периодического выполнение заданий. Проанализированы такие программные продукты как :
1. Cron
2. Scheduled
3. RabbitMQ
4. JMSJobQueueBundle
Так же был приведен пример применения периодического выполнения заданий:
1. Youtrack
2.
...
1. Денис Колисниченко. PHP и MySQL. Разработка Web-приложений - М.: ПитерСПб 2017. - 814 c.
2. Информационный блок для работы на занятии [Электронный ресурс] - https://www.metod-kopilka.ru/page-4-1-13-9.html
3. Кетов Дмитрий Владимирович. Внутреннее устройство операционной системы Linux. – М.: Paiter, 2017 . – 428 с.
4. Крейг Уоллс Spring в действии. – М.: ПитерСПб, 2013 – 752 с.
5. Фримен Э., Робсон Э. Head First. Паттерны проектирования. Обновленное юбилейное издание - М.: ПитерСПб, 2018 . - 656 с.
6. Линн Бейли, Майкл Моррисон. Head First PHP & MySQL: A Brain- Friendly Guide - М.: ПитерСПб, 2008. - 774 c.
7. Мэтт Зандстра. PHP Objects, Patterns, and Practice, Second Edition - М.: Zend 2014. 1-е изд. - 576 с.
8. Cron , систематический запуск задач [Электронный ресурс] - http://help.ubuntu.ru/wiki/cron
9. RabitMQ очереди выполнения задач [Электронный ресурс] https://www.cloudamqp.com/blog/2017-12-29-part1-rabbitmq-best- practice.html
10. Linux (CentOS/Debian). Level 1. Administration and security fundamentals (администрирование unix систем)
Не подошла эта работа?
Закажи новую работу, сделанную по твоим требованиям
ВВЕДЕНИЕ 3
1. ОБЗОР 5
1.1 Обзор аналогов 5
1.2 Классификация систем 8
1.3 Пример использования в программных продуктах… 10
2. ТЕХНОЛОГИИ 11
3. АНАЛИЗ 16
4. РЕЗУЛЬТАТ РАБОТЫ 22
4.1 Проектирование… 22
4.2 Компонента “Memory”… 23
4.3 Адаптеры… 25
4.4 Компонента “Deligate”… 28
4.5 Компонента “Consumer”… 29
ГЛОССАРИЙ 31
ЗАКЛЮЧЕНИЕ 34
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 36
ПРИЛОЖЕНИЕ 37
1.1 Обзор аналогов
Осознание необходимости создания системы выполнения периодических заданий обоснованно увеличивающимся количеством продуктов, решающих проблемы в направление расписаний, и исследований, производимых в данной области.
Выполнение заданий – это параметризуемый процесс. Ряд программ имеют функциональность благодаря которой можно задать параметры, изменяющие поведение системы при выполнении задач.
Разработчики продукта Microsoft создали модуль под названием cron[8] (планировщик задач) - программное обеспечение, часто называемое сервисом операционной системы, производящее запуск программ в зависимости от различных параметров, например:
1. Наступление определенного времени
2. Переход системы в некоторое состояние (бездействие, режим ожидания)
3. Вызов выполнения администратором операционной системы
В планировщике имеются некоторые настройки.
...
1.2 Классификация систем
Существуют несколько классификаций систем периодического выполнение заданий:
1. По реализации
2. По параметризации
Классификация по реализации представляет из себя разделение на платформы для которых созданы решения. Примером платформ является: дополнения для фреймворков, консольные приложения, браузерные решения. Второй классификацией является разделения реализаций по
1. Реализация параметризируемых заданий
2. Реализация программных единоразовых задач
3. Реализация программных периодических задач
Реализация параметризируемых заданий – выполнение задач: через
определенный интервал времени, при наступлении заданного времени или по расписанию. Под параметризацией подразумевается передача параметров, изменяющих поведение процесса, распределения и выборки заданий.
Реализация программных единоразовых задач – выполнение задач один раз при наступлении заданного времени или сразу после создания.
...
1.3 Пример использования в программных продуктах
Youtrack - Информационная система (dashboard), разработанная для помощи, как командам разработчиков, так и менеджерам проектов. В представленной программе существуют 17 разных генерируемых отчетов. Они делятся на отчеты о ходе работ и отчеты о состоянии проекта.
Планировщик задач Windows – в версиях ОС Windows до XP включительно представленные сервис планировался использовать, для операций совершаемых конечным пользователем. Начиная с Windows Vista данное программное обеспечение широко используется самой ОС для администрирования устройства (дефрагментации разделов жёсткого диска, тестирования компонентов, индексирования файлов и т. д.). Параллельно для Windows создан и независимый планировщик NnCron.
Теоретическая и практическая значимость проблем периодического выполнения параметризируемых задач и определили выбор темы диплома, его цель и задачи.
2.
...
2. ТЕХНОЛОГИИ
Для создания приложения использовались такие технологий как:
1. PHP 5.6
2. NGINX
3. Symfony
4. VueJs
5. RabbitMQ
6. Composer
PHP - это распространенный язык программирования не имеющий определенного назначения, с открытым исходным кодом. Архитектура PHP создана специальным образом для разработки продукта любого предназначения. PHP может удовлетворить потребности программистов любого уровня. PHP поддерживает несколько режимов работы:
1. FCGI
2. CLI
FCGI - общий интерфейс шлюза, стандарт, описывающий, каким образом веб-сервер, в нашем случае nginx должен взаимодействовать с программами (скриптами), как веб-сервер должен передавать параметры HTTP-запроса, как должны отдавать результат своей работы веб-серверу. Программу работающую с веб-сервером по протоколу CGI обычно называют шлюзом, на 5 рисунке представлена схема взаимодействия в FCGI режиме.
...
4.1 Проектирование
Перед началом разработки программного продукта была разработана архитектура удовлетворяющая следующий критериям[7]:
1. Гибкость системы – необходимо, чтобы часть разрабатываемого программного продукта можно было изменить, дополнить без особых усилий. Чем быстрее и удобнее можно внести изменения в существующий функционал, чем меньше проблеми ошибок это вызовет - тем гибче и система.
2. Расширяемость системы - возможность добавлять в программный продукт новый функционал, не изменяя ее основной структуры.
3. Тестируемость - код, который в большей степени склонен к тестированию, содержит меньше ошибок и стабильнее работать.
4. Возможность повторного использования – возможность использования, фрагментов программы повторно в других системах.
Рисунок 5 – Схема взаимодействия
Система разработанная в рамках данной дипломной работы состоит из нескольких подсистем, в дальнейшим они будут называться компонентами.
...
4.2 Компонента “Memory”
Компонента “Memory” создана для хранения задач. При разработке данной части программного продукта был выявлен набор свойств задач, использующихся в схожих по назначению системах:
1. Дата последнего запуска(runDate)
2. Время между запусками задач(cycleTime)
3. Дата первоначального запуска(date)
4. идентификатор задачи(identificator)
5. консольная команда(command)
6. опции запускаемой команды(options)
Взаимодействие различных классов внутри компоненты первоначально описалось на уровне интерфейсов[1]. Каждый из интерфейсов имеет свой уровень ответственности. Компонента состоит из основной части, интерфейс которой называется TaskMemory, предназначающийся для взаимодействия с задачами, и части для ее конфигурации, интерфейс которой называется TaskMemoryConfig. В реализации интерфейса TaskMemory существуют такие методы как:
1.
...
4.3 Адаптеры
В реализованом программном продукте процесс формирования задач
может осуществляться тремя способами:
1. Используя адаптер
2. Используя аннотацию
3. Используя командную строку
При разработке, в определенный момент времени может понадобиться формирование задач в ходе выполнения кода, для этого была разработана библиотека взаимодействия с компонентой “Memory” под названием “TaskMemoryPHPImpl”. Так как взаимодействие с “Momry” производиться через интерфейс командной строки, то была реализована сериализация обьекта Task, из библиотеки “CommandBuilder” , в строковое представление. К примеру для сохранения задач используя командную строку необходимо выполнить php taskMemory.php -m="save" -i="test" -t="120" -d="1527173011"
-c="php /some/path/script.php -f -flag=test". А для сохранение вышесказанной задачи из программного кода необходимо сформировать обьект Task и передать его в метод save библиотеки “TaskMemoryPHPImpl”.
...
4.4 Компонента “Deligate”
После того как задачи были добавлены в хранилище, необходимо инициализировать их запуск. Для этого была разработана компонента “Deligate“, которая использует RabbitMQ. Главным плюсом использования посредника сообщений, как RabbitMQ[9], является - отправитель, посредник и получатель могут быть на разных физических/виртуальных машинах, которые могут быть даже разделены локализационно.
Инициализация запуска происходит седующим образом:
1. Происходит запрос в “Memory“ для получения списка всех задач.
2. Отсеивание тех задач , которые необходимо запустить
3. Добавление задачи в RabbitMQ
4. Посылается запрос на обновление информации о задаче в хранилище или ее удаление(если в настройках задачи не задана периодичность).
Рисунок 10 – Результата работы “Deligate”
На 10 рисунке показан результат деятельности скрипта “Deligate”. В административной панели RabbitMQ можно увидеть, что сообшение успешно добавлено в очередь.
...
ГЛОССАРИЙ
Архитектура системы
Принципиальная организация системы, воплощенная в её элементах, их взаимоотношениях друг с другом и со средой, а также принципы, направляющие её проектирование.
Аннотация
Аннотации используются для анализа кода, компиляции или выполнения. Аннотируемы пакеты, классы, методы, переменные и параметры. Выглядит как @ИмяАннотации , предваряющее определение переменной, параметра, метода, класса, пакета.
Бандл
Бандл по своему смыслу близок к понятию плагина, но с важным отличием: весь функционал в симфони предоставляется бандлами (видимо подразумевается что "функции ядра", как таковые не доступны прикладному программисту, т.е. ядро лишь руководит бандлами, напр., их загрузкой).
Веб сервер
Веб-сервер включает в себя несколько компонентов, которые контролируют доступ веб-пользователей к размещенным на сервере файлам, как минимум
— это HTTP-сервер.
...
ЗАКЛЮЧЕНИЕ
Тема автоматизации выполнения повседневных или единоразовых задач обслуживания на компьютере становится, с течением времени, всё более актуальной. Чем больше функций разрабатывается в определенном программной продукте, тем больше выявляется задач по обслуживанию. Но компьютер - на то он и машина, чтобы брать наиболее рутинную работу на себя, оставляя для человека лишь разрешенные действия. Функциональность периодического выполнение заданий является неотьемлемой частью систем любого размера. В рамках данной выпускной квалифицированной работы были выявлены и проанализированы системы имеющие частичную функциональность периодического выполнение заданий. Проанализированы такие программные продукты как :
1. Cron
2. Scheduled
3. RabbitMQ
4. JMSJobQueueBundle
Так же был приведен пример применения периодического выполнения заданий:
1. Youtrack
2.
...
1. Денис Колисниченко. PHP и MySQL. Разработка Web-приложений - М.: ПитерСПб 2017. - 814 c.
2. Информационный блок для работы на занятии [Электронный ресурс] - https://www.metod-kopilka.ru/page-4-1-13-9.html
3. Кетов Дмитрий Владимирович. Внутреннее устройство операционной системы Linux. – М.: Paiter, 2017 . – 428 с.
4. Крейг Уоллс Spring в действии. – М.: ПитерСПб, 2013 – 752 с.
5. Фримен Э., Робсон Э. Head First. Паттерны проектирования. Обновленное юбилейное издание - М.: ПитерСПб, 2018 . - 656 с.
6. Линн Бейли, Майкл Моррисон. Head First PHP & MySQL: A Brain- Friendly Guide - М.: ПитерСПб, 2008. - 774 c.
7. Мэтт Зандстра. PHP Objects, Patterns, and Practice, Second Edition - М.: Zend 2014. 1-е изд. - 576 с.
8. Cron , систематический запуск задач [Электронный ресурс] - http://help.ubuntu.ru/wiki/cron
9. RabitMQ очереди выполнения задач [Электронный ресурс] https://www.cloudamqp.com/blog/2017-12-29-part1-rabbitmq-best- practice.html
10. Linux (CentOS/Debian). Level 1. Administration and security fundamentals (администрирование unix систем)
Купить эту работу vs Заказать новую | ||
---|---|---|
0 раз | Куплено | Выполняется индивидуально |
Не менее 40%
Исполнитель, загружая работу в «Банк готовых работ» подтверждает, что
уровень оригинальности
работы составляет не менее 40%
|
Уникальность | Выполняется индивидуально |
Сразу в личном кабинете | Доступность | Срок 1—6 дней |
850 ₽ | Цена | от 3000 ₽ |
Не подошла эта работа?
В нашей базе 55693 Дипломной работы — поможем найти подходящую