Vezetői információs webalkalmazás fejlesztése Java nyelven Szerző neve
Konzulens
Bagi Roland Informatika Tanszék Debreceni Egyetem, Informatika Kar Debrecen, Magyarország
[email protected]
Erdei Timotei István Villamosmérnöki és Mechatronikai Tanszék Debreceni Egyetem, Műszaki Kar Debrecen, Magyarország
[email protected] deb.hu
Absztrakt— Az Ipar 4.0/IoT elterjedésével alapvetővé vált, hogy az internet segítségével ne csak a külvilág eseményeiről értesüljünk elsőként, hanem cégünk állapotát is nyomon követhessük. A projekt során egy olyan információs webalkalmazás elkészítésére került sor, mely az Inter-Line 95 Kft. vezetői számára nyújt támogatást. A webalkalmazás célja, segítségével bármilyen eszközön (mobiltelefon, tablet, laptop, pc) jól átlátható információt biztosítson a cég helyzetéről, segítséget nyújtson a partnerekkel való tárgyalásban. Kulcsszavak— Java, Firebird, adatbázis
I.
webalkalmazás,
Jsp,
webszerver
BEVEZETŐ
Az egyre inkább globalizálódó és felgyorsult világunkban az információkra azonnal és pontosan van szükség. Ehhez nyújt remek segítséget az internet, amellyel kapcsolatban már általánossá vált, hogy nem csak az otthonokban, munkahelyeken használható, hanem gyakorlatilag bárhol, köszönhetően a kiterjedt hálózatnak és a nagyteljesítményű mobileszközöknek. Az Inter-line 95 Kft.[1] 1989-ben alakult, családi tulajdonban lévő cég, melynek tevékenységi köre főleg a csomagolóanyagok, egyszer használatos műanyag termékek, irodaszerek és vegyi áruk kis- és nagykereskedelme.
alakulását, illetve a partnerekkel való tárgyalás során gyorsan elérhetőek legyenek a céggel kapcsolatos adatok. II.
JAVA PROGRAMOZÁSI NYELV
A Java nyelv története [2] 1991-ig nyúlik vissza, ebben az évben indította el a Green projectet három mérnök, James Gosling, Mike Sheridan és Patrick Naughton. Eleinte csak kisebb, beágyazott rendszerekhez szánták, például set-topboxokhoz. A véglegessé vált Java nevet 1995-ben kapta. Jáva Indonézia egyik szigete, magas minőségű kávétermesztéséről is ismert, nem véletlen tehát a jól ismert gőzölgő kávéscsészét szimbolizáló logó. Az elmúlt években több Java verzió lett kiadva. a JDK 1.0 1996-ban jelent meg, jelenleg a JAVA SE 8 [3] a legfrissebb változat. 2. ábra: Programozási nyelvek
1. ábra: Inter-Line 95 Kft. Forrás online: Java origin [4]
A Java [5] platform független nyelv, ami azt jelenti, hogy a forrásszöveget a fordítóprogram egy köztes formára, úgynevezett bájtkódra fordítja melyet utána a Java Virtual Machine (JVM) futtat, amely többek között elérhető Windowsra, Linuxra és macOS-re is.
Forrás: tervezők által létrehozott tartalom
A cég vezetői számára fontos, hogy egy jól áttekinthető felületen folyamatosan nyomon követhessék a forgalom
A programozási nyelv többek között az olyan hasznos tulajdonságai miatt, mint a fent említett platformfüggetlenség, vagy a hordozhatóság, többszálúság, sandbox környezetben való futása miatti biztonságosság, hamar az egyik legnépszerűbb programozási nyelvvé nőtte ki magát, és napjainkban is őrzi vezető helyét [6].
A nyelv a C++ ismeretében jött létre, annak utódaként, javított kiadásaként is tekintenek rá. Megjelenésében is hasonló, a programegységeket kapcsos zárójel blokkok határolják, az utasításokat pontosvessző választja el egymástól. Fontos különbség azonban, hogy nem vette át azokat a nyelvi elemeket, melyek veszélyes szerkezeteket engedtek létrehozni, a legnagyobb különbség a pointerek elhagyása, ez a programozást is nagyban megkönnyítette. A program futásával párhuzamosan egy szemétgyűjtögető (Garbage Collector) rendszer is működik, amely folyamatosan figyeli, hogy az adott objektumot hivatkozza-e még bármilyen más eszköz, ha nem, akkor az adott objektum előbb vagy utóbb meg lesz szüntetve. A Garbage Collector figyeli többek között a processzor aktuális kihasználtságát, a szabad memóriát, és egy általa optimálisnak vélt időpontban avatkozik be, szabadít fel. Ez szintén nagy segítség a programozóknak, azonban nem váltja ki teljesen a logikusan megtervezett, memóriahatékonyságra törekedő programozást. III.
dinamikusan jelenteti meg a tartalmat, így megfelelő, jól olvasható méretben jelennek meg az oldalak számítógépen, telefonon, tableten is. IV.
JSP
A JavaServer Pages [9] technológia része a J2EE platformnak. A J2EE [10] standard specifikációk összessége, amely leírja az alkalmazás szerver összetevőit, az alkalmazásprogramozási felületet (API), futásidejű tárolókat és a folyamatokat. A JSP technológiával kényelmesen generálhatunk dinamikus tartalmat weboldalainkon, lehetőség van Java kódrészletek beillesztésére, meglévő osztályok hívására, vagy egyéb Java eszközök használatára. 4. ábra: Aktuális idő megjelenítése JSP kifejezés használatával
JAVA, MINT WEBALKALMAZÁS
A Java webalkalmazás gyakorlatilag egy HTML weboldal, melynek tartalma dinamikusan, valós időben generált, a felhasználó kéréseinek, utasításainak megfelelően.
Forrás: tervezők által létrehozott tartalom
V.
3. ábra: A webalkalmazás működése
A DAT BÁZIS
Az alkalmazás a Firebird 1.5 adatbázist használja. Elődje az InterBase adatbázis-kezelő [11] rendszer, melyet Jim Starkey kezdett fejleszteni 1984-ben. Mérsékelt sikereket követően 2000-ben nyílt forráskódúvá tették, ekkor indult el a Firebird projekt.
Forrás: tervezők által létrehozott tartalom
Ahogyan az a fenti képen is látszik, a felhasználó először utasítást küld a webszerver felé. Ezt követően a webszerver SQL nyelven kommunikál a hozzárendelt adatbázissal, majd az adatbázisból visszaérkeznek a kért adatok a szerver felé. Ezt követően kerül generálásra a HTML weboldal, amit a felhasználó lát. A projektben a Java nyelvű Apache Tomcat webszerver [7] került felhasználásra. Első változatát James Duncan Davidson, Sun Microsystems alkalmazott készítette 1999-ben. Később nyílt forráskódúvá vált, legfrissebb stabil változata a 8.5-ös verziószámot viseli, de már elérhető a hamarosan érkező 9.0 tesztelői változata[8].
Több mint 20 éve használják tehát a Firebird [12] technológiáját, amely ez idő alatt rendkívül kifejletté és megbízhatóvá vált, mindeközben kiváló teljesítménye is megmaradt. Az adatbázis elhanyagolható karbantartást igényel, támogat minden ismertebb operációs rendszert. VI.
W EBALKALMAZÁS
A webalkalmazás fejlesztése PC-n történt, melyben egy Intel Core i7 4790K processzor, 16GB RAM, AMD Radeon R9 290X videókártya és SSD meghajtó dolgozik, teljesítménybeli problémák tehát nem adódtak. Amikor a felhasználó megnyitja a weboldalt, egy bejelentkező képernyő fogadja, hitelesítés nélkül nem érhető el semmilyen információs része a weboldalnak. Amennyiben a bejelentkezés sikertelen, a beviteli mezők kerete pirossá változik. 5. ábra: Hiba a bejelentkezés során
Jelen projektben a 8.0-ás változat működik. Többféle technológiával is készíthető webalkalmazás, a projekt során JSP technológia került alkalmazásra. Segítségével olyan webalkalmazás készíthető, mely az megtekintő eszköz kijelzőjének méretéhez igazodva,
Forrás: tervezők által létrehozott tartalom
Jelenleg egyetlen felhasználónév-jelszó párossal lehetséges a belépés, a cég vezetői egyelőre nem igényeltek különböző jogosultságokhoz tartozó eltérő felhasználói felületet.
8. ábra: Részlet az árfolyam frissítő metódusból
Sikeres belépést követően a kezdőlapot láthatjuk. A webalkalmazás megjelenése alapvetően két részre tagolódik, a navigációs panelre, illetve a konkrét tartalomra. 6. ábra: Kezdőlap
Forrás: tervezők által létrehozott tartalom
A kezdőlapon látható egy, a cég telephelyét ábrázoló kép, egy kördiagram és egy kéttengelyű diagram. A kördiagram három szelete a három, pillanatnyilag legnagyobb forgalmat magáénak tudó céget mutatja meg, a cégnév alatt az éves összesített forgalom olvasható, illetve a részletek ikonra kattintva a weboldal forgalmat részletező részére kerülünk. A kéttengelyű tájékoztat.
diagram az
árfolyamok alakulásáról
Forrás: tervezők által létrehozott tartalom
A második, partnerlista menüpontban az adatbázisban megtalálható összes partnerekkel kapcsolatos alapvető információ látható. 9. ábra: Partnerlista
7. ábra: Árfolyam diagram
Forrás: tervezők által létrehozott tartalom
Forrás: tervezők által létrehozott tartalom
Az elmúlt tizenöt nap Euró és Amerikai Dollár árfolyamának alakulása látható. Sárga színnel az Euró látható, melynek értékskálája a baloldalon van, kékkel az USD van jelölve, jobb oldali értékskálával.
A táblázat a jQuery felhasználva készült.
A diagramhoz tartozik egy Java metódus, mely meghívódik minden egyes bejelentkezéskor. Működése során lekérdezi a napi árfolyamokat, ellenőrzi, hogy történt-e változás a korábbiakhoz képest. Amennyiben a diagram a legfrissebb értékeket tartalmazza, vagy esetlegesen valamilyen hiba folytán sikertelen a kapcsolódás az árfolyamokat biztosító forráshoz, úgy a metódus futása befejeződik, ellenkező esetben frissülnek az adatok.
DataTables
táblázat
plug-int
A bal felső sarkában található legördülő listában választható a megjeleníteni kívánt elemek száma. A jobb felső sarokban keresni lehet, ez a táblázat minden oszlopában keres, és dinamikusan működik, tehát már az els ő karakter bevitele után elkezdi szűkíteni a listát a megfelelő elemekre. Az alsó részen látható a megjelenített elemek és az összes elem száma, illetve az oldalválasztó rész. Bármelyik oszlop sorrendbe.
rendezhető
növekvő
vagy
csökkenő
10. ábra: Részlet a partnerlistát generáló JSP fájlból
12. ábra: Forgalom alakulása
Forrás: tervezők által létrehozott tartalom
Forrás: tervezők által létrehozott tartalom
A Forgalom menüpontra kattintva is mét egy táblázat található, oszlopai a partnerek forgalmát mutatják meg havi bontásban.
A weboldalon látható még készletlista. Itt táblázatba rendezve gyorsan elérhető az aktuális kés zlet. Természetesen a készletlista is folyamatosan frissül, a menüpontra rákattintva mindig az aktuális adatok láthatóak. A terméknév mellett látható a bruttó ár, az eladható készlet, illetve a tartalmazó raktár típusa. 13. ábra: Készlet
A táblázat alkalmazkodik az ablak méretéhez, ha vannak oszlopok, amik nem férnek ki, a zöld pluszjel megnyomásával láthatóvá válnak. 11. ábra: Részlet a forgalmat ábrázoló táblázatból
Forrás: tervezők által létrehozott tartalom
Az alkalmazásban megjeleníthető még a kintlévőségek listája. Itt láthatjuk a partner neve mellett a bizonylat számát, annak keltét, a fizetési határidőt és a tartozás pontos összegét.
Forrás: tervezők által létrehozott tartalom
A menüpontnak része még egy, a forgalom éves alakulását mutató diagram. Ennek segítségével könnyen látható a cég éves teljesítménye. A diagram adatai, ha szükséges, minden bejelentkezéskor frissülnek. A bejelentkezés gombra rányomva ugyanis lefut egy frissítő algoritmus, amely az adatbázisból lekéri a megfelelő adatokat, és azokat beírja a diagram adatfájljába. A kurzort a diagramterület megfelelő pontjaira irányítva a megjelenő buborékban látható az adott hónap összesített forgalmának pontos állását.
A weboldal következő menüpontja a forgási sebesség. A készletek forgási sebessége egy rendkívül fontos tényező a készletgazdálkodásban, és remek indikátor a vezetők számára is. Megmutatja, hogy a vállalat átlagos készletállománya hányszor, illetve hány nap alatt térül meg az árbevételből. Ennek ismeretében csökkenthetők a költségek. A forgási sebesség mutatóknak két változata van. A forgási sebesség kifejezhető fordulatokban, ahogyan az (1) képletnél látható, hogy egy adott időszakban hány alkalommal adta el az átlagkészletét a cég. (1) Á az árbevétel, Q pedig az átlagos készletállomány.
A forgási sebesség továbbá kifejezhető napokban is, ahogyan a (2) képletben látható, ez azt mutatja meg, hogy hány nap alatt adta el a készletet a cég, egyben arra is rámutat, hogy hány napig elég az átlagos készletszám.
Tf
(Q * l) /
15. ábra: Részlet az adatbázis forgási sebességet számoló eljárásából
(2)
l az időszak naptári napjainak száma. A magas forgási mutató legtöbbször hatékony gazdaságot jelez, de előfordulhat, hogy a folyamatosan alacsonyan álló készletállomány miatt tévesen mutat pozitív értéket. ltalánosan elmondható, hogy a gazdasági cél a fordulatok számának növelése, vagy a forgási idő csökkentése. 14. ábra: Készlet
Forrás: tervezők által létrehozott tartalom
A lekérdezés után a már előzetesen beírt dátum eltárolásra kerül, így azt csak akkor kell újra megadni, ha más időterjedelemben kell megjeleníteni a forgási sebességeket. Az oldal jobb felső sarkában lévő menüre kattintva választható a kijelentkezés opció, amely megszűnteti az adott munkamenetet és a bejelentkezési oldalra irányít vissza. 16. ábra: A projekt során felhasznált színek
Forrás: tervezők által létrehozott tartalom
A 13. ábrán látható az alkalmazás forgási sebességet visszaadó felülete. A két felső mezőben megadhatjuk a kívánt időszak kezdő- és végdátumát YYYY.MM.DD formátumban. Amennyiben helytelen bemenetet adunk meg, figyelmeztető üzenet jelenik meg. Alatta látható a termékválasztó ablak. Ennek tartalma mindig az aktuálisan az adatbázisban lévő termékek. Egyszerre akár több termék is kiválasztható, majd a Lekérdez gomb megnyomására az alatta lévő táblázatban megjelennek a megfelelő értékek.
Forrás: tervezők által létrehozott tartalom
VII.
ÖSSZEGZÉS
A webalkalmazás jelenlegi állapotában is alkalmas az Interline 95 Kft. vezetőinek kiszolgálására. Jelenlegi funkcióit közös konzultáció során terveztük meg. Az alkalmazásnak nem ez a végleges állapota, további funkciók, egyéb modulok kerülnek majd beépítésre. Azonban mindezek előtt a jelenlegi változat egy tesztelési folyamaton fog átmenni, melynek során megfigyelésre kerül, kellően hatékonyan működik-e a nagyméretű adathalmazokkal, a mobileszközökön megfelelő-e a
megjelenítés illetve szükséges -e bármilyen designbeli vagy ergonómiai változtatás. VIII. HIVATKOZÁSOK [1]
http://www.inter-line95.hu/ 2017.03.12. 17:44 [2] http://oracle.com.edgesuite.net/timeline/java/ 2017.05.16. 14:22. [3] Kishori Sharan, Beginning Java 8 Fundamentals, DOI: 10.1007/978-14302-6659-4 (January 2014) [4] http://study.com/cimages/multimages/16/9e4cf684-ee3a-4e26-8ccf0f98bb21825e_prog-languages.png 2017.03.17. 17:44 [5] Nagy Gusztáv, Java programozás, 2015 [6] https://www.tiobe.com/tiobe-index/ 2017.05.17 18:50 [7] Ning Jiang, Java Web application development course - MVC model based on AJAX and JSP+Servlet+JDBC, ISBN: 978-7-302-27225-0, (January 2012) [8] http://tomcat.apache.org/ 2017.04.12. 09:25. [9] G. Zambon, M. Sekler, Beginning JSP™ , JSF™ , and tomcat web development: From novice to professional, DOI:10.1007/978 -1-43020465-7, (January 2007) [10] Zaigham Mushtag,Ghulam Rasool, Balawal Shahzad, Detection of J2EE Patterns based on Customizable Features, DOI:10.14569/IJACSA.2017.080146 (January 2017) [11] Michael Kofler, T he definitive guide to MySQL, ISBN 978-1-43020669-9, 2014. [12] Firebird 2.5 Language Reference, (2017.03.25.).[Online] Available: https://www.firebirdsql.org/file/documentation/reference_manuals/fblan gref25-en/html/fblangref25.html
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk kkkkkkkkkkkkkkkkkkkkkkkkkkkk AAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAA