SlideShare a Scribd company logo
1 of 42
Download to read offline
Modern Cloud Web Architecture
 based on Google Technologies
         Michael Ludwig
Outline
1.   Example Scenario
2.   Involved Technologies
3.   Architecture
4.   Advantages of the Technology stack
Outline
1.   Example Scenario
2.   Involved Technologies
3.   Architecture
4.   Advantages of the Technology stack
We want to develop an application for …



      Movie Collection Management
Should have …



         Multiple device support
Should have …


           Synchronization
       Central Data Management
Should have …


           Synchronization
       Maybe Push Notifications?
Computer input
Mobile input
Should have …



                Scaleabilty
Development base




                   Lesari
Goal


       Extend with Cloud functionality
Development principle




          Avoid boilerplate code
Outline
1.   Example Scenario
2.   Involved Technologies
3.   Architecture
4.   Advantages of the Technology stack
Technologies Client


 Native Android devices (smartphones, tablets)


            Dalvik Virtual Machine


                      Java Code
Technologies Client

 PC-Browser / Mobile Browser (iPhone, Tablet)


     Browser-Engine (HTML,CSS,JavaScript)


              Google Web Toolkit


                      Java code
Technologies Server

                Google Cloud


              Google App Engine


           (like) Application Server


                  Java code
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
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
Push notifications (Browser)

• Channel-API
  – COMET-like protocol
  – Persistent connection to client
  – Could be replaced by WebSockets API (HTML5) in
    the future
Authentification

• Google account
  – Supported by Google App Engine
  – Automatically integrated in Android
  – Very easy to implement
  – No extra user accounts needed
  – Needed for C2DM
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
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)
Outline
1.   Example Scenario
2.   Involved Technologies
3.   Architecture
4.   Advantages of the Technology stack
Google Cloud

                                   Google Datastore

                                     Objectify



      C2DM Server                        Application Server (GAE)             Guice


                                                                            Channel API


      Push notifications           RequestFactory                Push notifications
                            JSON                          JSON



                  Android Client                          Web Client (GWT)


      RoboGuice                                     Gin
Outline
1.   Example Scenario
2.   Involved Technologies
3.   Architecture
4.   Advantages of the Technology stack
Advantages




             Write all code in Java
Advantages




             Shared code
Advantages




     Live Debugging Server and Client
Advantages




  Easy development for many platforms
Advantages




        Entity and proxy validation
Advantages




    Test-driven development possible
Advantages




        No Impedance Mismatch
To conclude …




          Faster development
    through saving a lot of boilerplate
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)
Questions?
• Further Information:
  ludwigm@in.tum.de


• Presentation link:
  http://bit.ly/ML-IS-Sem
Backup
DI demonstration

          Real data              Real data                     Test data


RichMovieInfoWidget   TabletMovieInfoWidget          TestMovieInfoWidget




                                             Interface
                          IRichMovieInfo
Request factory proxies
         Interface   Client Server
MovieEntryProxy                      MovieEntry
Request factory services
          Interface   Client Server
MovieEntryRequest                     MovieEntryDao
Request factory access
Outlook
• GWT advantages
  – MVP Framework
     • Places concept
     • Activities Concept
     • Suitability of Guice
  – Internationalization-Support
  – Etc.
• Guice advantages
  – Scope Management
  – Custom Providers.
  – Etc.

More Related Content

What's hot

Challenges in enterprise mobility development 2
Challenges in enterprise mobility development 2Challenges in enterprise mobility development 2
Challenges in enterprise mobility development 2
kidozen
 
Ibm test & development cloud + rational service delivery services platform
Ibm test & development cloud + rational service delivery services platformIbm test & development cloud + rational service delivery services platform
Ibm test & development cloud + rational service delivery services platform
Babak Hosseinzadeh
 

What's hot (19)

Webinar: Building HTML5 Mobile Apps with Kinvey and Gizmox
Webinar: Building HTML5 Mobile Apps with Kinvey and GizmoxWebinar: Building HTML5 Mobile Apps with Kinvey and Gizmox
Webinar: Building HTML5 Mobile Apps with Kinvey and Gizmox
 
