14. duben 2006
Automatizace přihlašování do Moodle
Příspěvek je věnován problematice implementace převodu dat mezi systémem pro podporu studijní agendy vysoké školy ČVUT a eLearningovým systémem Moodle. Je zde popsán výsledný program a možnosti využití tohoto programu na jiných školách a institucích. V článku jsou zahrnuty tyto části: 1. Požadovaná automatizace a její důvody. 2. Možnosti propojení systému ČVUT a Moodle. 3. Implementované funkční řešení a jeho 3 fáze. 4. Výsledné obecné řešení importu dat pro Moodle.
1. Požadovaná automatizace a její důvody
Cílem automatizace bylo usnadnění tvorby a správy elearningového kurzu. Na začátku každého semestru bylo třeba zadat do Moodlu seznam studentů, kteří jsou zapsaní na daný předmět. Tento zápis mohl proběhnou dvěma způsoby. Učitel si vypsal ze školního systému KOS seznam zapsaný studentů a tyto ručně zadat do kurzu a ostatním nepovolit zápis, nebo udělat zápis veřejný a nechat studenty a» se sami zapíší do určeného kurzu. Vzhledem k velkému objemu studentů (100-300 na předmět za semestr) byla volena učitelem obvykle druhá varianta. To s sebou přinášelo různé nevýhody, jedním z nich je přístup nezapsaných studentů a dále žertovné přezdívky studentů typu („pán světa“, „king kong“ apod.), které se problematicky párovali se skutečnými studenty. V případě vytvoření studentských účtů učitelem je pak problém distribuce hesla a pro studenty nepříjemná záležitost dalšího přihlašovacího jména a hesla do dalšího systému. Celkem je na katedře výpočetní techniky ve spojení s dalšími globálnějšími systémy ČVUT asi 5 nezávislých systémů, které mají stejné uživatelské jméno ale různá hesla. Snahou je tyto systémy navzájem co nejvíce provázat, aby stačilo jedno jméno a heslo. Zavádět tedy další jméno a heslo do Moodlu je kontraproduktivní.
Stručně shrnuté hlavní důvody pro automatizaci jsou:
- Automatické přiřazení zapsaných studentů – aby nebylo třeba kontrolovat kdo je na předmět zapsaný a kdo není
- Automatické přiřazení učitelů – aby všichni učitelé daného předmětu měli přístup ke kurzu který učí a nemuseli být přiřazování administrátorem nebo tvůrcem kurzu ručně.
- Integrace ověřování uživatele se školním LDAP serverem – z důvodu integrace do dalších školních systému je vhodné aby uživatel měl stejné user name jako v ostatních školních systémech a využíval stejné heslo jako do ostatních globálních školních systémů. Toto heslo ale nesmí být uloženo v Moodle, ale na LDAP serveru, protože Moodle nesplňuje svým datovým úložištěm potřebná bezpečnostní kritéria
- Eliminace nesmyslných studentských uživatelských jmen – každý student je identifikovaný svým user name, které je jednoznačné na celé vysoké škole ČVUT
- Snížení množství administrativní práce na učitele – minimalizace práce související se zadáním studentů na kurz nebo jejich kontrolou. Navíc, každý zapsaný student neplnící své povinnosti je pomocí Moodle snadno identifikovatelný již z počátku semestru.
2. Možnosti propojení systému ČVUT a Moodle
Veškerá data o studentech, učitelích a vypsaných předmětech na semestry jsou uložena v databázi informačního systému KOS. Informační systém KOS je informační systém pro podporu studijní agendy vysoké školy. Poskytuje řadu funkcí podporujících uživatele v rolích referentů studijního oddělení i kateder, učitel, student, rozvrhář a několik typů správců. Každý zaměstnanec a student fakulty je automaticky zařazen do katalogu uživatelů IS a je mu přidělena příslušná role. Všechny funkce systému jsou v současnosti realizovány jako aplikace pracující v prostředí UNIX a využívající data uložená v databázi Oracle. Uživatelé spouštějí funkce z libovolného počítače, který je zapojen do počítačové sítě a je vybaven vhodným emulátorem telnet, který podporuje šifrování dialogu pomocí SSL. Pro nejpoužívanější formuláře pro role student a učitel byly vytvořeny webové klony. Technické podmínky pro provoz informačního systému včetně provozu počítačové sítě zabezpečuje Středisko vědeckotechnických informací fakulty ČVUT FEL.
Moodle zřejmě není třeba blíže popisovat, proto pouze stručná specifikace převzaté ze stránek www.moodle.cz. Moodle je softwarový balíček pro tvorbu výukových systémů a elektronických kurzů na internetu. Jedná se o neustále se vyvíjející projekt, navržený na základě sociálně konstruktivistického přístupu k vzdělávání.
Protože systém KOS je spravovaný komerční firmou byla snaha o minimalizaci potřebných úprav na straně KOSu. Byla tedy zvolena možnost využít již existující exporty dat pro class server, který se také na katedře výpočetní techniky používá. Tyto exporty jsou data ve formátu CSV souborů. Hlavním problémem byla nedostatečná dokumentace k těmto exportům a to, že data pro tyto soubory jsou přebírána z více systémů a nejen z KOSu. Identifikátory záznamů tak názvem někdy neodpovídaly navzájem.
Problémem na straně Moodle je neexistence ER modelu k databázi a prakticky nulová dokumentace k databázi. Proto jsem pomocí reverse engineeringu analyzoval databázi moodle a výsledkem byl pouze seznam tabulek bez jakýchkoliv relačních vazeb a integritních omezení. Bohužel jako většina současných webových projektů je i v Moodle ponechávána veškerá kontrola integrity dat ponechána na straně php scritpů. Protože Moodle neumožňuje hromadný import kurzů a přiřazených studentů a učitelů, bylo nutné dostat data do Moodle vlastní cestou. Pro neexistenci kontrol na úrovni databáze jsem zavrhl možno přímo zapisovat do tabulek. Bylo velké riziko porušení integrity dat a při budoucím upgradu Moodle na vyšší verzi mohly nastat problémy s funkčností. Proto byla zvolena cesta využití co nejvíce funkcí Moodle a co nejvíce integrovat převodní můstek se stávajícími možnostmi a funkcemi Moodle.
Pro výměnu dat se používá v dnešní době více formátů, ale nejběžnější je standard XML. Proto byl jako importní formát zvolen tento formát. Pro převod CSV souborů na XML data bylo zvoleno řešení na bázi MS Access z důvodu možnosti kontroly integrity dat tímto databázovým enginem, který je přitom snadno kopírovatelný jako soubor. Navíc k jeho hlavní výhodě patří možnost snadného napojení na různé datové zdroje pomocí ODBC a pro univerzální využití můstku i pro jiné školy a instituce. Také v komerční sféře je MS Access k datovým můstkům hojně využíván.
3. Implementované funkční řešení a jeho 3. fáze
Ve výsledném řešení bylo třeba zohlednit několik podstatných částí. Data v CSV souborech jsou datově citlivá a plná osobních údajů. Oprávnění pracovat s těmito soubory má jen úzká skupina lidí. Aby si učitel mohl převést data pro potřebný kurz potřebuje podkladová data, ale ta nesmí být datově citlivá. Výsledkem byl převodní můstek KosMood-VIC (viz Obrázek 1). Tímto můstkem administrátor systému KOS převede data na datově necitlivý soubor ve formát MS Access a ten publikuje na webu pro stažení učitelům. Tato jediná fáze převodního můstku je specifická pro ČVUT. Ostatní části jsou již univerzálně použitelné.
|
Obrázek 1: KosMood-VIC
Druhá fáze je KosMood jde o převodní můstek v MS Access, do které se připojí datově necitlivý soubor z KosMood-VIC. Vybere se ze seznamu učitel, dále se zobrazí jeho předměty pro daný semestr. Tento předmět je možné rozdělit na více kurzů než jeden. (Například oblast Matematika I může být příliš rozsáhlá a je vhodné jí rozdělit na kurzy Diferenciály a Integrály). Aby nenarůstalo množství studentů v předmětu z každým semestrem je možnost zaškrtnout volbu „odstranit předchozí studenty z kurzu“. Výsledkem tohoto převodu jsou dva XML soubory. Je to „users.xml“ a „courses.xml“. Šablona vstupní databáze MS Access s necitlivými daty je součástí instalace a pro propojení s jiným systémem na jiné škole stačí naplnit 4 tabulky daty (viz datový model Obrázek 2). Jde o tabulky:
- tblUsers – seznam uživatelů (studentů i učitelů),
- tblPredmet – seznam předmětů,
- tblUciPredmet – identifikátor uživatele a identifikátor předmětu; určuje vazbu učitel učí předmět,
- tblZapsanyPredmet – identifikátor uživatele a identifikátor předmětu. Určuje vazbu student má zapsaný předmět.
![]() |
Obrázek 2: Datový model KosMood_data
Třetí fáze je KosMood-XML (viz Obrázek 3). Je to importní můstek XML souborů do Moodle. Je instalovaný do root adresáře Moodle a je na cestě rootadresářmoodle/kosmood. Pracovat s tímto můstek může administrátor nebo tvůrce kurzů. Ten zde zadajá vstupní XML soubory „users.xml“ a „courses.xml“. Nastaví se způsob ověřování uživatele, nastaví se parametry pro vytvářené kurzy a provede se import dat. Existující uživatelé a kurzy jsou ponecháni, pouze noví uživatelé a kurzy jsou vytvořeni. Veškeré kontrolní funkce a vkládání dat je prováděno funkcemi Moodle. Je využito knihoven Moodle.
Obrázek 3: KosMood-XML
Výsledné implementace se tedy skládá z 3 jednotlivých převodních programů
- KosMood-VIC – znecitlivění dat
- KosMood – příprava XML souborů pro Moodle
- KosMood-XML – importní můstek XML souborů a popis struktury dat
4. Výsledné obecné řešení importu dat pro Moodle.
Výsledné řešení je zpracováno tak, aby bylo univerzálně použitelné i mimo systému ČVUT. Obecně použitelné jsou převodní můstky KosMood a KosMood-XML. Lze použít buď oba dva můstky v pořadí KosMood a KosMood-XML. Nebo lze přímo importovat data do KosMood-XML v níže popsaném formátu.
Pokud bude použito obou můstků je třeba připravit vstupní databázi ve formátu MS Access. Pro tento případ je připravena šablona, která je součástí instalace. Popis potřebných tabulek je popsán v odstavci 3. Jediné nejasné pole může být pole „type“ v tabulce users. Toto pole nabývá hodnot „S“ nebo „T“ ve smyslu student, nebo teacher. Pouze uživatelé s příznakem T jsou zobrazeni ve filtru volby učitele. Dále se s tímto příznakem v importu a převodu dat nepracuje.
Definice XML dat:
Soubor users.xml
Soubor obsahuje data s informacemi o uživatelích.
Použité tagy
exportXMLUsers – ohraničuje oblast jednoho uživatele
username – uživatelské jméno
password - uživatelské heslo
firstname – Jméno
lastname – příjmení
email – kontaktní emailová adresa, počítá se i s tím že tato hodnota není zadána. Pozor ale při ověřování přes email.
Příklad dat:
JELINHEL
JELINHEL15.1.2006
Helena
Jelínková
Soubor courses.xml
Obsahuje data o kurzu, zapsaných uživatelích a vyučujících. Dále obsahuje informace o nastavení importu kurzu.
Použité tagy
tblPredmetCourse – ohraničuje oblast jednoho kurzu
predmet – kód předmětu
course – kód kurzu
fullname – dlouhý název kurzu
shortname – krátký název kurzu
deleteusers – určuje zda odstranit z kurzu předchozí zapsané účastníky kurzu. 0 znamená nemazat, 1 nebo -1 znamená mazat.
tblUciPredmet – ohraničuje oblast učitele učícího kurz
predmet – kód předmětu který učitel učí
username – uživatelské jméno učitele v Moodlu
tblZapsanyPredmet – ohraničuje oblast žáka studujícího kurz
predmet – kód předmětu který má student zapsaný
username – uživatelské jméno studenta v Moodlu
Příklad dat:
12ULAT
12ULAT
Úvod do laserové techniky
12ULAT
0
12ULAT
JELINHEL
12ULAT
BOHMPETR
12ULAT
CUDZILEO
Tento nástroj výrazně usnadňuje a zrychluje práci s evidencí studentů a kurzů v systému Moodle pokud je k dispozici nějaký jiný informační systém nebo databáze, ze kterých je možné potřebná data získat.
Převodní můstky KosMood budou k dispozici ke stažení včetně výsledků celé diplomové práce na počátku března 2006. V té době by měli být ke stažení na stránkách www.moodle.cz a na těchto stánkách v sekci Download .
Literatura
[1] Český portál o Moodle, Moodle.cz 2005. URL: http://www.moodle.cz
[2] KOLÁŘ, David. Builder – XML aneb nový formát pro nové tisíciletí., 17.1.2001. URL: http://www.builder.cz/art/html/xml_uvod.html
[3] HALAŠKA, Ivan. KOS, Informační systém, komponenta studium 2006. URL: http://cs.felk.cvut.cz/~halaska/navody/indexkos.htm
Stanislav Duben
Fakulta elektrotechnická
České vysoké učení technické v Praze
e-mail: Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript.