SlideShare uma empresa Scribd logo
1 de 18
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

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

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

Semelhante a Ria Applications And PHP

Learn PHP Lacture1
Learn PHP Lacture1Learn PHP Lacture1
Learn PHP Lacture1
ADARSH BHATT
 
Cloud Foundry at Rakuten
Cloud Foundry at RakutenCloud Foundry at Rakuten
Cloud Foundry at Rakuten
Platform CF
 

Semelhante a Ria Applications And PHP (20)

Apache Cordova 4.x
Apache Cordova 4.xApache Cordova 4.x
Apache Cordova 4.x
 
[2015/2016] Apache Cordova
[2015/2016] Apache Cordova[2015/2016] Apache Cordova
[2015/2016] Apache Cordova
 
Hyperion EPM APIs - Added value from HFM, Workspace, FDM, Smartview, and Shar...
Hyperion EPM APIs - Added value from HFM, Workspace, FDM, Smartview, and Shar...Hyperion EPM APIs - Added value from HFM, Workspace, FDM, Smartview, and Shar...
Hyperion EPM APIs - Added value from HFM, Workspace, FDM, Smartview, and Shar...
 
Lamp Zend Security
Lamp Zend SecurityLamp Zend Security
Lamp Zend Security
 
Apache Cordova
Apache CordovaApache Cordova
Apache Cordova
 
Red Hat for IBM System z IBM Enterprise2014 Las Vegas
Red Hat for IBM System z IBM Enterprise2014 Las Vegas Red Hat for IBM System z IBM Enterprise2014 Las Vegas
Red Hat for IBM System z IBM Enterprise2014 Las Vegas
 
London DevOps Meetup - PaaS as a platform for devops
London DevOps Meetup - PaaS as a platform for devopsLondon DevOps Meetup - PaaS as a platform for devops
London DevOps Meetup - PaaS as a platform for devops
 
Getting started with PHP on IBM i
Getting started with PHP on IBM iGetting started with PHP on IBM i
Getting started with PHP on IBM i
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp
 
Building Flash-based websites using Adobe Flex - Lesson 1/10
Building Flash-based websites using Adobe Flex - Lesson 1/10Building Flash-based websites using Adobe Flex - Lesson 1/10
Building Flash-based websites using Adobe Flex - Lesson 1/10
 
Learn PHP Lacture1
Learn PHP Lacture1Learn PHP Lacture1
Learn PHP Lacture1
 
Top 10 php frameworks in 2021
Top 10 php frameworks in 2021Top 10 php frameworks in 2021
Top 10 php frameworks in 2021
 
Scaling with Symfony - PHP UK
Scaling with Symfony - PHP UKScaling with Symfony - PHP UK
Scaling with Symfony - PHP UK
 
Cordova: APIs and instruments
Cordova: APIs and instrumentsCordova: APIs and instruments
Cordova: APIs and instruments
 
PHP Toolkit from Zend and IBM: Open Source on IBM i
PHP Toolkit from Zend and IBM: Open Source on IBM iPHP Toolkit from Zend and IBM: Open Source on IBM i
PHP Toolkit from Zend and IBM: Open Source on IBM i
 
Integrating PHP With System-i using Web Services
Integrating PHP With System-i using Web ServicesIntegrating PHP With System-i using Web Services
Integrating PHP With System-i using Web Services
 
PHP Batch Jobs on IBM i
PHP Batch Jobs on IBM iPHP Batch Jobs on IBM i
PHP Batch Jobs on IBM i
 
Cloud Foundry at Rakuten
Cloud Foundry at RakutenCloud Foundry at Rakuten
Cloud Foundry at Rakuten
 
AIR - Framework ( Cairngorm and Parsley )
AIR - Framework ( Cairngorm and Parsley )AIR - Framework ( Cairngorm and Parsley )
AIR - Framework ( Cairngorm and Parsley )
 
Optimizing performance
Optimizing performanceOptimizing performance
Optimizing performance
 

Mais de John Coggeshall

Mais de John Coggeshall (20)

Virtualization for Developers
Virtualization for DevelopersVirtualization for Developers
Virtualization for Developers
 
Migrating to PHP 7
Migrating to PHP 7Migrating to PHP 7
Migrating to PHP 7
 
Peek at PHP 7
Peek at PHP 7Peek at PHP 7
Peek at PHP 7
 
ZF2 Modules: Events, Services, and of course, modularity
ZF2 Modules: Events, Services, and of course, modularityZF2 Modules: Events, Services, and of course, modularity
ZF2 Modules: Events, Services, and of course, modularity
 
PHP Development for Google Glass using Phass
PHP Development for Google Glass using PhassPHP Development for Google Glass using Phass
PHP Development for Google Glass using Phass
 
Virtualization for Developers
Virtualization for DevelopersVirtualization for Developers
Virtualization for Developers
 
Development with Vagrant
Development with VagrantDevelopment with Vagrant
Development with Vagrant
 
Introduction to Zend Framework 2
Introduction to Zend Framework 2Introduction to Zend Framework 2
Introduction to Zend Framework 2
 
10 things not to do at a Startup
10 things not to do at a Startup10 things not to do at a Startup
10 things not to do at a Startup
 
Virtualization for Developers
Virtualization for DevelopersVirtualization for Developers
Virtualization for Developers
 
Puppet
PuppetPuppet
Puppet
 
Building PHP Powered Android Applications
Building PHP Powered Android ApplicationsBuilding PHP Powered Android Applications
Building PHP Powered Android Applications
 
Beyond the Browser
Beyond the BrowserBeyond the Browser
Beyond the Browser
 
Apache Con 2008 Top 10 Mistakes
Apache Con 2008 Top 10 MistakesApache Con 2008 Top 10 Mistakes
Apache Con 2008 Top 10 Mistakes
 
Ria Development With Flex And PHP
Ria Development With Flex And PHPRia Development With Flex And PHP
Ria Development With Flex And PHP
 
Top 10 Scalability Mistakes
Top 10 Scalability MistakesTop 10 Scalability Mistakes
Top 10 Scalability Mistakes
 
Enterprise PHP: A Case Study
Enterprise PHP: A Case StudyEnterprise PHP: A Case Study
Enterprise PHP: A Case Study
 
Building Dynamic Web Applications on i5 with PHP
Building Dynamic Web Applications on i5 with PHPBuilding Dynamic Web Applications on i5 with PHP
Building Dynamic Web Applications on i5 with PHP
 
PHP Security Basics
PHP Security BasicsPHP Security Basics
PHP Security Basics
 
Migrating from PHP 4 to PHP 5
Migrating from PHP 4 to PHP 5Migrating from PHP 4 to PHP 5
Migrating from PHP 4 to PHP 5
 

Último

Último (20)

Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAK
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
The UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, OcadoThe UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, Ocado
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
THE BEST IPTV in GERMANY for 2024: IPTVreel
THE BEST IPTV in  GERMANY for 2024: IPTVreelTHE BEST IPTV in  GERMANY for 2024: IPTVreel
THE BEST IPTV in GERMANY for 2024: IPTVreel
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 

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