The following document provides high-level description for implementing cmi5 in LMS systems. For specific details see the cmi5 specification.
The LRS described is a service that is either natively implemented in the LMS or an external service integrated with the LMS. Integration between an LMS and a 3rd party LRS is outside the scope cmi5 (or xAPI) specifications. The AU (learning activity) described is authorized to access the LRS through the LMS. Note that the AU does not authenticate to the LRS.
The chart below provides a high-level description of the execution flow for an implementing cmi5 in an LMS. Each of the shapes in the chart are further explained (below the chart).
Import Course Structure
Check (initial) moveOn Rules
Upon enrollment the LMS needs to determine if any content (AU’s) has a default value for moveOn or is set to “NotApplicable”. This will result in
It should also be noted that course developers may unintentionally create courses with all default settings that are automatically (completely) satisfied on enrollment. (See Common Mistakes (#4) - http://aicc.github.io/CMI-5_Spec_Current/mistakes/ )
Determine Launch Mode
Your LMS may have business rules for the following learner scenarios:
Prior to launching content, you will need to create a “state document” specific to the launch. Based on each scenario you will need to set the launchMode (in the state document) to the correct value (Normal, Review, or Browse).
Prepare for Launch
LMS must create a state document with launch parameters. See Section - 10.0 xAPI State Data Model
LMS must create an agent profile document with learner language preference specified (and may provide an audio on/off preference also). See Section -11.0 xAPI Agent Profile Data Model
LMS sends Launched Statement. See Section 9.3.1 Launched
LMS issues an abandoned statement for previously launched AU sessions that were “abnormally” terminated. See Section - 9.3.6 Abandoned
LMS must have a service (Fetch URL) to provide an authentication token for access to the LRS. See Section - 8.2 Authorization Token Fetch URL.
LMS creates a URL launch line with LRS connect string parameters (including a reference to the Fetch URL). See Section - 8.1 Launch Method.
The LMS launches the content using one of the following methods:
See Section 13.1.4 AU Metadata - launchMethod
Evaluate AU Output
LMS Evaluates Statements from the AU session for conformance to the rules (as they are sent to the LRS)
LMS detects AU exit (e.g. return URL / Window Close)
AU Satisfied (verify MoveOn criteria)
LMS checks if moveOn criteria was met for the AU (As set by the LMS in the State document).
Block Satisfied (verify MoveOn criteria)
LMS checks other AUs and Block within the current block to determine if the block is satisfied (per the moveOn criteria defined in the course structure).
This includes traversing the hierarchy for nested blocks.
LMS verifies that all Blocks and their children are satisfied and that any AU’s at the root level of the course are completed.