Тема: Реализация распределенных алгоритмов на вычислительной сети
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
Введение 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.
В текущем виде данное решение не позволяет конкурировать с имеющимися решениями в среде бессерверных вычислений и требует существенных доработок.





