SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
00000000   00   03   00   00   00   05   00   04   6e   75   6c   6c   00   02   2f   35   rWSPeticionCodig
00000010   00   00   01   63   0a   00   00   00   01   11   0a   81   13   4f   66   6c   rWSPeticionCodig
00000020   65   78   2e   6d   65   73   73   61   67   69   6e   67   2e   6d   65   73   ex.messaging.mes
00000030   73   61   67   65   73   2e   52   65   6d   6f   74   69   6e   67   4d   65   sages.RemotingMe
00000040   73   73   61   67   65   0d   73   6f   75   72   63   65   13   6f   70   65   ssage source ope
00000050   72   61   74   69   6f   6e   09   62   6f   64   79   13   6d   65   73   73   ration body mess
00000060   61   67   65   49   64   15   74   69   6d   65   54   6f   4c   69   76   65   ageId timeToLive
00000070   13   74   69   6d   65   73   74   61   6d   70   17   64   65   73   74   69     timestamp desti




                                        Integrando
00000080   6e   61   74   69   6f   6e   0f   68   65   61   64   65   72   73   11   63   nation headers c
00000090   6c   69   65   6e   74   49   64   01   06   41   6c   69   73   74   61   72   lientId Alistar
000000a0   57   53   50   65   74   69   63   69   6f   6e   43   6f   64   69   67   6f   WSPeticionCodigo
000000b0   41   63   63   65   73   6f   42   6f   64   61   09   05   01   04   01   04   AccesoBoda
000000c0   01   06   49   35   43   32   41   39   41   36   46   2d   45   30   32   36      I5C2A9A6F-E026
000000d0   2d   30   33   37   31   2d   46   43   32   42   2d   31   43   32   41   38   -0371-FC2B-1C2A8
000000e0   33   34   30   44   33   46   34   04   00   04   00   06   1f   62   6f   64   340D3F4       bod




                                    PHP y ActionScript
000000f0   61   44   65   73   74   69   6e   61   74   69   6f   6e   0a   0b   01   21   aDestination    !
00000100   44   53   52   65   71   75   65   73   74   54   69   6d   65   6f   75   74   DSRequestTimeout
00000110   04   78   15   44   53   45   6e   64   70   6f   69   6e   74   06   0d   6d     x DSEndpoint m
00000120   79   2d   61   6d   66   09   44   53   49   64   06   49   32   38   43   31   y-amf DSId I28C1
00000130   44   39   32   31   2d   41   45   31   42   2d   35   31   38   41   2d   30   D921-AE1B-518A-0
00000140   46   33   36   2d   45   38   35   41   36   46   43   32   45   43   44   35   F36-E85A6FC2ECD5
00000150   01   06   49   32   38   43   31   45   35   39   31   2d   34   36   32   39      I28C1E591-4629




                                     a través de AMF
00000160   2d   35   36   36   32   2d   46   39   33   31   2d   46   31   44   34   32   -5662-F931-F1D42
00000170   44   31   34   41   34   31   36   00   04   6e   75   6c   6c   00   02   2f   D14A416 null /
00000180   36   00   00   01   63   0a   00   00   00   01   11   0a   81   13   4f   66   6    c         Of
00000190   6c   65   78   2e   6d   65   73   73   61   67   69   6e   67   2e   6d   65   lex.messaging.me
000001a0   73   73   61   67   65   73   2e   52   65   6d   6f   74   69   6e   67   4d   ssages.RemotingM
000001b0   65   73   73   61   67   65   0d   73   6f   75   72   63   65   13   6f   70   essage source op
000001c0   65   72   61   74   69   6f   6e   09   62   6f   64   79   13   6d   65   73   eration body mes
000001d0   73   61   67   65   49   64   15   74   69   6d   65   54   6f   4c   69   76   sageId timeToLiv


                                                                       Presentador: Joan Llenas
000001e0   65   13   74   69   6d   65   73   74   61   6d   70   17   64   65   73   74   e timestamp dest
000001f0   69   6e   61   74   69   6f   6e   0f   68   65   61   64   65   72   73   11   ination headers
00000200   63   6c   69   65   6e   74   49   64   01   06   41   6c   69   73   74   61   clientId Alista
00000210
00000220
           72
           6f
                57
                41
                     53
                     63
                          50
                          63
                               65
                               65
                                    74
                                    73
                                         69
                                         6f
                                              63
                                              42
                                                   69
                                                   6f
                                                        6f
                                                        64
                                                             6e
                                                             61
                                                                  43
                                                                  09
                                                                       6f
                                                                       05
                                                                            64
                                                                            01
                                                                                 69
                                                                                 04   blog joangarnet.com
                                                                                      67
                                                                                      01
                                                                                           rWSPeticionCodig
                                                                                           oAccesoBoda

                                                                                      twitter: @joangarnet
00000230   04   02   06   49   32   30   37   30   32   37   33   45   2d   37   39   38       I2070273E-798
00000240   42   2d   35   46   31   37   2d   39   39   31   46   2d   31   43   32   41   B-5F17-991F-1C2A
00000250   38   33   34   31   45   30   42   43   04   00   04   00   06   1f   62   6f   8341E0BC       bo
00000260   64   61   44   65   73   74   69   6e   61   74   69   6f   6e   0a   0b   01   daDestination
00000270   21   44   53   52   65   71   75   65   73   74   54   69   6d   ...:: PHP Barcelona conference 2009 ::...
                                                                            65   6f   75   !DSRequestTimeou
00000280   74   04   78   15   44   53   45   6e   64   70   6f   69   6e   74   06   0d   t x DSEndpoint
00000290   6d   79   2d   61   6d   66   09   44   53   49   64   06   49   32   38   43   my-amf DSId I28C
000002a0   31   44   39   32   31   2d   41   45   31   42   2d   35   31   38   41   2d   1D921-AE1B-518A-
000002b0   30   46   33   36   2d   45   38   35   41   36   46   43   32   45   43   44   0F36-E85A6FC2ECD
000001c0   65   72   61   74   69   6f   6e   09   62   6f   64   79   13   6d   65   73   eration body mes
00000100   44   53   52   65   71                       54   69   6d   65   6f   75   74   DSRequestTimeout




domingo 1/11(noviembre)/2009                                                                                            1
Indice
                   1.       Presentación
                   2.       Objetivos de esta charla
                   3.       ¿Qué es AMF?
                   4.       ¿Por qué AMF?
                        1.     Beneficios
                        2.     Implementaciones disponibles
                        3.     Benchmarks

                   5.       Protocolo binario AMF
                        1.     AMF a vista de pájaro
                        2.     ¿Cómo se maneja en el lado cliente?
                        3.     ¿Cómo se implementa en el lado servidor?

                   6.       AMF para PHP
                        •      Distintas implementaciones de AMF existentes para PHP
                        •      Diferencias entre las las principales implementaciones de AMF para PHP
                        •      Caso de uso Flex + AMF con las principales implementaciones de AMF para PHP

                   7.       Futuro
                   8.       Q&A
                   9.       Cierre




domingo 1/11(noviembre)/2009                                                                                 2
1. Presentación

                   •     Joan Llenas Maso a.k.a Joan Garnet
                   •     10 años desarrollo web: ActionScript, DHTML, PHP, Java, etc...
                   •     Socio fundador de Codeoscopic S.A.
                   •     Miembro de la comunidad de desarrollo web
                        • joangarnet.com ( blog personal )
                        • subflash.com ( comunidad desarrollo web y org. eventos )
                        • madeinflex.com ( co-manager Flex AUG España )
                        • ponente en algunos eventos...




domingo 1/11(noviembre)/2009                                                              3
2. Objetivos de esta charla


                   •      Ver un caso de uso ActionScript + PHP
                   •      Entender AMF y su potencial como protocolo de transporte
                   •      Conocer el espectro de soporte en distintos lenguajes
                   •      Conocer las implementaciones de AMF para PHP
                   •      Comparar características de las principales implementaciones para PHP
                   •      Saber qué nos depara el futuro en relación a ActionScript + PHP




domingo 1/11(noviembre)/2009                                                                      4
3. ¿Qué es AMF?
                 •         AMF Action Message Format es un protocolo binario inspirado en SOAP
                 •         Especificación abierta ( LGPL v3 )
                 •         Representa objetos ActionScript serializados de forma compacta
                 •         Es utilizado nativamente en distintas APIs del Flash Player para
                           almacenaje e intercambio de datos:
                       •       ByteArray
                       •       Socket                                                                                              Application Server
                       •       LocalConnection
                       •       NetConnection / NetStream                                                                           Remoting Gateway
                       •       URLLoader / URLStream                                                               HTTP response
                       •       SharedObject                                                                                        AMF over HTTP
                                                                                                                                                        HTTP request
                 •         Se transmite a través de HTTP/S, RTMP/S y RTMFP/S                                                       Networking APIs

                 •         Versiones:                                                                                                 Flash Player
                       •       AMF0 >> Año 2002 >> Soportado en Flash Player > 6 && < 9 (AS1 y AS2)
                       •       AMF3 >> Año 2007 >> superconjunto de AMF0 >> Soportado en Flash Player >= 9 (AS3)




domingo 1/11(noviembre)/2009                                                                                                                                      5
4. ¿Por qué AMF?



domingo 1/11(noviembre)/2009                      6
4.1. Beneficios
                   •        Tamaño del archivo:
                        •          Los objetos AMF, al ser simples representaciones binarias, son muy ligeros. Además se comprimen con zlib



                   •        Serialización/Deserialización:
                        •          El proceso de conversión de AMF a objetos ActionScript y viceversa se realiza mediante APIs nativas del Flash Player
                                   implementadas en el lenguaje C con lo cual es extremadamente rápido
                        •          El proceso es automático y totalmente transparente para el desarrollador
                        •          El protocolo soporta tanto objetos ActionScript nativos como personalizados:
                               •        Boolean (nativo)
                               •        Rectangulo extends Forma implements IDibujable, IClonable (personalizado)


                   •        Permite transportar vídeo*por ahora solo con RTMP/RTMFP, audio e imágenes
                   •        Bastantes implementaciones del lado servidor disponibles....




domingo 1/11(noviembre)/2009                                                                                                                              7
4.2. Implementaciones disponibles
                   •        ColdFusion                    •       Python
                        •       Implementación nativa         •         PyAMF

                   •        Java                              •         Flashticle

                        •       BlazeDS                   •       Perl
                        •       Red5                          •         AMF::Perl
                        •
                        •
                                Cinnamon
                                Pimento
                                                          •       .NET
                                                              •         AMF.NET
                        •       Granite
                                                              •         FluorineFX
                        •       LiveCycle Data Services
                                                              •         WebORB
                        •       OpenAMF

                   •        PHP                           •       Curl
                                                              •         Curl Data Services
                        •       AMFPHP
                        •       WebORB
                        •       SabreAMF
                        •       Zend_AMF

                   •        Ruby                          •       y en continuo aumento....
                        •       RubyAMF
                        •       WebORB




domingo 1/11(noviembre)/2009                                                                  8
4.3. Benchmarks


        •      Benchmarks ejecutados con Census,
               aplicación desarrollada por James
               Ward (Adobe).

        •      Todos los tests ejecutados con
               compresion GZIP y pidiendo tablas de
               5000 filas excepto el de Dojo que
               pide 500.



        •      Live Demo disponible en:
               http://www.jamesward.com/census/


        •      Código fuente disponible bajo licencia GPL en
               http://flexapps.sourceforge.net/




                                                               Census con todos los tests ejecutados. Todos pidiendo tablas de 5000 filas excepto el de Dojo que pide 500.




domingo 1/11(noviembre)/2009                                                                                                                                                9
5. Protocolo binario AMF




domingo 1/11(noviembre)/2009                     10
5.1. AMF a vista de pájaro


                   •     En un paquete AMF se distinguen estas partes:
                        • Preámbulo: Contiene información básica de la naturaleza de la
                            petición.
                        • Cabeceras: Se pueden utilizar para enviar info de debug,
                            autentificación, etc...
                        • Cuerpos: La petición propiamente dicha. Aquí van las operaciones y los
                            objetos serializados, tanto de petición como de respuesta.

                   •     Batching:
                        • Un mismo paquete AMF puede llevar varias peticiones.




domingo 1/11(noviembre)/2009                                                                       11
5.1. AMF a vista de pájaro
                   •      Petición




domingo 1/11(noviembre)/2009                                      12
5.1. AMF a vista de pájaro
                   •      Respuesta




domingo 1/11(noviembre)/2009                                   13
5.2. ¿Cómo se maneja en el lado cliente?

                   •     ActionScript
                        • NetConnection ( RPC )
                        • SharedObject
                        • LocalConnection
                        • ByteArray

                   •     Flex
                        • RemoteObject ( RPC )

                   •      Estas clases trabajan con datos AMF de forma nativa. La serialización/
                          deserialización es totalmente transparente.
                   •      Todas las clases pueden tener una representación AMF exceptuando
                          flash.display.DisplayObject.




domingo 1/11(noviembre)/2009                                                                       14
5.3. ¿Cómo se implementa en el lado servidor?


                   •      El Flash Player utiliza AMF para comunicarse con un servior remoto.
                   •      AMF codifica llamadas RPC (Remote Procedure Calls) en una representación
                          binaria compacta.
                   •      Las llamadas son transferidas a través de HTTP/S.
                   •      El servidor dispone de una gateway que dirige las llamadas de forma
                          centralizada.
                   •      El gateway es el punto de unión entre el server y el Flash Player y es dónde
                          la serialización/deserialización tiene lugar.
                   •      Durante el proceso de serialización/deserialización los objetos mantienen su
                          tipo.
                   •      En el caso de tipos nativos no soportados existen tablas de conversión.
                   •      Si se requiere implementar un tipo nuevo existe la posibilidad de desarrollar
                          un adaptadores personalizados.




domingo 1/11(noviembre)/2009                                                                              15
6. AMF para PHP
                        •      Distintas implementaciones de AMF existentes para PHP
                        •      Diferencias entre las las principales implementaciones de AMF para PHP
                        •      Caso de uso Flex + AMF con las principales implementaciones de AMF para PHP




domingo 1/11(noviembre)/2009                                                                                 16
7. Futuro

                   •      Mensajería ( AMF streaming, long polling.... )
                   •      RTMP / RTMFP ( Vídeo, Audio.... )
                   •      Más implementaciones de clases nativas ( ByteArray... )
                   •      Mejorar las implementaciones existentes ( PHP5 packages.... )




domingo 1/11(noviembre)/2009                                                              17
QA



                               ?
domingo 1/11(noviembre)/2009        18
Cierre
                   •      Made In Flex (comunidad Flex España)

                        •      http://www.madeinflex.com

                   •      Adobe’s Flex Developer Center: Learn Flex and PHP

                        •      http://www.adobe.com/devnet/flex/flex_php.html

                   •      Adobe TV

                        •      http://tv.adobe.com/search/?q=php&product=Flex

                   •      Adobe Cookbook Flex & PHP recipes

                        •      http://cookbooks.adobe.com/search/PHP




domingo 1/11(noviembre)/2009                                                    19

Mais conteúdo relacionado

Último

Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfodalistar77
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfJoseAlejandroPerezBa
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...RaymondCode
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.marianarodriguezc797
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfOBr.global
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...OLGAMILENAMONTAEZNIO
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSLincangoKevin
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfalejandrogomezescoto
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx Emialexsolar
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETGermán Küber
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfymiranda2
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2montoyagabriela340
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....Aaron Betancourt
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxPaolaCarolinaCarvaja
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfangelinebocanegra1
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosLCristinaForchue
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfcastrodanna185
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidaddanik1023m
 

Último (20)

Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdf
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
 
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier FolchBEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx E
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
 
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura SilvaBEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docx
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdf
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdf
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidad
 

Destaque

How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationErica Santiago
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellSaba Software
 
Introduction to C Programming Language
Introduction to C Programming LanguageIntroduction to C Programming Language
Introduction to C Programming LanguageSimplilearn
 

Destaque (20)

How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
 
Introduction to C Programming Language
Introduction to C Programming LanguageIntroduction to C Programming Language
Introduction to C Programming Language
 

