《.NET分布式应用程序 集成XML Web服务与.NET远程处理》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:(美)Matthew MacDonald著;戢中东等译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2005
  • ISBN:7302102910
  • 页数:583 页
图书介绍:本书主要介绍了使用.NET进行分布式编程。它详细讲解了需要掌握的关键.NET技术并介绍了将.NET应用于分布式应用程序体系结构的最佳实践经验。

第Ⅰ部分 关键技术 3

第1章 了解分布式体系结构 3

1.1 什么是分布式应用程序 3

1.2 客户端/服务器体系结构 4

1.2.1 客户端/服务器体系结构存在的问题 6

1.3 分布式体系结构 7

1.3.1 分布式体系结构的优点 8

1.3.2 DCOM和分布式应用程序的历史 9

1.3.3 .NET分布式技术 10

目录 13

前言 13

1.4 小结 14

第2章 .NET组件 15

2.1 什么是组件 15

2.2 组件在分布式系统中的角色 16

2.2.1 服务提供者 16

2.2.2 信息包 17

2.3 示例组件剖析 17

2.4 IComponent接口 22

2.4.1 在设计时使用组件 23

2.4.2 资源与可使用类 24

2.5 连接字符串和配置文件 27

2.5.1 Visual Studio.NET中的配置文件 29

2.6 部署程序集 30

2.6.1 共享程序集 31

2.6.2 搜索私有程序集 32

2.7 程序集的版本 33

2.7.1 共享程序集以及GAC 34

2.7.2 延迟签名 36

2.8 使用配置文件和共享程序集 37

2.8.1 强名称程序集的版本策略 39

2.8.2 共享程序集的代码基础 40

2.8.3 关于程序集绑定的决定性内容 41

2.9 小结 42

第3章 无连接数据:通用语言 43

3.2 ADO.NET对象族 44

3.1 分布式系统中ADO.NET的角色 44

3.2.1 数据对象 45

3.2.2 直接数据源交互 46

3.2.3 直接查询和数据读取对象 49

3.2.4 存储过程 52

3.2.5 不知道提供者的ADO.NET代码 55

3.2.6 事务 57

3.3 DataSet 58

3.3.1 创建DataSet 60

3.3.2 DataSet间接列映射 62

3.3.3 浏览DataSet 64

3.3.4 关系 65

3.3.5 从DataSet更新 69

3.3.6 更新的问题 70

3.3.7 处理错误 72

3.4 XML与平台间的数据交换 73

3.5 小结 75

第4章 .NET远程处理:更持久的DCOM 76

4.1 分布式系统中.NET远程处理的作用 76

4.2 .NET远程处理基本知识 77

4.2.1 可序列化的类 78

4.2.2 可远程调用的类 80

4.2.3 远程组件宿主 82

4.3.1 激活模式 83

4.3 关键的.NET远程处理设计决策 83

4.3.2 对象生存期 84

4.3.3 服务器和客户端激活 84

4.3.4 通信 85

4.4 简单的远程处理服务器 87

4.4.1 远程对象 87

4.4.2 组件宿主程序 87

4.4.3 客户端应用程序 90

4.4.4 具有用户接口的远程组件 92

4.4.5 使用Visual Studio.NET进行测试 93

4.4.6 使用一个不同的格式化器 94

4.4.7 使用多信道 95

4.5 单独调用对象 96

4.6 单独对象 97

4.7 双向通信 98

4.7.1 使用事件 99

4.7.2 使用委托 103

4.8 配置对象生存期 105

4.8.1 修改生存期 108

4.8.2 使用租约发起者 109

4.9 常见的远程处理异常 111

4.10 小结 112

第5章 XML Web服务(RPC便捷之路) 114

5.1 XML Web服务在分布式系统中的作用 114

5.2 .NET远程处理与XML Web服务 115

5.3 XML Web服务管道 116

5.3.1 ⅡS的作用 118

5.3.2 新建虚拟目录 118

5.3.3 XML Web服务文件格式 119

5.4 创建XMLWeb服务 120

5.4.1 数据序列化 125

5.5 测试XMLWeb服务 127

5.5.1 WSDL文档 129

5.6 使用XML Web服务 129

5.6.1 检测代理类 131

5.6.2 使用代理类 133

5.6.3 调试Web服务 135

5.7 ASP.NET平台服务 137

5.7.1 SOAP头与SOAP扩展 138

5.8 发布XMLWeb服务 139

5.9 跨平台XMLWeb服务 140

5.10 小结 141

第6章 线程化客户端(响应界面) 143

6.1 什么是多线程? 143

6.2 分布式系统中线程客户端的角色 144

6.3 .NET线程 146

6.4 异步委托 147

6.4.1 异步远程调用 150

6.4.2 异步Web服务调用 150

6.5 等待句柄 152

6.6 回调 153

6.7 异步I/O 156

6.8 定制线程 157

6.8.1 线程优先级 160

6.8.2 线程管理 161

6.8.3 线程调试 163

6.9 加锁 165

6.9.1 竞争条件 167

6.9.2 死锁 168

6.9.3 使用Monitor类的高级锁 169

6.10 定制线程对象 172

6.10.1 线程和用户界面 175

6.10.2 使用回调和加锁 177

6.10.3 向线程发送指令 181

6.11 小结 183

第7章 线程池与服务(可缩放编程) 184

7.1 分布式系统中线程处理的角色 184

7.2 单独的基础 186

7.2.1 跟踪客户端 188

7.2.2 管理任务与清除任务 190

7.2.3 Ticket系统 192

7.2.4 加锁 193

7.3 一个单独的XML Web服务 196

7.3.1 线程池 197

7.4 Windows服务 198

7.4.1 创建Windows服务 199

7.4.2 安装Windows服务 204

7.4.3 调试Windows服务 207

7.4.4 控制Windows服务 209

7.4.5 为组件宿主使用Windows服务 211

7.5 小结 212

第8章 消息(轻量通信) 213

8.1 分布式系统中消息的角色 213

8.2 发送与忽略通信 214

8.3 Message Queuing介绍 216

8.3.2 从属客户端 217

8.3.3 独立客户端 217

8.3.1 Message Queuing服务器 217

8.4 Message Queuing基本知识 218

8.4.1 消息队列类型 218

8.4.2 消息队列服务 220

8.4.3 配置消息队列 220

8.4.4 消息解析 221

8.5 在.NET中操作队列 222

8.5.1 选择队列 223

8.5.2 搜索队列 224

8.5.3 创建队列 225

8.6 发送消息 225

8.6.1 发送对象消息 227

8.6.2 高级消息配置 228

8.6.3 接收消息 230

8.6.4 浏览消息 232

8.6.5 响应和回执消息 233

8.7 分布式应用程序中的消息队列 235

8.7.1 COM+队列组件 235

8.8 小结 236

第9章 COM+(组件服务) 237

9.1 分布式系统中COM+的角色 237

9.2 COM和互用 238

9.3 COM+注册基础 239

9.3.2 动态注册 241

9.3.1 给程序集一个强名称 241

9.3.3 手工注册 243

9.3.4 COM+与声明模型 244

9.3.5 COM+版本控制 245

9.3.6 使用COM+组件 246

9.4 对象池 247

9.4.1 理想的缓冲池组件 247

9.4.2 缓冲池与状态 248

9.4.3 缓冲池组件例程 249

9.4.4 建立缓冲池 254

9.4.5 激活、停用和条件缓冲池 255

9.4.6 缓冲池和数据提供者 257

9.4.7 对象缓冲与连接缓冲 258

9.5 实时激活 259

9.5.1 JIT与对象池 261

9.5.2 JIT激活与.NET 262

9.6 自动事务处理 263

9.6.1 对象与事务处理 264

9.6.2 滚动自定义事务处理 267

