Webové služby v Java EE (JAX-WS)
|
|
- Vladislav Vávra
- před 8 lety
- Počet zobrazení:
Transkript
1 Webové služby v Java EE (JAX-WS) Marek Rychlý Vysoké učení technické v Brně Fakulta informačních technologií Ústav informačních systémů Přednáška pro PDI 7. listopadu 2014 Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
2 Obsah 1 Úvod k SOA a webovým službám 2 Poskytovatel webové služby pomocí JAX-WS Spotřebitel webové služby pomocí JAX-WS Použití JAX-WS v aplikačním serveru a podpora v IDE 3 Representational State Transfer (REST) architektura Webové služby pomocí JAX-RS 4 Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
3 Obsah Úvod k SOA a webovým službám 1 Úvod k SOA a webovým službám 2 Poskytovatel webové služby pomocí JAX-WS Spotřebitel webové služby pomocí JAX-WS Použití JAX-WS v aplikačním serveru a podpora v IDE 3 Representational State Transfer (REST) architektura Webové služby pomocí JAX-RS 4 Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
4 Servisně orientovaná architektura (SOA) Definice (Service-Oriented Architecture, OASIS SOA RefModel) SOA je paradigma předepisující způsob uspořádání a použití distribuovaných služeb, které mohou být spravovány různými vlastníky. Definuje jednotný způsob inzerce, hledání, vzájemné komunikace a spotřeby služeb s cílem dosáhnout požadovaných výsledků v souladu s měřitelnými předpoklady a očekáváním. SOA je paradigma kompozice služeb SOA je distribuovaná autonomní, ale spolupracující služby SOA je heterogenní prostředí služba přístupná přes své rozhraní SOA je standardizovaná popis rozhraní a způsob komunikace služeb SOA podporuje business služby realizují konkrétní business procesy Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
5 Servisně orientovaná architektura (SOA) Definice (Service-Oriented Architecture, OASIS SOA RefModel) SOA je paradigma předepisující způsob uspořádání a použití distribuovaných služeb, které mohou být spravovány různými vlastníky. Definuje jednotný způsob inzerce, hledání, vzájemné komunikace a spotřeby služeb s cílem dosáhnout požadovaných výsledků v souladu s měřitelnými předpoklady a očekáváním. SOA je paradigma kompozice služeb (architektonický styl a způsob analýzy, návrhu, integrace a údržby systémů) SOA je distribuovaná autonomní, ale spolupracující služby SOA je heterogenní prostředí služba přístupná přes své rozhraní SOA je standardizovaná popis rozhraní a způsob komunikace služeb SOA podporuje business služby realizují konkrétní business procesy Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
6 Servisně orientovaná architektura (SOA) Definice (Service-Oriented Architecture, OASIS SOA RefModel) SOA je paradigma předepisující způsob uspořádání a použití distribuovaných služeb, které mohou být spravovány různými vlastníky. Definuje jednotný způsob inzerce, hledání, vzájemné komunikace a spotřeby služeb s cílem dosáhnout požadovaných výsledků v souladu s měřitelnými předpoklady a očekáváním. SOA je paradigma kompozice služeb SOA je distribuovaná autonomní, ale spolupracující služby (systém realizován jako kompozice účelové spolupracujících služeb) SOA je heterogenní prostředí služba přístupná přes své rozhraní SOA je standardizovaná popis rozhraní a způsob komunikace služeb SOA podporuje business služby realizují konkrétní business procesy Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
7 Servisně orientovaná architektura (SOA) Definice (Service-Oriented Architecture, OASIS SOA RefModel) SOA je paradigma předepisující způsob uspořádání a použití distribuovaných služeb, které mohou být spravovány různými vlastníky. Definuje jednotný způsob inzerce, hledání, vzájemné komunikace a spotřeby služeb s cílem dosáhnout požadovaných výsledků v souladu s měřitelnými předpoklady a očekáváním. SOA je paradigma kompozice služeb SOA je distribuovaná autonomní, ale spolupracující služby SOA je heterogenní prostředí služba přístupná přes své rozhraní (služby mohou mít různé životní cykly, vlastníky, implementační technologie, atd.) SOA je standardizovaná popis rozhraní a způsob komunikace služeb SOA podporuje business služby realizují konkrétní business procesy Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
8 Servisně orientovaná architektura (SOA) Definice (Service-Oriented Architecture, OASIS SOA RefModel) SOA je paradigma předepisující způsob uspořádání a použití distribuovaných služeb, které mohou být spravovány různými vlastníky. Definuje jednotný způsob inzerce, hledání, vzájemné komunikace a spotřeby služeb s cílem dosáhnout požadovaných výsledků v souladu s měřitelnými předpoklady a očekáváním. SOA je paradigma kompozice služeb SOA je distribuovaná autonomní, ale spolupracující služby SOA je heterogenní prostředí služba přístupná přes své rozhraní SOA je standardizovaná popis rozhraní a způsob komunikace služeb (řešení nezávislé na dodavateli, možnost náhrady služby, její outsourcing, atp.) SOA podporuje business služby realizují konkrétní business procesy Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
9 Servisně orientovaná architektura (SOA) Definice (Service-Oriented Architecture, OASIS SOA RefModel) SOA je paradigma předepisující způsob uspořádání a použití distribuovaných služeb, které mohou být spravovány různými vlastníky. Definuje jednotný způsob inzerce, hledání, vzájemné komunikace a spotřeby služeb s cílem dosáhnout požadovaných výsledků v souladu s měřitelnými předpoklady a očekáváním. SOA je paradigma kompozice služeb SOA je distribuovaná autonomní, ale spolupracující služby SOA je heterogenní prostředí služba přístupná přes své rozhraní SOA je standardizovaná popis rozhraní a způsob komunikace služeb SOA podporuje business služby realizují konkrétní business procesy (služby zpracovávají a produkují dokumenty, spravují zdroje, atd.) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
10 SOA: architektura orientovaná na služby (Service-Oriented Architecture), obecný koncept spolupracujících služeb, WS: webové služby (Web Services), technologie pro implementaci SOA, spravuje W3C skupina Web Services Architectures. Role komunikujících stran: poskytovatel služeb implementuje a nabízí služby (service provider), služba je specifikovaná svým popisem (URI, rozhraním a protokolem), spotřebitel služeb na základě popisu vyhledá službu v registru služeb a použije ji (service consumer). Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
11 Konceptuální model SOA model interakce mezi poskytovatelem služeb a spotřebitelem služeb Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
12 Struktura SOA Úvod k SOA a webovým službám SOA je částečně vrstevnatá architektura (vrstva = úroveň abstrakce) 1 vrstva business procesů BP je posloupnost kroků respektující business pravidla a vedoucí k zisku (hmotnému i nehmotnému), reprezentován sekvencí provedení několika služeb (choreografie služeb), 2 vrstva služeb rozhraní jednotlivých komponent sjednocena do služeb, služba za běhu sestavuje komponenty a přeposílá jim požadavky, služba na rozhraní zpřístupňuje své funkce (popis služby), 3 vrstva komponent základní stavební kameny služeb, realizace funkčnosti služeb a zajištění požadované kvality služeb (QoS), komponenty jsou černé skříňky a jejich funkce jsou přístupné pouze přes rozhraní. Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
13 Informační systém bez architektury SOA podsystémy jsou monolitické (komplikovaný přístup k jednotlivým funkcím, nejasné rozhraní, obtížná integrace celých podsystémů) podsystémy jsou striktně oddělené, každý má samostatný životní cyklus (implementací, správou, možností modifikace, atd.) (diagram převzat z Sun: Service-Oriented Architecture Overview ) komunikace podsystémů přes společné úložiště dat (problematická návaznost procesů, např. Order Status, nejasná zodpovědnost za data) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
14 Informační systém s architekturou SOA dekompozice na úroveň jednotlivých služeb (jasně definovaná rozhraní služeb, podsystémy vznikají kompozicí) podsystémy se prolínají sdílenými službami, každá má samostatný životní cyklus (sdílení společných částí podsystémů, např. Check Order Status ) (diagram převzat z Sun: Service-Oriented Architecture Overview ) přímá komunikace služeb, úložiště dat pro dokumenty (služby komunikují napříč podsystémy, s daty manipuluje služba reprezentující k datům příslušný business proces) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
15 Spolupráce mezi službami v SOA služby poskytují své prostředky bud přímo cílovému spotřebiteli anebo jiným službám, služby mezi sebou spolupracují (komunikují) zasíláním zpráv. Spolupráce mezi službami: kooperace služba využívá prostředky jiné (rovnocenné) služby pro realizaci nabízených funkcí, agregace služba sestavená ze dvou (nebo více, podřízených) služeb nabízí kombinaci funkcí dílčích služeb, choreografie služby potom spolupracují za účelem provedení konkrétního business procesu, orchestrace služba řídí součinost ostatních služeb za účelem provedení své části business procesu. Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
16 Principy SOA Úvod k SOA a webovým službám standardizace kompatibilita, nezávislost (jednotný způsob popisu služeb) volné vázání snadnější údržba služeb abstrakce jednoznačný způsob použití znovupoužitelnost vývoj služby přinese větší zisk nezávislost ověřitelnost funkčnosti bezstavovost předvídatelnost chování dohledatelnost implementační nezávislost kompozice tvorba složitějších služeb Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
17 Principy SOA Úvod k SOA a webovým službám standardizace kompatibilita, nezávislost volné vázání snadnější údržba služeb (minimum závislostí mezi službami, okolí služby závisí pouze na jejím rozhraní) abstrakce jednoznačný způsob použití znovupoužitelnost vývoj služby přinese větší zisk nezávislost ověřitelnost funkčnosti bezstavovost předvídatelnost chování dohledatelnost implementační nezávislost kompozice tvorba složitějších služeb Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
18 Principy SOA Úvod k SOA a webovým službám standardizace kompatibilita, nezávislost volné vázání snadnější údržba služeb abstrakce jednoznačný způsob použití (služby přístupné pouze přes rozhraní, zbytek zapouzdřen) znovupoužitelnost vývoj služby přinese větší zisk nezávislost ověřitelnost funkčnosti bezstavovost předvídatelnost chování dohledatelnost implementační nezávislost kompozice tvorba složitějších služeb Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
19 Principy SOA Úvod k SOA a webovým službám standardizace kompatibilita, nezávislost volné vázání snadnější údržba služeb abstrakce jednoznačný způsob použití znovupoužitelnost vývoj služby přinese větší zisk (služba použitelná v různých kontextech/systémech) nezávislost ověřitelnost funkčnosti bezstavovost předvídatelnost chování dohledatelnost implementační nezávislost kompozice tvorba složitějších služeb Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
20 Principy SOA Úvod k SOA a webovým službám standardizace kompatibilita, nezávislost volné vázání snadnější údržba služeb abstrakce jednoznačný způsob použití znovupoužitelnost vývoj služby přinese větší zisk nezávislost ověřitelnost funkčnosti (služby autonomní jednotky, nezávisí skrytě na svém okolí) bezstavovost předvídatelnost chování dohledatelnost implementační nezávislost kompozice tvorba složitějších služeb Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
21 Principy SOA Úvod k SOA a webovým službám standardizace kompatibilita, nezávislost volné vázání snadnější údržba služeb abstrakce jednoznačný způsob použití znovupoužitelnost vývoj služby přinese větší zisk nezávislost ověřitelnost funkčnosti bezstavovost předvídatelnost chování (služba by neměla uchovávat viditelnou stavovou informaci) dohledatelnost implementační nezávislost kompozice tvorba složitějších služeb Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
22 Principy SOA Úvod k SOA a webovým službám standardizace kompatibilita, nezávislost volné vázání snadnější údržba služeb abstrakce jednoznačný způsob použití znovupoužitelnost vývoj služby přinese větší zisk nezávislost ověřitelnost funkčnosti bezstavovost předvídatelnost chování dohledatelnost implementační nezávislost (navazovány účelově poskytovatel služby dle potřeby dohledatelný v adresáři) kompozice tvorba složitějších služeb Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
23 Principy SOA Úvod k SOA a webovým službám standardizace kompatibilita, nezávislost volné vázání snadnější údržba služeb abstrakce jednoznačný způsob použití znovupoužitelnost vývoj služby přinese větší zisk nezávislost ověřitelnost funkčnosti bezstavovost předvídatelnost chování dohledatelnost implementační nezávislost kompozice tvorba složitějších služeb (kompozice služeb do větších funkčních celků dle potřeby) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
24 Porovnání SOA s jinými architekturami a principy SOA vs. klient-server architektura klient server = rozhraní a apl. logika apl. logika, stav a sdílené zdroje, spotřebitel poskytovatel = potřebuje nabízí funkčnost, SOA je jemnější dekompozice (např. menší nároky na zdroje), SOA je více distribuovaná (rozmístění výpočetní logiky), služby se snaží být bezstavové z vnějšího pohledu. SOA vs. objektově orientovaný přístup SOA přístup preferuje volném provázání entit (služeb) OO přístup přesně vztahy mezi třídami, těsnější vazby entit (objektů), základní vlastností OO přístupu je dědičnost SOA přístup s dědičností nepočítá, preferuje delegaci, základní vlastností SOA přístupu je bezstavovost entit zapouzdření dat do objektů v OO přístupu, aktivita služeb v SOA přístupu je vyvolána až příchodem nějaké zprávy, podobný pohled na abstrakci entit (rozhraní). Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
25 Neznámější a nejpoužívanější technologie pro implementaci SOA Webové služby postaveny na webových standardech: HTTP protokol a SOAP protokol (Simple Object Access Protocol), jazyky XML (extensible Markup Language) a XML Schema (XSD), registr UDDI (Universal Description, Discovery and Integration) jazyk WSDL (Web Services Description Language) definice Web Service zahrnuje tvorbu XSD a WSDL dokumentů (tj. popis datových typů, operací, způsobu volání rozhraní služby) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
26 Neznámější a nejpoužívanější technologie pro implementaci SOA Webové služby postaveny na webových standardech: HTTP protokol a SOAP protokol (Simple Object Access Protocol), (komunikační spojení, obálku a adresace zpráv při volání konkrétních služeb) jazyky XML (extensible Markup Language) a XML Schema (XSD), registr UDDI (Universal Description, Discovery and Integration) jazyk WSDL (Web Services Description Language) definice Web Service zahrnuje tvorbu XSD a WSDL dokumentů (tj. popis datových typů, operací, způsobu volání rozhraní služby) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
27 Neznámější a nejpoužívanější technologie pro implementaci SOA Webové služby postaveny na webových standardech: HTTP protokol a SOAP protokol (Simple Object Access Protocol), jazyky XML (extensible Markup Language) a XML Schema (XSD), (popis struktury a vlastní zápis informací během přenosu při volání služeb) registr UDDI (Universal Description, Discovery and Integration) jazyk WSDL (Web Services Description Language) definice Web Service zahrnuje tvorbu XSD a WSDL dokumentů (tj. popis datových typů, operací, způsobu volání rozhraní služby) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
28 Neznámější a nejpoužívanější technologie pro implementaci SOA Webové služby postaveny na webových standardech: HTTP protokol a SOAP protokol (Simple Object Access Protocol), jazyky XML (extensible Markup Language) a XML Schema (XSD), registr UDDI (Universal Description, Discovery and Integration) (mechanismus registrů pro vyhledávání webových služeb) jazyk WSDL (Web Services Description Language) definice Web Service zahrnuje tvorbu XSD a WSDL dokumentů (tj. popis datových typů, operací, způsobu volání rozhraní služby) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
29 Neznámější a nejpoužívanější technologie pro implementaci SOA Webové služby postaveny na webových standardech: HTTP protokol a SOAP protokol (Simple Object Access Protocol), jazyky XML (extensible Markup Language) a XML Schema (XSD), registr UDDI (Universal Description, Discovery and Integration) jazyk WSDL (Web Services Description Language) (popis funkcí a umístění služeb a způsobu komunikace v XML) definice Web Service zahrnuje tvorbu XSD a WSDL dokumentů (tj. popis datových typů, operací, způsobu volání rozhraní služby) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
30 Neznámější a nejpoužívanější technologie pro implementaci SOA Webové služby postaveny na webových standardech: HTTP protokol a SOAP protokol (Simple Object Access Protocol), jazyky XML (extensible Markup Language) a XML Schema (XSD), registr UDDI (Universal Description, Discovery and Integration) jazyk WSDL (Web Services Description Language) definice Web Service zahrnuje tvorbu XSD a WSDL dokumentů (tj. popis datových typů, operací, způsobu volání rozhraní služby) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
31 Další standardy kolem Web Services (diagram převzat z Vinod Krishnan: SOA a quick view ) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
32 XML Schema Definition (XSD) Jazyk od W3C pro popis struktury/schéma XML dokumentů. (dalšími jazyky jsou např. DTD, Relax NG, Schematron, atd.) W3C XML Schema Definition Language (XSD) 1.1 popsaná v Part 1: Structures Part 2: Datatypes Popis schéma je XML dokument s elementem <xs:schema xmlns:xs=" xmlns:my=" targetnamespace=" elementformdefault="qualified">... </xs:schema> Obsahuje předdefinované jednoduché typy, další lze zadefinovat. (předdefinované jsou např. string, integer nebo date) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
33 XML Schema Definition (XSD) Jazyk od W3C pro popis struktury/schéma XML dokumentů. (dalšími jazyky jsou např. DTD, Relax NG, Schematron, atd.) W3C XML Schema Definition Language (XSD) 1.1 popsaná v Part 1: Structures Part 2: Datatypes Popis schéma je XML dokument s elementem <xs:schema xmlns:xs=" xmlns:my=" targetnamespace=" elementformdefault="qualified">... </xs:schema> Obsahuje předdefinované jednoduché typy, další lze zadefinovat. (předdefinované jsou např. string, integer nebo date) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
34 XML Schema Definition (XSD) Jazyk od W3C pro popis struktury/schéma XML dokumentů. (dalšími jazyky jsou např. DTD, Relax NG, Schematron, atd.) W3C XML Schema Definition Language (XSD) 1.1 popsaná v Part 1: Structures Part 2: Datatypes Popis schéma je XML dokument s elementem <xs:schema xmlns:xs=" xmlns:my=" targetnamespace=" elementformdefault="qualified">... </xs:schema> Obsahuje předdefinované jednoduché typy, další lze zadefinovat. (předdefinované jsou např. string, integer nebo date) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
35 XML Schema Definition (XSD) Jazyk od W3C pro popis struktury/schéma XML dokumentů. (dalšími jazyky jsou např. DTD, Relax NG, Schematron, atd.) W3C XML Schema Definition Language (XSD) 1.1 popsaná v Part 1: Structures Part 2: Datatypes Popis schéma je XML dokument s elementem <xs:schema xmlns:xs=" xmlns:my=" targetnamespace=" elementformdefault="qualified">... </xs:schema> Obsahuje předdefinované jednoduché typy, další lze zadefinovat. (předdefinované jsou např. string, integer nebo date) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
36 Definice dokumentů v XSD (příklady uvedeny bez prefixů jmených prostorů) elementy a atributy jednoduchých typů <element name="..." type="..."/> <attribute name="..." type="..." use="required"/> elementy složených typů nebo samotné složené typy <element name="..."><complextype>...</complextype></element> restrikce (omezení, výběry) jako jednoduché typy <simpletype name="..."><restriction base="integer"> <xs:pattern value="[0-9][0-9]"/></restriction></simpletype> <simpletype name="..."><restriction base="string"> <enumeration value="one"/>...</restriction></simpletype> sekvence elementů jako složené typy (řazené) <sequence><element name="..." type="..."/> <element name="..." type="..."/></sequence> množiny elementů jako složené typy (neřazené) <all><element name="..." type="..."/> <element name="..." type="..."/></all>... a další (vizte XML Schema Reference) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
37 Definice dokumentů v XSD (příklady uvedeny bez prefixů jmených prostorů) elementy a atributy jednoduchých typů <element name="..." type="..."/> <attribute name="..." type="..." use="required"/> elementy složených typů nebo samotné složené typy <element name="..."><complextype>...</complextype></element> restrikce (omezení, výběry) jako jednoduché typy <simpletype name="..."><restriction base="integer"> <xs:pattern value="[0-9][0-9]"/></restriction></simpletype> <simpletype name="..."><restriction base="string"> <enumeration value="one"/>...</restriction></simpletype> sekvence elementů jako složené typy (řazené) <sequence><element name="..." type="..."/> <element name="..." type="..."/></sequence> množiny elementů jako složené typy (neřazené) <all><element name="..." type="..."/> <element name="..." type="..."/></all>... a další (vizte XML Schema Reference) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
38 Definice dokumentů v XSD (příklady uvedeny bez prefixů jmených prostorů) elementy a atributy jednoduchých typů <element name="..." type="..."/> <attribute name="..." type="..." use="required"/> elementy složených typů nebo samotné složené typy <element name="..."><complextype>...</complextype></element> restrikce (omezení, výběry) jako jednoduché typy <simpletype name="..."><restriction base="integer"> <xs:pattern value="[0-9][0-9]"/></restriction></simpletype> <simpletype name="..."><restriction base="string"> <enumeration value="one"/>...</restriction></simpletype> sekvence elementů jako složené typy (řazené) <sequence><element name="..." type="..."/> <element name="..." type="..."/></sequence> množiny elementů jako složené typy (neřazené) <all><element name="..." type="..."/> <element name="..." type="..."/></all>... a další (vizte XML Schema Reference) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
39 Definice dokumentů v XSD (příklady uvedeny bez prefixů jmených prostorů) elementy a atributy jednoduchých typů <element name="..." type="..."/> <attribute name="..." type="..." use="required"/> elementy složených typů nebo samotné složené typy <element name="..."><complextype>...</complextype></element> restrikce (omezení, výběry) jako jednoduché typy <simpletype name="..."><restriction base="integer"> <xs:pattern value="[0-9][0-9]"/></restriction></simpletype> <simpletype name="..."><restriction base="string"> <enumeration value="one"/>...</restriction></simpletype> sekvence elementů jako složené typy (řazené) <sequence><element name="..." type="..."/> <element name="..." type="..."/></sequence> množiny elementů jako složené typy (neřazené) <all><element name="..." type="..."/> <element name="..." type="..."/></all>... a další (vizte XML Schema Reference) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
40 Definice dokumentů v XSD (příklady uvedeny bez prefixů jmených prostorů) elementy a atributy jednoduchých typů <element name="..." type="..."/> <attribute name="..." type="..." use="required"/> elementy složených typů nebo samotné složené typy <element name="..."><complextype>...</complextype></element> restrikce (omezení, výběry) jako jednoduché typy <simpletype name="..."><restriction base="integer"> <xs:pattern value="[0-9][0-9]"/></restriction></simpletype> <simpletype name="..."><restriction base="string"> <enumeration value="one"/>...</restriction></simpletype> sekvence elementů jako složené typy (řazené) <sequence><element name="..." type="..."/> <element name="..." type="..."/></sequence> množiny elementů jako složené typy (neřazené) <all><element name="..." type="..."/> <element name="..." type="..."/></all>... a další (vizte XML Schema Reference) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
41 Definice dokumentů v XSD (příklady uvedeny bez prefixů jmených prostorů) elementy a atributy jednoduchých typů <element name="..." type="..."/> <attribute name="..." type="..." use="required"/> elementy složených typů nebo samotné složené typy <element name="..."><complextype>...</complextype></element> restrikce (omezení, výběry) jako jednoduché typy <simpletype name="..."><restriction base="integer"> <xs:pattern value="[0-9][0-9]"/></restriction></simpletype> <simpletype name="..."><restriction base="string"> <enumeration value="one"/>...</restriction></simpletype> sekvence elementů jako složené typy (řazené) <sequence><element name="..." type="..."/> <element name="..." type="..."/></sequence> množiny elementů jako složené typy (neřazené) <all><element name="..." type="..."/> <element name="..." type="..."/></all>... a další (vizte XML Schema Reference) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
42 Příklad popisu v XSD <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs=" xmlns:my=" targetnamespace=" elementformdefault="qualified"> <xs:element name="holidayrequest"> <xs:complextype><xs:all> <xs:element name="holiday" type="my:holidaytype"/> <xs:element name="employee" type="my:employeetype"/> </xs:all></xs:complextype> </xs:element> <xs:complextype name="holidaytype"> <xs:sequence> <xs:element name="startdate" type="xs:date"/> <xs:element name="enddate" type="xs:date"/> </xs:sequence> </xs:complextype> <xs:complextype name="employeetype"> <xs:sequence> <xs:element name="number" type="xs:integer"/> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complextype> </xs:schema> Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
43 Příklad XML dokumentu podle uvedeného popisu Uvedenému popisu vyhovuje např. následující dokument <?xml version="1.0" encoding="utf-8"?> <HolidayRequest xmlns=" <Holiday> <StartDate> </StartDate> <EndDate> </EndDate> </Holiday> <Employee> <Number>42</Number> <FirstName>Arjen</FirstName> <LastName>Poutsma</LastName> </Employee> </HolidayRequest> Libovolné pořadí elementů umístění Holiday a Employee. (ale pevné pořadí jejich pod-elementů) Platné datum formátované jako YYYY-MM-DD. (datový typ definovaný ve specifikace XML Schema) Příklady XSD a WSDL převzaty z Spring Web Services: Reference Documentation. Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
44 Příklad XML dokumentu podle uvedeného popisu Uvedenému popisu vyhovuje např. následující dokument <?xml version="1.0" encoding="utf-8"?> <HolidayRequest xmlns=" <Holiday> <StartDate> </StartDate> <EndDate> </EndDate> </Holiday> <Employee> <Number>42</Number> <FirstName>Arjen</FirstName> <LastName>Poutsma</LastName> </Employee> </HolidayRequest> Libovolné pořadí elementů umístění Holiday a Employee. (ale pevné pořadí jejich pod-elementů) Platné datum formátované jako YYYY-MM-DD. (datový typ definovaný ve specifikace XML Schema) Příklady XSD a WSDL převzaty z Spring Web Services: Reference Documentation. Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
45 Příklad XML dokumentu podle uvedeného popisu Uvedenému popisu vyhovuje např. následující dokument <?xml version="1.0" encoding="utf-8"?> <HolidayRequest xmlns=" <Holiday> <StartDate> </StartDate> <EndDate> </EndDate> </Holiday> <Employee> <Number>42</Number> <FirstName>Arjen</FirstName> <LastName>Poutsma</LastName> </Employee> </HolidayRequest> Libovolné pořadí elementů umístění Holiday a Employee. (ale pevné pořadí jejich pod-elementů) Platné datum formátované jako YYYY-MM-DD. (datový typ definovaný ve specifikace XML Schema) Příklady XSD a WSDL převzaty z Spring Web Services: Reference Documentation. Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
46 Web Services Description Language (WSDL) W3C zavedla WSDL jako standard pro XML popis webových služeb. Jaké funkce poskytuje daná služba? Jak může být s danou službou navázána komunikace? Kde/kým je daná služba poskytována? Každá služba jako množina koncových bodů (service endpoints). v těchto bodech komunikuje s okolím pomocí zasílání zpráv, (pro jednoduchost si lze koncový bod představit jako rozhraní služby) WSDL poskytuje formální definici koncových bodů: 1 abstraktní popis koncového bodu, (popis rozhraní služby bez ohledu na konkrétní technologie a protokoly) 2 konkrétního popis koncového bodu. (navázání abstraktního popisu na reálnou implementaci a komunikace na konkrétní protokol) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
47 Web Services Description Language (WSDL) W3C zavedla WSDL jako standard pro XML popis webových služeb. Jaké funkce poskytuje daná služba? Jak může být s danou službou navázána komunikace? Kde/kým je daná služba poskytována? Každá služba jako množina koncových bodů (service endpoints). v těchto bodech komunikuje s okolím pomocí zasílání zpráv, (pro jednoduchost si lze koncový bod představit jako rozhraní služby) WSDL poskytuje formální definici koncových bodů: 1 abstraktní popis koncového bodu, (popis rozhraní služby bez ohledu na konkrétní technologie a protokoly) 2 konkrétního popis koncového bodu. (navázání abstraktního popisu na reálnou implementaci a komunikace na konkrétní protokol) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
48 Web Services Description Language (WSDL) W3C zavedla WSDL jako standard pro XML popis webových služeb. Jaké funkce poskytuje daná služba? Jak může být s danou službou navázána komunikace? Kde/kým je daná služba poskytována? Každá služba jako množina koncových bodů (service endpoints). v těchto bodech komunikuje s okolím pomocí zasílání zpráv, (pro jednoduchost si lze koncový bod představit jako rozhraní služby) WSDL poskytuje formální definici koncových bodů: 1 abstraktní popis koncového bodu, (popis rozhraní služby bez ohledu na konkrétní technologie a protokoly) 2 konkrétního popis koncového bodu. (navázání abstraktního popisu na reálnou implementaci a komunikace na konkrétní protokol) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
49 Abstraktní a konkrétní popis ve WSDL Abstraktní popis koncového bodu: popis rozhraní služby bez ohledu na konkrétní technologie a protokoly, tři základní oddíly: message: popis zpráv, které představují operace a jejich parametry. operation: popis operací, jejich vstupní a výstupní parametry, interface: rozhraní služby, tj. poskytované operace, Konkrétní popis koncového bodu: navázání abstraktního popisu na reálnou implementaci a komunikace na konkrétní protokol, tří základních oddíly: binding: formát volání služby, popis protokolu (např. v SOAP) pro jednotlivé operation nebo celé interface, service: popis služby jako seskupení prvků endpoints, endpoint: fyzická adresa, na které je služba přístupná. Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
50 Abstraktní a konkrétní popis ve WSDL Abstraktní popis koncového bodu: popis rozhraní služby bez ohledu na konkrétní technologie a protokoly, tři základní oddíly: message: popis zpráv, které představují operace a jejich parametry. operation: popis operací, jejich vstupní a výstupní parametry, interface: rozhraní služby, tj. poskytované operace, Konkrétní popis koncového bodu: navázání abstraktního popisu na reálnou implementaci a komunikace na konkrétní protokol, tří základních oddíly: binding: formát volání služby, popis protokolu (např. v SOAP) pro jednotlivé operation nebo celé interface, service: popis služby jako seskupení prvků endpoints, endpoint: fyzická adresa, na které je služba přístupná. Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
51 Ukázka WSDL popisu služby I Definujeme jmenné prostory pro jednotlivé části dokumentu: soap: WSDL popisuje službu pro protokol SOAP, tns: názvy používané v naší aplikaci, xsd: popis protokolu volání služby jako XML dokumentu, <?xml version="1.0" encoding="utf-8"?> <wsdl:definitions xmlns:wsdl=" xmlns:soap=" xmlns:schema=" xmlns:tns=" targetnamespace=" <wsdl:types> <xsd:schema xmlns:xsd=" <xsd:import namespace=" schemalocation="hr.xsd"/> </xsd:schema> </wsdl:types> Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
52 Ukázka WSDL popisu služby II Definujeme zprávy přijímané a navracené danou službou 1 : message: definice vlastní zprávy přenášené při komunikaci, operation: přiřazení zpráv k operacím posytovaným službou. <wsdl:message name="holidayrequest"> <wsdl:part element="schema:holidayrequest" name="holidayrequest"/> </wsdl:message> <wsdl:porttype name="humanresource"> <wsdl:operation name="holiday"> <wsdl:input message="tns:holidayrequest" name="holidayrequest"/> </wsdl:operation> </wsdl:porttype> Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
53 Ukázka WSDL popisu služby III Popis formátu volání operací pro SOAP a umístění služby 2 : <wsdl:binding name="humanresourcebinding" type="tns:humanresource"> <soap:binding style="document" transport=" <wsdl:operation name="holiday"> <soap:operation soapaction=" <wsdl:input name="holidayrequest"> <soap:body use="literal"/> </wsdl:input> </wsdl:operation> </wsdl:binding> <wsdl:service name="humanresourceservice"> <wsdl:port binding="tns:humanresourcebinding" name="humanresourceport"> <soap:address location=" </wsdl:port> </wsdl:service> </wsdl:definitions> 1 Elementy types, message a porttype popisují, co služba poskytuje. 2 Element binding popisuje, jak služba komunikuje, a service, kde ji kontaktovat. Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
54 Simple Object Access Protocol (SOAP) základní vrstva WS technologie, výměna XML zpráv, patří do aplikační vrstvy pětivrstvého TCP/IP modelu, bezstavový protokol, nezávislé na protokolu a implementaci, (jedním z protokolů komunikace je HTTP/HTTPS protokol) podporuje několik typů volání funkcí služeb, (kde klient posílá XML zprávu na server, nejznámější je implementované Remote Procedure Call (RPC), SOAP vychází ze staršího XML-RPC) definuje strukturu zprávy (obálka kolem hlavičky a těla). (pravděpodobně vychází ze staršího Web Distributed Data exchange (WDDX)) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
55 Simple Object Access Protocol (SOAP) základní vrstva WS technologie, výměna XML zpráv, patří do aplikační vrstvy pětivrstvého TCP/IP modelu, bezstavový protokol, nezávislé na protokolu a implementaci, (jedním z protokolů komunikace je HTTP/HTTPS protokol) podporuje několik typů volání funkcí služeb, (kde klient posílá XML zprávu na server, nejznámější je implementované Remote Procedure Call (RPC), SOAP vychází ze staršího XML-RPC) definuje strukturu zprávy (obálka kolem hlavičky a těla). (pravděpodobně vychází ze staršího Web Distributed Data exchange (WDDX)) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
56 Simple Object Access Protocol (SOAP) základní vrstva WS technologie, výměna XML zpráv, patří do aplikační vrstvy pětivrstvého TCP/IP modelu, bezstavový protokol, nezávislé na protokolu a implementaci, (jedním z protokolů komunikace je HTTP/HTTPS protokol) podporuje několik typů volání funkcí služeb, (kde klient posílá XML zprávu na server, nejznámější je implementované Remote Procedure Call (RPC), SOAP vychází ze staršího XML-RPC) definuje strukturu zprávy (obálka kolem hlavičky a těla). (pravděpodobně vychází ze staršího Web Distributed Data exchange (WDDX)) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
57 Simple Object Access Protocol (SOAP) základní vrstva WS technologie, výměna XML zpráv, patří do aplikační vrstvy pětivrstvého TCP/IP modelu, bezstavový protokol, nezávislé na protokolu a implementaci, (jedním z protokolů komunikace je HTTP/HTTPS protokol) podporuje několik typů volání funkcí služeb, (kde klient posílá XML zprávu na server, nejznámější je implementované Remote Procedure Call (RPC), SOAP vychází ze staršího XML-RPC) definuje strukturu zprávy (obálka kolem hlavičky a těla). (pravděpodobně vychází ze staršího Web Distributed Data exchange (WDDX)) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
58 Simple Object Access Protocol (SOAP) základní vrstva WS technologie, výměna XML zpráv, patří do aplikační vrstvy pětivrstvého TCP/IP modelu, bezstavový protokol, nezávislé na protokolu a implementaci, (jedním z protokolů komunikace je HTTP/HTTPS protokol) podporuje několik typů volání funkcí služeb, (kde klient posílá XML zprávu na server, nejznámější je implementované Remote Procedure Call (RPC), SOAP vychází ze staršího XML-RPC) definuje strukturu zprávy (obálka kolem hlavičky a těla). (pravděpodobně vychází ze staršího Web Distributed Data exchange (WDDX)) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
59 Struktura SOAP zprávy (diagram převzat z The Java EE 5 Tutorial ) zpráva = obálka s hlavičkami (nepovinné) a tělem + přílohy (nepovinné) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
60 Ukázka struktury SOAP zprávy v HTTP protokolu MIME-Version: 1.0 Content-Type: text/xml; charset=utf-8 Content-Transfer-Encoding: 8bit <?xml version="1.0" encoding="utf-8"?> <env:envelope xmlns:env=" <env:header/> <env:body> <r:holidayrequest xmlns:r=" <r:holiday> <r:startdate> </r:startdate> <r:enddate> </r:enddate> </r:holiday> <r:employee> <r:number>42</r:number> <r:firstname>arjen</r:firstname> <r:lastname>poutsma</r:lastname> </r:employee> </r:holidayrequest> </env:body> </env:envelope> Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
61 Existuje mnoho scénářů volání služeb přes SOAP Fire-and-forget (one-way) (klient odešle požadavek na službu a déle se nečeká, nic nevrací) Request/Response (odešle požadavek a čeká na odpověd ) Request with acknowledgement (odešle požadavek a čeká na potvrzení příjmu) Remote Procedure Call (RPC) (odešle požadavek se serializovanými parametry volané procedůry a čeká na odpověd opět v podobě serializovaných návratových hodnot)... a další (vizte SOAP Version 1.2 Usage Scenarios ) Synchronní/asynchronní komunikace záleží na transportním protokolu. (např. HTTP(s) synchronní, umí odpovědi, např. narozdíl od ových zpráv) Samozřejmě je možno implemntovat asynchronicitu na úrovni služby. (požadavek pošle klient metodou fire-and-forget, ale přiloží v něm adresu vlastní služby, která je připravena přijmout odpověd ) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
62 Existuje mnoho scénářů volání služeb přes SOAP Fire-and-forget (one-way) (klient odešle požadavek na službu a déle se nečeká, nic nevrací) Request/Response (odešle požadavek a čeká na odpověd ) Request with acknowledgement (odešle požadavek a čeká na potvrzení příjmu) Remote Procedure Call (RPC) (odešle požadavek se serializovanými parametry volané procedůry a čeká na odpověd opět v podobě serializovaných návratových hodnot)... a další (vizte SOAP Version 1.2 Usage Scenarios ) Synchronní/asynchronní komunikace záleží na transportním protokolu. (např. HTTP(s) synchronní, umí odpovědi, např. narozdíl od ových zpráv) Samozřejmě je možno implemntovat asynchronicitu na úrovni služby. (požadavek pošle klient metodou fire-and-forget, ale přiloží v něm adresu vlastní služby, která je připravena přijmout odpověd ) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
63 Existuje mnoho scénářů volání služeb přes SOAP Fire-and-forget (one-way) (klient odešle požadavek na službu a déle se nečeká, nic nevrací) Request/Response (odešle požadavek a čeká na odpověd ) Request with acknowledgement (odešle požadavek a čeká na potvrzení příjmu) Remote Procedure Call (RPC) (odešle požadavek se serializovanými parametry volané procedůry a čeká na odpověd opět v podobě serializovaných návratových hodnot)... a další (vizte SOAP Version 1.2 Usage Scenarios ) Synchronní/asynchronní komunikace záleží na transportním protokolu. (např. HTTP(s) synchronní, umí odpovědi, např. narozdíl od ových zpráv) Samozřejmě je možno implemntovat asynchronicitu na úrovni služby. (požadavek pošle klient metodou fire-and-forget, ale přiloží v něm adresu vlastní služby, která je připravena přijmout odpověd ) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
64 Existuje mnoho scénářů volání služeb přes SOAP Fire-and-forget (one-way) (klient odešle požadavek na službu a déle se nečeká, nic nevrací) Request/Response (odešle požadavek a čeká na odpověd ) Request with acknowledgement (odešle požadavek a čeká na potvrzení příjmu) Remote Procedure Call (RPC) (odešle požadavek se serializovanými parametry volané procedůry a čeká na odpověd opět v podobě serializovaných návratových hodnot)... a další (vizte SOAP Version 1.2 Usage Scenarios ) Synchronní/asynchronní komunikace záleží na transportním protokolu. (např. HTTP(s) synchronní, umí odpovědi, např. narozdíl od ových zpráv) Samozřejmě je možno implemntovat asynchronicitu na úrovni služby. (požadavek pošle klient metodou fire-and-forget, ale přiloží v něm adresu vlastní služby, která je připravena přijmout odpověd ) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
65 Existuje mnoho scénářů volání služeb přes SOAP Fire-and-forget (one-way) (klient odešle požadavek na službu a déle se nečeká, nic nevrací) Request/Response (odešle požadavek a čeká na odpověd ) Request with acknowledgement (odešle požadavek a čeká na potvrzení příjmu) Remote Procedure Call (RPC) (odešle požadavek se serializovanými parametry volané procedůry a čeká na odpověd opět v podobě serializovaných návratových hodnot)... a další (vizte SOAP Version 1.2 Usage Scenarios ) Synchronní/asynchronní komunikace záleží na transportním protokolu. (např. HTTP(s) synchronní, umí odpovědi, např. narozdíl od ových zpráv) Samozřejmě je možno implemntovat asynchronicitu na úrovni služby. (požadavek pošle klient metodou fire-and-forget, ale přiloží v něm adresu vlastní služby, která je připravena přijmout odpověd ) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
66 Existuje mnoho scénářů volání služeb přes SOAP Fire-and-forget (one-way) (klient odešle požadavek na službu a déle se nečeká, nic nevrací) Request/Response (odešle požadavek a čeká na odpověd ) Request with acknowledgement (odešle požadavek a čeká na potvrzení příjmu) Remote Procedure Call (RPC) (odešle požadavek se serializovanými parametry volané procedůry a čeká na odpověd opět v podobě serializovaných návratových hodnot)... a další (vizte SOAP Version 1.2 Usage Scenarios ) Synchronní/asynchronní komunikace záleží na transportním protokolu. (např. HTTP(s) synchronní, umí odpovědi, např. narozdíl od ových zpráv) Samozřejmě je možno implemntovat asynchronicitu na úrovni služby. (požadavek pošle klient metodou fire-and-forget, ale přiloží v něm adresu vlastní služby, která je připravena přijmout odpověd ) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
67 Obsah Úvod k SOA a webovým službám Poskytovatel webové služby pomocí JAX-WS Spotřebitel webové služby pomocí JAX-WS Použití JAX-WS v aplikačním serveru a podpora v IDE 1 Úvod k SOA a webovým službám 2 Poskytovatel webové služby pomocí JAX-WS Spotřebitel webové služby pomocí JAX-WS Použití JAX-WS v aplikačním serveru a podpora v IDE 3 Representational State Transfer (REST) architektura Webové služby pomocí JAX-RS 4 Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
68 Poskytovatel webové služby pomocí JAX-WS Spotřebitel webové služby pomocí JAX-WS Použití JAX-WS v aplikačním serveru a podpora v IDE pro realizaci XML webových služeb a jejich klientů v Java EE, (poskytovatelů a spotřebitelů služeb dle SOA) používá přenos XML zpráv SOAP protokolem přes HTTP, (přes knihovny SOAP with Attachments API for Java, SAAJ) podporuje různé modely komunikace 3 : (implicitně se použije Document/literal, nastavitelné pomocí anotace) 1 RPC/encoded (jednoduché WSDL s názvem operace a typy parametrů přímo ve zprávě) 2 RPC/literal (podobně jako předchozí, ale bez typů ve zprávě) 3 Document/encoded (nepoužívá se, není podporováno standardy organizace WS-I) 4 Document/literal nejčastěji používaný (WSDL popis obsahuje definici typů v XML Schema, lehce validovatelné) 3 http: // Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
69 Implementace JAX-WS Poskytovatel webové služby pomocí JAX-WS Spotřebitel webové služby pomocí JAX-WS Použití JAX-WS v aplikačním serveru a podpora v IDE webové služby jsou definovány jako Java třídy s poskytovanými metodami označenými pomocí anotací, (automatický převod definice rozhraní třídy do popisu pomocí WSDL) spotřebitel vytvoří pomocí JAX-WS lokální proxy pro vzdálenou webovou službu a tu transparentně používá, (proxy má stejné rozhraní jako třída implementující webovou službu u poskytovatele, převod volání metod proxy na SOAP zprávy je automatický), respektuje nezávislost na platformě lze komunikovat s libovolně implementovanými službami. (tzn. se službami neimplementovanými v Javě, pomocí JAX-WS, apod.) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
70 Poskytovatel webové služby pomocí JAX-WS Spotřebitel webové služby pomocí JAX-WS Použití JAX-WS v aplikačním serveru a podpora v IDE Technologie JAX-WS v Java EE podle [Jendrock et al., 2014] Marek Rychlý tenký/tlustý Webové služby klient v Java EE (JAX-WS) Java EE Přednáška aplikační pro PDI, 7. listopadu server 2014 databáze 31 / 51
71 Komunikace přes JAX-WS podle [Jendrock et al., 2014] Poskytovatel webové služby pomocí JAX-WS Spotřebitel webové služby pomocí JAX-WS Použití JAX-WS v aplikačním serveru a podpora v IDE JAX-WS tvoří abstrakci nad SOAP komunikací webových služeb Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
72 Poskytovatel webové služby pomocí JAX-WS Spotřebitel webové služby pomocí JAX-WS Použití JAX-WS v aplikačním serveru a podpora v IDE Implementace poskytovatele WS pomocí JAX-WS Použití webová služba je realizována jako rozhraní/třída s (service endpoint interface/service endpoint implementation (SEI)) implicitní je definice rozhraní služby společně s implementací (ve třídě), (přímo u implementace metod třídy pomocí parametr endpointinterface umožňuje oddělit definici rozhraní služby, (rozhraní musí rozšiřovat rozhraní Remote a označit metody třída implementující službu nesmí být final nebo abstract, musí mít implicitní bezparametrický konstruktor, (metody s obslouží vznik a zánik) metody rozhraní/třídy pro webovou službu musí být public a nesmí být static nebo final, typy parametrů a návratových hodnot metod rozhraní/třídy pro webovou službu jsou omezeny Java Architecture for XML Data Binding (JAXB), z třídy (tj. z implementace služby) lze generovat popis služby. (wsgen -d <output dir> -classpath <cp dir> <SEI class>) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
73 Poskytovatel webové služby pomocí JAX-WS Spotřebitel webové služby pomocí JAX-WS Použití JAX-WS v aplikačním serveru a podpora v IDE Ukázka implementace poskytovatele v JAX-WS import public class math { private double memory = 0; private String ver = "Math Service = "getmemory") public double getmemory() { return this.memory; = public void setmemory(@webparam(name = "newvalue") double newvalue) { this.memory = newvalue; = "addtomemory") public double addtomemory(@webparam(name = "addvalue") double addvalue) { return this.memory = this.memory + addvalue; = "getversion") public String getversion() { return this.ver; } } Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
74 Poskytovatel webové služby pomocí JAX-WS Spotřebitel webové služby pomocí JAX-WS Použití JAX-WS v aplikačním serveru a podpora v IDE Zprovoznění poskytovatele WS pomocí JAX-WS Postup zprovoznění poskytovatele webové služby: 1 tvorba kódu třídy s implementací služby, 2 kompilace třídy s implementací služby, 3 použití nástroje wsgen pro generování popisu služby, 4 zabalení zkompilované implementace a popisu do WAR archivu, 5 umístění WAR archivu na aplikační server. (apl. server automaticky generuje popis služby vyžadovaný spotřebitelem) Většina aplikačních serverů umožňuje poskytuje pomocné akce: Tomcat informace o webové službě na adrese a WSDL popis na adrese SUN testování webové služby na adrese Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
75 Poskytovatel webové služby pomocí JAX-WS Spotřebitel webové služby pomocí JAX-WS Použití JAX-WS v aplikačním serveru a podpora v IDE Implementace spotřebitele WS pomocí JAX-WS Použití klient deklaruje odkaz na webovou službu (parametr wsdllocation udává URI na WSDL odkazované služby) anotace se použije s deklarací proměnné zastupující objekt poskytovatele proxy, (proměnná se deklaruje jako static a bez přiřazení hodnoty, typ proměnné, tj. třída objektu, je třída implementující službu doplněná v názvu slovem Service ) objekt poskytovatele proxy se použije k získání proxy (portu služby), (metoda getnameport, kde slovo Name je název třídy implementující službu) proxy se používá jako klasický objekt třídy implementující službu. (práce s webovou službou zastupovanou proxy je plně transparentní, jako práce s lokálním objektem třídy implementující webovou službu) z WSDL lze generovat zdroje pro referenci služby v kódu klienta. (voláním wsimport -d <output dir> <WSDL file>) Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
76 Poskytovatel webové služby pomocí JAX-WS Spotřebitel webové služby pomocí JAX-WS Použití JAX-WS v aplikačním serveru a podpora v IDE Ukázka implementace spotřebitele v JAX-WS import javax.xml.ws.webserviceref; import cz.vutbr.fit.rychly.wsdemo.service.mathservice; import cz.vutbr.fit.rychly.wsdemo.service.math; public class MathClient static MathService service; public static void main(string[] args) { try { (new MathClient).doTest(args); } catch(exception e) { e.printstacktrace(); } } public void dotest(string[] args) { try { System.out.println("retrieving the port from" + service); Math port = service.getmathport(); System.out.println("invoking the operation on the port"); Sestem.out.println(port.getMemory()); } catch(exception e) { e.printstacktrace(); } } } Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
77 Poskytovatel webové služby pomocí JAX-WS Spotřebitel webové služby pomocí JAX-WS Použití JAX-WS v aplikačním serveru a podpora v IDE Zprovoznění spotřebitele WS pomocí JAX-WS Postup zprovoznění spotřebitele webové služby: 1 tvorba kódu tříd spotřebovávajících webovou službu, 2 použití nástroje wsimport s WSDL pro generování zdrojů, 3 kompilace tříd s spotřebovávajících webovou službu, 4 spuštění spotřebitele webové služby. Celý proces může být usnadněn vývojovým prostředím (IDE). Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
78 Poskytovatel webové služby pomocí JAX-WS Spotřebitel webové služby pomocí JAX-WS Použití JAX-WS v aplikačním serveru a podpora v IDE Kombinace JAX-WS s doplňujícími technologiemi Speciální použití webových služeb: Streaming API for XML (StAX) postupné zpřístupnění XML dokumentu pomocí webové služby (toto není Document Object Model (DOM)), SOAP with Attachments API for Java (SAAJ) volání s přílohami. Autentizace a autorizace: anotace javax.annotation.security.rolesallowed umožňuje specifikovat role, které mohou přistupovat ke službě (SEI třídě) nebo jejím metodám, anotace javax.annotation.security.declareroles umožňuje nastavit role, ve kterých bude služba (SEI třída) vystupovat, (užitečné při (oboustranném) použití certifikátů) apl. server autentizuje uživatele a autorizuje je pro přístup k webovým komponentám s definovanými rolemi, (autentizační mechanismy Basic, Digest, Form, Client-Cert, a jiné) webová služba je webová komponenta, přístup k ní lze zabezpečit podobně jako např. k servletu. Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
79 Zabezpečení webové komponenty [Jendrock et al., 2014] Poskytovatel webové služby pomocí JAX-WS Spotřebitel webové služby pomocí JAX-WS Použití JAX-WS v aplikačním serveru a podpora v IDE Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
80 Poskytovatel webové služby pomocí JAX-WS Spotřebitel webové služby pomocí JAX-WS Použití JAX-WS v aplikačním serveru a podpora v IDE Použití JAX-WS v aplikačním serveru Tomcat Nebudeme využívat zabudovaný apl. server v IDE, použijeme 4 1 Apache Tomcat 6.0 je Servlet-2.5/JSP-2.1 webový kontejner, (nepodporuje JavaBeans, jako např. Sun Java System Application Server), 2 stáhneme z a nainstalujeme, 3 přidáme účet správce serveru do tomcat-users.xml <?xml version= 1.0 encoding= utf-8?> <tomcat-users> <role rolename="manager"/> <role rolename="admin"/> <role rolename="host-manager"/> <user username="x" password="y" roles="admin,manager,host-manager"/> </tomcat-users> 4 spustíme a spravujeme webovým rozhraním na 4 nebo použijeme školní server pcuifs2 Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
81 Poskytovatel webové služby pomocí JAX-WS Spotřebitel webové služby pomocí JAX-WS Použití JAX-WS v aplikačním serveru a podpora v IDE Podpora JAX-WS ve vývojovém prostředí NetBeans 1 v menu Tools: Servers přidáme server Tomcat příslušné verze, 2 založíme nový projekt typu Web Application, 3 v Project Properties: Run nastavíme server a cestu ke komponentě, 4 z kontextové nabídky projektu vybereme typ nové komponenty (viz vlevo), 5 po implementaci dáme Build a Deploy. Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
82 Poskytovatel webové služby pomocí JAX-WS Spotřebitel webové služby pomocí JAX-WS Použití JAX-WS v aplikačním serveru a podpora v IDE Konfigurace služby ve vývojovém prostředí NetBeans Marek Rychlý Webové služby v Java EE (JAX-WS) Přednáška pro PDI, 7. listopadu / 51
Webové služby v Java EE (JAX-WS)
Webové služby v Java EE (JAX-WS) Marek Rychlý Vysoké učení technické v Brně Fakulta informačních technologií Ústav informačních systémů Přednáška pro PDI 29. listopadu 2007 Marek Rychlý Webové služby v
VíceŽivotní cyklus služby v SOA a popis webových služeb
a popis webových služeb Marek Rychlý Vysoké učení technické v Brně Fakulta informačních technologií Ústav informačních systémů Přednáška pro IOA 1. října 2014 Marek Rychlý Životní cyklus služby v SOA a
VíceÚvod do Web Services
Úvod do Web Services Základy webových služeb a jejich implementace na platformě OS/2 Jarda Kačer jarda@kacer.biz Český Warpstock 2008 Brno, 20.-21.9.2008 Co je to webová služba? Část business logiky přístupná
Více1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services
13. Webové služby. K čemu slouží? Popis a vyhledávání služeb. Co je a k čemu slouží orchestrace a choreografie služeb. Technologie pro implementaci služeb 1. Webové služby. K čemu slouží? Definice WS -
VíceX33EJA Web Services. Martin Ptáček, KOMIX s.r.o.
X33EJA Web Services Martin Ptáček, KOMIX s.r.o. ptacek@komix.cz Copyright 2007 KOMIX Copyright s.r.o. 2007 KOMIX s.r.o. 1. Obsah Historie Co jsou Web Services? Co je to SOA? JAX-WS (Java API for XML Web
VíceServisně 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
VíceArchitektura orientovaná na služby Návrh orientovaný na služby. Ing. Petr Weiss. VUT v Brně,, FIT, UIFS
Architektura orientovaná na služby Návrh orientovaný na služby Webové služby Ing. Petr Weiss VUT v Brně,, FIT, UIFS 3. 12. 2007 Obsah Architektura orientovaná na služby Základní pojmy Koncepce architektury
VíceWebové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML
Obsah přednášky Webové služby a XML Miroslav Beneš Co jsou to webové služby Architektura webových služeb SOAP SOAP a Java SOAP a PHP SOAP a C# Webové služby a XML 2 Co jsou to webové služby rozhraní k
VíceMichal Krátký, Miroslav Beneš
Tvorba informačních systémů 1/20 Tvorba informačních systémů Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2008/2009 Tvorba informačních
VíceTvorba informačních systémů
9. Tvorba informačních systémů Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2007/2008 c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba
VíceSoftwarové komponenty a Internet
Softwarové komponenty a Internet Doc. Dr. Ing. Miroslav Beneš Katedra informatiky FEI VŠB-TU Ostrava Miroslav.Benes@vsb.cz Obsah přednášky Motivace Vývoj přístupů k tvorbě programů Definice komponenty
VíceMetody 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
VíceWebové služby v Java EE (JAX-WS)
Webové služby v Java EE (JAX-WS) Marek Rychlý Vysoké učení technické v Brně Fakulta informačních technologií Ústav informačních systémů Přednáška pro PDI 24. listopadu 2015 Marek Rychlý Webové služby v
VíceReferenční rozhraní. Jiří Kosek. Ministerstvo informatiky ČR. ISSS 25. března 2003
Jiří Kosek Ministerstvo informatiky ČR ISSS 25. března 2003 Požadavky na RR!zákon 365/2000 Sb.!RR je souhrnem opatření, která vytvářejí jednotné integrační prostředí informačních systémů veřejné správy!rr
VícePožadavky pro výběrová řízení TerraBus ESB/G2x
Dokument: Převod dat TerraBus ESB/G2x Požadavky pro výběrová řízení TerraBus ESB/G2x Obsah 1. Účel dokumentu... 2 2. Použité termíny a zkratky... 2 3. Požadavky... 3 Účel dokumentu Účelem tohoto dokumentu
VíceKomponentový návrh SW
Komponentový návrh SW Komponentový návrh SW Komponenty jsou kompletně specifikované pomocí interface Jejich funkčnost je nezávislá na programovacím jazyku a mohou být integrované do toho samého systému
VíceCommon Object Request Broker Architecture
Common Object Request Broker Architecture Tvorba aplikací, jejichž komponenty budou komunikovat přes počítačovou síť Programátor jedné aplikace volá metody vzdálených objektů podobně jako u sebe lokální
VíceSOAP & REST služby. Rozdíly, architektury, použití
SOAP & REST služby Rozdíly, architektury, použití Obsah Srovnání SOAP a REST služeb Service Oriented Architecture Microservice Architecture Příklady použití Nástroje pro vývoj SOAP a REST služeb (v Java)
VíceWeb Services na SOAP
Web Services Používají HTTP Existují dvě varianty: Služby postavené na protokolu SOAP Java standard pro vytváření : JAX-WS RESTfull služby Java standard pro vytváření : JAX-RS Web Services na SOAP Žádost
VíceWebové služby a XML. Miroslav Beneš
Webové služby a XML Miroslav Beneš Obsah přednášky Co jsou to webové služby Architektura webových služeb SOAP SOAP a Java SOAP a PHP SOAP a C# Webové služby a XML 2 Co jsou to webové služby rozhraní k
VíceTvorba informačních systémů
Tvorba informačních systémů Michal Krátký 1, Miroslav Beneš 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2005/2006 c 2006 Michal Krátký, Miroslav Beneš Tvorba informačních
VíceInternetovéTechnologie
9 InternetovéTechnologie webové služby, SOA, služby, atd. Ing. Michal Radecký, Ph.D. www.cs.vsb.cz/radecky Co je to webová služba - Webová služba je softwarový systém zkonstruovaný k podpoře interakce
VíceKoordinační středisko pro resortní zdravotnické informační systémy
Aplikace pro Národní onkologický registr na KSRZIS Koordinační středisko pro resortní zdravotnické informační systémy Národní onkologický registr webová služba pro posílání dávek dat do DB NOR a stažení
VíceUJO Framework. revoluční architektura beans. verze 0.80 http://ujoframework.org/
UJO Framework revoluční architektura beans verze 0.80 http://ujoframework.org/ Pavel Pone(c), září 2008 Historie rok 2004 upravené objekty z frameworku Cayenne nevýhodou byla špatná typová kontrola rok
VícePOLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE
POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE INTERPI Interoperabilita v paměťových institucích Program aplikovaného výzkumu a vývoje národní kulturní identity (NAKI) (DF11P01OVV023) Zpracovali: Marie
VíceWebové 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
VícePODMÍNKY POSKYTOVÁNÍ PŘÍSTUPU K PORTÁLU NAMĚŘENÝCH DAT POMOCÍ WEBOVÝCH SLUŽEB SPOLEČNOSTI ČEZ DISTRIBUCE, A. S.
PODMÍNKY POSKYTOVÁNÍ PŘÍSTUPU K PORTÁLU NAMĚŘENÝCH DAT POMOCÍ WEBOVÝCH SLUŽEB SPOLEČNOSTI ČEZ DISTRIBUCE, A. S. 1 ÚVOD... 5 2 POPIS VÝMĚNY DAT... 6 2.1 KOMUNIKAČNÍ SCÉNÁŘE... 6 2.2 TECHNOLOGIE KOMUNIKACE...
VícePříloha: Dodatečné informace, včetně přesného znění žádosti dodavatele o dodatečné informace
Příloha: Dodatečné informace, včetně přesného znění žádosti dodavatele o dodatečné informace Pořadové číslo dodatečných informací: 14. ČÁST 1: Přesné znění žádosti dodavatele o dodatečné informace Otázka
VíceRESTful web service v Javě
Mendelova univerzita v Brně Provozně ekonomická fakulta RESTful web service v Javě Literární rešerše práce Vedoucí práce: Ing. Jan Turčínek, Ph.D. Pavel Savrov Brno 2016 OBSAH 2 Obsah 1 Protokoly implementaci
VíceTechnologie Java Enterprise Edition. Přemek Brada, KIV ZČU 8.6.2011
Technologie Java Enterprise Edition Přemek Brada, KIV ZČU 8.6.2011 Přehled tématu Motivace a úvod Infrastruktura pro velké Java aplikace (Java základní přehled) Části třívrstvé struktury servlety, JSP
VíceČeská správa sociálního zabezpečení
Česká správa sociálního zabezpečení Provozní řád Informačního a komunikačního rozhraní České správy sociálního zabezpečení pro komunikaci se systémy třetích stran Verze schválena k 27. 1. 2015 Příloha
Více14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.
Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání
VíceOsnova. GIOP a IIOP IDL IOR POA. IDL Klient Server. 2 Historie. 3 Princip a základní pojmy. 4 Implementace. 5 Aplikace CORBA
Common Object Request Broker Architecture FJFI ČVUT 9. 12. 2010 Osnova 1 2 3 4 5 Standard umožňující propojení aplikací psaných v různých jazycích a běžících na různých strojích a architekturách. Definuje
VícePokročilé Webové služby a Caché security. Š. Havlíček
Pokročilé Webové služby a Caché security Š. Havlíček Webové služby co se tím míní? Webová služba metoda komunikace mezi dvěma elektronickými zařízeními přes internet Typicky jsou pomocí rozhraní přístupné
VícePopis 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...
VíceVerze dokumentu 0.1 duben 2016
Testování v SoapUI Verze dokumentu 0.1 duben 2016 Testování v SoapUI Strana 1/11 Obsah Seznam zkratek a pojmů uvedených v dokumentu... 3 1. Úvod... 4 2. Zahájení testování... 4 3. Vytvoření nového projektu...
VíceZá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
VíceTÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího
VíceKomponentní technologie
Komponentní technologie doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah Motivace Aplikace v IT Vývoj přístupů
VíceSystém elektronického rádce v životních situacích portálu www.senorady.cz
Systém elektronického rádce v životních situacích portálu www.senorady.cz Obec Senorady Miroslav Patočka 2006 Obsah: 1. Úvodní informace 1.1 Informace pro uživatele 1.1.1 Přístupnost HTML, PDA, WAP, XML
VíceTECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY
Příloha č. 3 k č.j. MV-159754-3/VZ-2013 Počet listů: 7 TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY Nové funkcionality Czech POINT 2012 Popis rozhraní egon Service Bus Centrální Místo Služeb 2.0 (dále jen CMS
Více10 Balíčky, grafické znázornění tříd, základy zapozdření
10 Balíčky, grafické znázornění tříd, základy zapozdření Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům balíčkům, grafickému
VíceČeská správa sociálního zabezpečení
Česká správa sociálního zabezpečení Provozní řád Informačního a komunikačního rozhraní České správy sociálního zabezpečení pro komunikaci se systémy třetích stran Verze schválena k 26. 9. 2017 O B S A
VíceTÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 25. Otázka : Komponentní technologie - základní pojmy a principy, metody specifikace komponent. Obsah : 1. Základní pojmy 1.1 Komponenta Komponenta
VíceNetBeans platforma. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
NetBeans platforma Aplikační programování v Javě (BI-APJ) - 7 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha Evropský sociální fond Praha & EU: Investujeme
VíceSpecifikace 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
VíceIdentifikátor materiálu: ICT-3-03
Identifikátor materiálu: ICT-3-03 Předmět Téma sady Informační a komunikační technologie Téma materiálu TCP/IP Autor Ing. Bohuslav Nepovím Anotace Student si procvičí / osvojí architekturu TCP/IP. Druh
VíceTestování SOA systémů v Oracle SOA Suite
Testování SOA systémů v Oracle SOA Suite Marek Rychlý Vysoké učení technické v Brně Fakulta informačních technologií Ústav informačních systémů Přednáška pro IOA 3. prosince 2014 Marek Rychlý Testování
VíceJava a XML. 10/26/09 1/7 Java a XML
Java a XML Java i XML jsou přenositelné V javě existuje podpora pro práci s XML, nejčastější akce prováděné při zpracování XML: načítání XML elementů generování nových elementů nebo úprava starého zápis
VíceObsah 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
Více11.5.2012. Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9
Obsah přednášky 9 Základy programování (IZAPR, IZKPR) Přednáška 9 Základy dědičnosti, přístupová práva Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 03 022, Náměstí Čs. legií
Více(Enterprise) JavaBeans. Lekce 7
(Enterprise) JavaBeans Lekce 7 JavaBeans vs. Enterprise JavaBeans (EJB) JavaBeans technologie: jedná se o tzv. komponentní architekturu určenou pro JSE platformu určená pro tvorbu JSE GUI programů pomocí
VíceRESTful API TAMZ 1. Cvičení 11
RESTful API TAMZ 1 Cvičení 11 REST Architektura rozhraní navržená pro distribuované prostředí Pojem REST byl představen v roce 2000 v disertační práci Roye Fieldinga, zkratka z Representional State Transfer
VíceWebové 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
VícePlatformy / technologie. Jaroslav Žáček jaroslav.zacek@osu.cz
Platformy / technologie Jaroslav Žáček jaroslav.zacek@osu.cz Které platformy / technologie znáte Java Java Java EE 5 Java EE 6 Pruning, Extensibility Ease of Dev, CDI, JAX-RS Java EE 7! JMS 2, Batch, Concurrency,
Vícejava remote method invocation Kateřina Fricková, Matouš Jandek
java remote method invocation Kateřina Fricková, Matouš Jandek Distribuovaný systém počítačový systém, ve kterém jsou jednotlivé komponenty propojeny počítačovou síťí komponenty systému sdílí cíl, kterého
VíceWCF. IW5 - Programování v.net a C# WCF
IW5 - Programování v.net a C# Strana 1 Obsah přednášky Představení Konfigurace hosta Vygenerování klienta Několik názorných příkladů Strana 2 Co to je Windows Communication Foundation Náhrada za COM, DCOM,.NET
VíceKomponenta Human Task v Oracle SOA Suite
Komponenta Human Task v Oracle SOA Suite Marek Rychlý Vysoké učení technické v Brně Fakulta informačních technologií Ústav informačních systémů Přednáška pro IOA 19. listopadu 2014 Marek Rychlý Komponenta
VíceServer-side technologie pro webové aplikace
Server-side technologie pro webové aplikace PIA 2011/2012 Téma 6 Copyright 2006 Přemysl Brada, Západočeská univerzita Server-side scriptování Cíl dynamické generování webového obsahu/rozhraní integrace
VíceUživatelský manuál pro externí uživatele veřejného webu OTE webové služby
Uživatelská příručka informačního systému Uživatelský manuál pro externí uživatele veřejného webu webové služby Tento dokument a jeho obsah je důvěrný. Dokument nesmí být reprodukován celý ani částečně,
VíceZápadočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky. Automatizované
Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky Diplomová práce Automatizované publikování SQL dotazů ve formě webových služeb Plzeň 2013 František Schneider
VíceSchéma e-pošty. UA (User Agent) rozhraní pro uživatele MTA (Message Transfer Agent) zajišťuje dopravu dopisů. disk. odesilatel. fronta dopisů SMTP
Elektronická pošta Schéma e-pošty odesilatel UA disk SMTP fronta dopisů disk MTA SMTP MTA adresát UA disk POP IMAP poštovní schránka disk MTA SMTP UA (User Agent) rozhraní pro uživatele MTA (Message Transfer
Vícel 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íceMichal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
VíceJini (pronounced GEE-nee) Cvičení 8 - DS 2006
Jini (pronounced GEE-nee) Cvičení 8 - DS 2006 Úvod JINI (pronounced GEE-nee; loosely derived from the Arabic for magician) Systém pro vyhledávání (lookup) a objevování (discovery) objektů v síti Zcela
VíceTechnická dokumentace B2C WS postcode
Technická dokumentace B2C WS postcode Zpracoval Útvar Datum vytvoření 01.06.2016 Pavel Kořízek, Jan Magnusek KC4 Datum aktualizace 23.06.2016_verze 0.4 Počet stran 7 Počet příloh 1 Obsah 1. Úvod... 3 2.
VíceMATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE
VíceServlety a JSP. Petr Adámek, petr.adamek@ibacz.eu
Servlety a JSP Petr Adámek, petr.adamek@ibacz.eu Úvod Rekapitulace vstupních znalostí Standardy Nástroje (Běhové prostředí, nástroje pro vývoj) Servlety JSP JSP značky EL (Expression Language) Internacionalizace
VíceFunkč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
VíceBakalářská práce, FEL ČVUT Praha. Michal Turek. červenec 2007
Bakalářská práce, FEL ČVUT Praha Vedoucí práce: Doc. Ing. Zdeněk Kouba, CSc. červenec 2007 1. Seznamte se s problematikou bezpečného zpřístupnění legacy datatabáze z Internetu za následujících omezujících
VíceNové vývojové nástroje i5/os Rational Developer for System i V7.1
Nové vývojové nástroje i5/os Rational Developer for System i V7.1 Aleš Petr, IBM ČR Konference COMMON 18. 20. května 2008 ales_petr@cz.ibm.com Agenda Rational Application Developer for System i V7.1 Novinky
VíceKIV/PIA 2013 Jan Tichava
KIV/PIA 2013 Jan Tichava Java EE JSF, PrimeFaces Spring JPA, EclipseLink Java Platform, Enterprise Edition Persistence Zobrazovací vrstva Interakce aplikací Deployment Java Persistence API Enterprise
VíceÚvod. Petr Aubrecht (CA) Martin Ptáček (Wincor Nixdorf) Je 10 typů lidí: ti, kteří znají binární kód, a ti, kteří ne.
Úvod Petr Aubrecht (CA) Martin Ptáček (Wincor Nixdorf) Je 10 typů lidí: ti, kteří znají binární kód, a ti, kteří ne. Organizace předmětu Materiály k předmětu -Web stránky: http://cw.felk.cvut.cz/doku.php/courses/x33eja/start
VíceZá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
VícePROPOJOVÁNÍ POČÍTAČOVÝCH APLIKACÍ
PROPOJOVÁNÍ POČÍTAČOVÝCH APLIKACÍ Renáta Bílková Ústav systémového inženýrství a informatiky, FES, Univerzita Pardubice Abstract The number of enterprice applications (e.g. information systems and other
VíceFakulta elektrotechnická
České vysoké učení technické v Praze Fakulta elektrotechnická ČVUT FEL katedra počítačů Bakalářská práce Databáze pacientů Zdeněk Křepela Vedoucí práce: Ing. Zdeněk Troníček, Ph.D. Studijní program: Elektrotechnika
VíceNOVINKY V JEE EJB 3.1. Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze
NOVINKY V JEE EJB 3.1 Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze PROGRAM Seznámení s Java Enterprise Edition (JEE) Enterprise Java Beans (EJB) Novinky v EJB 3.1 2 JAVA EDITIONS Java
Více3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda
1. Lze vždy z tzv. instanční třídy vytvořit objekt? 2. Co je nejčastější příčinou vzniku chyb? A. Specifikace B. Testování C. Návrh D. Analýza E. Kódování 3. Je defenzivní programování technikou skrývání
VíceStandardy pro Webové služby WSDL, UDDI 1
Standardy pro Webové služby WSDL, UDDI 1 Karel Richta Katedra počítačů FEL ČVUT Karlovo nám.13, 121 35 Praha 2 Tel: 2 2435 7319 e-mail: richta@fel.cvut.cz www: http://cs.felk.cvut.cz/~richta Klíčová slova:
VíceSemináˇr Java X J2EE Semináˇr Java X p.1/23
Seminář Java X J2EE Seminář Java X p.1/23 J2EE Složitost obchodních aplikací robusní, distribuované, spolehlivé aplikace s transakcemi na straně serveru, klientské aplikace co nejjednodušší Snaha : Návrh,
VíceRMI - Distribuované objekty v Javě
Vysoká škola báňská - Technická univerzita Ostrava 30. března 2009 Osnova Co je to RMI? 1 Co je to RMI? 2 Vnější pohled Vrstvy RMI Stub & Skeletons Layer Remote Reference Layer Transport Layer Pojemnování
VíceCAL (CAN Application Layer) a CANopen
CAL (CAN Application Layer) a CANopen J. Novák České vysoké učení technické v Praze Fakulta elektrotechnická Katedra měření Průmyslový distribuovaný systém na bázi sběrnice CAN Pressure sensor Stepper
VíceAnalýza a Návrh. Analýza
Analysis & Design Návrh nebo Design? Design = návrh Není vytváření použitelného uživatelského prostředí (pouze malinká podmnožina celého návrhu) Často takto omezeně chápáno studenty nedokáží si představit,
VícePODMÍNKY POSKYTOVÁNÍ PŘÍSTUPU K PORTÁLU NAMĚŘENÝCH DAT POMOCÍ WEBOVÝCH SLUŽEB SPOLEČNOSTI ČEZ DISTRIBUCE, A. S.
PODMÍNKY POSKYTOVÁNÍ PŘÍSTUPU K PORTÁLU NAMĚŘENÝCH DAT POMOCÍ WEBOVÝCH SLUŽEB SPOLEČNOSTI ČEZ DISTRIBUCE, A. S. 1 ÚVOD... 5 2 ZPŮSOB VYUŽITÍ SLUŽBY AZD - PND... 6 2.1 REGISTRACE SLUŽBY AZD - PND... 6 2.2
VíceCo je to Grid. Martin Kuba <makub@ics.muni.cz> Superpočítačové Centrum Brno. 22.2.2005 Seminář CESNET, Třešť
Co je to Grid Martin Kuba Superpočítačové Centrum Brno Obsah prezentace grid gridové služby semantický grid Computational grid lze přeložit jako výpočetní rozvodná soustava analogie
VíceProfilová část maturitní zkoušky 2017/2018
Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2017/2018 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA
VíceWebové 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á
VíceObsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth
Evropský sociální fond. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace Ing. Ondřej Guth Katedra teoretické informatiky Fakulta informačních technologií České vysoké učení technické v Praze
VíceERP-001, verze 2_10, platnost od
ERP-001, verze 2_10, platnost od 2010.08.01. ELEKTRONICKÉ PŘEDEPISOVÁNÍ HUMÁNNÍCH LÉČIVÝCH PŘÍPRAVKŮ ERP-001.pdf (208,89 KB) Tímto technickým dokumentem jsou, v souladu s 80 zákona č. 378/2007 Sb., o léčivech
VíceVývoj multiplatformní aplikace v Qt
Vývoj multiplatformní aplikace v Qt z pohledu vývoje Datovky Karel Slaný karel.slany@nic.cz 13. 11. 2015 Obsah Co je Qt Nástroje Qt Koncepty Qt Problémy při vývoji Datovky Balíčkování aplikace Datovka
Více1. Integrační koncept
Příloha č. 2: Technický popis integrace 1. Integrační koncept Z hlediska koncepčního budování Smart Administration na Magistrátu města Mostu je možno hovořit o potřebě integrace tří úrovní systémové architektury
VíceIntegrace OpenOffice.org a Javy. CZJUG, , Robert Vojta
Integrace OpenOffice.org a Javy CZJUG, 15.12.2008, Robert Vojta Obsah Část 1 - Teorie Úvodní informace, definice pojmů Dokumentace, Java Language Binding Pomocné nástroje Část 2 - Praktické ukázky Lokální
Více7.5 Diagram tříd pokročilé techniky
7.5 Diagram tříd pokročilé techniky Stereotypy - jeden ze základních prostředků rozšiřitelnosti UML - pro modelovací konstrukce neexistující v UML, ale podobné předdefinované v UML definované uživatelem
VíceMicrosoft 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
VíceVývoj Internetových Aplikací
9 Vývoj Internetových Aplikací Webová API Ing. Jan Janoušek API - Application Programming Interface - Definuje způsob interakce mezi: - Softwarovými komponentami Interface - Software a hardware OpenGL
VíceSeminář Java II p.1/43
Seminář Java II Seminář Java II p.1/43 Rekapitulace Java je case sensitive Zdrojový kód (soubor.java) obsahuje jednu veřejnou třídu Třídy jsou organizovány do balíků Hierarchie balíků odpovídá hierarchii
Více1. Programování proti rozhraní
1. Programování proti rozhraní Cíl látky Cílem tohoto bloku je seznámení se s jednou z nejdůležitější programátorskou technikou v objektově orientovaném programování. Tou technikou je využívaní rozhraní
Více