Regisztráció és bejelentkezés

Felhőalapú szoftverarchitektúrák hatékonysági vizsgálata egymástól függő adatfolyamok feldolgozásán

A felhő manapság egy kiforrott technológia, számos felhasználási területtel. Olyannyira a mindennapjaink részévé vált, hogy szinte már elképzelhetetlen olyan tárgyterület, ahol az ott alkalmazott szoftvermegoldás ne használná fel azt. Ilyen széleskörű felhasználás mellett bármilyen fejlesztés ezen a területen komoly hatást tud elérni. 

Az egyik leggyakoribb feladata a felhőnek nagy mennyiségű adat feldolgozása. Ez az adat sokfajta formában lehet elérhető, azonban legtöbbször rekordok folyamaként érdemes rá tekintenünk, melyeket valamilyen módon módosítanunk, kezelnünk kell. Ennek a formátumnak köszönhetően lehetséges a folyamatos és párhuzamos feldolgozás megvalósítása, amire a felhőarchitektúrák  tökéletes megoldást nyújtanak. 

Bizonyos tulajdonságai a felhasznált adatforrásoknak azonban megnehezíthetik ezeknek az architektúráknak az implementációját. Nehézséget okozhat például amennyiben több, egymástól függő adatforrásból szeretnénk előállítani egyazon kimeneti adatrekordokat. Ezenfelül még amennyiben több lehetséges megoldási terv is születik, nem lehetünk biztosak benne, hogy az adott feladatra melyik milyen hatékony, de még abban sem melyik a leghatékonyabb az összes közül. 

A dolgozatomban egy konkrét implementációs feladaton szemléltetem a korábbi problémakört, ahol egy General Transit Feed Specification (GTFS) szabvány szerinti közlekedési adatforrást dolgozok fel. A GTFS szabvány jellegéből adódóan, a feldolgozás során több különböző, de egymástól függő adatfolyamot kell egyszerre kezelni egy közös kimeneti rekordhalmaz előállításához. A feladat példaként szolgál egy tipikus esetre, amikor is egy külső, számunkra módosíthatatlan formátumú adatforrást szükséges lefordítani egy általunk definiált belső reprezentációra. 

Dolgozatomban több különböző architekturális és implementációs párosítást is megvizsgálok a hatékonyságuk szempontjából a GTFS szabványú adatforrás feldolgozására. Összehasonlítok egy mikroszolgáltatásokon, egy függvényeken (Function-as-a-Service, FaaS), és egy adatfolyam feldolgozó keretrendszeren alapuló megoldást (Apache Kafka). Elemzésemben egy általam kialakított vizsgálati környezetben végzem a teljesítménymérést a javasolt megoldási módszereken. A mérési környezetben különböző erőforráshasználat (CPU, memória) mellett hasonlítom össze a felhasználó számára legfontosabb metrikát, a teljes válaszidőt (a program teljes futásidejét). A mérhető eredmények mellett bemutatom az egyes megközelítések egyéb előnyeit és hátrányait.

szerző

  • Pfemeter Márton Géza
    Mérnök informatikus szak, alapképzés
    alapképzés (BA/BSc)

konzulensek

  • Fodor Balázs
    Doktorandusz, Távközlési és Médiainformatikai Tanszék
  • Dr. Sonkoly Balázs
    egyetemi docens, Távközlési és Médiainformatikai Tanszék

helyezés

III. helyezett