Tartalomjegyzék 1. BEVEZETÉS (1).....................................................................................................2 2. FELADAT DEFINÍCIÓ (2-3) ...............................................................................4 3. ÁTTEKINTÉS (5-6) ...............................................................................................6 3.1 TOPCLASS ...........................................................................................................6 4. TECHNOLÓGIA (8-10) ........................................................................................8 4.1 INTERNET ............................................................................................................8 4.1.1 World Wide Web..........................................................................................8 4.1.2 HTTP .........................................................................................................10 4.1.3 HTML ........................................................................................................11 4.1.4 JavaScript ..................................................................................................11 4.2 FELHASZNÁLT SZOFTVEREK ..............................................................................12 4.2.1 Operációs rendszer....................................................................................12 4.2.2 Adatbázis kezelő ........................................................................................12 4.2.3 PHP ...........................................................................................................14 4.2.4 Webszerver ................................................................................................15 5. SPECIFIKÁCIÓ (1-2)..........................................................................................16 6. TERVEZÉS (SW + DB + BIZT + UI, 12-15) .....................................................19 6.1 SZOFTVER ÉS ADATBÁZIS TERVEZÉS ..................................................................19 6.1.1 Adatfolyam ábrák ......................................................................................21 6.1.2 Logikai adatmodell....................................................................................23 6.1.3 Táblák, adattípusok meghatározása..........................................................24 6.2 BIZTONSÁGI KÉRDÉSEK .....................................................................................29 6.2.1 Hálózati topológia.....................................................................................29 6.2.2 Titkosított kommunikáció ..........................................................................30 6.2.3 Számítógép, operációs rendszer ................................................................32 6.2.4 A rendszer biztonsági kérdései ..................................................................32 6.3 USER INTERFACE ...............................................................................................33 7. IMPLEMENTÁLÁS ÉS TESZTELÉS (6-8) .....................................................33 8. ÉRTÉKELÉS, ÖSSZEGZÉS, LEHETSÉGES TOVÁBBFEJLESZTÉSI LEHETŐSÉGEK (1-2) ............................................................................................40 9. IRODALOMJEGYZÉK, FORRÁSOK (1-2) ....................................................40 10. FÜGGELÉK (KONFIG. ÁLLOMÁNYOK, KÉPERNYŐKÉPEK, SZÓMAGYARÁZAT) .............................................................................................40
1. Bevezetés (1) Az utóbbi időben a fiatalok egyre nagyobb része dönt az érettségi után a továbbtanulás mellett. Ezt a tendenciát támasztják alá a témával foglalkozó statisztikák. Ezen kimutatások szerint, míg az alapfokú oktatásban résztvevők száma közel állandónak mondható, a középiskolákban tanulók száma növekszik, a felsőoktatásban részesülő hallgatók száma még ennél is dinamikusabb növekedést mutat. (1.1 ábra) A felsőfokú oktatásban résztvevő oktatók számának növekedése azonban már közel sem ennyire lendületes, az egy oktatóra jutó hallgatók száma az elmúlt pár évben mind nagyobb és nagyobb. (1.2 ábra)
Beiratkozottak száma, ezer 1990/91 1997/98 1998/99 1999/00 Általános iskola, nappali 1130,7 964,0 964,2 960,6 Szakmunkásképzés 209,4 132,6 119,7 109,5 Középiskola 291,9 368,6 376,6 386,6 Felsőfokú oktatás 102,4 233,8 258,3 279,8 1.1 ábra: beiratkozottak száma [KSH] Felsőfokú oktatás Egy oktatóra jutó hallgató
1990/91 1997/98 1998/99 1999/00 4,4 7,8 7,6 8,1
1.2 ábra: egy oktatóra jutó hallgató a felsőfokú oktatásban [KSH]
A Budapesti Műszaki és Gazdaságtudományi Egyetemen kevés kivétellel szinte az összes karon több száz feletti létszámmal indulnak az elsőéves évfolyamok, de a népszerűbb karokon nem ritkák a 400-500 fős évfolyamok sem. A nagy létszámból adódóan az oktatóknak esetenként igen nagy feladatot jelent a hallgatók félévközi beszámoltatása, vizsgáztatása, holott a legtöbb tárgy esetében a számonkérés bizonyos részei valamilyen szinten automatizálhatóak lehetnének. A zárthelyi dolgozatok és vizsgák nagy része írásbeli, de a feladatsor összeállításán és a vizsga lebonyolításán felül egyes tárgyak esetén jellegüknél fogva akár a dolgozatok kijavítása és értékelése is automatikussá tehető lenne. A vizsgák mellett a laboratóriumi
mérések
lebonyolításánál
2
és
egyéb,
feladatbeadással
járó
laborgyakorlatok, házi feladatok esetén is felmerül az igény mind a hallgatók, mind pedig az oktatók részéről egy egységes mechanizmusra, amely képes lenne átvenni az adminisztrációval járó terheket. A vázolt problémák megoldásához és kívánalmak megvalósításához az infrastruktúra a legtöbb helyen már jó ideje rendelkezésre áll: a hallgatói számítógéplaborok, illetve a számítógép-hálózat, az Internet technológia képes biztosítani egy ilyen információs rendszerhez szükséges hátteret. Az Internet, illetve ezen belül a web technológiának az alkalmazása lehetővé teszi azt is, hogy a rendszer használatához ne legyen szükség a felhasználó által egy speciális szoftver telepítésére, hanem a megszokott böngészővel (pl. Netscape Navigator, Internet Explorer) azt kényelmesen igénybe lehessen venni.
3
2. Feladat definíció (2-3) A feladat egy on-line, interaktív adatbázis elkészítése, amely segíti az oktatókat a hallgatók beszámoltatásában, továbbá egy egységes felületet nyújt a félévközi
feladatok
megoldásainak
a
begyűjtéséhez.
A
feladat
pontos
megismeréséhez meg kell ismerkedni azokkal a problémákkal, fel kell mérni azokat az igényeket és követelményeket, amelyek az oktatók részéről jelentkeznek, természetesen figyelembe véve a hallgatók szempontjait is. A megvalósítást illetően körbe kell tekinteni, milyen módszerek, technológiák léteznek, illetve ezekből konkrétan melyek állnak rendelkezésre, és melyek azok, amelyek használata csak körülményesebbé, nehézkesebbé tenné a születendő rendszer használatát. Végül mindezek ismeretében pontosan fel kell térképezni azokat a területeket, amelyek a megvalósítandó rendszerrel ésszerűen lefedhetőek, megoldhatóak. Az oktatók részéről alapvető elvárás a rendszerrel szemben, hogy az képes legyen tantárgyak szerint csoportosítva eltárolni kérdéseket ezekből egyfajta adatbázist kialakítva, és adjon lehetőséget ezekből tetszőleges feladatsorok összeállítására. Az ily módon létrehozott feladatsorokból válogatva legyen mód vizsgák, zárthelyi dolgozatok, egyéb írásbeli számonkérések definiálására pontos hely és idő meghatározásával, és ezek után természetesen adja meg a lehetőséget, hogy az oktató által megszabott koordináták szigorú ellenőrzése mellett a hallgatók megoldhassák a feladatsort, és rendszer gyűjtse is be a válaszokat. További igényként felmerül, hogy a hallgató által megoldott feladatsorokat, ahol a rendszert erre alkalmassá lehet tenni, értékelje ki, de legalábbis segítse az oktatót a dolgozatok kijavításában, és ebből közvetlenül adódik, hogy a rendszer legyen képes az oktató által bevitt kérdésekhez a helyes válasz eltárolására is. A válasz beviteléhez szükség van a válasz típusának a meghatározásához. Ez típus lehet szöveges, teszt és file típusú is, ez utóbbi pl. házi feladatok beadásakor lehet hasznos. A típusoknál azonban nem szabad kizárni a későbbiekben más, az eddigiektől eltérő típusú feladatok bekerülését a rendszerbe. A feladat megvalósításánál az egyik leglényegesebb szempont, hogy a már meglévő technikai hátteret lenne kívánatos igénybe venni. Ezt a hátteret a hallgatói
4
számítógéplaborok, az itt található hálózatba kötött számítógépek jelentik, illetve az ezekre a gépekre telepített weblapok letöltésére és megjelenítésére használt ún. böngésző program vagy angol nevén browser. Végül, a rendszer lehetőleg ne tartalmazzon kereskedelmi szoftvert, amelyek használatáért fizetni kell.
5
3. Áttekintés (5-6) A
piacon
számos
web
alapú
oktatást
segítő
szoftver
létezik.
A legfőbb eltérés e szoftverek és a fentiekben említett rendszer között, hogy ezek a programok sokkal nagyobb hangsúlyt fektetnek magára az oktatásra, kurzusok összeállítására, a diplomamunka keretein belül megvalósuló rendszer azonban inkább csak a tananyag számonkérésére összpontosít. További különbség, hogy a programok többsége nagy szabadságot biztosít az oktató számára az anyag bevitelében, képi megjelenítésében, ehhez segítségképpen egyes szoftverek saját HTML szerkesztővel is rendelkeznek. Ez a saját rendszerről nem mondható el; az oktatók a kérdések és feladatsorok összeállításakor csak előre definiált formátumok közül választhatnak, speciális HTML elemeket nem alkalmazhatnak. Ez azonban nem jelent olyan nagy mértékű megkötést, mint gondolhatnánk, hiszen itt kizárólag a kérdésekről beszélünk, nem pedig magáról a tananyagról, továbbá saját fejlesztésű, szabad forráskódú szoftverről lévén szó, a későbbi igényeknek megfelelően bármikor módosítható, bővíthető a rendszer. Nem elhanyagolható szempont, hogy míg ezek a szoftverek többsége kereskedelmi termék, használatukért fizetni kell, a diplomamunka részeként megvalósuló rendszernél egyik fő szempont, hogy kizárólag szabadon hozzáférhető modulokból építkezzen. Mindezek mellett szem előtt kell tartani azt is, hogy már létező távoktató szoftverek használatához elengedhetetlen a nyelvismeret, míg a saját fejlesztésű rendszer magyar nyelvű lesz. Az
alábbiakban
bemutatjuk
az
elterjedtebb
távoktató
programokat,
a függelékben pedig egy teljes listát is megtalálunk ezekről a szoftverekről.
3.1 TopClass A szoftver a WBT Systems terméke. Szerverként működő, multimédia alapú oktatóprogram, melynek segítségével web alapú intranet vagy internet oktatóanyagot
6
lehet létrehozni, és magát az oktatást, vagyis a szemináriumot is lebonyolítani. A TopClass rendszer háromféle felhasználót különböztet meg: (1) a virtuális szemináriumon résztvevő diákot, (2) a diák munkáját segítő-irányító tanárt és (3) a rendszer-adminisztrátort, aki a TopClass rendszer egészének működéséért felelős. A web-böngészőn keresztül elérhető rendszerbe való belépés jelszóhoz kötött. A diák hozzáférési joga a legszűkebb körű, nincs lehetősége újabb kurzus létrehozására, a jelenlegi megváltoztatására.
7
4. Technológia (8-10) 4.1 Internet 4.1.1 World Wide Web Az utóbbi években a számítógépes hálózatok leggyorsabban terjedő és fejlődő szolgáltatása a World Wide Web (röviden WWW vagy web), 1990-es megszületése óta hatalmas sikert mondhat magáénak. A történet egy évvel korábbra nyúlik vissza, amikor Tim Berners-Lee és Robert Cailliau, a genfi CERN (European Organization for Nuclear Research) kutatói 1989-ben egy hypertext alapú rendszer létrehozását indítványozták, amely az elképzelések szerint a különböző, esetenként egymástól nagy távolságra lévő szervereken fellelhető információkat egy egységes felületen lenne képes elérhetővé tenni. A rendszer eredeti célja az volt, hogy használatával több adatbázisban szétszórtan található szakmai információkat egyszerűen tehessék elérhetővé a CERN részecskefizikusai számára. Egyéves munka után üzembe állították az első szervert és elkészítették az első kliens programokat.
4.1 ábra: a WWW elterjedésének megindulása [NSFNET]
8
Az áttörés ugyan néhány évet váratott magára, de ekkor a fejlődés robbanásszerűen megindult, az Interneten gombamód kezdtek szaporodni a WWW szerverek, és számos kliens program is napvilágot látott, ezek közül a legjelentősebb az NCSA Mosaic volt. A fejlődés lendületét mutatja, hogy rövid időn belül a hálózati forgalom túlnyomó részét a web forgalom tette ki, túlszárnyalva a WWW elődjének számító gopher-t is (4.1 ábra). A haladás a kezdeti lelkesedés után sem csökkent, és a mai napig gőzerővel tart. Mára már számos webszerver változat napvilágot látott a legkülönbözőbb
számítógéptípusokra,
kereskedelmi
és
szabadon
letölthető
verzióban, a hálózaton pedig egyre-másra jelennek az újabbnál újabb szerverek, a webes tartalmat szolgáltató szerverek száma exponenciális növekedést mutat (4.2 ábra). A WWW roppant elterjedését az is tanúsítja, hogy a ma Internetezők többsége számára a világméretű hálózat tulajdonképpen nem is jelent mást, mint magát a WWW-t.
4.2 ábra: webszerverek száma az Interneten [Netcraft] A web technológia hatalmas sikerét annak köszönheti, hogy integrálni képes az eddigi információs rendszereket. A rendszer platformfüggetlen, és egyszerű, egységes grafikus felhasználói felülettel rendelkezik, amelynek használatához számítógépes tudás sem szükséges, továbbá teljes mértékben támogatja az interaktivitást. Mindezek az ismérvek lehetőséget teremtettek arra, hogy az Internet ne csupán a számítástechnikusok birodalma legyen, hanem egy sokkal tágasabb kör számára vonzó médiummá váljon. Mára már sok minden részben vagy teljes egészében a „valós világból” az Internetre költözött, a világméretű hálózaton ma már számtalan alkalmazást láthatunk az elektronikus kereskedelemtől kezdve a virtuális egyetemeken keresztül a reklámszakmáig, rendelhetünk mozijegyet, beszélgethetünk tőlünk több ezer km-re lévő ismerősünkkel, megnézhetjük a várható időjárást, 9
nyomon követhetjük a tőzsdei árfolyamokat, vásárolhatunk autót, a lehetőségek száma határtalan. A
WWW
rohamos
elterjedése a számítógépes
hálózat
ugrásszerű
igénybevételét eredményezi, és ezt a megnövekedett terhelést nem csupán a felhasználói tábor gyarapodása okozza, hanem maga a WWW jellege is: az eddigi, többnyire szöveges információk helyét egyre inkább grafikus állományok veszik át, esetenként egyéb multimédiás anyagokkal kiegészülve. A felhasználó így egyetlen kis kattintással akár több nagyságrenddel nagyobb forgalmat generálhat, mint azelőtt, márpedig a webet használók többsége előbb kattint, aztán gondolkozik!
4.1.2 HTTP A fentebb leírtakból kitűnik, hogy a WWW egy kliens-szerver architektúra, a szerver, amely az információt szolgáltatja, a kliens, azaz a böngésző vagy angol nevén browser, pedig a felhasználó számítógépén futtatott alkalmazás. A kliens és a szerver közötti kommunikációra egy egységes nyelvet dolgoztak ki, és ennek a HTTP (HyperText Transfer Protocol) nevet adták. A protokoll egyidős a WWW-vel, és megjelenése óta a WWW-vel együtt ez is jelentős változásokon ment keresztül. A HTTP protokollnak jelenleg az 1.0-ás és 1.1-es verziója használatos. Az eredeti HTTP rendkívül egyszerű volt, fő feladata egyszerű ASCII adatok továbbítása a kliens és a szerver között, ez volt a HTTP/0.9. Ezt váltotta fel a HTTP/1.0. A protokollt kibővítették: az üzeneteket MIME-típusú fejlécekkel látták el, amelyek a továbbított állományokról hordoznak plusz információkat, pl. a továbbított állomány típusát. A protokollt továbbfejlesztve a HTTP/1.1 már támogatást nyújt hierarchikus proxy szerverekhez, cache szoftverekhez, továbbá képes perzisztens kapcsolatra (persistent connection: egyetlen kapcsolaton több kérés kiszolgálása), ill. támogatja az ún. virtuális hosztolást (virtual hosting: egyetlen webszerveren több website kiszolgálása).
10
4.1.3 HTML A HTTP-t, mint nevéből is látszik, elsősorban hypertext típusú szöveges állományok átvitelére tervezték és hozták létre. Ez a típus a HTML (HyperText Markup Language), amely tulajdonképpen nem más, mint a World Wide Web dokumentumok szerkesztésekor használt stíluselemek gyűjteménye, illetve az ezeket a stíluselemeket felhasználva készített dokumentum. A HTML nyelvet 1990-ben Tim Berners-Lee, a WWW egyik kezdeményezője és Daniel W. Connolly alkották meg. Az SGML sablonjára építve Berners-Lee megtervezte a HTML-t, míg Connolly megírta a HTML DTD-t (Document Type Definition), amely a HTML szintaxis formális definiálása az SGML alapján. Az SGML (Standard Generalized Markup Language, ISO 8879) [x] egy olyan rendszer, amelynek segítségével ún. jelölőnyelveket lehet definiálni. A dokumentumok szerzői itt különböző jelölésekkel adják meg a szerkezeti, prezentációs és szemantikai információkat. A HTML az SGML ilyen tipikus alkalmazása.
4.1.4 JavaScript A JavaScript, mint a neve is mutatja, egy script nyelv. A JavaScript kódot HTML lapokba lehet beágyazni, a kód a lappal együtt töltődik le a szerverről, majd a böngésző értelmezi és futtatja azt. A JavaScript tehát integráns része a HTML lapnak, nem csak, hogy a teljes program forrása a lapon található, de a dokumentum többi részével is közeli kapcsolatban áll: közvetlenül hivatkozhat a lapon lévő elemekre (pl. az űrlapok egyes összetevőire), de még a böngésző megjelenését, viselkedését is befolyásolhatja. Szintaxisa a C nyelvre hasonlít, és bizonyos mértékig objektumorientáltnak minősíthető. Nem kínál ugyan teljes objektumorientált eszközrendszert, mint pl. a C++, a JavaScript inkább csak objektum-alapú (object based) nyelvnek nevezhető: lehetőségünk van objektumok létrehozására, de osztályokat (típusokat) nem definiálhatunk, így természetesen sem öröklődésről, sem polimorfizmusról nem beszélhetünk. A JavaScript nyelvet először a Netscape Navigator 2.0-ás verziója támogatta, de manapság már a legtöbb grafikus böngésző képes JavaScript kódot futtatni, bár esetenként az egyes implementációkban komoly eltérések figyelhetők meg. 11
4.2 Felhasznált szoftverek A rendszer és szorosabb környezete négy alapvető szoftverből tevődik össze, illetve ezekből építkezik: az operációs rendszer, a webszerver, az adatbázis szerver és a PHP. Ezek kapcsolatát mutatja a 4.3-as ábra:
webszerver
kliens
P H P
SQL
DB
4.3 ábra: a rendszer sematikus felépítése
4.2.1 Operációs rendszer Az operációs rendszerrel szemben elvárás a rá telepített szoftverek (webszerver és adatbázis-kezelő) megbízható futtatása, a TCP/IP hálózat kezelése, a biztonságosság. A számos alternatíva közül a FreeBSD-re esett a választás, de a fenti rendszer minden különösebb változtatás nélkül a legtöbb Unix típusú operációs rendszeren működik, ha az említett feltételeknek eleget tesz.
4.2.2 Adatbázis kezelő A rendszernek nagy mennyiségű információ eltárolására kell alkalmasnak lennie, továbbá ezeknek az információknak pillanatok alatt rendelkezésre is kell tudni állniuk bizonyos szempontok szerint kiválogatva, rendszerezve, sorrendezve. E funkció legegyszerűbben egy SQL alapú relációs adatbázis-kezelő szoftverrel oldható meg. Felmerült lehetőségként az LDAP (Lightweight Directory Access Protocol) rendszer használata, azonban rövid vizsgálódást követően ezt az ötletet el kellett vetni. Az LDAP kiválóan megfelel olyan alkalmazásokhoz, ahol az adatbázisból való lekérdezések száma jóval meghaladja az adatbázisba való írások számát, ez azonban a megvalósítandó rendszer esetén közel sincs így, ezen felül a
12
rendszerben eltárolni szándékozott adatok típusa, hierarchiája is kézenfekvőbben írható le és tervezhető egy SQL alapú adatbázisban, mint az LDAP fastruktúrájában. Az adatbázis-kezelő kiválasztásakor számos alternatíva jön számításba aktív fejlesztői hátterük és széles körben való elterjedtségük miatt. Ezekből emeli ki és foglalja össze az ismertebbeket a következő táblázat: FreeBSD támogatás X linux X linux linux linux X X linux X X X
Adabas D 10.01.00 EMPRESS 6.1 FrontBase 2.1 Informix 7.30C1 Interbase 6.0Beta Mimer SQL 8.2.0C mSQL 2.0.10 MySQL 3.23.25 Oracle 8.1.6.0.0 PostgreSQL 7.0 SOLID Server 2.3.26 Sybase enterpr. 11.x
ingyenes
PHP X X X X
X X X
X X X X X X
X X
tranzakciókezelés X X nem szabv. nem szabv. nem szabv. X X X X X nem szabv.
külső kulcsok X
X
subquery X X X X X X
X X X X
X X X X
X X
view X X X X X X X X X
4.4 ábra: adatbázis-kezelők összehasonlító táblázata A táblázatban csak azok az adatbázis szerverek szerepelnek, amelyek rendelkeznek SQL lekérdező nyelvvel és létezik FreeBSD alatti verziója, de ezen felül a táblázatban helyet kaptak azok a szoftverek is, amelyekből ugyan nem létezik natív FreeBSD-s bináris, azonban a FreeBSD által nyújtott Linux emulációval mégis futtathatók ezek a programok. (FreeBSD-vel kapcsolatban lásd még a 4.5-ös fejezetet). A táblázat a platform mellett az adatbázis-kezelővel szemben támasztott legfontosabb követelményeket tartalmazza, és ezek szerint jellemzi azokat: •
Ingyenes:
az
adott
szoftver
szabadon
hozzáférhető-e
és
felhasználható-e oktatási célokra •
PHP: az adatbázis kezelőt támogatja-e a PHP (lásd a következő fejezetet)
•
Tranzakciókezelés: van-e beépített tranzakciókezelés az SQL szerverben
•
Subquery: támogatja-e a beágyazott lekérdezéseket
•
View: lehet-e ún. view-kat létrehozni
13
Az itt említett követelmények közül nem mind elengedhetetlen, azonban e rendszer implementálásakor nagy könnyebbséget jelentenek. Webes alkalmazások készítéséhez a gyakorlatban túlnyomórészt két adatbázis-kezelőt használnak: a MySQL-t és a PostgreSQL-t. A MySQL előnye a gyorsaság, azonban pillanatnyilag a fent említett elemek hiányoznak belőle. Ezek a hiányzó tulajdonságok az egyes tesztek szerint lassabban teljesítő PostgreSQL-ben viszont mind megvannak, így a választás végül erre az adatbázis-kezelőre esett. Megjegyzésképpen mindehhez még annyit hozzá kell tenni, hogy a rendszer alapjában véve nem függ attól, milyen adatbázis-kezelővel dolgozik. Az SQL alapú adatbázis-kezelők egy többé-kevésbé egységes felületen keresztül érhetők el, ezt a felületet pedig az ún. lekérdező nyelv, az SQL (Simple Query Language) biztosítja, ami azt jelenti, hogy a későbbiekben elvben elképzelhető az SQL szerver teljes cseréje.
4.2.3 PHP A PHP (hivatalosan „PHP: Hypertext Preprocessor”) egy szerver oldali HTML-be ágyazott programnyelv. A PHP használatával mindazt el lehet érni, amit 700000
600000
400000
300000
200000
100000
0 Ju n98 Au g98 O ct -9 8 D ec -9 8 Fe b99 Ap r-9 9 Ju n99 Au g99 O ct -9 9 D ec -9 9 Fe b00 Ap r-0 0 Ju n00 Au g00 O ct -0 0 D ec -0 0 Fe b01 Ap r-0 1
darabszám
500000
4.5-ös ábra: a PHP használata Apache modulként [Netcraft]
14
egy CGI programmal: formok lekezelése, dinamikus tartalomelőállítás vagy cookiekezelés. A PHP számos beépített funkcióval segíti a webes programozást, az egyik leghasznosabb tulajdonsága az adatbázisok széles körű támogatása. A PHP nyílt forráskódú program, szabadon letölthető, felhasználható bármilyen célra.
4.2.4 Webszerver A webszerver esetén ugyanúgy, mint a rendszer többi összetevőjénél, elsődleges szempont az ingyenesség, az aktív fejlesztés, az operációs rendszer által való támogatottság, továbbá a PHP-val való együttműködés. Mindezen feltételeknek a sokak által használt Apache HTTP Server felel meg leginkább. A 4.6-os ábra az Apache
sikerességét
mutatja,
a
legelterjedtebb
kereskedelmi
szoftverekkel
(Microsoft IIS, iPlanet Web Server) is felveszi a versenyt.
4.6-os ábra: webszerverek használatának százalékos összehasonlítása
15
5. Specifikáció (1-2) A feladat egy web alapú kliens-szerver architektúrájú rendszer létrehozása, pontosabban egy weben keresztül elérhető on-line adatbázis. A kliens szoftver elkészítése nem része a feladatnak, hiszen a webes interfész miatt ez már adott: a rendszer eléréséhez a felhasználó oldalán a hálózati csatlakozáson túl csupán egy egyszerű web böngészőprogram szükséges. A böngészőnek ismernie kell a HTML3at és támogatnia a JavaScript futtatását, ezek a rendszer használatához elengedhetetlenek. A rendszer felhasználói az oktatói gárda és a hallgatóság. A rendszer az oktatók által tanított tárgyakkal kapcsolatos mindennemű számonkérést hivatott támogatni. A rendszer használatával az oktató saját tantárgyaihoz tárgyanként csoportosítva tetszőleges számú ellenőrző kérdést tölthet fel, amelyekhez opcionálisan a helyes válaszok is megadhatóak. A bevitt kérdésekből feladatsorok állíthatók össze, és a feladatsorok vizsgákhoz rendelhetők hozzá. A kérdések a válasz típusát tekintve többfélék lehetnek:
•
szöveges: a kérdésre esszé jellegű válasz adható, a válasz formátumára ezen kívül semmilyen formai vagy méretbeli megkötés nincs;
•
teszt: ez esetben a lehetséges válaszokat is meg kell adni a kérdés mellé, a feladat megoldása során ezek közül választja ki a hallgató az általa helyesnek gondoltakat. A lehetséges válaszok száma tetszőleges, a kérdés bevitele során ezt is meg kell adni;
•
file: megoldásként egy file-t kell feltöltenie a hallgatónak. Ez a típusú kérdés nagy házi feladatok leadásánál vagy mérési gyakorlatok alkalmával lehet hasznos.
Ezek az általános jellegű típusok igény szerint a későbbiekben tetszőleges újakkal egészíthetők ki.
16
A rendszer rendelkezik a tantermek egyszerűsített alaprajzával, hol milyen számítógépek találhatóak. A vizsga kiírásánál az oktató megadhatja, mely teremben mettől meddig tart vizsga, és a teremben lévő munkaállomásokat a vizsgára jelentkezett hallgatókkal összerendelheti. A vizsgára jelentkezettek névsora áttölthető az egyetemen használt Neptun rendszerből. A vizsgáknál megadható a kezdés és a befejezés időpontja is, továbbá opcionálisan a vizsga időtartama, amely megoldást ad arra, hogy minden hallgató pontosan egyforma időt kapjon a feladatsor megoldására még akkor is, ha egyszerre több teremben folyik a vizsga. A termek adatbázisát a rendszer-adminisztrátor módosíthatja. A hallgató a vizsgán bejelentkezik a számítógéppel a rendszerbe, kiválasztja a megoldandó feladatsort, választ ad a kérdésekre, majd „beadja” a megoldott feladatsort. A vizsga során a felügyelő tanár a saját terminálján nyomon tudja követni, melyik gépen ki jelentkezett be, ki hogyan áll a feladat megoldásával, illetve ki az, aki meg sem jelent a vizsgán. A hallgatók azonban nem csak a vizsga vagy a feladat beadás alkalmával találkoznak a rendszerrel, az oktatók lehetőségük van gyakorló feladatok kiadására is, amelyen a hallgatók lemérhetik tudásokat. A vizsgák összeállításán és megíratásán túl a rendszer támogatást nyújt az oktatónak a hallgatók által beadott feladatsorok feldolgozásában. Amennyiben a feladatlap kizárólag teszt típusú kérdéseket tartalmaz, úgy automatizáltan képes azokat kijavítani, osztályozni, de egyéb esetekben is segíti az oktatót a munkában a helyes és a hallgató által beadott válaszok összehasonlításával, a bevitt pontszámok alapján az osztályzásban. A rendszer nem csupán vizsgák, zárthelyi dolgozatok és egyéb, konkrét időhöz és esetlegesen adott számítógéphez kötött számonkérés lebonyolítására alkalmas. Az oktatónak lehetősége van feladatkiadásra és a megoldások begyűjtésére is igénybe venni a rendszert, a hallgató pedig megtekinteni az egyes tárgyakból kiírt vizsgaidőpontokat és feladatbeadási határidőket, és megoldhatja az oktató által bevitt gyakorló-feladatsorokat.
17
A rendszer minden eseményt naplóz. A naplóhoz a rendszer-adminisztrátor fér hozzá, aki az esemény-típust és/vagy az esemény fontossági szintjét megadva kérheti le a bejegyzéseket.
18
6. Tervezés (sw + DB + bizt + UI, 12-15) 6.1 Szoftver és adatbázis tervezés A szoftver tervezése több lépcsőben történik. Elsőként a rendszer adatfolyam ábráinak meghatározására kerül sor. Az adatfolyam modellezés célja, hogy: •
ábrázolja a rendszert és annak környezetét, kijelöli a projekt határát,
•
meghatározza azokat a rendszeren kívüli elemeket, amelyektől a rendszer adatot fogad, illetve amelyeknek adatot szolgáltat,
•
leírja a rendszeren belüli adatfolyamok áramlását,
•
kijelöli az adattárakat, továbbá
•
meghatározza azokat az eljárásokat, amelyek feldolgozzák az adatokat, kiváltják az adatfolyamokat és az adatok tárolását.
Felvázoljuk a rendszer kontextus és 0. szintű diagramját, illetve összetettebb modulok esetén az 1. szintű adatfolyam ábrájának meghatározására is sor kerül. A tervezés második lépésében a rendszer logikai adatmodelljének definiálása történik meg. Ennek feladata a logikailag összetartozó elemi adatok alapján csoportok definiálása és a csoportok közötti összefüggések meghatározásával egy olyan általános leírás megadása, amely: •
egyértelművé teszi a szoftver alkalmazási területét,
•
diagramjai révén pontosan leírja a kommunikációs rendszert,
•
az adatbázis tervezésének alapjául szolgál. A logikai adatmodell meghatározása után sor kerül az adatbázis tábláinak
definiálására, az adattípusok meghatározására és az egyes táblamezők szerepének magyarázatára. Az adattípusok meghatározásakor kihasználtuk a PostgreSQL adatbázis-kezelő által nyújtott előnyöket:
19
•
Szöveges jellegű adatoknál nem szükséges az SQL92 kompatibilis char, ill. varchar típusokat használnunk, hanem megadhatjuk a PostgreSQL-re jellemző text típust, amelynek előnye, hogy nem szükséges a mezőben tárolt szöveg hosszára felső korlátot megadni.
•
PostgreSQL-nél a file típusú kérdések esetén a file-ok eltárolására kétféle lehetőség is adódik. Az egyik, hogy a file-okat a UNIX filerendszer részeként kezeljük, az adatbázisban pedig csak a file nevét tároljuk el, a másik alternatíva pedig, hogy kihasználjuk, hogy a PostgreSQL alkalmas nagyméretű bináris objektumok közvetlenül az adatbázisban történő eltárolására. A tervezés során a második variációra esett a választás, mert ugyan az első eset megvalósítása egyszerűbb és a file-ok elérése is gyorsabb, addig a második változat szigorúbb adatintegritást és nagyobb biztonságot tesz lehetővé.
•
Az adatbázisban a kapcsolótábláktól eltekintve minden tábla, pontosabban a táblákban minden rekord saját azonosítóval rendelkezik. Az ilyen jellegű mezőknél a típus megjelölése serial, ami azt jelenti, hogy az adatbázis-kezelő a tábla létrehozásakor megalkot a serial típusú mezőhöz egy ún. szekvenciát azzal a céllal, hogy ennek a mezőnek alapértelmezett értéke mindig az automatikusan növekvő szekvencia következő értéke legyen. A serial típus tehát valójában egy integer-t jelöl, amely alapértelmezett értékkel is rendelkezik: integer default nextval('szekvencia_név'::text) A szekvencia neve a tábla és a mező nevéből áll össze a következőképpen:
_<mezőnév>_seq, pl. subject_sid_seq.
20
6.1.1 Adatfolyam ábrák Kontextus diagram
kérdések, feladatsorok, pontszámok, vizsgák
hallgató időpontok, határidők vizsgasor, feladatkiírás
oktató
hallgatók megoldásai, beadott feladatok
eredmények
feladatbeadás
hálózati információs rendszer
kijavított feladatok, pontszámok
felhasználói nyilvántartás napló szgép- és teremnyilvántartás tantárgyak listája
adminisztrátor
6.1-es ábra: kontextus diagram
21
értékelés, osztályzás
0. szintű diagram
hallgató
oktató
kérdések, feladatsorok, vizsgák, pontszámok
hallgatók megoldásai, eredmények
vizsgáztató, feladatbeszedő eredményjelző modul
rendszernapló
kérdés, feladatsor és vizsga admin modul
óra session dolgozatjavító modul
szgép- és teremnyilvántartás
felhasználók
hozzáférésellenőrző modul
tantárgyak
naplókészítő modul
felhasználó, szgép, terem és tantárgy admin. modul
adminisztrátor
6.2-es ábra: a rendszer 0. szintű adatfolyam diagramja 22
6.1.2 Logikai adatmodell A rendszer adatbázisának entitás-relációs diagramját mutatja be a 6.3-as ábra:
users 1 n ref_su n 1 subject 1
n
1
1
n
n examination
1
n
1
n
1
worksheet 1
ref_ew
n 1
n
n ref_wq
1
question 1 n checkbox
1
n
location 1
examinee n
n
1
n
1
1
n
machine
answer
session
log
6.3-as ábra: ER diagram
23
6.1.3 Táblák, adattípusok meghatározása
•
A USERS tábla tartalmazza az oktatók és a rendszer-adminisztrátorok adatait. Ezek az adatok: a belépési név (login), az ehhez tartozó jelszó (passwd), a felhasználó teljes neve (fname), e-mail címe (email), illetve annak jelzése, hogy az adott felhasználó oktatói vagy rendszer-adminisztrátori státusszal
rendelkezik
(professor,
admin).
Megadható
továbbá
egy
megjegyzés (note). (Megjegyzés: a hallgatók nincsenek nyilvántartva a rendszerben.) USERS uid login passwd professor admin fname email note
•
serial NOT NULL text NOT NULL text NOT NULL boolean NOT NULL default 'n' boolean NOT NULL default 'n' text NULL text NULL text NULL
A rendszer által felölelt tantárgyak listája a SUBJECT táblában található. Az egyes bejegyzésekhez a tantárgy neve (name) és a Neptun kódja (code) tartozik. SUBJECT sid serial NOT NULL name text NOT NULL code text NOT NULL
•
Az egyes oktatókhoz tartozó tantárgyakat a REF_SU tábla tartalmazza. Egy tárgy természetesen több oktatóhoz is tartozhat. REF_SU sid integer NOT NULL uid integer NOT NULL
24
•
A WORKSHEET tábla tartalmazza az oktatók által az egyes tantárgyakhoz készített feladatsorokat. A tábla egy megjegyzés mezőt is tartalmaz (note), amely az
oktatóknak
nyújt
segítséget
a
már
elkészült
feladatsor
használatában: itt adhatják meg pl., hogy a feladatsor az adott tárgynak mely témakörét öleli fel, de a megadott szöveg tetszőleges, a lényege annyi, hogy az oktató könnyen beazonosíthassa a feladatsort. Ugyanebben a táblában lehet meghatározni a feladatsorhoz tartozó ponthatárokat (five, four, three, two), amely a későbbiekben a feladatsor javításakor az automatikus osztályzást teszi lehetővé. WORKSHEET wid serial NOT NULL note text NOT NULL sid integer NOT NULL
•
Az egyes tárgyakhoz betáplált kérdések a QUESTION táblában sorakoznak. A tábla mezői megadják a kérdés típusát (type), a kérdés szövegét (text), illetve szöveges és file típus esetén opcionálisan tartalmazza magát a választ is (tans, file, filename, filetype). QUESTION qid serial NOT NULL sid integer NOT NULL type smallint NOT NULL text text NULL tans text NULL file oid NULL filename text NULL filetype text NULL
•
Teszt típusú kérdés esetén a lehetséges válaszok szövegei a CHECKBOX táblában találhatók (text), illetve opcionálisan megadható ugyanitt, hogy az adott kérdéshez tartozó válasz helyes-e vagy helytelen (checked). CHECKBOX cid integer NOT NULL serial qid integer NOT NULL text text NOT NULL checked boolean NULL
25
•
A feladatsorok és a kérdések összerendelését a REF_WQ tábla tartalmazza, és egyben meghatározza az adott kérdés feladatsorbeli sorszámát (seq) és opcionálisan a pontértékét (score). REF_WQ wid integer NOT NULL qid integer NOT NULL seq integer NOT NULL score integer NULL
•
A hallgatók számára adott tantárgyból kiírt vizsgák, ZH-k, illetőleg bármilyen feladatbeadással járó események az EXAMINATION táblában kaptak helyet. Megadható az esemény kezdési és befejezési időpontja (start, finish), továbbá egy időintervallum (duration). Ennek az időintervallumnak a lényege, hogy az oktató tágabb határok között adhassa meg a vizsga időpontját, de ennek ellenére a hallgatóknak csak az időintervallumban meghatározott idő álljon rendelkezésre a feladatsor megoldásához. Értelemszerűen az itt megadott intervallumnak kisebbnek kell lennie, mint a kezdéstől a befejezésig eltelt időnek. Mindezek mellett a táblában megadható a vizsga helyszíne is (lid). EXAMINATION eid serial NOT NULL sid integer NOT NULL start integer NULL finish integer NULL duration integer NULL lid integer NULL
•
A vizsgák lehetséges helyszínei a LOCATION táblában vannak definiálva. A tábla meghatározza az egyes termek neveit (descr). LOCATION lid integer NOT NULL serial descr text NOT NULL
26
•
Az egyes termekben található munkaállomások listáját a MACHINE tábla tartalmazza. Megadja az egyes munkaállomások termen belüli sorszámát (ordnum), x,y pozícióját (x, y) és IP címét (ip). MACHINE mid serial NOT NULL lid integer NOT NULL ordnum integer NOT NULL x smallint NOT NULL y smallint NOT NULL ip host NOT NULL
•
A vizsgák és a feladatsorok összerendelését a REF_EW tábla tartalmazza. Természetesen egy vizsgára több feladatsort is ki lehet adni (A, B, C csoport), de egy feladatsor több vizsgához is hozzárendelhető (lusta tanár esete). REF_EW eid integer NOT NULL wid integer NOT NULL
•
Az EXAMINEE is részben referencia jellegű tábla. Ebben vannak nyilvántartva a vizsgákra jelentkezett hallgatók, és az is, hogy ki melyik feladatsort kapja a vizsgán. Ez utóbbi megadása nem kötelező, az oktatón múlik, meg akarja-e ezt előre határozni, de a vizsga megkezdésekor mindenképp kitöltésre kerül ez a mező. Ezeken kívül tartalmazza a vizsgázó nevét (fname), Neptun kódját (neptun) és opcionálisan az e-mail címét (email), továbbá azt is, hogy a vizsgán mely számítógépnél ül a hallgató (mid). Ez a mező a feladatsorhoz hasonlóan kap értéket: előre is meghatározható az oktató által, de amennyiben nincs megadva, akkor a vizsga megkezdésekor töltődik fel értékkel. EXAMINEE nid serial NOT NULL eid integer NOT NULL wid integer NULL neptun text NOT NULL fname text NOT NULL email text NULL mid integer NULL
27
•
A hallgatók által beadott feladatsorok, illetve az elkészített nagyházi feladatok megoldásai az ANSWER táblában kerülnek eltárolásra. Az adott kérdés típusától függően kerülnek kitöltésre vagy maradnak üresen az egyes mezők. Az egyes mezők jelentése hasonló a QUESTION és a CHECKBOX táblák hasonló nevű mezőivel. ANSWER aid qid tans checked file filename filetype
•
serial NOT NULL integer NOT NULL text NULL boolean NULL text NULL text NULL text NULL
A rendszer két további, a többitől független táblával rendelkezik. Az egyik a LOG, amely a rendszernaplót tartalmazza. Egy bejegyzés megadja az adott esemény időpontját (time); azt, hogy melyik felhasználóhoz kötődik, illetve mi az objektum azonosítója, amelyet érint az esemény (id); a kliens IP címét (ip); az esemény típusát, azaz milyen típusú objektumot érint az esemény (fac); az esemény fontosságát (pri); s végül tartalmaz egy rövid szöveges leírást az eseményről. LOG lid time uid id ip fac pri descr
•
serial NOT NULL integer NOT NULL integer NULL integer NULL inet NULL smallint NOT NULL smallint NOT NULL text NOT NULL
A másik független tábla a SESSION, amely a bejelentkezett felhasználókról tartalmaz információkat. Egy session-bejegyzés információt hordoz a felhasználó pontos belépési időpontjáról (date), továbbá a session-höz hozzárendelt változókról (vars). SESSION sid text NOT NULL date integer NOT NULL vars text NULL
28
6.2 Biztonsági kérdések A
rendszer
elsődleges
célja
a
hallgatók
vizsgáztatása
és
egyéb
számonkéretése, beszámoltatása, így nagy hangsúlyt kell fektetni a rendszert érintő biztonsági kérdésekre. Semmiképpen sem szabad arra számítani, hogy a működő rendszert nem akarják majd feltörni, különösen a BME Villamosmérnöki és Informatikai Karán, ahol a hallgatók már az előadásokon megkapják az ehhez szükséges ismereteket. Számos eset bizonyítja, hogy a hallgatók nagy része gyakran hajlamos a könnyebb utat választani a sikeres vizsga érdekében, és a tananyag elsajátítása helyett más módszereket választ, ha erre adott a lehetősége. Természetesen 100%-os biztonság nem létezik (mint ahogyan valaki egy hálózati biztonsággal foglalkozó fórumon megjegyezte: „még a kikapcsolt gép sem biztonságos, mert azt még el lehet lopni”), de mindent meg kell tenni a teljes körű, kockázattal arányos és folyamatos védelem elérése érdekében. A biztonság kialakításánál a szem előtt tartandó rendszerelemek a környezet, a hardver infrastruktúra és a szoftver elemek. A szoftver további összetevőkre bontható, ezek az operációs rendszer, a webszerver, az adatbázis-kezelő, illetve maga a saját fejlesztésű programkód. A rendszer alapfenyegetettségei a bizalmasság, a hitelesség, a sértetlenség, a rendelkezésre állás és a funkcionalitás. A feladat tehát többrétű: a webes felületnek biztosítania kell, hogy a benne tárolt adatokhoz csak az arra jogosult férjen hozzá, esetenként csak adott helyhez és időhöz kötve, azonban korántsem elegendő a problémának csak a rendszert közvetlenül érintő részével foglalkozni, ugyanekkora figyelmet kell szentelni annak a környezetnek, amelyben majd a rendszer helyet foglal, először ezeket vesszük sorra.
6.2.1 Hálózati topológia A rendszer egyszerűen fogalmazva egy hálózatba kötött számítógépen futó alkalmazás, amellyel a felhasználók a hálózaton keresztül tartják a kapcsolatot. A használt hálózati protokoll a TCP/IP, amely a biztonságot tekintve igen gyenge láncszem. A gondot az jelenti, hogy kellő körültekintés nélkül kezelve a problémát a TCP/IP hálózaton történő forgalom lehallgatható, sőt, hamisítható, miközben a
29
rendszer használata közben adminisztrátori hozzáférést biztosító jelszavak, vizsgakérdések és hasonló, nem publikus adatok is folyhatnak át a hálózaton. A probléma kezelésére több lehetőség is van, ezek együttes alkalmazása hozhat megnyugtató eredményt. Mindenekelőtt biztosítani kell, hogy a számítógép olyan hálózatra kerüljön, ahol fizikailag nem lehetséges a hálózat lehallgatása. Javasolt, hogy a rendszert futtató számítógép a többi számítógéptől külön, saját hálózatba vagy hálózati szegmensre kerüljön. A biztonságot és a rendelkezésre állást növelheti, ha a számítógépre menő hálózati forgalmat tűzfallal korlátozzuk.
6.2.2 Titkosított kommunikáció A lehallgatás és hamisítás problémájára egy másik megoldás a Netscape által bevezetett és elterjedt Secure Socket Layer, röviden SSL. A technika lényege, hogy a kliens és a szerver között a TCP feletti kommunikáció titkosítottan történik:
browser
webszerver
HTTPS SSL TCP IP LAYER2 LAYER1
HTTPS SSL TCP IP LAYER2 LAYER1
A módszernek a lehallgatás és a hamisítás mellett további előnyei is vannak: IP cím, ill. DNS hamisítás ellen is véd. A megoldás az ún. nyilvános kulcsú titkosítás, melynek során a kommunikáló felekhez (jelen esetben a browserhez és. a szerverhez) egy-egy kulcspár tartozik, ahol a kulcspár két részből áll: egy titkos és egy nyilvános kulcsból. A titkos és a nyilvános kulcs szerepe szimmetrikus. Ha N jelöli a nyilvános kulcs alkalmazását, T a titkos kulcsét és x egy kódolandó információ, akkor
30
N(T(x)) = x és T(N(x)) = x A módszer lényege, hogy rendkívül nehéz T-ből N-et meghatározni, továbbá T nem törhető fel választott nyílt szöveggel. A kommunikációban részt vevő feleknek generálniuk kell a maguk részére egy nyilvános/titkos kulcspárt. Ezután a nyilvános kulcsot minél szélesebb körben ismertté kell tenni, miközben a titkos kulcsra értelemszerűen vigyázniuk kell. Bárki, aki titkosított üzenetet akar küldeni, nem kell mást tennie, mint a fogadó nyilvános kulcsával kódolnia az üzenetet. A nyilvános kulcs ismerete nem segít abban, hogy a titkos kulcsot megfejtsük, ezért ha egy üzenetet egy nyilvános kulccsal kódoltunk, akkor már magunk sem tudjuk azt visszafejteni, csakis aki ismeri az adott nyilvános kulcshoz tartozó titkos kulcsot.
A módszer alkalmas titkosítás nélkül csak
hitelesítésre is, azonban ezt a lehetőséget a web technológia nem használjuk ki. A nyilvános kulcsú titkosítás megvalósításához szükséges követelményeket teljesíti például az MIT-n kidolgozott RSA algoritmus. Az RSA algoritmus neve a szerzők nevének kezdőbetűiből származik: Rivest-Shamir-Adleman. Az RSA algoritmus védett, nem ingyenes, tulajdonosa az RSA Security Inc. Biztonság alapelve a nagy számok tényezőkre bontásának nehézsége, például egy 200 jegyű szám felbontása a mai számítógépekkel 4 milliárd évig tart. Az algoritmus a következő: 1. válasszunk két nagy prímszámot (p, q), mindkettő legyen > 10100 2. n = p*q és z = (p-1) * (q-1) 3. d legyen z-hez képest relatív prím 4. keressünk egy olyan e-t, amelyre e*d mod z = 1 Ekkor a titkos kulcs: a (d, n) pár, a nyilvános kulcs: az (e, n) pár Kódolás: C = Pe mod n Dekódolás: P = Cd mod n
31
A kódolás fix méretű blokkokra tördelve történik, a kódolandó blokkok log2n-nél kevesebb bites egységek. A kód feltöréséhez feltöréshez n-et fel kellene bontani p-re és q-ra, hogy z és ebből d meghatározható legyen. Igen fontos, hogy ha valakinek a nyilvános kulcsát használjuk, akkor biztosak legyünk abban, hogy nem hamis, lejárt vagy érvénytelen a kulcs. A kulcsok hitelesítését az ún. kulcstanúsító szervezetek végzik. Egy hitelesített kulcs beszerzése azonban pénzbe kerül, így a jelenlegi rendszer nem hitelesített kulccsal üzemel, amely azért a fent vázolt biztonsági előnyök nagy részét ugyanúgy nyújtja.
6.2.3 Számítógép, operációs rendszer Biztonsági szempontból kritikus a magát a rendszert futtató számítógép biztonsága, hiszen ha valaki plusz jogosultságokhoz jut a gépen, akkor a rendszer teljes adatbázisához is hozzáférhet, akár magát a programot is tetszés szerint módosíthatja. Ennek a veszélynek a minimalizálása miatt javasolt, hogy a számítógépen ne legyenek felhasználók és minél kevesebb szolgáltatás fusson rajta (webszerver, adatbázis szerver, sshd), azaz dedikált szerver legyen. Felhasználók létrehozása azért is ellenjavallott, mert egyrészt a támadó egy felhasználó jelszavát megszerezve könnyebben juthat be a gépre, így egyszerűbben tehet szert plusz jogosultságokra, mintha csak távolról, hálózaton keresztül lenne lehetősége próbálkozni. Másik indok a helyi felhasználók ellen, hogy a PHP kód jelszavakat is tartalmaz, amelyekkel az adatbázishoz lehet hozzáférni, és ezeket a jelszavakat a gépen belül ismét csak sokkal könnyebb megszerezni. Előfordulhat, hogy a gép operációs rendszerében vagy az egyéb futtatott alkalmazásban idővel biztonsági hibákra derül fény, ezért a folyamatos felügyeletre és karbantartásra is szükség van.
6.2.4 A rendszer biztonsági kérdései A rendszer háromféle felhasználótípust különböztet meg, melyekhez különböző jogosultságok tartoznak, ezek a típusok: a hallgató, az oktató és a rendszeradminisztrátor.
32
A legkorlátozottabb hozzáférése a hallgatónak van: ő csak bizonyos feladatsorokhoz férhet hozzá, és természetesen ezeket is csak olvashatja, ill. a kérdésekre válaszokat vihet be, ez utóbbi történik pl. egy vizsga során. Maguk a hallgatók tulajdonképpen nincsenek is nyilvántartva a rendszerben, ez csak felesleges plusz adminisztrációs terhet jelentene. A vizsga során a hallgatónak meg kell adnia a Neptun kódját, a rendszer ez alapján tárolja el a hallgató által bevitt válaszokat. Annak biztosítása, hogy tényleg az a hallgató ül a számítógép előtt, mint akinek a Neptun kódjával a vizsgasor megoldása történik, az a hagyományos vizsgáztatáshoz hasonlóan a felügyelő tanár feladata. A felügyelő tanár szerepe elkerülhetetlen, hiszen hiába történne a hallgatók azonosítása jelszóval és/vagy TIRISZ kártyával, a hallgatók ezeket ugyanúgy elmondhatják, ill. odaadhatják egymásnak, és így könnyedén
vizsgázhatnának
egymás
helyett.
Az
azonosításra
megoldást
jelenthetnének a biometrikus alapokon működő rendszerek, pl. ujjlenyomat-, írisz-, nyelvmintázat vagy DNS vizsgálat, azonban ezek alkalmazása körülményessé és drágává tenné a rendszert, továbbá a hallgatók felügyelete ezeknek az eszközök használata mellett szükséges maradna, hiszen egy hagyományos vizsgához hasonlóan ugyanúgy meg kell akadályozni, hogy a vizsgán a hallgatók egymást segítség a feladatok megoldásánál vagy nem megengedett segédeszközöket használjanak. Az oktató jogosultsága jóval nagyobb a hallgatóénál, a hozzá tartozó tantárgyakkal bármilyen műveletet végezhet: létrehozhat új kérdést, feladatsort, kiírhat vizsgát, ezeket törölheti is, továbbá hozzáfér a hallgatók által beadott feladatsorokhoz, és azokat kijavíthatja, pontozhatja. A rendszeradminisztrátor jogosultsági köre a legszélesebb: joga van mindahhoz, amihez az összes oktatónak, ezen kívül új oktatókat és tantárgyakat vehet fel, és megtekintheti a rendszernaplót.
6.3 User Interface A felhasználói felület nem csak funkcionálisan, hanem vizuálisan is könnyen kezelhető és áttekinthetőnek kell, hogy legyen.
33
1. - az alkalmazások humán tényezője - ember-gép rendszerek modelljei o a felületmodell kialakítása elvárások, szabványok, megjelenítés o a kommunikációs modell terve o inputok, outputok, dialógusok tervezése 2. HCI: Human Computer Interface Definíció:
A humán interfész egy olyan mechanizmus, amelyen keresztül az ember kommunikálni tud a számítógépen működtetett alkalmazással, és igénye szerint vezérelni tudja annak működését. 4. Felhasználói elvárások a dialógusokkal szemben megjelenésben illeszkedés a valós objektumokhoz egyszerűség, érthető megjelenítés illeszkedés az ergonómiai követelményekhez érthetőség és követhetőség a valós folyamatok végrehajtásának követése a menüstruktúrával szabványos felületi komponensek alkalmazása 5. Ember-gép kapcsolatok célja, formái kommunikáció információszerzés az adatbázisból dialógus az alkalmazás vezérlése, irányítása kognitív feladat alkalmazások működtetése, végrehajtása 34
6. Ember-gép rendszerek modelljei Feladat-modell fizikai komponens a munkakörnyezet kialakítására, a hardver-paraméterek specifikálására Felület-modell a felhasználói igények kielégítését szolgáló szemantikai megközelítésű, konceptuális komponens Kommunikációs modell a szoftverhez való viszonyt kifejező szintaktikai komponens, amely meghatározza a működés módját, az I/O és a dialógus formáját 7. A fizikai, a konceptuális és a kommunikációs komponens kapcsolata Belső (konceptuális) modell -
objektumok, attribútumok, relációk,
-
műveletek, funkciók, folyamatok
-
működtetési elvárások, megjelenítés
-> Interaktivitás: -
megjelenítés, hivatkozások,
-
helpek, diagnózisok
-
dialógustervezés
Külső (látható) modell -
szöveges kimenetek
-
grafikus objektumok, formulák
-
bemeneti elemek
35
8. Felületi szabványok Definíció: A szoftvertermékek egységes megjelenítési felületének és kezelésének előírása Szabványok: CUA: Common User Access (IBM) HIG: Human Interface Guidlines (Apple) GUI: Graphical User Interface (Open Look, OSF/Motif ISO Norm 9241 (terminálok ergonómiai előírása) VDI 5005 (szoftver ergonómiai elvárások) DIN 66234 (dialógustervezés ergonómiája) 9. Megjelenítés Megjelenítés menütechnika ablaktechnika grafikus felhasználói felület - ikonok Interfész-tervezési elvek: következetesség visszacsatolási lehetőség biztosítása biztonság (rákérdezés a törlési funkciókra) visszaállíthatóság rövid, egyértelmű utasítások használata 10. On-line adatbevitel kérdezz-felelek megoldás biztosítani kell a default értékek automatikus megadásának lehetőségét
36
képernyő formok alkalmazása bizonylati formát szimuláló képernyő, melynek mezői között [Tab]-bal vagy [Enter]-rel kell lépkedni 11. Az adatellenőrzés szempontjai szintaktikai és szemantikai ellenőrzés intervallum ellenőrzés adat-összefüggés vizsgálat tájékoztatás a hibákról teljesség-ellenőrzés 12. Dialógus-tervezési szempontok egyértelmű vezérlés utak a végrehajtáshoz azonos struktúrájú képernyő formák egy képernyő lehetőleg egy feladatra vonatkozzon ablakok mérete ne legyen kisebb az olvashatósági méretnél nem szabad eltúlozni az effektek használatát minimálisra kell csökkenteni a felhasználói beavatkozások számát ahol lehet, alapértelmezéseket kell alkalmazni 13. Képernyő-terv * minta
37
7. Implementálás és tesztelés (6-8) UI: NS, IE, Opera, lynx, links, Arena, WebExplorer Oprendszerek (UNIX, MS Windows, Macintosh) Verifikációs módszerek: •
verifikáció: ez a szoftver jó?
•
validáció: ez a jó szoftver?
Tesztelés szintjei: •
unit teszt
•
modul teszt
•
alrendszer teszt
•
integrációs teszt
•
elfogadási (akceptancia) teszt o alfa teszt – házon belül o béta teszt – kísérlet egy vállalkozó user csoporttal
Regressziós teszt: egy javítást, módosítást követően nem csak az érintett unitot, hanem valamennyi, a unittal kapcsolatot tartó programrészt újra teszteljük. Hibák: •
tervezési
•
gyártási (elírás...)
•
túlterhelés
•
elhasználódás
Kategóriák: •
funkció teszt (black box)
•
teljesítmény teszt
•
stressz teszt
•
strukturális teszt (white box)
38
Technikák: •
kimerítő: minden lehetséges bemeneti adattal kipróbálni, praktikusan lehetetlen
•
ekvivalencia-osztályok alapján: egy ekvivalencia-osztályt alkotnak azok a bemeneti adatok, amelyek a tesztelendő egység szempontjából hasonló tulajdonságúak Æ
egyes osztályokat reprezentáló adatok
megválasztása •
strukturális teszt: a vezérlési struktúra (gráf) ismeretében
Debug: Ha hibát találunk Æ Mi okozza? Módszerek a hiba okának felderítésére.
39
8. Értékelés, összegzés, lehetséges továbbfejlesztési lehetőségek (1-2) Rendelkezésre álló idő folyamatos kijelzése a hallgató számára a vizsga során Design
9. Irodalomjegyzék, források (1-2) [KSH] a Központi Statisztikai Hivatal adatai alapján [NSFNET] ftp://nis.nsf.net/statistics/nsfnet/1992-1994 [Netcraft] http://www.netcraft.com/Survey/ [PT] dr. László Zoltán: Programozás technológiája Műegyetemi Kiadó, 1993. [Hegedüs] Hegedüs Heléna, Sinkóné Mányoki Andrea: Az információrendszerek elemzésének és tervezésének a gyakorlata SZÁMALK Kiadó, 2001. ISBN: 963 553 354 3
10. Függelék (konfig. állományok, képernyőképek, szómagyarázat) Javasolt környezet: •
operációs rendszer: FreeBSD 4.3-STABLE
•
webszerver: Apache 1.3.19 + modssl_x.y.z + OpenSSL_a.b.c
•
adatbázis szerver: PostgreSQL 7.x
rc.conf, rc.firewall httpd.conf pg_hba.conf 40
Távoktató szoftverek •
Asymetrix Librarian, Asymetrix Learning Systems Inc. http://www.asymetrix.com/
•
Blackboard CourseInfo, Blackboard Inc. http://www.blackboard.com/
•
ClassNet, Iowa State University Computation Center http://classnet.cc.iastate.edu/
•
Convene Learning Internet Platform, Convene http://www.convene.com/
•
CyberProf, University of Illinois, Department of Physics http://www.howhy.com/home/index.html
•
CyberWISE Online, The Saratoga Group http://www.saratogagroup.com/
•
Digital Trainer, MicroMedium Inc. http://www.micromedium.com/
•
eCollege System, eCollege.com http://www.ecollege.com
•
Flextraining, Online Development http://www.flextraining.com/
•
IBTauthor, Docent Software Inc. http://www.docent.com/
•
Instructional Toolkit, University of Virginia http://toolkit.virginia.edu/displaydocs.html
•
Internet Classroom Assistant, Nicenet http://www.nicenet.org/
•
IntraLearn, IntraLearn Software Corporation http://www.intralearn.com/
•
KnowledgeSoft, KnowledgeSoft, Inc. http://www.knowledgesoft.com/
•
LearnLinc, Interactive Learning International Corporation http://www.ilinc.com/
41
•
Learning University, 7th Street.com Inc. http://www.7thstreet.com/
•
Lotus LearningSpace, Lotus Corp. http://www.lotus.com/home.nsf/tabs/learnspace
•
Mallard, University of Illinois http://www.ews.uiuc.edu/Mallard/Overview/
•
Mentorware Enterprise Education Server, Mentorware Inc. http://www.mentorware.com/
•
Performance Learning System, VuePoint Corp. http://www.vuepoint.com/
•
PHOENIX NetWorks, Pathlore Software Corp. http://www.pathlore.com/
•
SyberWorks Learning Machine, SyberNet Inc. http://www.syberworks.com
•
Teamscape Learning Junction, Teamscape Corporation http://www.teamscape.com/
•
TopClass, WBT Systems http://www.wbtsystems.com/
•
Virtual-U, Simon Fraser University and Virtual Learning Environment, Inc. http://virtual-u.cs.sfu.ca/vuweb/
•
Web Course In A Box, MadDuck Technologies http://www.madduck.com/
•
WebCT, WebCT Educational Technologies (Department of Computer Science of the University of British Columbia) http://www.webct.com/
•
WebMentor, Avilar Technologies, Inc. http://www.avilar.com/
[UNESCO] webct: http://homebrew.cs.ubc.ca/ topclass: http://topclass1.itec.suny.edu/west/aslpaper.html distance learning for continuous education: http://www.educom.com/
42
SGML Standard Generalized Markup Language - Tulajdonképpen ezt tekinthetjük a "formázott" szövegek programnyelvének. DTD Document Type Definition - SGML-en alapulo dokumentum szerkesztési módszerrel készített implementáció. Egy egyszer? példával élve: a Fortran egy program számára olyan, mint az SGML egy DTD számára. HTML HyperText Markup Language - a HTML egy SGML DTD. Tehát a HTML nem más, mint a World Wide Web dokumentumok szerkesztésekor használt stíluselemek gy?jteménye. http://www.pollak.sulinet.hu/sanyag/html40/node12.html ISO 8879: 1986 Information processing - Text and Office Systems - Standard Generalized Markup Language (SGML) 2.3.1 Az SGML Az SGML (Standard Generalized Markup Language, ISO 8879) [9] egy olyan rendszer, amelynek segítségével ún. jelölőnyelveket lehet definiálni. A dokumentumok szerzői itt különböző jelölésekkel adják meg a szerkezeti, prezentációs és szemantikai információkat. A HTML az SGML ilyen tipikus alkalmazása. Minden SGML alkalmazás a következőkkel írható le: 1. SGML deklaráció. Ez meghatározza, hogy mely karakterek és elválasztók jelenhetnek meg az alkalmazásban. 2. Dokumentum Típus Definíció (DTD). tartalmazza, ezen kívül karakterhivatkozásokat is magába foglalhat. 43
Ez a jelölőszerkezetek leírását
3. Specifikáció, amely megadja a szemantikai szabályokat. HTTP/1.0 [RFC 1945]. BMENET: http://intranet.bme.hu/bmenet/fddi2001februar_nagy.gif PostgreSQL, apache, mod_ssl, mod_php4 telepítés menete
44