在万维网(World Wide Web,WWW)出现之前,单机计算是计算的主要形式。自20世纪80年代以来,受WWW流行的影响,分布式计算得到飞速发展。分布式计算可以有效利用全球联网机器的闲置处理能力,助力缺乏研究资金的、公益性质的科学研究,加速人类的科学进程。下面详细介绍分布式计算的优点。
● 高性价比。分布式计算往往可以采用价格低廉的计算机。今天的个人计算机比早期的大型计算机具有更出色的计算能力,而且体积和价格大幅下降。再加上Internet连接越来越普及且价格低廉,大量互连计算机为分布式计算创建了一个理想环境。因此,分布式计算相对传统的小型机和大型机等单机计算具有更好的性价比。
● 资源共享。分布式计算体系反映了计算结构的现代组织形式。每个组织在面向网络提供共享资源的同时,独立维护本地组织内的计算机和资源。采用分布式计算,组织可非常有效地汇集资源。
● 可伸缩性。在单机计算中,可用资源受限于单台计算机的能力。相比而言,分布式计算有良好的伸缩性,对资源需求的增加可通过提供额外资源来有效解决。例如,将更多支持电子邮件等类似服务的计算机添加到网络中,可满足对这类服务需求增长的需要。
● 容错性。由于可以通过资源复制维持故障情形下的资源可用性,因此,与单机计算相比,分布式计算提供了容错功能。例如,可在网络的不同系统上维护数据库备份拷贝,以便当一个系统出现故障时,还可以访问其他拷贝,从而避免服务瘫痪。尽管不可能构建一个能在故障面前提供完全可靠服务的分布式系统,但在设计和实现系统时最大化系统的容错能力,是开发者的职责。
然而,无论何种形式的计算,都有其利与弊的权衡。分布式计算发展至今,仍然有很多需要解决的问题,其主要的挑战有:
● 多点故障。分布式计算存在多点故障情形。由于涉及多台计算机且都依赖于网络来通信,因此一台或多台计算机的故障或一条或多条网络链路的故障,都会导致分布式系统出现问题。
● 安全性低。分布式系统为非授权用户的攻击提供了更多机会。在集中式系统中,所有计算机和资源通常都只受一个管理者控制,而分布式系统的非集中式管理机制包括许多独立组织。分散式管理使安全策略的实现和增强变得更为困难,因此,分布式计算在安全攻击和非授权访问防护方面较为脆弱,并可能会影响到系统内的所有参与者。
● 大规模资源调度的复杂性。资源调度通常是一个NP-hard问题,大规模资源调度往往具有很高的复杂性和不确定性。