Co jsou webové služby? Architecture, Types, Example
Co je webová služba?
webová služba je standardizované médium pro šíření komunikace mezi klientskými a serverovými aplikacemi na WWW (World Wide Web). Webová služba je softwarový modul, který je navržen tak, aby vykonával určitou sadu úkolů.
- Webové služby v cloud computingu lze vyhledávat v síti a lze je také podle toho vyvolat.
- Po vyvolání by webová služba byla schopna poskytnout funkcionalitu klientovi, který tuto webovou službu vyvolá.
Jak fungují webové služby?
Výše uvedený diagram ukazuje velmi zjednodušený pohled na to, jak by webová služba skutečně fungovala. Klient by vyvolal řadu volání webové služby prostřednictvím požadavků na server, který by hostil skutečnou webovou službu.
Tyto požadavky jsou prováděny prostřednictvím toho, co se nazývá vzdálené volání procedur. Vzdálená volání procedur (RPC) jsou volání metod, které jsou hostovány příslušnou webovou službou.
Jako příklad, Amazon poskytuje webovou službu, která poskytuje ceny produktů prodávaných online přes amazon.com. Frontend nebo prezentační vrstva může být v .Net nebo Java ale každý programovací jazyk by měl schopnost komunikovat s webovou službou.
Hlavní součástí návrhu webové služby jsou data, která se přenášejí mezi klientem a serverem, a to je XML. XML (rozšiřitelný značkovací jazyk) je protějšek HTML a snadno pochopitelný mezijazyk, kterému rozumí mnoho programovacích jazyků.
Takže když spolu aplikace mluví, mluví ve skutečnosti v XML. To poskytuje společnou platformu pro aplikace vyvinuté v různých programovacích jazycích, aby spolu mohly komunikovat.
Webové služby používají pro odesílání dat XML mezi aplikacemi něco známého jako SOAP (Simple Object Access Protocol). Data jsou odesílána přes normální HTTP. Data, která jsou odeslána z webové služby do aplikace, se nazývají zpráva SOAP. Zpráva SOAP není nic jiného než dokument XML. Protože je dokument napsán v XML, klientská aplikace volající webovou službu může být napsána v jakémkoli programovacím jazyce.
Proč potřebujete webovou službu?
Moderní obchodní aplikace využívají k vývoji webových aplikací různé programovací platformy. Některé aplikace mohou být vyvíjeny v Java, jiné v .Net, zatímco jiné v Angular JS, Node.js atd.
Nejčastěji tyto heterogenní aplikace potřebují nějaký druh komunikace, aby mezi nimi probíhala. Protože jsou vytvořeny pomocí různých vývojových jazyků, je skutečně obtížné zajistit přesnou komunikaci mezi aplikacemi.
Zde přichází na řadu webové služby. Webové služby poskytují společnou platformu, která umožňuje více aplikací postavených na různých programovací jazyky mít schopnost spolu komunikovat.
Typ webové služby
Existují především dva typy webových služeb.
- SOAP webové služby.
- RESTful webové služby.
Aby byla webová služba plně funkční, musí být nainstalovány určité komponenty. Tyto komponenty musí být přítomny bez ohledu na jakýkoli vývojový jazyk použitý pro programování webové služby.
Podívejme se na tyto komponenty podrobněji.
SOAP (Simple Object Access Protocol)
SOAP je známý jako protokol pro zasílání zpráv nezávislý na transportu. SOAP je založen na přenosu dat XML jako zpráv SOAP. Každá zpráva má něco, čemu se říká XML dokument. Pouze struktura dokumentu XML se řídí konkrétním vzorem, nikoli však obsah. Nejlepší na webových službách a SOAP je, že jsou všechny odesílány přes HTTP, což je standardní webový protokol.
Zde je to, z čeho se skládá zpráva SOAP
- Každý dokument SOAP musí mít kořenový prvek známý jako živel. Kořenový prvek je prvním prvkem v dokumentu XML.
- „Obálka“ je zase rozdělena na 2 části. První je záhlaví a další je tělo.
- Hlavička obsahuje směrovací data, což jsou v podstatě informace, které XML dokumentu sdělují, kterému klientovi má být odeslán.
- Tělo bude obsahovat skutečnou zprávu.
Níže uvedený diagram ukazuje jednoduchý příklad komunikace přes SOAP.
V tomto budeme podrobně probírat SOAP konzultace.
WSDL (jazyk popisu webových služeb)
Webovou službu nelze použít, pokud ji nelze najít. Klient, který webovou službu vyvolává, by měl vědět, kde se webová služba skutečně nachází.
Za druhé, klientská aplikace potřebuje vědět, co webová služba skutečně dělá, aby mohla vyvolat správnou webovou službu. To se provádí pomocí WSDL, známého jako jazyk popisu webových služeb. Soubor WSDL je opět soubor založený na XML, který v podstatě říká klientské aplikaci, co webová služba dělá. Pomocí dokumentu WSDL by klientská aplikace byla schopna pochopit, kde se webová služba nachází a jak ji lze využít.
Příklad webové služby
Níže je uveden příklad webových služeb pro soubor WSDL.
<definitions> <message name="TutorialRequest"> <part name="TutorialID" type="xsd:string"/> </message> <message name="TutorialResponse"> <part name="TutorialName" type="xsd:string"/> </message> <portType name="Tutorial_PortType"> <operation name="Tutorial"> <input message="tns:TutorialRequest"/> <output message="tns:TutorialResponse"/> </operation> </portType> <binding name="Tutorial_Binding" type="tns:Tutorial_PortType"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="Tutorial"> <soap:operation soapAction="Tutorial"/> <input> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:Tutorialservice" use="encoded"/> </input> <output> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:Tutorialservice" use="encoded"/> </output> </operation> </binding> </definitions>
Důležité aspekty, které je třeba poznamenat o výše uvedených příkladech deklarací WSDL webových služeb, jsou následující:
- – Parametr zprávy v definici WSDL se používá k definování různých datových prvků pro každou operaci prováděnou webovou službou. Takže ve výše uvedených příkladech webových služeb máme 2 zprávy, které lze vyměňovat mezi webovou službou a klientskou aplikací, jedna je „TutorialRequest“ a druhá je operace „TutorialResponse“. TutorialRequest obsahuje prvek nazvaný „TutorialID“, který je typu string. Podobně operace TutorialResponse obsahuje prvek nazvaný „TutorialName“, což je také typový řetězec.
- – Toto ve skutečnosti popisuje operaci, kterou může provádět webová služba, která se v našem případě nazývá Tutorial. Tato operace může trvat 2 zprávy; jedna je vstupní zpráva a druhá je výstupní zpráva.
- – Tento prvek obsahuje použitý protokol. V našem případě jej tedy definujeme tak, aby používal http (http://schemas.xmlsoap.org/soap/http). Uvádíme také další podrobnosti pro tělo operace, jako je jmenný prostor a zda má být zpráva zakódována.
V tomto článku budeme podrobně diskutovat o „WDSL“. konzultace.
Univerzální Description, objevování a integrace (UDDI)
UDDI je standard pro popis, publikování a zjišťování webových služeb, které poskytuje konkrétní poskytovatel služeb. Poskytuje specifikaci, která pomáhá při hostování informací o webových službách.
Nyní jsme v předchozím tématu diskutovali o WSDL a o tom, jak obsahuje informace o tom, co webová služba skutečně dělá. Jak ale může klientská aplikace najít soubor WSDL, aby pochopila různé operace nabízené webovou službou? UDDI je tedy odpovědí na toto a poskytuje úložiště, na kterém lze hostovat soubory WSDL. Klientská aplikace tak bude mít úplný přístup k UDDI, které funguje jako databáze obsahující všechny soubory WSDL.
Stejně jako telefonní seznam obsahuje jméno, adresu a telefonní číslo konkrétní osoby, stejným způsobem bude mít registr UDDI relevantní informace pro webovou službu.. Aby klientská aplikace věděla, kde ji lze nalézt.
Výhody webových služeb
Už chápeme, proč webové služby vůbec vznikly, což bylo poskytnout platformu, která by umožnila různým aplikacím komunikovat mezi sebou.
Podívejme se ale na seznam výhod webových služeb, proč je důležité webové služby využívat.
- Odhalení podnikových funkcí v síti – Webová služba je jednotka spravovaného kódu, která poskytuje určitý druh funkcí klientským aplikacím nebo koncovým uživatelům. Tuto funkci lze vyvolat přes protokol HTTP, což znamená, že ji lze vyvolat také přes internet. V dnešní době jsou všechny aplikace na internetu, což činí účel webových služeb užitečnějším. To znamená, že webová služba může být kdekoli na internetu a poskytovat potřebné funkce podle potřeby.
- Interoperabilita mezi aplikacemi – Webové služby umožňují různým aplikacím komunikovat mezi sebou a sdílet data a služby mezi sebou. Všechny typy aplikací spolu mohou mluvit. Takže místo psaní specifického kódu, kterému mohou porozumět pouze konkrétní aplikace, můžete nyní psát generický kód, kterému porozumí všechny aplikace.
- Standardizovaný protokol, kterému každý rozumí – Webové služby používají pro komunikaci standardizovaný průmyslový protokol. Všechny čtyři vrstvy (přenos služby, zasílání zpráv XML, služba Description a vrstvy Service Discovery) používá dobře definované protokoly v zásobníku protokolů webových služeb.
- Snížení nákladů na komunikaci – Webové služby využívají protokol SOAP přes protokol HTTP, takže pro implementaci webových služeb můžete využít svůj stávající levný internet.
Webové služby Architecture
Každý framework potřebuje nějakou architekturu, aby se zajistilo, že celý framework bude fungovat podle přání, podobně jako ve webových službách. The Webové služby Architecture sestává ze tří odlišných rolí, jak je uvedeno níže:
- Provider – Poskytovatel vytvoří webovou službu a zpřístupní ji klientské aplikaci, která ji chce používat.
- Žadatel – Žadatel není nic jiného než klientská aplikace, která potřebuje kontaktovat webovou službu. Klientskou aplikací může být .Net, Javanebo jakákoli jiná jazyková aplikace, která hledá nějakou funkcionalitu prostřednictvím webové služby.
- makléř – Broker není nic jiného než aplikace, která poskytuje přístup k UDDI. UDDI, jak je popsáno v předchozím tématu, umožňuje klientské aplikaci vyhledat webovou službu.
Níže uvedený diagram ukazuje, jak se poskytovatel služby, žadatel o službu a registr služeb vzájemně ovlivňují.
- Publikovat – Poskytovatel informuje brokera (registr služeb) o existenci webové služby pomocí publikačního rozhraní brokera, aby službu zpřístupnil klientům
- Najít – Žadatel konzultuje zprostředkovatele, aby našel publikovanou webovou službu
- Svázat – S informacemi, které žadatel o webové službě získal od brokera (registru služeb), může webovou službu svázat nebo vyvolat.
Charakteristika webové služby
Webové služby mají následující speciální charakteristiky chování:
- Jsou založeny na XML – Webové služby používají XML k reprezentaci dat ve vrstvách reprezentace a přenosu dat. Použití XML eliminuje jakoukoli závislost na sítích, operačních systémech nebo platformách, protože XML je společný jazyk, kterému rozumí všichni.
- Volně vázané – Volně propojeno znamená, že klient a webová služba nejsou vzájemně vázáni, což znamená, že i když se webová služba v průběhu času změní, nemělo by se změnit způsob, jakým klient webovou službu volá. Přijetí volně propojené architektury vede k tomu, že softwarové systémy jsou lépe spravovatelné a umožňuje jednodušší integraci mezi různými systémy.
- Synchronous nebo asynchronní funkčnost - Synchronicity označuje vazbu klienta na provedení služby. V synchronních operacích bude klient ve skutečnosti čekat, až webová služba dokončí operaci. Příkladem toho je pravděpodobně scénář, ve kterém se provádí operace čtení a zápisu databáze. Pokud jsou data čtena z jedné databáze a následně zapisována do jiné, musí být operace prováděny postupně. Asynchronní operace umožňují klientovi vyvolat službu a poté paralelně provádět další funkce. Toto je jedna z běžných a pravděpodobně nejpreferovanějších technik pro zajištění toho, že ostatní služby nebudou zastaveny, když se provádí konkrétní operace.
- Schopnost podporovat vzdálená volání procedur (RPC) – Webové služby umožňují klientům vyvolávat procedury, funkce a metody na vzdálených objektech pomocí protokolu založeného na XML. Vzdálené procedury odhalují vstupní a výstupní parametry, které musí webová služba podporovat.
- Podporuje výměnu dokumentů – Jednou z klíčových výhod XML je jeho obecný způsob reprezentace nejen dat, ale také komplexních dokumentů. Tyto dokumenty mohou být tak jednoduché jako reprezentující aktuální adresu, nebo mohou být tak složité, jako reprezentovat celou knihu.