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

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

En el post anterior se nombraron diferentes tecnologias,herramientas,frameworks y conceptos basicos para comenzar a desarrollar aplicaciones con Flex y Java. En esta 2da entrega nos centraremos en el server-side.


SERVIDORES Y TECNOLOGIAS SERVER-SIDE


Podemos elegir entre diferentes implementaciones de Flash Remoting para servidores Java. BlazeDS es una versión libre de código abierto creada por Adobe que ofrece Java remoting de lado del server, así como mensajería para enviar datos en tiempo real(push) a las aplicaciones Flex. El servicio de mensajería permite que las aplicaciones Flex puedan intercambiar mensajes con otras no-Flex apps(aplicaciones con soporte JMS).

Es posible utilizar una combinación de interacción remota y servicios de mensajería para crear aplicaciones centradas en servicios de datos en tiempo real. Cuando un usuario modifica algún dato en este tipo de aplicaciones, esta informacion se guardan en la base de datos del servidor, y luego es enviada a todos los demás clientes permitiendo que los usuarios siempre visualizen los datos actualizados. Para crear este tipo de sincronización de datos, se debe escribir un poco de código para guardar los datos en el servidor, enviar los datos a los clientes, y gestionar cualquier conflicto de datos. Como una alternativa se puede usar LiveCycle Data Services, cabe mencionar que ya proporciona este código (véase la sección de Adobe LiveCycle Data Services).

 

Integración Spring BlazeDS
SpringSource y Adobe se han unido para crear una versión especial de BlazeDS, Spring BlazeDS, cuyo objetivo es agilizar la integración entre Spring y BlazeDS. En lugar de tenerlos como dos sistemas con archivos de configuración diferente, la integración permite a Spring gestionar a BlazeDS tal y como gestiona a otros componentes en una aplicación. Si deseas utilizar Spring BlazDS es posible hacerlo mediante Spring BlazeDS Integration Test Drive que contiene una versión compacta de Tomcat con Spring BlazeDS preconfigurado y con ejemplos listos para usarse.

 

Adobe LiveCycle Data Services
Adobe LiveCycle Data Services es la version BlazeDS con esteroides y proporciona una infraestructura completa para las aplicaciones empresariales Flex. Además de proporcionar la interacción remota y servicios de mensajería disponible en BlazeDS,ofrece también un servicio de gestión de datos(data management service) que ayuda a reducir el tiempo en desarrollo y mantenimiento de aplicaciones centradas en datos para tiempo real.

El servicio de gestión de datos automatiza la sincronización de datos entre una aplicación de Flex y la middle tier, proporcionando:

  • Sincronización de datos
  • Resolución de conflictos
  • Paginación
  • Lazy loading
  • Gestión de grandes colecciones de datos y relaciones de datos anidadas (como asociaciones uno-a-uno y muchos-a -uno )
  • Integración con Hibernate
  • Acceso a datos offline para aplicaciones AIR
  • y mucho más.

Es posible agregar muchas de estas características de gestión de servicios avanzados de datos a las aplicaciones sin necesidad de escribir código de servidor utilizando tecnologías de modelado introducido en LiveCycle Data Services ES2.

LiveCycle Data Services ofrecen opciones avanzadas de despliegue para alta escalabilidad, streaming con el protocolo de mensajería en tiempo real (RTMP), generación de PDF, integración de portales, conectividad LiveCycle, el acceso a recursos de soporte empresarial y desarrollado. Para mayor detalle ve la grafica de comparacion de servicios de LiveCycle vs BlazeDS.

Flex llamadas a procedimientos remotos(Remote Procedure Calls)
Las aplicaciones Flex pueden comunicarse con los servidores back-end utilizando tanto, conexiones de socket directa o a través de HTTP. Es posible realizar peticiones HTTP (JSP,archivos XML,RESTful web services, u otro tipo de archivos en el servidor que devuelvan texto via HTTP), solicitudes de servicios web (los Servicios Web SOAP que regresan texto con formato via HTTP), o peticiones Flash Remoting (métodos de clases Java del lado del servidor que devuelven mensajes en forma binaria(AMF) via HTTP). Siempre que sea posible se recomienda utilizar transferencia de datos binarios ya que permite a las aplicaciones cargar datos hasta 10 veces más rápido que con formatos basados en texto, tales como XML, JSON, o SOAP.

Flex – PHP HTTP based communication

Una excelente aplicacion para visualizar y comparar el tiempo de respuesta,ancho de banda de los diferentes formatos es Census, aplicacion creada por James Ward.

Flash Remoting
Flash Remoting es una combinación de funcionalidad cliente/servidor, que proporcionan un modelo de llamada y respuesta para acceder a objetos del lado del servidor en aplicaciones de la plataforma Flash como si estos fueran objetos locales. Ofrece transferencia de datos transparente entre ActionScript y datos tipados del lado del servidor, manejando la serialización en formato binario (AMF), deserialización, cálculo de referencias y data marshaling entre el cliente y el servidor. Flash Remoting utiliza la funcionalidad del Flash Player del lado del cliente y la funcionalidad en el lado del servidor reside en el servidor de aplicaciones.

Flash Remoting está integrado en algunos servidores (por ejemplo, ColdFusion y Zend), pero debe ser instalado en otros servidores (BlazeDS o LCDS en servidores Java EE , WebORB o FluorineFX en servidores .NET, Zend framework o amfphp en los servidores de PHP).

AMF
Formato de mensaje de acción (AMF) es un formato binario usado para serializar objetos de ActionScript y facilitar el intercambio de datos entre aplicaciones de la plataforma Flash y servicios remotos a través de Internet. La última especificación de este protocolo es AMF 3 para ActionScript 3. En la documentación podremos encontrar el mapeo para las conversion entre ActionScript a Java y Java a ActionScript.

Tecnologia de modelado de aplicaciones
La tecnologia de modelado de aplicaciones (nombre código Fiber) es un conjunto de tecnologías que permiten el desarrollo basado en modelos de aplicaciones Flex, el cual simplifica la creacion de aplicaciones centradas en datos.

En el Flash Builder 4,la tecnologia de modelado de aplicacion mapea un servicio del lado del server y se crea el servicio de datos en actionscript.Al crear el servicio Flash Builder genera clases de ActionScript ,asi como el código para las llamadas al servicio remoto y la manipulacion los objetos correspondientes(value objects). Se crean clases de ActionScript y son asignadas a los objetos correspondientes en Java (comunmente corresponden con los registros en las tablas de base de datos). De esta manera es posible manipular los mismos tipos de objetos en el cliente y en el servidor, y asi pasar instancias de forma transparente entre ambos.

Figure 1. Fiber Model

Si se utiliza LiveCycle Data Services, el código generado del lado del cliente utilizara clases especificas de LiveCycle y asi proporcionara características adicionales, comentadas anteriormente.

Modelado de aplicaciones con plugin en Adobe Flash Builder
Si utilizamos LiveCycle Data Services ES2, podemos descargar e instalar el plugin para modelado de aplicaciónes para Flash Builder, que es esencialmente un editor de modelado gráfico con generación automática de código, para el server como del cliente.

Se puede utilizar el Modeler para definir el modelo basado en una base de datos existente y generar e implementar el código del cliente y del servidor,los archivos para la configuración. Si comenzamos de(las tablas de base de datos aun no existen), se puede utilizar el Modeler para definir el modelo y generar las tablas de bases de datos y todo el codigo necesario para la manipulacion de los datos.


Servicios Flash Plataform


En lugar administrar y hostear nuestros propios servicios de datos o de mensajería, se puede utilizar alguno de los servicios de Adobe Flash Platform

El servicio de colaboración, que proporciona funciones de colaboración en tiempo real, que incluye chat, audio y vídeo.

El servicio de distribución para la promoción, seguimiento y monetización de las aplicaciones en las redes sociales, dispositivos móviles y de escritorio.

El servicio para social media(integración con múltiples redes sociales como Facebook, MySpace, Twitter, Yahoo, Google y AOL usando una única API de ActionScript).

 


Resumen


En este post se introduce las tecnologias involucradas para contruir aplicaciones Java y Flex.Para obtener mayor informacion sobre estas tecnologias utiliza los siguientes recursos:

Flex and Java integration center
Adobe LiveCycle Data Services ES2 documentation
BlazeDS documentation
Adobe Flex Developer Center
Adobe AIR Developer Center for Flex


Acerca del Autor


Daniel Ramos es un Adobe Certified Instructor, Flex & AIR independiente, a Java developer y Consultor en Flash Plataform. LiveData Adobe User Group Manager.

Gracias a @ivanhoe por los tips.

source reference Jeanette Stallons