Standardy pro Webové služby WSDL, UDDI 1

Podobné dokumenty
Metody integrace aplikací

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

Michal Krátký, Miroslav Beneš

Tvorba informačních systémů

X33EJA Web Services. Martin Ptáček, KOMIX s.r.o.

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

Úvod do Web Services

Uživatelský manuál pro externí uživatele veřejného webu OTE webové služby

Pokročilé Webové služby a Caché security. Š. Havlíček

Koordinační středisko pro resortní zdravotnické informační systémy

Softwarové komponenty a Internet

Webové služby v Java EE (JAX-WS)

Životní cyklus služby v SOA a popis webových služeb

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

RMI - Distribuované objekty v Javě

Požadavky pro výběrová řízení TerraBus ESB/G2x

Přístup do IS z mobilních zařízení

Servisně orientovaná architektura a její aplikace v systémech sledování a řízení výroby

Referenční rozhraní. Jiří Kosek. Ministerstvo informatiky ČR. ISSS 25. března 2003

Webové služby a XML. Miroslav Beneš

RMI Remote Method Invocation

SYSTÉM PRO KONFIGURACI KOMUNIKAČNÍCH TERMINÁLŮ A VIZUALIZACI STAVOVÝCH DAT Z KOLEJOVÝCH VOZIDEL

XML a nové trendy v publikování na Webu

Microsoft Office 2003 Souhrnný technický dokument white paper

InternetovéTechnologie

Komponentový návrh SW

Webové služby. Martin Sochor

Specifikace rozhraní. Oznamovací povinnost podle zákona č. 307/2013 Sb., ve znění pozdějších předpisů. Martin Falc, SW architekt.

Architektura orientovaná na služby Návrh orientovaný na služby. Ing. Petr Weiss. VUT v Brně,, FIT, UIFS

CAL (CAN Application Layer) a CANopen

Osnova. GIOP a IIOP IDL IOR POA. IDL Klient Server. 2 Historie. 3 Princip a základní pojmy. 4 Implementace. 5 Aplikace CORBA

Common Object Request Broker Architecture

Základní zadání IS o ISVS. Sluţba poskytování dat IS o ISVS

Modelování webových služeb v UML

PODMÍNKY POSKYTOVÁNÍ PŘÍSTUPU K PORTÁLU NAMĚŘENÝCH DAT POMOCÍ WEBOVÝCH SLUŽEB SPOLEČNOSTI ČEZ DISTRIBUCE, A. S.

ZNAČKOVACÍ JAZYKY A JEJICH VYUŽÍVÁNÍ MARKUP LANGUAGE AND THEIR USE. Zdeněk Havlíček

l Kontakt s klientem SSP Popis automatizované komunikace s ÚP ČR v součinnosti a exekuci

java remote method invocation Kateřina Fricková, Matouš Jandek

SOAP & REST služby. Rozdíly, architektury, použití

Systémy pro správu dokumentů

RESTful web service v Javě

Distribuované systémy a výpočty

Fakulta elektrotechnická

Webové mapové služby. Lukáš Birka

Sémantický web 10 let poté

Komponentní technologie

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky. Automatizované

Systém pro správu experimentálních dat a metadat. Petr Císař, Antonín Bárta 2014 Ústav komplexních systémů, FROV, JU

Webové služby. Martin Kuba Superpočítačové centrum Brno Masarykova univerzita

NetBeans platforma. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Unifikovaný modelovací jazyk UML

GUIDELINES FOR CONNECTION TO FTP SERVER TO TRANSFER PRINTING DATA

Kolaborativní aplikace

PODMÍNKY POSKYTOVÁNÍ PŘÍSTUPU K PORTÁLU NAMĚŘENÝCH DAT POMOCÍ WEBOVÝCH SLUŽEB SPOLEČNOSTI ČEZ DISTRIBUCE, A. S.

Úvod do CORBY. Svetlozara Arabadzhieva

Webové služby v Java EE (JAX-WS)

POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE

PROPOJOVÁNÍ POČÍTAČOVÝCH APLIKACÍ

Soubor jako posloupnost bytů

EXTRAKT z technické normy CEN ISO

