分享

精通SCORM系列之一:SCORM CAM概述

 昵称4316168 2010-11-01

http://www./member/article/794.html 
【原义光】精通SCORM系列之一:SCORM CAM概述  
 
SCORM Content Aggregation Model(CAM)概述
SCORM内容集合模型的目的是提供一个公共的方法,把学习资源组合成学习内容。它还定义了如何确认和描述学习内容,怎么整合成一个课程或课程的一部分,学习内容如何在学习管理系统和内容知识库这样的系统之间移动。许多组织在SCORM的开发方面做出了重要的贡献,如欧洲远程教学和分布式网络联盟(ARIADNE)、航空工业计算机培训委员会(AICC)、电气和电子工程师协会学习技术标准委员会(IEEE LTSC)、教学管理系统全球化学习联盟(IMS)等。
SCORM内容集合模型由下面几个内容组成:
1. 内容模型:定义了一次学习体验的内容组件的命名。
2. 内容包装:定义了一次学习体验的固定动作(内容结构)以及如何在不同的环境中组合学习资源的活动(内容打包)。
3. 元数据:一种详细描述控制模型组件实例的信息的机制。
4. 序列和导航:一组定义规则集的模型,描述了活动的固定次序。
  
SCORM内容模型
SCORM内容模型组件
SCORM内容模型描述了从学习资源中构造一次学习体验所需的SCORM的内容组件。SCORM定义了如何把一些低等级的、可共享的学习资源组合成一些高等级结构的对象的方法。SCORM内容模型由素材(Assets)、可共享内容对象(SCOs)以及内容组织(Content Organization)组成。
Asset
素材(Asset)是一种以电子化表现的媒体,如文本,图像,声音,以及任何可以用Web方式呈现给学习者的内容。一个以上的素材能被组合成新的单个素材。
 
一个Asset可以用Asset Meta-data来描述,并通过这些数据来在线搜索,从而可以增加重用的机会。将基本元素绑定到Meta-data的机制称为内容打包。
共享内容对象
一个共享内容对象由一个或多个素材(Asset)组成,它对外表现为一个学习资源,并且共享内容对象能够与所有学习管理系统(LMSs)通信。一个共享内容对象表现为一个细粒度,低等级的学习资源,它能通过SCORM运行时环境数据模型与学习管理系统通信。共享内容对象与资源的不同点是:共享内容对象使用标准IEEE ECMAScript应用程序接口与学习管理系统通信。
 
SCOs必须使用Initialize与Terminate方法通知LMS初始化与结束。下类列表列出了SCO需要提供的功能:
1. 发现LMS提供的API实例;
2. 使用API实例与LMS进行初始化通信和使用Getvalue()和Setvalue()方法读取或设置值。
3. 使用API实例通知LMS结束。
  SCO可以利用下列SCORM RET所提供的特性:
1. 任何符合SCORM RTE的LMS都能发布和跟踪SCOs,而不管这个SCOs是怎样产生的。
2. 任何符合SCORM RTE的LMS都能跟踪任何SCO,并且知道将何时开始和结束它。
3. 任何符合SCORM RTE的LMS都能使用相同的方法发布SCO。
 
内容组织
一个内容组织是一个类似于图表示方法来表示映射关系,它详细描述了所有学习活动的组织结构,如显示一些活动的彼此关联。学习活动可以由一些子活动组成,这样的结构可以嵌套任意深度。所有的叶子活动(没有子活动的活动)将会与一些学习资源想关联(SCO或素材)。含有子活动的活动称为簇(Clusters)。任何在内容组织中的活动能够引用其他的活动元数据。
 
序列与导航
序列仅作用于活动。LMS有责任解析定义在内容组织中的序列信息,并根据序列信息采取相应的动作。在SCORM中,序列信息定义在内容组织中,与有关的学习资源相分离。当一些学习资源具有自己的条件分支的情况下,它的序列是由自己控制,因此这些序列信息不能定义在内容组织中。
SCORM内容包
IMS内容包规范的目标是定义一个标准的结构模式,使之在不同系统间互换内容。
一个IMS内容包包含两个组件:
1. 一个清单文件(imsmanifest.xml),该文件描述了关联包内资源的结构。清单文件必须定义在内容包的根目录中。
2. 一些物理文件包装成的内容包。
 
