云计算、SaaS、网格、SOA和XTP实际上是一“树”多面
最近在几个演讲的场合中,都遇到“云计算和网格计算有何区别” 的问题。先确定一下云计算的定义,维基百科上的定义(英文版,中文版尚未同步)是:
“云”是对互联网的比喻,来自于互联网在电脑网络图中的画法…… 。这是一种将IT相关功能“作为服务”来提供的计算风格,……通过互联网(“在云端”)……用户不需具备专业知识去了解,或控制支撑这些服务的科技基础设施。
云计算是一个总的概念,包含了软件即服务( SaaS ) , Web 2.0和其他新近、众所周知的技术发展趋势。
往往和云计算造成混淆的是网格计算( Grid Computing “某种分布式计算,即一个虚拟的超级计算机由一群联网、松耦合的电脑所组成,联合行动来执行非常大的任务” ) ,和效用计算(Utility Computing “将计算资源,如计算和存储,作为计量服务包装,类似于传统的公用事业,如电力... ...。事实上,今日许多云计算的部署都是由网格来支撑...,采用与效用计算相同的收费模式,但云计算可以被看作是由网格-效用计算模式自然演化出来的下一步。
好友刘松有一个非常形象化的比喻,来解释云计算、SaaS、网格、SOA,乃至于上述的XTP这些新兴科技之间的关联 - 说白了其实他们是一体多面,我们看看下面这幅画作,我们可以把天上的鸟儿比作是SaaS服务的消费者;而树冠的部分,远看一撮撮的树丛,远看就像是一朵朵的云;鸟儿在树丛中选择合适的枝头做窝;一片片的树叶,就如同SOA架构下所提供的各个服务;而盘根错节的树根,就如同支撑SOA运行的计算和数据网格,与整棵树的健康生长息息相关;在这个生态关系中,鸟儿们不需要关注这棵树在地面以下的树根是什么样的结构,也不需、且无法负责任何涉及树木健康的事。
当应用本身的特性和要求不适合外包,运行在第三方的计算中心、直接通过互联网来操作的时候,维护、搭建基于网格的面向服务平台,自然就成了企业IT的任务。维基百科上同时提到:网格计算和传统的集群计算的区别,是网格往往更加松耦合、异构和地理分散。此外,虽然网格计算可用于某个专门的应用,但它的建设方式,往往是通过功能通用的网格软件库和中间件。
纵观未来中间件的发展趋势,分布式环境下各异构系统间通过更松耦合的服务形式进行互联、整合、进而协作,将逐渐成为主流。除了针对这些服务的规范、组装、管控的相应范畴(服务工程方法学、SCA、SOA治理)之外,作为支撑它们运行的平台,或许远看像朵云,近看像布料格子,要如何提供更高的可用性、更快的响应速度、更好的异构环境支持、更弹性的部署、更统一、全面的管理,将会是观察重点。
本文仅代表作者劳虎本人观点