网络同步备份系统的设计与实现毕业论文.doc_第1页
网络同步备份系统的设计与实现毕业论文.doc_第2页
网络同步备份系统的设计与实现毕业论文.doc_第3页
网络同步备份系统的设计与实现毕业论文.doc_第4页
网络同步备份系统的设计与实现毕业论文.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

本本 科科 生生 毕毕 业业 论论 文文 论文题目 网络同步备份系统的设计与实现网络同步备份系统的设计与实现 姓 名 徐学文徐学文 学 号 201120210117 班 级 1122101 班班 年 级 11 级级 专 业 网络工程网络工程 学 院 软件学院软件学院 指导教师 周华清 副教授 周华清 副教授 完成时间 2015 年年 5 月月 10 日日 作作 者者 声声 明明 本人以信誉郑重声明 所呈交的学位毕业设计 论文 是本人在指 导教师指导下由本人独立撰写完成的 没有剽窃 抄袭 造假等违反道德 学术规范和其他侵权行为 文中引用他人的文献 数据 图件 资料均已 明确标注出 不包含他人成果及为获得东华理工大学或其他教育机构的学 位或证书而使用过的材料 对本设计 论文 的研究做出重要贡献的个人 和集体 均已在文中以明确方式标明 本毕业设计 论文 引起的法律结 果完全由本人承担 本毕业设计 论文 成果归东华理工大学所有 特此声明 毕业设计 论文 作者 签字 签字日期 年 月 日 本人声明 该学位论文是本人指导学生完成的研究成果 已经审阅过 论文的全部内容 并能够保证题目 关键词 摘要部分中英文内容的一致 性和准确性 学位论文指导教师签名 年 月 日 网络同步备份系统的设计与实现网络同步备份系统的设计与实现 徐学文徐学文 The design and implementation of network synchronization backup system Xuewen Xu 2015 年年 5 月月 10 日日 摘摘 要要 对于许多关键系统 容灾备份对数据的保护具有不可替代的作用 在现实 工作中我们经常能听闻有些企业因为数据的丢失而导致不可估量的损失 导致 整个系统瘫痪 国内做数据备份的公司起步比较晚及其产品并不成熟 因此主 要是海外的公司在这方面占很大的市场份额 而其价格也非常贵 以致我国小 型银行系统 大型公司 小型企业的网络系统很少有比较完备的灾难备份系统 一旦发生数据灾难 后果可想而知 目前解决数据备份的方法很多 特别是在 远程容灾系统基于网络备受关注 采用该方法实现的在线备份系统具有数据安 全性高 系统运行维护开销低等优点 在数据备份这方面有巨大的市场潜力 本论文网络同步备份系统 基于 C S 模型 具有客服端维护成本低 系统 扩展容易 客服使用方便等优点 本系统由客户端和服务器两部分组成 使用 C 开发语言 其稳定性更有保障 客服端完成用户的注册和登录 同时发送 本地文件到远端的服务器进行备份 服务器端验证用户的登录 当客服端的数 据丢失时供其下载 本系统的最大优点就在于网络同步 无需人为干预 自动 扫描本地文件并完成数据同步备份 大大降低了数据出错率 关键词 关键词 系统容灾 网络同步 备份 C Abstract For important system disaster backup has an irreplaceable role In practical work we can often heard some companies because of the loss of data and result in an immeasurable loss cause the whole system paralysis However do data backup s companies in China started late and its products are not mature so mainly overseas company accout for a large market share in this aspect and the price is very expensive so that small bank system in our country the network system of large companies small businesses have few relatively complete disaster backup system in the event of data disaster At present there are many data backup solutions notably the different disaster recover system based on network Online backup system is realized by using this method has a high data security system running maintenance overhead small It has vast market prospect Network synchronization backup system it based on C S model With the end of the service maintenance cost is low This system consists of two parts the client and the server using C development language its stability is more secure The server to complete the user registration and login at the same time send a local file to the remote server for backup Server side validation of user login when the end of service data loss for download The biggest advantage of this system lies in the network synchronization without human intervention automatic scanning local file and complete the data synchronization backup Keyword System Disaster tolerant Network Synchronization Backup C 目目 录录 摘摘 要要 III ABSTRACT IV 目目 录录 V 1 绪论绪论 1 1 1 课题研究的背景 1 1 2 国内外现状 1 1 3 课题研究的意义 2 1 4 论文结构 2 2 系统设计分析系统设计分析 4 2 1 可行性分析 4 2 1 1 技术可行性 4 2 1 2 经济可能性 4 2 1 3 操作可能性 4 2 2 开发工具 4 2 2 1 Visual Studio 2010程序开发平台 4 2 2 2 C 程序设计语言 4 3 系统需求分析系统需求分析 5 3 1 需求分析 5 3 2 数据需求分析 5 3 3 数据流图 6 4 系统功能界面与实现系统功能界面与实现 7 4 1 服务端 7 4 1 1服务器端界面介绍 7 4 1 2 服务器端功能实现 7 4 1 2 1 服务器端添加用户 8 4 1 2 2 服务器端验证用户 9 4 1 2 3 服务器端与客户端同步文件 9 4 1 3 服务器数据库 11 4 3 客户端 11 4 3 1客户端界面介绍 11 4 3 2客户端功能实现 12 4 4 同步成功 12 4 5 同步到服务端 13 5 程序测试与维护程序测试与维护 14 5 1 系统的配置 14 5 2 系统的维护 14 5 3 系统测试 15 结结 论论 16 参考文献参考文献 17 致谢致谢 18 附附 录录 19 东华理工大学毕业设计 论文 绪论 1 绪论 1 1 课题研究的背景 信息化将引领世界潮流 对于促进社会经济的发展具有不可替代的作用 随着网络覆盖范围的扩大和网络通信技术的飞速发展 信息的共享变得简易方 便 日常工作 生活的信息量呈几何式增长 我们生活在一个数据大爆炸的时 代 而搭建网络的最根本目的就是要更方便地进行数据共享 而信息的安全性 逐渐成为一种挑战 如果不能确保这些数据的安全 那么对网络的巨大投资将 变得毫无意义 系统的数据才是最珍贵的资源 计算机软硬件 实质上都是数 据资源的一种载体 而数据的价值远远大于设备的价值 在这个信息化时代 企业和政府机构对数据信息和计算机网络应用产生了 越来越强的依赖 时时刻刻在线传递的大量通信数据和海量存储的数据库 成 了大型企业和各级政府机构 保险 金融赖以生存的命脉 然而 人为误操作 黑客攻击 木马病毒 系统自身故障 自然灾害等不确定因素是威胁数据安全 的主要原因 任何原因导致的数据不完整 毁损甚至丢失 都将影响系统作用 的发挥 对一家企业产生的损失将无法估量 甚至不可弥补 位于美国世贸大厦的公司在震惊全球的 9 11 事件中就曾发生过数据丢失 的悲剧 只有四分之一的公司使用了海量数据存储系统 而正是这些公司在灾 难发生后迅速恢复业务 而其他很多公司则因数据丢失而一蹶不振甚至直接从 该行业消失 虚拟化的广泛应用 云计算的出现 数据量每年的高速增长 数据类型和 来源多样化 所有这些因素都让现代存储技术在企业和组织成功中扮演着越 来越重要的角色 数据的价值与及数据再生产的代价都是很高的 然而任何的 自然灾害或是认为操作失误都会对数据造成威胁 但是这并不意味着我们就束 手无策 实际上 只要我们能够做到有效 及时的数据备份 就可以解决后顾 之忧 如果发生数据丢失事件 应以快速恢复系统的数据为首要目标 而数据 备份就是迅速恢复数据的前提 备份作为一种数据安全策略 是避免数据丢失 的最基本也是最有效的手段 冗余和高可靠的方案只是降低了数据丢失的发生 率并不能从根本上解决数据安全问题 当原始数据发生丢失或是遭到破坏时 我们就可以利用备份数据恢复原始数据 使系统恢复正常 作为数据恢复的一 种手段 备份的目的是为了在数据灾难后 缩短系统瘫痪时间 尽可能将损失 降到最低 备份的最终目的 数据恢复 有效的备份 能够让企业以最少的投 东华理工大学毕业设计 论文 系统设计分析 1 资 得到最可靠的服务 数据备份系统是计算机信息系统安全的一个非常重要 环节 1 2 国内外现状 看一家企业有多成功 我们主要就是看这家企业拥有多少用户 用户本身 只是载体 其内在的数据才是企业的血液 数据已成为企业的战略核心 其对 数据的渴求已到寸土必争的地步 业务数据正扮演这重要的角色 珍贵的数据 其丢失的风险同时也变高 对很多用户来说 备份已经是个比较熟悉概念 但 对它的重要性及地位却不一定有清晰的认识 现代企业不仅需要一个稳定可靠 的 IT 环境 但也需要保护和存储业务数据的备份数据 从而提高数据的高可用 性 另外 传统的存储方式已经很难满足数据量大幅度增长所需要的环境 在 这种压力下 数据存储经历了集中式存储 分布式存储和 SAN Storage Area Network 存储区域网络 网络连接式存储 network attached storage NAS 阶段 网络同步备份是继文件服务之后第二个最广泛的网络存储应用 早在上个世纪 80 年代中期 国外就对网络备份系统进行研究和开发 而 如今也就只剩下像 EMC 惠普 VERITAS Legato IBM 这样的巨头 其 产品成熟 技术先进 服务周到是许多银行 金融 保险行业的不二选择 目前我国已有的数据备份系统水平比较低 主要是因为计算机网络系统用 户 信息安全意识淡薄 缺乏数据备份系统的知识和操作技能 大多数的存储 和备份系统比较简单 主要缺点是 第一 手工操作 效率低 出错率高 第 二 无法实现在线同步服务 需暂停系统备份 影响业务运行 第三 遇到严 重的安全事件或毁灭性灾难以后无法恢复数据 第四 采用国外产品 价格昂 贵 不符合国家战略要求 容易留下安全隐患 1 3 课题研究的意义 我们都很清楚在数据备份方面我国与国外相比有比较大的差距 国际数据 备份技术及其应用已发展到一个比较成熟的阶段 技术先进 而国内还处于萌 芽阶段 尽管政府在数据备份方面投资不少 而刚刚起步的国内厂商依然举步 维艰 我国的网络数据安全备份软件在科研方面同样也取得喜人的成果 也生 产了一些产品 但不管是在市场占有率方面还是在产业规模以及技术水平和开 发能力上我们与国际先进水平相比还是有着很大的差距 其中备份软件是进行 网络数据备份的非常实用的工具 国内在这方面的成功案例屈指可数 为了缩 小与发达国家的差距打破国际品牌的垄断和发展民族品牌 研发网络备份软件 变得更加需要和迫切 东华理工大学毕业设计 论文 系统设计分析 2 我们创建数据的副本即备份并严格保存的唯一目的是希望用它恢复被删除 或损坏的数据 处于业务和法规的原因 企业对于数据存储 保留和可用性的 要求日益提高 需要保存的数据也不短增长 信息的不断增长和紧缩的 IT 预算 以及没有足够时间进行备份让数据安全问题更加复杂 企业为了满足服务水平 协议 SLA 的要求 需要一个更快的方法 恢复备份的数据 备份的一个目 的是为了应对灾难恢复的需求 当主位置因灾难而不能工作时 备份的副本将 用于在备用地点恢复数据 基于 RPO 和 RTO 的需求 企业使用不同的灾难恢 复数据保护策略 有些企业使用磁带的备份方法作为灾难恢复策略 这时备份 磁带介质应被运往异地进行保存 从而确保数据安全 这些磁带可以用于灾难 恢复点的数据恢复 有些组织对 RPO 和 RTO 要求比较严格 为了能够在遇到 灾难时以相对较短的时间恢复生产系统 组织会采用远程复制技术复制数据带 灾难恢复位置 而网络同步备份系统属于在线备份 热备份 可以快速恢复数 据 考虑到生产本地环境安全性原因 通常数据备份一般存储在不同的介质 最好是地理冗余避免因自然灾害 地震 火灾 而造成数据丢失 在生产中心 存放一份从而保证数据的快速恢复 系统正常运行 其他备份则要移到比较安 全的地方保存 以保证当生产中心出现灾难后以最低代价恢复数据 1 4 论文结构 第一章 绪论 主要对本课题的研究背景 现状 研究的意义等的介绍 第二章 系统设计分析 主要阐述系统开发的可行性 以及对开发系统要使 用的工具进行深入了解 第三章 需求分析 对于本次毕业设计的具体需求情况进行分析 分别包括 系统的数据分析 数据流程图等内容 第四章 系统功能展示 主要介绍系统各种功能的实现 同时列出关键代码 第五章 系统测试与维护 主要描述对备份系统各环节的测试和整个系统的 测试 最后是结论和参考文献 东华理工大学毕业设计 论文 系统设计分析 3 2系统设计分析 2 1可行性分析 在对整个网络同步备份系统进行需求分析时 主要综合了技术可行性 经 济合理性 系统实用性等各方面 以避在研发和后期投入使用时出现故障 保 证备份系统成功开发 可行性研究主要集中在以下三个方面 2 1 1 技术可行性 通过对系统的功能分析 我们使用 Visual Studio 2010 作为后台数据支持 程序设计选择 C 程序设计语言进行程序编写 C 语言经过多年的发展和更 新 已经成为一种非常稳定的语言 因此本此课题研究在技术层面上 是完全 可行的 2 1 2 经济可能性 经济可能性主要是分析本系统在研发成本和投入使用后的运维费用上的投 资 同时对系统投入使用后的市场效益做评估 确保收益大于投资 从而保证 整个项目能顺利完成 本系统为企业的重要文件设计 通过使用本系统能够大大提高工作人员的 效率 因此 本系统在经济上是可行的 2 1 3 操作可能性 因为本系统采用的是 C S 模型 我们为客户开发了一个简洁大方的客服端 界面作为系统入口 使用户操作起来简便 软件程序开发是否能够取得成功 一是市场的需求 二是程序开发所需要软件开发工具 以及开发技术和当时硬 件的发展水平 从这两个方面而言 网络同步备份系统设计的操作性是可行的 东华理工大学毕业设计 论文 系统设计分析 4 2 2 开发工具 2 2 1 Visual Studio 2010 程序开发平台 Visual Studio 是微软公司推出的开发环境 是目前运用较为广泛的应用程 序开发环境 Visual Studio 2010 版本与之前版本有所不同的是重新设计和组织 集成开发环境 IDE 的界面 增加了 NET Framework 4 0 Microsoft Visual Studio 2010 CTP 并且支持开发面向 Windows 7 的应用程序 在支持数据库方 面加入了 IBM DB2 和 Oracle 数据库 Windows 平台下 的 Windows 应用程序 智能设备应用程序 网络应用程 序和 Office 插件等都可用 Visual Studio 创建 于 1992 年发布的 Microsoft C C 8 0 Visual C 1 0 与原有 C 开发工具 Microsoft C C 7 0 相比 其开创性地引进了 MFC 微软基础类库 库并完善了源代码 从此告别了 DOS 的 字符界面 用户可以在 GUI 界面下进行开发 开创了软件开发的可视化 Visual 时代 从此 大佬的时代开始了 2 2 2 C 程序设计语言 C 是 C 语言的延伸 具有面向对象编 泛型编程和过程化编程于一体的 编程语言 用 C 语言编写的软件稳定性高 C 与 C 语言最大的不同就是 C 引入了面向对象的概念 使得开发人机 交互类型的应用程序更为简单 快捷 C 更简洁的说就是 C 的升级改造 在 保持 C 的简洁高效特点同时对 C 的库进行了扩充 因此 C 比 C 更安全 很多 优秀的程序框架都是用 C 编写的 比较有名的有 Boost Qt MFC OWL wxWidgets WTL 东华理工大学毕业设计 论文 系统设计分析 5 3 系统需求分析 3 1 需求分析 在对整个网络同步备份系统进行需求分析时 主要综合了技术可行性 经 济合理性 系统实用性等各方面 以避免无意义的投资 保证新系统成功开发 需求分析主要是针对市场需求而对系统的各种功能进行分析 可行性研究的目 的就是用最小的代价在尽可能短的时间内确定问题是否能够解决 对于本系统 分为客服端和服务器端两个模块 在客户端用户可以注册 登录 登录成功后 自动扫描本地目录 发现新文件或是文件更新自动同步到 服务器 定时比较服务器和本地目录的文件版本 自动下载最新文件 当客户 端不小心删除了本地文件可以从服务器端进行文件的下载 服务器端对系统的需求包括 用户注册 并对登录的用户进行身份验证 保留客服端文件版本的信息 提供客户端文件的上传 下载功能 对用户的存 储容量进行管理 当用户同步文件时超出了系统的存储能力 服务器将对用户 发出警告 经对整个系统操作流程的分析 了解各层模块的功能需求 分析得出了本 系统使用者的功能模块图 如图下所示 网络同步备份系统 储存文件 发送到服 务端 意外删除 储存 从服务端 备份 图 3 1 系统功能模块图 东华理工大学毕业设计 论文 系统设计分析 6 3 2 数据需求分析 通过对系统数据流的分析 下图是用数据字典描述从客户端到网络同步备 份系统到服务端的信息流 数据在存储系统中的存储 数据处理过程和模块实 体 分析系统功能 绘制出系统数据流图 直观显示出系统数据在系统各个部 分之间的流动情况 如图 3 2 描述 客服端触发事务 插入 修改 删除等 传输到网络同步备份系统 存储系统对数据进行相应的修改并将操作结果发送 到服务端 服务端对数据也做相应的更新 验证失败 验证成功 发现数据更新 本地数据更新本地数据丢失 登录客户端 与服务端比 较 服务器 退出系统 验证用户信息 用户登录 东华理工大学毕业设计 论文 系统设计分析 7 同步到服务器 从服务器下载 数据存储 数据发送 图 3 2 数据流程图 3 3 数据流图 在图 3 3 中 主要描述了整个系统的数据流图 上行数据 用户成功登录 后 网络同步备份系统从客户端接收信息 同时备份系统将从客户端接收的信 息写入存储系统 服务器再通过备份系统接收来自客户端的数据 下行数据 当服务端发现新版本的文件时 将发送信息给网络同步备份系统 备份系统将更新的信息写入存储系统进行数据库更新 信息存储系统将更新的 文件通过网络同步备份系统发送给客户端 在整个数据流动过程中 信息储存是其核心 不管是用户到服务端还是服务 端到用户 其数据先经信息储存系统进行数据更新 再将更新后的数据发送给 用户或服务端 服务端 网络同步备份系 统 接收信息 发送信息 信息储存 用户1 用户2 发布信息 接收信息 发布信息 接收信息 图 3 3 数据流图 存 储 系 统 东华理工大学毕业设计 论文 系统设计分析 8 3 4 协议包基本格式 3 4 1 包格式 此处描述的是通过网络传递信息时用到的协议 为 IAP TIP TIP 协议为程 序内部传输信息所使 IAP首部TIP属性 CodeVer Hdr len Session id Total length TIP属性 rnprimoderesparm 16 1122 111 Reser ved 21 0 xEB 0 x90NUM 111 Src AddrDst Addr 22 sidcidctmtidabtLen Reser ver code 11124441 图 3 4 协议包图 3 4 1 1 IAP IBP 包头 下面主要介绍 IAP IBP 协议包头的各个参数 下图为 IAP IBP 包头格式 CodeVer Hdr len Session id Total length 1122 Reser ved 21 0 xEB 0 x90NUM 111 Src AddrDst Addr 22 图 3 5 IAP IBP 包头图 0XEB 和 0X90 字段 这两个字节为同步头 为固定值 分别是 0 xEB 和 0 x90 Header Length 字段 包头数据长度为 1 个字节 即包头最长不超过 256 字 节 为了找到属性的起始位置 必须从包头的开始位置偏移此长度就是属性的 起始位置 包头长度目前设计为 16 字节 但不排除将来为扩展协议而将包头的 长度增加 Ver 字段 Ver 字段表示当前协议的版本号 目前的版本号为 2 Code 字段 Code 字段长度为 1 字节 编码的取值范围是 0 到 255 通过 Code 接收方可以区分不同的报文类型 可以通俗地理解为需要这个包 做什么事 如请求 发送 应答等等 即 Code 表示一类动作指令 具有动词 属性 Reserved 字段 保留字段 必要时候可以作为 Code 字段的扩充 平时应该 东华理工大学毕业设计 论文 系统设计分析 9 填 0 Src Addr 字段 报文源发送地址 指第一个目标产生此报文的程序的地址 Dst Addr 字段 报文目的地址 指目标产生此报文的程序要发送给最终目 的地址 Num 字段 Num 字段长度为 2 字节 编码的取值范围是 0 到 65535 表示 发送包的序号 如果接收方需要对发送方的命令进行回复 那么回复报文中需 要把接收方的 Num 值拷贝到回复命令中进行回送 Num 值达到了 65535 后 自动翻转到 0 并重新开始记录包序号 Session ID 字段 表示各模块之间进行交互 2 字节 范围从 1 65535 即最多同时有 65535 个会话 由各模块自己分配 Session id 在会话结束后回 收 下一次可以重复分配使用 客户端在收到来自服务端的响应后 须在返回 的报文中添加这个来自服务端报文中的 Session ID 0 xFFFF 的 session id 是告 警广播专用 id Total Length 字段 2 字节 Total length 包括包头和属性的全部长度 3 4 1 2 TIP 属性说明 TIP 协议作为程序内部传输的协议 在通过网络传递时 需要加上 IAP 头 所有数据放在 TIP 的后面 下面介绍 IAP 协议包头的参数 包格式如下图 rnprimoderesparm 111 sidcidctmtidabtLen Reser ver code 11124441 图 3 6 TIP 包头图 Code 字段 命令字字段 Char 型字节 Reserved 字段 属于保留字段 占 1 字节 主要用于属性功能的扩展 目 前填 0 abtLen 字段 TIP 数据包的长度 包括 TIP 包头和后面跟的所有数据 Tid 字段 前台系统分布在不同的地方 通过 tid 字段区分各个站点 规定 tid 字段为 9 位数 如 323020202 Ctm 字段 表示 tip 生成时间 cid 字段 网络套接字号 Sid 字段 前台的每个站点下面下挂很多设备 设备的编号用 sid 表示 以 区别不同的设备 Rn 字段 最大重发次数 此字段表示当数据包发生丢失时重传包的次数 Pri 字段 优先级 表示数据包转发的优先级 优先级高的先转发 Mode 字段 发送模式字段 先进先出 1 后进先出 2 东华理工大学毕业设计 论文 系统设计分析 10 Resparm 字段 最大 8 个字节的数据 3 4 2 协议内容 IAP 头文件的 code 都使用 0 x51 根据实际需要 在 TIP 协议段中将需要完 成的每项功能都定义了一个 Code 值 其中 CS 表示客户端向服务端发送 SC 表示服务器到客户端 CS SENDFILE发文件 CS SENDFILEINFO发送文件夹信息 CS ADDUSER注册用户 CS LOGIN登陆 SC RELOGIN登陆反馈 SC READDUSER注册反馈 SC SENDFILE发文件 SC GETFILE请求文件 SC DELETE C FILE 删除文件客户端文件 SC DELETE S FILE 删除文件服务端文件 SHOW INFO信息展示 3 4 3 协议代码实现 协议作为数据传输的核心 在整个数据传输的过程中扮演着关键角色 做 为业务的载体任何通信都需要协议的支持 而选择所使用协议的好坏更是决定 整个系统的性能 下面为本系统所使用的协议的核心代码 bool CopyTIP TIP HEAD tip TIP HEAD if NULL ctip TIP HEAD new char tip abtLen return false memcpy void ctip void tip tip abtLen return true void TIP Data TIP HEAD tip return unsigned char tip sizeof TIP HEAD bool TIP Make TIP HEAD TipTmplList unsigned char code unsigned int parm int dlen void data TIP HEAD memcpy void tip void TipTmplList code sizeof TIP HEAD tip code code tip tid tid tip sid sid tip cid 0 tip ctm time NULL time diff tip resparm parm parm if dlen 65536 sizeof TIP HEAD tip abtLen sizeof TIP HEAD else tip abtLen dlen sizeof TIP HEAD if 0code code tip tid tid tip sid sid tip cid 0 tip ctm time NULL time diff tip resparm parm parm 如 果数据包的长度 dlen 大于或等于 65536 sizeof TIP HEAD 则数据包的总长度 为 TIP HEAD 既该数据包只有报头没有携带数据 否则数据包的总长度为数据报 头长度 TIP HEAD 与 dlen 之和 东华理工大学毕业设计 论文 系统设计分析 12 4 系统功能界面与实现 4 1 服务端 4 1 1 服务器端界面介绍 系统服务端界面如图 4 1 所示 在服务端我们可以看到客户端信息 占用空间表示的是客户端同步到服务器的文件所占用空间 便于对存储容 量进行管理 文件数量表示的是客户端同步到服务器的文件数目 本地文件框中显示的 是从客户端同步到服务器的文件名 心跳计数 客服端连接服务器端后 会发送心跳包和心跳回复包 用来判 断和维持双方通信 心跳包里面包含了 socket 套接字 用来保障双方的通信临 时中断后能恢复连接 显示在界面上就是为了直观感受到双方已经连接上 如 果没有计数或是计数停止则表示通信故障 图 4 1 服务端窗口 4 1 2 服务器端功能实现 4 1 2 1 服务器端添加用户 当用户在客户端注册时 服务器端接收来自客户端的用户注册信息并添加 到数据库 下面这段代码是添加用户的主要代码 东华理工大学毕业设计 论文 系统设计分析 13 void CS adduser LOGININFO strName logininfo user strKey logininfo key MAP USER KEY iterator it it map userkey find strName if map userkey end it map userkey erase it map userkey insert MAP USER KEY value type strName strKey 字符串 strName strKey 分别表示用户名和用户密码 从登录信息 logininfo 中获取用户信息并插入到数据库中 使用 map userkey find strName 函数取得用 户名 再以数据库中的用户名比较 如果与数据库中的用户名不等则使用 map userkey insert 函数插入用户的用户名和密码并保存都数据库中 4 1 2 2 服务器端验证用户 用户在客服端登录时 服务器端将对用户名 用户密码与数据库中现有的 用户信息进行验证 如果用户名和密码与数据库中的信息不能匹配 服务器端 返回验证失败信息 如果匹配则返回登录成功信息 以下是验证用户的主要代 码 bool CS checkUser LOGININFO strName logininfo user strKey logininfo key it map userkey map userkey find strName if map userkey end it map userkey return false if strKey it map userkey second return false return true 东华理工大学毕业设计 论文 系统设计分析 14 4 1 2 3 服务器端与客户端同步文件 该部分主要描述服务器端与客户端之间进行文件同步 客户端和服务器端有相同文件 在这种情况下 先比较两端的文件 若服 务器端的文件为最新文件 则调用 FileSend 函数使服务器端文件覆盖客户端 客户端有而服务器端没有文件 在这种情况下 先循环检查服务器端是否 存在该文件 若没有 则从客户端同步到服务器并写入数据库 for it c map cFileinfo begin it c map cFileinfo end it c cf it c second it s map sFileinfo find cf name if map sFileinfo end it s 上个循环已经检查 此处跳过 continue 客户端有 服务端没有 if t sUpdata t cUpdata delete EP Tip Pack 11 0 0 0 sizeof finddata t EP Tip Copy nctip ncctip res true WAIT BEFORE EP EXIT 1 000 EP PostTIP c dlg nctip res true WAIT BEFORE EP EXIT 100 0 EP PostTIP c server ncctip res true WAIT BEFORE EP EXIT 1000 else EP Tip Pack 9 0 0 0 sizeof finddata t EP Tip Copy tip ntip res true WAIT BEFORE EP EXIT 1000 EP PostTIP c dlg tip res true WAIT BEFORE EP EXIT 1000 EP PostTIP c server ntip res true WAIT BEFORE EP EXIT 1000 东华理工大学毕业设计 论文 系统设计分析 15 4 1 3 服务器数据库 在服务器文件夹 version 中存储的是用户备份到服务器系统的文件 在这里 我们可以很明了的看到文件的修改时间 便于日后为数据恢复提供参考 当客 服端数据丢失后可以从这里下载备份文件 当然服务器也要做备份 最好就是 做分布式存储 防止因自然灾害发生数据丢失 服务器文件夹如下图所示 图 4 2 服务器文件 整个系统的数据存储是使用了 C 系统自带的标准容器 MAP 数据是通过 typedef map MAP FILEINFO 这个结构组织的 其主要实现 代码和说明如下 using std map C 自带标准容器 存储文件夹内的文件信息 using std string typedef map MAP FILEINFO typedef MAP FILEINFO iterator IT MAPFILEINFO class CM public CDP public CM TSoftDog tdog NULL int dogtime 0 char name NULL char folderpath NULL char versionpath NULL virtual CM bool SetCdp CDP c dlg NULL CDP c server NULL 东华理工大学毕业设计 论文 系统设计分析 16 protected void RunOnce bool ProcessTIP TIP HEAD tip void checkFolder char fpath void compareFolder void FileSend char file void FileDelete char file void FileRevice TIP HEAD private CDP c dlg CDP c server time t t checkfile bool checkFileFlag MAP FILEINFO map sFileinfo server MAP FILEINFO map cFileinfo client finddata t m filedata int m filenum time t t sUpdata time t t cUpdata char m folderpath 512 char m versionpath 512 4 1 4 服务器文件的存储 服务器使用 C 系统自带的 map 容器存放文件夹内的文件信息 每份文件 都有时间戳 其作为版本管理的重要特征 便于定时遍历 map 容器 当遇到时 间戳改变时 通过版本控制算法来进行同步操作 使用 typedef map MAP FILEINFO 进行数据结构组织 string 表示文件名称 finddata t 表示文件所有属性 这个结构是保存在服务器内存中 定时和硬盘 数据同步 下面是对数据存储系统参数的说明 CDP c dlg 表示界面 cdp 线程 CDP c server 表示服务端线程 time t t checkfile 表示检查时间戳 bool checkFileFlag 使用 bool 型表示标志位 MAP FILEINFO map sFileinfo map 容器 保存服务端的各种信息如 文 件名 文件时间戳 MAP FILEINFO map cFileinfo map 容器 保存客户端的各种信息如 文 件名 文件时间戳 finddata t m filedata 保存文件信息 m filenum 表示保存到服务端的文件数目 东华理工大学毕业设计 论文 系统设计分析 17 time t t sUpdata 表示服务端同步时间 time t t cUpdata 表示客户端同步时间 m folderpath 512 表示文件夹地址也就是数据存放的地址 m versionpath 512 表示文件夹备份地址即存放历史版本信息的地址 4 3 客户端 4 3 1 客户端界面介绍 客户端主要实现用户的注册 登录同时扫描本地文件并将其同步到远端服 务器 状态框主要显示用户的登录信息 使用的存储容量 已同步的文件数目 与服务端连接的状态 用心跳数表示 信息框主要显示与服务器的同步信息 在该部分能清楚明了的看到数据的同步情况 登录界面如下图所示 图 4 3 登录界面 4 3 2 客户端功能实现 在客户端主要实现了用户的注册 登录 扫描本地文件并同步到服务端 同时在客户端能够下载服务端的数据 部分实现代码如下 void CClientSVNDlg OnBnClickedButtonLogin LOGININFO loginfo m edit key GetWindowTextA loginfo key 20 m edit user GetWindowTextA loginfo user 20 TIP HEAD tip NULL bool res false 东华理工大学毕业设计 论文 系统设计分析 18 int tipsize sizeof loginfo EP Tip Pack 3 0 0 0 tipsize EP PostTIP cdp m tip res true WAIT BEFORE EP EXIT 1000 客户端登录界面使用 OnBnClickedButtonLogin 函数定义 LOGININFO 表 示用户登录信息 在该函数中使用 m edit key GetWindowTextA loginfo key 20 m edit user GetWindowTextA loginfo user 20 从登录界面的信息输入处得到用户 的登录信息包括用户名 密码 使用 TIP 协议传送从客户端登录界面得到的用 户信息 发送信息分为两个阶段 首先 使用 EP Tip Pack 函数将得到的 用户信息封装数据包 然后使用 EP PostTIP 函数将数据包传送到服务端 服务端的功能模块将接受到的数据包解封装去掉 TIP 数据包的报头 从中取出 数据即为用户的登录信息 同时保存到存储系统 4 4 同步成功 在客户端上传文件之后就可以在服务器文件夹中看到同步文件的信息 客 服端发送同步请求信息到服务端 服务端显示是否正确接受客户端的请求信息 同时显示同步的文件名称 当服务端向客户端下发文件时 客户端会显示从服 务端接受到的文件信息 占用空间显示的是本地用户所使用储存系统的容量 方便对存储容量的管理 如图 4 4 4 5 所示 图 4 4 服务端同步情况 东华理工大学毕业设计 论文 系统设计分析 19 图 4 5 客服端同步情况 东华理工大学毕业设计 论文 系统设计分析 20 5 程序测试与维护 网络同步备份系统在完成系统开发 投入正常运行之前 对系统进行稳定 性测试 抗压力测试 传输速率测试 功能测试 投入正常运行之后 需要定 期对系统进行维护并升级 从而保证系统能够适应客户新的需求 5 1 系统的配置 1 硬件配置要求 CPU 2GHz 以上 内存 1GB 以上 硬盘 250GB 以上 可用空间最好在 50GB 以上 2 软件配置要求 运行 Windows XP win7 系统及更高版本的系统 5 2 系统的维护 系统维护的目的是确保整个网络同步备份系统正常可靠地运行 在维护过 程中及时发现问题并修正从而使系统的性能得到改善和提高 充分发挥系统的 作用 也就是说 系统维护的主要目的是为了保证系统中的每个环节随着环境 的变化始终处于稳定正确的运行状态 系统维护需要专门的维护人员且工作量 大 耗费大 复杂程度高 涉及内容广 所以我们应提高对系统维护的重视程 度 在信息的生命周期内 数据被不断地创建 访问 修改 随着数据存在的 时间增加 它被更改的几率减小并最终成为 固定 数据 但是依然被应用和 用户访问 因此在进行系统数据维护时 我们要进行数据归档 归档方案的体 系结构包括三个主要组件 归档代理 归档服务器 以及归档存储设备 其中 归档代理是安装在应用服务器上的软件 它负责根据归档服务器上定义的策略 扫描以确定需要归档的数据 在数据确定需要归档之后 代理将数据发给归档 服务器 归档有 3 种实现方案 在线归档 存储设备与主机直接连接 可以即时使用数据 近线归档 nearline achive 存储设备与主机相连 但是存储数据的设备 需要装载或载入之后才能访问数据 离线归档 存储设备不是马上访问 需要人工干预将存储设备连接 装载 或载入之后才能访问数据 东华理工大学毕业设计 论文 系统设计分析 21 因为本系统属于自动同步备份系统 在数据归档时采用的是在线归档 既 高效同时又能避免因人工操作而引起的归档错误 对于不同的维护对象 系统维护的内容可将维护分为以下几部分 1 系统应用程序维护 本系统是由客户端 服务器和后端数据库三部分 组成 因此在对体统维护时我们要对这三部分分别进行维护 从而保证整个系 统稳定运行 2 数据维护 数据维护主要是对存储在后端的用户数据进行定期的更新 和整理 删除无用的数据 保持数据库的时效性 3 代码维护 代码维护就是对原有的代码在不改变功能的情况下进行结 构优化 维持代码的精简 同时也方便日后程序功能的升级 4 硬件设备维护 定期清理设备的风扇和硬件版本的升级 对服务器也 要定期进行升级以便处理更多用户的数据 5 3 系统测试 为了保证软件质量 在 C 程序可采用了多种方法来测试 但在实际开发 中还是会产生一些不可避免的差错 一般系统中存在着隐藏性错误和缺陷 系 统没有经过严格测试就投入就 对于将会造成的后果难以想象 所以测试是保 证软件质量 必须在程序开发的过程进行 在做软件测试时 要考虑到各种可 能发生的情况 既要考虑到认为因素也要顾及到非人为因素 没有发现错误的 测试也不一定是成功的测试 所以软件测试的目的是以最小的代价和最短的时 间检查出潜在的错误和缺陷 在实际的测试过程中 我们遵循以下原则 一 由非程序设计的人进行测 试 二 对比输入数据与预期输出结果是否一致 三 输入错误或不合法输入 数据测试 四 控制变量法测试 所谓的控制变量法测试就是每次只改变一种 功能测试其他功能 这样就能很好的了解某种功能对整个系

温馨提示

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

评论

0/150

提交评论