第一部分 基 础 1
第1章 绪论 1
1.1 概述 2
1.2 简要的术语表 2
1.3 图形符号 3
第2章 CORBA回顾 6
2.1 CORBA的演变 6
2.2 BOA代和POA代 7
2.2.1 BOA代 7
2.2.2 POA代 7
2.3 激发生命周期 7
2.3.1 CORBA请求 7
2.3.2 激发生命周期:评估标准 9
2.3.3 激发生命周期:评估BOA代 10
2.3.4 激发生命周期:评估POA代 13
2.4 对象生命周期 17
2.4.1 CORBA对象 17
2.4.2 对象生命周期事件 18
2.4.3 早期绑定和后期绑定 19
2.4.4 CORBA对象实现的分类 20
2.4.5 CORBA对象实现和内存管理 20
2.4.6 对象生命周期:评估准则 21
2.4.7 对象生命周期:评估BOA代 21
2.4.8 对象生命周期:评估POA代 23
2.5 小结 25
第3章 CORBA服务回顾 26
3.1 核心服务 26
3.2 数据库集成和事务处理 27
3.3 可伸缩性问题 28
3.4 小结 28
第4章 简单例子概述 29
4.1 简介 29
4.2 Stock Watch组件 30
4.2.1 Stock Watch接口 31
4.2.2 数据库模式 32
4.2.3 扩展Stock Watch的系统体系结构 33
4.3 证券管理器组件 35
第5章 性能要求 36
5.1 IDL设计的性能实质 36
5.1.1 访问模式 36
5.1.2 影响性能的重要因素 40
5.1.3 设计例子 42
5.1.4 对象的合适性 45
5.2 传递大量数据 46
5.2.1 迭代器 46
5.2.2 按值传递对象 47
5.2.3 专有的流解决方案 47
5.2.4 声频/视频流 48
5.3 小结 48
第二部分 核心服务 49
第6章 对象定位 49
6.1 定位对象的模型 49
6.2 CORBA对象定位服务 50
6.2.1 CORBA命名服务 51
6.2.2 CORBA交易对象服务 55
6.3 定位对象的其他方法 59
6.3.1 使用对象引用字符串 59
6.3.2 使用工厂对象 60
6.3.3 特定于ORB的方法 60
6.3.4 自举 61
6.4 选择对象定位机制 61
6.5 选择分式对象 62
第7章 消息接发 63
7.1 CORBA和消息接发 63
7.2 ORB对消息接发的支持 63
7.2.1 异步单向激发 64
7.2.2 延迟同步激发 66
7.2.3 消息接发的实现 66
7.3 面向消息中间件的需求 67
7.4 当前面向消息中间件产品 67
7.5 相关的CORBA服务 67
7.5.1 CORBA事件服务 67
7.5.2 CORBA通知服务 70
7.5.3 即将实现CORBA服务 71
7.6 多目消息接发 71
7.6.1 网络术语 71
7.6.2 网际协议IP 71
7.6.3 单目和多目 72
7.6.4 多目传送实例研究:Orbix Talk产品 73
7.7 小结 76
第8章 安全 77
8.1 安全的概念 77
8.1.1 认证 77
8.1.2 授权 78
8.1.3 加密 78
8.1.4 数据完整性 78
8.1.5 不可否认 78
8.1.6 证件和委托 79
8.2 企业系统安全需求和策略 79
8.2.1 分析 79
8.2.2 设计 80
8.2.3 实现 81
8.3 CORBA安全 81
8.3.1 CORBA安全服务规范 81
8.3.2 安全互操作/SecIOP规范 83
8.3.3 ORB-SSL集成规范 84
8.3.4 CORBA/防火墙规范 84
8.4 实际的解决方案 85
8.4.1 企业CORBA安全:系统的协调运作 85
8.4.2 内部Intranet系统 86
8.4.3 外部Internet系统 88
第三部分 数据库集成和事务处理 91
第9章 对象的持久性 91
9.1 简介 91
9.1.1 RDBMS与ODBMS 92
9.1.2 阻抗失配问题 92
9.1.3 对象持久性服务的特征 94
9.2 访问关系数据库 94
9.2.1 本地的SQL API 94
9.2.2 开放连接 95
9.2.3 OO SQL封装类 95
9.3 对象/关系映射 95
9.3.1 基本映射技术 96
9.3.2 水平分割 97
9.3.3 垂直分割 98
9.3.4 统一 99
9.3.5 自顶而下和自底而上 99
9.3.6 对象/关系代码生成 100
9.3.7 对象/关系映射的局限 101
9.4 对象数据库 101
9.5 数据一致性 102
9.5.1 事务 103
9.5.2 并发控制 103
9.5.3 数据同步 104
9.6 小结 105
第10章 数据库集成 106
10.1 系统体系结构 106
10.1.1 三层结构 106
10.1.2 N层结构 107
10.2 相关的OMG工作 107
10.3 集成的各方面 108
10.4 CORBA业务对象 109
10.4.1 阻抗失配 110
10.4.2 对象/关系代码生成 111
10.4.3 对象关系 111
10.5 ODBMS 112
10.6 CORBA关系服务 112
10.7 CORBA查询服务 113
10.8 特定于应用程序的解决方案 113
10.9 权衡 114
10.9.1 做实际工作的层次 114
10.9.2 事务和并发 115
10.9.3 对象标识 115
10.9.4 伺服对象管理 116
10.10 无状态伺服对象 116
10.11 有状态伺服对象 116
10.12 数据库适配器 117
10.13 海量对象CORBA系统 118
第11章 CORBA环境下的事务 119
11.1 两层和三层结构 119
11.2 客户机控制事务和服务器控制事务 119
11.3 服务器控制事务 119
11.3.1 每操作事务模型 119
11.3.2 分段事务模型 121
11.4 客户机控制事务 121
11.5 小结 122
第12章 分布式事务处理 123
12.1 事务处理 123
12.1.1 事务处理系统 123
12.1.2 事务处理监控器 124
12.1.3 对象事务监控器 124
12.1.4 ACID事务 125
12.1.5 事务管理 126
12.1.6 X/Open DTP 127
12.2 CORBA对象事务服务 128
12.2.1 总览 129
12.2.2 用OTS编程 129
12.2.3 事务资源 132
12.2.4 恢复 132
12.2.5 OTS体系结构 132
12.2.6 并发 134
12.2.7 OTS提供了多少ACID 135
12.2.8 多少ACID是合适的 136
12.2.9 事务分布的分类 137
12.3 高级的事务模型 139
12.3.1 持久队列 139
12.3.2 工作流和多事务 140
12.3.3 Saga事务 141
12.3.4 嵌套事务 142
12.4 小结 144
第13章 用户会话 146
13.1 短期事务与长期事务 146
13.2 并发控制 147
13.2.1 锁定 147
13.2.2 时间戳排序 147
13.2.3 乐观并发控制 148
13.2.4 乐观并发控制与商业DBMS 148
13.3 三层环境下的会话 149
13.3.1 客户机控制事务:OTS 150
13.3.2 服务器控制事务:每操作 150
13.3.3 服务器控制事务:分阶段 151
13.4 案例研究:保险合同管理器 152
13.4.1 系统需求 153
13.4.2 设计 154
13.4.3 体系结构 160
13.4.4 实现 161
13.4.5 管理版本的层次 162
13.5 小结 163
第四部分 可伸缩性问题 165
第14章 服务器资源管理 165
14.1 内存管理 165
14.1.1 对象分类 166
14.1.2 对象生命周期事件 166
14.1.3 伺服对象池模式 167
14.1.4 案例研究:股票价格迭代器 171
14.1.5 分布式内存管理 172
14.1.6 小结 173
14.2 连接管理 173
14.2.1 连接和CORBA规范 174
14.2.2 在证券管理器例子中的连接 175
14.2.3 可伸缩性的方法 177
14.2.4 小结 181
14.3 线程管理 182
14.3.1 多线程概述 182
14.3.2 多线程的CORBA客户机 183
14.3.3 多线程的CORBA服务器 184
14.4 小结 189
第15章 负载平衡 190
15.1 负载平衡的必要性 190
15.2 应用程序分区 191
15.2.1 水平应用程序分区 192
15.2.2 垂直应用程序分区 192
15.2.3 分区策略 193
15.3 复制 194
15.4 复制机制 196
15.4.1 定位机制 196
15.4.2 迁徙机制 202
15.4.3 状态管理 204
15.5 复制框架 207
15.5.1 组件复制 207
15.5.2 集中器模式 208
15.5.3 BOA激活模式 212
15.6 衡量负载平衡的花费 212
15.7 小结 214
第16章 容错性 215
16.1 什么是容错性 215
16.1.1 需要一种实用的容错方法 216
16.1.2 故障类型 217
16.1.3 故障检测 217
16.1.4 故障通知 219
16.1.5 容错与客户机 220
16.2 当前CORBA对容错的支持 220
16.3 容错性与复制 221
16.3.1 应用程序状态:服务器和数据库的复制 221
16.3.2 应用程序服务器策略 222
16.3.3 讨论 229
16.4 案例研究——一个高可用性的CORBA系统 229
16.4.1 引言 229
16.4.2 数据库复制 231
16.4.3 高可用性 231
16.5 未来CORBA对容错性的支持 235
16.6 小结 237
第17章 系统管理与维护 238
17.1 系统管理 238
17.1.1 网络管理 238
17.1.2 活动系统和系统基础设施 240
17.2 管理活动系统 240
17.2.1 应用程序监控 240
17.2.2 性能监控 242
17.2.3 存储管理 242
17.3 系统基础设施维护 243
17.3.1 调配CORBA系统 243
17.3.2 管理变动 244
17.3.3 CORBA环境中的版本化 245
17.4 小结 246
第五部分 工程化CORBA系统 247
第18章 工程化过程的重要性 247
18.1 CORBA和软件工程过程 247
18.1.1 对象管理组 248
18.1.2 传统软件工程过程 248
18.1.3 使软件工程过程适合于反映分布式处理 248
18.2 CORBA组件模型 250
18.2.1 统一建模语言 250
18.2.2 使UML适合于反映分布处理 251
18.3 建模CORBA组件 254
18.3.1 组件特性 255
18.3.2 例子 256
18.3.3 建模组件的一般原则 257
18.3.4 再论阻抗失配 258
18.4 将建模结果映射到实现 261
18.4.1 UML建模元素 261
18.4.2 实现元素 263
18.4.3 模型与实现 264
18.5 小结 264
第19章 自动化工程过程 266
19.1 CASE 266
19.2 代码生成 266
19.2.1 基于IDL的代码生成 267
19.2.2 基于模型的代码生成 269
19.2.3 对不同方法的讨论 269
19.3 过程向导 271
19.4 小结 271
第20章 结论 272
20.1 困难仍然存在 272
20.2 希望已出现在地平线上 272