SlideShare uma empresa Scribd logo
1 de 37
Baixar para ler offline
Advanced Issues in Building
       External LTI Tools
                           Charles Severance, Ph.D.
                   IMS Global Learning Consortium (IMS GLC)

                                       http://www.imsglobal.org/
                                       http://www.dr-chuck.com/

© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                                               1
IMS: Digital Learning Standards
                                                                           The information
                                                  Seamlessly               architecture for
             Free the                              connect                    learning
             content                              to learning




      IMS Common Cartridge                         IMS Learning Tools      IMS Learning Information
                                                  Interoperability (LTI)        Services (LIS)

© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                                                                                  2
IMS (Simple) LTI Consumer for
                           Moodle – Video From Marc




                                                  http://www.vimeo.com/7825070

© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                                                             3
Source Code - Download

•  Simple Sample Application – Classified Ads
         •  Classified Ad Software
         •  Key / Secret administration
         •  Basic LTI Utility Code
         •  http://www.dr-chuck.com/adlist/dist.zip

•  Launch from an LMS or test harness
         •  http://www.dr-chuck.com/lti/lms.php

© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                                  4
A Sample Tool – Classified Ads




© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                                  5
A Sample Tool – Classified Ads




© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                                  6
Outline

•  Solving Multi-Tenancy
•  Handling the Basic LTI Launch and Context
•  Patterns for Simple Authorization




© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                              7
Multi-Tenancy

             Multitenancy refers to a principle in software architecture
             where a single instance of the software runs on a server,
             serving multiple client organizations (tenants). Multitenancy is
             contrasted with a multi-instance architecture where separate
             software instances (or hardware systems) are set up for
             different client organizations. With a multitenant architecture,
             a software application is designed to virtually partition its data
             and configuration so that each client organization works with
             a customized/isolated virtual application instance.


                                  http://en.wikipedia.org/wiki/Multitenancy

© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                                                              8
Administration Screen




© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                              9
Multi-Tenancy Data Model

          create table blti_keys (!
               id     MEDIUMINT NOT NULL AUTO_INCREMENT,!
               oauth_consumer_key    CHAR(255) NOT NULL,!
               secret                CHAR(255) NULL,!
               name                  CHAR(255) NULL,!
               context_id            CHAR(255) NULL,!
               created_at            DATETIME NOT NULL,!
               updated_at            DATETIME NOT NULL,!
               PRIMARY KEY (id)!
           );!




© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                                        10
Advertisement Data Model




© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                              11
Multi-Tenancy Data Model

          create table ads (!
               id          MEDIUMINT NOT NULL AUTO_INCREMENT,!
               course_key      CHAR(255) NOT NULL,!
               user_key        CHAR(255) NULL,!
               user_name       CHAR(255) NULL,!
               title           CHAR(255) NULL,!
               description     TEXT(2048) NULL,!
               created_at      DATETIME NOT NULL,!
               updated_at      DATETIME NOT NULL,!
               PRIMARY KEY (id)!
           );!

                                                  Apologies to "3NF"
© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                                               12
Multi-Tenancy Data

mysql> select id, left(course_key,25),left(user_key,25),left(title,20) from ads;!
+----+---------------------------+---------------------------+----------------------+!
| id | left(course_key,25)       | left(user_key,25)         | left(title,20)       |!
+----+---------------------------+---------------------------+----------------------+!
| 6 | 12345:456434513            | 12345:292832126           | A Totally Sweet Titl |!
| 7 | 12345:456434513            | 12345:292832126           | Another Awesome Titl |!
| 8 | lmsng.school.edu:45643451 | lmsng.school.edu:29283212 | A TITLE               |!
| 9 | lmsng.school.edu:7601b0ed | lmsng.school.edu:f315ea76 | Honda 450 - 1983 - E |!
| 10 | lmsng.school.edu:7601b0ed | lmsng.school.edu:f315ea76 | Slightly Used App En |!
| 11 | lmsng.school.edu:7601b0ed | lmsng.school.edu:f315ea76 | Free Metal File Cabi |!
| 12 | ed.ac.uk:lti_demo         | ed.ac.uk:URN:X-WEBCT-b98f | Mountain Bike - New |!
| 13 | ed.ac.uk:lti_demo         | ed.ac.uk:URN:X-WEBCT-b98f | Two Premiere Tickets |!
| 14 | ed.ac.uk:lti_demo         | ed.ac.uk:URN:X-WEBCT-b98f | Monthly Bus Pass to |!
+----+---------------------------+---------------------------+----------------------+!



             We must namespace the primary keys (user_id, context_id)
             with the oauth_consumer_key to isolate courses and users
© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                                                                 13
Handling the Basic LTI Launch

•  A utility library is provided that intercepts and
       processes launches

      require_once '../ims-blti/blti.php';!
      require_once("db.php");!
      $context = new BLTI(array('table' => 'blti_keys'));!
      if ( $context->complete ) exit();!
      if ( ! $context->valid ) {!
          print "Could not establish context: ".$context->message."n";!
          exit();!
      }!



© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                                                       14
Handling the Basic LTI Launch

•  The "context" is either taken from the launch or
       restored from the PHP session – like a filter

      require_once '../ims-blti/blti.php';!
      require_once("db.php");!
      $context = new BLTI(array('table' => 'blti_keys'));!
      if ( $context->complete ) exit();!
      if ( ! $context->valid ) {!
          print "Could not establish context: ".$context->message."n";!
          exit();!
      }!



© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                                                       15
The Context

•  The context contains information from the launch
         •  Resource information
         •  User Information
         •  Course (aka context) information
         •  Organizational Information
         •  Launch Authentication Information



© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                                  16
The Context – Supplied Methods
                   $context->getCourseKey() = 12345:456434513!
                   !
                   $context->getCourseName() = SI182!
                   !
                   $context->getUserKey() = 12345:292832126!
                   !
                   $context->isInstructor() = true/false!
                   !
                   $context->getUserEmail() = jane@school.edu!
                   !
                   $context->getUserShortName() = jane@school.edu!
                   !
                   $context->getUserName() = Jane Q. Public!
                   !
                   $context->getConsumerKey() = 12345!


© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                                                 17
Simple Authorization

•  With the data model, we need to know who can
       edit which ads in our table
mysql> select id, left(course_key,25),left(user_key,25),left(title,20) from ads;!
+----+---------------------------+---------------------------+----------------------+!
| id | left(course_key,25)       | left(user_key,25)         | left(title,20)       |!
+----+---------------------------+---------------------------+----------------------+!
| 6 | 12345:456434513            | 12345:292832126           | A Totally Sweet Titl |!
| 7 | 12345:456434513            | 12345:292832126           | Another Awesome Titl |!
| 8 | lmsng.school.edu:45643451 | lmsng.school.edu:29283212 | A TITLE               |!
| 9 | lmsng.school.edu:7601b0ed | lmsng.school.edu:f315ea76 | Honda 450 - 1983 - E |!
| 10 | lmsng.school.edu:7601b0ed | lmsng.school.edu:f315ea76 | Slightly Used App En |!
| 11 | lmsng.school.edu:7601b0ed | lmsng.school.edu:f315ea76 | Free Metal File Cabi |!
| 12 | ed.ac.uk:lti_demo         | ed.ac.uk:URN:X-WEBCT-b98f | Mountain Bike - New |!
| 13 | ed.ac.uk:lti_demo         | ed.ac.uk:URN:X-WEBCT-b98f | Two Premiere Tickets |!
| 14 | ed.ac.uk:lti_demo         | ed.ac.uk:URN:X-WEBCT-b98f | Monthly Bus Pass to |!
+----+---------------------------+---------------------------+----------------------+!

© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                                                                18
Instructor:!
                        SELECT * FROM ads WHERE id='7' AND    !
                           course_key='12345:456434513'!
                        !
                        Student:!
                        SELECT * FROM ads WHERE id='7' AND!
                            course_key='12345:456434513 AND !
                            user_key = '12345:292832126'!

mysql> select id, left(course_key,25),left(user_key,25),left(title,20) from ads;!
+----+---------------------------+---------------------------+----------------------+!
| id | left(course_key,25)       | left(user_key,25)         | left(title,20)       |!
+----+---------------------------+---------------------------+----------------------+!
| 6 | 12345:456434513            | 12345:292832126           | A Totally Sweet Titl |!
| 7 | 12345:456434513            | 12345:292832126           | Another Awesome Titl |!
| 8 | lmsng.school.edu:45643451 | lmsng.school.edu:29283212 | A TITLE               |!
| 9 | lmsng.school.edu:7601b0ed | lmsng.school.edu:f315ea76 | Honda 450 - 1983 - E |!
| 10 | lmsng.school.edu:7601b0ed | lmsng.school.edu:f315ea76 | Slightly Used App En |!
| 11 | lmsng.school.edu:7601b0ed | lmsng.school.edu:f315ea76 | Free Metal File Cabi |!
| 12 | ed.ac.uk:lti_demo         | ed.ac.uk:URN:X-WEBCT-b98f | Mountain Bike - New |!
| 13 | ed.ac.uk:lti_demo         | ed.ac.uk:URN:X-WEBCT-b98f | Two Premiere Tickets |!
| 14 | ed.ac.uk:lti_demo         | ed.ac.uk:URN:X-WEBCT-b98f | Monthly Bus Pass to |!
+----+---------------------------+---------------------------+----------------------+!

© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                                                                19
Show/Hide Buttons




© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                              20
Showing Buttons For Edit/
                     Delete

  <php!
  if ( $context->isInstructor() || !
        $row['user_key'] == $context->getUserKey() ) { ?>      !
      <a href="<self?>?action=edit&id=<row[id]?>">edit<a>      !
      <a href="<self?>?action=delete&id=<row[id]?>">delete<a>!
  <php!
      }?>!




© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                                           21
Advanced Topic:
         System and Course-Mapped Keys




© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                              22
Use cases

•  System-scoped key – The Consumer sends us a
   context_id which allows many different courses to
   use our tool independently – this is a typical
   approach
•  Course-mapped key – in this case, you ignore the
   consumer-provided context_id and specify the
   context_id inside of your (Producer) system

© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                                   23
System-Scoped
                               Key=zap
                                                  Producer
                               cid=a1d2
                                                  zap(sys)
                               cid=1234
                                                  fun(sys)
                                cid=654
                                                  zap:a1d2
                               Key=fun            zap:1234
                               cid=a1d2            zap:654
                               cid=9876           fun:a1d2
                                cid=345           fun:9876
                                                   fun:345
                              Consumers
© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                                         24
Key=zap            Course-Scoped Keys
                               cid=a1d2
                               cid=1234                           Producer
                                                                  zap(sys)
                                                                east (c=1555)
                               Key=east                         west(c=1555)
                               cid=a1d2
                               cid=1234                            zap:a1d2
                                                                   zap:1234
                                                                     1555
                               Key=west
                               cid=9876
                                                  With course-scoped keys, students from
                                                  multiple contexts in multiple Consumers can
                              Consumers           meet and collaborate in the producer.
© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                                                                        25
Course-Scoped Keys

•  In the sample application, each key as a
       context_id field – if it is null, the key is a system-
       scoped key.

  mysql> select id,oauth_consumer_key,secret,context_id from blti_keys;!
  +----+--------------------+--------+------------+!
  | id | oauth_consumer_key | secret | context_id |!
  +----+--------------------+--------+------------+!
  | 4 | 12345               | secret | NULL       |!
  | 5 | admin               | secret | 999999     |!
  +----+--------------------+--------+------------+!

© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                                                  26
Configuration using
         resource_link_id




© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                              27
Use Case: Picking a Video

•  If our Producer is video archive and the purpose of
       each "placement" in a course is to play a particular
       video using BLTI to gain access to the video
•  Problem: How to place BLTI several places in the
       course but refer to different videos in each
       placement?

© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                                      28
Goal State

                 Week 1                           Scene
                  Video snippet                     1
                  Discussion board
                 Week 2                                   Scene
                  Video snippet                             4
                  Wiki
                 Week 3
                  Video Snippet                   Scene
                  Midterm Exam                      9



© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                                              29
Understanding resource_link_id
                        Key=987 cid=a1b2
                 Week 1
                  Video snippet                   The resource_link_id
                                  rlid=9c45
                                                  is unique for each
                  Discussion board                placement of Basic LTI
                 Week 2                           in a course. When
                  Video snippet   rlid=23b5       each of the resources
                  Wiki                            is launched you get
                 Week 3                           key, cid, and rlid.
                                                  Resource_link_id is
                  Video Snippet   rlid=1725       required on all
                  Midterm Exam                    launches.



© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                                                   30
Using resource_link_id
                        Key=987 cid=a1b2
                 Week 1
                  Video snippet   rlid=9c45
                  Discussion board

                          You need a table in your application which maps from a
                          key:resource_link_id (i.e. 987:9c45) to some local
                          resource identified within your application. Until the
                          Instructor selects a resource within your tool, it is
                          "unconfigured"




© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                                                               31
Understanding resource_link_id
                        Key=987 cid=a1b2
                 Week 1
                  Video snippet   rlid=9c45
                  Discussion board


                Not                                 Pick          Scene       Scene
               Config                              Video            1           1

             Learner                              Instructor     Learner     Instructor
                      Not configured                           987:9c45 = matrix_scene_01

© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                                                                      32
Custom Field Notes

•  In a Common Cartridge, Basic LTI Resource Links have a custom
   field which can be used for this purpose
•  The custom fields UI varies from LMS to LMS and may not even
   be available to the Instructor
•  Using resource_link_id keeps the configuration UX in the
   Producer and keeps from needing per-LMS documentation
•  A good practice is to use custom_fields in cartridges and if no
   custom field is present fall back to resource_link_id provisioning



© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                                                33
Adding Basic LTI to an Existing
         Application




© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                              34
Adding Support for BLTI

•  Must deal with multi-tenancy gracefully – it will not
   look nice if your UI shows user names like
   fbbf213:29938jsha01929
•  Add a launch-point to provision courses, users, set
       roles, and provision a session and redirect to tool page
•  May want to come up with a UI with little or no outer
   navigation so it looks more like a "tool"

© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                                          35
Open Issue - TODO

•  Cookies are getting less and less well supported
       inside frames
•  I should update this sample code to work through
       that




© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                                  36
Questions....

•  IMS – www.imsglobal.org
•  IMS Basic LTI Video – www.vimeo.com/8073453
•  Marc's Dinosaur Video – www.vimeo.com/7825070
•  cseverance@imsglobal.org
•  www.dr-chuck.com


© Copyright 2010 IMS Global Learning Consortium
All Rights Reserved.                               37

Mais conteúdo relacionado

Mais procurados

Code your Own: Authentication Provider for Blackboard Learn
Code your Own: Authentication Provider for Blackboard LearnCode your Own: Authentication Provider for Blackboard Learn
Code your Own: Authentication Provider for Blackboard LearnDan Rinzel
 
Just fire lti at it!
Just fire lti at it!Just fire lti at it!
Just fire lti at it!kingmook
 
2011 01-14 (ucm) e madrid griffiths ub oferta de servicios flexibles para ims...
2011 01-14 (ucm) e madrid griffiths ub oferta de servicios flexibles para ims...2011 01-14 (ucm) e madrid griffiths ub oferta de servicios flexibles para ims...
2011 01-14 (ucm) e madrid griffiths ub oferta de servicios flexibles para ims...eMadrid network
 
Make the connection with your LMS
Make the connection with your LMSMake the connection with your LMS
Make the connection with your LMSMahara Hui
 
Federated Access Management 102
Federated Access Management 102Federated Access Management 102
Federated Access Management 102JISC.AM
 

Mais procurados (6)

Code your Own: Authentication Provider for Blackboard Learn
Code your Own: Authentication Provider for Blackboard LearnCode your Own: Authentication Provider for Blackboard Learn
Code your Own: Authentication Provider for Blackboard Learn
 
2011 03-03-blti-umass
2011 03-03-blti-umass2011 03-03-blti-umass
2011 03-03-blti-umass
 
Just fire lti at it!
Just fire lti at it!Just fire lti at it!
Just fire lti at it!
 
2011 01-14 (ucm) e madrid griffiths ub oferta de servicios flexibles para ims...
2011 01-14 (ucm) e madrid griffiths ub oferta de servicios flexibles para ims...2011 01-14 (ucm) e madrid griffiths ub oferta de servicios flexibles para ims...
2011 01-14 (ucm) e madrid griffiths ub oferta de servicios flexibles para ims...
 
Make the connection with your LMS
Make the connection with your LMSMake the connection with your LMS
Make the connection with your LMS
 
Federated Access Management 102
Federated Access Management 102Federated Access Management 102
Federated Access Management 102
 

Semelhante a Advanced LTI Tools

