КнигоПровод.Ru22.11.2024

/ИТ-книги

Распределённые системы. Принципы и парадигмы — Таненбаум Э., ван Стеен М.
Распределённые системы. Принципы и парадигмы
Таненбаум Э., ван Стеен М.
год издания — 2003, кол-во страниц — 877, ISBN — 5-272-00053-6, 0-13-088893-1, тираж — 5000, язык — русский, тип обложки — твёрд. 7БЦ матов. вставка УФ-лак, масса книги — 1150 гр., издательство — Питер
серия — Классика computer science
КНИГА СНЯТА С ПРОДАЖИ
DISTRIBUTED SYSTEMS
PRINCIPLES AND PARADIGMS

Andrew S. Tanenbaum,
Maarten van Steen

Prentice-Hall 2002

Пер. с англ. В. Горбункова

Формат 70x100 1/16
ключевые слова — распределённ, синхронизац, целостност, репликац, отказоустойчивост, nfs, corba, dcom, jini, www, масштабируемост, мультипроцессор, клиент-сервер, rpc, java, ibm, mqseries, домен, х.500, иерархическ, криптограф, kerberos, sesame, платёжн, globe, rendezvous

Эта книга является фундаментальным курсом по распределённым системам. В ней детально описаны принципы, концепции и технологии этих систем: связь, процессы, синхронизация, целостность и репликация, защита от сбоев и безопасность. Особое внимание в книге уделено World Wide Web, развитие которой и послужило толчком к резкому повышению интереса к распределённым системам. Как это характерно для всех книг Э.Таненбаума, последовательное и детальное изложение теории сопровождается примерами реально действующих систем.

Книга предназначена прежде всего студентам и преподавателям, но, безусловно, будет полезна и специалистам данной области.


В своей книге Эндрю Таненбаум и Маартен ван Стеен изложили основные принципы, современные концепции и технологии построения и использования распределённых систем. В частности, подробно рассматриваются семь ключевых принципов: связь, процессы, синхронизация, непротиворечивость и репликация, отказоустойчивость и защита. Книга предназначена для студентов старших курсов и дипломников по «компьютерным дисциплинам», а также для профессионалов, она изобилует примерами разработки и внедрения распределённых систем в реальной жизни. Стиль изложения материала отличается доступностью и разнообразием рассмотренных систем, таких как NFS v4, CORBA, DCOM, Jini и World Wide Web.

ОГЛАВЛЕНИЕ

Об авторах14
 
Предисловие16
От издательства17
 
Руководство по использованию книги18
Курсы для студентов старших курсов и дипломников18
Семинары для профессионалов19
Первый день20
Второй день20
Самостоятельное изучение20
 
Глава 1. Введение22
1.1. Определение распределённой системы23
1.2. Задачи25
1.2.1. Соединение пользователей с ресурсами25
1.2.2. Прозрачность26
1.2.3. Открытость30
1.2.4. Масштабируемость31
1.3. Концепции аппаратных решений38
1.3.1. Мультипроцессоры40
1.3.2. Гомогенные мультикомпьютерные системы42
1.3.3. Гетерогенные мультикомпьютерные системы44
1.4. Концепции программных решений45
1.4.1. Распределённые операционные системы46
1.4.2. Сетевые операционные системы57
1.4.3. Программное обеспечение промежуточного уровня60
1.5. Модель клиент-сервер67
1.5.1. Клиенты и серверы67
1.5.2. Разделение приложений по уровням72
1.5.3. Варианты архитектуры клиент-сервер75
1.6. Итоги78
Вопросы и задания79
 
Глава 2. Связь81
2.1. Уровни протоколов82
2.1.1. Низкоуровневые протоколы85
2.1.2. Транспортные протоколы87
2.1.3. Протоколы верхнего уровня90
2.2. Удаленный вызов процедур93
2.2.1. Базовые операции RPC94
2.2.2. Передача параметров98
2.2.3. Расширенные модели RPC103
2.2.4. Пример — DCE RPC106
2.3. Обращение к удалённым объектам111
2.3.1. Распределённые объекты112
2.3.2. Привязка клиента к объекту114
2.3.3. Статическое и динамическое удалённое обращение к методам117
2.3.4. Передача параметров118
2.3.5. Пример 1 — удалённые объекты DCE120
2.3.6. Пример 2 — Java RMI122
2.4. Связь посредством сообщений126
2.4.1. Сохранность и синхронность во взаимодействиях126
2.4.2. Нерезидентная связь на основе сообщений131
2.4.3. Сохранная связь на основе сообщений136
2.4.4. Пример — IBM MQSeries143
2.5. Связь на основе потоков данных148
2.5.1. Поддержка непрерывных сред148
2.5.2. Потоки данных и качество обслуживания151
2.5.3. Синхронизация потоков данных156
2.6. Итоги159
Вопросы и задания160
 
Глава 3. Процессы164
3.1. Потоки выполнения165
3.1.1. Знакомство с потоками выполнения165
3.1.2. Потоки выполнения в распределённых системах171
3.2. Клиенты175
3.2.1. Пользовательские интерфейсы175
3.2.2. Клиентское программное обеспечение, обеспечивающее прозрачность
    распределения178
3.3. Серверы179
3.3.1. Общие вопросы разработки179
3.3.2. Серверы объектов183
3.4. Перенос кода189
3.4.1. Подходы к переносу кода189
3.4.2. Перенос и локальные ресурсы194
3.4.3. Перенос кода в гетерогенных системах197
3.4.4. Пример — D'Agent199
3.5. Программные агенты204
3.5.1. Программные агенты в распределённых системах205
3.5.2. Технология агентов207
3.6. Итоги210
Вопросы и задания212
 
Глава 4. Именование214
4.1. Именованные сущности.215
4.1.1. Имена, идентификаторы и адреса215
4.1.2. Разрешение имён220
4.1.3. Реализация пространств имён225
4.1.4. Пример — система доменных имён232
4.1.5. Пример — Х.500237
4.2. Размещение мобильных сущностей241
4.2.1. Именование и локализация сущностей241
4.2.2. Простые решения244
4.2.3. Подходы на основе базовой точки247
4.2.4. Иерархические подходы249
4.3. Удаление сущностей, на которые нет ссылок256
4.3.1. Проблема объектов, на которые нет ссылок257
4.3.2. Подсчёт ссылок258
4.3.3. Организация списка ссылок263
4.3.4. Идентификация сущностей, на которые нет ссылок264
4.4. Итоги270
Вопросы и задания271
 
Глава 5. Синхронизация274
5.1. Синхронизация часов275
5.1.1. Физические часы276
5.1.2. Алгоритмы синхронизации часов280
5.1.3. Использование синхронизированных часов284
5.2. Логические часы285
5.2.1. Отметки времени Лампорта286
5.2.2. Векторные отметки времени290
5.3. Глобальное состояние292
5.4. Алгоритмы голосования296
5.4.1. Алгоритм забияки296
5.4.2. Кольцевой алгоритм298
5.5. Взаимное исключение299
5.5.1. Централизованный алгоритм299
5.5.2. Распределённый алгоритм300
5.5.3. Алгоритм маркерного кольца303
5.5.4. Сравнение трех алгоритмов304
5.6. Распределённые транзакции305
5.6.1. Модель транзакций306
5.6.2. Классификация транзакций309
5.6.3. Реализация312
5.6.4. Управление параллельным выполнением транзакций315
5.7. Итоги324
Вопросы и задания325
 
