Zaawansowany kurs języka Python



Podobne dokumenty
Zaawansowany kurs języka Python

Programowanie Komponentowe WebAPI

XML-RPC: Zdalne wykonywanie procedur

JĘZYK PYTHON - NARZĘDZIE DLA KAŻDEGO NAUKOWCA. Marcin Lewandowski [ mlew@ippt.gov.pl ]

Programowanie obiektowe

Technologie sieciowe Sprawozdanie z labolatorium. Lista 5

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

Kurs języka Python. Wykład 14. Marcin Młotkowski. 25 stycznia Python i Apache Pythonowe platformy aplikacyjne. Dystrybucja aplikacji w U*IX

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4

1 Wprowadzenie do J2EE

Studium przypadku Case Study CCNA2-ROUTING. Warianty projektów

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

Komunikacja i wymiana danych

Programowanie i projektowanie obiektowe

SOAP. Autor: Piotr Sobczak

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

1. Model klient-serwer

Zdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu

MODEL WARSTWOWY PROTOKOŁY TCP/IP

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

Programowanie w Internecie

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

Programowanie współbieżne i rozproszone

Kurs języka Python. Wątki

Programowanie Sieciowe 2 Protokoły komunikacyjne: HTTP

Aplikacje RMI

Programowanie rozproszone w języku Java

W celu uruchomienia kontrolera należy w katalogu głównym kontrolera z wiersza poleceń wydać następujące polecenie: $ java -jar target/floodlight.

Stos TCP/IP. Warstwa aplikacji cz.2

Instrukcja konfiguracji funkcji skanowania

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

Programowanie obiektowe

Zaawansowany kurs języka Python

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Dostęp zdalny

Simple Object Access Protocol

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

Serwery. Autorzy: Karol Czosnowski Mateusz Kaźmierczak

Warsztaty z Sieci komputerowych Lista 7

Wykład 5: Najważniejsze usługi sieciowe: DNS, SSH, HTTP, . A. Kisiel,Protokoły DNS, SSH, HTTP,

Wybrane działy Informatyki Stosowanej

Mechanizmy pracy równoległej. Jarosław Kuchta

Komunikacja z użyciem gniazd aplikacje klient-serwer

Wywoływanie metod zdalnych

Protokoły sieciowe - TCP/IP

Aplikacje WWW - laboratorium

Technologie internetowe

Zdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1

Zaawansowany kurs języka Python

Rozproszone systemy Internetowe

Kurs języka Python Wykład 8. Przetwarzanie tekstu Wyrażenia regularne Biblioteka urllib Parsowanie html'a XML

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

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http.

systemów intra- i internetowych Platformy softwarowe dla rozwoju Architektura Internetu (2) Plan prezentacji: Architektura Internetu (1)

Architektura aplikacji sieciowych. Architektura klient-serwer

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

I.Wojnicki, Tech.Inter.

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

Sieci komputerowe i bazy danych

Wywoływanie metod zdalnych

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

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja

TCP/IP. Warstwa aplikacji. mgr inż. Krzysztof Szałajko

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Systemy obiegu informacji i Protokół SWAP "CC"

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Web Services. Wojciech Mazur. 17 marca Politechnika Wrocławska Wydział Informatyki i Zarządzania

Lab5 - Badanie protokołów pocztowych

Wybrane działy Informatyki Stosowanej

Java wybrane technologie

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4 Wojciech Kaczmarski

Wybrane działy Informatyki Stosowanej

Tworzenie i wykorzystanie usług

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

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

Tomasz Greszata - Koszalin

PHP. Tematyka wykładów: Język PHP PHP i bazy danych Rozszerzenia PHP

I.Wojnicki, Tech.Inter.

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Programowanie współbieżne i rozproszone

Sieci komputerowe. Wykład 5: Warstwa transportowa: TCP i UDP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Metaprogramowanie w Ruby

Języki programowania wysokiego poziomu WWW

Podejście obiektowe do budowy systemów rozproszonych

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Wykład dla studentów Informatyki Stosowanej UJ 2012/2013

Dokumentacja interfejsu HTTPD. Platforma BSMS.PL Instrukcja podłączenia po przez http

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Remote Method Invocation 17 listopada 2010

Twisted. Silnik Twojego Internetu. Jan Urbański Ducksboard. PyWaw #25, Warszawa, 10 czerwca 2013


PROTOKOŁY OBSŁUGI POCZTY ELEKTRONICZNEJ

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu.

Aplikacje WWW Wprowadzenie

Java Enterprise Edition spotkanie nr 1 (c.d.) JavaMail

