REST 能够解决系统集成难题吗?

阅读数:2008 2010 年 6 月 29 日

话题:SOAREST架构

Steve Jones 在其最新一篇博文中写到,IT 并未成为企业的驱动力,而往往适得其反:

...... 现代世界大都由计算机来驱动,正是计算机使经济体正常运行,而计算机之间的集成在网络世界中很重要。IT 在解决企业方案方面的不成熟以及以技术为中心的方式使得 IT 完全没有成为引领业务需求的助推器,相反往往恰恰是 IT 在企业发展过程中拖了后腿。固执地沉醉于为根本不存在的问题寻找最纯粹的解决方案无异于在意淫,而这会对发达经济体造成很大的伤害。

在 Jones 看来,目前 IT 所处的境地比五年前更糟糕,主要基于以下事实:即关注于那些新鲜的“酷的”工具和技术,并始终在企业支持中错失良机,使 IT 越发变成自证预言。

Jones 认为在企业架构中最困难的事情之一就是系统集成,这也是有待解决的最复杂的任务之一。尽管如此,解决集成问题仍然是艺术多于科学:

......REST 未以任何显著的方式改进企业的这种现状。自 REST 被炒作以来已经 5 年有余了,而关于它与 WS-* 标准给企业带来的益处的比较也有 5 年了,期间它终究是海市蜃楼子虚乌有。

尽管 REST 被吹捧为应对所有集成难题的灵丹妙药,但是:

  • 对大型集成,进行大规模编程还是和 5 年前一样困难。
  • 厂商还得使用他们自己的设备,这就意味着创新更少、挑战更小,而成本更高,因为开源社区的人们花费时间在其中意的项目上,而这些项目往往并不能削减企业预算。

Jones 描述的问题是指包括 SAP,Oracle 和 IBM 在内的厂商都仍然十分支持 Web Services,而主流的开发者却正埋头尝试切换到 REST。结果是:

没人把他们真当回事儿。随着所有那些有头脑又有型的玩家们远离 REST……我们面临着企业 IT 内部的知识真空,IT 厂商所填补其中的是那些只有他们自己才懂的玩意儿。也就是不断增加私有扩展和软件的数量,各自为阵推行自身的计划。

Jones 给出的关于这种情况的一些例子包括:

......Siebel 的 Web Service 技术堆栈包括 OASIS 规范之前的 WS-Security 标准,该标准最后一次更新是在 2006 年...... 而 IBM 仍然把 MQSI 老马车作为“高级 ESB”来推动。

他继续指出,除了一些规范和一些较小的改进外,实际上在 Web Services 领域过去的 5 年中没有任何创新。反观 REST 也并未取得多大的成就。他认为问题是两方面的:

  1. 大部分 IT 人员似乎对其根本一无所知。现在我仍然惊讶于如此之少的 IT 从业人员明白它到底怎么回事儿,但真正让我吃惊的是 REST 拥有的推进力如此之少。
  2. “所有事情”都是人工完成的,而且仍然没有标准的方式了解你到底在团队间搞了些啥。

即便如此,REST 社区仍在努力改进这种情况,但成效不大,Jones 是这样说的:

那些热衷于 REST 的粉丝们会跳出来高谈阔论他们所做的有关 WEB 的那些东西有多棒。不管那真的有多棒多精彩,那都不是我的世界,我的世界是面对 300 个系统,从 20 多年前就存在的到最近新建的都有,并且我需要让它们一起协同工作起来。即便 REST 是正确的“架构”方案,其“程序”方案仍旧是错误的,因其会带我们走向深渊。尽管我的世界相对来说有较大的预算支持,但是……你知道吗,如果想赚取真金白银,针对 IT 市场最富有的部分不是很好吗?

Jones 总结道:WS,而不是 REST,才是系统集成的方案:

……过去 5 年是企业 IT 惨淡的 5 年。WS-* 标准是唯一可行的针对大规模编程的系统到系统的集成机制,但是它正处于停滞状态。REST 在前端有一些很酷的玩意儿可以提供给那些只投资最高端卓越人才的人,但是对一般企业环境而言那不是什么好玩意儿。

Jones 的这篇博文引发了相当强烈的反响。Joel Potisch 认为不应拿 WS 的方式来解读 REST:

我所注意到的唯一 REST 可能对企业 IT 所造成的伤害在于人们原本是想开发、部署那些正在运行的、可维护的、分布式系统的,结果却恰恰远离了企业 IT 并盲从于 WS-* 标准听命于厂商…... 用 WS*- 标准的方式来使用 REST 必然会使你倒退 5 年。REST 拥趸们并不会盲从于新鲜酷炫的玩意儿,而是认可 REST,恰当地使用它,来消除分布式系统中 90% 的共通性,使各种各样的问题顿时烟消云散。

Christopher Atkins 相信虽然 REST 是系统集成一个极佳的方法,但是在大多数情况下使用它需要仔细的规划:

...... 对我而言在企业 IT 系统集成中运用 REST 架构形式的主要挑战在于没有任何一个需要集成的系统是事先以 REST 的理念构建的...... 至少你需要...... 提供 REST 语义,例如,通过超文本定义内部状态机的明确的方法……通过同时定义简单协议以及暴露内部状态机的超媒体来消除集成接口的歧义,这对于网络来说绝对是扭转局面的事。我就是无法相信 REST 可以有效地应用于大多数 IT 商店的集成场景中;也不相信无论是 TPS 系统无 FSM 可暴露(例如,直接的 OLTP/RDBMS 应用)还是 IT“天才”无法意识到 REST 的益处。

Dan Creswell 认为主要的问题不是技术或者标准的使用,而是人员:

九成以上的 IT 从业人员并不那么聪明,大部分的甚至算不上好……这才是症结所在,而不在于他们所使用的什么……REST、WS-* 标准、数据库、Java 等,无论他们使用什么最终产生的结果都是废物。

尽管存在很多吹嘘空谈,我们很难去反对 Jones 的说法,不可否认的是 IT 行业目前正处于停滞不前的状态,而集成问题的难度不亚于从前或者被解决的速度并不比 5-6 年前快。时间能证明我们到底是回过头去使用 WS-* 标准,还是 REST 最终追赶上企业计算的步伐。


查看英文原文:Is REST Capable of Solving Systems Integration Issues?