AppEngine Print
INTERNET - Recursos online
Written by Carlos Artiles Fontales   
Monday, 14 June 2010 00:00
There are no translations available.

Google App Engine es una plataforma de desarrollo de aplicaciones Web que nace en Abril de 2008 y que en sus orígenes corría únicamente sobre Python.

En el siguiente enlace se puede ver un artículo que habla sobre las características de este servicio, cómo darse de alta y desarrollar una aplicación Hola Mundo en Python que corra en local y en el cloud Google.

http://observatorio.cnice.mec.es/index.php?option=com_content&view=article&id=735&catid=28%3Arecursos-online&Itemid=38&lang=es

 

Aproximadamente un año después de ver la luz, Google añade otro lenguaje de desarrollo, se trata de Java. Este artículo explicará como realizar la configuración necesaria para poder trabajar en local y en remoto con nuestras aplicaciones Java.

Además, este servicio puede desarrollarse con cualquier otro lenguaje que sea compatible con la Java Virtual Machine, como Ruby o JavaScript.

De momento PHP no está soportado, aunque se espera que sea el próximo paso en App Engine. Aún así podemos hacerlo correr a través de la implementación libre de PHP llamada Quercus. Existe más información disponible sobre este Open Source en http://www.caucho.com/products/quercus/

Se va a realizar este manual sobre una distribución Ubuntu, en concreto, sobre Max 5.0, de la Comunidad de Madrid con el kernel actualizado a 2.6.31-17-generic.

App Engine utiliza el standar Java Servlet para aplicaciones web. Los Servlet son objetos diseñados para correr en contenedores y son usuales en aplicaciones web dinámicas que hacen peticiones y demandan respuestas de los servidores a través de navegador.

App Engine ejecuta las clases de servlet de tu aplicación para procesar solicitudes y preparar respuestas en el entorno seguro que es la JVM (Java Virtual Machine).

El servlet, que no es otra cosa que un contenedor de clases java, se ejecuta en el servidor, a diferencia del conocido applet que lo hace en el navegador del usuario.

App Engine ejecuta el servlet con un objeto de solicitud y un objeto de respuesta y, a continuación, espera a que el servlet rellene el objeto de respuesta para enviarlo al usuario.

El ciclo de vida de un Servlet se divide en los siguientes puntos:

  1. El cliente solicita una petición a un servidor vía URL.

  2. El servidor recibe la petición.

    1. Si es la primera, se utiliza el motor de Servlets para cargarlo y se llama al método init().
    2. Si ya está iniciado, cualquier petición se convierte en un nuevo hilo. Un Servlet puede manejar múltiples peticiones de clientes.
    3. Se llama al método service() para procesar la petición devolviendo el resultado al cliente.
    4. Cuando se apaga el motor de un Servlet se llama al método destroy(), que lo destruye y libera los recursos abiertos.

Por otro lado, cuando más adelante se esté ante el servlet picando código en modo consola en Eclipse se verá que aparece un fichero XML. App Engine necesita de este archivo de configuración adicional para poder desarrollar y ejecutar la aplicación. Este archivo se denomina appengine-web.xml y se ubica en WEB-INF/ junto a web.xml. Incluye la ID registrada de la aplicación (Eclipse la crea a partir de una ID vacía que rellena el usuario), el número de versión de la aplicación y listas de archivos que se deben tratar como archivos estáticos (por ejemplo, imágenes y CSS) y archivos de recursos (por ejemplo, JSP y otros datos de aplicación).

Empezando con Java.

Existen dos opciones para desarrollar aplicaciones Java en AppEngine:

a) Descargar e instalar el SDK que nos ofrece Google, parecido al ya utilizado para Python en el artículo anterior de esta serie de AppEngine que ya hemos citado antes.

b) Descargar e instalar un plugin del SDK que nos proporciona Google para Eclipse, el popular IDE (Integrated Development Environment) que utiliza gran parte de la comunidad de desarrolladores de Java.

El presente tutorial se centra en la segunda opción.

Para ello, deberemos comprobar que tenemos instalado el JDK (Java Development Kit) y JRE (Java Runtime Environment) ambos de Java.

Los que ya usen Eclipse para programar con otros lenguajes y no hayan especificado lo contrario en las opciones de instalación, ya tienen estos componentes.

 

Si no se tuvieran, se puede acudir a la web del proyecto libre OpenJDK http://openjdk.java.net/ por lo que se escribe en un terminal

$ sudo apt-get install openjdk-6-jre openjdk-6-jdk

También se puede recurrir a otra opción propietaria como la que desarrolla Sun Microsystems, http://java.sun.com/javase/downloads/index.jsp,

Donde se elegirá la plataforma, en este caso Linux.

Google App Engine es compatible con Java 5 y 6.

Cuando la aplicación Java se ejecuta en App Engine, lo hace a través de la máquina virtual (JVM) y de las bibliotecas estándar.

