SlideShare a Scribd company logo
1 of 176
integrating D7 + flash
    with amfserver
about

•   Me: Rolf Vreijdenberger

    •   founder / managing partner dpdk

    •   www.dpdk.nl

    •   we’re a dutch online media agency

    •   using a lot of Drupal
    •   rolf@vreijdenberger.nl
introducing the amfserver
what is the amfserver?

  •   a D7 module,working with services 7.x-3.x providing
      an AMF server based on the Zend library
what is the amfserver?

  •   a D7 module,working with services 7.x-3.x providing
      an AMF server based on the Zend library
        •    allows integration with actionscript based clients

  •   optionally integrated with the dpdk actionscript library
      www.dpdk.nl/opensource
drupal.org/project/amfserver
why flash and drupal?

•   not all the web is html(5)
why flash and drupal?

•   not all the web is html(5)

•   deliver and administer content from drupal
why flash and drupal?

•   not all the web is html(5)

•   deliver and administer content from drupal

•   display content in flash client
why flash and drupal?

•   not all the web is html(5)

•   deliver and administer content from drupal

•   display content in flash client

•   flash, flex and air can be used (all actionscript clients)

    •   (full screen) flash/flex sites with drupal backend

    •   flash elements in a html + flash hybrid site

    •   standalone AIR applications
how can you use D7 as a
cms for flash?
•   know how to write your actionscript code
how can you use D7 as a
cms for flash?
•   know how to write your actionscript code

•   know how to use D7 and install modules
how can you use D7 as a
cms for flash?
•   know how to write your actionscript code

•   know how to use D7 and install modules

•   use the right components to integrate the two:
    amfserver + actionscript libraries
how can you use D7 as a
cms for flash?
•   know how to write your actionscript code

•   know how to use D7 and install modules

•   use the right components to integrate the two:
    amfserver + actionscript libraries

•   get the data from Drupal to flash client
how can you use D7 as a
cms for flash?
•   know how to write your actionscript code

•   know how to use D7 and install modules

•   use the right components to integrate the two:
    amfserver + actionscript libraries

•   get the data from Drupal to flash client

•   get the data from flash client to Drupal
can I pick it up easily?
can I pick it up easily?


•   YES!
can I pick it up easily?


•   YES!

    •   D7, services, amfserver, Zend framework, dpdk
        package and a little actionscript code
can I pick it up easily?


•   YES!

    •   D7, services, amfserver, Zend framework, dpdk
        package and a little actionscript code

    •   some configuration and some debugging tools
how do we communicate?

•   D7 services 3.x module: services ROCK!
how do we communicate?

•   D7 services 3.x module: services ROCK!
    •   drupal.org/project/services
how do we communicate?

•   D7 services 3.x module: services ROCK!
    •   drupal.org/project/services

    •   A standardized solution of integrating external
        applications with Drupal core and extensions
how do we communicate?

•   D7 services 3.x module: services ROCK!
    •   drupal.org/project/services

    •   A standardized solution of integrating external
        applications with Drupal core and extensions

    •   services API: allow modules to create services for
        clients
how do we communicate?

•   D7 services 3.x module: services ROCK!
    •   drupal.org/project/services

    •   A standardized solution of integrating external
        applications with Drupal core and extensions

    •   services API: allow modules to create services for
        clients

    •   server API: allow modules to create servers
how do we communicate?

•   D7 services 3.x module: services ROCK!
    •   drupal.org/project/services

    •   A standardized solution of integrating external
        applications with Drupal core and extensions

    •   services API: allow modules to create services for
        clients

    •   server API: allow modules to create servers
          •   REST, XML-RPC, AMF
how do we communicate?

•   create and configure (multiple) endpoints
how do we communicate?

•   create and configure (multiple) endpoints

    •   an url/gateway that exposes resources (“node.retrieve”)
how do we communicate?

•   create and configure (multiple) endpoints

    •   an url/gateway that exposes resources (“node.retrieve”)

    •   an endpoint has a specific server attached
how do we communicate?

•   create and configure (multiple) endpoints

    •   an url/gateway that exposes resources (“node.retrieve”)

    •   an endpoint has a specific server attached

•   set permissions for resources
how do we communicate?

•   create and configure (multiple) endpoints

    •   an url/gateway that exposes resources (“node.retrieve”)

    •   an endpoint has a specific server attached

•   set permissions for resources

•   expose custom or core resources per endpoint
how do we communicate?

•   create and configure (multiple) endpoints

    •   an url/gateway that exposes resources (“node.retrieve”)

    •   an endpoint has a specific server attached

•   set permissions for resources

•   expose custom or core resources per endpoint

    •   core resources are included in services
how do we communicate?

•   create and configure (multiple) endpoints

    •   an url/gateway that exposes resources (“node.retrieve”)

    •   an endpoint has a specific server attached

•   set permissions for resources

•   expose custom or core resources per endpoint

    •   core resources are included in services

    •   custom resources can be made by your modules
how do we communicate?

•   create and configure (multiple) endpoints

    •   an url/gateway that exposes resources (“node.retrieve”)

    •   an endpoint has a specific server attached

•   set permissions for resources

•   expose custom or core resources per endpoint

    •   core resources are included in services

    •   custom resources can be made by your modules

•   create a client that can connect
services modules
active server endpoints
create endpoint
enable resources
security and permissions

•   normal Drupal session authentication
security and permissions

•   normal Drupal session authentication

•   security and permissions as you would use them
    normally
security and permissions

•   normal Drupal session authentication

•   security and permissions as you would use them
    normally

•   permissions for anonymous user
security and permissions

•   normal Drupal session authentication

•   security and permissions as you would use them
    normally

•   permissions for anonymous user

•   permissions via roles for logged in user
security and permissions

•   normal Drupal session authentication

•   security and permissions as you would use them
    normally

•   permissions for anonymous user

•   permissions via roles for logged in user

•   no authorization (yet)
assign permissions
sending and receiving data


•   client communicates with the D7 backend via
    amfserver
sending and receiving data


•   client communicates with the D7 backend via
    amfserver


•   data transfer via the AMF protocol (action message
    format)
amf endpoint
about AMF

 •   what does the AMF protocol offer?
about AMF

 •   what does the AMF protocol offer?

     •   binary format (efficient data transfer)
about AMF

 •   what does the AMF protocol offer?

     •   binary format (efficient data transfer)

     •   delivered over http protocol (port 80)
about AMF

 •   what does the AMF protocol offer?

     •   binary format (efficient data transfer)

     •   delivered over http protocol (port 80)

     •   native datatypes on actionscript side
about AMF

 •   what does the AMF protocol offer?

     •   binary format (efficient data transfer)

     •   delivered over http protocol (port 80)

     •   native datatypes on actionscript side

     •   fast automated serializing/deserializing via (php) server
         libraries
about AMF

 •   what does the AMF protocol offer?

     •   binary format (efficient data transfer)

     •   delivered over http protocol (port 80)

     •   native datatypes on actionscript side

     •   fast automated serializing/deserializing via (php) server
         libraries

     •   fast automated serializing/deserializing via flash player
         native code
getting to content!

•   This is where it happens on the D7 side!
getting to content!

•   This is where it happens on the D7 side!

    •   fields: adding data/fields to your node
getting to content!

•   This is where it happens on the D7 side!

    •   fields: adding data/fields to your node

    •   views: getting groups of content
getting to content!

•   This is where it happens on the D7 side!

    •   fields: adding data/fields to your node

    •   views: getting groups of content

    •   core resources: node, users, taxonomy, system
getting to content!

•   This is where it happens on the D7 side!

    •   fields: adding data/fields to your node

    •   views: getting groups of content

    •   core resources: node, users, taxonomy, system

    •   custom resources: your own modules implementing
        hook_services_resources()
getting to content!

•   This is where it happens on the D7 side!

    •   fields: adding data/fields to your node

    •   views: getting groups of content

    •   core resources: node, users, taxonomy, system

    •   custom resources: your own modules implementing
        hook_services_resources()

        •   use functionality of existing modules (eg: ubercart)
getting to content!

•   This is where it happens on the D7 side!

    •   fields: adding data/fields to your node

    •   views: getting groups of content

    •   core resources: node, users, taxonomy, system

    •   custom resources: your own modules implementing
        hook_services_resources()

        •   use functionality of existing modules (eg: ubercart)

•   connect with actionscript client
hook_services_resources()
writing actionscript code

•   dpdk opensource actionscript 3 library
writing actionscript code

•   dpdk opensource actionscript 3 library

    •   de facto standard for integrating D6 + D7 with flash
writing actionscript code

•   dpdk opensource actionscript 3 library

    •   de facto standard for integrating D6 + D7 with flash

    •   unittested
writing actionscript code

•   dpdk opensource actionscript 3 library

    •   de facto standard for integrating D6 + D7 with flash

    •   unittested

    •   get it at www.dpdk.nl/opensource
writing actionscript code

•   dpdk opensource actionscript 3 library

    •   de facto standard for integrating D6 + D7 with flash

    •   unittested

    •   get it at www.dpdk.nl/opensource

        •   DrupalProxy class: actionscript proxy to the amfserver
writing actionscript code

•   dpdk opensource actionscript 3 library

    •   de facto standard for integrating D6 + D7 with flash

    •   unittested

    •   get it at www.dpdk.nl/opensource

        •   DrupalProxy class: actionscript proxy to the amfserver

        •   DrupalData class: represents data from the amfserver
writing actionscript code

•   dpdk opensource actionscript 3 library

    •   de facto standard for integrating D6 + D7 with flash

    •   unittested

    •   get it at www.dpdk.nl/opensource

        •   DrupalProxy class: actionscript proxy to the amfserver

        •   DrupalData class: represents data from the amfserver

        •   abstracts away low level details
simple actionscript!
as3? what happened?

•   create and configure an instance of DrupalProxy
as3? what happened?

•   create and configure an instance of DrupalProxy

•   add callback handlers for each resource invoked
as3? what happened?

•   create and configure an instance of DrupalProxy

•   add callback handlers for each resource invoked

•   handle the result in the callbacks
as3? what happened?

•   create and configure an instance of DrupalProxy

•   add callback handlers for each resource invoked

•   handle the result in the callbacks
     •   either loop over and use the drupal data structure you
         get back as a result
as3? what happened?

•   create and configure an instance of DrupalProxy

•   add callback handlers for each resource invoked

•   handle the result in the callbacks
     •   either loop over and use the drupal data structure you
         get back as a result

     •   or display error (eg: “Access denied for user
         anonymous” )you get back from the error handler
as3? what happened?

•   create and configure an instance of DrupalProxy

•   add callback handlers for each resource invoked

•   handle the result in the callbacks
     •   either loop over and use the drupal data structure you
         get back as a result

     •   or display error (eg: “Access denied for user
         anonymous” )you get back from the error handler

•   optionally use dpdk sequencing framework for the
    asynchronous(!) calls.
configure DrupalProxy
handling data
optional: sequencing
That’s all the code?
 

•   for integrating Drupal and Flash, it is!

•   now, you have to write the specifics for your stuff
             •   use more capalibities of DrupalProxy class

             •   configure your flash movie: flashvars, config file, initialize
                 call etc.

             •   write the business logic of your flash application
debugging and testing
debugging and testing


 •   how do we know what the data looks like?
debugging and testing


 •   how do we know what the data looks like?

 •   how do we test our services?
debugging and testing
debugging and testing

 •   use a http traffic analyzer: Charles
debugging and testing

 •   use a http traffic analyzer: Charles

     •   shows request and response AMF data and headers
debugging and testing

 •   use a http traffic analyzer: Charles

     •   shows request and response AMF data and headers

     •   different views and filters available
debugging and testing

 •   use a http traffic analyzer: Charles

     •   shows request and response AMF data and headers

     •   different views and filters available

     •   shows metadata (size, time etc)
debugging and testing

 •   use a http traffic analyzer: Charles

     •   shows request and response AMF data and headers

     •   different views and filters available

     •   shows metadata (size, time etc)

     •   also very convenient for fields data
debugging and testing

 •   use a http traffic analyzer: Charles

     •   shows request and response AMF data and headers

     •   different views and filters available

     •   shows metadata (size, time etc)

     •   also very convenient for fields data
     •   www.charlesproxy.com
debugging and testing

•   use the devel module on the drupal side
debugging and testing

•   use the devel module on the drupal side

    •   http://drupal.org/project/devel
debugging and testing

•   use the devel module on the drupal side

    •   http://drupal.org/project/devel

    •   very useful developer tool
debugging and testing

•   use the devel module on the drupal side

    •   http://drupal.org/project/devel

    •   very useful developer tool

    •   view the data structures with krumo output
debugging and testing

•   use the devel module on the drupal side

    •   http://drupal.org/project/devel

    •   very useful developer tool

    •   view the data structures with krumo output

    •   also very convenient for fields data
devel, used in a node
krumo output
debugging and testing

•   service browser
debugging and testing

•   service browser

    •   see and use the resources from within your browser
debugging and testing

•   service browser

    •   see and use the resources from within your browser

    •   A ‘need to have’ for testing and debugging the services
        without interaction between client and server
debugging and testing

•   service browser

    •   see and use the resources from within your browser

    •   A ‘need to have’ for testing and debugging the services
        without interaction between client and server

    •   send and retrieve data via D7 services itself
debugging and testing

•   service browser

    •   see and use the resources from within your browser

    •   A ‘need to have’ for testing and debugging the services
        without interaction between client and server

    •   send and retrieve data via D7 services itself

    •   method signature inspection
debugging and testing

•   service browser

    •   see and use the resources from within your browser

    •   A ‘need to have’ for testing and debugging the services
        without interaction between client and server

    •   send and retrieve data via D7 services itself

    •   method signature inspection

    •   not yet available in D7 services
debugging and testing



•   write tests using the Drupal Testing framework
test run



•   write tests using the Drupal Testing framework
difference D6 and D7


•   D6: amfphp library and services 2.x

•   D7: Zend Framework with AMF library and services 3.x
difference D6 and D7

•   D6: session authentication part of method signature
    (yuk!)

•   D7: session authentication via normal session
    authentication mechanism, and

    •   for cookie disabled clients via low level amf headers:
        flash player, air application, authoring environments,
        cookie disabled browsers
difference D6 and D7

•   D7:
difference D6 and D7

•   D7:

    •   classmapping: sending typed custom objects over the
        wire
difference D6 and D7

•   D7:

    •   classmapping: sending typed custom objects over the
        wire

    •   full integration with high level api of dpdk library
difference D6 and D7

•   D7:

    •   classmapping: sending typed custom objects over the
        wire

    •   full integration with high level api of dpdk library

    •   well commented demo actionscript code in module
difference D6 and D7

•   D7:

    •   classmapping: sending typed custom objects over the
        wire

    •   full integration with high level api of dpdk library

    •   well commented demo actionscript code in module

    •   testsuite
difference D6 and D7

•   D7:

    •   classmapping: sending typed custom objects over the
        wire

    •   full integration with high level api of dpdk library

    •   well commented demo actionscript code in module

    •   testsuite

    •   easy to get started, documentation in the installed
        module page and help
difference D6 and D7

•   but...
difference D6 and D7

•   but...

    •   some core services available in D6 are not yet in D7
difference D6 and D7

•   but...

    •   some core services available in D6 are not yet in D7

    •   standardized key authentication only in D6
difference D6 and D7

•   but...

    •   some core services available in D6 are not yet in D7

    •   standardized key authentication only in D6

    •   views (soon), menu
upgrading
D6 to D7

•   http://drupal.org/node/570162
upgrading
D6 to D7

•   http://drupal.org/node/570162

    •   essentially, things are different...
upgrading
D6 to D7

•   http://drupal.org/node/570162

    •   essentially, things are different...

    •   no style issues in flash
upgrading
D6 to D7

•   http://drupal.org/node/570162

    •   essentially, things are different...

    •   no style issues in flash

    •   actionscript handling is the same
upgrading
D6 to D7

•   http://drupal.org/node/570162

    •   essentially, things are different...

    •   no style issues in flash

    •   actionscript handling is the same

    •   different datastructures (node etc are changed)
upgrading
D6 to D7

•   http://drupal.org/node/570162

    •   essentially, things are different...

    •   no style issues in flash

    •   actionscript handling is the same

    •   different datastructures (node etc are changed)

    •   different services implementation (definitions)
why upgrade?


 •   benefits from D7
why upgrade?


 •   benefits from D7

 •   upgrade will be as painful now as later on
why upgrade?


 •   benefits from D7

 •   upgrade will be as painful now as later on

 •   client interaction with system
•   dpdk.nl

•   drupal.org/project/amfserver

•   zend.com

•   charlesproxy.com

•   me: rolf@vreijdenberger.nl
That’s it. thank you!

•   dpdk.nl

•   drupal.org/project/amfserver

•   zend.com

•   charlesproxy.com

•   me: rolf@vreijdenberger.nl

More Related Content

What's hot

Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...J V
 
Plugging the Holes: Security and Compatability in Hadoop
Plugging the Holes: Security and Compatability in HadoopPlugging the Holes: Security and Compatability in Hadoop
Plugging the Holes: Security and Compatability in HadoopOwen O'Malley
 
Writing microservices in Java -- Chicago-2015-11-10
Writing microservices in Java -- Chicago-2015-11-10Writing microservices in Java -- Chicago-2015-11-10
Writing microservices in Java -- Chicago-2015-11-10Derek Ashmore
 
Picnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationPicnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationNick Josevski
 
Aws Lambda for Java Architects - Illinois VJug -2016-05-03
Aws Lambda for Java Architects - Illinois VJug -2016-05-03Aws Lambda for Java Architects - Illinois VJug -2016-05-03
Aws Lambda for Java Architects - Illinois VJug -2016-05-03Derek Ashmore
 
Moving Gigantic Files Into and Out of the Alfresco Repository
Moving Gigantic Files Into and Out of the Alfresco RepositoryMoving Gigantic Files Into and Out of the Alfresco Repository
Moving Gigantic Files Into and Out of the Alfresco RepositoryJeff Potts
 
AWS Lambda for Architects - Chicago Coder Conference -2016-06-07
AWS Lambda for Architects - Chicago Coder Conference -2016-06-07AWS Lambda for Architects - Chicago Coder Conference -2016-06-07
AWS Lambda for Architects - Chicago Coder Conference -2016-06-07Derek Ashmore
 
Walkthrough Neo4j 1.9 & 2.0
Walkthrough Neo4j 1.9 & 2.0Walkthrough Neo4j 1.9 & 2.0
Walkthrough Neo4j 1.9 & 2.0Neo4j
 
spray: REST on Akka (Scala Days)
spray: REST on Akka (Scala Days)spray: REST on Akka (Scala Days)
spray: REST on Akka (Scala Days)sirthias
 
Padrino - the Godfather of Sinatra
Padrino - the Godfather of SinatraPadrino - the Godfather of Sinatra
Padrino - the Godfather of SinatraStoyan Zhekov
 
Speed up your Symfony2 application and build awesome features with Redis
Speed up your Symfony2 application and build awesome features with RedisSpeed up your Symfony2 application and build awesome features with Redis
Speed up your Symfony2 application and build awesome features with RedisRicard Clau
 
Apache Ambari: Simplified Hadoop Cluster Operation & Troubleshooting
Apache Ambari: Simplified Hadoop Cluster Operation & TroubleshootingApache Ambari: Simplified Hadoop Cluster Operation & Troubleshooting
Apache Ambari: Simplified Hadoop Cluster Operation & TroubleshootingJayush Luniya
 
Security Goodness with Ruby on Rails
Security Goodness with Ruby on RailsSecurity Goodness with Ruby on Rails
Security Goodness with Ruby on RailsSource Conference
 
Microservices for architects los angeles-2016-07-16
Microservices for architects los angeles-2016-07-16Microservices for architects los angeles-2016-07-16
Microservices for architects los angeles-2016-07-16Derek Ashmore
 
Achieving Infrastructure Portability with Chef
Achieving Infrastructure Portability with ChefAchieving Infrastructure Portability with Chef
Achieving Infrastructure Portability with ChefMatt Ray
 
RESTful Api practices Rails 3
RESTful Api practices Rails 3RESTful Api practices Rails 3
RESTful Api practices Rails 3Anton Narusberg
 
Jose portillo dev con presentation 1138
Jose portillo   dev con presentation 1138Jose portillo   dev con presentation 1138
Jose portillo dev con presentation 1138Jose Portillo
 
Modern websites in 2020 and Joomla
Modern websites in 2020 and JoomlaModern websites in 2020 and Joomla
Modern websites in 2020 and JoomlaGeorge Wilson
 

What's hot (20)

Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
 
Plugging the Holes: Security and Compatability in Hadoop
Plugging the Holes: Security and Compatability in HadoopPlugging the Holes: Security and Compatability in Hadoop
Plugging the Holes: Security and Compatability in Hadoop
 
Writing microservices in Java -- Chicago-2015-11-10
Writing microservices in Java -- Chicago-2015-11-10Writing microservices in Java -- Chicago-2015-11-10
Writing microservices in Java -- Chicago-2015-11-10
 
Picnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationPicnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable application
 
Simplified Cluster Operation & Troubleshooting
Simplified Cluster Operation & TroubleshootingSimplified Cluster Operation & Troubleshooting
Simplified Cluster Operation & Troubleshooting
 
Aws Lambda for Java Architects - Illinois VJug -2016-05-03
Aws Lambda for Java Architects - Illinois VJug -2016-05-03Aws Lambda for Java Architects - Illinois VJug -2016-05-03
Aws Lambda for Java Architects - Illinois VJug -2016-05-03
 
Moving Gigantic Files Into and Out of the Alfresco Repository
Moving Gigantic Files Into and Out of the Alfresco RepositoryMoving Gigantic Files Into and Out of the Alfresco Repository
Moving Gigantic Files Into and Out of the Alfresco Repository
 
AWS Lambda for Architects - Chicago Coder Conference -2016-06-07
AWS Lambda for Architects - Chicago Coder Conference -2016-06-07AWS Lambda for Architects - Chicago Coder Conference -2016-06-07
AWS Lambda for Architects - Chicago Coder Conference -2016-06-07
 
Walkthrough Neo4j 1.9 & 2.0
Walkthrough Neo4j 1.9 & 2.0Walkthrough Neo4j 1.9 & 2.0
Walkthrough Neo4j 1.9 & 2.0
 
spray: REST on Akka (Scala Days)
spray: REST on Akka (Scala Days)spray: REST on Akka (Scala Days)
spray: REST on Akka (Scala Days)
 
Padrino - the Godfather of Sinatra
Padrino - the Godfather of SinatraPadrino - the Godfather of Sinatra
Padrino - the Godfather of Sinatra
 
SOA on Rails
SOA on RailsSOA on Rails
SOA on Rails
 
Speed up your Symfony2 application and build awesome features with Redis
Speed up your Symfony2 application and build awesome features with RedisSpeed up your Symfony2 application and build awesome features with Redis
Speed up your Symfony2 application and build awesome features with Redis
 
Apache Ambari: Simplified Hadoop Cluster Operation & Troubleshooting
Apache Ambari: Simplified Hadoop Cluster Operation & TroubleshootingApache Ambari: Simplified Hadoop Cluster Operation & Troubleshooting
Apache Ambari: Simplified Hadoop Cluster Operation & Troubleshooting
 
Security Goodness with Ruby on Rails
Security Goodness with Ruby on RailsSecurity Goodness with Ruby on Rails
Security Goodness with Ruby on Rails
 
Microservices for architects los angeles-2016-07-16
Microservices for architects los angeles-2016-07-16Microservices for architects los angeles-2016-07-16
Microservices for architects los angeles-2016-07-16
 
Achieving Infrastructure Portability with Chef
Achieving Infrastructure Portability with ChefAchieving Infrastructure Portability with Chef
Achieving Infrastructure Portability with Chef
 
RESTful Api practices Rails 3
RESTful Api practices Rails 3RESTful Api practices Rails 3
RESTful Api practices Rails 3
 
Jose portillo dev con presentation 1138
Jose portillo   dev con presentation 1138Jose portillo   dev con presentation 1138
Jose portillo dev con presentation 1138
 
Modern websites in 2020 and Joomla
Modern websites in 2020 and JoomlaModern websites in 2020 and Joomla
Modern websites in 2020 and Joomla
 

Similar to drupal 7 amfserver presentation: integrating flash and drupal

Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Mandi Walls
 
Big Data Warehousing Meetup: Securing the Hadoop Ecosystem by Cloudera
Big Data Warehousing Meetup: Securing the Hadoop Ecosystem by ClouderaBig Data Warehousing Meetup: Securing the Hadoop Ecosystem by Cloudera
Big Data Warehousing Meetup: Securing the Hadoop Ecosystem by ClouderaCaserta
 
Building APIs in an easy way using API Platform
Building APIs in an easy way using API PlatformBuilding APIs in an easy way using API Platform
Building APIs in an easy way using API PlatformAntonio Peric-Mazar
 
