我对SOA有疑问。
SOAP 和 REST是否都被认为是实现面向服务架构的方法?
我知道REST是一种风格,因此这引出了我这个问题。
答案 0 :(得分:5)
是的,它们都可以被视为实施SOA的方法。我想你可以说REST是一种风格,但是你必须说SOAP也是一种风格。我只是考虑他们不同的技术来实现同样的目的。 SOAP模仿远程过程调用,REST与Web(http)的设计方式一致。
答案 1 :(得分:4)
当创建/调整服务以在SOA体系结构中工作时,只要消费者能够处理响应,暴露的接口就可以是您想要的任何内容。
为了给出更简洁的答案,我将REST解释为可以执行CRUD操作的HTTP接口,可能使用XML或JSON对象响应请求。
SOAP倾向于在服务端进行更复杂的操作,库和涉及的XML的SOAP会给系统带来复杂性。
如果您需要的只是可以通过简单CRUD操作访问的资源的表示,则值得考虑实现REST接口以降低复杂性,即使该服务将与具有SOAP接口的辅助服务一起运行也是如此。所需要的只是服务的使用者能够处理RESTful样式响应以及充当SOAP客户端。
在整个服务中存在一致性的论据,以提高可维护性和易于开发,但这不是必需的,只应包含在决策过程中。
当将消息传递总线包含到设计中时,可以通过将标准转换(XSLT,自定义)插入到流程中来更有效地处理异构服务,该流程可以将服务的响应转换为系统理解的标准格式。整个。
答案 2 :(得分:0)
SOAP和REST是构建服务的方式。
SOAP是基于XML的,理论上支持的不仅仅是HTTP,还有接口定义(WSDL)标准,以及安全性(WS_Security)等。
REST是一种使用一组已定义的Web操作(GET,POST等)以面向资源的方式执行Web服务的样式,但定义的其他内容很少。
然而,SOA不仅仅是一堆服务。选择REST或SOAP很容易。
答案 3 :(得分:0)
如果你只是问是否可以使用面向服务的体系结构来实现它们 - 是的,他们就是这样做的。它们甚至可以在一个基于SOA的项目中同时使用。
如果您在询问是否应该使用SOAP或REST - 除非您提供了项目规范,否则没有答案。