SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

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(코스)Charles Severance
 
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 (次)Charles Severance
 
Apereo 2015: The State of Sakai
Apereo 2015: The State of SakaiApereo 2015: The State of Sakai
Apereo 2015: The State of SakaiCharles Severance
 
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)Charles Severance
 
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 PublishingCharles Severance
 
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 EcosystemCharles Severance
 
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 ReuseCharles Severance
 
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 TsugiCharles Severance
 
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 YearsCharles Severance
 
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)Charles Severance
 
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 Possibilitiesgrandeped
 

What's hot (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
 

Similar to Updated Version: Tsugi Overview

OCCI Specification Walkthrough
OCCI Specification WalkthroughOCCI Specification Walkthrough
OCCI Specification Walkthroughbefreax
 
Doctrine Project
Doctrine ProjectDoctrine Project
Doctrine ProjectDaniel Lima
 
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.pdfLiang Yan
 
Codeigniter : The Introduction
Codeigniter  : The IntroductionCodeigniter  : The Introduction
Codeigniter : The IntroductionAbdul Malik Ikhsan
 
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 PrestoAlluxio, Inc.
 
Introduction to EasyBuild: Tutorial Part 1
Introduction to EasyBuild: Tutorial Part 1Introduction to EasyBuild: Tutorial Part 1
Introduction to EasyBuild: Tutorial Part 1inside-BigData.com
 
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 processDenis Dus
 
PowerShell - Be A Cool Blue Kid
PowerShell - Be A Cool Blue KidPowerShell - Be A Cool Blue Kid
PowerShell - Be A Cool Blue KidMatthew Johnson
 
IMS Learning Tools Interoperability @ Nottingham
IMS Learning Tools Interoperability @ NottinghamIMS Learning Tools Interoperability @ Nottingham
IMS Learning Tools Interoperability @ NottinghamCharles Severance
 
CTS2 Development Framework
CTS2 Development FrameworkCTS2 Development Framework
CTS2 Development Frameworkcts2framework
 
01 Metasploit kung fu introduction
01 Metasploit kung fu introduction01 Metasploit kung fu introduction
01 Metasploit kung fu introductionMostafa Abdel-sallam
 
Expressive Microservice Framework Blastoff
Expressive Microservice Framework BlastoffExpressive Microservice Framework Blastoff
Expressive Microservice Framework BlastoffAdam Culp
 
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, NLCharles 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 webhosterDominic Lüchinger
 

Similar to 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
 

More from Charles Severance

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 IntegrationCharles Severance
 
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)Charles Severance
 
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 ReuseCharles Severance
 
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 SakaiCharles Severance
 
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 ToolsCharles Severance
 
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 EcosystemCharles Severance
 
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 TechnologyCharles Severance
 
MOOCs – The Future Is Getting Clearer
MOOCs – The Future Is Getting ClearerMOOCs – The Future Is Getting Clearer
MOOCs – The Future Is Getting ClearerCharles Severance
 
Programming for Everybody in Python
Programming for Everybody in PythonProgramming for Everybody in Python
Programming for Everybody in PythonCharles Severance
 
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?Charles Severance
 
Apereo Panel: Libraries, Education, and Collaboration
Apereo Panel: Libraries, Education, and CollaborationApereo Panel: Libraries, Education, and Collaboration
Apereo Panel: Libraries, Education, and CollaborationCharles Severance
 
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 SakaiCharles Severance
 
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)Charles Severance
 

More from 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)
 

Recently uploaded

How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSCeline George
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfPoh-Sun Goh
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsMebane Rash
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17Celine George
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...pradhanghanshyam7136
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxheathfieldcps1
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxcallscotland1987
 
Magic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptxMagic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptxdhanalakshmis0310
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentationcamerronhm
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.MaryamAhmad92
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...christianmathematics
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...Poonam Aher Patil
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...ZurliaSoop
 
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.pptxAreebaZafar22
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Jisc
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxDenish Jangid
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.pptRamjanShidvankar
 

Recently uploaded (20)

How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
Asian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptxAsian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptx
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptx
 
Magic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptxMagic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptx
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
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
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 

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...