Think out of the box logo - Copyright 2004 Claude OstynSpacerOstyn Consulting - Title
 

For non technical documents about SCORM, including overviews written for normal human beings, see SCORM general resources.

 

 

 

 


Click here for non-technical documents about SCORM.

SCORM Technical resources

Practical guides

In the Eye of the SCORM
An introduction to SCORM 2004 for Content Developers

Claude Ostyn, 2006

This eBook is for content developers and managers of learning content development projects. It contains an overview of the SCORM, as well as practical examples. The function and structure of a package manifest are described. Various aspects of the behavior of a shareable content object (SCO), and in particular how a SCO communicates with a runtime environment, are explained with working examples. Note that although some instructional design considerations are mentioned, this is not an instructional design guide but a technical introduction.
Draft in progress (100 pages)
(Acrobat PDF, 756KB)
(ZIP file of PDF, 640KB)
Reusable sample script
March 2007 (For SCORM 2004 3rd Edition)

SCORM Interactions
Creative use of interactions in SCORM

Claude Ostyn, 2007

This eBook is for content developers and instructional designers. It explains how to take advantage of the interactions data model specified in SCORM 2004 to support rich interactive content as well as classic question-based assessments and simulations. It provides a number of examples of applications of the interaction types. It provides a conceptual model of the data model and its uses for tracking and resume or suspend operations for a SCORM content object. The document also shows how to combine interaction objects and SCORM interaction records to provide advanced behavior such as advanced simulation performance tracking or confidence based markup.
Draft in progress (28 pages)
(Acrobat PDF, 221KB) January 2007

General architecture for a SCORM 2004 LMS implementation
Part 1 - Functional overview

Claude Ostyn, 2005
This are working notes for part 1 of a multipart document. The other parts are not publicly available yet. The plan for the other parts includes topics such as user interface considerations, client/server implementation considerations, use of XML, and auditing.

Abstract: There are many ways to implement a SCORM 2004 conformant LMS. However a fully functional LMS includes a number of features that are beyond the scope of SCORM. A useful way to manage this complexity is to look at a practical LMS implementation as consisting of several main functional components, one of which is of course the SCORM 2004 conformant delivery environment.
Read online (HTML, 22K) - last updated Aug 2005

SCORM deployment issues

SCORM cross domain scripting and remote content

SCORM cross host scripting solution

The SCORM API requires that the content use ECMAScript (a.k.a. JavaScript) to communicate with an API object provided by the LMS. This can of course a problem if the LMS and the content come from different servers, because of the "single origin" security rule that is strictly enforced by browsers to prevent cross-scripting exploits and vulnerabilities.
This paper presents a straightforward solution to this problem.
Updated June 2006
Read online.

SCORM cross domain delivery demonstration

This demonstration shows how content from a remote repository can communicate with the client components of a LMS from another server without violating the browser's cross-platform scripting security rules. Updated July 2006 Interactive online demo.

SCORM cross host scripting solution using Apache 2.x.

This document describes setting up an Apache server as a reverse proxy to eliminate the cross-hosting security violation that arises when SCORM content cannot be served from the LMS. Updated May 2006 Read online.

SCORM testing, demonstration and diagnostic tools

These are mostly for content developers but may also be helpful for LMS developers or managers t o diagnose problems with troublesome content. Some of the downloads below may also be useful to quickly adapt troublesome content that cannot be re-authored.

SCO Test wrap to monitor SCO communication with LMS

This wrapper can be used to monitor the communications between a SCO and a SCORM 2004 runtime environment. It can also be used as a minimal, standalone runtime environment for quick testing of SCOs. It consists of a single HTML file that, when launched, instantiates various windows including a log window, a stage window in which the SCO will play, and a small control panel.
Updated January 2007
Interactive online demo, more info and download.

Diagnostic SCO to test a SCORM LMS

This SCO can be used to inspect and diagnose a SCORM 2004 or SCORM 1.2 runtime environment. It consists of a single HTML file that, when launched, recognizes whether it is running in a SCORM environment. It looks first for a SCORM 2004 API object, and if that fails it looks for a SCORM 1.2 API object. It also displays information about the configuration and relationship of the windows that were inspected by the API discovery algorithm. You can initialize and terminate a communication session with the SCORM API and you can exercise the API by trying SetValue and GetValue with the parameters appropriate for the version of SCORM that was detected. You can also "play" batch test scripts that make a predefined series of API calls and log the results.
Updated March 2007
Interactive online demo, more info and download.

SCORM content adapters and wrappers

POPSCO - Display size control for SCOs