Headless cms architecture
Headless cms architectureHeadless cms architecture
Headless cms architectureKevin Wenger
 
Microservices and the Art of Taming the Dependency Hell Monster
Microservices and the Art of Taming the Dependency Hell MonsterMicroservices and the Art of Taming the Dependency Hell Monster
Microservices and the Art of Taming the Dependency Hell MonsterC4Media
 
Serverless: A love hate relationship
Serverless: A love hate relationshipServerless: A love hate relationship
Serverless: A love hate relationshipJürgen Brüder
 
Building Hadoop Data Applications with Kite
Building Hadoop Data Applications with KiteBuilding Hadoop Data Applications with Kite
Building Hadoop Data Applications with Kitehuguk
 
Oracle hadoop let them talk together !
Oracle hadoop let them talk together !Oracle hadoop let them talk together !
Oracle hadoop let them talk together !Laurent Leturgez
 
Middleware in Golang: InVision's Rye
Middleware in Golang: InVision's RyeMiddleware in Golang: InVision's Rye
Middleware in Golang: InVision's RyeCale Hoopes
 
Securing the Hadoop Ecosystem
Securing the Hadoop EcosystemSecuring the Hadoop Ecosystem
Securing the Hadoop EcosystemDataWorks Summit
 
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto Docker, Inc.
 
Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017
Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017
Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017Amazon Web Services
 
Chef for Openstack
Chef for OpenstackChef for Openstack
Chef for OpenstackMohit Sethi
 
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefIntroduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefNathen Harvey
 
SOLID Programming with Portable Class Libraries
SOLID Programming with Portable Class LibrariesSOLID Programming with Portable Class Libraries
SOLID Programming with Portable Class LibrariesVagif Abilov
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native BootcampVMware Tanzu
 
Web Services PHP Tutorial
Web Services PHP TutorialWeb Services PHP Tutorial
Web Services PHP TutorialLorna Mitchell
 

Similar to drupal 7 amfserver presentation: integrating flash and drupal (20)

Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
 
Big Data Warehousing Meetup: Securing the Hadoop Ecosystem by Cloudera
Big Data Warehousing Meetup: Securing the Hadoop Ecosystem by ClouderaBig Data Warehousing Meetup: Securing the Hadoop Ecosystem by Cloudera
Big Data Warehousing Meetup: Securing the Hadoop Ecosystem by Cloudera
 
Building APIs in an easy way using API Platform
Building APIs in an easy way using API PlatformBuilding APIs in an easy way using API Platform
Building APIs in an easy way using API Platform
 
Headless cms architecture
Headless cms architectureHeadless cms architecture
Headless cms architecture
 
Microservices and the Art of Taming the Dependency Hell Monster
Microservices and the Art of Taming the Dependency Hell MonsterMicroservices and the Art of Taming the Dependency Hell Monster
Microservices and the Art of Taming the Dependency Hell Monster
 
Serverless: A love hate relationship
Serverless: A love hate relationshipServerless: A love hate relationship
Serverless: A love hate relationship
 
Building Hadoop Data Applications with Kite
Building Hadoop Data Applications with KiteBuilding Hadoop Data Applications with Kite
Building Hadoop Data Applications with Kite
 
Introduction to Monsoon PHP framework
Introduction to Monsoon PHP frameworkIntroduction to Monsoon PHP framework
Introduction to Monsoon PHP framework
 
Chef for openstack
Chef for openstackChef for openstack
Chef for openstack
 
Intro to CakePHP
Intro to CakePHPIntro to CakePHP
Intro to CakePHP
 
Oracle hadoop let them talk together !
Oracle hadoop let them talk together !Oracle hadoop let them talk together !
Oracle hadoop let them talk together !
 
Middleware in Golang: InVision's Rye
Middleware in Golang: InVision's RyeMiddleware in Golang: InVision's Rye
Middleware in Golang: InVision's Rye
 
Securing the Hadoop Ecosystem
Securing the Hadoop EcosystemSecuring the Hadoop Ecosystem
Securing the Hadoop Ecosystem
 
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
 
Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017
Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017
Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017
 
Chef for Openstack
Chef for OpenstackChef for Openstack
Chef for Openstack
 
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefIntroduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to Chef
 
SOLID Programming with Portable Class Libraries
SOLID Programming with Portable Class LibrariesSOLID Programming with Portable Class Libraries
SOLID Programming with Portable Class Libraries
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp
 
Web Services PHP Tutorial
Web Services PHP TutorialWeb Services PHP Tutorial
Web Services PHP Tutorial
 

Recently uploaded

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 

Recently uploaded (20)

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 

drupal 7 amfserver presentation: integrating flash and drupal

  • 1.
  • 2. integrating D7 + flash with amfserver
  • 3.
  • 4. about • Me: Rolf Vreijdenberger • founder / managing partner dpdk • www.dpdk.nl • we’re a dutch online media agency • using a lot of Drupal • rolf@vreijdenberger.nl
  • 5.
  • 7.
  • 8. what is the amfserver? • a D7 module,working with services 7.x-3.x providing an AMF server based on the Zend library
  • 9. what is the amfserver? • a D7 module,working with services 7.x-3.x providing an AMF server based on the Zend library • allows integration with actionscript based clients • optionally integrated with the dpdk actionscript library www.dpdk.nl/opensource
  • 10.
  • 12.
  • 13. why flash and drupal? • not all the web is html(5)
  • 14. why flash and drupal? • not all the web is html(5) • deliver and administer content from drupal
  • 15. why flash and drupal? • not all the web is html(5) • deliver and administer content from drupal • display content in flash client
  • 16. why flash and drupal? • not all the web is html(5) • deliver and administer content from drupal • display content in flash client • flash, flex and air can be used (all actionscript clients) • (full screen) flash/flex sites with drupal backend • flash elements in a html + flash hybrid site • standalone AIR applications
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23. how can you use D7 as a cms for flash? • know how to write your actionscript code
  • 24. how can you use D7 as a cms for flash? • know how to write your actionscript code • know how to use D7 and install modules
  • 25. how can you use D7 as a cms for flash? • know how to write your actionscript code • know how to use D7 and install modules • use the right components to integrate the two: amfserver + actionscript libraries
  • 26. how can you use D7 as a cms for flash? • know how to write your actionscript code • know how to use D7 and install modules • use the right components to integrate the two: amfserver + actionscript libraries • get the data from Drupal to flash client
  • 27. how can you use D7 as a cms for flash? • know how to write your actionscript code • know how to use D7 and install modules • use the right components to integrate the two: amfserver + actionscript libraries • get the data from Drupal to flash client • get the data from flash client to Drupal
  • 28.
  • 29. can I pick it up easily?
  • 30. can I pick it up easily? • YES!
  • 31. can I pick it up easily? • YES! • D7, services, amfserver, Zend framework, dpdk package and a little actionscript code
  • 32. can I pick it up easily? • YES! • D7, services, amfserver, Zend framework, dpdk package and a little actionscript code • some configuration and some debugging tools
  • 33.
  • 34. how do we communicate? • D7 services 3.x module: services ROCK!
  • 35. how do we communicate? • D7 services 3.x module: services ROCK! • drupal.org/project/services
  • 36. how do we communicate? • D7 services 3.x module: services ROCK! • drupal.org/project/services • A standardized solution of integrating external applications with Drupal core and extensions
  • 37. how do we communicate? • D7 services 3.x module: services ROCK! • drupal.org/project/services • A standardized solution of integrating external applications with Drupal core and extensions • services API: allow modules to create services for clients
  • 38. how do we communicate? • D7 services 3.x module: services ROCK! • drupal.org/project/services • A standardized solution of integrating external applications with Drupal core and extensions • services API: allow modules to create services for clients • server API: allow modules to create servers
  • 39. how do we communicate? • D7 services 3.x module: services ROCK! • drupal.org/project/services • A standardized solution of integrating external applications with Drupal core and extensions • services API: allow modules to create services for clients • server API: allow modules to create servers • REST, XML-RPC, AMF
  • 40.
  • 41. how do we communicate? • create and configure (multiple) endpoints
  • 42. how do we communicate? • create and configure (multiple) endpoints • an url/gateway that exposes resources (“node.retrieve”)
  • 43. how do we communicate? • create and configure (multiple) endpoints • an url/gateway that exposes resources (“node.retrieve”) • an endpoint has a specific server attached
  • 44. how do we communicate? • create and configure (multiple) endpoints • an url/gateway that exposes resources (“node.retrieve”) • an endpoint has a specific server attached • set permissions for resources
  • 45. how do we communicate? • create and configure (multiple) endpoints • an url/gateway that exposes resources (“node.retrieve”) • an endpoint has a specific server attached • set permissions for resources • expose custom or core resources per endpoint
  • 46. how do we communicate? • create and configure (multiple) endpoints • an url/gateway that exposes resources (“node.retrieve”) • an endpoint has a specific server attached • set permissions for resources • expose custom or core resources per endpoint • core resources are included in services
  • 47. how do we communicate? • create and configure (multiple) endpoints • an url/gateway that exposes resources (“node.retrieve”) • an endpoint has a specific server attached • set permissions for resources • expose custom or core resources per endpoint • core resources are included in services • custom resources can be made by your modules
  • 48. how do we communicate? • create and configure (multiple) endpoints • an url/gateway that exposes resources (“node.retrieve”) • an endpoint has a specific server attached • set permissions for resources • expose custom or core resources per endpoint • core resources are included in services • custom resources can be made by your modules • create a client that can connect
  • 49.
  • 51.
  • 53.
  • 55.
  • 57.
  • 58. security and permissions • normal Drupal session authentication
  • 59. security and permissions • normal Drupal session authentication • security and permissions as you would use them normally
  • 60. security and permissions • normal Drupal session authentication • security and permissions as you would use them normally • permissions for anonymous user
  • 61. security and permissions • normal Drupal session authentication • security and permissions as you would use them normally • permissions for anonymous user • permissions via roles for logged in user
  • 62. security and permissions • normal Drupal session authentication • security and permissions as you would use them normally • permissions for anonymous user • permissions via roles for logged in user • no authorization (yet)
  • 63.
  • 65.
  • 66. sending and receiving data • client communicates with the D7 backend via amfserver
  • 67. sending and receiving data • client communicates with the D7 backend via amfserver • data transfer via the AMF protocol (action message format)
  • 68.
  • 70.
  • 71. about AMF • what does the AMF protocol offer?
  • 72. about AMF • what does the AMF protocol offer? • binary format (efficient data transfer)
  • 73. about AMF • what does the AMF protocol offer? • binary format (efficient data transfer) • delivered over http protocol (port 80)
  • 74. about AMF • what does the AMF protocol offer? • binary format (efficient data transfer) • delivered over http protocol (port 80) • native datatypes on actionscript side
  • 75. about AMF • what does the AMF protocol offer? • binary format (efficient data transfer) • delivered over http protocol (port 80) • native datatypes on actionscript side • fast automated serializing/deserializing via (php) server libraries
  • 76. about AMF • what does the AMF protocol offer? • binary format (efficient data transfer) • delivered over http protocol (port 80) • native datatypes on actionscript side • fast automated serializing/deserializing via (php) server libraries • fast automated serializing/deserializing via flash player native code
  • 77.
  • 78. getting to content! • This is where it happens on the D7 side!
  • 79. getting to content! • This is where it happens on the D7 side! • fields: adding data/fields to your node
  • 80. getting to content! • This is where it happens on the D7 side! • fields: adding data/fields to your node • views: getting groups of content
  • 81. getting to content! • This is where it happens on the D7 side! • fields: adding data/fields to your node • views: getting groups of content • core resources: node, users, taxonomy, system
  • 82. getting to content! • This is where it happens on the D7 side! • fields: adding data/fields to your node • views: getting groups of content • core resources: node, users, taxonomy, system • custom resources: your own modules implementing hook_services_resources()
  • 83. getting to content! • This is where it happens on the D7 side! • fields: adding data/fields to your node • views: getting groups of content • core resources: node, users, taxonomy, system • custom resources: your own modules implementing hook_services_resources() • use functionality of existing modules (eg: ubercart)
  • 84. getting to content! • This is where it happens on the D7 side! • fields: adding data/fields to your node • views: getting groups of content • core resources: node, users, taxonomy, system • custom resources: your own modules implementing hook_services_resources() • use functionality of existing modules (eg: ubercart) • connect with actionscript client
  • 85.
  • 87.
  • 88. writing actionscript code • dpdk opensource actionscript 3 library
  • 89. writing actionscript code • dpdk opensource actionscript 3 library • de facto standard for integrating D6 + D7 with flash
  • 90. writing actionscript code • dpdk opensource actionscript 3 library • de facto standard for integrating D6 + D7 with flash • unittested
  • 91. writing actionscript code • dpdk opensource actionscript 3 library • de facto standard for integrating D6 + D7 with flash • unittested • get it at www.dpdk.nl/opensource
  • 92. writing actionscript code • dpdk opensource actionscript 3 library • de facto standard for integrating D6 + D7 with flash • unittested • get it at www.dpdk.nl/opensource • DrupalProxy class: actionscript proxy to the amfserver
  • 93. writing actionscript code • dpdk opensource actionscript 3 library • de facto standard for integrating D6 + D7 with flash • unittested • get it at www.dpdk.nl/opensource • DrupalProxy class: actionscript proxy to the amfserver • DrupalData class: represents data from the amfserver
  • 94. writing actionscript code • dpdk opensource actionscript 3 library • de facto standard for integrating D6 + D7 with flash • unittested • get it at www.dpdk.nl/opensource • DrupalProxy class: actionscript proxy to the amfserver • DrupalData class: represents data from the amfserver • abstracts away low level details
  • 95.
  • 97.
  • 98. as3? what happened? • create and configure an instance of DrupalProxy
  • 99. as3? what happened? • create and configure an instance of DrupalProxy • add callback handlers for each resource invoked
  • 100. as3? what happened? • create and configure an instance of DrupalProxy • add callback handlers for each resource invoked • handle the result in the callbacks
  • 101. as3? what happened? • create and configure an instance of DrupalProxy • add callback handlers for each resource invoked • handle the result in the callbacks • either loop over and use the drupal data structure you get back as a result
  • 102. as3? what happened? • create and configure an instance of DrupalProxy • add callback handlers for each resource invoked • handle the result in the callbacks • either loop over and use the drupal data structure you get back as a result • or display error (eg: “Access denied for user anonymous” )you get back from the error handler
  • 103. as3? what happened? • create and configure an instance of DrupalProxy • add callback handlers for each resource invoked • handle the result in the callbacks • either loop over and use the drupal data structure you get back as a result • or display error (eg: “Access denied for user anonymous” )you get back from the error handler • optionally use dpdk sequencing framework for the asynchronous(!) calls.
  • 104.
  • 106.
  • 108.
  • 110.
  • 111. That’s all the code? • for integrating Drupal and Flash, it is! • now, you have to write the specifics for your stuff • use more capalibities of DrupalProxy class • configure your flash movie: flashvars, config file, initialize call etc. • write the business logic of your flash application
  • 112.
  • 114. debugging and testing • how do we know what the data looks like?
  • 115. debugging and testing • how do we know what the data looks like? • how do we test our services?
  • 116.
  • 118. debugging and testing • use a http traffic analyzer: Charles
  • 119. debugging and testing • use a http traffic analyzer: Charles • shows request and response AMF data and headers
  • 120. debugging and testing • use a http traffic analyzer: Charles • shows request and response AMF data and headers • different views and filters available
  • 121. debugging and testing • use a http traffic analyzer: Charles • shows request and response AMF data and headers • different views and filters available • shows metadata (size, time etc)
  • 122. debugging and testing • use a http traffic analyzer: Charles • shows request and response AMF data and headers • different views and filters available • shows metadata (size, time etc) • also very convenient for fields data
  • 123. debugging and testing • use a http traffic analyzer: Charles • shows request and response AMF data and headers • different views and filters available • shows metadata (size, time etc) • also very convenient for fields data • www.charlesproxy.com
  • 124.
  • 125.
  • 126.
  • 127.
  • 128. debugging and testing • use the devel module on the drupal side
  • 129. debugging and testing • use the devel module on the drupal side • http://drupal.org/project/devel
  • 130. debugging and testing • use the devel module on the drupal side • http://drupal.org/project/devel • very useful developer tool
  • 131. debugging and testing • use the devel module on the drupal side • http://drupal.org/project/devel • very useful developer tool • view the data structures with krumo output
  • 132. debugging and testing • use the devel module on the drupal side • http://drupal.org/project/devel • very useful developer tool • view the data structures with krumo output • also very convenient for fields data
  • 133.
  • 134. devel, used in a node
  • 135.
  • 137.
  • 138. debugging and testing • service browser
  • 139. debugging and testing • service browser • see and use the resources from within your browser
  • 140. debugging and testing • service browser • see and use the resources from within your browser • A ‘need to have’ for testing and debugging the services without interaction between client and server
  • 141. debugging and testing • service browser • see and use the resources from within your browser • A ‘need to have’ for testing and debugging the services without interaction between client and server • send and retrieve data via D7 services itself
  • 142. debugging and testing • service browser • see and use the resources from within your browser • A ‘need to have’ for testing and debugging the services without interaction between client and server • send and retrieve data via D7 services itself • method signature inspection
  • 143. debugging and testing • service browser • see and use the resources from within your browser • A ‘need to have’ for testing and debugging the services without interaction between client and server • send and retrieve data via D7 services itself • method signature inspection • not yet available in D7 services
  • 144.
  • 145. debugging and testing • write tests using the Drupal Testing framework
  • 146.
  • 147. test run • write tests using the Drupal Testing framework
  • 148.
  • 149. difference D6 and D7 • D6: amfphp library and services 2.x • D7: Zend Framework with AMF library and services 3.x
  • 150.
  • 151. difference D6 and D7 • D6: session authentication part of method signature (yuk!) • D7: session authentication via normal session authentication mechanism, and • for cookie disabled clients via low level amf headers: flash player, air application, authoring environments, cookie disabled browsers
  • 152.
  • 153. difference D6 and D7 • D7:
  • 154. difference D6 and D7 • D7: • classmapping: sending typed custom objects over the wire
  • 155. difference D6 and D7 • D7: • classmapping: sending typed custom objects over the wire • full integration with high level api of dpdk library
  • 156. difference D6 and D7 • D7: • classmapping: sending typed custom objects over the wire • full integration with high level api of dpdk library • well commented demo actionscript code in module
  • 157. difference D6 and D7 • D7: • classmapping: sending typed custom objects over the wire • full integration with high level api of dpdk library • well commented demo actionscript code in module • testsuite
  • 158. difference D6 and D7 • D7: • classmapping: sending typed custom objects over the wire • full integration with high level api of dpdk library • well commented demo actionscript code in module • testsuite • easy to get started, documentation in the installed module page and help
  • 159.
  • 160. difference D6 and D7 • but...
  • 161. difference D6 and D7 • but... • some core services available in D6 are not yet in D7
  • 162. difference D6 and D7 • but... • some core services available in D6 are not yet in D7 • standardized key authentication only in D6
  • 163. difference D6 and D7 • but... • some core services available in D6 are not yet in D7 • standardized key authentication only in D6 • views (soon), menu
  • 164.
  • 165. upgrading D6 to D7 • http://drupal.org/node/570162
  • 166. upgrading D6 to D7 • http://drupal.org/node/570162 • essentially, things are different...
  • 167. upgrading D6 to D7 • http://drupal.org/node/570162 • essentially, things are different... • no style issues in flash
  • 168. upgrading D6 to D7 • http://drupal.org/node/570162 • essentially, things are different... • no style issues in flash • actionscript handling is the same
  • 169. upgrading D6 to D7 • http://drupal.org/node/570162 • essentially, things are different... • no style issues in flash • actionscript handling is the same • different datastructures (node etc are changed)
  • 170. upgrading D6 to D7 • http://drupal.org/node/570162 • essentially, things are different... • no style issues in flash • actionscript handling is the same • different datastructures (node etc are changed) • different services implementation (definitions)
  • 171.
  • 172. why upgrade? • benefits from D7
  • 173. why upgrade? • benefits from D7 • upgrade will be as painful now as later on
  • 174. why upgrade? • benefits from D7 • upgrade will be as painful now as later on • client interaction with system
  • 175. dpdk.nl • drupal.org/project/amfserver • zend.com • charlesproxy.com • me: rolf@vreijdenberger.nl
  • 176. That’s it. thank you! • dpdk.nl • drupal.org/project/amfserver • zend.com • charlesproxy.com • me: rolf@vreijdenberger.nl

