----------------
我从个人资料收集为前提,去理解SOA和云计算。如有片面的地方,希望得到大家的扶正。
----------------
SOA是IBM提出来的,是个很有霸气的计划,有点像国家领导人对各个小市民说:我提出了一套宪法,以后大家必须遵守这个宪法。无论从理论上,还是技术上,SOA都是非常前卫正确的。
但是,however, nevertheless, 事实并没有朝着IBM的计划前进。我先不考虑有多少政府、机构靠SOA的概念去强迫升级系统赚钱,然后转入个人帐户实现贪污。实际上,SOA并不常见。现在请随便说说,在中国,有多少大型服务商提供了SOA?如果不用搜索引擎,我一个也想不到。
例如淘宝,中国C2C的头,他提供的API是TOP,这算是算开放的了。其他的呢?腾讯的在哪?开心网的呢?人人网的呢?携程的呢?即使有,我也没有见到他们大肆的宣传。也就证明了服务粒度的整合并没有实现。
先看看SOA的一篇文章:
http://www.ibm.com/developerworks/cn/webservices/ws-esb1/ 来自IBM关于企业总线的介绍。
里面提到几个关键的定义和叙述:
文章中,还有一段非常漂亮的列举,介绍了IBM提出SOA的思路来源:
让我们通过回顾软件开发的演化过程来看一看SOA出现的必然性:
这个是IBM所希望出现的未来,所以提出了SOA,然后提出了ESB(企业总线),希望能够进一步去松耦合各种服务。 这个是计算机不断进步的缩影,也是我们寻求不断偷懒的过程。 虽然,网上搜SOA,只看到褒奖,很少看到质疑,但是IBM的SOA实际上已经没落了。
----------------
我先提炼一下SOA的模型,他假设的是,世界上存在了接近无数的服务商,他们各自实力、地位、技术平等,就像淘宝、腾讯等。通过SOA,淘宝能够获得腾讯的服务,等等等等,从而大家降低了运营成本,最终实现共产主义,世界大同。
但是,事实上,这些有头有脸的服务商是少数的,而且是不愿意共享的。
剩下愿意共享的,都是希望别人多干点,我少干点, 但是我赚的钱要比别人多的。
这种现实,就决定了SOA(面向服务),是不可能再广大人民群众中普及的。为了挽回面子,IBM也许会把定位下降到了企业内部,说这个技术是适合企业内部运作的,例如中国移动、中石化、金盾之类的国家工程。
那么,SOA和以往经典的解决方案相比,有什么优势?没有!以往的系统,可能开虚拟专用网络实现内部互联;使用政府专线;开socket+私有协议实现数据互访。
从逻辑上,如果另外有新的服务要融合,代价是很高的。但是,有这种情况吗?没有!
这些政府、大企业如果开发新功能,怎么做?在原有系统上,符合原有协议继续开发。就这么简单。当大家退回到同一起跑线,去遵守原来系统的协议和去遵守SOA协议,双方代价是一样的时候,为什么用SOA?除了能捞一笔钱外,看不到任何好处。
所以,既然这个世界的80%财富掌握在了20%的人手上,那么必然由这20%的人为80%的人服务。于是这个就是云计算。
云计算本质,就是由几个超级大户,提供了理论上接近无限的资源,让众多的小市民去使用。
也许云计算的官方辞令上,描绘着美好的未来,描绘着一个人人平等,相互合作的未来,大家把自己的服务接入到云,能实现互用等等的第二代SOA理想, 但是这个同样是不可能出现的。
云计算的本质,就是主从关系而不是平等关系。未来大部分服务依然由少数大型服务商提供,即使偶尔有几个天才提供了些不错的服务,也很快被大型服务商吃掉合并。
----------------
在国外大玩概念的时候,技术学却没有发生很大变化。变的,只是我们看事物的切入点。web service最终也许只能沦落为另外一种传输协议,变成和ftp/smtp之类同档次的协议。人人平等、相互配合上是不可能实现的。