Windows - Az Internet Information Services (IIS) 5.0 felépítésének és programozhatóságának ismertetése

Az IIS alapjai 1. rész

Ebben a cikksorozatunkban a Microsoft IIS 5.0-t kívánjuk több oldalról bemutatni. Érinteni fogunk olyan témákat, mint a programozhatóság, a szerver működési sebességét és hatékonyságát meghatározó tényezők, az adminisztrálhatóság, web és ftp helyek létrehozása különböző feltételek között, hitelesítési eljárások és biztonság. Gyakorlati példákkal illusztrálva az elmondottakat, igyekszünk tanácsot adni a minél hatékonyabb és biztonságosabb szerverüzemeltetéshez. Első cikkünkben áttekintést adunk az IIS felépítéséről és programozhatóságáról. Az IIS jelen van a Windows 2000 minden verziójában. A Professional-ban csak egy webhelyet tud kezelni és sok szolgáltatás hiányzik belőle, ami a Server verziójában megvan, a Server-ben már nagyon hatásosan használható, az Advanced Server-ben pedig olyan szolgáltatások is megjelennek, amelyekkel óriási méretű website-ok is kialakíthatók (pl.: a fürtözés - több szerver összekapcsolása és egyként való használata). A Windows installálása közben vagy utólag is kérhetjük a telepítését. Nagyon szoros az operációs rendszerrel való integráltsága, de bármikor eltávolítható, ha szükséges. A szoros integráltság sok előnyös tulajdonságot hordoz magában. Az első és legfontosabb, hogy a Windows 2000 biztonsági összetevőit képes felhasználni. Továbbá a hitelesítési eljárásokon kívül az NTFS fájlrendszer biztonsági paraméterei, a terminálszolgáltatások, a távvezérelhetőség és sok egyéb más is - amikre cikksorozatunkban kitérünk - beépíthetők az IIS mindennapi használatába.
Működési szempontból az egyik fő jellemzője, hogy több szálon fut az operációs rendszerben. Ezeket a szálakat dinamikusan változtatja: újakat hoz létre, szükségteleneket töröl. Ebből következően a processzor és a memória kihasználása is folyamatosan változik. A hardver igényekkel és beállításokkal egy külön cikkben foglalkozunk részletesen. Maga az IIS program is több processzből áll. A fő processz, ami elindul INETINFO.EXE néven fut a feladatkezelőben. Ez tartalmazza a web, ftp és smtp szolgáltatásokat. Van még egy másik fontos nem látható processz ez a DLLHOST, amely például a script-ek futtatását vezérli, a DLL jellemzők előnyeivel (egy memória területről használhatja több alkalmazás is). Minden elindított alkalmazás egy különálló folyamatként kezelődik. Ez jelentősen növeli a futtatás biztonságát és emellett teljesítmény növekedést is eredményez. Több processzoros rendszerben, ahol a processzorok párhuzamosan dolgozzák fel a folyamatokat, ugrásszerűen megnövekedhet így a teljesítmény.
A konfigurációs beállítások nagy része egy metabázisban (metabase), kisebb hányada a regisztrációs adatbázisban tárolódik. A két adatbázis független egymástól, de hasonló a szerkezetük.
Napjainkban a statikus weblapokat egyre több helyen váltják fel a dinamikusak. A felhasználók információkat adhatnak át a weboldalnak, egy háttérben futó rendszer feldolgozza, majd tartalmuknak megfelelően változtatja a weboldal kinézetét, e-mail üzeneteket küld, adatbázisokban keres stb. Sok script nyelv (CGI, Perl, ASP), filter (ISAPI) és webobjektum (COM) létezik. Ha egy szolgáltatónál akarunk elhelyezni egy website-ot, először tájékozódnunk kell, hogy az ottani szerver milyen script nyelvet, programindítási lehetőséget támogat és engedélyez. Nézzük meg, hogy az IIS-ben milyen lehetőségeink vannak:
Kezdjük azokkal a nyelvekkel amelyek nem élveznek támogatást. Ilyenek a népszerűbbek közül a Perl, a SED és az AWK. A Microsoft nyitva hagyott egy lehetőséget az ilyen nyelven programozók számára is. Nevezetesen azt, ha telepítjük a Windows alá a script-ek feldolgozó motorját, akkor az IIS lekezeli az ilyen weboldalakat is.
Folytassuk a támogatottakkal:

CGI (Common Gateway Interface):
Teljes támogatást élvez, bár lassúsága és erőforrás igénye miatt helyette inkább az ASP-t ajánlják. A CGI egy külön szálként fut script-ként, de elindítható EXE-re fordítva is, de ekkor a szálon kívül fut. Ahhoz, hogy minden CGI-s alkalmazás szálon belül fusson, a következőt kell beállítani a regisztrációs adatbázisban:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\Parameters\UsePoolThreadForCGI bejegyzést kell létrehozni DWORD típussal és nulla értékkel.
Fontos megemlíteni, hogy a parancsértelmező speciális karakterei "|<>%(,:" nem adódnak át közvetlenül a CGI alkalmazásoknak, megszüntetve egy biztonsági rést.

ISAPI (Internet Server Application Programming Interface) szűrők:
DLL programok és automatikusan szálban futnak. Feladatuk, hogy a kérések elő- és utófeldolgozását elvégezzék, általában eseményvezérelten (egy meghatározott esemény váltja ki az elindításukat). A CGI-nél gyorsabbak és kevesebb az erőforrás igényük. Az IIS-ben található néhány ISAPI filter, de vásárolhatók és telepíthetők újak is. A telepítéshez indítsuk el az IIS MMC konzolját: Vezérlőpult > Felügyeleti eszközök > Internet szolgáltatáskezelő. Kattintsunk arra a webhelyre, amelyhez hozzá akarjuk adni a szűrőket. A "Tulajdonság" oldal "ISAPI szűrők" lapján a "Hozzáadás" majd "Tallózás" gombjaival végezzük el a telepítést. A fel - le nyilak segítségével több szűrő esetén a végrehajtási sorrendet határozhatjuk meg.

ISAPI kiterjesztések:
Többszálú DLL-ek, interfészt képeznek a felhasználó és az IIS között. Az ISAPI szűrőkhöz hasonlóan gyorsan hajtódnak végre relatívan kis erőforrás igénnyel. Az IIS nem tartalmaz ISAPI kiterjesztést, de telepíthetők hozzá. Általában egy HTTP kérés befutásával a felhasználói kérések hatására indul el, működési feltételeitől függően. A CGI script-ek ISAPI kiterjesztésekké való átírása a kiszolgálónk hatékonyabb működését eredményezi. Persze azt nekünk kell eldöntenünk, hogy az ezzel járó többletmunka kifizetődő-e számunkra. Az tény, hogy az ISAPI-k hajtódnak végre leggyorsabban (még ASP-nél is gyorsabb), míg a CGI a leglassúbb.

ASP (Active Server Pages):
A Microsoft fejlesztette, dinamikus, interaktív weboldalak, web applikációk készítésére alkalmas. IIS alatt a Microsoft ajánlásával jelentős támogatottságot élvez. Alapvetően két fő összetevője van: HTML szerver oldali script-ekből és újrafelhasználható COM (Component Object Model) szerver komponensekből áll. Az előbbi állhat VBScript-ekből és JScript-ekből. Az utóbbiak nagy interaktivitást biztosíthatnak egy weboldalnak és létrehozhatók vizuális gyorsfejlesztő környezetben is (pl.: Visual Studio.NET C#, Basic, ASP.NET). A Windows rendszer összetevők között megtalálható "Script hibakereső"-vel vizsgálhatók az ASP oldalak. Internet Explorer 3.0-tól kezdve használható, lehet a futtatás alatt hibát javítani, menteni majd folytatni a futtatást. Az IIS feltelepítése után a C:\INETPUB\IISSAMPLES könyvtárban több mintapéldát is találunk ASP script-re. Elindított IIS esetén a http://localhost/iishelp weboldalon (amely a saját gépünkön van) pedig található egy ASP tankönyv.

Összefoglalva: a weboldalak interaktivitásán kívül fontos szempont a fejlesztés során a támogatottság, az hogy milyen eszközök és leírások állnak rendelkezésünkre és az eredmény mennyire eredményez hatékony működést. A hatékonyság egyik összetevője a gyorsaság a fenti script nyelvek végrehajtási sebessége a leggyorsabbal kezdve: ISAPI, ASP, CGI.

Nézzük tovább az IIS által támogatottságot élvező egyéb szolgáltatásokat:

Komponens szolgáltatások:
Több összetevője van, egyik, hogy a szerver applikációk tranzakció műveleteinek feldolgozó rendszere. Ez tranzakció kezelést jelent az adatbázis műveletekben. Ami lehetővé teszi, hogy az adatbázison elvégzett műveleteket csoportosan vonjuk vissza, helyreállítva a műveletek megkezdése előtti állapotot. Egy másik összetevő az objektum menedzselés (az elosztott hálózati objektumoké és a környezeté). Hogy mit menedzsel az objektumokon? Automatán menedzseli a processzeket és a szálakat, az objektum példányokat, tranzakciókat hajt végre, felügyeli az objektum készítéseket biztonsági szempontból és kézben tartja a GUI-n a rendszeradminisztrációt.

Indexelő szolgáltatások:
Információkat indexelhetünk vele, meggyorsítva a keresésüket. Ez így elég általánosan hangzik, de olyan széles körben használható, hogy végül nem lesz pontatlan a megfogalmazás. Tartalmaz egy kereső motort, amivel HTML, text és Office dokumentumokban (.DOC, .XLS stb) kereshetünk. Fájlok indexelésére is képes, de ezt egy webhely virtuális könyvtáraiban és annak alkönyvtáraiban végzi. Az index adatokat egy katalógusban tárolja, változás esetén automatikusan frissít. A keresés eredményét a webböngészőnek adja vissza.

Bizonyítvány szolgáltatások:
Erről a nagyfokú biztonságot eredményező szolgáltatásról egy külön cikkben szólunk. Most csak annyit, hogy nyilvános kulcsú titkosítást támogat, SSL (Secure Sockets Layer) és PCT (Private Communication Technology) protokollokkal.

Message Queuing szolgáltatások:
Lehetővé teszi a programok számára üzenetek küldését, fogadását gyorsan, megbízhatóan aszinkron módon. Ez a szolgáltatás futtatható még Windows 95, 98 rendszerek alatt is, de más platformokon is használható egy Message Queuing Connectoron keresztül.

Adathozzáférési komponensek:
Csak felsorolás szintjén: ADO (ActiveX Data Objects), RDS (Remote Data Service), ODBC (Open DataBase Connectivity) és Microsoft OLE DB adatbázis kapcsolatok alakíthatók ki.

Végeztünk. A fentiekben az IIS-t csak programozhatósági oldalról vizsgáltuk, a leírásunk természetesen nem terjed ki minden részletre, de ez alapján is látható, hogy az IIS több mint egy program, amely weboldalakat szolgáltat számunkra. A következő cikkünkben a webszerverünk sebességét meghatározó tényezőkről írunk, tippeket adva a minél hatékonyabb működtetéshez.



Az IIS alapjai cikksorozat