0
TNPW2<br />2010/2011<br />04 – Webové aplikace<br />Mgr. Lukáš Vacek<br />lukas.vacek@uhk.cz<br />
Agenda4<br /><ul><li>Webové aplikace a jejich historie
Výhody a nevýhody webových aplikací
Vývoj webových aplikací
Vývojové technologie
Internet, doporučená literatura</li></ul>2<br />
Co jsou webové aplikace?<br />Wikipedia – „Webová aplikace je poskytovaná uživatelům z webového serveru přes počítačovou s...
Historie webových aplikací?<br />Do poloviny 90. let<br />Statické webové stránky<br />Text, obrázky<br />Akademická sféra...
Dynamicky generované webové stránky<br />Nejčastěji používají (X)HTML kód (+ CSS a JavaScript) jako rozhraní pro komunikac...
Webové služby<br />Jsou postaveny na modelu klient/server.<br />Na straně klienta je většinou aplikace, která odpověď serv...
Agenda4<br /><ul><li>Webové aplikace a jejich historie
Výhody a nevýhody webových aplikací
Vývoj webových aplikací
Vývojové technologie
Internet, doporučená literatura</li></ul>7<br />
Výhody webových aplikací<br />Na straně klienta stačí webový prohlížeč, někdy s příslušným plug-inem (Flash, Silverlight)<...
Nevýhody webových aplikací<br />Nehodí se pro některé typy aplikací<br />Vysoká závislost na poskytovateli aplikace<br />N...
Agenda4<br /><ul><li>Webové aplikace a jejich historie
Výhody a nevýhody webových aplikací
Vývoj webových aplikací
Vývojové technologie
Internet, doporučená literatura</li></ul>10<br />
Vývoj webových aplikací<br />I pro webové aplikace platí tradiční vývojový cyklus... Analýza * –> Implementace –> Testován...
Upcoming SlideShare
Loading in...5
×

TNPW2-2011-04

