Úvod do Web Services



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

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

Komponentový návrh SW

InternetovéTechnologie

Server-side technologie pro webové aplikace

Michal Krátký, Miroslav Beneš

Tvorba informačních systémů

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

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

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

Webové služby. Martin Sochor

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

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

Web Services na SOAP

RESTful web service v Javě

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

Bakalářská práce, FEL ČVUT Praha. Michal Turek. červenec 2007

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

WCF. IW5 - Programování v.net a C# WCF

Softwarové komponenty a Internet

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

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

Komponentní technologie

RESTful API TAMZ 1. Cvičení 11

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

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

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

Web Services. Martin Kuba Superpočítačové Centrum Brno, Masarykova Univerzita Web Services, DATAKON

Semináˇr Java X J2EE Semináˇr Java X p.1/23

Nové jazykové brány do Caché. Daniel Kutáč

Metody integrace aplikací

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

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

Technology Entry form Entry up-to-date? Internal links Faulty internal Possible internal links

Fakulta elektrotechnická

Common Object Request Broker Architecture

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

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

Nasazení webových služeb do enterprise prostředí. Petr Steckovič

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Architektury informačních systémů

Úvod. Petr Aubrecht (CA) Martin Ptáček (Wincor Nixdorf) Je 10 typů lidí: ti, kteří znají binární kód, a ti, kteří ne.

RMI - Distribuované objekty v Javě

Platformy / technologie. Jaroslav Žáček jaroslav.zacek@osu.cz

Architektury informačních systémů

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

Technologie Java. Jaroslav Žáček

Webové služby a XML. Miroslav Beneš

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY

Tvorba informačních systémů

Vývoj Internetových Aplikací

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

POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE

Michal Krátký, Miroslav Beneš

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

Nové vývojové nástroje i5/os Rational Developer for System i V7.1

Popis B2B rozhraní pro elektronickou neschopenku

Verze dokumentu 0.1 duben 2016

Platformy / technologie. Jaroslav Žáček

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ

WWW technologie. HTTP protokol

ilé aspekty distribuovaných objektových systémů

Internet Information Services (IIS) 6.0

Tvorba informačních systémů

(Enterprise) JavaBeans. Lekce 7

Příloha: Dodatečné informace, včetně přesného znění žádosti dodavatele o dodatečné informace

Instalace a konfigurace web serveru. WA1 Martin Klíma

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

Česká správa sociálního zabezpečení

Komponentově orientované webové frameworky. Jiří Stránský twitter.com/jistr

PLATFORMY / TECHNOLOGIE JAROSLAV ŽÁČEK

Úvod do tvorby internetových aplikací

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

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

Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

INFORMAČNÍ SYSTÉMY NA WEBU

Schéma e-pošty. UA (User Agent) rozhraní pro uživatele MTA (Message Transfer Agent) zajišťuje dopravu dopisů. disk. odesilatel. fronta dopisů SMTP

Web Services Martin Kuba, ÚVT MU

Relační vrstva SMB-Síťový komunikační protokol aplikační vrstvy, který slouží ke sdílenému přístupu k souborům, tiskárnám, sériovým portům.

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

1. Distribuce Javy. 2. Vlastnosti J2EE aplikace. 3. Fyzická architektura J2EE aplikace. Distribuce Javy se liší podle jejího zamýšleného použití:

DEFINICE PROCESŮ DATOVÉ KOMUNIKACE TECHNICKÁ SPECIFIKACE DATOVÝCH SLUŽEB POSKYTOVANÝCH SPOLEČNOSTÍ ČEZ DISTRIBUCE, A. S.

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

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

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

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

KSRZIS. Postup kroků nutných pro napojení nemocničního informačního systému s registrem NSHNU v prostředí registrů resortu zdravotnictví

ATS Global B.V. ATS Bus.

Využití JBoss Fuse ve skandinávské energetice

Integrace mobilního klienta do IS přes webovou službu

