Web Services. Martin Kuba makub@ics.muni.cz Superpočítačové Centrum Brno, Masarykova Univerzita. 15.10.2006 Web Services, DATAKON 2006 1



Podobné dokumenty
Webové služby. Martin Kuba Superpočítačové centrum Brno Masarykova univerzita

InternetovéTechnologie

Úvod do Web Services

Webové služby. Martin Sochor

XML a nové trendy v publikování na Webu

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

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

Příloha č. 2 - Integrace SpiritÚAP do ESB Jihočeského kraje

Michal Krátký, Miroslav Beneš

Praktické úlohy- zaměření specializace

Server. Software serveru. Služby serveru

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Inovace výuky prostřednictvím šablon pro SŠ

Tvorba informačních systémů

Co je to Grid. Martin Kuba Superpočítačové Centrum Brno Seminář CESNET, Třešť

PŘÍLOHA 10 SMLOUVY O PŘÍSTUPU KE KONCOVÝM ÚSEKŮM. Pravidla a postupy

Import certifikátů a vytvoření keystore

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

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

účetních informací státu při přenosu účetního záznamu,

Soubory a databáze. Soubor označuje množinu dat, která jsou kompletní k určitému zpracování a popisují vybrané vlastnosti reálných objektů

-1- N á v r h ČÁST PRVNÍ OBECNÁ USTANOVENÍ. 1 Předmět úpravy

Nastavení telefonu Samsung I9195 Galaxy S4 mini

Komponentní technologie

Nastavení telefonu LG GD510 Pop

Nastavení telefonu LG KB770

EXTRAKT z české technické normy

tímto vyzývá k podání nabídky a prokázání kvalifikace a poskytuje zadávací dokumentaci na veřejnou zakázku malého rozsahu na dodávky

FAKULTNÍ NEMOCNICE BRNO. Jihlavská 20, Brno tel:

Vyplňte API klíč, který si vygenerujete v Nastavení obchodu v profilu Uloženky v části Nastavit klíč pro API.

Data v počítači EIS MIS TPS. Informační systémy 2. Spojení: jan.skrbek@tul.cz tel.: Konzultace: úterý

Nastavení telefonu Samsung S6500 Galaxy Mini 2

Web Services Martin Kuba, ÚVT MU

ROZVOJ SOCIÁLNÍCH SLUŽEB V UHERSKÉM BRODU - REKONSTRUKCE PROSTOR POLIKLINIKY PRO DENNÍ STACIONÁŘ

V této části manuálu bude popsán postup jak vytvářet a modifikovat stránky v publikačním systému Moris a jak plně využít všech možností systému.

POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE

Kapitola 5 WCF, webové služby a mezidoménové zásady

Fakulta elektrotechnická

Servisně orientovaná architektura a její aplikace v systémech sledování a řízení výroby

Vyšší odborná škola a Střední škola,varnsdorf, příspěvková organizace. Šablona 13 VY 32 INOVACE

Výzva k podání nabídky

Tvorba webových stránek

ZADÁVACÍ DOKUMENTACE SVAZEK 1

Návod na zřízení datové schránky právnické osoby nezapsané v obchodním rejstříku

Pravidla poskytování pečovatelské služby (PS) (pro zájemce a uživatele PS)

Nastavení telefonu PRADA phone by LG 3.0

DATOVÉ SCHRÁNKY. Seminární práce z předmětu Information and communication policy

Podmínky užití webového rozhraní

DODATEK Č. 2 KE SMLOUVĚ O DÍLO MKDS STŘÍBRO Č. 20/HIO/2011

Registr UJO. Příručka pro uživatele. Institut biostatistiky a analýz. Lékařské a Přírodovědecké fakulty Masarykovy univerzity.

OBCHODNÍ PODMÍNKY. Obchodní podmínky pro prodej zboží prostřednictvím internetového obchodu umístěného na internetové adrese

Testovací aplikace Matematika není věda

M. Balíková, R. Záhořík, NK ČR 1

Český úřad zeměměřický a katastrální vydává podle 3 písm. d) zákona č. 359/1992 Sb., o zeměměřických a katastrálních orgánech, tyto pokyny:

KOMISE EVROPSKÝCH SPOLEČENSTVÍ

SMLOUVA O DÍLO A O POSKYTOVÁNÍ SLUŽEB

OBEC HORNÍ MĚSTO Spisový řád

Metodika testování navazujících evidencí

Záloha a obnovení Uživatelská příručka

1. Úvodní ustanovení. 2. Uživatelský účet

Zadávací dokumentace dle ustanovení 44 zákona č. 137/2006 Sb., o veřejných zakázkách (dále jen zákon )

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

Objektově orientované databáze

Tisíce uživatelů v bance pracují lépe díky využití okamžitých informací o stavu kritických systémů

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

DODATEČNÉ INFORMACE K ZADÁVACÍM PODMÍNKÁM

Nastavení telefonu T-Mobile MDA Touch

Článek 1 Identifikační údaje zadavatele a organizátora. Povodí Odry, státní podnik CZ

Mikromarz. CharGraph. Programovatelný výpočtový měřič fyzikálních veličin. Panel Version. Stručná charakteristika:

Výzva zájemcům k podání nabídky a Zadávací dokumentace

SAFETICA 7 DATA LOSS PREVENTION

Aktualizace softwaru Uživatelská příručka

NSWI108 Sémantizace Webu

Outlook manuál. BeeOnline. Rychlý kontakt:

OBCHODNÍ PODMÍNKY 1. ÚVODNÍ USTANOVENÍ

OBCHODNÍ PODMÍNKY 1. ÚVODNÍ USTANOVENÍ

Maturitní otázka - optimalizace webových stránek

VÝZVA K PODÁNÍ NABÍDKY NA VEŘEJNOU ZAKÁZKU MALÉHO ROZSAHU. JAMU vzduchotechnika a klimatizace depozitáře knihovny v objektu Novobranská 691/3, Brno"

TÉMATICKÝ OKRUH Počítače, sítě a operační systémy

Smlouva o dílo ÚZSVM ÚP Plzeň č. / 2016

o užívání služby elektronického dodávání dokumentů a dalších služeb kooperačního systému e-pk uzavřená mezi

2008 Nokia. Všechna práva vyhrazena. Nokia, Nokia Connecting People a Nseries jsou ochranné známky nebo registrované ochranné známky společnosti

VSEOBECNÉ SMLUVNÍ PODMÍNKY O POSKYTOVÁNÍ SLUŽEB WEBHOSTINGU, ELEKTRONICKÉ POŠTY, SERVERHOSTINGU A DALŠÍCH SLUŽEB ( VSP3 ) I.

Systém elektronického zpracování údajů o výzkumných projektech a jejich hodnocení v GA AV

uzavírají Smlouvu o nájmu věcí movitých uzavřenou podle 2201 zákona č. 89/2012 Sb., občanského zákoníku, ve znění pozdějších předpisů

Zadávání tiskových zakázek prostřednictvím JDF a Adobe Acrobat Professional

Obsah. Úvodem 9 Komu je kniha určena 9 Forma výkladu 9 Konkrétní postup výuky 10 Příklady ke knize 11

OBCHODNÍ PODMÍNKY 1. ÚVODNÍ USTANOVENÍ

Bezdrátové připojení (pouze u vybraných modelů) Uživatelská příručka

OBCHODNÍ PODMÍNKY obchodní společnosti

VÝZVA K PODÁNÍ NABÍDKY. Stavební úpravy turistické ubytovny TJ Valašské Meziříčí dokončení rekonstrukce

HODNOTÍCÍ STANDARDY pro hodnocení kvality a bezpečí poskytovatele lůžkové zdravotní péče

se věc hodí k účelu, který pro její použití Prodávající uvádí nebo ke kterému se věc tohoto druhu obvykle používá,

OBCHODNÍ PODMÍNKY ÚVODNÍ USTANOVENÍ

Jihočeský vodárenský svaz S. K. Neumanna 19, České Budějovice

Určeno k použití s aplikacemi podporujícími skener / čtečku kódů QR.

Uložené procedury Úvod ulehčit správu zabezpečení rychleji

Návod k obsluze CC&C WA-6212-V2

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

Transkript:

Web Services Martin Kuba makub@ics.muni.cz Superpočítačové Centrum Brno, Masarykova Univerzita 15.10.2006 Web Services, DATAKON 2006 1

Obsah definice webových služeb historický vývoj ze strany WWW pozadí distribuovaných systémů RPC, RMI, SOA SOAP webové služby XML, URI, XML Namespaces, XML Schema protokol SOAP jazyk WSDL, styly WSDL nástroje vyhledávání služeb - UDDI, WSIL džungle specifikací WS-*, REST Grid, OGSA bezpečnost u webových služeb ESB, WSBPEL sémantické webové služby 15.10.2006 Web Services, DATAKON 2006 2