Specyfikacja techniczna. mprofi Interfejs API

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Protokół HTTP (2) I) Wprowadzenie. II) Użyte narzędzia: III) Kolejność działań

Transkrypt:

13 grudnia 2013

Plan wykładu 1 2 Wersje Cechy

Plan wykładu 1 2 Wersje Cechy

Schemat sieci HTTP, POP3, SMTP, FTP Application layer Transport layer TCP, UDP Internet

Protokół UDP Cechy protokołu Protokół jest bardzo prosty Brak kontroli dostarczonych komunikatów Stosowany tylko w lokalnych (niezawodnych) sieciach Komunikacja za pomocą gniazd

Przykład Zadanie Przesłać z komputera (nadawca/klient) do komputera (odbiorca/serwer) komunikat Hello Python.

Klient Implementacja import socket port = 8081 host = localhost s = socket.socket(socket.af INET, socket.sock DGRAM) s.sendto( Hello, Python!!!, (host, port))

Odbiorca Implementacja import socket port = 8081 s = socket.socket(socket.af INET, socket.sock DGRAM) s.bind((, port)) print Nasłuch na porcie, port while True: data, addr = s.recvfrom(1024) print Nadawca, addr, dane, data

Gniazda Inne funkcje modułu socket: gethostname() nazwa komputera gethostbyname(hostname) IP hosta gethostbyaddr(ip address) Obsługa SSL

Ambitne zadanie Zdalne monitorowanie pracy wielu komputerów za pomocą przeglądarki: Na każdym komputerze jest uruchomiony serwer http; żądanie jakiejś strony powoduje wykonanie odpowiedniej akcji, np.: http://host/uptime powoduje wykonanie polecenia uptime i zwrócenie outputu polecenia do przeglądarki; domyślnie jest wysyłana lista dostępnych funkcji.

Szczegóły protokołu http, żądanie Klient GET / HTTP/1.1 Host: www.ii.uni.wroc.pl User-Agent: Mozilla/5.0

Szczegóły protokołu http, odpowiedź Serwer HTTP/1.1 200 OK Date: Mon, 21 Dec 2009 09:14:01 GMT Server: Apache/2.0.54 (Debian GNU/Linux) Content-Length: 37402 <dane>

Obsługa HTTP Serwer webowy: obiekt klasy BaseHTTPServer.HTTPServer Obsługuje protokół http Wymaga obiektu do obsługi różnych rodzajów zapytań

Obsługa HTTP Serwer webowy: obiekt klasy BaseHTTPServer.HTTPServer Obsługuje protokół http Wymaga obiektu do obsługi różnych rodzajów zapytań Obsługa zapytań: klasa BaseHTTPRequestHandler Klasa abstrakcyjna Metody obsługujące żądania (GET, POST, HEADER,...) Metody konstrukcji odpowiedzi

Serwer Implementacja from BaseHTTPServer import * import os class MyHttpHandler(BaseHTTPRequestHandler):

Implementacja klasy MyHttpHandler Obsługa żądania GET def do GET(self): self.send response(200) self.send header( Content-type, text/html ) self.end headers() self.wfile.write( <html><head><head> ) self.wfile.write( <body> ) if self.path == /uptime : self.uptime() else : self.menu() self.wfile.write( </body></html> ) self.wfile.close()

Implementacja serwera Implementacja uptime def uptime(self): res = os.popen( uptime ).read() self.wfile.write( <h1>rezultat</h1> ) self.wfile.write( <tt> + res + </tt> )

Implementacja serwera Menu def menu(self): self.wfile.write( <h1>serwer</h1> ) self.wfile.write( <ul> ) self.wfile.write( <li><a href= uptime >uptime</a></li> ) self.wfile.write( </ul> )

Serwer http Uruchomienie całego serwera address = (, 8000) httpd = BaseHTTPServer.HTTPServer(address, MyHttpHandler) httpd.serve forever()

Klient HTTP import httplib class przegladarka: def init (self): h = self.request( komputer12, GET, /uptime/ ) resp = h.getresponse() print Kod, resp.status print resp.read()

Klient HTTP import httplib class przegladarka: def init (self): h = self.request( komputer12, GET, /uptime/ ) resp = h.getresponse() print Kod, resp.status print resp.read() Przygotowanie żądania def request(self, host, metoda, strona): naglowki = { Host : host, Accept : text/html } h = httplib.httpconnection(host) h.request(metoda, strona,, naglowki) return h

Klient http Wywołanie przegladarka()

Batteries Included Standardowe biblioteki ftplib, poplib, mmtplib, nntplib, email, mimetools, mimetypes, base64