9.6.3 隔离级别 269

9.6.4 Web方法的事务处理 270

9.7 较少使用的COM+服务 271

9.7.1 排队组件 271

9.7.2 基于角色的安全设置 271

9.7.6 SOAP服务(只限于COM+1.5) 272

9.7.5 对象构造字符串 272

9.7.4 松耦合事件 272

9.7.3 同步 272

9.8 小结 273

第Ⅱ部分 体系结构开发 277

第10章 企业应用程序模型 277

10.1 分布式组件的关键考虑事项 277

10.1.1 进程间和计算机间的通信 277

10.1.2 状态问题 278

10.1.3 远程对象是真实的对象吗? 279

10.2 性能与可缩放性 282

10.2.1 内容学习 284

10.3 分层设计 285

10.3.1 业务对象 286

10.3.2 规则 287

10.4 分布式设计模式 288

10.4.1 接口 288

10.4.2 Factory 289

10.4.3 Facade 289

10.4.4 Facade和监听 292

10.4.5 Facade和XML Web服务 293

10.4.6 Facade和事务处理 293

10.5 选择正确的.NET技术 295

10.5.1 内部和外部系统 295

10.5.3 通用的后端 296

10.5.2 混合的内部/外部系统 296

10.5.4 部分离线的系统 297

10.5.5 COM升级 298

10.6 物理结构 299

10.6.1 缩放比例 299

10.6.2 负载平衡 299

10.7 小结 300

第11章 高级远程技术 301

11.1 考虑应用.NET远程处理进行开发 301

11.1.1 ByRef和ByVal参数 301

11.1.4 私有方法 302

11.1.3 静态成员变量 302

11.1.2 异常的传播 302

11.1.5 公共成员变量 303

11.1.6 版本控制 304

11.1.7 基于接口的编程 306

11.1.8 基于接口的远程处理的问题 313

11.2 再论.NET远程处理和XML Web服务 316

11.2.1 Soapsuds和WSDL描述 316

11.2.2 ASP.NET宿主 317

11.3 程序化的注册 319

11.4 动态发布 322

11.4.1 使用XML Web服务记录连接信息 322

11.4.2 关注ObjRef 327

第12章 优化数据层 328

11.5 小结 328

12.1 连接池 329

12.1.1 连接和应用域 331

12.1.2 测试连接池 332

12.2 制定一个数据传递计划 336

12.2.1 批处理更新 336

12.3 缓存 340

12.3.1 输出(响应)缓存 341

12.3.2 输出缓存需要考虑的事项 342

12.3.3 数据缓存 343

12.3.4 确定缓存策略 346

12.4 优化数据库 347

12.4.1 存储过程 348

12.4.2 索引 348

12.4.3 整理 349

12.4.4 分割大的数据表 349

12.4.5 数据层编码 350

12.4.6 规范 350

12.5 小结 351

第13章 实现安全性 352

13.1 身份验证和授权 353

13.2 Windows身份验证 354

13.2.1 ⅡS身份验证设置 355

13.2.2 通过XML Web服务客户端设置身份验证信息 357

13.2.3 通过.NET远程客户端设置身份验证信息 358

13.2.4 能获得的用户信息 360

13.2.5 模拟 361

13.3 自定义基于角色的身份验证 363

13.3.1 Ticket系统 367

13.3.2 自动通过Ticket 370

13.4 加密 371

13.5 SSL 372

13.5.1 SSL和证书 373

13.5.2 SSL通信 374

13.6 .NET加密类 375

13.6.1 选择性的非对称加密 376

13.6.2 选择性的对称加密 381

13.6.3 在.NET远程处理中的选择性加密 385

13.6.4 使用自定义类包装加密 386

13.6.5 对加密类使用.NET序列化 388

13.6.6 代码访问安全 391

13.6.7 安全性和Stack Walk 392

13.6.8 安全要求 393

13.6.9 安全声明、拒绝和只允许 395

