周虎


摘 要:針對在試題庫建設中需要大數據量文件上傳操作的特點,在研究WCF的框架和數據交互技術的基礎上,設計一個基于WCF流模式數據傳輸的文件上傳程序,尤其在大數據量上傳時,大大提高了文件上傳的效率,并且在客戶端可以查看當前文件上傳的進度。通過對WCF服務端和客戶端的設計與配置,實現了基于WCF的文件上傳功能。
關鍵詞:WCF;文件上傳;流模式;契約;Net.Tcp
中圖分類號:TP311.1 文獻標識碼:A
Abstract:As a large amount of data needs to be uploaded in the construction process of the examination database system,based on the framework of WCF and data exchange technology,the paper designs a file uploading system based on the WCFstream mode.Especially when uploading a large amount of data,the system greatly improves the efficiency of file transfer,and the real-time uploading progress can be viewed from the client program.Through the design and configuration of the WCF server and client,the file uploading functions are implemented based on WCF.
Keywords:WCF file uploading;stream mode;contract;Net.Tcp
1 引言(Introduction)
文件上傳在基于網絡應用系統開發過程中經常用到的一個功能[1],通常情況下客戶端通過Http的Post方式或使用Ftp方式進行文件上傳,但是采用以上兩種方式在大數據量文件上傳時,在上傳進度的顯示、上傳文件的效率,以及斷點續傳方面仍存在一些缺陷。本文根據在題庫系統建設中特點,需要用到大數據量的文件上傳功能,集成到題庫系統中去,上傳到服務端根據當前日期自動創建日期文件夾中,并能實時顯示文件上傳的進度,結合WCF流模式數據傳輸技術,實現了客戶端的文件上傳功能,一方面客戶端可以查看文件上傳的進度,同時也大大提高了文件傳輸的效率。
2 WCF技術簡介(WCF introduction)
Windows Communication Foundation(WCF)是由微軟開發的一系列支持數據通信的應用程序框架[2],整合了原有的windows通訊的.net Remoting、WebService、Socket的機制[3]。WCF程序框架主要包含了四個方面,分別為契約、服務運行時、消息和寄宿[2]。契約屬于一個服務公開接口的一部分[4]。一個服務的契約,定義了服務端公開的服務方法、使用的傳輸協議、可訪問的地址、傳輸的消息格式等內容[5]。服務運行時定義了服務在運行時的具體行為。消息方面包含了消息的傳輸方式、消息的編碼與解碼。激活和宿主屬于WCF程序的部署方式。根據WCF框架中數據流模式傳輸的特點,當客戶端上傳文件時,將文件轉換為字節流方式分塊傳輸,通過設置文件名、文件大小、文件偏移量和發送字節數組的數據契約,實現了客戶端的文件上傳操作,具體如圖1所示。
3 文件傳輸服務端設計(File transfer server design)
對于WCF文件上傳的服務端設計,主要包含了四個部分:文件上傳服務契約的設計、文件上傳服務的實現、文件服務的部署和服務的宿主程序設計[6]。
3.1 文件上傳服務契約設計
文件上傳服務契約主要包含了服務契約接口的設計和數據契約文件信息的定義,服務契約中主要定義了文件上傳方法,參數是上傳文件信息和對應保存的路徑,數據契約包含了文件的基本信息,如程序所示。
在程序中,文件的偏移量屬性用來記錄當前文件已經傳輸的字節數,而定義發送的字節屬性用于約定每次發送字節的大小。
3.2 文件上傳服務的實現
文件上傳服務主要是實現了IFileTransfer接口,通過接收客戶端傳遞的文件對象及保存該文件的文件夾信息,首先判斷根據當前日期創建的文件夾是否存在,如果不存在則先創建該日期文件夾,然后將接收到的字節數組和文件的偏移量通過二進制方式寫入文件中。在服務端通過實現IFileTransfer接口,重寫UploadFileInfo方法,返回數據契約約定的文件信息對象,如程序所示。
5 結論(Conclusion)
本文通過對WCF框架的介紹,結合WCF中數據流傳輸模式,設計了基于WCF的文件上傳服務,實現了文件上傳的服務器端和客戶端的功能設計,并在題庫建設系統中得到了具體的應用,尤其在大數據量文件上傳過程中文件上傳的效率得到了相應的提高 。
參考文獻(References)
[1] Igor Kol.Benefits of the Use of Asynchronous Methods in a WCF Service and Its Client,Synchronizing Resource Access Between These Methods[C].Military Technologies(ICMT),2015,05:1-8.
[2] GuoYunhua.A Message Service System Based on WCF Duplex Communication[C].Computer Science & Service System(CSSS),2012,08:1480-1483.
[3] Wei Zhang.Research and Application of WCF Extensibility[C].Web Information Systems and Mining(WISM), 2010,10:363-367.
[4] 沈正.WCF研究與開發[J].中國新技術新產品,2009,19:13.
[5] 黃森,劉豐.基于WCF的數據流傳輸方案研究與應用[J].計算機安全,2009,12:14-15.
[6] 胡興梅,李玲.基于WCF的信息系統結構模型與體系架構的研究與設計[J].電腦知識與技術,2009,22:6198-6199.
[7] 陳品華,石林祥.WCF技術在中小企業的應用[J].微型電腦應用,2011,08:59-61.
[8] 周斌,茅維華.WCF在數字化校園建設中的應用[J].中山大學學報,2009,S1:335-337.
作者簡介:
周 虎(1977-),男,碩士,講師.研究領域:軟件開發.