SCORM 2.0

January 9, 2008

API

Filed under: AICC,SCORM 1.2,SCORM 2004 — by ganesha4 @ 4:58 pm

Application Programming
Interface utilisé par l’AICC, SCORM 1.2 et SCORM2004

L’API est un ensemble de méthodes publiques, fournies par le LMS, que le
SCO peut utiliser pour communiquer avec le LMS.

Toute la communication SCORM est à l’initiative
exclusive du SCO. Le LMS a quant à lui la responsabilité de placer l’API SCORM
dans le DOM qui est accessible au SCO
source : ANEMA SEG04

L’API SCORM® est écrite en
ECMAScript (plus connu sous le nom de JavaScript). Le SCO utilisera également
ce langage pour rechercher l’API et appeler les méthodes. Le SCO peut utiliser
un ensemble de fonctions génériques prédéfinies (SCORMGenericLogic.js, minisco.js)
pour communiquer avec l’API.

La communication entre l’API SCORM®
et le LMS n’est pas définie par les spécifications SCORM® et est donc laissé au
choix des plate-formistes.

De même, lors de la réception de
l’appel de fin de communication, SCORM® ne définit pas
si le LMS doit reprendre le contrôle ou si le SCO doit rester afficher à l’écran.
Dans la version GANESHA 4, nous utilisons la technologie AJAX pour
communiquer entre l’API et le LMS. Dans les versions précédentes nous
utilisions les Services Web pour réaliser cette communication.
Lors de l’implémentation de cette API dans GANESHA, nous avons fait le
choix de reprendre le contrôle de l’écran après réception de la fin de communication.

Un SCO est donc défini comme étant l’élément pédagogique le
plus petit pouvant communiquer avec un LMS. Il doit effectuer obligatoirement
au minimum 3 actions :

  1. Rechercher l’API placée dans le DOM par le LMS
  2. Initialisation de la communication
  3. Fin de la communication

Exemple :

// For SCORM 2004 only
var gAPI = null;
var gnScormSessionState = 0; // 0=not initialized; 1=initialized; 2=terminated
function ScanForAPI(win) {
var nFindAPITries = 500;
while ((win.API_1484_11 == null) && (win.parent != null) && (win.parent != win)){
nFindAPITries--;
if (nFindAPITries < 0) return null;
win = win.parent;
}
return win.API_1484_11;
}
function GetAPI(win){
if ((win.parent != null) && (win.parent != win)){
gAPI = ScanForAPI(win.parent);
}
if ((gAPI == null) && (win.opener != null)){
gAPI = ScanForAPI(win.opener);
}
}
function ScormInitialize(){
if (gnScormSessionState == 0){
GetAPI(window);
if ((gAPI != null) && (gAPI.Initialize("") == "true")){
gnScormSessionState = 1;
}
}
}
function ScormTerminate(){
if (gnScormSessionState == 1){
gAPI.SetValue("cmi.completion_status", "completed");
if (gAPI.Terminate("") == "true") gnScormSessionState = 2;
}
}

Source : http://ostyn.com/standards/docs/Eye_Of_The_SCORM_draft.pdf – Claude Ostyn

Nous avons vu que le SCO doit impérativement indiquer la fin de communication pour valider les informations remontées vers le
LMS. Pour assurer l’appel de cette méthode, il est préconisé de la placer dans
l’événement onunload de la page HTML du SCO. Idem pour l’appel d’initialisation de la communication et l’événement onload.

Exemple :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Claude's simplest SCO</title>
<script type="text/javascript" src="http://ganesha.fr/index.php?post/2008/01/09/minisco.js">
</script>
</head>
<body onload=ScormInitialize() onunload=ScormTerminate()>
<em>... as simple as possible, but not simpler.</em><br />Albert Einstein
</body>
</html>

Source : http://ostyn.com/standards/docs/Eye_Of_The_SCORM_draft.pdf – Claude Ostyn

Leave a Comment »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Create a free website or blog at WordPress.com.

%d bloggers like this: