文档库 最新最全的文档下载
当前位置:文档库 › Moodle的二次开发研究与应用

Moodle的二次开发研究与应用

成都理工大学

硕士学位论文Moodle的二次开发研究与应用

姓名:王新勇

申请学位级别:硕士

专业:计算机应用技术

指导教师:周家纪

20100501

Moodle的二次开发研究和应用

作者简介:王新勇,男,1973年2月生,师从成都理工大学周家纪教授,2007年6月毕业于成都理工大学计算机应用技术专业,获得工学硕士学位。

摘要

随着网络技术和多媒体技术在教学中的广泛应用,在线学习(E-Learning)这一全新的学习方式也逐渐得到应用和推广。课程管理系统(CMS)也逐渐成熟起来,并在很多高校得到应用。

在线学习,不仅仅是运用了先进技术手段,提高了教学效率,更重要的是改变了以教师为中心的传统教学模式,形成了以学生为中心的个性化学习方式。当前,国内外的在线学习平台很多,如,Claroline 、Moodle 、Dokeos 、Blackboard 等。其中,Moodle凭借其先进的教育理念、完善的课程管理和学习功能、免费开源和Moodle社区支持等特点,在世界范围内得到了广泛的应用。

本文介绍了Moodle系统的产生、发展、功能和特点,并对当前国内外关于Moodle的应用和研究状况进行了调查研究。分析了Moodle在我国应用过程中存在的问题,从Moodle应用和开源软件应用于教学的角度论述了Moodle二次开发的意义。

Moodle是一个优秀的系统,弄清Moodle系统结构是进行二次开发的关键。所以实现对Moodle系统结构、目录结构、启动过程、访问控制机制系统、设计特点以及源码阅读方式的认识,对Moodle数据库的设计和维护,数据库的表间关系,Moodle数据库API和XMLDB的实现机制的理解,是本文做的第一项重要工作。

在完成前面工作的基础上,重点又研究了Moodle二次开发的内容。在对Moodle社区规定的主题和插件等二次开发内容进行分析的基础上,又根据实践过程中发现的问题,提出了脱离Moodle社区开发规范,从应用的角度,对表示层、插件和数据库的修改,利用Moodle进行学生评价等内容。最后从实际操着的角度进一步研究了Moodle的插件开发,通过试验,研究了模块开发的一般方式和步骤,对于插件中的板块开发,用一个具体的板块开发过程,总结出了板块开发的一般步骤,并根据实际需要,开发了一个具有简单功能的板块,有一定的应用价值。

关键词:Moodle 开源二次开发

I

The Moodle Secondary Development and Application

Introduction of the author: Wang xinyong, male, was born in February, 1973 whose tutor was Professor Zhou jiaji. He graduated from Chengdu University of Technology in Computer Application Technology major and was granted the Master Degree in June, 2010.

Abstract

With network technology and multimedia technology can be applicable more widely in education. E-Learning ,this new learning is applying and promoting gradually. CMS systems have matured rapidly and now are considered critical software for many colleges and universities.

Online learning, not just the use of advanced technology to improve teaching efficiency, more importantly,it is changing the traditional teacher-centered teaching model, forming a personalized student-centered learning. At present, online learning system is a lots at home and abroad, such as, Claroline, Moodle, Dokeos, Blackboard, etc., In which, the Moodle with its advanced educational philosophy, a perfect course management and learning functions, free , open source and community support, etc., has been widely used in the world.

This thesis gives a brief introduction about the Moodle system development, function and features, as well as with the Moodle development, and Do research about the Moodle current application and study status at home and abroad. After analysing problems of the Moodle system in application in our country, and discusses the significance of secondary development in the Moodle applications and the open source software applied in teaching.

The Moodle is a perfect CMS, It is key to the Moodle Secondary Development that understand enoughly the Moodle system Architecture.thereof, Analysising the Moodle system Architecture, the Moodle program execution process, the Moodle access control and permission system, and the Moodle design features, the Moodle database maintenance, how to navigate the relationship between database tables, the Moodle database API and XMLDB, etc. is one of important work in this thesis.

Base on finishing previous work, Another study focused on the content about

成都理工大学硕士学位论文

Moodle secondary development.After analysing themes and plug-ins provided in the Moodle community, Based on problems from practice, Propose new development content about View, Plug-ins and database , Moodle for student evaluation and so on, that do n’t abide by Moodle community development https://www.wendangku.net/doc/a33800007.html,st, Introduce the Moodle plug-in development by practice, made a basic form of plug-in development and ideas of plug-in development. Analyse the basic process of module development, and descript specific examples for the more commonly block development process.

Keywords: Moodle Open Source Secondary Development

III

独创性声明

本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得成都理工大学或其他教育机构的学位或证书而使用过的材料。与我一同工作的人员对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。

学位论文作者签名:

年月日

学位论文版权使用授权书

本学位论文作者完全了解成都理工大学有关保留、使用学位论文的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和借阅。本人授权成都理工大学可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。

(保密的学位论文在解密后适用本授权书)

学位论文作者签名:

学位论文作者导师签名:

年月日

第1章引言

第1章引言

从上世纪末,随着计算机和Internet的应用迅速普及,网络技术和多媒体技术在教育中的应用更加广泛,E-Learning(电子化学习或在线学习)这一全新的学习方式也逐渐得到应有和推广。尤其是Internet新一代模式Web2.0的出现,更进一步促进了在线学习软件和技术的快速发展。在线学习,不仅可以提高教学效率,更重要的是改变了以教师为中心的传统教学模式,形成了以学生为中心的个性化学习方式。在众多在线学习软件中,Moodle凭借其先进的教育理念、完善的课程管理和学习功能、免费开源和Moodle网络社区支持等特点,在世界范围内得到了快速的发展。

1.1 Moodle简介

Moodle是澳大利亚教师Martin Dougiamas博士基于建构主义教育理论(简单概括为,教育者/老师和学习者/学生都是平等的主体,在教学活动中,他们相互协作,并根据自己已有的经验共同建构知识),于2002年发布的一个开源的课程管理系统(CMS Course Management System)。MartinDougiamas博士是一个计算机科学家和教育者,在澳大利亚Perth地区的一所大学内致力于课程管理系统研究,现在他已成为Moodle研究的专职人员。

Moodle的官方文档这样描述Moodle的含义,Moodle最初是模块化面向对象的动态学习环境(Modular Object-Oriented Dynamic Learning Environment)的缩写,对于程序设计者和教育理论工作者来说,这是一个很有用的理念。Moodle 也是一个动词,它描述了这样一个过程,通过事物产生的过程去认识某物,轻松的了解某物。一个愉快的认识过程常常能导致洞察力和创造力。这也是Moodle 开发所用的方法,也是学生或老师通过一个在线课程学习或教学的方法[1]。

Moodle 平台界面简单、精巧。使用者可以根据需要随时调整界面,增减内容。课程列表显示了服务器上每门课程的描述,包括是否允许游客使用,访问者可以对课程进行分类和搜索,按自己的需要学习课程。

Moodle 平台在设计上力求兼容、易用、灵活和易于修改。它用流行的、强大的PHP语言开发而成,几乎可以在任何支持PHP 的平台上安装,安装过程简单,教师可以把它安装在自己的个人计算机上。Moodle是一个高度模块化软件,并使用通用的技术,如共享库,数据库抽象层,和层叠样式表来定义接口(可以在低版本的浏览器上运行)。正是这些技术的运用,可以使其他程序员(即使初学者)修改和扩展其代码。Moodle也可以连接到其他系统,如邮件服务器或学生目录。进一步分离接口的代码(使用XML与XSL转换)使界面以几乎完全独

1

成都理工大学硕士学位论文

立的逻辑和存储方式存在。

Moodle具备所有e-Learning平台具有的所有功能,如内容管理、论坛、测验、作业、聊天、选项表、日志、标签和调查等。此外,它还拥有诸如任务分配、联系、对话、签到、日历和文件管理等功能。

