• No results found

Diplomov´ a pr´ ace

N/A
N/A
Protected

Academic year: 2022

Share "Diplomov´ a pr´ ace"

Copied!
61
0
0

Loading.... (view fulltext now)

Full text

(1)

Technick´ a univerzita v Liberci

Fakulta mechatroniky a mezioborov´ ych inˇ zen´ yrsk´ ych studi´ı Ustav nov´ ´ ych technologi´ı a aplikovan´ e informatiky

Diplomov´ a pr´ ace

Multimedi´ aln´ı encyklopedie Multimedia encyclopaedia

Bc. Jan Klimeˇs

Vedouc´ı pr´ ace: Ing. Igor Kopetschke Konzultant: Ing. Tom´ aˇs Liˇska, FoxCom, s.r.o.

Studijn´ı program: N2612 – Elektrotechnika a informatika Studijn´ı obor: 1802T007 – Informaˇ cn´ı technologie

kvˇ eten 2009

(2)

Zde patˇ r´ı origin´ aln´ı zad´ an´ı pr´ ace

(3)

Prohl´ aˇ sen´ı

Byl jsem sezn´amen s t´ım, ˇze na mou diplomovou pr´aci se plnˇe vztahuje z´akon ˇ

c. 121/2000 o pr´avu autorsk´em, zejm´ena § 60 (ˇskoln´ı d´ılo).

Beru na vˇedom´ı, ˇze TUL m´a pr´avo na uzavˇren´ı licenˇcn´ı smlouvy o uˇzit´ı m´e DP a prohlaˇsuji, ˇze souhlas´ım s pˇr´ıpadn´ym uˇzit´ım m´e diplomov´e pr´ace.

Jsem si vˇedom toho, ˇze uˇz´ıt sv´e diplomov´e pr´ace ˇci poskytnout licenci k jej´ımu vyuˇzit´ı mohu jen se souhlasem TUL, kter´a m´a pr´avo ode mne poˇzadovat pˇrimˇeˇren´y pˇr´ıspˇevek na ´uhradu n´aklad˚u, vynaloˇzen´ych univerzitou na vytvoˇren´ı d´ıla (aˇz do jejich skuteˇcn´e v´yˇse).

Diplomovou pr´aci jsem vypracoval samostatnˇe s pouˇzit´ım uveden´e literatury a na z´akladˇe konzultac´ı s vedouc´ım diplomov´e pr´ace a konzultantem.

V Liberci 29.5.2009

. . . .

(4)

Podˇ ekov´ an´ı

Dˇekuji Ing. Igoru Kopetschkovi za veden´ı pr´ace, d´ale Ing. Tom´aˇsi Liˇskovi z firmy FoxCom, s.r.o. za odborn´e konzultace. Donaldu Ervinu Knuthovi za naprogramov´an´ı typografick´eho syst´emu TEXa Leslie Lamportovi za rozˇs´ıˇren´ı na LATEX, d´ıky tomu se psan´ı diplomov´e pr´ace usnadnilo.

D´ale bych chtˇel podˇekovat Mgr. Olze Votavov´e za jazykovou korekturu, sv´ym rodiˇc˚um a prarodiˇc˚um za podporu po celou dobu m´eho studia.

(5)

Abstrakt

C´ılem diplomov´e pr´ace je n´avrh a implementace multimedi´aln´ı encyklopedie za vyuˇzit´ı modern´ıch technologi´ı v prostˇred´ı Adobe Flash CS3 a objektovˇe orientovan´eho programovac´ıho jazyka ActionScript 3.0.

Prvn´ı ˇc´ast se zab´yv´a definic´ı pojm˚u multim´edia a encyklopedie. N´asleduje popis, historie a vlastnosti pouˇzit´ych technologi´ı a jejich porovn´an´ı s alternativn´ımi n´astroji.

Hlavn´ı d˚uraz je kladen na vlastn´ı implementaci multimedi´aln´ıho programu, zaloˇzen´e na sestaven´ı datov´eho modelu datab´aze v syst´emu MySQL, integraci jazyka ActionScript s batab´azov´ym serverem a n´avrh grafick´eho uˇzivatelsk´eho rozhran´ı se z´akladn´ımi podp˚urn´ymi funkcemi pro bˇeh.

Kl´ıˇcov´a slova: multim´edia, encyklopedie, Adobe Flash CS3, ActionScript, MySQL

Abstract

The purpose of this diploma thesis is a design of multimedia encyclopaedia in modern technologies - the ActionScript 3.0 object-oriented programming language in the Adobe Flash CS3 environment.

The first section deals with multimedia and encyclopaedia term definitions.

Description, history and features of the used technologies and their comparison with alternative tools follows.

The main importance insist on proper multimedia program implementation based on a database model composition in the MySQL system, ActionScript language integration with a database server and a graphical user interface design with basic supportive runtime functions.

Keywords: multimedia, encyclopaedia, Adobe Flash CS3, ActionScript, MySQL

(6)

Obsah

Abstrakt v

Obsah vii

Seznam tabulek viii

Seznam obr´azk˚u ix

Zkratky x

Uvod´ 1

1 Multimedi´aln´ı encyklopedie 3

1.1 Encyklopedie . . . 3

1.1.1 Definice . . . 3

1.1.2 Obecn´a charakteristika . . . 3

1.1.3 Historie a souˇcasnost . . . 4

1.2 Multim´edia . . . 5

1.2.1 Multimedi´aln´ı datab´aze . . . 6

2 Pouˇzit´e technologie 7 2.1 MySQL . . . 7

2.1.1 Porovn´an´ı metod pro ukl´ad´an´ı a pˇr´ıstup k dat˚um . . . 9

2.1.2 Datab´azov´e modely . . . 11

2.1.3 Porovn´an´ı s konkurenˇcn´ımi syst´emy . . . 12

2.2 Adobe Flash CS3 . . . 14

2.2.1 Historie . . . 15

2.2.2 Kl´ıˇcov´e vlastnosti . . . 15

2.2.3 Ochrana obsahu . . . 16

2.2.4 Flash a souˇcasnost . . . 18

2.2.5 Rich Internet Applications . . . 18

2.2.6 Srovn´an´ı s konkurenc´ı - Microsoft Silverlight . . . 21

2.3 Action Script 3 . . . 23

(7)

2.3.1 Historie . . . 23

2.3.2 Hlavn´ı rysy jazyka . . . 24

2.3.3 Z´akladn´ı datov´e typy . . . 24

3 Realizace aplikace 26 3.1 Motivace vzniku programu . . . 26

3.2 Poˇzadavky zad´avaj´ıc´ı firmy . . . 26

3.3 Programovac´ı prostˇred´ı . . . 27

3.4 Multimedi´aln´ı titul . . . 29

3.5 N´avrh aplikace . . . 29

3.6 N´avrh a realizace d´ılˇc´ıch probl´em˚u . . . 31

3.6.1 N´avrh datab´aze . . . 31

3.6.2 Propojen´ı aplikace s datab´az´ı . . . 34

3.6.3 Grafick´e zobrazovan´e elementy . . . 37

3.6.4 Prefetch dat . . . 42

3.6.5 Spouˇstˇen´ı offline verze z DVD . . . 42

3.7 Zhodnocen´ı a zd˚uvodnˇen´ı uˇzit´ych technologi´ı . . . 43

Z´avˇer 46

Literatura 49

Pˇr´ılohy 50

(8)

Seznam tabulek

2.1 Porovn´an´ı MyISAM a InnoDB . . . 10 2.2 Konkurenˇcn´ı datab´azov´e syst´emy . . . 13

(9)

Seznam obr´ azk˚ u

2.1 Logo MySQL . . . 7

2.2 Datab´azov´e modely . . . 11

2.3 Logo spoleˇcnosti Adobe a programu Flash . . . 14

2.4 Logo bal´ıku Creative Suite 3 . . . 14

2.5 Logo JavaFX . . . 20

2.6 Logo Google Web Toolkitu . . . 20

2.7 Logo Microsoft Silverlight . . . 22

2.8 Ikona ActionScriptu . . . 23

3.1 Sch´ema aplikace . . . 29

3.2 Diagram toku dat . . . 30

3.3 ERD diagram datab´aze . . . 32

3.4 ˇSablona aplikace . . . 38

(10)

Zkratky

Ajax Asynchronous JavaScript and XML CAT Computerized Axial Tomography BSD Berkeley Software Distribution

CD Compact Disc

CSS Cascading Style Sheets

CMR Customer Relationship Management DBD Berkeley DataBase

DVD Digital Versatile Disc

ECMA European Computer Manufacturers Association EXIF Exchangeable Image File Format

FLV FLash Video

GIF Graphics Interchange Format GPL General Public License GUI Graphical User Interface HTML HyperText Markup Language

ID3 IDentify MP3

InnoDB Databazovy stroj od firmy Innobase JPG/JPEG Joint Photographic Experts Group MMS Multimedia Messaging Service

MP3 MPEG-1 Audio Layer 3

MyISAM MySQL Indexed Sequential Access Method MDA Personal Digital Assistant

Pokraˇcov´an´ı na dalˇs´ı stranˇe

(11)

PAMPA-J Portable Apache, MySQL, PHP Application plus Jaxer PHP Personal Home Page / PHP: Hypertext Preprocessor PNG Portable Network Graphics

RIA Rich Internet Application SQL Structured Query Language SSL Secure Socket Layer

SWF ShockWave Flash

USB Universal Serial Bus WMV Windows Media Video

WMA Windows Media Audio

XAML Extensible Application Markup Language XML Extensible Markup Language

XMP Extensible Metadata Platform

(12)

Uvod ´

V dneˇsn´ı dobˇe pouˇz´ıv´a internet velk´a ˇc´ast lidsk´e populace a poˇcet uˇzivatel˚u do nˇej pˇristupuj´ıc´ıch se den ode dne zvyˇsuje. Trendy ukazuj´ı, ˇze i desktopov´e programy se pomalu zaˇc´ınaj´ı pˇresouvat do online prostˇred´ı v Rich internet aplikac´ıch.

V´yhodou pro uˇzivatele je datov´e ´uloˇzistˇe dostupn´e z jak´ehokoliv m´ısta na Zemi pˇres webovou aplikaci.

Na internetu vznikaj´ı i d´ıla neziskov´ych organizac´ı na poli encyklopedi´ı, pˇr´ıkladem je Wikipedia. Projekt sdruˇzuje mnoˇzstv´ı nadˇsenc˚u, kteˇr´ı dobrovolnˇe pˇrisp´ıvaj´ı do mnohojazyˇcn´e webov´e encyklopedie se svobodn´ym obsahem.

Tato diplomov´a pr´ace prezentuje projekt encyklopedie, bˇeˇz´ıc´ı v prostˇred´ı Adobe Flash CS3 s daty uloˇzen´ymi v datab´azov´em syst´emu MySQL. Program je vytvoˇren na z´akladˇe poˇzadavk˚u zad´avaj´ıc´ı komerˇcn´ı firmy FoxCom s.r.o.

C´ılem bylo vytvoˇrit digitalizovan´y syntetick´y port´al, jeˇz multimedi´aln´ım obsahem a snadn´ym uˇzivatelsk´ym pˇr´ıstupem oslov´ı sv´e z´ajemce. Jednotliv´a hesla by mˇela obsahovat text a dalˇs´ı ilustraˇcn´ı materi´al (foto, kresba, video), budou prov´az´ana hyperlinky mezi sebou a d´ale se souvisej´ıc´ımi t´ematy, vazbami na ˇcas, m´ısto, autory, techniky a bibliografii pramen˚u. Poˇc´ıt´a se i s aplikac´ı na DVD pro platformu Windows.