DEFINICE PROCESŮ DATOVÉ KOMUNIKACE TECHNICKÁ SPECIFIKACE DATOVÝCH SLUŽEB POSKYTOVANÝCH SPOLEČNOSTÍ ČEZ DISTRIBUCE, A. S.

Tvorba informačních systémů

MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY

ARCHITEKTURA ORIENTOVANÁ NA SLUŽBY

Testování SOA systémů v Oracle SOA Suite

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

X33EJA Enterprise Java

Transkript:

Úvod do Web Services Základy webových služeb a jejich implementace na platformě OS/2 Jarda Kačer jarda@kacer.biz Český Warpstock 2008 Brno, 20.-21.9.2008

Co je to webová služba? Část business logiky přístupná přes standardní internetové protokoly Pro komunikaci se používá XML Nezávislá na platformě a programovacím jazyce Nemá nic společného s HTML, webovým prohlížečem apod.

Proč používat webové služby Konečně standard, na kterém se shodli všichni Předtím CORBA, RMI, EJB, DCOM, Používají se standardní protokoly a formáty dat Podporuje Java,.NET, teoreticky jakýkoliv programovací jazyk Ideální pro spojování heterogenních systémů Používá se hodně pro integrace systémů

Základní vlastnosti Distribuované, volně vázané Samopopisující se viz dále WSDL Synchronní i asynchronní Podporuje RPC Remote Procedure Call Nejsou zaměřeny prezentačně vůči uživateli, ale programově vůči strojovému použití Lze vidět jako API pro ostatní aplikace

Srovnání s tradičním RPC Tradiční RPC Webová služba V rámci jedné firmy Lze i mezi firmami Pro konkrétní jazyk Nezávislé na jazyce Volání procedur Posílání zpráv (XML) Obvykle daný transportní protokol Snadno vyměnitelné transportní protokoly Těsně vázané Volně vázané Efektivní zpracování na čas i velikost Poměrně neefektivní zpracování (XML)

Základní prvky architektury Klient Využívá službu Poskytovatel Poskytuje službu Registry Uchovává informace o umístění služeb Nepovinné, používá se zřídka

Dva základní typy WS SOAP Simple Object Access Protocol Základní prvek: Operace REST Representational State Transfer Základní prvek: Zdroj Přístupný přes základní operace HTTP: GET, POST, PUT, DELETE

SOAP Protokol pro definici: Pravidel pro kódování dat Struktury zpráv Napojení na transportní protokol Verze 1.1 obecně v používání, existuje v. 1.2 Zprávy: Obálka, v ní hlavička a tělo, volitelně přílohy pro velké objemy dat Přesný tvar konkrétních zpráv je dán WSDL dokumentem dané WS

SOAP - zprávy Bez příloh S přílohami Vhodné pro rozsáhlá data, například binární soubory apod. Použito MIME stejně jako například v emailech.

SOAP příklad zprávy Příklad triviálního SOAP requestu pro sečtení dvou čísel:

WSDL Web Service Description Language, v. 1.1 a 2.0 Popisovač WS, může být automaticky generován službou samotnou nebo být statický Opět XML formát Obsahuje definice: Datových typů XML Schema Typů zpráv, které mohou být dále použity Typů portů (rozhraní) a jejich operací Vazeb napojení portů na transportní protokol Služeb konkrétní URL + port s vazbou

WSDL - struktura Struktura dokumentu WSDL 2.0. Stále se používá starší WSDL 1.1, praktické rozdíly nejsou velké.

WSDL - příklad

Scénáře přenosu zpráv (1) One-Way Asynchronní od klienta ke službě Request/Response Synchronní žádost a odpověď Solicit/Response Pouze tyto dva scénáře jsou běžně podporovány a povoleny ve WS-I Basic Profile 1.0. Služba žádá o volání, klient později volá Notification Služba jen oznamuje klientovi Dáno ve WSDL pořadím zpráv v operaci

