Las tecnologías para la construcción de aplicaciones Java y Flex. 1/2

Las tecnologías para la construcción de aplicaciones Java y Flex.

Las tecnologías para la construcción de aplicaciones Java y Flex.

Este artículo proporciona una visión general de las tecnologías para crear aplicaciones Java y Flex. Dependiendo de su experiencia como desarrollador de Java, Flex o en Adobe AIR u otra tecnologia, podrias estar familiarizado con algunas de estas tecnologías.

PLATAFORMA ADOBE FLASH

La Plataforma Adobe Flash es lo que Adobe llama a su familia completa de tecnologías utilizadas para crear, ejecutar y proporcionar datos a las aplicaciones ricas (en forma de archivos SWF - simple web format), incluidos client runtimes, herramientas, frameworks, servidores y servicios en la nube. Muchos de estos componentes seran revisados en detalle en este post.


FLASH PLATFORM RUNTIMES


En el centro de la plataforma Flash estan los tiempos de ejecución de cliente:

  • Adobe Flash Player para el browser
  • Adobe AIR para el escritorio.

Estos players (equivalentes a la maquina virtual de java ) interpretan y ejecutan las aplicaciones creadas en la plataforma flash (en forma de archivos SWF).

Adobe Flash Player

La experiencia del usuario al interactuar con el contenido web tradicional creado con HTML y JavaScript ha cambiado drásticamente a lo largo de los años, de vínculos simples a múltiples, con paginas simples a "aplicaciones" de una sola pagina con llamadas de datos asincrónica y controles interactivos. La experiencia, sin embargo, sigue estando limitada por los objetos que están disponibles en el modelo de objetos del browser. Aquí es donde entra en juego Flash Player

Adobe Flash Player es un plugin para el browser o control Active X que tiene un modelo de objetos mucho más rico y su motor de rendereo que permite a los desarrolladores la creación de aplicaciones web expresivas y contenidos interactivos. Para incluir este contenido más rico, se crea un archivo SWF, utilizando algunas herramientas de desarrolllo,para después hacer referencia a este archivo SWF en su página HTML. Cuando la página HTML es analizada por el browser, el archivo SWF se descarga y ejecuta Flash Player en la ventana del browser

 

Adobe AIR

Flash Player es el runtime de cliente para las aplicaciones creadas sobre la plataforma Flash en el browser. Estas aplicaciones tienen todos los beneficios de las aplicaciones basadas en browser, incluyendo acceso desde cualquier lugar, el despliegue fácil (sin instalación), actualización simple, y la coherencia en todos los sistemas operativos y browsers.Sin embargo también comparten las limitaciones de las aplicaciones web, incluyendo la falta de acceso fuera de línea y las restricciones de seguridad del browser(sandbox), que impide interactuar fuera de la ventana del browser.

Con el fin de obtener lo mejor de ambos mundos, Adobe creo Adobe AIR, un runtime para múltiples sistemas operativos y un conjunto de herramientas que permiten a los desarrolladores desplegar HTML, Ajax, Flash y aplicaciones de la plataforma (archivos SWF) en el escritorio. Un patrón de diseño emergente es ofrecer una versión de la aplicacion basada en web para los usuarios y otra versión de escritorio para los usuarios más activos. Se puede utilizar herramientas como Flash Builder, Flash Professional o Flash Catalyst para crear archivos SWF, tanto para aplicaciones web y de escritorio. Si llegamos a crear ambos tipos de aplicaciones, es posible compartir el código y eso es una gran ventaja .

Es posible utilizar Flash Builder para crear tanto aplicaciones web y de escritorio con Flex. Al compilar una aplicación Flex para el escritorio se crea un archivo SWF y un archivo XML (archivo descriptor de aplicación), que incluye información sobre lo que el contenedor de la ventana del sistema operativo debe ser similar, ¿qué icono se debe utilizar para la aplicación en el cliente?,uso de tranparencia, UI personalizada y mucho más.

Durante el desarrollo Flash Builder ejecuta una herramienta denominada AIR Debug Launcher (ADL), que nos permite ejecutar la aplicación sin necesidad de instalación. Cuando esta lista la aplicacion para su despliegue, Flash Builder utiliza una herramienta llamada el ADT (AIR Development Tool) para construir la aplicacion que consiste en un archivo .air(archivo empaquetado y comprimido), que incluye el archivo SWF, el archivo descriptor de aplicacion, imagenes,etc. El archivo AIR es lo que se debe distribuir al usuario. Cuando se exporta, también se debe asociar un certificado digital de una entidad certificadora para firmar la solicitud, ya que se instalará en la computadora del usuario con todos los permisos y tienen la capacidad para interactuar con su sistema operativo. (Por supuesto, se podra instalar sólo las aplicaciones de confianza y asi minimizar la posibilidad que contenga cualquier código dañino.)

