Software Design
Лекция 13: Проектирование распределённых приложений. Часть 2
Тимофей Брыксин
Representational State Transfer (REST)
Интерфейс сервиса
Примеры
Достоинства
Микросервисы
Монолитные приложения
Разбиение на сервисы
Основные особенности
Основные проблемы
Архитектура Peer-to-Peer
Napster: hybrid client-server/P2P
Gnutella: pure decentralized P2P
Skype: Overlayed P2P
BitTorrent : Resource Trading P2P
Репликация данных
Модель системы
Отказоустойчивость
Линеаризуемость
Последовательная согласованность
Пассивная репликация
Линеаризуемость
Особенности пассивной репликации
Активная репликация
Алгоритмы голосования
The ring-based algorithm
The bully algorithm
Алгоритм
Пример
Результаты
Проблема соглашения
Задача консенсуса
Консенсус в синхронных системах
Особенности
Задача византийских генералов
Решение для синхронных систем
Решение для N >= 3f + 1