}

El equipo de i+d de idealista.com acudió al Spring IO 2011 organizado por Javahispano. A continuación, os contamos de forma resumida algunos de los puntos más interesantes de cada una de las charlas a las que asistimos. Además, incluimos las presentaciones que hemos podido conseguir del resto de charlas.

Spring in 2011 and Beyond: From Java EE 6 to Cloud Computing por Juergen Holler

Juergen Hollen es el co-creador de SpringFramework y el máximo responsable de desarrollo de Spring Framework.

Habló sobre la tendencia del mercado a las que los frameworks tienen que dar respuesta:

  • Datos que no están en bbdd tradicionales, como usarlas desde NOSQL
  • Las cachés distribuidas como:
  • Gemfire: replicación de datos, partición, redundancia de datos y su replicación, enrutamiento de datos cacheados, manejo de las consultas necesarias en tiempo real o el acceso escalable. Incorpora una interfaz de seguimiento de JMS y AdminAgent para el sistema de seguimiento y solución de problemas.
  • Coherence: proporciona una cache distribuida con datos replicados. h
  • JAVA EE/ y la programación concurrente para el uso de aplicaciones de cloud computing. Se habló de ForkJoinPools para realizar esas tareas de hilos con una nueva implementación de pool.

Las nuevas funcionalidades de Spring 3.1:

  • Profiles (@Profiles) para poder configurar beans como clases de configuración y prescindir de los xml de configuración.
  • Abstración de la cache (@Cacheable) y manejo de los objectos que sean ignorados en la cache
  • Conversation Scope en MVC Spring
  • Mejora en la integración de groovy
  • Soporte para free xml web aplication (web.xml se elimina)

Spring Data

Son varios módulos de Spring para estandarizar el uso de Spring con las bases de datos NO-SQL.

Como ejemplo de las distintas bases de datos que se utilizan:

Sitio oficial | Spring Data
Más información | ejemplos de SpringSource
Api de Spring Data

Spring AMQP

Es un sistema de mensajería similar a JMS ofrecer un modelo de abstracción de alto nivel para enviar y recibir mensajes.

Ofrece la integración de sistemas:

  • Desacoplo
  • Escalabilidad
  • Multicast, Broadcast para el envío de mensajes

Existen varias imprementaciones de AMQP. De la que mejor se habló es RabbitMQ que implementa AMQP template para la comunicación entre un producer y un consumer por medio de un broker, tanto de forma sincrona y asíncrona.

Sitio Oficial | Spring AMQP

De cero a multinacional con Grails y EC2

Fue una charla en la que la gente de ticketbis nos explicó como tienen montada su web de forma escalable usando EC2 junto a Grails y Groovy: la configuración de sus instancias, problemas que se han encontrado con el sistema de Amazon y cómo actúan cuando necesitan más maquinas debido a un pico de tráfico.

Presentación en slideshare | De cero a multinacional con Grails y EC2

Pruebas de aplicaciones web con Selenium 2 y Webdriver

Selenium 2

En esta charla nos contaron el uso de Selenium 2 integrada con Webdriver que nos permite hacer pruebas con los distintos navegadores para pobar la visión del usuario.

Page Object Pattern: crea un objeto que encapsula la página con un API especifico. Esto nos permite depurar nuestra aplicación desde la vista que le llega al usuario.

  • Selenium IDE: Script HTML
  • Selenium RC: código procedural en Java
  • Selenium 2-Webdriver: es un driver para acceder a las páginas como un determinado navegador asi podemos usar las pruebas orientas a objecto con la ayuda del Page Object Pattern.

Presentación en slideshare | Pruebas de aplicaciones web con Selenium 2 y Webdriver

Spring Social

Spring Social es un proyecto aun en fase embrionaria de Spring que permite conectar nuestras aplicaciones a las principales redes sociales: twitter, facebook, linkedin.

Para realizar la comunicación entre nuestra aplicación y el resto de redes se utiliza OAuth para la autenticación. La principal carencia es que no trae integrada oAuth, sino que hay que usar Scribe como librería externa para realizar todas las acciones.

Elementos implicados:

  • Service Provider: es el webservice donde se localizan los recursos protegidos
  • User: usuario de oAuth que no quiere compartir sus credenciales pero quiera usar el service provider en nuestra aplicación
  • Consumer: es la aplicación que esta accediendo al recurso privado del usuario
  • Recursos protegidos: los recursos a los que se le concede acceso al Consumer
  • Tokens: el sustituto de las credenciales que permite el manejo de acciones protegidas sin divulgar nuestras credenciales

Spring Social incluye una serie de templates (LinkedInTemplate, FacebookTemplate, TwitterTemplate…) que nos ofrecen el acceso a los datos de las respectivas redes sociales. Además de poder firmar las peticiones que se realicen de la parte Spring con las clases que incluye Spring Social. También incluye una librería de tags que permiten la integración con Facebook y Spring MV (ArgumentResolver) que permite el binding entre los parámetros de la petición HTTP y argumentos de la controlador MVC aislando la API real sobre la que crea una capa de acceso Spring.

Como ejemplo de aplicación tenemos a lanyrd que accede a los datos de nuestros followers en twitter para montar un grafo social de las conferencias a las que van asistir o han participado. Además de incluir la típica actualización de estado en las redes sociales a las que les concedamos acceso.

Sitio oficial | Spring Social
Presentación | Spring Social
Más información | Scribe (librería para usar OAuth)

In search of the grail of developer productivity:

