Distribuované systémy a výpočty

Podobné dokumenty
Distribuované systémy a výpočty

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

RMI Remote Method Invocation

Zabezpečená middleware komunikace

Čipové karty Lekařská informatika

KTE / ZPE Informační technologie

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

KIV/PIA 2013 Jan Tichava

Úvod do programovacích jazyků (Java)

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

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

Java a Caché IV: Manipulace s objekty

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

Příklad aplikace Klient/Server s Boss/Worker modelem (informativní)

Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo

PREPROCESOR POKRAČOVÁNÍ

Java Výjimky Java, zimní semestr

Tvorba informačních systémů

Java - řazení objektů

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

IW5 - Programování v.net a C# 4 Pokročilé konstrukce C#

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ

Webové služby a XML. Miroslav Beneš

Výjimky. Tomáš Pitner, upravil Marek Šabo

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

Michal Krátký, Miroslav Beneš

Programátorské večery. Tomáš Herceg Microsoft Student Partner

Java - výjimky. private void vstup() throws IOException {... }

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

Neměnné objekty. Tomáš Pitner, upravil Marek Šabo

Generické programování

Principy objektově orientovaného programování

Java Řetězce Java, zimní semestr

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

Teoretické minimum z PJV

Dědičnost (inheritance)

Úvod do programovacích jazyků (Java)

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

Úvod do programovacích jazyků (Java)

public class Karel { private int position; public boolean issmiling; public int getposition() { return position;

UJO Framework. revoluční architektura beans. verze

20. Projekt Domácí mediotéka

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

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

Zápis programu v jazyce C#

Definice třídy. úplná definice. public veřejná třída abstract nesmí být vytvářeny instance final nelze vytvářet potomky

Typický prvek kolekce pro české řazení

Datové typy v Javě. Tomáš Pitner, upravil Marek Šabo

Robert Haken [MVP ASP.NET/IIS, MCT] software architect, HAVIT, Perly code-review z praxe

Soubor jako posloupnost bytů

Jazyk C# (seminář 6)

RMI - Distribuované objekty v Javě

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

7. Dynamické datové struktury

Programování v Javě I. Únor 2009

Doxygen. Jakub Břečka

Distribuované systémy a výpočty (14) 7/1/2008

ios Cvičení RSS čtečka

Výčtový typ strana 67

Abstraktní datové typy: zásobník

JAVA. Java Management Extensions JMX

Osnova přednášky. Programové prostředky řízení Úvod do C# II. Přístup ke členům. Členy (Members)

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

Programování v Javě I. Leden 2008

Iterator & for cyklus

Java Cvičení 05. CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics

JAVA RMI Java, letní semestr 2018

IRAE 07/08 Přednáška č. 7. Začátek (head)

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

IRAE 07/08 Přednáška č. 2. atr1 atr2. atr1 atr2 -33

Algoritmizace a programování

Semin aˇr Java V yjimky Radek Ko ˇc ı Fakulta informaˇcn ıch technologi ı VUT Unor 2008 Radek Koˇc ı Semin aˇr Java V yjimky 1/ 25

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

JavaServer Faces Zdeněk Troníček

ISZR Referenční agent.net

Úvod do CORBY. Svetlozara Arabadzhieva

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Datové struktury. alg12 1

Jazyk C# (seminář 5)

IRAE 07/08 Přednáška č. 1

API pro volání služby kurzovního lístku KB

JAVA. Další jazyky kompilovatelné do Java byte-code

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

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

George J. Klir. State University of New York (SUNY) Binghamton, New York 13902, USA

Chain of responsibility

HTTP. Webový server. generátor HTML stránek (CGI, Perl, PHP, Python, Ruby, Java, ASP.NET) zpracování požadavku/ odeslání odpovědi.

Podmínky na zápočet. Java, zimní semestr

7. Datové typy v Javě

Skriptovací jazyky. Obsah

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

Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.

Základy Guice Vazby Scopes. Google Guice. základní seznámení s frameworkem Google Guice

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

PB161 Programování v jazyce C++ Přednáška 10

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

public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text());

NA CO SI DÁT POZOR V JAVASCRIPTU? Angular.cz

Jazyk C# a platforma.net

Transkript:

Distribuované systémy a výpočty X36DSV Jan Janeček

XML-RPC jednoduchá definice www.xmlrpc.com implementace obvykle opřené o XML parser X36DSV - Distribuované systémy a výpočty (3) 2

XML-RPC jednoduché datové typy boolean int double string <boolean> 1 </boolean> <i4> 42 </i4> <int> 42 </int> datetime.iso8601 <double> -12.53 </double> <string> Hello world! </string> <datetime.iso8601> 19980717T14:08:55 </datetime.iso8601> X36DSV - Distribuované systémy a výpočty (3) 3

XML-RPC složené datové typy array struct <array> <data> <value><i4>1404</i4></value> <value> <string>something here</string> </value> <value><i4>1</i4></value> </data> </array> <struct> <member> <name>foo</name> <value><i4>1</i4></value> </member>... </struct> X36DSV - Distribuované systémy a výpočty (3) 4

XML-RPC rozšiřující datové typy base64 nil <base64> ew91ignhbid0ihjlywqgdghpcye= </base64> <nil/> X36DSV - Distribuované systémy a výpočty (3) 5

XML-RPC request POST /RPC2 HTTP/1.0 User-Agent:... Host:... Content-Type: text/xml Content-length: 181 <?xml version="1.0"?> <methodcall> <methodname>examples.getstatename</methodname> <params> <param> <value><i4>40</i4></value> </param> </params> </methodcall> X36DSV - Distribuované systémy a výpočty (3) 6

XML-RPC response HTTP/1.1 200 OK Connection: close Content-Length: 158 Content-Type: text/xml Date: Fri, 17 Jul 2005 19:55:08 GMT Server:... <?xml version="1.0"?> <methodresponse> <params> <param> <value><string>south Dakota</string></value> </param> </params> </methodresponse> X36DSV - Distribuované systémy a výpočty (3) 7

XML-RPC fault <?xml version="1.0"?> <methodresponse> <fault> <value> <struct> <member> <name>faultcode</name> <value><int>4</int></value> </member> <member> <name>faultstring</name> <value><string>too many parameters.</string></value> </member> </struct> </value> </fault> </methodresponse> X36DSV - Distribuované systémy a výpočty (3) 8

XML-RPC implementace jednoduchá implementace - i bez web serveru, - jako samostatný program (standalone) - ale často se opírá o běžný (pomalý) XML parser implementace v řadě jazyků Perl Python C / C++ Java Ruby možnost vzájemného kombinování X36DSV - Distribuované systémy a výpočty (3) 9

Apache XML-RPC Client public class JavaClient { private final static String server_url = "http://xmlrpc-c.sourceforge.net/api/sample.php"; public static void main (String [] args) { try { XmlRpcClient server = new XmlRpcClient(server_url); Vector params = new Vector(); params.addelement(new Integer(5)); params.addelement(new Integer(3)); Hashtable result = (Hashtable) server.execute ("sample.sumanddifference", params); int sum = ((Integer) result.get("sum")).intvalue(); int difference = ((Integer) result.get("difference")).intvalue(); X36DSV - Distribuované systémy a výpočty (3) 10

Apache XML-RPC Client continuation System.out.println("Sum: " + Integer.toString(sum) + ", Difference: " + Integer.toString(difference)); catch (XmlRpcException exception) { System.err.println("JavaClient: XML-RPC Fault #" + Integer.toString(exception.code) + ": " + exception.tostring()); catch (Exception exception) { System.err.println("JavaClient: " + exception.tostring()); X36DSV - Distribuované systémy a výpočty (3) 11

Apache XML-RPC Standalone server public class JavaServer { public JavaServer () { // Our handler is a regular Java object. It can have a // constructor and member variables in the ordinary fashion. // Public methods will be exposed to XML-RPC clients. public Hashtable sumanddifference (int x, int y) { Hashtable result = new Hashtable(); result.put("sum", new Integer(x + y)); result.put("difference", new Integer(x - y)); return result; X36DSV - Distribuované systémy a výpočty (3) 12

Apache XML-RPC Standalone server continuation public static void main (String [] args) { try { // Invoke me as <http://localhost:8080/rpc2>. WebServer server = new WebServer(8080); server.addhandler("sample", new JavaServer()); catch (Exception exception) { System.err.println("JavaServer: " + exception.tostring()); X36DSV - Distribuované systémy a výpočty (3) 13