SPRÁVA ZÁKLADNÍCH REGISTRŮ PODMÍNKY PRO PŘIPOJENÍ AGENDOVÝCH INFORMAČNÍCH SYSTÉMŮ DO ISZR. verze 2.00

Internet Information Services (IIS) 6.0

Systémy jednotného přihlášení Single Sign On (SSO)

TÉMATICKÝ OKRUH Softwarové inženýrství

Co je to Grid. Martin Kuba Superpočítačové Centrum Brno Seminář CESNET, Třešť

Kapitola 1: Co je Microsoft Access? 27 Kapitola 2: Mnoho tváří aplikace Microsoft Access 41 Kapitola 3: Návrh databázové aplikace 75

Popis B2B rozhraní pro elektronickou neschopenku

X36DSV 3. cvičení. XML (extensible Markup Language) JavaScript. AJAX (Asynchronous JavaScript and XML) X36DSV. 2007/10 ver.2.0 1

2 Axiomatic Definition of Object 2. 3 UML Unified Modelling Language Classes in UML Tools for System Design in UML 5

Zabezpečená middleware komunikace

Vývoj Internetových Aplikací

UML. Unified Modeling Language. Součásti UML

Globální architektura ROS

EXTRAKT z mezinárodní normy

TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY

EXTRAKT z české technické normy

Rodina formátů XML 1

Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika

Úvod do aplikací internetu a přehled možností při tvorbě webu

Tieto přináší nové příležitosti v IT.

Příloha č. 3 Webové služby

METADATOVÝ PORTÁL A KATALOGOVÉ SLUŽBY. Štěpán Kafka

XML Š ABLONY A JEJICH INTEGRACE V LCMS XML TEMPLATES AND THEIN INTEGRATION IN LCMS

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ

Servisně orientovaná architektura Základ budování NGII

Dnešní téma. Oblasti standardizace v ICT. Oblasti standardizace v ICT. Oblasti standardizace v ICT

Java a XML. 10/26/09 1/7 Java a XML

Mapové služby podle OGC

Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů

Petr Vlk KPCS CZ. WUG Days října 2016

Microsoft Office 2003 Souhrnný technický dokument white paper

Integrace OpenOffice.org a Javy. CZJUG, , Robert Vojta

SenseLab. z / from CeMaS. Otevřené sledování senzorů, ovládání zařízení, nahrávání a přehrávání ve Vaší laboratoři

Přehled mezinárodních norem (ISO) Označení mezinárodní normy Názvy mezinárodních norem Rok vydání

Čipové karty Lekařská informatika

EXTRAKT z české technické normy

Transkript:

Standardy pro Webové služby WSDL, UDDI 1 Karel Richta Katedra počítačů FEL ČVUT Karlovo nám.13, 121 35 Praha 2 Tel: 2 2435 7319 e-mail: richta@fel.cvut.cz www: http://cs.felk.cvut.cz/~richta Klíčová slova: WSDL, UDDI, XML, XSL, XSLT, SOAP Abstrakt: Příspěvek se zabývá standardy WSDL (Web Services Description Language) a UDDI (Universal Description, Discovery and Integration), které byly vytvořeny pro popis a hledání tzv. webových služeb. Z popisu služby ve WSDL lze automaticky vygenerovat kód, kterým tuto službu zavoláme (ve formátu SOAP), i kostru programové obsluhy této služby. Univerzální registr UDDI by měl posloužit pro vyhledání vhodné služby. 1 Úvod Formát XML (extensible Markup Language) již pronikl mezi odbornou veřejnost jako nástroj pro reprezentaci strukturovaných a semistrukturovaných dat, tj. nástroj pro universální přenos dokumentů. Konsorcium W3C (World Wide Web Consortium) v současné době podporuje řadu dalších formátů, které z XML vycházejí tzv. aplikace XML. Jednou takovou aplikací je i standard pro tzv. webové služby služby poskytované prostřednictvím sítě. Jako příklad takové služby může posloužit služba pro zjištění aktuálního kurzu akcie ve vzdáleném místě. Pokud mají být takové služby nezávislé na platformě a být dostupné zcela globálně, je výhodné využít pro jejich reprezentaci formát XML. Požadavek na službu zakódujeme do XML a přeneseme pomocí protokolu HTTP na cílový stroj. Tam je požadavek rozkódován, obsloužen a získané výsledky opět přeneseny zpět ve formátu XML. Volání služeb ve vzáleném místě lze formulovat a přenášet pomocí protokolu SOAP (Simple Object Access Protocol), který slouží pro obecné vyvolávání metod vzdálených objektů. Aby ale klient věděl, jak službu vzdáleného objektu vyvolat, musí znát její interface - funkční profil. Pro jejich zápis byl definován standard WSDL (Web Services Description Language). Z popisu služby ve WSDL lze automaticky vygenerovat kód, kterým tuto službu zavoláme (ve formátu SOAP), i kostru programové obsluhy této služby. Poslední související problém je, jak zjistit, které služby se v síti nabízí. K tomu by měl posloužit univerzální registr obsahující seznam a popis dostupných webových služeb, tzv. UDDI (Universal Description, Discovery and Integration). V takovém registru by mělo být možné službu vyhledat, podle jejího popisu ve WSDL zformulovat zprávu ve formátu SOAP a nechat se vzdáleným poskytovatelem obsloužit. Příspěvek se zabývá právě formáty WSDL a UDDI a jejich využitím. 1 Tento článek vznikl při práci na výzkumném záměru č. MSM 212300014 Výzkum v oblasti informačních technologií a komunikací MŠMT a při práci sponzorované grantem GAČR č. 201/03/0912 Vyhledávání a indexování XML dokumentů. 1

