Building Scalable IMS LTI Tools Using the TSUGI Framework

28
Building Scalable IMS LTI Tools Using the TSUGI Framework Charles Severance University of Michigan School of Information Longsight, Inc.

description

This talk is about my next-generation tool hosting environment called "Tsugi" - www.tsugi.org 2014 06-03-miami-tsugi

Transcript of Building Scalable IMS LTI Tools Using the TSUGI Framework

Page 1: Building Scalable IMS LTI Tools Using the TSUGI Framework

Building Scalable IMS LTI Tools Using the TSUGI Framework

Charles SeveranceUniversity of Michigan School of Information

Longsight, Inc.

Page 2: Building Scalable IMS LTI Tools Using the TSUGI Framework

Disclaimer...

What I am about to talk about is not an official direction or position of the University of Michigan, Longsight, nor IMS Global.

Page 3: Building Scalable IMS LTI Tools Using the TSUGI Framework

3

Page 4: Building Scalable IMS LTI Tools Using the TSUGI Framework

Installation Instructions

www.tsugi.org

Page 5: Building Scalable IMS LTI Tools Using the TSUGI Framework

Project Tsugi

• Tool Hosting Container (i.e. Like a B2)– PHP now, Java planned

• Based on IMS Specifications– LTI 1.x / LTI 2.x / IMS Settings / Common

Cartridge / Caliper / CASA / Roster / Gradebook / ....

• Tools can run on a campus hosting platform or commercial provider or cloud

• Tools are "installed" into hosting containers

Page 6: Building Scalable IMS LTI Tools Using the TSUGI Framework

From the 2003 Sakai Proposal

http://www-personal.umich.edu/~csev/papers/2004/2004_03_01_mellon_sakai_proposal.pdf

Page 7: Building Scalable IMS LTI Tools Using the TSUGI Framework

...

WTD?

Page 8: Building Scalable IMS LTI Tools Using the TSUGI Framework

LTI

PHPJavaC#

...

But...

Page 9: Building Scalable IMS LTI Tools Using the TSUGI Framework

"Large Midwestern University"

Sakai

.......

Looks pretty cool.... But...

Page 10: Building Scalable IMS LTI Tools Using the TSUGI Framework

Sakai

• Where is the user data??• What happens when there are 50 apps?• What if the app is free and hosted by a

professor?• What happens if we stop paying the license?

Page 11: Building Scalable IMS LTI Tools Using the TSUGI Framework

Neo-ColonialismLTI-style

Page 12: Building Scalable IMS LTI Tools Using the TSUGI Framework

LTI 1.x versus LTI 2.x and Beyond

• LTI 1.x – Three pages of spec and some "hello world" code

• LTI 2.x – Several specs – multiple interactions– We will need to share common implementations

across instructions• And what about Caliper, Casa, xAPI, etc. ??

Page 13: Building Scalable IMS LTI Tools Using the TSUGI Framework

Multiple LMS Campus + App Store

AppStore Tool Tool Tool Tool...

Page 14: Building Scalable IMS LTI Tools Using the TSUGI Framework

Multiple LMS Campus + App Store

AppStore Tool Tool Tool Tool

TsugiHostingContainer Tool ToolTool

...

Install

Page 15: Building Scalable IMS LTI Tools Using the TSUGI Framework

TsugiExp

Multiple LMS Campus + App Store

AppStore Tool Tool Tool Tool

TsugiProd Tool ToolTool

...

Page 16: Building Scalable IMS LTI Tools Using the TSUGI Framework

www.tsugi.org

Page 17: Building Scalable IMS LTI Tools Using the TSUGI Framework
Page 18: Building Scalable IMS LTI Tools Using the TSUGI Framework
Page 19: Building Scalable IMS LTI Tools Using the TSUGI Framework
Page 20: Building Scalable IMS LTI Tools Using the TSUGI Framework
Page 21: Building Scalable IMS LTI Tools Using the TSUGI Framework

• Install / Configuration similar to Moodle• Emulate the Moodle APIs / Runtime• Multi-tenant • Cookie free (i.e. loves iframes)• Uses PDO with some rules about FK for easy

cleanup• Auto-ddl feature to upgrade schema

PHP Tsugi

Page 22: Building Scalable IMS LTI Tools Using the TSUGI Framework

PHP Tsugi Tool Code

<?phprequire_once "../../config.php";require_once $CFG->dirroot."/lib/lms_lib.php";

$LTI = lti_require_data(array('user_id', 'result_id', 'role','context_id'));

$displayname = $USER->displayname;

// Start of the output$OUTPUT->header();$OUTPUT->start_body();

...

$OUTPUT->footer();

Page 23: Building Scalable IMS LTI Tools Using the TSUGI Framework

Demos

• https://lti-tools.dr-chuck.com/tsugi/

• https://qa10.longsight.com/– Join site "TSUGI Test"

Page 24: Building Scalable IMS LTI Tools Using the TSUGI Framework

PHP Tsugi Next Steps

• Architecture Review / Critique• Internationalization – need help• Outreach to the Moodle community• IMS LTI 2.0 Support• xAPI support• IMS Caliper Support• IMS Casa Support

Tsugi is in 24x7 production and I can support a few experimenters on my servers.

Page 25: Building Scalable IMS LTI Tools Using the TSUGI Framework

Java Tsugi Dreams

Sakai

SakaiTool

Sakai

Blackboard

B2Tool

B2

I am not in a rush to do the Java port. I want to stay agile and use PHP as an architecture proof of concept.

The Java port will be simple and fast with PHP in hand.

Page 26: Building Scalable IMS LTI Tools Using the TSUGI Framework

Java Tsugi Dreams

Sakai

TsugiTool

Tsugi

SakaiTool

Sakai

Blackboard

TsugiTool

Tsugi

B2Tool

B2 AmazonEBS

TsugiTool

Tsugi

Tomcat

TsugiTool

Tsugi

Page 27: Building Scalable IMS LTI Tools Using the TSUGI Framework

Thinking Big...

• I hope to bring TSUGI to Apereo Incubation before next conference

• I would like to build a tool ecology to benefit all teachers regardless of LMS

• I want us to own our data and cloud choices• I want to see Blackboard, Moodle, Canvas, and

D2L schools joining Apereo

Page 28: Building Scalable IMS LTI Tools Using the TSUGI Framework

Questions...

www.tsugi.org