Co je web service W3C WS-ARCH: Webová služba je softwarový systém zkonstruovaný k podpoře interakce mezi stroji přes síť. Má rozhraní popsané ve strojově zpracovatelném formátu (specificky WSDL). Ostatní systémy interagují s webovou službou způsobem předepsaným jejím popisem za pomoci SOAP zpráv, typicky dopravovaných použitím HTTP s XML serializací v součinnosti s ostatními webovými standardy. 15.10.2006 Web Services, DATAKON 2006 3

15.10.2006 Web Services, DATAKON 2006 4

Výhody a nevýhody Web Services výhody vyplývají z XML žádné problémy s češtinou nebo i18n, díky XML vše v UTF-8 nebo UTF-16 nezávislost na programovacím jazyku, objektové orientovanosti, platformě nízká vstupní bariéra vhodné pro loosely coupled systémy klient a server o sobě téměř nic nepředpokládají nevýhoda parsování XML je drahé/pomalé 15.10.2006 Web Services, DATAKON 2006 5

Anatomie URL web je tvořen dokumenty adresovanými URL (Uniform Resource Locator) protocol://user@host:port/path?query#fragment query má mít tvar (podle HTML4) kytka=pampeli%c5%a1ka&kytka=zvonek nebo oddělený středníky či libovolný kódování českých znaků nelze určit, tj. nelze české znaky spolehlivě předávat informace pro aplikaci na straně serveru lze mít v path i query délka URL je omezena na cca 4 kb 15.10.2006 Web Services, DATAKON 2006 6

Historický vývoj ze strany WWW 1. krok HTTP metoda GET s URL parametry omezení na 4kb GET /prog?a=1&b=pepa+novak HTTP/1.0 2. krok metoda POST s URL parametry omezení na pouze páry řetězců stále problémy s kódováním znaků POST /prog HTTP/1.0 Content-Type: application/x-www-form-urlencoded Content-Length: 16 a=1&b=pepa+novak 15.10.2006 Web Services, DATAKON 2006 7

Historický vývoj SOAP 3. krok metoda POST s XML v těle strukturovaná data, typovaná data stejný nápad mělo více lidí a firem, vznikly XML-RPC, WDDX, XMI a další od r. 1998 Microsoft a IBM tvořili SOAP (Simple Object Access Protocol) SOAP byl myšlen jako RPC pomocí XML a HTTP r. 2000 přijato W3C SOAP 1.1 jako Note r. 2003 vydalo W3C SOAP 1.2 jako Recommendation r. 2004 WS-Interoperability www.ws-i.org vydalo BasicProfile 1.0 15.10.2006 Web Services, DATAKON 2006 8

Pozadí - RPC distribuované systémy komunikují zasíláním zpráv vhodná abstrakce RPC - Remote Procedure Calls např. DCE RPC, SUN RPC,... synchronní volání požadavek-odpověď volaná procedura, parametry předávané hodnotou návratové hodnoty IDL Interface Definition Language klient a server stubs volané jako běžné funkce v daném prog. jazyce zajišťují marshalling/serializaci, komunikaci, unmarshaling/deserializaci 15.10.2006 Web Services, DATAKON 2006 9

Komunikace v distribuovaných systémech z hlediska synchronnosti synchronní volající strana zastaví a čeká, dokud nedostane odpověď asynchronní volající strana pokračuje v práci, na příchod odpovědi je upozorněna z hlediska zajištění doručení zprávy transientní (pomíjivá) persistentní (vytrvalá) webové služby obvykle používají transientní synchronní komunikaci, ale lze použít všechny kombinace 15.10.2006 Web Services, DATAKON 2006 10

Pozadí - RMI distribuované objektově-orientované systémy potřebují předávat parametry odkazem distribuovaný objekt má stav a metody interface, a implementaci Remote Method Invocation např. CORBA, Java RMI, DCOM binární protokoly, Object Request Broker Java RMI umí předat objekt stav i implementaci metod 15.10.2006 Web Services, DATAKON 2006 11

Pozadí - SOA RMI funguje jen v systémech pod centrální správou, neškáluje na Internet-size synchronní komunikace neškáluje tight coupling, verzování a evoluce jsou obtížné distribuovanost nelze schovat (partial failure) SOA Service Oriented Architecture služby mají definovaný interface interface je popsán zprávami, ne operacemi na datových typech služby lze nalézt (např. v adresáři) 15.10.2006 Web Services, DATAKON 2006 12

