Professional Documents
Culture Documents
A SCORM 1 2 Futasideju Kornyezete
A SCORM 1 2 Futasideju Kornyezete
2 futsidej krnyezete
Duchon Jen
CL: A tanulsi folyamat erforrsainak jrafelhasznlsa illetve jrahasznostsa egy sszetett Tanuls Menedzsel
Rendszer (LMS) segtsgvel.
API
Az API egy kommunikcis mechanizmus, az oda-vissza kommunikcit valstja meg a LMS s a SCO kztt (pl a LMS
informlsa a SCO llapotrl, adatklds, s fogads a SCO-tl). Elrejti a megvalstsi rszleteket a SCO-tl: a SCO
csak azt mondja meg a LMS-nek, hogy mit csinljon, a hogyan mr a LMS feladata.
A SCORM kzvetlenl a futsidej krnyezet AICC ltal definilt CMI001 Guidelines for Interoperability dokumentumra
pt ezen a terleten.
A funkci nevek kis- s nagybet rzkenyek, s muszj mindig pontosan azt kifejeznik, amit csinlnak.
Minden egyes hvs egy API funkci, a tbbi hibakezel funkci, hibakdok alaphelyzetbe lltanak.
A LMS-nek kell indtania a SCO-t egy bngsz ablakban, amely a LMS ablak egy gyermek ablaka/kerete ami
tartalmazza az API csatolt.
Az API csatolnak hozzfrhetnek kell lennie a DOM-on keresztl, mint egy objektum nv: "API"
Megjegyzs: Az API csatolnak megvalsthatnak kell lenni ms programnyelvben is (pl. C++),s "betltttnek" kell
lennie, pldul egy bngsz plug-in formjban.
A kvetkez plda bemutat egy algoritmust, amelyet a SCO kpes hasznlni a LMS API csatoljnak lokalizlshoz.
Ezeket a funkcikat nem rja el a SCORM, gy vlaszthatunk ms utat is a lokalizlshoz.
nested.");
LMSFinish()
Lers: A SCO-nak ezt kell meghvnia, amikor mr nincs szksge tovbbi kommunikcira a LMS-el. (Ha a
LMSInitialize() sikeresen meghvdott.)
Kt dolgot trtnik:
1. A SCO megbizonyosodik arrl a nhny bellt adatrl (LMSSetValue()) amely a LMS ltal vgrehajtdott.
2. A SCO befejezi a kommunikcit a LMS-el.
Szintaxis: LMSFinish(parameter)
parameter
LMSInitialize()
Lers: Ez a funkci jelzi az API csatolnak, hogy a SCO kommuniklni fog a LMS-el. Engedlyt kr a LMS specifikus
kezdeti paramterek kiadsra. A SCO-nak ktelez ezt a funkcit hvnia, mieltt meghvna brmely ms API funkcit.
Szintaxis: LMSInitialize(parameter)
Parameter
Ha a visszatrsi rtk "False", az azt jelenti a SCO szmra, hogy a LMS egy ismeretlen llapotban van, s azt, hogy
nhny tovbbi API hvs nem fog vgrehajtdni a LMS-ben.
Plda:
var result = LMSInitialize("")
if (result == "false")
{
// hiba, le kell kezelni
}
else
{
// folytathat a SCO vgrehajts
}
A SCO kzli az API csatolval azokat a tartalmakat, amelyek szksgesek a kommunikcihoz a LMS-el.
Tipikus visszatrsi rtk: "True"
LMSCommit("")
LMSCommit()
Lers: Ha egy API csatol "kesselt" rtket vesz a SCO fell LMSSetValue() hvson keresztl. Ez a hvs megkvnja,
hogy legyenek mg fel nem dolgozott rtkek. Nhny megvalstsnl az API csatol amilyen gyorsan csak lehet,
megprbl rtket adni a vett rtknek, s azt nem a kliensre bzni. Az ilyen megvalstsok esetn, ez az API hvs
felesleges, s nem okoz tovbbi akcikat az API fell.
Szintaxis: LMSCommit(parameter)
Parameter
Ha a visszatrsi rtk "False", az azt jelenti a SCO szmra, hogy a LMS egy ismeretlen llapotban van, s tovbbi
API hvsoknak lehet vagy nem lehet vgrehajtdnia a LMS ltal.
Plda:
var result = LMSCommit("");
LMSGetValue()
Lers: Ez a funkci megengedi a SCO szmra, hogy informcit nyerjen a LMS-tl. A kvetkezk miatt hasznljk:
Adatmodell verzitmogats
A teljes adatelemek neve s/vagy kulcsszava (keyword) elrhet paramterknt. A szksges adatmodell paramter
aktulis rtkt visszakapjuk. Az egyes hvsoknl mindig 1 rtket (sztring) kapunk vissza.
Szintaxis: LMSGetValue(parameter)
parameter
Egy alszekvencia hvs az utols hibra (LMSGetLastError()) kpes beazonostani a nem tmogatott elemeket.
Plda:
var value = LMSGetValue("cmi.core.student_name") //Tipikus visszatr rtk
lehet: "Hyde, Jackson".
var value = LMSGetValue("cmi.core.lesson_status") //Tipikus visszatr rtk
lehet: "incomplete".
var value = LMSGetValue("cmi._version")
var value = LMSGetValue("cmi.student_preferences._children")
LMSetValue()
Lers: A SCO ezzel a funkcival kld informcit a LMS-nek. Az API csatolnak kell megtervezni az azonnali
informcikldst a LMS fel, vagy elre megadott kldsi informcik alapjn, ms ton. A funkci hasznlhat az
adatmodell klnbz elemeinek s csoportjainak adott rtkn. A teljes adatelemek neve elrhet paramterknt.
Egy rtk kldhet az egyes hvsoknl.
Szintaxis: LMSSetValue(parameter, value)
parameter: Az adatmodellben definilt, teljes, hibtlan neve. Az argumentum sztring, idzjelek kztt.
Plda paramterek:
datamodel.element - Kategria vagy csoportnv definils az adatmodellben.
datamodel.group.element - Egy elem nevnek definilsa az adatmodellben.
Plda:
// A cmi.core.score.raw rtkt 95-re lltjuk.
// Ha meghvjuk ezutn a LMSGetValue("cmi.core.score.raw") funkcit, az 95-el
fog visszatrni.
var result = LMSSetValue("cmi.core.score.raw","95");
LMSGetLastError(),
LMSGetErrorString(errornumber)
LMSGetDiagnostic(parameter)
LMSGetDiagnostic()
Lers: Rszletes lerssal szolgl egy-egy hibrl.
Szintaxis: LMSGetDiagnostic(parameter)
LMSGetErrorString()
Lers: Ez a funkci engedlyezi a tartalomhoz hozzrendelni egy hibakddal megadott hiba szveges lerst.
Szintaxis: LMSGetErrorString(errornumber)
LMSGetLastError()
Lers: Ez a funkci egy hiba sttuszkdot ad eredmnyl az t megelz API hvs eredmnyessgrl. a SCO-nak
minden egyes hiba fellpse esetn helyre kell hoznia a hibs kdot. Nhny hvs (LMSGetErrorString(), s
LMSGetLastError()
0 - No error
Plda:
var errorCode = LMSGetLastError();
API hibakdok
Kd
"0"
Ismertet
Nincs hiba
Felhasznls
Az API hvs sikeres volt.
"101"
ltalnos
megszakts
"201"
rvnytelen
argumentum hiba
Pl.
LMSGetValue("cmi.core.zip_code") //"cmi.core.zi
p_code" Nem egyvaldi CMI adatmodell elem
Elemnek nincs
gyermeke
Pl.
LMSGetValue("cmi.student_id._children")
"203"
LMSGetValue("cmi.core._count")
"301"
Nincs inicializlva
"401"
Nem
megvalsthat
hiba.
Pl.
LMSGetValue("cmi.objectives.0.id")
//A "cmi.objectives.0.id" elem nem opcionlis
elem.
//HA az LMS nem tmogatja ezt az elemet, akkor
az LMSnek res sztringgel kell visszaadnia s
401-es hibakdot kldeni.
LMSGetValue("xyz.score.result")
//A "xyz.score.result" egy rvnyes valid SCORM
Run-Time Environment adatmodell elem.
//Ebbl kvetkizik: LMS-nek kldenie kell a
401-es hibakdot, s res sztring rtket.
LMSSetValue("cmi.core._children","student_id,st
udent_name") //A "cmi.core._children" egy
kulcssz
Az elem rsvdett
Pl.
LMSSetValue("cmi.core.student_id","JoeStudent")
//A "cmi.core.student_id" egy rsvdett CMI
elem
Akkor keletkezik, ha egy LMSGetValue() hvs egy csak rhat elemen trtnik
"404"
Pl.
LMSGetValue("cmi.core.exit") //A
"cmi.core.exit" egy csak rhat CMI elem
Hibs adattpus
LMSSetValue("cmi.core.score.raw","eighty five")
// "eighty five" nem egy helyes adattpus a
"cmi.core.score.raw" szmra.
// A korrekt adattpushoz konverzi szksges:
CMIDecimal ("85").
Az llapotok:
Nincs inicializlva: A SCO feladata az API csatol megkeresse, s ha megvan, akkor a LMSInitialize("") API
hvs megttele, tovbb ha az sikertelen volt, akkor hibakezel API hvsok.
Inicializlt: A sikeres LMSInitialize("") s LMSFinish("") hvsok kztti rsz. Az sszes API hvs
alkalmazhat, kivve a LMSInitialize("")-t.
Befejezs: a LMSFinish("") utni szakasz. Ha "false" rtkkel tr vissza, akkor a hibakezel fggvnyek
hvhatk (tovbbi fggvnyhvsokra nem garantlt, hogy a LMS API csatol helyesen reagl).
Az els szimblum az adatelem nevben azonostsa az adatmodellt. (pl. cmi -> AICC CMI Data Model.) Ez
kibvti az API funkcionalits, mely szerint ugyanazon API-val hasznlhatunk klnbz adatmodelleket.
Adatmodell elemek
Az adatmodell elemei kt kategriba sorolhatak: ktelez s opcionlis. Az AICC CMI001 Guidelines for
Interoperability dokumentci specifiklja, hogy melyiket ktelez megvalstani a LMS ltal, s melyik csak opcionlis.
Az sszes ktelez adatmodell elemnek tmogatva kell lennie az LMS ltal. A LMS krnyezeteknek kell megvalstania
a tmogatst az sszes, vagy csak nhny opcionlis adatmodell elemhez.
Az sszes adatelem opcionlisan hasznlhat a SCO ltal. A SCOk szmra csupn az LMSInitialize("") s LMSFinish("")
API funkcik ktelezek, a LMSSetValue() vagy LMSGetValue() hvsok nem szksgszerek. A SCO-k nagyon kicsik s
alapestben nem ktelez nekik a nyomkvetst megvalstani, de ha nyomkvetnek, akkor az sszetett LMS
krnyezetben az jrafelhasznlhatsg miatt alkalmazkodniuk kell egy ltalnos adatmodellhez.
Kezelsi listk
Szmos adatelem listban vagy tmbben helyezkedik el.
Lista esetn az elemolvasshoz, vagy belltshoz indexszmokat hasznlunk. Az egyetlen eset, amikor az indexszm
elhagyhat, ha egyetlen tagja van a listnak. Az indexszmok 0-val kezddnek. Ha egy rtk hozzfz a listhoz, a
SCO-nak ismerni kell az utols indexszmot. Az sszes j tmbelem sorrendben fog elhelyezkedni. A SCO nem fog
kihagyni egy tmb szmot, vagy res tmbelemet ltrehozni, amikor ltrehoz egy tmb rtk listt. A _count kulcssz
hasznlhat a record lista aktulis elemszmnak megllaptsra.
Pldul:
var numOfObjectives = LMSGetValue("cmi.objective._count");
Ha a SCO nem ismeri a clrekord szmllrtkt, elkezdi az aktulis dik szmlljt 0-rl. Ez fllr minden olyan
informcit, amely az els index pozciban volt trolva. A fllrs vagy hozzfzs a SCO szerzjnek dntsi
eredmnye, amikor ltrehozza a SCO-t.
A lista elemeinek azonosts pont-szm jellssel trtnik:
Lers
CMIBlank
CMIBoolean
CMIDecimal
Egy szm decimlis ponttal. Ha nem elzi meg mnuszjel, akkor a szm pozitv. (pl
"2","2.2" s "-2.2")
CMIFeedback
numeric: CMIDecimal
matching: Egy vagy tbb azonostprral. Egyes azonostk egy egyszer bet
vagy szm (0-9 s a-z). Az azonostkat a pron bell perjel vlasztja szt.
Vessz vlasztja el a prokat. Ha az sszes prnak egyeznie kell az interakci
helyes figyelembevtelekor, akkor a prok listjt {} zrjelbe kell rakni.
CMIIdentifier
Egy alfanumerikus karaktercsoport szkz vagy nem nyomtathat karakterek nlkl. Max
hossz: 255 karakter
CMIInteger
CMISInteger
CMIString255
CMIString4096
CMITime
CMITimespan
CMIVocabulary
cmi.suspend_data - Informcit gyjt a korbbi alkalmazs alatt, melyet a jelenlegi alkalmazs felhasznl.
cmi.comments
Tmogatott API hvs: LMSGetValue(), LMSSetValue()
LMSben ktelez: Nem
Adattpus: CMIString4096
SCO hozzfrhetsg: Read / Write
Definci: Szabadformtum visszacsatols a SCO-tl. Pldul a tanul rendelkezhet megjegyzshagysi opcival a
SCO bizonyos pontjaiban, vagy rkrdezhet a megjegyzsekre az SCO futsnak vgn. A megjegyzs tartalmazhat
egy jelzt, amely megmutatja hol s mikor hoztk ltre az SCO-n bell. Az elrsi t lehet cmkzett, vagy begyazott
a megjegyzsben.
Felhasznls: A SCO megjegyzseket kldhet a LMS-nek sajt magrl. Felhasznlhat a tanulk sajt
megjegyzseinek trolsra.
Formtum: Szabadformtum alfanumerikus szveg s specilis karakterek
LMS viselkeds:
Initialization: res sztringgel kellene inicializlni. Az SCO felelssge ennek az rtknek a belltsa. Ha egy
LMSGetValue() hvs rkezik rtkllts eltt, a visszatrsi rtk res sztring.
LMSGetValue(): Visszatr az adatmodellben trolt rtkkel. Az rtk csak helyes adattpus lehet. Ha nincs
megjegyzs, akkor a LMS res sztringet kld vissza.
Error Code:
401 - Not implemented error. Ha az elem nincs tmogatva egy res sztringgel tr vissza a
hvs, s hibakd generldik.
Error Code:
401 - Not implemented error. Ha ez az elem nincs tmogatva 401-es hibakdot kld az LMS.
cmi.comments_from_lms
Tmogatott API hvs: LMSGetValue()
LMSben ktelez: Nem
Adattpus: CMIString4096
SCO hozzfrhetsg: Read Only
Definci: Ez azokat a megjegyzseket reprezentlja, amelyeknek a LMS-tl kellene jnnik. Pldul tanri
megjegyzsek formjban lehet ezt hasznlni. A megjegyzseknek ez a formja irnytott, akkor kell a SCO-nak
prezentlni a hallgatnak, ha az helynval.
Felhasznls: A SCO lsson nhny olyan megjegyzst, amely sszefggsben van a SCO-val, s a LMS-bl
szrmazik.
Formtum: Nincs specifiklt formtum
LMS viselkeds:
LMSGetValue(): Visszatr az adatmodellben trolt rtkkel. Az rtk csak helyes adattpus lehet. Ha nincs
megjegyzs, akkor az LMS res sztringet kld vissza.
LMSGetValue("cmi.comments_from_lms")
Plda visszatrsi rtk: Megvalsts fgg
Error Code:
401 - Not implemented error. Ha nem tmogatott, egy res sztringgel tr vissza a hvs, s
hibakd generldik.
Error Code:
403 - Element is read only. krs megprbl alkalmazni egy LMSSetValue() funkcit ezen az
elemen az LMSnek 403-es hibt kell jeleznie
401 - Not implemented error. Ha ez az elem nem tmogatott, 401-es kddal jelez az LMS