building scalable ims lti tools using the tsugi framework
DESCRIPTION
This talk is about my next-generation tool hosting environment called "Tsugi" - www.tsugi.org 2014 06-03-miami-tsugiTRANSCRIPT
Building Scalable IMS LTI Tools Using the TSUGI Framework
Charles SeveranceUniversity 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?
LTI
PHPJavaC#
...
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-ColonialismLTI-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
AppStore Tool Tool Tool Tool...
Multiple LMS Campus + App Store
AppStore Tool Tool Tool Tool
TsugiHostingContainer Tool ToolTool
...
Install
TsugiExp
Multiple LMS Campus + App Store
AppStore Tool Tool Tool Tool
TsugiProd 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
<?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();
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
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.
Java Tsugi Dreams
Sakai
TsugiTool
Tsugi
SakaiTool
Sakai
Blackboard
TsugiTool
Tsugi
B2Tool
B2 AmazonEBS
TsugiTool
Tsugi
Tomcat
TsugiTool
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