包(package)
一个包指一个学习单位。它可以是课程的一部分或一个课程或一个课程集合,并且可以被独立分发。包可以被任意分解或组合,这样包必须自含有所有关于描述包本身的必须信息。
清单(Manifest)
清单是一个XML文档,它包含了关于包内内容结构的描述。一般的规则是一个包总是包含单个顶极的清单,该顶极清单包含一个或多个(子)清单。清单必须满足下列要求:
1. 清单文件应该是一个名为imsmanifest.xml的文件。
2. 清单文件imsmanifest.xml和任何它的控制文件(如DTD,XSD)必须放在内容包的根目录下。所有的控制文件必须是有效的XML格式,并含有元素。
3. 任何元素必须符合定义在IMS内容包XML绑定规范。
包交换文件(Package Interchange File,PIF)
包交换文件(PIF)为一个压缩文件,它包含了imsmanifest.xml,所有的控制文件和内容包中的资源引用。
清单文件的组成
一个清单文件描述了关于包内内容的信息。
  
清单文件由4个主要部分组成:
1. Meta-data:内容包数据描述的入口。
2. Organizations:包含了学习资源的组织或内容结构作为一个单位。
3. Resources:在内容包中定义的学习资源束(集合)。
4. (sub)Manifest(s):嵌套的子清单。
 
Meta-data
Meta-data是一种描述数据的数据。元数据用来描述整个内容包。元数据提供了内容包的自搜索和自发现的功能。它提供了一种描述内容包特征的机制。
Organizations
组织用来描述在内容包中的内容的组织方式。它可以包含一个或多个组织组件。IMS和SCORM都没有规定是否根据学习分类来定义组织。所以命名方式留个了内容开发者。
Resources
清单中的资源组件用于描述外部资源,也用户在包中定位物理文件。这些文件或许是媒体文件,文本文件,评估对象或其他的一些可表示为电子数据的内容。概念上文件之间的分组和关系表现为资源组件。联合资源通常被称为“内容”。
单个资源能被多个组件包含。在SCROM中,这些组件就是简单的Asset。如果这些组件能与LMS通信,则称之为SCO。
  
内容打包
将内容对象(Asset、SCOs等)绑定到Meta-data的机制称为内容打包。当使用XML绑定时需要遵守以下内容:
1. XML的格式需要符合W3C的XML1.0规范。
2. XML的格式必须符合IMS内容包信息模型所定义的结构。
  SCORM内容包应用特征:
1. 资源包应用程序特征:一个没有定义学习资源组织(SCOs或Asset)的学习资源集合的内容包。这些学习资源相互之间没有任何关系。
2. 内容集合包应用程序特征:一个由学习资源集合以及它们的静态结构和序列所组成的内容包。
清单文件
清单是一个关于包内容的目录组织结构,所有的清单都定义在imsmanifest.xml文件中。
  
内容层次结构
一个学习资源集合通常被组织成一个层次结构。一个层次的活动依赖于资源,它提供了特定的学习体验。只有叶子item(没有孩子的item)能引用一个学习资源。其他的条目必须包含至少一个条目。SCORM规定一个学习资源必须是连种类型之一,SCO或Asset。
如图所示:
  
SCORM元数据
概述
最重要的观点是,对于内容开发而言SCORM被描述为特定的建构块(SCORM内容模型组件)。SCORM描述了如何建构成内容集合以及在不同系统间打包和分发这些建构块。一旦SCORM内容模型组件被建构,这些组件将有一致的格式。用meta-data来描述这些组件,可以使组件在不同的系统中被搜索和发现。LMS能使用meta-data来得到关于内容组织的信息(如课程、模块等)。Meta-data也能在运行时确定什么样的模块组件需要传送到学习者面前。
Meta-data的目的是提供使用一个通用的方法和通用的命名来描述学习资源。通过元数据可以系统地搜索到学习资源并且返回学习资源以重复使用。
内容组织Meta-data
内容组织Meta-data用来描述内容组织整体,它描述了内容组织是什么,什么人能使用它,什么人能控制它等等,以及如何搜索它,如用它的title、version、简介等搜索。使用该Meta-data可以在内容仓库中或不同的系统更加容易地发现内容组织,已达到内容组织的重复使用目的。
  
