第1部分 论架构 3
第1章 何谓架构 John Klein与David Weiss 3
简介 3
创建软件架构 10
架构结构 14
好的架构 19
美丽架构 20
致谢 23
参考文献 23
第2章 两个系统的故事:摩登时代的软件神话 Pete Goodliffe 25
混乱大都市 26
设计之城 33
然后呢 41
轮到你了 41
参考文献 42
第2部分 企业应用架构 45
第3章 可伸缩架构 Jim Waldo 45
简介 45
上下文 47
架构 51
对架构的思考 57
第4章 记忆留存 Michael Nygard 63
功能与约束 64
工作流 65
架构要素 66
用户反应 87
结论 88
参考文献 88
第5章 面向资源架构:在Web之中 Brian Sletten 89
简介 89
传统的Web服务 90
Web 92
面向资源架构 98
数据驱动应用 102
运用面向资源架构 103
结论 109
第6章 数据增长:Facebook平台的架构 Dave Fetterman 111
简介 111
创建社交Web服务 117
创建社交数据查询服务 124
创建社交Web门户:FBML 133
系统的支持功能 146
总结 151
第3部分 系统架构 155
第7章 XEN与虚拟化之美 Derek Murray与Keir Fraser 155
简介 155
Xenoservers 156
虚拟化的挑战 159
半虚拟化 159
Xen的变化 163
变化中的硬件,变化中的Xen 169
前车之鉴 172
延伸阅读 173
第8章 Guardian:一个容错操作系统环境 Greg Lehey 175
Tandem/16:未来所有计算机都将像这样构建 176
硬件 176
机械设计 178
处理器架构 179
处理器间总线 184
输入/输出 184
进程结构 185
消息系统 186
文件系统 190
逸闻趣事 195
弊端 195
后继者 197
延伸阅读 198
第9章 JPC:纯Java的X86 PC模拟器 Rhys Newman与Christopher Dennis 199
简介 200
概念验证 202
PC架构 205
Java性能技巧 206
4GB放入4GB:这不会奏效 207
保护模式的危险 210
屡败屡战 214
劫持JVM 217
终极灵活性 229
终极安全性 231
吃一堑长一智 232
第10章 元循环虚拟机的力量:Jikes RVM Ian Rogers与Dave Grove 235
背景 236
运行时环境之谜 237
Jikes RVM简史 240
自部署运行时的自举 241
运行时组件 246
前车之鉴 259
参考文献 259
第4部分 终端用户应用架构 263
第11章 GNU Emacs:滋生的特性为其优势 Jim Blandy 263
Emacs在使用 264
Emacs的架构 266
滋生的特性 272
另外两个架构 275
第12章 当集市开始构建教堂 Till Adam与Mirko Boehm 279
简介 279
KDE项目的历史与架构 282
Akonadi 287
ThreadWeaver 303
第5部分 语言与架构 315
第13章 软件架构:面向对象vs.面向函数 Bertrand Meyer 315
概览 315
函数式示例 318
评估函数式解决方案的模块化 321
面向对象视图 330
评估和改进面向对象的模块化 336
代理:将操作包裹到对象中 341
致谢 345
参考文献 346
第14章 重读经典 Panagiotis Louridas 349
万物皆对象 353
类型被隐式定义 361
问题 367
土木建筑架构 372
参考文献 380
跋 William J.Mitchell 383
贡献者 387