分布式系统对比集中式系统优点
首先来介绍一下什么是分布式系统,分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。
而集中式系统主要指IBM、HP等小型机以上档次的系统,一个主机带多个终端。终端没有数据处理能力,运算全部在主机上进行。现在的银行系统,大部分都是这种集中式的系统,此外,在大型企业、科研单位、军队、政府等也有分布。集中式系统,主要流行于上个世纪。现在还在使用集中式系统的,很大一部分是为了沿用原来的软件,而这些软件往往很昂贵。
分布式与集中式对比有以下优点:
系统倾向于分布式发展潮流的真正驱动力是经济。25年前,计算机权威和评论家Herb Grosch指出CPU的计算能力与它的价格的平方成正比,后来成为Grosch定理。也就是说如果用户付出两倍的价钱,就能获得四倍的性能。这一论断与当时的大型机技术非常吻合,因而使得许多机构都尽其所能购买最大的单个大型机。
随着微处理机技术的发展,Grosch定理不再适用了。到了二十一世纪初期,人们只需花几百美元就能买到一个CPU芯片,这个芯片每秒钟执行的指令比80年代最大的大型机的处理机每秒钟所执行的指令还多。如果你愿意付出两倍的价钱,将得到同样的CPU,但它却以更高的时钟速率运行。因此,最节约成本的办法通常是在一个系统中使用集中在一起的大量的廉价CPU。所以,倾向于分布式系统的主要原因是它可以潜在地得到比单个的大型集中式系统好得多的性价比。实际上,分布式系统是通过较低廉的价格来实现相似的性能的。
与这一观点稍有不同的是, 发现微处理机的集合不仅能产生比单个大型主机更好的性能价格比,而且还能产生单个大型主机无论如何都不能达到的绝对性能。例如,按二十一世初期的技术, 能够用10000个现代CPU芯片组成一个系统,每个CPU芯片以50 MIPS(每秒百万指令)的速率运行,那么整个系统的性能就是500,000 MIPS。而如果单个处理机(即CPU)要达到这一性能,就必需在2×10-12 秒(2 微微秒,0.002纳秒)的时间内执行一条指令,然而没有一个现存的计算机能接近这个速度,从理论上和工程上考虑都认为能达到这一要求的计算机都是不可能存在的。理论上,爱因斯坦的相对论指出光的传播速度最快,它能在2 微微秒内传播0.6毫米。实际上,一个包含于边长为0.6 毫米大小的立方体内的具有上面所说的计算速度的计算机产生大量的热量就能将它自己立即熔掉。所以,无论是要以低价格获得普通的性能还是要以较高的价格获得极高的性能,分布式系统都能够满足。
另一方面,一些作者对分布式系统和并行系统进行了区分。他们认为分布式系统是设计用来允许众多用户一起工作的,而并行系统的唯一目标就是以最快的速度完成一个任务,就像 的速度为500,000 MIPS的计算机那样。 认为,上述的区别是难以成立的,因为实际上这两个设计领域是统一的。 更愿意在最广泛的意义上使用“分布式系统”一词来表示任何一个有多个互连的CPU协同工作的系统。
建立分布式系统的另一原因在于一些应用本身是分布式的。一个超级市场连锁店可能有许多分店,每个商店都需要采购当地生产的商品(可能来自本地的农场)、进行本地销售,或者要对本地的哪些蔬菜因时间太长或已经腐烂而必须扔掉作出决定。因此,每个商店的本地计算机能明了存货清单是有意义的,而不是集中于公司总部。毕竟,大多数查询和更新都是在本地进行的。然而,连锁超级市场的高层管理者也会不时地想要了解他们还有多少甘蓝。实现这一目标的一种途径就是将整个系统建设成对于应用程序来说就像一台计算机一样,但是在实现上它是分布的,像 前面所描述的一个商店有一台机器。这就是一个商业分布式系统。
另一种固有的分布式系统是通常被称为计算机支持下的协同工作系统(CSCW,Computer Supported Cooperative Work)。在这个系统中,一组相互之间在物理上距离较远的人员可以一起进行工作,例如,写出同一份报告。就计算机工业的长期发展趋势来说,人们可以很容易的想像出一个全新领域--计算机支持的协同游戏(CSCG:Computer Supported Cooperative Games)。在这个游戏中,不在同一地方的游戏者可以实时的玩游戏。你可以想像,在一个多维迷宫中玩电子捉迷藏,甚至是一起玩一场电子空战,每个人操纵自己的本地飞行模拟器去试着击落别的游戏者,每个游戏者的屏幕上都显示出其飞机外的情况,包括其它飞入它的视野的飞机。
同集中式系统相比较,分布式系统的另一个潜在的优势在于它的高可靠性。通过把工作负载分散到众多的机器上,单个芯片故障最多只会使一台机器停机,而其它机器不会受任何影响。理想条件下,某一时刻如果有5%的计算机出现故障,系统将仍能继续工作,只不过损失5%的性能。对于关键性的应用,如核反应堆或飞机的控制系统,采用分布式系统来实现主要是考虑到它可以获得高可靠性。
最后,渐增式的增长方式也是分布式系统优于集中式系统的一个潜在的重要的原因。通常,一个公司会买一台大型主机来完成所有的工作。而当公司繁荣扩充、工作量就会增大,当其增大到某一程度时,这个主机就不能再胜任了。仅有的解决办法是要么用更大型的机器(如果有的话)代替现有的大型主机,要么再增加一台大型主机。这两种作法都会引起公司运转混乱。相比较之下,如果采用分布式系统,仅给系统增加一些处理机就可能解决这个问题,而且这也允许系统在需求增长的时候逐渐进行扩充。表1中总结了以上这些优点。