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 systémů 2/20 Obsah Co jsou to webové služby? Architektura webových služeb. Přenos zpráv SOAP. Popis služeb WSDL. Hledání služeb UDDI.
Tvorba informačních systémů 3/20 Webové služby 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á přes sít pomocí protokolů jako HTTP, XML, SMTP, nebo Jabber, je to webová služba. Vrstva mezi aplikačním programem a klientem.
Tvorba informačních systémů 4/20 Webové služby Co jsou to webové služby Funkčnost služby není závislá na jazyku v jakém je klient nebo server implementován (Java, C++, PHP, C#,...). Příklad: HTML stránky: server=www server, klient=prohlížeč V dnešní době nechápeme webové služby takto obecně, 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časí. Komponenty distribuované aplikace?
Tvorba informačních systémů 5/20 Webové služby Architektura webových služeb Množina protokolů, http://www.w3.org/2002/ws/: Přenos 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.
Tvorba informačních systémů 6/20 Webové služby Architektura webových služeb
Tvorba informačních systémů 7/20 WSDL 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, Parametrů.
Tvorba informačních systémů 8/20 WSDL Příklad, webová služba pro přístup ke zdroji XML dat Metody: Index vytvoření nové databáze a vložení kolekce XML dokumentů Query dotaz DatabaseList seznam databází. ResourceList seznam odkazů ve stránce.
Tvorba informačních systémů 9/20 WSDL Příklad, WSDL < w s d l : d e f i n i t i o n s targetnamespace= " h t t p : / / tempuri. org / " > < wsdl:types> <s:schema elementformdefault= " q u a l i f i e d " targetnamespace= " h t t p : / / tempuri. org / " >... <s:element name= " Query " > <s:complextype><s:sequence> <s:element minoccurs= " 1 " maxoccurs= " 1 " name= " dbid " type= " s : i n t " / > <s:element minoccurs= " 0 " maxoccurs= " 1 " name= " query " type= " s : s t r i n g " / > < / s:sequence>< / s:complextype> < / s:element>...
Tvorba informačních systémů 10/20 SOAP 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 různých protokolů, např. HTTP. Můžeme jej ovšem použít pro RPC (Remote Procedure Call). Skládá se ze tří částí: envelope - definuje co zpráva obsahuje a jak ji zpracovat. Množina kódovacích pravidel např. serializace primitivních datových typů pro RPC, zasílání zpráv pomocí HTTP. Konvence pro reprezentaci volání vzdálených procedur.
Tvorba informačních systémů 11/20 SOAP Simple Object Access Protocol (SOAP) 2/2 SOAP je založen na XML. SOAP je poměrně jednoduchý (porovnej např. s CORBA IIOP). Neřeší transakce a bezpečnost. Zpráva obsahuje element Envelope, který obsahuje: hlavičku informace, tělo metainformace.
Tvorba informačních systémů 12/20 SOAP Pří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 ; charset= u t f 8 Content Length: l e ngth <?xml version= " 1.0 " encoding= " u t f 8"?> <soap12:envelope x m l n s : x s i = " h t t p : / /www. w3. org /2001/XMLSchema instance " xmlns:xsd= " h t t p : / /www. w3. org /2001/XMLSchema" xmlns:soap12= " h t t p : / /www. w3. org /2003/05/ soap envelope " >
Tvorba informačních systémů 13/20 SOAP Příklad SOAP 1.2, request 2/2 <soap12:body> <Query xmlns= " h t t p : / / tempuri. org / " > <dbid>1< / dbid> <query>doc ( books. xml ) / books / book [ author / l a s t = Fernadez ] < / query> < / Query> < / soap12:body> < / soap12:envelope>
Tvorba informačních systémů 14/20 SOAP Pří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 ; charset= u t f 8 Content Length: l e ngth <?xml version= " 1.0 " encoding= " u t f 8"?> <soap12:envelope x m l n s : x s i = " h t t p : / /www. w3. org /2001/XMLSchema instance " xmlns:xsd= " h t t p : / /www. w3. org /2001/XMLSchema" xmlns:soap12= " h t t p : / /www. w3. org /2003/05/ soap envelope " >
Tvorba informačních systémů 15/20 SOAP Příklad SOAP 1.2, response 2/2 <soap12:body> <QueryResponse xmlns= " h t t p : / / tempuri. org / " > <QueryResult> s t r i n g < / QueryResult> < / QueryResponse> < / soap12:body> < / soap12:envelope>
Tvorba informačních systémů 16/20 SOAP Programovací jazyky a SOAP ASP.NET. Java celá řada existujících implementací, např.: Tomcat, Apache-SOAP http://ws.apache.org/soap/, Xerces Java XML parser, http://xerces.apache.org/.
Tvorba informačních systémů 17/20 SOAP Příklad, ASP.NET 1/2 Příklad implementace webové služby. Jednotlivé metody definujeme pomocí klíčového slova [WebMethod] namespace AmphorAWS { p u b l i c class AmphorAWS : System. Web. Services. WebService {... / / a t t r i b u t e d e f i n i t i o n... / / c o n s t r u c t o r, 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 ) {... }
Tvorba informačních systémů 18/20 SOAP Pří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 ResourceList ( i n t dbid ) {... }
Tvorba informačních systémů 19/20 UDDI Universal Description, Discovery and Integration (UDDI) Registrace a vyhledávání webových služeb. Nabízí veřejnou databázi (registry). Např. dvě největší databáze spravují IBM a Microsoft. UDDI registr obsahuje čtyři druhy entit: podnikatelské entity (business entity). služby (business service). šablony vazeb (binding template), např. popis pomocí WSDL. typy služeb (service type).
Tvorba informačních systémů 20/20 UDDI Reference SOAP 1.2 http://www.w3.org/tr/soap/ 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/