Тема: Исследование возможностей использования технологии Conflict-free Replicated Data Types (CRDT) в разработке горизонтально масштабированных веб-приложений
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
Глава 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
📖 Введение
Научная проблема: констрадикция научной проблемы проявляется в том, что современные рыночные условия требуют отказоустойчивых вебприложений с динамической синхронизацией состояния между сессиями, что требует распределенного хранения данных. При этом проектирование и поддержка распределенной системы хранения данных является сложной задачей, требующей значительных ресурсов и поэтому часто является недоступной для малых организаций. В то же время, существуют новые подходы к синхронизации данных, которые могут обеспечивать математически доказанную корректность синхронизации а также потенциально более высокую производительность и простоту разработки и поддержки. Одним из перспективных семейств алгоритмов являются алгоритмы CRDT. Однако, несмотря на их перспективность в настоящее время алгоритмы CRDT слабо внедрены в практическую разработку типичных веб-приложений.
Финитизация данной научной проблемы заключается в радикальном упрощении разработки и поддержки широкого спектра типичных вебприложений, используемых в различных сферах экономики; удешевлении процессов поддержки веб-приложения и повышении производительности веб-приложений.
Цель исследования: разработать подходы к практическому внедрению алгоритмов CRDT в современные веб-приложения, оценить корректность и производительность полученной реализации по сравнению с альтернативными реализациями и существующими решениями в области хранения данных.
Область исследования: архитектура веб-приложений, алгоритмы синхронизации данных, распределенные системы хранения данных.
Гипотеза: процесс разработки и поддержки современных вебприложений будет значительно упрощён и удешевлён если будут решены следующие задачи:
- Проанализированы актуальные подходы и программные решения для распределенного хранения и синхронизации данных.
- Изучены текущее использование алгоритмов CRDT в различных видах веб-приложений.
- Разработаны стратегии внедрения CRDT в распространённые типы веб-приложений.
- Разработана Proof-of-Concept реализация CRDT
- оценена производительность, скорость внедрения и корректность полученной реализации по сравнению с альтернативными решениями.
Задачи исследования:
Проанализировать текущее состояние предметной области.
Разработать подходы к внедрению алгоритмов CRDT в различные типы веб-приложений (включая типичные веб-приложения для малого и среднего бизнеса).
Проанализировать свойства практической реализации алгоритмов CRDT по сравнению с альтернативными решениями.
Практическая значимость: Упрощение и удешевление разработки отказоустойчивых распределенных веб-приложений для широкого круга организаций (включая малый и средний бизнес) в соответствии с требованиями пользователей и контрагентов. Упрощение и удешевление эксплуатации полученных веб-приложений с распределенным хранением данных.
✅ Заключение
Кроме того, при успешном внедрении алгоритмов CRDT можно ожидать улучшение производительности по сравнению с альтернативными вариантами решения проблемы распределенной синхронизации данных.
Основные выводы отражены в таблице 25. В рамках исследования была проанализирована проблема распределенной синхронизации данных в современных горизонтально масштабированных веб-приложениях. Существующие подходы к решению данной проблемы обладают серьёзными недостатками. Для решения проблемы и борьбы с недостатками существующих решений хорошо
подходит использование алгоритмов CRDT. Однако стоит учитывать, что при использовании алгоритмов CRDT в общем случае не обеспечивается строгая согласованность данных, как в классических реляционных СУБД. Поэтому алгоритмы CRDT применимы лишь в отдельном подмножестве вебприложений, в которых нестрогая согласованность данных является приемлемой. Были разработаны подходы к определению таких вебприложений, а также классификация веб-приложений в зависимости от потенциала применения алгоритмов CRDT.
По результатам анализа, одной из самых подходящих сфер для использования алгоритмов CRDT в качестве решения проблемы распределенной синхронизации горизонтально масштабированных вебприложений является сфера электронной коммерции, а конкретно вебприложения интернет-магазинов. При проработке применения алгоритмов CRDT в задаче синхронизации пользовательской корзины товаров удалось спроектировать корректную реализацию корзины с использованием алгоритмов CRDT. Был предложен способ достичь автоматической синхронизации узлов распределенного кластера с помощью использования балансировщика нагрузки. Полученная реализация показывает хорошие результаты с точки зрения производительности по сравнению с альтернативными подходами, а также обладает рядом нефункциональный преимуществ.





