《分布式系统:概念与设计》一2.4.1 交互模型

2.4.1 交互模型

2.3节对系统体系结构的讨论表明分布式系统由多个以复杂方式进行交互的进程组成。例如:

  • 多个服务器进程能相互协作提供服务,前面提到的例子有域名服务(它将数据分区并复制到互联网中的服务器上)和Sun的网络信息服务(它在局域网的几个服务器上保存口令文件的复制版本)。
  • 对等进程能相互协作获得一个共同的目标。例如,一个语音会议系统,它以类似的方式分布音频数据流,但它有严格的实时限制。

大多数程序员非常熟悉算法的概念——采取一系列步骤以执行期望的计算。简单的程序由算法控制,算法中的每一步都有严格的顺序。62由算法决定程序的行为和程序变量的状态。这样的程序作为一个进程执行。由多个上面所说的进程组成的分布式系统是很复杂的。它们的行为和状态能用分布式算法描述——分布式算法定义了组成系统的每个进程所采取的步骤,包括它们之间消息的传递。消息在进程之间传递以便在它们之间传递信息并协调它们的活动。
每个进程执行的速率和进程之间消息传递的时限通常是不能预测的。要描述分布式算法的所有状态也非常困难,因为它必须处理所涉及的一个或多个进程的故障或消息传递的故障。
进程交互完成了分布式系统中所有的活动。每个进程有它自己的状态,该状态由进程能访问和更新的数据集组成,包括程序中的变量。属于每个进程的状态完全是私有的——也就是说,它不能被其他进程访问或更新。
本节讨论分布式系统中影响进程交互的两个重要因素:

  • 通信性能经常是一个限制特性。
  • 不可能维护一个全局时间概念。
    通信通道的性能 在我们的模型中,通信通道在分布式系统中可用许多方法实现,例如,通过计算机网络上的流或简单消息传递来实现。计算机网络上的通信有下列与延迟(latency)、带宽(bandwidth)和抖动(jitter)有关的性能特征:
  • 从一个进程开始发送消息到另一个进程开始接收消息之间的间隔时间称为延迟。延迟包括:

—第一串比特通过网络传递到目的地所花费的时间。例如,通过卫星链接传递消息的延迟是无线电信号到达卫星并返回的时间。
—访问网络的延迟,当网络负载很重时,延迟增长很快。例如,对以太网传送而言,发送站点要等待网络空闲。
—操作系统通信服务在发送进程和接收进程上所花费的时间,这个时间会随操作系统当前的负载的变化而变化。

  • 计算机网络的带宽是指在给定时间内网络能传递的信息总量。当大量通信通道使用同一个网络时,它们就不得不共享可用的带宽。
  • 抖动是传递一系列消息所花费的时间的变化值。抖动与多媒体数据有关。例如,如果音频数据的连续采样在不同的时间间隔内播放,那么声音将严重失真。

计算机时钟和时序事件 分布式系统中的每台计算机有自己的内部时钟,本地进程用这个时钟获得当前时间值。因此,在不同计算机上运行的两个进程能将时间戳与它们的事件关联起来。但是,即使两个进程在同时读它们的时钟,它们各自的本地时钟也会提供不同的时间值。这是因为计算机时钟和绝对时间之间有偏移,更重要的是,它们的漂移率互不相同。术语时钟漂移率(clock drift rate)指的是计算机时钟偏离绝对参考时钟的比率。即使分布式系统中所有计算机的时钟在初始情况下都设置成相同的时间,它们的时钟最后也会相差巨大,除非进行校正。
有几种校正计算机时钟的时间的方法。例如,计算机可使用无线电接收器从全球定位系统(GPS)以大约1μs的精度接收时间读数。但GPS接收器不能在建筑物内工作,同时,为每一台计算机增加GPS在费用上也不合理。相反,具有精确时间源(如GPS)的计算机可发送时序消息给网络中的其他计算机。在两个本地时钟时间之间进行协商当然会受消息延迟的影响。有关时钟漂移和时钟同步的更详细的讨论见第14章。
交互模型的两个变体 在分布式系统中,很难对进程执行、消息传递或时钟漂移所花的时间设置时间限制。两种截然相反的观点提供了一对简单模型:第一个模型对时间有严格的假设,第二个模型对时间没有假设。
同步分布式系统:Hadzilacos和Toueg[1994]定义了一个同步分布式系统,它满足下列约束:

  • 进程执行每一步的时间有一个上限和下限。
  • 通过通道传递的每个消息在一个已知的时间范围内接收到。
  • 每个进程有一个本地时钟,它与实际时间的偏移率在一个已知的范围内。

