Diplomamunka

Összefoglaló. Az internet napjaink egyik meghatározó információforrása, azonban a segítségével fellelhető információ szórt formában, nem feltétlenül eredeti tárolási struktúrájának megfelelően van jelen, hanem egymással hivatkozásokon keresztül összekapcsolt, eltérő terminológiájú dokumentumok formájában érhető el. Gyakori feladat, hogy egy-egy keresőkérdésnek megfelelő dokumentumhalmazt adjunk vissza válaszként. A keresés ilyen megvalósításhoz azonban feltétlenül szükséges a weben található tartalom ütemezett bejárása és feltérképezése.

Ahhoz, hogy a dokumentumhalmaz bejárása hatékonyan történjen, azaz a gyakran frissülő oldalakat kellő gyakorisággal látogassuk meg, elengedhetetlen a párhuzamosítás. Ugyanakkor egy számítógépeken átívelő, párhuzamos végrehajtást támogató elosztott rendszer működtetése lényegesen összetettebb, mint egy központosított rendszeré. További kulcsfontosságú aspektusok a könnyű nyomonkövethetőség és a rugalmas szerkezet. Elengedhetetlen, hogy a kialakítandó rendszer támogassa a feladatok végrehajtásának figyelését, valamint könnyen alkalmazkodjon eltérő feladatokhoz is (pl. konkrét tartományok bejárása, nyelvspecifikus viselkedés, hivatkozási szerkezet-vizsgálat).

A felsorolt elvárásoknak eleget tevő rendszer kialakítására a szerző egy olyan alaparchitektúrát mutat be, amelyet egymáshoz lazán kapcsolódó, jól definiált felületekkel illeszkedő, üzenetekkel kommunikáló egységek alkotnak. A laza csatolás lehetővé teszi, hogy az egyes egységeket különböző számítógépeken futtassuk, másrészt támogatja új funkcionalitás beépíthetőségét. Az egységek közti helyi vagy távoli kommunikációt a rendszer átlátszó módon kezeli, az egységek összekapcsolásának módja pedig XML állományok segítségével deklaratív módon írható le, mindez elrejti az elosztott rendszer koordinációjával kapcsolatos teendőket és csak saját feladatukra koncentráló önálló egységek fejlesztését teszi lehetővé.

Az architektúra működését a szerző egy referencia-implementációval demonstrálja, amelyben egy vezénylő komponenshez számos ügynök kapcsolódik. Mind a vezénylő, mind az ügynökök számos, akár több számítógépen futó egységből állnak. A vezénylő feladata a web particionálása: egy-egy szeletét egy-egy ügynöknek utalja ki. Az ügynökök feltérképezik a feladatul kapott kiszolgálót vagy tartományt, a külső hivatkozásokat pedig visszaküldik a vezénylőhöz. Mivel az ügynökök tipikusan a bejárandó tartományokhoz földrajzilag közeli helyen működnek, a külső hivatkozások részaránya pedig jelentősen kisebb, mint a belső hivatkozásoké, jelentős hálózati forgalom-csökkenés érhető el. A rendszer működésének figyelését egy grafikus alkalmazás támogatja, amely lehetőséget biztosít az aktuális paraméterek lekérdezésére, esetleges módosítására.

Az alkalmazás megvalósítása a .NET keretrendszerre alapul, erőteljesen támaszkodik annak szálkezelési és távoli kommunikációbeli építőelemeire. A rendszer forráskódja C# nyelven készült, az adatműveleteket a flexibilitás érdekében adatbázis-kiszolgáló végzi, amely területen a Microsoft SQL Server megvalósítására esett a választás, ez azonban a hatékonyság további fokozása érdekében hasonló illesztőfelület mellett egyszerű struktúrált állományra cserélhető, az implementáció csak csekély mértékben használja ki az SQL erejében rejlő lehetőségeket.

Társfejlesztő: Pallos Péter.

Licenc: GNU Általános Nyilvános Licenc. A teljes projekt elérhető a SourceForge oldaláról.

Letöltés: Diplomamunka (angol nyelvű) PDF Előadás (magyar nyelvű) PDF Alkalmazás (kicsomagolható a GPL-licencű 7-Zip archiváló segítségével) 7z