需求分析說明書v10_第1頁
需求分析說明書v10_第2頁
需求分析說明書v10_第3頁
需求分析說明書v10_第4頁
需求分析說明書v10_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

Linux平安傳輸系統(tǒng)需求分析說明書Linux平安傳輸系統(tǒng)需求分析說明書編寫:趙牧晨日期:2021-9-12日期:日期:受控狀態(tài):是發(fā)布版次:1.0日期:編號(hào):

變更記錄日期版本變更說明作者2021-9-121.0初始版本簽字確認(rèn)系統(tǒng)模塊對(duì)應(yīng)章節(jié)對(duì)應(yīng)部門負(fù)責(zé)人簽字

目錄1 概述 41.1 目的 41.2 背景 41.3 范圍 41.4 術(shù)語定義 41.5 參考資料 41.6 任務(wù)概述 5 目標(biāo) 5 用戶的特點(diǎn) 5 假定和約束 51.7 運(yùn)行環(huán)境 5 軟件環(huán)境 5 硬件環(huán)境 6 接口 6 控制 61.8 需求規(guī)定 7 對(duì)功能的規(guī)定 7 系統(tǒng)功能層次模塊圖 7

概述目的本說明書目的在于明確說明系統(tǒng)需求,界定系統(tǒng)實(shí)現(xiàn)功能的范圍,指導(dǎo)系統(tǒng)設(shè)計(jì)以及編碼。背景待開發(fā)軟件系統(tǒng)的名稱:Linux平安文件傳輸系統(tǒng)此軟件系統(tǒng)任務(wù)開發(fā)者:沈哲劉超胡焰趙牧晨邵偉李龍浩孫松范圍1.3.1系統(tǒng)主要目標(biāo)本系統(tǒng)為平安文件傳輸系統(tǒng),主要實(shí)現(xiàn)客戶端與效勞器互傳文件,包括客戶端不僅可以瀏覽自己本地的文件列表和效勞器的文件列表,而且客戶端可以將本地的文件上傳到效勞器及將從效勞器上下載自己需要的文件。1.3.2主要軟件需求系統(tǒng)要求必須支持將每個(gè)文件的元數(shù)據(jù)進(jìn)行存儲(chǔ);支持從效勞器中獲取文件的元數(shù)據(jù);效勞器要求是必須多線程的,能夠允許多個(gè)客戶端同時(shí)連接;必須記錄文件操作事件日志,能夠支持用戶名和密碼的驗(yàn)證;客戶端必須是QT應(yīng)用程序,具有上傳和下載兩種能力,并且為了確保上傳和下載是否成功,要求先檢查碰盤空間。1.3.3設(shè)計(jì)約束、限制開發(fā)期限:9天。硬件限制:客戶端需要運(yùn)行于mini2440開發(fā)板上。編程語言:效勞器使用C,客戶端使用C開發(fā)過程中函數(shù)命名統(tǒng)一遵守Linux下的命名規(guī)那么;術(shù)語定義Socket:套接字IP:網(wǎng)絡(luò)地址Port:端口號(hào)參考資料書名作者出版社日期?嵌入式Linux?孫瓊?cè)嗣襦]電出版社2006年7月?C語言程序設(shè)計(jì)?譚浩強(qiáng)清華大學(xué)出版社2004年6月任務(wù)概述目標(biāo)功能需求1文件瀏覽/文件保存功能需求2登錄效勞器功能需求3讀寫磁盤文件功能需求4元數(shù)據(jù)封裝及提取功能需求5使用自定義協(xié)議接收/發(fā)送功能需求6使用OpenSSI進(jìn)行平安的文件傳輸功能需求7設(shè)計(jì)傳輸協(xié)議功能需求8封裝協(xié)議,提供外部接口功能需求9命令解釋功能需求10線程管理功能需求11上傳下載管理功能需求12用戶認(rèn)證功能需求13日志管理組織結(jié)構(gòu)圖及用戶角色。startstartlogininfoInitconfigYNmenuconfigAdduserMaxclientnumrunstopShowlogShowstatusAddadminrunrunsocketlistenbindacceptunpackuploaddownloadShowdirpacksendclinetConfiglogininfoSStartYesEntertheusernameAndpasswdConnecttoservicenoSendtoserviceerrorExitLogin:successUploadfileDownfileDisplayservicerdirDisplayclientdirexitSendtoservicerUtouploadfileSendtoservicerDtodownfileSendtoservicerStodownfile設(shè)計(jì)約束、限制開發(fā)期限:9天。硬件限制:客戶端需要運(yùn)行于mini2440開發(fā)板上。編程語言:效勞器使用C,客戶端使用C開發(fā)過程中函數(shù)命名統(tǒng)一遵守Linux下的命名規(guī)那么;運(yùn)行環(huán)境運(yùn)行環(huán)境操作系統(tǒng):MicrosoftWindows2000AdvancedServer支持環(huán)境:Linux5數(shù)據(jù)庫:MicrosoftSQLServer2000軟件環(huán)境名稱版本語種操作系統(tǒng)LinuxRedhat中文操作系統(tǒng)的附加功能無無無數(shù)據(jù)庫平臺(tái)無無無應(yīng)用平臺(tái)無無無郵件系統(tǒng)無無無客戶端軟件無無無接口.1外部接口硬件接口在輸出方面,對(duì)于鍵盤,鼠標(biāo)的輸入,可用C語言的標(biāo)準(zhǔn)輸入、輸出。對(duì)輸入進(jìn)行處理。在輸出方面,打印機(jī)的連接及使用,也可用C語言的標(biāo)準(zhǔn)輸入輸出對(duì)其進(jìn)行處理。在網(wǎng)絡(luò)傳輸局部,在網(wǎng)路硬件局部,為了實(shí)現(xiàn)高速傳輸,將使用高速100M以太網(wǎng)絡(luò)。軟件接口效勞器程序可提供對(duì)數(shù)據(jù)庫的接口,進(jìn)行對(duì)數(shù)據(jù)庫的所有訪問。效勞器程序上數(shù)據(jù)庫管理系統(tǒng)的對(duì)數(shù)據(jù)庫的備份命令,以多指導(dǎo)對(duì)數(shù)據(jù)的保存。在網(wǎng)絡(luò)軟件接口方面,使用一種無過失的傳輸協(xié)議,采用滑動(dòng)窗口方式對(duì)數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)傳輸及接受。.2內(nèi)部接口內(nèi)部接口方面,各模塊之間采用數(shù)據(jù)調(diào)用,參數(shù)傳遞、返回值的方式進(jìn)行信息傳遞。具體參數(shù)的結(jié)構(gòu)將在數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)的內(nèi)容中說明。接口傳遞的信息將是以數(shù)據(jù)結(jié)構(gòu)封裝了的數(shù)據(jù)。以參數(shù)傳遞或返回值的形式在各模塊見傳輸。需求規(guī)定傳輸協(xié)議功能需求程序描述:通信雙方都需要遵循一定的數(shù)據(jù)結(jié)構(gòu),而協(xié)議就是定義這樣的標(biāo)準(zhǔn)功能:通過定義通信雙方都需要遵循的數(shù)據(jù)結(jié)構(gòu),使對(duì)方能正常識(shí)別發(fā)送過過去的數(shù)據(jù)結(jié)構(gòu)體。性能:局部程序相對(duì)獨(dú)立性較高,外部程序只需要在必要的時(shí)候調(diào)用該程序的接口就可以了,因此該程序容易集成,靈活性高;協(xié)議結(jié)構(gòu)體:structFilePackage{ charcmd; //操作命令 intfilesize; //每次傳輸數(shù)據(jù)包大小 intack; //標(biāo)志位 charusername[50]; //客服端用戶名 charfilename[125]; //傳輸文件名 charbuf[1024]; //傳輸文件的元數(shù)據(jù)}; 打包函數(shù):structFilePackagepack(chartCmd,char*tBuf,char*tFilename,inttFilesize,inttAck,intcount,char*uname){ structFilePackagetPackage; tPackaged=tCmd; memcpy(tPackage.buf,tBuf,count); strcpy(tPackage.filename,tFilename); strcpy(tPackage.username,uname); tPackage.filesize=tFilesize; tPackage.ack=tAck; returntPackage;}流程邏輯:當(dāng)接收到協(xié)議包的時(shí)候,調(diào)用解析函數(shù)解析出有效數(shù)據(jù),當(dāng)要發(fā)送數(shù)據(jù)的時(shí)候調(diào)用封包函數(shù)將要發(fā)送的數(shù)據(jù)封裝到協(xié)議包。接口:提供的接口:structFilePackagepack(chartCmd,char*tBuf,char*tFilename,inttFilesize,int tAck,intcount,char*uname) //打包函數(shù)structFilePackageunpack(SSL*,structFilePackage);//解包函數(shù)數(shù)據(jù)包c(diǎn)md&ack具體設(shè)計(jì):登陸:Cmd:L效勞器發(fā)送數(shù)據(jù)包的ACK:0用戶名或密碼錯(cuò)誤 1登陸成功 2客戶端最大連接數(shù)客服端發(fā)送數(shù)據(jù)包的ACK:9登陸效勞器下載:Cmd:D效勞器發(fā)送數(shù)據(jù)包的ACK:0接受下載,返回待下載文件大小 2開始下載 4下載完畢客服端發(fā)送數(shù)據(jù)包的ACK:9請(qǐng)求下載 3接受完畢 上傳:Cmd:U效勞器發(fā)送數(shù)據(jù)包的ACK:0接受上傳請(qǐng)求 1本地磁盤空間缺乏 3接收完畢客服端發(fā)送數(shù)據(jù)包的ACK:9請(qǐng)求上傳,上傳文件大小,文件名 2開始上傳文件 4上傳完畢顯示文件列表:Cmd:S效勞器發(fā)送數(shù)據(jù)包的ACK:1第一個(gè)顯示文件列表客服端發(fā)送數(shù)據(jù)包的ACK:9請(qǐng)求顯示1.8.2效勞器 功能描述:實(shí)現(xiàn)連接用戶的驗(yàn)證,實(shí)現(xiàn)多用戶連接,日志管理,配置文件,管理 員和用戶賬號(hào)申請(qǐng),完成和用戶端命令的交互。 流程介紹:首先管理員登陸效勞器,效勞器驗(yàn)證成功后效勞器進(jìn)行相關(guān)初始化工作, 然后效勞器產(chǎn)生2個(gè)線程,一個(gè)菜單線程,顯示菜單操作列表,線程建立socket套接字,監(jiān)聽網(wǎng)絡(luò),等待客服端連接,當(dāng)有一個(gè)客戶端發(fā)來連接請(qǐng)求時(shí),線程管理會(huì)自動(dòng)為其分配一個(gè)線程處理此客服端的連接請(qǐng)求,然后通過用戶管理對(duì)其輸入的用戶名和密碼進(jìn)行驗(yàn)證,驗(yàn)證通過后,那么接收客戶端命令請(qǐng)求,進(jìn)行解析,并處理相應(yīng)的操作,針對(duì)用戶的每一種操作,將其行為存放到日志文件中,其中客服端與效勞器之間通信時(shí)采用OpenSSI進(jìn)行加密傳輸,在效勞器運(yùn)行時(shí)可以設(shè)置客戶端最大的連接,增加管理員,增加用戶等配置信息,效勞器自動(dòng)生同用戶名的目錄,用戶在自己的目錄下進(jìn)行相關(guān)操作。 相關(guān)接口:效勞器初始化voidInitAU(); /*將文件中管理員/用戶的帳號(hào)信息讀入數(shù)組*/intInitMaxClientNum(); /*初始化客服端最大連接數(shù)*/線程創(chuàng)立pthread_create(&controlId,NULL,(void*)mainMenu,NULL)//菜單線程pthread_create(&mainId,NULL,(void*)mainThread,NULL)//socket線程處理客服端線程pthread_create(&id,NULL,(void*)process,ssl);效勞器接受/發(fā)送數(shù)據(jù)包SSL_read(NewFd,&buff,sizeof(structFilePackage));SSL_write(NewFd,&sendPackage,sizeof(structFilePackage));效勞器打包/解包函數(shù)structFilePackageunpack(SSL*NewFd,structFilePackagetpack); structFilePackagepack(chartCmd,char*tBuf,char* tFilename,inttFilesize,inttAck,intcount,char效勞器加密傳輸相關(guān)函數(shù)SSL_library_init();/*SSL庫初始化*/OpenSSL_add_all_algorithms();/*載入所有SSL算法*/SSL_load_error_strings();/*載入所有SSL錯(cuò)誤消息*/SSL_CTX_use_certificate_file(ctx,temp=strcat(pwd,"/cacert.pem"),SSL_FILETYPE_PEM)/*載入用戶的數(shù)字證書*/SSL_CTX_use_PrivateKey_file(ctx,temp=strcat(pwd,"/privkey.pem"),SSL_FILETYPE_PEM)/*載入用戶私鑰*/1.8.3客戶端功能描述:實(shí)現(xiàn)客戶端與效勞器的文件下載和上傳并且openssl傳輸加密,客服端實(shí)現(xiàn)多線程,允許一個(gè)客服端同時(shí)從效勞器下載或上傳多個(gè)文件。流程介紹:首先使用效勞器新建一個(gè)賬號(hào),然后即可以利用客戶端進(jìn)行登陸,進(jìn)行本地目錄操作與上傳下載。相關(guān)接口:1〕連接函數(shù)intconnectto(intargc,char*args[]);//與效勞器建立連接2〕用戶登陸函數(shù)intlogin(charusername[],charuserpasswd[]);3〕用戶主菜單函數(shù)voidmainMenu();//主菜單4〕顯示客戶端,效勞器目錄與切換客戶端目錄操作voidShow(chartemp[100]);5〕上傳函數(shù)intUpdateF(); 6〕下載函數(shù)intDownloadF(); 7〕上傳函數(shù)intUpdateF();8〕SSL相關(guān)初始化函數(shù)/*SSL庫初始化*/SSL_library_init();/*載入所有SSL算法*/OpenSSL_add_all_algorithms();/*載入所有SSL錯(cuò)誤消息*/SSL_load_error_strings();/*以SSLV2和V3標(biāo)準(zhǔn)兼容方式產(chǎn)生一個(gè)SSL_CTX,即SSLContentText*/ctx=SSL_CTX_new(SSLv23_server_method());/*也可以用SSLv2_server_method()或SSLv3_server_method()單獨(dú)表示V2或V3標(biāo)準(zhǔn)*/1.8

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論