DIPLOMATERV. Hálózati információs rendszer oktatáshoz. Budapesti Műszaki és Gazdaságtudományi Egyetem



Hasonló dokumentumok
5.1 Környezet Hálózati topológia

Tartalomjegyzék. 1. Bevezetés (1)

1. BEVEZETÉS (1) FELADAT DEFINÍCIÓ (2-3) ÁTTEKINTÉS

Nyilvántartási Rendszer

Moodle -egy ingyenes, sokoldalú LMS rendszer használata a felsőoktatásban

ALKALMAZÁSOK ISMERTETÉSE

Gyakorlati vizsgatevékenység A

Az Orbis adatbáziskezelő

Gyakorlati vizsgatevékenység B

PTE-PROXY VPN használata, könyvtári adatbázisok elérhetősége távolról

Internet programozása. 1. előadás

MŰSZAKI KÖVETELMÉNYEK, A KÖRKERESŐ SZOFTVER SPECIFIKÁCIÓJA, KÖLTSÉGVETÉS. A) Műszaki követelmények

Internet alkamazások Készítette: Methos L. Müller Készült: 2010

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

Adatbázis rendszerek. dr. Siki Zoltán

NEPTUN MOBIL ALKALMAZÁS FELHASZNÁLÓI SEGÉDLET

Az internet az egész világot behálózó számítógép-hálózat.

Web programoz as

NETTUTOR AZ OKTATÁSSZERVEZÉS SZÁMÍTÓGÉPES TÁMOGATÁSA

Microsoft SQL Server telepítése


Tanári óratartás nyilvántartása a ZMNE-n

NETinv. Új generációs informatikai és kommunikációs megoldások

A számítástechnika gyakorlata WIN 2000 I. Szerver, ügyfél Protokoll NT domain, Peer to Peer Internet o WWW oftp opop3, SMTP. Webmail (levelező)

Titkosítás NetWare környezetben

30 MB INFORMATIKAI PROJEKTELLENŐR

Információ és kommunikáció

Intelligens biztonsági megoldások. Távfelügyelet

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

Az Evolut Főkönyv program telepítési és beállítási útmutatója v2.0

Mikrobiológia MOODLE - gyakorló és vizsgarendszer használata az ELTE TTK Biológiai Intézet E- learning felületén

Készítette: Enisz Krisztián, Lugossy Balázs, Speiser Ferenc, Ughy Gergely

DAT adatcserefájl AutoCAD MAP DWG mapobject konvertáló program dokumentáció

WWW Kliens-szerver Alapfogalmak Technológiák Terv. Web programozás 1 / 31

Technikai tudnivalók a Saxo Trader Letöltéséhez tűzfalon vagy proxy szerveren keresztül

Számítógépes munkakörnyezet II. Szoftver

Elektronikus Információs és Nyilvántartási Rendszer a Doktori Iskolák fiatal kutatói részére

iseries Client Access Express - Mielőtt elkezdi

Közoktatási Statisztika Tájékoztató 2012/2013. Használati útmutató

<Insert Picture Here> Migráció MS Access-ről Oracle Application Express-re

Multimédiás adatbázisok

Teljesítményértékelések eredményeinek rögzítése a Neptun Egységes Tanulmányi Rendszerben

vbar (Vemsoft banki BAR rendszer)

Az alábbiakban a portál felépítéséről, illetve az egyes lekérdező funkciókról kaphat részletes információkat.

Telenor Webiroda. Kezdő lépések

CCS Hungary, 2000 szeptember. Handling rendszer technikai specifikáció

Informatikai alapismeretek Földtudományi BSC számára

Tájékoztató a szakdolgozat elektronikus feltöltéséről

kodolosuli.hu: Interaktív, programozást tanító portál BALLA TAMÁS, DR. KIRÁLY SÁNDOR NETWORKSHOP 2017, SZEGED

GeriSoft Stúdió Kft J Á T S Z Ó H Á Z M A X I JÁTSZÓHÁZI BELÉPTETŐ RENDSZER

