【毕业学位论文】(Word原稿)基于Hubot的个人云系统的设计与实现_第1页
【毕业学位论文】(Word原稿)基于Hubot的个人云系统的设计与实现_第2页
【毕业学位论文】(Word原稿)基于Hubot的个人云系统的设计与实现_第3页
【毕业学位论文】(Word原稿)基于Hubot的个人云系统的设计与实现_第4页
【毕业学位论文】(Word原稿)基于Hubot的个人云系统的设计与实现_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单位代码 10006 学 号 10061096 分 类 密 级 毕业设计 (论文 ) 基于 个人云系统的设计与实现 2014 年 6 月 基于 本科毕业设计(论文)任务书 、毕业设计(论文)题目: 基于 个人云系统的设计与实现 、毕业设计(论文)使用的原始资料(数据)及设计技术要求: 源码、 1) 终端具有泛型的特性:与用户交互的终端应该是泛型的,即在不同的系统以及硬件上能够保证基本的一致性。 2) 分布式 有一致性、高容错性与可恢复性:分布式的为 统解析的命令的载体,应具有一致性、高容错性与可恢复性。一致性体现在:不同节点之间的行为相似,同样的请求参数,在不同节点之间的计算结果应该是可预测的(算法中随机因子的干扰,会有些许偏差)。高容错性体现在:多节点组成的集群,在单一节点宕机的情况下不应该影响集群整体的可用性,即此时集群的出错情况对用户是不可见的。可恢复性体现在 :由于集群中的数据存储是分布式的,对不同的存储节点而言,存储的数据有可能是不完全一样的(分布式数据库集群分片,会有部分的冗余)。所以当存储某些数 据的节点宕机后,那么当此节点重新恢复到集群时,应该保证在宕机阶段未能存入的数据可以及时的恢复。 3) 统具有可扩展的特性:即在系统运行的状态下,可以加入新的命令,并在此阶段不影响用户的使用。 、毕业设计(论文)工作内容: 本课题的主要研究内容是:以个人云计算技术和个人云存储技术为基础,通过全栈式开发的方式,以 为命令解析系统,用分布式 为命令执行的载体,设计并构建基于 个人云的终端泛型的原型系统,并通过相关的实验说明个人云系统在功能和特性上的有效性。 、主要参考资料 1,O,20132 朴灵 M, 20133 in . 0114 0145版社 ,20126源社区 Z,7源社区 Z,(并指出所负责部分): 系(教研室)主任(签字): 本人声明 我声明,本论文及其研究工作是由本人在导师指导下独立完成的,在完成论文时所利用的一切资料均已在参考文献中列出。 作者:刘中巍 签字: 时间: 2014 年 6 月 北京航空航天大学毕业设计(论文) I 基于 个人云系统的设计与实现 学 生: 刘中巍 指 导教师: 杨海燕 /朱哲 摘 要 个人云系统是在个人云计算和个人云存储的基础上发展而来的概念,定义了一种结合个人云计算的计算能力,以及个人云存储的大容量存储能力,以服务于个人为目的云平台。 个人云系统刚刚兴起,有人认为它将替代传统的操作系统,实现个人计算的一次新革命。 很多公司都在个人云系统领域进行了尝试,但是由于成本、安全性、易用性、生态系统的不完整等原因,尚未有一款成熟的产品实现个人云系统的完整构建。 本文给出一种基于 介绍了相关开发技术的基础上,着重介绍构成个人云系统的四个组成部分的设计与实现方案,包括获取命令的终端泛型的 行命令解析和派发的 令的载体,分布式的 及以个人云存储为基础的文件系统。最后,用实验验证了该原型系统满足了既定的功能以及特性。 关键字:分布式系统,个人云系统, 京航空航天大学毕业设计(论文) of is a of It a of of of is at it to a in in of to of is a of a of It on of on to of 京航空航天大学毕业设计(论文) 录 1 绪论 . 1 题背景与意义 . 1 内外的研究现状 . 3 题的目标与内容 . 4 文的组织结构 . 7 2相关技术简介 . 8 栈式开发技术 . 8 布式 简介 . 16 布式数据库系统简介 . 19 双工数据通信协议 . 22 介 . 24 3系统的设计与实现 . 29 体设计 . 29 端泛型的 设计 . 30 统设计 . 33 布式 计 . 37 层文件系统 . 41 . 46 境配置 . 46 能验证 . 57 性验证 . 68 验分析 . 76 5 总结与展望 . 77 结 . 77 作展望 . 77 致谢 . 79 北京航空航天大学毕业设计(论文) 考文献 . 80 北京航空航天大学毕业设计(论文) 1 1 绪论 题背景与意义 么是个人云系统 个人云系统是在个人云计算 1和个人云存储 2的基础上提出的概念。个人云计算是云计算在个人领域的延伸,是以 中心的个人信息处理,即通过 储、分发和再加工。个人云存储是云存储的一个具体应用分支,指的是将云存储技术惠及个人,让每个人都能够将数据通过云端进行存储、分享等。与传统的操作系统不同,个人云系统既可以利用个人云计算提供的计算能力,也可以利用个人云存储的大容量存储能力,是一种以服务于个人为目的的云平台, 个人云系统具有平台无关性、资源利用高效性、高可维护性以及高容灾性。 什么构建个人云 系统 个人云系统是未来的一个趋势。摩尔定律在近年来已经逐渐证明无法继续维持。如果没有新的硬件技术革命,那么单节点的计算能力将会到达一个瓶颈。提升单一节点的运算能力将是一种极大的浪费。于是云计算应运而生,过去庞大的单机系统架构由垂直扩展系统逐渐向水平扩展多个节点的集群方向发展。 虽然从个人电脑的角度来讲,运算能力已经不再是瓶颈,但是数据大爆炸时代的到来告诉我们,未来是会被数据包围的,我们无时无刻不会处理大数据,于是个人云系统的概念就应运而生了,个人云系统解决的问题就是如何惠及普通人的大规模数据运算需求。 与传统的个人操作系统相比,个人云系统具有如下的特点: 1)个人云系统是跨平台的,没有特定的载体,无需特定的硬件与终端,因此可以做到跨多终端共享数北京航空航天大学毕业设计(论文) 2 据; 2)个人云系统可以高效利用资源,由于云端的计算能力与存储资源是共享的,是统一分配的,那么相同数量的单一节点就可以惠及更多的用户,从而 节省更多的资源,提高硬件的利用率。 3)个人云系统具有高可维护性,传统的系统是安装在硬盘上的,那么很多用户无法分享到系统升级带来的好处,但是个人云系统是基于云端的,系统的更新是主动的,无需用户的操作就可以自动完成更新,这样便可以解决很多拖尾效应(安卓平台的版本纷杂,用户通常不会手动的更新新的固件,造成安卓开发者需要兼容多版本的安卓系统,因此这成为安卓平台碎片化的最大祸首,一定程度上阻碍了安卓系统的发展); 4)个人云系统具有高容灾性,由于个人云系统是分布式的,单一节点的宕机并不会影响整个系统的使用,这也提高了个 人云系统的可用性。 个人云系统刚刚兴起,有人认为它将替代传统的操作系统,实现个人计算的一次新革命。回顾计算机发展的历史,大型计算机演进到个人计算机,个人计算机演进到大型的公共云计算,体现了否定之否定的哲学原理。而在个人领域,公共云计算正在演进到个人云计算,实现一次新的否定和飞跃。 题的来源 本课题的来源于阿里巴巴云计算 队的一次尝试,在阿里巴巴收购了酷盘之后,酷盘和淘云盘的结合增进了阿里巴巴在云存储上的能力,于是就提出了跨平台的个人办公终端的 设想,并试图通过设计与构建基于原型系统来探索个人云系统的基本结构和特性。 通过阿里云提供的大规模云计算能力以及个人云存储酷盘和淘云盘的存储支持,将硬盘完全移到云端,并将应用以 方式提供, 架构在阿里云可伸缩的 服务器上的,这样既可以利用高效且丰富的云计算资源,又可以将存储的数据保存在云端,大大增加了机密数据的可维护性和安全性。所以这个课题暂时由提出这个想法的阿里云 行实现,由于本课题涉及部分商业的非开源代码,所以在本次实现中将不会使用酷盘等部分的核心代码,将会采用百度 为替代。 北京航空航天大学毕业设计(论文) 3 内外的研究现状 国外的云计算开始较早,早期的探索是 从云存储开始,成功的产品有从早期的到后来的 等等。后来随着云计算进一步发展,一款真正的云 生了,那就是 S5, S 是一款具有里程碑意义的操作系统,它是基于 开源操作系统,在 S 中绝大部分的应用都是在浏览器中完成的,迅速、简洁、安全是 S 的重要特征。 但是就个人云概念的理解上,稍有偏差的是在 本文中泛指终端,是个人云系统与用户进行交互的载体)的定义,对于 S 而言, 要 者 构的系统,才能承载 S,但是个人云系统中的 泛指的,是不应该限定 硬件的,而且由于用户脱离传统的操作系统而使用云系统的使用习惯尚未形成,所以目前的个人云系统的相关生态系统也并不完整。 国内对于个人云系统的研究基本还都处在云存储以及混合式云存储的模式。国内的主要云产品有百度云,阿里云的 引擎)、 构化存储)、 服务器)、 放结构化存储)等等。 百度云是百度公司推出的一 款云服务产品,通过百度云,用户可以将照片、文档、音乐、通讯录等数据在各类设备中使用,或者在百度的朋友圈中进行分享,与传统的网盘相比,百度云包括了云磁盘、相册、通讯录等云服务。但是百度云的定位还是偏向云存储,尚未完全利用个人云计算的能力。 阿里云的 都是阿里云面向开发者提供的云计算产品,其中 云服务器服务, 云引擎服务, 开放云存储服务, 开放结构化数据存储服务。可以说个人云系统中每一个我们需要的模块,在阿里云都有对应的产品,但是尚没有一个成熟的产品将这些 模块进行结合,从而构建个人云系统。主要的问题在于如何构建一种商业模式才能与个人云系统进行结合并商业化。因为传统的系统通常是与个人电脑进行绑定的,而这并不是适用于个人云系统,北京航空航天大学毕业设计(论文) 4 那么个人云系统的盈利模式是怎样的,尚未有一个定论,因此这也是目前很多公司迟迟不推出个人云系统的原因。 腾讯是国内另一家在个人云系统领域有所尝试的公司,主要是的产品是 传统的即时通讯软件 植到了云端,并添加了相应的分布式 如图片处理等。从某种意义来讲, 国内最接近个人云系统定义的一款产品,但是其最大的 缺陷在于没有整合个人云存储服务,主要的考量在于安全性,因为依托即时通信的系统在大规模的即时数据交换的过程中如何保证数据的安全和隐私性是另一个难题。 可以说,国内的个人云领域的尝试还处在起步阶段,目前尚没有一款产品能够真正的完全符合个人云的定义。主要的原因在于尚未把云存储和 及信息相结合,国内的个人云系统尚处在试验阶段,基本都是只做了数据、 端中的其一或者其二,尚不能算完全的个人云系统。 综上所述,目前的个人云领域还处在探索的阶段,主要的问题 由于成本、安全性、易用性、生态系统的不完整 等原因,目前尚未有能够满足个人云系统的全部特性的产品出现,所以在本课题中,将会设计和构建一个基于 个人云的原型系统,用以阐述和说明个人云系统的原理和结构。 题的目标与内容 标 在个人云计算和个人云存储的基础上,构建一个具有跨平台、资源高效利用、高可维护性、高容灾性的基于 个人云的原型系统。设计和构建该系统的目的在于,探索个人云系统的基本架构和特性。本课题构建的个人云系统具有如下的结构,如图 示 北京航空航天大学毕业设计(论文) 5 图 人云 系统的基本结构 1) 通过用户交互获取命令的 部分是整个系统的前端部分,是与用户直接交互的部分,用户与 行交互,向其中输入命令并从中得到命令执行的结果,该部分的主要作用就是做命令的传输以及命令结果的展示。 2) 进行命令解析并派发的 统,该部分是整个系统的核心部分,是命令的解析器、是调度 文件系统的大脑。 3) 命令的载体,分布式的 布式 命令的载体之一,它是整个系北京航空航天大学毕业设计(论文) 6 统的执行程序,通过 统进行分发调用。 4) 以个人云存储为基础的文件系统,该部分是整个系统的最底层,作为 持久化存储,文件系统的主要功能就是持久化个人云系统的数据。 究内容 根据研究的目标,对应的研究包括如下几个方面: 第一, 研究终端泛型的 构建方法 终端泛型的概念很宽泛,在本文中泛型主要是针对硬件平台,包括 硬件架构。目前有很多方式进行跨终端的程序构建,例如 过虚拟机和中间字节码的方式打包跨终端的程序,但是前提是需要此终端支持并安装 拟机,为了尽可能的减少不同终端的差异导致的不必要的 兼容问题,本课题将会采用 要研究 建终端泛型 技术,需要对跨平台的 发进行深入的了解。最后设计并构建一款可以在不同系统,不同硬件上运行的 序。 第二, 可扩展的 令解析系统的构建方法 如何在不影响用户使用的前提情况下,升级命令集是个人云系统的另一个研究 内容。本课题采用的方式是将 台进行分布式的部署,从而在要更新命令集的时候,只需要部分轮流更新节点的命令集即可,这样就可以保证用户在无察觉的情况下更新命令集甚至整 个系统,这需要对分布式的架构有深入的了解,还需要对统进行深入的研究。 第三, 研究分布式 构建方法 统命令解析时,会分发不同的命令到不同的命令执行程序,对于需要大 规模计算的程序,构建对应的分布式的 以分享云计算带来的计算能力以及相应的特性。对此,需要深入了解分布式的 开发方式以及分布式数据库的构建与维护方法。 第四, 基于云存储的文件系统的构建方法 为了利用云存储的大容量等特性,将传统的系统的文件系统移到云端,这需要 北京航空航天大学毕业设计(论文) 7 了解在本课题中使用的通信协议 可将文件系统的命令返回结果通过递给 协议的基础上,才能构建基于个人云存储的文件系统。 第五,根据上述的研究成果,并借助现有云产品的结构与经验,设计并构建基于 个人云系统。 文的组织结构 本课题的主要内容是设计和构建基于 个人云的原型系统,并通过实验说明该原型系统的结构及功能有效性和具有的特性。本文首先分析了个人云系统的背景与构建个人云系统的意义;其次对构建个人云系统的核心技术进行了较详细的阐述;然后着重介绍了个人云系统的设计思路与构建方式;最后进行了相关的实验分析。 论文的组织结构如下: 第一章绪论 介绍本文的研究背景,阐述了个人云系统的国内外的研究现状,提出了本文的研究目标和主要的工作内容。 第二章相关技术的简介 介绍本文工作涉及的主要相关技术重点分析了全栈式开发的方式,分布式构建方式等等。 第三章系统的设计与实现 介绍基于 个人云系统的各个模块的设计思路与实现方案。 第四章实验验证 首先介绍如何配置个人云系统的环境,然后对个人云系统的主要功能模块进行验证,并用实例说明其具有的分布式等特性。 第五章总结与展望 完成整个原型系统的设计与实现后,对开发工作中获取的经验进行总结,并讨论系统存在的问题和下一步的工作展望。 北京航空航天大学毕业设计(论文) 8 2相关技术简介 在构建基于 个人云系统的过程中,为了提高开发效率,将会采用全栈式开发的方式进行开发, 其好处在于,只需要一种开发语言即可完成从前端到后台的开发,从而可以使部分的代码在前端与后端进行共用,大大减少了在不同开发环境下切换开发语言造成的成本开销。在模块之间采用 议进行通信,该协议是目前在浏览器端进行全双工通信的唯一方式,为了保证系统的实时性,前端 间采用 议通信。另外 命令执行程序将会采用分布式 分布式数据库的相关技术进行构建。因此在本章主要介绍全栈式开发,分布式 布式数据库以及 相关技术。 栈式开发技术 介 随着不同终端 (兴起,对开发人员的要求越来越高,纯浏览器端的响应式已经不能满足用户体验的高要求,往往需要针对不同的终端开发定制的版本。为了提升开发效率,前后端分离的需求越来越被重视,后端负责业务与数据接口,前端负责展现与交互逻辑,同一份数据接口,可以定制开发多个版本。 正如当初 开发堆栈一样, 来了完整的 发堆栈,即 简称。一个使用 格存储的数据库,非常适合 据格式 ), 一个 用框架,提供组件和模块帮助建立一个网站应用,一个前端 架, 一个并发、异步、事件驱动的 可以直接存储 式的数据,然后在 务器编写一个基于 查询,并无缝地 (无需像其他语言需要在 语言数据模型之间转 换 )传递 端。 北京航空航天大学毕业设计(论文) 9 同时,数据库调试和管理也变得轻松了许多,存储在数据库中的对象基本上等同于在客户端看到的对象。更妙的是,前端工作人员也能够轻松了解后端代码和数据库查询,使用的是相同的语法和对象,而不必考虑多套语言的最佳实践,降低了入门门槛。 全栈式开发的整体框架如图 示: 图 栈式开发的整体框架示意图 6 介 是一个介于关系数据库和非关系数据库之间的产品,它是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 式,因此可以存储比较复杂的数据类型。 大的特点是支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。 它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有: 面向集合存储, 易存储对象类 型的数据。 模式自由。 支持动态查询。 支持完全索引,包含内部对象。 支持查询。 北京航空航天大学毕业设计(论文) 10 支持复制和故障恢复。 使用高效的二进制数据存储,包括大型对象(如视频等)。 自动处理碎片,以支持云计算层次的扩展性 支持 C+, 多种语言。 文件存储格式为 种 扩展) 可通过网络访问 所谓“面向集合”( 意思是数据被分组存储在数据集中,被称为一个集合( 。每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。集合的概念类似于关系型数据库( 的表( 不同的是它不需要定义任何模式( 。 模式自由( ,意味着对于存储在 据库中的文件,我们不需要知道它的任何结构定义。在需要时完全可以把不同结构的文件存储在同一个数据库里。存储在集合中的文档,被存储为键 用于唯一标识一个文档,为字符串类型,而值则可以是各种复杂的文件类型。这种存储形式称为 务端可运行在 平台,支持 32 位和 64 位应用,默认端口为 27017。推荐运行在 64 位平台上运行,因为 32 位模式运行时支持的最大文件尺寸为 2 下面是 的内部实现方式,见图 北京航空航天大学毕业设计(论文) 11 图 内部实现方式 8 数据存储时按命名空间进行划分,一个 一个命名空间,一个索引是另一个命名空间,索引的底层实现是 同一个命名空间的数据被分成很多个 间通过双向链表进行连接。每一个 的数据保存了具体每一行的数据,这些数据也是通过双向链表来连接的。 介 一个简洁而灵活的 用框架 , 提供一系列强大特性 用于创建各种 用, 具有 丰富的 具以及来自 架的中间件 可供 随取随用, 使 创建强健、友好的 得快速又简单 ,对 有的特性进行二次抽象,只是在它之上扩展了 用所需的功能 。 是基于中间件的形式进行构建的,下面来看一段示例的代码如图 北京航空航天大学毕业设计(论文) 12 图 例代码 从图 中 需要加载中间件,首先需要 个中间件, 作类似 后采用 的方式加载即可。 下面来看一个中间件是如何进行初始化的,首先是采用 方式初始化中间件,然后进入中间件的初始化过程,如图 示。 图 间件初始化的过程 北京航空航天大学毕业设计(论文) 13 通过上述过程,一个 中间件就构建完毕了,而构建整个应用的其他工作就是如何用中间件来实现代码逻辑了。 介 10是一个为动态 用设计的结构框架。它用 为模板语言,通过扩展 语法,能使应用组件的构建更加清楚、简洁。它的创新点在于,利用 数据绑定 和 依赖注入 ,使用户不用再写大量的代码。这些全都是通过浏览器端的 现的,这也使得它能够完美地和任何服务器端技术结合。 为了克服 构建应用上的不足而设计的。 一门很好的为静态文本展示设计的声明式语言,但要构建 常,我们是通过以下技术来解决静态网页技术在构建动态应用上的不足: 类库 - 类库是一些函数的集合,可用于编写 用。由编写的代码起主导作用,由你来决定何时使用类库。类库有: 框架 - 框架是一种特殊的、已经实现了的 用,你只需要对它填充具体的业务逻辑。这里框架是起主导作用的,由它来根据具体的应用逻辑来调用代码。框架有: 。 用了不同的方法,它尝试去补足 身在构建应用方面的缺陷。 过使用我们称为 指令 (结构,让浏览器能够识别新的语法。例如:使用双大括号 语法进行数据绑定;使用 制结构来实现迭代或者隐藏 段;支持表单和表单的验证;能将逻辑代码关联到相关的 将 组成可重用的组件。 图成为 用中的一种端对端的解决方案。这意味着它不只是 用中的一个小部分,而是一个完整的端对端 的解决方案。这会让 构建一个 加 询新 除 应用时显得很轻松。 一些出众之处如下:构建一个 用可能用到的全部内容包括:数据绑定、基本模板标识符、表单验证、路由、深度链接、组件重用、依赖注入。测试方面包括:单元测试、端对端测试、模拟和自动化测试框架。具有目录布局和测试脚本的种子应用作北京航空航天大学毕业设计(论文) 14 为起点。 过为开发者呈现一个更高层次的抽象来简化应用的开发。如同其他的抽象技术一样,这也会损失一 部分灵活性。换句话说,并不是所有的应用都适合用 做。 要考虑的是构建 用。幸运的是,至少90%的 用都是 用。 在 很重要的一个概念就是 以说 用是构建在上的,那么要想深入的了解 图 图 1 这是 典型的 一个实现,因为 对象的一个实现,所以也是基于原型的继承。 假设父类 如下成员属性 以及 子类 型继承父类 如果子 试去访问 定义的属性 ,先在子 查找 , 如果没有该属性 , 则 到 它继承的 获取属性 , 如果继承的原型对象 都没有该属性 , 那么继续在它的原型中寻找 ,从原型链一直往上直到到达 北京航空航天大学毕业设计(论文) 15 介 12是一个服务器端 释器,它将改变服务器应该如何工作的概念。它的目标是帮助程序员构建高度可伸缩的应用程序,编写能够处理数万条同时连接到一个(只有一个)物理机的连接代码 。 开宣称的目标是 “ 旨在提供一种简单的构建可伸缩网络程序的方法 ” 。当前的服务器程序 存在什么 问题 ?在 类语言中,每个连接都会生成一个新线程,每个新线程可能需要 2配套内存。在一个拥有 8系统上,理论上最大的并发连接数量是 4000 个用户。随着客户群的增长,如果希 望 用程序支持更多用户, 则 必须添加更多服务器。当然,这会增加服务器成本、流量成本和人工成本等成本。除这些成本上升外,还有一个潜在技术问题,即用户可能针对每个请求使用不同的服务器,因此,任何共享资源都必须在所有服务器之间共享。鉴于上述所有原因,整个 用程序架构(包括流量、处理器速度和内存速度)中的瓶 颈是:服务器能够处理的并发连接的最大数量。 决这个问题的方法是:更改连接到服务器的方式。每个连接发射一个在 擎的进程中运行的事件,而不是为每个连接生成一个新的 程(并为其分配一些配套内存)。 称它绝不会死锁,因为它根本不允许使用锁,它不会直接阻塞 I/O 调用。 宣称,运行它的服务器能支持数万个并发连接 。图 底层架构图: 北京航空航天大学毕业设计(论文) 16 图 底层架构图 由于底层 擎的优化以及 供的事件驱动能力,让 了源源不断的动力 。 栈式开发的价值 现代项目的开发,需要掌握多种技术。互联网项目,需要用到后端开发、前端开发、界面设计、产品设计、数据库、各种移动客户端、三屏兼容、 计和 等,比较前卫的项目,还会用到 些技术以及像第三方开发像微信公众号微博应用等等。 代的 端,需要用到模块化开发、多屏兼容、 种复杂的交互与优化,甚至需要用到 协助前端的开发。 那么采用全栈式开发就是一个最好的选择,因为全栈式开发可以保证前端到后台都采用同一种语言进行开发,这大大地减少了在不同语言之间切换造成的成本,包括类库的不通用,编程思维的不同,测试框架的不兼容等等。而全栈式开发的好处在于让开发者可以更快捷的开发,从全局的角度设计和构建整个项目,保证前后端代码的通用和可测试,从而提升开发效率与质量,降低开发成本。 布式 简介 分布式 分布式系统的一种,通常情况下是由分布式系统和分布式数据库组成的。在一个分布式系统中,一组独立的计算机展现给用户的是一个统一的整体,就好像是一个系统似的。系统拥有多种通用的物理和逻辑资源,可以动态的分配任务,分散的物理和逻辑资源通过计算机网络实现信息交换。系统中存在一个以全局的方式管理计算机资源的分布式操作系统。通常对用户来说,分布式系统只有一个模型或范型。在操作系统之上有一层软件中间件( 责实现这个模型。一个著名的分布式系统的例子是万维网 ( 在万维网中,所北京航空航天大学毕业设计(论文) 17 有的一切看起来就好像是一个文档( 面)一样。 下面用一个实际的分布式 举例说明分布式 系统架构,在此以 步,脚部测量软件公司)的官方网站举例, 网的架构是一个典型的分布式 架构,如图 示: 图 2.7 网的逻辑分层 首先介绍整个系统的逻辑分层,从逻辑分层的角度而言,整个系统分为四层,最上面一层是控制层也叫路由层,负责将用户的请求进行仲裁,并将仲裁后的请 求发送到业务层;业务层属于整个系统的前端部分,在业务层中主要处理的是用户请求的数据的结构以及相应的逻辑实现,当用户需要进行数据持久化或者获取持久化数据的时候,此时需要通过数据库操作层进行数据获取;数据库操作层属于整个系统的后端部分,也称为 ,主要的功能是将数据库的 处可理解为数据的逻辑结构)映射为程序中的对象或者操作方法;在整个系统的最底端是数据库,其作用是持久化数据以及持久化数据的查询工作。 下面来看一下 网的结构分层,见图 京航空航天大学毕业设计(论文) 18 图 2.8 网的结构分层 与逻辑分层进行对应,前端集群包括控制层和业务层,服务端集群包括数据库操作层,而 群比较特殊是一个独立的部分,主要的作用是在弥补集群之间无法共享内存与 缺陷,通过内存式数据库的方式在多节点之间共享数据。 在本文中实现的分布式 一个标准的水平扩展,与上述的 统结构类似,和传统的集中式应用的区别在于分布式 架构如图 示: 图 布式系统架构 13 北京航空航天大学毕业设计(论文) 19 任何单一节点的宕机不会影响其他节点,而集中式的架构是垂直分布的,一旦主机宕机,那么结果将是灾难性的。 布式数据库系统简介 分布式数据库系统通常使用较小的计算机系统,每台计算机可单独放在一个地方,每台计算机中都有 一份完整拷贝副本,并具有自己局部的数据库,位于不同地点的许多计算机通过网络互相连接,共同组成一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论