`
treey041224
  • 浏览: 1067 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

分布式系统(学习笔记)

阅读更多

 

系统模型

1. 分布式系统的困难和威胁

   1.1  使用模式的多样性:系统组件会承受各种工作负载,例如有些Web页面每天会有几百万次的访问量,系统的有些部分可能断线或连接不稳定,例如当系统中包括移动计算机时,一些应用对通信带宽各延迟有特殊的需求,如多媒体应用。

   1.2  系统环境的多样性:分布式系统必须能容纳异构的硬件、操作系统和网络。网络可能在性能上有很大不同,如无线网的速度只达到局域网的几分之一。必须支持不同规模的系统,从几十台计算机到上百万台计算机。

   1.3  内部问题:包括非同步的时钟、冲突的数据更新、多种涉及系统单个组件的软硬件故障模式。

   1.4  外部威胁:包括对数据完整性、保密性的攻击以及服务拒绝。

 

2. 体系结构模型

   2.1  系统体系结构  主要有客户-服务器模型对等体系结构两种

客户-服务器模型即客户向服务器发出调用信息,服务器向客户返回结果。其中服务器也可以是其他服务器的客户。例如Web服务器是DNS服务的客户,还有搜索引擎(Web蜘蛛)。

对待体系结构即一项任务或活动涉及所有的进程扮演相同的角色,作为对等方进行协作交互,不区分客户和服务器或运行它们的计算机。它的目的是挖掘大量参与计算机中的资源(数据和硬件)来完成某个给定的任务或活动。

 

   2.2  变体

由于在客户-服务器模型中将一个服务放在单个进程中意味着集中化地提供服务和管理,但它的伸缩性不会超过提供服务的计算机的能力和该计算机所在网络连接的带宽,因而出现以下几个变体。

      2.2.1  由多个服务器提供的服务

      2.2.2  代理服务器和缓存

缓存用于存储最近使用的数据对象。例如Web代理服务器即在客户与Web服务器之间设置一服务器存放为一个地点或多个地点的客户机提供共享的Web资源的缓存。

      2.2.3  移动代码

即将代码从服务器下载到客户端进行运行。如applet

      2.2.4  移动代理

将一个运行的程序(包括代码和数据)从一台计算机移动到网络上的另一台计算机,代表某人完成诸如信息搜集之类的任务,最后返回结果。如蠕虫程序。对所访问的计算机上的资源而言是一个潜在的安全威胁。

      2.2.5  网络计算机

即将所有应用数据和代码由文件服务器保存,但要使用时从远程文件服务器下载所需的操作系统和任一应用软件,应用可在本地运行,但文件由远程文件服务器管理。

      2.2.6  瘦客户

指的是一个软件层,在执行过程计算机上的应用程序时,由该软件层在用户本地的计算机上支持基于窗口的用户界面。

      2.2.7  移动设备和自发互操作

即设备带着软件组件在网络上移动

 

   2.3  分布式体系结构的设计需求

      2.3.1 性能问题

         2.3.1.1  响应能力

         2.3.1.2  吞吐量

         2.3.1.3  平均计算负载

      2.3.2  服务质量

         2.3.2.1  可靠性

         2.3.2.2  安全性

         2.3.2.3  性能

      2.3.3 缓存和复制的使用(Web缓存协议)

      2.3.4  可依赖性问题

         2.3.4.1 正确性

         2.3.4.2  安全性

         2.3.4.3 容错\

出现硬件、软件和网络故障的时候可依赖的应用应该能继续正确工作。可通过冗余施工获得,但昂贵、应用范 围有限、容错的程度也有限。


 

3.  基础模型

交互:计算在进程中发生,进程通过传递消息,并引发进程之间的通信(例如信息流)和协调(活动的同步和排序)进行交互。

故障:只要分布式系统运行的任一计算机上出现故障(包括软件故障)或连接它们的网络中出现故障,分布式系统的正确操作就受到威胁,我们的模型将对这些故障进行定义和分类。

安全:分布式系统的模块特性和它们的开放性将它们暴露在外部代理和内部代理的攻击下。我们的安全模型对发生这种攻击的形式给出了定义并进行了分类

   3.1  交互模型

      3.1.1  通信通道的性能

         3.1.1.1  延迟

              l 第一串比特从网络传递到目的地所花费的时间

              l 访问网络的延迟,当网络负载很重时,延迟增长很快。

     l 操作系统通信服务在发送进程和接收进程上所花费的时间。


         3.1.1.2  带宽

               计算机网络的带宽是指在给定时间内网络能传递的信息总量。


         3.1.1.3  抖动

               抖动是传递一系列消息所花费的时间的变化值。拉动与多媒体有关。例如,如果音频数据的连续采样在不同的时                间间隔完成,那么声音将严重失真。


      3.1.2  不可能维护一个全局时间概念

               计算机时钟和绝对时间之间有领衔,它们的漂移率互不相同。

               时钟漂移率:指的是计算机时钟不同于绝对参考时钟的相对量。


      3.1.3  交互模型的两个变体

          3.1.3.1  同步分布式系统

              进程执行每一步的时间有一个上限和下限。

              l 通过通道传递的每个消息在一个已知的时间范围内接收到。

     l 每个进程有一个本地时钟,它与实际时间的偏移率在一个已知的范围内。

          3.1.3.2  异步分布式系统

                 它是对以下因素没有限制的系统:进程执行速度、消息传递延迟、时钟漂移率。

   3.2   故障模型


      3.2.1  遗漏故障  遗漏故障类错误指的是进程或通信通道不能完成要求它做的动作。

         3.2.1.1  进程遗漏故障(崩溃)

         3.2.1.2   通信遗漏故障

             通常是因为在接收端或中间的网关上缺乏缓冲区空间,或因为网络传输错误。


      3.2.2  随机故障  用于描述可能出现的最坏的故障,此时可能发生任何类型的错误。

           例如,一个进程可能在数据项中设置了错误的值,或为响应一个调用返回一个错误的值。


      3.2.3  时序故障  时序故障适用于同步分布式系统

      3.2.4  故障屏蔽

      3.2.5  一对一通信的可靠性

           可靠性通信可从下列有效性和完整性的角度来定义

           有效性:外发消息缓冲区中的任何消息最终能发送到接收消息缓冲区。

           完整性:接收到的消息与发送的消息一致,没有消息被发送两次。


   3.3  安全模型

         通过保证进程和用于进程交互的通道的安全以及保护所封闭的对象不会在未经授权时访问可达到分布式系统的安全。


      3.3.1  保护对象  通过权限指定允许谁执行一个对象的操作

      3.3.2  保护进程和它们的交互

          对进程的威胁:伪造身份,在分布式系统中,一个用于处理到达的请求的进程可以接收来自其他进程的消息。


      3.3.3  解除安全威胁

          密码学和共享秘密

          认证:使用共享秘密和加密为消息的谁,证明由发送方提供的身份。

          安全通道:

               每个进程确切知道其他正在执行的进程所代表的主体身份。

               安全通道确保在其上传递的数据的私密性和完整性。

               每个消息包括一个物理的或逻辑的时间戳以防消息被重放或重排序。


      3.3.4 其他可能的来自敌人的威胁

               如拒绝服务攻击和移动代码的部署。

 

                                               

分享到:
评论

相关推荐

    分布式事务学习笔记

    ### 分布式事务学习笔记知识点详解 #### 一、什么是分布式事务 分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单来说,一次大的操作由不同...

    Java【分布式】学习笔记01分布式Java应用

    从给定的文件信息来看,标题和描述都指向了“Java分布式学习笔记01分布式Java应用”,这显然是关于Java在分布式环境下的应用和技术的学习资料。虽然提供的部分内容由于格式问题难以直接解析,但我们可以根据标题、...

    Java分布式应用学习笔记

    Java分布式应用学习笔记 在Java世界中,分布式应用是指由多个独立组件通过网络通信协同工作的系统。这种架构模式常用于构建大规模、高可用性、可扩展的系统。本笔记将深入探讨Java分布式应用的核心概念、技术和实践...

    对于\"Java分布式应用学习笔记\"的整理

    分布式系统和SOA的介绍与应用 前言 随着系统规模的扩大,分布式架构的应用变得越来越广泛。在这个过程中,系统架构师和开发人员往往会面对如何让不同系统或者服务之间进行有效交互的问题。这些系统可能是由不同的...

    《分布式系统原理与范型(第二版)》复习资料

    分布式系统原理与范型是计算机科学领域的一个重要研究方向,它涉及如何构建和管理由多个独立计算机组成的系统,这些系统能够协调工作,对外表现得就像单一的、协调一致的系统一样。在分布式系统中,透明性、开放性、...

    Java分布式应用学习笔记-谈JVM.doc

    【Java分布式应用学习笔记-谈JVM】 在Java分布式应用中,JVM(Java虚拟机)扮演着至关重要的角色。虽然有些人可能认为分布式系统与JVM的关系并不密切,但事实上,尤其是在大型分布式环境,如云计算服务平台,对Java...

    《分布式系统理论》(一份颇有价值的笔记)

    这份笔记是学习分布式系统理论的重要资源,它提供了深入的技术细节,有助于读者理解和解决实际分布式环境中的挑战。通过深入学习这些概念和算法,开发者可以更好地设计和优化跨多个计算节点运行的高效应用程序。

    Java分布式应用学习笔记01分布式Java应用和SOA

    - **一致性问题**:在分布式系统中保持数据的一致性是一项复杂任务,需要采用适当的算法(如两阶段提交、三阶段提交或更高级别的共识算法)。 - **容错性**:分布式系统必须能够处理节点故障、网络分区等异常情况,...

    Java分布式应用学习笔记07线程池应用

    ### Java分布式应用学习笔记07线程池应用 在深入探讨Java分布式应用中线程池的应用之前,我们先来理解一下线程池的基本概念及其在并发编程中的重要性。线程池是Java并发编程的核心技术之一,它通过复用一组预创建的...

    大规模分布式系统架构与设计实战笔记8

    例如,开发者可能会学习如何利用Hadoop、Spark等大数据处理框架,或者Docker、Kubernetes等容器化和编排工具,来构建和管理分布式系统。 总之,《大规模分布式系统架构与设计实战笔记8》通过对`GenerateData.java`...

    Java分布式应用学习笔记09JMX-MBean的介绍

    ### Java分布式应用学习笔记09JMX-MBean的介绍 #### MBean概念及作用 MBean,即Managed Bean,是在JMX(Java Management Extensions)框架中用于管理资源的一种特殊Java对象。通过MBean,可以方便地对应用程序进行...

    Java分布式应用学习笔记08JMX规范与各种监控场景.pdf

    Java Management Extensions (JMX) 是Java平台上的一个标准,它定义了一种管理和监控Java应用程序的...无论是简单的本地程序还是复杂的分布式系统,JMX都是一个强大的工具,帮助我们更好地理解和控制我们的Java应用。

    java分布式应用学习笔记05多线程下的并发同步器.pdf

    本篇笔记将深入探讨Java中的并发同步机制,包括核心概念、工具类以及在实际开发中的应用。 首先,我们要理解什么是线程安全。线程安全是指在多线程环境下,一个方法或类能够正确处理多个线程同时访问的情况,不会...

    Java分布式应用学习笔记03JVM对线程的资源同步和交互机制

    ### Java分布式应用学习笔记03:JVM对线程的资源同步和交互机制 在深入探讨Java虚拟机(JVM)如何处理线程间的资源同步与交互机制之前,我们先来明确几个关键概念:线程、多线程、同步、并发以及它们在Java中的实现...

    Java分布式应用学习笔记05多线程下的并发同步器

    ### Java分布式应用学习笔记05多线程下的并发同步器 #### 1. 前言 在现代软件开发中,特别是在分布式系统和高性能计算领域,有效地管理多线程之间的协同工作至关重要。Java语言提供了丰富的工具和API来帮助开发者...

Global site tag (gtag.js) - Google Analytics