📄Работа №214439

Тема: Исследование возможностей использования технологии Conflict-free Replicated Data Types (CRDT) в разработке горизонтально масштабированных веб-приложений

📝
Тип работы Магистерская диссертация
📚
Предмет информатика
📄
Объем: 94 листов
📅
Год: 2022
👁️
Просмотров: 3
Не подходит эта работа?
Закажите новую по вашим требованиям
Узнать цену на написание
ℹ️ Настоящий учебно-методический информационный материал размещён в ознакомительных и исследовательских целях и представляет собой пример учебного исследования. Не является готовым научным трудом и требует самостоятельной переработки.

📋 Содержание

Введение 4
Глава 1 Анализ проблем распределенной синхронизации данных 7
1.1 Анализ проблем распределенной синхронизации данных в вебприложениях 7
1.2 Анализ существующих подходов к решению проблемы эффективной
синхронизации данных горизонтально масштабированных вебприложений 10
1.3 Выбор подхода к решению проблемы обеспечения синхронизации
данных между горизонтально распределенными экземплярами вебприложения 19
1.4 Подход алгоритмов CRDT к решению проблемы синхронизации
данных горизонтально масштабированных веб-приложений 23
1.5 Постановка задачи исследования 27
Глава 2 Анализ применимости CRDT для решения проблемы эффективной синхронизации данных в горизонтально масштабированных вебприложениях 29
2.1 Теоретические основы алгоритмов CRDT 29
2.2 Текущее применение алгоритмов CRDT 38
2.3 Выбор предметной области использования веб-приложения для
внедрения алгоритмов CRDT 40
2.4 Постановка задачи обеспечения работы корзины товаров 43
2.5 Выбор алгоритма CRDT для внедрения в веб-приложение интернет-
магазина 46
2.6 Постановка задачи на реализацию синхронизации данных с
использованием алгоритма CRDT «OR Set» 52
Глава 3 Проектирование и реализация решения проблемы синхронизации данных горизонтально масштабированных веб-приложений с использованием алгоритмов CRDT на примере веб-приложения интернет- магазина 54
3.1 Разработка алгоритма эффективной синхронизации корзины товаров с
использованием алгоритма CRDT OR Set 54
3.2 Проверка работоспособности полученной реализации в условиях
сетевых разделений 61
Глава 4 Анализ результатов решения проблемы эффективной синхронизации данных горизонтально масштабированных приложений с использованием алгоритмов CRDT 68
4.1 Развёртывание стенда для тестирования 68
4.1.1 Подход «CRDT» 69
4.1.2 Подход «Классический» 70
4.1.3 Подход «CRDT Master-Replica» 71
4.1.4 Подход «Кластерная нереляционная СУБД» 73
4.2 Анализ производительности альтернативных вариантов решения
проблемы эффективной синхронизации данных в горизонтально масштабированных веб-приложениях 76
4.3 Ограничения проведённого тестирования 82
Заключение 86
Список используемой литературы 89

📖 Введение