Text definuje pojmy multim´edia a encyklopedie. D´ale popisuje pouˇzit´e technologie – datab´azov´y syst´em MySQL, platformy pro vytv´aˇren´ı multimedi´aln´ıch prezentac´ı a program˚u Adobe Flash ve verzi CS3 a objektovˇe orientovan´y

(13)

programovac´ı jazyk ActionScript 3.0 vˇcetnˇe jejich hlavn´ıch vlastnost´ı, historie a srovn´an´ı s konkurenˇcn´ımi ˇreˇsen´ımi. Mal´a ˇc´ast je vˇenov´ana i tvorbˇe aplikac´ı RIA.

Nejvˇetˇs´ı d˚uraz je kladen na popis a n´avrh vˇsech ˇc´ast´ı aplikace, od poˇzadavk˚u zad´avaj´ıc´ı firmy, pˇres n´avrh datab´aze, grafick´eho rozhran´ı, propojen´ı aplikace s datab´az´ı, aˇz po probl´em spouˇstˇen´ı offline verze z DVD.

(14)

Kapitola 1

Multimedi´ aln´ı encyklopedie

1.1 Encyklopedie

1.1.1 Definice

[9]Encyklopedie (ˇrecky enkyklios okruˇzn´ı + paideia v´ychova) je strukturovan´e, zpravidla objemn´e d´ılo, kter´e se pokouˇs´ı zevrubnˇe pˇredstavit lidsk´e pozn´an´ı t´ykaj´ıc´ı se jednoho, v´ıce, anebo vˇsech obor˚u.

[8]Reference work that contains information on all branches of knowledge or that treats a particular branch of knowledge in a comprehensive manner.1

1.1.2 Obecn´ a charakteristika

Encyklopedie m˚uˇze b´yt definov´ana pomoc´ı ˇctyˇr z´akladn´ıch vlastnost´ı:

pˇredmˇetu, ´uˇcelu, metody ˇci ˇclenˇen´ı, procesu vzniku. M´a za c´ıl pˇrin´est d˚uleˇzit´a shrom´aˇzdˇen´a pozn´an´ı z urˇcit´eho oboru, tud´ıˇz v tomto smyslu se liˇs´ı podrobnost´ı a z´abˇerem. ´Uˇcel d´ıla m˚uˇze ovlivnit i c´ılov´y okruh ˇcten´aˇr˚u, dˇetsk´e encyklopedie se s t´ematem vypoˇr´ad´avaj´ı jinak neˇz vˇseobecn´e encyklopedie ˇci odborn´e slovn´ıky.

1Informaˇcn´ı d´ılo, kter´e obsahuje znalosti vˇsech vˇedn´ıch obor˚u nebo se snaˇz´ı dopodrobna zpracovat vˇedomosti urˇcit´eho oboru komplexn´ı metodou.

(15)

Encyklopedie mohou b´yt obecn´e, obsahuj´ıc´ı hesla z r˚uzn´ych obor˚u, nebo se mohou specializovat na urˇcit´y obor ˇci okruh hesel, na urˇcitou zemˇepisnou ˇci kulturn´ı oblast.

Existuj´ı dva rozd´ıln´e zp˚usoby organizace tiˇstˇen´ych encyklopedi´ı: abecedn´ıˇrazen´ı a hierarchick´e ˇrazen´ı podle kategori´ı. D´ıla se tak´e liˇs´ı ve volbˇe sv´ych autor˚u a editor˚u, zp˚usobu shromaˇzd’ov´an´ı, ovˇeˇrov´an´ı a sepisov´an´ı jednotliv´ych hesel.

Na rozd´ıl od slovn´ıku, kter´y pˇrin´aˇs´ı pouhou definici hesla, se encyklopedie snaˇz´ı pˇribl´ıˇzit pˇredmˇet hloubˇeji a podrobnˇeji. Text m˚uˇze b´yt tak´e l´epe strukturov´an a pˇrin´est struˇcnou, ale pro ˇcten´aˇre dostateˇcnou informaci o dan´em hesle, doplnˇenou o ilustrace, mapy, pˇrehledy, grafy, bibliografii.

1.1.3 Historie a souˇ casnost

Prvn´ı encyklopedick´a d´ıla zaˇcala vznikat jiˇz ve starovˇeku. Nejvˇetˇs´ı v´yvoj lze vˇsak zaznamenat v obdob´ı renesance a osv´ıcenstv´ı, kdy chtˇeli lid´e co nejdokonaleji popsat svˇet kolem sebe. Jmenoval bych Encyklopedie aneb Racion´aln´ı slovn´ık vˇed, umˇen´ı a ˇremesel Denise Diderota a jeho spolupracovn´ık˚u, velkou anglickou encyklopedii Britannica a tak´e ˇcesk´y poˇcin v dobˇe n´arodn´ıho obrozen´ı – Ott˚uv slovn´ık nauˇcn´y. Ve 20. stolet´ı bylo nejv´yznamnˇejˇs´ım poˇcinem vyd´an´ı Velk´e sovˇetsk´e encyklopedie. Byla to mnohasvazkov´a kniˇzn´ı d´ıla, kter´a si mohli dovolit jen bohat´ı.

S pˇr´ıchodem poˇc´ıtaˇcov´e techniky se zaˇcaly encyklopedie digitalizovat. Data se veˇsla na CD a obsah byl doplnˇen zvuky a videouk´azkami. [24]Nejnovˇejˇs´ım fenom´enem je Wikipedia – mnohojazyˇcn´a webov´a encyklopedie se svobodn´ym otevˇren´ym obsahem. Ten tvoˇr´ı a ovˇeˇruj´ı nadˇsenci i odborn´ıci, rozˇs´ıˇril se tedy okruh autor˚u. Elektronick´e encyklopedie obvykle spojuj´ı obˇe metody organizace ˇrazen´ı, krom toho umoˇzˇnuj´ı vyhled´av´an´ı, indexaci a kˇr´ıˇzov´e odkazy v m´ıˇre, kter´a je u tiˇstˇen´ych dˇel nepˇredstaviteln´a.

(16)

1.2 Multim´ edia

[29]”M´edium zprostˇredkov´av´a informace mezi zdrojem a pˇr´ıjemcem.”

V tomto smyslu ch´apeme napˇr´ıklad rozhlasov´e vys´ıl´an´ı jako m´edium. Postupnˇe, s rozvojem dalˇs´ıch vˇed a s v´yvojem modern´ı komunikaˇcn´ı techniky, se pojem m´edium zaˇcal pouˇz´ıvat ve tˇrech v´yznamech:

• pˇrenosov´y kan´al informace

• materi´alnˇe-energetick´y nosiˇc znak˚u

• soustava znak˚u, t.j. urˇcit´a zpr´ava se syntaktickou, s´emantickou a pragmatickou strukturou

Spojov´an´ım v´ıce m´edi´ı, ve smyslu prvn´ıho a druh´eho v´yznamu dost´av´ame zaˇrazen´ı, kter´emu se zaˇcalo ˇr´ıkat multim´edium.

[15]Multim´edia jsou oblast informaˇcn´ıch a komunikaˇcn´ıch technologi´ı, kter´a je charakteristick´a slouˇcen´ım audiovizu´aln´ıch technick´ych prostˇredk˚u s poˇc´ıtaˇci ˇ

ci dalˇs´ımi zaˇr´ızen´ımi. Forma tohoto m´edia obsahuje kombinaci textu, zvuku, obr´azk˚u a fotografi´ı, animac´ı, vide´ı a interaktivn´ıho obsahu. Poˇc´ıtaˇcov´a zaˇr´ızen´ı jsou pro prezentaci ˇcasto nezbytn´a, a to nejen klasick´e poˇc´ıtaˇce, ale napˇr´ıklad i mobiln´ı telefony, dom´ac´ı multimedi´aln´ı centra na pˇrehr´av´an´ı videa a audia, projektory a pˇrenosn´e pˇrehr´avaˇce.

Multim´edia lze rozdˇelit do dvou kategori´ı: na line´arn´ı a neline´arn´ı. Pojmem line´arn´ı m´am na mysli projekci, kdy div´ak pouze konzumuje, co mu je ukazov´ano.

Neline´arn´ım bych nazval interaktivn´ı obsah, kter´y div´ak s´am m˚uˇze ovlivnovat a v pr˚ubˇehu projekce pohotovˇe reagovat. Pˇr´ıkladem jsou poˇc´ıtaˇcov´e hry.

(17)

Multimedia m˚uˇzeme vyuˇz´ıt v r˚uzn´ych oblastech lidsk´e ˇcinnosti. Nˇekolik pˇr´ıklad˚u n´asleduje.

• Inˇzen´yrsk´e obory – 3D simulace nov´ych v´yrobk˚u pˇred jejich re´alnou v´yrobou, modelov´an´ı tok˚u a proudˇen´ı

• Arm´ada – leteck´e simul´atory

• Obchod – grafy a prezentace v´ysledk˚u pr´ace, webov´e str´anky spoleˇcnost´ı jako informaˇcn´ı kan´al pro z´akazn´ıky, pˇredpovˇedn´ı mapy

• V´ychova a v´yuka – interaktivn´ı tabule, prezentace v´yukov´ych materi´al˚u

• Medic´ına – CAT scan lidsk´eho tˇela, virtu´aln´ı simulace rozˇsiˇrov´an´ı n´akazy v samotn´em tˇele nebo v geografick´ych oblastech

• Z´abava – vyuˇzit´ı 3D br´yl´ı v kinˇe, poˇc´ıtaˇcov´e hry, laser a videoprojekce na diskot´ek´ach, speci´aln´ı efekty ve filmech, MMS

1.2.1 Multimedi´ aln´ı datab´ aze

[16]Multimedi´aln´ı datab´aze je datab´azov´y syst´em, kter´y dok´aˇze spravovat multimedi´aln´ı data. Ta jsou vˇetˇsinou nestrukturovan´a, vyznaˇcuj´ıc´ı se velk´ym objemem (jedna poloˇzka m˚uˇze m´ıt des´ıtky aˇz tis´ıce megabajt˚u). Pˇr´ıkladem jsou 2D obr´azky, 3D modely, video, audio, dokumenty a jejich kombinace. Tato data obsahuj´ı ˇcasto tak´e metadata2 (napˇr. Exif u obr´azk˚u, ID3 tag u MP3). Dotazov´an´ı a z´ısk´av´an´ı informac´ı z kolekc´ı uloˇzen´ych dat m˚uˇze prob´ıhat podle popisu, obsahu nebo metadat.

2Metadata (z ˇreck´eho meta- mezi, za + latinsk´eho data to, co je d´ano) jsou strukturovan´a data o datech[13]

(18)

Kapitola 2

Pouˇ zit´ e technologie

2.1 MySQL

[17]MySQL je datab´azov´y syst´em zaloˇzen´y na relaˇcn´ım modelu dat (2.1.2), tedy na predikatov´e logice, s pˇrirozenou reprezentac´ı zpracov´avan´ych dat a snadn´em zapracov´an´ı a definov´an´ı vazeb.

Obr´azek 2.1: Logo MySQL

Zdroj: http://www.mysql.com/common/logos/mysql-167x86.png

Jak uˇz vypl´yv´a z n´azvu, je pouˇzit strukturn´ı dotazovac´ı jazyk SQL.

Je to standardizovan´y jazyk implementovan´y do vˇetˇsiny dneˇsn´ıch datab´azov´ych syst´em˚u. S jeho pomoc´ı lze snadno vytv´aˇret nov´e datab´aze a tabulky v nich, spravovat je, stejnˇe tak jako pˇristupovat k jednotliv´ym poloˇzk´am v tabulk´ach, kter´e se daj´ı naˇc´ıst; pˇridat, zmˇenit nebo smazat.3

3metody INSERT, UPDATE, DELETE

(19)

Program bˇeˇz´ı jako serverov´a aplikace a poskytuje multiuˇzivatelsk´y pˇr´ıstup k dat˚um v datab´az´ıch. Je vytvoˇren´y ˇsv´edskou firmou MySQL AB4 a poskytuje dvoj´ı licencov´an´ı - bezplatn´e pod licenc´ı GPL a komerˇcn´ı placenou licenci, ke kter´e je poskytov´ana podpora. Tento datab´azov´y syst´em je multiplatform´ı, nen´ı tedy probl´em bˇehu i pˇr´ıstupu k nˇemu z rozliˇcn´ych syst´em˚u (Linux, FreeBSD, Windows, Mac OS X, Solaris, Symbian a dalˇs´ıch). Poskytuje i multiuˇzivatelsk´y pˇr´ıstup k datab´az´ım, coˇz je dnes samozˇrejmost´ı.

Pro snadnou implementovatelnost, v´ykon a pˇredevˇs´ım volnou licenci m´a vysok´y pod´ıl v datab´azov´ych syst´emech pouˇz´ıvan´ych na internetu a intranetu. Velmi obl´ıben´a a ˇcasto nasazovan´a je kombinace Apache, MySQL a PHP jako z´akladn´ı software webov´eho serveru. Knihovny pro pˇr´ıstup k datab´az´ım jsou dostupn´e pro vˇsechny podstatn´e programovac´ı jazyky. K administraci se pouˇz´ıv´a nejen pˇr´ıkazov´a ˇr´adka, ale jsou k dispozici i GUI aplikace pro snaˇzˇs´ı vizu´aln´ı ovl´ad´an´ı.

Od poˇc´atku byl syst´em optimalizov´an na rychlost, bohuˇzel za cenu nˇekter´ych zjednoduˇsen´ı funkˇcnosti. V dneˇsn´ı dobˇe jiˇz d˚uleˇzit´e funkce nechyb´ı.

Pˇrehled podporovan´ych vlastnost´ı:

• ciz´ı kl´ıˇce

• transakce

• podpora r˚uzn´ych znakov´ych sad (vˇcetnˇe Unicode) a ˇcasov´ych p´asem v datech

• poddotazy

• uloˇzen´e procedury

• triggery5

4nyn´ı dceˇrin´a spoleˇcnost Sun Microsystems – americk´y v´yrobce poˇc´ıtaˇu, komponent, software a sluˇzeb v informaˇcn´ıch technologi´ıch s velkou z´asluhou na poli inovativn´ıch platforem. Spoleˇcnost Oracle Corporation zaˇcala s akvizic´ı Sun Microsystem v dubnu 2009. K dokonˇcen´ı transakce je potˇreba souhlas patˇriˇcn´ych ´rad˚u a oˇcek´av´a se, ˇze k tomu dojde v l´etˇe. Oracle vyv´ıj´ı vlastn´ı relaˇcn´ı datab´azov´y syst´em a CMR syst´emy. Akvizic´ı z´ısk´a i dalˇs´ı kl´ıˇcovou technologii a tou je Java.

5procedura, kter´a je automaticky spouˇstˇena jako reakce na specifikovanou akci v datab´azi

(20)

• pohledy

• pr´ace s metadaty

• meziplatform´ı podpora

• nez´avisl´e metody pro ukl´ad´an´ı a pˇr´ıstup k dat˚um (viz 2.1)

• podpora SSL

• vyrovn´avac´ı pamˇet’ pro dotazy

• fulltextov´e indexace a vyhled´av´an´ı (MyISAM)

Jednou z m´ala nev´yhod oproti konkurenˇcn´ım enterprise reˇsen´ım (viz 2.1.3) je neschopnost paralelizovat jeden dotaz do datab´aze na v´ıce stroj´ıch nebo j´adrech procesoru, takˇze tento syst´em nen´ı doporuˇcen´y pro data warehousing.6

2.1.1 Porovn´ an´ı metod pro ukl´ ad´ an´ı a pˇ r´ıstup k dat˚ um

MySQL m´a na rozd´ıl od jin´ych placen´ych enterprise syst´em˚u dalˇs´ı zaj´ımavou vlastnost, a tou je vˇetˇs´ı poˇcet metod pro ukl´ad´an´ı dat. Umoˇzˇnuje to uˇzivateli vybrat si pro kaˇzdou tabulku ten nejefektivnˇejˇs´ı zp˚usob. Tyto programov´e implementace metod mohou b´yt jednoduˇse dynamicky spouˇstˇeny za bˇehu. Mezi dvˇe nejd˚uleˇzitˇejˇs´ı patˇr´ı MyISAM a InnoDB7, jejich porovn´an´ı je v tabulce 2.1.

6skladiˇstˇe vˇsech elektronick´ych dat z organizace, kter´a vyuˇz´ıvaj´ı r˚uzn´a oddˇelˇen´ı ve spoleˇcnosti pro vytv´ren´ı report˚u a anal´yz

7http://en.wikipedia.org/wiki/InnoDB , http://en.wikipedia.org/wiki/MyISAM

(21)

Tabulka 2.1: Porovn´an´ı MyISAM a InnoDB

InnoDB MyISAM

Zotaven´ı z p´adu pˇri neˇcekan´ych ud´alostech

znovu provede logovan´e transakce

kontrola a pˇr´ıpadn´a oprava vˇsech index˚u tabulek, kde probˇehla zmˇena, kter´a se nestihla zapsat na disk

Dostupnost a spolehlivost

ˇcasovˇe nemˇenn´y pˇr´ıstup sniˇzuje se s nar˚ust´an´ım dat v tabulk´ach

Vyrovn´avac´ı pamˇet’

vlastn´ı metody, kombinace pamˇeti pro sloupce a indexy

spol´eh´a se na operaˇcn´ı syst´em

Komprese nen´ı podporov´ana ´uspora aˇz 40% prostˇredk˚u z´avisl´e na datech

Transakce pln´a podpora nepodporuje

Ciz´ı kl´ıˇce pln´a podpora nepodporuje Fyzick´e uloˇzen´ı

dat

podle poˇrad´ı prim´arn´ıho kl´ıˇce

poˇrad´ı, v jak´em byla data pˇrid´av´ana

+ V´yhody m´enˇe pˇr´ıstup˚u na disk a do pamˇeti pˇri ˇcten´ı

pˇri vyhled´av´an´ı se mus´ı proj´ıt cel´a tabulka

– Nev´yhody ˇr´ızen´e ukl´ad´an´ı na spr´avn´e m´ısto, pˇreuspoˇr´ad´an´ı dat

snadn´e ukl´ad´an´ı pˇrid´av´an´ım dat na konec

Dalˇs´ı metody:

• Archive – na historick´a data pˇri mal´e n´aroˇcnosti na m´ısto

• DBD – podobn´e InnoDB s podporou transakc´ı

• MERGE – odstraˇnuje omezen´ı velikosti MyISAM tabulek

• HEAP – uloˇzen´a v pamˇeti, proto je nejrychlejˇs´ı, vˇsechna data jsou vˇsak ztracena pˇri odpojen´ı od zdroje. Nepodporuje typy auto increment, blob a text.

(22)

2.1.2 Datab´ azov´ e modely

[28]N´asleduje struˇcn´e pˇredstaven´ı datab´azov´ych model˚u s rozeps´an´ım jejich v´yhod (+), nev´yhod (–) ˇci jin´ych vlastnost´ı.

Obr´azek 2.2: Datab´azov´e modely

Zdroj: http://upload.wikimedia.org/wikipedia/commons/3/3b/Database_models.jpg

Hierarchick´y model – data uchov´av´ana v souborech, nejvyˇsˇs´ı ´uroveˇn m´a jen jeden prvek - koˇren, ostatn´ı prvky maj´ı vˇzdy jednu vazbu na nadˇrazen´y prvek (rodiˇc) a ˇz´adnou, jednu nebo v´ıce vazeb na niˇzˇs´ı ´uroveˇn (potomek), mezi prvky na stejn´e

´

urovni vazby neexistuj´ı

– nelze definovat vztahy kardinality M:N, pˇri zmˇenˇe se mus´ı reorganizovat cel´a struktura, bˇeˇzn´e operace vkl´ad´an´ı a ruˇsen´ı jsou sloˇzit´ymi operacemi

(23)

S´ıt’ov´y model – zaloˇzen na souborech a vztaz´ıch mezi z´aznamy, prvek m˚uˇze b´yt propojen vazbou s v´ıce prvky z vyˇsˇs´ı i stejn´e ´urovnˇe

+ standardizov´an roku 1972

– dodateˇcn´a modifikace vazeb je ˇcasovˇe n´aroˇcn´a

Relaˇcn´ı model – zaloˇzen na pevn´em matematick´em z´akladu - relaˇcn´ı kalkul a algebra, relace - kart´ezsk´y souˇcin dom´en (mnoˇzin hodnot atribut˚u), oddˇelen´ı dat od jejich implementace, symetrick´y pˇr´ıstup k dat˚um (stejn´e pˇr´ıstupov´e mechanismy), kl´ıˇcov´e i nekl´ıˇcov´e atributy

Objektov´y model – pˇrirozenˇejˇs´ı a vˇernˇejˇs´ı popis skuteˇcn´eho svˇeta, snadnˇejˇs´ı aktualizace dat, sloˇzit´e datov´e typy, objekt s atributy a metodami, zapouzdˇren´ı dat, dˇediˇcnost, polymorfismus

2.1.3 Porovn´ an´ı s konkurenˇ cn´ımi syst´ emy

[6] Srovn´an´ı parametr˚u s nejd˚uleˇzitˇejˇs´ımi konkurenˇcn´ımi syst´emy n´asleduj´ı v tabulce 2.2. Vˇsechny syst´emy podporuj´ı referenˇcn´ı integritu, Unicode k´odov´an´ı, triggery, uloˇzen´e procedury a funkce, transakce, ACID – Atomicitu, Konzistenci, Izolovanost a Trvalost. Podporovan´e operaˇcn´ı syst´emy jsou nahrazeny pro struˇcnost jen prvn´ımi p´ısmeny – W=Windows, X=Mac OS X, L=Linux, B=BSD, U=Unix, S=Symbian.

Atomicita – zaruˇcen´ı transakc´ı, bud’ se provedou vˇsechny operace s daty, nebo nedokonˇcen´e operace neovlivn´ı p˚uvodn´ı datovou z´akladnu

Konzistence – udrˇzen´ı konzistentn´ıho stavu pˇred i po proveden´ı transakce

Izolovanost – zamezen´ı interference mezi paralelnˇe prob´ıhaj´ıc´ımi transakcemi pro pˇredch´azen´ı ztr´aty dat nebo jejich chybn´e interpretaci

Trvalost – data jsou zaps´any do datab´aze aˇz po ´uspˇeˇsn´em zpracov´an´ı transakce

(24)

Tabulka 2.2: Konkurenˇcn´ı datab´azov´e syst´emy

Datab´aze Firma Licence Prvn´ı

vyd´an´ı

Podporovan´e operaˇcn´ı syst´emy

DB2 IBM propriet´arn´ı 1982 W L U

Microsoft SQL Server

Microsoft propriet´arn´ı 1989 W

MySQL Sun Microsystems GPL

a propriet´arn´ı

1996 W X L B U S

Oracle Oracle Corp. propriet´arn´ı 1979 W X L U Postgre SQL Postgre Global

Development Group

BSD 1989 W X L B U

(25)

2.2 Adobe Flash CS3

Obr´azek 2.3: Logo spoleˇcnosti Adobe a programu Flash

Zdroj: http://i.zdnet.com/blogs/adobe-logo.gif,

http://www.lavatwilight.co.uk/images/logos/flash_logo_adobe1.jpg

Obr´azek 2.4: Logo bal´ıku Creative Suite 3

Zdroj: http://www.nts.cz/app//public/user/image/Hlavni_stranka/adobe_logo.png

[2]Flash je multimedi´aln´ı platforma vytvoˇrena firmou Macromedia, kter´a je nyn´ı vyv´ıjena a distribuov´ana firmou Adobe Systems. Od sv´eho uveden´ı v roce 1996 se Flash stal popul´arn´ı v pˇrid´av´an´ı animac´ı a interaktivity na webov´e str´anky.

Nyn´ı je pˇredevˇs´ım pouˇz´ıv´an pro reklamn´ı bannery, animace, webov´e komponenty na pˇrehr´av´an´ı vide´ı a v posledn´ı dobˇe i k vytv´aˇren´ı Rich Internet Application (viz 2.2.5).

Flash dok´aˇze pracovat s vektorovou i rastrovou grafikou, podporuje obousmˇern´e streamovan´ı8 audia (MP3) a videa (vlastn´ı form´at FLV). Vˇsechen flashov´y obsah je moˇzn´y pˇrehr´avat na r˚uzn´ych syst´emech, zaˇr´ızen´ıch a produktech, a to d´ıky Adobe Flash Playeru – pˇrehr´avaˇci. Tento pˇrehr´avaˇc je dostupn´y pro pˇrev´aˇznou vˇetˇsinu

8Streaming (z anglick´eho stream – proud) je technologie kontinu´aln´ıho pˇrenosu audiovizu´aln´ıho materi´alu mezi zdrojem a koncov´ym uˇzivatelem

(26)

webov´ych prohl´ıˇzeˇc˚u jako plugin9, pˇr´ıpadnˇe i v mobiln´ıch telefonech. Dalˇs´ı moˇznost´ı zpˇr´ıstupnˇen´ı obsahu uˇzivateli je vytvoˇren´ı spustiteln´eho souboru – projektoru, kter´y v sobˇe uveden´y Flash Player integruje spoleˇcnˇe s multimedi´aln´ım obsahem.

2.2.1 Historie

Projekt vznikl v podstatˇe jako aplikace pro grafick´e tablety se jm´enem SmartSketch beˇz´ıc´ı na syst´emu PenPoint OS. Program byl navrhnut, aby zjednoduˇsil kreslen´ı do poˇc´ıtaˇce, aby bylo co nejv´ıce podobn´e kreslen´ı na pap´ır. Pozdˇeji byl program portov´an na Windows a Mac OS X, pˇresto na trhu nebyl ´uspˇeˇsn´y. V dobˇe, kdy se zaˇcal rozv´ıjet internet, si v´yvoj´aˇri uvˇedomili potenci´al vektorov´e grafiky, kter´a mohla konkurovat programu Macromedia Shockwave. T´ym program´ator˚u se rozrostl a soustˇredil na v´yvoj plugin˚u do webov´ych prohl´ıˇzeˇc˚u, pˇrehr´av´an´ı ok´enko po ok´enku, grafick´y uˇzivatelsk´y n´astroj na tvorbu a matematick´y podklad pro manipulaci s vektory.

V roce 1996 produkt pˇrevzala pod sv´a kˇr´ıdla firma Macromedia10, kter´a t´ım spojila i sv´e projekty a vydala Flash.

V roce 2007 vˇse pˇrevzala spoleˇcnost Adobe a v z´apˇet´ı zakomponovala Flash jako souˇc´ast sv´eho bal´ıku pro grafiky a v´yvoj´aˇre do Creative Suite 3. Nejvˇetˇs´ı novinkou t´eto prozat´ım pˇredposledn´ı verze je skriptovac´ı jazyk ActionScript 3 (viz 2.3).

2.2.2 Kl´ıˇ cov´ e vlastnosti

[23]Animace – kop´ırov´an´ı a vkl´ad´an´ı animac´ı, pohybov´e cesty, efekty ˇcasov´e osy, obrazovky pro neline´arn´ı pˇrehr´av´an´ı

N´astroje na kreslen´ı – kˇrivky a objekty, n´astroj pero, galerie z´akladn´ıch tvar˚u, knihovna z´akladn´ıch vizu´aln´ıch objekt˚u, transformace objekt˚u

9asuvn´y bal´ıˇcek

10severoamerick´a firma, kter´a vyv´yjela pˇrev´znˇe software pro pr´aci s grafikou a navrhov´an´ı webov´ych str´anek

(27)

Pr´ace s textem – vstupn´ı textov´a pole, podpora XML, form´atov´an´ı HTML dynamick´eho textu, podpora kask´adov´ych styl˚u CSS, Unicode k´odov´an´ı V´yvoj v jazyce Actionscript – pokroˇcil´y debugger, skriptovac´ı asistent,

panel akc´ı, komponenty uˇzivatelsk´eho prostˇred´ı, k´odovac´ı n´astroje ˇsetˇr´ıc´ı ˇcas, komponenty pro ˇcten´ı a pr´ace s daty, integrace do webov´ych sluˇzeb

Rastrov´e obr´azky a filtry – efekty filtr˚u, reˇzimy prolnut´ı, vyrovn´avac´ı pamˇet’

pro bitmapy, knihovna pˇrechod˚u

Pokroˇcil´a integrace m´edi´ı – podpora zvuku MP3, pr˚uhlednost (Alfa kan´al), pracovn´ı postup pro import videa, pokroˇcil´e exporty videa

Dalˇs´ı vlastnosti – komprese, adaptivn´ı anti-aliasing (minimalizace deformace obraz˚u rozmaz´an´ım hran) pro zlepˇsen´ı ˇcten´ı pˇredevˇs´ım mal´ych text˚u, n´apovˇeda vˇcetnˇe online referenˇcn´ı pˇr´ıruˇcky a v´yukov´ych lekc´ı, zaznamen´av´an´ı prezentac´ı z obrazovky, v´yvoj aplikac´ı s pouˇzit´ım pˇripraven´ych ˇsablon rozhran´ı pro mobiln´ı telefony a zaˇr´ızen´ı typu PDA a Palm

Nov´a verze CS4 vydan´a v ˇr´ıjnu 2008 jiˇz plnˇe zaˇcleˇnuje Flash do prostˇred´ı podobn´ych produkt˚u Adobe a nab´ız´ı velk´y poˇcet nov´ych funkc´ı – objektovˇe zaloˇzen´e animace, 3D transformace, inverzn´ı kinematika s modelem kostry, procedur´aln´ı modelov´an´ı pomoc´ı n´astroj˚u dekorace a rozpraˇsovaˇc, editor pohybu, podpora metadat (XMP), barevn´a t´emata, pˇrevod animac´ı do jazyka ActionScript.

Od dalˇs´ı verze se oˇcek´av´a pˇredevˇs´ım nov´a verze jazyka ActionScript.

2.2.3 Ochrana obsahu

[18]Autoˇri flashov´eho obsahu vyuˇz´ıvaj´ı moˇznosti, kter´e jim Flash nab´ız´ı v oblasti animace a interaktivity, pˇresto si nepˇrej´ı, aby jejich pr´ace byla snadno dostupn´a v podobˇe zdrojov´ych k´od˚u a obr´azk˚u, n´ybrˇz pouze jako bin´arn´ı spustiteln´a aplikace.

Jelikoˇz cel´a pr´ace je obsaˇzena v jednin´em souboru SWF, kter´y je dostupn´y pˇres web, je snadn´e ho st´ahnout do lok´aln´ıho um´ıstˇen´ı. Nˇekter´e dekompil´atory umoˇzˇnuj´ı skoro plnou rekonstrukci p˚uvodn´ıch zdrojov´ych k´od˚u, kter´e byly vyuˇzity pˇri vytv´aˇren´ı.

(28)

C´ılem je snaha o zamezen´ı dekompilov´an´ı p˚uvodn´ıho obsahu z tˇechto soubor˚u.

K tomu jsou k dispozici obfusk´atory. Je to softwarov´a pom˚ucka, kter´a se pokouˇs´ı co nejv´ıce znesnadnit ˇcitelnost zdrojov´eho k´odu ˇclovˇeku. Podm´ınkou smyslu existence obfusk´atoru je souˇcasnˇe to, aby zdrojov´y k´od byl i po konverzi ˇciteln´y pro pˇrekladaˇc nebo interpret sv´eho respektivn´ıho jazyka. Pouˇz´ıvaj´ı se n´asledujc´ı techniky:

• odstranˇen´ı koment´aˇr˚u a dokumentaci v k´odu

• odstranˇen´ı form´atov´an´ı a pr´azdn´ych znak˚u

• pˇrejmenov´an´ı identifik´ator˚u promˇenn´ych, konstant a metod

• pˇrid´an´ı specifick´ych past´ı pro dekompil´atory

V´yhody obfuskace k´odu:

+ ochrana intelektu´aln´ıho vlastnictv´ı

+ sn´ıˇzen´ı rizika vyzrazen´ı soukrom´ych informac´ı v k´odu (typicky hesla k datab´az´ım) + redukce velikosti aplikace

Nev´yhody:

– nikdy nen´ı stoprocentn´ı jistota, ˇze s nastupuj´ıc´ımi metodami reverzn´ıho inˇzen´yrstv´ı se k obsahu nedostane neopr´avnˇen´a osoba

– probl´em s pˇrejmenov´an´ım metod, kter´e jsou linkovan´e z jin´ych knihoven – znesnadnˇen´ı debugov´an´ı11 za bˇehu aplikace

Z d˚uvodu posledn´ı nev´yhody se tedy obfusk´atory pouˇz´ıvaj´ı aˇz v dobˇe, kdy je k´od dostateˇcnˇe odladˇen. Tyto metody se nepouˇz´ıvaj´ı jen u Flashe, ale i u dalˇs´ıch jazyk˚u, kde se v´ysledn´y program distribuuje ve form´atu, kter´y se teprve pouˇst´ı pˇres nˇejak´y interpret a kde hroz´ı nebezpeˇc´ı zpˇetn´e rekonstrukce p˚uvodn´ıch dat, napˇr´ıklad Java.

11vychyt´an´ı much

(29)

2.2.4 Flash a souˇ casnost

