Sunteți pe pagina 1din 11

Tema 6

Paradigmas avanzados de Sistemas


Distribuidos
Introduccin a la Computacin en la nube
(Cloud computing)

Un caso (casi) real:

Ana y Mara han estado trabajando muy duro para desarrollar


una aplicacin web para las redes sociales que prevn va a ser un
xito. Su aplicacin permitir todo tipo de conexiones de clientes:
mviles y tabletas de todo pelaje, ordenadores de sobremesa con
cualquier SO, servidores e incluso bromean con la posibilidad de
permitir conexiones desde bacos!. Para poder dar respuesta a
esta gran demanda potencial precisan disponer de una gran
cantidad de servidores para poder resistir el xito. Sin embargo,
la adquisicin, puesta en marcha y mantenimiento de esa
infraestructura les resulta inviable tanto por el tiempo necesario
para ponerlo en marcha como en personal necesario para su
administracin, adems de una muy muy fuerte, e inalcanzable,
inversin econmica. Y si arrendasen 100 servidores? que
sucedera si 100 servidores no fuesen suficientes? Y si fuesen
demasiados? Cmo hacer frente a una inversin econmica
inicial tan grande?

Aunque no existe una opinin consensuada para definir la computacin en la nube,


se suele compartir el criterio de referirse tanto a aplicaciones disponibles para
proporcionar servicios software sobre Internet (comnmente conocidos como
SaaS software como servicio) como tambin a sistemas software y hardware que
proporcionan estos servicios web en los centros de datos. Adems de SaaS, existe
una gran variedad de trminos utilizados frecuentemente en el contexto de la
computacin en la nube, entre estos trminos destacan: IaaS (infraestructura como
servicio) y PaaS (Plataformas como servicio). Sin embargo, existen ms aspectos
compartidos que divergentes entre ambos conceptos, por lo que tambin algunos
expertos les consideran como casos particulares de SaaS.

Resulta conveniente establecer las diferencias entre Computacin en Grid (Grid


Computing) y computacin en la nube. El concepto de computacin en Grid
consiste en dedicar tantos recursos como sea posible para resolver/computar un
nico problema de un altsimo coste temporal/espacial. El mtodo ms utilizado
para este propsito consiste en dedicar ciclos ociosos de los computadores
disponibles en cada momento y que estn conectados a Internet. Ejemplos de este
tipo de computacin Grid son SETI@HOME (setiathome.berkeley.edu; para la
EI1021 Tema 6. Paradigmas Avanzados UJI-Curso 2015/16

bsqueda de vida extraterrestre) y WorldCommunityGrid


(www.worlcommunitygrid.org en la que se atacan problemas como el plegamiento
de protenas, el diseo de frmacos contra el cncer o la ingeniera en energas
limpias con el entorno medioambiental).

En la computacin en la nube intervienen fundamentalmente tres tipos de actores:


Clientes que precisan de distintas capacidades de computacin (hw y
sw) y/o almacenamiento.
Internet como red de comunicacin.
Centros de datos que proporcionan los servicios y el hardware
necesario. Estos centros de datos no tienen porqu estar fsicamente
concentrados en una localizacin fija, sino que posiblemente se apoyan
en el empleo de otros servidores y centros de datos remotos.
Se denomina nube al hardware y software disponible en los centros de datos. Se
denomina computacin utilitaria (utility computing) al servicio proporcionado
por una nube. Cuando la nube funciona para todo el pblico posible bajo el mtodo
pago-por-necesidad (este mtodo consiste en que la nube proporcione los
servicios en cantidad y calidad acorde a la demanda actual) se denomina nube
pblica. Si los servicios slo se proporcionan en el contexto de un centro de datos
corporativos (es decir, de uso privado a grandes corporaciones) se denomina nube
privada.

Existen, por lo tanto, tres roles diferentes que se ejecutan en la computacin en la


nube:
Proveedor de la nube (computacin utilitaria).
Proveedor del servicio o Usuario de la nube (tambin computacin
utilitaria)
Usuario de los servicios (ejecuta aplicaciones web).

Proveedor de la nube Proveedor de SaaS Usuarios SaaS

