 
         
         
         
         
        版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本本 科科 生生 毕毕 业业 论论 文文论文题目:网络同步备份系统的设计与实现网络同步备份系统的设计与实现姓 名:徐学文徐学文学 号:201120210117班 级:1122101 班班年 级:11 级级专 业:网络工程网络工程学 院:软件学院软件学院指导教师:周华清(副教授)周华清(副教授)完成时间:2015 年年 5 月月 10 日日作作 者者 声声 明明本人以信誉郑重声明:所呈交的学位毕业设计(论文),是本人在指导教师指导下由本人独立撰写完成的,没有剽窃、抄袭、造假等违反道德、学术规范和其他侵权行为。文中引用他人的文献、数据、图件、资料均已明确标注出,不包含他人成果及为获得东华理工大学或
2、其他教育机构的学位或证书而使用过的材料。对本设计(论文)的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本毕业设计(论文)引起的法律结果完全由本人承担。本毕业设计(论文)成果归东华理工大学所有。特此声明。毕业设计(论文)作者(签字): 签字日期: 年 月 日 本人声明:该学位论文是本人指导学生完成的研究成果,已经审阅过论文的全部内容,并能够保证题目、关键词、摘要部分中英文内容的一致性和准确性。 学位论文指导教师签名: 年 月 日网络同步备份系统的设计与实现网络同步备份系统的设计与实现徐学文徐学文The design and implementation of network sync
3、hronization backup system Xuewen Xu2015 年年 5 月月 10 日日摘摘 要要对于许多关键系统,容灾备份对数据的保护具有不可替代的作用。在现实工作中我们经常能听闻有些企业因为数据的丢失而导致不可估量的损失,导致整个系统瘫痪。国内做数据备份的公司起步比较晚及其产品并不成熟,因此主要是海外的公司在这方面占很大的市场份额,而其价格也非常贵,以致我国小型银行系统、大型公司、小型企业的网络系统很少有比较完备的灾难备份系统,一旦发生数据灾难,后果可想而知。目前解决数据备份的方法很多,特别是在远程容灾系统基于网络备受关注。采用该方法实现的在线备份系统具有数据安全性高、系
4、统运行维护开销低等优点。在数据备份这方面有巨大的市场潜力。本论文网络同步备份系统,基于 C/S 模型。具有客服端维护成本低,系统扩展容易,客服使用方便等优点。本系统由客户端和服务器两部分组成,使用C+开发语言,其稳定性更有保障。客服端完成用户的注册和登录,同时发送本地文件到远端的服务器进行备份。服务器端验证用户的登录,当客服端的数据丢失时供其下载。本系统的最大优点就在于网络同步,无需人为干预,自动扫描本地文件并完成数据同步备份,大大降低了数据出错率。关键词:关键词:系统容灾;网络同步;备份;C+AbstractFor important system,disaster backup has a
5、n 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 backups companies in China started late and its products are not mature,so mainly overseas company accout for a la
6、rge 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 th
7、e 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 maintenanc
8、e 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, wh
9、en 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+目目 录录摘摘 要要
10、.IIIABSTRACT .IV目目 录录 .V1 绪论绪论.11.1 课题研究的背景.11.2 国内外现状.11.3 课题研究的意义.21.4 论文结构.22 系统设计分析系统设计分析.42.1 可行性分析.42.1.1 技术可行性.42.1.2 经济可能性.42.1.3 操作可能性.42.2 开发工具.42.2.1 Visual Studio 2010程序开发平台.42.2.2 C+程序设计语言.43 系统需求分析系统需求分析.53.1 需求分析.53.2 数据需求分析.53.3 数据流图.64 系统功能界面与实现系统功能界面与实现 .74.1 服务端.74.1.1服务器端界面介绍.74.
11、1.2 服务器端功能实现. 服务器端添加用户. 服务器端验证用户. 服务器端与客户端同步文件 .94.1.3 服务器数据库.114.3 客户端.114.3.1客户端界面介绍.114.3.2客户端功能实现.124.4 同步成功.124.5 同步到服务端.135 程序测试与维护程序测试与维护.145.1 系统的配置.145.2 系统的维护.145.3 系统测试.15结结 论论.16参考文献参考文献.17致谢致谢.18附附 录录.19东华理工大学毕业设计(论文)绪论1 绪论1.1 课题研究的背景信息化将引领世界潮流,对于促进社会经济的发展具有不可替代的
12、作用。随着网络覆盖范围的扩大和网络通信技术的飞速发展,信息的共享变得简易方便,日常工作、生活的信息量呈几何式增长。我们生活在一个数据大爆炸的时代。而搭建网络的最根本目的就是要更方便地进行数据共享,而信息的安全性逐渐成为一种挑战,如果不能确保这些数据的安全,那么对网络的巨大投资将变得毫无意义。系统的数据才是最珍贵的资源,计算机软硬件,实质上都是数据资源的一种载体,而数据的价值远远大于设备的价值。在这个信息化时代,企业和政府机构对数据信息和计算机网络应用产生了越来越强的依赖,时时刻刻在线传递的大量通信数据和海量存储的数据库,成了大型企业和各级政府机构、保险、金融赖以生存的命脉。然而,人为误操作、黑
13、客攻击、木马病毒、系统自身故障、自然灾害等不确定因素是威胁数据安全的主要原因。任何原因导致的数据不完整、毁损甚至丢失,都将影响系统作用的发挥,对一家企业产生的损失将无法估量,甚至不可弥补。位于美国世贸大厦的公司在震惊全球的 911 事件中就曾发生过数据丢失的悲剧,只有四分之一的公司使用了海量数据存储系统,而正是这些公司在灾难发生后迅速恢复业务,而其他很多公司则因数据丢失而一蹶不振甚至直接从该行业消失。虚拟化的广泛应用、云计算的出现、数据量每年的高速增长、数据类型和来源多样化所有这些因素都让现代存储技术在企业和组织成功中扮演着越来越重要的角色。数据的价值与及数据再生产的代价都是很高的,然而任何的
14、自然灾害或是认为操作失误都会对数据造成威胁,但是这并不意味着我们就束手无策。实际上,只要我们能够做到有效、及时的数据备份,就可以解决后顾之忧。如果发生数据丢失事件,应以快速恢复系统的数据为首要目标,而数据备份就是迅速恢复数据的前提。备份作为一种数据安全策略,是避免数据丢失的最基本也是最有效的手段,冗余和高可靠的方案只是降低了数据丢失的发生率并不能从根本上解决数据安全问题。当原始数据发生丢失或是遭到破坏时,我们就可以利用备份数据恢复原始数据,使系统恢复正常。作为数据恢复的一种手段,备份的目的是为了在数据灾难后,缩短系统瘫痪时间,尽可能将损失降到最低;备份的最终目的:数据恢复!有效的备份,能够让企
15、业以最少的投东华理工大学毕业设计(论文)系统设计分析1资,得到最可靠的服务。数据备份系统是计算机信息系统安全的一个非常重要环节。1.2 国内外现状看一家企业有多成功,我们主要就是看这家企业拥有多少用户。用户本身只是载体,其内在的数据才是企业的血液。数据已成为企业的战略核心,其对数据的渴求已到寸土必争的地步,业务数据正扮演这重要的角色,珍贵的数据其丢失的风险同时也变高。对很多用户来说,备份已经是个比较熟悉概念,但对它的重要性及地位却不一定有清晰的认识。现代企业不仅需要一个稳定可靠的 IT 环境,但也需要保护和存储业务数据的备份数据,从而提高数据的高可用性。另外,传统的存储方式已经很难满足数据量大
16、幅度增长所需要的环境。在这种压力下,数据存储经历了集中式存储、分布式存储和 SAN(Storage Area Network 存储区域网络)、网络连接式存储(network-attached storage,NAS)阶段。网络同步备份是继文件服务之后第二个最广泛的网络存储应用。早在上个世纪 80 年代中期,国外就对网络备份系统进行研究和开发。而如今也就只剩下像 EMC、惠普、VERITAS 、Legato 、IBM 这样的巨头,其产品成熟、技术先进、服务周到是许多银行、金融、保险行业的不二选择。目前我国已有的数据备份系统水平比较低,主要是因为计算机网络系统用户,信息安全意识淡薄,缺乏数据备份系
17、统的知识和操作技能。大多数的存储和备份系统比较简单,主要缺点是:第一,手工操作,效率低,出错率高;第二、无法实现在线同步服务,需暂停系统备份,影响业务运行;第三、遇到严重的安全事件或毁灭性灾难以后无法恢复数据。第四、采用国外产品,价格昂贵,不符合国家战略要求,容易留下安全隐患。1.3 课题研究的意义 我们都很清楚在数据备份方面我国与国外相比有比较大的差距。国际数据备份技术及其应用已发展到一个比较成熟的阶段,技术先进,而国内还处于萌芽阶段,尽管政府在数据备份方面投资不少,而刚刚起步的国内厂商依然举步维艰。我国的网络数据安全备份软件在科研方面同样也取得喜人的成果,也生产了一些产品,但不管是在市场占
18、有率方面还是在产业规模以及技术水平和开发能力上我们与国际先进水平相比还是有着很大的差距。其中备份软件是进行网络数据备份的非常实用的工具,国内在这方面的成功案例屈指可数;为了缩小与发达国家的差距打破国际品牌的垄断和发展民族品牌,研发网络备份软件变得更加需要和迫切。东华理工大学毕业设计(论文)系统设计分析2我们创建数据的副本即备份并严格保存的唯一目的是希望用它恢复被删除或损坏的数据。处于业务和法规的原因,企业对于数据存储、保留和可用性的要求日益提高,需要保存的数据也不短增长。信息的不断增长和紧缩的 IT 预算以及没有足够时间进行备份让数据安全问题更加复杂。企业为了满足服务水平协议(SLA)的要求,
19、需要一个更快的方法,恢复备份的数据。备份的一个目的是为了应对灾难恢复的需求。当主位置因灾难而不能工作时,备份的副本将用于在备用地点恢复数据。基于 RPO 和 RTO 的需求,企业使用不同的灾难恢复数据保护策略。有些企业使用磁带的备份方法作为灾难恢复策略,这时备份磁带介质应被运往异地进行保存,从而确保数据安全。这些磁带可以用于灾难恢复点的数据恢复。有些组织对 RPO 和 RTO 要求比较严格,为了能够在遇到灾难时以相对较短的时间恢复生产系统,组织会采用远程复制技术复制数据带灾难恢复位置。而网络同步备份系统属于在线备份(热备份)可以快速恢复数据。考虑到生产本地环境安全性原因,通常数据备份一般存储在
20、不同的介质,最好是地理冗余避免因自然灾害(地震、火灾)而造成数据丢失。在生产中心存放一份从而保证数据的快速恢复,系统正常运行;其他备份则要移到比较安全的地方保存,以保证当生产中心出现灾难后以最低代价恢复数据。1.4 论文结构第一章 绪论,主要对本课题的研究背景,现状,研究的意义等的介绍。第二章 系统设计分析,主要阐述系统开发的可行性,以及对开发系统要使用的工具进行深入了解。第三章 需求分析,对于本次毕业设计的具体需求情况进行分析,分别包括系统的数据分析,数据流程图等内容。第四章 系统功能展示。主要介绍系统各种功能的实现,同时列出关键代码。第五章 系统测试与维护。主要描述对备份系统各环节的测试和
21、整个系统的测试最后是结论和参考文献。东华理工大学毕业设计(论文)系统设计分析32系统设计分析2.1可行性分析 在对整个网络同步备份系统进行需求分析时,主要综合了技术可行性、经济合理性、系统实用性等各方面。以避在研发和后期投入使用时出现故障,保证备份系统成功开发。可行性研究主要集中在以下三个方面:2.1.1 技术可行性通过对系统的功能分析,我们使用 Visual Studio 2010 作为后台数据支持,程序设计选择 C+程序设计语言进行程序编写,C+语言经过多年的发展和更新,已经成为一种非常稳定的语言,因此本此课题研究在技术层面上,是完全可行的。2.1.2 经济可能性经济可能性主要是分析本系统
22、在研发成本和投入使用后的运维费用上的投资。同时对系统投入使用后的市场效益做评估。确保收益大于投资,从而保证整个项目能顺利完成。本系统为企业的重要文件设计,通过使用本系统能够大大提高工作人员的效率,因此,本系统在经济上是可行的。2.1.3 操作可能性因为本系统采用的是 C/S 模型。我们为客户开发了一个简洁大方的客服端界面作为系统入口,使用户操作起来简便。软件程序开发是否能够取得成功,一是市场的需求,二是程序开发所需要软件开发工具,以及开发技术和当时硬件的发展水平。从这两个方面而言,网络同步备份系统设计的操作性是可行的。东华理工大学毕业设计(论文)系统设计分析4 2.2 开发工具 2.2.1 V
23、isual 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 插件等都可用 Visua
24、l 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+引入了面向对象的概念,使得开发人机交互类型的应用程序
25、更为简单、快捷,C+更简洁的说就是 C 的升级改造,在保持 C 的简洁高效特点同时对 C 的库进行了扩充,因此 C+比 C 更安全。很多优秀的程序框架都是用 C+编写的,比较有名的有Boost、Qt、MFC、OWL、wxWidgets、WTL。东华理工大学毕业设计(论文)系统设计分析53 系统需求分析 3.1 需求分析在对整个网络同步备份系统进行需求分析时,主要综合了技术可行性、经济合理性、系统实用性等各方面。以避免无意义的投资,保证新系统成功开发。需求分析主要是针对市场需求而对系统的各种功能进行分析,可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。对于本系统,分为客服
26、端和服务器端两个模块。在客户端用户可以注册、登录。登录成功后,自动扫描本地目录,发现新文件或是文件更新自动同步到服务器。定时比较服务器和本地目录的文件版本,自动下载最新文件。当客户端不小心删除了本地文件可以从服务器端进行文件的下载。服务器端对系统的需求包括:用户注册,并对登录的用户进行身份验证。保留客服端文件版本的信息,提供客户端文件的上传、下载功能。对用户的存储容量进行管理,当用户同步文件时超出了系统的存储能力,服务器将对用户发出警告。经对整个系统操作流程的分析,了解各层模块的功能需求,分析得出了本系统使用者的功能模块图,如图下所示:网络同步备份系统储存文件发送到服务端意外删除储存从服务端备
27、份图 3-1 系统功能模块图东华理工大学毕业设计(论文)系统设计分析63.2 数据需求分析通过对系统数据流的分析,下图是用数据字典描述从客户端到网络同步备份系统到服务端的信息流、数据在存储系统中的存储、数据处理过程和模块实体。分析系统功能,绘制出系统数据流图,直观显示出系统数据在系统各个部分之间的流动情况。如图 3-2 描述,客服端触发事务(插入、修改、删除等)传输到网络同步备份系统,存储系统对数据进行相应的修改并将操作结果发送到服务端。服务端对数据也做相应的更新。 验证失败 验证成功 发现数据更新 本地数据更新本地数据丢失 登录客户端与服务端比较服务器退出系统验证用户信息用户登录东华理工大学
28、毕业设计(论文)系统设计分析7 同步到服务器 从服务器下载 数据存储 数据发送图 3-2 数据流程图 3.3 数据流图在图 3-3 中,主要描述了整个系统的数据流图。上行数据:用户成功登录后,网络同步备份系统从客户端接收信息,同时备份系统将从客户端接收的信息写入存储系统,服务器再通过备份系统接收来自客户端的数据。下行数据:当服务端发现新版本的文件时,将发送信息给网络同步备份系统,备份系统将更新的信息写入存储系统进行数据库更新,信息存储系统将更新的文件通过网络同步备份系统发送给客户端。在整个数据流动过程中,信息储存是其核心。不管是用户到服务端还是服务端到用户,其数据先经信息储存系统进行数据更新,
29、再将更新后的数据发送给用户或服务端。服务端网络同步备份系统接收信息发送信息信息储存用户1用户2发布信息接收信息发布信息接收信息图 3-3 数据流图存 储 系 统东华理工大学毕业设计(论文)系统设计分析83.4 协议包基本格式 3.4.1 包格式此处描述的是通过网络传递信息时用到的协议,为 IAP+TIP,TIP 协议为程序内部传输信息所使IAP首部TIP属性CodeVerHdr lenSession idTotal lengthTIP属性rnprimoderesparm161122111Reserved210 xEB 0 x90NUM111Src AddrDst Addr22sidcidctm
30、tidabtLenReservercode11124441 图 3-4 协议包图 IAP/IBP 包头 下面主要介绍 IAP/IBP 协议包头的各个参数,下图为 IAP/IBP 包头格式。 CodeVerHdr lenSession idTotal length1122Reserved210 xEB 0 x90NUM111Src AddrDst Addr22图 3-5 IAP/IBP 包头图0XEB 和 0X90 字段:这两个字节为同步头,为固定值,分别是 0 xEB 和0 x90。Header Length 字段:包头数据长度为 1 个字节,即包头最长不超过 256 字节,为
31、了找到属性的起始位置,必须从包头的开始位置偏移此长度就是属性的起始位置。包头长度目前设计为 16 字节,但不排除将来为扩展协议而将包头的长度增加。Ver 字段:Ver 字段表示当前协议的版本号。目前的版本号为 2。Code 字段:Code 字段长度为 1 字节。编码的取值范围是 0 到 255。通过Code,接收方可以区分不同的报文类型。可以通俗地理解为需要这个包做什么事,如请求,发送,应答等等,即 Code 表示一类动作指令,具有动词属性。 Reserved 字段:保留字段,必要时候可以作为 Code 字段的扩充,平时应该东华理工大学毕业设计(论文)系统设计分析9填 0。Src Addr 字
32、段:报文源发送地址,指第一个目标产生此报文的程序的地址Dst Addr 字段:报文目的地址,指目标产生此报文的程序要发送给最终目的地址。Num 字段:Num 字段长度为 2 字节。编码的取值范围是 0 到 65535,表示发送包的序号,如果接收方需要对发送方的命令进行回复,那么回复报文中需要把接收方的 Num 值拷贝到回复命令中进行回送。Num 值达到了 65535 后,自动翻转到 0,并重新开始记录包序号。Session ID 字段:表示各模块之间进行交互,2 字节,范围从 165535,即最多同时有 65535 个会话,由各模块自己分配,Session id 在会话结束后回收,下一次可以重
33、复分配使用。客户端在收到来自服务端的响应后,须在返回的报文中添加这个来自服务端报文中的 Session ID。0 xFFFF 的 session id 是告警广播专用 id。Total Length 字段:2 字节,Total length 包括包头和属性的全部长度。 TIP 属性说明TIP 协议作为程序内部传输的协议,在通过网络传递时,需要加上 IAP 头。所有数据放在 TIP 的后面。下面介绍 IAP 协议包头的参数,包格式如下图:rnprimoderesparm111sidcidctmtidabtLenReservercode11124441 图 3-6 TIP 包头图
34、Code 字段:命令字字段。Char 型字节。 Reserved 字段:属于保留字段,占 1 字节,主要用于属性功能的扩展,目前填 0。 abtLen 字段:TIP 数据包的长度,包括 TIP 包头和后面跟的所有数据。 Tid 字段:前台系统分布在不同的地方,通过 tid 字段区分各个站点。规定tid 字段为 9 位数,如 323020202。 Ctm 字段:表示 tip 生成时间。 cid 字段:网络套接字号。 Sid 字段:前台的每个站点下面下挂很多设备,设备的编号用 sid 表示,以区别不同的设备。 Rn 字段:最大重发次数,此字段表示当数据包发生丢失时重传包的次数。Pri 字段:优先级
35、。表示数据包转发的优先级,优先级高的先转发。Mode 字段:发送模式字段,先进先出:1 后进先出:2。东华理工大学毕业设计(论文)系统设计分析10Resparm 字段:最大 8 个字节的数据。 3.4.2 协议内容IAP 头文件的 code 都使用 0 x51。根据实际需要,在 TIP 协议段中将需要完成的每项功能都定义了一个 Code 值。其中 CS 表示客户端向服务端发送;SC表示服务器到客户端。# CS_SENDFILE发文件# CS_SENDFILEINFO发送文件夹信息# CS_ADDUSER注册用户# CS_LOGIN登陆# SC_RELOGIN登陆反馈# SC_READDUSER
36、注册反馈# SC_SENDFILE发文件# SC_GETFILE请求文件# SC_DELETE_C_FILE 删除文件客户端文件# SC_DELETE_S_FILE 删除文件服务端文件# SHOW_INFO信息展示 3.4.3 协议代码实现协议作为数据传输的核心,在整个数据传输的过程中扮演着关键角色。做为业务的载体任何通信都需要协议的支持,而选择所使用协议的好坏更是决定整个系统的性能。下面为本系统所使用的协议的核心代码:bool CopyTIP(TIP_HEAD* tip, TIP_HEAD*& ctip)if (NULL = tip) return false;if (NULL =
37、(ctip = (TIP_HEAD *)new chartip-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*& tip)if
38、(NULL = tip)东华理工大学毕业设计(论文)系统设计分析11if(NULL=(tip= (TIP_HEAD *)new charsizeof(TIP_HEAD)+dlen)return false;memcpy(void*)tip,(void*)TipTmplListcode,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_HEA
39、D)tip-abtLen = sizeof(TIP_HEAD);elsetip-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 之和。 东华理工
40、大学毕业设计(论文)系统设计分析12 4 系统功能界面与实现 4.1 服务端 4.1.1 服务器端界面介绍系统服务端界面如图 4-1 所示,在服务端我们可以看到客户端信息。 占用空间表示的是客户端同步到服务器的文件所占用空间,便于对存储容量进行管理。文件数量表示的是客户端同步到服务器的文件数目。本地文件框中显示的是从客户端同步到服务器的文件名。心跳计数:客服端连接服务器端后,会发送心跳包和心跳回复包,用来判断和维持双方通信。心跳包里面包含了 socket 套接字,用来保障双方的通信临时中断后能恢复连接。显示在界面上就是为了直观感受到双方已经连接上,如果没有计数或是计数停止则表示通信故障。 图
41、4-1 服务端窗口4.1.2 服务器端功能实现 服务器端添加用户当用户在客户端注册时,服务器端接收来自客户端的用户注册信息并添加到数据库。下面这段代码是添加用户的主要代码:东华理工大学毕业设计(论文)系统设计分析13void CS:adduser(LOGININFO &logininfo)string strName, strKey;strName = logininfo.user;strKey = logininfo.key;MAP_USER_KEY:iterator it;it = map_userkey.find(strName);if (map_userkey.e
42、nd() != 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()函数插入用户的用户名和密码并保存都数据库中。 服务器端验证用户用户在客服端登录时,服务器端将对用户名、
43、用户密码与数据库中现有的用户信息进行验证。如果用户名和密码与数据库中的信息不能匹配,服务器端返回验证失败信息,如果匹配则返回登录成功信息。以下是验证用户的主要代码:bool CS:checkUser(LOGININFO &logininfo)string strName, strKey;strName = logininfo.user;strKey = logininfo.key;it_map_userkey = map_userkey.find(strName);if (map_userkey.end() = it_map_userkey) return false;if (strK
44、ey != it_map_userkey-second)return false;return true;东华理工大学毕业设计(论文)系统设计分析 服务器端与客户端同步文件该部分主要描述服务器端与客户端之间进行文件同步。客户端和服务器端有相同文件:在这种情况下,先比较两端的文件。若服务器端的文件为最新文件,则调用 FileSend()函数使服务器端文件覆盖客户端。客户端有而服务器端没有文件:在这种情况下,先循环检查服务器端是否存在该文件。若没有,则从客户端同步到服务器并写入数据库。for (it_c = map_cFileinfo.begin(); it_c != map_c
45、Fileinfo.end(); it_c+) cf = it_c-second;it_s = map_sFileinfo.find();if (map_sFileinfo.end() != it_s)/上个循环已经检查,此处跳过continue;/客户端有,服务端没有if (t_sUpdata t_cUpdata)/delete_EP_Tip_Pack(11,0,0,0,sizeof(_finddata_t),&cf,nctip,res,rue,WAIT_BEFOREEP_XIT*1000);_EP_Tip_Copy(nctip,ncctip,res,true,WAIT_
46、BEFORE_EP_EXIT*1000);_EP_PostTIP(c_dlg,nctip,res,true,WAIT_BEFORE_EP_EXIT*1000);_EP_PostTIP(c_server,ncctip,res,true,WAIT_BEFORE_EP_EXIT*1000);else_EP_Tip_Pack(9,0,0,0,sizeof(_finddata_t),&cf,tip,res,true,WAIT_BEFORE_EP_EXIT*1000);_EP_Tip_Copy(tip, ntip, res, true, WAIT_BEFORE_EP_EXIT*1000);_EP_
47、PostTIP(c_dlg, tip, res, true, WAIT_BEFORE_EP_EXIT*1000);_EP_PostTIP(c_server, ntip, res, true, WAIT_BEFORE_EP_EXIT*1000);东华理工大学毕业设计(论文)系统设计分析154.1.3 服务器数据库在服务器文件夹 version 中存储的是用户备份到服务器系统的文件。在这里我们可以很明了的看到文件的修改时间,便于日后为数据恢复提供参考。当客服端数据丢失后可以从这里下载备份文件。当然服务器也要做备份,最好就是做分布式存储,防止因自然灾害发生数据丢失。服务器文件夹如下图所示:图 4-2
48、 服务器文件整个系统的数据存储是使用了 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 CDPpublic:CM(TSoftDog* _tdog = NULL, int _dogtime = 0, char* _name = NU
49、LL, char* _folderpath = NULL, char* _versionpath = NULL);virtual CM();bool SetCdp(CDP* _c_dlg = NULL,CDP* _c_server = NULL);东华理工大学毕业设计(论文)系统设计分析16protected:void RunOnce();bool ProcessTIP(TIP_HEAD* tip);void checkFolder(char* _fpath);void compareFolder();void FileSend(char* _file);void FileDelete(cha
50、r* _file);void FileRevice(TIP_HEAD *&tip);private:CDP* c_dlg;CDP* c_server;time_t t_checkfile;bool checkFileFlag;MAP_FILEINFO map_sFileinfo;/serverMAP_FILEINFO map_cFileinfo;/client_finddata_t *m_filedata;int m_filenum;time_t t_sUpdata;time_t t_cUpdata;char m_folderpath512; char m_versionpath512
51、; 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
52、 checkFileFlag:使用 bool 型表示标志位。MAP_FILEINFO map_sFileinfo:map 容器,保存服务端的各种信息如:文件名、文件时间戳。MAP_FILEINFO map_cFileinfo:map 容器,保存客户端的各种信息如:文件名、文件时间戳。_finddata_t *m_filedata:保存文件信息。m_filenum:表示保存到服务端的文件数目。东华理工大学毕业设计(论文)系统设计分析17time_t t_sUpdata:表示服务端同步时间。time_t t_cUpdata:表示客户端同步时间。m_folderpath512:表示文件夹地址也就是数
53、据存放的地址。m_versionpath512:表示文件夹备份地址即存放历史版本信息的地址。4.3 客户端4.3.1 客户端界面介绍客户端主要实现用户的注册、登录同时扫描本地文件并将其同步到远端服务器。状态框主要显示用户的登录信息、使用的存储容量、已同步的文件数目、与服务端连接的状态(用心跳数表示)。信息框主要显示与服务器的同步信息,在该部分能清楚明了的看到数据的同步情况。登录界面如下图所示:图 4-3 登录界面 4.3.2 客户端功能实现在客户端主要实现了用户的注册、登录,扫描本地文件并同步到服务端。同时在客户端能够下载服务端的数据。部分实现代码如下:void CClientSVNDlg:O
54、nBnClickedButtonLogin()LOGININFO loginfo;m_edit_key.GetWindowTextA(loginfo.key, 20);m_edit_user.GetWindowTextA(loginfo.user, 20);TIP_HEAD* tip = NULL;bool res = false;东华理工大学毕业设计(论文)系统设计分析18int tipsize = sizeof(loginfo);_EP_Tip_Pack(3, 0, 0, 0, tipsize, &loginfo, tip, res, true, WAIT_BEFORE_EP_EX
55、IT*1000);_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_T
56、ip_Pack()函数将得到的用户信息封装数据包,然后使用_EP_PostTIP()函数将数据包传送到服务端。服务端的功能模块将接受到的数据包解封装去掉 TIP 数据包的报头,从中取出数据即为用户的登录信息,同时保存到存储系统。4.4 同步成功在客户端上传文件之后就可以在服务器文件夹中看到同步文件的信息。客服端发送同步请求信息到服务端,服务端显示是否正确接受客户端的请求信息,同时显示同步的文件名称。当服务端向客户端下发文件时,客户端会显示从服务端接受到的文件信息。占用空间显示的是本地用户所使用储存系统的容量,方便对存储容量的管理。如图 4-4、4-5 所示: 图 4-4 服务端同步情况东华理工
57、大学毕业设计(论文)系统设计分析19图 4-5 客服端同步情况东华理工大学毕业设计(论文)系统设计分析20 5 程序测试与维护网络同步备份系统在完成系统开发,投入正常运行之前,对系统进行稳定性测试,抗压力测试,传输速率测试,功能测试。投入正常运行之后,需要定期对系统进行维护并升级,从而保证系统能够适应客户新的需求。 5.1 系统的配置1、硬件配置要求:CPU:2GHz 以上。 内存:1GB 以上。硬盘:250GB 以上(可用空间最好在 50GB 以上)。2、软件配置要求:运行 Windows XP、win7 系统及更高版本的系统。5.2 系统的维护系统维护的目的是确保整个网络同步备份系统正常可
58、靠地运行。在维护过程中及时发现问题并修正从而使系统的性能得到改善和提高,充分发挥系统的作用。也就是说,系统维护的主要目的是为了保证系统中的每个环节随着环境的变化始终处于稳定正确的运行状态。系统维护需要专门的维护人员且工作量大、耗费大、复杂程度高、涉及内容广,所以我们应提高对系统维护的重视程度。在信息的生命周期内,数据被不断地创建、访问、修改。随着数据存在的时间增加,它被更改的几率减小并最终成为“固定”数据。但是依然被应用和用户访问,因此在进行系统数据维护时,我们要进行数据归档。归档方案的体系结构包括三个主要组件:归档代理,归档服务器,以及归档存储设备。其中归档代理是安装在应用服务器上的软件。它
59、负责根据归档服务器上定义的策略,扫描以确定需要归档的数据。在数据确定需要归档之后,代理将数据发给归档服务器。归档有 3 种实现方案:在线归档:存储设备与主机直接连接,可以即时使用数据。近线归档(nearline achive):存储设备与主机相连,但是存储数据的设备需要装载或载入之后才能访问数据。离线归档:存储设备不是马上访问。需要人工干预将存储设备连接、装载或载入之后才能访问数据。东华理工大学毕业设计(论文)系统设计分析21因为本系统属于自动同步备份系统,在数据归档时采用的是在线归档,既高效同时又能避免因人工操作而引起的归档错误。 对于不同的维护对象,系统维护的内容可将维护分为以下几部分:(
60、1)系统应用程序维护:本系统是由客户端、服务器和后端数据库三部分组成,因此在对体统维护时我们要对这三部分分别进行维护,从而保证整个系统稳定运行。(2)数据维护:数据维护主要是对存储在后端的用户数据进行定期的更新和整理,删除无用的数据,保持数据库的时效性。(3)代码维护:代码维护就是对原有的代码在不改变功能的情况下进行结构优化,维持代码的精简。同时也方便日后程序功能的升级。(4)硬件设备维护:定期清理设备的风扇和硬件版本的升级。对服务器也要定期进行升级以便处理更多用户的数据。 5.3 系统测试为了保证软件质量,在 C+程序可采用了多种方法来测试,但在实际开发中还是会产生一些不可避免的差错,一般系统中存在着隐藏性错误和缺陷,系统没有经过严格测试就投入就,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年一级建造师之一建水利水电工程实务题库综合试卷B卷附答案
- 2025年经济学专业技术资格(初级)备考题库及答案解析
- 培训安全操作规程试题及答案解析
- 2025年二级建造师《法规》真题及参考答案
- 2025年财务总监《财务管理与风险控制》备考题库及答案解析
- 铁渣处理工保密意识竞赛考核试卷含答案
- 中药调剂员岗前理论技术考核试卷含答案
- 海绵钛还原蒸馏工安全理论能力考核试卷含答案
- 白酒酿造工班组协作模拟考核试卷含答案
- 罐头封装工安全意识强化考核试卷含答案
- 全国主要水文站点及雨量观测分布和代码
- 华为经营管理-华为的研发管理(6版)
- 浙江省稽阳联谊学校2023-2024学年高三上学期11月联考语文试题含答案
- “工业控制系统安全培训课件”
- 人教版地理八年级上册知识点总结
- 青钢竹叶剑的文化传承与发展
- 电测应力应变实验课件ppt
- 战略地图及平衡计分卡课件
- 民航服务沟通PPT完整全套教学课件
- (鲁科版五四制)小学三四五年级全部单词(带音标)
- 中考模拟考试语文答题卡Word版可以编辑(全黑色)
 
            
评论
0/150
提交评论