S SDA Stúdió kft Hallgatók adatlap

Egyetemi adatbázis nyilvántartása és weben

Digitális írástudás kompetenciák: IT alpismeretek

TERC V.I.P. hardverkulcs regisztráció

Google App Engine az Oktatásban 1.0. ügyvezető MattaKis Consulting

API tervezése mobil környezetbe. gyakorlat

Felhasználói kézikönyv a WEB EDInet rendszer használatához

TÁRGYTEMATIKA RÖGZÍTÉSE A NEPTUN RENDSZERBEN

Manhattan - szabad forráskódú távoktatási program adaptálása és fejlesztése

Felhasználói kézikönyv

Home movie database. Specifikáció. Verzió: 1.0. Dátum: Státusz: Released. Készítette: Farkas Róbert. Kulcsár Orsolya.

ÉRETTSÉGI TÉTELCÍMEK 2018 Informatika

Virtualoso Server szolgáltatás Virtuális szerver használati útmutató

Magyar Nemzeti Bank - Elektronikus Rendszer Hitelesített Adatok Fogadásához ERA. Elektronikus aláírás - felhasználói dokumentáció

Felhasználói útmutató

A KASPERSKY SECURITY CENTER

Vihar 2.0 rendszer Felhasználói kézikönyv

MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

Mikroszámla. Interneten működő számlázóprogram. Kézikönyv

SSL VPN KAPCSOLAT TELEPÍTÉSI ÚTMUTATÓ

TANFOLYAMI AJÁNLATUNK

Iroda DEMO telepítési útmutató

Adatbázis kezelő szoftverek biztonsága. Vasi Sándor G-3S

BEVEZETÉS AZ INTERNET ÉS A WORLD WIDE WEB VILÁGÁBA. Kvaszingerné Prantner Csilla, EKF

CĺM: Bogdana Šuputa Novi Sad Serbia

Vonalkód olvasó rendszer. Specifikáció Vonalkód olvasó rendszer SoftMaster Kft. [1]

Elektronikus napló használati útmutatója diákoknak

OCSP Stapling. Az SSL kapcsolatok sebességének növelése Apache, IIS és NginX szerverek esetén 1(10)

Elektronikusan hitelesített PDF dokumentumok ellenőrzése

INFORMATIKAI ALAPISMERETEK

S, mint secure. Nagy Attila Gábor Wildom Kft.

Inczédy György Középiskola, Szakiskola és Kollégium Nyíregyháza, Árok u. 53. TANMENET. Informatika szakmacsoport

ECDL Információ és kommunikáció

Adatbázisok elleni fenyegetések rendszerezése. Fleiner Rita BMF/NIK Robothadviselés 2009

ERserver. iseries. Az iseries Access for Windows használatának megkezdése

Személyügyi nyilvántartás szoftver

Új Magyarország Fejlesztési Terv Tájékoztató A ZMNE-n bevezetett wifi szolgáltatásról KMOP-4.2.1/B

Alkalmazások fejlesztése A D O K U M E N T Á C I Ó F E L É P Í T É S E

Bár a szoftverleltárt elsősorban magamnak készítettem, de ha már itt van, miért is ne használhatná más is.

TISZTASZOFTVER PROGRAM ONLINE IGÉNYLÉSI ÚTMUTATÓ

ÜGYFÉL OLDALI BEÁLLÍTÁSOK KÉZIKÖNYVE

Teljesítményértékelések eredményeinek rögzítése az oktatói weben

Testnevelési Egyetem VPN beállítása és használata

Sú gó az ASIR/PA IR Públikús felú lethez

A DigiKresz internetes gyakorló program hatékony segítség az elméleti oktatást követő vizsga eredményességének növelésében.

PHP-MySQL. Adatbázisok gyakorlat

A d m i n i s z t r á c i ó s f e l a d a t o k a I n t e g r á l t K ö n y v t á r i R e n d s z e r b e n

A TÁVOKTATÁSI PORTÁLHOZ

INFORMATIKA ÉRETTSÉGI VIZSGA ÁLTALÁNOS KÖVETELMÉNYEI

Átírás:

Budapesti Műszaki és Gazdaságtudományi Egyetem DIPLOMATERV Hálózati információs rendszer oktatáshoz Készítette: Pecsenyánszky István BME Villamosmérnöki és Informatikai Kar Villamosmérnöki szak 2001. május Konzulens: Dr. Máray Tamás adjunktus BME Irányítástechnika és Informatika Tanszék

Nyilatkozat Alulírott Pecsenyánszky István, a Budapesti Műszaki és Gazdaságtudományi Egyetem hallgatója kijelentem, hogy ezt a diplomatervet meg nem engedett segítség nélkül, saját magam készítettem, és a diplomatervben csak a megadott forrásokat használtam fel. Minden olyan részt, melyet szó szerint, vagy azonos értelemben, de átfogalmazva más forrásból átvettem, egyértelműen a forrás megadásával megjelöltem.... Pecsenyánszky István II

III

Összefoglalás Diplomatervezési feladatom során egy olyan szoftvert fejlesztettem, amely a későbbiekben az egyetem hasznára is válhat: egy olyan webes alkalmazást, amely az oktatókat támogatja a számonkérésben, a hallgatóságot pedig segíti a felkészülésben. Ebben a dolgozatban a fejlesztés során végzett munkámat foglalom össze. A dolgozat első részében egy általános leírást adok az elkészítendő szoftverről, és bemutatom az ehhez hasonló, már létező rendszereket. Ezt követően ismertetem a tervezett szoftver által alkalmazott és igénybevett technológiákat, továbbá bemutatom azokat a szoftverkomponenseket, amelyek nem én terveztem, de az általam fejlesztett szoftver működéséhez elengedhetetlenek, és a szoftver megtervezéséhez ezek alapos ismerete nélkülözhetetlen. Ezután a rendszerről pontos specifikációt adok. A dolgozat következő részében ismertetem a rendszer tervezési lépéseit, különös figyelmet szentelve a biztonsági kérdéseknek és a felhasználói felület kialakításának. Ezt követően bemutatom a szoftver főbb moduljainak implementálásának a menetét, kitérve a fontosabb programozási megoldásokra, majd kitérek a rendszer tesztelési kérdéseire. Végezetül összegzem a rendszerről alkotott véleményemet, és szót ejtek az esetleges továbbfejlesztési lehetőségekről. IV

Abstract V

Tartalomjegyzék 1. BEVEZETÉS (1)...1 2. FELADAT DEFINÍCIÓ (2-3)...3 3. ÁTTEKINTÉS (5-6)...5 3.1 TOPCLASS...6 3.2 LEARNLINC...6 3.3 CYBERPROF...7 3.4 WEBCT...7 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...34 6.3.1 Általános szempontok...34 6.3.2 Megvalósítási tervek...35 7. IMPLEMENTÁLÁS ÉS TESZTELÉS (6-8)...40 7.1 KÖZÖS PROGRAMKÓDOK...40 7.1.1 Adatbázis kezelő függvények...41 7.1.2 Naplózás...42 7.1.3 Session-kezelés...43 7.2 A FŐBB FUNKCIÓK IMPLEMENTÁLÁSA...47 7.2.1 Belépés, authentikáció...48 7.2.2 Oktatói adminisztrációs felület...49 7.2.3 Tesztelés...54 8. ÉRTÉKELÉS (1-2)...56

9. IRODALOMJEGYZÉK, FORRÁSOK (1-2)...57 10. FÜGGELÉK...57 A MELLÉKLET TÁVOKTATÓ SZOFTVEREK...57 VII

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 [1] Felsőfokú oktatás 1990/91 1997/98 1998/99 1999/00 Egy oktatóra jutó hallgató 4,4 7,8 7,6 8,1 1.2 ábra: egy oktatóra jutó hallgató a felsőfokú oktatásban [1] 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 és egyéb, feladatbeadással járó 1

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. 2

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 3

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. 4

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. 5

