Run-Time Environment

API

A standardized way for content to send information back and forth between the learner (content) and the LMS, regardless of what tools are used to develop the content.

ADL worked with AICC (organization developing standards for learning systems) to develop a web-friendly approach using JavaScript. 

Data Model

Once a communications link is established via an API, a specification was needed for what to communicate. Things like score, mastery, time in content, etc.

ADL worked with AICC to derive from the AICC CMI data model a starting set of data elements that content can "get" and "set" over the API.

A SCORM conformant LMS is required to implement an API consisting of 8 functions:

LMSInitialize()
LMSFinish()

LMSGetValue()
LMSSetValue()
LMSCommit()

LMSGetLastError()
LMSGetErrorString()
LMSGetDiagnostic() 

This API is implemented by what the SCORM calls an API Adapter.  It is important to note that content can only communicate with the LMS through this JavaScript API Adapter.

Examples:

  1. For minimal SCORM conformance, the only thing that a piece of content needs to do is call LMSInitialize() when it starts and then call LMSFinish()

  2. Suppose cmi.core.lesson_location is the data element that describes the user's location in the content.

    When the content begins (after it has called LMSInitialize();), it may want to make this call to find out where the user left off and return him to that point:

    strLastLocation = objAPI.LMSGetValue("cmi.core.lesson_location");

    When the content goes to another area, it might make this call to save the user's location:

    blnSuccess = objAPI.LMSSetValue("cmi.core.lesson_location", "page3");
    blnSuccess = objAPI.LMSCommit("");