Menü Bezárás

Middleware: eszik vagy isszák?

Middleware, a „szoftverragasztó”

Hol is halhattam én már ezt a kifejezést? Hát szakmai körökön kívül ritkán dörren el. Általában az adatbázisok, avagy egymással szinkronban működő különböző programok és operációs rendszerek kapcsán merül fel. Magyarul „köztes elem” lehetne a megfelelő kifejezés rá. A middleware jelentése a látszattal ellentétben annyira nem megfoghatatlan fogalom, inkább csak arról van szó, hogy tág és széles körben elterjedt. Szárazra csupaszítva, definíció szerűen a middleware egy olyan köztes szoftver réteg az adatáramlásban, amely olyan más elemeket köt össze, mint protokollok hálózati rétege, heterogén platformok, és üzleti alkalmazások. Ezért is a becenév: „szoftverragasztó”. Jól hangzott? Akkor bontsuk ki szépen ezt a meghatározást, hogy a laikus is értse.

A middleware eredete

A middleware viszonylag fiatal csillag a számítástechnika egén. Maga a kifejezés már 1968 óta létezik és él – ha a köztudatban nem is, de szakmai körökben bizonyosan. Akkor kezdett előtérbe kerülni, mikor a nyolcvanas évek táján annyira felgyorsultak a fejlesztések, hogy a legújabb alkalmazásokat már problémás volt régebbi rendszerekben futtatni. Ki ne nézegette volna már gondterhelten egy új program – netán számítógépes játék – leírásában, hogy hanyas Windows is az alapkövetelmény ehhez? A middleware ezekre a helyzetekre kínál megfelelő megoldást, melynek köszönhetően gyorsan és széles körben elterjedt megoldás lett mostanra. A middleware emellett lehetőséget ad több alkalmazás összekapcsolásával egy nagyobb alkalmazást létrehozni illetve elősegíti a megosztott feldolgozást is. Szóval hasznos kis dolog.

Tipikus middleware helyzet

A puding próbája az evés, úgyhogy legjobban példákon keresztül tudnám ezt a kifejezést is érzékeltetni. Ugye azt mondtuk, a middleware egy köztes elem, tehát olyan helyzetekben lehet rá szükség, amikor két másik réteg valami módon kontaktusba kerül, és ezek kapcsolatát akarjuk egy külön szoftverrel irányítani. Most példaként mondani fogok még egy csúnya szót: Enterprise Service Bus, avagy ESB. Ez arra jó, hogy ne az összes alkalmazás legyen az összes másik alkalmazással közvetlen kapcsolatban, mert akkor iszonyat macerás mindegyikben átírni, ha csak egynél is változtatásra kerül a szolgáltatás elérése. Úgyhogy ahelyett, hogy százkismillió helyen kellene átjavítani, elég az ESB-ben egyetlen egyszer szerkeszteni. Ugye milyen kényelmes? Lehet ezt még persze tovább cifrázni, de nekünk ebben a cikkben most legyen ennyi elég. Jó példa lehet még middleware helyzetre jó pár alkalmazásszerver. Egy valamire való alkalmazástól ugyebár elvárt, hogy fusson mindenféle operációs rendszeren. Ezt el lehet érni úgy is, hogy szegény fejlesztőknek agyonbonyolítjuk az életét és a programot eleve úgy írják, hogy tele pakolják vagy Linux vagy Windows vagy Android vagy vagy vagy opciókkal. De lehet úgy is, hogy ők csak koncentrálnak arra, amiben nagyon jók, az alkalmazás fejlesztésére és csatolnak az alkalmazáshoz egy middleware szoftvert, ami kezeli a kapcsolódást és egy csomó más hasznos dolgot. Végezetük pedig ki kedvelné, amikor minden egyes felülethez újra és újra be kell lépnie különböző felhasználói fiókokkal? Ez viszonylag keveseknek kedvelt időtöltése. Egy middleware ebben az esetben alkalmas arra, hogy egyszeri belépéssel („Single SIgn On”, avagy SSO, ahogy a művelt angol mondja) végigvezessen minket az összekötött rendszereken. Ezt persze egyszeri felhasználóként is tudjuk értékelni, de gondoljunk bele, hogy örülnek a nagyobb cégek, ahol tucatnyi különböző alkalmazást használnak nap mint nap. Az ő esetükben általában különböző Identity Management eszközök látnak el hasonló szerepet.

Megvannak persze ennek a megoldásnak is a maga korlátai. Bizonyos feladatokat például csak operációs rendszerek láthatnak el, amit pedig időközben a szoftverragasztók fel tudtak mutatni újdonságként, az operációs rendszerek is „eltanulták” és bizonyos funkciókat már beépítettek magukba.

Middleware a szolgáltatásorientált architektúra (SOA) rendszerében

Amellett, hogy ne ássuk bele magunkat túl mélyen a témába, szerettem volna legalábbis említés szintjén bedobni ezt a kifejezést is a middleware kapcsán. Flancoljunk egy kicsit és használjuk a rövidítést meg az anglicizmust. A SOA egy nem is olyan újhullámos rendszertervezési szemlélet, amely az egyes elemek laza csatolásán alapszik mindemellett egy jól átlátható és elérhető integrációt tesz lehetővé. Ez annyira nem is ellentmondásos, mint elsőre hangozhat. A hangsúly maga a szolgáltatás előtérbe helyezésén van, ezáltal a rendszer is rugalmasabb, könnyebben változtatható és illeszthető, ahol egyes elemek merev és kőbe vésett csatlakoztatása így kifejezetten hátrány is lenne. Ennek persze ettől még megvannak a maga hátrányai, mégis a felgyorsult, rohamosan fejlődő világunkban sokkal gyorsabb reakciókat és több változtatási lehetőséget hagynak. Ilyen rendszerben a middleware tucatszor alkalmazott megoldás. Gondoljuk el, hány alkalmazás kapcsolódik egymáshoz ilyen olyan szolgáltatással és rendszerrel, ezekben a kapcsolódási pontokban bizony, jól jön egy szoftverragasztó, ami segít megtartani ezeket a nem túl laza, de azért mégiscsak működőképes kapcsolódási pontokat.