Building multi tenancy enterprise applications - quick
Building multi tenancy enterprise applications - quickBuilding multi tenancy enterprise applications - quick
Building multi tenancy enterprise applications - quick
 
Connecting Spring Apps to Distributed SQL Clusters Running in Kubernetes
Connecting Spring Apps to Distributed SQL Clusters Running in KubernetesConnecting Spring Apps to Distributed SQL Clusters Running in Kubernetes
Connecting Spring Apps to Distributed SQL Clusters Running in Kubernetes
 
Resume_RECENT
Resume_RECENTResume_RECENT
Resume_RECENT
 
Google Web Toolkit Introduction - eXo Platform SEA
Google Web Toolkit Introduction - eXo Platform SEAGoogle Web Toolkit Introduction - eXo Platform SEA
Google Web Toolkit Introduction - eXo Platform SEA
 
Challenges in enterprise mobility development 2
Challenges in enterprise mobility development 2Challenges in enterprise mobility development 2
Challenges in enterprise mobility development 2
 
PKS Networking with NSX-T: You Focus on your App, We'll Take Care of the Rest!
PKS Networking with NSX-T: You Focus on your App, We'll Take Care of the Rest!PKS Networking with NSX-T: You Focus on your App, We'll Take Care of the Rest!
PKS Networking with NSX-T: You Focus on your App, We'll Take Care of the Rest!
 
Powerup & GCP | Workshop on Google Kubernetes Engine
Powerup & GCP | Workshop on Google Kubernetes EnginePowerup & GCP | Workshop on Google Kubernetes Engine
Powerup & GCP | Workshop on Google Kubernetes Engine
 
Ibm test & development cloud + rational service delivery services platform
Ibm test & development cloud + rational service delivery services platformIbm test & development cloud + rational service delivery services platform
Ibm test & development cloud + rational service delivery services platform
 
Developing TouchActive with GAE and GWT - Google DevFest Barcelona 2012
Developing TouchActive with GAE and GWT - Google DevFest Barcelona 2012Developing TouchActive with GAE and GWT - Google DevFest Barcelona 2012
Developing TouchActive with GAE and GWT - Google DevFest Barcelona 2012
 
Google Dev Fest Presentation
Google Dev Fest PresentationGoogle Dev Fest Presentation
Google Dev Fest Presentation
 
Google DevFest 2012 Presentation
Google DevFest 2012 PresentationGoogle DevFest 2012 Presentation
Google DevFest 2012 Presentation
 
The Reality of DIY Kubernetes vs. PKS
The Reality of DIY Kubernetes vs. PKSThe Reality of DIY Kubernetes vs. PKS
The Reality of DIY Kubernetes vs. PKS
 
An introduction to IBM BlueMix
An introduction to IBM BlueMixAn introduction to IBM BlueMix
An introduction to IBM BlueMix
 
Kubernetes and Windows: At Scale with Enterprise PKS
Kubernetes and Windows: At Scale with Enterprise PKSKubernetes and Windows: At Scale with Enterprise PKS
Kubernetes and Windows: At Scale with Enterprise PKS
 
Bluemix presentation IBM Cloud Briefing in San Jose
Bluemix presentation IBM Cloud Briefing in San JoseBluemix presentation IBM Cloud Briefing in San Jose
Bluemix presentation IBM Cloud Briefing in San Jose
 
Grails & the World of Tomorrow
Grails & the World of TomorrowGrails & the World of Tomorrow
Grails & the World of Tomorrow
 
Spring Cloud on Kubernetes
Spring Cloud on KubernetesSpring Cloud on Kubernetes
Spring Cloud on Kubernetes
 
QlikView licensing and pricing guidelines 2012
QlikView licensing and pricing guidelines 2012QlikView licensing and pricing guidelines 2012
QlikView licensing and pricing guidelines 2012
 

Viewers also liked

Citrix Synergy 2014 - Syn232 Building a Cloud Architecture and Self- Service ...
Citrix Synergy 2014 - Syn232 Building a Cloud Architecture and Self- Service ...Citrix Synergy 2014 - Syn232 Building a Cloud Architecture and Self- Service ...
Citrix Synergy 2014 - Syn232 Building a Cloud Architecture and Self- Service ...
Citrix
 
