• No results found

V´ypoˇcty elektrick´e rozvodn´e s´ıtˇe v prostˇred´ı webu

N/A
N/A
Protected

Academic year: 2022

Share "V´ypoˇcty elektrick´e rozvodn´e s´ıtˇe v prostˇred´ı webu"

Copied!
68
0
0

Loading.... (view fulltext now)

Full text

(1)

V´ ypoˇ cty elektrick´ e rozvodn´ e s´ıtˇ e v prostˇ red´ı webu

Diplomov´ a pr´ ace

Studijn´ı program: N2612 – Elektrotechnika a informatika Studijn´ı obor: 1802T007 – Informaˇcn´ı technologie Autor pr´ace: Bc. Martin Bureˇs

Vedouc´ı pr´ace: Ing. Jana Vitvarov´a, PhD.

(2)

Web based calculations of power distribution network

Diploma thesis

Study programme: N2612 – Electrotechnology and informatics Study branch: 1802T007 – Information technology

Author: Bc. Martin Bureˇs

Supervisor: Ing. Jana Vitvarov´a, PhD.

(3)
(4)
(5)
(6)

Abstrakt

Diplomov´a pr´ace popisuje n´avrh a v´yvoj softwarov´e platformy urˇcen´e k ˇreˇsen´ı vybran´ych vˇedeck´ych v´ypoˇct˚u nad elektrizaˇcn´ı soustavou v prostˇred´ı webu s vyuˇzit´ım souˇcasn´ych webov´ych technologi´ı. Jsou zde ˇreˇseny aktu´aln´ı moˇznosti tvorby platformy z pohledu n´aroˇcn´ych v´ypoˇcetn´ıch ´uloh, zp˚usob˚u ukl´ad´an´ı a sd´ılen´ı dat napˇr´ıˇc platformou, grafick´e vizualizace dat a propojen´ı s ex- tern´ımi syst´emy. D˚uraz je kladen pˇredevˇs´ım na snadn´e a modul´arn´ı vyuˇzit´ı sluˇzeb platformy v pˇr´ıpadˇe re´aln´eho nasazen´ı.

Kl´ıˇcov´a slova: web, webov´e sluˇzby, platforma, elektrizaˇcn´ı sous- tava, ust´alen´y chod

Abstract

Diploma thesis describes the development of a software platform designed to solve selected scientific calculations on a power grid in a web environment using modern Web technologies. Current pos- sibilities for the platform development are examined from the per- spective of demanding computational tasks, ways of storing and sharing data across the platform, graphical data visualization and integration with external systems. The focus is primarily on an easy and modular use of the platform services in case of a real deploy- ment.

Keywords: web, web services, platform, electricity grid, steady state

(7)

Podˇ ekov´ an´ı

Dˇekuji Ing. Janˇe Vitvarov´e, Ph.D. za veden´ı m´e diplomov´e pr´ace.

D´ale dˇekuji pracovn´ık˚um oddˇelen´ı Provozu ˇr´ıd´ıc´ıch syst´em˚u V´ychod – Hradec Kr´alov´e ze spoleˇcnosti ˇCEZ Distribuce a.s. za konzultace a moˇznost ovˇeˇren´ı vytvoˇren´ych aplikac´ı v provozn´ıch podm´ınk´ach.

(8)

Obsah

Seznam zkratek . . . 9

1 Uvod´ 10 2 Anal´yza st´avaj´ıc´ıho stavu 11 2.1 Popis elektrizaˇcn´ı soustavy . . . 11

2.2 Syst´em RIS a jeho architektura . . . 12

3 N´avrh platformy 14 3.1 Poˇzadavky na funkˇcnost . . . 14

3.2 Potenci´aln´ı uˇzivatel . . . 15

3.3 Model platformy . . . 16

3.4 Datov´y model . . . 20

3.5 Provozn´ı prostˇred´ı . . . 21

3.6 Metodiky v´yvoje softwaru . . . 23

3.7 Techniky testov´an´ı softwaru . . . 24

3.8 Licence a dostupnost . . . 25

4 Poskytovatel identity 26 4.1 Identita uˇzivatele . . . 26

4.2 Autentizace . . . 27

4.3 Autorizace . . . 27

4.4 Implementace . . . 31

4.5 Testov´an´ı . . . 31

5 Aplikaˇcn´ı server 32 5.1 Princip webov´ych sluˇzeb . . . 32

5.2 Pˇrehled webov´ych sluˇzeb . . . 32

5.3 N´avrh API . . . 34

5.4 Implementace . . . 38

5.5 Testov´an´ı . . . 40

5.6 Provozn´ı prostˇred´ı . . . 41

5.7 API Connector . . . 41

6 Editor 42 6.1 N´avrh aplikace . . . 42

6.2 Implementace . . . 44

(9)

6.3 Testov´an´ı . . . 46

6.4 Provozn´ı prostˇred´ı . . . 46

7 Propojen´ı se syst´emy tˇret´ıch stran 47 7.1 Principy propojen´ı syst´em˚u . . . 47

7.2 Import dat . . . 48

7.3 Export dat . . . 51

8 V´ypoˇcetn´ı ´ulohy 52 8.1 V´ypoˇcetn´ı uzel . . . 52

8.2 Zivotn´ı cyklus ´ˇ ulohy . . . 53

8.3 Ust´alen´y chod ES . . . 53

8.4 Testov´an´ı . . . 56

9 Z´avˇer 57

Literatura 57

Obsah CD 60

Pˇr´ılohy 61

A ER model datab´aze Poskytovatel identit 62

B ER model datab´aze OAuth 63

C ER model datab´aze S´ıt’ 64

D ER model datab´aze V´ypoˇcty 65

E Editor – schema s´ıtˇe ˇZelkovice 66

F Editor – ovl´ad´an´ı ´uloh 67

(10)

Seznam zkratek

ES elektrizaˇcn´ı soustava

GUI graphical user interface, grafick´e uˇzivatelsk´e rozhran´ı UI user interface, uˇzivatelsk´e rozhran´ı

SaaS software as a service, software jako sluˇzba SPA single page application, jednostr´ankov´a aplikace ER entity relation diagram, diagram vztah˚u mezi entitami URL uniform resource locator, jednotn´a adresa zdroje

FQDN fully qualified domain name, plnˇe specifikovan´e dom´enov´e jm´eno poˇc´ıtaˇce CSV comma separated values, hodnoty oddˇelen´e oddˇelovaˇcem

XML extensible markup language, rozˇsiˇriteln´y znaˇckovac´ı jazyk JSON JavaScript Object Notation, form´at z´apisu dat

(11)

1 Uvod ´

Elektrick´a energie se stala souˇc´ast´ı ˇzivota bˇeˇzn´eho ˇclovˇeka. Na jedn´e stranˇe stoj´ı spotˇrebitel, jehoˇz pˇr´an´ım je, aby si mohl do elektrick´e z´asuvky zapojit sv˚uj spotˇrebiˇc, a to kdykoli a na libovolnˇe dlouho. Na stranˇe druh´e stoj´ı distribuˇcn´ı spoleˇcnost, a potaˇzmo vˇse s t´ım souvisej´ıc´ı od v´yroby aˇz po pˇrenos elektrick´e energie, jej´ımˇz

´

ukolem je zajiˇstˇen´ı pˇrepravy vyroben´e elektrick´e energie ke koneˇcn´emu spotˇrebiteli.

Zde vstupuje v ´uvahu nespoˇcet dalˇs´ıch postup˚u, princip˚u, v´ypoˇct˚u aj. za ´uˇcelem bezchybn´eho zajiˇstˇen´ı pˇrenosu elektrick´e energie. Jedn´a se o multioborovou vˇedn´ı problematiku se zastoupen´ım matematiky, fyziky, informatiky, energetiky aj.

Pr´avˇe zm´ınˇen´a multiobornost se do znaˇcn´e m´ıry projevuje i v t´eto diplomov´e pr´aci. Jej´ım smyslem je bliˇzˇs´ı sezn´amen´ı s problematikou v´ypoˇctu ust´alen´eho chodu ES pro n´asledn´e potˇreby n´avrhu platformy, zp˚usoby jak v´ypoˇcty prakticky realizo- vat, a vhodn´ym n´avrhem platformy, na kter´e tyto operace budou prov´adˇeny. Svoje zastoupen´ı tak zde nach´az´ı matematika i informatika, kter´a je zde vˇsak pˇrevaˇzuj´ıc´ım prvkem z´ajmu. Proto je moˇzn´e tvrdit, ˇze smyslem t´eto pr´ace je vytvoˇrit takovou softwarovou platformu, na kter´e bude moˇzn´e prov´adˇet vybran´e typy ´uloh nad sche- matem ES. Pro dokreslen´ı kontextu pak bude prakticky implementov´ana v´ypoˇcetn´ı

´

uloha ˇreˇs´ıc´ı ust´alen´y chod ES.

Jak je patrn´e ze samotn´eho n´azvu t´eto pr´ace, tak nemal´a ˇc´ast je zde vˇenov´ana souˇcasn´ym technologi´ım v prostˇred´ı webu. D˚uvod˚u je hned nˇekolik. Jedn´ım ze z´asadn´ıch je fakt, ˇze souˇcasn´e programy ˇreˇs´ıc´ı stejnou problematiku jsou postaven´e pro desktopov´y provoz a z velk´e ˇc´asti postr´adaj´ı multiplatformn´ıˇreˇsen´ı. Nelze tvrdit, ˇze webov´e technologie jsou absolutnˇe multiplatformn´ı. V posledn´ı dobˇe vˇsak jejich v´yvoj k tomuto smˇeˇruje. Proto je vhodn´e prostˇrednictv´ım t´eto pr´ace prozkoumat, nakolik jejich v´yvoj pokroˇcil a zda-li jsou pouˇziteln´e. S webov´ymi technologiemi sou- visej´ı i n´asleduj´ıc´ı ot´azky. Jak se zmˇen´ı architektura syst´emu zaveden´ım webov´ych sluˇzeb? Je moˇzn´e nahradit desktopovou aplikaci aplikac´ı webovou? Pokud ano, pak v jak´em rozsahu? Je moˇzn´e uvaˇzovat nasazen´ı takto upraven´eho syst´emu (ve smyslu pouˇzit´ı webov´ych technologi´ı) do produkˇcn´ıho prostˇred´ı?

Samotn´a pr´ace je systematicky rozdˇelena do nˇekolika ˇc´ast´ı. V ´uvodu je struˇcnˇe pops´an st´avaj´ıc´ı stav. Na jeho z´akladˇe je pot´e proveden n´avrh platformy, aby splˇnoval praktick´e poˇzadavky vzneˇsen´e od konzultanta a aby naplˇnoval zad´an´ı t´eto pr´ace.

N´asleduj´ıc´ı kapitoly se postupnˇe zab´yvaj´ı bliˇzˇs´ım popisem jednotliv´ych komponent platformy.

(12)

2 Anal´ yza st´ avaj´ıc´ıho stavu

Diplomov´a pr´ace navazuje na pˇredch´azej´ıc´ı magistersk´y projekt (viz [1]), kter´y se zab´yval ot´azkou, jak uchov´avat v poˇc´ıtaˇci reprezentaci ES. Jelikoˇz se jedn´a o t´ema vysoce odborn´e, cel´a pr´ace byla konzultov´ana s pracovn´ıky oddˇelen´ı Provozu ˇr´ıd´ıc´ıch syst´em˚u V´ychod – Hradec Kr´alov´e ze spoleˇcnosti ˇCEZ Distribuce a.s.

Jak jiˇz bylo naznaˇceno v ´uvodu, tato pr´ace se zab´yv´a oblast´ı pl´anov´an´ı a ˇr´ızen´ı s´ıt´ı. Jelikoˇz se jedn´a obecnˇe o dosti ˇsirok´e t´ema, pr´ace se v teoretick´e rovinˇe zamˇeˇruje pouze na v´ypoˇcet ust´alen´eho chodu ES. A pr´avˇe touto problematikou, a mimo jin´e i ˇradou dalˇs´ıch, se zab´yvaj´ı dalˇs´ı komerˇcnˇe dostupn´e syst´emy. Jedn´ım z nich je i syst´em RIS – SCADA/EMS od spoleˇcnosti ELEKTROSYSTEM, a.s. (viz [2]).

Z rize praktick´eho d˚uvodu, kter´ym je pˇr´ıtomnost tohoto syst´emu v ostr´em provozu u konzultanta, bude i n´aslednˇe uvaˇzov´ano pouˇzit´ı pr´avˇe tohoto syst´emu.

2.1 Popis elektrizaˇ cn´ı soustavy

