Scaling API-first – The story of a global engineering organization
Launching Learning Content with xAPI
1. Ben BettsLaunching xAPI Content with the xAPI Launcher
Ben Betts
Launching xAPI Content
HT2 Labs
2. Ben BettsLaunching xAPI Content with the xAPI Launcher
Problem
How can we launch eLearning content packages to track via xAPI without an LMS?
A couple of sub-difficulties…
- How do we know the actor / endpoint without hard-coding it into the package or asking
the user?
- How we do avoid exposing User and LRS details in the process?
3. Ben BettsLaunching xAPI Content with the xAPI Launcher
Options…
1. Go proprietary and make something for each product on the marketplace
- Some efforts in this area already, e.g. Storyline, Moodle.
BUT
- It’s going to be difficult to scale (not standard) and doesn’t necessarily solve the
exposure of the LRS / user details.
4. Ben BettsLaunching xAPI Content with the xAPI Launcher
Options…
2. Go CMI-5
- This is exactly the sort of thing that CMI-5 was designed.
BUT
- Quite complex (in our opinion) and presumes an LMS is in the mix. What if it’s not?
5. Ben BettsLaunching xAPI Content with the xAPI Launcher
Options…
3. xAPI Launch - https://github.com/adlnet/xapi-launch
BINGO!
- Matches the use cases outlined and is less complex than cmi5
14. Ben BettsLaunching xAPI Content with the xAPI Launcher
Adapt tracks via xAPI to Learning Locker
15. Ben BettsLaunching xAPI Content with the xAPI Launcher
Learning Locker pushes status to Drupal
16. Ben BettsLaunching xAPI Content with the xAPI Launcher
Find us online at: www.ht2labs.com
Want to know more?
Ben Betts
Hinweis der Redaktion
Launching xAPI Content
Problem
How can we launch eLearning content packages to track via xAPI without an LMS?
A couple of sub-difficulties…
How do we know the actor / endpoint without hard-coding it into the package or asking the user?
How we do avoid exposing User and LRS details in the process?
Options
1. Go proprietary and make something for each product on the marketplace
Some efforts in this area already, e.g. Storyline, Moodle.
BUT
It’s going to be difficult to scale (not standard) and doesn’t necessarily solve the exposure of the LRS / user details.
2. Go CMI-5
This is exactly the sort of thing that cmi5 was designed.
BUT
Quite complex (in our opinion) and presumes an LMS is in the mix. What if it’s not?
3. xAPI Launch - https://github.com/adlnet/xapi-launch
BINGO!
Matches the use cases outlined and is less complex than CMI-5
How does it work?
The learning provider – which could be an LMS, but equally could be a web page – starts the process when a user clicks on a link to launch a learning experience.
We assume that the learner is logged in to whatever experience they are taking already.
These session details of the user who is on the web page are passed over to the launch server on click (1).
In return, the Launch server creates a new access token for the logged in user, and passes it back to the Learning provider (2).
Our launch server is already configured with authentication to push statements to an LRS – the Learning Provider doesn’t need to know this detail.
The learning provider now has a ‘launch token’ which can be used to initialise the xAPI content package (3).
The content package is expecting this token and knows how to use the xAPI Launch specification in order to return the actor and other details associated with the token (4 & 5).
The content package can now send xAPi statements (or state) to the Launch server (6), using the details that were returned from the token.
This data is automatically routed from the Launch server to the LRS (7), in our case Learning Locker.
Notice we never exposed the LRS details to the Learning Provider, nor did we hardcode them into the content.
We could reconfigure our Launch Server with a different LRS at any time and this flow would still work.
Finally, when the user is done with the content and the session is ended, a terminate call is made to the Launch Server (8), rendering the Token that we made at the start of the process, obsolete.
Working Example: The Cochrane Collaboration(Cochrane / Kineo / HT2 Labs)
We configured Drupal to act as the Learning Provider.
On launching a new module of learning content, Drupal calls the Launch server, gets a new token and passes it to the learning package on initialisation.
The learning packages are made in the Open Source framework, Adapt.
These guys have just started rolling out xAPI support and now they can natively support the launch process – Adapt content will know what to do with an xAPI launch token. They are also doing cmi5.
Adapt uses both the Statement and State API, like you might expect a learning authoring tool to use.
It can use the launch server token to insert the actor, endpoint and any additional context to its xAPI data.
Here we see the data hitting the Learning Locker in real-time.
Finally, the Drupal CMS is clever enough to use Learning Locker as the status holder for progress in the modules of content.
As such, the webpage can automatically update with the latest progress a user has made.
That’s launching eLearning content, and tracking back to a Learning Record Store, without the need for an LMS. All using Open Source tools – Open Source CMS (Drupal), Open Source Authoring tool (Adapt) and Open Source Learning Record Store (Learning Locker).
You can actually see this for yourself at http://training.cochrane.org/interactivelearning