络计算模式复习大纲

络计算模式复习大纲

  1. C/S 架构、B/S 架构、IT 鸿沟、中间件概念
  2. 格概念、五层沙漏模型、OSGA
  3. 云计算与 络技术的差别、Map-Reduce、Hadoop 基本原理、数据一致性理论
  4. P2P 的概念、DHT 的概念、Chord 算法、Pastry 算法
  5. CDN 络概念、DNS 重定向技术
  6. 物联 体系结构

C/S 架构、B/S 架构、IT 鸿沟、中间件概念

  • C/S 架构概念

    C/S 架构是一种典型的两层架构,其全称是 Client/Server,即客户端/服务器端架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户端通过数据库连接访问服务器端的数据;另一种是 Socket 服务器端,服务器端的程序通过 Socket 与客户端的程序通信。
    C/S 架构也可以看作是胖客户端架构。因为客户端需要实现绝大多数的业务逻辑和界面展示。这种架构中,作为客户端的部分需要承受很大的压力,因为显示逻辑和事务处理都包含在其中,通过与数据库的交互(通常是 SQL 或存储过程的实现)来达到持久化数据,以此满足实际项目的需要。

  • 二层 C/S 结构的优点

    • C/S 体系结构具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。
    • 系统的客户应用程序和服务器构件分别运行在不同的计算机上,系统中每台服务器都可以适合各构件的要求,这对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进行扩充和缩小。
    • 在 C/S 体系结构中,系统中的功能构件充分隔离,客户应用程序的开发集中于数据的显示和分析,而数据库服务器的开发则集中于数据的管理,不必在每一个新的应用程序中都要对一个 DBMS 继续编码。将大的应用处理任务分布到许多通过 络连接的低成本计算机上,以节约大量费用。
  • 二层 C/S 结构的缺点

    • 开发成本较高
    • 客户端程序设计复杂
    • 信息内容和形式单一
    • 用户界面风格不一,使用繁杂,不利于推广使用
    • 软件移植困难
    • 软件维护和升级困难
    • 新技术不能轻易应用
  • 三层 C/S 结构的优点

    • 允许合理地划分三层结构的功能,使之在逻辑上保持相对独立性,能提高系统和软件的可维护性和可扩展性
    • 允许更灵活有效地选用相应的平台和硬件系统,使之在处理负荷能力上与处理特性上分别适应于结构清晰的三层;并且这些平台和各个组成部分可以具有良好的可升级性和开发性。
    • 应用的各层可以并行开发,可以选择各自最适合的开发语言
    • 利用功能层有效地隔离开表示层与数据层,未授权的用户难以绕过功能层而利用数据库工具或黑客手段去非法地访问数据层,为严格的安全管理奠定了坚实的基础。
  • 三层 C/S 结构的缺点

    • 三层 C/S 结构各层间的通信效率若不高,即使分配给各层的硬件能力很强,其作为整体来说也达不到所要求的性能。
    • 设计时必须谨慎考虑三层间的通信方法、通信频度及数据量。这和提高各层的独立性一样是三层 C/S 结构的关键问题。
  • B/S 架构的全称是 Browser/Server,即浏览器/服务器架构。Browser 指的是 Web 浏览器,只有极少数的事务逻辑在前端实现,主要的事务逻辑在服务器端实现,Browser 客户端,WebApp 服务器端和 DB 端构成所谓的三层架构。B/S 架构的系统无须特别安装,只有 Web 浏览器即可。

  • B/S 体系结构的优点

    • 基于 B/S 体系结构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。
    • B/S 体系结构还提供了异种机、异种 、异种应用服务的联机、联 、统一服务的最现实的开放性基础。
  • B/S 体系结构的缺点

    • B/S 体系结构缺乏对动态页面的支持能力,没有集成有效的数据库处理功能
    • B/S 体系结构的系统扩展能力差,安全性难以控制
    • 采用 B/S 体系结构的应用系统,在数据查询等响应速度上,要远远低于 C/S 体系结构
    • B/S 体系结构的数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理应用
  • 如何描述 IT 鸿沟/p>

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GNHAcAvs-1646887039937)(./img/IT鸿沟.png)]

    • IT 鸿沟指的是当业务不断发展的时候,现有的 IT 支持平台的发展不能满足业务的需要,而当 IT 支持平台发展到可以支持业务的需要的时候,业务又有新的需求和发展,这样业务与 IT 支持之间持续存在一个鸿沟。
    • 存在 IT 鸿沟的一个重要的原因就是企业中的信息孤岛问题。信息孤岛指相互之间在功能上不关联互助、信息不共享互换以及信息与业务流程和应用相互脱节的计算机应用系统。
  • IT 鸿沟的解决办法

    • EAI(企业应用集成)。一套完整的 EAI 层次体系包括应用接口层、应用整合层、流程整合层和用户交互层。EAI 使得企业众多信息系统都与一个由中间件组成的底层基础平台相连接,各种“应用孤岛”、“信息孤岛”通过各自的“适配器”连接到一个总线上,然后再通过一个消息队列实现各个应用之间的交流。
    • EAI 技术层次体系最下面的一层是应用接口层,它要解决的是应用集成服务器与被集成系统之间的连接和数据接口的问题。
    • 再往上去就是应用整合层,它要解决的是被集成系统的数据转换问题,通过建立统一的数据模型来实现不同系统间的信息转换。
    • 应用整合层之上是流程整合层,它将不同的应用系统连接在一起,进行协同工作,并提供商业流程管理的相关功能,包括流程设计、监控和规划,实现业务流程的管理。
    • 到了最上端的用户交互层,则是为用户在界面上提供一个统一的信息服务功能入口,通过将内部和外部各种相对分散独立的信息组成一个统一的整体,保证了用户既能够从统一的渠道访问其所需的信息,也可以依据每一个用户的要求来设置和提供个性化的服务。
    • 从用户界面集成、业务流程整合、数据层面集成、应用系统集成四个方面阐述
  • 中间件

    • 中间件(Middleware)是一种软件,处于系统软件(操作系统和 络软件)与应用软件之间,它能使处于应用层中的各应用成分之间实现跨 络的协同工作(也就是互操作),这是运行各应用软件之下所涉及的“系统结构、操作系统、通信协议、数据库和其他应用服务”各不相同。
    • 优越性
      • 企业应用方面
      • 存储服务方面
      • 分布式事务服务方面
      • 安全服务
      • 应用程序方面
    • 主流中间件
      • DNA(微软)
      • CORBA
      • J2EE

