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