SOA (2) rozdíl mezi OO a SOA přehrávač CD poskytuje službu přehrání CD různá kvalita služby ve walkmanovi nebo HiFi věži v objektově-orientovaném přístupu by každé CD bylo dodáno s vlastním přehrávačem, ze kterého by nešlo vyjmout SOA patrně lépe odpovídá způsobu, jímž jsou organizovány lidské aktivity 15.10.2006 Web Services, DATAKON 2006 13

Co jsou SOAP Web Services technologie pro vzdálené volání procedur pomocí výměny XML zpráv tři části komunikační protokol SOAP (Simple Object Access Protocol) popis služby ve WSDL (Web Service Description Language) vyhledání služby (UDDI,WSIL) 15.10.2006 Web Services, DATAKON 2006 14

Vývoj SOAP SOAP - komunikační protokol webových služeb začal jako XML-based RMI Simple Object Access Protocol definoval vlastní typový systém zdroj problémů s kompatibilitou ažpozději se začal používat podle zásad SOA a s typovým systémem XML Schema tj. lze ho použít dobře i špatně 15.10.2006 Web Services, DATAKON 2006 15

URI URI (Universal Resource Identifier) URL (Universal Resource Locator) URN (Universal Resource Name) URL určuje zdroj jeho umístěním, např. http://www.nekde.cz/cesta/soubor.html URN určuje zdroj jeho jménem, např. urn:isbn:628361298, ed2k:0b366c8e95b43 URI jsou celosvětově jedinečná - nekolidují!! URL použitá jako URI nemusí odkazovat na existující zdroj!!! IRI (Internationalized Resource Identifier) smí obsahovat libovolné UNICODE znaky, URI jen ASCII znaky, je definován převod IRI na URI (RFC3987) 15.10.2006 Web Services, DATAKON 2006 16

Rychlokurz XML XML je značkovací jazyk se stromovou strukturou, právě jeden kořen, tagy, atributy, texty <?xml version= 1.0 encoding= UTF-8?> <!-- komentář --> <kořen atribut= hodnota atributu další= 1<1 > <vnořený_tag id= tady /> nebezpečné znaky: < > & " &apos; <![CDATA[ < > & ]]> </kořen> 15.10.2006 Web Services, DATAKON 2006 17

XML Namespaces zabraňují kolizím stejných jmen pro různé věci týká se jmen tagů i atributů qualified names prefix:localpart prefix je mapován na URI významné je URI, ne prefix dva prefixy mapované na stejné URI definují stejný jmenný prostor mapování provedeno atributem xmlns:prefix= <URI> default namespace atributem xmlns= <URI> 15.10.2006 Web Services, DATAKON 2006 18

XML Namespaces (2) <?xml version="1.0" encoding="utf-8"?> <koren xmlns:umělecký="urn:michelangelo xmlns:pohlavní="http://www.sex.cz/" xmlns:divadelní="http://www.divadlo.cz/hra" xmlns:pietní="http://www.krematorium.cz/" xmlns:u="urn:michelangelo xmlns="http://urad.cz/akta" > Tohle jsou různé tagy: <umělecký:akt> obraz </umělecký:akt> <pohlavní:akt> styk </pohlavní:akt> <divadelní:akt> dějství </divadelní:akt> <pietní:akt> pohřeb </pietní:akt> <akt> úřední papír </akt> Tohle jsou stejné tagy: <umělecký:akt> obraz </umělecký:akt> <u:akt> zase obraz </u:akt> 15.10.2006 Web Services, DATAKON 2006 19 </koren>

XML Schema norma pro definici datových struktur a datových typů v XML typy: simple types atomic types (string, byte, integer, long, double, boolean, base64binary, date, duration,...) list types (pole) union types (variantní typy) derived types (vzniklé omezením, např. číselný interval) complex types (složené typy) parsery XML umí kontrolovat vůči konkrétnímu Schema při načítání dokumentu 15.10.2006 Web Services, DATAKON 2006 20

15.10.2006 Web Services, DATAKON 2006 21

XML Schema (2) <schema xmlns="http://www.w3.org/2001/xmlschema" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:impl="urn:mojedata" targetnamespace="urn:mojedata" > <! složené typy --> <complextype name="adresa"> <sequence> <element name="ulice" type="xsd:string"/> <element name="cislo" type="xsd:long"/> <element name="mesto" type="xsd:string"/> </sequence> </complextype> <complextype name="osoba"> <sequence> <element name="jmeno" type="xsd:string"/> <element name= narozeni" type="xsd:datetime"/> <element name="adresa" type="impl:adresa"/> </sequence> </complextype> 15.10.2006 Web Services, DATAKON 2006 22

XML Schema (3) <!-- číselný interval - integer omezený na 10000 až 99999 --> <simpletype name="myinteger"> <restriction base="xsd:integer"> <mininclusive value="10000"/> <maxinclusive value="99999"/> </restriction> </simpletype> <!-- výčet - string omezený na vyjmenované hodnoty --> <simpletype name="ovoce"> <restriction base="xsd:string"> <enumeration value="jablka"/> <enumeration value="hrušky"/> <enumeration value="banány"/> </restriction> </simpletype> </schema> 15.10.2006 Web Services, DATAKON 2006 23

SOAP Simple Object Access není simple Protocol umožňuje vzdáleně volat funkce HTTP protokol přenese XML zprávu zpráva popisuje volanou funkci a její parametry jako odpověď přenese HTTP zpět opět XML zprávu reprezentující výsledná data teoreticky nemusí být HTTP (ale SMTP, FTP, JMS, MQSeries,... ), může být jen jednosměrný přenos 15.10.2006 Web Services, DATAKON 2006 24

SOAP (2) příklad mějme funkci (operaci) boolean jeprvocislo(long cislo) typy boolean a long jsou z XML Schema operace musí být světově jedinečně pojmenovaná, proto je v namespace, třeba urn:mojeuri 15.10.2006 Web Services, DATAKON 2006 25

SOAP request POST / HTTP/1.1 Content-Type: text/xml; charset=utf-8 Content-Length: 411 Connection: close SOAPAction: "" <?xml version="1.0" encoding="utf-8"?> <SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:mojeuri"> <SOAP-ENV:Body> <ns1:jeprvocislo> <cislo>1987</cislo> </ns1:jeprvocislo> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 15.10.2006 Web Services, DATAKON 2006 26

SOAP response HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: 433 Connection: close <?xml version="1.0" encoding="utf-8"?> <SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:mojeuri"> <SOAP-ENV:Body> <ns1:jeprvocisloresponse> <vysledek>true</vysledek> </ns1:jeprvocisloresponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 15.10.2006 Web Services, DATAKON 2006 27

SOAP (3) název hlavního tagu ve volání = název operace název hlavního tagu v odpovědi = název operace + Response názvy vnořených tagů = názvy vstupních popř. výstupních parametrů operace existují tzv. Faults, obdoba vyjímek v Javě a C++ 15.10.2006 Web Services, DATAKON 2006 28

SOAP fault <?xml version="1.0" encoding="utf-8"?> <SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:mojeuri"> <SOAP-ENV:Body> <SOAP-ENV:Fault> <faultcode>soap-env:client</faultcode> <faultstring>neplatny vstup</faultstring> <detail> <ns1:vyjimka> <duvod>cislo musi byt >= 2</duvod> <cislo>-3</cislo> </ns1:vyjimka> </detail> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 15.10.2006 Web Services, DATAKON 2006 29

WSDL Web Service Description Language popisuje rozhraní služby jména operací, jména a typy parametrů a návratových hodnot kde a jak službu volat HTTP/HTTPS, port, stroj, URL WSDL je jako *.h v Céčku, interface v Javě, nebo IDL nepopisuje sémantiku, pouze syntaxi zcela stačí pro volání služby, automatizované nástroje z něj umí vygenerovat stub zástupný kód pro volání ve zvoleném prog. jazyku WSDL 1.1 je W3C Note od roku 2001 WSDL 2.0 je W3C Candidate Recommendation od března 2006 15.10.2006 Web Services, DATAKON 2006 30

struktura WSDL popisu <?xml version="1.0" encoding="utf-8"?> <definitions name="prvnisluzba targetnamespace="urn:mojeuri xmlns="http://schemas.xmlsoap.org/wsdl/... > <types>... definice datových typů... </types> <message>... definice komunikačních zpráv pomocí typů... </message> <porttype>... definice operací pomocí komunikačních zpráv... </porttype> <binding>... že se volá přes HTTP... </binding> <service>... na jakém URL (stroji, portu) se volá... </service> </definitions> 15.10.2006 Web Services, DATAKON 2006 31

WSDL - ukázka typů <!-- fault element --> <element name="vyjimka"> <complextype> <sequence> <element name="duvod" type="xsd:string" minoccurs="0" maxoccurs="1" nillable="true"/> <element name="cislo" type="xsd:long" minoccurs="1" maxoccurs="1"/> </sequence> </complextype> </element> <!-- operation request element --> <element name="jeprvocislo"> <complextype> <sequence> <element name="cislo" type="xsd:long" minoccurs="1" maxoccurs="1"/> </sequence> </complextype> </element> <!-- operation response element --> <element name="jeprvocisloresponse"> <complextype> <sequence> <element name="vysledek" type="xsd:boolean" minoccurs="1" maxoccurs="1"/> </sequence> </complextype> </element> 15.10.2006 Web Services, DATAKON 2006 32

