Распределенные системы

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

В третьем издании классического труда професоров Амстердамского университета Эндрю Таненбаума и Мартена ван Стина обсуждаются принципы и парадигмы распределенных систем. Кроме обширного теоретического материала в книге приведен код на языке Python (размещен на сайте dmkpress.com), демонстрирующий использование полученных знаний на практике. В числе рассматриваемых тем: основные характеристики распределенных систем; архитектуры программных компонентов, входящих в систему; процессы и коммуникации; присваивание имен; согласованность и репликация; отказоустойчивость и безопасность. Для опытных разработчиков, занимающихся распределенными системами, а также студентов профильных вузов.

Author(s): Мартен ван Стин, Эндрю С. Таненбаум
Edition: 3
Publisher: ДМК Пресс
Year: 2021

Language: Russian
Commentary: Vector PDF
Pages: 584
City: М.
Tags: Multithreading; Security; Python; Virtualization; Distributed Systems; Replication; Consistency; Fault Tolerance; Design; Communication; Software Architecture; Naming

Распределенные системы_переплет
Распределенные системы.pdf
Предисловие
От издательства
Введение
1.1. Что такое распределенная система?
Характеристика 1: совокупность автономных вычислительных элементов
Характеристика 2: единая связанная система
Промежуточное программное обеспечение и распределенные системы
1.2. Цели дизайна
Поддержка совместного использования ресурсов
Создание прозрачных распределений
Типы прозрачности распределений
Степень прозрачности распределения
Открытость
Функциональная совместимость, компоновка и расширяемость
Отделение политики от механизма
Масштабирование
Размерность масштабируемости
Техника масштабирования
Ловушки
1.3. Типы распределенных систем
Высокопроизводительные распределенные вычисления
Кластерные вычисления
Сетевые вычисления
Облачные вычисления
Распределенные информационные системы
Распределенная обработка транзакций
Интеграция корпоративных приложений
Распространенные системы
Повсеместно распространенные вычислительные системы
Мобильные вычислительные системы
Сенсорные сети
1.4. Резюме
Архитектуры
2.1. Архитектурные стили
Многоуровневая архитектура
Многоуровневые протоколы связи
Уровни приложений
Объектно-ориентированные и сервис-ориентированные архитектуры
Ресурсные архитектуры
Архитектура публикация-подписка
2.2. Организация промежуточного программного обеспечения
Оболочки
Перехватчики
Модифицируемое промежуточное ПО
2.3. Системная архитектура
Централизованные организации
Простая архитектура клиент-сервер
Многоуровневая архитектура
Децентрализованные организации: одноранговые системы
Структурированные одноранговые системы
Неструктурированные одноранговые системы
Иерархически организованные одноранговые сети
Гибридные архитектуры
Системы пограничных серверов
Совместные распределенные системы
2.4. Примеры архитектур
Файловая система сети
Веб
Простые веб-системы
Многоуровневые архитектуры
2.5. Резюме
Процессы
3.1. Потоки
Введение в потоки
Использование потоков в нераспределенных системах
Реализация потоков
Потоки в распределенных системах
Многопоточные клиенты
Многопоточные серверы
3.2. Виртуализация
Принцип виртуализации
Виртуализация и распределенные системы
Типы виртуализации
Применение виртуальных машин в распределенных системах
3.3. Клиенты
Сетевые пользовательские интерфейсы
Пример: система X Window
Сетевые вычисления для тонких клиентов
Клиентское программное обеспечение для прозрачности распространения
3.4. Серверы
Общие вопросы дизайна
Параллельный сервер против итеративного сервера
Связь с сервером: конечные точки
Прерывание сервера
Серверы без сохранения состояния против серверов, сохраняющих состояние
Объектные серверы
Пример: веб-сервер Apache
Кластеры серверов
Локальные кластеры
Общая организация
Глобальные кластеры
Пример использования: PlanetLab
V-серверы
3.5. Миграция кода
Причины переноса кода
Миграция в гетерогенных системах
3.6. Резюме
Коммуникации
4.1. Основы
Многоуровневые протоколы
Эталонная модель OSI
Протоколы промежуточного программного обеспечения
Типы коммуникаций
4.2. Удаленный вызов процедуры
Основная операция RPC
Передача параметров
Поддержка приложений на основе RPC
Генерация заглушки
Языковая поддержка
Вариации RPC
Асинхронный RPC
Многоадресный RPC
Пример: распределенная вычислительная среда RPC
Введение в распределенную вычислительную среду DCE
Цели DCE RPC
Написание клиента и сервера
Привязка клиента к серверу
Выполнение RPC
4.3. Коммуникации, ориентированные на сообщения
Простой временный обмен сообщениями с сокетами
Расширенный переходный обмен сообщениями
Использование шаблонов обмена сообщениями: ZeroMQ
Интерфейс передачи сообщений (MPI)
Постоянная связь, ориентированная на сообщения
Модель очереди сообщений
Общая архитектура системы очереди сообщений
Брокеры сообщений
Пример: система очереди сообщений IBM WebSphere
Обзор
Каналы
Передача сообщений
Управление оверлейными сетями
Пример: расширенный протокол очереди сообщений (AMQP)
Основы
AMQP связи
AMQP обмена сообщениями
4.4. Многоадресная связь
Многоадресная рассылка на уровне дерева приложений
Проблемы с производительностью в оверлеях
Многоадресная передача сообщений на основе лавинной маршрутизации
Распространение данных по принципу сплетни
Модели распространения информации
Удаление данных
4.5. Резюме
Присваивание имен
5.1. Имена, идентификаторы и адреса
5.2. Бесструктурное (плоское) наименование
Простые решения
Широковещание
Прямые указатели
Методы домашнего местоположения
Распределенные хеш-таблицы
Общий механизм
Иерархические методы
5.3. Структурированное наименование
Пространства имен
Разрешение имени
Механизм закрытия
Связывание и монтаж
Реализация пространства имен
Распределение пространства имен
Реализация разрешения имен
Пример: система доменных имен
Пространство имен DNS
Реализация DNS
Пример: сетевая файловая система
5.4. Наименование на основе атрибутов
Службы каталогов
Иерархические реализации: протокол LDAP
Децентрализованные реализации
Использование распределенного индекса
Пространственные кривые
5.5. Резюме
Координация
6.1. Синхронизация часов
Физические часы
Алгоритмы синхронизации часов
Сетевой временной протокол
Алгоритм Беркли
Синхронизация часов в беспроводных сетях
6.2. Логические часы
Логические часы Лампорта
Пример: полностью упорядоченная многоадресная рассылка
Векторные часы
6.3. Взаимное исключение
Обзор
Централизованный алгоритм
Распределенный алгоритм
Алгоритм кольцо токенов
Децентрализованный алгоритм
6.4. Алгоритмы выбора
Алгоритм хулигана
Кольцевой алгоритм
Выборы в беспроводной среде
Выборы в масштабных системах
6.5. Системы локации
GPS: система глобального позиционирования
Когда GPS не выбор
Логическое позиционирование узлов
Централизованное позиционирование
Децентрализованное позиционирование
6.6. Сопоставление распределенных событий
Централизованные реализации
6.7. Координация на основе сплетен
Объединение
Служба одноранговой выборки
Структура оверлея, основанная на сплетнях
6.8. Резюме
Согласованность и репликация
7.1. Введение
Причины репликации
Репликация как метод масштабирования
7.2. Модели согласованности, ориентированные на данные
Непрерывное согласование
О понятии конит
Согласованный порядок операций
Последовательная согласованность
Причинная согласованность
Группирование операций
Согласованность и когерентность
Конечная согласованность
7.3. Модели согласованности, ориентированные на клиента
Монотонные чтения
Монотонные записи
Чтение собственных записей
Запись следует за чтением
7.4. Управление репликами
Поиск лучшего местоположения сервера
Репликация и размещение контента
Постоянные реплики
Реплики, инициированные сервером
Реплики, инициированные клиентом
Распространение контента
Состояние и операции
Протоколы извлечения и проталкивания
Одноадресная и многоадресная рассылка
Управление реплицированными объектами
7.5. Согласованность протоколов
Непрерывная последовательность
Ограничивающее числовое отклонение
Граничные отклонения устаревания
Ограничение отклонений порядка
Первичные протоколы
Протоколы удаленной записи
Протоколы локальной записи
Протоколы реплицируемой записи
Активная репликация
Протоколы на основе кворума
Протоколы кеширования
Реализация согласованности, ориентированной на клиента
7.6. Пример: кеширование и репликация в сети
7.7. Резюме
Отказоустойчивость
8.1. Введение в отказоустойчивость
Базовые концепции
Модели отказов
Маскировка отказов посредством избыточности
8.2. Устойчивость процесса
Устойчивость групповых процессов
Организация групп
Управление членством
Маскировка и репликация отказа
Консенсус в неисправных системах со сбоями
Пример: Paxos
Основная идея Paxos
Понимание Paxos
Консенсус в неисправных системах с произвольными отказами
Почему 3k процессов недостаточно
Почему достаточно 3k + 1 процессов
Пример: практическая византийская отказоустойчивость
Некоторые ограничения по реализации отказоустойчивости
Относительно достижения консенсуса
Согласованность, доступность и разделение
Обнаружение отказов
8.3. Надежная связь клиент-сервер
Двухточечная связь
Семантика RPC при наличии отказов
Клиент не может найти сервер
Потерянные сообщения запроса
Сбои сервера
Потерянные ответные сообщения
Клиент неисправен
8.4. Надежное групповое общение
Атомарная многоадресная рассылка
Виртуальная синхроннность
Порядок сообщений
8.5. Распределенная фиксация
8.6. Восстановление
Введение
Контрольная точка
Скоординированная контрольная точка
Независимая контрольная точка
Регистрация сообщений
Вычисления, ориентированные на восстановление
8.7. Резюме
Безопасность
9.1. Введение
Угрозы безопасности, политики и механизмы
Проблемы дизайна
Контроль
Уровни механизмов безопасности
Распределение механизмов безопасности
Простота
Криптография
9.2. Безопасные каналы
Аутентификация
Аутентификация на основе общего секретного ключа
Аутентификация с использованием центра распределения ключей
Аутентификация с использованием криптографии с открытым ключом
Целостность и конфиденциальность сообщений
Цифровые подписи
Сессионные ключи
Безопасное групповое общение
Конфиденциальное групповое общение
Безопасные реплицированные серверы
Пример: система Kerberos
9.3. Контроль доступа
Общие вопросы управления доступом
Матрица контроля доступа
Брандмауэры
Безопасный мобильный код
Отказ в обслуживании
9.4. Безопасное наименование
9.5. Управление безопасностью
Управление ключами
Установка ключей
Распространение ключей
Безопасное управление группами
Управление авторизацией
Возможности и атрибуты
Делегирование (прав)
9.6. Резюме
4.pdf
Предисловие
От издательства
Введение
1.1. Что такое распределенная система?
Характеристика 1: совокупность автономных вычислительных элементов
Характеристика 2: единая связанная система
Промежуточное программное обеспечение и распределенные системы
1.2. Цели дизайна
Поддержка совместного использования ресурсов
Создание прозрачных распределений
Типы прозрачности распределений
Степень прозрачности распределения
Открытость
Функциональная совместимость, компоновка и расширяемость
Отделение политики от механизма
Масштабирование
Размерность масштабируемости
Техника масштабирования
Ловушки
1.3. Типы распределенных систем
Высокопроизводительные распределенные вычисления
Кластерные вычисления
Сетевые вычисления
Облачные вычисления
Распределенные информационные системы
Распределенная обработка транзакций
Интеграция корпоративных приложений
Распространенные системы
Повсеместно распространенные вычислительные системы
Мобильные вычислительные системы
Сенсорные сети
1.4. Резюме
Архитектуры
2.1. Архитектурные стили
Многоуровневая архитектура
Многоуровневые протоколы связи
Уровни приложений
Объектно-ориентированные и сервис-ориентированные архитектуры
Ресурсные архитектуры
Архитектура публикация-подписка
2.2. Организация промежуточного программного обеспечения
Оболочки
Перехватчики
Модифицируемое промежуточное ПО
2.3. Системная архитектура
Централизованные организации
Простая архитектура клиент-сервер
Многоуровневая архитектура
Децентрализованные организации: одноранговые системы
Структурированные одноранговые системы
Неструктурированные одноранговые системы
Иерархически организованные одноранговые сети
Гибридные архитектуры
Системы пограничных серверов
Совместные распределенные системы
2.4. Примеры архитектур
Файловая система сети
Веб
Простые веб-системы
Многоуровневые архитектуры
2.5. Резюме
Процессы
3.1. Потоки
Введение в потоки
Использование потоков в нераспределенных системах
Реализация потоков
Потоки в распределенных системах
Многопоточные клиенты
Многопоточные серверы
3.2. Виртуализация
Принцип виртуализации
Виртуализация и распределенные системы
Типы виртуализации
Применение виртуальных машин в распределенных системах
3.3. Клиенты
Сетевые пользовательские интерфейсы
Пример: система X Window
Сетевые вычисления для тонких клиентов
Клиентское программное обеспечение для прозрачности распространения
3.4. Серверы
Общие вопросы дизайна
Параллельный сервер против итеративного сервера
Связь с сервером: конечные точки
Прерывание сервера
Серверы без сохранения состояния против серверов, сохраняющих состояние
Объектные серверы
Пример: веб-сервер Apache
Кластеры серверов
Локальные кластеры
Общая организация
Глобальные кластеры
Пример использования: PlanetLab
V-серверы
3.5. Миграция кода
Причины переноса кода
Миграция в гетерогенных системах
3.6. Резюме
Коммуникации
4.1. Основы
Многоуровневые протоколы
Эталонная модель OSI
Протоколы промежуточного программного обеспечения
Типы коммуникаций
4.2. Удаленный вызов процедуры
Основная операция RPC
Передача параметров
Поддержка приложений на основе RPC
Генерация заглушки
Языковая поддержка
Вариации RPC
Асинхронный RPC
Многоадресный RPC
Пример: распределенная вычислительная среда RPC
Введение в распределенную вычислительную среду DCE
Цели DCE RPC
Написание клиента и сервера
Привязка клиента к серверу
Выполнение RPC
4.3. Коммуникации, ориентированные на сообщения
Простой временный обмен сообщениями с сокетами
Расширенный переходный обмен сообщениями
Использование шаблонов обмена сообщениями: ZeroMQ
Интерфейс передачи сообщений (MPI)
Постоянная связь, ориентированная на сообщения
Модель очереди сообщений
Общая архитектура системы очереди сообщений
Брокеры сообщений
Пример: система очереди сообщений IBM WebSphere
Обзор
Каналы
Передача сообщений
Управление оверлейными сетями
Пример: расширенный протокол очереди сообщений (AMQP)
Основы
AMQP связи
AMQP обмена сообщениями
4.4. Многоадресная связь
Многоадресная рассылка на уровне дерева приложений
Проблемы с производительностью в оверлеях
Многоадресная передача сообщений на основе лавинной маршрутизации
Распространение данных по принципу сплетни
Модели распространения информации
Удаление данных
4.5. Резюме
Присваивание имен
5.1. Имена, идентификаторы и адреса
5.2. Бесструктурное (плоское) наименование
Простые решения
Широковещание
Прямые указатели
Методы домашнего местоположения
Распределенные хеш-таблицы
Общий механизм
Иерархические методы
5.3. Структурированное наименование
Пространства имен
Разрешение имени
Механизм закрытия
Связывание и монтаж
Реализация пространства имен
Распределение пространства имен
Реализация разрешения имен
Пример: система доменных имен
Пространство имен DNS
Реализация DNS
Пример: сетевая файловая система
5.4. Наименование на основе атрибутов
Службы каталогов
Иерархические реализации: протокол LDAP
Децентрализованные реализации
Использование распределенного индекса
Пространственные кривые
5.5. Резюме
Координация
6.1. Синхронизация часов
Физические часы
Алгоритмы синхронизации часов
Сетевой временной протокол
Алгоритм Беркли
Синхронизация часов в беспроводных сетях
6.2. Логические часы
Логические часы Лампорта
Пример: полностью упорядоченная многоадресная рассылка
Векторные часы
6.3. Взаимное исключение
Обзор
Централизованный алгоритм
Распределенный алгоритм
Алгоритм кольцо токенов
Децентрализованный алгоритм
6.4. Алгоритмы выбора
Алгоритм хулигана
Кольцевой алгоритм
Выборы в беспроводной среде
Выборы в масштабных системах
6.5. Системы локации
GPS: система глобального позиционирования
Когда GPS не выбор
Логическое позиционирование узлов
Централизованное позиционирование
Децентрализованное позиционирование
6.6. Сопоставление распределенных событий
Централизованные реализации
6.7. Координация на основе сплетен
Объединение
Служба одноранговой выборки
Структура оверлея, основанная на сплетнях
6.8. Резюме
Согласованность и репликация
7.1. Введение
Причины репликации
Репликация как метод масштабирования
7.2. Модели согласованности, ориентированные на данные
Непрерывное согласование
О понятии конит
Согласованный порядок операций
Последовательная согласованность
Причинная согласованность
Группирование операций
Согласованность и когерентность
Конечная согласованность
7.3. Модели согласованности, ориентированные на клиента
Монотонные чтения
Монотонные записи
Чтение собственных записей
Запись следует за чтением
7.4. Управление репликами
Поиск лучшего местоположения сервера
Репликация и размещение контента
Постоянные реплики
Реплики, инициированные сервером
Реплики, инициированные клиентом
Распространение контента
Состояние и операции
Протоколы извлечения и проталкивания
Одноадресная и многоадресная рассылка
Управление реплицированными объектами
7.5. Согласованность протоколов
Непрерывная последовательность
Ограничивающее числовое отклонение
Граничные отклонения устаревания
Ограничение отклонений порядка
Первичные протоколы
Протоколы удаленной записи
Протоколы локальной записи
Протоколы реплицируемой записи
Активная репликация
Протоколы на основе кворума
Протоколы кеширования
Реализация согласованности, ориентированной на клиента
7.6. Пример: кеширование и репликация в сети
7.7. Резюме
Отказоустойчивость
8.1. Введение в отказоустойчивость
Базовые концепции
Модели отказов
Маскировка отказов посредством избыточности
8.2. Устойчивость процесса
Устойчивость групповых процессов
Организация групп
Управление членством
Маскировка и репликация отказа
Консенсус в неисправных системах со сбоями
Пример: Paxos
Основная идея Paxos
Понимание Paxos
Консенсус в неисправных системах с произвольными отказами
Почему 3k процессов недостаточно
Почему достаточно 3k + 1 процессов
Пример: практическая византийская отказоустойчивость
Некоторые ограничения по реализации отказоустойчивости
Относительно достижения консенсуса
Согласованность, доступность и разделение
Обнаружение отказов
8.3. Надежная связь клиент-сервер
Двухточечная связь
Семантика RPC при наличии отказов
Клиент не может найти сервер
Потерянные сообщения запроса
Сбои сервера
Потерянные ответные сообщения
Клиент неисправен
8.4. Надежное групповое общение
Атомарная многоадресная рассылка
Виртуальная синхроннность
Порядок сообщений
8.5. Распределенная фиксация
8.6. Восстановление
Введение
Контрольная точка
Скоординированная контрольная точка
Независимая контрольная точка
Регистрация сообщений
Вычисления, ориентированные на восстановление
8.7. Резюме
Безопасность
9.1. Введение
Угрозы безопасности, политики и механизмы
Проблемы дизайна
Контроль
Уровни механизмов безопасности
Распределение механизмов безопасности
Простота
Криптография
9.2. Безопасные каналы
Аутентификация
Аутентификация на основе общего секретного ключа
Аутентификация с использованием центра распределения ключей
Аутентификация с использованием криптографии с открытым ключом
Целостность и конфиденциальность сообщений
Цифровые подписи
Сессионные ключи
Безопасное групповое общение
Конфиденциальное групповое общение
Безопасные реплицированные серверы
Пример: система Kerberos
9.3. Контроль доступа
Общие вопросы управления доступом
Матрица контроля доступа
Брандмауэры
Безопасный мобильный код
Отказ в обслуживании
9.4. Безопасное наименование
9.5. Управление безопасностью
Управление ключами
Установка ключей
Распространение ключей
Безопасное управление группами
Управление авторизацией
Возможности и атрибуты
Делегирование (прав)
9.6. Резюме
584.pdf
Предисловие
От издательства
Введение
1.1. Что такое распределенная система?
Характеристика 1: совокупность автономных вычислительных элементов
Характеристика 2: единая связанная система
Промежуточное программное обеспечение и распределенные системы
1.2. Цели дизайна
Поддержка совместного использования ресурсов
Создание прозрачных распределений
Типы прозрачности распределений
Степень прозрачности распределения
Открытость
Функциональная совместимость, компоновка и расширяемость
Отделение политики от механизма
Масштабирование
Размерность масштабируемости
Техника масштабирования
Ловушки
1.3. Типы распределенных систем
Высокопроизводительные распределенные вычисления
Кластерные вычисления
Сетевые вычисления
Облачные вычисления
Распределенные информационные системы
Распределенная обработка транзакций
Интеграция корпоративных приложений
Распространенные системы
Повсеместно распространенные вычислительные системы
Мобильные вычислительные системы
Сенсорные сети
1.4. Резюме
Архитектуры
2.1. Архитектурные стили
Многоуровневая архитектура
Многоуровневые протоколы связи
Уровни приложений
Объектно-ориентированные и сервис-ориентированные архитектуры
Ресурсные архитектуры
Архитектура публикация-подписка
2.2. Организация промежуточного программного обеспечения
Оболочки
Перехватчики
Модифицируемое промежуточное ПО
2.3. Системная архитектура
Централизованные организации
Простая архитектура клиент-сервер
Многоуровневая архитектура
Децентрализованные организации: одноранговые системы
Структурированные одноранговые системы
Неструктурированные одноранговые системы
Иерархически организованные одноранговые сети
Гибридные архитектуры
Системы пограничных серверов
Совместные распределенные системы
2.4. Примеры архитектур
Файловая система сети
Веб
Простые веб-системы
Многоуровневые архитектуры
2.5. Резюме
Процессы
3.1. Потоки
Введение в потоки
Использование потоков в нераспределенных системах
Реализация потоков
Потоки в распределенных системах
Многопоточные клиенты
Многопоточные серверы
3.2. Виртуализация
Принцип виртуализации
Виртуализация и распределенные системы
Типы виртуализации
Применение виртуальных машин в распределенных системах
3.3. Клиенты
Сетевые пользовательские интерфейсы
Пример: система X Window
Сетевые вычисления для тонких клиентов
Клиентское программное обеспечение для прозрачности распространения
3.4. Серверы
Общие вопросы дизайна
Параллельный сервер против итеративного сервера
Связь с сервером: конечные точки
Прерывание сервера
Серверы без сохранения состояния против серверов, сохраняющих состояние
Объектные серверы
Пример: веб-сервер Apache
Кластеры серверов
Локальные кластеры
Общая организация
Глобальные кластеры
Пример использования: PlanetLab
V-серверы
3.5. Миграция кода
Причины переноса кода
Миграция в гетерогенных системах
3.6. Резюме
Коммуникации
4.1. Основы
Многоуровневые протоколы
Эталонная модель OSI
Протоколы промежуточного программного обеспечения
Типы коммуникаций
4.2. Удаленный вызов процедуры
Основная операция RPC
Передача параметров
Поддержка приложений на основе RPC
Генерация заглушки
Языковая поддержка
Вариации RPC
Асинхронный RPC
Многоадресный RPC
Пример: распределенная вычислительная среда RPC
Введение в распределенную вычислительную среду DCE
Цели DCE RPC
Написание клиента и сервера
Привязка клиента к серверу
Выполнение RPC
4.3. Коммуникации, ориентированные на сообщения
Простой временный обмен сообщениями с сокетами
Расширенный переходный обмен сообщениями
Использование шаблонов обмена сообщениями: ZeroMQ
Интерфейс передачи сообщений (MPI)
Постоянная связь, ориентированная на сообщения
Модель очереди сообщений
Общая архитектура системы очереди сообщений
Брокеры сообщений
Пример: система очереди сообщений IBM WebSphere
Обзор
Каналы
Передача сообщений
Управление оверлейными сетями
Пример: расширенный протокол очереди сообщений (AMQP)
Основы
AMQP связи
AMQP обмена сообщениями
4.4. Многоадресная связь
Многоадресная рассылка на уровне дерева приложений
Проблемы с производительностью в оверлеях
Многоадресная передача сообщений на основе лавинной маршрутизации
Распространение данных по принципу сплетни
Модели распространения информации
Удаление данных
4.5. Резюме
Присваивание имен
5.1. Имена, идентификаторы и адреса
5.2. Бесструктурное (плоское) наименование
Простые решения
Широковещание
Прямые указатели
Методы домашнего местоположения
Распределенные хеш-таблицы
Общий механизм
Иерархические методы
5.3. Структурированное наименование
Пространства имен
Разрешение имени
Механизм закрытия
Связывание и монтаж
Реализация пространства имен
Распределение пространства имен
Реализация разрешения имен
Пример: система доменных имен
Пространство имен DNS
Реализация DNS
Пример: сетевая файловая система
5.4. Наименование на основе атрибутов
Службы каталогов
Иерархические реализации: протокол LDAP
Децентрализованные реализации
Использование распределенного индекса
Пространственные кривые
5.5. Резюме
Координация
6.1. Синхронизация часов
Физические часы
Алгоритмы синхронизации часов
Сетевой временной протокол
Алгоритм Беркли
Синхронизация часов в беспроводных сетях
6.2. Логические часы
Логические часы Лампорта
Пример: полностью упорядоченная многоадресная рассылка
Векторные часы
6.3. Взаимное исключение
Обзор
Централизованный алгоритм
Распределенный алгоритм
Алгоритм кольцо токенов
Децентрализованный алгоритм
6.4. Алгоритмы выбора
Алгоритм хулигана
Кольцевой алгоритм
Выборы в беспроводной среде
Выборы в масштабных системах
6.5. Системы локации
GPS: система глобального позиционирования
Когда GPS не выбор
Логическое позиционирование узлов
Централизованное позиционирование
Децентрализованное позиционирование
6.6. Сопоставление распределенных событий
Централизованные реализации
6.7. Координация на основе сплетен
Объединение
Служба одноранговой выборки
Структура оверлея, основанная на сплетнях
6.8. Резюме
Согласованность и репликация
7.1. Введение
Причины репликации
Репликация как метод масштабирования
7.2. Модели согласованности, ориентированные на данные
Непрерывное согласование
О понятии конит
Согласованный порядок операций
Последовательная согласованность
Причинная согласованность
Группирование операций
Согласованность и когерентность
Конечная согласованность
7.3. Модели согласованности, ориентированные на клиента
Монотонные чтения
Монотонные записи
Чтение собственных записей
Запись следует за чтением
7.4. Управление репликами
Поиск лучшего местоположения сервера
Репликация и размещение контента
Постоянные реплики
Реплики, инициированные сервером
Реплики, инициированные клиентом
Распространение контента
Состояние и операции
Протоколы извлечения и проталкивания
Одноадресная и многоадресная рассылка
Управление реплицированными объектами
7.5. Согласованность протоколов
Непрерывная последовательность
Ограничивающее числовое отклонение
Граничные отклонения устаревания
Ограничение отклонений порядка
Первичные протоколы
Протоколы удаленной записи
Протоколы локальной записи
Протоколы реплицируемой записи
Активная репликация
Протоколы на основе кворума
Протоколы кеширования
Реализация согласованности, ориентированной на клиента
7.6. Пример: кеширование и репликация в сети
7.7. Резюме
Отказоустойчивость
8.1. Введение в отказоустойчивость
Базовые концепции
Модели отказов
Маскировка отказов посредством избыточности
8.2. Устойчивость процесса
Устойчивость групповых процессов
Организация групп
Управление членством
Маскировка и репликация отказа
Консенсус в неисправных системах со сбоями
Пример: Paxos
Основная идея Paxos
Понимание Paxos
Консенсус в неисправных системах с произвольными отказами
Почему 3k процессов недостаточно
Почему достаточно 3k + 1 процессов
Пример: практическая византийская отказоустойчивость
Некоторые ограничения по реализации отказоустойчивости
Относительно достижения консенсуса
Согласованность, доступность и разделение
Обнаружение отказов
8.3. Надежная связь клиент-сервер
Двухточечная связь
Семантика RPC при наличии отказов
Клиент не может найти сервер
Потерянные сообщения запроса
Сбои сервера
Потерянные ответные сообщения
Клиент неисправен
8.4. Надежное групповое общение
Атомарная многоадресная рассылка
Виртуальная синхроннность
Порядок сообщений
8.5. Распределенная фиксация
8.6. Восстановление
Введение
Контрольная точка
Скоординированная контрольная точка
Независимая контрольная точка
Регистрация сообщений
Вычисления, ориентированные на восстановление
8.7. Резюме
Безопасность
9.1. Введение
Угрозы безопасности, политики и механизмы
Проблемы дизайна
Контроль
Уровни механизмов безопасности
Распределение механизмов безопасности
Простота
Криптография
9.2. Безопасные каналы
Аутентификация
Аутентификация на основе общего секретного ключа
Аутентификация с использованием центра распределения ключей
Аутентификация с использованием криптографии с открытым ключом
Целостность и конфиденциальность сообщений
Цифровые подписи
Сессионные ключи
Безопасное групповое общение
Конфиденциальное групповое общение
Безопасные реплицированные серверы
Пример: система Kerberos
9.3. Контроль доступа
Общие вопросы управления доступом
Матрица контроля доступа
Брандмауэры
Безопасный мобильный код
Отказ в обслуживании
9.4. Безопасное наименование
9.5. Управление безопасностью
Управление ключами
Установка ключей
Распространение ключей
Безопасное управление группами
Управление авторизацией
Возможности и атрибуты
Делегирование (прав)
9.6. Резюме