Studentova Berlička III

Rozměr: px
Začít zobrazení ze stránky:

Download "Studentova Berlička III"

Transkript

1 České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačů Diplomová práce Studentova Berlička III Bc. Luděk Chmurovský Vedoucí práce: Ing. Jiří Chludil Studijní program: Elektrotechnika a informatika, strukturovaný magisterský Obor: Výpočetní technika květen 2010

2

3

4 Poděkování Na tomto místě bych rád poděkoval vedoucímu mé diplomové práce Ing. Jiřímu Chludilovi za vstřícné konzultace. Jiřímu Hunkovi za pomoc s tímto projektem a Romanovi Hákovi za neocenitelnou pomoc při studiu. v

5 vi

6 Prohlášení Prohlašuji, že jsem svou diplomovou práci vypracoval samostatně a použil jsem pouze podklady uvedené v přiloženém seznamu. Nemám závažný důvod proti užití tohoto školního díla ve smyslu 60 Zákona č.121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon). V Praze dne vii

7 viii

8 Abstract The focus of this work is to coordinate and define the rules for design and implementation of a new service center project for Studentova berlička. Furthermore, this thesis deals with the way of linking of external modules with a new functionality for project Studentova berlička. The method of interconnection is based on web services. The text describes the web services, through which it will be possible to remove the shortcomings of the current version of project Studentova berlička. Web interface will ensure easy portability of the information system on mobile platforms and ergonomics for the further development of the system. Abstrakt Těžištěm této práce je zkoordinovat a vymezit jasná pravidla pro návrh a implementaci nového centra služeb pro projekt Studentova berlička. Dále se tato práce zabývá způsobem propojení externích modulů s novou funkčností projektu Studentova berlička. Způsob propojení je řešen rozhraním založeným na webové službě. Text práce popisuje webové služby, díky kterým bude možné odstranit nedostatky současné verze projektu Studentova berlička. Webové rozhraní zajistí informačnímu systému snadnou portabilitu na mobilní platformy a ergonomii pro další rozvoj systému. ix

9 x

10 Obsah Seznam obrázků 1. Úvod 1.1 Studentova berlička 1.2 Historie vývoje 1.3 Souběžně vyvíjené projekty Generátor testů Automatické vyhodnocení testů Centrum služeb 2. Analýza 2.1 Rozbor architektury 2.2 Modely architektur 2.3 Technologie SOA CORBA RMI XML-RPC SOAP REST 3. Implementace 3.1 Webové služba Části webové služby Operace webových služeb 3.2 Protokol SOAP 3.3 WSDL 3.4 UDDI 3.5 Zabezpečení Zabezpečující protokol HTTPS Zabezpečení webové služby 4. Tutoriál xi

11 5. Závěr 5.1 Navazující práce 5.2 Týmová spolupráce 6. Použité zkratky, vysvětlení pojmů 7. Obsah CD 8. Použitá literatura Příloha 1- Tutoriál xii

12 Seznam obrázků [1]. Prvotní systém Jagu I menu [2]. Prvotní systém Jagu I zadávaní hodnot [3]. Současná verze projektu Studentova berlička [4]. Schéma kooperace souběžně vyvíjených projektů [5]. Schéma MVC Zdroj: [6]. Schéma propojení Klient-Server a Peer-to-Peer Zdroj: [7]. Model CORBA [8]. RMI Model [9]. Schéma webové služby Zdroj: [10]. Struktura SOAP zprávy Zdroj: [11]. Vztah tří základních technologií webových služeb Zdroj: [12]. Struktura dokumentu WSDL. Zdroj: [13]. Struktura registru UDDI Zdroj: xiii

13 xiv

14 1. Úvod Tato práce vychází z diplomové práce kolegy Jiřího Hunky (4) a navazuje na bakalářskou práci Marka Sachy (18). Jiří Hunka během svého působení na ČVUT FEL navrhl a implementoval informační systém Studentova berlička (22), který usnadňuje elektronickou komunikaci mezi studenty a jejich vyučujícími. Kolega Marek Sacha ve své práci popsal technologii, kterou je možné propojit stávající verzi informačního systému s rozšiřujícími externími aplikacemi. Projekt Studentova berlička vznikl pod odborným vedením Ing. Jiřího Chludila, jako jednoduchý nástroj pro zefektivnění administrativních úkonů nutných pro vedení cvičení, jako je například sledování docházky, hodnocení testů studentů nebo zadávaní semestrálních prací. Systém se od svého vzniku dočkal mnoha dalších přepracování a rozšíření funkčnosti. Tak se z původně primitivní aplikace stal komplexní nástroj pro potřeby studentů i vyučujících. Tento nástroj má bohužel i několik nedostatků, které bude pro plnohodnotné nasazení potřeba odstranit. Aplikace není implementována modulárně ani objektově, což snižuje transparentnost zdrojových kódů, pružnost úprav a změn stávající funkčnosti, včetně jejího rozšíření. Dalším velkým nedostatkem je úzké svázání aplikace s datovým úložištěm. Navržené uživatelské rozhraní, které si bohužel u některých uživatelů nezískalo příliš velkou oblibu, je pevně spjato s aplikační logikou systému. Proto architektura systému neumožňuje snadno přizpůsobovat prezentace dat konkrétním požadavkům. Nejpalčivějším nedostatkem současné verze je však problematické napojení externích modulů. Aktuálně jsou připravovány moduly pro generování testů, pro automatické vyhodnocení testů a pro management semestrálních prací. Za současného stavu si zapojení každého z uvedených modulů vyžaduje nekoncepční a zásadní změnu zdrojového kódu. Na většinu uvedených problémů již poukazuje Jiří Hunka ve své diplomové práci, ve které navrhuje kompletní přepracování architektury jádra a datového úložiště. S tímto závěrem plně souhlasím. Těžištěm této práce je zavést a zdokumentovat vhodné a dostupné postupy, v návaznosti na práci Marka Sachy (18), které by všechny uvedené nedostatky potlačily. 1

15 1.1 Studentova berlička Původní systém dostal název Studentova berlička, protože vznikal s cílem: pomoci studentům získat informace o dosažených bodech z cvičení, zjednodušit komunikaci mezi vyučujícím a studentem a zjednodušit administrativu s vedením cvičení. Studentova berlička se v průběhu let vyvinula od primitivní evidence docházky a bodování aktivity v hodinách, až po komplexní nástroj pro kontrolu a evidenci práce studentů na cvičeních. Nástroj zahrnuje sledování docházky na cvičení, aktivitu studentů v hodinách, evidenci výsledků testů a zadávání a následné hodnocení semestrálních prací. Systém v současné podobě disponuje webovým rozhraním, které bylo navrženo na míru, pro základní pokrytí prvotních požadavků. Bylo rozhodnuto, že vývoj projektu Studentova berlička se nadále nebude ubírat směrem úprav stávajícího systému, ale bude kompletně přepracováno celé jádro, na základě analýzy stávající funkčnosti a potřeb uživatelů. Nový návrh a implementace umožní dalším vývojářům programovat univerzálnější a platformě přenositelnější uživatelská rozhraní s větší efektivitou a menší časovou náročností. Vydání se směrem k novému propracovanějšímu informačnímu systému s sebou nese velký rozsah práce. Vývoj nového projektu, pracovně nazvaného Centrum služeb, bude rozdělen do tří samostatných prací. Námětem těchto prací bude především: reorganizace datového úložiště, návrh nového flexibilnějšího jádra nezávislého na druhu datového úložiště, doplnění této kombinace o rozhraní poskytující funkce jádra prostřednictvím webových služeb Rozhraní odstíní přístup k datovému úložišti a umožní omezit a zabezpečit přístup k citlivým osobním údajům studentů. Přesto však bude stále schopno poskytnout většinu funkčnosti pro další vzdělávací nebo správní účely. Zásadním přínosem nového projektu bude umožnění spuštění dalšího externího vývoje, tvorby rozšíření nebo nových uživatelských rozhraní pro konkrétní potřeby. Externí vývoj 2

16 bude moci vznikat bez obav z narušení bezpečnosti systému a narušení osobních údajů zaregistrovaných uživatelů Historie vývoje Historie webové aplikace zasahuje do zimního semestru 2005 / 2006, kde byla poprvé definována a implementována její první verze v rámci předmětu Datové struktury a algoritmy, vedeným Ing. Jiřím Chludilem. Aplikaci vyvinul Jiří Hunka. Obrázek č. 1 Prvotní systém Jagu I menu (4) Počáteční požadavky na aplikaci byly poměrně jednoduché, proto v relativně krátké době vznikl první funkční celek pod pracovním názvem Jagu I. Vzhled GUI (Graphical User Interface) byl spíše účelový a funkčnost byla značně omezena. Bohužel nebyl brán zřetel na zveřejňování citlivých osobních údajů. Aplikace se nicméně pro své účely dobře osvědčila, a proto se v dalších semestrech dočkala mnoha dalších rozšíření. V druhé verzi, označované pracovně jako Jagu II", se uvažovalo o rozšíření aplikace i pro potřeby jiných předmětů, než jen pro předmět Datové struktury a algoritmy. Nová verze nabízela mnohá vylepšení a dosahovala větší univerzality. Bylo zavedeno sledování: docházky, aktivit na cvičení a evidence bodů za semestrální práci. Grafické provedení dosahovalo vyšší úrovně, než předchozí verze, ale uživatelsky byla aplikace stále ještě omezená. 3

17 Na základě zkušeností s obecnou problematikou hodnocení předmětů a zapracování požadavků vedoucího práce vznikl, v rámci bakalářské práce Jiřího Hunky (4), projekt Studentova berlička. Projekt byl implementován na platformě PHP s databází MySQL. V roce 2006 byl spuštěn testovací provoz. Po odladění chyb a úpravě uživatelského rozhraní došlo v následujícím roce k uvedení do plného provozu. V této podobě je aplikace používána do současnosti (22). Obrázek č. 2 Prvotní systém Jagu I - zadávání hodnot (4) V roce 2008 byl, opět pod odborným vedením Ing. Jiřího Chludila, sestaven tým, který měl za úkol razantně rozšířit stávající funkčnost aplikace. Rozšiřování funkcionality se mělo zabývat inteligentním generováním testů, automatizací jejich opravy a správy semestrálních prací. Na projektu Studentova berlička postupně začalo spolupracovat více lidí. Proto bylo nutné začít uvažovat nad změnou dosavadní architektury systému, která by umožnila sjednotit funkčnost dílčích rozšiřujících projektů a zároveň umožňovala omezit přístup k citlivým osobním údajům zaregistrovaných uživatelů. Právě touto problematikou se zabývá tato práce. 4

18 Obrázek č. 3 Současná verze projektu Studentova berlička (5) 1.3 Souběžně vyvíjené projekty Na počátku zimního semestru 2009 dostal nově sestavený tým za úkol navrhnout a implementovat dílčí rozšíření systému, které by pomohlo zefektivnit a zjednodušit administrativu spojenou s písemným zkoušením studentů. V praxi se přednášená látka většinou testuje písemnou formou na cvičeních daného předmětu. Vyučující sestaví na základě odpřednášené látky testové otázky, předloží je studentům na hodině k vypracování, a zbytek svého volného času stráví opravou. Po opravě, v následující hodině cvičení, následuje bouřlivá diskuze a vyjednávání nad počtem bodů a nad správností řešení. Opět ale na úkor času vyměřeného pro další procvičení látky. 5

19 Obrázek č. 4 Schéma kooperace souběžně vyvíjených projektů Zjednodušení, zefektivnění a především zautomatizování výše popsaného administrativního úkonu dostaly za úkol dva projekty. První, s názvem Generátor testů (12), by měl pomoci vytvořit a spravovat databázi testových otázek tak, aby si vyučující mohli jednotlivé testy mezi sebou sdílet a navzájem je modifikovat a doplňovat. To by umožňovalo sjednotit a zjednodušit obtížnost tvorby písemných testů nebo umožnit sestavení souhrnných testů, kde by mohl každý z vyučujících zadat jen vlastní odbornou část. Druhý zmíněný projekt (10) by se měl zaobírat zautomatizováním opravy testů. Tedy jejich naskenováním do databáze a následným převodem do elektronické podoby, který zjednoduší jejich opravu. 6

20 1.3.1 Generátor testů Generátor testů nemohl vzniknout jako samostatná a úplně oddělená aplikace, protože je naprosto nezbytné, aby ukládal informace o vygenerovaných testech a jejich struktuře přímo do datového úložiště projektu Studentova berlička. Důvod toho přístupu je ochrana před nežádoucím únikem připravovaných testů. Jako první byl tímto pověřen kolega Jiří Anděl, který svůj projekt představil ve své bakalářské práci Studentova Berlička II - Generátor testů. Kolega Anděl měl za úkol zanalyzovat dosavadní způsob zadávání testů. Na základě analýzy vypracovat externí aplikaci, která by vyučujícímu nabídla kvalitnější uživatelské prostředí. Externí aplikace měla být propojena se Studentovou berličkou pomocí webových služeb. V minulém akademickém roce (2009/2010) navázal na práci Jiřího Anděla, který své zadání nedokončil, kolega František Kraml s tématem Studentova Berlička III - Generátor testů (12) Automatické vyhodnocení testů Zpracování naskenovaných testů komplikuje strojové čtení ručně psaného textu. Kolega Petr Kotek se ve své bakalářské práci (10) zaměřil pouze na rozpoznání nejdůležitějších údajů v testu. To znamená bodové hodnocení jednotlivých otázek a jména a příjmení studentů. Rozpoznávané údaje měly v testu přesně vyhrazené místo, určené pomocí kalibračních značek, které tiskl společně s otázkami generátor testů. Stejně jako v případě Generátoru testů měla i tato aplikace komunikovat se Studentovou berličkou pomocí webových služeb. Po vyhodnocení testu vyučujícím mělo dojít k automatickému uložení informací do Studentovy berličky. Studenti by pak mohli v reálném čase získávat informace o svém bodovém hodnocení a prohlédnout si kopii své písemné práce. Zároveň měla aplikace nabídnout přehledné a ergonomické uživatelské rozhraní a měla být připravena na budoucí možnost opravy testů jen pomocí tabletu. Kolega Petr Kotek si pro implementaci zvolil jazyk Java, čímž byla prokazatelně doložena funkčnost komunikace mezi systémy s rozdílnou platformou. 7

21 1.3.3 Centrum služeb Výše uvedené bakalářské práce, vypsané v minulém akademickém roce (2008/2009), měly především otestovat účinnost modulárního vývoje a ověřit funkčnost zvolené technologie pro komunikaci a předávaní dat mezi externími aplikacemi a Studentovou berličkou. Úspěšně byla zdokumentována komunikace mezi aplikacemi postavenými na různých platformách a jednoduché předávání binárních dat. V letošním akademickém roce (2009/2010) vznikl opět nový tým, který navazuje na předchozí práce kolegů a na základě analýzy požadavků na systém má za úkol navrhnout nové datové úložiště a aplikační logiku Studentovy berličky. Datové úložiště si vzal na starost kolega Tomáš Králík (11). Problematika aplikační logiky a její implementace byla nabídnuta kolegovi Jaromírovi Vaňkovi (26). Studentova berlička je odladěný nástroj, který byl již v několika obměnách nasazen do ostrého provozu. Za pomoci výše zmíněných prací kolegů Králíka a Vaňka by měl být položen základ pro nový, pružnější a snadno rozšířitelný systém, který by v budoucnu nahradil současně používanou Studentovu berličku. Aby nedocházelo k nejasnostem v terminologii, dostala práce kolegů Králíka a Vaňka pracovní název Centrum služeb. 8

22 2 Analýza V kapitole o historii popisuji, za jakých okolností vznikl systém Studentova berlička. Monolitická struktura systému není bohužel vhodná pro další rozšiřování své funkčnosti, aplikační logika je pevně svázána s prezentací dat. Krom toho uživatelské rozhraní všem uživatelům ne zcela vyhovovalo. Namísto rekonstrukce stávajícího systému jsme přistoupili k návrhu zcela nové aplikace. Tato nová aplikace by měla být koncipována takovým způsobem, aby ji bylo možné snadno přizpůsobit pro různé účely. Koncept by měl spočívat v jednotném úložišti dat a uvolnění metodiky pro úpravu uživatelského rozhraní, případně možností implementace vlastního GUI, dle svých představ. Cílem této práce je zhodnotit nároky, které budou kladeny na aplikaci, a na základě těchto předpokladů zvolit nejvhodnější technologie a odpovídající architekturu, pro vytvoření nového systému. 2.1 Rozbor architektury Architekturou se v oblasti informačních technologií rozumí popis infrastruktury informačního systému. Zahrnuje popis vnitřního uspořádání jednotlivých částí systému, jejich funkčnost a jejich interakci s vnějším okolím. V této části si nejdříve definujeme hodnotící kritéria. Poté si představíme několik používaných architektur informačních systémů a nakonec vybereme tu nejvhodnější pro naše potřeby. Výběr architektury budeme hodnotit především podle těchto vlastností (9): Flexibilita Distribuovanost Nezávislost na implementačním prostředí Flexibilita Nová aplikace by měla být dostatečně flexibilní, aby bylo možné snadno a bez velké režie pozměňovat stávající funkčnost nebo ji dále rozšiřovat. 9

23 Distribuovanost Distribuovaný systém je takový výpočetní systém, který zahrnuje více než jeden procesor nebo počítač, mající svůj program rozdělený na části. Tyto části si vzájemně předávají data, které jsou zpracovávána na různých spolupracujících procesorech nebo počítačích.(6) Měli bychom do návrhu aplikace zahrnout požadavek, aby mohla aplikace a její jednotlivé části pracovat na různých na sobě nezávislých strojích. Nezávislost na implementačním prostředí Můžeme předpokládat, že naší aplikaci bude vyvíjet větší počet studentů. Zároveň budou řešit dílčí problémy, pro které pravděpodobně bude vhodné použít rozdílné programovací nástroje a technologie. Při výběru architektury bychom měli zajistit pokud možno co nejlepší spolupráci jednotlivých dílčích rozšiřujících modulů, napsaných v různých programovacích jazycích a pracující pod různými operačními systémy. 2.2 Modely architektur V této kapitole si představíme nejběžněji používané architektury při vývoji informačních systémů: Monolitická Dvouvrstvá Klient-Server Třívrstvá MVC (Model-View-Controller) Peer-to-peer - Klient-Klient Servisně orientovaná SOA (Service Oriented Architecture) 10

24 Monolitická architektura Aplikace s touto architekturou nemá žádné vnitřní uspořádání, nedělí se na žádné logické celky. Celá aplikace je, jak již název napovídá, nedělitelný monolitický blok, běžící na jednom počítači. + Snadná implementace. + Minimální nároky na technické vybavení. - Rozšíření aplikace není možné bez zásahu do celé struktury kódu. - Bez možnosti distribuovanosti. - Silná svázanost s implementačním prostředím. Dvouvrstvá architektura Dvouvrstvá architektura dělí aplikaci na část klientskou a na část serverovou. Klient představuje uživatelské rozhraní aplikace a poskytuje prezentační služby. Klienty dělíme na tlustý a tenký (7). Tlustý klient kromě uživatelského rozhraní obsahuje i aplikační logiku. V případě tenkého klienta je aplikační logika přesunuta na server. Tenký klient tvoří ve většině případů pouze internetový (webový) prohlížeč, který je dnes již standardní součástí softwarového vybavení běžného počítače (27). Serverová část zajišťuje komunikaci a koordinaci zpracovávaní požadavků klientů. Typicky komunikuje více klientů s jedním serverem. Mimo zpracování požadavků, zajišťuje server především služby spojené s prací nad daty. + Snadná implementace + Distributivita dat + V případě tenkého klienta, nezávislost na běhovém prostředí - Svázanost aplikační logiky s prezentací dat - Svázanost s implementačním prostředím 11

25 Třívrstvá architektura Architektura označovaná jako MVC (Model View Controller) je rozdělena na tři logické celky, starající se o uživatelské rozhraní (view), aplikační logiku (controller) a datový model (model). Každá komponenta pracuje zcela nezávisle na ostatních. + Oddělení aplikační logiky a prezentace dat. + Opakovaná možnost použití kódu. + Nezávislost komponent. - Svázanost s implementačním prostředím. Obrázek č. 5 Schéma MVC Peer-to-peer Peer-to-peer neboli klient klient představuje architekturu rovnocenných klientských aplikací. V této architektuře není zádná aplikace nadřazená ostatním. Takže zde neexistuje pojem server. Klientské aplikace jsou schopné komunikovat každá s každou a výpočet je plně distribuovaný (17). + Distributivita dat - Architektura nevhodná pro informační systémy 12

26 Obrázek č. 6 Schéma propojení Klient-Server a Peer-to-Peer Servisně orientovaná architektura Servisně orientovaná architektura (SOA) umožňuje flexibilně provázat různé aplikace napříč platformami a technologiemi. Každá z propojených aplikací funguje jako nezávislý blok poskytující služby. Každá služba je vybavena přesně popsaným rozhraním. Umožňuje tak ostatním aplikacím, aby skrze něj využívaly její služby (28). + Flexibilita + Nezávislost na platformě + Distributivita dat Flexibilita Distribuovanost Závislost na implementačním prostředí Náročnost implementace Technické vybavení Monolitická Ne Ne Silná Snadná Minimální Dvojvrstvá Ano Ano Střední Střední Střední Třívrstvá Ano Ano Střední Složitá Střední Peer to peer Ano Ano Slabá Střední Minimální SOA Ano Ano Slabá Střední Střední Tabulka č. 1 Přehled vlastností porovnávaných architektur Předpokládáme, že se náš informační systém, který má nahradit Studentovu berličku, bude vyvíjet postupně a na etapy v rámci několika studentských prací. 13

27 Architektura by tedy měla být navržena tak, aby bylo možné tyto práce sjednotit v jeden funkční celek. Při výběru vhodné architektury nesmíme zapomenout na fakt, že by neměla být příliš komplikovaná, aby její porozumění studentům nezpůsobovalo zbytečnou zátěž. Z uvedených architektur je pro porozumění nejjednodušší monolitická, celý systém tvoří jeden blok kódu. Takováto architektura je pro větší systém zcela nekoncepční, a proto ji hned z výběru vyřadíme. Stejným způsobem můžeme výběr zúžit o architekturu peer-to-peer, která je vhodná především pro aplikace zabývající se distribuovaným výpočtem, což není případ našeho projektu. Pro účely informačního systému se více hodí použít architekturu, která je založená na principu dotaz / odpověď nad množinou strukturovaných dat. Všechny tři zbývající popisované architektury jsou pro toto vhodné. Dvouvrstvá architektura se od třívrstvé liší, jak je patrné z názvu, o vrstvu, která umožňuje oddělit aplikační logiku od prezentace dat. Třívrstvá architektura je proto mnohem vhodnější a budeme ji preferovat před dvouvrstvou variantou. Do finálního výběru tak postupuje architektura třívrstvá a SOA. Na základě všech uvedených kladů a záporů vybereme pro vývoj Centra služeb architekturu orientovanou na služby. Jako jediná umožňuje propojit, za dodržení určitých postupů, aplikace a moduly napsané v rozdílných programovacích jazycích. Přesto je její struktura méně komplikovaná na porozumění než MVC. Vývojáři jednotlivých modulů navíc nemusí znát strukturu celé aplikace, stačí jim pouze navázat na přesně definované rozhraní. SOA tak nabízí velice flexibilní, moderní a škálovatelný systém, založený na nezávislých modulech, poskytujících si navzájem služby. Ze své podstaty nabízí vytvářet rozdílné prezentace dat, bez jakýchkoliv technických omezení. 14

28 2.3 Technologie SOA V této kapitole si představíme a stručně popíšeme nejvýznamnější představitele servisně orientovaných technologií. Porovnáme způsob a komplikovanost jejich implementace a jejich dostatečnou podporu v programovacích jazycích. Nakonec vybereme nejvhodnější technologii, která bude použita v nově vzniklé aplikaci, která nahradí Studentovu berličku CORBA Standart CORBA vzniká na počátku 90. letech, pro účely sdružení společností OBG 1, které tvořili například IBM, HP nebo Sun. V roce 1995 vychází nová verze standartu CORBA 2.0, která byla zakomponována do jazyku Java, což přispělo k dalšímu masivnějšímu rozšíření této architektury. (13) Obrázek č. 7 Model CORBA (13) Princip architektury je využívání platformě nezávislých, distribuovaných objektů. Klient přistupuje k dostupným objektům, bez ohledu na to, v jakém jazyce jsou napsány, na jakém počítači běží, či jakým komunikačním protokolem jsou jednotlivé počítače provázány. (13) Každý dostupný objekt je zapouzdřená entita, která poskytuje jasně popsané 1 OMG - Sdružení Object Management Group 15

29 služby. Způsob přístupu k službě distribuovaného objektu je proveden prostřednictvím zasíláním požadavků. Konkrétní implementace zpracování, odesílání a přijetí požadavků je v každém jazyce odlišná a tedy závisí na jazyku, ve kterém je napsán klient. Ve starších programovacích jazycích je zasílání požadavků provedeno voláním vygenerovaných funkcí (stubs), jazykem popisujícím objekty (IDL). U novějších programovacích jazyků, umožňujících objektově orientované programování, se zasílání provádí voláním zástupných metod distribuovaného objektu.(13) Jazyk IDL (Interface Definition Language) definuje rozhraní distribuovaných objektů. Syntaxe jazyka se podobá C++. Při vývoji aplikací využívajících systému COBRA se nejdříve deklarují distribuované objekty pomocí univerzálního jazyka IDL a následně se příslušným překladačem vygenerují zdrojové kódy pro příslušný programovací jazyk, ve kterém je implementován klient nebo server. Protokol IIOP (Internet Inter ORB Protocol) je síťový protokol, který definuje komunikaci ORB komponent. ORB komponenty mohou mít různou implementaci. + Využití služeb objektu nezávisle na platformě. + Veřejný IDL popis objektů - Komplikovaná implementace - Architektura vhodná pouze pro aplikace těžkých klientů RMI Java RMI (Remote Method Invocation) je technologie distribuované komunikace určená pro platformu Java. Umožňuje objektu na jedné JVM (Java Virtual Machine) jednoduše spustit metodu jiného objektu na vzdálené JVM. Při volání vzdálené metody získává klient referenci na vzdálený objekt prostřednictvím jmenné služby poskytované RMI. RMI používá objektovou serializaci pro posílání parametrů metod a návratových hodnot, tj. posílají se objekty, u kterých je možno využít všech jejich vlastností včetně polymorfismu. Vzdálené volání metod má tu samou syntaxi, jako volání metod lokálních objektů. RMI poskytuje podporu pro dynamické stahování kódu. 16

30 Veškeré třídy, rozhraní, nástroje pro vytvoření a spuštění RMI aplikace jsou součástí J2SE (Java 2 Standard Edition). Obrázek č. 8 RMI Model (6) + Snadná implementace + Popis parametrů, atributů a návratových hodnot je zařízen automaticky - Závislost na platformě Java XML-RPC XML-RPC (XML-Remote Procedure Call) je první uváděný příklad webové služby. Zkratka RPC označuje, že protokol umožňuje volat procedury na vzdáleném počítači. Druhá zkratka označuje, jakým způsobem protokol dociluje vzájemné komunikace přes připojení HTTP (Hypertext Transfer Protocol) (24). Klient XML-RPC zabalí informace o volané proceduře do dokumentu XML (extensible Markup Language). XML zpráva je předána serveru přes normální požadavek POST HTTP. Server zpracuje doručený XML soubor, zavolá patřičnou místní funkci a vrátí (opět přes požadavek HTTP) výsledky v podobě jiného dokumentu XML. 17

