1.1 分布式计算的历史 1
第1章 Web服务概述 1
1.1.1 客户机/服务器模型 2
1.1.2 组件技术 3
1.1.3 分析现状 4
1.2 Web服务 4
1.2.1 使用Web服务的好处 5
I.2.2 Web服务的标准 8
1.3.1 提供Web服务 9
1.3 Web服务的体系结构 9
1.3.2 使用Web服务 10
1.4 Web服务的前景 11
1.4.1 可编程的Web 11
1.4.2 .NET My Services 12
1.5 小结 14
第2章 Web服务协议 15
2.1 SOAP协议 15
2.1.1 格式 16
2.1.2 数据类型和SOAP串行化 20
2.1.3 HTTP协议之上的SOAP 23
2.2 WSDL协议 25
2.2.1 格式 26
2.2.2 客户机代理 33
2.3 DISCO协议 34
2.4 UDDI协议 35
2.5 小结 35
3.1 SOAP Toolkit 36
第3章 Web服务和.NET Pramework 36
3.1.1 SOAP Toolkit的概述 37
3.1.2 提供Web服务 37
3.1.3 使用Web服务 38
3.1.4 使用SOAP Toolkit发布COM对象 39
3.1.5 何时使用SOAP Toolkit 45
3.1.6 SOAP Toolkit概要 45
3.2.1 提供Web服务 46
3.2 ASP.NET 46
3.2.2 命名空间 47
3.2.3 使用Web服务 47
3.2.4 .NET Remoting 48
3.2.5 何时使用.NET Remoting 48
3.3 ATL服务器 48
3.4 小结 49
第4章 构建ASP.NET Web服务 51
4.1 ASP.NET Web服务概述 51
4.2 Web服务协议 52
4.2.1 SOAP协议 52
4.2.2 HTTP协议 56
4.2.3 System.Web.Services.Protocols命名空间 56
4.3 Web服务的体系结构 58
4.4 发现文件 60
4.5 服务描述 60
4.5.2 wsdl.exe实用程序 61
4.5.1 查看WSDL文档 61
4.5.3 .NET如何使用WSDL文档 64
4.6 创建信用卡验证Web服务 64
4.7 不使用Visual Studio.NET IDE创建Web服务 66
4.7.1 创建IIS虚拟目录 72
4.7.2 WebService属性 73
4.7.3 WebMethod属性 73
4.8 使用Visual Studio.NET创建Web服务 74
4.9.1 在浏览器中测试Web服务 77
4.9 测试Web服务 77
4.9.2 使用IDE进行调试 78
4.10 检验和修改SOAP响应 79
4.10.1 参数编码 79
4.10.2 SOAP主体格式化 81
4.11 Web服务中的状态管理 83
4.11.1 访问和使用Application对象 83
4.12 部署与配置Web服务 84
4.11.2 访问和使用Session对象 84
4.13 小结 87
第5章 使用ASP.NET Web服务 88
5.1 客户程序如何与Web服务通信 88
5.1.1 使用HTTP协议调用Web服务 88
5.1.2 使用SOAP协议调用Web服务 89
5.2 发现ASP.NET Web服务 90
5.3 查看和使用WSDL文档 93
5.4 创建代理 94
5.4.1 使用wsdl.exe实用程序 94
5.4.2 使用Visual Studio.NET自动生成代理类 97
5.4.3 同步调用和异步调用 98
5.5 创建Web服务客户程序 101
5.5.1 用C#构建客户程序 102
5.5.2 在代码中使用Web服务 103
5.5.3 调试客户应用程序 104
5.5.4 注意事项 108
5.6 小结 109
第6章 .NET Remoting体系结构 110
6.1 什么是.NET Remoting 110
6.1.1 无处不在的Web服务 110
6.1.2 CLR对象Remoting 111
6.2 .NET Remoting的基本原理 111
6.2.1 远程对象 112
6.2.2 服务器 113
6.2.3 客户机 117
6.2.4 运行服务程序和客户程序 118
6.3 进一步了解.NET Remoting 119
6.4 System.Runtime.Remoting命名空间 120
6.5 远程对象 121
6.5.1 知名的对象 122
6.5.2 客户激活的对象 126
6.5.3 基于租约的生存期 129
6.6.2 错误消息 137
6.6.1 Remoting Services.Connect方法 137
6.6 激活 137
6.5.4 远程对象类型概要 137
6.6.3 代理 138
6.6.4 消息 139
6.7 编组 139
6.7.1 objRef 140
6.7.2 传递对象 140
6.7.3 跟踪服务 146
6.8 异步远程 148
6.8.1 异步调用本地方法 148
6.8.2 异步调用远程方法 150
6.8.3 OneWay方法 152
6.9 调用上下文 153
6.10 小结 155
7.1 应用程序方案 156
7.1.1 XML Web服务 156
第7章 无处不在的Web服务 156
7.1.2 带有二进制格式化程序的Web服务 157
7.1.3 对等式的Web服务 157
7.2 驻留服务器 158
7.2.1 在ASP.NET中驻留Web服务 159
7.2.2 通道 167
7.2.3 IChannel接口 168
7.3 格式化程序 170
7.2.5 IChannelSender接口 170
7.2.4 IChannelReceiver接口 170
7.2.6 TCP通道 171
7.2.7 HTTP通道 172
7.3.1 串行化 173
7.3.2 二进制格式化程序 173
7.3.3 SOAP格式化程序 173
7.3.4 比较格式化程序的结果 174
7.4 通道和格式化程序 178
7.5 小结 181
8.1 简述比萨投递示例 182
8.1.1 用例图 182
第8章 使用.NET Remoting建立Web服务 182
8.1.2 部署 183
8.1.3 程序集 184
8.1.4 类 184
8.1.5 订购比萨 185
8.2 数据服务 186
8.2.1 数据库图 186
8.2.2 存储过程 187
8.2.3 数据访问组件 189
8.3 PizzaOrder程序集 192
8.3.1 PizzaOrderDetail类 192
8.3.2 PizzaOrder类 194
8.4.1 MarshalByRefObject类 195
8.4.2 错误处理 195
8.4 比萨订购Web服务 195
8.4.3 远程方法 196
8.4.4 测试服务程序 198
8.5 PizzaDeliveryService Web服务 199
8.5.1 投递比萨——次序 200
8.5.2 PizzaDeliveryService--远程对象类 200
8.5.3 用于两个远程对象的两个通道 201
8.5.4 支持事件 203
8.6 Windows服务 209
8.7 小结 210
第9章 构建一个.NET Remoting客户程序 211
9.1 Web服务 211
9.2 ASP.NET客户程序 212
9.2.1 Web.Config配置文件 213
9.2.2 远程服务和WSDL 213
9.2.3 Soapsuds实用程序 214
9.2.4 使用soapsuds实用程序创建代理 216
9.2.5 填充DataGrid对象 218
9.3 Windows Forms客户程序 222
9.3.1 用户界面 222
9.3.2 客户程序通道配置 223
9.3.3 实现Windows事件处理程序 224
9.3.4 运行客户应用程序 227
9.3.5 添加事件处理 228
9.4 小结 229
第10章 通用描述、发现和集成(UDDI) 231
10.1 什么是UDDI 231
10.1.1 Web服务的发现机制 231
10.1.2 什么是DISCO文件 232
10.1.3 UDDI构件(Building Blocks) 232
10.2 在Web上访问UDDI 233
10.3 以编程的方式访问UDDI 233
10.3.1 UDDI数据结构 233
10.3.2 Microsoft UDDI SDK 238
10.3.3 构建一个查询 239
10.3.4 发布到UDDI 242
10.4 小结 249
第11章 .NET安全与密码技术 251
11.1 Web服务安全 251
11.1.1 .NET安全概况 252
11.1.2 .NET安全框架API 252
11.1.3 安全工具 255
11.2.2 TCP层安全 257
11.2.1 IP安全 257
11.2 Web服务安全层 257
11.2.3 应用层安全 258
11.3 密码技术基础 258
11.3.1 Hash算法 259
11.3.2 信用卡验证示例 282
11.3.3 增强信用卡验证示例的功能 300
11.4 小结 309
第12章 作为应用程序插件的Web服务 310
12.1 设计GUI 311
12.2 编写代码 313
12.2.1 开端 314
12.2.2 向数据库添加数据 322
12.2.3 数据访问方法 328
12.3 版本化与发布的关系 331
12.3.1 在WinForm代码中创建类库 332
12.3.2 创建Web服务 332
12.3.3 创建Windows客户程序 335
12.4 小结 342
第13章 案例分析1:ASP.NET 343
13.1 应用程序概述 343
13.1.1 业务过程 343
13.1.2 局限性 344
13.1.3 先决条件 344
13.1.4系统的体系结构 344
13.2.1 数据库设计 345
13.2 实现 345
13.2.2 实现Web服务 351
13.2.3 创建代理类库 360
13.2.4 NET组件的实现 362
13.2.5 Windows服务应用程序 369
13.2.6 实现库存查询服务 369
13.2.7 实现WroxOnline Web应用程序 374
13.4 小结 394
13.3 整合所有内容 394
第14章 案例分析2: P2P.NET Remoting 395
14.1 任务和设计目标 397
14.2 进行开发的规则 397
14.3 标识组件 398
14.3.1 抽象化设计 398
14.3.2 消息设计 399
14.4 第1次迭代——样板通道接收器 399
14.4.1 Ispeak接口 400
14.4.2 MyProxy.cs文件 401
14.4.3 配置文件 403
14.4.4 TraceSink.cs文件 405
14.4.5 运行示例 421
14.5 第2次迭代——串行化和SOAP封箱 422
14.6 第3次迭代——加密模型化 424
14.6.1 取消认证授权 424
14.6.2 签名和加密数据 424
14.7 第4代迭代——在通道接收器中应用密码技术 442
14.8 合并密码技术类 442
14.8.1 将公钥映射到Web服务 443
14.8.2 手动管理密钥存储 445
14.9 将内容合并——安全通道接收器 450
14.9.1 PeerClientSinkProvider类 451
14.9.2 PeerClientSink类 454
14.9.3 PeerChannelSinkProvider类 459
14.9.4 PeerServerChannelSink类 461
14.9.5 加密接收器概览 465
14.10 最后的集成 466
14.11 任务列表 472
14.12 应用程序的应用领域 472
14.12.1 P2P应用程序的特性 472
14.12.2 P2P即时消息传递 473
14.12.3 匿名支付系统 473
14.12.4 P2P发票和订购系统 473
14.13 小结 474
14.12.5 供应链的管理 474
附录A .NET Remoting对象模型 475
A.1 .NET Remoting构件 480
A.2 远程驻留选项 481
A.3 远程传输通道 481
A.4 远程消息串行化和并行化格式化程序 482
A.5 带有租约远程生存期管理 483
A.6 远程激活策略 485
A.7 .NET Remoting框架类 486