9. Webové služby
Webové služby WSDL SOAP UDDI
Tvorba informaˇcních systému˚ Michal Krátký, Miroslav Beneš Katedra informatiky VŠB–Technická univerzita Ostrava
Tvorba informaˇcních systému, ˚ 2007/2008
c
2006-2008
Michal Krátký, Miroslav Beneš
ˇ Tvorba informacních systému˚
1/20
9. Webové služby
Webové služby WSDL SOAP UDDI
Obsah
Co jsou to webové služby? Architektura webových služeb. Pˇrenos zpráv – SOAP. Popis služeb – WSDL. Hledání služeb – UDDI.
c
2006-2008
Michal Krátký, Miroslav Beneš
ˇ Tvorba informacních systému˚
2/20
9. Webové služby
Webové služby WSDL SOAP UDDI
Co jsou to webové služby
Rozhraní k aplikaci dostupné prostˇrednictvím poˇcítaˇcové ˇ založené na standardních internetových síte, technologiích. ˇ je-li aplikace dostupná pˇres sít’ pomocí protokolu˚ Obecne: jako HTTP, XML, SMTP, nebo Jabber, je to webová služba. Vrstva mezi aplikaˇcním programem a klientem.
c
2006-2008
Michal Krátký, Miroslav Beneš
ˇ Tvorba informacních systému˚
3/20
9. Webové služby
Webové služby WSDL SOAP UDDI
Co jsou to webové služby Funkˇcnost služby není závislá na jazyku v jakém je klient nebo server implementován (Java, C++, PHP, C#, ...). Pˇríklad: HTML stránky: server=WWW server, klient=prohlížeˇc ˇ V dnešní dobeˇ nechápeme webové služby takto obecne, webová služba je množina konkrétních specifikací (W3C). Dostupné služby: kurzovní lístky, burza, vyhledávací služby (Google), mapy, poˇcasí. Komponenty distribuované aplikace?
c
2006-2008
Michal Krátký, Miroslav Beneš
ˇ Tvorba informacních systému˚
4/20
9. Webové služby
Webové služby WSDL SOAP UDDI
Architektura webových služeb
Množina protokolu, ˚ http://www.w3.org/2002/ws/: Pˇrenos zpráv – SOAP, http://www.w3.org/2000/xp/Group/. Popis služeb – WSDL, http://www.w3.org/2002/ws/desc/. Hledání služeb – UDDI.
c
2006-2008
Michal Krátký, Miroslav Beneš
ˇ Tvorba informacních systému˚
5/20
9. Webové služby
Webové služby WSDL SOAP UDDI
Architektura webových služeb
c
2006-2008
Michal Krátký, Miroslav Beneš
ˇ Tvorba informacních systému˚
6/20
9. Webové služby
Webové služby WSDL SOAP UDDI
Web Services Description Language (WSDL)
Popis webové služby založený na XML. IBM, Microsoft, dnes W3C. WSDL soubor s definicí rozhraní služby je XML dokument, obsahuje definici: Metod, Parametru. ˚
c
2006-2008
Michal Krátký, Miroslav Beneš
ˇ Tvorba informacních systému˚
7/20
9. Webové služby
Webové služby WSDL SOAP UDDI
Pˇríklad, webová služba pro pˇrístup k nativní XML databázi
Metody: Index – vytvoˇrení indexu. Query – dotaz na databázi DatabaseList – seznam databází. ResourceList – seznam odkazu˚ ve stránce.
c
2006-2008
Michal Krátký, Miroslav Beneš
ˇ Tvorba informacních systému˚
8/20
9. Webové služby
Webové služby WSDL SOAP UDDI
Pˇríklad, WSDL <wsdl:definitions targetNamespace= " h t t p : / / t e m p u r i . org / " > <wsdl:types> <s:schema elementFormDefault = " q u a l i f i e d " targetNamespace= " h t t p : / / t e m p u r i . org / " > ... < s : e l e m e n t name= " Query " > <s:complexType><s:sequence> < s : e l e m e n t minOccurs= " 1 " maxOccurs= " 1 " name= " dbId " t y p e = " s : i n t " / > < s : e l e m e n t minOccurs= " 0 " maxOccurs= " 1 " name= " query " t y p e = " s : s t r i n g " / > < / s:sequence>< / s:complexType> < / s:element> ...
c
2006-2008
Michal Krátký, Miroslav Beneš
ˇ Tvorba informacních systému˚
9/20
9. Webové služby
Webové služby WSDL SOAP UDDI
Simple Object Access Protocol (SOAP) 1/2 UserLand, DevelopMentor, Microsoft - 2000. Standardní protokol pro obalování zpráv sdílených mezi aplikacemi (obálka + sada pravidel pro reprezentaci dat v XML). Zprávy SOAP je možné zabalit do ruzných ˚ protokolu, ˚ napˇr. HTTP. Mužeme ˚ jej ovšem použít pro RPC (Remote Procedure Call). Skládá se ze tˇrí cˇ ástí: envelope - definuje co zpráva obsahuje a jak ji zpracovat. Množina kódovacích pravidel – napˇr. serializace primitivních datových typu˚ pro RPC, zasílání zpráv pomocí HTTP. Konvence pro reprezentaci volání vzdálených procedur. c
2006-2008
Michal Krátký, Miroslav Beneš
ˇ Tvorba informacních systému˚
10/20
9. Webové služby
Webové služby WSDL SOAP UDDI
Simple Object Access Protocol (SOAP) 2/2
SOAP je založen na XML. ˇ eˇ jednoduchý (porovnej napˇr. s CORBA SOAP je pomern IIOP). Neˇreší transakce a bezpeˇcnost. Zpráva obsahuje element Envelope, který obsahuje: hlaviˇcku – informace, ˇ – metainformace. telo
c
2006-2008
Michal Krátký, Miroslav Beneš
ˇ Tvorba informacních systému˚
11/20
9. Webové služby
Webové služby WSDL SOAP UDDI
Pˇríklad SOAP 1.2, request 1/2
POST / AmphorAWS / AmphorAWS . asmx HTTP / 1 . 1 Host: l o c a l h o s t Content−Type: a p p l i c a t i o n / soap+xml ; c h a r s e t = u t f −8 Content−L e n g t h : l e n g t h <soap12:Envelope x m l n s : x s i = " h t t p : / / www. w3 . org / 2 0 0 1 /XMLSchema−i n s t a n c e " xmlns:xsd = " h t t p : / / www. w3 . org / 2 0 0 1 /XMLSchema" xmlns:soap12= " h t t p : / / www. w3 . org / 2 0 0 3 / 0 5 / soap−envelope " >
c
2006-2008
Michal Krátký, Miroslav Beneš
ˇ Tvorba informacních systému˚
12/20
9. Webové služby
Webové služby WSDL SOAP UDDI
Pˇríklad SOAP 1.2, request 2/2
<soap12:Body>
i n t < / dbId > s t r i n g < / query> < / Query> < / soap12:Body> < / soap12:Envelope>
c
2006-2008
Michal Krátký, Miroslav Beneš
ˇ Tvorba informacních systému˚
13/20
9. Webové služby
Webové služby WSDL SOAP UDDI
Pˇríklad SOAP 1.2, response 1/2
HTTP / 1 . 1 2 0 0 OK Content−Type: a p p l i c a t i o n / soap+xml ; c h a r s e t = u t f −8 Content−L e n g t h : l e n g t h <soap12:Envelope x m l n s : x s i = " h t t p : / / www. w3 . org / 2 0 0 1 /XMLSchema−i n s t a n c e " xmlns:xsd = " h t t p : / / www. w3 . org / 2 0 0 1 /XMLSchema" xmlns:soap12= " h t t p : / / www. w3 . org / 2 0 0 3 / 0 5 / soap−envelope " >
c
2006-2008
Michal Krátký, Miroslav Beneš
ˇ Tvorba informacních systému˚
14/20
9. Webové služby
Webové služby WSDL SOAP UDDI
Pˇríklad SOAP 1.2, response 2/2
<soap12:Body> s t r i n g < / QueryResult> < / QueryResponse> < / soap12:Body> < / soap12:Envelope>
c
2006-2008
Michal Krátký, Miroslav Beneš
ˇ Tvorba informacních systému˚
15/20
9. Webové služby
Webové služby WSDL SOAP UDDI
Programovací jazyky a SOAP
ASP .NET. Java – celá ˇrada existujících implementací, napˇr.: Tomcat, Apache-SOAP – http://ws.apache.org/soap/, Xerces Java – XML parser, http://xerces.apache.org/.
c
2006-2008
Michal Krátký, Miroslav Beneš
ˇ Tvorba informacních systému˚
16/20
9. Webové služby
Webové služby WSDL SOAP UDDI
Pˇríklad, ASP.NET 1/2
namespace AmphorAWS { p u b l i c c l a s s AmphorAWS : System .Web. S e r v i c e s . WebService { ... / / attribute definition ... / / constructor , i n i t i a l i z a t i o n [ WebMethod ] p u b l i c S t r i n g Index ( S t r i n g u r l , i n t maxDepth ) { ... }
c
2006-2008
Michal Krátký, Miroslav Beneš
ˇ Tvorba informacních systému˚
17/20
9. Webové služby
Webové služby WSDL SOAP UDDI
Pˇríklad, ASP .NET 2/2 [ WebMethod ] p u b l i c S t r i n g Query ( i n t dbId , S t r i n g query ) { ... } [ WebMethod ] p u b l i c S t r i n g DatabaseList ( ) { ... } [ WebMethod ] p u b l i c S t r i n g R e s o u r c e L i s t ( i n t dbId ) { ... } } }
c
2006-2008
Michal Krátký, Miroslav Beneš
ˇ Tvorba informacních systému˚
18/20
9. Webové služby
Webové služby WSDL SOAP UDDI
Universal Description, Discovery and Integration (UDDI)
Registrace a vyhledávání webových služeb. ˇ Nabízí veˇrejnou databázi (registry). Napˇr. dveˇ nejvetší databáze spravují IBM a Microsoft. UDDI registr obsahuje cˇ tyˇri druhy entit: podnikatelské entity (business entity). služby (business service). šablony vazeb (binding template), napˇr. popis pomocí WSDL. typy služeb (service type).
c
2006-2008
Michal Krátký, Miroslav Beneš
ˇ Tvorba informacních systému˚
19/20
9. Webové služby
Webové služby WSDL SOAP UDDI
Reference SOAP http://www.w3.org/TR/soap12-part0/ http://www.w3schools.com/soap/soap_intro.asp
WSDL 2.0 http://www.w3.org/TR/wsdl20-primer. Webové služby http://www.kosek.cz Webové služby Google http://www.google.com/apis/
c
2006-2008
Michal Krátký, Miroslav Beneš
ˇ Tvorba informacních systému˚
20/20