Lo conveniente es utilizar Java 6 para compilar y probar la aplicación, y asegurarse así de que el servidor local se comporta de forma similar a App Engine.

El plugin que necesitamos para trabajar con Java debe ser compatible con Eclipse en sus versiones 3.3 y superiores.

Instalamos la última versión de Eclipse, llamada “Galileo”, es la 3.5. Para ello vamos a Inicio, Añadir y quitar aplicaciones.

 

Y se introduce en la caja de búsqueda Eclipse, apareciendo como opción instalable. Aceptar e instalar.

También se puede utilizar el gestor de paquetes Synaptic, a través de Inicio, Sistema, Administración y Gestor de Paquetes Synaptic, en la caja de búsquedas ponemos eclipse y seleccionamos los paquetes que nos interesen para instalar y aplicamos los cambios procediendo con la instalación de Eclipse.

A continuación se abre Eclipse en Inicio, Programación, Eclipse.

Se procede después con la instalación del plugin de Google para Eclipse, para ello se acude a la opción del menú Help, Install New Software e introducimos la URL de descarga que nos ofrece Google, que es

http://code.google.com/intl/es/appengine/downloads.html, apareciendo la siguiente pantalla

Se accede a descargar el complemento de Google para Eclipse, haciendo clic sobre “Haz clic aquí para obtener información sobre...” y llegando a la URL source code que da Google que es

http://dl.google.com/eclipse/plugin/3.5

Se añade esta URL del servidor de Google en la caja de texto Work with: Pulsando Add y dejando en blanco y sin tocar nada más el cuadro de diálogo siguiente, clic sobre OK y aparecerá un el display de antes con los componentes dispuestos a ser servidos, en este caso el Plugin y el SDK. Se seleccionan y clic en “Next”.

Llegados a este punto pueden aparecer algunos problemas que se concretan en que Eclipse no puede acceder a los paquetes en el servidor remoto.

Google AppEngine ha establecido una página FAQ (http://code.google.com/intl/es/eclipse/docs/faq.html)

donde se resuelven estas incidencias, en concreto, para nuestro ejemplo, solicita que antes de instalar plugins externos, se tenga en el repositorio la url de updates de Eclipse, que es http://download.eclipse.org/releases/galileo, por lo que habrá que añadirla a los 'Available Software Sites'

y una vez resuelto el incidente, se continúa igual, haciendo clic sobre “Add” con la Location anterior http://dl.google.com/eclipse/plugin/3.5 dando acceso a el plugin de Google sin dar problemas.

Seleccionamos las casillas de plugin y sdk. Hacemos clic sobre “Next”.

Aceptamos los términos de la licencia y damos a Finish.

Ahora podemos reiniciar Eclipse y en File, New, Project... en la carpeta Google, Web Application Project.

Rellenamos, en Project name: ajalospajarosjava

Package: ajalospajaros

Se procede con la desactivación de la opción Google SDKs Use Google Web Toolkit puesto que en este caso no se va a utilizar.

Clic sobre Finish y aparece lo siguiente

Abriendo el archivo java se tiene:

Se procede a cambiar “Hello, world” por “Hola amigos de Java y AppEngine”, se guarda y se puede correr en local haciendo clic sobre Run del menú superior de Eclipse, Run As... Web Application. O directamente en la flecha que aparece en un círculo en el menú superior.

En la consola de Eclipse aparece que está corriendo en local, “The server is running at http://localhost:8888/”, abriendo el navegador contra esa dirección aparecerá la aplicación.

Si se quiere subir la aplicación a la Cloud AppEngine hay que abrir una cuenta en AppEngine y crear una nueva aplicación (los detalles de estas operaciones están en el artículo del Observatorio Tecnológico, http://observatorio.cnice.mec.es/index.php?option=com_content&view=article&id=735&catid=28%3Arecursos-online&Itemid=38&lang=es), en este caso se denominará igual que el proyecto ajalospajarosjava y así asigna el dominio http://ajalospajarosjava.appspot.com que además no está cogida previamente.

Después, en Eclipse, pulsando sobre el icono de AppEngine en el menú superior de la aplicación, se despliega la ventana “Deploy Project to Google App Engine”, se escribe el nombre del proyecto y se accede al enlace App Engine project settings... abriéndose la ventana de la derecha donde se escribirá la ID de la aplicación, en este caso “ajalospajarosjava”.

Ya se puede subir la aplicación.

Si todo ha ido bien, aparecerá en la consola el mensaje “Deployment completed successfully”.

Ya se puede acudir a http://ajalospajarosjava.appspot.com/ajalospajarosjava

Existe una gran cantidad de ejemplos de aplicaciones y otros recursos de código en la web de App Engine, como http://code.google.com/p/google-app-engine-samples/

Además, el Observatorio Tecnológico cuenta con un monográfico de Java para todos aquellos que quieran profundizar en este lenguaje. Se encuentra en el siguiente artículo