Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 634932)
Контекстум
Руконтекст антиплагиат система

Искусство неизменяемой архитектуры: теория и практика управления данными в распределенных системах (5000,00 руб.)

0   0
Первый авторЛ. Перрии Майкл
ИздательствоМ.: ДМК Пресс
Страниц390
ID810053
АннотацияЭта книга раскрывает преимущества использования неизменяемых объектов в распределенных системах. Вы узнаете о том, почему важна неизменяемость, исследуете пространство альтернатив и аспекты исторического моделирования. Затем ознакомитесь с математическими основами неизменяемости и увидите, как применять эти знания для анализа систем, построения машин состояний и соблюдения правил безопасности. В завершение будут рассмотрены компоненты компьютерной системы и их использование в неизменяемой архитектуре.
Кому рекомендованоИздание предназначено для архитекторов программного обеспечения и опытных разработчиков, а также аналитиков бизнес-систем.
ISBN978-5-93700-111-5 (рус.)
УДК004.4
ББК32.971.3
Л. Перрии, М. . Искусство неизменяемой архитектуры: теория и практика управления данными в распределенных системах / М. . Л. Перрии .— Москва : ДМК Пресс, 2022 .— 390 с. : ил. — ISBN 978-1-107-02398-7 (англ.) .— ISBN 978-5-93700-111-5 (рус.) .— URL: https://rucont.ru/efd/810053 (дата обращения: 27.04.2024)

Предпросмотр (выдержки из произведения)

Искусство_неизменяемой_архитектуры_теория_и_практика_управления_данными_в_распределенных_системах.pdf
УДК 004.4 ББК 32.971.3 П26 П26 Искусство неизменяемой архитектуры: теория и практика управления данными в распределенных системах / пер. с анг. C. В. Минца; науч. ред. В. С. Яценков. – М.: ДМК Пресс, 2022. – 388 с.: ил. Майкл Л. Перри ISBN 978-5-93700-111-5 Эта книга раскрывает преимущества использования неизменяемых объектов в распределенных системах. Вы узнаете о том, почему важна неизменяемость, исследуете пространство альтернатив и аспекты исторического моделирования. Затем ознакомитесь с математическими основами неизменяемости и увидите, как применять эти знания для анализа систем, построения машин состояний и соблюдения правил безопасности. В завершение будут рассмотрены компоненты компьютерной системы и их использование в неизменяемой архитектуре. Издание предназначено для архитекторов программного обеспечения и опытных разработчиков, а также аналитиков бизнес-систем. УДК 004.4 ББК 32.971.3 First published in English under the title The Art of Immutable Architecture; Theory and Practice of Data Management in Distributed Systems by Michael Perry, edition: 1. This edition has been translated and published under licence from APress Media, LLC, part of Springer Nature. APress Media, LLC, part of Springer Nature takes no responsibility and shall not be made liable for the accuracy of the translation. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. ISBN (анг.) 978-1-107-02398-7 ISBN (рус.) 978-5-93700-111-5 Copyright © Michael L. Perry, 2020 © Оформление, издание, перевод, ДМК Пресс, 2022
Стр.5
Оглавление Об авторе ...........................................................................................................16 О техническом рецензенте ........................................................................17 Благодарности .................................................................................................18 Введение ............................................................................................................20 ЧАСТЬ I. ОПРЕДЕЛЕНИЕ .....................................................................25 Глава 1. Почему неизменяемая архитектура ......................................26 Решение проблемы неизменяемости .............................................................26 Проблемы с неизменяемостью ........................................................................27 Начинаем новое путешествие .........................................................................27 Ошибки распределенных вычислений ...........................................................28 Сеть ненадежна ..........................................................................................28 Время задержки не равно нулю ................................................................29 Топология не меняется .............................................................................30 Изменение предположений ......................................................................30 Неизменяемость меняет все ............................................................................31 Совместное изменяемое состояние .........................................................32 Структурное разделение ..........................................................................32 Проблема двух генералов .................................................................................34 Заранее подготовленный протокол .........................................................36 Уменьшение неопределенности...............................................................36 Дополнительное сообщение .....................................................................37 Доказательство невозможности ...............................................................38 Смягчение ограничений ..................................................................................39 Переопределение проблемы.....................................................................40 Решать и действовать ................................................................................40 Принять истину .........................................................................................41 Действенный протокол .............................................................................41 Примеры неизменяемой архитектуры ...........................................................42 Git ...............................................................................................................43 Блокчейн ....................................................................................................44 Docker .........................................................................................................46
Стр.7
Оглавление  7 Глава 2. Формы неизменяемой архитектуры .....................................48 Выведение состояния из истории ...................................................................48 Исторические записи ................................................................................49 Опираясь на прошлое ........................................................................49 Развитие понимания ..........................................................................50 Изменяемые объекты ................................................................................50 Идентичность .....................................................................................50 Изменение состояния ........................................................................51 Проекции ...................................................................................................51 Два вида состояния ............................................................................52 Проецирование объектов ..................................................................52 Поиск событий ..................................................................................................53 Генерация событий ....................................................................................53 CQRS ...........................................................................................................54 DDD .............................................................................................................55 Взгляд с точки зрения функций ..............................................................56 Коммутативные и идемпотентные события ...........................................57 Асинхронное обновление представления модели .........................................58 Цикл обновления .......................................................................................58 Однонаправленный поток данных ..........................................................60 Неизменяемая архитектура приложений ................................................61 Историческое моделирование .........................................................................62 Частичный порядок ...................................................................................62 Предшественники .....................................................................................63 Преемники .................................................................................................65 Неизменяемые графы ...............................................................................66 Совместная работа ....................................................................................68 Ациклические графы.................................................................................69 Своевременность .......................................................................................69 Ограничения исторического моделирования ................................................70 Отсутствие центральной власти ..............................................................71 Отсутствие часов реального времени ......................................................72 Отсутствие ограничений уникальности ..................................................72 Отсутствие агрегирования ........................................................................73 Глава 3. Как читать историческую модель ...........................................75 Графы типов фактов .........................................................................................76 Шахматная партия ............................................................................................80 Важные атрибуты ......................................................................................81 Цепочка фактов .........................................................................................81 Исход партии .............................................................................................83 Графы экземпляров фактов .............................................................................85 Бессмертная партия .........................................................................................87
Стр.8
8  Оглавление Регистрация ходов .....................................................................................88 Блестящая победа ......................................................................................91 Язык фактологического моделирования ........................................................92 Объявление типов фактов ........................................................................92 Запрос модели ...........................................................................................94 Переход по уровням ..................................................................................95 Объединение совпадений .........................................................................95 Экзистенциальные квантификаторы ...............................................96 Текущее значение ......................................................................................98 Правила авторизации ...............................................................................99 Шахматное приложение .................................................................................100 Примеры использования ........................................................................101 Интерфейс пользователя ........................................................................102 Действия ...........................................................................................102 Представления ..................................................................................103 ЧАСТЬ II. ПРИМЕНЕНИЕ ...................................................................105 Глава 4. Независимость от местоположения .....................................106 Моделирование с неизменяемостью ............................................................107 Синхронизация ...............................................................................................107 Изучение соглашений ....................................................................................108 Идентичность .................................................................................................108 Автоинкрементные идентификаторы ...................................................108 Зависимость от среды ......................................................................109 Вставка отношения «родитель–ребенок» .......................................110 Удаленное создание .........................................................................111 URL-адреса ...............................................................................................111 Идентификация, не зависящая от местоположения .............................112 Естественные ключи ........................................................................113 GUID ...................................................................................................114 Временные метки .............................................................................114 Кортежи .............................................................................................114 Хеши ..................................................................................................115 Открытые ключи ..............................................................................116 Случайные числа ..............................................................................116 Причинность ...................................................................................................117 Упорядочивание шагов ...........................................................................117 Транзитивное свойство ...........................................................................119 Параллелизм ............................................................................................120 Частичный порядок .................................................................................121 Теорема CAP ....................................................................................................121 Определение CAP ....................................................................................122
Стр.9
Оглавление  9 Доказательство теоремы CAP .................................................................124 Проверка алгоритма .........................................................................125 Конечная согласованность .............................................................................127 Виды согласованности ............................................................................128 Сильная конечная согласованность в системе ретрансляции..............129 Идемпотентность и коммутативность ...................................................130 Получение сильной конечной согласованности ...................................131 Система управления контактами ...........................................................133 Воспроизведение истории ......................................................................135 Бесконфликтные реплицированные типы данных (CRDT) .........................136 CRDT, основанные на состоянии ............................................................137 Частично упорядоченное состояние ...............................................137 Причинная история ..........................................................................138 Векторные часы .......................................................................................139 История фактов...............................................................................................141 Наборы .....................................................................................................142 Частичная упорядоченность ............................................................142 Обновление .......................................................................................143 Слияние .............................................................................................143 Исторические записи ..............................................................................143 Различение записей .........................................................................144 Удаление записи ...............................................................................145 Изменение записи ............................................................................146 Записи причинно-следственно связаны ........................................146 Преимущества явной причинности ................................................148 Исторические факты ...............................................................................150 Заключение .....................................................................................................150 Глава 5. Анализ ..............................................................................................152 Примеры использования ........................................................................153 От сценария использования к решению ................................................154 От расширения к преемственности .......................................................155 Данные ............................................................................................................158 Идентификаторы .....................................................................................158 Кардинальность .......................................................................................159 Изменение ...............................................................................................162 Представления ................................................................................................164 Поиск точки старта ..................................................................................164 Аннотированные каркасы ......................................................................165 Удаление из списков ...............................................................................166 Сотрудничество ..............................................................................................170 Регионы ....................................................................................................170 Пересечение границ .........................................................................171
Стр.10
10  Оглавление Разговоры .................................................................................................173 Факты о публикации ........................................................................173 Взаимодействие подсистем .............................................................174 Допустимые упорядочения ............................................................................175 Устранение условий гонки ......................................................................176 Реагирование на различные допустимые заказы .................................177 Последствия ....................................................................................................179 Индексы ...................................................................................................180 Ограничения уникальности ............................................................180 Навигация .........................................................................................181 Поиск .................................................................................................182 Ожидаемое количество результатов ......................................................183 Отсутствие неявного порядка ................................................................184 Агрегаты ............................................................................................185 Итерации ...........................................................................................186 Порядок создания ....................................................................................186 Глава 6. Переходы состояний ..................................................................188 Множество свойств .........................................................................................189 Доставка и выставление счетов ..............................................................190 Внедрение обратных заказов у поставщика..........................................191 Отмены и возвраты .................................................................................191 Параллельные конечные автоматы .......................................................192 Много дочерних элементов ...........................................................................193 Отслеживание проблем в программном обеспечении .........................194 Дочернее состояние.................................................................................195 Составные диаграммы перехода состояний ..........................................195 Декларативная функция состояний .......................................................196 Условная проверка ..........................................................................................197 Допустимость неопределенного состояния ..........................................198 Циклы в изменении состояния ..............................................................199 Сбор данных во время переходов ..........................................................200 Неизменяемые переходы состояний .....................................................201 Вопрос, стоящий за состоянием ....................................................................202 Перевод конечного автомата в историческую модель .........................202 Выполнение заказов ........................................................................202 Отслеживание изменений в программном обеспечении .............205 Причины для вычисления состояния .....................................................207 Обработка следующего действия ....................................................208 Поиск рабочих элементов ................................................................209 Выполнение компенсирующих транзакций ..................................210 Единый источник истины ..............................................................................211 Оркестраторы ..........................................................................................212 Согласованное состояние.................................................................212
Стр.11
Оглавление  11 Центральная проверка .....................................................................212 Сходящиеся истории ...............................................................................213 Определение неизменяемых записей ............................................213 Запрос для следующего действия ...................................................213 Локальное фиксирование действий ................................................214 Определите компенсирующие действия ........................................214 Глава 7. Безопасность ..................................................................................215 Доказательство авторства ..............................................................................215 Ключевые пары ........................................................................................216 Дайджест ..................................................................................................217 Авторизация ...................................................................................................218 Факты принципала ..................................................................................219 Запрос авторизации ................................................................................219 Первоначальная авторизация ................................................................220 Предоставление полномочий ........................................................................222 Ограниченные полномочия ....................................................................223 Неограниченные полномочия ................................................................224 Транзитивная авторизация ....................................................................226 Отмена .....................................................................................................226 Авторизация при получении ..................................................................228 Конфиденциальность .....................................................................................229 Недоверенные узлы .................................................................................229 Асимметричное шифрование .................................................................229 Асимметричное ограничение размера ...........................................230 Шифрование симметричного ключа ..............................................230 Шифрование исторических фактов .......................................................231 Ограничьте распространение конфиденциальных фактов .................232 Правила распространения ...............................................................232 Доказательства .................................................................................233 Атаки и контрмеры .................................................................................234 Секретность .....................................................................................................235 Общий симметричный ключ ..................................................................236 Секретный канал для обсуждения ..................................................236 Создание секретного канала ...........................................................237 Командные правила распространения ...........................................238 Ограничение области применения общего ключа ...............................239 Когорты .............................................................................................239 Периоды ............................................................................................240 Глава 8. Шаблоны .........................................................................................242 Структурные шаблоны ...................................................................................242 Сущность ..................................................................................................243
Стр.12
12  Оглавление Структура ..........................................................................................243 Пример ..............................................................................................244 Последствия ......................................................................................244 Связанные шаблоны ........................................................................244 Владение ..................................................................................................245 Структура ..........................................................................................245 Пример ..............................................................................................247 Последствия ......................................................................................248 Связанные шаблоны ........................................................................248 Удаление ...................................................................................................248 Структура ..........................................................................................249 Пример ..............................................................................................249 Последствия ......................................................................................250 Связанные шаблоны ........................................................................250 Восстановление .......................................................................................251 Структура ..........................................................................................251 Пример ..............................................................................................252 Последствия ......................................................................................253 Связанные шаблоны ........................................................................253 Членство ...................................................................................................253 Структура ..........................................................................................253 Пример ..............................................................................................254 Последствия ......................................................................................255 Связанные шаблоны ........................................................................256 Изменяемое свойство .............................................................................256 Структура ..........................................................................................256 Пример ..............................................................................................259 Последствия ......................................................................................260 Связанные шаблоны ........................................................................262 Ссылка на сущность.................................................................................262 Структура ..........................................................................................262 Пример ..............................................................................................263 Последствия ......................................................................................264 Связанные шаблоны ........................................................................265 Шаблоны рабочих процессов .........................................................................265 Транзакция ..............................................................................................266 Структура ..........................................................................................266 Пример ..............................................................................................267 Последствия ......................................................................................268 Связанные шаблоны ........................................................................268 Очередь ....................................................................................................268 Структура ..........................................................................................269 Пример ..............................................................................................269
Стр.13
Оглавление  13 Последствия ......................................................................................270 Связанные шаблоны ........................................................................271 Период ......................................................................................................271 Структура ..........................................................................................271 Пример ..............................................................................................272 Последствия ......................................................................................274 Связанные шаблоны ........................................................................274 Исходящие ...............................................................................................274 Структура ..........................................................................................275 Пример ..............................................................................................279 Последствия ......................................................................................280 Связанные шаблоны ........................................................................280 Проектирование на основе ограничений .....................................................281 ЧАСТЬ III. РЕАЛИЗАЦИЯ ..................................................................283 Глава 9. Инверсии запросов .....................................................................284 Механизация проблемы .................................................................................285 Анатомия запроса ..........................................................................................285 Последовательность шагов .....................................................................286 Фильтр по экзистенциальному состоянию............................................287 Затронутое множество ...................................................................................288 Вычисление затронутого набора ............................................................289 Инвертирование длинных запросов ......................................................290 Неудовлетворительные инверсии ..........................................................291 Движение назад ..............................................................................................292 Доказательство полноты .........................................................................293 Новые результаты ...........................................................................................294 Дальнейшая оптимизация ......................................................................295 Экзистенциальные условия ...........................................................................296 Рекурсивная инверсия ............................................................................297 Условия хвоста .........................................................................................298 Удаление результатов..............................................................................299 Когда удаление не является удалением .................................................301 Вложенные подзапросы .................................................................................302 Тавтологические условия ........................................................................304 Продолжение доказательства полноты .................................................306 Потенциальные и фактические изменения .................................................307 Удаление отсутствующих результатов ...................................................308 Кеши есть множества ..............................................................................308 Инверсия запросов на практике .............................................................309
Стр.14
14  Оглавление Глава 10. Базы данных SQL ......................................................................310 Идентичность .................................................................................................311 Хранение с адресацией по содержанию ................................................311 Преимущества ..................................................................................312 Коллизии хешей................................................................................313 Вероятность коллизии хешей ..........................................................314 Избегайте использования хешей в качестве первичных ключей ......315 Структура таблицы ..................................................................................315 Отношения ......................................................................................................317 Вставка преемников ................................................................................318 Необязательные предшественники .......................................................318 Много предшественников ......................................................................319 Канонический хеш множества ........................................................320 Вставка многих предшественников ................................................321 Запросы ...........................................................................................................322 Соединения ..............................................................................................322 Коррелированные подзапросы ...............................................................323 Производные таблицы ............................................................................324 Выбор результатов...................................................................................325 Оптимизация ..................................................................................................326 Ложные соединения ................................................................................327 Охватывающие индексы .........................................................................328 Where Not Exists .......................................................................................328 Изменяемые свойства ......................................................................329 Удаление ...........................................................................................329 Очереди .............................................................................................330 Интеграция .....................................................................................................332 Интеграция унаследованных приложений ............................................333 Сканеры ............................................................................................333 Триггеры ...........................................................................................334 Захват изменений данных ..............................................................335 Создание отчетов из баз данных ............................................................335 Агностичные к приложениям хранилища ....................................................336 Общая таблица фактов ............................................................................337 Отношения предшественников ..............................................................338 Управление версиями .............................................................................339 Избегайте последовательных номеров версий ..............................340 Структурное версионирование .......................................................341 Глава 11. Коммуникация ...........................................................................343 Гарантии доставки ..........................................................................................343 Лучшие усилия .........................................................................................345 Подтверждение ........................................................................................345
Стр.15
Оглавление  15 Безопасные методы ..........................................................................346 Идемпотентные методы ..................................................................346 Неидемпотентные методы ..............................................................348 Повторная попытка в пределах соединения ..................................349 Долговечные протоколы .........................................................................349 Очереди .............................................................................................349 Темы ..................................................................................................350 Обработка сообщений ....................................................................................350 Большинство протоколов являются асинхронными ............................351 HTTP обычно является синхронным .....................................................351 Синхронизация данных .................................................................................352 В рамках организации ............................................................................353 Опорные точки .................................................................................353 Многие подписчики .........................................................................355 Ответы ...............................................................................................356 Уведомления .....................................................................................357 Между организациями ............................................................................358 Асинхронный через HTTP ...............................................................358 Webhook ............................................................................................359 Эмуляция REST .................................................................................360 Клиенты, подключающиеся время от времени .....................................361 Очередь на стороне клиента ............................................................362 Закладка на стороне клиента ..........................................................363 Выбор подмножества .......................................................................364 Предотвращение избыточных загрузок .........................................367 Глава 12. Генерируемое поведение ......................................................369 Проекции .........................................................................................................370 Определение проекций ...........................................................................370 Конвейеры проекций ..............................................................................372 Заинтересованность .......................................................................................373 Интерес к удаленным сущностям ..........................................................374 Интерес к прошлым периодам ...............................................................376 Совместное использование интересов ..................................................376 Потеря интереса ......................................................................................377 Неизменяемые среды выполнения ...............................................................379 Генерация модели ...................................................................................380 Выполнение запросов .............................................................................380 Тестирование ...........................................................................................381 Взаимодействие с пользователем ..........................................................382 Взаимодействие .......................................................................................383 Неизменяемые организации .........................................................................385 Основа для принятия решений ..............................................................385 Глобально распределенные системы .....................................................386
Стр.16

Облако ключевых слов *


* - вычисляется автоматически
Антиплагиат система на базе ИИ