狙击水蒸汽
这种从单一产品到服务的转变的重要性很难被夸大。某种意义上说,它让组成电子水蒸汽的各种服务小雨滴成型,继而形成云。计算向各种方向扩展,服务于更多用户。新架构也帮助那些对技术不太懂行的人也能运用类似Iceberg那样的工具形成他们自己的云。
就像数据中心的工业化一样,这种架构的转变曾有一个历史上的先驱:15世纪活字印刷的发明。那时候,印刷本身不是个新概念,但古腾堡和他的合作者们想出了大规模印刷的技术,造出了金属字母模具,这样就可以快速组装而且可以反复使用了。
与此相似,模块化的概念在计算的早期就出现了。“计算机科学的全部就是写更少的代码。写更少代码的技术是什么?子程序。”微软创始人比尔盖茨在最近的一次访谈中这么说。子程序是在一段程序中可以被重用的部分,就像活字那样。比尔盖茨说,活字的概念一直以来让子程序的原理传播的更广。
然而他说的这件事并没有发生,主要因为计算的成本跌的比通信的成本还快。越来越便宜同时越来越强劲的芯片使得大型主机到微机到个人电脑再到手持设备的趋势成为可能。但连接这些设备却还是那么费劲还很贵,这就意味着这些设备都只能用一些又大又蠢的程序跑它们自己的数据。现在,有了越来越便宜的带宽和越来越多的无线网络连接,计算就可以被重新组合成各种专门的服务,或者比尔盖茨说的子程序:“我们生活在…一个子程序可以跑在因特网上另一台计算机上的世界。”
古腾堡的天才能力之一就表现在他认识到字母模具的高度必须一样才能被轻松组装。同样的,计算服务要能正常工作也必须有强健的技术标准。几年之前这还是IT产业无法驾驭的。大部分公司都坚持它们的专利技术以锁定客户。日趋便宜的通信技术再一次带来了变革。因特网的成功显示出开放标准的好处,迫使供应商们同意以统一的方式让他们的产品一起协作。一个结果是一组叫做“网络服务”的标准栈。
面向服务的架构刚开始是出现在开源软件里,后来大的软件供应商迅速接受了这个概念,因为他们对此有急迫的需求,AMR研究公司的Jim Shepherd说。这些大公司必须找到方法去揭开现有产品形成的结,不然他们自己就会被勒个半死。客户需要更灵活而有扩展性的程序。
回过头再来想想关于美食的例子。预先烹制过的食物很难再改变了,传统软件应用也是一样。与此相反,一家餐厅可以很容易地改变菜单和运营风格。同样的,基于SOA的软件使得公司可以改变他们的业务流程,比如安排订单收款的流程。
SAP,德国软件公司,是最早把SOA推向前台的公司之一。从2003年开始,他开发出一套新的企业软件套件,去掉了单独的应用,比如跟踪企业财务或管理客户关系的应用。与此相反,它引入了一套可以被重用的组件,可以随意组装在一起。
IBM也一样是SOA和网络服务的热情支持者。它的路数却和SAP不太一样,主要是考虑到它并不卖业务应用而是靠管理底层计算基础架构的IT服务和软件赚钱。IBM应用SOA主要用来帮助企业整合他们日益复杂和相异的IT系统。它的软件把这些系统转变成一套服务,可以被编组为不同的业务流程。
这其实是异曲同工:构造适合企业业务需要的IT系统,让它们能够互相连接。“当我想干点新的事情”,IBM软件集团老大Steve Mills解释说,“我并不需要构建新的应用,而是使用已有的组件。”对于领导SAP新软件套件开发的Peter Zencke来说,其最激动人心的功能是“任何流程组件都是一种服务,而这种服务可以由别的公司来提供。”
尽管数百万美刀已经砸向SOA的营销活动,但SOA还没有真正蓬勃发展起来。不过许多基于网络的应用依赖于这个概念。主要的例子是是Google地图,当这个在线巨头发布这项服务之后,开发者们迅速搞定了如何把Google地图和别的信息源结合在一起。比如Housingmaps.com就是这么诞生的,它是结合了Google地图和分类广告网站Craiglist的租售信息。这是最初的几个“混搭”(mash-up)网站,就是指这种内容和技术上的组合。
从此开始这类混搭网站的数量开始井喷,主要归功于微软的Popfly和雅虎的Pipes服务。本质上这些都是图形化的编程工具。用户拖放各种“模块”—提供图片、新闻和搜索结果的数据源—把它们拼在一起。
大多数这类混搭网站还只是玩物,不过提供这类软件当作服务提供的公司已经开始提供相似的组合了。四月份Salesforce.com和Google声明他们将整合在线服务。Salesforce的用户现在可以很快的转换到Google的基于网页的应用上,从而帮助更好的管理客户关系。

▲
小店的公司已经开始编织服务网。比如硅谷的一家新公司OpSource,给其他软件及服务(SaaS)和网络公司提供基本服务。另一家加利福尼亚的新秀TriCipher,对网页应用进行用户认证。它的一个组成部分叫Ribbit,可以在其提供的服务中加入语音通讯服务。
然而软件云最后不会成为上千种提供专门服务的庞大星系。相对其复杂性来说,就算构建面向服务的架构也“没有银弹”,这是早期计算机科学家Frederick Brooks的著名短语。(《没有银弹》是Fred Brooks在1987年所发表的一篇关于软件工程的经典论文。该论述中强调真正的银弹并不存在,而所谓的银弹则是指没有任何一项技术或方法可以能让软件工程的生产力在十年内提高十倍。—译者注)比如说,尽管网络服务使得在线提供的服务可以互连,同步它们的数据仍然昂贵。同时把自己的业务押宝在简单的混搭网站上对任何公司都说不通。
随着软件市场的成熟,两种阵营正在形成:集成的应用套件和别人可以在其上构建程序的平台。这两种公司都在成型。在应用这一边又Google Apps和Zoho,它们更加综合。它包括了总共18种应用,包括字处理、项目管理和客户关系管理(CRM) 。
平台这一边呢,早已有好多,各种形态和大小的都有。企业应用方面,SAP已经有了Netweaver。Oracle有差不多的Fusion。去年,Salesforce发布了一个“平台即服务”,让其他公司使用支持它的CRM的各种装配服务。
最近提供客户服务的平台如雨后春笋般出现。社交网络公司Facebook在2007年成为一个先驱。其他大的网络公司都紧随其后:Google是App Engine,雅虎是Y!OS,微软是被称作Windows Strata的“云操作系统”。有人预言不同平台的竞争就如同微软的Windows和苹果的Macintosh之间的史诗之战。