首页 详细设计说明书

详细设计说明书

举报
开通vip

详细设计说明书分布式文件收集备份系统 详细设计说明书 执 笔 者 xxx 日 期 2014.7.2 指导教师 xxx     二○一四 年 六 月 二十八 日 计算机科学与技术系 目录 1 引言    2 1.1 编写的目的    2 1.2 背景说明    2 1.3 定义    2 1.4 参考资料    3 2 总体设计    3 2.1 功能规定    3 2.2运行环境    3 3 系统实现----详细编程计划    4 3.1程序流程图    4 3.2 主要模块    4 3.3 各个...

详细设计说明书
分布式文件收集备份系统 详细 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 说明书 执 笔 者 xxx 日 期 2014.7.2 指导教师 xxx     二○一四 年 六 月 二十八 日 计算机科学与技术系 目录 1 引言    2 1.1 编写的目的    2 1.2 背景说明    2 1.3 定义    2 1.4 参考资料    3 2 总体设计    3 2.1 功能规定    3 2.2运行环境    3 3 系统实现----详细编程计划    4 3.1程序流程图    4 3.2 主要模块    4 3.3 各个目录的情况简介    5 4 本项目用到的相关技术和 知识点 高中化学知识点免费下载体育概论知识点下载名人传知识点免费下载线性代数知识点汇总下载高中化学知识点免费下载     13 5 涉及到的技术难点:    13 1 引言 当今社会,人们的信息越来越多,也越来越重要,人们对信息的安全和保护的意识也越来越高。为了能给人们的重要信息提供备份和保护,我们准备开发一套“分布式的文件收集备份系统”,这个系统包括服务端和客户端两大方面,客户端用来监控和发送信息,服务端用来接收和保护信息,这套系统将起到对重要文件的自动采集与备份的作用,让人们不再为重要信息的丢失而担心。 1.1 编写的目的 本文档将对《分布式文件收集备份系统》软件开发详细设计进行描述,本文档的读者是程序员、项目策划、设计和评审人员。 1.2 背景说明 a.待开发的软件系统的名称:《分布式文件收集备份系统》 b.本项目的任务提出者:本项目组 c.开发者单位:河北工程大学科信学院计算机科学与技术1班 d.开发者:王鹏,刘延召,陆桂华,姚晓媛,张荣荣 1.3 定义 流程图:表示生产过程中事物各个环节进行顺序的简图。 功能结构图:将系统的功能进行分解,按功能从属关系表示的图表。管理信息系统的各子系统可以看作是系统目标下层的功能,对其中每项功能还可以继续分解为第三层、第四层……甚至更多的功能。 1.4 参考资料 [1] 《Unix 环境高级编程》------------------W.Richard Stevens著 [2] 《Unix 网络编程,卷1》----------------W.Richard Stevens著 [3] 《C语言程序设计》-------------------Brian W.Kernighan,Dennis     M.Ritchie著 [4] 《计算机网络·第五版》-------谢希仁著 2 总体设计 2.1 功能规定 功能简介: 在客户端实现对客户重要信息的监控和发送,客户端要保证监控到客户所有重要信息,不出错,保证对信息的传出速度要快,保证程序的健壮性,安全性。 在服务端实现对分布式客户端信息的采集,接收和备份保护,服务端要保证能够实现对N台客户端的负载,并发处理客户端的请求,提高对N台客户端的处理速度,保证程序的健壮性和安全性。 2.2运行环境 2.2.1设备 硬件最低要求:内存256MB以上,硬盘40MB以上。 2.2.2支持软件操作系统及编程工具: (1)linux操作系统        (2)gcc编译器 (3)vim编辑器            (4)支持makefile    (5)支持网络功能 3 系统实现----详细编程计划 3.1程序流程图 以上是本次项目的程序的大致流程图,这是目前的设计状况,如果有需求变化,我们还可以改进 3.2 主要模块 本系统将主要分为服务端和客户端两大模块,服务端与客户端运行时是独立的,互不干扰的,所以他们分别在不同的文件夹下,计划设计为如下: ------------------------------------------------------------- 有两个目录分别是: (1)Client目录-------负责客户端的程序 (2)Server目录-------负责服务端的程序 还有一个目录:sync_file---------负责日志文件的处理工作: ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- 3.3 各个目录的情况简介 下面对各个目录的情况进行简要分析: 3.3.1client目录: 在client目录中,将会有以下文件: —————————————————————————————— 下面对这些文件的作用进行进行简要讲解: (1)check_send_file.h中是对监控系统函数的定义,主要有以下函数的定义 —————————————————————————————— 他们实现了监控系统的主要工作。 (2)监控系统的实现,将使用linux的inotify事件监控机制。 Inotify 是文件系统事件监控机制,计划包含在即将发布的 Linux 内核中作为 dnotify 的有效替代。dnotify 是较早内核支持的文件监控机制。      Inotify是一种强大的、细粒度的、异步的机制,它满足各种各样的文件监控需要,不仅限于安全和性能。 使用 inotify 取代 dnotify 的原因有很多。第一个原因是,dnotify 需要您为每个打算监控是否发生改变的目录打开一个文件描述符。当同时监控多个目录时,这会消耗大量的资源,因为有可能达到每个进程的文件描述符限制。 Inotify的使用并不是很难,所以我们借助它来实现我们的监控系统。 (3)check_send_file.c中是以上函数的实现。函数的实现将在下一学期完成。 (4)send_file.h,它里面将定义用来打包和发送文件信息的函数。 它将主要有以下内容: —————————————————————————————— Fill_packet( ) 函数负责信息的打包,打包时会用到我们自定义的简单 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 包。 Send_file( ) 函数用来负责对信息的发送,它将用到x_socket.h中定义的接口函数。 在概要设计书中,已有信息打包和发送的过程,下面再次对信息的打包和解包进行简要介绍: 协议包的定义如下: _________________________________________________________ |                |            |                          | | packet_length  | data_type  |          data          | |                |            |                          | |---------------------------------------------------------| Packet_length的数据类型是int型, 在32位系统下,占4个字节 Data_type    的数据类型是short型, 在32位系统下,占2个字节 Packet_length的意思是整个包体的长度。 Data_type    的意思是data的类型,Data_type主要有四种,分别是: TYPE_FILE_NAME,代表文件名 TYPE_FILE_SIZE,代表文件的大小 TYPE_FILE_CONTENT,代表文件内容 TYPE_FILE_END,代表文件结束 下面列举一个完整的打包发送,和解包的过程,让大家了解打包发送信息的流程。 比如,一个名称为file.txt的文件,其中的内容是“hello”。 那么,将这个文件发送到服务器的步骤是(注意:我们每次向服务器发送内容,都是先将信息打包再发送,让后在服务器端,会有相应的方式解包): a.将“file.txt”打包,打包后整个包体的内容包括: packet_length,data_type和data。 packet_length 的值是4加2再加上“file.txt”所占的字节数 data_type    的值是TYPE_FILE_NAME Data          的值是“file.txt” 这样,信息“file.txt”就被打包好了,然后,会使用socket          系列API,经过网络将其发送到服务器端。 当服务端收到这些信息后,它通过解包就会明白,它收到的            这个信息是一个文件的文件名,服务端将会创建出子进程,让子            进程去创建    一个名为“file.txt”的空文件。而父进程会继续监听            其它客户端的连接。    b.将文件的大小发送过去,文件的内容是“hello”,文件的大小        便是“hello”所占的字节数,假如是大小N。 将数字N打包后整个包体的内容包括: packet_length,data_type和data。 packet_length 的值是4加2再加上数字“N”所占的字节数 data_type    的值是TYPE_FILE_SIZE Data          的值是“N” 这样,信息“N”就被打包好了,然后,使用socket系列            API,经过网络将其发送到服务器端。 当服务端收到这些信息后,它通过解包就会明白,这是文            件的大小,这样服务器就知道了它要备份的文件的大小。 c.将文件的内容发送过去,文件的内容是“hello” 将“hello”打包后整个包体的内容包括:                                packet_length,data_type    和data。 packet_length 的值是4加2再加上“hello”所占的字节数 data_type    的值是TYPE_FILE_CONTENT Data          的值是“hello” 这样,信息“hello”就被打包好了,然后,使用socket系            列API经过网络将其发送到服务器端。 当服务端收到这些信息后,它通过解包就会明白,这是文件            的内容,内容是“hello”,这时服务端就会将此内容写在刚才建立            的名为“file.txt”的空文件中。 d.发送一个结束标志--TYPE_FILE_END, 表示这个文件的全                部信息已经发送完。 发送结束标志只发送包头即可,因为没有内容,也就没有包            体。 此次要发送的包的内容包括:packet_length,data_type (注意,这里没有data) packet_length 的值是4加2 data_type    的值是TYPE_FILE_END 当服务端收到这些信息后,它通过解包就会明白,一次完整的        文件接收备份过程已经完成。此时,服务器将释放本次工作用到的        相关系统资源。 以上详细说明了一个文件在客户端打包发送,并在服务端进行解包备份的全过程。这四步全部完成后,表示整个文件的所有信息发送完毕,这样一个重要的文件也就成功的备份到服务端。 (5)send_file.c,这里边将是以上函数的实现,下学期,我们将会对其进行实现。 (6)x_socket.h,我们将对socket系列API进行封装使用,这里是socket系列函数封装后的定义,它会完成客户端与服务端的连接,信息发送与接收,和网络优化等工作。 它的内容将会是如下: —————————————————————————————————— Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。Socket接口设计者最先是将接口放在Unix操作系统里面的。如果了解Unix系统的输入和输出的话,就很容易了解Socket了。网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。 关于linux/unix平台下的网络编程相关内容,我们主要参考了《Unix网络编程》本书,有兴趣学习,或想了解的同学,可以参考这本书。 (7)x_socket.c,这里将是以上函数的具体实现,我们将在下一学期完成。 (8)client.c,这里是整个客户端程序的逻辑流程,最后的客户端可执行程序,就由它来生成。具体实现,我们将在下一学期完成。 (9)makefile,makefile文件会把整个项目的所有文件的逻辑关系,和依赖关系及编译方法,写清楚。Makefile可以很复杂,也可以很简单。具体的实现,我们下一学期,视情况而定。 以上,是client目录的情况,下面介绍server目录的情况。 3.2.2 Server目录情况简介: —————————————————————————————— —————————————————————————————— 下面对各个文件进行简单介绍: (1)x_socket.h 和x_socket.c 在介绍client目录时,已经介绍,它们的作用是对socket系列函数的封装和使用,负责网络和网络优化的工作。这里不再做过多的介绍。 (2)recv_file.h,它负责接收客户端发来的信息,并解包和备份文件。 它的主要内容将主要有以下内容: —————————————————————————————— —————————————————————————————— recv_file.c,它里边是对recv_file.h头文件中内容的实现,我问将在下一学期给出集体的实现过程。 (4)    my_lib.h中是一些辅助处理细节的函数,比如守护进程的编写,等等。 (5)    my_lib.c中是对my_lib.h中所定义的内容的实现,具体实现,我们将在下一学期给出来。 server.c,这里是整个服务端程序的逻辑流程,最后的服务端可执行程序,就由它来生成。在它里边会有“并发服务器”的实现过程,能够同时为N台客户端服务,提高服务器的负载能力。具体实现,我们将在下一学期完成。 (7)    makefile,makefile文件会把整个项目的所有文件的逻辑关系,和依赖关系及编译方法,写清楚。Makefile可以很复杂,也可以很简单。具体的实现,我们下一学期,视情况而定。 3.2.3 sync_file目录的情况如下: 其实就是一个小型的日志库, —————————————————————————————— —————————————————————————————— 本目录的内容,重要负责日志系统的相关实现,负责记录整个系统的运行情况,用户可以通过查看日志文件的内容,来了解系统的运行情况,系统是否出错等信息。在客户端与服务端都会这个日志库,来分别记录客户端与服务端的运行情况。 一个稍微大型的日志库设计,就是一个不小的项目,需要顾及到很多方面。在正真的工作当中,可能也不需要自己来编写日志库,因为有现成的或开源的日志库可用。但也可能现有的日志库的性能不是太好,因为它是开源的,我们也可以根据下需要,去修改它,来方便自己的使用。 我们编写的这个小日志库,会实现最基本的日志需要,如果时间充足的话,我们可以再扩展这个日志库,使其能够应对更加多变的情况。 目前,这个小日志库的设计如下: —————————————————————————————— 以上是主要的日志函数的定义。 在x_log.c中将是以上函数的具体实现,详细的实现的过程,将在下一学期给出。 3.2.4 配置文件 除了以上的内容,还有一个模块是配置文件的模块。配置文件是在系统运行之前,用户对系统的配置,客户端与服务端都将会有配置文件。 常用的配置文件的格式主要有ini格式的,xml格式的,和json格式的等。我们将选择其中一种来实现配置文件。 客户端需要的配置项主要有: (1)服务器的ip地址。 (2)所监控的目录。 (3)日志文件存放的地方等。 服务端需要的配置项主要有: (1)接收到的客户端的文件的存放的地方。 (2)日志文件存放的地方等。 下一学期,我们会给出配置文件的具体实现。 说明:因为我们这套软件是在linux系统下做的开发,而在linux平台,大部分的操作都是命令行的,所以不需要有什么界面,因此,我们的这套系统,也没有设计什么用户界面,只需要在命令行中敲入简单的命令即可使用。 4 本项目用到的相关技术和知识点 (1)c语言程序设计 (2)linux/unix开发平台的运用 (3)makefile的编写 (4)多进程程序的开发 (5)linux/unix文件目录的操作 (6)信号的控制和使用 (7)S/C模式的应用软件开发 (8)并发服务器的编写 (9)守护进程原理及其编写 (10)socket网络编程 (11)日志系统编写 (12)监控系统 (13)简单的引用层协议的设计 (14)配置文件编写 5 涉及到的技术难点: (1)怎样让一个服务器去应付成千上万的客户端的连接,怎样让服务器能够承受更大的负荷压力? (2)怎样可以对网路的传输速度进行优化,使得文件在传输的过程中更快? (3)怎样让服务器更加健壮,能够应付多样的突发事件,怎样编写高性能服务器? (4)怎样让CPU的利用率降下来?即让我们的程序占用最少的系统资源,去完成更多的工作? (5)怎样保证客户端程序的健壮性,保证监控系统的健壮性? (6)等等
本文档为【详细设计说明书】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_180829
暂无简介~
格式:doc
大小:51KB
软件:Word
页数:17
分类:互联网
上传时间:2019-04-19
浏览量:20