网络最近发表了一篇名为《分布式系统常用思想和技术总结》的范文,感觉很有用处,这里给大家转摘到网络。
稿子汇 www.gaozihui.com
篇一:分布式与云计算总结稿子汇,范文学习文库
进行数据复制主要出于两个目的:可靠性和性能。数据一旦被复制,就会带来一致性的问题。以数据为中心的一致性模型
稿子汇 www.gaozihui.com
1.严格一致性(strict consistency):对于数据项x的任何读操作将返回最近一次对x进行写操作的结果所对应的值。严格一致性是限制性最强的模型,但是在分布式系统中实现这种模型代价太大,所以在实际系统中运用有限。 公文汇,办公文档之家
2.顺序一致性:任何执行结果都是相同的,就好像所有进程对数据存储的读、写操作是按某种序列顺序执行的,并且每个进程的操作按照程序所制定的顺序出现在这个序列中。也就是说,对,然后把它们传给Reduce(规约)函数,把具有相同中间形式key的value合并在一起。文件存储位置:源文件:GFSMap处理结果:本地存储Reduce处理结果:GFS 日志:GFS 单词计数:Step 1: 自动对文本进行分割 公文汇,办公文档之家
网络节点N8寻找K54这个资源,首先,在N8上查找后继节点为N14,发现K54并不符合54?(8;14]的要求,那么直接在N8的路由表上查找符合这个要求的表项(由远及近查找),我们发现路由表中最远的一项N8+32--N42满足42?(8;54],则说明N42这个点离持有K54这个资源的节点最近(因为N42在该路由表中离N8这个节点最远),那么此时跳到N42这个节点上继续查找。N42的后继节点为N48,不符合54?(42;48]的要求,说明N48不持有资源54,此时,开始在N42的路由表上查找,我们由远及近开始查找,发现N42+8--N51满足51?(42;54],则说明N51这个点离持有K54这个资源的节点最近,那么此时跳到N51这个节点上继续查找。任何读、写操作的交叉都是可接受的,但是所有进程都看到相同的操作交叉。顺序一致性由Lamport(1979)在解决多处理器系统的共享存储器时首次提出的。
3.因果一致性:所有进程必须以相同的顺序看到具有潜在因果关系的写操作。不同机器上的进程可以以不同的顺序看到并发的写操作(Hutto和Ahamad 1990)。假设P1和P2是有因果关系的两个进程,例如P2的写操作信赖于P1的写操作,那么P1和P2对x的修改顺序,在P3和P4看来一定是一样的。但如果P1和P2没有关系,那么P1和P2对x的修改顺序,在P3和P4看来可以是不一样的。
4.FIFO一致性:在因果一致性模型上的进一步弱化,思想汇报专题要求由某一个使用者完成的写操作可以被其他所有的使用者按照顺序的感知到,而从不同使用者中来的写操作则无需保证顺序,就像一个一个的管道一样。相对来说比较容易实现。
5.弱一致性:要求对共享数据结构的访问保证顺序一致性。对于同步变量的操作具有顺序一致性,是全局可见的,且只有当没有写操作等待处理时才可进行,以保证对于临界区域的访问顺序进行。在同步时点,所有使用者可以看到相同的数据。
6.释放一致性:弱一致性无法区分使用者是要进入临界区还是要出临界区,释放一致性使用两个不同的操作语句进行了区分。需要写入时使用者acquire该对象,写完后release,acquire-release之间形成了一个临界区,提供 释放一致性也就意味着当release操作发生后,所有使用者应该可以看到该操作。
7.入口一致性:入口一致性要求每个普通的共享数据项都要与某种同步变量关联。数据存储满足下列条件,那么它符合入口一致性: 在一个进程获取一个同步变量签,所有由此同步变量保护的共享数据的更新都必须已经由相应进程执行完毕。、在一个进程对一个同步变量的独占访问被允许前,其他进程不可以拥有这个同步变量,也不能以非独占方式拥有这个同步变量、、一个进程对一个同步变量执行独占访问之后,对该同步变量的所有者进行检查之前,任何其他的进程都不能执行下一个独占访问。
以客户为中心的一致性模型
1.最终一致性:最终一致性指的是在一段时间内没有数据更新操作的话,那么所有的副本将逐渐成为一致的。例如OpenStack Swift就是采用这种模型。范文写作以一次写多次读的情况下,这种模型可以工作得比较好。
2.单调读:如果一个进程读取数据项x的值,那么该进程对x执行的任何后续读操作将总是得到第一次读取的那个值或更新的值
3.单调写:一个进程对数据x执行的写操作必须在该进程对x执行任何后续写操作之前完成。4.写后读:一个进程对数据x执行一次写操作的结果总是会被该进程对x执行的后续读操作看见。
5.读后写:同一个进程对数据项x执行的读操作之后的写操作,保证发生在与x读取值相同或比之更新的值上
时钟:在一般意义上指的是一个计算机的物理时间,每个计算机都会包括他们自己的物理时钟,不同的计算机的物理可能会不同。
时钟漂移:经过在同个地方的计算机,他们的物理也有可能会不一样,如果他们从刚刚开始相同的时间计时开始,过了1过月,1年也可能会有快又慢,这在专业名词上讲叫做时间漂移。本质的原因是每秒的时间偏移,经过日记月累之后,就会有可能达到1秒钟的差距,范文TOP100解决的办法很简单,就是过一段时间之后,将时间纠正回来就可以了。
UTC:全称是Coordinated Universal Time,协调世界时,又称世界统一时间,用来进行高进度时间的同步。协调世界时以原子时秒长为基础,在此时刻上尽量接近于世界时的一种时间计量系统。
同步物理时间:主要手段分为2个External synchronization,靠的是UTC协调世界时,给定一个边界值D>0,满足条件|S(t)-Ci(t)| 同步系统中的时间同步:我们首先在一般情况下进行考虑,比如2个进程,相互之间只允许进行消息传递来进行通信,如何进行事件同步,假设传输的时间为T(trans),假设发送进程P1发送的时间为t,则P2的时间应该设置成t+T(trans),这个很好理解,基于这个思路继续,发送的传输时间一般不可能是固定的,可能受网络环境的影响或快或慢,所以定义了传输的时间上界u(max),下界u(min),则此时的抵达时间应该设置成t+(max+min)/2, Cristian时钟同步方法:利用了时间服务器,连接上设备并且能够接受从UTC资源发来的信号进行同步,最全面的范文参考写作网站以UTC的时间作为同步的时间。定义一个进程p,一个TimeServer s,请求消息为M(r),接收消息M(r),M(r)中包含了从时间服务器中获取的最新的时间,进程p记录了收发的总延时T(round),则进程p接收到消息后,他的时间应该是p(t)=M(r)中的时间t+T(round)/2 The Berkeley Algorithm:用的是Internal synchronization的方法,给定一组计算机,选出一个作为Coordinator,作为master,这个master选择机器中将要被同步的机器,叫做slave,通过计算与这些机器之间进行时间交换,平均快的和慢的时间,最终达到时间一致性,在比较的过程中,就可以排除明显偏差大的时间了。 The Network Time Protocol:Cristian和Berkeley算法都是偏向于用于小规模的内网中,而Network Time Protocol则是一种在因特网上的分布式时间服务。他定义了Time Service的结构。NTP有下面几个特点。 1、NTP提供了一个客户端可以从网络中精准同步UTC时间的客户端。2、服务端通过接口的形式方便客户端的调用。 3、NTP服务器与服务器之间的时间同步是以层级控制的方式构成。1级节点同步2个2级节点,2(1)可能又同步2个3级节点,2(2)也可能2个3级节点。其中的时间交互协议通过信息之间的交换。 逻辑时间和时钟:逻辑时间,从字面上理解当然不同于物理时间,在分布式系统中,运用逻辑时间的例子也不少,假设L(i)表示的是消息事件的发生事件,当p1进程接收到的时候,就需要对时间做递增操作,L(i) = L(i) + 1,逻辑意义上的时间增加。 全局有序逻辑时间--Vector Clock:Vector Clock是向量时钟,可以可以保证全局有序的逻辑时间,通过V MapReduce模式的主要思想是将自动分割要执行的问题(例如程序)拆解成Map(映射) 和Reduce(化简)的方式,流程图如下图1所示: 在数据被分割后通过Map函数的程序将数据映射成不同的区块,分配给计算机机群处理达到分布式运算的效果,在通过Reduce 函数的程序将结果汇整,从而输出开发者需要的结果。MapReduce借鉴了函数式程序设计语言的设计思想,其软件实现是指定一个Map函数,把键值对(key/value)映射成新的键值对,形成一系列中间结果形式的key/value Step 2:在分割之后的每一对 Step 3:对输出的结果集归拢、排序(系统自动完成) Step 4:通过Reduce操作生成最后结果 MapReduce的容错 Worker故障:Master 周期性的ping每个worker。如果master在一个确定的时间段内没有收到worker返回的信息,那么它将把这个worker标记成失效 重新执行该节点上已经执行或尚未执行的Map任务 重新执行该节点上未完成的Reduce任务,已完成的不再执行 Master故障:定期写入检查点数据、、从检查点恢复 1、系统容错的一些要求: (1)可用性(availability)用来描述系统在给定时刻可以正确的工作。 (2)可靠性(reliability)指系统在可以无故障的连续运行。与可用性相反,可靠性是根据时间间隔而不是任何是可以来进行定义的。如果系统在每小时中崩溃1ms,那么他的可用性就超过99.9999%,但是它还是高度不可靠的。与之相反,如果一个系统从来不崩溃,但是要在每年8月中停机两个星期,那么它是高度可靠的,但是它的可用性只有98%。因此,这两种属性并不相同。(3)安全性(safety)指系统偶然出现故障的情况下能正确操作而不会造成任何灾难。4)可维护性(maintainability)发生故障的系统被恢复的难易程度。2、故障分类:故障通常被分为暂时的(transient)、间歇的(intermittent)和持久的(permanent)。 3、使用冗余来掩盖故障:如果系统是容错的,那么它能做的最好的事情就是对其他进程隐藏 故障的发生。关键技术是使用冗余来掩盖故障。有三种可能:信息冗余、时间冗余和物理冗余。信息冗余中,添加额外的位可以使错乱的位恢复正常。例如可以在传输的数据中添加一段Hamming码来从传输线路上的噪声中恢复数据。关于利用信息冗余进行错误检测和纠正,将在后续内容中叙述。 时间冗余中,执行一个动作,如果需要就再次执行。使用事务就是这种方法的一个例子。如果一个事务中止,那么它就可以无害的重新执行。当错误是临时性或间歇性时,时间冗余特别有用。TCP/IP协议中的重传机制,是另外一个例子。物理冗余中,通过添加额外的装备或进程使系统作为一个整体来容忍部分组件的失效或故障成为可能。物理冗余可以在硬件上也可以在软件上进行。其中,一种著名的设计是TMR(三倍模块冗余,Tiple Modular Redundancy)。在包括TMR的系统中,每个关键模块中的部件都被复制了三份,采用多数表决的方法,确保当某些某块中的单个部件发生故障时,系统还可以正确的运行。 两种基本的策略用于错误处理过程。一种方法是在信息块中包含足够的冗余信息,以便推断出这些数据中肯定有哪些内容,即使用纠错码的策略。另一种也是包含一些冗余信息,但是这些信息只能推断出发生了错误,却推断不出发生了哪些错误,即使用检错码的策略。使用纠错码的技术通常也被称为前向纠错。 DHT的主要思想是:首先,每条文件索引被表示成一个(K,V)对,K称为关键字,可以是文件名(或文件的其他描述信息)的哈希值,V是实际存储文件的节点的IP地址(或节点的其他描述信息)。所有的文件索引条目(即所有的(K,V)对)组成一张大的文件索引哈希表,只要输入目标文件的K值,就可以从这张表中查出所有存储该文件的节点地址。然后,再将上面的大文件哈希表分割成很多局部小块,按照特定的规则把这些小块的局部哈希表分布到系统中的所有参与节点上,使得每个节点负责维护其中的一块。这样,节点查询文件时,只要把查询报文路由到相应的节点即可(该节点维护的哈希表分块中含有要查找的(K,V)对)。1.Chord里面的基本要素 节点ID:NID(node identifier),表示一个物理机器,m位的一个数字(m要足够大以保证不同节点的NID相同的几率小的可以忽略不计),由节点机器的IP地址通过哈希操作得到。资源ID;KID(key identifiers),原为键ID,其实际表示一个资源(因为Key与一个资源value哈希绑定),故在本文中统称资源ID(这样比较直观),m位的一个数字(m要足够大以保证不同资源的KID相同的几率小的可以忽略不计),由Key通过哈希操作得到。 常哈希函数:较之一般哈希函数,节点的加入和离开对整个系统影响最小,另外还有一些优势在此不赘述。在Chord中使用SHA-1来进行常哈希计算。 Chord环:Chord Ring,NID和KID被分配到一个大小为2^m的环上,用于资源分配(给某一节点)和节点分布,以及资源定位(注:在这个环上的ID为0--2^m-1)。首先我们说资源分配,资源被分配到NID>=KID的节点上,这个节点成为k的后继节点,是环上从k起顺时针方向的第一个节点,记为successor(k)。节点分布则顺时针将节点N由大到小放在这个环上。m=6的环,有10个节点,5个资源,K10的后继节点为N14,也就是说K10被分配给了N14 2.Chord资源定位(Key Location):资源定位是Chord协议的核心功能 简单的资源定位方法:节点n寻找KID为id的资源,此时节点n首先问询是否在下一个节点上(find_successor),这要看资源k的KID是否在该节点NID和下一个节点的NID之间,若在则说明资源k被分配给了下一个节点,若不在则在下一个节点上发起同样的查询,问询下下一个点是否有该资源。 节点N8寻找K54这个资源,发现下一个节点N14不合符54?(8;14],于是N14发起同样的搜索,然后一跳一跳后直到节点N56满足54?(51;56],于是得知资源K54在N56这个节点上。可伸缩方法:在每个节点N上都维护了最多有m项(m为ID的位数)的路由表(称为finger table),用来定位资源。这个表的第i项是该节点的后继节位置,至少包含到2^(i-1)后的位置。每个节点只包含全网中一小部分节点的信息。 每个节点对于临近节点负责的位置知道的更多,比如N8节点对于N14负责的位置知道3处,而对N21负责的位置只知道1处。 路由表通常不包含直接找到后继节点的信息,往往需要询问其他节点来完成。 当在某个节点上查找资源时,首先判断其后继节点是不是就持有该资源,若没有则直接从该节点的路由表从最远处开始查找,看哪一项离持有资源的节点最近(发现后跳转),若没有则说明本节点自身就有要寻找的资源。如此迭代下去。 N51节点的后继节点为N56,符合54?(51;56],此时定位完成,N56持有资源节点K54。 3.Chord的节点加入:Chord通过在每个节点的后台周期性的进行stabilization询问后继节点的前序节点是不是自己来更新后继节点以及路由表中的项 现在N26节点要加入系统,首先它指向其后继N32,然后通知N32,N32接到通知后将N26标记为它的前序节点(predecessor)。然后N26修改路由表,下一次N21运行stabilize()询问其后继节点N32的前序节点是不是还是自己,此时发现N32的前序节点已经是N26。于是N21就将后继节点修改为N26,并通知N26自己已经将其设置为后继节点,N26接到通知后将N21设置为自己的前序节点。 这个加入操作会带来两方面的影响: 1)正确性方面:当一个节点加入系统,而一个查找发生在stabilization结束前,那么此时系统会有三个状态: A.所有后继指针和路由表项都正确时:对正确性没有影响。 B.后继指针正确但表项不正确:查找结果正确,但速度稍慢(在目标节点和目标节点的后继处加入非常多个节点时)。 2)效率方面:当stabilization完成时,对查找效率的影响不会超过O(log N) 的时间。当stabilization未完成时,在目标节点和目标节点的后继处加入非常多个节点时才会有性能影响。可以证明,只要路由表调整速度快于网络节点数量加倍的速度,性能就不受影响。4.Chord节点失败的处理 我们可以看出,Chord依赖后继指针的正确性以保证整个网络的正确性。但如图,若N14,N21,N32同时失效,那么N8是不会知道N38是它新的后继节点。为了防止这样的情况,每个节点都包含一个大小为r的后继节点列表,一个后续节点失效了就依次尝试列表中的其他后继节点。可以证明,在失效几率为1/2的网络中,寻找后继的时间为O(log N)。5.Chord的特征和应用 特征:去中心化,高可用度,高伸缩性,负载平衡,命名灵活。 应用:全球文件系统、命名服务、数据库请求处理、互联网级别的数据结构、通信服务、事件通知、文件共享。访问透明性:用相同的操作访问本地资源和远程资源。 位置透明性:不需要知道资源的物理或网络位置(例如,哪个建筑物或IP地址)就能够访问它们。并发透明性:几个进程能并发地使用共享资源进行操作且互不干扰。 复制透明性:使用资源的多个实例提升可靠性和性能,而用户和应用程序员无须知道副本的相关信息。故障透明性:屏蔽错误,不论是硬件组件故障还是软件组件故障,用户和应用程序都能够完成它们的任务。移动透明性:资源和客户能够在系统内移动而不会影响用户或程序的操作。性能透明性:当负载变化时,系统能被重新配置以提高性能。伸缩透明性:系统和应用能够进行扩展而不改变系统结构或应用算法。最重要的两个透明性是访问透明性和位置透明性,它们的有无对分布式资源的利用有很大影响。有时它们统一称为网络透明性。 云计算是一种商业计算模型。它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。 云计算的类别: 云计算特点(1)超大规模(2) 虚拟化(3) 高可靠性(4) 通用性(5) 高可扩展性 (7) 极其廉价(8) 潜在的危险性 Google的云计算应用均依赖于四个基础组件 1)分布式文件存储,GFS 2)并行数据处理模型MapReduce 3)分布式锁Chubby 4)结构化数据表BigTable Chubby的作用 为GFS提供锁服务,选择Master节点;记录Master的相关描述信息 通过独占锁记录Chunk Server的活跃情况、、为BigTable提供锁服务,记录子表元信息(如子表文件信息、子表分配信息、子表服务器信息)、、 (可能)记录MapReduce的任务信息、、为第三方提供锁服务与文件存储 GFS的作用 存储BigTable的子表文件、、为第三方应用提供大尺寸文件存储功能 文件读操作流程:API与Master通信,获取文件元信息、 根据指定的读取位置和读取长度,API发起并发操作,分别从若干ChunkServer上读取数据、API组装所得数据,返回结果 MapReduce的作用 对BigTable中的数据进行并行计算处理(如统计、归类等) 使用BigTable或GFS存储计算结果 BigTable的作用 为Google云计算应用(或第三方应用)提供数据结构化存储功能 类似于数据库、、 为应用提供简单数据查询功能(不支持联合查询) 为MapReduce提供数据源或数据结果存储 BigTable的存储与服务请求的响应 划分为子表存储,每个子表对应一个子表文件,子表文件存储于GFS之上、、BigTable通过元数据组织子表、、每个子表都被分配给一个子表服务器、、 一个子表服务器可同时分配多个子表、、子表服务器负责对外提供服务,响应查询请求 HDFS为了做到可靠性(reliability)创建了多份数据块(data blocks)的复制(replicas),并 将它们放置在服务器群的计算节点中(compute nodes),MapReduce就可以在它们所在的节点上处理这些数据了。 HDFS关键运行机制--保障可靠性的措施 1)一个名字节点和多个数据节点--数据复制(冗余机制) 2)存放的位置(机架感知策略)--故障检测 3)数据节点--心跳包(检测是否宕机)--块报告(安全模式下检测) 数据完整性检测(校验和比较) 4)名字节点(日志文件,镜像文件)--空间回收机制 HDFS关键运行机制--读文件流程 客户端缓存、、流水线复制、、并发写控制、、客户端联系NameNode,得到所有数据块信息,以及数据块对应的所有数据服务器的位置信息、、尝试从某个数据块对应的一组数据服务器中选出一个,进行连接(选取算法未加入相对位置的考虑)、、数据被一个包一个包发送回客户端,等到整个数据块的数据都被读取完了,就会断开此链接,尝试连接下一个数据块对应的数据服务器,整个流程,依次如此反复,直到所有想读的都读取完了为止 HDFS与GFS比较 中心服务器模式的差异:GFS:多台物理服务器,选择一台对外服务,损坏时可选择另外一台提供服务;HDFS:单一中心服务器模式,存在单点故障。原因:Hadoop缺少分布式锁服务 子服务器管理模式差异:GFS:Chunk Server在Chubby中获取独占锁表示其生存状态,Master通过轮询这些独占锁获知Chunk Server的生存状态 HDFS:DataNode通过心跳的方式告知NameNode其生存状态 GFS中,Master损坏时,替补服务器可以快速获知Chunk Server的状态;HDFS中,NameNode损坏后,NameNode恢复时需要花费一段时间获知DataNode的状态。在添加数据存储节点时,GFS的伸缩性较HDFS要好 原因:Hadoop缺乏分布式锁服务 分布式系统的定义:分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像是单个相关的系统(中间件)。2.分布式的目标:分布式系统必须能够让用户方便地与资源连接;必须隐藏资源在一个网络上分布这样一个事实;必须是开放的;必须是可扩展的。3.透明性:一个分布式系统能够在用户和应用程序面前呈现为单个计算机系统;3.透明性的种类: 访问透明性:隐藏不同数据表示形式以及资源访问方式的不同。位置透明性:隐藏资源在系统中的物理位置。并发透明性:隐藏资源是否由若干相互竞争的用户共享。持久性透明性:隐藏资源位于内存中还是硬盘中。迁移透明性:指分布式系统中的资源移动不会影响该资源的访问方式。复制透明:指对同一个资源存在多个副本的隐藏。5.一个开放的分布式系统就是根据一系列准则来提供服务,这些准则描述了所提供服务的语法和语义。6.可扩展性至少可以通过3个方面度量:规模上扩展—用户和进程的数量、地域上可扩展—节点之间的最大距离、管理上可扩展—管理域的数量。7.分散式算法与集中式相比不同的特性:没有任何计算机拥有关于系统状态的完整信息;计算机只根据本地信息做出决策;某台计算机的故障不会是算法崩溃;没有存在全局性时钟的假设。8.扩展技术:隐藏通信等待时间—避免等待远程服务对请求的响应,做其它工作。 分布技术:把某个组件分割成多个部分,然后再将它们分散到系统中去(如DNS、WWW)。复制/缓冲:将组件复制并拷贝分布到系统各处;缓冲与复制不同的是,是否进行缓存是由要访问资源的客户决定的,而不是资源拥有者决定。缺点是一致性问题。9.分布式系统的分类:39.应用层多播树的质量通常以三种不同的尺度来度量,一是链接树;二是相对延时补偿;三是树成本。 41.分布式系统中,有三种不同的命名系统,它是无层次命名;结构化命名和基于属性的命名。42.在无层次命名中,通常有广播和多播、转发指针、基于宿主位置、分布式散列表、分层结构等方法实现实体定位。 43.基于属性的命名系统实现的方式有两种。一种是分层实现,使得目录项集合形成了分层的目录信息树。而另一种是非集中式实现,它是采用映射到分布式散列表的方式。 45.一次将所有的消息以相同的顺序传送给每个接收的多播操作称为全序多播。戳可以用于以完全分布式的方式实现。 52.高速缓存相关性协议的设计与实现是基于两种策略的:一是相关性检测策略;二是相关性实施策略。 54.在开发的持久一致性协议中,有三种限定的偏差:它们是限定复制的数字偏差、限定复制的新旧程度偏差和限定顺序偏差。 65.在名称解析的实现中,通常采用两种方法,一是迭代名称解析;二是递归名称解析。 1.下面特征分别属于计算机网络和分布式计算机系统,请加以区别: 分布式计算机是指系统内部对用户是完全透明的;系统中的计算机即合作又自治;系统可以利名称到地址的映射很少更改,因此,这些结果可以缓存很长一段时间。12.简述进程与程序的联系和区别 答:(1)联系:一个进程可以涉及到一个或几个程序的执行;一个程序可以对应一个或多个进程,即同一程序段可以在不同数据集合上运行,可构成不同的进程,例如打印输出程序段,例如同一高级语言编译程序与多个用户源程序。 (2)进程和程序的区别主要体现在:1)进程是动态的,具有一定的生命周期,而程序是静态的;2)进程可并发执行,而没有创建进程的程序是不能执行的;3)进程是操作系统中申请和分配资源的基本单位,而没有创建进程的程序是不能申请资源的;4)进程包括程序、数据和进程控制块;5)同一程序的多次执行对应多个进程 15.原子多播的可扩展性重要到哪种程度上? 答:它取决于一组包含多个进程的状态。如果进程为故障容错进行了复制,拥有少量的副本可能就足够了,在这种情况下,可扩展性几乎不成问题。如果是由不同进程构成的组,可扩展性就可能成了一个问题。当为了性能而复制时,原子多播自身可能超出负荷的能力。16.在两阶段提交协议中,为什么即使在参与者们选择一个新的协调者的情况下也不会完全消除阻塞? 答:因为选举结束后,新的协调者也同样可能会崩溃。在这种情况下,其余的参与者也不能做出最后决定,因为这需要由新当选的协调者发起选举。 分布式计算系统、分布式信息系统、Distributed Pervasive Systems。10.分布式事务处理的特性,原子性;一致性:事务处理不会违反系统的不变性;独立性:并发的事务处理不会相互干扰;持久性:事务处理一旦提交,所发生的改变是永久性的。6.根据组件和连接器的不同,分布式系统体系结构最重要的有4种,它们是:分层体系结构、基于对象的体系结构(MVC-J2EE)、以数据为中心的体系结构、基于事件的体系结构7.在客户-服务器的体系结构中,应用分层通常分为3层,用户接口层、处理层和数据层。8.有两种类型的分布式操作系统,多处理器操作系统和多计算机操作系统。 9.系统体系结构:软件体系结构的具体实例。确定了软件组件、这些组件的交互以及它们的位置就是软件体系结构的一个实例。13.分布式软件体系结构主要分集中式、非集中式和各种混合形式三大类。其非集中式体系结构又分为结构化的点对点、非结构化的点对点、超级对等体三种。 集中式体系结构--客户/服务器体系结构:客户机怎么告诉请求消息丢失:超时。客户机怎么检测请求丢失和回复丢失的区别:最多一次服务,至少一次服务。幂等性:一个操作重复多次而没有害处就说它是幂等的。 10.客户/服务器结构的应用程序通常划分为三层,它们是:用户接口层、处理层和数据层。11.在结构化点对点体系结构中覆盖网络是用一个确定性的过程来构成的,这个使用最多的进程是通过一个分布式哈希表来组织进程的。 新型体系结构:垂直分布(不同功能的分布)、水平分布(相同功能的分布)、对等型(P2P)分布。覆盖网络:建立在另一个网络上的网络,属于应用层,很少考虑网络层物理层的问题。P2P网络是建立在Internet之上的一种覆盖网络。P2P Chord是基于分布式Hash(DHT)的结构化P2P 16.一个线程独立地执行它自己的程序代码。线程系统一般只维护用来让多个线程共享CPU所必需的最少量信息。 17.有两种实现线程线程包的基本方法:一是可以构造一个完全在用户模式下执行的线程;二是由内核来掌管线程并进行调度。 18.分布式系统中的多线程通常有:多线程用户和多线程服务器两大类型。而以分发器/工作者模型组织起来的多线程服务器是最为流行的一种。 19.虚拟化可采用两种方法,一是构建一个运行时系统,提供一套抽象指令集来执行程序。二是提供虚拟机监视器。 19.在引进线程的操作系统中,调度和分派的基本单位是线程,拥有资源的单位是进程。57.常用的进程调度算法有先来先服务、优先数法和轮转法 58.进程的三个基本状态是就绪、执行、等待(阻塞)。 59.进程是 程序 在一个数据集合上的 运行过程 是系统进行资源分配和调度的一个独立单位 60.进程通常的四个特征是 动态性,并发性,独立性,异步性。61.解决死锁的基本方法包括预防死锁,避免死锁,死锁检测,死锁恢复。 互斥锁:防止多个线程同时读写某一块内存区域;信号量:用来暴走多个线程不会相互冲突。操作系统的设计:(1)以多进程的形式,允许多个任务同时执行;(2)以多线程形式,允许单个任务分成不同的部分运行;(3)提供协调机制,一方面防止进程之间和线程之间产生冲突,另一方面运行进程之间和线程之间共享资源。 34.在流与服务质量(QOS)描述中,服务质量特性指的是数据传输所要求的比特率、创建会话的最大延时、端到端的最大延时、最大延时抖动以及最大往返延时等。 35.流同步类型,一是在离散数据流与连续数据流之间保持同步;二是连续数据流之间的同步。36.在流同步的机制中,需要研究的两个问题是:一个是两个流同步的基本机制;二是在网络环境下这些机制的分布式版本。 40.在基于gossip的数据通信中,通常采用感染协议传播信息。流行的传播模型是。46.向量时钟能捕获因果关系。创建向量时钟是让每个进程Pi维护一个向量VCi来完成。47.互斥集中式算法的优点是易于实现、很公平、保证了顺序一致性。而缺点是协作者是单个故障点,如果它崩溃了,整个系统可能瘫痪。 48.分布式互斥算法的优点是不会发生死锁与饿死现象,也不存在单个故障点。其缺点是单个故障点被n个故障点所代替,所以故障率高;要求更多的网络流量。 49.分布式系统中的互斥算法有四种类型,一是集中式算法、二是非集中式算法、三是分布式算法、四是令牌环算法。 50.分布式系统中,传统的选举算法有两种,一是欺负选举算法;二是环选举算法。53.令牌环算法每次进/出需要的消息数是1~∞;进入前的延迟是0~n-1;但存在令牌丢失和进程崩溃的问题。 66.在逻辑时钟算法中,Lamport定义了一个称作“先发生”的关系,表达式a?b表示a在b之前发生。先发生关系是一个传递关系。 4.集群计算系统一个突出的特征是它的同构性;它提供了最大限度的分布式透明性。可用于单个程序在多台计算机上并行地运行。 5.网格计算系统具有高度的异构性:其硬件、操作系统、网络、管理域和安全策略等都不尽相同。 6.网格计算系统一个关键问题是如何把来自不同计算机组织的资源集中起来,使一组人或机构进行协调工作。 12.超级对等体通常是维护一个索引或充当一个代理程序的结点。 15.分布式的自主系统指的是自我管理、自我恢复、自我配置和自我优化等各种自适应性。20.在服务器的组织结构中,迭代服务器是自己处理请求,将响应返回给客户;而并发服务器将请求传递给某个独立线程或其他进程来处理。 21.服务器集群在逻辑上由三层组成,第一层是逻辑交换机;第二层是应用/计算服务;第三层是文件/数据库系统。 23.进程对资源的绑定有三种类型:一是按标识符绑定;二是按值绑定;三是按类型绑定。而三种类型的资源对机器的绑定是未连接资源、附着连接资源和紧固连接资源。 24.中间件是一种应用程序,它在逻辑上位于应用层中,但在其中包含有多种通用协议,这些协议代表各自所在的层,独立于其他更加特别的应用。 25.在RPC操作中,客户存根的功能是将得到的参数打包成消息,然后将消息发送给服务器存根。 26.所有DCE的底层编程模型都是客户-服务器模型。而DCE本身的一部分是由分布式文件服务、目录服务、安全服务以及分布式时间服务等构成的。 27.IDL编译器的输出包括三个文件,它们是头文件、客户存根和服务器存根。28.在面向消息的通信中,通常分为面向消息的瞬时通信和持久通信两种机制。29.在面向消息的瞬时通信中,通常采用套接字接口和消息传递接口。 30.在面向持久的通信中,消息队列系统为持久异步通信提供多种支持。它提供消息的中介存储能力。 31.在消息队列系统中,队列由队列管理器来管理,它与发送或接收消息的应用程序直接交互。32.在消息队列系统中,转换是由队列网络中特定结点完成的,这些结点称为消息转换器。37.应用层多播的基本思想是结点组织成一个覆盖网络,然后用它来传播信息给其成员。一个重要的因素是网络路由器不在组成员中。 38.在覆盖网络构建时,主要有两种方法,一种是结点本身直接组织成树;另一种是结点组织成一个网状网络。 用多种物理和逻辑资源,可以动态地给它们分配任务。 计算机网络是指互连的计算机是分布在不同地理位置的多台独立的“自治计算机”。2.点到点通信子网的拓扑结构主要有以下几种:星型、环型、树型、网状型,请根据其特征填写相应结构。 网状型 :结点之间的连接是任意的,没有规律。环型:节点通过点到点通信线路连接成闭合环路。星型:节点通过点到点通信线路与中心结点相连;树型:结点按层次进行连接。3.分布式计算系统可以分为两个子组,它们是集群计算系统和网格计算系统。 10.DCE本身是由多个服务构成的,常用的有分布式文件系统、目录服务、安全服务以及分布式时间服务等。 12.Windows NT的结构借用了层次模型和客户/服务器两种模型。 17.操作系统通常可以分为以下几种类型:批处理系统、分时系统、实时系统、网络操作系统 和分布式操作系统。 20.在面向流的通信中,为连续提供支持数据流的模式有异步传输模式、同步传输模式和等时传输模式三种。 21.在流同步机制,通常有在数据单元层次上进行显式同步和通过高级接口支持的同步两种。24.在名称解析的实现中,通常采用两种方法,一是迭代名称解析;二是递归名称解析。28.在以数据为中心的一致性模型中,顺序一致性是指“任何执行结果都是相同的,所有进程对数据存储的读/写操作是按某种序列顺序执行的,并且每个进程的操作按照程序所制定的顺序出现在这个序列中”。 29.在因果一致性中,所有进程必须以相同的顺序看到具有潜在因果关系的写操作。不同机器可以以不同的顺序看到并发的写操作。 30.以客户为中心的一致性模型中,满足最终一致性的数据存储具有以下属性:没有更新操作时,所有副本逐渐成为相互完全相同的拷贝。 31.以客户为中心的一致性模型中,一个写操作总是在同一进程执行的后续读操作之前完成,而不管这个后续的读操作发生在什么位置。 32.在一致性协议中,基于主备份的协议比较盛行,它包括远程写协议和本地写协议两种。33.在一致性协议中,复制的写协议包括主动复制和基于多数表决的一致性协议两种。34.在容错性中,故障通常被分为暂时性故障、间歇性故障和持久性故障三大类型。35.如果系统是容错的,使用冗余掩盖故障的方法有信息冗余、时间冗余和物理冗余三种。36.在可靠的客户-服务器通信中,失败时的RPC系统中发生客户不能定位服务器、请求消息丢失、服务器崩溃、应答消息丢失和客护端崩溃等5种形式。 37.在原子多播里,消息排序通常有4种不同的排序方法,它们分别是:不排序的多播、FIFO顺序的多播、按因果关系排序多播和全序多播。 38.容错性的基本要求是从错误中恢复,本质上有两种形式的错误恢复,一是回退恢复;另一种是前向恢复。 50.在容错性中,人们定义了一些不同类型的故障,主要的有崩溃性故障、遗漏性故障、定时性故障、响应性故障以及随意性故障等五大类。 90.在容错性中,消息日志的基本思想是:如果消息的传输可以重放,那就能够到达一个全局一致的状态而不需要从稳定存储中恢复该状态。 1.分布式系统中的扩展技术通常有:隐藏通信等待时间、复制技术;2.下面属于分布式混合体系结构的是:边界服务器系统、协作分布式系统; 7.在迁移与本地资源的关系中,资源对机器的绑定有:未连接资源、附着连接的资源、紧固连接的资源 8.在DEC中,IDL中的头文件包含:唯一标识符、类型定义、常量定义与函数原型 16.IDL编译器的输出包括的文件是:文件头、客户存根、服务器存根 9.在面向消息的持久通信中,消息队列系统中的基本接口有:Put、get 10.在流同步中,同步机制要搞清楚问题:两个流同步的基本机制、在网络下机制的版本 1.网络体系结构可以定义为:建立和使用通信硬件和软件的一套规则和规范 2.在OSI参考模型中,数据链路层的数据服务单元是:帧 3.下面属于分布式计算系统的是:集群计算、网格计算 4.目前分布式信息系统按集成可分为事务处理系统、企业应用集成 7.DNS属于(应用层)层协议。 9.对于域名:test.com,DNS服务器查找顺序是:先查找.com域,再查找test主机 12.远程客户端登录终端服务器必须提供一定的信息,必要的信息:用户名、服务器IP地址。13.在多播通信中,应用层多播树的质量的度量尺度:链接树、相对延时补偿、树成本 14.以多播流方式传递内容时只能采用(广播发布点)类型的发布点。15.DNS名称空间是分层组织的一棵有根树,标识符是有:字母和数字组成 17.下列属于流同步的是:离散数据流与连续数据流之间同步、口型同步 19.多线程服务器可行的设计方法:多线程文件服务器/单线称文件服务器/作为有限状态机 20.与迭代名称解析比较,递归名称解析的优点是:缓存结果更为有效、能减少通信开销 23.分布式系统的全局状态是指:每个进程的本地状态、当前正在传输中的消息 24.面向消息的中间件模型一般提供:持久异步通信、电子邮件、工作流 25.在分布式系统中,实现事务的方法是:为进程分配私有工作空间、做写前日志26.并发控制的总体思想是:正确调度相冲突的操作 27.下面属于进程间同步算法的是:选举算法、互斥算法 28.严格一致性中存在的问题是:依赖于绝对的全局时间 29.属于“以数据为中心的一致性模型”:线性化和顺序一致性、因果一致性、FIFO一致性 30.属于“以客户为中心的一致性模型”:单调读一致性、写后读一致性、读后写一致性 31.下面属于一致性协议的是:基于主备份的协议、复制的写协议 32.基于主备份的协议是指:负责协调X上的远程写操作、负责协调X上的本地写操作 34.在可靠多播通信中,解决反馈拥塞的方法是:无等级的反馈控制、分等级的反馈控制 35.实现可靠原子多播的方法是:消息排序、虚拟同步 三.简答题(每小题n分,共m分) 7.在深度为k的分层定位服务中,当移动实体改变它的位置时,最多需要更新多少条位置记录? 答:移动实体改变位置会产生删除操作和插入操作,删除操作至少需要更新k条位置 记录。同样,插入操作也需要更新k条位置记录。最后,删除与插入更新移动实体位置的记录共需要2k+1条。 8.要使用Lamport时间戳实现全序多播,是不是每个消息都必须要被严格地确认? 答:不需要,任何类型的消息,只要它的时间戳大于所接收到的消息的时间戳,就可以被加入消息队列,使用Lamport时间戳实现全序多播。 9.许多分布式算法需要使用协调进程。讨论一下,这样的算法实际上可以在什么程度上被看作为分布式的? 答:在集中式算法中,一般会选择一个固定的进程作为协调者,其它的进程可以分布在不同的机器上运行。分布式算法中也同样可以引入协调进程,但是,这个进程并不是固定的,它是从作为算法一部分的进程中选择的。因此,使用协调进程并不会影响算法的分布性。11.请解释DNS如何进行复制,以及它实际运行很好的原因。 答:DNS进行复制的基本思想是:域名服务器可以缓存以前查找过的结果。由于DNS的 19.一个网络中,DNS服务器应该部署在什么地方最合适?在一个网络中,DNS服务器应该部署在客户端可以集中访问的网络位置上。 20.进程间同步和互斥的含义是什么?答:进程间同步是并发进程之间存在的相互制约和相互依赖的关系。进程间互斥是若干进程共享一资源时,任何时刻只允许一个进程使用。1.进程并发工作。(1)若对资源分配不加限制,会发生什么情况 (1)多个进程动态地共享系统的资源可能会产生死锁现象。死锁的产生,必须同时满足四个条件:互斥、等待、非出让、、循环等待。(2)为保证进程正确工作,应采用怎样的资源分配策略(2) 银行家算法分配资源的原则是: 8.一个最完备的分布式体系由以下模块组成:分布式任务处理、分布式节点注册和查询、分布式数据库、分布式cache、分布式文件、网络通信、监控管理、分布式编程语言、分布式算法。 云计算是一种商业计算模型。它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和各种软件服务。 云计算是一种能够将动态伸缩的虚拟化资源通过互联网以服务的方式提供给用户的计算模式。8.IaaS计算实现机制中,系统管理模块的核心功能是:负载均衡 9.下列选项中,哪条不是GFS选择在用户态下实现的原因( D )。A.调试简单 B.不影响数据块服务器的稳定性C.降低实现难度,提高通用性D.容易扩展 10.下列不属于Google云计算平台技术架构的是( D )。A.并行数据处理MapReduce B.分布式锁Chubby C.结构化数据表BigTable D.弹性云计算EC2 11.(MapReduce)是Google提出的用于处理海量数据的并行编程模式和大规模数据集的并行运算的软件架构 12.在目前GFS集群中,每个集群包含(几千个)个存储节点。13.MapReduce通常把输入文件按照(64)MB来划分。14.Mapreduce适用于:可以并行处理的应用程序 15.下列不属于亚马逊及其映像(AMI)类型的是:通用AMI 16.在Bigtable中,(GFS)主要用来存储子表数据以及一些日志文件。18.下面选项不属于Amazon提供的云计算服务是( D )。 A.弹性云计算EC2 B.简单存储服务S3 C.简单队列服务SQS D..Net服务 19.Google APP Engine使用的数据库是: Date store 20.与网格计算相比,不属于云计算特征的是( B )。 A.资源高度共享 B.适合紧耦合科学计算 C.支持虚拟机 D.适用于商业领域 2.简述云计算的三种服务模式及其功能。 ①SaaS:软件即服务,这层的作用是将应用作为 服务提供给客户。 ②PaaS:平台即服务,这层的作用是将一个开发 平台作为服务提供给用户。 ③Iaas:基础设施即服务,这层的作用是 提供虚拟机或者其他资源作为服务提供给用户。4.简述GFS体系结构。 一个GFS集群含有单个主控服务器(Master),多个块服务器(Chunk Server),被多个客户访问。主控服务器维护所有文件系统的元数据(Meta Data),完成各种控制操作,并定期访问服务器进行控制和状态检查。而块服务器则在客户同主控服务器交换元数据业务时与所有数据直接通信。 5.Windows Azure存储服务提供了几种类型的存储方式?阐述每种存储方式主要存储对象。答:①二进制大对象(Blob)服务,用于存储文本或二进制数据。②表(Table)服务,用于可被查询的结构化存储,存储的是带有属性信息的实体集合。③队列(Queue)服务,确保服务之间可靠的、持久的消息传递.主要实现Web角色实例和Woeker角色实例间的通信。6.简述MapReduce操作的全部流程。 Map :把一个函数应用于集合中所有成员,然后返回一个基于这个处理的结果集。Reduce:对结果集进行分类和归纳。 MapReduce处理数据过程主要分成2个阶段:map阶段和reduce阶段,先执行map阶段,再执行reduce阶段。1)在正式执行map函数前,需要对输入进行“分片”(就是将海量数据分成大概相等的“块”,hadoop的一个分片默认是64M),以便于多个map同时工作,每一个map任务处理一个“分片”。2)分片完毕后,多台机器就可以同时进行map工作了。map函数要做的事情,相当于对数据进行“预处理”,输出所要的“关切”。map对每条记录的输出以 7.简述云计算核心架构安全中的各项关键技术。1) IaaS层是云计算的基础。通过建立大规模数据中心,IaaS层为上层云计算服务提供海量硬件资源。2)PaaS层作为3层核心服务的中间层,既为上层应用提供简单、可靠的分布式编程框架,又需要基于底层的资源信息调度作业、管理数据,屏蔽底层系统的复杂性。3)SaaS层面向的是云计算终端用户,提供基于互联网的软件应用服务。4)服务管理层,为了使云计算核心服务高效、安全地运行,需要服务管理技术加以支持。 1 虚拟化的概念?虚拟化是表示计算机资源的抽象方法,通过虚拟化可以用与访问抽象前资源一致的方法来访问抽象后的资源。这种资源的抽象方法并不受实现、地理位置或底层资源的物理配置限制。(wiki) 6 虚拟化与云计算的关系? 虚拟化技术以及各种计算机科学概念,虚拟化的发展和商业实现打开了 云计算的大门,而云计算本质上说应该就是虚拟化服务。从虚拟化和云计算的过程,我们实 现了跨系统的资源调度,将大量的计算机资源组成资源池,用于动态地创建高度虚拟化的资源提供给用户,从而最终实现应用、数据、IT 资源以服务的方式通过网络提供给客户。可以说云计算是虚拟化的最高境界,虚拟化是云计算的底层结构。补充: 1 虚拟化的典型类型:基础设施虚拟化、系统虚拟化、软件虚拟化 2 虚拟化的目的 :对象脱离原有环境、在计算机上被表示、通过计算机控制按需获取。7.分布式可繁也可以简,请你组建一个最简单的分布式系统模型。 篇二:对几种典型分布式计算技术的比较 对几种典型分布式计算技术的比较 分布式计算是一门计算机学科,它主要是研究如何把一个需要巨大计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多不同的计算机进行处理,最后把这些计算结果综合起来得到最终的结果。本文还对分布式计算技术的工作原理和几种典型的分布式计算技术,如中间件技术、网格技术、移动Agent技术、P2P技术以及Web Service技术进行了分析和比较,介绍了存储整合在分布式计算技术中的应用,指出了其存在的一些问题。 1 概述 所谓分布式计算就是在两个或多个软件互相共享信息,这些软件既可以在同一台计算机上运行,也可以在通过网络连接起来的多台计算机上运行。分布式计算研究主要集中在分布式操作系统和分布式计算环境研究两个方面。但随着Internet技术的飞速发展,分布式计算的研究热点也从以分布式操作系统为中心的传统模式转换到以网络计算平台为中心实用分布式技术,并取得了较大的成功。此外,在过去的20多年间也涌现出了大量的分布式计算技术,如中间件技术、网格技术、移动Agent技术、P2P技术以及Web Service技术。它们在特定的范围内都得到了广泛的应用。 2 几种典型的分布式计算技术 2.1中间件技术 中间件(middleware)是一个基础性软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。 在众多关于中间件的定义中,比较普遍被接受的是IDC表述的:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。 中科院软件所研究员仲萃豪形象地把中间件定义为:平台+通信。这个定义限定了只有用于分布式系统中的此类软件才能被称为中间件,同时此定义还可以把中间件与支撑软件和实用软件区分开来。 2.2 网格计算技术 网格计算(Grid computing)通过利用大量异构计算机(通常为桌面)的未用资源(CPU 周期和磁盘存储),将其作为嵌入在分布式电信基础设施中的一个虚拟的计算机集群,为解决大规模的计算问题提供了一个模型。网格计算的焦点放在支持跨管理域计算的能力,这使它与传统的计算机集群或传统的分布式计算相区别。 网格计算的设计目标是解决对于任何单一的超级计算机来说仍然大得难以解决的问题,并同时保持解决多个较小的问题的灵活性。这样,网格计算就提供了一个多用户环境。它的第二个目标就是:更好的利用可用计算机,迎合大型的计算练习断断续续的需求。这隐含着使用安全的授权技术,以允许远程用户控制计算资源。 网格计算包括共享异构资源(基于不同的平台,硬件/软件体系结构,以及计算机语言),这些资源位于不同的地理位置,属于一个使用公开标准的网络上的不同的管理域。简而言之,它包括虚拟化计算资源。网格计算经常和集群计算相混淆。二者主要的不同就是:集群是同 构的,而网格是异构的;网格扩展包括用户桌面机,而集群一般局限于数据中心。对于网格计算(Grid computing)这一术语有三重理解可供参考,如下: 为万维网诞生起到关键性作用的欧洲核子研究组织(CERN,European Organization for Nuclear Research),其对网格计算是这样定义的:“网格计算就是通过互联网来共享强大的计算能力和数据储存能力”。外部网络(External grids)。事实上,网络计算对分布在世界各地的、非营利性质的研究机构颇有吸引力,进而造就了美国国家超级电脑应用中心计算生物学网格,如生物学和医学信息学研究网络。内部网络(Internal grids)。同样,网络计算对那些需要解决复杂计算问题的商业公司有着非同一般的吸引力,其目标是将企业内部的计算能力最大化。 2.3 移动Agent技术 移动Agent的最初概念是在20世纪90年代初,由General移动Agentgic公司在推出商业系统Telescript时提出的。它是一可执行的程序,分布式人工智能技术和网络技术发展的必然结果,能够携带其代码和状态自主地从网络中一个节点移动到另一个节点上运行,寻找合适的计算资源和信息资源,完成特定的任务。移动Agent具有智能性和移动性,并根据服务需要协调多个Agent的行为,协作执行特定任务。 移动Agent是一种软件对象,它能携带执行代码、数据和运行状态,在复杂的网络中自治的、有目的迁移,并能响应外部事件,在迁移过程中能保持状态的一致性。移动Agent就是一个能在异构网络中自主地从一台主机迁移到另一台主机,并可与其它Agent或资源交互的程序。 移动Agent技术是分布式技术和Agent技术相结合的产物,它结合了分布式计算机技术和人工智能技术,它除了具有智能Agent的最基本特性:自主能力、社交能力、适应能力和一致主动性,还具有移动能力、可靠性和安全性。移动Agent不同于基于过程的RPC,也不同于面向对象的对象引用,其独特的对象传递思想和卓越的特性给分布式计算乃至开发系统带来了巨大的革新。移动Agent技术在实际中得到了广泛的应用,主要应用于电子商务、分布式信息检索、无线通信服务、入侵检测和网络管理等方面。 2.4 P2P技术 P2P技术起源于最初的联网通信方式,如在建筑物内PC通过局域网互联,不同建筑物间通过Modem远程拨号互联。其中建立在TCP/IP协议之上的通信模式构成了今日互联网的基础,所以从基础技术角度看,P2P不是新技术,而是新的应用技术模式。今天,P2P再一次被关注主要是由Napster以及ICQ类软件的出现,虽然在Napster之前P2P方式的研究也从未停止。现在互联网是以S(Server)/B(Browser)或S/C(Client)结构的应用模式为主的,这样的应用必须在网络内设置一个服务器,信息通过服务器才可以传递。信息或是先集中上传到服务器保存,然后再分别下载(如网站),或是信息按服务器上专有规则(软件)处理后才可在网络上传递流动(如邮件)。 如今拥有Napster及ICQ类软件的PC(或操作者)就可以选择同样拥有此类软件的另一PC(或操作者)形成互联(直接连接,不通过服务器),双方共享资源,协同完成某种行动。而拥有同一P2P软件的设备和用户,还可以形成一个为其自己所有的在互联网上的P2P专用网。 目前互联网主要技术模式是S/C方式,此方式要在互联网上设置拥有强大处理能力和大带宽的高性能计算机,配合高档的服务器软件,再将大量的数据集中存放在上面,并且要安装多样化的服务软件,在集中处理数据的同时可以对互联网上其他PC进行服务,提供或接收数据,提供处理能力及其他应用。对于一台与服务器联机并接受服务的PC机来说,这台PC机就是客户机,其性能可以相对弱小。而P2P技术的特征之一就是弱化了服务器的作用,甚至取消服务器,任意两台PC互为服务器,同时又是客户机,即对等。右面是P2P与S/C方式的一些比较: S/C方式造成互联网络上的集中,无论信息资源还是成本资源均向同一方向集中,这样的模式符合一对多、强对弱的社会关系形式,如政府对个人、对企业,大企业对小企业,学校对学生,企业对职工等等关系。所以S/C方式是符合市场需求的。P2P方式将导致信息数量、成本资源都向互联网各点均匀分布,也就是所谓“边缘化“的趋势。此模式符合“一对一”的特点,以及彼此相当的社会关系形式,如个人对个人,规模相当的企业之间,等等,这也是符合市场需求的(如ICQ)。所以这两种方式会共存,有关P2P即将替代S/C模式的说法是不成立的。P2P有其独特的市场空间,是现有互联网应用的补充,这一点应该是毫无疑问的。 P2P技术特性: 1)既是S又是C,如何表现取决于用户的要求,网络应用由使用者自由驱动。 2)信息在网络 3)构成网络设备互动的基础和应用。 4)在使网络信息分散化的同时,相同特性的P2P设备可以构成存在于互联网这张大网中的子网,使信息按新方式又一次集中。 2.5WebService技术 WebService使用标准技术,通过它,软件应用程序资源在各网络上均可用。因为Web Service基于标准接口,所以即使是以不同的语言编写并且在不同的操作系统上运行,它们也可以进行通信。因此,Web Service是生成必须适用于网络上不同系统的分布式应用程序的极好方法。 标准技术因为Web Service符合公认的标准,所以能够以这种通常可访问的方式来公开其资源。 Web Service使用的标准技术包括:通过WSDL文件公开描述其自身功能;通过XML消息(通常使用SOAP格式)与其他应用程序进行通信;使用标准网络协议,如HTTP等。Web Service(在中央)、其客户端软件应用程序(在左侧)及其使用的资源(包括数据库、其他Web Service等)(在右侧)之间的关系(如图1)。Web Service通过使用标准协议(如HTTP)交换XML消息来与客户端和各种资源进行通信。在WebLogic Server上部署Web Service后,由WebLogic Server负责将传入的XML消息路由到您编写的Web Service代码。Web Service将导出WSDL文件,以描述其接口,其他开发人员可以使用此文件来编写访问此Web Service的组件。 2.6 几种技术的比较 Web Service技术的体系结构与基于中间件分布式系统的体系结构相比,发现它们是非 常相似的,可以把体系结构中的Web程序看作中间件。从结构上来看,Web服务只是从侧面对中间件平台技术进行革新,虽然所有服务之间的通信都以XML格式的消息为基础,但调用服务的基本途径主要还是RPC,而且具体实现并没有提供一种全新的编程模式。 网格计算与基于中间件的分布式计算技术相比较,它依然以“中间件”为技术核心,在实现形式上并没有太大的改变。然而经过一系列的技术革新,网格系统中的技术内涵已经发生了深刻的变化。其一,基于中间件的分布式计算技术的资源主要是指数据和软件,而网格计算的资源已经延伸到所有用于共享的实体,包括硬件、软件,甚至分布式文件系统、缓冲池等;其二,在Internet上,网格中间件层提供了与Web服务一样优秀的扩展功能,打破了传统分布式技术C/S模式的局限。 网格计算、Web Service等技术在异构平台上构筑了一层通用的、与平台无关的信息和服务交换设施,从而屏蔽了Internet中千差万别的差异,使信息和服务畅通无阻地在计算机之间流动。网格计算与Web Service技术的共同载体是Internet。但两者的不同之处在于,网格系统连接物理上分散的硬件资源,形成虚拟计算组织,从而使计算资源得到充分共享。而Web服务则是以商务应用为背景,是基于网格系统之上的。网格系统为Web服务提供一个与硬件无关的虚拟计算机;而Web服务是架构在虚拟计算机平台上,与环境、语言无关的应用集成平台。 尽管/zixun/各种分布式计算技术在理念、规范和实现等方面有较大的差异,但它们之间并不矛盾,而是一种承上启下的关系,有时甚至是融合的。因此,各种分布式计算技术可以共同存在,它们的相互结合也是非常有意义和现实的。3 存储整合 因为分布式计算模式的核心常常是每个部门选择各自不同的电脑系统,这样就会造成由于数据格式的不统一所导致的管理困难,其次管理分布式计算中所用的大量存储设备所需的费用也是一笔庞大的开支。这些都有悖于分布式计算技术的初衷。所以,存储整合对分布式计算技术的发展起着不可低估的作用。 存储整合是指多个异构型主机共享集中式存储。针对不同的环境和要求,有许多不同的整合方法,但主要有以下三种形式: 1)从存储在多个服务器上转变为存储在单个服务器上。此模式可以降低管理工作的复杂性和对数据中心占地面积的要求; 2)直接将多个异构型服务器附加到一个存储设备上。此模式极大降低了存储成本,同时也可以简化管理; 3)整合到存储局域网上(SAN)。此模式既有利于提高工作效率,降低管理工作的复杂性,同时还可以提高可扩展性,可用性和数据可访问性。 所以,在分布式计算技术越来越得到广泛应用的今天,存储整合技术也显示出它重要的地位。 4 共同存在的问题 通过上面对几种技术的分析与比较,我们不难发现它们均存在着一些共同的问题。 1)标准问题 目前,几乎所有的分布式计算技术都没有完整的统一的标准,虽然已开始这方面的工作, 标准的缺乏使得分布式计算技术研究分散,很难形成稳定的研究方向,从而在很大程度上制约了分布式计算技术的发展。 2)软件方法问题 软件方法学是软件能够进行工业化生产的前提。但缺乏可行的软件方法学使得分布式计算软件的质量、开发进度等很难得到保证,没有工业化生产方式,分布式计算系统的普及将十分困难。 3)异构问题 现在的网络是一个异构的环境,分布式计算技术首先需要解决异构环境的互操作问题。而要解决异构环境的互操作问题,首要的任务是如何互相识别。目前,既不可能要求所有的资源用同一种方式描述,又没有方法可智能地识别这些资源,这就导致任何一种分布式计算技术只能在一定的范围内使用。 4)安全性问题 分布式计算技术面临的最大挑战就是不断增长的网络规模,整个平台的安全性方面的问题就会极为严重。 5 展望 随着Internet上的硬件、软件、数据库等资源急速膨胀,其关联关系不断发生变化,但是到目前为止,所有这些资源的共享和社会化程度还很低,基本上是各自为政,相互间缺乏有效的交互、协作与协同能力。因此要创建大型的、松散的、健壮的分布式系统还必须以先进技术和大量劳动为基础,除了各种资源本身的技术和管理之外,关键的因素是标准的建立,从底层信号的传输到复杂业务的流程等各种不同的层次都要形成统一的标准。此外到目前为止,所有的分布式计算技术都或多或少存在没有解决的问题,还没有哪一种技术被所有的研究者认同为分布式计算技术研究的方向,也没有哪一种技术能实现完全意义上的分布式计算,满足所有分布式计算的需求。 篇三:分布式系统概述与云计算 分布式系统概述与云计算 软件专业09-1班 李天 (20) 指导教师:胡晓宏 摘 要 随着社会的信息化和互联网的发展,分布式系统的重要性日益提高。本文将从分布式系统的产生、发展、演变谈起,并展望分布式系统的未来,并着重谈分布式系统的主要应用:云计算。 关键词:分布式系统 云计算 引 言 分布式计算是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。 云计算是分布式计算、并行计算和网格计算的发展,或者说是这些计算机科学概念的商业实现。其基本原理是通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中。(网格计算是分布式计算的一种。通过利用大量异构计算机(通常为桌面)的闲置资源(CPU、磁盘空间等),将其作为嵌入在分布式电信基础设施中的一个虚拟的计算机集群,以解决大规模的计算问题。网格计算的焦点在于支持跨管理域计算的能力,这使它与传统的计算机集群或传统的分布式计算相区别。) 概 述 分布式 : 分布式数据库的研究始于20世纪70年代中期。世界上第一个分布式数据库系统SDD-1 是由美国计算机公司(CCA)于1979年在DEC计算机上实现。20世纪90年代以来,分布式数据库系统进入商品化应用阶段,传统的关系数据库产品均发展成以计算机网络及多任务操作系统为核心的分布式数据库产品,同时分布式数据库逐步向客户机/服务器模式发展。 分布式系统,顾名思义,为操作系统的一种类型,是传统操作系统思想的变革。分布式操作系统安装在整个分布系统里面,其中任何一台也可以安装有自己的本地操作系统。 分布式操作系统负责管理分布式处理系统资源和控制分布式程序运行。它和集中式操作系统的区别在于资源管理、进程通信和系统结构等方面。 分布式系统主要分为以下几类:分布式软件系统,分布式文件系统,分布式数据库系统。 分布式软件系统(Distributed Software Systems)是支持分布式处理的软件系统,是在由通信网络互联的多处理机体系结构上执行任务的系统。它包括分布式操作系统、分布式程序设计语言及其编译(解释)系统、分布式文件系统和分布式数据库系统等。 分布式文件系统具有执行远程文件存取的能力,并以透明方式对分布在网络上的文件进行管理和存取。 分布式数据库系统由分布于多个计算机结点上的若干个数据库系统组成,它提供有效的存取手段来操纵这些结点上的子数据库。分布式数据库在使用上可视为一个完整的数据库,而实际上它是分布在地理分散的各个结点上。当然,分布在各个结点上的子数据库在逻辑上是相关的。 分布式程序设计语言用于编写运行于分布式计算机系统上的分布式程序。一个分布式程序由若干个可以独立执行的程序模块组成,它们分布于一个分布式处理系统的多台计算机上被同时执行。它与集中式的程序设计语言相比有三个特点:分布性、通信性和稳健性。 分布式数据库系统是由若干个站集合而成。这些站又称为节点,它们在通讯网络中联接在一起,每个节点都是一个独立的数据库系统,它们都拥有各自的数据库、中央 处理机、终端,以及各自的局部数据库管理系统。因此分布式数据库系统可以看作是一系列集中式数据库系统的联合。它们在逻辑上属于同一系统,但在物理结构上 是分布式的。 1.分布式数据库系统发展其原因 (1)它可以解决组织机构分散而数据需要相互联系的问题。比如银行系统,总行与各分行处于不同的城市或城市中的各个地区,在业务上它们需要处理各自的数据,也需要彼此之间的交换和处理,这就需要分布式的系统。 (2)如果一个组织机构需要增加新的相对自主的组织单位来扩充机构,则分布式数据库系统可以在对当前机构影响最小的情况下进行扩充。 (3)均衡负载的需要。数据的分解采用使局部应用达到最大,这使得各处理机之间的相互干扰降到最低。负载在各处理机之间分担,可以避免临界瓶颈。 (4)当现有机构中已存在几个数据库系统,而且实现全局应用的必要性增加时,就可以由这些数据库自下而上构成分布式数据库系统。 (5)相等规模的分布式数据库系统在出现故障的几率上不会比集中式数据库系统低,但由于其故障的影响仅限于局部数据应用,因此就整个系统来讲它的可靠性是比较高的。 2.特点 (1)在分布式数据库系统里不强调集中控制概念,它具有一个以全局数据库管理员为基础的分层控制结构,但是每个局部数据库管理员都具有高度的自主权。 (2)在分布式数据库系统中数据独立性概念也同样重要,然而增加了一个新的概念,就是分布式透明性。所谓分布式透明性就是在编写程序时好象数据没有被分布一样,因此把数据进行转移不会影响程序的正确性。但程序的执行速度会有所降低。 (3) 集中式数据库系统不同,数据冗余在分布式系统中被看作是所需要的特性,其原因在于:首先,如果在需要的节点复制数据,则可以提高局部的应用性。其次,当某 节点发生故障时,可以操作其它节点上的复制数据,因此这可以增加系统的有效性。当然,在分布式系统中对最佳冗余度的评价是很复杂的。 分布式系统的类型,大致可以归为三类: 1、分布式数据,但只有一个总据库,没有局部数据库。 2、分层式处理,每一层都有自己的数据库。 3、充分分散的分布式网络,没有中央控制部分,各节点之间的联接方式又可以有多种,如松散的联接,紧密的联接,动态的联接,广播通知式联接等。 3.分布式系统的优点 (1)更适合管理与控制。分布式系统的结构更适合具有地理分布特性的组织或机构使用,允许分布在不同区域、不同级别的各个部门对其自身的数据实行局部控制。例 如:实现全局数据在本地录入、查询、维护,这时由于计算机资源靠近用户,可以降低通信代价,提高响应速度,而涉及其他场地数据库中的数据只是少量的,从而 可以大大减少网络上的信息传输量;同时,局部数据的安全性也可以做得更好。 (2)具有灵活的体系结构。集中式系统强调的是集中式控制,物理数据库是存放在一个场地上的,由一个DBMS (Database Management System,数据库管理系统)集中管理。多个用户只可以通过近程或远程终端在多用户操作系统支持下运行该DBMS来共享集中是数据库中的数据。而分布式系统的场地局部DBMS的自治性,使得大部分的局部事务管理和控制都能就地解决,只有在涉及其他场地的数据时才需要通过网络作为全局事务来管理。分布式DBMS可以设计成具有不同程度的自治性,从具有充分的场地自治到几乎是完全集中式的控制。 (3)系统经济,可靠性高,可用性好。与一个大型计算机支持一个大型的集中数据库加一些进程和远程终端相比,由超级微型计算机或超级小型计算机支持的分布式数据 库系统往往具有更高的性价比和实施灵活性。分布式系统比集中式系统具有更高的可靠性和更好的可用性。如由于数据分布在多个场地并有许多复制数据,在个别场 地或个别通信链路发生故障时,不致于导致整个系统的崩溃,而且系统的局部故障不会引起全局失控。 (4)在一定条件下响应速度加快。如果存取的数据在本地数据库中,那末就可以由用户所在的计算机来执行,速度就快。 (5) 可扩展性好,易于集成现有系统,也易于扩充。对于一个企业或组织,可以采用分布式数据库技术在以建立的若干数据库的基础上开发全局应用,对原有的局部数据 库系统作某些改动,形成一个分布式系统。这比重建一个大型数据库系统要简单,既省时间,又省财力、物力。也可以通过增加场地数的办法,迅速扩充已有的分布 式数据库系统。 4.分布式系统的缺点 (1)通信开销较大,故障率高。例如,在网络通信传输速度不高时,系统的响应速度慢,与通信县官的因素往往导致系统故障,同时系统本身的复杂性也容易导致较高的故障率。当故障发生后系统恢复也比较复杂,可靠性有待提高。 (2)数据的存取结构复杂。一般来说,在分布时数据库中存取数据,比在集中时数据库中存取数据更复杂,开销更大。 (3) 数据的安全性和保密性较难控制。在具有高度场地自治的分布时数据库中,不同场地的局部数据库管理员可以采用不同的安全措施,但是无法保证全局数据都是安全 的。安全性问题式分布式系统固有的问题。因为分布式系统式通过通信网络来实现分布控制的,而通信网络本身却在保护数据的安全性和保密性方面存在弱点,数据 很容易被窃取 (4)分布式数据库的设计、场地划分及数据在不同场地的分配比较复杂。数据的划分及分配对系统的性能、响应速度及可用性等具有极大的影响。不同场地的通信速度与局部数据库系统的存取部件的存取速度相比,是非常慢的。通信系统有较高的延迟,在CPU上处理通信信息的代价很高。分布式数据库系统中要注意解决分布式数据库的设计、查询处理和优化、事务管理及并发控制和目录管理等问题。 分布式系统的重要应用——云计算 云计算属于分布式系统,众所周知,并行程序的设计、编码和调试非常挑战,在云计算分布式系统中,由于网络延时(毫秒级)远远大于单机系统内延时(微秒 级)、部件的不可靠性以及节点之间较松的耦合度(低于通常的并行大型计算机)和异构性,高效并行程序的设计和实现难度更大,极大地阻碍普通程序员使用云计算系统。为了解决这个问题,Google创造性地把Map/Reduce模型成功地应用到了云计算系统中,极大地降低 了云计算系统应用程序的开发难度且提高了云计算系统的并行度和运行效率,这就是云计算的分布式计算系统 “云计算”(Cloud Computing)是分布式处理(Distributed Computing)、并行处理(Parallel Computing)和网格计算(Grid Computing)的发展,或者说是这些计算机科学概念的商业实现。 云计算这个名词可能是借用了量子物理中的“电子云”(Electron Cloud),强调说明计算的弥漫性、无所不在的分布性和社会性特征。量子物理上有“电子云(electron cloud)”,在原子核周围运动的电子不是一个经验世界的轨道例如像天体一样的运行轨道,而是弥漫空间的、云状的存在,描述电子的运动不是牛顿经典力学而是一个概率分布的密度函数,用薛定谔波动方程来描述,特定的时间内粒子位于某个位置的概率有多大,这跟经典 力学的提法完全不同。电子云有弥漫性、同时性等等,云计算可能的确是来自电子云的概念,云计算的确会改变信息产业的格局,现在许多远程软件应用如Office字处理而不是在本地机器上安装应用软件,这种计算和产业动向是符合开源精神的,符合SaaS(Software as a Service)趋势。 IBM把自己的计划称作“Blue Cloud”(蓝色的云)并宣称这是它互联网规模的“改变游戏规则”的模式,向用户提供恰当规模的计算能力,同时这些计算能力将是“绿色的”以及基于开放标准和Linux的“自我修复和自我管理的”。 从云计算的描述和IBM对“蓝云”计划的描述可知,所谓的云计算可以被看成是网格计算和虚拟化技术的融合:即利用网格分布式计算处理的能力,将IT资源构筑成一个资源池,再加上成熟的服务器虚拟化、存储虚拟化技术,以便用户可以实时地监控和调配资源。不过,这样的说法不尽正确,云计算的概念涵盖了网格计算,并且加上了更多企业级安全的因素。 虽然云计算环境也可通过快速 提供可以运行网格应用的物理和虚拟服务器来支持网格计算,但是二者还是有很多区别。网格计算需要将一个大型的任务分解为多个小任务,以并行方式运行在不同 的服务器上,并且通常使用很多计算机,一般是数千台。而云计算也支持非网格环境,比如标准的三层Web架构或Web 2.0应用。 最重要的是,云不仅仅是计算机资源的简单汇集,更是提供了一种管理机制。云系列产品的核心竞争力,首先是对开源的支持,其次是在高层次的虚拟化实现,其三是自动配置能力,最后则是提供企业级安全的互联网计算能力。 1.云计算的分布式计算系统的主要优点 (1)应用程序开发者不需要设计、编写和调试并行程序 开发者只需要设计、编写和调试普通的串行程序,即map函数和reduce函数,调试通过后提交到云计算系统,由云计算分布式系统框架把它们分发到成百上 千台计算机(云计算的worker)上运行,并汇总和返回运行后的结果。开发者甚至不需要有分布式或者并行程序方面的经验或背景; (2)高效率 这是篇好范文参考内容,讲的是关于节点、时间、一个、资源、系统、操作、进程、信息等方面的内容,看完如果觉得有用请记得(CTRL+D)收藏。
热门技术工作总结范文推荐:
★信息技术工作总结一个例子
★电力技术总结范文
★结合一个具体工程项目,拟定一个测绘项目技术设计和技
★室内设计个人技术总结
★jquery常用技术总结
★生物常用原理技术总结