viernes, agosto 25, 2006

RIA

Si alguien se preguntaba qué es lo que hago, y claro de que vivimos todos aqui. Here some answers...


Rich Internet Applications

Whitepaper de introducción a la materia.

Definiciones.

by Paco from http://www.presenciaeninternet.es
______________________________________________

RIA es un nuevo tipo de aplicación o página Web con más ventajas que las tradicionales aplicaciones Web, llamado a convertirse en un nuevo paradigma del software, el cual cambiará drásticamente nuestra visión del mismo.

En las tradicionales aplicaciones Web, hay una recarga continua de páginas cada vez que el usuario pulsa sobre un enlace o elemento interactivo. De esta forma se produce un tráfico muy alto entre el cliente y el servidor, llegado muchas veces, a recargar la misma página con un mínimo cambio.

Otra de las desventajas de las tradicionales aplicaciones Web es la poca capacidad multimedia que posee. Para ver un vídeo tenemos que usar un programa externo para su reproducción.

En los entornos RIA, en cambio, no se producen recargas de página, ya que desde el principio se carga toda la aplicación y sólo se produce comunicación con el servidor cuando se necesitan datos externos como datos de una Base de Datos o de otros ficheros externos.

Las capacidades multimedia son totales gracias a que estos entornos tienen reproductores internos y no hace falta ningún reproductor del Sistema Operativo del usuario.

Las aplicaciones ricas de Internet (RIA) son aplicaciones Web que tienen funciones de aplicaciones de escritorios tradicionales. Las RIAs transmiten los datos para el interfaz de usuario al cliente pero mantienen en el servidor la información que se va a manejar.

Las RIAs:

• Se ejecutan en un navegador Web o no necesitan instalación.
• Se ejecutan localmente en un entorno seguro denominado sandbox.
• Pueden estar conectadas solo ocasionalmente, ofreciendo la posibilidad de ir conectándose a través de hotspots o simplemente conectando de oficina en oficina.


Comparaciones con aplicaciones Web estándar.

Las aplicaciones Web tradicionales centran toda su actividad en torno a una arquitectura de cliente-servidor con un cliente ligero. Bajo este sistema, todo el procesado es realizado en el servidor y el cliente solo se usa para mostrar contenidos estáticos (html).

El mayor inconveniente de este sistema es que toda interacción implica pasar por el servidor, lo cual requiere enviar datos al servidor, que el servidor responda y cargar de nuevo la pagina en el cliente con las modificaciones.

Usando una tecnología de cliente que puede ejecutar instrucciones en el propio sistema, las RIAs evitan estas comunicaciones innecesarias y mejoran considerablemente los tiempos de carga, el uso del ancho de banda y en general la experiencia de usuario.

Esta diferencia es en cierto modo análoga a la que hay entre las arquitecturas de Terminal-Mainframe y Servidor-Cliente pesado.

Es importante advertir que los estándares de Internet han evolucionado lenta y continuamente a lo largo del tiempo para acomodarse a estas técnicas , por lo que es difícil definir con seguridad que es lo que constituye una RIA y que no.

A día de hoy, las RIAs son una oportunidad única para la elaboración de sofisticado software, hasta ahora exclusivamente disponible en aplicaciones de escritorio. Gracias a ello, se mantienen las capacidades de programación en este ámbito, eliminando las barreras de equipo (no necesitan instalación), ubicación (accesibles desde cualquier parte del mundo a través de Internet) y entorno (independientes del Sistema Operativo).

Ya se comienzan a ver complejas aplicaciones RIA que implementan potentes clientes de correo, aplicaciones de IM con voz y vídeo, juegos, etc.

En Meetworks apostamos claramente por estas soluciones y más concretamente en las soluciones de Macromedia en este campo. Gracias a una disponibilidad en más del 98% de los ordenadores del mundo de Macromedia Flash Player y la existencia de Players para dispositivos móviles, PDAs y dispositivos limitados, nuestras aplicaciones tienen un alcance difícilmente alcanzable con otras plataformas.

Beneficios

Debido a que las RIAs aprovechan el procesador del cliente, ofrecen opciones en tiempo real para el interfaz de usuario que no son posibles con los widgets disponibles para aplicaciones en navegador desarrollados en HTML y derivados.

Esta funcionalidad mucho mas rica podría incluir cualquier cosa que pueda hacerse en el cliente, como “arrastrar y soltar”, operaciones calculadas en el cliente (Ej.: un calculador de tasas de seguros) sin necesidad de ser enviados de vuelta al servidor, etc.

La alta interactividad de las RIAs comparada con las aplicaciones Web estándares puede equiparase a la de los cliente pesados. Por tanto, la experiencia de usuario es decididamente superior, más versátil y rápida de lo que jamás podrán ser aplicaciones Web basadas en etiquetas (HTML y derivados).

También hay mejoras en el rendimiento:

• Los recursos del servidor y el cliente están más balanceados por lo que el servidor ya no tiene que ser tan potente como con aplicaciones Web. Al liberar los recursos de servidor se consiguen más sesiones simultáneas.

• El tráfico de la red también puede ser reducido considerablemente debido a que el cliente puede ser más inteligente que un navegador Web a la hora de determinar que datos necesita enviar y recibir del servidor.

Esto reduce los tiempos de transferencia de cualquier consulta o respuesta debido a 2 razones - son más pequeñas y la carga de la red es muy inferior -. Adicionalmente, existen mecanismos de cacheo inteligente que reducen aún más el tráfico desde/hacia el servidor. Los datos descargados previamente desde el servidor no vuelven a ser cargados aun cuando se repita la misma operación centenares de veces.

Gracias a la mayor inteligencia implementada en el cliente, el refresco de datos puede efectuarse sólo cuando los datos hayan cambiado realmente y no en cada operación de consulta.

• Ejemplos reales de aplicaciones RIA demuestran la idoneidad de esta arquitectura, posibilitando acceso a datos y complejas operaciones prácticamente sin espera incluso sobre conexiones lentas: pueden moverse miles e incluso millones de registros desde una base de datos totalmente en tiempo real.
• Las RIAs posibilitan comunicación bidireccional y asíncrona, lo que permite un alto rendimiento de múltiples conexiones con el servidor desde un mismo cliente, implementación de funciones PUSH para notificaciones automáticas del servidor, etc.

Soluciones Adobe Macromedia para la realización de RIAs.

Macromedia fue la primera compañía en definir el concepto RIA como un nuevo paradigma del software aplicado a Internet, y desde entonces, ha dotado al mercado con algunas de las mejores soluciones para su creación.

Macromedia Flash Player, pluggin disponible para todos los sistemas y navegadores del mercado más extendidas y con una ubicuidad cercana al 99%, garantiza un medio de ejecución perfecto sin necesidad de instalación adicional en cualquier ordenador cliente. Gracias a su arquitectura, independiza en gran medida del sistema operativo, el lenguaje o el navegador usado; consiguiendo de esta manera máxima compatibilidad, disponibilidad y portabilidad a la hora de acceder a las aplicaciones.

Una evolución importante tanto en Flash Player como en herramientas de autor como Macromedia Flash y Macromedia Flex, es posible desarrollar aplicaciones orientadas a objetos, con interface de usuario de alto impacto y herramientas adecuadas para reducir el tiempo de desarrollo, potenciar la reutilización de código, trabajo en equipo y opciones de extensibilidad y mantenimiento del software.

Flash Remoting.

Flash Remoting es una tecnología especial de Macromedia, basada en un formato llamado AMF, que permite enviar y recibir objetos y datos binarios entre Flash y un servidor; haciendo mucho mas veloz, fácil y efectiva la transferencia de datos entre ellos.
Este formato viene siendo lo que pretenden los WebServices pero aportando soluciones inmediatas a los principales problemas de los mismos:

Los WebServices están basados en comunicación entre clientes/servidores mediante el intercambio de documentos XML.
Por definición, XML necesita una importante cantidad de caracteres para representar cualquier información, por lo que se necesita un ancho de banda desproporcionadamente superior con respecto a comunicaciones binarias y otras codificaciones. Flash Remoting resuelve este problema de diversas formas: la comunicación es binaria y comprimida, lo que reduce drásticamente el ancho de banda necesario.

Otro problema típico de los WebServices es la seguridad: Es complejo definir y mantener mecanismos de seguridad que imposibiliten que personas no autorizadas realicen llamadas remotas a un WebService, por lo que potencialmente se permite acceso no autorizado a datos sensibles en el caso de que este aspecto esté descuidado. Flash Remoting resuelve desde el origen este problema, puesto que la comunicación es binaria (en contra de texto plano como en los WebServices) e implementa una política de seguridad flexible, potente y fácil de administrar: es posible definir usuarios de acceso incluso por función, de tal manera que es imposible llamar a un procedimiento remoto sin previamente comunicar credenciales válidas.
Con Flash Remoting, se pueden crear conexiones a bases de datos, comunicarse con objetos y funciones en, por ejemplo, PHP, ASP/.NET y Java.

Gracias a la avanzada serialización y conversión de tipos, Flash Remoting posibilita una reutilización de código de proyectos anteriores sin precedentes: Es posible usar los mismos scripts PHP usados en aplicaciones Web estándar para comunicarse con un cliente RIA sin reescribir en muchos casos una sola línea de código.
Por ejemplo: Si una función PHP retorna un DataSet desde MySQL, este es convertido de manera transparente a un DataSet compatible Flash, permitiendo una asignación directa del mismo como origen de datos para un DataGrid.

AMFPHP
es una implementación de servidor gratuita y opensource que permite comunicar directamente a aplicaciones Flash Player con scripts PHP.

Gracias a la alta disponibilidad de código PHP, programadores experimentados y proyectos actualmente en producción, se antoja una solución excelente para garantizar un rápido desarrollo y la máxima compatibilidad con planes de alojamiento de páginas Web existentes en el mercado.

Gracias a su condición de Open Source, las soluciones RIA implementadas sobre Flash/AMHPHP/MySQL aportan una ventaja competitiva de relevancia, permitiendo reducir drásticamente el coste de desarrollo e implantación y/o ampliando de manera importante los márgenes de negocio sobre otras soluciones propietarias.

*********************
Genial no?