SlideShare una empresa de Scribd logo
1 de 26
Drupal and Flash Platformhybrid applications Pacific North West Drupal Summit 10/24/2009 Josh Kopel
Hybrid application Drupal provides a powerful way to source and manage data for SWF applications Flash player provides a “rich” environment for advanced interactions Multi-touch Desktop migration (Air) iPhone (!)
Flashgood or evil?
Flashgood or evil?
Why call it SWF “Flash platform” Anything that compiles to the SWF format for playback within the Flash Player Flash Flex Flash has often meant animation. We are talking about true applications.
Quick demo
Overview of SWF       Drupal Drupal Browser Services Module HTML Page Server Module Flash Player Un/serialization AS3 Application Code Auth. Module Un/Serialization Classes Service (Module)
Services means Reusable data (SWF or AJAX) Provide the same “site” to multiple client technologies Data is available at either end in the same format via serialization Objects Arrays Number types Strings
The Drupal side Services module Authentication module(s) Service module(s) Server module(s) External (un)serialize code (i.e. AMFPHP)
The Drupal side Drupal Services Module Server Module Un/serialization Auth. Module Service (Module)
Services Module An API for remote applications Provides end point for service calls Wraps server and service modules in a standard API Supports multiple authentication methods* *We can hazoauth?
Services Module core services system system.connect file file.get file.getNodeFiles menu menu.get node node.get node.view node.save node.delete search search.nodes search.content search.users taxonomy taxonomy.saveTerm taxonomy.saveVocabulary taxonomy.getTree taxonomy.selectNodes views views.get views.export views.import
Server modules Provide wrappers for specific languages or serialization methods AMF (Adobe Message Format) XMLRPC JSON REST SOAP etc.
Custom service modules Provide access to any Drupal function Provide SIMPLER access to nodes Parse the data on the server side Only send the data needed by the flash app
Authentication API Keys Make a unique key based upon an application name and domain SWF must pass the hashed key back in order to authenticate Key must be embedded in or passed to Flash player
Authentication Session based Use standard Drupal HTML login Pull session ID into SWF via javascript using flash.external.ExternalInterface Via PHP using custom PHP Use existing session for service calls
Authentication Session based Use system.connect() to return an anonymous session ID Pass that back on any service call (logged in as anonymous) Or call user.login with a username/password + session ID Embedded Requested Receive a authenticated session ID
The SWF side All calls brokered by the browser Restricted by player security sandbox (learn about crossdomain.xml) Receive startup parameters from flashVars Manipulate DOM through externalInterface
The SWF side Browser HTML Page (DOM) Flash Player AS3 Application Code Un/Serialization Classes Flash Vars JS
Development methodology AS3 is “stateful”,  asynchonous, & event driven learn the language and use a good framework pureMVC robotlegs Existing open source classes are available for almost any protocol
Review authentication needs Do you need to save data or register users? Can you request a username/password? In html In SWF
Review protocol choices AMFPHP  Binary protocol means it is fast and compact Not “human readable” Adobe specific (natively parsed) XML Text based protocol can get verbose Easier to debug JSON Text based protocol can get verbose Can be easily consumed by AJAX or other services
Debugging Get the debug player (www.adobe.com/support/flashplayer/downloads.html) Charles Proxy (charlesproxy.com) LiveHTTPHeaders (livehttpheaders.mozdev.org/) Flash Tracer for FF (www.sephiroth.it/firefox/flashtracer/)
Serialization classes AMFPHP – nl.dpdk.services.gephyrcomplete “high level” Drupal connection class using AMFPHP AMFPHP – com.kylebrekke.amfphp XMLRPC – com.mattism.http.xmlrpchttp://danielmclaren.net/2007/08/03/xmlrpc-for-actionscript-30-free-library  JSON – as3corlib http://code.google.com/p/as3corelib/
IDEs and compilers Adobe Flash Professional CS4 (if you need timeline/library) Adobe Flash Builder™ 4 Other Adobe products Flex SDK complier FlashDevelop (my favorite) Eclipse-ant-Flex SDK Komodo (with plugins)
Other resources Essential ActionScript 3.0 by Colin Moock Flash with Drupal by Travis Tidwell OpenSource Flash http://osflash.org/

