本书是John Wiley出版社出版的关于框架的三卷本中的第三卷。本书通过30个由专业人士提供的框架实例介绍特定领域的应用框架的设计、使用和部署,如何克服在应用框架开发过程中遇到的困难,以及如何具有足够的能力对特定领域应用框架新技术的研究和更新。这些实例涉及了四大领域:计算机集成制造、分布式系统、网络和电信应用、系统开发环境,均有详细的介绍、分析和总结,读者既可知其然,亦可知其所以然。
本书是众多资深人士集体经验和智慧的结晶,适合广大的计算机和软件业的从业人员,包括:特定领域的应用框架项目的管理人员和开发人员、项目经理、软件主管、面向对象开发人员、系统分析和设计人员,等等。同时,合同经理、软件方法学专家和程序开发人员等也都会从本书中受益。
第1章 简介 1
1.1 应用框架分类 1
1.2 本书的组织 2
1.3 小结 3
1.4 参考文献 4
第1部分 计算机集成制造框架
第2章 SEMATECH计算机集成制造框架 7
2.1 背景 7
2.1.1 历史 7
2.1.2 商业案例(BusinessCase 8
2.1.3 计算机集成制造框架的目标 8
2.2 为什么要使用框架 10
2.3 计算机集成制造框架的结构 11
2.3.1 接口 11
2.3.2 组件 12
2.3.3 应用对象 13
2.3.4 计算机集成制造框架的作用域 13
2.4 计算机集成制造框架的底层结构支持 14
2.4.1 对象请求代理 15
2.4.2 CORBAServices 15
2.4.3 CORBAFacilities 15
2.4.4 领域接口 16
2.4.5 应用对象 16
2.5 计算机集成制造框架的文档 16
2.6 框架规约和开发过程中的经验教训 17
2.6.1 实现经验非常重要 17
2.6.2 框架会增加初始成本 17
2.6.3 底层结构的耦合很难避免 18
2.6.4 框架重叠 18
2.6.5 技术不够成熟 18
2.7 未来的发展方向 18
2.8 小结 19
2.9 参考文献 19
第3章 计算机集成制造框架与模式语言 20
3.1 模式和模式语言 20
3.2 柔性制造系统示例 21
3.3 模式语言 22
3.3.1 模式1:控制层次结构 23
3.3.2 模式2:控制模块之间的可见性和通信 24
3.3.3 模式3:对象与并发 27
3.3.4 模式4:事件触发行为 29
3.3.5 模式5:等待条件为真的服务 30
3.3.6 模式6:客户/服务器/服务 31
3.3.7 模式7:控制模块实现 33
3.3.8 模式8:控制模块接口 34
3.3.9 模式9:原型系统与实际系统 36
3.3.10 模式10:控制模块分布 37
3.3.11 模式11:远程控制 39
3.4 小结 41
3.5 参考文献 41
第4章 OSEFA加工制造框架 43
4.1 特定领域的黑箱框架 44
4.2 包含冻结点的加工制造子领域 45
4.3 制造单元配置的可变性和热点 49
4.3.1 热点简介 50
4.4 分层的框架体系结构 51
4.5 加工控制层 53
4.5.1 热点可变性 54
4.5.2 热点子系统 54
4.6 加工命令热点 55
4.6.1 热点可变性 56
4.6.2 热点子系统 57
4.7 领域对象层 57
4.7.1 热点可变性 58
4.7.2 热点子系统 58
4.8 标准机器设备层 59
4.8.1 热点可变性 60
4;8.2 热点子系统 60
4.9 具体机器设备层 60
4.10 应用创建 62
4.11 交互式配置器 63
4.12 经验 63
4.12.1 开发 64
4.12.2 测试 64
4.12.3 创建应用系统的工作量 64
4.12.4框架成本 65
4.13 小结 65
4.14 参考文献 66
第5章 不同计算机集成制造子领域内的框架重用 67
5.1 制造子领域 68
5.1.1 单元拓扑结构 68
5.2 框架体系结构 71
5.3 通用子领域属,陛和基本框架体系结构 72
5.3.1 基本框架体系结构逻辑视图 73
5.3.2 基本框架体系结构的进程视图 74
5.4 以仓库为中,b的框架OSEFA 74
5.4.1 OSEFA子领域特征 74
5.4.2 框架体系结构 75
5.4.3 框架体系结构的进程视图 76
5.4.4 经验和成果 77
5.5 OSEFA的分散数据存储扩展 77
5.5.1 分散数据存储 77
5.5.2 框架体系结构 78
5.5.3 经验 78
5.6 以流为中心的加工制造框架 79
5.6.1 以流为中心的拓扑结构 79
5.6.2 框架体系结构 79
5.6.3 经验 80
5.7 智能装配线框架 80
5.7.1 以装配线为中心的拓扑 81
5.7.2 智能工作站 81
5.7.3 生产数据管理 82
5.7.4 集中数据存储和分散数据存储 83
5.7.5 体系结构小结 83
5.7.6 经验和结论 83
5.8 总体成果 84
5.9 小结 85
5.10 参考文献 85
第6章 柔性制造系统的案例分析 87
6.1 框架和模式语言 88
6.2 应用领域 89
6.2.1 生产问题 89
6.2.2 软件控制体系结构 90
6.3 框架 91
6.3.1 低层组件 92
6.3.2 创建柔性制造系统应用 95
6.4 小结 99
6.5 参考文献 101
插页1 理论联系实际 103
第2部分 更多的制造框架
第7章 并发工程框架CEF 109
7.1 定制过程 109
7.1.1 传统方法 110
7.1.2 设计理念 111
7.1.3 定制过程的三个阶段 111
7.2 动态领域建模 113
7.2.1 基于原型的对象系统 113
7.2.2 包和字典 115
7.2.3 变化的传播 115
7.3 体系结构设计 117
7.3.1 体系结构总体介绍 117
7.4 经验教训I 121
7.5 小结 123
7.6 参考文献 123
第8章分布式制造执行系统F匡架 124
8.1 体系结构 125
8.1.1 简介 125
8.1.2 框架的组成部分 127
8.2 框架实现 132
8.2.1 类库 132
8.3 小结 140
8.4 参考文献 141
第9章 生产资源管理器PRM框架 142
9.1 领域背景和框架设计目的 143
9.1.1 现有方法 143
9.1.2 1BM公司的经验 144
9.2 框架体系结构 146
9.3 场景框架 149
9.3.1 核心框架 149
9.3.2 应用框架 150
9.3.3 订购机制 152
9.3.4 场景及其相关类的层次结构 153
9.4 数据接口框架 154
9.4.1 设计条件 154
9.4.2 可供选择的其他设计方案 155
9.4.3 数据接口框架设计 155
9.4.4 数据接口框架小结 157
9.5 用户界面框架 157
9.6 两个PRM应用系统实例 158
9.6.1 内爆应用 158
9.6.2 CMRP应用 159
9.7 小结 161
9.8 参考文献 161
第10章 领域框架开发 163
10.1 面向对象的领域工程(OODE方法 163
10.1.1 面向对象的领域分析OODA阶段 164
10.1.2 面向对象的领域设计(OODD阶段 167
10.1.3 OODE提交阶段 169
10.1.4 OODE和其他方法之间的关系 170
10.2 案例分析:过程监控和诊断领域 171
10.2.1 PM&D领域分析 171
10.2.2 PM&D领域设计 174
10.2.3 PM&D领域提交结果 176
10.3 小结 179
10.4 参考文献 179
第11章 测量系统框架 181
11.1 测量系统:需求 .182
11.1.1 非功能性需求 183
11.2 测量系统框架设计 184
11.2.1 测量过程 185
11.2.2 传感器 185
11.2.3 更新策略 187
11.2.4 计算策略 187
11.2.5 测量部件 188
11.2.6 测量值 189
11.2.7 定标策略 190
11.2.8 部件工厂 191
11.2.9 制动器 192
11.2.10 实时性考虑 192
11.3 仿真框架应用 193
11.3.1 硬件传感器 194
11.3.2 硬件制动器 195
11.3.3 举例 195
11.4 例子:啤酒罐系统 197
11.4.1 硬件实体类 198
11.4.2 啤酒罐系统 200
11.5 评估 203
11.5.1 汲取的教训 203
11.5.2 面向对象范例的评估 205
11.6 相关工作 207
11.7 小结 208
11.8 参考文献 208
第3部分 分布式系统框架
第12章 复合活动文档 214
12.1 基于组件的CORBA软件体系结构 215
12.1.1 CORBA的分层服务体系结构 215
12.1.2 体系结构的基本组成元素 216
12.1.3 CORBA对象服务 216
12.2 CORBA的系统服务及应用服务 217
12.2.1 CORBA系统服务 217
12.2.2 CORBA的与领域无关(水平的应用服务 218
12.2.3 OpenDoc所指定的应用服务 219
12.3 OpenDoc:一个用于复合活动文档的CORBA框架 219
12.3.1 文档结构 219
12.3.2 布局 220
12.3.3 存储 220
12.3.4 数据传输 221
12.3.5 从语言扩展到组件 221
12.3.6 脚本 222
12.4 微软公司的复合文档体系结构:COM/OLE/Activex 222
12.5 Java接口、Applet、Bean 224
12.5.1 对接口的扩展及对类的实现 225
12.5.2 Applet与JavaBeans 226
12.6 组件交互的事件模型(EventModelof
ComponenthteracdOn 228
12.7 交互模式(ModesOfhteracdOn 231
12.8 通过组件行为的约束条件指定框架 233
12.9 小结 234
12.10 参考文献 235
第13章 监管控制系统框架体系结构 236
13.1 OpenDREAMS体系结构和方法论 238
13.2 CORBA/OpenDREAMS服务 239
13.3 监管控制CORBA/OpenDREAMS领域 241
13.3.1 工具模块(UtilityModules 241
13.3.2 活动模块 243
13.3.3 专用工具模块 244
13.4 基于TRIO的开发方法 244
13.4.1 应用需求规约(ApplicationRequirementsSpecification 245
13.4.2 应用需求确认 247
13.4.3 从需求规约导出体系结构设计 247
13.5 当前的研究进展和今后的发展方向 252
13.6 小结 253
13.7 参考文献 253
窘14章 EPEE超级计算框架 255
14.1 EPEE框架 256
14.1.1 EPEE并行程序模型 256
14.1.2 EPEE框架的结构 257
14.1.3 基本通信和数据共享组件 258
14.1.4 分布管理组件 259
14.1.5 并行操作符 262
14.1.6 操作符设计模式 263
14.2 使用EPEE构建并行线性代数库 269
14.2.1 Paladin的设计准则 269
14.2.2 Pala~n中分布矩阵的实现 271
14.2.3 并行技术 273
14.2.4 性能问题 5
14.3 使用Paladin编写应用 276
14.3.1 互操作性 276
14.3.2 动态重新分布 277
14.3.3 隐藏所有并行和分布问题 277
14.4 相关工作 279
14.5 小结 280
14.6 参考文献 281
插页2 医疗领域中的框架 284
第15章 用于可靠分布式计算的BAST框架 288
15.1 概述 288
15.2 可靠小需求 289
15.2.1 获得可靠性的方法 289
15.2.2 区分设计技能 290
15.3 BAST框架 291
15.3.1 设计的源动力 292
15.3.2 可靠小的分解和重组 292
15.4 可靠分布式程序设计 293
15.4.1 问题懈决方案组合Problem/SolutionPair 294
15.4.2 分布式程序设计环境 294
15.5 BAST简介 296
15.5.1 系统模型 296
15.5.2 现成可用的组件 297
15.5.3 协议类层次结构 298
15.6 BAST的使用方法 300
15.6.1 主动复制(ActiveReplication的实现 300
15.6.2 类ABCOb,ject的使用方法 301
15.7 深入探讨BAST 302
15.7.1 协议之间的依赖关系 302
15.7.2 协议层之间的交互 304
15.7.3 算法对象 304
15.7.4 一个可靠多播例子 306
15.7.5 自然的并发管理 307
15.7.6 策略的递归使用 307
15.7.7 不足之处和约束条件 308
15.8 协议组合和调整 309
15.8.1 灵活的协议组合 309
15.8.2 调整分布式算法 310
15.9 使用DTM协定模式 311
15.9.1 分布式协定模式 312
15.9.2 使用DTM进行原子提交 314
15.9.3 使用DTM进行完全顺序多播 316
15.10 实现中的问题 320
15.10.1 实现概述 321
15.10.2 对传输层的依赖 322
15.10.3 可选设计方案 322
15.10.4 性能 325
15.10.5 潜在的优化可能 328
15.11 小结 329
15.11.1 观点的集成 329
15.11.2 当前状态 329
15.12 参考文献 330
第16章 面向对象的实时系统框架 333
16.1 高层重用技术 333
16.2 OORTSF中的类层次结构 335
16.3 OORTSF中的对象协作场景 338
16.4 面向框架的应用系统开发 339
16.5 OORTSF扩展 342
16.6 小结 342
16.7 参考文献 343
第17章 JAWS高性能Web服务器框架 345
17.1 使用模式和框架构建Web服务器 346
17.1.1 开发Web服务器软件时的常见陷阱 346
17.1.2 使用模式和框架避开Web服务器开发中的陷阱 348
17.1.3 框架、模式及其他重用技术之间的关系 349
17.2 JAWS适应性Web服务器(JAWS
AdapdveWebServer 351
17.2.1 JAWS框架的总体介绍 351
17.2.2 JAWS中的设计模式简介 353
17.2.3 并发策略 358
17.2.4 输入输出策略 361
17.2.5 协议流水线策略 364
17.2.6 文件缓存策略 368
17.2.7 JAWS框架回顾 370
17.3 Web服务器基准测试平台及其测试结果 371
17.3.1 硬件测试平台 372
17.3.2 软件请求生成器 372
17.3.3 测试结果 373
17.3.4 Web服务器优化技术总结— 377
17.4 小结 381
17.5 参考文献 382
插页3 Internet应用开发的5模块框架 385
第4部分 网络和电信框架
第18章 网络管理代理框架 391
18.1 MIB框架 393
18.1.1 框架的操作 393
18.1.2 MOC实现——通用部分 396
18.1.3 MOC实现待定部分 397
18.1.4 代码生成 398
18.1.5 通用部分和MOC特定部分之间的相互作用 399
18.2 小结 401
18.3 参考文献 402
第19章 电信网络规划框架 403
19.1 NETPLAN框架 404
19.1.1 框架简介 405
19.1.2 实现和平台问题 408
19.1.3 示例应用:ISDN上TCP/IP的延时行为 409
19.1.4 网络模型 410
19.1.5 控制器框架 412
19.1.6 界面框架 414
19.1.7 算法框架 416
19.2 示例应用 420
19.3 小结 421
19.4 参考文献 422
第20章 FIONA分布式C1应用集成框架 424
20.1 GRACE系统体系结构 425
20.2 FIONA框架 427
20.2.1 CORBA与GUI软件的组合 429
20.3 HONA中的设计模式 430
20.3.1 Storable模式 430
20.3.2 AnonymousPublish-Subscribe模式 434
20.3.3 Command模式 435
20.4 小应用程序框架 436
20.5 经验总结 438
20.6 小结 439
20.7 参考文献 439
第21章 MultiTEL多媒体电信服务框架 441
21.1 面向组件的模型 443
21.1.1 组件 444
21.1.2 连接器 444
21.1.3 组件和连接器的组合 445
21.2 MuldTEL的组合体系结构 447
21.2.1 服务子系统 448
21.2.2 多媒体子系统 450
21.2.3 网络子系统 451
21.3 MumTEL:用Java实现的MTS框架 454
21.3.1 Component基类 455
21.3.2 Connector基类 456
21.3.3 基类的动态组合 458
21.4 中间件平台 461
21.4.1 组件目录 462
21.4.2 应用目录 462
21.4.3 远程通信 463
21.5 框架部署 463
21.5.1 使用组件目录 463
21.5.2 使用应用目录 467
21.6 小结 469
21.7 参考文献 469
第22章 事件过滤器框架及应用 472
22.1 事件过滤器框架组件 472
22.1.1 事件定义构建器组件 473
22.1.2 订制组件 473
22.1.3 过滤器迭代器组件 473
22.1.4 动作组件 474
22.2 事件过滤器框架设计 474
22.3 事件过滤器框架的实现 478
22.4 事件过滤器框架应用 482
22.4.1 电子邮件过滤器应用 482
22.4.2 Web过滤器应用 486
22.4.3 网络管理应用 486
22.5 经验和教训 487
22.6 小结 487
22.7 参考文献 489
插页4 网络管理接口框架LAYLA 490
第5部分 环 境
第23章 基于框架的组件Beyond-Sniff 496
23.1 从Sniiff到Beyond-Sniff. 498
23.2 Beyond-Sniff体系结构 499
23.2.1 组件视图 500
23.2.2 组件结构视图 501
23.2.3 框架结构视图 502
23.2.4 框架重用视图 503
23.3 T001Integration框架:一个组件协作框架 504
23.4 迭代开发和演进的体系结构支持 506
23.4.1 组件和框架层次 507
23.5 案例分析:Boar 510
23.6 经验体会 511
23.7 小结 512
23.8 参考文献 512
第24章 可扩展计算化学环境ECCE. 514
24.1 ECCE是什么 514
24.2 设计目标 515
24.3 以数据为中心的设计 516
24.4 为什么采用面向对象框架 517
24.5 问题领域:计算化学 518
24.6 ECCE体系结构 519
24.7 框架组件 520
24.8 化学数据模型框架 520
24.8.1 计算处理框架 522
24.8.2 计算设置框架 524
24.8.3 属性分析框架 525
24.9 经验 526
24.10 进一步的工作 527
24.11 小结 528
24.12 参考文献 528
第25章 Amillet原型一实例框架 530
25.1 层次化的设计 531
25.1.1 窗口管理器的抽象接口 531
25.1.2 对象系统 532
25.1.3 约束 535
25.1.4 Opal输出模型 538
25.1.5 交互器 539
25.1.6 窗口控件 541
25.1.7 命令对象 542
25.2 常见应用的编写 544
25.3 调试工具 544
25.4 当前的状态及今后的工作 545
25.5 相关工作 546
25.6 小结 546
25.7 参考文献 547
第26章 基于图形的数据可视化框架Jadve 549
26.1 Jadve的设计和实现 550
26.1.1 设计目标 551
26.1.2 图形表示、显示和布局 551
26.1.3 多用户协作支持 552
26.1.4 Jadve的组件 553
26.2 JadveAPI 557
26.3 Jadve应用 559
26.3.1 例1: Improvise 559
26.3.2 例2:Chava 561
26.3.3 例3:分类观察器(ClassifierVisualizer 561
26.4 相关工作 562
26.5 今后的工作 563
26.6 小结 564
26.7 参考文献 565
第27章 对象环境 566
27.1 用于构建对象环境的框架 567
27.2 软件包简介 567
27.2.1 组合状态 568
27.2.2 调试日志 571
27.2.3 回调 575
27.2.4 警报 581
27.2.5 配置 583
27.2.6 定时器 585
27.2.7 应用事件 588
27.3 小结 591
27.4 参考文献 591
第28章 多模型建模仿真框架 592
28.1 简介 595
28.2 几何形体和动态行为建模的面向对象解决方案 596
28.3 模型特化 599
28.4 OOPM的可视化元素 601
28.4.1 概念模型 602
28.5 OOPM的非可视化元素 609
28.5.1 TranslatOr 609
28.5.2 Engine 610
28.6 小结 613
28.7 参考文献 613
第29章 应用框架调查 615
29.1 框架分类 615
29.1.1 根据作用域的分类 615
29.1.2 根据扩展技术分类 617
29.2 框架文档 618
29.2.1 文档类型 619
29.3 框架比较 620
29.3.1 操作系统 620
29.3.2 语言 620
29.3.3 领域范畴 621
29.4 框架数据 622
29.4.1 最终应用中框架所占比例 623
29.4.2 使用的工具 623
29.4.3 框架学习和开发的平均时间 623
29.4.4 使用的设计模式 624
29.5 获得的经验 624
29.5.1 框架的经验方法和启示 624
29.5.2 框架的商品化 626
29.6 小结 631
29.7 参考文献 632
附录A 词汇表 633
附录B 作者索引 651
与软件架构和设计模式一样,框架也是一种重要的高层软件重用机制。通过对框架的重用和定制,我们可以生成特定领域内的应用系统。框架既重用设计,又重用组件,它是按照一定的设计模式组织的、面向特定应用领域的组件集合。
本书为John Wiley出版社的框架三卷本中的第3卷(第1卷为BuildingApplicationFrameworks:Object-OrientedFoundationsOfFrameworkDesign,第2卷为Implementing Application Frameworks:Object-Oriented FramewOrks atWoK。此次电子工业出版社将三卷本一并翻译出版,可谓一大贡献。
本书共分为5部分,介绍了4个应用领域内的30个框架实例,其中第1部分和第2部分介绍了计算机集成制造框架;第3部分介绍了分布式系统框架;第4部分介绍了网络和电信框架;第5部分介绍了系统开发环境框架。一些比较简短的例子将以插页的形式出现在部分末。
本书通过大量实例来介绍特定领域的应用框架。但不同应用领域内的框架存在很大差别,因此要比较全面地掌握特定领域框架的设计和使用,必须以大量的开发经验作为基础条件。本书介绍的30个框架实例均由专业框架设计人士提供,具有强烈的行业应用背景(有些还具有一定的研究背景。由于各个实例都出自专业人士的手笔,所以对它们的介绍、分析和总结深入浅出,非常准确、得体,特别是那些经验教训更显得弥足珍贵。
框架是一种重要的重用机制,因此框架支持的应用设计不是一次性的,框架应该具有良好的可扩展性和适应性,并可支持应用的迭代开发。因此,本书的框架实例中介绍并使用了大量软件设计知识,如软件工程过程、设计模式、UML、面向对象程序设计等内容。通过对本书的阅读,读者在走近框架的同时,也在潜移默化中深入理解了这些概念。
总之,通过这些来自业界的大量实例和众多经验,读者可在前两卷的基础上完成由理论到实践的飞跃。
本书的翻译工作由姜晓红博士(浙江大学计算机科学与技术学院副教授全面组织,由姜晓红、李岩、赵爱东共同翻译。其中序言、第1章和第1部分(第2章至第6章由刘培莙博士(上海贝尔阿尔卡特股份有限公司无线研发部翻译,第2部分(第7章至第11章由赵爱东同志翻译,第3部分(第12章至第17章由姜晓红博士翻译,第4部分和第5部分(第18
章至第29章由李岩博士翻译,附录由赵爱东同志翻译,姜晓红博士和赵爱东同志审校全部译文。
感谢电子工业出版社的多位编辑对我们的大力支持,感谢Google.com,Debian.org,OpenOffice.org,KingSoft.com,Powerdict.com,Babylon.com,浙江大学缘网等网站在翻译过程中对我们的巨大帮助(特别是Google.com,同时还要感谢中国人民解放军空军航空大学的杨承志同志及其他同志在翻译过程中对我们的大力协助,在此一并表示感谢。
本书涉及面广,具有特殊含义的名词较多,其中还涉及意、法、德、西班牙等语言,这给我们的翻译工作增加了难度,但是凭借认真严谨的态度,也依靠Intemet和大家的帮助,我们基本克服了这些困难。在翻译过程中,我们也发现了原书的几处排版和印刷错误,并对其做了订正。但由于译者水平有限,译本中定会存在不少错误和不妥之处,在此我们恳请读者批评指正。
E-mail:jiangxh@cad.zjn.edu.Cn