Decidirse entre Zend AMF, AMFPHP, WebORB, …

Para mi, decidir que framework usar para conectar una aplicacion Flex/Flash con un servidor PHP es todo un dilema debido a que mi eleccion influrira mucho en mi calendario de trabajo. Supongo a muchos les  pasara que se familiarizan con un pequeño grupo de lenguajes y/o  frameworks y lo utiliza en todo proyecto que crea conveniente. Asi era yo con AMFPHP, el primer gateway AMF que conoci alla cuando Flash 8 era el ultimo lanzamiento de Macromedia.

En si tenemos tres o cuatro candidatos potenciales y estos son: Zend AMF, AMFPHP y WebORB. A continuacion comento las caracteristicas de cada uno.

AMFPHP es creo, sin lugar a dudas, la mejor alternativa si deseas conectar tu aplicacion Flex o Flash con un servidor PHP (y este a su vez con la BD) y no deseas tener que pasar por una larga curva de aprendizaje. AMFPHP es ligero, incluye una gestion de roles bastante simple, no es necesaria su instalacion, soporta mapeo de clases (VOs) y por ultimo, incluye un navegador de servicios para que puedas probar los mismos rapidamente. Ademas, soporta AMF0 y AMF3 (por si usas AS2 o AS3) de forma transparente. Ademas, viene preparado para comsumir Web services. Entre sus desventajas estaba la falta de soporte. La persona detras del proyecto lo abandono dejandolo en una version beta (y sin la nueva documentacion completa) durante un par de años  pero recientemente su desarrollo acaba de ser retomado y gracias a ello, se acaba de lanzar, por fin, la version 1.9 oficial.

El siguente es Zend AMF, desarrollado por Zend (la empresa detras de PHP) es el mas apoyado de todas las alternativas debido a que tiene la venia de Adobe y, obviamente, es desarrollado por Zend. A pesar de esto, carece de caracteristicas que AMFPHP o WebORB ya ofrecen (como seguridad integrada y un navegador de servicios) obligandote a implementarlas tu mismo o, lo que es mas facil, a vivir sin ellas. Pero su gran ventaja es que al ser una parte de Zend Framework (aunque se puede descargar de manera independiente) se acopla perfectamente a su arsenal de herramientas lo que es muy util, creeme. Hoy acabo de enterarme que el problema de la lenta serializacion de datos que Zend AMF tenia en versiones anteriores acaba de ser solucionada de manera oficial en la version 1.10.4.

El tercero es WebORB. Si tuviera que definirlo en una sola palabra esa seria “Completo”. Tiene tantas caracteristicas que impresiona. Un administrador de servicios decente junto con opciones pensadas para ahorrarle al desarrollador la necesidad de escribir codigo, incluye su propio administrador de acceso a servicios y metodos ademas de un administrador centralizado para el mapeo de clases. Sin lugar a dudas es el que ofrece mas opciones a simple vista. El problema de WebORB es justo eso, ofrece tantas opciones que pueden confundir al novato, darle una sensacion de demasiada complejidad.

Escribo este post porque hace poco he pasado de AMFPHP a Zend AMF. Me costo hacer la mudanza debido a que tenia muchas clases que recibian matrices asociativas como parametros (AMFPHP mapeaba los objetos de Flash en arrays asociativos y Zend AMF lo hace como objetos) y basaba casi toda la implementacion de seguridad en el metodo beforeFilter de cada clase/servicio.

1 respuesta

  1. javier dice:

    Hola Daniel,
    Gracias por el artículo.
    Estoy probando zendamf y me encuentro con un problema de rendimiento que imagino no es normal. La versión de zendamf que estoy usando es la 1.11.3 donde teóricamente está resuelto el problema de serialización que comentas en versiones anteriores a la versión 1.10.4.

    En los test que estoy haciendo uso fb4, zendamf y mysql 5.1. Cosulto una tabla de 11000 registros con 60 campos y los resultados son estos:

    para 1000 filas, 5,875 segundos de transferencia.
    para 5000 filas, 33,857 segundos de transferencia.
    para 10000 filas, 99 segundos de tranferencia.

    Para todas las pruebas el tiempo de renderizado en flex es sobre el medio segundo.

    un saludo.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.