简介
本书介绍COM+技术的主要特性和编程技巧。主要内容包括Windows DNA和COM+的基本概念、高级COM编程技术、组件的管理、事务以及异步组件编程等。本书揭示了COM+的内幕,实例丰富,分析透彻。拥有本书,可以最大限度地发挥COM+的潜力,获得更好的编程技能。本书适合于所有Windows程序开发人员,尤其对具有编程经验的人更加具有参考价值。随书附带的光盘包含了书中所有实例代码,以及微软最新的极有价值的信息。
目录
第一部分 windows dna和com+
第1章 com+:windows dna的粘合剂 1
1.1 windows dna 1
1.2 谈谈因特网:html和xml 2
1.3 windows dna服务 3
1.3.1 windows dna服务:com和com+ 3
1.3.2 windows dna服务:dna内核 6
1.3.3 windows dna服务:工具 7
1.4 dna:功能概述 10
1.4.1 浏览器 10
1.4.2 iis 10
1.4.3 asp 11
1.4.4 mts 12
1.4.5 msmq和sql server 12
1.4.6 visual studio 6.0 12
1.4.7 visual basic 14
1.4.8 visual c++ 14
1.5 小结 15
第2章 多层组件结构 16
2.1 ad-hoc设计 16
.2.2 基础应用程序边界:外观、逻辑、数据
服务 17
2.3 三层设计 18
2.4 保持层与层之间的均衡 20
2.5 多层设计 20
2.6 本地或分布 22
2.7 几种不错的设计技巧 22
2.7.1 将应用抽象为各层 23
2.7.2 确定组件 23
2.7.3 创建接口 24
2.7.4 实现组件 24
2.7.5 设计约束 24
2.7.6 设计目标 26
2.8 设计工具 28
2.9 小结 29
第二部分 高级com编程技巧
第3章 com+结构与管理 31
3.1 com的发展 32
3.2 mts的缺点 33
3.3 com+结构 33
3.3.1 创建com+对象 34
3.3.2 用参数表示的对象结构 34
3.3.3 标记 35
3.3.4 中立线程单元 35
3.3.5 对象池 35
3.3.6 对象池管理 36
3.3.7 动态负荷均衡 36
3.4 com+配置服务 37
3.5 com+的资源管理 37
3.6 开发com+应用程序 38
3.7 队列组件 38
3.7.1 放入队列的事务 39
3.7.2 管理队列组件 39
3.8 松散耦合事件 39
3.9 com+的数据访问 40
3.9.1 读取最优化的数据访问 40
3.9.2 事务中的共享属性管理器 41
3.10 com+的安全性 41
3.11 基本的com特性 41
3.11.1 结构存储 41
3.11.2 取消未完成的com调用 42
3.12 小结 42
第4章 持久存储 43
4.1 ipersist接口 43
4.1.1 ipersiststorage 44
4.1.2 ipersistfile 45
4.1.3 ipersiststreaminit 45
4.2 istream接口 46
4.2.1 istream::write() 47
4.2.2 istream::read() 48
4.2.3 istream::seek() 49
4.3 创建实现ipersiststreaminit的atl对象 50
4.4 使用一个持久对象 54
4.5 简化持久对象的创建 56
4.6 简化持久对象的使用 58
4.7 小结 61
第5章 标记 62
5.1 com+对象和标记 62
5.2 探究标记类型 66
5.2.1 文件标记 66
5.2.2 运行对象表 69
5.2.3 项目标记 70
5.2.4 组合标记 70
5.2.5 类标记 71
5.2.6 指针标记 72
5.3 小结 72
第6章 可连接的对象 73
6.1 连接点 73
6.2 连接点容器 75
6.3 连接点举例 75
6.4 事件和vb 85
6.4.1 重写事件源 86
6.4.2 atl代理程序生成器 88
6.4.3 编写vb客户程序 90
6.5 各种工具实现事件时有何不同 91
6.5.1 事件和vb 91
6.5.2 事件和c++builder 93
6.6 小结 96
第7章 com+线程 97
7.1 pc线程的发展 97
7.2 com+线程类型 98
7.2.1 工作者线程 98
7.2.2 消息队列线程 99
7.2.3 窗口线程 100
7.2.4 单元线程 103
7.2.5 线程池 104
7.3 com+线程模型 105
7.3.1 单线程服务程序 105
7.3.2 单元线程服务程序 106
7.3.3 中立线程服务程序 108
7.3.4 自由线程服务程序 108
7.4 线程同步 111
7.4.1 线程局部存储 111
7.4.2 消除并发问题 111
7.5 小结 117
第8章 com和注册表 119
8.1 注册表api 119
8.2 regedit和regedt32 125
8.3 com的注册表结构 127
8.3.1 文件扩展名 127
8.3.2 progid 128
8.3.3 appid 130
8.3.4 clsid 133
8.3.5 接口 135
8.3.6 typelibs 136
8.4 hkey_local_machine\software\
microsoft\ole 137
8.4.1 允许和禁止dcom 138
8.4.2 默认权限 138
8.4.3 传统的安全性 138
8.5 注册com+服务程序 139
8.5.1 regsvr32 139
8.5.2 自注册进程外服务程序 140
8.5.3 框架 141
8.6 小结 141
第9章 com+的最优化、继承及集合 142
9.1 dcom的速度 142
9.1.1 对象定位 143
9.1.2 网络循环 143
9.1.3 混合线程模型 144
9.2 远程激活 148
9.3 远程引用计数 149
9.4 代理进程 150
9.5 iclassfactory 153
9.6 继承 155
9.7 小结 160
第10章 使用nt服务 161
10.1 剖析服务 163
10.1.1 main()和winmain 163
10.1.2 servicemain() 164
10.1.3 servicectrlhandle() 167
10.2 atl和服务 168
10.3 为使用服务而提供的工具 179
10.3.1 administrative tools中的services
applet 179
10.3.2 diagnostic实用工具 180
10.3.3 service controller 181
10.3.4 event viewer 181
10.4 openscmanager() 181
10.4.1 服务的句柄 182
10.4.2 操作服务 182
10.5 经由注册表安装服务 183
10.6 使用事件日志 184
10.6.1 消息编译器 184
10.6.2 registereventsource(),deregister
eventsource()和reportevent() 186
10.6.3 事件日志阅读器 187
10.7 调试你的服务 188
10.7.1 系统账号 188
10.7.2 任务管理器:调试 188
10.7.3 使用at命令启动调试器 188
10.8 小结 189
第11章 调度 190
11.1 理解调度 190
11.2 类型库调度 190
11.3 标准调度 191
11.3.1 定义dll入口点 192
11.3.2 类定义 193
11.3.3 定义iid、typelib guid和clsid 197
11.3.4 代理程序和存根程序的定义 198
11.3.5 注册表文件 203
11.3.6 转换midl的输出文件 203
11.4 自定义调度 205
11.4.1 声明对象的类 206
11.4.2 定义对象的类 207
11.4.3 定义代理程序的类 211
11.4.4 客户程序 214
11.5 小结 217
第12章 com的安全性 218
12.1 com与dcom的安全性对比 218
12.2 windows安全性 219
12.2.1 完善域的安全性 219
12.2.2 安全性描述符 219
12.2.3 验证 230
12.3 模拟 232
12.3.1 伪装 232
12.3.2 coimpersonateclient()和
coreverttoself() 233
12.3.3 伪装 235
12.4 说明性安全性 235
12.5 程序的安全性 235
12.5.1 安全外壳 235
12.5.2 iclientsecurity 236
12.5.3 访问和运行的安全性 237
12.6 小结 238
第13章 配置和错误处理 239
13.1 使用dcomcnfg配置com+对象 239
13.1.1 传统com服务程序 240
13.1.2 创建自动服务程序 242
13.1.3 默认属性 244
13.1.4 默认安全性 245
13.1.5 配置com+服务程序 249
13.1.6 服务程序的位置 250
13.1.7 服务程序的安全性 250
13.1.8 服务程序的身份 252
13.2 使用ole2view程序 253
13.2.1 ole2view的缺点 254
13.2.2 使用ole2view配置com+对象 254
13.2.3 指定远程进程内服务程序的代理 254
13.3 错误处理 257
13.3.1 错误处理策略 258
13.3.2 通过isupporterrorinfo传递信息 259
13.4 小结 264
第14章 com的互联网服务 265
14.1 一个新的com+传输协议 265
14.2 隧道tcp协议概述 266
14.2.1 配置隧道tcp协议 267
14.2.2 windows 95和windows 98中的客户
程序配置 267
14.2.3 windows nt 4.0 sp4和windows 2000
中的客户程序配置 268
14.2.4 客户机代理服务器的配置 268
14.2.5 windows nt server 4.0上的服务器
配置 269
14.2.6 在windows 2000 server上配置rpc
代理 270
14.3 使能cis 271
14.4 代理服务器的配置 271
14.4.1 配置微软代理服务器 271
14.4.2 防火墙的配置 272
14.5 配置技巧和已知的问题 272
14.5.1 cis客户端上不正确的代理服务器
设置 272
14.5.2 关于multihomed cis服务器的
问题 272
14.5.3 mts对回调的使用 272
14.5.4 有关http高速缓存设备的问题 272
14.5.5 影响cis的注册表键 273
14.6 objref标记 273
14.7 必要的编程改变 274
14.8 小结 275
第15章 mts 276
15.1 商业事务 276
15.1.1 协调事务过程 277
15.1.2 事务过程与com 277
15.2 什么是mts 278
15.3 使用mts的好处 278
15.3.1 组件的代理进程 278
15.3.2 基于角色的安全性 278
15.3.3 准时激活 279
15.3.4 mts资源管理器 279
15.3.5 事务协调 279
15.3.6 mts与微软互联网信息服务器的
集成 279
15.3.7 mts与微软消息队列服务的集成 279
15.4 mts的结构 279
15.4.1 程序包 280
15.4.2 活动 281
15.4.3 角色 281
15.5 配置mts 281
15.6 mts对象 283
15.6.1 为mts开发对象 283
15.6.2 向一个程序包中添加对象 286
15.6.3 程序包的属性 287
15.6.4 对象属性 288
15.6.5 配置基于mts的对象 289
15.6.6 导出程序包 289
15.6.7 导入程序包 289
15.7 高级mts技巧 290
15.7.1 为程序包和组件提供安全性 290
15.7.2 为程序包创建角色 291
15.7.3 给组件或接口分配角色 291
15.7.4 通过编程影响安全性 291
15.7.5 直接调用者与原始调用者的对比 292
15.7.6 负载均衡 293
15.8 创建基于mts的应用程序 293
15.8.1 使用mts进行设计 295
15.8.2 使用mts扩展应用程序 296
15.8.3 远程管理 296
15.9 小结 296
第三部分 组件管理与事务
第16章 作为组件管理器的com+ 299
16.1 com+编程及其他基于组件的服务 300
16.2 com+可扩展性特性 300
16.3 com+和标准com组件 301
16.3.1 标准com组件 301
16.3.2 将标准com组件用于com+ 304
16.3.3 com+对标准com组件的好处 306
16.4 通向com+组件之路 307
16.4.1 软件复用 307
16.4.2 性能、可扩展性和稳定性 313
16.5 com+和状态 314
16.5.1 状态的类型 314
16.5.2 状态存储 315
16.6 com+组件必备的条件 316
16.7 编写com+组件 317
16.7.1 环境对象 317
16.7.2 对象控制 318
16.7.3 使用atl编写com+组件 319
16.7.4 共享属性管理器 321
16.7.5 在com+内引用对象 324
16.7.6 在com+内创建对象 324
16.8 小结 325
第17章 作为事务协调器的com+ 326
17.1 对事务的需求 326
17.1.1 定义的事务 327
17.1.2 acid 327
17.2 ms dtc 328
17.3 一个简单的事务例子 329
17.4 事务协议 332
17.4.1 ole事务 332
17.4.2 xa事务 332
17.4.3 cics和ims事务 332
17.5 com+事务编程模型 332
17.5.1 创建事务 333
17.5.2 完成事务处理 337
17.6 旅行社实例 339
17.7 监视事务 344
17.8 设计中的考虑因素 344
17.8.1 提出细粒度的组件 345
17.8.2 定位靠近其数据源的组件 345
17.8.3 在同一应用程序中将使用相同资源的
组件放在一起 345
17.9 小结 345
第18章 com+的安全性 346
18.1 com+的安全概念 346
18.1.1 角色 347
18.1.2 安全性的职责 348
18.2 安全支持供应商接口 349
18.3 com+声明安全性 349
18.3.1 创建角色 350
18.3.2 将角色加入到组件和接口中 351
18.3.3 启用安全性 351
18.3.4 验证 352
18.4 过程com+安全性 352
18.4.1 识别用户 352
18.4.2 给用户授权 356
18.5 小结 359
第19章 com事务集成器 360
19.1 comti的要求 360
19.2 大型机和windows dna 361
19.2.1 sna server 362
19.2.2 在comti之前 363
19.2.3 comti 363
19.2.4 comti警告 364
19.3 cics和cics-link 365
19.4 comti组件创建器 367
19.4.1 组件创建器cobol向导 368
19.4.2 cics tp 369
19.4.3 cics-link 375
19.5 comti的管理控制台 375
19.6 comti运行时间 377
19.7 小结 379
第20章 负载均衡组件 380
20.1 负载均衡组件的定义 380
20.2 负载均衡组件的必要性 381
20.2.1 可扩展性 381
20.2.2 有效性 382
20.2.3 灵活性 382
20.3 并行性和粒度大小 382
20.4 动态负载均衡算法 384
20.5 负载均衡组件设计 385
20.6 负载均衡组件客户机设计 385
20.7 坏消息 385
20.8 不用中央并行处理器的负载均衡
组件 386
20.8.1 用scm工作 386
20.8.2 cocreateinstance 带来的问题 388
20.8.3 创建一个包套 390
20.8.4 算法 391
20.8.5 时间方法 392
20.8.6 时间方法的算法 393
20.8.7 负载均衡的实现 395
20.8.8 其他均衡和分类技术 396
20.8.9 运行时编译执行技术活化 396
20.9 小结 397
第21章 优化windows dna应用程序 398
21.1 估计你的需要 398
21.2 最优化技巧 399
21.2.1 使用用户或系统dsn代替文件
dsn 399
21.2.2 优化算法,特别是反复循环 399
21.2.3 避免注册表存取访问 400
21.2.4 在任何可能的时候都用运行时编译
执行即时激活 401
21.2.5 修复资源漏失 402
21.2.6 面向对象的负载均衡组件实用性
体系结构 402
21.2.7 选择工作语言 403
21.2.8 避免中间层状态 403
21.2.9 避免数据访问中间层 403
21.3 使用微软windows dna工具包 404
21.4 观察测试的结果 408
21.5 小结 408
第四部分 异步组件程序设计
第22章 松散耦合程序设计 409
22.1 什么是消息传递 409
22.2 消息传递的优点 410
22.2.1 用消息传递加强大型应用程序的
开发 410
22.2.2 消息传递更好地利用通信资源 410
22.2.3 消息传递在不同系统中取得一致 411
22.3 消息传递的弱点 411
22.3.1 延长处理时间 412
22.3.2 异步执行 412
22.4 同步与异步程序设计 412
22.5 可扩展性 414
22.6 面向消息的中间设备 414
22.6.1 mom程序接口 415
22.6.2 mom系统软件 415
22.6.3 管理工具 415
22.7 微软消息队列服务器 415
22.7.1 msmq连接器 416
22.7.2 msmq和别的api 416
22.7.3 msmq和email 416
22.8 小结 416
第23章 msmq管理机构和体系结构 417
23.1 msmq对象和属性 417
23.2 消息 419
23.3 队列 420
23.3.1 队列类型 420
23.3.2 消息队列 421
23.3.3 管理队列 421
23.3.4 应答队列 421
23.3.5 日志队列 421
23.3.6 死信队列 421
23.3.7 报告队列 422
23.4 消息队列信息服务 422
23.5 本地队列存储 422
23.6 队列属性 422
23.7 优先级 423
23.8 事务队列 423
23.9 标识队列 423
23.9.1 路径名 423
23.9.2 格式名称 423
23.9.3 示例标识符 425
23.9.4 标志 425
23.9.5 类型 425
23.9.6 私有队列 425
23.10 机器 425
23.11 msmq企业 426
23.11.1 站点连接 426
23.11.2 连接的网络 426
23.11.3 msmq控制器 426
23.12 msmq客户机 426
23.13 msmq管理机构 427
23.14 小结 427
第24章 msmq程序设计 428
24.1 msmq库api 428
24.2 用msmq库api创建一个应用程序 429
24.2.1 格式名称 429
24.2.2 路径名 430
24.2.3 查找格式名称 430
24.2.4 用属性工作 430
24.2.5 创建队列 431
24.2.6 解散队列 431
24.2.7 打开队列 432
24.2.8 发送一条消息 432
24.2.9 接收一条消息 434
24.2.10 关闭队列 435
24.3 msmq activex控制api 441
24.4 用com+接口创建msmq应用程序 442
24.4.1 定义接口和guid 442
24.4.2 初始化com 443
24.4.3 创建队列 443
24.4.4 变体型 444
24.4.5 bstr 444
24.4.6 解散队列 445
24.4.7 打开队列 445
24.4.8 发送消息 445
24.4.9 接收消息 446
24.4.10 关闭队列 448
24.5 用灵巧指针创建一个msmq应用程序 454
24.5.1 定义接口和guid 454
24.5.2 .tli文件 457
24.5.3 atl从属物 457
24.5.4 创建队列 458
24.5.5 解散队列 458
24.5.6 打开队列 458
24.5.7 发送消息 459
24.5.8 接收消息 459
24.5.9 关闭队列 460
24.6 用vbscript创建一个msmq应用程序 463
24.7 小结 466
第25章 高级msmq程序设计 467
25.1 游标 468
25.1.1 msmq api 游标 469
25.1.2 msmq activex组件游标 471
25.2 查找队列 473
25.3 消息确认、应答和记录 475
25.3.1 行政管理队列 475
25.3.2 应答队列 480
25.3.3 消息id 480
25.3.4 记录 481
25.4 事务处理 481
25.4.1 消息事务处理 482
25.4.2 itransaction 482
25.4.3 创建事务队列 483
25.4.4 事务处理的类型 483
25.4.5 外部事务处理 487
25.5 msmq email api 494
25.6 异步操作 495
25.6.1 自动事件 496
25.6.2 系统事件对象 496
25.6.3 回调函数 500
25.6.4 完成端口 505
25.7 队列安全性 510
25.8 小结 511
第26章 松散耦合事件 512
26.1 一些基本术语 512
26.1.1 设计模式 513
26.1.2 发布人 513
26.1.3 订阅人 513
26.1.4 com+事件服务 513
26.2 发布-订阅选项的比较 513
26.2.1 轮询 513
26.2.2 紧密耦合事件 514
26.2.3 过紧密耦合 514
26.2.4 要求并行的组件生存期 515
26.2.5 无法过滤噪声 515
26.2.6 松散耦合事件 515
26.3 com+事件服务 516
26.4 事件服务的演示 518
26.5 高级com+事件服务问题 523
26.5.1 订单和ieventsubscription接口 523
26.5.2 使用短期订阅单 524
26.5.3 注册短期订阅单 524
26.5.4 取消注册短期订阅单 526
26.6 事件过滤 527
26.6.1 生成过滤器串 527
26.6.2 利用程序生成过滤器串 528
26.7 小结 529
第27章 队列组件 530
27.1 队列组件概述 530
27.2 分布式计算及队列组件 531
27.2.1 确认所接收的数据 532
27.2.2 服务器请求更多的数据 532
27.2.3 确认所执行的操作 532
27.2.4 需要查找数据 533
27.2.5 确定是否排队 533
27.3 队列组件结构 534
27.3.1 生成并定义一个队列组件 534
27.3.2 客户方的队列组件 535
27.3.3 服务器方的队列组件 535
27.4 编写应用队列组件的一个演示程序 536
27.4.1 使用visual c++和atl编写一个队列
组件 536
27.4.2 安装队列组件 539
27.4.3 定义com+应用程序 539
27.4.4 标记需排队的com+应用程序 541
27.4.5 向com+应用程序中添加组件 542
27.4.6 标记com接口为排队的 542
27.4.7 用visual c++编写客户端应用程序 543
27.5 测试组件和客户程序 548
27.6 导出com+应用程序 549
27.7 小结 550
光盘使用说明 551
第1章 com+:windows dna的粘合剂 1
1.1 windows dna 1
1.2 谈谈因特网:html和xml 2
1.3 windows dna服务 3
1.3.1 windows dna服务:com和com+ 3
1.3.2 windows dna服务:dna内核 6
1.3.3 windows dna服务:工具 7
1.4 dna:功能概述 10
1.4.1 浏览器 10
1.4.2 iis 10
1.4.3 asp 11
1.4.4 mts 12
1.4.5 msmq和sql server 12
1.4.6 visual studio 6.0 12
1.4.7 visual basic 14
1.4.8 visual c++ 14
1.5 小结 15
第2章 多层组件结构 16
2.1 ad-hoc设计 16
.2.2 基础应用程序边界:外观、逻辑、数据
服务 17
2.3 三层设计 18
2.4 保持层与层之间的均衡 20
2.5 多层设计 20
2.6 本地或分布 22
2.7 几种不错的设计技巧 22
2.7.1 将应用抽象为各层 23
2.7.2 确定组件 23
2.7.3 创建接口 24
2.7.4 实现组件 24
2.7.5 设计约束 24
2.7.6 设计目标 26
2.8 设计工具 28
2.9 小结 29
第二部分 高级com编程技巧
第3章 com+结构与管理 31
3.1 com的发展 32
3.2 mts的缺点 33
3.3 com+结构 33
3.3.1 创建com+对象 34
3.3.2 用参数表示的对象结构 34
3.3.3 标记 35
3.3.4 中立线程单元 35
3.3.5 对象池 35
3.3.6 对象池管理 36
3.3.7 动态负荷均衡 36
3.4 com+配置服务 37
3.5 com+的资源管理 37
3.6 开发com+应用程序 38
3.7 队列组件 38
3.7.1 放入队列的事务 39
3.7.2 管理队列组件 39
3.8 松散耦合事件 39
3.9 com+的数据访问 40
3.9.1 读取最优化的数据访问 40
3.9.2 事务中的共享属性管理器 41
3.10 com+的安全性 41
3.11 基本的com特性 41
3.11.1 结构存储 41
3.11.2 取消未完成的com调用 42
3.12 小结 42
第4章 持久存储 43
4.1 ipersist接口 43
4.1.1 ipersiststorage 44
4.1.2 ipersistfile 45
4.1.3 ipersiststreaminit 45
4.2 istream接口 46
4.2.1 istream::write() 47
4.2.2 istream::read() 48
4.2.3 istream::seek() 49
4.3 创建实现ipersiststreaminit的atl对象 50
4.4 使用一个持久对象 54
4.5 简化持久对象的创建 56
4.6 简化持久对象的使用 58
4.7 小结 61
第5章 标记 62
5.1 com+对象和标记 62
5.2 探究标记类型 66
5.2.1 文件标记 66
5.2.2 运行对象表 69
5.2.3 项目标记 70
5.2.4 组合标记 70
5.2.5 类标记 71
5.2.6 指针标记 72
5.3 小结 72
第6章 可连接的对象 73
6.1 连接点 73
6.2 连接点容器 75
6.3 连接点举例 75
6.4 事件和vb 85
6.4.1 重写事件源 86
6.4.2 atl代理程序生成器 88
6.4.3 编写vb客户程序 90
6.5 各种工具实现事件时有何不同 91
6.5.1 事件和vb 91
6.5.2 事件和c++builder 93
6.6 小结 96
第7章 com+线程 97
7.1 pc线程的发展 97
7.2 com+线程类型 98
7.2.1 工作者线程 98
7.2.2 消息队列线程 99
7.2.3 窗口线程 100
7.2.4 单元线程 103
7.2.5 线程池 104
7.3 com+线程模型 105
7.3.1 单线程服务程序 105
7.3.2 单元线程服务程序 106
7.3.3 中立线程服务程序 108
7.3.4 自由线程服务程序 108
7.4 线程同步 111
7.4.1 线程局部存储 111
7.4.2 消除并发问题 111
7.5 小结 117
第8章 com和注册表 119
8.1 注册表api 119
8.2 regedit和regedt32 125
8.3 com的注册表结构 127
8.3.1 文件扩展名 127
8.3.2 progid 128
8.3.3 appid 130
8.3.4 clsid 133
8.3.5 接口 135
8.3.6 typelibs 136
8.4 hkey_local_machine\software\
microsoft\ole 137
8.4.1 允许和禁止dcom 138
8.4.2 默认权限 138
8.4.3 传统的安全性 138
8.5 注册com+服务程序 139
8.5.1 regsvr32 139
8.5.2 自注册进程外服务程序 140
8.5.3 框架 141
8.6 小结 141
第9章 com+的最优化、继承及集合 142
9.1 dcom的速度 142
9.1.1 对象定位 143
9.1.2 网络循环 143
9.1.3 混合线程模型 144
9.2 远程激活 148
9.3 远程引用计数 149
9.4 代理进程 150
9.5 iclassfactory 153
9.6 继承 155
9.7 小结 160
第10章 使用nt服务 161
10.1 剖析服务 163
10.1.1 main()和winmain 163
10.1.2 servicemain() 164
10.1.3 servicectrlhandle() 167
10.2 atl和服务 168
10.3 为使用服务而提供的工具 179
10.3.1 administrative tools中的services
applet 179
10.3.2 diagnostic实用工具 180
10.3.3 service controller 181
10.3.4 event viewer 181
10.4 openscmanager() 181
10.4.1 服务的句柄 182
10.4.2 操作服务 182
10.5 经由注册表安装服务 183
10.6 使用事件日志 184
10.6.1 消息编译器 184
10.6.2 registereventsource(),deregister
eventsource()和reportevent() 186
10.6.3 事件日志阅读器 187
10.7 调试你的服务 188
10.7.1 系统账号 188
10.7.2 任务管理器:调试 188
10.7.3 使用at命令启动调试器 188
10.8 小结 189
第11章 调度 190
11.1 理解调度 190
11.2 类型库调度 190
11.3 标准调度 191
11.3.1 定义dll入口点 192
11.3.2 类定义 193
11.3.3 定义iid、typelib guid和clsid 197
11.3.4 代理程序和存根程序的定义 198
11.3.5 注册表文件 203
11.3.6 转换midl的输出文件 203
11.4 自定义调度 205
11.4.1 声明对象的类 206
11.4.2 定义对象的类 207
11.4.3 定义代理程序的类 211
11.4.4 客户程序 214
11.5 小结 217
第12章 com的安全性 218
12.1 com与dcom的安全性对比 218
12.2 windows安全性 219
12.2.1 完善域的安全性 219
12.2.2 安全性描述符 219
12.2.3 验证 230
12.3 模拟 232
12.3.1 伪装 232
12.3.2 coimpersonateclient()和
coreverttoself() 233
12.3.3 伪装 235
12.4 说明性安全性 235
12.5 程序的安全性 235
12.5.1 安全外壳 235
12.5.2 iclientsecurity 236
12.5.3 访问和运行的安全性 237
12.6 小结 238
第13章 配置和错误处理 239
13.1 使用dcomcnfg配置com+对象 239
13.1.1 传统com服务程序 240
13.1.2 创建自动服务程序 242
13.1.3 默认属性 244
13.1.4 默认安全性 245
13.1.5 配置com+服务程序 249
13.1.6 服务程序的位置 250
13.1.7 服务程序的安全性 250
13.1.8 服务程序的身份 252
13.2 使用ole2view程序 253
13.2.1 ole2view的缺点 254
13.2.2 使用ole2view配置com+对象 254
13.2.3 指定远程进程内服务程序的代理 254
13.3 错误处理 257
13.3.1 错误处理策略 258
13.3.2 通过isupporterrorinfo传递信息 259
13.4 小结 264
第14章 com的互联网服务 265
14.1 一个新的com+传输协议 265
14.2 隧道tcp协议概述 266
14.2.1 配置隧道tcp协议 267
14.2.2 windows 95和windows 98中的客户
程序配置 267
14.2.3 windows nt 4.0 sp4和windows 2000
中的客户程序配置 268
14.2.4 客户机代理服务器的配置 268
14.2.5 windows nt server 4.0上的服务器
配置 269
14.2.6 在windows 2000 server上配置rpc
代理 270
14.3 使能cis 271
14.4 代理服务器的配置 271
14.4.1 配置微软代理服务器 271
14.4.2 防火墙的配置 272
14.5 配置技巧和已知的问题 272
14.5.1 cis客户端上不正确的代理服务器
设置 272
14.5.2 关于multihomed cis服务器的
问题 272
14.5.3 mts对回调的使用 272
14.5.4 有关http高速缓存设备的问题 272
14.5.5 影响cis的注册表键 273
14.6 objref标记 273
14.7 必要的编程改变 274
14.8 小结 275
第15章 mts 276
15.1 商业事务 276
15.1.1 协调事务过程 277
15.1.2 事务过程与com 277
15.2 什么是mts 278
15.3 使用mts的好处 278
15.3.1 组件的代理进程 278
15.3.2 基于角色的安全性 278
15.3.3 准时激活 279
15.3.4 mts资源管理器 279
15.3.5 事务协调 279
15.3.6 mts与微软互联网信息服务器的
集成 279
15.3.7 mts与微软消息队列服务的集成 279
15.4 mts的结构 279
15.4.1 程序包 280
15.4.2 活动 281
15.4.3 角色 281
15.5 配置mts 281
15.6 mts对象 283
15.6.1 为mts开发对象 283
15.6.2 向一个程序包中添加对象 286
15.6.3 程序包的属性 287
15.6.4 对象属性 288
15.6.5 配置基于mts的对象 289
15.6.6 导出程序包 289
15.6.7 导入程序包 289
15.7 高级mts技巧 290
15.7.1 为程序包和组件提供安全性 290
15.7.2 为程序包创建角色 291
15.7.3 给组件或接口分配角色 291
15.7.4 通过编程影响安全性 291
15.7.5 直接调用者与原始调用者的对比 292
15.7.6 负载均衡 293
15.8 创建基于mts的应用程序 293
15.8.1 使用mts进行设计 295
15.8.2 使用mts扩展应用程序 296
15.8.3 远程管理 296
15.9 小结 296
第三部分 组件管理与事务
第16章 作为组件管理器的com+ 299
16.1 com+编程及其他基于组件的服务 300
16.2 com+可扩展性特性 300
16.3 com+和标准com组件 301
16.3.1 标准com组件 301
16.3.2 将标准com组件用于com+ 304
16.3.3 com+对标准com组件的好处 306
16.4 通向com+组件之路 307
16.4.1 软件复用 307
16.4.2 性能、可扩展性和稳定性 313
16.5 com+和状态 314
16.5.1 状态的类型 314
16.5.2 状态存储 315
16.6 com+组件必备的条件 316
16.7 编写com+组件 317
16.7.1 环境对象 317
16.7.2 对象控制 318
16.7.3 使用atl编写com+组件 319
16.7.4 共享属性管理器 321
16.7.5 在com+内引用对象 324
16.7.6 在com+内创建对象 324
16.8 小结 325
第17章 作为事务协调器的com+ 326
17.1 对事务的需求 326
17.1.1 定义的事务 327
17.1.2 acid 327
17.2 ms dtc 328
17.3 一个简单的事务例子 329
17.4 事务协议 332
17.4.1 ole事务 332
17.4.2 xa事务 332
17.4.3 cics和ims事务 332
17.5 com+事务编程模型 332
17.5.1 创建事务 333
17.5.2 完成事务处理 337
17.6 旅行社实例 339
17.7 监视事务 344
17.8 设计中的考虑因素 344
17.8.1 提出细粒度的组件 345
17.8.2 定位靠近其数据源的组件 345
17.8.3 在同一应用程序中将使用相同资源的
组件放在一起 345
17.9 小结 345
第18章 com+的安全性 346
18.1 com+的安全概念 346
18.1.1 角色 347
18.1.2 安全性的职责 348
18.2 安全支持供应商接口 349
18.3 com+声明安全性 349
18.3.1 创建角色 350
18.3.2 将角色加入到组件和接口中 351
18.3.3 启用安全性 351
18.3.4 验证 352
18.4 过程com+安全性 352
18.4.1 识别用户 352
18.4.2 给用户授权 356
18.5 小结 359
第19章 com事务集成器 360
19.1 comti的要求 360
19.2 大型机和windows dna 361
19.2.1 sna server 362
19.2.2 在comti之前 363
19.2.3 comti 363
19.2.4 comti警告 364
19.3 cics和cics-link 365
19.4 comti组件创建器 367
19.4.1 组件创建器cobol向导 368
19.4.2 cics tp 369
19.4.3 cics-link 375
19.5 comti的管理控制台 375
19.6 comti运行时间 377
19.7 小结 379
第20章 负载均衡组件 380
20.1 负载均衡组件的定义 380
20.2 负载均衡组件的必要性 381
20.2.1 可扩展性 381
20.2.2 有效性 382
20.2.3 灵活性 382
20.3 并行性和粒度大小 382
20.4 动态负载均衡算法 384
20.5 负载均衡组件设计 385
20.6 负载均衡组件客户机设计 385
20.7 坏消息 385
20.8 不用中央并行处理器的负载均衡
组件 386
20.8.1 用scm工作 386
20.8.2 cocreateinstance 带来的问题 388
20.8.3 创建一个包套 390
20.8.4 算法 391
20.8.5 时间方法 392
20.8.6 时间方法的算法 393
20.8.7 负载均衡的实现 395
20.8.8 其他均衡和分类技术 396
20.8.9 运行时编译执行技术活化 396
20.9 小结 397
第21章 优化windows dna应用程序 398
21.1 估计你的需要 398
21.2 最优化技巧 399
21.2.1 使用用户或系统dsn代替文件
dsn 399
21.2.2 优化算法,特别是反复循环 399
21.2.3 避免注册表存取访问 400
21.2.4 在任何可能的时候都用运行时编译
执行即时激活 401
21.2.5 修复资源漏失 402
21.2.6 面向对象的负载均衡组件实用性
体系结构 402
21.2.7 选择工作语言 403
21.2.8 避免中间层状态 403
21.2.9 避免数据访问中间层 403
21.3 使用微软windows dna工具包 404
21.4 观察测试的结果 408
21.5 小结 408
第四部分 异步组件程序设计
第22章 松散耦合程序设计 409
22.1 什么是消息传递 409
22.2 消息传递的优点 410
22.2.1 用消息传递加强大型应用程序的
开发 410
22.2.2 消息传递更好地利用通信资源 410
22.2.3 消息传递在不同系统中取得一致 411
22.3 消息传递的弱点 411
22.3.1 延长处理时间 412
22.3.2 异步执行 412
22.4 同步与异步程序设计 412
22.5 可扩展性 414
22.6 面向消息的中间设备 414
22.6.1 mom程序接口 415
22.6.2 mom系统软件 415
22.6.3 管理工具 415
22.7 微软消息队列服务器 415
22.7.1 msmq连接器 416
22.7.2 msmq和别的api 416
22.7.3 msmq和email 416
22.8 小结 416
第23章 msmq管理机构和体系结构 417
23.1 msmq对象和属性 417
23.2 消息 419
23.3 队列 420
23.3.1 队列类型 420
23.3.2 消息队列 421
23.3.3 管理队列 421
23.3.4 应答队列 421
23.3.5 日志队列 421
23.3.6 死信队列 421
23.3.7 报告队列 422
23.4 消息队列信息服务 422
23.5 本地队列存储 422
23.6 队列属性 422
23.7 优先级 423
23.8 事务队列 423
23.9 标识队列 423
23.9.1 路径名 423
23.9.2 格式名称 423
23.9.3 示例标识符 425
23.9.4 标志 425
23.9.5 类型 425
23.9.6 私有队列 425
23.10 机器 425
23.11 msmq企业 426
23.11.1 站点连接 426
23.11.2 连接的网络 426
23.11.3 msmq控制器 426
23.12 msmq客户机 426
23.13 msmq管理机构 427
23.14 小结 427
第24章 msmq程序设计 428
24.1 msmq库api 428
24.2 用msmq库api创建一个应用程序 429
24.2.1 格式名称 429
24.2.2 路径名 430
24.2.3 查找格式名称 430
24.2.4 用属性工作 430
24.2.5 创建队列 431
24.2.6 解散队列 431
24.2.7 打开队列 432
24.2.8 发送一条消息 432
24.2.9 接收一条消息 434
24.2.10 关闭队列 435
24.3 msmq activex控制api 441
24.4 用com+接口创建msmq应用程序 442
24.4.1 定义接口和guid 442
24.4.2 初始化com 443
24.4.3 创建队列 443
24.4.4 变体型 444
24.4.5 bstr 444
24.4.6 解散队列 445
24.4.7 打开队列 445
24.4.8 发送消息 445
24.4.9 接收消息 446
24.4.10 关闭队列 448
24.5 用灵巧指针创建一个msmq应用程序 454
24.5.1 定义接口和guid 454
24.5.2 .tli文件 457
24.5.3 atl从属物 457
24.5.4 创建队列 458
24.5.5 解散队列 458
24.5.6 打开队列 458
24.5.7 发送消息 459
24.5.8 接收消息 459
24.5.9 关闭队列 460
24.6 用vbscript创建一个msmq应用程序 463
24.7 小结 466
第25章 高级msmq程序设计 467
25.1 游标 468
25.1.1 msmq api 游标 469
25.1.2 msmq activex组件游标 471
25.2 查找队列 473
25.3 消息确认、应答和记录 475
25.3.1 行政管理队列 475
25.3.2 应答队列 480
25.3.3 消息id 480
25.3.4 记录 481
25.4 事务处理 481
25.4.1 消息事务处理 482
25.4.2 itransaction 482
25.4.3 创建事务队列 483
25.4.4 事务处理的类型 483
25.4.5 外部事务处理 487
25.5 msmq email api 494
25.6 异步操作 495
25.6.1 自动事件 496
25.6.2 系统事件对象 496
25.6.3 回调函数 500
25.6.4 完成端口 505
25.7 队列安全性 510
25.8 小结 511
第26章 松散耦合事件 512
26.1 一些基本术语 512
26.1.1 设计模式 513
26.1.2 发布人 513
26.1.3 订阅人 513
26.1.4 com+事件服务 513
26.2 发布-订阅选项的比较 513
26.2.1 轮询 513
26.2.2 紧密耦合事件 514
26.2.3 过紧密耦合 514
26.2.4 要求并行的组件生存期 515
26.2.5 无法过滤噪声 515
26.2.6 松散耦合事件 515
26.3 com+事件服务 516
26.4 事件服务的演示 518
26.5 高级com+事件服务问题 523
26.5.1 订单和ieventsubscription接口 523
26.5.2 使用短期订阅单 524
26.5.3 注册短期订阅单 524
26.5.4 取消注册短期订阅单 526
26.6 事件过滤 527
26.6.1 生成过滤器串 527
26.6.2 利用程序生成过滤器串 528
26.7 小结 529
第27章 队列组件 530
27.1 队列组件概述 530
27.2 分布式计算及队列组件 531
27.2.1 确认所接收的数据 532
27.2.2 服务器请求更多的数据 532
27.2.3 确认所执行的操作 532
27.2.4 需要查找数据 533
27.2.5 确定是否排队 533
27.3 队列组件结构 534
27.3.1 生成并定义一个队列组件 534
27.3.2 客户方的队列组件 535
27.3.3 服务器方的队列组件 535
27.4 编写应用队列组件的一个演示程序 536
27.4.1 使用visual c++和atl编写一个队列
组件 536
27.4.2 安装队列组件 539
27.4.3 定义com+应用程序 539
27.4.4 标记需排队的com+应用程序 541
27.4.5 向com+应用程序中添加组件 542
27.4.6 标记com接口为排队的 542
27.4.7 用visual c++编写客户端应用程序 543
27.5 测试组件和客户程序 548
27.6 导出com+应用程序 549
27.7 小结 550
光盘使用说明 551
COM+ Unleashed
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×
亲爱的云图用户,
光盘内的文件都可以直接点击浏览哦
无需下载,在线查阅资料!