花凌锋,李徐红
(安徽理工大学计算机科学与工程学院,安徽淮南232001)
基于CGI Web框架的作业系统管理模块的设计与实现
花凌锋,李徐红
(安徽理工大学计算机科学与工程学院,安徽淮南232001)
针对基于ASP(Active Server Pages)、JSP(Java Server Pages)技术的作业系统存在的运行占用资源高、管理困难等问题。使用基于C语言的CGI/Fast CGI Web开发框架,探讨并实现了高校作业系统管理模块。实际应用表明,该模块使作业运行效率更高,维护更加方便,对高校教学具有很高的辅助价值。
C语言;快速服务页;sqlite;CGI/Fast CGI Web
随着网络及计算机的高速发展,教师学生对教辅方式的要求也越来越高。作为教学核心之一的作业管理也趋向于更加便捷快速的方式。目前国内外有很多作业管理的相关软件,采用的技术多种多样,如基于JSP、FTP等模式。但大多数作业管理系统主要用于网络学院的远程教学,虽然有部分针对教学中作业管理的软件,但普遍具有功能不全或是操作、维护困难的毛病,针对国内外对教学管理软件的巨大需求和基本要求,一个好的教学管理软件,必须要功能齐全,操作简便,向用户展示友善的操作界面。在完善功能的同时又必须兼顾系统的灵活性,安全性,健壮性。一个好的教学管理系统,不管是计算机专业人员还是其他普通用户都能很快上手,真正实现操作简便、便于维护,功能齐全、安全可靠、容易普及。基于此本文使用基于C语言[4,6-7]的CGI[10]/Fast CGI Web[8]开发框架,设计一套高校作业系统并实现了管理模块。
2.1 程序框架
目前,开发此类系统的技术主要有ASP/ASP.NET、JSP技术。针对本系统的功能需求和性能需求,采用基于C语言的CGI/Fast CGI Web开发框架。该框架以qDecoder、qlibc库和Berkeley模板宏为基础,并加以移植(直至现在qDecoder和qlibc只能运行在Free BSD和linux平台下)改造和扩充,同时又借鉴了Free pascal的fpweb技术。充分地体现了面向对象的思想。
其主要思想是:一个web应用由一系列Web动作构成。即利用对象技术将一个Web应用抽象并封装成一个Web应用类(qwebapp_t)和一系列Web动作类(qwebaction_t)。一个Web应用对象(qwebapp_t的实例)就如同一个任务分发器,根据不同的路径信息,创建相应的Web动作对象(qwebaction_t的实例),并将特定的处理方法赋予该Web动作对象,以处理与路径信息相应的web请求。利用对象的多态特征,由同一个qwebaction_t类实例化的这一系列Web动作对象,拥有不同的方法,以处理不同请求。
因此此技术开发的系统具有体积小、运行环境要求低、速度快、功能强大、风格独树一帜等特点。特别是它的模板技术,非常先进,可以处理任意层嵌套,即模板递归。
2.2 数据库技术
目前,开发系统一般采用ACCESS、SQL SERVER、MYSQL等作为后台数据库,本系统采用的是SQLite数据库,具体原因是因为它具有以下特征。
SQLite[1-2]实现了SQL-92标准中的大部分,包括事务,即包括事务的原子性、一致性、隔离性和持久性(ACID),触发器和多数的复杂查询。不进行类型检查。除此之外,SQLite数据库小巧、灵活还具有可嵌入的特征,总体来说其功能非常强大、实用。
2.3 开发环境
Min GW(Minimalist GNU for Windows),又称mingw32,是将GCC编译器和GNU Binutils移植到Win32平台下的产物,包括一系列头文件(Win32API)、库和可执行文件。它是一个可自由使用和自由发布的Windows特定头文件和使用GNU[9]工具集导入库的集合,允许在GNU/Linux和Windows平台生成本地的Windows程序而不需要第三方C运行时库。
Geany是一个使用GTK+工具包编写、有集成开发环境(IDE)基本特性的文件编辑器。它的目标是提供一个小型快速、依赖软件包较少的集成开发环境。Geany支持许多种程序设计语言,是一个全功能的编辑器,可以运行于Linux、Mac OS、BSD、Solaris和Windows等多种操作系统。它支持基本的语法高亮、代码自动完成、调用提示、插件扩展。支持文件类型:C,CPP,Java,Python,PHP,HTML,Doc Book,Perl,LateX和Bash脚本。
3.1 作业系统管理模块功能设计
作业系统中管理模块的功能体现在后台管理,主要包括以下功能:1)管理员设置院系、班级、课程、任课教师;2)管理员修改教师资料;3)管理员初始化教师口令;4)管理员远程维护系统及模板。具体功能如图1所示。
图1 管理员模块功能结构图
3.2 作业系统管理模块实现
1)教师数据维护模块:教师数据维护模块包括教师数据插入、修改、删除以及口令的初始化几个功能。管理员通过操作访问后台数据库,查看相应的学院所有教师数据。当该学院有新的教师加入,管理员可通过点击插入按钮进入教师数据添加界面,如图2所示,将新教师的学院、工号、姓名及性别数据添加完成后提交,即可生成新的教师数据。当教师的数据需要修改时,可点击修改对教师的相关数据进行修改并提交,如图3所示。数据删除功能可以帮助管理员删除离退教师的信息,保证后台数据的实时准确性,如图4所示。口令重置功能可以帮助教师完成登录口令的重置,当教师忘记密码,无法登录时,管理员可以通过口令重置功能将教师的登录口令重置为其初始密码,如图5所示。
图2 添加教师数据
图3 修改教师数据
图4 删除教师数据
2)模板数据维护模块:该模块主要实现模板数据的维护。作业管理模块的最大优势是管理员可以通过远程进行模板的修改和上传,从而使系统维护起来更加简单易行。当需要改变当前系统显示界面的布局时,管理员访问后台模板,并修改页面显示参数,便可以改变当前系统的显示布局。当系统增加新的功能时,管理员通过访问后台代码文件,进行函数的编写,并上传相应功能函数的显示模板,即可为系统增加新的功能。
图5 口令重置
3)文件管理模块:该模块主要实现对系统中的文件进行管理,系统使用时教师和学生会上传相应的作业文件,日积月累作业文件会越来越多。当教师离职或是学生毕业一定时间后,管理员可以通过此功能对这些冗余数据文件进行删除,保证系统空间充足,运行更加流畅。
4)更改口令命令模块:管理员可以通过此功能对自身登录口令进行更改,方便管理员操作管理系统。
基于C语言的CGI/Fast CGI Web开发框架本文设计实现作业系统管理模块。管理模块的实现不仅能够及时的管理作业系统,解决教师学生在使用时存在的问题。还能通过远程操作实现系统的升级与更改,方便了系统的维护工作。作业系统作为互联网应用于教学中的一大特色作极大地方便教师和学生的工作和学习。管理模块的开发实现是作业系统更加便捷有效的为高校教学工作提供服务。
[1]Grant Allen,Mike Owens.SQLite权威指南[M].杨谦,刘义宣,谢志强,译.2版.北京:电子工业出版社,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版.北京:机械工业出版社,2012:133-148.
[6]sedgewick.算法:C语言实现[M].霍红卫,译.北京:机械工业出版社,2012:9-63.
[7]stephen.C Primer Plus[M].云巅工作室,译.5版.北京:人民邮电出版社,2004:354-376.
[8]Megumi Nishimura.Web应用程序CGI到Web三层系统[M].高敬,译.北京:科学出版社,2012:89-167.
[9]Lincoln Stein.Official Guide To Programming With Cgi.Pm[M]. USA:Wiley,1998:132-265.
[10]Kevin Meltzer.用Perl开发CGI应用程序[M].北京:科学出版社,2006:342-398.
TP311
A
1009-3044(2017)21-0091-02
2017-06-08
花凌锋(1991—),硕士,主要研究方向为数据挖掘,推荐系统。