摘 要: 介紹了常見的三種電子作業(yè)上傳方式,分析了這三種方式的不足之處,并提出了解決辦法,同時(shí)設(shè)計(jì)和實(shí)現(xiàn)了相應(yīng)的作業(yè)上傳管理軟件。該軟件分為三個(gè)子模塊:學(xué)生作業(yè)上傳模塊、教師管理模塊和配置文件加密模塊。該軟件經(jīng)過兩年的使用,結(jié)果證明可以有效地避免電子作業(yè)抄襲現(xiàn)象,提高了學(xué)生的作業(yè)質(zhì)量,減輕了教師的工作量,達(dá)到了預(yù)期目的。
關(guān)鍵詞: 作業(yè)上傳; 管理系統(tǒng); C/S模式; FTP
中圖分類號(hào):TP315 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2013)11-74-03
0 引言
我院旅游電子商務(wù)和酒店信息管理專業(yè)的課程主要由旅游軟件開發(fā)技術(shù)、數(shù)據(jù)庫技術(shù)等骨干課程和多門選修課程組成,根據(jù)高職院校的特點(diǎn),教學(xué)形式主要采用課堂講授和機(jī)房實(shí)驗(yàn)相結(jié)合,必修課和選修課均是如此,學(xué)生在每次機(jī)房實(shí)驗(yàn)結(jié)束后,均需要將當(dāng)堂課的作業(yè)以文件形式提交給教師,供教師批改和打分。過去,學(xué)生提交作業(yè)主要有以下幾種方式[1]。
⑴ 文件夾共享方式
這種方式最簡(jiǎn)單,只需要將教師機(jī)的某一文件夾設(shè)為共享,然后再指定共享連接數(shù),學(xué)生把作業(yè)直接復(fù)制到共享文件夾即可。但這種方式也最容易導(dǎo)致抄襲作業(yè):因?yàn)闄?quán)限完全開放,學(xué)生可以把其他同學(xué)的作業(yè)復(fù)制到自己機(jī)器上,然后修改后再復(fù)制到共享文件夾,“輕松”地抄襲作業(yè);另外,由于共享文件夾有固定連接數(shù)的限制,如果有些同學(xué)打開共享文件夾后,不及時(shí)關(guān)閉,占用連接不釋放,會(huì)導(dǎo)致其他同學(xué)不能打開共享文件夾。
⑵ 電子郵件提交作業(yè)方式
這種方式需要機(jī)房連接互聯(lián)網(wǎng),學(xué)生直接將作業(yè)通過電子郵件的方式發(fā)送至教師信箱,教師每次上完課,要打開信箱,下載學(xué)生的作業(yè),并按照班級(jí)進(jìn)行分類,存儲(chǔ)在本地計(jì)算機(jī)中,操作比較麻煩。這種方式和文件夾共享方式一樣,無法避免抄襲作業(yè):如學(xué)生A完成作業(yè)發(fā)給教師,同時(shí),發(fā)一份作業(yè)給學(xué)生B,學(xué)生B把作業(yè)修改一下,再發(fā)給教師,即可以“輕松”抄襲作業(yè)。
⑶ FTP方式
這種方式似乎比較好,學(xué)生借助瀏覽器即可完成作業(yè)的提交;實(shí)現(xiàn)起來也很容易,只需架設(shè)FTP服務(wù)器即可。但是,最大的問題仍然是無法完全防止學(xué)生“抄襲”作業(yè)。在每次的隨堂實(shí)驗(yàn)中,一般不方便給每個(gè)學(xué)生都分配一個(gè)賬號(hào),而是采用統(tǒng)一的賬號(hào)和密碼,雖然操作上方便,但是,所有學(xué)生都可以看到其他同學(xué)上傳的作業(yè),也可以下載別人的作業(yè),然后修改后作為自己的作業(yè)上傳,這樣就可以直接抄襲作業(yè);有些學(xué)生惡作劇,故意刪除別人的作業(yè)。雖然可以通過權(quán)限設(shè)置,防止刪除和下載,但也造成學(xué)生不能對(duì)自己以前上傳的文件進(jìn)行修改,如果要上傳修改后的文件,只能臨時(shí)請(qǐng)教師開放權(quán)限,這樣操作非常不方便。另外,權(quán)限設(shè)置不能防止學(xué)生主動(dòng)“幫助”式的抄襲方式:如學(xué)生A自己上傳作業(yè)后,把文件名改成學(xué)生B的姓名,再上傳一次,就可以輕松騙過服務(wù)器,提交了A、B兩個(gè)人的作業(yè)。
總之,以上三種作業(yè)提交方式都存在不少缺點(diǎn),無論對(duì)于學(xué)生還是教師使用起來都不方便,更主要的問題是很難避免學(xué)生互相抄襲作業(yè)。本文設(shè)計(jì)和實(shí)現(xiàn)一種基于C/S模式的電子作業(yè)提交工具軟件,可以解決以上問題,并且可以避免學(xué)生抄襲作業(yè)。
1 系統(tǒng)設(shè)計(jì)
1.1 設(shè)計(jì)思路
本文采用的防止學(xué)生抄襲作業(yè)的方式是,上實(shí)驗(yàn)課時(shí),學(xué)生座位固定,將學(xué)生與其使用的計(jì)算機(jī)的網(wǎng)卡物理地址綁定,因?yàn)榫W(wǎng)卡的物理地址是全球惟一的,所以可以把網(wǎng)卡的物理地址作為提交作業(yè)者的身份識(shí)別標(biāo)志。具體的算法思路是:對(duì)于通過A網(wǎng)卡提交的文件,首先在數(shù)據(jù)庫中查找該網(wǎng)卡是否是首次提交文件,如果是首次提交,則直接通過FTP服務(wù)器上傳文件,如果不是首次提交,則先刪除原來提交的文件,再將新文件上傳至服務(wù)器,這樣即可以防止學(xué)生幫別人上傳作業(yè),也不禁止學(xué)生重新上傳自己的作業(yè):假設(shè)A同學(xué)已經(jīng)上傳自己的作業(yè),如果他將文件改為B同學(xué)的上傳,則根據(jù)前述算法,會(huì)刪除A同學(xué)之前上傳的作業(yè),再將改過的作業(yè)提交到服務(wù)器,所以A同學(xué)“幫助”B同學(xué)結(jié)果是:自己的作業(yè)被刪除,只剩B同學(xué)的作業(yè)。但如果A同學(xué)只是重新提交自己的作業(yè)則無妨,算法只是刪除了A同學(xué)之前的作業(yè),新提交的作業(yè)會(huì)繼續(xù)保留在服務(wù)器上。
根據(jù)算法思想,前臺(tái)程序使用Delphi開發(fā),數(shù)據(jù)庫系統(tǒng)采用MySQL,設(shè)計(jì)和實(shí)現(xiàn)了一套管理信息系統(tǒng),可以對(duì)學(xué)生提交的作業(yè)進(jìn)行有效的管理。
雖然快速開發(fā)工具Delphi目前已經(jīng)不流行了,但本次開發(fā)還是了選擇Delphi,其原因主要是:Delphi可以直接編譯生成原生機(jī)代碼,而不是虛擬機(jī)代碼,所以可以在Windows操作系統(tǒng)下直接運(yùn)行,不需要像Java和C#那樣事先安裝虛擬機(jī)環(huán)境,學(xué)生只要把軟件拷貝到學(xué)生機(jī)就可以直接運(yùn)行,非常方便。并且Delphi編譯器采用了條件編譯和選擇鏈接技術(shù),使用它生成的執(zhí)行文件更加精煉,運(yùn)行速度更快。
在開發(fā)管理信息系統(tǒng)應(yīng)用程序時(shí),對(duì)數(shù)據(jù)庫的操作是必不可少的,所以先要選擇一個(gè)合適的數(shù)據(jù)庫管理系統(tǒng)產(chǎn)品。對(duì)于學(xué)校來說,選用的數(shù)據(jù)庫最好是免費(fèi)的,這樣可以節(jié)約學(xué)校的經(jīng)費(fèi)。本系統(tǒng)選用了MySQL數(shù)據(jù)庫,MySQL是使用最廣泛的開源數(shù)據(jù)庫系統(tǒng),其突出的優(yōu)點(diǎn)有以下[2-3]。
⑴ 適用面廣,可在多種操作系統(tǒng)上運(yùn)行。
⑵ 性能優(yōu)異,運(yùn)行穩(wěn)定。使用MySQL的成功案例很多,另外MySQL對(duì)硬件性能的要求也不苛刻,完全可以在一般的教師機(jī)上運(yùn)行。
⑶ 性價(jià)比高。MySQL是一個(gè)開源軟件產(chǎn)品,一般非商業(yè)項(xiàng)目均可以免費(fèi)使用MySQL數(shù)據(jù)庫。
1.2 數(shù)據(jù)庫設(shè)計(jì)
1.2.1 表設(shè)計(jì)
如表1和表2所示,這兩張表是系統(tǒng)中最重要的表,用來保存當(dāng)次課的學(xué)生登錄情況和上傳文件情況,每次系統(tǒng)啟動(dòng)時(shí),先將這兩張表的數(shù)據(jù)(前次課的上傳數(shù)據(jù))轉(zhuǎn)移到歷史表中去,然后清空兩張表,以備寫入本節(jié)課的作業(yè)數(shù)據(jù)。另外的表格,限于篇幅,不再詳細(xì)介紹。
1.2.2 存儲(chǔ)過程設(shè)計(jì)
前臺(tái)程序訪問數(shù)據(jù)庫時(shí),如果是簡(jiǎn)單的業(yè)務(wù)操作,盡量利用一條SQL語句完成;如果是需要用多條SQL語句來完成比較復(fù)雜的業(yè)務(wù)操作,一般可以通過MySql的存儲(chǔ)過程來完成,以提高效率[2]。調(diào)用存儲(chǔ)過程時(shí),只需要提供若干個(gè)參數(shù)(有時(shí)也可以不用參數(shù)),就可以在存儲(chǔ)過程中集中完成多條SQL語句,并且在數(shù)據(jù)庫服務(wù)器端直接執(zhí)行完成,可以節(jié)省數(shù)據(jù)在網(wǎng)絡(luò)上反復(fù)傳輸?shù)臅r(shí)間,從而獲得更快的速度,提高業(yè)務(wù)處理效率。另外,存儲(chǔ)過程可以實(shí)現(xiàn)數(shù)據(jù)庫回滾等操作,提高了數(shù)據(jù)的安全性和程序的健壯性。電子作業(yè)上傳管理系統(tǒng)在進(jìn)行數(shù)據(jù)庫操作時(shí),有些SQL操作在失敗的情況下,需要進(jìn)行回滾操作,故在數(shù)據(jù)庫設(shè)計(jì)時(shí),需要引入存儲(chǔ)過程。
例如,清空上節(jié)課的數(shù)據(jù),并將其復(fù)制到歷史表的存儲(chǔ)過程代碼如下:
CREATE DEFINER=`root`@`localhost`
PROCEDURE `SP_Clear`(out v_msg varchar(1))
BEGIN
declare v_error integer default 0;
declare continue handler for sqlexception set v_error =1;
set autocommit =0;
start transaction;
insert into tb_history_rz select * from tb_rz;
delete from tb_rz;
delete from tb_loginfo;
if v_error =1 then
rollback;
else
commit;
end if;
set autocommit=1;
END;
1.3 功能設(shè)計(jì)
1.3.1 配置文件加密模塊
訪問數(shù)據(jù)庫和FTP服務(wù)器的用戶名和密碼以配置文件的形式保存在客戶端,為了不讓學(xué)生看到用戶名和密碼,故不能以明文的形式保存用戶名和密碼,而要先進(jìn)行加密處理。加密功能的界面如圖1所示,手工輸入數(shù)據(jù)庫和FTP服務(wù)器的用戶名及密碼,即可對(duì)明文加密為密文,并可以進(jìn)行預(yù)覽,按下“保存”,可以將密文寫入配置文件。該模塊的加密算法采用DES(Data Encryption Standard,數(shù)據(jù)加密標(biāo)準(zhǔn))算法,這是一種對(duì)稱加密算法,該算法由IBM公司于1975年研發(fā)成功,并公開發(fā)表,其算法思想與第二次世界大戰(zhàn)時(shí)期的德國(guó)恩格瑪密碼機(jī)類似。DES算法屬于密碼學(xué)中的分組密碼算法,DES的分組是64位的,密鑰是56位的(因?yàn)橐サ裘總€(gè)第8位的校驗(yàn)碼)。在DES算法中,用到了兩個(gè)加密的基本技術(shù)[4]:混亂和擴(kuò)散。其基本組建分組是這兩種技術(shù)的組合,同時(shí)密鑰作用于明文,形成輪。DES共有16輪。其設(shè)計(jì)著重于盡可能快地使密文的每一位依賴明文和密鑰的每一位。DES采用了標(biāo)準(zhǔn)的算術(shù)和邏輯運(yùn)算,系統(tǒng)的安全性全由密鑰保證。使用Delphi編程,可以比較方便地實(shí)現(xiàn)DES加密算法[5]。
1.3.2 作業(yè)上傳模塊
學(xué)生先要下載客戶端軟件,如圖2所示,該軟件界面十分簡(jiǎn)單,操作非常簡(jiǎn)單,實(shí)驗(yàn)時(shí),一臺(tái)機(jī)器只允許一個(gè)學(xué)生使用,實(shí)驗(yàn)期間不得隨意更換機(jī)器,以避免學(xué)生互相“幫助”完成作業(yè)。由于電子作業(yè)文件可能很大,所以需要采用FTP方式上傳。由于課程不一樣,所以文件的類型可能是多種多樣的,為了提高效率,要求學(xué)生先將文件壓縮,默認(rèn)文件類型是RAR格式,以學(xué)生的姓名為主文件名,界面中的姓名無需學(xué)生填寫,由系統(tǒng)自動(dòng)從文件名中解析,模塊中使用了nmftp控件,以方便實(shí)現(xiàn)FTP功能。
當(dāng)按下提交按鈕后,執(zhí)行以下算法。
⑴ 獲取本地機(jī)名稱及網(wǎng)卡物理地址。
⑵ 執(zhí)行SQL語句,檢查本地機(jī)是否已經(jīng)提交過文件(通過檢查本地機(jī)的網(wǎng)卡物理地址是否已經(jīng)存在于表中)。
⑶ 如果是首次提交文件,則調(diào)用相應(yīng)的存儲(chǔ)過程,向tb_loginfo表中插入當(dāng)前網(wǎng)卡物理地址、當(dāng)前機(jī)器名、學(xué)生姓名,向tb_rz表中插入當(dāng)前網(wǎng)卡地址、當(dāng)前時(shí)間、文件名。執(zhí)行存儲(chǔ)過程成功后,執(zhí)行FTP控件的上傳文件功能。
⑷ 如果不是首次提交文件,則調(diào)用相應(yīng)的存儲(chǔ)過程,修改tb_loginfo表中的相應(yīng)的學(xué)生姓名,向tb_rz表中插入當(dāng)前網(wǎng)卡地址、當(dāng)前時(shí)間、文件名。執(zhí)行存儲(chǔ)過程成功后,先刪除服務(wù)器已經(jīng)存在的該學(xué)生的文件,然后重新上傳文件。
1.3.3 管理端
管理端模塊如圖3所示。該模塊的主要功能是監(jiān)控學(xué)生上傳作業(yè)。
按下“刷新”按鈕后,從tb_loginfo表讀取信息,并在網(wǎng)格控件中顯示。當(dāng)選中某一行時(shí),則可以顯示相應(yīng)的細(xì)節(jié),上傳次數(shù)是通過統(tǒng)計(jì)tb_rz表中以網(wǎng)卡物理地址為主鍵的相應(yīng)的元組出現(xiàn)的次數(shù)得到的。
2 結(jié)束語
本文所介紹的作業(yè)上傳管理系統(tǒng)已經(jīng)運(yùn)行了兩年,主要為我校電子商務(wù)專業(yè)和酒店信息管理專業(yè),以及全校計(jì)算機(jī)應(yīng)用公共基礎(chǔ)課提供教學(xué)服務(wù)。目前該系統(tǒng)運(yùn)行穩(wěn)定,學(xué)生和教師使用反饋良好,有效地避免了抄襲作業(yè)現(xiàn)象,提高了學(xué)生作業(yè)質(zhì)量,減輕了教師的工作量,達(dá)到設(shè)計(jì)要求。
參考文獻(xiàn):
[1] 劉瑞冰.基于Asp的計(jì)算機(jī)上機(jī)作業(yè)上傳系統(tǒng)研究[J].軟件導(dǎo)刊,2012.12:119-120
[2] 王新宇,陳婕.旅游電子商務(wù)專業(yè)“旅游管理軟件開發(fā)技術(shù)”課程教學(xué)設(shè)計(jì)——以“小型客房管理系統(tǒng)”學(xué)習(xí)情境設(shè)計(jì)為例[J].電子商務(wù),2012.7:78-80
[3] Michael Kofler.MySQL 5權(quán)威指南[M].人民郵電出版,2008.
[4] 王立勝,王磊,顧訓(xùn)穰.數(shù)據(jù)加密標(biāo)準(zhǔn)DES分析及其攻擊研究[J].計(jì)算機(jī)工程,2003.8:130-132