Building Scalable IMS LTI Tools
Using the TSUGI Framework
Charles Severance
University of Michigan
School of Information
Longsight, Inc.
Disclaimer...
What I am about to talk about is not an
official direction or position of the
University of Michigan, Longsight, nor
IMS Global.
3
Installation Instructions
www.tsugi.org
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
From the 2003 Sakai Proposal
http://www-personal.umich.edu/~csev/papers/2004/2004_03_01_mellon_sakai_proposal.pdf
...
WTD?
L
T
I
PHP
Java
C#
...
But...
"Large Midwestern University"
Sakai
.......
Looks pretty cool.... But...
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?
Neo-Colonialism
LTI-style
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. ??
Multiple LMS Campus + App Store
App
Store
Tool Tool Tool Tool...
Multiple LMS Campus + App Store
App
Store
Tool Tool Tool Tool
Tsugi
Hosting
Container
Tool ToolTool
...
Install
Tsugi
Exp
Multiple LMS Campus + App Store
App
Store
Tool Tool Tool Tool
Tsugi
Prod
Tool ToolTool
...
www.tsugi.org
• 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
PHP Tsugi Tool Code
<?php
require_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();
Demos
• https://lti-tools.dr-chuck.com/tsugi/
• https://qa10.longsight.com/
– Join site "TSUGI Test"
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.
Java Tsugi Dreams
Sakai
Sakai
Tool
Sakai
Blackboard
B2
Tool
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.
Java Tsugi Dreams
Sakai
Tsugi
Tool
Tsugi
Sakai
Tool
Sakai
Blackboard
Tsugi
Tool
Tsugi
B2
Tool
B2
Amazon
EBS
Tsugi
Tool
Tsugi
Tomcat
Tsugi
Tool
Tsugi
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
Questions...
www.tsugi.org

Building Scalable IMS LTI Tools Using the TSUGI Framework