吴湘华 曹丽君
(1、湖南城市学院网络信息中心,湖南 益阳 413000 1、湖南城市学院计算机科学系,湖南 益阳 413000)
目前存在许多文件传输系统,如基于HTTP、FTP的文件传输系统。基于HTTP的文件传输系统,具有较好的二次开发性能,但是对于大文件的支持十分不理想[1];基于FTP的文件传输系统,虽然能够很好的支持大文件传输,但是要在其基础之上要进行二次开发比较困难[2]。不管是基于HTTP的文件传输,还是FTP的文件传输系统,它们均处于网络体系结构的应用层,所处的层次比较高,在应用层上进行二次开发批量传输大文件比较困难,而且效果并不理想。
在RUP的指导下运用UML建模技术,采用TCP/IP体系结构传输层的SOCKET编程,可以很好实现大文件批量传输,一次可以上传多个文件,可以动态设置上传保存路径,设置允许扩展名,允许最大大小等;同时,采用多线程技术以提高服务器的响应能力和并发处理能力;采用动态哈夫曼编码实现传输流的压缩,减轻网络传输负担;采用断点续传技术,减少重复传输量,提高网络资源的利用率,提高服务器磁盘利用率,减少冗余,用户可以自己选择采用断点续传还是重新上传;并提供完善的用户管理,用户必须是授权用户,否则无法登录服务器。
RUP[1](Rational Unified Process,统一软件过程)是一种面向对象的软件过程框架,RUP是一个重复和迭代的开发过程[2],解决了瀑布模型不可回溯的缺点,同时保留了瀑布模型规则化、流程化的优点。RUP分为连续的4个阶段:初始阶段、细化阶段、构造阶段和交付阶段,每个阶段可以进一步分解成多次迭代,每次迭代都是产品的进化过程,从中获得最终产品的一个子集,通过若干次迭代增量式地开发,成长为最终的系统。统一建模语言UML[4]是一种面向对象的建模语言。其主要作用是帮助用户对软件系统进行面向对象的描述和建模,它可以描述这个软件开发过程从需求分析直到实现和测试的全过程。它包括UML语义和UML表示法两个部分,由视图、图、模型元素和通用机制等几个部分组成。
Winsock是指Windows Sockets,源于UNIX中的Berkely套接字[5],使用Windows Sockets编制的应用程序,可以同其他基于Windows Sockets API编制的应用程序通过网络进行通讯,并且在编制基于Winsock的应用程序时,不需要关心网络通信协议本身是如何工作的。该系统采用Window Sockets字节流[6]的方式传输数据,可以很好的保证传输的稳定性和安全性。
进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体。线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。多线程[7]是为了使得多个线程并行的工作以完成多项任务,以提高系统的效率。多线程的优点:使用线程可以把占据长时间的程序中的任务放到后台去处理,用户可以同时处理多件事情,不需等待执行提高了程序的运行速度。在该系统中使用多线程技术,可以提高文件传输效率,提高服务器的响应能力和并发处理能力。
户端:(1)用户通过IP地址和端口号访问服务器。(2)授权用户可以登录服务器。(3)登录用户可以浏览服务器目录。(4)登录用户可以创建自定义的目录名,也可以删除指定目录。(5)登录用户可以选择上传目录、发送文件和断点续传/重传。
服务器端:(1)管理员启动程序后可以开启/关闭服务 (2)管理员可以设置服务器端口号,定期跟换服务器端口,保证服务器的安全性。(3)当监听到用户发送文件请求时候,为用户开启一个文件接收线程,接收用户文件,同时将接收到文件信息写入数据库,记录上传大小;当传输中断时,用户再次上传可以选择断点续传或覆盖源文件。(4)进行完善的用户管理。
业务系统用例就是提供给客户、业务伙伴或其他业务系统的服务。通过用例图展示了业务用例、参与者以及他们之间的关系。该系统主要由四个用例组成:登录服务器、传输文件、设置服务器信息、管理用户。系统业务用例图[4]如图1:
图1 系统业务用例图
5.1 用例建模:通过对业务用例模型的分析,对较大的用例进行了拆分,是相关操作和功能更集中于单个用例,提高内聚性减少耦合。
5.2 用例时序图[4]:时序图用来对信息交换进行可视化描述。如登录(Login)时序图,从登录服务器(LoginServer)分解而来,基于GRASP高内聚、低耦合模式进行的分解,创建如控制类CLogin等,其他时序图同样应用这些原则。
5.3 活动图[4]:活动图研究实现业务目标时所要执行的各项任务或活动的顺序安排。活动既可以是手动执行的任务,也可以是自动执行的任务。它可完成一个工作单元。
5.4 协作图[4]:协作图 (Collaboration Diagram,也叫合作图)是一种交互图(interaction diagram),强调的是发送和接收消息的对象之间的组织结构。一个协作图显示了一系列的对象和在这些对象之间的联系以及对象间发送和接收的消息。对象通常是命名或匿名的类的实例,也可以代表其他事物的实例,例如协作、组件和节点。使用协作图来说明系统的动态情况。
本系统利用SOCKET的底层机制和多线程技术相结合,使用Rational Rose工具,结合UML,采用RUP开发过程,使整个项目朝着预期的方向稳步推进,确保了项目的成功。
[1]Jacobson I,Booch G,Rumbaugh J.统一软件开发过程[M].北京:机械工程出版社,2002.
[2]张友生.基于RUP的软件过程及应用[J].计算机工程与应用,2004(30):104-107.
[3]Jacobson I,Booch G,Rumbaugh J.The Unified Software Development Process [M].Boston,MA:Addison-Wesley,1999.
[4]Craug Larman著,李洋等译.UML和模式应用(原书第3版).北京:机械工业出版社,2006.
[5]谢希仁,《计算机网络》(第5版),电子工业出版社,2008年.
[6]蒋东兴,WindowsSockets网络程序设计大全[M],北京:清华大学出版社,1999 年.
[7][美]Tobin Titus,Fabio Claudio Ferracchiati 等著 王敏 译,C#线程参考手册,清华大学出版社,2003年.