Often, online learning content requires a minimum display size to provide a good learner experience. However, SCORM does not currently define any way to specify that size. POPSCO is a small add-on that can be used with any SCO to help ensure that the SCO will be displayed at the desired size, regardless of how various LMS implementations display SCOs. It requires no modification to existing SCOs and works with SCORM 1.2 and SCORM 2004. Primarily for content developers.
Updated September 2006
Interactive online demo, more info and download.

Easy SCO Adapter for SCORM 1.2 to 2004

The Easy SCO Adapter for SCORM 1.2 to 2004 allows you to run any unmodified SCORM 1.2 conformant SCOs in a SCORM 2004 conformant LMS. It is most useful in situations where modifying or recreating SCOs is not economically feasible. When you use the adapter, the SCO believes that it is running in a SCORM 1.2 runtime environment, and the runtime environment believes that it is running a SCORM 2004 SCO. Unlike the adapter available on the ADL web site, this adapter is totally invisible to the user and the SCO is played in the same frame or window in which a SCORM 2004 environment would display native SCORM 2004 SCOs.
Updated September 2006 More info and download

Single SCO Mini-Runtime

Sometimes it is desirable to launch a SCO in a context other than a LMS. Many SCOs, however, are coded in such a way that they show error messages if no LMS is present when they are run. The Single SCO Mini-Runtime is a fully self-contained web page that solves this problem. It is a self-contained SCORM runtime environment for a single SCO.
Updated February 2007 More info and download

Closing catcher for SCORM 1.2

A problem with some web based delivery of learning content is that the learner may close the browser window or clicks the browser's backspace button without formally clicking on an Exit button or equivalent. As a result, the tracking information for the user's session may not be recorded or may be recorded incompletely because the SCO does not call the LMSFinish function in the SCORM interface. Often this problem is not discovered until the content has been deployed for a while and real users just close the window when they think they are finished with the content. This "catcher" for SCORM 1.2 is a wrapper that can be easily added without any knowledge of the internals of the SCO, for cases where fixing the SCO itself is not economically feasible. It is compatible with most SCOs.
August 2005 Zip file with documentation and wrapper. (63K)

SCORM Scripting resources

At the end of the SCO: To close or not to close

You created a wonderful SCORM conformant SCO. Now you run it in a LMS. This particular LMS opens a new window and plays your content object in it. Or it plays your SCO in a frameset. All is well until the learner reaches the end of the SCO. But now it just sits there, even though the learner should no longer be able to do anything with it. The situation is confusing. How do you solve this problem? How do you explain it to your client or manager?
September 2006
Read online.

Best practices for the use of Commit in SCORM content

This document suggests some best practices for the use of Commit in SCORM content.
June 2006 Read online.

API discovery scripts - Defensive scripting for an obscure FireFox issue

SCORM content interoperability depends on the ability of SCORM content objects to discover a SCORM API instance provided by the LMS in a related frame of window. Sometimes the discovery algorithm fails in FireFox because of an unexpected side effect of the FireFox scripting security implementation. This can happens if a SCO is launched in a mixed window or frame environment in which the discovery algorithm stumbles on a window with content from another domain. This document describes an improved API discovery scripting technique that prevents this problem without compromising functionality or security.
June 2006 Read online.

ISO 8601 duration and time stamps in SCORM 2004

This web page demonstrates the use of the ISO 8601 duration and date-time (a.k.a. "timestamp") formats as used in SCORM 2004 and recommended by the IEEE 1484.11.1 standard. It includes dynamic examples so you can try how different values are represented. It also explains how to do time related calculations based on ISO 8601 durations or time stamps. Because the number of days in a month varies, this may lead to loss of precision when representing durations. Practical workarounds are demonstrated to avoid this problem. The script of this page also contains reusable ECMAScript functions to convert to and from the ISO 8601 format.
March 2005 Interactive online demo with reusable JavaScript functions.

Adobe Flash and SCORM

Cross-platform Communication Between Adobe (exMacromedia) Flash and SCORM Run-Time Environments

SCORM requires communication between Flash ActionScript and Javascript. Flash Player 8 introduces a new way to do this, the flash.external.ExternalInterface (http://livedocs.macromedia.com/flash/8/main/00002200.html#43962). With older versions of Flash or to work around what seems to be unresolved issues with this new functionality in Flash 8, you would typically use fscommand, but fscommand is not available on all platforms that support SCORM and Flash. The communication functionality is supported more reliably the Flash JavaScript Integration Kit (http://osflash.org/doku.php?id=flashjs), a project created and written by Christian Cantrell and Mike Chambers at Macromedia. In any case, it still seems the easiest and more reliable approach is to let JavaScript in the host page manage the SCORM API discovery and communication session state, and to use Flash only to do what it does best.

SCORM Publishing Templates

Flash 8 includes two HTML publishing templates to create SCORM conformant SCOs. One for SCORM 1.2 and one for SCORM 2004. Those templates can be a tremendous time saver. If your Flash content is a movie that loads and unloads other movies, you might want to save backup copies of the template files and modify them. Remove the onbeforeunload event handler in the body tag of the template. A spurious onbeforeunload event is triggered in the browser whenever a movie is replaced by another one, and this would cause premature termination of the communication session between your SCO and the SCORM API. In English versions of Flash, the files are in C:\Program Files\Macromedia\Flash 8\en\First Run.

Flash MX 2004 includes a similar template for SCORM 1.2 only.

2003 FS SCORM, V1.2.4 template for Flash MX

Get it on the Macromedia Flash Exchange site (http://www.macromedia.com/exchange/flash). This publishing template for Flash MX and SCORM 1.2 allows developers to call SCORM 1.2 'LMS' functions by using fscommands within Flash movies. It corrects a couple of bugs in FS SCORM, V1.2.2 that can also be found on Flash Exchange. An updated version of this template for Flash MX 2004 is included in the Flash MX 2004 package as the "Flash with SCORM Tracking" template (Flash_with_SCORM_Tracking.html).

SCORM packaging resources

Simplified IEEE LOM schema

The multiple XSD files and folders of the sample IEEE schema for LOM are an unnecessary complication when packaging and editing metadata in SCORM 2004 packages. This document describes a simplified LOM XML schema file that conforms to the IEEE standard and replaces 18 files in 5 folders. This schema file can be used without affecting conformance with IEEE or SCORM.
August 2006
Read online and download schema.

SCORM required document control files

List of the XML control document files that must be in every SCORM package. The ADL SCORM self-test certification test suite will fail a package that does not include those control documents.
January 2007
Read online

Useful SCORM related links

SCORM on the Advanced Distributed Learning web site

www.adlnet.org/scorm is where you can find not only the specifications, but also various resources such as content examples, the conformance test suite, lists of SCORM adopters and certified products, forums and articles.

Selected free third party resources

(Additional links to free SCORM resources will appear here from time to time)

SCORM proposals and white papers

SCORM Implementation and extensions

XML and the SCORM CMI data model

The SCORM 2004 content object communication data model is based on an IEEE standard: IEEE 1484.11.1-2004. A companion IEEE standard, 1484.11.3-2005, specifies an XML schema for that data model. LMS or other application developers who wish to use XML can use that standard schema. This document is a brief overview of the standard and how it relates to the SCORM CMI data model. The document also discusses applications of the schema for reporting or for specialized applications.
- Claude Ostyn, July 2006.
View online (HTML)

Resources for interstitial states in SCORM Sequencing

Interstitial states are required in SCORM 2004 sequencing while the sequencer is determining what to do next, or when the sequencer does not know what to do because the user must decide. When such a state occurs, the runtime environment is forced to display some arbitrary web content in the stage window where the SCOs and assets are normally displayed. This leads to a jarring user experience, which distracts from the learning process and which may quickly become intolerable if the SCO granularity is very small. This proposed specification offers a simple solution. It would allow content creators to provide optional web pages and prompts congruent with the rest of the SCORM content package, to be used during interstitial states.
- Claude Ostyn, Draft in progress, for discussion. Please comment. Rev September 19, 2005.
Word document (487K)

Distilling Competency Data

Competency collected with SCORM conformant content and assessment can be useful for content management, but is usually less than really trustworthy. This paper proposes a simplified process to distill competency information for individuals and teams, using simple standard data records for evidence of competency. It discusses how legacy, formal assessment and SCORM competency data in various forms can be preserved as well as "distilled" for use through a robust, credible process.
- Claude Ostyn, Last updated: 15 March 2005; incorporated into the Competency Data for Automation framework proposal described on the Big Picture page of this site.
PDF document (565K) View online (HTML)

Practical guide to Globally Unique Identifiers

SCORM packages, Reusable Competency Definitions, global objectives and various digital objects intended for reuse require globally unique identifiers. Globally unique identifiers are required to guarantee that when you refer to something you are not accidentally referring to something else even when content or other digital objects from different sources are mixed and matched in the same application or repository. There are two ways to generate a globally unique identifier. One is to get one from a registry, and the other is to generate it by using an algorithm that guarantees uniqueness to an extremely high degree of probability.
- Claude Ostyn, Last updated: June 2006
Read online

Top of page

© 2011 Ostyn Consulting - All rights reserved.