各种类型的Web服务在性能上有所不同吗?

时间:2015-04-15 07:32:56

标签: java web-services soap wso2 wso2dss

所以我们有基于SOAP的JAX-WS,可以是 RPC样式文档样式。这些也称为Big Webservices

此外,上述两个选项还可以使用编码文字样式。

然后我们有了JAX-RS,它是Web服务的RESTful版本。据我所知,这种风格用于构建轻量级Web服务以及不生成动态数据的Web服务,因此可以缓存结果。 不需要WSDL。这也不支持身份验证(我认为)。

这些样式在性能或执行速度方面有所不同吗?

我有一个使用Webservices访问防火墙后面的数据库的应用程序。(将数据公开为服务 - 我使用的工具名为WSO2)查询执行速度很快但是webservices需要时间来格式化XML中的数据使我的应用程序变慢。

如果我使用不同风格的Web服务,我的表现会有所改善吗?

3 个答案:

答案 0 :(得分:2)

RESTful webservices支持身份验证,最简单的是HTTP Basic AUTH。

当然,性能存在差异,具体取决于您正在做什么样的事情。但是,WebService的类型在提高性能方面不太可能很重要。它更多的是关于WS正在做什么。真正的热点在您的业务代码中。

答案 1 :(得分:1)

与SOAP相比,REST在吞吐量方面更轻量级,因为只有最少的数据通过HTTP传输。您可以在中找到更多信息 this great thread

对于SOAP,以及RPC / encoded,RPC / literal,Document / encoded,Document / literal以及何时使用它们之间的区别,您可以查看this article。它涉及性能 - 它主要与类型编码相比没有。

你说查询(我也假设业务逻辑)非常快。因此,如果您希望在您的情况下优化性能,您应该首先分析网络连接 - 速度,延迟,带宽,然后在您做太重的事情时仔细查看消息转换逻辑。

答案 2 :(得分:1)

很少有人能够区分Web服务和REST。

SOAP / Web服务(SOA)

  • 严格的合同/服务定义,例如WSDL / XSD
  • 复杂的邮件格式 - SOAP
  • 复杂的安全协议 - WS-Security,WS-Trust / Federation等。

REST- - 使用简单消息格式(JSON,XML)的松散合同 - 通过简单标准(如Swagger)的API定义。 http://swagger.io/ - 轻量级协议,例如basic-auth / OAuth 2.0 / OpenID Connect。

我的建议是,您应该根据业务需求选择Web服务或REST,而不是基于性能(当然,在SOAP Web服务中使用严格的验证,会有性能损失)

同样重要的是要记住,基于REST的业务功能/服务是API和API管理的关键驱动力[1]。

[1] http://www.slideshare.net/kasun04/api-integration-and-soa-convergence