Más contenido relacionado

La actualidad más candente

Summer Training In Dotnet
Summer Training In DotnetSummer Training In Dotnet
Summer Training In DotnetDUCC Systems
 
Lotus Forms Webform Server 3.0 Overview & Architecture
Lotus Forms Webform Server 3.0 Overview & ArchitectureLotus Forms Webform Server 3.0 Overview & Architecture
Lotus Forms Webform Server 3.0 Overview & Architectureddrschiw
 
Aspnet architecture
Aspnet architectureAspnet architecture
Aspnet architecturephantrithuc
 
RESTFul Web API Services @ DotNetToscana
RESTFul Web API Services @ DotNetToscanaRESTFul Web API Services @ DotNetToscana
RESTFul Web API Services @ DotNetToscanaMatteo Baglini
 
Visual Studio.NET
Visual Studio.NETVisual Studio.NET
Visual Studio.NETsalonityagi
 
Introduction To Dotnet
Introduction To DotnetIntroduction To Dotnet
Introduction To DotnetSAMIR BHOGAYTA
 
Claims Based Authentication A Beginners Guide
Claims Based Authentication A Beginners GuideClaims Based Authentication A Beginners Guide
Claims Based Authentication A Beginners GuidePhuong Nguyen
 
Webform Server 351 Architecture and Overview
Webform Server 351 Architecture and OverviewWebform Server 351 Architecture and Overview
Webform Server 351 Architecture and Overviewddrschiw
 
Introduction To CodeIgniter
Introduction To CodeIgniterIntroduction To CodeIgniter
Introduction To CodeIgniterschwebbie
 

La actualidad más candente (11)

Summer Training In Dotnet
Summer Training In DotnetSummer Training In Dotnet
Summer Training In Dotnet
 
Lotus Forms Webform Server 3.0 Overview & Architecture
Lotus Forms Webform Server 3.0 Overview & ArchitectureLotus Forms Webform Server 3.0 Overview & Architecture
Lotus Forms Webform Server 3.0 Overview & Architecture
 
Aspnet architecture
Aspnet architectureAspnet architecture
Aspnet architecture
 
Introduction To Flex
Introduction To FlexIntroduction To Flex
Introduction To Flex
 
RESTFul Web API Services @ DotNetToscana
RESTFul Web API Services @ DotNetToscanaRESTFul Web API Services @ DotNetToscana
RESTFul Web API Services @ DotNetToscana
 
Visual Studio.NET
Visual Studio.NETVisual Studio.NET
Visual Studio.NET
 
Introduction To Dotnet
Introduction To DotnetIntroduction To Dotnet
Introduction To Dotnet
 
Claims Based Authentication A Beginners Guide
Claims Based Authentication A Beginners GuideClaims Based Authentication A Beginners Guide
Claims Based Authentication A Beginners Guide
 
Webform Server 351 Architecture and Overview
Webform Server 351 Architecture and OverviewWebform Server 351 Architecture and Overview
Webform Server 351 Architecture and Overview
 
Introduction To CodeIgniter
Introduction To CodeIgniterIntroduction To CodeIgniter
Introduction To CodeIgniter
 
SOAP Services
SOAP ServicesSOAP Services
SOAP Services
 

Destacado

ハイディ・グラント「やってのける」読書メモ
ハイディ・グラント「やってのける」読書メモハイディ・グラント「やってのける」読書メモ
ハイディ・グラント「やってのける」読書メモMinoru Matsushima
 
Effects Of Global Warming On Weather
Effects Of Global Warming On WeatherEffects Of Global Warming On Weather
Effects Of Global Warming On Weather14618
 
”Formaliaerklæringer” – hvad skal revisor kontrollere?
”Formaliaerklæringer” – hvad skal revisor kontrollere?”Formaliaerklæringer” – hvad skal revisor kontrollere?
”Formaliaerklæringer” – hvad skal revisor kontrollere?Jesper Seehausen
 
Proposta logos kufunda village
Proposta logos kufunda villageProposta logos kufunda village
Proposta logos kufunda villageAdriano Echeverria
 
Connected Living Rooms 2010.05.20
Connected Living Rooms 2010.05.20Connected Living Rooms 2010.05.20
Connected Living Rooms 2010.05.20Matthew Salazar
 
New Zealand 2007
New Zealand 2007New Zealand 2007
New Zealand 200714618
 
Paul Roman Nps Summit
Paul Roman Nps SummitPaul Roman Nps Summit
Paul Roman Nps SummitPaulRoman
 

Destacado (8)

ハイディ・グラント「やってのける」読書メモ
ハイディ・グラント「やってのける」読書メモハイディ・グラント「やってのける」読書メモ
ハイディ・グラント「やってのける」読書メモ
 
Effects Of Global Warming On Weather
Effects Of Global Warming On WeatherEffects Of Global Warming On Weather
Effects Of Global Warming On Weather
 
”Formaliaerklæringer” – hvad skal revisor kontrollere?
”Formaliaerklæringer” – hvad skal revisor kontrollere?”Formaliaerklæringer” – hvad skal revisor kontrollere?
”Formaliaerklæringer” – hvad skal revisor kontrollere?
 
Proposta logos kufunda village
Proposta logos kufunda villageProposta logos kufunda village
Proposta logos kufunda village
 
Connected Living Rooms 2010.05.20
Connected Living Rooms 2010.05.20Connected Living Rooms 2010.05.20
Connected Living Rooms 2010.05.20
 
New Zealand 2007
New Zealand 2007New Zealand 2007
New Zealand 2007
 
Paul Roman Nps Summit
Paul Roman Nps SummitPaul Roman Nps Summit
Paul Roman Nps Summit
 
Heidi grant pickup
Heidi grant pickupHeidi grant pickup
Heidi grant pickup
 

Similar a Drupal And Flash Platform hybrid applications

Session 2 - Silverlight Streaming, and Windows Live Search
Session 2 - Silverlight Streaming, and Windows Live SearchSession 2 - Silverlight Streaming, and Windows Live Search
Session 2 - Silverlight Streaming, and Windows Live Searchukdpe
 
Re-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
Re-use Your Skills and Code to Expand the Reach of Your Apps with SilverlightRe-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
Re-use Your Skills and Code to Expand the Reach of Your Apps with SilverlightFrank La Vigne
 
Leveraging BlazeDS, Java, and Flex: Dynamic Data Transfer
Leveraging BlazeDS, Java, and Flex: Dynamic Data TransferLeveraging BlazeDS, Java, and Flex: Dynamic Data Transfer
Leveraging BlazeDS, Java, and Flex: Dynamic Data TransferJoseph Labrecque
 
Silverlight 2
Silverlight 2Silverlight 2
Silverlight 2Dave Bost
 
Silverlight 4 Briefing
Silverlight 4 BriefingSilverlight 4 Briefing
Silverlight 4 BriefingDavid Chou
 
Getting Started with Flex and PHP
Getting Started with Flex and PHPGetting Started with Flex and PHP
Getting Started with Flex and PHPRyan Stewart
 
.Net framework
.Net framework.Net framework
.Net frameworkteach4uin
 
Adobe is from Mars, Microsoft is from Uranus. A look at two competing web st...
Adobe is from Mars, Microsoft is from Uranus.  A look at two competing web st...Adobe is from Mars, Microsoft is from Uranus.  A look at two competing web st...
Adobe is from Mars, Microsoft is from Uranus. A look at two competing web st...Eric Fickes
 
Flex Remoting With WebORB v1.0
Flex Remoting With WebORB v1.0Flex Remoting With WebORB v1.0
Flex Remoting With WebORB v1.0guest642dd3
 
[AzureCamp 24 Juin 2014] Des services en frontal par Benjamin Guinebertière e...
[AzureCamp 24 Juin 2014] Des services en frontal par Benjamin Guinebertière e...[AzureCamp 24 Juin 2014] Des services en frontal par Benjamin Guinebertière e...
[AzureCamp 24 Juin 2014] Des services en frontal par Benjamin Guinebertière e...Microsoft Technet France
 