3.1 TopClass A WBT Systems által kifejlesztett multimédia alapú oktatóprogram, melynek segítségével web alapú intranet vagy Internet oktatóanyagot 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: a virtuális szemináriumon résztvevő diákot, a diák munkáját segítő-irányító tanárt és a rendszer-adminisztrátort, aki a TopClass rendszer egészének működéséért felelős, de nincs közvetlen kapcsolatban a rendszer többi felhasználójával. 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, illetve nem tekinthet be a többi diák adataiba, de természetesen hozzáfér mindazon kurzusok anyagaihoz, amelyekre beiratkozott. Az oktató jogosultságait az adminisztrátor állítja be, míg az adminisztrátor jogait természetesen semmi sem korlátozza: létrehozhat diák és tanári jogosultságot, és a szemináriumok menetébe is betekintést nyerhet. A rendszer beépített üzenetküldő mechanizmussal is rendelkezik, amely nem csupán az oktató és diák közötti kapcsolattartása alkalmas, hanem levelezési listák, fórumok is létrehozhatók, így egyéb kiegészítő alkalmazás nélkül kialakítható a virtuális szeminárium összes szükséges kommunikációs csatornája. 3.2 LearnLinc Az ILINC terméke. A szoftver célja elsősorban a szinkron jellegű internetes oktatás támogatása videokonferencia-rendszerrel. A szoftver nagy sávszélességet igényel, így elsősorban campuson belüli intraneten használható. A rendszerbe bekapcsolódó munkaállomások feltétele a nagyobb teljesítmény és a multimédia támogatottság. A kétirányú audió és videó kapcsolat mellett lehetővé teszi az oktató által előre elkészített multimédia anyagok bemutatását, továbbá hagyományos 6

tantermi szituáció szimulálására is képes. A rendszerben lehetőség van az oktatói moderálásra, azaz az óra menetét az oktató ütemezheti. 3.3 CyberProf Aszinkron oktatási formát támogató szoftver. A rendszer több modult is tartalmaz, amelyek együttes használatával a virtuális szeminárium minden eleme megvalósítható. A rendszer tartalmaz webszerkesztőt, amely a tananyag elkészítését segíti, és feladatszerkesztőt, amellyel ellenőrző kérdéseket lehet összeállítani. A szoftver chat-modullal is rendelkezik, amellyel on-line szöveges párbeszéd is kialakítható. A szoftvert a University of Illinois-on fejlesztették ki. 3.4 WebCT Szintén aszinkron oktatási formára kifejlesztett web-alapú rendszer. Virtuális kurzusok hozhatók létre. A tananyag webre tételét különféle eszközökkel segíti, tartalmaz beszélgető-fórumot, feladatűrlapokat és hallgatói nyilvántartást is. 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 [2] 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 [3] 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. [4] 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: kliens webszerver 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 tranzakciókezelés kulcsok query külső sub- ingyenes PHP támogatás view Adabas D 10.01.00 X X X X X X EMPRESS 6.1 linux X X X X FrontBase 2.1 X nem szabv. X X X Informix 7.30C1 linux X nem szabv. X X X Interbase 6.0Beta linux X X nem szabv. X Mimer SQL 8.2.0C linux X X X X msql 2.0.10 X X X MySQL 3.23.25 X X X X Oracle 8.1.6.0.0 linux X X X X X PostgreSQL 7.0 X X X X X X X SOLID Server 2.3.26 X X X X X X Sybase enterpr. 11.x X X X nem szabv. 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 500000 darabszám 400000 300000 200000 100000 0 Jun-98 Aug-98 Oct-98 Dec-98 Feb-99 Apr-99 Jun-99 Aug-99 Oct-99 Dec-99 Feb-00 Apr-00 Jun-00 Aug-00 Oct-00 Dec-00 Feb-01 Apr-01 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 HTML3- at é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