“僵尸”SOAP会阻碍企业发展吗?
有段时间,很多人在争论SOAP(还有WS-*服务)和REST,不知道你是否还记得?
这个问题对于很多企业来说,确实是第一次对SOA进行投资的最大障碍。最初,似乎人人都想拥抱SOAP,但是随后REST就逐渐成为香饽饽型的架构风格,尤其是Web对其更是趋之若鹜。在此之前,很多企业已经对SOAP进行了投资,这一点很大程度上得感谢微软的SharePoint,而且现在SharePoint也支持REST Web服务了。
最初我也对这场争论不屑一顾,认为就是个开发者的辩论而已,因为实在没有必要,开发者完全可以根据具体的环境需求来分别使用SOAP或者是REST。争论到最后似乎以各种各样的停火协议而终。SOAP主要用于企业SOA和REST Web服务,其实二者这样相安无事的运作也很久了,但是过去四年中,REST悄无声息而且非常快速的超过了SOAP,成为在API协议和风格中广泛使用的方法。
现在,超过73%的可编程WebAPI列表上写着使用REST(数据来源:ReadWriteWeb)。SOAP只占据了可编程Web API的17%。到底怎么了呢?
SaaS、云、还有面向Web的REST风格Web服务大量涌现,企业却还无法摆脱SOAP。现在企业的业务很多都被许可证(动辄上百万)、工具等锁定了,还有那些基于SOAP的遗留代码也成为庞然大物难以处置,而且这些东西好像一时半会也没法改变。同时,有意思的是在求职者的IT技能中,SOAP的排名也直线下滑,而Ajax则噌噌上升,因为Ajax使用的正是REST原则。
事已至此,可能就不在单纯的是开发人员的争辩了,因为对于SOAP的投资可能都要转移到云端了。基于SOAP和WSDL的Web服务其实有名无实,只是在传统的企业中间件架构风格上覆盖了一层Web。这样看来这就不是SOAP PK.REST了。现在问题是SOAP会不会阻碍企业转向面向Web的架构中去。
曾看到一个有趣的比喻,说SOAP没有死亡,就像一个僵尸,它拒绝死亡。你可能不同意这个论点,恐怕又要引起争论了。而且这种环境下还会引发一些集成问题。企业就需要额外的解决方案来协调SOAP和那些基于REST的Web。
本来是开发者打嘴架,现在就变成集成和业务一致性的IT困境。当然,这也让我们不得不反思,战略决策确实对企业产生了长期的战略影响。(注,其实技术本身就变化很快,对于战略决策人员来说也未尝不是一种难以预测的挑战。)
原文链接:http://club.techtarget.com.cn/space/viewspacepost.aspx?postid=5207&spaceid=264