Hlavn´ı ´ulohou ES je pˇrenos elektrick´e energie z m´ısta v´yroby (v´yrobci) do m´ısta spotˇreby (spotˇrebitel´e). Je tvoˇrena souhrnem veden´ı, kter´e m˚uˇze v´est vzduchem, pomoc´ı r˚uzn´ych typ˚u stoˇz´ar˚u nebo se m˚uˇze jednat o kabelovou variantu. D´ale je dˇelena na pˇrenosovou s´ıt’, kter´a vytv´aˇr´ı pˇrenosovou cestu mezi centry v´yroby a spotˇreby, a distribuˇcn´ı s´ıt’, kter´a slouˇz´ı k pˇrenosu elektrick´e energie ke koncov´ym spotˇrebitel˚um.

ES je v poˇc´ıtaˇci reprezentov´ana schematem. Schema je mnoˇzina prvk˚u, kter´e dohromady vytv´aˇrej´ı ES. Samotn´e prvky soustavy lze rozdˇelit do tˇr´ı kategori´ı –

´

useky, uzlov´e body a objekty. Pro ˇreˇsen´ı ´ulohy ust´alen´eho chodu ES jsou pouˇzity pouze prvn´ı dvˇe kategorie prvk˚u.

Usek je takov´´ y prvek soustavy, kter´y spojuje alespoˇn dva rozd´ıln´e uzlov´e body a m˚uˇze nab´yvat typu:

• veden´ı,

• transform´ator,

• trojvinut’ov´y transform´ator,

• reaktor,

• sp´ınac´ı prvek.

(13)

Uzlov´y bod je takov´y prvek soustavy, kter´y m˚uˇze b´yt propojen s ostatn´ımi uzlov´ymi body za pomoci ´useku a m˚uˇze nab´yvat typu:

• nap´ajec´ı bod,

• odbˇern´y bod,

• turbogener´ator,

• hydrogener´ator,

• nadˇrazen´a soustava.

Objekt je takov´y prvek soustavy, kter´y seskupuje vybran´e uzlov´e body. Pro

´

uˇcely ˇreˇsen´ı ´uloh neposkytuje ˇz´adn´e relevantn´ı informace. Jeho pouˇzit´ı je zejm´ena pro organizaci uzlov´ych bod˚u.

Jedn´ım z v´ystup˚u zm´ınˇen´eho magistersk´eho projektu (viz [1]) byl jazyk popisuj´ıc´ı schema s´ıtˇe a jeho prvky. Byl vytvoˇren v jazyce XML, kter´y i pˇres svoj´ı koˇsatˇejˇs´ı strukturu velmi pˇresnˇe vyjadˇruje vztah jednotliv´ych prvk˚u a jejich atribut˚u. Pr´avˇe z takto popsan´eho schematu soustavy bude d´ale moˇzn´e vych´azet pˇri n´avrhu zm´ınˇen´e platformy.

2.2 Syst´ em RIS a jeho architektura

R´ıd´ıc´ı syst´ˇ em RIS – SCADA/EMS vytvoˇrila spoleˇcnost ELEKTROSYSTEM, a.s.

(viz [2]). Jedn´a se o komerˇcn´ı produkt, kter´y je navrˇzen pˇredevˇs´ım pro distribuˇcn´ı spoleˇcnosti s potˇrebou ˇr´ızen´ı jejich distribuˇcn´ı s´ıtˇe. Obsahuje mnoho funkcionalit a komponent, mezi kter´ymi je napˇr. editor schematu soustavy, kter´y umoˇzˇnuje vytv´aˇret i editovat soustavy. Dalˇs´ı jeho komponenty pak ˇreˇs´ı estimaci chodu s´ıtˇe, kontingenˇcn´ı anal´yzu, chod s´ıtˇe, v´ypoˇcty zkrat˚u, v´ypoˇcty topologie, ale i samotn´e ˇr´ızen´ı sbˇeru dat z energetick´ych objekt˚u. Nab´ız´ı tak´e funkcionalitu dispeˇcersk´eho ˇr´ızen´ı zvolen´e s´ıtˇe. Syst´em se skl´ad´a z nˇekolika hlavn´ıch ˇc´ast´ı, kter´e jsou zachyceny na obr´azku 2.1. Kaˇzd´a jednotliv´a ˇc´ast mus´ı b´yt ve funkˇcn´ım syst´emu zastoupena nejm´enˇe jednou instanc´ı, coˇz je na uveden´em obr´azku vyj´adˇreno symbolicky jako 1:N. Patˇr´ı mezi nˇe:

• datov´e servery (DS), kter´e zajiˇst’uj´ı chod syst´emu,

• servery vzd´alen´ych uˇzivatel˚u (VU), kter´e zajiˇst’uj´ı vzd´alen´e pˇripojen´ı do pod- nikov´e s´ıtˇe,

• telemetrick´e servery (TS), jejichˇz hlavn´ı n´apln´ı je sbˇer dat ze vzd´alen´ych ob- jekt˚u,

• servery vyˇsˇs´ıch energetick´ych funkc´ı (ES), kter´e realizuj´ı numerick´e v´ypoˇcty vyˇsˇs´ıch funkc´ı,

• uˇzivatelsk´e stanice (US), pomoc´ı kter´ych lze syst´em obsluhovat.

(14)

Z obr´azku 2.1 je d´ale patrn´e, ˇze cel´y tento syst´em pouˇz´ıv´a pro komunikaci TCP/IP protokol. Vzhledem k potˇrebˇe spojen´ı objekt˚u, kter´e jsou r˚uznˇe geograficky um´ıstˇen´e, se pro ´uˇcely spojen´ı pouˇz´ıvaj´ı r˚uzn´e technologie od dedikovan´ych okruh˚u poˇc´ınaje aˇz po VPN pˇripojen´ı. To zajist´ı, ˇze veˇsker´e objekty, kter´e podl´ehaj´ı vzd´alen´emu ˇr´ızen´ı, vytv´aˇr´ı v distribuˇcn´ı oblasti (V´ychodn´ı ˇCechy) priv´atn´ı, tzv. podnikovou, s´ıt’. Ta je pak d´ale spojena s ostatn´ımi distribuˇcn´ımi s´ıtˇemi v r´amci distributora.

Z dokumentace t´eˇz vypl´yv´a, ˇze syst´em RIS nen´ı multiplatformn´ı. Pˇrev´aˇzn´a vˇetˇsina server˚u je provozov´ana na operaˇcn´ım syst´emu Linux. Existuj´ı d´ılˇc´ı programy, kter´e jsou spustiteln´e pouze pod operaˇcn´ım syst´emem Windows. Vzhledem k tomu, ˇze se jedn´a pr´avˇe o stˇeˇzejn´ı j´adro cel´eho syst´emu, bez kter´eho se ˇz´adn´a z uˇzivatelsk´ych stanicic neobejde, je nam´ıstˇe konstatov´an´ı on´e nemultiplatformosti. V´yjimkou jsou pak uˇzivatelsk´e stanice ve formˇe desktopov´ych aplikac´ı, kter´e by mˇely fungovat, jak na operaˇcn´ım syst´emu Linux, tak i Windows.

Obr´azek 2.1: Architektura syst´emu RIS

(15)

3 N´ avrh platformy

Platforma je definov´ana jako prostˇred´ı po str´ance hardwarov´e i softwarov´e, kter´e umoˇzˇnuje bezprobl´emov´y chod aplikac´ı na n´ı provozovan´ych. Nen´ı bez zaj´ımavosti, ˇze v dneˇsn´ı praxi se zejm´ena pro komplexnˇejˇs´ı aplikace ˇci ´ulohy toto slovo vyskytuje pomˇernˇe ˇcasto. Mnohdy je totiˇz potˇreba sladit ˇcinnost v´ıce aplikac´ı, kter´e by mˇely pr´avˇe poskytovat urˇcit´e bˇehov´e prostˇred´ı. A t´ım jsme se dostali zp´atky ke slovu platforma. Je moˇzn´a ambici´ozn´ı toto slovo pouˇz´ıvat. Zvl´aˇstˇe v kontextu diplomov´e pr´ace a za podm´ınek ve kter´ych vznikala. Nicm´enˇe pr´avˇe toto slovo nejl´epe vystihuje pˇresnˇe tu mnoˇzinu aplikac´ı, funkˇcnosti, n´apad˚u a ˇreˇsen´ı, kter´ymi se diplomov´a pr´ace d´ale zab´yv´a.

3.1 Poˇ zadavky na funkˇ cnost

Mezi z´akladn´ı poˇzadavky na funkcionalitu platformy, kter´e samozˇrejmˇe vych´azej´ı z re´aln´e potˇreby a konzultac´ı, jsou zaˇrazeny n´asleduj´ıc´ı.

1. Navrhnout a vytvoˇrit jako volnˇe ˇsiˇriteln´y software a vyuˇz´ıt volnˇe dostupn´e technologie (i z hlediska pˇr´ıpadn´eho budouc´ıho komerˇcn´ıho vyuˇzit´ı).

2. V pˇr´ıpadˇe vhodnosti pouˇz´ıt webov´e technologie.

3. Vˇsechny aplikace v r´amci platformy vytvoˇrit jiˇz od poˇc´atku s distribuovanou architekturou tak, aby byly dobˇre ˇsk´alovateln´e. Kl´ast d˚uraz na multiplatformn´ı ˇreˇsen´ı.

4. Identity uˇzivatel˚u spravovat centr´alnˇe spolu s jejich pˇr´ıstupov´ymi ´udaji vˇcetnˇe moˇznosti vytv´aˇren´ı ´uˇcelov´ych pˇr´ıstupov´ych ´udaj˚u ke konkr´etn´ım aplikac´ım.

5. Prov´adˇet autentizaci a autorizaci prostˇrednictv´ım centr´aln´ıho pˇr´ıstupov´eho bodu. Zde kl´ast d˚uraz na ochranu pˇr´ıstupov´ych ´udaj˚u a jejich sdˇelov´an´ı pouze d˚uvˇeryhodn´e autentizaˇcn´ı stranˇe.

6. Vyˇzadovat pˇr´ıstupov´e opr´avnˇen´ı k pˇr´ıstupu do schematu s´ıtˇe a k zad´av´an´ı v´ypoˇcetn´ı ´ulohy vytvoˇren´e nad zvolen´ym schematem. ˇZ´adn´e dalˇs´ı omezen´ı pˇr´ıstupu k jednotliv´ym aplikac´ım ˇci jejich ˇc´astem nen´ı poˇzadov´ano.

7. Vytvoˇrit editor schematu s´ıtˇe s moˇznost´ı editace prvk˚u, grafick´e vizualizace schematu a zad´av´an´ı v´ypoˇcetn´ıch ´uloh. Jin´e poˇzadavky na jeho UI nejsou.

(16)

Nicm´enˇe je nutn´e pˇri jeho n´avrhu br´at v potaz pˇrehlednost a srozumitelnost pro koncov´eho uˇzivatele.

8. V pˇr´ıpadˇe pouˇzit´ı webov´ych technologi´ı jako UI vˇzdy kl´ast d˚uraz na responzivn´ı design.

9. Prov´est import dat ze syst´emu RIS. Nen´ı jej tˇreba integrovat do editoru, postaˇc´ı spouˇstˇen´ı z termin´alu a n´asledn´y import proveden´y z pˇred´avac´ıho form´atu. Uvaˇzovat moˇzn´e budouc´ı rozˇs´ıˇren´ı v implementaci jin´eho form´atu.

10. Implementovat v´ypoˇcetn´ı ´ulohu ust´alen´eho chodu s´ıtˇe.

3.2 Potenci´ aln´ı uˇ zivatel

Potenci´aln´ıch uˇzivatel˚u je nˇekolik skupin. Spoleˇcn´ym z´ajmem n´aslednˇe identifiko- van´ych skupin uˇzivatel˚u je skuteˇcnost, ˇze tato platforma je koncipov´ana jako volnˇe ˇsiˇriteln´a s otevˇren´ym zdrojov´ym k´odem. Pˇrestoˇze je pravdou, ˇze u takto zaloˇzen´ych projekt˚u rozhoduje o jejich pˇreˇzit´ı podpora ze strany komunity ˇci alespoˇn v˚ule v´yvoj´aˇr˚u pokraˇcovat ve v´yvoji, tak i pˇres tuto skuteˇcnost se jedn´a o ve sv´e oblasti nezanedbateln´y krok kupˇredu a je jen na kaˇzd´em uˇzivateli, zda si projekt osvoj´ı.

Prvn´ı skupinou jsou distribuˇcn´ı spoleˇcnosti provozuj´ıc´ı distribuˇcn´ı soustavy.

