Zaawansowany kurs języka Python

Podobne dokumenty
Zaawansowany kurs języka Python

Programowanie Komponentowe WebAPI

Technologie sieciowe Sprawozdanie z labolatorium. Lista 5

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

Programowanie obiektowe

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4

1 Wprowadzenie do J2EE

Programowanie i projektowanie obiektowe

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

Programowanie w Internecie

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

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

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Komunikacja i wymiana danych

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

XML-RPC: Zdalne wykonywanie procedur

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Programowanie współbieżne i rozproszone

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

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

Architektura aplikacji sieciowych. Architektura klient-serwer

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

Kurs języka Python. Wątki

Zaawansowany kurs języka Python

Aplikacje RMI

Programowanie rozproszone w języku Java

Rozproszone systemy Internetowe

SOAP. Autor: Piotr Sobczak

Instrukcja konfiguracji funkcji skanowania

Komunikacja z użyciem gniazd aplikacje klient-serwer

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

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

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

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4 Wojciech Kaczmarski

1. Model klient-serwer

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

Stos TCP/IP. Warstwa aplikacji cz.2

Wybrane działy Informatyki Stosowanej

Programowanie obiektowe

Protokoły sieciowe - TCP/IP

Wywoływanie metod zdalnych

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

Aplikacje WWW - laboratorium

Warsztaty z Sieci komputerowych Lista 7

Java wybrane technologie

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

Zaawansowany kurs języka Python

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

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

Serwery. Autorzy: Karol Czosnowski Mateusz Kaźmierczak

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

Lab5 - Badanie protokołów pocztowych

Sieci komputerowe i bazy danych

Wykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak

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

Wywoływanie metod zdalnych

Programowanie Sieciowe 2 Protokoły komunikacyjne: HTTP

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

I.Wojnicki, Tech.Inter.

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

I.Wojnicki, JiTW. Języki i Technologie Webowe. Protokół HTTP, Przegladarki. Igor Wojnicki

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

Metaprogramowanie w Ruby

Programowanie w Internecie

Wybrane działy Informatyki Stosowanej

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

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

Serwery WWW. Konfiguracja. Zadania serwera. NCSA httpd 1.5

Bezpieczeństwo systemów informatycznych

Wybrane działy Informatyki Stosowanej

Programowanie komponentowe

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

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

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

Tomasz Greszata - Koszalin

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

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Programowanie współbieżne i rozproszone

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

Systemy obiegu informacji i Protokół SWAP "CC"

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

Tworzenie i wykorzystanie usług

Sieci komputerowe. Tadeusz Kobus, Maciej Kokociński Instytut Informatyki, Politechnika Poznańska

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

Podejście obiektowe do budowy systemów rozproszonych

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

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

Serwery Statefull i Stateless

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja

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

Simple Object Access Protocol

Ministerstwo Finansów

Dokumentacja techniczna

Remote Method Invocation 17 listopada 2010

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

Języki programowania wysokiego poziomu WWW

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

I.Wojnicki, Tech.Inter.

Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5.

Transkrypt:

5 stycznia 2012

Plan wykładu 1 2 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()

Cechy Plan wykładu 1 2 Cechy

Cechy Z Object Publishing Environment

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

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

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.

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,

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

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.

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

Cechy Bezpieczeństwo Rozbudowany system uprawnień.

Cechy Obiekty prezentacji Page Templates Szablony stron dla projektant

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