Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
Diplomaterv sorszáma: 362/2015
Kálna Gusztáv Miskolc 2015
Köszönetnyilvánítás Először is szeretnék köszönetet mondani konzulensemnek, Molnár Gábornak, aki hasznos tanácsokkal segítette szakdolgozatom elkészítését. Szeretném megköszönni a GDF Miskolci Konzultációs Központ valamennyi tanárának, valamint Dr. Czap Lászlónak a kitartó munkát. Köszönöm a segítséget és a türelmet családomnak, kollégáimnak, barátaimnak, akik ösztönöztek és támogattak tanulmányaim során. Köszönöm munkahelyem, az Albacomp Cégcsoport anyagi segítségét és főnökeim támogatását.
-1-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
Tartalomjegyzék I.
II.
III.
IV.
V.
VI.
Bevezetés
4
Témaválasztás indoklása
4
Feladatspecifikáció
5
Szakdolgozat célja
5
Felhasznált technológiák
6
HTML
6
CSS
7
Apache WEB szerver
9
PHP nyelv
11
JavaScript
13
Fejlesztő és futtató környezet kialakítása
15
Adatbázis szerver kialakítása
15
AppServ alkalmazáscsomag ismertetése
16
Appserv alkalmazáscsomag telepítése
17
Az adatbázis
19
Egy kis adatbázis történelem
19
A relációs adatbázis-kezelő nyelvek
21
A MySQL adatbázis szerver rövid bemutatása
23
Az adatbázis kezelése phpMyAdmin alkalmazással
25
A relációs adatmodellről néhány szóban
25
Használati esetek, szerepkörök
27
-2-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
VII.
VIII.
IX.
X.
Az adatbázis tervezése
34
Adatbázis létrehozása
38
A hibakódoló segéd-adatbázistáblák kialakítása
44
Az oldal kivitelezése
48
A honlap elkészítése
48
A navigációs menü
49
Hibabejelentés E-mail formájában
49
Hibajegy kezelő rendszer
50
Beléptetés
50
Jogosultság szintek megvalósítása
54
Hibajegy kezelő rendszer használata
57
Összefoglalás
61
Tesztelése
61
Cél teljesülésének vizsgálata
61
Továbbfejlesztés lehetőségei
62
Irodalomjegyzék
63
Internetes források
63
Ábrajegyzék
64
-3-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
I.
Bevezetés
Témaválasztás indoklása „Szilárdan hiszek abban, hogy az információk gyűjtésének, kezelésének, és használatának módja dönti majd el, hogy ki marad fenn és ki bukik el.” Idézet Bill Gates a digitális idegrendszerről szóló könyvéből
A „Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja” című szakdolgozat egy internetes adatbázisra épülő helpdesk szolgáltatást, és ennek elkészítéséhez szükséges fejlesztőeszközöket mutatja be. Az adatbázis-kezelőkkel támogatott dinamikus weblapok korunkban egyre nagyobb tért hódítanak az internet világában. Manapság szinte minden tartalom kiszolgáló az ingyenesektől a professzionális alkalmazásokig adatbázis motorra épül. Mivel egy országos hatáskörű számítástechnikai szervizben dolgozom, rálátásom van egy ilyen szervezet belső adminisztratív feladataira, és napi logisztikai
problémáira.
Jelenleg
egy
hihetetlenül
drága
szerviz
adminisztrációs adatbázis-kezelő rendszert használ a cégünk, melynél az éves jogdíjon kívül még felhasználószám függő licensz díjat is fizetni kell. Felmerült a kérdés, hogy lehetne-e egy ingyenesen használható elemekből fölépített, sokrétű, a teendőket megfelelően ellátni képes, célzottan a feladatokra fókuszáló, fölöslegesen rendszert foglaló és lassító elemeket nélkülöző,
hatékony
eszközökkel
ezeknek
helpdesk a
alkalmazást
feladatoknak
az
készíteni
elvégzéséhez
költségkímélő az
internet
lehetőségeinek felhasználásával? Szakdolgozatomban erre a kérdésre próbálok választ adni. Ha hiszünk a mértékadó szakértői jóslatban, akkor nem arról van szó, hogy a sokféle lehetőség közül az üzleti életben az Internet egy jó megoldást nyújt, hanem hosszú távon az egyetlen jó megoldást jelenti. „Azok a vállalatok, amelyek nem alakulnak át Internetes vállalkozásokká, megszűnnek” Andrew S. Grove
-4-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
II. Feladatspecifikáció Szakdolgozat célja: A szakdolgozatom célja egy ingyenes eszközökkel létrehozott internetes adminisztrációs, információs felület megvalósítása. HTML és CSS, elemek felhasználásával létrehozott weblap keretrendszerébe beágyazott, PHP programozási nyelv és MySQL adatbázis szerver használatával megvalósított adatbázis alapú online, hibajavítási folyamatokat adminisztráló, hibajegy kezelő rendszer elkészítése. Egyrészről a szakdolgozat szöveges része az alkalmazott technológiák ismertetése, adatbázis tervezés és az oldal működésének rövid bemutatása. Másrészről a gyakorlatban megvalósításra kerül egy weblap, mely a felület keretrendszerét, kinézetét meghatározza, elkészül egy adatbázis, adatbeviteli és lekérdező űrlapokkal, valamint kiegészítő szolgáltatásokkal a szakdolgozat tervben megadott paraméterek szerint. A felhasználóknak lehetőségük lesz:
a honlapon felhasználóként regisztrálni,
felhasználói jogosultságokat menedzselni,
informálódni cégadatokról, gyártói honlapokról,
segédprogramokat, tesztprogramokat fel- és letölteni,
eszköz specifikus drivereket fel- és letölteni,
hiba-bejelentéseket megtenni különféle formákban,
javításra leadott eszköz állapotáról informálódni,
jogosultság szintektől függően adatokat rögzíteni, módosítani,
lekérdezéseket végezni,
hibajegyekkel műveleteket végezni,
munkalapot, megrendelőt nyomtatni,
ügyfelek adataihoz hozzáférni, módosítani,
javítandó eszközök adatait rögzíteni és szükség szerint módosítani,
üzeneteket továbbítani egy fórumon keresztül,
e-mail küldeni a rendszergazdának,
egyéb fejlesztés során, vagy később, a tesztelés vagy próbaüzem alatt fölmerülő felhasználói igények is megvalósításra kerülhetnek.
-5-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
III. A felhasznált technológiák HTML A HyperText Markup Language szavak rövidítése, ami szabadon fordítva, leírónyelv, amit a weboldalak készítéséhez fejlesztettek ki. A HTML fájlok, szöveges állományok, amiket a legegyszerűbb szövegszerkesztővel is szerkeszthetünk. Ebben a fájlban találhatók a nyers szövegek és a szimbólumok, amik leírják a programnak, hogy jelenítse meg, hogyan dolgozza fel a fájl tartalmát. Ilyen program lehet böngésző vagy felolvasó program. 1990-óta használják a weben a honlapok megjelenítéséhez. Azóta úgynevezett 5 állomás volt a HTML "életében".Az első verzióban kialakult az alapvető szerkezet, a nyitó és záró címek " ", a fejléc, és a törzs, azaz a " ".A HTML 2 nem hozott túl sok változást, de innentől különül el a böngésző által szabályozott és a dokumentum szerkezetében létrehozott formázás. A HTML 2+ bevezette az űrlapokat, az űrlapon belüli többsoros szövegbevitelt, és a kiválasztható opciókat. Ez a verzió szabvány lett és a későbbi fejlesztések alapjául szolgált. A HTML3.2 verziótól van lehetőségünk Java appletek beágyazására, és scripteket is innentől használhatunk. valamint megjelent a "style" elem. A HTML 4.0 verziót 1997 nyarától tette hivatalos ajánlássá a W3C, megfelel az ISO 8879 előírásainak. Fejlesztésekor szem előtt tartották a csökkent képességűek érdekeit, a nemzetközi karakter készleteket, a jobbról balra olvasás támogatását. Tovább fejlesztették az űrlapok és táblázatok használhatóságát, a keretek használata hivatalossá vált. Gyarapodtak a formázóelemek, és elvetettek pár korábbi elemet. Az XHTML a jelenlegi és a jövőbeli
dokumentumtípusok,
és
modulok
családjába
tartozik,
amik
kiegészítik, kiterjesztik a HTML 4-et. Ez kompatibilis az XML és a HTML4-es böngészőkkel is. Számos előnye van a használatának. Szakdolgozatom a HTML 4.0 követelményei szerint készítettem el, mivel a gyakorlati képzés során ezt a verziót oktatták, és a feladat kivitelezéséhez a lehetőségei megfelelőek. A legtöbb böngésző e verzióval teljes mértékben kompatibilis.
-6-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
CSS A CSS-t a weblapok szerkesztői és olvasói egyaránt használhatják, hogy beállítsák vele a lapok megjelenéshez kapcsolódó elemeit. A tervezése során a legfontosabb szempont az volt, hogy elkülönítsék a dokumentumok struktúráját a dokumentum megjelenésétől. A CSS használata esetén elkülöníthető a dokumentum formája a képernyőn és a nyomtatási lapon. Az elemek stílusát különböző CSS szelektorokkal lehet kiválasztani:
Minden elemre – a * szelektor használatával
Az elem neve alapján – például minden „p” vagy „h2” HTML elemhez.
Leszármazottak alapján – például az olyan „a” elemekre, melyek egy „li” elem részei, a szelektor "li a"
class vagy id attribútumok alapján például class és/vagy #id a class="osztály" vagy id="azonosító" elemekhez
Ezeken kívül rendelkezésre áll több pszeudo-osztály, melyekkel további műveletekhez lehet stílust rendelni. Talán a legismertebb ezek közül a hover, melynek stílusa akkor lép érvénybe, mikor a hozzá tartozó elem aktiválódik, például fölé visszük az egeret. Hozzá lehet fűzni a szelektorokhoz is, például a :hover vagy #elementid:hover. További ismertebb pszeudo-osztályok a :first-line, a :visited vagy a :before. A CSS használatának legfontosabb előnyei:
Több lap vagy akár egy teljes webhely stílusait egy helyen lehet tárolni, így gyorsan és könnyen frissíthető
Különböző felhasználókhoz különböző stílusokat lehet rendelni: például könnyen olvasható, nyomtatható stílusok
A dokumentum mérete és komplexitása csökken, mivel nem tartalmaz információkat a megjelenítéshez
-7-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
A CSS információkat a lapokhoz több módon lehet megadni:
Szerzői stílus
külső CSS fájl a dokumentumból hivatkozva
beágyazva a dokumentumba
azonnali, felülírva az általános stílust egy konkrét esetre
Felhasználói stílus
egy helyi CSS fájl az összes dokumentumra, melyet a felhasználó
a
böngésző
beállításaiban
adhat
meg;
a
felhasználó megadhatja, hogy a szerző és a saját stílusai közül melyik legyen fontosabb
Kliens stílus
egy alapértelmezett stílus, melyet a kliens vagy a böngésző használ az elemekhez
A CSS a szabályokat a kapcsolódások alapján súlyozza, így mikor egyszerre több szabály is érvényes lehet egy elemre, akkor a legfontosabb szabályt alkalmazza. A stíluslap maga a stílust leíró szabályok sora. Minden szabályhoz tartozik egy szelektor és egy deklarációs szakasz. Ez utóbbi kapcsos
zárójelek
között
pontosvesszővel
elválasztott
deklarációkat
tartalmaz. A deklarációk formája a következő: a tulajdonság neve, egy kettőspont, majd az adott tulajdonság értéke. A CSS használatával a web fejlesztők ezeket az információkat áthelyezhetik a stíluslapra, mely így egy sokkal egyszerűbb, kevésbé redundáns HTML kódot eredményez. A HTML dokumentumok kisebbek lesznek, és mivel a web böngészők gyakran tárolják a CSS stíluslapokat a gyorsító tárban, ezért a hálózati forgalom is jelentősen csökkenhet. A CSS stílusinformációkat beépíthetjük a HTML dokumentumba, vagy csatolhatjuk külső hivatkozásként. Szakdolgozatomban például az oldalmenü kialakításánál alkalmaztam a CSS formázás elemeit. Az adatbázis kezelő résznél a kevés grafikus elem miatt nem tartottam indokoltnak. A fejlesztés során számomra áttekinthetőbb a hagyományos HTML formázás.
-8-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
Apache WEB szerver Az Apache HTTP Server (röviden Apache) nyílt forráskódú webkiszolgáló alkalmazás, szabad szoftver, mely kulcsfontosságú szerepet játszott a World Wide Web elterjedésében. A projekt célja olyan web-szerver program létrehozása, karbantartása, és fejlesztése, amely megfelel a gyorsan változó internet követelményeinek, biztonságos, üzleti, vállalati felhasználásra is megfelelő és szabadon használható. Robusztus, erőteljes és rugalmas webszerver, amely kompatibilis a HTTP/1.1 protokollal. Az Apache projekt koordinálását az Apache Software Foundation végzi. Néhány vezető és több száz fejlesztő van e projekt mögött. Többek között a következő operációs rendszerekhez készítették el: Unix, FreeBSD, Linux, Solaris, Novell NetWare, Mac OS X és Microsoft Windows. A névválasztás oka kettős. Egyrészt az állóképességükről híres apacs indiánoknak tiszteleg, akik az Egyesült Államok délnyugati részén élő őslakók. Másrészt pedig egy szójáték: „a patchy server”, ami arra utal, hogy a szervert eleinte a webmesterek által készített patchekkel frissítették. Az utóbbi azonban inkább egy szerencsés egybeesés eredménye lehet. A második verzióban nagyrészt az első verziót írták újra, de nagyobb hangsúlyt fektettek a modularizációra és a hordozhatósági réteg (az Apache Portable Runtime) kifejlesztésére. Újdonság volt a UNIX szálak bevezetése, az IPv6 támogatása és megújult az Apache API is. Az Apache 2 első alfáját 2000 márciusában adták ki, az általánosan elérhető változatát április 6-án 2002-ben. A 2.2 verzióban új, rugalmasabb hitelesítési API készült és továbbfejlődtek a cache és a proxy modulok. 1996 áprilisa óta az Apache az Interneten legszélesebb körben használt webkiszolgáló. 2005 novemberétől az Apache veszíteni kezdett a piaci részesedéséből, főleg a Microsoft IIS javára. Jelenleg a becslések szerint az Apache a világ webhelyeinek több mint 50%-át szolgálja ki. A virtual hosting segítségével egyetlen Apache installáció ki tud szolgálni több különböző webhelyet is.
-9-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
Az Apache hibaüzenetei konfigurálhatóak. Számos grafikus felhasználói felület (röviden GUI) támogatja a szerver könnyebb konfigurálását. Statikus és dinamikus weboldalak közzétételére egyaránt használják. Sok webes
alkalmazást
az
Apache
által
nyújtott
környezethez
és
szolgáltatásokhoz terveznek. Az Apache
alkotja a
alkalmazáscsomagban,
web-szerver komponenst a melynek
további
népszerű
komponensei
a
LAMP MySQL
adatbázisszerver és a PHP/Perl/Python programozási nyelvek mellett. A Ruby on Rails keretrendszer ajánlott platformja is az Apache a Phusion Passenger révén. Az Apache webszervert különböző kereskedelmi szoftvercsomagok (például az Oracle Database és az IBM WebSphere) részeként is terjesztik. A Mac OS X is magába foglalja az Apache-ot beépített web-szerverként. A Novell NetWare 6.5 alapértelmezett web-szervere is az Apache. Az Apache nem csak weboldalak, hanem egyéb tartalom publikálására is használható, például tetszőleges fájlok megosztására is. Ha egy felhasználó telepíti az Apache-ot a személyi számítógépén, akkor tetszőleges fájlokat meg tud azon keresztül osztani, ha bemásolja őket az Apache document root könyvtárába. Az Apache Szoftver Alapítvány szoftvereinek licence (az Apache Szoftver Licenc) megengedi a szoftver és módosított változatainak a nyílt és a zárt forráskódú terjesztését egyaránt. Ezen előnyök miatt a szakdolgozatom témáját képező weblap is ezen a roppant népszerű és rugalmas webkiszolgáló alkalmazáson fut.
-10-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
PHP nyelv A PHP eredetileg egy olyan makro készlet volt, amely személyes honlapok karbantartására készült. Erre utal a neve is: Personal Home Page Tools. A képességei bővülésével egy nagyméretű internetes adatbázis alapú alkalmazások működtetésére is használható programozási nyelvvé nőtte ki magát. A PHP első változatát Rasmund Lerdorf készítette el 1994-ben. Ezután a kód újraírásával és egy új modul, a Form Interpreter (Űrlapfeldolgozó) hozzáadásával megszületett a PHP/FI. A következő generáció a PHP 3. A PHP ennek a változatnak köszönhetően foglalta el helyét a legjobb kiszolgáló oldali nyelvek között, és így rohamosan gyarapodott a felhasználók tábora. Az elfoglalt pozícióját megszilárdította az Apache és MySQL támogatása. Az Apache-MySQL-PHP tökéletes párosítás. A PHP 4-es verziójában a következő újdonságokat vezették be:
Tömbökkel végzett műveletek megkönnyítését segítő tömbkezelő függvények és a tömbökön végrehajtandó ciklusok elkészítését segítő új foreach vezérlési szerkezet.
Belekerült a boolean logikai adattípus és két új művelet (=== és !==), melyekkel egy időben értékek és típusok egyezőségét, vagy nem egyezőségét vizsgálhatjuk.
Az előző változat hasznos szolgáltatása, hogy egy HTML űrlap elemeit el lehet látni tömbnevekkel, a 4-es változatban kibővült a többdimenziós tömbök támogatásával.
A PHP 4-es változata beépített támogatással rendelkezik a Java és XML nyelvekhez.
A PHP 4 utolsó megjelent verziója a 4.4.8 verziószámot viselte.
-11-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
Jelenleg a PHP 5 a nyelv egyetlen aktívan fejlesztett verziója. A hatos verzió bár már fejlesztés alatt áll, még nem jelent meg. A PHP nyelv szabad, de licence kimondja, hogy a származtatott termékek nem használhatják nevükben a PHP szót a
[email protected] írásos engedélye nélkül. Emiatt a PHP licenc nem csereszabatos a GNU General Public License-szel. A PHP tulajdonképpen kiszolgáló oldali programozási nyelv, amit jellemzően HTML oldalakon használnak. A hagyományos HTML lapokkal ellentétben azonban a kiszolgáló a PHP parancsokat nem küldi el az ügyfélnek, azokat a kiszolgáló oldalán a PHP értelmező dolgozza fel. A programjainkban lévő HTML elemek érintetlenül maradnak, de a PHP kódok
lefutnak.
A
kódok
végezhetnek
adatbázis
lekérdezéseket,
dinamikusan létrehozhatnak képeket, fájlokat olvashatnak és írhatnak, kapcsolatot létesíthetnek távoli kiszolgálókkal. A lehetőségek száma végtelen. A PHP kódok kimenete a megadott HTML elemekkel együtt kerül az ügyfélhez. Előnyei:
a HTML elemek és a programkódok elkülönítésével lehetőség nyílik különválasztani a különböző szakaszokat, ezáltal hatékonyabbá és rugalmasabbá válik az alkalmazások készítése.
Platformfüggetlenségének köszönhetően a PHP bármelyik operációs rendszeren futtatható, a kiszolgálóprogramok és adatbázis kezelők többségével képes együttműködni.
Szakdolgozatomban a PHP 5.2.3-as verzióját használom.
-12-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
JavaScript 1995 áprilisában a Netscape fektette le egy olyan programozási nyelv alapjait, amellyel a weboldalak interaktívabbakká tehetők. Felmerült, hogy a Java nyelvet használnák az oldalak szkriptelésére is, de a nyelvet túl professzionálisnak és nehéznek találták, ezért inkább egy könnyebben tanulható és alkalmazható szkriptnyelv kidolgozása mellett döntöttek. Így végül az új nyelv a Java szintaxisát örökölte, de szkriptnyelv lett. A kliensoldali szkriptnyelv eredetileg a LiveScript névre hallgatott, de a nyelv bejelentésekor (1995 decemberében) valószínűleg marketinges okokból JavaScriptként hivatkoztak rá. A JavaScript megjelenése a böngészőben hatalmas siker volt a web-fejlesztők körében, ugyanis lehetővé tette, hogy túlmenjenek a HTML határain, és egy kis programkóddal dinamikussá tegyék azt, mozgassák az elemeket, reagáljanak a felhasználói cselekvésekre, új ablakot nyissanak, megerősítő kérdést tegyenek fel, stb. A
Netscape
szabványosítási
cég
a
nyelv
kampányba
Számítógépgyártók
diverzifikálódását kezdett,
Szövetsége
végül
(European
megelőzendő
1997-ben Computer
az
aktív
Európai
Manufacturers
Association, ECMA) nevű cég szabványosította ECMAScript néven (ECMA262). A két piacvezető böngésző JavaScript támogatottsága, valamint a szabvány között nagy eltérések alakultak ki. A 90-es évek végére az Internet Explorer gyakorlatilag egyeduralkodó lett a böngészőpiacon egy olyan böngészővel, ami a szabványtól történeti okok miatt jelentősen eltért. Közben az Internet Explorer árnyékában fejlődésnek indult a böngészők új generációja, amely már a szabvány által lefektetett alapokra épített. Nem csak a szabványok támogatása volt ezekben az új böngészőkben a csábító, hanem azok az új funkciók, amelyek az egyre divatosabb és szélesebb körben elterjedő böngészést kényelmesebbé és hatékonyabbá tették. Ekkor született meg a Mozilla Firefox, az Opera, a Safari. 2005-ben marketing célból új nevet adtak annak a technológiának, amely által az oldalak tartalma részlegesen frissíthető a teljes oldal újratöltése nélkül.
-13-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
Az AJAX-nak elnevezett technológia nagy forradalmat indított a kliensoldali programozásban. Ennek köszönhetően ugyanis olyan felhasználói élmény nyújtható a weben, mint az asztali alkalmazásokban. A webes alkalmazások korábbi lassú, és szaggatott volta helyett folyamatos, villogásmentes és kényelmesen használható felületek jelentek meg. A folyamat eredményeképpen egyre több JavaScript kód jelent meg az alkalmazásokban, és egyre bonyolultabb dolgokat láttak el ezek a szkriptek. A webes közösség újra felfedezte a JavaScript nyelvet, és kialakította a modern JavaScript programozási mintákat. A folyamat mind a mai napig tart. Manapság a JavaScriptet a web univerzális futtató platformjának tartják. Éppen ezért a szakdolgozatomból sem akartam kihagyni, néhány apróbb funkciót JavaScript elemekkel valósítottam meg.
Névnap script az oldalmenü tetején
Felugró ablak méretezett megjelenítése
-14-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
IV. Fejlesztő és futtató környezet Adatbázis szerver kialakítása Mindenképpen saját szerveren szerettem volna futtatni a weblapot az adatbázis kezelővel együtt, hogy teljes körű rálátásom legyen minden beállításra a fejlesztés során. Mivel a munkahelyi szerverhez nem kaptam megfelelő hozzáférést, a munkahelyi router konfigurálásához meg végképp nem járultak hozzá főnökeim, ezért, mivel az otthoni WiFi routerem támogatja a
DMZ
(demilitarizált
zóna)
használatának
lehetőségét,
így
saját
„webszerver” beüzemelésébe fogtam. Minden szolgáltatást, ami a külső hálózat felhasználóit látja el, a DMZ-n belülre kell helyezni. A leggyakoribbak ezek közül a web-, mail-, ftp- és DNS-szerverek. Én is így állítottam be a routert. A kiszolgáló alkalmazáscsomagot a fejlesztés, tesztelés idejére egy korábban már elavultsága miatt használatból kivont, 600 MHz-es Pentium III processzorral ellátott HP deskpro mini PC-re telepítettem. A „szerver” 512 MB SDRAM-mal és egy 40 GB-os HDD-vel van fölszerelve. Fogyasztása mindössze 80W. Mivel az otthoni szerver fogyasztása meglehetősen érzékeny terület, tekintettel az áramszolgáltató áraira, valamint költeni sem nagyon akartam hardverre, ezért erre a relatíve kis fogyasztású mini asztali PC-re esett a választásom. Eredetileg valamelyik Linux disztribúcióval szerettem volna megvalósítani a projektet, de mivel ezen a gépen telepítve van egy jogtiszta Windows 2000 Professional operációsrendszer erre telepítettem föl a kiszolgáló programcsomagot. Eleinte csak próbának szántam ezt az összeállítást, de a programcsomag és a komponensek rugalmasságát dicséri, hogy ezen a szervernek csak igen nagy jóindulattal tekinthető hardveren is zökkenőmentesen, teljesen használható sebességgel tudja futtatni a weblapot és az adatbázisát kiszolgáló rutinokat. Ezért aztán így is maradt. A kiszolgáló hálózati csatolóját fix IP címre állítottam és beállítottam a routerben az IP címét DMZ-be. A szerverkémre telepítettem a Dyndns.hu szolgáltatás kliens programját, miután regisztráltam az oldalon, és máris dolgozik a saját WEB szerver.
-15-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
AppServ alkalmazáscsomag ismertetése A WEB szerver funkciókat az AppServ alkalmazáscsomaggal valósítom meg. Először
2001.
októberétőltől
kezdték
terjeszteni
az
Appserv
alkalmazáscsomagot, mely egy teljes funkciójú Apache, MySQL, PHP, phpMyAdmin telepítő csomag. Az AppServ csomag tartalma:
Apache
PHP
MySQL
phpMyAdmin
Az Appserv speciális beállításokkal kerül telepítésre. Az Apache beállítása a httpd.conf, a MySQL beállítása a my.ini, a PHP beállítása a php.ini állománnyal történik. Az Appserv biztosítani tudja, hogy bármelyik csomag olyan stabilan működik, mint a hivatalos Apache, PHP, MySQL kiadás. Az Appserv célja a könnyű telepítés. Egy perc alatt telepíthető a web szerver, illetve
az
adatbázis-szerver.
teljesítményű
web-szerverként
Néhány vagy
területen
az
Appserv
adatbázis-szerverként
komoly működik.
Mondhatjuk, hogy az alkalmazás csomag 100%-osan működő szervert biztosít. Töltsük le az Appserv programot a www.appservnetwork.com címről, válasszuk a 2.5.8 verziót. Jelenleg a 2.6.0 a legfrissebb verzió, de a szakdolgozat terv elfogadásakor ez még nem létezett. Mivel az alkalmazás fejlesztését már 2007-ben elkezdtem, nálam a 2.5.8-as verzió van telepítve. Nem indokolja semmi, hogy cseréljem az újabb verzióra, mivel hibátlanul működik az óta is.
-16-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
Appserv alkalmazáscsomag telepítése Duplán kattintsunk az appserv-win32-x.x.x.exe állományra az Appserv számítógépre történő telepítéséhez. License Agreement (Szabadalmi Szerződés): Az Appserv terjesztése GNU/GPL licenc alatt történik. El kell olvasnunk a szabadalmi egyezményt telepítés előtt. Ha egyetértünk a licenccel, a Next gombra kell kattintani a folytatáshoz. A Cancel gombbal megszakítható a telepités. Válasszuk ki a telepítés helyét: az Appserv alapértelmezés szerinti telepítési helye a c:\appserv. Ha meg akarjuk változtatni a telepítés cél helyét, kattintsunk a Browse gombra az Appserv célkönyvtárának megadásához, majd a Next gombra a következő lépéshez. Ha nem változtatunk, akkor a c:\appserv\www könyvtárba kell elhelyezni
a megjelenítendő honlap
kezdőlapját (index.htm, index.php, ...) Az alkotórészek kiválasztása: Alapértelmezés szerint az Appserv minden alkotórésze ki van választva telepítésre. Ha ezt meg akarjuk változtatni, a jelölő négyzetekre kattinthatunk.
Apache HTTP Server egy web szerver.
MySQL Database egy adatbázis szerver.
PHP Hypertext Preprocessor egy PHP program értelmező.
phpMyAdmin egy webes felületű MySQL adatbázis kezelő.
Ha elkészültünk, kattintsunk a Next gombra a következő lépéshez! Apache beállítás: Ezen a képernyőn adhatjuk meg az Apache paramétereit. Az Appserv telepítésének befejezése: A telepítő rákérdez az Apache és a MySQL azonnali indítására. Kattintsunk a Finish gombra a telepítés befejezéséhez és az Appserv használatának megkezdéséhez.
-17-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
A programozási munkákhoz a Notepad++ ingyenes forráskód-szerkesztőt használom, amely számos programozási nyelvet támogat a MS Windows környezetben. Jellemzői: kódkiemelés és kódblokkok egységbe zárása, felhasználó által állítható kódkiemelés, WYSIWYG felület, több dokumentum megnyitása, szabályos kifejezés keresése/cseréje, változtatható nézetek. Számos programozási nyelvet támogat. A mostanában elterjedt grafikus web-szerkesztő szoftvereket nem szeretem, mert számomra átláthatatlan, túlságosan elbonyolított kódot eredményeznek. Igaz ez így kicsit munkásabb, de megéri. A kisebb kód gyorsabb futást eredményez. A távfelügyeletet az ingyenesen használható Team Viewer programmal oldottam meg, így bárhonnan rálátok a szervergépre remote desktop szolgáltatással, csak egy internet kapcsolattal rendelkező gép kell hozzá. Természetesen tisztában vagyok a rendszer korlátaival, nyilvánvaló, hogy egy komoly adatbázis terhelését nem bírná el a hardver, viszont kitesztelni a funkciókat teljesen elegendőnek bizonyult. A működő rendszer jelenleg is megtekinthető és a GDF előírása szerint a szakdolgozat értékelése idején is megtekinthető lesz a http://szerverke.dyndns.hu/szervizhonlap linken. A telepített üres web-szerver felülete valahogy így néz ki első alkalommal megnyitás után a böngészőben:
1. ábra
-18-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
V. Az adatbázis Egy kis adatbázis történelem Az élet számos területén találhatunk olyan gyűjteményeket, amelyek bizonyos
szempontok
szerint
lettek
összeválogatva.
Ezeket
a
gyűjteményeket a szó klasszikus értelmében már adatbázisnak tekinthetjük, hiszen a való világ egy jól meghatározott részét gyűjtöttük össze és a gyűjtemény valamilyen rendszer szerint rendezve van. Ilyen gyűjtemény egy könyvtár, ahol nagymennyiségű könyvet találhatunk a művek fajtája, valamint a szerzők neve szerint rendezve. Ezek a papír alapú adatbázisok kezelés és feldolgozása nagy mennyiségű adat esetén már elég nehézkes és sok időt igénybevevő feladat volt, nem véletlenül a számítógépek széleskörű elterjedésekor e két funkció vált a legelterjedtebb műveletté. A számítógépek és az azokhoz kapcsolódó mágneses tárolók megjelenését követően hamarosan egy szűk kör számára elérhetőek lettek az egyetemek és a kutatóintézetek által kifejlesztett különböző adatfeldolgozó rendszerek. Ezek a rendszerek a ’60-as évek második feléig jobbára csak egyedi állományokat voltak képesek kezelni, amely azt eredményezte, hogy:
egy adott programmal csak adott adatállományt lehetet kezelni,
egy adatállományt csak egy adott kezelőprogrammal lehetett elérni, emiatt meg kell tanulni az adott kezelő nyelvet,
gyakorlatilag nem volt adatvédelem,
az adatokhoz egy időben történő hozzáférés nem megoldott.
Ezen a problémák megoldására tett javaslatot 1971-ben a DTBG (Data Base Task Group) csoport által készített jelentés, amelytől ténylegesen számítjuk az adatbázis-kezelés fogalmát.
-19-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
A jelentés javaslata szerint a jövő adatbáziskezelő-rendszereinek a következő tulajdonságokkal kell rendelkeznie:
egy adatbázis-kezelő szoftvernek több összetett logikai adatrendszereket kell tudni kezelnie egyszerre, a redundancia feldolgozás gyorsítása érdekében megengedett akkor, ha kézben lehet tartani.
konkurens hozzáférést kell biztosítania az adatbázis-kezelő rendszernek.
többféle elérési módot kell támogatnia egy időben, támogasson többféle programozási nyelvet. Lehessen programozni.
támogassa az emberi logikát szemben a gépivel, a jogosultság szempontjából lényeges, hogy egy adatmodell szemléletet valósítson meg - nézeteket lehessen kezelni. Egy felhasználó csoport csak bizonyos adatokhoz féljen hozzá.
visszaállítható legyen, ha sérül az adat, ha inkonzisztens állapotba kerül a rendszer, akkor azt lehessen felismerni, és helyreállítani.
adat-program függetlenség logikai és fizikai szinten.
logikai szinten: Ha az adatok szerkezete megváltozik, ne kelljen a program szerkezetét megváltoztatni.
fizikai szinten: Egy adott program tudja feldolgozni az adathalmazt függetlenül attól, hogy hol van fizikailag.
-20-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
A relációs adatbázis-kezelő nyelvek A relációs adatmodellre 1970-től kezdve számos adatbázis-kezelő nyelvet dolgoztak ki. A korai próbálkozások közül egyetlen rendszer sem terjedt el igazán. Voltak olyan vélemények, még a hetvenes évek végén is, hogy a relációs adatmodellre nem is lehet "gazdaságos" kezelőrendszert írni. Nagy méretek esetén még az akkor "igen nagy" számítógépek is kicsinek bizonyultak.
Az egyik ilyen rendszer az ISBL (Information System Base Language) volt, a hetvenes éves közepén készült el az IBM-nél Angliában. Az ISBL-lel egyidőben írták meg a SQUARE-nyelv fordítóprogramját, majd erre alapozva dolgozták ki SEQUEL nyelvet 1974-ben szintén az IBM-nél illetve az SQL-t 1976-ban. Később létrehozták a QUEL lekérdező nyelvet (Kalifornia Egyetem, Berkeley), ami már UNIX operációs rendszer alatt működött. Megemlítendők még a QBE, AWK, SIDA nyelvek a 70-es évek második feléből. Ezek az adatbázis-kezelő rendszerek azonban nem terjedlek el; sokan azt "jósolták" ebben az időben, hogy a relációs adatmodellnek "bealkonyult". Senki sem számított arra, hogy éppen a PC-k megjelenése hozza igazán divatba a relációs adatmodellt. 1982-ben az Ashton-Tate cég létrehozta a dBase II., majd 1984-ben a dBase III. relációs adatbázis-kezelő nyelvet. Majd jött a dBase III+, később a FoxBase, CLIPPER, PARADOX és sok más PC- re írt relációs nyelv. 1982-ben megszületett nagygépekre az IBM-nél az SQL/DB rendszer, amelyet az első relációs, kereskedelmi forgalomba kerülő nagygépes adatbázis-kezelő rendszernek tekintenek. 1983-ban az IBM piacra dobta az SQL-re alapozott DB2 nevű adatbázis-kezelő rendszert, amelynek alapján az ANSI (az Amerikai Szabványügyi Hivatal) 1986-ban szabványosította az SQL (Structured Query Language = strukturált lekérdező nyelv) nyelvet. A szabványosítás jelentős fordulatot hozott a relációs adatbázis-kezelő
-21-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
nyelvek területén. Ugyan a dBase-t is relációs nyelvnek tekintjük, de nem teljességgel valósították meg benne a Codd által kimondott elveket, ill. a relációs algebra műveleteit. Sokan azt mondják, hogy kár volt ilyen korán szabványosítani az SQL-t, mert nagyon megmerevítette a relációs adatbáziskezelő rendszereket. Több cég a szabványosítás után néhány évvel már feszegette a szabvány kereteit, ami az SQL-92 szabványhoz vezetett. Az SQL-re alapozva számos adatbázis-kezelő rendszert létrehoztak. Ezek a rendszerek az SQL-ből úgy keletkeztek, hogy "valóságos" programnyelvi elemekkel bővítették az SQL-t. Napjainkban több mint 50 SQL bázisú adatbázis-kezelő
nyelv
létezik
a
PC-ktől
kezdve
az
egészen
nagyszámítógépes rendszerekig. A nagygépes nyelvek között a 90-es évek elején jelentősen felfutott a már említett DB2. A PC-kre az Ashton-Tate cég új dBase-t, a dBase IV-et fejlesztette ki 1988-ban, amely teljesen SQL- alapú. Ugyancsak SQL-alapúak az INFORMIX, INGRES, ORACLE, FOCUS adatbázis-kezelő rendszerek, amelyek ma sok más nyelvvel együtt a 4GL-ek, negyedik generációs nyelvek nagy családját alkotják. Bizonyára igaz, hogy a sok adatbázis-kezelő rendszer közötti verseny a felhasználók javát is szolgálja, de az is igaz, hogy eligazodni közöttük szinte lehetetlen feladat. A magukat 4GL-lé kinőtt adatbázis-kezelő nyelvek óriási méretűek. A szakdolgozatom tárgyát képező alkalmazás és adatbázis kiszolgálására a MySQL rendszert választottam. A MySQL jelenleg az ORACLE cég projektje, a világon legkedveltebb ingyenes adatbázis–kezelő rendszer. A következő oldalakon ismertetem bővebben.
-22-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
A MySQL adatbázis szerver rövid bemutatása A MySQL egy igazi több felhasználós SQL adatbázis-szerver. Napjaink legelterjedtebb és szabványos adatbázis nyelve az SQL ( Structured Query Language –Strukturált lekérdező nyelv) világszerte. A MySQL rendszer szerver/kliens felépítésű. Legfőbb előnye a gyorsaság, robosztusság és a viszonylag könnyű használat. 1996-ban kezdték fejleszteni a T.c.X cégnél. Eredetileg web alkalmazások létrehozására tervezték, ahol az adatbázisoktól elvárt legfontosabb tulajdonságok a gyorsaság, méretezhetőség és az egyszerű felügyelhetőség. E célok elérése érdekében néhány alapvető relációs adatbázis- tulajdonság háttérbe szorult, de a tranzakció kezelés, az idegen kulcsok, a belső lekérdezések mind részei a MySQL fejlesztési terveinek. Jelenleg a világon a legelterjedtebben használt nyílt forrású adatbázis kezelő, több millió felhasználóval, az egyéni fejlesztőktől az olyan nagy vállalatokig, amelyek nagy forgalmú oldalak adatbázismotorjaként alkalmazzák. Az alkalmazásfejlesztők azért használják előszeretettel, mert nagyon gyors és messze nem olyan összetett, mint az Oracle-hez hasonló nagy rendszerek, ráadásul súlyos dollár ezreket takaríthatunk meg az Oracle-hez képest. Nem teljesen szabad szoftver. Licensz politikájuk viszont megengedi ingyenes használatát sok platformon és szituációban, így az esetek nagy részében szabadon felhasználható. A MySQL hibaüzeneteinek nagy része már le van fordítva magyar nyelvre is.
-23-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
Licenszet akkor kell vásárolnunk, ha: •
A MySQL szervert egy másik termékbe, alkalmazásba vagy szolgáltatásba beágyazott kiszolgálóként értékesítjük.
•
Olyan kereskedelmi szoftvert fejlesztünk, amelynek működéséhez szükséges a MySQL és a programunk részeként, hozzácsomagolva szállítjuk.
•
A nélkül terjesztjük a MySQL-t, hogy a GNU Public License-ben meghatározott módon biztosítanánk a forráskódot is.
Főbb jellemzők, amik vonzóvá teszik a MySQL-t a fejlesztők számára: •
Gyorsaság
•
Hordozhatóság
•
Bármely más nyelven írt felület illeszthetősége
•
Kedvező ár.
A MySQL adatbázis-kezelővel a kapcsolattartás történhet ügyfélfelületen vagy egy programozói felületen keresztül. Számos népszerű programozási nyelv rendelkezik beépített függvényekkel kifejezetten a MySQL-lel történő kapcsolattartás céljára, de az ipari szabvánnyá vált SQL nyelven kiadott parancsokkal is folytathatunk párbeszédet a kiszolgálóval. Az SQL a relációs adatbázisokkal való kapcsolatteremtés elterjedt nyelve. Minden parancs, amit a MySQL-nek kiadunk, e nyelv szabályait kell kövesse. A 70-es évek elején az IBM kutatóközpontjában megalkották ezt a nyelvet. 1986-ban, majd az Amerikai Szabványügyi Hivatal felvette az ipari szabványok közé. Az SQL szabványos volta nagymértékben hozzájárul a fejlesztett alkalmazásunk rendszerek közötti hordozhatóságához. Az adatbázis esetünkben a MySQL kiszolgálón fut.
-24-
Database
Version
5.0.45
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
Az adatbázis kezelése phpMyAdmin alkalmazással A phpMyAdmin egy nyílt forrású eszköz, amit PHP-ban írtak a MySQL menedzselésére az interneten keresztül. Jelenleg a 4.2.8-as verziónál tart a fejlesztés. Képes készíteni és eldobni adatbázisokat, készíteni, eldobni, módosítani táblákat, törölni, módosítani, hozzáadni mezőket, SQL parancsokat futtatni és a mezőkön kulcsokat kezelni. Képes az egész MySQL szerver kezelésére. A phpMyAdmin az egyik legnépszerűbb PHP- alkalmazás és MYSQL - kezelő eszköz, nagy felhasználói és közreműködői közösséggel. Sok
Linux-disztribúció
is
tartalmazza.
A
növekvő
számú
javítások
koordinálása céljából három fejlesztőből, Olivier Müller, Marc Delisle és Loic Chapeaux, álló csoport bejegyezte a The phpMyAdmin Project projektet a SourceForge.net-en, és 2001-ben átvette a fejlesztést. Mivel az általam telepített Appserv 2.5.8 alkalmazáscsomag részét képezi a phpMyAdmin alkalmazás, ezért fontosnak tartottam egy oldal erejéig röviden ismertetni, mint a MySQL adatbázis-kezelő beállítása üzemeltetése során használt legfontosabb segédeszközt. Az alkalmazáscsomaggal a 2.10.2-es verziót kapjuk, de a célnak ez is teljes mértékben megfelelő. Frissebb verzióval nem kísérleteztem, mivel a fórumokon azt írják többen, hogy az eredeti komponensekkel telepített Appserv csomag a legüzembiztosabb. Az alkalmazás honlapja: http://www.phpmyadmin.net/home_page/index.php A relációs adatmodellről néhány szóban A különféle adatbázis-kezelő rendszerek közül a XX. század végére a relációs adatbázis-rendszerek szinte egyeduralkodóvá váltak a világban, szinte teljesen kiszorítva a piacról a különböző hálós- és hierarchikus adatmodelleken alapuló adatbázisrendszereket.
-25-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
A legelterjedtebb relációs adatbázis-kezelő rendszerek az Oracle, a MySQL, a SYSBAS, INGRES, MS SQL, INFORMIX. A relációs adatbázis-kezelés alapjait még 1971-ben a Codd által megalkotott relációs adatmodell elmélet alapozta meg, amelynek hatására létrejöttek a relációs adatbázis kezelő rendszerek. A modell pontos leírása bonyolult matematikai módszereket történt meg. Az adatbázis kezelésben a '70-es évek végétől élesen szétvált a logikai és a fizikai modell, melynek következtében számítógép rendszer független
módon
lehet
adatbázis
sémákat
készíteni.
A
szétválás
következtében természetesen a relációs adatbázis kezelésben is elkülönült ez a két modellezési szint. Logikai szinten a relációk táblákban jelennek meg. Egy adatbázison belül a tábláknak
egyedi
nevük
van.
A
táblák
oszlopait
attribútumoknak
(oszlopoknak) nevezzük. Az attribútumok sorrendje kötött. Az attribútumok értékeit egy úgynevezett attribútum-halmazból veheti fel és értékeinek eleminek kell lenni. A tábla soraiban helyezkednek el a rekordok. A modell nem engedi meg, hogy két rekord megegyezzen! Egy rekord adott attribútumának értékét a mező értékének nevezzük. A tábla sorait tetszőlegesen megcserélhetjük, a sorok száma elméletileg nem kötött, de a számítógépes háttértároló nagysága, valamint az adatbázis kezelő rendszer fajtája azért határt szabhat. Az adatbázis táblákból, valamint a táblák közötti kapcsolatból épül fel. A kapcsolat ez egyik tábla elődleges kulcsa és a másik tábla külső kulcsa között jön lére, mégpedig azzal a megszorítással, hogy a külső kulcs (idegen kulcs) valamennyi értékének szerepelnie kell az elsődleges kulcsok között, vagy NULL értékű kell lennie. A rekordok (sorok) egyediségét az elsődleges kulcs biztosítja, mely akár állhat egy attribútumból (pl.: sorszám) is, vagy állhat több attribútumból (pl.: név, anyja neve, születési idő) is, a lényeg az, hogy legyen. Az elsődleges kulcs nem vehet fel NULL értéket sem. Fizikai szinten az adatbázis valamilyen állományszerkezetben van tárolva, melynek kezelése az operációs rendszer feladata.
-26-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
VI. Használati esetek, szerepkörök Használati esetek A tervezett weblapon és adatbázis kezelő alkalmazásban a következő használati esetek előfordulásával számolok. GYIK
Gyártók
Hasznos
Információk
Hiba e-mail
Regisztráció
Bejelentkezés
Vendégkönyv
Letöltés
Admin mail
Hibabejelentés
Lekérdezés
Kijelentkezés
Profilváltás
Új felhasználó
Jelszó mod.
Ügyfél rögz.
Eszköz rögz.
Ügyfél mod.
Eszköz mod.
Új hibajegy
Munkavégzés
Megrendelő
Munkalap
WEB bejelent
Eszközátvétel
Keresés
Feltöltés
Munkatársak
Kirendeltségek
Adatbázis acc.
2. ábra GYIK: a látogató a gyakran ismételt kérdésekre, problémákra kaphat választ ezen az oldalon. Gyártók: a látogató böngészheti a szervizzel kapcsolatban álló gyártók honlapjait tájékozódás céljából. Hasznos: a látogató böngészheti a szerviz által ajánlott hasznos oldalakat. Információk: a látogató megtekintheti a szerviz tevékenységével összefüggő elérhetőségeket, információkat.
-27-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
Hiba e-mail: a látogató regisztráció nélkül is küldhet hibabejelentést e-mail formájában. Regisztráció: jelszó alapú hitelesítés, a rendszer tárolja a felhasználó adatait, alapesetben ügyfél szerepkört biztosít. Bejelentkezés: a bejelentkezés a regisztrációt követően a rendszerben tárolt felhasználónévvel és jelszóval történhet sikeres hitelesítés után. Vendégkönyv: a látogató véleményezheti a honlapot, beírhatja esetleges pozitív, vagy negatív élményeit a szerviztevékenységgel kapcsolatban. Letöltés: a felhasználó letölthet a honlapról a felhasználók számára tematikusan elhelyezett segédanyagokat, tesztprogramokat, leírásokat. Admin e-mail: a felhasználó e-mail formájában üzenetet küldhet a rendszergazdának, különböző témamegjelöléssel, úgymint segítségnyújtás kérése, hitelesítési és jelszó problémák, stb. Hibabejelentés: a hitelesített felhasználó a WEB felületen jogosult hibabejelentést megtenni a szerviz felé. A hibajegy nem aktiválódik automatikusan, csak ellenőrzés után a személyzet aktiválja. Lekérdezés: a felhasználó a hibajavítás folyamatáról információt nyerhet ki az adatbázisból a hibajegy, illetve a logisztikai azonosító ismerete esetén. Kijelentkezés: a munka végeztével, vagy ideiglenes félbeszakítása esetén a felületről ki lehet jelentkezni. Profilváltás:
a
felhasználó,
amennyiben
több
féle
jogosultsággal
rendelkezik, átjelentkezhet a másik profiljára. Új felhasználó: a felhasználó létrehozhat új felhasználót, ha erre igény merül föl. Például egy cégnél van egy kapcsolattartó, de szabadság esetén más is rá tudjon nézni a hibajegyek státuszára.
-28-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
Jelszómódosítás: a felhasználó módosíthatja a jelszavát az eredeti jelszó ismeretében. Ügyfél rögzítése: a felhasználó az ügyfél adatokat ezen a felületen tudja rögzíteni. Eszköz rögzítése: a felhasználó az eszköz adatokat ezen a felületen tudja rögzíteni. Ügyfél módosítása: a felhasználó az ügyfél adatokat ezen a felületen tudja módosítani. Eszköz módosítása: a felhasználó az eszköz adatokat ezen a felületen tudja módosítani. Új hibajegy: a felhasználó a hibajegyeket ezen a felületen tudja rögzíteni. Munkavégzés: a felhasználó a hibajegyeket ezen a felületen tudja módosítani. elvégzett munkafázisokat bevinni az adatbázisba. Munkalap: a felhasználó az elvégzett munkákról munkalapot tud nyomtatni. Megrendelő: a felhasználó az a javításra átvett eszközökről megrendelőt (átvételi elismervényt) tud nyomtatni. WEB bejelentés: a felhasználó a WEB felületen megtett hibabejelentéseket itt tudja aktiválni és az illetékes szervizkirendeltségek felé kiosztani. Eszközátvétel: a felhasználó az eszközátvétel során ezen az űrlapon keresztül egy folyamatban tudja rögzíteni a szükséges adatokat, kezdve a hibajelenséggel, folytatva az ügyfél és eszköz adatokkal és végül a megrendelő nyomtatásával. Keresés: a felhasználó különböző előre beállított feltételekkel tud az adatbázisban keresni a szükséges adatokra. Feltöltés: a felhasználó a honlap letöltő oldalára jogosult dokumentumokat, segédanyagokat, használati utasításokat, tesztprogramokat elhelyezni.
-29-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
Munkatársak: a felhasználó új munkatársakat rögzíthet az adatbázisba, lehetősége van a regisztrált felhasználó előléptetésére szervizes, helpdesk vagy vezető jogosultságú felhasználóvá, valamint ezek adatait módosítani tudja. Kirendeltségek: a felhasználó új szerviz-kirendeltségeket rögzíthet az adatbázisba, valamint ezek adatait módosítani tudja. Adatbázis acc.: a felhasználó az adatbázis karbantartását a phpMySQL felületen keresztül el tudja végezni. (adatbázis szintű jogosultság is szükséges) Az aktorok használati esetei „vendég” felhasználó használati esetei:
Regisztráció
Hiba e-mail
Vendégkönyv
Gyártók
GYIK
Hasznos
Információk
vendég
3. ábra A vendég internetes felhasználó, aki a portál oldalait böngészi, kereshet az információk között, használhatja a honlap regisztrációt nem igénylő funkcióit. Mivel ezekhez a használati esetekhez nem szükséges regisztrálni, értelemszerűen az összes további regisztrációhoz kötött aktor is örökli ezeket. „ügyfél” felhasználó használati esetei Az ügyfél felhasználó örökli a vendég felhasználó összes használati esetét. Ezen kívül a következő használati esetekkel kell tervezni az alkalmazást:
-30-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
vendég
Bejelentkezés
Hibabejelentés
Lekérdezés
Letöltés
Admin mail
Új felhasználó
Jelszó mod.
ügyfél
Felh. váltás
4. ábra Az ügyfél aktor létrehozásának a célja az ügyfél felhasználók egyértelmű elkülönítése a vendég felhasználótól. Regisztrációt és hitelesített bejelentkezést igényel. „szervizes” felhasználó használati esetei A szervizes felhasználó örökli az ügyfél felhasználó összes használati esetét. Ezen kívül a következő használati esetekkel kell tervezni az alkalmazást:
ügyfél
Ügyfél rögz.
Eszköz rögz.
Új hibajegy
Munka
Munkalap
szervizes 5. ábra
-31-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
A szervizes aktor létrehozásának célja, hogy a munkafelületen egyedi felhasználói fiókokkal tudjanak a munkatársak a felmerülő feladatoknak megfelelő adatmódosításokat elvégezni a hibajegy adatbázis kezelő alkalmazásban. Az, hogy mindenki saját profiljával dolgozik, teszi lehetővé, hogy a folyamatok részfeladatait személyekhez rendelve tudom naplózni, és probléma esetén visszakereshető a részfeladat végző személye. „helpdesk” felhasználó használati esetei A helpdesk felhasználó örökli a szervizes aktor összes használati esetét. Ezen kívül a következő használati esetekkel kell tervezni az alkalmazást:
szervizes Eszköz mod.
Ügyfél mod..
WEB bejelent.
Eszköz átvétel
Megrendelő
Ügyfél mod.
Eszköz mod.
Feltöltés
helpdesk 6. ábra A helpdesk aktor létrehozásának célja, hogy a munkafelületen azokat a használati eseteket, ami a szervizeshez képest bővebb ügyfélszolgálati feladatok végzéséhez szükségesek, egy magasabb jogosultságú eltérő aktorhoz
rendeljük.
A
helpdeszk
munkatárs
feladatköre
elsősorban
adminisztratív munkát jelent, csomagküldést, ügyfél kapcsolatokat, de az eszközátvétel miatt szükséges hozzáférést biztosítani a rendszerhez.
-32-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
A vezető kizárólagos dedikált funkciókkal rendelkező aktor, de az alatta lévő szintek funkcióival is rendelkezik az ellenőrzés lehetősége miatt. Ez leg egyszerűbben úgy oldható meg, hogy örökli a helpdesk szerepkör használati eseteit.
Munkatársak.
Kirendeltségek
7. ábra
vezető
helpdesk
A DBadmin a rendszer lehetőségeinek teljes palettájával rendelkező szerepkör. A vezető aktor használati eseteit örökli. Az adatbázis kezelő phpMyAdmin alkalmazáson keresztül az adatbázis karbantartását végezheti.
Adatbázis acc.
8. ábra
DBadmin
-33-
vezető
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
VII. Az adatbázis tervezése Adatbázis logikai tervezése, normalizálás, normálformák A számítógépen tárolni kívánt adatbázisunk elkészítésének ez az első és talán
a
legfontosabb
része.
Fontosságát
az
adja,
hogy
az
elkövetkezendőkben megtervezett adatbázisunkhoz kell majd megírni a különböző programokat, ebből az adatbázisból kell majd kinyernünk értékes információkat és nem utolsó sorban ezt az adatbázist kell karbantartanunk. A logikai tervezés fő feladata a redundancia, azaz egy adat több helyen történő tárolásának lehetősségekhez mérten minimális szintre csökkentése, oly módon, hogy ez a sebesség és egyéb elvárt követelmények rovására ne menjen. A redundancia megszüntetése elsősorban a karbantartási műveletek során nyújt segítséget és feltétele annak, hogy az adatbázisunk ne kerüljön inkonzisztens állapotba, melynek eredményeként egy lekérdezés során hamis eredményeket kaphatunk. A redundancia megszüntetésének módja a normalizálás. A normalizálás során célszerű azt a harmadik normálforma eléréséig folytatni. A szakdolgozatom témája egy számítógépeket javító szerviz hibajegy kezelő adatbázisának létrehozása, így ezeken az adatokon próbálom bemutatni a folyamatot.
-34-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
A felmerülő adatok ömlesztve a következők:
felhasználó neve
rendelt alkatrész
felhasználó nick neve
felhasznált alkatrész
felhasználó email
javítás menete
felhasználó címe
fizetendő összeg
jelszó
megjegyzések
belépés ideje
egyéb hibajegy információk
jogosultság szint
műveletek
szerviz-kirendeltség
felelős
egyéb felhasználó információk
művelet időpontja
ügyfél neve
módosító
kapcsolattartó személy
eszköz gyártója
ügyfél címe
eszköz megnevezése
irányító szám
telefonszámok
gyári szám
e-mail címek
product number
rögzítés ideje
garancia státusza
egyéb ügyfél információk
tartozékok
hiba bejelentés státusza
egyéb eszköz információk
hiba állapot státusza
javító szerviz kirendeltség
hibajegy azonosító
logisztikai azonosító
vezető
bejelentés ideje
szerviz címe
elkészülés ideje
szerviz telefonszáma
hiba állapota
szerviz e-mail címe
hiba státusza
egyéb szerviz információ
hibajelenség (kódolva)
fejlesztés során felmerülő
hibajeggyel történő műveletek
hiba behatárolása
(kódolva)
neve
igények
A szükséges adatokat úgy célszerű összeállítani, hogy szerepeljen benne az összes olyan adat, amely a kimenetnél fontos lehet, viszont ne szerepeljenek benne olyanok, amelyek más attribútumokból származtathatók Látszólag ez egy nagyon egyszerű feladatnak tűnik, hiszen egy tábla létrehozásával megoldható lenne a probléma, csakhogy a relációs adatbázis elméletével ellentétes, hogy egy attribútum érték ne elemi legyen.
-35-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
Érdemes az adatokat entitások szerint csoportosítva külön táblákba rendezni, ahol a tábla nevei az entitások nevei lesznek. Az aláhúzás a tábla elsődleges kulcsát jelöli, mely egyedi kell, hogy legyen, a szaggatott aláhúzás a külső (idegen) kulcs, a szürke háttérben a nagybetűs szöveg a tábla nevét jelzi. Ha egy táblában az attribútumok értékei valamennyi esetben elemiek, akkor azt mondjuk, hogy az adatbázis séma 1NF (első normálformájú). A megvalósítás során az eredeti adatokból több táblázatot készítek úgy, hogy az ismétlődő attribútumokat külön táblába teszem. Abban az esetben, ha az elsődleges kulcs egyszerű, akkor az adatbázis séma 2NF-ben van, ha nem, nekünk kell megszüntetni a részleges függőségeket. Részleges függőség akkor áll fenn, ha az összetett kulcs egyik tagjától függ valamelyik leíró attribútum. A részleges függőséget, úgy tudjuk megszüntetni, hogy megszüntetjük a táblák egymásba ágyazását és ezzel új táblákat hozunk létre. Természetesen az adatbázis sémánknak ebben az esetben is 1NF-ben is kell lennie. Nem alkalmazok összetett kulcsokat, így ezzel nincs dolgom. A következő lépés, hogy a 2NF-ben lévő sémánkat 3NF-ra bontjuk, azaz megszüntetjük benne a tranzitív függőséget. A tranzitív függőség akkor áll fenn, ha az egyik leíró attribútumtól függ egy másik leíró attribútum. Ha egy séma 2NF-ben van és nincs benne tranzitív függőség, akkor 3NF-ben is van. Ez szintén új táblák létrehozásával oldható meg, mégpedig, úgy hogy az egymástól függő attribútumokat kiemeljük a táblából és tetszőleges, de egyedi attribútumát kijelöljük elsődleges kulcsnak. Nagyon fontos, hogy a relációs adatmodell nem kezeli az úgynevezett N:M kapcsolatot, amelyet az adatbázis séma 3NF-ba hozásával a normalizálás automatikusan megszüntet.
-36-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
Az N:M típusú kapcsolat a normalizálás során átalakul 2 darab 1:N típusú kapcsolattá. A relációs adatbázis-kezelők megkövetelik 1NF sémát, nem normalizált táblázatokat nem tudnak kezelni. A következő táblázatban látható, hogy a megvalósítás során az eredetileg fölvázolt adathalmazból hat tábla keletkezett, mégpedig úgy, hogy az ismétlődő attribútum értékekből külön táblát készítettem. Az újonnan készített táblákban az elsődleges kulcsok és a hibajegy valamint a muveletek és felhasznalo táblában elhelyezett külső kulcsok együttesen biztosítják, hogy az eredeti táblában lévő nem elemi attribútumok és kapcsolati viszonyok visszaállíthatóak legyenek adatvesztés nélkül. Ugyfel
Felhasznalo
Hibajegy
Eszkoz
Muveletek
Kirendeltseg
ugyfel_id
Felh-nev
hibajegy_id
eszkoz_id
muvelet_id
kirendeltseg_nev
ugyfel_nev
teljes_nev
log_azonosito
gyarto
hibajegy_id
vezeto
kapcsolattarto
email
bejelent_ido
gyariszam
muvelet
cím
ugyfel_cim
cím
kesz_datum
product_num
datum_ido
telefon
iranyito_szam
jelszo
hiba_allapot
megnev_kod
felelos
email
telefon_1
belepes_ideje
hiba_status
garancia
modosito
megjegyzes
telefon_2
jog_szint
ugyfel_id
tartozek
email
telefon
eszkoz_id
megjegyzes
rogzites_ido
kirendeltseg_nev
kirendeltseg_nev
egyeb_info
megjegyzes
spec_info
Felh_nev
egyeb_info
egyeb_info
hibajel_kod hiba_behatarolas rendelt_alkatresz felh_alkatresz javitas_menete fizetendo megjegyzes egyeb_info
-37-
egyeb_info
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
Innentől kezdődhet az adatbázis fizikai tervezése az adatbázis-kezelő rendszerünk dokumentációja szerint. Kialakítom az adatbázis tábláit és megadom az attribútumok tulajdonságait. Az attribútum típusának meghatározása során elsősorban a tapasztalatunkra hagyatkozhatunk. Azonban van néhány íratlan szabály, amit érdemes betartanunk:
az elsődleges kulcsokat célszerű numerikus típusúra tervezni, mivel a legtöbb adatbázis-kezelő rendszer ismeri az automatikus értékadást;
ha egy értékkel számítási műveleteket akarunk végezni, akkor annak típusa mindig legyen numerikus;
a külső kulcsoknak, olyan típusúnak és méretűnek kell lenniük, mint a hozzájuk tartozó elsődleges kulcsoknak;
mindig akkora értéket válasszunk az attribútum nagyságának, hogy később már ne kelljen megnövelni, az sem baj, ha egy kicsit túlméretezzük az értékeinket (ha van elég tárolókapacitásunk);
ha dátum értéket akarunk tárolni, a későbbi művelet végrehajtások miatt célszerű dátum típust megadni;
olyan attribútumoknál, ahol az érték viszonylag állandó célszerű azt alapértelmezettként megadni.
Adatbázis létrehozása A szerviz adminisztrációs hibakezelő rendszer számára létre kell hoznom egy adatbázist a MySQL adatbázis kezelőn. Az adatbázis neve legyen „hibakezelo”.
-38-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
A működéshez szükséges létrehozandó táblák a következők lesznek:
„felhasznalo” tábla létrehozása
CREATE TABLE felhasznalo ( Felh_nev varchar(12) NOT NULL default '', teljes_nev varchar(30) NOT NULL default '', email varchar(30) NOT NULL default '', cim varchar(30) NOT NULL default '', jelszo varchar(250) NOT NULL default '', belepes_ideje date default NULL, jog_szint int(1) unsigned zerofill NOT NULL default '0', telefon varchar (15) NOT NULL default '', kirendeltseg_nev varchar (30) NOT NULL default '', spec_info varchar (30) NOT NULL default '', egyeb_info varchar (30) NOT NULL default '', PRIMARY KEY (Felh_nev) ) TYPE=InnoDB; A „felhasznalo” táblában tárolom az alkalmazást használni jogosult felhasználók valamint a regisztrált ügyfelek adatait. A tábla elsődleges kulcsa a Felh_nev rekord. Mivel az ügyfelek és a dolgozók felhasználói adatai csak néhány mezőben térnek el, az egyszerűség kedvéért nem választom szét az ügyfél és a munka jellegű felhasználókat, hanem a táblában egy jogosultság szint mezővel különböztetem meg a különböző jogosultsággal bíró felhasználókat.
1. szint = ügyfél/felhasználó
2. szint = szervizes
3. szint = helpdesk
4. szint = vezető
5. szint = database admin
-39-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
Egyben ezt a táblát használom föl a felhasználók beléptetésére. A belépés az alkalmazás szempontjából az egyik legkritikusabb pont. A jelszó tárolása egy titkosító algoritmus segítségével történik, így a táblában tényleges jelszó helyett csak egy hosszú karaktersorozatot láthatunk. A felhasználók adatait tároló tábla valamennyi elemének kitöltése kötelező. Az alkalmazás biztonságos üzemeltetése szempontjából fontos, hogy azonosítható legyen a felhasználó, illetve az, hogy érvényes legyen a bejelentkezés. A beléptetés során a felhasználót el kell látnunk valamilyen azonosítóval (session), mely segítségével később ellenőrizhetjük. A rendszer által biztosított hozzáférés engedélyezési és ellenőrzési folyamatot munkamenet kezelésnek nevezzük. A „felhasznalo” tábla nem tartalmazza az adatbázis eléréséhez szükséges azonosítókat. Erre a célra a db.inc állományt használom, mely az azonosító adatokon túl tartalmaz néhány eljárást, amelyeket minden oldalon használni fogok. A db.inc állomány kódja a mellékletek között megtalálható.
„ugyfel” tábla létrehozása
CREATE TABLE ugyfel ( ugyfel_id int(10) unsigned NOT NULL auto_increment, ugyfel_nev varchar(50) default NULL, kapcsolattarto varchar(25) default NULL, ugyfel_cim varchar(35) default NULL, iranyito_szam int(4) default NULL, telefon_1 varchar(15) default NULL, telefon_2 varchar(15) default NULL, email varchar(30) default NULL, rogzites_ido datetime(20) default NULL, megjegyzes_1 varchar(50) default NULL, megjegyzes_2 varchar(50) default NULL, egyeb_info varchar(25) default NULL, PRIMARY KEY (ugyfel_id) ) TYPE=MyISAM;
-40-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
A hibabejelentésekben szereplő ügyfél adatok tárolására az „ugyfel” táblát használom. Esetenként előfordulhat, hogy egy regisztrált felhasználónévvel több cég hibáit is kezeli valaki, ezért az ügyfél adatokat nem a felhasználó névvel egy táblázatban, hanem külön tárolom. Elsődleges kulcs az ugyfel_id rekord.
„eszkoz” tábla létrehozása
CREATE TABLE eszkoz ( eszkoz_id int(10) unsigned NOT NULL auto_increment, gyarto varchar(15) default NULL, gyariszam varchar(15) default NULL, product_num varchar(15) default NULL, megnev_kod varchar(1) default NULL, garancia varchar(15) default NULL, tartozek varchar(25) default NULL, megjegyzes varchar(50) default NULL, egyeb_info varchar(50) default NULL, PRIMARY KEY (eszkoz_id) ) TYPE=MyISAM; A hibabejelentésekben szereplő eszközök adatainak a tárolására az „eszkoz” táblát használom. Mivel egy felhasználó több eszközt is bejelenthet és egy ügyfélhez több eszköz is tartozhat, ezért az eszköz adatokat külön táblában tárolom. Elsődleges kulcs az eszkoz_id rekord.
-41-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
„kirendeltseg” tábla létrehozása
CREATE TABLE kirendeltseg ( kirendeltseg_nev varchar(30) default NULL, vezeto varchar(25) default NULL, cim varchar(35) default NULL, telefon varchar(15) default NULL, email varchar(30) default NULL, megjegyzes varchar(30) default NULL, egyeb_info varchar(30) default NULL, PRIMARY KEY (kirendeltseg_nev) ) TYPE=MyISAM; A szervizmunka a cégnél több telephelyen zajlik. Az eszközök esetenként vándorolnak a telephelyek között. A hibabejelentéskor el kell dönteni, hogy az adott feladatot melyik szervizkirendeltség tudja leghatékonyabban kezelni. Mindezek miatt szükség van a kirendeltségek adatait külön táblában tárolni. Elsődleges kulcs a kirendeltseg_nev rekord.
„muvelet” tábla létrehozása
CREATE TABLE muveletek ( muvelet_id int(10) unsigned NOT NULL auto_increment, hibajegy_id int(10) default NULL, muvelet varchar(100) default NULL, datum_ido datetime(20) default NULL, felelos varchar(12) default NULL, modosito varchar(12) default NULL, PRIMARY KEY (muvelet_id) ) TYPE=MyISAM;
-42-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
A
hibajegyekkel
különféle
műveletek
végezhetők,
melyeket
a
visszakereshetőség érdekében el kell tárolni. Lényeges, hogy az adott munkafázist ki végezte el és az mikor történt meg. Így biztosítható, hogy az egyes
munkafázisok
dokumentálása
megfelelően
megtörténjen,
és
ellenőrizhető legyen. Lehetőséget ad, arra is, hogy az ügyfél érdeklődésére az ügyfélszolgálati munkatárs információt tudjon kinyerni a rendszerből a készülék javításával kapcsolatban, anélkül, hogy a szervizes munkatárssal beszélnie kelljen. Elsődleges kulcs a muvelet_id rekord.
„hibajegy” tábla létrehozása
CREATE TABLE hibajegy ( hibajegy_id int(10) unsigned NOT NULL auto_increment, log_azonosito varchar(7), bejelent_ido datetime(20) default NULL, kesz_datum datetime(20) default NULL, hiba_allapot varchar(20) default NULL, hiba_status varchar(10) default NULL, ugyfel_id int(10) unsigned NOT NULL default '0', eszkoz_id int(10) unsigned NOT NULL default '0', kirendeltseg_nev varchar(30) default NULL, Felh_nev varchar(12) default NULL, hibajel_kod varchar(3) default NULL, hiba_behatarolas varchar(50) default NULL, rendelt_alkatresz varchar(20) default NULL, felh_alkatresz varchar(20) default NULL, javitas_menete varchar(200) default NULL, fizetendo varchar(15) default NULL, megjegyzes varchar(50) default NULL, egyeb_info varchar(200) default NULL, PRIMARY KEY (hibajegy_id) ) TYPE=MyISAM;
-43-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
A hibajegy tábla a legfontosabb tábla az adatbázisomban. Elsődleges kulcs a hibajegy_id rekord. Szinte minden tábla között N:M kapcsolat lenne az ideális választás, viszont relációs adatbázisban csak 1:N kapcsolatokat tudunk fölépíteni, ezért a hibajegy tábla úgynevezett kapcsolótábla funkciót lát el. Ezt a feladatot a táblában elhelyezett idegen kulcsokkal szándékozom megoldani.
ugyfel_id = ugyfel tábla elsődleges kulcsa
eszkoz_id = eszkoz tábla elsődleges kulcsa
kirendeltseg_nev = kirendeltseg tábla elsődleges kulcsa
Felh_nev = felhasznalo tábla elsődleges kulcsa
A hibakódoló segéd-adatbázistáblák kialakítása A hibabejelentések során gyakran ismétlődnek bizonyos adatok. Ezeket érdemes a sok karaktert igénylő szöveges tárolás helyett kódolni. Hogy az adatbázis adatstruktúrája kisebb helyet foglaljon, valamint elkerüljük a káoszt, szükséges, hogy a hibabejelentések alkalmával egységes adatokat kérjünk be az ügyféltől, vagy a kezelő személyzettől. Ezért bizonyos adatokat, amikre később szűrni kívánok, csak listából kiválasztva engedélyezem az adatbázisba bevinni. Erre a feladatra egy hibabejelentő segédalkalmazást használok. Az alkalmazás szintén az adatbázisból dolgozik és elvégzi a hibabejelentéskor a szükséges kódolást 3 állandó adattartalmú segédtábla használatával. A későbbiek folyamán ezekre a hibakódokra keresve kigyűjthetők az információk.
-44-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
A hibakódoló segédtáblák a következők: „keszulek” tábla szerkezete és adatai Mező; Típus KeszulekID
int(1)
Keszulekmegnevezes varchar(20) 1 2 3 4 5 6 9
PC Notebook Szerver Nyomtató Monitor Hálózati eszköz Egyéb
„hiba” tábla szerkezete és adatai Mező; Típus HibaID int(2) Hibamegnevezes varchar(30) KeszulekID int(1)
(nem teljes fölsorolás!)
11 PC-t nem lehet bekapcsolni 1 12 Nem ad képet a monitoron 1 13 Operációs rendszer nem indul 1 14 Működés közben lefagy 1 15 PC kikapcsol 1 16 Zúg, hangos 1 17 Nem megfelelő teljesítmény 1 18 Nagyon lassú működés 1 19 Egyéb PC hiba 1 21 Nem lehet bekapcsolni 2 . . . . És így, ennek a struktúrának megfelelően további adatokkal feltöltve…
-45-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
„reszegyseg”tábla szerkezete és adatai: Mező; ReszegysegID Reszegysegmegnevezes HibaID
(nem teljes fölsorolás!)
Típus int(3) varchar(30) int(2)
111 Tápkábel 11 112 Tápegység 11 142 Merevlemez (HDD) 14 143 Memória modul 14 144 Alaplap 14 239 Nem tudom beazonosítani 23 241 Alaplap 24 242 Processzor 24 243 Memória modul 24 244 Hűtő ventilátor 24 249 Nem tudom beazonosítani 24 251 Tápegység 25 252 Akkumulátor 25 254 Processzor 25 313 Bekapcsoló gomb 31 314 Alaplap 31 319 Nem tudom beazonosítani 31 321 Monitor 32 322 Monitor kábel 32 323 Grafikus vezérlő 32 561 Inverter modul 56 562 Képcső vagy LCD 56 563 OSD chip 56 569 Nem tudom beazonosítani 56 612 Router 61 613 Adatkábel 61 619 Nem tudom beazonosítani 61 621 Tápegység 62 633 Adatkábel 63 911 Egyéb részegység 91 . . . És így tovább, ennek a struktúrának megfelelően további adatokkal feltöltve további értékekkel. Az összes elemet nem sorolom föl. Csak a példa kedvéért szerepel itt néhány rekord.
-46-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
Mint látható a táblák mezői a leggyakrabban előforduló fix értékeket tartalmazzák, a mezőket programozás során előre feltöltöm tartalommal. Igaz, hogy az adattáblák tartalommal való feltöltése kicsit időigényes és tartalmaz némi redundanciát, de a továbbiakban rengeteg hely spórolható meg
vele.
Természetesen
a
megadott
értékeken
kívül
bármilyen
szükségesnek tartott értékkel utólag is kiegészíthető. Az ily módom képződő „HibaID” „KeszulekID” és „ReszegysegID” kódok kerülnek a hibajegybe. A fenti táblázatban szereplő, viszonylag hosszú karakteres kifejezések helyett csak egy három számból álló kódot kell eltárolni. Az űrlap a kiválasztott eszközre vonatkozó hibajelenségekre szűr, és utána a megfelelő részegységekre. Tehát az első választás szerint jelennek meg a következő lehetőségek, és így tovább. Érthetőség kedvéért a kezelő felületről egy ábrát itt prezentálok, bár ez tematikai szempontból a dolgozatom későbbi részéhez tartozna, de logikailag talán így érthetőbb a funkció működése. A készülék és hibajelenség, valamint a részegység kiválasztása után megjelenő tovább gomb megnyomásával az ügyfél interfész felület hibabejelentő oldalára továbbítja a felhasználót. A funkció működéséért a hibakodolo_seged_php, és a bejelentes_add.php fájlok felelnek. Az alkalmazás felülete a következő 9. ábrán látszik.
9. ábra
-47-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
VIII.Az oldal kivitelezése A honlap elkészítése Az oldal elkészítésének első lépése megtervezni, hogy milyen lapokból épüljön fel, ezek hogyan kapcsolódjanak egymáshoz és az adatbázishoz, illetve az egyes lapok milyen funkciókkal rendelkezzenek. Mivel az oldal túlnyomórészt adatbázis kezelő funkciókat tartalmaz kevés grafikával, ezért célszerű egy indító oldalt létrehozni, ahol az oldalra belépni szándékozó felhasználó gyorsan tájékozódni tud az elérhető funkciókról. A felhasználót egy üdvözlő szöveg köszönti a legfontosabb információkkal.
10. ábra Ahhoz, hogy az oldalak könnyen elérhetők és bármelyik másik a lapon tartózkodva is meghívhatók legyenek, érdemes a linkek minden lapon történő elhelyezése helyett inkább egy keretes szerkezetet megvalósítani, felosztva egy navigációs felületre, ami a lapokra irányító linkeket tartalmazza, és egy munka-felületre ahová a menüből kiválasztott oldal fog betöltődni. (10. ábra) Ezt a menü-munkafelület felosztást a mostanában elterjedt széles (16*9 felbontású) kijelzőkre tekintettel egy a képernyő bal szélén elhelyezett függőleges navigációs menüvel oldom meg. Ott általában nem foglal zavaróan sok helyet. A navigációs menü és a munka-felület markánsan eltérő színvilága megkönnyíti a tájékozódást.
-48-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
A navigációs menü A navigációs menü valójában a főoldal része, ami állandóan előtérben van és ahonnan elérhetőek a további lapok. A főbb funkciók, a tájékoztatás, hibabejelentés, gyakran ismételt kérdések, vendégkönyv, gyártói oldalak elérhetőségei, hasznos oldalak. Itt helyezem el az adatbázis kezelő beléptető oldal linkjét is. A kezdőoldalt az index.php meghívásával lehet elérni, mely a keretekért felel, és behívja az oldalmenu.php és a folap.php fájlokat. A különböző funkciók egymástól elkülönítve saját mappáikban lettek megvalósítva egységes minimál grafikai elemekkel. A vendégkönyvet és a gyakran ismételt kérdések rovatot, amik rendelkezésre állnak ingyenesen letölthető és szabadon felhasználható modulok formájában, azokat a szükséges mértékig átdolgozva, a honlap képéhez igazítva implementálom a források megjelölésével. Hibabejelentés E-mail formájában A navigációs menü felületén lett elhelyezve a hibabejelentés gomb, ami meghívja a munkafelületre az email_urlap.php fájlt. Ennek használatával jelenthet be az ügyfél meghibásodást a szerviz felé. A funkció bármilyen más kommunikáció kezdeményezésére is alkalmas az ügyfélszolgálat felé.
11. ábra
-49-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
IX. Hibajegy kezelő rendszer Az általam kialakított hibajegy kezelő adminisztrációs rendszer, ami az oldal lényegi adatbázis-kezelő funkcióit valósítja meg és a saját gyakorlati munka fajsúlyos részét tartalmazza. Továbbiakban ennek kialakítását és használati esetek megvalósítását vázolnám néhány funkciót kiemelve. A honlapon a lehetőségek nagy része mindenki számára hozzáférhető, de vannak lapok, amihez csak az oldal regisztrált felhasználói férhetnek hozzá. Kimondottan ilyen funkció az online hibabejelentés lehetőségét nyújtó felület, ami valójában a hibajegy kezelő rendszer ügyfél oldali interfésze. Beléptetés Mivel a hibakezelő rendszer használata regisztrációhoz kötött, ezért először is szükség van egy olyan felületre, ahol a felhasználók elvégezhetik a regisztrációs folyamatot és elvégezhetik a hitelesítést. Ezt a funkciót az oldalmenün a bejelentkezés gombra kattintva lehet elérni, (index.php) mely egyből átvisz a hibakezelő alkalmazásra. A felület a 12. ábrán látható.
12. ábra Amennyiben a felhasználó még nem regisztrált az oldalon, megteheti a leírás szerint, a linkre kattintva. (regisztracio.php) Ha már van felhasználói neve és fiókja, akkor természetesen bejelentkezhet és megkezdheti a munkát a felületen.
-50-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
A bejelentkezés után a felhasználó jogosultságainak megfelelő felület töltődik be az elérhető funkciókkal. Kijelentkezéskor, vagy új felhasználó belépésekor a mindenkori munkamenet $_session[’user’] változó értékét törlöm, így a böngésző vissza gombjával nem lehet megnézni a korábbi munkamenet felületét.
A regisztráció a következő űrlapon végezhető el. (13.ábra)
13. ábra Regisztráció után az ügyfélnek lehetősége van bejelentkezni. Sikeres bejelentkezés esetén a program megjeleníti a felhasználó nick nevét és a jogosultság szintjét. Innentől lehet hibát bejelenteni, készültség állapotát lekérdezni,
jelszót
módosítani,
valamint
segédanyagokat
letölteni
a
weblapról. Egyszerű regisztrált „user” felhasználó jogosultsággal csak az egyszerű regisztrált felhasználóhoz tartozó felület jelenik meg. Az elérhető funkciókat a 14. ábra mutatja.
-51-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
14. ábra Az első lehetőség az Admin gomb. Ezen keresztül közvetlenül küldhető email az oldal üzemeltetőjének. A második gomb a hibabejelentés felvitele. Itt már a bejelentés közvetlenül az adatbázisba kerül. A hibajegy bevitelére az alábbi űrlap szolgál, miután az előző fejezet szerint a hibakódoló segéddel kiválasztottuk a kódot:
15. ábra Első körben meg kell adni az ügyfél adatait, elérhetőségeit. Utána az eszköz adatait. A *-al jelölt mezők nem hagyhatók üresen, erre az űrlap figyelmeztet és az adatbevitel előtt ellenőrzést is végez. A több soros szövegbeviteli mezőnél még megadható egyéb információ igény szerint. A 15-ös és 16-os ábra valóságban egyetlen űrlapon jelenik meg. A küldés gomb végrehajtja az adatbevitelt. Hiba esetén pirossal kiíródnak a problémák.
-52-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
16. ábra Továbbiakban az ügyfélnek a harmadik gombbal lehetősége van a korábban leadott, szervizben javítás alatt álló eszközének állapotát lekérdezni, amennyiben megadja az eszköz logisztikai azonosító számát. Ezt a számot az eszköz átvételekor kapja az ügyfélszolgálattól, ez szerepel a megrendelő lapon, és végigkíséri az eszközt egy ráragasztott címke formájában, a szervizben a telephelyek közötti szállítások folyamán. (ez egy meglévő papír alapú regisztrációs rendszer, ezért kellett ehhez igazodni.)
17. ábra
-53-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
Jogosultság szintek megvalósítása Az eddigiekből már kitűnik, hogy a rendszer használatához jogosultsági szintek tartoznak. (main.php) Az oldal jogosultságok szempontjából hat csoportra osztható:
vendég
nem szükséges regisztrálni (kvázi 0-s szint)
ügyfél
regisztráció után, alapértelmezett jogosultság (1-es szint)
szervizes
regisztrált felhasználóból előléptethető (2-es szint)
helpdesk
regisztrált felhasználóból előléptethető (3-as szint)
vezető
regisztrált felhasználóból előléptethető (4-as szint)
DBadmin
adatbázis-kezelő szintű hitelesítés szükséges (5-ös szint)
Vendégként
az
oldalnak
csak
a
szabad
tartalmai
jelennek
meg.
Regisztrációt nem igényel. Ezen felhasználó információkhoz juthat a szerviz tevékenységéről, elérhetőségeiről. Vendégkönyv, a Gyakori kérdések rovat és a Gyártói oldalak rész nem igényel regisztrációt. Az ügyfél regisztráció nélkül is bejelentheti hibás eszközét e-mail formájában a hibabejelentés mezőre megjelenő űrlapon keresztül. Az ügyfél néven szereplő szint már regisztrációhoz kötött. Regisztrált felhasználóként
bejelentkezés
után
az
Ügyfél
bejelenthet
eszköz
meghibásodást a hibakezelő online felületén. Lekérdezheti a már korábban bejelentett, vagy leadott eszköz javításának állapotát. Új, másik felhasználót regisztrálhat, vagy a meglévő jelszavát megváltoztathatja, esetleg átléphet másik felhasználóra. Letölthet a szerviz által feltöltött dokumentumok közül, számára hasznos tartalmakat. Itt jegyezném meg, hogy a letöltő oldalon felhasznált könyvtár listázó szkript nem saját munka. Az interneten találtam, mint ingyenesen használható szkriptet, és a forrás megjelölésével beintegráltam a felületbe. Az eredmény a 18. ábrán látható.
-54-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
18. ábra A szervizes felhasználó az ügyfél jogosultságokon kívül további funkciókat érhet el.
Ügyfél adatok felvitele és módosítása.
Eszköz adatok felvitele és módosítása.
Új hibajegy felvitele az adatbázisba.
Munka a már rögzített hibajegyekkel.
Munkalap nyomtatása.
19. ábra
-55-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
A helpdesk jogú felhasználó az ügyfél és szervizes jogosultságokon felül a következő további funkciókat érheti el.
WEB-es hibabejelentések kezelése.
Hibajegy rögzítése eszközátvételkor.
Megrendelő lap nyomtatása.
Ügyfél/ felhasználók adatainak karbantartása.
Keresés különféle szempontok szerint.
Letölthető dokumentumok feltöltése a weblapra.
20. ábra A vezeto jogosultsággal felruházott felhasználó az ügyfél, a szervizes és a helpdesk jogosultságokon felül a következő további funkciókat érheti el.
Munkatársak adatainak karbantartása
Kirendeltségek felvitele és karbantartása
Egyéb, később igényként felmerülő funkciókkal is bővíthető
-56-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
21. ábra A DBadmin jogosultsággal felruházott felhasználó az összes funkciót használhatja, amit a többi feladatkör használhat, de van egy kiemelt funkció, aminek elérését csak neki teszem lehetővé. Ez az adatbázis kezelő phpMyAdmin felület használata. Természetesen a jogosultsági szintek bármikor bővíthetők, szintenként igény szerint új funkciókat lehet beiktatni, vagy egyes funkciók eltávolíthatók rugalmasan, ahogy a szükség kívánja. A hibajegy kezelő rendszer használata Azt már korábban láttuk, hogyan tud egy ügyfél hibajegyet létrehozni. A dolgozók számára is hasonló megoldással, adatbeviteli űrlapokon keresztül teszem lehetővé az adatok bevitelét, módosítását, törlését. Minden esetben, amikor egy hibajeggyel munkát akar valamelyik felhasználó végezni, először ki kell választani a megfelelő hibajegyet. Itt csak az aktív státuszban lévő hibajegyek jelennek meg, ami még nincs aktiválva, vagy már lezárt státuszú, az nem jelenik meg, hogy ne legyen olyan áttekinthetetlen a lista. Ezt a hibajegy_update.php fájl végzi el, és a kiválasztás gombbal továbblépve a hibajegy_feldolgozo.php fájlban lévő űrlap és adatbázis kezelő PHP utasítások teszik lehetővé az adatok kezelését. (22. ábra)
-57-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
22. ábra A kiválasztás gomb után meghívott űrlapon elvégezhetők a szükséges módosítások. A lényeges módosítások elvégzése esetén bekerülnek egy listába, ahol a muveletek adatbázis táblában tárolódnak és tartalmazza a műveletet, időpontját, felelőst, a módosítót és a telephely változását. Ez teszi lehetővé, hogy követhető legyen, hogy egy-egy hibajegy munkafázisait ki végezte. A 23. ábrán zöld színnel láthatók a munkafázis lista bejegyzései. Lehetőség van ezeken kívül:
Új ügyfelet és új eszközt fölvenni az adatbázisba.
Ügyfelek, eszközök adatait módosítani.
Megrendelőt (átvételi igazolást) és munkalapot lehet nyomtatni. Ezeket a formanyomtatványokat szerepeltetem a mellékletek között.
A tudásbázis lehetőséget biztosít a különféle szempontok szerinti keresésre a tárolt hibajegyek között.
A dokumentumok feltöltése gombbal meghívott felületen lehet a weblapra feltölteni segédanyagokat.
-58-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
23. ábra
-59-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
A kezelő felület működésének további részletes leírását nem tartom szükségesnek kifejteni e szakdolgozat szöveges részének keretein belül, tekintettel a terjedelmi korlátokra. A működés logikája az eddigiek alapján érthető kell, hogy legyen. A PHP szkriptek a megfelelő űrlapok meghívásával teszik elérhetővé és kezelhetővé az adatbázis tartalmát. A lapokon elhelyezett navigációs gombok egyértelműen értelmezhetőek. Maga a használat véleményem szerint annyira egyértelműen egyszerű, hogy nem igényel külön leírást. Ahol mégis, ott tájékoztató jellegű feliratokkal segítem az értelmezést. A teljes honlap és az adatbázis kezelő alkalmazás html és php fájljait a szakdolgozat mellékleteként elhelyezett CD tartalmazza. Az oldal valós működése pedig a megadott linken élesben kipróbálható, tesztelhető a Tisztelt Bíráló Bizottság által. A különböző szintű jogosultságok teszteléséhez a következő beépített felhasználó tesztfiókokat hoztam létre:
fh: user
pw: user
fh: szervizes
pw: szervizes
fh: helpdesk
pw: helpdesk
fh: vezeto
pw: vezeto
-60-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
X. Összefoglalás Tesztelés A webes alkalmazás funkcióinak teljes körű tesztelése mind az adatfelvitel, mind a lekérdezések esetében megtörtént. A szóba jöhető operációs rendszerek
használatával, többféle
böngészővel kipróbálva
az oldal
használható, bár a grafikai megjelenése böngészőnként némileg eltér, de nem zavaró mértékben. Az oldal a Mozilla Firefox jelenlegi aktuális verziójára lett optimalizálva, de IE és Chrome és Edge böngészőkkel is tesztelve lett. Böngésző specifikus kódokat a fejlesztés során kerültem, így a használata várhatóan az összes böngészőben problémamentes. A tesztek során felfedezett hibák kijavításra kerültek. Cél teljesülésének vizsgálata Az elkészült alkalmazás a szükséges, a szakdolgozati tervben vázolt funkciókat, feltételeket teljesíteni tudja. A feladatspecifikációban fölvázolt használati eseteket kielégítően lekezeli, működése az előzetesen lefektetett céloknak megfelelő. Ebből következik, hogy a témaválasztás indoklásában meghatározott cél teljesült. Sikerült egy megfelelő, költséghatékony, a céloknak megfelelő rendszert kialakítani a szakdolgozatban felsorolt technológiák használatával. A rendszer pont annyit tud, ami a célokban meg lett határozva. A
rendszer
átlátható,
könnyen
bevezethető,
oktatható.
Egyszerűen
továbbfejleszthető. Mintaként és ötlettárként szolgálhat számomra a későbbiek során egyéb hasonló funkciókat megvalósító alkalmazások fejlesztésekor.
-61-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
Továbbfejlesztés lehetőségei A kidolgozott téma számos továbbfejlesztési lehetősséget hordoz magában. A teljesség igénye nélkül néhány funkciót fölsorolok, ami még javíthatná a használati értéket, de nem lett megvalósítva:
Automatikus értesítés e-mail formájában, ha a hibajegy státusza aktivált vagy javított állapotba kerül. Gyakorlatilag a technológia ugyanaz, mint az ügyfél által küldött e-mail esetében, csak szkriptből indítva.
Hírlevél, Bizonyos időközönként az ügyfél lista alapján az aktuális információkról, akciókról, kedvezményekről automatikus tájékoztató levél küldhető.
Statisztikai
jellegű
adatok
kinyerésére
táblázatos
formában
importálható lekérdezések megvalósíthatók.
Kereső funkciók bővítése igény szerint megvalósítható.
Használati esetek, jogosultsági szintek szükség esetén bővíthetők a feladatköröknek megfelelően.
Egyéb igény szerinti funkciók is rugalmasan bevezethetők.
-62-
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
Irodalomjegyzék: Michael Moncur: 2006 Kiskapu Kiadó Tanuljuk meg a Java Script használatát 24 óra alatt. Adamcsik János 2005 Számítógépes szövegszerkesztés
LSI Informatikai Oktatóközpont
Szelezsán János: Adatbázisok
LSI Informatikai Oktatóközpont
2004
Sági Gábor: 2005 BBS Info Webes adatbázis-kezelés MySql és PHP használatával Matt Zandstra: 2004 Kiskapu Kiadó Tanuljuk meg a PHP5 használatát 24 óra alatt. Virginia De Bolt 2005 Kiskapu Kiadó HTML és CSS webszerkesztés stílusosan Kupcsikné Fitus Ilona Adatbázisok (példatár)
2004
LSI Oktatóközpont
Dr. Kovács Magda: 2005 LSI Oktatóközpont Tanácsok műszaki diplomamunka készítéséhez Endrődi Tamás: 2007 Internet alapú alkalmazásfejlesztés
GDF
Fábián Zoltán: 2005 Tanuljunk PHP-ül kezdőknek v0.81
PDF dokumentum
Paczona Zoltán: 2001 HTML technikák a gyakorlatban
Computer Panoráma
Internetes források: https://hu.wikipedia.org/wiki/Magyar_Wikip%C3%A9dia
(2015)
http://php.webprog.biz/
(2015)
https://secure.php.net/
(2015)
http://www.apache.org
(2015)
http://www.sourceforge.net/projects/notepad-plus/
(2008)
http://www.appservnetwork.com/
(2007)
http://phtml.hu
(2007)
http://phpweb.blog.hu/2009/06/14/es_simple_uploader_fajlfeltoltes_php_vel
(2012)
http://www.phpmyadmin.net/home_page/index.php
(2015)
http://nagygusztav.hu/sites/default/files/csatol/web_programozas_-_szines.pdf (2015) http://prog.hu/tudastar/126664/mysql-php-o-u-problema
-63-
(2015)
Számítástechnikai szerviz online hibabejelentő, adminisztráló, információs weblapja
Ábrajegyzék 1.
ábra
A telepített AppServ felülete a böngészőben
2.
ábra
Használati esetek
3.
ábra
A „vendég” aktor használati esetei
4.
ábra
Az „ügyfél” aktor használati esetei
5.
ábra
A „szervizes” aktor használati esetei
6.
ábra
A „helpdesk” aktor használati esetei
7.
ábra
A „vezető” aktor használati esetei
8.
ábra
a”DBadmin” aktor használati esetei
9.
ábra
Hibakódoló segéd űrlap
10.
ábra
Kezdő oldal képe a navigációs menüvel
11.
ábra
Hibabejelentő e-mail küldő űrlap
12.
ábra
Bejelentkező oldal
13.
ábra
Regisztrációs oldal
14.
ábra
Hibajegy kezelő rendszer „ügyfél” nézet
15.
ábra
Hibajegy felvitele, ügyfél adatok
16.
ábra
Eszköz adatok rögzítése
17.
ábra
Hibaállapot lekérdezése
18.
ábra
Letölthető dokumentumok
19.
ábra
Hibajegy kezelő rendszer „szervizes” nézet
20.
ábra
Hibajegy kezelő rendszer „helpdesk” nézet
21.
ábra
Hibajegy kezelő rendszer „vezető” nézet
22.
ábra
Hibajegy kiválasztása
23.
ábra
Hibajegy kezelő munkafelület
-64-