对于分布式系统,建议给出合适的关于进程执行时间、消息延迟和时钟漂移率的上界和下界是可能的。但是达到实际值并对所选值提供保证是比较困难的。除非能保证上界和下界的值,否则任何基于所选值的设计都不可靠。但是,按同步系统构造算法,可以对算法在实际分布式系统的行为提供一些想法。例如,在同步系统中,可以使用超时来检测进程的故障,参见下面的2.4.2节。
同步分布式系统是能够被构造出来的。所要求的是进程用已知的资源需求完成任务,这些资源需求保证有足够的处理器周期和网络能力;还有要为进程提供漂移率在一定范围内的时钟。64
异步分布式系统:许多分布式系统,例如互联网,是非常有用的,但它们不具备同步系统的资格。因此我们需要另一个模型。异步分布式系统是对下列因素没有限制的系统:

  • 进程执行速度——例如,进程的一步可能只花费亿万分之一秒,而进程的另一步要花费一个世纪的时间,也就是说,每一步能花费任意长的时间。
  • 消息传递延迟——例如,从进程A到进程B传递一个消息的时间可能快得可以忽略,也可能要花费几年时间。换句话说,消息可在任意长时间后接收到。
  • 时钟漂移率——时钟漂移率可以是任意的。

异步模型对执行的时间间隔没有任何假设。这正好与互联网一致,在互联网中,服务器或网络负载没有内在的约束,对像用FTP传输文件要花费多长时间也没有限制。有时电子邮件消息要花几天时间才能到达。下面的“Pepperland协定”部分说明在异步分布式系统中达成协定的困难性。
即使有这些假设,有些设计问题也能得到解决。例如,虽然Web并不总能在一个合理的时间限制内提供特定的响应,但浏览器的设计可以做到让用户在等待时做其他事情。对异步分布式系统有效的任何解决方案对同步系统同样有效。
实际的分布式系统经常是异步的,因为进程需要共享处理器,而通信通道需要共享网络。例如,如果有太多特性未知的进程共享一个处理器,那么任何一个进程的性能都不能保证。但是,有许多不能在异步系统中解决的设计问题,在使用时间的某些特征后就能解决。在最终期限之前传递多媒体数据流的每个元素就是这样一个问题。对这样的问题,可使用同步模型。
事件排序 在许多情况下,我们有兴趣知道一个进程中的一个事件(发送或接收一个消息)是发生在另一个进程中的另一个事件之前、之后或同时。尽管缺乏精确的时钟,但系统的执行仍能用事件和它们的顺序来描述。
例如,考虑下列在邮件列表中一组电子邮件用户X、Y、Z、A之间的邮件交换:
1)用户X发送主题为Meeting的消息。
2)用户Y和Z发送一个主题为Re:Meeting的消息进行回复。
在实际环境中,X的消息最早发送,Y读取它并回复;Z读取X的消息和Y的回复并发出另一个回复,该回复引用了X和Y的消息。但是由于在消息传递中各自独立的延迟,消息的传递可能像图2-13所示的一样,一些用户可能以错误的顺序查看这两个消息。例如,用户A可能看见:

Pepperland协定 Pepperland军队的两个师“红师”和“蓝师”驻扎在邻近两座山的山顶上。山谷下面是入侵的敌军。只要Pepperland的两个师留在驻地,他们就是安全的,他们通过派出通信兵穿过山谷进行通信。Pepperland的两个师需要协商它们中的哪一方率先发起对敌军的冲锋以及冲锋何时进行。即使是在异步的Pepperland中,由谁率先冲锋是可能达成一致的。例如,每个师报告剩余人员的数量,人数多的一方率先冲锋(如果人数一样多,则由红师率先冲锋)。但何时冲锋呢?非常遗憾,在异步Pepperland,通信兵的速度是变化的。如果红师派出一个通信兵,带着“冲锋”消息,蓝师可能3个小时也收不到这个消息,也可能5分钟就收到这个消息了。在同步Pepperland中,仍然有协调问题,但是两个师知道一些有用的约束:每个消息至少花费min分钟和至多花费max分钟到达。如果率先冲锋的师发送“冲锋”消息,那么它等待min分钟就可以冲锋。另一个师在收到消息后等待1分钟,然后冲锋。在率先冲锋的师之后、不超过(max-min+1)分钟,另一个师保证发起冲锋。
如果X、Y、Z的计算机上的时钟能同步,那么每个消息在发送时可以携带本地计算机时钟的时间。例如,消息m1、m2和m3能携带时间t1、t2、t3,其中t1<t2<t3。接收到的消息将根据它们的时间排序显示给用户。如果时钟基本上同步,那么这些时间戳通常会以正确的顺序排列。

因为在一个分布式系统中时钟不能精确同步,所以Lamport[1978]提出了逻辑时间的模型,为在分布式系统中运行于不同计算机上的进程的事件提供顺序。使用逻辑时间不需要求助于时钟就可以推断出消息的顺序。详细内容可参见第14章,我们在这里只介绍如何将逻辑排序的某些方面应用到邮件排序问题。
逻辑上,我们知道消息在它发送之后才被接收,因此,我们为图2-13所示的成对事件给出一个逻辑排序。例如,仅考虑涉及X和Y的事件:
X在Y接收到m1之前发送m1;Y在X接收到m2之前发送m2
我们也知道应答在接收到消息后发出,因此对于Y,我们有下列逻辑排序:
Y在发送m2之前接收m1
逻辑时间通过给每个事件赋予一个与它的逻辑顺序相对应的数字而进一步拓展了这个思想。这样,后发生的事件的数字比早发生的事件的数字大。例如,图2-13显示了X和Y上的事件,其数字为1~4。

时间: 2024-10-01 02:16:38

《分布式系统:概念与设计》一2.4.1 交互模型的相关文章

《分布式系统:概念与设计》一2.5 小结

2.5 小结 如2.2节所展示的,从底层物理特性角度,例如,系统的规模.系统内在的异构性.从特性角度(如安全)提供端到端解决方案的实际需求等,分布式系统的复杂性正在增加.这使得从模型角度理解和探讨分布式系统显得更加重要.本章考虑了底层物理模型,并深度考察了支撑分布式系统的体系结构模型和基础模型.本章从所包含的体系结构模型角度给出了描述分布式系统的方法,明晰了这个设计空间的内涵,包括查看什么在通信以及这些实体如何通信等核心问题,以及基于给定物理基础设施,考虑每个元素可以扮演的角色与合适的放置策略,

《分布式系统:概念与设计》一第3节 练习

前 言 在互联网和Web持续发展并且对我们社会的每个方面都产生影响的时候,这本教材的第5版问世了.本书的介绍性章节提到互联网和Web对诸多(如金融.商业.艺术.娱乐等)应用领域的影响以及对信息社会的普遍影响.它还强调了诸如Web搜索和多人在线游戏等应用领域中的需求.从分布式系统的角度出发,这些开发在应用的范围.多个现代系统所支持的工作负载和系统大小等方面正在对底层系统架构提出实质性的新需求.重要的趋势包括网络技术上不断增加的多样性和普遍性(包括不断增加的无线网络的重要性).移动和无处不在计算元素

《分布式系统:概念与设计》一第2章 系统模型

第2章 系统模型 本章提供三个重要且互补的解释方法,以便有效地描述和讨论分布式系统的设计:物理模型考虑组成系统的计算机和设备的类型以及它们的互连,不涉及特定的技术细节.体系结构模型是从系统的计算元素执行的计算和通信任务方面来描述系统:这里计算元素或是指单个计算机或是指通过网络互连的计算机集合.客户-服务器和对等模型是分布式系统中的两种最常使用的体系结构模型.基础模型采用抽象的观点描述大多数分布式系统面临的单个问题的解决方案.在分布式系统中没有全局时间,所以不同计算机上的时钟未必给出相同的时间.进

《分布式系统:概念与设计》一1.2 分布式系统的例子

1.2 分布式系统的例子 本节给出能激发读者学习积极性的当代分布式系统的例子,用于说明分布式系统所扮演的无处不在的角色和相关应用的多样性. 如1.1节所提及的那样,网络无处不在,成为我们现在认为理所当然的日常服务(互联网和相关的万维网.Web搜索.在线游戏.电子邮件.社会网络.电子商务,等等)的基础.为了进一步说明这一点,可参考图1-1,它描述了一系列所选的关键商务或社会应用部门,强调了相关的分布式系统技术已公认或新出现的应用. 正如所看到的,分布式系统包含近些年许多最重要的技术发展,因此理解底

《分布式系统:概念与设计》一2.4 基础模型

2.4 基础模型 上面的各种系统模型完全不同,但具有一些基本特性.特别是,所有的模型都由若干进程组成,这些进程通过在计算机网络上发送消息而相互通信,所有的模型都共享下列设计需求:实现进程及网络的性能和可靠性特征,确保系统中资源的安全性.本节给出基于基本特性的模型,利用这些模型,我们能更详细地描述系统可能展示的特征.故障和安全风险.通常,为了理解和推理系统行为的某些方面,一个基础模型应该仅包含我们要考虑的实质性成分.这样一个模型的目的是: 显式地表示有关我们正在建模的系统的假设. 给定这些假设,就

《分布式系统:概念与设计》一2.1 简介

2.1 简介 打算在实际环境中使用的系统应该在各种可能的环境下,面对各种困难和潜在的威胁(后面的"分布式系统的困难和威胁"部分将给出一些例子)时,保证其功能的正确性.第1章的讨论和例子表明不同类型的分布式系统共享重要的基本特性,也出现了公共的设计问题.本章以描述性模型的形式给出分布式系统的公共特性和设计问题.每类模型试图对分布式系统设计的一个相关方面给出抽象.简化但一致的描述.物理模型是描述系统的一个最显式的方法,它从计算机(和其他设备,例如移动电话)及其互联的网络方面考虑系统的硬件组

《PADS 9.5电路设计与仿真从入门到精通》——第一章 绪论 1.1 PCB的基本概念及设计工具

第一章 绪论 PADS 9.5电路设计与仿真从入门到精通 本章主要介绍PADS的基本概念及特点,包括PCB设计的一般原则.基本步骤.标准规范等.着重介绍了美国Mentor Graphics公司的PCB设计软件:PADS 9.5,包括了PADS 9.5的发展过程以及它的新特点.PADS 9.5是一款非常优秀的PCB设计软件,它具有完整强大的PCB绘制工具,界面和操作十分简洁,希望用户好好学习本书,以便更加方便地使用PADS 9.5软件. 1.1 PCB的基本概念及设计工具 PADS 9.5电路设计

交互设计理论:我们眼中的交互设计

交互设计(Interaction Design, 缩写 IxD 或者 IaD),是定义.设计人造系统的行为的设计领域.人造物,即人工制成物品,例如,软件.移动设备.人造环境.服务.可佩带装置以及系统的组织结构.交互设计在于定义人造物的行为方式(the "interaction",即人工制品在特定场景下的反应方式)相关的界面(Wikipedia).通过对界面和行为进行交互设计,从而可以让使用者使用人造物来完成目标,这就是交互设计的目的. 从用户角度来说,交互设计是一种如何让产品易用,有效

怎样设计令用户满意的交互

在学校修管理学的时候,有讲过一个管理激励的理论.管理激励是基于行为和认知科学的研究,来发现人们的需要.动机.目标和行为四者之间关系的核心理论,主要的目的是讨论如何满足人的各种需要.调动人的积极性.由此也引出了一个人们会在怎样的情况感到满意的问题. 在人机交互中,同样有满意度的概念.那怎样设计令用户满意的交互呢?或许首先应该从满意度的评价因素来考虑.产品要让用户满意,最基本的条件应该是该产品符合用户的最低需求,能帮助用户解决问题.其次,满意是关于行动结果的评价.因此,当人机交互的结果符合或者超出用