The Evolution of the Flash Platform
The Evolution of the Flash PlatformThe Evolution of the Flash Platform
The Evolution of the Flash PlatformPeter Elst
 
Adobe AIR. NativeProcess. FFMPEG. Awesome.
Adobe AIR. NativeProcess. FFMPEG. Awesome.Adobe AIR. NativeProcess. FFMPEG. Awesome.
Adobe AIR. NativeProcess. FFMPEG. Awesome.Joseph Labrecque
 

Similar a Drupal And Flash Platform hybrid applications (20)

Flex for php developers
Flex for php developersFlex for php developers
Flex for php developers
 
Session 2 - Silverlight Streaming, and Windows Live Search
Session 2 - Silverlight Streaming, and Windows Live SearchSession 2 - Silverlight Streaming, and Windows Live Search
Session 2 - Silverlight Streaming, and Windows Live Search
 
Re-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
Re-use Your Skills and Code to Expand the Reach of Your Apps with SilverlightRe-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
Re-use Your Skills and Code to Expand the Reach of Your Apps with Silverlight
 
Leveraging BlazeDS, Java, and Flex: Dynamic Data Transfer
Leveraging BlazeDS, Java, and Flex: Dynamic Data TransferLeveraging BlazeDS, Java, and Flex: Dynamic Data Transfer
Leveraging BlazeDS, Java, and Flex: Dynamic Data Transfer
 
Adobe® Flex™
Adobe® Flex™Adobe® Flex™
Adobe® Flex™
 
What is Adobe Flex ?
What is Adobe Flex  ?What is Adobe Flex  ?
What is Adobe Flex ?
 
Silverlight 2
Silverlight 2Silverlight 2
Silverlight 2
 
Adobe flash media server
Adobe flash media server Adobe flash media server
Adobe flash media server
 
Silverlight 4 Briefing
Silverlight 4 BriefingSilverlight 4 Briefing
Silverlight 4 Briefing
 
Taste of flex
Taste of flexTaste of flex
Taste of flex
 
Getting Started with Flex and PHP
Getting Started with Flex and PHPGetting Started with Flex and PHP
Getting Started with Flex and PHP
 
FMS 3.5
FMS 3.5FMS 3.5
FMS 3.5
 
Silverlight Training
Silverlight TrainingSilverlight Training
Silverlight Training
 
Check
CheckCheck
Check
 
.Net framework
.Net framework.Net framework
.Net framework
 
Adobe is from Mars, Microsoft is from Uranus. A look at two competing web st...
Adobe is from Mars, Microsoft is from Uranus.  A look at two competing web st...Adobe is from Mars, Microsoft is from Uranus.  A look at two competing web st...
Adobe is from Mars, Microsoft is from Uranus. A look at two competing web st...
 
Flex Remoting With WebORB v1.0
Flex Remoting With WebORB v1.0Flex Remoting With WebORB v1.0
Flex Remoting With WebORB v1.0
 
[AzureCamp 24 Juin 2014] Des services en frontal par Benjamin Guinebertière e...
[AzureCamp 24 Juin 2014] Des services en frontal par Benjamin Guinebertière e...[AzureCamp 24 Juin 2014] Des services en frontal par Benjamin Guinebertière e...
[AzureCamp 24 Juin 2014] Des services en frontal par Benjamin Guinebertière e...
 
The Evolution of the Flash Platform
The Evolution of the Flash PlatformThe Evolution of the Flash Platform
The Evolution of the Flash Platform
 
Adobe AIR. NativeProcess. FFMPEG. Awesome.
Adobe AIR. NativeProcess. FFMPEG. Awesome.Adobe AIR. NativeProcess. FFMPEG. Awesome.
Adobe AIR. NativeProcess. FFMPEG. Awesome.
 

Último

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 