OPEN_GROUP_HYBRID_CLOUD_CASE_MGMT2 - Final
OPEN_GROUP_HYBRID_CLOUD_CASE_MGMT2 - FinalOPEN_GROUP_HYBRID_CLOUD_CASE_MGMT2 - Final
OPEN_GROUP_HYBRID_CLOUD_CASE_MGMT2 - Final
mdesai005
 
Cloud Service Architecture - Overcoming HIPAA Challenges - Click Software
Cloud Service Architecture  - Overcoming HIPAA Challenges - Click SoftwareCloud Service Architecture  - Overcoming HIPAA Challenges - Click Software
Cloud Service Architecture - Overcoming HIPAA Challenges - Click Software
Israel AWS User Group
 
Cloud foundry architecture and deep dive
Cloud foundry architecture and deep diveCloud foundry architecture and deep dive
Cloud foundry architecture and deep dive
Animesh Singh
 

Viewers also liked (20)

UC For Business - Executive Desktop
UC For Business - Executive DesktopUC For Business - Executive Desktop
UC For Business - Executive Desktop
 
Overview of IBM Capabilities
Overview of IBM CapabilitiesOverview of IBM Capabilities
Overview of IBM Capabilities
 
Customer Profiling&Targeted Advertisement
Customer Profiling&Targeted AdvertisementCustomer Profiling&Targeted Advertisement
Customer Profiling&Targeted Advertisement
 
Citrix Synergy 2014 - Syn232 Building a Cloud Architecture and Self- Service ...
Citrix Synergy 2014 - Syn232 Building a Cloud Architecture and Self- Service ...Citrix Synergy 2014 - Syn232 Building a Cloud Architecture and Self- Service ...
Citrix Synergy 2014 - Syn232 Building a Cloud Architecture and Self- Service ...
 
Cloud service architecture
Cloud service architectureCloud service architecture
Cloud service architecture
 
IBM Watson-How it works
IBM Watson-How it worksIBM Watson-How it works
IBM Watson-How it works
 
Functional Capability and Resource Analysis Presentation
Functional Capability and Resource Analysis PresentationFunctional Capability and Resource Analysis Presentation
Functional Capability and Resource Analysis Presentation
 
SOFEA: Service Oriented Front End Architecture, Next Gen Web Architecture for...
SOFEA: Service Oriented Front End Architecture, Next Gen Web Architecture for...SOFEA: Service Oriented Front End Architecture, Next Gen Web Architecture for...
SOFEA: Service Oriented Front End Architecture, Next Gen Web Architecture for...
 
JUST EAT: Embracing DevOps
JUST EAT: Embracing DevOpsJUST EAT: Embracing DevOps
JUST EAT: Embracing DevOps
 
Cloud infrastructure and Cloud Services
Cloud infrastructure and Cloud ServicesCloud infrastructure and Cloud Services
Cloud infrastructure and Cloud Services
 
Everything about Cloud Computing
Everything about Cloud ComputingEverything about Cloud Computing
Everything about Cloud Computing
 
OPEN_GROUP_HYBRID_CLOUD_CASE_MGMT2 - Final
OPEN_GROUP_HYBRID_CLOUD_CASE_MGMT2 - FinalOPEN_GROUP_HYBRID_CLOUD_CASE_MGMT2 - Final
OPEN_GROUP_HYBRID_CLOUD_CASE_MGMT2 - Final
 
Distributed Design and Architecture of Cloud Foundry
Distributed Design and Architecture of Cloud FoundryDistributed Design and Architecture of Cloud Foundry
Distributed Design and Architecture of Cloud Foundry
 
TDC 2014 - Arquitetura front-end com AngularJS
TDC 2014 - Arquitetura front-end com AngularJSTDC 2014 - Arquitetura front-end com AngularJS
TDC 2014 - Arquitetura front-end com AngularJS
 
Cloud Service Architecture - Overcoming HIPAA Challenges - Click Software
Cloud Service Architecture  - Overcoming HIPAA Challenges - Click SoftwareCloud Service Architecture  - Overcoming HIPAA Challenges - Click Software
Cloud Service Architecture - Overcoming HIPAA Challenges - Click Software
 
