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 informačních systémů 1/20
Obsah 9. Co jsou to webové služby? Architektura webových služeb. Přenos zpráv. Popis služeb. Hledání služeb. c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 2/20
9. 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. c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 3/20
9. 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? c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 4/20
9. Architektura webových služeb Množina protokolů, http://www.w3.org/2002/ws/: Přenos zpráv, http://www.w3.org/2000/xp/group/. Popis služeb, http://www.w3.org/2002/ws/desc/. Hledání služeb. c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 5/20
9. Architektura webových služeb c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 6/20
9. Web Services Description Language () Popis webové služby založený na XML. IBM, Microsoft, dnes W3C. soubor s definicí rozhraní služby je XML dokument, obsahuje definici: Metod, Parametrů. c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 7/20
9. Příklad, webová služba pro přístup k nativní XML databázi Metody: Index vytvoření indexu. Query dotaz na databázi DatabaseList seznam databází. ResourceList seznam odkazů ve stránce. c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 8/20
Příklad, 9. < 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>... c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 9/20
9. Simple Object Access Protocol () 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 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. c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 10/20
9. Simple Object Access Protocol () 2/2 je založen na XML. 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. c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 11/20
9. Příklad 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 " > c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 12/20
9. Příklad 1.2, request 2/2 <soap12:body> <Query xmlns= " h t t p : / / tempuri. org / " > <dbid> i n t < / dbid> <query> s t r i n g < / query> < / Query> < / soap12:body> < / soap12:envelope> c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 13/20
9. Příklad 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 " > c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 14/20
9. Příklad 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> c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 15/20
9. Programovací jazyky a ASP.NET. Java celá řada existujících implementací, např.: Tomcat, Apache- http://ws.apache.org/soap/, Xerces Java XML parser, http://xerces.apache.org/. c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 16/20
Příklad, ASP.NET 1/2 9. 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 ) {... } c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 17/20
9. 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 ) {... } c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 18/20
9. Universal Description, Discovery and Integration () 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. registr obsahuje čtyři druhy entit: podnikatelské entity (business entity). služby (business service). šablony vazeb (binding template), např. popis pomocí. typy služeb (service type). c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 19/20
Reference 9. http://www.w3.org/tr/soap12-part0/ http://www.w3schools.com/soap/soap_intro.asp 2.0 http://www.w3.org/tr/wsdl20-primer. http://www.kosek.cz Google http://www.google.com/apis/ c 2006-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 20/20