活动Meta-data
活动Meta-data描述了一个活动的详细信息。
   
SCO Meta-data
SCO  Meta-data描述了一个SCO的详细信息。
  
Asset Meta-data
Asset Meta-data描述了一个Asset的详细信息。
   
SCORM序列
这部分描述了如果用XML中获取序列信息。这些信息定义在IMS清单文件中的某一活动。有两种方法建立序列规则:
1. 元素。元素为活动提供所有必须的序列规则和策略。
2. 元素。元素为几个活动提供所需的序列规则和策略的集合。
精通SCORM系列之二:SCORM RTE概述

http://www./member/article/794.html 
【原义光】精通SCORM系列之一:SCORM CAM概述  
 
SCORM Content Aggregation Model(CAM)概述
SCORM内容集合模型的目的是提供一个公共的方法,把学习资源组合成学习内容。它还定义了如何确认和描述学习内容,怎么整合成一个课程或课程的一部分,学习内容如何在学习管理系统和内容知识库这样的系统之间移动。许多组织在SCORM的开发方面做出了重要的贡献,如欧洲远程教学和分布式网络联盟(ARIADNE)、航空工业计算机培训委员会(AICC)、电气和电子工程师协会学习技术标准委员会(IEEE LTSC)、教学管理系统全球化学习联盟(IMS)等。
SCORM内容集合模型由下面几个内容组成:
1. 内容模型:定义了一次学习体验的内容组件的命名。
2. 内容包装:定义了一次学习体验的固定动作(内容结构)以及如何在不同的环境中组合学习资源的活动(内容打包)。
3. 元数据:一种详细描述控制模型组件实例的信息的机制。
4. 序列和导航:一组定义规则集的模型,描述了活动的固定次序。
  
SCORM内容模型
SCORM内容模型组件
SCORM内容模型描述了从学习资源中构造一次学习体验所需的SCORM的内容组件。SCORM定义了如何把一些低等级的、可共享的学习资源组合成一些高等级结构的对象的方法。SCORM内容模型由素材(Assets)、可共享内容对象(SCOs)以及内容组织(Content Organization)组成。
Asset
素材(Asset)是一种以电子化表现的媒体,如文本,图像,声音,以及任何可以用Web方式呈现给学习者的内容。一个以上的素材能被组合成新的单个素材。
 
一个Asset可以用Asset Meta-data来描述,并通过这些数据来在线搜索,从而可以增加重用的机会。将基本元素绑定到Meta-data的机制称为内容打包。
共享内容对象
一个共享内容对象由一个或多个素材(Asset)组成,它对外表现为一个学习资源,并且共享内容对象能够与所有学习管理系统(LMSs)通信。一个共享内容对象表现为一个细粒度,低等级的学习资源,它能通过SCORM运行时环境数据模型与学习管理系统通信。共享内容对象与资源的不同点是:共享内容对象使用标准IEEE ECMAScript应用程序接口与学习管理系统通信。
 
SCOs必须使用Initialize与Terminate方法通知LMS初始化与结束。下类列表列出了SCO需要提供的功能:
1. 发现LMS提供的API实例;
2. 使用API实例与LMS进行初始化通信和使用Getvalue()和Setvalue()方法读取或设置值。
3. 使用API实例通知LMS结束。
  SCO可以利用下列SCORM RET所提供的特性:
1. 任何符合SCORM RTE的LMS都能发布和跟踪SCOs,而不管这个SCOs是怎样产生的。
2. 任何符合SCORM RTE的LMS都能跟踪任何SCO,并且知道将何时开始和结束它。
3. 任何符合SCORM RTE的LMS都能使用相同的方法发布SCO。
 
内容组织
一个内容组织是一个类似于图表示方法来表示映射关系,它详细描述了所有学习活动的组织结构,如显示一些活动的彼此关联。学习活动可以由一些子活动组成,这样的结构可以嵌套任意深度。所有的叶子活动(没有子活动的活动)将会与一些学习资源想关联(SCO或素材)。含有子活动的活动称为簇(Clusters)。任何在内容组织中的活动能够引用其他的活动元数据。
 