Building Scalable IMS LTI Tools Using the TSUGI Framework
Building Scalable IMS LTI Tools Using the TSUGI FrameworkBuilding Scalable IMS LTI Tools Using the TSUGI Framework
Building Scalable IMS LTI Tools Using the TSUGI FrameworkCharles Severance
 
The Coming Functionality Mashup
The Coming Functionality MashupThe Coming Functionality Mashup
The Coming Functionality MashupCharles Severance
 
The Developer is the New CIO: How Vendors Adapt to the Changing Landscape
The Developer is the New CIO: How Vendors Adapt to the Changing LandscapeThe Developer is the New CIO: How Vendors Adapt to the Changing Landscape
The Developer is the New CIO: How Vendors Adapt to the Changing LandscapeLauren Cooney
 
Cooking security sans@night
Cooking security sans@nightCooking security sans@night
Cooking security sans@nightjtimberman
 
01 introduction to entity framework
01   introduction to entity framework01   introduction to entity framework
01 introduction to entity frameworkMaxim Shaptala
 
Updated Version: Tsugi Overview
Updated Version: Tsugi OverviewUpdated Version: Tsugi Overview
Updated Version: Tsugi OverviewCharles Severance
 
Do You Really Need a Data Warehouse? Avoid the Downsides Typically Associated...
Do You Really Need a Data Warehouse? Avoid the Downsides Typically Associated...Do You Really Need a Data Warehouse? Avoid the Downsides Typically Associated...
Do You Really Need a Data Warehouse? Avoid the Downsides Typically Associated...Senturus
 
Database Basics with PHP -- Connect JS Conference October 17th, 2015
Database Basics with PHP -- Connect JS Conference October 17th, 2015Database Basics with PHP -- Connect JS Conference October 17th, 2015
Database Basics with PHP -- Connect JS Conference October 17th, 2015Dave Stokes
 
Architecting your Frontend
Architecting your FrontendArchitecting your Frontend
Architecting your FrontendRuben Teijeiro
 
Introduction to Cloud Storage
Introduction to Cloud StorageIntroduction to Cloud Storage
Introduction to Cloud StorageDell EMC
 
Private Cloud Platform as a Service
Private Cloud Platform as a ServicePrivate Cloud Platform as a Service
Private Cloud Platform as a ServiceJim Kaskade
 
设计开发实效 Web2.0 应用程序
设计开发实效 Web2.0 应用程序设计开发实效 Web2.0 应用程序
设计开发实效 Web2.0 应用程序Shawn Zhu
 
Ign ( 2016 ) ( 2015 )
Ign ( 2016 ) ( 2015 )Ign ( 2016 ) ( 2015 )
Ign ( 2016 ) ( 2015 )Tina Jordan
 
Z Data Tools and APIs Overview
Z Data Tools and APIs OverviewZ Data Tools and APIs Overview
Z Data Tools and APIs OverviewHCLSoftware
 
IMEXresearch software defined storage
IMEXresearch software defined storageIMEXresearch software defined storage
IMEXresearch software defined storageIMEX Research
 

Semelhante a Advanced LTI Tools (20)

Building Scalable IMS LTI Tools Using the TSUGI Framework
Building Scalable IMS LTI Tools Using the TSUGI FrameworkBuilding Scalable IMS LTI Tools Using the TSUGI Framework
Building Scalable IMS LTI Tools Using the TSUGI Framework
 
The Coming Functionality Mashup
The Coming Functionality MashupThe Coming Functionality Mashup
The Coming Functionality Mashup
 
The Developer is the New CIO: How Vendors Adapt to the Changing Landscape
The Developer is the New CIO: How Vendors Adapt to the Changing LandscapeThe Developer is the New CIO: How Vendors Adapt to the Changing Landscape
The Developer is the New CIO: How Vendors Adapt to the Changing Landscape
 
Cooking security sans@night
Cooking security sans@nightCooking security sans@night
Cooking security sans@night
 
01 introduction to entity framework
01   introduction to entity framework01   introduction to entity framework
01 introduction to entity framework
 
01 introduction to entity framework
01   introduction to entity framework01   introduction to entity framework
01 introduction to entity framework
 
Updated Version: Tsugi Overview
Updated Version: Tsugi OverviewUpdated Version: Tsugi Overview
Updated Version: Tsugi Overview
 
Do You Really Need a Data Warehouse? Avoid the Downsides Typically Associated...
Do You Really Need a Data Warehouse? Avoid the Downsides Typically Associated...Do You Really Need a Data Warehouse? Avoid the Downsides Typically Associated...
Do You Really Need a Data Warehouse? Avoid the Downsides Typically Associated...
 
Tsugi Workshop @ Notre Dame
Tsugi Workshop @ Notre DameTsugi Workshop @ Notre Dame
Tsugi Workshop @ Notre Dame
 
Database Basics with PHP -- Connect JS Conference October 17th, 2015
Database Basics with PHP -- Connect JS Conference October 17th, 2015Database Basics with PHP -- Connect JS Conference October 17th, 2015
Database Basics with PHP -- Connect JS Conference October 17th, 2015
 
Architecting your Frontend
Architecting your FrontendArchitecting your Frontend
Architecting your Frontend
 
Introduction to Cloud Storage
Introduction to Cloud StorageIntroduction to Cloud Storage
Introduction to Cloud Storage
 
Private Cloud Platform as a Service
Private Cloud Platform as a ServicePrivate Cloud Platform as a Service
Private Cloud Platform as a Service
 
Dit yvol3iss8
Dit yvol3iss8Dit yvol3iss8
Dit yvol3iss8
 
设计开发实效 Web2.0 应用程序
设计开发实效 Web2.0 应用程序设计开发实效 Web2.0 应用程序
设计开发实效 Web2.0 应用程序
 
