谁需要 (SOAP) 可靠的消息传递?
我发现了一个非常好的反对基于协议(即 SOAP)可靠消息传递的论据。这是一个激烈的话题,还是对此有相当程度的共识?
我认为作者的“荷兰”案例研究也应该包括一个有序的例子。
ps 我希望谷歌有一个“对比”工具,可以找到观点相反的网站。 “Google Contrast”听起来是不是很酷? :)
I spotted a very good argument against protocol-based (viz. SOAP) reliable messaging. Is this a flame-war topic, or is there a fair degree of consensus about this?
I think the author's "Netherlands" case-study ought to have included an in-order example as well.
p.s. I wish google had a "contrast" tool, that finds sites with opposing points of view. Doesn't "Google Contrast" sound cool? :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
原则上这并不是反对可靠消息传递,而是反对将其放入传输层。这让我想起了几年前 Mysql 开发人员所说的“你不需要在数据库中使用 $foo,在应用程序层中很容易做到这一点” - 其中 $foo 通常是“事务”或“外键”,或“约束”,或……他们此后决定实施的任何其他事情。
我并不是说 de Graauw 一定是错误的,因为很明显他在他的特定应用程序中不需要可靠的传输,但我确实建议“我不需要 X,因此你也不需要“原则上是错误的概括,在实践中常常是不正确的。
It's not an argument against reliable messaging in principle, but against putting it in the transport layer. It reminds me a little of the Mysql developers years ago saying "you don't need $foo in the database, it's easy to do that in the application layer" - where $foo was typically "transactions", or "foreign keys", or "constraints", or ... any of many other things they've since decided to implement anyway.
I don't mean that to imply that de Graauw is necessarily wrong, as it's clear he has no need for a reliable transport in his particular app, but I do suggest that "I don't need X, therefore you don't either" is a false generalisation in principle and often incorrect in practice.
通过提供握手消息,可以使不可靠的消息传递(即 UDP)变得可靠:
S:你在吗?
答:是的,我在这里。
S:打开门廊灯(这是消息 6)
R:好的。
S:你收到消息6了吗?
答: 抱歉,什么? (或无响应)
S:打开门廊灯(这是消息 7)
R:已收到消息 7。
R:门廊灯亮。
Unreliable messaging (ie. UDP) can be made reliable by providing handshaking messages:
S: Are you there?
R: Yes, I am Here.
S: Turn On Porch Light (this is Message 6)
R: OK.
S: Did you receive message 6?
R: Sorry, what? (or no response)
S: Turn on Porch light (this is message 7)
R: Message 7 Received.
R: Porch Light is On.