Univerzita Karlova v Praze. Webové služby a návrh jejich realizace v systému ODS pro objednávku digitalizovaného dokumentu
|
|
- Radomír Dostál
- před 6 lety
- Počet zobrazení:
Transkript
1 '. Univerzita Karlova v Praze Filozofická fakulta Ústav informačních studií a knihovnictví Studijní program: informační studia a knihovnictví Studijní obor: informační studia a knihovnictví Vladimír Fiala Webové služby a návrh jejich realizace v systému ODS pro objednávku digitalizovaného dokumentu Diplomová práce Praha 2006
2 '. Vedoucí diplomové práce: PhDr. Jiří Kaplický Oponent diplomové práce: Datum obhajoby: Hodnocení: 2
3 Vysoká škola: Univerzita Karlova v Praze Fakulta: Filozofická fakulta Součást: Ústav informačních studií a knihovnictví Školní rok: 2005/2006 ZADÁNÍ DIPLOMOVÉ PRÁCE (PROJEKTU, UMĚLECKÉHO DÍLA, UMĚLECKÉHO VÝKONU) pro obor Vladimír Fiala Informační studia a knihovnictví Název tématu: Webové služby a návrh jejich realizace v systému DDS pro objednávku digitalizovaného dokumentu Zásady pro vypracování: Cílem práce je objasnit princip fungování webových služeb jako moderního prostředku komunikace aplikací a navrhnout možné řešení objednávkového systému DDS Státní technické knihovny pomocí této teclmologie. Návrh by mohl sloužit jako podklad pro skutečnou implementaci do systému DDS Státní technické knihovny. Předběžná osnova práce: 1. Popis webových služeb (Jazyk XML, Protokol SOAP, Popis webové služby WSDL, Registr UDDI) 2. Přehled současného stavu řešení systému STK/DDS 3. Návrh řešení WS objednávkového systému pro STKIDDS 4. Zhodnocení Práce bude připravena a upravena v souladu s platnými vnitřními předpisy FF UK a dalšími metodickými pokyny a normativními dokumenty. ([EVi'] O 1/2001 Tisk: Rapy 0078/2001
4 ~-;- Rozsah grafických prací: Rozsah průvodní zprávy: Seznam odborné literatury: 1. KREGER, H. Web Services Conceptual Architecture (WSCA 1.0) [online]. May 2001 [cit ]. 41 s. Dostupné z WWW: <httg://www-306.ibm.com/software/solutions/webservices/gdf/wsca.pdf> 2. JIROUŠ, V. Webové služby v knihovnictví. ln Automatizace knihovnických procesů- 10.: sborník z 10. ročníku semináře pořádaného ve dnech května 2005 v Liberci. Praha: ČVUT- Výpočetní a informační centrum, 2005, s Dostupné také z WWW: <httg:// jirous.gdf>. ISBN Document De/ivery Systém : kompletní dokumentace [online]. Vypracováno pro STK Praha. Praha : česká informační společnost, listopad 2002 [cit ]. 54 s. Dostupné z WWW: < 018/PopisDDS.doc> Vedoucí diplomové práce: )PhDr..J i~~()kaplický... / i r;,. /// i/ Datum zadání diplomové práce: Termín odevzdání diplomové práce: L.S.... Vedoucf součásti-ředitel ÚISK FF UK V Praze dne
5 )-25]. > {z 10. Prohlášení: Prohlašuji, že jsem diplomovou práci zpracoval samostatně a že jsem uvedl všechny použité informační zdroje. V Praze, 20. března 2006 podpis diplomanta 3
6 ldentiiikační záznam FIALA, Vladimír. Webové služby a návrh jejich realizace v systému DDS pro objednávku digitalizovaného dokumentu [Web services and design of their implementation in DDS system for digital document order]. Uherské Hradiště, s., 20 s. příl. Diplomová práce. Univerzita Karlova v Praze, Filozofická fakulta, Ústav informačních studií a knihovnictví Vedoucí diplomové práce PhDr. Jiří Kaplický. Abstrakt Tématem práce je popis technologie webových služeb a jejich začlenění do systému dodání kopie digitalizovaného dokumentu (DDS) ve Státní technické knihovně. Cílem práce je objasnit princip fungování webových služeb jako prostředku pro komunikaci a přenosu informací napříč systémy, jejich aplikačm'ho využití a navrhnout řešení pomocí této technologie do zmíněného systému DDS. Technologie webových služeb je tvořena třemi základními komponentami - komunikačním protokolem SOAP (Simple Object Access Protocol), dokumentem pro jejich popis WSDL (Web Services Description Language) a registry služeb UDDI (Universa! Description, Discovery, and Integration). Tento komunikační a funkční model je vystavěn na značkovacím jazyku XML, jehož část týkající se webových služeb je v práci popsána. Jde o problematiku syntaxe XML, definice datových typů, jmenné prostory a schémata XML. Součástí práce je rovněž přehled o systému DDS obecně a popis a analýza stávajícího řešení systému DDS Státní technické knihovny. Na základě popisu funkcionality webových služeb je zpracován návrh do sytému DDS Státní technické knihovny ve formě WSDL dokumentu, který by mohl sloužit jako základ pro skutečnou implementaci webových služeb v STK. Dále je znázorněn možný popis služeb v registru UDDI. Závěr práce shrnuje představené řešení a jsou nastíněny možnosti dalšího vývoje webových služeb v informační a knihovnické sféře. Klíčová slova web services, SOAP, WSDL, UDDI, XML, schema, protocol, registry 4
7 OBSAH PŘEDMLUVA 1 Úvod Webové služby Koncept servisně orientované architektury SOA... 1 O 2.2 Model WS... ll 2.3 Jazyk XML Syntaxe XML Objektový model dokumentu DOM SAX Jmenné prostory SchémataXML-XSD SOAP Uzly a role SOAP Message Element Envelope Element Header Element Body Element Fault WSDL Definice služby Element Types Element Messages Element porttype Elementbinding Element port Element service SOAP Bindings UDDI Historie Princip fungování UDDI Datový model UDDI
8 Entita businessentity Entita businessservice Entita bindingtemplate Entita tmodel Entita publisherassertion Entita operationallnfo Klasifikační a identifikační systém UDDI Identifikační systém UDDI Klasifikační systém UD DI Typy registrů UDDI Současný stav řešení systému DDS v STK Systém DDS Úvod Přehled poskytovatelů služeb DDS Analýza stávajícího řešení systému DDS STK Dekompozice systému DDS Technologické zázemí systému DDS STK Programové řešení DDS STK Návrh rozhraní objednávkového systému DDS pomocí webových služeb Analýza problému EntityWS..., Datový model databáze DDS STK Definice XML schématu Element Objednávka Element Uživatel Element Účet uživatele Definice kandidátů na služby Služba zadání nové objednávky Služba úpravy objednávky Služba zrušení objednávky Služba zjištění stavu objednávky Služba vyzvednutí objednávky- digitalizovaného dokumentu Služba zm_ěny registrace Služba zrušení registrace
9 Služba získání uživatelského přehledu objednávek Služba získání uživatelského přehledu o stavu účtu Registrace služby v registrech UDDI Mapování entity porttype Mapování entity binding Mapování do entit businessservice a bindingtemplate Závěr
10 PŘEDMLUVA Tato diplomová práce se zabývá principy fungování a archiú~kturou webových služeb a jejich následným využitím pro návrh systému dodání kopie digitalizovaného dokumentu Státní technické knihovny v Praze. Jde o technologii, která umožňuje komunikaci informací napříč systémy, jejich následné aplikační zpracování a začíná se čím dál více uplatňovat i v informační a knihovnické oblasti. Podnětem pro tuto práci byla skutečnost, že právě STK by chtěla nabídnout za pomoci této funkcionality službu typu DDS a vypracovaný návrh by mohl sloužit jako základ tohoto systému. Podkladem pro tuto práci byly články, analýzy, studie, standardy a specifikace zabývající se problematikou webových služeb a příbuzných technologií. Cílem této diplomové práce je podat ucelený popis této technologie a vytvořit návrh WSDL rozhraní budoucího systému DDS postaveného na webových službách. Zmíněny jsou nejen současné standardy, případně návrhy těchto standardů a jejich aplikace, ale i možné směry dalšího vývoje. Diplomová práce je rozdělena do pěti kapitol včetně úvodu a závěru. První část pojednává o konceptu webových služeb a servisně orientované architektury (SOA). Je probrána tematika jazyka XML, která se vztahuje k problematice WS a dále hlavní komponenty, na kterých je tato technologie vystavěna - SOAP (Simple Object Access Protocol), WSDL (Web Services Description Language) a UDDI(Web Services Description Language). V další části je obecně pojednáno o systému DDS a jeho současné implementaci v STK Praha. Poslední část je věnována vlastnímu návrhu klientské části systému DDS na úrovni WSDL rozhraní. Rozsah diplomové práce je 93 stran a 20 stran příloh. Informační zdroje jsou citovány podle normy ISO 690 a ISO 690-2, odkazovány jsou v textu uvedením čísla citovaného zdroje. Není-li uvedeno jinak, veškerá data platí k Závěrem předmluvy bych chtěl ještě poděkovat všem, kteří mi pomohli napsat tuto diplomovou práci. 8
11 1 Úvod Jedním z dnešních důležitých požadavků ve světě informačních technologií je komunikace a vzájemná interoperabilita aplikací komunikujících na základě standardizovaných formátů. Existují různé iniciativy, které se o řešení tohoto problému pokouší, a to s rozdílným úspěchem. Tento požadavek dnes řeší i organizace působící v informační a knihovnické sféře jako například iniciativa otevřených archívů OAI-PHM nebo iniciativy OCLC kolem protokolu Z Jednou z otevřených technologií, pomocí které lze tyto požadavky řešit, jsou "web services" neboli webové služby. Tato technologie vychází z konceptu servisně orientované architektury (SOA) a webové služby tuto architekturu implementují, přičemž základním stavebním kamenem těchto služeb je jazyk XML- Extensible Markup Language a na něm postavené komponenty. Dnešní doba nabízí celou řadu informačních služeb jako je vyhledávání informací, elektronický obchod, výměna informací, překladové služby atd. a snahou je dosáhnout určitého stupně standardizace při dotazování se po těchto službách. Jedním z příkladů může být rovněž systém doručování dokumentů (DDS) elektronickou cestou. Státní technická knihovna dnes řeší tuto problematiku pomocí standardních webových technologií, ale jako instituce, která se přímo podílí na vývoji nových standardů, chce také nabídnout rozhraní k službám dodávky digitalizovaného dokumentu pomocí webové služby. Cílem této diplomové práce je objasnit uvedenou problematiku a tuto webovou službu ve formě rozhraní navrhnout. 9
12 2 Webové služby 2.1 Koncept servisně orientované architektury SOA Architekturou orientovanou na služby rozumíme v podstatě kolekci služeb. Principem je, že tyto služby jsou schopné navzájem komunikovat mezi sebou pomocí zpráv[ 1]. Vlastní službou rozumíme samostatný softwarový modul, u kterého nás nezajímá, jakým způsobem funguje jeho vnitřní implementace, je nezávislý na konkrétním vývojovém prostředku a v zjednodušené podobě nabízí pro uživatele jednu nebo více služeb, které dovede zprostředkovat. V informační a knihovnické oblasti může takovou službou například být zjištění stavu výpůjčky v knihovně, vyhledání digitálního zdroje, rezervace dokumentu, vyhledávání a sdílení informací či metadat, v jiných oblastech to může být práce s obchodní objednávkou nebo zjištění ceny akcií na burzovním trhu. Koncept SOA není novinkou, již dříve byly vyvinuty technologie CORBA, DCOM a RMI, které byly ale technicky náročné a těžkopádné, některé platformově závislé. Velký rozvoj nastal teprve s příchodem jazyka XML, na kterém byly standardy webových služeb vystavěny. Právě prudký rozvoj jazyka XML a na něm postavených webových služeb byl tedy novým impulsem pro znovuoživení S O A. Základním rysem SOA je skutečnost, že služby jsou formálně definovány zprávami, které si vyměňuje žádající a poskytující aplikace[2]. Tyto zprávy však musí splňovat určitá pravidla, aby bylo možné dosáhnout standardu jejich zpracování. Z pohledu služeb v SOA nezáleží na platformě, použitém programovacím jazyku, struktuře databáze a dalších technických aspektech komunikujících aplikací. Jak již bylo naznačeno, v případě webových služeb jde o zasílaní zpráv v jazyce XML, o kterém bude pojednáno v následujících kapitolách. SOA nám navíc umožňuje bez větších investičních nákladů integrovat tuto architekturu do současných systémů. Je to umožněno díky charakteru služeb, které mohou vytvořit v podstatě jakýsi obal kolem současných řešení a nabídnout zpracování úloh pro externí systémy. 10
13 2.2 Model WS Model webových služeb je založený na interakci tří prvků- poskytovatele služeb, registru služeb a jejich žadatele[3]. Mezi těmito prvky probíhají určité operace, které lze označit jako zveřejnění (publish), vyhledání (find) a svázání (bind). Schematicky to lze zobrazit následujícím obrázkem. Server t----svázánr-' Žadatel služby Poskytovatel služby Obr Model WS Slovně lze toto schéma popsat následovně: Poskytovatel služby (service provider) zpřístupňuje určitou webovou službu, pro kterou definuje její popis(service description), ta je umístěna do registrů služeb (service registry), kde si ji žadatel služby (service requestor) může nalézt, získat její popis a následně může danou službu využít. Můžeme tedy definovat role ve webových službách a ty jsou následující: ll
14 Service provider - je poskytovatel služby nebo z hlediska architektury platforma, která službu zpřístupňuje. Service requestor- subjekt, který chce danou službu využít. Jde o aplikaci, která danou službu vyhledá a využije. Může jít o aplikaci s uživatelským rozhraním nebo také například o jinou webovou službu. Service registry - registr služeb, pomocí kterého daný poskytovatel svou službu zveřejní a žadatel služby si ji zde může nalézt. Dále jsme si mohli všimnout operací, které mezi jednotlivými elementy probíhají. Rozeznáváme tedy tyto operace: Zveřejnění - jde o proces zveřejnění, aby bylo možné službu dohledat. Nejčastěji se pro zveřejnění používají registry služeb. Vyhledání- v tomto procesu žadatel služby danou službu vyhledá a získá její popis. Svázání- operace, při které je služba vyvolána, jsou zjištěny detaily služby z jejího popisu za účelem jejího nalezení, kontaktování a vyvolání. Posledními činiteli v modelu WS jsou vlastní výkonné elementy: Service(služba) - je vlastní implementací rozhraní webové služby. Jde o softwarový modul, který je zjišťován, dotazován a vyvoláván žadatelem služby. Lze podotknout, že vlastní služba může být též žadatelem jiné služby. Popis služby - poskytuje detailní popis rozhraní a implementace služby. Obsahuje datové typy, operace, informace o vázání služby a umístění v síťovém prostředí. Taktéž může obsahovat další metadata usnadňující nalezení služby. Popis může být zveřejněn v registrech nebo přímo žadateli služby[3]. Tato infrastruktura je ve webových službách tvořena třemi komponentami, a to: 12
15 protokolem SOAP, definicí rozhraní služby WSDL, registrem webových služeb UDDI. Lze podotknout, že protokol SOAP není podmínkou (další možností je technologie REST - Representational State Transfer), SOAP je ale "de facto" standardem a používá se dnes ve většině případů. Odpovídá modelu vzdáleného volání procedur RPC v modelu požadavek- odpověď. RPC je protokolem, který umožňuje jednomu programu na jedné stanici, zavolat proceduru na vzdálené stanici bez znalosti toho, jak je tato procedura implementovaná. Zprávy, které jsou zapsány ve formátu XML, jsou zasílány pomocí protokolu HTTP, který umožňuje zasílání zpráv přes problematické elementy internetu jako jsou firewally a proxy servery a je jedním z nejdůležitějších a nejpoužívanějších protokolů Internetu. Podobně jako v případě protokolu SOAP není ani zde nutné použít protokol HTTP a stejně tak se mohou využít další z protokolů jako jsou například SMTP, MSMQ či TELNET. Obrázek 2.3 zobrazuje interakci zmíněných komponent. klinet využfvajfcf webovou službu I I hledání I služby :.. /. S_O_A_P -J / ""'.') "'""' 1// komunikace pomocí XML zpráv popis rozhraní.....,.. služby webová služba I I popisuje rozhraní : služby I ~ odkaz na popis služby WSDL Obr Interakce komponent WS 13
16 2.3 Jazyk XML Webové služby, jak už bylo řečeno, používají pro zasílání zpráv a jejich popis jazyk XML. Cílem této práce není podat vyčerpávající informace o tomto jazyku, protože ten zasahuje do mnoha oblastí, kterých se problematika webových služeb netýká. Budou představeny jen zásadní rysy jazyka XML a oblasti, které se popisované problematiky týkají. Konkrétně se jedná o základní syntaxi jazyka XML, jmenné prostory a schémata jazyka XML. Extensible Markup Language XML je značkovací jazyk, který vychází z jazyka SGML(Standard Generalized Markup Language). Jazyk SGML je značkovacím jazykem, který vyvinula už v sedmdesátých letech 20. století firma IBM, a to z důvodu přenositelnosti dat. Přesněji řečeno, původ jazyka SGML je spojen už se vznikem jazyka GML vytvořeným v roce 1969 a je spjatý se jmény Goldfarb, Mosher a Lorris. V roce 1978 byl Goldfarb zvolen předsedou ANSI (American National Standartization Institute) a po dlouhých letech standardizace byl jazyk SGML oficiálně ustaven normou IS roku Soubory SGML jsou ukládány jako text ASCII, což zajišťuje jejich použitelnost prakticky na libovolné počítačové platformě. Nicméně i jazyk SGML má své nevýhody, přičmež největší z nich je jeho složitost. SGML totiž za svou univerzálnost platí vyšší složitostí, která mu také zabránila masově se rozšířit. Jednou z aplikací jazyka SGML je populární jazyk pro tvorbu hypertextových dokumentů HTML, který vytvořil roku 1991 Tim Bemers-Lee. Jazyk HTML nabídnul vývojářům a tvůrcům těchto dokumentů možnosti pro ovlivňování vzhledu dokumentu, ale neobsahoval informace o tom, co dokument vlastně obsahuje a v podstatě si nevynucoval žádnou strukturu dokumentu. Tyto nedostatky daly vzniknout novému značkovacímu jazyku XML, který má následující rysy: může ukládat a organizovat téměř jakýkoliv typ informací v podobě, v jaké je právě potřebujeme, 14
17 je otevřeným standardem, který není svázán s žádnou společností nebo softwarovým produktem, podporuje kódování Unicode, nabízí způsoby kontroly platnosti dokumentu s pravidly pro jeho syntaxi, možností definování datových typů atd., díky jednoduché syntaxi a přehledné struktuře je dobře zpracovatelný jak pro počítač, tak pro člověka, lze pro něj použít styly umožňující formátování dokumentu [ 6]. Aplikace XML můžeme členit do dvou kategorií: dokumentové aplikace, určené převážně pro výstup (například za pomoci stylů), a tedy pro potřebu uživatelů, datové aplikace, pracující s informacemi, které jsou určeny převážně pro zpracování softwarem. XML, tak jak je používáno v oblasti WS, spadá tedy do kategorie druhé. V této datové oblasti bylo jedním z cílů nabídnout pro oblast správy dokumentů softwarové nástroje určené pro správu dat, například databáze a přináší způsob, jak lze distribuovat strukturovaná data napříč systémy Syntaxe XML Základním prvkem dokumentu XML je element, ze kterých se dokument skládá. Každý element má svůj název a obsah. Jeho obsah je vymezen značkami, kterým se říká počáteční a koncový tag. Každý počáteční tag elementu musí mít svůj koncový tag, jinak je dokument neplatný. Příznačné je to, že XML nedefinuje žádné vlastní elementy. Mechanismus rozmísťování značek je podobný tomu, který je známý zhtml[5]. <ISBN> </ISBN> 15
18 Zde vidíme element ISBN, jehož obsahem je vlastní ISBN číslo. Dalším rysem jazyka XML je to, že elementy se mohou do sebe "vnořovat". <KNIHA> <CENA>100</CENA> <ISBN> </ISBN> </KNIHA> Zde vidíme elementy ISBN a CENA, které jsou vnořeny do elementu KNIHA. Samotný element KNIHA nemá vlastní obsah, což je přípustné a obsahuje subelementy CENA a ISBN, které již vlastní obsah mají. Tato struktura vnořování se označuje jako stromová, elementy mohou obsahovat další elementy a není definována úroveň maximálního vnoření. Z toho je možné vysledovat, jak efektivní jazyk XML je aj ak jednoduše dovede mapovat datové struktury například pro přenos mezi aplikacemi. "Čistý" informační obsah XML dokumentu neboli virtuální strom informací bez doprovodných značek a dalších informací se nazývá XML InfoSet. Jednou z možných nevýhod, kterou lze u jazyka XML zmínit a kterou se platí za přehlednost, je zvětšení velikosti informace, která je nutná pro její uchování. Například pro informaci o ceně z předchozích výpisů na to potřebujeme celých 16 znaků. Ještě zřetelnější by to bylo u informace obsahující hodnotu pravda/nepravda, která by v binární soustavě zabrala pouhý 1 bit, v XML by to byl název elementu a vlastní informace ve znakové soustavě (např. ASCII, UNICODE). Tento handicap nicméně v dnešní době díky výkonným hardwarovým prostředkům není již tak markantní a dnešní výpočetní systémy se s ním čím dál lépe vyrovnávají. Jazyk XML je "case sensitive" což znamená, že rozlišuje mezi velkými a malými písmeny. Následující elementy jsou tedy rozdílné. <KNIHA> <kniha> Na první pohled je zřetelné, že struktura dokumentu zapsaného v jazyce XML je velmi dobře čitelná i pro člověka, a proto je možné z takového dokumentu získat informace i bez strojového zpracování. Pro strojové zpracování dokumentů XML se používají programové komponenty nazývané analyzátory nebo také parsery. 16
19 Analyzátor dokumentu XML je softwarový nástroj, který projde cyklem dokumentem XML, a podle typu analyzátoru buď načte stromovou strukturu do paměti nebo vyvolá určitou událost, která může být programově zpracována. Analyzátor Aplikace Obr Vztah analyzátoru a aplikace XML Obrázek 2.3 nám zobrazuje architekturu XML dokumentu a vztahu analyzátoru XML vůči aplikaci XML. Architektura programu je rozdělena na dvě části: analyzátor, pracující s dokumentem XML, aplikace, načítající a využívající obsah souboru pomocí tohoto analyzátoru. Rozeznáváme dva typy analyzátorů - DOM a SAX. Každý z těchto analyzátorů má specifickou oblast použití, i když není striktně definováno, kde se má který použít. Následující kapitoly přiblíží podstatu a možnosti jejich použití Objektový model dokumentu DOM DOM (document object model) byl vyvinut konsorciem W3C původně pro prohlížeče. Za jeho vznikem stála snaha sjednotit objektové modely dvou hlavních internetových prohlížečů- Internet Explorer a Netscape Navigator. Analyzátor typu DOM využívá toto rozhraní, kterému říkáme objektové, pro projítí celého 17
20 dokumentu a jeho načtení do paměti a umožňuje s takto načtenou stromovou strukturou opakovaně pracovat. Výhody tohoto přístupu mohou být například následující: proces načtení proběhne jen jednou, přičemž s modelem dokumentu se může opakovaně pracovat, jsou k dispozici všechny zpracované informace o dokumentu XML, následná práce s elementy dokumentu je díky držení modelu dokumentu v paměti velmi rychlá. Naopak lze vzít v potaz následující nevýhody: Při zpracování objemného dokumentu XML je nutné počítat s delší časovou odezvou zpracování dokumentu a vyššími požadavky na paměťové nároky hardwarových zařízení. Elementy a informace dokumentu XML jsou k dispozici až po zpracování celého dokumentu XML. Práci analyzátoru DOM s elementy dokumentu XML nám zobrazuje následující obrázek. Obr Práce DOM analyzátoru s dokumentem XML 18
21 2.3.3 SAX Událostní rozhraní SAX (Simple API for XML) nabízí alternativní zpracování dokumentu XML, které bylo zpracováno členy ové konference XML-DEV a upraveno Davidem Megginsonem. Na rozdíl od analyzátoru DOM zde nedochází k tvorbě paměťového modelu dokumentu, nýbrž dochází k vyvolávání událostí při průchodu jednotlivými uzly. V okamžiku, kdy parser narazí na uzel, vyvolá tedy událost, která může být programově zpracována. Obrázek 2.5 ilustruje tuto situaci. Obr Zpracování uzlů pomocí analyzátoru typu SAX Rozeznáváme tyto události: počáteční tag elementu, koncový tag elementu, obsah elementů, entity, chyby v analýze. Výhodou tohoto rozhraní může být: rychlost zpracování, práce s uzly již v době průchodu, menší nároky na paměťové kapacity. Možné nevýhody: 19
22 větší pracnost při tvorbě kódu pro obsloužení události, absence následného modelu dokumentu. Zatímco tedy aplikace využívající DOM jsou nejvíce využívány například pro XML editory, kde se neustále pracuje s modelem dokumentu XML, rozhraní SAX bývá využíváno u rozsáhlých dokumentů XML zpracovávaných například do databáze nebo u serverových aplikací. Dalším prvkem XML, týkajícím se přímo oblasti WS, jsou jmenné prostory (namespace) Jmenné prostory Jmenné prostory se mohou definovat jako mechanismus pro identifikaci elementů. Tento mechanismus přesouvá elementy do globálnějšího prostoru, který se nazývá jmenný prostor[s]. To je důsledkem toho, že jazyk XML je rozšiřitelný, a proto je nutné definovat určitá pravidla pro správu názvů elementů, neboť můžeme mít například element JMENO, který definovalo ve svém dokumentu více autorů, ale každý tento element může mít jiný význam. Z toho vyplývá, proč je nutné přiřazovat elementům tento globálnější kontext. Jednou z myšlenek bylo vytvoření globálního registru přípustných tagů a definic. To by svůj účel splnilo, ale na druhou stranu by toto řešení prudce snížilo a omezilo pružnost XML, a proto nebylo použito. S mechanismem jmenných prostorů tyto podstatné a zásadní charakteristiky jazyku XML zůstávají. Jmenné prostory nejsou důležité jen proto, aby zabránili kolizím shodných názvů, ale obecněji jsou důležité také pro procesor XML, který si je může roztřídit do skupin a pracovat s nimi různým účelovým způsobem[6]. 20
23 ns-prefix :lokální -název Obr Kvalifikovaná syntaxe názvu Na obrázku 2.6 vidíme kvalifikovanou syntaxi názvu elementu - tzn. včetně deklarace vlastního jmenného prostoru. Prefix (1) jmenného prostoru je následován dvojtečkou (2) a za ní je název (3) vlastního elementu, eventuálně může jít o atribut. xmlns:název = "url" Obr Syntaxe deklarace jmenného prostoru Obrázek 2.7 nám znázorňuje syntaxi deklarace jmenného prostoru. Začíná klíčovým slovem xmlns (1) s dvojtečkou, které XML parseru říká, že tento atribut je definicí jmenného prostoru, následuje prefix jmenného prostoru (2), znaménko přiřazení a na posledním místě kvalifikátor URI (Uniform Resource ldentifier) ohraničený uvozovkami (3). Důležité je podotknout, že názvem jmenného prostoru je toto URI a ne vlastní předpona. Ta jen vytváří mechanismus pro to, abychom nemuseli vypisovat celý identifikátor URI, ale jen vhodně zvolenou zkratku. Systém URl se používá pouze pro zajištění jedinečnosti názvů a občas je pro začátečníka matoucí, protože může, ale nemusí odkazovat na popis názvů. N apříklad na adrese může existovat dokument s popisem nějakého elementu, ale rovněž nám může prohlížeč zobrazit chybu (chyba č. 404), že daný zdroj neexistuje, a i přesto bude 21
24 deklarace jmenného prostoru v pořádku. Důležitá je tedy právě pouze jedinečnost URl. Je dobrým zvykem vytvářet tento identifikátor ve tvaru vlastní domény. Jednou z dalších možností je použití identifikátoru URN (Uniform Ressource Name ). Jaký je vlastně vztah mezi URl, URL a URN? Můžeme konstatovat, že URl bývá současně adresami URL. Identifikátor URL odkazuje na soubor nebo zdroj na určitém počítači, zatímco URN je jen obecným názvem určitého zdroje a není tedy adresou. Záštitu nad tímto identifikátorem má organizace ITEF (Internet Engineering Task Force), která na jeho podobě pracuje. Příkladem identifikátoru URN může být například číslo ISBN, které jednoznačně identifikuje knihu a nemůže být duplicitní. Mohlo by vypadat například následovně: urn:isbn:o Jinou možností je využití persistentních URL- PURL (Permanent URL). Principem těchto identifikátorů je již jejich registrace, aby byly vyloučeny chyby nenalezení zdroje. Pomocí registrace je řešen případ, kdy dojde ke změně lokace daného zdroje, a stačí změnit jednou lokační údaj v registrační databázi. Samotný jmenný prostor musí být v dokumentu deklarován dříve než se použije nebo je třeba plně kvalifikovat každý element, který potřebujeme použít z jiného jmenného prostoru. Deklarace jmenného prostoru je ve stylu atributu elementu a jakýkoliv potomek tohoto elementu se stává součástí tohoto jmenného prostoru. Následuje příklad plné kvalifikace elementu, která se ale moc nepoužívá, neboť není příliš praktické neustále vypisovat celý název: < kniha xmlns=" Prostředí WWW </ kniha > S definovaným prefixem by kvalifikace vypadala následovně: <?xml version="l.o"?> <KN: knihovna xmlns:kn=" <KN: kniha > Prostředí c/kn: kniha > </KN: knihovna > WWW 22
25 Výhoda této definice spočívá i v tom, že v případě změny identifikátoru URl, stačí identifikátor změnit pouze na jednom místě. Nejpoužívanějším místem, kde se obvykle definuje jmenný prostor, je kořenový element dokumentu XML. V případě nutnosti definice více jmenných prostorů, je definujeme prostě vícekrát za sebou: c?xml version="l.o"?> <knihovna xmlns:kn=" xmlns:os=" <KN:kniha> ckn:titul> Prostředí WWW c/kn:titul> cos:autor> Jiří c/os:autor> </KN: kniha > </ knihovna > Novák O jmenných prostorech by bylo možné pojednat určitě v mnohem větší šíři, nicméně by se nejednalo už o problematiku užívanou v prostředí webových služeb, a proto zde nebude dále probírána Schémata XML - XSD Jazyk XML je velmi pružný a nabízí velkou flexibilitu. Občas se ale může hodit vynutit od dokumentu XML určitou schémata[s]. Tato schémata představují prostředkem strukturu zápisu. Proto vznikla XML formální popis dokumentu. Prvním pro modelování dokumetu XML se stal modelovací jazyk DTD (definice typu dokumentu), který umožnil zprostředkovat mechanismus pro popis struktury dokumentu. DTD vychází přímo z jazyka SGML a je součástí definice XML. Nepříjemnou skutečností, která z toho vyplývá je, že vlastní syntaxe DTD není Validním dokumentem jazyka XML, což se stalo terčem velké kritiky, dále nepodporuje definování vlastních datových typů (v podstatě žádných) a rovněž nepodporuje jmenné prostory. Společnost Microsoft proto začala pracovat na svém vlastnílll. návrhu a předložila organizaci W3C vlastní návrh jazyka XML Data. Reakc' 1 na tuto předlohu a stávající kritiku bylo to, že organizace W3C začala 23
26 pracovat usilovně na novém jazyku pro definování požadavků na obsah dokumentu a v květnu roku 2001 se objevilo XSD neboli XML Schema Definition, které bylo touto organizací doporučeno. XSD nám nabízí následující základní charakteristiky: definici základních datových typů - řetězec, datum, celé číslo a řadu dalších, možnost definice složitých typů - např. typ Jmeno _autora je složen z prvků Krestni a Prijmeni, přičemž oba jsou typu řetězec, kontrola pořadí a vzájemné hierarchie - např. Jmeno _autora smí obsahovat pouze prvky K.restni a Prijmeni, přičemž se musí vyskytovat přesně v tomto pořadí, kontrola počtu výskytu jednotlivých prvků - např. Jmeno _autora musí obsahovat nejvýše jeden prvek Krestni a právě jeden prvek Prijmeni kontrolu intervalu u měřitelných hodnot jako jsou čísla nebo časové údajenapř. věk musí být vyšší než 18, vynucení určitých hodnot prvku - např. pohlaví musí být buď "muž" nebo v " "zena, dodržení délky údaje- např. rodné číslo musí být 9 až 10 znaků, cena musí mít maximálně dvě desetinná místa, kontrola formátu pomocí regulárních výrazů - např. musí obsahovat právě jeden znak"@" a za ním minimálně jednu tečku. Celé schéma je vlastně dokument XML, který používá speciální elementy. Všechny tyto elementy musí patřit do jmenného prostoru Obvykle se pro tento jmenný prostor používá prefix xs nebo xsd. Celé schéma musí být vždy uzavřeno v elementu schéma obsahujícím definice elementů. Definice elementu se zapisuje pomocí elementu element, kdy pro každý element musí schéma určit jeho typ. Rozlišovány jsou přitom dva typy - jednoduché a komplexní. Jednoduché typy se používají pro skalární hodnoty. XML schémata mají některé vlastní předdefinované typy a následující tabulka zobrazuje výčet nejčastěji používaných typů: 24
27 /Typ ;)string '[Popis lretezeczn llv v aků... I r--'-'--'-'- ;_;_;.'---'-"--'- ~~;logická /Ukázka/Poznámka autor : boolean true, fal se, 1, o ;hodnota. r ,: r::= ' decimal ildesetinné číslo ~~,:-:--;--' ~ desetinné číslo s přesností nejméně 18 platných číslic lnoat--~ desetinné číslo I le-~, o, ov~l, ' ' V' t' j 32bltove c1slo v plovouc1 desetmne carce ~d r 'v'l le-3,0.001, /uuuuu; I ese mne ClS 0 ' 64bitové číslo v plovoucí desetinné čárce. ' F. I dé.lka.ča. s.o.véh. o Pl Y2M3DT1 OH3 OM ukázka re. p.rezentuje int.e rval o dé.l ce uratwn.. 1. d k d v ' v dn d h d" v. ~ _., mterva u. pe en ro, va mes1ee, tří _ y, eset o ma třicet mmut I! I : T10:58:53+02:00, T08:58:53Z I ldatetimet datum a čas údaj je ve formátu a může obsahovat i časovou zónu F llčas. 12:15:00+02:oo, 10:15:ooz, 10:15:00 časovýúdaj ve 'formátu ; může obsahovat časovou zónu :ldate :!datum ~~~% 0 :e-~:rmátu (rok-měsíc-den) ~~~r-_;_;,;_:~:.:.;.:_;_;"---'-'--c:-,. / lanyuri! adresa URl pakákoliv URl adresa; může být absolutní i relativní llanguage ~.~,b..azykový k.. ód 'le-s-,-en u_s. 'i _ kód identifikující jazyk )integer ijcelé číslo.. I I long I celé číslo [-17, o, , o, číslo je v rozsahu od do , což odpovídá 64bitovému celému číslu Tabulka 2.1. Zabudované datové typy Obsahuje- li však element další elementy nebo atributy, musíme použít komplexní typ ( complextype ). Zde je příklad jednoduchého XML dokumentu: <?xml version="l.o"?> <kniha> cautor>tomáš Novýc/autor> cnazev>learnig XMLc/nazev> cvydavatel>computer Pressc/vydavatel> crok vydani> c/rok vydani> </kniha> - - Zde je možné schéma XML, které definuje jeho elementy pomocí komplexního typu: 25
28 c?xml version="l.o"?> cxs:schema xmlns:xs=" cxs:element name="kniha"> cxs:complextype> cxs:sequence> cxs:element name="autor" type="xs:string"/> cxs:element name="nazev" type="xs:string"/> cxs:element name="vydavatel" type="xs:string"/> cxs:element name="rok vydani" type="xs:date "/> c/xs:sequence> c/xs:complextype> c/xs:element> c/xs:schema> Komplexní typy slouží k modelování struktury dokumentu a definují se pomocí elementu complextype. Komplexní typ lze definovat samostatně, aby ho pak bylo možné použít v dalších definicích. Ve složených datových typech můžeme využít dalších konstrukcí. Následuje výčet indikátorů pořadí: sequence - sekvence určuje, že elementy v ní definované, musí dodržet přesně definované pořadí, choice- určuje, že lze zvolit pouze jeden element z definované množiny, all - jedná se o datový typ obsahující definovanou množinu elementů v jakémkoliv pořadí. Příklad sekvence: cxs:element name="autor"> cxs:complextype> <xs:sequence> cxs:element name="krestni_jmeno" type="xs:string"/> cxs:element name="prijmeni" type="xs:string"/> </xs:sequence> c/xs:complextype> c/xs:element> Mezi indikátory výskytu patří: maxoccurs - specifikuje maximální počet výskytu elementu, 26
29 minoccurs - specifikuje minimální počet výskytu elementu. Příklad indikátoru výskytu: cxs:element name="osoba"> cxs:complextype> cxs:sequence> cxs:element name="jmeno" type="xs:string"/> cxs:element name="jmena deti" type="xs:string" maxoccurs="lo"/> - c/xs:sequence> c/xs:complextype> c/xs:element> Ukázka znázorňuje skutečnost, že elementjmena_deti se musí vyskytnout minimálně jednou (defaultní hodnota pro minimální výskyt je 1) a maximálně desetkrát. Dalším významným prvkem, které schéma XML u datových typů nabízí, jsou restrikce. Mezi nejpoužívanější patří následující: řetězce - length, minlength, maxlength, pattem, enumeration, whitespace, číselné typy - maxlnclusive, maxexclusive, minlnclusive, minexclusive, totaldigits, fractiondigits, pattem, enumeration, binární data - length, minlength, maxlength, pattem, enumeration, whitespace [ 6]. Jedná se o aplikaci určitých omezení na datové typy jako například určení maximální délky řetězce, definování hranic číselného typu atd. Schémata jsou důležitým rysem jazyka XML a hrají svoji roli při definování typů operací v rámci definice dokumentu WSDL a SOAP zprávy, o kterých bude pojednáno dále. 27
30 2.4 SOAP SOAP (Simple Object Access Protocol) je definicí informace založené na jazyku XML, která může být využita pro výměnu strukturovaných informací mezi síťovými prvky v decentralizovaném, distribuovaném prostředí[8]. Jednodušeji řečeno jde o "odlehčený'' protokol určený pro výměnu informací v decentralizovaném prostředí na bázi XML[9]. V současné době je jeho nejnovější specifikací verze 1.2. Konsorcium W3C začalo pracovat na jeho specifikaci v roce 1999 v okamžiku, kdy se začalo vyvíjet Schéma XML, které bylo označeno za jednu z klíčových částí specifikace SOAP. SOAP toto schéma využívá k definování užívaných datových typů. Verze SOAP 1.1. byla zveřejněna v květnu roku Vznikla na základě spolupráce velkých softwarových společností Microsoft, IBM, Lotus Development a UserLand Software. Tato specifikace pak byla postoupena konsorciu W3C. Současná verze je 1.2., která obsahuje částečné změny v struktuře dokumentu, syntaxi, svázání s protokolem HTTP, definici RPC a kódování SOAP. Následující tabulka 2.2 udává stručný přehled verzí protokolu SOAP. SOAP 1.1 N amespace Name Spec Location I schemas.xmlsoap.org/ s o ap/ envelope/ SOAP 1.2 N amespace Name Spec Location / (Primer) Tab 2.2. Vydání verzí SOAP 28
31 Tento protokol je definovaný jako jednosměrný, bezstavový mechanismus přenosu zprávy mezi uzly SOAP, kde na jedné straně je SOAP odesílatel a na druhé SOAP příjemce. Nicméně se očekává, že tento mechanismus bude implementován v aplikacích v podobě více komplexnějšího vzoru komunikačního scénáře jako například ve stylu požadavek/odpověď. komunikační protokol ~-o_i_e 0 _s_~_~_e_i~~------~~~------~ ~I P_r_u_~-~-~-e--~ zpráva požadavek SOAP odesílatel SOAP příjemce odpověď Obr Jednosměrná a dvousměrná komunikace zpráv SOAP Jedním z cílů návrhu protokolu SOAP 1.2. bylo zapouzdření funkcionality vzdáleného volání procedur (RPC) při použití flexibility a univerzálnosti jazyka XML. Aby bylo možné vyvolat toto RPC, jsou nutné znalosti následujících informací: adresa cílového uzlu SOAP, název procedury nebo metody, znalosti typů vstupních parametrů zasílaných metodám a stejně tak parametrů výstupů nebo návratových hodnot, oddělení argumentů, které identifikují webový zdroj, který je skutečným cílem volání RPC. výměnný typ zasílání zpráv- MEP (message exchange pattems), volitelně data, která mohou být přenášena jako součást SOAP hlaviček[9]. 29
32 Tyto informace mohou být vyjádřeny za pomoc1 různých prostředků včetně formálního jazyka IDL (Interface Definition Language). SOAP zprávy se mohou přenášet dvěma základními způsoby: SOAP RPC - jde o zasílání zpráv založeném na interpretaci volání RPC. SOAP RPC reprezentace představuje sadu konvencí, které reprezentují RPC požadavky a odpovědi. Při použití tohoto typu volání je pak SOAP požadavek formulován jako metoda s žádným nebo více parametry. V případě jednoduché struktury pak představuje vnější element název metody a vnitřní elementy jsou parametry. SOAP odpověď je potom konstruována ve stejném stylu. Organizace WS-I ( zabývající se propagací webových služeb ve svém základním implementačním profilu webových služeb WS-I uvádí použití SOAP RPC jako volitelné. SOAP Document literal - SOAP rovněž podporuje komunikaci dvou aplikací ve formátu, kdy SOAP odesílatel zašle zprávu SOAP příjemci, který určuje, co s danou zprávou učinit. Odesílatel nepotřebuje znát implementaci služby na druhé straně, stačí pouze znalost formátu zprávy a přístupový bod URl. Celá zátěž je pak přenesena na SOAP příjemce, aby rozhodnu! na základě zprávy, o co odesílatel žádá a jak má požadavek zpracovat. Příklad zaslaného SOAP bloku: POST /EndorsementSearch HTTP/1.1 Host: Content-Type: text/xml; charset="utf-8" Content-Length: 261 SOAPAction: " <SOAP-ENV:Envelope xmlns:soap ENV=" SOAP ENV:encodingStyle=" g/"> <SOAP-ENV:Body> <m:getendorsingboarder xmlns:m=" <manufacturer>k2</manufacturer> <model>fatbob</model> </m:getendorsingboarder> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 30
33 2.4.1 Uzly a role SOAP tedy představuje distribuovaný model zasílání zpráv mezi odesílatelem a příjemcem zprávy. Tyto dva body bývají také označovány jako SOAP uzly[9]. Nicméně skutečností je,'~,:~e zpráva SOAP nemusí být zasílána pouze v rámci těchto dvou bodů, ale může být přeposílána v rámci více uzlů, kdy vnitřní uzly působí jako prostředníci předávání zprávy. Jde o tzv. SOAP intermediaries[9]. Model zpracování SOAP hovoří o tom,jak se uzel přijímající SOAP zprávu zachová. Uzel může být jeden z trojice odesílatel, příjemce nebo prostředník. Za pomoci rolí můžeme pak adresovat SOAP zprávu uzlu, který působí v konkrétní roli, prostřednictvím role atributu hlavičkového bloku. Každý uzel má při zpracování konkrétní zprávy určeny specifikované role, které se v průběhu zpracování nemění. Role je definovaná za pomoci systému URl. V SOAP 1.2 jsou definovány tři základní role: next - tuto roli hrají uzly zprostředkovávající předání zprávy dál. ( none - tuto roli nesmí představovat žádný uzel včetně cílového ( ultimatereceiver role specifikující konečného příjemce ( [9] SOAP Message Zpráva SOAP je XML Infosetem, jehož kořenovým elementem je element Envelope (obálka). Tento element je povinný a může obsahovat další dva elementy Header (hlavička) a Body (tělo). Dalším elementem ve zprávě SOAP může být element Fault (chyba). Všechny elementy verze SOAP 1.2 jsou definovány ve jmenném prostoru 31
34 Následující obrázek nám zobrazuje, - jak vypadá struktura zprávy SOAP. Obr Struktura SOAP zprávy Obrázek 2.9 zobrazuje strukturu standardní SOAP zprávy. Taková zpráva musí obsahovat pouze textové informace ve formátu XML. Bezesporu zajímavá je možnost přenášet zprávou SOAP i jakékoliv jiné informace jako například dokumenty PDF, obrázky, binární soubory a další digitální objekty. V této příloze je samozřejmě možné přenést taky například další XML dokumenty. Tyto informace musí být ale přenášeny vždy ve formě přílohy. Obrázek 2.1 O ilustruje tuto situaci. 32
35 nebo jiná data Obr. 2.1 O. Zpráva SOAP obsahující přílohu Element Envelope Element Envelope neboli obálka je povinným elementem zprávy SOAP. Každá zpráva musí obsahovat právě jeden tento element, který je současně elementem. kořenovým <soap:envelope xmlns:soap=" <soap:header> <!-- optional --> <!-- header blocks go here... --> </soap:header> <soap:body> 33
36 <!-- payload or Fault element goes here... --> </soap:body> </soap:envelope> V uvedeném příkladu lze spatřit strukturu tohoto elementu. Obálka definuje strukturu zprávy, verzi protokolu a volitelně další jmenné prostory, používané uvnitř zprávy. Obálka je definována jmenným prostorem <env:envelope xmlns:env=" V případě použití jiného jmenného prostoru musí aplikace generovat chybovou hlášku a zprávu zrušit. Tento element může obsahovat atribut encodingstyle, který se používá pro definování datových typů v dokumentu. Zpráva SOAP nemá žádné implicitní kódování a tento atribut je nepovinný. Příklady hodnot atributu: " " " Element Envelope může obsahovat dva další elementy - nepovinný Header a povinný element Body Element Header Volitelný element Header (hlavička) obsahuje aplikačně specifické informace o zprávě SOAP. Takovými informacemi může být například autentifikace, platba nebo transakční informace. Následuje příklad hlavičky SOAP: <env:header xmlns:env=" <t:transaction xmlns:t=" env:mustunderstand="true" > 5 </t:transaction> </env:header> 34
37 SOAP definuje čtyři atributy v implicitním jmenném prostoru - encodingstyle, role, mustunderstand a relay. Tyto atributy elementu Header definují, jak by měl příjemce zpracovávat zprávu SOAP. role - indikuje SOAP uzel, který má jako cíl příslušná SOAP hlavička. Typ tohoto atributu je xs:anyurj, mustunderstand - tento atribut určuje, zda zpráva musí být daným SOAP uzlem zpracována nebo je nepovinná. Implicitní hodnotou je false. V případě definování tohoto atributu musí být tato hodnota nastavena na true. Datový typ tohoto atributu je xs:boolean, relay - specifikuje, zda-li má být daný blok SOAP hlavičky přenesen, pokud nedojde k jeho zpracování, encodingstyle -viz popis v kapitole Element Envelope Element Body Element Body (tělo) je povinným elementem každé SOAP zprávy. Je mechanismem pro přenos informací pro konečného příjemce (ultimate receiver) zprávy. Pokud je SOAP použit v "dokumentově - orientovaném" módu je obsahem tohoto elementu obecný XML blok. V tomto případě se o zpracování stará samotná aplikace. V druhém případě, kdy je SOAP použit pro vzdálené volání procedury (RPC), je obsahem elementu Body žádost/odpověď vzdáleného volání procedury či funkce. Opět definuje atribut encodingstyle, o kterém již bylo pojednáno dříve (kapitola Element Envelope). Tento element může obsahovat jakýkoliv obsah dalších elementů s různými jmennými prostory Element Fault 35
38 Tento element je nepovinným elementem, který je, pokud je definován, obsažen v elementu Body. Slouží k přenášení chybových informací v SOAP zprávě. Bez tohoto elementu by musela každá aplikace definovat svoji vlastní infrastrukturu pro určení úspěchu nebo chyby. Specifikace SOAP 1.2. definuje pro obsah tohoto elementu pět dalších elementů, z toho dva povinné: code- povinný element code (kód), který obsahuje jeden z předdefinovaných typů: o VersionMismatch -nesprávná verze protokolu nebo chybný element, o MustUnderstand- uzel nemůže zpracovat povinný Header element, o DataEncodingUnknown -neznámý datový typ, o Sender- chyba u odesílatele (špatná formulace, atd.), o Reciever - chyba při zpracování u poskytovatele, reason- povinný element Reason (příčina), textově popisující chybu, node - volitelný element určující, který SOAP element způsobil chybu ve zpracování zprávy, role - volitelný element indikující, v jaké roli působil daný SOAP uzel v okamžiku výskytu chyby. Jsou definovány 3 role, a to next, no ne a ultimatereceiver. detail - nepovinný element, vyhrazený pro chybu generovanou aplikací, vztažený k tělu SOAP zprávy. 2.5 WSDL WSDL (Web Service Description Language) je jazyk pro popis veřejného rozhraní webových služeb pomocí XML formátu využívající standardy XML Namespaces a XML Schema, zahrnující kompletní, strojově zpracovatelnou dokumentaci služby - od abstraktního popisu funkcionality služby, až po konkrétní data[13]. Vznikl sloučením tří jazyků firem IBM, Microsoft a Ariba s názvy NASSL, SCL a SDL do jednoho jazyka nazvaného WSDL 1.1. Konsorcium W3C vzalo WSDL 1.1 na 36
39 vědomí a ustanovilo pracovní skupinu s názvem Web Services Description Working Group, která nyní pracuje na jeho novější verzi WSDL 2.0 a zatím je stále ještě ve fázi pracovního návrhu. Ukončení prací na její specifikaci se očekává začátkem roku Dokument WSDL popisuje, jakou funkcionalitu nám webová služba nabízí, jaká je s ní komunikace a na kterém místě je přístupná. Jde o mechanismus strukturovaného popisu operací webové služby, které mohou zpracovat: možné formáty zpráv, podporované protokoly a přístupové body služby[l3]. Existují rovněž taky ale vývojové nástroje pro tvorbu webových služeb, které mohou automaticky generovat z dokumentů WSDL příslušná aplikační rozhraní pro volání webových služeb (tzv. WSDL toolkity). Vlastní WSDL dokument se obecně sestává ze dvou částí: abstraktní část - definuje zprávy (element message), které jsou zasílány v rámci služby, vzor jejich výměny (MEP), určující sekvenci a kardinalitu zpráv, jeho přiřazení konkrétní operaci (operation) a sloučení těchto operací do logických skupin (operation). Abstraktní popis je nezávislý na konkrétní implementaci webové služby. konkrétní část - specifikuje vazbu na konkrétní formát přenosu zpráv (binding), síťovou adresu, kde je tato vazba dostupná (port), a určení služby ( service ), kterou tyto cílové body tvoří. Messages Operations Obr. 2.1 L Koncept WSDL 37
40 2.5.1 Definice služby Obecně vzato je dokument WSDL sadou různých definic. Právě kořenovým elementem WSDL dokumentu je element definitions. Struktura této části je následující: <Wsdl:definitions name="nmtoken"? targetnamespace="uri"?> </wsdl:definitions> Služby jsou definované za pomoci šesti hlavních elementů: types (datové typy) - poskytující definici datových typů určených pro popis zasílaných zpráv, message (zpráva) -reprezentující abstraktní definici přenášených dat. Zpráva se skládá z logických částí, přičemž každá z nich je asociována s definicí typů v rámci určitého systému typů, porttype- který je sadou abstraktních operací. Každá operace se odkazuje na vstupní a výstupní zprávy, binding - specifikuje konkrétní protokol, datový formát operace a zprávy definované elementem porttype, port- specifikuje adresu pro element binding. Definuje tedy koncový bod ( endpoint) komunikace. service- tento element agreguje sadu příbuzných portů Element Types Obsah tohoto elementu tvoří definice datových typů platných pro zasílané zprávy. Aby se dosáhlo co nejvyšší interoperability a platformové nezávislosti, je pro tento účel využíváno XML schémat, která byla blíže popsána v kapitole 3.3. Doporučení pro definování datových typů jsou následující: využívání elementů namísto atributů, 38
41 nepoužívat elementy a atributy, které nemají žádný vztah k abstraktnímu obsahu zprávy a jsou spojeny se síťovým prostředím (soap:root, soap:encodingstyle, xmi:id, xmi:name), datové typy typu Array by měli rozšiřovat tento typ definovaný v kódovacím schématu SOAP vl.l, využití typu xsd:anytype pro parametry, které mohou obsahovat jakýkoliv typ. Syntaxe v XML schématu: <definitions... > <types> <xsd:schema... />* </types> </definitions> Element Messages Element Messages se skládá z několika logických částí (part). Každá tato část je spojena s určitým typem z definovaného typového systému ve formě atributu. Syntaxe pro tento element je následující (pozn. - qname je kvalifikovaným názvem XML a nmtoken platným názvem dle definice XML schématu): <definitions... > <message name="nmtoken"> * <part name="nmtoken" element="qname"? type="qname"?/> * </message> </definitions> Atribut elementu message - name obsahuje jedinečný název tohoto elementu mezi všemi elementy typu message v rámci celého WSDL dokumentu. Podobně tak atribut name elementu part definuje jedinečný název pro tento element v rámci jednotlivých elementů message. Vlastní elementy parts jsou pak flexibilním mechanismem pro popis abstraktních částí obsahu zpráv. 39
42 Element porttype Tento element slouží pro definici množin operací, které jsou definované elementem operation. Jeho syntaxe je následující: <wsdl:definitions... > <wsdl:porttype name="nmtoken"> <wsdl:operation name="nmtoken"... /> * </wsdl:porttype> </wsdl:definitions> WSDL rozeznává 4 druhy přenosových operací: one-way- koncový bod přijímá zprávu, request-response- koncový bod přijímá zprávu a odesílá na ni odpověď, solicit-response- jde o obrácený případ požadavku typu request-response, notification - opačný případ požadavku typu one-way. Obrázek 2.12 ilustruje tyto operace. One-way S---- Vstupniparameby Reauest-response klient ---- Vstupní parametry------i --- Výstupní parametry----- služba klient Solicit-response ---- Výstupní parametry Vstupní parametry------i služba Notification s---- Výstupnl parameby-----,i!isilu žb a mil Obr Typy přenosových operací 40
43 Syntaxe pro operaci one-way vypadá následovně: cwsdl:definitions... > cwsdl:porttype... > * cwsdl:operation name="nmtoken"> cwsdl:input name="nmtoken"? message="qname"/> c/wsdl:operation> c/wsdl:porttype > c/wsdl:definitions> V této operaci je definovaný pouze element input, specifikující formát zprávy pro tento typ operace. Syntaxe operace request-response: cwsdl:definitions... > cwsdl:porttype... > * cwsdl:operation name="nmtoken" parameterorder="nmtokens"> cwsdl:input name="nmtoken"? message="qname"/> cwsdl:output name="nmtoken"? message="qname"/> cwsdl:fault name="nmtoken" message="qname"/>* c/wsdl:operation> c/wsdl:porttype > c/wsdl:definitions> Tento typ definuje elementy pro vstup a výstup - input, resp. output. Dalším nepovinným elementem je element fault, který může být použitý pro případnou chybovou hlášku, která může být výstupem této operace. Syntaxe operace solicit-response: cwsdl:definitions... > cwsdl:porttype... > * cwsdl:operation name="nmtoken" parameterorder="nmtokens"> cwsdl:output name="nmtoken"? message="qname"/> cwsdl:input name="nmtoken"? message="qname"/> cwsdl:fault name="nmtoken" message="qname"/>* c/wsdl:operation> c/wsdl:porttype > c/wsdl:definitions> Syntaxe této operace je stejná jako u předchozí operace s tím, že je obrácené pořadí u elementů input a output. 41
44 Syntaxe operace notification: <wsdl:definitions... > <wsdl:porttype... > * <wsdl:operation name="nmtoken"> <wsdl:output name="nmtoken"? message="qname"/> </wsdl:operation> </wsdl:porttype > </wsdl:definitions> Tato operace definuje element pro výstup- output Element binding Element binding už poskytuje konkrétní informace o použití příslušných protokolů pro odpovídající operace a zprávy definované odpovídajícím elementem porttype, přičemž pro každý element porttype může být definován libovolný počet elementů binding. Jeho obsahem je několik rozšířitelných elementů, které definují konkrétní syntax pro vstupní (input) a výstupní (output) parametry a chybové hlášky (fault). Syntaxe tohoto elementu je následující: <wsdl:definitions... > cwsdl:binding name="nmtoken" type="qname"> * <-- extensibility element {l) --> * <wsdl:operation name="nmtoken"> * <-- extensibility element {2) --> * cwsdl:input name="nmtoken"? >? <-- extensibility element {3) --> </wsdl:input> <wsdl:output name="nmtoken"? >? <-- extensibility element {4) --> * </wsdl:output> <wsdl:fault name="nmtoken"> * <-- extensibility element {S) --> * </wsdl:fault> c/wsdl:operation> c/wsdl:binding> </wsdl:definitions> Tento element obsahuje atributy name, definující jeho jedinečný název v rámci dokumentu WSDL a atribut type, který je referencí k příslušnému elementu porttype. Element operation je spjatý s konkrétní operací definovanou v rámci 42
45 aktuálního elementu porttype. Zde je nutné podotknout, že název operace nemusí být jedinečný vzhledem ke skutečnosti, že operace mohou být přetíženy ( overloading), tzn. definovány vícekrát se stejným jménem a různými typy či počtem parametrů Element port Element port definuje koncový bod ( endpoint) ve tvaru adresy pro příslušný element binding, který je definovaný v rámci jeho atributu. V jeho rámci nesmí být definována více než jedna adresa. Syntaxe pro tento element vypadá následovně: <wsdl:definitions... > <wsdl:service... > * <wsdl:port name="nmtoken" binding="qname"> * <-- extensibility element (1) --> </wsdl:port> </wsdl:service> </wsdl:definitions> Element service Element service seskupuje skupinu portů, které tvoří dohromady určitý logický celek. Tyto porty pak mají mezi sebou následující vztahy: porty mezi sebou vzájemně nekomunikují, pokud element service obsahuje více portů sdílejících stejný element porttype, pak jsou tyto porty alternativami mezi sebou, testováním portů můžeme určit jejich porttype, což je užitečné v případě určitých vazeb mezi operacemi elementů porttype. Syntaxe je následující: <wsdl:definitions... > <wsdl:service name="nmtoken"> * <wsdl:port... I>* </wsdl:service> 43
46 </wsdl:definitions> SOAP Bindings WSDL má vestavěný binding pro protokol SOAP 1.1, který podporuje následující specifikace: příznak, že binding je svázáno s protokolem SOAP 1.1, způsob specifikace adresy pro koncový bod, URI pro HTTP hlavičku - SOAP Action, seznam definicí hlaviček, které jsou přenášeny jako součást elementu Envelope[ 13]. Tato specifikace není vyčerpávající vzhledem ke skutečnosti, že tato část je neustále ve vývoji. Mezi nejdůležitější elementy patří: soap:binding- definuje způsob přenosu pomocí atributu transport. Hodnota URI odpovídá specifikaci HTTP vazby specifikované SOAP. Jiné hodnoty na tomto místě by specifikovaly způsob jiného přenosu (FTP, SMTP). Atribut style definuje, zda se použije způsob volání RPC nebo přenos obecného bloku dokumentu XML (document). soap:operation - pomocí tohoto elementu jsou konkrétní operaci přiřazovány konkrétní implementační SOAP specifikace. Obsahuje atribut soapaction, který je pro HTTP svázání povinný a nesmí obsahovat relativní URL. Druhý atribut style může předefinovat stejný atribut elementu soap:binding soap:body-jde o bližší specifikace samotného těla SOAP zprávy. soap-fault- specifikuje obsah elementu SOAP Fault. soap:header, soap:headerfault - umožňují definovat hlavičky přenášené v elementu SOAP Envelope. soap:address - zde se zadává adresa (URI) pro jednotlivé porty. Port využívající SOAP binding musí specifikovat právě jednu adresu. Schéma URI musí odpovídat přenosu specifikovanému elementem soap:binding. 44
47 2.6 UDDI UDDI (Universa! Description, Discovery and Integration) jsou definované jako internetové registry zpřístupňující informace o společnostech a jiných entitách a jejich rozhraních (API) [18]. Zjednodušeně řečeno, jde o registr informací připomínající společnostech například telefonní seznam, s pomocí kterého lze nalézt informace o a jimi vystavovaných službách. Vlastní registr UDDI je rovněž webovou službou a komunikuje se s ním pomocí SOAP zpráv[9]. Je vystavěn na existujících standardech jazyka XML a protokolu SOAP. Tok služby Obr Zakomponování UDDI ve WS Na obrázku 2.13 můžeme vidět jak je UDDI začleněné ve vrstvách webových služeb a tvoří jednu z klíčových komponent pro specifikaci, vyhledání a vyvolání webových služeb. Specifikace UDDI definují: SOAP aplikační programové rozhraní (API) používané programy, které žádají nebo zveřejňují informace pomocí těchto registrů XML schémata datového modelu registrů a formáty zpráv SOAP definice WSDL pro programové rozhraní SOAP definice (technické modely - tmodels) identifikátorů a kategorizačních systémů používaných k identifikaci a kategorizaci UDDI registrací. 45 1!1 1[1 1[1 I r,i ' ij''.'.
48 Registr UDDI má 2 hlavní funkce: zveřejňovaní- obvykle dochází k registraci společností, které mají zájem na zveřejnění jimi nabízených služeb vyhledávání- jiné společnosti mohou tyto zveřejněné služby pomocí registrů nalézt a využít. Vlastní registr UDDI není nutné požívati jen pro registraci webových služeb, je navržený obecně a může registrovat jakýkoliv typ služeb. To znamená, že služby které jsou v něm registrovány nemusí podporovat SOAP rozhraní a rovněž nemusí být popsány ve formátu WSDL, nicméně ideální a doporučované je společné použití všech těchto tří zde popisovaných komponent(soap,wsdl,uddi) společně Historie UDDI 1.0 bylo původně uvedeno společnostmi Microsoft, IBM a Ariba v září Dnes vystupuje UDDI jako samostatná iniciativa QJ.ttp:// pod záštitou organizace OASIS a zahrnuje již přes 300 organizací. V květnu 2001 Microsoft a IBM zprovoznili první veřejné adresáře odpovídající specifikaci UDDI 1.0. O měsíc později byla zveřejněna specifikace UDDI 2.0, která přinesla některé drobné úpravy v datovém modelu a rozšířila množinu vyhledávacích operací. V únoru 2005 byly dokončeny práce na verzi 3.0, která byla schválena organizací OASIS jak standard. Obsahuje například zásadní změny v konceptu UDDI, týkající se registrace a vzájemné interakce veřejných a privátních UDDI registrů. Tabulka 2.3 udává přehled vydání jednotlivých verzí UDDI[21]. Verze UDDI Rok vydání IDavní cíl Vytvoření základní báze registrů dat společností podnikajících prostřednictvím internetu. Připojení se ke vznikajícím standardům webových služeb a poskytnutí podpory pro flexibilní systémy 46
49 setřídění Podpora zabezpečené komunikace mezi veřejnými a privátními implementacemi. Tabulka 2.3. Přehled vydání jednotlivých verzí UDDI Princip fungování UDOl Registry UDDI tedy poskytují programové informace, které poskytují informace o společnostech a jimi podporovaných službách. Dále nám poskytují programovací model a schéma, které definují způsob jak s těmito registry komunikovat. Veškeré programové rozhraní (API) je definováno v jazyku XML, zabaleno do obálky SOAP a zasíláno pomocí protokolu HTTP.. Situaci ilustruje obrázek na kterém je znázorněn klient zasílající požadavek registrům. Je zpracován obvykle HTTP a SOAP serverem a následně je kontaktována přímo databáze registrů UDDI odkud jsou klientovi vrácena příslušná volání API. V rámci zabezpečení se používá zabezpečeného přenosu pomocí SSL(Socket Secure Layer). Registry UDOl Klient UDDISOAP požadavek UDOl SOAP. odpověď Vytvoření,prohlednutí,aktualizace, smazaní registrace Obr Tok zpráv mezi klientem a registry UDDI 47
50 Je nutné si uvědomit, že stejně jako celá technologie webových služeb, tak i UDDije zaměřeno především na vývojáře. UDDI je a bude využíváno hlavně pro získávání technických specifikací webových služeb vedoucích k jejich snadné implementaci do firemního IS. Vyhledávání a využívání veřejných webových služeb laickými uživateli je zatím vzhledem k nutnosti "programátorských" znalostí velmi obtížná Datový model UDOl Registr UDDI je tvořen datovými entitami, které jsou definovány schématem XML. Toto schéma lze pro verzi 3.0 nalézt na adrese v3.xsd. UDDI definuje následující datové typy: businessentity- představuje organizaci poskytující WS, businessservice- popisuje kolekci WS poskytovaných organizací, bindingtemplate -technické informace pro použití WS, tmodel- popisuje technický model (např. typ WS, používaný protokol atd.), publisherassertion- relace jedné businessentity k jiné, subscription - souhrn změn entity. 48
51 businessentity: Informace o organizac~ kter.á prostřednictví I tmodel: Popis rozhraní služby nebo odkaz na externí technickou r- UDOl publikuje webové služby specifikaci (WSDL}, příp. taxonomii ~ ~ I ~ I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I \ I - businessservice: Informace o -- konkrétní webové službě - r-- bindingtemplate: Technické '--- informace o přístupu ke službě a - specifikace způsobu komunikace publisherassertion: Informace o vzájemném vztahu mezi dvěma ~ organizacemi I I I Obr Datový model UDDI Z obrázku 2.15 můžeme vypozorovat, že jednotlivé entity mezi sebou tvoří relace, které budou popsány v následujících kapitolách. určité Entita businessentity Entita businessentity je na nejvyšší úrovni tohoto datového modelu. Obsahuje informace o společnosti nabízející určité webové služby, které jsou definovány entitou businessservice. Její definice v XML schématu je následující: cxsd:element name="businessentity" type="uddi:businessentity" final="restriction"/> cxsd:complextype name="businessentity" final="restriction"> cxsd:sequence> cxsd:element ref="uddi:discoveryurls" minoccurs="o"/> cxsd:element ref="uddi:name" maxoccurs="unbounded"/> cxsd:element ref="uddi:description" minoccurs="o" maxoccurs="unbounded"/> cxsd:element ref="uddi:contacts" minoccurs="o"/> cxsd:element ref="uddi:businessservices" minoccurs="o"/> cxsd:element ref="uddi:identifierbag" minoccurs="o"/> cxsd:element ref="uddi:categorybag" minoccurs="o"/> 49
52 cxsd:element ref="dsig:signature" minoccurs="o" maxoccurs="unbounded"/> </xsd:sequence> cxsd:attribute name="businesskey" type="uddi:businesskey" use="optional"/> c/xsd:complextype> Tato entita je jedinečně identifikována atributem businesskey, který představuje unikátní identifikátor. Při zveřejňování entity do UDDI registrů jsou dvě možnosti jak dodat daný identifikátor. První možností je, že dodáme tento klíč sami. Druhou možností pak je, že ponecháme tento atribut prázdný, přičemž v tomto případě dochází ke generování klíče v okamžiku vkládání do registrů na jejich straně. To v praxi tedy znamená, že tento identifikátor je při získávání z registrů vždy přítomen. Mechanismus dodávání těchto identifikátorů je obdobný i u dalších entit modelu UDDI. Jediným povinným elementem je name obsahující název společnosti. Element businesssenlice je seznamem služeb, které společnost zveřejňuje. Je tedy propojením k entitám businessservice. Entity identifierbag a categorybag budou blíže specifikovány v kapitolách věnovaných identifikaci a klasifikaci. Další informace v této entitě jsou deskriptivní a doplňující informace obsahující například údaje o oboru v kterém společnost podniká Entita businessservice Tato entita stojí, co se týká úrovně, pod entitou businessentity a představuje už jednotlivou webovou službu. Tato entita neobsahuje technické informace, ty lze získat prostřednictvím relační entity bindingtemplate. Relačním klíčem k nadřazené entitě je volitelný atribut businesskey. Jde tedy o vztah 1 :N z pohledu nadřazené entity. Následuje definice této entity v XML schématu: <xsd:complextype name="businessservice" final="restriction"> cxsd:sequence> 50
53 cxsd:elernent ref="uddi:narne" rninoccurs="o" rnaxoccurs="unbounded"/> cxsd:elernent ref="uddi:description" rninoccurs="o" rnaxoccurs="unbounded"/> cxsd:elernent ref="uddi:bindingternplates" rninoccurs="o"/> cxsd:elernent ref="uddi:categorybag" rninoccurs="o"/> cxsd:elernent ref="dsig:signature" rninoccurs="o" rnaxoccurs="unbounded"/> c/xsd:sequence> cxsd:attribute narne="servicekey" type="uddi:servicekey" use="optional"/> cxsd:attribute narne="businesskey" type="uddi:businesskey" use="optional"/> c/xsd:cornplextype> Analogicky i zde můžeme vidět identifikační atribut servicekey, pro jehož zadávání platí stejné podmínky jako pro klíč nadřazené entity businessentity. Volitelný atribut businesskey obsahuje referenci na nadřízenou entitu businessentity. Zde lze podotknout, že tento klíč nemusí obsahovat vždy stejnou hodnotu jakou drží entita businessentity. Může k tomu dojít v případě, kdy společnost zahrne do své entity businessentity odkaz na službu zprostředkovávanou jinou organizací. V tomto případě hovoříme o tzv. projekci služby(service projection) [20]. Element narne je názvem služby a informace o popisu služby drží element description. Element bindingternplates je seznamem podřízených entit bindingternplate. Je tedy propojením mezi těmito dvěma entitami. Opět jde o vztah 1 :N z pohledu entity businessservice Entita bindingtemplate li Entita bindingternplate obsahuje technické specifikace ohledně webové služby. Poskytuje tedy informace o instanci webové služby, která je přístupná pomocí síťové adresy, typicky pomocí identifikátoru URL. Říká nám jak a kde je tato webová služba přístupná. Její definice ve schématu je následující: <xsd:cornplextype narne="bindingternplate" final="restriction"> cxsd:sequence> 51 rl. I' ::1. I" /:]'i I
54 cxsd:element ref="uddi:description" minoccurs="o" maxoccurs="unbounded"/> cxsd:choice> cxsd:element ref="uddi:accesspoint"/> cxsd:element ref="uddi:hostingredirector"/> c/xsd:choice> cxsd:element ref="uddi:tmodelinstancedetails" minoccurs="o"/> cxsd:element ref="uddi:categorybag" minoccurs="o"/> cxsd:element ref="dsig:signature" minoccurs="o" maxoccurs="unbounded"/> c/xsd:sequence> cxsd:attribute name="bindingkey" type="uddi:bindingkey" use="optional"/> cxsd:attribute name="servicekey" type="uddi:servicekey" use="optional"/> c/xsd:complextype> Princip identifikátoru bindingkey Je opět totožný jako v případě klíčových identifikátorů dvou předchozích entit. Atribut servicekey je propojovacím článkem k nadřazené entitě businessservice. Element description opět udržuje informace o krátkém popisu služby. Element accesspoint je textovou informací obsahující síťovou adresu, která je obvykle ve formátu URL, nicméně taktéž lze například využít ovou adresu nebo dokonce telefonní číslo. Další prvek ve výběru je hostingredirector, který se ale už nepoužívá a je zde jen kvůli zpětné kompatibilitě. Entita tmodellnstancedetails obsahuje seznam jednoho nebo více elementů typu tmodellnstancelnfo. Podstatná je také skutečnost, že tento element obsahuje kolekci atributů tmodelkey udržujících referenci na entitu tmodel Entita tmodel Tato entita je sice na nejnižší úrovni v datovém modelu UDDI, ale svým způsobem je nejdůležitější entitou v systému UDDI. Obecně je jejím hlavním účelem poskytnout abstraktní referenční systém - tzn. se používá tam, kde je potřeba se odkazovat na nějakou (externí) specifikaci. Například technická dokumentace, kterou potřebuje vývojový pracovník pro svoji práci s webovými službami, není obsažena přímo v registrech UDil, ale pomocí entity tmodel lze na ni získat odkaz adresou URL. Významná je také skutečnost, že lze z této informace získat i metadata o této 52
55 dokumentaci a identifikátor entity, která je svázána s daným tmodelem. Tato entita bývá používána pro následující účely v rámci UDDI: definice přenosu a transportních protokolů jako HTTP nebo SMTP, k definování množin hodnot identifikačních a kategorizačních systémů a jmenných prostorů, strukturované kategorizace při využití tzv. "kategorizačních skupin", definování formátů lokačních údajů (např. poštovní adresy), nalezení kvalifikátorů používaných k modifikaci chování UDDI API funkcí typu find _ xx využití typů atributů specifikujících typ zdroje, který je odkazován referencí URl, např. v elementu accesspoint[20]. Její syntaxe je následující: cxsd:complextype name="tmodel" final="restriction"> <xsd:sequence> cxsd:element ref="uddi:name"/> cxsd:element ref="uddi:description" minoccurs="o" maxoccurs="unbounded"/> cxsd:element ref="uddi:overviewdoc" minoccurs="o" maxoccurs="unbounded"/> cxsd:element ref="uddi:identifierbag" minoccurs="0"/> cxsd:element ref="uddi:categorybag" minoccurs="o"/> cxsd:element ref="dsig:signature" minoccurs="o" maxoccurs="unbounded"/> c/xsd:sequence> cxsd:attribute name="tmodelkey" type="uddi:tmodelkey" use="optional"/> cxsd:attribute name="deleted" type="uddi:deleted" use="optional" default="false"/> c/xsd:complextype> Jako v předchozích případech obsahuje i tato entita svůj identifikátor, pro který platí rovněž stejná pravidla jako v předchozích případech. Má název tmodelkey a v případě, že není při zavedení entity do registrů UDDI zadán, je jeho hodnota v okamžiku zápisu do registrů generována. Element name by měl být formátován ve tvaru URl. Element overviewdoc obsahuje reference k externím informacím a instrukcím, informace o typu dokumentu na dané adrese URL atd. Důležitou skutečností v souvislosti se systémem WSDL je fakt, že element overviewdoc 53
56 obsahuje ve své definici element overviewurl, který může odkazovat k vlastnímu dokumentu WSDL popisujícímu rozhraní služby tak, jak bylo v kapitolách věnovaným dokumentu WSDL popisováno. Následující příklad zobrazuje zápis entity tmodel odkazující se na dokument WSDL na adrese /schema. com/test. wsdl: ctmodel xm~ns="urn:uddi-org:api" AAAA-AAAA-AAAA-AAAAAAAAAAAA"> tmodelkey="uuid:aaaaaaaa cname>hp~com:creditcheckc/name> cdescription xml:lang="en">check limit reporterc/description> coverviewdoc> coverviewurl> c/overviewdoc> ccategorybag> ckeyedreference tmodelkey="uuid:cd a-4237-b336-6bdcbdcc6635" keyname="consumer credit gathering or reporting services" keyvalue=" "/> ckeyedreference tmodelkey="uuid:clacf26d d70-39b756e62ab4" keyname="types" keyvalue="wsdlspec"/> c/categorybag> c/tmodel> Pro názornou ilustraci následuje ještě zobrazení zápisu entity businessservice odkazujícího se na tento WSDL dokument pomocí této vydefinované entity: cbusinessservice businesskey="bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb" servicekey="cccccccc-cccc-cccc-cccc-cccccccccccc"> cname>hpcu Credit Checkc/name> cbindingtemplates> cbindingtemplate servicekey="cccccccc-cccc-cccc-cccc-cccccccccccc" bindingkey="dddddddd-dddd-dddd-dddd-dddddddddddd"> caccesspoint URLType="https"> oint> ctmodelinstancedetails> ctmodelinstanceinfo tmodelkey="uuid:aaaaaaaa-aaaa AAAA-AAAA-AAAAAAAAAAAA"/> ctmodelinstancedetails> c/bindingtemplate> c/bindingtemplates c/businessservice> 54
57 Entita publisherassertion Entita publisherassertion se používá ve spojení s entitami typu businessentity a jde o mechanismus vyjádření určité relace mezi dvěma entitami(businessentity) tohoto typu. Příčinou zavedení tohoto mechanismu byla skutečnost, že u některých společností nešlo efektivně využít pro zápis dvou entit tohoto typu jedné entity businessentity. V praxi jde například o velké společnosti s mnoha pobočkami. Její definice v XML schématu je následující: cxsd:complextype name="publisherassertion" final="restriction"> cxsd:sequence> cxsd:element ref="uddi:fromkey"/> cxsd:element ref="uddi:tokey"/> cxsd:element ref="uddi:keyedreference"/> cxsd:element ref="dsig:signature" minoccurs="o" maxoccurs="unbounded"/> c/xsd:sequence> c/xsd:complextype> Tuto relaci mezi dvěma entitami businessentity zpracovávají elementy fromkey a tokey. Je nutné zabezpečit, aby obě tyto společnosti publikovaly entity publisherassertion se stejnými daty tzn., aby vztah byl reciproční. Je na jednotlivých zveřejňovatelích, aby tuto podmínku zabezpečili. Element keyedreference popisuje o jaký vztah se mezi těmito entitami jedná Entita operationallnfo Prostřednictvím této pomocné entity se udržuje historie publikovaných informací. To nastává v praxi v okamžiku, kdy jsou v registrech publikovány základní datové struktury UDDI. Jde o datum a čas vytvoření záznamů, jejich modifikace a identifikační údaje původců změn a operací na záznamech uzlů UDDI. Pomocí této struktury lze tedy zjistit operační údaje provedené na dříve popsaných entitách. Podoba entity operationallnfo je následující: <Xsd:complexType name="operationalinfo" final="restriction"> 55
58 <xsd:sequence> <xsd:element name="created" type="uddi:timeinstant" minoccurs="o"/> <xsd:element name="modified" type="uddi:timeinstant" minoccurs="o"/> <xsd:element name="modifiedincludingchildren" type="uddi:timeinstant" minoccurs="o"/> <xsd:element ref="uddi:nodeid" minoccurs="o"/> <xsd:element ref="uddi:authorizedname" min0ccurs="0"/> </xsd:sequence> <xsd:attribute name="entitykey" type="uddi:uddikey" use="required"/> </xsd:complextype> Klasifikační a identifikační systém UDOl Jelikož se předpokládalo, že se registry UDDI budou neustále rozšiřovat, budou nabývat velkého objemu dat a vyhledávání bez nějakého systému bude proto velmi neefektivní a pomalé, vyvstala za tímto účelem lepšího vyhledání a zjištění informací z registrů UDDI potřeba vyvinout nějaký identifikační a klasifikační mechanismus. Pokud si uvědomíme, že jedním z hlavních smyslů registrů UDDI je proces vyhledání, pak je tato snaha naprosto zřejmá. Návrh této koncepce jde jak cestou využití stávajících identifikátorů (např. DUNS), tak cestou vytvářením vlastních schémat. Prostředkem k dosažení tohoto cíle je skutečnost, že jádrem návrhu UDDI je schopnost strukturovat a modelovat data a metadata Identifikační systém UDDI Identifikační systém UDDI slouží k přiřazení identifikátorů informacím vedených v registrech. Smyslem tohoto systému je, aby uživatel mohl následně vyhledat tyto informace pomocí různých identifikačních systémů. Mezi standardní podporované systémy patří: D-U-N-S Number Identifier System Thomas Register Supplier Identifier Code System. 56
59 Systém UDDI nabízí také možnost vytvoření vlastních systémů pro použití například v privátních registrech. Tyto identifikátory mohou být přiřazeny dvěma entitám z datového modelu UDDI a sice entitě businessentity a tmodel. Tyto entity obsahují element identifierbag, který slouží pro uchování informací vedených v registrech. Situaci ilustruje následující obrázek, který schematicky znázmňuje přiřazení tří identifikátorů (DUNS,GLN, US Tax Code) společnosti My Company Inc. busínessentlty: My Company Inc. buslnesskey: uddl:my_oompany.example Obr Přiřazení identifikátorů entitě businessentity V syntaxi XML by tato situace byla zapsána následovně: cbusinessentity businesskey="uddi:my_company.example"> cidentifierbag> ckeyedreference tmodelkey="uddi:uddi.org:ubr:identifier:dnb.com:du- n-s" keyname="d-u-n-s:my Company" keyvalue=" "/> c/identifierbag> </businessentity> Element identi.fierbag obsahuje subelement keyedreference, jehož výskyt není limitován, a proto je tedy možné přiřadit jedné entitě více identifikačních klíčů. Obsahuje atribut tmode!key odkazující se na entitu tmodel, která identifikuje použitý identifikační systém. 57
60 Klasifikační systém UDDI Podobný systém jako pro identifikaci existuje i pro klasifikaci informací v registrech UDDI. Možnost přiřazení klasifikačních informací je podporována u tří dříve popsaných klíčových entit UDDI - businessentity, businessservice a tmodel. Tyto entity obsahují elementy categorybag s analogickým systémem jako má element pro identifikaci- identifierbag. Následuje příklad zápisu u entity businessentity: cbusinessentity businesskey="a,a-" xmlns="urn:uddiorg:api v2"> cname>companyc/name> ccategorybag> <keyedreference tmodelkey="uuid:cob9fe13-179f-413d-ba5b-5004dbbe5bb2" keyname="naics: Software Publisher" keyvalue="51121" /> ckeyedreference tmodelkey="uuid:4e49abd6-d5a2-4fc2-93a0-04lldbd19e88" keyname="california" keyvalue="us-ca" /> </categorybag> c/businessentity> Ze zápisu tohoto elementu můžeme zjistit, že jde o společnost z Kalifornie, která se klasifikovala jako softwarový vydavatel pomocí systému NAICS (North American Industry Classification System). Mezi podporované standardní klasifikace patří: NAICS (North American Industry Classification System), UNSPSC (Universa! Standard Products and Services Classification), ISO mezinárodní standardní rozdělení do geografických regionů, zahrnující kódy zemí, apod. Stejně jako v případě identifikačních systémů je i zde možné definovat vlastní taxonomické systémy Typy registrů UDOl 58
61 V době začátku vývoje registrů UDDI převládala myšlenka jejich využití v globálním kontextu. Záměrem bylo vybudovat několik centrálních registrů, které by obsahovaly informace o společnostech a jejich webových službách. Postupem času bylo od tohoto konceptu upuštěno a stejná důležitost byla dána budování systémům privátních registrů. Registry z hlediska registrace a přístupu můžeme členit tedy na tyto základní typy: veřejné registry - tyto registry jsou známé pod zkratkou UBR (UDDI Business Registry). Přístup k těmto registrům je otevřený a veřejný. Data v těchto registrech mohou být sdílena a transferována mezi registry. privátní registry - tento typ registrů je izolován od vnějšího síťového prostředí například použitím firewallu apod. Přístup k nim je omezen a data těchto registrů nejsou sdílena. semi-privátní- tento typ registrů může být označen jako kombinace dvou předchozích typů. Jde o registry s řízeným autorizovaným přístupem, které jsou umístěny v kontrolovaném prostředí. Data těchto registrů mohou být sdílena s jinými registry kontrolovaným způsobem. Obr Komunikace UDDI registrů Obrázek 2.17 znázorňuje způsob interakce mezi všemi typy registrů. Jedná se o operace publikace, replikace a monitorování změn. 59
62 3 Současný stav řešení systému ODS v STK 3.1 Systém DDS Úvod Dodávání kopie dokumentu( dokument delivery service) namísto výpůjčky je jednou ze služeb, které knihovny, ale i další instituce (např. databázová centra) uživateli nabízejí. Jedná se o službu, která je většinou zpoplatněná a nabízená na komerční bázi. Hlavní podíl na vzniku služby tohoto typu měly především změny v oblasti vědecké komunikace, k nimž došlo po 2. světové válce [26]. V tomto období došlo k nárůstu publikací periodik a komerčních nakladatelství, současně vznikaly nové specializace ve vědě a výzkumu a začala se zvětšovat potřeba nově vzniklé poznatky publikovat. Tento publikační nárůst dal vzniknout novým službám v informačním průmyslu, a to od vzniku nových producentů sekundárních informačních zdrojů až právě ke vzniku komerčních dodavatelů dokumentů. Služby DDS jsou neodmyslitelně spjaty s činností knihoven. Tyto služby zde prošly určitým rozvojem, a to především v souvislosti s rozvojem digitálních technologií a internetu. Můžeme definovat následující základní typy DDS: meziknihovní výpůjční služby (MVS) - jde o služby provozované v rámci spolupracujících knihoven, kdy knihovny na požádání jiné kooperující knihovny zapůjčí ze svého fondu dokumenty pro její potřeby, resp. pro potřeby koncového uživatele, kterému žádající knihovna dělá prostředníka. Jde o službu nekomerční, pouze v případě určitých výjímek (např. urgentní zpracování apod.) může dojít k platbě za tuto službu. komerční dokumentové dodavatelské služby (CDS) - jedná se o nákup dokumentů na komerční bázi, a to od komerčních dodavatelů, kteří v zájmu uživatelů shromažďují veškeré informační zdroje za účelem jejich zpřístupnění. 60
63 elektronické dodávání dokumentů (EDS) - jde o komunikaci informací v elektronické podobě. To může znamenat jak zprostředkování dokumentu, tak veškerých transakcí doprovázejících tuto službu jako jsou například proces objednávky, platební operace a jiné. sdílení zdrojů (RS12) -je jednou z možností poskytování dokumentů na základě vytvořených kooperačních sbírek, které knihovny využívají pro potřeby svých uživatelů a čtenářů. Na základě smluvního vztahu tedy knihovny zpřístupňují vlastní tištěné i elektronické zdroje uživatelům jiných knihoven Přehled poskytovatelů služeb ODS Mezi nejvýznamnější zahraniční poskytovatele této služby patří následující subjekty: British Library Document Supply Center - BLDSC (Velká Británie), dostupné z www < SUBITO (Německo), dostupné z www< >, JASON (Německo), dostupné z www < english/library/ ordering>, ADONIS (Nizozemí), dostupné z www < CISTI (Kanada), dostupné z www < _ e.html > INIST (Francie), dostupné z www < > UnCover (USA), dostupné z www < V České republice se knihovny spoléhaly především na zahraniční dodavatele dokumentů. K prvním projektům elektronického dodávání dokumentů patřil projekt INVIK STK - Integrovaná digitální knihovna, který byl poprvé představen v roce Byl projektem, který v sobě zahrnoval koexistenci klasické a virtuální knihovny a v rámci jeho služeb bylo možno objednávat digitální kopie dokumentů. 61
64 V současné době se i v dalších knihovnách rozvíjí služby elektronického dodávání dokumentů. 3.2 Analýza stávajícího řešení systému DDS STK Dekompozice systému ODS Při objednávání digitalizovaného dokumentu musí žadatel za účelem získání dokumentu či jeho kopie provést určité úkony. Systém DDS stejně jako ostatní systémy lze rozložit na sadu jednotlivých obecných operací, které jsou znázorněny na následujícím obrázku. ~ Kolhmma~ 1 uživatel Obr Komunikace uživatele se systémemdds Obrázek 3.1 nám znázorňuje jakým způsobem může uživatel obecně pracovat se systémem elektronického dodání dokumentu. Tento proces můžeme rozložit na následující operace: 62
65 vyhledání dokumentu komunikaci se systémem DDS, která zahrnuje tyto dílčí operace: o přihlášení do systému o objednání dokumentu. o digitalizace dokumentu o získání kopie dokumentu,o vyúčtování služeb o odhlášeili ze systému implementace systémů se mohou sam.ozřejmě částečně lišit, nicméně všecrmv zmíněné operace jsou v určité podobě vždy impl~mentovány. Všechny tyto opera~e, tak jak byly popsány, jsou implementovány i ve stávajícím technologickém systému DDS v STK Praha. Testovací verzi tohoto systému lze nalézt na adrese Technologické zázemí systému DOS STK Řešení systému DDS STK využívá následujícího technologického vybavení: operační systém Linux RedHat 7+ ( webový server Apache Jakarta Tomcat 5:+ Chttp:// databázový server Firebird 1.5 (b.ttp:// běhové aplikační a vývojové nástroje balíku Java J2SDK ( Dřívější řešení zahrnovalo databázový server Oracle ( který byl vzhledem k licenčním podmínkám a finanční náročnosti na provoz nahrazen DB serverem Firebird. Firebird je open-source relační databáze nabízející mnoho vlastností ANSI SQL-92 která pracuje na Linuxu, Windows a řadě unixových platforem. Současně nabízí vysokou propustnost souběžného zpracování, vysoký výkon a silnou jazykovou podporu pro tvorbu uložených procedur a spouští (trigger). Celé řešení je nyní tedy postaveno na open-source technologiích při zachování 63
66 dostatečného výkonu pro provozování aplikace DDS a snížení nákladů na pořízení a aktualizaci softwaru Programové řešení ODS STK Programové řešení stávajícího systému je znázorněno pomocí následujícího schématu. Žlutě podbarvená oblast klientské části je ta část, která by měla být řešena právě i za pomoci technologie webových služeb. čtenář1 IE čtenář2 Mozilla HTIP HTIPS čtenářn http browsero bl ast WS čtenář1 :Čtenář2 čtenářn IE Mozilla http browser \1 HTIPS HTIP/ fax :!'~"O'!"~!.-ll ' ' ~', - ","~ ' " \ \ " I '' \ \ Digitalizační I Digitalizační \ \ pracoviště 2 I pracoviště 3 \ I I I I I I I I I I : '---~---j ~ ~ I I 1\ I \ I I " I \ \ " I I " " \ I \ I \ " I I \ I \ Knlhovna1 1 \ Kníhovna2 \ Knihovna3 I " \ I \ I ',.,~... "".."...., ' '... ' " ",," '' ' I I I Digitalizační \ I pracoviště 4 \ I \ I I I I I I I I \ I \ I '\ ~ I I Knihovna4 I I ' '....." ' "" Obr Stávající řešení systému DDS STK Komunikace systému DDS s vnějším prostředím je řešena pomocí standardních webových rozhraní. Uživatel se k systému připojí pomocí webového prohlížeče (Internet Explorer, Mozilla atd.) a pokud je registrován, může zahájit přes vstupní masky komunikaci s vlastním systémem. Uživatel komunikuje s tzv. DDS servisními 64
67 centry (dále SC) za pomoci programových komponent napsaných v jazyce Java. Tyto komponenty se nazývají servlety. Servisní centrum plní následující funkce: zajištění objednávek, evidence objednávek, předání objednávek do účastnické knihovny podle lokace požadovaného dokumentu, předání objednávky do jiného servisního centra, kam lokace hledaného dokumentu spadá. Proces lze shrnout do sledu následujících operací (pro ilustraci je znázorněna komunikace požadavku přes dvě DDS centra): 1. Uživatel si objedná elektronickou kopii dokumentu, jehož metadata si dříve našel v katalogu (nejlépe včetně udání lokace) a zašle je (lze použít i formát OpenURL) do objednávkového formuláře v DDS kde je registrován a přihlášen. Objednávkový formulář případně doplní i dalšími údaji (např. upřesnění metadat, kvalita kopie, pokyny pro obsluhu apod.). 2. Servlet DDS převezme údaje z objednávky a zapíše je jako požadavek do vlastní databáze. 3. Program DDSXML zjistí prohlídkou databáze, že vzniknul požadavek a zanalyzuje ho. Podle lokace fondu rozhodne zda jej předá do digitalizačního pracoviště které je napojeno na tento DDS, nebo zda jej předá do jiného DDS (zde např. DDS2). Poté je tento požadavek předán do digitalizačního centra, které je schopno požadavek vyřídit a to realizuje zakázku. 4. V případě, že program DDSXML periodickou prohlídkou zjistí, že v databázi je vyřízený požadavek připravený k předání do jiného DDS, předá ho příslušnému servisnímu centru. 65
68 5. V databázi je změněn status u objednávky na vyřízeno, což má možnost zjistit i uživatel tím, že kontaktuje centrum DDS pomocí webovského prohlížeče. Od tohoto okamžiku je možné dokument stáhnout. Můžeme definovat následující komponenty systému: uživatelské rozhraní - komponenta určená pro komunikaci s uživatelem umožňující vstup dat a prezentaci obdržených výsledků. Implementováno v jazyce HTML a prezentace pomocí standardních webových prohlížečů. DDS servlety - komunikační článek mezi uživatelským rozhraním a databázovým systémem. Zajišťuje uživatelský přístup k systému, přihlášení a autorizaci uživatele, nabídku objednávkových formulářů, zobrazení stavu zpracování objednávek, stavy účtů, stažení souborů s digitalizovanými daty k uživateli. Dále slouží i k administrativním úkonům jako k zakládání účtů uživatelů, seznamů digitalizačních pracovišť, spolupracujících knihoven apod. datový sklad - realizován databázovým serverem Firebird, sloužícím k uchování všech potřebných dat systému. obslužný program DDSXML - používá se pro komunikaci mezi jednotlivými centry DDS a digitalizačními pracovišti. Obsahuje XML parser na analýzu XML bloků, programy pro rozklad a syntézu XML bloků, příkazy pro databázi, programy pro komunikaci s digitalizačními centry a s jinými instalacemi modulárního DDS systému. Obsahuje vlastní synchronizaci, která tento program periodicky spouští nebo je vyvolán asynchronně příchodem XML bloku ze sousedního DDS. Tento program komunikuje s programem DDS pouze pomocí dat uložených v databázi. klientský program pro digitalizační pracoviště vpkedd.exe -předává serveru nejen informace o průběhu zpracování objednávek, ale i samotné 66
69 digitalizované dokumenty, a následně v odpovědi přijímá kromě potvrzení o přijatých datech <:!na jejich základě provedených změnách v bázích centra též požadavky, které byly uživateli do systému nově zadány. Aplikace umožňuje zobrazovat a tisknout záznamy požadavků, měnit a doplňovat informace o průběhu jejich zpracování, a ve spolupráci s řídícím softwarem skeneru digitalizuje tištěné dokumenty a převádí je do formátu PDF spolu s kompresí grafických dat, aby výsledná velikost souborů byla co nejmenší. Kromě přímého skenování tato aplikace umí načítat grafické soubory v různých formátech. Digitalizační funkce lze aktivovat i bez vazby na konkrétní objednávku, což umožňuje aplikaci využít i pro účely nesouvisející s VPK. Z daného schématu lze vypozorovat, že v systému jsou dvě na sobě relativně nezávislé části, které spolu sdílejí informace pouze přes datový zdroj. Částí aplikace, která je důležitá pro naše potřeby a bude převedena do webových služeb, je komponenta DDS servletů. Zjednodušeným schématem, které komponenty rozkládá do vrstev, ji lze znázornit následovně( obrázek 3.3). 67
70 Datová vrstva Aplikační logika ~ Web kóntejrler Prezentační logika Prezentace Obr Stávající řešení vnější části systému DDS Rozkladem do těchto vrstev zjistíme, že vrstva aplikační logiky neobsahuje žádný element a že komponenta servletů DDS tedy komunikuje napřímo s datovým zdrojem. Nejen v souvislosti s návrhem webových služeb do stávajícího systému by stálo za úvahu přepracování systému do následující podoby( obrázek 3.4). 68
71 Datová vrstva... t.... I I Aplikační /, logika / ', L...., / ' / ' / ' ' WS klienti Prezentace Obr Návrh na úpravu vnější části systému DDS Začlenění této úpravy do systému by mohlo přinést následující výhody: centralizaci business logiky, odstranění duplicity úprav výkonné logiky, zjednodušení údržby a úprav systému, zlepšenou modularitu systému (možnost opakovaného využití objektů) 69
72 4 Návrh rozhraní objednávkového systému DOS pomocí webových služeb 4.1 Analýza problému Cílem úpravy stávajícího systému DDS je jeho rozšíření do oblasti webových služeb tak, aby budoucí klienti mohli využít vlastních programových řešení pro komunikaci s DDS centrem. Půjde o návrh systému na úrovni rozhraní WSDL, kdy stávající procesy komunikace uživatele s centrem DDS budou navrženy do jednotlivých webových služeb. Tento proces bude zahrnovat následující kroky: definice kandidátů na služby, návrh WSDL dokumentu: o návrh datových typů a objektů pomocí XML schématu, o návrh zpráv, o návrh metod, o navázání na konkrétní přenosový formát, o definici služby. Pro návrh systému pomocí dokumentu WSDL použijeme styl kódování documentliteral. Tento typ zvolíme s ohledem na skutečnost, že budeme definovat datové typy pomocí XML schématu a umožníme validaci dokumentu daného schématu pomocí XML analyzátoru. Díky vydefinování typů pomocí XML schématu bude také lépe zabezpečena integrita aplikace a tazatelé služby budou mít lepší přehled o použitých výčtových typech a přípustných hodnotách předávaných parametrů Entity WS V rámci jednotlivých webových služeb je možné definovat následující entity: 70
73 Objednávka, Uživatel, Účet uživatele. Každá entita bude obsahovat vlastnosti, které jí logicky patří a jsou obsaženy ve stávajícím systému a které budou dále vydefinovány na základě datového modelu systému (např. velikost a typ vlastností) Datový model databáze ODS STK Datový model databáze pro systém DDS je tvořen soustavou tabulek a z nich vytvořených pohledů (views), které slouží pro přehlednější a kompaktnější práci s datovým systémem. Datový model je důležitou informací pro naše řešení, neboť nám poskytne informace o datových typech, které nám poslouží při navrhování datových typů pro XML schéma budoucích webových služeb. Datový model(obrázek 4.1) zobrazuje pro lepší přehlednost pouze výběr tabulek, které budou využity pro další práci a rovněž zde nejsou zobrazeny všechny číselníky, které mají obdobný charakter. 71
74 rolh."<:l'i. ID li<tt:gl'ji FOADD( TYPE C:rl.~l'i.(1} FBÁDDF..ESS VA1iCHAFi[255) 'v?1<jú:""yw01i.os.. ADDfiESS.. TY:"E rr il'>i" ~ofie!..d VNl.L':. C.'iA1i.(1} FOO:.SCŘPTlON' VARCHA1i.(2.. 1'351\i Sli\~!.!.L\1' ldsc_~c- R~ rouseii " rous!oiijd sc_usffi lntegefi F5:."'le-!A- VAF..Cl'AR(2_ f5usffi..!'iame VAi'iC.'-'Al\{60) f5cei<tt:ii ID!NTt:Gl'Ji roeilal!. VAACHAi'i.(.I(J) FOACTl'/E.. C.'!Ai'i(1) ~ f5cfi."-ated Cl-i~i'i{H) f5modlf~d Ci-'Ai'i(H) f5agr:.eitbit NO VA."iC1-'Ai'i{20) ~NG - Ci'A"i(1) f51co VARC'r'AR(15} f5dlc VA1i.C.'"'AR(1t) f5co!.'tact PERWN VARCl'A"i{OO) SC_ACCH lt re.~cc!d f5\is:ř ID F5REaiD fotra~.. TII/č FSCOST FOACCOUNT CODE Fro?E.=.ATlON COD:. f5taa\ls.. AC"~IJNT OOUS!.E!'R:.CJS.-"' ~NTEGffi VARCHJI,"i(22} Cl-'AFi[1!) IM6lC(6.2} CHA"i(1) CHAi'i(1) L'VTEGEFi roltst:rt %0 ln'tegsi. f5!.. 0GlŇ WJ/č VAACI"AR(i5} f5?ass - VA."iCrAi'i(15} F&IATE CHAl\{1) ropř.one.. VAFiC."Ai'i{.I(J} FS FAX F5?ROC lnfo f5tooo -INFO f5us:.i'i -TYPE ~.N'iJE..IĚCT TY?E r~ctive - f5eamk_acc f51..s.. SORT lt rof.eq ld 1'1 f5coi.ii.l:.nt NO f5comm5\t.. fi'iom F5COI!JtENl' )EXT VARCi'AR(tO) C."AR(1) Cl-'Aii.(1) Cl'Aii.(i) Cl-'Ai'i(1) C,'-'A'\(1) VAACHAi'i(SO) S!!A!.!.lNT / lnteger integ9\ í~teg::r VAii.Cl-'A!i.(~.. lt roit:.q ID I.'VTEC~i'i f""dforě:gn_ř~q_!d ~hi!ec..ffi FSUSEři io LV"TEC..ai. f5ctii/i CHAA(1!) f5mtlt.l:. Cl'Ai'i{14) f5dtlme CHAR(il) f5s."e::d Ci-'AFi(i} f5type Ci"A'\(1} f5fieq TYPE 0'AR(1) f5fief.. VAFiC!-'A"i[20) f5de!.iv""ci'i.y Ci-'Ai'i(1} F5D?I St'AWNT f5s!'ijtpac-es C."Ai'i{1) FBPJ:CPENT VARCPA,{&J) FO?AC-E VA.'iCi"AFi(21J) f5co:.i Nl!ME.'llC(6.2) F5DE!.AY lnfo Ci"Aii.{14) FEAtm-;0:::; VAACHAA("J) f5tm.e VAR::-r'A'i(1~J) f5.klljfinai. VARc.'Wt(1ZJ) f5issn VAAC.'!Ai'i(10} f5!s5n VAi'iCt'Ai'i(10} rttlofief VA,'iCi'Aii['20} f5yeai'i VA,'iCHA."i(10} f5vouíllif VM\CHAA(10/ f5issue VAFiCt'A'\["J) P.:-PAGES VAFiCrAI'if20/ i'sr'l!.ewjie VA,'\Ci-'AFi(100] f5d-el:-.ied c.''ai'i(1) f5c.lt SOL!iiC:: VAFiCi'AI'i(1~) F5Pi.,'ŠÍ.JSi-:EFi VAFiCHAA(s:J) F5FiEQ GRP C:rll\ii.(1) f5!_t!i/e Ci'Jl.Fi(14) f5fitij/č Ci'AR(14) F500C_TYPE Ci-'Ai\(1) Obr Část datového modelu databáze DDS Model obsahuje následující tabulky (část z nich lze vidět ve výše uvedeném modelu): se_ AeeH (peněžní účty uživatelů) se_addr (adresy uživatelů) se_eenter (servisní centra) se LIB (zúčastněné knihovny) se_ LIB_ DEP (oddělení zúčastněných knihoven) se_lib_sid (servisní identifikátory knihoven) se_ ONLN (statistika připojení dig. pracovišť) se _P ASS (přihlašovací jména a hesla) se REQ (seznam uživatelských požadavků na služby) se_ REQ_ LIB (knihovny, které mohou požadavky zpracovat) se REQe (komentáře k požadavkům) se REQI (mezinárodní požadavky) 72
75 SC_USER (seznam všech registrovaných uživatelů) SC _ WRKS (úkoly pro dig. pracoviště) Číselníkové tabulky, které nejsou ve výčtu znázorněné, budou převážně odpovídat možným hodnotám vlastností jednotlivých entit. Hlavní tabulky použité pro mapování do entit jsou SC_USER, SC_ACCH a SC_REQ Definice XML schématu XML schémata se dají definovat různým způsobem. V tomto případě zvolíme metodu, kdy nejprve vydefinujeme všechny datové typy a teprve na základě těchto datových typů budeme definovat následné elementy. Jde sice o nejpracnější metodu, ale její výhoda spočívá v tom, že je nejflexibilnější. Pro většinu datových typů bude použito odvození pomocí restrikce, což znamená, že dojde k uplatnění omezení na použité bázové typy. určitých Následující kapitoly budou věnovány definování typů jednotlivých entit a vlastních elementů entit Element Objednávka Element Objednávka slouží pro reprezentaci vlastního požadavku. Pro tento element definujeme následující vlastnosti: název dokumentu, číslo časopisu, název článku, autor, stránka, issn, ročník, 73
76 rok vydání, zákaznické číslo, typ formátu výstupu(tiff,pdf), způsob doručení (normálně,expresně), barevný výstup (barevně,čemobíle,stupně šedi), dělení stránek, konečný příjemce(pokud není shodný se zadávajícím), knihovna( zatím pouze NK), komentář. Definováním pomocí XML schématu získáme následující komplexní datový typ (úplná definice všech jednoduchých datových typů a celého WSDL dokumentu je součástí přílohy-příloha č.l): <!-- objednávka--> <xs:complextype name="torder"> <xs:annotation> <Xs:documentation> definice typu objednávky </xs:documentation> </xs:annotation> <Xs:sequence> <Xs:element name="orderid" type="stk:torderid"/> <Xs:element name="document name" type="stk:tdocument_name"/> <xs:element name="number" type="stk:tnumber"/> <Xs:element name="article name" type="stk:tarticle name"/; <Xs:element name="author" type="stk:tauthor"/> <xs:element name="pages" type="stk:tpages"/> <Xs:element name="issn" type="stk:tissn" nillable="true" minoccurs="o"/> <XS:element name="volume" type="stk:tvolume"/> <Xs:element name="publishing_year" type="stk:tpublishing_year"/> <xs:element name="custorder number" type="stk:tcustorder_number" nillable="true"/> <Xs:element name="delivery_type" type="stk:tdelivery_type"/> <xs:element name="delivery speed" type="stk:tdelivery speed"7> <Xs:element name="color output" type="stk:tcolor output~/> <Xs:element name="split pages" type="stk:tsplit pages"7> <Xs:element name="end_recipient" type="stk:tend_recipient"/> <Xs:element name="library" type="stk:tlibrary"/> 74
77 cxs:element name="comment" type="stk:tcomment" minoccurs="0"/> c/xs:sequence> c/xs:complextype> Z tohoto vydefinovaného komplexního typu vytvoříme definici vlastního elementu objednávky: cxs:element name="order" type="stk:torder"/> Pro potřeby další webové služby pro výpis stavu objednávek využijeme právě vydefinovaného elementu objednávky a vytvoříme následující komplexní typ: cxs:complextype name="torders"> cxs:sequence> cxs:element name="order" type="stk:torder" minoccurs="o" maxoccurs="unbounded"/> c/xs:sequence> c/xs:complextype> Můžeme si všimnout, že zde jako horní hranici možnosti výskytu elementu objednávky ( order) definujeme hodnotu unbounded, což v praxi znamená, že počet výskytu těchto elementů není omezen. Tímto způsobem lze přenést neomezený počet objednávek (teoreticky, v praxi se většinou použije určitých kritérií ke snížení přenosu dat) a jedná se tedy o pole (array). Po vydefinování tohoto typu následuje definice elementu: cxs:element name="orders" type="stk:torders"/> Element Uživatel V rámci webových služeb bude působit entita Uživatel s následujícími charakteristikami: jméno(název) adresa elektronické pošty ( ) telefon 75
78 fax adresal (adresa ze smlouvy) adresa2 (adresa pro fakturaci) adresa3(adresa kam zaslat fakturaci, pokud se liší od adresy2). Typ, který bude tuto entitu reprezentovat, bude vypadat následovně: cxs:complextype name="tuser"> cxs:sequence> cxs:element name="id" type="stk:tuser id"/> cxs:element name="user name" type="stk:tuser_name"/> cxs:element name=" " type="stk:t " min0ccurs="0"/> cxs:element name="telephone" type="stk:ttelephone" minoccurs="o"/> cxs:element name="fax" type="stk:tfax" minoccurs="o"/> cxs:element name="addressl" type="stk:taddressl"/> cxs:element name="address2" type="stk:taddress2" min0ccurs="0"/> cxs:element name="address2" type="stk:taddress3" minoccurs="o"/> c/xs:sequence> c/xs:complextype> Z tohoto komplexního typu nadefinujeme následující element: cxs:element name="user" type="stk:tuser" /> Element Účet uživatele Element Účet uživatele bude sloužit k získání informací o peněžním kontu uživatele. Obsahuje následující charakteristiky: časový údaj operace typ operace s účtem (založení konta, navýšení konta,platba za služby, převod mezi účty, zrušení účtu částka zůstatek na kontě. 76
79 Definice komplexního typu je následující: cxs:complextype name="taccount_stmt"> cxs:sequence> cxs:sequence maxoccurs="unbounded"> cxs:element name="timestamp" type="xs:datetime"/> cxs:element name="accountoperation_type" type="stk:taccountoperation_type"/> cxs:element name="charge" type="stk:tcurrency"/> cxs:element name="output" type="stk:tcurrency"/> c/xs:sequence> cxs:element na~e="total"/> c/xs:sequence> c/xs:complextype> Definice elementu potom bude vypadat takto: cxs:element name="account stmt" type="stk:taccount stmt"/> Definice kandidátů na služby Pro návrh možných kandidátů na služby použijeme grafické znázornění pomocí jazyka UML, který slouží k návrhu aplikací. Použitou metodou bude v tomto případě případ užití(use Case). Možným nástrojem pro tvorbu UML diagramů je například produkt společnosti SUN Microsystems- Java Studio Enterprise, který je v současné době nabízen zdarma ( komerční produkt Microsoft Visio společnosti Microsoft nebo produkt společnosti IBM Rational Rose( Případy užití neboli Use Case, jsou psány z pohledu zákazníka a podávají první představu o rozsahu projektu. V této fázi analýzy se ještě nezabýváme technologickými aspekty řešení, a proto se zde používají pouze pojmy přirozeného jazyka a termíny z problémové domény. Je to proto, aby se co nejvěrněji a pro zákazníka co nejsrozumitelněji navrhl funkční skeleton systému. Tato metoda nám vhodně poslouží pro návrh webových služeb systému. 77
80 Obr Návrh kandidátů na služby pomocí jazyka UML Schéma na obrázku 4.2 nám přehledně znázorňuje, jak by mohly vypadat operace znázorněné pomocí modelu případu užití. Uživatel webových služeb komunikuje se systémem DDS, který rozčleníme na tyto základní operace: operace s jednotlivou objednávkou, výpis zadaných objednávek, výpis peněžního konta uživatele, registrace uživatele. Tyto procesy můžeme rozložit na další podprocesy, které mohou být zpracovávány. V tomto případě budou tyto operace vhodnými kandidáty na webové služby. Operace s objednávkou může obsahovat následující podoperace: zadání nové objednávky úprava stávající objednávky 78
81 zrušení stávající objednávky zjištění stavu objednávky vyzvednutí objednávky. Proces registrace bude obsahovat následující služby: úprava registrace zrušení registrace. U procesu výpisu objednávek a peněžního účtu zatím není předpokládán rozklad na další operace, proto budou tyto operace brány do úvahy jako jednoduché informační služby. Součástí zasílaných parametrů každé služby budou přihlašovací údaje uživatele Služba zadání nové objednávky Tato služba by měla sloužit pro zadání nové objednávky pro kopii digitalizovaného dokumentu. Předpokladem pro funkčnost této služby bude zaslání všech potřebných údajů nového požadavku tak, aby byl systém schopný tuto objednávku zpracovat a připravit k vyřízení. Tyto údaje budou systémem DDS převzaty a v případě kladného zpracování bude navrácen identifikátor objednávky. V případě chyby vrátí služba identifikátor chyby v parametru návratového kódu. Může jít například o následující chyby: chybějící povinná položka identifikující požadovaný dokument nesprávně zadaná položka neplatná autorizace jiné. Správné určení možných problémů je pro aplikaci důležité především proto, aby věděla, jak má v takových situacích reagovat. To je důvod, proč budou u služeb uvažovány i předpokládané chybové varianty. 79
82 Definice zpráv ve WSDL dokumentu bude následující (pro návrh WSDL dokumentu použijeme vývojové prostředí Eclipse, které je dostupné zdarma na adrese ): cwsdl:message name~"neworderrequest"> cwsdl:part name="order" element="stk:order" /> cwsdl:part name="login_info" element="stk:login info" /> c/wsdl:message> cwsdl:message name="neworderresponse"> cwsdl:part name="orderid" element="stk:orderid" /> cwsdl:part name="errorcode" element="stk:errorcode" /> c/wsdl:message> Definice v části porttype: cwsdl:porttype name="stkddsws"> cwsdl:operation name="neworder"> cwsdl:input name="neworder" message="stk:neworderrequest" /> cwsdl:output name="newoiderresponse" message="stk:neworderresponse"/> c/wsdl:operation> I ITW".. cl> [ID htto:/[ Bindings :.... PortTypes Messages I ~ ~g:~u""'y' u"ď ; r:e. soap:operation ~ Eí O stkcfdsws lb S canceiorderrequest 8~Jlnput. lb.~ canceiorder lb S canceiorderre~~nse 8 soap:body [!~' 8. ~ canceireglstration J ~ [±] (v@jif i@i Ji$iijT@td > ~Jinput lb B canceiregistrationresponse 8 soap:bocjy lth ~loutput lb B changeorderrequest iť, lb ~ changeorder lb B changeorderresponse!ié. soap :operátión. lb ~ changeregistratjon lb B changeregfstrationrequest 8~loůtput...,, 8@} cancéfregistration!i1 8 ~J inpuť. <...,. IB ~ getaccountrnfo, lb B changeregistrationresponse.. B.soap:bodý 8 ~ getrnishedorder lb B getaccountrnforequest n. ~linput 8~loutp~t.,.., lb B getaccountrnforesponse.8 soqp!body ~loutput lb B getrnishedorderrequest!::~ I chi:mgéord~r lb.. ~. getordersoveniiew lb B getrnishedorderresponse lb~ changér!!gistrat(on, lb ~ getorderstatus lb B getordersoverviewrequest, ' lb ~ neit10rder :~~=~=~ ~ ~: lb B getordersovervíewresponse '"'' ~etorderstatllsh'ontlod I ~ i',' I Obr Návrh WSDL dokumentu pomocí vývojového prostředí Eclipse 80
83 Obrázek 4.3 znázorňuje využití prostředí Eclipse pro návrh WSDL dokumentu. Tento nástroj umožňuje jak návrh pomocí vlastního zdrojového kódu, tak pomocí grafického návrhového rozhraní, a to prostřednictvím balíku nástrojů WST (web standard tools), který je dostupný na adrese Tyto nástroje se instalují do prostředí Eclipse jako doplňkový modul a umožňují pokrýt celou oblast vývoje WS- od tvorby WSDL dokumentu až po generování klientské části Služba úpravy objednávky Tato služba bude sloužit k úpravě stávající objednávky. Parametrem služby bude element objednávky s vyplněnými položkami, které budou aktualizovány podle identifikátoru objednávky. Služba bude vracet návratový parametr identifikující úspěšnost operace. Chyby, které se zde mohou vyskytnout, jsou následující: nesprávně vyplněné údaje neúplně zadané údaje požadavek již byl digitalizován nebo je zpracováván neplatná autorizace jiné. Definované WSDL zprávy: cwsdl:message name="changeorderrequest"> cwsdl:part name="order" element="stk:order"/> cwsdl:part name="login_info" element="stk:login_info"/> </wsdl:message> cwsdl:message name="changeorderresponse"> cwsdl:part name="errorcode" element="stk:errorcode"></wsdl:part> </wsdl:message> Definice porttype: <wsdl:operation name="changeorder"> 81
84 cwsdl:input name="changeorderrequest" message="stk:changeorderrequest"/> cwsdl:output name="changeorderresponse" message="stk:changeorderresponse"/> c/wsdl:operation> Služba zrušení objednávky Tato služba bude sloužit ke zrušení stávající objednávky. Parametricky bude předán identifikátor objednávky a služba bude vracet kód úspěšnosti operace. Možné problémy jsou následující: neplatný identifikátor, objednávka na digitalizaci již vstoupila do stavu, kdy ji nelze stornovat, objednávka není platná vzhledem k uživateli, neplatná autorizace, jiné. Definice zprávy: cwsdl:message name="cancelorderrequest"> cwsdl:part name="cancelorderrequest" element="stk:orderid"/> cwsdl:part name="login info" element="stk:login_inf;"/> c/wsdl:message> cwsdl:message name="cancelorderresponse"> cwsdl:part name="cancelorderresponse" element="stk:errorcode"/> </wsdl:message> Definice části v porttype: cwsdl:operation name="cancelorder"> cwsdl:input name="cancelorderrequest" message="stk:cancelorderrequest"/> cwsdl:output name="cancelorderresponse" message="stk:cancelorderresponse"/> </wsdl:operation> 82
85 Služba zjištění stavu objednávky Tato služba bude sloužit k zjištění stavu zadaných objednávek tak, aby uživatel věděl, v jaké fázi procesu zpracování jsou jeho požadavky. Možné stavy jsou: zpracovávané, hotové, odmítnuté. Parametrem služby bude opět identifikátor objednávky a návratovou hodnotou bude jeden z vyjmenovaných statusů a návratový kód operace. Možné chybové situace jsou: neplatný identifikátor, objednávka není platná vzhledem k uživateli, neplatná autorizace, jiné. Definice zpráv: <Wsdl:message name="getorderstatusresponse"> <wsdl:part name="order_status" element="stk:order_status"/> <Wsdl:part name="errorcode" element="stk:errorcode"/> </wsdl:message> <wsdl:message name="getorderstatusrequest"> <wsdl:part name="orderid" element="stk:orderid"/> <wsdl:part name="login info" element="stk:login_inf~"/> </wsdl:message> Definice porttype: <wsdl:operation name="getorderstatus"> <wsdl:input name=" getorderstatusrequest" message="stk:getorderstatusrequest"/> <Wsdl:output name=" getorderstatusresponse" message="stk:getorderstatusresponse"/ > </wsdl:operation> 83
86 Služba vyzvednutí objednávky- digitalizovaného dokumentu Tato služba bude řešit vyzvednutí zpracované objednávky. Parametrem bude identifikátor objednávky a návratovou hodnotou bude adresa URL, odkud lze dokument stáhnout. Tato adresa je privátní a přístupná pouze pro uživatele. Možné chybové situace jsou: neplatný identifikátor, objednávka není vyřízená, objednávka není platná vzhledem k uživateli, neplatná autorizace, jiné. cwsdl:message name="getfinishedorderresponse"> <wsdl:part name="url" element="stk:url"/> <wsdl:part name="errorcode" element="stk:errorcode"/> </wsdl:message> cwsdl:message name="getfinishedorderrequest"> cwsdl:part name="orderid"- element="stk:orderid"/> cwsdl:part name="login info" element="stk:login_info"/> - c/wsdl:message> Definice porttype: cwsdl:operation name="getfinishedorder"> cwsdl:input name="getfinishedorderrequest" message="stk:getfinishedorderrequest"/> cwsdl:output name="getfinishedorderresponse" message="stk:getfinishedorderresponse"/> c/wsdl:operation> Služba změny registrace Služba je určena k tomu, aby její pomocí mohl uživatel změnit své údaje. Vstupním parametrem mimo autorizační data bude entita uživatele, výstupním potom návratový kód operace. Možné chybové situace jsou: neplatné údaje, neplatná autorizace, 84
87 ď " 1 1 jiné. Definice zpráv: cwsdl:rnessage narne="changeregistrationrequest"> cwsdl:part narne="changeregistrationrequestl" elernent="stk:user"/> cwsdl:part narne="changeregistrationrequest2" elernent="stk:login_info"/> c/wsdl:rnessage> cwsdl:rnessage narne="changeregistrationresponse"> cwsdl:part narne="changeregistrationresponsel" elernent="stk:errorcode"/> c/wsdl:rnessage> Definice porttype: cwsdl:operation narne="changeregistration"> cwsdl:input rnessage="stk:changeregistrationrequest" narne="changeregistrationrequest"/> cwsdl:output rnessage="stk:changeregistrationresponse" narne="changeregistrationresponse"/> c/wsdl:operation> Služba zrušení registrace Pokud by byla tato služba implementována, sloužila by k zrušení registrace uživatele služby. Parametrem budou jen přihlašovací údaje a návratový kód operace. Možné chybové stavy: neplatná autorizace, nevyřízené požadavky, jiné. Definice zpráv: cwsdl:rnessage narne="cancelregistrationresponse"> cwsdl:part narne="cancelregistrationresponse" elernent="stk:errorcode"/> c/wsdl:rnessage> cwsdl:rnessage narne="cancelregistrationrequest"> 85
88 cwsdl:part name="cancelregistrationrequest" element="stk:login_info"/> c/wsdl:message> Definice porttype: cwsdl:operation name="cancelregistration"> cwsdl:input name="cancelregistrationrequest" message="stk:cancelregistrationrequest"/> cwsdl:output name="cancelregistrationresponse" message="stk:cancelregistrationresponse"/> c/wsdl:operation> Služba získání uživatelského přehledu objednávek Pro případ, že bude chtít uživatel získat přehled o stavu všech svých objednávek v rámci určité časové periody, bude definována služba přehledu objednávek. Vstupním parametrem budou přihlašovací údaje, jaké objednávky a s jakým statusem chceme vidět (vše, zpracovávané, hotové, odmítnuté) a časové období, za které chceme přehled obdržet. Návratovou hodnotou bude seznam objednávek a návratový kód operace. Možné chybové stavy: neplatná autorizace, neplatný časový interval, jiné. Definice zpráv: cwsdl:message name="getordersoverviewrequest"> cwsdl:part name="getordersoverviewrequestl" element="stk:order_status" /> cwsdl:part name="getordersoverviewrequest2" element="stk:date_period"/> cwsdl:part name="getordersoverviewrequest3" element="stk:login_info" /> c/wsdl:message> cwsdl:message name="getordersoverviewresponse"> cwsdl:part name="getordersoverviewresponsel" element="stk:orders" /> 86
89 <wsdl:part name="getordersoverviewresponse2" element="stk:errorcode" /> </wsdl:message> Definice porttype: <Wsdl:operation name="getordersoverview"> <wsdl:input narne="getordersoverviewrequest" rnessage="stk:getordersoverviewrequest"/> <wsdl:output name="getordersoverviewresponse" rnessage="stk:getordersoverviewresponse" /> </wsdl:operation> Služba získání uživatelského přehledu o stavu účtu Tato služba je navržena za účelem získání informácí o stavu a pohybech na peněžním účtu uživatele. Tento výpis bude podán na základě zadaného časového období, které bude vstupním parametrem spolu s přihlašovacími údaji. Výstupem bude entita účtu obsahující informace o účtu a pohybech na něm a opět návratový kód. Možné chybové stavy: neplatná autorizace, neplatný časový interval, jiné. Definice zpráv: <wsdl:rnessage narne="getaccountinforequest"> <wsdl:part name="getaccountinforequestl" elernent="stk:date_period" /> <Wsdl:part narne="getaccountinforequest2" elernent="stk:login_info" /> </wsdl:rnessage> <wsdl:rnessage name="getaccountinforesponse"> <Wsdl:part narne="getaccountinforesponsel" elernent="stk:account strnt" /> 87
90 cwsdl:part name="getaccountinforesponse2" element="stk:errorcode" /> </wsdl:message> Definice porttype: <wsdl:operation name="getaccountinfo"> cwsdl:input name="getaccountinforequest" message="stk:getaccountinforequest" /> cwsdl:output name=" getaccountinforesponse" message="stk:getaccountinforesponse" /> c/wsdl:operation> Registrace služby v registrech UDOl Po následné implementaci služby, která není součástí této práce, by měla být služba zaznamenána v UDDI registrech tak, aby došlo k jejímu zveřejnění a využití. Činnost veřejných registrů UBR, o kterých bylo pojednáno v této práci, byla v průběhu ledna roku 2006 zastavena. Důvodem pro toto ukončení provozu UBR měla být skutečnost, že tyto registry jako vzor pro jejich funkčnost svou úlohu splnily, a nastal proto čas pro využití privátních a semi-privátních registrů. Následující kapitoly popisují, jak by náš WSDL dokument mohl být implementován v registrech UDDI. Tato ukázka využívá postupů "best practises", které jsou doporučeny konsorciem OASIS [28] Mapování entity porttype Entita porttype je v registrech UDDI reprezentována pomocí entity tmodel. <tmodel tmodelkey="uuid:e8cf b35-865f- 94a7322e40c3"> cname>stkddsws</name> coverviewdoc> coverviewurl> c/overviewurl> 88
91 </overviewdoc> <categorybag> <keyedreference tmodelkey="uuid:d01987dl-ab2e be2-2a66eb99d824" keyname="porttype namespace" keyvalue=" /> <keyedreference tmodelkey="uuid:6e090afa-33e5-36eb-81b7- lca18373f457" keyname="wsdl type" keyvalue="porttype" /> </categorybag> </tmodel> Název tmodelu je shodný s názvem entity porttype. Element overviewurl obsahuje lokaci WSDL dokumentu, v elementu categorybag jsou obsaženy informace o schématu dokumentu a o tom, že daný tmodel je typemporttype Mapování entity binding Stejně jako v předchozím příkladu i tato entita je mapována do tmodelu. <tmodel tmodelkey="uuid: f4a5-4ba5-b8d0-32ab388dadda"> <name>stkddswssoapbinding</name> <overviewdoc> <OverviewURL> </overviewurl> </overviewdoc> <categorybag> <keyedreference tmodelkey="uuid:d01987dl-ab2e be2-2a66eb99d824" keyname="binding namespace" keyvalue=" /> <keyedreference tmodelkey="uuid:6e090afa-33e5-36eb-8lb7- lca18373f457" keyname="wsdl type" keyvalue="binding" /> <keyedreference tmodelkey="uuid:082b d8-303c-b332- f24a6d53e38e" keyname="porttype reference" keyvalue="uuid:e8cfl b35-865f- 94a7322e40c3" /> <keyedreference tmodelkey="uuid:4dc d9-aecd- 33c57dc3a865" 89
92 keyname="soap protocol" keyvalue="uuid:aa de df3- a5c075d64aoe" /> <keyedreference tmodelkey="uuid:e5c e4-37bf ld04b35c0099" keyname="http transport" keyvalue=" uuid:68de9e80-ad09-469d-8a bfbc36" /> <keyedreference tmodelkey="uuid:clacf26d d70-39b756e62ab4" keyname="uddi-org:types" keyvalue="wsdlspec" /> </categorybag> </tmodel> Tento tmodel jsme také pojmenovali podle názvu elementu binding ve WSDL dokumentu. Lokace WSDL dokumentu je umístěna v elementu overviewurl. Element categorybag obsahuje informace o protokolech, jmenném prostoru dokumentu, o svém typu(binding) a referenci na tmodel elementu porttype Mapování do entit businessservice a bindingtemplate Do entity businessservice je mapována WSDL entita service. Do druhé entity bindingtemplate je mapována entita port. <businessservice servicekey="l02bl14a-52e0-4af4-a da543d4" businesskey="le65ea29-4e0f d352d7bl0368"> <name>document Delivery Service</name> <bindingtemplates> <bindingtemplate bindingkey="f793c521-0daf-434c e32da232e74" servicekey="102b114a-52e0-4af4-a da543d4"> <accesspoint URLType="http"> </accesspoint> <tmodelinstancedetails> <tmodelinstanceinfo tmodelkey="uuid: f4a5-4ba5-b8d0-32ab388dadda"> <instancedetails> <instanceparms>ddswsport</instanceparms> </instancedetails> </tmodelinstanceinfo> 90
93 <tmodelinstanceinfo tmodelkey="uuid:e8cfll b35-865f- 94a7322e40c3"> </tmodelinstanceinfo> </tmodelinstancedetails> </bindingtemplate> </bindingtemplates> <categorybag> <keyedreference tmodelkey="uuid:6e090afa-33e5-36eb-blb7- lca18373f457" keyname="wsdl type" keyvalue="service" /> <keyedreference tmodelkey="uuid:d01987dl-ab2e be2-2a66eb99d824" keyname="service namespace" keyvalue=" /> <keyedreference tmodelkey="uuid:2ec becc9dbefcaccf6" keyname="service local name" keyvalue="ddsservice" /> </categorybag> </businessservice> Element name drží opět název v tomto případě pojmenování služby. V elementu categorybag najdeme informace o typu entity(service), jmenném prostoru WSDL a lokálním názvu služby. BindingTemplate specifikuje koncový bod služby a udržuje množinu elementů tmodellnstancedetails. Oba elementy tmodellnstancedetails odkazují k dříve definovaným entitám tmodel. 91
94
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
Ú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á
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 -
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
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
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
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
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í
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...
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
Webové služby. Martin Sochor
Webové služby Martin Sochor Webové služby způsob komunikace dvou aplikací přes Web binární zprávy (CORBA) blokovány proxy servery a firewally masivní využití XML protokol SOAP + jazyk pro popis služeb
Syntaxe XML XML teorie a praxe značkovacích jazyků (4IZ238)
XML teorie a praxe značkovacích jazyků (4IZ238) Jirka Kosek Poslední modifikace: $Date: 2009/10/01 19:46:33 $ Obsah Základy syntaxe... 3 Elementy a atributy... 4 Znakový model XML... 5 Komentáře... 6 Instrukce
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
24. XML. Aby se dokument XML vůbec zobrazil musí být well-formed (správně strukturovaný). To znamená, že splňuje formální požadavky specifikace XML.
24. XML Úvod Značkovací jazyk XML (extensible Markup Language) vznikl ze staršího a obecnějšího jazyku SGML (Standard Generalized Markup Language). XML byl vyvinut konsorciem W3C, aby poskytl standardní
Dnešní téma. Oblasti standardizace v ICT. Oblasti standardizace v ICT. Oblasti standardizace v ICT
Dnešní téma Oblasti standardizace v ICT Případové studie standardizace v ICT: 1) Znakové sady 2) Jazyk 1. technická infrastruktura transfer a komunikace informací, přístup k informacím, sdílení zdrojů
Jazyky pro popis dat
Realizováno za finanční podpory ESF a státního rozpočtu ČR v rámci v projektu Zkvalitnění a rozšíření možností studia na TUL pro studenty se SVP reg. č. CZ.1.07/2.2.00/29.0011 Jazyky pro popis dat Pavel
Ú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
Obsah prezentace. Co je to XML? Vlastnosti. Validita
Obsah prezentace Co je to XML? Vlastnosti Validita Co je to XML? EXtensible Markup Language Účelem je usnadnit sdílení dat napříč informačními systémy Popis dokumentu z hlediska věcného obsahu Vyvinuto
Specifikace rozhraní. Oznamovací povinnost podle zákona č. 307/2013 Sb., ve znění pozdějších předpisů. Martin Falc, SW architekt.
C E R T I C O N www.certicon.cz V Á C L A V S K Á 1 2 1 2 0 0 0 P R A H A 2 Specifikace rozhraní Oznamovací povinnost podle zákona č. 307/2013 Sb., ve znění pozdějších předpisů Martin Falc, SW architekt
PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky.
PHP - úvod Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky. Klíčové pojmy: PHP, webový prohlížeč, HTTP, FTP Základní pojmy služba WWW = 1990 první prototyp serveru, od roku 1994
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
XML terminologie a charakteristiky. Roman Malo
XML terminologie a charakteristiky Roman Malo XML extensible Markup Language (rozšiřitelný značkovací jazyk) Verze 1.0, 1.1 http://www.w3.org/xml Rozdíly v podpoře různých znakových sad a práci s řídícími
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
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
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ýměnný formát XML DTM DMVS PK
Výměnný formát XML DTM DMVS PK Představení partnerským krajům Praha 8. 2. 2016 Krajský úřad Plzeňského kraje Odbor informatiky Koncept etapizace tvorby výměnného formátu XML aktualizačních zakázek Digitální
Ú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
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
EXTRAKT z mezinárodní normy
EXTRAKT z mezinárodní normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním ICS 03.220.01; 35.240.60 materiálem o normě. Inteligentní dopravní systémy Požadavky na ITS centrální datové
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
Autor. Potřeba aplikací sdílet a udržovat informace o službách, uživatelích nebo jiných objektech
Adresářová služba X.500 a LDAP Autor Martin Lasoň Abstrakt Potřeba aplikací sdílet a udržovat informace o službách, uživatelích nebo jiných objektech vedla ke vzniku specializovaných databází adresářů.
24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1
24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE
Základní zadání IS o ISVS. Sluţba poskytování dat IS o ISVS
Základní zadání IS o ISVS Sluţba poskytování dat IS o ISVS podle pokynů objednatele vypracovala společnost ASD Software, s.r.o. dokument ze dne 5.12.2012, verze 1.00 Sluţba poskytování dat IS o ISVS Počet
Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.
Modely datové Existují různé úrovně pohledu na data. Nejvyšší úroveň je úroveň, která zachycuje pouze vztahy a struktury dat samotných. Konceptuální model - E-R model. Další úrovní je logická úroveň Databázové
EXTRAKT z technické normy CEN ISO
EXTRAKT z technické normy CEN ISO Extrakt nenahrazuje samotnou technickou normu, je pouze informativním materiálem o normě. Inteligentní dopravní systémy Kooperativní ITS Zařízení stanice ITS pro přenos
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
Základy XML struktura dokumentu (včetně testových otázek)
Základy XML struktura dokumentu (včetně testových otázek) Otakar Čerba Oddělení geomatiky Katedra matematiky Fakulta aplikovaných věd Západočeská univerzita v Plzni Přednáška z předmětu Počítačová kartografie
12. Virtuální sítě (VLAN) VLAN. Počítačové sítě I. 1 (7) KST/IPS1. Studijní cíl. Základní seznámení se sítěmi VLAN. Doba nutná k nastudování
12. Virtuální sítě (VLAN) Studijní cíl Základní seznámení se sítěmi VLAN. Doba nutná k nastudování 1 hodina VLAN Virtuální síť bývá definována jako logický segment LAN, který spojuje koncové uzly, které
EXTRAKT z české technické normy
EXTRAKT z české technické normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním 03.220.01, 35.240.60 materiálem o normě. Dopravní a cestovní informace (TTI) TTI ČSN P CEN předávané
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
Maturitní otázky z předmětu PROGRAMOVÁNÍ
Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti
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
APLIKACE XML PRO INTERNET
APLIKACE XML PRO INTERNET Jaroslav Ráček Fakulta Informatiky, Masarykova Universita Brno Abstrakt Text je věnován možnostem využití XML technologie pro prezentaci dokumentů pomocí Internetu. V úvodu je
Ú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
Funkční specifikace ABOKWS. Aplikační rozhraní elektronického bankovnictví ABO-K. Verze 0.5
Funkční specifikace ABOKWS Aplikační rozhraní elektronického bankovnictví ABO-K Verze 0.5 Přehled změn Verze Datum Změnil Popis 0.1 26.2.2013 MB Úvod, Osnova dokumentu, funkce ABOKWS 0.2 18.4.2014 MB Tabulky
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
Tvorba webu. Úvod a základní principy. Martin Urza
Tvorba webu Úvod a základní principy Martin Urza World Wide Web (WWW) World Wide Web (doslova celosvětová pavučina ) je označení pro mnoho dokumentů rozmístěných na různých serverech po celém světě. Tyto
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é
Chybová hlášení METODIKA MET-01/2014. SZR-56-1/OPICT-2013 počet stran 28 přílohy 0. Nahrazuje:
MET-01/2014 METODIKA SZR-56-1/OPICT-2013 počet stran 28 přílohy 0 Chybová hlášení Gestor, podpis: Ing. Radovan Pártl Zpracovatel, podpis: RNDr. Miroslav Šejdl Odborný garant, podpis: RNDr. Miroslav Šejdl
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
Popis B2B rozhraní pro elektronickou neschopenku
Popis B2B rozhraní pro elektronickou neschopenku Historie dokumentu Verze Datum Změny 0.9 30. 4. 2019 Vytvoření dokumentu Obsah 1 Účel dokumentu... 3 2 Charakteristika rozhraní... 3 2.1 Způsob komunikace...
Publikování map na webu - WMS
Semestrální práce z předmětu Kartografická polygrafie a reprografie Publikování map na webu - WMS Autor: Ondřej Dohnal, Martina Černohorská Editor: Filip Dvořáček Praha, duben 2010 Katedra mapování a kartografie
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
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
Možnosti využití XML v knihovnické praxi. Gabriela Krčmařová AKP 2001 Národní knihovna ČR Liberec, 24.4.2001
Možnosti využití XML v knihovnické praxi Gabriela Krčmařová AKP 2001 Národní knihovna ČR Liberec, 24.4.2001 XML - extensible Markup Language! je jazyk, který umožňuje definovat nejen zpracování informace
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
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)
Alena Malovaná, MAL305
Alena Malovaná, MAL305 GML WFS WMF Geografický značkovací jazyk (Geographic Markup Language - GML) Jedná se o velmi rozšířený standard pro popis geodat umožňující sdílení i integraci dat. Jeho základem
Jazyk XSL XPath XPath XML. Jazyk XSL - rychlá transformace dokumentů. PhDr. Milan Novák, Ph.D. KIN PF JU České Budějovice. 9.
Jazyk XSL - rychlá transformace dokumentů 9. prosince 2010 Osnova 1 Jazyk XSL Úvod Princip zpracování pomocí stylů Formátování dokumentu pomocí XSL FO Osnova 1 Jazyk XSL Úvod Princip zpracování pomocí
Webové služby. Martin Kuba Superpočítačové centrum Brno Masarykova univerzita
Webové služby Martin Kuba Superpočítačové centrum Brno Masarykova univerzita Obsah definice webových služeb historický vývoj ze strany WWW SOAP webové služby XML, URI, XML Namespaces, XML Schema protokol
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
Správnost XML dokumentu
Realizováno za finanční podpory ESF a státního rozpočtu ČR v rámci v projektu Zkvalitnění a rozšíření možností studia na TUL pro studenty se SVP reg. č. CZ.1.07/2.2.00/29.0011 Správnost XML dokumentu Správně
Metody integrace aplikací
Metody integrace aplikací Karel Richta Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze richta@fel.cvut.cz, 2011 Softwarové inženýrství I., BI-SI1
Obsah. Zpracoval:
Zpracoval: houzvjir@fel.cvut.cz 03. Modelem řízený vývoj. Doménový (business), konceptuální (analytický) a logický (návrhový) model. Vize projektu. (A7B36SIN) Obsah Modelem řízený vývoj... 2 Cíl MDD, proč
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
Š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
Podpora XML v.net. Podpora XML v.net. nezávislý publicista. Jirka Kosek. http://www.kosek
Podpora XML v.net Podpora XML v.net Jirka Kosek nezávislý publicista http://www.kosek kosek.cz Co nás čeká? Co nás čeká?! podpora XML ve VisualStudio.NET! architektura System.Xml! čtení XML dokumentů!
Inovace výuky prostřednictvím šablon pro SŠ
Název projektu Číslo projektu Název školy Autor Název šablony Název DUMu Stupeň a typ vzdělávání Vzdělávací oblast Vzdělávací obor Tematický okruh Inovace výuky prostřednictvím šablon pro SŠ CZ.1.07/1.5.00/34.0748
Rozhraní pro práci s XML dokumenty. Roman Malo
Rozhraní pro práci s XML dokumenty Roman Malo Práce s XML dokumenty Datově a dokumentově orientované XML dokumenty Problém preference elementů a atributů Strom elementů Strom uzlů Základní zpracování dokumentů
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
EXTRAKT z české technické normy
EXTRAKT z české technické normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním 03.220.01, 35.240.60 materiálem o normě. Dopravní a cestovní informace (TTI) TTI ČSN P CEN předávané
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
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
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
5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina
5a. Makra Visual Basic pro Microsoft Escel Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina Cyklické odkazy a iterativní výpočty Zde bude stránka o cyklických odkazech a iteracích.
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
Logický datový model VF XML DTM DMVS
Logický datový model VF XML DTM DMVS Verze 1.1 VF XML DTM DMVS Objednatel Plzeňský kraj Institut plánování a rozvoje hlavního města Prahy Zlínský kraj Kraj Vysočina Liberecký kraj Karlovarský kraj Statutární
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
Digitální konkordance a Registr digitalizace v Manuscriptoriu,
Digitální konkordance a Registr digitalizace v Manuscriptoriu, aneb, Jak identifikovat a trvale zpřístupnit digitální kopie fyzických exemplářů historických dokumentů Olga Čiperová, AiP Beroun s.r.o. 25.5.2016
PRVNÍ ELASTICKÝ INFORMAČNÍ SYSTÉM : QI
PRVNÍ ELASTICKÝ INFORMAČNÍ SYSTÉM : QI Cyril Klimeš a) Jan Melzer b) a) Ostravská univerzita, katedra informatiky a počítačů, 30. dubna 22, 701 03 Ostrava, ČR E-mail: cyril.klimes@osu.cz b) DC Concept
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é
POPIS STANDARDU CEN TC278/WG7. 1 z 5. draft prenv Geografická silniční databáze. Oblast: ZEMĚPISNÁ DATA V SILNIČNÍ DOPRAVĚ ( GRD)
POPIS STANDARDU CEN TC278/WG7 Oblast: ZEMĚPISNÁ DATA V SILNIČNÍ DOPRAVĚ ( GRD) Zkrácený název: GEOGRAFICKÁ DATABÁZE Norma číslo: 14825 Norma název (en): GDF GEOGRAPHIC DATA FILES VERSION 4.0 Norma název
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
České vysoké učení technické v Praze Fakulta stavební Katedra mapování a kartografie
České vysoké učení technické v Praze Fakulta stavební Katedra mapování a kartografie Doktorská disertační práce Využití webových služeb v Katastru nemovitostí 15. února 2008 Radek Chromý České vysoké učení
Datové typy a struktury
atové typy a struktury Jednoduché datové typy oolean = logická hodnota (true / false) K uložení stačí 1 bit často celé slovo (1 byte) haracter = znak Pro 8-bitový SII kód stačí 1 byte (256 možností) Pro
Servisně orientovaná architektura a její aplikace v systémech sledování a řízení výroby
Servisně orientovaná architektura a její aplikace v systémech sledování a řízení výroby Marek Rychlý Vysoké učení technické v Brně Fakulta informačních technologií Ústav informačních systémů VII. ročník
KAPITOLA 2 - ZÁKLADNÍ POJMY INFORMAČNÍCH A KOMUNIKAČNÍCH TECHNOLOGIÍ
KAPITOLA 2 - ZÁKLADNÍ POJMY INFORMAČNÍCH A KOMUNIKAČNÍCH TECHNOLOGIÍ KLÍČOVÉ POJMY Internet World Wide Web FTP, fulltext e-mail, IP adresa webový prohlížeč a vyhledávač CÍLE KAPITOLY Pochopit, co je Internet
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
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
Microsoft Office 2003 Souhrnný technický dokument white paper
Microsoft Office 2003 Souhrnný technický dokument white paper Přehled inteligentních klientských aplikací založených na sadě Microsoft Office 2003 System Publikováno: Duben 2003 Shrnutí: Inteligentní klienti
Webové mapové služby. Lukáš Birka
Webové mapové služby Lukáš Birka Co jsou to webové služby? Rozhraní k aplikaci dostupné prostřednictvím počítačové sítě, založené na standardních internetových technologiích. Obecně: je-li aplikace dostupná
Servisně orientovaná architektura Základ budování NGII
Servisně orientovaná architektura Základ budování NGII Jan Růžička Institute of geoinformatics VSB-TU Ostrava 17.listopadu, 70833 Ostrava-Poruba Poruba, jan.ruzicka@vsb.cz NGII NGII složitý propletenec,
EXTRAKT z české technické normy
EXTRAKT z české technické normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním ICS 35.240.60 materiálem o normě. Dopravní telematika Vyhrazené spojení krátkého rozsahu (DSRC) Datová
Základy objektové orientace I. Únor 2010
Seminář Java Základy objektové orientace I Radek Kočí Fakulta informačních technologií VUT Únor 2010 Radek Kočí Seminář Java Základy OO (1) 1/ 20 Téma přednášky Charakteristika objektově orientovaných