RD3: Offsite eLearning Course Delivery
During the development of SCORM, one of the purposes was to make eLearning courses easy to share. This is done by distributing a zipped file that contains all the information required to install and run the course through any SCORM compliant LMS. “All the information” encompasses a tremendous amount of data – it also includes the course and course assets. The distribution is typically done either by email or by some ftp method.
This approach works fine when the courses are small in size, but this solution can become pretty tedious with much larger courses.
Aside from the size and distribution problem, there are other reasons for not wanting to distribute online courses in the intended manner. When you use the official method, the content developer loses control of the course, and this could lead to intellectual property/copyright issues. The prescribed solution also complicates the updating of a course. The larger the course, the more problematic the updating becomes.
The Ideal Solution Creates Additional Problems
Fortunately, there are ways to deal with this problem, but each has pros and cons.
Offering Your LMS with the Course
The easiest solution is to offer your LMS along with the course. But the customer may have already invested in a different LMS, so this would not necessarily be the best option for the customer, and the content provider will probably lose business.
Rusticiti’s SCORM Cloud Dispatch Service
Another way to troubleshoot this issue is to use Rusticiti’s SCORM Cloud Dispatch service. They advertise that you can deliver SCORM content through any LMS. They also offer two other products that do the same thing:
- Rusticiti Cross Domain
- Rusticiti Content Controller
This is easy, but will increase the ultimate cost since this type of service is not free.
Another solution is to host your content in a sub-domain of the domain hosting the LMS. So, if the LMS is hosted on abcd.com, then hosting your content on provider A.abcd.com would solve the problem. However, this is not a very practical solution, especially if the LMS provider objects to the use of their domain.
Other Solutions Require More Sophisticated Programming Knowledge
There are other ways, but they do require some programming or web development skills on your part:
- You can use HTML5’s postMessage call to pass information between web pages. This is what is known as an asynchroneous call. This is a call that is broadcast, but the code will continue on executing the code without waiting for a response. This is not ideal for SCORM communications, so that means you will need to add code to capture response, and this is usually done by adding code that listens for a response.
- You can use what’s called a SCO-Fetcher. This is a module on the server hosting the LMS that fetches the SCO from a different server, but delivers it through the LMS using the LMS’ domain.
- You can use a proxy or virtual server to redirect the Responses from the LMS and the content server so as to make it appear that both the LMS and content are on the same server.
- Web pages are managed by some type software running on the server. For severs running the Windows operating system, the software is typically IIS (Internet Information Services). These web services can re-write URLs. This process involves manipulating the web address by the server web service application, and this method is an offshoot of the proxy or virtual server solution.
- SCO URL Callback Technique involves communication between the LMS and the content server through an HTML wrapper page that resides on the same domain as the LMS. That wrapper page then interacts with the content server to deliver the content. So, in this solution, the wrapper is actually the SCO.
The Avsoft Way
Avsoft uses the last technique because it works extremely well with our database driven solution. When we distribute courses with RD3, we use the manifests specified by the SCORM standard. But since we only distribute the wrapper, our manifests are extremely small – usually less than 2 mbs, and that’s irrespective of the size of the course.
Our wrapper is designed to deliver a player that actually resides on our server, so we’re able to update the course player at any time without having to ask our customers to update a manifest on their server. Since the course is actually database driven, we’re able to push updates without having to perform an update on the LMS side.