Top Banner
Revving Google App Engine with Appcelerator Rich Internet Applications on Google’s elastic infrastructure
14
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Ajax World West

Revving Google App Enginewith Appcelerator

Rich Internet Applications on Google’s elasticinfrastructure

Page 2: Ajax World West

Revving Google App EngineWhere 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

Page 3: Ajax World West

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

Page 4: Ajax World West

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 baseto expand rapidly

Page 5: Ajax World West

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>

Page 6: Ajax World West

RIA Development Approaches• MVC plus Ajax• Intermediate JavaScript “Compilers”• Browser Plug Ins

Page 7: Ajax World West

MVC Plus Ajax• MVC web framework (Django, Ruby on Rails,

Web Work)• JavaScript and third party JavaScript toolkits

Pros:• Lots of good frameworks• Accessibility of the browser

Cons:• UI state on the server• Chatty with the server• Not naturally eventdriven• Browser not designedfor apps

Page 8: Ajax World West

Intermediate JavaScript“Compilers”• Abstract JavaScript from developer• Write UI in a different syntax than HTML and

JavaScript

Pros:• Insulates from browserissues• Better syntax and tooling?

Cons:• Working with designers• Abandoning web-basedskill sets (HTML, CSS)• Syntax and tooling?

Page 9: Ajax World West

Browser Plug Ins• Abstract away the browser• Provide a more consistent runtime and

development environment

Pros:• Insulates from browserissues• Good design tools• Better syntax and tooling?• Powerful runtimeenvironment (e.g. Flash,Silverlight)

Cons:• Lose browseraccessibility• More code• Less available skill sets• Proprietary tech orstandards

Page 10: Ajax World West

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 skillsets• Reduce the amount of UI and glue code we write to doasynchronous server communication, DOM manipulation,and event handling

Enter Appcelerator…• Event publish and subscribe baked in• Keep writing HTML / CSS• Significantly reduce code for commonUI tasks and data serialization

Page 11: Ajax World West

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

Page 12: Ajax World West

Appcelerator Web SDK• Web Expression

Language – aDSL for browser-based RIAs

• Message Broker– Handles client-side messaging

• WidgetFramework – usepre-built or wrapthird partywidgets

on [event] then[action]

Page 13: Ajax World West

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

Page 14: Ajax World West

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.