当前有多种创建应用程序的平台。但每种平台都习惯于使用自身的协议(本质上通常是二进制代码)来实现机器间的集成。因此,跨平台的应用程序在数据共享方面的能力相当有限。认识到这些限制后,人们一直在致力于建立有关数据格式和数据交换方面的标准,借此以实现“不论服务采用何种软件,使用何种硬件,都能够跨越这一传统的界限以 Web 的形式无缝地将它们集成在一起”这一远景目标。目前,这一目标已迅速发展成为一种新的计算范例。
该目标的核心是互操作性概念,即不同系统能够无缝地进行通信和共享数据。这也是 Web 服务追求的目标。Web 服务是一种可以用标准 Internet 协议来访问的可编程应用逻辑;从另一个角度来说,Web 服务是有关机器间和应用程序间透明通信的、借助于 Web 的标准的具体实现。
目前,实现机器间消息传递的 Web 服务技术多种多样,例如简单对象访问协议 (Simple Object Access Protocol SOAP)、Web 服务说明语言 (Web Service Description Language WSDL) 和超文本传输协议 (HyperText Transfer Protocol HTTP)。这些消息的复杂程度各不相同,既有简单的方法调用,也有复杂的订单提交。在 Web 服务的功能中,最一般但又较高级的功能是实现 RPC(远程过程调用)形式的通信(通过 RPC,一台计算机上的程序可以执行另一台计算机的程序。)本文从实用的角度介绍了在使用 SOAP 进行 RPC 形式的通信时当前常见的互操作性问题,以后还将撰文探讨有关通过 SOAP、WSDL 以及其它协议传送消息的问题。
以下是一个典型的 SOAP 请求(包括 HTTP 标头),它请求名为 EchoString 的 RPC 方法调用,并将一个字符串当作参数:
这个示例是通过 SOAP 互操作性测试发现的众多问题之一。
