SlideShare ist ein Scribd-Unternehmen logo
1 von 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/

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Andere mochten auch

ハイディ・グラント「やってのける」読書メモ
ハイディ・グラント「やってのける」読書メモハイディ・グラント「やってのける」読書メモ
ハイディ・グラント「やってのける」読書メモ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
 

Andere mochten auch (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
 

Ähnlich wie 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
 

Ähnlich wie 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.
 

Kürzlich hochgeladen

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
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
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
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
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
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
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
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
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 

Kürzlich hochgeladen (20)

Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
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
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
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
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
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
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
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...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure 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...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.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/