WSDL - zprávy <message name="jeprvocislorequest"> <part name="parameters" element="ns1:jeprvocislo"/> </message> <message name="jeprvocisloresponse"> <part name="parameters" element="ns1:jeprvocisloresponse"/> </message> <message name="vyjimkafault"> <part name="fault" element="ns1:vyjimka"/> </message> 15.10.2006 Web Services, DATAKON 2006 33

WSDL - operace <porttype name="cisilka"> <operation name="jeprvocislo"> <documentation>spocita, zda cislo je prvocislo</documentation> <input message="tns:jeprvocislorequest"/> <output message="tns:jeprvocisloresponse"/> <fault name="vyjimka" message="tns:vyjimkafault"/> </operation> </porttype> jméno porttype je v Javě použito pro název interface jméno operation je použito pro název funkce (v C) či metody (v Javě) input, output a fault odkazují na zprávy definující vstup, výstup, popř. vyjímky všechny tři jsou nepovinné v tagu documentation je popis lidskou řečí, lze použít jako komentář ve vygenerovaném stubu 15.10.2006 Web Services, DATAKON 2006 34

Použití WSDL typový systém SOAP způsobuje problémy nepoužívat datové typy v různých jazycích jsou nekompatibilní, kdežto XML zprávy jsou vždy stejné typový systém XML Schema je společná půda pro všechny programovací jazyky je dobré používat contract-first přístup vždy začínat od WSDL 15.10.2006 Web Services, DATAKON 2006 35

Styly WSDL historicky 4 styly WSDL RPC/encoded RPC/literal document/literal document/literal wrapped dnes se prosazuje doc/lit wrapped WS-I Basic Profile zakazuje RPC/encoded MS.NET podporuje pouze doc/lit wrapped 15.10.2006 Web Services, DATAKON 2006 36

RPC/encoded určen pro volání operací, vznikl před dokončením XML Schema a WSDL typová informace v SOAP zprávách zprávu nelze snadno validovat vůči XML Schema zdroj nekompatibilit umožňuje cyklické odkazy mezi přenášenými objekty a polymorfismus (j:jablko místo j:ovoce) WSDL: <message name="mymethodrequest"> <part name="x" type="xsd:int"/> </message> SOAP: <soap:body> <mymethod> <x xsi:type="xsd:int">5</x> </mymethod> </soap:body> 15.10.2006 Web Services, DATAKON 2006 37

RPC/literal určen pro volání operací ušetří typovou informaci ve zprávách stále nelze snadno validovat zprávy neumožňuje cyklické odkazy a polymorfismus WSDL: <message name="mymethodrequest"> <part name="x" type="xsd:int"/> </message> SOAP: <soap:body> <mymethod> <x>5</x> </mymethod> </soap:body> 15.10.2006 Web Services, DATAKON 2006 38

document/literal určen pro přenos libovolného XML, včetně atributů ušetří typovou informaci ve zprávách obsah zpráv lze snadno validovat zmizel název operace! WSDL: <types> <schema> <element name="x" type="xsd:int"/> </schema> </types> <message name="mymethodrequest"> <part name= params" element="x"/> </message> SOAP: <soap:body> <x>5</x> </soap:body> 15.10.2006 Web Services, DATAKON 2006 39

document/literal wrapped document/literal s názvem operace WSDL: <types> <schema> <element name="mymethod"/> <complextype> <sequence> <element name="x" type="xsd:int"/> </sequence> </complextype> </element> </schema> </types> <message name="mymethodrequest"> <part name="parameters" element="mymethod"/> </message> SOAP: <soap:body> <mymethod> <x>5</x> </mymethod> </soap:body> 15.10.2006 Web Services, DATAKON 2006 40

Změny WSDL změna WSDL je změnou rozhraní služby pokud je zpětně kompatibilní (přidání operací), lze ponechat namespace při změně stávajících operací je doporučováno změnit namespace pak je možno provozovat i více verzí stejné služby na stejném URL, tj. obsluhovat staré i nové klienty 15.10.2006 Web Services, DATAKON 2006 41

