Реферат
Введение 5
1 Основные понятия 7
2 Отказоустойчивость и масштабируемость системы 9
2.1 Средства автоматического или автоматизированного запуска 9
2.1.1 Cron-лаунчер 10
2.1.2 Лаунчер на основе межпроцессорного взаимодействия 11
2.2 Надежный сетевой протокол 15
2.2.1 Транспортный протокол 16
2.2.2 Прикладной протокол 16
2.3 Разделение логики сервера на независимые части 20
2.3.1 Определение основных задач системы 20
2.3.2 Объединение задач в группы для определения компонент 21
2.4 Горизонтальное масштабирование 25
2.5 Взаимодействие компонент системы 27
2.5.1 Алгоритмы подключения сервера коммуникации к системе 28
2.5.2 Алгоритмы подключения сервера комнат к системе 31
2.5.3 Алгоритм подключения сервера комнат и сервера коммуникации к системе
после потери соединения с главным сервером 34
Заключение 36
Список использованных источников и литературы 37
С развитием глобальной сети - интернета все большую популярность набирают сетевые приложения такие, как веб-чаты и облачные хранилища. В таких приложениях, как правило, выделяют центральный сервер или комплекс серверов для передачи пакетов данных от пользователя к пользователю и выполнению определенных задач. Программы, предназначенные для обеспечения взаимодействия пользователя с сервером, и центральный сервер (комплекс серверов) представляют собой систему передачи пакетов данных, которая, как и любая другая система, может выйти из строя.
К выходу системы из строя могут привести ошибки, допущенные при написании кода или проектировании интерфейсов взаимодействия компонент, перебои подачи электроэнергии.
К масштабируемым и отказоустойчивым системам передачи пакетов данных относят системы, которые при выходе из строя одного или нескольких составных компонентов остаются работоспособными, а при увеличении нагрузки на них способны увеличить свою производительность.
Основной целью создания масштабируемой и отказоустойчивой системы передачи пакетов данных является гарантированная доставка пакетов данных по защищенному и надежному каналу связи.
При проектировании системы необходимо предусмотреть и обеспечить способы масштабирования, так как при увеличении рабочей нагрузки на сервер нужно предоставить для пользования дополнительные ресурсы.
Нередко разработчики серверного программного обеспечения жертвуют отказоустойчивостью и масштабируемостью в пользу сокращения времени разработки, либо выбирают что-то одно. Такой подход приемлем для небольших и простых программных комплексов, используемых в качестве временных решений, но никак не приемлем для сложных и перспективных проектов, нагрузки на которые будут со временем расти.
В своей выпускной квалификационной работе рассматриваются средства обеспечения отказоустойчивости и масштабируемости и реализовывается программный комплекс - веб-чат.
Для того, чтобы создать отказоустойчивую и масштабируемую систему передачи пакетов данных, были поставлены следующие задачи:
- Рассмотреть основные способы обеспечения отказоустойчивости и масштабируемости систем.
- Разработать протоколы коммуникации между компонентами.
- Реализовать отказоустойчивую и масштабируемую систему передачи пакетов данных.
В рамках выпускной квалификационной работе были рассмотрены основные средства обеспечения отказоустойчивости и масштабируемости системы передачи пакетов данных.
Основываясь на полученных результатах была спроектирована система передачи пакетов данных, бизнес логика которой разделена на несколько компонент, что позволило облегчить разработку программ (сервера) и гарантировать работоспособность при выходе из строя одной или нескольких компонент. Реализована возможность применения масштабирования к наиболее нагруженным логическим элементам для увеличения рабочей нагрузки сервера. Написана программа-лаунчер для запуска и контролирования состояния сервера, спроектирован собственный протокол прикладного уровня, который позволил реализовать "real-time" серверную архитектуру и минимизировать нагрузку на сеть.