Ign ( 2016 ) ( 2015 )
Ign ( 2016 ) ( 2015 )Ign ( 2016 ) ( 2015 )
Ign ( 2016 ) ( 2015 )
 
Z Data Tools and APIs Overview
Z Data Tools and APIs OverviewZ Data Tools and APIs Overview
Z Data Tools and APIs Overview
 
Dit yvol3iss4
Dit yvol3iss4Dit yvol3iss4
Dit yvol3iss4
 
IMEXresearch software defined storage
IMEXresearch software defined storageIMEXresearch software defined storage
IMEXresearch software defined storage
 
Erp Implementation
Erp ImplementationErp Implementation
Erp Implementation
 

Mais de Charles Severance

LTI Advantage: The Next Big Thing in LMS Integration
LTI Advantage: The Next Big Thing in LMS IntegrationLTI Advantage: The Next Big Thing in LMS Integration
LTI Advantage: The Next Big Thing in LMS IntegrationCharles Severance
 
Sakai Hierarchy Framework Changes Overview (not implemented)
Sakai Hierarchy  Framework Changes Overview (not implemented)Sakai Hierarchy  Framework Changes Overview (not implemented)
Sakai Hierarchy Framework Changes Overview (not implemented)Charles Severance
 
Building the NGDLE with Tsugi (次) and Koseu(코스)
Building the NGDLE with Tsugi (次) and Koseu(코스)Building the NGDLE with Tsugi (次) and Koseu(코스)
Building the NGDLE with Tsugi (次) and Koseu(코스)Charles Severance
 
Exploring the Next Generation Digital Learning Ecosystem
Exploring the Next Generation Digital Learning EcosystemExploring the Next Generation Digital Learning Ecosystem
Exploring the Next Generation Digital Learning EcosystemCharles Severance
 
Exploring the Next Generation Digital Learning Environment with Tsugi
Exploring the Next Generation Digital Learning Environment with TsugiExploring the Next Generation Digital Learning Environment with Tsugi
Exploring the Next Generation Digital Learning Environment with TsugiCharles Severance
 
Building the Next Generation Teaching and Learning Environment with Tsugi (次)
Building the Next Generation Teaching and Learning Environment with Tsugi (次)Building the Next Generation Teaching and Learning Environment with Tsugi (次)
Building the Next Generation Teaching and Learning Environment with Tsugi (次)Charles Severance
 
Beyond MOOCs: Open Education at Scale
Beyond MOOCs: Open Education at ScaleBeyond MOOCs: Open Education at Scale
Beyond MOOCs: Open Education at ScaleCharles Severance
 
Building the Next Generation Teaching and Learning Environment
Building the Next Generation Teaching and Learning EnvironmentBuilding the Next Generation Teaching and Learning Environment
Building the Next Generation Teaching and Learning EnvironmentCharles Severance
 
CloudSocial: A New Approach to Enabling Open Content for Broad Reuse
CloudSocial: A New Approach to Enabling Open Content for Broad ReuseCloudSocial: A New Approach to Enabling Open Content for Broad Reuse
CloudSocial: A New Approach to Enabling Open Content for Broad ReuseCharles Severance
 
Next Generation Teaching and Learning
Next Generation Teaching and LearningNext Generation Teaching and Learning
Next Generation Teaching and LearningCharles Severance
 
Next Generation Teaching and Learning
Next Generation Teaching and LearningNext Generation Teaching and Learning
Next Generation Teaching and LearningCharles Severance
 
A View on the Future of Sakai
A View on the Future of SakaiA View on the Future of Sakai
A View on the Future of SakaiCharles Severance
 
The Next Generation of Teaching and Learning Tools
The Next Generation of Teaching and Learning ToolsThe Next Generation of Teaching and Learning Tools
The Next Generation of Teaching and Learning ToolsCharles Severance
 
Standards to Enable an Open Learning Ecosystem
Standards to Enable an Open Learning EcosystemStandards to Enable an Open Learning Ecosystem
Standards to Enable an Open Learning EcosystemCharles Severance
 
Standards Update: Apereo 2015
Standards Update: Apereo 2015Standards Update: Apereo 2015
Standards Update: Apereo 2015Charles Severance
 
Apereo 2015: The State of Sakai
Apereo 2015: The State of SakaiApereo 2015: The State of Sakai
Apereo 2015: The State of SakaiCharles Severance
 
The Trials and Tribulations of Predicting the Future of Educational Technology
The Trials and Tribulations of Predicting the Future of Educational TechnologyThe Trials and Tribulations of Predicting the Future of Educational Technology
The Trials and Tribulations of Predicting the Future of Educational TechnologyCharles Severance
 
MOOCs – The Future Is Getting Clearer
MOOCs – The Future Is Getting ClearerMOOCs – The Future Is Getting Clearer
MOOCs – The Future Is Getting ClearerCharles Severance
 

Mais de Charles Severance (20)

LTI Advantage: The Next Big Thing in LMS Integration
LTI Advantage: The Next Big Thing in LMS IntegrationLTI Advantage: The Next Big Thing in LMS Integration
LTI Advantage: The Next Big Thing in LMS Integration
 
Hierarchy requirements
Hierarchy requirements Hierarchy requirements
Hierarchy requirements
 
Sakai Hierarchy Framework Changes Overview (not implemented)
Sakai Hierarchy  Framework Changes Overview (not implemented)Sakai Hierarchy  Framework Changes Overview (not implemented)
Sakai Hierarchy Framework Changes Overview (not implemented)
 
Building the NGDLE with Tsugi (次) and Koseu(코스)
Building the NGDLE with Tsugi (次) and Koseu(코스)Building the NGDLE with Tsugi (次) and Koseu(코스)
Building the NGDLE with Tsugi (次) and Koseu(코스)
 
Exploring the Next Generation Digital Learning Ecosystem
Exploring the Next Generation Digital Learning EcosystemExploring the Next Generation Digital Learning Ecosystem
Exploring the Next Generation Digital Learning Ecosystem
 
Exploring the Next Generation Digital Learning Environment with Tsugi
Exploring the Next Generation Digital Learning Environment with TsugiExploring the Next Generation Digital Learning Environment with Tsugi
Exploring the Next Generation Digital Learning Environment with Tsugi
 
Building the Next Generation Teaching and Learning Environment with Tsugi (次)
Building the Next Generation Teaching and Learning Environment with Tsugi (次)Building the Next Generation Teaching and Learning Environment with Tsugi (次)
Building the Next Generation Teaching and Learning Environment with Tsugi (次)
 
Beyond MOOCs: Open Education at Scale
Beyond MOOCs: Open Education at ScaleBeyond MOOCs: Open Education at Scale
Beyond MOOCs: Open Education at Scale
 
Building the Next Generation Teaching and Learning Environment
Building the Next Generation Teaching and Learning EnvironmentBuilding the Next Generation Teaching and Learning Environment
Building the Next Generation Teaching and Learning Environment
 
CloudSocial: A New Approach to Enabling Open Content for Broad Reuse
CloudSocial: A New Approach to Enabling Open Content for Broad ReuseCloudSocial: A New Approach to Enabling Open Content for Broad Reuse
CloudSocial: A New Approach to Enabling Open Content for Broad Reuse
 
Next Generation Teaching and Learning
Next Generation Teaching and LearningNext Generation Teaching and Learning
Next Generation Teaching and Learning
 
Next Generation Teaching and Learning
Next Generation Teaching and LearningNext Generation Teaching and Learning
Next Generation Teaching and Learning
 
The Game of MOOCs
The Game of MOOCsThe Game of MOOCs
The Game of MOOCs
 
A View on the Future of Sakai
A View on the Future of SakaiA View on the Future of Sakai
A View on the Future of Sakai
 
The Next Generation of Teaching and Learning Tools
The Next Generation of Teaching and Learning ToolsThe Next Generation of Teaching and Learning Tools
The Next Generation of Teaching and Learning Tools
 
Standards to Enable an Open Learning Ecosystem
Standards to Enable an Open Learning EcosystemStandards to Enable an Open Learning Ecosystem
Standards to Enable an Open Learning Ecosystem
 
Standards Update: Apereo 2015
Standards Update: Apereo 2015Standards Update: Apereo 2015
Standards Update: Apereo 2015
 
Apereo 2015: The State of Sakai
Apereo 2015: The State of SakaiApereo 2015: The State of Sakai
Apereo 2015: The State of Sakai
 
The Trials and Tribulations of Predicting the Future of Educational Technology
The Trials and Tribulations of Predicting the Future of Educational TechnologyThe Trials and Tribulations of Predicting the Future of Educational Technology
The Trials and Tribulations of Predicting the Future of Educational Technology
 
MOOCs – The Future Is Getting Clearer
MOOCs – The Future Is Getting ClearerMOOCs – The Future Is Getting Clearer
MOOCs – The Future Is Getting Clearer
 

Último

Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfMr Bounab Samir
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptxmary850239
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfSpandanaRallapalli
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxAshokKarra1
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxthorishapillay1
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4MiaBumagat1
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSJoshuaGantuangco2
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...JhezDiaz1
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17Celine George
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfphamnguyenenglishnb
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfTechSoup
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptxSherlyMaeNeri
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parentsnavabharathschool99
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYKayeClaireEstoconing
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxCarlos105
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 

Último (20)

Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
 
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptxYOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdf
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptx
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptx
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptx
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parents
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 