[3]Podle ofici´aln´ıch zdroj˚u je Adobe Flash Player nainstalov´an na 99% poˇc´ıtaˇc˚u pˇripojen´ych v internetu a ze 45-55% v nejnovˇejˇs´ı verzi (z´avisl´e na regionu).

Flash Lite [10]je optimalizovan´e bˇehov´e prostˇred´ı pro mobiln´ı a spotˇrebitelsk´e elektronick´e pˇr´ıstroje. Umoˇzˇnuje vytvoˇrit a nab´ızet poutav´e uˇzivatelsk´e rozhran´ı, pˇr´ıstup k RIA, video a dynamick´y webov´y obsah.

Mezi v´yhody patˇr´ı snadnˇejˇs´ı manipulace s vektorovou grafikou, menˇs´ı objem dat, zobrazen´ı webov´ych flashov´ych prezentac´ı bez potˇrebn´ych ´uprav. Za nejvˇetˇs´ı v´yhodu oproti Java 2 Micro Edition povaˇzuji lepˇs´ı podporu pro psan´ı k´odu na veˇsker´e pˇr´ıstroje, kter´e Flash Lite podporuj´ı.

Nev´yhodou je menˇs´ı dostupnost zaˇr´ızen´ı (ve srovn´an´ı s rozˇs´ıˇren´ım pˇr´ıstroj˚u podporuj´ıc´ıch J2ME) – je dostupn´y teprve nˇekolik let, m´a horˇs´ı grafick´y a zvukov´y v´ykon z d˚uvodu vˇetˇs´ıch hardwarov´ych n´arok˚u.

2.2.5 Rich Internet Applications

[20] RIA je internetov´a podoba aplikac´ı, kter´e bˇeˇz´ı nativnˇe v prostˇred´ı operaˇcn´ıho syst´emu. Typicky se k pˇrenosu dat vyuˇz´ıv´a AJAX12, sandboxy13, virtu´aln´ı stroje, nebo propriet´arn´ı z´asuvn´e moduly do webov´ych prohl´ıˇzeˇc˚u (to je pˇr´ıpad Flashe).

Kl´ıˇcov´e vlastnosti

Dostupnost dat pro internetov´e vyhled´avaˇce a rychl´y webov´y pˇr´ıstup pro uˇzivatele Rozˇs´ıˇren´a komunikace – optimizovan´y transportn´ı protokol, asynchronn´ı pˇrenos dat, pˇrednahr´av´an´ı potˇrebn´ych dat v dobˇe neˇcinnosti pro urychlen´ı (prefetch)

12Asynchronn´ı vyuˇzit´ı JavaScriptu a XML

13bezpeˇcnostn´ı mechanismus pro oddˇelˇen´ı bˇz´ıc´ıch program˚u. Ty bˇz´ı ve vlastn´ım pamˇet’ov´em prostoru a maj´ı omezen´e moˇznosti komunikace s okoln´ımi procesy

(30)

Komplexnost modern´ıch ˇreˇsen´ı, kter´a jsou tˇeˇzˇs´ı na programov´an´ı a spr´avu neˇz klasick´e webov´e aplikace

Konzistence uˇzivatelsk´eho rozhran´ı v r´amci r˚uzn´ych operaˇcn´ıch syst´em˚u Instalace a ´udrˇzba z´asuvn´ych modul˚u a virtu´aln´ıch stroj˚u

Bezpeˇcnost je vylepˇsen´a na rozd´ıl od klasick´ych program˚u d´ıky bˇehu v uzavˇren´ych pamˇet’ov´ych prostorech, na druhou stranu pokus˚u o napadnut´ı syst´emu je d´ıky webov´emu pˇr´ıstupu v´ıce

V´ykon se m˚uˇze nav´yˇsit pˇri pouˇz´ıv´an´ı na rychl´e s´ıti, n´aroˇcnost hardwaru na stranˇe serveru nebo klienta se m˚uˇze liˇsit mezi implementacemi

[21]Adobe nab´ız´ı pro v´yvoj tˇechto aplikac´ı kompletn´ı bal´ıˇcek ˇreˇsen´ı, kter´y se skl´ad´a z frameworku14, n´astroj˚u na programov´an´ı, serverov´ych ˇreˇsen´ı a sluˇzeb a v neposledn´ı ˇradˇe klientskou ˇc´ast v podobˇe Flash Playeru. Jako pˇr´ıklady aplikac´ı mohu uv´est Adobe Photoshop Express15 – online verzi n´astroje pro pr´aci s fotografiemi, a Adobe Kuler16 – pomocn´ıka pˇri pˇr´ıpravˇe barevn´ych sch´emat nejen pro webov´e str´anky.

Adobe Flex [4]je sada technologi´ı, pro v´yvoj multiplatformn´ıch RIA. Narozd´ıl od Flashe, nem˚uˇzeme vytv´aˇret animace, MovieClipy, kreslit apod. Na druhou stranu je pˇripraveno spousta jiˇz hotov´ych komponent (objekt˚u) s vlastn´ı grafikou, vlastnostmi a metodami, kter´e n´am uˇsetˇr´ı spoustu pr´ace pˇri v´yvoji vlastn´ı aplikace.

14softwarov´a struktura, kter´a slouˇz´ı jako podpora pˇri programov´an´ı, v´yvoji a organizaci jin´ych softwarov´ych projekt˚u

15https://www.photoshop.com/express/landing.html

16http://kuler.adobe.com/

(31)

Dalˇs´ı platformy pro tvorbu RIA

JavaFX [12]je platforma pro RIA, kter´a m˚uˇze bˇeˇzet na r˚uzn´ych zaˇr´ızen´ıch.

Posledn´ı verze (JavaFX 1.1 z ´unora 2009) umoˇzˇnuje vytv´aˇren´ı aplikac´ı pro poˇc´ıtaˇce, webov´e prohl´ıˇzeˇce a mobiln´ı telefony. Pl´anuje se podpora pro hern´ı konzole, set- top boxy a Blue-Ray pˇrehr´avaˇce. Jednoduch´a je instalace aplikac´ı, a to pouh´ym pˇretaˇzen´ım z webov´eho prohl´ıˇzeˇce do syst´emu. Vyuˇz´ıv´a se pˇredevˇs´ım vektorov´a grafika, pro pˇrevod z rastr˚u existuje mnoho konverzn´ıch filtr˚u.

Obr´azek 2.5: Logo JavaFX

Zdroj: http://files.myopera.com/fchoong/blog/javafx_logo_color_1.jpg

Google Web Toolkit [11]je opensource framework pro programovac´ı jazyk Java, kter´y dovoluje v´yvoj a ´udrˇzbu komplexn´ıch webov´ych aplikac´ı zaloˇzen´ych na AJAXu. Vˇse se jednoduˇse naprogramuje v Javˇe na libovoln´e syst´emov´e platformˇe a za pomoc´ı cross-kompil´atoru, kompil´atoru mezi platformami, se pˇrevede na JavaScriptov´y k´od, kter´y je vysoce optimalizovan´y. Zd˚urazˇnuje znovuvyuˇzitelnost k´odu, asynchronn´ı vol´an´ı vzd´alen´ych procedur, spr´avu historie, vytv´aˇren´ı z´aloˇzek a pˇrenositelnost mezi webov´ymi prohl´ıˇzeˇci.

Obr´azek 2.6: Logo Google Web Toolkitu

Zdroj: http://code.google.com/intl/cs/webtoolkit/images/gwt-logo.png

(32)

2.2.6 Srovn´ an´ı s konkurenc´ı - Microsoft Silverlight

[14, 22, 27] Microsoft Silverlight je plaforma navenek podobn´a Adobe Flash. Nab´ız´ı podobn´e vizu´aln´ı moˇznosti, integruje multim´edia, grafiku animace a interaktivitu do jednotn´eho bˇehov´eho prostˇred´ı. Program jako takov´y nen´ı kompilovan´y, ale reprezentovan´y jako text XAML. Podporuje pˇrehr´av´an´ı WMV, WMA a MP3. Dynamick´e naˇc´ıt´an´ı XML obsahu prov´ad´ı pˇres Javascipt podobn´ym zp˚usobem jako AJAX. Jako programovac´ı jazyk je pouˇzit pˇrev´aˇznˇe .NET.

Verze 2.0 byla vyd´ana v ˇr´ıjnu 2008. Hlavn´ı nev´yhodou Silvertlightu je, ˇze pˇriˇsel na trh v dobˇe, kdy uˇz m´a Flash vybudovanou sluˇsnou pozici u v´yvoj´aˇr˚u. Plugin je pro prohl´ıˇzeˇce pod operaˇcn´ımi syst´emy Windows a Mac OS X, dokonce pro mobiln´ı telefony se syst´emy Windows Mobile a Symbian. Jeho otevˇren´a implementace Moonlight pro operaˇcn´ı syst´em Linux je vˇsak poˇr´ad jeˇstˇe ve v´yvoji, oˇcek´avan´e uveden´ı verze 2.0 je pl´anovan´e na z´aˇr´ı 2009.

D˚uleˇzit´e v´yhody(+) a nev´yhody(–) MS Silverlight 2.0 v porovn´an´ı s Flashem

+ v´ystupn´ı k´od je XAML – snadno ˇciteln´y + jednoduˇsˇs´ı debugov´an´ı

+ lepˇs´ı, bohuˇzel placen´e, programovac´ı rozhran´ı Microsoft Studio, v´ıce podporovan´ych jazyk˚u – Visual Basic, .NET, C#, Javascript, JScript, IronPython, IronRuby + lepˇs´ı podpora sluˇzeb od Microsoftu – datov´e webov´e ´uloˇziˇstˇe pro aplikace a

multimedi´aln´ı data

– podpora linuxu a m´enˇe pouˇz´ıvan´ych webov´ych prohl´ıˇzeˇc˚u

– testovac´ı n´astroje pro zjiˇstˇen´ı slabin v pˇr´ıstupnosti aplikace pro postiˇzen´e lidi – nedok´aˇze zpracov´avat zvukov´e sign´aly

– editov´an´ı rastrov´ych obr´azk˚u na ´urovn´ı pixel˚u, efekty (st´ın, rozmaz´an´ı)

(33)

– vˇetˇs´ı datov´a n´aroˇcnost z d˚uvodu nulov´e komprese a velk´eho objemu XML soubor˚u, pˇresto podpora kompresn´ıho algoritmu ZIP pro ˇc´asti vyˇz´adan´ych dat

* ˇcasov´a osa definov´ana v re´aln´em ˇcase(sekundy) na rozd´ıl od Flashe(sn´ımky) Nejnovˇejˇs´ı verze 3.0, kter´a je st´ale v beta st´adiu v´yvoje (kvˇeten 2009), pˇrid´av´a podporu kodeku h.264, tedy video ve vysok´em rozliˇsen´ı i pˇres celou obrazovku, bˇeh aplikace mimo prostˇred´ı webov´eho prohl´ıˇzeˇce, 3D grafiku a drobnosti t´ykaj´ıc´ı se pˇr´ıstupnosti vytv´aˇren´ych aplikac´ı. Tyto informace nejsou obsaˇzeny v pˇredch´azej´ıc´ım pˇrehledu, jelikoˇz se pˇred vyd´an´ım fin´aln´ı verze mohou zmˇenit.

