facebook LinkedIN LinkedIN - follow
IT SYSTEM 9/2003

Webové služby - třetí generace internetu

Ing. Pavel Horovčák, CSc.





Webové služby (WS - web services) představují posun od velkých monolitních struktur aplikací k modelu založenému na komponentech. Aplikace jsou v rámci tohoto modelu sestavené z malých stavebních prvků - jednotlivých funkcí. Pokud jsou tyto funkce umístěné na různých internetových serverech, označují se jako webové služby. Takto sestavené aplikace je možné snadno vytvořit, dynamicky modifikovat a měnit.

Webový model programování byl přijat mnohem rychleji a v podstatně širším rozsahu než jakýkoli jiný přístup k tvorbě distribuovaných aplikací. Fenomenální úspěch webového modelu je možné přisoudit jedné z jeho klíčových charakteristik - je totiž mnohem volněji vázaný než tradiční modely distribuovaného programování. Interakce mezi webovým klientem a serverem je jednoduchá: navzájem si vyměňují zprávy, které obsahují údaje typu MIME (Multipurpose Internet Mail Extensions). Sémantika zprávy může být modifikovaná pomocí hlavičky nebo hlaviček (headers). Destinace (cíl) zprávy je specifikovaná nepřímo pomocí URL (Uniform Resource Locator). Tato úroveň indirekce může být využita k implementaci vyvážení zatížení (load balancing), sledování spojení (session tracking) a jiných funkcí.

Webová služba je souhrnný název pro skupinu technologií a metod, které spojují informační systémy prostřednictvím internetu a umožňují jim spolu efektivně komunikovat. Webové služby s použitím XML (eXtended Markup Language) pro výměnu dat dovolují spojit různé aplikace bez ohledu na počítačovou platformu, použité programovací jazyky a síťové protokoly (a provozovat tak například e-business). Základní webové služby se dají chápat jako pay-per-view využití aplikací.


Obr. 1: Vývoj www technologií

Vznik webových služeb
Internet se ve svém vývoji dostává do třetí etapy či generace. První generaci představují statické (HTML) stránky určené k přenosu informací směrem od serveru ke klientovi. Jako druhá generace se označují interaktivní stránky s podporou obousměrné komunikace klient - server. V obou případech je příjemcem informace člověk. Webové služby jsou dominantním představitelem třetí generace internetu (programování webu), příjemcem informace se může stát stroj a člověk hodnotí výsledky vzájemné webové komunikace počítačů.

Technologie webových služeb není ve světě počítačové vědy revolucí, ale evolucí starých koncepcí vývoje softwaru na bázi komponentů [6]. Úsilí o zvýšení efektivnosti programování vedlo v 80. letech minulého století ke vzniku objektově orientovaného programování. Definování a opakované využívání objektů a využívání tříd postupně pronikalo do všech programovacích jazyků, vývojových prostředí a technologií, někde ve větší, jinde v menší míře. Nejdříve se využívaly knihovny tříd, později dynamicky připojené knihovny. V první polovině 90. let tento vývoj vyvrcholil tvorbou a využíváním komponentů - objektů COM (Component Object Model). Ve druhé polovině 90. let se v podobě DCOM (distributed COM) podařilo překročit hranici jednoho počítače, čímž byla vytvořena možnost, aby program běžící na jednom počítači v síťovém prostředí využíval třídy umístěné na jiném počítači. Webové služby jsou pokračováním této expanze za hranice počítače ("rozpínání") - umožňují překročení hranice jedné platformy, programovacího jazyka a dokonce i síťového protokolu [2]. Vývoj internetu založený na postupné inovaci jednotlivých standardů znázorňuje obr. 1 [7].

Vzájemná komunikace webových služeb je založená na dodržení tří základních standardů. Jsou jimi normy pro opis webových služeb WSDL, protokol vzájemné komunikace objektů SOAP založený na textovém formátu XML a seznam webových služeb UDDI.


Obr. 2: Architektura orientovaná na služby

Definice a standardy
Webová služba je softwarový systém identifikovaný URI (Uniform Resource Identifier). Jeho rozhraní a vazby jsou definované a popsané pomocí XML. Definice může být objevená jinými softwarovými systémy. Tyto systémy jsou pak schopny vzájemně působit s webovou službou způsobem předepsaným v její definici a s použitím zpráv založených na XML a přepravovaných pomocí internetových protokolů [3].

