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