Logo-TornadoDa qualche giorno mi è venuta in mente qualche idea e per questo ho dato un po un’occhiata a qualche strumento che mi poteva aiutare nello sviluppo. lo avevo già provicchiato, ma in questo weekend l’ho testato un pochettino di piu e credo sia la soluzione ad alcuni dei miei problemi. Vi starete chiedendo di cosa parlo, non se avete letto il titolo del post, ma se utilizzate  FriendFeed allora avete già testato le alcune delle potenzialità di  Tornado, un web server open source scritto in Python. Tornado realizzato dagli sviluppatori di Facebook, il noto social network per chi non lo sapesse, e messo a disposizioni di tutti distribuendo i sorgenti da settembre 2009 sotto Apache Licence Versione 2.0.
Ma cosa è Tornado e cosa fa? Come ho detto prima è un web server scalabile, non-bloccante, snello ad alte prestazioni che lo rendono particolarmente utile per i servizi web in real time. Il core, composto da un codice molto snello, quasi minimale direi, va a tutto vantaggio della velocità d’esecuzione e di una certa libertà concessa al programmatore. Non so se questa snellezza è dovuta all’”immaturità” del progetto, idea rafforzata dall’approccio piuttosto essenziale nella gestione del logging e della sicurezza, oppure se c’è stata una scelta ponderata nello scrivere il codice non tenendo conto di queste caratteristiche.
Esistono altri framework web che adempiono agli stessi scopi e molto più noti e popolari come DjangoTwisted, quest’ultimo, certamente più complesso e anche più sofisticato nei meccanismi interni visto anche il supporto a molti più protocolli. Tornado invece si come approccio e semplicità si avvicina molto più a web.py o all’AppEngine di Google, ma con ottimizzazione sul non-blocking e su alcuni strumenti.
Tornado può essere scaricato all’indirizzo tornado-0.2.tar.gz ed io l’ho provato su Snow Leopard su Linux, richiede PycURL e le librerie JSON.
Ma vediamo un po come si installa e qualche linea di codice per metterlo in moto, il resto è demandata alla vostra fantasia.
Scaricate lo zip dal link precedente e aprite una finestra di terminale e digitate:

Mac OS X 10.5/10.6


sudo easy_install setuptools pycurl==7.16.2.1 simplejson

Ubuntu Linux


sudo apt-get install python-dev python-pycurl python-simplejson

e poi decomprimete Tornado, posizionatevi nella cartella e procedete con l’installazione:


tar xvzf tornado-0.2.tar.gz
cd tornado-0.2
python setup.py build
sudo python setup.py install

Ora non ci resta che aprire il nostro editor di fiducia e creare il nostro primo web server:


import tornado.httpserver
import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Ciao, giasone")
        
class MyHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("My custom request")

application = tornado.web.Application([
    (r"/", MainHandler),
    (r"/myrequest", MyHandler),
])

if __name__ == "__main__":
    http_server = tornado.httpserver.HTTPServer(application)
    http_server.listen(8888)
    tornado.ioloop.IOLoop.instance().start() 

ora non vi resta che salvare, poi aprite il terminale e chiamare il vostro script python nomefile.py e visitate l’indirizzo http://localhost:8888/ o http://localhost:8888/myrequest dovreste vedere nel vostro browser le 2 stringhe. Non so se questo vi puo bastare, ma come potrete ben capire le potenzialità sono tante se poi consideriamo che l’integrazione con i più diffusi database come SQLite e MySQL è semplice allora vi si aprira un mondo.
Non vi resta che mettervi a lavoro quindi per il momento è tutto, se avete dubbi commentate o contattatemi.

– Fine –
Postato con Kblogo

About these ads