Google’s App Engine
Vor kurzem hat Google wieder etwas neues vorgestellt, und zwar die App Engine. Mit der App Engine hat man die Möglichkeit eigene Webanwendungen auf der Google Infrastruktur zu betreiben. Google stellt hierfür eine komplette Entwicklungsumgebung zur Verfügung und bietet skalierbares Hosting.
Aktuell kann die App Engine nur mit Python (2.5) benutzt werden. Es aber wohl absehbar, dass dies für andere Sprachen erweitert wird. Da es sich noch um ein Preview handelt ist die Benutzung noch auf 10000 Entwickler beschränkt, wahrscheinlich gibt es schon eine ziemlich lange Warteliste…
Wenn man zu den wenigen gehört, die einen Account haben, dann erwarten einen folgende Features:
- Hosting der Webanwendung
- Persistent storage (Mit BigTable und GFS)
- Automatische Skalierung und Loadbalancing
- Google APIs
- Komplette Entwicklungsumgebung
Während der Testphase sind aber die Resourcen etwas beschränkt (je nachdem wie man es sieht):
- 500MB Speicherplatz
- ausreichend CPU (200 Millionen Megacycles pro Tag)
- 10GB Bandbreite am Tag
Das ist eigentlich schon mal gar nicht wenig. Auf jeden Fall war die Veröffentlichung von App Engine ein guter Tag für die Python Community und Django. Python ist leider noch nicht so weit verbreitet wie z.B. Perl und PHP, obwohl es die Sprache schon ziemlich lange gibt. Für Django dürfte es auch recht erfreulich sein, dass Google Teile von Django verwendet. Vielleicht wird dadurch Django ja so bekannt wie Ruby on Rails.
Von Django wurde z.B. das Template System verwendet, welches ich für eines der besten halte. Wenn ich in Richtung TurboGears schaue, wo fuer die Templates KID verwendet wird, dann bekomm ich das Grauen…
Auch das Datastorage von App Engine ist ähnlich zu Django’s data modelling API. Die Models werden z.B. wie folgt erstellt:
class Greeting(db.Model):
author = db.UserProperty()
content = db.StringProperty(multiline=True)
date = db.DateTimeProperty(auto_now_add=True)
Der grosse Unterscheid ist einfach, dass bei App Engine keine gewöhnliche SQL Datenbank wie PostgreSQL dahinter ist. Deswegen kann auch nicht SQL zur Abfrage verwendet werden, stattdessen gibt es GQL, welches eine ähnlich Syntax hat. Eine Abfrage kann z.B. mit
greetings = db.GqlQuery("SELECT * FROM Greeting ORDER BY date DESC LIMIT 10")
formuliert werden. Wenn man nun aber schon Objektorientiert Daten speichern kann, warum kann man diese dann nicht auf dem gleichen Weg wieder Abfragen? Die meisten anderen Frameworks können es ja auch…
|
Ein Kommentar zu “Google’s App Engine”
Jetzt ist das Objektorientierte Abfragen auf jedenfall möglich.
Hier mal deine Abfrage als Objektorientierte Version:
greetings = Greeting.all().order(‘-date’).fetch(10)
Gruß
Philip
Kommentar hinzufügen