第一部分 技术概览 1
第一章 Windows DNA 1
1.1 商业问题,结构化的解决方案 1
译者序 1
1.1.1 应用程序体系结构 2
致谢 3
引言 5
1.1.2 组件 6
1.1.3 三层模型启用器 6
1.2 Windows DNA的体系结构 7
1.2.1 组件对象模型 8
1.2.3 商业层 9
1.2.2 表示层 9
1.2.4 数据访问层 11
小结 12
第二章 组件对象模型 13
2.1 为什么要采用COM? 13
2.2 COM编程模型 14
2.2.1 对象 15
2.2.2 接口 16
2.2.3 类 23
2.2.4 组件 24
2.3 分布式COM 30
2.3.1 COM的安全性 30
2.3.2 重新访问注册 32
2.3.3 远程激活和调度 36
2.4 Automation(自动化) 39
2.4.1 IDispatch接口 39
2.4.2 类型库 41
2.4.3 双重接口 42
小结 44
第三章 数据访问基础 45
3.1 为什么采用MDAC? 45
3.2 访问数据 46
3.2.1 ODBC 46
3.2.2 万能存储 47
3.2.3 万能数据访问 48
3.3 OLE DB 49
3.4 ActiveX数据对象 52
3.5 远程数据服务 53
小结 55
第四章 Microsoft Transaction Server 57
4.1 为什么要使用MTS? 57
4.2 MTS的多种面孔 59
4.2.1 作为ORB的MTS 59
4.2.2 作为COM对象代理的MTS 61
4.2.3 作为TP-Monitor的MTS 62
4.3 应用程序服务器编程模型 68
4.3.1 易用性 69
4.3.2 通过资源共享实现伸缩性 69
4.3.3 规则1:调用SetComplete 70
4.3.4 规则2:获取和独占接口指针 73
4.3.5 规则3:使用和释放资源 74
4.3.6 规则4:使用基于角色的安全性 74
4.3.7 规则5:使用事务 78
小结 81
第五章 Active Server Pages 83
5.1 为什么要使用ASP 83
5.1.1 Automation组件 85
5.1.2 ASP编程模型 86
5.2 三层式应用程序体系结构 86
5.3 使用MTS进行集成 86
小结 88
第六章 扩展MTS的功能 89
6.1 UNIX上的COM 89
6.2 XA的交互操作性 90
6.3 COM事务集成器 91
6.3.1 COMTI体系结构 92
6.3.2 创建一个COMTI自动化组件 93
6.4 Microsoft Message Queue Server消息队列服务器 93
6.4.1 消息队列 94
6.4.2 使用MSMQ 95
小结 97
第二部分 构造应用程序 99
第七章 应用程序的定义和模型化 99
7.1.1 定义商业问题 100
7.1 创建一个应用程序定义 100
7.1.2 定义功能规范 101
7.1.3 建立应用程序需求 103
7.2 应用程序的模型化 108
7.2.1 持久数据模型化 108
7.2.2 设计类 112
7.2.3 数据对象模型化 115
7.2.4 商业对象模型化 121
7.2.5 表示层模型化 126
7.3 定义物理结构 127
7.3.1 将类分组为组件 127
7.3.2 将组件分组为程序包和进程 127
7.3.4 建立物理结构文档 128
7.3.3 将程序包和进程指定到机器 128
小结 130
第八章 构造数据对象 133
8.1 从设计到实现 133
8.2 为MTS实现组件 133
8.3 数据对象技术 136
8.3.1 利用ADO编程 137
8.4 实现数据对象 142
8.4.1 在Visual Basic中实现 db_CategoryC 143
8.4.2 在Visual Basic 中实现db_CustomerPasswordC 161
8.4.3 快速考察db_CustomerC 171
8.4.4 用Visual C++实现数据对象 175
小结 190
9.1 从设计到实现 191
第九章 构造商业对象 191
9.2 为MTS实现组件 192
9.2.1 构造功能 192
9.2.2 管理状态 197
9.2.3 处理错误 201
9.2.4 安全地访问您的组件 203
9.3 构造商业对象 204
9.3.1 在Visual Basic中完成实现bus_PaymentC 205
9.3.2 在C++中实现bus_InvoiceC 212
9.3.3 利用SPM实现util_TakeANumer 228
小结 233
10.1 程序包 235
第十章 包装组件 235
10.2 设计程序包 237
10.2.1 激活 237
10.2.2 共享资源 238
10.2.3 故障隔离 238
10.2.4 安全性隔离 238
10.2.5 Island Hopper 程序包设计 239
10.3 构造程序包 240
10.3.1 创建程序包 241
10.3.2 向程序包中添加组件 242
10.3.3 设置激活属性 243
10.3.4 配置安全性 244
10.3.5 设置事务属性 249
10.3.6 输出程序包 250
小结 252
第十一章 构造表示层 255
11.1 从设计转到实现 255
11.1.1 表示层应用程序的类型 255
11.1.2 选择一种表示层体系结构 256
11.2 实现表示层 261
11.2.1 使用商业对象 261
11.2.2 使用RDS访问远程对象 264
11.2.3 使用数据绑定 265
11.2.4 使用ASP 266
11.3 实现“Island Hopper”应用程序的表示层 268
11.3.1 设计决策 268
11.2.5 使用客户端组件 268
11.3.2 实现Classifieds应用程序 269
11.3.3 实现Internet客户 276
小结 285
第十二章 调试和排除故障 287
12.1 组件级测试 287
12.2 本地测试 289
12.2.1 调试MTS组件 290
12.2.2 追踪和确认 294
12.2.3 将错误消息解码 295
12.2.4 检查并排除数据库方面的问题 296
12.2.5 用于排除故障的MTS工具 296
12.2.6 Windows NT事件查看器 300
12.3 测试分布式应用程序 301
小结 302
第十三章 性能验证 303
13.1 为什么要进行性能验证? 303
13.2 性能验证的工作过程 304
13.2.1 定义性能需求 304
13.2.2 评估性能 306
13.2.3 找到并消除瓶颈 308
13.3 常见瓶颈 312
13.3.1 SQL Server瓶颈 312
13.3.2 数据访问瓶颈 312
13.3.3 事务瓶颈 313
小结 314
13.3.4 其他瓶颈 314
第十四章 部署分布式应用程序 317
14.1 选择拓扑结构 317
14.1.1 集成到公司现有的应用程序中 317
14.1.2 满足性能需要 318
14.1.3 常用部署配置 318
14.1.4 容错功能 325
14.2 部署过程 325
14.2.1 安装预先建立好的程序包 326
14.2.2 创建客户安装程序 327
14.2.3 最终确定程序包设置 328
14.2.4 安装客户程序 330
小结 330
15.1 利用COMTI开发组件 333
第三部分 MTS的未来 333
第十五章 扩展应用程序 333
15.1.1 使用Component Builder 334
15.1.2 COMTI支持的事务处理程序 336
15.2 利用MSMQ开发应用程序 339
15.2.1 MSMQ应用程序模型 339
15.2.2 编制MSMQ应用程序 341
15.2.3 配置MSMQ应用程序组件 346
小结 346
第十六章 COM+ 347
16.1 发展中的COM和MTS 347
16.1.1 一种统一的体系结构 347
16.1.2 一种统一的编程模型 348
16.2 针对企业应用程序的新服务 350
16.1.3 一种统一的管理模型 350
16.2.1 对象池 351
16.2.2 对象构造器 352
16.2.3 补偿资源管理器 352
16.2.4 安全性强化 353
16.2.5 队列组件 354
16.2.6 事件 356
16.2.7 内存中的数据库 358
16.2.8 动态负荷平衡 360
小结 361
附录 关于3-2-1程序 363
参考书目 365