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



Podobné dokumenty
Webové služby a XML. Miroslav Beneš

Michal Krátký, Miroslav Beneš

Tvorba informačních systémů

Webové služby. Martin Sochor

Úvod do Web Services

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

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

Komponentní technologie

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

Softwarové komponenty a Internet

RMI Remote Method Invocation

InternetovéTechnologie

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

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

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

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

Java a Caché IV: Manipulace s objekty

Distribuované systémy a výpočty

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

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

POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE

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

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

Typický prvek kolekce pro české řazení

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

PREPROCESOR POKRAČOVÁNÍ

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

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);

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

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

Principy objektově orientovaného programování

Server-side technologie pro webové aplikace

Abstraktní datové typy: zásobník

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

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

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

UJO Framework. revoluční architektura beans. verze

Microsoft Office 2003 Souhrnný technický dokument white paper

Projekty pro výuku programování v jazyce Java

RESTful web service v Javě

Technologie JavaBeans

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

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

VYSOKÁ ŠKOLA POLYTECHNICKÁ JIHLAVA Katedra elektrotechniky a informatiky Obor Aplikovaná informatika

Fakulta elektrotechnická

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

Web Services na SOAP

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

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

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

5 Rekurze a zásobník. Rekurzivní volání metody

Teoretické minimum z PJV

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

KTE / ZPE Informační technologie

OSGi. Aplikační programování v Javě (BI-APJ) - 6 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

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

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

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

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

KIV/PIA Semestrální práce

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

KIV/PIA 2013 Jan Tichava

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

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

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

Tvorba informačních systémů

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

Architektura aplikace

RMI - Distribuované objekty v Javě

Komponentový návrh SW

NOVINKY V JEE EJB 3.1. Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze

Práce se soubory opakování

Aplikace s grafickým uživatelským rozhraním

Internet Information Services (IIS) 6.0

Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí

JAVA. Java Management Extensions JMX

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

Distribuované systémy a výpočty

Architektura COM. Historie Component Object Model (COM) Komunikace s komponentami Rozhraní komponent COM komponenty v.net.

Centrální portál knihoven

Ontologie v e-commerce

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

Stream API. Petr Krajča. Základy programovaní 4 (Java) Katedra informatiky Univerzita Palackého v Olomouci

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

Java - řazení objektů

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

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

Soubor jako posloupnost bytů

Globální architektura ROS

Zabezpečení platformy SOA. Michal Opatřil Corinex Group

Obsah. Kapitola 2 Nakupujeme na Amazonu XML-RPC... 19

Webové služby a ontologie

ISZR Referenční agent.net

ANT. Aplikační programování v Javě (BI-APJ) - 1 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

TME. ethernetový teploměr. teploměr s přenosem dat po Ethernetu. protokoly ASCII, HTTP (WEB), SMTP ( ), SNMP

Programování v Javě I. Leden 2008

Michal Podzimek

Transkript:

Obsah přednášky Webové služby a XML Miroslav Beneš 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 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 3 Webové služby a XML 4 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 1

Struktura aplikačního serveru aplikační program implementuje vlastní logiku aplikace (business logic) Struktura aplikačního serveru klient Service Listener komunikuje s okolím prostřednictvím některého transportního protokolu (HTTP, SOAP, Jabber,...) aplikační program Service Proxy Service Listener Service Proxy zprostředkovává dekódování požadavku, volání aplikačních funkcí, případně kódování odpovědi klient Webové služby a XML 5 Webové služby a XML 6 Architektura webových služeb Příklad aplikace využívající WS 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 WSDL UDDI adresář Java Vývojové prostředí rozhraní komponenta služba SOAP / HTTP aplikace Webové služby a XML 7 Webové služby a XML 8 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 2

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) 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 9 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 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 11 Webové služby a XML 12 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 3

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 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 13 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 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 4

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> 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 17 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); 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 19 Webové služby a XML 20 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 5

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(); 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 21 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.= ");"; 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 23 Webové služby a XML 24 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 6

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

MenuItem Oprava položky menu Datum: 2003-04-10 * ListMenuForm ListMenuAction ok Jídlo: Pořadí: Popis: Cena: Kapacita: Oběd 2 Rybí filé,vařenébrambory. 2380 500 DeleteMenuAction ReadMenuAction view MenuForm listmenu.jsp new SaveMenuAction save error Zapsat Webové služby a XML 29 viewmenu.jsp edit ReadMenuAction editmenu.jsp Webové služby a XML 30 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 8