Webová služba je softwarová aplikace identifikovaná prostřednictvím URI, jejíž rozhraní a vazby je možno definovat, popsat a vyhledávat jako artefakty XML. Podporuje přímou interakci s jinými softwarovými aplikacemi prostřednictvím zpráv zapsaných v jazyce XML a přenášených protokoly internetu [2].

Webová služba jako souhrn nově nastupujících norem, které popisují aplikační architekturu zaměřenou na služby a založenou na komponentech, je vybudovaná na principu architektury orientované na služby SOA (Service-Oriented Architecture) [6], znázorněném na obr. 2.

WSDL (Web Services Description Language) je XML struktura popisující síťové služby jako soustavu koncových bodů pracujících se zprávami obsahujícími buď dokumentově-orientované, nebo procedurálně-orientované informace [4]. Operace a zprávy jsou popsané abstraktně, potom se váží na konkrétní síťový protokol a formát zprávy, aby vytvořily koncový bod. Související koncové body jsou spojené do abstraktních koncových bodů (služeb). WSDL je schopný umožnit popis koncových bodů a jejich zpráv bez ohledu na formáty zpráv nebo síťové protokoly, pomocí kterých se komunikace uskutečňuje. V současnosti je reálné použití WSDL ve spojení se SOAP 1.1, HTTP (HyperText Transfer Protocol) GET/POST a MIME (Multipurpose Internet Mail Extensions).

SOAP (Simple Object Access Protocol) je lehký (lightweight) protokol určený k výměně informací v decentralizovaném distribuovaném prostředí [1]. Je to protokol založený na standardu XML a skládá se ze tří částí: z obálky, která definuje strukturu popisující, co je ve zprávě a jak se má zpráva zpracovat, ze souboru pravidel kódování vyjadřujících instance (výskyt) údajových typů charakteristických pro určitou aplikaci a z konvence pro reprezentaci vzdáleného volání procedur a odpovědí. SOAP může být používaný teoreticky v kombinaci s libovolnými protokoly. V současnosti je reálné použití SOAP ve spojení s protokolem HTTP a se systémem rozšíření HTTP [7].

SOAP poskytuje jednoduchý mechanizmus výměny strukturovaných a typově definovaných informací mezi koncovými body s využitím XML v decentralizovaném distribuovaném prostředí. Definuje jednoduchý mechanizmus na vyjádření sémantiky aplikace poskytnutím modulárního obálkového modelu a kódovacího mechanizmu pro kódování údajů v rámci modulu. To umožňuje využití SOAP ve velmi různorodých systémech - od výměny zpráv až po RPC (Remote Procedure Call). Struktura SOAP dokumentu je znázorněná na obr. 3.


Obr. 3: Struktura SOAP dokumentu

Princip volání metod vzdálených objektů s využitím protokolu HTTP:

1. Klient SOAP (nemusí to být tradiční klient, může se jednat o web server, webovou aplikaci, ale také součást desktopu) vytváří dokument XML s údaji pro vzdálené volání metody objektu na externím systému. Vytvoří požadavek na server SOAP, zabalí XML dokument do obálky SOAP a vysílá ho jako požadavek HTTP POST.

2. Celá obálka je odeslaná klasickým připojením protokolu HTTP.

3. Příjmová aplikace - server SOAP - dostane zprávu. Touto aplikací je obyčejně web server, který analyzuje došlou obálku, zavolá příslušný objekt a odevzdá mu přitom potřebné parametry, které přišly v dokumentu SOAP.

4. Objekt vykoná požadovanou operaci a vrátí získanou informaci serveru SOAP. Server SOAP zabalí odpověď do obálky SOAP.

5. Obálka je odeslaná zpět do počítače, odkud přišel požadavek. SOAP dokument je uschovaný pod hlavičkou HTTP.

6. Klient SOAP čeká na odpověď objektu. Když přijde, klient odstraní obálku a odešle dokument té aplikaci, která ho potřebuje.

UDDI je veřejný registr určený na strukturované uchování informace o firmách a jejich službách. Prostřednictvím UDDI je možné publikovat a zjišťovat informace o technickém interface služeb firmy. Prostřednictvím série XML API (Application Programming Interface) volání na bázi SOAP je možné být v interakci s UDDI jak v čase návrhu, tak i během uskutečňování aplikace za účelem získání technických údajů, aby tyto webové služby mohly být vyvolané a využité. UDDI takto slouží jako infrastruktura softwarového prostředí založeného na webových službách. V souvislosti s tisíci - možná miliony - webových služeb se objevuje řada složitých problémů a otázek, jako jsou:

. Jak se webové služby vyhledávají?
. Jak je tato informace kategorizována smysluplným způsobem?
. Jaké jsou důsledky pro lokalizaci?
. Jaké jsou důsledky pro proprietární technologie? Jak je možné garantovat interoperabilitu ve vyhledávacím mechanizmu?
. Jak je možné spolupracovat s takovým vyhledávacím mechanizmem v run time, když je aplikace závislá na webových službách?

UDDI je konstruovaný jako registr, ne jako sklad. Registr odesílá (přesměruje) uživatele ke zdroji, zatímco sklad představuje aktuální zdroj informací.

UDDI má tři části: jedna uvádí kontaktní informace o firmě, která vytvořila danou webovou službu, druhá je tvořená jednotlivými webovými službami rozdělenými do kategorií, například podle geografického umístění nebo odvětví průmyslu, a třetí část obsahuje popis WSDL, e-business pravidla a instrukce, jak tuto službu používat.

Princip webové služby
Jednoduchost interakcí ve webovém programovacím modelu umožňuje inkrementální vytváření systémů. Na rozdíl od těsně vázaných systémů RPC a systémů distribuovaných objektů, které vyžadují rozmístění a vytvoření všech částí aplikace najednou, k systémům založeným na webu je možné přidávat klienty a servery podle potřeby. Vytvoření připojení k novým aplikacím je jednoduché, dá se dělat decentralizovaně, bez jakékoli centrální koordinace kromě registrace DNS jménem, a s podstatně vyšším stupněm vzájemné součinnosti, rozšiřovatelnosti a ovladatelnosti.

Základní idea webové služby spočívá v přizpůsobení volně vázaného webového modelu programování na použití v aplikacích, které nejsou založené na využití prohlížečů. Cílem je poskytnout platformu pro vývoj distribuovaných aplikací s využitím softwaru pracujícího na různých operačních systémech a zařízeních, vytvořených v různých programovacích jazycích a vývojových nástrojích od různých dodavatelů, vše s možností nezávislého vývoje a aplikace.

Princip webové služby je celkem jednoduchý. Vytvořenou aplikaci (funkci) je potřeba umístit někam na síť a určitým jazykem (konkrétně WSDL) definovat její rozhraní. Když se někdo rozhodne tuto službu využít, pošle dohodnutým protokolem (SOAP) vstupní údaje a dostane zpět výsledek. Při vytváření aplikací je potřebné nejdříve ve speciálním katalogu (UDDI) zjistit vhodné existující webové služby a ty potom stačí připojit [8].

Webová služba a webová aplikace
Mezi tradičními webovými aplikacemi a webovými službami existují tři podstatné rozdíly - webové služby využívají místo zpráv MIME zprávy SOAP, webové služby nejsou typu HTTP a webové služby poskytují metadata popisující zprávy, které produkují a konzumují [5].

První rozdíl je v tom, že webová služba komunikuje pomocí zpráv typu SOAP. SOAP formalizuje použití XML jako způsobu přenosu údajů mezi dvěma procesy, definuje rámcový model pro rozšiřitelnost a verze protokolu, způsob přenosu chybových informací a způsob zasílání zpráv přes HTTP. Tělo zprávy SOAP obsahuje jakýkoli XML obsah posílaný aplikací.

