Aumentar Disminuir

Autor: Harold Flores Tecnicos, PHP, Mysql, Linux, Mac, Flex.
Introdución Aplicaciones PHP con Flex
Introdución Aplicaciones PHP con Flex
[ Agrandar ]
En el año 2002,  Macromedia lanzó el termino RIA (Rich Internet Applications), para describir un nuevo tipo de aplicaciones que combinan los beneficios de una aplicación Web y las ventajas de una aplicación de escritorio, en ese momento la tecnología existente para lograr esto era Flash Player, con su lenguaje de programación Action Script, y con la herramienta authoring, la cual esta dirigida básicamente para diseñadores, y no para programadores, por lo cuál el desarrollo de este tipo de aplicaciones es poco popular, y no fue el boom que se esperaba.

Arquitectura Web Tradicional

Si recordamos la arquitectura tradicional de una aplicación Web, se basa en request – response, sin importar que utilicemos php,asp,jsp, recordemos que el navegador realiza un request al servidor y este envía un respond de vuelta a la página, y este ciclo se repite. En este tipo de plataforma HTML y CSS se convirtieron en los aliados para presentar los datos al usuario.

Pero con el pasar de los años  y el nacimiento de DHTML y AJAX (Asynchronous JavaScript and XML), se le da una nueva vida a las aplicaciones Web, que empezaron a imitar mucho del comportamiento que las aplicaciones de escritorio podían realizar, ya el usuario podía interactuar con la página cargada sin necesidad de refrescar la página completa, como hasta el momento era necesario, y esto sin dejar de lado la principal ventaja de una aplicación Web “disponible donde se tenga un navegador y conexión a internet”.

Sin embargo a pesar de estas nuevas tecnologías las aplicaciones Web seguían resultando desde la perspectiva de usabilidad , menos amigables a las aplicaciones de escritorio, además que para lograr este tipo de comportamiento se necesitabas tener conocimiento en muchas tecnologías al mismo tiempo (Java Script, DMTHL, AJAX,etc) y la experiencia para implementar en distintos navegadores (Firefox,Internet Explorer,Safari,etc) HTML + CSS + JS.

Qué es Flex?

Es una forma de crear aplicaciones Flash, las aplicaciones Flex se compilan en archivos SWF que son ejecutados por el flash player, una de las ventajas es que el Framework es de código abierto, en este momento se encuentra en la versión 4, la cual tiene una gran cantidad de componentes que hacen mas fácil el realizar aplicaciones RIA, y además al ser de código libre, podemos crear nuestros propios componentes o modificar los existentes.

En Flex existen dos lenguajes el MXML, es el utilizado para definir la interface de usuario, apariencia y comportamientos y el ya conocido Action Script, que es un lenguaje orientado a objetos, utilizado para crear la lógica del lado del cliente.

Una de las grandes ventajas de Flex, es que lo podemos conectar con nuestras aplicaciones, en este caso en particular con nuestras clases PHP, de diferentes maneras, permitiendo dejar la lógica de negocio y la conexión a la base de datos, separada de la interface, pero interactuando de una forma sencilla y rápida, y en un modelo RIA, en la siguiente sección nos enfocaremos en esto.

Arquitectura Flex PHP

A diferencia de la arquitectura tradicional que mencionamos anteriormente, la arquitectura Flex PHP,  funciona como lo podemos observar en la figura 1, y que lo resumimos a continuación:

  1. Desde el navegador el cliente, solicita al servidor Web, la app Flex.
  2. El servidor retorna al navegador la respuesta, que puede ser HTML,JS,SWF –Flex App.
  3. Una vez cargada la aplicación Flex en el navegador, el cliente hace solicitud de servicios PHP, que se encuentran del lado del servidor, esto sin necesidad de recargar la página.
  4. PHP retorna los datos directamente a cliente Flex.
  5. Se repite la iteración entre Flex y PHP, sin necesidad de recargar la pagina en el navegador n veces.

Figura1. Arquitectura Flex PHP


Como conectar clientes Flex a servicios PHP?

En una aplicación Flex, manejamos un concepto de capas, donde la capa de lógica del negocio, y acceso a base de datos se encuentra del lado del servidor y es manejada por la aplicación PHP, Flex ofrece el mecanismo para llamar a las páginas del servidor, y obtener la respuesta, y para esto existen dos formas: sobre http o utilizando sockets.

Sobre http, hay cuatro formas distintas de conectarse al servidor, REST Services, Web Services, Remoting, XML-RPC.

Se puede utilizar el HTTPService class, para utilizar REST Services,  mandando las variables POST en la solicitud y recibiendo la respuesta en XML.

WebService Class, la podemos utilizar en el caso que tengamos un Web Services en el servidor (SOAP/WSDL).

Y la forma mas interesante y a la que le vamos a dedicar un poco más de tiempo, es al acceso Remoting. Para esta utilizamos la class RemoteObject, podemos citar tres razones de porque es más útil este método:

  1. Podemos accesar cualquier clase PHP que tengamos en el servidor, por medio de sus métodos públicos.
  2. Se puede mapear el modelo de datos de PHP, a el modelo de datos en Action Script, que es muy importante porque tenemos el beneficio de chequeo de error en tiempo de compilación y ayuda para completar código, en el lado de Flex.
  3. El formato de mensajes para este método es AMF3 (Action Message Format), que es binario que lo hace mas rápido y pequeño comparado con SOAP/XML/JSON.
La figura dos muestra el flujo de datos entre Flex y PHP por medio de AMF#.


Figura 2. Remoting AMF3

Referencias

http://www.adobe.com/devnet/flex.html
http://www.adobe.com/devnet/flex/articles/flex_php_architecture.html
http://www.adobe.com/cfusion/entitlement/index.cfm?e=flex4sdk





[ Regresar ]