Co jsou webové služby? Architecture, Types, Example

⚡ Chytré shrnutí

Webové služby poskytují standardizované médium pro komunikaci klientských a serverových aplikací přes World Wide Web. Tento zdroj vysvětluje, jak webové služby fungují, jejich typy SOAP a RESTful, komponenty WSDL a UDDI, architektonické role a klíčové charakteristiky.

  • 🌐 Základní definice: Webová služba je samostatný softwarový modul, který provádí definovaný úkol a komunikuje mezi klientem a serverem přes web.
  • 📨 XML zprávy: Webové služby si vyměňují data ve formátu XML, obvykle zabaleném do zpráv SOAP odesílaných přes standardní HTTP, takže je může používat jakýkoli jazyk.
  • 🧱 Klíčové komponenty: Funkční webová služba se spoléhá na SOAP pro zasílání zpráv, WSDL pro popis služby a UDDI pro její publikování a vyhledávání.
  • 👥 ArchiRole v teorii: Architektura definuje tři role – Poskytovatele, Žadatele a Brokera – které publikují, vyhledávají a vážou služby prostřednictvím registru.
  • ⚙️ Základní vlastnosti: Webové služby jsou založeny na XML, volně propojené, podporují synchronní i asynchronní volání, umožňují RPC a bohatou výměnu dokumentů.

Webové služby Architecture

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?

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 tzv. vzdálených volání procedur. Vzdálená volání procedur (RPC) jsou volání metod hostovaných 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 kterýkoli z programovacích 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 (Extensible Markup Language) je protějškem HTML a snadno srozumitelným mezijazykem, kterému rozumí mnoho programovacích jazyků.

Takže když spolu aplikace komunikují, ve skutečnosti komunikují v XML. To poskytuje společnou platformu pro komunikaci aplikací vyvinutých v různých programovacích jazycích.

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 některé další v Angular JS, Node.js atd.

Tyto heterogenní aplikace velmi často potřebují, aby mezi nimi probíhala nějaká komunikace. Vzhledem k tomu, že jsou vytvořeny s použitím různých vývojových jazyků, je velmi 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.

Typy webových služeb

Existují hlavně dva typy webových služeb:

  1. SOAP webové služby.
  2. RESTful webové služby.

Aby byla webová služba plně funkční, musí být na svém místě určité komponenty. Tyto komponenty musí být přítomny bez ohledu na to, jaký vývojový jazyk je k programování webové služby použit. Pojďme se na tyto komponenty podívat 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 XML dat jako SOAP zpráv. Každá zpráva má něco, co je známé jako XML dokument. Pouze struktura XML dokumentu se řídí určitým vzorem, nikoli však obsah. Nejlepší na webových službách a SOAP je, že vše je odesíláno přes HTTP, což je standardní webový protokol.

Zde je seznam obsahu SOAP zprávy:

  • 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.
  • Záhlaví obsahuje směrovací data, což jsou v podstatě informace, které sdělují XML dokumentu, 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.

Protokol SOAP

V tomto budeme podrobně probírat SOAP konzultace.

WSDL (Webové služby Descriptionský jazyk)

