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 - RPC/literal - document/literal
- document/literal wrapped
Zdroj:http:// dior.ics.muni.cz/~makub//soap/MartinKuba_WebServices_Datakon2006_clanek.pdf
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
Services don’t exist in a vacuum either
Procurement Process UI
Business Process Automation
User
HR Service Multiple services combined as a single business process
Zdroj: http://www.sonicsoftware.com/products/sonic_esb/architecture_definition
ESB (Enterprise Service Bus)
- 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 … -
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
Zdroj: http://edgewatertech.wordpress.com/2009/03/
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?