SlideShare a Scribd company logo
John Coggeshall
Building RIA
Applications in PHP
2 John CoggeshallPresentation Title
Introductions
• Welcome!
• About me
• CTO of Automotive
Computer Services (ACS)
• Core PHP 5 Dev
• Author, Speaker
Agenda
• Building RIA Applications! (Duh)
• Specifically…
• A bit of history of the project
• Building RIA applications using Adobe Flex/AIR with
Zend Framework
• Challenges in creating RIA applications that reflect
client-side applications
• Demos,Technical Discussions, etc.
3
History
• ACS has a single product
called a DMS (Dealer
Management System)
• Originally Built in DOS-
based Foxpro (1992)
• Migrated toVisual Foxpro
(2004)
4
History
• Software runs off of
a Samba share on a
slackware server
• Every modifies the
same “local” database
file
• Cross-location
interaction via Remote
Desktop
5
We’re Doomed!
• Besides the obvious technical limitations of
the system, our product had problems that
hold up our business:
• No data sharing
• No ability to sell to large mega-dealerships that
require data sharing
• No data analytics
• Data… Data… data… data…. problems
6
Our Solution..
• The solution:An internet-based DMS
• PHP / Zend Framework to the rescue!
• One problem: Our Customers
• Very fickle about technology
• Were largely very happy with DOS applications
• Our solution needs to really feel like a desktop
application, without being one
• We’re still doomed!
7
We’re Saved!
• Adobe AIR / Flex to the
Rescue!
• With Flex / AIR for the user-
interface and PHP/ZF on the
backend we are able to
accomplish all of our goals
• Flex/AIR provides the user-
experience demanded by our users
• PHP / ZF provide the server-side
magic
8
Our Development Stack
• Zend Studio for Eclipse
• PHP / ZF development
• Adobe FlexBuilder 3 plugin for Eclipse
• Front-end Development
• VMWare development server
• To host PHP application – whenVMware behaves
• Compile/Run Flex Front-end Locally
9
Server Setup
• MySQL Database
• Some stored procedures for complex
manipulations
• Multi-Protocol architecture
• Supports RPC calls via “REST-ish” XML services as
well as the Adobe AMF format via the Zend_Amf
component of Zend Framework
10
Frontend Setup
• Adobe Flex and AIR runtime (duh)
• Fundamentally a PureMVC-based architecture
• (slowly moving away from that)
• A fair amount of custom code for data-transfer
over the AMF protocol
• We can’t use the standard Flex RemoteObject
facilities (only works with something like
BlazeDS)
11
Code!
Not without problems
• Flex and AIR work pretty well with PHP, but
there are a lot of problems
• Lack of Server-push technology available on the
PHP side makes saving data pretty painful
• Have to devise your own saving mechanisms and
keep them consistent
• Lack of Server-push makes collaboration painful
across clients
13
Hardware == Painful
• As powerful as AIR is a platform, it has a
serious flaw
• NO support for hardware on any level means all of
those bar-code scanners, driver’s license scanners,
custom printers we use suddenly can’t be used
• … Okay, now we’re really doomed.
14
PHP^H^H^HJava!!
• Of all things, Java comes to the rescue!
• The Merapi project
• http://www.merapiproject.net
• Provides a Java “server” that runs alongside the
AIR application
• AIR can communicate with Merapi through a
socket, serializing objects back and forth and
making RPC calls
• Merapi can communicate with hardware for us
15
Deployment
• New Problem: Deployment
• AIR has great facilities for this
• ANT-based build system builds AIR packages,
deploys codebase on server(s)
• Future: CruiseControl for CI / Testing
16
Final Thoughts..
• Flex/AIR is the right tool for our job
• Even though it’s NOT the right tool for our job
(yet)
• Offers a much more compelling user experience
than we could produce with JS/HTML/CSS
• Definitely not the right tool for every job
• Of course, the PHP side just works™ for
the most part
• Questions?
17
We’re Hiring!
• Thank you!
• Interested in
working on a
project like this?
We’re hiring!
• See our full-page ad
in the conference
program and visit
us at the Job Fair!
18

