Your SlideShare is downloading. ×
Modern Web Cloud Architecture based on Google Technologies
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Modern Web Cloud Architecture based on Google Technologies

1,374
views

Published on

by Michael Ludwig

by Michael Ludwig

Published in: Technology, Business

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,374
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
33
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Modern Cloud Web Architecture based on Google Technologies Michael Ludwig
  • 2. Outline1. Example Scenario2. Involved Technologies3. Architecture4. Advantages of the Technology stack
  • 3. Outline1. Example Scenario2. Involved Technologies3. Architecture4. 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?
  • 8. Computer input
  • 9. Mobile input
  • 10. Should have … Scaleabilty
  • 11. Development base Lesari
  • 12. Goal Extend with Cloud functionality
  • 13. Development principle Avoid boilerplate code
  • 14. Outline1. Example Scenario2. Involved Technologies3. Architecture4. 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. Outline1. Example Scenario2. Involved Technologies3. Architecture4. 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. Outline1. Example Scenario2. Involved Technologies3. Architecture4. 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 Developers Dream Combination (Blog)
  • 36. Questions?• Further Information: ludwigm@in.tum.de• Presentation link: http://bit.ly/ML-IS-Sem
  • 37. Backup
  • 38. DI demonstration Real data Real data Test dataRichMovieInfoWidget TabletMovieInfoWidget TestMovieInfoWidget Interface IRichMovieInfo
  • 39. Request factory proxies Interface Client ServerMovieEntryProxy MovieEntry
  • 40. Request factory services Interface Client ServerMovieEntryRequest MovieEntryDao
  • 41. Request factory access
  • 42. Outlook• GWT advantages – MVP Framework • Places concept • Activities Concept • Suitability of Guice – Internationalization-Support – Etc.• Guice advantages – Scope Management – Custom Providers. – Etc.