Co jsou webové služby? Architektura, typy, příklad

Obsah:

Anonim

Co je webová služba?

Webová služba je standardizované médium k šíření komunikace mezi klientskou a serverovou aplikací v síti WWW. Webová služba je softwarový modul určený k provádění určité sady úkolů.

  • Webové služby v cloudových výpočtech lze vyhledávat v síti a lze je podle toho také vyvolat.
  • Když je vyvolána, webová služba by byla schopna poskytnout funkce klientovi, který tuto webovou službu vyvolá.

V tomto kurzu webových služeb se naučíte základy webových služeb -

  • Jak WebServices fungují?
  • Proč potřebujete webovou službu?
  • Typ webové služby
  • Výhody webových služeb
  • Architektura webových služeb
  • Vlastnosti webové služby
  • Jak WebServices fungují?

    Jak fungují webové služby?

    Výše uvedený diagram ukazuje velmi zjednodušený pohled na to, jak by webová služba ve skutečnosti 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 takzvaných vzdálených volání procedur. Vzdálená volání procedur (RPC) jsou volání prováděná metodami, které jsou hostovány příslušnou webovou službou.

    Například Amazon poskytuje webovou službu, která poskytuje ceny produktů prodávaných online přes amazon.com. Front-endová nebo prezentační vrstva může být v .Net nebo Java, ale jeden programovací jazyk by měl schopnost komunikovat s webovou službou.

    Hlavní součástí návrhu webové služby jsou data přenášená mezi klientem a serverem, a to XML. XML (Extensible markup language) je protějškem HTML a snadno srozumitelný mezilehlý jazyk, kterému rozumí mnoho programovacích jazyků.

    Takže když si aplikace navzájem povídají, ve skutečnosti mluví v XML. To poskytuje společnou platformu pro vzájemnou 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 se odesílají přes normální protokol HTTP. Data odesílaná 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, lze klientskou aplikaci volající webovou službu psát v libovolném programovacím jazyce.

    Proč potřebujete webovou službu?

    Moderní obchodní aplikace používají k vývoji webových aplikací různé programovací platformy. Některé aplikace mohou být vyvinuty v Javě, jiné v .Net, jiné v Angular JS, Node.js atd.

    Tyto heterogenní aplikace nejčastěji potřebují nějakou komunikaci, aby mezi nimi došlo. Jelikož jsou vytvářeny pomocí různých vývojových jazyků, je opravdu obtížné zajistit přesnou komunikaci mezi aplikacemi.

    Tady přicházejí webové služby. Webové služby poskytují společnou platformu, která umožňuje více aplikacím postaveným na různých programovacích jazycích schopnost vzájemně komunikovat.

    Typ webové služby

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

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

    Aby byla webová služba plně funkční, je třeba zavést určité komponenty. Tyto komponenty musí být přítomny bez ohledu na to, jaký vývojový jazyk se používá 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 přenosu. SOAP je založen na přenosu dat XML jako zpráv SOAP. Každá zpráva má něco, co se nazývá dokument XML. Pouze struktura dokumentu XML sleduje určitý vzor, ​​ale ne obsah. Nejlepší součástí webových služeb a protokolu SOAP je to, že jsou všechny odesílány prostřednictvím protokolu HTTP, což je standardní webový protokol.

    Tady je to, z čeho se skládá SOAP zpráva

    • Každý dokument SOAP musí mít kořenový prvek známý jako prvek . 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 zásadě informace, které sdělují dokumentu XML, na kterého klienta je třeba jej odeslat.
    • Tělo bude obsahovat skutečnou zprávu.

    Níže uvedený diagram ukazuje jednoduchý příklad komunikace přes SOAP.

    Protokol SOAP

    V tomto tutoriálu budeme podrobně diskutovat o SOAP.

    WSDL (jazyk popisu webových služeb)

    Webovou službu nelze použít, pokud ji nelze najít . Klient vyvolávající webovou službu by měl vědět, kde se webová služba skutečně nachází.

    Zadruhé, 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 jazyk popisu webových služeb. Soubor WSDL je opět soubor založený na XML, který v zásadě řekne klientské aplikaci, co dělá webová služba. Použitím dokumentu WSDL by klientská aplikace dokázala 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é služby souboru WSDL.

    
    
    
    

    Důležité aspekty, které je třeba zmínit o výše uvedených příkladech deklarací WSDL webových služeb, jsou následující:

    1. - 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 s názvem "TutorialID", který je typu řetězce. Podobně operace TutorialResponse obsahuje prvek s názvem "TutorialName", který je také typovým řetězcem.
    2. - Toto ve skutečnosti popisuje operaci, kterou může provést webová služba, která se v našem případě nazývá Tutorial. Tato operace může trvat 2 zprávy; jeden je vstupní zpráva a druhý je výstupní zpráva.
    3. - Tento prvek obsahuje použitý protokol. V našem případě tedy definujeme, že bude používat http ( http://schemas.xmlsoap.org/soap/http ). Zadáme také další podrobnosti pro tělo operace, jako je jmenný prostor a to, zda má být zpráva zakódována.

    V tomto tutoriálu se budeme podrobně zabývat „WDSL“.

    Univerzální popis, zjišťování a integrace (UDDI)

    UDDI je standard pro popis, publikování a objevování webových služeb poskytovaných konkrétním poskytovatelem služeb. Poskytuje specifikaci, která pomáhá při hostování informací o webových službách.

    Nyní jsme diskutovali v předchozím tématu o WSDL a o tom, jak obsahuje informace o tom, co webová služba vlastně dělá. Jak ale může klientská aplikace vyhledat soubor WSDL, aby pochopila různé operace nabízené webovou službou? UDDI je tedy odpovědí na tuto otázku a poskytuje úložiště, ve kterém mohou být hostovány soubory WSDL. Klientská aplikace bude mít tedy úplný přístup k UDDI, který funguje jako databáze obsahující všechny soubory WSDL.

    Stejně jako je v telefonním seznamu uvedeno jméno, adresa a telefonní číslo konkrétní osoby, bude mít registr UDDI stejně důležité informace pro webovou službu . Aby klientská aplikace věděla, kde ji lze najít.

    Výhody webových služeb

    Už chápeme, proč vůbec vznikly webové služby, které měly poskytovat platformu, která by umožňovala vzájemné hovory různých aplikací.

    Podívejme se ale na seznam výhod webových služeb, proč je důležité používat webové služby.

    1. Vystavení obchodních funkcí v síti - Webová služba je jednotka spravovaného kódu, která poskytuje nějaký 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 současné 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 podle potřeby poskytovat potřebné funkce.

    2. Interoperabilita mezi aplikacemi - Webové služby umožňují různým aplikacím mluvit mezi sebou a sdílet data a služby mezi sebou. Všechny typy aplikací mohou spolu komunikovat. Takže místo psaní konkrétního kódu, kterému mohou porozumět pouze konkrétní aplikace, můžete nyní napsat obecný kód, kterému budou rozumět všechny aplikace

    3. Standardizovaný protokol, kterému rozumí každý - webové služby používají pro komunikaci standardizovaný průmyslový protokol. Všechny čtyři vrstvy (Transport služeb, Zprávy XML, Popis služby a Zjišťování služeb) používají v zásobníku protokolů webových služeb dobře definované protokoly.

    4. Snížení nákladů na komunikaci - Webové služby používají protokol SOAP přes protokol HTTP, takže k implementaci webových služeb můžete použít stávající levný internet.

    Architektura webových služeb

    Každý rámec potřebuje nějakou architekturu, aby se ujistil, že celý rámec funguje podle potřeby, podobně jako ve webových službách. Web Services architektury se skládá ze tří odlišných rolí, jak je uvedeno níže:

    1. Poskytovatel - Poskytovatel vytvoří webovou službu a zpřístupní ji klientské aplikaci, která ji chce používat.
    2. Žadatele - žadatel není nic jiného než klientská aplikace, která potřebuje kontaktovat webové služby. Klientskou aplikací může být .Net, Java nebo jakákoli jiná jazyková aplikace, která hledá nějakou funkci prostřednictvím webové služby.
    3. Broker - 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 poskytovatel služby, žadatel o službu a registr služby vzájemně spolupracují.

    Architektura webových služeb
    1. Publikovat - poskytovatel informuje zprostředkovatele (registr služeb) o existenci webové služby pomocí publikovacího rozhraní zprostředkovatele k zpřístupnění služby klientům
    2. Najít - Žadatel konzultuje makléře s vyhledáním publikované webové služby
    3. Vázat - S informacemi o webové službě, které získal od makléře (registr služeb), je žadatel schopen webovou službu svázat nebo vyvolat.

    Vlastnosti webové služby

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

    1. Jsou založeny na XML - Web Services používá XML k reprezentaci dat ve vrstvách reprezentace a přenosu dat. Použití XML eliminuje jakékoli závislosti na síti, operačním systému nebo platformě, protože XML je společný jazyk, kterému rozumí všichni.

    2. Loosely Coupled - Loosely coupled znamená, že klient a webová služba nejsou navzájem vázáni, což znamená, že i když se webová služba v průběhu času mění, neměla by měnit způsob, jakým klient volá webovou službu. Přijetí volně vázané architektury má tendenci dělat softwarové systémy lépe ovladatelnými a umožňuje jednodušší integraci mezi různými systémy.

    3. Synchronní nebo asynchronní funkce - Synchronicita označuje vazbu klienta k provedení služby. V synchronních operacích bude klient skutečně čekat, až webová služba dokončí operaci. Příkladem toho je pravděpodobně scénář, při kterém se provádí operace čtení a zápisu do databáze. Pokud se data čtou z jedné databáze a následně se zapisují do jiné, pak se operace musí provádět postupně. Asynchronní operace umožňují klientovi vyvolat službu a poté paralelně spouštět další funkce. Jedná se o jednu z běžných a pravděpodobně nejpreferovanějších technik zajišťujících, že při provádění konkrétní operace nebudou zastaveny další služby.

    4. Schopnost podporovat vzdálená volání procedur (RPC) - webové služby umožňují klientům vyvolat procedury, funkce a metody na vzdálených objektech pomocí protokolu založeného na XML. Vzdálené procedury vystavují 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é složitých dokumentů. Tyto dokumenty mohou být stejně jednoduché jako představující aktuální adresu, nebo mohou být stejně složité jako představující celou knihu.