分布式系统系统模型

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

分布式系统系统模型(SystemModels)结构模型(Architecturalmodel)基础模型(Fundamentalmodel)结构模型(Architecturalmodel)★分布式系统的结构模型是关于其各部分的布局及其相互间关系,它定义了系统的各组件之间相互交互的方式以及它们映射到下面的计算机网络的方式。Client/server模型对等进程(peerprocess)模型客户/服务器模型的扩展*在(多个)协作的服务器上划分(partition)和复制数据;*由代理服务器(proxyservers)和客户进行数据缓存(caching);*使用移动代码和移动代理;*以方便的方式添加和删除移动设备。基础模型(Fundamentalmodel)★基础模型是对所有结构模型中公共属性的更形式化的描述。交互模型(Interactionmodel)交互模型处理分布式系统中性能以及设置时间限制的困难,例如对于消息传递(messagedelivery)。反映了进程交互的方式。故障模型(failuremodel)故障模型试图给出可能由进程和通信通道呈现出来的故障的一个精确的规格说明(specification)。它定义可靠的通信和正确的进程。安全模型(securitymodel)安全模型讨论对于进程和通信通道可能存在的威胁,它引入了安全通道的概念,以抵御这些威胁。结构模型系统的结构是关于其各个独立指定的组件的结构。建筑物的结构设计有类似的方面:不仅要确定它的外观,而且要确定它的总体结构和结构风格(哥特式,新古典主义,现代的)。我们围绕着进程和对象的概念构建我们的结构模型。分布式系统的结构模型首先简化和抽象分布式系统各个组件的功能,然后它考虑:•放置组件在一个计算机网络上,寻找定义数据和工作负载分布的有用的模式。•组件之间的相互关系,即它们的功能角色以及它们之间的通信模式。进程分类服务器进程提供服务客户进程请求服务对等进程指这样的一类进程,它们以一种对称的方式协作和通信,以执行一个任务。客户/服务器模型的变种☆某些更动态的系统可以构造为客户/服务器模型的变种:*从一个进程到另一个进程移动代码的可能性允许一个进程委托任务到另一个进程。例如,客户可以从服务器下载代码在本地运行它。对象和存取它们的代码能够被移动以减少访问延迟和最小化通信量。*某些分布式系统被设计以使计算机和其它移动设备能无缝地添加或删除,允许它们发现可用的服务并向其它设备提供它们的服务。☆在一个计算机网络中实际的放置(布局、分布)组成分布式系统的进程可能受到性能、可靠性、安全性和费用的影响。软件层(软件结构)原来在单一计算机中,软件结构是指把软件结构化为层或模块;而近来则是用位于相同或不同的计算机里的进程之间提供和请求的服务来定义。分布式系统中软件硬件服务层:Middleware-basedSystemsGeneralstructureofadistributedsystemasmiddleware.☆Middleware提供部分DistributedOperatingSystem服务。1-22中间件(Middleware)从中间件提出的初始动因来看,是指网络环境下处于操作系统等系统软件和应用软件之间的一种起连接作用的分布式软件,主要解决异构网络环境下分布式应用软件的互连与互操作问题,它可屏蔽实现细节,提高应用系统的易移植性.从广义的角度看,中间件代表了处于系统软件和应用软件之间的中间层次的软件,其主要目的是对应用软件的开发和运行提供更为直接和高效的支撑.中间件(续)中间件是一个软件层,它的目的是屏蔽异构性并向应用程序员提供一个方便的编程模型。中间件通过在一组计算机里的进程或对象来表达,它们相互交互以为分布式应用实现通信和资源共享支持。中间件技术已成为软件技术的研究热点.主要中间件包括:数据访问中间件、远程过程调用中间件、事务中间件、消息中间件和面向对象中间件等;远程过程调用包(例如SunRPC)和组通信系统(例如Isis)是最早、当前最广泛使用的中间件的实例。☆TheBEATuxedosystemisamiddlewareproductthatdistributesapplicationsacrossmultipleplatforms,databases,andoperatingsystemsusingmessage-basedcommunicationsand,ifdesired,distributedtransactionprocessing.面向对象中间件面向对象中间件是对象技术和分布式汁算发展的产物,它提供—种通讯机制,透明地在异构的分布计算环境中传递对象请求.目前主要的面向对象中间件产品和标准有OMG的CORBA、微软的DCOM和Sun公司的JavaRMI/EJB。它们的异构性和开放性各有不同,适用于异构环境、开放的CORBA是Internet与企业应用事实上的工业标准,而特定于Windows平台、专有的COM则是桌面系统的首选.EJB则兼具二者之优势.中间件也提供了供应用程序使用的服务,它们被紧密地绑定到由中间件提供的分布式编程模型。例如,CORBA提供了naming,security,transactions,persistentstorage和eventnotification等服务。WebServices随着软件产业模式从以产品为中心的制造业转变为以客户为中心的服务业,从两层体系转变为三层体系,分布计算中间件从Intranet扩展到Internet,上述中间件技术已不能适应这些发展需求,因而导致新型中间件技术--WebServices的产生。WebServices以XML、SOAP、WSDL和UDDl为核心,致力于软件在应用层的互操作问题.WebServices不仅屏蔽了异构的操作系统、网络和编程语言,还屏蔽了传统中间件之间的异构性,并支持开放、动态的互操作模式,增强了服务动态发布,查找和使用的能力.因此,WebServices获得了产业界广泛的支持和学术界的重视。系统结构Client-server模型这是分布式系统最经常被引用的体系结构,下图阐述了这种简单的结构:客户进程与各服务器进程(在分离的主计算机上)交互以访问它们所管理的共享资源。由多个服务器提供的服务•服务可以被实现为在分离的主计算机上的多个服务器进程,它们按需要交互来向客户进程提供一个服务。这些服务器可以划分(partition)该服务所基于的对象集合,并在它们之间分布它们,或者在若干个主机上维护这些对象的复制副本。代理服务器和缓存(Proxyserversandcaches)•Cache是近期使用了的数据对象的存储,它比对象本身更近。当一个新的对象被接收到,它被添加到cache存储中,如果需要的话,替换某个现有对象。当客户进程需要一个一个对象的时候,caching服务首先检查cache,如果最新的拷贝是可用的,则从那里提供该对象。否则,去获取一个最新的拷贝。Cache可以布置在每一个客户端,或位于代理服务器上,以便能够被多个客户共享。对等进程(peerprocesses)•在这种结构中,所有进程扮演类似的角色,作为对等者协同交互,在没有任何客户与服务器差别的情况下执行一个分布式活动或计算。在这种模型中,对等进程中的代码维护应用级(层)资源的一致性并按需要同步应用级的行为(actions)。通常,n个对等进程可以相互交互,其通信模式取决于应用需求。客户/服务器模型的变种√通过考虑下面的一些因素我们可以导出客户/服务器模型的几个变种:•使用移动代码和移动代理;•用户对于低价格(low-cost)计算机的需要;(有限的硬件资源,管理简单)•以方便的方式添加和删除移动设备的需求。移动代码(Mobilecode)•Applets是一种众所周知和广泛使用移动代码:用户运行浏览器选择一个到Applet的链接(link),Applet的代码存储在Web服务器上,代码被下载到浏览器并在那儿运行。下图是其示例:移动代码(续)•局部(本地)运行下载的代码的好处是,由于不会遭遇跟网络通信相关的延迟或带宽的变化(可变性),因此会得到好的交互式响应。•例子:一个股票代理(stockbroker)可以提供一个定制服务来通知客户股票价格的变化。为了使用这个服务,每个客户必须下载一个特别的Applet,它从代理服务器那里接收更新,显示给用户,也许还要执行自动的买和卖操作(根据客户设置的条件)。•移动代码对于目的计算机里的本地资源有潜在的安全威胁,因此浏览器会限制Applet对本地资源的访问。移动代理(Mobileagents)•移动代理是一个包含代码和数据的运行程序(自治的软件组件,能与其他代理通信),它在网络中从一台计算机移动(travels)到另一台计算机,代表某人(someone)完成(执行)一个任务,例如收集信息,最终返回结果。•移动代码在它访问的每一个场点可能作许多对本地资源(localresources)的调用请求,例如访问各个数据库项。我们将这种结构与静态客户(staticclient)做一个比较:静态客户要作对某些资源的远程调用,这样可能会传送大量的数据,移动代理结构通过用本地调用代替远程调用减少(降低)了通信的费用和时间。移动代理(续)•与移动代码一样,移动代理对它们所访问到计算机上的资源也有潜在的安全威胁。接收移动代理的环境基于用户的身份(移动代理代表谁)应该决定允许它使用哪些局部资源,其身份(identity)必须以一种安全的方式与移动代理的代码和数据包含在一起。•此外,移动代理本身可能是脆弱的,即如果它们被拒绝访问它们需要的信息,它们可能不能完成它们的任务。•由移动代理执行的任务可以通过其它方式执行。例如,需要访问Internet上Web服务器上资源的Web爬行者(crawlers)通过做对服务器进程的远程调用(remoteinvocations),能够相当成功地工作。由于这些原因,移动代理的应用(适用性)可能是有限的。移动代理(续)一个移动代理系统应该向代理程序员(theagentprogrammer)提供尽可能多的灵活性,来尽可能多地隐藏下面的网络体系结构。移动代理系统的例子有:IBM的Aglet以及Voyager,AgentTCL等。※移动代理与移动代码的区别?移动代理与移动代码的区别•代理通常是“multi-hop”可移动的,而Javaapplets是“single-hop”。即代理通常是要从网络上的一个主机漫游到另一个主机,在每一个访问点积聚状态,然后主动地决定什么时候移动,以及应该移动到哪里。•代理主动地控制他们的移动,而Javaapplets则是被动的。代理典型的应用包括网络管理,comparativeserviceshopping等。•代理在它们的旅行中是有状态的,而Javaapplets通常是无状态的。随着代理访问经过各个结点,典型地它在每个结点上都要执行一些工作,这会引起其内部的状态变换,并在其移动过程中携带它们。网络计算机(Networkcomputers)※在桌面计算机环境中,操作系统和应用软件典型地需要大量的活动代码和数据,它们位于在本地磁盘上。但是应用文件的管理和本地软件库的维护都需要相当的技术工作,这对于大多数的用户是不能胜任的。※网络计算机是对这个问题的一个反应。它按用户的需要从远程文件服务器下载操作系统和任何应用软件。应用在本地运行,但文件由远程文件服务器管理。像Webbrowser这样的网络应用也能够运行。由于所有的应用数据和代码都由文件服务器存储,用户可以从一台网络计算机迁移到另一台。网络计算机的处理器和存储器能力可以被限制以降低它的成本(cost)。※如果包含一个磁盘,它仅仅保持最少的软件,磁盘的其余部分被用做cache存储,以保持近期从服务器载入的软件和数据文件的copies。瘦客户(Thinclients)※瘦客户是指一个软件层,它支持用户端的计算机上基于窗口的用户界面,而

1 / 73
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功