新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论IMS, IEEE LTSC, ADL SCORM, AICC CBT,CLTSC CELTS等基于网络教育/远程教育(E-learning)技术。
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - 高级XML应用『 IMS/SCORM/E-learning 』 → SCORM标准中SCO与LMS的通讯原理与方法 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 19035 个阅读者浏览上一篇主题  刷新本主题   平板显示贴子 浏览下一篇主题
     * 贴子主题: SCORM标准中SCO与LMS的通讯原理与方法 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     echo6459 美女呀,离线,快来找我吧!
      
      
      等级:大一新生
      文章:41
      积分:343
      门派:XML.ORG.CN
      注册:2005/1/18

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给echo6459发送一个短消息 把echo6459加入好友 查看echo6459的个人资料 搜索echo6459在『 IMS/SCORM/E-learning 』的所有贴子 引用回复这个贴子 回复这个贴子 查看echo6459的博客楼主
    发贴心情 SCORM标准中SCO与LMS的通讯原理与方法

    在SCORM标准中,SCO与LMS的通讯是由API Adapter来完成的。

    在SCORM1.2的标准中,API定义了8个主要的function,分别是LMSInitilize, LMSFinish, LMSSetValue, LMSGetValue, LMSCommit, LMSGetLastError, LMSGetErrorString, LMSGetDiagnostic,其中又以LMSGetValue和LMSSetValue最为复杂,以下的流程图是主要几个function的逻辑流程。
    按此在新窗口浏览图片

    LMSInitialize:
    LMSInitialize负责启动SCO,当学习者进入开始阅读一个SCO时,SCO第一步就是先要呼叫LMSInitialize,LMSInitialize function判断该学员之上课记录,当学员第一次阅读该门课的该SCO时,LMSInitialize就会将设定初值至相关的环境变量;若学习者并不是第一次阅读该SCO,LMSInitialize则必须将该学习者之前的上课记录取出,并存入环境变量中,如此即完成启动SCO之动作。

    Example:
    var result = LMSInitialize("")
    if (result == "false")
    {
          // Do some error handling
    }
    else
    {
         // continue with the execution of the SCO
    }

    LMSFinish:
    当学习者阅读完并要离开一个SCO时,在结束时SCO便会将呼叫LMSFinish,LMSFinish主要负责将环境变量重设,并判断该SCO是否在结束之前己经有呼叫LMSCommit将所有记录回存至LMS,若尚未储存,则会自动呼叫将所有学习者在该SCO的上课记录回存。

    Examples:
    var result = LMSFinish("");

    LMSSetValue:
    在LMSSetValue是相当复杂的Function,负责储存所有相关的学习记录,当SCO呼叫欲将某个data model回存时,LMSSetValue第一步先判断所欲回存之data model,判断该data model是否可以set(写入),其次判断其型别,当型别错误时,记录其Error Code,当型别检查通过时,则依SCORM 1.2 RTE所订定该data model的处理规则,并将数据存入内存中。

    Examples:
    var result = LMSSetValue("cmi.core.score.raw","95");

    LMSGetValue:
    LMSGetValue主要负责将数据由LMS取出,当SCO呼叫LMSGetValue时,LMSSetValue会先判断data model是否可以读取,若不可读取,则写入其错误代码;若该data model是可以读取,则进取出其值并回传给SCO。但在设计时,如同LMSSetValue并没有直接和receiver相连,所以是将数据由暂存的内存中取出。

    Examples:
    var value = LMSGetValue("cmi.core.student_name")
    A typical return value might be "Hyde, Jackson".
    var value = LMSGetValue("cmi.core.lesson_status")
    A typical return value might be "incomplete".
    var value = LMSGetValue(“cmi._version”)

    LMSCommit:
    相较于LMSSetValue和LMSGetValue,LMSCommit可以说简单多了,其主要负责将所有暂存在内存中的学习记录,回存到LMS,在设计时应用了XMLHTTP之技术,所以当LMSCommit被呼叫时,会将所有之暂存数据组成XML文件,再应用XMLHTTP对象将数据POST到Receiver,当Receiver收到这个Request时,就会解译所传入之XML文件,再将XML文件中的数据直接存入数据库中。

    Examples:
    var result = LMSCommit("");

    LMSGetLastError
    该函数将返回一个错误代码,每次API function呼叫后,该函数的值将被重置。(LMSGetErrorString及LMSGetDiagnostic除外)。

    Examples:
    var errorCode = LMSGetLastError();


    LMSGetErrorString

    Examples:
    var errorString = LMSGetErrorString("403");

    LMSGetDiagnostic

      Examples:
    var moreInfo = LMSGetDiagnostic("403");
    图2:SCO与LMS通讯示意图
    按此在新窗口浏览图片


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    好好学习,天天上当。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/2/5 20:11:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 IMS/SCORM/E-learning 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/4/29 0:50:44

    本主题贴数4,分页: [1]

     *树形目录 (最近20个回帖) 顶端 
    主题:  SCORM标准中SCO与LMS的通讯原理与方法(3038字) - echo6459,2006年2月5日
        回复:  请问搂住,你在文中提到的API是需要全部自己写吗?SCORM中提供的是不是仅仅是函数的名称..(84字) - tony001,2006年6月5日
        回复:  编程的时候要不要引个什么包,就是第三方的那种包?(48字) - blueskysea,2006年5月18日
        回复:  好,不过看不懂~(14字) - dcli,2006年5月15日

    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    300.049ms