Moodle只需要一个数据库(并且可以共享)。它具有全面的数据库抽象层,几乎支持所有的主流数据库(除了初始表定义)。利用Moodle ,现今主要的媒体文件都可以进行传送,这使得可以利用的资源极大丰富。在对媒体资源进行编辑时,利用的是所见即所得的编辑器,这使得使用者无需经过专业培训,就能掌握Moodle 的基本操作与编辑。Moodle 注重全面的安全性,所有的表单都被检查,数据都被校验,cookie 都是被加密的。用户注册时,通过电子邮件进行首次登陆,且同一个邮件地址不能在同一门课程中进行重复注册,所有这些,都使得Moodle 的安全性得到了加强。目前,Moodle 项目仍然在不断的开发与完善中。

Moodle作为一个开源的课程管理系统,应用于普通大学、中学、商业,甚至私人教育机构。当前全世界大约有几万教育组织使用Moodle去传送在线课程或作为传统面对面教学的补充。Moodle在Web(http:// https://www.wendangku.net/doc/a33800007.html,)中免费试用,任何人都可以下载并安装[2]。

1.2 Moodle的特点[2]

Moodle是一个免费的学习管理系统(Learning management system),也有的把它称作课程管理系统(CMS)。它能使你生成强大的、灵活的和更有吸引力的在线学习体验。它不同于一般的在线学习系统,在线学习课程通常是一系列有序的网页、一些图片和动画,一个在线测试。也有可能有用于联系老师和学生的Email或者公告板。但是,Moodle还有比以上这些更吸引人的地方。

1.2.1 自由和开源

“开源”一词已经成为一些领域中经常出现的术语。这是超越技术之外的一种文化,很难预测这种理念将来会带来多么大的力量,但可肯定的是它将对软件开发业产生深远的影响。开源意味着用户可以查看软件的源代码,人们可以打开“引擎盖”去了解软件是如何工作的,修改它,与他人共享,或者把它的部分代码用于你自己的程序中[3]。

这是很重要的特点。首先,开源和学术领域中所追求的自由价值是一致的,平等交流和知识共享。每个人都能自由的下载和使用Moodle,添加新的功能,修改错误,改善性能,或者只是学习其他人如何解决程序中的问题。

第1章引言

其次,Moodle不像价值昂贵的专门的CMS需要许可费和维护合同,Moodle 免费下载,可以安装在许多自己想使用的服务器上。任何人都无权停止你对它的使用、增加许可费用或让你支付升级费用。没有人可以强迫你升级,接受对你无用的功能,或限制使用用户的数量。如果Martin Dougiamas本人决定停止发展Moodle ,还有一个专门的开发社区将这项工作继续开展下去。

1.2.2 先进的教学理念

Martin的教育工作背景使他采用了社会建构主义学习理论作为支撑Moodle 的核心理论。这是革命性的,大多数CMS系统都建成了工具集,没有教育理论支持。大多数商业的CMS系统是以工具为中心的,而Moodle是以学习为中心的。

社会建构主义是当今建构主义思潮中最重要的一种流派,它强调知识不是教师传递的,而是学习者在丰富的社会文化情境中,通过与他人的对话、协作、互动中主动建构的。也就是说,人们进入学习过程中时,自身并不是一块白板,对话、协作、互动和知识共享才是建构知识的过程。学习者在学习过程中要进行新旧知识的比较,并把它纳入到自己的知识结构中。人们在比较和互动中创造新的知识,并逐步形成共同的文化体系。

Moodle是将该理论应用于实践的一个试验,在其设计开发过程中处处体现着这一教育理念。这一理论运用在Moodle中,首先表现在用户界面上。以工具为中心的CMS常把一个工具列表作为界面,Moodle则把工具融入到以学习为中心的界面中。用户可以根据时间、标题或者其他属性组织自己的Moodle课程。另外,虽然其他的CMS也支持教师上传静态内容的模式,但Moodle的重点在于知识互动和共享,而不是仅仅停留在教学内容的管理与呈现上。

Moodle的这一设计理念使这个教师易于使用的软件包成为独一无二的第一代真正有用的教育工具。

Moodle对教师角色的定位不是知识的提供者,而是一个学习社团中有影响力的榜样,是各种学习活动的引导者,是与学生平等对话、共同实现预定学习目标的组织者。Moodle不仅具备当前新兴的各种社会软件(Blog、Wiki、BBS等)的功能,还支持多样化的教学方式,它适用于多种组织类型,例如:传授-接受型的教学组织、研究-项目型的教学组织和社区-小组型的教学组织等。更值得关注的是,Moodle课程还注重多样化教学评价,如过程性评价、总结性评价、档案袋评价、集体评价、同伴评价和教师评价等,这有利于及时发现和解决学生在学习过程中存在的问题。Moodle的出现更新了教师的教育理念,教师任务由先前的教案设计转变成课程设计,由课程内容设计转变成教学资源与活动的设计。

3

成都理工大学硕士学位论文

1.2.3 Moodle社区

Moodle给使用该系统和为系统开发新功能或完善功能的人提供了一个非常大的,活跃的社区。任何人都可以访问Moodle社区(http:// https://www.wendangku.net/doc/a33800007.html,),注册并使用Moodle课程。在这里,许多人会帮助Moodle新用户学习和使用Moodle,排除故障,如何提高系统使用效率。截至2009年8月,全世界已有30多万人注册了Moodle社区,超过30,000多个Moodle站点,分布在199个国家和地区。全球社区已经把Moodle翻译成了81种语言。

Moodle社区是Moodle系统获得成功的不可缺少的因素。全球有那么多的用户,不乏有解决问题和提出新建议的人。同时,Moodle的开发者和用户共同工作,可以确保系统质量,不断添加新功能和新模块,提出进一步开发的新思想。Martin和他的核心成员组对新的功能进行评估,决定是否满足官方发布的要求或下一步该怎么做。因为在功能官方发布前,大家可以自由的试用,许多人使用和测试新功能,也就变成了一个大的质量控制部门。

开源、教育理念、社区,这在CMS的世界里,也可以说是独一无二的。1.3 Moodle的应用及研究

1.3.1 Moodle在世界范围内的应用及研究

前面提到,Moodle在世界范围内的使用已非常广泛,有大学、学院、社区学校、教育组织、甚至一些私人教育机构。据Moodle社区统计,站点数量排在世界前三位的国家是:美国6,935,西班牙3,284,英国2,694。其间不乏一些世界著名大学和教育机构。Moodle的发展非常迅速,2009年5月之前,Moodle 站点每年成倍递增。Moodle在2003年以前还不到几百站点,截至2009年7月,使用Moodle的站点来自199个国家总数达35,126个,总开设课程有2,256,653门,注册用户总数量达到24,040,820人,注册教师有1,099,844人,注册学生有13,199,942人,使用Moodle发布的论坛帖子有34,165,671篇,教师发布的教学资源有18,785,850个,题库总题量有28,990,774。2009年月平均注册人数1,600多人,月平均下载次数87,300次,有162个站点使用人数超过5,000人。最多用户的站点开设了61门课728,718用户。开设课程最多的站点有21,948门课70,474多学生。当前使用最多的版本为Moodle1.9.x,Moodle提供的语言支持达到81种。现在,主要研究Moodle开发的网站有https://www.wendangku.net/doc/a33800007.html,和https://www.wendangku.net/doc/a33800007.html,,前者是全世界Moodle开发和学习者的免费社区,注册人数728,718,CVS注册开发人数有180多人,后者是商业网站,已注册100多家商业合作伙伴,负责客户要求的Moodle的代码定制、全功能的Moodle主机提供、培训及其它个性化需求服务。

第1章引言

当前,研究Moodle的内容既有Moodle的使用,但更多的是研究Moodle功能的扩展及其架构的重构。

1.3.2 Moodle在我国的研究与应用

我国对Moodle的研究及应用开始于2004年左右,2006后进入了一个高潮期。上海师范大学教育技术系黎加厚教授把其译为“魔灯”,蕴含“教师是课堂上真正的魔法师,而Moodle则是他手中的一盏阿拉丁神灯”,并预测未来Moodle 在中国教师中的普及程度就像今天PPT的使用[4]。2009年统计,我国的Moodle 站点,中国大陆251个,台湾631个,澳门5个,香港81个。大陆较为知名的高校有中国科学院研究生院Program-10 课程网站、华东政法大学网上课堂、哈尔滨工业大学计算机科学与技术学院、中央电大在线学习系统等。其中,东南沿海地区居多,不少中小学和一些教育机构利用Moodle建立了自己的在线课程。

截至到2009年8月,在中国期刊全文数据库中以Moodle为主题共搜索到268条记录,在中国优秀硕士学位论文全文数据库中以Moodle为主题进行检索,搜索到78条记录。从论文内容上看,当前我国对Moodle的研究主要集中在平台的应用上。Moodle 平台的安装与功能介绍、基于Moodle 平台的课程开发与管理、利用Moodle 平台辅助课堂管理和教学、利用平台开展教师培训、利用Moodle 平台探索网络教学和学习模式、利用平台作为个人知识管理工具。[5]对于Moodle 平台的体系结构、系统配置、代码优化及修复、Moodle功能定制和扩展等二次开发方面研究的不多。尽管有的商业机构涉足这方面的研究,但由于商业因素,也难公布研究进展以及成果共享。

1.3.3 Moodle使用中存在的问题

Moodle功能丰富,给用户提供了5个静态材料展示页,5个交互学习模块,6个社会活动模块,这些功能几乎可以满足用户的所有需求。但在实际的应用中,还存在一些问题,具体表现在:

(1)各版本兼容的问题[6]。

Moodle作为一个开放源代码软件,版本更新迅速功能越来越强大,运行也越来越稳定,但是版本之间的不兼容造成了较大的问题,要享受新版Moodle 更加强大的功能,必须付出损失旧版数据的代价。

(2)占用系统资源的问题。

Moodle 对系统资源占用很大。因此,如果客户端很多,一般的服务器运行Moodle速度会非常慢[6]。伴随着数据量增多和Moodle功能的不断强大,对服务器的要求也越来越高。但这一问题随着硬件的快速发展,得到了很大缓解。

(3)个性化需求的问题。

5

成都理工大学硕士学位论文

一种情况是,每一门课程都有自己的教学规律和教学思路,在应用Moodle 教学时会提出一些个性化的要求。实际上,就Moodle本身来说,作为一个外来软件,也有一些中国教师不能适应的地方。另一种情况是,语言问题。尽管Moodle 已经被翻译为80多种语言,但仍不能满足一些地区的要求。例如我国56个民族,当前存在的只有简体中文和繁体中文两个版本,一些少数民族地区在使用时就会出现语言障碍。例如在新疆地区使用时就要面对维吾尔语字符在网页上的显示问题和网页中维吾尔语的输入问题[7]。

(4)接受Moodle需要一个过程。

首先,根据美国锡拉丘兹大学的雷静博士在《学校中技术扩散的生态学分析》中论述,技术是教育生态系统中的新物种[8][10]。按照这种观点,Moodle的出现,势必打破原有信息化进程中教育生态系统的平衡。原物种会对新物种有一种本能的排异[10]。其次,Moodle的使用和当前的教育理念有冲突。具有创新意义的教学行为应该具有自主性、协作性、探究性、批判性、建构性和反思性。然而,当前的学校教育擅长于知识传承,在培养学生的演绎思维方面较强,在培养批判性思维方面则相对较弱,在培养创造性思维能力方面近乎无能。在升学率的驱使下,许多教师被迫变成疯狂的教学机器,源源不断地向学生灌输信息资料[9][10]。学生们也没有那么多的时间进行研究性、协作式学习,老师也习惯于传统的教学方式,即使应用新的技术,往往也是仅仅作为课堂内容的展示工具,难以完全体现新技术的价值。

1.4 本课题研究的意义

1.4.1 有利于Moodle的本土化

首先,针对Moodle使用中存在的问题,可以优化系统配置,提高系统运行速度;对源代码进行优化,增强使用安全性,进一步提高运行速度和使用并发数;其次,Moodle作为一个开源系统,有一个突出的特点,就是系统开发群体尽量多的提供其功能,这样,将导致不少功能对某些使用者来说是多余的。如何针对性的修改Moodle代码、增加或减少板块、模块等满足用户在功能方面的要求,实现Moodle功能定制,从而形成更适合我国教学管理和使用习惯的教学平台,也有很大的需求。中央电大的在线教育系统已经做了一些尝试,把一些课程放在Moodle平台上,其改进的界面更符合我们的使用习惯。

1.4.2 可应用于高校计算机专业的教学

如果仅仅把Moodle在教育中的应用局限于课程教学,它的影响将仅限于参

第1章引言

与那些课程学习的学生,Moodle的影响很重要一点是可以让学生对开源软件及思想有所了解。

对于高校计算机教育来说,开源软件也是十分有力的工具和珍贵的资源。由于所开课程很多基于微软的产品,学生对开源产品的了解受到很大的限制,很难深入与详细了解软件的设计及开发。开源软件源代码开放,将知识与产品融于一身,因此在计算机教育方面具有较强的实例性与导向性。同时,网络上相关开源社区的存在,更加能激发学生积极参与、学习开源软件的项目开发。

从具体应用方面来讲,Moodle系统可以作为计算机专业Web开发方向学生实习的实践案例。表1-1列出学习Moodle系统二次开发相关知识。

表1-1 Moodle二次开发相关知识

所以,Moodle的二次开发可以作为学生综合实习项目,让学生自己加入到该系统的开发中,在参与开发Moodle的过程中,使学生真正体验到项目开发和基于合作的工作过程。模仿也是学习,研究Moodle等开源软件的二次开发过程也可能是一种更高效、更系统的学习模式。

1.5 论文框架

本论文内容安排如下:

第1章引言。简要介绍了在线学习系统Moodle的产生、发展、功能和特点,以及随着Moodle的发展,对当前国内外关于Moodle的应用和研究状况进行了调查研究。分析了Moodle在我国应用过程中存在的问题,最后论述了Moodle 二次开发的意义。

第2章Moodle系统。分析了Moodle的功能及其系统结构,简单介绍了Moodle的安装环境,提出了Moodle集群服务器安装概念。在分析了系统结构的基础上,对Moodle启动过程中核心文件的执行顺序做了阐述。介绍了Moodle 的一个重要构成部分——访问控制机制。最后简单介绍了Moodle的设计特点。

第3章Moodle的二次开发概述。本章简述了Moodle二次开发的基本规范

和基本模式。重点研究了二次开发的内容。并对Moodle开发环境的搭建及开发

7

成都理工大学硕士学位论文

工具做了简单的说明,最后对Moodle源码的阅读方式做了探讨。

第4章Moodle的数据库。本章通过介绍Moodle数据库的维护,浏览数据库的表间关系,数据库API和XMLDB分析,说明了Moodle中使用XML如何实现系统数据库架构,如何实现数据库定义、修改等操作。最后分析了Moodle 数据库API的作用,并对XMLDB的实现机制做了分析。

第5章Moodle插件开发实践。本章从实际操着的角度介绍了Moodle的插件开发,提出了插件开发的基本方式和思路,分析了模块开发的基本过程,并以具体的例子详细的介绍了比较常用的板块的开发过程。

结论。总结了本论文的主要工作和应用价值,存在的不足和对未来工作的展望。

第2章Moodle系统

第2章 Moodle系统

2.1 Moodle的功能

Moodle的功能丰富,并且随着Moodle的广泛应用,其功能会不断得到完善和发展。Moodle提供的基本功能如图2-1所示。

图2-1 Moodle系统功能

根据访问权限,Moodle的功能分为三个部分,管理员功能,教师功能和学生功能,每部分功能都有相关的模块,师生可以根据教学需要选择适合的模块,为教学活动创建教与学的互动环境。

Moodle提供的相关活动模块包括:作业模块、选课模块、讨论区模块、日志模块、测验模块、调查模块和聊天室模块等。用户还可以根据需要,依据Moodle 所提供的接口来开发自己需要的活动或者模块。

Moodle对资源的组织形式给师生们提供了呈现教学内容和学习资源的途径,师生通过资源上传和共享方式极大的促进了教与学活动的良好发展。

9

成都理工大学硕士学位论文

2.2 Moodle系统架构

Moodle的系统架构采用当前流行的三层B/S结构,这种架构能很好体现数据访问、业务逻辑和用户界面的分离,使得Moodle的灵活性和可扩展性增强。其系统结构如图2-2所示[11]。

图2-2 Moodle系统架构

2.2.1 Moodle的安装平台

LAMP Stack(LAMP组合)是Moodle的常用安装平台,它是开源软件Linux、Apache、MySQL和PHP(或Perl, Python)的组合。因为这些开源软件都可以很方便的随时获得并免费获得,这就导致了这些组件经常在一起使用。在过去的几年里,这些组件的兼容性不断完善,在一起的应用情形变得非常普遍。为了改善不同组件之间的协作,LAMP已经创建了某些扩展功能,从而使整体功能大于其各组件之和。目前,几乎在所有的Linux发布版中都默认包含了“LAMP stack”的产品。这些产品组成了一个强大的Web应用程序平台。随着Web应用在Windows和Mac OS平台上的应用,又出现了WAMP、MAMP。图2-3描述了LAMP各组件构成:

第2章Moodle 系统

11

图2-3 LAMP 系统组成

需要说明的是,当前流行的Moodle1.9.x 开发需要PHP4.3或以上版本,Moodle2.0需要PHP5.28或以上版本。

2.2.2 安装Moodle 所需的数据库系统

Moodle 的数据库层是用PHP ADODB 库编写的,PHP ADODB 库使用统一的编程接口为访问各种数据库系统提供了标准化的方法。由于PHP 本地库函数对特定数据库使用特定的应用程序接口(API ),所以编写能支持多种数据库的应用程序比较困难。ADODB 的应用,使得Moodle 可以支持多种关系数据库,如MySQL 、 Postgres 、 MSSQL 、和 Oracle 等十几种。当然,在实践过程中,由于MySQL 开源、体积小、速度快,并且容易和第三方代码融合等特点,MySQL 是当前Moodle 使用最多的数据库管理系统,其次为Postgres 。MS SQL 、和 Oracle 使用花费高,第三方代码和模块很难融合,使用的较少。Moodle1.9和Moodle2.0需要使用MySQL4.1.16及以上版本。

2.2.3 安装Moodle 所需的Web 服务器及其部署

Moodle 可以安装在任何能够支持PHP 运行的Web 服务器。使用最多的是Apache ,其次是IIS ,现在不少人倡导使用Lighthttpd ,Lighthttpd 是一个高效的Web 服务器,为了实现高性能的表现,作了专门的设计和优化。与Apache 和IIS 等Web 服务器相比,具有使用内存少,能有效管理CPU 负荷等特点,受到越来越多用户的欢迎。

在实际应用中,Moodle 可以部署在个人笔记本电脑上,也可以部署在高性能的多服务器集群上。多服务器集群采用负载平衡策略将到达的请求分配给集群中的某台服务器进行处理, 并且通过数据冗余和软件监测等方法实现系统的高可用性。在这种方法中,不要求单个Web 服务器具有很高的性能,当Web

服务

成都理工大学硕士学位论文

器集群不能满足浏览的需要时,在集群中加入一个或数个普通的Web服务器即可。从每个终端用户的角度来看,整个集群就像一个Web服务器[12]。图2-4为Moodle可以部署的服务器架构。

图2-4 Moodle部署架构

Moodle单一服务器的配置较容易实现,但独立的高性能数据库服务器是提高Moodle访问规模的关键点,当前Moodle的多服务器集群安装还没有一个固定的模式,有待使用者进一步研究。

2.2.4 Moodle的目录系统结构

Moodle系统可以分为三个不同的区域,Moodle代码,Moodle数据库和Moodle数据。Moodle的代码放在Web服务器中,当文件被请求时,PHP解释器对文件即时解析后,输出结果通过Web服务器软件发送出去。前面提到Moodle 是模块化面向对象的动态学习环境,Moodle的目录结构也反映了这一理念。顶层的文件夹代表Moodle的一个部件,其主要部件都支持插件模块,插件模块在相应的部件文件夹中建有自己的文件夹。

(1)Moodle的文件夹

Moodle对各模块使用了简单的系统命名规则,用系统各个功能模块的名字命名各个文件夹。表2-1对各主要文件夹及功能做了一个简单说明。

第2章Moodle系统

表2-1Moodle目录结构

13

成都理工大学硕士学位论文

(2)Moodle 的数据库

Moodle数据库有200多个个表(低版本的少些),每个表名在缺省安装下都用mdl_作为前缀,并且在mdl_后紧跟模块名,表示关于某个模块的表。例如,mdl_forum_something是关于论坛模块的表。在Moodle二次开发过程中,对数据库操作是不可避免的。当然,如果全部理解这些表格不太容易,假如对论坛模块感兴趣,只需要要理解8个mdl_forum_something表,和它们链接到核心表的地方。但如果对论坛不感兴趣,可以忽略它们。对于其他模块也是这样。

(3)Moodle数据(Moodledata)

Moodle数据区存放了Moodle用户上传的文件、用户会话、语言选择包等内容。Moodle根据用户或课程把相关数据存入文件夹。每门课程都有自己的文件夹,并用一个整数数字命名。整数值是课程在Moodle界面中显示的课程ID。

在Moodle2.0中,为了更有效的利用磁盘空间,用哈希算法对用户上传的文件使用了新的组织方式。

2.3 Moodle的运行

Moodle安装时数据库表的自动生成功能,会给用户留下很深的印象,这是由一系列XML文件的执行来完成的。同样,Moodle启动时也会运行一系列的文件,给系统各个功能的实现打造了一个基本的运行环境。

2.3.1 Moodle启动的基本顺序

Moodle有很多入口脚本文件,主要的几个是:

“/index.php”,主页面;

“/login/index.php”,登录页面;

“/admin/index.php”,管理页面;

“/course/view.php”,一个课程页面;

第2章Moodle系统

“/mod/*/ view.php”,一个模块页面;

以课程页面脚本/course/view.php的运行为例,在浏览器调用view.php文件时,脚本的第一行要执行的语句是require_once('../config.php'),其他的入口脚本文件同样都加载了这个重要的文件config.php。config.php是Moodle中需要指定确切路径才能被正确加载的文件,它通过全局变量$CFG 执行一系列初始化参数。这些参数提供了系统运行所必须的数据库、Web URL、脚本目录和数据存储目录等最基本、最重要的信息。

config.php文件中最后代码是require_once("$CFG->dirroot/lib/setup.php"),加载了setup.php文件。setup.php通过执行所有初始化程序完成Moodle运行环境的设置,包括定义了其他几个重要的全局变量,$SESSION, $COURSE, $THEME, 和$db。根据config.php文件的设置,Moodle使用开源的ADODB 库来管理系统数据库,在文件setup.php中通过加载‘/lib/ADODB/ADODB.inc.php’实现连接用户的数据库。接下来,setup.php文件又加载了几个Moodle使用相当频繁的关键功能库:

textlib.class.php:实现多字节字符串的处理

weblib.php :实现HTML输出

dmllib.php:实现数据库管理

datalib.php:一个多功能库

accesslib.php:实现访问控制

deprecatedlib.php:保持向下兼容功能

moodlelib.php:其他的通用函数库

eventslib.php:事件处理

grouplib.php:实现群操作

引入pear库。

最后setup.php文件又加载了一些关键的变量,这些变量用来设置数据库、缓存、会话、环境变量、主题、语言和本地化。

入口脚本文件继续加载其他库文件。加载“config.php”文件后,入口脚本文件又加载了其他的库文件。还是以课程页面脚本/course/view.php的运行为例,接着又加载了lib.php和blocklib.php。最后调用API函数获得数据并显示数据。整个启动过程的UML时序图[15]可参考图2-5。

15

相关文档