Batteries Included Standardowe biblioteki ftplib, poplib, mmtplib, nntplib, email, mimetools, mimetypes, base64 Dla piratów TinyP2P

foo(args) wynik

Wykorzystywane protokoły General InterORB Protocol Remote Java Invocation RPC.NET Remoting XML RPC...

Zadanie Serwer obliczający zdalnie n-tą liczbę Fibonacciego

Serwer Implementacja funkcjonalności def fib(n): if n 2: return 1 return fib(n - 1) + fib(n - 2)

Serwer Implementacja funkcjonalności def fib(n): if n 2: return 1 return fib(n - 1) + fib(n - 2) Implementacja serwera from SimpleXMLRPCServer import * server = SimpleXMLRPCServer(( localhost, 8002)) server.register function(fib) server.register function(lambda x, y: x + y, add ) server.serve forever()

Klient Implementacja import xmlrpclib server = xmlrpclib.server( http://localhost:8002 ) print server.fib(10) print server.add(2,3)

SOAP Simple Object Access Protocol Rozszerzenie XML-RPC Standard W3C Brak bibliotek w standardowej dystrybucji Pythona Istnieją niezależne implementacje SOAP, np. SOAPPy

Serwisy SOAP Publiczne serwisy SOAP Google Amazon Allegro

Serwer wielowątkowy Jak zrobić wielowątkowy serwer XML RPC?

Rozwiązanie Klasy domieszkujące (mix ins) SocketServer.ThreadingMixIn SocketServer.ForkingMixIn

import SocketServer from SimpleXMLRPCServe import SimpleXMLRPCServer

import SocketServer from SimpleXMLRPCServe import SimpleXMLRPCServer class AsyncServer(SocketServer.ThreadingMixIn, SimpleXMLRPCServer): pass server = AsyncServer((, 8002))

import SocketServer from SimpleXMLRPCServe import SimpleXMLRPCServer class AsyncServer(SocketServer.ThreadingMixIn, SimpleXMLRPCServer): pass server = AsyncServer((, 8002)) server.register function(foo) server.serve forever()

Wersje Cechy Plan wykładu 1 2 Wersje Cechy

Wersje Cechy Z Object Publishing Environment

Wersje Cechy Co to jest Pierwsza 1 obiektowa platforma webowa. 1 nie umiem tego zweryfikować ;-)

Wersje Cechy Co to jest Pierwsza 1 obiektowa platforma webowa. Popularność przyczyniła się do popularności Pythona 1 nie umiem tego zweryfikować ;-)

Wersje Cechy Początki Pierwsze wersje 1995: system do zarządzania reklamami w internecie, jako wspólne przedsięwzięcie kilku firm. Utworzenie później Corp.

Wersje Cechy Początki Pierwsze wersje 1995: system do zarządzania reklamami w internecie, jako wspólne przedsięwzięcie kilku firm. Utworzenie później Corp. 1998 Powstanie 2, przyłączenie PythonLabs (pracował tam Guido van Rossum).

Wersje Cechy Później 2004 Wydanie 3 (BlueBream): całkowicie przepisany

Wersje Cechy Zastosowania Plone Oparty o system zarządzania treścią.

Wersje Cechy W pełni obiektowy Wszystko jest obiektem: nie ma plików ani katalogów, są obiekty i obiekty zawarte w innych obiektach; Przykład: zawieranie plików Python/index.html może oznaczać obiekt klasy Protokol w obiekcie Folder o nazwie Python.

Wersje Cechy W pełni obiektowy Wszystko jest obiektem: nie ma plików ani katalogów, są obiekty i obiekty zawarte w innych obiektach; Przykład: zawieranie plików Python/index.html może oznaczać obiekt klasy Protokol w obiekcie Folder o nazwie Python. jest mechanizm tworzenia podklas i dziedziczenia,

Wersje Cechy Trwałość obiektów ZODB: Object Database Obiektowa baza danych, implementująca transakcje, historię (z undo).

Wersje Cechy Trwałość obiektów ZODB: Object Database Obiektowa baza danych, implementująca transakcje, historię (z undo). ZEO: Enterprise Objects Rozszerzenie ZODB o wielodostęp.

Wersje Cechy URL URL jest odwzorowywany na obiekty i ew. na metody. Wynikiem działania metody może być np. tekst html owy.

Wersje Cechy Bezpieczeństwo Rozbudowany system uprawnień.

Wersje Cechy Obiekty prezentacji Page Templates Szablony stron dla projektantów.

Wersje Cechy Obiekty prezentacji Page Templates Szablony stron dla projektantów. Document Template Markup Language Programowalne strony webowe dla programistów.