XML-RPC: Zdalne wykonywanie procedur



Podobne dokumenty
Rozproszone technologie Web Services

Rozproszone systemy internetowe. Wprowadzenie. Koncepcja zdalnego wywołania procedury

RPC Remote Procedural Call. Materiały do prezentacji można znaleźć na stronie:

Simple Object Access Protocol

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Technologie internetowe

Ataki na aplikacje WWW. Łomem, czy wytrychem? Jak dobrać się do aplikacji WWW

Technologie sieciowe Sprawozdanie z labolatorium. Lista 5

Protokół HTTP 1.1 *) Wprowadzenie. Jarek Durak. rfc2616 źródło

SOAP i alternatywy. 1. WSDL. 2. Protokoły tekstowe XML-RPC. JSON-RPC. SOAPjr. 3. Protokoły binarne Google Protocol Bufers. Apache Thrift.

Obsługa incydentów bezpieczeństwa: część I, z punktu widzenia menadżera. OWASP The OWASP Foundation

Web Services. Bartłomiej Świercz. Łódź, 2 grudnia 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz Web Services

HTTP W 5-CIU PYTANIACH MICHAŁ KOPACZ

Języki programowania wysokiego poziomu WWW

Programowanie Sieciowe 2 Protokoły komunikacyjne: HTTP

Zaawansowany kurs języka Python

Programowanie Komponentowe WebAPI

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Kierunek: Automatyka i Robotyka Studia stacjonarne I stopnia: rok I, semestr II

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

HTTP. literatura:

Programowanie współbieżne i rozproszone


Sieciowe systemy informacyjne

Wybrane działy Informatyki Stosowanej

76.Struktura oprogramowania rozproszonego.

Bazy Danych i Usługi Sieciowe

Technologie Internetu. Protokół HTTP. Aleksander Denisiuk.

Rozproszone systemy Internetowe

Uwierzytelnianie HTTP

Komunikacja międzysystemowa

SOAP. Autor: Piotr Sobczak

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

Gatesms.eu Mobilne Rozwiązania dla biznesu

Dostęp do komponentów EJB przez usługi Web Services

Analiza malware'u SandroRAT_sec Kaspersky_Mobile_Security.apk

Programowanie w Internecie

I.Wojnicki, Tech.Inter.

Aplikacje Internetowe termin dodatkowy

Analiza technologii UPNP w kontekście strumieniowania multimediów. Paweł Szafer. Promotor: dr inż. doc. M. Sajkowski

Zbieranie podstawowych śladów działalności.

Wybrane działy Informatyki Stosowanej

ZESZYTY ETI ZESPOŁU SZKÓŁ W TARNOBRZEGU Nr 2 Seria: Teleinformatyka 2013

Programowanie współbieżne i rozproszone

Plan wykładu. 1. Protokół FTP. 2. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Aplikacje webowe. mgr inż. Aleksander Smywiński-Pohl. Elektroniczne Przetwarzanie Informacji

Aplikacje WWW. Wykład 4. Protokół HTTP. wykład prowadzi: Maciej Zakrzewicz. Protokół HTTP

Projekt Fstorage. Łukasz Podkalicki Bartosz Kropiewnicki

Realizacja Aplikacji Internetowych 2013 laboratorium cz. 2 K.M. Ocetkiewicz

Protokół wymiany sentencji, wersja 1

1. Model klient-serwer

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

Tworzenie aplikacji rozproszonej w Sun RPC

Wprowadzenie do języka Java

Aplikacje internetowe Koncepcja Architektura Technologie

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Komunikacja i wymiana danych

Podstawy implementacji usług sieciowych OGC

1 Wprowadzenie do J2EE

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Źródła. cript/1.5/reference/ Ruby on Rails: AJAX: ssays/archives/

Problemy z uwierzytelnianiem HTTP

Programowanie w Internecie

Architektura aplikacji sieciowych. Architektura klient-serwer

Rentgen współczesnych ataków DoS. Marcin Ulikowski Network Engineer, Atos IT Services

CGI i serwlety. Plan wykładu. Wykład prowadzi Mikołaj Morzy. Przykład: serwlety vs. szablony. Implementacja logiki prezentacji

Projektowanie stron WWW

Aplikacje WWW Wprowadzenie

Specyfikacja API 1.0. Specyfikacja kontroli Konta systemu CashBill z wykorzystaniem API opartego na REST

Serwery. Autorzy: Karol Czosnowski Mateusz Kaźmierczak

OPIS TECHNICZNY SYSTEM HOSTED SMS

Specyfikacja techniczna. mprofi Interfejs API

Geovertical Map Server API 1.2

INFORMATYKA Pytania ogólne na egzamin dyplomowy

Walidacja po stronie serwera Walidacja po stronie klienta:

Programowanie obiektowe

Wybrane działy Informatyki Stosowanej

Imię, nazwisko i tytuł/stopień KOORDYNATORA (-ÓW) kursu/przedmiotu zatwierdzającego protokoły w systemie USOS Dr Adam Naumowicz

Oprogramowanie systemów równoległych i rozproszonych. Wykład 6

Algorytmy i struktury danych. wykład 1

Kurs WWW. Paweł Rajba

Zakres egzaminu dyplomowego (magisterskiego) na kierunku INFORMATYKA

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

ZABEZPIECZENIE KOMUNIKACJI Z SYSTEMEM E-PŁATNOŚCI

HTTP, CGI, Perl. HTTP HyperText Transfer Protocol. CGI Common Gateway Interface. Perl Practical Extraction and Report Language

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Podstawy programowania. Wprowadzenie

Wybrane działy Informatyki Stosowanej

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

Adres IP

Systemy internetowe. Wykład 3 PHP. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja

Harmonogram szkoleń: Marzec 2011r./Kwiecień 2011r.

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

Bazy Danych i Usługi Sieciowe

Zaawansowany kurs języka Python

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

Część I Dostęp do danych oraz moŝliwości programowe (silnik bazy danych)

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )

Transkrypt:

XML-RPC: Zdalne wykonywanie procedur Bartłomiej Świercz Katedra Mikroelektroniki i Technik Informatycznych Łódź, 28 października 2005 roku

Wstęp Internet dostarcza wiele możliwości programistą piszącym aplikacje komunikujące się pomiędzy różnymi komputerami i systemami. Zazwyczaj projektowanie rozproszonego oprogramowania jest procesem złożonym, szczególnie jeżeli oprócz aplikacji projektuje się również protokół komunikacji. Obecnie jednak podstawowym pytaniem podczas projektowania aplikacji rozproszonej jest pytanie, który sposób komunikacji(jaką bibliotekę) należy wybrać.

Wstęp Internet dostarcza wiele możliwości programistą piszącym aplikacje komunikujące się pomiędzy różnymi komputerami i systemami. Zazwyczaj projektowanie rozproszonego oprogramowania jest procesem złożonym, szczególnie jeżeli oprócz aplikacji projektuje się również protokół komunikacji. Obecnie jednak podstawowym pytaniem podczas projektowania aplikacji rozproszonej jest pytanie, który sposób komunikacji(jaką bibliotekę) należy wybrać.

Wstęp Dwa najbardziej popularne protokoły(framework) to: CORBA DCOM Obydwie technologie są bardzo silne i pozwalają na zbudowanie dowolnej architektury połączeń. Są jednak skomplikowane.

XML-RPC XML-RPC XML-Remote Procedure Call XML-RPC jest technologią zdalnego wykonywania procedur. Jest to prosta, przenośna i niezależna od języka programowania technologia komunikacji rozproszonych systemów wykorzystująca protokół HTTP jako kanał transportowy język XML do opisu danych. http://www.xml-rpc.org

Protokół HTTP Hypertext Transfer Protocol jest protokołem warstwy aplikacji przeznaczonym dla rozproszonych i zorientowanych na media systemów informacyjnych. Jest to protokół bardzo ogólny, bezstanowy, który może być wykorzystany do dystrybucji informacji hipertekstowej oraz jako serwer rozproszonych zorientowanych obiektowo systemów(poprzez rozszerzenie metody request, kodów błędów i nagłówków). http://www.w3.org/protocols/rfc2616/rfc2616.html

Protokół HTTP- przykład Przykład zapytania do serwera HTTP GET/ HTTP/1.1 Host: localhost:8000 User-Agent: Mozilla/5.0(X11; U; Linux i686; en-us; rv:1.7.10) Gecko/20050911 Firefox/1.0.6(Debian package 1.0.6-5) Accept: text/xml, application/xml, application/xhtml+xml, text/html;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: pl,en-us;q=0.7,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive

Protokół HTTP- przykład Przykład odpowiedzi serwera HTTP HTTP/1.1 302 Found Date:Fri,28Oct200505:39:29GMT Server: Apache/2.0.54(Debian GNU/Linux) PHP/4.3.10-15 Location: http://localhost:8000/apache2-default/ Content-Length: 323 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Content-Type: text/html; charset=iso-8859-1

XML-RPC: omówienie Komunikat XML-RPC jest realizowany jako rządanie HTTP-POST. Treścią wiadomości jest struktura XML. Procedura wykonywana jest na serwerze i wynik jest zwracany jako poprawnie sformatowany dokument XML. Parametrem procedury mogą być liczby, napisy, struktury i tablice.

XML-RPC: omówienie Przykład zapytania XML-RPC POST/ HTTP/1.0 Host: localhost:9000 User-Agent: xmlrpclib.py/1.0.1 Content-Type: text/xml Content-Length: 187 <?xml version= 1.0?> <methodcall> <methodname>pow</methodname> <params> <param> <value><int>2</int></value> </param> <param> <value><int>8</int></value> </param> </params>

XML-RPC: omówienie Przykład odpowiedzi XML-RPC HTTP/1.0 200 OK Server: BaseHTTP/0.3 Python/2.3.5 Date:Wed,26Oct200511:44:59GMT Content-type: text/xml Content-length: 123 <?xml version= 1.0?> <methodresponse> <params> <param> <value><int>256</int></value> </param> </params> </methodresponse>

XML-RPC: omówienie Przykład klienta XML-RPC import xmlrpclib server = xmlrpclib.server("http://localhost:8000/") print server.pow(2, 8)

XML-RPC: omówienie Przykład serwera XML-RPC from SimpleXMLRPCServer import SimpleXMLRPCServer server = SimpleXMLRPCServer(("localhost", 8000)) server.register function(pow) server.serve forever()

Typy skalarne Znacznik: Opis: <i4> lub <int> czterobajtowa liczba całkowita ze znakiem <boolean> wartość logiczna: 0(fałsz) lub 1(prawda) <string> napis <double> liczba zmiennoprzecinkowa podwójnej precyzji <datetime.iso8601> format daty i czasu: 19980717T14:08:55 <base64> wartość binarna zakodowana algorytmem base64

Typy strukturalne <struct> <member> <name>lowerbound</name> <value><i4>18</i4></value> </member> <member> <name>upperbound</name> <value><i4>139</i4></value> </member> </struct>

Typy tablicowe <array> <data> <value><i4>12</i4></value> <value><string>egypt</string></value> <value><boolean>0</boolean></value> <value><i4>-31</i4></value> </data> </array>

Przećwiczmy to w praktyce!