论文部分内容阅读
本文针对Moodle在应用过程中出现的版本间兼容性较差和占用系统资源较大两个问题提出了相应的解决方案。
一、Moodle应用概况
Moodle自诞生之日起就以自由软件的形式出现,遵循GPL(GNU Public License)协议,这给Moodle带来了无穷的活力,吸引了一大批开发者,目前已发展到1.8版本。Moodle以其教学理念先进、功能强大、操作简便、结构设计模块化、支持多种标准、开放源代码等特点深受广大师生的喜爱。受益于软件本身良好的多语言支持特性,Moodle已在世界各地的大学、中学和小学等各种教育机构应用起来。
二、Moodle应用中的问题
Moodle在教育教学中广泛运用的同时也伴随着一些问题,除了其自身功能有待进一步修改和完善之外,版本间的兼容性和占用系统资源的问题也显得比较突出。
1.各版本之间的兼容性问题
Moodle作为一个开放源代码软件,版本更新迅速,功能越来越强大,运行也越来越稳定,但是版本之间的不兼容造成了较大的问题,要享受新版Moodle更加强大的功能,必须付出损失旧版数据的代价。例如,现在各学校使用的Moodle大多是相对新、也相对稳定的1.6版,而前段时间推出了最新的1.8.3版,如果使用Moodle自带的数据导出导入功能,先将1.6版里面保存的课程用户、成绩等数据导出,再导入到1.8.3版的Moodle中,显示为乱码,尤其是在中文版Moodle中,此问题更加严重。
2.占用系统资源的问题
Moodle对系统资源占用很大。对Moodle进行压力测试,在没有加速的情况下,10并发(No thinking time),CPU占用就开始增加到95%,到100并发,响应时间接近10s。因此,如果客户端很多,一般的服务器运行Moodle速度会非常慢。伴随着数据量增多和Moodle功能的不断强大,对服务器的要求也越来越高。如果只是利用Moodle做一个实验性质的站点,则体会不到其性能的局限和对硬件的过高要求,但是在实际部署中,当并发用户超过50人时,Moodle对硬件的要求一般就超出了中小学配备的服务器的档次,导致服务器经常死机。也就是说,如果用Moodle进行网络教学,那么可能无法支持一个班级的正常教学。
三、解决方案
Moodle作为一个正在不断成长、日趋成熟的学习环境,上述两个问题在其实际应用中是不可避免的。我们不能因噎废食,应该在学校现有的条件下,采取积极的应对措施。
1.解决方案
对于Moodle各版本之间的兼容性问题,可以将新版Moodle装到新服务器上,再将旧版Moodle也转移到新服务器上,让两版Moodle并存。在这一段时间里,由管理员和课程教师督促学生逐渐完成旧版Moodle向新版Moodle的过渡。
对于占用大量系统资源的问题,可以在学校经济能力能够承受的条件下,考虑选用更新的、性能更好的Moodle服务器;条件不允许的情况下,可以采用两台或多台服务器分流,适当进行负载均衡。
2.案例实施步骤
以下述案例为例:旧版1.6版Moodle安装在老服务器Server1(IP:10.1.150.4)上,现将1.8.3版新版Moodle安装到新服务器Server2(IP:10.1.150.5)上,并同时高效地运行。具体的实施方案如图1所示。
第一步,在Server1上的mysql中新建一个数据库文件,命名为newmoodle,设置好用户名和密码,作为新版1.8.3版的mysql数据库。这里为了避免混淆,将Server1上原有的旧版数据库文件夹“moodle”重命名为“oldmoodle”(如图2)。
第二步,将新版Moodle安装在Server2上。安装apache和php,下载Moodle安装程序,解压并安装到路径D:/Apprev,同时将新版Moodle的mysql数据库指向Server1上的数据库:安装到选择数据库时,选择刚安装好的mysql服务器的IP地址和指定的账号密码。
第三步,移动Moodle及其数据文件夹。将旧版Moodle移至新服务器Server2上(如图3),而将其mysql数据库文件仍保留在Server1上。再将Server2的旧版Moodle的数据库指向其保留在Server1上的数据库。
第四步,修改相关配置文件。分别修改新、旧两版的“moodle”和“oldversion”文件夹中的config.php,将路径修改为对应的新路径。
文件中dbhost为mysql数据库的主机IP地址,dbuser和dbpass分别指的是访问mysql数据库的用户名和密码,新旧Moodle的用户名可以相同,也可以不同。需要注意的是,如果两个数据库的用户名相同,访问密码也应该相同,否则,旧版Moodle的数据库会报错。
上述操作完成之后,新版Moodle的数据库和Web的服务被分别分布到Server1和Server2两台服务器上。这样就可以让新、旧Moodle通过同一服务器Server2发布,而二者调用的数据库均为Server1上的两个对应的mysql数据库。
第五步,设置版本选择页面。制作一个主页面,在用户进入Moodle之前,呈现Moodle新旧两个版本的链接,让用户选择版本。将页面命名为index.php,保存在D:/Apprev目录下。通过Server2发布后,新旧两个版本的Moodle可以同时开启使用,版本选择页面的地址为http://10.1.150.5,新版链接地址为http://10.1.150.5/moodle,旧版链接地址为http://10.1.150.5/oldversion,并在本页面中提示用户逐渐向新版Moodle过渡。
在Moodle版本升级的过程中,可以通过让新、旧版本共存并逐渐完成版本之间的过渡,还可以采用服务器分流的方法来分担,从而提高Moodle运行的速度。同理,还可以安装第二、第三台服务器做Web,只要都选择同一个mysql服务器,那么通过每个Web服务器浏览时看到的内容都是一样的。如果有多台服务器,可以采用多台服务器分流,进行一些负载均衡。为了内容能统一,数据库服务器应该单独一台,Web服务器可以有多台。但是使用这两种方法有一定的局限性,如学生在修改头像、上传作业等交互功能时,有些是上传到Web服务器上的,这样在其他的Web服务器浏览时可能就看不到具体内容;教师在批改作业时比较麻烦。
要彻底解决兼容性和占用系统资源这两个问题,首先是完善Moodle的数据库链接。解决Moodle版本升级时,版本间数据导出、导入的乱码问题,最好能进行插件升级或自动升级;其次是提升Moodle的性能。可以根据用户需要,设计Moodle的简化版——miniMoodle,如可以使Moodle只支持mysql一种数据库,这样可以剥离Adodb,大量减少中间代码,而且可以专门针对mysql进行SQL优化,从而提高其运行速度。
参考文献
[1]韩骏,刘菁.开源的网络教学平台Moodle系统[J] .中小学信息技术教育,2006,1.
[2]Moodle官方网站[EB/OL].http://www.moodle.org.2007.11.10.
[3]陈恒法,罗兵.基于Moodle教学辅助系统的应用实践[J].中国教育信息化,2007,5.
[4]moodle速度慢的解决办法之一[EB/OL].http://www.edu-linux.org/viewtopic.php?p=6539.2007.11.10.
一、Moodle应用概况
Moodle自诞生之日起就以自由软件的形式出现,遵循GPL(GNU Public License)协议,这给Moodle带来了无穷的活力,吸引了一大批开发者,目前已发展到1.8版本。Moodle以其教学理念先进、功能强大、操作简便、结构设计模块化、支持多种标准、开放源代码等特点深受广大师生的喜爱。受益于软件本身良好的多语言支持特性,Moodle已在世界各地的大学、中学和小学等各种教育机构应用起来。
二、Moodle应用中的问题
Moodle在教育教学中广泛运用的同时也伴随着一些问题,除了其自身功能有待进一步修改和完善之外,版本间的兼容性和占用系统资源的问题也显得比较突出。
1.各版本之间的兼容性问题
Moodle作为一个开放源代码软件,版本更新迅速,功能越来越强大,运行也越来越稳定,但是版本之间的不兼容造成了较大的问题,要享受新版Moodle更加强大的功能,必须付出损失旧版数据的代价。例如,现在各学校使用的Moodle大多是相对新、也相对稳定的1.6版,而前段时间推出了最新的1.8.3版,如果使用Moodle自带的数据导出导入功能,先将1.6版里面保存的课程用户、成绩等数据导出,再导入到1.8.3版的Moodle中,显示为乱码,尤其是在中文版Moodle中,此问题更加严重。
2.占用系统资源的问题
Moodle对系统资源占用很大。对Moodle进行压力测试,在没有加速的情况下,10并发(No thinking time),CPU占用就开始增加到95%,到100并发,响应时间接近10s。因此,如果客户端很多,一般的服务器运行Moodle速度会非常慢。伴随着数据量增多和Moodle功能的不断强大,对服务器的要求也越来越高。如果只是利用Moodle做一个实验性质的站点,则体会不到其性能的局限和对硬件的过高要求,但是在实际部署中,当并发用户超过50人时,Moodle对硬件的要求一般就超出了中小学配备的服务器的档次,导致服务器经常死机。也就是说,如果用Moodle进行网络教学,那么可能无法支持一个班级的正常教学。
三、解决方案
Moodle作为一个正在不断成长、日趋成熟的学习环境,上述两个问题在其实际应用中是不可避免的。我们不能因噎废食,应该在学校现有的条件下,采取积极的应对措施。
1.解决方案
对于Moodle各版本之间的兼容性问题,可以将新版Moodle装到新服务器上,再将旧版Moodle也转移到新服务器上,让两版Moodle并存。在这一段时间里,由管理员和课程教师督促学生逐渐完成旧版Moodle向新版Moodle的过渡。
对于占用大量系统资源的问题,可以在学校经济能力能够承受的条件下,考虑选用更新的、性能更好的Moodle服务器;条件不允许的情况下,可以采用两台或多台服务器分流,适当进行负载均衡。
2.案例实施步骤
以下述案例为例:旧版1.6版Moodle安装在老服务器Server1(IP:10.1.150.4)上,现将1.8.3版新版Moodle安装到新服务器Server2(IP:10.1.150.5)上,并同时高效地运行。具体的实施方案如图1所示。
第一步,在Server1上的mysql中新建一个数据库文件,命名为newmoodle,设置好用户名和密码,作为新版1.8.3版的mysql数据库。这里为了避免混淆,将Server1上原有的旧版数据库文件夹“moodle”重命名为“oldmoodle”(如图2)。
第二步,将新版Moodle安装在Server2上。安装apache和php,下载Moodle安装程序,解压并安装到路径D:/Apprev,同时将新版Moodle的mysql数据库指向Server1上的数据库:安装到选择数据库时,选择刚安装好的mysql服务器的IP地址和指定的账号密码。
第三步,移动Moodle及其数据文件夹。将旧版Moodle移至新服务器Server2上(如图3),而将其mysql数据库文件仍保留在Server1上。再将Server2的旧版Moodle的数据库指向其保留在Server1上的数据库。
第四步,修改相关配置文件。分别修改新、旧两版的“moodle”和“oldversion”文件夹中的config.php,将路径修改为对应的新路径。
文件中dbhost为mysql数据库的主机IP地址,dbuser和dbpass分别指的是访问mysql数据库的用户名和密码,新旧Moodle的用户名可以相同,也可以不同。需要注意的是,如果两个数据库的用户名相同,访问密码也应该相同,否则,旧版Moodle的数据库会报错。
上述操作完成之后,新版Moodle的数据库和Web的服务被分别分布到Server1和Server2两台服务器上。这样就可以让新、旧Moodle通过同一服务器Server2发布,而二者调用的数据库均为Server1上的两个对应的mysql数据库。
第五步,设置版本选择页面。制作一个主页面,在用户进入Moodle之前,呈现Moodle新旧两个版本的链接,让用户选择版本。将页面命名为index.php,保存在D:/Apprev目录下。通过Server2发布后,新旧两个版本的Moodle可以同时开启使用,版本选择页面的地址为http://10.1.150.5,新版链接地址为http://10.1.150.5/moodle,旧版链接地址为http://10.1.150.5/oldversion,并在本页面中提示用户逐渐向新版Moodle过渡。
在Moodle版本升级的过程中,可以通过让新、旧版本共存并逐渐完成版本之间的过渡,还可以采用服务器分流的方法来分担,从而提高Moodle运行的速度。同理,还可以安装第二、第三台服务器做Web,只要都选择同一个mysql服务器,那么通过每个Web服务器浏览时看到的内容都是一样的。如果有多台服务器,可以采用多台服务器分流,进行一些负载均衡。为了内容能统一,数据库服务器应该单独一台,Web服务器可以有多台。但是使用这两种方法有一定的局限性,如学生在修改头像、上传作业等交互功能时,有些是上传到Web服务器上的,这样在其他的Web服务器浏览时可能就看不到具体内容;教师在批改作业时比较麻烦。
要彻底解决兼容性和占用系统资源这两个问题,首先是完善Moodle的数据库链接。解决Moodle版本升级时,版本间数据导出、导入的乱码问题,最好能进行插件升级或自动升级;其次是提升Moodle的性能。可以根据用户需要,设计Moodle的简化版——miniMoodle,如可以使Moodle只支持mysql一种数据库,这样可以剥离Adodb,大量减少中间代码,而且可以专门针对mysql进行SQL优化,从而提高其运行速度。
参考文献
[1]韩骏,刘菁.开源的网络教学平台Moodle系统[J] .中小学信息技术教育,2006,1.
[2]Moodle官方网站[EB/OL].http://www.moodle.org.2007.11.10.
[3]陈恒法,罗兵.基于Moodle教学辅助系统的应用实践[J].中国教育信息化,2007,5.
[4]moodle速度慢的解决办法之一[EB/OL].http://www.edu-linux.org/viewtopic.php?p=6539.2007.11.10.