Advanced LTI Tools

  • 1. Advanced Issues in Building External LTI Tools Charles Severance, Ph.D. IMS Global Learning Consortium (IMS GLC) http://www.imsglobal.org/ http://www.dr-chuck.com/ © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 1
  • 2. IMS: Digital Learning Standards The information Seamlessly architecture for Free the connect learning content to learning IMS Common Cartridge IMS Learning Tools IMS Learning Information Interoperability (LTI) Services (LIS) © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 2
  • 3. IMS (Simple) LTI Consumer for Moodle – Video From Marc http://www.vimeo.com/7825070 © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 3
  • 4. Source Code - Download •  Simple Sample Application – Classified Ads •  Classified Ad Software •  Key / Secret administration •  Basic LTI Utility Code •  http://www.dr-chuck.com/adlist/dist.zip •  Launch from an LMS or test harness •  http://www.dr-chuck.com/lti/lms.php © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 4
  • 5. A Sample Tool – Classified Ads © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 5
  • 6. A Sample Tool – Classified Ads © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 6
  • 7. Outline •  Solving Multi-Tenancy •  Handling the Basic LTI Launch and Context •  Patterns for Simple Authorization © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 7
  • 8. Multi-Tenancy Multitenancy refers to a principle in software architecture where a single instance of the software runs on a server, serving multiple client organizations (tenants). Multitenancy is contrasted with a multi-instance architecture where separate software instances (or hardware systems) are set up for different client organizations. With a multitenant architecture, a software application is designed to virtually partition its data and configuration so that each client organization works with a customized/isolated virtual application instance. http://en.wikipedia.org/wiki/Multitenancy © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 8
  • 9. Administration Screen © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 9
  • 10. Multi-Tenancy Data Model create table blti_keys (! id MEDIUMINT NOT NULL AUTO_INCREMENT,! oauth_consumer_key CHAR(255) NOT NULL,! secret CHAR(255) NULL,! name CHAR(255) NULL,! context_id CHAR(255) NULL,! created_at DATETIME NOT NULL,! updated_at DATETIME NOT NULL,! PRIMARY KEY (id)! );! © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 10
  • 11. Advertisement Data Model © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 11
  • 12. Multi-Tenancy Data Model create table ads (! id MEDIUMINT NOT NULL AUTO_INCREMENT,! course_key CHAR(255) NOT NULL,! user_key CHAR(255) NULL,! user_name CHAR(255) NULL,! title CHAR(255) NULL,! description TEXT(2048) NULL,! created_at DATETIME NOT NULL,! updated_at DATETIME NOT NULL,! PRIMARY KEY (id)! );! Apologies to "3NF" © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 12
  • 13. Multi-Tenancy Data mysql> select id, left(course_key,25),left(user_key,25),left(title,20) from ads;! +----+---------------------------+---------------------------+----------------------+! | id | left(course_key,25) | left(user_key,25) | left(title,20) |! +----+---------------------------+---------------------------+----------------------+! | 6 | 12345:456434513 | 12345:292832126 | A Totally Sweet Titl |! | 7 | 12345:456434513 | 12345:292832126 | Another Awesome Titl |! | 8 | lmsng.school.edu:45643451 | lmsng.school.edu:29283212 | A TITLE |! | 9 | lmsng.school.edu:7601b0ed | lmsng.school.edu:f315ea76 | Honda 450 - 1983 - E |! | 10 | lmsng.school.edu:7601b0ed | lmsng.school.edu:f315ea76 | Slightly Used App En |! | 11 | lmsng.school.edu:7601b0ed | lmsng.school.edu:f315ea76 | Free Metal File Cabi |! | 12 | ed.ac.uk:lti_demo | ed.ac.uk:URN:X-WEBCT-b98f | Mountain Bike - New |! | 13 | ed.ac.uk:lti_demo | ed.ac.uk:URN:X-WEBCT-b98f | Two Premiere Tickets |! | 14 | ed.ac.uk:lti_demo | ed.ac.uk:URN:X-WEBCT-b98f | Monthly Bus Pass to |! +----+---------------------------+---------------------------+----------------------+! We must namespace the primary keys (user_id, context_id) with the oauth_consumer_key to isolate courses and users © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 13
  • 14. Handling the Basic LTI Launch •  A utility library is provided that intercepts and processes launches require_once '../ims-blti/blti.php';! require_once("db.php");! $context = new BLTI(array('table' => 'blti_keys'));! if ( $context->complete ) exit();! if ( ! $context->valid ) {! print "Could not establish context: ".$context->message."n";! exit();! }! © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 14
  • 15. Handling the Basic LTI Launch •  The "context" is either taken from the launch or restored from the PHP session – like a filter require_once '../ims-blti/blti.php';! require_once("db.php");! $context = new BLTI(array('table' => 'blti_keys'));! if ( $context->complete ) exit();! if ( ! $context->valid ) {! print "Could not establish context: ".$context->message."n";! exit();! }! © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 15
  • 16. The Context •  The context contains information from the launch •  Resource information •  User Information •  Course (aka context) information •  Organizational Information •  Launch Authentication Information © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 16
  • 17. The Context – Supplied Methods $context->getCourseKey() = 12345:456434513! ! $context->getCourseName() = SI182! ! $context->getUserKey() = 12345:292832126! ! $context->isInstructor() = true/false! ! $context->getUserEmail() = jane@school.edu! ! $context->getUserShortName() = jane@school.edu! ! $context->getUserName() = Jane Q. Public! ! $context->getConsumerKey() = 12345! © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 17
  • 18. Simple Authorization •  With the data model, we need to know who can edit which ads in our table mysql> select id, left(course_key,25),left(user_key,25),left(title,20) from ads;! +----+---------------------------+---------------------------+----------------------+! | id | left(course_key,25) | left(user_key,25) | left(title,20) |! +----+---------------------------+---------------------------+----------------------+! | 6 | 12345:456434513 | 12345:292832126 | A Totally Sweet Titl |! | 7 | 12345:456434513 | 12345:292832126 | Another Awesome Titl |! | 8 | lmsng.school.edu:45643451 | lmsng.school.edu:29283212 | A TITLE |! | 9 | lmsng.school.edu:7601b0ed | lmsng.school.edu:f315ea76 | Honda 450 - 1983 - E |! | 10 | lmsng.school.edu:7601b0ed | lmsng.school.edu:f315ea76 | Slightly Used App En |! | 11 | lmsng.school.edu:7601b0ed | lmsng.school.edu:f315ea76 | Free Metal File Cabi |! | 12 | ed.ac.uk:lti_demo | ed.ac.uk:URN:X-WEBCT-b98f | Mountain Bike - New |! | 13 | ed.ac.uk:lti_demo | ed.ac.uk:URN:X-WEBCT-b98f | Two Premiere Tickets |! | 14 | ed.ac.uk:lti_demo | ed.ac.uk:URN:X-WEBCT-b98f | Monthly Bus Pass to |! +----+---------------------------+---------------------------+----------------------+! © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 18
  • 19. Instructor:! SELECT * FROM ads WHERE id='7' AND ! course_key='12345:456434513'! ! Student:! SELECT * FROM ads WHERE id='7' AND! course_key='12345:456434513 AND ! user_key = '12345:292832126'! mysql> select id, left(course_key,25),left(user_key,25),left(title,20) from ads;! +----+---------------------------+---------------------------+----------------------+! | id | left(course_key,25) | left(user_key,25) | left(title,20) |! +----+---------------------------+---------------------------+----------------------+! | 6 | 12345:456434513 | 12345:292832126 | A Totally Sweet Titl |! | 7 | 12345:456434513 | 12345:292832126 | Another Awesome Titl |! | 8 | lmsng.school.edu:45643451 | lmsng.school.edu:29283212 | A TITLE |! | 9 | lmsng.school.edu:7601b0ed | lmsng.school.edu:f315ea76 | Honda 450 - 1983 - E |! | 10 | lmsng.school.edu:7601b0ed | lmsng.school.edu:f315ea76 | Slightly Used App En |! | 11 | lmsng.school.edu:7601b0ed | lmsng.school.edu:f315ea76 | Free Metal File Cabi |! | 12 | ed.ac.uk:lti_demo | ed.ac.uk:URN:X-WEBCT-b98f | Mountain Bike - New |! | 13 | ed.ac.uk:lti_demo | ed.ac.uk:URN:X-WEBCT-b98f | Two Premiere Tickets |! | 14 | ed.ac.uk:lti_demo | ed.ac.uk:URN:X-WEBCT-b98f | Monthly Bus Pass to |! +----+---------------------------+---------------------------+----------------------+! © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 19
  • 20. Show/Hide Buttons © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 20
  • 21. Showing Buttons For Edit/ Delete <php! if ( $context->isInstructor() || ! $row['user_key'] == $context->getUserKey() ) { ?> ! <a href="<self?>?action=edit&id=<row[id]?>">edit<a> ! <a href="<self?>?action=delete&id=<row[id]?>">delete<a>! <php! }?>! © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 21
  • 22. Advanced Topic: System and Course-Mapped Keys © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 22
  • 23. Use cases •  System-scoped key – The Consumer sends us a context_id which allows many different courses to use our tool independently – this is a typical approach •  Course-mapped key – in this case, you ignore the consumer-provided context_id and specify the context_id inside of your (Producer) system © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 23
  • 24. System-Scoped Key=zap Producer cid=a1d2 zap(sys) cid=1234 fun(sys) cid=654 zap:a1d2 Key=fun zap:1234 cid=a1d2 zap:654 cid=9876 fun:a1d2 cid=345 fun:9876 fun:345 Consumers © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 24
  • 25. Key=zap Course-Scoped Keys cid=a1d2 cid=1234 Producer zap(sys) east (c=1555) Key=east west(c=1555) cid=a1d2 cid=1234 zap:a1d2 zap:1234 1555 Key=west cid=9876 With course-scoped keys, students from multiple contexts in multiple Consumers can Consumers meet and collaborate in the producer. © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 25
  • 26. Course-Scoped Keys •  In the sample application, each key as a context_id field – if it is null, the key is a system- scoped key. mysql> select id,oauth_consumer_key,secret,context_id from blti_keys;! +----+--------------------+--------+------------+! | id | oauth_consumer_key | secret | context_id |! +----+--------------------+--------+------------+! | 4 | 12345 | secret | NULL |! | 5 | admin | secret | 999999 |! +----+--------------------+--------+------------+! © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 26
  • 27. Configuration using resource_link_id © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 27
  • 28. Use Case: Picking a Video •  If our Producer is video archive and the purpose of each "placement" in a course is to play a particular video using BLTI to gain access to the video •  Problem: How to place BLTI several places in the course but refer to different videos in each placement? © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 28
  • 29. Goal State Week 1 Scene Video snippet 1 Discussion board Week 2 Scene Video snippet 4 Wiki Week 3 Video Snippet Scene Midterm Exam 9 © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 29
  • 30. Understanding resource_link_id Key=987 cid=a1b2 Week 1 Video snippet The resource_link_id rlid=9c45 is unique for each Discussion board placement of Basic LTI Week 2 in a course. When Video snippet rlid=23b5 each of the resources Wiki is launched you get Week 3 key, cid, and rlid. Resource_link_id is Video Snippet rlid=1725 required on all Midterm Exam launches. © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 30
  • 31. Using resource_link_id Key=987 cid=a1b2 Week 1 Video snippet rlid=9c45 Discussion board You need a table in your application which maps from a key:resource_link_id (i.e. 987:9c45) to some local resource identified within your application. Until the Instructor selects a resource within your tool, it is "unconfigured" © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 31
  • 32. Understanding resource_link_id Key=987 cid=a1b2 Week 1 Video snippet rlid=9c45 Discussion board Not Pick Scene Scene Config Video 1 1 Learner Instructor Learner Instructor Not configured 987:9c45 = matrix_scene_01 © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 32
  • 33. Custom Field Notes •  In a Common Cartridge, Basic LTI Resource Links have a custom field which can be used for this purpose •  The custom fields UI varies from LMS to LMS and may not even be available to the Instructor •  Using resource_link_id keeps the configuration UX in the Producer and keeps from needing per-LMS documentation •  A good practice is to use custom_fields in cartridges and if no custom field is present fall back to resource_link_id provisioning © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 33
  • 34. Adding Basic LTI to an Existing Application © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 34
  • 35. Adding Support for BLTI •  Must deal with multi-tenancy gracefully – it will not look nice if your UI shows user names like fbbf213:29938jsha01929 •  Add a launch-point to provision courses, users, set roles, and provision a session and redirect to tool page •  May want to come up with a UI with little or no outer navigation so it looks more like a "tool" © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 35
  • 36. Open Issue - TODO •  Cookies are getting less and less well supported inside frames •  I should update this sample code to work through that © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 36
  • 37. Questions.... •  IMS – www.imsglobal.org •  IMS Basic LTI Video – www.vimeo.com/8073453 •  Marc's Dinosaur Video – www.vimeo.com/7825070 •  cseverance@imsglobal.org •  www.dr-chuck.com © Copyright 2010 IMS Global Learning Consortium All Rights Reserved. 37