Facebook gibt Framework für Echtzeit-Web-Dienste frei
Das Social-Network Facebook veröffentlicht ihr Web-Server-Framework »Tornado« als Open-Source. Dessen Stärke liegt daran, dass es gleichzeitig Tausende von Verbindungen handhaben kann.

Informationen auf einer Website in Echtzeit zu aktualisieren, ist eine Herausforderung, wenn parallel sehr viele Verbindungen aktiv sind. FriendFeed hat für ihre Website daher das Framework »Tornado« entwickelt. Nachdem Facebook Friendfeed gekauft hat, stellen sie das in Pyhton geschriebene Web-Server-Framework nun als Open-Source zur Verfügung. Die Stärke liegt darin, dass es gleichzeitig Tausende von Connections handhaben kann (Non-Blocking-Architektur). Dabei ähnelt Tornado auch bestehenden Frameworks wie Django, Googles Webapp und »web.py«.
Tornado unterstützt Templates. Dabei lassen sich auch die von Django verwenden. Weitere Funktionen sind Cookie-Dienste, Anwender-Authentifizierung, Sicherheit, Lokalisierung oder intensives Caching von statischen Dateien. Tornado bietet Schutz gegen Cross-Site-Request-Forgery.
Außerdem unterstützt Tornado mit dem Modul »auth« die Authentifizierung über Dritte wie Facebook-Connect, Google-OpenID/OAuth, Yahoo-BBauth oder Twitter-OAuth. Das »s3server«-Modul stellt einen Web-Server bereit, der den größten Teil des »S3«-Interfaces von Amazon implementiert. Das Modul »database« liefert einen einfachen Wrapper für einen einfacheren Einsatz von MySQL.
Facebook hat ein paar Lasttests gefahren, in denen das Framework deutlich performanter aussah als andere. Das Basis-Modul von Tornado ist relativ schlank gehalten. Die zusätzlichen Funktionen wie Cookies lassen sich bei Bedarf nutzen. Für Friendfeed im Produktivsystem setzt Facebook »nginx« als Load-Balancer und Datei-Server ein. Typischerweise läuft dabei ein Tornado-Frontend pro Kern auf der Maschine.