La computacin en la nube proporciona bsicamente tres nuevas habilidades a los


proveedores de los servicios (estas habilidades son normalmente referidas con el
trmino computacin elstica):
La aparente disponibilidad de infinitos recursos de cmputo segn la
demanda en cada momento. De esta forma se ayuda a los proveedores
de servicio el no tener que estimar y poderse equivocar, por exceso o
por defecto, las cargas estimadas de cmputo.
La posibilidad de comenzar con pocos recursos e ir aadiendo ms
recursos cuando se detecta un incremento en sus necesidades.

2
EI1021 Tema 6. Paradigmas Avanzados UJI-Curso 2015/16

La posibilidad de pagar por el uso actual de los recursos, pudiendo pagar


el coste de los recursos segn sean utilizados tanto para aadirlos como
para retirarlos.
El proyecto de computacin en la nube ha sido posible gracias a la construccin de
centros de datos compuestos por cientos de miles de computadores
convencionales y de la disponibilidad de software adecuado para gestionarlos.
Obviamente, la computacin en la nube no es un sistema apoyado en una
tecnologa totalmente acabada, el crecimiento constante al que est sometido
Internet hace que se precisen cada vez de ms y mejores capacidades de recursos
hardware (servidores, conexiones, accesos a E/S, gestin de almacenamiento de
datos, etc.) y tambin mejores prestaciones en el software que gestiona el
funcionamiento de la nube.

La tecnologa de la Virtualizacin

Cualquier aplicacin para poder ser ofrecida a sus clientes (sean estos proveedores
de la nube, proveedores de SaaS o clientes de SaaS) precisa tener definidos tres
conceptos: modelo de computacin en el que va a ejecutarse, modelo de
almacenamiento para sus datos y modelo de comunicacin. El empleo de tcnicas
de virtualizacin ha permitido disear mecanismos automticos para la
reubicacin y gestin de recursos bajo demanda.

Existen fundamentalmente dos tipos de virtualizacin. En la virtualizacin


completa todo el software que se ejecuta en un servidor est en una mquina
virtual completa (incluyendo BIOS, gestores de discos, sistema operativo, etc.). En
la paravirtualizacin, se permite que distintos sistemas operativos se ejecuten en
un mismo hardware compartido, lo que proporciona unas ventajas importantes: 1)
Ante la presencia de un equipo daado, las instancias en ejecucin pueden migrar
a otro hardware hasta que se repare el equipo daado; 2) Migrar de un sistema a
otro nuevo es ms fcil y rpido que utilizar la virtualizacin completa; y 3) Es ms
sencilla la gestin de la capacidad de recursos (aadir o reducir disco o
procesadores) que en la virtualizacin completa.

Ests tcnicas de virtualizacin se pueden utilizar a diferentes niveles de


abstraccin. Por ejemplo, una instancia de Amazon Elastic Computing EC2 puede
imitar tanto a un componente hardware clsico (un PC con procesador Celeron a
1.7MHz, 2Gb de RAM, etc), por lo que los usuarios de la nube pueden contralar
desde el nivel de kernel hasta el nivel de la aplicacin (este es un caso ejemplo de
virtualizacin completa) como emplear tcnicas de paravirtualizacin. En el otro
extremo de la abstraccin est, por ejemplo, Google AppEngine que funciona con
paravirtualizacin bsicamente al nivel de aplicaciones web (por ejemplo, el caso
de la UJI en la nube se apoya en este sistema).

Factores de xito

El motivo por el que la computacin en la nube se ha extendido rpidamente como


una tecnologa de xito se debe a varios factores:

3
EI1021 Tema 6. Paradigmas Avanzados UJI-Curso 2015/16

Tiene un coste menor de mantenimiento y gestin en conceptos tales


