Č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.
Martin Cajthaml
IT ManagerCo 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ší:.
- 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.
- 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.
- 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).
Chcete uveřejnit náš článek?
Máte zájem některý z našich článků publikovat ve Vašem časopise, webu či kdekoliv jinde? Neváhejte nás kontaktovat!
Zažádat o svolení

Vaše názory