Bizonyára sokan szeretnénk megtudni, hogy mit is jelent pontosan a köztesréteg fogalma. Azonban nem jó oldalról közelítjük meg, ha a tranzakció-feldolgozó szerverekről és adatbázis kapcsolódási koncentrátorokról kezdünk el beszélni. A legtöbben a mindennapi életből vett példákra kíváncsiak, melyekkel a köztesréteg jelentősége megmagyarázható.
Ha a Google-ben rákeresünk, számos oldalt találunk a témában, köztük az alábbi definíciót:
Köztesréteg: a szoftver iparág által előszeretettel használt kifejezés. A fogalom homályos, így bármilyen olyan szoftver programot érthetünk alatta, mely két másik program – mint például a webszerver és az adatbázis program – között összekötő kapocsként működik. A szónak van egy sokkal körülhatároltabb jelentése is, vagyis a köztesréteg egy olyan program, mely a hálózat és az alkalmazás között olyan feladatokat lát el, mint például a hitelesítés. Azonban a köztesréteg funkcionalitása gyakran az alkalmazási vagy hálózati szoftverbe van beépítve, így nem beszélhetünk pontos meghatározásról, ezért próbáljuk meg elkerülni a szó használatát.
Ezt olvasván érdemes elgondolkodni azon, hogy hogyan határozzuk meg a köztesréteget, és miért is olyan fontos. Ha egy valódi életből vett hasonlatot keresünk, akkor a különböző számítástechnikai tudással és szoftverek terén szerzett tapasztalattal rendelkező emberek is egyaránt megértik, hogy mit rejt a fogalom. A köztesréteg olyan, mint a vízvezeték szerelés. Ez négy szempontból is igaz.
Az első ok az, hogy a köztesréteg legtöbbször láthatatlan
A házainkban nem láthatók a vízvezetékek. Amit tapasztalunk a meglétükből az az, hogy van vizünk. Fogyasztóként nem látjuk a köztesréteget. Amit látunk, azok a weboldalak és az információ áramlása, melyet a köztesréteg tesz lehetővé. Ez részét képezi annak, hogy miért nehéz a köztesréteget meghatározni. Ha szoftverrel dolgozunk, és használjuk, akkor ismerjük a logikai szempontból a legfelsőbb szinten elhelyezkedő szoftver csomagokat, mint például az e-kereskedelmi webes alkalmazásokat, és ismerjük az alsóbb szinteken létező csomagokat, mint például az adatbázisokat és az operációs rendszert. A középső rész annak a vízvezetéknek felel meg, ami mindent összeköt, és ezért kevésbé konkrétnak illetve meghatározhatónak tűnik.
A második ok az, hogy a köztesréteg szabványosítást jelent
A vízvezetékrendszerünket teljesen az alapoktól kezdve is kiépíthetjük. Azonban sokkal könnyebb, ha megvesszük a vízvezeték-szereléshez szükséges alkatrészeket. Szoftverfejlesztőként megtervezhetjük és kifejleszthetjük a saját alkalmazásszervereinket, adatbázis kapcsolati eszközkezelőinket, authentikáció-kezelőinket, üzenetküldési rendszereinket stb. Azonban nem könnyű ezek kifejlesztése és karbantartása. Sokkal könnyebb, ha a köztesréteg komponenseket használjuk, melyek megalapozott és nyílt szabványokra épülnek. A köztesrétegben ezek a szabványok olyan funkciók libtárainak formáját öltik, melyeket a használt programok jól meghatározott programozási felületeken (API) keresztül hívnak meg. A feladatunk csupán annyi, hogy meghívjuk ezeket a funkciókat ahelyett, hogy a sajátjainkat hoznánk létre.
A harmadik ok az, hogy a köztesréteg összetett rendszerek különböző részeit köti össze
A házunkban van konyha, fűtés, fürdőszoba, mosógép, kerti csap stb. Mindegyik fontos szerepet játszik abban, hogy a házunk lakható legyen. Szinte soha nem kell aggódnunk, hogy nincs víz, mivel a vízvezetékrendszer robusztus és megbízható, és lehetővé teszi, hogy a víz a vezetékekben áramoljon. A köztesréteg lehetővé teszi, hogy az információ az összetett web-alapú alkalmazások között áramoljon. Az egyik fő feladata az, hogy a rendszereket, az alkalmazásokat és az adatbázisokat biztonságos és megbízható módon összekösse. Például tegyük fel, hogy egy drága pulóvert veszünk az interneten. Mi is zajlik le egy ilyen internetes vásárlás során? Megnézegetjük a különböző pulóverek képeit, kiválasztjuk a színt és a méretet, begépeljük a bankkártyánk számát. A színfalak mögött a köztesréteg biztosítja azt, hogy az adott üzlet tárház adatbázisa megmutassa a raktáron lévő pulóvert. Ezt követően kapcsolódik a bankkártyát biztosító bank adatbázisához, illetve azt is biztosítja, hogy a kártyán van elegendő összeg a vásárláshoz, emellett a köztesréteg a szállító vállalat adatbázisához is kapcsolódik a szállítás dátumának megerősítése érdekében. Mindezeken túl a köztesréteg azt is biztosítja, hogy egyszerre több száz vagy több ezer ember vásárolhasson a weboldalon. Míg a vásárlónak úgy tűnik, hogy egy weboldalt lát maga előtt, a köztesréteg számos különböző helyen lévő számítógépet kapcsol össze, melyek mind az adott üzlet e-kereskedelmi alkalmazását futtatják, egyetlen klaszterben. Ez miért is fontos? Azért, hogy biztosítsa azt, hogy mindig elérjük a boltot az interneten, még akkor is, ha néhány számítógép nem működik karbantartási vagy energiaellátási okokból.
Van egy másik hasonlóság a háztartási vízvezetékek és a köztesréteg között, mégpedig az, hogy rendszereket kötnek össze. Mind a kettő lehetővé teszi számunkra, hogy mások által, különböző időpontokban készített rendszereket kössünk össze, anélkül, hogy mindent az elejéről kellene összeraknunk. Ha egy pillanatra magunk elé képzeljük a házunkat, akkor láthatjuk, hogy abban az esetben, ha egy régebbi épületről van szó, a vízvezetékek több generációja található meg benne. Egy új vízmelegítő telepítése során nem kell a mosógépünket több szervízcsomaggal frissítenünk. A köztesréteg egyik leghatékonyabb megközelítése a szolgáltatás-orientált architektúra (SOA), mely a vállalati rendszer buszra (ESB — Enterprise Service Bus) épül. Ahogy a név is utal rá, az ESB szervert, üzenetküldést és API-kat nyújt, melyek úgy működnek, mintha egy hardver busz lenne. Annak érdekében, hogy a különböző időben, különböző vállalatok által fejlesztett vállalati szoftver alkalmazásokat integráljuk, melyek akár különböző protokollokon keresztül kommunikálnak, nem kell őket újból írnunk, hogy azok egy nyelvet beszéljenek. Az ESB lehetővé teszi, hogy ezeket az alkalmazásokat szolgáltatásokként a buszra csatlakoztassuk. Az ESB a protokollok közötti üzeneteket átalakítja és a megfelelő szolgáltatásokhoz irányítja azokat. A Red Hat februárban bejelentette a JBoss SOA Enterprise Platform megjelenését. Ez a platform rugalmas, nyílt forráskódú megoldást nyújt a vállalatok számára annak érdekében, hogy ezeket az alkalmazásokat, a SOA szolgáltatásokat, illetve az üzleti eseményeket integrálják, valamint automatizálják az üzleti folyamatokat.
A negyedik ok az, hogy a köztesréteg lehetővé teszi, hogy más feladatokra koncentráljunk
Amikor bővítjük a házunkat, rengeteg mindenre kell gondolnunk, a fürdőszobai kellékekre, a konyhai eszközökre, a padlóra, a színekre és hogy hogyan fizetjük majd ezt ki, ez pedig egy meglehetősen stresszes folyamat. A köztesréteg minden láthatatlan funkcióra odafigyel, így mi (szoftverfejlesztőként vagy vállalati vezetőként) olyan szoftverek fejlesztésére összpontosíthatunk, melyek az üzleti problémák megoldására irányulnak, és amelyek az ügyfelek szükségleteit elégítik ki.
Talán jó, ha megfontoljuk a következő tanácsot: ha új városba költözünk, ne az legyen az első, hogy egy orvost keresünk. Ha van egy jó vízvezeték-szerelőnk, akkor éjszakánként nyugodtan alhatunk majd. Ez jellemző a köztesrétegre is. Legtöbbször láthatatlan, de lehetővé teszi, hogy a fejlesztők és a vezetők nyugodtan aludjanak, és elvégzi a feladatokat.