AWS Summit London 2014 - JUST EAT - High Availability and Rapid Change
AWS Summit London 2014 - JUST EAT - High Availability and Rapid ChangeAWS Summit London 2014 - JUST EAT - High Availability and Rapid Change
AWS Summit London 2014 - JUST EAT - High Availability and Rapid Change
 
Cloud foundry architecture and deep dive
Cloud foundry architecture and deep diveCloud foundry architecture and deep dive
Cloud foundry architecture and deep dive
 
Overview of AWS Services for your Enterprise
Overview of AWS Services for your Enterprise Overview of AWS Services for your Enterprise
Overview of AWS Services for your Enterprise
 
Cloud Computing Model with Service Oriented Architecture
Cloud Computing Model with Service Oriented ArchitectureCloud Computing Model with Service Oriented Architecture
Cloud Computing Model with Service Oriented Architecture
 
Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)
Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)
Cloud Foundry Compared With Other PaaSes (Cloud Foundry Summit 2014)
 

Similar to Modern Web Cloud Architecture based on Google Technologies

Keynote Client Connectivity And The Cloud
Keynote Client Connectivity And The CloudKeynote Client Connectivity And The Cloud
Keynote Client Connectivity And The Cloud
GoogleTecTalks
 
Mandy Waite, Warszawa marzec 2013
Mandy Waite, Warszawa marzec 2013Mandy Waite, Warszawa marzec 2013
Mandy Waite, Warszawa marzec 2013
GeekGirlsCarrots
 
Javaedge 2010-cschalk
Javaedge 2010-cschalkJavaedge 2010-cschalk
Javaedge 2010-cschalk
Chris Schalk
 
N01 cloud computing_and_gae
N01 cloud computing_and_gaeN01 cloud computing_and_gae
N01 cloud computing_and_gae
Sun-Jin Jang
 

Similar to Modern Web Cloud Architecture based on Google Technologies (20)

GWT + Gears : The browser is the platform
GWT + Gears : The browser is the platformGWT + Gears : The browser is the platform
GWT + Gears : The browser is the platform
 
What's new in App Engine and intro to App Engine for Business
What's new in App Engine and intro to App Engine for BusinessWhat's new in App Engine and intro to App Engine for Business
What's new in App Engine and intro to App Engine for Business
 
Keynote Client Connectivity And The Cloud
Keynote Client Connectivity And The CloudKeynote Client Connectivity And The Cloud
Keynote Client Connectivity And The Cloud
 
MyEclipse G IDE, Google Cloud
MyEclipse G IDE, Google CloudMyEclipse G IDE, Google Cloud
MyEclipse G IDE, Google Cloud
 
Mandy Waite, Warszawa marzec 2013
Mandy Waite, Warszawa marzec 2013Mandy Waite, Warszawa marzec 2013
Mandy Waite, Warszawa marzec 2013
 
Keepler | What's next on Google Cloud?
Keepler | What's next on Google Cloud? Keepler | What's next on Google Cloud?
Keepler | What's next on Google Cloud?
 
Introduction to Google's Cloud Technologies
Introduction to Google's Cloud TechnologiesIntroduction to Google's Cloud Technologies
Introduction to Google's Cloud Technologies
 
Cloud platform overview for camping
Cloud platform overview for campingCloud platform overview for camping
Cloud platform overview for camping
 
Javaedge 2010-cschalk
Javaedge 2010-cschalkJavaedge 2010-cschalk
Javaedge 2010-cschalk
 
A fresh look at Google’s Cloud by Mandy Waite
A fresh look at Google’s Cloud by Mandy Waite A fresh look at Google’s Cloud by Mandy Waite
A fresh look at Google’s Cloud by Mandy Waite
 
Day1 before getting_started
Day1 before getting_startedDay1 before getting_started
Day1 before getting_started
 
Windows Azure For Architects
Windows Azure For ArchitectsWindows Azure For Architects
Windows Azure For Architects
 
An Introduction to Eclipse Kura - Eclipse Day Florence 2014
An Introduction to Eclipse Kura - Eclipse Day Florence 2014An Introduction to Eclipse Kura - Eclipse Day Florence 2014
An Introduction to Eclipse Kura - Eclipse Day Florence 2014
 
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
 
