Drupal and the LMS with LTI Matthew Radcliffe Kosada 1
IMS Global Learning Consortium IMS GLC is an association of educational institutions, publishers, solutions providers, etc... Learning Information Services (LIS) IMS GLC Web Services Learning Tools Interoperability (LTI) Question & Test Interoperability (QTI) Common Cartridge (CC) previously Content Packaging. http://www.imsglobal.org/specifications.html 2
What is LTI? LTI Launch Link - SSO from the LMS to an External Tool Use case: professor running external web site Use case: publisher running external web site Communicate back to the LMS LTI LIS Outcomes LIS Memberships extension 3
LTI Launch Link primary context_id, context_type launch_presentation_* custom_name OAuth 1.0a Tool Provider (external tool) maintains OAuth consumer information for a Tool Consumer (LMS). Tool Consumer redirects user to the Tool Provider URL as a signed request with parameters: resource link id, lti version, lti parameter type Hopefully the Tool Consumer sends recommended and optional parameters. 4
Single Sign-On LMS click link External Tool 5
LTI Launch Link primary context_id, context_type launch_presentation_* custom_name OAuth 1.0a Tool Provider (external tool) maintains OAuth consumer information for a Tool Consumer (LMS). Tool Consumer redirects user to the Tool Provider URL as a signed request with parameters: resource link id, lti version, lti parameter type Hopefully the Tool Consumer sends recommended and optional parameters. 6
LTI Launch Link OAuth 1.0a user_id user_image roles Tool Provider (external tool) maintains lis_person_name, OAuth consumer information for a Tool lis_person_name_family, Consumer (LMS). lis_person_name_full, Tool Consumer redirects user to lis_person_contact_email_ the Tool Provider URL as a signed request with parameters: primary context_id, context_type resource link id, lti version, lti parameter type launch_presentation_* Hopefully the Tool Consumer custom_name sends recommended and optional parameters. 7
Tool Consumer Tool Provider User LTI Launch Link OAuth person consumer Course context URL Redirect to Learning Resource 8
</imsx_poxbody> LIS Outcomes </resultscore> primary context_id, context_type launch_presentation_* custom_name </result> </resultrecord> </replaceresultrequest> </imsx_poxenveloperequest> LTI Launch parameter may include LIS URL. IMS GLC Web Services: HTTP Request with custom SOAP envelope Operations: replaceresult, readresult, deleteresult The LTI Tool Provider can post outcomes to a third party service with the LIS information the Tool Consumer provides. Numeric value 0.0-1.0 only. 9
LIS Outcomes <?xml version = "1.0" encoding = "UTF-8"?> custom_name LTI Launch parameter may include LIS URL. IMS Web Services: HTTP Request with custom SOAP <imsx_poxbody> envelope Operations: replaceresult, </sourcedguid> readresult, deleteresult The LTI Tool Provider can post <language>en</language> outcomes to a third party service with the LIS information </resultscore> the Tool Consumer provides. Numeric value 0.0-1.0 only. primary context_id, context_type launch_presentation_* <imsx_poxenveloperequest xmlns = "http:// www.imsglobal.org/services/ltiv1p1/xsd/ imsoms_v1p0"> <imsx_poxheader> <imsx_poxrequestheaderinfo> <imsx_version>v1.0</imsx_version> <imsx_messageidentifier>999999123</ imsx_messageidentifier> </imsx_poxrequestheaderinfo> </imsx_poxheader> <replaceresultrequest> <resultrecord> <sourcedguid> <sourcedid>3124567</sourcedid> <result> <resultscore> <textstring>0.92</textstring> </result> </resultrecord> </replaceresultrequest> </imsx_poxbody> </imsx_poxenveloperequest> 10
Tool Consumer Tool Provider User LTI Launch Link OAuth person consumer context URL Redirect to Outcome for Activity Course LIS Request Learning Resource 11
primary context_id, context_type launch_presentation_* LIS Memberships extension custom_name LTI is extendable. Memberships extension allows to pull user data related to a context into the Tool Provider i.e. course membership! Uses IMS GLC Web Services similar to Outcomes. Depends on context variable which is not required for LTI. Context is only available for a limited time after LTI launch. 12
Tool Consumer Tool Provider User LTI Launch Link OAuth person consumer context URL Redirect to Outcome for Activity LIS Request Memberships Memberships for context Course Learning Resource 13
LTI Capabilities in the LMS LMS Moodle 1.x w/ BasicLTI plugin LTI Launch Link LIS Outcomes LIS Memberships Common Cartridge Yes No Yes No Moodle 2.x Yes Yes No Yes, Bugs Instructure Canvas Yes No Yes Yes, Bugs Desire2Learn Yes N/A N/A N/A Blackboard Learn Yes Yes Yes Yes Sakai Yes Yes Yes Yes 14
LTI Tool Provider module Provides one path /lti and uses custom destination parameter, which corresponds to your Drupal page. OAuth via external library, not oauth module user name has suffix of domain property. Creates user account, if user_id provided otherwise uses generic user. LTI to Drupal role mapping. Extendable - Module developers can change behavior by implementing hooks. 15
Tool Consumer User LTI Launch Link OAuth person consumer context URL & custom destination parameter Learning Resource page in Drupal Redirect to Redirect to Outcome Entity Outcome for Activity LIS Request Memberships Memberships for context Course LTI Tool Provider Organic Group 16
Conclusions and the Future Works smoothly for LMS that provide the recommended parameters. LMS have lots of different interfaces, which may be easier or harder to implement a LTI link - permissions, etc... LTI 2.0 uses JSON Linked Data (jsonld). LTI Links and other resources may be included in Common Cartridge. There is no public Drupal module for this. Drupal as a Tool Consumer 17
Questions, Resources, Demo Questions? IMS Global Consortium: http://www.imsglobal.org LTI Tool Provider: http://drupal.org/project/ lti_tool_provider Drupal EDU: http://groups.drupal.org/drupal-education Slides: http://bit.ly/16wuoxf Drupal Camp Ohio: http://drupalcampohio.org 18