{"id":607,"date":"2009-03-22T11:20:37","date_gmt":"2009-03-22T15:20:37","guid":{"rendered":"http:\/\/www.dr-chuck.com\/wordpress\/?p=607"},"modified":"2011-12-17T12:29:52","modified_gmt":"2011-12-17T16:29:52","slug":"playing-with-ims-learning-tools-interoperability-and-blackboards-proxy-tool","status":"publish","type":"post","link":"https:\/\/www.dr-chuck.com\/csev-blog\/2009\/03\/playing-with-ims-learning-tools-interoperability-and-blackboards-proxy-tool\/","title":{"rendered":"Playing with IMS Learning Tools Interoperability and Blackboard&#8217;s Proxy Tool"},"content":{"rendered":"<p>\nLast week I spent two fun days at Blackboard hacking with <a href=\"http:\/\/twitter.com\/johnfontaine\" target=_new>John Fontaine<\/a> and <a href=\"http:\/\/twitter.com\/georgekroner\" target=_new>George Kroner<\/a>.  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&#8217;s product.  Part of my job as the IMS Developer Network Coordinator is to &#8220;network&#8221; 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.<\/p>\n<p>\n<b>None of the statements or pictures in this post represent any product commitment by anyone.  They are just hacks to show proof of concept.<\/b><\/p>\n<p>\nI arrived with a plan to write a SimpleLTI (simplelti.appspot.com) Building Block &#8211; but quickly decided to spend our time playing with BB9 proxy to see how it lined up with SimpleLTI, BasicLTI, and LTI 2.0.<\/p>\n<p><!--more--><\/p>\n<p>\n<b>Adding BB9 Proxy Support to CloudCollab<\/b><\/p>\n<p>\nOur first experiment was to add very simple support for BB9 proxy to my little Google AppEngine tool hosting environment (www.cloudcollab.com).  CloudCollab already has totally awesome support for SimpleLTI so this was a cool experiment to see if I could easily teach CloudCollab to be &#8220;multi-protocol&#8221; 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.<\/p>\n<p>\nWhen we were done, we had my little &#8220;Wisdom of Crowds&#8221; tool running in Blackboard and Sakai:<br \/>\n<center><br \/>\n<a href=\"http:\/\/www.dr-chuck.com\/images\/2009\/03\/index.php?img=22-03-09_102834_02.jpg\" target=\"_new\"><img decoding=\"async\" src=\"http:\/\/www.dr-chuck.com\/images\/2009\/03\/22-03-09_102834_02.jpg\" width=\"400\"><\/a><\/p>\n<p>\n<a href=\"http:\/\/www.dr-chuck.com\/images\/2009\/03\/index.php?img=22-03-09_102834_01.jpg\" target=\"_new\"><img decoding=\"async\" src=\"http:\/\/www.dr-chuck.com\/images\/2009\/03\/22-03-09_102834_01.jpg\" width=\"400\"><\/a><br \/>\n<\/center><br \/>\nThis tool is there using BB9 Proxy using &#8220;launch-only&#8221; &#8211; we do not do the<br \/>\ntool registration over web services &#8211; we register a tool and then change<br \/>\nits launch URL to point to my application running in Google App Engine.<\/p>\n<p>\nYou can see this code in the source repository for www.cloudcollab.org.<\/p>\n<p>\n<b>Making Sakai Tools Available in BB9 Using Proxy<\/b><\/p>\n<p>\nFlush with the success of adding BB9 to CloudSocial we decised to try to<br \/>\nadd BB9 Proxy support to Sakai.   We started with the BB9 test harness<br \/>\nservlet from Lance Neumann of Blackboard and then merged in code from the<br \/>\nSimpleLTI Producer code developed by Katherine Edwards last summer<br \/>\nas part of her Google Summer of code.<\/p>\n<p>\nThis time we could do a full registration of the Sakai tool into BB9 because<br \/>\nwe had the source code for all the registration, etc from Lance.  All that<br \/>\nwas needed was the proper provisioning steps for the Blackboard accounts in Sakai.  With Katherine&#8217;s code and<br \/>\nmy recent experience doing this very thing with<br \/>\n<a href=\"http:\/\/www.dr-chuck.com\/csev-blog\/000599.html\">Chisimba<\/a><br \/>\na few weeks back, we were able to put this together<br \/>\nright before we ran out of time on Friday afternoon.<\/p>\n<p>\nSo here is Sakai&#8217;s Announcements and Wiki running in BB9 using the BB9<br \/>\nProxy Protocol.<\/p>\n<p>\n<center><br \/>\n<a href=\"http:\/\/www.dr-chuck.com\/images\/2009\/03\/index.php?img=22-03-09_110451_01.jpg\" target=\"_new\"><img decoding=\"async\" src=\"http:\/\/www.dr-chuck.com\/images\/2009\/03\/22-03-09_110451_01.jpg\" width=\"400\"><\/a><\/p>\n<p>\n<a href=\"http:\/\/www.dr-chuck.com\/images\/2009\/03\/index.php?img=22-03-09_110451_02.jpg\" target=\"_new\"><img decoding=\"async\" src=\"http:\/\/www.dr-chuck.com\/images\/2009\/03\/22-03-09_110451_02.jpg\" width=\"400\"><\/a><br \/>\n<\/center><br \/>\nLets be really clear that this was a hack-fest and did not produce production<br \/>\ncode for either platform.  The real goal was to explore what was feasible<br \/>\nand how hard was it to get basic things working.<\/p>\n<p>\n<a href=\"http:\/\/www.imsglobal.org\/\" target=_new><img decoding=\"async\" src=\"http:\/\/www.imsglobal.org\/images\/logo.jpg\" align=right width=232><\/a><br \/>\nThe reality is that while the hacks still need more work &#8211; the total<br \/>\nhacking time for both efforts was about 6-7 hours.  The rest of the time was<br \/>\nspent eating, drinking, drawing on whiteboards, Making plans for supporting<br \/>\nBasicLTI in Blackboard, visiting Hal and Derick at<br \/>\n<a href=\"http:\/\/www.learningobjects.com\/\" target=_new>Learning Objects<\/a>,<br \/>\nand going to get free sodas and coffee from the Blackboard break rooms.<\/p>\n<p>\nAll in all &#8211; I was very pleased with the results.  Now I need to kick<br \/>\nmyself in the ARSE to get working on IMS BasicLTI so these innovations<br \/>\ncan become real and end up in shipping products.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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&#8217;s product. Part of my job as the IMS Developer [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-607","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/posts\/607","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/comments?post=607"}],"version-history":[{"count":1,"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/posts\/607\/revisions"}],"predecessor-version":[{"id":2706,"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/posts\/607\/revisions\/2706"}],"wp:attachment":[{"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/media?parent=607"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/categories?post=607"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dr-chuck.com\/csev-blog\/wp-json\/wp\/v2\/tags?post=607"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}