广东财经大学华商学院 谭良舟
教务管理系统性能优化研究
广东财经大学华商学院谭良舟
基于计算机应用的实践与研究,从应用环境、传统优势技术、高新IT技术等角度出发,探讨教务管理系统的性能优化策略。
计算机应用;信息管理系统;教务系统;优化策略
随着信息技术的高速发展,各高校的教学管理也走向了信息化,其中教务系统是最基本、应用最广泛的信息管理系统。然而随着在校学生人数的不断增加,学分制改革的不断推进,历史数据的不断叠加,教务管理系统在处理由于大量学生同时访问而产生的高并发、大流量的数据时,已显露出诸多的瓶颈与局限,严重地影响了学校的教学工作进度,制约了教学管理信息化的发展,有学校投入大量的资金采购新型的硬件设备,希望以此来提高系统的高并发事件处理能力,可是由于系统架构本身就存在缺陷,使得单纯地拓展硬件设施并不能获得系统处理性能的线性提高。因此,应该从软件架构和应用环境出发,结合先进的计算机科学技术和成熟的传统优势技术,探索出一套能支持高并发、响应速度快、分析执行能力强的系统优化策略。
云计算是最新的IT技术之一,它通过把互联网上的计算资源连结起来,形成一个虚拟的超级计算机集群,为用户提供按需即取的计算服务。云计算具有虚拟化、通用性强、超大规模、极其廉价、高可扩展性、高可靠性等特点。把教务管理系统放到“云端”,则可让云中数以百万计的计算机群为教务管理系统提供所需的网络、储存、应用软件、服务器等资源,使各种量大复杂的数据分析和数据处理不会再受牵制于应用环境中可能导致系统瓶颈的软硬条件,不用去担心机房服务器不够、配置不足、版本不高、安全薄弱等硬性条件的不足,更不用去担心维护系统的人力资源、专业技能、费用开支等等,并且始终享有资源充足、高效快捷的系统环境。可是,由于教务系统里含有许多私隐信息,如学生学籍档案、教师信息等等,所以服务器必须处在自己学校可管控的领域,有些甚至还要通过内网隔离,所以在运用云技术之前,必须先准备一套可靠的网络安全方案,或者可以像浙江大学那样建设自己的云计算中心,中心有多个计算集群、数据库集群,提供的服务也是相当稳定的。
选课高峰期出现的系统瘫痪是各大高校常见的顽疾。因为一般选课系统都是将所有的数据库操作语句直接写在应用服务器上,而选课期间的高并发访问需要对数据库进行非常频繁的操作,而此时需要对数据库操作语句进行解析和编译,当有成千上万的人同时选课时,操作数成几何倍数增加,此时CPU的使用率已经是100%,由于遇上系统反应迟滞,用户还会重复地点击,导致服务器无法响应,随着操作用户的增加,等待处理的进程增多,而CPU资源和内存资源无法及时释放,最终导致内存耗尽,服务器瘫痪。针对这种瓶颈,可以把数据库操作语句写成存储过程,将一个或多个SQL操作语句写成一个代码块发送给服务器,在运行这些操作语句之前,数据库就已经对其进行了解析与编译,并得出了优化后的执行方案。由于这个过程很大一部分工作就是对操作语句进行解析与编译,而这些工作在前期已经完成,所以这种已经编译好的过程可以以极快的速度执行,提高了系统的性能。PL/SQL(Procedural Language/SQL)就是一个很好的过程性语言,用于从各种环境中访问Oracle数据库。与SQL相比,PL/SQL可以通过增加变量、类型、过程、循环控制结构等,在其它过程性语言中进行结构的扩展,从而达到优化数据库运行的目的。总的来说,存储过程有如下优点:(1)一般情况下数据库要执行一个动作,需要先进行编译,然后再执行。而存储过程则是把动作写成一组已经编译过的代码,所以执行速度比普通的数据库语句要快得多。(2)由于存储过程是将一大堆SQL语句组合成一组语句块来进行传输的,所以在网络传输过程中能降低网络通信量,提高传输速度。(3)存储过程可以避免没有权限的用户直接访问数据库,而改为在控制下间接地访问数据库,从而提了数据的安全性。
有统计表明,单纯地对硬件或者其他外部条件入手进行优化所获得的性能提升,只能占到所有优化的40%左右,而其他60%则需要对系统内部包括软件架构进行优化。对教务管理系统的优化同样可以从应用程序的框架搭建来展开,选用一个最合适的多层体系框架可以获得不俗的优化效果。不熟悉软件架构搭建的朋友可以从SSh(struts+spring+hibernate)入手,虽然现在做Java web的基本都没使用SSh了,但是作为入门来说SSH仍然是不二之选。从SSH出发,再拓展到其他如Spring MVC+Ibatis/MyBatis+Oracle等,研究一套最适合本校系统的软件架构。SSH框架中,Struts 主要做控制操作,就是页面请求到Struts的Action,在Action中接收请求数据并且处理,然后返回结果再应答给JSP页面,Struts就是一个很完美的MVC结构的开发框架。Spring的主要技术是IOC和AOP(依赖注入和面向切面),IOC技术主要是帮助类初始化和实例化,并且在Spring中每个类都可以有对应的Bean,在配置文件中,然后把Bean逐层注入到其他应用类。AOP技术主要是做事物处理,一般声明式事物和编程式事物较通用。Hibernate:就是数据持久化,将数据库中的表映射为相应的实体,以便对实体的操作。在这里struts担当控制器,就好比你要做车去深圳,要先跟售票员买票,拿到票后才能去坐车,struts就是售票员,它接到你的请求之后就去Hibernate那里取票,然后再给你票,spring就是车站的保安,负责管理买卖票,像struts担任控制器的有(struts1/2,webwork,servlet,JSF),Hibernate处理后台(增删改查)和JDBC,类似的框架有JPA,spring管理,依赖注入/AOP 事物等等。在教务管理系统中采用这种框架为系统提供了一个更高级的应用程序体系架构,使系统具更高的可靠性、扩展性和可维护性。
虚拟化技术(Virtualization)是将各种计算机资源如CPU、内存、硬盘、服务器等进行虚拟扩展的一种技术。例如把一台计算机虚拟为多台计算机,每台虚拟计算机又可以运行各自的应用程序,而各台计算机和各个应用程序之间又是相互独立运行,互不干扰的,这样就得以打破物理架构的限制,扩展了原有的软硬件环境,使用户可以更充分地运用这些资源。针对教务系统,我们可对其进行硬件虚拟化和软件虚拟化。在硬件方面,可选取在高并发事件中仍有空闲资源的服务器进行虚拟化,如VMware Workstation,Xen,KVM等虚拟化产品都具有较为成熟的虚拟化技术方案,对这些服务器进行虚拟化使这些空闲资源可以用到其他进程上,缓解了系统的压力。另外,我们不仅可以挖掘利用服务器的剩余空闲资源,还可以对旧设备进行再利用,节约了硬件设备的资金投入同时还实现了现有资源的充分利用。虚拟化技术可以使不同配置不同版本的服务器设备在虚拟的运行环境中得到统一,使他们能够相互兼容,共同协作,从而优化了整个硬件环境。在软件方面,可以在操作系统层面增添虚拟服务器功能,如Oracle数据库运行的操作系统Solaris,就可以采用Solaris Container技术,它将Solaris系统虚拟化为多个虚拟系统,每个系统都运行着独立的用户账户和应用程序,他们都拥有独立的资源,运行着相互独立的Oracle数据库,这就相当于有多个数据库在同时运作,从而提高了整个系统并发处理事务的能力。
内存的读写速度要远远快于硬盘等存储媒介,有报告称内存的读取速度比硬盘快一万多倍。在内存资源有剩余的情况下,运用Oracle缓存技术把在选课期间需要频繁访问的、数据量比较少的目标表(如choose_credit,choose_need_course等)存放在Oracle自身管理的内存中,避免了文件系统的I/O,提高了数据的访问速度,因而提高了系统的响应时间。特别是在集中选课期间,小的目标数据库表通常是每个学生选课时需要访问的选课条件和参数,利用缓存技术来提高响应时间是非常必要的。采用以下命令将表缓存到Oracle内存中,如把Choose_credit放入内存中。使用语句alter table choose_credit storage(buffer_pool keep)。在进行全校性选课或者其他会造成访问量突增的活动前,采用这一缓存技术,将需要经常访问到的数据量比较少的目标表预先存放在内存里,则可以大大地提升系统的响应速度。
教务管理系统的优化建设,能在缓解高并发事件顽疾的基础上,推进学分制改革等新型的高校人才培养模式,进而全面提高教学质量,推动我国教育事业的发展。所以,完善和优化教务管理系统,是推进高校质量工程和教学改革工程必不可少的一个重要环节。
[1]高杰欣.教务系统应用瓶颈及优化策略研究[J].中国管理信息化.
[2]谭艳.高校教务管理系统优化方案研究[D].南华大学.
[3]蔡炳跃.教务管理系统的系统管理设计和性能优化研究[D].厦门大学.