序列与导航
序列仅作用于活动。LMS有责任解析定义在内容组织中的序列信息,并根据序列信息采取相应的动作。在SCORM中,序列信息定义在内容组织中,与有关的学习资源相分离。当一些学习资源具有自己的条件分支的情况下,它的序列是由自己控制,因此这些序列信息不能定义在内容组织中。
SCORM内容包
IMS内容包规范的目标是定义一个标准的结构模式,使之在不同系统间互换内容。
一个IMS内容包包含两个组件:
1. 一个清单文件(imsmanifest.xml),该文件描述了关联包内资源的结构。清单文件必须定义在内容包的根目录中。
2. 一些物理文件包装成的内容包。
 
包(package)
一个包指一个学习单位。它可以是课程的一部分或一个课程或一个课程集合,并且可以被独立分发。包可以被任意分解或组合,这样包必须自含有所有关于描述包本身的必须信息。
清单(Manifest)
清单是一个XML文档,它包含了关于包内内容结构的描述。一般的规则是一个包总是包含单个顶极的清单,该顶极清单包含一个或多个(子)清单。清单必须满足下列要求:
1. 清单文件应该是一个名为imsmanifest.xml的文件。
2. 清单文件imsmanifest.xml和任何它的控制文件(如DTD,XSD)必须放在内容包的根目录下。所有的控制文件必须是有效的XML格式,并含有元素。
3. 任何元素必须符合定义在IMS内容包XML绑定规范。
包交换文件(Package Interchange File,PIF)
包交换文件(PIF)为一个压缩文件,它包含了imsmanifest.xml,所有的控制文件和内容包中的资源引用。
清单文件的组成
一个清单文件描述了关于包内内容的信息。
  
清单文件由4个主要部分组成:
1. Meta-data:内容包数据描述的入口。
2. Organizations:包含了学习资源的组织或内容结构作为一个单位。
3. Resources:在内容包中定义的学习资源束(集合)。
4. (sub)Manifest(s):嵌套的子清单。
 
Meta-data
Meta-data是一种描述数据的数据。元数据用来描述整个内容包。元数据提供了内容包的自搜索和自发现的功能。它提供了一种描述内容包特征的机制。
Organizations
组织用来描述在内容包中的内容的组织方式。它可以包含一个或多个组织组件。IMS和SCORM都没有规定是否根据学习分类来定义组织。所以命名方式留个了内容开发者。
Resources
清单中的资源组件用于描述外部资源,也用户在包中定位物理文件。这些文件或许是媒体文件,文本文件,评估对象或其他的一些可表示为电子数据的内容。概念上文件之间的分组和关系表现为资源组件。联合资源通常被称为“内容”。
单个资源能被多个组件包含。在SCROM中,这些组件就是简单的Asset。如果这些组件能与LMS通信,则称之为SCO。
  
内容打包
将内容对象(Asset、SCOs等)绑定到Meta-data的机制称为内容打包。当使用XML绑定时需要遵守以下内容:
1. XML的格式需要符合W3C的XML1.0规范。
2. XML的格式必须符合IMS内容包信息模型所定义的结构。
  SCORM内容包应用特征:
1. 资源包应用程序特征:一个没有定义学习资源组织(SCOs或Asset)的学习资源集合的内容包。这些学习资源相互之间没有任何关系。
2. 内容集合包应用程序特征:一个由学习资源集合以及它们的静态结构和序列所组成的内容包。
清单文件
清单是一个关于包内容的目录组织结构,所有的清单都定义在imsmanifest.xml文件中。
  
内容层次结构
一个学习资源集合通常被组织成一个层次结构。一个层次的活动依赖于资源,它提供了特定的学习体验。只有叶子item(没有孩子的item)能引用一个学习资源。其他的条目必须包含至少一个条目。SCORM规定一个学习资源必须是连种类型之一,SCO或Asset。
如图所示:
  
SCORM元数据
概述
最重要的观点是,对于内容开发而言SCORM被描述为特定的建构块(SCORM内容模型组件)。SCORM描述了如何建构成内容集合以及在不同系统间打包和分发这些建构块。一旦SCORM内容模型组件被建构,这些组件将有一致的格式。用meta-data来描述这些组件,可以使组件在不同的系统中被搜索和发现。LMS能使用meta-data来得到关于内容组织的信息(如课程、模块等)。Meta-data也能在运行时确定什么样的模块组件需要传送到学习者面前。
Meta-data的目的是提供使用一个通用的方法和通用的命名来描述学习资源。通过元数据可以系统地搜索到学习资源并且返回学习资源以重复使用。
内容组织Meta-data
内容组织Meta-data用来描述内容组织整体,它描述了内容组织是什么,什么人能使用它,什么人能控制它等等,以及如何搜索它,如用它的title、version、简介等搜索。使用该Meta-data可以在内容仓库中或不同的系统更加容易地发现内容组织,已达到内容组织的重复使用目的。
  
活动Meta-data
活动Meta-data描述了一个活动的详细信息。
   
SCO Meta-data
SCO  Meta-data描述了一个SCO的详细信息。
  
Asset Meta-data
Asset Meta-data描述了一个Asset的详细信息。
   
SCORM序列
这部分描述了如果用XML中获取序列信息。这些信息定义在IMS清单文件中的某一活动。有两种方法建立序列规则:
1. 元素。元素为活动提供所有必须的序列规则和策略。
2. 元素。元素为几个活动提供所需的序列规则和策略的集合。
精通SCORM系列之二:SCORM RTE概述
http://www./member/article/796.html 
【原义光】精通SCORM系列之二:SCORM RET概述 
 
--------------------------------------------------------------------------------
 
08-11-2004 06:24:20  原义光 点击: 113 
  
运行时环境概述

SCORM运行时环境模型定义了:发布内容对象、在LMSs和SCOs之间建立通信机制以及根据LMSs和SCOs之间的通信信息来管理跟踪信息。在SCORM中,内容对象有两种:
 ● 可共享内容对象(SCOs), SCOs可以在运行时与LMS通信;
 ● 素材(Assets),Assets在运行时不与LMS通信;
运行时环境主要处理:
 ● 将内容对象传递到学习者的浏览器中(例如发布学习内容);
 ● 在需要时,内容对象如何与LMS互相通信;
 ● 内容对象的什么信息应该被跟踪以及LMS如何管理这些信息;
SCORM的目的是学习资源可以在不同的学习管理系统中重复使用和具有互操作性。要使这些成为可能,必须有公共的方法启动学习资源、公共的机制使学习资源和LMS进行交流,并要有预定义的语言和词汇形成这种交流的基础。实时运行环境(Run-Time Environment)就提供了这种公共机制。实时运行环境有三个方面: 运行(Launch)、应用编程接口(API)和数据模型(Data Model)。
 
 ● 运行(Launch)处理为LMSs定义了一个通用的方法来启动内容对象。在SCORM中定义了两种内容对象:Assests和SCOs。运行处理确立了在运行的内容对象与LMS之间的通信机制,这种通讯通过公共的API进行标准化。
 ● API是内容对象与LMS之间传送的信息的一种通信机制,使用API可以开始、结束、获取、存储数据等动作。
 ● 数据模型(Data Model)主要描述了在SCO与LMS之间传送信息数据的模型,如SCO的跟踪信息,SCO的完成状态、一次测试的成绩等数据。在学习者会话中,LMS必须维护来自SCO数据模型的状态信息。而SCO需要利用这些预先定义的信息,以便在不同的LMS中重复使用。
管理运行时环境

当学习者与内容对象交互(学习尝试)时,LMS需要处理学习者的导航请求。当LMS确定一个学习活动请求对学习者时有效的时候(一个学习活动与一个内容对象相关联),LMS才会将内容对象发布到学习者面前。

 
运行时环境临时模型

当学习者与内容对象交互的时候,一个与内容对象(Asset或SCO)相关联的学习活动(Activity)被确定,并且被传送到学习者的浏览器中。在学习者的一次学习尝试中,有几个关键的概念需要明确定义:
 ● Learner Attempt(学习尝试):
使用内容对象来跟踪学习者一次学习活动的努力与满意情况。一次学习尝试可以跨越一个或多个学习者的课程,并且在课程间可能被悬挂(暂停学习)。
 ● Learner Session(学习会话):
指在学习者访问一个内容对象时的一个不间断的时间段。
 ● Communication Session(通信会话):
指在一个内容对象(如:SCO)与一个应用程序接口之间的一个活动连接。
 ● Login Session(登录会话):
