分布式系统第二章.ppt

上传人:牧羊曲112 文档编号:6094360 上传时间:2023-09-23 格式:PPT 页数:58 大小:2.29MB
返回 下载 相关 举报
分布式系统第二章.ppt_第1页
第1页 / 共58页
分布式系统第二章.ppt_第2页
第2页 / 共58页
分布式系统第二章.ppt_第3页
第3页 / 共58页
分布式系统第二章.ppt_第4页
第4页 / 共58页
分布式系统第二章.ppt_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《分布式系统第二章.ppt》由会员分享,可在线阅读,更多相关《分布式系统第二章.ppt(58页珍藏版)》请在三一办公上搜索。

1、第2章 分布式系统体系结构,东北大学信息学院于 戈2011年9月,2011-9-14,计算机软件所 于戈,2,2.1 体系结构的样式2.2 系统体系结构2.3 体系结构与中间件2.4 自主管理2.5 客户/服务器模型,第二章 主要内容,2011-9-14,计算机软件所 于戈,3,软件体系结构(Software Architecture)软件的组件,以及组件之间的相互关系 软件体系结构的要素 组件(component):模块单元,能提供良好的接口 连接器(connector):实现组件间通信的机制 软件体系结构的样式 如何表示一个体系结构 常用的有4种,2.1 体系结构的样式,2009-9-14

2、,计算机软件所 于戈,4,系统由自上而下的不同层次的组件组成;只有相邻的层次可以通信;请求消息自上而下,响应自下而上。,层次型体系结构,第N层,第N-1层,第2层,第1层,2011-9-14,计算机软件所 于戈,5,基于对象模型 每个组件对应一个对象;组件之间通信通过远程方法调用(RMI)实现;,面向对象的体系结构,2011-9-14,计算机软件所 于戈,6,组件间的通信,通过基于一个公用的存储(如共享的分布式文件系统)实现 例如,基于Web的分布式系统,组件使用共享的基于Web的数据服务,以数据为中心的体系结构,2011-9-14,计算机软件所 于戈,7,组件间的通信,通过事件(可带有数据)

3、的传播实现;例如,发布/订阅(publish/subscribe)系统,以事件为中心的体系结构,组件,组件,传送 发布,事件总线,组件,组件,组件,共享(持久)的数据空间,传送 发布,2011-9-14,计算机软件所 于戈,8,系统体系结构(System Architecture)软件体系结构的具体实例 集中型体系结构 客户/服务器模型 服务器:实现特定服务的进程 客户:向服务器提出请求、等待答复的进程 请求/答复模式,2.2 系统体系结构,2011-9-14,计算机软件所 于戈,9,层次型C/S体系结构,用户接口层、处理层、数据层例:搜索引擎,2011-9-14,计算机软件所 于戈,10,多

4、层C/S体系结构,瘦客户/胖服务器:用户接口简单,但后端负载重胖客户/瘦服务器:能提高性能,但管理困难,客户机,服务器,2011-9-14,计算机软件所 于戈,11,三层C/S体系结构举例,用户接口应用服务器数据库服务器,2011-9-14,计算机软件所 于戈,12,新型体系结构,垂直分布:不同功能的分布水平分布:相同功能的复制对等型(peer-peer)分布,水平分布的Web服务器,负载平衡、容错等,2011-9-14,计算机软件所 于戈,13,P2P技术,从C/S模式到P2P模式,引自:中科院计算所罗杰文 Peer to Peer 综述,2011-9-14,计算机软件所 于戈,14,P2P

5、技术,P2P 应用文件内容共享和下载,例如Napster、Gnutella、eDonkey、eMule、Maze、BT等;计算能力和存储共享,例如SETIhome、Avaki、Popular Power等;协同与服务共享平台,例如JXTA、Magi、Groove等;即时通讯工具,包括ICQ、QQ、Yahoo Messenger、MSN Messenger等;P2P通讯与信息共享,例如Skype、Crowds、Onion Routing等;网络电视:沸点、PPStream、PPLive、QQLive、SopCast等。,2011-9-14,计算机软件所 于戈,15,P2P技术,覆盖网络(over

6、lay network):建立在另一个网络上的网络,属于应用层网络,面向应用层的,不考虑或很少考虑网络层,物理层的问题。P2P网络是建立在Internet之上一种覆盖网络。P2P网络的拓扑结构 集中型(Centralized Topology);分散型无结构拓扑(Decentralized Unstructured Topology);分散型结构化拓扑(Decentralized Structured Topology,也称作DHT网络);半分散型拓扑(Partially Decentralized Topology)。,2011-9-14,计算机软件所 于戈,16,P2P网络的拓扑结构,集中

7、型拓扑结构 例,MP3共享软件Napster,通过一个中央索引服务器保存所有Napster用户上传的音乐文件索引和存放位置的信息。存在问题中心节点的单点失效中心节点的维护成本可伸缩性,2011-9-14,计算机软件所 于戈,17,P2P网络的拓扑结构,分散型无结构拓扑结构 例,Gnutella协议。基于完全随机图的Flooding搜索算法。存在问题不能保证性能网络带宽的消耗 非常大可伸缩性差,2011-9-14,计算机软件所 于戈,18,P2P网络的拓扑结构,覆盖网络构造算法(Gossip-based protocols)关于所有节点的表,称为全局视图(total view)。每个节点维护一个

8、部分视图(partial view),含有c个邻接点的列表。表项:=节点之间定期交换表项。由主动线程(可主动发起通信)和被动线程完成。节点的加入与任意一个已知的节点进行视图交换节点的删除可自行离开,无需通知其他节点。当其他节点发现某节点P不再响应时,将其从表中删除,2011-9-14,计算机软件所 于戈,19,P2P网络的拓扑结构,主动线程和被动线程的执行步骤,do forever receive bufferp from p if pull then/0 is the initial age buffer(MyAddress,0)view.permute()move oldest H ite

