SproutCore GTUG

Post on 10-May-2015

1.742 views 4 download

Tags:

description

Presentation at Silicon Valley GTUG meetup @ Google. Slides 25-28 introduce microservices.

Transcript of SproutCore GTUG

SproutCore

How can we build desktop-class

applications on the web?

• Architecture

• Framework (SproutCore!)

• Deployment (AppEngine!)

• Demo

How can we build desktop-class

applications on the web?

Like this...

Not this...

Desktop Class Means...

Immediate response

Rich interactions

Offline mode

Document Driven

Web Server Web Browser User

Click

Request

Response

Render

Click

Request

Response

Render

Business Logic

Document Driven

Document Driven

Immediate ResponseRich InteractionsOffline Mode

Rarely

None

None

Ajax

"3270" Ajax

"3270" Ajax

Web Server Web Browser User

Click

RequestResponse

Update Page

Initial Page Load

RenderBusiness

Logic(Tiny bit of

business logic)

Document Driven "3270" Ajax

Immediate ResponseRich InteractionsOffline Mode

Rarely Occasionally

None Some

None Rare

"3270" Ajax

"They" say... But really...

Client computers are too slow

Most clients are as fast as servers 2 years ago

JavaScript is too slow see v8 & SquirrelFish

HTML is too limited Have you seen Safari lately?

Browser Advancements

Web Client-Server

UserIMAP/POP

Business Logic

User

Apache

Backend ServiceBusiness

Logic

Web Client-Server Is...

JavaScript app in browser

Loads data via Ajax

User interaction is not bound by the server

Document Driven

Web Server Web Browser User

Click

Request

Response

Render

Click

Request

Response

Render

Business Logic

"3270" Ajax

Web Server Web Browser User

Click

RequestResponse

Update Page

Initial Page Load

RenderBusiness

Logic(Tiny bit of

business logic)

Web Client-Server

Web Server Web Browser User

Click

RequestResponse

Update Page

Load JS Client

Render

Click

Update Page

Business Logic

Document Driven "3270" Ajax Web

Client-ServerImmediate ResponseRich InteractionsOffline Mode

Rarely Occasionally Usually

None Some Always

None Rare Offline Capable

Web Client-Server

Web Client-Server

But what about the server?

Custom Web ApplicationBig Rack

of Servers

Business Logic

Custom Web

ApplicationGoogleAppEngine

Business Logic

Business Logic

Microservice

Business Logic

GoogleAppEngine

Microservice is...

Thin API over cloud service

Moves business logic to the client

Designed for speed + scale

Framework

Framework Objectives

Provide common applications features for free

Optimize across web browsers

Eliminate Glue Code

Make coding fun!

Cocoa

SproutCore

SproutCore is...

Full MVC framework

Bindings, Observing, DnD

Embraces JavaScript

Includes build toolsChrome, Safari, FireFox, IE7+

JavaScript is Great!

Late binding

"Hackable" Object ModelClosures

Lambda Functions

Demo

SproutCore+

Web Client-Server

Web Server Web Browser User

Click

RequestResponse

Update Page

Load JS Client

Render

Click

Update Page

MicroserviceGoogleAppEngine

sudo gem install sproutcore

www.sproutcore.com

SproutCore