指学习者开始一个会话(登录),直到学习者终止会话(登出)之间的时间段。
对于Asset来说,RTE仅由独立的学习尝试和学习会话组成,每个发布的Asset的学习尝试都有相应的学习会话。当一个学习活动被确认,并且传送到学习者面前,学习尝试就开始了。在学习尝试期间,学习者与内容对象(SCO或Asset)交互。当学习内容被传送到学习者浏览器内并开始使用时,学习会话开始了。当运行的内容对象时SCO时,SCO会与LMS进行初始化通信,这样通信会话就开始了。当SCO与LMS终止通信时,通信会话就结束了。当SCO处于暂停状态离开(学习者未通过SCO)或SCO处于正常状态离开(学习者通过SCO要求离开学习尝试)时,学习者会话结束。对于SCO来说,学习者在正常状态下结束学习会话时,学习尝试也相应结束。对于Asset来说,学习者结束Asset时,学习尝试也结束了。
 
LMS必须定义一些运行时数据集合,在Learner Attempt期间,SCO可以使用该集合与LMS互相通信。对于一个SCO来讲,当Learner Attempt开始时,LMS必须建立和初始化新的运行时数据集合,以供SCO访问和使用。SCORM不规定必须完全重新建立一个运行时数据集合,但是对于SCO来说,它在访问和使用该数据集合的时候,感觉象在使用一个新的运行时数据集合。
LMS可以选择保存运行时数据集合,以供其他地方使用,例如报表、审核、统计等。LMS也可以选择不保存先前的学习尝试的运行时数据。只有在学习尝试被暂停的情况下,LMS必须保存该学习尝试的运行时数据集合,以便该学习尝试恢复运行时使用。注意,当学习尝试被暂停,Learner Session和Learner Attempt都被结束了,因此当下一次Learner Session开始时,将会产生新的运行时数据集合,因此LMS需要将上次保存的运行时数据集合填充到新的运行时数据集合中去。
 
具有单个Learner Session的Learner Attempt。
 
具有多个Learner Session的Learner Attempt。在这里Learner Session被暂停多次,而Learner Attempt随后被重新继续,直到Learner Session于正常状态下被终止。
 
多个Learner Attempt和多个Learner Session。
应用程序接口(API)

概述

使用一个公共的API是为了提供一个标准的方法,使用该方法可以使的SCOs和LMSs之间互相通信,以达到互动性与重用性。怎样执行API进行通信是SCO开发者的事,同样服务器端的LMS怎样提供一个API实例以供SCO使用也不是由SCORM规定的,具体实现细节由LMS厂商决定。
 
由上图可以看到API只是一些函数的集合,SCO使用该函数集合与LMS进行通信。
 ● API执行(API Implementation)是一个功能函数的一部分,API执行函数的实现与SCO开发者无关。LMS需要提供API执行的实现,而且对客户端的SCO呈现出部分公共的接口。
 ● API实例(API Instance)是API执行的上下文和状态,是与SCO操作时的一个实例。
API是SCO与LMS之间的通讯机制。根据作用API的方法分为三类:
 
使用API方法必须注意以下几点:
 ● 所有的方法名称是大小写敏感的;
 ● 所有的方法的参数也是大小写敏感的;
 ● 所有通过参数传递的数据都是字符串的形式。
会话方法有:
●  Initialize(“”)
●  Terminate(“”)
数据转换方法有:
●  Getvalue(parameter)
●  Setvalue(parameter_1, parameter_2)
● Commit(parameter)
支持方法有:
●  GetLastError()
● GetErrorString(parameter)
●  GetDiagnostic(parameter)
通信会话状态模型
通信会话状态模型定义了API实例的状态模型。API实例的状态有三种:
●  未初始化
●  运行中
●  终止
 
未初始化(Not Initialized)状态:这个通信状态表示在运行SCO时但是SCO还没有调用Initialize(“”)方法之前的API实例的状态。在这期间,SCO需要搜索LMS提供的API实例。SCO可以调用下面几个API方法:
 ● GetLastError()
 ● GetErrorString()
 ● GetDiagnostic()
