免费预览已结束,剩余35页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西南科技大学本科生毕业论文 southwest university of science and technology本科毕业设计(论文)文件同步管理系统服务端软件设计学院名称专业名称学生姓名学号指导教师二一四年六月 文件同步管理系统服务端软件设计摘要:21世纪的今天互联网技术飞速发展,已经进入了千家万户,个人资料的保存虽然有了各种移动设备,但是文件资料的同步共享却成了很大的问题,如何将资料进行实时信息同步并将大量的数据资料永久保存在服务端端的应用系统的研究成为了一个热点课题。伴随网络协议也开始变得成熟起来,加密算法如rsa、pcp、数字签名等也有了相当成熟的应用,在文件同步系统中如何利用这些技术还需要做更进一步的研究。基于此背景下,设计实现一个文件同步系统,针对其文件同步等功能的要求,讨论软件系统的主要任务及解决方案。该系统由服务端和客户端组成,笔者负责该系统的服务端的开发,文件同步服务端端有启动、停止、服务端配置、文件管理分类等功能;客户端实现注册,登录,上传文件、同步、下载文件等功能。系统软件设计实现基于vs2008的编程环境,用vs2008中的c+语言进行开发编写。本系统已经实现文件同步的功能,初步的实验结果表明,系统在主要功能上已接近实用化,且操作简便、工作可靠,具有一定的应用前景。关键词:文件同步;文件同步服务端;c/s西南科技大学本科生毕业论文 the server software design of file synchronization management systemabstract:of the 21st century ,the rapid development of internet technology has entered innumberable families, although personal data preservation in a variety of mobile devices, the file data synchronous sharing has become a big problem, how to manage the real-time data synchronization and a lot of information data permanently stored in the server application system research has become a hot topic. associated with network protocols are becoming mature ,encryption algorithms such as rsa, pcp, digital signatures, also had the quite mature application, how to use these technologies in the file synchronization system still need to do further research.based on this background, designed and implemented a file synchronization system, for the need of the file synchronization and other functions, the main task of the software system are discussed the solution. the system is composed of server and client, the author is responsible for the service-side of the system, the file synchronization server has start, stop, server configuration, document management category, and other functions; client implements register, login, upload files, synchronization, download files, and other functions. system software design based on vs2008 programming environment, written in c + + language in vs2008 development. this system have came ture the function of file synchronization, the preliminary experimental results show that the system is close to practical application in the main function, and easy operation, reliable operation, has a certain application prospect.keywords: file synchronization, file synchronization server , c / s西南科技大学本科生毕业论文 目 录第1章 绪论11.1 课题研究背景11.2 国内外研究现状11.3 课题研究的意义21.4 本文研究的主要内容3第2章 相关技术简介42.1 visual studio2008简介42.2 c+语言42.3 c/s简介82.4文件同步92.5 数据库sqlite介绍10第3章 文件同步服务端需求分析113.1 项目概述113.1.1 项目目标113.1.2 功能描述113.1.3 运行环境123.2 系统操作流程123.3 性能要求133.4 可行性分析133.5 开发环境14第4章 系统设计与实现154.1 系统架构设计154.2 服务端功能模块设计154.3 系统实现164.3.1 服务端设计实现16第5章 系统测试205.1 测试原则及方法概述205.2测试项目及测试用例225.2系统测试结论235.2.1 缺陷和限制235.2.2 建议235.2.3 测试结论23结 论25致 谢27参考文献28附 录29西南科技大学本科生毕业论文第1章 绪论1.1 课题研究背景随着现代公司对集团的方向,国际化,有分工和现代企业部门之间的细微全球化的趋势分布。全球化的趋势,微型和分销部门使得它找到各部门的更完整的数据可以被各个部门之间共享中很难应用到一个独立的管理工具,各部门根据部门需求开发适用于自己的内部网的软件系统和资源部门选择适合自己的内联网发布平台。在一个方面中,原始数据分布的平台,在一定程度上,影响了信息发布网络平台的选择;相反,选择自我的网络平台上发布,并将原始数据可以与其他部门共享,部门选择发表他们的数据相同的平台。同时,在现代企业制度的工作,部门之间的联系正在越来越接近,部门经常需要访问的数据可以在同一时间进行更新,或者至少进行数据同步在一定时间间隔内。如果有更好的方式来实现这一目标,无论是从由显著的成本节约的角度来看,或是数据共享的及时性都会有明显的优势。此外,如果在关键应用领域的灾难性事件的破坏(如火灾),应用数据环境,也能够确保系统的快速恢复,这也需要数据来实现远程备份数据同步系统的可用的远程实时传输。另一种情况下,个人数据存储和个人数据安全的协同灾难恢复保护,同时也保证工作的有效性能够实现:即使是在任何有网络连接和设备支持的情况下能够快速找回文件并创建,访问,管理,这是笔者设计的系统必须具备的功能。1.2 国内外研究现状现在网络技术有了相当大的发展,网络协议也逐渐趋于成熟,加密安全方面如rsa、pcp算法、数字签名等也是相当成熟的成果,但是在国内利用这些成果设计文件同步系统还不够成熟。 目前国内外在软件方面做的工作最多的是对于数据库的数据同步,而对文件数据同步的研究比较少。同时,使用这些数据同步系统还存在成本太高,使用太复杂等问题。例如qad的nfg/pro eb,veritas的storage repliaction for volume manager(srvm),microsoft集群的数据存储备份系统等等均是目前成熟的并且使用较多的数据同步系统。 针对这一现状,一些专家学者对其做了深入的研究,取得了一些学术成果,有些得到了广泛的应用。比如下面4个:1、andrewtridgell1的在“efficent algorithms for sorting and synchronization”提出了属于自己的文件同步算法rsync,中心的想法就是通过文件的“签名”来比较文件的同于不同,然后比较结果差异进行更新覆盖,就能过实现同步的功能。2、rsync远程同步(remote synchronize) 2,它是一个远程数据同步工具。许多客户机的局域网或者外网客户机之间的文件同步。使用客户机和远程服务机之间的文件同步的rsync算法。3、皮尔斯bc3在“what is a file synchronize”还提出了一个模型文件同步:皮尔斯检测,是一种基于同步状态文件来解决冲突,通过它,人们有时会修改操作系统(例如,为了避免计算机病毒)的判断,在这个时候,这种情况是正常的,根据修改又不能完成确定正确的文件同步。4、另外,rsync的windows平台也有相同版本的sync2nas和cwrsync等工具。但是,使用他们的前提必须先处理一系列的参数,然后需要输入一系列命令语句,非常慢,相对应的操作难度也增加。通过前面的分析可以看到目前的一些文件同步系统都各有所长,在实际环境中也得到了一定的应用,但是也存在一些问题,有的功能单一,有的效率较低,无法直接应用到系统中,主要问题有以下几个方面:(1)实时性不好,在比较文件系统的更新时,都采用扫描比较的方式进行;(2)双向文件同步解决的不好,它们只支持单向的文件同步;(3)不支持异构文件系统的同步。当前还没有一种文件同步系统支持linux和windows异构环境下的文件同步,即使有运行于linux上的开源文件同步系统可以支持windows平台的文件同步,它们通常也是照搬linux上的扫描模式监控windows文件系统,效率低下。1.3 课题研究的意义目前网络技术发展日新月异,利用网络进行信息传递的功能也开始变得大众了。但是普遍存在信息发布者与接收者在时间上的同步问题,特别是在利用电子邮箱进行通信时,可能因接收者未能及时查阅邮箱而导致重要信息的不及时接收。因此,本系统的设计目标就是要构建一个让接收者不会错失重要信息的平台,至少保证只要接收者开机就能收到该系统发送的相应信息。该系统两部分组成,一是客户端,二是服务端。1.4 本文研究的主要内容文件自动同步系统分为客户端和服务端为c/s架构,能够在pc电脑上安装和运行;本文主要研究的是服务端,服务端是一个运行于网络的软件,能够和远程客户端进行数据交互和同步。文件自动同步系统采用c/s结构开发的模式,服务端的开发主要功能模块包含服务端端文件管理功能模块、信息发布管理、用户权限管理、用户认证管理等功能模块,并能与客户端构成一个完整的应用系统,保证软件运行正常。客户端是一个能够运行于网络的软件,能够和服务端进行交互和同步,系统具体功能如下:(1)用户在pc机上安装好客户端之后可以在客户端上注册或者登录到服务端;(2)用户可以在客户端上选择本地文件上传,服务端接收到文件将之存放在新建的分类文件夹中(客户端上传的时候选择相应的文件夹),服务端再更新到其他客户机的客户端;(3)用户可以在客户端上看到服务端文件,假如此客户端相应的文件夹没有此文件,服务端会提醒客户端进行更新,用户接收到服务端传输的文件,自动保存到默认下载路径;(4)服务端对增加、删除等修改操作后的文件进行管理,客户端接收到更新信息提示后同步到客户端相应的文件夹。36第2章 相关技术简介2.1 visual studio2008简介visual studio是微软公司的开发的编程工具。 windows是一个应用开发平台最流行的。现在已经过来了9.0版本,本系统是在visual studio 2008中开发。microsoft visual studio 2008是面向windows vista、office 2007、web 2.0的下一代开发工具,代号“orcas”,是对visual studio 2005的一次及时、全面的升级。它可以让用户快速创建高质量的用户体验和丰富这一要求紧密相连,显示微软唤醒智能客户应用程序的想法。在visual studio 2008里面,对数据的处理将变得更加容易和方便,大众都可以使用vs2008来处理和开发编程,也可以编写出更好的代码。vs 2008中有很多的程序开发工具,开发者可以从中选择适合自己的编程语言。以及运用相关数据库来辅助程序的完成,从而编写出高质量高水平的源代码。 visual studio 2008加快各类语言数据的开发和加工的速度。它提供了所有相关的工具和支持框架。帮助用户快速创建先进的程序,表达的语言和数据的特点是更好的,如语言问题(linq),个人可以使用的特征使其更容易促进和解的分析与处理。2.2 c+语言c+语言是一种使用非常广泛的计算机编程语言。c+程序设计语言是由来自at&t bell laboratories的bjarne stroustrup设计和实现的,它兼具simula语言在组织与设计方面的特性以及适用于系统程序设计的c语言设施。c+最初的版本被称作“带类的c(c with classes)”,在1980年被第一次投入使用;当时它只支持系统程序设计和数据抽象技术。支持面向对象程序设计的语言设施在1983年被加入c+;之后,面向对象设计方法和面向对象程序设计技术就逐渐进入了c+领域。在1985年,c+第一次投入商业市场。在1987至1989年间,支持范型程序设计的语言设施也被加进了c+。c+语言发展大概可以分为三个阶段:第一阶段:从80年代到1995年。这一阶段c+语言基本上是传统类型上的面向对象语言,并且凭借着接近c语言的效率,在工业界使用的开发语言中占据了相当大份额;第二阶段:从1995年到2000年,这一阶段由于标准模板库(stl)和后来的boost等程序库的出现,泛型程序设计在c+中占据了越来越多的比重性。同时由于java、c#等语言的出现和硬件价格的大规模下降,c+受到了一定的冲击;第三阶段: 从2000年至今,由于以loki、mpl等程序库为代表的产生式编程和模板元编程的出现,c+出现了发展历史上又一个新的高峰,这些新技术的出现以及和原有技术的融合,使c+已经成为当今主流程序设计语言中最复杂的一员。c+的设计目标:就是要让c+既具有适合于系统程序设计的c语言所具有的可适应性和高效性,又能在其程序组织结构方面具有像simula那样的语言设施(simula所支持的这种程序组织结构通常被称为面向对象程序设计风格)。在设计的时候,还做了很大的努力,使得引借自simula的高层次的程序设计技术能够应用于系统程序设计之中。这即是说,c+所提供的抽象机制能够被应用于那些对效率和可适应性具有极高要求的程序设计任务之中。设计原则:c+的设计规则被分为基本规则、基于设计的规则、语言的技术性规则以及基于低层次程序设计的规则四个方面。这里介绍一下c+中的基本规则:(1)c+的每一步演化和发展必须是由于实际问题所引起的;(2)c+是一门语言,而不是一个完整的系统;(3)不能无休止的一味追求完美; (4)c+在其存在的“当时”那个时期必须是有用处的;(5)每一种语言特性必须有一个有根据的、明确的实现方案;(6)总能提供一种变通的方法。可以注意到,基本规则的最后三条暗示了两点:对适用于真实世界中各种应用的便捷工具的强调;对程序员的技术和取向(偏好)的充分考虑。由此可知,在语言的演化过程中,来自用户的反馈和语言实现者们积累的经验才是最为重要的。c+的一个目标就是提供更易用并具有一定承受能力的设计思想和程序设计技术,进一步提高程序的质量。这些技术中的绝大部分都源自simula,并通常被作为面向对象程序设计和面向对象设计思想来讨论。然而,c+的设计目标总还是在于要支持一定范围内的各种程序设计风格和设计思想。这与一般在语言设计方面的观点形成一定对比。一般在语言设计上总是试图将所有系统内建于单独一个被重点支持的、带有强制性的程序设计风格之中。c+从simula中借鉴了用户自定义型别和类层次机制。然而,在simula及许多类似的语言中,其对用户自定义型别的支持与其对内建型别的支持存在着根本上的不同。例如,simula中不允许在栈中为用户自定义型别的对象分配空间,并且只允许通过指针(这在simula中称为引用reference)来对这些对象进行访问。而相反的,内建型别的对象只在栈中被分配空间,不能在动态存储区中分配,而且不能使用指针指向它。这种在对待内建型别与对待用户自定义型别上的差异,暗示着对效率问题的严格考虑。比如,当作为一个在动态存储区中被分配的对象之引用时,如果该对象属于自定义型别,那么就会为运行期及空间带来负荷;而这些负荷在有些应用中被认为是不可接受的。这些正是c+意欲涉足解决的问题。同时,在用法上的不同也决定了:不可能在范型程序设计中统一对待那些语义上近似的型别。在维护一个较庞大的程序时,一个程序员不可避免的会基于某些不完整的知识来对程序作一些修改,只关注全部程序代码中的一小部分。基于此,c+提供了class、namespace和访问控制,使设计决策的各异化(locality)成为可能。在基于一门编译的语言中,某些顺序上的依赖性是不可避免的。例如在c+中,一个变量或者函数在其被声明之前是无法使用的。然而,c+中类成员的名字规则和重载解析(overload resolution)的规则还是在独立于声明顺序的原则下被制定出来,以便将发生混乱和错误的可能性降至最低。在c+的设计中只要在不严重影响其对强型别检查(strong type checking)的支持的地方,都尽量做到与c的“source-link”方式相兼容。除了某些微小的细节差别之外,c+将c作为一个子集包含了进来。c+与c的兼容性使得c+程序员立刻就能有一个完整的语言和工具集可用。还有两点也很重要,一是有大量关于c的高质量的教学素材已经存在,二是c+程序员可以利用c+与c的兼容性而直接并有效的使用大量现成的程序库。在决定将c作为c+的基础的时候,c还没有像后来那样出类拔萃、炙手可热,所以在考虑这个问题的时候,与c语言所提供的可适应性和高效性相比,c语言的流行程度只是个次要的考虑因素。然而,与c的兼容性也使得c+在某些语法和语义上保留了c的一些瑕疵之处。比如,c语言的声明语法就实在远不及优美;而其内建型别的隐式转换规则也是混乱无章法的。还有另一个大问题,就是许多从c转向c+的程序员并没有认识到,代码质量上的显著提高只能通过在程序设计风格上的显著改变来达到。继承与派生:面向对象程序设计有4个主要特点:抽象、封装、继承和多态性。要较好地进行面向对象程序设计,还必须了解面向对象程序设计另外两个重要特征继承性和多态性。面向对象技术强调软件的可重用性(software reusability)。c+语言提供了类的继承机制,解决了软件重用问题。在c+中可重用性是通过继承(inheritance)这一机制来实现的。继承是c+的一个重要组成部分。一个类中包含了若干数据成员和成员函数。在不同的类中,数据成员和成员函数是不相同的。但有时两个类的内容基本相同或有一部分相同。利用原来声明的类student作为基础,再加上新的内容即可,以减少重复的工作量。c+提供的继承机制就是为了解决这个问题。在c+中,所谓“继承”就是在一个已存在的类的基础上建立一个新的类。已存在的类(例如“马”)称为“基类(base class )”或“父类(father class )”。新建的类(例如“公马”)称为“派生类(derived class )”或“子类(son class )”。一个新类从已有的类那里获得其已有特性,这种现象称为类的继承。通过继承,一个新建子类从已有的父类那里获得父类的特性。从另一角度说,从已有的类(父类)产生一个新的子类,称为类的派生。类的继承是用已有的类来建立专用类的编程技术。派生类继承了基类的所有数据成员和成员函数,并可以对成员作必要的增加或调整。一个基类可以派生出多个派生类,每一个派生类又可以作为基类再派生出新的派生类,因此基类和派生类是相对而言的。以上介绍的是最简单的情况:一个派生类只从一个基类派生,这称为单继承(single inheritance),这种继承关系所形成的层次是一个树形结构。一个派生类不仅可以从一个基类派生,也可以从多个基类派生。一个派生类有两个或多个基类的称为多重继承(multiple inheritance)。关于基类和派生类的关系,可以表述为:派生类是基类的具体化,而基类则是派生类的抽象。c+的另一个设计目标,就是要让c+既具有适合于系统程序设计的c语言所具有的可适应性和高效性,又能在其程序组织结构方面具有像simula那样的语言设施(simula所支持的这种程序组织结构通常被称为面向对象程序设计风格)。在设计的时候,还做了很大的努力,使得引借自simula的高层次的程序设计技术能够应用于系统程序设计之中。这即是说,c+所提供的抽象机制能够被应用于那些对效率和可适应性具有极高要求的程序设计任务之中。2.3 c/s简介c/s是在上世纪90年代出现并迅速占领了程序开发模式界的主流方法,简称c/s模式,它实际上是主机的大部分任务放到客户机去实现,负责保持专注于主机和聚合操作的部分,成为服务端;而另外一端放在远离服务端的计算机上操作,通过友好的界面来让用户操作,称为客户机。相对于以前的模型,最大的改进c/s模式不再是所有的软件到电脑中,但应用程序分为两个不同的角色,和两个不同的位置:可以在计算机上安装服务端端终端服务程序,在一般的pc安装客户机使用的程序。这是由于个人电脑,所以c/s模型成为可能,因为计算机具有一定的pc能力,使用它而不是终端在第一模式中,你可以工作在主机的客户机侧边的部分完成,从而减少对主机的负担,而且增加了系统的对用户的响应速度和响应。通过连通的网络协议在客户端和服务端之间进行数据互通。客户端发送数据请求到服务端,服务端将数据发送到客户端的计算机上,之后信号返回到服务端。这个优点是利用客户端的功能,从而大大提高了计算机的计算能力;另外,由于客户端和服务端通过网络协议之间的通信,是逻辑网络链路,因此客户端和服务端的开发模式具有很好的实用性和适用性。cs模式的网络计算模式成为目前的主流模式。操作模式:首先,启动服务端,并提供转介到适当的服务按照(如下):(1)服务端打开服务终端,配置服务端地址和端口,客户端能够通过地址连接到服务端。(2)客户端的功能请求通过网络途径送到了服务端。(3)服务端可以无限次数接受客户机的功能请求,并且处理请求和发送响应信号。(4)回到第二步,等待着别的客户端的功能请求。(5)关闭服务端。客户端:(1)配置服务端端口和地址。(2)发送功能请求到服务端,并接收服务端的功能命令;(3)继续后,要求关闭通信信道和终止。这种管理的特点是一个客户端和服务端模型,为cs模式。c/s结构在目前非常流行,也是一个涉及数据库的应用。目前网络技术发展这么快,也有利于资源的合理利用。此外,它也可以是一个服务端端的信息,客户可以获得必要的信息以访问服务端。客户机服务端模型是你问我答的模式关系。某个客户端发布请求到服务端,服务端接受后将结果传达回去。在客户提出要求之前,服务端处于休眠。客户端请求来到后,服务端开始工作,实现客户机要求的功能,对客户的请求做出相应的反应。与c/s相比的还有b/s的架构模式。 c / s开发的borland公司在美国的第一家公司,b / s是微软在美国的研究和开发。目前,这两项技术比较普遍使用,很多公司能够利用c / s和b / s开发更多优秀实用的软件产品。这两种技术都有自己特定的市场份额和客户群。2.4文件同步目前,专家也在研究高效文件同步实现的技术,依据硬件环境做出了一些解决的办法,根据它们的发育阶段的不同的文件同步,大致可分为三种类型6:完全同步模式,同步和同步模式之间的增量差。完全同步的方式,通过定义指定文件的全部内容,以通过网络传输到所述存储装置的另一端发送一个特定的数据格式,并覆盖现有的文件内容。虽然这种操作简单,时间最短,但是由于每个文件的全部内容被通过网络传输的,并且可以有效地提高带宽节省的效率。增量同步是对文件传输之前进行比较,只加了一次机会同步改正过后的文件,数据非常少因而同步起来也更省时间。缺点:然而,显然是增量同步覆盖环,一个损坏的文件将导致所有后续的同步过程失败。在同步过程中,经过充分的同步文件的一部分的变化,为了提高数据的可靠性增量的基础上。虽然这个过程有一定程度的冗余,但差异之间的计算速度和数据传输量之间取得了很好的的平衡。如何简化所以给出的相应的优化方法。对于基于文件的内容远程文件系统,lbfs (low.bandwidth网络文件系统)使用的比较多。 另一种有效的文件同步算法的rdc(远程差分压缩)微软窗口服务端。 rsync的算法与上述情况相比, rdc最明显的优点,它将阻止计算,并在客户端和服务端端设置,并使用可变长度块模式,两种重复(即重复数据删除)非常相似。2.5 数据库sqlite介绍sqlite 是一款轻型的数据库,sqlite的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百k的内存就够了。sqlite能够支持windows/linux/unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如tcl、php、java 等,还有odbc接口,同样比起mysql、postgresql这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。sqlite是无类型的。这意味着你可以保存任何类型的数据到你所想要保存的任何表的任何列中,无论这列声明的数据类型是什么(只有在一种情况下不是, 在字段类型为”integer primary key”时)。对于sqlite来说对字段不指定类型是完全有效的。第3章 文件同步服务端需求分析系统功能需求分析是在了解企业的现状、目标、技术和实力等各个因素的前提下,对其进行深入分析,了解客户要什么功能等,然后制定出可行的文件同步系统功能分工。这不但是系统开发过程的重要步骤也是绝对不能减去的。3.1 项目概述本文研究的是文件同步管理系统服务端的开发,是在vs2008环境下开发,用c+语言开发。文件自动同步管理系统分为客户端和服务端为c/s架构,能够在pc电脑上安装和运行;服务端是一个运行于网络的软件,能够和远程客户端进行数据交互和同步。笔者设计的文件自动同步系统采用c/s结构开发的模式,服务端端的开发主要功能模块包含服务端端文件管理功能模块、信息发布管理、用户权限管理、用户认证管理等功能模块,并能与客户端构成一个完整的应用系统,保证软件运行正常。客户端是一个能够运行于本地机的软件,能够和服务端进行交互和同步;服务端的文件存储方式采用数据库存储。3.1.1 项目目标通过vs2008开发平台,利用现有的资源,配置好硬件环境,开发出匹配系统需求的软件,该软件具有良好的使用效果界面实现起来不宜太过复杂,能够保证用户对该系统的熟悉度提升迅速并且很快的能够实现文件同步功能。3.1.2 功能描述服务端的功能包含:(1)文件管理功能:对文件的分类管理,能够在服务端创建分类;(2)信息发布管理功能:当发现客户端文件与服务端又不一样的时候,提示客户端更新;(3)用户权限管理:用户在注册成功后便被服务端赋予了登录(登陆之前必须先配置服务端的信息)该系统的权限,也有了上传和同步的权限,用户对自己文档文件图片的删除权限;(4)用户认证管理功能模块:当用户登录的时候输入与数据库相匹配的用户名字和用户密码时,服务端允许此用户登录到系统并实现自己的相应的功能权限;(5)服务端增加了文件(客户端传上来的),在其他客户端登录时会收到提醒更新通知。;(6)服务端增加了某文件分类,客户机需要自己新建对应的文件夹名称;(7)服务端能够与客户端构成一个完整的应用系统,并保证软件运行正常。3.1.3 运行环境首先硬环境方面计算机的配置主流的都可以满足需求,性能要好,那样画面会更清晰。对于目前来水的开发的这个系统是对于目前主流的系统都比较适合:windows7,windows8,linux系统.软环境方面本系统是在visual studio 2008环境下编译运行。3.2 系统操作流程下面介绍一个总的过程:客户端a,客户端b,客户端c把相对应的文件a,b,c传到服务端的对应文件夹里面,由服务端可以对文件施加自己有的功能譬如分类管理功能,当用户上传一个文档,图片或文件可以选择上传到一个服务端某个文件夹(文件,文档,图片等)。客户端b,c可以下载a文件,但是不能删除a文件,a有删除a文件的权限(谁上传的文件谁就有此文件的删除权限),当一个文件的版本被上传的用户改变,修改后上传到服务端,当其他客户接受在线的服务端发送的文件更改信息,提示是否更新下载同步。具体功能如图3-1所示:服务端(文件:a,b,c.)1 2 n客户端b客户端a客户端c图3-1为系统功能实现图服务端操作流程图如图3-2所示:图3-2服务端操作流程图3.3 性能要求为了达到设计的要求,对本系统的要求为:1、能够让整个系统的运行稳定;2、可以正常的实现文件同步功能;3、完成文件自动同步功能。3.4 可行性分析(1)经济的可行性在项目的开发成本来进行经济上的分析,首先是开发所需要的经济成本,包括买设备还有管理和维护费用,其次是获得的收益。设计的文件同步系统是一个比较小的系统,对人工成本,财力与物力来讲是非常之小的,只要一台电脑,这个系统就可以完成开发和运行起来,考虑到电脑现在已经很普及了价格也是平易近人,现只要购置一部电脑就可以了。人力方面,也是非常有用的,节约更多的人力资源,能够做更多的其他任务。(2)技术上的可行性本文件同步系统是在visual studio 2008环境下编译,调试, 运行,采用c+语言完成开发。在windows平台下,用户可通过主界面的菜单来执行操作,可以非常方便快捷的完成文件同步的操作,而且功能一目了然,基本适合除了儿童老人以外的人群使用。(3)运行可行性本系统为一个文件同步系统,成本精力耗费很少,目前主流通常使用的电脑都可以运行笔者设计的文件同步系统,所以这个系统在具体的运行上是非常可行的。总的来说,在技术条件满足的情况下和硬件设备具备的条件下,都满足开发所需要的前提,所以这个系统的开发在技术上是非常可行的。3.5 开发环境本系统要求运行在microsoft windows xp/7/8操作系统中,开发本系统的操作系统是microsoft windows 7 professional x64;开发语言是c+ ;开发工具采用的visual studio 2008;测试使用环境是本地局域网。计算机的系统版本可以为 windows 7/8版本均可。第4章 系统设计与实现4.1 系统架构设计为了保证软件的正常运行,该系统必须达到以下目标:1、可行性。c/s架构是此软件实现的基础。2、可靠性。对于用作商业交易的操作系统软件,系统软件的管理是至关重要的,因此必须非常的可靠。3、安全性。当系统拿来当作商品交易时,必须保证软件洗头的安全性,因此开发一个安全的系统是非常之重的。4、可定制。一个好的软件,可以根据多变的用户需求和广大客户来适应相应的需求功能。5、可扩展性。新兴技术,系统软件应允许新技术的引进,扩大了现有系统的功能和性能,可以实现二次开发。6、可维护性。系统维护软件包括两个方面,一是存在误差的排斥,二是在现有系统的新软件需要看到。一对一保持一个简单的系统,可以在很大程度上降低技术支持的费用。7、标量性。该软件必须能够使用,能够迅速适用用户数量猛增的状态,以保持合理的性能。适应用户市场拓展,让软件变得更好。8、体验客户。系统必须易于使用。最终用户可能不是计算机专业人员和技术人员,所以要做到人群适宜,界面易懂,操作简单。4.2 服务端功能模块设计具体功能:(1)客户端与服务端是多对一的关系,在功能实现上是一个服务端同时可以更多个客户端进行互动交互:(2)管理客户端传上来的文件(文件的存放分类),服务端有分类文件夹。当客户端用户传文件上来时可以选择传到哪个分类文件夹里面;(3)服务端能够给予用户权限(下载,上传, 删除),权限设置(在编程实现的时候可以设计比如说1可以下载,0就不可以下载)。用户注册之后,服务端可以发放权限给用户权限包括:上传,下载,修改(修改只能修改自己本地文件,在修改完成后自己上传到服务端,服务端与其他用户交互提示更新)。用户上传某个文件上来,服务端会自动把该文件的属性,上传者和更新时间记录到数据库,当有用户对此文件进行删除时服务端就检查该用户的用户名跟数据库进行匹配成功即删除,失败即删除失败。(4)服务端能够通知其他用户文件修改通知,并提示下载,系统设计的时候是表示在一定范围时间内自动匹配校准,发现不同就会提示用户更新。4.3 系统实现文件数据指的是照片,视频,普通文件等以文件形式保存的数据。实现文件同步系统的分为两步:第一步:由客户端向服务端发送版本数据和文件变更数据,或服务端根据文件更新,向客户端同步版本数据;第二步:根据文件信息比较完成后进行文件的传输。系统设计的原理是当检测到文件属性不一样的时候,提醒用户是否同步到服务端或本地,点击是按钮后开始同步文件。具体过程实现如下:客户端a,客户端b,客户端c把相对应的文件a,b,c传到服务端的对应文件夹里面,由服务端可以对文件实施自己有的功能譬如分类管理功能,当用户上传一个文档,图片或文件可以选择上传到一个服务端某个文件夹(文件,文档,图片等)。客户端b,c可以下载a文件,但是不能删除a文件,a有删除a文件的权限(谁上传的文件谁就有此文件的删除权限),当一个文件的版本被上传的用户改变,修改后上传到服务端,当其他客户接受在线的服务端发送的文件更改信息,提示发现更新下载同步。4.3.1 服务端设计实现1、服务端界面的设计效果如图4-1所示所示:图4-1 服务端主界面2、服务端配置界面如图4-2所示:图4-2 服务端配置界面实现代码:void cserverinidlg:onbnclickedok()updatedata();/初始化if(m_dwport = 0)messagebox(text(端口不能为空);/输入服务端的端口号getdlgitem(idc_edit1)-setfocus();return;if(m_maxuser = 0)messagebox(text(最大用户数不能为0);/此处输入系统允许接入的最大系统用户数量getdlgitem(idc_edit2)-setfocus();return;/保存端口配置cstring strfile = getapppath();strfile += text(server.ini);cstring str;str.format(text(%d), m_dwport);writeprivateprofilestring(text(server), text(port), str, strfile);/cstring str;str.format(text(%d), m_maxuser);writeprivateprofilestring(text(server), text(maxuser), str, strfile);onok();3、文件分类管理界面:图4-3 服务端文件分类管理界面实现代码:/删除文件类型及里面的文件. 需要提示检查文件是否为空void cfiletypemanagedlg:onbnclickeddelete()cstring strfilepath = getapppath();position pos = m_list.getfirstselecteditemposition();while(pos)int iitem = m_list.getnextselecteditem(pos);/删除类型及文件cstring strfile;strfile = m_list.getitemtext(iitem,0);strfile = strfilepath + strfile;if(isdirempty(strfile) = false)if(idyes != messagebox(text(请检查此类型目录中是否已经上传了文件, 是否需要删除?), text(存在文件), mb_yesno)m_list.setitemstate(iitem,0 , lvis_selected);continue;removedirectory(strfile);/移除分类文件夹m_list.deleteitem(iitem);pos = m_list.getfirstselecteditemposition();4、信息发布管理,用户权限管理,用户认证管理文件同步管理系统的服务端的用户权限管理和用户认证功能是通过用户的输入与数据库的进行匹配,用户权限管理是在用户注册后就把权限分配到了该用户,该用户只能删除和修改自己上传文件,对于其他用户上传的文件只有下载权限。用户认证管理,当用户在登录的时候输入当初注册的正确的用户名和密码的时候系统就允许该用户登录进入系统,输入不正确的用户名或密码系统就弹出提示用户名或密码错误。这里实现比较简单就不把实现的代码添加到这。第5章 系统测试5.1 测试原则及方法概述软件测试是为了发现错误而不断执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程按顺序逐个对测试项目做出说明。1、软件测试过程应该遵循如下8大原则:(1)尽早地和不断地进行软件测试。不应把软件测试仅仅看作是软件开发的一个独立阶段,而应当把它贯穿到软件开发的各个阶段中。坚持在软件开发的各个阶段的技术评审,这样才能在开发过程中尽早发现和预防错误,把出现的错误克服在早期,杜绝某些发生错误的隐患。(2)测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成。测试以前应当根据测试的要求选择测试用例,用来检验程序员编制的程序,因此不但需要测试的输入数据,而且需要针对这些输入数据的预期输出结果。(3)程序员应避免检查自己的程序。程序员应尽可能避免测试自己编写的程序,程序开发小组也应尽可能避免测试本小组开发的程序。如果条件允许,最好建立独立的软件测试小组或测试机构。这点不能与程序的调试(debuging)相混淆。调试由程序员自己来做可能更有效。(4)在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。合理的输入条件是指能验证程序正确的输入条件,不合理的输入条件是指异常的,临界的,可能引起问题异变的输入条件。软件系统处理非法命令的能力必须在测试时受到检验。用不合理的输入条件测试程序时,往往比用合理的输入条件进行测试能发现更多的错误。(5)充分注意测试中的群集现象。在被测程序段中,若发现错误数目多,则残存错误数目也比较多。这种错误群集性现象,已为许多程序的测试实践所证实。根据这个规律,应当对错误群集的程序段进行重点测试,以提高测试投资的效益。(6)严格执行测试计划,排除测试的随意性。测试之前应仔细考虑测试的项目,对每一项测试做出周密的计划,包括被测程序的功能、输入和输出、测试内容、进度安排、资源要求、测试用例的选择、测试的控制方式和过程等,还要包括系统的组装方式、跟踪规程、调试规程,回归测试的规定,以及评价标准等。对于测试计划,要明确规定,不要随意解释。(7)应当对每一个测试结果做全面检查。有些错误的征兆在输出实测结果时已经明显地出现了,但是如果不仔细地全面地检查测试结果,就会使这些错误被遗漏掉。所以必须对预期的输出结果明确定义,对实测的结果仔细分析检查,抓住征侯,暴露错误。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 美丽的教育读书笔记,《美丽的教育》读书心得5篇
- 家电销售工作计划
- 环保设备制造有限公司节能环保设备技改项目可行性研究报告
- 短视频APP用户多种需求调查
- 父亲在女儿婚礼上讲话稿精彩范文8篇
- 请大家严格按照合同范本执行
- 爱眼护眼教师讲话稿5篇
- 医疗自建房施工承包合同
- 机场行李车司机聘用协议
- 初中物理《生活用电》单元设计教案
- 四年级上册英语教案-UNIT FOUR REVISION lesson 14 北京版
- YDT 4565-2023物联网安全态势感知技术要求
- 幼儿园故事绘本《卖火柴的小女孩儿》课件
- 【工商企业管理专业实操实训报告2600字(论文)】
- HJ 636-2012 水质 总氮的测定 碱性过硫酸钾消解紫外分光光度法
- 主播薪资核算方案
- 机电仪运维中心巡检工作提升方案
- 10以内口算题每页50道
- 大学生职业生涯规划与就业指导(高校学生学习职业生涯规划与就业指导课程)全套教学课件
- 《道德与法治》三年级学情分析
- 校园禁烟承诺书(12篇)
评论
0/150
提交评论