Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
integrating D7 + flash    with amfserver
about•   Me: Rolf Vreijdenberger    •   founder / managing partner dpdk    •   www.dpdk.nl    •   we’re a dutch online med...
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 libra...
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 flas...
why flash and drupal?•   not all the web is html(5)•   deliver and administer content from drupal•   display content in flas...
how can you use D7 as acms for flash?•   know how to write your actionscript code
how can you use D7 as acms for flash?•   know how to write your actionscript code•   know how to use D7 and install modules
how can you use D7 as acms for flash?•   know how to write your actionscript code•   know how to use D7 and install modules...
how can you use D7 as acms for flash?•   know how to write your actionscript code•   know how to use D7 and install modules...
how can you use D7 as acms for flash?•   know how to write your actionscript code•   know how to use D7 and install modules...
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 actionsc...
can I pick it up easily?•   YES!    •   D7, services, amfserver, Zend framework, dpdk        package and a little actionsc...
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 ...
how do we communicate?•   D7 services 3.x module: services ROCK!    •   drupal.org/project/services    •   A standardized ...
how do we communicate?•   D7 services 3.x module: services ROCK!    •   drupal.org/project/services    •   A standardized ...
how do we communicate?•   D7 services 3.x module: services ROCK!    •   drupal.org/project/services    •   A standardized ...
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.ret...
how do we communicate?•   create and configure (multiple) endpoints    •   an url/gateway that exposes resources (“node.ret...
how do we communicate?•   create and configure (multiple) endpoints    •   an url/gateway that exposes resources (“node.ret...
how do we communicate?•   create and configure (multiple) endpoints    •   an url/gateway that exposes resources (“node.ret...
how do we communicate?•   create and configure (multiple) endpoints    •   an url/gateway that exposes resources (“node.ret...
how do we communicate?•   create and configure (multiple) endpoints    •   an url/gateway that exposes resources (“node.ret...
how do we communicate?•   create and configure (multiple) endpoints    •   an url/gateway that exposes resources (“node.ret...
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    norm...
security and permissions•   normal Drupal session authentication•   security and permissions as you would use them    norm...
security and permissions•   normal Drupal session authentication•   security and permissions as you would use them    norm...
security and permissions•   normal Drupal session authentication•   security and permissions as you would use them    norm...
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 protoc...
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...
about AMF •   what does the AMF protocol offer?     •   binary format (efficient data transfer)     •   delivered over http...
about AMF •   what does the AMF protocol offer?     •   binary format (efficient data transfer)     •   delivered over http...
about AMF •   what does the AMF protocol offer?     •   binary format (efficient data transfer)     •   delivered over http...
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 to content!•   This is where it happens on the D7 side!    •   fields: adding data/fields to your node    •   views:...
getting to content!•   This is where it happens on the D7 side!    •   fields: adding data/fields to your node    •   views:...
getting to content!•   This is where it happens on the D7 side!    •   fields: adding data/fields to your node    •   views:...
getting to content!•   This is where it happens on the D7 side!    •   fields: adding data/fields to your node    •   views:...
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 ...
writing actionscript code•   dpdk opensource actionscript 3 library    •   de facto standard for integrating D6 + D7 with ...
writing actionscript code•   dpdk opensource actionscript 3 library    •   de facto standard for integrating D6 + D7 with ...
writing actionscript code•   dpdk opensource actionscript 3 library    •   de facto standard for integrating D6 + D7 with ...
writing actionscript code•   dpdk opensource actionscript 3 library    •   de facto standard for integrating D6 + D7 with ...
writing actionscript code•   dpdk opensource actionscript 3 library    •   de facto standard for integrating D6 + D7 with ...
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• ...
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• ...
as3? what happened?•   create and configure an instance of DrupalProxy•   add callback handlers for each resource invoked• ...
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   ...
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     ...
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     ...
debugging and testing •   use a http traffic analyzer: Charles     •   shows request and response AMF data and headers     ...
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...
debugging and testing•   use the devel module on the drupal side    •   http://drupal.org/project/devel    •   very useful...
debugging and testing•   use the devel module on the drupal side    •   http://drupal.org/project/devel    •   very useful...
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’...
debugging and testing•   service browser    •   see and use the resources from within your browser    •   A ‘need to have’...
debugging and testing•   service browser    •   see and use the resources from within your browser    •   A ‘need to have’...
debugging and testing•   service browser    •   see and use the resources from within your browser    •   A ‘need to have’...
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 no...
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...
difference D6 and D7•   D7:    •   classmapping: sending typed custom objects over the        wire    •   full integration...
difference D6 and D7•   D7:    •   classmapping: sending typed custom objects over the        wire    •   full integration...
difference D6 and D7•   D7:    •   classmapping: sending typed custom objects over the        wire    •   full integration...
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 authent...
difference D6 and D7•   but...    •   some core services available in D6 are not yet in D7    •   standardized key authent...
upgradingD6 to D7•   http://drupal.org/node/570162
upgradingD6 to D7•   http://drupal.org/node/570162    •   essentially, things are different...
upgradingD6 to D7•   http://drupal.org/node/570162    •   essentially, things are different...    •   no style issues in fl...
upgradingD6 to D7•   http://drupal.org/node/570162    •   essentially, things are different...    •   no style issues in fl...
upgradingD6 to D7•   http://drupal.org/node/570162    •   essentially, things are different...    •   no style issues in fl...
upgradingD6 to D7•   http://drupal.org/node/570162    •   essentially, things are different...    •   no style issues in fl...
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@vreijdenberge...
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
Upcoming SlideShare
Loading in …5
×

drupal 7 amfserver presentation: integrating flash and drupal

4,485 views

Published on

In this presentation there will be a full explanation of how to integrate flash and drupal 7 with the amfserver module. Including examples and best practices. Presentation by the author of the amfserver module held at the 2011 DrupalCamp Sweden in Stockholm

Published in: Technology
  • Be the first to comment

  • Be the first to like this

drupal 7 amfserver presentation: integrating flash and drupal

  1. 1. integrating D7 + flash with amfserver
  2. 2. 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
  3. 3. introducing the amfserver
  4. 4. what is the amfserver? • a D7 module,working with services 7.x-3.x providing an AMF server based on the Zend library
  5. 5. 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
  6. 6. drupal.org/project/amfserver
  7. 7. why flash and drupal?• not all the web is html(5)
  8. 8. why flash and drupal?• not all the web is html(5)• deliver and administer content from drupal
  9. 9. why flash and drupal?• not all the web is html(5)• deliver and administer content from drupal• display content in flash client
  10. 10. 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
  11. 11. how can you use D7 as acms for flash?• know how to write your actionscript code
  12. 12. how can you use D7 as acms for flash?• know how to write your actionscript code• know how to use D7 and install modules
  13. 13. how can you use D7 as acms 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
  14. 14. how can you use D7 as acms 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
  15. 15. how can you use D7 as acms 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
  16. 16. can I pick it up easily?
  17. 17. can I pick it up easily?• YES!
  18. 18. can I pick it up easily?• YES! • D7, services, amfserver, Zend framework, dpdk package and a little actionscript code
  19. 19. 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
  20. 20. how do we communicate?• D7 services 3.x module: services ROCK!
  21. 21. how do we communicate?• D7 services 3.x module: services ROCK! • drupal.org/project/services
  22. 22. 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
  23. 23. 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
  24. 24. 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
  25. 25. 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
  26. 26. how do we communicate?• create and configure (multiple) endpoints
  27. 27. how do we communicate?• create and configure (multiple) endpoints • an url/gateway that exposes resources (“node.retrieve”)
  28. 28. how do we communicate?• create and configure (multiple) endpoints • an url/gateway that exposes resources (“node.retrieve”) • an endpoint has a specific server attached
  29. 29. 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
  30. 30. 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
  31. 31. 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
  32. 32. 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
  33. 33. 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
  34. 34. services modules
  35. 35. active server endpoints
  36. 36. create endpoint
  37. 37. enable resources
  38. 38. security and permissions• normal Drupal session authentication
  39. 39. security and permissions• normal Drupal session authentication• security and permissions as you would use them normally
  40. 40. security and permissions• normal Drupal session authentication• security and permissions as you would use them normally• permissions for anonymous user
  41. 41. 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
  42. 42. 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)
  43. 43. assign permissions
  44. 44. sending and receiving data• client communicates with the D7 backend via amfserver
  45. 45. sending and receiving data• client communicates with the D7 backend via amfserver• data transfer via the AMF protocol (action message format)
  46. 46. amf endpoint
  47. 47. about AMF • what does the AMF protocol offer?
  48. 48. about AMF • what does the AMF protocol offer? • binary format (efficient data transfer)
  49. 49. about AMF • what does the AMF protocol offer? • binary format (efficient data transfer) • delivered over http protocol (port 80)
  50. 50. about AMF • what does the AMF protocol offer? • binary format (efficient data transfer) • delivered over http protocol (port 80) • native datatypes on actionscript side
  51. 51. 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
  52. 52. 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
  53. 53. getting to content!• This is where it happens on the D7 side!
  54. 54. getting to content!• This is where it happens on the D7 side! • fields: adding data/fields to your node
  55. 55. getting to content!• This is where it happens on the D7 side! • fields: adding data/fields to your node • views: getting groups of content
  56. 56. 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
  57. 57. 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()
  58. 58. 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)
  59. 59. 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
  60. 60. hook_services_resources()
  61. 61. writing actionscript code• dpdk opensource actionscript 3 library
  62. 62. writing actionscript code• dpdk opensource actionscript 3 library • de facto standard for integrating D6 + D7 with flash
  63. 63. writing actionscript code• dpdk opensource actionscript 3 library • de facto standard for integrating D6 + D7 with flash • unittested
  64. 64. 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
  65. 65. 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
  66. 66. 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
  67. 67. 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
  68. 68. simple actionscript!
  69. 69. as3? what happened?• create and configure an instance of DrupalProxy
  70. 70. as3? what happened?• create and configure an instance of DrupalProxy• add callback handlers for each resource invoked
  71. 71. as3? what happened?• create and configure an instance of DrupalProxy• add callback handlers for each resource invoked• handle the result in the callbacks
  72. 72. 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
  73. 73. 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
  74. 74. 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.
  75. 75. configure DrupalProxy
  76. 76. handling data
  77. 77. optional: sequencing
  78. 78. 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
  79. 79. debugging and testing
  80. 80. debugging and testing • how do we know what the data looks like?
  81. 81. debugging and testing • how do we know what the data looks like? • how do we test our services?
  82. 82. debugging and testing
  83. 83. debugging and testing • use a http traffic analyzer: Charles
  84. 84. debugging and testing • use a http traffic analyzer: Charles • shows request and response AMF data and headers
  85. 85. debugging and testing • use a http traffic analyzer: Charles • shows request and response AMF data and headers • different views and filters available
  86. 86. 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)
  87. 87. 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
  88. 88. 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
  89. 89. debugging and testing• use the devel module on the drupal side
  90. 90. debugging and testing• use the devel module on the drupal side • http://drupal.org/project/devel
  91. 91. debugging and testing• use the devel module on the drupal side • http://drupal.org/project/devel • very useful developer tool
  92. 92. 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
  93. 93. 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
  94. 94. devel, used in a node
  95. 95. krumo output
  96. 96. debugging and testing• service browser
  97. 97. debugging and testing• service browser • see and use the resources from within your browser
  98. 98. 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
  99. 99. 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
  100. 100. 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
  101. 101. 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
  102. 102. debugging and testing• write tests using the Drupal Testing framework
  103. 103. test run• write tests using the Drupal Testing framework
  104. 104. difference D6 and D7• D6: amfphp library and services 2.x• D7: Zend Framework with AMF library and services 3.x
  105. 105. 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
  106. 106. difference D6 and D7• D7:
  107. 107. difference D6 and D7• D7: • classmapping: sending typed custom objects over the wire
  108. 108. difference D6 and D7• D7: • classmapping: sending typed custom objects over the wire • full integration with high level api of dpdk library
  109. 109. 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
  110. 110. 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
  111. 111. 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
  112. 112. difference D6 and D7• but...
  113. 113. difference D6 and D7• but... • some core services available in D6 are not yet in D7
  114. 114. difference D6 and D7• but... • some core services available in D6 are not yet in D7 • standardized key authentication only in D6
  115. 115. 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
  116. 116. upgradingD6 to D7• http://drupal.org/node/570162
  117. 117. upgradingD6 to D7• http://drupal.org/node/570162 • essentially, things are different...
  118. 118. upgradingD6 to D7• http://drupal.org/node/570162 • essentially, things are different... • no style issues in flash
  119. 119. upgradingD6 to D7• http://drupal.org/node/570162 • essentially, things are different... • no style issues in flash • actionscript handling is the same
  120. 120. upgradingD6 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)
  121. 121. upgradingD6 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)
  122. 122. why upgrade? • benefits from D7
  123. 123. why upgrade? • benefits from D7 • upgrade will be as painful now as later on
  124. 124. why upgrade? • benefits from D7 • upgrade will be as painful now as later on • client interaction with system
  125. 125. • dpdk.nl• drupal.org/project/amfserver• zend.com• charlesproxy.com• me: rolf@vreijdenberger.nl
  126. 126. That’s it. thank you!• dpdk.nl• drupal.org/project/amfserver• zend.com• charlesproxy.com• me: rolf@vreijdenberger.nl

×