evolution1Aunar las ventajas de las aplicaciones clásicas de escritorio y las páginas web dinámicas es ya una realidad con las Rich Internet Applications, también conocidas como Aplicaciones Web …

  

¿Qué es una aplicación?

De una forma básica, podríamos definir una aplicación o programa informático como un conjunto de instrucciones que ejecutan una tarea dentro de un ordenador.

 

Los programas informáticos nacieron como procesos implementados en las primeras máquinas de los años 70, pero pronto pasaron a ser distribuidos como software independiente en formato físico (diskettes, cdʼs). Al adquirir una copia del programa deseado, se introducía físicamente en el ordenador y se ejecutaba (normalmente con instalación previa).

 

Éstos programas que requieren la copia total o parcial en la máquina del usuario son conocidos como aplicaciones de escritorio, y son los que hemos estado utilizando hasta prácticamente hoy en día.

 

50ways

 

 

 

 

 

 

 

 

 

 

 

 

¿Funciona el programa en mi ordenador?

Los programas informáticos han evolucionado enormemente desde sus inicios: hemos pasado de interfaces de líneas de comando a Interfaces Gráficas de Usuario (GUI, en inglés), de lenguajes de programación de bajo nivel "difíciles" a lenguajes de alto nivel… pero aún tenemos que cargar con algunos de sus problemas, entre ellos el de la compatibilidad de software.

¿Cuántas veces hemos echado en falta un programa en una arquitectura o sistema operativo? No hay 3DStudio para MacOSX, no hay Photoshop para Linux, no hay iLife para Windows… y un largo etcétera. Son problemas que se ven todos los días, y ante los cuales sólo hay dos soluciones:

• Una, por parte de los usuarios, es optar por alternativas: Gimp en lugar de Photoshop, Maya en lugar de 3DStudio, OpenOffice en lugar de Microsoft Office, etc…

• Otra, por parte de los programadores, sería la de ponerse de acuerdo y realizar aplicaciones multiplataforma.

La primera, aunque es viable, a veces supone tener que renunciar a características y utilidades de los programas ausentes que en ocasiones no se pueden permitir. Es la causa, o una de las causas, por la que muchas empresas no usan los programas de gestión disponibles para MacOSX, por ejemplo.
La segunda también es viable, pero mucho más difícil de llevar a cabo. Debería de existir una especie de “estándar” o conjunto de normas que todas las aplicaciones siguieran para asegurar la mayor compatibilidad posible.

Por lo tanto, la respuesta a la pregunta ¿Funciona el programa en mi ordenador? sería: no, es imposible asegurar que un programa funcione en cualquier ordenador.

¿Puedo ver esta página web en mi ordenador?

El nacimiento de la Web posibilitó el acceso masivo a la llamada Tecnología de la Información. El uso de un lenguaje de texto y vínculos (enlaces) fue un acierto que hizo que todos los navegadores, todos los sistemas operativos, todas las arquitecturas; en definitiva, todo el mundo, pudiera participar de una red interconectada de forma transparente al usuario.
Sin embargo, en la Web no tardaron en aparecer algunos de los mismos problemas que aparecieron en el software de escritorio, entre ellos, el de la terrible incompatibilidad.
Hubo una oscura época en la cual muchas páginas sólo eran compatibles con el nefasto Internet Explorer (gracias, Microsoft), y cuando nos empezamos a librar de esa losa, apareció Flash Player para tomar el relevo (gracias, Adobe).

Afortunadamente, y gracias a que las cosas se hicieron bien desde el principio, en la Web existen unos estándares, unas normas, reguladas por un organismo internacional (W3C) que vela porque casos como el de IExplorer y Flash se vayan dejando atrás.
Son ellos los que ahora mismo están moviendo el tema de HTML5, con el que conseguirán eliminar las barreras que ahora mismo hacen que ver un vídeo en Flash sea una tortura fuera de Windows, o que los formularios de algunas webs de diputaciones provinciales sólo funcionen con Internet Explorer.

Con lo que si nos preguntan ¿Puedo ver esta página web en mi ordenador? podríamos responder que sí, existen mecanismos que pueden asegurar que una página web puede verse sin problemas en cualquier ordenador.

Un término medio: RIAs

Existen algunas webs que necesitan algo más que mostrar los contenidos de forma estática, a las cuales nos referimos como webs dinámicas.

En algunos casos, el dinamismo requerido no es ciencia espacial (actualizar un contenido según el día de la semana, avisar al usuario si no ha rellenado un campo correctamente…), pero en ocasiones las acciones que se realizan después del click en el botón de “enviar” son de una complejidad comparables a las de las aplicaciones de escritorio (nos referimos a intranets, áreas personalizadas de un portal web, tiendas online, etc).

Es entonces cuando estamos hablando de Aplicaciones Ricas de Internet (Rich Internet Applications, RIAs) o Aplicaciones Web. Una aplicación web va mucho más allá del enfoque de una página web estándar, llega al nivel de las aplicaciones de escritorio e incluso a veces las superan.

