IMS Basic LTI Consumer for OLAT (

Next week this time, I will be hacking at the University of Zurich with one of the lead developers of OLAT (Guido Schnider) looking at better supporting IMS standards in the OLAT Learning Management System (
I decided to get a head start and code up the IMS Basic LTI Consumer for OLAT somewhat in advance to make sure that our work next week was as productive as possible – I wanted to get the download, compile, and basic stuff out of the way.
I made pretty good progress and kind of have my first pre-alpha release. Here is a nice working screenshot:


I have the source to the tool and instructions o how to add the tool to an OLAT distribution in the Sakai Contrib Repository because I like to put stuff into svn in case I lose it or break it.
There is still work yet to do when I get to Zurich – but now we can focus on more strategic issues rather than just getting the IMS Basic LTI equivalent of “Hello World” working.
In doing this work, I learned a bit about OLAT.

  • OLAT is over 10 years old and started in 1999 at the University of Zurich
  • OLAT has a nice learning object repository approach that is already very close to IMS Common Cartridge. OLAT objects have learning objectives, simple workflow, and other nice common LOR concepts.
  • OLAT makes a lot of use of AJAX rather than the traditional Request-Response cycle. I am still personally a bit nervous about the usability and accessibility of a pure-AJAX approach and am looking forward to talking more with the OLAT team about this next week.
  • OLAT (like many other systems) has its own MVC presentation framework. It is a blend of a Java component model for forms and Velocity templates – you can go back and forth between them. I am not an expert on the OLAT GUI framework yet – I think its strength is that it supports both “in-Java” and HTML-templating models so each developer can pick how they want to use both in their App. Abstractions around forms are always complex/powerful and take a bit of getting used to.
  • OLAT separates course authoring from course viewing. Initially that seemed weird to me – but after a while the edit/publish pattern felt pretty good. I can imagine that the author/publish pattern might allow performance advantages for certain static things.

I learned about using document.write to populate an iframe and how you must split up script tags when writing javascript using document.write. Cool stuff – you learn something new everyday. Here is a useful link on the issue:
In general I was impressed with OLAT and found it to be a very mature system and a nice extension model.