Estado del Arte 1 Introducción






descargar 0.53 Mb.
títuloEstado del Arte 1 Introducción
página4/14
fecha de publicación15.07.2015
tamaño0.53 Mb.
tipoDocumentos
l.exam-10.com > Documentos > Documentos
1   2   3   4   5   6   7   8   9   ...   14

5 Creación de Servicios Web

5.1 Introducción


Dado que se decidió manipular los datos en una base de datos propia es necesario construir y exponer un conjunto servicios web para poder acceder a la información. Si hablamos de servicios web en java, no se puede pasar por alto la api JAX-WS. Esta api java esta dentro de la especificación JEE 5 y permite la definición de servicios web mediante anotaciones de una forma simple. El intercambio de información con un cliente es a partir de mensajes xml como lo hace SOAP. JAX-WS no permite, de forma estándar el intercambio de información mediante el formato JSON que es mas liviano que el xml.

Es de vital importancia lograr una comunicación rápida y eficiente entre el dispositivo móvil y el servidor. Las dos formas más utilizadas hoy en día para construir servicios web son: mediante la tecnología SOAP + WSDL o basados en la arquitectura REST. Es por esto que surge la interrogante acerca de la elección de la misma.

5.2 WSDL + SOAP


Una de las primeras alternativas que surge al momento de hablar de consumir servicios es la utilización de soap y wsdl que son dos de los estándares más usados de la especificación WS.

Por un lado tenemos a soap que es un estándar que nos permite invocar servicios remotos mediante xml.

Otra de sus características es que soap es independiente de la arquitectura de red por cual podemos invocar servicios sobre cualquier protocolo como puede ser SMTP, MQ entre otros aunque en el proyecto el único que nos interesa es HTTP.

WSDL es el estándar en xml que nos permite definir nuestros servicios como un contrato que el cliente debe saber para comunicarse con nosotros.

Funcionalidades generales

Las funcionalidades generales de estos dos estándares es la de consumir servicios sobre casi cualquier arquitectura. Esto en una arquitectura compleja y que requiere de una integración con sistemas legados podría ser la opción adecuada.

Ventajas

Quizás la gran ventaja que se encuentran al utilizar soap y wsdl es la madurez con la que cuentan estos estándares y documentación y productos que hay para su desarrollo.

Desventajas

Ya grandes proveedores de Web 2.0 están migrando a una arquitectura REST, incluyendo a Yahoo, Google ebay y Facebook, quienes marcaron como obsoletos a sus servicios SOAP y WSDL y pasaron a usar un modelo más fácil de usar, orientado a los recursos.

Esto se debe quizás a la complejidad que se tiene para desarrollar y consumir servicios con soap y wsdl y al ancho de banda que consumen.

5.3 REST


Funcionalidades generales

REST (Representational Estado Transfer): es un estilo arquitectónico que se basa en estándares web y el protocolo HTTP.

En una arquitectura basada en REST todo es un recurso. Un recurso se accede a través de una interfaz común basada en los métodos estándar HTTP. En una arquitectura REST se suele tener un servidor REST que proporciona el acceso a los recursos y al cliente REST que accede y modifica los recursos REST. Todos los recursos deben soportar las operaciones HTTP comunes.

Los recursos son identificados por un Global ID (por lo general son URIs).

REST permite que los recursos tengan diferentes representaciones , ej. texto, xml, json, etc.

El cliente REST puede pedir una representación específica a través del protocolo HTTP (Negociación de Contenido).

RESTFul: Son aquellos servicios Web que funcionan bajo REST

Los Web Service REST proporcionan acceso a través de los métodos GET y POST de HTTP.

GET: En accesos vía GET, tanto las operaciones como los parámetros se pasan por la URL » Sólo soporta argumentos con tipos simples. Es utilizado para obtener un recurso del servidor

POST: En este tipo de acceso, la información no viaja en mensajes SOAP Envelope, sino directamente en el payload del mensaje. Se utiliza para agregar un recurso en el servidor

PUT: Este método es usado para cambiar el estado de un recurso o actualizarlo

DELETE: Este método es utilizado para eliminar un recurso

Una implementación concreta de un servicio web REST sigue cuatro principios de diseño fundamentales:

  • Utiliza los métodos HTTP de manera explícita

  • No mantiene estado

  • Expone URIs con forma de directorios

  • Transfiere XML, JavaScript Object Notation (JSON), o ambos

Ventajas

Simples de implementar

Es bueno cuándo es importante que la comunicación sea ligera en términos de bytes transmitidos debido al coste.

Eficientes cuándo el consumidor tiene limitaciones de ancho de banda ej: ,móviles, PDAs, etc.

Ya varios grandes proveedores de Web 2.0 están migrando a esta tecnología, incluyendo a Yahoo, Google, eBay y Facebook, obteniendo un modelo más fácil de usar, orientado a los recursos.

Desventajas

Gran número de objetos.

Manejar el espacio de nombres (URIs) puede ser engorroso.

La descripción sintáctica/semántica muy informal (orientada al usuario).

Pocas herramientas de desarrollo.

Conclusiones

Tomando en cuenta que la aplicación está enfocada en dispositivos móviles vemos que la mejor opción es utilizar REST dado que es ideal para este tipo de aplicaciones como se describo anteriormente. Además de eso los servicios web en REST son muy fácil de implementar, dado que la complejidad principal del proyecto es Android no vemos la necesidad de sumar complicaciones técnicas.

Eleccion de Framework
RestEasy de jboss es el framework elejido para la implementacion de los servicios web RestFul.

RestEasy es una implementación de la especificación java de JAX-RS. Dicha especificación define una api java sobre protocolo http que nos permite definir servicios web RestFul. Se escogió este framework ya que además de ser open source, su integración con el servidor Jboss es muy sencilla aunque pude correr en cualquier contenedor de Servlets como podría ser tomcat esto lo dota de una gran portabilidad.

Ya que JAX-RS es una especificación del lado del servidor RestEasy nos permite definir su contraparte del lado del cliente y así implemtar los métodos RestFul mediante anotaciones definidas en la especificación JAX-RS.

Estudio de factibilidad
Se realizó mediante una Prueba de Concepto (POC) en una etapa temprana del proyecto el estudio de factibilidad técnico y funcional de las principales características del proyecto.

El análisis de factibilidad de otras características del proyecto no fue necesario debido a

las características del proyecto en un entorno universitario y de fin de carrera.
Funcionalidades Implementadas
Con esta prueba de contexto se intento probar dos de las funcionalidades quizás mas básicas en el proyecto pero que son la base de este. Estas son la llamada a servicios externos mediante REST y mostrar un mapa de google maps con una posición determinada .
Tecnología involucrada
Para la llamadas a servicios web Rest desde el dispositivo Android se utilizo un framework de spring llamado SpringAndroid que facilita la llamada y parseo de los mensaje devueltos por el servicio.

Abajo se muestra una simple llamada a un servicio que devuelve con una determinada url que devuelve el resultado como String.
RestTemplate restTemplate = new RestTemplate(new HttpComponentsClientHttpRequestFactory());

String result = restTemplate.getForObject(url, String.class);
Para realizar y publicar los servicios Rest del lado del servidor de aplicaciones se utilizo el framework RestEasy de jboss que se integra facilmente a Jboss Application Server que es el servidor elejido por el equipo.

a Continuación se muestra como definir el servicio con annotation de un forma facil e intuitiva.
@GET

@Path("/login/{email}/{pass}")

@Produces("application/json")

public UsuarioDTO login(@PathParam("email") String email, @PathParam("pass") String pass)

Esta firma nos dice que este servicio acepta solicitudes GET, la url en la cual estará publicado y que la salida de método sera un usuario con formato json [ref json] que es un formato ligero para el intercambio de información parecido al xml pero mas liviano y fácil de leer. Cabe aclarar que la seguridad no fue un punto a conciderar en el proyecto
Desde el cliente móvil la llamada a este servicio y el parseo de la respuesta se realiza de una forma muy sencilla.
Map parms = new HashMap(); parms.put("email", email);

parms.put("pass", pass);

UsuarioDTO user = restTemp.getForObject( Constantes.LOGIN_SERVICE_URL, UsuarioDTO.class, parms);
De esta forma se esta llamando al servicio antes descrito pasandole el email y contraseña para el login en el sistema. El parámetro del UsuarioDTO.class esta diciendo que el retorno sera de este tipo y el parseo lo realizara SpringAndroid de forma

transparente.

Justificación de factibilidad del poc (abarco toda la gama de soluciones)

Factibilidad económica
Siendo esto un proyecto de grado de carácter universitario y que no existe ningún costo en la mano de obra involucrada. A demás dicho proyecto sera lanzado a la comunidad

open source por lo que todas las herramientas utilizadas respetan esta filosofía.

Factibilidad Técnica

Creemos que dado el alcance del proyecto y los resultado obtenidos en la prueba de concepto donde se logro realizar la comunicación mediante servicios web entre un servidor y una aplicación Android corriendo en un dispositivo móvil y también se logro mostrar un mapa con un punto determinado nos dan las pautas que técnicamente es factible la realización del proyecto.

Un punto que vale la pena destacar son las características técnicas de quien es el tutor del proyecto que son de gran ayuda a la hora de afrontar problemas técnicos.


Conclusión
El equipo del proyecto quedo satisfecho con los resultado obtenidos en la prueba de concepto dado que los conocimientos de los integrantes del equipo en las tecnologías mencionadas presentaba una dificultad técnica que quisimos atacar desde el comienzo.

Creemos que los conocimientos adquiridos en esta etapa del proyecto fue de vital importancia para la confianza de los integrantes del equipo y del éxito del proyecto.
Documento investigacion de mercado
Objetivo
El objetivo de este documento es el de exponer el estado actual del mercado en cuanto a software de geolocalizacion sobre dispositivos moviles. Se pretender presentar las aplicaciones que dominan el mercado junto con sus principales ventajas y desventajas. También se quiere resaltar las debilidades que los actuales productos tienen las cuales podrían ser suplidas por este proyecto o proyectos futuros.

Alcance
El alcance de este proyecto estará determinado por el tiempo del mismo pero se pretende que este sea el punto de inicio para futuros proyectos.

Situación actual del Mercado
Quisas las principales aplicaciones hoy en dia que prestan servicios de geolocalizacion son Foursquare, Yelp, Gowalla, todas utilizan la ubicacion geografica como punto fuerte y tiene un alto uso de las redes sociales.

A la lista de estas tres aplicaciones no podemos dejar afuera a Google que con su nuevo producto, Google Places pretender dominar el mercado de la geolocalizacion para dispositivos moviles y Facebook con su nuevo servicio de geolocalizacion Facebook Place.
Foursquare
Caracteristicas principales
Foursquare es una aplicacion web que combina las redes sociales con la información de sitios de interes. Para poder hacer esto de una forma mas eficiente contiene un aplicacion para dispositivos moviles que utiliza la geolocalizacion como principal característica.

Ademas de lo planteado, Foursquare implementa un juego que consiste en generar puntos por los checkins que se realizan a un sitio. A partir de estos puntos se otorgan jerarquias a los usuarios, como puede ser la de “Mayor” de un sitio. Permite invitar amigos que tengamos en otras redes sociales como Facebook o twiter.

Recientemente foursquare incorporo un sistema de promociones a partir de los checkins del usuario con una alianza estrategica con GroupOn
Ventajas

  • Disponible para una gran cantidad de sistemas operativos moviles

  • Disponible en muchos países


Desventajas

  • Datos no muy precisos para países como Uruguay


Referencias

https://es.foursquare.com/

Gowalla
Esta aplicacion muy parecida a Foursquare pero no a tenido tanta aceptacion como la anterior. Basicamente se trata de hacer check-in en sitios de interes y asi poder ganar puntos. Tambien suma a su aplicacion la posibilidad de agregar nuestros viajes y asi poder conocer gente que ya realizo ese viaje y compartir informacion interesante de diferentes paises. Permite invitar amigos que tengamos en otras redes sociales como Facebook o twiter.

Ventajas

  • Disponible para una gran cantidad de sistemas operativos moviles

  • Disponible en muchos países

  • Interfaz intuitiva y agradable


Desventajas

  • Datos no muy precisos para países como Uruguay



Referencias

http://gowalla.com/
Yelp
Esta aplicacion es la mas utilizada actualmente en Estados Unidos en cuanto a geolocalizacion de sitios de interés. Permite comentar lugares, compartirlos con tus amigos, subir fotos entre otras cuestiones a demás de tener incorporar la realidad aumentada en la búsqueda de lugares de interés. Este punto la diferencia un poco de las otras aplicaciones comentadas anteriormente. Tambien dispone de busqueda de promociones cercanas a nuestra ubicacion al igual que Foursquare

Ventajas

  • Disponible para una gran cantidad de sistemas operativos moviles

  • Interfaz intuitiva y agradable


Desventajas

  • Solo esta disponible en EEUU y actualmente en España


Google Place
Place es la apuesta de google en la geolocalizacion. Permite ver en google maps que sitios estan cerca de nuestra ubicacion, comentar, subir fotos entre otras funcionalidades.

Facebook Place
Es el servicio de geolocalizacion de esta red social. Cuenta con la gran ventaja de la gran cantidad de usuarios que posee. Permite hacer check ins en un sitio y compartir esta ubicacion con nuestros amigos de la red

Conclusion
Indudablemente la apuesta de las grandes companias esta enfocada en la movilidad y la localizacion en cualquier parte que nos encontremos. Dado el gran crecimiento que estan teniendo los teléfonos inteligentes no es raro que pasen en utilizacion y conexiones a los pc o notebooks por que nos brindan de todas las funcionalidades de estos pero con un ingrediente clave como la movilidad y localizacion geografica.

si bien es muy difícil competir contra grandes companias como las mencionadas anteriormente el objetivo de proyecto es obtener los conocimientos en la programacion para dispositivos moviles y abrir la puerta para futuros desarrollos sobre este tema.

Referencias

http://www.juniperresearch.com/viewpressrelease.php?pr=180

http://www.tendencias21.net/El-telefono-movil-sera-clave-en-las-compras-de-Navidad-de-2010_a5031.html

http://www.tendencias21.net/La-geolocalizacion-a-traves-del-movil-nuevo-mercado-emergente_a5048.html

http://socialcompare.com/en/comparison/location-based-online-services-foursquare-facebook-places-latitude-gowalla-loopt
1   2   3   4   5   6   7   8   9   ...   14

similar:

Estado del Arte 1 Introducción iconIntroducción antecedentes del Estado

Estado del Arte 1 Introducción iconE L arte que propone un análisis del concepto del arte que se valora...

Estado del Arte 1 Introducción iconLección historia e introducción al derecho eclesiástico del estado

Estado del Arte 1 Introducción iconResumen En este trabajo se analiza el estado del arte del problema...

Estado del Arte 1 Introducción iconLa música (del griego: μουσική [τέχνη] mousikē [téchnē], "el arte...

Estado del Arte 1 Introducción iconIntroducción al arte de inventar historias
«Si dispusiéramos de una Fantástica, como disponemos de una Lógica, se habría descubierto el arte de inventar.» Era muy bello. Casi...

Estado del Arte 1 Introducción iconEs un estado de ánimo que se produce en la persona cuando cree haber...

Estado del Arte 1 Introducción icon2. El concepto de arte. Evolución del término “arte”

Estado del Arte 1 Introducción iconFundamentos de la composición visual
«La buena teoría del arte debe oler a taller, aunque su lenguaje deba ser distinto del de la charla doméstica de pintores y escultores»...

Estado del Arte 1 Introducción iconResumen: Entendemos el campo del arte contemporáneo como un laboratorio...






© 2015
contactos
l.exam-10.com