本书是一本全面的XML Web服务开发指南,可帮助开发人员构建最高级的分布式Web应用程序。本书详细介绍了构建分布式对象Web应用程序需要了解的体系结构、协议和编程准则等,深入介绍了XML Web服务基本构建块:简单对象访问协议(SOAP)、Web服务描述语言(WSDL)、通用描述发现和集成(UDDI)以及Microsoft .NET框架技术,并结合示例和实用策略向读者演示如何构造自己的高端Web服务。此外,还介绍了Microsoft .NET My Services和其他基于XML的技术。\r\n 本书是Web服务开发人员的必备参考手册,也适合于相关程序设计人员阅读。
前言\r\n\r\n第1章 Web服务概述\r\n\r\n1.1 Web服务构建块\r\n1.2 Web服务设汁决策\r\n1.2.1 选择传输协议\r\n1.2.2 选择编码模式\r\n1.2.3 选择格式设置约定\r\n1.2.4 选择描述机制\r\n1.2.5 选择发现机制\r\n1.3 Web服务中的欠缺\r\n1.4 本章小结\r\n\r\n第2章 创建基本的Web服务\r\n\r\n2.1 简单的商务应用程序\r\n2.1.1 创建一个Web窗体\r\n2.1.2 创建Payment Web服务\r\n2.1.3 更新Order Web窗体\r\n2.2 Web文件共享应用程序\r\n2.2.1 创建WebFileShare Web服务\r\n2.2.2 创建WebFileUtil程序\r\n2.3 本章小结\r\n\r\n第3章 SOAP\r\n\r\n3.1 SOAP消息剖析\r\n3.1.1 SOAP角色\r\n3.1.2 Header元素\r\n3.1.3 Body元素\r\n3.2 使用SOAP RPC消息\r\n3.3 SOAP Encoding\r\n3.3.1 简单类型\r\n3.3.2 复合类型\r\n3.3.3 通过引用传递参数\r\n3.4 协议绑定\r\n3.5 本章小结\r\n\r\n第4章 XML Schema\r\n\r\n4.1 描述XML文档\r\n4.2 内置数据类型\r\n4.2.1 整数\r\n4.2.2 字符串\r\n4.2.3 二进制数据\r\n4.3 命名空间\r\n4.3.1 targetNamespace属件\r\n4.3.2 xmlns属性\r\n4.3.3 schemaLocation属性\r\n4.3.4 noNamespaceSchemaLocation届性\r\n4.3.5 XML Schema和XML Schema Instance命名空间\r\n4.4 元素定义\r\n4.5 自定义数据类型\r\n4.5.1 简单类型\r\n4.5.2 复杂类型\r\n4.5.3 元素和属性组\r\n4.5.4 命名空间的范闹\r\n4.5.5 多态\r\n4.5.6 约束继承\r\n4.6 本章小结\r\n\r\n第5章 使用WSDL记录Web服务\r\n\r\n5.1 WSDL文档语法\r\n5.1.1 definitions元素\r\n5.1.2 types元素\r\n5.1.3 message元素\r\n5.1.4 portType元素\r\n5.1.5 binding元素\r\n5.1.6 service元素\r\n5.1.7 扩展性元素\r\n5.1.8 SOAP扩展\r\n5.1.9 HTTP GET/POST扩展\r\n5.1.10 import元素\r\n5.1.11 记录文档\r\n5.2 Calculator Web服务的WSDL文档\r\n5.3 本章小结\r\n\r\n第6章 ASP.NET\r\n\r\n6.1 创建ASP.NET Web服务\r\n6.2 传输协议和绑定\r\n6.3 Web服务文档\r\n6.4 引发错误\r\n6.5 SOAP编码样式\r\n6.6 接口继承\r\n6.7 管理状态\r\n6.7.1 会话状态\r\n6.7.2 应用程序状态\r\n6.8 定义和处理SOAP头\r\n6.9 使用SOAP扩展\r\n6.9.1 SOAP扩展届件\r\n6.9.2 SOAP扩展类\r\n6.10 使用WSDL实用程序生成代理代码\r\n6.10.1 代理类\r\n6.10.2 cookie程序\r\n6.11 本章小结\r\n\r\n第7章 XML序列化\r\n\r\n7.1 控制XML序列化\r\n7.2 定义PurchaseOrder根数据类型\r\n7.3 定义Items数组\r\n7.4 创建派生数据类型\r\n7.5 创建开放式PurchaseOrder架构\r\n7.6 定义AcceptPO Web方法\r\n7.7 服务器端验证\r\n7.8 实现自定义序列化\r\n7.9 本章小结\r\n\r\n第8章 使用远程处理建立和使用Web服务\r\n\r\n8.1 远程处理与ASP.NET\r\n8.2 Grabber.NET应用程序\r\n8.2.1 远程处理的结构\r\n8.2.2 创建IIS承载的Web服务\r\n8.2.3 创建WinForm承载的Web服务\r\n8.2.4 访问Web服务\r\n8.2.5 添加SOAP头\r\n8.2.6 生成WSDL\r\n8.2.7 WSDL扩展元素Suds\r\n8.3 本章小结\r\n\r\n第9章 Web服务的发现机制\r\n\r\n9.1 UDDI\r\n9.1.1 UDDI体系结构\r\n9.1.2 UDDI API\r\n9.1.3 UDDI SDK\r\n9.1.4 UDDI企业服务器\r\n9.1.5 注册头方\r\n9.1.6 注册供方\r\n9.1.7 Visual Studio .NET集成\r\n9.2 DISCO\r\n9.3 本章小结\r\n\r\n第10章 建立交全的Web服务\r\n\r\n10.1 威胁模型简介\r\n10.1.1 分析威胁\r\n10.1.2 选择可减轻威胁的技术\r\n10.2 Web服务安全技术\r\n10.2.1 Web服务身份验证\r\n10.2.2 web服务授权\r\n10.2.3 web服务的保密性和完整性\r\n10.3 .NET框架中的安全技术\r\n10.4 未来的Web服务安全技术\r\n10.5 常见的安全错误\r\n10.5.1 错误#1:以不安全的方式存储机密数据\r\n10.5.2 错误#2:不正确地连接到SQL Server\r\n10.5.3 错误#3:建立不安全的SQL字符串\r\n10.6 一个完整的示例\r\n10.6.1 不安全的版本\r\n10.6.2 安全的解决方案\r\n10.7 本章个结\r\n\r\n第11章 调试Web服务\r\n\r\n11.1 交互式调试\r\n11.1.1 调试基础\r\n11.1.2 远程调试\r\n11.1.3 Web服务友好的调用堆栈\r\n11.2 调试器所需的信息\r\n11.2.1 程序集元数据\r\n11.2.2 程序数据库\r\n11.2.3 跟踪信息\r\n11.2.4 调试动态编译的源代码\r\n11.3 规范化Web服务\r\n11.3.1 跟踪\r\n11.3.2 事件日志\r\n11.3.3 性能计数器\r\n11.4 调试提示与技巧\r\n11.5 本章小结\r\n\r\n第12章 伸缩性和可用性\r\n\r\n12.1 扩展Web服务的规模\r\n12.1.1 升级\r\n12.1.2 扩展\r\n12.1.3 克服伸缩性瓶颈\r\n12.2 维持高可用性\r\n12.2.1 高度可用的升级资源\r\n12.2.2 高度可用的扩展资源\r\n12.2.3 根据高度可用的资源编程\r\n12.3 第三方Web服务和可用性\r\n12.3.1 把故障转移到备用Web服务\r\n12.3.2 创建脱机操作模式\r\n12.4 性能优化\r\n12.5 本章小结\r\n\r\n第13章 Web服务的前景\r\n\r\n13.1 .NET My Services简介\r\n13.1.1 .NET My Services安全\r\n13.1.2 使用.NET My Services\r\n13.1.3 .NET My Services请求示例\r\n13.2 通用型XML Web服务体系结构(GXA)\r\n13.2.1 WS-Inspection\r\n13.2.2 WS-Security和WS-License\r\n13.2.3 WS-Routing\r\n13.2.4 WS-Referral\r\n13.2.5 动态应用程序拓扑\r\n13.3 Web服务编排\r\n13.4 本章小结\r\n\r\n附录 XML Schema内置类型
几乎在任何一本技术杂志、开发人员参考手册或者公司IT战略的文档中,您都可以看到有关Web服务的内容。那么所有这些广告宣传究竟是怎么回事?简单地说,就是允许开发人员通过Web服务创建不受限制的应用程序——这些应用程序可用于不同的操作系统、硬件平台,并且不受地域的限制。本书将解释什么是Web服务,以及如何应用Microsoft .NET平台来构建和使用它们。
读者对象
本书面向具有一定编程基础的中、高级读者群。不管您熟悉哪种编程平台,都至少应该掌握面向对象编程(OOP)的概念和基本的编程构造。
此外,您还应该熟悉基本的C#语法。本书所有示例都是用C#语言编写的。这些示例非常简单,即使您原来的开发语言不是C#,也可以很容易地将它们导入其他.NET语言,如Visual Basic。
全书概览
本书采用由浅入深的方法来介绍Web服务以及.NET平台为创建和使用这些服务所提供的支持。如果您对Web服务不太了解,则很难深刻理解本书的内容。所以,本书前两章介绍了必要的背景知识。第1章解释了Web服务的基本原理,并对底层协议做了概述,最后介绍如何结合这两者设计出完整的解决方案。
第2章进一步讲述如何使用Visual Studio .NET来创建和使用ASF.NET平台上的Web服务。本章的主要目的是让您了解ASP.NET运行库如何为开发人员抽象底层协议,并说明在Web服务的环境中何时运用这些协议。
在第3章到第5章中,您将详细了解到核心的底层Web服务协议。如果您对Web服务还不甚了解,则可以跳过这些章节,以后再阅读。通过深入了解底层协议来理解Web服务是最好的方法,如果需要在各种平台上混合运用Web服务,则更是如此。
第6章到第8章是本书的核心部分,讲述了开发人员用来快速构建和使用Web服务的核心.NET技术:ASP.NET和远程处理。这两种技术看似重复,其目标却截然不同:ASP.NET Web服务的主要目的是维持在客户端和服务器之间传递的XML数据类型的实例的精确度;而远程处理则主要在于维持在客户端和服务器之间传递的.NET类型的实例的精确度。同时,这两个目标可以通过一组统一的技术来实现。
本书其余章节还涉及到了和大多数产品质量的Web服务相关的主题。第9章说明了如何利用UDDI和DISCO来为Web服务做广告宣传,以及如何发现其他的Web服务。第10章讲解了确保Web服务文全的策略。第11章介绍了如何对Web服务进行调试。第12章提供了确保Web服务满足伸缩性和可用性满足要求的策略。第13章分析了构建Web服务所涉及到的一些问题,并介绍一些解决这些问题的新技术。
快速阅读
如果在参加一个项目时,需要使用我们知之甚少或者根本不了解的技术,我们就会设法去了解一些正好足以解决手中问题的知识。针对这种情况,本书内容安排的一个特点就是每章内容都可以独立阅读,并不需要以前面章节的内容作为背景。例如,您可以从讲述ASP.NET的第6章开始,而不需要首先阅读有关SOAP、XML架构或WSDL的章节。因此,如果您想尽可能快地开发和使用Web服务,建议您先阅读如下内容。
快速浏览第1章,了解组成Web服务的技术和切、议是如何组织到一起的。
阅读第2章,并加载Visual Studio .NET,按照书中给出的建立两个简单的应用程序的步骤进行操作。这将帮助您熟悉如何使用Visual Studio .NET工具集开发基本的Web服务。
选择学习第6章中适用于您的项目的重要内容。
阅读第11章中的“交互式调试”部分,这是关于使用Visual Studio .NET调试器来调试Web服务的内容。
根据需要阅读第9章和第10章(关于发现和安全)。
在项目的整个过程中,仔细阅读第6章和第7章,大致了解如何使用ASP.NET平台来建构和使用Web服务的内容。
最后根据项目需要阅读其他章节。比如,如果汁划使用UDDI,就阅读第9章中关于发布Web服务和发现其他Web服务的相关信息。
系统要求
要运行本书中的所有范例,您需要拥有表1.1所列出的硬件和软件。
示例代码
访问本书封底所示的示例代码下载地址,可下载书中采用的大部分不例的源代码。将示例代码复制到本地机器上就可以使用了。
支持
作者和编辑都尽了最大的努力来保证本书中的内容和示例代码的准确无误。尽管如此,在文中还是不可避免地会出现一些错误和疏漏。您可以查看公布在http://www.microsoft.com/mspress/support/上的更新和勘误表。