Scénáře přenosu zpráv (2) One-Way Request/Response Solicit/Response Notification

Styly SOAP zpráv Document V SOAP Body jde nějaký XML dokument, který je popsán schématem RPC V SOAP Body jde jméno vzdálené procedury a uvnitř parametry volání Historický přežitek, pro nové WS nepoužívat Je určeno ve WSDL u <soap:binding/> uvnitř <wsdl:binding/> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>

Kódování přenášených dat Literal Formát dat dán schématem, například XSD Encoded Použito SOAP kódování Je určeno ve WSDL u <soap:body/> každého vstupu/výstupu každé operace <operation name="add"> <soap:operation soapaction="add"/> <input><soap:body use="literal"/></input> <output><soap:body use="literal"/></output> </operation>

Kombinace stylů a kódování RPC/encoded RPC/literal document/encoded Zakázáno ve WS-I Basic Profile 1.0. document/literal Podporováno WS-I Basic Profile 1.0.

REST služby Alternativní styl k SOAPu Popsal Roy Fielding ve své dizertaci Menší zprávy, není SOAP obálka apod. Lepší výkonnost kešování apod. Nad HTTP hned chodí XML Co typ zdroje, to jiný typ XML Nutno nějak ručně zpracovat každý typ XML, neexistuje něco jako SOAP Engine Lze použít odkazy mezi zdroji XLink, Xpointer síť objektů se vzájemnými odkazy

Příklady RESTových zpráv

SOAP versus REST SOAP Klient Volání operace A SOAP služba: operace A, B, C REST HTTP operace GET Klient HTTP operace PUT HTTP operace POST Zdroj HTTP operace DELETE

Co je nutné znát pro vývoj XML, včetně jmenných prostorů XML Schema definice XML typů WSDL SOAP Zvolený implementační jazyk Včetně implementace SOAPu, pokud existuje Případně ruční práci se XML, (de)serializaci XML Některé platformy (např. Java,.NET) mají přímo podporu pro WS

Programovací jazyky a WS Java Starší API JAX-RPC pro J2EE 1.4 Novější API JAX-WS pro Java EE 5 Lze použít i samostatné SOAP enginy: Apache Axis.NET součást platformy C/C++ Není standardizováno, lze použít např. gsoap PHP? Lze použít v OS/2

OS/2 + Java Nejnovější dostupná verze 1.4 Golden Code nebo InnoTek Webová aplikace běžící v servlet kontejneru: Apache Tomcat 5.0 nebo 5.5 Verze 5.0 je poslední pro Javu 1.4 Verze 5.5 vyžaduje pro Javu 1.4 balíček pro zpětnou kompatibilitu Buď JAX-RPC anebo Apache Axis

gsoap klient (1) wsdl2h -o MojeSluzba.h MojeSluzba.wsdl Z popisovače vygeneruje hlavičkový soubor soapcpp2 MojeSluzba.h Vygeneruje stuby (lokální spojky), které se starají o volání vzdálené WS Zkompilovat aplikaci s vygenerovanými stuby Slinkovat s knihovnou gsoapu Všude lze rozlišovat mezi C a C++ Funkce vs. třídy

gsoap klient (2)

gsoap server (1) Opět wsdl2h (pokud máme WSDL) anebo ruční vytvoření.h souboru (nemáme WSDL) soapcpp2 MojeSluzba.h generuje skeletony Implementovat skeletony Zkompilovat, slinkovat Deployment CGI, nativní aplikace Samostatný HTTP server gsoap Server

gsoap server (2)

Další užitečné nástroje SoapUI prostředí pro testování SOAP WS Samo umí vytvořit SOAP requesty Validace oproti XSD Podporuje HTTPS certifikáty apod. Umí i zátěžové testy Zdarma

Další témata Zabezpečení WS, protokol HTTPS Standardy WS-* Service Oriented Architecture (SOA) Business Processes, BPEL Entreprise Service Bus (ESB) UDDI, ebxml