Con el fin de correr una aplicación AIR, los usuarios deben tener instalado el player de Adobe AIR. Para proporcionar al usuario una experiencia de instalación sencilla mediante una página web (en lugar de tener que descargar e instalar el runtime de AIR y descargar e instalar la aplicación AIR),se tiene la aplicacion Badger basada en Flex AIR creada por Grant Skinner un Adobe Evangelist, esta aplicacion simplifica enormemente al desarrollador publicar sus aplicaciones basadas en AIR.

Cabe mencionar que es posible utilizar cualquier editor de texto y el Adobe AIR SDK para desarrollar applicaciones AIR.

Ejemplo de aplicacion e instalador via web de AIR (usando badger).


HERRAMIENTAS


Existen muchas herramientas para la creación de archivos SWF, incluyendo Flash Professional, Flash Builder (antes Flex Builder), Flash Catalyst, y muchas otras. Cada una enfocada a diferentes skills ( desarrollador y diseñador.)

Adobe Flash Builder

Adobe Flash Builder es una herramienta de desarrollo basada en Eclipse dirigido a los desarrolladores. Con este IDE, se utiliza la estructura de Flex para crear archivos SWF. Flash Builder acelera el desarrollo de aplicaciones Flex proporcionando code hinting,generación de codigo, refactoring, comprobación de errores en tiempo de compilación, depuración, y el diseño visual de interfaces de usuario(via MXML).

IntelliJ IDEA

Desarrollar aplicaciones dinámicas de Internet utilizando el framework de Flex dentro de un IDE . Con los editores para ActionScript, MXML, y CSS, así como colores de sintaxis y la comprobación, análisis de código, autocompletado, refactorizaciones,depurar aplicaciones de forma interactiva y generación de código.

 


LENGUAJES Y FRAMEWORKS


Adobe Flex
Adobe Flex es un open source framework , compuesto por una biblioteca de clases de ActionScript (ActionScript es el lenguaje de scripting para el Flash Player) para ayudar a desarrollar más rápida y fácilmente. El framework de Flex incluye clases para más de 100 componentes extensibles, incluidos los controles de interfaz de usuario (botones, cuadros de lista, scrolls, steppers, tablas de datos, gráficos, y más), contenedores (VGroup, HGroup, Panel, Forms y de asi poder construir aplicaciones de interfaces adaptables ), managers (para styles, drag and drop, focus, popups, cursors, browser history y deep links,etc), las llamadas a procedimientos remotos (petición HTTP, servicios web, y los objetos a distancia -remote objects-), formateadores, validadores.

TIP: Una herramienta util para explorar la estructura de Flex y ver los distintos componentes en acción Tour de Flex (aplicacion creada con Flex y Adobe AIR.)

ActionScript
Es posible crear aplicaciones Flex (archivos SWF construidos con Flex), en dos idiomas: ActionScript y MXML. ActionScript es un lenguaje de scripting basado en paradigma orientado a objetos basado en el estándar ECMAScript. La última versión, ActionScript 3, se basa en ECMA-262 4 ª edición que se propuso pero que nunca fue aprobado y publicado. La sintaxis y características orientadas a objetos son muy similares a Java, a definir y extender las clases, definir e implementar interfaces, y el uso de private, públic, protected, e internal (paquete) .

MXML
MXML es un lenguaje declarativo, proporciona una forma alternativa de generar ActionScript mediante una sintaxis XML basado en etiquetas. Al compilar una aplicación, el MXML es analizado y convertido a ActionScript en la memoria y luego el código ActionScript se compila en bytecode, el SWF(como Java y su .class). Aunque podriamo no usar MXML, normalmente es utilizado para definir interfaces de aplicaciones (layouts, el código MXML es normalmente más simple y comprensible que el código ActionScript correspondiente) y ActionScript se utiliza para escribir la lógica de aplicación. Del mismo modo que separamos la lógica en distintas clases de ActionScript, también podemos separar el código MXML en distintas componentes reutilizables.


FRAMEWORKS DE MENSAJERÍA POR TERCEROS


Granit DS es una alternativa libre, de código abierto para LiveCycle Data Services, proporcionando un framework para Flex / EJB 3/Seam/Spring/Guice/POJO con beneficios completos de AMF3/RemoteObject.

Midnight Coders ofrece WebORB para Java para la conectar Flex (clientes Flash, AJAX y Silverlight ) con los objetos de Java, Spring Beans, EJB (v1 o v3) o servicios Web XML, los recursos del sistema operativo nativo y streaming multimedia (de audio y vídeo).

Red5 server (actualmente en version 0.7) es otra implementacion open source de Real-Time Messaging Protocol (RTMP), Remoting ( AMF0/ AMF3).

Farata Systems ofrece open source Clear Toolkit 3+ que utiliza las librerias AMF incluidas en BlazeDS, se encuentra aun en desarrollo y se espera se libere a finales del 2010.

Por el momento es todo les dejo el tema a ser tratado en el siguiente post


SERVIDORES Y TECNOLOGIAS SERVER-SIDE


@dannyGeek, Adobe Certified Instructor , Flex & AIR ,@ivanhoe Adobe Certified Expert, Flex & AIR

Gracias a @rugi y @alexmenar por los tips.

ref source Jeanette Stallons