Vzhledem k faktu, ˇze tato pr´ace vznikala za pomoci konzultac´ı s pracovn´ıky pr´avˇe takov´e spoleˇcnosti, je zˇrejm´e, ˇze toto je jeden z potenci´aln´ıch uˇzivatel˚u. Byt’ se ne- jedn´a v ˇz´adn´em pˇr´ıpadˇe o n´ahradu jiˇz pouˇz´ıvan´ych dispeˇcersk´ych a jin´ych syst´em˚u, tak tato platforma si m˚uˇze naj´ıt sv´e uplatnˇen´ı jako alternativn´ı n´astroj pro n´aroˇcnˇejˇs´ı matematick´e v´ypoˇcty vybran´ych typ˚u ´uloh, kter´e si jej´ı provozovatel m˚uˇze s´am modifikovat dle sv´ych pˇr´an´ı. Ne kaˇzd´emu totiˇz m˚uˇze vyhovovat uzavˇrenost dnes pouˇz´ıvan´ych syst´em˚u.

Druhou skupinou jsou pak samostatn´ı projektanti elektrick´ych s´ıt´ıˇci spoleˇcnosti zab´yvaj´ıc´ı se t´ımto oborem. I v tomto pˇr´ıpadˇe hraje roli potˇreba prov´adˇen´ı v´ypoˇct˚u vybran´ych typ˚u ´uloh. Ve spojen´ı s r˚uzn´ymi moˇznostmi provozu platformy, moˇznostem k jej´ım ´uprav´am (samozˇrejmˇe v pˇr´ıpadˇe potˇreby) a sv´e dostupnosti, se m˚uˇze jevit jako zaj´ımav´a moˇznost.

N´asleduj´ıc´ı skupina se od pˇredchoz´ıch odliˇsuje t´ım, ˇze se ve sv´e podstatˇe ne- jedn´a o uˇzivatele platformy, n´ybrˇz o jej´ıho provozovatele. Tuto platformu by mohl provozovatel provozovat i jako SaaS, kdy z´akazn´ık vyuˇz´ıv´a sluˇzby platformy a jej´ı provozovatel si na n´ı t´ımto zp˚usobem realizuje podnikatelsk´y z´amˇer. Pro ´uˇcely t´eto pr´ace vˇsak tato moˇznost rozhodnˇe nen´ı prioritn´ı a jedn´a se tak pouze o ´uvahu.

Posledn´ı skupinu tvoˇr´ı lid´e ˇci instituce, kter´e tuto platformu vyuˇzij´ı k eduka- tivn´ım ´uˇcel˚um. Ne ˇze by nebylo moˇzn´e ji provozovat z edukativn´ıch ´uˇcel˚u i pro v´yˇse uveden´e typy uˇzivatel˚u, ale u nich se pˇredpokl´ad´a sp´ıˇse praktick´e vyuˇzit´ı na z´akladˇe re´aln´ych potˇreb.

(17)

3.3 Model platformy

3.3.1 Komponenty

Na z´akladˇe poˇzadavk˚u uveden´ych v kapitole 3.1 jsou definov´any z´akladn´ı kom- ponenty platformy. Jak vypl´yv´a z tˇret´ıho poˇzadavku, vˇsechny komponenty jsou navrˇzeny s ohledem na distribuovatelnost. T´ım je myˇsleno, aby kaˇzd´a z komponent byla pˇripraven´a na ˇsk´alovatelnost, na zv´yˇsen´ı jej´ıho v´ykonu, kapacity, ˇci prost´eho fyzick´eho oddˇelen´ı od zbytku platformy v pˇr´ıpadˇe potˇreby.

Prvn´ı takovou komponentou je Poskytovatel identit (IdP). Jej´ım ´ukolem je spr´ava identity jednotliv´ych uˇzivatel˚u a k n´ı pˇr´ısluˇsej´ıc´ı pˇr´ıstupov´e ´udaje. Dalˇs´ı nem´enˇe v´yznamnou funkc´ı je prov´adˇen´ı ovˇeˇrov´an´ı uˇzivatel˚u, kteˇr´ı se pokouˇsej´ı k plat- formˇe pˇristoupit a udˇelit jim patˇriˇcn´a opr´avnˇen´ı. A v okamˇziku pˇr´ıchoz´ıho poˇzadavku vˇzdy ovˇeˇrit, ˇze dan´y poˇzadavek a jeho p˚uvodce, uˇzivatel, sm´ı dan´y poˇzadavek prov´est.

Dalˇs´ı komponentou, z poˇzadavk˚u vypl´yvaj´ıc´ı, je Editor. Prostˇrednictv´ım kom- ponenty editoru z´ısk´a uˇzivatel pˇr´ıstup k uloˇzen´ym dat˚um, a to at’ uˇz v textov´e ˇci grafick´e podobˇe. Textovou podobou je myˇslena moˇznost n´ahledu a ´uprav pomoc´ı formul´aˇr˚u ˇci jin´ych k tomu potˇrebn´ych prostˇredk˚u tak, aby mˇel uˇzivatel moˇznost s daty pracovat. Grafickou podobou je myˇslena moˇznost vizualizace vybran´ych dat.

V tomto pˇr´ıpadˇe lze uvaˇzovat vizualizaci vytvoˇren´eho schematu s´ıtˇe, jelikoˇz to obsahuje vˇsechny pouˇzit´e prvky soustavy a d´av´a ucelen´y pohled na n´ı samotnou prostˇrednictv´ım grafu s´ıtˇe.

Spolupr´aci s extern´ımi programy, prozat´ım ve formˇe pˇreb´ır´an´ı dat z extern´ıho syst´emu, ˇreˇs´ı komponenta Import dat. Tato funkcionalita je dostupn´a z toho d˚uvodu, aby bylo moˇzn´e z extern´ıho syst´emu importovat jiˇz existuj´ıc´ı data. V tomto pˇr´ıpadˇe data o schematu s´ıtˇe. Vzhledem k faktu, ˇze je zde kladen d˚uraz na jistou modularitu, tak tato komponenta je navrˇzena zp˚usobem, aby se dala upravovat pro r˚uzn´e konkr´etn´ı programy. Praktick´a implementace je zamˇeˇrena na syst´em RIS.

Posledn´ı komponentou vypl´yvaj´ıc´ı z poˇzadavk˚u jsou V´ypoˇcty ´uloh. Vzhledem k faktu, ˇze existuje v´ıce typ˚u v´ypoˇcetn´ıch ´uloh, kter´e lze nad dan´ym schematem s´ıtˇe prov´adˇet, a s pˇrihl´ednut´ım k v´ykonov´ym moˇznostem r˚uzn´ych d´ale popsan´ych variant, je zapotˇreb´ı kl´ast u t´eto komponenty d˚uraz na modul´arnost, ˇsk´alovatelnost a vhodn´e techniky jej´ıho zpracov´an´ı.

3.3.2 Uloˇ ´ ziˇ stˇ e dat

Poˇzadavky v kapitole 3.1 nikterak nespecifikuj´ı zp˚usob uloˇzen´ı dat a jejich pˇr´ıpadn´e sd´ılen´ı napˇr´ıˇc zm´ınˇen´ymi komponentami. Toho lze dos´ahnout r˚uznˇe.

Prvn´ı variantou je, ˇze kaˇzd´a komponenta m´a vlastn´ı ´uloˇziˇstˇe dat, kter´e spravuje.

Tento pˇr´ıstup m´a relativn´ı v´yhodu v tom, ˇze nepˇrid´av´a do platformy dalˇs´ı kompo- nenty. Nicm´enˇe vˇetˇs´ı nev´yhodou se jev´ı jejich vz´ajemn´e prov´az´an´ı a n´asledn´a spr´ava.

Druh´a varianta tento probl´em ˇreˇs´ı za pomoci centr´aln´ıho ´uloˇziˇstˇe dat pro veˇsker´e komponenty. To je realizov´ano prostˇrednictv´ım datab´aze. Tento pˇr´ıpad je zachycen na obr´azku 3.1.

(18)

Obr´azek 3.1: Model platformy s centr´aln´ım ´uloˇziˇstˇem

Avˇsak i pro tento pˇr´ıpad existuje negativn´ı d˚uvod, proˇc jej nezvolit. T´ım d˚uvodem je z´avislost na konkr´etn´ı pouˇzit´e datab´azi. V pˇr´ıpadˇe jej´ı zmˇeny ˇci v´ymˇeny za jinou by bylo potˇreba zasahovat do jednotliv´ych komponent. Pˇrestoˇze dnes nen´ı prak- ticky probl´em vytv´aˇret konkr´etn´ı komponenty s dostateˇcnou abstrakc´ı a pot´e jen konfigurac´ı nastavit konkr´etn´ı datab´azi, minim´alnˇe v tomto lze spatˇrovat onu nutnou modifikaci. Jej´ı v´yhodou se jev´ı rychlost zpracov´an´ı poˇzadavk˚u, protoˇze poˇzadavky zpracov´av´a pˇr´ımo datab´azov´y stroj.

Tˇret´ı variantou je pouˇzit´ı aplikaˇcn´ıho serveru (AS). Tento pˇr´ıpad je zn´azornˇen na obr´azku 3.2. Zde je patrn´e, ˇze prostˇredn´ıkem pro v´ymˇenu dat mezi komponen- tami (aplikacemi) a datab´az´ı je aplikaˇcn´ı server. Ten m˚uˇze podporovat r˚uzn´e zp˚usoby zpracov´an´ı poˇzadavk˚u a odpovˇed´ı a tak´e jejich r˚uzn´e form´aty. O t´eto problematice bl´ıˇze pojedn´av´a kapitola 5. V kontextu pˇredchoz´ıho odstavce je nutn´e zm´ınit, ˇze tato varianta m˚uˇze b´yt v urˇcit´ych situac´ıch v´ykonovˇe horˇs´ı, protoˇze m´ısto pˇr´ım´eho pˇr´ıstupu komponenty (aplikace) do datab´aze se ona komponenta obrac´ı de facto na prostˇredn´ıka, kter´y ji poˇzadovanou akci zprostˇredkuje. V dneˇsn´ı dobˇe existuj´ı techniky, napˇr. vhodn´e cachov´an´ı dat, s nimiˇz lze tyto probl´emy minimalizovat.

Na druhou stranu zde existuje minim´alnˇe jedna nepˇrehl´ednuteln´a v´yhoda. Tou je moˇznost specifikace dan´eho rozhran´ı nez´avisle na pouˇzit´e datab´azi a odst´ınˇen´ı konkr´etn´ı komponenty od nutnosti pˇresnˇe implementovat danou datab´azi. V praxi se jedn´a o to, ˇze aplikaˇcn´ı server poskytuje rozhran´ı ve formˇe definovan´ych struk- tur vol´an´ı ˇci pˇr´ıstupu k dat˚um. Tato vol´an´ı pak prov´ad´ı komponenta, kter´a nemus´ı ˇreˇsit, jak se data internˇe ukl´adaj´ı. Pro ni je pouze d˚uleˇzit´e, aby dok´azala praco- vat s dan´ym rozhran´ım, kter´e ji zpˇr´ıstupˇnuje aplikaˇcn´ı server. To pˇrin´aˇs´ı i druhou v´yhodu. Je pˇredem jasn´e, ˇc´ım aplikaˇcn´ı server disponuje a co naopak nepodporuje.

(19)

Ke kaˇzd´emu takov´emu rozhran´ı by se mˇela vytv´aˇret dokumentace, aby program´ator vˇedˇel, co a jak m˚uˇze v r´amci sluˇzeb aplikaˇcn´ıho serveru vyuˇz´ıt.

Obr´azek 3.2: Model platformy s aplikaˇcn´ım serverem

Na z´akladˇe pˇredchoz´ıho srovn´an´ı modelu bez aplikaˇcn´ıho serveru a s jeho pouˇzit´ım bylo zvoleno ˇreˇsen´ı, kter´e jej vyuˇz´ıv´a. Krom v´yˇse uveden´ych v´yhod tohoto ˇreˇsen´ı lze pˇridat jeˇstˇe jednu dalˇs´ı. Tou je skuteˇcnost, ˇze aplikaˇcn´ı server lze vytvoˇrit i jako webovou sluˇzbu, resp. aplikaˇcn´ı server poskytuj´ıc´ı webov´e sluˇzby.

3.3.3 Realizovatelnost komponent

Vzhledem k pˇredeˇsl´e volbˇe aplikaˇcn´ıho serveru je moˇzn´e konfrontovat tuto skuteˇcnost s v´yˇse uveden´ymi komponentami. Smyslem t´eto konfrontace je pouze zjistit, zda-li je dan´a komponenta realizovateln´a v˚uˇci aplikaˇcn´ımu serveru.