Posun od zprávy typu MIME k XML zprávám souvisí s podstatným rozdílem mezi klientem tradiční webové aplikace (prohlížečem) a klientem webové služby. Prohlížeče obyčejně pouze provázejí (rendují) HTML (HyperText Mark-up Language) stránky (nebo jiné údaje typu MIME, jako jsou například obrázky) a interpretaci zobrazené informace ponechávají na uživateli. Klient webové služby naopak většinou potřebuje interpretovat údaje, které dostal, a něco smysluplného s nimi poté udělat - dokonce nemusí mít ani uživatelské rozhraní. XML představuje standardní způsob reprezentace a správy údajů a nástroje pro práci s XML jsou všudypřítomné, takže jeho volba jako formátu pro webové služby je úplně logická.

Druhým velkým rozdílem mezi webovou službou a tradiční webovou aplikací je to, že webová služba je nezávislá na transportním protokolu. SOAP specifikace pouze definuje jak poslat SOAP zprávu přes HTTP (a dnes to dělá převážná většina webových služeb), ale je možné použít i jiný přenosový protokol. Je možné použít SMTP (Simple Mail Transfer Protocol), čisté TCP (Transmission Control Protocol) nebo protokol přímých zpráv jako Jabber či libovolný jiný protokol. Ačkoli většina SOAP zpráv bude v blízké budoucnosti posílaná přes HTTP, schopnost použít jiné protokoly je velmi důležitá. HTTP není určeno na podporu dlouhotrvajících požadavků nebo potvrzení události odeslání klientem. Tyto problémy jsou lépe řešené v jiných protokolech a jejich standardizovaná podpora se v blízké budoucnosti očekává.

Třetím podstatným rozdílem je skutečnost, že webová služba je samo-popisující. Poskytuje metadata popisující produkované a konzumované zprávy, modely výměny zpráv na vyjádření režimu činnosti, použitý fyzický transportní protokol a logickou adresnou informaci potřebnou na její vyvolání. Formáty zpráv webových služeb jsou definované pomocí XML schémat XSD (XML Schema Definition). XML schéma je dostatečně flexibilní k popisu širokého rozsahu struktur zpráv, včetně otevřených modelů obsahu (open content models) s jemným řízením rozšiřitelnosti, což je kritické pro služby, jež mají být volně vázané.

Využití webových služeb
Aplikacemi využívajícími webové služby mohou být jiné webové služby, ale i webové či klientské aplikace. Na straně klientů to mohou být standardní osobní počítače, ale také zařízení typu PDA (personal digital assistants) nebo mobilní telefony. Pro programátora je způsob využívání webových služeb velmi blízký způsobu využívání tříd.

Webové služby je možné spolu s dalšími komponenty vyhledávat v registrech a vytvořit z nich aplikace. Spojování webových služeb však vyžaduje něco více než pouze konektivitu - účelné je propojit je inteligentně, to znamená tak, aby výsledná síť webových služeb fungovala v rámci procesních a obchodních pravidel. Ten, kdo tuto síť tvoří, je IT manažer nebo obchodní analytik zaměřený spíše na obchodní procesy než na (složité) programování. Využívá k tomu nástroje ke znázornění obchodního procesu a formulaci nezbytné procesní logiky bez toho, že by musel psát nějaký kód. Většinu z těchto pravidel přitom určují obchodní analytici a ne programátoři.

Ve chvíli, kdy jsou obchodní procesy vytvořené, je třeba je jednotlivým koncovým uživatelům (zákazníkům, partnerům nebo podnikovým systémům) poskytnout (vystavit) různými způsoby (například přes prohlížeč, mobilní telefon nebo mainframe).

Po spojení služeb je potřeba zajistit runtime provozní prostředí, které je vysoce spolehlivé, bezpečné a je ho možné spravovat lokálně i vzdáleně. Takové prostředí je postavené na aplikačním serveru.

Hodně IT manažerů se bude vzpírat myšlence, že by se měli spolehnout na distribuované komponenty nejisté kvality provozované prostřednictvím internetu, které se i navzdory své zvyšující spolehlivosti nemohou vyrovnat dostupnosti, výkonnosti a bezpečnosti vlastních firemních systémů. Téměř všichni průmysloví giganti však pokládají webové služby za nevyhnutelnost, jediné, v čem se liší, je jejich správné načasování. Technologicky jsou už mnohé současné aplikace a vývojová prostředí na využití webových služeb připravené (Microsoft, Borland, IBM a další).

