何俊 嚴宏偉
摘 ?要: 按照網(wǎng)上作業(yè)平臺系統(tǒng)實現(xiàn)目標,完成了系統(tǒng)功能性需求分析。對文件的數(shù)據(jù)庫方式存儲和文件系統(tǒng)方式的存儲進行了比較,并分析、設計了本系統(tǒng)的存儲結構。完成了數(shù)據(jù)庫概念模型設計和數(shù)據(jù)表物理模型設計,詳細給出了數(shù)據(jù)庫關系圖。設計并實現(xiàn)了基于Internet的課程網(wǎng)上作業(yè)子系統(tǒng)、個人網(wǎng)絡硬盤子系統(tǒng)、課程資源庫共享等子系統(tǒng)。該系統(tǒng)已經應用到日常的教學管理中,并取得了不錯的效果。
關鍵詞: ASP.NET; Sql Server; 網(wǎng)上作業(yè); 網(wǎng)絡存儲; 課程資源庫
中圖分類號:G202 ? ? ? ? ?文獻標志碼:A ? ? 文章編號:1006-8228(2015)07-29-04
Design and implementation of Web-based online homework platform
He Jun, Yan Hongwei
(School of Computer & Technology, The national demonstration center, Soochow University, Suzhou, Jiangsu 215006, China)
Abstract: This paper analyzes the system functional requirements according to the goal of the online homework system, compares the storage of files in the database system with the storage of files in the file system, and designs the storage structure of the system. This paper completes the system overall functional design, the database conceptual model design and physical model design. After the technical research and analysis on the online homework system, this paper designs and implements an Internet based online course operation subsystem, personal network hard disk subsystem, curriculum sharing database subsystem. At present, the system has been applied to the daily teaching management, and achieved a good result.
Key words: ASP.NET technology; Sql server; online homework; design; Web disk; curriculum sharing database
0 引言
隨著Internet和多媒體技術的發(fā)展,學生提交作業(yè)的形式多種多樣,可以是文本文件、圖形圖像文件,甚至是音頻視頻等文件。以往經常采用的通過發(fā)郵件或U盤拷貝的方式已無法適應新的要求,因為通過發(fā)郵件提交作業(yè)的方式存在明顯的局限性:如果學生眾多時,大量郵件會讓教師難以整理,而且有些學生會因為擔心教師沒收到郵件而重復發(fā)送。因此,開發(fā)一個高效的網(wǎng)上作業(yè)平臺,對課程作業(yè)進行科學管理,讓師生能夠利用該平臺便捷地上傳、下載和管理作業(yè),從而提高教學管理水平,具有重要的意義。
結合我校網(wǎng)絡建設和課程教學管理的實際情況,對網(wǎng)上作業(yè)平臺的建設提出如下建議:一是將傳統(tǒng)的項目管理向專業(yè)化方向發(fā)展,以利于系統(tǒng)后期的維護和升級;二是要保證系統(tǒng)的先進性和開放性和操作的一致性;三是采用B/S、三層或多層結構體系,這樣系統(tǒng)負載輕,可擴展性強,維護升級方便;四是便于同高校現(xiàn)有的一卡通系統(tǒng)集成,如考慮用戶身份統(tǒng)一認證等問題。在設計方面,從傳統(tǒng)的面向業(yè)務的設計轉向面向用戶的設計[1]。
1 系統(tǒng)總體設計
1.1 系統(tǒng)功能性設計
根據(jù)網(wǎng)上作業(yè)系統(tǒng)分析需求,得出如圖1功能性模塊圖。
[網(wǎng)上作業(yè)平臺][個人網(wǎng)絡
硬盤系統(tǒng)][文件上傳下載管理][在線壓縮解壓管理][文件共享管理][統(tǒng)計查詢新建管理][其他文件管理等] [網(wǎng)上
作業(yè)系統(tǒng)][在線
考試系統(tǒng)][課程資源
庫系統(tǒng)][Web站點
發(fā)布系統(tǒng)][系統(tǒng)維護\&][網(wǎng)上作業(yè)提交][網(wǎng)上作業(yè)批量下載][在線批閱、反饋][網(wǎng)上作業(yè)備份][作業(yè)發(fā)布管理][試題管理][組卷管理][考試、練習管理][閱卷管理][成績管理] [資源類別管理][資源上傳審核管理][資源下載訪問管理][資源備份管理][站點目錄管理][站點審核管理][站點發(fā)布管理][通知發(fā)布][模塊權限設置][用戶管理][數(shù)據(jù)庫備份][基礎表維護]
圖1 ?系統(tǒng)功能性模塊圖
1.2 系統(tǒng)數(shù)據(jù)庫設計
本系統(tǒng)涉及的主要實體有:用戶(Accounts_Users)、班級(banji)、課程(kc)、網(wǎng)盤(file即個人網(wǎng)盤)、文件共享 (share)、作業(yè)(zuoye)、課程資源庫(resource)、Web站點發(fā)布(publish)、我的收藏(mycollect)、模塊、菜單、角色、權限、基礎表等,主要實體之間的聯(lián)系以及主要實體包含的屬性如圖2所示。
1.3 系統(tǒng)存儲結構分析與設計
網(wǎng)上作業(yè)平臺系統(tǒng)是一個以存儲資源、管理資源、共享資源為中心的平臺系統(tǒng),本系統(tǒng)會有大量數(shù)據(jù)需要存儲和管理,所以必須設計一個科學合理的存儲方案。在考慮系統(tǒng)存儲方案時,首先要詳細研究各類資源存儲結構,在此基礎上考慮系統(tǒng)設計盡量做到科學合理。本平臺以文件系統(tǒng)方式存儲為主,即將具體的各類資源文件以磁盤文件的形式存儲在某個特定目錄下,而將相應的文件信息如:文件名、文件路徑、文件大小、文件類型、創(chuàng)建時間、上傳用戶等信息存儲到數(shù)據(jù)庫對應的表中,便于系統(tǒng)從數(shù)據(jù)庫快速加載信息到界面,而具體瀏覽或下載某文件時,再根據(jù)文件路徑信息訪問該文件,給用戶最佳體驗。例如個人網(wǎng)盤,將文件存儲在特定的以用戶名建立的目錄下,而該文件信息則存儲在file表中,用戶瀏覽網(wǎng)盤時,將從file表中讀取該用戶的全部文件信息,而在實際下載時,通過file表中存儲的路徑信息下載文件。學生上傳的作業(yè)文件則是存放以課程編號和學期信息組成的目錄下,文件信息則存放在zuoye表中。
⑴ 個人網(wǎng)盤存儲設計
我們將具體的單個文件存儲在磁盤目錄中,而將文件信息存儲在數(shù)據(jù)庫中,以提高訪問速度和存儲能力。個人網(wǎng)盤,顧名思義只有自己可以訪問。所以當用戶登錄該系統(tǒng)時(首次訪問前必須先注冊,經管理員審核通過后,方可登錄),必須記錄用戶身份,在file數(shù)據(jù)表中以用戶名為關鍵字,記錄用戶名存儲在Session對象中。另外通過在配置文件中放置個人網(wǎng)盤目錄的公共部分,比如所有的個人網(wǎng)盤文件,均放在E:\WebDisk目錄下,在Web.Config文件中增加配置信息:
⑵ 網(wǎng)上作業(yè)存儲設計
網(wǎng)上作業(yè)存儲同樣采用將具體的單個文件存儲在磁盤目錄中,而將文件信息存儲在數(shù)據(jù)庫中。首先提取出公共目錄存儲在配置文件中,然后將用戶名、課程編號和學期信息,四者合并產生課程作業(yè)目錄,具體產生的目錄順序為:公共目錄+用戶名+課程編號+學期信息,確保目錄不會沖突,同時保證每門課程都有相應的作業(yè)目錄。當學生用戶登錄時,通過用戶名的限定可以保證該用戶只能訪問該用戶下的所有課程作業(yè),而不能訪問其他用戶的課程作業(yè)。而當教師或管理員用戶登錄時,不受目錄的限制,可以根據(jù)數(shù)據(jù)庫中的課程編號訪問該課程下的全部作業(yè),比如一次性壓縮下載某一次的課程作業(yè),或壓縮下載整個學期的作業(yè)等操作[2]。
⑶ 課程資源庫存儲設計
課程資源庫是以收集和共享相應課程資源文件為目的而設計的,課程資源類別眾多,有:視頻、課件、考試、參考、代碼、文獻、教案、事例、復習等等。在設計時,專門設計一張表用于存儲資源類別,便于動態(tài)修改和增加類別。在資源共享頁面中同樣設計了動態(tài)加載資源類別橫向菜單,便于用戶按照資源類別進行訪問。資源存儲的目錄名以公共目錄+課程編號+資源類別編號。在系統(tǒng)中只要限定學生用戶不能刪除資源文件,教師可管理本課程的全部資源權限,對于其他課程的資源只有訪問權,沒有刪除和修改的權限。
⑷ 在線站點存儲設計
在線站點存儲是以提供用戶發(fā)布Web站點為目的進行文件存儲,一個Web站點肯定有許多文件和目錄,因此不可能將全部文件和目錄信息記錄到數(shù)據(jù)庫中。因為多個文件或目錄上傳會有許多問題,所以在上傳站點文件時必須是經過RAR或Zip壓縮的單個文件,在將單個文件上傳到相應的目錄(公共目錄+用戶名)后,系統(tǒng)在服務器端通過winrar軟件自動解壓,然后利用靜態(tài)類Directory的相應方法Directory.GetDirectories和Directory.GetFiles獲取發(fā)布目錄下的全部子目錄和文件展示給用戶。因為在線站點存儲目錄結構是公共目錄+用戶名的方式,可以保證登錄用戶的完全訪問權限,而其他用戶只能瀏覽該目錄和通過web方式訪問該站點而不能進行刪除、修改操作,但需要保證系統(tǒng)管理員具有刪除權限。
⑸ 公告發(fā)布附件存儲設計
教師或管理員經常需要發(fā)布公告信息,可以有附件,所以也涉及到文件存儲的問題,考慮到公告的附件一般只有一個文件,所以我們直接將文件以二進制形式存儲在數(shù)據(jù)庫中。附件上傳時用UploadedFile.PostedFile.InputStream流的方式,再轉換為內存流寫入到數(shù)組中,再將二進制數(shù)組保存到數(shù)據(jù)庫中,下載時用Response.BinaryWrite方法直接將數(shù)據(jù)庫中的二進制文件寫到客戶端即可。
2 網(wǎng)上作業(yè)系統(tǒng)實現(xiàn)
本系統(tǒng)采用asp.net和ajax技術實現(xiàn)全部功能,數(shù)據(jù)庫采用SqlServer2005,編程語言采用C#。下面重點給出網(wǎng)上作業(yè)子系統(tǒng)的具體實現(xiàn)過程。
作業(yè)管理子系統(tǒng)是該課程教學管理系統(tǒng)下的一個功能子系統(tǒng),主要完成從教師布置作業(yè)→學生瀏覽作業(yè)信息→學生上傳作業(yè)→教師、在線批閱或打包下載作業(yè)→作業(yè)批閱、備份、回復信息、統(tǒng)計查詢等一系列的管理工作。
系統(tǒng)在教師布置作業(yè)方面,可通過多種途徑發(fā)布,其中一項創(chuàng)新性的工作是即時通過QQ發(fā)送給學生。目前中國智能手機用戶量全球第一,而在即時通信中,QQ穩(wěn)坐第一。QQ是深圳騰訊公司開發(fā)的一款即時通信軟件,支持文字、語音、視頻網(wǎng)絡通信,支持網(wǎng)絡硬盤、QQ郵箱等功能,并與當前深受廣大網(wǎng)絡用戶喜愛的微信完美結合,能做到信息同步。據(jù)調查,目前大學生中95%以上使用手機QQ聊天。而在網(wǎng)絡教學方面,通過QQ同步發(fā)布作業(yè)功能的網(wǎng)絡教學系統(tǒng)的很少見,因此開發(fā)通過QQ發(fā)布作業(yè)是必要的。要完成在作業(yè)管理子系統(tǒng)中自動發(fā)送QQ信息,必須做到以下幾點:
⑴ 在服務器上安裝QQ2012或QQ2013軟件,申請一QQ號碼,以此號碼登錄;
⑵ 在QQ軟件中,按班級或課程建立QQ群,告知學生按班級或課程加入QQ群;
⑶ 在網(wǎng)上作業(yè)發(fā)布系統(tǒng)中,首先判斷QQ有沒有登錄,如果沒有則通過代碼登錄QQ,然后根據(jù)課程和相應的QQ群進行發(fā)送。主要代碼如下:
System.Net.WebClient _client=new System.Net.WebClient();
//用給服務器發(fā)送消息
String postValues="VER=1.1&CMD=CLTMSG&SEQ="
+DateTime.Now.Ticks.ToString().Substring(7, 7)+"&UIN="
+Application["QQ"].ToString()+"&UN="+msgTo+"&MG="
+msg; //發(fā)送給服務器的字符串
byte[] byteArray=System.Text.Encoding.UTF8
.GetBytes(postValues); //把要發(fā)送的字符串變成字符數(shù)組
try {
byte[]pageData=_client.UploadData("http://tqq.tencent.com:
8000", "POST", byteArray); //向服務器POST數(shù)據(jù),返回包含來自資源服務器的響應的正文
ServerValues=Encoding.UTF8.GetString(pageData);
//將相應字節(jié)數(shù)組轉換為字符串
}
if (ServerValues.Contains("&RES=0")) //QQ信息發(fā)送成功
教師管理課程作業(yè)的一系列流程如圖3所示。
[作業(yè)布置][結束][開始][通過公告欄
布置作業(yè),
可帶附件][通過課程
共享布置
作業(yè)][通過課程資源
庫中的“實驗”
欄布置作業(yè)][通過QQ
群發(fā)布置
作業(yè)][通過郵件布置作業(yè)
][通過頁面上傳][上傳作業(yè)頁面][通過郵件上傳][教師批閱下載頁面][作業(yè)備份][作業(yè)打包下載][在線批閱][作業(yè)統(tǒng)計][批量刪除]
圖3 ?教師作業(yè)管理系統(tǒng)流程圖
在學生上傳作業(yè)模塊中,學生必須選擇正確的課程,因為學生可能有多門課程要上傳作業(yè),如果指定的課程作業(yè)目錄不存在,則自動建立該目錄。然后通過上傳用戶控件完成文件從客戶端到服務器端的上傳,最后將作業(yè)信息寫入數(shù)據(jù)庫,完成整個作業(yè)上傳過程。在教師作業(yè)管理頁面中,通過數(shù)據(jù)庫中zuoye表將自己課程的作業(yè)按第幾次作業(yè)顯示全部學生的上傳文件信息,如果作業(yè)文件格式是word文檔,教師可在線通過PageOffice組件打開該文件,進行批閱,而如果打包下載,可通過循環(huán)獲得作業(yè)文件路徑壓縮所有文件到臨時文件(兼具有作業(yè)備份目的)后,下載到客戶端。教師下載作業(yè)主要代碼如下:
string strPath=Application["KcZuoYeDirBack"].ToString();
//作業(yè)目錄公共路徑
stringstrFileName=course1.kcname+DateTime.Now.ToString
("yyyy-MM-dd");
strFileName+=ddlExperiment.SelectedItem.Text+".rar";
//構造打包下載用臨時文件名稱
List
foreach (int id in lsid)
{ ?string filePath=GetFilePathByid(id);
//根據(jù)作業(yè)ID獲得學生作業(yè)文件存儲路徑
if (Common.WinRAR.RAR(filePath, strPath, strFileName))
//調用壓縮過程將學生作業(yè)壓縮到臨時文件中
}
DownFileByFileName(Path.Combine(strPath, strFileName));
//調用過程下載臨時文件
教師反饋學生作業(yè)信息采用AJAX技術,首先在作業(yè)管理zuoyedown.aspx頁面中利用
3 結束語
本系統(tǒng)現(xiàn)已在蘇州大學計算機學院正式使用,實踐證明,該系統(tǒng)運行可靠,性能優(yōu)秀,能滿足500個用戶同時使用。系統(tǒng)在需求分析過程中,采用了先進的面向對象的分析設計方法,對整個課程作業(yè)管理系統(tǒng)進行需求建模。系統(tǒng)實現(xiàn)了課程教學管理系統(tǒng)的個人網(wǎng)盤管理、教學資源庫管理、課程作業(yè)管理、課程簽到管理。后期還將加入微課、Web開發(fā)課程站點部署平臺,設計開發(fā)學生站點的動態(tài)部署問題,提供學生開發(fā)的asp.net和jsp站點作業(yè)發(fā)布演示平臺,為師生提供更好的交流等應用功能。
參考文獻:
[1] 曾杰.在線作業(yè)系統(tǒng)發(fā)展現(xiàn)狀、問題與建議[J].中國電化教育,
2009.8:106-110
[2] 張棟梁,朱曉珺.基于NET在線作業(yè)管理系統(tǒng)的研究與設計[J].軟件
導刊,2010.9(6):63-64
[3] 楊樹林,基于Web的作業(yè)管理系統(tǒng)的設計與實現(xiàn)[J].北京印刷學院學
報,2004.12(1):12-15
[4] 唐清安.網(wǎng)絡課程的設計與實踐[M].人民郵電出版社,2003.
[5] 楊秀波,李延紅.在線作業(yè)管理系統(tǒng)關鍵功能設計[J].中山大學學報,
2002.41(1)81-83
[6] 張領.ASP.NET項目開發(fā)全程實錄[M].清華大學出版社,2008.
[7] 周穎.網(wǎng)絡作業(yè)系統(tǒng)的設計與實現(xiàn)[D].電子科技大學碩士學位論文,
2003.