最近,大公司如MS、Google、IBM等都在炒作一个概念就是云计算,如IBM跟欧盟 合作开展云计算,欧盟拨款1.7亿万欧元;Google与IBM 联合力推云计算模式;Yahoo! 也把宝押在了云计算上;我国也在无锡 跟IBM公司联合建立了一个云计算中心;有人说微软收购Yahoo!一个重要的考虑就是在Yahoo在云计算方面的领先地位,多少有点儿道理。那么,什么是云计算哪?我看到有一位推广自由开源的老先生把云计算(Cloud Computing)翻译成“云雾计算”着实是可笑,好多网友也在问什么是云计算,什么是雾计算,说明好多人对于云计算是一头雾水。云计算可不是“云雨”,可不是云山雾罩。
“云计算”(Cloud Computing)是分布式处理(Distributed Computing)、并行处理(Parallel Computing)和网格计算(Grid Computing)的发展,或者说是这些计算机科学概念的商业实现。许多跨国信息技术行业的公司如IBM、Yahoo和Google等正在使用云计算的概念兜售自己的产品和服务。云计算这个名词可能是借用了量子物理中的“电子云”(Electron Cloud),强调说明计算的弥漫性、无所不在的分布性和社会性特征。量子物理上有“电子云(electron cloud)”,在原子核周围运动的电子不是一个经验世界的轨道例如像天体一样的运行轨道,而是弥漫空间的、云状的存在,描述电子的运动不是牛顿经典力学而是一个概率分布的密度函数,用薛定谔波动方程来描述,特定的时间内粒子位于某个位置的概率有多大,这跟经典力学的提法完全不同。电子云有以下特性,概然性、弥漫性、同时性等等,云计算可能的确是来自电子云的概念,前今年就有所谓“无所不在的计算”,IBM有一个无所不在的计算叫“Ubiquitous “,MS(Bill)不久也跟着提出一个无所不在的计算“Pervade“,现在人们对无所不在的计算又有了新的认识,现在说是”Omnipresent “。但是,云计算的确不是纯粹的商业炒作,的确会改变信息产业的格局,现在许多人已经用上了Google Doc和Google Apps,用上了许多远程软件应用如Office字处理而不是用自己本地机器上安装这些应用软件,以后谁还会花钱买Office软件哪?还有许多企业应用如电子商务应用,例如要写一个交易程序,Google的企业方案就包含了现成的模板,一个销售人员根本没学习过Netbeanr也能做出来。这种计算和产业动向是符合开源精神的,符合SaaS(Software as a Service)趋势。现在有这样的说法,当今世界只有五台计算机,一台是Google的,一台是IBM的,一台是Yahoo的,一台是Amazon的,一台是微软的,因为这五个公司率先在分布式处理的商业应用上捷足先登引领潮流。Sun公司很早就提出说“网络就是计算机”是有先见之明的。
有以下五个主要原因使得分布式计算必然会越来越普遍,逐渐发展成主流的计算模式而取代集中式的大型计算机:
- 现在分布式系统的第一个原因就是因为他具有比集中式系统更好的性能价格比。你不要花几十万美元就能获得高效能计算。
- 多数应用本身就是分布式的。如工业企业应用,管理部门和现场不在同一个地方。
- 高可靠性。冗余不仅是生物进化的必要条件,而且也是信息技术。现代分布式系统具有高度容错机制,控制核反应堆主要采用分布式来实现高可靠性。
- 可扩展性。买一台性能更高的大型机,或者再买一台性能相同的大型机的费用都比添加几台PC的费用高得多。
- 高度灵活性。能够兼容不同硬件厂商的产品,兼容低配置机器和外设而获得高性能计算。
粗略地计算,目前的个人计算机每个CPU芯片的处理能力是200MIPS,就是每秒种执行
按照计算机操作系统的宗师Andrew S. Tanenbaum(AST)给分布式系统的的定义:“分布式系统是这样的系统,它运行在不具有共享内存的多台机器上,但在用户的眼里却像是一台计算机”。(引自《现代操作系统》,机械工业出版社,1999年中文版)。它的目标是让每个用户感觉联网的计算机是一个分时系统——就像使用个人计算机一样 ——而不是一个由许多计算机联合起来的集体,即使由五个节点组成的分布式系统也应该让用户感觉自己是在使用一台价值20万美元的大型计算机,唯一不寻常的感觉是处理速度提高了许多,别的没有什么不同。例如,这里有一个简单的例子,在机器A的用户要使用安装在机器B上用户的目录里的文件,A用户要使用远程登录命令rlogin B登录到机器B的目录上,那么这就不是一个真正的分布式系统,因为用户A意识到了另外一台机器的存在,分布式系统必须要做到,用户A登录到一个目录上的时候不知道自己是在本地机器上还是在远程机器上的目录上,对于用户A来说机器B是透明的,这就是分布式系统设计时考虑的“透明性”要求。其他有关的问题包括:分布式文件系统的问题,目录和文件访问机制以及一致性问题,分布式系统进程的通信问题等等。目前的云计算严格说还没有到达真正的分布式计算的语义学水平。