Google App Engine Imprimeix
INTERNET - Recursos online
Escrit per Carlos Artiles Fontales   
dimecres, 30 de setembre de 2009 11:01
There are no translations available.

Descubre este servicio gratuito para la producción y alojamiento de aplicaciones Web en lenguaje Python.

Introducción

Google App Engine es un servicio gratuito que ofrece Google desde el año 2008 para la producción y alojamiento de aplicaciones Web en lenguaje Python.

Este producto ofrece la posibilidad de añadir otros desarrolladores a la producción de nuestra aplicación, el único requisito es que los "Developers" sean usuarios registrados de Google para acceder al marco colaborativo.

La infraestructura "hard" de Google se dispone en una red no centralizada de estaciones con servidores menores que alojan y corren las distribuciones de todas sus aplicaciones, ya sea el buscador, su correo Gmail, los servicios de vídeo, Docs...

Desde mediados del 2008, Google permite utilizar esta infraestructura de manera gratuita para alojar nuestras propias aplicaciones, con las limitaciones lógicas de cualquier producto gratuito que pueden ser consultadas a la hora de registrarse y acceder al servicio, suficientes para exigencias de desarrollo en entornos educativos.

La escalabilidad y seguridad de los datos y aplicaciones están garantizados, tanto por las copias de seguridad residentes en stores lejanos como por la migración de servicio ante cualquier incidente como si de una red eléctrica de suministro en malla se tratara.

Lenguajes

Por el momento, las aplicaciones deben usar el lenguaje Python, no se descarta que en un futuro cercano aumente la disponibilidad a otros lenguajes conocidos.

Python es un lenguaje interpretado creado a principios de los 90 por Guido van Rossum, en la actualidad en nómina de Google y que está detrás de las herramientas de software el App Engine. Dispone de sitio oficial, http://www.python.org/, donde se puede encontrar todo acerca de sus características, versiones, descargas, documentación... está en inglés, también hay información interesante en castellano buscando con "Don Google" como http://pyspanishdoc.sourceforge.net/ y otros.

Versión

Google App Engine se basa en la versión Python 2.5., con un runtime limitado por cuestiones lógicas de seguridad, descartando así módulos de acceso al sistema de ficheros de bases de datos y servidor, prohibe conexiones TCP, llamadas de bajo nivel al sistema operativo, etc.

Framework

Todo proyecto de software en Internet necesita soporte de programas, bibliotecas y un lenguaje interpretado, esto es lo que se conoce como framework, el más popular open source en aplicaciones bajo Python es Django, su sitio oficial es www.djangoproject.com/, también encontramos en castellano http://django.es/. En el enlace “Documentación” del Google App Engine aparecen instrucciones de como usar Django específicamente para este servicio.

Google aporta su propio framework, sencillo y completamente integrado en el App Engine, es el framework "appweb".

Además de las APIs (interfaces de programación de aplicaciones) generales que trae la versión 2.5 de Python, webapp framework aporta 6 APIs específicas valiosas y útiles que permiten registrar y autenticar usuarios, acceder a la base de datos, enviar correos electrónicos, establecer comunicación entre aplicaciones mediante http, gestionar la caché de memoria y manipular y procesar imágenes.

El SDK (Kit de desarrollo de software) que proporciona Google acompaña un servidor para pruebas en local que imita a los servidores reales para testear las aplicaciones creadas antes de subirlas al remoto.

Este SDK incluye las librerías de las APIs disponibles y descritas anteriormente, el servidor local de pruebas y otras aplicaciones de gestión.

Manual

Presentamos a continuación, los pasos para trabajar con Google App Engine, la instalación de las herramientas necesarias, así como la creación y alojamiento en la "Cloud Google" de nuestras aplicaciones, este "how to" se ha realizado sobre XP.

1.        Descarga de Python 2.5 desde http://python.org, sección download. Hacemos click sobre la 2.5.4. que aparece al final de la lista.

 

2.        Instalación de Python siguiendo las instrucciones del instalador.

 

3.        Descarga el SDK de Google App Engine desde http://code.google.com/appengine/downloads.html.

 

  

 

4. Durante al instalación, aceptamos las condiciones de la licencia y se elegirá el directorio de instalación y se seleccionará la casilla "Add product path to user PATH".

       

5.        Verificación de la instalación del SDK lanzando el servidor de pruebas con una aplicación de ejemplo que viene incluida.

Buscamos a través de nuestro explorador de archivos la carpeta guestbook y seleccionamos y copiamos la ruta completa desde la raíz (por ej: c:appenginedemosguestbook), abrimos una sesión en línea de comandos y tecleamos: dev_appserver.py c:appenginedemosguestbook.

Con esta instrucción lanzamos el servidor con la aplicación contenida en la carpeta que pasa como parámetro. Puede haber diferencias en la ruta y carpeta que contiene la aplicación de ejemplo guestbook según la subversión 2.5. de Python descargada.

Puede ser interesante descender en la consola de comandos por el árbol del directorio a través de instrucciones CHDIR hasta la carpeta inmediatamente superior a guestbook e invocarla desde ahí.

