Диплом 2021 года. Оригинальность высокая.
Целью выпускной квалификационной работы является анализ походов отказоустойчивости, принципов проектирования и разработки клиент-серверного приложения, требуемого функционала для пользователей на основе действующих социальных сетей. Результатом данной работы является готовая архитектура отказоустойчивой социальная сеть с возможностью масштабирования.
Объектом исследования являются пользователи, их потребности в удобстве использования социальной сети, их требования к хранению информации и доступности информации.
Предмет исследования — программно-аппаратный комплекс для решения задач общения пользователей, между собой и между группами людей.
Для реализации поставленной цели требуется выполнить следующие задачи:
Анализ принципов отказоустойчивости и масштабирования;
Теоретическая и практическая реализация подходов проектирования и реализации подходов клиент-сервер;
Разработка базового функционала распространённых социальных сетей.
В соответствии с поставленной целью и задачами были определены следующие методы исследования: анализ и изучение существующих подходов и реализация проектов.
Основными этапами работы являются:
Поиск информации о существующих подходах отказоустойчивости и масштабирования, ее структурирование и обоснование используемых подходов при реализации системы «социальная сеть»;
Поиск информации о принципах клиент-серверной архитектуры приложений, ее структурирование и обоснование используемых подходов при реализации системы «социальная сеть»;
Поиск информации о функциональных возможностях социальных сетей, ее структурирование и обоснование используемых подходов при реализации системы «социальная сеть»;
Обоснование выбора технических средств для реализации отказоустойчивости и масштабируемости;
- Обоснование выбора технических средств для реализации клиент-серверной социальной сети;
- Проектирование и разработка отказоустойчивой и масштабируемой базы данных;
- Проектирование и разработка серверной части приложения;
- Проектирование и разработка клиенткой части приложения;
- Тестирование отказоустойчивости и масштабируемости системы;
- Тестирование клиент-серверной системы.
Введение. 4
1. Анализ предметной области и формирование требований к информационной системе. 7
1.1 Описание архитектуры отказоустойчивой клиент-серверной системы «Социальная сеть». 7
1.1.1 Анализ отказоустойчивой систем.. 8
1.1.2. Анализ клиент-серверной архитектуры.. 13
1.1.3 Анализ социальных сетей. 15
2. Теоретические и практические подходы к проектированию архитектуры отказоустойчивой клиент-серверной системы социальная сеть. 19
2.1 Отказоустойчивость. 19
2.2 Клиент-серверная архитектура. 20
2.3 Моделирование бизнес-процессов. 22
2.4 Формирование требований. 26
3 Реализация проекта. 27
3.1 Отказоустойчивая система. 27
3.2 Кластер высокой доступности. 30
3.3 DNS-сервер. 48
3.4 DHCP-сервер. 50
3.5 Веб-сервер NGINX.. 51
3.6 Клиент-серверная архетиктура. 52
3.7 Социальная сеть. 56
заключение. 81
Список использованных источников. 82
Приложение А. Функциональная схема 87
1. Мелентьев В. А. О топологической отказоустойчивости масштабируемых вычислительных систем // Управление большими системами.-УБС 2017г. Вып. 70 - С. 58-86.
2. Ковега Д. Н., Крищенко В. А. Распределенная отказоустойчивость СУБД // Электронное научно-техническое издание «Наука и образование» - 2012г. Эл № ФС 77 – 30569.
3. Купасёв А. Ю., Кислицын Е. В. О некоторых элементах программной отказоустойчивости информационных систем // e-FORUM. 2021. Т. 5, № 1.
4. Омаров О. М., Абдулганов А. А. Репликационные приложения распределенных баз данных в информационных системах с низкоскоростными каналами связи // Известие вузов северо-кавказкский регион. Естественные науки. Приложение. 2006. №3.
5. Обеспечение высокой доступности систем на основе MySQL [Текст]: учеб. / Талманн Л., Киндал М., Белл Ч. БХВ-Петербург, 2011. 624c
6. Создаем динамические веб-сайты с помощью PHP, MySQL, JavaScript, CSS и HTML5. 4-е изданиею. [Текст]: учеб. / Никсон Робин. Питер, 2016. 768с.
7. MySQL. Оптимизация производительности, 2-е издание.[Текст]: учеб. / – Пер. с англ. – СПб.: Символ-Плюс, 2010. – 832 с.
8. Building RESTful Web services with Go [Text]: / Naren Yellavula. Packt, 2017. 316p.
9. Design with MongoDB: Best models for applications [Text]:/ Alessandro Fiori. 108p
10. Go Systems Programming. [Text]:/ Mihalis Tsoukalos. Packt 2017. 466p
11. Go Web Development Cookbook: Build full-stack web applications with Go [Text]: /Arpit Aggarwal. Packt 2018, 338p
12. Pro MySQL NDB Cluster [Text]: /Jesper Wisborg Krogh, Mikiya Okuno. Apress 2017, 690p
13. MariaDB Essentials [Text]: / Emilien Kenler, Federico Razzoli Pages: 208
14. MariaDB and MySQL Common Table Expressions and Window Functions Revealed [Text]: / Daniel Bartholomew. Apress 2017, 106p
15. Mastering Go [Text]: / Mihalis Tsoukalos. Packt 2018. 606p
16. MongoDB Performance Tuning: Optimizing MongoDB Databases and their Applications [Text]: / Guy Harrison, Michael Harrison. Apress 2021, 240p
17. MySQL 8 Administrator’s Guide [Text]: / Chintan Mehta. Packt 2018, 510p
18. MySQL 8 Cookbook [Text]: / Karthik Appigatla. Packt 2018, 446p
19. MySQL 8 for Big Data [Text]: / Shabbir Challawal. Packt 2017, 266p
20. Mastering Proxmox - Third Edition [Text]: / Wasim Ahmed. Packt Publishing Limited; 3rd edition 2017, 494p
21. Practical LXC and LXD: Linux Containers for Virtualization and Orchestration [Text]: / Senthil Kumaran S.. Apress 2017, 159p
22. Containerization with LXC [Text]:/ Konstantin Ivanov . Pakt 2017, 352p
23. Handbook of Research on Big Data Clustering and Machine Learning [Text]:/ Fausto Pedro Garcia Marquez, Business Science Reference 2020, 300p
24. DNS Security: Defending the Domain Name System [Text]:/ Allan Liska. Syngress, 2016. 226p
25. Linux Networking Cookbook [Text]: / Gregory Boyce. Packt Publishing Limited 2016. 152p
26. Network Automation Cookbook: Proven and actionable recipes to automate and manage network devices using Ansible [Text]:/ Karim Okasha. Packt Publishing Limited, 2020, 482p
27. MongoDB, Express, Angular, and Node.js Fundamentals: Become a MEAN master and rule the world of web applications [Text]:/ Paul Oluyege. Packt Publishing Limited, 2019. 362p
28. React and React Native: A complete hands-on guide to modern web and mobile development with React.js, 3rd Edition [Text]:/ Adam Boduch, Roy Derks. Packt Publishing; 3rd edition, 2020. 528p
29. GraphQL in Action [Text]:/ Samer Buna. Manning Publications, 2021. 384p
30. Fullstack React with TypeScript: Learn Pro Patterns for Hooks, Testing, Redux, SSR, and GraphQL [Text]:/ Maksim Ivanov, Alex Bespoyasov. 2020, 596p
31. Building Versatile Mobile Apps with Python and REST: RESTful Web Services with Django and React [Text]:/ Art Yudin. Apress, 2020. 351p
32. docs.mongodb.com [Электронный ресурс] - Режим доступа: https://docs.mongodb.com/manual/replication/
33. Непроявленный-мир.рф [Электронный ресурс]. - Режим доступа: http://непроявленный-мир.рф/327-chto-takoe-klaster.html
34. 4stud [Электронный ресурс]. - Режим доступа: http://www.4stud.info/networking/lecture5.html
35. BusinessViews [Электронный ресурс]. - https://businessviews.com.ua/ru/business/id/8-grafikov-ob-ekonomike-socialnyh-setej-1600/
36. Bmstu [Электронный ресурс]. - Режим доступа: https://ru.bmstu.wiki/СУБД_(Система_Управления_Базами_Данных)
37. Bseu [Электронный ресурс]. - Режим доступа: http://www.bseu.by/it/tohod/lekcii5.htm
38. Chtooznachaet [Электронный ресурс]. - Режим доступа: http://chtooznachaet.ru/klaster.html
39. Citforum [Электронный ресурс]. - Режим доступа: http://citforum.ru/hardware/data/overview/
40. Croc [Электронный ресурс]. - Режим доступа: https://www.croc.ru/i/presentation/presentation_86.pdf
41. Bind9 [Электронный ресурс]. – Режим доступа: https://downloads.isc.org/isc/bind9/9.17.14/doc/arm/html/notes.html
42. ISC DHCP 4.4 Manual Pages – dhcpd [Электронный ресурс]. – Режим доступа: https://kb.isc.org/v1/docs/isc-dhcp-44-manual-pages-dhcpd
43. Ups-info [Электронный ресурс]. - Режим доступа: http://www.ups-info.ru/etc/tia_russkii.pdf
44. lindex.ru [Электронный ресурс]. - Режим доступа: http://lindex.ru/upload/iblock/84a/84a93ec731db55271699fd715fec3a5e.pdf
45. Chtooznachaet [Электронный ресурс]. - Режим доступа: http://chtooznachaet.ru/klaster.html
46. Dic.Academic[Электронный ресурс]. - Режим доступа: https://dic.academic.ru/dic.nsf/ruwiki/1133383
47. Ecolan [Электронный ресурс]. - Режим доступа: http://www.ecolan.ru/build_infr/structured_cabling/
48. In-si [Электронный ресурс]. - Режим доступа: http://www.in-si.ru/proektirovanie-i-sozdanie-cod/91-2012-10-17-05-58-13
49. Lecturesdb.Readthedocs [Электронный ресурс]. - Режим доступа: http://lecturesdb.readthedocs.io/databases/dbms.html
50. Habr [Электронный ресурс]. - Режим доступа: https://habr.com/post/321448/
51. MongoDB [Электронный ресурс]. – Режим доступа: https://docs.mongodb.com/manual/
52. Nginx [Электронный ресурс]. – Режим доступа: https://nginx.org/ru/docs/
53. Nemo [Электронный ресурс]. - Режим доступа: http://support.nemo.travel/ru/СУБД_(система_управления_базами_данных)
54. Network.xsp [Электронный ресурс]. - Режим доступа: http://network.xsp.ru/ckc.php
55. Ruhighload [Электронный ресурс]. - Режим доступа: https://ruhighload.com/Балансировка+бэкендов+с+помощью+nginx
56. Proxmox VE Documentation Index [Электронный ресурс] – Режим доступа: https://pve.proxmox.com/pve-docs/
57. Shalaginov [Электронный ресурс]. - Режим доступа: https://shalaginov.com/2014/10/21/ликбез-№1-системы-хранения-данных/
58. Selectel [Электронный ресурс]. - Режим доступа: https://blog.selectel.ru/balansirovka-nagruzki-osnovnye-algoritmy-i-metody/
59. Sonikelf [Электронный ресурс]. - Режим доступа: https://sonikelf.ru/chto-takoe-cod/
60. Systematic [Электронный ресурс]. - Режим доступа: http://www.systematic.ru/tsentry_obrabotki_dannyh.html
61. Sviaz-expo [Электронный ресурс]. - Режим доступа: http://www.sviaz-expo.ru/ru/articles/2016/chto-takoe-cody-chego-oni-nuzhny/
62. What The Difference Between REST API And RESTful API? [Электронный ресурс]. - https://www.datamounts.com/difference-rest-api-restful-api/