Open Source im professionellen Einsatz

Newsletter abonnieren
Seite durchsuchen

HEFTARCHIV | NEWS | E-BIBLIOTHEK | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO | SHOP

user friendly

  Home  »  Heft & Abo  »  Heftarchiv  »  2006  »  01  »  Der richtige Dreh  

RSS-Feed der aktuellen News von Linux-Magazin Online Folgen Sie Linux-Magazin Online auf Twitter
Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark

© photocase.com

Python und Twisted zur Netzwerkprogrammierung

Der richtige Dreh

von Markus Franz
Erschienen im Linux-Magazin 2006/01

Das Programmieren netzwerkfähiger Anwendungen fällt mit dem Python-Framework Twisted leicht. Von Mail bis zum Chat beherrscht es die wichtigsten Internetprotokolle, auf Wunsch sogar verschlüsselt. Dieser Artikel gibt einen Überblick und demonstriert die Fähigkeiten an einem eigenen Webserver.

Viele Programmierer stehen irgendwann vor der Aufgabe, die Fähigkeit zur Netzwerkkommunikation in ihre Software zu integrieren. Soll sie nur den Inhalt einer Webseite verarbeiten, geht das noch recht einfach. Komplexere Funktionen wie umfassende E-Mail-Fähigkeiten oder ein kompletter Webserver erfordern sehr viel mehr Aufwand.

Obwohl die Python-Standardbibliothek für viele Bereiche des täglichen Programmiererlebens schon passende Module bereitstellt (im Python-Jargon: Batteries included), setzen spezielle Anwendungen externe Pakete voraus. Twisted [1] ist eine gut strukturierte und leistungsfähige Sammlung von Modulen, um Netzwerkfunktionen aller Art in Python-Programme einzuflechten.

Wer etwa einen E-Mail-Client mit Unterstützung diverser Protokolle (POP 3, SMTP, IMAP) schreiben will, dem erleichtert das Twisted-Framework die Arbeit erheblich, da er nicht bei null beginnen muss: Twisted Mail bringt bereits alle wesentlichen Mailprotokolle mit. Neben diesen enthält Twisted auch für SSH, SFTP, HTTP (auch HTTP/1.1), DNS, NNTP und Jabber fertige Module. Wer dennoch das Rad neu erfinden möchte - zum Beispiel bei der Implementierung eigener Protokolle - findet in den Twisted-Modulen »twisted.cred« und »twisted.spread« geeignete Helfer.

Netzwerk asynchron

Grundsätzlich handelt es sich bei Twisted um ein asynchrones Netzwerk-Framework. Im Gegensatz zu anderen Bibliotheken blockieren die entsprechenden Funktionen beim Aufruf also nicht. Eine Anwendung arbeitet einfach weiter, bis sie die Nachricht erhält, dass die gewünschten Daten bereitstehen. Zwar wäre dies auch mit Pythons Standardbibliothek möglich, denn das Modul »asyncore« stellt grundlegende Funktionen zum Umschalten zwischen mehreren I/O-Channels innerhalb eines Thread bereit. Aber Twisted setzt dieses Konzept in seinen Protokollen, Schnittstellen und Komponenten auf einer höheren Ebene um. Damit lassen sich Netzwerkanwendungen programmieren, die auf zusätzliche Prozesse und Threads verzichten und trotzdem mit mehreren I/O-Channels gleichzeitig umgehen.

Sehr modular

Um mit Twisted die eigene Software netzwerkfähig zu machen, muss der Programmierer zunächst herausfinden, welcher Teil des Framework ihm hilft. Die Entwickler haben Twisted beim Übergang von Version 1 zu 2 in mehrere Teilprojekte aufgeteilt, um die Übersichtlichkeit zu erhöhen. Die wichtigsten führt Tabelle 1 auf, eine komplette Liste findet sich unter [2].

Twisted setzt das Modul Zope Interface voraus, das Interfaces implementiert, die im Sprachkern von Python fehlen. Wer nur ein einziges Projekt, zum Beispiel Twisted Web oder Twisted Mail, benutzen möchte, braucht nur das jeweilige Modul von der Projektseite herunterzuladen und zu installieren. Alternativ enthält Twisted Sumo [3] alle (stabilen) Module inklusive Zope Interface.

Die Installation erledigt nach dem Auspacken der Befehl »python setup.py install«. Ist Zope Interface nicht installiert, bricht die Twisted-Installation mit einer Fehlermeldung ab.

Das Modul »twisted.cred« kümmert sich um die Authentifizierung bei der Client-Server-Kommunikation. Es erlaubt vielen Netzwerkprotokollen sich mit einem System zu verbinden, sich ihm gegenüber zu authentifizieren und dann Daten auszutauschen. Zum Beispiel übergibt die Unterstützung von POP 3 in Twisted eine Kombination aus Benutzername und Kennwort, um die angegebene Mailbox für den E-Mail-Account zu öffnen. Wichtig ist hierbei der so genannte Perspective Broker, der den Zugriff auf entfernte Objekte (Remote Objects) bereitstellt und Kopieren, Referenzierung und Caching dieser Objekte implementiert.

Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark
Ähnliche Artikel
Postverteilung Software zur Verwaltung von Verteilerlisten
Tooltipps Werkzeuge im Kurztest
Gezähmtes Monster Workshop: Sendmail kämpft gegen Spam und Viren
Schnurlos schnurren No Cat Auth authentifiziert WLAN-Benutzer am NAT-Router
E-Post vom Sonderling Ein Mailserver auf der Basis von QMail
Rettungstunnel Hotel-Internet mit simplen Tunneltricks geknackt
Whitepaper
Usage Landscape Enterprise Open Source Data Integration

Die Nachfrage nach Datenintegrationslösungen für Unternehmen ist zunehmend gestiegen und vor allem das Interesse an Open Source Technologien wird immer größer. Doch wie und von wem werden Open Source Datenintegrationslösungen genutzt und welches Nutzungsverhalten lässt sich daraus ableiten? Das vorliegende White Paper präsentiert die Erfahrungswerte von über 1000 Open Source Nutzern und liefert fundierte Antworten auf diese Fragen.

Download PDF (Registrierung erforderlich)
Daten Migration - Eine Publikation von Bloor Research

Datenmigrationsprojekte überschreiten häufig das Budget, neigen zu Verzögerung und werden unter Umständen komplett abgebrochen. Bloor Research ist eines der weltweit führenden IT-Forschungs-, Analyse- und Beratungsunternehmen und wird in dem vorliegenden White Paper die wichtigsten Aspekte dieser Problematik näher beleuchten. Ferner werden praktische Empfehlungen für erfolgreiche Migrationsprojekte gegeben, die Sie auf Ihr nächstes Projekt übertragen können.

Download PDF (Registrierung erforderlich)
Kommentare (0)