Eine eigene Wolke für Anwendungen

10gen: Komplette Plattform zum Ablauf von Webanwendungen

Markus Stäuble

Die Zahl an unterschiedlichen Frameworks, Technologien und auch Sprachen zur Entwicklung von modernen Webanwendungen ist schwer zu überblicken und steigt zudem noch täglich an. Diese große Auswahl kann auch zur Qual werden, denn Frameworks können mitunter auch noch kombiniert werden, da selten ein Framework alle notwendigen Punkte für die Zielanwendung abdeckt. In letzter Zeit geht der Trend aber auch dahin, sich diese Auswahl abnehmen zu lassen, d.h. weg vom Framework hin zur Plattform. Solch eine Plattform ist die vor kurzem als OpenSource veröffentliche Plattform 10gen.

Ende Juli konnte man im Blog von 10gen lesen, dass die Plattform nun Open Source zur Verfügung steht. Die Plattform wird in einem Mix aus unterschiedlichen Lizenzen angeboten. Einer der Mitwirkenden bei 10gen ist Geir Magnussen Jr., bekannt u.a. durch die Open-Source-Java-SE-Implementierung Apache Harmony. 10gen positioniert sich als Basis für eine PaaS (Platform as a Service) Platform, ähnlich der Google App Engine. Die Architektur von 10gen ist schematisch in Abbildung 1 dargestellt.

Abb. 1: Die Architektur von 10gen im Überblick

Der Applicationserver mit dem Namen „Hedley“ ist Java-basiert und unterstützt JavaScript und Ruby als Sprache für die Anwendungen. Zur Anwendungsentwicklung steht ein MVC-Framework (Djang10) zur Verfügung, das sich sehr an das aus Python bekannte Framework Django anlehnt. Der Ort für die Datenspeicherung ist die objektorientierte Datenbank Mongo. Es existiert auch ein Datensystem namens GridFS, das aber ebenfalls auf Mongo aufbaut. Das Ganze ist eingehüllt in eine Grid Management, um das Cloud Computing Konzept vollständig zu machen.

Cloud Computing – Das Ding mit der Wolke

Das Prinzip des Cloud Computing fällt häufig im Zusammenhang mit dem Begriff Grid Computing. Eines der Merkmale von Grid Computing ist die Koordination von Ressourcen, die keiner zentralen Instanz ungeordnet sind, unter Einsatz von offenen und standardisierten Protokollen. Cloud Computing selbst wird derzeit von den Großen der Branche umkämpft. Zunächst einmal Microsoft mit LiveMesh als auch Apple mit MobileMe. Hierbei wird immer von der „Wolke“ gesprochen. Die Wolke ist im Cloud Computing der große Datenspeicher. D.h. auf einem Client des Benutzers werden Änderungen gemacht und in der Wolke gespeichert. Alle anderen Clients des Benutzers werden danach automatisch durch die Wolke synchronisiert. Auch IBM hat eine Cloud Computing Initiative am laufen, treffender Name „Blue Cloud“. Mit der Google App Engine als auch 10gen wird der Anwendungsentwickler nun auch mit diesem Prinzip konfrontiert.

Ein Selbstversuch

Um selbst auszuprobieren, wie sich 10gen anfühlt, steht bereits ein SDK zur Verfügung. Aktuell in Versionen für Linux und Mac OS X. Nach dem Download und Entpacken des SDK-Archivs wird die mitgelieferte Datenbank Mongo über ./dbctrl.sh start im Hauptverzeichnis des entpackten SDK gestartet. Der darauf folgende Schritt besteht aus dem Start des Applikationsservers mit einer der drei mitgelieferten Beispielanwendungen (befinden sich alle im Unterverzeichnis sites). Als Einstieg eignet sich die SampleSite (Verzeichnis sites/samplesite) sehr gut. Für den Start dieser Anwendung muss das Kommando ./runserver.sh ./sites/samplesite/ im Hauptverzeichnis des SDK abgesetzt werden. Die gestartete Anwendung kann im Browser über Port 8080 aufgerufen werden.

Abb. 2: Die erste eigene Anwendung in Aktion
Geschrieben von
Markus Stäuble
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.