吳湘華 曹麗君
(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年.