Актуальности темы исследования: С каждым годом Интернет все больше проникает в различные сферы экономики [8]. Для существования на современном рынке практически каждой организации необходимо создавать и поддерживать веб-приложения. Поскольку разработка и поддержка вебприложений представляет собой непростую задачу, в настоящий момент для ее упрощения было выработано несколько подходов и конкретных программных продуктов (фреймворки, конструкторы приложений и т. д.). Тем не менее, появляются новые требования пользователей к отказоустойчивости и синхронизации данных — возникает необходимость разрабатывать веб-приложения с поддержкой распределенного хранения данных с оперативной синхронизацией. К реализации подобной синхронизации можно подойти по-разному, с использованием различных алгоритмов балансировки нагрузки и репликации (например, использование балансировщиков нагрузки, использование распределенных СУБД типа master-master или синхронной репликацией). Однако, построение корректных и производительных распределенных систем хранения данных является одной из сложнейших задач прикладной информатики. В связи с этим наиболее актуальной является задача использования новейших теоретических достижений в разработке и поддержке веб-приложений на практике.
Научная проблема: констрадикция научной проблемы проявляется в том, что современные рыночные условия требуют отказоустойчивых вебприложений с динамической синхронизацией состояния между сессиями, что требует распределенного хранения данных. При этом проектирование и поддержка распределенной системы хранения данных является сложной задачей, требующей значительных ресурсов и поэтому часто является недоступной для малых организаций. В то же время, существуют новые подходы к синхронизации данных, которые могут обеспечивать математически доказанную корректность синхронизации а также потенциально более высокую производительность и простоту разработки и поддержки. Одним из перспективных семейств алгоритмов являются алгоритмы CRDT. Однако, несмотря на их перспективность в настоящее время алгоритмы CRDT слабо внедрены в практическую разработку типичных веб-приложений.
Финитизация данной научной проблемы заключается в радикальном упрощении разработки и поддержки широкого спектра типичных вебприложений, используемых в различных сферах экономики; удешевлении процессов поддержки веб-приложения и повышении производительности веб-приложений.
Цель исследования: разработать подходы к практическому внедрению алгоритмов CRDT в современные веб-приложения, оценить корректность и производительность полученной реализации по сравнению с альтернативными реализациями и существующими решениями в области хранения данных.
Область исследования: архитектура веб-приложений, алгоритмы синхронизации данных, распределенные системы хранения данных.
Гипотеза: процесс разработки и поддержки современных вебприложений будет значительно упрощён и удешевлён если будут решены следующие задачи:
- Проанализированы актуальные подходы и программные решения для распределенного хранения и синхронизации данных.
- Изучены текущее использование алгоритмов CRDT в различных видах веб-приложений.
- Разработаны стратегии внедрения CRDT в распространённые типы веб-приложений.
- Разработана Proof-of-Concept реализация CRDT
- оценена производительность, скорость внедрения и корректность полученной реализации по сравнению с альтернативными решениями.
Задачи исследования:
Проанализировать текущее состояние предметной области.
Разработать подходы к внедрению алгоритмов CRDT в различные типы веб-приложений (включая типичные веб-приложения для малого и среднего бизнеса).
Проанализировать свойства практической реализации алгоритмов CRDT по сравнению с альтернативными решениями.
Практическая значимость: Упрощение и удешевление разработки отказоустойчивых распределенных веб-приложений для широкого круга организаций (включая малый и средний бизнес) в соответствии с требованиями пользователей и контрагентов. Упрощение и удешевление эксплуатации полученных веб-приложений с распределенным хранением данных.

Возникли сложности?

Нужна качественная помощь преподавателя?

👨‍🎓 Помощь в написании

✅ Заключение

Даже с учётом ограничений алгоритмы CRDT обладают большим потенциалом для внедрения в некоторые подвиды веб-приложений, в особенности в веб-приложения интернет-магазинов для решения задачи синхронизации пользовательской корзины товаров горизонтально масштабированного веб-приложения.
Кроме того, при успешном внедрении алгоритмов CRDT можно ожидать улучшение производительности по сравнению с альтернативными вариантами решения проблемы распределенной синхронизации данных.
Основные выводы отражены в таблице 25. В рамках исследования была проанализирована проблема распределенной синхронизации данных в современных горизонтально масштабированных веб-приложениях. Существующие подходы к решению данной проблемы обладают серьёзными недостатками. Для решения проблемы и борьбы с недостатками существующих решений хорошо
подходит использование алгоритмов CRDT. Однако стоит учитывать, что при использовании алгоритмов CRDT в общем случае не обеспечивается строгая согласованность данных, как в классических реляционных СУБД. Поэтому алгоритмы CRDT применимы лишь в отдельном подмножестве вебприложений, в которых нестрогая согласованность данных является приемлемой. Были разработаны подходы к определению таких вебприложений, а также классификация веб-приложений в зависимости от потенциала применения алгоритмов CRDT.
По результатам анализа, одной из самых подходящих сфер для использования алгоритмов CRDT в качестве решения проблемы распределенной синхронизации горизонтально масштабированных вебприложений является сфера электронной коммерции, а конкретно вебприложения интернет-магазинов. При проработке применения алгоритмов CRDT в задаче синхронизации пользовательской корзины товаров удалось спроектировать корректную реализацию корзины с использованием алгоритмов CRDT. Был предложен способ достичь автоматической синхронизации узлов распределенного кластера с помощью использования балансировщика нагрузки. Полученная реализация показывает хорошие результаты с точки зрения производительности по сравнению с альтернативными подходами, а также обладает рядом нефункциональный преимуществ.
Нужна своя уникальная работа?
Срочная разработка под ваши требования
Рассчитать стоимость
ИЛИ