Último (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 

Drupal And Flash Platform hybrid applications

  • 1. Drupal and Flash Platformhybrid applications Pacific North West Drupal Summit 10/24/2009 Josh Kopel
  • 2. Hybrid application Drupal provides a powerful way to source and manage data for SWF applications Flash player provides a “rich” environment for advanced interactions Multi-touch Desktop migration (Air) iPhone (!)
  • 5. Why call it SWF “Flash platform” Anything that compiles to the SWF format for playback within the Flash Player Flash Flex Flash has often meant animation. We are talking about true applications.
  • 7. Overview of SWF Drupal Drupal Browser Services Module HTML Page Server Module Flash Player Un/serialization AS3 Application Code Auth. Module Un/Serialization Classes Service (Module)
  • 8. Services means Reusable data (SWF or AJAX) Provide the same “site” to multiple client technologies Data is available at either end in the same format via serialization Objects Arrays Number types Strings
  • 9. The Drupal side Services module Authentication module(s) Service module(s) Server module(s) External (un)serialize code (i.e. AMFPHP)
  • 10. The Drupal side Drupal Services Module Server Module Un/serialization Auth. Module Service (Module)
  • 11. Services Module An API for remote applications Provides end point for service calls Wraps server and service modules in a standard API Supports multiple authentication methods* *We can hazoauth?
  • 12. Services Module core services system system.connect file file.get file.getNodeFiles menu menu.get node node.get node.view node.save node.delete search search.nodes search.content search.users taxonomy taxonomy.saveTerm taxonomy.saveVocabulary taxonomy.getTree taxonomy.selectNodes views views.get views.export views.import
  • 13. Server modules Provide wrappers for specific languages or serialization methods AMF (Adobe Message Format) XMLRPC JSON REST SOAP etc.
  • 14. Custom service modules Provide access to any Drupal function Provide SIMPLER access to nodes Parse the data on the server side Only send the data needed by the flash app
  • 15. Authentication API Keys Make a unique key based upon an application name and domain SWF must pass the hashed key back in order to authenticate Key must be embedded in or passed to Flash player
  • 16. Authentication Session based Use standard Drupal HTML login Pull session ID into SWF via javascript using flash.external.ExternalInterface Via PHP using custom PHP Use existing session for service calls
  • 17. Authentication Session based Use system.connect() to return an anonymous session ID Pass that back on any service call (logged in as anonymous) Or call user.login with a username/password + session ID Embedded Requested Receive a authenticated session ID
  • 18. The SWF side All calls brokered by the browser Restricted by player security sandbox (learn about crossdomain.xml) Receive startup parameters from flashVars Manipulate DOM through externalInterface
  • 19. The SWF side Browser HTML Page (DOM) Flash Player AS3 Application Code Un/Serialization Classes Flash Vars JS
  • 20. Development methodology AS3 is “stateful”, asynchonous, & event driven learn the language and use a good framework pureMVC robotlegs Existing open source classes are available for almost any protocol
  • 21. Review authentication needs Do you need to save data or register users? Can you request a username/password? In html In SWF
  • 22. Review protocol choices AMFPHP Binary protocol means it is fast and compact Not “human readable” Adobe specific (natively parsed) XML Text based protocol can get verbose Easier to debug JSON Text based protocol can get verbose Can be easily consumed by AJAX or other services
  • 23. Debugging Get the debug player (www.adobe.com/support/flashplayer/downloads.html) Charles Proxy (charlesproxy.com) LiveHTTPHeaders (livehttpheaders.mozdev.org/) Flash Tracer for FF (www.sephiroth.it/firefox/flashtracer/)
  • 24. Serialization classes AMFPHP – nl.dpdk.services.gephyrcomplete “high level” Drupal connection class using AMFPHP AMFPHP – com.kylebrekke.amfphp XMLRPC – com.mattism.http.xmlrpchttp://danielmclaren.net/2007/08/03/xmlrpc-for-actionscript-30-free-library JSON – as3corlib http://code.google.com/p/as3corelib/
  • 25. IDEs and compilers Adobe Flash Professional CS4 (if you need timeline/library) Adobe Flash Builder™ 4 Other Adobe products Flex SDK complier FlashDevelop (my favorite) Eclipse-ant-Flex SDK Komodo (with plugins)
  • 26. Other resources Essential ActionScript 3.0 by Colin Moock Flash with Drupal by Travis Tidwell OpenSource Flash http://osflash.org/