2011-09-22 65 views

回答

16

通过 “基于SOAP服务” 我假设你的意思WS-I Basic Profile Web服务。区别很重要,因为SOAP可以与REST以及WS-I BP Web服务一起使用。让我解释。

SOAP是一种基于XML的消息传递格式,用于交换数据。肥皂还定义了一种进行远程过程调用的方法。 SOAP是W3C的开放标准。 SOAP对于底层传输层是不可知的。 HTTP常常被用作传输层,但它可以愉快地运行SMTP和TCP以及其他传输。

REST是一种架构风格(不是标准),所以请小心不要直接比较REST和SOAP,因为您不会将苹果与苹果进行比较。 REST采用HTTP并且使用它是它被使用的方式,具有所有的微妙和丰富性。 REST架构风格可用于以任何格式传输数据 - 它不会强制使用任何特定的数据格式。所以SOAP对于REST风格的Web服务来说是一个非常好的序列化格式。但是许多人在REST中使用JSON,XML,纯文本和其他格式。您也可以愉快地通过REST交换二进制数据,例如图像文件。好的是你可以选择对你的应用程序最有意义的数据格式。

请注意,由于REST是一种模式,而不是标准,因此对于真正意义上的RESTful意味着什么意义存在很多争议。有一个名为Richardson Maturity Model的概念,它给出了REST理想的一系列步骤。通过与Richardson模型进行比较,我们可以清楚地看到REST实现是如何实现的。 WS-I BP Web服务在此级别上处于级别0(即,根本不是非常RESTful,仅使用HTTP作为哑传输层)。

我会说这个关于选择REST和WS-I Basic Profile网络服务 - 这取决于你的观众。如果您在企业内部开发B2B类型接口,则更常见的是看到WSI-BP Web服务。由于存在基础标准,并且由于企业供应商(如IBM,Oracle,SAP,Microsoft)的成熟支持,并且由于特别在.NET和Java中提供了框架支持,因此WSI-BP具有很大意义当您需要快速获得某些内容时,并且希望让客户端在企业环境中轻松连接,并且交换的数据是业务数据,这些数据可以很好地作为SOAP序列化。另一方面,如果您将Web服务暴露给更广泛的Web受众,我会说从WSI-BP到REST风格已经有了一个趋势。由于REST仅假设客户端支持HTTP,因此可以与最广泛的受众进行互操作。 REST还为您提供了网络本身的可扩展性,并支持资源缓存等,这使得它可以比WSI-BP网络服务更好地扩展到大量用户。

+1

多么令人愉快的理智答案。 –

+0

的确,很好的答案。 –

+0

@saille:谢谢你。现在事情似乎更容易。 – xyz

相关问题