- 1、本文档共104页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件体系结构与设计 第12章 分布式系统体系结构 第12章 分布式系统体系结构 分布式系统的概念 分布式系统的问题 交互模型 中间件 客户机-服务器计算 分布式系统的体系结构模式 软件作为服务 第12章 分布式系统体系结构 事实上,所有大型计算机系统现在都是分布式系统。与所有的系统组件在一台单独的计算机上执行的集中式系统相反,分布式系统中包括有许多台计算机,是“一个独立计算机的集合体,但给用户的感觉却是面对一个独立的系统。”由于系统组件可能运行在独立管理的计算机上以及组件间要经过网络通信,因此,分布式系统的设计中有许多特殊问题需要予以考虑。 12.1 分布式系统的概念 分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,分布式系统具有高度的内聚性和透明性。网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。分布式系统与计算机网络在物理结构上是基本相同的。 12.1 分布式系统的概念 在一个分布式系统中,一组独立的计算机展现给用户的是一个统一的整体。系统拥有多种通用的物理和逻辑资源,可以动态地分配任务,分散的物理和逻辑资源通过计算机网络实现信息交换。系统中存在一个以全局的方式管理计算机资源的分布式操作系统。通常,对用户来说,分布式系统只有一个模型或范型。在操作系统之上有一层软件中间件负责实现这个模型。 12.1 分布式系统的概念 分布式操作系统的设计思想和网络操作系统不同,这决定了他们在结构、工作方式和功能上也不同。网络操作系统要求网络用户在使用网络资源时首先必须了解网络资源,网络用户必须知道网络中各个计算机的功能与配置、软件资源、网络文件结构等情况,在网络中如果用户要读一个共享文件时,用户必须知道这个文件放在哪一台计算机的哪一个目录下;分布式操作系统是以全局方式管理系统资源的,它可以为用户任意调度网络资源,并且调度过程是“透明”的。 12.1 分布式系统的概念 当用户提交一个作业时,分布式操作系统能够根据需要在系统中选择最合适的处理器,将用户的作业提交到该处理程序,在处理器完成作业后,将结果传给用户。在这个过程中,用户并不会意识到有多个处理器的存在,这个系统就像是一个处理器一样。 12.1 分布式系统的概念 用分布式方法开发系统的主要优势是: (1)资源共享。分布式系统允许硬件、软件资源,如磁盘、打印机、文件和编译器等共享使用。虽然在多用户系统上也是可以共享资源,但在这种情况下资源必须放在一个中央计算机上统一管理。 (2)开放性。是指系统通过添加非私有资源来扩展自己的能力。分布式系统是开放的系统,它一般包括来自不同厂商的软件和硬件的兼容产品。 (3)并发性。在分布式系统中,有许多过程可以在网络的不同计算机上同时运行。这些过程在其正常运行期间可以(但不是必需)彼此通信。 12.1 分布式系统的概念 (4)可扩展性。原则上,分布式系统至少要有可扩展性,系统的能力可以通过增加新的资源来满足对系统的新的需求。实际过程中,可扩展性可能受到网络的限制。 (5)容错性。多台计算机及其信息复制能力意味着系统对硬件和软件错误具有相当的容错能力。在绝大多数分布式系统中,当有错误发生时,可能会使提供的服务能力下降,但彻底丧失服务能力只有在发生网络错误时才会出现。 12.1 分布式系统的概念 由于具有这些优点,分布式系统已经大量地替换了早年所开发的大型机遗留系统。然而,还有许多个人计算机应用系统(例如,照片编辑系统)不是分布式的,这些系统运行在单个的计算机系统上。许多嵌入式系统同样也是单处理器系统。 12.1 分布式系统的概念 分布式系统本质上比集中式系统更复杂,因而更难设计、实现和测试。由于系统组件和系统基础结构之间交互的复杂性,分布式系统的总体特性是很难了解的。例如,系统性能不再取决于一个处理器的运行速度,它依赖网络带宽、网络负载和系统中所有计算机的速度。将系统某部分的资源转移到另外地方将严重影响系统的性能。 此外,分布式系统的响应是不可预知的。这个响应依赖于系统的总负荷、它的体系结构以及网络负荷。由于这些因素都是在一个较短时间内变化的,同一个用户的两个请求之间就会有极大的响应差别。 12.2 分布式系统的问题 分布式系统的复杂性主要源于该系统不可能有一个自顶向下的控制模型。系统中提供功能的节点通常是独立的系统,它们没有单独管理系统的权限。连接这些节点的网络是一个单独管理的一个系统,这个系统本身很复杂,并且不能被使用网络的用户所控制。因此,分布式系统的运行本质上就会有不可预测性。 在分布式系统工程中必须考虑的重要设计问题是:透明性、开放性、可扩展性、信息安全性、服务质量和失败管理。 12.2.1 透明性 理想情况下,系统的分布性对于用户应该是透明
文档评论(0)