Csoport neve: Maat

Feladat sorszáma: 2.

Feladat címe: Hálózati felügyeleti szoftver






Vízió dokumentum




Gyakorlatvezető::

WAGNER GYÖRGY


Csoport tagok:


Imre Mihály

G-3S8

imre@iit.uni-miskolc.hu

Fazekas Lajos

G-3S1D

fazekas@iit.uni-miskolc.hu

Kis Simonka József

G-3S8

kis2@iit.uni-miskolc.hu

Szűcs Tamás

G-3S8

szucs3@iit.uni-miskolc.hu


2006. március 10.






Történet


Dátum

Verzió

Leírás

Szerző

2006. 03. 08.

1.0

Kezdeti verzió

MAAT csoport

2006. 03. 10.

1.1

H2 határidőre benyújtott, átdolgozott verzió

MAAT csoport







Tartalomjegyzék

1. Bevezetés

2. Az alkalmazás helye

2.1 Üzleti lehetőségek

2.2 A probléma megfogalmazása

2.3 Az elkészült termék helye

3. Érintettek és felhasználók

3.1. Az érintettek összefoglalása

3.2. A felhasználók összefoglalása

3.3 Felhasználói környezet

3.4. Illetékesek adatai

3.5. Felhasználók adatai

4. A végtermék áttekintése

4.1 A termék kapcsolatai

4.2. A termék használatának előnyei

4.3. Feltételezések és függőségek

4.4 Költségbecslés

4.5. Installáció

5. A végtermék jellemzői, biztosított szolgáltatások

6. Korlátozások

7. Minőségi elvárások

8. Dokumentációkkal kapcsolatos követelmények

9. Kockázat lista

10. Szótár





1. Bevezetés


A Maat programozói csoport egy egyetemi fiatalokból alapított négytagú csoportosulás. A csapat neve egy egyiptomi eredetű szó, melynek jelentése meglehetősen összetett, értelme röviden: igazság vagy akinek helyén van a szíve. 

Jelenlegi projektünk az alábbi témával foglalkozik:
Célunk egy labor felügyeleti rendszer megvalósítása, amely számítógépes labor(ok) diagnosztikáját és adminisztrációját teszi lehetővé távoli gépről. A megkívánt funkciók a következők:

2. Az alkalmazás helye

Bármely számítógépen elsődleges megoldandó feladat azok felügyelete. Olyan környezetben, ahol több számítógép egyidejű használatára van szükség, a helyi, vagy másképp mondva egyenkénti megfigyelések az eszközök számával egyenes arányban növekednek.

Célszerű tehát a meglévő hálózatot és -a valamilyen formában egyébként is központosított topológiát alapul venni és valamilyen hálózati felügyeleti rendszerrel automatizálni a munkafolyamat ismétlődő elemeit.

Más szemszögből megfogalmazva: Lokális hálózatba kötött számítógépek diagnosztizálása és adminisztrálása helytől függetlenül. Konkrét alkalmazási területek:

2.1 Üzleti lehetőségek

Az alkalmazásban rejlő üzleti lehetőség óriási, és mivel általános problémáról van szó, így a kifejlesztett szoftver széles körben alkalmazható.

Megkönnyíti a számítógépek adminisztrálását és diagnosztizálását, nem kell minden hostra egyenként bejelentkezni, hogy lekérdezzük a minket érdeklő információkat, a program elvégzi ezt helyettünk.

