校園是眾多知識(shí)財(cái)富的產(chǎn)地,年輕的學(xué)者們又總苦惱于資源的有效管理與整合。網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)平臺(tái),是一種推出的在線存儲(chǔ)服務(wù)。向用戶提供文件的存儲(chǔ)、訪問(wèn)、備份、共享等文件管理功能。用戶可以把該平臺(tái)看成一個(gè)放在網(wǎng)絡(luò)上的硬盤或U 盤,不管你是在家中、單位或其他任何地方,只要你連接到因特網(wǎng),你就可以管理、編輯網(wǎng)絡(luò)存儲(chǔ)空間里的文件。
本平臺(tái)服務(wù)器端采用Servlet 來(lái)進(jìn)行業(yè)務(wù)的處理,依靠成熟的HTTP 協(xié)議,響應(yīng)由不同的客戶端發(fā)送的Post 請(qǐng)求和Get 請(qǐng)求,并依靠Servlet 強(qiáng)大的業(yè)務(wù)處理能力形成中間層,實(shí)現(xiàn)前臺(tái)界面響應(yīng)與后臺(tái)數(shù)據(jù)處理的有效結(jié)合。后臺(tái)數(shù)據(jù)處理主要采用以SQL Server2005 作為數(shù)據(jù)支持服務(wù),利用第三方的sqljdbc4 驅(qū)動(dòng),采用面向?qū)ο笤瓌t,將Java 程序與SQL Server 2005 數(shù)據(jù)庫(kù)服務(wù)進(jìn)行高效的連接。采用多線程、多任務(wù)的設(shè)計(jì)思想,在服務(wù)端性能穩(wěn)定的前提下,開發(fā)出Windows終端平臺(tái)的客戶端和Android 移動(dòng)終端平臺(tái)的客戶端。利用Java 的標(biāo)準(zhǔn)Swing 組件開發(fā)出簡(jiǎn)潔美觀以及布局合理的Windows 平臺(tái)客戶端界面。利用Android 提供的SDK 以及My Eclipse 提供的編輯環(huán)境,合理地安排XML 文件的布局以及控件的使用,制作Android 移動(dòng)終端的客戶端界面。從而實(shí)現(xiàn)產(chǎn)品平臺(tái)化,終端多元化的理念,開發(fā)出完整的系統(tǒng)平臺(tái)。
1.關(guān)鍵技術(shù)
1.1 Servlet概述
Servlet是一種服務(wù)器端的Java 應(yīng)用程序,具有獨(dú)立于平臺(tái)和協(xié)議的特性,可以生成動(dòng)態(tài)的Web 頁(yè)面。它擔(dān)當(dāng)客戶請(qǐng)求(Web 瀏覽器或其他HTTP 客戶程序)與服務(wù)器響應(yīng)(HTTP 服務(wù)器上的數(shù)據(jù)庫(kù)或應(yīng)用程序)的中間層。Servlet是位于Web 服務(wù)器內(nèi)部的服務(wù)器端的Java 應(yīng)用程序,與傳統(tǒng)的從命令行啟動(dòng)的Java 應(yīng)用程序不同,Servlet 由Web 服務(wù)器進(jìn)行加載,該Web 服務(wù)器必須包含支持Servlet 的Java 虛擬機(jī)。
1.2 HTTP傳輸協(xié)議
超文本傳送協(xié)議(HTTP) 是一種通信協(xié)議,它允許將超文本標(biāo)記語(yǔ)言(HTML) 文檔從Web 服務(wù)器傳送到Web 瀏覽器。HTTP 工作在TCP/IP 協(xié)議體系中的TCP 協(xié)議上。支持客戶/ 服務(wù)器模式。由于HT鄄TP 協(xié)議簡(jiǎn)單,使得HTTP 服務(wù)器的程序規(guī)模小,因而通信速度很快。
2.系統(tǒng)設(shè)計(jì)
2.1 系統(tǒng)框架
系統(tǒng)主要的功能分為:建立Android 客戶端和Windows 客戶端與服務(wù)器的連接;利用Servlet 響應(yīng)用戶的請(qǐng)求執(zhí)行業(yè)務(wù)的處理,請(qǐng)求包括(上傳文件請(qǐng)求,下載文件請(qǐng)求,共享文件請(qǐng)求);將業(yè)務(wù)的處理結(jié)果回執(zhí)給客戶端。
2.2 業(yè)務(wù)執(zhí)行流程圖
用戶通過(guò)Web 端或者終端發(fā)送相應(yīng)的請(qǐng)求,包括(上傳文件請(qǐng)求,下載文件請(qǐng)求,共享文件請(qǐng)求等),由服務(wù)器端進(jìn)行接收并解析,響應(yīng)用戶的操作請(qǐng)求。用戶發(fā)送文件操作的請(qǐng)求給服務(wù)器端,服務(wù)器端首先對(duì)當(dāng)前用戶身份進(jìn)行驗(yàn)證,對(duì)于不合法用戶服務(wù)器將拒絕請(qǐng)求,并根據(jù)當(dāng)前用戶信息檢索其相關(guān)文件信息,解析用戶的具體請(qǐng)求進(jìn)入相關(guān)的業(yè)務(wù)流程操作,并將用戶的具體操作信息保存至數(shù)據(jù)庫(kù),并回執(zhí)業(yè)務(wù)操作的結(jié)果給用戶,如圖1所示。
圖1 業(yè)務(wù)執(zhí)行流程圖
2.3 服務(wù)器端設(shè)計(jì)
系統(tǒng)服務(wù)器端主要包括兩個(gè)部分:信息顯示模塊和文件操作模塊。信息顯示模塊:該部分主要以JSP頁(yè)面為主,根據(jù)用戶的不同需要,由業(yè)務(wù)處理層檢索數(shù)據(jù)庫(kù)的信息,顯示到JSP 頁(yè)面上供用戶瀏覽。主要流程如圖2所示。
圖2 服務(wù)器端信息顯示流程圖
文件操作模塊:針對(duì)不同的文件操作請(qǐng)求,建立不同的文件操作業(yè)務(wù)流程。主要的業(yè)務(wù)流程有文件上傳、文件下載、文件刪除和文件共享的業(yè)務(wù)。
2.4 Android客戶端功能模塊設(shè)計(jì)
由于Android客戶端與服務(wù)器端共用數(shù)據(jù)庫(kù),且共用相應(yīng)的Servlet 業(yè)務(wù)處理流程。故Android 戶端的功能模塊大體與服務(wù)器端相似,主要有三個(gè)模塊:系統(tǒng)登入模塊,文件操作模塊和文件列表顯示模塊。
系統(tǒng)登入模塊:用戶根據(jù)已分配的用戶名和密碼,進(jìn)行系統(tǒng)的登入?蛻舳藢⒂脩裘兔艽a以POST 的方式投遞于服務(wù)器端驗(yàn)證,服務(wù)器端返回驗(yàn)證結(jié)果?蛻舳烁鶕(jù)結(jié)果進(jìn)行界面的跳轉(zhuǎn)工作或?qū)⒊鲥e(cuò)信息進(jìn)行顯示。
文件列表顯示模塊:服務(wù)器端先將文件列表生成XML 文件,客戶端下載XML 文件并解析,獲取相應(yīng)的數(shù)據(jù)生成文件列表在本地進(jìn)行顯示。
文件操作模塊:用戶在登入系統(tǒng)后選擇文件操作的相關(guān)功能,主要有文件的下載、文件的上傳和文件的共享等操作。用戶選擇文件上傳,客戶端將獲取本地SD 卡的文件列表,用戶點(diǎn)擊相應(yīng)的文件,客戶端將獲取文件的路徑并根據(jù)服務(wù)器指定的URL 進(jìn)行Request請(qǐng)求的封裝,獲取服務(wù)器端的輸入流與客戶端的輸出流進(jìn)行對(duì)接,采用緩沖機(jī)制,以字節(jié)流的形式將客戶端的文件流入服務(wù)器端,服務(wù)器端再將流信息寫入服務(wù)器文件存儲(chǔ)系統(tǒng)進(jìn)行文件的存儲(chǔ)。用戶選擇文件下載,利用文件列表顯示模塊獲取文件列表,用戶選定指定的進(jìn)行下載,客戶端會(huì)根據(jù)用戶指定的文件獲取文件在服務(wù)器端的路徑,再將路徑和用戶信息封裝成URL,獲取服務(wù)器端的輸出流與客戶端的輸入流對(duì)接,客戶端將文件流入本地的SD卡進(jìn)行保存,下載成功后用戶可在本地的主文件夾中查看文件的存在,客戶端會(huì)調(diào)用相關(guān)的系統(tǒng)軟件進(jìn)行打開。
2.5 Windows 客戶端功能模塊設(shè)計(jì)
Windows 客戶端主要模塊有:系統(tǒng)登入模塊,文件下載模塊,文件共享模塊,共享文件列表顯示模塊和已下載文件列表顯示模塊。
系統(tǒng)登入模塊:用戶輸入已分配的用戶名和密碼,系統(tǒng)會(huì)提交至服務(wù)器端進(jìn)行驗(yàn)證,返回驗(yàn)證結(jié)果給客戶端,客戶端對(duì)結(jié)果判定用戶的有效性和合法性,對(duì)系統(tǒng)用戶進(jìn)行系統(tǒng)的登入。
文件下載模塊:用戶選定文件列表中的某個(gè)文件,選擇下載功能,系統(tǒng)獲取文件的相關(guān)信息(文件的服務(wù)器存儲(chǔ)地址,文件名和文件格式),將文件信息封裝成Request 請(qǐng)求提交至服務(wù)器,由服務(wù)器解析并響應(yīng)客戶端的輸入流,與服務(wù)器端的輸出流進(jìn)行對(duì)接,采用字節(jié)流的方式將文件流入客戶端,客戶端再將文件保存至本地。
文件共享功能:用戶選定文件列表中的某個(gè)文件,選擇共享功能,系統(tǒng)會(huì)將文件的相關(guān)信息進(jìn)行封裝提交至服務(wù)器端,由服務(wù)器端進(jìn)行文件共享的業(yè)務(wù)操作,并將共享的結(jié)果回執(zhí)客戶端,客戶端對(duì)服務(wù)器端的結(jié)果進(jìn)行判定,判斷文件是否共享成功。
共享文件列表顯示模塊:對(duì)服務(wù)器端已共享的文件進(jìn)行檢索,并將數(shù)據(jù)封裝成XML 文件,利用文件下載模塊將文件下載至本地客戶端,并采用Jdom 方式進(jìn)行解析,獲取XML 數(shù)據(jù)并將數(shù)據(jù)顯示至文件列表中。已下載文件列表顯示模塊:檢索本地下載的文件夾,獲取已下載的所有文件,獲取文件的名稱和格式,將數(shù)據(jù)填充至列表中進(jìn)行顯示。
3.系統(tǒng)實(shí)現(xiàn)
3.1 文件上傳
文件上傳功能主要利用第三方的組件commons-fileuplOAd 組件來(lái)實(shí)現(xiàn),用戶通過(guò)POST 方式提交表單,交由相應(yīng)的Servlet 來(lái)響應(yīng)和操作。Servlet 獲取到表單的request 請(qǐng)求后,將request 請(qǐng)求交由commons-fileupload組件進(jìn)行解析。Commons-fileupload 解析由Servlet 傳過(guò)來(lái)的request 請(qǐng)求,根據(jù)表單內(nèi)容解析并獲取上傳文件列表,遍歷解析得到FileItem 列表,檢索列表對(duì)象,利用write()方法可將文件對(duì)象以流形式保存到服務(wù)器的指定位置。具體類工作圖如圖3 所示。
圖3 Commons-fileupload 類工作圖
獲取到FileItem 列表后,利用FileItem 對(duì)象將文件轉(zhuǎn)換成流形式,通過(guò)讀取配置文件判斷當(dāng)前文件類型是否被支持上傳以及判斷當(dāng)前文件的大小是否合法,通過(guò)服務(wù)器根目錄和當(dāng)前用戶信息構(gòu)建文件的保存路徑,接著將文件流入指定位置進(jìn)行保存并將文件的信息封裝成實(shí)體對(duì)象,利用數(shù)據(jù)庫(kù)操作對(duì)象將文件的信息保存至數(shù)據(jù)庫(kù)。
3.2 文件下載
用戶通過(guò)JSP 頁(yè)面或客戶端發(fā)送下載請(qǐng)求,Servlet接收請(qǐng)求并解析用戶請(qǐng)求獲取待下載文件的相關(guān)信息(文件名,文件格式,文件在服務(wù)器存放的路徑),根據(jù)指定下載文件所在的服務(wù)器路徑,將其轉(zhuǎn)換成實(shí)際的文件路徑,并利用實(shí)際的文件路徑將文件轉(zhuǎn)換為File對(duì)象,利用FileInputStream 對(duì)象將File 對(duì)象進(jìn)行流封裝,通過(guò)response 對(duì)象獲取客戶端的輸出流對(duì)象,為了提高流傳輸?shù)男,將服?wù)器端的輸入流和客戶端輸出流均使用BufferedInputStream 對(duì)象和BufferedOutput-Stream 對(duì)象進(jìn)行封裝,利用流緩沖技術(shù),將服務(wù)器端的輸入流和客戶端的輸出流進(jìn)行對(duì)接,將服務(wù)器端的文件流入客戶端達(dá)到文件下載的目的。
3.3 文件共享
共享的功能主要包括:共享文件、取消共享,對(duì)于管理員可以強(qiáng)制取消已共享的某文件。功能的實(shí)現(xiàn)主要依靠關(guān)系數(shù)據(jù)庫(kù)的文件息表和共享文件信息表。通過(guò)驗(yàn)證用戶身份,分配文件共享的不同子功能,根據(jù)用戶的請(qǐng)求由不同的Servlet 解析,獲取當(dāng)前操作文件的相關(guān)信息,主要包括文件的路徑、文件的名稱、文件的格式以及文件當(dāng)前共享的狀態(tài)。共享文件時(shí),先判斷當(dāng)前文件是否已經(jīng)被共享,如果未被共享,在文件共享信息表中添加當(dāng)前共享文件的信息并將該文件在文件信息表中的共享狀態(tài)標(biāo)識(shí)為已共享。如果該文件已經(jīng)被共享,則將其取消共享,首先在共享文件信息表中刪除對(duì)應(yīng)該文件的信息記錄并在文件信息表中將文件共享狀態(tài)標(biāo)識(shí)為未共享,即可完成文件的取消共享文件操作。
3.4 文件刪除
用戶執(zhí)行文件刪除操作請(qǐng)求,根據(jù)請(qǐng)求獲取文件的相關(guān)信息(文件名,文件格式,文件在服務(wù)器存放的路徑),判斷文件是否處于共享狀態(tài),若當(dāng)前文件處于已共享狀態(tài),先取消文件的共享,再根據(jù)文件存在的具體路徑先執(zhí)行物理刪除操作,再根據(jù)文件名和用戶編號(hào)在文件信息表中進(jìn)行文件信息記錄的檢索,通過(guò)數(shù)據(jù)庫(kù)操作類執(zhí)行記錄刪除操作。
4.結(jié)束語(yǔ)
Android 的應(yīng)用有著更為廣闊的發(fā)展空間。本系統(tǒng)將客戶端與服務(wù)器端進(jìn)行了有效的結(jié)合,實(shí)現(xiàn)了文件管理的實(shí)時(shí)性,其實(shí)用價(jià)值將會(huì)不斷地被認(rèn)可。而且其開源組件commons-fileupload 的應(yīng)用也使得文件的傳輸效率一步步地被提高。由于本系統(tǒng)為了節(jié)約成本而使用了大量開源技術(shù),而開源技術(shù)不斷發(fā)展更新,因此需要時(shí)刻保持對(duì)最新技術(shù)的關(guān)注,運(yùn)用該領(lǐng)域最新的技術(shù)來(lái)改進(jìn)和優(yōu)化系統(tǒng)設(shè)計(jì)。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:多平臺(tái)網(wǎng)絡(luò)數(shù)據(jù)存儲(chǔ)系統(tǒng)研究與設(shè)計(jì)
本文網(wǎng)址:http://www.ezxoed.cn/html/consultation/10839513370.html