Moodle体系结构

  从系统管理员的视角,Moodle在设计时遵循了以下原则:

目录


 

  1 Moodle应当能在各种平台上运行

  2 Moodle应当很容易安装、学习和修改

  3 它应当易于从一个版本升级到下一个

  4 它应当是模块化的并允许扩展

  5 它应当可以和其它系统整合

 

1、Moodle应当能在各种平台上运行


  PHP与MySQL的组合是一个能够在几乎所有平台上运行的Web应用平台,而这正是Moodle的开发平台(在Linux、Windows和 Mac OS X上)。Moodle 用ADOdb来访问数据库,因此它可以使用超过十种不同的数据库(然而很不幸,目前它还不能直接在所有这些数据库上创建表格——后有详述)。

2、Moodle应当很容易安装、学习和修改


  Moodle的早期运行用Zope编写——这是一个高级的面相对象的Web应用服务器。然而很不幸,我发现尽管在技术上它很酷,但他的学习曲线 过于陡峭,且从系统管理的角度来说并不灵活。PHP这个脚本语言却正相反,它很容易上手(尤其是你有用其它脚本语言编程的经验时)。很早以前,我决定避免 使用基于类的设计,这也是为了让它对于新手来说易于理解。代码的重用是通过函数的清晰命名和脚本文件的一致形式来实现的。PHP也很容易安装(在每个平台 上都有编译好的二进制包),且很多Web主机服务都将它作为标准的服务项目。

3、它应当易于从一个版本升级到下一个


  Moodle知道它自己的版本(也知道每一个模块的版本),并且有一套内建的机制将它自己正确地升级到新的版本(例如它可以修改数据库中表格的 名字或者增加新的字段)。以Unix上的CVS为例,通过命令“cvs update -d”然后再访问站点的首页就可以完成升级。

4、它应当是模块化的并允许扩展


  Moodle的很多功能都是模块化的,譬如外观主题、活动、界面语言、数据库格式和课程格式等。这就允许任何人在主代码的基础上添加新的功能,甚至可以将这些功能单独发布。下一节会更仔细地阐述此问题。

5、它应当可以和其它系统整合


  Moodle将一个课程的所有文件作为一个单独地普通目录保存在服务器上。这就允许系统管理员以一种常规地形式将这些文件提供给教师,譬如利用 Appletalk、SMB、NFS、FTP和WebDAV等等。身份验证模块允许Moodle使用LDAP、IMAP、POP3、NNTP和其它的数据 库作为用户信息的来源。当然还有很多工作要做,在新版本的Moodle中计划加入的功能有:以基于XML的格式导入、导出Moodle数据(包括IMS和 SCORM);更多地用样式单来格式化界面(这样它就可以在视觉上更好地与其它站点整合)。

文库: