Web Technológiák Répási Tibor egyetemi tanársegéd
Mai program
–
Miskolc Egyetem Infomatikai és Villamosmérnöki Tanszékcsoport (IVM)
–
Általános Informatikai Tanszék
Folyamatok modellezése
Webalkalmazás állapota, állapotátmenetei
– –
Webalkalmazások
–
Iroda: Inf.Int. 108. Tel: 2101
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
megvalósítási alternatívák session biztonsága adatbiztonság védelem visszaélések ellen
Webalkalmazás, mint UI
Felhasználó szemszögébl: – –
Johnson, Petri
Biztonsági kérdések –
állapotok és átmenetek párhuzamos folyamatok
Webalkalmazás fogalma, tulajdonságai Alkalmazások anatómiája
– –
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
Tulajdonságai: + bárhonnan
hozzáférhet
+ tetszleges eszközön használható – hagyományos alkalmazásoktól eltéren –
hálózati kapcsolat elengedhetetlen
viselkedik
Webalkalmazás, mint szoftver architektúra
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
Webalkalmazás, mint szolgáltatási csatorna
Üzleti szempontból:
Tulajdonságai:
–
+ felfogható
üzlethelységként ü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
Tulajdonságai: + egyszer
+ olcsón
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
Webalkalmazás, mint elosztott alkalmazás platform
Rendszer integrátor szempontjából: – –
Webalkalmazások
a szolgáltatás nyújtása decentralizálható nem csak UI szolgáltatás, ún. Webservice is lehetséges
Tulajdonságai: + szolgáltatások
decentralizálhatók 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
egy szolgáltatás nyújtására lehetséget adó eszköz
+ WS
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
Alkalmazások anatómiája
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)
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ások anatómiája
Elosztott alkalmazások: – –
Munkafolyamat: – – –
egyetlen AL sok munkafolyamat (session) 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
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
Munkafolyamat webalkalmazásokban
Probléma webalkalmazások esetén: – –
Folyamat modellezés
Az alkalmazásprotokoll (http) állapotmentes Nincs viszony szolgáltatás (session service) a hálózati (TCP/IP) stack-ben.
Másik slideshow
Munkafolyamat megvalósítás
– –
Megvalósítás: – –
Feladat: Megvalósítási lehetségek: – –
Alkalmazásban egyedileg Keretrendszerben
Adatok tárolása az alkalmazás egyes állapotai között Független tranzakciók számára közös környezet Round-trip Alkalmazás session, azonosító round-trip:
Session Cookie Hidden input URL rewrite
(ábrák!)
Biztonsági kérdések (session)
Hamisítás (fraud): –
–
Újrafelhasználás Más munkafolyamatának ellopása
Alkalmazás túlterhelés (DoS) – – –
Elvesztett session Elhagyott session Tömeges nyitás
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
Adatátvitel során átvitt adatok védelme –
Session adatok védelme (alkalmazás session)
–
Azonosító lopás (theft): –
Biztonsági kérdések (adat)
–
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