Web Services Petr Adámek, petr.adamek@ibacz.eu Osnova Úvod  Co jsou to webové služby  Alternativy k webových službám Webové služby  Základní typy webových služeb  WSDL  SOAP Webové služby v Javě  Standardy  Příklady  Best practices 2 © 2011 IBA CZ, s.r.o. Úvod 3 © 2011 IBA CZ, s.r.o. Co jsou to webové služby Webové služby  Zpřístupňují určitou funkcionalitu klientům  Umožňují vzdálený přístup  Platformě a jazykově nezávislé  Založené na běžně používaných technologiích (XML, HTTP, apod.)  Klíčová technologie pro systémovou integraci  Základní stavební kámen pro architekturu SOA (Service-oriented architecture) Co k tomu potřebujeme?  Protokol (HTTP, SMTP)  Jazyk pro popis rozhraní služby (WSDL/XML schéma)  Jazyk pro přenos dat/zpráv (XML, JSON, Plain text) 4 © 2011 IBA CZ, s.r.o. Alternativy k webovým službám RMI (Java Remote Method Invocation)  Technologie pro vzdálené volání metod  Proprietární technologie pouze pro platformu Java  Pro popis rozhraní se používá jazyk Java  Nevhodné pro větší aplikace  Jednoduché 5 © 2011 IBA CZ, s.r.o. Alternativy k webovým službám CORBA (Common Object Request Broker Architecture)  Průmyslový standard definovaný OMG  Pro tvorbu lokálně i vzdáleně přístupných komponent  Platformě a jazykově nezávislý, podpora pro většinu používaných jazyků  Protokol GIOP, IIOP, SSLIOP, HTIOP  Pro popis rozhraní se používá jazyk IDL  Zajišťuje interoperabilitu i kompatibilitu  Poměrně složitý a komplikovaný, příliš se neuchytil EJB (Enterprise Java Bean)  Java EE standard pro tvorbu znovupoužitelných komponent definovaný JCP  Pro tvorbu lokálně i vzdáleně přístupných komponent  Pouze jazyk Java (pro implementaci i popis rozhraní)  Protokol IIOP  Zajišťuje interoperabilitu (i s jinými technologiemi) i kompatibilitu (pouze v rámci Java EE) 6 © 2011 IBA CZ, s.r.o. Webové služby 7 © 2011 IBA CZ, s.r.o. Základní typy webových služeb SOAP  Základem je služba, která nabízí množinu operací  Každá služba má své URL (např. http://example.com/courseService)  Každá služba může nabízet libovolnou množinu operací, operace definuje tvůrce služby  Vstupem i výstupem operace je zpráva  Pro popis rozhraní se používá WSDL  Pro přenos dat se používá jazyk SOAP REST  Základem jsou data, s nimiž můžeme manipulovat  Každý datový objekt má své URL (např. http://example.com/course/pa165)  S objektem je možné provádět pevně dané operace  Jazyk pro popis rozhraní se nepoužívá (není potřeba)  Pro přenos dat lze použít jakýkoliv formát (JSON, XML, Plain text, apod.) 8 © 2011 IBA CZ, s.r.o. Webové služby v Javě 11 © 2011 IBA CZ, s.r.o. Technologie/standardy JAX-RPC (Java API for XML-Based RPC)  SOAP služby  Zastaralé JAX-WS (Java API for XML-Based Web Services)  SOAP služby  Nahrazuje JAX-RPC  Zjednodušuje vývoj služeb  Využívá anotace JAX-RS (Java API for RESTful Web Services)  REST služby  Využívá anotace 12 © 2011 IBA CZ, s.r.o. Best Practices Použití webových služeb  Používejte vhodné technologie s ohledem na škálovatelnost a udržovatelnost  Nepoužívejte webové služby tam, kde to není potřeba/vhodné (např. pro lokální přístup). Návrh rozhraní služby  Služby navrhujte tak, aby byly jednoduché (viz obecné zásady pro objektovou dekompozici)  Před publikováním definice služby pečlivě zvažte, zda je služba navržená dobře – vzhledem k závislosti klientů je pozdější refaktoring složitý 13 © 2011 IBA CZ, s.r.o. Kontakty IBA CZ Petr Adámek University Relations petr.adamek@ibacz.eu IBA CZ, s.r.o. IBA CZ Development Center Petržílkova 2565/23 Křenová 72 158 00 Praha 5 602 00 Brno Tel.: (+420) 543 426 800 http://www.ibacz.eu/ © 2011 IBA CZ, s.r.o.14