En términos de arquitectura de software, las aplicaciones web suelen dividirse en dos bloques o capas:

• La capa de Vista o Interfaz, que es la que el usuario ve en su navegador y mediante la cual interactúa: es donde se encuentran las ventanas, botones, menús, imágenes…

• La capa de Lógica de Negocio (o Servicios de Negocio), es la encargada de ejecutar la acción que el usuario solicita (pulsando un botón, seleccionando una opción del menú) y de informar del resultado de la misma.

La capa de interfaz se maneja desde la máquina local del usuario, mediante su navegador web, mientras que la lógica de negocio está centralizada en un servidor. Una aplicación de escritorio se ve como un paquete que, mediante instalación o sin ella, se ejecuta de forma íntegra en el ordenador de cada uno.

 rich

 

 

 

 

 

 

 

 

 

¿Qué ventajas aportan las RIA? Y qué desventajas?

Compatibilidad: al seguir los estándares de la W3C para el desarrollo de la capa de interfaz, se podrá ejecutar sin problemas en Firefox, Safari, Opera, Chrome… hasta en Internet Explorer 🙂 con independencia del sistema operativo utilizado, claro. La capa de lógica sólo debe preocuparse de funcionar bien en la máquina servidora.

Escalabilidad: gracias a la diferenciación Interfaz-Lógica, se puede cambiar el aspecto visual de la aplicación de forma independiente a las “tripas” que están en el servidor, e incluso se podrían tener varias versiones distintas de la capa visual funcionando a la vez con la misma capa de lógica.

Economía de recursos: al estar la lógica de negocio (la parte “dura” de la aplicación) centralizada en el servidor, no se necesita que la máquina del cliente tenga unas características técnicas elevadas. Un equipo de hace varios años podría manejar sin problemas una RIA actual.

De un plumazo, se solucionan muchos de los problemas que tenemos al usar aplicaciones de escritorio.

Pero como no podía ser de otra manera, no es oro todo lo que reluce, y el uso de RIAʼs también implican ciertas desventajas frente a las aplicaciones de escritorio:

Tipología: no todos los tipos de aplicaciones de escritorio se pueden implementar usando RIAʼs. Hablo de programas de diseño, fotografía, videojuegos, etc. Para poder hacer un 3Dstudio online se necesitaría una conexión de banda muy ancha y un servidor con una potencia bastante alta.

Dependencia de la red: absoluta y completa. Si un día que necesitas ejecutar la aplicación se ha cortado la línea no podrás siquiera acceder a la pantalla de bienvenida.

Contenidos Multimedia: pese a que últimamente se están mejorando a pasos agigantados, los anchos de banda y los materiales utilizados en los cableados hacen que acceder a contenidos de audio o vídeo pueda ser un suplicio, por mucho streaming y técnicas de compresión que se usen.


¿Tienen futuro las RIAs?

Las aplicaciones web existen desde hace tiempo. El sector del software de gestión se está moviendo mucho hacia ése lado, y es de esperar que según se mejoren las condiciones de conexión y la cultura empresarial vaya cambiando, las posibilidades aumenten aún más. apple_macbook_chrome_os

 

 

 

 

 

 

 

 

Sin embargo, bajo mi punto de vista, hay dos acontecimientos en los que las RIAʼs pueden encontrar un nuevo impulso que podría consolidarlas como la gran alternativa al software de escritorio:

• Por un lado está el lanzamiento de ChromeOS, el sistema operativo distribuido de Google. La filosofía de “todo está en la nube” favorece que las aplicaciones que se ejecuten sean en su inmensa mayoría aplicaciones web.

• Y por otro, la llegada de los dispositivos móviles: la compatibilidad que se gana en los sistemas operativos de escritorio también se gana aquí. A día de hoy, tanto el iOS de Apple como el Android de Google, el WebOS de Palm y el Windows Phone de Microsoft, aceptan o van a aceptar las aplicaciones programadas con estándares HTML de W3C, que se comunicarían con un servidor de forma transparente al usuario, el sistema y el dispositivo.

 
Conclusión

En definitiva, tenemos una alternativa al desarrollo de software de escritorio usando las ventajas que ofrece la tecnología web, y que solucionaría varios de los problemas críticos que hemos venido arrastrando desde hace años.

Con el lanzamiento de ChromeOS y la necesidad de unificar las tecnologías de desarrollo de aplicaciones para los dispositivos móviles, las RIAʼs pueden encontrar un impulso del que hasta ahora han carecido, convirtiéndose en una alternativa sólida para el desarrollo de aplicaciones complejas.

 

 

Si quieres ver en detalle cómo funcionan y cómo se construyen las RIA …

pásate por la zona de descargas de Macuarium.

 

Puedes también comentar el artículo en los foros .