Archive
November 2010
Apúntate al Google Developer Workshop en Salamanca
- noviembre 29th, 2010
- News
- 0 Comments
Se trata de una jornada para desarrolladores en la que ponentes que trabajan día a día con los productos para programadores de Google nos contarán su experiencia y las mejores prácticas a la hora de programar aplicaciones para las plataformas de Android y Chrome. Es además una excelente oportunidad para conocer a otros desarrolladores que también están trabajando con estos productos.
Hablaremos sobre tecnologías móviles y web: Android, HTML5 y Chrome. La inscripción es gratuita, sin embargo, las plazas son limitadas por lo tanto es importante hacer la inscripción lo antes posible a través de este formulario.
La jornada empezará con una sesión de Google Chrome y HTML5 a cargo de nuestros amigos de Madpixel. Esta compañía española, creada en 1999, está especializada en soluciones innovadoras para Internet y cuenta con una amplia experiencia en productos de Google y web apps.
A continuación habrá una pausa para el café y después presentará Unkasoft sus aplicaciones para campañas de marketing móvil, videojuegos y advergaming en Android que están teniendo una gran aceptación en el mercado.
Finalizaremos la jornada de la mano de Aescolapius quienes nos presentarán un proyecto que nació en el club de innovación de la Universidad Pontificia de Salamanca. Su proyecto consiste en una silla de ruedas motorizada controlada por un móvil con programación Android. El control de la silla motorizada se puede realizar mediante voz, pantalla táctil, inclinación y reconocimiento facial.
¡Te esperamos en Salamanca para que celebres con nosotros el Google Developer Workshop!
Bosco Zubiaga, departamento de Marketing de Google Spain
Listando datos en AppEngine, ¿el servicio de mail me puede ayudar?
- noviembre 12th, 2010
- News
- 0 Comments
Fig. 1 – Modelo de Articulo Fig.2 – Modelo de persistencia propuesta en la clase dataArticulo Fig. 3 – ServletCrearArticulo Fig.4 – Representación de Articulos.jsp Fig. 5 – EmailServlet para la insteracción con el servicio de mail.
Generalmente nos encontramos con diversos problemas a resolver y automatizar en el desarrollo de aplicaciones, y sinceramente es muy probable que se desencadenen requerimientos que necesiten interacción de un servicio de mail para por ejemplo recibir peticiones de clientes en solicitudes de pedidos.En el artículo se plantea una simulación para mostrar la solución desarrollada con Google AppEngine. Con esta solución estoy pensando en un modelo de cloud computing, gozando de todos los privilegios que propone el concepto y además facilitando escalar rápidamente y a demanda de requerirlo en mi aplicación.
Para esta solución se utiliza el servicio de mail de appengine pero no para enviar mails sino para recibir peticiones y procesarlas y con ello mostrar en un listado muy simple los resultados del pedido.
Tecnología utilizada:
Vamos al desarrollo!. En primer lugar generaremos una solución en Eclipse para AppEngine y en esta oportunidad voy utilizar simples JSP para mostrar los resultados como presentación.
En primer lugar voy a generar las entidades del modelo que se requieren para resolver la problemática, en esta oportunidad solo requiero de una entidad Articulo.
La Fig.1 muestra el modelo de código implementado para la generación de la entidad Articulo.package xcloudPackage.shared;
public class Articulo
{
private String nombre;
private String descripcion;
private int precio;
public Articulo(String pNombre, String pDescripcion, int pPrecio)
{
this.nombre = pNombre;
this.descripcion = pDescripcion;
this.precio = pPrecio;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getNombre() {
return nombre;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public String getDescripcion() {
return descripcion;
}
public void setPrecio(int precio) {
this.precio = precio;
}
public int getPrecio() {
return precio;
}
}
Code. 1 – Código Fuente de la Entidad Articulo
Una vez generada la entidad de mi modelo que de hecho es muy simple, tengo que definir la estrategia de persistencia, en esta oportunidad voy a utilizar una clase bien simple que almacena en un arraylist.
La Fig.2 muestra el escenario de persistencia de la entidad Articulo, para este ejemplo se han definido dos métodos, uno que agrega Artículos y otro que lista la cantidad de artículos.package xcloudPackage.shared;
import java.util.ArrayList;
import java.util.List;
public enum dataArticulo
{
INSTANCE;
private static long number=1;
private final List
private dataArticulo()
{
//Sin implementar
}
public void Agregar(String nombre, String descripcion, int precio)
{
synchronized (this) {
number ++;
articulos.add(new Articulo(nombre, descripcion, precio));
}
}
public List
{
return articulos;
}
}
Code. 2 – Código Fuente de la solución de persistencia
Bien en el siguiente paso se requiere generar el servlet que de soporte a la inserción del articulo, para ello generaremos el “servletCrearArticulo”.
La Fig.3 muestra el servletCrearArticulo que me permite como ustedes puede visualizar obtener parámetros como el nombre, descripción y precio de un artículo y persistirlos utilizando la instancia de “data Articulo”package xcloudPackage.shared;
import java.io.IOException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@SuppressWarnings("serial")
public class servletCrearArticulo extends HttpServlet
{
public void doPost(HttpServletRequest a, HttpServletResponse resp)
throws IOException
{
String nombre = checkNull(a.getParameter("nombre"));
String descripcion = checkNull(a.getParameter("descripcion"));
int precio = Integer.parseInt(a.getParameter("precio"));
dataArticulo.INSTANCE.Agregar(nombre, descripcion, precio);
resp.sendRedirect("/Articulos.jsp");
}
private String checkNull(String s) {
if (s == null)
{
return "";
}
return s;
}
}
Code. 3 – Código Fuente del servletCrearArticulo
Como pueden observar en el Code 3, se realiza un “sendRedirect” a Articulos.jsp, vamos a generar esta página para poder completar los componentes necesarios para la visualización y solo quedará colocar la lógica de interacción con el servicio de mail.
La Fig.4 muestra el mecanismo de presentación para poder visualizar el listado de artículos que generaremos con cada envío de mail al servicio de appengine. Como podemos observar se mostrará en una tabla que posee como columnas, nombre, descripción y precio. Además no está detallado en el articulo pero a esta solución se le propone interactuar con la autenticación de Google para dar formalidad en ambientes más avanzados.
Finalmente vamos a construir el código fuente que permita procesar el email y persistir el mismo para poder visualizarlo en el listado anteriormente detallado de mi JSP.
Como se puede observar en la Fig. 5 se procesa el mail recibido y se realizar mediante la instancia de “dataArticulo” el agregado al escenario de persistencia, de esta forma podremos acceder al listado completo de artículos desde el JSP desarrollado.
Para completar el desarrollo tengo que detallar un punto importante, como es la configuración del archivo web.xml:xml version="1.0" encoding="UTF-8"?>
DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>CrearNuevoArticuloservlet-name>
<servlet-class>xcloudPackage.shared.servletCrearArticuloservlet-class>
servlet>
<servlet-mapping>
<servlet-name>CrearNuevoArticuloservlet-name>
<url-pattern>/newurl-pattern>
servlet-mapping>
<servlet>
<servlet-name>Emailservlet-name>
<servlet-class>xcloudPackage.shared.EmailServletservlet-class>
servlet>
<servlet-mapping>
<servlet-name>Emailservlet-name>
<url-pattern>/_ha/mail/*url-pattern>
servlet-mapping>
<welcome-file-list>
<welcome-file>/Articulos.jspwelcome-file>
welcome-file-list>
web-app>
Code 4 – Archivo de Configuración Web.xml
En el Code 4 se pude observar la declaración de los servlets necesarios para realizar la solución planteada en el articulo.
Finalmente podemos realizar una prueba local, y realizar el despliegue en la infraestructura de Google.
El siguiente Vídeo muestra la implementación del desarrollo descripto.
Espero les sea de utilidad!
Nicolas Bortolotti, Ingeniero U.T.N. Regional San Francisco - Comunidad Xcloud