运行(Running)状态:这个通信状态表示在SCO成功调用Initialize()方法之后,并且SCO成功调用Terminate()方法之前的API实例的状态。在这个状态中SCO允许使用下列API方法:
 ● Getvalue()
 ● Setvalue()
 ● Commit()
 ● GetLastError()
 ● GetErrorString()
 ● GetDiagnositic()
终止(Terminated)状态:这个通信状态表示SCO成功调用Terminate()方法之后API实例的状态。在这个状态中SCO允许使用下列API方法:
 ● GetLastError()
 ● GetErrorString()
 ● GetDiagnositic()
API执行的错误代码

所有的错误代码都是整形数,并且通过转换成一个字符串返回。错误代码可以使用0到65535之间的数字。其中0到999是被保留使用的。所以1000到65535之间任意的数字是任意使用的。
所有的API方法在执行完都需要提供一个错误代码,除了支持方法:GetLastError()、GetErrorString()、GetDiagnositic()。SCO可以使用GetLastError()方法来获得最近一次API方法调用后的错误代码,使用GetLastErrorString()来获得错误的描述信息。下面就是错误代码的分类表格:
 
LMS的职责

SCORM规定LMS必须提供一个符合标准的API实例,该实例实现了SCORM所规定的API方法。为了给SCO提供API实例,LMS必须实现如何访问或定位API实例的功能。为了实现该功能,LMS必须提供一个名为”API_1484_11”的对象, LMS必须提供使SCO通过ECMAScript脚本能够访问到该API实例对象。
LMS可以在浏览器的子窗口中执行SCO,也可以在一个子Frame中运行SCO。而SCO通过ECMAScript来搜索和定位API实例。
 
SCO的职责

SCO的责任是通过API与LMS进行通信。SCO必须能寻找和定位API实例,这样SCO就可以通过LMS对学习者进行跟踪。
在SCORM环境中,内容对象是运行于web浏览器中,通过浏览器提供的DOM树可以定位API实例对象。DOM对一个页面中的所有对象的结构进行了组织。SCO在定位API实例时必须寻找下列位置:
 1. 搜索当前窗口的父窗口,父窗口的父窗口,一直追溯上去,直到最顶层的窗口;
 2. 搜索开启窗口,即打开当前窗口的那个窗口;
 3. 搜索开启窗口,如果开启窗口有父窗口的话,也必须一直追溯上去,直到最顶层的窗口;
SCO必须按照这种方式搜索API实例,直到API实例被发现,为了让SCO能找到API实例,IEEE为API实例对象在DOM树中定义了一个强制性名字:API_1484_11。
 
一旦SCO找到了API实例,则SCO就可以调用API方法,如Initialize(“”)和Terminate(“”)。
IEEE标准已经提供了一个用ECMAScript搜索API实例的实现,如下:
var nFindAPITries = 0;
var API = null;
var maxTries = 500;
var APIVersion = ""; 
function ScanForAPI(win){
   while ((win.API_1484_11 == null) && (win.parent != null)
           && (win.parent != win)) {
      nFindAPITries++;
      if (nFindAPITries > maxTries) {
         alert("Error in finding API instance -- too deeply nested.");
         return null;
      }
      win = win.parent;
   }
   return win.API_1484_11;
}
function GetAPI() {
   if ((win.parent != null) && (win.parent != win)) {
      API = ScanForAPI(win.parent);
   }
   if ((API == null) && (win.opener != null)) {
      API = ScanForAPI(win.opener);
      if (API != null) {
         APIVersion = API.version;
      }
   }
}
 

SCORM运行时环境数据模型

概述
定义运行时数据模型的目的是为了在不同的LMS环境下,关于SCO的信息能被LMS所跟踪和记录。例如需要记录学习者的学习成绩,SCO必须通过一个公共的方法来向LMS提供学习者的学习成绩,如果没有这些公共的方法,LMS将不知道如果获取、存储和处理这些信息。
 
