【文章內(nèi)容簡介】
活動圖、協(xié)作圖等。分析所建議的系統(tǒng)可能帶來的影響及其優(yōu)越性,最后評價系統(tǒng)的技術(shù)可行性,即在限定的條件下,利用現(xiàn)有的技術(shù),現(xiàn)有數(shù)量和質(zhì)量的開發(fā)人員,和可以利用的資源,在規(guī)定的期限內(nèi),開發(fā)是否能夠完成。 2. 2. 5 限制條件的影響 雖然系統(tǒng)的開發(fā)存在幾個不利因素,此系統(tǒng)的各項功能都是開發(fā)人員分析比較常用的比較熟悉的, 并且所有開發(fā)人員都有很強的分析設(shè)計與代碼編寫能力,加上一個開發(fā)人員對網(wǎng)絡(luò)通信機制比較了解。因此各種限制條件只是增加了系統(tǒng)開發(fā)的難度,但并不影響系統(tǒng)開發(fā)的成敗。 2. 2. 5 技術(shù)條件與人員數(shù)量和質(zhì)量 在開發(fā)人員由計算機系的一名老師和一名學(xué)生組成,都熟練掌握了開發(fā)此系統(tǒng)的開發(fā)平臺和相關(guān)技術(shù)等。因此,開發(fā)此系統(tǒng)的技術(shù)與人員質(zhì)量完全能達(dá)到要求。 2. 2. 6 完成期限 XI 此系統(tǒng)的開發(fā)難度比較大,當(dāng)時準(zhǔn)備充分,進(jìn)度安排合理,因此可以按期完成。 經(jīng)濟可行性分析 估計開發(fā)成本 在開發(fā)過程 中,需要用到的資源,只包括兩臺高配置計算機,以及有合適的開發(fā)環(huán)境,這些條件都已經(jīng)滿足,并且是可利用廉價的資源。 從預(yù)期的開發(fā)情況來看,整個開發(fā)成本只有兩部分,一是對開發(fā)人員的工作報酬,另一部分是開發(fā)所需資料的購買經(jīng)費。但是如果此系統(tǒng)從軟件公司購買,則至少需要 34 萬元以上的購買費用。因此,自行開發(fā)是一種最好的方式。 收益情況分析 此基于 SOCKET 的大文件批量傳輸系統(tǒng)使用. NET 平臺以及最新的開發(fā)技術(shù),因此能使用的期限也比較長,實用性很強,是低成本高效益。 3. 系統(tǒng)設(shè)計與分析 概念的定義 基于 SOCKET 的大文件批量文件傳輸系統(tǒng) Socket 在英文中是插座的意思,它的設(shè)計者實際上是暗指電話插座。因為在Socket 環(huán)境下編程很像是模擬打電話, Inter 的 IP 地址就是電話號碼,要打電話,需要電話插座,在程序中就是向系統(tǒng)申請一個 Socket ,以后兩臺機器上的程序“交談”都是通過這個 Socket 來進(jìn)行的。對程序員來說,也可以把Socket 看成一個文件指針,只要向指針?biāo)傅奈募x寫數(shù)據(jù),就可以實現(xiàn)雙向通信。利用 Socket 進(jìn)行通信,有兩種主要的方式。第一種 是面向連接的流方式。顧名思義,在這種方式下,兩個通信的應(yīng)用程序之間先要建立一種連接鏈路,其過程好像在打電話。一臺計算機(電話)要想和另一臺計算機(電話)進(jìn)行數(shù)據(jù)傳輸(通話),必須首先獲得一條鏈路,只有確定了這條通路之后,數(shù)據(jù)〔 通話)才能被正確接收和發(fā)送。這種方式對應(yīng)的是 TCP ( Transport Control Protocol )協(xié)議。第二種叫做無連接的數(shù)據(jù)報文方式,這時兩臺計算機像是把數(shù)據(jù)放在一個信封里,通過網(wǎng)絡(luò)寄給對方,信在傳送的過程中有可能會殘缺不全,而且后發(fā)出的信也有可能會先收到,它對應(yīng)的是 UDP ( User Datagram Protocol) XII 協(xié)議。 流方式的特點是通信可靠,對數(shù)據(jù)有校驗和重發(fā)的機制,通常用來做數(shù)據(jù)文件的傳輸。網(wǎng)絡(luò)的快速發(fā)展和普及,文件傳輸愈來愈頻繁,傳輸文件容量越來越大,單純的套接字傳輸不能滿足需求。 Window Socket 編程和多線程技術(shù)結(jié)合可以很好的解決這一問題,使得文件傳輸效率大大提高能很好的支持大文件、批量傳輸,提高服務(wù)器的響應(yīng)能力和并發(fā)處理能力。 Window Socket 采用字節(jié)流的方式傳輸數(shù)據(jù),可以很好的保證傳輸?shù)姆€(wěn)定性和安全性;而采用動態(tài)哈夫曼編碼實現(xiàn)傳輸流的壓縮,減輕網(wǎng)絡(luò)傳輸負(fù)擔(dān),提高網(wǎng)絡(luò)性能滿足用戶的需求。 功能定義 客戶端 (1)連接服務(wù)器 用戶知道服務(wù)器 IP 地址和端口可以進(jìn)行連接服務(wù)器進(jìn)入用戶登陸。 (2)登錄 連接上服務(wù)器后,擁有授權(quán)帳號和密碼的用戶可以登錄服務(wù)器。 (3) 瀏覽服務(wù)器目錄信息 登錄成功的用戶可以點擊瀏覽服務(wù)器目錄,查看已上傳的文件,上傳完畢后用戶可以點擊相應(yīng)目錄,更新服務(wù)器目錄查看上傳結(jié)果。 (4)創(chuàng)建目錄、刪除目錄 登錄成功的用戶可以創(chuàng)建自定義的目錄名。也可以刪除指定目錄。 (5)發(fā)送文件 ①選擇上傳目錄 登錄成功的用戶可以選擇自己想上傳的文件目錄,文件能夠上傳到指定的目錄,用戶可以通過瀏覽服務(wù)器目錄,查看文件上傳指定目錄。 ②選擇上傳文件 登錄成功的用戶可以瀏覽本地磁盤,選擇任何自己想上傳的文件,可已選擇多個文件進(jìn)行上傳。 ③發(fā)送 登錄成功的用戶在選擇上傳目錄和文件后,可以點擊發(fā)送進(jìn)行文件的傳輸。 ④斷點續(xù)傳 用戶上傳的文件是異常中斷,未傳完的文件是,可以選擇斷點續(xù)傳或覆蓋原文件 (6)斷開連接 登錄成功的用戶可以斷開與服務(wù)器的連接,可以再次連接服務(wù)器或退出應(yīng)用程序。 服務(wù)器端 XIII (1)服務(wù) ①啟動服務(wù) 管理員啟動程序后可以點擊開啟服務(wù)器服務(wù),服務(wù)器將監(jiān)聽指定端口,等待用戶上傳文件。 ②關(guān)閉服務(wù) 管理員可以關(guān)閉服務(wù)器,關(guān)閉端口,斷開客戶端與服務(wù)器的連接。 (2)設(shè)置 管理員可以設(shè)置服務(wù)器端口,定期跟換服務(wù)器端口,保證服務(wù)器的安全性。 (3)接收文件 當(dāng)監(jiān)聽到用戶發(fā)送文件請求是,為用戶開啟一個文件接收線程,接收用戶文件,同時將接收到文件信息寫入數(shù)據(jù)庫,記錄上傳大??;當(dāng)傳輸中斷時,用戶再次上傳可以選擇斷點續(xù)傳或覆蓋源文件。 (4)用 戶管理 ①查詢用戶 管理員可以查詢已授權(quán)的用戶,查看用戶名。 ②添加用戶 管理員可以添加系統(tǒng)新用戶,設(shè)置用戶名和密碼。 ③編輯用戶 管理員可以編輯指定用戶名用戶,進(jìn)行密碼的修改。 ④刪除用戶 管理員可以刪除指定用戶。 C/S 模型瘦 客戶端 /胖服務(wù)器的概念 C/S 模型將網(wǎng)絡(luò)中的程序分成兩部分;客戶部分和服務(wù)器部分。在這種模型下,客戶請求服務(wù)器提供服務(wù)或信息,服務(wù)器方對客戶的請求作出響應(yīng),在多數(shù)情況下,需要設(shè)計的網(wǎng)絡(luò)應(yīng)用程序是獨立的客戶和服務(wù)器程序。 瘦客戶機是使用專業(yè)嵌入式處理器、小型本地閃存、精簡版操作系統(tǒng)的基于 PC工業(yè)標(biāo)準(zhǔn)設(shè)計的小型行業(yè)專用商用 PC。配置包含專業(yè)的低功耗、高運算功能的嵌入式處理器。不可移除地用于存儲操作系統(tǒng)的本地閃存、以及本地系統(tǒng)內(nèi)存、網(wǎng)絡(luò)適配器、顯卡和其它外設(shè)的標(biāo)配輸入 /輸出選件。瘦客戶機沒有可移除的部件,可以提供比普通 PC 更加安全可靠的使用環(huán)境,以及更低的功耗,更高的安全性。 瘦客戶、機針對工作密集型行業(yè)設(shè)計,適用于應(yīng)用相對簡單統(tǒng)一,使用群體大的行業(yè)前端客戶設(shè)計 。 胖 服務(wù)器 模式 , 這種模式最適合一個集中的服務(wù)器執(zhí)行的處理。一個典型的 胖客戶端包含一個或多個在用戶的 PC 上運行的應(yīng)用程序,處理一些或所有的業(yè)務(wù)規(guī)則 , 同時提供一個豐富的用戶界面作出響應(yīng)。服務(wù)器負(fù)責(zé)管理對數(shù)據(jù)的訪問并負(fù) XIV 責(zé)執(zhí)行一些或所有的業(yè)務(wù)規(guī)則。這種模式也有一些 “ 變種 ” ,它們主要處理業(yè)務(wù)規(guī)則和數(shù)據(jù)的物理位置。 服務(wù)器的程序通常初始化就進(jìn)入睡眠狀態(tài),他簡單的等待客戶應(yīng)用程序的請求并給出響應(yīng)。服務(wù)器的進(jìn)程可分為重復(fù)服務(wù)器和并行服務(wù)器兩種類型。所謂重復(fù)服務(wù)器是指服務(wù)器端每次只處理一個請求,在完成當(dāng)前請求之前不處理另一個請求;而并行服務(wù)器,對每一個服務(wù)請求建立一個單獨的進(jìn)程進(jìn)行處理每當(dāng)接 收到一個服務(wù)請求,服務(wù)器就產(chǎn)生一個新進(jìn)程來進(jìn)行處理,啟動一個并行進(jìn)程之后,服務(wù)器重新回到睡眠狀態(tài),等待下一個服務(wù)請求的到來。本系統(tǒng)將采用并行服務(wù)器模型。 C/S 模型介紹 在 TCP/IP 網(wǎng)絡(luò)中兩個進(jìn)程間的相互作用的主機模式是客戶機 /服務(wù)器模式(Client/Server model)。該模式的建立基于以下兩點: 非對等作用; 通信完全是異步的。客戶機 /服務(wù)器模式在操作過程中采取的是主動請示方式: 首先服務(wù)器方要先啟動,并根據(jù)請示提供相應(yīng)服務(wù):(過程如下) 打開一通信通道并告知本地主 機,它愿意在某一個公認(rèn)地址上接收客戶請求。 等待客戶請求到達(dá)該端口。 接收到重復(fù)服務(wù)請求,處理該請求并發(fā)送應(yīng)答信號。 返回第二步,等待另一客戶請求 關(guān)閉服務(wù)器。 客戶方: 打開一通信通道,并連接到服務(wù)器所在主機的特定端口。 向服務(wù)器發(fā)送服務(wù)請求報文,等待并接收應(yīng)答;繼續(xù)提出請求?? 請求結(jié)束后關(guān)閉通信通道并終止。 設(shè)計人員 (1) 本系統(tǒng)的名稱:基于 SOCKET 的大文件批量傳輸系統(tǒng)的設(shè)計與實現(xiàn) (2) 本系統(tǒng)為畢業(yè)設(shè)計,設(shè)計者:謝山德 (3) 本系統(tǒng)的服務(wù)端在 Windows2020 Server 系統(tǒng)下運行,客戶端在 Window 下運行。采取 C/S 的模式。數(shù)據(jù)庫服務(wù)器采用 SQLServer2020,軟件開發(fā)工具采用 Visual XV Studio 2020。 運用 Rational Rose 進(jìn)行用例建模和分析設(shè)計。 需求分析 任務(wù)概述 (1) 目標(biāo) 網(wǎng)絡(luò)的快速發(fā)展與不斷普及,基于網(wǎng)絡(luò)應(yīng)用的軟件需求日益增多,而 Java與 .NET 兩大軟件開發(fā)體系在網(wǎng)絡(luò)開發(fā)的競爭日益激烈, Java 在以其簡單和跨平臺的優(yōu)勢在網(wǎng)絡(luò)開發(fā)上占有很大份額,但在文件傳輸尤其是在大文件傳輸上卻 有其缺陷。而用 .NET 中的 Window Socket 編程和多線程技術(shù)可以很好的解決這一問題。同時,使用多線程技術(shù),提高服務(wù)器的響應(yīng)能力和并發(fā)處理能力;采用動態(tài)哈夫曼編碼實現(xiàn)傳輸流的壓縮,減輕網(wǎng)絡(luò)傳輸負(fù)擔(dān);支持?jǐn)帱c續(xù)傳 , 用戶可以自己選擇采用斷點續(xù)傳還是重新上傳;實現(xiàn)大文件上傳 , 一次可以上傳多個文件;提供接口全面,可以動態(tài)設(shè)置上傳保存路徑 , 設(shè)置允許擴展名 , 允許最大大小等; 可以限制上傳單個文件大小 , 控制上傳帶寬上限 , 允許文件擴展名 , 拒絕文件擴展名等。 業(yè)務(wù)系統(tǒng)建模( RUP 先啟階段) 業(yè)務(wù)用例建模 (1)業(yè)務(wù)過程和業(yè)務(wù)系統(tǒng)的基本概念 大多數(shù)人的直觀理解,業(yè)務(wù)過程是為了實現(xiàn)某個目標(biāo)的一個工序( procedure)或事件 (event)。通常,業(yè)務(wù)過程的活動是相互依賴的。這個依賴關(guān)系是由各個活動之間相互創(chuàng)建的,這些活動屬于一個實現(xiàn)某個共同目標(biāo)的業(yè)務(wù)過程。工作管理對術(shù)語過程和業(yè)務(wù)過程有官方的定義。以下定義可以在工作流管理聯(lián)盟的工作流參考模型術(shù)語表(工作流參考模型, 1999 年 2 月, 過程是一組同級(并行且 /或串行)過程活動的集合,他們連接在一起實現(xiàn)公共的目標(biāo)。這些活動集可以由手工活動和 /或工作流活動組成。 業(yè)務(wù)過程是屬于業(yè)務(wù)組織結(jié)構(gòu)和策略領(lǐng)域中的一類過程,其目的是實現(xiàn)業(yè)務(wù)目標(biāo)。 業(yè)務(wù)過程是動態(tài)的,并涉及很多的活動。不過如果要從整個業(yè)務(wù)系統(tǒng)的角度來看,則還需考慮靜態(tài)的方面,這就包括如業(yè)務(wù)過程中的所采用的組織 XVI 結(jié)構(gòu)等內(nèi)容,還包括各種業(yè)務(wù)對象和信息對象。對于靜態(tài)和動態(tài)的兩個方面組成的整體,我們稱之為業(yè)務(wù)系統(tǒng)。 (2)業(yè)務(wù)建模的實踐技巧 通常人們會對業(yè)務(wù)過程分析和業(yè)務(wù)過程建模的復(fù)雜度感到 擔(dān)憂。軟件開發(fā)人員的經(jīng)驗顯示絕大部分的業(yè)務(wù)過程都十分易于理解和管理。由于不過透明,會使其看起來比實際情況更加復(fù)雜。必須加強對業(yè)務(wù)過程的文檔的編寫和分析,是整個系統(tǒng)能夠聯(lián)系在一起。 (3)業(yè)務(wù)用例的基本概念 業(yè)務(wù)系統(tǒng)用例就是提供給客戶、業(yè)務(wù)伙伴或其他業(yè)務(wù)系統(tǒng)的服務(wù)。業(yè)務(wù)系統(tǒng)的外部用戶 (例如客戶或業(yè)務(wù)伙伴 )將使用業(yè)務(wù)系統(tǒng)的輸出。這些外部用戶無需了解業(yè)務(wù)用例具體如何執(zhí)行的詳細(xì)信息。這些外部用戶稱為參與者。 業(yè)務(wù)參與者 用戶:通過系統(tǒng)身份驗證獲得文件傳輸服務(wù)的人。 管理員:保證服務(wù)器的正常運行,進(jìn)行用戶的管理。 業(yè)務(wù)用例圖 用例圖展示了業(yè)務(wù)用例、參與者以及他們之間的關(guān)系。這些在參與者和業(yè)務(wù)用例之間的關(guān)系用來說明該參與可以使用業(yè)務(wù)系統(tǒng)中的某個特定功能,但并不體現(xiàn)任何與服務(wù)呈現(xiàn)順序相關(guān)的信息。如下圖: XVII L o g i n S e r v e rU s e rS e t S e r v e r I n f oT r a n s m i t F i l e e x t e n d M a n g e r U s e r sM a n g e rU 1 : U 2 :U 3 :U 4 : 圖 2 系統(tǒng)業(yè)務(wù)用例圖 業(yè)務(wù)用例闡述 (1)業(yè)務(wù)用例闡述的基本概念 用例闡述是為了通過語言來描述用戶的實際需求。這是對用例進(jìn)行分析的第一個步驟,也就是進(jìn)入需求分析的第一步。完成用例闡述的用例,就可以開始交互建模(為界面建模做準(zhǔn) 備)的工作了,接著是分析模型的開發(fā)。 (2)業(yè)務(wù)用例闡述的基本要求 用例闡述的基本要求如下: ① 簡明扼要的描述出該用例的具體工作流程; ② 用詞要準(zhǔn)確,不能有模糊性的詞語; ③ 對于一些還沒有調(diào)研清楚的過程,可以臨時通過注釋的方式來表述,以便 XVIII 于今后的修改; ④ 對于提交進(jìn)行審核的用例闡述不能繼續(xù)保留注釋的內(nèi)容,否則,就只能說明這個用例闡述仍然沒有開發(fā)完成; 用例闡述的描述要一句描述操作者的操作,一句描述系統(tǒng)的響應(yīng)。 先排列用例 闡述的基本要求(包括 RUP 中的闡述),然后對它們進(jìn)行解釋。