RIA

RIA acrónimo de Rich Internet Applications (Aplicaciones de Internet Enriquecidas)son un nuevo tipo de aplicaciones con más ventajas que las tradicionales aplicaciones Web. Esta surge como una combinación de las ventajas que ofrecen las aplicaciones Web y las aplicaciones tradicionales.

Herramientas para la creación de entornos RIA

Hay muchas herramientas para la creación de entornos RIA. Entre estas se puede mencionar las plataformas Adobe Flash, Adobe Flex y Adobe AIR de Adobe, AJAX, OpenLaszlo, Silverlight de Microsoft, JavaFX Script de Sun Microsystems, Bindows, GWT, JavascriptMVC y Javascript.


Arquitectura

Generalmente se tiene una aplicación cliente “stateful” y una capa de servicios separada. RIA se apoya más sobre un desarrollo “cliente-servidor” en vez de un desarrollo web tradicional, en donde el estado se mantiene en el servidor en sesiones. El cliente sabe acerca de sí mismo y el tipo de datos que esta solicitando y únicamente solicita los datos que necesita sin ninguna otra información.

Cliente Se maneja la interacción entre el usuario y la “interfaz del usuario”, el usuario invoca comandos, actualiza vistas y carga datos. Aquí se mantiene el estado de la aplicación, se manejan todas las peticiones de datos hacia el servidor y se controla como se presentan los datos.

Servidor Aquí se manejan y se procesan todas las peticiones de la aplicación cliente y delega las acciones en el servidor, estas pueden ser, guardar datos en la base de datos, actualizar los archivos del sistema, retornar datos al servidor, o algún tipo de proceso analítico. Determina y le da formato a los datos que son retornados al cliente.

Aplicaciones

Consisten en el aprovechamiento de la experiencia del usuario en herramientas y funciones de escritorio tan naturales como copiar, cortar y pegar, redimensionar columnas, y ordenar etc., con el alcance y la flexibilidad de presentación y despliegue que ofrecen las aplicaciones o páginas Web junto con lo mejor de la multimedia (voz, vídeo, etc.). Se puede decir que las RIA son la nueva generación de las aplicaciones y es una tendencia ya impuesta por empresas como Macromedia, Magic Software, Sun o Microsoft que se encuentran desarrollando recursos para hacer de este tipo de aplicaciones una realidad. Estas aplicaciones están basadas en plataformas J2EE o.NET, con un front-end Flash o Java swing y utilizan una arquitectura Cliente/Servidor asíncrona, segura y escalable, junto con una interfaz de usuario Web. Entre los beneficios principales de aplicaciones RIA tenemos una mejora importante en la experiencia visual, que hacen del uso de la aplicación algo muy sencillo, ofrece mejoras en la conectividad y despliegue instantáneo de la aplicación, agilizando su acceso, garantizan la desvinculación de la capa de presentación es decir acceso a la aplicación desde cualquier computador en cualquier lugar del mundo.


Características clave

Accesibilidad: AJAX en nativo en los “navegadores web” y es el único “RIA framework” que puede ser encontrado por los diferentes motores de búsqueda. Aunque Adobe Flash ha dado grandes pasos en esta dirección.

Comunicaciones avanzadas: con servidores que soporten nuevas tecnologías se puede mejorar la experiencia del usuario al utilizar protocolos de red optimizados y entradas y salidas asíncronas. Se requiere de una conexión de banda ancha confiable.

Complejidad: soluciones avanzadas puede ser más difíciles de diseñar, desarrollar, implementar y depurar que las aplicaciones web tradicionales.

Consistencia: la interfaz de usuario y las experiencias pueden ser controlada por el “OS”, el monitoreo del rendimiento y diagnostico de errores puede ser difícil.

Instalación y mantenimiento: se requiere de la instalación de “plugin”, “virtual machine” o “sandbox”, que generalmente es más rápida que la instalación de una aplicación tradicional y esta no se puede automatizar. Las actualizaciones son automáticas.

Offline: puede ser soportada reteniendo el estado en la maquina cliente.

Seguridad: se mejora la seguridad por medio de actualizaciones automáticas y “sandbox”. Pero las extensiones por sí mismas son sujetas a vulnerabilidades.

Rendimiento: puede ser mejorado dependiendo de la aplicación y de las características de la red. Aplicaciones que pueden procesar localmente en el cliente evitan viajes hacia el servidor lo que incrementa su rendimiento. Dándole más trabajo al cliente también se puede incrementar el rendimiento del servidor. Por el contrario los recursos necesarios hacen difícil que las aplicaciones puedan ejecutarse en dispositivos pequeños, móviles o embebidos.

Riqueza: añadiendo características que no son nativas en los “navegadores web” como captura de video.

Beneficios

  • A pesar de que el desarrollo de aplicaciones multimedia para navegadores web está mucho más limitada y es más difícil que otro tipo de aplicaciones de escritorio, los esfuerzos se justifican por varios motivos:
  • No necesitan instalación (solo es necesario mantener actualizado el navegador web).
  • Las actualizaciones hacia nuevas versiones son automáticas.
  • Se pueden utilizar desde cualquier ordenador con una conexión a Internet sin depender del sistema operativo que este utilice.
  • Generalmente es menos probable la infección por virus, que utilizando por ejemplo programas ejecutables.
  • Más capacidad de respuesta, ya que el usuario interactúa directamente con el servidor, sin necesidad de recargar la página.
  • Ofrecen aplicaciones interactivas que no se pueden obtener utilizando solo HTML, incluyendo arrastrar y pegar, cálculos en el lado del cliente sin la necesidad de enviar la información al servidor.
  • Evita la problemática del uso de diferentes navegadores al abstraerse de ellos a través de un framework.


RIA “framework”

Habitualmente se necesitan frameworks para ejecutar cualquier aplicación RIA; y ésta debe ser instalada en el ordenador antes de ejecutar la aplicacion. El propio framework ya se ocupa de descargar, actualizar, verificar y ejecutar el RIA. Éstos son algunos ejemplos de frameworks para ejecutar RIAs:


Enlaces externos