SlideShare a Scribd company logo
Building Scalable IMS LTI Tools
Using the TSUGI Framework
Charles Severance
www.dr-chuck.com
www.tsugi.org
2
Installation Instructions
www.tsugi.org
Project Tsugi
• Tool Hosting Container (i.e. Like a B2)
– PHP now, Java in development
• 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
Updated Version: Tsugi Overview
Updated Version: Tsugi Overview
Updated Version: Tsugi Overview
Updated Version: Tsugi Overview
• 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."/pdo.php";
require_once $CFG->dirroot."/lib/lms_lib.php";
use TsugiCoreLTIX;
$LTI = LTIX::requireData(array('user_id',
'link_id', 'role','context_id'));
...
$OUTPUT->header();
$OUTPUT->bodyStart();
$OUTPUT->flashMessages();
$OUTPUT->welcomeUserCourse();
if ( $USER->instructor ) {
...
Demo
• https://lti-tools.dr-chuck.com/tsugi/
– Developer mode
– Apply for keys
PHP Tsugi Next Steps
• Tsugi 2.0 – Break into parts
• IMS LTI 2.1 Support
• Improve Internationalization
• xAPI support
• IMS Caliper Support
• IMS Casa Support
• Moodle Outreach?
Tsugi is in 24x7
production and I can
support a few
experimenters on
my servers.
• Currently just a library and sample servlet
• APIs + factory pattern
• Depends on PHP Tsugi
– Database table management
– Developer test harness
– Shares core data tables with PHP Tsugi
• More to develop
– Java database/key admin
– Java developer console
Java Tsugi http://csev.github.io/tsugi-java/
Java Tsugi
Tool Code
Launch launch = tsugi.getLaunch(req, res);
if ( launch.isComplete() ) return;
if ( ! launch.isValid() ) {
throw new RuntimeException(launch.getErrorMessage());
}
Output o = launch.getOutput();
Properties p = o.header(out);
out.println("<title>Sample</title>");
// Some of my CSS includes...
o.bodyStart(out);
o.navStart(out); // If you want it..
o.flashMessages(out);
out.println("<pre>");
out.println("Welcome to hello world!");
out.println("</pre>");
o.navEnd(out); // If you started it
o.footerStart(out);
// Some of my own JavaScript goodness
$(document).ready( ... );
o.footerEnd(out);
Updated Version: Tsugi Overview
Updated Version: Tsugi Overview
Deploying Java Tsugi Apps
Tomcat
Sakai
Tsugi
Tool
STsugi
Sakai
Tool
Sakai
Amazon
Tsugi
Tool
JTusgi
Tsugi
Tool
JTsugi
Java Tsugi Next Steps
• Build out the library
• Build LTI 2 registration servlet
• Build administrator interface
– Configure database / manage keys
– Developer console
– Tool hosting / installer (CASA Perhaps?)
• Explore org.sakaiproject.tsugi...
Thank You...
www.tsugi.org

More Related Content

PPTX
Building Scalable IMS LTI Tools Using the TSUGI Framework
PPTX
Tsugi Workshop @ Notre Dame
PPTX
Next Generation Teaching and Learning
PPTX
Next Generation Teaching and Learning
PPTX
Beyond MOOCs: Open Education at Scale
PPTX
Standards Update: Apereo 2015
PDF
Analytics with Splunk (Open edX)
PPTX
Building the Next Generation Teaching and Learning Environment
Building Scalable IMS LTI Tools Using the TSUGI Framework
Tsugi Workshop @ Notre Dame
Next Generation Teaching and Learning
Next Generation Teaching and Learning
Beyond MOOCs: Open Education at Scale
Standards Update: Apereo 2015
Analytics with Splunk (Open edX)
Building the Next Generation Teaching and Learning Environment

What's hot (11)

PPTX
Building the NGDLE with Tsugi (次) and Koseu(코스)
PPTX
Building the Next Generation Teaching and Learning Environment with Tsugi (次)
PPTX
Apereo 2015: The State of Sakai
PPTX
Experience Teaching Massive Open Online Courses (MOOCs)
PPTX
The Grand Convergence: The Future of e-Learning and Education Publishing
PPTX
Exploring the Next Generation Digital Learning Ecosystem
PPT
CloudSocial: A New Approach to Enabling Open-Content for Broad Reuse
PPTX
Exploring the Next Generation Digital Learning Environment with Tsugi
PDF
SakaiX: The First Ten Years and the Next* Ten Years
PDF
Sakai: Free as in Freedom (Lansing, MI)
PPT
Do It Yourself LMS: Open-Source and Hi-Tech Possibilities
Building the NGDLE with Tsugi (次) and Koseu(코스)
Building the Next Generation Teaching and Learning Environment with Tsugi (次)
Apereo 2015: The State of Sakai
Experience Teaching Massive Open Online Courses (MOOCs)
The Grand Convergence: The Future of e-Learning and Education Publishing
Exploring the Next Generation Digital Learning Ecosystem
CloudSocial: A New Approach to Enabling Open-Content for Broad Reuse
Exploring the Next Generation Digital Learning Environment with Tsugi
SakaiX: The First Ten Years and the Next* Ten Years
Sakai: Free as in Freedom (Lansing, MI)
Do It Yourself LMS: Open-Source and Hi-Tech Possibilities
Ad

Similar to Updated Version: Tsugi Overview (9)

PDF
TSUGI: A Framework for Building PHP-Based Learning Tools
PDF
Lessons learned from a large scale OSGi web app
PDF
DataScience Meeting II - Roman Kern - Building an open source based search so...
PDF
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
PDF
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
PDF
20100730 phpstudy
PPTX
Introduction 1 -_the_iks_project
KEY
Mobile oxford open source junction 5 july 2011
PDF
EuSakai: Directions for Standards in Teaching and Learning
TSUGI: A Framework for Building PHP-Based Learning Tools
Lessons learned from a large scale OSGi web app
DataScience Meeting II - Roman Kern - Building an open source based search so...
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
BDD - Buzzword Driven Development - Build the next cool app for fun and for.....
20100730 phpstudy
Introduction 1 -_the_iks_project
Mobile oxford open source junction 5 july 2011
EuSakai: Directions for Standards in Teaching and Learning
Ad

More from Charles Severance (15)

PPTX
LTI Advantage: The Next Big Thing in LMS Integration
PPT
Hierarchy requirements
PPT
Sakai Hierarchy Framework Changes Overview (not implemented)
PPT
CloudSocial: A New Approach to Enabling Open Content for Broad Reuse
PPTX
The Game of MOOCs
PPTX
A View on the Future of Sakai
PPTX
The Next Generation of Teaching and Learning Tools
PPTX
Standards to Enable an Open Learning Ecosystem
PPTX
The Trials and Tribulations of Predicting the Future of Educational Technology
PPTX
MOOCs – The Future Is Getting Clearer
PPTX
Programming for Everybody in Python
PPTX
How will the MOOC Change Between Now and 2020?
PPTX
Apereo Panel: Libraries, Education, and Collaboration
PPT
Sakai 10 and Beyond - Next Steps for Sakai
PDF
These are my slides from TEDxKZoo (2013-11-09)
LTI Advantage: The Next Big Thing in LMS Integration
Hierarchy requirements
Sakai Hierarchy Framework Changes Overview (not implemented)
CloudSocial: A New Approach to Enabling Open Content for Broad Reuse
The Game of MOOCs
A View on the Future of Sakai
The Next Generation of Teaching and Learning Tools
Standards to Enable an Open Learning Ecosystem
The Trials and Tribulations of Predicting the Future of Educational Technology
MOOCs – The Future Is Getting Clearer
Programming for Everybody in Python
How will the MOOC Change Between Now and 2020?
Apereo Panel: Libraries, Education, and Collaboration
Sakai 10 and Beyond - Next Steps for Sakai
These are my slides from TEDxKZoo (2013-11-09)

Recently uploaded (20)

PDF
01-Introduction-to-Information-Management.pdf
PDF
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PPTX
master seminar digital applications in india
PPTX
Cardiovascular Pharmacology for pharmacy students.pptx
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PPTX
Week 4 Term 3 Study Techniques revisited.pptx
PPTX
COMPUTERS AS DATA ANALYSIS IN PRECLINICAL DEVELOPMENT.pptx
PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
PDF
Business Ethics Teaching Materials for college
PDF
Abdominal Access Techniques with Prof. Dr. R K Mishra
PPTX
Open Quiz Monsoon Mind Game Final Set.pptx
PPTX
The Healthy Child – Unit II | Child Health Nursing I | B.Sc Nursing 5th Semester
PDF
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
PPTX
Cell Structure & Organelles in detailed.
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PPTX
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
PDF
Pre independence Education in Inndia.pdf
01-Introduction-to-Information-Management.pdf
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
O5-L3 Freight Transport Ops (International) V1.pdf
Renaissance Architecture: A Journey from Faith to Humanism
master seminar digital applications in india
Cardiovascular Pharmacology for pharmacy students.pptx
FourierSeries-QuestionsWithAnswers(Part-A).pdf
Week 4 Term 3 Study Techniques revisited.pptx
COMPUTERS AS DATA ANALYSIS IN PRECLINICAL DEVELOPMENT.pptx
102 student loan defaulters named and shamed – Is someone you know on the list?
Business Ethics Teaching Materials for college
Abdominal Access Techniques with Prof. Dr. R K Mishra
Open Quiz Monsoon Mind Game Final Set.pptx
The Healthy Child – Unit II | Child Health Nursing I | B.Sc Nursing 5th Semester
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
Cell Structure & Organelles in detailed.
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
Pre independence Education in Inndia.pdf

Updated Version: Tsugi Overview

  • 1. Building Scalable IMS LTI Tools Using the TSUGI Framework Charles Severance www.dr-chuck.com www.tsugi.org
  • 2. 2
  • 4. Project Tsugi • Tool Hosting Container (i.e. Like a B2) – PHP now, Java in development • 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
  • 5. From the 2003 Sakai Proposal http://www-personal.umich.edu/~csev/papers/2004/2004_03_01_mellon_sakai_proposal.pdf
  • 9. 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?
  • 11. 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. ??
  • 12. Multiple LMS Campus + App Store App Store Tool Tool Tool Tool...
  • 13. Multiple LMS Campus + App Store App Store Tool Tool Tool Tool Tsugi Hosting Container Tool ToolTool ... Install
  • 14. Tsugi Exp Multiple LMS Campus + App Store App Store Tool Tool Tool Tool Tsugi Prod Tool ToolTool ...
  • 20. • 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
  • 21. PHP Tsugi Tool Code <?php require_once "../../config.php"; require_once $CFG->dirroot."/pdo.php"; require_once $CFG->dirroot."/lib/lms_lib.php"; use TsugiCoreLTIX; $LTI = LTIX::requireData(array('user_id', 'link_id', 'role','context_id')); ... $OUTPUT->header(); $OUTPUT->bodyStart(); $OUTPUT->flashMessages(); $OUTPUT->welcomeUserCourse(); if ( $USER->instructor ) { ...
  • 23. PHP Tsugi Next Steps • Tsugi 2.0 – Break into parts • IMS LTI 2.1 Support • Improve Internationalization • xAPI support • IMS Caliper Support • IMS Casa Support • Moodle Outreach? Tsugi is in 24x7 production and I can support a few experimenters on my servers.
  • 24. • Currently just a library and sample servlet • APIs + factory pattern • Depends on PHP Tsugi – Database table management – Developer test harness – Shares core data tables with PHP Tsugi • More to develop – Java database/key admin – Java developer console Java Tsugi http://csev.github.io/tsugi-java/
  • 25. Java Tsugi Tool Code Launch launch = tsugi.getLaunch(req, res); if ( launch.isComplete() ) return; if ( ! launch.isValid() ) { throw new RuntimeException(launch.getErrorMessage()); } Output o = launch.getOutput(); Properties p = o.header(out); out.println("<title>Sample</title>"); // Some of my CSS includes... o.bodyStart(out); o.navStart(out); // If you want it.. o.flashMessages(out); out.println("<pre>"); out.println("Welcome to hello world!"); out.println("</pre>"); o.navEnd(out); // If you started it o.footerStart(out); // Some of my own JavaScript goodness $(document).ready( ... ); o.footerEnd(out);
  • 28. Deploying Java Tsugi Apps Tomcat Sakai Tsugi Tool STsugi Sakai Tool Sakai Amazon Tsugi Tool JTusgi Tsugi Tool JTsugi
  • 29. Java Tsugi Next Steps • Build out the library • Build LTI 2 registration servlet • Build administrator interface – Configure database / manage keys – Developer console – Tool hosting / installer (CASA Perhaps?) • Explore org.sakaiproject.tsugi...