Prvn´ı zm´ınˇenou komponentou je Poskytovatel identit. Z obr´azku 3.2 je pa- trn´e, ˇze ten pˇr´ımo s aplikaˇcn´ım serverem nekomunikuje. Pˇresto je zde jeden jedin´y okamˇzik, kdy doch´az´ı k nepˇr´ım´e komunikaci. T´ımto je okamˇzik pˇr´ıchoz´ıho poˇzadavku na aplikaˇcn´ı server, kdy poskytovatel identit ovˇeˇr´ı, zda je poˇzadavek validn´ı po str´ance autorizaˇcn´ı. Tohoto ovˇeˇren´ı se vˇsak m˚uˇze zhostit aplikaˇcn´ı server s´am, jelikoˇz s´am m´a pˇr´ıstup k datab´azi uchov´avaj´ıc´ı autorizaˇcn´ı z´aznamy. Autorizaˇcn´ı z´aznam mus´ı vˇzdy vytvoˇrit poskytovatel identit. N´asledn´e ovˇeˇren´ı spoˇc´ıv´a pouze v kontrole jeho existence, coˇz je moˇzn´e prov´adˇet aplikaˇcn´ım serverem. Je moˇzn´e konstatovat, ˇze tato komponenta je realizovateln´a. Lze ji tak´e vytvoˇrit jako webovou aplikaci.

Pro spr´avu identit ˇci pˇr´ıstup k platformˇe tato skuteˇcnost nepˇredstavuje omezen´ı.

Vytvoˇren´ı Editoru, jako webov´e aplikace, je bez jak´ehokoli omezen´ı, ba naopak navazuje v duchu webu a jeho sluˇzeb na pˇredeˇsl´e. Je moˇzn´e jej realizovat bud’ jako

(20)

klasickou webovou aplikaci nebo t´eˇz jako tzv. single page aplikaci. Ta se vyznaˇcuje t´ım, ˇze aplikaˇcn´ı server slouˇz´ı pouze jako zdroj obsahu a veˇsker´y k´od aplikace sam´e je interpretov´an na klientovi v jeho prohl´ıˇzeˇci. Co se v´yˇse uveden´e funkcionality t´yk´a, toto ˇreˇsen´ı dok´aˇze pokr´yt veˇsker´e poˇzadavky. Tedy jak moˇznost pr´ace s daty ve formˇe jejich ´uprav prostˇrednictv´ım formul´aˇr˚u, tak i vizualizaci schematu s´ıt´ı.

Komponentu Import dat je tˇreba hodnotit ze dvou pohled˚u. Jednak je to imple- mentace, kter´a realizuje vlastn´ı proveden´ı importu dat nez´avisle na GUI. Tato ˇc´ast se jev´ı jako nekonfliktn´ı v˚uˇci aplikaˇcn´ımu serveru a poskytovateli identit, protoˇze pouze vyuˇz´ıv´a jimi poskytovan´e sluˇzby. Druh´y pohled je pak samotn´e GUI. V poˇzadavc´ıch kapitoly 3.1 se pro tuto komponentu uv´ad´ı, ˇze nen´ı potˇreba se zab´yvat GUI, n´ybrˇz ˇze staˇc´ı pouze UI ve formˇe termin´alov´eho ovl´ad´an´ı spouˇstˇen´e aplikace. I tento pohled je nekonfliktn´ı. Z toho tedy vypl´yv´a, ˇze komponenta import m˚uˇze b´yt vytvoˇrena jako termin´alov´a aplikace ovladateln´a pˇr´ıkazy termin´alu. To je vlastnˇe pˇredstupnˇem pro desktopovou grafickou nadstavbu. Nyn´ı se nab´ız´ı ot´azka, proˇc by to nemohla b´yt webov´a aplikace. Samozˇrejmˇe ˇze by j´ı mohla b´yt. ´Ulohou t´eto komponenty je importovat i rozs´ahl´a data. A to je v r´amci webov´e aplikace pˇrinejmenˇs´ım znaˇcnˇe diskutabiln´ı. Takov´a aplikace by totiˇz potˇrebovala prakticky neomezen´y ˇcas bˇehu j´ı sam´e. T´ım je m´ıˇreno na interpretovan´e jazyky na webov´em serveru s nastavenou maxim´aln´ı dobou trv´an´ı dan´eho skriptu. Pr´avˇe ta by mohla zp˚usobit jeho pˇredˇcasn´e ukonˇcen´ı dˇr´ıve neˇz se dan´e operace dokonˇc´ı. Je tu moˇznost toto nastaven´ı upravit, nicm´enˇe je ot´azkou, zda-li by se i po t´eto ´upravˇe jednalo o vhodnou volbu tˇreba pr´avˇe z hlediska v´ykonu.

Posledn´ı komponentou je komponenta V´ypoˇct˚u ´uloh. Jej´ım ´ukolem je, jak jiˇz n´azev napov´ıd´a, prov´adˇen´ı v´ypoˇct˚u matematick´ych ´uloh. Je zˇrejm´e, ˇze v prvn´ı ˇradˇe hraje roli efektivita v´ypoˇctu spolu s dostupn´ym v´ypoˇcetn´ım v´ykonem. Poˇzadavky typu paralelizovatelnost ˇci v´ıce vl´aknov´e zpracov´an´ı jsou na pˇredn´ıch pˇr´ıˇck´ach. Pr´avˇe z tohoto d˚uvodu je prakticky vylouˇcen´e, aby v´ypoˇcty prov´adˇel webov´y prohl´ıˇzeˇc uˇzivatele. Pˇrestoˇze jiˇz dnes nˇekter´e webov´e prohl´ıˇzeˇce pracuj´ı tak, ˇze kaˇzd´y otevˇren´y panel bˇeˇz´ı ve sv´em vlastn´ım procesu, st´ale se ned´a mluvit o dostateˇcnˇe dostupn´em v´ykonu. Tˇeˇzko si pˇredstavit uˇzivatele, kter´y si ve sv´em webov´em prohl´ıˇzeˇci, byt’

pouze v jednom panelu, spust´ı nˇejak´y rozs´ahlejˇs´ı v´ypoˇcet. Nemluvˇe o situaci, kdy je potˇreba prov´adˇet v´ıce v´ypoˇct˚u souˇcasnˇe. Proto lze konstatovat, ˇze webov´e prohl´ıˇzeˇce, resp. webov´e aplikace, jsou pro tento ´uˇcel jen stˇeˇz´ı pouˇziteln´e a pro praktick´y bˇeh platformy sp´ıˇse nevhodn´e. V tomto smˇeru m´a vˇetˇs´ı perspektivu tuto komponentu navrhnout jako syst´emovou sluˇzbu, kter´a se spouˇst´ı na pozad´ı. ˇSk´alovatelnost je v tomto pˇr´ıpadˇe moˇzn´a jak v´ybˇerem vhodn´eho hardwaru, tak i prost´ym pˇrid´av´an´ım v´ypoˇcetn´ıch uzl˚u ˇci pˇresunut´ı v´ypoˇct˚u do specializovan´ych cluster˚u. Webov´a aplikace by mohla dan´e v´ypoˇcty ovl´adat, napˇr´ıklad prostˇrednictv´ım aplikaˇcn´ıho serveru, ale nikoli prov´adˇet.

Tato kapitola se tak vlastnˇe stala zdrojem odpovˇed´ı ot´azky poloˇzen´e v ´uvodu t´eto diplomov´e pr´ace. Odpov´ıd´a na stˇeˇzejn´ı ot´azky, kdy, kde a zda m´a smysl pouˇz´ıt webov´e technologie. Jejich pouˇzit´ı je pops´ano v kapitol´ach jednotliv´ych komponent.

(21)

3.4 Datov´ y model

V n´avaznosti na pˇredchoz´ı kapitolu, kter´a dospˇela k z´avˇeru, ˇze vhodnˇejˇs´ı je zvolit model s aplikaˇcn´ım serverem, je nyn´ı zapotˇreb´ı alespoˇn v z´akladn´ım r´amci definovat strukturu ´uloˇziˇstˇe dat. To vˇse samozˇrejmˇe s pˇrihl´ednut´ım k jiˇz z´ıskan´ym poznatk˚um o struktuˇre jednotliv´ych prvk˚u schematu s´ıtˇe a schematu samotn´emu, kter´e byly zjiˇstˇeny a pops´any v magistersk´em projektu (viz [1]).

Navrhnout vhodn´y model lze v´ıce zp˚usoby. Avˇsak c´ılem pr´ace nen´ı se zab´yvat zdaleka vˇsemi moˇznostmi. Proto je zde vˇenov´an prostor pro dva, byt’ na prvn´ı pohled odliˇsn´e, ale pˇri bliˇzˇs´ım pohledu do znaˇcn´e m´ıry shodn´e, modely.

3.4.1 Varianty datov´ eho modelu

Prvn´ı pˇr´ıstup k vytvoˇren´ı modelu spoˇc´ıv´a ve vytvoˇren´ı jedn´e jedin´e datab´aze, ve kter´e by byly reprezentov´any vˇsechny potˇrebn´e entity s patˇriˇcn´ymi vz´ajemn´ymi relacemi. To tedy znamen´a, ˇze datab´aze je jeden logick´y celek, kter´y internˇe obsahuje jednotliv´e entity. Z pohledu v´ykonnostn´ıho je zˇrejm´e, ˇze datab´azov´y stroj je nutn´e provozovat v dostateˇcnˇe v´ykonn´em prostˇred´ı. Toho lze dos´ahnout jednak hardwarovˇe na samostatn´em serveru, ale i za pouˇzit´ı datab´azov´eho clusteru, kdy existuj´ı r˚uzn´e techniky, jak rozloˇzit z´atˇeˇz kladenou na cluster. Pro ilustraci lze uv´est architekturu Master-Slave, kdy uzel typu Master prov´ad´ı ´upravy uloˇzen´ych dat a distribuuje tyto

´

upravy d´ale na uzly typu Slave, kter´e slouˇz´ı pro jejich z´ısk´av´an´ı. Dalˇs´ım typem je pak cluster s architekturou Multi-Master, kter´y obsahuje uzly typu Master a data jsou vz´ajemnˇe mezi vˇsemi replikov´ana.

Druh´ym pˇr´ıstupem je seskupen´ı entit do logick´ych celk˚u, kter´e jsou reprezen- tov´any samostatn´ymi datab´azemi. Tento pˇr´ıstup sk´yt´a moˇznosti vˇetˇs´ı distribuo- vatelnosti neˇz pˇredchoz´ı, jelikoˇz lze, at’ uˇz v r´amci jednotliv´ych server˚u, ˇci pˇr´ımo cluster˚u, fyzicky oddˇelit jednotliv´e datab´aze. Nicm´enˇe pr´avˇe tento pˇr´ıstup k n´avrhu je n´aroˇcnˇejˇs´ı, coˇz vypl´yv´a z onoho oddˇelen´ı jednotliv´ych datab´az´ı. V pˇr´ıpadˇe provozu takov´ychto datab´az´ı v r´amci jednoho datab´azov´eho serveru ˇci datab´azov´eho clusteru je toto ˇreˇsen´ı praktick´e. Nen´ı vˇsak pˇr´ıliˇs vhodn´e pro situaci, kdy budou jednotliv´e datab´aze provozov´any separ´atnˇe a bez propojen´ı s ostatn´ımi. To z toho d˚uvodu, ˇze by pak byly omezeny dotazy nad v´ıcero entitami z r˚uzn´ych datab´az´ı.

3.4.2 N´ avrh datov´ eho modelu

N´asleduj´ıc´ı obr´azek 3.3 zachycuje model vytvoˇren´y druh´ym pˇr´ıstupem. Je z nˇej patrn´a existence nˇekolika datab´az´ı, kdy kaˇzd´a z nich obsahuje logicky spˇr´ıznˇen´e entity. Je vˇsak nutn´e na tomto m´ıstˇe zm´ınit, ˇze tento obr´azek pouze schematicky zobrazuje vztah jednotliv´ych datab´az´ı a nastiˇnuje entity, kter´e jsou v nich um´ıstˇeny.

Nejedn´a se tedy o ER diagram v prav´em slova smyslu, n´ybrˇz pouze o vyj´adˇren´ı logick´ych vazeb mezi datab´azemi za pomoci symboliky z ER diagramu.

Datab´aze S´ıt’ obsahuje entity popisuj´ıc´ı schema s´ıtˇe. Jedn´a se tedy napˇr. o schema,

´

useky, uzlov´e body, objekty, atd. Dalˇs´ı datab´az´ı je pak Identita. Ta m´a uchov´avat data souvisej´ıc´ı s identitou uˇzivatele a jeho pˇr´ıstupov´ym ´uˇctem. V tˇesn´e spolupr´aci

(22)

Obr´azek 3.3: N´avrh datov´eho modelu

s datab´az´ı Identita funguje datab´aze OAuth, kter´a obsahuje entity souvisej´ıc´ı s au- torizac´ı uˇzivatel˚u. Samotn´y princip autorizace je n´aslednˇe uveden v kapitole 4.3. Pro potˇreby spr´avy jednotliv´ych v´ypoˇcetn´ıch ´uloh slouˇz´ı datab´aze V´ypoˇcty. Posledn´ı datab´az´ı je Editor, kter´y uchov´av´a data a nastaven´ı editoru.

Detailn´ı struktura jednotliv´ych datab´az´ı je zachycena v pˇr´ıloh´ach. ER diagram v pˇr´ıloze A zobrazuje datab´azi poskytovatele identit, v pˇr´ıloze B datab´azi OAuth, v pˇr´ıloze C datab´azi s´ıtˇe a v pˇr´ıloze D datab´azi v´ypoˇct˚u.

3.5 Provozn´ı prostˇ red´ı

Z pˇredchoz´ıch kapitol je jiˇz zˇrejm´e, jak´e komponenty by mˇela vytv´aˇren´a platforma obsahovat. Nyn´ı pˇrich´az´ı na ˇradu grafick´e vyj´adˇren´ı architektury t´eto platformy tak, aby bylo zˇrejm´e, jak´e fyzick´e celky obsahuje a jak by mˇely b´yt uspoˇr´ad´any.

3.5.1 Fyzick´ a architektura platformy

Na obr´azku 3.4 je zachycena fyzick´a architektura platformy. Je zde patrn´e, ˇze veˇsker´e jej´ı komponenty jsou pˇripojeny do m´ıstn´ı (LAN) ˇci veˇrejn´e (WAN) s´ıtˇe. T´ım je naznaˇceno, ˇze tato platforma nutnˇe nemus´ı b´yt um´ıstˇena v jedn´e lokalitˇe, n´ybrˇz lze jednotliv´e komponenty dislokovat i do jin´ych lokalit. To je umoˇznˇeno jednak zp˚usobem komunikace, kde vˇsechny komponenty spolu komunikuj´ı prostˇrednictv´ım TCP/IP protokolu a za druh´e skuteˇcnost´ı, ˇze je takto platforma navrˇzen´a. Kom- ponentami typu server zde zobrazen´ymi jsou: aplikaˇcn´ı server (AS), datab´azov´y server (DB), v´ypoˇcetn´ı server (EXE), poskytovatel identit (IdP). Komponenta edi- toru (ED) je pro tyto ´uˇcely zaˇrazena sp´ıˇse do kategorie klientsk´ych aplikac´ı, pˇrestoˇze je jako webov´a aplikace hostov´ana na webov´em serveru. A posledn´ı komponentou,

(23)

pro tento okamˇzik rovnˇeˇz typu klientsk´e aplikace, je import (IMP). Pod kaˇzdou z komponent je uvedeno jej´ı minim´aln´ı vs maxim´aln´ı zastoupen´ı v r´amci plat- formy. Na obr´azku maj´ı komponenty vyznaˇceno zastoupen´ı form´atu 1:N, coˇz zna- men´a, ˇze kaˇzd´a z komponent tam bude minim´alnˇe jednou. Pro demonstraˇcn´ı ´uˇcely a ovˇeˇren´ı funkˇcnosti je takov´eto zastoupen´ı vhodn´e. Pro praktick´e vyuˇzit´ı by bylo moˇzn´e nal´ezt i jin´e hodnoty. Pokud by kupˇr´ıkladu bylo dopˇredu zn´amo, ˇze plat- forma nepotˇrebuje importovat data z extern´ıch syst´em˚u, pak by logicky tato kom- ponenta nebyla zastoupena. Na druh´e stranˇe je ale zjevn´e, ˇze se zde vyskytuj´ı i kom- ponenty, u nichˇz takov´ato diskuze postr´ad´a smysl, jelikoˇz bez nich by platforma nebyla funkˇcn´ı. V tomto smyslu by se mohlo jednat o aplikaˇcn´ı a datab´azov´y server, pˇr´ıpadnˇe pak o poskytovatele identit a v´ypoˇcetn´ı server.

Obr´azek 3.4: Fyzick´a architektura platformy

3.5.2 Platforma jako SaaS

Pro ´uˇcely provozn´ıho prostˇred´ı je jeˇstˇe vhodn´e vzpomenout pas´aˇz, kter´a v kapitole 3.2 pojedn´av´a o moˇznosti provozovat poskytovateli platformu modelem SaaS.

SaaS (software as a service ˇci ˇcesky software jako sluˇzba) je model nasazen´ı softwaru, kdy doch´az´ı k hostov´an´ı aplikace provozovatelem sluˇzby. Sluˇzba je d´ale nab´ızena uˇzivatel˚um pˇres Internet. Uˇzivatel je tak oproˇstˇen od kupov´an´ı softwaru ˇci hardwaru, instalaci, konfiguraci a provozu technologi´ı jako takov´ych. SaaS vznikla jako reakce na potˇrebu sniˇzov´an´ı n´aklad˚u na software, rychl´eho nasazen´ı a out- sourcingu. Nasazen´ım SaaS odpadaj´ı investice do aplikaˇcn´ıho softwarov´eho bal´ıku.

(24)

Z´akazn´ık jednoduˇse vyuˇz´ıv´a softwarovou funkcionalitu na d´alku jako sluˇzbu. Z´akazn´ık plat´ı jenom provozn´ı n´aklady. [3]

U tohoto modelu je moˇzn´e nam´ıtnout, ˇze t´ım uˇzivatel m˚uˇze ztratit kontrolu nad sv´ymi daty, protoˇze je de facto svˇeˇruje tˇret´ı stranˇe. Zde z´aleˇz´ı, jak´ym zp˚usobem provozovatel d´ale chr´an´ı data uˇzivatel˚u. V dneˇsn´ı dobˇe, kdy si i velk´e nadn´arodn´ı technologick´e firmy jsou tohoto probl´emu vˇedomy a kdy existuje velk´e mnoˇzstv´ı zp˚usob˚u zabezpeˇcen´ı dat, se ukazuje, ˇze to nen´ı probl´em technick´y. V tomto kon- textu je nad´ale zabezpeˇcen´ı dat touto prac´ı navrhovanou platformou uvaˇzov´ano a je pops´ano u jednotliv´ych komponent v n´asleduj´ıc´ıch kapitol´ach.

3.6 Metodiky v´ yvoje softwaru

V´yvoj softwaru proch´az´ı od sv´eho vzniku zmˇenami. Smyslem metodik pro jeho v´yvoj je stanoven´ı postup˚u a zp˚usob˚u, jak takov´y software vhodnˇe vyv´ıjet. Avˇsak i zde plat´ı, ˇze sebelepˇs´ı metodika nemus´ı vyhovovat vˇsem pˇr´ıpad˚um ˇci v´yvoj´aˇr˚um. Proto je smyslem t´eto kapitoly pouk´azat na nˇekter´e v´yznamn´e existuj´ıc´ı metodiky.

N´asleduj´ıc´ı metodiky se ˇrad´ı do kategorie tzv. modelu ˇzivotn´ıho cyklu. Tedy pomoc´ı modelu je definov´ana posloupnost jednotliv´ych etap v´yvoje bez stanoven´ı metody, pomoc´ı kter´e se boudou etapy realizovat.

Model programuj a opravuj je nejprimitivnˇejˇs´ı model v´yvoje softwaru. Jedn´a se o jednoduch´y zp˚usob v´yvoje, jeˇz je zaloˇzen na opakuj´ıc´ıch se ˇcinnostech pro- gramov´an´ı, testov´an´ı a opravˇe chyb. V prvn´ı etapˇe jsou specifikov´any poˇzadavky, n´aslednˇe se pˇristupuje k opakuj´ıc´ımu se cyklu k´odov´an´ı a opravov´an´ı.

Vodop´adov´y model je sekvenˇcn´ı v´yvojov´y proces, ve kter´em lze pˇrirovnat v´yvoj k neust´ale se svaˇzuj´ıc´ımu toku. Z´akladn´ımi f´azemi jsou: anal´yza poˇzadavk˚u, n´avrh, implementace, testov´an´ı, a integrace. Projekt se organizuje do f´az´ı, kter´e se ˇrad´ı postupnˇe za sebou. ˇCasto b´yv´a v praxi doprov´azen aˇz form´aln´ı administrativou, kter´a dokumentuje zmˇeny poˇzadavk˚u, jejich schv´alen´ı, atp. Nev´yhodou m˚uˇze b´yt, ˇze testov´an´ı prob´ıh´a po ukonˇcen´ı v´yvoje a tud´ıˇz m´a v principu pouze potvrdit spr´avnost vyvinut´eho softwaru. [6]

Spir´alov´y model byl definov´an Barry Bohem v roce 1985. Tento model ˇzivotn´ıho cyklu klade pˇredevˇs´ım velk´y d˚uraz na anal´yzu rizik. Model rozdˇeluje projekt do jed- notliv´ych krok˚u. V kaˇzd´e iteraci se prov´adˇej´ı n´asleduj´ıc´ı f´aze: stanoven´ı c´ıl˚u, anal´yza rizik, n´avrh ˇreˇsen´ı, v´yvoj, testov´an´ı a pl´anov´an´ı. Zde, na rozd´ıl od vodop´adov´eho modelu, jsou v´ystupy po dokonˇcen´ı kaˇzd´e iterace pˇred´av´any ve formˇe prototypu, kter´ym si z´akazn´ık m˚uˇze sn´aze ovˇeˇrit, ˇze se v´yvoj ub´ır´a spr´avn´ym smˇerem. V´yhodou je sn´ıˇzen´ı n´aklad˚u na v´yvoj softwaru t´ım, ˇze jsou vˇcas odhalov´any chyby. [6]

Dalˇs´ı kategori´ı jsou pak metodiky zaloˇzen´e na objektov´em pˇr´ıstupu, kter´e nahl´ıˇzej´ı na data a funkce jako na souˇc´ast objektu. T´ım se snaˇz´ı prostˇrednictv´ım pˇredepsan´ych model˚u d˚uvˇeryhodnˇeji zachytit modelovanou realitu.

Rational Unified Process (RUP) pˇredstavuje proces, kter´y vyuˇz´ıv´a pˇr´ıstup k v´yvoji softwaru za pomoci ˇrad n´astroj˚u, ˇsablon, artefakt˚u a vˇcasn´ych dod´avek prototyp˚u. Od ostatn´ıch v´yˇse zm´ınˇen´ych pˇr´ıstup˚u se pˇrev´aˇznˇe liˇs´ı t´ım, ˇze se jedn´a o rozs´ahlou a detailnˇeji propracovanou metodiku. Metodika RUP je vhodn´a prim´arnˇe

(25)

na velk´e projekty, nicm´enˇe je moˇzn´e ji upravovat i pro jednoduˇsˇs´ı projekty. V´yvoj prob´ıh´a v iterativn´ıch cyklech, kde kaˇzd´a iterace m´a podobu menˇs´ıho vodop´adu, tj.

obsahuje vˇsechny f´aze tohoto modelu (anal´yza – testov´an´ı). Na poˇc´atku projektu je nejv´ıce ˇcasu vˇenov´ano specifikaci poˇzadavk˚u. Pozdˇejˇs´ı iterace v´yvoje se zamˇeˇruj´ı na implementaci a testov´an´ı. V´ysledkem kaˇzd´eho cyklu je nov´a verze produktu. [5]

Nem´enˇe zaj´ımavou skupinu tvoˇr´ı agiln´ı metodiky. To jsou metodiky zaloˇzen´e na v´yvoji softwaru na iterativn´ım a inkrement´aln´ım pˇr´ıstupu. Umoˇzˇnuj´ı rychl´y v´yvoj softwaru a z´aroveˇn dok´aˇz´ı reagovat na zmˇenu poˇzadavk˚u v pr˚ubˇehu v´yvojov´eho cyklu. Podle tˇechto metodik se spr´avnost syst´emu ovˇeˇr´ı jedinˇe pomoc´ı rychl´eho v´yvoje, pˇredloˇzen´ı z´akazn´ıkovi a n´asledn´ych ´uprav dle zpˇetn´e vazby. Pomˇernˇe nov´ym a zn´am´ym z´astupcem t´eto kategorie je Scrum (viz [7]) ˇci Extr´emn´ı programov´an´ı (viz [8]).

Do jist´e m´ıry odliˇsn´ym zp˚usobem pˇr´ıstupu k v´yvoji se n´asleduj´ıc´ı technika v´yvoje liˇs´ı od pˇredchoz´ıch. Pˇredchoz´ı zp˚usoby v´yvoje se zamˇeˇrovaly na situaci, kdy byl k´od programu naps´an a bylo tˇreba jej otestovat. Avˇsak existuje i opaˇcn´y pˇr´ıstup, kdy je nejprve naps´an test pro urˇcitou ˇc´ast programu a ta je aˇz n´aslednˇe vytvoˇrena. Tento pˇr´ıstup se naz´yv´a TDD (Test-driven development ˇci ˇcesky programov´an´ı ˇr´ızen´e testy). Jeho smyslem je v prv´e ˇradˇe tvorba test˚u a aˇz n´aslednˇe v´yvoj. Samotn´a tvorba test˚u je samozˇrejmˇe zaloˇzena na dostupn´ych technik´ach testov´an´ı uveden´ych v n´asleduj´ıc´ı kapitole.

