Playing with IMS Learning Tools Interoperability and Blackboard’s Proxy Tool

Last week I spent two fun days at Blackboard hacking with John Fontaine and George Kroner. My goal was to advance my understanding of the Blackboard Proxy tool and get a better sense of how to fit the upcoming IMS Learning Tools Interoperability specification into Blackboard’s product. Part of my job as the IMS Developer Network Coordinator is to “network” with developers and this was a perfect example of a situation where I could advance the cause of interoperability amongst learning management systems and learn something new.

None of the statements or pictures in this post represent any product commitment by anyone. They are just hacks to show proof of concept.

I arrived with a plan to write a SimpleLTI ( Building Block – but quickly decided to spend our time playing with BB9 proxy to see how it lined up with SimpleLTI, BasicLTI, and LTI 2.0.

Adding BB9 Proxy Support to CloudCollab

Our first experiment was to add very simple support for BB9 proxy to my little Google AppEngine tool hosting environment ( CloudCollab already has totally awesome support for SimpleLTI so this was a cool experiment to see if I could easily teach CloudCollab to be “multi-protocol” inside its framework. And the answer was that it was quite easy to make all tools in CloudCollab handle either BB9 proxy or SimpleLTI. The ease of supporting multiple launch protocol variants is a nice indicator as I need to add BasicLTI and LTI 2.0 support as these become available.

When we were done, we had my little “Wisdom of Crowds” tool running in Blackboard and Sakai:

This tool is there using BB9 Proxy using “launch-only” – we do not do the
tool registration over web services – we register a tool and then change
its launch URL to point to my application running in Google App Engine.

You can see this code in the source repository for

Making Sakai Tools Available in BB9 Using Proxy

Flush with the success of adding BB9 to CloudSocial we decised to try to
add BB9 Proxy support to Sakai. We started with the BB9 test harness
servlet from Lance Neumann of Blackboard and then merged in code from the
SimpleLTI Producer code developed by Katherine Edwards last summer
as part of her Google Summer of code.

This time we could do a full registration of the Sakai tool into BB9 because
we had the source code for all the registration, etc from Lance. All that
was needed was the proper provisioning steps for the Blackboard accounts in Sakai. With Katherine’s code and
my recent experience doing this very thing with
a few weeks back, we were able to put this together
right before we ran out of time on Friday afternoon.

So here is Sakai’s Announcements and Wiki running in BB9 using the BB9
Proxy Protocol.

Lets be really clear that this was a hack-fest and did not produce production
code for either platform. The real goal was to explore what was feasible
and how hard was it to get basic things working.

The reality is that while the hacks still need more work – the total
hacking time for both efforts was about 6-7 hours. The rest of the time was
spent eating, drinking, drawing on whiteboards, Making plans for supporting
BasicLTI in Blackboard, visiting Hal and Derick at
Learning Objects,
and going to get free sodas and coffee from the Blackboard break rooms.

All in all – I was very pleased with the results. Now I need to kick
myself in the ARSE to get working on IMS BasicLTI so these innovations
can become real and end up in shipping products.