-
第一章:绪论
1.分布式系统的优点
(1)可扩充性。随着用户需求的增长,功能和性能方面的要求增加,从而增加新的节 点数,不必像单机系统那样替换整个系统。分布计算系统容易通过扩大规模以包括更多 的资源。
(2)高的性价比。在分布计算系统中,可以通过增加计算机的数目,提高并行程度而 得到所需要的性能。由于具备可扩充性,可以避免较大的初始投资,以及可以用多个微型 机代替一个大型机,从而可以获得很高的性价比。
(3)资源共享。系统中的硬件和软件资源如外部设备、文件系统和数据库等可以被 更多的用户所共享,甚至连 CPU 和内存等资源也可被共享。
(4)可靠性。由于控制、数据、软件和硬件的多重性和分散性(不存在集中环节)及结 构上的可动态重组提高了可靠性,分布计算系统具有在系统中当某个部分出现了故障的 情况下继续运行的潜力。
(5)支持固有的分布式应用。分布计算系统与许多应用场合相适应,如银行、铁路、 商业等本来就分散而又必须箱互协调的行业。
2.分布式计算系统透明性概念
(1)名字透明。指对象的命名在全局是唯一的,不管在什么地方访问该对象使用的 名字都是一样的。这样一来,在系统中移动一个程序不影响它的正确性.
(2)位置透明。指资源的名字中不包含该资源的位置信息。这样一来,当该资源在 系统中移动时,在资源名字保持不变的情况下,原有的程序都可正常运行。在有些系统中 常在文件名前加上地址信息,这有利于文件的定位,但是当该文件移动到另外一个地方 时,名字必须改变。当然,实现位置透明时必须有一种机构能以较小的系统开销找到资源 所在的地点。位置透明还有助于实现多副本存储。多副本文件具有高可靠性、高利用率 的优点,每份副本的名字都应该一样,与存放地点无关,否则将一个文件复制到多个地方 很困难,当一些副本不能被访问而要自动访问其他副本时也很困难。与文件类似,系统服 务、支持程序,公用的应用程序等也应该与它们的执行地点无关,以便于移动。 (3)访问透明。指用户不用区分本地资源还是远程资源,访向本地资源和访问远程 迁移透明需要名字透明的支持。
(4)迁移透明。指用户不知道一个资源或者自己的作业是否迁移到另外一个位置。
(5)复制透明。复制透明允许文件或其他对象的多个副本同时在系统中存在,但是 这种情况对用户是透明的,对对象的修改应同时作用在对象的所有副本上。
(6)并发和并行透明。指多个进程可能并发或并行访问同一个资源,或一个进程同 时使用多个资源,在此情况下不会产生相互干扰和破坏。
(7)失效透明。指系统中的某一部分失效时,整个系统不会失效,仍可正常运行。
3.分布式系统透明性的优点
(1)软件的研制变得容易,因为访问资源的方法只有一种,软件的功能与其位置无关。
(2)系统的某些资源变动时不影响或较少影响应用软件。
(3)系统的资源冗余(硬件冗余和软件冗余)使操作更可靠,可用性更好。透明性使
得在实现这种冗余的时候,各种冗余资源的互相替换变得容易。
(4)在资源操作方面,当把一个操作从一个地方移到若干地方时没有什么影响。
4.影响透明性的因素
影响分布式系统透明性的因素是多方面的,这些因素主要有系统的异构性、个人计算机的局部自治性和网络互连.
1.系统的异构性对透明性的影响:(1)通过网络服务松散集成.(2)共享不同语言的程序(3)在已有的多个系统上加入前端软件(4)使用透明的操作系统桥(5)聚合法.
2.个人计算机的局部自治性对透明性的影响:(1)资源控制方面(2)命名方面
5.分布式计算系统的组成结构:
(1)硬件/固件层(硬核)。该层包括处理器、主存储器、I/O 设备、键盘、终端及用于 统设计的,所以把这些部件应用于分布计算系统会存在一些问题。
(2)分布式操作系统的内核层。分布计算系统的核心是分布式操作系统,而分布式 操作系统的核心是分布式操作系统的内核。内核的最基本、最重要的功能是进程通信 (IPC),除此之外,还包括进程的同步机制、进程管理、存储管理和 I/O 管理等功能。
(3)分布式操作系统的服务层。这一层的作用是为各种广泛的应用提供一些基本 的,共同的服务,包括实现基本的资源分配和复用。这一层由两个子层组成:服务支持子 层和服务子层。服务支持子层对分布式操作系统和应用层可以共同使用的很多操作、服务、表示格式 等作了若干约定,以便在增加新的服务时不必重复解决共同的问题、有利于使用统一的接 口语言,方便地使用服务设备。这些约定又分成两组。一组规定了报文(数据报文和控制 一般语法等。另一组规定了应用程序、服务员程序、资源及其相互作用的逻辑结构模型, 报文)的格式和编码方法、异构型系统中数据和参数格式及编码的转换、请求/回答报文的 给出为大多数服务所共用的操作的请求和回答的标准语义,以及处理大多数服务共有问 模型。
6.基于中间件的分布计算系统的组成结构
为了使得分布式应用程序的开发和集成尽量简单,大多数中间件是基于某种模型来 描述通信和分布的。中间件模型一般包括如下类型。
(1)一个相对简单的模型是将任何资源作为文件来对待。这种方案最初由 UNIX 系 统采用,后来被 Pike 等在 Plan 9 中严格遵守'”。在 Plan 9 中,所有的资源,包括键盘、鼠 标、硬盘、网络接口等 VO设备都被当作文件。无论一个文件是远程的还是本地的,在本 质上是没有区别的。因为一个文件能够被几个进程共享,进程通信可以简化到对同一个 文件访问的问题。
(2)以分布式文件系统( Distributed File Systems,DFS)为中心的中间件模型。这种模 型类似于第一种模型,但并不像 Plan 9 那样严格。在许多情况下,这种中间件实际上只在 支持传统文件的分布透明性方面比网络操作系统前进了一步,所谓传统文件,就是那些只 用于存放数据的文件。例如,一个进程往往被要求明确地指出在哪台机器上执行。基于 分布式文件系统的中间件表现出了良好的可扩充性,因此比较流行。
(3)基于远程过程调用(Remote Procedure Call, RPC)的中间件模型。这种模型主要 集中在隐匿网络通信,隐匿网络通信的方式是允许一个进程调用在一个远程机器上实现 的过程。当调用一个远程过程的时候,有关的参数会以透明的方式传送到远程的机器上, 然后在此远程机器上执行该过程,执行结果回送给调用者。这个过程调用似乎就发生在 本地,调用进程不必关心发生网络通信的事实,但是或许性能有些下降。
(4)基于分布式对象(Distributed Objects)的中间件模型。随着面向对象技术的流行, 面向对象的技术也用于到了中间件中。很明显,如果一个调用可以越过机器边界,那么以 透明的方式调用一个对象也是可能的,所以许多中间件系统给出了分布式对象的概念。 分布式对象的本质是每个对象都提供了一个接口,该接口隐匿了对象的内部细节,接口包 含了这个对象提供的一些方法,程序唯一能够见到的是这个对象的接口。一个分布式对 象往往是在拥有该对象的一台机器上实现,而它的接口在许多其他的机器上可用。当一 个进程引用一个方法时,进程所在机器上的接口将此引用转换成一个报文传送给对应的 对象,该对象执行所请求的方法并回送结果。同 RPC 的情况一样,进程完全可以不用关心 网络通信的细节。
(5)基于分布式文档(Distributed Documents)的中间件模型。最能简化网络系统使用 的可能就是 World Wide Web 了,这种简单的访问方式要归功于 Web 采用了非常有效的分 布式文档模型。在 Web 模型中,信息被组织成文档,每个文档透明地存放在某台机器上, 文档里包含有一些指向其他文档的链接(link)。通过一个链接,该链接所指定的文档会被 从它存放的位置取到用户的机器上并显示到显示器上。文档并不仅限于文本信息,Web 模型还支持声音文件、视频文件及交互式图形文件。