Реализация распределенных алгоритмов на вычислительной сети
|
Перечень сокращений и обозначений 6
Введение 7
1 Организация распределённых вычислений 9
1.1 Понятие вычислительной сети 9
1.1.1 Назначение вычислительных сетей. Основные определения и термины 9
1.1.2. Режимы работы и предоставляемые услуги 13
1.1.3 Классификация вычислительных сетей 14
1.2 Распределённые вычислительные системы 20
1.2.1 Введение в распределенные вычислительные системы 20
1.2.2 Промежуточное программное обеспечение 22
1.2.3 Терминология РВС 24
1.2.4 Классификация РВС 25
1.2.5 Связь в РВС 26
1.3 Бессерверные вычисления 27
1.3.1 Основные понятия 27
2 РЕАЛИЗАЦИЯ КЛИЕНТ-СЕРВЕРНОГО ПРИЛОЖЕНИЯ 31
2.1 Определение инструментов разработки 31
2.1.1 Выбор языка программирования и среды разработки ПО 31
2.1.2 Выбор вида хранимых данных и инструментов для их хранения 33
2.2 Структура данных в приложении 33
2.2.1 Описание функциональных единиц, используемых в алгоритме 33
2.2.2 Примеры моделей распределённого алгоритма 34
2.2.3 Формальное представление распределённого алгоритма в бессерверной
системе 35
2.3 Структура приложений 36
2.3.1 Структура клиентского приложения 36
2.3.2 Структура серверного приложения 37
2.4 Выбор архитектуры приложения и формирование поведения системы 38
2.5 Описание процесса разработки системы 39
2.5.1 Описание разработки клиентского приложения 39
2.5.2 Описание разработки серверного приложения 42
3 ОПИСАНИЕ ПРОГРАММЫ 44
3.1 Описание клиентского приложения 44
3.2 Описание серверного приложения 46
3.3 Отладка и тестирование системы 47
3.4 Возможные пути последующих исследований 49
Заключение 50
Список использованных источников 51
Приложение А листинги Сервера 53
Приложение А.1 Файл main.cpp 53
Приложение А.2 Файл trackerserver.h 53
Приложение А.3 Файл trackerserver.cpp 55
Приложение А.4 Файл trackerworker.h 58
Приложение А.5 Файл trackerworker.cpp 59
Приложение Б Листинги программы Клиента 62
Приложение Б.1 Файл main.cpp 62
Приложение Б.2 Файл mainwindow.h 62
Приложение Б.3 Файл mainwindow.cpp 64
Приложение Б.4 Файл nodemanager.h 66
Приложение Б.5 Файл nodemanager.cpp 67
Приложение Б.6 Файл netnodeinterface.h 68
Приложение Б.7 Файл networknode.h 69
Приложение Б.8 Файл networknode.cpp 70
Приложение Б.9 Файл nodetask.h 77
Приложение Б.10 Файл nodetask.cpp 78
Приложение Б.11 Файл nodeserver.h 80
Приложение Б.12 Файл nodeserver.cpp 81
Приложение Б.13 Файл nodeserverworker.h 83
Приложение Б.14 Файл nodeserverworker.cpp 84
Приложение В Презентация 86
Введение 7
1 Организация распределённых вычислений 9
1.1 Понятие вычислительной сети 9
1.1.1 Назначение вычислительных сетей. Основные определения и термины 9
1.1.2. Режимы работы и предоставляемые услуги 13
1.1.3 Классификация вычислительных сетей 14
1.2 Распределённые вычислительные системы 20
1.2.1 Введение в распределенные вычислительные системы 20
1.2.2 Промежуточное программное обеспечение 22
1.2.3 Терминология РВС 24
1.2.4 Классификация РВС 25
1.2.5 Связь в РВС 26
1.3 Бессерверные вычисления 27
1.3.1 Основные понятия 27
2 РЕАЛИЗАЦИЯ КЛИЕНТ-СЕРВЕРНОГО ПРИЛОЖЕНИЯ 31
2.1 Определение инструментов разработки 31
2.1.1 Выбор языка программирования и среды разработки ПО 31
2.1.2 Выбор вида хранимых данных и инструментов для их хранения 33
2.2 Структура данных в приложении 33
2.2.1 Описание функциональных единиц, используемых в алгоритме 33
2.2.2 Примеры моделей распределённого алгоритма 34
2.2.3 Формальное представление распределённого алгоритма в бессерверной
системе 35
2.3 Структура приложений 36
2.3.1 Структура клиентского приложения 36
2.3.2 Структура серверного приложения 37
2.4 Выбор архитектуры приложения и формирование поведения системы 38
2.5 Описание процесса разработки системы 39
2.5.1 Описание разработки клиентского приложения 39
2.5.2 Описание разработки серверного приложения 42
3 ОПИСАНИЕ ПРОГРАММЫ 44
3.1 Описание клиентского приложения 44
3.2 Описание серверного приложения 46
3.3 Отладка и тестирование системы 47
3.4 Возможные пути последующих исследований 49
Заключение 50
Список использованных источников 51
Приложение А листинги Сервера 53
Приложение А.1 Файл main.cpp 53
Приложение А.2 Файл trackerserver.h 53
Приложение А.3 Файл trackerserver.cpp 55
Приложение А.4 Файл trackerworker.h 58
Приложение А.5 Файл trackerworker.cpp 59
Приложение Б Листинги программы Клиента 62
Приложение Б.1 Файл main.cpp 62
Приложение Б.2 Файл mainwindow.h 62
Приложение Б.3 Файл mainwindow.cpp 64
Приложение Б.4 Файл nodemanager.h 66
Приложение Б.5 Файл nodemanager.cpp 67
Приложение Б.6 Файл netnodeinterface.h 68
Приложение Б.7 Файл networknode.h 69
Приложение Б.8 Файл networknode.cpp 70
Приложение Б.9 Файл nodetask.h 77
Приложение Б.10 Файл nodetask.cpp 78
Приложение Б.11 Файл nodeserver.h 80
Приложение Б.12 Файл nodeserver.cpp 81
Приложение Б.13 Файл nodeserverworker.h 83
Приложение Б.14 Файл nodeserverworker.cpp 84
Приложение В Презентация 86
С каждым годом увеличивается потребность в компьютерном вычислении. В течение последних десятилетий планомерно повышению потребностей также росли и вычислительное мощности устройств, предназначенных для этой цели. Однако темпы роста характеристик вычислительных систем падает с каждым годом. Вследствие чего одним лишь улучшением производительности отдельной машины выполнять имеющиеся вычислительные задачи в заданный срок стало невозможным.
В связи с этим были принято решение увеличивать количество вычислительных модулей в системе. Это можно увидеть в увеличении числа ядер процессора на одном кристалле, возможности установить множество устройств на одной плате, так и путём соединения нескольких вычислительных систем в одну сеть.
Выполнение задач на наборе компьютеров в одной сети позволяет создавать вычислительные системы, способные обработать большие наборы данных, при этом позволяя сократить расходы на приобретение вычислительных ресурсов, а также данный способ увеличения вычислительных мощностей хорошо масштабируем в отличие от решений, выполненных на одном физическом устройстве.
В связи с удобством развертывания локальных сетей было придумано множество способов взаимодействия узлов сети между собой, тем не менее проблема развёртки распределённого приложения на ЛВС и быстрая смена её конфигурации всё ещё остаётся актуальной.
Целью данной выпускной квалификационной работы является разработка программы получения узлом локальной вычислительной сети сведений о текущей конфигурации сети под настроенный алгоритм, получить соответствующие указания для включения в цепочку выполнения распределённого алгоритма, а также обеспечить проверку выполнения алгоритма внутри сети.
Для достижения указанной цели были поставлены и решены следующие задачи:
• изучение как выполняются распределённые вычисления;
• изучение технологии бессерверных вычислений;
Объект исследования — локальная вычислительная сеть, состоящая из набора компьютеров.
Предметом исследования являются модели и алгоритмы развёртывания распределённых вычислительных систем на сеть.
В связи с этим были принято решение увеличивать количество вычислительных модулей в системе. Это можно увидеть в увеличении числа ядер процессора на одном кристалле, возможности установить множество устройств на одной плате, так и путём соединения нескольких вычислительных систем в одну сеть.
Выполнение задач на наборе компьютеров в одной сети позволяет создавать вычислительные системы, способные обработать большие наборы данных, при этом позволяя сократить расходы на приобретение вычислительных ресурсов, а также данный способ увеличения вычислительных мощностей хорошо масштабируем в отличие от решений, выполненных на одном физическом устройстве.
В связи с удобством развертывания локальных сетей было придумано множество способов взаимодействия узлов сети между собой, тем не менее проблема развёртки распределённого приложения на ЛВС и быстрая смена её конфигурации всё ещё остаётся актуальной.
Целью данной выпускной квалификационной работы является разработка программы получения узлом локальной вычислительной сети сведений о текущей конфигурации сети под настроенный алгоритм, получить соответствующие указания для включения в цепочку выполнения распределённого алгоритма, а также обеспечить проверку выполнения алгоритма внутри сети.
Для достижения указанной цели были поставлены и решены следующие задачи:
• изучение как выполняются распределённые вычисления;
• изучение технологии бессерверных вычислений;
Объект исследования — локальная вычислительная сеть, состоящая из набора компьютеров.
Предметом исследования являются модели и алгоритмы развёртывания распределённых вычислительных систем на сеть.
Результатом работы является проект бессерверного приложения, выполняющего распределённый алгоритм.
Программа написана на языке С++ при помощи фреймворка Qt версии 5 и упакована в архив с файлами, который можно распаковать на любом компьютере имеющейся программой разархивирования. Данный проект достиг целей, указанных при постановке задачи.
К особенностям проекта можно отнести его полуавтоматическую работу, простоту конфигурации и быстрое развёртывание на множестве настольных ОС.
В процессе отладки и тестирования были обнаружены ошибки и недочёты, которые были своевременно исправлены. При повторном выполнении тестирования системы эти ошибки не воспроизводились.
Работа над проектом позволила расширить знания и улучшить навыки с фреймворком Qt.
В текущем виде данное решение не позволяет конкурировать с имеющимися решениями в среде бессерверных вычислений и требует существенных доработок.
Программа написана на языке С++ при помощи фреймворка Qt версии 5 и упакована в архив с файлами, который можно распаковать на любом компьютере имеющейся программой разархивирования. Данный проект достиг целей, указанных при постановке задачи.
К особенностям проекта можно отнести его полуавтоматическую работу, простоту конфигурации и быстрое развёртывание на множестве настольных ОС.
В процессе отладки и тестирования были обнаружены ошибки и недочёты, которые были своевременно исправлены. При повторном выполнении тестирования системы эти ошибки не воспроизводились.
Работа над проектом позволила расширить знания и улучшить навыки с фреймворком Qt.
В текущем виде данное решение не позволяет конкурировать с имеющимися решениями в среде бессерверных вычислений и требует существенных доработок.
Подобные работы
- Применение методов топологического анализа данных при балансировке нагрузки в вычислительных сетях
Магистерская диссертация, информатика. Язык работы: Русский. Цена: 4870 р. Год сдачи: 2016 - Применение методов топологического анализа
данных при балансировке нагрузки в
вычислительных сетях
Магистерская диссертация, информатика. Язык работы: Русский. Цена: 5700 р. Год сдачи: 2016 - Разработка проекта локальной вычислительной сети ОзТК
Дипломные работы, ВКР, технология. Язык работы: Русский. Цена: 4395 р. Год сдачи: 2017 - Поиск похожих подпоследовательностей временного ряда на кластерных вычислительных системах с ускорителями архитектуры Intel MIC
Магистерская диссертация, информатика. Язык работы: Русский. Цена: 4930 р. Год сдачи: 2016 - Способы моделирования, анализа и реализации децентрализованных пиринговых систем
Бакалаврская работа, информатика. Язык работы: Русский. Цена: 4350 р. Год сдачи: 2018 - Проектирование вычислительной сети предприятия
Дипломные работы, ВКР, информатика. Язык работы: Русский. Цена: 4600 р. Год сдачи: 2018 - ПАРАЛЛЕЛЬНАЯ РЕАЛИЗАЦИЯ ПОЛУЛАГРАНЖЕВОГО МЕТОДА ДЛЯ УРАВНЕНИЯ НЕРАЗРЫВНОСТИ
Магистерская диссертация, математика. Язык работы: Русский. Цена: 4900 р. Год сдачи: 2017 - Повышение эффективности бизнес процессов сети салонов «Сибтайм» путем модернизации корпоративной информационной системы
Дипломные работы, ВКР, информационные системы. Язык работы: Русский. Цена: 4900 р. Год сдачи: 2016 - РАЗРАБОТКА КВАНТОВОЙ ОБЛАЧНОЙ ПЛАТФОРМЫ
Магистерская диссертация, информатика. Язык работы: Русский. Цена: 4900 р. Год сдачи: 2019





