modern web cloud architecture based on google technologies

42
Modern Cloud Web Architecture based on Google Technologies Michael Ludwig

Upload: michael-ludwig

Post on 10-Jun-2015

1.428 views

Category:

Technology


1 download

DESCRIPTION

by Michael Ludwig

TRANSCRIPT

Page 1: Modern Web Cloud Architecture based on Google Technologies

Modern Cloud Web Architecture based on Google Technologies

Michael Ludwig

Page 2: Modern Web Cloud Architecture based on Google Technologies

Outline

1. Example Scenario

2. Involved Technologies

3. Architecture

4. Advantages of the Technology stack

Page 3: Modern Web Cloud Architecture based on Google Technologies

Outline

1. Example Scenario

2. Involved Technologies

3. Architecture

4. Advantages of the Technology stack

Page 4: Modern Web Cloud Architecture based on Google Technologies

Movie Collection Management

We want to develop an application for …

Page 5: Modern Web Cloud Architecture based on Google Technologies

Should have …

Multiple device support

Page 6: Modern Web Cloud Architecture based on Google Technologies

Should have …

Synchronization Central Data Management

Page 7: Modern Web Cloud Architecture based on Google Technologies

Should have …

Synchronization Maybe Push Notifications?

Page 8: Modern Web Cloud Architecture based on Google Technologies

Computer input

Page 9: Modern Web Cloud Architecture based on Google Technologies

Mobile input

Page 10: Modern Web Cloud Architecture based on Google Technologies

Should have …

Scaleabilty

Page 11: Modern Web Cloud Architecture based on Google Technologies

Development base

Lesari

Page 12: Modern Web Cloud Architecture based on Google Technologies

Goal

Extend with Cloud functionality

Page 13: Modern Web Cloud Architecture based on Google Technologies

Development principle

Avoid boilerplate code

Page 14: Modern Web Cloud Architecture based on Google Technologies

Outline

1. Example Scenario

2. Involved Technologies

3. Architecture

4. Advantages of the Technology stack

Page 15: Modern Web Cloud Architecture based on Google Technologies

Technologies Client

Native Android devices (smartphones, tablets)

Dalvik Virtual Machine

Java Code

Page 16: Modern Web Cloud Architecture based on Google Technologies

Technologies Client

PC-Browser / Mobile Browser (iPhone, Tablet)

Browser-Engine (HTML,CSS,JavaScript)

Google Web Toolkit

Java code

Page 17: Modern Web Cloud Architecture based on Google Technologies

Technologies Server

Google Cloud

Google App Engine

(like) Application Server

Java code

Page 18: Modern Web Cloud Architecture based on Google Technologies

Data communication

• RequestFactory Framework – Part of GWT

– In Java libary

– Based on JSON communication

– Suited for data-oriented CRUD applications

– Automatic entity-proxying between backend and frontend

– Lightweigt-network payloads

Page 19: Modern Web Cloud Architecture based on Google Technologies

Push notifications (Android)

• C2DM Framework – Cloud-to-Device Messaging

– Part of Android SDK

– Example project wizard in GWT Eclipse Plugin

– Designed for Google App Engine

Page 20: Modern Web Cloud Architecture based on Google Technologies

Push notifications (Browser)

• Channel-API – COMET-like protocol

– Persistent connection to client

– Could be replaced by WebSockets API (HTML5) in the future

Page 21: Modern Web Cloud Architecture based on Google Technologies

Authentification

• Google account – Supported by Google App Engine

– Automatically integrated in Android

– Very easy to implement

– No extra user accounts needed

– Needed for C2DM

Page 22: Modern Web Cloud Architecture based on Google Technologies

Data storage

• Objectify library – Wrapper library for Google Datastore

– Datastore is a NoSQL database

– BigTable technology (whitepaper!)

– Just uses POJO

– Very straightforward to use

– No problems like with ORM

– JDO/JPA not suited for non-relational storage

Page 23: Modern Web Cloud Architecture based on Google Technologies

Dependency Injection

• Google Guice – Versions for Android runtime, GWT (GIN) and GAE

– Like an extended Factory Pattern

– Test-driven development

– Automatic dependeny management

– Extended boilerplate reduction with RoboGuice (Android)

– Server configuration from code (GAE)

– Addionally allows Aspect-oriented programming (AOP)

Page 24: Modern Web Cloud Architecture based on Google Technologies

Outline

1. Example Scenario

2. Involved Technologies

3. Architecture

4. Advantages of the Technology stack

Page 25: Modern Web Cloud Architecture based on Google Technologies

Google Cloud

Google Datastore

Application Server (GAE)

Objectify

Android Client Web Client (GWT)

RequestFactory

C2DM Server

Push notifications Push notifications

Channel API

Guice

RoboGuice Gin

JSON JSON

Page 26: Modern Web Cloud Architecture based on Google Technologies

Outline

1. Example Scenario

2. Involved Technologies

3. Architecture

4. Advantages of the Technology stack

Page 27: Modern Web Cloud Architecture based on Google Technologies

Write all code in Java

Advantages

Page 28: Modern Web Cloud Architecture based on Google Technologies

Shared code

Advantages

Page 29: Modern Web Cloud Architecture based on Google Technologies

Live Debugging Server and Client

Advantages

Page 30: Modern Web Cloud Architecture based on Google Technologies

Easy development for many platforms

Advantages

Page 31: Modern Web Cloud Architecture based on Google Technologies

Entity and proxy validation

Advantages

Page 32: Modern Web Cloud Architecture based on Google Technologies

Test-driven development possible

Advantages

Page 33: Modern Web Cloud Architecture based on Google Technologies

No Impedance Mismatch

Advantages

Page 34: Modern Web Cloud Architecture based on Google Technologies

Faster development through saving a lot of boilerplate

To conclude …

Page 35: Modern Web Cloud Architecture based on Google Technologies

References

• Android SDK Page

• GWT Official Page

• Google App Engine Official Page

• C2DM Official Page

• Google Guice Official Page

• Objectify Official Page

• Cloud-tasks-IO example project

• „Using GWT RequestFactory with Objectify“ – David Chandler

• Google I/O 2011: Android + App Engine: A Developer's Dream Combination (Blog)

Page 37: Modern Web Cloud Architecture based on Google Technologies

Backup

Page 38: Modern Web Cloud Architecture based on Google Technologies

DI demonstration

RichMovieInfoWidget TabletMovieInfoWidget TestMovieInfoWidget

Real data Real data Test data

IRichMovieInfo Interface

Page 39: Modern Web Cloud Architecture based on Google Technologies

Request factory proxies

MovieEntryProxy

Interface

MovieEntry

Client Server

Page 40: Modern Web Cloud Architecture based on Google Technologies

Request factory services

MovieEntryRequest

Interface

MovieEntryDao

Client Server

Page 41: Modern Web Cloud Architecture based on Google Technologies

Request factory access

Page 42: Modern Web Cloud Architecture based on Google Technologies

Outlook

• GWT advantages – MVP Framework

• Places concept • Activities Concept • Suitability of Guice

– Internationalization-Support – Etc.

• Guice advantages – Scope Management – Custom Providers. – Etc.