31 + Snadné využití protokolu HTTP + Komunikace přes zasílání zpráv ve formátu XML + Platformě nezávislý + Podpora v jazyku PHP - Nevhodné pro přenos strukturovaných dat SOAP Jako poslední protokol webové služby si představíme protokol SOAP (Simple Object Access Protokol). SOAP vychází ze specifikace protokolu XML-RPC, přebírá tak i jeho podstatnou výhodu, a to formát přenášených zpráv s jejich nezávislostí na platformě. Navíc ve svém protokolu SOAP zahrnuje všeobecnější rámec pro výměnu strukturovaných informací jakéhokoliv druhu. Na rozdíl od XML-RPC, které umožňuje komunikovat pouze a jen přes HTTP, může SOAP teoreticky běžet přes jakýkoliv přenosový protokol (HTTP, SMTP, FTP a jiné). Další z hlavních rozdílů mezi SOAP a XML-RPC je podpora způsobů, jakými může server vyjmenovat své metody a jejich argumenty. Klient pak může automaticky odhalit metody, které server nabízí, a použít informace o typech argumentů, aby správně naformátoval svůj požadavek (28). + Podpora v jazycích ASP, PHP, Java + Platformě nezávislý + Komunikace zasíláním zpráv ve formátu XML + Veřejný WSDL popis služeb + Snadná implementace + Podpora pro přenos strukturovaných i binárních dat + Spolupráce s HTTP, SMTP, FTP 18

32 2.3.5 REST REST (Representation State Transfer) není formálním standardem, nýbrž stylem architektury rozhraní, navržené pro distribuované prostředí. Pojem REST byl popsán v roce 2000 v disertační práci Roye Fieldinga.(16) REST je, na rozdíl od známějších XML-RPC či SOAP, orientován datově, nikoli procedurálně. Webové služby definují vzdálené procedury a protokol pro jejich volání, REST určuje jak se přistupuje k datům. Rozhraní REST je použitelné pro jednotný a snadný přístup ke zdrojům (resources). Zdrojem mohou být data, stejně jako stavy aplikace (pokud je lze popsat konkrétními daty). Všechny zdroje mají vlastní identifikátor URI a REST definuje čtyři základní metody pro přístup k nim.(16) REST je architektura, která umožňuje přistupovat k datům na určitém místě pomocí standardních metod HTTP, kterými jsou GET, POST, PUT, DELETE a HEAD. Poslední tři přístupy nejsou příliš využívány. Pomocí REST lze ovládat i stav aplikace, pokud jej dokážeme popsat takovým způsobem.(25) Velmi podstatným důvodem nedávného růstu zájmu o REST je jeho snadného použití společně s populárním způsobem návrhu webových aplikací využívajících technologii AJAX (Asynchronous JavaScript and XML). Na rozdíl od XML-RPC nebo SOAP nemá protokol REST v jazyce PHP dostupnou žádnou přímou podporu. Vzhledem k tomu, že REST využívá HTTP požadavky, je možné použít existující síťové funkce pro vytvoření a zpracovaní HTTP požadavku. + Snadné propojení s technologií AJAX + Přístup k datům přes HTTP - Nemá podporu v jazyku PHP 19

33 Nezávislost na platformě Komunikační protokol Dostupnost Podpora v PHP Náročnost implementace CORBA Ano GIOP/IIOP Komerční Ne Komplikovaná REST Ano HTTP Open source Ne RMI Ne HTTP Open source Ne SOAP Ano HTTP Open source Ano XML-RPC Ano HTTP Open source Ne Tabulka č. 2 Přehled vlastností dostupných webových služeb Střední Snadná Snadná Střední Podle vlastností v tabulce č. 2 můžeme hned na začátku výběru vyloučit CORBA a RMI. CORBA je ze všech popsaných technologií nejsložitější na implementaci a v současné době je již překonaná. Naopak RMI nabízí mnoho pozitiv, bohužel je ale výlučně spjatá s platformou Java. Nesplňuje tak naší základní podmínku implementační nezávislosti na platformě. Výběr se tedy zúžil pouze na technologie REST, SOAP a XML-RPC. REST ani XML-RPC nemá vestavěnou podporu v jazyku PHP. XML-RPC navíc není vhodná pro komplexnější komunikaci mezi systémy. Zbývá nám jediná technologie, která splňuje všechna naše kritéria. Touto technologií je SOAP. 20

34 3. Implementace Účelem této práce je navrhnout a popsat vhodné technologie pro implementaci nové webové aplikace, jenž zastoupí současně používanou Studentovu berličku. Z analýzy vyplývá, že systém má být postaven na architektuře servisně orientovaných služeb, konkrétně za využití protokolu SOAP. Tato kapitola se bude podrobněji zabývat vysvětlení funkčnosti webových služeb. Dále si rozebereme protokol SOAP a některé další komponenty spojené s webovými službami, jako je popis a registr webových služeb. Závěrem kapitoly si přiblížíme něco málo o zabezpečení aplikací postavených na tomto základu. 3.1 Webové služba Servisně orientovaná architektura je technologie umožňující flexibilně provázat různé nezávislé moduly a aplikace, které poskytují služby. V internetovém prostředí, dostupném přes standardní protokol HTTP, je možné realizovat SOA pomocí tzv. webových služeb. Webové služby představují jeden z technologických prostředků, kterým je možné realizovat principy SOA. (21) 21

35 3.1.1 Části webové služby Webové služby se skládají ze tří vzájemně interagujících částí. Jsou to poskytovatel služeb, registr služeb a samostatný klient. (15) Obrázek č. 9 Schéma webové služby Poskytovatel služeb Poskytovatel služeb (Server) je softwarová nebo hardwarová platforma, která zajišťuje provoz vlastních webových služeb.(15) Poskytuje tedy klientům funkce prostřednictvím standardního webového protokolu. Registr služby Registr (UDDI Registry) služeb je místo, kde jsou uloženy informace o webových službách a jejich poskytovatelích. V registru služeb mohou uživatelé vyhledávat poskytovatele a potřebné informace pro navázání spojení mezi uživatelem a poskytovatelem služeb. (15) Klient Klient v tomto případě není uživatel, který vyhledává požadovanou funkci v registru služeb. Jedná se o aplikaci, která volá požadavky serveru. 22

36 3.1.2 Operace webových služeb Pro tři výše uvedené části webových služeb byly definovány operace, které zajistí vzájemnou spolupráci. Publikování Publikování je interakce mezi poskytovatelem služeb a jejich registrem. Zpřístupňuje webovou službu klientům. (15) Vyhledávání Vyhledávání je komunikace mezi klientem a registrem služeb. Ty dodávají uživateli potřebné informace o poskytovatelích webových služeb a potřebné informace pro navázání spojení. (15) Propojení Třetí a nejdůležitější operací je Propojení. Propojení je interakce mezi poskytovatelem služeb a uživatelem. Díky ní je možné webovou službu využívat. (15) 23

37 3.2 Protokol SOAP První verze (1.0) protokolu SOAP vznikla na konci roku 1999 jako výsledek společné práce firem DevelopMentor, Microsoft a UserLand, které chtěly vytvořit protokol pro vzdálené volání procedur (RPC) založený na XML. V průběhu roku 2000 se k podpoře přihlásila i firma IBM, a nová verze SOAP 1.1 byla zaslána W3C Consortium. Verze SOAP 1.1 je dnes nejpoužívanější. Na půdě W3C Consortia nyní probíhá práce na uvolnění prvního skutečného standardu SOAP 1.2 v rámci pracovní skupiny pro XML protokol. (20) Protokol SOAP jsme v analýze vybrali na základě široké podpory v programovacích jazycích a nezávislosti na platformě. Tyto pozitivní vlastnosti vycházejí z principu komunikace mezi klientem a rozhraním webové služby. Protokol SOAP je založen na principu synchronní komunikace typu požadavek odpověď. Požadavek i odpověď jsou přenášeny po médiu ve formě XML, což je standardizovaný formát pro výměnu informací. Komunikace probíhá takovým způsobem, že klientská aplikace serializuje stávající požadavek na webovou službu do zprávy XML a zašle ji na server. Server tuto zprávu dekóduje, obslouží požadavek a výsledek opět serializuje do XML zprávy, kterou vrátí zpět klientovi. Struktura zprávy SOAP požadavek / odpověď začíná hlavičkou protokolu, který zprávy přenáší. SOAP není závislý na transportním protokolu, ale nejčastěji využívá protokol HTTP, SMTP nebo FTP. Vlastní SOAP zpráva je uzavřena do XML elementu Envelope. Ten definuje příjemce zprávy, způsob doručení, jmenný prostor a kódování dat. Kořenový element Envelope uzavírá další dva významné elementy, Header a Body, jak je možno vidět na schematickém Obrázek 3. Element Header není pro zprávu povinný, ale umožňuje do zprávy přidat například autentizační údaje nebo informace o transakcích. 24

38 Obrázek č. 10 Struktura SOAP zprávy Element Body slouží jako kontejner především pro přenos dat a dalších důležitých informací o volaných službách, předávaných parametrech a návratových hodnotách. Protokol SOAP je vybaven mechanismem identifikace a popisem chyb. Informace o nastalé chybě se ve zprávě přenášejí v elementu Fault, který je také součásti elementu Body Komponenty webové služby Protokol SOAP je úzce svázán s dalšími dvěma technologiemi. Jsou to WSDL (Web Services Description Language) a registr UDDI (Universal Description, Discovery and Integration). Technologie WSDL je jazyk určený pro popis rozhraní webové služby a registr UDDI slouží jako veřejně přístupný seznam dostupných webových služeb. Provázání klienta, rozhraní webové služby a registru UDDI schématicky ilustruje Obrázek 2. Vztah těchto tří technologií si můžeme popsat tak, že po dokončení vývoje webové služby je vygenerován WSDL popis jejího rozhraní. Tento popis je pak zaregistrován do registru UDDI. Naopak vývoj klienta začíná vyhledáním 25

39 v registru patřičného WSDL popisu dostupné služby, se kterou hodlá navázat spojení. Na základě informací z popisu rozhraní webové služby se následně přizpůsobí klientská část. Obrázek 11 Vztah tří základních technologií webových služeb (9) 26

40 3.3 WSDL WSDL vzniklo jako společná iniciativa firem Microsoft a IBM, které si uvědomily potřebu sjednocení jazyka používaného pro popis rozhraní webových služeb. Navazuje tak na předchozí aktivity, zejména na jazyky NASSL (Network Accessable Service Specification Language), SCL (SOAP Contract Language) a SDL (Service Description Language). WSDL je v současné době vydán jako informativní poznámka W3C a v rámci pracovní skupiny pro popis webových služeb se pracuje na vytvoření skutečného standardu. (9) WSDL je jazyk určený pro popis rozhraní webové služby. Jeden popis vždy popisuje jen jednu službu. WSDL můžeme přirovnat ke staršímu standardu, jazyka IDL, který slouží pro popis rozhraní u technologie CORBA. Na rozdíl od IDL, které se syntakticky blížilo k jazyku C, tak WSDL pro svoji reprezentaci zvolilo standardizovaný formát XML. Popis rozhraní obsahuje seznam metod poskytovaných serverem, formát jejich vstupních a výstupních parametrů. Především však obsahuje přesné informace o umístění webové služby. Struktura WSDL Struktura celého dokumentu webové služby se skládá z elementů popisujících umístění služby, způsobu navázaní dat, seznamu poskytovaných metody a seznamu použitých datových typů. Těchto několik významných elementů je zabaleno do kořeného elementu Definition. Konkrétně si tedy přiblížíme elementy Types, Message, Operation, PortType, Binding a Service. Service Největší jednotka celého popisu, reprezentuje celou webovou službu. Obsahuje informace o jedné nebo více branách (Port). Port Definuje adresu umístění webové služby. Každý z portů má vazbu (Binding). Binding Podrobnosti o protokolu pro každý port a pro navázané operace služby pomocí rozhraní (PortType). 27

41 PortType Popisuje sadu abstraktních operací (Operation) pro definici vstupu, výstupu a reakci na chybu. Každá z operací představuje jednu metodu ze seznamu poskytovaných metod webové služby. Operation Každá operace většinou definuje dvě zprávy (Message), a to vstupní a výstupní. Vstupní zpráva představuje volání metody poskytované webovou službou. Definuje seznam předávaných parametrů (Types). Výstupní zpráva obsahuje informace o výsledku zpracování vstupní zprávy. Definuje typ (Types) návratové hodnoty. Message Zprávy odpovídajících operací. Types definuje seznam všech datových typů použitých webovou službou. Definují se podle XML schématu, které obsahuje základní datové typy, jako je textový řetězec, celá i desetinná čísla, binární data, logické hodnoty a datum a čas. Je možné také definovat komplexnější datové typy, složením z několika základních. Obrázek č. 12 Struktura dokumentu WSDL. 28

42 3.4 UDDI Registr UDDI je v přeneseném významu jakýsi telefonní seznam všech registrovaných webových služeb. Nabízí nejen informace o registrovaných službách, ale i informace o jejich registrátorech. Standardním vybavením každého registru je pak několik způsobů, jak v tom telefonním seznamu vyhledávat. Umístění webové služby do registru UDDI není podmínkou a nemá žádný vliv na její funkčnost. Paradoxně je registr UDDI svým způsobem také webová služba, která poskytuje informace o jiných službách. Proto je také možné s registrem navázat vzdálené spojení prostřednictvím protokolu SOAP. Rozdělení UDDI UDDI registr je rozdělen na tři části. Stejně tak, jako se celému registru přeneseně přezdívá telefonní seznam, tak i jeho tři části se přeneseně nazývají Bílé, Zlaté a Zelené stránky. Rozdělení ilustruje následující obrázek (Obrázek č. 11. Obrázek č. 13 Struktura registru UDDI 29

43 Bílé stránky tento seznam obsahuje informace o registrátorovi webové služby, jako například adresa, kontaktní údaje, obor působnosti registrátora a další upřesňující identifikátory Zlaté stránky seznamy registrovaných služeb, seskupené podle registrátora. Zelené stránky podrobný popis rozhraní webové služby registrátorem. Obsahuje WSDL popis rozhraní registrované webové služby. 3.5 Zabezpečení Předností webových aplikací je jejich snadná dostupnost. Tato výhoda však na druhé straně představuje i velké bezpečnostní riziko. Proto je důležité věnovat tomuto tématu pozornost. V následujících kapitolách si shrneme zabezpečení internetového protokolu a webové služby Zabezpečující protokol HTTPS Protokol HTTPS (Hypertext Transfer Protocol Secure) je zabezpečovacím síťovým protokolem, založený na principech síťového protokolu HTTP. Data přenášená přes protokol HTTPS nejsou přenášená jako prostý text, jako je tomu u HTTP, ale jsou šifrována pomocí SSL (Secure Sockets Layer) nebo TLS (Transport Layer Security) (23). Standardním portem na straně serveru bývá 443. (29) Protokol HTTPS využívá asymetrické šifrování, takže server musí vlastnit certifikát. Certifikát je v České republice vydáván a podepisován certifikační autoritou ICA nebo Českou poštou. Nekomerční způsob zajištění certifikátu je možné zařídit tak, že vydavatel si sám sobě certifikát podepíše (self-signed certificate). Self-signed certifikáty vyhodnotí internetový prohlížeč jako nedůvěryhodné a bude před nimi uživatele před varovat. Uživatel musí pro přijetí certifikátu potvrdit, že souhlasí s přidáním veřejného klíče do úložiště webového prohlížeče (příp. úložiště certifikátů operačního systému). Protokol díky svému zabezpečení zaručuje ochranu proti sledování paketů (packet-sniffingu) a sledování komunikace mezi dvěma uzly (man in the middle). 30

44 Předpokládáme, že zabezpečující protokol HTTPS bude uveden do provozu až po odladění všech nedokonalostí nového systému. Mezitím bude aplikace připojena k databázi smyšlených dat a tak se nebudeme muset obávat úniku citlivých dat. Na téma zabezpečení bude pravděpodobně vypsána samostatná práce Zabezpečení webové služby Protokol SOAP, ve své základní specifikaci, bohužel zabezpečení na úrovni zprávy vůbec neřešil. SOAP na věc zabezpečení pohlížel takovým způsobem, že je to věc přenosu a že by ji měl obstarat síťový protokol. Tento způsob řešení problému byl zcela nepostačující, obzvláště se vzrůstajícím trendem vývoje aplikací orientovaných na webové služby. Proto byla, na základě standardů W3C (World Wide Web Consortium), navržena rozšiřující specifikace současného protokolu SOAP. WS-Security (Web Services Security), jak byla tato rozšiřující specifikace nazvána, pochází z dílny významných společností jako například IBM, Microsoft, Sun nebo VeriSign. Definuje jakým způsobem použít stávající a dostupné mechanismy pro zabezpečení, jako je například digitální podpis nebo kryptografické zabezpečení XML zpráv. Dále tato specifikace definuje obecný rámec pro zabezpečení (Security Token), kterým je následně rozšířena hlavička SOAP zprávy (14). WS-Security předepisuje jakým způsobem zaručit, aby si SOAP komunikace zachovala důvěryhodnost, nepopiratelnost a integritu. 31

45 4. Tutoriál Praktická část mé diplomové práce spočívala ve zprostředkování technické podpory mladším kolegům, kteří se zabývali dílčími projekty spojenými s Centrem služeb. S kolegy jsem konzultoval použití architektury orientované na služby, jak po teoretické, tak i po praktické stránce. Proto jsem i tuto práci rozdělil na dvě části. Na část teoretickou (kapitola 3), kde popisuji princip funkce servisně orientovaných technologií a část praktickou (příloha 1), kde na konkrétních příkladech vysvětluji výše popsané techniky. Důvodem pro umístění praktické části mezi přílohy je, aby časté výpisy zdrojových kódů nenarušovali celistvost textu. Kolegové Králík (11) a Vaněk (26), zabývající se datovým úložištěm a aplikační logikou pro Centrum služeb, se rozhodli použít pro implementaci svých částí jazyk PHP, proto pojednává přiložený tutoriál o technologii SOAP v prostředí PHP. I když má SOAP v jazyku PHP výbornou podporu, tak mohu dle vlastních zkušeností potvrdit, že krok k naprogramování první funkční miniaplikace nemusí být jednoduchou a intuitivní záležitostí. Při studii vhodných pokladů, a to jak v knižní tak i elektronické verzi, jsem se setkával s kvalitními teoretickými výklady principů funkcionality, doplněné o množství XML výpisů komunikace. Bohužel jsem však postrádal praktické ukázky základní práce vhodné pro vývojáře začínající s touto technologií. Proto je tutoriál postaven na jednoduchých příkladech, které jsou postupně rozšiřovány o složitější prvky. Tutoriál začíná všeobecnými pravidly, které je vhodné dodržovat, aby se předešlo zbytečným chybám při navázání komunikace. Dále následuje přehled tříd, které jsou spojené s protokolem SOAP. Ty nejdůležitější jsou pak rozebrány podrobněji. Jedná se zejména o třídy určené pro návrh klienta a serveru. Zároveň je při jejich použití názorně ukázáno, jak se generuje a pracuje s WSDL popisem rozhraní webové služby. PHP nemá nativní podporu pro generování WSDL popisu, proto je také tutoriál doplněn o popis skriptu, který tuto činnost zajišťuje. Tento skript je uložen s ostatními zdrojovými soubory všech uvedených příkladů na přiloženém CD. Na závěr je uvedeno, jak se pracuje s uživatelsky definovanými datovými typy a jak stahovat nebo ukládat na server data prostřednictvím protokolu SOAP. 32

46 5. Závěr Tato práce je pouhým začátkem dlouholetého vývoje. Nová aplikace se bude průběžně rozvíjet a testovat v dalších semestrech. Teprve až po otestování a odstranění nalezených vad a nedostatků se nový systém nasadí do ostrého provozu. Za tímto procesem se ještě bude skrývat velký rozsah práce, na kterém se postupně vystřídají další skupiny vývojářů a testerů. V letošním roce jsme, započetím této práce, uzavřeli kapitolu jednoúčelové aplikace Studentova berlička a vydali se novým směrem k vytvoření propracovanější aplikace, která bude snadno spravovatelná a rozšiřitelná. Navíc bude dbát na ochranu citlivých osobních údajů. Součástí zadání této práce byla i implementace webového rozhraní, které se mělo závěrem letního semestru otestovat s paralelně vyvíjenou externí aplikací pro generování testů (12). Bohužel se nakonec, na základě pokynů vedoucího práce, vývoj modulu pro generování testů zaměřil spíše na rozšíření své lokální funkčnosti. K obohacení tohoto modulu o schopnost vzdálené komunikace do současné doby tedy nedošlo. Z těchto důvodů není možné závěrem této práce prezentovat funkční model komunikace. Podle současného plánu by modul s generátorem testů měl být dokončen během letních prázdnin. V nadcházejícím zimním semestru (2010/2011) by pak měl být uveden do provozu. Ostatní moduly ještě vyžadují před vlastním nasazením přepracování. Na základě těchto skutečností byla oproti původnímu plánu implementační část této práce pojata jako tutoriál, který je připojen jako příloha a jeho doprovodné zdrojové soubory jsou uloženy na CD. 5.1 Navazující práce Po úspěšném nasazení jádra s aplikační logikou a webového rozhraní, založeného na technologii SOAP, popsaného v této práci, bych pro další vývoj doporučil zadání několika navazujících projektů. Jednalo by se o práce zaměřené na: monitoring jádra a rozhraní, a to jak z bezpečnostního, tak i z uživatelského hlediska, administrační rozhraní pro jádro a datové úložiště, projekt zabývající se výhradně zabezpečením a kryptografií, a to nejen 33

47 komunikace, ale i celé aplikace, které by se ztotožňovalo s politikou zabezpečení FIT projekt spolupracující přímo s jádrem, respektive s datovým úložištěm, který by zajistil propojení datových úložišť Centra služeb a univerzitní komponentou KOS. 5.2 Týmová spolupráce Zásadní zkušeností, kterou jsem získal na tomto projektu, bylo především jednáním a práce s kolegy v týmu. Projektům spojeným se Studentovou berličkou jsem se věnoval nepřetržitě po celou dobu magisterského studia. Seznámil jsem se s moderními technologiemi webový služeb, vyzkoušel jsem si jejich implementaci a další jejich vlastnosti. Tyto nabyté zkušenosti jsem pak předával svým mladším kolegům, které jsem vedl. Pevně věřím, že projekt Centrum služeb, navazující na Studentovu berličku, brzy dosáhne svých cílů a povede ke zlepšení a zefektivnění výuky. 34

48 6. Použité zkratky, vysvětlení pojmů Ajax ( Asynchronoust JavaScript and XML ) - technologie vývoje interaktivních webových aplikací. CORBA ( Common Object Request Broker Architecture ) - Standard CORBA je určen pro tvorbu distribuovaných objektově orientovaných aplikací. ČVUT- České vysoké učení technické v Praze. FEL - Fakulta elektrotechnická. FIT Fakulta informačních technologií GUI ( Graphical User Interface ) - grafické uživatelské rozhraní. Grafické prostředí webového systému. HTML ( HyperText Markup Language ) - značkovací jazyk pro tvorbu webových stránek. HTTP ( Hyper Text Transfer Protokol ) - internetový protokol vytvořený původně pro výměnu hypertextových dokumentů ve formátu HTML. V současné době je používán i pro přenos dalších informací. HTTPS - nadstavba internetového protokolu HTTP, která poskytuje zvýšenou bezpečnost před odposloucháním či podvržením dat. IDL ( Interface Description Language ) - jazyk určený pro popis rozhraní distribuovaných objektů, využitém systému COBRA. IIOP ( Internet Inter-ORB Protocol ) - síťový protokol, který definuje komunikaci ORB komponent, využívaných v systému CORBA. JVM ( Java Virtual Machine ) - sada počítačových programů a datových struktur, která využívá modul virtuálního stroje ke spuštění dalších počítačových programů a skriptů vytvořených v jazyce Java. MVC ( Model View Controler ) - softwarová architektura. MySQL - multiplatformní datové úložiště. Komunikace probíhá pomocí jazyka SQL. PHP ( Hypertext Preprocesor ) - Skriptovací programovací jazyk pro tvorbu dynamických webových stránek. REST (Representational State Transfer) - architektura rozhraní, navržená pro distribuované prostředí. RMI ( Remote Method Invocation ) model vzdálených objektů v jazyku Java. 35

49 RPC ( Remote Procedure Call ) technologie volání procedur, které můžou být uloženy na jiném místě než je umístěn sám volající program SOAP ( Simple Object Access Protocol ) protokol webové služby. SSL ( Secure Sockets Layer ) zabezpečují protokol transportní vrstvy. TLS ( Protokol Transport Layer Security ) předchůdce SSL. UDDI ( Universal Discovery Description and Integration) registr webových služeb. W3C (World Wide Web Consortium) - mezinárodní konsorcium, jehož členové společně s veřejností vyvíjejí webové standardy pro World Wide Web. WSDL ( Web Servisce Description Language ) jazyk pro popis webové služby. WS-Security ( Web Services Security ) zabezpečující rozšíření webové služby. XML (extensible Markup Language) obecný značkovací jazyk. 36

50 7. Obsah CD / readme.txt - soubor se základními informacemi o CD -- Text Diplomova_prace_Ludek_Chmurovsky.pdf Diplomova_prace_Ludek_Chmurovsky.doc -- Zdrojové soubory -- Priklad_1 Základní režim -- Priklad_2 Výpis XML komunikace -- Priklad_3 Obsluzna trida -- Priklad_4 WSDL režim -- Priklad_5 Uživatelky definovaný datový typ -- Priklad_6 Přenos binárních dat 37

51 38

52 8.Použitá literatura [1]. BRAIN E, Travis. XML a SOAP Programování serverů BizTalk TM. 1. vyd. Computer Press, 2000.ISBN X [2]. FIŠER, Jakub. Bakalářská práce Studentova Berlička II management semestrálních prací, [3]. HTTPS. Wikipedia.org [on-line] Dostupný z WWW: < [4]. HUNKA, Jiří. Diplomová práce Studentova Berlička, 2010 [5]. HUNKA, Jiří. Bakalářská práce Studentova Berlička, 2007 [6]. JANEČEK, Jan. Skripta ČVUT - FEL Distribuované systémy, 2000 [7]. Klient - server. Wikipedia.org [on-line]. Dostupný z WWW: < [8]. KOSEK,Jiří. PHP a XML. 1. vyd. Grada Publishing, a.s., ISBN [9]. KOSEK, Jiří. Inteligentní podpora navigace na WWW [on-line]. Dostupný z WWW: < [10]. KOTEK, Petr. Bakalářská práce Studentova Berlička II automatické vyhodnocování testů, [11]. KRÁLÍK, Tomáš. Bakalářská práce Studentova Berlička III databáze nezávislého jádra, [12]. KRAML, František. Bakalářská práce Studentova Berlička III generátor testů a písemek, [13]. LAMPA, Petr. CORBA a IIOP [on-line]. Dostupný z WWW: < [14]. LASOŇ, Martin. Zabezpečení webových služeb [on-line]. Dostupný z WWW: < [15]. LEŠTINA, Petr. Zaostřeno na web services - Jak fungují? [on-line]. Dostupný z WWW: < 39

53 [16]. MALÝ, Martin. REST: architektura pro webové API. [on-line]. Dostupný z WWW: < [17]. Peer-to-Peer. Wikipedia.org.[on-line]. Dostupný z WWW: < [18]. SACHA, Marek. Bakalářská práce Studentova Berlička II - podpora zásuvných modulů, [19]. Secure Sockets Layer. Wikipedia.org [on-line]. Dostupný z WWW: < [20]. Simple Object Access Protocol. Wikipedia.org [on-line] Dostupný z WWW: < [21]. ŠTUMPF, Jindřich. Webové služby a XML [on-line]. Dostupný z WWW: < [22]. Studentova berlička. Webové rozhraní informačního systému. Dostupný z WWW: < >. [23]. Transport Layer Security. Wikipedia.org [on-line]. Dostupný z WWW: < [24]. SKLAR, David. PHP 5 moduly, rozšíření a akcelerátory. 1. vyd. Zoner software, 2005.ISBN [25]. SHU-WAI Chow. Programujeme Mashup aplikace pro Web 2.0 v PHP. 1. vyd. Computer Press, ISBN [26]. VANĚK, Jaromír. Bakalářská práce Studentova Berlička III jádro aplikace, [27]. Vícevrstvá architektura: tenký, tlustý a chytrý klient [on-line]. Dostupný z WWW: < [28]. WOLTER, Roger. Základy xml webových služeb [on-line]. Dostupný z WWW: < [29]. Zabezpečující protokol HTTPS [on-line]. Dostupný z WWW: < 40

54 Příloha 1- Tutoriál V tomto tutoriálu si postupně ukážeme praktickou implementaci webové služby SOAP v prostředí PHP. Nejprve si probereme nejzákladnější konstrukci klienta a serveru a ukážeme si, jakým způsobem se mezi nimi naváže spojení a jak si předat data. Dále si uvedené příklady rozšíříme o využití služeb jazyka WSDL. Jednotlivé příklady jsou doplněny ukázkami kódu a obrazovkami s grafickým výstupem. Kompletní příklady naleznete na přiloženém CD. Kódovaní Při navazování komunikace je možné narazit na problém s kódováním dat. Řetězce dat obsahující diakritiku, příp. jiné nestandardní znaky, mohou způsobovat chyby v SOAP komunikaci. Abychom se tohoto problému vyvarovali, je nutné použít na všech vrstvách aplikace shodné kódování. Použijeme tedy kódování UTF-8, které je univerzální a podporuje většinu jazyků. Platí to pro datové úložiště, HTML, PHP, ASPX skripty, dokonce i pro nastavení některých vývojářských nástrojů. 41

55 SOAP v PHP Technologie SOAP byla vybrána z mnoha dalších odlišných způsobů vzdálené komunikace z důvodu, že pro ni nalezneme v jazyku PHP 5 vestavěnou podporu. Rozhraní (interface) se stejnojmenným názvem SOAP umožňuje velice jednoduše a přehledně vytvářet klientské i serverové části webových služeb. Dokonale odstíní složité zpracovávání (parsování) XML zpráv nebo vytváření soketů pro navázání komunikace se serverem.(3) PHP třída SoapClient SoapServer SoapFault SoapHeader SoapParam Popis Třída SoapClient poskytuje klienta pro verze SOAP 1.1 a SOAP 1.2. Instance je schopná pracovat ve dvou režimech. Režim WSDL a režim ne-wsdl. Třída SoapServer poskytuje server pro verze SOAP 1.1 a SOAP 1.2. Může být použit s nebo bez služby WSDL popisu. Třída SoapFault poskytuje hlášení o chybách při zpracovávání požadavků. Třída SoapHeader poskytuje možnost vložení směrovací dat do hlaviček zpráv. Třída SoapParam reprezentuje předávané parametry v SOAP službách. SoapVar Třída SoapVar reprezentuje proměnné nebo objekty v SOAP službách. Tabulka č. 1 Seznam a popis tříd webové služby SOAP v PHP. (4) 42

56 Třída SoapClient Třída SoapClient poskytuje několik málo metod, které jsou uvedeny v následující tabulce. U Každé z metod je uvedený popis funkčnosti a formální zápis. Metoda Popis call getfunctions getlastrequest Headers getlastresponse getlastrequest- getlastresponse- Headers gettypes setcookie setlocation setsoapheaders SoapClient Volání SOAP funkce. public mixed SoapClient:: call ( string $function_name, string $arguments ) Vrátí seznam dostupných SOAP funkcí, popsaných jazykem WSDL. Tuto funkci je možné použít jen ve WSDL režimu. public array SoapClient:: getfunctions ( void ) Vrací poslední SOAP požadavek ve formátu XML. Tuto metodu je možné použít jen za předpokladu, že instance třídy SoapClient byla vytvořena s parametrem options 'trace' => 1.public string SoapClient:: getlastrequest ( void ) Vrací poslední SOAP hlavičku požadavku ve formátu XML. Tuto metodu je možné použít jen za předpokladu, že instance třídy SoapClient byla vytvořena s parametrem options 'trace' => 1.public string SoapClient:: getlastrequestheaders ( void ) Vrací poslední SOAP odpověď ve formátu XML. Tuto metodu je možné použít jen za předpokladu, že instance třídy SoapClient byla vytvořena s parametrem options 'trace' => 1 public string SoapClient:: getlastresponse ( void ) Vrací poslední SOAP hlavičku odpověď ve formátu XML. Tuto metodu je možné použít jen za předpokladu, že instance třídy SoapClient byla vytvořena s parametrem options 'trace' => 1. public string SoapClient:: getlastresponseheaders (void ) Vrátí seznam použitých datových typů popsaných jazykem WSDL. Tuto funkci je možné použít jen ve WSDL režimu. public array SoapClient:: gettypes ( void ) Definuje cookie, které bude odesláno spolu s požadavkem SOAP. public void SoapClient:: setcookie ( string $name [, string $value ] ) Explicitně nastavuje umístění webové služby. Ekvivalentní nastavení umístění webové služby je možno zadat v konstruktoru instance SoapClient. public string SoapClient:: setlocation ([ string $new_location ] ) Nastavuje pole objektů SoapHeader, které budou vkládány do hlavičky zpráv. public bool SoapClient:: setsoapheaders ([ mixed $soapheaders ] ) Konstruktor SoapClient::SoapClient( mixed $wsdl [, array $options ] ) Tabulka č. 2 Seznam a popis metod třídy SoapClient. (4) 43

57 WSDL re im Některé metody z uvedeného seznamu v tabulce č.2 vyžadují parametr WSDL. WSDL popis je XML dokument přesně definované struktury 2. Ačkoliv nalezneme ve standardních knihovnách jazyka PHP třídy pro práci s XML dokumenty, tak podpora pro generování WSDL popisu webové služby zde bohužel chybí. Pokud chceme provozovat webovou službu s tímto popisem, tak si jednak můžeme XML dokument sestavit staticky, dle pravidel W3C 3. Tento způsob je však samozřejmě nepružný ke změnám v poskytovaných metodách. Nebo je možné využít služeb některých PHP frameworků zaměřených na webové služby. Konstruktor Jako první si pozornost zaslouží konstruktor třídy. Konstruktor může být použit pro vytvoření instance, která bude pracovat v režimu WSDL nebo v režimu ne- WSDL. V režimu WSDL je do konstruktoru zadán parametr s adresou WSDL popisu vzdálené webové služby, se kterou chceme, aby klient navázal spojení. Instance klienta si automaticky zjistí, jaké služby server nabízí, jaké parametry jsou potřeba a jakých jsou datových typů. V režimu ne-wsdl se hodnota parametru s adresou WSDL popisu nahradí hodnotou null a specifikuje se pouze parametr s umístěním vzdálené webové služby. Jak je patrné, tak režim WSDL je mnohem automatizovanější. Je vhodnější pro složitější webové služby. Ne-WSDL režim se zpravidla vyskytuje u jednodušších služeb, kde by bylo zbytečné programovat službu pro WSDL popis. Výhoda tohoto režimu spočívá i v menší komunikační režii spojené se zpracováním (parsováním) WSDL dokumentu. Příklad č. 1 ukazuje vytvoření instancí klienta pro oba režimy použití WSDL. Úplný seznam možných parametrů konstruktoru lze nalézt v manuálu PHP

58 <?php /* * Konstruktor pro WSDL režim */ $client = new SoapClient(some.wsdl, array('location' => " => "ClientPart")); /* * Konstruktor pro ne-wsdl režim */ $client = new SoapClient(null, array('location' => " 'uri' => "ClientPart"));?> Příklad č. 1 Konstruktor třídy SoapClient (Priklad_1). Získání informací o serverové webové službě V předchozím odstavci jsme si vysvětili, v jakých režimech může být vytvořena instance třídy SoapClient. Nyní se budeme věnovat dalším metodám, které poskytuje třída SoapClient. Následující metody vyžadují, pro korektní funkčnost, výhradně režim s WSDL popisem. Jsou to metody getfunctions a gettypes. Vrací seznam metod poskytovaných serverem a popis všech používaných parametrů. Je tak možné si automaticky vygenerovat klientské zdrojové soubory s hlavičkami dostupných metod, bez obav z nesprávně uvedených metod nebo jejich parametrů. <?php $client = new SoapClient('some.wsdl'); /* Ukázka výpisu dostupných metod serveru */ var_dump($client-> getfunctions()); /* Ukázka výpisu použitých parametrů */ var_dump($client-> gettypes());?> Příklad č. 2 Výpis metod serveru a použitých parametrů (Priklad_2).(4) 45

59 Seznam předdefinovaných konstant 5 pro rozšíření jazyka PHP a standardních datových typů 6 je dostupný v PHP manuálu. Velice důležité je na tomto místě upozornit na fakt, že jazyk PHP není striktně typový (není potřebné deklarovat datový typ každé definované proměnné). Je však nutné si uvědomit, že k námi implementovanému serveru mohou přistupovat i klienti vystavění v jiných jazycích nebo naopak. Volání a použití metod webové služby Volání metod webové služby je velmi snadné. Metody serveru voláme stejným způsobem, jako by se jednalo o metody třídy SoapClient.(2) Jak získat informace o poskytovaných službách, včetně jejich parametrů, jsme si ukázali v minulé kapitole na příkladu 2. Příklad použití volání vzdálené metody si názorně ukážeme na dalším příkladě. Předpokládejme, že naše webová služba poskytuje jednu metodu getdatum, která vrací textovou informaci o aktuálním času a datu. V našem příkladě umístíme na webovou stránku jedno pole input (obrázek č.1) a načteme do něj řetězec s datem a časem, který nám poskytne vzdálená metoda getdatum. Začneme konstrukcí instance třídy SoapClient, v níž zadáme potřebné parametry s umístěním webové služby. Vzdálenou metodu pak zavoláme standardním způsobem $client->getdatum(). <?php /* * Konstuktor */ $client = new SoapClient(null, array( 'location' => " 'uri' => "ClientPart")); /* * Volani vdálené metody getdatum */ echo "<input type=\"text\" value=\"".$client->getdatum()."\">";?> Příklad č. 3 Volání vzdálené metody (Priklad_1)

60 Obrázek č. 1 Ukázka příkladu 1 (Priklad_1) Zobrazení komunikace Poslední skupinou metod, které poskytuje třída SoapClient, jsou metody umožňující nahlédnout do výměny XML zpráv mezi klientem a serverem. Jsou to metody getlastrequest a getlastresponse. Obě metody vrací poslední XML zprávu s požadavkem klienta, respektive s odpovědí serveru. Je tak možné si ověřit skutečná data předávaná mezi klientem a serverem, a lépe tak pochopit princip funkčnosti webové služby SOAP. Ukázku, v jakém tvaru vracejí tyto metody XML zprávy, je možné vidět na obr. 2. Úplný výpis požadavku od klienta a odpovědi ze serveru je uveden v příkladu 4, resp

61 Obrázek č. 2 Zobrazení SOAP komunikace (Priklad_3) <?xml version="1.0" encoding="utf-8"?> <SOAP-ENV:Envelope... > <SOAP-ENV:Body> <ns1:getdatum/> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Příklad č Výpis XML zprávy posledního požadavku klientskou metodou getlastrequest <?xml version="1.0" encoding="utf-8"?> <SOAP-ENV:Envelope... > <SOAP-ENV:Body> <ns1:getdatumresponse> <return xsi:type="xsd:string">29/10/ :51:04 </return> </ns1:getdatumresponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Příklad č Výpis XML zprávy poslední odpovědi klientskou metodou getlastresponse 48

62 Třída SoapServer Třída SoapServer poskytuje o něco méně metod. Jejich názvy, stručný popis a formální zápis jsou uvedeny v následující tabulce. Postupně si v této kapitole ukážeme, jak si vytvořit vlastní server webové služby a popíšeme si, jak pro naši službu vytvořit a zveřejnit WSDL popis. Metoda addfunction addsoapheader Fault getfunctions Handle setclass setobject SoapServer Popis Přidá jednu nebo více funkcí k registru SOAP funkcí. public void SoapServer::addFunction ( mixed $functions ) Přidá hlavičku, která bude vkládána do odpovídajících zpráv. SoapServer::addSoapHeader ( SoapHeader $object ) Odešle klientovi s aktuálním požadavkem odpověď označující chybu. public void SoapServer::fault ( string $code, string $string [, string $actor [, string $details [, string $name ]]] ) Vrací seznam definovaných funkcí serveru. public array SoapServer::getFunctions ( void ) Zaregistruje SOAP požadavky na funkce serveru. public void SoapServer::handle ([ string $soap_request ] ) Zaregistruje všechny metody dané třídy SOAP registru funkcí serveru. public void SoapServer::setClass ( string $class_name [, string $args ] ) Definuje objekt, který bude spravovat SOAP komunikaci. public void SoapServer::setObject ( string $object ) Konstruktor SoapServer::SoapServer( mixed $wsdl [, array $options ] ) Tabulka č. 3 Seznam a popis metod třídy SoapClient. (3) 49

63 Konstruktor Vytvo ení serveru webové slu by je podobně snadné jako u klienta. Stejně jako u konstruktoru t ídy SoapClient, tak i u konstruktoru serveru si m eme vybrat práci v jednom ze dvou re im. Buďto s WDSL popisem, pak do konstruktoru stačí uvést jen adresu WSDL popisu. V opačném p ípadě, kdy k na í slu bě nepot ebujeme WSDL popis, vyplníme do parametru pro adresu WSDL hodnotu null. V tom p ípadě musíme konstruktor doplnit minimálně o parametr uri, který definuje jmenný prostor (namespace) serveru. <?php /* * Konstruktor pro WSDL režim */ $server = new SoapClient(some.wsdl); /* * Konstruktor pro ne-wsdl režim */ $server = new SoapClient(null, array('uri' =>"ServerPart"));?> Příklad č. 6 Konstruktor třídy SoapServer Registrování metod do webové slu by Primární funkcí ka dého serveru webové slu by je poskytování svých metod. V této kapitole si popí eme dva zp soby, jak je mo né zaregistrovat na e metody jednotlivě s vyu itím funkce addfunction, pop ípadě jak registrovat rovnou celou skupinu metod obalených do jedné t ídy. Pro tyto účely má roz í ení jazyka PHP k dispozici metodu addclass. V prvním ukázkovém p íkladě č. 7 si vytvo íme jednoduchou webovou slu bu, která bude poskytovat t i metody. P íklad začíná kódem poskytovaných funkcí, následuje vytvo ení instance t ídy SoapServer. Postupně zaregistrujeme jména funkcí do webové slu by a nakonec ná p íklad zakončíme obslu nou metodou 50

64 handle. Po spu tění serverového skriptu se program zastaví na metodě handle, která čeká na obslou ení p íchozích SOAP po adavk. Ná první ukázkový p íklad si trochu pozměníme a uká eme si, jak zaregistrovat rovnou celou t ídu s metodami, které poskytuje (p íklad č 8). Poskytované metody nejprve p esuneme do nově vytvo ené t ídy MyClass. Tuto t ídu pak zaregistrujeme pomocí metody setclass. <?php Function getdatum() { $datum = Date("j/m/Y H:i:s", Time()); return $datum; } Function foo_1() { /*... */ } Function foo_2() { /*... */ } /* * Konstruktor v režimu ne-wsdl */ $server = new SoapServer(null, array('uri' =>"ServerPart")); /* * Zaregistrování metod, poskytovaných serverem */ $server->addfunction("getdatum"); $server->addfunction("foo_1"); $server->addfunction("foo_2"); /* * Obsloužení požadavků */ $server->handle();?> Příklad č. 7 Zaregistrování metod serveru. 51

65 <?php /* * Registrovaná třída metod */ class MyClass { Function getdatum() { $datum = Date("j/m/Y H:i:s", Time()); return $datum; } } /* * Konstruktor */ $server = new SoapServer(null, array('uri' =>"ServerPart")); /* * Registrace třídy s poskytivanými metodami */ $server->setclass("myclass"); /* * Obsloužení požadavků */ $server->handle();?> Příklad č. 8 Zaregistrování metod serveru (Priklad_3) 52

66 WSDL generátor Na přiloženém CD, v sekci související s tímto tutoriálem, nalezneme skupinu tříd, která je schopná velice snadně vygenerovat WSDL popis. Zaručuje stálou aktuálnost WSDL popisu. Generování se provádí zcela automaticky, a proto dokáže velice pružně reagovat na jakoukoliv změnu v poskytovaných metodách serverem. Než přistoupíme k popisu funkčnosti přiloženého WSDL generátoru, je důležité věnovat trochu pozornosti správnému nastavění konfiguračních souborů serveru tak, aby nedocházelo k ukládání WSDL popisu do vyrovnávacích pamětí. Přiložený WSDL generátor je implementovaný v jazyku PHP, z čehož plyne výhoda, že generátor může být nahrán na webový server a zajišťovat stálou aktuálnost WSDL popisu webové služby. Generátor sestavuje popis registrované třídy na základě lexikografické analýzy anotací, uvedených v komentáři poskytovaných metod. Pro správnou funkčnost generátoru je tedy naprosto nutné dodržet přesný formát komentářů. Ukázka správně okomentované třídy je uvedena v následujícím příkladě (příklad č. 9). Komentář začíná stručným popisem funkčnosti metody, následuje jeden prázdný řádek. Pod prázdným řádkem by měl následovat výčet všech parametrů komentované metody, a to v přesném pořadí, v jakém jsou uvedeny v deklaraci metody. Jako poslední v pořadí se uvádí popis a typ návratové hodnoty. 53

67 <?php /* * Popis metody foo. * string $parametr1 Popis parametru 1 int $parametr1 Popis parametru 2 User Popis návratové hodnoty * internal soaprequires User */ public foo($parametr1, $parametr2){ } User user = new User($parametr1, $parametr2); return user;?> Příklad č. 9 Ukázka nastavení parametrů v souboru wsdl.php. Na příkladě č. 9 jsme si ukázali, jaké zásady psaní kódu je nutné dodržet při použití přiloženého WSDL generátoru. Konečně se dostáváme přímo ke skriptu 7, který přímo do okna prohlížeče vypíše popis naší webové služby. Příklad č. 10, který následuje, ukazuje strukturu přiloženého souboru wsdl.php. Tento skript slouží jako rozhraní generátoru. V tomto souboru se postupně nastaví cesta k registrované třídě s poskytovanými metodami, jmenný prostor a nakonec cesta k serverovému skriptu. Další přiložené soubory není potřeba pozměňovat. 7 wsdl.php 54

68 <?php header("content-type: application/xml"); /* * Připojení tříd pro definici a vygenerování WSDL popisu */ require_once("wsdl/wsdldefinition.php"); require_once("wsdl/wsdlwriter.php"); $def = new WsdlDefinition(); $def->setdefinitionname("mydefinitionname"); /* * Nastavení cesty k třídě, ze které se generuje popis. * Soap server registruje pouze jednu třídu, proto i wsdl popis * se generuje jen z jedné třídy */ $def->setclassfilename("businesstier/myclass.php"); $def->setwsdlfilename("mywsdlfilename.wsdl"); $def->setnamespace("mynamespace"); /* * Nastavení cesty k souboru s registrující webovou službu */ $def->setendpoint (" /* * Výpis XML popisu */ $wsdl = new WsdlWriter($def); print $wsdl->classtowsdl();?> Příklad č. 10 Ukázka nastavení parametrů v souboru wsdl.php (Priklad_5). 55

69 Obrázek 3 Zobrazení WSDL popisu (Priklad_5). 56

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services 13. Webové služby. K čemu slouží? Popis a vyhledávání služeb. Co je a k čemu slouží orchestrace a choreografie služeb. Technologie pro implementaci služeb 1. Webové služby. K čemu slouží? Definice WS -

Více

Úvod do Web Services

Úvod do Web Services Úvod do Web Services Základy webových služeb a jejich implementace na platformě OS/2 Jarda Kačer jarda@kacer.biz Český Warpstock 2008 Brno, 20.-21.9.2008 Co je to webová služba? Část business logiky přístupná

Více

Michal Krátký, Miroslav Beneš

Michal Krátký, Miroslav Beneš Tvorba informačních systémů 1/20 Tvorba informačních systémů Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2008/2009 Tvorba informačních

Více

Tvorba informačních systémů

Tvorba informačních systémů 9. Tvorba informačních systémů Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2007/2008 c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba

Více

Common Object Request Broker Architecture

Common Object Request Broker Architecture Common Object Request Broker Architecture Tvorba aplikací, jejichž komponenty budou komunikovat přes počítačovou síť Programátor jedné aplikace volá metody vzdálených objektů podobně jako u sebe lokální

Více

X33EJA Web Services. Martin Ptáček, KOMIX s.r.o.

X33EJA Web Services. Martin Ptáček, KOMIX s.r.o. X33EJA Web Services Martin Ptáček, KOMIX s.r.o. ptacek@komix.cz Copyright 2007 KOMIX Copyright s.r.o. 2007 KOMIX s.r.o. 1. Obsah Historie Co jsou Web Services? Co je to SOA? JAX-WS (Java API for XML Web

Více

Softwarové komponenty a Internet

Softwarové komponenty a Internet Softwarové komponenty a Internet Doc. Dr. Ing. Miroslav Beneš Katedra informatiky FEI VŠB-TU Ostrava Miroslav.Benes@vsb.cz Obsah přednášky Motivace Vývoj přístupů k tvorbě programů Definice komponenty

Více

Komponentový návrh SW

Komponentový návrh SW Komponentový návrh SW Komponentový návrh SW Komponenty jsou kompletně specifikované pomocí interface Jejich funkčnost je nezávislá na programovacím jazyku a mohou být integrované do toho samého systému

Více

Požadavky pro výběrová řízení TerraBus ESB/G2x

Požadavky pro výběrová řízení TerraBus ESB/G2x Dokument: Převod dat TerraBus ESB/G2x Požadavky pro výběrová řízení TerraBus ESB/G2x Obsah 1. Účel dokumentu... 2 2. Použité termíny a zkratky... 2 3. Požadavky... 3 Účel dokumentu Účelem tohoto dokumentu

Více

Referenční rozhraní. Jiří Kosek. Ministerstvo informatiky ČR. ISSS 25. března 2003

Referenční rozhraní. Jiří Kosek. Ministerstvo informatiky ČR. ISSS 25. března 2003 Jiří Kosek Ministerstvo informatiky ČR ISSS 25. března 2003 Požadavky na RR!zákon 365/2000 Sb.!RR je souhrnem opatření, která vytvářejí jednotné integrační prostředí informačních systémů veřejné správy!rr

Více

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita Aktivní webové stránky Úvod: - statické webové stránky: pevně vytvořený kód HTML uložený na serveru, ke kterému se přistupuje obvykle pomocí protokolu HTTP (HTTPS - zabezpečený). Je možno používat i různé

Více

RESTful API TAMZ 1. Cvičení 11

RESTful API TAMZ 1. Cvičení 11 RESTful API TAMZ 1 Cvičení 11 REST Architektura rozhraní navržená pro distribuované prostředí Pojem REST byl představen v roce 2000 v disertační práci Roye Fieldinga, zkratka z Representional State Transfer

Více

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ

MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ M. Sysel, I. Pomykacz Univerzita Tomáše Bati ve Zlíně, Fakulta aplikované informatiky Nad Stráněmi 4511, 760 05 Zlín, Česká republika

Více

TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY

TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY Příloha č. 3 k č.j. MV-159754-3/VZ-2013 Počet listů: 7 TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY Nové funkcionality Czech POINT 2012 Popis rozhraní egon Service Bus Centrální Místo Služeb 2.0 (dále jen CMS

Více

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D.

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D. VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ Ing. Lukáš OTTE, Ph.D. Ostrava 2013 Tento studijní materiál vznikl za finanční podpory

Více

java remote method invocation Kateřina Fricková, Matouš Jandek

java remote method invocation Kateřina Fricková, Matouš Jandek java remote method invocation Kateřina Fricková, Matouš Jandek Distribuovaný systém počítačový systém, ve kterém jsou jednotlivé komponenty propojeny počítačovou síťí komponenty systému sdílí cíl, kterého

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 25. Otázka : Komponentní technologie - základní pojmy a principy, metody specifikace komponent. Obsah : 1. Základní pojmy 1.1 Komponenta Komponenta

Více

Architektura orientovaná na služby Návrh orientovaný na služby. Ing. Petr Weiss. VUT v Brně,, FIT, UIFS

Architektura orientovaná na služby Návrh orientovaný na služby. Ing. Petr Weiss. VUT v Brně,, FIT, UIFS Architektura orientovaná na služby Návrh orientovaný na služby Webové služby Ing. Petr Weiss VUT v Brně,, FIT, UIFS 3. 12. 2007 Obsah Architektura orientovaná na služby Základní pojmy Koncepce architektury

Více

EXTRAKT z technické normy ISO

EXTRAKT z technické normy ISO EXTRAKT z technické normy ISO Extrakt nenahrazuje samotnou technickou normu, je pouze informativním materiálem o normě. Inteligentní dopravní systémy Kooperativní ITS Zkušební architektura ISO/TS 20026

Více

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části: Aplikace Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části: prezentační vrstva vstup dat, zobrazení výsledků, uživatelské rozhraní, logika uživatelského rozhraní aplikační vrstva

Více

RMI - Distribuované objekty v Javě

RMI - Distribuované objekty v Javě Vysoká škola báňská - Technická univerzita Ostrava 30. března 2009 Osnova Co je to RMI? 1 Co je to RMI? 2 Vnější pohled Vrstvy RMI Stub & Skeletons Layer Remote Reference Layer Transport Layer Pojemnování

Více

EXTRAKT z české technické normy

EXTRAKT z české technické normy EXTRAKT z české technické normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním 35.240.60 materiálem o normě. Komunikační infrastruktura pro pozemní mobilní zařízení (CALM) Architektura

Více

Internet Information Services (IIS) 6.0

Internet Information Services (IIS) 6.0 Internet Information Services (IIS) 6.0 V operačním systému Windows Server 2003 je obsažena i služba IIS v 6.0. Služba IIS poskytuje jak www server tak i některé další služby (FTP, NNTP,...). Jedná se

Více

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U P R O G R A M O V É V Y B A V E N Í Studijní obor: 18-20-M/01 Informační technologie Školní

Více

KSRZIS. Postup kroků nutných pro napojení nemocničního informačního systému s registrem NSHNU v prostředí registrů resortu zdravotnictví

KSRZIS. Postup kroků nutných pro napojení nemocničního informačního systému s registrem NSHNU v prostředí registrů resortu zdravotnictví Koordinační středisko pro resortní zdravotnické informační systémy Budějovická 15/743 140 00 Praha 4 Počet stran: 10 KSRZIS Postup kroků nutných pro napojení nemocničního informačního systému s registrem

Více

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML Obsah přednášky Webové služby a XML Miroslav Beneš Co jsou to webové služby Architektura webových služeb SOAP SOAP a Java SOAP a PHP SOAP a C# Webové služby a XML 2 Co jsou to webové služby rozhraní k

Více

INFORMAČNÍ SYSTÉMY NA WEBU

INFORMAČNÍ SYSTÉMY NA WEBU INFORMAČNÍ SYSTÉMY NA WEBU Webový informační systém je systém navržený pro provoz v podmínkách Internetu/intranetu, tzn. přístup na takový systém je realizován přes internetový prohlížeč. Použití internetového

Více

Osnova. GIOP a IIOP IDL IOR POA. IDL Klient Server. 2 Historie. 3 Princip a základní pojmy. 4 Implementace. 5 Aplikace CORBA

Osnova. GIOP a IIOP IDL IOR POA. IDL Klient Server. 2 Historie. 3 Princip a základní pojmy. 4 Implementace. 5 Aplikace CORBA Common Object Request Broker Architecture FJFI ČVUT 9. 12. 2010 Osnova 1 2 3 4 5 Standard umožňující propojení aplikací psaných v různých jazycích a běžících na různých strojích a architekturách. Definuje

Více

InternetovéTechnologie

InternetovéTechnologie 9 InternetovéTechnologie webové služby, SOA, služby, atd. Ing. Michal Radecký, Ph.D. www.cs.vsb.cz/radecky Co je to webová služba - Webová služba je softwarový systém zkonstruovaný k podpoře interakce

Více

E LEARNINGOVÁ WEBOVÁ APLIKACE PRO VÝUKU BIOMEDICÍNSKÉHO INŽENÝRSTVÍ Petr Huňka

E LEARNINGOVÁ WEBOVÁ APLIKACE PRO VÝUKU BIOMEDICÍNSKÉHO INŽENÝRSTVÍ Petr Huňka E LEARNINGOVÁ WEBOVÁ APLIKACE PRO VÝUKU BIOMEDICÍNSKÉHO INŽENÝRSTVÍ Petr Huňka Anotace V rámci projektu FRVŠ jsme připravili webovou e-learningovou aplikaci, která je implementována v jazyce Java v rozšířené

Více

Úvod do tvorby internetových aplikací

Úvod do tvorby internetových aplikací CVT6 01a Úvod do tvorby internetových aplikací Osnova předmětu (X)HTML a tvorba webu pomocí přímého zápisu kódu Tvorba web designu a skládání stránek z kousků Skriptovací jazyky na webu Návrh software

Více

Pokročilé Webové služby a Caché security. Š. Havlíček

Pokročilé Webové služby a Caché security. Š. Havlíček Pokročilé Webové služby a Caché security Š. Havlíček Webové služby co se tím míní? Webová služba metoda komunikace mezi dvěma elektronickými zařízeními přes internet Typicky jsou pomocí rozhraní přístupné

Více

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena. 2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena. GEOVAP, spol. s r. o. Čechovo nábřeží 1790 530 03 Pardubice Česká republika +420 466 024 618 http://www.geovap.cz V dokumentu použité názvy programových

Více

Výtisk č.: Počet listů 9. Přílohy: 0 ÚZIS ČR

Výtisk č.: Počet listů 9. Přílohy: 0 ÚZIS ČR ÚZIS ČR Palackého nám. 4 128 01 Praha 2 - Nové Město Výtisk č.: Počet listů 9 Přílohy: 0 ÚZIS ČR Postup kroků nutných pro napojení nemocničního informačního systému s prostředím registrů resortu zdravotnictví

Více

7. Aplikační vrstva. Aplikační vrstva. Počítačové sítě I. 1 (5) KST/IPS1. Studijní cíl. Představíme si funkci aplikační vrstvy a jednotlivé protokoly.

7. Aplikační vrstva. Aplikační vrstva. Počítačové sítě I. 1 (5) KST/IPS1. Studijní cíl. Představíme si funkci aplikační vrstvy a jednotlivé protokoly. 7. Aplikační vrstva Studijní cíl Představíme si funkci aplikační vrstvy a jednotlivé protokoly. Doba nutná k nastudování 2 hodiny Aplikační vrstva Účelem aplikační vrstvy je poskytnout aplikačním procesům

Více

Komunikační protokoly počítačů a počítačových sítí

Komunikační protokoly počítačů a počítačových sítí Komunikační protokoly počítačů a počítačových sítí Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1138_Komunikační protokoly počítačů a počítačových sítí_pwp Název školy: Číslo a název projektu:

Více

(Enterprise) JavaBeans. Lekce 7

(Enterprise) JavaBeans. Lekce 7 (Enterprise) JavaBeans Lekce 7 JavaBeans vs. Enterprise JavaBeans (EJB) JavaBeans technologie: jedná se o tzv. komponentní architekturu určenou pro JSE platformu určená pro tvorbu JSE GUI programů pomocí

Více

Konsolidace zálohování a archivace dat

Konsolidace zálohování a archivace dat České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačové grafiky a interakce Závěrečná zpráva projektu 493/2013/1 Konsolidace zálohování a archivace dat Řešitel: Jan Kubr Spoluřešitel:

Více

PŘÍLOHA C Požadavky na Dokumentaci

PŘÍLOHA C Požadavky na Dokumentaci PŘÍLOHA C Požadavky na Dokumentaci Příloha C Požadavky na Dokumentaci Stránka 1 z 5 1. Obecné požadavky Dodavatel dokumentaci zpracuje a bude dokumentaci v celém rozsahu průběžně aktualizovat při každé

Více

PODMÍNKY POSKYTOVÁNÍ PŘÍSTUPU K PORTÁLU NAMĚŘENÝCH DAT POMOCÍ WEBOVÝCH SLUŽEB SPOLEČNOSTI ČEZ DISTRIBUCE, A. S.

PODMÍNKY POSKYTOVÁNÍ PŘÍSTUPU K PORTÁLU NAMĚŘENÝCH DAT POMOCÍ WEBOVÝCH SLUŽEB SPOLEČNOSTI ČEZ DISTRIBUCE, A. S. PODMÍNKY POSKYTOVÁNÍ PŘÍSTUPU K PORTÁLU NAMĚŘENÝCH DAT POMOCÍ WEBOVÝCH SLUŽEB SPOLEČNOSTI ČEZ DISTRIBUCE, A. S. 1 ÚVOD... 5 2 POPIS VÝMĚNY DAT... 6 2.1 KOMUNIKAČNÍ SCÉNÁŘE... 6 2.2 TECHNOLOGIE KOMUNIKACE...

Více

Systém elektronického rádce v životních situacích portálu www.senorady.cz

Systém elektronického rádce v životních situacích portálu www.senorady.cz Systém elektronického rádce v životních situacích portálu www.senorady.cz Obec Senorady Miroslav Patočka 2006 Obsah: 1. Úvodní informace 1.1 Informace pro uživatele 1.1.1 Přístupnost HTML, PDA, WAP, XML

Více

ERP-001, verze 2_10, platnost od

ERP-001, verze 2_10, platnost od ERP-001, verze 2_10, platnost od 2010.08.01. ELEKTRONICKÉ PŘEDEPISOVÁNÍ HUMÁNNÍCH LÉČIVÝCH PŘÍPRAVKŮ ERP-001.pdf (208,89 KB) Tímto technickým dokumentem jsou, v souladu s 80 zákona č. 378/2007 Sb., o léčivech

Více

Škola: Gymnázium, Brno, Slovanské náměstí 7 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN

Škola: Gymnázium, Brno, Slovanské náměstí 7 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN Škola: Gymnázium, Brno, Slovanské náměstí 7 Šablona: III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN prostřednictvím ICT Číslo projektu: CZ.1.07/1.5.00/34.0940

Více

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U P R O G R A M O V É V Y B A V E N Í Studijní obor: 18-20-M/01 Informační technologie Školní

Více

PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette

PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette Kapitola 1 PHP framework Nette 1.1 Úvod Zkratka PHP (z anglického PHP: Hypertext Preprocessor) označuje populární skriptovací jazyk primárně navržený pro vývoj webových aplikací. Jeho oblíbenost vyplývá

Více

POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE

POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE INTERPI Interoperabilita v paměťových institucích Program aplikovaného výzkumu a vývoje národní kulturní identity (NAKI) (DF11P01OVV023) Zpracovali: Marie

Více

Identifikátor materiálu: ICT-3-03

Identifikátor materiálu: ICT-3-03 Identifikátor materiálu: ICT-3-03 Předmět Téma sady Informační a komunikační technologie Téma materiálu TCP/IP Autor Ing. Bohuslav Nepovím Anotace Student si procvičí / osvojí architekturu TCP/IP. Druh

Více

VZOROVÝ STIPENDIJNÍ TEST Z INFORMAČNÍCH TECHNOLOGIÍ

VZOROVÝ STIPENDIJNÍ TEST Z INFORMAČNÍCH TECHNOLOGIÍ VZOROVÝ STIPENDIJNÍ TEST Z INFORMAČNÍCH TECHNOLOGIÍ 1. Dědičnost v OOP umožňuje: a) dědit vlastnosti od jiných tříd a dále je rozšiřovat b) dědit vlastnosti od jiných tříd, rozšiřovat lze jen atributy

Více

Semináˇr Java X J2EE Semináˇr Java X p.1/23

Semináˇr Java X J2EE Semináˇr Java X p.1/23 Seminář Java X J2EE Seminář Java X p.1/23 J2EE Složitost obchodních aplikací robusní, distribuované, spolehlivé aplikace s transakcemi na straně serveru, klientské aplikace co nejjednodušší Snaha : Návrh,

Více

IS pro podporu BOZP na FIT ČVUT

IS pro podporu BOZP na FIT ČVUT IS pro podporu BOZP na FIT ČVUT Závěrečná zpráva pro 2. iteraci 21. dubna 2011 Zadavatel: Ing. Jiří Chludil Řešitelský tým: Jiří Kopecký Jan Kratochvíl Milan Matějček Štefan Pinďák Kristýna Streitová Úvod

Více

Úvod do aplikací internetu a přehled možností při tvorbě webu

Úvod do aplikací internetu a přehled možností při tvorbě webu CVT6 01a Úvod do aplikací internetu a přehled možností při tvorbě webu Internet a www Internet? Služby www ftp e-mail telnet NetNews konference IM komunikace Chaty Remote Access P2P aplikace Online games

Více

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda 1. Lze vždy z tzv. instanční třídy vytvořit objekt? 2. Co je nejčastější příčinou vzniku chyb? A. Specifikace B. Testování C. Návrh D. Analýza E. Kódování 3. Je defenzivní programování technikou skrývání

Více

SSL Secure Sockets Layer

SSL Secure Sockets Layer SSL Secure Sockets Layer internetové aplikační protokoly jsou nezabezpečené SSL vkládá do architektury šifrující vrstvu aplikační (HTTP, IMAP,...) SSL transportní (TCP, UDP) síťová (IP) SSL poskytuje zabezpečenou

Více

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU 8.6.2011

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU 8.6.2011 Technologie Java Enterprise Edition Přemek Brada, KIV ZČU 8.6.2011 Přehled tématu Motivace a úvod Infrastruktura pro velké Java aplikace (Java základní přehled) Části třívrstvé struktury servlety, JSP

Více

Jádrem systému je modul GSFrameWork, který je poskytovatelem zejména těchto služeb:

Jádrem systému je modul GSFrameWork, který je poskytovatelem zejména těchto služeb: Technologie Marushka Základním konceptem technologie Marushka je použití jádra, které poskytuje přístup a jednotnou grafickou prezentaci geografických dat. Jádro je vyvíjeno na komponentním objektovém

Více

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek Co je to webová aplikace? příklady virtuální obchodní dům intranetový IS podniku vyhledávací služby aplikace jako každá jiná přístupná

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího

Více

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Registrační číslo projektu: CZ.1.07/1.5.00/34.0553 Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost Projekt je realizován v rámci Operačního programu Vzdělávání pro konkurence

Více

Bakalářská práce, FEL ČVUT Praha. Michal Turek. červenec 2007

Bakalářská práce, FEL ČVUT Praha. Michal Turek. červenec 2007 Bakalářská práce, FEL ČVUT Praha Vedoucí práce: Doc. Ing. Zdeněk Kouba, CSc. červenec 2007 1. Seznamte se s problematikou bezpečného zpřístupnění legacy datatabáze z Internetu za následujících omezujících

Více

Vzdálený přístup k počítačům

Vzdálený přístup k počítačům Vzdálený přístup k počítačům jedna z nejstarších služeb vzdálený přístup k sálovým počítačům nejprve vzdálené terminály později terminálová emulace jako jedna ze služeb počítačové sítě současnost využíváno

Více

Server-side technologie pro webové aplikace

Server-side technologie pro webové aplikace Server-side technologie pro webové aplikace PIA 2011/2012 Téma 6 Copyright 2006 Přemysl Brada, Západočeská univerzita Server-side scriptování Cíl dynamické generování webového obsahu/rozhraní integrace

Více

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA Metodický list č. 1 Způsob zakončení : Úvod Technologie webových aplikací Protokol HTTP Po zvládnutí tématického celku bude student mít základní přehled o problematice programování internetových (webových)

Více

Úvod Úrovňová architektura sítě Prvky síťové architektury Historie Příklady

Úvod Úrovňová architektura sítě Prvky síťové architektury Historie Příklady Úvod Úrovňová architektura sítě Prvky síťové architektury Historie Příklady 1 Pracovní stanice modem Pracovní stanice Směrovač sítě Směrovač sítě Pracovní stanice Aplikační server Směrovač sítě 2 Soubor

Více

Webové rozhraní pro datové úložiště. Obhajoba bakalářské práce Radek Šipka, jaro 2009

Webové rozhraní pro datové úložiště. Obhajoba bakalářské práce Radek Šipka, jaro 2009 Webové rozhraní pro datové úložiště Obhajoba bakalářské práce Radek Šipka, jaro 2009 Úvod Cílem práce bylo reimplementovat stávající webové rozhraní datového úložiště MU. Obsah prezentace Úložiště nasazené

Více

3 MOŽNÉ PŘÍSTUPY K TVORBĚ APLIKACÍ NAD SVG DOKUMENTY

3 MOŽNÉ PŘÍSTUPY K TVORBĚ APLIKACÍ NAD SVG DOKUMENTY 3 MOŽNÉ PŘÍSTUPY K TVORBĚ APLIKACÍ NAD SVG DOKUMENTY 3.1 Tenký a tlustý klient Klientské aplikace nad XML dokumenty v prostředí internetu se dají rozdělit na dvě skupiny: tenký klient a tlustý klient.

Více

Formy komunikace s knihovnami

Formy komunikace s knihovnami Formy komunikace s knihovnami Současné moderní prostředky Jiří Šilha a Jiří Tobiáš, Tritius Solutions a.s., Brno Osnova Základní požadavky na komunikaci s knihovnami Historie komunikace s knihovnami Confluence

Více

PODMÍNKY POSKYTOVÁNÍ PŘÍSTUPU K PORTÁLU NAMĚŘENÝCH DAT POMOCÍ WEBOVÝCH SLUŽEB SPOLEČNOSTI ČEZ DISTRIBUCE, A. S.

PODMÍNKY POSKYTOVÁNÍ PŘÍSTUPU K PORTÁLU NAMĚŘENÝCH DAT POMOCÍ WEBOVÝCH SLUŽEB SPOLEČNOSTI ČEZ DISTRIBUCE, A. S. PODMÍNKY POSKYTOVÁNÍ PŘÍSTUPU K PORTÁLU NAMĚŘENÝCH DAT POMOCÍ WEBOVÝCH SLUŽEB SPOLEČNOSTI ČEZ DISTRIBUCE, A. S. 1 ÚVOD... 5 2 ZPŮSOB VYUŽITÍ SLUŽBY AZD - PND... 6 2.1 REGISTRACE SLUŽBY AZD - PND... 6 2.2

Více

Úvod - Podniková informační bezpečnost PS1-2

Úvod - Podniková informační bezpečnost PS1-2 VŠFS; Aplikovaná informatika - 2006/2007 1 Bezpečnost informací BI Ing. Jindřich Kodl, CSc. Úvod - Podniková informační bezpečnost PS1-2 VŠFS; Aplikovaná informatika - 2006/2007 2 Literatura Kovacich G.L.:

Více

Databázové systémy. Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz

Databázové systémy. Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz Databázové systémy Doc.Ing.Miloš Koch,CSc. koch@fbm.vutbr.cz Vývoj databázových systémů Ukládání dat Aktualizace dat Vyhledávání dat Třídění dat Výpočty a agregace 60.-70. léta Program Komunikace Výpočty

Více

Business Intelligence

Business Intelligence Business Intelligence Josef Mlnařík ISSS Hradec Králové 7.4.2008 Obsah Co je Oracle Business Intelligence? Definice, Od dat k informacím, Nástroj pro operativní řízení, Integrace informací, Jednotná platforma

Více

Identifikátor materiálu: ICT-3-10

Identifikátor materiálu: ICT-3-10 Identifikátor materiálu: ICT-3-10 Předmět Téma sady Informační a komunikační technologie Téma materiálu Doména a služby Internetu Autor Ing. Bohuslav Nepovím Anotace Student si procvičí / osvojí služby

Více

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework Web Jaroslav Nečas Obsah přednášky Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework Co to je web HTTP protokol bezstavový GET POST HEAD Cookies Session HTTPS

Více

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server ADMINISTRACE POČÍTAČOVÝCH SÍTÍ OPC Server Funkce a využití v průmyslové automatizaci Jiří NOSEK 2011 Co je OPC Server? OPC = Open Process Control (původně OLE for Process Control) sada specifikací průmyslového

Více

1 Webový server, instalace PHP a MySQL 13

1 Webový server, instalace PHP a MySQL 13 Úvod 11 1 Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského

Více

Národní šetření výsledků žáků v počátečním vzdělávání

Národní šetření výsledků žáků v počátečním vzdělávání Projekt NIQES Národní šetření žáků v počátečním vzdělávání Národní šetření výsledků žáků v počátečním vzdělávání Druhá celoplošná generální zkouška Název souboru: CP2-Procesy_přípravy_a_realizace_V3.doc

Více

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13 Obsah Úvodem 9 1. Úvod do Ajaxu 11 Jak Ajax funguje? 13 Popis 13 Ukázky 13 Jaké jsou možnosti tvorby interaktivních webových aplikací? 15 Co je třeba znát? 16 Jak fungují technologie Ajaxu 16 Jak funguje

Více

SOAP & REST služby. Rozdíly, architektury, použití

SOAP & REST služby. Rozdíly, architektury, použití SOAP & REST služby Rozdíly, architektury, použití Obsah Srovnání SOAP a REST služeb Service Oriented Architecture Microservice Architecture Příklady použití Nástroje pro vývoj SOAP a REST služeb (v Java)

Více

Profilová část maturitní zkoušky 2017/2018

Profilová část maturitní zkoušky 2017/2018 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2017/2018 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA

Více

5/8 INSTANT MESSAGING A JEHO BEZPEČNOST V PODNIKOVÝCH SÍTÍCH

5/8 INSTANT MESSAGING A JEHO BEZPEČNOST V PODNIKOVÝCH SÍTÍCH BEZPEČNÁ POČÍTAČOVÁ SÍŤ část 5, díl 8, kap. 1, str. 1 5/8 INSTANT MESSAGING A JEHO BEZPEČNOST V PODNIKOVÝCH SÍTÍCH 5/8.1 ÚVOD DO PROBLEMATIKY IM Instant messaging (dále jen IM) poskytuje komunikaci uživatelů

Více

Unifikovaný modelovací jazyk UML

Unifikovaný modelovací jazyk UML Unifikovaný modelovací jazyk UML Karel Richta katedra počíta tačů FEL ČVUT Praha richta@fel fel.cvut.czcz Motto: Komunikačním m prostředkem informační komunity se postupem času stala angličtina. Chcete-li

Více

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka Metody tvorby ontologií a sémantický web Martin Malčík, Rostislav Miarka Obsah Reprezentace znalostí Ontologie a sémantický web Tvorba ontologií Hierarchie znalostí (D.R.Tobin) Data jakékoliv znakové řetězce

Více

Analýza a Návrh. Analýza

Analýza a Návrh. Analýza Analysis & Design Návrh nebo Design? Design = návrh Není vytváření použitelného uživatelského prostředí (pouze malinká podmnožina celého návrhu) Často takto omezeně chápáno studenty nedokáží si představit,

Více

Příloha: Dodatečné informace, včetně přesného znění žádosti dodavatele o dodatečné informace

Příloha: Dodatečné informace, včetně přesného znění žádosti dodavatele o dodatečné informace Příloha: Dodatečné informace, včetně přesného znění žádosti dodavatele o dodatečné informace Pořadové číslo dodatečných informací: 14. ČÁST 1: Přesné znění žádosti dodavatele o dodatečné informace Otázka

Více

Počítačové sítě. Lekce 4: Síťová architektura TCP/IP

Počítačové sítě. Lekce 4: Síťová architektura TCP/IP Počítačové sítě Lekce 4: Síťová architektura TCP/IP Co je TCP/IP? V úzkém slova smyslu je to sada protokolů používaných v počítačích sítích s počítači na bázi Unixu: TCP = Transmission Control Protocol

Více

Kurz je rozdělen do čtyř bloků, které je možné absolvovat i samostatně. Podmínkou pro vstup do kurzu je znalost problematiky kurzů předešlých.

Kurz je rozdělen do čtyř bloků, které je možné absolvovat i samostatně. Podmínkou pro vstup do kurzu je znalost problematiky kurzů předešlých. Soubor kurzů XHTML, CSS, PHP a MySQL Kurz je rozdělen do čtyř bloků, které je možné absolvovat i samostatně. Podmínkou pro vstup do kurzu je znalost problematiky kurzů předešlých. Jeden blok se skládá

Více

STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE

STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE WEBOWÉ STRÁNKY TŘÍD KAMIL POPELKA ZÁVĚREČNÁ MATURITNÍ PRÁCE BRNO 2011 Prohlášení Prohlašuji, že maturitní práce je mým původním autorským dílem, které

Více

UAI/612 - Cloudová Řešení. Technologie

UAI/612 - Cloudová Řešení. Technologie UAI/612 - Cloudová Řešení Technologie Rekapitulace Multitenance Bezestavovost Škálovatelnost Cachování Bezpečnost Způsoby nasazení Datová úložiště SQL databáze NoSQL databáze Cloudová datová úložiště (API)

Více

CZ.1.07/1.5.00/34.0527

CZ.1.07/1.5.00/34.0527 Projekt: Příjemce: Digitální učební materiály ve škole, registrační číslo projektu CZ.1.07/1.5.00/34.0527 Střední zdravotnická škola a Vyšší odborná škola zdravotnická, Husova 3, 371 60 České Budějovice

Více

Definice pojmů a přehled rozsahu služby

Definice pojmů a přehled rozsahu služby PŘÍLOHA 1 Definice pojmů a přehled rozsahu služby SMLOUVY o přístupu k infrastruktuře sítě společnosti využívající technologie Carrier IP Stream mezi společnostmi a Poskytovatelem 1. Definice základních

Více

l Kontakt s klientem SSP Popis automatizované komunikace s ÚP ČR v součinnosti a exekuci

l Kontakt s klientem SSP Popis automatizované komunikace s ÚP ČR v součinnosti a exekuci l Kontakt s klientem SSP automatizované komunikace s ÚP ČR v součinnosti a exekuci Obsah: 1. SEZNAM POUŽITÝCH ZKRATEK... 3 2. POPIS SLUŽBY... 4 2.1 Forma a struktura rozhraní... 4 2.2 Dostupnost služby...

Více

Optimalizaci aplikací. Ing. Martin Pavlica

Optimalizaci aplikací. Ing. Martin Pavlica Optimalizaci aplikací Ing. Martin Pavlica Vize: Aplikace v dnešním světě IT Ze všech částí IT jsou aplikace nejblíže businessu V elektronizovaném světě významným způsobem podporují business, ten se na

Více

Tvorba informačních systémů

Tvorba informačních systémů Tvorba informačních systémů Michal Krátký 1, Miroslav Beneš 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2005/2006 c 2006 Michal Krátký, Miroslav Beneš Tvorba informačních

Více

EXTRAKT z technické normy ISO

EXTRAKT z technické normy ISO EXTRAKT z technické normy ISO Extrakt nenahrazuje samotnou technickou normu, je pouze informativním materiálem o normě. Inteligentní dopravní systémy Datové slovníky ITS Část 4: Minimální systémové požadavky

Více

Profilová část maturitní zkoušky 2013/2014

Profilová část maturitní zkoušky 2013/2014 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2013/2014 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA

Více

MBI - technologická realizace modelu

MBI - technologická realizace modelu MBI - technologická realizace modelu 22.1.2015 MBI, Management byznys informatiky Snímek 1 Agenda Technická realizace portálu MBI. Cíle a principy technického řešení. 1.Obsah portálu - objekty v hierarchiích,

Více

Architektury Informačních systémů. Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/

Architektury Informačních systémů. Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Architektury Informačních systémů Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Nutné pojmy Co je to informační systém? Jaké oblasti zahrnuje? Jaká je vazba IS na podnikovou strategii?

Více

Úvod do informatiky 5)

Úvod do informatiky 5) PŘEHLED PŘEDNÁŠKY Internet Protokol a služba Jmenná služba (DNS) URL adresa Elektronická pošta Přenos souborů (FTP) World Wide Web (WWW) Téměř zapomenuté služby 1 INTERNET 2 PROTOKOL A SLUŽBA Protokol

Více

SYLABUS IT V. Jiří Kubica. Ostrava 2011

SYLABUS IT V. Jiří Kubica. Ostrava 2011 P MODULU SYLABUS IT V DÍLČÍ ČÁST PROGRAMOVÁNÍ BUSINESS APLIKACÍ PODNIKU Bronislav Heryán Jiří Kubica Ostrava 20 : Autoři: Vydání: Počet stran: Tisk: Vydala: Sylabus modulu IT v podniku Programování business

Více