Cush: Eine Shell fürs Cloud Computing

Der australische Entwickler Sam Johnston hat mit Version 1.0 den ersten Prototyp seiner Cloud User Shell (Cush) veröffentlicht. Sie soll die Prinzipien der Unix-Kommandozeile auf das Cloud Computing im Web übertragen.

Das Konzept hinter Cush ist wie folgt: Die altbekannten Programme für die Unix-Kommandozeile erledigen jeweils eine Aufgabe gut, lassen dich mit Pipes kombinieren und kommunizieren miteinander mittels Textströmen. Auch beim Cloud Comutping im Web soll es Komponenten für jeweils einen Zweck geben. Sie arbeiten ebenfalls zusammen, aber mittels HTTP-Requests.

Johnstons Python-Skript Cush verhält sich als Multi-Call-Programm, vergleichbar dem Busybox-Binary: Es lässt sich unter mehreren Namen aufrufen und führt dann verschiedene HTTP- und WebDAV-Anfragen aus. Dazu erstellt Cush bei der Installation für jede Methode einen Link, über den sich diese aufrufen lässt:

~/bin/cush$ ./cush.py install
Installing... linked: @ linked: @@ linked: trace linked: get linked: propfind linked: head linked: update linked: ls linked: install linked: put linked: rm linked: post linked: uninstall linked: options linked: delete
Done.

Diese Operationen kann Cush an lokalen Dateien und an URLs im Web ausführen, vorausgesetzt, die Gegenstelle im Web unterstützt die gewünschte Methode:

$ get http://localhost/uploads/brown.txt
The quick brown fox jumps over the lazy dog.
$ get file:///tmp/red.txt
The quick red fox jumps over the lazy dog.

Cush-Befehle lassen sich auch in mit Pipes zusammengesetzten Befehlsketten verwenden:

$ get http://local/uploads/brown.txt | sed -e 's/brown/red/' | put http://local/uploads/red.txt

Die Methode “@” dereferenziert URLs. So lassen sich Dienste im Web zu HTTP-Pipelines verketten. Johnstons Beispiel: Eine Mail wird zunächst an einen Spamfilter-Dienst geschickt, der einen Spam-Header setzt, falls beispielsweise der Begriff “Viagra” im Text auftaucht. Die folgende Pipe schickt das Ergebnis per HTTP-Request an eine Web-Skript, das einen Disclaimer am Ende anhängt.

$ cat rfc822-spam.txt |@ http://localhost/cgi-bin/spam-vapouriser.cgi |@ http://localhost/cgi-bin/legal-notifier.c
X-Spam-Flag: YES
Received: by 10.150.96.14 with HTTP; Tue, 5 Aug 2008 04:52:14 -0700 (PDT)
Message-ID: <21606dcf0808050452l74eee336g6bac459463c17f79@mail.gmail.com>
Date: Tue, 5 Aug 2008 13:52:14 +0200
From: "Sam Johnston" <samj@samj.net>
To: "Sam Johnston" <samj@samj.net>
Subject: Cloud Computing User Shell (cush)
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Delivered-To: samj@samj.net
Check out Viagra - it rocks.
This message is confidential.

Die Cloud User Shell (Cush) steht unter GPLv3 auf der “Projektseite zum Download bereit. Dort finden sich noch mehr Anwendungsbeispiele für das Programm. Cush besteht lediglich aus einer einzigen Python-Skript-Datei. Sie enthält neben dem Programm auch den Installations- und Update-Mechanismus.

E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben