《分布式系统模型.ppt》由会员分享,可在线阅读,更多相关《分布式系统模型.ppt(83页珍藏版)》请在三一办公上搜索。
1、1,第2章 系统模型,2,第一章回顾,引言分布式系统的目标(设计、分析、实现-资源共享等)、定义(建立在网络之上的软件系统)、特点(并发性、没有全局时钟、故障独立性)分布式系统举例 Internet/Intranet/Mobile Computing等挑战 异构性、开放性、安全性、可扩展性、正确性、透明性,如何故障处理、并发处理、复制透明等总结 分布式系统无处不在,分布式系统具有高度的内聚性和透明性。,3,第2章 系统模型,引言体系结构模型基础模型总结,4,引言,The Swedish Ship Vasa 17世纪上半叶,北欧新教势力与中欧天主教势力发生了一场“三十年战争”,作为北欧新教势力的
2、代表,瑞典的军事力量达到鼎盛时期。1625年,号称“北方飓风”的瑞典国王古斯塔夫斯阿道弗斯(Gustavs Adolphus)决心建造一艘史无前例的巨型新战舰瓦萨(Vasa)战舰。瓦萨战舰确实是一艘令人望而生畏的战舰:舰长70米,载员300人,在三层的甲板上共装有64门重炮,火力超强。,5,瓦萨战舰的首航1628年8月10日,这艘巨大的战舰终于完工。在1万多名围观者的目光注视下,忽然,瓦萨号奇怪地摇晃了一下,便向左舷倾斜。海水从炮孔处涌入船舱,战舰迅速翻入水中。几分钟后,这艘雄伟战舰的处女航也是唯一的一次航行结束了。瓦萨战舰在它壮丽的起航时刻,带着全身飘扬的彩旗,沉没于它诞生的港口。,引言,6
3、,引言,瓦萨战舰为什么沉没?人们对瓦萨的沉没做出了各种各样的分析,最后的主要结论是:该舰制造工艺精良,但“比例严重失调”。也就是说,该战舰的架构存在缺陷。,7,引言,不同类型的分布式系统表现出共同的基本特性及设计问题。模型试图对分布式系统的相关方面给出抽象、简化但一致的描述。结构模型(Architectural Model)基础模型(Fundamental Model),8,引言,结构模型构成系统各部分(components,computers,procedures)的位置、角色和它们之间的关系,它定义了系统的各组件之间相互交互的方式以及它们映射到下面的计算机网络的方式。客户/服务器结构对等结
4、构(客户/服务器模型的变种),9,客户/服务器结构,它是所有网络应用的基础。客户/服务器分别指参与一次通信的两个应用实体,客户方主动地发起通信请求,服务器方被动地等待通信的建立。优点:可以在用户态服务器中构造各种各样的API,为应用程序与服务间通过RPC调用进行通信提供一致的方法,且没有限制其灵活性,为分布式计算提供了适当的基础。客户/服务器模型扩展 在(多个)协作的服务器上划分和复制数据;由代理服务器和客户进行数据缓存;使用移动代码和移动代理;以方便的方式添加和删除移动设备。,10,对等结构,该结构可由若干互联协作的计算机构成,且至少具有如下特征之一:系统依存于边缘化(非中央式服务器)设备的
5、主动协作;每个成员直接从其他成员而不是从服务器的参与中受益;系统中成员同时扮演服务器与客户端的角色;系统应用的用户能够意识到彼此的存在,构成一个虚拟或实际的群体。,11,引言,基础模型:对体系结构模型中公共属性的一种更为形式化的描述交互模型:处理消息发送的性能问题,解决在分布式系统中设置时间限制的难题。例如对于消息传递,反映了进程交互的方式。故障模型:试图给出进程和信道(通信通道)故障的一个精确的约定。它定义了什么是可靠通信和正确的进程。安全模型:讨论对进程的和信道的各种可能的威胁。引入了安全通道的概念,它可以保证在存在各种威胁的情况下通信的安全。,12,引言,设计者面临的困难和挑战使用模式的
6、多样性系统环境的多样性内部问题:非同步的时钟,数据修改的不一致性、系统中单个部件的软件硬件故障。外部问题:数据在传输过程中存在着对私密性、完整性的攻击。,13,第2章 系统模型,引言体系结构模型基础模型总结,14,Architectures,Architectural stylesSoftware architecturesArchitectures versus middlewareSelf-management in distributed systems,15,体系结构模型,一个系统的体系结构是指各个独立指定组件的结构。建筑物的结构设计有类似的方面:不仅要确定它的外观,而且要确定它的总体
7、结构和结构风格。整体目标是确保结构能满足现在和将来可能的需求。主要关心系统可靠性、适应性、可管理性和性价比。,16,体系结构模型,体系结构模型首先简化和抽象系统每个独立的构成模块的作用和功能;其次在网络中如何部署各个组件,对数据分布和负载定义有用的模式;各个模块之间的关系,组件的角色和组件之间的通讯模式;例如:分布式存储系统的角色、数据、数据的索引。由此确定了目录服务器和数据服务器,以及它们之间的关系和通信交互模式。例如:门户网站:client/server模型,因为门户网站和用户不可能对等(应用模式)。为了减少服务器的负载,服务器之间可以P2P连接(效率、扩展性)。,17,体系结构模型,软件
8、体系结构是指计算机里软件的分层或模块结构,近来多指进程之间请求和提供的服务。,18,体系结构模型,平台(Platform)最底层的软硬件,为上层提供服务。如:Intel x86(X86是处理器中一种很“本质”的“大架构”)/WindowsIntel x86/LinuxIntel x86/SolarisSPARC(“可扩充处理器架构”(Scalable Processor ARChitecture)/SunOSPowerPC(一种RISC架构)/MacOS,19,体系结构模型,中间件层中间件是一种软件,它提供基本的通信模块和其他一些基础服务模块,为应用程序开发提供平台。主要解决异构网络环境下分布
9、式应用软件的互连与互操作问题,它可屏蔽实现细节,提高应用系统的易移植性。,20,体系结构模型,中间件要解决的问题。硬件:数据类型在不同的硬件平台上有不同的表示:big-endian,little-endian。PowerPC 系列采用big-endian方式存储数据,而 X86 系列则采用 little-endian方式存储数据。通信协议:独立于网络底层的传输协议。操作系统:在操作系统层上提供更高级的抽象API,屏蔽操作系统的异构。编程语言:CORBA通过IDL,可以使得不同的语言写的代码互相调用。CORBA-公共对象请求代理结构(Common Object Request Broker Ar
10、chitecture),由对象管理组织(Object Management Group,缩写为 OMG)标准化。它的组成是接口定义语言(IDL),语言绑定(binding,联编)和允许应用程序间互操作的协议。中间件提供了一个编程的抽象,来屏蔽上述的异构问题。,21,体系结构模型,中间件的特性满足大量应用的需要 运行于多种硬件和OS平台 提供跨网络、硬件和OS平台的透明性的应用或服务的交互 支持标准的协议 支持标准的接口,由于标准接口对于可移植性和标准协议对于互操作性的重要性,中间件已成为许多标准化工作的主要部分。对于应用软件开发,中间件提供的程序接口定义了一个相对稳定的高层应用环境。不管底层的
11、计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对外的接口定义不变,应用软件几乎不需任何修改。,22,软件体系结构,分布式系统设计主要考虑:系统组件之间的责任划分;组件在网络上的放置。以上两个因素对系统性能、可靠性和安全性有较大影响。,23,体系结构模型-分布式体系结构的设计需求,资源共享是分布式系统的基本目标,但是在大规模的系统中仍能保证有效的共享是一个严重的挑战。性能服务质量缓存和复制的使用可靠性问题,24,体系结构模型-分布式结构设计的需求,性能问题响应能力服务器和网络的负载操作系统、中间件和代码执行引起的延迟吞吐量单位时间内能完成的任务量它由处理速度和传输速度决定负
12、载平衡多个机器同时提供服务用applets在本地和客户端交互,25,体系结构模型-分布式结构设计的需求,QoS-服务质量非功能性的特征:可靠性、安全性(基础模型中的两个问题)、性能。适应性(adaptability):满足变化的系统配置和资源可用性的要求,也将被看作是服务质量的重要指标。性能一般来说体现在响应时间和吞吐量上,但是一些新的解释是能否满足时间性的要求。(用基础模型中的交互模型来刻画)。有些应用处理强时间性数据(time-critical data),例如:流媒体,要求按一定的速率处理。QoS可以在操作系统层、网络层以及各个层面上都可以实现。,26,体系结构模型-分布式结构设计的需求
13、,缓存和复制的使用使用数据复制和缓存解决性能问题Web缓存协议:客户请求的响应可能来自浏览器缓存,也可能来自客户和服务器之间的代理服务器缓存。,27,体系结构模型-分布式结构设计的需求,可靠性问题正确性没有成熟的技术容错性冗余是关键,例如:消息保存以便重传,使用副本技术进行容错。安全性保证数据不受攻击通过网络访问数据的权限,28,客户服务器模型,历史上最重要的结构之一,是Internet应用最常见的结构。,29,Centralized Architectures,Basic ClientServer Model-Characteristics:There are processes offer
14、ing services(servers)There are processes that use services(clients)Clients and servers can be on different machinesClients follow request/reply model to using services,30,Application Layering,Traditional three-layered viewUser-interface layer contains units for an applications user interfaceProcessi
15、ng layer contains the functions of an application,i.e.without specific dataData layer contains the data that a client wants to manipulate through the application components,31,Application Layering,32,对等体系结构,系统应用中,完全由对等进程组成,进程间的通信模式完全依赖于应用的需求。,33,Decentralized Architectures,ObservationIn the last cou
16、ple of years we have been seeing a tremendous growth in peer-to-peer systems.Structured P2P:nodes are organized following a specific distributed data structure结构化P2P网络使用分布式哈希表(DHT)技术将数据映射到相应的节点,以便在数据的存放与查找方面有很好的扩展性,同时P2P网络的路由表的容量和链路长度之间存在渐进曲线的关系。首先介绍现有的P2P网络拓扑类型,然后对基于DHT的结构化P2P网络进行了详细的分析比较。,34,Unstr
17、uctured P2P:nodes have randomly selected neighborsHybrid P2P:some nodes are appointed special functions in a well-organized fashionNoteIn virtually all cases,we are dealing with overlay networks:data is routed over connections setup between the nodes(cf.application-level multicasting),35,Structured
18、P2P Systems,Basic ideaOrganize the nodes in a structured overlay network such as a logical ring,and make specific nodes responsible for services based only on their ID.,36,Unstructured P2P Systems,ObservationMany unstructured P2P systems attempt to maintain a random graph.Basic principleEach node is
19、 required to contact a randomly selected other node:Let each peer maintain a partial view of the network,consisting of c other nodesEach node P periodically selects a node Q from its partial view P and Q exchange information and exchange members from their respective partial viewsNoteIt turns out th
20、at,depending on the exchange,randomness,but also robustness of the network can be maintained.,37,Superpeers,ObservationSometimes it helps to select a few nodes to do specific work:superpeer.,38,Hybrid Architectures:Client-server combined with P2P,ExampleEdge-server architectures,which are often used
21、 for Content Delivery Networks,39,Hybrid Architectures:C/S with P2P BitTorrent,Basic ideaOnce a node has identified where to download a file form,it joins a swarm of downloaders who in parallel get file chunks from the source,but also distribute these chunks amongst each other.,40,Architectures vers
22、us Middleware,ProblemIn many cases,distributed systems/applications are developed according to a specific architectural style.The chosen style may not be optimal in all cases)need to(dynamically)adapt the behavior of the middleware.InterceptorsIntercept the usual flow of control when invoking a remo
23、te object.,41,42,体系结构模型变体,使用多个服务器和缓存,增加性能和灵活性;使用移动代码和移动代理;用户需要硬件资源有限的、便于管理的低价格计算机;能方便地增加和删除移动设备的需求。,43,体系结构模型变体-服务器组,将不同的服务对象在不同的机器上实现 e.g.Web在几个主机上维护副本服务 e.g.Sun NIS(Network Information Service)Service,44,体系结构模型变体-代理服务器和缓存,缓存(Cache)保存最近使用过的数据,可以在本地缓 存,也可以在代理服务器上做缓存。缓存可以减少不必要的网络传输,减少服 务器负担,还可以代理其它用户
24、透过防火 墙访问服务器。,45,体系结构模型变体-移动代码,局部(本地)运行下载的代码的好处是,由于不会遭遇跟网络通信相关的延迟或带宽的变化(可变性),因此,会得到好的交互式响应。例子:一个股票代理可以提供一个定制服务来通知客户股票价格的变化。为了使用这个服务,每个客户必须下载一个特别的Applet,它从代理服务器那里接收更新,显示给用户,也许还要执行自动的买和卖操作。,46,体系结构模型变体-移动代码,将代码下载到客户端运行,可以提高交互的效率。,47,体系结构模型变体-移动代理,在网络上的计算机之间穿梭,并执行的代码。代替一些机器执行任务。例如:利用空闲计算机完成密集型计算,计算程序(连同
25、数据)从一个机器移动到另一个机器,在目的机上运行。和移动代码 的区别:移动代码是服务器与客户端之间传递代码,后者是在服务器之间传递。和远程调用比较:减少数据传输,降低通信开销。安全威胁限制了它的使用。移动代理系统的例子有:IBM的Aglet以及Voyager、AgentTCL等。,48,体系结构模型变体-网络计算机,本身不安装操作系统,而是从远程服务器上下载操作系统和应用软件。所有的应用数据和代码都存储在文件服务器上。用户可以移动。,49,体系结构模型变体-瘦客户,本地只是一个 GUI(图形用户界面),应用程序在远程计算机上执行。早期的大型机就有哑终端的概念,只不过那时大型机和哑终端在一个机房
26、。现在可以是通过网络访问服务器。缺点:高延迟。,50,体系结构模型变体-移动设备和自发互操作,设备带着软件组件在网络上移动移动透明性,变化的连接性自发互操作,能够无线联网,范围从大城市或更大的范围,到数百米,或几米。提供了对移动计算的支持,从而用户能够在网络环境之间携带它们的移动设备,并利用本地和远程的服务。,51,体系结构模型接口与对象,在分布式系统中,进程间的通信除了socket连接之外,大量的交互通过远程调用的形式完成的,接口与对象是远程调用的基础。接口定义一个进程中可调用的函数,要用一个或多个接口定义制定:功能,输入,输出。面向对象的语言用面向对象语言实现远程方法(rmi)调用,这是C
27、ORBA和JAVA采用的方法。分布式系统中责任的分布是设计的一个重要方面静态分配,事前确定每个机器或进程的作用。面向对象的模式中,对象可以动态实例化并马上调用。,52,Architectural styles,Basic ideaOrganize into logically different components,and distribute those components over the various machines.(a)Layered style is used for client-server system(b)Object-based style for distrib
28、uted object systems.,53,Architectural styles,Decoupling processes in space(“anonymous”)and also time(“asynchronous”)has led to alternative styles.(a)Publish/subscribe decoupled in space(b)Shared data space decoupled in space and time,54,第2章 系统模型,引言体系结构模型基础模型总结,55,基础模型,体系结构模型所涉及的问题:系统中的主要实体是什么?它们如何交互
29、?影响他们单个和集体行为的特征是什么?,56,基础模型,模型的目的显式地表示有关正在建模的系统假设;给定这些假设,就什么是可行的,什么是不可行的给出结论。,57,基础模型,交互模型进程之间通过消息传递进行交互,实现系 统的通信和协作功能。有较长时间的延迟。时间是进程间进行协调的基本的参照,在 分布式系统中,很难有相同的时间概念。独立进程之间相互配合的准确性受限于上 面两个因素。,58,基础模型,故障模型计算机或者网络发生故障,会影响服务的正确性。故障模型的意义在于将定义可能出现的故障的形式,为分析故障带来的影响提供依据。设计系统时,知道如何考虑到容错的需求。,59,基础模型,安全模型分布式系统
30、的模块特性以及开放性,使得它们暴露在内部和外部的攻击之下。安全模型的目的是提供依据,以此分析系统可能收到的侵害,并在设计系统时防止这些侵害的发生。,60,基础模型之交互模型,两个影响进程交互的因素通信性能不可能维护一个全局时间概念,61,基础模型之交互模型,通信通道的性能延迟第一个比特流从发出到到达目的节点在网络中所花费的时间。访问网络的时间、操作系统通信服务的时间带宽在单位时间内,网络上能够传输的信息的总量抖动传输一系列信息所花费时间的变化值E.g.抖动会影响流媒体服务的质量,因为这类数据要求相对稳定的传输率。,62,基础模型之交互模型,计算机时钟和时间事件时钟漂移率(Clock drift
31、 rate)局部时钟和一个精确的参考时钟的差值 Timing evente.g.,GPS,Logical time,63,基础模型之交互模型,交互模型的两个变体同步分布式系统进程执行每一步的时间有一个上限和下限。每个在网络上传输消息可在已知时间范围内接收到。每个进程的局部时钟相对于实际时间的漂移是在已知的范围内。,64,基础模型之交互模型,交互模型的两个变种异步分布式系统-没有可预测的时限进程执行速度每一步都可能需要任意长的时间消息传递延迟收到一个消息的等待时间可能任意长时钟漂移率漂移率可能是任意的,65,基础模型之交互模型,同步分布式系统和异步分布式系统的例子异步分布式系统EmailFTP同
32、步分布式系统VOD(Video On Demand)即视频点播技术 Voice Conference System,66,故障模型,定义故障发生的行为,帮助理解故障对分布式系统的影响。分类(针对分布式系统的节点与网络的故障场景,多伦多大学的Vassos Hadzialcos和康奈尔大学Sam Toueg于1994年进行了比较系统的分类)遗漏故障Omission failures随机故障Arbitrary failures时序故障Timing failures,67,故障模型-遗漏故障,进程或者通信通道没有正常的工作进程遗漏故障:进程崩溃进程停止:在同步系统中通过时限是可以检测出来的。但是在异步
33、系统中,即使很长时间没有收到来自某个进程的消息,也不能判断是进程停止了。通信遗漏故障:丢失信息发送丢失,接受丢失,通道丢失丢失故障是良性故障,68,故障模型-遗漏故障,69,故障模型-随机故障,随机故障(拜占庭故障):对系统影响最大的一种故障形式,而且错误很难探知。发生在进程中的随机故障:随便遗漏应有的处理步骤或者进行不应有的处理步骤,该做的不做,不该做的却做了。E.g.对一个过程调用返回一个错误的信息随机故障很少出现在通信信道。E.g.校验和,消息有序列号,70,故障模型-时间故障,仅仅发生在同步分布式系统中ClasseffectsDescriptionClockProcessProcess
34、s local clock exceeds the bounds on its rate of drift from real time.Performance ProcessProcess exceeds the bounds on the interval between two steps.Performance Channel A messages transmission takes longer than the stated bound.,71,故障模型-屏蔽故障,分布式系统中每个组件通常基于其他一组组件构造,利用存在故障的组件构造可靠的服务是可能。一对一通信的可靠性有效性(Va
35、lidity)在发送端缓冲区的消息最终能够到达接收端的缓冲区。完整性(Integrity)接收到的消息和发送的消息完全一样,没有消息被发送两次。,72,安全模型,分布式系统的安全性进程的安全性通信信道的安全性对象的安全性对对象的保护措施访问权限:在对象的访问控制表中规定什么人具有访问一个对象的权限权能:用户一方所持有的访问那些对象的权限,73,安全模型威胁,74,安全模型威胁,对进程的威胁对服务器:来自一个伪造实体的调用请求,例如:欺骗 mail server对客户端:收到一个伪造的结果。例如:窃取密码对信道的威胁拷贝消息,篡改或者填充保存并重发:例如:从资金在两个账号间转移,如果重发这样的请
36、求,将产生错误结果。,75,安全模型威胁,Dos攻击发出大量的服务请求,造成服务器过载不能提供服务,或者在网上传送大量的消息,占用带宽,拥塞网络。移动代码恶意代码入侵系统,例如:特洛依木马。,76,安全模型对策,加密技术和共享密钥通过共享密钥相互确认对方密码学(Cryptography)是基础认证(Authentication)对发送方提供确认身份进行认证。,77,安全模型对策,安全通道每个进程知道正在执行的进程所代表的委托方的身份。确保在其上传输的数据的私密性和完整性。每个消息包含物理的和逻辑的时间戳。,78,第2章 系统模型,引言体系结构模型基础模型总结,79,体系结构模型,Client/
37、Servere.g.Web,FTP,NEWSPeer processes Multiple Serverse.g.DNSProxy and Cachee.g.Web CacheVariations of C/SMobile code,mobile agent,network computer,thin client,spontaneous networks,80,基础模型,Interaction modelssynchronous DS and asynchronous DSFailure modelsomission failuresarbitrary failurestiming failuresSecurity modelthe enemiesthe approaches of defeating them,81,课堂讨论,应用场景:多人参与的聊天室什么样的体系结构模型适合这种应用?对照基础模型中的几个情况,讨论可能出现的问题。,82,课堂讨论,体系结构模型1:完全对等体系结构模型2:有中心的组管理服务器。交互模型:时序问题,不能一个人看到的回答先于问题到达。故障模型:消息丢失,保证每个组成员都要收到相同的消息。安全模型:消息的加密。,83,END,