13.7 小结 396

第14章 监视、日志和分析 398

14.1 服务器端的日志记录 398

14.1.1 使用Facade与反射进行日志记录 402

14.1.2 Windows事件日志 404

14.1.3 直接邮件通知 411

14.2 客户端日志 412

14.2.1 使用跟踪机制 413

14.2.2 获取未处理的错误 417

14.3 性能计数器分析 418

14.3.1 基本的性能计数器 419

14.3.2 自定义性能计数器 420

14.4 小结 425

第15章 部署策略 426

15.1 传统的部署问题和.NET解决方案 426

15.2 应用程序的启动程序 427

15.2.1 在升级XMLWeb服务时的安全漏洞 435

15.3 应用程序浏览器 436

15.2.2 其他关于应用程序启动程序的增强功能 436

15.3.1 应用程序浏览器XML Web服务 438

15.3.2 应用程序浏览器模块 440

15.3.3 应用程序浏览器 440

15.3.4 代码访问安全性 443

15.3.5 在应用程序浏览器中加强交流 447

15.3.6 更加动态的应用程序浏览器 452

15.4 小结 452

第Ⅲ部分 案例研究 457

第16章 Invoicer.NET流动推销 457

16.1 问题的定义 457

16.1.1 关键点分析 458

16.1.2 评价不同的方法 459

16.2 定义解决方案 459

16.3 数据层 461

16.3.1 存储过程 462

16.3.2 Excel电子表格 465

16.3.3 数据组件 466

16.3.4 CustomersDB类 468

16.3.5 OrdersDB类 470

16.3.6 InvoicerTables类 473

16.3.7 ExcelTranslator类 474

16.4 后端OrderProcessor服务 479

16.5 Web前端 484

16.6 XML Web服务层 486

16.7 移植策略 489

16.7.1 增加安全性 489

16.7.2 增加早期验证 489

16.7.3 使用惟一的文件名 489

16.7.4 Excel难题和专用的Windows客户端 490

16.8 小结 491

第17章 Transact.NET订单履行 492

17.1 问题的定义 492

17.1.1 关键点分析 493

17.2 定义解决方案 494

17.3 数据层 495

17.3.1 存储过程 497

17.3.2 数据组件 502

17.3.3 ProductDB类 503

17.3.4 OrderDB类 504

17.3.5 TransactTables类 511

17.4 订单提交XML Web服务 512

17.5 订单客户端 516

17.6 内部OrderFill客户端 521

17.6.1 队列监控 527

17.7 未来的方向 529

17.7.2 添加确认GUID 530

17.7.3 支持多订单填写的客户端 530

17.7.1 增加安全性 530

17.8 小结 532

第18章 SuperCompute.NET工作需求 533

18.1 问题的定义 533

18.1.1 关键点分析 534

18.2 定义解决方案 535

18.3 数据层 536

18.3.1 存储过程 537

18.3.2 数据组件 541

18.3.3 UserDB类 543

18.3.4 SessionDB类 544

18.3.5 TaskDB类 547

18.3.6 SuperComputeTables类 552

18.4 呈现Web服务 553

18.4.1 RenderService认证 553

18.4.2 RenderService功能 557

18.5 客户端 558

18.6 任务处理器 562

18.6.1 TaskProcessor组件 562

18.6.2 任务处理器前端 563

18.6.3 下载被渲染的文件 570

18.7 未来的方向 572

18.7.1 增加ticket缓存 572

18.7.4 添加负载平衡 574

18.7.3 添加消息队列 574

18.7.2 提高客户端错误清理能力 574

18.8 小结 576

第19章 微软实例学习 577

19.1 IBuySpy商店 577

19.2 IBuySpy入口 579

19.3 Duwamish 7 580

19.4 .NET Pet Shop 581

19.5 Fitch Mather Stocks 7 582

19.6 Nile Books 582

19.7 ColdStorage 583

19.8 Jaggle 583

19.9 Favorites Service 583