Články

Spíte dobře? Připravili jsme pro Vás články, které Vám nedají spát.

Co Vám přináší webové služby?

4. 7. 2006 | Martin Cajthaml

Všude se o nich píše, všichni o nich mluví, ale co vlastně jsou a jak přesně fungují webové služby? Jak probíhá komunikace a přenos dat? Pomohou nám v produktivitě, v marketingu, ušetří náklady nebo jsou jenom nálepka na krabici softwarového produktu? O tom všem bude tento článek.

Sdílejte článek: del.icio.us RSS
Martin Cajthaml

Martin Cajthaml

IT Manager
Své výjimečné programátorské a logické schopnosti spojené s vysokou produktivitou a spolehlivostí opírá Martin o bohaté zkušenosti získané během studia na ČVUT v Praze. K jejich dalšímu rozvoji přispěla práce na analýzách a tvorbě mnoha aplikací pro významné klienty SYMBIA.
Poslední články autora:
Co jsou webové služby?

Webové služby (web services) jsou vlastně systémem pro podporu součinné spolupráce počítačů v síti. Pod tím si asi málokdo představí něco konkrétního. V podstatě jde o komunikaci mezi 2 počítači, při níž má jeden funkci poskytovatele webové služby a druhý je klient. Poskytovatel (provider) služby poskytuje data specifikovaným způsobem na síti. Na druhé straně si klient (requestor) zjistí adresu služby (vyhledá v registru nebo má adresu přímo od poskytovatele), stáhne si popis služby a je ji následně schopen využívat. Data se přenášejí v XML formátu a díky němu jsou snadno rozšiřitelná.

Konkrétní aplikace

Aplikací je nepřeberné množství. Uvedu proto pouze ty nejčastější:.

  1. Máte firemní intranet a potřebujeme dostat některá data z něj do specializovaného produktu, který s daty pracuje. Typické propojení intranetu a dalšího produktu. Intranetový informační systém funguje jako poskytovatel služby.
  2. Máte fungující e-shop a chcete v něm nabízet produkty dalšího partnera. Není nic lehčího, než aby vám partner zpřístupnil data pomocí webových služeb a váš e-shop z ní data četl, případně prováděl určité operace.
  3. Tvoříte stolní (desktopovou) aplikaci a je potřeba do ní stahovat aktualizace a rozšíření. Poměrně rychle vytvoříte webovou službu poskytující aktualizace.

Takto by šlo pokračovat prakticky do nekonečna. Je vidět, že webové služby lze používat pro různé druhy komunikace. Omezením je jen představivost vývojáře.

Co vám webové služby umožní?

Použití webových služeb se vám může vrátit velmi rychle. Veškerá data publikovaná dobře navrženou webovou službou jste schopni okamžitě dodat obchodním partnerům. Nemusíte je přizpůsobovat pro každého zvlášť, nemusíte prostě dělat vůbec nic. Jenom poslat adresu služby. Webová služba je sama o sobě dost popisná a obecná. Také jde samozřejmě obecně použít i na procesy a metody.

Jako subjekt zpracovávající cizí data si také přijdete na své. Nechcete stále pracně zpracovávat dodávaná data v nekompatibilních formátech? Tomu u webových služeb odzvonilo. Je proto dobré tlačit na partnery, aby také přešli na webové služby. Ušetříte si tím značnou část nákladů.

Jak fungují webové služby?

V prvním odstavci jsme si stručně představili princip webových služeb. Každému musí být jasné, že proces publikace služby, její vyhledání a připojení musí být realizováno přesně definovanými protokoly. Ty lze rozdělit do 4 oblastí:

  • přenos služby,
  • XML komunikace (XML messaging),
  • popis služby (Service description) a
  • vyhledání služby (Service discovery).
Přenos služby

Přenos dat zajišťují standardní komunikační protokoly HTTP, SMTP, FTP a další.

XML komunikace

Veškerá komunikace mezi poskytovatelem a klientem probíhá v XML zprávách. Komunikaci zajišťují protokoly, které ho využívají. Nejčastěji jsou to XML-RPC, SOAP a REST. XML-RPC je starší protokol a SOAP je v podstatě jeho nástupce. SOAP pracuje na principu vzdáleného volání procedur (RPC). Poskytovatel tedy klientovi nabízí množinu funkcí nad daty. Klient pomocí XML tyto funkce vzdáleně volá. Uvedu například zjištění detailů auta z autobazaru:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/  ">
<soap:Body>
<getCarDetails xmlns="http://www.moje-pujcovna-aut.cz/ws  ">
<carID>123456</carID>
</getCarDetails>
</soap:Body>
</soap:Envelope>

Poskytovatel zpracuje tuto zprávu a vrátí detaily auta s ID 123456:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/  ">
<soap:Body>
<getCarDetailsResponse xmlns="http://www.moje-pujcovna-aut.cz/ws  ">
<getCarDetailsResult>
<carRegistrationPlate>ABC1234</productName>
<carID>123456</productID>
<description>Škoda Fabia 1.2</description>
<price>70000</price>
<year>2002</year>
</getCarDetailsResult>
</getCarDetailsResponse>
</soap:Body>
</soap:Envelope>

Takto tedy vypadají zprávy protokolu SOAP. Protokol REST není založen na RPC, ale na znalosti zdrojů a entit, kde každá má vlastní URI (V tomto případě například http://www.moje-pujcovna-aut.cz/ws/cars/123456  ).

Popis služby (service description)

Popis služby nám zajistí právě ony potřebné informace o rozhraní služby. Jedná se o popis komunikace, formát zpráv, názvy procedur, typy parametrů, vazby protokolu a další. Dnes se většinou používá jazyk WSDL (Web Services Description Language), který využívá SOAP pro komunikaci. Tento jazyk převzalo pod svá křídla W3C  a v současnosti se dokončuje verze 2.0.

Vyhledání služby

Pro vyhledání webové služby se běžně používá registr služeb, kam poskytovatel služby vloží její adresu a popis. Nejčastější implementací je UDDI   (Universal Description, Discovery and Integration). UDDI je otevřený obchodní registr založený na XML. Nabízí seznam služeb a kontaktů, v kterých je možno vyhledávat.

Požadujte webové služby

Pokud kupujete firemní informační systém nebo si ho necháváte vytvořit na zakázku, určitě požadujte možnost zpracování dat z webových služeb i jejich poskytování. Dnes se už jedná prakticky o standard a drtivá většina robustnějších CMS jej podporuje. I náš CMS OrangeGate II je připraven pro práci s webovými službami.

Přidání webových služeb do produktu by nemělo jeho cenu příliš navýšit. Existují vývojářské balíky ulehčující jejich realizaci pro většinu programovacích platforem (např. Java Web Services Developer Pack  , v platformě .NET jsou zahrnuty již v základu).

Sdílejte článek: del.icio.us RSS
Vaše názory