como electricidad, ancho de banda y software que los centros de datos
tradicionales (de menor tamao, uso privado y hardware/software
avanzado, ms difcil de mantener y gestionar).
Utilizan una frmula de coste asociativo con el propsito de gestionar
eficientemente, bajo demanda de los proveedores de SaaS, los servicios
en ejecucin. Por ejemplo, en Amazon Web Services el coste de utilizar
1000 mquinas de Amazon EC2 en una hora es el mismo que el de
utilizar una sola mquina EC2 durante 1000 horas.
La adaptacin a las necesidades actuales en cada servicio permite
dedicar ms o menos recursos dinmicamente, por lo que se consigue,
por un lado, la satisfaccin del usuario SaaS y, por el otro lado, el
aprovechamiento de los recursos por parte del proveedor de la nube. Un
ejemplo de este tipo de beneficios es el caso de Animoto (una
herramienta inicialmente ofrecida a los usuarios de Facebook que
permite obtener videos a partir de fotografas, textos y msica). En los
tres primeros das pas de utilizar 50 servidores a necesitar 3500
servidores para, posteriormente, reducir esta cantidad de servidores.
Qu hubiera pasado si no se hubiera dispuesto de tal cantidad de
servidores, 3500 o ms? El usuario SaaS habra abandonado la
aplicacin debido a la latencia de respuesta, su prestigio caera entre los
usuarios actuales y potenciales y Animoto fracasara. Qu hubiera
pasado si se hubiesen adquirido estos 3500 servidores o ms y se
utilizase un sistema privado? La bajada posterior de servidores debido a
la natural bajada de usuarios habra supuesto tener recursos propios
ociosos y, por lo tanto, grandes prdidas.

Obstculos y desafos para la computacin en la nube

A pesar de las ventajas expuestas en el apartado anterior, existen algunos


obstculos y mejoras que se han de resolver para extender an ms el uso de la
computacin en la nube:
Garanta de disponibilidad e interrupcin del servicio. Aunque no son
frecuentes, sino ms bien escasas, las ocasiones en las que los servicios
dejan de estar temporalmente disponibles, los clientes de la nube (es
decir, los proveedores de SaaS) se pueden resistir a adoptar su uso. Un
ejemplo de interrupcin de servicio sucedi en Junio del 2012; debido a
una fuerte tormenta, el centro de datos de Amazon Web Services (AWS)
en el estado de Virginia (USA) el ms grande de los que dispone-
estuvo temporalmente sin servicio. En octubre del 2012 debido a un
error en un software propio de AWS, algunos importantes sitios
residentes en AWS quedaron interrumpidos. Para incrementar la
fiabilidad de la nube se est trabajando actualmente en que la
computacin en la nube sea proporcionada mediante la colaboracin de
distintas empresas.

4
EI1021 Tema 6. Paradigmas Avanzados UJI-Curso 2015/16

Los APIs para programar servicios en la nube suelen ser esencialmente


propietarios por lo que la migracin de datos y programas de uno a otro
proveedor resulta difcil.
Garantizar la seguridad y confidencialidad de los datos en la nube. Esta
tarea se realiza a varios niveles: el proveedor de la nube debe
garantizar la seguridad fsica y las polticas de cortafuegos mientras que
el proveedor del servicio debe garantizar la seguridad a nivel de la
aplicacin.
Cuellos de botella en la transferencia y gestin de datos. A medida que
las aplicaciones precisen de consumir ms y ms datos, el intercambio
de estas cantidades de datos puede degradar las prestaciones de la red.
Un caso extremo, pero real, es que resulta ms rpido trasladar
fsicamente (va mensajera comercial) 10 discos de 1TB a una ciudad
distante (normalmente 24 horas) que transferir a 20Mbits/segundo
10TB (aproximadamente 45 das). Respecto a la gestin de datos se
estn desarrollando paquetes software que sigue la propuesta de
Google: map/reduce (para identificar patrones en los datos segn se
recogen, en bruto). Uno de estos paquetes software es Hadoop que,
mediante tcnicas de replicado de datos y mltiple asignacin de
cmputo para un mismo problema basndose en el principio de
proximidad, permite obtener una gestin gil de los recursos.
Imprevisibilidad en las prestaciones. En las aplicaciones actuales de
computacin en la nube resulta muy eficiente que las mltiples
mquinas virtuales activas compartan memoria central y CPUs, pero las
prestaciones decaen cuando se gestionan mltiples accesos
concurrentes a la red y a operaciones de E/S a discos. En este aspecto se
est trabajando en un diseo ms avanzado del software para que las
mquinas virtuales gestionen ms eficientemente este tipo de accesos y,
simultneamente, en la adaptacin de dispositivos hardware que
proporcionen unas mejores prestaciones en operaciones de E/S, por
ejemplo, mediante el empleo de discos duros de estado slido.
Escalabilidad en el almacenamiento. El desafo consiste en disear un
sistema de almacenamiento tambin elstico (en el mismo sentido que
la computacin elstica).
La deteccin y correccin de errores: Debido a que estas aplicaciones
involucran concurrentemente a muchos clientes, la depuracin de
errores no resulta tarea fcil, pues estos errores pueden no poder ser
reproducidos a pequea escala a posteriori para su anlisis y
correccin.
Incrementar la deteccin automtica de niveles de uso adecuados para
mejorar las prestaciones de la computacin elstica. Se est
investigando en mtodos basados en aprendizaje estadstico
automtico para mejorar en la diagnosis y prediccin de la carga
computacional.
Reputacin de los servicios disponibles en la nube. El uso fraudulento
de algn usuario de la nube puede perjudicar la reputacin del resto de