Ten en cuenta que el ejemplo también puede venir en ruta samplesguestbook o similar, según el paquete Python descargado, por eso lo conveniente de buscarla.

Otro aspecto que es importante para que funcione el servidor de pruebas es que cada uno sustituya c:appengine por la ruta de instalación propia del SDK. Si todo ha ido bien aparecerá la ventana siguiente.

Abriendo el navegador contra la dirección http://localhost:8080/ podremos ver la aplicación guestbook.

Siempre que queramos podremos cerrar el servidor pulsando Control + C en la consola, si vemos que tarda un poco podemos actualizar el navegador para el retorno del cursor al display de comandos. Puedes escribir algo en la caja y darle al botón Sign Guestbook apareciendo lo escrito en otra respuesta del Servidor.

6.        Vamos a programar ahora nuestra primera aplicación HelloWorld, para ello creamos una carpeta llamada engine que cuelgue directamente de C:/

7.        Creamos ahora nuestro primer script en Python, abrimos bloc de notas o wordpad (Inicio, Accesorios y Bloc de Notas) y picamos el siguiente código (nota: lo que está entre paréntesis y en cursiva son comentarios aclaratorios que no deben escribirse):

print 'Content-Type: text/html' (lo que viene es texto/html para la respuesta http)

print '' (espacio)

print '<HTML>'

print '<BODY>'

print '<MARQUEE><H1>Hola Mundo, Hello World!!!!</H1></MARQUEE>' (imprime Hola Mundo y Hello World con formato H1 y en movimiento por la etiqueta marquee)

print '</BODY>'

print '</HTML>'

Lo guardamos como hola.py en la carpeta engine.

El método print escribe la cadena de texto en la salida standar por lo que al ejecutarse en un servidor web se genera la escritura de un documento respuesta a una petición http.

8.        Lo siguiente es decirle al servidor cuando debe ejecutar este script, para ello abrimos un nuevo documento en bloc de notas y escribimos lo siguiente:

application: engine (id de la aplicación)

version: 1 (versión de la aplicación)

runtime: python (de momento Google solo deja Python)

api_version: 1 (versión API utilizada)

handlers: (manejadores o lista de URls aceptadas por nuestra aplicación con sus correspondientes scripts asociados)

- url: /.*

script: hola.py

Guardamos como app.yaml en la carpeta engine. Este archivo actúa como descriptor de despliegue asociando URl's con sus correspondientes scripts, como el fichero web.xml en desarrollos Java EE. El formato yaml es un formato de serialización de datos multilenguaje que pretende ser más sencillo y legible que el XML, puedes ampliar información en http://www.yaml.org.

Abrimos la consola de comandos, arrancamos el servidor de prueba y cargamos nuestra aplicación escribiendo desde C:> lo siguiente:

dev_appserver.py engine

A continuación abrimos el servidor de pruebas con el navegador y obtenemos lo siguiente.

9.        Activación del servicio.

Si es la primera vez que subimos una aplicación a Google, tendremos que activar el servicio, para ello accedemos a http://appengine.google.com/start.

Nos autenticamos con el usuario y contraseña de Google al igual que hacemos con Gmail, Docs...
Si aún no tienes una cuenta puedes crearla dando al enlace desde la página de login.

 

Pulsamos sobre crear una aplicación y después deberemos verificar la cuenta mediante el envío por parte de Google de un código por SMS a nuestro móvil sin coste alguno.

Como España no aparece en la lista de distribución, deberemos seleccionar Other (Not Listed) y poner el prefijo 34 delante del número de nuestro móvil.

Hacemos click en Send y al poco rato recibiremos un mensaje de texto en nuestro móvil con el código a introducir en la verificación de nuestra cuenta. Este proceso de verificación sólo hay que hacerlo al crear la primera aplicación de nuestra cuenta.

Si la verificación es correcta se nos pedirá el identificador y el título de la aplicación que vamos a crear, esto es importante porque el identificador definirá la URL con la que los usuarios accederán a nuestra aplicación. En nuestro caso engine, y al comprobar la disponibilidad nos encontramos con que ya está “cogida”, optamos entonces por una ID más exótica como “ajalospajaros”, procedemos a cambiar el nombre de la carpeta de trabajo engine por ajalospajaros y en el fichero app.yaml modificamos la id de la aplicación sustituyendo también engine por ajalospajaros. Finalmente la URL de acceso de los usuarios será http://ajalospajaros.appspot.com..

Hay que tener en cuenta que si no queremos este dominio genérico appspot.com y disponemos de cuenta en Google Apps (no confundir con Google App Engine, ver artículo del Observatorio Tecnológico:http://observatorio.cnice.mec.es/modules.php?op=modload&name=News&file=article&sid=653), podremos asociar a nuestras aplicaciones los dominios que gestionemos con dicha cuenta, cambiando las DNS y los registros que se te indiquen desde Google en tu panel de administración del dominio que tengas.

10.     Subida de la aplicación.

Abrimos la consola y escribimos lo siguiente desde C>: appcfg.py update ajalospajaros

Accedemos a la aplicación creada desde  http://ajalospajaros.appspot.com