Need help?

I'm available for remote short term contracting or consultancy work. Please check out my LinkedIn profile for more details on my experience.

Please feel free to use the form below to contact me.

Tin Can Approach with SCORM 1.2 and 2004 - Offline Solutions

You’re probably wondering what I mean by a ‘Tin Can Approach’. Well, the major concept of the new Tin Can standard, is direct communication to an API; removing the dependancy of JavaScript. I'm going to be focusing more on the API aspect, and not so much the way the data is packaged.

With SCORM 1.2 and 2004, they were made for the web; therefore the standards forced you to be constrained within a web setting/container. The problem, is that most of the courses in the market right now, were designed using 1.2 or 2004. This adds a lot of limitations, especially if we want to create an LMS (learning management system) client for mobile devices. On the same note, we’d also have major issues with stand-alone applications on PCs.

What’s the big constraint? I bet you’re thinking - well why not just create a JavaFX app that can run courses? Unfortunately, it’s not that easy. Courses made using the 1.2 or 2004 standard, require a JavaScript interface, which it talks to. The only way to set something like that up, is if you created a Web View/Controller within your app. Sounds easy enough, right? Not really. It has it’s own limitations, which include the lack of Flash support.

The big question still remains - how to create an offline LMS, which can run on almost every system, use a Tin Can approach and run 1.2/2004 courses. I ended up going back to a web approach for this. Just because it’s web, doesn’t mean it has to be online. We can run offline web applications just fine. The only major constraint, is the lack of file-system access - browsers are pretty stringent about their security. For that problem, we can could utilize a Java Applet (which doesn’t even have to be visible) or local web server - just something for the JavaScript to interface with, and give us that little extra control.

Okay, so we got that figured out; but how are we going to work with the API? Well, that’s simple. The web application will communicate with the API using AJAX and JSONP. Are you wondering why we’re using JSONP? Well, that’s because of the cross-domain limitations. 

To sum it all up - the course gets loaded into the web application, which engages the Java Applet or Local Web Server (PHP), to unzip the course. The web app reads the manifest file, starts the course, and the course begins to communicate with the JavaScript API interface. The API interface will then save all progress/data locally, and sync it up via the API when there is internet connectivity.

Thanks for reading! I’m on an e-learning craze right now, so I’ll be posting a lot more articles about SCORM related topics; or maybe even some new e-learning standards that I get a chance to play around with. 

jon | May 30, 2013 | Comments (0)


Name (required)
Email (will not be published) (required)