Build Smart Service on GCP - Google DevFest 2018 Taiwan
Build Smart Service on GCP - Google DevFest 2018 TaiwanBuild Smart Service on GCP - Google DevFest 2018 Taiwan
Build Smart Service on GCP - Google DevFest 2018 Taiwan
 
Latest trends in information technology
Latest trends in information technologyLatest trends in information technology
Latest trends in information technology
 
gopaddle-meetup
gopaddle-meetupgopaddle-meetup
gopaddle-meetup
 
N01 cloud computing_and_gae
N01 cloud computing_and_gaeN01 cloud computing_and_gae
N01 cloud computing_and_gae
 
GWT Introduction for Eclipse Day
GWT Introduction for Eclipse Day GWT Introduction for Eclipse Day
GWT Introduction for Eclipse Day
 
Introduction to Google Cloud Platform Technologies
Introduction to Google Cloud Platform TechnologiesIntroduction to Google Cloud Platform Technologies
Introduction to Google Cloud Platform Technologies
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

Modern Web Cloud Architecture based on Google Technologies

  • 1. Modern Cloud Web Architecture based on Google Technologies Michael Ludwig
  • 2. Outline 1. Example Scenario 2. Involved Technologies 3. Architecture 4. Advantages of the Technology stack
  • 3. Outline 1. Example Scenario 2. Involved Technologies 3. Architecture 4. Advantages of the Technology stack
  • 4. We want to develop an application for … Movie Collection Management
  • 5. Should have … Multiple device support
  • 6. Should have … Synchronization  Central Data Management
  • 7. Should have … Synchronization  Maybe Push Notifications?
  • 10. Should have … Scaleabilty
  • 12. Goal Extend with Cloud functionality
  • 13. Development principle Avoid boilerplate code
  • 14. Outline 1. Example Scenario 2. Involved Technologies 3. Architecture 4. Advantages of the Technology stack
  • 15. Technologies Client Native Android devices (smartphones, tablets) Dalvik Virtual Machine Java Code
  • 16. Technologies Client PC-Browser / Mobile Browser (iPhone, Tablet) Browser-Engine (HTML,CSS,JavaScript) Google Web Toolkit Java code
  • 17. Technologies Server Google Cloud Google App Engine (like) Application Server Java code
  • 18. 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
  • 19. 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
  • 20. Push notifications (Browser) • Channel-API – COMET-like protocol – Persistent connection to client – Could be replaced by WebSockets API (HTML5) in the future
  • 21. Authentification • Google account – Supported by Google App Engine – Automatically integrated in Android – Very easy to implement – No extra user accounts needed – Needed for C2DM
  • 22. 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
  • 23. 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)
  • 24. Outline 1. Example Scenario 2. Involved Technologies 3. Architecture 4. Advantages of the Technology stack
  • 25. Google Cloud Google Datastore Objectify C2DM Server Application Server (GAE) Guice Channel API Push notifications RequestFactory Push notifications JSON JSON Android Client Web Client (GWT) RoboGuice Gin
  • 26. Outline 1. Example Scenario 2. Involved Technologies 3. Architecture 4. Advantages of the Technology stack
  • 27. Advantages Write all code in Java
  • 28. Advantages Shared code
  • 29. Advantages Live Debugging Server and Client
  • 30. Advantages Easy development for many platforms
  • 31. Advantages Entity and proxy validation
  • 32. Advantages Test-driven development possible
  • 33. Advantages No Impedance Mismatch
  • 34. To conclude … Faster development through saving a lot of boilerplate
  • 35. 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)
  • 36. Questions? • Further Information: ludwigm@in.tum.de • Presentation link: http://bit.ly/ML-IS-Sem
  • 38. DI demonstration Real data Real data Test data RichMovieInfoWidget TabletMovieInfoWidget TestMovieInfoWidget Interface IRichMovieInfo
  • 39. Request factory proxies Interface Client Server MovieEntryProxy MovieEntry
  • 40. Request factory services Interface Client Server MovieEntryRequest MovieEntryDao
  • 42. Outlook • GWT advantages – MVP Framework • Places concept • Activities Concept • Suitability of Guice – Internationalization-Support – Etc. • Guice advantages – Scope Management – Custom Providers. – Etc.