Web Architecture
Development of Computing Architectures Monolithic mainframe programming Client Server Real Client Server Web Programming
Monolithic programs
Client Server LAN PC program File Server
Client Server (newer) LAN PC program DB Server
Real Client Server LAN Presentation Application Server DB Server 3-tier client server application
Web Programming LAN browser Application server DB Server Internet Web server
Web Connection URL –http TCP –IP –And the other way around browser Internet Web server
What is happening on the server TEXT FILE PROGRAM
How can the program run? PROGRAM CGI Apache Module ISAPI, NSAPI „self written web server”
CGI a leggyakoribb PROGRAM Separate process Environment variables STDIN STDOUT
Miért jó a CGI? Sokan tudnak CGI-t programozni Egyszerű Kis feladatokra gyorsan Perl-ben Minden web szerver tudja
Miért nem jó a CGI? Processzor terhelés Processz szintű erőforrás megtartás hiánya –memória változók –adatbázis kapcsolatok –nyitott fájlok
Mit lehet használni CGI helyett? Apache module ISAPI Java Application Engine Valamilyen más application engine standalone saját web server
Apache module C-ben megírt, az Apache-hoz linkelt könyvtár (LIB vagy SO) Nem processz alkalmazás szerver, hanem multi processz, de van processz erőforrás megőrzés, például DB kapcsolat újrafelhasználás
ISAPI Windows NT IIS in-process felülete ISAPI application extension és ISAPI filter Teljes application engine funkció Microsoft komponensekkel Stabilitás nem mindig jó (?)
Java Igazi application engine megoldás Java függő Nagy HW igény Stabilitás nem kiforrott
Egyéb alkalmazás szerver ORACLE, HP Speciális programozási felület Nehezen cserélhető, és „drága” middleware Nagy teljesítmény
Saját web szerver Nagyon, nagyon, nagyon drága a –sok –sokáig tartó projektben –sokat dolgozó –nagy tapasztalatú programozó.
Milyen feladatok vannak web programozásnál? Kliens felület Authetikáció Session kezelés Session-ök közötti szinkronizáció kezelése Access kontroll Perzisztens adat kezelés
Milyen üzemeltetési feladatok vannak? Teljesítmény skálázás Hibatűrés Menedzselhetőség Adatmenedzsment
Kliens felület HTML CCS JavaScript –Netscape, IE –verziók –Intranet OK, Internet vérizzad
Authentikáció BASIC authentikáció elterjedt MS challenge response SSL kliens szerver Form based jelszó
Session kezelés Session azonosító tárolása –cookie –hidden változó, vagy GET paraméter –ellenőrizhetőek a többi paraméterek IP cím, browser type
Access Control Általában név alapján szerep alapú, egyszerű OS alapú: ha egy szinttel lejjebb megy, akkor a program is kiszolgál ACL alapú
Perzisztens adatok kezelése Fájl rendszerben Adatbázisban
Hibatűrés, skálázhatóság Általában együtt Szerver farm, load balance –Alkalmazás alapú –DNS round robin –Router based Fürtözött megoldás
Menedzselhetőség, adat menedzsment Szolgáltatás elérhetőség mérése, riasztás (vagy csak amikor más a felhasználó sír?) SNMP trap Terhelési paraméterek belső mérése Terhelési regressziós analízis hónapokra, évekre előre Kiemelkedő terhelési események tervezése 30% contingency Ergonomikus kezelő felület Adatbevitel user-proof, sysman tud bármit javítani
Thank you for your attention.