Ajax World West


Published on

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Ajax World West

  1. 1. Revving Google App Engine with Appcelerator Rich Internet Applications on Google’s elastic infrastructure
  2. 2. Revving Google App Engine Where we’re going: • What is RIA and why do we care? • What is Google App Engine, and why do we care? • Approaches to doing RIA • Appcelerator’s approach to RIA • App Engine integration • Demo • Q&A
  3. 3. What is an RIA and why do I care? Rich Internet Applications: • Fluid and engaging user interface • Asynchronous data access (UI remains responsive) • Desktop-like interactivity in the web browser Why you care: • Users stay on a web site longer • Users will visit a web site more often • Users will buy what we’re selling and recommend that others do the same
  4. 4. What is GAE and why do I care? Google App Engine: • Managed elastic and scalable infrastructure • Easy deployment and monitoring • Platform services (authentication, e-mail, persistence) Why you care: • Eases scaling and deployment pain points • “Outsourcing” production deployment details reduces time to market and allows our user base to expand rapidly
  5. 5. Put them together… • Appcelerator reduces pain of RIA development • App Engine reduces pain of RIA deployment • Major time savings – finish that book you’re working on? <shameless-plug> </shameless-plug>
  6. 6. RIA Development Approaches • MVC plus Ajax • Intermediate JavaScript “Compilers” • Browser Plug Ins
  7. 7. MVC Plus Ajax • MVC web framework (Django, Ruby on Rails, Web Work) • JavaScript and third party JavaScript toolkits Pros: Cons: • Lots of good frameworks • UI state on the server • Accessibility of the browser • Chatty with the server • Not naturally event driven • Browser not designed for apps
  8. 8. Intermediate JavaScript “Compilers” • Abstract JavaScript from developer • Write UI in a different syntax than HTML and JavaScript Pros: Cons: • Insulates from browser • Working with designers issues • Abandoning web-based • Better syntax and tooling? skill sets (HTML, CSS) • Syntax and tooling?
  9. 9. Browser Plug Ins • Abstract away the browser • Provide a more consistent runtime and development environment Pros: Cons: • Insulates from browser • Lose browser issues accessibility • Good design tools • More code • Better syntax and tooling? • Less available skill sets • Powerful runtime • Proprietary tech or environment (e.g. Flash, standards Silverlight)
  10. 10. OK, but really we want to… • Do fluid, event driven UI • Not have to worry too much about browser quirks • Maintain the reach of the browser • Continue to use our HTML design and programming skill sets • Reduce the amount of UI and glue code we write to do asynchronous server communication, DOM manipulation, and event handling Enter Appcelerator… • Event publish and subscribe baked in • Keep writing HTML / CSS • Significantly reduce code for common UI tasks and data serialization
  11. 11. What is Appcelerator? • Open Source RIA Framework (Apache 2.0 license) • Message Oriented RIA Architecture • Client Side: JavaScript based SDK (no plug ins) • Server Side: Message routing and data serialization
  12. 12. Appcelerator Web SDK • Web Expression Language – a DSL for browser- based RIAs • Message Broker – Handles client- side messaging • Widget Framework – use pre-built or wrap third party widgets on [event] then [action]
  13. 13. Appcelerator Service Integration • Intentionally thin integration with server side logic • Data serialization and de-serialization is managed • Message routing is managed by the Service Broker
  14. 14. GAE Integration • Service Broker handles message routing – no need to manually configure routes in app.yaml • Simple service-oriented programming model • “app” command wraps dev app server and deployment tasks, and manages framework elements • One of the best Python-based web app frameworks available But that’s enough talk for now… Let’s check out a demo.