O Web Services se v souvislosti s internetem mluvφ stßle Φast∞ji. Jde skuteΦn∞ o tak revoluΦnφ technologii, kterß zm∞nφ internet, nebo jen o dopl≥kovou slu₧bu, kterß usnadnφ programßtor∙m prßci p°i vytvß°enφ nov²ch aplikacφ?
Jak ji₧ nßzev Φlßnku sßm napovφdß, Web Services jsou novou internetovou technologiφ, kterß slou₧φ pro tvorbu tzv. distribuovan²ch aplikacφ. Jde o aplikace, kterΘ pro svou Φinnost vyu₧φvajφ v²poΦetnφho v²konu nebo dat z jin²ch aplikacφ, je₧ nemusφ nutn∞ pracovat na stejnΘm serveru. Asi nejznßm∞jÜφm p°φkladem distribuovanΘ aplikace na internetu byl projekt hledßnφ mimozemsk²ch civilizacφ, kter² ji₧ n∞kolik let probφhß na University of California v Berkeley pod nßzvem SETI@Home. Jde o Üet°iΦ obrazovky, kter² vyu₧φvß voln² v²poΦetnφ v²kon vaÜeho procesoru k anal²ze rßdiov²ch signßl∙ p°ichßzejφcφch z kosmu. Ze serveru na kalifornskΘ univerzit∞ si v₧dy stßhne hrubß data, ta ve volnΘm Φase zanalyzuje a v²sledky posφlß zp∞t na centrßlnφ server do Berkeley.
Trocha historie
WebovΘ slu₧by nejsou prvnφm pokusem o usnadn∞nφ tvorby distribuovan²ch aplikacφ. Pro podporu dynamickΘ v²m∞ny dat mezi aplikacemi bylo v minulosti vytvo°eno hned n∞kolik technologiφ - CORBA urΦenß p°edevÜφm pro Unix, DCOM od firmy Microsoft pro platformu Windows nebo technologie Java RMI od firmy Sun Microsystems. Ka₧dß z technologiφ se ujala a vytvo°ila si okruh sv²ch u₧ivatel∙. Tvorba distribuovan²ch aplikacφ vÜak byla stßle pom∞rn∞ slo₧itß. èlo o °eÜenφ jednotliv²ch dodavatel∙, nikoliv obecn² standard akceptovan² vÜemi.
K p°elomovΘmu okam₧iku doÜlo v roce 1998, kdy konsorcium W3C schvßlilo XML 1.0, prvnφ verzi novΘho standardu pro v²m∞nu dat prost°ednictvφm internetu. V prosinci 1999 se seÜel Microsoft s IBM a prezentoval prvnφ verzi protokolu SOAP, zßkladnφho stavebnφho kamenu webov²ch slu₧eb, vytvo°enΘho na jßd°e standardu XML. SpoleΦnosti IBM se myÜlenka univerzßlnφho protokolu SOAP lφbila a spoleΦn∞ s Microsoftem pracovala na vytvo°enφ novΘ verze 1.1. Tyto spoleΦnosti vÜak nebyly jedin²mi, kdo na podobnΘ technologii pracoval. Ve stejnou dobu vznikal protokol WDDX od firmy Allaire, HP pracoval na svΘm vlastnφm °eÜenφ pod nßzvem E-Speak. Na ja°e 2000 firmy Microsoft a IBM oficißln∞ p°edstavily technologii Web Services a doporuΦily ji konsorciu W3C ke standardizaci. Technologie zaΦala nabφrat na sφle a obecnΘ podpo°e v oboru informaΦnφch technologiφ.
Jak to v praxi funguje
Uplatn∞nφ webov²ch slu₧eb je opravdu ÜirokΘ. V²born∞ se hodφ nap°φklad pro tvorbu webov²ch server∙. Uka₧me si to na p°φkladu nßvÜt∞vy prodejnφho serveru: Martina si chce prost°ednictvφm internetu koupit knihu Alchymista od Paula Coelha. NapφÜe adresu kni₧nφho serveru, prohledß katalog a zobrazφ si detailnφ informace o knize vΦetn∞ ceny, typu obalu a vydavatele. Knihu vlo₧φ do "nßkupnφho koÜφku". B∞hem tohoto procesu je v pozadφ volßna webovß slu₧ba distributora knih, kterß zjistφ, zda je dan² titul na sklad∞ a jak dlouho bude trvat jeho dodßnφ poÜtou. Martina klepne na odkaz "Zaplatit" a p°esouvß se do modulu "Pokladna". Vypl≥uje svou poÜtovnφ adresu, zp∙sob dodßnφ a Φφslo svΘ kreditnφ karty. Kni₧nφ server volß webovou slu₧bu finanΦnφ instituce, kterß ov∞°uje platnost kreditnφ karty a mo₧nost realizace danΘ transakce. DalÜφ dotaz sm∞°uje na webovou slu₧bu zßsilkovΘ firmy. Prodejnφ server zasφlß pot°ebnΘ ·daje (hmotnost a velikost knihy, po₧adovanou dobu doruΦenφ) a zp∞t zφskßvß p°esnou cenu poÜtovnΘho. Martin∞ se v prohlφ₧eΦi objevuje potvrzujφcφ strßnka s nßzvem nakupovanΘho zbo₧φ, jeho ceny a poÜtovnΘho. Stiskne tlaΦφtko "Potvrdit" a transakce je ·sp∞Ün∞ zrealizovßna. Ani₧ o tom u₧ivatel kni₧nφho serveru v∞d∞l, doÜlo b∞hem nßkupnφho procesu k volßnφ t°φ r∙zn²ch webov²ch slu₧eb. Martina se p°itom dozv∞d∞la, ₧e je kniha na sklad∞, k zaplacenφ m∙₧e pou₧φt svou kreditnφ kartu a poÜtovnΘ Φinφ 46,50 KΦ. To vÜe, ani₧ provozovatel kni₧nφho serveru musel tyto funkce nßroΦn∞ implementovat do svΘho vlastnφho systΘmu.
Architektura webov²ch slu₧eb
Podφvejme se nynφ, jak cel² proces funguje na ·rovni jednotliv²ch protokol∙.
Klientskß aplikace (v naÜem p°φpad∞ kni₧nφ server) se p°ihlßsφ na server webovΘ slu₧by (nap°φklad distributora knih). Server ov∞°φ, zda je klientskß aplikace oprßvn∞na k p°φstupu. Klient formuluje po₧adavek (ISBN knihy), zformßtuje jej do podoby SOAP dotazu a prost°ednictvφm p°enosovΘho protokolu HTTP jej zasφlß webovΘ slu₧b∞. Ta zpracuje p°ijat² dotaz, vygeneruje v²sledek ("Kniha je na sklad∞") a ten zasφlß zp∞t klientovi. To, jakΘ funkce webovß slu₧ba umφ a jakΘ parametry pro svou sprßvnou Φinnost pot°ebuje, ji₧ klient vφ na zßklad∞ souboru WSDL, jakΘsi standardizovanΘ dokumentace webovΘ slu₧by. Protokol SOAP nenφ nikterak slo₧it². Jde o obdobu formßtovacφho jazyka HTML. AvÜak zatφmco HTML je urΦen pro prezentaci dat v okn∞ prohlφ₧eΦe, SOAP obsahuje p°edevÜφm dotazy a data. Oba protokoly vÜak vyu₧φvajφ p°enosov² protokol HTTP, tak₧e webov² server a webovß slu₧ba mohou spoleΦn∞ b∞₧et na jednom serveru. A nejen to. Jak ukazuje schΘma Φ. 2, ob∞ technologie mohou pracovat se stejnou datovou (prvnφ vrstva) a programovou zßkladnou (druhß vrstva), m∞nφ se pouze zp∙sob prezentace dat navenek.
Zßv∞r
Zp∙sobφ webovΘ slu₧by novou internetovou revoluci? Pravd∞podobn∞ ne. AvÜak dφky ÜirokΘ podpo°e a standardizaci (HTTP, SOAP, WSDL, UDDI) mohou v²razn²m zp∙sobem usnadnit prßci programßtor∙m p°i tvorb∞ nov²ch aplikacφ. NovΘ webovΘ servery budou vznikat rychleji, za ni₧Üφch nßklad∙, ne₧ tomu bylo doposud, a budou obsahovat aktußln∞jÜφ informace.
Martin Dvo°ßΦek, autor@chip.cz
Souvisejφcφ linky na Internetu
http://www.w3.org/2002/ws/ Web Services na W3C
http://www.w3.org/TR/wsdl WSDL
http://www.uddi.org P°ehled webov²ch slu₧eb dostupn²ch na internetu
http://dotnet.iol.cz WebovΘ slu₧by na IOL
http://setiathome.berkeley.edu SETI@Home
SlovnφΦek pojm∙
CORBA |
COMMON OBJECT REQUEST BROKER ARCHITECTURE Architektura pro tvorbu distribuovan²ch aplikacφ pracujφcφch pod operaΦnφm systΘmem Unix.
DCOM |
DISTRIBUTED COMPONENT OBJECT MODEL Architektura pro tvorbu distribuovan²ch aplikacφ na platform∞ Microsoft Windows.
RMI |
REMOTE METHOD INVOCATION Architektura pro tvorbu distribuovan²ch aplikacφ v Jav∞. Dφky vlastnostem Javy je tato technologie nezßvislß na typu operaΦnφho systΘmu.
SOAP |
SIMPLE OBJECT ACCESS PROTOCOL Protokol, prost°ednictvφm kterΘho spolu komunikuje aplikace (klient) a server (sprßvce webovΘ slu₧by).
UDDI |
UNIVERSAL DESCRIPTION, DISCOVERY, AND INTEGRATION Protokol pro vyhledßvßnφ webov²ch slu₧eb. Pracuje na podobnΘm principu jako vyhledßvacφ servery webov²ch strßnek.
WSDL |
WEB SERVICES DESCRIPTION LANGUAGE Jazyk pou₧φvan² pro popis funkcφ webovΘ slu₧by. WSDL soubory jsou napsßny ve formßtu XML.
W3C |
WORLD WIDE WEB CONSORTIUM Konsorcium zab²vajφcφ se standardizacφ technologiφ (protokol∙) pou₧φvan²ch na internetu.
XML |
EXTENSIBLE MARKUP LANGUAGE Obecn² standard pro v²m∞nu dat.