Obˇe platformy tedy nab´ızej´ı podobn´e moˇznosti a uk´aˇze jen ˇcas, kter´a bude v´ıce vyuˇz´ıv´ana. Z konkurenˇcn´ıho boje m˚uˇze tˇeˇzit jak uˇzivatel, tak i v´yvoj´aˇr. D´a se pˇredpokl´adat velk´e rozˇs´ıˇren´ı podobn´eho obsahu na webov´e str´anky, coˇz se nemus´ı l´ıbit pˇr´ıznivc˚um snadn´eho striktn´ıho HTML, pˇr´ıpadnˇe PHP.

Obr´azek 2.7: Logo Microsoft Silverlight

Zdroj: http://upload.wikimedia.org/wikipedia/en/d/db/Silverlight.png

(34)

2.3 Action Script 3

Obr´azek 2.8: Ikona ActionScriptu

Zdroj: http://upload.wikimedia.org/wikipedia/en/0/0f/ActionScript_icon.png

[1, 25, 7] Actionscript je objektovˇe orientovan´y programovac´ı jazyk. Prim´arnˇe se pouˇz´ıv´a pˇri v´yvoji v platformˇe Adobe Flash, d´ale v datab´azov´ych aplikac´ıch (Alpha Five) nebo v aplikac´ıch na ovl´ad´an´ı robotiky (Make Controller Kit). Jazyk je zaloˇzen na ECMAScriptu, coˇz je skriptovac´ı jazyk standardizovan´y Evropskou asociac´ı v´yrobc˚u poˇc´ıtaˇc˚u (ECMA). ECMAScript je ˇsiroce pouˇz´ıv´an na webu a ˇcasto je zamˇeˇnov´an za JavaScript nebo JScript, coˇz jsou ale dva jeho dialekty.

K´od ActionScriptu je vykon´av´an pomoc´ı ActionScript Virtual Machine17, kter´y je zabudov´an ve Flash Playeru. Nov´y Virtual Machine pro verzi 3.0 dramaticky nav´yˇsil v´ykon a je nyn´ı pˇri vykon´av´an´ı k´odu aˇz 10-kr´at rychlejˇs´ı neˇz starˇs´ı verze.

2.3.1 Historie

V´yvoj jazyka v podstatˇe kop´ıroval potˇreby vyuˇzit´ı interaktivity podle toho, co bylo dostupn´e v t´e kter´e verzi Flashe a Flash Playeru. Z poˇc´atku byl omezen na metody zastaven´ı a puˇstˇen´ı pˇrehr´av´an´ı animace a ovl´ad´an´ı ud´alost´ı myˇsi. Do dneˇsn´ı doby se rozvinul v objektovou formu. Z´akladn´ı miln´ıky v´yvoje programovac´ıho jazyka a jeho vlastnost´ı n´asleduj´ı:

ActionScript 1.0 – rok 2000, deklarace uˇzivatelsk´ych procedur a funkc´ı, vlastn´ı promˇenn´e, editor na psan´ı k´odu

17virtu´aln´ı stroj pro ActionScript

(35)

ActionScript 2.0 – rok 2003, lepˇs´ı vybaven´ı pro vˇetˇs´ı a komplexnˇejˇs´ı aplikace, kontrola syntaxe, kontrola k´odu pˇri kompilaci, zaveden´ı tˇr´ıd a interface18, k´od se p´ıˇse pˇr´ımo k vlastnostem objekt˚u

ActionScript 3.0 – rok 2006, od z´akladu restrukturalizovan´y jazyk, omezen´a podpora hardwarov´e akcelerace, sjednocen´ı psan´ı k´odu do prvn´ıho sn´ımku ˇ

casov´e osy, kontrola pˇri kompilaci i pˇri bˇehu aplikace, bal´ıˇcky, jmenn´e prostory, regul´arn´ı v´yrazy, sjednocen´ı syst´emu pro manipulaci s ud´alostmi

2.3.2 Hlavn´ı rysy jazyka

Bˇehov´e v´yjimky – lepˇs´ı podpora hl´aˇsen´ı chyb program˚u a poskytnut´ı tˇechto informac´ı program´atorovi pro jejich snadnˇejˇs´ı odstranˇen´ı

Uzavˇren´e tˇr´ıdy – efektivnˇe naprogramovan´e tˇr´ıdy, kter´e dovoluj´ı jen vyuˇz´ıt´ı jejich metod, nejdou nijak mˇenit, ˇsetˇr´ı to potˇrebnou pamˇet’ i ˇcas vykon´av´an´ı k´odu Regul´arn´ı v´yrazy – nativn´ı podpora regul´arn´ıch v´yraz˚u pro snaˇzˇs´ı hledan´ı

v datov´em typu STRING

Bˇehov´e typy – pro zlepˇsen´ı syst´emov´e bezpeˇcnosti se prov´ad´ı kontroly pˇri bˇehu programu, ulehˇcuje to pr´aci program´atorovi, z´aroveˇn spoˇr´ı potˇrebnou pamˇet’

Jmenn´e prostory – mechanismus pro kontrolu viditelnosti vnoˇren´ych deklarac´ı, podobn´e tradiˇcn´ımu zp˚usobu specifikace pˇr´ıstupov´ych pr´av (public, private, protected)

2.3.3 Z´ akladn´ı datov´ e typy

Bohuˇzel, na rozd´ıl od vˇetˇsiny jin´ych objektov´ych jazyk˚u, ActionScript nedˇel´a rozd´ıl mezi primitivn´ımi datov´ymi typy a odkazovan´ym typem, vˇse bere jako referenci. Reference je ukazatel na instanci tˇr´ıdy. Nevytv´aˇr´ı se tedy kopie objektu, ale pˇristupuje se do toho sam´eho pamˇet’ov´eho prostoru. Pˇri ruˇsen´ı objektu metodou

18rozhran´ı komunikace mezi tˇr´ıdami pˇri dˇedˇen´ı a vyuˇzit´ı polymorfizmu u metod

(36)

DELETE se odstran´ı pouze reference, pak za bˇehu programu Flash Player kontroluje vˇsechny existuj´ıc´ı reference v pamˇeti a pokud ˇz´adnou nenalezne, objekt je odstranˇen garbage collectorem19. Z tohoto d˚uvodu mus´ı b´yt v aplikaci peˇclivˇe pl´anov´ano vyuˇzit´ı pamˇeti.

Boolean – hodnoty pravda a nepravda

int a uint – 32-bitov´e cel´e ˇc´ıslo se znam´enkem a bez void – nedefinovan´a hodnota

Number – 64-bitov´e ˇc´ıslo form´atu z´aklad a exponent String – ˇretˇezec znak˚u

Null – speci´aln´ı hodnota neodkazuj´ıc´ı na ˇz´adn´y objekt

Object – asociativn´ı pole obsahuj´ıc´ı p´ar kl´ıˇc-hodnota (String-jak´ykoliv typ) Array – pole jako seznam dat, vˇsechna stejn´eho typu

Vector – pole dat pevn´e d´elky, pˇredevˇs´ım pro rychlejˇs´ı prov´adˇen´ı operac´ı nad daty MovieClip – zobrazovan´y animovan´y prvek

Bitmap a Shape – vizualizovan´e objekty - rastrov´y a vektorov´y obr´azek ByteArray – pole bin´arn´ıch dat

TextField – dynamick´e a interaktivn´ı textov´e pole

SimpleButton – jednoduch´e interaktivn´ı tlaˇc´ıtko podporuj´ıc´ı stavy kliknut´ı, pˇrejet´ı myˇsi a drˇzen´ı myˇsi, poskytuj´ıc´ı tvar c´ılov´e aktivn´ı plochy

Error – obecn´y chybov´y objekt, pˇri v´yjimk´ach za bˇehu poskytuje informace RegExp – regul´arn´ı v´yrazy

Video – pˇrehr´avateln´y objekt poskytuj´ıc´ı transportn´ı protokoly na staˇzen´ı a streamov´an´ı

XML – pˇr´ım´a podpora XML form´atu

19v pˇrekladu sbˇeraˇc odpadu

(37)

Kapitola 3

Realizace aplikace

3.1 Motivace vzniku programu

C´ılem zadavatele bylo vytvoˇrit digitalizovan´y syntetick´y port´al, jenˇz oslov´ı sv´e z´ajemce multimedi´aln´ım obsahem a snadn´ym uˇzivatelsk´ym pˇr´ıstupem. Umoˇzn´ı to propagovat t´ema zaj´ımavou encyklopedickou formou, ˇc´ımˇz z´aroveˇn zv´yˇs´ı vˇseobecn´e vzdˇel´an´ı dostupn´e nejen na internetu. Jednotliv´a hesla by mˇela obsahovat text a dalˇs´ı ilustraˇcn´ı materi´al (foto, kresba, video), budou prov´az´ana hyperlinky mezi sebou a d´ale se souvisej´ıc´ımi t´ematy, vazbami na ˇcas, m´ısto, autory, techniky a bibliografii pramen˚u, aby umoˇznila hlubˇs´ı studium probl´emu odborn´ık˚um. Snahou bude vydat i kompletn´ı obsah dostupn´y na nˇejak´em m´ediu (CD, DVD) jakoˇzto bonus k vznikaj´ıc´ı kniˇzn´ı podobˇe encyklopedie.

3.2 Poˇ zadavky zad´ avaj´ıc´ı firmy

• Graficky pˇr´ıjemn´a aplikace

• Jednoduch´a a intuitivn´ı ovladatelnost

• Zobrazen´ı textu a obr´azk˚u

(38)

• Bˇeh online a na platformˇe Windows

• Rychl´y pˇr´ıstup k dat˚um – prefetch20

• Kryptov´an´ı obsahu

• ˇCasov´a osa a interaktivn´ı mapy

Rozˇs´ıˇren´e poˇzadavky, kter´e nebyly prioritn´ı:

• Videouk´azky

• V pˇr´ıpadˇe potˇreby komprese dat

• Aktualizace datab´aze offline verze

• Fulltextov´e vyhled´av´an´ı

3.3 Programovac´ı prostˇ red´ı

Flash pro programov´an´ı v jazyce ActionScript 3 nab´ız´ı editor obsaˇzen´y v bal´ıku CS3. Vˇse se d´a jednoduˇse zobrazit v panelu akce. Editor podporuje barevn´a sch´emata na zabarven´ı kl´ıˇcov´ych slov, funkc´ı, ˇretˇezc˚u String a koment´aˇr˚u.

Flash dok´aˇze i rozpoznat funkci, kterou pr´avˇe p´ıˇsu, a zobraz´ı odpov´ıdaj´ıc´ı radu pˇri psan´ı k´odu. D´ale nab´ız´ı funkce pro automatick´e form´atov´an´ı textu podle konvenc´ı a kontrolu syntaxe. Pokud nalezne chyby, vyp´ıˇse je v panelu chyb.

V lev´e stranˇe panelu akc´ı se nach´az´ı kompletn´ı seznam kategori´ı tˇr´ıd, vˇcetnˇe jejich metod a vlastnost´ı. Obsahuje i kategorii index, kde jsou abecednˇe uspoˇr´adan´e vˇsechny metody a funkce, po kliknut´ı na pˇr´ıkaz se do k´odu dopln´ı jeho spr´avn´a konstrukce. Dalˇs´ım n´astrojem je skriptovac´ı asistent. Pokud je zapnut´y, po v´ybˇeru metody ze seznamu kategori´ı se zobraz´ı v horn´ıˇc´asti nad samotn´ym skriptem textov´a pole a volby, kter´e jsou pro danou poloˇzku k dispozici, a je potˇreba je vyplnit (nadefinovat).