SCORM运行时数据模型基于IEEE LTST Computer Managed Instruction(CMI)的P1484.11.1草案标准。P1484.11.1标准定义了一些数据模型元素的集合,这个集合能被用于内容对象(如SCO)向LMS之间传递信息。集合可以包含有关学习者的信息、目标信息、成功状态以及完成状态。
SCORM运行时数据模型基于AICC CMI001,在SCORM版本1.2的时候,AICC完成了CMI001,并提交给了IEEE进行标准化。
为了标识数据模型,在SCORM运行时环境中,所有的数据模型元素的名称必须以”cmi”开头。它表示该数据模型元素是IEEE P1484.11.1数据模型定义的部分。因此你可以自己定义自己的数据模型的名称。唯一有限制的是,LMS必须实现数据模型所定义的动作。
所有的数据模型对于SCO来说都是选择使用的,SCO必须使用的API函数仅仅是Initialize(“”)和Terminate(“”)而已,而Setvalue()以及Getvalue()都不是必须使用的。
所有的数据模型元素都定义为ECMAScript的字符串类型,并使用的点符号(如cmi.success_status),
处理集合
有些数据模型元素表现为一个集合。在本文档中数据集合称为一条数据记录,一条数据记录应该被存放于数组的一个位置中。通过数组的索引号可以访问该数据记录,数组的索引号从0开始。下列数据模型元素被定义为数据记录的集合:
1. 来自学习者的注释(cmi.comments_from_learner)
2. 来自LMS的注释(cmi.comments_from_lms)
3. 目标(cmi.objectives)
4. 交互(cmi.interactions)
在调用Getvalue()请求时,有两种情况下会发生错误:
1. 常规获取失败:
数据集合元素请求溢出。请求的数据记录在数组指定的位置不存在。
2. 数据模型元素值没有设置:
请求的数据记录存在于数组指定的位置,但是该位置的值没有被初始化。
在集合中的数据模型元素使用点-数字来表示(如n.):
cmi.objective.n.completion_status
_count数据模型的关键字用来确定当前集合中数据模型元素的数量。例如:
 var numOfObjectives = Getvalue("cmi.objectives._count");
所有的集合型数据模型元素(除了cmi.comments_from_lms,这个数据元素对于SCO来说是只读的)能够有属于自己的子元素。
数据模型元素关键字
有三个数据模型关键字:_version、_count和_children。这几个关键字都是受LMS所管理,并且这些关键字反映的是其他数据模型元素的状态。这些关键字必须是只读的,如果SCO使用Setvalue()来设置这些关键字,则LMS应该设置错误代码”404”(表示数据模型是只读的),并且返回”false”。_count和_children只能应用于某一个数据模型元素上。
 _version:_version数据模型关键字用在确定被LMS支持的数据模型的版本。该关键字不能用于任何数据模型元素上。
 _count:_count数据模型关键字用于确定一个集合中当前所有数据模型元素的总数量。该值可以用作确定集合中下一个存储的位置。该关键字仅能用于集合类型的数据模型元素。
 _children:_children数据模型关键字用户确定一个父数据模型元素集合所拥有的所有的子数据模型元素。一个有效的_children请求应该返回一个字符串,该字符串包含所有的数据模型元素,并且用一个通用的分隔符进行分割。该关键字仅能用于含有子数据模型元素的数据模型元素。
保留分隔符
数据类型
每个数据模型元素必须关联一个定义的数据类型
characterstring:
一个字符串,定义在ISO10646标准中,ISO10646标准与UNICODE标准兼容。
localized_string_type:
一个本地化的字符串,在字符串前包含使用语言的指示器,以确定该字符串使用什么语言导入。SCORM使用保留定界符来表示字符串的语言。
格式:
“{lang=<language_type>}”<actual characterstring>
例如:
“{lang=en}The content presented an excellent point dealing with the topic.”
{lang=<language_type>}是可选的,默认值是en(English)。
language_type:
 描述语言类型的数据类型,语言代码定义的格式:
 language_type ::= langcode [“-” subcode]*
 
long_identifier_type:
 
short_identifier_type:
 
integer:
 
state:
 
real (10,7):
 
time (second, 10, 2):
 
timeinterval (second, 10,2):
扩展SCORM运行时数据模型
SCORM运行时数据模型不应该被扩展,如果LMS收到一个带有未定义数据模型元素未参数的API请求,LMS必须:
1. Getvalue(Parameter):LMS必须空的字符串,并且设置错误代码”401”——未定义的数据模型元素;
2. Setvalue(Parameter_1, Parameter_2):LMS必须返回”false”,并且设置错误代码”401”——未定义的数据模型元素;



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多