Webové služby a XML. Miroslav Beneš

Podobné dokumenty
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

Michal Krátký, Miroslav Beneš

Tvorba informačních systémů

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

Úvod do Web Services

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

Softwarové komponenty a Internet

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

Vytváření a použití knihoven tříd

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

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

Webové služby. Martin Sochor

RMI Remote Method Invocation

InternetovéTechnologie

Jini (pronounced GEE-nee) Cvičení 8 - DS 2006

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

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

Funkční specifikace ABOKWS. Aplikační rozhraní elektronického bankovnictví ABO-K. Verze 0.5

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

Tvorba informačních systémů

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

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

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

Server-side technologie pro webové aplikace

Distribuované systémy a výpočty

Komponentní technologie

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Identifikátor materiálu: ICT-3-03

Abstraktní datové typy: zásobník

Java a Caché IV: Manipulace s objekty

UJO Framework. revoluční architektura beans. verze

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

RESTful web service v Javě

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

Internet Information Services (IIS) 6.0

Vývoj Internetových Aplikací

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

RDF API a SPARQL syntaxe, API, příklady. 4IZ440 Reprezentace a zpracování znalostí na WWW Josef Petrák me@jspetrak.name

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

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

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

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

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

RMI - Distribuované objekty v Javě

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

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE

Common Object Request Broker Architecture

JSON API pro zjišťování cen MtG karet

Třídy a objekty. Třídy a objekty. Vytvoření instance třídy. Přístup k atributům a metodám objektu. $z = new Zlomek(3, 5);

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

RESTful API TAMZ 1. Cvičení 11

Microsoft Office 2003 Souhrnný technický dokument white paper

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

Webové služby DPD. Verze

1. Téma 12 - Textové soubory a výjimky

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

JÍDELNÍČEK. Polévka: Hovězí s drobenkou Hlavní jídlo: Ovocné knedlíky s mákem a cukrem, ovoce, čaj

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

Mapový server Marushka. Technický profil

TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY

Komponentový návrh SW

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz

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

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

bramborová, selská vepřová pečeně, bramborový knedlík, okurkový salát (A: 01, 03, 07, 09, 51) ovocný čaj, ovocné mléko, pitná voda (A: 07)

Vývoj informačních systémů. Přehled témat a úkolů

Web Services na SOAP

SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ

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

KIV/PIA 2013 Jan Tichava

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

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

Katedra měřicí a řídicí techniky, VŠB - Technická univerzita v Ostravě, tř. 17. listopadu, Ostrava-Poruba, Česká republika

(Enterprise) JavaBeans. Lekce 7

Stručný úvod pro programátory. Michal Kuchta

Návrh aplikace. Project Westpon. Inteligentní simulátor budov. Martin Mudra, Jan Smejkal, Onřej Macoszek, Marek Žehra, Jiří Slivárich

boolean hasnext() Object next() void remove() Kolekce

Radek Krej í. NETCONF a YANG NETCONF. 29. listopadu 2014 Praha, IT 14.2

Vývoj informačních systémů. Přehled témat a úkolů

Remote Method Invocation RMI

Hiearchical MVC (Model-view-controller) vs. PAC (Presentation-abstraction-control)

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

Skriptovací jazyky. Obsah

KTE / ZPE Informační technologie

Sledování výkonu aplikací?

Databázové a informační systémy

8. přednáška: Soubory a proudy

Kód, který se nebude často měnit

Vláknové programování část V

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

Identifikátor materiálu: ICT-3-10

Soubor jako posloupnost bytů

Systém elektronického rádce v životních situacích portálu

Verze dokumentu 0.1 duben 2016

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

Úvod Úrovňová architektura sítě Prvky síťové architektury Historie Příklady

Tvorba informačních systémů

Použití databází na Webu

Transkript:

Webové služby a XML Miroslav Beneš

Obsah přednášky Co jsou to webové služby Architektura webových služeb SOAP SOAP a Java SOAP a PHP SOAP a C# Webové služby a XML 2

Co jsou to webové služby rozhraní k aplikaci dostupné prostřednictvím počítačové sítě, založené na standardních internetových technologiích je-li aplikace dostupná přes síť pomocí kombinace protokolů jako HTTP, XML, SMTP, nebo Jabber, je to webová služba vrstva abstrakce mezi aplikačním programem a klientem Webové služby a XML 3

Co jsou to webové služby funkčnost služby není závislá na tom, v jakém jazyce je klient nebo server implementován (Java, C++, PHP, C#,...) příklad: HTML stránky: aplikace=www server, klient=prohlížeč další příklady: kurzovní lístky, burza, vyhledávací služby (Google), mapy, počasí Webové služby a XML 4

Struktura aplikačního serveru aplikační program implementuje vlastní logiku aplikace (business logic) Service Listener komunikuje s okolím prostřednictvím některého transportního protokolu (HTTP, SOAP, Jabber,...) Service Proxy zprostředkovává dekódování požadavku, volání aplikačních funkcí, případně kódování odpovědi Webové služby a XML 5

Struktura aplikačního serveru klient aplikační program Service Proxy Service Listener klient Webové služby a XML 6

Architektura webových služeb Just-In-Time Integration dynamická integrace aplikačních služeb na základě požadavků z aplikační oblasti nezávisí na platformě, ve které jsou tyto služby implementovány poskytovatel služby publikuje popis svých služeb v registru služeb spotřebitel služby vyhledává v registru službu podle svých požadavků, používá službu Webové služby a XML 7

Příklad aplikace využívající WS komponenta WSDL služba rozhraní UDDI adresář Vývojové prostředí SOAP / HTTP Java aplikace Webové služby a XML 8

Vrstvová architektura Network základní komunikace, adresování, směrování, totéž jako síťová vrstva TCP/IP Transport přímá komunikace mezi aplikacemi po síti; může být použit téměř libovolný transportní protokol, např. TCP, HTTP (nejčastější), SMTP, Jabber Packaging balení dat do formátu, jemuž rozumějí všichni účastníci (serializace, marshalling) HTML (?), XML a odvozené formáty (SOAP, XML-RPC) Webové služby a XML 9

Vrstvová architektura Description popis služby a protokolů nižší úrovně, které podporuje WSDL (Web Service Description Language), RDF (Resource Description Framework), DAML (DARPA Agent Markup Language) Discovery mechanismus získávání popisů služeb od poskytovatelů Universal Description, Discovery, and Integration (UDDI), Web Services Inspection Language (WS-Inspection), ebxml Registry (WS-Inspection) Webové služby a XML 10

Simple Object Access Protocol SOAP = standardní protokol pro obalování zpráv sdílených mezi aplikacemi (obálka + sada pravidel pro reprezentaci dat v XML) Envelope Header Body Webové služby a XML 11

Formy SOAP zpráv Remote Procedure Call (RPC) základ pro distribuované výpočty vzdálené volání podprogramu, předání parametrů a výsledku Electronic Document Interchange (EDI) základ pro automatizaci zpracování podnikových transakcí přenos a interpretace dokumentů Webové služby a XML 12

Prostory jmen v XML (pozn.) prostředek pro rozlišení jmen značek a atributů z různých zdrojů prostor jmen je identifikován URI, např. http://cs.vsb.cz/katis jméno je tvořeno dvěma složkami názvem prostoru jmen a lokálním jménem implicitní prostor jmen bez prefixu Webové služby a XML 13

Prostory jmen v XML <k:student xmlns:k="http://cs.vsb.cz/katis> <k:login>wal001</k:login> <k:jmeno>johnny</k:jmeno> <k:prijmeni>walker</k:prijmeni> </k:student> <Student xmlns="http://cs.vsb.cz/katis"> <login>wal001</login> <jmeno>johnny</jmeno> <prijmeni>walker</prijmeni> </Student> Webové služby a XML 14

Příklad výměny zpráv <s:envelope xmlns:s="http://www.w3.org/2001/06/soap-envelope"> <s:header> <m:transaction xmlns:m="soap-transaction" s:mustunderstand="true"> <transactionid>1234</transaction> </m:transaction> </s:header> <s:body> <n:gettemp xmlns:n="urn:tempservice"> <city>ostrava</city> </gettemp> </s:body> </s:envelope> Webové služby a XML 15

Příklad výměny zpráv <s:envelope xmlns:s="http://www.w3.org/2001/06/soap-envelope"> <s:body> <n:gettempresponse xmlns:n="urn:tempservice"> <value xsi:type="xsd:float">12.4</value> </n:gettempresponse> </s:body> </s:envelope> Webové služby a XML 16

Příklad výměny zpráv <s:envelope> xmlns:s="http://www.w3.org/2001/06/soap-envelope"> <s:body> <s:fault> <faultcode>client.authentication</faultcode> <faultstring>invalid Credentials</faultstring> <details> <!--... --> </details> </s:fault> </s:body> </s:envelope> Webové služby a XML 17

Implementace SOAP Dostupné pro většinu používaných jazyků Podpora vývojových prostředí Generování tříd obalujících zprávy Generování WSDL podle existujících tříd Java Apache SOAP, JAX-RPC.NET Zcela transparentní přístup Webové služby a XML 18

Java a SOAP - klient import java.io.*; import java.net.*; import java.util.*; import org.apache.soap.*; import org.apache.soap.rpc.*; public class Example_client { public static void main(string[] args) throws Exception { // inicializace volání Call call = new Call(); call.settargetobjecturi("urn:tempservice"); call.setmethodname("gettemp"); call.setencodingstyleuri(constants.ns_uri_soap_enc); Webové služby a XML 19

Java a SOAP - klient // sestavení vektoru parametrů Vector params = new Vector(); params.addelement( new Parameter("city", String.class, args[1], null)); call.setparams(params); // vlastní volání služby URL url = new URL (args[0]); Response resp = call.invoke(url, ""); Webové služby a XML 20

Java a SOAP - klient // zpracování odpovědi if( resp.generatedfault()) { // nastala chyba Fault fault = resp.getfault(); System.out.println(fault.getFaultCode()); System.out.println(fault.getFaultString()); } else { // v pořádku, máme výsledky Parameter result = resp.getreturnvalue(); System.out.print(result.getValue()); System.out.println(); } } } Webové služby a XML 21

PHP a SOAP - klient require "SoapRPC.php"; $soap = new SoapRPC(); $soap->setmethodname("gettemp"); $soap->settargetobjecturi("urn:tempservice"); $soap->addparameter( new SoapParameter("city", "Ostrava")); $res = $soap->call("http://.../server.php"); if( $soap->getfault() == "TRUE" ) die($soap->getfaultstring()); echo "$result"; Webové služby a XML 22

PHP a SOAP - server require "SoapRPCServer.php"; function gettemp($city) { return 12.4; } $srv = new SoapRPCServer(); $method = $srv->getmethodname(); $cmd = "\$vresponse = $method("; $params = &$srv->parameterlist; for( $i = 0; $i < count($params); $i++ ) { if( $i ) $cmd.= ","; $cmd.= "\"{$params[$i]}\""; } $cmd.= ");"; Webové služby a XML 23

PHP a SOAP - server eval ($cmd); $srv->setmethodname($method. "Response"); $srv->resetparameter(); $srv->addparameter( new SoapParameter( "return", $vresponse, "String") ); $env = $srv->buildenvelope(); Header("Content-type: text/xml; encoding=iso-8859-2"); echo $env->marshall(); Webové služby a XML 24

C# a SOAP - klient <%@ WebService Language="c#" Class="MyWebService" %> using System; using System.Web.Services; [WebService(Namespace="http://server/wsdl")] class MyWebService : WebService { [WebMethod] public string checklogin(string login, string pass) { return "Ahoj " + login; } } Webové služby a XML 25

Java XML API Java API for XML Processing (JAXP) základní operace s XML (analýza SAX/DOM, transformace XSLT) Java API fro XML-based RPC (JAX-RPC) vzdálené volání procedur pomocí SOAP nad HTTP/HTTPS (webové služby) SOAP with Attachments API for Java (SAAJ) manipulace se SOAP zprávami JavaAPI for XML Registries (JAXR) přístup k registrům na bázi UDDI a ebxml (publikování a vyhledávání webových služeb) Webové služby a XML 26

Úloha pro cvičení Seznam jídel v menze id datum, jídlo (s, o, v), pořadí popis cena * 100, kapacita Akce zobrazení seznamu zobrazení a editace položky zrušení položky Webové služby a XML 27

Menu Datum Jídlo Pořadí Popis Cena Kč Kapacita 1. 2003-04-10 s 1 Míchaná vajíčka na slanině, 2 rohlíky, čaj. 10,50 500 2. 2003-04-10 s 2 Jablečný závin, kakao. 12,30 400 3. 2003-04-10 o 1 Vepřová pečeně, knedlík, zelí 20,10 700 4. 2003-04-10 o 2 Rybí filé, vařené brambory. 23,80 500 5. 2003-04-10 o 3 Sojový guláš, chléb 2 ks. 11,50 600 6. 2003-04-10 v 1 Smažený sýr, hranolky. 23,10 300 7. 2003-04-10 v 2 Sýrová mísa, mléko, pečivo. 12,30 200 8. 2003-05-10 o 1 Smažené krabí tyčinky, hranolky, zeleninová obloha. 30,00 100 Vložit další položku Webové služby a XML 28

Oprava položky menu Datum: Jídlo: Pořadí: Popis: Cena: Kapacita: 2003-04-10 Oběd 2 Rybífilé,vařenébrambory. 2380 500 Zapsat Webové služby a XML 29

MenuItem * ListMenuForm ListMenuAction ok DeleteMenuAction view listmenu.jsp SaveMenuAction ReadMenuAction MenuForm new save error viewmenu.jsp edit ReadMenuAction editmenu.jsp Webové služby a XML 30