SlideShare ist ein Scribd-Unternehmen logo
1 von 30
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
• 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);
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

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (11)

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(코스)
 
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 (次)
 
Apereo 2015: The State of Sakai
Apereo 2015: The State of SakaiApereo 2015: The State of Sakai
Apereo 2015: The State of Sakai
 
Experience Teaching Massive Open Online Courses (MOOCs)
Experience Teaching Massive Open Online Courses (MOOCs)Experience Teaching Massive Open Online Courses (MOOCs)
Experience Teaching Massive Open Online Courses (MOOCs)
 
The Grand Convergence: The Future of e-Learning and Education Publishing
The Grand Convergence: The Future of e-Learning  and Education PublishingThe Grand Convergence: The Future of e-Learning  and Education Publishing
The Grand Convergence: The Future of e-Learning and Education Publishing
 
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
 
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
 
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
 
SakaiX: The First Ten Years and the Next* Ten Years
SakaiX: The First Ten Years and the Next* Ten YearsSakaiX: The First Ten Years and the Next* Ten Years
SakaiX: The First Ten Years and the Next* Ten Years
 
Sakai: Free as in Freedom (Lansing, MI)
Sakai: Free as in Freedom (Lansing, MI)Sakai: Free as in Freedom (Lansing, MI)
Sakai: Free as in Freedom (Lansing, MI)
 
Do It Yourself LMS: Open-Source and Hi-Tech Possibilities
Do It Yourself LMS: Open-Source and Hi-Tech PossibilitiesDo It Yourself LMS: Open-Source and Hi-Tech Possibilities
Do It Yourself LMS: Open-Source and Hi-Tech Possibilities
 

Ähnlich wie Updated Version: Tsugi Overview

LTI Update at the IMS QUarterly Meeting, Utrecht, NL
LTI Update at the IMS QUarterly Meeting, Utrecht, NLLTI Update at the IMS QUarterly Meeting, Utrecht, NL
LTI Update at the IMS QUarterly Meeting, Utrecht, NL
Charles Severance
 
PHP from the point of view of a webhoster
PHP from the point of view of a webhosterPHP from the point of view of a webhoster
PHP from the point of view of a webhoster
Dominic Lüchinger
 

Ähnlich wie Updated Version: Tsugi Overview (20)

OCCI Specification Walkthrough
OCCI Specification WalkthroughOCCI Specification Walkthrough
OCCI Specification Walkthrough
 
Doctrine Project
Doctrine ProjectDoctrine Project
Doctrine Project
 
Bring-your-ML-Project-into-Production-v2.pdf
Bring-your-ML-Project-into-Production-v2.pdfBring-your-ML-Project-into-Production-v2.pdf
Bring-your-ML-Project-into-Production-v2.pdf
 
2011 03-03-blti-umass
2011 03-03-blti-umass2011 03-03-blti-umass
2011 03-03-blti-umass
 
DevOps-Roadmap
DevOps-RoadmapDevOps-Roadmap
DevOps-Roadmap
 
Stackato v5
Stackato v5Stackato v5
Stackato v5
 
Anatomy of a Drupal Hack - TechKnowFile 2014
Anatomy of a Drupal Hack - TechKnowFile 2014Anatomy of a Drupal Hack - TechKnowFile 2014
Anatomy of a Drupal Hack - TechKnowFile 2014
 
Codeigniter : The Introduction
Codeigniter  : The IntroductionCodeigniter  : The Introduction
Codeigniter : The Introduction
 
StorageQuery: federated querying on object stores, powered by Alluxio and Presto
StorageQuery: federated querying on object stores, powered by Alluxio and PrestoStorageQuery: federated querying on object stores, powered by Alluxio and Presto
StorageQuery: federated querying on object stores, powered by Alluxio and Presto
 
Introduction to EasyBuild: Tutorial Part 1
Introduction to EasyBuild: Tutorial Part 1Introduction to EasyBuild: Tutorial Part 1
Introduction to EasyBuild: Tutorial Part 1
 
Reproducibility and automation of machine learning process
Reproducibility and automation of machine learning processReproducibility and automation of machine learning process
Reproducibility and automation of machine learning process
 
PowerShell - Be A Cool Blue Kid
PowerShell - Be A Cool Blue KidPowerShell - Be A Cool Blue Kid
PowerShell - Be A Cool Blue Kid
 
IMS Learning Tools Interoperability @ Nottingham
IMS Learning Tools Interoperability @ NottinghamIMS Learning Tools Interoperability @ Nottingham
IMS Learning Tools Interoperability @ Nottingham
 
CTS2 Development Framework
CTS2 Development FrameworkCTS2 Development Framework
CTS2 Development Framework
 
IMS Basic LTI Overview
IMS Basic LTI OverviewIMS Basic LTI Overview
IMS Basic LTI Overview
 
01 Metasploit kung fu introduction
01 Metasploit kung fu introduction01 Metasploit kung fu introduction
01 Metasploit kung fu introduction
 
My Saminar On Php
My Saminar On PhpMy Saminar On Php
My Saminar On Php
 
Expressive Microservice Framework Blastoff
Expressive Microservice Framework BlastoffExpressive Microservice Framework Blastoff
Expressive Microservice Framework Blastoff
 
LTI Update at the IMS QUarterly Meeting, Utrecht, NL
LTI Update at the IMS QUarterly Meeting, Utrecht, NLLTI Update at the IMS QUarterly Meeting, Utrecht, NL
LTI Update at the IMS QUarterly Meeting, Utrecht, NL
 
PHP from the point of view of a webhoster
PHP from the point of view of a webhosterPHP from the point of view of a webhoster
PHP from the point of view of a webhoster
 

Mehr von Charles Severance

Mehr von Charles Severance (15)

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)
 
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
 
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
 
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
 
Programming for Everybody in Python
Programming for Everybody in PythonProgramming for Everybody in Python
Programming for Everybody in Python
 
How will the MOOC Change Between Now and 2020?
How will the MOOC Change Between Now and 2020?How will the MOOC Change Between Now and 2020?
How will the MOOC Change Between Now and 2020?
 
Apereo Panel: Libraries, Education, and Collaboration
Apereo Panel: Libraries, Education, and CollaborationApereo Panel: Libraries, Education, and Collaboration
Apereo Panel: Libraries, Education, and Collaboration
 
Sakai 10 and Beyond - Next Steps for Sakai
Sakai 10 and Beyond - Next Steps for SakaiSakai 10 and Beyond - Next Steps for Sakai
Sakai 10 and Beyond - Next Steps for Sakai
 
These are my slides from TEDxKZoo (2013-11-09)
These are my slides from TEDxKZoo (2013-11-09)These are my slides from TEDxKZoo (2013-11-09)
These are my slides from TEDxKZoo (2013-11-09)
 

Kürzlich hochgeladen

The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
heathfieldcps1
 
Making and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfMaking and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdf
Chris Hunter
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
kauryashika82
 
Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.
MateoGardella
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
ciinovamais
 

Kürzlich hochgeladen (20)

Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdf
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docx
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Making and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfMaking and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdf
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.Gardella_Mateo_IntellectualProperty.pdf.
Gardella_Mateo_IntellectualProperty.pdf.
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 

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 ...
  • 16.
  • 17.
  • 18.
  • 19.
  • 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);
  • 26.
  • 27.
  • 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...