Vzhledem k povaze t´eto diplomov´e pr´ace a skuteˇcnosti, ˇze na v´yvoji se v souˇcasn´e dobˇe pod´ıl´ı pouze jeden ˇclovˇek, tedy autor, je nasnadˇe, ˇze se v´yvoj bl´ıˇz´ı vodop´adov´emu modelu.

3.7 Techniky testov´ an´ı softwaru

Stejnˇe jako v pˇredchoz´ı kapitole existuje ˇrada metodik, tak i zde existuje v´ıce pohled˚u a zp˚usob˚u dˇelen´ı, jak software testovat. Z pˇredchoz´ı kapitoly je patrn´e, ˇze tematika testov´an´ı byla souˇc´ast´ı pˇrinejmenˇs´ım vˇetˇsiny uveden´ych metodik. I kdyˇz u nˇekter´ych se mohlo jednat sp´ıˇse o form´aln´ı str´anku vˇeci, u nˇekter´ych byla pouˇzita v prav´em slova smyslu a ulehˇcila v´yvoj.

Prvn´ım pohledem na testov´an´ı je pohled pomoc´ı zp˚usobu proveden´ı testu.

Nejjednoduˇsˇs´ı je metoda pomoc´ı ˇcern´e a b´ıl´e skˇr´ıˇnky. Testov´an´ı ˇcern´e skˇr´ıˇnky je zaloˇzeno na myˇslence, ˇze tester nen´ı sezn´amen s vnitˇrn´ı logikou testovan´eho softwaru.

Pot´e tedy testov´an´ı prob´ıh´a sledov´an´ım vstup˚u a v´ystup˚u, kdy se kontroluje, zda je na v´ystupu produkov´an oˇcek´avan´y v´ysledek. Pˇri testov´an´ı b´ıl´e skˇr´ıˇnky tester zn´a obsah zdrojov´ych k´od˚u a m´a moˇznost tak otestovat vˇsechny situace, na kter´e je dan´y software pˇripraven. To m˚uˇze b´yt v nˇekter´ych situac´ıch kontraproduktivn´ı, jelikoˇz mu m˚uˇze uniknout nˇejak´a podm´ınka, na kterou ani v´yvoj´aˇr nepomyslel. V tom pˇr´ıpadˇe je v´ysledek takov´eho testu nepˇresn´y. Dalˇs´ı moˇznost rozdˇelen´ı technik testov´an´ı je manu´aln´ı a automatizovan´e testov´an´ı. Rozd´ıl spoˇc´ıv´a v tom, ˇze pˇri manu´aln´ım testov´an´ı testuje ˇclovˇek, zat´ımco pˇri automatizovan´em testov´an´ı za nˇeho testuje software. Posledn´ı v t´eto kategorii je testov´an´ı splnˇen´ım a selh´an´ım. Testov´an´ı splnˇen´ım pˇri zaˇc´atku programu nejprve otestuje jeho element´arn´ı funkˇcnost. Pokud

(26)

program toto spln´ı, pak t´ımto testem projde. ´Uˇcelem nen´ı pokouˇset se odhalit jeho slab´a m´ısta. Jedn´a se sp´ıˇse o simulaci bˇeˇzn´eho pouˇzit´ı syst´emu. Naopak test selh´an´ım se provede aˇz tehdy, kdyˇz je zabezpeˇcena element´arn´ı funkˇcnost. V t´eto f´azi jiˇz testujeme neobvykl´e testov´e pˇr´ıpady, stabilitu syst´emu atd. [4]

Dalˇs´ım pohledem na testov´an´ı je rozdˇelen´ı podle ´urovnˇe v´yvoje, ˇc´ımˇz je myˇsleno v jak´e ´urovni se nach´az´ı samotn´y testovan´y objekt. Prvn´ım z´astupcem t´eto kategorie a t´eˇz z´astupce na nejniˇzˇs´ı ´urovni je testov´an´ı program´atorem. Program´ator po vytvoˇren´ı programov´eho k´odu sv˚uj k´od ihned ovˇeˇr´ı. V praxi si vˇsak program´ator netestuje svoji ˇc´ast k´odu, ale realizuje se tzv. test ˇctyˇr oˇc´ı. Coˇz je situace, kdy k´od otestuje jin´y program´ator neˇz ten, kter´y jej vytvoˇril. Program je v tomto stupni kon- trolov´an na ´urovni zdrojov´eho k´odu. Dalˇs´ım z´astupcem je jednotkov´e testov´an´ı.

T´ım je myˇsleno testov´an´ı jednotliv´ych metod a funkc´ı dan´ych objekt˚u. Testovanou jednotkou je samostatnˇe testovateln´a ˇc´ast aplikaˇcn´ıho programu. Testy tˇechto jed- notek se zapisuj´ı ve formˇe programov´eho k´odu. V dobˇe, kdy je v´yvoj´aˇr hotov se sv´ymi testy, pˇrich´az´ı na ˇradu testovac´ı t´ym. Integraˇcn´ı testy nepˇripravuje program´ator, ale pˇredevˇs´ım onen t´ym. Mus´ı b´yt ovˇeˇrena bezchybn´a komunikace mezi jednotliv´ymi komponentami uvnitˇr aplikace. Integraci lze ovˇeˇrovat nejen mezi komponentami, ale tak´e mezi komponentou a operaˇcn´ım syst´emem, hardwarem ˇci rozhran´ım r˚uzn´ych syst´em˚u. V t´eto f´azi se testuje integrace dosud jednotlivˇe ovˇeˇren´ych ˇc´ast´ı. Po prove- den´ı integraˇcn´ıch test˚u pˇrich´az´ı na ˇradu syst´emov´e testov´an´ı. Bˇehem tˇechto test˚u je aplikace ovˇeˇrov´ana jako funkˇcn´ı celek. Z toho tedy vypl´yv´a, ˇze se jedn´a o testov´an´ı aˇz v pozdˇejˇs´ı f´azi projektu. Tyto testy ovˇeˇruj´ı aplikaci z pohledu z´akazn´ıka. Na pˇripraven´ych sc´en´aˇr´ıch se simuluj´ı r˚uzn´e kroky, kter´e v praxi mohou nastat. Obvykle prob´ıhaj´ı v nˇekolika kolech. Nalezen´e chyby jsou opraveny a v dalˇs´ıch kolech jsou tyto opravy opˇet otestov´any. Tyto testy jsou posledn´ı f´az´ı, po kter´e bude produkt pˇred´an z´akazn´ıkovi. Tato ´uroveˇn test˚u tak vˇetˇsinou slouˇz´ı jako v´ystupn´ı kontrola softwaru.

Syst´emov´e testov´an´ı je obsaˇzeno prakticky v kaˇzd´em procesu testov´an´ı. Bez t´eto

´

urovnˇe by cel´e testov´an´ı softwaru nemˇelo ˇz´adn´y v´yznam. V okamˇziku, kdy z´akazn´ık pˇrevezme software, mˇel by jej podrobit akceptaˇcn´ımu testov´an´ı. To je prov´adˇeno podle pˇripraven´ych sc´en´aˇr˚u, kter´e spoleˇcnˇe pˇripravil z´akazn´ık s dodavatelem. Testy prob´ıhaj´ı na testovac´ım prostˇred´ı u z´akazn´ıka. Nalezen´e nesrovnalosti mezi aplikac´ı a specifikac´ı jsou odesl´any zpˇet v´yvojov´emu t´ymu, kter´y provede jejich opravu. [9]

Zp˚usob testov´an´ı jednotliv´ych komponent v r´amci platformy je u kaˇzd´e kompo- nenty bl´ıˇze pops´an v pˇr´ısluˇsn´ych kapitol´ach.

3.8 Licence a dostupnost

Veˇsker´e k´ody, skripty, programy aj. jsou vyd´any pod licenc´ı MIT. V´yhodou t´eto licence je, ˇze neomezuje pouˇzit´ı takto licencovan´eho d´ıla, pouze vyˇzaduje, aby byl text licence d´ale distribuov´an spolu s d´ılem, at’ uˇz jakkoli modifikovan´ym. Zdrojov´e k´ody platformy jsou volnˇe dostupn´e v GIT repozit´aˇr´ıch (viz [10]). Repozit´aˇre zaˇc´ınaj´ı prefixem cpdn-*, kdy m´ısto hvˇezdiˇcky je uveden n´azev jednotliv´e komponenty.

(27)

4 Poskytovatel identity

V r´amci kapitoly 3.1 byly jako jedny z prvn´ıch poˇzadavk˚u vzneseny ty smˇerem k identifikaci uˇzivatele, jeho identitˇe a zp˚usobu jej´ıho ovˇeˇren´ı. K platformˇe sm´ı pˇristupovat pouze ovˇeˇren´y uˇzivatel. Proto je nejprve nutn´e prov´est jeho ovˇeˇren´ı.

Tato problematika v sobˇe ukr´yv´a tˇri z´akladn´ı okruhy – identitu uˇzivatele, zp˚usob jej´ıho ovˇeˇren´ı (autentizace) a udˇelen´ı opr´avnˇen´ı na z´akladˇe identity (autorizace).

Bylo by moˇzn´e pouˇz´ıt jiˇz plnˇe funkˇcn´ı syst´emy, kter´e poskytuj´ı SSO, tedy tzv.

Single Sign On, coˇz lze pˇreloˇzit jako jedin´e pˇrihl´aˇsen´ı na webu. T´ım je myˇsleno, ˇze uˇzivatel se v r´amci sv´eho domovsk´eho poskytovatele identit autentizuje a ten mu n´aslednˇe vyd´a povˇeˇren´ı, se kter´ym m˚uˇze pracovat v aplikaci tˇret´ı strany pod svoj´ı identitou. Typick´ym z´astupcem, a nejen v akademick´e obci, je projekt s n´azvem Shibboleth. Mohlo by se tedy zd´at, ˇze by bylo moˇzn´e jej vyuˇz´ıt. To by beze sporu na urˇcit´e ˇc´asti platformy bylo moˇzn´e. Nicm´enˇe z hlediska toho, jak byla platforma navrˇzena v kapitole 3.3, se zde nach´az´ı vhodnˇejˇs´ı varianta vlastn´ı implementace autentizaˇcn´ıho procesu a n´asledn´e pouˇzit´ı protokolu OAuth 2.0 jako autorizaˇcn´ıho procesu. Toto spojen´ı je vhodnˇejˇs´ı zejm´ena z toho d˚uvodu, ˇze je pˇr´ımo navrˇzeno k zabezpeˇcen´ı a ˇr´ızen´ı pˇr´ıstupu aplikaˇcn´ıho serveru jako poskytovatele webov´ych sluˇzeb, coˇz je pˇresnˇe z´avˇer v´yˇse citovan´e kapitoly.

4.1 Identita uˇ zivatele

Identita uˇzivatele je soubor informac´ı, kter´e popisuj´ı atributy uˇzivatele jako osoby.

Ty by v kontextu t´eto platformy mˇely obsahovat z´akladn´ı ´udaje, jak´ymi jsou jm´eno, pˇr´ıjmen´ı, kontakt na osobu aj. Tyto ´udaje by mˇely v r´amci cel´e platformy slouˇzit jako tzv. profil uˇzivatele ˇci profil uˇzivatelovi identity. Profil je identifikov´an napˇr´ıˇc vˇsemi profily unik´atn´ım k´odem, kter´ym je uˇzivatel˚uv email. Principi´alnˇe by to mohl b´yt i napˇr. nˇejak´y n´ahodnˇe generovan´y ˇretˇezec nebo ˇc´ıslo. Z praktick´eho hlediska vˇsak byl zvolen email. Je zcela na m´ıstˇe konstatov´an´ı, ˇze v r´amci tohoto uspoˇr´ad´an´ı by duplicitn´ı z´aznamy nebyly vhodn´e.

V r´amci identity dan´eho uˇzivatele by bylo moˇzn´e jeˇstˇe uvaˇzovat rozˇs´ıˇren´ı o jeho zaˇclenˇen´ı do skupiny uˇzivatel˚u. To by bylo vhodn´e zejm´ena pro situaci, kdy by s plat- formou pracovali uˇzivatel´e jednotliv´ych oddˇelen´ı ˇci spoleˇcnost´ı. Byt’ toto rozˇs´ıˇren´ı nen´ı stˇeˇzejn´ım bodem t´eto pr´ace, je s n´ım alespoˇn uvaˇzov´ano pro pˇr´ıpad, aby takov´ato moˇznost mohla b´yt v budoucnu implementov´ana. Dalˇs´ım rozˇs´ıˇren´ım v tomto smˇeru by mohla b´yt spr´ava jednotliv´ych skupin.

Naopak stˇeˇzejn´ı ˇc´ast´ı spojenou s identitou uˇzivatele, ˇcili s jeho profilem, je

(28)

pˇr´ıstupov´y ´uˇcet. Tento pˇr´ıstupov´y ´uˇcet slouˇz´ı pro ovˇeˇren´ı, ˇze k platformˇe pˇristupuje pr´avˇe ten uˇzivatel, kter´y zn´a svoji identitu a ´udaje pro jej´ı ovˇeˇren´ı, tedy pˇr´ıstupov´e

´

udaje sv´eho pˇr´ıstupov´eho ´uˇctu. Tento ´uˇcet nazvˇeme jako hlavn´ı pˇr´ıstupov´y ´uˇcet.

Nad t´ımto ´uˇctem m˚uˇze b´yt zˇr´ızeno monitorov´an´ı, kter´e dok´aˇze ovlivnit politiku pˇr´ıstupu. Monitoring lze prov´adˇet u kaˇzd´eho takov´eho ´uˇctu, kdy lze uchov´avat parametry jako ˇcas pˇr´ıstupu, poˇcet ´uspˇeˇsn´ych/ne´uspˇeˇsn´ych pokus˚u o pˇr´ıstup, z jak´e IP adresy byl pˇr´ıstup proveden atd. N´aslednˇe na z´akladˇe tˇechto informac´ı m˚uˇze b´yt provedeno vyhodnocen´ı, kter´e m˚uˇze ovlivnit politiku pˇr´ıstupu.

V pˇr´ıloze A je pˇriloˇzen ER diagram datab´aze pro uchov´av´an´ı identit uˇzivatel˚u a s nimi spojen´ych pˇr´ıstupov´ych ´uˇct˚u. Mezi hlavn´ı entity patˇr´ı entita Profile, kter´a spolu s entitou Contact uchov´av´a atributy uˇzivatele a vytv´aˇr´ı tak jeho identitu v r´amci platformy. Druhou v´yznamnou entitou je Account, kter´a spravuje hlavn´ı pˇr´ıstupov´e ´uˇcty. V t´eto entitˇe je z´akladn´ım atributem email a heslo. Uˇzivateli je na z´akladˇe jejich znalosti umoˇznˇen pˇr´ıstup k dalˇs´ım krok˚um ovˇeˇren´ı a udˇelen´ı opr´avnˇen´ı k pˇr´ıstupu. D´ale jsou zde uvedeny entity souvisej´ıc´ı se zm´ınˇenou podporou organi- zace uˇzivatel˚u do skupin ˇci pro monitorov´an´ı pokus˚u o pˇr´ıstup.

4.2 Autentizace

Autentizace je bezpeˇcnostn´ı opatˇren´ı, kter´e zajiˇst’uje ochranu pˇred falˇsov´an´ım iden- tity, kdy se subjekt vyd´av´a za nˇekoho, k´ym nen´ı. Lze rozliˇsit autentizaci osoby ˇci au- tentizaci zpr´avy. Pro potˇreby platformy se uvaˇzuje prvn´ı moˇznost. Pˇri pˇr´ıstupu k n´ı je potˇreba ovˇeˇrit proklamovanou identitu pˇristupuj´ıc´ıho uˇzivatele. Pokud ovˇeˇren´ı dopadne ve v´ysledku kladnˇe, lze konstatovat, ˇze pˇristupuj´ıc´ı uˇzivatel je t´ım, kdo ve skuteˇcnosti je. I zde m˚uˇze samozˇrejmˇe nastat situace, kdy se podaˇr´ı nˇejak´emu

´

utoˇcn´ıkovi ukr´ast identitu skuteˇcn´eho uˇzivatele.

Vzhledem k z´avˇeru z kapitoly 3.3, kde bylo konstatov´ano, ˇze komponenta posky- tovatele identit m˚uˇze b´yt vytvoˇrena jako webov´a aplikace, se nab´ız´ı n´asleduj´ıc´ı postup. Autentizace zapoˇcne ve formul´aˇri na webov´e str´ance, na kterou uˇzivatel pˇristoupil. Po vyplnˇen´ı tohoto formul´aˇre, jehoˇz obsahem je pole pro email a heslo, coˇz jsou mimo jin´e kl´ıˇcov´e identifikaˇcn´ı znaky hlavn´ıho pˇr´ıstupov´eho ´uˇctu, se for- mul´aˇr odeˇsle na server. Vyhodnocen´ı spoˇc´ıv´a ve vyhled´an´ı odpov´ıdaj´ıc´ıho hlavn´ıho pˇr´ıstupov´eho ´uˇctu a n´aslednˇe ovˇeˇren´ı spr´avnosti zadan´eho hesla. Pokud operace probˇehne kladnˇe, tedy je nalezen pˇr´ısluˇsn´y hlavn´ı pˇr´ıstupov´y ´uˇcet a bylo zad´ano spr´avn´e heslo, pak je uˇzivatel pˇresmˇerov´an na dalˇs´ı krok k z´ısk´an´ı pˇr´ıstupu do plat- formy, a to autorizaci. Ta je pops´ana v n´asleduj´ıc´ı kapitole.

4.3 Autorizace

Autorizace je proces z´ısk´an´ı opr´avnˇen´ı k proveden´ı operace ˇci pˇr´ıstupu ke zdroj˚um.

Tak´e se tak oznaˇcuje ono vlastn´ı opr´avnˇen´ı, at’ je ve formˇe napˇr. n´ahodn´eho ˇretˇezce urˇcit´e d´elky, ˇci logick´e hodnoty. Zpravidla se pˇred autorizac´ı jeˇstˇe prov´ad´ı proces ovˇeˇren´ı identity uˇzivatele, kter´y ˇz´ad´a o autorizaci. T´ım je myˇslena autentizace.

(29)

4.3.1 OAuth 2.0

V okamˇziku, kdy je uˇzivatel autentizov´an, pˇrich´az´ı na ˇradu vytvoˇren´ı opr´avnˇen´ı, kter´e mu zajist´ı n´asledn´y pˇr´ıstup ke zdroj˚um platformy. To lze uˇcinit pouˇzit´ım protokolu OAuth 2.0, coˇz je modern´ı autorizaˇcn´ı protokol, kter´y se stal de facto standardem pro zabezpeˇcen´ı webov´ych sluˇzeb (viz [11]). Jeho hlavn´ı v´yhoda tkv´ı v tom, ˇze uˇzivatel m˚uˇze poskytnout klientsk´e aplikaci pˇr´ıstup ke zdroj˚um posky- tovatele, aniˇz by t´e aplikaci musel vyzradit sv´e pˇr´ıstupov´e ´udaje, a t´ım ji poskytl prakticky neomezen´y pˇr´ıstup k jeho ´uˇctu. D´ale umoˇzˇnuje vymezit pravomoci jed- notliv´ych klientsk´ych aplikac´ı a sledovat vyuˇz´ıv´an´ı poskytnut´ych privilegi´ı. Klientsk´a aplikace se m˚uˇze autentizovat jak sama za sebe, tak i za jej´ıho uˇzivatele, kter´y k tomu vyd´a explicitn´ı souhlas. D´ıky tomu lze, bez rizika naruˇsen´ı ochrany osobn´ıch ´udaj˚u, umoˇznit pˇr´ıstup k chr´anˇen´ym dat˚um uˇzivatel˚u, ke kter´ym jim d´a jejich uˇzivatel explicitn´ı souhlas. Dalˇs´ı v´yhoda spoˇc´ıv´a v jeho snadn´e implementaci.

Protokol OAuth 2.0 specifikuje 4 z´akladn´ı role (viz [11]). Tˇemi jsou:

• majitel zdroje, kter´y ud´ıl´ı pˇr´ıstup ke zdroji (typicky uˇzivatel),

• poskytovatel zdroje, coˇz je server, na kter´em jsou zdroje uloˇzeny a ze kter´eho jsou pak n´aslednˇe z´ısk´av´any,

• klient, coˇz je aplikace, prostˇrednictv´ım kter´e uˇzivatel zadal poˇzadavek vedouc´ı k z´ısk´an´ı nˇejak´eho chr´anˇen´eho zdroje,

• autorizaˇcn´ı server, kter´y vyd´av´a pˇr´ıstupov´e k´ody klient˚um po ´uspˇeˇsn´e au- tentizaci a autorizaci.

D´ale jsou definov´any 4 typy udˇelen´ı autorizaˇcn´ıho opr´avnˇen´ı (viz [11]). Jedn´a se vlastnˇe o postupy, nebo o proces, jak vydat samotn´e opr´avnˇen´ı. Jsou jimi:

• povˇeˇren´ı klienta, kter´e se pouˇz´ıv´a pˇrev´aˇznˇe v situaci, kdy klient je z´aroveˇn majitelem zdroje; u tohoto opr´avnˇen´ı v r´amci webov´ych SPA vznik´a probl´em prozrazen´ı pouˇzit´eho identifik´atoru klienta a hesla pˇri autorizaˇcn´ım poˇzadavku klienta, protoˇze zdrojov´y k´od klienta psan´y v jazyce JavaScript je ˇciteln´y bˇeˇzn´emu uˇzivateli,

• povˇeˇren´ı uˇzivatele je nadstavbou pˇredchoz´ıho, protoˇze umoˇzˇnuje zadat iden- tifik´ator uˇzivatele a jeho hesla aˇz za bˇehu programu, tud´ıˇz zde nehroz´ı nebezpeˇc´ı prozrazen´ı tˇechto ´udaj˚u z pohledu napsan´eho k´odu aplikace jako v pˇredchoz´ım pˇr´ıpadˇe,

• autorizaˇcn´ı k´od je opr´avnˇen´ı nejv´ıce pouˇz´ıvan´e ve spojen´ı s t´ımto pro- tokolem, jelikoˇz postup jeho z´ısk´an´ı spoˇc´ıv´a v nˇekolika kroc´ıch nav´ıc oproti pˇredchoz´ım typ˚um a jelikoˇz se jedn´a v tomto smyslu o nejuniverz´alnˇejˇs´ı ˇreˇsen´ı ze zde zm´ınˇen´ych pro autorizace pˇr´ıstupu k aplikac´ım tˇret´ıch stran,

• implicitn´ı povˇeˇren´ı, kter´e vych´az´ı z autorizaˇcn´ıho k´odu, ale je zjednoduˇseno t´ım, ˇze nevyˇzaduje ukl´ad´an´ı identifik´atoru klienta a jeho hesla; vhodn´e pro webov´e ˇci jin´e aplikace, kde jsou volnˇe dostupn´e zdrojov´e k´ody ve kter´ych by byly ony ´udaje zjistiteln´e.

(30)

4.3.2 Pouˇ zit´ e zp˚ usoby autorizace

S protokolem OAuth 2.0 souvis´ı jeˇstˇe jeden pojem, kter´y je nutn´e v r´amci t´eto pr´ace zav´est. T´ım pojmem je ´uˇcelov´y pˇr´ıstupov´y ´uˇcet. Tento typ je druh´ym typem pˇr´ıstupov´eho ´uˇctu v r´amci platformy vedle jiˇz dˇr´ıve definovan´eho hlavn´ıho pˇr´ıstupov´eho ´uˇctu. Smyslem tohoto druh´eho ´uˇctu je umoˇznit pˇr´ıstup aplikaci ke sluˇzb´am aplikaˇcn´ıho serveru i za pomoci jin´ych pˇr´ıstupov´ych ´udaj˚u, neˇz kter´e pouˇz´ıv´a hlavn´ı pˇr´ıstupov´y ´uˇcet. To je vhodn´e zejm´ena v situaci, kdy je poˇzadov´ano omezen´ı opr´avnˇen´ı ˇci v´yhradnˇe ´uˇcelovˇe zˇr´ızen´y pˇr´ıstup pro konkr´etn´ı aplikaci pod identitou uˇzivatele. Identita uˇzivatele je pouze jedna. Ale moˇznost´ı pˇr´ıstupu m˚uˇze b´yt v´ıce.

Toho je dosaˇzeno pr´avˇe kv˚uli zaveden´ı ´uˇcelov´eho pˇr´ıstupov´eho ´uˇctu, jelikoˇz poˇcet tˇechto ´uˇct˚u v r´amci jedn´e identity uˇzivatele nen´ı omezen. Tento pˇr´ıstup je demon- strovan´y na n´asleduj´ıc´ım obr´azku.

Obr´azek 4.1: OAuth – postup Povˇeˇren´ı uˇzivatele

Na obr´azku 4.1 je zn´azornˇen postup z´ısk´an´ı pˇr´ıstupov´eho k´odu pomoc´ı postupu povˇeˇren´ı uˇzivatele. Klient je v tomto pˇr´ıpadˇe aplikace, kter´a potˇrebuje autorizovat sv˚uj pˇr´ıstup, aby mohla komunikovat s aplikaˇcn´ım serverem. Nejprve proto odeˇsle na autorizaˇcn´ı server (OAuth server) autorizaˇcn´ı poˇzadavek. Jeho souˇc´ast´ı jsou ´udaje pˇr´ısluˇsn´e ´uˇcelov´emu pˇr´ıstupov´emu ´uˇctu, kter´y je registrov´an pro pouˇzit´ı s t´ımto klientem. Autorizaˇcn´ı server odpov´ı na poˇzadavek pˇr´ıstupov´ym k´odem, samozˇrejmˇe pro platn´a data ´uˇcelov´eho pˇr´ıstupov´eho ´uˇctu zaslan´a v poˇzadavku, kter´y pot´e klient pouˇz´ıv´a k pˇr´ıstupu na aplikaˇcn´ı server.

Na n´asleduj´ıc´ım obr´azku 4.2 je zn´azornˇen postup z´ısk´an´ı pˇr´ıstupov´eho k´odu po- moc´ı postupu autorizaˇcn´ıho k´odu. Na prvn´ı pohled je vidˇet, ˇze se jedn´a o sloˇzitˇejˇs´ı proces, jelikoˇz se tam prov´ad´ı v´ıce poˇzadavk˚u a odpovˇed´ı. Klient nejprve odeˇsle autorizaˇcn´ı poˇzadavek na autorizaˇcn´ı server. Ten jeho poˇzadavek pˇresmˇeruje d´ale na autentizaˇcn´ı server, protoˇze dan´y uˇzivatel nen´ı autentizov´an. Z principu funkce

(31)

samotn´eho autorizaˇcn´ıho serveru, kdy ten neprov´ad´ı ovˇeˇren´ı identity, mus´ı poˇzadavek pˇredat d´ale. Autentizaˇcn´ı server poskytovatele identit je d˚uvˇeryhodnou stranou, kter´e uˇzivatel sdˇel´ı sv´e ´udaje hlavn´ıho pˇr´ıstupov´eho ´uˇctu. Pokud ovˇeˇren´ı probˇehne korektnˇe a uˇzivatel je t´ımto autentizov´an, pˇrejde se k dalˇs´ımu kroku, kter´ym je zobrazen´ı ˇz´adosti o potvrzen´ı pˇr´ıstupu. Pokud uˇzivatel vyj´adˇr´ı souhlas, povol´ı t´ım pˇr´ıstup klienta k jeho dat˚um prostˇrednictv´ım aplikaˇcn´ıho serveru. Klientovi se pak pˇres autorizaˇcn´ı server vr´at´ı zpˇet autorizaˇcn´ı k´od. Tento k´od slouˇz´ı jednak jako potvrzen´ı, ˇze uˇzivatel povolil klientovi pˇr´ıstup, ale tak´e k v´ymˇenˇe tohoto k´odu za k´od pˇr´ıstupov´y. Pot´e n´asleduje v´ymˇena autorizaˇcn´ıho k´odu za pˇr´ıstupov´y k´od mezi klientem a autorizaˇcn´ım serverem. Po jej´ım ´uspˇeˇsn´em dokonˇcen´ı m´a jiˇz klient validn´ı pˇr´ıstupov´y k´od pro pˇr´ıstup na aplikaˇcn´ı server.

Obr´azek 4.2: OAuth – postup Autorizaˇcn´ım k´odem

Z pˇredchoz´ıch dvou obr´azk˚u je zˇretelnˇe poznat, v ˇcem se jednotliv´e pˇr´ıstupy liˇs´ı a proˇc jsou pro dan´e situace vhodn´e. V r´amci vytv´aˇren´e platformy je prvn´ı postup (povˇeˇren´ı uˇzivatele) vhodn´e pouˇz´ıt do komponent importu dat a prov´adˇen´ı v´ypoˇct˚u. A to vzhledem k tomu, ˇze tyto aplikace jsou navrˇzeny jako termin´alov´e a nemaj´ı pˇr´ıstup ke GUI autentizaˇcn´ıho a autorizaˇcn´ıho serveru prostˇrednictv´ım webov´eho prohl´ıˇzeˇce. Na druh´e stranˇe pro komponentu editor je pouˇziteln´y druh´y postup (autorizaˇcn´ı k´od). Je nutn´e si na tomto m´ıstˇe uvˇedomit, ˇze i pˇri pouˇzit´ı rozd´ıln´ych postup˚u autorizace je vˇse zaloˇzeno na spoleˇcn´em z´akladu a jedn´a se st´ale o jeden protokol, kter´y nab´ız´ı takov´eto moˇznosti. A pr´avˇe to je moˇzn´e vyzdvihnout jako jeho pˇrednost v˚uˇci jin´ym ˇreˇsen´ım.

(32)

4.4 Implementace

Souˇc´ast´ı t´eto komponenty je spr´ava identit, autentizaˇcn´ı server i autorizaˇcn´ı server.

Cel´a komponenta je postavena na frameworku Phalcon PHP ve verzi 2.0.9. Imple- mentace spr´avy identit byla ˇreˇsena pouze do ´urovnˇe funkˇcn´ıho datab´azov´eho modelu (viz pˇr´ıloha A), kdy si z t´eto datab´aze autentizaˇcn´ı server pˇreb´ır´a potˇrebn´e ´udaje o identitˇe a hlavn´ım pˇr´ıstupov´em ´uˇctu. Autentizaˇcn´ı server je souˇc´ast´ı komponenty a je vytvoˇren jako aplikace za pouˇzit´ı modelu MVC. V t´eto ˇc´asti je implentov´an proces ovˇeˇren´ı identity uˇzivatele na z´akladˇe zadan´ych ´udaj˚u hlavn´ıho pˇr´ıstupov´eho

´

uˇctu (emailu a hesla). To vˇse samozˇrejmˇe graficky pomoc´ı webov´eho GUI.

Posledn´ıˇc´ast´ı t´eto komponenty je pak autorizaˇcn´ı server. Vzhledem ke skuteˇcnosti, ˇze z´amˇerem t´eto pr´ace nebylo takov´y server tvoˇrit, tak byl pouˇzit volnˇe dostupn´y OAuth 2.0 Server PHP (viz [12]), kter´y je ˇs´ıˇren pod licenc´ı MIT. Tento server samozˇrejmˇe podporuje v´yˇse rozeb´ıran´e postupy, tud´ıˇz jej staˇcilo spr´avnˇe nastavit a integrovat do projektu jako sluˇzbu.

V´ystupem implementace je tedy webov´a aplikace psan´a objektov´ym pˇr´ıstupem s n´avrhov´ym vzorem MVC v jazyce PHP, kter´a je hostov´ana na webov´em serveru s podporou bˇehu PHP skript˚u.

4.5 Testov´ an´ı

Testov´an´ı t´eto komponenty prob´ıhalo za pomoc´ı n´asleduj´ıc´ıch technik. Po vytvoˇren´ı dan´eho k´odu byl tento k´od testov´an program´atorem. Vzhledem k faktu, ˇze se zde vyuˇz´ıval extern´ı projekt implementuj´ıc´ı protokol OAuth a vytv´aˇrej´ıc´ı autorizaˇcn´ı server, a jeho v´yvoj´aˇri prov´adˇeli pˇred jeho vyd´an´ım vlastn´ı testov´an´ı, tak tato ˇc´ast nebyla zvl´aˇstˇe testov´ana. Nad celou komponentou pak probˇehlo syst´emov´e testov´an´ı, jenˇz mˇelo za ´ukol ovˇeˇrit jej´ı funkˇcnost. To bylo provedeno autorem. T´ımto testov´an´ım komponenta proˇsla.

(33)

5 Aplikaˇ cn´ı server

Aplikaˇcn´ı server je stˇeˇzejn´ı komponentou cel´e platformy. Tato skuteˇcnost vych´az´ı z kapitoly 3.3, jej´ımˇz z´avˇerem je pouˇzit´ı aplikaˇcn´ıho serveru jako prostˇredn´ıka mezi ostatn´ımi komponentami a ´uloˇziˇstˇem informac´ı ve formˇe datab´aze. S ohledem na zamˇeˇren´ı t´eto pr´ace na webov´e technologie se v´yvoj t´eto komponenty ub´ır´a smˇerem webov´ych sluˇzeb a s t´ım spojen´ych princip˚u a postup˚u.

5.1 Princip webov´ ych sluˇ zeb

Webovou sluˇzbu je moˇzn´e definovat jako webov´e API, kter´e umoˇzˇnuje komunikaci syst´em˚u. V tomto momentu je d˚uleˇzit´a pr´avˇe myˇslenka o komunikaci syst´em˚u, protoˇze webov´e sluˇzby bˇeˇznˇe nemaj´ı svoje GUI. M´ısto nˇej ˇsiroce pouˇz´ıvaj´ı text jako form´at pro v´ymˇenu dat. Komunikace pak prob´ıh´a bez ohledu na to, v jak´em jazyce jsou syst´emy vytvoˇreny. Z toho je vypl´yvaj´ıc´ı tak´e platformov´a nez´avislost.

Webov´e sluˇzby jako technologie jsou zastˇreˇsov´any konsorciem W3C, kter´e tak´e defi- novalo jejich standard. Tento standart, dostupn´y z [13], by bylo moˇzn´e volnˇe pˇreloˇzit n´asledovnˇe.

”Webov´a sluˇzba je softwarov´y syst´em podporuj´ıc´ı spolupr´aci mezi dvˇema stroji prostˇrednictv´ım poˇc´ıtaˇcov´e s´ıtˇe. Rozhran´ı webov´e sluˇzby je pops´ano pomoc´ı strojovˇe zpracovateln´eho form´atu. Ostatn´ı syst´emy komunikuj´ı s webovou sluˇzbou v souladu s pˇredepsan´ym WSDL rozhran´ım s pouˇzit´ım SOAP zpr´av typicky pomoc´ı protokolu HTTP s XML serializac´ı, kter´a je v souladu s dalˇs´ımi webov´ymi standardy.“ [13]

Webov´e sluˇzby lze rozliˇsit na dvˇe z´akladn´ı kategorie. Prvn´ı z nich jsou sluˇzby splˇnuj´ıc´ı podm´ınku stylu REST. Tyto sluˇzby vyuˇz´ıvaj´ı pro zpracov´an´ı dat sadu jednotn´ych operac´ı, kter´e jsou pro vˇsechny sluˇzby stejn´e. Druhou hlavn´ı tˇr´ıdou jsou potom libovoln´e sluˇzby (arbitrary web services). Tyto sluˇzby maj´ı na rozd´ıl od REST sluˇzeb moˇznost definice libovoln´e mnoˇziny operac´ı. Tato mnoˇzina je pops´ana pomoc´ı WSDL (Web Services Description Language). [13]

5.2 Pˇ rehled webov´ ych sluˇ zeb

5.2.1 SOAP

SOAP byl vytvoˇren jako odlehˇcen´y protokol pro v´ymˇenu strukturovan´ych informac´ı v decentralizovan´em a distribuovan´em prostˇred´ı. Je n´asledovn´ıkem protokolu XML- RPC, kter´y takt´eˇz slouˇzil pro v´ymˇenu strukturovan´ych informac´ı. SOAP definuje

References

Related documents

Du får som chef verktyg och modeller för att hitta ditt eget visionära ledarskap för ökad lönsamhet och större effektivitet.. Enligt en undersökning från Harvard Business

Asociace se prov´ ad´ı pˇri navazov´ an´ı spojen´ı v aplikaˇ cn´ı vrstvˇ e a pˇri asociaci si klient a server stanov´ı urˇ cit´ e komunikaˇ cn´ı parametry, kter´ e

RoHS - Directive 2002/95/EC compliant as per product date code 0426 Flammability class according to UL94 V-0. Ambient temperature range

Diplomová práce je studií proveditelnosti zavedení turistické čipové karty v Libereckém regionu, která obsahuje možnosti a způsoby využití čipových karet,

Hlavním cílem bakalářské práce bylo analyzovat problematiku zájmu mládeže ve městě Česká Lípa a jeho okolí o futsal a na základě tohoto výzkumu posoudit, zdaje

Vi bevakar och stödjer utvecklingen av gruv- och stålindustrin, och arbetar med att sprida kunskap till medlemmarna kring den framtida och moderna näringens behov, möjligheter

Det genom snittliga antalet skadade m otparter är ungefärligen på samma nivå, medan det finns en ökning av antalet incidenter där personer dödats som en följd av

tingningsavgift, intresseavgift, visningsavgift, bokningsavgift eller andra avgifter oavsett lydelse som eventuellt erläggs för att en person skall få stå på kö för köp av valp.