花凌鋒,李徐紅
(安徽理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,安徽淮南232001)
基于CGI Web框架的作業(yè)系統(tǒng)管理模塊的設(shè)計(jì)與實(shí)現(xiàn)
花凌鋒,李徐紅
(安徽理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,安徽淮南232001)
針對(duì)基于ASP(Active Server Pages)、JSP(Java Server Pages)技術(shù)的作業(yè)系統(tǒng)存在的運(yùn)行占用資源高、管理困難等問(wèn)題。使用基于C語(yǔ)言的CGI/Fast CGI Web開發(fā)框架,探討并實(shí)現(xiàn)了高校作業(yè)系統(tǒng)管理模塊。實(shí)際應(yīng)用表明,該模塊使作業(yè)運(yùn)行效率更高,維護(hù)更加方便,對(duì)高校教學(xué)具有很高的輔助價(jià)值。
C語(yǔ)言;快速服務(wù)頁(yè);sqlite;CGI/Fast CGI Web
隨著網(wǎng)絡(luò)及計(jì)算機(jī)的高速發(fā)展,教師學(xué)生對(duì)教輔方式的要求也越來(lái)越高。作為教學(xué)核心之一的作業(yè)管理也趨向于更加便捷快速的方式。目前國(guó)內(nèi)外有很多作業(yè)管理的相關(guān)軟件,采用的技術(shù)多種多樣,如基于JSP、FTP等模式。但大多數(shù)作業(yè)管理系統(tǒng)主要用于網(wǎng)絡(luò)學(xué)院的遠(yuǎn)程教學(xué),雖然有部分針對(duì)教學(xué)中作業(yè)管理的軟件,但普遍具有功能不全或是操作、維護(hù)困難的毛病,針對(duì)國(guó)內(nèi)外對(duì)教學(xué)管理軟件的巨大需求和基本要求,一個(gè)好的教學(xué)管理軟件,必須要功能齊全,操作簡(jiǎn)便,向用戶展示友善的操作界面。在完善功能的同時(shí)又必須兼顧系統(tǒng)的靈活性,安全性,健壯性。一個(gè)好的教學(xué)管理系統(tǒng),不管是計(jì)算機(jī)專業(yè)人員還是其他普通用戶都能很快上手,真正實(shí)現(xiàn)操作簡(jiǎn)便、便于維護(hù),功能齊全、安全可靠、容易普及。基于此本文使用基于C語(yǔ)言[4,6-7]的CGI[10]/Fast CGI Web[8]開發(fā)框架,設(shè)計(jì)一套高校作業(yè)系統(tǒng)并實(shí)現(xiàn)了管理模塊。
2.1 程序框架
目前,開發(fā)此類系統(tǒng)的技術(shù)主要有ASP/ASP.NET、JSP技術(shù)。針對(duì)本系統(tǒng)的功能需求和性能需求,采用基于C語(yǔ)言的CGI/Fast CGI Web開發(fā)框架。該框架以qDecoder、qlibc庫(kù)和Berkeley模板宏為基礎(chǔ),并加以移植(直至現(xiàn)在qDecoder和qlibc只能運(yùn)行在Free BSD和linux平臺(tái)下)改造和擴(kuò)充,同時(shí)又借鑒了Free pascal的fpweb技術(shù)。充分地體現(xiàn)了面向?qū)ο蟮乃枷搿?/p>
其主要思想是:一個(gè)web應(yīng)用由一系列Web動(dòng)作構(gòu)成。即利用對(duì)象技術(shù)將一個(gè)Web應(yīng)用抽象并封裝成一個(gè)Web應(yīng)用類(qwebapp_t)和一系列Web動(dòng)作類(qwebaction_t)。一個(gè)Web應(yīng)用對(duì)象(qwebapp_t的實(shí)例)就如同一個(gè)任務(wù)分發(fā)器,根據(jù)不同的路徑信息,創(chuàng)建相應(yīng)的Web動(dòng)作對(duì)象(qwebaction_t的實(shí)例),并將特定的處理方法賦予該Web動(dòng)作對(duì)象,以處理與路徑信息相應(yīng)的web請(qǐng)求。利用對(duì)象的多態(tài)特征,由同一個(gè)qwebaction_t類實(shí)例化的這一系列Web動(dòng)作對(duì)象,擁有不同的方法,以處理不同請(qǐng)求。
因此此技術(shù)開發(fā)的系統(tǒng)具有體積小、運(yùn)行環(huán)境要求低、速度快、功能強(qiáng)大、風(fēng)格獨(dú)樹一幟等特點(diǎn)。特別是它的模板技術(shù),非常先進(jìn),可以處理任意層嵌套,即模板遞歸。
2.2 數(shù)據(jù)庫(kù)技術(shù)
目前,開發(fā)系統(tǒng)一般采用ACCESS、SQL SERVER、MYSQL等作為后臺(tái)數(shù)據(jù)庫(kù),本系統(tǒng)采用的是SQLite數(shù)據(jù)庫(kù),具體原因是因?yàn)樗哂幸韵绿卣鳌?/p>
SQLite[1-2]實(shí)現(xiàn)了SQL-92標(biāo)準(zhǔn)中的大部分,包括事務(wù),即包括事務(wù)的原子性、一致性、隔離性和持久性(ACID),觸發(fā)器和多數(shù)的復(fù)雜查詢。不進(jìn)行類型檢查。除此之外,SQLite數(shù)據(jù)庫(kù)小巧、靈活還具有可嵌入的特征,總體來(lái)說(shuō)其功能非常強(qiáng)大、實(shí)用。
2.3 開發(fā)環(huán)境
Min GW(Minimalist GNU for Windows),又稱mingw32,是將GCC編譯器和GNU Binutils移植到Win32平臺(tái)下的產(chǎn)物,包括一系列頭文件(Win32API)、庫(kù)和可執(zhí)行文件。它是一個(gè)可自由使用和自由發(fā)布的Windows特定頭文件和使用GNU[9]工具集導(dǎo)入庫(kù)的集合,允許在GNU/Linux和Windows平臺(tái)生成本地的Windows程序而不需要第三方C運(yùn)行時(shí)庫(kù)。
Geany是一個(gè)使用GTK+工具包編寫、有集成開發(fā)環(huán)境(IDE)基本特性的文件編輯器。它的目標(biāo)是提供一個(gè)小型快速、依賴軟件包較少的集成開發(fā)環(huán)境。Geany支持許多種程序設(shè)計(jì)語(yǔ)言,是一個(gè)全功能的編輯器,可以運(yùn)行于Linux、Mac OS、BSD、Solaris和Windows等多種操作系統(tǒng)。它支持基本的語(yǔ)法高亮、代碼自動(dòng)完成、調(diào)用提示、插件擴(kuò)展。支持文件類型:C,CPP,Java,Python,PHP,HTML,Doc Book,Perl,LateX和Bash腳本。
3.1 作業(yè)系統(tǒng)管理模塊功能設(shè)計(jì)
作業(yè)系統(tǒng)中管理模塊的功能體現(xiàn)在后臺(tái)管理,主要包括以下功能:1)管理員設(shè)置院系、班級(jí)、課程、任課教師;2)管理員修改教師資料;3)管理員初始化教師口令;4)管理員遠(yuǎn)程維護(hù)系統(tǒng)及模板。具體功能如圖1所示。
圖1 管理員模塊功能結(jié)構(gòu)圖
3.2 作業(yè)系統(tǒng)管理模塊實(shí)現(xiàn)
1)教師數(shù)據(jù)維護(hù)模塊:教師數(shù)據(jù)維護(hù)模塊包括教師數(shù)據(jù)插入、修改、刪除以及口令的初始化幾個(gè)功能。管理員通過(guò)操作訪問(wèn)后臺(tái)數(shù)據(jù)庫(kù),查看相應(yīng)的學(xué)院所有教師數(shù)據(jù)。當(dāng)該學(xué)院有新的教師加入,管理員可通過(guò)點(diǎn)擊插入按鈕進(jìn)入教師數(shù)據(jù)添加界面,如圖2所示,將新教師的學(xué)院、工號(hào)、姓名及性別數(shù)據(jù)添加完成后提交,即可生成新的教師數(shù)據(jù)。當(dāng)教師的數(shù)據(jù)需要修改時(shí),可點(diǎn)擊修改對(duì)教師的相關(guān)數(shù)據(jù)進(jìn)行修改并提交,如圖3所示。數(shù)據(jù)刪除功能可以幫助管理員刪除離退教師的信息,保證后臺(tái)數(shù)據(jù)的實(shí)時(shí)準(zhǔn)確性,如圖4所示??诹钪刂霉δ芸梢詭椭處熗瓿傻卿浛诹畹闹刂?,當(dāng)教師忘記密碼,無(wú)法登錄時(shí),管理員可以通過(guò)口令重置功能將教師的登錄口令重置為其初始密碼,如圖5所示。
圖2 添加教師數(shù)據(jù)
圖3 修改教師數(shù)據(jù)
圖4 刪除教師數(shù)據(jù)
2)模板數(shù)據(jù)維護(hù)模塊:該模塊主要實(shí)現(xiàn)模板數(shù)據(jù)的維護(hù)。作業(yè)管理模塊的最大優(yōu)勢(shì)是管理員可以通過(guò)遠(yuǎn)程進(jìn)行模板的修改和上傳,從而使系統(tǒng)維護(hù)起來(lái)更加簡(jiǎn)單易行。當(dāng)需要改變當(dāng)前系統(tǒng)顯示界面的布局時(shí),管理員訪問(wèn)后臺(tái)模板,并修改頁(yè)面顯示參數(shù),便可以改變當(dāng)前系統(tǒng)的顯示布局。當(dāng)系統(tǒng)增加新的功能時(shí),管理員通過(guò)訪問(wèn)后臺(tái)代碼文件,進(jìn)行函數(shù)的編寫,并上傳相應(yīng)功能函數(shù)的顯示模板,即可為系統(tǒng)增加新的功能。
圖5 口令重置
3)文件管理模塊:該模塊主要實(shí)現(xiàn)對(duì)系統(tǒng)中的文件進(jìn)行管理,系統(tǒng)使用時(shí)教師和學(xué)生會(huì)上傳相應(yīng)的作業(yè)文件,日積月累作業(yè)文件會(huì)越來(lái)越多。當(dāng)教師離職或是學(xué)生畢業(yè)一定時(shí)間后,管理員可以通過(guò)此功能對(duì)這些冗余數(shù)據(jù)文件進(jìn)行刪除,保證系統(tǒng)空間充足,運(yùn)行更加流暢。
4)更改口令命令模塊:管理員可以通過(guò)此功能對(duì)自身登錄口令進(jìn)行更改,方便管理員操作管理系統(tǒng)。
基于C語(yǔ)言的CGI/Fast CGI Web開發(fā)框架本文設(shè)計(jì)實(shí)現(xiàn)作業(yè)系統(tǒng)管理模塊。管理模塊的實(shí)現(xiàn)不僅能夠及時(shí)的管理作業(yè)系統(tǒng),解決教師學(xué)生在使用時(shí)存在的問(wèn)題。還能通過(guò)遠(yuǎn)程操作實(shí)現(xiàn)系統(tǒng)的升級(jí)與更改,方便了系統(tǒng)的維護(hù)工作。作業(yè)系統(tǒng)作為互聯(lián)網(wǎng)應(yīng)用于教學(xué)中的一大特色作極大地方便教師和學(xué)生的工作和學(xué)習(xí)。管理模塊的開發(fā)實(shí)現(xiàn)是作業(yè)系統(tǒng)更加便捷有效的為高校教學(xué)工作提供服務(wù)。
[1]Grant Allen,Mike Owens.SQLite權(quán)威指南[M].楊謙,劉義宣,謝志強(qiáng),譯.2版.北京:電子工業(yè)出版社,2012:139-214.
[2]Jay A.kreibich.Using SQLite[M].USA:O'Reilly Media,Inc, 2010:8-21.
[3]gred numitor CGI informatique[M].USA:Flu press,2012:15-90.
[4]thomas boutell.CGI Programming in C and Perl[M].USA:Addi?son-Wesley EducationalPublishers Inc,1996:15-189.
[5]Kernigham B W,Ritchie D M.C程序設(shè)計(jì)語(yǔ)言[M].李志,徐寶文,譯.2版.北京:機(jī)械工業(yè)出版社,2012:133-148.
[6]sedgewick.算法:C語(yǔ)言實(shí)現(xiàn)[M].霍紅衛(wèi),譯.北京:機(jī)械工業(yè)出版社,2012:9-63.
[7]stephen.C Primer Plus[M].云巔工作室,譯.5版.北京:人民郵電出版社,2004:354-376.
[8]Megumi Nishimura.Web應(yīng)用程序CGI到Web三層系統(tǒng)[M].高敬,譯.北京:科學(xué)出版社,2012:89-167.
[9]Lincoln Stein.Official Guide To Programming With Cgi.Pm[M]. USA:Wiley,1998:132-265.
[10]Kevin Meltzer.用Perl開發(fā)CGI應(yīng)用程序[M].北京:科學(xué)出版社,2006:342-398.
TP311
A
1009-3044(2017)21-0091-02
2017-06-08
花凌鋒(1991—),碩士,主要研究方向?yàn)閿?shù)據(jù)挖掘,推薦系統(tǒng)。