Die Entwickler des britischen Rundfunks BBC verstehen das Python-Framework Kamaelia als Experimentierfeld für verteilte und parallele Anwendungen. Neben Netzwerk- und Concurrency-Modulen besitzt es umfassende Multimediafähigkeiten.
|
Inhalt |
|---|
|
114 | SQL-Object Objektorientiertes Datenbank-Interface für Python. 118 | 3D-Skripting OpenGL-Programme mit der Skriptsprache Tcl. 122 | Perl-Snapshot GPS-Daten mit Perl auswerten und in Landkarten einbinden. |
Der britische öffentlich-rechtliche Rundfunk BBC hat sich schon häufig als vorbildlicher Vertreter freier Software gezeigt, so bei der Entwicklung eines freien Videocodecs namens Dirac [1]. Auch ihre Archive will die BBC so weit möglich öffentlich zugänglich machen – im Gegensatz zu ihren deutschen Pendants ARD und ZDF. Weil so große Datenmengen zentral nur schwer zu beherrschen sind, experimentiert die BBC mit alternativen Distributionsmodi über Peer-to-Peer-Technologie (P2P).
Zu diesem Zweck hat die BBC-Entwicklungsabteilung das Python-Framework Kamaelia programmiert und unter eine freie Lizenz gestellt. Am Modulsystem von Lego-Baukästen und dem Verknüpfungsprinzip von Unix-Pipes orientiert, stellt Kamaelia eine Vielzahl an Bausteinen zur Verfügung, die sich zu kompletten Anwendungen kombinieren lassen. Das ist ganz wörtlich zu verstehen: So gibt ein Videodecoder-Block einzelne Video-Frames aus, die ein Visualisierungs-Block auf dem Bildschirm anzeigt.
Parallelität inklusive
Kamaelia ist von Haus aus für parallele Verarbeitung ausgelegt. Dazu dient Axon, das zugrunde liegende so genannte Concurrency Framework, dessen aktuelle Version 1 die Entwickler als stabil bezeichnen. Es ermöglicht die angesprochene Verschaltung von Rechnern im Netz als Peer-to-Peer-Architektur und mit Multicast-Unterstützung. Parallelität implementiert es vorwiegend mit Python-Generatoren, die ähnlich funktionieren wie die von anderen Programmiersprachen bekannten Continuations. Als Abstraktion bietet es so genannte Mikroprozesse, die ein spezieller Scheduler verwaltet. Zur Kommunikation zwischen Prozessen dient Message Passing.
Von der Axon-Infrastruktur macht das eigentliche Kamaelia-Paket Gebrauch, das sich weiterhin in Entwicklung befindet, dessen fertige Module aber bereits sehr gut funktionieren. Darunter sind Bausteine, die von Audio- und Videohardware lesen und entsprechende digitale Mediendaten ausgeben, zum Beispiel in den Ogg-Vorbis- und -Theora-Formaten. Die BBC archiviert damit unter anderem die Streams ihrer acht Sender.
Grafische Tools
Das Kamaelia-Paket enthält einige beeindruckende Kunststücke wie einen Multicast-Ogg-Server in gut 25 Zeilen oder einen Dirac-Videoplayer in 15 Zeilen. Das folgende Listing zeigt den Kern eines Multicast-Empfängers für einen Vorbis-Audio-Stream:
pipeline(
Multicast_transceiver("0.0.0.0", 1600, "224.168.2.9", 0),
detuple(1),
VorbisDecode(),
AOAudioPlaybackAdaptor(),
)
Auch allein stehende Desktop-Programme lassen sich mit Kamaelia programmieren. Mitgelieferte Beispiele sind Kamaelia Present, ein Präsentationsprogramm, oder Kamaelia Paint, ein einfacher Bildbearbeiter. Tools wie der Axon Visualiser stellen die zu Netzwerken zusammengeschlossenen Knoten grafisch dar. Der Visual Pipe Builder lässt den Kamaelia-Programmierer die Netzwerke sogar visuell aufbauen.
Zur Installation setzt Kamaelia wenigstens Python 2.4, Libogg, Libvorbis und Libao voraus. Die grafischen Programme erfordern außerdem die Pygame-Bibliothek. Fehlen der eigenen Distribution diese Komponenten, kann man von der Kamaelia-Site ein gut 6 MByte großes Paket herunterladen, das auch alle Abhängigkeiten enthält.
Weitere Details bleiben einem künftigen Artikel zu Kamaelia vorbehalten. Wer so lange nicht warten will, findet auf der Kamaelia-Website [2] viele Beispiele und brauchbare Dokumentation.
|
Infos |
|---|
|
[1] Dirac: [http://dirac.sourceforge.net] [2] Kamaelia: [http://kamaelia.sourceforge.net] |
Copyright © 2002 Linux New Media AG