20rednahr´av´an´ı potˇrebn´ych dat v dobˇe neˇcinnosti

(39)

T´ım vˇsak konˇc´ı v´yˇcet moˇznost´ı, kter´e tento editor nab´ız´ı. Jelikoˇz jsem mˇel moˇznost programovat i v jin´ych prostˇred´ıch (NetBeans, Eclipse, Microsoft Visual Studio, Zend Studio), mus´ım konstatovat, ˇze na plnohodnotnou pr´aci je naprosto nedostaˇcuj´ıc´ı. M˚uˇze vyhovovat pouze design´erovi, kter´y vyv´ıj´ı pˇrev´aˇznˇe grafick´e elementy a pˇrid´av´a jen m´alo funkˇcnosti v r´amci ActionScriptu k animac´ım.

Po dvou t´ydnech pr´ace v editoru jsem zjistil, ˇze zcela nevyhovuje. Neˇslo kop´ırovat a vkl´adat text kl´avesov´ymi zkratkami CTRL+INSERT a SHIFT+INSERT, zn´am´ymi jiˇz z prostˇred´ı DOSu, ale musely se pouˇz´ıvat standardn´ı windowsov´e zkratky CTRL+C a CTRL+V. Pˇri vytv´aˇren´ı nov´ych promˇenn´ych automaticky nedefinuje v deklaraˇcn´ı ˇc´asti programu pouˇzitou tˇr´ıdu, ve kter´e se promˇenn´a nach´az´ı.

Dobˇre ani nefunguje kompletace rozepsan´eho k´odu pomoc´ı CTRL+ENTER.

Vyˇreˇsil jsem nepˇr´ıjemnou situaci n´asleduj´ıc´ım zp˚usobem. Adobe poskytuje v´yvojov´y n´astroj, kter´y nab´ız´ı interaktivn´ı m´od na debugov´an´ı krokov´an´ım a inteligentn´ı psan´ı k´odu – Flex Builder. Je navrˇzen pˇredevˇs´ım pro vizu´aln´ı n´avrh uˇzivatelsk´eho prostˇred´ı pro Flex aplikace. Pro mne vˇsak bylo d˚uleˇzit´e, ˇze dok´aˇze pracovat se skripty psan´ymi v ActionScriptu s odstranˇen´ım chyb, kter´e jsem vyt´ykal samotn´emu editoru v bal´ıku CS3. N´astroj je zaloˇzen na javovsk´e platformˇe Eclipse, se kterou m´am uˇz bohat´e zkuˇsenosti. Samotn´y skript edituji pomoc´ı Flex Builderu, ve Flashi ho m´am definovan´y jako hlavn´ı tˇr´ıdu, takˇze se mi automaticky naˇc´ıt´a k projektu. Ten sestavuji pˇr´ıpadnˇe i publikuji pro web, nebo jako samostatnˇe bˇeˇz´ıc´ı aplikaci pr´avˇe pˇres Flash.

D´ale mus´ım vyzdvihnout kvalitnˇe obsaˇznou n´apovˇedu, kter´a je na disk um´ıstˇena pˇri instalaci, coˇz umoˇzˇnuje fulltextov´e hled´an´ı rychleji neˇz pˇri pˇripojen´ı na internetovou verzi dokumentace. Referenˇcn´ı pˇr´ıruˇcka popisuje tˇr´ıdy v hierarchii, vˇsechny jejich metody, konstanty a vlastnosti, mnohdy i uk´azku k´odu s koment´aˇri.

(40)

3.4 Multimedi´ aln´ı titul

Tvorba multimedi´aln´ıho projektu s sebou nese velk´e n´aroky na osoby, kter´e se na nˇem pod´ılej´ı. Seznam se velice podob´a produkˇcn´ımu t´ymu u filmu. Dlouh´y ˇcas tak´e zabere uspoˇr´ad´an´ı a vkl´ad´an´ı dat do encyklopedie. Manaˇzer jiˇz rozhodl, jak´e bude zamˇeˇren´ı, pro kterou platformu bude vyvinut a na kter´em trhu se m´a titul uplatnit. J´a se star´am pouze o n´avrh samotn´eho syst´emu a z´akladn´ı programovou implementaci. M´ym c´ılem je vymyslet do programu moˇznou interaktivitu mezi vˇsemi prvky a uˇzivatelem, pˇri snaze o co nejobecnˇejˇs´ı implementaci na r˚uzn´e platformy pro zv´yˇsen´ı moˇznost´ı distribuce v´ysledn´eho titulu.

3.5 N´ avrh aplikace

Aplikace bude naprogramov´ana ve dvou verz´ıch – offline a online verze. Vlastn´ı program bude v obou verz´ıch stejn´y. Offline verze bude cel´a i s datab´az´ı uloˇzena na DVD, zat´ımco online verze pobˇeˇz´ı na serveru.

Obr´azek 3.1: Sch´ema aplikace

(41)

Obr´azek 3.2: Diagram toku dat

Z d˚uvodu tvorby dvou verz´ı programu bylo vyuˇzito prostˇred´ı Adobe Flash CS3.

V ActionScriptu verze 3 je vytvoˇrena aplikace, kter´a bude pˇristupovat k dat˚um uloˇzen´ym v datab´azi. V´yhodou exportu aplikac´ı flashov´e platformy je jak program bˇeˇz´ıc´ı ve Flash Playeru, kter´y je z´asuvn´ym modulem vˇetˇsiny dneˇsn´ıch webov´ych prohl´ıˇzeˇc˚u, ˇcehoˇz vyuˇzijeme v online verzi, tak i export do programu spustiteln´eho na Windows pˇr´ıpadnˇe Mac OS X pro offline verzi. Uˇz v programu si budu oˇsetˇrovat, odkud je spouˇstˇen a podle toho nastav´ım potˇrebn´e parametry pˇr´ıstupu k datab´azi.

V´yhodou oddˇelen´ı samotn´ych dat od aplikace je pˇredevˇs´ım moˇznost aplikov´an´ı programu znovu v jin´em typu encyklopedie, tedy bˇeh nad jin´ymi daty. Z´aroveˇn vyuˇzit´ım datab´azov´eho syst´emu se zv´yˇs´ı rychlost pˇr´ıstupu d´ıky optimalizovan´ym metod´am pr´ace s daty. Tento syst´em nab´ız´ı i kryptov´an´ı dat, coˇz bylo jedn´ım z poˇzadavk˚u zad´avaj´ıc´ı firmy. To je i d˚uvod, proˇc jsem nepouˇzil HTML str´anky s pˇrechody pˇres odkazy. Informace jsou tedy zobrazov´any jen pˇres aplikaci, zdrojov´a data nejsou pro uˇzivatele snadn´a z´ıskat. Flash mi d´ale nab´ız´ı lepˇs´ı grafick´e moˇznosti pro vlastn´ı program.

Probl´emem bylo ˇreˇsen´ı offline verze, kter´a m´a b´yt cel´a komplexnˇe na DVD.

Pro platformu Windows jsem musel zaˇr´ıdit vˇetˇs´ı poˇcet aplikac´ı, kter´e se po nastartovan´ı spust´ı. Nejprve bylo potˇreba spustit datab´azov´y server lok´alnˇe

(42)

v pamˇeti a pot´e do nˇej pˇresmˇerovat soubor s uloˇzenou datab´az´ı vyskytuj´ıc´ı se na DVD. Vlastn´ı aplikace se pust´ı pˇres funkci autorun, pˇr´ıpadnˇe se o start aplikace postar´a uˇzivatel s´am.

3.6 N´ avrh a realizace d´ılˇ c´ıch probl´ em˚ u

3.6.1 N´ avrh datab´ aze

Samotnou datab´azi pouˇz´ıv´am v podstatˇe jen jako pasivn´ı ´uloˇziˇstˇe dat. Preferuji pˇredevˇs´ım vyˇsˇs´ı rychlost ˇcten´ı, kter´e mi dan´e ˇreˇsen´ı nab´ız´ı v porovn´an´ı se ˇctˇen´ım dat uloˇzen´ymi na filesyst´emu, zvl´aˇstˇe s pˇrihl´ednut´ım k offline aplikaci pouˇstˇen´e z DVD.

Pro fin´aln´ı aplikaci pˇredpokl´ad´am tis´ıce ˇr´adk˚u textu a velk´e mnoˇzstv´ı obr´azk˚u, proto bylo snahou vyuˇz´ıt optimalizovan´e n´astroje. Z´aroveˇn upotˇreb´ım vnitˇrn´ı funkci datab´aze na kryptov´an´ı a dekryptov´an´ı dat, nebot’ zad´avaj´ıc´ı firma chtˇela zabr´anit snadn´emu ´uniku z encyklopedie.

V aplikaci se nepoˇc´ıt´a se zapisov´an´ım dat do datab´aze, ale pouze se ˇcten´ım.

O nahr´an´ı dat se postar´a firma, pak se datab´aze optimalizuje na rychlost ˇcten´ı a dan´y soubor s datab´azov´ymi daty se uloˇz´ı na server, nebo na DVD k aplikaci. Bude tedy muset b´yt vytvoˇren program, kter´y bude data ukl´adat ve spr´avn´em form´atu se vˇsemi definovan´ymi atributy nebo je pˇr´ıpadnˇe upravovat. Pˇredpokl´ad´am nˇejak´y jednoduch´y WYSIWYG21 editor.

Na uloˇzen´ı dat jsem pouˇzil jiˇz zm´ınˇen´y datab´azov´y syst´em MySQL, konkr´etnˇe ve verzi 5. Strukturu datab´aze jasnˇe a struˇcnˇe popisuje ERD diagram, viz obr´azek 3.3.

Datab´aze se skl´ad´a ze ˇctyˇr tabulek – Menu, Text, Image a TextImage. N´asleduje popis jednotliv´ych tabulek s uk´azov´ym SQL skriptem, kter´y byl pouˇzit pˇri jejich vytv´aˇren´ı.

21akronym anglick´e vˇety

What you see is what you get“, ˇcesky

co vid´ıˇs, to dostaneˇs“

(43)

Obr´azek 3.3: ERD diagram datab´aze

Menu – z´akladn´ı rozvrstven´ı textov´ych dat do uspoˇr´adan´ych kapitol a ˇc´ast´ı, pˇredpokl´ad´am pouze ˇctyˇr´urovˇnovou hiearchii vlastn´ıch ˇcl´ank˚u. Z relace 1 se pˇren´aˇs´ı kl´ıˇc TID z tabulky Text pro spojen´ı textu do spr´avn´eho zaˇrazen´ı do Menu.

CREATE TABLE MENU (

MID Int UNSIGNED NOT NULL AUTO INCREMENT,--menu id

chapter Int NOT NULL , --kapitola

section Int NOT NULL , --ˇast subsection Int NOT NULL , --podˇast subsubsection Int NOT NULL , --podpodˇast

TID Int NOT NULL , --ciz´ı kl´ıˇc z tabulky Text

UNIQUE (MID), --unik´atn´ı id

PRIMARY KEY (MID,TID), --prim´arn´ı kl´ıˇc na MID a TID INDEX IX (TID)

) TYPE = InnoDB;

Text – vlastn´ı HTML form´atovan´y text, kter´y se bude zobrazovat. Pokud se text nevejde na jednu stranu do formul´aˇre, bude rozdˇelˇen na v´ıce stran, z toho d˚uvodu jsou tam dalˇs´ı entity part, prev page a next page.

(44)

CREATE TABLE TEXT (

TID Int UNSIGNED NOT NULL AUTO INCREMENT,--text

id txt Longtext NOT NULL , --html form´atovan´y text template Int NOT NULL , --zobrazovac´ı ˇsablona

part Int , --ˇast v´ıcestr´ankov´eho textu prev page Int , --pˇredchoz´ı strana

next page Int , --n´asleduj´ıc´ı strana

UNIQUE (TID), --unik´atn´ı id

PRIMARY KEY (TID) ) TYPE = MyISAM;

Image – prostor pro obrazov´a data v blob form´atu, neboli kolekci bin´arn´ıch dat uloˇzen´ych jako jednotn´a entita. Dalˇs´ı entitou je textov´y popis obr´azku.

CREATE TABLE IMAGE (

IID Int UNSIGNED NOT NULL AUTO INCREMENT,--image id

data Blob NOT NULL, --vlastn´ı data obr´azku description VARCHAR(100) NOT NULL, --popis obr´azku

UNIQUE (IID), --unik´atn´ı id

PRIMARY KEY (IID) ) TYPE = MyISAM;

TextImage – spojovac´ı tabulka pro kardinalitu M:N mezi tabulkami Text a Image

CREATE TABLE TEXTIMAGE ( TID Int NOT NULL , IID Int NOT NULL , PRIMARY KEY (TID,IID), INDEX IX (TID), INDEX IX (IID) ) TYPE = InnoDB;

Kv˚uli zjednoduˇsen´ı urˇcen´ı prim´arn´ıho kl´ıˇce z´aznamu v tabulk´ach jsem zvolil umˇele vytvoˇren´e identifik´atory (TID, MID, IID). Z´aroveˇn jsem vyuˇzil i auto increment modifik´ator pro zajiˇstˇen´ı unik´atn´ı, postupnˇe se generuj´ıc´ı identity pro jednotliv´e ˇr´adky. Nen´ı to nejkorektn´ı ˇreˇsen´ı po str´ance relaˇcn´ı algebry a n´avrhu, kde by se mˇel prim´arn´ı kl´ıˇc vytvoˇrit z v´ıce entit pro jednoznaˇcnou identifikaci ˇr´adku.

V praxi se vˇsak toto elegantn´ı ˇreˇsen´ı vyuˇz´ıv´a pro zkr´acen´ı SQL dotaz˚u.

Dom´eny atribut˚u jsou vˇetˇsinou definov´any jako unsigned integer neboli ˇc´ıslo bez znam´enka, pro text je to longtext, nebo varchar(100) – variabiln´ı ˇretˇezec maxim´aln´ı d´elky 100 znak˚u. Dom´ena atributu dat obr´azk˚u je blob. Atributy, kter´e povaˇzuji za d˚uleˇzit´e, jsem nastavil na not null, ty mus´ı b´yt vˇzdy vyplnˇen´e.

(45)

Na prim´arn´ım kl´ıˇci tabulky Menu jsem vytvoˇril index. Hled´an´ı a tˇr´ıdˇen´ı podle nˇej bude optimalizov´ano datab´azov´ym serverem. Index se i automaticky vytvoˇril u spojovac´ı tabulky TextImage pro zrychlen´ı pr´ace.

Pro tabulky Menu a TextImage jsem nastavil strukturu na InnoDB (viz 2.1).

Chtˇel jsem vyuˇz´ıt v´yhody tohoto zp˚usobu uklad´an´ı dat a pˇr´ıstupu k nim. Syst´em s´am je optimalizovan´y na rychlost. V porovn´an´ı s ostatn´ımi budou tyto dvˇe tabulky mal´e, nebudou obsahovat tolik informac´ı a tak lze m´ıt jejich vˇetˇs´ı ˇc´ast v pamˇeti.

D´ale jsem potˇreboval podporu ciz´ıch kl´ıˇc˚u pro referenˇcn´ı integritu mezi dvˇema relacemi. Pro tabulky Image a Text jsem vyuˇzil strukturu MyISAM. Opˇet jsem chtˇel vyuˇz´ıt moˇznost´ı programov´e implementace pro fulltextov´eho vyhled´av´an´ı nad daty, pˇr´ıpadnˇe podporu komprese dat.

Relace 1 definuje vztah mezi tabulkami Menu a Text. Kardinalita vztahu je 1:N, tedy v jedn´e ˇc´asti hierarchick´e struktury menu se pˇredpokl´ad´a v´ıce text˚u, ne naopak. Parcialita z´aroveˇn umoˇzˇnuje nˇejakou ˇc´ast menu nechat pr´azdnou, zat´ımco kaˇzd´y ˇcl´anek mus´ı b´yt zaˇrazen do urˇcit´e ˇc´asti v hierarchii.

Relace 2 a 3 je v podstatˇe spojovac´ı tabulka pro zajiˇstˇen´ı kardinality vztahu M:N mezi tabulkami Text a Image. Tedy existuje text, kter´y patˇr´ı k v´ıce obr´azk˚um, a z´aroveˇn existuje obr´azek, kter´y patˇr´ı k v´ıce text˚um.

3.6.2 Propojen´ı aplikace s datab´ az´ı

Flashov´e prostˇred´ı v sobˇe pˇr´ımo neobsahuje jak´ekoliv funkce, kter´e by dovolovaly pˇripojovat se k datab´azov´emu stroji a SQL dotazy z´ısk´avat, nebo ukl´adat data. Je to z vˇetˇs´ı ˇc´asti zapˇr´ıˇcinˇeno velk´ym bezpeˇcnostn´ım rizikem, kter´emu se Adobe snaˇz´ı vyhnout. Takzvan´y Cross server scripting neboli skriptov´an´ı mezi servery je bud’ zak´az´ano, nebo ruˇcnˇe povoleno uˇzivatelem, kter´y tak pˇreb´ır´a vˇsechna rizika z toho plynouc´ı.

Pˇripojov´an´ı Flashe k datab´az´ım se d´a ˇreˇsit extern´ım skryptovac´ım jazykem, kter´emu Flash v HTTP POSTu pˇred´a parametry. Skriptovac´ı jazyk poˇsle SQL dotaz

(46)

datab´azov´emu stroji a z´aroveˇn zpracuje v´ysledky do form´atu, kter´y Flash pˇrijme.

Skriptovac´ım jazykem ˇcasto b´yv´a PHP.

F lash → HT T P P OST → P HP → SQL dotaz → P HP → HT T P → F lash Toto ˇreˇsen´ı je provozuschopn´e na serverech, ale j´a jsem ho zavrhl z d˚uvodu ˇreˇsen´ı offline verze, kde jsem se snaˇzil omezit potˇreby spouˇstˇen´ı extern´ıch program˚u, v tomto pˇr´ıpadˇe webov´eho serveru se skriptovac´ım interpretem PHP.

[5]Nalezl jsem opensource knihovnu AsSQL, kter´a nab´ız´ı konektivitu na MySQL datab´azi z ActionScriptu a prostˇred´ı Flashe, bez potˇreby pouˇzit´ı skriptovac´ı mezivrstvy. Toto ˇreˇsen´ı sice obch´az´ı bezpeˇcnost flashov´eho sandboxu, ale v m´em ˇreˇsen´ı si to mohu dovolit, jelikoˇz m´am st´ale plnou kontrolu nad tokem dat. U online verze poˇc´ıt´am s bˇehem na jedn´e dom´enˇe, u offline verze poˇc´ıt´am s bˇehem na lok´aln´ım poˇc´ıtaˇci a pln´y pˇr´ıstup do datab´aze neumoˇzn´ım.

Bohuˇzel bezpeˇcnostn´ım rizikem t´eto varianty je uˇzivatelsk´e jm´eno a heslo uloˇzen´e v textov´e podobˇe v aplikaci. Jak uˇz jsem psal v ˇc´asti 2.2.3, je tento k´od i pˇres vˇsechno ´usil´ı potenci´alnˇe z´ıskateln´y, tud´ıˇz ˇciteln´y. Mou snahou je samozˇrejmˇe ´uniku dat z aplikace zabr´anit. Proto jsem v datab´azi vytvoˇril dalˇs´ıho uˇzivatele s omezen´ym pˇr´ıstupem pouze pro ˇcten´ı.

GRANT SELECT ON multimedia.* TO user@localhost IDENTIFIED BY ’password’ WITH MAX USER CONNECTIONS 1

--vytvoˇren´ı nov´eho uˇzivatele pro tabulky datab´aze ’multimedia’ jen pro ˇcten´ı --s uˇzivatelsk´ym jmenem ’user’, pˇristupuj´ıc´ıho z lok´aln´ıho poˇıtaˇce

--s heslem ’password’ a maxim´alnˇe jedn´ım beˇıc´ım pˇripojen´ım

Z´aroveˇn jsem vytvoˇril pohled, pomoc´ı nˇehoˇz se uˇzivatel dostane jen k dat˚um pro nˇej urˇcen´ym a znemoˇzn´ım tak pˇr´ıpadn´emu ´utoˇcn´ıkovi z´ısk´an´ı vˇsech dat jedn´ım pˇr´ıkazem.

CREATE VIEW vw user AS --vytvoˇr pohled s n´azvem vw user jako

SELECT * --v´ybˇer vˇseho

FROM textimage --z tabulky textimage

JOIN text ON textimage.tid = text.tid --spoj na entitˇe tid s tabulkou text JOIN image ON image.iid = textimage.iid --spoj na entitˇe iid s tabulkou image

References

Related documents

Jmenujte další konkrétní aktivity realizované městy v rámci chytré energetiky.. Je možné kvantifikovat vliv technologií na

Zkoumanému podniku navrhujete změnu organizačního schématu společnosti na agilnější variantu v podobě společnosti orientované na projekty?. Myslíte, že tato změna bude

Hodnocen´ı navrhovan´ e vedouc´ım diplomov´ e pr´ ace: výborně Hodnocen´ı navrhovan´ e oponentem diplomov´ e pr´ ace: výborně.. Pr˚ ubˇ eh obhajoby diplomov´ e

P˚uvodn´ı prototyp levn´e bionick´e n´ahrady HACKberry, jehoˇz funkˇcn´ı z´aklad vznikl v r´amci semestr´aln´ıho projektu [19], je v r´amci diplomov´e pr´ace doplnˇen

Není u tohoto dílu větší odpor vzduchu oproti hladkému

Hodnocen´ı navrhovan´ e vedouc´ım diplomov´ e pr´ ace: velmi dobře Hodnocen´ı navrhovan´ e oponentem diplomov´ e pr´ ace: výborně minus.. Pr˚ ubˇ eh obhajoby diplomov´

Hodnocen´ı navrhovan´ e vedouc´ım diplomov´ e pr´ ace: výborně Hodnocen´ı navrhovan´ e oponentem diplomov´ e pr´ ace: výborně.. Pr˚ ubˇ eh obhajoby diplomov´ e

Martin Bílek, Ph.D.: Jaké maximální otáčky byly použity pro pohon vřetene?. -Z- Jaké napětí jste používal