SOA 最常见的技术是什么?
我正在研究 SOA 概念并找到了技术(我应该这样称呼它吗?) SOAP 和 REST(仅限这些技术)。我想知道是否还有其他技术(?)在这种情况下共存以及它们代表什么。他们在某些方面做得更好吗?很多人使用它们吗?等谢谢(:
I'm studiyng the SOA concept and found out the techniques (should i call it like that?) SOAP and REST (only these ones). I want to know if there are any other techniques (?) that coexist in this context and what do they represent. are they better in something? does many people use them? etc. thanks (:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
将 SOA 架构与 SOAP、REST 和架构的其他实现分开非常重要。
您可以在任何支持通过消息进行请求和响应的技术之上实现 SOA 架构。
SOA 架构的核心特征是: -
这种架构的主要优点是: -
然而,正如您在现实世界中得出的非常正确的结论一样,大多数情况下都使用 SOAP 和 REST。当人们说 SOAP 时,他们通常指的是 WS-* 系列标准和协议 --> WSDL(Web 服务定义语言)、WSM(Web 服务消息传递)、WS-Security 等,它们使用 SOAP 作为传输协议机制。
尽管 REST 具有简单的优点,但 WS* 非常复杂且更难实现,但我建议对于任何相当大的系统都使用 WS* 方法。 WS* 标准不仅支持简单的请求/响应,还支持除 http 之外的异步消息和传输(JMS、文件等),更重要的是,WS 安全标准经过精心设计,支持安全的企业间通信。
Its important to separate SOA the architecture from SOAP , REST and other implementations of the architecture.
You can implement a SOA architecture on top of any technoligy that supports request and response via messages.
The core characteristic of a SOA architecture are:-
The key advantages of this as an architecture are:-
However as you quite rightly concluded in the real world mostly SOAP and REST are used. When people say SOAP they are usually refering to the WS-* series of standards and protocols -->WSDL (Web Service Definition Language), WSM (Web Service Messaging) , WS-Security etc. etc. which use SOAP as the transport mechanism.
Whereas REST has the virtue of simplicity, and, the WS* is highly complex and more difficult to implement I would recommend the WS* approach for any reasonably large system. The WS* standards support not only simple request/response but also asynchronous messages and transports other than http (JMS, files etc), and, more importantly the WS security standard is well though out and supports secure business to buisness communication.
首先,阅读以下内容: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 请求的方法部分。
休息 - http://en.wikipedia.org/wiki/Representational_State_Transfer。您可以在 REST 中使用任何消息编码。有些人使用 XML,有些人使用 JSON 或 YAML。您可以轻松发明 XML 和 JSON/YAML 之外的其他表示形式。但是,您必须使用四个规范动词。
First, read this: http://www.soaspecs.com/ws.php.
Then read this: http://en.wikipedia.org/wiki/Web_service
Ultimately, everything sits squarely on HTTP. That's the core protocol. What you're asking about is at least two different things. The encoding of document (or arguments) in XML, JSON or something else. The semantics of what's transferred: unconstrained or constrained by HTTP.
XMLRPC - http://en.wikipedia.org/wiki/XML-RPC. This evolved into SOAP. The message is in XML. The semantics are a function call. The message includes the method and the arguments.
SOAP - http://en.wikipedia.org/wiki/SOAP. The message is encoded in XML. It is similar to XMLRPC, with more options, more complex XML and formal WSDL descriptions.
http://en.wikipedia.org/wiki/Web_Services_Description_Language
If you use JSON instead of XML, there's no good name for it. It's WS or REST with JSON. It's only SOAP if it uses XML.
There are two general kind of architectures. The SOAP-style request where any verb could be defined in the request, vs. REST where there are just four verbs: POST, GET, UPDATE, DELETE and they're the method portion of the HTTP request.
REST - http://en.wikipedia.org/wiki/Representational_State_Transfer. You can use any message encoding with REST. Some folks use XML, some folks use JSON or YAML. You can easily invent other representations beyond XML and JSON/YAML. However, you are constrained to use the four canonical verbs.
如果您想了解最新的 WS 标准,请使用 WS* 堆栈。
if you want to be current with WS standards use WS* stack.