Csoport neve: MAAT

Feladat sorszáma: 2.

Feladat címe: Hálózat manager






ANALÍZIS MODELL




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

szucst@iit.uni-miskolc.hu


2006. április 21.

Tartalomjegyzék

 

1. Bevezetés

2. Kezdeti osztálydiagram

2.1 Osztálydiagram

2.2 Osztályok felsorolása

2.3. Alrendszerek

3. Az első alrendszer modellje

3.1 Statikus modell

3.1.1 Kapcsolatok pontosítása

3.1.2 Attribútumok azonosítása

3.1.3 Bázisosztályok keresése

3.2. Dinamikus modell

3.3. Funkcionális modell

3.4. Operációk azonosítása

3.5 Az analízis modell osztálydiagramja.

3.6. Az analízis modell osztályainak listája.

3.6.1 Első osztály neve

3.6.2. Második osztály neve.

X. Mellékletek

 

 

1. Bevezetés

 Ebben a dokumentumban foglaljuk mindazon információkat, amelyek a MaatNet hálózati adminisztrációs szoftver tervezése során ezidáig a birtokunkba jutott, illetve amelyek a szoftver implementációjának szempontjából elengethetetlenül fontosak.

2. Kezdeti osztálydiagram

 

2.1 Osztálydiagram

 A szovtver két fő komponensből áll: a megfigyelt gépeken futó ügynökökből illetve a megfigyelő gépén futó kliens alkalmazásból.




 

2.2 Osztályok felsorolása

KLIENS:

MaatNetApp: a megjelenítést fogja össze
a kliens

AppWindow: az alkalmazás fő ablaka

ChildWindow: felugró ablakokat osszefogó absztrakciós szint

PropertyWindow: tulajdonságok beállítása

FocusWindow: kiválastott rendszerről teljes, részletes leírás

Keretrendszer: a fő osztály

Host: absztrakciós szint a kiválasztott hoszt számára

Monitorozás: a különböző lekérdezéseket fogja össze

Adminisztráció: a beavatkozó műveleteket fogja össze

Kommunikáció: az egyes kommunikációs eljárások különbözőségeit kivánja átfedni

Socket: Socket alapú kommunikáció - alapértelmezett

TCP/IP: opcinális, TCP/IP alapú kommunikáció


ÜGYNÖK:

Kommunikáció, Socket, TCP/IP: uaz mint a kliens esetében...

Naplózó: Feladata egyrészt a megfigyelt értékek kiolvasása a helyi naplófájlból, vagy az erre rendelkezésre alló memóriaterületről (gyorsítótár), illetve ezen értékek frissítése.

Beavatkozó: az ügynököt futtató rendszer vezérlését lekérdezését fogja össze.

Linux: Linux specifikus funkciók megvalósítása.

Windows: opcionális, a szoftver bővíthetőségét célozza. A beavatkozással kapcsolatos platform specifikus funkciók kerülnek ide.

Mac: opcionális, a szoftver bővíthetőségét célozza. A beavatkozással kapcsolatos platform specifikus funkciók kerülnek ide.

 

2.3. Alrendszerek

A MaatNet kliens alkalmazása három alrendszerből épül fel:
 o Megjelenítő alrendszer
     Feladata az ügynökök által szolgáltatott információk felhasználóbarát megjelenítése.
 o Vezérlő alrendszer
     Feladata a szoftver működésének vezerlése, a grafikus felület meghatározott elemeinek informacióval való fetöltése, illetve a felhasználó interakciójának megfelelő reakciók menedzselése.
 o Kommunikációs alrendszer:
     Feladata, hogy kapcsolatot teremtsen a Vezerlő rendszer, valamint az ügynökök között. Üzeneteket továbbít mindkét irányban. Lehetőség van több halózati protokoll támogatására, mely a felsőbb szintek számára transzparens módon történik.

 A kliens alrendszerei:



Az agent alrendszerei:



 
 

3. Alrendszer modellek

 

3.1 Statikus modell

Vezérlő alrendszer

 

Megjelenítő alrendszer

Kommunikációs alrendszer

3.1.1 Kapcsolatok pontosítása

Kiválasztás: egy a beállításokban szereplő tetszőleges host kiválasztása. A továbbiakban a monitorozás vagy adminisztráció ezen a hoston történik.
Monitorozás: a kiválasztott hostról történő lekérdezéseket fogja össze
Adminisztrálás: a kiválasztott hoston történő beavatkozást fogja össze
Lekérdezés: a kommunikációs alrendszer felől lekérdezéseket a naplózó felé irányítjuk. A   naplózó pedig a már beolasott értékekből  válaszol a lekérdezésre.
Beavatkozás: a megfigyelt rendszer működésébe történő beavatkozás
Frissít: A naplózó által számontartott ertékek frissítése.


3.1.2 Attribútumok azonosítása

(Lásd: 3.1.6 ponttól kezdve)

 

3.1.3 Bázisosztályok keresése

A vizsgálat során egy bázisosztályt találtunk

a kliens Megjelenítő alrendszerében: a "MaatNetApp"

 

3.2. Dinamikus modell

 

A rendszer funkcióinak bősége miatt egyetlen esetet veszünk csak át részletesebben. Tegyük fel, hogy a klienst működtető adminisztrátor egy -a jogköréből alanyi jogon járó- újraindítási parancsot ad ki egy adott hostra. Az esetet szekvencia-diagramokon ábrázoljuk:




Lássuk tehát, hogy hogyan is zajlik le az eseménysorozat:

Kliens oldalról:

1. Az adminisztrátor a grafikus felhasználói környezet előtt ülve a megfelelő adminisztrációs funkciót kiválasztva (restart) elindítja a mechanizmust.
2. A restart funkció paramétere az újraindítani kívánt host. Ezt a keretrendszer ellenőrzi, hogy megvalósítható-e, tehát hogy egyátalán online-e az adott host és ha igen, akkor fut-e rajta az agent.
3. Ha a host-tól igenlő válasz érkezik, folytatódhat a mechanizmus.
4. A keretrendszer felszólítást küld az Adminisztráció nevű osztálynak, hogy küldjön át egy restart parancsot a kommunikációs rétegen az adott hostra.
5. Az kiadott parancs a kommunikációs alrendszerben kódolásra kerül, hogy átküldhető legyen a hálózati közegen.

Agent oldalról:

1. A hálózati közegről érkezett parancs dekódolásra kerül.
2. A dekódolás során a Kommunikációs osztály eldönti a parancs jellegét (jelen esetben adminisztrációs jellegű). A döntés után a parancs továbbítódik a Beavatkozó osztályhoz, amely a kliens operációs rendszerének megfelelő rendszerhívássá alakítja a parancsot. Ezután a parancs végrehajtódik.

3.3. Funkcionális modell

A legfontosabb funkciók részletes leírása:

3.3.1 Monitorzási funkciók:

- CPU kihasználtsági állapota

Ezen funkció által kérhetünk aktuális információt a host-ok CPU kihasználtságáról, ezáltal informálódhatunk róla, hogy az egyes hostokon milyen szintű igénybevétel van.

Az állapotot naplófájlba menti az agent, a mentési időköz beállítható manuálisan, vagy alapértelmezésben 1 perc lesz. Aktuális iformációnak számít tehát az 1 percnél nem régebbi CPU állapot. A GUI összefoglaló ablakában ez az információ tehát 1 percenként frissitésre kerül a naplófájl alapján. Ezen funkció adatáramlási igénye tehát nem lesz számottevő. Az adatáramlási igény a frissítési időköz megváltoztatásával egyenes arányban fog változni.

- Memória kihasználtsági állapota

A memória kihasználtság szintén naplófájl alapján lesz aktualizálva, így tehát az 1 percnél nem régebbi állapotinformáció aktuálisnak számít majd a rendszerben. Adatáramlási igénye szintén nem számottevő. Ezen funkció az egyes hostok igénybevételére alkalmas a CPU kihasználtsági szint lekérdezésével egyetemben.

- Diszkek, partíciók kihasználtsági állapota

Ezen funkció által informálódhat a klienst használó user a megfigyelt hostok tárolóinak telítettségi állapotáról. Az aktuális adatok megjelenítése szintén a naplófájlból kerül kiolvasásra a frissítési időköz beállításától függően. Adatáramlási igénye szintén nem számottevő.

- Futó processzek kilistáztatása

Ezen funkcióban az aktualitás sokkal fontosabb tényező, mint az előzőekben. Ezért ezesetben az aktuális információt a rendszer közvetlen a hostra irányuló rendszerhíváson keresztül fogja lekérdezni. A naplózott adatok ezesetben csak statisztikai jelentősséggel bírnak egy esetleges lekérdezés során. Adatáramlási igénye az előző funkcióknál valamivel számottevőbb, hiszen viszonylag rövid frissítési időközzel,

- Bejelentkezett felhasználók kilistáztatása

Ezen funkció segítségével informálódhatunk az adott hostra bejelentkezett felhasználók loginneveiről. Ezt az információt szintén a naplófájlból történő kiolvasás útján szerzi meg a rendszer.

Adminisztrációs funkciók:

- Üzenetküldés felhasználóknak

Az adott platform üzenetküldő szolgáltatásait kihasználva (linux: send, windows: net send, stb...) üezenetet juttathatunk a megfigyelt felhasználó felé. Az üzenetküldés interakciót nem tesz lehetővé. Ezen funkció adatáramlási igénye igen csekély, hiszen nem ütemezett funkció.

- Felhasználók processzeinek abortálása

A valamilyen szempontból gyanús processzek a rendszergazda döntése nyomán abortálhatók lesznek. Ezen funkció adatáramlási igénye igen csekély, hiszen nem ütemezett funkció.

- Felhasználók kijelentkeztetése

A valamilyen szempontból gyanús felhasználók a rendszergazda döntése nyomán kijelentkeztethetők lesznek. Ezen funkció adatáramlási igénye igen csekély, hiszen nem ütemezett funkció.

- Hostok lállítása, újraindítása

A rendszergazda döntése alapján az agentet futtató hostok leállíthatók/újraindíthatók lesznek. Ezen funkció adatáramlási igénye igen csekély, hiszen nem ütemezett funkció.

A fent említett funkciók közül kiválasztottunk kettőt, melynek funkcionális modelljét együttműködési diagramon ábrázoltuk:

Az adminisztrációs funkciók funkcionális modelljét a "restart" funkción keresztül mutatjuk be:

A monitorozási funkciók funkcionális modelljét a "memória állapot lekérdezése" funkción keresztül mutatjuk be:

3.4. Operációk azonosítása

A dinamikus és funkcionális modell felhasználásával az osztálydiagramot kiegészítjük az egyes osztályokhoz tartozó operációkkal. Eközben újabb osztályok, kapcsolatok és attribútumok szükségességére is fény derülhet.

Ha szükséges, dokumentáljuk azokat a meggondolásokat és döntéseket, amelyek az osztálydiagram kialakításához vezettek.

Ha az áttekinthetőséget javítja, az alpont további alpontokra tagolható.

3.5 Az analízis modell osztálydiagramja



3.6. Az analízis modell osztályainak listája

KLIENS:

ÜGYNÖK:

 

3.6.1 Keretrendszer

 

Név

Típus

Leírás

 username

 string

 felhasználó név

 passwd

 string

 jelszó

 

 

 


Név

Argumentumok

Működése, feladata

 GetUserName

 username

 felhasználónév bekérése

 SetUserName

 username

 felhasználónév beállítása

 GetPasswd

 passwd

 jelszó bekérése

 SetPasswd  passwd  jelszó beállítása
 GetState  host elérhetőségének vizsgálata


 

3.6.2. Host

 

 

 

Név

Típus

Leírás

 IP

 int array[4]

 host IP címe


 

 

 

 

 


Név

Argumentumok

Működése, feladata

 GetIP

 IP

 host IP címének lekérése

 

 

 

 

 

 


 

3.6.3. Monitorozás

 

Név

Típus

Leírás

 host

 string

 host neve

 

 

 

 

 

 


Név

Argumentumok

Működése, feladata

 GetCPUstate

host

 CPU állapot lekérdezés

 GetMEMstate

host

 MEM állapot lekérdezés

 GetDISKstate

host

 DISK állapot lekérdezés

GetPROC host  processzek listája
GetUSERS host  felhasználók listája


 

3.6.4. Adminisztráció

 

Név

Típus

Leírás

 host

 string

 host neve

 str

 string

 üzenet a felhasználónak

 proc

 int

 processz PID-je

 user  string  felhasználónév

Kitöltési útmutató (tehát nem a formátum része): A típus még hiányozhat, vagy lehet általános (pl. szöveg).

Név

Argumentumok

Működése, feladata

 SendMESSAGE

 str

  üzenetküldés

 KillPROC

 prc

  processz kilövés

 BanUSER

 user

  felhasználó kijelentkeztetése

 Halt  host   host leállítása
 Restart  host   host újraindítása

Kitöltési útmutató (tehát nem a formátum része): Az argumentum lista még hiányozhat, vagy lehet, hogy nem teljes

 

3.6.5. Kommunikáció

 

Név

Típus

Leírás

 packet

 string

 hálózti rétegen átküldendó parancs/kérelem

 

 

 

 

 

 

Kitöltési útmutató (tehát nem a formátum része): A típus még hiányozhat, vagy lehet általános (pl. szöveg).

Név

Argumentumok

Működése, feladata

 SendPacket

 packet

 Csomag átküldése a hálózati rétegen

 GetPacket

 packet

 Csomag fogadása a hálózati régetből

 

 

 

Kitöltési útmutató (tehát nem a formátum része): Az argumentum lista még hiányozhat, vagy lehet, hogy nem teljes

 

3.6.6. Naplózó

 

Név

Típus

Leírás

 refreshtime

 int

 frissítési idő

 log_content

 string

 naplózandó tartalom

 

 

 

Kitöltési útmutató (tehát nem a formátum része): A típus még hiányozhat, vagy lehet általános (pl. szöveg).

Név

Argumentumok

Működése, feladata

 SetrefreshTime

 refreshtime

 frissítési idő beállítása

 

 

 

 

 

 

Kitöltési útmutató (tehát nem a formátum része): Az argumentum lista még hiányozhat, vagy lehet, hogy nem teljes

 

3.6.7. Beavatkozó

 

Név

Típus

Leírás

 command

 string

 kiadandó parancs

 

 

 

 

 

 

Kitöltési útmutató (tehát nem a formátum része): A típus még hiányozhat, vagy lehet általános (pl. szöveg).

Név

Argumentumok

Működése, feladata

 DoCommand

 command

 Parancs elvégzése

 GetPlatformType

 

 Platform típus megállapítása