Alkalmazásvirtualizáció

A Wikipédiából, a szabad enciklopédiából

Az alkalmazásvirtualizáció a virtualizáció egy fajtája, olyan szoftvertechnológiák összefoglaló neve, melyek elszigetelve az alkalmazást (az alkalmazás konfigurációs rétegét) az alatta futó operációs rendszertől, növelik annak átültethetőségét (portolhatóságát), menedzselhetőségét és kompatibilitását. Egy teljesen virtualizált alkalmazást nem telepítenek a szó megszokott értelmében,[1] bár ugyanúgy futtatható, mintha telepítve lenne. Az alkalmazás futtatásakor úgy érzékeli, hogy az eredeti operációs rendszerrel és annak erőforrásaival van kapcsolatban, de a valóságban nem ez történik. Az alkalmazásvirtualizációt megkülönbözteti a virtuális gépektől, hogy azoknál a teljes operációs rendszer virtuális környezetben fut, nem csak egyes alkalmazások.

Leírás[szerkesztés | forrásszöveg szerkesztése]

Az alkalmazásvirtualizáció korlátozott mértékben jelen van a modern operációs rendszerekben, mind Microsoft Windows, mind Linux alatt. Például az IniFileMappings-t a Windows NT-ben vezették be, hogy az eredetileg Windows 3.1 alá készült alkalmazások által használt INI fájlokat a regisztrációs adatbázisba virtualizálják.[2] Hasonló módon alkalmaznak a Windows Vista alatt fájl- és beállításjegyzék-virtualizációt, hogy az örökölt (legacy) alkalmazásokat, amik felhasználói adatokat próbálnak menteni a korábbi rendszerekben mindenki számára, ám az újabb Windowsokban csak privilegizált folyamatok számára írható könyvtárba, anélkül működőképessé lehessen tenni, hogy magasabb felhasználói jogosultságokkal kelljen futtatni azokat (ami biztonsági kockázattal járna).[3]

A teljes alkalmazásvirtualizációhoz virtualizációs rétegre van szükség.[4] Ennek a rétegnek a feladata, hogy a virtualizált alkalmazások által kezdeményezett valamennyi fájl- és beállításjegyzék-műveletet „elfogja”, és transzparens módon átirányítsa virtualizált helyükre.[5] A fájlműveletet végző alkalmazás nem tud róla, hogy nem azt az erőforrást éri el, mint amit elérni próbált. Ilyen módon a sok különálló fájlból álló, sok beállítással bíró alkalmazások portolhatóvá tehetők minden input/output műveletük egyetlen fájlba irányításával, és egymással hagyományosan inkompatibilis alkalmazások is egymás mellett futtathatók. Windows platformon a Citrix XenApp, a Novell ZENworks Application Virtualization, a Microsoft Application Virtualization, az Altiris Software Virtualization Solution és a VMware ThinApp alkalmazzák ezt a technológiát.

Sokan azt hiszik, hogy a futtatókörnyezet is egy alkalmazásvirtualizációs megoldás. Ez tévedés, hiszen a futtatókörnyezetre mindig szüksége van az alkalmazásnak a futásához, míg a virtualizációs rétegre ez nem igaz.

Hasonló, mégis különböző elv alapján működik az operációsrendszer-virtualizáció, melynél a teljes operációs rendszer virtuális környezetben fut, nem csak az operációs rendszer egyes alkalmazásai.

Technológiák[szerkesztés | forrásszöveg szerkesztése]

Az alkalmazásvirtualizáció körébe tartozó technológiák:

  • Application streaming (kb. alkalmazásközvetítés). Az alkalmazás csomagba pakolva érkezik, ami tartalmazhat egyes operációsrendszer-állományokat és konfigurációs beállításokat is. A csomag futtatásához egy könnyűsúlyú kliensalkalmazás telepítése szükséges. A csomagok általában HTTP vagy RTSP protokollon érkeznek. Az alkalmazásvirtuáció gyakran jár együtt az alkalmazások igény szerinti futtatását lehetővé tevő application streaminggel.[6]
  • Desktop-virtualizáció/Virtual Desktop Infrastructure (VDI), a végfelhasználó számítógépes munkakörnyezetének (alkalmazások, fájlok, adatok) elkülönítése a hardvertől, amin fut a környezet. Az alkalmazás egy virtuális gépen vagy (operációs rendszert is tartalmazó) blade PC-n fut. Ezekhez a megoldásokhoz hozzátartozik az az infrastruktúra, ami a virtuális munkakörnyezetek (desktopok) létrehozását, azok jogosultság-kezelését, a munkakörnyezetek és a felhasználók összerendelését menedzseli. A VDI megoldásokra ott lehet szükség, ahol az application streaming már kevésnek bizonyul.

Az alkalmazásvirtualizáció előnyei[szerkesztés | forrásszöveg szerkesztése]

  • Lehetővé teszi, hogy az alkalmazások a natív környezetükön kívül fussanak (pl. a WINE-nal Microsoft Windows-alkalmazások futtathatók Linux alatt).
  • Megvédheti az operációs rendszert és a többi alkalmazást a hibásan megírt programkódoktól.
  • Kevesebb erőforrást használ, mint egy különálló virtuális gép.
  • A helytelenül megírt alkalmazásokat is lehet futtatni, pl. azokat, amik felhasználói adatokat próbálnak tárolni csak olvasható, a rendszer számára fenntartott helyeken.
  • Akár egyszerre futtatható két inkompatibilis alkalmazás,[6] és ehhez csak minimális tesztelés szükséges.[7]
  • Fenntartható a vállalaton belüli számítógépek operációs rendszereinek egy szabványos konfigurációja, a használt alkalmazásoktól függetlenül, ami költségcsökkentő tényező.
  • A legkisebb jogosultság elve (principle of least privilege) bevezethető az által, hogy a rosszul megírt alkalmazásokat virtualizálva nem kell rendszergazdai jogosultsággal futtatni.
  • Egyszerűsített átállás más operációs rendszerre.[6]
  • Az alkalmazások gyorsított bevezetése, igény szerinti application streaminggel.[6]
  • Megnövelt biztonságot nyújt az alkalmazások elszigetelése az operációs rendszertől.[6]
  • A vállalat könnyebben számon tarthatja a szoftverlicenc-használatot. Az alkalmazások felhasználási statisztikái felhasználhatók a licencköltségek csökkentésére.
  • Az alkalmazások gyors eljuttatása (provisioning) a felhasználó munkakörnyezetébe a felhasználó központi profilja (roaming profile) alapján.

Az alkalmazásvirtualizáció hátrányai[szerkesztés | forrásszöveg szerkesztése]

  • Az alkalmazásokat „be kell csomagolni” vagy „sorrendbe kell rakni” (sequencing) mielőtt virtualizáltan futtathatók lennének.[8]
  • Minimálisan, de megnő az erőforrásigény (memória- és lemezigény).
  • Nem minden szoftvert lehet virtualizálni. Ilyen különleges alkalmazások például azok, amiknek eszközmeghajtóra van szükségük, valamint a 16 bites alkalmazások, amiknek az osztott memóriában kell futniuk.[9]
  • Egyes programokat, pl. vírusirtókat vagy az operációs rendszerrel szorosan integrált alkalmazásokat, mint pl. a Windowblinds vagy a StyleXP igen nehéz virtualizálni.
  • Az elavult alkalmazások és az újabb operációs rendszerek közötti problémák közül csak a fájl- és beállításjegyzék-szintű kompatibilitási problémák oldhatók meg alkalmazásvirtualizációval. Például a heapet nem megfelelően kezelő alkalmazások nem futnak Windows Vista alatt, mivel – virtualizálva vagy nem – a memória-hozzáférés módja nem változik.[10] Ebből kifolyólag az egyedi alkalmazáskompatibilitási javításokra (shimekre) akkor is szükség lehet, ha az alkalmazás virtualizált.[11]

Gyártóspecifikus megvalósítások[szerkesztés | forrásszöveg szerkesztése]

Lásd még[szerkesztés | forrásszöveg szerkesztése]

Források[szerkesztés | forrásszöveg szerkesztése]

Jegyzetek[szerkesztés | forrásszöveg szerkesztése]

  1. Introducing Microsoft SoftGrid Application Virtualization. Microsoft
  2. WritePrivateProfileString Function. Microsoft. (Hozzáférés: 2008. június 18.)
  3. Mark Russinovich: Inside Windows Vista User Account Control. Microsoft, 2007. June
  4. Amir Husain: How to build an Application Virtualization Framework. VDIworks. (Hozzáférés: 2008. július 1.)
  5. Coby Gurr: Facilitating Microsoft Windows Vista Migration Through Application Virtualization (PDF). Dell, 2008. január 28. (Hozzáférés: 2008. június 19.)
  6. ^ a b c d e Desktop Virtualization Comes of Age (PDF). Credit Suisse, 2007. november 26. (Hozzáférés: 2008. március 3.)
  7. Overview Series: Windows Vista Application Compatibility. Microsoft. (Hozzáférés: 2008. június 19.)
  8. Mayank Johri: Guidelines for Application Sequencing, 2008. február 28. (Hozzáférés: 2008. június 24.)
  9. Peter Varhol: Application Virtualization Hits Its Stride. Redmondmag.com, 2007. September. (Hozzáférés: 2008. június 19.)
  10. Adrian Marinescu: Windows Vista Heap Management Enhancements (PDF). Microsoft, 2006. július 14. (Hozzáférés: 2008. június 19.)
  11. Chris Jackson: Can You Shim Applications Virtualized in SoftGrid?. Microsoft, 2008. május 1. (Hozzáférés: 2008. június 24.)