Neue Applikationen aus dem Google-Land

Google App Engine

Mit der neuen Google App Engine sollen sich eigene Applikationen einfach installieren und hochladen lassen. Sie dürfen bis zu 500 MByte Speicherplatz und 5 Millionen Pageviews pro Monat verbrauchen.

  1. Google App Engine
  2. Teil 2: Google App Engine
Ineinandergreifende Zahnräder

© Archiv

Ineinandergreifende Zahnräder

Mit der neuen Google App Engine sollen sich eigene Applikationen einfach installieren und hochladen lassen. Sie dürfen bis zu 500 MByte Speicherplatz und 5 Millionen Pageviews pro Monat verbrauchen.

Google macht es möglich: Nach Karten (Googlemaps), E-Mail (Googlemail) und den Webvarianten von Word und Excel (Google Text und Tabellen) soll die Google App Engine (GAE) in Zukunft allen registrierten Benutzern auch eigene Webapplikationen kostenlos zur Verfügung stellen. Bislang unterstützt die App Engine Web-Anwendungen in der Programmiersprache Python 2.5.2. Der Support für zusätzliche Sprachen soll in Zukunft hinzugefügt werden. Das gesamte App-Engine-Projekt befand sich im Juli 2008 noch im Preview-Release, und bietet bis zur offiziellen Veröffentlichung lediglich kostenlose (free) Accounts mit den oben genannten Einschränkungen. Danach soll es aber möglich sein, kommerzielle Varianten mit zusätzlichen Ressourcen (etwa Speicher und Bandbreite) zu erwerben. Google verspricht, dass GAE-Anwendungen auch unter großer Last und mit hohem Datenvolumen immer stabil und effizient laufen sollen. Die GAE-Umgebung umfasst die folgenden zentralen Bestandteile:

Webdesign: Google App Engine

© Archiv

Nach Einrichten eines App Engine-Accounts erstellt man zuerst eine neue Anwendung mit ID und Titel.

Google

  • einen Webserver zur Bereitstellung der Inhalte
  • einen datenbank-ähnlichen Datenspeicher, der Abfragen, Sortieren, und Transaktionen unterstützt
  • automatische Lastverteilung und Skalierung der Anwendung
  • APIs um Google Accounts zu authentifizieren und E-Mails zu versenden

Sicherheits- und Ressourcenbeschränkungen

Jede GAE-Anwendung läuft in einer gesicherten Umgebung ab, die einigen Einschränkungen unterliegt. So ist es beispielsweise nicht möglich, auf Dateien im Dateisystem zu schreiben, oder eine Datei zu erstellen. Der Lesezugriff ist auf Files beschränkt, die zusammen mit dem Anwendungscode hochgeladen wurden. Zur Speicherung von Daten muss der interne App Engine Datastore (siehe unten) verwendet werden, andere Datenbanken oder Speichermöglichkeiten werden nicht unterstützt. Durch diese Maßnahmen ist es Google möglich, die Anwendungen abhängig von der Last automatisch auf verschiedene Server zu verteilen, und unabhängig vom eingesetzten Webserver zu speichern. Andere Einschränkungen betreffen die Antwortzeit und die Datenabfragen: So muss jede Seite innerhalb weniger Sekunden eine Antwort an den Benutzer liefern, sonst wird der Prozess abgebrochen und eine Fehlermeldung ausgegeben. Die Anzahl der zurückgegebenen Ergebnisse einer Abfrage auf den Datastore ist auf 1.000 beschränkt.

App Engine einrichten

Um eine eigene Anwendung in der GAE einzurichten, gehen Sie folgendermaßen vor: Rufen Sie die URL http://appengine.google.com auf, und melden Sie sich mit Ihrem Google-Account an, beziehungsweise legen Sie einen neuen an, falls Sie noch keinen besitzen. Geben Sie dann Ihre Handynumnmer an, wählen Sie im Dropdown Country and Carrier die Option Other und klicken Sie auf Send. Google versendet daraufhin per SMS einen Freischaltcode an Ihr Mobiltelefon, welchen Sie auf der nächsten Seite eingeben müssen. Wählen Sie anschließend einen Namen und einen Titel für Ihre Anwendung aus, und schließen Sie die Anwendungserstellung mit Save ab.

Der eingegebene Name ist gleichzeitig die ID der Anwendung und wird auch beim Registrieren und Hochladen auf die Google-Server verwendet. Sie können bis zu drei unterschiedliche Anwendungen definieren, die sich gegenwärtig allerdings nicht mehr löschen lassen - wählen Sie den Namen also sorgfältig aus. Als Nächstes erscheint das Dashboard Ihrer Anwendung, das normalerweise eine Übersicht der Zugriffe, und zugreifenden URLs darstellt. In der linken Navigation können Sie Ihre Anwendung administrieren, und beispielsweise Indices und Datastores anlegen und verwalten. Als Erstes müssen Sie allerdings eine Anwendung hochladen und diese installieren.

Anwendungen entwickeln und bereitstellen

Zum Erstellen und Hochladen von Anwendungen verwendet man das von Google entwickelte und kostenlos zur Verfügung gestellte App Engine Software Development Kit (SDK). Das SDK ist für Windows, MacOS und Linux erhältlich, und benötigt zur Ausführung die Programmiersprache Python 2.5.2, welche Sie zuerst installieren sollten.

Webdesign: Google App Engine

© Archiv

In der Admin-Konsole des Entwicklunsgs-Webservers kann man alle Einträge des Datastore einsehen und ändern.

Das SDK besteht im Wesentlichen aus zwei Python-Skripts, welche Sie über die Kommandozeile aufrufen: Mithilfe des Entwicklungs-Webservers (dev_appserver. py), können Sie GAE-Anwendungen lokal auf Ihrem Rechner unter den gleichen Bedingungen wie auf dem Live-Server von Google testen. Dazu gehören die Sicherheitsbeschränkungen, Zugriff auf die Google-Accounts, Mailversand, und Zugriff auf den Datastore. Das zweite Skript (appcfg. py) sorgt für die Bereitstellung der Anwendung auf dem Live- Server von Google. Unter Windows und MacOS werden diese beiden Skripten nach der Installation zur Pfad-Variable der Kommandozeile hinzugefügt, und lassen sich direkt aufrufen. Unter Linux müssen Sie den Pfad zu den beiden Python-Dateien von Hand zur Path-Variable Ihrer Shell hinzufügen oder immer den vollständigen Installationspfad eingeben.

Hallo Welt ausführen

Als Nächstes folgt nun das klassische Hallo-Welt-Beispiel, um zu demonstrieren, wie man mit dem SDK arbeitet. Erstellen Sie zuerst ein eigenes Verzeichnis für Ihre GAE-Testanwendungen (wir verwenden den Verzeichnisnamen appengine_test). Erstellen Sie dort ein Verzeichnis hallowelt.

Webdesign: Google App Engine

© Archiv

Der Dataviewer auf der Live-Website ist allerdings komfortabler und leistungsfähiger.

Eine typische App Engine Anwendung besteht aus einer Konfigurationsdatei app.yaml und mindestens einem URL-Handler-Skript. Im Verzeichnis hallowelt legen Sie zuerst das Python-Skript hallowelt.py an, das nichts anderes tut, als einen Text auszugeben. In Python sieht das so aus:

Natürlich ist es nicht sinnvoll, alle Ausgaben direkt mit print zu formulieren. Stattdessen sollte man das Webframework von Google verwenden, das über einige Objekte verfügt, die das Programmieren von Webanwendungen erleichtern. Die gleiche Ausgabe mit dem Webframework:

print 'Content-Type: text/plain'
print 'Hallo Welt!'

Dieses Skript ist das Grundgerüst für alle Webanwendungen. Unter main() wird hier eine neue Instanz von WSGIApplication angelegt, und als Parameter eine Liste von URL-/ Requesthandler- Zuordnungen übergeben. Dabei gibt ('/', MainPage) an, dass der in der Klasse MainPage definierte Requesthandler für die Root-Url (/) zuständig ist.

import wsgiref.handlers
from google.appengine.ext import
webapp
class MainPage(webapp.
RequestHandler):
def get(self):
self.response.headers
['Content-Type'] = 'text/html'
self.response.out.write
('<html><body>Hallo Welt!</body></html>')
def main():
application = webapp.
WSGIApplication(
[('/', MainPage)],
debug=True)
wsgiref.handlers.CGIHandler().
run(application)
if __name__ == "__main__":
main()

Als Nächstes erstellen Sie die Konfigurationsdatei der Anwendung. Diese Datei muss den Namen app.yaml tragen und sich im root-Verzeichnis (also im gleichen Verzeichnis wie das Python-Skript) befinden:

Wichtig ist hier vor allem der nach application angegebene Name, mit dem die Anwendung im System identifiziert wird. Durch Angabe einer Versionsnummer (version:) können Sie verschiedene Versionen einer Anwendung definieren, und diese bei Bedarf wiederherstellen - beispielsweise wenn Sie feststellen, dass die neue Version einen Fehler enthält. Runtime und api_version betreffen die verwendete Applikationssprache und -version, hier ist bis auf Weiteres nur Python und Api-Version 1 vorgesehen. Im Bereich handlers definieren Sie, wie die Anwendung auf Aufrufe über die URL reagieren soll. Im vorliegenden Fall soll bei allen URL-Aufrufen (der reguläre Ausdruck /.* bedeutet: ein Schrägstrich gefolgt von beliebig vielen beliebigen Zeichen) das Skript hallowelt.pyaufgerufen werden. Rufen Sie jetzt den Test-Webserver des SDK auf. Wechseln Sie in das übergeordnete Verzeichnis von /hallowelt und geben Sie in der Eingabeaufforderung (oder Shell, je nach Betriebssystem) dies ein:

application: hallowelt
version: 1
runtime: python
api_version: 1
handlers:
- url: /.*
script: hallowelt.py

Wenn der Webserver korrekt gestartet wurde, erscheint jetzt die Meldung, dass die Anwendung auf Port 8080 gestartet wurde. Öffnen Sie einen Webbrowser und rufen Sie http://localhost:8080/ auf, um die Startseite anzuzeigen. Wenn Sie das Python-Skript hallowelt.py verändern, genügt nach dem Speichern ein Reload im Browser.

dev_appserver.py hallowelt

Speichern im Datastore

Mithilfe des Datastore kann man Datenobjekte - sogenannte Entities - abspeichern, und über eine Abfragesprache wieder darauf zugreifen. Der Datastore ist die einzige Möglichkeit Daten dauerhaft zu speichern und besitzt in etwa den Funktionsumfang und die Möglichkeiten einer relationalen Datenbank - inklusive Referenzen zwischen den Entities (one-to-many, many-to-many), Transaktionen und Indices. Google unterstreicht allerdings, dass es sich eben nicht um eine vollwertige Datenbank handelt und dass man beim Entwicklen von Datenmodellen auf die Eigenheiten des Datastore Rücksicht nehmen muss.Mithilfe der Datastore API beschreibt man in Python ein Datenmodell als neue Klasse welche von db.Model erbt. Die Attribute dieser Klasse entsprechen den Datenfeldern. Eine neu angelegte Instanz dieser Klasse kann dann mit der Methode put() in den Datastore geschrieben werden.

Webdesign: Google App Engine

© Archiv

Das Dashboard liefert detaillierte Informationen über Performance, Fehler, und verwendeten Ressourcen Ihrer Anwendung.

Mehr zum Thema

Whatsapp auf PC
Mit oder ohne Download

Mit Whatsapp Web oder der Whatsapp Desktop-App nutzen Sie den Messenger bequem am PC. Wir erklären Download, Installation und Einrichtung.
Whatsapp Alternativen
Für Android, iPhone, iPad & Co.

Es gibt keine Whatsapp-Alternative? Quatsch! Diese 10 Messenger-Apps für Android, iOS und Windows Phone sind der perfekte Ersatz.
Kalender synchronisiert auf iPad
Zeit-Management

Kalender auf dem Smartphone, PC und im Web synchronisieren - mit unseren 9 Tipps schaffen Sie genau das. Verpassen Sie keinen Termin mehr!
Cloud-Speicher
Meta-Cloud

Diese Meta-Dienste und Cloud-Tools fassen kostenlosen Cloud-Speicher von Google, Dropbox und Co. zusammen - oft besser als das Original.
Dropbox, Google Drive & Co.: Steckdose mit Logos
Verschlüsselung, Explorer-Zugriff & Co.

Wir haben Tipps für Add-ons und Apps für Google Drive und Dropbox. Damit kommen Verschlüsselung, Zugriff im Windows-Explorer und mehr.