Из каких компонентов строятся надежные, элегантные, гибкие, удобные в сопро¬
вождении программные архитектуры? Книга отвечает на этот вопрос серией очер¬
ков, написанных ведущими программными архитекторами и проектировщиками
современности. В каждом очерке авторы представляют какую-либо выдающую
программную архитектуру, анализируют ее отличия от других архитектур и объ¬
ясняют, почему она идеально подходит для своей цели.
Из книги вы узнаете, как на основе архитектуры Facebook была построена экосис¬
тема приложений, ориентированных на работу с данными; как новаторская архи¬
тектура Хеn повлияла набудущееоперационных систем; как процессы в сообщест¬
ве проекта KDE способствовали превращению программной архитектуры из пред¬
варительного проекта в элегантную систему; как «ползучая функциональность»
помогла GNU Emacs выйти за пределы изначально запланированных возможнос¬
тей; как устроена высокооптимизированная виртуальная машина Jikes RVM; ка¬
кие сходства и различия существуют между объектно-ориентированными и функ¬
циональными архитектурными школами; как архитектуры влияют на эволюцию
программных продуктов и труд разработчиков.
Author(s): Диомидис Спинеллис, Георгиос Гусиос
Series: Профессионально
Publisher: Символ+
Year: 2010
Language: Russian
Pages: 528
Предисловие 9
Вступление 13
I. Об архитектуре 23
1. Чтотакое архитектура? 25
Введение 25
Создание программной архитектуры 34
Архитектурные структуры 40
Хорошие архитектуры 46
Красивые архитектуры 47
Благодарности 51
Библиография 51
2. Повесть о двух системах:сказка
для современных программистов 53
Беспорядочный мегаполис 54
Архитектурный городок 64
Что дальше? 73
Ваш ход 74
Библиография 75
II. Архитектура корпоративных приложений 77
3. Масштабирование 79
Введение 79
Контекст 81
Архитектура 86
Размышления об архитектуре 94
4.Фото на память 101
Возможности и ограничения 102
Технологический процесс 104
Архитектурные грани 105
Реакция пользователей 133
Заключение 133
Библиография 134
5. Ресурсно-ориентированныеархитектуры,жизнь в WWW 135
Введение 135
Традиционные веб-службы 137
WWW 140
Ресурсно-ориентированные архитектуры 147
Приложения, управляемые данными 152
Практическое применение
ресурсно-ориентированных архитектур 153
Заключение 160
6. Архитектура Facebook Platform 162
Введение 162
Создание социальной веб-службы 169
Созданиесоциальной службы запросов данных 178
Создание социального веб-портала: FBML 189
Поддержка функциональности системы 205
Итоги 210
III.Системная архитектура 213
7. Хеп и красота виртуализации 215
Введение 215
Xenoservers 216
Проблемы виртуализации 220
Паравиртуализация 221
Изменяющаяся конфигурация Хеп 226
Изменения в оборудовании-изменения в Хеn 233
Уроки Хеn 237
Библиография 239
8.Guardian:отказоустойчивая операционная система 240
Tandem/16:когда-нибудь все компьютеры будут такими 241
Оборудование 241
Механическое строение 244
Архитектура процессора 244
Межпроцессорная шина 251
Ввод/вывод 251
Структура процессов 252
Система сообщений 253
Файловая система 258
Фольклор 265
Недостатки 265
Последующие поколения 268
Библиография 268
9. JPC:эмулятор х86 PC на языке Java 270
Введение 271
Проверка концепции 274
Архитектура PC 278
Быстродействие в Java 279
Накладные расходы 281
Опасности защищенного режима 285
Безнадежное дело 289
Берем JVM под контроль 293
Максимальная гибкость 306
Максимальная безопасность 310
Переработка архитектуры 311
10.Метациклические виртуальные машины:Jikes RVM 314
Предыстория 315
Мифы, связанные со средами времени выполнения 317
Краткая история Jikes RVM 321
Инициализация самодостаточной среды времени выполнения 322
Компоненты времени выполнения 328
Выводы 345
Библиография 346
IV. Архитектуры пользовательских приложений 349
11. GNU Emacs:сила ползучей функциональности 351
Emacs в работе 352
Архитектура Emacs 355
Ползучая функциональность 363
Две другие архитектуры 367
12. Когда базар строит собор 372
Введение 372
История и структура проекта KDE 376
Akonadi 383
ThreadWeaver 406
V. Языки и архитектура 419
13. Программные архитектуры:
объектно-ориентированные и функциональные 421
Обзор 422
Примеры 425
Оценка модульности функциональных решений 429
Объектно-ориентированное представление 441
Оценка и улучшение модульности
в объектно-ориентированных архитектурах 449
Агенты:упаковка операций в объектах 455
Благодарности 461
Библиография 461
14. Перечитывая классику 464
Объекты и только объекты 469
Неявное определение типов 479
Проблемы 487
Архитектура в камне 492
Библиография 502
Послесловие 505
Соавторы 510
Алфавитный указатель 519