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