Čo je webová služba?
Webová služba je štandardizované médium na šírenie komunikácie medzi klientskou a serverovou aplikáciou v sieti WWW. Webová služba je softvérový modul určený na vykonávanie určitých úloh.
- Webové služby v cloudových výpočtoch je možné vyhľadávať v sieti a podľa toho ich tiež možno vyvolať.
- Keď je vyvolaná, webová služba by bola schopná poskytnúť klientovi funkcie, ktoré túto webovú službu vyvolajú.
V tomto výučbe webových služieb sa dozviete základy webových služieb -
- Ako fungujú webové služby?
- Prečo potrebujete webovú službu?
- Typ webovej služby
- Výhody webových služieb
- Architektúra webových služieb
- Charakteristika webových služieb
- Webové služby SOAP.
- RESTful webové služby.
- Každý dokument SOAP musí mať koreňový prvok známy ako prvok
. Koreňový prvok je prvým prvkom v dokumente XML. - „Obálka“ je zase rozdelená na 2 časti. Prvý je hlavička a ďalší je telo.
- Hlavička obsahuje smerovacie údaje, čo sú v podstate informácie, ktoré informujú XML dokument, ktorému klientovi je potrebné ho poslať.
- Text bude obsahovať skutočnú správu.
Ako fungujú webové služby?

Vyššie uvedený diagram ukazuje veľmi zjednodušený pohľad na to, ako by webová služba skutočne fungovala. Klient by vyvolal sériu hovorov webových služieb prostredníctvom požiadaviek na server, ktorý by hostil skutočnú webovú službu.
Tieto požiadavky sa uskutočňujú prostredníctvom takzvaných vzdialených volaní procedúr. Vzdialené volania procedúr (RPC) sú volania uskutočňované metódami, ktoré sú hostené príslušnou webovou službou.
Napríklad Amazon poskytuje webovú službu, ktorá poskytuje ceny produktov predávaných online cez amazon.com. Front-end alebo prezentačná vrstva môžu byť v .Net alebo Java, ale každý programovací jazyk by bol schopný komunikovať s webovou službou.
Hlavnou súčasťou dizajnu webových služieb sú dáta, ktoré sa prenášajú medzi klientom a serverom, a to sú XML. XML (Extensible markup language) je protipólom HTML a je ľahko pochopiteľný medziproduktový jazyk, ktorému rozumie veľa programovacích jazykov.
Takže keď aplikácie medzi sebou komunikujú, v skutočnosti hovoria v XML. To poskytuje spoločnú platformu pre aplikácie vyvinuté v rôznych programovacích jazykoch na vzájomnú komunikáciu.
Webové služby používajú na odosielanie údajov XML medzi aplikáciami niečo známe ako SOAP (Simple Object Access Protocol). Údaje sa odosielajú cez normálny protokol HTTP. Dáta, ktoré sa z webovej služby odosielajú do aplikácie, sa nazývajú správa SOAP. Správa SOAP nie je nič iné ako dokument XML. Pretože je dokument napísaný v XML, klientská aplikácia volajúca webovú službu môže byť napísaná v ľubovoľnom programovacom jazyku.
Prečo potrebujete webovú službu?
Moderné obchodné aplikácie využívajú na vývoj webových aplikácií rôzne programovacie platformy. Niektoré aplikácie môžu byť vyvinuté v prostredí Java, iné v prostredí .Net, zatiaľ čo iné v jazykoch Angular JS, Node.js atď.
Najčastejšie tieto heterogénne aplikácie potrebujú medzi sebou určitú komunikáciu. Pretože sú zostavené s použitím rôznych vývojových jazykov, je skutočne ťažké zabezpečiť presnú komunikáciu medzi aplikáciami.
Tu prichádzajú na rad webové služby. Webové služby poskytujú spoločnú platformu, ktorá umožňuje vzájomnú komunikáciu viacerých aplikácií postavených na rôznych programovacích jazykoch.
Typ webovej služby
Existujú hlavne dva typy webových služieb.
Aby bola webová služba plne funkčná, je potrebné zaviesť určité komponenty. Tieto komponenty musia byť prítomné bez ohľadu na to, aký vývojový jazyk sa použije na programovanie webovej služby.
Pozrime sa na tieto komponenty podrobnejšie.
SOAP (Simple Object Access Protocol)
SOAP je známy ako prenosový protokol nezávislý od prenosu. SOAP je založený na prenose údajov XML ako správ SOAP. Každá správa má niečo, čo je známe ako dokument XML. Podľa konkrétneho vzoru sa riadi iba štruktúra dokumentu XML, nie však obsah. Najlepšia časť webových služieb a protokolu SOAP je to, že sa všetky odosielajú prostredníctvom protokolu HTTP, čo je štandardný webový protokol.
Z čoho sa skladá správa SOAP
Nasledujúci diagram zobrazuje jednoduchý príklad komunikácie prostredníctvom protokolu SOAP.

