分布式系统
1.分布式系统定义[1]
当讨论分布式系统时,我们面临许多以下这些形容词所描述的 同类型: 分布式的、删络的、并行的、并发的和分散的。分布式处理是一个相对较新的领域,所以还没有‘致的定义。与顺序计算相比、并行的、并发的和分布式的计算包括多个PE问的集体协同动作。这些术语在范围一卜相互覆盖,有时也交换使用。
*“并行的”意味着从一个单一控制线程对数据集的锁步(1ockst ep)动作。
在并行计算机级别上, 指令流多数据流(SIMD)计算机就是一个使用多个数据处理单元在许多数据项上同时进行相同或相似操作的例子。
*“并发的”意味着某些动作可以以任意次序执行。例如,在史岛级别,卜和在多指令流多数据流(MIMD)并行计算机上进行部分独立的操作。
*“分布式的”意味着计算的成本或性能取决于数据和控制的通信。
如果 个系统的部件局限在一个地方,它就是集中式的:如果它的部件在不同地l20方,部件之间要么不存在或仅存在有限的合作,要么存在紧密的合作,它是分散式的。
当一个分散式系统不存在或仅存在有限的合作时,它就被称作网络的;否则它就被称作分布式的,表示在不同地方的部件之间存在紧密的合作。在给出分布式系统具体定义的模型中,分布式系统可以用硬件、控制、数据这三个维度加以检验。
分布式系统=分布式硬件+分布式控制+分布式数据
2.分布式系统应用和标准[1]
分布式系统被用在许多不同类型的应用中。以下我们列出了一些应用。对这些应用而言,使用分布式系统要比其他体系结构如处理机和共享存储器多处理机更优越:
- 并行和高性能应用
原则上,并行应用也可以在共享存储器多处理机上运行,但共享存储器系统不能很好地扩大规模以包括大量的处理机。HPCC(高性能计算和通信)应用一般需要一个可伸缩的设计,这种设计取决于分布式处理。
- 容错应用
因为每个P E是自治的,所以分布式系统更加可靠。一个单元或资源(软件或硬件)的故障不影响其他资源的正常功能。
- 固有的分布式应用
许多应用是固有分布式的。这些应用是突发模式(burstmode)而非批量模式(bulk mode)。这方面的实例有事务处理和Internet Javad,程序。
这些应用的性能取决于吞吐量(事务响应时阳J或每秒完成的事务数)而不是一般多处理机所用的执行时间。
对于一组用户而言, 分布式系统有一个特别的应用称为计算机支持的协同工作(computer supported Cooperati veworking,CSCW)或群件(groupware), 支持用户协同工作。另一个应用是分布式会议, 即通过物理的分布式网络进行电子会议。同样,多媒体远程教学也是一个类似的应用。
由于在不同的平台上如:Pc、工作站、局域网和广域网上可获得非常多样的应用,用户希望能超出他fliP c的限制以获得更广泛的特十牛、功能和性能。不同网络和环境(包括分布式系统环境)下的q 操作性变得越来越重要。为了达到互操作性,用户需要一个标准的分布式计算环境,在这个环境里,所有系统和资源都可用。
DCE (分布式计算环境)是OSF (开放系统基金会)开发的分布式计算技术的工业标准集。它提供保护和控制对数据访问的安全服务、容易寻找分布式资源的名字服务、以及高度可伸缩的模型用于组织极为分散的用户、服务和数据。D C E可在所有主要的计算平台上运行, 并设计成支持异型硬件和软件环境下的分布式应用。
DCE已经被包括TRANSVARL在内的一些r一商实现。TRANSVARL是最早的多厂商组(multi vendor team)的成员之一,它提出的建议已成为DC E体系结构的基础。在中可以找到利用DCE开发分布式应用的指南。具有标准接口和协议的系统也叫做开放系统。
一些其它标准基于一个特别的模型,比如CORBA (公用对象请求代理程序体系结构),它是由OMG (对象管理组)和多计算机厂商联盟开发的一个标准。CORBA使用面向对象模型实现分布式系统中的透明服务请求。
工业界有自己的标准,比如微软的分布式构件对象模型(DCOM)和Sun Microsystem公司的Java Beans。
3.基于志愿者计算的分布式系统的应用[1]
大规模计算资源共享是网格计算和其它基于Internet 的计算模式的首要目标之。志愿者计算模型作为计算网格的一个重要分支,近年来在工程和科学计算中显示出越来越重要的作用。志愿者计算环境具有价格低廉、容易构建、高性能等优点。现有的计算平台包括SETI @home,BOINC,HowU,Paradropper,XtremWeb,JNGI,P3等都是基于志愿者计算模式,这些系统利用连接在Internet上的计算资源(PC、集群等)执行计算任务, 当这些资源处于空闲状态时, 就启动屏保程序主动连接服务器节点, 自动下载应用子程序和其对应的数据文件到本地执行。子任务计算完后,它们把计算临时结果返回给服务器,服务器最后把这些临时结果进行汇总来完成整个计算。执行子任务的机器称为志愿者,志愿者越多,计算能力越强。
志愿者计算如今已被应用于高能物理、分子生物学、医学、天体物理学、气象研究等诸多领域。
相信随着技术的发展,基于志愿者计算的分布式系统将会在越来越多的领域得到进一步的应用, 从而提高服务器处理任务的能力,进一步提高分布式作业系统的性能。