Integrando PHP y ActionScript a través de AMF

  • 1. 00000000 00 03 00 00 00 05 00 04 6e 75 6c 6c 00 02 2f 35 rWSPeticionCodig 00000010 00 00 01 63 0a 00 00 00 01 11 0a 81 13 4f 66 6c rWSPeticionCodig 00000020 65 78 2e 6d 65 73 73 61 67 69 6e 67 2e 6d 65 73 ex.messaging.mes 00000030 73 61 67 65 73 2e 52 65 6d 6f 74 69 6e 67 4d 65 sages.RemotingMe 00000040 73 73 61 67 65 0d 73 6f 75 72 63 65 13 6f 70 65 ssage source ope 00000050 72 61 74 69 6f 6e 09 62 6f 64 79 13 6d 65 73 73 ration body mess 00000060 61 67 65 49 64 15 74 69 6d 65 54 6f 4c 69 76 65 ageId timeToLive 00000070 13 74 69 6d 65 73 74 61 6d 70 17 64 65 73 74 69 timestamp desti Integrando 00000080 6e 61 74 69 6f 6e 0f 68 65 61 64 65 72 73 11 63 nation headers c 00000090 6c 69 65 6e 74 49 64 01 06 41 6c 69 73 74 61 72 lientId Alistar 000000a0 57 53 50 65 74 69 63 69 6f 6e 43 6f 64 69 67 6f WSPeticionCodigo 000000b0 41 63 63 65 73 6f 42 6f 64 61 09 05 01 04 01 04 AccesoBoda 000000c0 01 06 49 35 43 32 41 39 41 36 46 2d 45 30 32 36 I5C2A9A6F-E026 000000d0 2d 30 33 37 31 2d 46 43 32 42 2d 31 43 32 41 38 -0371-FC2B-1C2A8 000000e0 33 34 30 44 33 46 34 04 00 04 00 06 1f 62 6f 64 340D3F4 bod PHP y ActionScript 000000f0 61 44 65 73 74 69 6e 61 74 69 6f 6e 0a 0b 01 21 aDestination ! 00000100 44 53 52 65 71 75 65 73 74 54 69 6d 65 6f 75 74 DSRequestTimeout 00000110 04 78 15 44 53 45 6e 64 70 6f 69 6e 74 06 0d 6d x DSEndpoint m 00000120 79 2d 61 6d 66 09 44 53 49 64 06 49 32 38 43 31 y-amf DSId I28C1 00000130 44 39 32 31 2d 41 45 31 42 2d 35 31 38 41 2d 30 D921-AE1B-518A-0 00000140 46 33 36 2d 45 38 35 41 36 46 43 32 45 43 44 35 F36-E85A6FC2ECD5 00000150 01 06 49 32 38 43 31 45 35 39 31 2d 34 36 32 39 I28C1E591-4629 a través de AMF 00000160 2d 35 36 36 32 2d 46 39 33 31 2d 46 31 44 34 32 -5662-F931-F1D42 00000170 44 31 34 41 34 31 36 00 04 6e 75 6c 6c 00 02 2f D14A416 null / 00000180 36 00 00 01 63 0a 00 00 00 01 11 0a 81 13 4f 66 6 c Of 00000190 6c 65 78 2e 6d 65 73 73 61 67 69 6e 67 2e 6d 65 lex.messaging.me 000001a0 73 73 61 67 65 73 2e 52 65 6d 6f 74 69 6e 67 4d ssages.RemotingM 000001b0 65 73 73 61 67 65 0d 73 6f 75 72 63 65 13 6f 70 essage source op 000001c0 65 72 61 74 69 6f 6e 09 62 6f 64 79 13 6d 65 73 eration body mes 000001d0 73 61 67 65 49 64 15 74 69 6d 65 54 6f 4c 69 76 sageId timeToLiv Presentador: Joan Llenas 000001e0 65 13 74 69 6d 65 73 74 61 6d 70 17 64 65 73 74 e timestamp dest 000001f0 69 6e 61 74 69 6f 6e 0f 68 65 61 64 65 72 73 11 ination headers 00000200 63 6c 69 65 6e 74 49 64 01 06 41 6c 69 73 74 61 clientId Alista 00000210 00000220 72 6f 57 41 53 63 50 63 65 65 74 73 69 6f 63 42 69 6f 6f 64 6e 61 43 09 6f 05 64 01 69 04 blog joangarnet.com 67 01 rWSPeticionCodig oAccesoBoda twitter: @joangarnet 00000230 04 02 06 49 32 30 37 30 32 37 33 45 2d 37 39 38 I2070273E-798 00000240 42 2d 35 46 31 37 2d 39 39 31 46 2d 31 43 32 41 B-5F17-991F-1C2A 00000250 38 33 34 31 45 30 42 43 04 00 04 00 06 1f 62 6f 8341E0BC bo 00000260 64 61 44 65 73 74 69 6e 61 74 69 6f 6e 0a 0b 01 daDestination 00000270 21 44 53 52 65 71 75 65 73 74 54 69 6d ...:: PHP Barcelona conference 2009 ::... 65 6f 75 !DSRequestTimeou 00000280 74 04 78 15 44 53 45 6e 64 70 6f 69 6e 74 06 0d t x DSEndpoint 00000290 6d 79 2d 61 6d 66 09 44 53 49 64 06 49 32 38 43 my-amf DSId I28C 000002a0 31 44 39 32 31 2d 41 45 31 42 2d 35 31 38 41 2d 1D921-AE1B-518A- 000002b0 30 46 33 36 2d 45 38 35 41 36 46 43 32 45 43 44 0F36-E85A6FC2ECD 000001c0 65 72 61 74 69 6f 6e 09 62 6f 64 79 13 6d 65 73 eration body mes 00000100 44 53 52 65 71 54 69 6d 65 6f 75 74 DSRequestTimeout domingo 1/11(noviembre)/2009 1
  • 2. Indice 1. Presentación 2. Objetivos de esta charla 3. ¿Qué es AMF? 4. ¿Por qué AMF? 1. Beneficios 2. Implementaciones disponibles 3. Benchmarks 5. Protocolo binario AMF 1. AMF a vista de pájaro 2. ¿Cómo se maneja en el lado cliente? 3. ¿Cómo se implementa en el lado servidor? 6. AMF para PHP • Distintas implementaciones de AMF existentes para PHP • Diferencias entre las las principales implementaciones de AMF para PHP • Caso de uso Flex + AMF con las principales implementaciones de AMF para PHP 7. Futuro 8. Q&A 9. Cierre domingo 1/11(noviembre)/2009 2
  • 3. 1. Presentación • Joan Llenas Maso a.k.a Joan Garnet • 10 años desarrollo web: ActionScript, DHTML, PHP, Java, etc... • Socio fundador de Codeoscopic S.A. • Miembro de la comunidad de desarrollo web • joangarnet.com ( blog personal ) • subflash.com ( comunidad desarrollo web y org. eventos ) • madeinflex.com ( co-manager Flex AUG España ) • ponente en algunos eventos... domingo 1/11(noviembre)/2009 3
  • 4. 2. Objetivos de esta charla • Ver un caso de uso ActionScript + PHP • Entender AMF y su potencial como protocolo de transporte • Conocer el espectro de soporte en distintos lenguajes • Conocer las implementaciones de AMF para PHP • Comparar características de las principales implementaciones para PHP • Saber qué nos depara el futuro en relación a ActionScript + PHP domingo 1/11(noviembre)/2009 4
  • 5. 3. ¿Qué es AMF? • AMF Action Message Format es un protocolo binario inspirado en SOAP • Especificación abierta ( LGPL v3 ) • Representa objetos ActionScript serializados de forma compacta • Es utilizado nativamente en distintas APIs del Flash Player para almacenaje e intercambio de datos: • ByteArray • Socket Application Server • LocalConnection • NetConnection / NetStream Remoting Gateway • URLLoader / URLStream HTTP response • SharedObject AMF over HTTP HTTP request • Se transmite a través de HTTP/S, RTMP/S y RTMFP/S Networking APIs • Versiones: Flash Player • AMF0 >> Año 2002 >> Soportado en Flash Player > 6 && < 9 (AS1 y AS2) • AMF3 >> Año 2007 >> superconjunto de AMF0 >> Soportado en Flash Player >= 9 (AS3) domingo 1/11(noviembre)/2009 5
  • 6. 4. ¿Por qué AMF? domingo 1/11(noviembre)/2009 6
  • 7. 4.1. Beneficios • Tamaño del archivo: • Los objetos AMF, al ser simples representaciones binarias, son muy ligeros. Además se comprimen con zlib • Serialización/Deserialización: • El proceso de conversión de AMF a objetos ActionScript y viceversa se realiza mediante APIs nativas del Flash Player implementadas en el lenguaje C con lo cual es extremadamente rápido • El proceso es automático y totalmente transparente para el desarrollador • El protocolo soporta tanto objetos ActionScript nativos como personalizados: • Boolean (nativo) • Rectangulo extends Forma implements IDibujable, IClonable (personalizado) • Permite transportar vídeo*por ahora solo con RTMP/RTMFP, audio e imágenes • Bastantes implementaciones del lado servidor disponibles.... domingo 1/11(noviembre)/2009 7
  • 8. 4.2. Implementaciones disponibles • ColdFusion • Python • Implementación nativa • PyAMF • Java • Flashticle • BlazeDS • Perl • Red5 • AMF::Perl • • Cinnamon Pimento • .NET • AMF.NET • Granite • FluorineFX • LiveCycle Data Services • WebORB • OpenAMF • PHP • Curl • Curl Data Services • AMFPHP • WebORB • SabreAMF • Zend_AMF • Ruby • y en continuo aumento.... • RubyAMF • WebORB domingo 1/11(noviembre)/2009 8
  • 9. 4.3. Benchmarks • Benchmarks ejecutados con Census, aplicación desarrollada por James Ward (Adobe). • Todos los tests ejecutados con compresion GZIP y pidiendo tablas de 5000 filas excepto el de Dojo que pide 500. • Live Demo disponible en: http://www.jamesward.com/census/ • Código fuente disponible bajo licencia GPL en http://flexapps.sourceforge.net/ Census con todos los tests ejecutados. Todos pidiendo tablas de 5000 filas excepto el de Dojo que pide 500. domingo 1/11(noviembre)/2009 9
  • 10. 5. Protocolo binario AMF domingo 1/11(noviembre)/2009 10
  • 11. 5.1. AMF a vista de pájaro • En un paquete AMF se distinguen estas partes: • Preámbulo: Contiene información básica de la naturaleza de la petición. • Cabeceras: Se pueden utilizar para enviar info de debug, autentificación, etc... • Cuerpos: La petición propiamente dicha. Aquí van las operaciones y los objetos serializados, tanto de petición como de respuesta. • Batching: • Un mismo paquete AMF puede llevar varias peticiones. domingo 1/11(noviembre)/2009 11
  • 12. 5.1. AMF a vista de pájaro • Petición domingo 1/11(noviembre)/2009 12
  • 13. 5.1. AMF a vista de pájaro • Respuesta domingo 1/11(noviembre)/2009 13
  • 14. 5.2. ¿Cómo se maneja en el lado cliente? • ActionScript • NetConnection ( RPC ) • SharedObject • LocalConnection • ByteArray • Flex • RemoteObject ( RPC ) • Estas clases trabajan con datos AMF de forma nativa. La serialización/ deserialización es totalmente transparente. • Todas las clases pueden tener una representación AMF exceptuando flash.display.DisplayObject. domingo 1/11(noviembre)/2009 14
  • 15. 5.3. ¿Cómo se implementa en el lado servidor? • El Flash Player utiliza AMF para comunicarse con un servior remoto. • AMF codifica llamadas RPC (Remote Procedure Calls) en una representación binaria compacta. • Las llamadas son transferidas a través de HTTP/S. • El servidor dispone de una gateway que dirige las llamadas de forma centralizada. • El gateway es el punto de unión entre el server y el Flash Player y es dónde la serialización/deserialización tiene lugar. • Durante el proceso de serialización/deserialización los objetos mantienen su tipo. • En el caso de tipos nativos no soportados existen tablas de conversión. • Si se requiere implementar un tipo nuevo existe la posibilidad de desarrollar un adaptadores personalizados. domingo 1/11(noviembre)/2009 15
  • 16. 6. AMF para PHP • Distintas implementaciones de AMF existentes para PHP • Diferencias entre las las principales implementaciones de AMF para PHP • Caso de uso Flex + AMF con las principales implementaciones de AMF para PHP domingo 1/11(noviembre)/2009 16
  • 17. 7. Futuro • Mensajería ( AMF streaming, long polling.... ) • RTMP / RTMFP ( Vídeo, Audio.... ) • Más implementaciones de clases nativas ( ByteArray... ) • Mejorar las implementaciones existentes ( PHP5 packages.... ) domingo 1/11(noviembre)/2009 17
  • 18. QA ? domingo 1/11(noviembre)/2009 18
  • 19. Cierre • Made In Flex (comunidad Flex España) • http://www.madeinflex.com • Adobe’s Flex Developer Center: Learn Flex and PHP • http://www.adobe.com/devnet/flex/flex_php.html • Adobe TV • http://tv.adobe.com/search/?q=php&product=Flex • Adobe Cookbook Flex & PHP recipes • http://cookbooks.adobe.com/search/PHP domingo 1/11(noviembre)/2009 19