ˇ e vysok´e uˇcen´ı technick´e v Praze Cesk´ Fakulta elektrotechnick´a Katedra poˇc´ıtaˇc˚ u
Bakal´aˇrsk´a pr´ace
Dispeˇ cer˚ uv kalkul´ ator Blanka Bouˇskov´a
Vedouc´ı pr´ace: Doc. RNDr. Josef Kol´aˇr, CSc.
Studijn´ı program: Softwarov´e technologie a management, Bakal´aˇrsk´ y Obor: Softwarov´e inˇzen´ yrstv´ı 18. kvˇetna 2011
iv
v
Podˇ ekov´ an´ı Dˇekuji Doc. RNDr. Josefu Kol´ aˇrovi, CSc., vedouc´ımu t´eto bakal´aˇrsk´e pr´ace, za cenn´e rady a vstˇr´ıcn´ y pˇr´ıstup. Cel´e sv´e rodinˇe a pˇr´atel˚ um za podporu, nejen pˇri psan´ı tohoto textu, ale po celou dobu studia, nejv´ıce vˇsak m´emu muˇzi Pavlovi a synovi Vl´ad’ovi.
vi
vii
Prohl´ aˇ sen´ı Prohlaˇsuji, ˇze jsem pr´ aci vypracovala samostatnˇe a pouˇzila jsem pouze podklady uveden´e v pˇriloˇzen´em seznamu. Nem´am z´ avaˇzn´ y d˚ uvod proti uˇzit´ı tohoto ˇskoln´ıho d´ıla ve smyslu §60 Z´akona ˇc. 121/2000 Sb., o pr´ avu autorsk´em, o pr´ avech souvisej´ıc´ıch s pr´avem autorsk´ ym a o zmˇenˇe nˇekter´ ych z´akon˚ u (autorsk´ y z´ akon).
V Pustovˇetech dne 26. 5. 2011
.............................................................
viii
Abstract A dispatcher in freight transport is subject to very high requirements. One of his tasks is calculation of prices for transports, which means creation of a competitive offer to a customer while respecting the need to generate a profit for his/her employer. Considering the amount of different aspects that have to be taken into account, it is not a trivial calculation. With the help of speed and accuracy of computing technology, these calculations can be carried out in a faster and more efficient way, thus reducing the persistent stress to which the dispatcher is exposed. This work presents a possible solution to an automated price calculation for requested transportation tasks with consideration of all decisive factors.
Abstrakt Na dispeˇcera v n´ akladn´ı dopravˇe jsou kladeny velmi vysok´e n´aroky. Jedn´ım z jeho u ´kol˚ u je naceˇ nov´ an´ı pˇreprav. Znamen´ a to vytvoˇren´ı konkurenceschopn´e nab´ıdky z´akazn´ıkovi s ohledem na ekonomick´ y pˇr´ınos firmˇe. Vzhledem k r˚ uzn´ ym aspekt˚ um, kter´e pˇri tom mus´ı b´ yt br´any na zˇretel, to zdaleka nen´ı trivi´aln´ı v´ ypoˇcet. Vyuˇzit´ım rychlosti a pˇresnosti v´ ypoˇcetn´ı techniky se vˇsak zrychl´ı a zefektivn´ı tato ˇcinnost a dispeˇcerovi tak odpadne trocha stresu, kter´eho m´ a i tak nadbytek. Pr´ ace ˇreˇs´ı automatick´e generov´an´ı ceny za popt´avanou pˇrepravu s pˇrihl´ednut´ım ke vˇsem rozhoduj´ıc´ım faktor˚ um.
ix
x
Obsah ´ 1 Uvod 1.1 Dispeˇcer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Z´ amˇer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 3 3
2 Anal´ yza 2.1 Obecn´e informace . . . . . . . . . . . . . . . . . . . . . 2.2 Vymezen´ı ˇcinnosti dispeˇcera n´akladn´ı dopravy . . . . 2.3 Anal´ yza st´ avaj´ıc´ıho stavu . . . . . . . . . . . . . . . . 2.3.1 Obecn´e informace . . . . . . . . . . . . . . . . 2.3.2 Postup zpracov´ an´ı nab´ıdky . . . . . . . . . . . 2.3.2.1 V´ ypoˇcet ceny za n´ajem cel´eho vozidla 2.3.2.2 V´ ypoˇcet pˇrikl´adkov´e ceny . . . . . . . 2.3.2.3 Vyhodnocen´ı nab´ıdky . . . . . . . . . 2.4 Vymezen´ı rozsahu a funkc´ı informaˇcn´ıho syst´emu . . . 2.5 Moˇznosti rozˇs´ıˇren´ı . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
5 5 5 6 6 7 7 7 7 8 8
3 Katalog poˇ zadavk˚ u 3.1 Poˇzadavky na aplikaci . . . . . . . . . . . . 3.1.1 Zad´ an´ı popt´ avky . . . . . . . . . . . 3.1.2 Zpracov´ an´ı popt´ avky . . . . . . . . . 3.1.3 Archivace popt´ avky, tvorba nab´ıdky 3.1.4 Vytvoˇren´ı objedn´avky . . . . . . . . 3.1.4.1 Z archivovan´e nab´ıdky . . . 3.1.4.2 Ruˇcn´ım zad´an´ım . . . . . . 3.1.5 Archivace objedn´avky . . . . . . . . 3.1.6 Nastaven´ı syst´emu . . . . . . . . . . 3.2 Uˇzivatel´e a jejich ˇcinnosti . . . . . . . . . . 3.2.1 Uˇzivatel . . . . . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
9 9 9 9 9 10 10 10 10 10 10 10
. . . . .
11 11 11 11 12 12
4 Dostupn´ e webov´ e mapov´ e 4.1 Vybran´e WMS servery . 4.1.1 Seznam . . . . . 4.1.2 Google . . . . . . 4.1.3 iDnes . . . . . . 4.1.4 Tiscali . . . . . .
sluˇ zby . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . .
. . . . .
xi
. . . . .
. . . . .
. . . . .
. . . . .
. . . . . . . . . . .
. . . . .
. . . . . . . . . . .
. . . . .
. . . . . . . . . . .
. . . . .
. . . . . . . . . . .
. . . . .
. . . . . . . . . . .
. . . . .
. . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
xii
OBSAH
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
12 13 13 13 13 14 15 15 15 15 16 17 18
5 Postup zpracov´ an´ı popt´ avky 5.1 Zjiˇstˇen´ı vzd´ alenosti . . . . . . . . . . . . . . . . . . ´ 5.2 Uprava kilometr˚ u . . . . . . . . . . . . . . . . . . . 5.3 Urˇcen´ı kategorie vozidla . . . . . . . . . . . . . . . 5.4 V´ ypoˇcet ceny pˇri pouˇzit´ı cel´eho vozidla . . . . . . 5.5 V´ ypoˇcet ceny pˇri pouˇzit´ı ˇc´ asti loˇzn´e plochy vozidla
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
21 21 21 22 23 23
. . . . . . . . . . .
25 25 25 25 25 25 25 26 26 26 26 27
4.2
4.1.5 Navteq . . . . . . . . . . . . . . . 4.1.6 Centrum . . . . . . . . . . . . . . . Google Maps API . . . . . . . . . . . . . 4.2.1 Sluˇzba Direction API . . . . . . . 4.2.2 Sestaven´ı HTTP dotazu . . . . . . 4.2.3 V´ ystupn´ı parametry HTTP dotazu 4.2.4 Odpovˇed’ serveru . . . . . . . . . 4.2.4.1 Form´ at XML . . . . . . . 4.2.4.2 Stav odpovˇedi <status> 4.2.4.3 Trasa
. . . . . . 4.2.4.4 Legs . . . . . . . 4.2.4.5 Steps <step> . . . . . . 4.2.5 Konkr´etn´ı pˇr´ıklady . . . . . . . . .
6 Implementace 6.1 Jazyk a v´ yvojov´e prostˇred´ı . . . . . 6.2 Z´akladn´ı architektura a vzory . . . . 6.3 Pouˇzit´e knihovny a datab´ aze . . . . 6.3.1 SWING . . . . . . . . . . . . 6.3.2 Apache Derby . . . . . . . . . 6.4 Z´akladn´ı UML model bal´ıˇck˚ u a tˇr´ıd 6.4.1 Request, offer, order . . . . . 6.4.2 Firm . . . . . . . . . . . . . . 6.4.3 Options . . . . . . . . . . . . 6.4.4 Calculator . . . . . . . . . . . 6.4.5 Mediator . . . . . . . . . . . 7 Testov´ an´ı 7.1 Pl´an test˚ u . . . . . . . . . . . . . 7.1.1 Jednotkov´e testy . . . . . 7.1.1.1 Integraˇcn´ı testy 7.1.1.2 Validaˇcn´ı test . . 7.2 V´ ysledky test˚ u . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . verifikace . . . . . . . . . . . .
8 Tutori´ al - sezn´ amen´ı s programem 8.1 Informace pˇred spuˇstˇen´ım . . . . . 8.2 Start programu . . . . . . . . . . . 8.3 Popt´avka . . . . . . . . . . . . . . 8.4 Nab´ıdka . . . . . . . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
29 29 29 29 30 30
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
33 33 33 34 35
OBSAH
8.5 8.6 8.7
xiii
Objedn´ avka . . . . . . . . Firma . . . . . . . . . . . Nastaven´ı . . . . . . . . . 8.7.1 Kategorie vozidel . 8.7.2 Cena za m´ısto . . ´ 8.7.3 Uprava kilometr˚ u. 8.7.4 Pˇrikl´ adka . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
36 36 36 37 38 38 38
9 Z´ avˇ er 9.1 Zhodnocen´ı . . . . . . . . . . 9.1.1 Obchodn´ı hledisko . . 9.1.2 V´ yhody pro dispeˇcera 9.1.3 Budoucnost . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
41 41 41 41 41
xiv
OBSAH
Seznam obr´ azk˚ u 4.1 4.2
XML Odpovˇed’ dle pˇr´ıkladu 4.2.5 . . . . . . . . . . . . . . . . . . . . . . . . . Implementace URL v Javˇe dle pˇr´ıkladu 4.2.5 . . . . . . . . . . . . . . . . . .
19 20
6.1
UML class diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
7.1
Uk´ azka Junit test˚ u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
8.1 8.2 8.3 8.4 8.5 8.6 8.7
Hlavn´ı menu . . . . . . . . . . . . Popt´ avka . . . . . . . . . . . . . . Potvrzuj´ıc´ı dotaz na smaz´an´ı ˇr´adku Nab´ıdka . . . . . . . . . . . . . . . Objedn´ avka . . . . . . . . . . . . . Firma . . . . . . . . . . . . . . . . Nastaven´ı . . . . . . . . . . . . . .
34 35 35 36 37 37 38
. . . . . . .
. . . . . . .
xv
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
xvi
´ U ˚ SEZNAM OBRAZK
Seznam tabulek 4.1 4.2
Parametry HTTP dotazu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Stav odpovˇedi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
xvii
14 16
xviii
SEZNAM TABULEK
Pouˇ zit´ e znaˇ cky a zkratky • N´ avˇes - spolu s tahaˇcem se jedn´a o vozidlo maxim´aln´ıch, bˇeˇznˇe pˇr´ıpustn´ ych rozmˇer˚ u, pohybuj´ıc´ı se na silnic´ıch v r´amci Evropy. Lidmi, obvykle nijak nezainteresovan´ ymi v prostˇred´ı n´ akladn´ı dopravy, naz´ yvan´ y kamion. • DK - Dispeˇcer˚ uv kalkul´ ator. • Dispeˇcer - pracovn´ık v oblasti n´akladn´ı silniˇcn´ı dopravy. • Popt´ avka - dotaz z´ akazn´ıka t´ ykaj´ıc´ı se podm´ınek zajiˇstˇen´ı pˇrepravy. • Nab´ıdka - dokument vymezuj´ıc´ı moˇznosti a cenu za popt´avanou pˇrepravu. • Objedn´ avka - dokument podle kter´eho se bude pˇreprava realizovat. • WMS - Web Maps Service (webov´a mapov´a sluˇzba). • API - Application Programming Interface (oznaˇcuje v informatice rozhran´ı pro programov´ an´ı aplikac´ı). • HTTP - Hypertext Transfer Protocol (internetov´ y protokol urˇcen´ y pro v´ ymˇenu hypertextov´ ych dokument˚ u ve form´atu HTML). • URL - Uniform Resource Locator (jednotn´ y lok´ator zdroj˚ u). Je to ˇretˇezec znak˚ u s definovanou strukturou, kter´ y slouˇz´ı k pˇresn´e specifikaci um´ıstˇen´ı zdroj˚ u informac´ı (ve smyslu dokument nebo sluˇzba) na Internetu. • UTF-8 - znakov´ a sada. Zkratka pro UCS Transformation Format. Je to zp˚ usob k´odov´ an´ı ˇretˇezc˚ u znak˚ u Unicode/UCS do sekvenc´ı bajt˚ u. • XML - Extensible Markup Language (znaˇckovac´ı jazyk). • JSON - JavaScript Object Notation (zp˚ usob z´apisu dat - datov´ y form´at, nez´avisl´ y na poˇc´ıtaˇcov´e platformˇe). ˇ - poˇstovn´ı smˇerovac´ı ˇc´ıslo. • PSC • Tag - znaˇcka, pouˇz´ıvan´ a v r˚ uzn´ ych programovac´ıch jazyc´ıch. • HTML - HyperText Markup Language (znaˇckovac´ı jazyk). • JAVA - objektovˇe orientovan´ y programovac´ı jazyk.
1
2
SEZNAM TABULEK
• MVC - Model-View-Controller (softwarov´a architektura). • JRE - Java Runtime Environment (prostˇred´ı umoˇzn ˇuj´ıc´ı spouˇstˇet programy v Javˇe).
Kapitola 1
´ Uvod 1.1
Dispeˇ cer
Pr´ ace dispeˇcera v n´ akladn´ı silniˇcn´ı dopravˇe bezesporu patˇr´ı mezi jedno z nejstresovˇejˇs´ıch zamˇestn´ an´ı dneˇsn´ı doby. Pryˇc jsou ty ˇcasy, kdy neexistovaly mobiln´ı telefony a jin´e elektronick´e vymoˇzenosti a pˇrepravy prob´ıhaly pˇrev´aˇznˇe v ”koleˇcku”. Tzn. vozidlo odvezlo n´aklad na m´ısto urˇcen´ı a zpˇet se vracelo pr´azdn´e. Dnes je situace jin´a, dopravci se snaˇz´ı o co nejvˇetˇs´ı v´ ytˇeˇznost sv´ ych vozidel. To ovˇsem obn´aˇs´ı mnohem d˚ uslednˇejˇs´ı pl´anov´an´ı, kter´e spad´ a na bedra dispeˇcer˚ u. Jedn´ım z u ´kol˚ u, jak toho dos´ahnout, je nab´ıdnout z´akazn´ıkovi lukrativn´ı cenu a souˇcasnˇe db´ at na ekonomick´ y v´ ynos z uskuteˇcnˇen´e pˇrepravy. Z´aroveˇ n by tato ˇcinnost mˇela b´ yt provedena v co nejkratˇs´ım ˇcase.
1.2
Z´ amˇ er
Hlavn´ım smyslem projektu je automatick´ y gener´ator ceny za popt´avanou pˇrepravu n´akladu. Kaˇzd´ y dispeˇcer si takovou cenu mus´ı pokaˇzd´e pomˇernˇe sloˇzitˇe vypoˇc´ıtat, pˇriˇcemˇz je nutn´e br´at v u ´vahu r˚ uzn´e alternativy. Prvotn´ım hlediskem je trasa, kterou vozidlo pojede. Tzn. je nutn´e vyhledat v mapˇe nejvhodnˇejˇs´ı cestu. Nˇekdy je vhodnˇejˇs´ı nejrychlejˇs´ı cesta, nˇekdy nejkratˇs´ı, nˇekdy je ovˇsem vhodnˇejˇs´ı nejlevnˇejˇs´ı varianta. Vˇetˇsina souˇcasn´ ych map m´a tato vyhled´ av´ an´ı pomˇernˇe pˇeknˇe vyˇreˇsena. Prvotn´ı c´ıl je tedy nalezen´ı vhodn´e trasy. Po zjiˇstˇen´ı poˇctu ujet´ ych kilometr˚ u bude aplikace pokraˇcovat dalˇs´ımi v´ ypoˇcty s pˇrihl´ednut´ım k datu dod´ an´ı. Pokud pˇreprava spˇech´a nebo se jedn´a o citliv´e zboˇz´ı, at’ uˇz s pˇrihl´ednut´ım k jeho finanˇcn´ı hodnotˇe, ˇci materi´ alu, ze kter´eho je vyrobeno, je nutn´e najmout cel´e vozidlo, kter´e pojede pouze s t´ımto jedn´ım n´akladem. Volba vhodn´e kategorie vozidla je z´avisl´ a na zadan´ ych rozmˇerech a hmotnosti n´akladu. Pokud pˇreprava nespˇech´a nebo zboˇz´ı nen´ı tolik n´achyln´e k u ´jmˇe a nezapln´ı cel´ y n´avˇes, je vhodn´e jej pˇriloˇzit k jin´emu n´akladu smˇeˇruj´ıc´ımu pˇribliˇznˇe stejn´ ym smˇerem. Cena pˇrepravy v tomto pˇr´ıpadˇe v´ yznamnˇe kles´a. Je vˇzdy v´ıce moˇznost´ı i v´ıce kombinac´ı jak dopravu uskuteˇcnit s pˇrihl´ednut´ım na z´ajmy z´akazn´ıka. Koeficienty koneˇcn´eho v´ ypoˇctu by mˇely b´ yt upravovateln´e, vzhledem k v´ yvoji cen na trhu.
3
4
´ KAPITOLA 1. UVOD
Kapitola 2
Anal´ yza 2.1
Obecn´ e informace
V souˇcasn´e dobˇe jsou moˇznosti vyuˇzit´ı v´ ypoˇcetn´ı techniky pˇri zpracov´an´ı popt´avky velmi omezen´e. Z´ akazn´ıci popt´ avaj´ı pˇrepravy ponejv´ıce telefonicky, pˇr´ıpadnˇe e-mailem. Propracovan´e, funguj´ıc´ı on-line formul´ aˇre jsou sp´ıˇse vyj´ımkou. Pokud se i pˇresto vyskytuj´ı, je jen velmi m´ alo klient˚ u, kteˇr´ı je vyuˇz´ıvaj´ı. Tato ned˚ uvˇera pravdˇepodobnˇe tkv´ı v nejistotˇe rychl´e odpovˇedi dopravn´ı spoleˇcnosti. Na trhu je obrovsk´a konkurence a vˇetˇsina firem se snaˇz´ı o zrychlen´ı poskytovan´ ych sluˇzeb. I z´akazn´ıci dopravc˚ u jsou tlaˇceni ˇcasem.
2.2
Vymezen´ı ˇ cinnosti dispeˇ cera n´ akladn´ı dopravy
Pr´ ace dispeˇcera v mezin´ arodn´ı silniˇcn´ı n´akladn´ı dopravˇe spoˇc´ıv´a pˇredevˇs´ım v pˇrij´ım´ an´ı a zpracov´ av´ an´ı popt´ avek od z´ akazn´ık˚ u spoleˇcnosti. D´ale pak je jeho ˇcinnost zamˇeˇrena na zajiˇstˇen´ı uskuteˇcnˇen´ı pˇr´ıpadn´e objedn´avky. K tomu se nab´ız´ı v´ıce moˇznost´ı podle zamˇeˇren´ı firmy. Dalˇs´ı popis se t´ yk´ a samotn´e popt´avky a nab´ıdky, kter´e jsou hlavn´ım pˇredmˇetem navrhovan´eho software. Pˇrijatou popt´ avku by mˇel tedy dispeˇcer zpracovat pˇresnˇe a v co nejkratˇs´ım ˇcase. K tomu je d˚ uleˇzit´e zn´ at vˇsechna data potˇrebn´a k optimalizaci pˇrepravy. Prioritn´ı jsou zde rozmˇery a hmotnost pˇrepravovan´eho n´akladu, pˇresn´a specifikace m´ısta nakl´ adky a vykl´ adky a term´ın dod´ an´ı. V tomto bodˇe dispeˇcer obvykle postupuje n´asledovnˇe: vyhled´a si vhodnou trasu pˇrepravy v mapˇe (on-line mapˇe nebo pokud m´a k dispozici off-line verzi), ˇc´ımˇz zjist´ı vzd´alenost. D´ ale podle rozmˇer˚ u n´ akladu urˇc´ı vhodnou kategorii vozidla, kter´e zboˇz´ı uveze a vyn´asob´ı poˇcet kilometr˚ u pˇr´ısluˇsnou sazbou. Po t´e pˇrihl´edne k term´ınu dod´an´ı. Pokud pˇreprava nespˇech´ a, zjist´ı moˇzn´e zdroje vozidel v okol´ı m´ısta nakl´adky, m´ıˇr´ıc´ı pˇribliˇznˇe smˇerem k m´ıstu vykl´ adky a z dosud zjiˇstˇen´e ceny vypoˇc´ıt´ a pomˇernou ˇc´ast na pˇriloˇzen´ı n´akladu k jin´emu zboˇz´ı. Nakonec, podle spolupr´ ace s popt´ avaj´ıc´ı firmou, pˇrihl´edne k moˇzn´ ym slev´am.
5
´ KAPITOLA 2. ANALYZA
6
N´aslednˇe dispeˇcer vypracuje a odeˇsle nab´ıdku z´akazn´ıkovi (e-mailem, faxem...). Takto zpracovanou nab´ıdku si poznamen´ a pro pˇr´ıpadnou objedn´avku ze strany klienta, tedy vˇetˇsinou... Pokud zas´ıl´a nab´ıdku e-mailem, m´ a ji pro pˇr´ıpad kontroly alespoˇ n nˇejak´ ym zp˚ usobem archivovanou. V opaˇcn´em pˇr´ıpadˇe si dispeˇcer pˇrev´aˇznˇe dˇel´a pozn´amky ruˇcnˇe na pap´ır a ve ˇ zmatku, kter´ y obvykle panuje, si zapomene nab´ıdku zaevidovat. Casto se pak dost´av´a do velice prek´ern´ı situace, kdy se z´ akazn´ık rozhodne pˇrepravu prostˇrednictv´ım t´eto spoleˇcnosti realizovat a dispeˇcer marnˇe vzpom´ın´ a jakou nab´ıdl cenu. Pokud tedy dojde k zasl´ an´ı objedn´ avky ze strany z´akazn´ıka, ponejv´ıce v p´ısemn´e podobˇe faxem nebo v elektronick´e podobˇe e-mailem, vyj´ımeˇcnˇe (u velmi d˚ uvˇeryhodn´e spoleˇcnosti, pˇr´ıpadnˇe u firmy s n´ıˇz m´ a dopravce uzavˇrenu dlouhodobou smlouvu) u ´stnˇe telefonicky, mus´ı b´ yt tato objedn´ avka zaevidov´ ana. Je to velice d˚ uleˇzit´ y okamˇzik, nebot’ na nˇem z´avis´ı vˇsechny ostatn´ı u ´kony. Je nutn´e do softwaru, kter´ y dopravn´ı firma vyuˇz´ıv´a, dosadit vˇsechna d˚ uleˇzit´a data t´ ykaj´ıc´ı se pˇrepravy. Objedn´ avka je n´aslednˇe archivov´ana, odesl´ana k dalˇs´ımu zpracov´an´ı a samotn´emu uskuteˇcnˇen´ı pˇrepravy.
2.3 2.3.1
Anal´ yza st´ avaj´ıc´ıho stavu Obecn´ e informace
V prostˇred´ı, ve kter´em bude aplikace spouˇstˇena, je pouˇz´ıv´an operaˇcn´ı syst´em Microsoft Windows. Procesor Intel(R)Core(TM)2 CPU T7200, 2GB RAM, HDD 500GB (s pˇribliˇznˇe 120 GB voln´eho m´ısta), monitor 15,4“. Je pravdˇepodobn´e, ˇze aplikace bude pouˇz´ıv´ana i v prostˇred´ı s monitorem o velikosti 10“. Pro obsluhu elektronick´e poˇsty je vyuˇz´ıv´an Microsoft Outlook. Objedn´avky a dalˇs´ı firemn´ı dokumenty jsou vedeny v Excelu. Na webov´ ych str´ank´ach firmy je jen mal´ y formul´aˇr k zas´ıl´an´ı zpr´ av. Tento formul´ aˇr obsahuje pouze dvˇe pole (odes´ılatel, text) a nen´ı nijak chr´anˇen proti zneuˇzit´ı. Z tohoto formul´ aˇre jsou zpr´avy odes´ıl´any (php, method=“post“) do schr´anky ([email protected]) veden´e u spoleˇcnosti T-mobile. Popt´avky na dopravn´ı sluˇzby jsou pˇrij´ım´any prostˇrednictv´ım elektronick´e poˇsty, telefonu, pˇr´ıpadnˇe faxem. Ke zpracov´ an´ı nab´ıdky jsou pouˇz´ıv´ any aplikace Route 66 verze 99, s mapov´ ymi podklady Evropy (pouze mˇesta), d´ ale ROUTE 66 verze 2005, s mapov´ ymi podklady Evropy (ulice), kilometrovn´ık databanky RaalTrans verze 7.508 (pouze mˇesta) a on-line mapy na adres´ach www.google.cz, www.mapy.cz, www.amapy.centrum.cz. V zimn´ıch mˇes´ıc´ıch jsou vyuˇz´ıv´any aktu´aln´ı informace z www.doprava.mapy.cz, kde jsou zv´ yraznˇeny nepr˚ ujezdn´e u ´seky komuˇ nikac´ı v CR. Nab´ıdky z´ akazn´ık˚ um jsou zas´ıl´ any ponejv´ıce elektronickou poˇstou nebo v u ´stn´ı podobˇe telefonicky, pˇr´ıpadnˇe sms. Ve zvl´ aˇstn´ıch pˇr´ıpadech skypem nebo icq. Kniha popt´avek je vedena v Excelu, kde je pro kaˇzdou firmu vyhrazen zvl´aˇstn´ı list. Pro kaˇzdou popt´avku jsou zde evidov´any tyto u ´daje: datum, odkud, kam, ton´aˇz, rozmˇery, cenov´a nab´ıdka, kategorie vozidla, dopravce, poˇcet km, pozn´ amka. Firma se zamˇeˇruje pouze na pˇrepravy v r´amci EU (zejm´ena na export a import do Nˇemecka.)
´ ´ ´IC´IHO STAVU 2.3. ANALYZA STAVAJ
2.3.2
7
Postup zpracov´ an´ı nab´ıdky
Zpracov´ an´ı popt´ avky prob´ıh´ a n´asleduj´ıc´ım zp˚ usobem. Nejprve dispeˇcer zkontroluje, zda popt´avka obsahuje vˇsechny d˚ uleˇzit´e informace potˇrebn´e k vyhotoven´ı nab´ıdky. Pokud ne, zajist´ı si je dodateˇcn´ ym kontaktov´an´ım z´akazn´ıka. 2.3.2.1
V´ ypoˇ cet ceny za n´ ajem cel´ eho vozidla
Podle m´ıst nakl´ adky a vykl´ adky vyhled´a v mapˇe vhodnou trasu. Vizu´alnˇe zkontroluje navrˇzenou trasu a pˇr´ıpadnˇe uprav´ı pr˚ ujezdn´ı m´ısta tak, aby v´ ysledn´a trasa byla co nejefektivnˇejˇs´ı nebo nejrychlejˇs´ı a to pˇredevˇs´ım z pohledu praktick´ ych zkuˇsenost´ı dispeˇcera. Parametry mapov´ ych podklad˚ u se obvykle m´ırnˇe odliˇsuj´ı od skuteˇcnosti nebo nejsou dostateˇcnˇe aktualizov´ any. Zjiˇstˇen´e kilometry dispeˇcer zaokrouhl´ı smˇerem nahoru nebo pˇriˇcte cca 5 procent, to podle toho, kterou mapu pouˇzil. Je to z toho d˚ uvodu, ˇze nˇekter´a mˇesta maj´ı velkou rozlohu a pokud nen´ı k dispozici pˇresn´a adresa (ta obvykle neb´ yv´a souˇc´ ast´ı popt´avky), je pravdˇepodobn´e, ˇze se ve skuteˇcnosti najede mnohem v´ıc kilometr˚ u. Tak´e obchvaty mˇest pˇridaj´ı na mnoˇzstv´ı kilometr˚ u. A jiˇz zm´ınˇen´a celkov´a nepˇresnost map m´a tak´e sv˚ uj vliv. Podle rozmˇer˚ u a v´ ahy zboˇz´ı dispeˇcer vyhodnot´ı vhodnou kategorii vozidla. Existuje v´ıce kategori´ı rozdˇelen´ ych podle velikosti loˇzn´e plochy a nosnosti. Kaˇzdou kategorii urˇcuje trˇzn´ı cena. Poˇcet kilometr˚ u je tedy vyn´asoben pˇr´ısluˇsnou sazbou za 1 km. Takto z´ıskan´a cena je jeˇstˇe upravena podle konkr´etn´ıho z´akazn´ıka. Z´akazn´ık˚ um s dlouhodobou spoluprac´ı je poskytov´ ana sleva. 2.3.2.2
V´ ypoˇ cet pˇ rikl´ adkov´ e ceny
Je vypoˇc´ıt´ an pomˇer loˇzn´e plochy (pˇr´ıpadnˇe pomˇer nosnosti, podle vyˇsˇs´ı hodnoty), kterou zabere zboˇz´ı na vozidle o kategorii vyˇsˇs´ı nebo na loˇzn´e ploˇse n´avˇesu. Pˇriloˇzit zboˇz´ı na n´ avˇes vych´az´ı obvykle finanˇcnˇe nejl´epe, avˇsak nelze j´ım zaj´ıˇzdˇet do center mˇest, nelze s n´ım jet po u ´zk´ ych cest´ ach (vˇetˇsinou je zde z´akaz vjezdu vozidel nad 12 t) a nelze j´ım sb´ırat drobn´e n´aklady vhodn´e sp´ıˇse pro dod´ avky. Kaˇzd´a nakl´adka zabere nˇejak´ y ˇcas a je nere´aln´e, aby kamion jezdil napˇr. 14 dn´ı po Nˇemecku a sb´ıral n´aklad po maliˇck´ ych ˇc´astech a pak tyto ˇ z´asilky dalˇs´ıch 14 dn´ı rozv´ aˇzel napˇr. po Cech´ach. Kaˇzdop´adnˇe m˚ uˇze se st´at, ˇze se kamion bude pohybovat pr´ avˇe v m´ıstˇe takov´e drobn´e nakl´adky a bude moˇzn´e ji pˇriloˇzit. Z toho vypl´ yv´ a, ˇze dispeˇcer je nucen urˇcit co moˇzn´a nejniˇzˇs´ı cenu za pˇrepravu, ale tak, aby byla re´aln´a na uskuteˇcnˇen´ı. Sazbou za 1 km n´avˇesu (nav´ yˇsenou s ohledem na ˇcasov´e zdrˇzen´ı pˇri v´ıce nakl´ adk´ ach) vyn´ asob´ı jiˇz zjiˇstˇen´ y poˇcet kilometr˚ u. Tuto ˇc´astku pak vyn´asob´ı pomˇerem loˇzn´e plochy, pˇr´ıpadnˇe pomˇerem nosnosti. Z´ıskan´a cena se m˚ uˇze opˇet zohlednit moˇznou z´akaznickou slevou. 2.3.2.3
Vyhodnocen´ı nab´ıdky
Nyn´ı m´ a dispeˇcer k dispozici dvˇe moˇzn´a ˇreˇsen´ı dan´e pˇrepravy. Pˇred odesl´an´ım nab´ıdky z´akazn´ıkovi nejprve zjist´ı, zda m´a k dispozici vhodn´a vozidla a to v dan´ y okamˇzik na dan´em m´ıstˇe. Pokud ano, odeˇsle takto zpracovanou nab´ıdku ve formˇe, kterou z´akazn´ık
´ KAPITOLA 2. ANALYZA
8
preferuje. Je vhodn´e zas´ılat z´ akazn´ıkovi obˇe nab´ıdky i pˇresto, ˇze pˇreprava spˇech´a. Je-li druh´a moˇznost (pˇriloˇzen´ı k jin´e z´ asilce) v´ yraznˇe finanˇcnˇe v´ yhodnˇejˇs´ı, z´akazn´ık ˇcastokr´at tuto moˇznost vyuˇzije.
2.4
Vymezen´ı rozsahu a funkc´ı informaˇ cn´ıho syst´ emu
Od syst´emu DK se oˇcek´ av´ a, ˇze poskytne moˇznost rychl´e reakce na pot´avanou pˇrepravu. Z´aroveˇ n vˇsak bude moˇzn´e popt´ avku ihned archivovat. Bude br´an zˇretel na povinn´a pole, d˚ uleˇzit´a pro spr´ avn´ y v´ ypoˇcet a pˇresto svobodu rozhodnut´ı obsluhy software na vkl´adan´a data. Aplikace by pak mˇela automaticky generovat cenu z dostupn´ ych dat. V prvn´ı ˇradˇe zjistit nejvhodnˇejˇs´ı trasu podle m´ıst v popt´ avce. D´ale urˇcit druh vozidla, kter´e je schopno dan´ y n´aklad uv´ezt. Kategorie vozidel zadan´ ych a pˇrednastaven´ ych v syst´emu p˚ ujdou editovat a pˇrid´avat podle potˇreby (10 kategori´ı bohatˇe pokryje potˇreby rozdˇelen´ı). Sazby za kilometr u jednotliv´ ych druh˚ u bude moˇzn´e volnˇe mˇenit za chodu aplikace. Je moˇzn´e tvoˇrit nab´ıdku pˇri obsazen´ı cel´eho vozidla a z´aroveˇ n upozornit z´akazn´ıka na moˇznost v´ yraznˇe niˇzˇs´ı ceny, ovˇsem s vˇetˇs´ı ˇcasovou rezervou a ponechat tak rozhodnut´ı na nˇem. Tzn. v´ ysledn´ y dokument bude obsahovat ceny dvˇe. Zpracovan´a nab´ıdka bude okamˇzitˇe archivov´ana. Pˇr´ıpadn´a objedn´ avka bude tvoˇrena vyvol´an´ım historie nab´ıdek, zkop´ırov´an´ım dat a doplnˇen´ım o dalˇs´ı u ´daje nebo vyplnˇen´ım pr´azdn´eho formul´aˇre. Po vyplnˇen´ı bude ihned archivov´ana a pˇred´ ana k dalˇs´ımu zpracov´ an´ı.
2.5
Moˇ znosti rozˇ s´ıˇ ren´ı
Tento syst´em bude rozˇs´ıˇren o prov´ az´ an´ı aplikace s on-line formul´aˇrem, kter´ y ulehˇc´ı klient˚ um dopravn´ı spoleˇcnosti popt´ av´ an´ı pˇreprav. Pˇr´ıchoz´ı zpr´avy bude znaˇcit blikaj´ıc´ı ikona v hlavn´ım panelu programu DK. Z´ akazn´ık˚ um bude umoˇznˇeno pˇrihl´aˇsen´ı do zabezpeˇcen´e sekce na webov´ ych str´ ank´ ach dopravn´ı spoleˇcnosti, kde bude zobrazena historie jimi zaslan´ ych popt´avek, vˇcetnˇe cenov´ ych kalkulac´ı nab´ıdnut´ ych dopravcem. Pro zjednoduˇsen´ı odes´ıl´an´ı nab´ıdek, bude m´ıt dispeˇcer moˇznost generovat a odeslat e-mailovou zpr´avu pˇr´ımo z aplikace. Jako dalˇs´ı alternativa se nab´ız´ı zobrazen´ı trasy vyhledan´e prostˇrednictv´ım WMS (Web Map Service). Implementace tˇechto doplˇ nk˚ u vˇsak nebude zahrnuta v t´eto pr´aci.
Kapitola 3
Katalog poˇ zadavk˚ u Tato kapitola pˇredkl´ ad´ a strukturovan´e informace o poˇzadavc´ıch na syst´em.
3.1 3.1.1
Poˇ zadavky na aplikaci Zad´ an´ı popt´ avky
Vyplnˇen´ı formul´ aˇre dispeˇcerem prostˇrednictv´ım off-line formul´aˇre. 1. Vytvoˇren´ı formul´ aˇre - formul´aˇrov´a pole: firma, jm´eno, kontakt, m´ısto odkud, m´ısto kam, poˇcet nakl´ adek, hmotnost, rozmˇery n´akladu, poˇcet palet, datum nakl´adky, term´ın dod´ an´ı, k´ od slevy, pozn´ amka.
3.1.2
Zpracov´ an´ı popt´ avky
Automatick´e generov´ an´ı ceny za popt´avanou pˇrepravu n´akladu dle zadan´ ych u ´daj˚ u ve formul´ aˇri => vypracov´ an´ı nab´ıdky. 1. Zjiˇstˇen´ı kilometr˚ u dle pol´ıˇcek odkud – kam (vyhled´an´ı vhodn´e trasy v mapov´ ych podkladech). 2. Zjiˇstˇen´ı vhodn´eho vozidla podle v´ahy a rozmˇer˚ u n´akladu, pˇr´ıpadnˇe podle poˇctu palet (urˇcit kategorie vozidel - moˇznost pˇrid´an´ı/maz´an´ı kategorie). 3. Urˇcen´ı ceny za 1 km u jednotliv´ ych kategori´ı (moˇznost u ´prav). 4. V´ ypoˇcet ceny (kompletn´ı n´ aklad – najmut´ı cel´eho vozidla / pˇrikl´adka – najmut´ı pomˇern´e ˇc´ asti vozidla).
3.1.3
Archivace popt´ avky, tvorba nab´ıdky
1. Uloˇzen´ı zpracov´ avan´e popt´ avky do datab´aze (archivovat vˇsechna formul´aˇrov´a pole). 2. Zobrazen´ı vytvoˇren´e nab´ıdky.
9
ˇ ˚ KAPITOLA 3. KATALOG POZADAVK U
10
3.1.4 3.1.4.1
Vytvoˇ ren´ı objedn´ avky Z archivovan´ e nab´ıdky
1. Naˇcten´ı dat do formul´ aˇre z historie nab´ıdek. 2. Doplnˇen´ı ˇc´ısla objedn´ avky. 3. Doplnˇen´ı datumu vytvoˇren´ı objedn´avky. 3.1.4.2
Ruˇ cn´ım zad´ an´ım
1. Vytvoˇren´ı formul´ aˇre - formul´ aˇrov´ a pole: firma, jm´eno, kontakt, m´ısto odkud, m´ısto kam, poˇcet nakl´ adek, hmotnost, rozmˇery n´akladu, poˇcet palet, datum nakl´adky, term´ın dod´an´ı, pozn´ amka, ˇc´ıslo objedn´ avky, datum vytvoˇren´ı, dohodnut´a cena.
3.1.5
Archivace objedn´ avky
1. Uloˇzen´ı objedn´ avky do datab´ aze (vˇsechna formul´aˇrov´a pole). 2. Prohl´ıˇzen´ı, vyhled´ av´ an´ı, maz´ an´ı a editov´an´ı archivovan´ ych z´aznam˚ u.
3.1.6
Nastaven´ı syst´ emu
1. Zobrazen´ı a editace vˇsech moˇznost´ı nastaven´ı (kategorie vozidel, nav´ yˇsen´ı ujet´ ych km, koeficient pomˇern´e ˇc´ asti pˇri dokl´ adce, manipulaˇcn´ı poplatek za nakl´adku/vykl´adku). 2. Uloˇzen´ı nastaven´ı a n´ avrat do syst´emu. 3. Storno a n´ avrat do syst´emu.
3.2
Uˇ zivatel´ e a jejich ˇ cinnosti
Nejsou poˇzadov´ ana ˇz´ adn´ a omezen´ı (role) na uˇzivatele syst´emu.
3.2.1
Uˇ zivatel
1. vkl´ad´an´ı dat do evidence 2. editace dat v evidenci 3. maz´an´ı dat v evidenci 4. vyhled´av´ an´ı dat dle krit´eri´ı 5. tisk dat 6. instalace syst´emu 7. odinstalace syst´emu 8. u ´drˇzba syst´emu
Kapitola 4
Dostupn´ e webov´ e mapov´ e sluˇ zby WMS (Web map services) je webov´a mapov´a sluˇzba, kter´a umoˇzn ˇuje sd´ılet geografick´ a data prostˇrednictv´ım internetu. Pomoc´ı WMS je moˇzn´e pracovat s daty z r˚ uzn´ ych zdroj˚ u, pˇriˇcemˇz data nejsou fyzicky um´ıstˇena na lok´aln´ım poˇc´ıtaˇci. Zdrojov´ ymi daty um´ıstˇen´ ymi na serveru mohou b´ yt vektorov´ a i rastrov´a data. Existuje velk´e mnoˇzstv´ı WMS server˚ u, poskytuj´ıc´ıch mapov´e sluˇzby, kter´e jsou bˇeˇznˇe ˇ e Republice urˇcitˇe patˇr´ı pˇr´ıstupn´e z webov´ ych prohl´ıˇzeˇc˚ u. Mezi nejpropagovanˇejˇs´ı v Cesk´ n´asleduj´ıc´ı WMS servery.
4.1 4.1.1
Vybran´ e WMS servery Seznam
Velmi zn´ am´ y vyhled´ avaˇc Seznam provozuje WMS server na adrese http://mapy.cz. Obsahuje mapy Evropy. Jeho API (uˇzivatelsk´e rozhran´ı, umoˇzn ˇuj´ıc´ı pˇristupovat ke sluˇzb´ am serveru mimo webov´ y prohl´ıˇzeˇc) je zamˇeˇreno pouze na webov´e prostˇred´ı. Pouˇz´ıvat API mapy.cz lze pˇri splnˇen´ı licenˇcn´ıch podm´ınek na z´akladˇe vygenerovan´eho javascriptu, kter´ y je pˇripojen k webov´e str´ ance. API pak je funkˇcn´ı v podporovan´ ych prohl´ıˇzeˇc´ıch. Dokumentace je dostupn´ a na adrese http://api.mapy.cz. Pˇri pl´anov´an´ı trasy nut´ı tento server uˇzivatele bl´ıˇze specifikovat zadan´ a m´ısta. Pˇri prvotn´ım zpracov´an´ı nahl´edne do sv´e datab´aze m´ıst, odpov´ıdaj´ıc´ıch vloˇzen´emu v´ yrazu a nab´ıdne vhodn´e alternativy v pomˇernˇe nepˇrehledn´em a matouc´ım seznamu. Pokud se uˇzivatel bezpeˇcnˇe neorientuje v dan´e oblasti, je pˇrinejmenˇs´ım zmaten. D´elka nalezen´e trasy je m´ırnˇe niˇzˇs´ı neˇz re´alnˇe ujet´e kilometry.
4.1.2
Google
Proslul´ y Google poskytuje vysoce kvalitn´ı mapov´e podklady z cel´eho svˇeta na adrese http://mapy.google.cz. Tento internetov´ y gigant je velice pˇr´atelsk´ y k v´ yvoj´aˇr˚ um, coˇz dokazuje pˇrehledn´ a a smyslupln´ a dokumentace poskytovan´ ych sluˇzeb, lehce dostupn´a komukoliv, kter´e je vˇenov´ ana zvl´ aˇstn´ı sekce 4.2. Zdaj´ı se b´ yt nejlepˇs´ı ze zm´ınˇen´ ych a to pˇredevˇs´ım z pohledu porovn´ an´ı skuteˇcnˇe ujet´ ych kilometr˚ u, dle knihy j´ızd veden´e nejmenovanou dopravn´ı spoleˇcnost´ı, se vzd´ alenostmi dodan´e t´ımto serverem. Odchylky jsou zanedbateln´e. Nav´ıc si
11
´ WEBOVE ´ MAPOVE ´ SLUZBY ˇ KAPITOLA 4. DOSTUPNE
12
Google nevynucuje detailn´ı urˇcen´ı zadan´ ych destinac´ı, ale s´am rozhoduje, kter´e m´ısto, podle vloˇzen´eho ˇretˇezce znak˚ u, bude pro v´ ypoˇcet trasy pouˇzito. Aˇckoli by se mohlo zd´at, ˇze je tak uˇzivatel ochuzen o vlastn´ı volbu, je toto ˇreˇsen´ı velice intuitivn´ı a pˇr´atelsk´e. Rozhodovac´ı pravidla jsou zˇrejmˇe na velmi vysok´e u ´rovni a skuteˇcnˇe odpov´ıdaj´ı tomu, co uˇzivatel oˇcek´av´a.
4.1.3
iDnes
Zpravodajsk´ y port´ al iDnes.cz poskytuje WMS na adrese http://mapy.idnes.cz. K disˇ e Republiky. Pl´anovaˇc tras je vˇsak pozici jsou mapy cel´eho svˇeta a podrobn´e mapy Cesk´ ˇ funkˇcn´ı pouze pro Ceskou Republiku, na coˇz vˇsak uˇzivatel nen´ı nijak upozornˇen. Zjist´ı to aˇz po nˇekolika marn´ ych pokusech, kdy se s´ am dovt´ıp´ı, ˇze tudy cesta nevede... Mapov´ y port´al m´a neveˇrejn´e API rozhran´ı. Dokumentace tedy nen´ı veˇrejnˇe pˇr´ıstupn´a a do budoucna, dle slov Lud’ka Pikarda, projektov´eho manaˇzera iDnes.cz, ani o jej´ım zveˇrejnˇen´ı neuvaˇzuj´ı.
4.1.4
Tiscali
Tento server poskytuje kilometrovn´ık a mapu cel´eho svˇeta na adrese http://mapy.tiscali.cz. Jeho reakce na vstupn´ı data, indikuj´ıc´ı zaˇc´atek a konec hledan´e cesty, velmi pˇripom´ın´a chov´an´ı v´ yˇse zm´ınˇen´eho Googlu. Uˇzivatel nen´ı nijak omezov´an v´ ybˇerem pˇresn´e destinace a pˇresto se mu dost´ av´ a velmi uspokojiv´ ych v´ ysledk˚ u. V´ ysledn´e kilometry jsou t´eˇz naprosto stejn´e. Je zˇrejm´e, ˇze tyto sluˇzby jsou zprostˇredkovan´e a p˚ uvodn´ı hodnoty poch´azej´ı z Googlu. Nen´ı zde vˇsak dokonal´ a shoda, nebot’ nˇekter´e menˇs´ı obce, kter´e Google eviduje, jsou z Tiscali zcela nedostupn´e. V takov´em pˇr´ıpadˇe se zobraz´ı hl´aˇsen´ı s ozn´amen´ım ”Nepodaˇrilo se naj´ıt ˇz´adn´ y bod na mapˇe dle zadan´eho m´ısta. Je moˇzn´e, ˇze adresa jeˇstˇe nebyla zaindexov´ana naˇs´ım Google robotem”. Nicm´enˇe, po vygenerov´an´ı trasy je moˇzn´e z´ıskat odkaz na webovou str´anku se zobrazenou nalezenou cestou. To by mohla b´ yt dobr´a alternativa v pl´anovan´em budouc´ım rozˇs´ıˇren´ı aplikace, kter´e bude umoˇzn ˇovat zobrazit mapu s vytyˇcenou trasou.
4.1.5
Navteq
Obsahuje mapy svˇeta a je provozov´ an na adrese http://www.cz.map24.com. Podporuje v´ yvoj´aˇre z ˇsirok´ ych oblast´ı. Pro pˇripojen´ı z javovsk´e aplikace je zapotˇreb´ı st´ahnout a rozbalit jejich klienta na disk. Po t´e lze implementovat pˇripojen´ı k jejich sluˇzb´am podle dostupn´e dokumentace na adrese http://www.nn4d.com/site/global/build/web services/map24-webservices-xml-soap/getting-started-guides/getting-started—java.jsp. Nalezen´ı n´avod˚ u nen´ı ni’ jak sloˇzit´e, nebot odkaz pro v´ yvoj´ aˇre je zv´ yraznˇen v bl´ızkosti mapy. Zˇrejmˇe si pˇredstavitel´e tohoto serveru jsou dostateˇcnˇe jisti sv´ ym umem a neboj´ı se nab´ıdnout spolupr´aci ostatn´ım. Pr´ace s pl´anovaˇcem tras je pomˇernˇe pˇr´ıjemn´a a v´ ysledn´e kilometry jsou v porovn´an´ı s ostatn´ımi servery sp´ıˇse vyˇsˇs´ı. To vˇsak v˚ ubec nen´ı na ˇskodu, sp´ıˇse v´ yhoda, nebot’ to bl´ıˇz vystihuje realitu. Jako bonus nab´ız´ı moˇznosti ubytov´an´ı v c´ılov´e lokalitˇe. To je jistˇe zaj´ımav´e, pˇri pl´anov´an´ı soukrom´e cesty.
4.2. GOOGLE MAPS API
4.1.6
13
Centrum
ˇ e Reubliky, Evropy i cel´eho svˇeta, kilometrovn´ık Pˇrestoˇze tento server obsahuje mapy Cesk´ ˇ poskytuje, stejnˇe jako port´ al iDnes, jen pro Ceskou Republiku. WMS provozuje na adrese http://amapy.centrum.cz. Pˇred pouˇzit´ım AMapy API je nutn´e se nejprve zaregistrovat a z´ıskat pˇr´ıstupov´ y kl´ıˇc. Dokumentace je dostupn´a na adrese http://amapy.centrum.cz/apidoc.
4.2
Google Maps API
Sluˇzby Google Maps API, kter´e poskytuje vyhled´avaˇc Google, jsou pouˇzity v aplikaci. Kilometrovn´ık vykazuje, dle pˇredchoz´ı anal´ yzy, pˇrijateln´e v´ ysledky a pˇripojen´ı k tˇemto sluˇzb´ am je relativnˇe jednoduch´e. Google Maps API nab´ız´ı ˇctyˇri r˚ uzn´e druhy sluˇzeb, kter´e jsou uvedeny v pˇrehledu n´ıˇze. Pˇ rehled sluˇ zeb • Geocoding API - pˇrev´ ad´ı zemˇepisn´e souˇradnice do textov´e podoby adresy, odpov´ıdaj´ıc´ı dan´emu m´ıstu na Zemi, pokud existuje. Pˇr´ıpadnˇe naopak. • Direction API - kalkuluje vzd´alenost zadan´e trasy. • Elevation API - urˇcuje nadmoˇrskou v´ yˇsku. • Places API - poskytuje dostupn´e informace o zadan´em m´ıstˇe, pˇr´ıpadnˇe o zaj´ımavostech v lokalit´ ach pobl´ıˇz.
4.2.1
Sluˇ zba Direction API
Pro u ´ˇcely kalkul´ atoru je vhodn´a sluˇzba Directions API. Tato sluˇzba kalkuluje vzd´alenost mezi lokacemi zadan´ ymi v HTTP (Hypertext Transfer Protocol) poˇzadavku. Tyto destinace mohou b´ yt specifikov´ any bud’ jako textov´ y ˇretˇezec nebo jako souˇradnice zˇemˇepisn´e ˇs´ıˇrky a d´elky. Directions API pak vr´ at´ı mnohasloˇzkov´ y dokument se sadou bod˚ u cesty, vˇcetnˇe podrobnost´ı o vzd´ alenostech mezi jednotliv´ ymi c´ıli. Sluˇzba je poskytov´ana zcela zdarma, pouze s omezen´ım 2.500 r˚ uzn´ ych poˇzadavk˚ u za jeden den. Je moˇzn´e zadat aˇz osm c´ılov´ ych bod˚ u uvnitˇr trati nav´ıc. Placen´ a varianta Google Maps Premier umoˇzn ˇuje dotazovat aˇz 100.000 poˇzadavk˚ u dennˇe s 23 c´ılov´ ymi body. Pro aplikace, pracuj´ıc´ı s citliv´ ymi daty uˇzivatele, je doporuˇcen´e pouˇz´ıvat zabezpeˇcen´ y protokol HTTPS.
4.2.2
Sestaven´ı HTTP dotazu
Ke zjiˇstˇen´ı d´elky trasy, je d˚ uleˇzit´e spr´avn´e sestaven´ı HTTP dotazu, prostˇrednictv´ım kter´eho lze vzn´est poˇzadavek na Google Maps API. Obecn´ y form´at takov´eho dotazu vypad´ a n´asledovnˇe http://maps.googleapis.com/maps/api/directions/output?parameters, kde ”http://maps.googleapis.com/maps/api” pˇredstavuje webovou adresu, ”directions” typ sluˇzby, kter´e se dotaz t´ yk´ a, ”output” form´at odpovˇedi serveru a ”parameters” v´ ystupn´ı
´ WEBOVE ´ MAPOVE ´ SLUZBY ˇ KAPITOLA 4. DOSTUPNE
14
parametry dotazu. Adresa a typ sluˇzby je dan´a a nemˇen´ı se. Form´at odpovˇedi m˚ uˇze b´ yt ’ bud XML nebo JSON, viz. 4.2.4. V´ yˇcet moˇzn´ ych parametr˚ u je uveden v tabulce 4.2.3. Ta obsahuje tˇri sloupce, pˇriˇcemˇz v prvn´ım sloupci jsou uvedeny n´azvy parametr˚ u vkl´adan´ ych do dotazu, ve druh´em je informace o tom, zda je parametr povinn´ y, tzn. zda mus´ı b´ yt vˇzdy obsaˇzen v poˇzadavku. Tˇret´ı sloupec vysvˇetluje v´ yznam dan´eho parametru a ud´av´a moˇzn´e hodnoty, kter´e je mu moˇzn´e pˇriˇradit.
4.2.3
V´ ystupn´ı parametry HTTP dotazu
Tabulka 4.1: Parametry HTTP dotazu parametr origin
povinn´ y ano
destination mode
ano ne
waipoints alternatives
ne ne
avoid
ne
units
ne
region language
ne ne
sensor
ano
popis a dosaditeln´e hodnoty prvn´ı bod trasy, dosazen´a hodnota ve form´atu textu nebo v zemˇepisn´ ych souˇradnic´ıch c´ıl cesty, hodnota stejnˇe jako u origin druh trasy (silnice, pˇeˇs´ı, kolo), moˇzn´e dosaditeln´e hodnoty: driving, walking nebo bicykling (defaultn´ı hodnota: driving) dalˇs´ı body trasy, stejnˇe jako u origin oddˇelen´e svisl´ıtkem ”|” v odpovˇedi m˚ uˇze b´ yt zahrnuto v´ıce moˇzn´ ych tras, hodnoty: true nebo false vyhnut´ı se urˇcit´ ym u ´sek˚ um cest, hodnoty: tolls (m´ ytn´e) nebo highways (d´ alnice) d´elkov´e jednotky (defaultnˇe: podle zvyklost´ı prvn´ıho m´ısta trasy), hodnoty metric (kilometry a metry) nebo imperial (m´ıle a stopy) dvouznakov´ y kod zemˇe, hodnoty: napˇr. ”de” nebo ”cs” jazyk, ve kter´em bude vr´acen v´ ysledek (default English), hodnoty: dle k´ odu ze seznamu (pˇr. cs) urˇcen´ı, zda je dotaz pos´ıl´an ze zaˇr´ızen´ı s lokaˇcn´ım senzorem, hodnoty: true nebo false
V tabulce 4.2.3 jsou uvedeny povinn´e i voliteln´e parametry dotazu. Jednotliv´e u ´daje se oddˇeluj´ı ampersandem ”&”, napˇr. ”units=metric&sensor=false”. Moˇzn´e hodnoty pro parametry region a language, jsou dostupn´e v tabulce na adrese https://spreadsheets.google.com/pub?key=p9pdwsai2hDMsLkXsoM05KQ&gid=1. Pˇr´ıklad je uveden zde 4.2.5. Pˇri tvorbˇe URL (Uniform Resource Locator - jednotn´ y zdrojov´ y lok´ator) by mˇela b´ yt nejvˇetˇs´ı pozornost zamˇeˇrena na vstupn´ı data, urˇcuj´ıc´ı dan´e destinace, tzn. adresy c´ıl˚ u. Existuje velk´ y pˇredpoklad, ˇze uˇzivatel zad´ a do formul´aˇre adresy, at’ jiˇz u ´myslnˇe, ˇci nepozornost´ı, jejichˇz text nebude odpov´ıdat pouze alfanumerick´ ym hodnot´am. Znaky ”! * ’ ( ) ; : @ & = + $ , / ? % # [ ] ” jsou rezervovan´e a pokud budou v dotazu pouˇzity, je potˇreba je nejprve zak´odovat. Vˇzdy se pouˇzije znak procenta a dvoum´ıstn´a hodnota ˇsestn´actkov´e soustavy, pˇr´ısluˇsej´ıc´ı dan´emu znaku v UTF-8 (mezin´arodn´ı znakov´a sada). Napˇr. znak ”?” by mˇel
4.2. GOOGLE MAPS API
15
b´ yt zak´ odov´ an na ”%3f”. P´ısmena s ˇceskou diakritikou by mˇela b´ yt zak´odov´ana obdobn´ ym zp˚ usobem jako rezervovan´e znaky. Bez omezen´ı pak mohou b´ yt pouˇzity vˇsechny ostatn´ı alfanumerick´e hodnoty. B´ yv´ a zvykem nahrazovat mezery znam´enkem plus ”+”, to pro pˇr´ıpad v´ıceslovn´ıho n´ azvu mˇesta. Vhodn´a skladba adresy v textov´e podobˇe je nejen n´azev mˇesta, ale ˇ t´eˇz PSC (poˇstovn´ı smˇerovac´ı ˇc´ıslo) a kod zemˇe. C´ılov´a m´ısta mohou obsahovat i ulici a ˇc´ıslo popisn´e. URL je limitov´ an maxim´aln´ı d´elkou 2048 znak˚ u. To je ovˇsem bohatˇe dostaˇcuj´ıc´ı.
4.2.4
Odpovˇ ed’ serveru
Zaj´ımav´ a je reakce Google Maps API, pˇri zad´an´ı trasy v podobˇe textu, kter´ y se snaˇz´ı ˇ vyhovˇet za kaˇzdou cenu. Pokud je souˇcasnˇe zad´ano PSC (poˇstovn´ı smˇerovac´ı ˇc´ıslo) i mˇesto, ˇ kter´e dan´emu poˇstovn´ımu smˇerovac´ımu ˇc´ıslu neodpov´ıd´a, pˇrihl´edne Google k mˇestu a PSC zcela ignoruje. Mˇesto je tedy upˇrednostˇ nov´ano. Jelikoˇz se Google Maps API snaˇz´ı opravdu maxim´ alnˇe vyhovˇet vˇsem dotaz˚ um, vypoˇc´ıt´a trasu dosazen´ım mˇesta ze sv´e datab´aze, kter´e nejv´ıce odpov´ıd´ a zadan´emu znakov´emu ˇretˇezci. Nedok´aˇze vyhovˇet jen v pˇr´ıpadech, kdy je zad´an nepovinn´ yu ´daj region, urˇcuj´ıc´ı zemi a souˇcasnˇe mˇesto, kter´e tento st´at neeviduje. Odpovˇed’ serveru m˚ uˇze m´ıt dvoj´ı podobu. Bud’ ve form´atu XML (Extensible Markup Language) nebo JSON (JavaScript Object Notation). V obou pˇr´ıpadech m˚ uˇze b´ yt odpovˇed’ dost mnohomluvn´ a, coˇz zp˚ usob´ı pˇr´ıpadn´a komplikovanost trasy s ˇcast´ ymi zmˇenami smˇeru nebo silnic. Form´ at JSON je pouˇziteln´ y pro webov´e str´anky disponuj´ıc´ı Javascriptem. Pro off-line aplikace je vhodn´ y form´ at XML.
4.2.4.1
Form´ at XML
XML v´ ysledek se skl´ ad´ a ze dvou vrcholov´ ych element˚ u. V prvn´ım <status> jsou obsaˇzena metadata k poˇzadavku, ten je v odpovˇedi zahrnut vˇzdy. Ve druh´em jsou podrobnosti o cestˇe. Ten nemus´ı b´ yt v odpovˇedi zahrnut v˚ ubec, pokud m´ısta, zadan´a v dotazu, nebyla nalezena. Nebo jich m˚ uˇze b´ yt v´ıce, pokud byl zad´an parametr alterantives=true, kter´ y umoˇzn ˇuje severu odeslat v´ıce odpov´ıdaj´ıc´ıch tras.
4.2.4.2
Stav odpovˇ edi <status>
Status informuje t´ azaj´ıc´ıho o obsahu a stavu odpovˇedi. V XML je uzavˇren do tag˚ u (znaˇcek) <status>. Jeho moˇzn´e hodnoty jsou v tabulce 4.2. Ta obsahuje dva sloupce. V prvn´ım je hodnota stavu uveden´a mezi zm´ınˇen´ ymi tagy, ve druh´em je vysvˇetlen jej´ı v´ yznam. 4.2.4.3
Trasa
Mezi druhou sadou vrcholov´ ych tag˚ u je pops´ana kompletn´ı trasa od poˇc´atku do koneˇcn´eho bodu. Jak jiˇz bylo zm´ınˇeno, tras m˚ uˇze b´ yt v´ıce, v z´avislosti na nepovinn´em parametru alternatives=true. Kaˇzd´a trasa uvnitˇr vrcholov´ ych tag˚ u m˚ uˇze obsahovat
´ WEBOVE ´ MAPOVE ´ SLUZBY ˇ KAPITOLA 4. DOSTUPNE
16
Tabulka 4.2: Stav odpovˇedi stav OK NOT FOUND ZERO RESULTS MAX WAYPOINTS EXCEEDED INVALID REQUEST OVER QUERY LIMIT REQUEST DENIED UNKNOWN ERROR
v´ yznam odpovˇed’ obsahuje validn´ı v´ ysledek, tzn. m´ısta i trasa byly nalezeny nejm´enˇe jedno ze zadn´ ych m´ıst nebylo nalezeno nebyla nalezena ˇz´adn´a cesta mezi zadan´ ymi m´ısty v dotazu bylo pouˇzito v´ıce m´ıst, neˇz ud´av´a limit nevalidn´ı poˇzadavek pˇrekroˇcen´ı poˇctu moˇzn´ ych dotaz˚ u za den sluˇzba nen´ı zpˇr´ıstupnˇena t´azaj´ıc´ı aplikaci, tzn. neopr´avnˇen´ y dotaz chyba serveru
n´asleduj´ıc´ı pole (pokud je vedle n´ azvu pole oznaˇcen´ı ”[]”, znamen´a to, ˇze jich v odpovˇedi m˚ uˇze b´ yt v´ıc): • summary - obsahuje kr´ atk´ y textov´ y popis trasy. • legs[] - obsahuje pole s informacemi o jednotliv´ ych u ´sec´ıch mezi dvˇema zadan´ ymi body uvitˇr trasy. Cesta se zadan´ ymi dvˇema m´ısty, tzn. pouze zaˇc´atek a konec, bude obsahovat pˇresnˇe jeden leg. Kaˇzd´ y leg obsahuje sadu krok˚ u, podrobnˇeji v 4.2.4.4. • waypoint order - obsahuje poˇrad´ı pr˚ ujezdn´ıch m´ıst na trase. To lze ovlivnit nastaven´ım parametru optimize=true, uvnitˇr waypoints parametru. Standardnˇe Google Maps API zachov´av´ a zadan´e poˇrad´ı. • overview polyline - obsahuje pole zak´odovan´ ych bod˚ uau ´rovn´ı, kter´e reprezentuj´ı cestu. • bounds - obsahuje hraniˇcn´ı body mapov´eho v´ yseku. c • copyrights - obsahuje text ”Map data 2011 Google, PPWK, Tele Atlas”, kter´ y by mˇel b´ yt vˇzdy zobrazen uˇzivateli. • warnings[] - pˇr´ıpadn´ a varuj´ıc´ı hl´ aˇsen´ı, kter´a by mˇela b´ yt t´eˇz zobrazena uˇzivateli. 4.2.4.4
Legs
Kaˇzd´ y leg v trase popisuje u ´sek mezi dvˇema body trasy. Pokud nejsou v http poˇzadavku uvedena ˇz´adn´a waypoints (dalˇs´ı body cesty), bude odpovˇed’ obsahovat pˇresnˇe jeden leg. Kaˇzd´ y Leg m˚ uˇze obsahovat: • steps[] - pole krok˚ u, oznaˇcuj´ıc´ı informace o kaˇzd´em jednotliv´em kroku uvnitˇr u ´seku, v´ıce v 4.2.4.5. • distance - celkov´ a vzd´ alenost dan´eho kroku. – value - urˇcuje vzd´ alenost v metrech (napˇr. 2300 m).
4.2. GOOGLE MAPS API
17
– text - vzd´ alenost v jednotk´ach l´epe ˇcitelnˇejˇs´ıch lidsk´emu oku (napˇr. 2 km 300 m). Tato pole mohou chybˇet, pokud je vzd´alenost nezn´am´a. • duration - indikuje pˇredpokl´adan´e trv´an´ı u ´seku od aktu´aln´ıho m´ısta k n´asleduj´ıc´ımu. – value - ˇcasov´ yu ´sek ve vteˇrin´ach. – text - lidem ˇcitelnˇejˇs´ı reprezentace. Tato pole mohou t´eˇz chybˇet, pokud je vzd´alenost nezn´am´a. ´seku. To vˇsak se ne• start location - obsahuje zemˇepisn´e souˇradnice m´ısta zaˇc´atku u mus´ı pˇresnˇe shodovat s poˇzadovan´ ym p˚ uvodn´ım poˇc´ateˇcn´ım bodem. Google si toto m´ısto trochu uzp˚ usob´ı, napˇr. pˇri pouˇzit´ı typu trasy silniˇcn´ı, nemus´ı zadan´ ym bodem proch´ azet silnice. Pouˇzije se tedy nejbliˇzˇs´ı moˇzn´e m´ısto. • end loaction - obsahuje zemˇepisn´e souˇradnice m´ısta konce u ´seku. Tak´e tento bod se nemus´ı zcela shodovat s p˚ uvodnˇe nastaven´ ym, v z´avislosti na typu trasy. • start address - obsahuje lidsky ˇcitelnou informaci o nalezen´em poˇc´atku trasy. • end address - obsahuje lidsky ˇcitelnou informaci odr´aˇzej´ıc´ı koneˇcn´ y bod trasy.
4.2.4.5
Steps <step>
Kaˇzd´ y element v poli krok˚ u definuje jeden krok na cestˇe. Krok je nejmenˇs´ı jednotka trasy, popisuj´ıc´ı specifick´e, jednoduch´e instrukce cesty. Napˇr. ”Turn left at W. 4th St.”. Mimoto obsahuje tak´e d´elku a odhadovan´e trv´an´ı kroku. Steps m˚ uˇze obsahovat:
• html instruction - obsahuje form´atovan´e instrukce pro tento krok presentovan´ y jako HTML (HyperText Markup Language) textov´ y ˇretˇezec. • distance - pokr´ yv´ a vzd´ alenost od tohoto m´ısta k n´asleduj´ıc´ımu, tzn. od poˇc´ateˇcn´ıho m´ısta kroku k n´ asledn´emu. • duration - d´elka trv´ an´ı kroku. • start location - souˇradnice poˇc´ateˇcn´ıho m´ısta. • end location - souˇradnice koneˇcn´eho bodu.
18
4.2.5
´ WEBOVE ´ MAPOVE ´ SLUZBY ˇ KAPITOLA 4. DOSTUPNE
Konkr´ etn´ı pˇ r´ıklady
Pˇ r´ıklad 1 - sestaven´ı HTTP dotazu. Dotaz na vzd´alenost mezi Prahou a Brnem v kilometrech s oˇcek´avanou odpovˇed´ı serveru ve form´atu XML. http://maps.googleapis.com/maps/api/directions/xml?origin=Praha &destination=Brno&units=metric&sensor=false Z uk´azky je patrn´e, ˇze obsahuje vˇsechna povinn´a pole. Protokol ”http://”, adresu ”/maps.googleapis.com/maps/api/”, typ sluˇzby ”directions”, form´at odpovˇedi ”xml”, m´ısta odkud ”?origin=”, kam ”destination” a senzor ”sensor=”. Nav´ıc jsou zde definov´any jednotky ”units=metric”. Pˇ r´ıklad 2 - uk´ azka XML odpovˇedi dle pˇr´ıkladu 4.2.5, kter´ y se dotazoval na vzd´alenost Praha-Brno, je na obr´ azku 4.2.5. Pˇ r´ıklad 3 - uk´ azka implementace HTTP dotazu v Javˇe je na obr´azku 4.2.5.
4.2. GOOGLE MAPS API
19
xmlResponse.txt <status>OK <summary>D1/E50/E65 <step> DRIVING <start_location> 50.0878100 14.4204600 <end_location> 50.0893300 14.4222900 <polyline> <points>ywupH{n_wAEg@mAkC{EyD B??B 45 1 min Head east on Dlouhá< /b> toward Staroměstské nám. 221 0.2 km ... ... další kroky <step>... ... 7148 1 hour 59 mins 208680 209 km <start_location> 50.0878100 14.4204600 <end_location> 49.1909800 16.6115300 <start_address>Prague, Czech Republic <end_address>Brno, Czech Republic Map data ©2011 Google, PPWK, Tele Atlas <points>ywupH{n_wAoHmJ{Goa@jIeBnE~GzCmBbC_{...zde to pokračuje... B@@@@@[email protected] to pokračuje... <southwest> 49.1587800 14.4204600 <northeast> 50.0907500 16.6115300
Stránka 1
20
´ WEBOVE ´ MAPOVE ´ SLUZBY ˇ KAPITOLA 4. DOSTUPNE
Obr´ azek 4.2: Implementace URL v Javˇe dle pˇr´ıkladu 4.2.5
Kapitola 5
Postup zpracov´ an´ı popt´ avky 5.1
Zjiˇ stˇ en´ı vzd´ alenosti
Kalkul´ ator pouˇz´ıv´ a webov´e sluˇzby Google Maps API, kter´e jsou zm´ınˇeny v kapitole 4. Z dostupn´ ych webov´ ych sluˇzeb se zdaj´ı b´ yt nejvstˇr´ıcnˇejˇs´ı a nejpropracovanˇejˇs´ı. V dotazech na vzd´ alenost, jsou zad´ av´ any jen dvˇe m´ısta, m´ısto nakl´adky a vykl´adky. U nich je uvedeno ˇ mˇesta, pokud bylo dosazeno do formul´aˇre popt´avky, n´azev mˇesta a vˇzdy dvoum´ıstn´ PSC y k´od dan´e zemˇe. Pˇri nenalezen´ı tˇechto m´ıst mapami Google, je uˇzivatel informov´an. S ohledem na velkou vstˇr´ıcnost Googgle Maps API, kter´a se snaˇz´ı vyhledat trasu i z nedostateˇcnˇe pˇresnˇe zadan´ ych m´ıst, jsou v programu v sekci nab´ıdky dvˇe pol´ıˇcka, ve kter´ ych jsou zobrazeny skuteˇcnˇe pouˇzit´e destinace pro v´ ypoˇcet trasy. Uˇzivatel tak m´a kontrolu nad trasou. Zde se nab´ız´ı umoˇznit zobrazen´ı t´eto trasy na mapˇe. To je vˇsak pomˇernˇe obs´ahl´e t´ema, kter´e nen´ı souˇc´ ast´ı p˚ uvodn´ıch poˇzadavk˚ u na syst´em. D´ale je moˇzn´e ovlivnit vyhled´ an´ı vzd´alenosti nastaven´ım typu trasy bez poplatk˚ u. Google Maps API se pak pˇri tvorbˇe trasy vyhne zpoplatnˇen´ ym u ´sek˚ um silnic. Vˇetˇsinou pak b´ yv´ a trasa i kratˇs´ı. To vˇsak nemus´ı b´ yt vˇzdy v´ yhra, nebot’ cesta bude z´akonitˇe ˇcasovˇe n´aroˇcnˇejˇs´ı. Vzhledem k moˇzn´e nedostupnosti internetov´eho pˇripojen´ı, je v aplikaci ponech´ana moˇznost zadat vzd´ alenost ruˇcnˇe. V tomto pˇr´ıpadˇe m´a hodnota zadan´a v pˇr´ısluˇsn´em pol´ıˇcku pˇrednost pˇred automatick´ ym zjiˇst’ov´ an´ım d´elky trasy. Aby byla ruˇcnˇe zadan´a vzd´alenost br´ana v potaz, mus´ı b´ yt vloˇzen´e ˇc´ıslo vˇetˇs´ı neˇz 0. V´ıcem´ıstn´e zad´ av´ an´ı nen´ı implementov´ano, protoˇze odboˇcen´ı z hlavn´ı trasy k dalˇs´ım m´ıst˚ um ’ nejsou nijak zvl´ aˇst v´ yrazn´e a n´ aklady na ujet´e kilometry mimo hlavn´ı trasu pokryje nastaven´a sazba za dalˇs´ı nakl´ adku nebo vykl´adku. Je to z toho d˚ uvodu, ˇze finanˇcn´ı dopad na zast´avku leˇz´ıc´ı velmi vzd´ alenˇe od p˚ uvodn´ı trasy (cca v´ıce jak 50 km) je natolik siln´ y, ˇze se vyplat´ı najmout jin´e vozidlo, vyskytuj´ıc´ı se bl´ıˇze u tohoto m´ısta.
5.2
´ Uprava kilometr˚ u
Vhodnou u ´pravou zjiˇstˇen´ ych kilometr˚ u se doc´ıl´ı optimalizace d´elky trasy. Dle dodateˇcn´ ych zjiˇstˇen´ı nen´ı re´ aln´e prov´ adˇet v´ ypoˇcet ceny jen na z´akladˇe vzd´alenosti od m´ısta nakl´adky k m´ıstu vykl´ adky v pˇr´ıpadˇe, kdy je mnoˇzstv´ı kilometr˚ u menˇs´ı neˇz 100. Jen zˇr´ıdka se podaˇr´ı
21
22
´ ´I POPTAVKY ´ KAPITOLA 5. POSTUP ZPRACOVAN
vyt´ıˇzit vozidlo pˇresnˇe v m´ıstˇe jeho dojezdu. Je nutn´e kalkulovat s moˇzn´ ymi pˇrejezdy takzvanˇe ”popr´azdnu”, nebo-li bez vyt´ıˇzen´ı. Nab´ız´ı se vˇsak argument, ˇze kaˇzd´ a firma m˚ uˇze tento probl´em ˇreˇsit r˚ uzn´ ymi zp˚ usoby, proto je vhodn´e, pro zachov´ an´ı co nejvˇetˇs´ı variability, ponechat rozhodnut´ı, zda tuto moˇznost vyuˇz´ıt, na obsluze aplikace. V sekci ”Nastaven´ı” lze editovat u ´pravu kilometr˚ u vloˇzen´ım dvou hodnot. Prvn´ı ud´av´a mnoˇzstv´ı kilometr˚ u, ke kter´emu se u ´prava vztahuje, druh´a procentu´aln´ı koeficient, kter´ ym se kilometry nav´ yˇs´ı. Napˇr´ıklad, pokud je trasa kratˇs´ı neˇz 100 km, nav´ yˇs´ı se vzd´alenost o 90%. Vloˇzen´e hodnoty pak jsou 100 a 90. Nastaven´ım nulov´ ych hodnot se doc´ıl´ı nevyuˇzit´ı t´eto optimalizace. Prvotn´ı v´ ypoˇcet se tedy zab´ yv´ a zjiˇstˇen´ım, zda je moˇzn´e kilometry ponechat nebo je upravit pˇr´ısluˇsn´ ym koeficientem.
5.3
Urˇ cen´ı kategorie vozidla
Vzhledem k r˚ uzn´emu sloˇzen´ı vozov´eho parku jednotliv´ ych firem je moˇzn´e nastavit aˇz 10 kategori´ı vozidel. (obvykle postaˇc´ı rozliˇsen´ı na 5 aˇz 6 druh˚ u). U kaˇzd´e kategorie jsou specifikov´any rozmˇery, nosnost vozidla a sazba za 1 km. S ohledem na moˇzn´e vloˇzen´ı jednotliv´ ych kategori´ı, ne vˇzdy uspoˇr´adanˇe za sebou podle velikosti, je nutn´e nejprve seˇradit vozidla a teprve po t´e vyhledat to, kter´e splˇ nuje parametry dan´e velikost´ı a v´ ahou n´ akladu. Prvn´ı ˇrazen´ı prob´ıh´ a dle nosnosti. Pak n´asleduje porovn´an´ı hmotnosti n´akladu s uˇziteˇcnou hmotnost´ı kaˇzd´eho vozu. T´ımto zp˚ usobem je urˇcena jedna moˇznost vozu. Pokud by nebylo vybr´ano ˇz´adn´e vozidlo, jedn´ a se o vˇetˇs´ı n´aklad, neˇz je firma schopn´a realizovat. V tomto pˇr´ıpadˇe je generov´ an´ı ceny u konce a dojde k ozn´amen´ı tohoto v´ ysledku v pˇr´ısluˇsn´e formˇe. Dalˇs´ı ˇrazen´ı prob´ıh´ a podle velikosti loˇzn´e plochy. Velikost n´akladu se zad´av´a bud’ rozmˇery (d´elka x ˇs´ıˇrka x v´ yˇska ) v cm nebo poˇctem europalet (sjednocen´a velikost palety pro Evropu je 120 x 80 cm). Jelikoˇz m´ a dispeˇcer moˇznost zadat vˇsechny hodnoty definuj´ıc´ı velikost n´akladu, je d˚ uleˇzit´e rozliˇsit, kter´ a hodnota byla vloˇzena, pˇr´ıpadnˇe, kter´a zabere vˇetˇs´ı plochu. Tato informace se z´ısk´ av´ a porovn´ an´ım n´ asobku (120 x 80 x poˇcet palet) a n´asobku (d´elka x ˇs´ıˇrka) zadan´a v cm. Opˇet n´asleduje nalezen´ı vhodn´eho vozidla, tentokr´at podle plochy. To je vˇsak podm´ınˇeno jeˇstˇe dalˇs´ım aspektem a to kontrolou skuteˇcn´ ych rozmˇer˚ u n´akladu s velikost´ı vozidla dan´e kategorie. N´aklad m˚ uˇze m´ıt rozmˇery plochy napˇr. 300 x 300 cm a ten se do ˇz´adn´eho bˇeˇzn´eho vozidla nevejde. Pˇrepravou tˇechto nadrozmˇern´ ych n´aklad˚ u se zab´ yvaj´ı specializovan´e firmy, pro kter´e nen´ı tato aplikace urˇcena. Jejich cenov´e v´ ypoˇcty se ˇr´ıd´ı zcela odliˇsn´ ymi z´akonitostmi. Obvykl´a ˇs´ıˇrka n´ akladn´ıho vozidla, mimo vozidel s celkovou hmotnost´ı niˇzˇs´ı neˇz 3.5t, je 245 cm (pro v´ ypoˇcty kalkulov´ ano s rozmˇerem 240 cm s ponech´an´ım 5 cm rezervy pro pˇresah zm´ınˇen´ ych europalet). D´elka z´ avis´ı na dan´e kategorii, ovˇsem maxim´aln´ı je 1360 cm. Pokud v tomto hled´an´ı nen´ı nalezeno odpov´ıdaj´ıc´ı vozidlo, jedn´a se opˇet o nadrozmˇer a v´ ypoˇcet bude ukonˇcen. Nejmenˇs´ı pˇr´ıpustn´e rozmˇery jsou nulov´e hodnoty a ty splˇ nuje vˇzdy nejniˇzˇs´ı zadan´a kategorie vozidla.
´ ˇ ˇ POUZIT ˇ ´I CELEHO ´ 5.4. VYPO CET CENY PRI VOZIDLA
23
V pˇr´ıpadˇe, ˇze program doˇsel aˇz k tomuto bodu, n´asleduje porovn´an´ı tˇechto dvou nalezen´ ych kategori´ı a to podle pˇr´ısluˇsn´e sazby za 1 km. Vybran´a je ta s vyˇsˇs´ı hodnotou. Nen´ı zde vylouˇcena moˇznost, ˇze aplikace vygeneruje ne zcela vhodnou kategorii vozidla. Jak lze porovnat co m´ a pˇrednost, zda v´ aha nebo rozmˇery n´akladu? M˚ uˇze se st´at, ˇze n´aklad bude v´ aˇzit 5 tun, ale vejde se na 1 paletu. Nebo m˚ uˇze v´aˇzit pouh´ ych 200 kg, ale jeho rozmˇery napln´ı cel´ y n´ avˇes. Jelikoˇz tento program m´a ˇreˇsit pˇredevˇs´ım cenu, je tedy rozhoduj´ıc´ım faktorem sazba za kilometr.
5.4
V´ ypoˇ cet ceny pˇ ri pouˇ zit´ı cel´ eho vozidla
Je-li zjiˇstˇeno odpov´ıdaj´ıc´ı mnoˇzstv´ı kilometr˚ u a vybr´ana vhodn´a kategorie vozidla, n´asleduje skuteˇcnˇe primitivn´ı v´ ypoˇcet vyn´ asoben´ım tˇechto dvou ˇc´ısel. Nˇekter´e firmy si u ´ˇctuj´ı manipulaˇcn´ı poplatek za nakl´adku nebo vykl´adku. M˚ uˇze se dokonce st´at, ˇze bude po cestˇe takov´ ych m´ıst v´ıce. Pak se nab´ız´ı moˇznost zadat dvˇe nejvzd´alenˇejˇs´ı m´ısta na trase a za kaˇzdou dalˇs´ı zast´avku pˇripoˇc´ıtat pˇr´ısluˇsnou sazbu. Opˇet je to voliteln´e ˇreˇsen´ı, kter´e lze nastavit. K dosud z´ıskan´e cenˇe se tedy pˇriˇcte n´asobek poˇctu m´ıst a sazby za nakl´ adku/vykl´ adku. Tato koneˇcn´a ˇc´astka se pak jiˇz jen pon´ıˇz´ı o pˇr´ıpadnou slevu.
5.5
V´ ypoˇ cet ceny pˇ ri pouˇ zit´ı ˇ c´ asti loˇ zn´ e plochy vozidla
Pˇrikl´ adkov´ a cena pˇredstavuje ˇc´astku za pomˇernou ˇc´ast vozidla, kterou n´aklad zabere. Na vozidle tedy bude v´ıce n´ aklad˚ u smˇeˇruj´ıc´ıch pˇribliˇznˇe stejn´ ym smˇerem. Pro v´ ypoˇcty byl vybr´an n´ avˇes, kter´ y je k tomuto u ´ˇcelu nejvhodnˇejˇs´ı - dle anal´ yzy v kapitole 2. C´ılem aplikace je vytvoˇrit konkurenceschopnou a z´aroveˇ n re´alnou cenu. Neˇreˇs´ı vˇsak, zda je oblast nakl´ adky nebo vykl´ adky pˇr´ıstupn´ a velikosti zvolen´eho vozidla, ˇci zda m´a dispeˇcer v t´eto oblasti vozidlo k dispozici. Prvotn´ı postup v´ ypoˇctu je z poˇc´atku obdobn´ y pˇredchoz´ımu. Vyn´asoben´ı pˇrikl´adkov´e sazby za 1 km (coˇz je hodnota ceny za 1 km u n´avˇesu s patˇriˇcn´ ym nav´ yˇsen´ım - pˇredpokl´ ad´ a se ˇcasov´ a prodleva a nav´ yˇsen´ı sazby ji tak kompenzuje) a poˇctu zjiˇstˇen´ ych kilometr˚ u. K tomu pˇripoˇcten´ı n´ asobku sazby za manipulaci a poˇcet m´ıst. Odtud d´al se kalkulace liˇs´ı. Zjist´ı se tˇri ceny. 1. cena dle palet - na n´ avˇes se vejde 32 ks europalet. Dosud zjiˇstˇen´a ˇc´astka se vydˇel´ı tedy 32 a vyn´asob´ı poˇctem palet se zboˇz´ım. 2. cena dle hmotnosti - n´ avˇes uveze 24000 kg. P˚ uvodn´ı cena se tedy vydˇel´ı 24000 a vyn´asob´ı hmotnost´ı zboˇz´ı v kg. 3. cena dle plochy - loˇzn´ a plocha n´avˇesu je 1360 cm x 240 cm. Dosavadn´ı cena se vydˇel´ı obsahem plochy n´ avˇesu a vyn´ asob´ı plochou zboˇz´ı v centimetrech ˇctvereˇcn´ıch. Z tˇechto tˇrech cen se vybere ta nejvˇetˇs´ı a pon´ıˇz´ı se o pˇr´ıpadnou slevu. Smyslem softwaru je vytvoˇren´ı konkurenceschopn´e ceny. Kolik ve skuteˇcnosti dispeˇcer nab´ıdne, z´ aleˇz´ı na nˇem. Zaj´ımav´e je porovn´an´ı v´ ysledn´ ych cen. V mnoha pˇr´ıpadech je levnˇejˇs´ı
24
´ ´I POPTAVKY ´ KAPITOLA 5. POSTUP ZPRACOVAN
varianta na cel´e vozidlo, neˇz ta pˇrikl´ adkov´a, pˇrestoˇze lidsk´a intuice by se vˇzdy jednoznaˇcnˇe klonila k t´e druh´e.
Kapitola 6
Implementace 6.1
Jazyk a v´ yvojov´ e prostˇ red´ı
S programovac´ım jazykem JAVA se pracuje velice pˇeknˇe a v´ yvojov´e prostˇred´ı NetBeans, kter´e bylo pouˇz´ıvan´e bˇehem cel´eho v´ yvoje, je t´eˇz plnˇe vyhovuj´ıc´ı.
6.2
Z´ akladn´ı architektura a vzory
Z´akladem je ˇc´ asteˇcnˇe modifikovan´a architektura MVC (Model-View-Controller). Z n´avrhov´ ych vzor˚ u byl pouˇzit pˇredevˇs´ım Mediator a Singleton.
6.3 6.3.1
Pouˇ zit´ e knihovny a datab´ aze SWING
S knihovnou SWING se pracuje velmi dobˇre a d´ıky grafick´emu prostˇred´ı v NetBeans nen´ı probl´em pomoc´ı t´eto knihovny uspoˇr´adat prvky v zobrazovan´em oknˇe k pln´e spokojenosti.
6.3.2
Apache Derby
Relaˇcn´ı datab´ aze Apache Derby distribuovan´a spoleˇcnost´ı SUN, dnes Oracle, je implementov´ ana v ˇcist´e Javˇe. Verze embedded je vnoˇrena pˇr´ımo do software. Odpad´a tak nutnost instalace datab´ azov´eho stroje.
6.4
Z´ akladn´ı UML model bal´ıˇ ck˚ u a tˇ r´ıd
Aplikace je sloˇzena ze sedmi bal´ıˇck˚ u. Jsou to request, offer, order, firm, options, calculator a mediator, coˇz zn´ azorˇ nuje UML class model 6.4. • request - pˇredstavuje okno s popt´avkou viz 8.3.
25
26
KAPITOLA 6. IMPLEMENTACE
• offer - pˇredstavuje okno s nab´ıdkou viz 8.4. • order - pˇredstavuje okno s objedn´ avkou viz 8.5. • firm - pˇredstavuje okno s firmou viz 8.6. • options - pˇredstavuje okno, kde je moˇzn´e nastavit parametry aplikace ovlivˇ nuj´ıc´ı v´ ypoˇcet ceny viz 8.7. • calculator - zde jsou prov´ adˇeny vˇsechny v´ ypoˇcty spojen´e s generov´an´ım cen. • mediator - toto je ”mozek”aplikace.
6.4.1
Request, offer, order
Bal´ıˇcky request, offer a order si jsou dost podobn´e. Liˇs´ı se jen v jemn´ ych detailech. V kaˇzd´em je definov´ ana tˇr´ıda Window, kter´a se star´a o grafick´e zobrazen´ı okna. Tˇr´ıda Model naˇc´ıt´a a dod´av´ a data z datab´ aze. Posledn´ı tˇr´ıdou v kaˇzd´em z tˇechto bal´ıˇck˚ u, je samotn´ y objekt. Ten pˇredstavuje ˇr´ adek v datab´ azi a souˇcasnˇe v tabulce zobrazovan´e uˇzivateli. Kaˇzd´e okno m´a svoje specifika.
6.4.2
Firm
Tento bal´ıˇcek umoˇzn ˇuje zad´ avat do syst´emu nov´e firmy. Jeho implementace je shodn´a s pˇredchoz´ımi tˇremi. Nav´ıc vˇsak poskytuje seznam vˇsech evidovan´ ych firem v datab´azi.
6.4.3
Options
Bal´ıˇcek options zastupuje okno s nastaven´ım aplikace. Zde se daj´ı upravovat hodnoty, kter´e ovlivˇ nuj´ı kalkulace cen. Tˇr´ıda Window, pro zobrazen´ı formul´aˇr˚ u, je zde tak´e pˇr´ıtomna, avˇsak ta nespolupracuje s datab´ az´ı a tud´ıˇz nepotˇrebuje pˇr´ısluˇsn´ y Model. V tom se mimojin´e odliˇsuje od pˇredchoz´ıch bal´ıˇck˚ u. Dalˇs´ı odliˇsnost´ı jsou tˇr´ıdy Car a KmRatio. Ty pˇredstavuj´ı objekty ve formul´ aˇri, jejichˇz instance se pak ukl´adaj´ı do soubor˚ u. Tˇr´ıda Car definuje parametry kategorie vozidla. Tˇemi jsou n´ azev, rozmˇery loˇzn´e plochy, nostnost a sazba za kilometr. Tˇr´ıda KmRatio pˇredepisuje parametry kilometry a procenta. Kilometry jsou pouˇzity jako omezuj´ıc´ı podm´ınka a procenta jejich navyˇsuj´ıc´ı koeficient. Tˇr´ıda FileOperator pak ˇcte a zapisuje data do pˇr´ısluˇsn´ ych soubor˚ u. Pokud pˇri spuˇstˇen´ı aplikace nejsou tyto soubory k dispozici, je o tom uˇzivatel informov´ an. K jejich dodateˇcn´emu vytvoˇren´ı postaˇc´ı zobrazit okno s nastaven´ım 8.7 a dle uv´ aˇzen´ı doplnit a uloˇzit u ´daje.
6.4.4
Calculator
Bal´ıˇcek calculator zodpov´ıd´ a za vˇsechny v´ ypoˇcty. Tˇr´ıda Calculation zajiˇst’uje kompletn´ı kalkulace, v´ ypoˇcet cen a urˇcen´ı pˇr´ısluˇsn´eho vozidla. Ke zjiˇstˇen´ı vzd´alenosti pouˇz´ıv´a tˇr´ıdu Distance, kter´a se na poˇz´ ad´ an´ı pˇripoj´ı ke Google map´am na adrese http://maps.googleapis.com a dot´aˇze se na trasu dle zadan´ ych m´ıst nakl´adky a vykl´adky.
´ ´I UML MODEL BAL´ICK ˇ U ˚ A TR ˇ ´ID 6.4. ZAKLADN
6.4.5
27
Mediator
Mozek cel´e aplikace je um´ıstˇen v bal´ıˇcku mediator, ve tˇr´ıdˇe Mediator. V n´ı jsou um´ıstˇeny instance vˇsech z´ astupc˚ u bal´ıˇck˚ u a tˇr´ıda rozhoduje komu pˇridˇel´ı “slovo”. Jeho dalˇs´ı funkc´ı je tvorba nab´ıdky a objedn´ avky. Zprostˇredkov´av´a tisk vˇsem formul´aˇr˚ um a dod´av´a glob´ aln´ı promˇenn´e potˇrebn´e k v´ ypoˇct˚ um a nastaven´ım. V bal´ıˇcku je nav´ıc pˇr´ıtomna tˇr´ıda WindowMain, jenˇz zobrazuje u ´vodn´ı okno aplikace. Tˇr´ıda Main moˇzn´a nepotˇrebuje koment´aˇr, je v n´ı pouze definov´ ano spouˇstˇec´ı vl´ akno s prvn´ım vol´an´ım Mediatora.
28
KAPITOLA 6. IMPLEMENTACE
Obr´ azek 6.1: UML class diagram
Kapitola 7
Testov´ an´ı 7.1
Pl´ an test˚ u
Testy jsou navrˇzeny podle jednotliv´ ych bod˚ u v katalogu poˇzadavk˚ u. Po jejich u ´spˇeˇsn´em uskuteˇcnˇen´ı, dle tohoto n´ avrhu, by mˇela b´ yt plnˇe zajiˇstˇena funkˇcnost syst´emu.
7.1.1
Jednotkov´ e testy
Pˇri tomto testov´ an´ı je sledov´ ano chov´an´ı jednotliv´ ych metod, v´ ystupy, reakce na vstupn´ı dobr´a“ i ˇspatn´ a“ data. Pouˇzit´ y n´astroj je Junit v NetBeans. Uk´azka test˚ u 7.1.1. ” ” 7.1.1.1
Integraˇ cn´ı testy - verifikace
Toto testov´ an´ı ovˇeˇr´ı spr´ avn´e prov´adˇen´ı vˇsech funkc´ı produktu. Seznam test˚ u 1. Spuˇstˇen´ı programu. 2. Ukonˇcen´ı programu. 3. Ovˇeˇren´ı spr´ avn´eho zobrazen´ı vˇsech oken. (a) Hlavn´ı menu (b) Popt´ avka (c) Nab´ıdka (d) Objedn´ avka (e) Firma (f) Nastaven´ı 4. Ovˇeˇren´ı funkˇcnosti vˇsech tlaˇc´ıtek. 5. Vloˇzen´ı nov´e popt´ avky a automatick´e generov´an´ı nab´ıdky.
29
´ ´I KAPITOLA 7. TESTOVAN
30
6. Uloˇzen´ı nab´ıdky. 7. Smaz´an´ı nab´ıdky. 8. Smaz´an´ı popt´ avky. 9. Vytvoˇren´ı nab´ıdky ruˇcn´ım zad´ an´ım u ´daj˚ u a jej´ı uloˇzen´ı. 10. Vytvoˇren´ı objedn´ avky - celov˚ uz z nab´ıdkov´eho formul´aˇre. 11. Vytvoˇren´ı objedn´ avky - pˇrikl´ adka z nab´ıdkov´eho formul´aˇre. 12. Vytvoˇren´ı objedn´ avky ruˇcn´ım zad´ an´ım u ´daj˚ u. 13. Uloˇzen´ı objedn´ avky. 14. Smaz´an´ı objedn´ avky. 15. Zmˇena v nastaven´ı. 16. Uloˇzen´ı zmˇen v nastaven´ı. 17. Vloˇzen´ı nov´e firmy. 18. Opˇetovn´e vloˇzen´ı stejn´e firmy. 19. Smaz´an´ı firmy. 7.1.1.2
Validaˇ cn´ı test
Alfa testov´ an´ı Tento test je prov´ adˇen za pˇr´ıtomnosti program´atora a dalˇs´ı, pˇr´ımo nezasvˇecen´e osoby. Tato osoba bude prostupovat aplikac´ı dle sv´eho uv´aˇzen´ı a program´ator bude pˇrihl´ıˇzet. Pokud se objev´ı chyba zaznamen´a ji. Beta testov´ an´ı Program je uˇz´ıv´ an z´ akazn´ıkem po pˇredem stanovenou dobu v re´aln´ ych podm´ınk´ach, pˇriˇcemˇz jsou zaznamen´ av´ any vˇsechny pˇr´ıpadn´e nedostatky. Syst´ emov´ y test V tomto testu je simulov´an v´ ypadek elektrick´e energie, pˇreruˇsen´ı internetov´eho spojen´ı, absence soubor˚ u s uloˇzen´ ymi hodnotami d˚ uleˇzit´ ymi pro v´ ypoˇcty a nefunkˇcnost pˇripojen´e datab´ aze.
7.2
V´ ysledky test˚ u
Jednotkov´e testy byly prov´ adˇeny postupnˇe v pr˚ ubˇehu tvorby softwaru dle pl´anu test˚ u. Integraˇcn´ı tesy byly prov´ adˇeny jak v pr˚ ubˇehu implementace, tak i po skonˇcen´ı posledn´ıch prac´ı. Z validaˇcn´ıho testov´ an´ı, prvn´ı ˇc´ ast alfa testov´an´ı bylo provedeno tˇrikr´at, vˇzdy jinou osobou. Beta testov´an´ı prob´ıhalo jeden mˇes´ıc, pˇriˇcemˇz aplikace pouze doplˇ novala ˇcinnost dispeˇcera,
´ ˚ 7.2. VYSLEDKY TESTU
31
kter´ y byl ochoten posuzovat j´ım vypoˇcten´e u ´daje s hodnotami vygenerovan´ ymi t´ımto kalkul´atorem. Pˇredch´ azelo tomu dosazen´ı hodnot v Nastaven´ı syst´emu, kter´e se sluˇcovaly s cenovou politikou firmy. Syst´emov´ y test, pˇri kter´em byl postupnˇe simulov´an v´ ypadek elektrick´e energie, pˇreruˇseno internetov´e spojen´ı, odstranˇeny soubory v´azan´e k software a odpojena datab´aze dopadl velmi dobˇre, aplikace i datab´aze jsou stabiln´ı.
Pozn´ amka Datum nakl´ adky a term´ın vykl´adky nejsou souˇc´ast´ı vstupn´ıho formul´aˇre pˇri zad´av´an´ı popt´ avky jak bylo p˚ uvodnˇe poˇzadov´ano. Nejprve jsou z´akazn´ıkovi nab´ıdnuty dvˇe moˇzn´e ˇreˇsen´ı pˇrepravy a teprve po jeho rozhodnut´ı pˇrich´az´ı v u ´vahu pˇrihl´ednut´ı k ˇcasov´ ym dispozic´ım dan´e pˇrepravy. Datumy se tedy zad´avaj´ı aˇz pˇri skuteˇcn´e realizaci, tzn. pˇri tvorbˇe objedn´ avky.
32
´ ´I KAPITOLA 7. TESTOVAN
unitTests.txt @Test public void testGetPriceW() { System.out.println("getPriceW"); int expResult = 1750; int result = instance.getPriceForWholeCar(r, r.getKm(), 0); assertEquals(expResult, result); } @Test public void testCar() { System.out.println("testCar"); String expResult = "transit"; String result = instance.getFoundCar(r); assertEquals(expResult, result); } @Test public void testArrangeKm() { System.out.println("arrangeKm"); int km = 100; int expResult = 175; int result = instance.arrangeKm(km); assertEquals(expResult, result); }
Kapitola 8
Tutori´ al - sezn´ amen´ı s programem Tato kapitola proch´ az´ı postupnˇe cel´ym programem. Jsou zde uk´ azky pro lepˇs´ı n´ azornost. Z´ aroveˇ n porovn´ av´ a poˇzadavky na aplikaci s konkr´etn´ım ˇreˇsen´ım.
8.1
Informace pˇ red spuˇ stˇ en´ım
Instalaci programu m˚ uˇze prov´est i neproˇskolen´a osoba. Postaˇc´ı uloˇzit pˇr´ısluˇsn´ y soubor na disk poˇc´ıtaˇce. Dat´ abaze nen´ı tˇreba instalovat, je souˇc´ast´ı programu. Jedin´ y pˇredpoklad je nainstalovan´ a JAVA JRE (Java Runtime Environment), kter´a je volnˇe ke staˇzen´ı na adrese http://java.com/en/download/. Aby byly dodrˇzeny licenˇcn´ı podm´ınky pˇri pouˇz´ıv´an´ı webov´ ych sluˇzeb Google Maps API, je zde vloˇzen copyright, kter´ y je obsahem vˇsech odpovˇed´ı na dotazy vzd´alenosti. c copyright: Map data 2011 Tele Atlas Vˇsechna vkl´ adan´ a data pˇri vyplˇ nov´an´ı formul´aˇr˚ u, pˇredstavuj´ıc´ı numerickou hodnotu, by mˇela poch´ azet z mnoˇziny pˇrirozen´ ych ˇc´ısel nebo 0. Pˇri jin´em zad´an´ı je uˇzivatel upozornˇen na neplatn´ y vstupn´ı form´ at. T´ yk´ a se to rozmˇer˚ u n´akladu, nosnosti, ruˇcnˇe vloˇzen´ ych kilometr˚ u a dat v Nastaven´ı.
8.2
Start programu
Po spuˇstˇen´ı se zobraz´ı hlavn´ı menu viz. 8.1. Zde je pˇet tlaˇc´ıtek (Popt´avka, Nab´ıdka, Objedn´ avka, Nastaven´ı a Firmy). Je moˇzn´e zaˇc´ıt s kter´ ymkoli z nich. Pokud vˇsak zaˇcneme Popt´avkou, projdeme postupnˇe cel´ ym programem. Vˇsechna ostatn´ı okna jsou koncipov´ana tak, ˇze ve vrchn´ı ˇc´asti jsou ovl´adac´ı tlaˇc´ıka, pod nimi se nach´ az´ı formul´ aˇr a jeˇstˇe n´ıˇze je tabulka s histori´ı z´aznam˚ u. V kaˇzd´em se nach´ az´ı tlaˇc´ıtko ”Hlavn´ı menu” pro n´ avrat na p˚ uvodn´ı obrazovku a tlaˇc´ıtko ”Tisk” pro vytiˇstˇen´ı dat z formul´ aˇre. Splnˇ en´ e poˇ zadavky Moˇznost zad´av´an´ı a archivace popt´avky, nab´ıdky a objedn´avky. Automatick´e generov´ an´ı ceny. Moˇznost nastaven´ı koeficient˚ u, ovlivˇ nuj´ıc´ıch v´ ypoˇcet ceny.
33
´ - SEZNAMEN ´ ´I S PROGRAMEM KAPITOLA 8. TUTORIAL
34
Obr´ azek 8.1: Hlavn´ı menu
8.3
Popt´ avka
Tlaˇc´ıtkem ”Popt´ avka” se lze pˇresunout do prostˇred´ı umoˇzn ˇuj´ıc´ı zadat novou popt´avku, prohl´ıˇzet a editovat archivovan´e z´ aznamy. Vedle tlaˇc´ıtka ”Hlavn´ı menu” se nach´az´ı nejtypiˇctˇejˇs´ı tlaˇc´ıtko pro tuto ˇc´ast ”Zpracovat nab´ıdku”, kter´e, z hodnot zadan´ ych ve formul´aˇri n´ıˇze, umoˇzn ˇuje generovat nab´ıdku. Pˇri pouˇzit´ı tohoto tlaˇc´ıtka probˇehne kontrola vstupn´ıch dat z formul´aˇre. Pokud jsou vstupn´ı hodnoty ve spr´ avn´em form´ atu, archivuje se takto zadan´a popt´avka, probˇehne v´ ypoˇcet a zobraz´ı se okno s nab´ıdkou. Jedin´e povinn´e u ´daje, d˚ uleˇzit´e pro zjiˇst’en´ı vzd´alenosti, jsou mˇesta odkud/kam. Z formul´ aˇre je tak´e moˇzn´e odstranit vˇsechny hodnoty stisknut´ım tlaˇc´ıtkem ”Vyˇcistit”. Spodn´ı ˇc´ast okna je vˇenov´ ana zobrazen´ı archivn´ıch z´aznam˚ u. Oznaˇcen´ım jednoho ˇr´adku se z´aznamem v tabulce lze jeho hodnoty naˇc´ıst do formul´aˇre prostˇrednictv´ım tlaˇc´ıtka ”Detail”. Tam je pak lze d´ ale upravovat a nechat generovat novou nab´ıdku. Je moˇzn´e zpracov´avat popt´avky se stejn´ ymi hodnotami. Vˇzdy se uloˇz´ı nov´ y z´aznam do datab´aze. Jedin´ y rozd´ıl mezi tˇemito z´aznamy pak je automaticky vloˇzen´a ˇcasov´a znaˇcka. Pˇri oznaˇcen´em ˇr´ adku v tabulce umoˇzn´ı tlaˇc´ıtko ”Smazat” trval´e odstranˇen´ı z´aznamu. Pˇredch´az´ı tomu jeˇstˇe potvrzuj´ıc´ı dotaz. Zobrazen´e z´ aznamy v tabulce lze ˇradit podle sloupc˚ u. Kliknut´ım na hlaviˇcku zvolen´eho sloupce se ˇr´adky seˇrad´ı vzestupnˇe. Opˇetovn´ ym kliknut´ım je lze seˇredit sestupnˇe. Splnˇ en´ e poˇ zadavky popt´avky.
Automatick´e generov´an´ı ceny za popt´avanou pˇrepravu, archivace
8.4. NAB´IDKA
35
Obr´azek 8.2: Popt´avka
Obr´ azek 8.3: Potvrzuj´ıc´ı dotaz na smaz´an´ı ˇr´adku
8.4
Nab´ıdka
Zde jsou, mimo jiˇz zm´ınˇen´ ych tlaˇc´ıtek ”Hlavn´ı menu”, ”Vyˇcistit”, ”Detail” a ”Smazat”, pracuj´ıc´ıch stejn´ ym zp˚ usobem jako v Popt´avce, d˚ uleˇzit´a tˇri dalˇs´ı tlaˇc´ıtka v horn´ı liˇstˇe. Volbou tlaˇc´ıtka ”Uloˇzit” jsou pˇrid´ ana data z formul´aˇre do datab´aze a z´aroveˇ n je pˇrekreslena tabulka obsahuj´ıc´ı archivn´ı z´ aznamy (pokud nˇejak´e existuj´ı) vˇcetnˇe nov´eho z´aznamu. Data lze do formul´ aˇre zadat ruˇcnˇe nebo jsou automaticky generov´ana ze zadan´e popt´avky. Tlaˇc´ıtka ”Objedn´ avka celov˚ uz” a ”Objedn´avka pˇrikl´adka” pˇrepnou do okna s objedn´avkou, kde budou pˇredvyplnˇen´ a data ve formul´aˇri, ovˇsem u kaˇzd´eho s rozd´ılnou cenou.
Splnˇ en´ e poˇ zadavky Moˇznost zad´av´an´ı a archivace nab´ıdky. Moˇznost automatick´eho generov´an´ı nab´ıdky za zadan´e popt´avky.
´ - SEZNAMEN ´ ´I S PROGRAMEM KAPITOLA 8. TUTORIAL
36
Obr´ azek 8.4: Nab´ıdka
8.5
Objedn´ avka
Vˇsechna tlaˇc´ıtka v oknˇe objedn´ avky jiˇz byla zm´ınˇena v pˇredchoz´ıch ˇc´astech. I zde pracuj´ı stejn´ ym zp˚ usobem. Data do formul´ aˇre lze vloˇzit opˇet ruˇcnˇe nebo jsou doplnˇena po stisknut´ı tlaˇc´ıtka ”Objedn´ avka celov˚ uz” nebo ”Objedn´avka pˇrikl´adka” v Nab´ıdce. U kokr´etn´ı objedn´avky jiˇz je d˚ uleˇzit´e datum nakl´ adky a term´ın dod´an´ı. To je umoˇznˇeno zadat v pˇr´ısluˇsn´ ych pol´ıˇck´ach viz. 8.5. Splnˇ en´ e poˇ zadavky Moˇzn´e zad´ an´ı objedn´avky, archivace objedn´avky. Umoˇznˇen´e generov´an´ı objedn´avky z jiˇz vytvoˇren´e nab´ıdky. Cel´ ym programem lze prostoupit a vyuˇz´ıt vˇsech moˇznost´ı archivace, aniˇz by bylo nutn´e pokaˇzd´e vyplˇ novat pomˇernˇe obs´ahl´ y formul´aˇr, coˇz m´a za n´asledek u ´sporu ˇcasu a rutinn´ı pr´ ace.
8.6
Firma
Nem´enˇe d˚ uleˇzit´ a je moˇznost zad´ av´ an´ı nov´e firmy do syst´emu. Pˇri vloˇzen´ı nov´eho z´aznamu, je n´azev firmy zobrazen v rolovac´ım ok´enku ve v´ yˇse zm´ınˇen´ ych formul´aˇr´ıch. Odstranit lze obdobn´ ym zp˚ usobem jako napˇr. popt´ avku. Uk´azka je na obr´azku 8.6.
8.7
Nastaven´ı
Toto je zcela odliˇsn´ a ˇc´ ast. Jedin´ a spoleˇcn´a vˇec s ostatn´ımi okny, je tlaˇc´ıtko ”Hlavn´ı menu”. Tlaˇc´ıtko ”Uloˇzit zmˇeny” uloˇz´ı vˇsechny proveden´e zmˇeny ve formul´aˇr´ıch a zobraz´ı ˇ hl´aˇsen´ı. Cerven´ e tlaˇc´ıtko ”Vymazat vˇse!” odstran´ı hodnoty ze vˇsech formul´aˇr˚ u a m´ısto nich nastav´ı nulov´e hodnoty. Jeˇstˇe pˇred t´ımto z´asadn´ım krokem si vyˇz´ad´a potvrzen´ı.
8.7. NASTAVEN´I
37
Obr´azek 8.5: Objedn´avka
Obr´azek 8.6: Firma
8.7.1
Kategorie vozidel
Zde lze nadefinovat max. 10 druh˚ u (typ˚ u) vozidel. U kaˇzd´e kategorie se definuj´ı rozmˇery loˇzn´e plochy vozidla, nosnost a sazba za 1 km. Kalkulovan´a cena za celov˚ uz je pak generov´ ana na z´akladˇe tˇechto u ´daj˚ u. Vloˇzen´e typy nemusej´ı b´ yt nutnˇe seˇrazen´e ve vzestupn´em poˇrad´ı. V programu je poˇc´ıt´ ano s neuspoˇr´adan´ ym seznamem. Pokud by nebyly vyplnˇeny vˇsechny u ´daje u kaˇzd´e kategorie, je pravdˇepodobn´e, ˇze by aplikace vykazovala neadekv´atn´ı v´ ysledky. Proto je uˇzivatel vˇcas upozornˇen na pˇr´ıpadn´a opomenut´ı. Nastaven´ı vozidel je ukl´ ad´ ano do souboru. Pokud vˇsak nen´ı pˇri spuˇstˇen´ı programu nalezen, zobraz´ı se varovn´e hl´ aˇsen´ı. K n´ apravˇe t´eto chyby je nutn´e pˇrej´ıt do Nastaven´ı, doplnit vhodn´ a data a uloˇzit tyto zmˇeny.
´ - SEZNAMEN ´ ´I S PROGRAMEM KAPITOLA 8. TUTORIAL
38
Obr´ azek 8.7: Nastaven´ı
8.7.2
Cena za m´ısto
Tato ˇc´ast pˇredstavuje manipulaˇcn´ı poplatek za dalˇs´ı m´ısto nakl´adky nebo vykl´adky. St´av´a se, ˇze si z´ akazn´ık pˇreje naloˇzit nebo vyloˇzit zboˇz´ı na v´ıce m´ıstech. V tom pˇr´ıpadˇe se do formul´aˇre popt´ avky zadaj´ı nejvzd´ alenˇejˇs´ı body na trase a dopln´ı se poˇcet dalˇs´ıch zast´avek na cestˇe. Nastaven´ım manipulaˇcn´ı sazby je pak k celkov´e cenˇe za pˇrepravu pˇriˇcten n´asobek poˇctu m´ıst a ceny za m´ısto.
8.7.3
´ Uprava kilometr˚ u
Zde je moˇzn´e nastavit podm´ınky, za kter´ ych se bude navyˇsovat skuteˇcnˇe zjiˇstˇen´a vzd´alenost dle zadan´ ych m´ıst odkud - kam. Napˇr. mnoˇzstv´ı km = 100, procento = 90 znamen´a, ˇze pokud je vzd´alenost menˇs´ı neˇz 100 km, bude nav´ yˇsena o 90%. Tato ˇc´ast je z´avisl´a na finanˇcn´ı politice kaˇzd´e firmy. Nˇekter´ a firma nemus´ı tento zp˚ usob zohlednˇen´ı ujet´ ych kilometr˚ u vyuˇz´ıt. V tom pˇr´ıpadˇe vymaˇze defaultn´ı sazby z tˇechto pol´ıˇcek nebo zad´a nulov´e hodnoty.
8.7.4
Pˇ rikl´ adka
Zde lze upravit sazbu za 1 km n´ avˇesu, ze kter´e je poˇc´ıt´ana cena za pˇrikl´adku. Ovˇsem tato ˇc´astka je ˇcasto vyˇsˇs´ı, neˇz je obvykl´ a sazba u n´avˇesu. Jiˇz ze slova pˇrikl´adka je evidentn´ı, ˇze n´avˇes bude m´ıt na cestˇe v´ıce zast´ avek a str´av´ı s nakl´ad´an´ım a vykl´ad´an´ım zboˇz´ı v´ıce ˇcasu. Pokud nebude nastavena tato sazba, bude koneˇcn´a pˇrikl´adkov´a cena vykazovat nulovou hodnotu. Stejnˇe tak pˇri nenalezen´ı souboru, do kter´eho je sazba ukl´ad´ana. ´ Splnˇ en´ e poˇ zadavky Upravy vˇsech sazeb a nastaven´ı lze prov´adˇet za chodu aplikace. Je moˇzn´e zohlednit kr´ atk´e trasy nav´ yˇsen´ım kilometr˚ u pˇri splnˇen´ı nastaven´ ych podm´ınek. D´ale
8.7. NASTAVEN´I
39
lze vyuˇz´ıt moˇznost kalkulov´ an´ı ceny za pˇrepravu pˇri v´ıce nakl´adk´ach ˇci vykl´adk´ach zad´ an´ım pˇr´ısluˇsn´e sazby. Pˇrikl´ adkovou cenu je moˇzn´e ovlivnit vloˇzen´ım ˇc´astky za 1 km n´avˇesu. Vozidla lze rozdˇelit aˇz na 10 kategori´ı. Pozn´ amka Tato ˇc´ ast programu je u ´zce specializov´ana na obor, pro kter´ y je aplikace tvoˇrena. Nastaven´ı by mˇela prov´ adˇet vˇzdy pouze zasvˇecen´a osoba. V opaˇcn´em pˇr´ıpadˇe hroz´ı znehodnocen´ı v´ ypoˇct˚ u. Pˇri prvn´ım spuˇstˇen´ı programu jsou do formul´aˇr˚ u dosazeny defaultn´ı hodnoty. Pokud budou uloˇzeny, je moˇzn´e zaˇc´ıt aplikaci ihned pouˇz´ıvat. V´ ypoˇcty budou vykazovat re´ aln´e hodnoty zhruba odpov´ıdaj´ıc´ı trˇzn´ım cen´am v dubnu roku 2011.
40
´ - SEZNAMEN ´ ´I S PROGRAMEM KAPITOLA 8. TUTORIAL
Kapitola 9
Z´ avˇ er 9.1 9.1.1
Zhodnocen´ı Obchodn´ı hledisko
Mysl´ım si, ˇze tento produkt na trhu dosud nen´ı. Jsou zde r˚ uznorod´e programy podporuj´ıc´ı dispeˇcerskou, spedit´erskou a podobnou ˇcinnost, a vˇsak ˇz´adn´ y z tˇechto softwar˚ u nen´ı zamˇeˇren na automatick´e generov´ an´ı ceny za popt´avanou pˇrepravu. Pokud firma nepouˇz´ıv´a pˇredem stanoven´e tabulkov´e naceˇ nov´ an´ı, kter´e obsahuje obrovsk´e mnoˇzstv´ı dat a jen velmi tˇeˇzce se pˇrizp˚ usobuje aktu´ aln´ı situaci na trhu, jsou vˇsechny v´ ypoˇcty na kaˇzd´em dispeˇcerovi a jeho ˇsikovnosti.
9.1.2
V´ yhody pro dispeˇ cera
Dispeˇcer uˇz´ıvaj´ıc´ı tento syst´em bude mnohem pˇrizp˚ usobivˇejˇs´ı a vˇeˇr´ım, ˇze i m´enˇe stresovan´ y oproti ostatn´ım. Bude moci dokonale vyuˇz´ıt rychlost a pˇresnost v´ ypoˇcetn´ı techniky a z´aroveˇ n ˇsetˇrit svoje jiˇz tak dost nam´ahan´e nervy pˇri neust´al´ ych zmˇen´ach v dopravˇe (myˇsleno ˇ ve smyslu, ˇze nikdy nic nejde podle pl´anu, at’ je sebelepˇs´ı. Casto doch´az´ı ke zdrˇzen´ı, nehod´ am na silnic´ıch a m´ alo pˇredv´ıdateln´ ym situac´ım).
9.1.3
Budoucnost
Aplikace by se mohla pokusit ulehˇcit nebo dokonce nahradit jednu konkr´etn´ı lidskou ˇcinnost. Do jak´e m´ıry nelze nyn´ı soudit. To uk´aˇze aˇz ˇcas, obzvl´aˇst’ po implementaci rozˇs´ıˇren´ı, navrhovan´ ych v Kapitole 2.
41
42
´ ER ˇ KAPITOLA 9. ZAV
Pouˇ zit´ e znaˇ cky a zkratky • N´ avˇes - spolu s tahaˇcem se jedn´a o vozidlo maxim´aln´ıch, bˇeˇznˇe pˇr´ıpustn´ ych rozmˇer˚ u, pohybuj´ıc´ı se na silnic´ıch v r´amci Evropy. Lidmi, obvykle nijak nezainteresovan´ ymi v prostˇred´ı n´ akladn´ı dopravy, naz´ yvan´ y kamion. • DK - Dispeˇcer˚ uv kalkul´ ator. • Dispeˇcer - pracovn´ık v oblasti n´akladn´ı silniˇcn´ı dopravy. • Popt´ avka - dotaz z´ akazn´ıka t´ ykaj´ıc´ı se podm´ınek zajiˇstˇen´ı pˇrepravy. • Nab´ıdka - dokument vymezuj´ıc´ı moˇznosti a cenu za popt´avanou pˇrepravu. • Objedn´ avka - dokument podle kter´eho se bude pˇreprava realizovat. • WMS - Web Maps Service (webov´a mapov´a sluˇzba). • API - Application Programming Interface (oznaˇcuje v informatice rozhran´ı pro programov´ an´ı aplikac´ı). • HTTP - Hypertext Transfer Protocol (internetov´ y protokol urˇcen´ y pro v´ ymˇenu hypertextov´ ych dokument˚ u ve form´atu HTML). • URL - Uniform Resource Locator (jednotn´ y lok´ator zdroj˚ u). Je to ˇretˇezec znak˚ u s definovanou strukturou, kter´ y slouˇz´ı k pˇresn´e specifikaci um´ıstˇen´ı zdroj˚ u informac´ı (ve smyslu dokument nebo sluˇzba) na Internetu. • UTF-8 - znakov´ a sada. Zkratka pro UCS Transformation Format. Je to zp˚ usob k´odov´ an´ı ˇretˇezc˚ u znak˚ u Unicode/UCS do sekvenc´ı bajt˚ u. • XML - Extensible Markup Language (znaˇckovac´ı jazyk). • JSON - JavaScript Object Notation (zp˚ usob z´apisu dat - datov´ y form´at, nez´avisl´ y na poˇc´ıtaˇcov´e platformˇe). ˇ - poˇstovn´ı smˇerovac´ı ˇc´ıslo. • PSC • Tag - znaˇcka, pouˇz´ıvan´ a v r˚ uzn´ ych programovac´ıch jazyc´ıch. • HTML - HyperText Markup Language (znaˇckovac´ı jazyk). • JAVA - objektovˇe orientovan´ y programovac´ı jazyk.
43
´ ER ˇ KAPITOLA 9. ZAV
44
• MVC - Model-View-Controller (softwarov´a architektura). • JRE - Java Runtime Environment (prostˇred´ı umoˇzn ˇuj´ıc´ı spouˇstˇet programy v Javˇe).