格概念、五层沙漏模型、OSGA

  • 格计算
    格计算在每个节点上安装中间件进行彼此之间的连接,使用 格计算的用户需要参与提供计算机资源。 格计算利用互联 上计算机的 CPU 闲置资源处理能力来解决大型计算问题

  • 优点:提供高效的资源共享服务,平衡多台计算机上的负载,可把程序放到最适合的位置上

    • 什么需求出现 格概念
  • 基本思想

    • 共享:深层次、广泛、动态、具有多种形式的有条件受控的共享
    • 互操作性:共享关系可以跨域不同的平台、语言和编程环境,跨越不同的组织边界、使用策略和资源类型
    • 协议:为了实现特定的操作而定义的分布式系统元素之间交互的方式以及交互过程中交换的信息结构
    • 服务:由所使用的协议和所实现的行为来定义,服务抽象掉了与资源相关的信息
  • 五层沙漏模型
    五层结构中各层协议的数量是不同的,对于最核心的协议,既要能实现上层各种协议向核心协议的映射,同时又要能实现核心协议向下层协议的映射,核心协议在所有支持 格计算的地点都应该得到支持,因此核心协议的数量不应该太多,这样核心协议就形成了协议层次结构中的瓶颈,形成沙漏形状。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ydEe9G4Q-1646887039939)(img/五层沙漏结构-1.png)]

    • 构造层:提供 格服务的基础硬件,包括:计算、存储、 络等
    • 连接层:将硬件连接起来,并能方便地查找和使用及为保证使用安全
    • 资源层:将硬件转换成资源,并为资源提供管理和维护功能。有限的资源构成瓶颈
    • 汇集层:将所有单个的资源形成一个 络
    • 应用层:使用资源的用户应用程序
  • 画出沙漏模型层次图,并解释各层功能
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TNBrYsC7-1646887039940)(img/五层沙漏结构-2.png)]

    • 中心思想:采用以协议为中心的分层结构

