Vybrané aspekty návrhu webových informačních systémů
Transkript
Vybrané aspekty návrhu webových informačních systémů scientific press Radek Šilhavý, Petr Šilhavý, Zdenka Prokopová Pavel Pokorný, Martin Sysel, Miroslav Matýsek Karel Vlček, Libuše Svobodová Vybrané aspekty návrhu webových informačních systémů scientific press Copyright © 2013 Radek Šilhavý, Petr Šilhavý, Zdenka Prokopová, Pavel Pokorný, Martin Sysel, Miroslav Matýsek, Karel Vlček, Libuše Svobodová Vydalo vydavatelství Šilhavý, s.r.o. Scientific Press ve Vsetíně roku 2013. v edici Scientific Press Serie, svazek číslo 2/2013. Publikace byla recenzována nezávislými recenzenty a schválena vědeckou redakcí. Recenze jsou archivovány u vydavatele. Publikace neprošla jazykovou úpravou. www.scientificpress.eu ISBN: 978-80-904741-3-0 Citační záznam ŠILHAVÝ, Radek, Petr ŠILHAVÝ, Zdenka PROKOPOVÁ, Pavel POKORNÝ, Martin SYSEL, Miroslav MATÝSEK, Karel VLČEK a Libuše SVOBODOVÁ. Vybrané aspekty návrhu webových informačních systémů. první. Vsetín: Šilhavý s.r.o., 2013. Scientific Press, 2/2013. ISBN 978-80-904741-3-0. Dostupné z: www.scientificpress.eu Předmluva Dostává se vám do rukou kolektivní monografie, která si klade za cíl diskutovat základní aspekty návrhu webových informačních systémů. Autoři se domnívají, že uvedené oblasti jsou důležité a představují aktuální stav poznání v oblasti webových informačních systémů a snaží se také navrhnout základní postupy, které povedou k návrhu spolehlivých webových informačních systémů. V první kapitole Trendy a vývoj životního cyklu jsou sumarizovány poznatky z oblasti softwarového inženýrství a je navržen základní koncept metodologie, která přispěje k systematickému vývoji. V druhé kapitole Specifikace a analýza požadavků je navržena metodologie sběru požadavků, která je přizpůsobena problematice webových informačních systém nebo obecněji webových aplikací. Právě tato fáze vývojového cyklu je velmi důležitá pro úspěch projektu webového informačního systému. Ve třetí kapitole Datové modelování a návrh databáze jsou diskutovány aspekty datového modelování z pohledu vývoje webových informačních systémů. Jsou představeny klíčové faktory, které dle názoru autorů přispívají k vývoji spolehlivého webového informačního systému. Ve čtvrté kapitole Grafické formáty pro WIS přinášíme diskusi důležitosti správné volby grafického formátu a nezbytná teoretická východiska, aby bylo možné volit správný formát obrázků pro návrh uživatelského rozhraní i obsahovaných obrázků. Správný výběr grafického formátu přispívá ke kvalitnímu rozhodnutí a návrhu systému. V páté kapitole Bezpečnosti webových aplikací jsou představeny základní bezpečnostní otázky a rizika, které mohou ovlivnit návrh webového informačního systému. Bez znalostí těchto základních bezpečnostních otázek není možné vytvořit spolehlivý a bezpečný informační systém. V šesté kapitole Technologie Internetu, základní pojmy a principy a v kapitole sedmé Teoretické principy přístupu k internetové síti jsou předkládány technické předpoklady a potřebné teoretické znalosti, jejichž osvojení vede k schopnosti návrhu webového informačního systému tak, aby nejen splňoval potřeby uživatelů, ale také respektoval potřeby technologií, které jsou vždy využívány. Bez těchto znalostí není možné provést dobrý návrh informačního systému. V osmé kapitole Případová studie internetové aplikace je předkládána případová studie, která ilustruje moderní využití webového informačního systému jako výukové pomůcky pro obchodování na finančních trzích. Uživatelé takových aplikací mohou absolvovat, bez nutnosti cestování, kurzy nebo se sami, dle svých možností, naučit obchodování. Právě tyto vlastnosti jsou klíčové pro současnou popularitu webových informačních systémů. Věříme, že tato monografie bude přínosem každému, kdo se chce zdokonalit v oblasti návrhu webových informačních systémů. Autoři Summary The following monograph presents a discussion about perspective trends in web-based information system analysis. Authors believe that the topics mentioned in the book are significant for this problematic area. The selected topics play a key role in reliable system design. Chapter (1) Trends and Lifecycle Development, discusses software engineering knowledge and proposes a perspective methodology for the systematic development of web-based information systems. The next chapter (2) Requirements Analysis and Software Specification, is a discussion about requirements gathering methods. The authors propose a new approach for requirements analysis that brings improvements to the requirements gathering process. Data Modelling and Database Design has nearly the same importance and therefore the following chapter (3), discusses data modelling and the specific needs of the web-based information systems. The key elements of the modelling principles are presented herein; but only factors which are significant for a reliable web-based information system are presented. Web-based information systems are linked to a graphical user interface and designers are asked to respect the rules for the graphics elements file formats. Chapter (4) Graphical Formats for WIS, is a discussion about the graphic file formats and tries to establish the set of questions which have to be solved before the graphical part of a web-based information system is designed. Chapter (5) Web Application Security, is a commented review of security issues which have to be kept in mind by the designers. A quality designed web-based information system is not possible without deep insight into security and risk analysis. Internet technology and theoretical principles are key topics in Chapters 6 and 7. A high-quality web information system design depends on an ability to respect technological background because users‘ needs are not the only important issue for system design. The final chapter (8) is a Case Study. The samples of web-based information systems or applications are described. The described applications are used for financial market trading; or, to be precise they are used for trading education or for training traders. The Authors believe that the monograph brings benefits to those, who are looking to improve themselves in web-based systems design. Obsah Trendy a vývoj životního cyklu�������������������� 1 Softwarové procesy a jejich vhodnost������������������������� 2 Vodopádový model��������������������������������������������� 5 Iterační model ��������������������������������������������� 6 Spirálový model ��������������������������������������������� 7 Proces vývoje ����������������������������������������������� 9 Koncepce a strategie �������������������������������������� 10 Struktura a design ���������������������������������������� 10 Kódování a vývoj ������������������������������������������ 11 Testování a spuštění �������������������������������������� 11 Optimalizace a údržba �������������������������������������� 11 Shrnutí vývojového procesu���������������������������������� 12 Specifikace a analýza požadavků při návrhu ������� 13 Co má specifikace obsahovat �������������������������������� 15 Požadavky �������������������������������������������������� 15 Jaké metody sběru lze využít�������������������������������� 16 Průběh sběru požadavků�������������������������������������� 19 Datové modelování a návrh databáze��������������� 21 Proces návrhu databáze ������������������������������������ 22 Konceptuální datový model ���������������������������������� 26 Tvorba konceptuálního datového modelu ���������������������� 28 Logický datový model �������������������������������������� 38 Normalizace dat �������������������������������������������� 40 Fyzický datový model �������������������������������������� 43 Grafické formáty pro WIS�������������������������� 45 Počítačová grafika a reprezentace obrazových informací ������ 45 Vektorová grafika�������������������������������������������� 46 Rastrová grafika �������������������������������������������� 48 Stručná charakteristika vybraného grafického software�������� 50 Program pro vektorovou grafiku - Inkscape�������������������� 51 Program pro rastrovou grafiku - Gimp ������������������������ 53 Grafické formáty v prohlížečích www stránek������������������ 56 Grafický formát SVG������������������������������������������ 57 Grafický formát BMP������������������������������������������ 58 Grafický formát GIF������������������������������������������ 59 Grafický formát PNG������������������������������������������ 62 Grafický formát JPG������������������������������������������ 63 Shrnutí ���������������������������������������������������� 67 Bezpečnost webových aplikací��������������������� 68 Bezpečností rizika������������������������������������������ 69 Injection �������������������������������������������������� 72 Cross-Site Scripting (XSS)���������������������������������� 76 Narušená autentifikace a správa relace ���������������������� 79 Nezabezpečený přímý odkaz na objekt ������������������������ 82 Cross-Site request forgery (CSRF) �������������������������� 82 Nezabezpečené kryptografické úložiště������������������������ 85 Chybné zamezení přístupu ke konkrétním URL������������������ 86 Nezabezpečená síťová komunikace ���������������������������� 87 Neplatné přesměrování a předávání parametrů ���������������� 87 Závěr ������������������������������������������������������ 88 Technologie Internetu, základní pojmy a principy� 90 Internet versus internet������������������������������������ 90 Intranet versus extranet������������������������������������ 90 Typy sítí �������������������������������������������������� 91 Přenášená data���������������������������������������������� 91 Simplex, poloduplex a plný duplex �������������������������� 92 Přenosové rychlosti ���������������������������������������� 92 Metody komunikace ������������������������������������������ 93 Sítě s přepojováním paketů���������������������������������� 94 Dělení dle počtu rámců�������������������������������������� 94 Přenosová média �������������������������������������������� 95 Koaxiální kabel �������������������������������������������� 96 Kroucená dvojlinka������������������������������������������ 96 Optická vlákna���������������������������������������������� 98 Komunikace vzduchem ��������������������������������������� 101 Přístupové metody LAN ������������������������������������� 102 Normování počítačových sítí ������������������������������� 104 Síťové protokoly������������������������������������������� 105 LAN Ethernet����������������������������������������������� 108 Propojování počítačových sítí ����������������������������� 111 Teoretické principy přístupu k internetové síti 114 Rámec pro působení turbo ekvalizace ����������������������� 117 Případová studie internetové aplikace����������� 135 Aktivizace, motivace a konstruktivismus ������������������� 136 Kategorizace počítačových investičních her a simulátorů ��� 138 Vybrané investiční hry a simulátory ����������������������� 140 Patria Direct - Stock Market Challenge��������������������� 140 Shrnutí ��������������������������������������������������� 154 Literatura�������������������������������������� 156 Trendy a vývoj životního cyklu Radek Šilhavý 1 Webové informační systémy tvoří dnes významnou část používaných firemních aplikací. S webovými informačními systémy je možné se setkat v řadě odvětví. Přímá zaměnitelnost pojmů webová aplikace a internetová aplikace již neplatí. Webové aplikace nebo přesněji webové informační systémy jsou dnes součástí běžné firemní praxe. Setkáváme se tak s nimi v bankovním sektoru, maloobchodu či školství. Vývojový proces a z něj odvozené metodiky pro vývoj softwarových řešení nemusí splňovat nároky, které vývoj webových aplikací na své vývojáře klade. Návrh webových aplikací se od klasického návrhu softwaru liší v některých základních aspektech. Hlavním rozdílem je vyšší citlivost na odvětví, pro které webová aplikace či webový informační systém vzniká. Webové informační systémy lze rozdělit do základních oblastí: Intranetové aplikace. Slouží pro uzavřené prostředí organizace nebo instituce. Webové aplikace. Využívají se pro marketingové účely, řadíme sem obecně webové aplikace, které slouží pro komunikaci mimo rozsah organizace. Elektronické obchodování. Slouží jako prodejní kanál – přímý prodej zboží či služeb. Většinou je stále chápán jako náhrada za objednávkový systém, doplněk klasických prodejních kanálů. Stále častěji však také jako jediný přímí prodejní kanál. Jak již bylo v úvodu zmíněno, vývoj webových informačních systémů klade velký důraz na přístup k vývoji a do jisté míry se od vývoje běžných softwarových aplikací liší. Odlišnosti lze spatřovat v celkovém určení aplikací. S výjimkou intranetových aplikací lze hlavní rozdíl spatřovat v tom, že není přesně známa skupina uživatelů, kteří budou s webovým informačním systémem pracovat. Další důvody lze spatřovat v odlišnosti manažerského přístupu. Při vývoj webového informačního systému dochází ke kooperacím mezi více subjekty, i když se může jednat o více oddělení v rámci jedné dodavatelské společnosti. Celkově lze uživatelské prostředí pro webové informační systémy a webové informační systémy charakterizovat jako systémy pro různorodé uživatele. Toto lze posuzovat z pohledu kulturního i geografického. Dále je potřeba počítat s tím, že není dopředu známa úroveň odborných schopností práce s informačními systémy a výpočetní technikou obecně. Vývoj jako takový je závislý a musí být podřízen běhovému prostředí, což je vždy počítačová síť postavená na protokolu http a službách world wide web. Softwarové procesy a jejich vhodnost Model softwarového procesu [10] lze chápat, jako konceptuálně zjednodušený pohled na vý2 – Vybrané aspekty návrhu webových informačních systémů voj, který obsahuje jednotlivé fáze vývoje, jejich zjednodušený popis, vzájemné vazby a způsob přechodu z jedné fáze do další fáze. Každá fáze modelu životního cyklu tedy i etapa vývoje umožňuje pohled na systém z daného úhlu pohledu. Softwarové procesy nebo přesněji modelování těchto procesů, je součástí disciplíny zvané softwarové inženýrství již od padesátých let [10] minulého století. Velký rozvoj však nastává po první konferenci nazvané Softwarové inženýrství [10]. V modelu životního cyklu se obvykle setkáváme s těmito fázemi [39]. Plánování. Jedná se o fázi, kdy se rozhoduje o pořízení nového systému, plánuje se účel, jaké cíle má systém naplnit, případně o náhradu jakého řešení se jedná. Přičemž se může jednat o náhradu dříve používaného software či pouze obyčejné papírové evidence. Analýza požadavků. Analýza požadavků a specifikace. Během této fáze se budou sbírat a rozpracovává co bude systém řešit, jak má být výkonný či jaké zdroje budou potřeba. Dělení a výběr. Požadavky či jiná omezení jsou rozdělena na dílčí podsystémy, které tvoří dílčí části vytvářeného systému. Také probíhá první etapa rozhodování, do jaké míry bude potřeba pracovat na principech přímého zakázkové vývoje nebo do jaké míry je možné použít již dříve vytvořené části nebo je možné použít generická řešení. Návrh architektury. Během této etapy dochází k návrhu, jak budou dílčí části systému inteTrendy a vývoj životního cyklu – 3 grovány, vytváříme tedy komunikační propojení a definujeme rozhraní. Na základě konkrétního návrhu pak vybíráme, jaký architektonický styl bude pro daný projekt ideální. Rozpracování komponent. Podrobně se věnujeme, jak konkrétně budou dílčí části systému – komponenty pracovat. Určujeme zpracování vstupů z rozhraní na výstup – tedy vstup do další komponenty. Programování, kódování. V této fázi se rozpracované komponenty zapisují ve formě programovacího jazyka, provádí se také základní ověření správné funkcionality. Integrace a testování. Jedná se o skládání systému a provádění testování. Mezi testování patří verifikační testy, kdy se zabýváme ověřením kvality z pohledu zdrojového kódu a správného návrhu architektury. Provádí se také validační testování, kdy je cílem ověřit, jak a do jaké míry jsou naplněny požadavky vytvořené během analýzy požadavků. Nasazení a instalace. V rámci této fáze jsou připravovány instrukce k nasazení systému a také samotné nasazení systému. Provádí se také testování systému po nasazení. Školení a používání. Budoucí uživatelé musí být proškoleni, aby uměli systém řádně používat. Je potřeba se soustředit na možnosti systému, ale i na jeho limity. Údržba. Tato fáze pokrývá zejména dobu užívá4 – Vybrané aspekty návrhu webových informačních systémů ní. Lze ji časově vymezit od začátku užívání až do konce životnosti. Během této fáze se řeší případné požadavky uživatelů na rozvoj systému nebo odstraňování případných technických nedostatků. Lze říci, že všechny modely životního cyklu softwarového procesu obsahují některé nebo všechny fáze. Vodopádový model Vodopádový model se obvykle skládá z těchto fází [10]: Analýza požadavků, Návrh, Vývoj – Implementace, Testování, Instalace a Údržba. Návrh Implementace Testování Instalace Obr. 1-1:Vodopádový model vývoje software Vodopádový model patří mezi nejstarší příspěvky ke snaze o systematičnost při vývoji softwarových aplikací. Jeho autorem je Winston W. Royce Trendy a vývoj životního cyklu – 5 a model sám osobě je reakcí na jev zvaný softwarová krize, která je patrná koncem 60. let dvacátého století. Jak je vidět z fází modelu, tak je inspirován potřebami vývoje systémů. Základní stavební prvek modelu je sekvenční vykonávání aktivit a zejména setrvání v dané aktivitě tak dlouho, dokud není z pohledu autora zcela dokončena. Právě odsud plynou nedostatky tohoto přístupu. Je obtížné v úvodních fázích – tedy při sběru požadavků a návrhu – přesně a dostatečně zpracovat koncepci systému tak, aby nebylo nutné se k těmto činnostem v budoucnu vracet. Vodopádový model není schopen provést potřebné změny a proto vede k časově náročnému a tím často i k finančně nákladnému vývoji. Pro vývoj webových informačních systémů se principy vodopádového modelu nehodí také proto, že neuvažují o zpětné vazbě od uživatelů a nepočítají s možností prototypování systému. Dalším důvodem je potřeba specifikace ve fázi uzavírání kontraktu. Jakákoliv specifikace, která je uvedena přímo ve smlouvě – z pohledu funkčního může být vyžadována jednou nebo druhou smluvní stranou, což vede ke sporům. Ani jedna ze stran totiž není schopna vytvořit specifikaci tak, aby si byla jista, že pokrývá vše potřebné (na jedné straně) a vše je možno vytvořit a dodat (na druhé straně). Z pohledu vývojového týmu je tento model nevýhodný, protože dochází k malému vytížení členů vývojového týmu. V každé fázi se totiž na řešení podílí pouze ten člen, který je specialistou na danou oblast. Iterační model Iterační nebo přírůstkový model využívá ze sche6 – Vybrané aspekty návrhu webových informačních systémů matického pohledu stejné fáze jako model vodopádový. Vše však probíhá cyklech – iteracích (přírůstcích). Mezi hlavní výhody patří výrazně kratší doba jednotlivých fází a tím je možné vydávat jednotlivá sestavení software k validaci uživateli velmi často. Základní princip / citace/ tedy spočívá v tom, že v úvodních fázích vývoje – časového pohledu – existuje jen obecná dokumentace požadavků na vyšší úrovni bez podrobného rozpracování. Podrobnosti se doplňující během běhu vývoje v rámci dalších a dalších přírůstků. Směr a celkový rozsah je tak uživatelem ovlivňován průběžně. Spirálový model Zatímco předchozí dva modely patří mezi operační modely, tedy na vývoj se pohlíží jako na sekvenci činností. Spirálový model patří mezi neoperační modely. Model je založený na identifikaci rizik [10]. Riziky zde rozumíme vše co může mít negativní vliv na vyvíjený systém. Vyhodnocení Plánování Obr. 1-2: Spirálový model vývoje software Trendy a vývoj životního cyklu – 7 Spirálový model byl původně navržen Boehem. Každá otáčka spirály znamená průběh jedné fáze vývoje daného softwarového produktu. Jedna otočka se zabývá proveditelností, druhá požadavky a podobně. V základu se spirála dělí na čtyři základní fáze [10]. V první etapě se provede nastavení procesu, jsou nalezeny omezení pro proces či produkt. Provádí se zde také plánování nebo úprava plánu a identifikují se již zmíněná rizika. Druhá fáze se zabývá řešením nalezených rizik. Cílem je minimalizovat dopad každého nalezeného rizika na daný projekt. Například může být rozhodnuto, že pro lepší analýzu požadavků bude vyvinut prototyp systému. Ve třetí fázi se vybírá volba vhodné metodiky pro vývoj. Volba obecně záleží na účelu a typu vyvíjeného systému. Pro některé systémy je vhodný evoluční prototypový vývoj (tam, kde je důležité uživatelské rozhraní). Metodiky založené na vodopádu jsou pak vhodnější tam, kde je potřeba pracovat s dělením na subsystémy, které se pak mají integrovat. Modelů softwarových procesů vzniklo a dále vniká velké množství. Tyto tři patří dnes mezi ty nejčastěji využívané. V českých podmínkách stále převažuje tendence využívat principy vodopádového modelu. Tento fakt vychází ze subjektivního hodnocení a není dosud podložen objektivním empirickým výzkumem, který by situaci objasnil. I když, jak bylo naznačeno, tak stále existují projekty, pro které je vodopádový 8 – Vybrané aspekty návrhu webových informačních systémů přístup potřebný. Pro klasický vývoj webového informačního systému však příliš výhodný není. Proces vývoje webových informačních systémů je specifický svým založením. Lze na něj uplatnit základní pravidla práce známá z uvedených generických modelů. Platí však, že vzhledem ke specifičnosti webového prostředí je potřeba základní přístupy modifikovat. Proces vývoje Softwarový proces webových informačních systémů musí reflektovat specifika webových aplikací. Nyní se pokusíme navrhnout základní metodický rámec pro vývoj. Navržený přístup je založen na evolučním vývoji a vodopádovém přístupu. Základní fáze lze rozdělit do čtyř stupňů vodopádu: •Koncepce a strategie •Struktura a design •Kódování a vývoj •Testování a spuštění •Optimalizace a údržba Každý z těchto čtyř stupňů je pak dále rozpracováván pomocí principu evolučního vývoje. Základní použití vodopádu bylo zvoleno, protože přináší potřebnou posloupnost ve vývoji. Při vývoji webového informačního systému pracujeme ve dvou základních etapách – první je vývoj grafického uživatelského rozhraní a následně pak probíhá implementace daného uživatelského rozhraní. Když se na základní stupně podíváme podrobněji nacházíme tyto základní činnosti, které si nyní popíšeme. Trendy a vývoj životního cyklu – 9 Koncepce a strategie Jedná se tedy o podrobné seznámení se s řešeným systémem, sběrem a analýzou požadavků. U webových informačních systému se více soustředíme na modelové scénáře, které chápeme jako základní popis činnosti příslušného uživatele. V této fázi také stanovíme předpokládané uživatele. Vytváříme tzv. Osoby, které představují prototyp našeho uživatele, respektive více uživatelů. Stanovení osob je často výsledkem analýzy rolí a dostupných informací z marketingové strategie. Jako Osoba se označuje charakteristika uživatele, která v sobě obsahuje soubor jeho vlastností – tedy sociální charakteristiky, typické nákupní chování a znalostní charakteristiky. Posledním bodem se rozumí schopnost dané Osoby pracovat s určitou technologií. Struktura a design Návrh organizační struktury systému, tvorba prototypu uživatelského rozhraní a vytvoření uživatelského rozhraní. U webových informačních systémů je jednou z klíčových fází. Návrh struktury úzce navazuje na navržené Osoby a zejména na modelové scénáře. Hlavním cílem je navrhnout potřebou strukturu systému, což spočívá zejména v návrhu dat, které bude daný systém poskytovat nebo sbírat. Součástí struktury je tak i návrh obsahu, a to možná co nejvíce konkrétně. Právě zde je výrazný rozdíl mezi návrhem webových a klasických aplikací. Webové informační systémy či webové aplikace jsou vždy stavěny na daná data. Pokud je navržena struktura, tak se pokračuje návrhem designu. Designem zde rozumíme návrh uživatelského rozhraní a lze říci, že právě návrh uživatelského 10 – Vybrané aspekty návrhu webových informačních systémů rozhraní tvoří významnou součást návrhu aplikace. Při návrhu uživatelského rozhraní se velmi využívají různé prototypy. Prototypování je velmi důležitá činnost při celém návrhu designu. Zpravidla se začíná drátěným modelem, který obsahuje pouze základní kompoziční řešení každé z obrazovek. Jako obrazovka se označuje každá stránka, která je součástí modelového scénáře. Pomocí evolučního přístupu se pak modely rozvíjí a návrh uživatelského rozhraní zpřesňuje až do finální podoby. Kódování a vývoj Do stupně kódování a vývoje vstupuje již finální podoba struktury aplikace a designu. Tento přístup vede k tomu, že se v této fázi pouze implementují definované a validované modelové scénáře, kdy každý krok je již popsán v podobě prototypu uživatelského rozhraní. Testování a spuštění V rámci tohoto stupně se provádí uživatelské testování, testování struktury a kontinuity navigace, testování použitelnosti a akceptační testování. Testování – uživatelské testování je také součástí stupně Struktura a design, protože prototyp uživatelského rozhraní je testován uživateli. Optimalizace a údržba Webové informační systémy či spíše webové aplikace jsou stavěny pro dopředu neznámý počet uživatelů. Proto je údržba velmi podstatnou částí. Mezi údržbu řadíme snahu o stálé zdokonalení systému, řešení nových uživatelských požadavků a řešení defektů. Mezi údržbu dále Trendy a vývoj životního cyklu – 11 řadíme i správu datového obsahu, což je také novým příspěvkem vývojového procesu. U běžných softwarových systémů tento aspekt odpadá. Shrnutí vývojového procesu Vývoj webových informačních systémů musí být orientován na data a uživatelské rozhraní. Právě tento fakt celý proces výrazně odlišuje. Proto se u vývoje webových informačních systémů s úspěchem uplatňuje popsaná metodika, která je založena na vodopádovém modelu, kde se však v rámci každého stupně vodopádu uplatňují přístupy evolučního vývoje. Tento přístup je také nutný, protože na vývoji webového informačního systému se uplatňuje dělení na subsystémy, které jsou vyvíjeny samostatnými dodavateli. Zejména ve fázích než je dokončeno uživatelské rozhraní se uplatňuje prototypování, které přispívá k dokonalém pochopení požadavků i koncepce systému jako takového. 12 – Vybrané aspekty návrhu webových informačních systémů Specifikace a analýza požadavků při návrhu Petr Šilhavý 2 Každý softwarový projekt začíná tím, že vzniká potřeba či cíl, který má být vyřešen. Stále se setkáváme s tím, že tyto potřeby jsou popsány velmi nejasně bez potřebné úrovně podrobnosti. Softwarové firmy – některé – stále věnují nedostatečný prostor úvodním fázím projektu či úvodním fázím projektových přírůstků. Tyto nedostatky pak vedou k tomu, že programátoři jsou nuceni o podobě a způsobech řešení rozhodovat přímo při psaní kódu. Je také pravdou, že mnohým tvůrcům kódu není tento způsob proti mysli. Toto tvrzení není podloženo žádným seriózním výzkumem, avšak vychází z pozorování a zkušeností s českou komunitou programátorskou. Nabízí se paralela se stavebnictvím. Když se staví dům, také není úkolem zedníků rozhodovat o tom, jak vysoký dům bude, z jakého materiálu, kolik bude mít oken, jakou izolaci a podobně. Vývoj webového informačního systému samozřejmě není činnost sofistikovaná, tak jako stavebnictví, avšak aplikace vhodné úrovně systematičnosti nebo přesněji inženýrského přístupu je více než vhodná. Potřeba přesné analýzy a dokumentace není vždy stejná. Záleží na významnosti daného informačního systému a pak také na jeho zařazení z pohledu tzv. kritičnosti aplikace. Jiné nároky je potřeba mít na běžný vnitrofiremní informační systém, jiné pak na systém elektronického bankovnictví. Základním pojmem, kterým se budeme v této kapitole zabývat je požadavek, případně inženýrství požadavků. V této souvislosti se také často hovoří o specifikaci. Sběr požadavků neboli specifikace systému je podle celé řady autorů jednou z hlavních fází, která se nejvíce podílí na selhání systémů nebo vzniku, již v úvodu zmíněných, potíží při dokončování projektů. Je potřeba však chápat, že dokumentace požadavků je vždy jen tak dobrá, jak dobrý – tedy zkušený, je její autor či autoři. Ještě lépe lze danou problematiku vystihnout tak, že dokumentace požadavků je dobrá tak, jak úspěšně ji lze pro návrh a následné programování daného informačního systému využít. Dobrá specifikace tedy bude popisovat funkcionalitu budoucího systému, která je zadavateli požadována. Návrhářům systému odpoví na otázky, které si budou klást při návrhu koncepce a architektury. Měla by také být základním časovým rozvrhem pro plánování jednotlivých iterací, pokud je pro vývoj využívána metodika na přírůstcích založená. Bylo však chybou vykládat specifikaci jako dogmatický dokument. Specifikace nemá za úkol potírat názory v týmu. Dobrá specifikace má také podporovat přemýšlivost v týmu a snahu o návrh co nejvhodnějšího řešení. S tím souvisí také organizační struktura týmu, na specifikaci se má podílet celý budoucí tým, protože specifikace či lépe řečeno všechny úvodní fáze návrhu jsou založeny na diskusi se zadavateli nebo členy týmu. Analytik, který 14 – Vybrané aspekty návrhu webových informačních systémů považuje specifikaci za jedinou danou věc, která vzniká proto, aby šířila jen jeden názor a přístup k řešení je odsouzen k zániku a jeho projekt k neúspěchu. Co má specifikace obsahovat Softwarové inženýrství rozeznává celou řadu metodických přístupů. Jeden z možných přístupů k návrhu byl navržen i v této knize, avšak to podstatné pro účely této kapitoly lze spatřovat v tom, že každá z metodik stanovuje svá individuální pravidla na to, co má být obsahem specifikace. V dobré specifikaci by vždy měly být zastoupeny následující části. Jejich kombinace je pak právě charakteristickým znakem pro každou z vývojových metodik. Požadavky Požadavky je možné popsat jako popis funkce budoucího systému nebo podmínku jeho fungování, přičemž obě tyto entity jsou definovány zadavateli. Na požadavky je možné pohlížet z několika pohledů. Na sesbírané požadavky pohlížíme jako na tzv. hrubé požadavky [39]. O hrubých požadavcích hovoříme proto, že se jedná o požadavky dosud nijak nezpracované. Jejich cílem často bývá stanovení uživatelských cílů, které mají být dosaženy. Následnou analýzou požadavků se pak stanovuje jak dané cíle dosáhnout. Druhou skupinou jsou nefunkční požadavky. Jako nefunkční požadavky jsou charakterizovány všechny, které nepopisují přímo budoucí systém, ale lze je chápat tak, že jejich cílem je seznámit vývojový tým se situací v problémové doméně a podmínkami, které se v rámci domény uplatňují. Specifikace a analýza požadavků při návrhu – 15 Patří sem požadavky na spolehlivost, výkonnost, bezpečnost nebo zabezpečení. Další skupinou jsou systémové charakteristiky. Zde se jedná o popis nežádoucí funkce systému. Tedy chování, které žadatelé nepožadují a nesmí k němu dojít. Toto je velmi dobrá metoda, jak popsat chování informačního systému. Při vývoji se lze totiž často mnohem rychleji dopátrat chování informačního systému, které žadatelé odmítají. Bývá na něm mnohem lepší shoda. Poslední skupinou, která se zpravidla vyčleňuje jsou požadavky na omezení. Lze říci, že úzce souvisí s charakteristikami. Omezení musí být platné, ať je zvolené řešení jakékoliv. O všech požadavcích musí platit, že jsou atomické, tedy dále nedělitelné. Toto je zárukou jednotného výkladu a popisuje jeden konkrétní aspekt specifikovaného systému. Jaké metody sběru lze využít Pro sběr požadavků existuje celá řada metod. Nyní se podíváme na vybrané metody, které jsou pro sběr požadavků nejpoužívanější. Tyto lze najít v celé řadě metodik a lze říci, že se také často používají zcela intuitivně. Tyto metody často vycházejí z jiných oborů a oblastí a pro účely zpracování požadavků byly upraveny [40]. Rozhovor. Velmi častý způsob sběru a také velmi intuitivní. Používá se často ve všech oblastech softwarového nebo systémového inženýrství [10,40]. Rozhovor, neboli interview, je původně metoda práce adoptovaná ze sociálních věd, kde 16 – Vybrané aspekty návrhu webových informačních systémů je to jeden z hlavních způsobů sběru dat pro výzkum. Přes svou běžnost není rozhovor metodou jednoduchou. Rozhovor lze používat ve třech základních typech. Existuje rozhovor polo-strukturovaný, plně-strukturovaný a nestrukturovaný. Pro účely analýzy požadavků se jeví jako nejvíce užitečný rozhovor polo-strukturovaný. Toto je dáno tím, že rozhovor by měl být spíše diskusí. Od analytika se očekává schopnost vést rozhovor konstruktivně k danému cíli, avšak na druhé straně není vhodné příliš zadavatele omezovat úzkým rozsahem otázek. V případě plně-strukturovaného rozhovoru se velmi jednoduše může stát, že dojde k opomenutí důležitého požadavku jen proto, že otázka nebyla formulována v dostatečné šíři. Dalším důvodem proč je vhodné se vyhnout plně-strukturovanému rozhovoru je snaha nevynechat skupinu otázek. Tyto otázky respektive jejich témata se analytikovi mohou jevit jako nepodstatné či dokonce s problémovou doménou nesouvisející. Braintorming. Metody brainstormingu jsou velmi vhodným prostředkem pro sběr požadavků. Často se využívají jako doplnění rozhovoru a to zejména v jeho polo-strukturované variantě [40]. Výhodou brainstormingu při sběru požadavků je možnost vzájemné diskuse zadavatelů a z ní plynoucí možnosti zaznamenat vzájemné podněty diskuse zadavatelů. Právě tento typ debaty je pro pochopení podstaty řešeného problému významný. Laddering. Najít plně odpovídající české pojmenování této techniky není snadné, avšak lze jej vykládat jako stupňovou technikou. Principem této techniky rozhovoru [40] je vytvářet určiSpecifikace a analýza požadavků při návrhu – 17 tou hierarchickou strukturu odpovědí, které na sebe vzájemně navazují a dochází tak k postupnému zpřesňování respektive objevování stále nových informací. Nejdříve se tedy otázky formulují obecněji, kdy je snahou získat přehled o celkových výstupních vlastnostech webové aplikace. Na základě těchto informací je v další debatě snaha o podchycení vzájemných souvislostí. Otázky se pak formulují tak, abychom dokázali více rozpracovat každou ze zjištěných základních vlastností. Zde mají velmi důležitou roli klíčová slova proč a proč právě takto. Těmito otázkami, které míří do hloubky problémové domény dochází k zachycení řešené aplikace na všech úrovních abstrakce. Od celkového konceptu až do podrobností. Dotazníky. Dotazníky jsou považovány za nejvýznamnější metodu neosobní komunikace. Lze říci, že je vhodné je využívat v přípravné fázi na některou z osobních metod sběru požadavků. Dotazník však nelze využít jako jediný zdroj informací. Selhává totiž v rozkrývání nových oblastí problémové domény navrhovaného systému. Také příprava dotazníku, aby poskytl alespoň informace pro přípravu brainstormingu nebo rozhovoru není snadná. Měl by ji vždy vykonávat analytik, který je zkušeným odborníkem na danou problémovou doménu. Analýza cílů a úkolů. Tato aktivita je založena dekompozici úkolů [41], kdy se provádí dekompozice dle úrovní abstrakce návrhovou metodou shora-dolů. Tím dochází k nalezení všech potřebných požadavků. Jedná se přitom o uživatelské i systémové požadavky. Výsledné požadavky 18 – Vybrané aspekty návrhu webových informačních systémů se zaznamenávají formou uživatelských nebo systémových scénářů, platí přitom, že každý požadavek může být reprezentován více jak jedním scénářem. Pozorování. Pozorování jako metoda sběru požadavků vychází z etnografie a jiných sociologických disciplín. V oblasti softwarového inženýrství se používá pro pozorování uživatelů, kteří plní své úkoly v dané problémové doméně. Tato metoda se nejvíce využívá při návrhu uživatelsky orientovaných systémů a v případě webových aplikací je vhodná její kombinace s prototypováním. Pozorování vykazuje různé výsledky, pokud uživatel ví, že je pozorován a v případech, kdy neví, že je pozorován. Uživatelé vykazují jistou tendenci ke změně chování v případě, že je jejím známo, že jsou součástí pozorování. Prototypování. Prototypování je považováno za metodu sběru požadavků a právě u webových aplikací je jeho účel velmi podstatný. Jeho význam je však potřeba spatřovat v dalších iteracích sběru požadavků, kdy je nutné požadavky nejen sbírat do větších podrobností, ale také ověřovat správnost pochopení dříve získaných požadavků. Průběh sběru požadavků Sběr požadavků je komplexní proces, které lze popsat osmi základními fázemi: 1.Analýza aplikační domény. 2.Identifikace klíčových zadavatelů. 3.Vypracování uživatelských scénářů a systémových scénářů. 4.Realizace prototypu. Specifikace a analýza požadavků při návrhu – 19 5.Nalezení funkčních požadavků. 6.Nalezení nefunkčních požadavků. 7.Identifikace omezení pro každý z požadavků. 8.Klastrování požadavků. Analýza aplikační domény je důležitá fáze. Během této fáze dochází k seznámení s aplikační doménou. Další krok pak vede k tomu, aby bylo možné najít všechny klíčové zástupce uživatelů webové aplikace, kteří budou mít klíčovou roli při sběru požadavků. Další krok spočívá v sestavení scénářů, které popíší předpokládané činnosti, které budou uživatelé v navrhované aplikaci provádět. Tyto základní scénáře jsou přepracovány do podoby prototypu. Tento prototyp je velmi vhodným nástrojem pro sběr požadavků. Prototyp lze využívat pro nalezení všech základních požadavků, včetně identifikace omezení. Předpokladem je využití brainstormingu a s postupným směřováním od požadavků vyšší úrovně směrem k těm dále nedělitelným. Konečnou fázi inženýrství požadavků je klasterizace požadavků, která tvoří základ budoucí dekompozice systému na komponenty, respektive moduly. 20 – Vybrané aspekty návrhu webových informačních systémů Datové modelování a návrh databáze Zdenka Prokopová 3 Po dokončení fáze analýzy, sběru a dokumentace požadavků na nový databázový systém jsme připravení k dalšímu kroku a tím je modelování a návrh databáze. Cílem datového modelování je navrhnout kvalitní datovou strukturu pro konkrétní aplikaci a databázový systém, který bude tato aplikace využívat k uložení dat. Jde vlastně o formalizaci a dokumentaci stávajících procesů a událostí, které se vyskytují při návrhu aplikačního softwaru. Datové modelování v softwarovém inženýrství je tedy proces vytvoření datového modelu informačního systému, za použití formálních modelovacích technik. Proces modelování dat zahrnuje na jedné straně profesionální datové modeláře úzce spolupracující s podnikatelskými subjekty a na straně druhé potenciální uživatele informačního systému. Modelování dat a návrh databáze jsou dvě odlišné činnosti. Jedním ze způsobů jak tyto dvě činnosti odlišit je položení otázky, na kterou hledáme odpověď: 1.U modelování dat zní otázka, na kterou se ptáme: Jak vypadá „svět“ který modelujeme? Hledáme zejména podobnosti mezi věcmi. Určíme si hlavní „typ” věci, která může mít podtypy – např. Právnické osoby a Fyzické osoby. Pokud jsou dodavatelské kontakty koncepčně odlišné od zákaznických kontaktů, pak by měly být modelovány odděleně. Na druhou stranu, pokud jsou to pouze dílčí odlišnosti stejné věci, pak by se s nimi mnělo zacházet jako se stejnou věcí. 2.U návrhu databáze odpovídáme na otázku: Jak efektivně vytvořit databázi, která bude podporovat funkci navrhované aplikace nebo webové stránky? Hlavním úkolem je nalézt podobnosti mezi entitami (subjekty) tak, aby je bylo možné integrovat do jedné tabulky. Například tabulka Zákazník kombinuje všechny atributy právnických i fyzických osob zákazníků. Dá se říci, že datový model je pouze jednou částí celkového procesu návrhu databáze. Proces návrhu databáze Pojem “návrh databáze” může popisovat mnoho různých částí návrhu celkového databázového systému. Principiálně je ho možné chápat jako logický návrh struktury základních údajů používaných pro ukládání dat. Návrh databáze však můžeme také použít pro označení celého procesu projektování, a to nejen základní datové struktury, ale i formulářů a dotazů používaných jako součást celkové databázové aplikace v komplexním systému pro správu databází. Správný návrh databáze může následně ušetřit čas při její tvorbě a také zajistit její dobrou funkčnost a spolehlivost. 22 – Vybrané aspekty návrhu webových informačních systémů Proces návrhu databáze se skládá z fází a kroků, které vedou tvůrce (návrháře) správnými technikami používanými při plánování, správě a kontrole, co vede k vytvoření funkčního projektu. Jedna z nejčastěji používaných metodologií rozděluje návrh databáze do tří základních fází: •Konceptuální návrh databáze •Logický návrh databáze •Fyzický návrh databáze V první fázi tj. konceptuálním návrhu je vytvářen konceptuální model dat bez uvažování podrobností o datech. Ve druhé fázi, logickém návrhu, se převádí (mapuje) konceptuální model do množiny relačních tabulek. Tabulky jsou kontrolované na redundanci (pomocí normalizace) a schopnost podporovat transakce. Ve třetí fázi, fyzickém návrhu, se rozhoduje, jak se bude fyzicky implementovat logický návrh databáze. V dalších kapitolách se fázemi návrhu databáze resp. odpovídajícími datovými modely budeme zabývat podrobněji. Datové modely Jedním z největších problémů při navrhování databáze je skutečnost, že aktivní účastníci tohoto procesu tj. návrháři, vývojáři, programátoři a koncoví uživatelé vidí stejná data rozdílným způsobem. Aby byla jistota, že všichni přesně rozumí povaze dat a jejich používání, je pro komunikaci všech účastníků procesu návrhu databáze nutný model databáze. Z předem uvedených fází návrhu databáze plyne existence odpovídajících modelů: 1.Konceptuální datový model specifikuje poDatové modelování a návrh databáze – 23 žadavky na údaje. Jde v podstatě o sadu specifikací technologií nezávislých na datech. 2.Logický datový model navazuje na konceptuální datový model. Dokumentuje strukturu dat, která mohou být realizována v databázích. Provedení jednoho konceptuálního datového modelu může vyžadovat více logických datových modelů. 3.Fyzický datový model je datový model, který organizuje data do tabulek, určuje přístup, výkon a ukládání informací dle zvoleného systému řízení báze dat. Návrh databáze dokumentovaný pomocí těchto tří modelů pak může být použitý ke generování databáze pomocí jazyka DDL (Data Definition Language). Tvorba datových modelů tj. datové modelování definuje nejen datové prvky, ale i jejich struktury a vztahy mezi nimi. Pro všechny projekty, které vyžadují standardní způsob definování a analyzování dat, se důrazně doporučuje používání standardních modelovacích technik. Použití datového modelování se doporučuje např. v případech: •Tvorby databází / datových skladů •Spravování dat jako zdroje •Integrace informačních systémů Tvůrci datových modelů často používají více modelů pro zobrazení stejných dat z důvodu zajištění, že všechny procesy, osoby, vztahy a toky dat byly rozpoznány. Pro programátora a vývojáře aplikací je velmi důležité chápání základních prvků modelování dat, tak aby mohl nejen 24 – Vybrané aspekty návrhu webových informačních systémů číst datové modely, ale také efektivně spolupracovat s administrátory, kteří jsou odpovědní za datově orientované aspekty projektu. Metodologie datového modelování I když existuje mnoho způsobů, jak vytvářet datové modely, podle [22], vynikají pouze dvě metody modelování: 1.Zdola nahoru – modely, které obvykle začínají z existujících formulářů, datových struktur, polí na obrazovkách aplikace nebo zpráv. Tyto modely jsou obvykle fyzikální, specifické pro danou aplikaci a neúplné z pohledu podniku. Nepodporují sdílení dat, zejména pokud jsou vytvořeny bez odkazů na jiné částí organizace. 2.Shora dolů – jde většinou o logické datové modely, které jsou vytvořeny abstraktním způsobem získávání informací od lidí, kteří znají danou oblast modelování. Systém nemůže specifikovat všechny subjekty v logickém modelu, model slouží jako referenční bod nebo šablona. Tato metoda je využívána i u konceptuálního modelování. Někdy se modely vytvářejí kombinací obou metod. Bohužel, v mnoha prostředích je rozdíl mezi logickým datovým modelem a fyzickým datovým modelem nejasný. Navíc, některé CASE systémy nedělají rozdíl mezi logickými a fyzickými datovými modely, co je často na škodu věci. Datové modelování a návrh databáze – 25 Konceptuální datový model Konceptuální datový model může být chápán jako schéma nebo diagram, který znázorňuje vztahy mezi daty. Ačkoli zachytit všechny možné vztahy v datovém modelu může být časově velmi náročné, je to důležitý krok a neměl by být uspěchán. Dobře zdokumentované modely umožňují zúčastněným stranám identifikovat chyby a uskutečnit případné změny před každým napsáním programového kódu. Aktuálně používaný model je často nazýván “Entitně relační model“ (ERM), protože zobrazuje data z hlediska entit (subjektů) a vztahů mezi entitami (relacemi). Z toho plyne, že Entitně relační modelování je metoda používaná v softwarovém inženýrství k tvorbě konceptuálních datových modelů. ERM se používají v první fázi návrhu informačního systému, tj. v průběhu analýzy požadavků na informační systém nebo typu informací, které mají být v databázi uloženy. ERM je tedy možno chápat jako abstraktní konceptuální reprezentaci strukturovaných dat. Notace datového modelování Pro účely modelování dat pomocí ERM existuje několik různých způsobů zápisu datových záznamů, kterým se říká notace. Na Obr. 3-1 můžeme vidět syntaxi tří různých notací: Informační inženýrství, Barkerova notace a notace Unified Modeling Language (UML). Toto schéma není samozřejmě komplexní, jeho cílem je pouze poskytnout čitateli základní přehled a ukázky notací. 26 – Vybrané aspekty návrhu webových informačních systémů Obr. 3-1: Vybrané typy notací datového modelování UML je standardní notace pro modelování objektů reálného světa. Je následovníkem mnoha metod oběktově orientované analýzy a standardním modelovacím jazykem. Pro návrh datové struktury, která reprezentuje informace zpracovávané a prezentované v internetové aplikaci se často používá datový model WebML. Jedná se o konceptuální model, který je podobný ER diagramům, které se používají pro návrh struktury relačních databází nebo UML diagramům používaných v objektové analýze a návrhu. Datové modelování a návrh databáze – 27 CASE systémy CASE (Computer Aided Software Engineering) systémy jsou nástroje pro podporu analýzy a návrhu databázových systémů. Dnes je již zřejmé, že při návrhu rozsáhlejších informačních systémů se bez použití těchto nástrojů neobejdeme. Mezi známé a často používané CASE systémy patří naříklad: •CaseStudio •Oracle Designer •Power Designer •XTG Data Modeller CASE systém je profesionální software pro vizuální navrhování databázových struktur. Klíčové vlastnosti tohoto produktu zahrnují: •E R diagramy (Entity Relationship Diagrams) •P odporu pro různé databáze enerování SQL skriptů •G pětné načtení struktury (reverse engi•Z neering) •G enerování detailní HTML dokumentace enerování detailní RTF dokumentace •G xport do XML formátu •E Pro ukázku a porovnání uvádíme v tabulce Tab. 3-1. několik vybraných nástrojů pro datové modelování. Tvorba konceptuálního datového modelu Tvorba Entitně relačního modelu má přesně stanovený postup. Obecně se nejdříve určí důležitá data (entity) a vztahy (relace mezi daty), kte28 – Vybrané aspekty návrhu webových informačních systémů Tab. 3-1: Vybrané nástroje pro datové modeování Produkt Prodejce Cena Komentář Argo UML Tgris Zdarma Open Source vhodný pro modeování UML diagramů Case Studio 2 CharonWare Trial Zdarma Podporuje velké množství DBS Firebird, MaDB, Postgress Concept Draw CS Odessa Zdarma Pro ERD, UML, ORM DBDesigner 4 FabForce. net Zdarma Open-Source doporučeno pro MySQL Dezign Datamic Zdarma Podprouje 20 odlišných platforem Dia Sourceforge Zdarma Nástroj pro tvorbu diagramů Google WWW SQL Designer Ondrej Zara Zdarma Open-Source mySQL Workench mySQL Zdarma Vhodný pro mySQL Open ModelSphere Model Sphere Zdarma Vhodný pro UML Oracle SQL Developer Data Modeler Oracle Zdarma SQL RevJ Sourceforge Zdarma Open-Source SQL Developer Diagram Editor -- Zdarma Nevhodný pro Oracle Squirrel Squirrel Zdarma Open-Source Umbrello Sourceforge Zdarma Open-Source, vhodný pro UML Datové modelování a návrh databáze – 29 Produkt Prodejce Cena Visio Microsoft PlaceCena závisí na ný, Trial verzi Zdarma Komentář XCase Resolution Software PlaceKompletní náný, Trial stroj pro návrh a Zdarma údržbu databází obsahující archivaci a porovnání modelů ré je potřeba reprezentovat. Následně se postupuje k detailům, které je potřeba ohledně entit a relací zaznamenat. Konkrétněji lze postup popsat následujícími kroky (je potřeba ale zmínit, že postup se může mírně lišit v závislosti na použitém CASE systému): 1.Zvolíme jednu primární entitu ze specifikace požadavků. 2.Určíme atributy, jejichž hodnoty se mají pro tuto entitu zaznamenávat a označíme případné klíče (identifikátory). 3.Popíšeme slovně navrženou entitu, její atributy a klíče. 4.Prověříme funkční vztahy (závislosti) atributů a v případě potřeby entitu normalizujeme. 5.Prověříme atributy navržené entity (pokud možno ve spolupráci s uživatelem) a zjistíme, zda je třeba zaznamenávat informace o jednom či více atributech v nové samostatné entitě. 6.Je-li vhodné vytvořit další entitu, zaneseme ji do diagramu a vrátíme se na 30 – Vybrané aspekty návrhu webových informačních systémů krok 2. 7.Spojíme entity vztahy, pokud existují a popište slovně vztahy mezi entitami z obou stran. 8.Prověříme seznam atributů a určíme, zda některé z nich potřebují být identifikovány prostřednictvím dvou (či více) entit. Pokud ano, umístíme atribut na příslušný vztah, který spojuje dané entity. 9.Prověříme, zda v diagramu nemáme „smyčky“, které mohou indikovat nadbytečné (odvozené) vztahy. Pokud je vztah skutečně redundantní, odstraníme ho. 10.Předvedeme navržený model (diagram i slovní popis) uživateli. Pokud je to třeba, upřesníme diagram. Základní koncepty ERM jsou entity, atributy a relace. Identifikace entity Entita reprezentuje libovolný existující objekt reálného světa (osoba, věc, jev). Jednotlivý výskyt entity se označuje jako instance entity. Ukázkovou entitou je například entita “Zákazník” s instancemi entity například “František Dobrota”, “Josef Novák” a další. Entita musí být odlišitelná od ostatních entit. Každá entita je charakterizovaná svým názvem a seznamem atributů. Atribut je vlastnost entity (údaj o objektu). Například entita Zákazník bude mít pravděpodobně atributy (jméno, příjmení, ulice, město, PSČ, email, telefon a další). Grafické zobrazení entity se může odlišovat dle použité notace. V některých případech bývá zobrazena jako obdélník s označením jména entity Datové modelování a návrh databáze – 31 (obvykle se používá podstatné jméno v jednotném čísle) nebo je entita zobrazená pomocí obdélníku, do kterého jsou vepsané název a atributy entity. Na Obr. 3-2 jsou zobrazené ukázkové grafické notace entity. Obr. 3-2: Ukázkové zobrazení entity zákazník Většina používaných CASE systémů umožňuje sestavovat ERM pomocí hierarchie entit. Znamená to, že nadřazená entita může mít své podřazené entity. Pro takové entity platí, že podřazená entita představuje speciální případ nadřazené entity, dědí od ní všechny vlastnosti (atributy) a také k nim můžou být přidané její vlastní-specifické atributy. Hierarchie entit se může vyskytovat ve více úrovních. Používání hierarchie entit je známé pod označením I-SA hierarchie (viz Obr. 3-3). Identifikace atributů Každá definovaná entita musí mít jeden nebo více datových atributů. Při modelování se můžeme setkat s několika typy atributů: 32 – Vybrané aspekty návrhu webových informačních systémů Obr. 3-3: Ukázkový příklad I-SA hierarchie • Jednoduchý atribut – skládá se z jedné komponenty • Složený (strukturovaný) atribut – skládá se z více komponent (např. složený atribut adresa by obsahoval složky ulice, město, PSČ) • Atribut s jednou hodnotou – obsahuje jednu hodnotu na výskyt entity • Atribut s více hodnotami – obsahuje více hodnot na výskyt entity (např. atribut telefon by obsahoval hodnoty číslo1, číslo2…) • Odvozený atribut – obsahuje hodnotu, kterou lze odvodit z jiného atributu. Každý z definovaných atributů entity bude mít následně přiřazen datový typ. Základní datové typy jsou: •Řetězec znaků (String, Char, Text…) •Číslo (Int, Float, Real, Decimal…) Datové modelování a návrh databáze – 33 •Datum a čas (Date, Time…) •Logická hodnota (True/False, 1/0…) Ano/Ne, Jsou-li datové typy navrhovány v ERM, pak jsou používány tak, aby nebyly přímo závislé na konkrétním systému řízení báze dat, ve kterém se databázový systém bude tvořit. Přiřazení klíčů Klíče se entitám přiřazují z důvodu jednoznačné identifikace jednotlivých výskytů entity tj. identifikace každé instance entity. Při datovém modelování můžou být definované různé klíče: • Super klíč – atribut nebo množina atributů, která jednoznačně identifikuje každý výskyt entity • Kandidátní klíč – super klíč, který obsahuje minimální počet atributů potřebných k jednoznačné identifikaci výskytu entity • Primární klíč – kandidátní klíč, který zvolíme pro jednoznačnou identifikaci entity • Alternativní klíč – kandidátní klíč, který nebyl zvolen jako primární klíč. Existují dvě základní strategie pro přiřazování klíčů. V první řadě jde o přiřazení přirozeného klíče, kterým je jeden atribut nebo seznam více existujících atributů, které jsou unikátní a tudíž se hodí pro jednoznačnou identifikaci. U entity Zákazník zobrazené na obrázku Obr. 3-2 by mohlo jít o kombinaci více atributů např. jméno, příjmení, ulice, město. Ve druhém případě je možno entitě přiřadit náhradní klíč, což je klíč, který se používá v případě, že v entitě neexistuje žádný přirozený primární klíč, 34 – Vybrané aspekty návrhu webových informačních systémů Obr. 3-4: Ukázka přiřazení primárního klíče nebo je takový primární klíč příliš složitý. Příkladem přirozeného primárního klíče v entitě Zákazník by mohlo být např. rodné číslo (pokud by zákazníkem mohla být pouze osoba) nebo IČ. Náhradním klíčem by mohlo být např. pořadové číslo. Identifikace vztahů V reálném světě mají subjekty vztahy s ostatními subjekty. V ERM se definují vazby mezi entitami, které vlastně představují logické vztahy mezi entitami. V datových modelech je možné definovat pouze vazby mezi dvěma entitami (tzv. binární vazby). Multiplicita binární vazby je daná kardinalitou vztahu a ta může nabývat hodnot: • 1 : 1 - každé entitě odpovídá maximálně jedna druhá entita • 1 : N - první entitě odpovídá více než jedna druhá entita, druhé entitě odpovídá maximálně jedna první entita • M : N - první entitě odpovídá více než jedna druhá entita, druhé entitě odpovídá více než jedna první entita Každou takovou vazbu je možné chápat jako „dvě vazby v opačném směru“. Jde o tzv. role, které představují pohled na danou vazbu od jedné entity ke druhé a obráceně. Například na vazbu mezi Datové modelování a návrh databáze – 35 entitou Zákazník a Objednávka můžeme pohlížet z jedné strany tak, že se ptáme, jaké objednávky zákazník udělal, nebo se ptáme, který zákazník udělal danou objednávku. K jednotlivým rolím se přiřazuje kardinalita. Kardinalita (maximální kardinalita) je maximální počet vztahů daného typu, ve kterých může participovat jedna entita. Naproti tomu členství (minimální kardinalita) vyjadřuje minimální počet vztahů daného typu, ve kterých musí participovat jedna entita (0 – nepovinné členství ve vztahu, 1 - povinné členství ve vztahu). Kardinalita i členství představují omezení. Na obrázku Obr. 3-5 je zobrazená vazba “Zakaznik_Objednavka”, která vyjadřuje vztah mezi zákazníkem a objednávkou. Tuto vazbu popisují dvě role, ke kterým jsou přiřazeny kardinality. Obr. 3-5: Ukázka příkladu binární vazby Pokud vazbu čteme směrem od zakaznika k objednavce (zakaznik_objednal), tak se ptáme, kolik objednávek může zákazník vytvořit. Kardinalita (0, N) znamená, že zákazník může vytvořit žádnou objednávku nebo vytvořit N (teoreticky nekonečno) objednávek. Pokud vztah čteme z druhé 36 – Vybrané aspekty návrhu webových informačních systémů strany (objednano_zakaznikem), zajímá nás, kolik zákazníků může vytvořit danou objednávku. Kardinalita (1,1) znamená, že konkrétní objednávku může vytvořit pouze jeden konkrétní zákazník. Pravidla návrhu správných ERM Při navrhování a modelování ERM bychom mněli dodržovat jistá pravidla, která do jisté míry zaručí jejich správnost: •Z obrazujeme pouze data a jejich vztahy, žádné procesy Každý atribut zobrazujeme pouze jednou, • cílem je strukturovat seznam atributů, nikoli znázorňovat propojení v relační databázi Zobrazujeme seskupení dat pro účely ulo• žení v databázi, nikoli pro účely výstupů kombinaci atributů z různých entit a případné duplicity realizují až pohledy (formuláře, sestavy) • Zobrazujeme pouze perzistentní (trvalé) datové objekty, data, jež hodláme vygenerovat výpočty a agregacemi, nemodelujeme Entity mají být normalizované (např. • atributy, mezi kterými je vztah 1 : N, nepatří do stejné entity) •Zobrazujeme pouze nezbytně nutné vztahy (tj. ty, které k něčemu využijeme – např. v dotazu) Pozor na tyto entity: •Entita bez atributů •Entita, která má pouze identifikátor a žádné další atributy Datové modelování a návrh databáze – 37 •Entita, u níž nastane pouze jeden výskyt •Entita, která obsahuje atributy patřící jiným entitám (tzv. cizí atributy) Nezobrazujeme: • Redundantní vztahy • Odvozené vztahy • Kruhové závislosti (smyčky) V praxi se často vyskytují případy, kdy má entita definovaný atribut, který není tvořen jen atomickou hodnotou, ale má také svou vnitřní strukturu - strukturovaný datový typ. S touto problematikou se ERM často vypořádávají pomocí takzvaných slabých entit. Princip spočívá v tom, že k hlavní entitě se vytvoří „pomocná“ entita, která nemůže existovat bez hlavní entity. Takto vytvořená entita se propojí s hlavní entitou pomocí vazby s potřebnou kardinalitou. Logický datový model Převod konceptuálního modelu (ERM) do logického modelu (v našem případě relační model) je vlastně transformací definovaných entit, atributů a vztahů do množiny relačních tabulek. K transformaci (mapování) ERM na databázové schéma existuje více přístupů, které jsou popsané např. v [15]. Prvním krokem je vytvoření tabulek. Nejdříve se vytvoří pro každou entitu jedna tabulka. Do tabulky jsou přímo nakopírovány informace o atributech uloženými uvnitř entity. Také dochází k úpravě názvů atributů. Některé tabulky mohou být při převodu zrušeny. Kromě svých atributů můžou obsahovat identifikátory některých entit 38 – Vybrané aspekty návrhu webových informačních systémů Obr. 3-6: Ukázka příkladu binární vazby také identifikační atributy jiných entit. Reprezentace silné entity (entita identifikovatelná vlastním atributem) není problém, převede se na tabulku se stejnými atributy (kromě vícehodnotových) a z identifikátoru entity se stane klíč tabulky. Nepovinný atribut se vyřeší sloupcem, který může obsahovat hodnoty Null (nedefinované, prázdné hodnoty). V případě, že je některý atribut vícehodnotový, je nutno pro něj zřídit novou tabulku. Pokud by byla kardinalita vztahu mezi entitou a vícehodnotovým atributem M:N, pak by klíčem nové tabulky byli všechny její sloupce. Reprezentace slabé entity se řeší v rámci reprezentace vztahu s kardinalitou (0,N):(1,1) nebo (1,N):(1,1). V další části je třeba vyřešit všechny vztahy jeden po druhém. Reprezentace binárních vztahů se liší podle příslušných kardinalit. U kardinality (1,1):(1,1) nám pro převod stačí jediná tabulka pro obě entity. Dáme do ní všechny atributy obou entit a jejich vztahu. U kardinalit (0,1):(1,1) nebo (0,N):(1,1) definujeme dvě tabulky, pro každou entitu jednu tabulku, přičemž vztah dodefinujeme přidáním odpovídajících atributů z druhé entity. Pro převod binárního vztahu s kardinalitami (0,1):(0,1), (0,N):(0,1) nebo (0,N):(0,N) je Datové modelování a návrh databáze – 39 potřeba až tří tabulek - pro každou entitu jedna a třetí pro vztah. Dalším vhodným krokem je kontrola, zda má každá vytvořená tabulka vhodnou strukturu. Takováto kontrola tabulek se provádí pomocí normalizace. Mezi důležité kroky patří také kontrola integritních omezení. Integritní omezení (pravidla) jsou omezení plynoucí z reality reprezentované daty v dané databázi. Integritní pravidla zabraňují tomu, aby se databáze stala nekompletní nebo nekonzistentní. Mezi obecná integritní omezení patří: •Tabulka neobsahuje prázdné buňky - všechny hodnoty jsou definované •Rozsah hodnot atributu je dán datovým typem (doménou) •Neexistují 2 stejné řádky (unikátní identifikace entit) - každý řádek je identifikovatelný - klíč tabulky •Entitní integrita – primární klíč (žádná jeho část) nesmí obsahovat prázdnou hodnotu – hodnotu Null •Referenční integrita – tabulka nesmí obsahovat žádnou nesouhlasnou hodnotu cizího klíče Posledním krokem, který se doporučuje provést je kontrola a posouzení navrženého modelu uživateli. Normalizace dat Normalizace je technika, která je využívána při kontrole struktury tabulek transformovaných z ERM, nebo přímo navržených při přístupu mode40 – Vybrané aspekty návrhu webových informačních systémů lování „zdola nahoru“. Motivací k normalizaci jsou chybně navržené struktury tabulek, které můžou obsahovat redundantní data (stejné informace víckrát na různých místech) a tím způsobovat aktualizační anomálie při vkládání, aktualizaci, případně odstraňování dat (insert/ update/delete). Cílem normalizace dat je tedy snížit respektive eliminovat redundanci dat, co znamená minimalizovat nadbytečnost dat a tím snížit i jejich „prostorovou náročnost“. Dá se říci, že normalizace se obvykle provádí na tabulce jako řada testů, které kontrolují, zda jsou dodržena pravidla pro danou normální formu. Testy můžou být vykonávané ručně, ale častěji to bývá naprogramovaným algoritmem, který je součástí CASE systému. Nejsou-li normalizační pravidla dodržená, je potřeba tabulky dekomponovat. Dekompozice dat musí splňovat základní vlastnosti: •Odstranění opakování – redundance •Zachování závislostí - původní závislosti musí být zachovány •Bezztrátovost při zpětném spojení (spojením tabulek, které vznikli dekompozicí, musí dát přesně původní tabulku). Nejčastěji používané normální formy jsou první normální forma (1NF), druhá normální forma (2NF) a třetí normální forma (3NF). Existují i další (vyšší) normální formy, ke kterým patří Boyce-Coddova normální forma (BCNF), čtvrtá normální forma (4NF) a pátá normální forma (5NF). Vyšší normální formy se běžně nepoužívají, protože řeší specifické a málo se vyskytující problémy. Podrobné informace ohledně normálních forem Datové modelování a návrh databáze – 41 jsou popsané např. v [11]. První normální forma - 1NF Tabulka je v první normální formě, právě když všechny její atributy jsou atomické, tj. dále již nedělitelné. Tj. každý atribut je elementárního typu a je nestrukturovaný. 1NF je jedinou normální formou, která je kriticky důležitá při návrhu a vytvoření vhodných tabulek. 1NF je základní podmínkou „plochosti“ tj. tabulka je opravdu dvourozměrné pole (neobsahuje např. skrytý strom nebo graf). Druhá normální forma - 2NF Tabulka je ve druhé normální formě, právě když splňuje 1NF a všechny neklíčové atributy jsou plně funkčně závislé na celém (složeném) primárním klíči. Funkční závislost popisuje vztah mezi atributy A a B jedné tabulky, kde atribut A determinuje (předurčuje) atribut B ( ). Plná funkční závislost znamená, že atribut je funkčně závislý na celém složeném atributu a ne jen na některé jeho části. 2NF se týká jenom tabulek se složenými primárními klíči, tj. když volíme za primární klíč kombinaci atributů. Třetí normální forma - 3NF Tabulka je ve třetí normální formě, jestliže je v 2NF a všechny její atributy jsou přímo závislé pouze na primárním klíči - tj. všechny neklíčové atributy jsou navzájem nezávislé. 42 – Vybrané aspekty návrhu webových informačních systémů K porušení tohoto požadavku dojde, jestliže v tabulce existují atributy, které jsou závislé na jiných atributech, které jsou dále závislé na primárním klíči - tranzitivní závislost. Tranzitivní závislost popisuje vztah mezi atributy A, B, C. Pokud atribut A determinuje B ( ) a atribut B determinuje C ( ), pak atribut C je tranzitivně závislý na A prostřednictvím atributu B (tj. C nezávisí na A přímo, ale prostřednictvím B). Fyzický datový model Poslední fází návrhu databáze je převod logického modelu dat do modelu fyzického tj. převod navržených tabulek, jejich struktur a integritních omezení do cílového systému řízení báze dat. Pro správný návrh fyzického modelu je potřeba dobře znát funkčnost cílového systému řízení báze dat. Fyzický návrh databáze lze definovat jako popis implementace navržené databáze – podkladových tabulek, organizace souborů, použitých indexů a dalších integritních a bezpečnostních omezení. Velice důležitým krokem je návrh podkladových tabulek včetně datových domén a integritních omezení. Způsob jejich vytvoření závisí samozřejmě od použitého systému řízení báze dat. V některých případech je nutné kromě podkladových tabulek navrhnout také reprezentaci odvozených dat a dalších integritních omezení. Návrh a implementaci podkladových tabulek včetně dalších součástí je nutné detailně dokumentovat. Kromě popisu návrhu a implementace podkladových Datové modelování a návrh databáze – 43 tabulek musí být v dokumentaci uvedené i údaje o použitém systému řízení báze dat a operačním systému. Jedná se především o organizaci souborů, indexů a případných transakcí. Hlavním cílem je určit optimální resp. efektivní uložení dat tj. organizaci souborů. Některé systémy řízení báze dat nepodporují volbu organizace souborů, jiné ano. Pro případnou volbu organizace souborů, případně vytvoření indexů je potřebné, podobně jako pro návrh podkladových tabulek, vést podrobnou dokumentaci. Ve víceuživatelském systému řízení báze dat hrají důležitou úlohu (např. pro zajištění bezpečnosti) uživatelské pohledy. Pohledy se obvykle vytvářejí pomocí jazyka SQL jako „pojmenované dotazy“, ke kterým má přístup pouze specifikovaný uživatel resp. uživatelé. Posledním, ale o to důležitějším krokem, který zde zmíníme, je návrh zabezpečení databáze. Mechanizmus zabezpečení datových zdrojů se obvykle navrhuje dle požadavků uživatelů. Relační systémy řízení báze dat poskytují dva základní typy zabezpečení: zabezpečení systému a zabezpečení dat. Stručně řečeno, zabezpečení systému se provádí pomocí zavedení uživatelských jmen a hesel, zabezpečení dat pomocí uživatelských práv přístupu k objektům databáze. Jelikož otázka bezpečnosti dat je v současné době velice akruální a v centu pozornosti je potřeba se ji podrobně věnovat. Zabezpečení dat a bezpečnosti webového informačního systému obecně je věnovaná samostatná kapitola v této knize. 44 – Vybrané aspekty návrhu webových informačních systémů Grafické formáty pro WIS Pavel Pokorný 4 Cílem této kapitoly je popsat teoretické poznatky moderní 2D počítačové grafiky, které nachází využití v oblasti přípravy a tvorby grafických prvků u www informačních systémů. Celá tato problematika je rozložena do tří částí. V první části jsou podrobně popsány způsoby reprezentací obrazových informací včetně jejich výhod, nevýhod a oblastí použití. Ve druhé části se nachází výčet a stručná charakteristika vybraných grafických programů, které se v současné době hojně používají. Pozornost je zaměřena především na nekomerční aplikace. Třetí část této kapitoly popisuje nejčastější grafické formáty, do kterých se obrazové informace ukládají, a které bývají podporovány www informačními systémy. Počítačová grafika a reprezentace obrazových informací Počítačová grafika je oblast informatiky, která se dynamicky stále rozvíjí. Protože je velice úzce propojena s hardwarovým vybavením, tento rozvoj je dán zejména neustálým růstem výkonu a tím i možnostmi počítačů. V dnešní době si tak můžeme dovolit pracovat s obrazy ve vysokých rozlišeních a barevných hloubkách a provádět s nimi operace (velice často i v reálném čase), které dříve zrealizovat vůbec nešly nebo jen velice obtížně. Oblast použití počítačové grafiky je značně široká. Do této oblasti patří například konstrukční a návrhářské systémy v oblasti strojírenství, architektury (CAD/CAM), příprava a tvorba publikací (DTP), nejrůznější grafy, ikony, diagramy a mapy, výukové trenažéry a vědecké aplikace, počítačové animace (tvorby filmů či úpravy již vytvořených animací) nebo zpracování obrazu (zejména úpravy fotografií a naskenovaných obrazů). Nejobecnější dělení počítačové grafiky z pohledu její reprezentace bývá na vektorovou a rastrovou. Přestože se často používají společně, jsou mezi nimi zásadní rozdíly, které si nyní blíže specifikujeme. [2] Vektorová grafika Počítačová grafika, která je reprezentovaná vektorově, je dána ve formě matematického zápisu. Tento matematický zápis obsahuje definice čar a křivek, které jsou základními kameny všech grafických objektů, které příslušný obraz obsahuje. Těchto objektů může obraz obsahovat od jednotek až po tisíce a každý z nich má svůj vlastní popis a vlastnosti. Tyto popisy a vlastnosti pak můžeme dle potřeby měnit, tj. například u úsečky změnit polohu počátečního a koncového bodu, nastavit odlišný styl, tloušťku, barvu, apod. Hardwarové nároky počítačů pro práci s vektorovou grafikou bývají obvykle větší. Vše se odvíjí od toho, s jak náročnými obrazy se pracuje (tj. jaké množství vektorových prvků obrazy obsahují a případně jaké mají vlastnosti – především některé grafické efekty jsou velice náročné na 46 – Vybrané aspekty návrhu webových informačních systémů výpočetní výkon). Proto zde logicky platí pravidlo, že čím náročnější obrazy jsou, tím je potřeba výkonnější počítač. Z výše uvedeného popisu vyplývají výhody a nevýhody vektorové reprezentace obrazu. Díky matematickému popisu je vektorová grafika přesná a ani při velkém zvětšení vektorového obrazu nedochází k žádnému rozostření. Ostré a přesné hrany čar, křivek i všech dalších grafických objektů zůstávají stále zachovány. Další výhodou je snadná změna vlastností každého z objektů. Ve vektorovém obraze se tak snadno provádějí zásadní změny od vyjmutí až po nejrůznější deformace a efekty. Obr. 4-1: Ukázka vektorové grafiky [42] Mezi nevýhody vektorové grafiky můžeme počítat již zmíněné stoupající hardwarové nároky s narůstajícím počtem objektů. Také některé typy grafických prvků se pomocí matematického aparátu mohou popisovat jen velice obtížně, například výplně ploch. Oblasti použití vektorové grafiky opět vychází její charakteristiky. Je to tedy především tam, Grafické formáty pro WIS – 47 kde je vyžadována přesnost a vysoká kvalita obrazu. Setkáme se s ní proto především v oblasti konstrukcí a návrhů (CAD/CAM), grafických a kartografických informačních systémů (GIS), tvorbě počítačových animací, v reklamních studiích a agenturách, která navrhují vizitky, loga, reklamní letáky, potisky, apod. Rastrová grafika Obraz v rastrové (nazývané též bitmapové) grafice je složený z jednotlivých bodů, které jsou umístěny vedle sebe. Toto uspořádání se nejčastěji vyjadřuje pomocí matice, resp. mřížky (tj. obraz mívá obdélníkový nebo čtvercový tvar). Každý prvek této matice představuje bod výsledného obrazu, Každý z těchto bodů má pevně danou svoji polohu v obraze a barvu v některém z barevných modelů (RGB, CMYK, HLS apod.). Počty těchto bodů mohou být i miliony a lze z nich tak složit prakticky libovolný obraz. Hardwarové nároky rastrová grafiky bývají obvykle nižší než vektorové. Zde jsou tyto nároky dány rozlišením obrazu (tj. množstvím bodů) a barevnou hloubkou. Tyto dva parametry jsou stěžejní údaje vypovídající o možné kvalitě obrazu a zároveň také o spotřebě paměti počítače pro jeho uložení. Například nekomprimovaný obraz s rozlišením 800 x 600 bodů a barevnou hloubkou 256 barev v barevném režimu RGB potřebuje pro své uložení 800*600*1 = 480.000 bytů v paměti počítače (256 barev odpovídá 1 bytu pro každý bod a ve výpočtu neuvažujeme paměť pro uloženou barevnou paletu). Pokud bychom měli zmínit výhody a nevýhody ras48 – Vybrané aspekty návrhu webových informačních systémů trové reprezentace obrazu, lze obecně říci, že jsou přesně opačné vzhledem k vektorové grafice. Obě reprezentace se tak vlastně vzájemně doplňují a často se používají společně. Mezi výhody rastrové reprezentace obrazu patří snadnost jeho získání (často pomocí skeneru nebo fotoaparátu). Takto zachycený obraz bývá opticky věrný a lze s ním (často v kombinaci s dalšími rastrovými obrazy) prostřednictvím různých grafických nástrojů provádět různé efekty, fotomontáže nebo koláže. K nevýhodám rastrové grafiky logicky patří nepřesnost. Její další nevýhoda je, že je nevhodná pro obrazy kde dochází ke zvyšování rozlišení (dochází ke znatelnému zhoršení obrazové kvality). Mezi nevýhody patří i složitější manipulace s obrazy, které mají velmi vysoké rozlišení. Obr. 4-2: Ukázka diagoniální úsečky v rastru Do oblasti použití spadá například archivace, protože získané digitální obrazy si uchovávají stálou kvalitu a nepodléhají stárnutí a poničení či úplnému zničení jako papírová forma dokumentů. Dále se s ní můžeme setkat v oblasti reklamy a propagace, kde fotografie a rastrové obrazy doplňují přesné vektorové kresby. Často se také používá v multimédiích a počítačových hrách (2D i 3D – zde především jako výplně či Grafické formáty pro WIS – 49 textury pro 3D objekty). Stručná charakteristika vybraného grafického software 2D grafických programů existují desítky až stovky. Při hledání vhodného programu je třeba nejprve vybírat podle oblasti zaměření. Základní rozdělení grafických aplikací jsme si uvedli výše (rastrový či vektorový). Další kritéria, která rozhodují o výběru vhodného programu, jsou následující. Zaměření programu (zcela jistě se vybere jiný program pro tvorbu vizitek a propagačních materiálů a jiný program bude použit v oblasti strojírenských návrhů), množství grafických nástrojů, pro jaký operační systém byl vytvořen, uživatelská přívětivost (znalost prostředí) a cena programu. Na první pohled to vypadá, že čím více grafických nástrojů bude vybraný grafický program podporovat, tím lépe, protože se tak rozšiřuje oblast jeho působnosti. Ne vždy ale toto pravidlo platí. Například pokud potřebujeme vytvořit jednoduchou rastrovou kresbu, postačí obyčejné Malování, což je aplikace, která je součástí každého operačního systému Windows. V takových případech není třeba žádný program kupovat či stahovat z internetu. Navíc logicky platí obecné pravidlo, že čím komplexnější a složitější program na počítač nainstalujeme, tím větší mívá hardwarové a systémové požadavky pro svůj plynulý provoz. Dle zaměření této kapitoly zaměřme pozornost zejména na grafické aplikace, které se používají pro tvorbu a úpravu grafiky pro webové infor50 – Vybrané aspekty návrhu webových informačních systémů mační systémy. Do této kategorie můžeme zařadit následující programy: Vektorové: Adobe Illustrator, CorelDraw, Zoner Callisto, Inkscape. Rastrové: Adobe Pro, Pixia. Photoshop, Gimp, Paint Shop V obou kategoriích pochopitelně existuje programů mnohem více. Výběr byl proveden na základě obecně známé oblíbenosti uživatelů u profesionální i laické veřejnosti. Z výše uvedených výčtů stručně charakterizujeme dva programy – Inkscape a Gimp. Důvodem je, že jsou zcela zadarmo a přesto patří k nejlepším programům v dané oblasti. Vyzkoušet a používat je tedy může každý. Obr. 4-3: Základní uživatelské rozhraní programu Inkscape Program pro vektorovou grafiku - Inkscape Inkscape je open source vektorový grafický editor. Hlavním cílem tvůrců bylo vytvořit silný a schopný nástroj na kreslení plně kompatiGrafické formáty pro WIS – 51 bilní s XML, SVG a CSS standardy. Snahou také bylo a stále je pomocí otevřeného a komunitně orientovaného vývoje udržovat stále narůstající skupinu uživatelů a vývojářů. Inkscape je multiplatformní, tj. je dostupný pro operační systémy Linux, Mac OS X, Windows, SPARC a Sun Solaris. [3] Program je stažitelný z domovských stránek [3], ale bývá umístěn i na mnoha dalších serverech. Instalační soubor poslední verze (0.48.2) má velikost asi 40 MB, po instalaci je velikost celé aplikace přibližně 150 MB. Program obsahuje několik desítek jazykových lokalizací (nechybí ani čeština), pokud si je odpustíme a ponecháme si pouze angličtinu (tato volba se nachází na začátku instalace), velikost celé aplikace bude okolo 80 MB. Program Inkscape je poměrně intuitivní, komunikace s uživatelem probíhá standardně pomocí oken, dialogových boxů, ikon, příkazového menu apod., takže i neprofesionální uživatelé by s jeho ovládáním neměli mít problémy (jednotlivé příkazy a nástroje mají nápovědu, která se automaticky zobrazuje u kurzoru myši nebo ve stavovém řádku aplikace). Patrně pouze začátečníci, kteří s grafickými programy nemají příliš mnoho zkušeností, se zřejmě neobejdou bez příručky. Ukázka uživatelské rozhraní programu Inkscape je na obrázku 3. Otevřít je možné i více projektů, přičemž každý z nich má svoje vlastní okno nezávislé na ostatních. Inkscape nativně načítá/ukládá do vektorového formát SVG, ale podporuje i dalších 52 – Vybrané aspekty návrhu webových informačních systémů cca 40-50 vektorových a rastrových grafických formátů, čímž je zaručen správný přenos vytvořených obrazů do jiných aplikací. K základním nástrojům, kterými Inkscape disponuje, patří kreslení objektů (ruční a pomocí křivek, rychlé kreslení uzavřených obrazců jako jsou elipsy, obdélníky, polygony) a vkládání rastrových obrazů. Se všemi objekty je možné manipulovat pomoci různých transformací, seskupovat je, vzájemně kombinovat pomocí booleovských operací a vkládat je do různých vrstev nebo aplikovat na ně standardní editační příkazy. Úsečkám, křivkám a obrysům objektů je možné dále upravovat a nastavovat potřebné tvary a styly. U výplní a obrysů lze nezávisle nastavovat barvy v různých barevných modelech, vyplňovat je možné různými vzory, barevnými přechody nebo rastrovými obrazy. Samozřejmá je i práce s průhledností. Inkscape podporuje i práce s texty, které je možné různě formátovat (například podle vybraného objektu) nebo je vkládat na křivku. Výše uvedený výčet nástrojů programu Inkscape samozřejmě nezahrnuje vše. K ověření možností programu vede nejspolehlivější cesta taková, že si tyto nástroje každý uživatel odzkouší sám. Množství a kvalita těchto nástrojů je na vysoké úrovni, proto se Inkscape řadí právem k předním programům v této oblasti. Program pro rastrovou grafiku - Gimp Název Gimp představuje zkratku GNU Image Manipulation Program. To znamená, že jde program, který je zdarma včetně zdrojových kódů pod liGrafické formáty pro WIS – 53 cencí GPL. Tento rastrový grafický editor je velice rozšířený a používaný zejména pro grafické kresby, grafiky pro webové stránky, úpravy fotografií a tisk. Podobně jako Inkscape, je možné Gimp stáhnout z jeho vlastních domovských stránek [1] nebo mnoha dalších serverů na internetu. Standardně existují verze pro Linux, Windows a Mac OS X, ale díky přístupným zdrojovým kódům je možné jej zkompilovat i pro další platformy. Obr. 4-4: Panel nástrojů a okno s obrázkem v programu Gimp Nainstalovaný GIMP zabírá ve své poslední verzi (2.8.2) na disku okolo 250 MB. Tento údaj však nemusí být vůbec přesný. Gimp byl navržen tak, aby se dal dále snadno rozšiřovat o nové moduly nástrojů, palet, štětců a barevných přechodů. Jejich přidáním tato velikost logicky narůstá. Lokalizace Gimpu byla provedena do řady jazyků, 54 – Vybrané aspekty návrhu webových informačních systémů mezi kterými nechybí ani čeština. Původně byl program Gimp navržen pro operační systém Unix. Proto se uživatelům jiných operačních systémů (zejména Windows) může jeho ovládání zdát nestandardní a mírně chaotické. Je to asi hlavní nevýhoda programu, která již odradila mnoho potenciálních uživatelů. Pravda je spíše taková, že jde především o zvyk, takže pokud má uživatel z Gimpu nepříznivý prvotní dojem a překoná jej, naučí se pracovat s velice kvalitním programem. Jednotlivé obrazy jsou otevírány v samostatných oknech, přičemž okna s jednotlivými příkazy a nástroji jsou pro všechna okna s obrazy společná. Práci s programem usnadňuje nápověda, která se zobrazuje u každého nástroje automaticky při umístění kurzoru myši na příslušném příkazu. Gimp používá svůj vlastní souborový formát XCF (který je doporučeno vždy používat, aby byly zachovány veškerá nastavení programu i samotného obrazu), ale lze provádět i importy/exporty do mnoha jiných grafických formátů (pochopitelně především rastrových). Gimp disponuje velkým množstvím ovládacích nástrojů a svými možnostmi předčí i mnohé komerční programy dané oblasti (navíc, jak jsme uvedli výše, další nástroje se tam dají poměrně snadno přidávat). Pokud zaměříme pozornost na ty hlavní, jsou jimi rozličné druhý výběrových nástrojů (včetně vektorového nástroje Cesta), ke kterým patří i jejich ukládání pro pozdější použití, řada kreslících nástrojů (tužka, štětec, guma, rozprašovač, kaligrafické pero) s Grafické formáty pro WIS – 55 mnoha nastaveními (režim, krytí, výběr stopy, velikost, barva), různé druhy výplní (jednobarevné, barevné přechody, vyplňování vzorky), řada jednoduchých i pokročilých transformací s vybranou částí či celým obrazem, propracovaný systém práce s vrstvami a nástroje pro úpravy fotografií od korekcí barev až po retušování. Bohatá řada filtrů (například rozmazání, zkreslování, práce s šumy, detekce hran či umělecké úpravy) pak umožňuje rychlou tvorbu nových nebo modifikaci stávajících obrazů. Grafické formáty v prohlížečích www stránek Formáty grafických souborů obsahují určitým způsobem organizovaná grafická data pro jejich opětovné obnovení. [4] Grafických formátů existuje velké množství (řádově desítky až stovky). Pro pochopení příčin existence tak velkého množství těchto formátů je potřeba je rozdělit podle jejich účelu. Patrně největší skupinou jsou grafické formáty specifikované výrobci pro jejich vlastní grafický program. A protože grafických programů existuje velké množství, existuje i velké množství takových formátů. Jsou jimi například BMP, PCX, IMG, TGA, PSP nebo XCF. Jinou skupinou jsou grafické formáty, které byly navrženy pro přenos grafických obrazů po síti – např. PNM nebo MIFF. Třetí skupinou jsou grafické formáty, které byly navrženy jako univerzální standardy pro širokou oblast použití. Příklady takových formátů jsou GIF, TIF, PNG nebo JPG nebo WebP. Níže jsou stručně popsány formáty, které se v moderních informačních systémech hojně používají, případně se staly často používanými formáty 56 – Vybrané aspekty návrhu webových informačních systémů výrobci hardwarových zařízení, které pracují s grafickými obrazy – digitální fotoaparáty, DVD přehrávače, televizory, apod. Popsány jsou zde především rastrové grafické formáty. Důvodem je skutečnost, že se vektorová počítačová grafika se ve webových informačních systémech nepoužívá tak hojně (pokud ano, tak zpravidla bývá zpracovávána rozšiřujícími programovými technologiemi jako je java nebo flash). Z vektorových grafických formátů popíšeme SVG. Z rastrových grafických formátů uvedeme bližší popis BMP, GIF, PNG a JPG. Grafický formát SVG Vektorový grafický formát SVG byl navržen především pro oblast 2D webové grafiky. Postupně se však stal obecně uznávaným standardem pro přenos vektorových grafických informací mezi různými platformami a aplikacemi. Důkazem jeho rozšíření je skutečnost, že je přímo podporován ve všech významných vektorových editorech a dokonce i v jazyku pro tvorbu www stránek HTML5. Protože bývá vektorová reprezentace náročnější na výkon, byly vytvořeny dvě varianty – SVG Basic a SVG Tiny. Varianta SVG Tiny je zjednodušená a neobsahuje všechny moduly, které má SVG Basic. Je tak primárně určena pro zařízení s omezeným výpočetním výkonem a menší kapacitou paměti. [6] Velkou výhodou formátu SVG je skutečnost, že se jedná o textový soubor, který je založen na jazyku XML. Tato skutečnost má dvě výhody. První výhodou je snadná tvorba a úprava výsledGrafické formáty pro WIS – 57 ného obrazu prostřednictvím programového kódu. Druhou výhodou je validita, tedy dá se velice snadno poznat, pokud je nějakým způsobem soubor poškozen. Ukázka obrazu ve formátu SVG s jeho zdrojovým kódem je na obrázku 5. Obecně je SVG plnohodnotný vektorový formát, který podporuje základní geometrické tvary, křivky, rastrové obrazy, texty, barevné profily a přechody, fonty, animace, apod. Navíc ale podporuje i interaktivitu, takže může reagovat na vstup od uživatele (například obrázek se změní po klepnutí myši). Lze jej tak například použít i pro tvorbu jednodušších www aplikací. Díky podpoře komprese je také možné snížit celkovou velikost souboru, což je velice přínosné u pomalejších síťových připojení. Obr. 4-5: Obrázek a jeho zdrojový kód v souboru SVG Grafický formát BMP Grafický formát BMP se v dnešní době aktivně již příliš nepoužívá. Především z historických důvodů však bývá drtivou většinou grafických programů hojně podporován. Má totiž výhody dobré definice struktury formátu, jednoduchou implementaci a rychlé načítání. Naopak hlavními ne58 – Vybrané aspekty návrhu webových informačních systémů výhodami je velká spotřeba paměti, což je dáno tím, že nepoužívá žádnou kompresi nebo nejjednodušší varianty RLE komprese (čtyřbitová nebo osmibitová varianta). [4] Princip RLE komprese je založen na redukci opakovaných řetězců znaků. Takto opakovaný řetězce pak bývá zakódován do dvou bytů – první udává počet stejných znaků (barev) a druhý byte pak konkrétní hodnotu znaků v tomto řetězci. Z uvedeného vyplývá, že tato komprese je v obraze účinná, pokud obsahuje velké jednobarevné plochy. To ale v obrazech nebývá často. V opačných případech může dojít i k záporné kompresi. Z tohoto důvodu se běžně RLE komprese používá u formátu BMP pouze u obrazů s nižší barevnou hloubkou, neboť tam je pravděpodobnost výskytu stejných barev vyšší. Struktura formátu BMP je rozdělena do čtyř částí. První z nich je bitmapová hlavička, která kromě specifikace typu souboru (znaky „BM“) obsahuje také celkovou velikost souboru, a počáteční polohu obrazových dat v souboru. Druhou částí je informační hlavička, která obsahuje další doplňující informace o obrazu, jako je šířka a výška, barevná hloubka nebo zda je použita RLE komprese a jaká její varianta. Třetí částí je barevná paleta, která se však v souboru nemusí vyskytovat – vytváří se pouze pro obrazy s barevnou hloubkou 1, 2 nebo 8 bitů. Čtvrtým blokem jsou potom samotná obrazová data. Grafický formát GIF Grafický formát GIF byl navržen pro záznam a přenos bitmapových obrazů. I přes dřívější proGrafické formáty pro WIS – 59 blémy s licenčními podmínkami (platnost posledního patentu vztahující se ke GIF vypršela v roce 2006) se tento grafický formát stal velice populární. Příčinami popularity byly dobré zdokumentování, poměrně rychlá a účinná LZW komprese, multiplatformnost, možnost užití průhlednosti, práce s rámci a použití prokládacího schématu. Pro tyto vlastnosti se GIF poměrně často používá i dnes i mimo webové informační systémy. [4] [6] Práce s rámci je založena na filosofii, že celý obraz není uložen v souboru jako celek, ale skládá se z dílčích obdélníkových bloků (rámců) libovolného počtu jedním společným pozadím, nazývaným též logická obrazovka. Každý rámec přitom můžeme chápat jako samostatný obrázek umístěný ve výsledném obrazu. Pozice a velikost všech rámců je v souboru uložena a každý rámec může také mít svoji barevnou paletu. Všechny rámce dohromady pak tvoří kompletní obraz, nazývaný též logická obrazovka – viz obrázek 6. Obr. 4-6: Uspořádání rámců v grafickém formátu [5] 60 – Vybrané aspekty návrhu webových informačních systémů Rámce poskytují tři významné výhody. První výhoda je, že pomáhají v obraze odlišit místa, která se barevně příliš odlišují, a tím může docházet k účinnější kompresi. Druhým důvodem je, že se tyto rámce mohou také zobrazovat v časové závislosti, ve formátu GIF tedy může být uložena i animace. Třetí výhodou je, že každý rámec může mít maximálně 256 barev. Použijeme-li jich tedy více, je možné zvýšit celkové množství barev v celém obraze. Další výhoda - prokládací schéma, bylo navrženo s ohledem přenosu GIFu na pomalých sítích. Prokládání funguje tak, že se nejdříve přenese každý osmý řádek, posléze každý čtvrtý řádek (kromě těch přenesených), a tak dále do posledního kroku, ve kterém jsou přeneseny všechny ostatní, tj. sudé řádky. Uživatel si tak může utvořit představu o celém obrazu již při přenesení přibližně jedné osminy dat a přenos popř. přerušit. [5] LZW komprese patři v kategorii neztrátových kompresních algoritmů mezi nejúčinnější. Jejich princip je založen na tzv. slovníkovém kódování. Algoritmus si buduje pomocný slovník, do kterého ukládá posloupnosti dosud nekomprimovaných dat. Pokud se však při průchodu daty narazí na posloupnost, která se ve slovníku již nachází, na výstup se pouze zapíše zkrácený odkaz (fráze). [4] Struktura formátu GIF je rozložena do několika bloků. Prvním je hlavička o velikosti 6 bytů a slouží k identifikaci souboru (obsahuje řetězec „GIF87a“ nebo „GIF89a“. Za hlavičkou následuGrafické formáty pro WIS – 61 je popis hlavní (logické) obrazovky obsahující rozlišení obrázku, informace o paletě a barvě pozadí. Poté již následují bloky s rámci (každý z nich obsahuje popis daného bloku, obrazová data a paletu). Protože rámců může být více, za posledním z nich se nachází znak 3Bh, který slouží jako identifikátor úplného konce souboru. Grafický formát PNG PNG je grafický formát, který vzniknul jako náhrada formátu GIF v době, kdy ještě byly platné jeho licenční podmínky, které jeho využití v aplikacích omezovaly. Oblast použití je tedy stejná jako u GIFU a navíc s sebou přinesl několik dalších vylepšení a výhod. Jimi jsou až 16-bitová barevná hloubka pro obrazy ve stupních šedi, až 16-bitová průhlednost a až 48-bitová barevná hloubka pro barevné obrazy. [4] Dalšími výhodami je, že nikdy nebyl zatížen žádnými licenčními poplatky, proti GIFu má rychlejší systém prokládaného zobrazení, podporuje předzpracování pixelů (tím lze dosáhnout ještě lepšího kompresního poměru), flexibilitu (struktura souboru je navržena tak, aby se mohla v budoucnu dále rozšiřovat) a robustnost (umožňuje úplnou kontrolu integrity souboru, takže je možné poznat, zda není soubor s obrazem poškozený). Do formátu PNG je také možné uložit informace o ICC profilu a gama faktoru zařízení, kde byl obrázek vytvořen, takže při jeho přenosu na jiné platformy by nemělo docházet ke zkreslení barev. Nevýhodu proti formátu GIF má pouze jednu – do jednoho souboru lze uložit jen jediný obraz, 62 – Vybrané aspekty návrhu webových informačních systémů takže nepodporuje ani animace. V případě, že po obraze požadujeme, aby byla všechna data uchována (tj. nepoužila se ztrátová komprese) a nevadí-li nám tento zmíněný nedostatek, formát PNG bývá obvykle nejlepší volbou z rastrových grafických formátů. Struktura souboru PNG je následující. Na začátku se nachází 8-bytová identifikační signatura formátu a dále obvykle následují čtyři standardní bloky dat, které musí podporovat každá aplikace, jež formát PNG čte nebo do něj zapisuje. Prvním blokem je hlavička obsahující základní údaje o obrazu a druhým blokem je barevná paleta, která se však v souboru vyskytuje pouze tehdy, pokud obrazová data paletu využívají. Samotná obrazová jsou třetím blokem. Čtvrtým blokem je pata souboru, která bývá uložena až na jeho konci. V ní se nachází kontrolní součet, ze kterého lze poznat, zda soubor je nebo není poškozen. Grafický formát JPG Nedostatek kompresních algoritmů RLE a LZW je, že nejsou příliš efektivní pro plně barevné obrazy s barevnými přechody. To znamená, že i velikost formátů grafických souborů popsaných výše, bývá veliká. Grafický formát JPG tento nedostatek odstraňuje pomocí ztrátovosti obrazových dat. V praxi se ukazuje, že snížení kvality na 75% je pro většinu uživatelů nepozorovatelné, přitom kompresní poměr v takovém případě může být 20:1 až 25:1. [8] Kompresní algoritmus využívá diskrétní kosinovou transformaci a byl navržený konsorciem Joint Photographic Experts Group. Jeho určení je zeGrafické formáty pro WIS – 63 jména pro fotografie či obrazy s velkou barevnou hloubkou, u obrazů s nižším barevným rozlišením se nepoužívá, neboť v nich vytváří vzory v podobě čtverců či pruhů. Optimálním vstupem je tak obraz s 24-bitovou barevnou hloubkou. Obr. 4-7: Princip ztrátové komprese JPEG [7] 64 – Vybrané aspekty návrhu webových informačních systémů Princip této komprese je založen na vlastnostech lidského oka. To je citlivé zejména na změny jasu, méně je však citlivé na rozdíly barev dvou sousedních obrazových bodů. A jak bylo uvedeno výše, právě to, na co je oko nejméně citlivé se z obrazu odstraní. Celý postup ztrátové komprese JPEG je patrný z obrázku 7. Nejprve se provede neztrátový převod současného barevného modelu (RGB, CMYK, atd.) do barevného modelu YCBCR (nebo YUV). Poté, co je jasová složka oddělena od barev může proběhnout redukce barevných složek na základě uživatelského nastavení. Provede se to zvýšenou periodou vzorkování obrazu a právě zde je první místo celého algoritmu, kde může dojít ke snížení objemu dat a tím pádem i k určité (často zanedbatelné) ztrátě obrazové informace. Další kroky se provádí odděleně pro jasovou a barevnou složku. Na bloky 8×8 hodnot je aplikována diskrétní kosinová transformace (DCT). Tato transformace je neztrátová a provádí převod obrazového signálu z časové oblasti do frekvenční. Důvod je takový, že právě ve frekvenční oblasti se dá snadno poznat, které oblasti obrazu obsahují dominantní informace (nižší frekvence) a naopak, které oblasti obsahují méně důležité obrazové informace (vyšší frekvence). Další fáze je proto klíčová pro ztrátovost, tedy výběr a odstranění částí obrazu s vysokými frekvencemi. To se provádí pomocí kvantování, resp. sestavené kvantovací matice. Kvantované DCT koeficienty se potom následně neztrátově komprimují pomocí Huffmanova či aritGrafické formáty pro WIS – 65 metického kódování. Posledním krokem zpracování je uložení vytvořených dat do souboru typu JFIF/ JPEG. V podstatě se jedná o „obalení“ vzniklého datového toku vhodnou hlavičkou, přidání dalších doplňujících informací a zakončení celého souboru patičkou. Dekomprese probíhá přesně opačným způsobem. [7] Formát JPEG se stal velice úspěšnou technologií a standardem používaným většinou fotoaparátů a multimediálních přehrávačů. Jeho nepříjemnou vlastností je dělení obrazů do čtverců 8×8, což může v určitých částech obrazu způsobit vznik makropixelů a zároveň je to překážka k dosažení ještě většího kompresního poměru. Proto vznikl formát JPEG 2000, který tento nedostatek odstraňuje, neboť bere obraz jako celek a podrobuje jej transformacím pomocí funkcí - tzv. vlnek. Opakované použité těchto transformací umožňuje uchovat obraz ve více rozlišeních, definovat v něm oblast, která je předmětem našeho zájmu a tuto oblast kódovat ve vyšší kvalitě, optimalizovat data pro přenos po síti a umožňuje použít ztrátovou a neztrátovou kompresi. [8] 66 – Vybrané aspekty návrhu webových informačních systémů Shrnutí Tato kapitola shrnuje obecné poznatky o přípravě 2D grafických souborů pro použití v moderních www informačních systémech. Nejprve jsou vysvětleny a uvedeny podrobné charakteristiky dvou používaných druhů reprezentací obrazu – vektorová a rastrová. Tato část je sestavena především na základě dlouholetých zkušeností autora této kapitoly. Další část této kapitoly se věnuje popisu dvou vybraných grafických programů, které se v oblasti vektorové a rastrové počítačové grafiky velice často používají – Inkscape a Gimp. Výběr těchto programů byl založen na základě množství grafických nástrojů, které mají k dispozici a dále s ohledem na licenci jejich použití (v obou případech jde o GNU GPL, která říká, že lze programy bezplatně používat a dále šířit). Logickým krokem je pak závěrečná část kapitoly, která popisuje 2D grafické souborové formáty, do kterých se vytvořené grafické obrazy ukládají v současné době nejčastěji. Snahou přitom bylo, aby jejich charakteristika nebyla jen obecným popisem, ale aby z tohoto textu také vzešlo doporučení, kdy je vhodné který souborový formát v moderních www informačních systémech použít. Grafické formáty pro WIS – 67 Bezpečnost webových aplikací Martin Sysel 5 Tvorba webových stránek patří mezi počítačové znalosti, které se lze naučit velmi snadno. Vytvořit svou první webovou stránku zvládne uživatel již za prvních pár minut studia. První vytvořené webové stránky jsou většinou statické a bohužel, většinou nejsou validní. Validní webové stránky jsou takové, které odpovídají standardům konsorcia W3C [23]. Později uživatel začíná vytvářet dynamické webové stránky s použitím některého z programovacích jazyků (PHP, ASP.NET, Python, Java). Tento kód je potom prováděn na straně serveru a umožňuje například přístup do databáze. Webová stránka může také obsahovat kód, který se provádí na straně klienta, nejčastěji JavaScript. Veškerý tento kód může být zdrojem potencionálního nebezpečí. Obvyklým omylem mnoha tvůrců webových stránek je, že se domnívají, že jejich stránky nejsou pro útočníka dostatečně zajímavé. Neobsahují přece nic důležitého, proč by je někdo měl chtít napadnout? Útočník ale napadá takové stránky proto, aby je použil jako odrazový můstek, například pro šíření škodlivého softwaru. Bezpečnostní chyby vznikají z různých příčin, často to je z důvodu neznalosti programátora nebo z důvodu nedostatku času a s tím souvisejícím odkládáním zabezpečení na pozdější dobu. Jestliže si programátor možné nebezpečí uvě- domuje, tak musí v průběhu vývoje dávat pozor na velké množství problémů, které posléze můžou složit k napadení webových stránek, databáze, případně celého systému. Stačí jedno jediné malé opomenutí a již vzniká riziko napadení. Programátor webových aplikací musí brát v úvahu všechna slabá místa aplikace a musí věnovat maximum pozornosti jejich zabezpečení. Útočníkovi pak stačí objevit pouze jedno slabé místo a to potom využije k napadení. Výčet bezpečnostních chyb může být prakticky neomezený, proto se tato kapitola bude zabývat pouze nejběžnějšími bezpečnostními hrozbami, které ale mají také nejzávažnější dopad na zranitelnost webové aplikace a návrhem jejich řešení. K definování nejčastějších a nejvíce využívaných bezpečnostních chyb je využit žebříček deseti nejzávažnějších bezpečnostních hrozeb pro webové aplikace (OWASP Top 10) od nadace OWASP (Open Web Application Security Project) [25, 26]. Nadace OWASP již zveřejnila tři verze tohoto žebříčku (v letech 2004, 2007, 2010). Nová verze se očekává v roce 2013. Cílem celého projektu je zlepšit bezpečnost a zabezpečení webových aplikací, zvýšit informovanost webových programátorů ohledně bezpečnostních hrozeb. Bezpečností rizika Poslední žebříček bezpečnostních rizik byl zveřejněn v roce 2010 [26]. Uvádí pořadí hrozeb a označuje je jako A1 – nejzávažnější až po A10 – méně závažná (častá). Jednotlivá rizika budou v dalším textu podrobně rozebrána, budou prezentovány ukázky útoků a také způsoby Bezpečnost webových aplikacć – 69 obrany. V dalším textu bude využíván jazyk PHP a databáze MySQL, protože tato kombinace je mezi uživateli hojně rozšířena. Je však nutno zdůraznit, že popisovaná rizika se vyskytují obecně – nezáleží na použité databázi nebo programovacím jazyku. Tab. 5-1: Nejčastější bezpečnostní hrozby [26] Kód Chyba A1 Injection Injekce (vsouvání) A2 Cross-Site Scripting (XSS) Skriptování napříč stránkami A3 Broken Authentication and Session Management Špatná autentizace a správa sessions Chyba umožňující vsouvání neověřeného kódu do příkazu nebo dotazu (v operačních systémech, SQL, LDAP, …). Předaná data mohou přimět aplikaci k provedení nechtěných příkazů nebo pro přístup k neoprávněným datům. Chyba vznikající při odeslání nedůvěryhodných dat do internetového prohlížeče bez řádného ověření. Umožňuje útočníkovi spouštět vlastní skripty v prohlížeči klienta a tak například převzít uživatelskou relaci nebo přesměrovat uživatele na škodlivé stránky útočníka. Aplikační funkce pro ověřování uživatele a řízení relace jsou často špatně implementovány, což umožňuje útočníkovi napadnout hesla, bezpečnostní klíče nebo relace. 70 – Vybrané aspekty návrhu webových informačních systémů A4 Insecure Direct Object References Nebezpečný přímí odkaz na objekt A5 Cross-Site Request Forgery (CSRF) Podvržení požadavku mezi různými stránkami A6 Security Misconfiguration Špatná konfigurace A7 Insecure Cryptographic Storage Nedostatečná ochrana citlivých dat A8 Failure to Restrict URL Access Špatné omezení přístupu k určitým URL Jestliže vývojář používá přímé odkazy na interní implementace objektu (soubor, adresář, přístup do database, …) bez kontroly řízení přístupu, může útočník využít tento odkaz pro přístup k neoprávněným datum. Odeslání upraveného HTTP požadavku z prohlížeče oběti bez jeho vědomí. Aplikace je následně mylně přesvědčena, že se jedná o oprávněné požadavky uživatele. Dobré zabezpečení vyžaduje bezpečné konfigurace u všech použitých součástí: server, webový server, databázový server, aplikační server, framework, … Předpokladem je i aplikace opravných balíčků. Bohužel u mnoha SW není výchozí konfigurace bezpečná. Mnoho aplikací nechrání dostatečně citlivá data (hesla, osobní informace, čísla kreditních karet). Tyto údaje lze získat a v případě, že nejsou chráněna vhodným šifrováním, může je útočník zneužít. Chyba vzniká nekontrolováním přístupových práv při každém přístupu na konkrétní URL adresu. Může to vest k obcházení přístupových práv stránky. Bezpečnost webových aplikací – 71 A9 Insufficient Transport Layer Protection Je důležité brát v úvahu bezpečnost informace při přenosu. Nešifrovaná data lze poměrně snadno odposlechnout a zneužít. Nezabezpečená síťová komunikace A10 Unvalidated Redirects and Forwards Neověřená přesměrování a předávání Stránky často přesměrovávají nebo předávají uživatele na jiné stránky nebo servery. Často jsou využívané nedůvěryhodné a neověřené údaje útočníka k určení cílové stránky. Injection Chyba umožňující vsouvání neověřeného kódu do příkazu nebo dotazu. Tato chyba může nastat všude, kde někdo může zaslat nedůvěryhodná data. Za nedůvěryhodná data lze považovat vše, co přichází do systému z vnějšku. Předaná data mohou přimět aplikaci k provedení nechtěných příkazů nebo pro přístup k neoprávněným datům. Typický útok začíná zasláním jednoduchého textového řetězce, který ale využívá syntaxi interpretru jinak, než původně zamýšlel programátor. V případě SQL injection se využívá nedostatečné kontroly vstupních dat aplikace [27]. SQL dotaz obsahuje řetězce, které zadává uživatel a právě toto je potencionálním zdrojem problémů, protože vývojář předpokládá, že uživatel nebude zadávat neplatná data. Ukázka útoku Útok na formulářová pole pro přihlašování uživatelů. Předpokládejme zjednodušený přihlašo72 – Vybrané aspekty návrhu webových informačních systémů vací formulář: <form method=”POST” action=”./login.php”> Jméno: <input type=”text” name=”jmeno” id=”jmeno”> Heslo: <input type=”password” name=”passwd” id=”passwd”> <input type=”submit” value=”Přihlásit” name=”login”> </form> Při jeho zpracování v souboru login.php je vytvořen SQL dotaz, který se pokusí vyhledat uživatele se shodným jménem a zároveň odpovídajícím heslem ve tvaru hashe SHA-1 (důvod uložení hesla ve tvaru hashe bude rozebrán později). Jestliže je takový uživatel nalezen, tak jsou SQL dotazem vráceny všechny uložené informace o daném uživateli a lze předpokládat, že uživatel existuje a může být přihlášen. $sql=”SELECT * FROM table WHERE user = ‘”.$_POST[‘jmeno’].”’ AND passwd = ‘”.sha1($_POST[‘passwd’]).”’”; Toto ověření bude bez problémů fungovat do okamžiku, kdy uživatel začne místo svého jména a hesla zadávat speciální znaky. V první ukázce uživatel do formulářového pole jmeno zadá řetězec „admin“ a formulářové pole pro heslo vůbec nevyplní. Uživateli (nyní již útočníkovi) se podařilo pomocí dvou pomlček ukončit SQL dotaz (vše za pomlčkami je považováno za poznámku). Aby byl SQL dotaz validní, musel být doplněn ještě ukončovací apostrof. Prováděný SQL dotaz tedy bude mít výsledný tvar pouze: SELECT * FROM table WHERE user = ‘admin’ Bezpečnost webových aplikacć – 73 Útočník předpokládá, že uživatel admin bude existovat a bude mít také pravděpodobně nejvyšší oprávnění. Velmi jednoduchým trikem by tedy získal oprávnění jiného uživatele. V druhé ukázce můžeme předpokládat, že útočník nezná žádné přihlašovací jméno. Do formulářového pole pro jméno zadá řetězec „‘ OR 1=1“ a formulářové pole pro heslo může zůstat opět prázdné. Výsledný prováděný SQL dotaz bude mít tvar SELECT * FROM table WHERE user = ‘’ OR 1=1 SQL dotaz vrátí obsah celé tabulky, útočník může potom případně omezit počet vrácených záznamů pomocí klíčového slova LIMIT. Pro označení komentáře se v SQL používá několik různých posloupností znaků: “--“, “#”, “//” a pro víceřádkové komentáře: “/* */” a “{ }”. V případě, že nelze komentáře využít, může útočník zadat do formulářového pole pro jméno „admin’ OR ‘a’=’b“.Prováděný SQL dotaz bude mít výsledný tvar SELECT * FROM table WHERE user = ‘admin’ OR ‘a’=’b’ AND passwd = ‘’ Tento typ útoku využívá prioritu operátorů. Operátor AND bude zpracován jako první a jeho výsledkem bude hodnota FALSE. Jako druhý v pořadí bude vyhodnocován operátor OR v částečně vyhodnoceném dotazu SELECT * FROM table WHERE user = ‘admin’ OR FALSE 74 – Vybrané aspekty návrhu webových informačních systémů Pro operátor OR stačí, aby byla pravdivá pouze jedna část výrazu, což bude v případě existence uživatele admin splněno. Modifikace vstupních dat se nemusí omezovat pouze na formulářová pole. Velmi jednoduše lze například modifikovat dotazy typu GET přímo v adresním řádku a dostat se tímto způsobem k obsahu databáze, případně načíst nebo dokonce zapsat externí soubor. Z předchozích ukázek útoků je zřejmé, že existuje nepřeberné množství různých útoků využívajících injection. Způsob obrany Pro vývojáře existuje několik způsobů jak řešit riziko napadení. Základem je kontrola datových typů a ošetření vstupů pomocí escapovaní speciálních znaků. Nedoporučuje se k tomuto vytvářet vlastní funkce. PHP nabízí pro escapovaní SQL dotazů funkce vlastní. Konkrétně pro databází MySQL má funkce název mysql_real_escape_string(). Vytvářený SQL dotaz v kódu PHP by tedy měl tyto funkce využívat. $sql=”SELECT * FROM table WHERE user = ‘”.mysql_real_escape_string($_POST[‘jmeno’]).”’ AND passwd = ‘”.sha1(mysql_real_escape_string($_ POST[‘passwd’])).”’”; Protože na použití těchto funkcí se často zapomíná, bývá doporučováno pro vývoj použít speciální databázovou vrstvu a framework, které minimalizují opomenutí bezpečnostních zásad. V PHP existuje konfigurační direktiva, která Bezpečnost webových aplikací – 75 způsobí, že v obsahu všech superglobálních polí $_POST a $_GET je před apostrofy doplněno zpětné lomítko. Toto řešení však může přinášet problémy na výstupu a navíc nelze zaručit dostupnost jejího nastavení na všech serverech. Její použití se v současnosti nedoporučuje. Cross-Site Scripting (XSS) Chyba vznikající při odeslání nedůvěryhodných dat do internetového prohlížeče bez řádného ověření. Umožňuje útočníkovi spouštět vlastní skripty v prohlížeči klienta a tak například převzít uživatelskou relaci nebo přesměrovat uživatele na škodlivé stránky útočníka. Tento typ útoku je využitelný i na statických stránkách, kde může být přenesena proměnná z URL adresy do JavaScriptu. Daleko častější je však předání obsahu do stránek s aktivním obsahem, kde jsou zpracovány například pomocí PHP. Obsah nemusí být získán pouze z přímého vstupu uživatele (proměnné v URL, formuláře, …), ale také například z databáze nebo podvrženého souboru. Pokud je modifikovaný kód zobrazen uživateli, dochází k nežádoucí úpravě obsahu, přesměrování stránky nebo odcizení cookies. Ukázka útoku Předpokládejme výskyt následujícího neošetřeného kódu: <?php echo $_GET[‘jmeno’]; ?> Útočníkovi potom stačí v URL adrese předat svůj vlastní skript, který bude na stránce proveden http://URL/page.php?jmeno=<script>alert(‘XSS útok.’);</script> 76 – Vybrané aspekty návrhu webových informačních systémů Analogicky lze provést útok i z formulářů v případě, že jsou data přenášena metodou POST. Například do vyhledávacího pole je zadán řetězec <script>alert(‘XSS útok.’);</script> a při výpisu výsledků hledání je daný skript proveden. Někdy se může stát, že se zadaný skript přímo neprovede, ale z výpisu zdrojového kódu stránky je vidět, že na stránce je obsažen. Potom je nutno upravit vkládaný řetězec tak, aby odpovídal struktuře webové stránky, například ukončit formulářový prvek. Způsob obrany Opět zde platí, že nebezpečný je obecně jakýkoliv vstup dat do webové aplikace. Nejen přímo od uživatele získaný ze superglobálních proměnných $_GET a $_POST, ale i z dalších $_REQUEST, $_COOKIE, $_SERVER. V úvahu je potřeba brát i další zdroje zobrazovaných dat, která jsou získána z databáze popřípadě z externích souborů. Ochrana spočívá v důsledné kontrole výstupu. Jedná se hlavně o znaky, které mění kontext zpracování dat, jako například HTML a CSS tagy. Je nutno důsledně dodržovat pravidlo, že se neověřená data nesmí vkládat do aplikace bez provedení escapování tohoto nebezpečného kódu. Escapování se používá až na výstupu dat z aplikace. Funkce modifikující zdrojová data by neměly být využívány například při ukládání dat do databáze, protože se tím vytváří závislost mezi datovou a aplikační vrstvou, což způsobuje problémy při využití dat jinými aplikacemi. Programátor má k dispozici několik možností, jak ošetřit výstup pomocí escapování. NejčastěBezpečnost webových aplikací – 77 ji je využívána funkce htmlspecialchars(), která provede konverzi speciálních znaků na HTML entity. V případě pokusu o vložení JavaScriptu do kódu aplikace je sice vkládaný kód zobrazen, ale protože je zapsán pomocí HTML entit, tak již není proveden. Řetězec vkládaný útočníkem: <script>alert(‘XSS útok.’);</script> Tento kód vložený do HTML stránky odesílaný do prohlížeče by byl spuštěn a uvedený kód by byl proveden. Jestliže bude řetězec konvertován na HTML entity, bude mít ve zdrojovém kódu HTML stránky následující podobu: <script>alert(‘XSS útok.’);</script> Zobrazen pro uživatele však bude normálně ve tvaru, jakým byl zadán. HTML entity jsou na výstupu převedeny na zobrazitelné znaky. Tímto postupem je však zabráněno spuštění kódu. Funkcí pro konvertování znaků na HTML entity je více, např. htmlentities(), ale použití funkce htmlspecialchars() je dostačující. V případě nutnosti zpětného převodu je možno použít funkci htmlspecialchars_decode(), která převede HTML entity zpět na znaky. Někteří programátoři si zvolili cestu modifikace zobrazených řetězců a přímo odstraňují všechny části kódu, které mohou být nebezpečné (HTML 78 – Vybrané aspekty návrhu webových informačních systémů a PHP tagy). Bohužel k tomu zvolili nevhodný přístup, a to použití seznamu zakázaných řetězců (blacklist). Nebezpečný kód však lze různými způsoby zamaskovat a je tedy velmi obtížné udržovat seznam kompletní a aktuální. Daleko vhodnější je použití seznamu povolených hodnot (whitelist), který lze vždy v případě potřeby doplnit. Většinou je velmi neefektivní (při nedostatku zkušeností i nebezpečné) vytvářet vlastní funkce, protože mohou být zdrojem neočekávaných problémů. PHP nabízí přímo funkci strip_tags(), která z řetězce odstraňuje HTML a PHP tagy. Pomocí nepovinného parametru je možno určit, které jsou povoleny (whitelist povolených tagů). Narušená autentifikace a správa relace Webové aplikace většího rozsahu obsahu i část, která je přístupná pouze přihlášeným uživatelům, případně je pro přihlášené uživatele modifikován obsah (poskytován ve větším rozsahu a s většími možnostmi). Uživatelé mají tedy vytvořeny své uživatelské účty, ke kterým je nutno se přihlásit. Existují tři základní kroky, které vedou k úspěšném určení přihlašovaného uživatele a jeho práv [29]. V prvním řadě musí uživatel zadat své identifikační údaje, typicky se jedná o přihlašovací jméno a heslo, hovoříme tedy o identifikaci. Následuje ověření zadané identity, tento krok se nazývá autentizace. Ověřuje se skutečnost, zda je zadaná identita uživatele pravá. Uživatelská jména a hesla bývají většinou uloženy v databázi. Je možno využívat i jiných metod autentizace, případně jejich kombinací – vícefaktorová autentizační metoda. Velmi populární se stává požadavek zadání přiBezpečnost webových aplika>í – 79 hlašovacího jména, hesla a zároveň požadavek na přítomnost nějakého předmětu, například mobilního telefonu pro ověření přes SMS, USB tokenu nebo autentizačního kalkulátoru, který po zadání pinu vygeneruje heslo s ohledem na reálný čas. Nejvyšší stupeň zabezpečení zahrnuje ověření pomocí biometrických prvků, což bývá ale vzhledem pořizovací ceně využíváno pouze u kritických systémů. Jestliže autentizace proběhne úspěšně, následuje proces autorizace, tedy stanovení pravidel, co přihlášený uživatel smí a nesmí vykonávat. Většina aplikací má systém oprávnění definovaný rozdílným způsobem. Webové aplikace komunikují pomocí protokolu HTTP. Protokol funguje způsobem dotaz-odpověď. Uživatel pošle serveru dotaz ve formě formátovaného textu, který obsahuje označení požadovaných dat. Server následně odpoví pomocí několika řádků textu popisujících výsledek, za kterými následují samotná data. Protože se na serveru nerozlišuje, zda požadavky mezi sebou souvisí, hovoříme u tohoto typu komunikace o bezstavovém protokolu. Bezstavový protokol neumí zachovat stav komunikace mezi jednotlivými požadavky. Tato vlastnost je velmi nepříjemná. Relace (session) musí být tedy udržovány aplikačními programy, které vkládají nutné informace do přenášených dat (textových hlaviček, které jsou zasílány). Session dává webovému serveru možnost uložit si libovolné informace o jednotlivých uživatelích. Webový server si s webovým prohlížečem vyměňuje identifikátor (session ID) a to jako HTTP cookie nebo přímo v URL cílové stránky ve formě proměnné. Zabezpečení session funguje na tom, principu, 80 – Vybrané aspekty návrhu webových informačních systémů že přístup k proměnným konkrétního uživatele je možný přes jeho session ID v podobě dostatečně dlouhého, náhodně generovaného, a tedy neuhodnutelného klíče. Druhé specifikum je to, že session má poměrně krátkou dobu platnosti (implicitně bývá přibližně 24 minut, není-li nastaveno jinak). Samotné použití session ovšem automaticky nezaručuje, že se k datům pomocí nich uložených, dostane pouze uživatel, jemuž jsou určeny. Webové aplikace – pokud session využívají – by současně s ním měly zavést konkrétní principy, které riziko zneužití session minimalizují [30]. Identifikátor relace může být odcizen např. XSS útokem, proto je velmi důležité věnovat se zabezpečení aplikace komplexně. Základem je také nezveřejňovat identifikátor v URL adrese jako parametr, protože případným zveřejněním odkazu by daná session byla kompromitována a útočník by k ní získal přístup. Bohužel uvedení identifikátoru v URL je jedná možnost jak udržovat relaci pro uživatele, kteří mají vypnuté HTTP cookies. Cookies neznamenají žádné nebezpečí pro počítač jako takový, pokud nezíská útočník přístup k počítači uživatele. Další chybou bývá použití příliš jednoduchého identifikátoru relace (snadno uhodnutelného) – jméno uživatele nebo IP adresa. Často také dochází k tomu, že relace nebývá ukončena, ať už z důvodu pouze zavření záložky v prohlížeči nebo prostě z důvodu chybějícího tlačítka odhlásit. Následují uživatel získává potom přístup k relaci. Nejvíce uvedených problémů řeší použití šifrované varianty protokolu HTTP - protokol HTTBezpečnost webových aplikací – 81 PS, který je zabezpečen proti odposlouchávání a podvržení dat. Bohužel šifrovaný protokol musí nabízet poskytovatel obsahu, uživatel musí přijmout to, co je mu nabízeno. Nezabezpečený přímý odkaz na objekt K navigaci mezi webovými stránkami se využívají odkazy, které obsahují parametry. Tyto parametry jsou primární klíče databáze nebo někdy dokonce přímo jména souborů. Zde se pro útočníka otevírá možnost měnit tyto vstupní parametry k získání přístupu k dalším záznamům. Řešení tohoto problému spočívá v důsledné kontrole platnosti všech odkazů (nepřijímat neznámé a nepřípustné odkazy) a všech objektů, ke kterým se přistupuje, pomocí účinného mechanizmu pro řízení přístupu, který dostatečně ověří roli a privilegia uživatele. Nelze zde spoléhat na předchozí ověření uživatele. Vhodnou cestou je také vyhnout se použití přímého odkazu a nahradit ho odkazem nepřímým, který je snadno ověřitelný. Cross-Site request forgery (CSRF) Nebezpečnost útoku CSRF (někdy označovaného jako XSRF) je hlavně v tom, že k napadení aplikace je využit její oprávněný uživatel. Po jeho autentizaci je skrytě proveden podvodný požadavek tak, že si toho uživatel vůbec nevšimne. Může být využita metoda GET i POST [28]. Ukázka útoku Útok využívá toho, že uživatel po autorizaci do aplikace přistoupí na stránku, která odešle aplikaci požadavek v rámci session uživatele 82 – Vybrané aspekty návrhu webových informačních systémů (je zároveň odeslána i autorizační cookie). V případě využití metody GET jsou data odesílána v URL. Útočník může tedy využít, že při načítání obrázku se také generuje požadavek typu GET a vytvoří dotaz, který provede útok. <img src=”http://www.aplikace.cz/uzivatel.php?akce=del&id=7” > Tento podvodný obrázek umístí útočník na své stránky, kam potom pomocí sociálního inženýrství naláká uživatele nebo pomocí útoku XSS umístí obrázek například do diskuzního fóra, které potencionální oběti navštěvují. Využití metody POST není o mnoho složitější, pomocí JavaScriptu je odeslán požadavek ihned po načtení stránky. Formulář může být také umístěn na stránkách útočníka nebo vložen pomocí XSS na navštěvované stránky. <body onload=”document.forms[0].submit();”> <form action=http://www.aplikace.cz/uzivatel.php“ method=“POST“> … kopie formuláře s předvyplněnýma hodnotama … </form> Jak vkládané podvodné obrázky, tak formuláře mohou být na stránce skryty pomocí kaskádových stylů, uživatel tedy nemusí jejich výskyt vizuálně vůbec zaznamenat. Způsob obrany Obrana proti CSRF je z velké části opět na proBezpečnost webových aplika>ć – 83 gramátorovi, ale i samotný uživatel se může bránit tomuto útoku dodržením určitých pravidel. Za dostačující obranu se považuje použití autorizačního tokenu, který je pro každý dotaz náhodně generován. Před zobrazením formuláře se vygeneruje token, který je uložen do session nebo do databáze a zároveň je odeslán jako skryté pole formuláře. Při zpracování dat jsou hodnoty porovnány, případná neshoda je potom vyhodnocena jako pokus o CSRF útok a požadavek není proveden. Existují i další metody, které však nejsou široce používány zejména z důvodu snížení uživatelského pohodlí. Jedná se například o opětovné vyžádání hesla před provedením nějaké kritické akce nebo žádost o zadání textového pole z náhodně generovaného obrázku – CAPTCHA. Kritické aplikace (například internetové bankovnictví) využívají zasílání tokenu pomocí SMS zpráv, tento přístup je však komplikovaný na implementaci a zvyšuje náklady na provoz aplikace. Uživatel se může tomuto typu útoku bránit částečně i sám. Řešením je po dobu platnosti session, kde je autentizován, nepřistupovat na jiné stránky. Nebezpečná konfigurace Bezpečnost webových aplikací ovlivňuje i bezpečnost služeb, které jsou nutné pro její fungování (Webový server, databázový server, operační systém, …). Špatná konfigurace nebo nedostatečné zabezpečení kterékoliv části může způsobit bez84 – Vybrané aspekty návrhu webových informačních systémů pečnostní problém. Výskyt takových chyb je poměrně častý, protože se jedná o velmi komplexní systémy. Konfiguraci takových systémů většinou programátor nemůže ovlivnit a musí spoléhat na administrátory těchto služeb. Důležitá je aplikace opravných balíčků na používané systémy, vypnutí všech služeb, které nejsou používány. Používání dostatečně silných hesel. Správné nakonfigurování všech částí a také vypnutí zobrazování chybových hlášek koncovému uživateli. Tyto výstupní informace by útočníkovi mohly jednoduše poskytnout mnoho informací týkající se běžící aplikace. Nezabezpečené kryptografické úložiště Webové aplikace často uchovávají o uživatelích citlivé informace, které je nutno odpovídajícím způsobem chránit. Typickým příkladem špatného uchování dat je ukládání hesel v textové podobě bez šifrování. Pokud se útočník k takové databázi dostane pomocí SQL injection útoku, tak získá přístup k účtům všech uživatelů. Šifrování citlivých údajů je nutnost, protože při zcizení těchto dat se tak velmi znesnadňuje jejich využití. Používat by se mely pokud možno nejsilnější algoritmy, avšak také s ohledem na povahu dat. Rozhodně se nedoporučuje vytvářet vlastní šifrovací algoritmy, jejich kvalita je velmi pochybná. Je nutno dbát na použití moderních algoritmů, protože některé starší jsou již slabé nebo dokonce již prolomené. Generování klíčů musí probíhat offline a je velmi důležité Bezpečnost webových aplika>í – 85 dbát na uložení privátních klíčů na bezpečném místě, které rozhodně nesmí být stejné jako šifrovaná data. Hesla je nutno zabezpečovat pouze jednosměrným šifrováním. Běžně se využívají hashovací funkce, které vytváří kryptografické kontrolní součty. Doporučované hashovací funkce rodiny SHA-2 (SHA224, SHA256, SHA384 a SHA512) vytváří ze vstupních dat řetězec o konstantní délce, s velmi malou pravděpodobností výskytu shodného otisku. V současné době se již nedoporučuje využívat hashovací funkci MD5, která již byla prolomena a navíc existují rainbow tabulky (databáze s předpočítanými řetězci dat a jejich hashů), popřípadě SHA-1. Již při registraci uživatele je možno vyžadovat určitou složitost hesla. Pro zvýšení bezpečnosti hashe se navíc doporučuje využívat tzv. sůl. Jedná se o náhodný řetězec znaků, který se libovolným způsobem spojí s uživatelským heslem a teprve až z tohoto výsledného řetězce je spočítán kontrolní součet. Chybné zamezení přístupu ke konkrétním URL Jedná se o případ, kdy webová aplikace nechrání stránky, které mají být přístupné pouze vybraným uživatelům, pomocí autorizace. Znepřístupnění stránek je realizováno pouze pomocí nezveřejnění jejich URL. Lze se tak velmi snadno dostat neoprávněně k datům. Obrana proti tomuto útoku je velmi jednoduchá a spočívá pouze na bedrech programátora. U každého přístupu je nutno na straně serveru dů86 – Vybrané aspekty návrhu webových informačních systémů sledně kontrolovat autorizaci uživatele a při neoprávněném pokusu přistoupit na zabezpečenou stránku zobrazit přihlašovací formulář. Testování takového zabezpečení spočívá v kontrole všech odkazů z privátní části. Pro kontrolu lze využít roboty, které projdou web automaticky. Nezabezpečená síťová komunikace Bezpečnost komunikace mezi klientem a serverem nelze v současné době zaručit bez využití SSL/ TLS (HTTPS - Hypertext Transfer Protocol Secure používá protokol HTTP, přičemž přenášená data jsou šifrována právě pomocí SSL nebo TLS). Nešifrovanou komunikaci lze poměrně snadno odposlechnout a data (např. přihlašovací údaje) následně zneužít. Nejjednodušší obranou je použití šifrovaného přenosu pro celý web, ale z důvodu výkonnostních dopadů na server se velmi často používá šifrovaného přenosu pouze pro přenos citlivých údajů, jako například pro přístup k privátní části webu nebo dokonce jen pro autentizaci uživatele. Veřejná část bývá dostupná bez šifrované komunikace. Neplatné přesměrování a předávání parametrů Tento typ útoku využívá již dříve popsaných bezpečnostních chyb tím způsobem, že nezkontrolovaný vstup uživatele využije k přesměrování na podvodnou stránku. Příkladem útoku může být případ, kdy aplikace používá skript na přesměrování na vlastní stránky. Do parametru je potom útočníkem vložen odkaz na podvodnou URL. http://www.example.com/redir.php?url=www.podvod.cz Tento odkaz vypadá na první pohled důvěryhodně, Bezpečnost webových aplikacć – 87 protože pochází z důvěryhodného serveru www. example.com, ale protože využívá chyby programátora, který nekontroluje vstupní data, dojde k přesměrování pomocí skriptu redir.php na podvodný server útočníka. Jestliže je grafická podoba podvodného serveru identická s originální webovou aplikací, může například dojít k odcizení přihlašovacích údajů. Základní obranou proti této chybě je nepoužívat v aplikaci přesměrování. Pokud přesměrování musí být použito, tak je nutno důsledně kontrolovat vstup uživatele například pomocí pomocí validace typu whitelist. Závěr Bezpečnost bývá u webových aplikací velmi často opomíjena a přitom jejich dopad může být v dnešní době obrovský. Kapitola se věnovala deseti hrozbám dle žebříčku organizace OWASP. Jednalo se o největší hrozby dle jejich výskytu a míry rizika. V žádném případě se však nejedná o kompletní popis dané problematiky. Běžné jsou i další rizika, která se vyskytují. Například automatizované získávání e-mailových adres z webových stránek a jejich následné zneužití pro rozesílání spamu. Tento problém někteří programátoři obchází zveřejňováním e-mailové adresy pouze ve formě obrázku. Podstatně elegantnějším řešením je využít vlastních formulářů pro odeslání e-mailu, kde nemusí být cílová adresa viditelná, protože je e-mail odesílán na straně serveru. Následně se však může vyskytnout problém s roboty, kteří automaticky plní formuláře na internetu a rozesílají například do internetových diskuzí nevyžádanou reklamu. I 88 – Vybrané aspekty návrhu webových informačních systémů tomuto typu útoku se však lze poměrně jednoduše bránit, ať už pomocí žádosti o zadání textového pole z náhodně generovaného obrázku – CAPTCHA, nebo vytvořením pro běžného uživatele skrytého vstupního pole, které však automat vyplní. Do budoucna je nutno problematiku bezpečnosti stále aktivně sledovat, protože je to oblast, která se stále velmi dynamicky vyvíjí. Nelze opomíjet nové bezpečnostní hrozby, které se objevují. Bezpečnost webových aplika>ć – 89 Technologie Internetu, základní pojmy a principy Miroslav Matýsek 6 Pro neznalé problematiky počítačových sítí a technologie Internetu doporučuji se seznámit se základními pojmy v následujícím textu. Tyto základní pojmy jsou následně použity v dalších částech problematiky technologie Internetu. Internet versus internet Internet je jméno jedné konkrétní soustavy vzájemně propojených počítačových sítí. Internet je pouze jeden, jako celek nemá žádného vlastníka, své vlastníky mají jen dílčí části Internetu. Na rozdíl od Internetu, internet (s malým i) chápeme jako soustavu vzájemně propojených sítí (např. i v jednom pokoji), internetů je velké množství a internet má vždy vlastníka (např. vnitřní síť firmy). Intranet versus extranet Intranet tvoří příslušnou část sítě organizace, sloužící pro samotnou organizaci, poskytuje aplikace a služby uvnitř organizace. Extranet tvoří příslušnou část sítě organizace sloužící pro poskytování aplikací a služeb externím organizacím a uživatelům. Typy sítí PAN (Personal Area Network): osobní počítačová síť, sloužící uživateli k propojení jeho elektronických zařízení navzájem (nootebok, mobil, tablet), ve většině případů v jedné místnosti, dnes povětšinou technologii Bluetooth. LAN (Local Area Network): lokální počítačová síť, je to síť sloužící k propojení jednotlivých síťových uzlů navzájem, typicky v rámci jedné budovy. CAN (Campus Area Network): areálová počítačová síť, propojující několik LAN v rámci areálu firmy s více budovami. MAN (Metropolitan Area Network): městská síť, síť propojující jednotlivé LAN ve městě nebo vesnici. WAN (Wide Area Network): rozlehlá počítačová síť, propojuje jednotlivé MAN a LAN v rámci celého státu, kontinentu, dříve celé zeměkoule. GAN (Global Area Network): síť v rámci celé zeměkoule, např. Internet. Přenášená data Zpráva Zpráva je logicky ucelený balík dat (mail, soubor, …), který přenášíme po síti. Zpráva má proměnnou délku dat. Zprávu na transportní vrstvě rozdělíme na segmenty nebo datagramy. Technologie Internetu, základní pojmy a principy – 91 Segment, datagram, paket a rámec Segment, datagram, paket a rámec je balík dat o stanovené pevné délce na různých úrovních síťového SW a HW. Simplex, poloduplex a plný duplex Simplexní přenos: Data jsou přenášená jen jedním směrem. Většina přenosů na optických vláknech (existují i složitější technologie, které umožňují na jednom optickém vlákně plně duplexní provoz). Poloduplexní přenos: Data jsou přenášena oběma směry, avšak v daném okamžiku jen jedním směrem (nikoliv současně). Příkladem může být Ethernet do 1 Gb/s. Plně duplexní přenos: Data jsou přenášena oběma směry současně, např. Ethernet 10 Gb/s. Přenosové rychlosti U počítačových sítí se můžeme setkat s dvěma rychlostmi, jedná se o přenosovou a modulační rychlost. Přenosová rychlost Přenosová rychlost v b/s, udává počet přenesených bitů za sekundu. U přenosových rychlostí se používají mocniny při základu 10, tedy dle jednotek SI kb/s, Mb/s, Gb/s a Tb/s. Modulační rychlost Modulační rychlost v Bd, udává počet přenesených signálových prvků za sekundu. Také můžeme říci, že se jedná a počet změn stavu nosné za 92 – Vybrané aspekty návrhu webových informačních systémů sekundu. Metody komunikace Sítě s přepojováním okruhů a paketů V 70. letech vznikly první počítačové sítě, některé s přepojováním okruhů jiné s přepojováním paketů. Sítě s přepojováním okruhů Sítě s přepojováním okruhů můžeme charakterizovat následujícími vlastnostmi: •Rezervované spoje mezi dvěma uzly •Po celou dobu spojení máme pro sebe volný komunikační kanál •Nevýhodou je blokování celého kanálu po dobu spojení •Používají některé sítě s radiovým spojením a ISDN (Integrated Services Digital Network) Obr. 6-1: Síť s přepojováním okruhů Technologie Internetu, základní pojmy a principy – 93 Sítě s přepojováním paketů Odlišné vlastnosti od sítí s přepojováním okruhů můžeme shrnout takto: •Pakety se posílají z uzlu na uzel, když je volný komunikační kanál, •Přepojovací uzly pracují systémem store and forward, •Použito např. v GAN Internet a navzájem propojených kancelářských lokálních sítích. Obr. 6-2: Síť s přepojováním paketů Dělení dle počtu rámců Dle počtu rámců šířící se v daném okamžiku na komunikačním vedení dělíme sítě na rozlehlé a soustředěné. Rozlehlé sítě V rozlehlé síti se šíří v daném okamžiku na 94 – Vybrané aspekty návrhu webových informačních systémů komunikačním vedení více jak jeden rámec, typickými zástupci jsou sítě WAN před nasazením optického Ethernetu do těchto sítí. Obr. 6-3: Soustředná a rozlehlá síť a ≤ 1 a > 1 Kde: Soustředěná síť Rozlehlá síť a = τ / t0 , v ≠ ∞ , τ = zpoždění signálu na komunikačním vedení, t0 = je střední doba potřebná k vyslání jednoho rámce při dané přenosové rychlosti. Soustředěná síť U soustředěných sítí se v daném okamžiku se na vedení může šířit pouze jeden rámec. Typickým příkladem je LAN Ethernet na metalickém vedení. Přenosová média Jedná se o fyzická média, kterými jsou přenášena data na Fyzické vrstvě modelu OSI ke svému cíli. U počítačových sítí se používají nejčastěji tyto tři typy komunikačních medií: 1.elektrické vodiče (obvykle měděné) •koaxiální kabel Technologie Internetu, základní pojmy a principy – 95 •kroucená dvojlinka 2.optická vlákna 3.„vzduch“ (bezdrátový přenos) Koaxiální kabel Vykazuje poměrně dobré parametry při frekvencích pod 1 GHz. Dříve se používal u LAN Ethernet na rychlosti 10 Mb/s s charakteristickou impedancí 50 Ω a u LAN Arcnet s charakteristickou impedancí 93 Ω. Dnes se koaxiální kabel s charakteristickou impedancí 50 Ω používá jako propojka mezi anténou a radiomodemem u bezdrátových sítí (tzv. pigtail) a koaxiální kabel s charakteristickou impedancí 75 Ω na propojení účastnické zásuvky s kabelovým modemem u CATV (Cable Television). Koaxiální kabel se připojuje u Ethernetu k BNC konektorům RG58 krimpovacími kleštěmi nebo se na pájecí variantu konektorů připájí cínovou pájkou. U CATV se používají pro Obr. 6-4: Koaxiální kabel připojení kabelového modemu konektory F. 96 – Vybrané aspekty návrhu webových informačních systémů Kroucená dvojlinka Je označovaná též jako TP (Twisted Pair). Může přenášet data s rychlostí až do 10 Gb/s na vzdálenost 100 m.. Dva vodiče jsou vždy vzájemně kolem sebe obtočeny, čímž se minimalizuje EMI (Electromagnetic Interference) a ztráty způsobené kapacitním odporem, tj. tendencí nevodiče uchovávat elektrický náboj a maximalizuje se EMS (Electromagnetic Susceptibility). Jedná se o symetrické přenosové médium, signál je přenášen jako rozdíl napětí mezi těmito dvěma vo- Obr. 6-5: Kroucená dvojlinka diči, což způsobuje menší náchylnost vedení k rušení a útlumu. Charakteristická impedance se pohybuje v rozmezí 100 ± 15 Ω. Kroucená dvojlinka se vyrábí ve třech základních variantách: •UTP (Unshielded TP) nestíněná kroucená dvojlinka •ScTP (Screened TP) částečně stíněná, jen celek •STP (Shielded Twisted Pair) stínění jedTechnologie Internetu, základní pojmy a principy – 97 notlivých páru i celku. Kroucenou dvojlinku je možné zařadit do některé ze 7 kategorii označených čísly 1 až 7. Pro některé kategorie byly vytvořeny i podkategorie označeny velkým písmenem za číslem kategorie. Příkladem mohou být podkategorie 5E a 6A. Čím vyšší kategorie, tím vyšší přenosové rychlosti je možné u kroucené dvojlinky použít. V počítačových sítích se v současné době používají kategorie 5 až 7, např. kategorie 5 je určena pro Ethernet do 100 Mb/s, kategorie 6 pro Ethernet do 1 Gb/s a kategorie 7 pro Ethernet do 10Gb/s. Podkategorii 5E je možné u Ethernetu použít do rychlosti 1 Gb/s a podkategorii 6A do 10 Gb/s. U kroucené dvojlinky se v kancelářských počítačových sítích sjednotili výrobci na konektoru RJ-45, který se adjustuje krimpovacími kleštěmi. Maximální délka vedení z kroucené dvojlinky u Ethernetu je stanovena na 100 m. Optická vlákna Optická vlákna využívají pro přenos informací téměř dokonalých odrazu na rozhraní dvou materiálů s rozdílným indexem lomu. Optické vlákno se skládá z jádra, pláště světlovou a ochranného obalu. Jádro je vyrobeno ze skla nebo plastu. Plastové optické vlákna jsou levnější, ale mají mnohonásobně vyšší útlum. Jádrem se šíří optický paprsek v infračerveném spektru. Infračervené spektrum bylo zvoleno vzhledem k nejmenšímu útlumu paprsku v optickém vlákně. Jádrem se může šířit 98 – Vybrané aspekty návrhu webových informačních systémů jeden paprsek jeden vid - jednovidové optické vlákno (singlemode) vytvořený laserovou diodou nebo více paprsků - mnohovidové optické vlákno (multimode) vytvořených led diodou s dírkovou clonkou. Typické průměry jádra u jednovidových vláken jsou 8 a 9 μm, u vícevidových 50 a 62,5 μm. Plášť světlovodu je vyroben taktéž ze skla nebo plastu a má nižší hodnotu indexu lomu než jádro. U optických vláken se skokovou změnou indexu lomu dochází na rozhraní jádro - plášť světlovou k téměř dokonalým odrazům, čímž se optický paprsek udržuje v jádře. Plášť světlovou se vyrábí typicky s průměrem 125 μm. Ochranný obal je vyroben z neprůhledného plastu ve dvou vrstvách. Chrání optické vlákno proti mechanickému poškození, zvláště při ohybu. Jeho vnější průměr se pohybuje kolem 1 mm. Optická vlákna se vyrábějí ve třech variantách: •vícevidové se skokovou změnou indexu lomu (step index), •vícevidové s postupnou změnou indexu lomu (graded index), •jednovidové se skokovou změnou indexu lomu. Maximální délka vedení bez retranslace se pohybuje u jednovidových vláken kolem 100 km, u vícevidových vláken díky vidové disperzi jen do několika set metrů. Optická vlákna se svařují nebo nouzově lepí na speciálních zařízeních. Optické konektory se ke kusům optických vláken připojují většinou ve výrobě. Bohužel se Technologie Internetu, základní pojmy a principy – 99 Obr. 6-6: Typy vláken: Step Index Multimode, Graded index Multimode, Step Index Singlemode (zleva) standardizace v oblasti konektorů nedostala tak daleko, jako u kroucené dvojlinky nebo koaxiálního kabelu. Z tohoto důvodu se u optických vláken používá více typů konektorů např. FC, SC, ST, E2000, MTRJ a další. Obr. 6-7: Řez optickým kabelem Optická vlákna se sdružují do optických kabelů. 100 – Vybrané aspekty návrhu webových informačních systémů V optickém kabelu mohou být i vlákna obojího typu, tedy část jednovidových a část vícevidových vláken. Řez typickým optickým kabelem je uveden na obrázku níže. Komunikace vzduchem Pro komunikaci vzduchem pomocí radiových vln se používají licencovaná pásma 3,5 GHz, 26 a 28 GHz a „Bezlicenční pásma“ a tzv. Generální licencí 2,4 GHz, 5 a 10,5 GHz. Pásma jsou rozdělena na jednotlivé rádiové kanály. V některých pásmech se rádiové kanály překrývají např. v pásmu 2,4 GHz, v některých pásmech jsou navrženy bez překryvu – pásmo 5 GHz. Bezdrátové počítačové sítě jsou označeny jako WLAN (Wireless LAN), podskupinou jsou bezdrátové sítě popsány ve standardech IEEE 802.11 (Institute of Electrical and Electronics Engi- Obr. 6-8: Členění WLAN a podmnožiny neers) a podskupinou této podskupiny jsou sítě s nálepkou vzájemné kompatibility Wi-Fi (Wireless Fidelity). Vztah mezi těmito skupinami Technologie Internetu, základní pojmy a principy – 101 zobrazuje následující obrázek. Vzhledem k použitým frekvencím se rádiové vlny téměř neohýbají. Energie rádiových vln mezi dvěma anténami se šíří v prostorovém útvaru elipsoidu - Fresnelově zóně. 90 % energie se šíří v první Fresnelově zóně. Maximální poloměr první Fresnelovy zóny (uprostřed mezi anténami) lze vypočítat dle vztahu: , kde je maximální poloměr první Fresnelovy zóny [m], D je vzdálenost mezi je frekvence [GHz]. anténami [km] a Poloměr první Fresnelovy zóny v libovolné vzdálenosti mezi anténami lze vypočítat ze vztahu: , kde je poloměr první Fresnelovy zóny [m], je vlnová délka [m], d1 a d2 jsou vzdálenosti místa, pro které počítáme poloměr , kde od antén [m], pro které platí, že D je vzdálenost mezi anténami [km] jako v první rovnici. Pro úspěšnou komunikaci je třeba zajistit, aby první Fresnelova zóna nezasahovala pod povrch země a v zóně se nevyskytovaly žádné předměty pohlcující nebo odrážející rádiové vlny – stavby, stromy, dopravní prostředky atd. Pokud není možné mezi anténami zajistit přímou viditelnost (v první Fresnelově zóně jsou např. železobetonové budovy), je nutné provést pasivní nebo 102 – Vybrané aspekty návrhu webových informačních systémů aktivní retranslaci. Přístupové metody LAN V současné době se u kancelářských LAN používají dvě přístupové varianty náhodného přístupu s příposlechem nosné CSMA (Carrier Sense Multiple Access). Varianta CD (Collission Detection) a varianta CA (Collission Avoidance). U obou variant posloucháme co se děje na společném komunikačním kanálu - CS (Carrier Sense), když je kanál volný, zahájíme vysílání dat. Problém je se vzdálenými stanicemi, které mohou zahájit Obr. 6-9: Přístupové metody CSMA vysílání současně v domnění, že je komunikační kanál volný. Odlišně se obě varianty chovají, pokud stanice, která má data k vysílání zjistí, že je komunikační kanál obsazený. Varianta CSMA/CD Pokud je po stanovenou dobu kanál volný zaháTechnologie Internetu, základní pojmy a principy – 103 jí stanice vysílání. Po detekci nosné stanice čeká, až právě vysílající stanice odvysílá data (prakticky nosnou testuje periodicky s pevně stanovenou délkou intervalu) a pak zahájí bezprostředně po uplynutí mezirámcové mezery vysílání (LAN Ethernet). Během vysílání porovnává vysílaná data s daty na komunikačním kanále. V případě detekce kolize, ukončí okamžitě vysílání a vyšle kolizní posloupnost - „jam“ k urychlení reakce sítě na kolizi. Po obdržení jamu se stanice odmlčí na náhodně stanovenou dobu. Odmlčí se analogicky i stanice, která jam vyslala. Varianta CSMA/CA Vzhledem k poloduplexnímu provozu rádiových rozhraní nemůže stanice vysílat a zároveň přijímat data k detekci kolize jako u metody CD. Je-li po stanovenou dobu kanál volný, zahájí stanice vysílání. Při bezchybném přijetí dat cílová stanice bezprostředně zašle potvrzení přijetí dat. Při neúspěšném pokusu o odvysílání (nedojde potvrzení o přijetí dat) stanice čeká náhodně stanovenou dobu, než začne opět testovat komunikační kanál. Po detekci nosné vzdá opět stanice pokus o vysílání na náhodně stanovenou dobu. Normování počítačových sítí K standardizaci počítačových sítí složí model OSI (Open System Interconection) organizace ISO (International Standards Organization) a doporučení 802 organizace IEEE. Model OSI/ISO 104 – Vybrané aspekty návrhu webových informačních systémů Obr. 6-10: Model OSI Tento sedmivrstvý model se v praxi příliš neujal a slouží dnes především výukovým účelům. Doporučení IEEE 802 Doporučení IEEE 802 se na rozdíl od modelu OSI/ ISO v praxi uchytily a za krátkou dobu je výrobci převzaly jako průmyslové standardy. Základní skupina 802 (vznikla v únoru 1980) popisující počítačové sítě se rozdělila do podskupin, řešících dílčí problematiku počítačových sítí např. podskupina 11. (802.11) řeší standardizaci bezdrátových LAN a MAN. Síťové protokoly S rozšířením Internetu po celé zeměkouli vytlačil protokol TCP/IP (Transmission Control Protocol/Internet Protocol) bohužel i dokonalejší konkurenční protokoly např. IPX/SPX (Internet Packet Exchange/Sequenced Packet Exchange) a stal se nejrozšířenějším protokolem i v LAN. Technologie Internetu, základní pojmy a principy – 105 TCP/IP protokol Správně bychom měli mluvit o rodině protokolů TCP/IP, nikoliv jen o protokolu TCP a IP. Korelace mezi vrstvami modelu TCP/IP modelu Obr. 6-11: Model OSI a TCP/IP OSI/ISO je znázorněna na následujícím obrázku. Zařazení jednotlivých protokolů z rodiny protokolů TCP/IP do vrstev modelu TCP/IP je uvedeno v následujících textu. Síťová vrstva •ARP (Address Resolution Protocol): k IP adrese získá MAC (Media Access Control) adresu síťového rozhraní, uchovává je v ARP cache (např. u Microsoft Windows 2 minuty, po opakovaném přístupu během 2 minut se interval zvyšuje na 10 minut). 106 – Vybrané aspekty návrhu webových informačních systémů •RARP (Reverse ARP): opak ARP. Z MAC adresy síťového rozhraní získá IP adresu síťového rozhraní. •IP (Internet Protocol): datagramová nespojovaná, nepotvrzovaná služba. •ICMP (Internet Control Message Protocol): umožňuje směrovačům posílat chybové a řídící zprávy ostatním směrovačům i počítačům, je součástí protokolu IP. •IGMP (Internet Group Management Protocol): umožňuje skupinové adresování počítačů na úrovni Síťové vrstvy, je součástí IP •BootP (Boot Protocol): slouží k získání vlastní IP adresy a dalších informací, nutných pro práci v síti. •DHCP (Dynamic Host Configuration Protocol): totéž i dynamicky. •RIP, RIP2 (Routing Information Protocol): interní směrovací protokol směrovačů pracující algoritmem DVA (Distance Vector Algoritmus). •OSPF (Open Shortest Path First): totéž, na rozdíl od RIPu používá algoritmus LSA (Link State Algoritmus). •BGP (Border Gateway Protocol): externí směrovací protokol mezi autonomními systémy. Transportní vrstva •TCP (Transmission Control Protocol): spojovaná, potvrzovaná služba. •UDP (User Datagram Protocol): nespojovaná, nepotvrzovaná služba. Aplikační vrstva •SMTP (Simple Mail Transfer Protocol): odesílání elektronické pošty. Technologie Internetu, základní pojmy a principy – 107 •POP3/IMAP4 (Post Office Protocol/Internet Message Access Protocol): příjem elektronické pošty. •FTP (File Transfer Protocol): protokol pro přenos souborů mezi počítači pomocí počítačové sítě. •TFTP (Trivial FTP): jednoduchý protokol pro přenos souborů mezi počítači pomocí počítačové sítě, zavádění OS do bezdiskových stanic ze serveru, záloha konfigurace aktivních síťových prvků. •HTTP(S) (Hypertext Transfer Protocol (Secure)): přenos hypertextových stránek WWW (World Wide Web). •Telnet (Telecommunications Network): síťový virtuální terminál. •DNS (Domain Name Service): převod doménových jmen na IP adresy a naopak. •SNMP (Simple Network Management Protocol): vzdálení zpráva síťových prostředků. •NTP (Network Time Protocol): robustní synchronizace času mezi počítači. •LDAP (Lightweight Directory Access Protocol): přístup k datům na adresářovém serveru, např. vzdálený přístup do NDS (Novell Directory Services) Novellu. LAN Ethernet Ethernet byl původně určen jen pro LAN, dnes je nasazen v MAN i WAN. Jedná se o soustředěnou síť pokrývající HW 1. a SW 2. vrstvu (podvrstvu MAC) modelu OSI, s přístupovou metodou CDMA/ CD. Běžné přenosové rychlosti jsou 10 Mb/s, 100 Mb/s, 1 Gb/s a 10 Gb/. V současné době je možné použít i rychlosti 40 a 100 Gb/s. Ethernet pou108 – Vybrané aspekty návrhu webových informačních systémů žívá pro přenos dat nestíněnou a stíněnou dvojlinku nebo optické vlákno. Používá se fyzická topologie hvězda nebo strom, dříve i sběrnice. Logická topologie je jediná a to sběrnice. Na fyzické vrstvě jsou použity různé mechanizmy kódování v závislosti na přenosové rychlosti a použitém přenosovém médiu např. kódováni Manchester, 4B/5B a následně MLT-3, PAM, 8B/10B nebo NRZI. Historie Ethernet byl vyvinut společně firmami DEC, Intel a Xerox přijat v roce 1980 standard (DIX Ethernet). DIX předložila návrh podskupině IEEE 802.3, která po úpravách přijala Ethernet v roce 1983 jako standard IEEE 802.3 na bázi CSMA/CD. DIX reagovala na IEEE 802.3 zapracováním části změn od IEEE do DIX Ethernetu. Vznikl Ethernet II, který se ale již dále nevyvíjel. IEEE upravila původní rámec 802.3 v položce Lenght o možnost volby Lenght/Type, čímž umožnila používat tento rámec pod protokolem TCP/IP. Dnes Obr. 6-12: Rámec IEEE 802.3 je to preferovaný typ rámce. Pro přehlednost uveďme vývoj rámce ještě jednou: DIX Ethernet » IEEE 802.3 » Ethernet II » upravený IEEE 802.3. Formát upraveného rámce IEEE 802.3 je zobrazen na následujícím obrázku. Technologie Internetu, základní pojmy a principy – 109 kde: Lenght/Type < 1536 (600H) = určuje délku části Data, ≥ 1536 (600H) = specifikuje protokol použitý na 3. vrstvě modelu OSI např. IP, Obr. 6-13: Rámec IEEE 802.3 s identifikací VLAN ARP a RARP. Pro VLAN (Virtual LAN) dle IEEE 802.1Q byly přidány 4 Bajty - tzv. tag, sloužící k identifikaci virtuální lokální sítě při přenosu dat více VLAN přes jedno (trunkové vedení) mezi přepínači nebo mezi přepínačem a směrovačem. Přenosová rychlost Novější síťová rozhraní mají vestavěnu autodetekci maximální přenosové rychlosti. Pokud je autodetekce vypnuta, je nutné tyto parametry na navzájem propojených síťových rozhraních nastavit shodně. V případě, že autodetekce zmíněných parametrů selže, je vhodné na jednom síťovém rozhraní tuto autodetekci ponechat aktivní, zatímco na druhém síťovém rozhraní parametry nastavit ručně. Poloduplexní a plně duplexní provoz na kroucené dvojlince Starší síťová rozhraní neumožňovala pracovat v plně duplexním režimu. Z tohoto důvodu novější sítová rozhraní mají zabudovánu autodetekci tohoto parametru, popřípadě je možné tento parametr u nich nastavit ručně pro případ komu110 – Vybrané aspekty návrhu webových informačních systémů nikace se starším síťovými rozhraními umožňujícím jen poloduplexní typ provozu. O případné nutnosti vypnutí autodetekce tohoto parametru na jednom síťovém rozhraní platí totéž co v kapitole 7.2. Pozn.: u verze Etherneru na koaxiálním kabelu musela všechna síťová rozhraní pracovat v poloduplexním režimu vzhledem k jednomu společnému komunikačnímu kanálu. Křížení párů kroucené dvojlinky V současné době vzhledem k autodetekci křížení na síťových rozhraních není třeba tuto problematiku řešit a je tím pádem možné použít nekřížené zapojení kabelů. U starších síťových rozhraní bez autodetekce byla rozdělena síťová rozhraní do dvou skupin. V skupině 1 byl směrovač a PC, ve skupině 2 pak opakovač, rozbočovač, most a přepínač. K propojení mezi zařízení patřící do stejné skupiny sloužil křížený kabel, k propojení zařízení mezi skupinami kabel přímý (nekřížený). Optické spoje Ethernet je možné provozovat na jednovidových i vícevidových optických vláknech, většinou pomocí dvou vláken v simplexním provozu. Přes jedno vlákno je možné paralerně přenášet jedním směrem i vícenásobná data na více vlnových délkách pomocí technologie WDM (Wavelength Division Multiplexing). Pomocí optických cirkulátorů je možný plně duplexní provoz na jednom vlákně. Propojování počítačových sítí Se vznikem PC se podstatně zvýšil tlak na výrobce zařízení propojující jednotlivé LAN mezi sebou do větších celků nebo části jedné LAN Technologie Internetu, základní pojmy a principy – 111 navzájem. Než si popíšeme základní propojovací prvky sítí, definujme si Kolizní a Broadcastovou doménu. Kolizní doména Kolizní doména je část sítě, v které se šíří signál vyslaný síťovým rozhraním. V této části sítě může dojít ke kolizi se signálem vyslaným jiným síťovým rozhraním. Kolizní domény oddělují např. mosty (bridge), L2, L3 a L4 přepínače (switche) a směrovače (routery), tedy zařízení pracující na 2. a vyšší vrstvě modelu OSI. U Ethernetu může docházet ke kolizím u starých sítí s koaxiálním kabelem a v sítích s kroucenou dvojlinkou při použití rozbočovačů (hubů). Kolize u Ethernetu byly odstraněny nasazením kroucené dvojlinky s přepínači a plně duplexním provozem všech síťových rozhraní. Z tohoto důvodu již nebyla přístupová metoda CSMA/CD u přenosových rychlostí 10 Gb/s a vyšších implementována. Broadcastová doména Broadcastová (všesměrová) doména je část sítě, v které se šíří rámec s MAC broadcastovou (všeobecnou) adresou. U Ethernetu je to adresa s hodnotou FF-FF-FF-FF-FF-FFH, tedy adresu s binárními jedničkami na všech pozicích adresy. Broadcastové domény oddělují např. směrovače a L3 a L4 přepínače, tedy zařízení pracující na 3. a vyšší vrstvě modelu OSI. Zařízení sloužící k propojování počítačových sítí Dle toho, na které vrstvě modelu OSI dochází k přenosu dat, dělíme propojovací zařízení: 112 – Vybrané aspekty návrhu webových informačních systémů •Na 1. vrstvě: opakovače (repeatery), rozbočovače •Na 2. vrstvě: mosty a L2 přepínače •Na 3. vrstvě: směrovače a L3 přepínače •na 7. vrstvě: brány (gatewaye) bez udání úrovně •A obecně na N-té vrstvě: brány úrovně N, tedy např. směrovač je brána úrovně 3. Technologie Internetu, základní pojmy a principy – 113 Teoretické principy přístupu k internetové síti Karel Vlček 7 Kapitola navazuje na výsledky a závěry publikované v [43], které se týkají dalšího využití techniky iterativního dekódování. Tento postup dekódování kódů s velkou minimální kódovou vzdáleností (řetězených kódů, k nimž patří i turbo kódy) otevřel cestu k novému využití: pro eliminaci nelinearit přenosového kanálu. Touto cestou je dosahováno další přiblížení se k teoretickému limitu, který popisuje druhá Shannonova věta. Rostoucí požadavky multimediálních telekomunikačních služeb si vynucují rychlosti přenosu dosahující 100Gbit/s. Při takových rychlostech přenosu informace je již i komunikace po optických vláknech zatěžována nelinearitami. Uplatňuje se zde polarizace a chromatická disperze. Ke zmírnění těchto vlivů na informační obsah zpráv mohou pomoci kódované modulace s vysoce účinnými řetězenými kódy a následně iterativní metody používané při ekvalizaci symbolů zprávy. Numerické metody řešení diferenčních rovnic vycházejí ze široké nabídky metod zpracování číslicových signálů a digitální modulace. Metoda ekvalizace aplikovaná při příjmu zahrnuje odpovídající techniky zpracování číslicového signálu včetně číslicové filtrace. Cílem textu je analyzovat zlepšování vlastností komunikace na úrovni fyzické vrstvy. Zlepšení vyhodnocování přijaté zprávy je založeno na zvětšení kódové vzdálenosti a tím i poměru nazývaného kódový zisk. Toho je možné dosáhnout řetězením kódů (a jejich iterativním dekódováním). Řetězením kódů je dosaženo dostatečně velké kódové vzdálenosti symbolů v kódové zprávě. Signál nese informaci, která je použitelná při přenosu zprávy kanálem, jehož popis je proměnlivý v čase. Signál, který zprostředkovává přenos zprávy je popsán relací: . Zmíněný model kanálu popisuje přenosová funkce: . Tento popis modelovaného kanálu bude, při vhodné volbě koeficientů přenosové funkce, odpovídat vlastnostem kanálu s mnohacestným šířením nebo kanálu s omezeným kmitočtovým pásmem. Přijatý signál je pak popsán relací: (1) Různé přístupy k řešení zahrnují několik principů [45]: 1.Lineární ekvalizace s pevně nastaveným filtrem tak, že „vypadá“ co . Ekvanejvíce jako přenášený signál lizační filtr může být navržený: jako „zero forcing“, který potlačuje vše, co se dostalo do signálu následkem interference, nebo s kriteriem minimalizace kvadratické odchylky, který minimalizuje průměrnou energii interference. 2.Ekvalizace na základě zpětné vazby, technika používá rozhodování na základě Teoretické principy přístupu k internetové síti – 115 předchozích hodnot výstupu, které jsou vedeny zpětnou vazbou a ruší vliv kanálu na přijímaný signál. 3.Adaptivní lineární ekvalizace s rozhodováním zpětnou vazbou, ve které přijímač adaptivně vyhodnocuje koeficienty pro příjem. 4.Ekvalizace na základě MLSE (Maximum Likelihood Sequence Estimation), při níž je kanál považovaný za určený předcházejícími bity, pro dekódování je použit Viterbiho dekódovací algoritmus. 5.Ekvalizace vycházející z MAP (Maximum à posteriori) dekódování, které je podobné MLSE, až na to, že je použit MAP nebo BCJR algoritmus. Poslední dvě metody jsou pochybně optimální, ale mohou být s výpočetními obtížemi spouštěny. 6.Suboptimální varianty a interpolace těchto způsobů řešení ekvalizace představují postupy reagující na skutečnost, že počet stavů roste exponenciálně s délkou L odezvy kanálu. Role, kterou sehrály iterativně řešené dekódovací postupy mohou být shrnuty do následujícího přehledu. V roce 1993 byly objeveny turbo kódy [45]. V roce 1995 byl princip, který byl vyvinut pro turbo kódy, použit pro ekvalizaci [46]. Autoři formulovali ISI – příjem s mezisymbolovou interferencí – jako problém dekódování turbo kódu s poměrem 1 konvolučního kódu a druhým kódem je kódové zabezpečení. V roce 1997 autoři [47] ukázali, že v turbo ekvalizeru může být použit lineární ekvalizer. Tento objev činí turbo ekvalizaci efektivní, takže může být používána v mnoha aplikací [50]. 116 – Vybrané aspekty návrhu webových informačních systémů Do nedávné doby vycházela většina prací z nevysloveného separačního principu: že totiž dekódování kódového zabezpečení pro opravu chyb následovalo po ekvalizaci a detekci. Nicméně, příchod turbo dekódovacího algoritmu vedl k vývoji turbo ekvalizace, v níž se zhoršení kanálu a požadavek opravy chyb i v tomto zhoršeném kanálu podílejí na iterativních postupech. Rámec pro působení turbo ekvalizace Klíčové pozorování je následující: jestliže kodér ve vysílači je doplněn prokladem, pak se konvoluční vztahy projevují jakoby překračovaly kanál a působí jako druhý konvoluční kodér, takže celkové uspořádání se chová jako sériově řetězený kód s prokladem. Součástka nazývaná interleaver se přitom nachází mezi komponentními kodéry (constituent encoders). Tato situace umožňuje výslednou sekvenci podrobit iterativnímu dékodování [56]. Obr. 7-1 zobrazuje obecný rámec pro systém, který může být dekódován turbo dekodérem. (V další diskusi bude zdůvodněno, proč je zde jako turbo ekvalizer označeno schéma zařízení přijímače, které provádí ekvalizaci a dekódování jako jeden iterativní proces.) Proklad slouží pro operaci dekorelace mezi hodnotami, takže extrinzická informace je téměř nezávislá na vstupních hodnotách a může být použita jako apriorní informace. V praxi bude délka prokladu závislá na délce odezvy přenosového kanálu. V turbo dekodéru je odezva kanálu nejdříve zpracována použitím MAP ekvalizeru, který vypočítává informaci o bitech ve formě logaritmu po Teoretické principy přístupu k internetové síti – 117 Obr. 7-1: Skupinové schéma přenosového řetězce s využitím principu turbo ekvalizace měru pravděpodobností . Prvotní informace je odečtena, zůstávající extrinzická informace, která prošla prokladem přechází do konvolučního dekodéru, je použita jako apriorní informace. Označení ve schématu na Obr. 7-1 „měkký“ konvoluční dekodér odkazuje na proces dekódování, které bylo použito u turbo kódů. Podle toho je pak celý proces ekvalizace označován jako turbo ekvalizace. Výstup dekodéru je pak znovu (jako bit informace) zpracován ve formě logaritmu poměru pravděpodobností . Prvotní informace je následujícím kroku odečtena a výsledek je poslán zpět do ekvalizeru k další iteraci. Všechny prvky ekvalizeru jsou nyní známy, kromě MAP ekvalizeru, který je popsán pomocí příkladu. Předpokládejme, že -násobky bitů objevující se na výstupu konvolučního kodéru, jsou označeny jako , (kde je můžeme považovat za posloup118 – Vybrané aspekty návrhu webových informačních systémů nost bitů bez ohledu na to, jestli se jedná o bity zprávy nebo zabezpečovací bity). Modulova. Předpokládejme, že kané bity jsou nál má vlastnosti popsané relací podle, ve které popisuje délku, takže přijatý signál může . být popsán jako Z tohoto popisu je zřejmé, že podle mřížky, ve které jsou zachyceny stavy kanálu délky , budou výstup ovlivňovat předcházející bity . Pravděpodobnost zprávy v čase t , kdy na vstupu je bude prav- , děpodobnost popsána úvodním stavem v čase t+1 bude na výstupu kanálu (bez šumu) . Pro stav bílý šum je vyjádřena pravděpodobnostní funkce . Na základě této relace je možné určit pravděpodobnost přechodu, jejíž vyjádření bude použitelné pro MAP algoritmus: . Tento výraz může být zjednodušen např. tím, že je vyjádřený v logaritmické podobě. Výsledný dekodér pak vypočítává hodnotu logaritmu prav, ze které lze získat hodnoty děpodobnosti pravděpodobnosti extrinzické informace. Typickou hodnotou je zisk několika dB proti ekvalizeru bez použití tohoto výpočetního algoritmu, který tvoří jádro turbo ekvalizeru. Obr. 7-2, převzatý ze zdroje [49], srovnává systém s použitím sériově řetězeného turbo kódu, jehož skupinové schéma je v horní části Teoretické principy přístupu k internetové síti – 119 Obr. 7-2: Skupinová schémata sériového řetězení a principu turbo ekvalizace [49] obrázku se systémem s turbo ekvalizací, jeho skupinové schéma je ve spodní části obrázku. Vysílací strana zde připravuje zprávu tak, aby vlastnosti kanálu, které zahrnují vlivy ISI (intersymbol interference), mohly být dekódovacím algoritmem sériově řetězených kódů vyhodnoceny. Turbo ekvalizaci tedy můžeme označit za iterativní ekvalizační a dekódovací technika pro přenos kódovaných dat. V digitálních komunikacích se pojmem turbo ekvalizer označuje typ přijímače, který je používán pro příjem zprávy, ve které jsou chyby označované jako mezisymbolová interference ISI (intersymbol interference). Jak vyplývá z předchozího textu, nejedná se pouze o zpracování zprávy na 120 – Vybrané aspekty návrhu webových informačních systémů straně příjmu, ale vyslaná zpráva musí odpovídat předpokladům, které vytvářejí situaci, která je formálně podobná řetězení kódů, kdy za druhý kodér, ovlivňující vyslanou zprávu je považován přenosový kanál. Turbo ekvalizaci je možné popsat jako iterativní ekvalizační a dekódovací techniku, kterou se dosahuje skutečně mimořádných vlastností komunikačních systémů a přenosu dat komunikačním kanálem, který vyžaduje ekvalizaci, tedy takového komunikačního kanálu, který trpí mezi-symbolovým rušením ISI (Intersymbol Interference). V tomto textu je vedena diskuse o turbo ekvalizaci, tedy o postupu, který se uplatňuje při přenosu dat ISI kanálem, s důrazem na základní myšlenky a některé praktické podrobnosti. Původní systém uvedený v [52] může být považován za rozšíření dekódovacího algoritmu turbo kódu při zahrnutí jevu, který nastává v ISI kanálu, jako další ochrana proti vzniku chyb, např. jako konvoluční kód s kódovým poměrem 1. Grafické modely turbo kódů a kódů s řídkými maticemi – LDPC (Low Density Parity Check) – kódů, spolu s různými iterativními algoritmy pro jejich dekódování, má zásadní dopad na dramatické zlepšení účinnosti kódových technik [45] – [47]. Pro přehled o grafických modelech kódů připomeňme i práci [47]. Množství výzkumných prací spojených s touto tématikou v posledním desetiletí byl příčinou toho, že bylo vytvořeno mnoho algoritmů pro komunikaci a zpracování signálů, které působily podobným účinkem na široký okruh problémů [49] – [57]. Původní systém uvedený v [46] se stal myšlenkou pro ekvalizaci Teoretické principy přístupu k internetové síti – 121 a dekódování. Snažíme se nalézt náhled na turbo ekvalizační postup s algoritmickým popisem a intuitivním vysvětlením každého kroku používaného v návrhu takového komunikačního systému. Obr. 7-3: Část a) popisuje kodér a blok prokladu na vysílací straně a ISI kanál (tučně) pro přenos zprávy. V části b) je uvedeno uspořádání vlastního jádra výpočtu turbo ekvalizace a dekódování přijaté zprávy. V tomto textu je uveden přehled turbo ekvalizace s důrazem na koncepční uspořádání i na zpoždění způsobené výpočetní náročností (algoritmů), které budou rozebírány v následujícím textu. Výklad se bude soustředit na komunikační spoj. Jeho uspořádání ukazuje Obr. 7-3, v němž je uvedena konfigurace digitálního vysílače jako část komunikačního spoje. Tyto základní části jsou obsaženy v komunikačních systémech jako nedílná součást jak vysílací, tak přijímací strany spoje a jsou zařazeny jako podmínka použití turbo ekvalizace v přijímači. 122 – Vybrané aspekty návrhu webových informačních systémů Úloha kodéru, který je prvním blokem skupinového schématu na Obr. 7-3), je převést (zakódovat) sekvenci binárních dat do podoby schopné přenosu kanálem, který je zdrojem rušení. Data, která jsou na výstupu kodéru obsahují kromě původních dat také přídavné redundantní informace, které mohou být využité pro ochranu informace ve zprávě, pokud došlo k výskytu chyby v průběhu přenosu. Existuje mnoho prakticky použitelných metod pro výpočet těchto redundantních informací ve formě předpisů pro kódovou ochranu zpráv ECC (Error Control Code). Metoda se uvádí také pod názvem FEC – Forward Error Correction. Kódování provádí kodér konvolučního kódu, který se v praxi pro tento účel používá. Úlohou FEC tedy je chránit data před náhodnými jednobitovými chybami nebo před krátkými shlukovými chybami, které se mohou vyskytnout v datovém toku jako výsledek aditivního šumu, který má původ v přenosovém kanále nebo v přijímači. Aby bylo zajištěno, že se nejedná o dlouhé shlukové chyby, je použit blok prokladu, který zajistí náhodné rozmístění chyb ve zprávě. Proklad je proveden před odesláním zprávy. Tento proces je plně reversibilní a jednoduše realizovatelný i v přijímači. Nakonec jsou permutované bity převedeny do úrovní elektrických signálů, které mohou být modulovány buď v základním pásmu nebo na příslušnou nosnou pro přenos kanálem s pásmovým omezením kmitočtů. Tradiční metody ochrany dat používané v ECC nepracují uspokojivě, pokud přenosový kanál působí zkreslení označované jako ISI (Intersymbol Interference). Pro ekvalizaci jsou zpravidla Teoretické principy přístupu k internetové síti – 123 doporučovány metody používané pro odstraňování nedostatků přenosového kanálu. Dokonce když použité přenosové prostředí není přirozeně rozptylující tedy dispersní, může být prospěšné použít filtrace – tedy úpravy kmitočtového pásma, v prakticky použitém komunikačním systému, kde je ISI se stává ekvalizace nezbytým krokem komplexního řešení. Pozoruhodný účinek turbo kódů se dá vysvětlit tím, že tok informace je potřebný nejenom v jednom směru. Dekódování kódového zabezpečení působí, že se generuje vlastní relativní pravděpodobnost přenášených bitů. Tato „soft“ informace z dekodéru může pak být proložena a vzata v úvahu v ekvalizačním procesu, vytvořením zpětné vazby mezi ekvalizerem a dekodérem, v níž je vzata v úvahu relativní pravděpodobnost každého bitu s ohledem na jeho hodnotu. Tento proces je možné nazvat například „přenos naděje“ nebo „průchodnost zprávy“ a má mnoho důležitých styčných bodů s metodami umělé inteligence, statistického odvozování a teorií grafů. Zpětnovazební struktura, popisovaná zde, je zobrazená na obr. 3 b) a je podstatnou podmínkou uskutečnění turbo ekvalizace. Dekódovací algoritmus je jednoduchý a rychlý jak pro ekvalizer, tak i pro dekodér. Zpětnovazební smyčka má v celém procesu délku dva kroky: ekvalizer informuje dekodér o daném jednotlivém bitu a následně dekodér informuje ekvalizer, že už to ví. Aby se zabránilo krátkým cyklům ve zpětné vazbě a aby nebyla nalézána lokální minima a limitní cykly chování v tomto procesu, je vyhodnocování vztaženo vždy k jinému bitu. 124 – Vybrané aspekty návrhu webových informačních systémů Vyžaduje to tedy, aby oba procesy byly odděleny blokem prokladu (interleaver) a blokem zpětného prokladu (deinteleaver). Úlohou přijímače je, aby vyhodnotil data, která byla přenesena. Použije k tomu informace o tom, jak je kanál zatížen šumem a také informace o vybavení přenášených dat redundancí, která byla zanesena do dat ve formě kódového zabezpečení ECC (Error Control Code), aby je před šumem ochránila. Zatímco ECC samotné bude chránit data před vlivem (nezávislého) aditivního šumu, bude mezisymbolová interference ISI (Intersymbol Interference) působit tak, jako by docházelo ke vzájemnému ovlivňování jednotlivých symbolů (zprávy), jako by se zaváděla vzájemná závislost mezi symboly. Z důvodu složitosti byly tyto činnosti prováděny odděleně s tím, že docházelo k omezení vzájemného ovlivňování mezi těmito bloky činností. Tím se ovšem podstatně snižovala účinnost těchto činností, které vlastně vzájemně souvisejí. Hlavním přínosem většiny prací o turbo ekvalizaci je jejich proveditelnost v podobě, při níž nejsou oddělenými činnostmi. Výsledkem je tedy překonání rozdílu ve výkonnosti algoritmů prováděných odděleně a algoritmů, které umožňují působení založené na výměně informací při jejich souběžném provádění. Toto optimální spojení činností, které jsme si zvykli chápat odděleně totiž ekvalizace a dekódování tedy přináší překonání této (uměle vytvořené) mezery a možnost přiblížit se tzv. Shannonově limitu. Toto přiblížení umožní v budoucnu doTeoretické principy přístupu k internetové síti – 125 sáhnout hodnoty . Tuto hodnotu známe již dnes, ale dosud nebyla v praxi dosažena. Pro digitální komunikaci, kde je M-ární diskrétní kanál realizován přenosem M-árně modulovaného signálu, lze vyslovit důležitý závěr: Je-li kapacita sdělovacího kanálu menší, než informační rychlost, nelze žádným modulačním způsobem dosáhnout nižší pravděpodobnosti chyby symbolu, než je určitá nenulová hodnota dolní meze. A naopak, nutnou podmínkou snížení pravděpodobnosti chyby symbolu na libovolně malou hodnotu je, aby kapacita kanálu byla větší, než informační rychlost vysílaných symbolů. Přirozeným začátkem pro odvozování v tomto textu je optimální příjem, který může být popsán tím, že je dosahováno minimální hodnoty pravděpodobnosti chyby pro každý bit dat . Je dobře známo, že tohoto stavu je dosaženo na hodnotu , při které je nastavením maximální à posteriorní pravděpodobnost (APP) přijaté posloupnosti y, tedy: (2) Protože binární složky vektorů jsou soustředěné jako bity , je obvyklé pracovat s logaritmicky vyjádřenými poměrnými veličinami log-likelihood ratios (LLRs) spíše než s pravděpodobnostmi. Veličiny LLR jsou pro binární proměnnou veličidefinovány výrazem: nu (3) 126 – Vybrané aspekty návrhu webových informačních systémů Veličiny LLR obsahují stejné informace jako odpovídající dvě pravděpodobnosti . Jejich poměr, (tedy to zda je větší nebo menší než vyjádřený jako logaritmus) je výhodný proto, že se liší znaménkem. Ve speciálním případě, kdy , bude . Podobně můžeme definovat podmíněné LLR binární veličiny pro danou veličinu : (4) Rozhodovací pravidlo tak může být podle (2) zapsáno jako: < (5) Hlavním problémem při výpočtu MAP zůstává, že výpočet APP je náročný na výpočetní čas, jestliže y je závislé na vstupní posloupnosti datových bitů při definování podle následujícího výrazu: (6) je à priorní pravděpodobPravděpodobnost nost posloupnosti , která může být použita v relaci (6) včetně znalosti zdroje, který vytváří bity . Obvykle jsou bity považovány za nezávislé, to znamená, že společná pravděje vypočítána jako . Popodobnost užitím APP rozkladu ve výrazu (6) a vyjádření dostáváme následující relaci (7): Teoretické principy přístupu k internetové síti – 127 (7) Veličina je extrinzická informace o poobsažená ve výstupním přijatém y. sloupnosti Je to à priorní informace o . Extrinzická LLR hraje klíčovou roli při vyhodnocování soustavy rovnic turbo ekvalizace. Jestliže bity jsou obvykle považovány za bity s normálním rozdělením, znamená to, že nabývají hodnot 0 nebo 1 tak, že . Jak plyne z (6) přijímač se v praxi málo uplatní, protože musí mít velké délky bloku dat K. Veličina . Ve totiž exponenciálně roste ve výrazu speciálních případech, v nichž paměť použitá při prokladu bude pouze střední velikosti, bude možné uspořádat výpočty tak, aby byly účinnější. Uvažujme dvě různá vyjádření algoritmy při úloze ekvalizace, zejména mřížkové metody a ekvalizační metody založené na lineární filtraci. Typickou úlohou při použití mřížkové metody je řešení detekce symbolů algoritmem MAP [47] a detekce symbolů algoritmem maximum-likelihood (ML) [45]. Detekce symbolů algoritmem MAP jednoduše použije relace (2), přičemž se zanedbává působení kódu. Stanovuje se tedy hodnota 128 – Vybrané aspekty návrhu webových informačních systémů symbolu z intervalu tak, aby byla maximální à posteriorní pravděpodobnost (APP) . relace Popis mřížkou (Trellis Diagram) odstraňuje slo. Podobný přístup, tožitost výpočtů APP tiž oddělení ekvalizace a dekódování, lze použít, jestliže pracujeme s náhodnými veličinami , které jsou IID (Independent and Identicave výrazu lly Distributed). To znamená, že nabývají hodnot +1 a -1 pro všechna k. Pro odvození efektivního algoritmu pro výzačneme výpočtem pravděpodobnosti, počet se kterou se přenese posloupnost cestou v mřížce obsahující větev popsanou čtveřicí . Tento APP může v čase k, to je být vypočítán efektivně pomocí dopředního/zpětného algoritmu [47], který je založen na vhodném rozkladu společného rozdělení , . Poto je dáno relací sloupnost může být zapsána jako . Použitím pravidla řetězení (chain rule) pro společné pravděna tento výraz, obpodobnosti držíme následující rozklad pro : (8) Výraz může být vypočítán rekursí: (9) Teoretické principy přístupu k internetové síti – 129 s počáteční hodnotou lení stavů v čase k = 0. Výraz vypočítáván rekursí: při rozděmůže být (10) s počáteční hodnotou pro všechna Výraz může být dále rozložen na: . (11) pravděpodobnost přechodu je nulová jestliže indexový pár není v . Pro páry , které jsou v , je symbol řízen (ovládán) příslušným symbolem a pravděpodobnost je řízena odpovídajícím výstupním symbolem , tedy: (12) , Například výraz ale výraz je nula. Z relace (1) popisua z rozložení šumu jící kanál, tedy plyne, že Dále sestavíme , tři pravděpodobnosti abychom obdrželi APP . Vše, co nyní potřebujeme je to, že máme dokončit tuto úlohu sečtením pravděpodob, které odpovíností všech větví APP dají symbolu , tedy: 130 – Vybrané aspekty návrhu webových informačních systémů (13) Ve srovnání s tím, MAP ekvalizace vystačí s jednoduššími operacemi lineární filtrace na přijatých symbolech, které jsou obvykle aplikovány postupně na podmnožinu z pozorovaných symbolů . Je zde zřejmé zlepšení o 2dB parametru SNR pro případ použití „měkké“ informace. Naneštěstí i nejlepší vyhodnocení (MAP detekce a dekódování symbolů) je stále 7,7 dB vzdáleno od Shannonova limitu -1,6 dB SNR při četnosti chyb BER = 10-5. Nevýrazný nárůst zisku při oddělených činnostech ekvalizace a dekódování je způsobený velkým počtem nezávislých předpokladů při výměně „měkké“ informace. Modelem výpočtu je IID mopracudel. Při detailním výpočtu APP jeme s předpokladem symbolu z množiny všech možných symbolů, kterých je , jako množiny posloupností vektoru , tedy s předpokla. Nicméně dem pravděpodobnosti vektoru existuje pouze platných sekvencí vektoru , z nichž každá přísluší platnému slovu . Ekvalizer tedy vypočítává APP následovně: (14) kde . Při použití tohoto postupu by byl zisk značně lepší, zato výpočet bude mnohem komplikovanější za předpokladu, že bychom nepoužili dopředního/zpětného algoritmu založeného na zobrazení mřížkového diagramu a Teoretické principy přístupu k internetové síti – 131 museli bychom provést úplné vyhledávání. Výkonnost dopředního/zpětného algoritmu může být podstatně zlepšena, je-li k dispozici dobrá à priorní informace. Máme-li tedy dva dopřední/ zpětné algoritmy, jeden pro ekvalizaci a druhý pro dekódování, přirozeně nám napadne, vkládat do zpětné vazby APP hodnoty jednotlivých bitů, které obdržíme jedním dopředním/zpětným algoritmem aplikovaným na výpočet jednotlivých bitů jako apriorní informaci následujícího bitu. Toto je hlavní myšlenka turbo ekvalizace. Musíme zabránit vytvoření příliš silné zpětné vazby. Tento poznatek nás vede k představě extrinzické (nevlastní) a intrinzické (vlastní) informace. Je zřejmé, že podmíněná LLR bitu daná pozorováním se štěpí do extrinzické LLR symbolu obsažené v a intrinzické LLR . Z relace (7) plyne, že není . závislé na V tom případě můžeme použít dopřední/zpětný algoritmus ekvalizace tak, aby výstupy byly popsány stejnou relací, která štěpí do extrinzické informace . Při turbo ekvalia intrinzické informace zaci, jakož i při turbo dekódování obecně, je zpětnou vazbou vedena pouze extrinzická informace. Zavedení intrinzické informace (kte) do zpětné vazby, by vyrá je obsažena v tvořilo kladnou zpětnou vazbu, která by vedla k rychlé konvergenci, ačkoliv výsledek bude zpravidla daleko od globálního optimálního řešení. 132 – Vybrané aspekty návrhu webových informačních systémů Proto jsou do iterativní smyčky vkládány bloky prokladu (interleavers), obnovovací smyčky pro podporu rozptylování účinků přímé zpětné vazby. Zvláště proto, že dopřední/zpětný algoritmus vytváří výstup, který je vysoce korelovaný s okolím zpracovávaného symbolu. Zatímco tato formulace turbo ekvalizačního algoritmu je založena na dvou dopředních/zpětných algoritmech, jakákoliv dvojice ekvalizačních a dekódovacích algoritmů může těžit z výpočtu „měkké“ informace tím, že tato veličina je základní pro turbo ekvalizer. Jednoduchým nahrazením operace jinou operací , ve které je ekvalizační algoritmus, který má přiřazeny přijaté symboly a „měkké“ hodnoty vstupů z dekodéru a převádí je do „měkkých“ hodnot výstupů, aby mohly být zavedeny zpět do dekodéru. Například lineární MMSE ekvalizer může využít výhody hodnoty apriorní LLR , která je interpretována jako pravděpodobnost přenášeného symbolu . Právě proto, že algoritmus dopřední/zpětné ekvalizace, ve kterém je zabráněno krátkým zpětnovazebním cyklům, jsou výpočty tynení funkcí pické tím, že akceptují, že při stejném indexu . Tato skutečnost je ekvivalentní operace extrakce extrinzické části informace při iterativním procesu. Rovněž poznamenejme, že existuje několik jednodušších způsobů opakovaného odhadu [50]. Teoretické principy přístupu k internetové síti – 133 Turbo ekvalizace přináší spolehlivou dnes již technologicky zvládnutou a poměrně jednoduše realizovatelnou metodu komunikace ISI kanálem [48]. Metoda je úzce spjata s posledními pracemi o turbo kódech, kódech s řídkou kontrolní maticí a iterativními dekódovacími algoritmy. Zřejmý je přínos i v oblasti přenosu zpráv pomocí optických vláknových spojů, které pracují s nejvyššími dosažitelnými rychlostmi přenosu zpráv [51 – 55]. Požadavky služeb multimediálních komunikací ovšem přinášejí stále nové nabídky, například 3D video apod. 134 – Vybrané aspekty návrhu webových informačních systémů Případová studie internetové aplikace Libuše Svobodovová 8 V současné turbulentní době stále vznikají nové možnosti ve všech oborech. Společnost a prostředí se neustále mění a vyvíjí. V posledních patnácti letech došlo v České republice k masivnímu rozvoji a využívání webových aplikacínejen v podnikové sféře, ale i v běžném životě občanů. Tyto změny se projevily i v oblasti her a simulátorů. Důležitost hraní her a hry samotné však zůstávají. Co se však mění je forma a nástroje, které jsou ke hrám využívány. Dříve byly hrány nejvíce hry face to face. Ty jsou stále více a více hrány na osobních počítačích, v mobilních telefonech, pomocí tabletů či herních konzolí a dalších vyspělých technologií. Jak bude uvedeno dále, hry můžeme různě kategorizovat, např. dle úrovně vzdělání, vstupních znalostí, organizovanosti a vymezeného času na hraní, dle počtu uživatelů, jazykových mutací a další. V této kapitole se zaměříme především na typ her a simulátorů, které mají za cíl vzdělávat v oblasti financí a k jejichž hraní využíváme webové aplikace. Konkrétně se budeme věnovat aplikacím z investiční oblasti, tedy investování do cenných papírů, komodit, indexů či obchodování s měnami. Vzhledem k neustálému vývoji na finančních trzích využívají zkušenější investoři k monitorování vývoje i tablety a mobilní telefony. Pro ty, kteří s obchodováním teprve začínají, jsou informace přehlednější na počítačích, a proto bylo při testování jednot- livých aplikací využíváno počítačů. Aktivizace, motivace a konstruktivismus Pomocí aktivního přístupu při investování bývají investoři často motivováni k získání dalších informací a ke zkoušení různých variant investování. Aktivizace a motivace jsou jednou z nejdůležitějších složek vzdělávání a získávání znalostí a schopností. Jednou z možností aktivizace může být i hraní her, které mají za cíl vytvářet radost či působit relaxačně, ale také rozvíjet a vzdělávat. Tak, jak se vyvíjela společnost a jak se mění globální svět, se vyvíjí i hry. Zatímco počítače byly vyvinuty pro potřeby armády, jejich role a možnosti se stále rozrůstají a vývoj technologií zasáhl i do oblasti her. Smyslem vývoje počítačových her tak není pouze zábava a vzdělávání, ale i demonstrace technických možností doby. Počítačové hry a simulátory mohou pozitivně stimulovat různé lidské schopnosti a osobnostní rozvoj. Tak jako většina věcí však mají své klady i zápory. Pozitiva v sobě skrývají rozvoj představivosti, logického uvažování, matematických, strategických, ekonomických a dalších schopností. Mezi výhody můžeme také řadit používání v domácí přípravě na výuku, obsah motivačních prvků či např. umožnění aktivní práce hráčů s informacemi. Negativy pak mohou být závislost na počítačových hrách, odtržení od reality a uzavření se, zhoršení komunikačních schopností face to face, agresivita a další. Hraní her často zvyšuje motivaci k pochopení složitější problematiky, pomáhají lépe zafixovat znalosti a podporují rozhodovací procesy. Hráči poté často touží poznat více a více v dané oblasti, 136 – Vybrané aspekty návrhu webových informačních systémů aby dosáhli kýžené mety. Sami poté často dobrovolně sledují danou oblast a pronikají hlouběji k jednotlivým tématům. Nejen skvělé výsledky, ale naopak i ty špatné a prohry vedou k dalšímu poznávání. Některé mohou sice odradit, ale mnohem častěji motivují k tomu, aby hráči získali lepší výsledky. Hry a simulátory mohou být využívány při vzdělávání ve školách, ale i při sebevzdělávání a při volnočasových aktivitách. S hraním her a výukovým software se tak můžeme setkat nejen ve školních lavicích, ale stále častěji i mimo školu a i u stále mladších jedinců. Podle toho, pro jakou cílovou skupinu jsou určeny, zahrnují více či méně vzdělávacích prvků. Zatímco malé děti mohou nalézt zábavu a rozvoj jejich osobnosti v dominu či v pexesu, děti základní školy v plnění úkolů, které je např. posunou do vyššího levelu ke složitějším úlohám, studenti středních či vysokých škol v řešení složitějších úloh a situací. Hry mohou být využívány i při rozvoji a vzdělávání či při odpočinku dospělých. K tomu mohou sloužit různé simulátory či trenažéry a i hry, kde se např. střílí, mohou přinést svůj užitek. Jak bylo uvedeno v Úvodu, v této kapitole se zaměříme na webové aplikace, které simulují investování do cenných papírů, komodit, indexů či obchodování s měnami. Investoři mohou díky simulovanému prostředí, které kopíruje to reálné, pochopit základní vazby, na kterých stojí principy ekonomiky a investování. Přínosným bývá i zkoušení různých možností, které by člověk v reálném investování nevyzkoušel, protože by nepodstupoval takové riziko. Díky fiktivním penězům, které má uživaPřípadová studie internetové aplikace - 137 tel k dispozici, může vyzkoušet různé varianty investování bez obav o ztrátu skutečných peněz. Při vzdělávání a hraní investičních her jsou obvykle používány prvky konstruktivismu. Je podněcována aktivita, je pracováno s předchozími zkušenostmi, je uplatňováno zkušenostní učení a je zajištěno propojení s praxí. Dále jsou používány heuristické metody (např. pokus a omyl), je uplatňován princip postupné podpory a samostatná práce. V neposlední řadě jsou rozvíjeny kooperativní formy učení, jsou podpořena myšlení investorů problémovým zadáním a často je používána i diskuse. Jsou podporovány primární zdroje a jsou rozvíjena rozmanitá hlediska. V neposlední řadě je podporována i reflexe procesu učení a je pracováno s chybou, díky čemuž se mohou investoři lépe rozvíjet. Kategorizace počítačových investičních her a simulátorů Volba vhodné didaktické počítačové hry či simulátoru v sobě skrývá jak volbu výukového cíle, kterého má být při vzdělávání dosaženo, tak věk a úroveň psychického vývoje hráčů či např. schopnosti vyučujícího integrovat hry do výuky či volného času či podmínky realizace, pod kterými se skrývá potřebné HW a SW vybavení a další. Existuje velká škála kritérií, podle kterých můžeme kategorizovat počítačové hry. Níže jsou uvedeny ty nejpodstatnější pro investiční hry a simulátory. 138 – Vybrané aspekty návrhu webových informačních systémů Dle úrovně vzdělávání: •Střední školy •Vysoké školy •Celoživotní vzdělávání Dle vstupních znalostí: •Stačí základní znalosti •Jsou vyžadovány hlubší znalosti z dané problematiky Dle organizovanosti vzdělávání: •Výuka ve škole •Samostudium Dle dostupnosti internetu a potřeby instalace dalších aplikací: •On-line, přímo ve webovém prohlížeči •Je třeba nainstalovat program, který je propojen s on-line verzí Dle vymezeného času na hraní: •Možno spustit kdykoliv bez návaznosti na další skutečnosti •Předem vymezený čas (např. různé soutěže) Dle počtu uživatelů: •Pro jednoho hráče •Pro více hráčů Dle jazykových mutací: •Jednojazyčné •Vícejazyčné Případová studie internetové aplikace - 139 Dle složitosti prostředí: •Rychlé, jednoduché a intuitivní pochopení •Složité ovládání a proniknutí do všech možností Aplikace nebudou porovnávány dle finanční náročnosti, protože jsou všechny zdarma. I přesto, že se ve všech případech jedná o zkušební verze, vše vypadá jako reálné. V neposlední řadě nebylo porovnáváno poskytování zpětné vazby, protože u všech investic je přehledně zobrazen jejich vývoj a jsou přehledně patrné změny hodnoty a naše výsledky. Vybrané investiční hry a simulátory Na současném trhu (Analýza byla prováděn v roce 2012, pozn. red.)je k dispozici mnoho her, které mohou být využívány k investování do cenných papírů. Do této kapitoly jsou vybrány ty, které jsou nejvíce známy a rozšířeny: •Patria Direct – Stock Market Challenge •Patria Forex •Fio banka + RM systém – Student Broker •Fio banka – e-Broker •Citfin – Investiční online hra •Plus500 Patria Direct - Stock Market Challenge Od 15. října do 7. prosince 2012 se mohli začínající i zkušení investoři zapojit do sedmého kola soutěže Stock Market Challenge, v níž jde o co nejvyšší zhodnocení portfolia pomocí vlastního brokerského účtu na platformě Stock Trak. Hra je otevírána již čtvrtým rokem – vždy na jaře a na podzim. Někteří investoři se zapo140 – Vybrané aspekty návrhu webových informačních systémů jují více kol po sobě a snaží se využít jejich znalosti z kol předchozích. Výherci soutěže se mohou stát pouze studenti vysokých škol v České republice. Při registraci však ke kontrole nedochází, a tak si investování a soutěžení může vyzkoušet i ten, kdo není studentem vysoké školy (tedy studenti středních škol či další). Ti, kteří se nechtějí porovnávat s ostatními či chtějí vyzkoušet investování mimo předem vymezený čas, mohou využít obchodní platformu Patria Forex, která bude popsána v další části. Webová platforma není využívána pouze v České republice, ale i v dalších zemích. Portfolio může být složeno z akcií či z opcí. Investoři na začátku obdrží virtuální částku 100.000 EUR. K dispozici mají obchodování s cennými papíry na burzách v Evropě a v Severní Americe do mnoha akciových titulů a jiných instrumentů v jejich reálných časových cenových poptávkách. V důsledku burzovních pravidel webové stránky zobrazují opožděný odhad ceny po uplynutí 15 – 20 minut, ale příkaz je prováděn v reálném čase nabídky či poptávky. Jak bylo uvedeno výše, jedná se o soutěž, a tak jsou hráči motivováni k co nejlepším výsledkům. „Účelem hry není dosáhnout krátkodobého zisku, ale svědomitě se starat o svěřené prostředky po dobu dvou měsíců. Vítězem soutěže je hráč s nejvyšším zhodnocením portfolia na konci hracího období. Vyhrát lze také dílčí ocenění za nejlepší zhodnocení během některého ze 14-denních úseků.“ Hráči mohou neustále hodnotit, jak si vedou jejich akcie či sledovat pokrok oproti ostatním investorům. Jsou zveřejňováni Případová studie internetové aplikace - 141 nejlepší investoři po týdnech, měsících a za celou dobu trvání soutěže. Po 40 dnech se do hry zapojilo takřka 500 investorů. Hra má i svá omezení: Stock Market Challenge chce podporovat racionální způsob investování. Na portfolia fiktivních portfolio manažerů proto kladou následující podmínky: •Hodnota jedné akcie nesmí přesáhnout 25 % hodnoty portfolia •Maximální počet provedených transakcí je 200 za celou dobu hry •Minimální cena akcie pro prodej je 5 EUR •Minimální cena pro prodej na krátko (short sell) je 3 EUR Součástí webové platformy je přehledný herní manuál, kde jsou uvedeny základní informace ke hře, základní tipy k investování, ale i podmínky, které musí hráč splňovat. Vedle herního manuálu jsou k dispozici pravidla, která obsahují základní pojmy z oblasti investování. Investory zde mohou zmást data ke hraní (uvádí registrační období z roku 2011 – tedy od 17. října do 9. prosince 2011). Investorům jsou k dispozici i čtyři modelová portfolia. Do webové platformy je od předchozí verze začleněno i on-line propojení na reálná zpravodajství z trhů Patria Online a na monitoring reálných investičních doporučení. Pro ty, kteří se dříve nesetkali s touto problematikou, mohou nejdříve využít teoretického zázemí v Investiční akademii, kde je řešen úvod do investování, analýza a strategie investice, money management a tipy k investo142 – Vybrané aspekty návrhu webových informačních systémů vání a další vzdělávací články. Díky tomu si mohou hráči doplnit jejich investiční vzdělání online. Na stránkách nechybí odkazy na semináře, které jsou pro všechny přihlášené účastníky zdarma. Pro ty, kteří se chtějí dozvědět více, je uveden i dostatek odborné literatury. Investování může probíhat jak v jazyce českém, tak je možné kdykoliv přepnout na verzi anglickou. Díky tomu si mohou investoři ověřovat či získávat terminologii i v jazyce anglickém. Prostředí je přehledné a intuitivní. K obchodování je však třeba znát základní terminologii a Obr. 8-1: Prostředí Stock Market Challenge - seznam otevřených investic podmínky investování. Tvůrci se snaží sledovat aktuální trendy a potřeby cílové skupiny. Hra je propojena s Facebookem, kde jsou pravidelně Případová studie internetové aplikace - 143 zveřejňovány informace. Nevýhodou této aplikace může být skutečnost, že hra má přesně vymezené časy pro investování, pouze dvakrát v roce na necelé dva měsíce. Společnost Patria Direct připravuje novou webovou aplikaci pro obchodování s cennými papíry (demo verzi), která bude dostupná pro všechny investory bez jakýchkoliv dalších omezení. Obr. 8-2: Patria Forex - zobrazení podkladů k nákupu či prodeji Patria Forex Pro ty, kteří si chtějí zdarma a bez rizika vyzkoušet obchodování s měnovými páry, komoditami a akciovými indexy, slouží moderní obchodní platforma Patria Forex. Po rychlé registraci mohou investoři využívat demo účet po dobu 30 144 – Vybrané aspekty návrhu webových informačních systémů dní s 50.000 USD. Při každém spouštění aplikace je možnost spustit demo či „real“ verzi. Obchodní platforma může být využívána na PC, v chytrých mobilních telefonech i v tabletech. Před začátkem užívání je třeba nainstalovat aplikaci do počítače, mobilního telefonu či tabletu. Při ztrátě internetového spojení nelze obchody uskutečňovat. Uživatel si může vybrat dvě verze – českou a anglickou. V aplikaci je patrné, že lze nainstalovat i jiné jazyky. Může tak být využívána v sedmnácti jazykových mutacích. Nedílnou součástí webové aplikace je i záložka vzdělávání, která obsahuje komplexní informace potřebné k obchodování. Jsou zde zveřejněny semináře, základní terminologie a slovník, ale i velmi detailní studijní materiály, rady pro investory, akademie, přehledný videoprůvodce a odkazy na další odbornou literaturu. Samotné prostředí je přehledné. Obchodování napomáhají i grafy přímo v aplikaci či v propojení na aplikaci Marketscope 2.0, kde lze přímo v grafech také uskutečňovat obchody. Finanční skupina Fio a RM-SYSTÉM, česká burza cenných papírů a.s. - program StudentBroker RM-SYSTÉM, česká burza cenných papírů a Fio, burzovní společnost, největší tuzemský on-line broker připravili studijní interaktivní program, který může být využíván při výuce na českých vysokých školách s ekonomickým zaměřením. Aplikace je přístupná pouze zapojeným školám a jejich studentům. Každá škola má svého adPřípadová studie internetové aplikace - 145 ministrátora (vyučujícího), který může vytvářet skupiny pro studenty a sledovat je. Jeden subjekt může vytvořit i více skupin a sledovat tak aktivitu a výsledky studentů např. dle studijních oborů. Každý student má k dispozici virtuální 1 mil. Kč, který může investovat do českých i zahraničních akcií a v rámci části školního semestru co nejefektivněji budovat své portfolio cenných papírů dle osnov příslušné univerzity. V druhé části investiční platformy je připraveno 50.000 USD, se kterými investoři mohou vyzkoušet obchody s komoditními deriváty US futures. Konkrétními investičními nástroji v aplikaci jsou vybrané české, německé, polské a americké akcie a osm derivátů. Každá hra trvá předem vymezené časové období a investoři jsou mezi sebou srovnáváni – zvlášť dle akcií a dle derivátů. Ve webové aplikaci nechybí ani Manuál a principy aplikace, kde jsou vysvětleny základní podmínky pro přihlášení a zároveň základní podmínky pro investování. Dále jsou v prostředí řešeny FAQ (často řešené otázky). V listopadu 2012 bylo do partnerského programu zařazeno 17 institucí: •Bankovní institut vysoká škola •Česká zemědělská univerzita, Provozně ekonomická fakulta •Jihočeská univerzita v Českých Budějovicích - Ekonomická fakulta •Masarykova univerzita, Ekonomicko-správní fakulta •Mendelova univerzita v Brně •Moravská vysoká škola Olomouc •Slezská univerzita v Opavě, Obchodně podnikatelská fakulta v Karviné 146 – Vybrané aspekty návrhu webových informačních systémů •Technická univerzita v Liberci, Ekonomická fakulta •Univerzita Hradec Králové, Fakulta informatiky a managementu •Univerzita Jana Evangelisty Purkyně v Ústí nad Labem •Univerzita Karlova v Praze (FSV) - Institut ekonomických studií •Univerzita Pardubice, Fakulta ekonomic- Obr. 8-3: Prostředí Student broker - nákup akcií ko-správní •Univerzita Tomáše Bati ve Zlíně, Fakulta managementu a ekonomiky •Vysoká škola báňská - Technická univerzita Ostrava •Vysoká škola ekonomická v Praze, Fakulta podnikohospodářská •Vysoká škola technická a ekonomická v Českých Budějovicích Případová studie internetové aplikace - 147 •Vysoké učení technické v Brně Výhodou aplikace StudentBroker oproti dříve popisované soutěži Stock Market Challenge je snazší sledování studentů a hodnocení jejich úsilí včetně porovnávání výsledků mezi jednotlivými institucemi. V současné době v ní však není zapojeno zdaleka tolik investorů, co v uvedené konkurenční soutěži. Obr. 8-4: e-Broker - ukázka vývoje akcií společnosti ČEZ Fio - e-Broker Webová aplikace e-Broker umožňuje nákup a prodej akcií, derivátů nebo ETF. Investoři si mohou sestavit vlastní portfolio cenných papírů, které odpovídá jejich nastavené investiční strategii. Nevýhodou je platnost účtu. Aplikaci je možno využívat 30 dní. V demoverzi nelze využívat všechny nástroje, jako při reálném obchodování. V aplikaci lze provádět fiktivní vklady vybraných cenných papírů do portfolia a fiktivní výběry z portfolia. Aplikace je dostupná v pěti jazykových muta148 – Vybrané aspekty návrhu webových informačních systémů cích (jazyk český, slovenský, anglický, polský a maďarský). Prostředí je přehledné. Při rozhodování o investici mohou napomoci i grafy jednotlivých akcií, popis společnosti a základní informace o jejím vývoji. V prostředí se zobrazují Zprávy, které se týkají aktuálního vývoje společností. Součástí nabídky jsou i vzdělávací semináře po celé republice zdarma. Na stránkách nechybí vysvětlivky pro začátek investování, vysvětlení základních pojmů z oblasti investování i podrobné informace z dané oblasti. Citfin – Investiční hra Investiční hra od společnosti Citfin umožní vyzkoušet schopnosti při investování na devizovém trhu, tedy obchodování s cizími měnami. I přes- Obr. 8-5: Citfin - portfolio a informace o hře to, že se jedná o hru, podmínky při obchodování vycházejí z reálných podmínek na trhu. Kotace směnných kurzů jsou skutečné kurzy aktuální v Případová studie internetové aplikace - 149 danou chvíli na devizovém trhu (v rámci zjednodušení používá hra pouze středové kurzy). Ve hře je používán tzv. pákový efekt, který reálně simuluje způsob spekulativních obchodů na devizovém trhu, tzn. k pokrytí obchodu stačí část jeho hodnoty, která má za cíl krýt potenciální ztrátu. Webová aplikace opět sleduje aktuální trendy a je propojena i se sociálními sítěmi Facebook, Twitter a LinkedIn. Výhodou je, že stačí základní znalost z oblasti investic. To však vychází ze zaměření hry – neobchoduje se s akciemi, akciovými indexy, komoditami apod., k čemuž jsou třeba hlubší předchozí znalosti. Díky webové platformě je možno hru spouštět z jakéhokoliv počítače (či mobilního telefonu či tabletu) se spojením na internet. Na začátku obdrží každý hráč fiktivních 200.000 CZK. Daný obnos může libovolně investovat do nabízených měn v aktuálním kurzu na libovolně dlouhou dobu. Hra tedy nemá žádné časové omezení. Hra může být ukončena dvěma způsoby. Hráč může hru ukončit sám či druhou variantou pro ukončení hry je záporný zůstatek na účtu. Nedílnou součástí je i nápověda, kde jsou uvedeny základní pokyny k investování při obchodování s měnami. Novinkou je možnost soutěžení ve skupinách, kdy hráči mohou vytvořit vlastní skupinu a v rámci ní mezi sebou soutěžit o co nejlepší výsledky. I bez zařazení do skupiny lze přes nástroj Statistiky sledovat rentabilitu investic za námi zadaná časová období za všechny hráče. K 23.11.2012 je spuštěno 1.132 aktivních her. Plus500 150 – Vybrané aspekty návrhu webových informačních systémů Obchodování na platformě může být prováděno buď pomocí webové aplikace či je umožněno stáhnout bezplatný software, který je s internetem propojen. K investování je třeba zaregistrovat se a otevřít si účet. Dále je možno začít obchodovat s 300.000 CZK demo penězi. Webová aplikace umožnuje nastavení třiceti sedmi jazyků. Obr. 8-6: Plus500 – vývoj společnosti G. Electric a informace k demo účtu Investice mohou být velmi rozmanité. Možnostmi pro investování jsou: •Měny (forex hlavní, hlavní II, vedlejší) •Komodity (ropa, zlato, zemní plyn, stříbro, měď, topný olej a další) •Indexy (Česká 15, USA 30, Řecko 20, Evropa 50, Itálie 40, Německo 30 a další) •Akcie (populární, české, dále seřazeno dle zemí) Jedná se tedy o jedno z nejkomplexnějších proPřípadová studie internetové aplikace - 151 středí pro vyzkoušení obchodování. Pro demo účet není stanoven časový limit pro investování. Všechno je stejné jako za skutečných obchodních podmínek. V demo účtu je možno kdykoliv přepnout na skutečné peníze a přejít na reálné obchodování. Investoři mohou vyzkoušet nastavení, kontrolu a mohou simulovat obchodní strategie včetně pákového obchodování. K dispozici je možno kdykoliv využít online nápovědu a podpůrný tým. Jak bylo uvedeno dříve, nejedná se o komplexní výčet všech dostupných simulátorů v českém jaTab. 8-1: Celkové srovnání aplikací, část I. Stock Market Patria Forex Challenge Student Broker Úroveň vzdělávání Vysoké školy Střední školy Vysoké školy Organi zovanost vzdělávání a počet uživatelů Soutěž Samostudium Soutěž Dostupnost internetu On-line verze Stáhnutí aplikace On-line verze Vstupní znalosti Vhodné znát Vhodné znát základní základní terminologii terminologii Vhodné znát základní terminologii Jazykové mutace Český a an- 17 jazyků glický jazyk včetně českého Český jazyk Sociální sítě Ano Ne Ne Složitost prostředí Přehledné a intuitivní, ale více možností Přehledné a intuitivní, ale mnoho možností Přehledné a intuitivní, ale mnoho možností 152 – Vybrané aspekty návrhu webových informačních systémů Tab. 8-2: Celkové srovnání aplikací, část II. e-Broker Citfin Plus500 Úroveň vzdělávání Střední školy Střední školy Střední školy Organi zovanost vzdělávání a počet uživatelů Samostudium Samostudium i možnost soutěže Samostudium Dostupnost internetu On-line verze On-line verze On-line verze, možno stáhnout aplikaci Vstupní znalosti Vhodné znát základní terminologii Nejsou třeba velké předchozí znalosti Vhodné znát základní terminologii Jazykové mutace 5 jazyků včetně českého Český jazyk 37 jazyků včetně českého Sociální sítě Ne Ano Ne Složitost prostředí Přehledné a intuitivní, ale mnoho možností Lehké Přehledné, intuitivní, nejsložitější zyce. K dispozici je také např. obchodní platforma Brokerjet ProTrader, která je součástí České spořitelny a která je členem bankovní skupiny Erste Group. Další využívanou platformou Případová studie internetové aplikace - 153 je např. aplikace od instituce X-Trade Brokers, která je dostupná kdykoliv či jejich pravidelné soutěže – např. XTB Trading Cup, kdy dochází k porovnání investorů z jedenácti evropských zemí či jimi pořádané soutěže pro juniory. Předchozí popisy jednotlivých aplikací pro investování shrnují tabulky Tab. 8-1 a Tab. 8-2. Shrnutí V kapitole jsme se věnovali aplikacím, které mohou být mnohými vnímány buď jako simulátory nebo jako hry a soutěže. Tyto aplikace napomáhají k lepšímu pochopení teorie, kterou mnozí získávají z dostupné literatury. Při porovnání a popisu byly vybrány ty simulátory, které řeší různé oblasti investování. Dalším hlediskem byl z důvodu organizování soutěží mezi investory např. čas vymezený pro investování. Vzhledem k tomu, že Stock Market Challenge a Student Broker jsou určeny studentům vysokých škol a jedná se o soutěže, jsou zařazeny do kategorie pro vysoké školy. U všech ostatních je uvedena střední škola a výše z toho důvodu, že i studenti obchodních akademií či jiného zaměření si mohou chtít vyzkoušet obchodování s cennými papíry. U Investiční hry Citfin může být pomocí nástroje Skupiny také použita soutěž a přihlášení investoři mohou mezi sebou v rámci skupiny soutěžit. Někteří investoři mohou upřednostnit použití cizích jazyků a získání základní terminologie z investiční oblasti. Pouze Investiční hra od instituce Citfin a soutěž Student Broker neobsahují možnost přepnutí do cizího jazyka. Všechny ostatní nabízejí minimálně jazyk an154 – Vybrané aspekty návrhu webových informačních systémů glický. Aplikace Plus500 umožňuje obchodování v třiceti sedmi jazycích světa. U všech simulátorů je třeba připojení k internetu. U Patria Forex je třeba stáhnout aplikaci. U Plus500 si může investor vybrat mezi instalací aplikace či webovou platformou. Všechna prostředí jsou intuitivní, přehledná, obsahují grafy a tabulky. Vzhledem ke složitosti obchodování je nejjednodušší Investiční hra od instituce Citfin, protože umožňuje pouze nákup a prodej měn. Všechny ostatní umožňují i investice do akcií či komodit či derivátů či indexů. Z toho důvodu je jejich prostředí složitější a investoři by měli mít předchozí hlubší znalosti z investiční oblasti. Pokud tomu tak není, investoři si mohou postupem pokus x omyl osvojit investování. Znalosti si mohou investoři doplnit i na webových stránkách všech simulátorů, které obsahují studijní materiály, diskuse, aktuální informace z trhů i pozvánky na bezplatné semináře či webináře. Pouze Stock Market Challenge a Investiční hra od Citfin jsou napojeny na sociální sítě. Po provedeném výzkumu a analýze her a simulátorů (Analýza byla prováděna v roce 2012, pozn. red.) lze říci, že máme v českém prostředí dostatečné množství možností, jak bezplatně a bez rizika otestovat naše schopnosti v investiční oblasti. Případová studie internetové aplikace - 155 Literatura 1.GIMP.ORG. GIMP-The GNU Image Manipulation Program. Gimp.org [online]. 2012 [cit. 2013-10-31]. Dostupné z: http://www.gimp. org/ 2.CHASTAIN, Sue. Vector and Bitmap Images. About.com [online]. ©2012 [cit. 2012-0930]. Dostupné z: http://graphicssoft.about. com/od/aboutgraphics/a/ 3.BitMapVector [online]. 2013 [cit. 2013-1031]. Dostupné z: bitmapvector.htm 4.INKSCAPE.ORG. Inkscape. Kreslete svobodně. Inkscape.org [online]. ©2012 [cit. 2013-1031]. Dostupné z: http://inkscape.org/ 5.MURRAY, James D. a William VANRYPER. Encyklopedie grafických formátů. Praha: Computer Press, a.s., 1997. ISBN 80-7226-033-2. 6.TIŠNOVSKÝ, Pavel. Seriál Grafický formát GIF-Root.cz. Root.cz [online]. ©1998-2012 [cit. 2013-10-31]. Dostupné z: http://www. root.cz/serialy/graficky-format-gif/ 7.TIŠNOVSKÝ, Pavel. Vektorový grafický formát SVG. Root.cz [online]. ©1998-2012 [cit. 2013-10-31]. Dostupné z: http://www.root. cz/clanky/vektorovy-graficky-format-svg/ 8.TIŠNOVSKÝ, Pavel. Ztrátová komprese obrazových dat pomocí JPEG. Root.cz [online]. 1998-2012 [cit. 2013-10-31]. Dostupné z: http://www.root.cz/clanky/ztratova-komprese-obrazovych-dat-pomoci-jpeg/ 9.ŽÁRA, J., B. BENEŠ, J. SOCHOR a P. FELKEL. Moderní počítačová grafika. Praha: Computer Press, a.s., 2010. ISBN 80-251-0454-0. 10. SOMMERVILLE, Ian. Software Engineering. Eight Edition. Harlow : Pearson Education Limited, 2007. 824 s. ISBN 978-0-321-31379-9. 11. CONNOLLY, T., BEGG, C., HOLOWCZAK, R. Databáze – Profesionální průvodce tvorbou efektivních databází. Computer Press, 2009. ISBN 978-80-251-2328-7. 12. ELMASRI R. and S. B. NAVATHE. Fundamentals of Database Systems. Addison Wesley, 2000. ISBN 0-8053-1755-4. 13. HERNANDEZ Michael. Návrh databází. Grada, 2005. ISBN 80-247-0900-7. 14. CHMURA, Alan and J. Mark HEUMANN. Logical Data Modeling: What it is and How to do it. Springer, 2004. ISBN 978-0387229508. MANNILA, H. and K. J. RAIHA. The design of 15. relational databases, Addison Wesley, 1994. 16. REINGRUBER, Michael C. and Wiliam W. GRELiteratura – 157 GORY. The Data Modeling Handbook: A Best Practice Approach to Building Quality Data Models. Wiley, 1994. ISBN 978-0471052906. 17. RIORDAN, Rebecca M.: Vytváříme relační databázové aplikace. Computer Press, 2000. ISBN 978-8072263608. 18. ROB, P. and C. CORONEL. Database Systems. Design, Implementation & Management. Thomson Course Technology, 2004. ISBN 0-61921372-8. 19. SCHMIDT, Bob. Data Modeling for Information Professionals. Prentice Hall, 1998. ISBN 978-0130804501. 20. SIMISON, Graeme. C. and Graham. C. WITT. Data Modeling Essentials. 3rd Edition. Morgan Kauffman Publishers, 2005. ISBN 0-12644551-6. 21. WHITTEN, Jeffrey L. and Lonnie D. BENTLEY. Systems Analysis and Design Methods. McGraw-Hill, 2005. ISBN 978-0073052335. 22. SILVERSTON, Len, W. H. INMON and Kent GRAZIANO. The Data Model Resource Book. Wiley, 1997. ISBN 978-471153641. 23. W3C. World Wide Web Consortium [online]. 2012 [cit. 2013-10-31]. Dostupné z: http:// www.w3.org/ WIKIPEDIA. Wikipedie: Otevřená encyklopedie 24. [online]. 2012 [cit. 2013-10-31]. Dostupné 158 – Moderní metody návrhu webového informačního systému z: http://cs.wikipedia.org/ 25. OWASP. OWASP: The Open Web Application Security Project [online]. 2012 [cit. 201310-31]. Dostupné z: https://www.owasp.org/ 26. OWASP. OWASP: Top 10 2010 [online]. 2010 [cit. 2013-01-31]. Dostupné z: https://www. owasp.org/index.php/Top_10_2010 27. Security-portal.cz [online]. 2012 [cit. 2013-10-31]. Dostupné z: http://security-portal.cz/ 28. VRÁNA, J. PHP triky: Weblog o elegantním programování v PHP pro mírně pokročilé [online]. 2012 [cit. 2013-10-31]. Dostupné z: http://php.vrana.cz/ 29. POKORNÝ, J. Návrh a realizace autentizační metody pro přístup k webové službě v jazyce PHP. Brno, Vysoké učení technické v Brně, Fakulta elektrotechniky a komunikačních technologií, 2010. 47 s. Vedoucí bakalářské práce Ing. Stanislav Uchytil, Ph.D. Dostupné z: http://www.vutbr.cz/www_base/ zav_prace_soubor_verejne.php?file_id=30729 30. ZEMEK, L. Bezpečnost webových aplikací. Praha, Univerzita Tomáše Bati ve Zlíně, Fakulta aplikované informatiky, 2012. 68 s. Vedoucí bakalářské práce doc. Ing. Martin Sysel, Ph.D. Brokerjet Online. Brokerjet [online]. 2013 31. [cit. 2013-10-31]. Dostupné z: https://www. Literatura – 159 brokerjet.cz/products/platforms/protrader/ demo/ 32. PatriaDirect Stock Market Challenge. Patria Forex [online]. 2013 [cit. 2013-10-31]. Dostupné z: http://campuschallenge.stocktrak. com/home.aspx# 33. CitFin. Citfin [online]. 2013 [cit. 201310-31]. Dostupné z: http://www.citfin.cz/ cz/homepage.html 34. Fio banka. Fio banka [online]. 2013 [cit. 2013-10-31]. Dostupné z: http://www.fio.cz/ 35. StudentBroker. Student Broker [online]. 2013 [cit. 2013-10-31]. Dostupné z: http:// www.studentbroker.cz/ 36. Patria Forex. Patria Forex [online]. 2013 [cit. 2013-10-31]. Dostupné z: https://www. patria-forex.cz 37. Webový obchodník Plus500. Plus500 [online]. 2013 [cit. 2013-10-31]. Dostupné z: https://trade.plus500.com/ 38. XTB Online. X-Trade Brokers [online]. 2013 [cit. 2013-10-31]. Dostupné z: http://www. xtb.cz/ 39. SILHAVY, Radek; SILHAVY, Petr; PROKOPOVA, Zdenka. Clustered Requirements in System Engineering Project Estimation. International Journal of Mathematical Models and Methods in Applied Sciences. 2011, 5, 6, s. 160 – Moderní metody návrhu webového informačního systému 1052-1059. ISSN 1998-0140. 40. Zowgi et al. Requirements Elicitation: A Survey of Techniques, Approaches, and Tools, pp. 19-49. ISBN 978-3-540-28244-0 41. Carlshamre P, Karlsson J.A usability-oriented approach to requirements engineering. In: Proceedings of the 2nd International conference on Requirements Engineer-ing, April 15–18, Colorado Springs, CO. 1996 42. CorelDRAW: Tučňák Linux. Grafika.cz - vše o počítačové grafice [online]. 2011, 13.7.2011 [cit. 2013-10-31]. Dostupné z: http://www. grafika.cz/rubriky/software/coreldraw-tucnak-linux-138646cz 43. KETTNER, Jakub. Kódování {--} Turbo kódy [online]. 2010 [cit. 2013-10-31]. Diplomová práce. Tomas Bata University in Zlín, Faculty of Applied Informatics. Vedoucí práce Miloš Krčmář. Dostupné z: <http://theses. cz/id/80kg4w/>. 44. Proakis, J.G.: Digital Communications, McGraw-Hill Series in Electrical Engineering, 2nd Edition, 1989 45. Berrou, C., Glavieux, A., Thitimajshima, P.: Near Shannon limit error correcting coding and decoding: Turbo-codes, in Proc. ICC‘93, pp. 1064-1070, Geneva, May 1993. 46. Douillard, C., Jezequel, M., Berrou, C., et al.: Iterative Correction of IntersymLiteratura – 161 bol Interference: Turbo Equalization, ETT, vol. 6, no. 5, (1995) Koetter, R., Singer, A.C., Tüchler, M.: 47. Turbo Equalization, IEEE Signal Processing Magazine, Jan. (2004), pp. 67 – 80. Lampinen, M., Haikola, V.: HSDPA MIMO Per48. formance with Turbo Equalizer, IEEE PIMRC‚06. 49. Otnes, R., Tüchler, M.: Iterative Channel Estimation for Turbo Equalization of Time-Varying Frequency-Selective Channels, IEEE Transactions on wireless communications, vol. 3, no. 6, November 2004, pp. 1918 – 1923. 50. Tüchler, M., Singer, A. C.: Turbo Equalization: An Overview, IEEE Transactions on Information Theory, vol. 57, no.2 February 2011. 51. Raghavendra, M. V., Prasad, V.: Information Capacity of Direct Detection Fiber-Optic Communication, IEEE Journal Sel. Areas Comm., Optical Comm. and Networks, vol. 26, no. 6, pp. 73 – 83, Aug. 2008. 52. Hellebrand, S., Hanik N.: Polarization-Diversity Turbo-Equalization of Polarization Mode Dispersion, JLT, vol. 25, no. 3 (2007) Djordjevic, I. B.: Mitigatition of Linear 53. and Nonlinear Impairments in High-Speed Optical Networks by Using LDPC-Coded Turbo 162 – Moderní metody návrhu webového informačního systému Equalization, IEEE J. 2008. 54. Kurorski, B. M, Yamaguchi, K., Kobayashi, K.: On BCJR State Metric Quantization for Turbo Equalization, IEEE J. 2005. 55. Wymeersch, H., Win, M. Z.: Soft Electrical Equalization for Optical Channels, In IEEE Proc. ICC 2008, pp 548-552. 56. Moon, T. K: Error Correcting Coding, J. Wiley & Sons, Inc., ISBN 0-471-64800-0, New Jersey, (2005). 57. Dobeš J., Žalud, V.: Moderní radiotechnika, BEN tech. literatura, ISBN 80-7300-132-2, Praha (2006). Literatura – 163 164 – Moderní metody návrhu webového informačního systému www.scientificpress.eu isbn: 978-80-904741-3-0 scientific press
Podobné dokumenty
PERSONALISTIKA A ŘÍZENÍ
• informační zdroje (o stavu a vývoji organizace a jejího okolí).
Co je užitečné si zapamatovat!
Primárním úkolem managementu je zajistit koordinaci a efektivní využívání zdrojů při
plnění stanov...
PowerPlus 19 - O.K.SERVIS PLUS s.r.o.
Při vypnutí elektrického zařízení (UPS) nezapomeňte vypnout také střídač, protože i po vypnutí hlavního vypínače nebo rozvaděče UPS pokračuje střídač v dodávce
elektrické energie z
akumulátorů a te...
KATALOGG ODBORNÝCH PUBLIKKACÍ NAKLADAATELSTVÍ AANAG
7. aktualizované vydání
Nově zpracované vydání je zaměřeno především na praktickou stránku
pokladní činnosti, a to ve vazbě na platnou legislativu. Naleznete
zde nejen konkrétní vzory a příklady do...
Přehled nástrojů CABE (modelování podniku) na tuzemském trhu
Mimo klasické robustní nástroje, které doposud popisovaly všechny práce, jsme se zaměřili i na oblasti FOOS
(Free and Open Source Software) a SaaS (Software as a Service), které do daného přehledu ...
Novinky zahraniční knihovnické literatury
Evropská knihovna umožňuje uživateli zvolit jazyk na vstupní stránce do TEL, seznam je řazen dle
názvu jazyka. Občas dochází k prolínání dvojjazyčných vět, což může být způsobeno stanovenými
limity...