Pomněnka pro WSDL používejte jen wrapped document/literal! začínejte vždy od WSDL, nikdy od funkce/metody v nějakém programovacím jazyce! (Java2WSDL je špatnost) proč? protože datové typy nejsou přenositelné mezi různými programovacími jazyky XML je přenositelné mezi různými prog. jazyky 15.10.2006 Web Services, DATAKON 2006 42

WS-I specifikace SOAP 1.x a WSDL 1.1 jsou místy vágní, potíže s interoperabilitou vznikla organizace WS-I Web Services Interoperability Organization www.ws-i.org BasicProfile 1.0 (2004) a 1.1 (2006) vyjasňuje sporná místa a zakazuje některé rysy např. zakazuje SOAP encoding, DTD nebo Processing Instructions v XML, vyžaduje WSDL 1.1 a SOAP 1.1 Basic Security Profile je ve vývoji 15.10.2006 Web Services, DATAKON 2006 43

Nástroj gsoap autor Robert van Engelen, Florida State University, Genivia Inc. nejrychlejší, nejoblíbenější pro akademické použití, zdarma optimalizováni na výkon např. zásobník syntaktických analyzátorů pro konkrétní zprávy, minimalizace kopírování v paměti, atd. generátor zdrojových kódů pro C/C++ program wsdl2h z WSDL popisu služby vygeneruje speciální.h soubor program soapcpp2 z.h vygeneruje stub v C nebo C++ lze z.h vygenerovat WSDL popis služby 15.10.2006 Web Services, DATAKON 2006 44

Nástroj Apache Axis projekt z rodiny Apache, zdarma, Java součásti knihovny pro komunikaci nástroj WSDL2Java nástroj Java2WSDL servletová aplikace pro umístění serverové části služby umožňuje sestavit SOAP volání dynamicky, ale je 9-12x (IBM 1.4) resp. 13-15x (SUN 1.5) pomalejší než gsoap (243 resp. 163 versus 2060 msg/s na Pentium4 2.5GHz) (310 resp. 230 versus 3600 msg/s na AMD FX-53) 15.10.2006 Web Services, DATAKON 2006 45

Vyhledávání služeb umístění služby je popsáno ve WSDL jak však nalezneme WSDL? můžeme ho od někoho dostat můžeme ho vyhledat UDDI Universal Description, Discovery and Integration WSIL Web Service Inspection Language 15.10.2006 Web Services, DATAKON 2006 46

UDDI iniciativa z roku 2000 publikovaná na uddi.org centralizovaný seznam služeb (white pages, yellow pages) s vyhledáváním i podle oborů verze 2 v roce 2001, verze 3 v roce 2002 verze 3.0.2 jako OASIS standard v roce 2005 veřejné UDDI rejstříky (IBM, Microsoft, SAP) vypnuty v lednu 2006 většina záznamů veřejného UDDI byla špatných velmi obecné (tmodels), jako seznam webových služeb nepříliš praktické nejdřív výběr služby, pak obchodního partnera 15.10.2006 Web Services, DATAKON 2006 47

WSIL jednoduchý XML formát pro seznam webových služeb dané instituce IBM a Microsoft, listopad 2001 soubor http://nekde.com/inspection.wsil nejdřív výběr obchodního partnera, pak služby 15.10.2006 Web Services, DATAKON 2006 48

WS-* džungle existuje přes 30 dalších a soupeřících dodatečných specifikací WS-Addressing, WS-Eventing, WS- Transfer, WS-Policy, WS- ReliableMessaging,... mají smysl ve složitých enterprise systémech pro jednoduché Internetové aplikace mnohdy stačí XML-over-HTTP nebo REST 15.10.2006 Web Services, DATAKON 2006 49

WS-* WS-Addressing přidává do SOAP hlavičky informace obdobné e- mailovým From:, To: WS-Policy a WS-SecurityPolicy rámce pro popisy vlastností, které nejde popsat ve WSDL WS-Transfer obdoba protokolu HTTP nad SOAP, umožňuje operace Get, Put, Create WS-Eventing (MS), WS-Notification (IBM) zasílání událostí, budou spojeny do nové specifikace WS-EventNotification 15.10.2006 Web Services, DATAKON 2006 50

Plain Old XML amazon.com má dvě rozhraní ke službám SOAP 20% provozu jednoduché XML dotazy 80% provozu XML+HTTP poskytují všechna prostředí SOAP+WS-* potřebují spec. nástroje webovým aplikacím stačí XML+HTTP podnikové aplikace potřebují SOAP+WS-* 15.10.2006 Web Services, DATAKON 2006 51

