进行 XML Web services 调用时发生的过程与进行常规方法调用时发生的过程类似。主要的差别在于,不是调用位于客户端应用程序中的方法,而是根据指定的传输(如 HTTP)生成请求消息。由于 XML Web services 方法可能位于另一台计算机上,因此 XML Web services 处理请求所需的信息必须通过网络传递给承载 XML Web services 的服务器。XML Web services 处理此信息并通过网络将结果发送回客户端应用程序。
下图显示客户端和 XML Web services 之间的通信过程。
XML Web services 生存期
下面描述调用 XML Web services 时发生的事件序列:
- 客户端创建 XML Web services 代理类的一个新实例。该对象驻留在客户端所在的同一台计算机上。
- 客户端调用代理类上的方法。
- 客户端计算机上的基础结构将 XML Web services 方法的参数序列化为 SOAP 消息,并通过网络将它发送给 XML Web services。
- 基础结构接收 SOAP 消息并反序列化该 XML。它创建实现 XML Web services 的类的实例并调用 XML Web services 方法,同时将反序列化的 XML 作为参数传入。
- XML Web services 方法执行其代码,最终会设置返回值和任何输出参数。
- Web 服务器上的基础结构将返回值和输出参数序列化为 SOAP 消息,并通过网络将它发送回客户端。
- 客户端计算机上的 XML Web services 基础结构接收该 SOAP 消息,将 XML 反序列化为返回值和任意输出参数,并将它们传递给代理类的实例。
- 客户端接收返回值和任何输出参数。