郭 昊
(安徽审计职业学院, 安徽 合肥 230601)
本文主要是从大数据的研究和处理方面出发,设计与实现一个教学管理系统中学籍管理模块,包括Windows客户端、网页客户端和与其配套的服务器端程序的设计与实现。对于本系统的客户端程序,就是在Windows操作系统上面运行的应用程序,成果直观表述为EXE后缀的Windows平台可安装程序。服务器主要是架设在Apache tomcat网络服务器上面的实时监控程序;它是一个网络服务提供端,负责处理客户端的各种请求,做相应的操作,返回对应的结果(如本系统的接收处理图片返回命中结果、修改用户密码和接收软件更新等操作)。主要研究内容集中在对于大量的学籍管理任务和数据的处理方面。
主要特色就是服务器端所采用的是处理大数据的分布式系统,在提高效率的同时,最大限度地加速了教育管理系统的现代化和信息化。
对于本系统现阶段客户端选择了普及率最高的Windows作为系统平台,之后按需求会发展移动端的客户呈现,Windows系统是美国微软公司的起家和代表产品,自从1985年面世以来,版本不断更新,现已经遍及世界。总的来说,主流系统还是Windows。另一方面,由于各方面现实原因,学校的系统也基本上全部都是Windows,综合上述的原因,客户端的设计选择在Windows上运行,之后会进一步根据市场需求开发支持移动端的产品[1]。
客户端应用程序,运行在Windows平台的可执行程序,让用户来进行登陆、增、删、改、查、分析等各种操作。
网页格式客户端,客户端的网页格式呈现,主要提供诸如学生选课系统、教师开课系统等等,因为在浏览器上面实现,从而提供了一定的跨平台性。
服务器端程序,对于客户端的各种请求进行监控和处理,向客户端反馈各种信息。同时服务器端还有一个很重要的功能就是提供对大量数据的存储和管理。本系统采用分布式的模式来实现服务器端。
本系统中主要采用的技术如表1所示。
表1 本系统开发需要的技术一览表
早已步入信息社会的今天,学校的教学管理也迫切需要一个完善实用的教学管理系统来实现信息化。同时本系统是在学校学生数量庞大、教务工作繁杂、教务人员数量有限等大环境之下,进一步提高效率和解决问题、处理大量的数据下应运而生的,伴随而来的是使得教育系统向信息化更进一步。
本系统功能,主要包括登陆界面功能、管理员相关功能、教师登陆功能、学生登陆功能等。
教学管理系统的输入主要为各种信息查询的条件和信息的录入,准确度方面有较高的要求,所以一部分的输入将采用选择输入的方式,比如使用下拉列表来选择输入时间和日期,使用课程表选择来输入年级、课程等,这样易于输入,更加易于服务器端的查询。
对于系统输出,各个查询结果有着严格的输出格式规范。按照设计的统一规范进行终端显示。同时报表格式也是完全按照标准格式来进行设计实现[1,3]。
本系统的操作人员,一般都需要处理大量的繁杂的教务、教学工作,因而本系设计完成之后,自然就需要在短短的几秒内处理完成所有的请求并且将结果反馈给各个客户端。
出于软件维护的需求和各方面性能的保证,软件每天下班之后的一段时间定期检查更新情况,在征得用户同意的情况下(可能为默认自动更新,更新不影响数据),更新软件版本,以提高服务质量。
面向工作在一线的教务人员,操作尽量简单。此软件主要应用于各版本的Windows系统之上,浏览器的支持将跨越各个版本的操作系统,因此也需考虑到各个浏览器兼容性的问题。
其运行过程中需要一些其它的软件或接口进行的配合,如打印机接口的调用等,进而有标准化的需求,整个软件的设计和实现按照主流的标准规范来完成。
管理的文卷和记录:使用专用的JSP管理网址页登录用户的信息、储存在服务器中的教学相关信息、储存在服务器中的用户信息、储存在本地的教学相关缓存信息。
登录用户的账号所带来的服务器端存储压力不会很大,但是由于教学相关的数据量相对较大,所以在部分查询操作的时候,需要在性能上面做优化,同时又占用一定的存储空间,对于此部分数据储存能力要做好分析,并分配给其足够的存储空间。
对于客户端的缓存,我们也设计了一套逻辑来对其进行定期的处理。
本系统采用C/S和B/S共同来完成应用架构,客户端采用Windows平台客户端和浏览器运行同时运行,服务器中的用户等基本数据库使用MySQL来建立、资源等采用Hadoop+Zookeeper+HBase分布式系统来存储和维护管理[2]。服务器与客户端的通信使用HTTP协议传输JSON串的方式来实现。系统包含客户端和服务器端程序,以下是对学籍管理模块进行描述,记录本系统开发中设计的过程,从而了解整个系统的设计过程。
学籍管理模块主要用于学籍的增、删、改、查,配合着不同的权限使用。系统设置模块,用于设置系统的密码、帮助等辅助信息。服务器端包含了数据库支持和对客户端提出的各种需求的处理,同时还包含了分布式的集群资源管理系统。
学生学籍管理系统是教学管理系统中最基本的功能之一,也是最重要的一个功能模块。这个模块的主要参与者为学校教务处的学籍管理人员。初始化程序的过程中学校、院系/部和专业设置、年级的教学计划、学生成绩等基本信息是这个模块需要输入和管理操作的数据。
学生学籍管理模块的流程如图1所示。
图1 学生学籍过程图
设计的功能过程主要为以下几个部分:(1)由系统管理员,按照学生学籍的相关信息,设置相应控制点的控制参数。(2)由教务处学籍管理的相关人员,按照录取学生的班级的基本信息,设置班级信息。(3)由教务处学籍管理相关的人员来按照要求大批量的导入学生的基本信息。(4)由教务处学籍管理员等相关事务的人员,来按照规范初始化学生学籍档案的相应数据信息,初始化学生的学籍和档案等详细信息。(5)由教务处学籍管理员,按照反向学籍异动和反向专业分流的相应资料文档,对在学籍档案创建之前就变化了学籍或者专业等重要信息的学生,保留学籍信息返回设置的功能。比如对于错误的学期操作,在当前的时间,可以随时恢复学生在之前的某个学期中的学籍等信息。
辅修处理将是另外一个要首先设计开发的功能。这个功能也是由教务处学籍管理员和院系/部教务秘书来操作完成的。本功能的主要操作数据有:学校计划、学校信息、院系信息、学生的学籍等各种信息、学生成绩信息、班级年级信息、专业信息等。控制点为由学生报名辅修,包括辅修的各种基本信息,如起始学期学年、持续时间长度等信息。
为这个功能设计的功能步骤如下:(1)由教务处学籍管理员,按照规范来设定辅修课程的报名时间段,设置允许各种辅助操作的说明文档。(2)组织学生网上报名辅修。(3)由学校的学籍管理相关人员,按照技术要求来确定哪些学生报名过了辅修的课程,同时获取这些学生的详细信息,再统计出整体的学生报名某个辅修课的情况(可用于教师的教学规划等)。(4)由学校教务处的学籍管理相关人员或者专业的系统操作人员,按照辅修课程的规定细则来批量审核各个辅修报名的学生是否满足报名条件,是否可以报名。
学籍档案已经存在的情况之下,学校教务人员的主要工作就是在日常的教学管理过程当中对这个学籍档案进行增、删、改、查等各种维护操作来完成相应的事务了。操作者主要是教务处学籍管理人员、院系教务管理的相关人员。其中事前下载的数据包括:学校、学生学籍、院系信息、专业和班级、档案。控制点:学生自己来维护时间区段和信息字段等基本信息。
主要功能过程设计如下:(1)由系统管理员,按照学生学籍的相应操作要求,设置相应的点的参数信息。(2)由相关的维护人员,按照通过权限模块的相应设置,可以开启和关闭指定个人或者群体的权限。(3)由学校教务处的网络平台操作专员或者学籍管理员或院系部门管理相关事务的教务秘书,按照检测档案信息的相应操作说明,检测学生档案信息。(4)组织学生通过网络来进行个人信息数据的增、删、改、查。(5)由教务处相关的学籍管理人员按照修改档案信息修改的相应帮助说明文档,根据学生档案信息查询结果修改学生档案等基本信息。(6)由教务处的网络平台操作专员或者学籍管理员或院系部门的教务秘书,按照学校奖惩标准来进行处理操作,添加学生的奖惩信息。(7)由教务处的网络平台操作专员或者学籍管理员设置异动规定,设置相应控制点的控制参数,开启相应控制点的控制开关。其次就是组织学生在网上申请异动,再按照得到的事务信息处理预计可能会变动的学生,维护变动统计的表格信息,对学生的变动情况进行审核,处理异动学生、打印异动通知。最终,完成这个学籍异动的操作。
系统还包括上报高基表和电子注册信息数据功能、学期报到功能、处理专业分流、预计毕业、毕业审核等小功能点。后期运维的过程中还会对需求进行再发现,对功能进行再设计,最终保证系统的完善性。
我们设计的客户端程序是安装在Windows操作系统之上的,主要为学籍管理人员提供操作便利,其界面和按钮都为方便学籍管理人员操作使用而设计。本系统的客户端系统界面设计的简单大方,通俗易用。
对于学籍管理系统的应用程序,所有的功能几乎都要有权限的控制和管理,整个客户端对于网络的访问,对于各个模块的访问读写,对于资源的下载和上传,都需要在文件表里面申明一下特殊的权限。权限的如此管理也是本系统的一大特色,毕竟权限对于这个存储大量个人、学校、教务重要信息的系统来说,是相当重要的。
登陆界面在所有的功能模块之前,有相应的权限系统支持,各个角色可以有着不同的功能模块的使用权限。登陆通过安全的HTTP协议链接服务器,查找服务器端的数据库,进而判断用户是否为注册用户,以及他们的权限等级。服务器将直接控制这些权限,以有选择的接受某个客户端的某个请求。
主界面采用了方块图标按钮的设计,简洁大方,也方便用户的使用,直接点击即可实现控制。
由于Java系统软件设计的标准化,所有的界面的设计都是在专门的界面文件里面实现的。主界面框架的搭建自然也是如此,将其配置成main.xml。然后在逻辑代码里面对其进行控制。本系统的主界面主要是使用Button来实现的。
基础系统模块诸如主界面,登录和权限功能,设置功能,软件更新功能等。登录权限功能模块是独立于其它的,只有登录了之后才能进行其它的操作,权限认证是所有操作的前提。
学籍管理的实现主要是数据库的实现,具体的数据表如表2所示。
表2 学生信息数据表
系统各项功能设置包括用户的密码修改、软件基本设置、版本查看、帮助文档、软件更新等。
密码修改功能需要服务器端的数据库更新模块的支持,客户端接受用户的两次输入,先对其进行基本的比较,比如密码的安全度(必须包含字母和数字等)进行检查,再对其两次输入是否相同进行比较。当然修改的前提是其原始密码的输入是正确的。
版本查看即为简单的阅读显示软件的版本,这个功能与软件的更新相结合,当用户点击软件更新的时候,软件将向服务器发送请求,申请最新版本的版本号,只要版本不一样,那么就可以进一步确定是否更新。软件也带有自动更新的功能,每次打开软件首次联网的时候,软件都会自动发送一条更新的请求到服务器端。我们用type字段来区分手动更新还是自动更新,type的值为1即为自动更新,type的值为2即为手动点击了更新。若版本不是最新,并且用户确定要更新。那么服务器端返回的将是最新的版本的URL信息,调用系统浏览器的下载功能,完成对最新版本的下载,点击安装,即为更新到了最新的版本。
我们所架设的服务器采用SSH的架构,网络服务器采用apache tomcat,数据库采用功能强大,简单易用的免费软件MySQL和Hadoop分布式数据管理系统。
图2 MVC框架图
Struts框架结构在本系统之中我们通过Struts对Model,View和Controller都设计了符合标准的组件。我们在服务器端创建了各种的ActionServlet类来作为Struts的核心控制器,正如本系统中的IDSearchServlet,LoginServlet,PasswordChangeServlet,StudentSearchServlet,SoftwareUpdateServlet等,都是这个功能。Action,这个类通常由用户提供,在本系统中的各种逻辑处理类就是这个功能,它们主要负责接收来自ActionServlet的请求,并根据这些请求调用该模型的业务逻辑来处理它们,并将处理结果返回给请求方,在本系统中,主要为客户端的各种请求,当然也可以是服务器端的JSP控制网页,具体见图2。
本系统分为服务器端和客户端,客户端运行在Android手机端,服务器运行在普通PC机上面。Servlet和model和view都在服务器PC端,本系统的Client主要即为PC端程序和浏览器。
教学管理系统服务器端:我们将服务器分成了dao和dao的实现包、entity包、servlet包和一些辅助功能包,数据库连接配置文件,jsp服务器端基本查看、管理、测试网页文件。
Entity层,为用户数据结构、图片存放信息的数据结构、视频图片存放信息的数据结构建立的各种类对象。如Student、AdminTeacher、Course等等。
Dao层,为用户数据结构、图片存放信息的数据结构、视频图片存放信息的数据结构等对象对应的对象的各种操作建立的类,即为接口。Daoimpl就是对dao层所建立的各种接口的实现,包含基本的对于图片用户等对象的数据库基本操作。
给出本系统内所使用的每个数据结构的名称、标识符以及它们之中每个数据项、记录、文卷和系的标识、定义、长度及它们之间的层次的或表格的相互关系。文件信息:存储系统中用到的各种文件文档等资源文件,以供查询等使用。用户信息:用户登录时所需要的所有信息,密码修改时需要用到,用户组权限等应用。使用Sqlyog可视化数据库管理软件来在MySQL数据库里面创建。
Hadoop分布式系统的安装也有着自己的一套流程,首先安装Apache Hadoop软件,再安装Zookeeper程序,最后再安装配置HBase程序。运行也是如此。选择Hadoop版本对HBase的部署及不同的Hadoop需要配合不同的Hbase,这个也是在部署系统的时候需要十分注意的内容。
分布式平台安装完成,并且正确运行之后,在Eclipse下配置开发环境。首先在此之前当然是事先安装好JDK,最新版本是1.8+,安装这个版本系列的即可。接下来的第一步是打开Eclipse,创建一个我们自己的Java工程,与普通Java程序不同的就是我们要自己手动将HBase解压后根目录下的各种jar包,包括hbase- 0.94.1-security.jar、hbase- 0.94.1-security-tests.jar和lib子目录下所有jar包添加到本工程的Classpath下。同样按照上面的的操作,将自己所连接的HBase的配置文件hbase-site.xml添加到本工程的Classpath中[3]。
因为HBase自身就提供了各种丰富的Java API,可以轻松地通过这些API来对HBase中的表、数据等各种相关资源进行管理和操作。
对于数据的显示是十分重要的一个功能,用户操作最多也是这个步骤,本代码实现比较简单,主要就是降HBase中HTable内的各种数据,通过遍历、查找和过滤,最后打印出来。
在分布式的数据管理系统中可以完成各种数据的增删改查,进而逐步实现系统。
本系统客户端是为Windows系统的开发,网页版本通过浏览器访问,服务器端代码主要运行在CentOS操作系统之上,开发工具即为开源Eclipse集成开发环境,这个集成开发环境拥有丰富的插件,它提供了一些代码测试的方法。
本部分将使用多种测试方法从各个方面对系统进行全面的测试。试图找出大部分错误和缺陷并修改完成,确保系统顺利发布并且通过验收。我们所主要使用的测试方法如下:白盒测试,黑盒测试,系统测试,用户界面测试等等。
软件测试对于软件质量是最重要的一道把关,表3是需要测试的软件质量属性的测试项。
表3 系统可靠性测试项
对本系统测试主要从软件系统的易用性、可移植性和可维护性三个方面进行了测试。测试用例设计如表4、表5、表6所示。
表4 软件的易用性
表5 系统的可移植性
表6 系统的可维护性
其次,使用黑盒测试的方法测试系统功能是否实现,将应用安装到测试机上。点击所有的按钮,任意的操作,观察系统是否能完成规定的功能或有异常出现。
对业务逻辑和方法采用JUnit3在Eclipse环境中进行单元测试(白盒测试),如果成功,状态条会显示绿色,失败则为红色。
经过一致的商定,移动终端教学管理系统的测试规定通过的标准为测试用例通过率达90%以上。无致命性错误等。服务器端正确的返回信息达到80%以上。
本系统测试失败的标准是:在连接服务器时,图片查询的操作60%不能在5秒钟之内作出响应,视频查询和路口视频查看模块的操作60%不能在15秒之内作出响应,并且系统的B级以上错误达到5个以上。程序运行过程中得出的结果正确率低于80%或者服务器端不提供正常的服务。
教学管理系统通过完整的测试之后,发现了一定量的错误,大多是低级别的错误,通常易于修复,并且已经予以修复。所以,该系统可以交付验收并使用。
综上所述,按照软件项目设计的规范,从需求分析、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护等步骤全程描述教学管理系统中学籍管理模块的生命周期,并做深入的研究和探讨,给出解决方法。经过完整的测试与试用,该系统稳定可靠。