9、ms to end of view buffer.append(view.head(c/2-1)send buffer to p view.select(c,H,S,bufferp)view.increaseAge(),do forever wait(T time units)pview.selectPeer()if push then/0 is the initial age buffer(MyAddress,0)view.permute()move oldest H items to end of view buffer.append(view.head(c/2-1)send buffer

10、 to p else/empty view to trigger response send(null)to p if pull then receive bufferp from p view.select(c,H,S,bufferp)view.increaseAge(),(a),(b),2011-9-14,计算机软件所 于戈,20,P2P网络的拓扑结构,分散式结构化拓扑结构 采用分布式散列表(Distributed Hash Table,简写成DHT)技术来组织网络中的结点。加密散列函数,将一个对象的名字或关键词映射为128位或160位的散列值DHT是一个由广域范围大量结点共同维护的巨大散

11、列表。散列表被分割成不连续的块,每个结点被分配给一个属于自己的散列块,并成为这个散列块的管理者。Tapestry,Pastry,Chord和CAN,2011-9-14,计算机软件所 于戈,21,P2P网络的拓扑结构,分散式结构化拓扑结构 例:MIT的Chord 系统网络结点按照一定的方式分配一个唯一结点标识符(Node ID)通过散列运算为对象产生一个唯一的对象标识符(Object ID)分布式查找协议,将指定的关键字(Key)映射到对应的结点(Node)时间复杂性O(log(N),2011-9-14,计算机软件所 于戈,22,P2P网络的拓扑结构,分散式结构化拓扑结构 例:CAN 系统将(k

12、ey,value)对存储在拥有该点所在区域的结点内路由算法:将请求传给当前结点四邻中坐标最接近目标点的结点时间复杂性O(n/d),d为系统维数,2011-9-14,计算机软件所 于戈,23,P2P网络的拓扑管理,使用无结构P2P技术构造特定的结构化P2P覆盖网络的两层结构,2009-9-14,计算机软件所 于戈,24,P2P网络的拓扑管理,使用两层的无结构P2P系统,最终生成的特定的覆盖网络,2011-9-14,计算机软件所 于戈,25,超级节点(Superpeer),超级节点:能够维护索引或充当代理的节点,2011-9-14,计算机软件所 于戈,26,混合型体系结构,将客户/服务器结构与非集

13、中式结构相结合边界服务器系统(edge server),C/S,P2P,2011-9-14,计算机软件所 于戈,27,混合型体系结构,协作分布式系统例1:文件共享系统BitTorrent强制每个参与者,即可下载文件,也负责上载文件全局目录:在Web站点中保存,指向下载文件的tracker。跟踪器(tracker):记录活动节点的服务器,2011-9-14,计算机软件所 于戈,28,混合型体系结构,协作分布式系统例2:Globule系统 协作式CDN(collaborative content distribution network)没有边界服务器用户提供增强型Web服务器,包含如下3种组件可

14、重定位客户请求到其他服务器可分析访问模式可管理Web页复制,2011-9-14,计算机软件所 于戈,29,2.3 体系结构与中间件,中间件在体系结构中的位置中间件如何适应于应用需要中间件的多种版本中间件可重新配置和定制,2011-9-14,计算机软件所 于戈,30,拦截器(Interceptor),拦截器(Interceptor)软件结构可中断正常执行的控制流,插入执行其他代码例:远程对象调用请求级拦截器消息级拦截器,2011-9-14,计算机软件所 于戈,31,自适应软件,自适应软件可以地自动适应环境变化,如移动、QoS、故障、能耗随着环境变化而变化三种方案分离关注点(Separation

15、of concerns)把主要功能与附加功能分离开面向方面的软件开发(aspect-oriented software development),2011-9-14,计算机软件所 于戈,32,自适应软件,三种方案计算反射(Computational reflection)自我检查,并调整自身行为基于组件的设计运行时,进行动态配置迟后绑定(late binding),2011-9-14,计算机软件所 于戈,33,自治计算(autonomic computing)可自动地自适应变化自主系统(self-star system)自主管理自主恢复自主配置自主优化,2.4 分布式系统的自主管理,2011-

16、9-14,计算机软件所 于戈,34,反馈控制模型三要素:测量;分析;调整;,自主控制,2011-9-14,计算机软件所 于戈,35,例:Astrolabe监视系统观察系统行为。区域信息:数据收集和信息聚集,自主监视,2011-9-14,计算机软件所 于戈,36,例:Globule差分复制策略What-if分析:复制的位置、一致性维护策略,自主复制管理,2011-9-14,计算机软件所 于戈,37,例:Globule差分复制策略轨迹驱动模拟方法:根据预测误差与跟踪轨迹长度的关系,确定复制策略,自主复制管理,2011-9-14,计算机软件所 于戈,38,例:Jade系统自动组件修复管理修复过程的执

17、行步骤:终止非故障组件和故障组件之间的所有绑定请求节点管理器去在域中启动和增加一个新节点将新节点配置成与崩溃节点相同的组件重新建立所有在前面已终止的所有绑定,自主修复,2011-9-14,计算机软件所 于戈,39,2.5 客户-服务器模型,服务器(Server):服务方,实现特定服务的进程客户(Client):委托方,请求服务的进程交互方式:请求-回答(request-reply),2011-9-14,计算机软件所 于戈,40,客户和服务器举例,头文件,2009-9-14,计算机软件所 于戈,41,客户和服务器举例,Server程序,2009-9-14,计算机软件所 于戈,42,客户和服务器举

18、例,Client程序,2011-9-14,计算机软件所 于戈,43,消息格式举例,struct message long source;/*发送者标识*/long dest;/*接受者标识*/long opcode;/*操作码:读、写、创建、删除*/long result;/*返回结果代码:成功、失败*/long offset;/*读写位置*/long count;/*读写计数*/char filenameMAX_PATH;/*文件名*/char dataBUF_SIZE;/*数据区*/,2011-9-14,计算机软件所 于戈,44,服务器程序举例,void main(void)struct

19、message m1,m2;/*输入、输出的消息*/int r;/*返回的执行结果*/while(1)receive(FILE_SERVER,/*返回结果*/,2009-9-14,计算机软件所 于戈,45,客户程序举例,int read(char*file,int position,int nbytes,char*buf)struct message m1;/*消息缓冲区*/m1.opcode=READ;/*设置参数*/m1.offset=position;/*读位置*/m1.count=nbytes;/*读长度*/strcpy(/*返回结果*/,2011-9-14,计算机软件所 于戈,46,

20、客户-服务器模型的实现,客户:用户进程(程序)服务器:能够提供服务的进程,1,2,OS内核,服务器,请求,应答,2011-9-14,计算机软件所 于戈,47,通信协议,简化的请求/应答协议 无路由、无连接两个基本操作send(dest,&mptr)receive(addr,&mptr),2011-9-14,计算机软件所 于戈,48,寻址方式(Addressing),1、计算机+进程计算机号/进程号机号+进程号机号+本地标识号例:UNIX机器IP地址端口号(port)/*Socket address,internet style.*/struct sockaddr_in short sin_fa

21、mily;/*AF_INET*/u_short sin_port;struct in_addr sin_addr;char sin_zero8;,2011-9-14,计算机软件所 于戈,49,寻址方式(Addressing),2、全局进程标识符广播定位进程3、ASCII码进程名名字服务器,2011-9-14,计算机软件所 于戈,50,(1)阻塞发送原语 同步式(2)非阻塞发送原语 异步式 内核缓冲区copy(3)阻塞接受原语 等待(4)非阻塞接受原语 Test轮询接收(5)超时(timeout),阻塞与非阻塞型发送/接收,2011-9-14,计算机软件所 于戈,51,有缓冲与无缓冲型接收,无缓

22、冲区服务器等待客户直接丢弃消息暂存“意外”消息有缓冲区邮箱(mailbox):缓存所有的输入消息“溢出”问题,2011-9-14,计算机软件所 于戈,52,可靠的和非可靠的发送/接收,非可靠的收发可能丢失消息由用户负责确认可靠的收发由系统确认(acknowledge)内核-内核确认应答(reply)作为确认客户内核确认折衷方法服务器端设置计时器,超时后,发确认消息,2011-9-14,计算机软件所 于戈,53,实现技术小结,2011-9-14,计算机软件所 于戈,54,包类型,2011-9-14,计算机软件所 于戈,55,包交换举例,2011-9-14,计算机软件所 于戈,56,小节,软件体系

23、结构的四种样式分层、OO、事件为中心、数据为中心体系分布式系统的三种典型体系结构集中式、非集中式、混合式自主管理分布式系统闭环反馈控制客户/服务器模型,2011-9-14,计算机软件所 于戈,57,举出一个分布式系统实例,该系统采用以数据为中心的软件体系结构。再举出一个分布式系统实例,该系统采用基于事件的软件体系结构。什么是三层客户-服务器体系结构,举出一个实际应用案例。在结构化覆盖网络中,如果消息是根据覆盖的拓扑结构来路由的,讨论其优缺点。,习题,2011-9-14,计算机软件所 于戈,58,在非结构化覆盖网络中,每个节点可随机地选择c个邻接点。要查找一个文件,节点将洪泛一个请求给他的邻接点,这些请求又将被再次洪泛下去。该请求将到达多少个节点。请从技术角度来解释为什么BitTorrent中的tit-for-tat策略比因特网中的文件共享好的多?请给出自主管理系统的一个实例,其中的分析部件为分布的或隐藏的。,习题(续),

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号