云计算与 格技术的差别、Map-Reduce、Hadoop 基本原理、数据一致性理论

  • 云计算、 格计算的主要差别

    • 格计算的思路是聚合分布资源,支持虚拟组织,提供高层次的服务。云计算的资源相对集中,主要以数据中心的形式提供底层资源的使用。
    • 格计算用聚合资源来支持挑战应用,把要分散的资源聚合起来,后来逐渐强调适应普遍的信息化应用。云计算从一开始就支持广泛企业计算、Web 应用,普适性更强。
    • 格计算用中间件屏蔽异构系统,力图使用户面向同样的环境,把困难留在中间件,让中间件完成任务。云计算实际上承认异构,用镜像执行或者提供服务的机制来解决异构性的问题。
    • 格计算用执行作业形式使用,在一个阶段内完成作用产生数据。云计算支持持久服务,用户可以利用云计算作为其部分 IT 基础设施,实现业务的托管和外包。
    • 格计算更多地面向科研应用,商业模型不清晰。而云计算从诞生开始就是针对企业商业应用,商业模型比较清晰。
    • 云计算是以相对集中的资源,运行分散的应用。 格计算则是聚合分散的资源,支持大型集中式应用。
    • 但从根本上来说,从应对 Internet 的应用的特征特点来说,他们是一致的,为了完成在 Internet 情况下支持应用,解决异构型、资源共享等等问题。
  • Map-Reduce
    Map-Reduce 的计算和处理过程,Map 是怎么完成的,Reduce 操作是怎么完成的

    • 目标
      Map-Reduce 的目标是用于大规模数据集(大于 1 TB)的并行运算,在面对节点失效的情况时能够保证大量的文件和数据依然可用。初始化时数据被分割成许多分块的小数据,这些数据都是以 的形式存储。用户程序会分配一个 Master 进程和许多 Worker 进程。
    • 任务分配
      任务开始时,Master 将用户程序的工作分为两种类型的任务(Map 任务和 Reduce 任务),并将这些任务分配给相应的 Workers。
    • Master 的责任
      Master 的责任是给 Map Workers 和 Reduce Workers 分配相应的任务,检测是否有 Workers 进程死掉,将 Map 任务处理后的结果通知给 Reduce 任务。
    • Map worker 的责任
      Map Worker 在得到 Master 的 Map 工作任务的指令后,Map Workers 开始工作。Map Workers 从 input 中获取分块的数据,并通过其中数据存储的方式对数据进行处理,并将处理的中间结果( 形成的链表)存放在本地磁盘中。
    • Reduce worker 的责任
      在得到 Master 的有关 Map 处理结果的通知后,Reduce 任务开始工作。Reduce 工人把每个 Map Workers 的本地磁盘中的内容进行整合,形成有序的最终结果,并将结果写入到输出文件中。
      假如一个 Workers 进程失败了,该 Workers 的任务就被分配给其他的 Workers 进程。如果一个 Master 进程失败了,那么整个 Map-Reduce 任务就会终止。
  • Hadoop

    • Hadoop 是一个分布式系统基础架构。用户可以充分利用集群的威力进行高速运算和存储。Hadoop 的框架核心的设计就是:HDFS 和 Map Reduce。HDFS 为海量的数据提供了存储,则 Map Reduce 为海量的数据提供了计算。
    • Hadoop 实现了一个分布式文件系统(HDFS)。HDFS 有高容错的特点,部署在低廉硬件上,提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序。
  • 数据一致性理论中四种同步的方式和机制

    • 强一致性(C):系统在执行某项操作后仍然处于一致状态。在分布式系统中,更新操作执行成功后所有用户都应该读取到最新的值,这样的系统被认为具有强一致性。
    • 可用性(A):每一个操作总是能够在一定的时间内返回结果。
    • 分区容错性(P):分区容错性可以理解为系统在存在 络分区的情况下仍然可以接受请求。
    • CAP 理论是在分布式环境中设计和部署系统时需要考虑的三个重要的系统需求。根据 CAP 理论,数据共享系统只能满足这三个特性中的两个,而不能同时满足三个条件。
      • 放弃 C:放弃数据的强一致性,而保留数据的最终一致性。

      • 放弃 A:一旦遇到分区容错故障,那么受到影响的服务需要等待数据一致,因此等待期间系统无法对外提供服务。

      • 放弃 P:将数据放在一台机器上,则不会遇到分区带来的负面影响,但会严重影响系统的可扩展性。

