9 InternetovéTechnologie webové služby, SOA, služby, atd. Ing. Michal Radecký, Ph.D. www.cs.vsb.cz/radecky
Co je to webová služba - 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, a to za pomoci SOAP zpráv, typicky dopravovaných použitím HTTP s XML serializací v součinnosti s ostatními webovými standardy. W3C
Předávání dat v prostředí webu - HTTP metoda GET a URL parametry - omezení na 4kB, problém zabezpečení, kódování - HTTP metoda POST - libovolná velikost i obsah zasílaných dat - problém s kódováním - HTTP metoda POST s XML - svoboda při strukturování dat a specifikaci kódování - možnost zachycení typovosti dat (XML Schema) - XML-RPC, WDDX, XMI, atd.
Předávání dat v distrib. systémech - RPC (Remote Procedure Call) - vzdálené volání procedur jako lokálních - synchronní systém požadavek/odpověď a předáváním dat hodnotou - popis vzdálených procedur pomocí IDL (Interface Definition Language) - řeší se problémy s reprezentací čísel, znakových sad - RMI (Remote Method Invocation) - založeno na objektovém přístupu (proxy rozhraní) - předávání odkazů na vzdálené objekty - synchronní systém požadavek/odpověď - CORBA, Java RMI, DCOM - MAS (Multi-Agent System)
Webové služby - Technologie pro vzdálené volání procedur pomocí výměny XML zpráv - Způsob komunikace - transientní synchronní - může využívat i všechny další kombinace (transientní x persistentní, synchronní x asynchronní) - Hlavní prvky - XML - SOAP - WSDL - UDDI, WSIL
Historický vývoj Zdroj:http://www.cmsthailand.com/ws/index.php
Architektura Zdroj:http:// www.ebpml.org/webservices.htm
Zdroj: http://gdp.globus.org/gt4-tutorial/multiplehtml/ch01s02.html Komunikace webové služby
Protokol SOAP - Microsoft a IBM vytvořili v roce 1998 SOAP (Simple Object Access Protocol), dnes Service Oriented Architecture Protocol - Aktuálně jako doporučení 1.2 z roku 2007 (SE) pod aktivitou W3C - RPC pomocí XML a HTTP - nezávislost na platformě a programovacím jazyce - snadná komunikační propustnost - XML je primární specifikace obsahu přenášených dat - volná vazba mezi klientem s serverem - Typový systém SOAP - URI, XML Namespaces, XML Schema
SOAP volání Zdroj:http:// dior.ics.muni.cz/~makub//soap/martinkuba_webservices_datakon2006_clanek.pdf - XML zpráva přenesená pomocí HTTP (SMTP, FTP, atd.) - Přenášená data - vstupní (request) - výstupní (response) - výjimky (fault)
WSDL - Popis rozhraní webové služby na syntaktické úrovni (+ protokol a adresa umístění služby) - Web Service Description Language - Aktuálně verze 2.0 z roku 2007 - Na základě popisu WSDL je možné generovat zástupné objekty (stubs) pro dané implementační prostředí - Vždy nejprve vytvářet WSDL - Změna WSDL znamená změnu rozhraní služby, při změně operací a změně namespace je možné obsluhovat staré i nové klienty - Neřeší zabezpečení, transakce, workflow, atd.
WSDL - struktura Zdroj:http://herakles.zcu.cz/education/net/lectures/WSOld.pdf
WSDL
WSDL styly - Určují, jakým způsobem je zapsán WSDL dokument - 4 možné přístupy (binding style a use) - RPC/encoded (zakázáno podle WS-I Basic Profile) - RPC/literal - document/encoded - document/literal wrapped (dnes nejpoužívanější) - WS-I Basic Profile specifikace organizace WSI pro zajištění interoperability na úrovni WS
WSDL styly - RPC/encoded Zdroj:http:// dior.ics.muni.cz/~makub//soap/martinkuba_webservices_datakon2006_clanek.pdf - RPC/literal - document/literal - document/literal wrapped
UDDI a WSIL - UDDI (Universal Descripction,Discovery and Integration) - centralizovaná webová služba zajišťující telefonní seznam WS - vyhledávání podle klíčových slov nebo oborů - nejedná se o specifikaci W3C, ale standard pod hlavičkou OASIS - v roce 2006 byly vypnuty veřejné rejstříky (Microsoft, IBM, SAP) - chybí garance kvality informací, řízení rejstříků, atd. - WSIL (Web Service Inspection Language) - místní rejstříky poskytovatele WS - inspection.wsil v kořenovém adresáři webového serveru
WS-* - Pokrývá další dodatečné specifikace, které mnohdy stojí proti sobě (Microsoft, IBM) - Nepřehlednost snižuje možnosti plného zajištění interoperability, zabezpečení, pochopení a implementace - Na druhou stranu umožňují zohledňovat specifické požadavky a rozšíření v podnikových systémech (zabezpečení, transakce, management, apod.) - Příklady - WS-Addressing do SOAP hlavičky přidává from a to - WS-Policy, WS-SecurityPolicy vlastnosti mimo rámec WSDL - WS-Transfer HTTP nad SOAP pro dokumenty
Alternativy - Pro jednoduché aplikace stačí zasílání jednoduchých dotazů v podobě XML pomocí HTTP - Nevyžadují specifické nástroje a požadavky pro SOAP + WS-* (rozsáhlé podnikové aplikace) - POX (Plain Old XML) - REST (Representational State Transfer) vše je popsatelné pomocí URI (URL) a podle typů je možné s objektem manipulovat bezestavovost, vstupní informace v určení požadavku, výstupní je pak XML (nebo např. JSON) na dané adrese URI velmi dobrá škálovatelnost aplikací
Bezpečnost webových služeb - SOAP ani WSDL bezpečnost neřeší - 3 možnosti zajištění bezpečnosti - transportní vrstva (SSL) nelze podepisovat, point-to-point - zprávy (XML encryption, XML signature) možnost podepisování, multipoint - WS-Security integrace s PKI, Kerberos, apod. nestačí čisté WSDL (WS-Policy, WS-SecurityPolicy) - Zajištění a ověření důvěryhodnosti výstupu služby??
Výhody a nevýhody Webových služeb - Výhody - vycházejí z výhod využití XML - bezproblémová lokalizace a internacionalizace (UTF) - nezávislost na programovacím jazyce a platformě - poměrně značná nezávislost klienta a poskytovatele služby - snadná integrace v rámci rozsáhlých systémů - silný nástroj v podobě SOAP a WSDL u podnikových aplikací - Nevýhody - poměrně značná rozsáhlost dat - zpracování dat (XML) je pomalé/drahé - složitost a nepřehlednost WS specifikací - komplikované využití podle SOAP a WSDL z pohledu webových aplikací
Sémantický web a webové služby - Sémantický web integruje data napříč aplikacemi a organizacemi (díky univerzalitě URI a znovupoužitelnosti ontologií) - Webové služby integrují programy napříč aplikacemi a organizacemi (díky modularitě a flexibilitě XML) - Principy sémantického webu lze aplikovat i u webových služeb - WSMO, WSDL-S, OWL-S, DAML-S ontologie přinášející sémantiku do popisu služeb a jejich využívání - značné zvýšení efektivity při vyhledávání webových služeb - možnost tvorby složené služby na základě ontologií - Webové služby mohou být dobrou základnou pro budování sémantického webu
Budoucnost webových služeb - Silný nástroj pro integraci a interoperabilitu bez závislosti na platformě a implementačním prostředí - efektivní využití pro webové aplikace - efektivní využití pro rozsáhlé podnikové aplikace - Využití WS pro Web 2.0 a Web 3.0 - sémantika služeb - sémantika zpracovávaných dat službami - mashup - Nutnost dořešení standardů a jednotnosti při využívání služeb - Ne vždy se musí jednat o SOAP-based webové služby
Orientace na služby - Přináší možnost reagovat rychleji a efektivněji na měnící se požadavky s maximálním využitím již připravených řešení - Snižuje náklady na vývoj, provoz a údržbu IT systémů - SOA (Service Oriented Architecture) - technologický aspekt - SOE (Service Oriented Enterprise) - obchodní aspekt
SOA - Představuje model, kterým lze řešit náročné úlohy spojené s integrací oddělených aplikací. Nejedná se o standard ani produkt - Pojem pokrývající přístupy pro EDI (Electronic Data Interchange) v organizacích. - Pokrývá otázky analýzy, vývoje, provozu a integrace aplikací postavených na distribuovaných službách - Nástupce tradičního konceptu EAI (Enterprise Application Integration) - RPC, RMI - MOM (Message Oriented Middleware) - ebxml (Electronic Business XML)
SOA Zdroj: http://cz.sun.com/javaforum/sekce1/2-systinet-jf2005-soa.pdf - Propojení aplikací na obecných a otevřených standardech, nikoliv jen na SOAP - Spojovací prvek mezi podnikovými procesy a výpočetní infrastrukturou
SOA Zdroj: http://www.microsoft.com - BPEL (Business Process Execution Language) - standard a nástroj pro slaďování (orchestration) webových služeb a jejich správu Financials Service Automated business process presented to user as single UI, saving time & money Integrated services can be built different platforms Procurement Service Procurement Process UI Services don t exist in a vacuum either HR Service Business Process Automation User Multiple services combined as a single business process
ESB (Enterprise Service Bus) Zdroj: http://www.sonicsoftware.com/products/sonic_esb/architecture_definition - V současnosti nejzdařilejší implementace SOA - Softwarová architektura pro middleware, která poskytuje služby pro vyšší architektury. Přináší výkon a škálovatelnost, bezpečnost a spolehlivost, distribuci, pružnost, viditelnost a řízení pro služby v rámci SOA. - Různé konkrétní implementace - IBM WebSphere - Oracle ESB - Microsoft BizTalk - SAP - BEA
ESB Zdroj: http://edocs.bea.com/alsb/docs26/concepts
Service as a Zdroj: http://edgewatertech.wordpress.com/2009/03/ - IaaS (Infrastructure as a Service) - Paas (Platform as a Service) - SaaS (Software as a Service) - CaaS (Communication as a Service) - MaaS (Monitoring as a Service) - flexibilní ekonomický i provozní model provozu jako služby
Cloud Computing - Zastřešuje pojmy as a Service - Obecně se jedná o buzzword (podobně jako Web 2.0) a může pokrývat i obyčejné, bežně používané technologie ve vztahu k internetu definice je obtížná - Technicky se jedná o architekturu postavenou na virtualizaci čehokoliv (web, služba, aplikace, systém, server, apod.) v procesu provozu software či služeb formou on-demand (na vyžádání). - Pozitiva: přístupnost, pohodlí, flexibilita, nový obchodní model, škálovatelnost, synchronizace, užitečnost - Negativa: nový obchodní model, legislativa, není vhodné pro všechny typy aplikací - Cloud vs. Grid computing vs. VPS (Virtual Private Server)
Další studijní zdroje - http://www.kosek.cz/diplomka/html/websluzby. html - http://suda.co.uk/publications/msc/brian.suda.t hesis.pdf - http://www.slideshare.net/cebartling/rest-webservices - http://www.systemonline.cz/sprava-it/proc-soanema-alternativu.htm - http://programujte.com/clanek/2006080705-jakfunguje-esb/ - http://www.jurica.info/2012/01/saas-a-cloud-vefiremni-sfere-diplomka/
Videa - http://www.youtube.com/v/zv860odgn5y - http://www.youtube.com/v/dyhwaig6c-y - http://www.youtube.com/v/sbd_1g8kqjs - http://youtu.be/h72s78so6dm - http://www.youtube.com/watch?v=txvgndnknww - http://www.youtube.com/watch?v=ae_dknwk_ms - http://www.youtube.com/watch?v=ebncuqal6um
Kontrolní otázky - Co jsou to webové služby? - Jako technologie tvoří standard pro webové služby a jaké jsou jejich úlohy a charakteristiky? - Jaké jsou alternativy k SOAP přístupu a jak se používají? - Co je to SOA? - Jaké jsou hlavní charakteristiky obecných služeb nabízených v modelu as a Service? - Co je a co není cloud?