REST REpresentational State Transfer styl architektury webových aplikací veškerá informace v požadavku, bezestavovost Roy Fielding, disertace, rok 2000 webový zdroj je XML adresované přes URI HTTP metody PUT,GET,POST,DELETE zdroje jsou podstatná jména, metody slovesa škáluje velmi dobře 15.10.2006 Web Services, DATAKON 2006 52

REST versus SOAP SOAP služba pro zjištění teploty operace gettemperature parametr city REST služba generující odpovědi pro různá URL obsahující města http://pocasi.cz/teplota/brno http://pocasi.cz/teplota/praha WSDL 2.0 umožňuje popsat i REST služby s parametry v URL zdroje orientované na činnost se lépe vyjadřují jako webové služby, zdroje poskytující data se lépe vyjadřují pomocí REST 15.10.2006 Web Services, DATAKON 2006 53

Grid, OGSA Grid je infrastruktura pro sdílení zdrojů nepodléhajících centralizované správě problémy s heterogenitou prostředí OGSA Open Grid Services Architecture grid založený na webových službách potřebuje správu životního cyklu a stavu potřebuje notifikace 1. verze OGSI webové služby jako objekty 2. verze WSRF webové služby + WS-Resources služby jsou bezestavové, zdroje mají stav a cyklus 3. verze sloučení s WS-Transfer/WS-Eventing 15.10.2006 Web Services, DATAKON 2006 54

Bezpečnost SOAP a WSDL ji neřeší na transportní vrstvě HTTP nad SSL rychlé, funkční, odzkoušené nelze zpětně prokazovat, co kdo zaslal pouze dva komunikující body na úrovni zpráv XML Encryption, XML Signature lze podepisovat lze budovat řetězce zpracovatelů zpráv WS-Security integrace s PKI, Kerberos, hesly,... zatím neusazená technologie nelze popsat ve WSDL, je třeba WS-Policy, WS-SecurityPolicy 15.10.2006 Web Services, DATAKON 2006 55

Co jsou tedy webové služby? z pohledu webu a jeho aplikací důležité jsou HTTP,XML, adresovatelnost URI SOAP je nadbytečnou komplikací z pohledu enterprise aplikací důležité je SOAP pro jeho hlavičky a nezávislost na transportním protokolu HTTP není nutné shoda strojová interakce pomocí XML 15.10.2006 Web Services, DATAKON 2006 56

ESB Enterprise Service Bus pojem zaveden v prosinci 2002 v předpovědi firmy Gartner na rok 2003 pokud všechny enterprise aplikace jsou služby, lze je propojit sběrnicí pro zasílání zpráv obchodní procesy jsou dány a měněny nastavením ESB, ne změnami služeb větší flexibilita propojení služeb 15.10.2006 Web Services, DATAKON 2006 57

WSBPEL Web Services Business Process Execution Language nástupce BPEL4WS (2002) od IBM, MS, BEA jazyk (založený na XML) pro zápis procesů volajících webové služby orchestrace webových služeb proměnné, programovací struktury (if-thenelseif-else, while, paralelismus), fault-handlers, event-handlers, compensation-handlers pro vykonání potřebuje BPEL engine 15.10.2006 Web Services, DATAKON 2006 58

Semantic Web Services Sémantický web je rozšíření současného webu, ve kterém je informacím přiřazen dobře definovaný význam, což umožní lidem a počítačům lépe spolupracovat Tim Berners-Lee (vynálezce WWW) et al, Scientific American, 2001 všechna data na webu budou sémanticky označkována a tudíž přístupna strojovému zpracování postupy sem. webu lze aplikovat i u webových služeb 15.10.2006 Web Services, DATAKON 2006 59

Ontologie pojem z oboru umělé inteligence výslovný formální zápis konceptualizace konceptualizace je systém pojmů modelující určitou část světa jazyk W3C OWL umožňuje zapisovat ontologie jako soubory tříd, individuí a vlastností sémantický web je spíš logický web při omezení na logiku DL (Description Logic) lze automatizovaně odvozovat 15.10.2006 Web Services, DATAKON 2006 60

Semantic Web Services (2) současné (konkurující si) aktivity WSMO Web Services Modeling Ontology WSDL-S WSDL s možností přidávat sémantické odkazy OWL-S (OWL for Services) může značně vylepšit automatizované vyhledávání webových služeb ve fázi výzkumu 15.10.2006 Web Services, DATAKON 2006 61

Konec Dokumentace viz Google, hesla gsoap, Apache Axis, WSDL, SOAP atd. Děkuji za pozornost 15.10.2006 Web Services, DATAKON 2006 62