P2P 的概念、DHT 的概念、Chord 算法、Pastry 算法

  • P2P(Peer to Peer)
    P2P对等 络是一种分布式 络, 络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、 络连接能力、打印机等),这些共享资源需要由 络提供服务和内容,能被其它对等节点(Peer)直接访问而无需经过中间实体。在此 络中的参与者既是资源(服务和内容)提供者(Server),又是资源获取者(Client)。

  • 三种架构:C/S 架构、纯 Peer 架构、离散哈希表(重点)

  • P2P 络的核心机制,是在应用层建立逻辑上的覆盖 络(overlay network),屏蔽下三层的工作细节

    • 路由和定位
    • 查询和搜索
    • 动态节点算法
    • 容错性
  • P2P 络的优点

    • 提高 络工作效率
      • 对比 C/S 架构,节点间的协作效率更高
      • 结构化 P2P 有严格拓扑结构,基于 DHT,将 络节点、数据对象高效均匀地映射到覆盖 中,路由效率高
    • 充分利用 络带宽
      • P2P 不通过服务器进行信息互换,无服务器瓶颈,无单点失效,充分利用 络带宽,如 BT 下载多个文件,可接近实际最大带宽,而 HTTP 或 FTP 则很少有这样的效果
    • 开发了每个 络节点的潜力
      • 节点资源:计算能力及存储容量
      • 个人计算机并非永久联 ,是临时性的动态节点,称为“ 络边缘节点”
      • P2P使内容“位于中心”转变为“位于边缘”,计算模式由“服务器集中计算”转变为“分布式协同计算”
    • 具有高可扩展性
    • 良好的容错性
      • 冗余方法:空间换容错
      • 周期性检测:时间换容错(节点自适应状态维护)
  • 第二代与第一代的区别:

    1. 没有集中的目录服务器,但是拓扑结构有意义
    2. 使用 DHT 技术,有较好的可伸缩性和查询效率
    3. 使用精准的定位算法和特殊的路由协议使得搜索效率提高
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1kXWbPhU-1646887039941)(img/P2P 络结构分类.png)]
  • DHT 的概念、主要思想

    • Distributed Hash Table,DHT,分布式哈希表
    • 把 络上资源的存取像 Hash Table 一样,可以简单而快速地进行 put、get,该思想的诞生主要是受第一代 P2P(Napster) 络的影响。DHT 更强调的是资源的存取,而不管资源是否是一致的
    • 原理
      • Hash 函数可以根据给定的一段任意长的消息计算出一个固定长度的比特串,通常称为消息摘要(MD,Message Digest),一般用于消息的完整性检验
      • Hash 函数的特性
        • 给定 P P P,易于计算出 MD ( P ) text{MD}(P) MD(P)
        • 只给出 MD ( P ) text{MD}(P) MD(P),几乎无法找出 P P P
        • 无法找到两条具有同样消息摘要的不同消息
      • Hash 函数
        • MD5:消息摘要长度固定为 128 比特
        • SHA-1:消息摘要长度固定为 160 比特
    • 算法
      • 将内容索引为抽象的键值对
        • 键是内容关键字的哈希摘要
        • 值是存放内容的实际位置,例如 IP 地址等
      • 所有的键值对组成一张巨大的哈希表
      • 每个节点随机生成一个标识(ID),按照特定的映射关系,在应用层上形成一个结构化的重叠 络
      • 给定一个内容的键,则可以根据键与节点 ID 之间的映射关系在重叠 络上找到相应的值(例如 IP 地址)
  • 基于 DHT 的结构化 P2P 比较

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S0VucLNt-1646887039943)(img/Chord-Pastry-CAN.png)]

    • 目标相同
      • 减少路由到指定文件的 P2P 跳数
      • 减少每个 Peer 必须保持的路由状态
    • 算法异同
      • 都保证算法的跳数与 Peer 群组的大小相关
      • 或都指出算法能以高概率完成
      • 方法上的差别很小
  • Chord
    使一个分布式的非集中式的 P2P 查询服务,存储关键字/值对。给定一个关键字(key),将关键字映射到某个节点。如果给对等 络应用的每个数据都分配一个 key,那么对等 络中的数据查找问题就可以用 Chord 很容易地解决了。

    • 特点

      1. 采用环形拓扑(Chord 环)
      2. 其核心思想就是要解决在 P2P 应用中遇到的基本问题:如何在 P2P 络中找到存有特定数据的节点
    • 加入过程

      • Hash 算法:SHA-1
      • 把节点的 IP 地址表示为 m 位的节点 ID(即 Node ID,NID)
      • 把内容关键字表示为 m 位的 K(即 Key ID,KID)
      • 节点按 ID 从小到大顺序排列在一个逻辑环上
      • 内容,即 KID,存储在数值比它大的下一个节点上,例如 K10 存储在 N11,或者 K20 存储在 N23 上
    • 改进前
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EvUMbDKj-1646887039944)(img/Chord-改进前.png)]

      • 每个节点仅维护其后继节点 ID、IP 地址等信息
      • 查询消息通过后继节点指针在圆环上传递
      • 直到查询消息中包含的 K text{K} K 落在某节点 ID 和它的后继节点 ID 之间
      • 速度太慢, O ( N ) mathbf{O}(N) O(N) N N N 为 络中节点数
    • 改进后
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B0R0W71r-1646887039945)(img/Chord-改进后.png)]

      • Chord 中每个节点上都有一张局部的指针表,表中存放 log ? 2 n log_2 n log2?n 个节点信息。

      • 查询过程

        假设当前节点是 Nc text{Nc} Nc,要查找 Ko text{Ko} Ko

        • 查找当前节点是否有要查找的 Ko text{Ko} Ko
        • 在指针表里面查找 Ko text{Ko} Ko 的位置
        • 如果找到,即 Nc + 2 i = Ko , i ∈ [ 0 , m ? 1 ] text{Nc} + 2^i = text{Ko}, i in [0, m-1] Nc+2i=Ko,i[0,m?1],则直接转到对应节点 KaTeX parse error: Expected ‘}’, got ‘^’ at position 13: text{Nc + 2^?i}
        • 若没有找到,则查找临界节点
        • Nc + 2 i Nc+2iKoNc+2i+1,i[0,m?1],转到 Nc + 2 i text{Nc} + 2^i Nc+2i 对应的节点处继续查找
        • Ko > Nc + 2 m ? 1 text{Ko} > text{Nc} + 2^{m-1} Ko>Nc+2m?1,即最后一项的 ID IDKo,则在 Nc + 2 m ? 1 text{Nc} + 2^{m-1} Nc+2

          声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年2月8日
下一篇 2022年2月8日

相关推荐