5
EI1021 Tema 6. Paradigmas Avanzados UJI-Curso 2015/16

usuarios de la nube y por lo tanto su volumen de negocio. Una opcin


para tratar con este aspecto consiste en disponer de servicios de
salvaguarda de la reputacin de forma parecida a los servicios de
deteccin de spam para el correo electrnico. Adems, el proveedor de
la nube debe establecer claramente una poltica de uso para los
servicios que se vayan a proporcionan. Un ejemplo de este tipo de
poltica es la fijada por Google para el uso aceptable de las aplicaciones
Google en la nube de la UJI:

Google Apps Acceptable Use Policy


Use of the Services is subject to this acceptable use policy ("AUP").
If not defined here, capitalized terms have the meaning stated in the applicable contract
("Agreement") between customer, reseller or other authorized user ("You") and Google.
You agree not to, and not to allow third parties or Your End Users, to use the Services:
to generate or facilitate unsolicited bulk commercial email;
to violate, or encourage the violation of, the legal rights of others;
for any unlawful, invasive, infringing, defamatory, or fraudulent purpose;
to intentionally distribute viruses, worms, Trojan horses, corrupted files, hoaxes, or other
items of a destructive or deceptive nature;
to interfere with the use of the Services, or the equipment used to provide the Services, by
customers, authorized resellers, or other authorized users;
to alter, disable, interfere with or circumvent any aspect of the Services;
to test or reverse-engineer the Services in order to find limitations, vulnerabilities or evade
filtering capabilities;
Your failure to comply with the AUP may result in suspension or termination, or both, of the
Services pursuant to the Agreement.

Licencias de software. Aunque en principio esta es una ventaja para el


usuario1 algunas compaas de software no contemplan su empleo para
aplicaciones en la nube (en la modalidad pago-por-uso). Se estn
desarrollando campaas de concienciacin y estrategias de venta para
este fin.

Un caso prctico: Motivacin de la UJI para migrar a la nube.

La Universitat Jaume I migr a la nube hace tres aos. Las razones esgrimidas, un
subconjunto de las ventajas expresadas previamente, se exponen en
http://google.uji.es/es/por-qu-subirse-la-nube:

Cuatro razones por las que utilizar las aplicaciones de Google (Google Apps):

1. Porque tienes acceso a las aplicaciones desde cualquier dispositivo conectado a Internet
Puedes acceder a tu correo va web o dispositivo mvil o a travs de tu programa
de correo preferido (Outlook, Thunderbird, etc.).
Tienes un espacio de ms de 7 GB para almacenar correo con potentes filtros
antispam y antivirus.
Te permite tener un calendario en lnea que puede ser individual y compartido.
Puedes editar, supervisar y elaborar documentos desde cualquier lugar y con
quien quieras. Incluye procesador de texto, hoja de clculo y presentaciones, un
visor en lnea de archivos PDF y un administrador de documentos. Adems tiene
soporte de grficos, estadsticas y todo tipo de clculos.
Tienes la posibilidad de publicar tu pgina web en Internet.
Proporciona acceso a muchas ms aplicaciones.

1 Puesto que no tiene porqu preocuparse del mantenimiento de las sucesivas versiones ni de la
instalacin continua de los parches de seguridad. Adems, tampoco ha de adquirir el software
completo para poder utilizar slo un, quizs, 40% de su funcionalidad.

6
EI1021 Tema 6. Paradigmas Avanzados UJI-Curso 2015/16

2. Porque son muy fciles de utilizar


Te permite guardar copias de los documentos en tu ordenador y, en sentido
contrario, subir documentos de tu ordenador a Google.
3. Porque son herramientas ideales para la comunicacin y el trabajo en equipo
Adems de correo, Google dispone de herramientas de comunicacin (chat, voz y
videoconferencia) que nos permiten comunicarnos con otras personas en tiempo
real y desde cualquier dispositivo conectado a Internet.
4. Porque supone una reduccin de costos
Las aplicaciones de Google ofrecen la tecnologa avanzada que necesita la
comunidad universitaria para comunicarse y trabajar de forma conjunta, sin el
coste ni la complejidad que conlleva el mantenimiento del hardware y del software
in situ, y sin publicidad ni cuotas.

Un ejemplo de proveedor de la nube: Google App Engine


Google App Engine, o simplemente App Engine, es una plataforma de computacin
en la nube que proporciona los recursos necesarios para desarrollar, almacenar y
exponer aplicaciones web mediante el uso de los centros de datos de Google. Las
aplicaciones web se gestionan y ejecutan en distintos servidores. A medida que
crece, o decrece, el nmero de peticiones para una aplicacin web, App Engine
ajusta automticamente los recursos adecuados para satisfacer la demanda actual,
es decir, escala y distribuye automticamente la carga.

Para el desarrollo de estas aplicaciones web, App Engine soporta como lenguajes
fundamentales Python y Java. En particular, App Engine soporta la tecnologa
servlet 2.5 mediante el empleo de un contenedor y servidor web
jetty2(http://jetty.codehaus.org/jetty/) y de tecnologas web estndar como, por
ejemplo, el empleo de JSP. Se prev soporte para ms lenguajes en el futuro.

Algunas restricciones y funcionalidades a considerar para su adopcin como


plataforma en la nube para ejecutar aplicaciones web son las siguientes:

Slo se permite accesos a ficheros en modo de lectura. Para tratar con


esta limitacin se pueden utilizar en la programacin de aplicaciones
sistemas de ficheros virtuales: un ejemplo de utilizacin en Java de este
tipo de sistemas es la implementacin gae-filestore
(http://code.google.com/p/gae-filestore/). El siguiente cdigo java
muestra la trasparencia en el empleo de esta API:

FileStore fileStore = FileStoreFactory.getFileStore();

DataStoreFile file = fileStore.getFile("foo/bar/test.txt", true);


PrintWriter pw = new PrintWriter(new OutputStreamWriter(file.openForWrite()));
pw.println("Hello World!");
pw.close();

file = fileStore.getFile("foo/bar/test.txt", false);


BufferedReader br = new BufferedReader(new InputStreamReader(file.openForRead()));
System.out.println(bw.readLine());

App Engine solo puede ejecutar cdigo invocado desde una peticin
HTTP.

2 Es un servidor tambin de cdigo abierto para servlets similar a Tomcat

7
EI1021 Tema 6. Paradigmas Avanzados UJI-Curso 2015/16

Las aplicaciones Java slo puede utilizar un subconjunto de las clases de


la edicin estndar de JRE. Concretamente, las especificadas en JRE Class
White List (https://developers.google.com/appengine/docs/java/jrewhitelist).
Un proceso que arranque en el servidor para responder a una peticin no
puede tener una duracin mayor a 60 segundos Si el proceso se dedica a
realizar una tarea diferente, la duracin no puede exceder de 10 minutos,
no hay lmite para tareas en lotes. Para servicios que requieran mayores
tiempos de cmputo Google proporciona la plataforma Google Compute
Engine3.
No soporta sesiones que deban permanecer en un mismo servidor sin
posibilidad de migrar a otro servidor (lo que se denomina sticky
sessions).
El tamao de una respuesta HTTP no puede exceder los 32 MB.
Proporciona un sistema de base de datos propio, GQL (Google Query
Language) con algunas limitaciones (por ejemplo, no est soportado el
comando join).
La principal ventaja de App Engine respecto a sus competidores (Amazon Web
Services, Heroku, Microsoft Azure, por citar algunos) es que permite escribir
aplicaciones escalables de una forma ms sencilla (debido a las restricciones que
exige App Engine en el uso de sus recursos). Desde un punto de vista del
proveedor tipo de SaaS esto puede resultar beneficioso, pero para aquellos
proveedores que precisen de un mayor control sobre la infraestructura les
supondr un serio inconveniente.

Debido a estas estrictas caractersticas de funcionamiento no est teniendo el xito


esperado. Una crtica comn es que los desarrolladores no se sienten cmodos
programando una aplicacin que les costar mucho esfuerzo rescribir si quisieran
migrarla a otra plataforma en la nube. Para contestar a esta crtica, Google est
desarrollando una serie de proyectos para crear interfaces software de cdigo
abierto entre sus propios productos y los utilizados por el resto de plataformas en
la nube.

El empleo de App Engine es gratuito hasta ciertos lmites (estos han variado
frecuentemente en los ltimos aos por lo que conviene visitar el sitio web de
google4 para conocer los lmites actuales):
Mximo de 10 aplicaciones registradas.
500 MB de almacenamiento en disco
5M visitas de clientes mensuales.

3 https://cloud.google.com/products/compute-engine
4 https://developers.google.com/appengine/docs/whatisgoogleappengine?hl=es

8
EI1021 Tema 6. Paradigmas Avanzados UJI-Curso 2015/16

Programacin de aplicaciones Java con Eclipse para


Google App Engine
Para desarrollar, poner en explotacin, monitorizar y mantener aplicaciones web
en App Engine se puede utilizar lneas de rdenes desde un terminal
Linux/Windows/Mac OS o bien emplear, para algunas de estas tareas el IDE
Eclipse.

Instalacin del plugin para Java de AppEngine en Eclipse.

Para instalar este plugin se ha de seguir el siguiente proceso en Eclipse EE Juno for
Java Developers:

1. Seleccionar del men Help la opcin Install New Software.


2. En el campo Work with introducir:

https://dl.google.com/eclipse/plugin/4.2

3. Hacer click en el botn Add Despus hacer click en OK dejando en blanco


el nombre de la versin a descargar y as descargarse la ltima disponible.
Tardar unos segundos en contestar.
4. Seleccionar Google Plugin for Eclipse y SDKs. Cerciorarse de activar el
checkbox Contact all update sites during install to find required
software. Hacer click en Next, aceptar los trminos de servicio e instalar el
plugin.
5. Cuando la instalacin finalice, lo que tardar unos minutos, se solicitar
reiniciar eclipse para que adopte el plugin configurado. Aceptar.

Creacin de un proyecto con el plugin de App Engine para eclipse.

Para crear un proyecto App Engine realizar los siguientes pasos:

1. Seleccionar del men File, la opcin Web Application Project (si no


estuviera visible acceder al men Window -> Reset Perspective y volver a
intentarlo).
2. El asistente para la creacin del proyecto se abre. Introducir el nombre para
el proyecto y el paquete.
3. Cerciorarse de que las opciones Use Google Web Toolkit y Use Google
App Engine estn seleccionadas.
4. Hacer click en Finish para crear el proyecto.

El asistente crea una estructura de directorio para el proyecto, incluyendo un


directorio src/ para los ficheros fuente de Java y un directorio war/ para las clases
compiladas y algunos otros ficheros ms (bibliotecas, ficheros de configuracin,
ficheros de imgenes y CSS etc.). El asistente tambin crea un fichero fuente para

9
EI1021 Tema 6. Paradigmas Avanzados UJI-Curso 2015/16

un servlet y dos ficheros de configuracin. La estructura completa del directorio


creado es la siguiente:
Guestbook/
src/
guestbook/
server/
GuestbookServlet.java
META-INF/
jdoconfig.xml
log4j.properties
logging.properties
war/
WEB-INF/
lib/
...App Engine JARs...
appengine-web.xml
web.xml
index.html

Cuando Eclipse construye el proyecto, crea un Nuevo directorio classes/ en el


directorio war/WEB-INF, y coloca en el todas las clases compiladas java de la
aplicacin, todos los ficheros que no sean ficheros de cdigo fuente en java
encontrados en el directorio src/, y tambin META-INF/ y los ficheros
log4j.properties y logging.properties.

Ejecucin del proyecto

El SDK de App Engine incluye un servidor web para testear la aplicacin en modo
local antes de subirla a la nube. Para ello seleccionar del men Run la opcin
Debug As -> Web Application. Eclipse construir el proyecto, cambiar a la
perspectiva de depuracin y arrancar el servidor.

Si todo funciona correctamente el servidor arrancar y mostrar (entre otra


informacin) un mensaje similar al siguiente: The server is running at
http://localhost:8888/. En este momento la aplicacin es accesible desde cualquier
navegador local en esa URL.

Para parar el servidor, cerciorarse que se est en el panel Debug y hacer click en el
botn rojo de terminacin.

Subir la aplicacin a Google App Engine.

Para poder subir una aplicacin a la nube se precisa tener un ID vlido de App
Engine. Para obtenerlo acceder a https://appengine.google.com/start. El
siguiente paso consiste en verificar la cuenta mediante un SMS. A continuacin se
solicita el nombre de la URL que lo va a referenciar en el formato
XXXX.appspot.com (por ejemplo, tienda-comics-kirby.appspot.com) y el ttulo
de la aplicacin. En este paso se puede seleccionar a qu usuarios se les permitir
acceso a ciertas partes de la aplicacin (cuentas de google, dominios de google o a
ciertos IDs privados). Al hacer click en Create Application se obtiene el ID vlido
buscado (en el ejemplo, el ID ha sido tienda-comics-kirby).

10
EI1021 Tema 6. Paradigmas Avanzados UJI-Curso 2015/16

Una vez obtenido el ID hay que introducirlo en nuestra aplicacin. Para ello se
acceder al fichero appengine-web.xml y modificar el contenido de las etiquetas
<application></application> para que su contenido sea, para nuestro ejemplo,
el siguiente: <application> tienda-comics-kirby </application>

Ya se est en condiciones de subir la aplicacin a App Engine. Para ello hacer click
en el botn de la barra de herramientas de Eclipse y seleccionar Deploy to App
Engine. Eclipse solicitar tu cuenta de usuario y password de Google. Despus de
introducir esta informacin hacer click en el botn Upload. Como consecuencia
Eclipse subir toda la informacin y ficheros almacenados en el directorio war/.

Ya se puede visitar la aplicacin en la nube acudiendo a la URL previamente


asignada (en el ejemplo http://tienda-comics-kirby.appspot.com/YYYY, siendo
YYYY el nombre del paquete escogido durante la creacin del proyecto) desde
cualquier navegador web.

El mantenimiento, gestin y monitorizacin de la aplicacin web en App Engine no


se puede realizar actualmente desde el plugin de eclipse (a diferencia de otros
plugins para eclipse ms avanzados como es el caso del soportado para la
plataforma de aplicaciones en la nube Heroku: http://www.heroku.com/).

Hay que realizar estas tareas mediante la ejecucin de rdenes en lnea sobre un
terminal. Para poder ejecutarlas primero hay que acceder al directorio en el que
est instalado Eclipse y, una vez en el, acceder al directorio
com.google.appengine.eclipse.sdkbundle_Version, donde Version es la versin
actual instalada del sdk, en mi caso, 1.7.3. Bajo este directorio se encuentra el
directorio en el que estn estas rdenes appengine-java-sdk-Version/bin (en mi
caso appengine-java-sdk-1.7.3/bin).

11

S-ar putea să vă placă și