2 Co to jsou webové služby? Základem tzv. webových služeb je formát XML a protokol HTTP. HTTP je protokol, který je akceptován pravděpodobně všude na Internetu. XML představuje metajazyk, ve kterém lze vytvářet rozmanité specializované jazyky (nazývané aplikace XML) tím, že definujeme určitou sadu přípustných značek a jejich možné kombinace. Takovou aplikací je i formát WSDL (Web Services Description Language [WSDL 03]). Definuje požadovanou strukturu XML-dokumentu, který charakterizuje určitou službu přístupnou prostřednictvím sítě. Podobně i žádost o vykonání této služby je zformulována jako XML dokument, tentokrát pomocí jiné aplikace XML nazývané SOAP (Simple Object Access Protocol [SOAP 02]). Formát SOAP slouží jako obálka pro žádost o provedení služby i pro navracené údaje. Žádost o provedení služby přenesená do cílového místa ve formátu XML je rozkódována a převedena na vyvolání potřebné služby. Její výstupy jsou pak opět zabaleny do XML a přeneseny zpět. Celá situace připomíná infrastrukturu podobnou např. standardu CORBA (Common Object Request Broker Architecture), vzdálenému volání procedur a formátu IDL (Interface Definition Language). Tento standard byl navržen právě pro možnost vytvářet distribuované aplikace nezávislé na konkrétním prostředí jednotlivých uzlů. Skutečná situace však většinou není tak jednoduchá, zatímco protokol HTTP je akceptován téměř všude. Poskytované služby je třeba někde inzerovat. Pro tento účel je zaveden jakýsi registr dostupných služeb nazývaný UDDI (Universal Description, Discovery and Integration Service [UDDI 02]). Ten by měl posloužit pro vyhledání potřebné služby a nalezení jejího popisu ve formátu WSDL. Podle něj pak lze službu vyvolat. Existují též pokusy o další rozšíření těchto technologií, jako např. XAML (Transaction Authority Markup Language), XLANG (podpora pro řízení transakcí realizovaných prostřednictvím webových služeb), nebo XKMS (XML Key Management Specification). Ty však zatím nejsou obecně akceptovány. 2

3 Struktura dokumentu ve WSDL Dokument ve formátu WSDL představuje sadu definic zahrnutých do elementu wsdl:definitions. Jeho podrobná struktura je uvedena v příloza A. Zjednodušená gramatika pro tento element je znázorněna na následujícím obrázku: Služby jsou definovány pomocí 4 základních elementů: message abstraktní definice přenášených dat, skládá se z částí (parts), porttype představuje sadu abstraktních operací, které mají definován vstup, výstup a reakci na chyby, binding popisuje konkrétní protokol pro navázání operace na složky operace popsané pomocí porttype, service odkazuje na uzel který službu realizuje a pomocí složek port odkazuje na způsob vazby (binding). 3.1 Příklad definice ve formátu WSDL Předpokládejme, že chceme vytvořit a použít jednoduchou webovou službu. Pro jednoduchost uvažme službu, která nevyžaduje žádné další pomocné komponenty. V [Kosek 02] je uveden příklad služby na sečtení dvou čísel. Popis této služby vyžaduje, abychom stanovili, že požadavek na vykonání této služby bude muset obsahovat 2 parametry této služby označme je jako par0 a par1. Parametry jsou celá čísla: <wsdl:message name='pozadavek_na_secteni'> <wsdl:part name='par0' type='xsd:int'/> <wsdl:part name='par1' type='xsd:int'/> </wsdl:message> 3

Získaný výsledný součet bude opět celé číslo: <wsdl:message name='vysledek_souctu'> <wsdl:part name='vysledek' type='xsd:int'/> </wsdl:message> V části označované porttype je nutno stanovit, jaká operace bude implementovat požadavek na službu Soucet. Služba Soucet bude implementována pomocí operace Sum, které budou předány dva parametry par0 a par1 v tomto pořadí: <wsdl:porttype name='soucet'> <wsdl:operation name='sum' parameterorder='par0 par1'> <wsdl:input name='soucet' message='tns:pozadavek_na_soucet'/> <wsdl:output name='soucet' message='tns:vysledek_souctu'/> </wsdl:porttype> V části označené Binding se stanoví, jakým způsobem bude požadavek transportován. Pro náš účel bude vyhovovat přenos typu RPC Remote Procedure Call, kde vstup a výstup bude zakódován jako XML elementy: <wsdl:binding name='soucetsoap' type='tns:soucet'> <soap:binding transport='http://schemas.xmlsoap.org/soap/http' style='rpc'/> <wsdl:operation name='soucet'> <soap:operation soapaction='' style='rpc'/> <wsdl:input name='soucet'> <soap:body use='encoded' encodingstyle='http://schemas.xmlsoap.org/soap/encoding/' namespace='urn:x-kosek:services:soucet'/> </wsdl:input> <wsdl:output name='soucet'> <soap:body use='encoded' encodingstyle='http://schemas.xmlsoap.org/soap/encoding/' namespace='urn:x-kosek:services:soucet'/> </wsdl:output> </wsdl:binding> Nakonec v části označené Service stanovíme, který výpočetní uzel bude adresován a jaký vazební element bude použit: <wsdl:service name='soucet'> <wsdl:port name='sum' binding='tns:soucetsoap'> <soap:address location='http://localhost:6060/soucet/'/> </wsdl:port> </wsdl:service> Celý dokument ve formátu WSDL pak bude vypadat následovně: <?xml version='1.0'?> <wsdl:definitions name='sum' targetnamespace='urn:x-kosek:services:sum' xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/' xmlns:xsd='http://www.w3.org/2001/xmlschema' xmlns:tns='urn:x-kosek:services:sum' xmlns:http='http://schemas.xmlsoap.org/wsdl/http/' xmlns:xsi='http://www.w3.org/2001/xmlschema-instance' xmlns:mime='http://schemas.xmlsoap.org/wsdl/mime/' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' xmlns:soap-enc='http://schemas.xmlsoap.org/soap/encoding/'> <wsdl:message name='vysledek_souctu'> 4

<wsdl:part name='vysledek' type='xsd:int'/> </wsdl:message> <wsdl:message name='pozadavek_na_soucet'> <wsdl:part name='p0' type='xsd:int'/> <wsdl:part name='p1' type='xsd:int'/> </wsdl:message> <wsdl:porttype name='sum'> <wsdl:operation name='sum' parameterorder='p0 p1'> <wsdl:input name='sum' message='tns:pozadavek_na_soucet'/> <wsdl:output name='sum' message='tns:vysledek_souctu'/> </wsdl:porttype> <wsdl:binding name='soucetsoap' type='tns:sum'> <soap:binding transport='http://schemas.xmlsoap.org/soap/http' style='rpc'/> <wsdl:operation name='sum'> <soap:operation soapaction='' style='rpc'/> <wsdl:input name='sum'> <soap:body use='encoded' encodingstyle='http://schemas.xmlsoap.org/soap/encoding/' namespace='urn:x-kosek:services:sum'/> </wsdl:input> <wsdl:output name='sum'> <soap:body use='encoded' encodingstyle='http://schemas.xmlsoap.org/soap/encoding/' namespace='urn:x-kosek:services:sum'/> </wsdl:output> </wsdl:binding> <wsdl:service name='soucet'> <wsdl:port name='soucet' binding='tns:soucetsoap'> <soap:address location='http://localhost:6060/sum/'/> </wsdl:port> </wsdl:service> </wsdl:definitions> 3.2 Webová služba v akci Na straně serveru bude služba implementována následovně: public class Sum { public int Sum(int x, int y) { return x + y; } } Na straně klienta bude služba deklarována: package client.iface; public interface Sum { int Sum(int par0, int par1); } Aplikace, která bude tuto službu využívat by mohla vypadat následovně: package client; import client.iface.*; import org.idoox.wasp.context; import org.idoox.wasp.messageattachment; import org.idoox.webservice.client.webservice; import org.idoox.webservice.client.webservicelookup; public class SoucetKlient{ 5

public static void main(string args[]) throws Exception { String host = "http://localhost:6060/soucet/"; //nastaveni sluzby lookup WebServiceLookup lookup = (WebServiceLookup)Context.getInstance ("org.idoox.webservice.client.webservicelookup"); //zjisteni instance interface Webove sluzby interface přes sluzbu lookup //change the interface class to your Web Service's interface Soucet service = (Soucet)lookup.lookup ("http://localhost:6060/soucet/", Soucet.class,host); } } //nakonec lze vyvolat metodu přes interface webove sluzby System.out.println(service.Soucet(2,5)); 4 Protokol SOAP (Simple Object Access Protocol) Požadavek na službu je třeba zabalit do obálky Poslouží zde protokol SOAP [SOAP 02], což je jednoduchý protokol, který definuje uniformní způsob přenášení dat v XML. Rovněž definuje, jakým způsobem se má pomocí HTTP provést vyvolání vzdálené procedury (RPC - Remote Procedure Call). SOAP vychází z přesvědčení, že ať je aktuální realizace procedury služby jakkoliv sofistikovaná, její vyvolání přes XML zvyšuje operativnost v rámci sítě. Hlavním elementem dokumentu ve formátu SOAP je obálka (SOAP-Envelope). Ta může obsahovat hlavičku (Header) a musí obsahovat tělo (Body). Dále může obsahovat informace pro zpracování výjimek (Fault). Např. požadavek na provedení součtu dvou hodnot může vypadat následovně (do obálky je třeba vložit i odkazy na XML Schemata zabudovaných typů, které používáme): <?xml version="1.0" encoding="utf-8"?> <SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wn1="http://www.w3.org/2000/10/xmlschemas" xmlns:wn0="http://www.w3.org/2001/xmlschemas" xmlns:xsi="http://www.w3.org/2001/xmlschemas-instance"> <nsp:soucet xmlns:nsp="urn:x-kosek:services:soucet"> <par0 xsi:type="wn0:int">2</par0> 6

<par1 xsi:type="wn0:int">5</par1> </nsp:soucet> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Tato zpráva je zaslána na server. Tam musí být obsluha, která požadavek dekóduje a vykoná. Poté je výsledek služby opět zabalen do SOAP obálky a poslán zpět: <?xml version="1.0" encoding="utf-8"?> <SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wn1="http://www.w3.org/2000/10/xmlschemas" xmlns:wn0="http://www.w3.org/2001/xmlschemas" xmlns:xsi="http://www.w3.org/2001/xmlschemas-instance"> <nsp:vysledek_souctu xmlns:nsp="urn:x-kosek:services:soucet"> <vysledek xsi:type="wn0:int">7</vysledek> </nsp:vysledek_souctu> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Tento výsledek je na straně klienta dekódován, je z něj extrahován výsledek a předán metodě println k vytištění. 5 Registr UDDI UDDI (The Universal Description, Discovery and Integration Service) [UDDI 02] poskytuje mechanismus, přes který mohou klienti dynamicky hledat požadované webové služby. Tímto způsobem by aplikace měly být schopny se kontaktovat na služby poskytované externími partnery. Registr UDDI se podobá službě CORBA trader, nebo na něj lze pohlížet jako na DNS service pro aplikace využívající webových služeb. Registr UDDI má dva druhy klientů: ty, kteří chtějí nějakou službu poskytovat a ty, kteří chtějí službu využívat. Registr UDDI obsahuje tzv White pages, které obsahují informaci jako jméno, adresu, číslo telefonu, nebo další kontaktní informace. Sděluje programátorovi, jak se má registrovat při používání služby. Další část UDDI představují tzv. Yellow pages, které obsahují specifikaci, jak může aplikace najít danou webovou službu. Třetí část se nazývá Green pages, kde jsou uvedeny informace nezbytné pro vyvolání služby. Jsou zde uvedena URL služeb, jména, argumenty apod. Registr UDDI se zhruba řečeno skládá z kolekce elementů nazývaných uzly (UDDI nodes), které obsahují data (UDDI data) - posloupnosti elementů několika základních typů: businesskey popisuje firmu dodávající služby, servicekey popisuje skupiny služeb dodávaných firmou, tmodelkey technický model popisuje typ služby (odkaz na WSDL) nebo použitý protokol a bindingkey popisuje informaci nezbytnou pro použití služby. Nad touto posloupností umožňuje sadu operací, které s ní mohou manipulovat a získávat informace, např.: find_binding, find_business, find_relatedbusinesses, find_service, find_tmodel, get_bindingdetail, get_businessdetail, get_servicedetail, get_tmodeldetail nebo get_assertionstatusreport. 7

5.1 Příklad použití registru UDDI Dotaz: Následující dotaz můžeme poslat ke zpracování zabalen do obálky SOAP. Výstupem by měly být informace o firmě (Microsoft). <find_business generic="1.0" xmlns="urn:uddi-org:api"> <name>microsoft</name> </find_business> Výsledek: detailní výpis elementů typu <businessinfo> zaregistrované pro firmu Microsoft, včetně informací o službě UDDI samotné. <businesslist generic="1.0" operator="microsoft Corporation" truncated="false" xmlns="urn:uddi-org:api"> <businessinfos> <businessinfo businesskey="0076b468-eb27-42e5-ac09-9955cff462a3"> <name>microsoft Corporation</name> <description xml:lang="en"> Empowering people through great software - any time, any place and on any device is Microsoft's vision. As the worldwide leader in software for personal and business computing, we strive to produce innovative products and services that meet our customer's </description> <serviceinfos> <serviceinfo businesskey="0076b468-eb27-42e5-ac09-9955cff462a3" servicekey="1ffe1f71-2af3-45fb-b788-09af7ff151a4"> <name>web services for smart searching</name> </serviceinfo> <serviceinfo businesskey="0076b468-eb27-42e5-ac09-9955cff462a3" servicekey="8bf2f51f-8ed4-43fe-b665-38d8205d1333"> <name>electronic Business Integration Services</name> </serviceinfo> <serviceinfo businesskey="0076b468-eb27-42e5-ac09-9955cff462a3" servicekey="611c5867-384e-4ffd-b49c-28f93a7b4f9b"> <name>volume Licensing Select Program</name> </serviceinfo> <serviceinfo businesskey="0076b468-eb27-42e5-ac09-9955cff462a3" servicekey="a8e4999a-21a3-47fa-802e-ee50a88b266f"> <name>uddi Web Sites</name> </serviceinfo> </serviceinfos> </businessinfo> </businessinfos> </businesslist> 6 Závěr Poskytování služeb prostřednictvím sítě bude mít jistě velkou budoucnost. Současné formáty se zabývají zejména syntaktickou stránkou věci. Do budoucna by jistě bylo vhodné rozšířit tyto možnosti o sémantiku např. vyhledání vhodné služby dle požadovaného smyslu (sémantiky). 8

Literatura [BR 00] Bisová, V. - Richta, K.: Transformation of UML Models into XML. In: Proceedings of Challenges 2000 ADBIS-DASFAA. Praha: MATFYZPRESS UK ISBN 80-85863-56-1, str. 33-45. Praha 2000. [Kosek 02] Kosek, J: Inteligentní podpora navigace na WWW s využitím XML. Diplomová práce KIT VŠE Praha, 2002, http://www.kosek.cz/diplomka/. [Nič 02] Nič, M.: SOAP Reference. http://www.zvon.org/xxl/soapreference/ [PR 00] Pokorný, J. - Richta, K.: XML a semistrukturovaná data. In: Proceedings of DATASEM 2000. Brno: Masarykova universita - ISBN 80-210-2428-3, str. 47-63. Brno 2000. [Richta 02] Richta, K.: Using XSL in IS Development. In: New Perspectives on Information Systems Development: Theory, Methods, and Practice. New York : Kluwer Academic / Plenum Publishers, 2002, str. 309-319. ISBN 0-306-47251-1. [Richta 01] Richta, K.: Types in XML and XML-schemas. In: DATESO'01 - Proceedings of Workshop on Databases, Texts, Specifications, and Objects. Desná Černá Říčka, Vydavatelství ČVUT Praha, 2001, str. 20-32. ISBN 80-01-02376-1. [SOAP 02] SOAP Version 1.2 Part 0: Primer, W3C Candidate Recommendation 19 December 2002. http://www.w3.org/tr/soap12-part0/ [UDDI 02] OASIS Committee Specifications, Universal Description, Discovery and Integration, UDDI Version 3.0, Published Specification, 19 July 2002, http://uddi.org/specification.html [Vasudevan 01] Vasudevan, V.: a Web Services Primer. http://webservices.xml.com/pub/a/ws/2001/04/04/webservices/ [WS 02] W3C: Web Services Activity. http://www.w3.org/2002/ws/ [WSDL 03] Web Services Description Language (WSDL) Version 1.2, W3C Working Draft 3 March 2003, http://www.w3.org/tr/wsdl12/ Příloha A: Struktura formátu WSDL <wsdl:definitions name="nmtoken"? targetnamespace="uri"?> <import namespace="uri" location="uri"/>* <wsdl:types>? <wsdl:documentation... />? <xsd:schema... />* </wsdl:types> <wsdl:message name="nmtoken"> * <wsdl:documentation... />? <part name="nmtoken" element="qname"? type="qname"?/> * </wsdl:message> <wsdl:porttype name="nmtoken">* <wsdl:documentation... />? <wsdl:operation name="nmtoken">* <wsdl:input name="nmtoken"? message="qname">? </wsdl:input> <wsdl:output name="nmtoken"? message="qname">? </wsdl:output> <wsdl:fault name="nmtoken" message="qname"> * </wsdl:fault> 9

</wsdl:porttype> <wsdl:binding name="nmtoken" type="qname">* <wsdl:documentation... />? <wsdl:operation name="nmtoken">* <wsdl:input>? <-- extensibility element --> </wsdl:input> <wsdl:output>? </wsdl:output> <wsdl:fault name="nmtoken"> * </wsdl:fault> </wsdl:binding> <wsdl:service name="nmtoken"> * <wsdl:documentation... />? <wsdl:port name="nmtoken" binding="qname"> * <-- extensibility element --> </wsdl:port> <-- extensibility element --> </wsdl:service> </wsdl:definitions> Summary The base of Web services are XML and HTTP. HTTP is a protocol, running practically everywhere on the Internet. XML provides a meta-language in which you can write specialized languages (called XML applications) to express complex interactions between clients and services or between components of a composite service. Behind the front wall of a web server, the XML message gets converted to a middleware request and the results converted back to XML. The resulting infrastructure is similar to CORBA, i.e. IDL plus remote procedure calls. The Web services are based on XML everything is converted into XML (data, function calls, etc.). XML data are transferred with the help of HTTP protocol. Function calls are expressed in an XML application called SOAP (Simple Object Access Protocol). The SOAP document describes, what service, and with which parameters is required. The characteristics of the service should be described somehow. That is duty of WSDL (Web Services Description Language), the other XML application. The complete list of available services is something like directory service, and it is called UDDI (Universal Description, Discovery and Integration Service). 10