Podle firmy Sun [9] se rozdělí zavedení webových služeb na tři fáze:

Fáze 1 je využití webových služeb v rámci podniku pro integraci mezi různorodými systémy (hardware i software). To by se mělo odehrát v příštích 18 měsících.

Fáze 2 znamená implementaci webových služeb pro integraci mezi podniky - partner proti partnerovi - management zásobování, management CRM (Customer Relationship Management) atd., ta má začít za 18 měsíců.

Nakonec bychom se asi za tři roky měli dočkat volně vázaných, bezpečných systémů pro koncové uživatele s úplně integrovanými dostupnými bezpečnostními modely, zvláště proto, že tyto normy ještě nejsou k dispozici.

Typickým příkladem ukázky využití webových služeb na konferencích je systém rezervace letenek, plánování letů aerolinií nebo zjištění aktuálních burzovních informací.

Závěr
Vznik a vývoj webových služeb znamená vytvoření nové všestranně využitelné platformy pro tvorbu volně vázaných distribuovaných systémů. Přitom je třeba mít na paměti čtyři základní principy.

Celá problematika je o volném vázaní. To je příčina úspěšnosti webu a to je to, co dělá webové služby zajímavými. Celé je to o XML. Čím více rozumíme XML, čím hlouběji ho pochopíme, tím větší užitek z něj budeme mít. Objekty mohou být použité k implementaci webové služby, ale nejsou centrální pro programovací model. Evoluce platformy pokračuje. V současnosti můžeme vytvářet základní služby na různých platformách. Další vývoj směřuje ke službám vyšší úrovně a k používání alternativních transportních protokolů.

Literatura a zdroje:
[1] Box D., Ehnebuske D., Kakivaza G., Layman A., Mendelsohn N., Nielsen H., Thatte S., Winer D.: Simple Object Access Protocol 1.1, may 2000
[2] Buranský, I.: XML a webové služby. Prienik do XML cez Microsoft.NET a Murphyho zákony. Microsoft Praha 2003, 132 str.
[3] Champion M., Ferris Ch., Newcomer E., Orchard D.: Web Services Architecture. W3C Working Draft 14 November 2002.
[4] Christensen, E., Curbera F., Meredith G., Weerawarana S.: Web Services Description Language 1.1, March 2001
[5] Ewald T.: Understanding XML Web Services. Microsoft Corporation, September 2002
[6] Samtani G.: Top five Web service myths. Aug. 2002, Builder - Architect - Web Services
[7] Travis B. E.: XML a SOAP Programování serverů BizTalk. Computer Press Praha 2000, ISBN 80-7226-303-X, 419 str.
[8] Třísková L.: Zaostřeno na .NET a webové služby. Softwarové noviny 8/01, str. 108 - 109
[9] Wiggers Ch.: The State of Java Web Services. Taking the temperature at JavaOne. Sun 2002.
[10] IBM: Web services zone
[11] XMLCOM: A Web Services Primer
[12] XMLCOM: WebServices
[13] WebServicesArchitect: WebServices
[14] Sun: Best Practices Web Services
[15] Alphaworks IBM: Web Services Toolkit
[16] Web Services Interoperability Organization

Poznámka: Příspěvek byl řešen v rámci projektu IMVOCED (LdV) UK/00/B/F/PP 129092.

Autor článku, Ing. Pavel Horovčák, CSc., pracuje na Katedře informatizace a řízení procesů F BERG Technické univerzity v Košicích.

Chcete získat časopis IT Systems s tímto a mnoha dalšími články z oblasti informačních systémů a řízení podnikové informatiky? Objednejte si předplatné nebo konkrétní vydání časopisu IT Systems z našeho archivu.


Inzerce

Od tabulek k centralizovanému systému řízení výroby

Implementace ERP Vision zefektivnila využití výrobních dat

modV současné době je poměrně běžným požadavkem společností, které implementují ERP systém, vyřešení podpory řízení některých klíčových procesů. S přípravou takových řešení je obvykle spojeno nejvíce práce na projektu implementace. Na začátku často bývá představa ideálního stavu, ale chybí detailní pohled včetně uvědomění konkrétních datových toků. Popravdě ani není v silách zákazníků tyto detaily zpracovat.