V tomto návode si podrobne rozoberieme SOAP.
WSDL (jazyk popisu webových služieb)
Webovú službu nemožno použiť, ak ju nemožno nájsť . Klient vyvolávajúci webovú službu by mal vedieť, kde sa v skutočnosti nachádza.
Po druhé, klientská aplikácia potrebuje vedieť, čo webová služba v skutočnosti robí, aby mohla vyvolať správnu webovú službu. To sa deje pomocou WSDL, známeho ako jazyk popisu webových služieb. Súbor WSDL je opäť súbor založený na XML, ktorý v podstate hovorí klientskej aplikácii, čo robí webová služba. Použitím dokumentu WSDL by klientská aplikácia dokázala pochopiť, kde sa nachádza webová služba a ako sa dá využiť.
Príklad webovej služby
Nižšie je uvedený príklad webových služieb súboru WSDL.
Dôležité aspekty, ktoré treba spomenúť na vyššie uvedených príkladoch webových služieb WSDL, sú tieto:
- Parameter správy v definícii WSDL sa používa na definovanie rôznych dátových prvkov pre každú operáciu vykonanú webovou službou. Vo vyššie uvedených príkladoch webových služieb teda máme 2 správy, ktoré si môžu vymieňať medzi webovou službou a klientskou aplikáciou, jedna je „TutorialRequest“ a druhá je operácia „TutorialResponse“. TutorialRequest obsahuje prvok s názvom "TutorialID", ktorý je typu string. Podobne operácia TutorialResponse obsahuje prvok s názvom „TutorialName“, ktorý je tiež typovým reťazcom. -
- Toto v skutočnosti popisuje operáciu, ktorú môže vykonať webová služba, ktorá sa v našom prípade nazýva Tutorial. Táto operácia môže trvať 2 správy; jeden je vstupná správa a druhý je výstupná správa. - Tento prvok obsahuje použitý protokol. Takže v našom prípade to definujeme tak, aby používalo http ( http://schemas.xmlsoap.org/soap/http ). Ďalej špecifikujeme ďalšie podrobnosti pre telo operácie, napríklad menný priestor a to, či má byť správa zakódovaná.
V tomto návode sa budeme podrobne venovať téme „WDSL“.
Univerzálny popis, vyhľadávanie a integrácia (UDDI)
UDDI je štandard pre popis, publikovanie a objavovanie webových služieb, ktoré poskytuje konkrétny poskytovateľ služieb. Poskytuje špecifikáciu, ktorá pomáha pri poskytovaní informácií o webových službách.
Teraz sme diskutovali v predchádzajúcej téme o WSDL a o tom, ako obsahuje informácie o tom, čo webová služba v skutočnosti robí. Ako však môže klientská aplikácia nájsť súbor WSDL, aby pochopila rôzne operácie ponúkané webovou službou? UDDI je odpoveďou na túto otázku a poskytuje úložisko, na ktorom môžu byť hostené súbory WSDL. Klientska aplikácia bude mať teda úplný prístup k UDDI, ktoré funguje ako databáza obsahujúca všetky súbory WSDL.
Rovnako ako telefónny zoznam obsahuje meno, adresu a telefónne číslo konkrétnej osoby, rovnako bude mať register UDDI príslušné informácie o webovej službe . Aby klientská aplikácia vedela, kde ju možno nájsť.
Výhody webových služieb
Už chápeme, prečo vôbec vznikli webové služby, ktoré mali poskytnúť platformu, ktorá by umožňovala vzájomné rozhovory rôznych aplikácií.
Pozrime sa však na zoznam výhod webových služieb, prečo je dôležité používať webové služby.
-
Vystavenie obchodných funkcií v sieti - Webová služba je jednotka riadeného kódu, ktorá poskytuje určitý druh funkcií klientským aplikáciám alebo koncovým používateľom. Túto funkciu je možné vyvolať cez protokol HTTP, čo znamená, že ju možno vyvolať aj cez internet. V súčasnosti sú všetky aplikácie na internete, čo zvyšuje užitočnosť účelu webových služieb. To znamená, že webová služba môže byť kdekoľvek na internete a podľa potreby poskytovať potrebné funkcie.
-
Interoperabilita medzi aplikáciami - Webové služby umožňujú rôznym aplikáciám vzájomne sa rozprávať a zdieľať medzi sebou dáta a služby. Všetky typy aplikácií môžu spolu komunikovať. Takže namiesto písania konkrétneho kódu, ktorému rozumejú iba konkrétne aplikácie, môžete teraz napísať všeobecný kód, ktorému porozumejú všetky aplikácie
-
Štandardizovaný protokol, ktorému každý rozumie - Webové služby používajú na komunikáciu štandardizovaný priemyselný protokol. Všetky štyri vrstvy (služba Transport, XML Messaging, popis služby a Service Discovery vrstvy) používajú presne definované protokoly v zásobníku protokolov webových služieb.
-
Zníženie nákladov na komunikáciu - Webové služby používajú protokol SOAP cez protokol HTTP, takže na implementáciu webových služieb môžete použiť svoj súčasný lacný internet.
Architektúra webových služieb
Každý rámec potrebuje určitú architektúru, aby sa ubezpečil, že celý rámec funguje podľa želania podobne aj vo webových službách. Web Services architektúry sa skladá z troch odlišných rolí, ako je uvedené nižšie:
- Poskytovateľ - Poskytovateľ vytvorí webovú službu a sprístupní ju klientskej aplikácii, ktorá ju chce používať.
- Žiadateľ - Žiadateľ nie je nič iné ako klientská aplikácia, ktorá potrebuje kontaktovať webovú službu. Klientskou aplikáciou môže byť .Net, Java alebo akákoľvek iná jazyková aplikácia, ktorá vyhľadáva určitý druh funkcií prostredníctvom webovej služby.
- Broker - Maklér nie je nič iné ako aplikácia, ktorá poskytuje prístup k UDDI. UDDI, ako je uvedené v predchádzajúcej téme, umožňuje klientskej aplikácii vyhľadať webovú službu.
Nasledujúci diagram zobrazuje vzájomnú interakciu poskytovateľa služby, žiadateľa o službu a registra služby.

- Zverejniť - Poskytovateľ informuje sprostredkovateľa (register služieb) o existencii webovej služby pomocou zverejňovacieho rozhrania sprostredkovateľa na sprístupnenie služby klientom.
- Nájsť - Žiadateľ požiada sprostredkovateľa o nájdenie publikovanej webovej služby
- Viazať - S informáciami, ktoré získal od sprostredkovateľa (register služieb) o webovej službe, je žiadateľ schopný naviazať alebo vyvolať webovú službu.
Vlastnosti webovej služby
Webové služby majú nasledujúce špeciálne charakteristiky správania:
-
Sú založené na XML - webové služby používajú XML na reprezentáciu údajov vo vrstvách zastúpenia a prenosu údajov. Používanie XML eliminuje akékoľvek závislosti na sieťach, operačných systémoch alebo platformách, pretože XML je spoločný jazyk, ktorému všetci rozumejú.
-
Voľne spojené - Voľne spojené znamená, že klient a webová služba nie sú navzájom viazaní, čo znamená, že aj keď sa webová služba v priebehu času mení, nemalo by to meniť spôsob, akým klient webovú službu volá. Prijatie voľne prepojenej architektúry vedie k lepšej ovládateľnosti softvérových systémov a umožňuje jednoduchšiu integráciu medzi rôznymi systémami.
-
Synchrónna alebo asynchrónna funkčnosť - Synchronicita označuje väzbu klienta na vykonávanie služby. Pri synchrónnych operáciách bude klient skutočne čakať na dokončenie operácie webovou službou. Príkladom toho je pravdepodobne scenár, v ktorom sa vykonáva operácia čítania a zápisu do databázy. Ak sa údaje načítajú z jednej databázy a následne sa zapíšu do inej, potom sa operácie musia robiť postupne. Asynchrónne operácie umožňujú klientovi vyvolať službu a potom paralelne vykonávať ďalšie funkcie. Toto je jedna z bežných a pravdepodobne najpreferovanejších techník zabezpečujúcich, aby sa ďalšie služby nezastavili, keď sa vykonáva konkrétna operácia.
-
Schopnosť podpory vzdialených volaní procedúr (RPC) - Webové služby umožňujú klientom vyvolať procedúry, funkcie a metódy na vzdialených objektoch pomocou protokolu založeného na XML. Vzdialené procedúry vystavujú vstupné a výstupné parametre, ktoré musí webová služba podporovať.
-
Podporuje výmenu dokumentov - Jednou z hlavných výhod XML je jeho všeobecný spôsob reprezentácie nielen údajov, ale aj zložitých dokumentov. Tieto dokumenty môžu byť také jednoduché, ako predstavuje aktuálnu adresu, alebo môžu byť rovnako zložité ako celá kniha.