Глава 6. Непротиворечивость и репликация328
6.1. Обзор329
6.1.1. Доводы в пользу репликации329
6.1.2. Репликация объектов331
6.1.3. Репликация как метод масштабирования333
6.2. Модели непротиворечивости, ориентированные на данные335
6.2.1. Строгая непротиворечивость336
6.2.2. Линеаризуемость и последовательная непротиворечивость338
6.2.3. Причинная непротиворечивость343
6.2.4. Непротиворечивость FIFO344
6.2.5. Слабая непротиворечивость346
6.2.6. Свободная непротиворечивость348
6.2.7. Поэлементная непротиворечивость351
6.2.8. Сравнение моделей непротиворечивости353
6.3. Модели непротиворечивости, ориентированные на клиента355
6.3.1. Потенциальная непротиворечивость356
6.3.2. Монотонное чтение358
6.3.3. Монотонная запись359
6.3.4. Чтение собственных записей361
6.3.5. Запись за чтением362
6.3.6. Реализация363
6.4. Протоколы распределения365
6.4.1. Размещение реплик366
6.4.2. Распространение обновлений370
6.4.3. Эпидемические протоколы374
6.5. Протоколы непротиворечивости377
6.5.1. Протоколы на базе первичной копии378
6.5.2. Протоколы реплицируемой записи382
6.5.3. Протоколы согласования кэшей386
6.6. Примеры388
6.6.1. Огса388
6.6.2. Слабая причинно непротиворечивая репликация394
6.7. Итоги399
Вопросы и задания400
 
Глава 7. Отказоустойчивость403
7.1. Понятие отказоустойчивости404
7.1.1. Основные концепции404
7.1.2. Модели отказов406
7.1.3. Маскирование ошибок при помощи избыточности408
7.2. Отказоустойчивость процессов410
7.2.1. Вопросы разработки410
7.2.2. Маскировка ошибок и репликация413
7.2.3. Соглашения в системах с ошибками414
7.3. Надёжная связь клиент-сервер417
7.3.1. Сквозная передача418
7.3.2. Семантика RPC при наличии ошибок418
7.4. Надёжная групповая рассылка424
7.4.1. Базовые схемы надёжной групповой рассылки424
7.4.2. Масштабируемость надёжной групповой рассылки426
7.4.3. Атомарная групповая рассылка430
7.5. Распределенное подтверждение437
7.5.1. Двухфазное подтверждение437
7.5.2. Трёхфазное подтверждение442
7.6. Восстановление445
7.6.1. Основные понятия445
7.6.2. Создание контрольных точек448
7.6.3. Протоколирование сообщений452
7.7. Итоги455
Вопросы и задания456
 
Глава 8. Защита458
8.1. Общие вопросы защиты459
8.1.1. Угрозы, правила и механизмы459
8.1.2. Вопросы разработки465
8.1.3. Криптография470
8.2. Защищённые каналы478
8.2.1. Аутентификация478
8.2.2. Целостность и конфиденциальность сообщений486
8.2.3. Защищённое групповое взаимодействие490
8.3. Контроль доступа493
8.3.1. Общие вопросы контроля доступа493
8.3.2. Брандмауэры497
8.3.3. Защита мобильного кода499
8.4. Управление защитой506
8.4.1. Управление ключами507
8.4.2. Управление защищёнными группами511
8.4.3. Управление авторизацией512
8.5. Пример — Kerberos518
8.6. Пример — SESAME520
8.6.1. Компоненты системы SESAME521
8.6.2. Сертификаты атрибутов привилегий523
8.7. Пример — электронные платёжные системы525
8.7.1. Электронные платёжные системы525
8.7.2. Защита в электронных платёжных системах527
8.7.3. Примеры протоколов531
8.8. Итоги535
Вопросы и задания537
 
Глава 9. Распределённые системы объектов539
9.1.CORBA540
9.1.1. Обзор541
9.1.2. Связь547
9.1.3. Процессы554
9.1.4. Именование560
9.1.5. Синхронизация564
9.1.6. Кэширование и репликация565
9.1.7. Отказоустойчивость567
9.1.8. Защита569
9.2. DCOM572
9.2.1. Обзор572
9.2.2. Связь578
9.2.3. Процессы581
9.2.4. Именование584
9.2.5. Синхронизация588
9.2.6. Репликация588
9.2.7. Отказоустойчивость588
9.2.8. Защита589
9.3. Globe592
9.3.1. Обзор592
9.3.2. Связь600
9.3.3. Процессы602
9.3.4. Именование604
9.3.5. Синхронизация607
9.3.6. Репликация607
9.3.7. Отказоустойчивость611
9.3.8. Защита611
9.4. Сравнение систем CORBA, DCOM и Globe613
9.4.1. Философия613
9.4.2. Связь615
9.4.3. Процессы615
9.4.4. Именование616
9.4.5. Синхронизация617
9.4.6. Кэширование и репликация617
9.4.7. Отказоустойчивость618
9.4.8. Защита618
9.5. Итоги620
Вопросы и задания621
 
