ASP.NET Lab

The Best Web, The Best Future

博客园 首页 新随笔 订阅 管理

Web 服务是一种强大的技术,它提供了可以跨越互联网而被编程访问的服务。下列建议可以帮助你精通 Web 服务的创建:

  • Web 服务同时支持客户端与托管了 Web 服务的服务器之间的同步与异步通信。在同步通信之下,客户端发送一个服务请求给托管服务的服务器并且等待回应。这防止了来自于完成其他操作的客户端对于结果的等待。不管怎样,异步通信都会导致客户端与等待回应一样来继续处理其他任务。当客户端变得可用的时候,就会对服务请求的结果产生回应。

    当你使用 Web Services Description Language 工具(Wsdl.exe)来创建你的代理类的时候,它会为该类中方法而产生标准的同步版本与异步版本。异步版本由被称为 Begin 与 End 的两种方法所组成。Begin 方法是用来初始化 Web 服务,而 End 方法则获取结果。

    使用异步通信改进了系统用途并且避免了客户端等待 Web 服务结果的延迟。

    关于代码范例,参考[实践:从 Web 服务客户端产生异步调用]。关于异步通信的额外信息,参考[以异步 XML Web 服务进行通信]。

  • 跨越互联网产生诸多的服务请求可以影响客户端应用的性能。当设计你的 Web 服务的时候,通过创建组合彼此相关的信息的方法来高效地使用服务请求。例如,假设你拥有一个获取关于书籍信息的 Web 服务。替代成单独的方法来获取书籍的标题,作者和出版商,创建一个在一个服务请求中返回所有这些信息的方法。然而在同一时间内传送大量的信息要比多个更小量的信息要更加有效率。
  • 关于代码范例,参考[实践:把相关的信息分组进一个单独的 Web 服务方法]。当设计你的 Web 服务的时候,确保使用了标准的面向对象编程习惯。并且使用封装来隐藏实现细节。关于更多复杂的 Web 服务,你可以使用继承与多态来重用代码并且简化你的设计。
  • 关于代码范例,参考[实践:在 Web 服务中使用继承]。使用输出缓存来改进你的 Web 服务的性能。当输出缓存被开启的时候,服务请求的结果就会为了一个特定的持续时间而被存储在输出缓存中。如果产生了类似的 Web 服务,那么结果就可以从缓存中被获得,胜于它的重新计算。这样通过减少 Web 服务服务器所必需的处理而改进了 Web 服务器的反应时间。缓存还可以同时在客户端与服务器中被完成。Duration 属性允许你指定时间量来缓存 Web 服务的输出。

    在客户端启用输出缓存的指令是:

    <%@ OutputCache Duration="60" %>

    关于代码范例,参考[实践:启用 Web 服务客户端中的输出缓存]。你同样可以使用 WebMethod 特性类的 CacheDuration 属性来启用服务器中的缓存。关于代码范例,参考[实践:为 Web 服务器启用服务器端输出缓存]。

  • 当设计你的 Web 服务的时候,尝试下列关于结构如何被格式化的结构。
  • Web 服务把 SOAP 当作主要的传输协议与序列化协议。一条 SOAP 消息由一个可选的头部集合与消息体所组成。头部片段由可以通过 Web 服务器中的架构而被处理的信息所组成。SOAP 并没有定义任何头部。而体片段包含了通过应用程序而被处理的信息,比如 Web 服务的参数或者返回值。

    关于使用 SOAP 头部的额外信息,参考[使用 SOAP 头部]。

  • 为你的 Web 服务提供文档,比如一个静态的 HTML 文件,描述你的服务的操作与数据结构。同样包括了如何使用 Web 服务的范例。并且不要依赖于把服务帮助页面的服务描述当作你唯一的文档。

posted on 2007-03-25 18:16  Laeb  阅读(254)  评论(0编辑  收藏  举报