XI. Webové služby a architektura orientovaná na služby. Internet – principy a služby. Flashcards
Web Service (webová služba)
Jedná se o technologii, která umožňuje integrovat libovolné aplikace provozované na různých platformách a ovládat je prostřednictvím webového rozhraní, tj. z běžného internetového prohlížeče.
- Základní stavební blok distribuovaných aplikací v prostředí internetu
- Platforma pro integraci aplikací
- Aplikace využívají webové služby z různých zdrojů bez ohledu na to, kde jsou umístěny nebo jak byly implementovány
- Programová aplikační logika přístupná pomocí standardních web protokolů
Proč název webové služby?
- Termín „služba“ (service) – funkcionalita sdílené aplikace je označována za službu jiným aplikacím (místo klient a server se proto používá žadatel o službu a poskytovatel služby)
- Označení „webová“ – komunikace mezi žadatelem a poskytovatelem využívá osvědčených protokolů sítě internet
Charakteristika
- Užívají XML – pro popis svého rozhraní, formulaci požadavků i odpovědí i mechanismus vzájemné komunikace (nejsou vázány na proprietární licencované technologie)
- Umožňují synchronní a asynchronní komunikaci
- znovupoužitelné softwarové komponenty – webové služby pokračují v objektově orientovaném návrhu SW
- volně spojené – detaily implementace WS a technologické platformy které užívá, nejsou pro službu volající program důležité
- sémanticky zapouzdřují oddělenou funkcionalitu
- programově přístupné – na rozdíl od webových stránek, nejsou WS určeny přímo pro člověka, ale jsou určeny jiným programům
- přístupné přes standardní internetové protokoly – HTTP, ale i SMTP, FTP apod.
Definice webové služby
Definice webové služby
- Webové služby XML poskytují webovým uživatelům užitečné funkce prostřednictvím standardního webového protokolu (většinou protokol HTTP, formát komunikace - SOAP)
- Webové služby XML poskytují způsob, jak dostatečně podrobně popsat své rozhraní - obvykle ve formě dokumentu XML -Web Services Description Language (WSDL).
- Webové služby XML jsou registrované, takže potenciální uživatelé je mohou snadno nalézt. To zajišťuje specifikace Universal Discovery Description and Integration (UDDI).
Hlavní výhody WS
Hlavní výhody WS
- programy mohou být napsány v různých jazycích a na různých platformách a navzájem spolu komunikují standardním způsobem.
- to už slibovaly komponentové architektury
- rozdíl je v tom, že SOAP je podstatně jednodušší než dřívější přístupy, takže se snáze implementuje
- pracují se standardními webovými protokoly—XML, HTTP a TCP/IP
- firmy již mají vybudovanou webovou infrastrukturu a lidi se znalostmi, a tak jsou náklady na zavedení WS nižší než u předcházejících technologií
K čemu WS slouží
K čemu WS slouží
- první WS jen jako informační zdroj, který lze snadno začlenit do aplikace —ceny akcií, předpověď počasí, sportovní výsledky
- tyto informace na webu jsou, ale WS k nim zajistí snadnější a spolehlivější programový přístup
- Pokud to je WS jen pro zjišťování takovýchto dat, tak nemusí ani být přes SAOP
- nyní kompozitní aplikace
- např. elektronický obchod, který poskytne informace o cenách od různých prodejců. Uživatel si může vybrat prodejce, předat objednávku, aplikace může použít WS ke kontrole úvěru zákazníka, provádět příjem peněz z účtu zákazníka a zajistit dodávku zboží přes dodávkovou službu.
SOAP (Simple Object Access Protocol)
SOAP je protokol pro posílání zpráv XML a je základem webových služeb. Ostatní standardy jako WSDL a UDDI vznikly až později po uvedení SOAPu a jen dále rozšiřují jeho možnosti a snadnost použití. SOAP umožňuje zaslání XML zprávy mezi dvěma aplikacemi a pracuje tedy na principu peer-to-peer. Zpráva je jednosměrný přenos informace od odesílatele k příjemci, ale díky kombinování několika zpráv můžeme pomocí SOAPu snadno implementovat běžné komunikační scénáře.
Nejčastěji se SOAP používá jako náhrada vzdáleného volání procedur (RPC), tedy v modelu požadavek/odpověď. Jedna aplikace pošle v XML zprávě požadavek druhé aplikaci, tak požadavek obslouží a výsledek zašle jako druhou zprávu zpět původnímu iniciátorovi komunikace. V tomto případě bývá webová služba vyvolána webovým serverem, který čeká na požadavky klientů a v okamžiku, kdy přes HTTP přijde soapová zpráva, spustí webovou službu a předá jí požadavek. Výsledek služby je pak předán zpět klientovi jako odpověď.
- komunikační protokol pro WS
- ver. 1.0 - Microsoft, DevelopMentor,
- UserLand – 1999
- ver. 1.1 - + IBM
- ver. 1.2 W3C
- standard SOAP specifikuje
- formát XML pro zprávy
- jak vyjádřit programová data ve formě XML
- jak SOAP využít, aby prováděl vzdálené volání procedur
- jak má vypadat zpráva HTTP, která obsahuje zprávu SOAP.
- Vazba HTTP je volitelná, ale téměř všechny implementace SOAP ji podporují, neboť to je jediný standardizovaný protokol pro SOAP.
Implementace SOAP
Implementace SOAP
- je rozdíl mezi specifikací SOAP a mnoha implementacemi specifikace SOAP
- implementace SOAP jsou dostupné pro většinu programovacích jazyků - Java, jazyky .NET, Perl, PHP, Python, C, C++, Delphi,…
- většina vývojářů nepíše zprávy SOAP přímo, ale používá SOAP toolkit, který převádí volání funkce z určitého jazyka do zprávy SOAP
- vybrané implementace SOAP: Apache SOAP, Web Services Toolkit (IBM, alphaWorks), WASP for Java (Systinet)
WSDL (Web Services Definition Language)
Jazyk WSDL slouží k popisu síťových služeb jako množiny koncových bodů zpracovávajících zprávy. V praxi WSDL popisy nejčastěji popisují služby, které si posílají zprávy pomocí formátu SOAP a protokolu HTTP.
- Jak se služba nazývá, na jaké adrese je dostupná, jaké operace poskytuje
- Jaký mechanismus komunikace předpokládají
jazyk pro popis webových služeb
Soubor WSDL
Soubor WSDL:
- definuje vše potřebné k tomu, aby mohl být napsán program pracující s WS.
- je dokument XML popisující sadu zpráv SOAP a způsob, jakým se zprávy vyměňují
- jednoznačně specifikuje, co musí obsahovat zpráva s požadavkem a jak má vypadat zpráva s odpovědí
- dále definuje, kde je služba dostupná
- jaký komunikační protokol je použit ke spojení se službou
UDDI (Universal Description Discovery and Integration)
UDDI (Universal Description Discovery and Integration)
Nabízí mechanismy pro registrování, kategorizování a vyhledávání webových služeb. UDDI funguje jako velký adresář, který obsahuje informace o subjektech (firmách) a jimi poskytovaných službách. Samotný registr pracuje rovněž jako webová služba a komunikace s ní tedy opět probíhá pomocí SOAPu.
Webová služba představuje aktuální technologii implementace služeb nebo e-služeb, která je však koncovému uživateli skryta.
V souvislosti s distribuovaným zpracováním a distribuovaným systémem se využívá klient/server architektura. V souvislosti se SW a softwarovým inženýrstvím se využívá softwarová architektura.
- „zlaté stránky“ Webových služeb
- registrace služeb
- vyhledávání služeb
- komunikace pomocí SOAP
Architektura orientovaná na služby
Architektura orientovaná na služby
SOA lze chápat jako praktiky a rámce, které umožňují, aby funkcionalita aplikací byla poskytovaná a spotřebovaná jako množina služeb, a to v takové úrovni funkcionality, kterou potřebuje příjemce služby. Ten je oddělen od implementace služby a používá pouze jednoduché na standardech založené rozhraní.
Cílem je nabídnout funkcionalitu IS stejným způsobem, jako to dělá byznys vůči svým zákazníkům, tedy formou služby, včetně poskytnutí vhodného přístupu, kterým lze při užití již existujících služeb vytvářet služby nové.
Architektura orientovaná na služby (SOA) je postavena na 3 hlavních principech:
Je postavena na 3 hlavních principech:
- Byznys procesy řídí služby a služby řídí technologie = služby tvoří abstraktní vrstvu, která umožňuje vytvářet vztah mezi podnikovými procesy a aplikacemi technologií.
- Byznys agilita = schopnost rychle odpovídat na změny požadavků byznysu.
- SOA se neustále mění a je plně zvládnutelná (SOA governance)
Architektura je založená na předávání zpráv mezi autonomními službami – Loosecoupling
Architektura je založená na předávání zpráv mezi autonomními službami – Loosecoupling
- Služby jsou přístupné přes standardizovaná a publikovaná rozhraní a lze je snadno lokalizovat
- je to koncept architektury, její realizací mohou být XML webové služby
- představuje další úroveň znovupoužití kódu
- aplikace využívají služeb - při nahrazení služby není třeba aplikaci modifikovat
- nabízí jasný a čistý model pro integraci systémů
- uvnitř organizace
- mezi organizacemi
- poskytuje základ pro globální propojování systémů
Internet
Internet - globální světová síť, tvořená množinou komunikačních sítí s pravidly jejich propojení a způsobů komunikace
WWW - world wide web
WWW (world wide web)
- Služba WWW vznikla na půdě CERNu v letech 1989-90 pod vedením TimaBerners-Leeho. Měla sloužit jako infrastruktura pro sdílení výsledků vědeckých výzkumů.
- Je to informační prostor, v němž jsou jeho položky interpretované jako zdroje, jsou identifikovány globálními identifikátory URI
- Základy a principy WWW
- Lokace zdrojů (URL a URI)
- Přenos informací (http protokol)
- Reprezentace informací (HTML jazyky)
3 pilíře www
3 Pilíře www
- Identifikace: Každý zdroj je identifikován jedinečným URI (URL)
- Interakce: Web agent komunikuje standardním protokolem, který provádí interakci výměnou zpráv dané syntaxe a sémantiky (HTTP)
- Interpretace (reprezentace): V protokolu přenášíme data a popřípadě metadata z určeného zdroje (HTML)
URI (Identifikace – 1. pilíř)
URI (Identifikace – 1. pilíř)
- Identifikace:
- URI vytváří globální pojmový prostor a tím globální síťový efekt.
- Idea pochází z roku 1990 od DouglaseEngelbarta.
- řetězec znaků s definovanou strukturou, který slouží ke specifikaci zdroje informací (dokument/služba) zejména pro použití v rámci internetu
- URL – Uniform Resource Locator
- definuje doménu, umístění na serveru a protokol, port, parametry
- URN – Uniform Resource Name
- definuje zdroj, ale nesnaží se popsat, jak se k němu dostat (např URN: ISBN-80-1798-…)
- Schéma
- je položka, kterou se definuje typ zdroje a přístupová metoda ke zdroji. http, ftp, mailto:, file:
URI schema http
URI schema http
- http://pocitac/adresare/soubor
- Dále je možné připojit
- ?parametr=hodnota;parametr=hodnota
- # vnitřní odkaz
HTTP (Interakce – 2. pilíř)
Hypertext Transfer Protocol – protokol určený původně pro výměnu hypertextových dokumentů ve formátu HTML obvykle TCP/80.
Základní model protokolu:
- navázaní spojení
- zaslání požadavku klientem
- zaslání odpovědi serverem
- ukončení spojení
Struktura odpovědí a požadavků http
Struktura odpovědí a požadavků http
- Struktura požadavků (1.0 a 1.1)
- Metoda URL_dokumentuverze_HTTP
- Hlavičky
- Prázdná řádka
- Tělo požadavku
- Struktura odpovědí (1.0 a 1.1)
- Protokol stavový_kódstavové_hlášení
- Hlavičky
- Prázdná_řádka
- Obsah_odpovědi
Metody HTTP
Metody HTTP
- OPTIONS (od 1.1), Dotaz na server, jaké podporuje metody.
- GET (od 0.9), Požadavek na uvedený objekt se zasláním případných dat (proměnné prohlížeče, session id, …). Výchozí metoda při požadavku na zobrazení hypertextových stránek, RSS feedů aj. Celkově nejpoužívanější.
- HEAD (od 1.0),To samé jako metoda GET, ale už nepředává data. Poskytne pouze metadata o požadovaném cíli (velikost, typ, datum změny, …).
- POST (od 1.0), Odesílá uživatelská data na server. Používá se například při odesílání formuláře na webu. S předaným objektem se pak zachází podobně jako při metodě GET. Data může odesílat i metoda GET, metoda POST se ale používá pro příliš velká data (víc než 512 bajtů, což je velikost požadavku GET) nebo pokud není vhodné přenášená data zobrazit jako součást URL (data předávaná metodou POST jsou obsažena v HTTP požadavku).
- PUT (od 1.1), Nahraje data na server. Objekt je jméno vytvářeného souboru. Používá se velmi zřídka, pro nahrávání dat na server se běžně používá FTP nebo SCP/SSH.
- DELETE (od 1.1), Smaže uvedený objekt ze serveru. Jsou na to potřeba jistá oprávnění stejně jako u metody PUT.
- TRACE (od 1.1), Odešle kopii obdrženého požadavku zpět odesílateli, takže klient může zjistit, co na požadavku mění nebo přidávají servery, kterými požadavek prochází.
- CONNECT (od 1.1), Spojí se s uvedeným objektem před uvedený port. Používá se při průchodu skrze proxy pro ustanovení kanálu SSL.