TNPW2-2012-02
Upcoming SlideShare
Loading in...5
×
 

TNPW2-2012-02

on

  • 1,358 views

 

Statistics

Views

Total Views
1,358
Views on SlideShare
1,178
Embed Views
180

Actions

Likes
1
Downloads
6
Comments
0

3 Embeds 180

http://tnpw2.webnode.cz 172
http://cms.tnpw2.webnode.cz 4
http://cms.tnpw2.webnode.cz 4

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

TNPW2-2012-02 TNPW2-2012-02 Presentation Transcript

  • TNPW22011/201202 – Webové aplikaceMgr. Lukáš Vaceklukas.vacek@uhk.cz
  • 2Agenda • 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
  • 3Co jsou webové aplikace?• Wikipedia – „Webová aplikace je poskytovaná uživatelům z webového serveru přes počítačovou síť Internet, nebo její vnitropodnikovou obdobu (Intranet).“• Nejčastěji jde o společné označení pro webové stránky (statické i dynamicky generované) s nějakou aplikační logikou.• Pojem webová aplikace není striktně (normativně) vymezen!• Mezi webové aplikace jsou často zařazovány i tzv. webové služby.Zjednodušení• Webové stránky jsou určeny pro běžného uživatele (BFU)• Webové služby jsou určeny pro aplikace (i webové)• 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!
  • 4Historie webových aplikací?Do poloviny 90. let• Statické webové stránky• Text, obrázky• Akademická sféra, odborná veřejnost• Uživatelé mohou obsah webových stránek ovlivnit jen minimálněDruhá polovina 90. let• Dynamické webové stránky, webové služby (na přelomu století)• Multimediální obsah• Přístupné pro nejširší veřejnost• Interaktivita s uživatelemhttp://evolutionofweb.appspot.com/
  • 5Dynamicky generované webové stránky• Nejčastěji používají (X)HTML kód (+ CSS a JavaScript) jako rozhraní pro komunikaci s uživatelem.• Jsou postaveny na modelu klient/server.• Na straně uživatele (klienta) je webový prohlížeč, na opačné straně je WWW server.• 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.Příklady• Virtuální obchody (e-shopy)• Katalogy a vyhledávací služby• Redakční systémy (CMS)• Komunitní weby (Facebook, Twitter a spol.)• ASP (Application Service Provider), SaaS (Software as a Service) – hostování, pronájem aplikací a služeb – Cloud computingu obecně budu věnovat pozornost na přednášce o aktuálních trendech.
  • 6Webové služby• Jsou postaveny na modelu klient/server.• Na straně klienta je většinou aplikace, která odpověď serveru dále zpracovává.• 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).• 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í.• Popis každé webové služby (dostupné metody a parametry) je k dispozici v XML formátu (*.wsdl soubor).• Webové služby je možné vytvářet na všech běžně používaných vývojových platformách (Java, .NET, PHP).• 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!• Pozor, webové služby nemusí být vždy tím nejvhodnějším integračním řešením!
  • 7Agenda  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
  • 8Výhody webových aplikací• Na straně klienta stačí webový prohlížeč, někdy s příslušným plug-inem (Flash, Silverlight) – od nutnosti pluginů se ustupuje (nové možnosti HTML5)!• Jednoduchá údržba – změny pouze na straně serveru• Aktuálnost – každá úprava se okamžitě projeví (aplikační logika, data)• Nižší nároky na HW klientů – stačí PC s webovým prohlížečem• Nižší provozní náklady• Nezávislost na platformě (OS) na straně klienta• Přizpůsobení UI různým koncovým zařízením (od r. 2009 je 3x více přístupů z mobilů)• Výborná dostupnost, možnost využití v lokální síti (Intranetu) i v Internetu (24/7)
  • 9Nevýhody webových aplikací• Nehodí se pro některé typy aplikací• Vysoká závislost na poskytovateli aplikace• Nemožnost práce v offline režimu (začíná se řešit – HTML5, Adobe Air)• Omezené možnosti uživatelského rozhraní• Omezené možnosti validace dat na straně klienta (webový prohlížeč)• Nedokonalá podpora standardů (HTML, CSS, JavaScript) v prohlížečích• Bez-stavová komunikace při použití protokolu HTTP/HTTPS (lze obejít)• Množství přenášených dat (značkovací jazyk)• Problémy s bezpečností (webový prohlížeč, dostupnost v Internetu)
  • 10Agenda  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
  • 11Vývoj webových aplikací• 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)!• Při návrhu GUI aplikace je vhodné přesně specifikovat použité technologie a standardy (Flash, JEN pro Internet Explorer… v intranetech stále přežívá IE6!).• Trendem jsou tzv. Single Page Apps• Webové aplikace mají, v porovnání s klasickými desktopovými a klient/server aplikacemi, určité specifické požadavky ▫ Souběžný přístup velkého množství klientů –> rychlost odezvy, ▫ Protokol HTTP je bez-stavový –> nutnost použití session a cookies.• 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)!
  • 12Možné přístupy k vývoji webových aplikacíPodle podmínek a okolností vzniku• Vývoj na zelené louce (celý vývojový cyklus běží od začátku)• „Překlopení“ již existující aplikace (s použitím reverzní analýzy)Podle způsobu implementace• Programováním• Generováním (z databáze, z modelu (MDA) atd.)• Oba způsoby implementace mají své výhody a nevýhody!
  • 13Aplikační vrstvy• Při návrhu webové aplikace je vhodné rozdělení do tzv. aplikačních vrstev• Nejjednodušší (obecné) rozdělení: Přístup k datům (persistence) – Aplikační (business) logika – Prezentační vrstva (UI) Domain-Driven Design patterns: 1. User interface (Presentation Layer) 2. Application Layer 3. Domain Layer 4. Infrastructure and Technical Services Layer http://davidhayden.com/blog/dave/archive/200 4/12/12/685.aspx
  • 14Knihovny, frameworky• Rozdělení aplikace 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ř. ▫ Přístup k datům (v databázi, ve file systému, různé formáty apod.) ▫ ORM (Object Relational Mapping), ▫ Automatizované testování (unit testy), ▫ Autentizaci uživatelů.• Příklad některých používaných knihoven a frameworků ▫ Java – JDO, Spring, JUnit, Hibernate (ORM) ▫ .NET – ADO.NET, NUnit, EF, LINQ, NHibernate (ORM), Spring.NET, ASP.NET MVC ▫ PHP – PEAR, Smarty, FastTemplates, Nette, Zend
  • 15Chyby při vývoji webových aplikací – I.• Je závažnou (a bohužel obvyklou) chybou programovat webové aplikace jako jednouživatelské• 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ů)• Živelný vývoj – často se začne programovat bez dostatečné analýzy nebo bez komunikace se zákazníkem (chybí prototyp UI apod.)• Uživatelům se nabízí zbytečně složité a nepřehledné ovládání• Vývojové, testovací a provozní prostředí aplikace mají často rozdílnou konfiguraci (liší se verze použitého SW, nastavení parametrů apod.)• Podceňuje se fáze testování (funkční, integrační, zátěžové), nepoužívá se TDD (unit testy)• Neoddělují se jednotlivé aplikační vrstvy (data – business – user inteface)• Objevují se zbytečné duplicity v programovém kódu• Znovu se vynalézá kolo –> nepoužívají se vzory (design patterns), best practice• Ignorují se základní bezpečnostní pravidla pro přístup k aplikacím a k datům
  • 16Chyby při vývoji webových aplikací – II.• Programují se funkce, která uživatel nepotřebuje nebo nevyužívá (řada z nich není v UI vůbec vidět)• UI je složitý, nepřehledný, často s nestandardním ovládáním• Netestují se vstupní data od uživatelů (uživatel = neřízená střela)• Zůstávají neukončená připojení k databázi• Je špatně navržená struktura databáze, chybí indexy apod.• Používají se neoptimalizované SQL dotazy, často bez parametrů• Není ošetřena souběžná modifikace dat• Není ošetřen opakovaný zápis dat (F5, obnovení stránky)• Nejsou správně nebo vůbec ošetřeny výjimky (chyby)!• Nevyužívá se vyrovnávací buffer při generování odpovědi• Nevyužívá se kešování (cache) stránek při opakovaných požadavcích• Při objektovém programování se chybně pracuje s kolekcemi• Programátor po sobě „neuklízí“ v paměti, spoléhá na GC nebo na zázrak • http://zdrojak.root.cz/clanky/programator-prestava-byt-amater-kdyz/
  • 17Agenda  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
  • 18Volba technologie• Volbu technologie ovlivňuje řada faktorů, např. ▫ Použitá platforma (OS, aplikační server, databáze) ▫ Požadavky na bezpečnost ▫ Zvyk (zadavatel, dodavatel), obchodně-politické vlivy ▫ Dostupnost know–how na straně dodavatele ▫ Cena řešení• 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).• Volba vhodné technologie ještě nezaručuje dobrý výsledek!
  • 19Technologie používané u webových aplikacíNa straně klienta• HTML formuláře• CSS, DHTML, XSLT• Klientské skripty (JavaScript, VB.Script)• Java aplety, ActiveX• Flash/Flex, Silverlight, AJAX a další technologie ze skupiny RIANa straně serveru• Interpretované (např. Perl, ASP, PHP, Python, Ruby)• Částečně kompilované (JEE, ASP.NET)• Kompilované (CGI skripty)
  • 20Používané technologie z hlediska historieČasová osa• Pravěk – HTML formuláře a CGI skripty,• Středověk – Perl, ASP, JSP, PHP, Java Aplety, ActiveX,• Dnes – AJAX (HTML + JavaScript), JEE (J2EE), ASP.NET, Ruby (on Rails), Python (Django), Silverlight, Flex atd.• Na straně klienta (prohlížeče) je, a v nejbližší době bude, nejdůležitější kombinace HTML5 + JavaScript + CSS3. Bez ohledu na technologie použité na straně serveru!• Výhledově HTML5 může nahradit nativní aplikace, ale nebude to hned!• Rozšířenost vybrané technologie ještě automaticky neznamená její kvalitu!• Infografika: http://sixrevisions.com/infographs/what-websites-madeof/• Technologie, které používají aktuálně největší světové weby… http://royal.pingdom.com/?p=173 http://natishalom.typepad.com/nati_shaloms_blog/2007/10/why-most-scalab.html
  • 21Agenda  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
  • 22Odkazy na Internetu• http://www.kosek.cz/php/index.html (PHP)• http://www.asp.net/ (ASP.NET)• http://java.sun.com/javaee/index.jsp (Java/JEE)• http://java.sun.com/javaee/javaserverfaces/ (Java/JSF)• http://www.hibernate.org/ (ORM)• http://nhibernate.sourceforge.net/ (ORM)• http://www.smarty.net/ (PHP framework)• http://www.ruby-lang.org/en/ (Ruby)• http://tomas-net.blogspot.com/2006/04/souboj-tlust-tenk-aplikace.html• http://zdrojak.root.cz/clanky/prezentacni-vzory-zrodiny-mvc/• http://www.root.cz/zpravicky/jak-zrychlit-web/• http://zdrojak.root.cz/clanky/jak-zrychlit-server-nekolik-praktickych-postrehu/• http://zdrojak.root.cz/clanky/single-page-apps-a-reseni-problemu-s-historii/• http://zdrojak.root.cz/clanky/mobilizujeme-web-v-html5/• http://www.netmagazine.com/features/future-css-layouts
  • 23Doporučená literatura• Martin, C. Robert – Čistý kód – Návrhové vzory, refaktorování, testování a další techniky agilního programování , Computer Press 2009• Pecinovský, Rudolf – Návrhové vzory – 33 vzorových postupů pro objektové programování, Computer Press 2007• Pecinovský Rudolf – OOP – Naučte se myslet a programovat objektově, Computer Press 2010• Earl Thomas – SOA Servisně orientovaná architektura, Computer Press 2009• MacDonald, Matthew; Szpuszta, Mario – ASP.NET 3.5 a C# 2008, Zoner Press 2008• Watson, Ben – C# 4.0 – řešení praktických programátorských úloh, Zoner Press 2010• Macháček, Jan; Vukotic, Alexa; Chakraborty, Anirvan; Ditt Jessica – Pro Spring 3, Apress 2009• Microsoft – Vytváříme zabezpečené aplikace v Microsoft ASP.NET, CP Books (Computer Press) 2004• Taylor, Art; Buege Brian; Layman Randy – Hacking bez tajemství: Java a J2EE, Computer Press 2003• Huseby, Sverre H. – Zranitelný kód, Computer Press 2006
  • 24Souhrn  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