Глава 10. Распределённые файловые системы623
10.1. Сетевая файловая система компании Sun624
10.1.1. Обзор624
10.1.2. Связь629
10.1.3. Процессы630
10.1.4. Именование631
10.1.5. Синхронизация639
10.1.6. Кэширование и репликация644
10.1.7. Отказоустойчивость647
10.1.8. Защита650
10.2. Файловая система Coda654
10.2.1. Обзор654
10.2.2. Связь656
10.2.3. Процессы658
10.2.4. Именование659
10.2.5. Синхронизация661
10.2.6. Кэширование и репликация665
10.2.7. Отказоустойчивость668
10.2.8. Защита671
10.3. Другие распределённые файловые системы674
10.3.1. Plan 9 — ресурсы как файлы674
10.3.2. xFS — файловая система без серверов680
10.3.3. SFS — масштабируемая защита686
10.4. Сравнение распределённых файловых систем689
10.4.1. Философия689
10.4.2. Связь690
10.4.3. Процессы690
10.4.4. Именование691
10.4.5. Синхронизация692
10.4.6. Кэширование и репликация692
10.4.7. Отказоустойчивость693
10.4.8. Защита693
10.5. Итоги695
Вопросы и задания696
 
Глава 11. Распределённые системы документов699
11.1. World Wide Web699
11.1.1.WWW700
11.1.2.Связь709
11.1.3. Процессы715
11.1.4. Именование721
11.1.5. Синхронизация723
11.1.6. Кэширование и репликация724
11.1.7. Отказоустойчивость728
11.1.8. Защита729
11.2. Lotus Notes730
11.2.1. Обзор730
11.2.2. Связь733
11.2.3. Процессы734
11.2.4. Именование736
11.2.5. Синхронизация738
11.2.6. Репликация738
11.2.7. Отказоустойчивость741
11.2.8. Защита741
11.3. Сравнение WWW и Lotus Notes745
11.4. Итоги750
Вопросы и задания750
 
Глава 12. Распределённые системы согласования752
12.1. Знакомство с моделями согласования753
12.2.TIB/Rendezvous755
12.2.1. Обзор755
12.2.2. Связь758
12.2.3. Процессы762
12.2.4. Именование762
12.2.5. Синхронизация763
12.2.6. Кэширование и репликация765
12.2.7. Отказоустойчивость766
12.2.8. Защита768
12.3. Jini770
12.3.1. Обзор770
12.3.2. Связь773
12.3.3. Процессы774
12.3.4. Именование.778
12.3.5. Синхронизация780
12.3.6. Кэширование и репликация782
12.3.7. Отказоустойчивость782
12.3.8. Защита782
12.4. Сравнение TIB/Rendezvous и Jini783
12.5. Итоги787
Вопросы и задания788
 
Глава 13. Библиография790
13.1. Литература для дополнительного чтения790
13.1.1. Введение и общие вопросы790
13.1.2. Связь792
13.1.3. Процессы792
13.1.4. Именование793
13.1.5. Синхронизация794
13.1.6. Непротиворечивость и репликация795
13.1.7. Отказоустойчивость797
13.1.8. Защита797
13.1.9. Распределённые системы объектов799
13.1.10. Распределённые файловые системы800
13.1.11. Распределённые системы документов801
13.1.12. Распределённые системы согласования802
13.2. Список литературы803
 
Список терминов833
 
Алфавитный указатель855

Книги на ту же тему

  1. Введение в параллельные методы решения задач: Учебное пособие, Якобовский М. В., 2013
  2. Современные языки и технологии параллельного программирования: Учебник, Гергель В. П., 2012

© 1913—2013 КнигоПровод.Ruhttp://knigoprovod.ru