Webovou službu nelze použít, pokud ji nelze nalézt. Klient, který volá webovou službu, 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 vlastně dělá, aby mohla vyvolat správnou webovou službu. To se provádí pomocí WSDL, známého jako webové služby. DescriptJazyk ion. Soubor WSDL je opět soubor založený na XML, který v podstatě sděluje 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í:

  1. – Parametr message 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. Ve výše uvedeném příkladu webových služeb tedy máme 2 zprávy, které si webová služba a klientská aplikace mohou vyměňovat: jedna je operace „TutorialRequest“ a druhá je operace „TutorialResponse“. TutorialRequest obsahuje prvek s názvem „TutorialID“, který je typu string. Podobně operace TutorialResponse obsahuje prvek s názvem „TutorialName“, který je také typu string.
  2. – Toto ve skutečnosti popisuje operaci, kterou může webová služba provádět, v našem případě se nazývá Tutoriál. Tato operace může přijímat 2 zprávy: jednu vstupní zprávu a druhou výstupní zprávu.
  3. – Tento element obsahuje použitý protokol. V našem případě jej tedy definujeme pro použití HTTP (http://schemas.xmlsoap.org/soap/http). Také specifikujeme další podrobnosti pro tělo operace, jako je jmenný prostor a zda má být zpráva kódována.

V tomto dokumentu se podrobně budeme zabývat „WSDL“. 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, tak i registr UDDI obsahuje relevantní informace pro webovou službu., aby klientská aplikace věděla, kde jej lze nalézt.

Výhody webových služeb

Už chápeme, proč webové služby vůbec vznikly, a to proto, aby poskytly platformu, která by umožňovala různým aplikacím vzájemnou komunikaci. Podívejme se ale na seznam výhod webových služeb, abychom zjistili, proč je důležité je používat.

  1. Odhalení podnikových funkcí v síti – Webová služba je jednotka spravovaného kódu, která poskytuje klientským aplikacím nebo koncovým uživatelům nějakou funkcionalitu. Tuto funkcionalitu lze vyvolat přes protokol HTTP, což znamená, že ji lze vyvolat i přes internet. V dnešní době jsou všechny aplikace na internetu, což účel webových služeb činí 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.
  2. Interoperabilita mezi aplikacemi – Webové služby umožňují různým aplikacím vzájemně komunikovat a sdílet mezi sebou data a služby. Všechny typy aplikací spolu mohou komunikovat. Takže místo psaní specifického kódu, kterému rozumí pouze konkrétní aplikace, nyní můžete psát obecný kód, kterému rozumí všechny aplikace.
  3. Standardizovaný protokol, kterému každý rozumí – Webové služby používají pro komunikaci standardizovaný průmyslový protokol. Všechny čtyři vrstvy (Service Transport, XML Messaging, Service Transport…) DescriptVrstvy ion a Service Discovery) používají dobře definované protokoly v protokolovém zásobníku webových služeb.
  4. 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 funguje podle očekávání. Podobně i u webových služeb Webové služby Architecture skládá se ze tří odlišných rolí, jak je uvedeno níže:

  1. Provider – Poskytovatel vytvoří webovou službu a zpřístupní ji klientským aplikacím, které ji chtějí používat.
  2. Žadatel – Žadatel není nic jiného než klientská aplikace, která potřebuje kontaktovat webovou službu. Klientskou aplikací může být .Net, Java, nebo jakoukoli jinou jazykovou aplikaci, která hledá nějakou funkcionalitu prostřednictvím webové služby.
  3. makléř – Broker není nic jiného než aplikace, která poskytuje přístup k UDDI. UDDI, jak bylo popsáno v předchozím tématu, umožňuje klientské aplikaci najít webovou službu.

Níže uvedený diagram znázorňuje, jak spolu poskytovatel služeb, žadatel služeb a registr služeb interagují.

Webové služby Architecture

  1. 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.
  2. Najít – Žadatel se obrátí na brokera, aby našel publikovanou webovou službu.
  3. Svázat – S informacemi získanými od brokera (registru služeb) o webové službě je žadatel schopen webovou službu navázat neboli vyvolat.

Charakteristiky webových služeb

Webové služby mají následující speciální charakteristiky chování:

  1. Jsou založeny na XML – Webové služby používají XML k reprezentaci dat na úrovni reprezentace a přenosu dat. Použití XML eliminuje jakoukoli závislost na síti, operačním systému nebo platformě, protože XML je společný jazyk, kterému rozumí všichni.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

Nejčastější dotazy

Modely umělé inteligence jsou běžně dodávány jako webové služby, takže aplikace odesílají data přes HTTP a přijímají predikce v XML nebo JSON. Umělá inteligence může také monitorovat provoz webových služeb, detekovat anomálie a automaticky generovat klientský kód, což integraci urychluje a zefektivňuje.

Ano. Nástroje umělé inteligence mohou generovat definice WSDL, navrhovat struktury koncových bodů, vytvářet testovací případy a ověřovat odpovědi SOAP nebo REST. Vývojáři by i tak měli zkontrolovat výstup, aby se ujistili, že…tracPřed nasazením se ujistěte, že jsou technické specifikace a bezpečnostní pravidla správná.

SOAP je striktní protokol pro zasílání zpráv založený na XML s vestavěnými standardy pro zabezpečení a transakce. REST je architektonický styl, který používá jednoduché metody HTTP a často JSON. SOAP je vhodný pro formální podnikové systémy, zatímco REST je jednodušší a populárnější pro webová API.

WSDL (Webové služby Descript(Webový jazyk) je soubor XML, který popisuje, co webová služba dělá, kde se nachází a jak ji volat. Klientské aplikace čtou WSDL, aby pochopily dostupné operace a formáty zpráv.

Shrňte tento příspěvek takto: