返回首页
当前位置: 主页 > betway必威娱乐 > 应用研究 >

怎样设计一个符合SCORM的LMS?

时间:2011-08-24 00:39来源:betway必威官网www.etsupport.net 编辑:麦田守望者

你可以看完这个主题后再思考如何『生』,或者先依你所获得、搜集的需求,先设计一个。但基本上会有几个子系统:

 

 1. 帐号管理

 2. 开课、选课管理

 3. 讨论板系统

 4. 作业、问卷、测验系统(其中最重要的是测验系统。如果你功力不够,短时间无法作一个好用的测验系统的话,可以先 focus 在作业与问卷系统上,而测验可以另找合作厂商)

 5. 如果你还想多同步的功能,可以再加个线上讨论室。没时间发展可以使用 Netmeeting 的方案或去找一个聊天室的 source 来改。

 6. 最后一个『必须』要做的,就是有一个『教材步进』机制。看你是要很简单地用一个 frame,里头放个 treeview 来展现教材目录,或是厉害一点,让你的 LMS 可以自动 launch 教材,都行。

 

  把这一切兜起来后,你就完成一个简单的 LMS。当然,功能你自己还可以自由添加、删减、修改。别忘了美工也很重要喔!

 

  最后要提醒你的,最好把你的 LMS 架构,用 XML 把它描述出来,除了当作你的 sitemap,后续还可以作 sequencing maping、菜单 layout ..喔!好处你慢慢会发现。:)

 

  接下来就是做 SCORM 的部份。

 

  因为 ADL 有提供一份 Java 写的 adapter 的 sample source,所以如果你会 Java,那就太幸运了,直接拿来用,你就少写一万三千多行程序,而且还有国际组织帮你维护程序代码哩!

 

  不过这也轻松不到哪去,因为你要自行设计 Database 的 schema 来存 SCORM 的资料,如果你的 LMS 自己没设计 log,而完全要仰赖 SCORM 所产生的记录,那么这个 database 的设计可要花点时间跟脑筋啰!更何况,你必须先看懂这套程序代码,才能写它与你的 DB 之间的 bridge code。

 

  我的系统在符合 SCORM 之前,已有自己的 log 记录方式、资料,所以除了 SCORM 它自己记一套,我的 LMS 自己也会记一套,而且记得比 SCORM 还详细。因此这个部份,我的作法就只需设计如何记录 SCO 产生的 cmi 资料即可,不必担心与原有 LMS 的资料是否冲突。

 

  这样一来就简单多了。因为一个 SCO 只有一个 cmi data,我只要逐个记入我的 DB table 里就行了。所以,在 SCORM 兼容上,我只需要多一个 Table 即可。哇!真是轻松愉快!

 

  在 table 的设计上,因为 cmi 是一个 XML 格式的资料,如果拆成数个部份存,在『拆开存入』与『取出重组』这个部份会影响效能,但我所用的数据库并不是『原生 XML 数据库』(native XML database),我采用我自创的『仿真 XML 数据库』方式,把 cmi 整个 XML 直接存入 field 中,既有原生 XML 数据库的不必拆组优点,又保有关系数据库的关联性。
 

如果你已经下载了 ADL 所释出的 Sample Run-Time nvironment,而且决定使用 Java 或 .Net 来实做你平台的 SCORM 部份,你可能要花不少时间来读懂它里面的三十多支 Java 程序,或者至少该知道这些程序该怎么用。

 

  几乎所有的 .java 程序,都为了存取 XML 而写。如果你已经熟读SCORM RTE 的 Metadata,从档名你就知道,几乎是一个 Metadata 就用一支 java 来 take care。从事 java 程序开发的朋友都知道,java 需要自带 XML 的函式库,它无法直接使用 OS 所提供的 XML API (如果有的话,例如 windows)。而这个函式库又超大,因此 java 在 XML 这方面有点先天失利,不过这并非指 java 不适合开发 SCORM,而是我 心目中有比用 java 更适合的对象-就是我在『技术』篇所提到的 SCORM 开发必备技能之二 - Jscript。

 

  请注意我写的是 Jscript,而非 Javascript。这是 Microsoft 版本的 Javascript,它是一个遵循 ECMA-Script 标准的 script language ,除了在 Microsoft IE 底下有完整的 XMLDOM 可用,即使客户端使用 Mozilla/Netscape 等浏览器,Jscript 也可以用标准的 XMLDOM 来实作 SCORM Adapter。

 

  在讲到实作 Adapter 之前,我们先来看看 ADL 的 Sample 里的两支重要的 Jscript : APIWrapper.js 与 SCOFunctions.js。

 

  "APIWrapper.js" 是提供教材制作者,一个呼叫 Adapter API 的接口。教材制作者把这支程序与 Asset 合起来就构成一个简单的 SCO,只要在教材被 launch 时,使用它的 findAPI() 去寻找 Adapter API,找到后就会有一个 API 的对象可用,而这个对象会 mapping 到 LMS 所实作的 Adapter 上,因此它就会有 RTE 所规范的八个方法 (method),开始供你的教材使用了。

 

  "SCOFunctions.js" 则是提供一些函式,供 Adapter 或者 Content 来使用。这些函式大部份是有关 SCO 在激活与结束时,一些状态属性的 Metadata 侦测与设定。比如 "cmi.core.exit" 侦测这个 SCO 是正常结束或异常结束;"cmi.core.lesson_mode" 是一般阅读或是参观者浏览;还有 "cmi.core.session_time" 是记录这个 SCO 从开始到结束的时间。哦!对了,SCORM 有个资料格式是 CMITimespan,这个是『时间长度』。它精确到小数点后两位,但 Jscript 并没有这样的处理函式 (不知 Java 有没有),所以必须自己写个函式来处理这样的时间加减。这支程序有三个函式:startTimer()、computeTime()、convertTotalSeconds() 可以帮你计算 session_time。它已经被写在 loadPage() 函式中了,所以你只要在 SCO 激活时,在 findAPI() 找到 API 后,用 loadPage() 来呼叫 Adapter 的 LMSInitialize(),再使用 unloadPage() 呼叫 LMSCommit() 与 LMSFinish(),你就完成一个 SCO 的最基本要求啰。

顶一下
(2)
100%
踩一下
(0)
0%
标签(Tag):SCORM标准 scorm LCMS 学习内容管理系统
------分隔线----------------------------
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
猜你感兴趣