A UNIX alapú rendszerekben megtalálható például a ruptime (http://publib16.boulder.ibm.com/pseries/en_US/cmds/aixcmds4/ruptime.htm) parancs ami példaként felhozható, de ez a függvényhívás sem valósít meg minden funkciót az általunk megköveteltek közül, illetve kezelése parancssoros, ami a tapasztalatlanabb felhasználóknak nehézséget okozhat, a tapasztaltabbaknak pedig bizonyos esetben időpazarlást a kézzel törétnő paraméterezés miatt.

Előzetes felméréseink alapján az általunk megkívánt funkciók a legtöbb operációs rendszerbe alapkövetelményként bele vannak integrálva (állapotlekérdezések, távoli adminisztráció, üzenetküldés), de nincs közös adminisztrációs felület, ahonnan mindezek gyorsan elérhetővé válnának.

Éppen ezért ez a program jobb ezeknél, mert összefogottan, egy csomagba integrálva végzi mindezt, könnyebben elérhetőek ezek a szolgáltatások.

2.2 A probléma megfogalmazása

A feladat, hogy egy kitüntetett számítógépen ellenőrzötten bejelentkezve végrehajthassuk a különbözö diagnosztikai és adminisztratív feladatokat. A programba is ellenőrzött bejelentkezés kell, mert az operációs rendszerek biztonsági szintjei nem garantáltan elegendőek minden implementációban.

A program kiválasztható szűrőfeltételeknek eleget tevő számítógépek ugyancsak kiválasztható jellemzőit jelenítse meg átlátható, összefoglaló formában.

Biztosítsa a megrendelővel megbeszélt feladatok végrehajtását egy vagy több gépre egyszerre, akár kötegelt végrehajtás formájában is.

Biztosítani kell a (nem publikus) naplózást, beállítható részletességgel, ami helyi fájlba irányul. A "nem publikusságot" a fájlok biztonsági attribútumainak beállításával kívánjuk megvalósítani.

Küldjön figyelmeztetéseket/riasztásokat kritikus események bekövetkezésekor (például túlzott erőforráshasználat, amely az állapotjelzők alapján megállapítható).

Az érintett felhasználók közé a mindenkori userek nem tartoznak bele, de a következők igen :
Rendszergazdák, rendszeradminisztrátorok, karbantartók, főnökök. Érintettek lehetnek még kémszervezetek (a program stealth verziója megjelenése esetén, trojanosítás)

A program nagymértékben megkönnyítené a fent említett résztvevők mindennapi, rendszeres teendőit, a hibaelhárítást és a hiba felderítését. Kevesebb gépet kell személyesen felkeresni, az ütemezett feladatokat automatikusan elvégzi, így egyszeri ütemezés után csupán a naplózásban kell nyomonkövetni a feladat sikerességét illetve sikertelenségét.

2.3 Az elkészült termék helye

A terméket megrendelésére készíti a csapat, a megrendelő Wagner György. Elsősorban a Miskolci Egyetem Általános Informatika tanszékének laborjaiban lesz alkalmazva a szoftver.

De feltétel nélkül alkalmazható lesz bármely más laborban illetve hálózaton is.

A megoldás-csomag elsősorban rendszeradminisztrátoroknak készül, a mindennapi mukájukat hivatott megkönnyíteni.

Az alkalmazás egy rendszer-diagnosztizáló és adminisztráló program. A megrendelő igényeit szem előtt tartva fejlesztjük a programcsomagot, ezért az elsősorban kisebb hálózatokban használható, de természetesen nagyvállalati környezetbe  is integrálható.

Termékünk használatával a átjárhatóvá és átláthatóvá válik az - akár eltérő architekúrájú - számítógépek hálózati felügyelete.

Meglévő alternatívák: távoli bejelentkezés az egyes gépekre (külön-külön) és ott helyi diagnosztikai programok futtatása, különböző rendszerjellemzők lekérdezése, de a projekt épp ezt kívánja elkerűlni.
Alternatíva lehet még *nix rendszereken shell scriptek alkalmazása, ami fejlesztése valószínűleg lényegesen rövidebb ideig tartana, mint bármely más programnyelven és az operációs rendszernek is szervesebb részét képezné. Mindezek ellenére a megoldás hátrányát képezné, hogy az adott rendszer mélyreható ismeretét igényelné mind fejleszéskor mind későbbi bővítéskor ezen kívül más más rendszereken, disztribúciókon eltérőek lehetnek az alkalmazott illetve integrált parancsok, programok, azok verziószámai, amik eltérő szintaktikát illetve alapvetően más koncepciókat követelnének meg.
Ezen kívül rendelkezésre állnak hasonló koncepciójú hálózat-felügyeleti rendszerek (pl.: www.n-view.net www.nagios.org), de ezek költségei nem racionalizálhatóak a megrendelő számára, illetve biztosított funkciói nem kielégítőek vagy épp ellenkezőleg, erőforrásigényes, fölösleges funkciókat is szolgáltat.


3. Érintettek és felhasználók

Ebben a fejezetben össze kell foglalni a rendszer által érintett, és az azt majdan használó személyek / szervezetek alapvető jellemzőit. Először nem a konkrét személyek érdekesek, hanem a beosztásuk, viszonyuk a szervezethez és az alkalmazáshoz stb.

Azt kell tudni megállapítani, hogy az érintettek és a felhasználók mindegyikét összegyűjtöttük-e, hiszen a követelmények az ő szükségleteikből adódnak, és sok esetben tőlük szerezhetők be az ide vonatkozó információk.

Ezek után össze kell gyűjteni az adott szerepet (érintett, illetve felhasználó) reprezentáló konkrét személyeket, ha vannak ilyenek, hiszen velük kell együtt dolgozni a fejlesztés számos munkafolyamatában.



3.1. Az érintettek összefoglalása


Elnevezés

Leírás

Szerep

Programozók

Implementálás

A főprogramot, kódolják, megírják a függvényeket. Osztálytervet készítenek.

Vizuális tervezők (designerek)
Az alkalmazás kinézetéért felelnek
Az alkalmazás vizuális struktúráját készítik el.
Tesztelők
Tesztelik a használhatóságot, azt hogy mennyire felhasználóbarát a program. Esetleges támadási felületeket, sebezhető pontokat keresnek az alkalmazásban.
Véleményt alkotnak a programról, ezzel segítve a további fejlesztést.
Termékmenedzser
Reklámtevékenységeket lát el
Felméri az igényeket, reklámozza a terméket. Profit maximalizálása.
Értékesítő
A szoftver értékesítéséért felel, jogosult arra, hogy eladja a programot.
A hivatalos úton történő értékesítése.
Rendszergazda
A termék végfelhasználója.
Ő is egyfajta tesztelő, visszajelzéseivel, igényeivel segíti a fejlesztést.
megrendelő A termék megrendelője.
Igényeivel irányítja a fejlesztés menetét.
Webmester
A termék honlapját menedzseli.
Aktuális információkat publikál a termékról.



3.2. A felhasználók összefoglalása

Elnevezés

Leírás

Illetékes

Rendszergazda/Megrendelő

Használják a terméket.

Tesztelők

Plugin készítők

Új plugineket készítenek az alkalmazáshoz, kibővítik annak funkcióit.

Programozók



3.3 Felhasználói környezet

Mivel az alkalmazás Java alapú, és semmi sem fogja kötni egy operációs rendszerhez, azokon a rendszereken ahol telepítve van Java futattói környezet ott a MaatNet is futni fog, többek között az alábbi platformokon:
Ez természetesen a megrendelő igénye függvényében változhat.
A megfigyelt gépeken természetesen napi 24 órában kell futnia a szerver alkalmazásnak, a kliens, ami lekéri az információkat szintén futhat a nap 24 óráján keresztül, anélkül, hogy bármiféle abnormális helyzet előállna.
Mivel még nagyobb kiterjedésű rendszereket is viszonylag kevés számú rendszergazda felügyel, a felhasználószám várhatóan maximum 10 fő, ami előzetes felmérések szerint lényegesen nem fog változni.


3.4. Illetékesek adatai


3.5. Felhasználók adatai

Tesztelők.
Személyük később konkretizálódik.


4. A végtermék áttekintése


4.1 A termék kapcsolatai

A rendszer felépítése kliens-szerver alapú, a szerverek a kliens kérésére küldi az igényelt információt.

4.2. A termék használatának előnyei

A megrendelő haszna (előnyei)

Az ezt támogató rendszer jellemző(k)

Központosított felügyelet, a telepített rendszerek egyetlen helyről történő megfigyelése.

klens-szerver modell

Gyors és hatékony hibafelderítés és elhárítás.

klens-szerver modell

Költség és időmegtakarítás

klens-szerver modell, kötegelt feladatvégrehajtás

Platformfüggetlen
Java alapú
Erőforrás megtakarítás
Nem kell állandóan futnia a klensnek, a szerverek egyfolytában gyűjtik a információkat a beállított opciók függvényében.

4.3. Feltételezések és függőségek


4.4 Költségbecslés

A költségeket időben mérjük.


4.5. Installáció

Feltételek : legfrissebb JRE megléte

A telepítést az általunk biztosítot telepítő szoftver végzi, emberi beavatkozás, speciális szaktudás nem szükséges.


5. A végtermék jellemzői, biztosított szolgáltatások

A szoftver két fő komponensből épül fel:


Az ügynökök apró hátterben futó kiszolgaló folyamatok, melyek megfigyeleseiket naplózzak, keresnek bennük, rendezik őket es jelentéseket küldenek. A naplófajlok , valamint a megfigyelések gyakorisága egyénileg beállítható.
Az ügynökök által megfigyelt funkciók három csoportba oszthatóak:
  1. Hardwer specifikus:
  2. Szoftver specifikus:
  3. Emberi erőforrás specifikus:
    Felhasználók rendszerben eltöltött ideje, processzeik, quoták
Ezekre az egységekre korlátok határozhatók meg, melyek átlépése esetén az ügynökök automatikusan riasztást küldenek a kliensnek.

A kliens egy kis grafikus alkalmazás amely a felhasználó instrukcióinak megfelelően a kívánt lekérdezéseket végrehajtva összegzi az ügynököktől kapott információt, ezeket listázza, rendezi, vagy keresést hajt rajtuk végre. Lehetőseg van még a megfigyelt gépek távolról történő leállítására, vagy újraindítására, illetve az egyes felhasználóknak üzenet küldésére.
A kliens összes funkciója csak a rendszergazda számára elérhető.

A rugalmas felépítést és bővíthetőséget a kezdetektől szemelőtt tartva a MaatNet mind a szerver mind pedig a klins oldalon lehetőséget nyújt arra, hogy külső függvénykönyvtárak hozzáférhessenek meghatározott adatstruktúráihoz es metódusaihoz, igy lehetővé téve, hogy mindkét komponens, akár harmadik fél által írt, pluginokkal is bővíthető legyen.
A MaatNet teljes egészében Java alapú alkalmazás. Nem szükséges külön webkiszolgáló, vagy alkalmazás szerver, de még böngészőprogram sem a használatához. A programkomponensek  automatikusan detektálják egymást és titkosított kapcsolaton keresztül bonyolítják az adatforgalmat.

6. Korlátozások

Tekintve, hogy a csapat tagjainak az élet szerteágazó labirintusában is helyt kell állnia és ez mindössze egy a feladatok közül, időnk behatárolt és kevés. Annak ellenére, hogy természetesen azon vagyunk, hogy megtaláljuk a kellő egyensúlyt, úgy tűnik, hogy a fejlesztes elsődleges akadályozójának épp a ráfordítható idő szűke bizonyul.


A MaatNet erőforrásigénye elhanyagolhatóan kicsi az alapértelmezés szerintei egy perces frissítesi intervallum mellett. Hardverkövetelménye gyakorlatilag megegyezik az egyes platformokon elérheto
Java 2 futtatói környezet követelményeivel.


Mivel kimondottan a problémák jelzésére illetve előrejelzésére kívánjuk helyezni a hangsúlyt, a
diagnosztikai funkciókon túl a beavatkozas, nem, vagy csak minimalis mértekben tartozik a szoftver feladatai közé. Tehát ha a renszergazda úgy látja helyesnek, hogy valamilyen okból be kell avatkoznia, kérhet távoli bejelentkezést, és menedzselheti a kívant számítógépet, de ezt a felügyeleti rendszertől szeparaltan végezze




7. Minőségi elvárások

Elvarjuk, hogy a szoftver kellően magas teljesítmenyt nyújtson minden támogatott architektúrán, hogy ne legyen benne semmiféle korlátozás a telepítendő rendszer méretét tekintve.
Legyen jól skálázható, az egyedüli teljesítménybeli korlátot a használt hardvereszkozök teljesítménye határozza meg.
Nyújtson alacsony válaszidőt kisebb teljesítményű számítógépeken is.
Legyen hatékony, a rendelkezésre álló erőforrásokat csak a szükséges minimális mértékben használja.
Legyen platformfüggetlen, támogatott rendszerek között: Linux, Mac OS X, Solaris, Windows...
Legyen rugalmas felépítésű, lehetőséget adva külső beépülők írására (plugin).
Legyen biztoságos, támogassa a titkosított adatátvitelt (TLS/SSL).
Nyújtson minimális fejlesztési költségek mellett egységes megjelenést minden támogatott rendszeren.
Elvárjuk, hogy a kliens legyen interaktív, grafikus kezelőfelülete legyen egyszerű, áttekinthető, használata legyen intuitív.
A szoftver legyen felhasználóbarát.

8. Dokumentációkkal kapcsolatos követelmények

Szükség van egy felhasználói kézikönyvre, mely tartalmazza a telepítesi útmutatót, bemutatja a szoftver használatát és beállítását példákon keresztül, valamint egy plugin specifikációra, mely megkönnyíti a későbbi bővítmények készítését. Mindkettő elérhető lesz a csoport honlapjáról, de egy füzet formájában a kész szoftverhez is mellékeljük.

9. Kockázat lista


10. Szótár

Java
A Java egy objektumorientált programozási nyelv, amelyet a Sun Microsystems fejlesztett ki a 90-es évek folyamán. Bár a nyelv neve kezdetben Oak (tölgyfa) volt (James Gosling, a nyelv atyja nevezte így az irodája előtt növő tölgyfáról), végülis Java néven vált ismertté. A Java szó a Sun Microsystems védjegye. Ennélfogva engedélye nélkül más nem használhaja más által kifejlesztett termékek megjelölésére még pl. Java-szerű stb. összetételekben sem, mert ez a védjegyjogosult jogaiba ütközik.

Böngésző
Webböngészőnek vagy böngészőnek (angolul browser) nevezzük azon programokat, melyekkel az interneten található tartalmakat – legtöbbször weblapokat – lehet megtekinteni, illetve az Interneten át elérhető szolgáltatásokat használni.

WiFi
Wi-Fi (úgy is, mint WiFi, Wifi vagy wifi), a Wireless Fidelity rövidítéséből – az IEEE által kifejlesztett vezeték nélküli mikrohullámú kommunikációt megvalósító szabvány. Irodákban, nyilvános helyeken (repülőtér, étterem, stb.) megvalósitott vezeték nélküli helyi hálózat, aminek a segítségével a látogatók saját számítógépükkel kapcsolódhatnak a világhálóra.

Architektúra
A számítógéparchitektúra a számítógépnek vagy annak processzorának rendszertechnikai felépítése, osztályba sorolása.A rendszertechnika a számítógépek egységeinek (CPU központi egység, memória, ki/beviteli egység, perifériák, operációs rendszerek, stb.) összekapcsolódási, vezérlési, működési módjával foglalkozik. Rendszertechnikai szempontból a központi egység például lehet egy- vagy több processzoros, CISC vagy RISC utasításkészletű, egy- két- vagy többcímű. A műveleteket 8, 16, 32, 64 bites adatokkal végzi. A memória lehet mágneses vagy félvezető, különféle címzési rendszerű (lap, szegmens, stb.) szó- vagy byte szervezésű, egyszeres- vagy többszörös hozzáférésű, különböző memóriabusz vezérlési módú. A ki/beviteli egység lehet csatorna (soros vagy multiplex) vagy felfűzött módú, vagy mindkettő egyszerre, a megszakítási rendszerek alapján is osztályozható.

erőforrás
Az erőforrás értelme a számítástechnikában megközelíthető a két alábbi szempont szerint is: hardver alapú, vagy szoftver alapú. A hardver alapú erőforrás azon hardverek kapacitásának összessége, ami egy adott feladat elvégzésére éppen rendelkezésünkre áll, s azt az operációs rendszer rendelkezésünkre is bocsátja. Ugyanakkor szoftveres értelemben az erőforrás jelenthet egy olyan alkalmazást/programot, amit az elvégzendő feladat megoldása éredkében eredményesen felhasználhatunk.

tudásbázis
A tudásbázis egy adott problémakör kérdéseit és az azokra vonatkozó válaszokat, megoldásokat összefoglaló rendszer. Egyaránt lehet számítógépes (pl. adatbázis, szakértőrendszerek, stb...), papíralapú, vagy csupán emberi emlékezetben/emlékekben tárolt.

diagnosztika
Diagnosztika alatt azon feladatkört értjük a számítástechnikában, amely során egy adott számítógép, vagy számítógép rendszer állapotjelzőit monitoroztatják, megvizsgálják, esetlegesen beavatkoznak azok változásaiba. Állapotjelzők lehetnek többek között: a memória telítettsége/kihasználtsága, cpu kihasználtsága, a háttértárak partícióinak kihasználtsági szintjei, egyes hardverelemek és zónák hőmérsékleti adatai, de ide tartozik a rendszert egyidőben igénybevevő felhasználók száma, vagy a felhasználók által indított processzek száma és erőforrásigénye is.

adminisztráció
Az adminisztráció egy számítógép, vagy számítógépes rendszer üzembentartójának feladata, melynek során sokrétű feladatokat lát el, mint például: felhasználók felvitele a rendszerbe, meglévő felhasználók munkakörnyezetének beállítása, karbantartási feladatok ütemezése, vagy elvégzése, a rendszer biztonságának fenntartása, stb...

Távoli felügyelet, távoli adminisztráció
Az adminisztráció azon változata, amikor az üzembentartó a fentebb említett feladatokat nem a helyi gépen (ami előtt ül) hajtja végre, hanem egy másik, számítógépet felhasználva egy olyan hálózaton keresztül jelentkezik be a célszámítógépre, ami azzal fizikailag összeköttetésben van (internet, vagy intranet) és a célszámítógépen a bejelentkezés lehetővé van téve.

nyilvános terminál/információs terminál
Olyan célszámítógép, amelyet az üzemeltetője olyan helyekre telepít, ahol sok ember megfordul és ezen emberek felmerülő kérdéseire a terminál nagy valószínűséggel választ tud adni. Tipikus felhasználási területek: egyetemi információk, menetrendek, tudakozók, egészségügyi intézmények.
plugin
plug-in : beépülő modul. Egy adott szoftverbe vagy hardverbe opcionálisan beépíthető, annak képességeit bővítő vagy módosító kiegészítő modul.

disztribúció:
olyan összeállítás, mely egy felhasználásra kész Linux alapú operációs rendszert, és ahhoz tartozó, válogatott programokat tartalmaz. A disztribúcióknak gyakori eltérései:
verziószám:
A készítők a termék fejlesztése során a verziószám növelésével jelzik az előrehaladás folyamatát. A számozás tipikusan 0.1-ről indul, és az 1.0 verziószámot az első hivatalos kiadás alkalmával éri el. Ezek után a kisebb fejlesztéseket a másodverziószám növelésével (pl.:1.1), míg a jelentős változtatásokat az elsődleges verziószám változatatásával (pl. 2.0) szokás jelezni.

quota
Kvóta. A kvóták kiosztásának célja annak megakadályozása, hogy egy rosszult megírt, vagy rosszindulató program, esetleg felhasználó egyes erőforrásokat kisajátíthasson, és így a rendszer működését veszélyeztethesse.

Shell script
Az operációs rendszerekhez tartozik a felhasználóval (interaktív) kapcsolatot tartó parancsértelmező. A legegyszerubb shellek csak annyit tudnak, hogy egy tetszőleges programot el tudnak indítani (például azt a programot, amelyiknek a nevét a felhasználó a billentyűzeten beadta). A bonyolúltabb shellek pedig akár egy komplett programnyelvet nyújtanak a programozó számára (ilyen shell például a REXX, vagy a UNIX shelljei).


top