Web Technológiák Mai program Répási Tibor egyetemi tanársegéd Miskolc Egyetem Infomatikai és Villamosmérnöki Tanszékcsoport (IVM) Általános Informatikai Tanszék Iroda: Inf.Int. 108. Tel: 2101 Webalkalmazás fogalma, tulajdonságai állapotok és átmenetek párhuzamos folyamatok Folyamatok modellezése Johnson, Petri Webalkalmazás állapota, állapotátmenetei megvalósítási alternatívák Biztonsági kérdések session biztonsága adatbiztonság védelem visszaélések ellen Webalkalmazások Webalkalmazás, mint UI Definíció: olyan szoftver alkalmazás, melynek hozzáférését web böngész biztosítja Internet vagy intranet hálózaton keresztül. Nézpontok: felhasználói felület (UI) szoftver architektúra szolgáltatási csatorna elosztott alkalmazás platform Felhasználó szemszögébl: felhasználói felület minden webalkalmazás hasonló felülettel bír egységes kliens (böngész) vékony kliens -> kis erforrásigény + bárhonnan hozzáférhet + tetszleges eszközön használható hagyományos alkalmazásoktól eltéren viselkedik hálózati kapcsolat elengedhetetlen
Webalkalmazás, mint szoftver architektúra Webalkalmazás, mint szolgáltatási csatorna Programozó szemszögébl: több részes (multi-tier) architektúra (min. 2) egyszer, megjelenít független UI leíró számos fejlesztkörnyezet áll rendelkezésre + egyszer UI megvalósítás + kötetlen fejleszti környezet állapot mentes UI kapcsolat szokatlan fejlesztési módszertanok nem általános biztonsági követelmények Üzleti szempontból: egy szolgáltatás nyújtására lehetséget adó eszköz + felfogható üzlethelységként + olcsón üzemeltethet + széles körben elterjedt, mindenütt jelenlév + nagy célcsoport a szolgáltatás automatizált nyújtását követeli meg meglév szolgáltatások átstrukturálása költséges Webalkalmazás, mint elosztott alkalmazás platform Webalkalmazások Rendszer integrátor szempontjából: a szolgáltatás nyújtása decentralizálható nem csak UI szolgáltatás, ún. Webservice is lehetséges + szolgáltatások decentralizálhatók + WS jól integrálható a SOA szemléletbe + nagy rendelkezésre állás, nagy terhelhetség + hibatr architektúra publikus interfész, támadási felület sok egyedi fejlesztési igény Népszerségének okai: Kliense: Web böngész Mindenhol hozzáférhet Vékony kliens Alkalmazás: Központi szoftver Terjesztés nélkül frissíthet Gyakori alkalmazások: webmail, áruház, aukció, csapatmunka szervezés, vitafórum, wiki, blog szerepjáték, stb.
Webalkalmazások kialakulása Kezdeti kliens-szerver alkalmazások egyedi klienssel -> telepítés, frissítés kényszere Webalkalmazás Felhasználói felülete: dinamikusan elállított weboldal Kliense: szabványos web böngész Interaktivitás növelése: kliens oldali script (JavaScript) A HTML/XHTML szabvány bvíthet weboldalak elállítását teszi lehetvé. Bvítés: (Java, JavaScript, Flash, stb.) Funkcionális: az UI viselkedését befolyásolja Megjelenítési: egyedi megjelenítés lehetsége Vastag kliens Webalkalmazások napjainkban Igen elterjedtek, dinamikusan fejldnek. Számos alkalmazási terület: hírek, közösség, bank, árverezés, kereskedelem, stb. A HTML, CSS, JavaScript DOM szabványok eltér implementációi komoly gondokat okoznak. Tipikusan három réteg (three-tire) alkalmazás Többnyire vékony kliens; a flash nem ritkaság Alkalmazás logika, adatháttér: igen változatos lehet, sokféle elterjedt technológia Szabványos: Java alapú,.net alapú Gyakori még: PHP/MySQL, Oracle AS, stb. Alkalmazás: együttmköd programok Program = Adatstruktúrák + Algoritmusok (N. Wirth) Adatstruktúrák: értékei állapotot tükröznek. Algoritmusok: állapot átmenetet valósítanak meg. Állapot: adatstruktúrák, adatbázisok Állapot átmenet: algoritmus, vezérlés néha: alkalmazás (vagy üzleti) logika (AL / BL) Elosztott alkalmazások: egyetlen AL sok munkafolyamat (session) Munkafolyamat: az alkalmazás egy állapotváltozási fonala állapota a munkafolyamatnak van az AL feldolgozási környezete (kontextusa) Nem összetévesztend a session felhasználóval klienssel
Munkafolyamatok modellezése Folyamat modellezés Számos matematikai megközelítés Johnson Petri Két típus: instrukció folyam (code flow): Neumann-gép adat folyam (data flow): adatfolyam-gép Másik slideshow Munkafolyamat webalkalmazásokban Munkafolyamat megvalósítás Probléma webalkalmazások esetén: Az alkalmazásprotokoll (http) állapotmentes Nincs viszony szolgáltatás (session service) a hálózati (TCP/IP) stack-ben. Megvalósítás: Alkalmazásban egyedileg Keretrendszerben Feladat: Adatok tárolása az alkalmazás egyes állapotai között Független tranzakciók számára közös környezet Megvalósítási lehetségek: Round-trip Alkalmazás session, azonosító round-trip: Session Cookie Hidden input URL rewrite (ábrák!)
Biztonsági kérdések (session) Biztonsági kérdések (adat) Hamisítás (fraud): Session adatok védelme (alkalmazás session) Azonosító lopás (theft): Újrafelhasználás Más munkafolyamatának ellopása Alkalmazás túlterhelés (DoS) Elvesztett session Elhagyott session Tömeges nyitás Adatátvitel során átvitt adatok védelme lehallgatás ellen újrahasznosítás ellen hamisítás ellen Lehetséges megoldások: titkosított csatorna - http alatti SSL titkosítás jelszó átvitelének mellzése (ch/resp) adatok digitális aláírása Visszaélés elleni védelem Alkalmazás védelme visszaélések ellen: automatizált használat (pl. tömeges regisztráció) nem kívánt mveletek végrehajtása Megvalósítás: Fordított Turing próba audiovizuális kihívás (captcha) az automatizált használat elleni védelem kijátszható (pl. relay támadással) szoftver validáció és verifikáció védelem nem kívánt mveletek ellen az alkalmazás logikában a tesztelés nehézkes, gyakran egyedi eszközökre szorul, módszertana komplex