Se hizo una visión global del estado de Grails y los futuros desarrollos. Interesante la herramientas que mostró para la monitorización desarrollada por Spring Source: Spring Insight

Aplicaciones web ultraescalables con Redis

Redis es una base de datos clave-valor. Bastante rápida que permite unas 100.000 operaciones en un segundo sin pestañear. Es muy fácil de escalar.

para tener varios nodos distribuidos en el futuro se está desarrollando Redis-cluster permitiendo crear nodos en caliente. Ahora mismo está disponible Redis-Sharding que permite añadir nodos en frio.

En la configuración por defecto toda la base de datos debe caber en memoria RAM. Se puede hacer algunas implementaciones para que se pueda usar en combinación con disco (se gestiona con DiskStore)

cúando usar Redis:

  • como caché. Un memcache con datos estructurados y persitentes, también soporte para expiración
  • como base de datos auxiliar cuando se necesite mucha velocidad
  • como base de datos principal

Sitio Oficial | Redis
Más información | Redis nosql y esas hierbas
Presentación Slideshare: Aplicaciones web ultraescalables con Redis

Spring Mobile y Spring Android: Spring y el desarrollo para móviles

Esta charla es la que realizó nuestro compañero dani jiménez.  nos contó cómo funcionan las extensiones de Spring Mobile y Spring Android.

  • Server-side para dectectar los terminales móviles que se conectan con nuestra aplicación web. Las ventajas son que seguimos manteniendo el control de lo que visualiza el usuario pudiendo adaptarle el contenido a sus características especificas e, incluso, realizar el direccionamiento a un dominio distinto y la gestión de sus preferencias.
  • Spring Mobile: nos permite esa detección de dispositivos y realizar el site switcher.  Con el currentDevice podemos saber si se trata de un dispositivo móvil. Existen implementaciones basadas en DeviceResolver como el WurflDeviceResolver que permite acceder a todas las características del móvil basandose en el xml de WURFL (wireless Universal Resource File) . PreferenceSiteHandler nos ayuda a manejar las preferencias de usuario desde spring. Con SiteSwitcher podemos cambiar de dominio en función del dispositivo o las preferencias de usuario. Se puede redirigir a una versión móvil o de escritorio de la web. Spring Mobile en el mundo real puede ser usado para enfocar la publicidad especifica al dispositivo, avisar de que hay disponible una versión nativa para el terminal, adaptar las resolucciones o el diseño de la web, estadísticas..
  • Spring Android: permite la comunicación entre aplicaciones hechas con Spring y una aplicación Android. El ejemplo, claro es la api, que puede manejar los objectos tal cual se usan en Spring en la aplicación Android sin tener que mapear json.

Sitio Oficial | Spring Android
Sitio oficial | Spring Mobile

Presentación | Spring Mobile y Spring Android: Spring y el desarrollo para móviles

Spring Hadoop

Hadoop es una herramienta para tratar grande cantidades de datos usando MapReduce. Se usa para grandes cantidades de datos, hablando de petabytes de información y realizar operaciones con esos datos. Es accesible, robusto, escalable y simple. Se distribuye los datos entre varias maquinas que proporciona capacidad de procesamiento.

El ponente explico como había montado los clúster en la infraestructura de Amazon:

  • Espacio de almacenamiento en S3 donde se guardan los datos a procesar
  • Nodos de ejecución en EC2 donde se ejecutará el programa
  • Aprovisionamiento dinámico en función de nuestras necesidades

Spring Hadoop es una extensión de Spring para la implementación de aplicaciones utilizando Hadoop:

  • Está en una fase inicial de desarrollo
  • Inyección de dependencias
  • Map/Reduce como POJOs: uso de anotaciones y namespace

Algunas tecnologías relacionadas:

  • Hive: sql sobre hadoop
  • Pig: lenguaje de procesado de datos de alto nivel
  • Zookeeper: servicio de coordinación de procesos distribuidos
  • Hbase: bases de datos distribuida orientada a columnas construida sobre HDFS

Sitio oficial | Hadoop
Presentación slideshare | Spring Hadoop

Introducing Summer – The HTML5 Library for Java and Scala

Summer es un proyecto que se acopla a Spring Framework MVC. Presenta un marcaje dinámico de HTML 5 que permite la interacción de la llamadas AJAX (usando jQuery) incrustadas en la página con el servidor de aplicaciones Spring: REST y soporte a Content Negotiation.

Soporta una serie de especificaciones Java EE 6 como Servlet 3.0, JPA 2.0, Bean Validation y EL 2.2
Sitio oficial | Summer
Descarga del proyecto en GitHub | Summer
Presentación Slideshare | Spring Summer

el resto de charlas:

Configurar con Spring un API no basado en Spring

Presentación Slideshare | Configurar con Spring un API no basado en Spring

Probando Grails:

Presentación Slideshare | Probando Grails

Effective Groovy:

Presentación en github | Effective Groovy

Taller DSLS en Groovy:

Presentación Slideshare | Taller DSLS en Groovy

Conociendo Griffon

Presentación Slideshare | Conociendo Griffon

Un Paseo por las Transformaciones de AST de Groovy:

Presentación Slideshare | Un Paseo por las Transformaciones de AST de Groovy

Groovy Koans

Presentación Slideshare | Groovy Koans

Taller Integración de Procesos de Empresariales con Spring Integration

Presentación Slideshare | Taller Integración de Procesos de Empresariales con Spring Integration

Deja una respuesta