Adobe AIR
Este lunes ha dado comienzo en Madrid el Adobe AirTour que va a recorrer 11 ciudades europeas presentando la tecnología AIR de Adobe.
Qué es AIR?
AIR es un runtime que posibilita la ejecución de aplicaciones web fuera del su entorno habitual, el browser, y les proporciona los medios necesarios para que puedan integrarse completamente con el sistema operativo, convirtiéndose en “aplicaciones de primera clase” con exactemente los mismos “derechos” y capacidades que las aplicaciones nativas, con las ventajas propias de las aplicaciones web.
AIR dispone, digamos, de dos motores de renderizado/ejecución que le permiten gestionar aplicaciones HTML, JavaScript (AJAX), Flex y Flash.
El motor para HTML está basado en Webkit, que es el mismo motor que utilizan navegadores como Safari (mac/windows), Nokia S60 Webkit o Konqueror, y el motor para Flex está basado en Flash.
No es necesario efectuar cambios en las aplicaciones existentes para poder desplegarlas en AIR, sino simplemente preparar el paquete correspomndiente, indicándole al runtime el “punto de arranque”, la página HTML inicial o el “swf” correspondiente.
AIR proporciona runtime para Mac, Windows y Linux, y en su plan está la
actualización simultánea de las tres plataformas en cada nueva versión.
Integración con el Desktop
Sin embargo si esto fuera lo único tampoco se habría avanzado gran cosa, la parte importante de AIR es la integración con el Desktop, y esto lo consigue con la inclusión de un conjunto de APIs que dan acceso a los servicios nativos del SO, algunas de estas APIs son:
- Windowing API
Acceso al sistema de ventanas nativo, permitiendo la creación múltiples tipos de ventanas (ventana normales, de diálogo, transparente), la visualización en distintos modos (FullScreen, Always on Top…), acceso a todas las ventanas del desktop… - Menu API
Creación/Acceso de/a menús nativos de aplicación (Mac), de ventanas, de contexto, de SystemTray (Windows, Linux), de dock (Mac) o pop-up menús. - File I/O
Creación/Acceso a ficheros y directorios, gestión de I/O síncronas y asíncronas, acceso a directorios de aplicación, desktop, usuairo…, almacenamiento local encriptado.
- Drag and Drop
Disponible tanto para la aplicaciones HTML como para las Flex y multidireccional:
AIR a Desktop
Desktop a AIR
AIR a AIR - Interacción con el Clipboard
Lectura y escritura en el Clipboard - SQLite
AIR viene con una base de datos SQL local. Esta base de datos puede emplearse simplemente como almacenamiento local, por ejemplo para datos de configuración o para tratamiento de datos/cálculos locales, pero también en combinación con BlazeDS para trabajo desconectado y sincronización diferida de datos con el servidor. - Arranque automático al hacer login el usuario
- Establecimiento de asociaciones de tipos de ficheros
Que cuando se haga doble click sobre un fichero de un tipo se arranque la aplicación AIR que esté asociada. - Detección de la actividad de un usuario
Si el usuario está más de un determinado tiempo sin utilizar el sistema AIR notifica a la aplicación registrada la situación. - Monitorización de red
Detección de cambios en la situación de los interfaces de red (conectado/no conectado), monitores sobre URL y sockets. - Comunicación entre todas la aplicaciones AIR arrancadas en el desktop e incluso con las aplicaciones Flex/Flash que se estén ejecutando en browser.
Todas estas APIs están disponibles/accesible tanto desde HTML como desde Flex.
Seguridad
AIR proporciona un acceso amplio a los recursos locales de a máquina, y por tanto, abre la puerta a las aplicaciones maliciosas, que siempre están esperando (troyanos, XSS-Cross Site Scripting, SQL Injection…).
Estos problemas no son específicos de AIR, sino que más bien, son comunes de cualquier aplicación con un acceso completo a los recursos del sistema, y por ello, será necesario tener siempre en mente la cuestión de la seguridad.
AIR proporciona las siguientes medidas de seguridad:
- Firma de aplicaciones
Las aplicaciones AIR deben ir firmadas, aunque el certificado utilizado para firmar puede que no consiga verificarse, y aquí debe ser el usuario el que decida si se arriesga a instalar una aplicación cuyo autor no puede identificar. Lo lógico sería no hacerlo pero… - Sandboxes
AIR contempla varios niveles de sandboxes:
- Application Sandbox, que permite acceso a todos los APIs de AIR y que coloca en él únicamente el código cargado del directorio de instalación de la aplicación.
- Non-application Sandbox, que no permite el acceso APIs de AIR y que tiene el mismo comportamiento que si se ejecutara en el interior del browser. En este sandbox se coloca cualquier otro código no cargado en el Application Sandbox. - Desactivación de algunas funcionalidades
Hay algunas funcionalidades, como por ejemplo la evaluación de código JavaScript (algo común en aplicaicones AJAX) que no están habilitadas en las aplicaciones cuando se ejecutan en el entorno AIR.
Instalación de AIR y aplicaciones AIR
La aplicaciones AIR requieren que instale previamente el runtime de AIR, pero posteriormente se instalan de la misma forma que las aplicaciones nativas. Actualmente el instalador ofrece poca personalización y se limita a comprobar las versiones de AIR instaladas, a ofrecer al actualización en su caso y verificar la fiabilidad de la firma de la aplicación, próximanente proporcionarán un instalador más flexible que permitirá ampliar las posibilidades de personalización del proceso de instalación.
Software y Licencias
- Open Source
- Flex (Framework, compiladores y debuggers) -> Mozilla Public License
- BlazeDS (infraestructura de servidor, complementaria para aplicaciones AIR/Flex) -> GNU Lesser General Public License - AIR/ Flash Runtimes
Los Runtimes no son Open source, pero son gratuitos, y se distribuyen bajo Adobe Flex SDK License
Ejemplos
AOL Top 100 Videos
Ebay Client
Disney Travel AIR Application, esto es un video mostrando esta aplicación de reservas para los DisneyLand.
Google Analytics - Interfaz AIR para Google Analytics
Snitter - Interfaz AIR para Twiter
Varios - Integración con Ext…
Conclusiones
AIR reutiliza las tecnologías ya existentes y ampliamente difundidas (HTML/Flex-Flash) y las lleva un poco más allá integrándolas completamente con el desktop, proporcionando a las aplicaciones web una interactividad y riqueza impensable para las aplicaciones web clásicas.
AIR, junto con otros productos, como la combinación GWT/Gears, forma parte de una tendencia que se está viendo cada vez con más fuerza, y que consiste en una cierta vuelta al sistema cliente/servidor, pero con las ventajas de una aplicación web:
* Aplicaciones cada vez más ricas en el cliente, absorviendo cada vez más funcionalidad y control, con la transformación progresiva del servidor en un mero “proporcionador” de servicios/datos, con la posibilidad de funcionar en modo desconectado, e independientes del sistema operativo subyacente.
Enlaces