1,431

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,431
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "TNPW2-2011-04"

  1. 1. TNPW2<br />2010/2011<br />04 – Webové aplikace<br />Mgr. Lukáš Vacek<br />lukas.vacek@uhk.cz<br />
  2. 2. Agenda4<br /><ul><li>Webové aplikace a jejich historie
  3. 3. Výhody a nevýhody webových aplikací
  4. 4. Vývoj webových aplikací
  5. 5. Vývojové technologie
  6. 6. Internet, doporučená literatura</li></ul>2<br />
  7. 7. Co jsou webové aplikace?<br />Wikipedia – „Webová aplikace je poskytovaná uživatelům z webového serveru přes počítačovou síť Internet, nebo její vnitropodnikovou obdobu (Intranet).“<br />Nejčastěji jde o společné označení pro webové stránky (statické i dynamicky generované) s nějakou aplikační logikou. <br />Pojem webová aplikace není striktně (normativně) vymezen! <br />Mezi webové aplikace jsou často zařazovány i tzv. webové služby. <br />Zjednodušení<br />Webové stránky jsou určeny pro běžného uživatele (BFU)<br />Webové služby jsou určeny pro aplikace (i webové)<br />Existuje celá řada technologií pro vývoj a provoz webových aplikací, které jsou nebo budou využívány v prostředí Internetu/Intranetu. Bližší info na přednášce věnované aktuálním trendům!<br />3<br />
  8. 8. Historie webových aplikací?<br />Do poloviny 90. let<br />Statické webové stránky<br />Text, obrázky<br />Akademická sféra, odborná veřejnost<br />Uživatelé mohou obsah webových stránek ovlivnit jen minimálně<br />Druhá polovina 90. let<br />Dynamické webové stránky, webové služby (na přelomu století)<br />Multimediální obsah<br />Přístupné pro nejširší veřejnost<br />Interaktivita s uživatelem<br />4<br />
  9. 9. Dynamicky generované webové stránky<br />Nejčastěji používají (X)HTML kód (+ CSS a JavaScript) jako rozhraní pro komunikaci s uživatelem.<br />Jsou postaveny na modelu klient/server. <br />Na straně uživatele (klienta) je webový prohlížeč, na opačné straně je WWW server.<br />Na rozdíl od „běžných“ statických WWW stránek je na straně serveru navíc přítomna aplikační logika, která je schopná přesněji reagovat na specifické požadavky klientů, což výrazně zvyšuje úroveň interaktivity s uživatelem.<br />Příklady<br />Virtuální obchody (e-shopy)<br />Katalogy a vyhledávací služby <br />Redakční systémy (CMS)<br />Komunitní weby (Facebook, Twitter a spol.)<br />ASP (Application Service Provider), SaaS (Software as a Service) – hostování, pronájem aplikací a služeb – Cloudcomputingu obecně budu věnovat pozornost na přednášce o aktuálních trendech.<br />5<br />
  10. 10. Webové služby<br />Jsou postaveny na modelu klient/server.<br />Na straně klienta je většinou aplikace, která odpověď serveru dále zpracovává.<br />Webové služby používají formát XML, ve kterém spolu klient a server komunikují (vlastní komunikace zpravidla probíhá přes protokol HTTP/HTTPS).<br />Prostřednictvím webových služeb je možné řešit komunikaci aplikací v heterogenním prostředí, protože používaný formát (XML) a protokoly (SOAP, HTTP/HTTPS) jsou dostatečně univerzální.<br />Popis každé webové služby (dostupné metody a parametry) je k dispozici v XML formátu (*.wsdl soubor).<br />Webové služby je možné vytvářet na všech běžně používaných vývojových platformách (Java, .NET, PHP).<br />S čím dál výraznějším trendem vzájemného propojování existujících aplikací roste význam technologií, které umožňují jejich integraci – tedy i webových služeb!<br />6<br />
  11. 11. Agenda4<br /><ul><li>Webové aplikace a jejich historie
  12. 12. Výhody a nevýhody webových aplikací
  13. 13. Vývoj webových aplikací
  14. 14. Vývojové technologie
  15. 15. Internet, doporučená literatura</li></ul>7<br />
  16. 16. Výhody webových aplikací<br />Na straně klienta stačí webový prohlížeč, někdy s příslušným plug-inem (Flash, Silverlight)<br />Jednoduchá údržba – změny pouze na straně serveru<br />Aktuálnost – každá úprava se okamžitě projeví (aplikační logika, data)<br />Nižší nároky na HW klientů – stačí PC s webovým prohlížečem<br />Nižší provozní náklady<br />Nezávislost na platformě (OS) na straně klienta<br />Výborná dostupnost, možnost využití v lokální síti (Intranetu) i v Internetu<br />8<br />
  17. 17. Nevýhody webových aplikací<br />Nehodí se pro některé typy aplikací<br />Vysoká závislost na poskytovateli aplikace<br />Nemožnost práce v offline režimu (začíná se řešit – HTML5, Adobe Air)<br />Omezené možnosti uživatelského rozhraní<br />Omezené možnosti validace dat na straně klienta (webový prohlížeč)<br />Nedokonalá podpora standardů (HTML, CSS, JavaScript) v prohlížečích<br />Bez-stavová komunikace při použití protokolu HTTP/HTTPS (lze obejít)<br />Množství přenášených dat (značkovací jazyk)<br />Problémy s bezpečností (webový prohlížeč, dostupnost v Internetu)<br />9<br />
  18. 18. Agenda4<br /><ul><li>Webové aplikace a jejich historie
  19. 19. Výhody a nevýhody webových aplikací
  20. 20. Vývoj webových aplikací
  21. 21. Vývojové technologie
  22. 22. Internet, doporučená literatura</li></ul>10<br />
  23. 23. Vývoj webových aplikací<br />I pro webové aplikace platí tradiční vývojový cyklus... Analýza * –> Implementace –> Testování * –> Nasazení * –> Provoz * Jednotlivé fáze vývojového cyklu (*) může ovlivnit zákazník (zadavatel)! <br />Při návrhu GUI aplikace je vhodné přesně specifikovat použité technologie a standardy (např. XHTML 1.0 Strict, JEN pro Internet Explorer, Flash ANO).<br />Webové aplikace mají, v porovnání s klasickými desktopovými a klient/server aplikacemi, určité specifické požadavky<br />Souběžný přístup velkého množství klientů –> rychlost odezvy,<br />Protokol HTTP je bez-stavový –> nutnost použití session a cookies.<br />Je třeba klást maximální důraz na testování a brát v úvahu rozdíly mezi testovacím a skutečným provozem (HW, SW, konfigurace)!<br />11<br />
  24. 24. Možné přístupy k vývoji webových aplikací<br />Podle podmínek a okolností vzniku<br />Vývoj na zelené louce (celý vývojový cyklus běží od začátku),<br />„Překlopení“ již existující aplikace (s použitím reverzní analýzy).<br />Podle způsobu implementace<br />Programováním,<br />Generováním (z databáze, z modelu (MDA) atd.).<br />Oba způsoby implementace mají své výhody a nevýhody.<br />12<br />
  25. 25. Aplikační vrstvy, knihovny, frameworky<br />Při vývoji webových aplikací je vhodné rozdělení do tzv. aplikačních vrstev:Přístup k datům (persistence) – Aplikační (business) logika – Prezentační vrstva (UI)<br />Toto rozdělení do vrstev umožňuje (kromě dalších výhod) při vývoji využít nejrůznější podpůrné knihovny a frameworky, které mohou výrazně zjednodušit a zefektivnit vývoj, např. <br />Přístup k datům v databázi, <br />ORM (Object RelationalMapping),<br />Automatizované testování, <br />Autentizaci uživatelů.<br />Příklad některých používaných knihoven a frameworků<br />Java – JDO, Spring, JUnit, Hibernate (ORM)<br />.NET – ADO.NET, NUnit, NHibernate (ORM), Spring.NET, ASP.NET MVC<br />PHP – PEAR, Smarty, FastTemplates, Nette, Zend.<br />13<br />
  26. 26. Chyby při vývoji webových aplikací – I. <br />Je závažnou (a bohužel obvyklou) chybou programovat webové aplikace jako jednouživatelské<br />Při návrhu aplikace se nepočítá s jejím budoucím rozvojem/rozšířením, integrací s dalšími aplikacemi nebo rostoucím zatížením (více uživatelů)<br />Živelný vývoj – často se začne programovat bez dostatečné analýzy nebo bez komunikace se zákazníkem (chybí prototyp UI apod.)<br />Uživatelům se nabízí zbytečně složité a nepřehledné ovládání<br />Vývojové, testovací a provozní prostředí aplikace mají často rozdílnou konfiguraci (liší se verze použitého SW, nastavení parametrů apod.)<br />Podceňuje se fáze testování (funkční, integrační, zátěžové), nepoužívá se TDD (unit testy)<br />Neoddělují se jednotlivé aplikační vrstvy (data – business – user inteface)<br />Objevují se zbytečné duplicity v programovém kódu<br />Znovu se vynalézá kolo –> nepoužívají se vzory (design patterns), bestpractice<br />Ignorují se základní bezpečnostní pravidla pro přístup k aplikacím a k datům<br />14<br />
  27. 27. Chyby při vývoji webových aplikací – II.<br />Programují se funkce, která uživatel nepotřebuje nebo nevyužívá (řada z nich není v UI vůbec vidět)<br />UI je složitý, nepřehledný, často s nestandardním ovládáním<br />Netestují se vstupní data od uživatelů (uživatel = neřízená střela)<br />Zůstávají neukončená připojení k databázi<br />Je špatně navržená struktura databáze, indexy apod.<br />Používají se neoptimalizované SQL dotazy, často bez parametrů<br />Není ošetřena souběžná modifikace dat<br />Není ošetřen opakovaný zápis dat (F5, obnovení stránky)<br />Nejsou správně nebo vůbec ošetřeny výjimky (chyby)!<br />Nevyužívá se vyrovnávací buffer při generování odpovědi<br />Nevyužívá se kešování (cache) stránek při opakovaných požadavcích<br />Při objektovém programování se chybně pracuje s kolekcemi<br />Programátor po sobě „neuklízí“ v paměti, spoléhá na GC nebo na zázrak <br />15<br />
  28. 28. Agenda4<br /><ul><li>Webové aplikace a jejich historie
  29. 29. Výhody a nevýhody webových aplikací
  30. 30. Vývoj webových aplikací
  31. 31. Vývojové technologie
  32. 32. Internet, doporučená literatura</li></ul>16<br />
  33. 33. Volba technologie<br />Volbu technologie ovlivňuje řada faktorů, např.<br />Použitá platforma (OS, aplikační server, databáze)<br />Požadavky na bezpečnost<br />Zvyk (zadavatel, dodavatel), obchodně-politické vlivy<br />Dostupnost know–how na straně dodavatele<br />Cena řešení<br />Použitá technologie může výrazně ovlivnit rychlost (odezvu) webové aplikace směrem ke klientovi (ASP/ASP.NET –> až 3x větší rychlost ASP.NET).<br />Volba vhodné technologie ještě nezaručuje dobrý výsledek!<br />17<br />
  34. 34. Technologie používané u webových aplikací<br />Na straně klienta<br />HTML formuláře, <br />CSS, DHTML, XSLT,<br />Klientské skripty (JavaScript, VB.Script), <br />Java aplety, ActiveX, <br />Flash/Flex, Silverlight, AJAX a další technologie ze skupiny RIA.<br />Na straně serveru<br />Interpretované (např. Perl, ASP, PHP, Python, Ruby), <br />Částečně kompilované (JEE, ASP.NET),<br />Kompilované (CGI skripty).<br />18<br />
  35. 35. Používané technologie z hlediska historie<br />Časová osa<br />Pravěk – HTML formuláře a CGI skripty,<br />Středověk – Perl, ASP, JSP, PHP, Java Aplety, ActiveX,<br />Dnes – JEE (J2EE), ASP.NET, Ruby (on Rails), Python (Django), AJAX, Silverlight, Flex atd.<br />Rozšířenost vybrané technologie ještě automaticky neznamená její kvalitu!<br />Technologie, které používají aktuálně největší světové weby…http://royal.pingdom.com/?p=173http://natishalom.typepad.com/nati_shaloms_blog/2007/10/why-most-scalab.html<br />19<br />
  36. 36. Agenda4<br /><ul><li>Webové aplikace a jejich historie
  37. 37. Výhody a nevýhody webových aplikací
  38. 38. Vývoj webových aplikací
  39. 39. Vývojové technologie
  40. 40. Internet, doporučená literatura</li></ul>20<br />
  41. 41. Odkazy na Internetu<br />http://www.kosek.cz/php/index.html (PHP)<br />http://www.asp.net/ (ASP.NET)<br />http://java.sun.com/javaee/index.jsp (Java/JEE)<br />http://java.sun.com/javaee/javaserverfaces/ (Java/JSF)<br />http://www.hibernate.org/ (ORM)<br />http://nhibernate.sourceforge.net/ (ORM)<br />http://www.smarty.net/ (PHP framework)<br />http://www.ruby-lang.org/en/ (Ruby)<br />http://tomas-net.blogspot.com/2006/04/souboj-tlust-tenk-aplikace.html<br />http://zdrojak.root.cz/clanky/prezentacni-vzory-zrodiny-mvc/<br />http://www.root.cz/zpravicky/jak-zrychlit-web/<br />21<br />
  42. 42. Doporučená literatura<br />Martin, C. Robert – Čistý kód – Návrhové vzory, refaktorování, testování a další techniky agilního programování , ComputerPress 2009<br />Pecinovský, Rudolf – Návrhové vzory – 33 vzorových postupů pro objektové programování, ComputerPress 2007<br />Pecinovský Rudolf – OOP – Naučte se myslet a programovat objektově, ComputerPress 2010<br />Earl Thomas – SOA Servisně orientovaná architektura, ComputerPress 2009<br />MacDonald, Matthew; Szpuszta, Mario – ASP.NET 3.5 a C# 2008, ZonerPress 2008<br />Watson, Ben – C# 4.0 – řešení praktických programátorských úloh, ZonerPress 2010<br />Macháček, Jan; Vukotic, Alexa; Chakraborty, Anirvan; DittJessica – Pro Spring 3, Apress 2009<br />Microsoft – Vytváříme zabezpečené aplikace v Microsoft ASP.NET, CP Books (ComputerPress) 2004<br />Taylor, Art; BuegeBrian; Layman Randy – Hacking bez tajemství: Java a J2EE, ComputerPress 2003<br />Huseby, Sverre H. – Zranitelný kód, Computer Press 2006<br />22<br />
  43. 43. Souhrn4<br /><ul><li>Webové aplikace a jejich historie
  44. 44. Výhody a nevýhody webových aplikací
  45. 45. Vývoj webových aplikací
  46. 46. Vývojové technologie
  47. 47. Internet, doporučená literatura</li></ul>23<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×