More Related Content

PDF
Hidden gems in cf2016
PDF
PHP Web Development Frameworks & Advantages
PDF
A look at FastCgi & Mod_PHP architecture
PDF
Bring api manager into your stack
PPTX
Mobile Applications Made Easy with ColdFusion 11
PDF
Serverless Media Workflow
PDF
Stealing Chromium: Embedding HTML5 with the Servo Browser Engine (LinuxCon NA...
Hidden gems in cf2016
PHP Web Development Frameworks & Advantages
A look at FastCgi & Mod_PHP architecture
Bring api manager into your stack
Mobile Applications Made Easy with ColdFusion 11
Serverless Media Workflow
Stealing Chromium: Embedding HTML5 with the Servo Browser Engine (LinuxCon NA...

What's hot (20)

PPTX
EF Core (RC2)
PPSX
Workshop XenDesktop4 day 1
PDF
CBDW2014 - Down the RabbitMQ hole with ColdFusion
PPTX
Cloud Orchestration is Broken
PPTX
Tarabica 2019 - Migration from ASP.NET MVC to ASP.NET Core
PPTX
What's new in ASP.NET vNext
PPTX
SCCI'15 - Devology - Session 6 - Servers and PHP
PDF
PDF
RESTFul Tools For Lazy Experts - CFSummit 2016
PDF
Evolution of PHP
PPTX
2014 01-21-mpi-community-feedback
PPTX
Performance Comparison of PHP 5.6 vs. 7.0 vs HHVM
PDF
Developing Locally with WordPress: No More Cowboy Coding
PPTX
The fall of the BizTalk Architect – From something abstract to something useful
PDF
Perforce Web Services
PDF
Upgrading or migrating to a higher AEM version - Planning and process
PPTX
Load Balancing, Failover and Scalability with ColdFusion
PDF
Aligning to AEMs Release Cycle
PDF
December OpenNTF Webinar: The Volt MX LotusScript Toolkit
PDF
Profiling and Optimizing for Xeon Phi with Allinea MAP
EF Core (RC2)
Workshop XenDesktop4 day 1
CBDW2014 - Down the RabbitMQ hole with ColdFusion
Cloud Orchestration is Broken
Tarabica 2019 - Migration from ASP.NET MVC to ASP.NET Core
What's new in ASP.NET vNext
SCCI'15 - Devology - Session 6 - Servers and PHP
RESTFul Tools For Lazy Experts - CFSummit 2016
Evolution of PHP
2014 01-21-mpi-community-feedback
Performance Comparison of PHP 5.6 vs. 7.0 vs HHVM
Developing Locally with WordPress: No More Cowboy Coding
The fall of the BizTalk Architect – From something abstract to something useful
Perforce Web Services
Upgrading or migrating to a higher AEM version - Planning and process
Load Balancing, Failover and Scalability with ColdFusion
Aligning to AEMs Release Cycle
December OpenNTF Webinar: The Volt MX LotusScript Toolkit
Profiling and Optimizing for Xeon Phi with Allinea MAP
Ad

Similar to Ria Applications And PHP (20)

PPT
Ria Development With Flex And PHP
PPT
Flex And Php 101
PPT
What is Adobe Flex ?
PPT
Adobe® Flex™
PPTX
Flex for php developers
KEY
RIA with Flex & PHP - Tulsa TechFest 2009
PPT
Getting Started with Flex and PHP
PDF
Building Desktop RIAs With PHP And JavaScript
PDF
Integrating PHP With System-i using Web Services
KEY
Getting Started with Flex and PHP
PPT
Building Dynamic Web Applications on i5 with PHP
PDF
Building Desktop RIAs with JavaScript and PHP - ZendCon09
PPTX
PHP programmimg
PPT
Developing RIAs... 10 reasons to use Adobe Flex
PPT
Architecting RIAs
PPT
Flex3
PPT
Flex_Basic_Training
PPT
6 3 tier architecture php
PDF
Business value of PHP
PDF
Building Desktop RIAs with PHP, HTML & Javascript in AIR
Ria Development With Flex And PHP
Flex And Php 101
What is Adobe Flex ?
Adobe® Flex™
Flex for php developers
RIA with Flex & PHP - Tulsa TechFest 2009
Getting Started with Flex and PHP
Building Desktop RIAs With PHP And JavaScript
Integrating PHP With System-i using Web Services
Getting Started with Flex and PHP
Building Dynamic Web Applications on i5 with PHP
Building Desktop RIAs with JavaScript and PHP - ZendCon09
PHP programmimg
Developing RIAs... 10 reasons to use Adobe Flex
Architecting RIAs
Flex3
Flex_Basic_Training
6 3 tier architecture php
Business value of PHP
Building Desktop RIAs with PHP, HTML & Javascript in AIR
Ad

More from John Coggeshall (20)

PPTX
Virtualization for Developers
PPTX
Migrating to PHP 7
PPTX
Peek at PHP 7
PPTX
ZF2 Modules: Events, Services, and of course, modularity
PPT
PHP Development for Google Glass using Phass
PPTX
Virtualization for Developers
PPTX
Development with Vagrant
PPTX
Introduction to Zend Framework 2
PPTX
10 things not to do at a Startup
PPTX
Virtualization for Developers
PPTX
PPT
Building PHP Powered Android Applications
PPT
Beyond the Browser
PPT
Apache Con 2008 Top 10 Mistakes
PPT
Top 10 Scalability Mistakes
PPT
Enterprise PHP: A Case Study
PPT
PHP Security Basics
PPT
Migrating from PHP 4 to PHP 5
PPT
Ajax and PHP
PPT
Top 10 Scalability Mistakes
Virtualization for Developers
Migrating to PHP 7
Peek at PHP 7
ZF2 Modules: Events, Services, and of course, modularity
PHP Development for Google Glass using Phass
Virtualization for Developers
Development with Vagrant
Introduction to Zend Framework 2
10 things not to do at a Startup
Virtualization for Developers
Building PHP Powered Android Applications
Beyond the Browser
Apache Con 2008 Top 10 Mistakes
Top 10 Scalability Mistakes
Enterprise PHP: A Case Study
PHP Security Basics
Migrating from PHP 4 to PHP 5
Ajax and PHP
Top 10 Scalability Mistakes

Recently uploaded (20)

PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Encapsulation theory and applications.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Machine learning based COVID-19 study performance prediction
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Cloud computing and distributed systems.
PDF
KodekX | Application Modernization Development
PPTX
A Presentation on Artificial Intelligence
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Modernizing your data center with Dell and AMD
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Empathic Computing: Creating Shared Understanding
PDF
Electronic commerce courselecture one. Pdf
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Approach and Philosophy of On baking technology
PDF
Spectral efficient network and resource selection model in 5G networks
NewMind AI Monthly Chronicles - July 2025
Encapsulation theory and applications.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Machine learning based COVID-19 study performance prediction
Network Security Unit 5.pdf for BCA BBA.
Advanced methodologies resolving dimensionality complications for autism neur...
Cloud computing and distributed systems.
KodekX | Application Modernization Development
A Presentation on Artificial Intelligence
Reach Out and Touch Someone: Haptics and Empathic Computing
Modernizing your data center with Dell and AMD
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Empathic Computing: Creating Shared Understanding
Electronic commerce courselecture one. Pdf
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Approach and Philosophy of On baking technology
Spectral efficient network and resource selection model in 5G networks

Ria Applications And PHP

  • 2. 2 John CoggeshallPresentation Title Introductions • Welcome! • About me • CTO of Automotive Computer Services (ACS) • Core PHP 5 Dev • Author, Speaker
  • 3. Agenda • Building RIA Applications! (Duh) • Specifically… • A bit of history of the project • Building RIA applications using Adobe Flex/AIR with Zend Framework • Challenges in creating RIA applications that reflect client-side applications • Demos,Technical Discussions, etc. 3
  • 4. History • ACS has a single product called a DMS (Dealer Management System) • Originally Built in DOS- based Foxpro (1992) • Migrated toVisual Foxpro (2004) 4
  • 5. History • Software runs off of a Samba share on a slackware server • Every modifies the same “local” database file • Cross-location interaction via Remote Desktop 5
  • 6. We’re Doomed! • Besides the obvious technical limitations of the system, our product had problems that hold up our business: • No data sharing • No ability to sell to large mega-dealerships that require data sharing • No data analytics • Data… Data… data… data…. problems 6
  • 7. Our Solution.. • The solution:An internet-based DMS • PHP / Zend Framework to the rescue! • One problem: Our Customers • Very fickle about technology • Were largely very happy with DOS applications • Our solution needs to really feel like a desktop application, without being one • We’re still doomed! 7
  • 8. We’re Saved! • Adobe AIR / Flex to the Rescue! • With Flex / AIR for the user- interface and PHP/ZF on the backend we are able to accomplish all of our goals • Flex/AIR provides the user- experience demanded by our users • PHP / ZF provide the server-side magic 8
  • 9. Our Development Stack • Zend Studio for Eclipse • PHP / ZF development • Adobe FlexBuilder 3 plugin for Eclipse • Front-end Development • VMWare development server • To host PHP application – whenVMware behaves • Compile/Run Flex Front-end Locally 9
  • 10. Server Setup • MySQL Database • Some stored procedures for complex manipulations • Multi-Protocol architecture • Supports RPC calls via “REST-ish” XML services as well as the Adobe AMF format via the Zend_Amf component of Zend Framework 10
  • 11. Frontend Setup • Adobe Flex and AIR runtime (duh) • Fundamentally a PureMVC-based architecture • (slowly moving away from that) • A fair amount of custom code for data-transfer over the AMF protocol • We can’t use the standard Flex RemoteObject facilities (only works with something like BlazeDS) 11
  • 12. Code!
  • 13. Not without problems • Flex and AIR work pretty well with PHP, but there are a lot of problems • Lack of Server-push technology available on the PHP side makes saving data pretty painful • Have to devise your own saving mechanisms and keep them consistent • Lack of Server-push makes collaboration painful across clients 13
  • 14. Hardware == Painful • As powerful as AIR is a platform, it has a serious flaw • NO support for hardware on any level means all of those bar-code scanners, driver’s license scanners, custom printers we use suddenly can’t be used • … Okay, now we’re really doomed. 14
  • 15. PHP^H^H^HJava!! • Of all things, Java comes to the rescue! • The Merapi project • http://www.merapiproject.net • Provides a Java “server” that runs alongside the AIR application • AIR can communicate with Merapi through a socket, serializing objects back and forth and making RPC calls • Merapi can communicate with hardware for us 15
  • 16. Deployment • New Problem: Deployment • AIR has great facilities for this • ANT-based build system builds AIR packages, deploys codebase on server(s) • Future: CruiseControl for CI / Testing 16
  • 17. Final Thoughts.. • Flex/AIR is the right tool for our job • Even though it’s NOT the right tool for our job (yet) • Offers a much more compelling user experience than we could produce with JS/HTML/CSS • Definitely not the right tool for every job • Of course, the PHP side just works™ for the most part • Questions? 17
  • 18. We’re Hiring! • Thank you! • Interested in working on a project like this? We’re hiring! • See our full-page ad in the conference program and visit us at the Job Fair! 18