所以我们有基于SOAP的JAX-WS,可以是 RPC样式或文档样式。这些也称为Big Webservices
此外,上述两个选项还可以使用编码或文字样式。
然后我们有了JAX-RS,它是Web服务的RESTful版本。据我所知,这种风格用于构建轻量级Web服务以及不生成动态数据的Web服务,因此可以缓存结果。 不需要WSDL。这也不支持身份验证(我认为)。
这些样式在性能或执行速度方面有所不同吗?
我有一个使用Webservices访问防火墙后面的数据库的应用程序。(将数据公开为服务 - 我使用的工具名为WSO2)查询执行速度很快但是webservices需要时间来格式化XML中的数据使我的应用程序变慢。
如果我使用不同风格的Web服务,我的表现会有所改善吗?
答案 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)
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