AL: Content Launch

CMI5 / XAPI (2016)

  • https://github.com/AICC/CMI-5_Spec_Current/blob/quartz/cmi5_spec.md
    • Course structure
      • Course contains Blocks - collection of AU in a logical grouping
      • Blocks contain Assignable Units (AU) - unit of tracking and management of learning content
      • Blocks may contain other Blocks
      • Activity: granular from an AU down to a specific interaction
    • Data Models
      • State
        • activityId, AU id, agent, registration id
        • launchMode: normal | browse |review
        • launchParameters
        • masteryScore
        • returnURL
        • moveOn: Completed | Passed | CompletedAndPassed | CompletedOrPassed | NA
      • Agent Profile: (language and audio) preferences of learner
      • Course Structure
        • Course: id, title, description
        • Block: id, title, description, objectives
        • Objective: id, title, description
        • AU:
          • id, title, description, objectives
          • activityType, entitlementKey
          • launchMethod, launchParameters, url
          • masteryScore, moveOn
    • Statements
      • Actor
        • Type: Agent, with "account"
      • Verbs
        • Initialized, Terminated
        • Passed, Failed
        • Completed, Satisfied, Waived
      • Object
        • Satisfied: AU, Block, or Course
        • Other verbs: always AU
    •  Launch
      • LMS launches AU, providing URL and auth info for connecting to an LRS


CMI5 Sequence Diagram code
note over LMS: learner authenticates as actor A
loop Blocks
    loop AUs
        LMS -> LRS: State API (AU_id, session_id, agent=A, registration=A_enrollment, masteryScore=10, moveOn=Passed)
        LMS -> LRS: Launched (AU_id, session_id, launchURL, launch_mode=Normal, moveOn=Passed)
        alt learner Waived from the AU
            LMS -> LRS: Waived (AU_id, session_id, reason=Tested Out | Equivalent | Administrative)
        else learner needs to Complete the AU
            LMS -> AU: launch?endpoint=LRS &fetch=fetch_url &actor=A & registration=A_enrollment & activityId=AU_id
            AU -> LMS: POST fetch_url
            LMS -> AU: auth_token
            AU -> LRS: Initialized, auth_token
            AU -> LRS: Completed, auth_token
            AU -> LRS: Passed OR Failed, score, masteryScore, auth_token
            alt learner's session closes
                AU -> LRS: Terminated, auth_token
            else learner's session times out
                LMS -> LRS: Abandoned
            end
        end
end
    LMS -> LRS: Satisfied(Block_id)
end
LMS -> LRS: Satisfied(Course_id)

LTI v1.1.1 (2012)

  • http://www.imsglobal.org/specs/ltiv1p1p1/implementation-guide
    • Terminology
      • Tool Consumer (TC) - LMS that's embedding the TP's resource 
      • Tool Provider (TP) - External system - could be another LMS - that is hosting the resource
      • Context - general term for course, project, group, etc.
        • urn:lti:context-type:ims/lis/CourseTemplate
        • urn:lti:context-type:ims/lis/CourseOffering
        • rn:lti:context-type:ims/lis/CourseSection
        • urn:lti:context-type:ims/lis/Group
      • resource_link_id - identifier of TC's resource
      • context_id - identifier of TP's context
    • Credentials
      1. TC-wide TP domain-specific credential
      2. TC-wide TP url-specific credential
      3. LTI-link-specific credential
    • IMS Learning Information Service can be used as a backend service to provide additional data between TC and TP.
      • TC sends LIS key to TP in launch sequence
    • Score routing
      • TC includes the service endpoint for the LIS Basic Outcomes Service and the lis_result_sourcedid to allow the TP to make service calls to set, read, and delete scores.
      • Server-to-server call - can by async and trusted.
    • Fields
      • Can add any extensions if prefixed with "ext_".
      • headers
        • lti_message_type=basic-lti-launch-request
        • lti_version=LTI-1p0
      • resource
        • resource_link_id: Must be unique per usage of the resource in the TC.
        • resource_link_title, [resource_link_description]
      • user
        • user_id - non-identifable, primary-key, not logical key
        • [user_image]
        • roles: list of LIS URNs for roles
        • lis_person_name_[given|family|full], lis_person_contact_email_primary
      • context
        • context_id, [context_type], context_title, context_label
      • presentation
        • launch_presentation_locale=en-US, launch_presentation_document_target=iframe|window

        • launch_presentation_css_url, launch_presentation_width, launch_presentation_height

        • launch_presentation_return_url: where to go after TP completes

      • tool consumer
        • tool_consumer_info_product_family_code=learn|desire2learn|sakai|eracer|olat|webct
        • tool_consumer_info_version
        • tool_consumer_instance_guid, tool_consumer_instance_name, [tool_consumer_instance_description], [tool_consumer_instance_url], tool_consumer_instance_contact_email
      • custom key-value pairs requested by TP as custom_keyname
      • security
      • LIS services for communicating "outcomes"
        • lis_result_sourcedid: unique value for the tuple (context_id, resource_link_id, user_id) to pass back scores to a grade book. Value may change between launches.
        • lis_outcome_service_url: URL for outcome service; shouldn't change between launches.
        • [lis_person_sourcedid], [lis_course_offering_sourcedid], [lis_course_section_sourcedid]
    • Basic Outcomes Service
      • XML
      • grade: 0.0 - 1.0
      • replaceResult (lis_result_sourcedid, score)

      • readResult (lis_result_sourcedid)
      • deleteResult (lis_result_sourcedid)
  • See summary slides in Architecture onboarding presentation


LTI v2 (2014)