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