人们是否仍在撰写SOAP services或者它是一种通过其architectural shelf life的技术?人们会回归二进制格式吗?
答案 0 :(得分:6)
SOAP的替代品不是二进制格式。
我认为你看到了将WS- *的复杂性置于支持REST和JSON的愿望激增,因为它们使用起来更简单,并且不需要成功使用框架。 WS- *表面上试图解决的问题对于大多数用户来说不是问题,但他们必须以任何方式为复杂性付出代价。
答案 1 :(得分:4)
我仍然在写基于WS - *的服务。有点令人惊讶的是,在尝试与能力较弱的开发人员进行互操作时,我遇到的麻烦较少。这是因为如果我向他们发送一个WSDL文件,他们知道如何通过他们的工具来启动它并获得他们可以调用的API,同时幸福地不知道幕后发生了什么。为了给客户提供REST-ful服务,我必须开始与他们讨论HTTP和XML,他们真的不理解他们认为他们这样做,然后我开始变得头痛。
换句话说,要成功使用REST,服务提供商和消费者都必须知道他们正在做什么(并且他们可以保持简单并提出一个伟大的非WS- *解决方案)。使用WS- *技术,即使只有一方有线索,它仍然可以成功。
然而,我认为,面向REST的标准比现有的WS标准复杂得多,最终会出现,当发生这种情况时,也可以使用类似的工具。答案 2 :(得分:3)
我是这么认为的。对于绝大多数用例而言,RESTful解决方案越来越明智; SOAP和其他RPC技术的复杂性不再值得付出努力。
答案 3 :(得分:2)
我根本不会考虑SOAP遗留问题。 REST与SOAP实际上只是COM / CORBA与HTTP POST / GET等争论的延续.SOF只不过是用C和C(合同,提供者,消费者等)定义的相同原则的更新版本。 。只是看起来SOAP已经成功(至少部分地),其他两个失败了(而且可能是SOAP只有一个更好的营销团队),也就是说,SOAP确实允许不同的系统连接相当容易。前辈。话虽如此,它仍然有与COM / CORBA相同的缺点......它可能变得非常复杂。
我认为REST目前正在回归风格。这不是什么新鲜事,人们只是再看一眼。看看网络。它是REST,它已存在多年。从现在起5年后,人们将回顾并说出遗产和变革的必要性。这是软件开发的本质。一切都在循环中。
关于哪一个更好的辩论将会像标签与空间的争论一样。不同方面的人会发誓,一个人会更好。真的到最后,他们都达到了同样的目标。在某些情况下,肯定会有一个比另一个更好的解决方案,但最终在100%的情况下都不会优越。
答案 4 :(得分:2)
我们使用的是SOAP,但由于我们控制了两个消息传递端点(连接到我们服务器的Web上的胖客户端),我们认为XML的“通用语言”没有提供任何真正的好处。相反,我们正在尝试通过Google协议缓冲区进行二进制序列化,就像我们迄今为止所学到的一切。它有点像CORBA风格,但并不像CORBA那样让我脾气暴躁。仍然没有找到最适合RPC层,但很确定有效载荷将是协议缓冲区。
我想说的是,如果你控制对话的两个方面,那么绕过XML税就会有显着的效率优势。
答案 5 :(得分:1)
是的,有些人仍然(现在是2011年!)。我认为主要原因是MS WCF自动生成SOAP绑定。惊恐的事件。
答案 6 :(得分:0)
如果没有考虑问题是什么,换句话说,背景是什么,就不可能定义最佳技术解决方案。 REST和SOAP都有自己的位置。如果您拥有高流量站点和熟悉REST的开发受众,那么SOAP将是一个糟糕的选择,主要是因为邮件大小非常臃肿。如果您的小规模站点具有适度的开发预算,那么由于WSDL自动生成代理,SOAP将是一个更好的选择。为了进行公平的比较,应该提到的是,实现REST会话需要更多的开发时间,因此更昂贵,这对您的老板来说非常重要。
虽然SOAP是一个更复杂的协议,但根据我的经验,这并不能转化为可维护性问题。这是因为消息在HTTP上运行并且可以像REST消息一样轻松调试,并且主要平台上可用的SOAP堆栈非常可靠。
如果您的需求包括联合消息安全等复杂项目,SOAP的复杂性当然是一个优势。另一方面,经常在我的经验中看不到这些要求。 WS标准委员会可能容易受到一些YAGNI问题的影响。现在,Web服务通信已经司空见惯,但它最初变得更加简单。