📕 Список литературы

[1] Active-Active Geo-Distribution (CRDTs-Based), [Электронный ресурс], URL: https://www.redislabs.com/redis-enterprise/technology/active- active-geo-distribution/ (дата обращения: 07.05.2022)
[2] Apps Are Becoming Distributed, What about Your Infra?, F5 Blog, 2020, [Электронный ресурс], URL: https://www.f5.com/company/blog/apps-are- becoming-distributed-what-about-your_infra (дата обращения: 07.05.2022)
[3] Automerge: A JSON-like data structure (a CRDT) that can be modified concurrently by different users, and merged again automatically., [Электронный ресурс], URL: https://github.com/automerge/automerge (дата обращения: 07.05.2022)
[4] Bieniusa A. и другие, An optimized conflict-free replicated set [Research Report] RR-8083, Inria - Centre Paris-Rocquencourt; INRIA. 2012, стр. 3.
[5] Cabrita G. M. Non-uniform replication for replicated objects : дис. - 2017.
[6] C. Ellis and S. J. Gibbs, Concurrency control in groupware systems, //ACM International Conference on Management of Data (SIGMOD), May 1989. - С. 399-407.
[7] Dharma Shukla, Azure Cosmos DB: Pushing the frontier of globally distributed databases, [Электронный ресурс], URL: https://azure.microsoft.com/en-us/blog/azure-cosmos-db-pushing-the-frontier-of- globally-distributed-databases/ (дата обращения: 07.05.2022)
[8] Digital Adoption Index, World Bank, [Электронный ресурс], URL: https://www.worldbank.org/en/publication/wdr2016/Digital-Adoption-Index (дата обращения: 07.05.2022)
[9] Dmitry Ivanov, Practical Data Synchronization with CRDTs, StrangeLoop Conference 2016, [Электронный ресурс], URL: https://speakerdeck.com/ajantis/practical-data-synchronization-with-crdts- strangeloop-2016 (дата обращения: 07.05.2022)
[10] Dmitry Vyukov, Andrew Gerrand, Introducing the Go Race Detector, [Электронный ресурс], URL: https://go.dev/blog/race-detector (дата обращения: 07.05.2022)
[11] Doug Woos и другие, Planning for Change in a Formal Verification of the Raft Consensus Protocol, Proceedings of the 5th ACM SIGPLAN Conference on Certified Programs and Proofs, стр. 154-165
[12] etcd3 API - Transaction, Официальная документация etcd,
[Электронный ресурс], URL:
https://github.com/etcd-io/website/blob/v3.5.0/content/en/docs/v3.5/learning/ api.md#transaction (дата обращения: 07.05.2022)
[13] etcd. Distributed reliable key-value store for the most critical data of a distributed system. [Электронный ресурс]. URL: https://github.com/etcd-io/etcd (дата обращения: 07.05.2022)
[14] Evan Wallace, How Figma’s multiplayer technology works, [Электронный ресурс], URL: https://www.figma.com/blog/how-figmas- multiplayer-technology-works/ (дата обращения: 07.05.2022)
[15] Faiz M., Shanker U. Data synchronization in distributed client-server applications //2016 IEEE International Conference on Engineering and Technology (ICETECH). - IEEE, 2016. - С. 611-616....44

🖼 Скриншоты

🛒 Оформить заказ

Работу высылаем в течении 5 минут после оплаты.

©2026 Cервис помощи студентам в выполнении работ