我正在研究SOA概念,并找出了这些技术(我应该这样称呼它?)SOAP和REST(只有这些)。我想知道是否有任何其他技术(?)在这种情况下共存,它们代表什么。他们在某事上更好吗?有很多人使用它们吗?等等谢谢(:
答案 0 :(得分:5)
将SOA架构与SOAP,REST和架构的其他实现分开是很重要的。
您可以在任何支持请求和响应消息的技术之上实现SOA架构。
SOA架构的核心特征是: -
作为架构的关键优势是: -
然而,正如你在现实世界中得出的结论,主要是使用SOAP和REST。当人们说SOAP时,他们通常会引用WS- *系列标准和协议 - > WSDL(Web服务定义语言),WSM(Web服务消息传递),WS-Security等等,它们使用SOAP作为传输机构。
虽然REST具有简单的优点,而且WS *非常复杂且难以实现,但我建议将WS *方法用于任何相当大的系统。 WS *标准不仅支持简单的请求/响应,还支持除http(JMS,文件等)之外的异步消息和传输,更重要的是,WS安全标准很好,并支持安全业务到商务通信。
答案 1 :(得分:3)
首先,请阅读:http://www.soaspecs.com/ws.php。
然后阅读:http://en.wikipedia.org/wiki/Web_service
最终,一切都完全依赖于HTTP。这是核心协议。你要问的是至少两件不同的事情。 XML,JSON或其他东西中的文档(或参数)的编码。转移的语义:不受约束或受HTTP约束。
XMLRPC - http://en.wikipedia.org/wiki/XML-RPC。这演变成了SOAP。消息是XML格式的。语义是一个函数调用。该消息包括方法和参数。
SOAP - http://en.wikipedia.org/wiki/SOAP。消息以XML编码。它类似于XMLRPC,具有更多选项,更复杂的XML和正式的WSDL描述。 http://en.wikipedia.org/wiki/Web_Services_Description_Language
如果您使用JSON而不是XML,那么它就没有好名字了。它是带有JSON的WS或REST。如果它使用XML,它只是SOAP。
有两种一般的架构。 SOAP样式的请求,其中任何动词可以在请求中定义,而REST只有四个动词:POST,GET,UPDATE,DELETE,它们是HTTP请求的方法部分。
REST - http://en.wikipedia.org/wiki/Representational_State_Transfer。您可以使用任何带REST的消息编码。有些人使用XML,有些人使用JSON或YAML。您可以轻松地创建XML和JSON / YAML之外的其他表示。但是,你被限制使用四个规范动词。
答案 2 :(得分:0)
如果你想成为最新的WS标准使用WS *堆栈。