Run Time
E-learning SCORM standard
bookshelf SCORM
SCORM
BOOK 1:
The SCORM
Overview
SCORM_1.2_Overview.doc
BOOK 2: The SCORM
Content Aggregation Model
BOOK 3: The
SCORM Run Time
Environment
SCORM_1.2_CAM.doc
Meta-data Dictionary (from IEEE)
Content Packaging (from IMS)
Content Structure (derived from AICC)
(Meta-data XML Binding and Best Practice (from IMS)
Data Model (from AICC)
Launch, Communication API (from AICC)
SCORM_1.2_RunTimeEnv.doc
contributors
Key Contributing Editors (ADL)
Ron BallJeff KrinockWilliam CaponeLori MorealliJeff FallsDouglas PetersonDexter FletcherJonathan
PoltrackAlan HoberneyChris SnyderPaul JesukiewiczSchawn ThroppKirk JohnsonBryce WalatMary
KraulandJerry West
Partial List of Contributors:
Alliance of Remote Instructional Authoring & Distribution
Networks for Europe (ARIADNE) (http://www.ariadne-eu.org/)
Erik Duval
Eddy Forte
Florence Haenny
Ken Warkentyne
Aviation Industry CBT (Computer-Based Training) Committee (AICC) (http://www.aicc.org/)
Jack Hyde
Bill McDonald
Anne Montgomery
Institute of Electrical and Electronics Engineers (IEEE)
Learning Technology Standards Committee (LTSC) (http://ltsc.ieee.org/)
Mike Fore
Wayne Hodgins
IMS Global Learning Consortium, Inc. (http://www.imsglobal.org/)
Thor Anderson
Steve Griffin
Mark Norton
Ed Walker
(At Large)
Bob AlcornMike Pettit Lenny GreenbergDan Rehak Chris MoffattTom Rhodes Boyd NielsenTyde Richards
Claude OstynRoger St. Pierre Chantal PaquinKenny Young
…and many others.
Run Time Environment
utente
Materiale didattico
standard
Cosa comunicare
(DATA MODEL)
Come comunicarlo
(API)
LMS
Run Time Environment
LMS
Nome utente
String 128 chr
Valori:
Percentuale fruiz.
Finita
Già iniziata
Segnalibro
Nome utente
DATA
MODEL
Stato Lezione
Risult. Test
……
……
API
Intero max 100
Stato Lezione
Risult. Test
Materiale didattico
standard
……
……
overview


Scopo di SCORM è l’interoperabilità dei
materiali didattici su diverse piattaforme (
Learning Management Systems, LMS).
perchè ciò possa avvenire, ci devono essere
 un metodo comune per avviare i materiali
didattici, [Launch]
 un metodo comune per comunicare con la
piattaforma [Application Program
Interface (API)] e
 Un linguaggio predefinito che sia la base
delle comunicazioni. [Data Model]
launch
API
Data model
Learning Management System (LMS)
LMS
LMS
Server
Server
Server Side
Client Side
Browser
Data Model
Actual data sent
back and forth
between SCO
and LMS
Asset
SCO
API
API
Adapter
Adapter
JavaScript
JavaScript
API (Communications
Link between SCO
and LMS)
Launch
launch
API
Data model
Launch


E’ responsabilità dell’LMS, in base alla content
structure, lanciare la giusta risorsa (Asset o
SCO)
In SCORM 1.2 non è definito rigidamente il
meccanismo gerarchico di lancio: può essere
fornito un elenco di link riferiti ad ogni risorsa
(At this time the SCORM does not address the standardization of
sequencing and navigation between learning resources)

SCORM 1.3: simple sequencing
launch
API
Data model
Requisiti del lancio: Asset


È sufficiente che siano lanciati attraverso il
protocollo HTTP,
non è richiesta comunicazione con l’LMS (no
API)
launch
API
Data model
Requisiti del lancio: SCO





Può essere lanciato un solo SCO alla volta
Uno SCO non può lanciare un altro SCO
Lo SCO può solo essere lanciato dall’LMS
L’LMS deve lanciare lo SCO in una finestra o in
un frame dell’LMS che deve esporre le API come
oggetto DOM
E’ responsabilità dello SCO cercare
ricorsivamente l’API Adapter e quindi iniziare la
comuniczione
launch
API
Data model
API





Le API sono un set predefinito di funzioni su cui
lo SCO può fare affidamento
Un API adapter è un insieme di software che
espone queste funzioni allo SCO
Non è responsabilità degli autori di materiali
sapere come sono costruite le API, ma solo
quella di usarle
Un materiale didattico, attraverso le API, può
leggere e scrivere dati
La comunicazione è sempre iniziata dallo SCO
launch
API
Data model
Tipi di funzioni



Execution State
 LMSInitialize(“”)
 LMSFinish.
State Management
 LMSGetLastError()
 LMSGetErrorString(errornumber)
 LMSGetDiagnostic(parameter)
Data Transfer
 LMSGetValue(data model element)
 LMSSetValue(data model element, value)
 LMSCommit("").
launch
API
Data model
Esempio di funzione:
LMSInitialize
Description: This function indicates to the API Adapter that the SCO is going to communicate with the
LMS. It allows the LMS to handle LMS specific initialization issues. It is a requirement of the SCO
that it call this function before calling any other API functions.
Syntax: LMSInitialize(parameter)
Parameter: "" An empty string must be passed for conformance to this standard. Values other than ""
are reserved for future extensions.
Return Value: String representing a boolean.
"true" result indicates that the LMSInitialize("") was successful
"false" result indicates that the LMSInitialize("") was unsuccessful
If a return value of "false" is returned, then this signifies to the SCO that the LMS is in an unknown state
and that any additional API calls will not be processed by the LMS.
Example:
var result = LMSInitialize("")
if (result == "false")
{
// Do some error handling
}
else
{
// continue with the execution of the SCO
}
The SCO tells the API Adapter that the content wants to establish communication with the LMS. A
typical return value is "true".
launch
API
SCO
Lanciato
Da LMS
Data model
API: Transizioni di stato
LMSInitialize(“”)
inizializzato
Non
inizializzato
LMSFinish(“”)
finito
Lo SCO può chiamare:
Responsabilit
à dello SCO:
trovare le API
e lanciare
LMSinitialize
1.
2.
3.
4.
5.
6.
7.
LMSGetValue
LMSSetValue
LMSGetLastError
LMSGetErrorString
LMSGetDiagnositc
LMSCommit
LMSFinish
Solo se l’LMS
restituisce ‘false’ lo
SCO può chiamare:
•LMSGetLastError
•LMSGetErrorString
•LMSGetDiagnositc
launch
API
Data model
Code
Description
Usage
“0”
No error
No errors encountered. Successful API call.
“101”
General Exception
Used to indicate general exceptions.
“201”
Invalid argument error
To be used when there is a call to a SCORM
Run-Time Environment data model element
that does not exist.
To be used when an invalid argument is
passed via the API
Ex. LMSGetValue(“cmi.core.zip_code”)
“cmi.core.zip_code” is not a valid CMI Data Model element.
Ex. LMSInitialize(“init”)
The LMSInitialize(“”) expects an empty string argument.
“202”
Element cannot have children
To be used when LMSGetValue() is called
on any data model category or element that
does not support _children.
Ex. LMSGetValue(“cmi.student_id._children”)
“203”
Element not an array. Cannot have count.
To be used when an LMSGetValue() is
called on any data model category or element
that does not support _count.
Ex. LMSGetValue(“cmi.core._count”)
“301”
Not initialized
To be used when there is a call to any API
function call before LMSInitialize(“”) is
called.
(continua…)
Esempi:
error
code
usage
launch




API
Data model
API adapter: resonsabilità
dell’LMS
L’ LMS deve lanciare lo SCO in una finestra o
frame che siano dipendenti (figli) della finestra
dell’ LMS che contiene l’API Adapter.
L’API Adapter deve essere fornito dall’ LMS.
L’unico meccanismo di interazione supportato è
attraverso chiamate ECMAScript (JavaScript).
L’ API Adapter deve essere disponibile tramite
oggetto DOM con nome “API”.
launch
API
Data model
API adapter: resonsabilità dello
SCO


Cercare le API
Chiamare, al minimo, le funzioni LMSinitialize()
e LMSfinish()
launch
API
Data model
Data Model



Lo scopo è fornire a differenti SCO la possibilità
di comunicare in modo comune verso le
piattaforme (es.: punteggio ottenuto)
E’ espandibile: in futuro verranno inseriti nuovi
valori
Si basa su AICC CMI Data Model (ridotto)
launch
API
Data model
Data Model: regole per i nomi





La prima parte del nome indica il modello di
riferimento (CMI nel nostro caso)
 Questo permette future implementazioni
Reserved keyword
 Precedute da _underscore
 _version, _children, _count
Tutte le matrici sono a partire da 0
Tutti i nomi sono case sensitive
Ogni SCO ha accesso solo ai propri dati, non a
quelli di altri SCO
launch
API
Data model
Data Model: elementi



Alcuni obbligatori, altri opzionali
Tutti gli elementi obbligatori devono essere
supportati dall’LMS
Tutti gli elementi sono opzionali per gli SCO


Lo SCO è obbligato solo a chiamare LMSInitialize() e
LMSfinish(), non sono obbligati a leggere
(LMSGetValue()) o scrivere (LMSSetValue()) dati
Nota di SCORM: gli SCO possono essere piccoli (very, very small) e non essere
progettati per comunicare nel dettaglio. Tuttavia, se devono comunicare, devono
poterlo fare in qualsiasi LMS allo stesso modo
launch
API
Data model
cmi.core: obbligatori per ogni
LMS















cmi.core_children: per determinare quali elementi del core sono supportati dalla piattaforma
cmi.core.student_id: per identificare univocamente uno studente
cmi.core.student_name: student official name
cmi.core.lesson_location: identifica l’ultima posizione dello studente
cmi.core.credit: indica se lo studente sta usando lo SCO per avere crediti (sì/no)
cmi.core.lesson_status: passed, completed, failed, incomplete, browsed, not attempted
cmi.core.entry: indica se lo studente è gia stato in questo SCO (ab initio, resume)
cmi.core.score._children:per determinare quale score children è supportato dall’LMS
cmi.core.score.raw: a 0 al primo accesso, poi viene incrementato
cmi.core.score.max: il massimo punteggio ottenibile
cmi.core.score.min: il minimo puntggio ottenibile
cmi.core.total_time: tempo totale passato dallo studente sulla lezione
cmi.core.lesson_mode: indica tre modalità di utilizzo al lancio: browse, normal, review
cmi.core.exit: indica la ragione per cui lo studente è uscito dallo SCO (timeout, suspend,
logout)
cmi.core.session_time: tempo passato dallo studente nella corrente sessione
LMS
SCO
Scelta dello SCO da lanciare, in
base a:
• Richiesta dell’utente
• Automatica
Si usano le informazioni di content
structure all’interno del content
Ricerca delle API
Chiamata LMSInitialize()
aggregation
Chiamata LMSLaunch_data(), se
supportata dallo SCO
Analisi di cmi.core.lesson_mode:
• è prevista la scelta da parte
dell’utente?
• opportuni cambiamenti a
cmi.core.lesson_mode
Inizializzazione di cmi.core.entry
Chiamata
LMSGetValue(cmi.core.lesson_mod
e) per identificare la modalità
d’uso della lezione
Lancio dello SCO
Messa a disposizione delle API:
• LMSInitialize
• LMSGetValue
• LMSSetValue
• LMSGetLastError
• LMSGetErrorString
• LMSGetDiagnositc
• LMSCommit
• LMSFinish
Settaggio mastery score
API
Data Model
Chiamata LMSSetValue() con
qualsiasi dato si voglia registrare
Chiamata LMSCommit()
Chiamata LMSFinish()
opzionale
Chiamata
LMSGetValue(cmi.core.entry) per
riportare lo studente nell’ultima
posizione
Scarica

API - e-fad