摘要:随着计算机网络的出现,分布式计算成为可能。当用户需要完成任何任务时,分布式计算提供对尽可能多的计算机能力和数据的透明访问,同时实现高性能与高可靠性的目标。文章针对分布式系统的定义、应用、标准以及在如何构建基于志愿者计算的分布式系统上,给出了观点,并进行了分析。
关键词:分布式系统;网络:志愿者计算
一、前言
在20世纪50年代,计算机是串行处理机,一次运行一个作业直至完成。这些处理机通过一个操作员从控制台操纵,而对于普通用户则是不可访问的。在60年代,需求相似的作业作为一个组以批处理的方式通过计算机运行以减少计算机的空闲时间。同一时期还提出了其他一些技术,如利用缓冲、假脱机和多道程序等的脱机处理。70年代产生了分时系统,不仅作为提高计算机利用率的手段,也使用户离计算机更近了。分时是迈向分布式系统的第一步:用户可以在不同的地点共享并访问资源。80年代是个人计算的10年;人们有了他们自己专用的机器。
随着基于微处理器的系统所提供的出色的性能/价格比和网络技术的稳步提高,一个新的梦想成为可能一分布式计算。当用户需要完成任何任务时,分布式计算提供对尽可能多的计算机能力和数据的透明访问,同时实现高性能与高可靠性的目标。在过去的10年里,人们对分布式计算系统的兴趣迅猛发展。有关分布式计算的主题是多种多样的,许多研究人员正在研究关于分布式硬件结构和分布式软件设计的各方面问题以开发利用其潜在的并行性和容错性。
二、分布式系统定义
当讨论分布式系统时,我们面临许多以下这些形容词所描述的不同类型:分布式的、网络的、并行的、并发的和分散的。wwW.133229.cOm分布式处理是一个相对较新的领域,所以还没有一致的定义。与顺序计算相比、并行的、并发的和分布式的计算包括多个pe间的集体协同动作。这些术语在范围上相互覆盖,有时也交换使用。
●“并行的”意味着从一个单一控制线程对数据集的锁步(10ckstep)动作。在并行计算机级别上,单指令流多数据流(slmd)计算机就是一个使用多个数据处理单元在许多数据项上同时进行相同或相似操作的例子。
●“并发的”意味着某些动作可以以任意次序执行。例如,在更高级别上和在多指令流多数据流(mimd)并行计算机上进行部分独立的操作。
●“分布式的”意味着计算的成本或性能取决于数据和控制的通信。
如果一个系统的部件局限在一个地方,它就是集中式的;如果它的部件在不同地方,部件之间要么不存在或仅存在有限的合作,要么存在紧密的合作,它是分散式的。当一个分散式系统不存在或仅存在有限的合作时,它就被称作网络的;否则它就被称作分布式的,表示在不同地方的部件之间存在紧密的合作。在给出分布式系统具体定义的模型中,分布式系统可以用硬件、控制、数据这三个维度加以检验。
分布式系统一分布式硬件+分布式控制+分布式数据
三、分布式系统应用和标准
分布式系统被用在许多不同类型的应用中。以下我们列出了一些应用。对这些应用而言,使用分布式系统要比其他体系结构如单处理机和共享存储器多处理机更优越:
●并行和高性能应用。原则上,并行应用也可以在共享存储器多处理机上运行,但共享存储器系统不能很好地扩大规模以包括大量的处理机。hpcc(高性能计算和通信)应用一般需要一个可伸缩的设计,这种设计取决于分布式处理。
●容错应用。因为每个pe是自治的,所以分布式系统更加可靠。一个单元或资源(软件或硬件)的故障不影响其他资源的正常功能。
●固有的分布式应用。许多应用是固有分布式的。这些应用是突发模式(burstmode)而非批量模式(bulk mode)。这方面的实例有事务处理和internet java小程序。这些应用的性能取决于吞吐量(事务响应时间或每秒完成的事务数)而不是一般多处理机所用的执行时间。
对于一组用户而言,分布式系统有一个特别的应用称为计算机支持的协同工作(computer supported cooperativeworking,cscw)或群件(groupware),支持用户协同工作。另一个应用是分布式会议,即通过物理的分布式网络进行电子会议。同样,多媒体远程教学也是一个类似的应用。
由于在不同的平台上如:pc、工作站、局域网和广域网上可获得非常多样的应用,用户希望能超出他们pc的限制以获得更广泛的特性、功能和性能。不同网络和环境(包括分布式系统环境)下的互操作性变得越来越重要。为了达到互操作性,用户需要一个标准的分布式计算环境,在这个环境里,所有系统和资源都可用。
dce(分布式计算环境)是osf(开放系统基金会)开发的分布式计算技术的工业标准集。它提供保护和控制对数据访问的安全服务、容易寻找分布式资源的名字服务、以及高度可伸缩的模型用于组织极为分散的用户、服务和数据。dce可在所有主要的计算平台上运行,并设计成支持异型硬件和软件环境下的分布式应用。
dce已经被包括transvarl在内的一些厂商实现。transvarl是最早的多厂商组(multi-vendor team)的成员之一,它提出的建议已成为dc e体系结构的基础。在中可以找到利用dce开发分布式应用的指南。具有标准接口和协议的系统也叫做开放系统。
一些其它标准基于一个特别的模型,比如corba(公用对象请求代理程序体系结构),它是由omg(对象管理组)和多计算机厂商联盟开发的一个标准。corba使用面向对象模型实现分布式系统中的透明服务请求。工业界有自己的标准,比如微软的分布式构件对象模型(dcom)和sun microsystem公司的javabeans。
四、基于志愿者计算的分布式系统的应用
大规模计算资源共享是网格计算和其它基于internet的计算模式的首要目标之一。志愿者计算模型作为计算网格的一个重要分支,近年来在工程和科学计算中显示出越来越重要的作用。志愿者计算环境具有价格低廉、容易构建、高性能等优点。现有的计算平台包括seti@home,boinc。howu,paradropper,xtremweb,jngi,p3等都是基于志愿者计算模式,这些系统利用连接在internet上的计算资源(pc、集群等)执行计算任务,当这些资源处于空闲状态时,就启动屏保程序主动连接服务器节点,自动下载应用子程序和其对应的数据文件到本地执行。子任务计算完后,它们把计算临时结果返回给服务器,服务器最后把这些临时结果进行汇总来完成整个计算。执行子任务的机器称为志愿者,志愿者越多,计算能力越强。志愿者计算如今已被应用于高能物理、分子生物学、医学、天体物理学、气象研究等诸多领域。
五、结论
相信随着技术的发展,基于志愿者计算的分布式系统将会在越来越多的领域得到进一步的应用,从而提高服务器处理任务的能力,进一步提高分布式作业系统的性能。