Editor's Notes

  1. intro screen\n
  2. intro screen\n
  3. intro screen\n
  4. introduction, who am I, what do we do?\nwho are you? any developers, flash developers etc?\n
  5. introduction, who am I, what do we do?\nwho are you? any developers, flash developers etc?\n
  6. introduction, who am I, what do we do?\nwho are you? any developers, flash developers etc?\n
  7. introduction, who am I, what do we do?\nwho are you? any developers, flash developers etc?\n
  8. introduction, who am I, what do we do?\nwho are you? any developers, flash developers etc?\n
  9. introduction, who am I, what do we do?\nwho are you? any developers, flash developers etc?\n
  10. introduction, who am I, what do we do?\nwho are you? any developers, flash developers etc?\n
  11. introduction, who am I, what do we do?\nwho are you? any developers, flash developers etc?\n
  12. yeah baby!\n
  13. yeah baby!\n
  14. yeah baby!\n
  15. what is it? It’s D7, services and Zend AMF, providing an AMFServer to the Drupal CMS with a kick ass actionscript library for D6 and D7 making it a blast to integrate flash and Drupal!\n
  16. what is it? It’s D7, services and Zend AMF, providing an AMFServer to the Drupal CMS with a kick ass actionscript library for D6 and D7 making it a blast to integrate flash and Drupal!\n
  17. what is it? It’s D7, services and Zend AMF, providing an AMFServer to the Drupal CMS with a kick ass actionscript library for D6 and D7 making it a blast to integrate flash and Drupal!\n
  18. what is it? It’s D7, services and Zend AMF, providing an AMFServer to the Drupal CMS with a kick ass actionscript library for D6 and D7 making it a blast to integrate flash and Drupal!\n
  19. where to find it? How did it start? A little history on amfphp to amfserver?\n
  20. Why? how about flash sites? animations? Cheaper labour than sugar candy in javascript and ajax? A rich body of knowledge and abilities.\nManage your content for your flash sites! Flash is alive and there is a demand, there is a difference in what some people would like it to be and the reality. Javascript and html5 isn’t there yet.\n
  21. Why? how about flash sites? animations? Cheaper labour than sugar candy in javascript and ajax? A rich body of knowledge and abilities.\nManage your content for your flash sites! Flash is alive and there is a demand, there is a difference in what some people would like it to be and the reality. Javascript and html5 isn’t there yet.\n
  22. Why? how about flash sites? animations? Cheaper labour than sugar candy in javascript and ajax? A rich body of knowledge and abilities.\nManage your content for your flash sites! Flash is alive and there is a demand, there is a difference in what some people would like it to be and the reality. Javascript and html5 isn’t there yet.\n
  23. Why? how about flash sites? animations? Cheaper labour than sugar candy in javascript and ajax? A rich body of knowledge and abilities.\nManage your content for your flash sites! Flash is alive and there is a demand, there is a difference in what some people would like it to be and the reality. Javascript and html5 isn’t there yet.\n
  24. Why? how about flash sites? animations? Cheaper labour than sugar candy in javascript and ajax? A rich body of knowledge and abilities.\nManage your content for your flash sites! Flash is alive and there is a demand, there is a difference in what some people would like it to be and the reality. Javascript and html5 isn’t there yet.\n
  25. Why? how about flash sites? animations? Cheaper labour than sugar candy in javascript and ajax? A rich body of knowledge and abilities.\nManage your content for your flash sites! Flash is alive and there is a demand, there is a difference in what some people would like it to be and the reality. Javascript and html5 isn’t there yet.\n
  26. Why? how about flash sites? animations? Cheaper labour than sugar candy in javascript and ajax? A rich body of knowledge and abilities.\nManage your content for your flash sites! Flash is alive and there is a demand, there is a difference in what some people would like it to be and the reality. Javascript and html5 isn’t there yet.\n
  27. Why? how about flash sites? animations? Cheaper labour than sugar candy in javascript and ajax? A rich body of knowledge and abilities.\nManage your content for your flash sites! Flash is alive and there is a demand, there is a difference in what some people would like it to be and the reality. Javascript and html5 isn’t there yet.\n
  28. Why? how about flash sites? animations? Cheaper labour than sugar candy in javascript and ajax? A rich body of knowledge and abilities.\nManage your content for your flash sites! Flash is alive and there is a demand, there is a difference in what some people would like it to be and the reality. Javascript and html5 isn’t there yet.\n
  29. Why? how about flash sites? animations? Cheaper labour than sugar candy in javascript and ajax? A rich body of knowledge and abilities.\nManage your content for your flash sites! Flash is alive and there is a demand, there is a difference in what some people would like it to be and the reality. Javascript and html5 isn’t there yet.\n
  30. Why? how about flash sites? animations? Cheaper labour than sugar candy in javascript and ajax? A rich body of knowledge and abilities.\nManage your content for your flash sites! Flash is alive and there is a demand, there is a difference in what some people would like it to be and the reality. Javascript and html5 isn’t there yet.\n
  31. Why? how about flash sites? animations? Cheaper labour than sugar candy in javascript and ajax? A rich body of knowledge and abilities.\nManage your content for your flash sites! Flash is alive and there is a demand, there is a difference in what some people would like it to be and the reality. Javascript and html5 isn’t there yet.\n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. some easy steps, conceptually it’s pretty simple. Know actionscript, know drupal, put the right modules in place and you’re ready to go! The hard part is abstracted away and there is an easy way to interface between the two\n
  38. some easy steps, conceptually it’s pretty simple. Know actionscript, know drupal, put the right modules in place and you’re ready to go! The hard part is abstracted away and there is an easy way to interface between the two\n
  39. some easy steps, conceptually it’s pretty simple. Know actionscript, know drupal, put the right modules in place and you’re ready to go! The hard part is abstracted away and there is an easy way to interface between the two\n
  40. some easy steps, conceptually it’s pretty simple. Know actionscript, know drupal, put the right modules in place and you’re ready to go! The hard part is abstracted away and there is an easy way to interface between the two\n
  41. some easy steps, conceptually it’s pretty simple. Know actionscript, know drupal, put the right modules in place and you’re ready to go! The hard part is abstracted away and there is an easy way to interface between the two\n
  42. some easy steps, conceptually it’s pretty simple. Know actionscript, know drupal, put the right modules in place and you’re ready to go! The hard part is abstracted away and there is an easy way to interface between the two\n
  43. Yes, actually, a lot easier than installing an amf thing yourself with the help of the modules (ease of installation) and packages.\n
  44. Yes, actually, a lot easier than installing an amf thing yourself with the help of the modules (ease of installation) and packages.\n
  45. Yes, actually, a lot easier than installing an amf thing yourself with the help of the modules (ease of installation) and packages.\n
  46. Yes, actually, a lot easier than installing an amf thing yourself with the help of the modules (ease of installation) and packages.\n
  47. Services!!!\nwrite servers like the amfserver, write services if they do not already exist in services core. Consume data from Drupal\n
  48. Services!!!\nwrite servers like the amfserver, write services if they do not already exist in services core. Consume data from Drupal\n
  49. Services!!!\nwrite servers like the amfserver, write services if they do not already exist in services core. Consume data from Drupal\n
  50. Services!!!\nwrite servers like the amfserver, write services if they do not already exist in services core. Consume data from Drupal\n
  51. Services!!!\nwrite servers like the amfserver, write services if they do not already exist in services core. Consume data from Drupal\n
  52. Services!!!\nwrite servers like the amfserver, write services if they do not already exist in services core. Consume data from Drupal\n
  53. Services!!!\nwrite servers like the amfserver, write services if they do not already exist in services core. Consume data from Drupal\n
  54. endpoints, permissions, resources\n
  55. endpoints, permissions, resources\n
  56. endpoints, permissions, resources\n
  57. endpoints, permissions, resources\n
  58. endpoints, permissions, resources\n
  59. endpoints, permissions, resources\n
  60. endpoints, permissions, resources\n
  61. endpoints, permissions, resources\n
  62. endpoints, permissions, resources\n
  63. activate the modules\n
  64. activate the modules\n
  65. activate the modules\n
  66. create endpoints for servers\n
  67. create endpoints for servers\n
  68. create endpoint\n
  69. assign resources to a specific endpoint\n
  70. core resources have permissions implemented.\ncustom resources can implement their own permissions, or if they are wrappers around core resources, can implement this themselves\nFMS server on soatest (admin interface via logged in user, other permissions)\n
  71. core resources have permissions implemented.\ncustom resources can implement their own permissions, or if they are wrappers around core resources, can implement this themselves\nFMS server on soatest (admin interface via logged in user, other permissions)\n
  72. core resources have permissions implemented.\ncustom resources can implement their own permissions, or if they are wrappers around core resources, can implement this themselves\nFMS server on soatest (admin interface via logged in user, other permissions)\n
  73. core resources have permissions implemented.\ncustom resources can implement their own permissions, or if they are wrappers around core resources, can implement this themselves\nFMS server on soatest (admin interface via logged in user, other permissions)\n
  74. core resources have permissions implemented.\ncustom resources can implement their own permissions, or if they are wrappers around core resources, can implement this themselves\nFMS server on soatest (admin interface via logged in user, other permissions)\n
  75. core resources have permissions implemented.\ncustom resources can implement their own permissions, or if they are wrappers around core resources, can implement this themselves\nFMS server on soatest (admin interface via logged in user, other permissions)\n
  76. assign permissions to get content\n
  77. assign permissions to get content\n
  78. assign permissions to get content\n
  79. AMF, used to be proprietary by Adobe, reverse engineered by php guy, used in amfphp, specs were released couple of years ago.\n
  80. AMF, used to be proprietary by Adobe, reverse engineered by php guy, used in amfphp, specs were released couple of years ago.\n
  81. AMF, used to be proprietary by Adobe, reverse engineered by php guy, used in amfphp, specs were released couple of years ago.\n
  82. Explain AMF, fast, efficient, small datasize, resultsets, no firewall difficulties, fast serializing and deserializing, works on multiple platforms (coldfusion, java, php, asp etc)\n
  83. Explain AMF, fast, efficient, small datasize, resultsets, no firewall difficulties, fast serializing and deserializing, works on multiple platforms (coldfusion, java, php, asp etc)\n
  84. Explain AMF, fast, efficient, small datasize, resultsets, no firewall difficulties, fast serializing and deserializing, works on multiple platforms (coldfusion, java, php, asp etc)\n
  85. Explain AMF, fast, efficient, small datasize, resultsets, no firewall difficulties, fast serializing and deserializing, works on multiple platforms (coldfusion, java, php, asp etc)\n
  86. Explain AMF, fast, efficient, small datasize, resultsets, no firewall difficulties, fast serializing and deserializing, works on multiple platforms (coldfusion, java, php, asp etc)\n
  87. Explain AMF, fast, efficient, small datasize, resultsets, no firewall difficulties, fast serializing and deserializing, works on multiple platforms (coldfusion, java, php, asp etc)\n
  88. Explain AMF, fast, efficient, small datasize, resultsets, no firewall difficulties, fast serializing and deserializing, works on multiple platforms (coldfusion, java, php, asp etc)\n
  89. Explain AMF, fast, efficient, small datasize, resultsets, no firewall difficulties, fast serializing and deserializing, works on multiple platforms (coldfusion, java, php, asp etc)\n
  90. Explain AMF, fast, efficient, small datasize, resultsets, no firewall difficulties, fast serializing and deserializing, works on multiple platforms (coldfusion, java, php, asp etc)\n
  91. SLIDE IN ONE BY ONE!!!!\nThis is how you can structure, manage and get to your content!!\nfields API (cck in D6): expanding your nodes\nviews: getting lists of stuff\ncore resources: the usual stuff that allows you to do a lot of things\ncustom resources: expand on all the logic available\n
  92. SLIDE IN ONE BY ONE!!!!\nThis is how you can structure, manage and get to your content!!\nfields API (cck in D6): expanding your nodes\nviews: getting lists of stuff\ncore resources: the usual stuff that allows you to do a lot of things\ncustom resources: expand on all the logic available\n
  93. SLIDE IN ONE BY ONE!!!!\nThis is how you can structure, manage and get to your content!!\nfields API (cck in D6): expanding your nodes\nviews: getting lists of stuff\ncore resources: the usual stuff that allows you to do a lot of things\ncustom resources: expand on all the logic available\n
  94. SLIDE IN ONE BY ONE!!!!\nThis is how you can structure, manage and get to your content!!\nfields API (cck in D6): expanding your nodes\nviews: getting lists of stuff\ncore resources: the usual stuff that allows you to do a lot of things\ncustom resources: expand on all the logic available\n
  95. SLIDE IN ONE BY ONE!!!!\nThis is how you can structure, manage and get to your content!!\nfields API (cck in D6): expanding your nodes\nviews: getting lists of stuff\ncore resources: the usual stuff that allows you to do a lot of things\ncustom resources: expand on all the logic available\n
  96. SLIDE IN ONE BY ONE!!!!\nThis is how you can structure, manage and get to your content!!\nfields API (cck in D6): expanding your nodes\nviews: getting lists of stuff\ncore resources: the usual stuff that allows you to do a lot of things\ncustom resources: expand on all the logic available\n
  97. SLIDE IN ONE BY ONE!!!!\nThis is how you can structure, manage and get to your content!!\nfields API (cck in D6): expanding your nodes\nviews: getting lists of stuff\ncore resources: the usual stuff that allows you to do a lot of things\ncustom resources: expand on all the logic available\n
  98. SLIDE IN ONE BY ONE!!!!\nThis is how you can structure, manage and get to your content!!\nfields API (cck in D6): expanding your nodes\nviews: getting lists of stuff\ncore resources: the usual stuff that allows you to do a lot of things\ncustom resources: expand on all the logic available\n
  99. it’s this easy to create a custom service. use the template and implement this in your module. Done!\n\n
  100. it’s this easy to create a custom service. use the template and implement this in your module. Done!\n\n
  101. A little history and extra information. unittested and MIT\nD6 with amfphp, D7 with amfserver. two classes that matter: DrupalProxy and DrupalData\nmulti user programming, datastructures, sequencing and flash remoting / drupal integration\n
  102. A little history and extra information. unittested and MIT\nD6 with amfphp, D7 with amfserver. two classes that matter: DrupalProxy and DrupalData\nmulti user programming, datastructures, sequencing and flash remoting / drupal integration\n
  103. A little history and extra information. unittested and MIT\nD6 with amfphp, D7 with amfserver. two classes that matter: DrupalProxy and DrupalData\nmulti user programming, datastructures, sequencing and flash remoting / drupal integration\n
  104. A little history and extra information. unittested and MIT\nD6 with amfphp, D7 with amfserver. two classes that matter: DrupalProxy and DrupalData\nmulti user programming, datastructures, sequencing and flash remoting / drupal integration\n
  105. A little history and extra information. unittested and MIT\nD6 with amfphp, D7 with amfserver. two classes that matter: DrupalProxy and DrupalData\nmulti user programming, datastructures, sequencing and flash remoting / drupal integration\n
  106. A little history and extra information. unittested and MIT\nD6 with amfphp, D7 with amfserver. two classes that matter: DrupalProxy and DrupalData\nmulti user programming, datastructures, sequencing and flash remoting / drupal integration\n
  107. A little history and extra information. unittested and MIT\nD6 with amfphp, D7 with amfserver. two classes that matter: DrupalProxy and DrupalData\nmulti user programming, datastructures, sequencing and flash remoting / drupal integration\n
  108. A little history and extra information. unittested and MIT\nD6 with amfphp, D7 with amfserver. two classes that matter: DrupalProxy and DrupalData\nmulti user programming, datastructures, sequencing and flash remoting / drupal integration\n
  109. take the time to explain this. proxy to interface with the remote setup\nerror handlers\ntimeout handlers\nhandlers for a resource (method defined on a service) which can both succeed and fail\n‘invoke’, call, execute a resource with the arguments you’d like\n
  110. explain each bullet point thoroughly. The design/architecture.\nalso, asynchronous is a concept some php developers are not familiar with.\n
  111. explain each bullet point thoroughly. The design/architecture.\nalso, asynchronous is a concept some php developers are not familiar with.\n
  112. explain each bullet point thoroughly. The design/architecture.\nalso, asynchronous is a concept some php developers are not familiar with.\n
  113. explain each bullet point thoroughly. The design/architecture.\nalso, asynchronous is a concept some php developers are not familiar with.\n
  114. explain each bullet point thoroughly. The design/architecture.\nalso, asynchronous is a concept some php developers are not familiar with.\n
  115. explain each bullet point thoroughly. The design/architecture.\nalso, asynchronous is a concept some php developers are not familiar with.\n
  116. explain each bullet point thoroughly. The design/architecture.\nalso, asynchronous is a concept some php developers are not familiar with.\n
  117. with comments to explain better\n
  118. simple data handling\n
  119. sequencing tasks.\nperforming tasks in order without functionality having an idea about the queueing\n
  120. specifics for your own site, highscores, list management etc. \noptionally use classmapping.\n
  121. specifics for your own site, highscores, list management etc. \noptionally use classmapping.\n
  122. specifics for your own site, highscores, list management etc. \noptionally use classmapping.\n
  123. specifics for your own site, highscores, list management etc. \noptionally use classmapping.\n
  124. specifics for your own site, highscores, list management etc. \noptionally use classmapping.\n
  125. specifics for your own site, highscores, list management etc. \noptionally use classmapping.\n
  126. what datastructures do we get? we need to know this in flash to get to the data and do something with it.\nDrupal has no NodeClass or well defined node object, so we need to debug (especially so with fields api)\nAnd how do we test our services without needing flash?\n
  127. what datastructures do we get? we need to know this in flash to get to the data and do something with it.\nDrupal has no NodeClass or well defined node object, so we need to debug (especially so with fields api)\nAnd how do we test our services without needing flash?\n
  128. what datastructures do we get? we need to know this in flash to get to the data and do something with it.\nDrupal has no NodeClass or well defined node object, so we need to debug (especially so with fields api)\nAnd how do we test our services without needing flash?\n
  129. what datastructures do we get? we need to know this in flash to get to the data and do something with it.\nDrupal has no NodeClass or well defined node object, so we need to debug (especially so with fields api)\nAnd how do we test our services without needing flash?\n
  130. \n
  131. \n
  132. \n
  133. \n
  134. \n
  135. \n
  136. \n
  137. \n
  138. \n
  139. screenshot of charles in action\nstructure, details and tabs\n
  140. devel module\n
  141. devel module\n
  142. devel module\n
  143. devel module\n
  144. devel module\n
  145. devel module\n
  146. devel output can be used to view raw data.\n\n
  147. devel output can be used to view raw data.\n\n
  148. structured output\n
  149. service browser via services module\npossible via amfserver\n
  150. service browser via services module\npossible via amfserver\n
  151. service browser via services module\npossible via amfserver\n
  152. service browser via services module\npossible via amfserver\n
  153. service browser via services module\npossible via amfserver\n
  154. service browser via services module\npossible via amfserver\n
  155. service browser via services module\npossible via amfserver\n
  156. D7\n
  157. D7\n
  158. testsuites provide better and stable software\n
  159. testsuites provide better and stable software\n
  160. D6, very good module, integrates with the same DrupalProxy class. Amfphp is old\nD7: uses Zend, a better library, with more functionalities you can use in your drupal site.\n
  161. D6, very good module, integrates with the same DrupalProxy class. Amfphp is old\nD7: uses Zend, a better library, with more functionalities you can use in your drupal site.\n
  162. session authentication done right. it’s now easier to use the normal way of flash remoting (no need for a specialized client)\n
  163. session authentication done right. it’s now easier to use the normal way of flash remoting (no need for a specialized client)\n
  164. \n
  165. \n
  166. \n
  167. \n
  168. \n
  169. \n
  170. \n
  171. \n
  172. \n
  173. \n
  174. \n
  175. \n
  176. you can upgrade D6 to D7\nbut things have changed.\nThe flash side stays the same thanks to \n
  177. you can upgrade D6 to D7\nbut things have changed.\nThe flash side stays the same thanks to \n
  178. you can upgrade D6 to D7\nbut things have changed.\nThe flash side stays the same thanks to \n
  179. you can upgrade D6 to D7\nbut things have changed.\nThe flash side stays the same thanks to \n
  180. you can upgrade D6 to D7\nbut things have changed.\nThe flash side stays the same thanks to \n
  181. you can upgrade D6 to D7\nbut things have changed.\nThe flash side stays the same thanks to \n
  182. you can upgrade D6 to D7\nbut things have changed.\nThe flash side stays the same thanks to \n
  183. you can upgrade D6 to D7\nbut things have changed.\nThe flash side stays the same thanks to \n
  184. get the benefits from the new version\nthe client might be able to do more with the newer version or work better/easier with it.\n
  185. get the benefits from the new version\nthe client might be able to do more with the newer version or work better/easier with it.\n
  186. get the benefits from the new version\nthe client might be able to do more with the newer version or work better/easier with it.\n
  187. get the benefits from the new version\nthe client might be able to do more with the newer version or work better/easier with it.\n
  188. get the benefits from the new version\nthe client might be able to do more with the newer version or work better/easier with it.\n
  189. questions\n
  190. questions\n
  191. questions\n
  192. questions\n
  193. questions\n