Twcrashcourse

360 views

Published on

Simple presentation on Twisted fundamentals.

Originally part 4 of a 4 lectures seminar for the Networking class of the Computer Science course at the University of Parma

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
360
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Twcrashcourse

    1. 1. Twisted CrashCourseEnrico Franchi
    2. 2. Cosa fa per la maggior parte del tempoun’applicazione di rete?
    3. 3. Cosa fa per la maggior parte del tempoun’applicazione di rete? ATTENDE!
    4. 4. Modelli Pratici
    5. 5. Modelli Pratici Modello a Processi fork(), ... Buona protezione, buona efficienza, non sempre facilissimo
    6. 6. Modelli Pratici Modello a Processi fork(), ... Buona protezione, buona efficienza, non sempre facilissimo Modello a Thread pthreads, Java Nessuna protezione (a meno che Queues), efficienza non buona (su macchine multicore), parecchio complesso
    7. 7. Modelli Pratici Modello a Processi Modello ad Eventi fork(), ... “select”, Twisted, ACE, Buona protezione, buona GUI (ma non per I/O) efficienza, non sempre Protezione totale facilissimo Ottima efficienza (a Modello a Thread patto...) pthreads, Java Più complesso da capire Nessuna protezione (a meno la prima volta, semplifica il che Queues), efficienza non lavoro dopo buona (su macchine Prima di Twisted, n-mila multicore), parecchio complesso interfacce
    8. 8. Concetti BaseLa logica dietro a Twisted non è dissimileda quella dietro le GUI Reactor (run-loop) Eventi di I/O invece che “bottone premuto” Ma in effetti si integra perfettamente con le GUI (Qt, Windows, Cocoa, Tk, ...)Quando accade x, tu fai f(x), se questo vamale fai error(x).
    9. 9. TwistedCore Twisted Protocolli TCP HTTP UDP SMTP SSL POP3 Multicast IMAPImplementa: IRC Client FTP Server SSH Modelli di autenticazione ...
    10. 10. ReactorNucleo di un programma Twisted: Il programma descrive come reagire agli eventi Quando accade qualcosa, il reactor “reagisce”Molti reactor (a seconda della piattaforma) select, poll, epoll, kqueues, win-stuff
    11. 11. DeferredUn oggetto deferred è un “segnaposto”che sta per qualcosa di cui nonconosciamo ancora il valore. Agganciamo callback ed errback Quando abbiamo il valore, le callback (o le errback) sono chiamateIl concetto di deferred è completamentecentrale a Twisted
    12. 12. Implementare...Tipicamente per implementare un protocollodefiniamo: Un Protocol, che descrive il protocollo Una Factory, che genera un nuovo Protocol per ogni clientNon c’è problema di deadlock/race conditions:è tutto sequenziale asincronoFortunatamente la maggior parte dei protocollisono stati implementati: poche linee di codicecreano un servente di classe enterprise
    13. 13. Buttiamoci... Cominciamo da un esempio “facile facile” Scriviamo un semplice client e server SMTP Last but not least (se il tempo lo permette): Sistema di Autenticazione/Validazione Perspective Broker (RPC “Python Way”) Condivisione diretta di oggetti! XMLRPC a gogo.
    14. 14. 1. Credentials list of interfaces 2. Credentials Credentials 3. Avatar ID Checker Portal 4. Avatar ID list of interfaces Realm6. Avatar matching 5. Avatar ID interface matching interfaces Autenticazione
    15. 15. Entità (1) Credentials Informazioni utilizzate per identificare e autenticare un utente (es. username e password) Avatar Un oggetto sul server che “fa cose per conto dell’utente” Avatar ID Una chiave per ottenere un avatar
    16. 16. Entità (2) Credentials Checker Prende delle credenziali e le verifica. Ritorna un Avatar ID Realm Da accesso a tutti gli avatar: prende un avatar id e restituisce un avatar Portal Unisce un realm con un insieme di credential checkers

    ×