Intelligens találkozószervező szoftver fejlesztése Java EE alapokon
Absztrakt
Nagyon fiatal koromban a családomnak köszönhetően hamarabb megtanultam a számítógép használatát, mint írni és olvasni. Idővel jobban kezdtem érteni a számítógéphez, mint bárki más körülöttem, ezért én lettem az, akihez bármilyen probléma esetén fordulni lehetett. Az egyetemi tanulmányaim megkezdése után egyre inkább tudatosult bennem, hogy számomra a leginkább kézenfekvő programozási nyelv a Java, ezért szakdolgozatomban olyan témával szerettem volna foglalkozni, amihez a Java megfelelőnek tűnik. A Debreceni Egyetemen futó F.I.R.S.T. projekt részeként az egyetem munkatársai és hallgatói olyan szolgáltatásokat és ezek köré épülő szoftvereket hoztak, ill. hoznak létre, amelyek segítségével felokosítható egy egyetemi kampusz. A cél az, hogy a létrejövő szoftverek minden platformon egyaránt használhatóak legyenek mindenféle platformfüggő alkalmazás telepítése nélkül, ezért az egész projektet több kicsi, de egymással szorosan együttműködő webalkalmazásként képzelték el. A már meglévő szolgáltatásokat elérhetjük a http://smartcampus.hu weboldalon. A feladatom az első olyan modul kifejlesztése volt, ami a már meglévő alkalmazásokkal összeintegrálható. Tanulmányaim során többször is előfordult, hogy egyes tantárgy oktatói és hallgatói között meg kellett határozni egy olyan időintervallumot, ami mindenki számára egyaránt megfelelő. Figyelembe véve, hogy minden embernek különböző órarendje, naptára és időbeosztása van, nehéz megtalálni azt a közös, de mindenki számára szabad időpontot, amikor például közös zárthelyi dolgozatot kellene írni, be kellene pótolni egy elmaradt órát, vagy netalántán valamilyen közös megbeszélés történne. Korábban, ha ilyen találkozók szervezésére volt szükség, akkor az általában vagy mindenféle kérdés nélkül ment, vagy ha volt is valamilyen egyeztetés a résztvevők között, akkor az annyiból állt, hogy minden hallgató e-mailen jelezte az oktató felé, hogy mikor van szabad ideje és mikor nincs. Az Információ Technológia tanszék munkatársaival való egyeztetés után arra a következtetésre jutottunk, hogy leginkább egy olyan szolgáltatásra lenne szükség, ami az előre megadott naptárak alapján képes egy találkozó megszervezésére. A szervezés alatt azt az időpont megtalálást kell érteni, ami az előre meghatározott emberek számára egyaránt megfelelő. Tehát egy olyan találkozószervező szoftverre van szükség, ami az adatbázisban lévő órarendek és naptárok kiolvasása, plusz még a megfelelő paraméterek megadása után képes azt megmondani, hogy a paraméterként meghatározott embereket figyelembe véve mikorra lenne célszerű egy találkozót időzíteni. A fejlesztés elején célul tűztem ki, hogy a szolgáltatást az informatikához nem, vagy csak alig értő személyek is használatba tudják venni, ezért egy olyan webalkalmazást építettem a szolgáltatás köré, amit bárki bármilyen magasabb informatikai ismeret nélkül használatba tud venni. A létrehozott szolgáltatás a Java alapú OptaPlanner nevű matematikai optimalizációs szoftver köré épül. Ez lehetővé tette, hogy ne egy konkrét, a forráskódba beégetett algoritmus implementálásával menjen el a fejlesztési idő nagy része, ugyanis az OptaPlanner már beépítve tartalmazza a mesterséges intelligencia szakterület legismertebb keresőalgoritmusait, helyette elég volt arra koncentrálnom, hogy lemodellezzem a megoldandó problémát, kiválasszam azt, hogy hogyan és melyik keresőalgoritmusnak adjam át a létrehozott problémát és milyen lehetséges kimenetei legyenek egy-egy elindított keresésnek.