Living In The Cloud Hosting Data & Apps Using The Google Infrastructure
Introductions Pamela Fox USC Google MS/BS CS
Introductions http://www.wordle.net/gallery/wrdl/710650/fkedupmonkey_tags
The Cloud!
Tonight’s Agenda Google Data APIs App Engine
Before the Cloud: Web Apps
After the Cloud: Web Apps
Viral Spread Simultaneous Edits = Scaling Nightmare Mo’ Users, Mo’ Problems
Solution: App Engine
What Is App Engine? Lets you run your  web  application on top of Google’s infrastructure. Servers Network Datastore Backups Pagers Scalable }
Why App Engine “ We wear pagers so you don’t have to.” —  Guido van Rossum
Simplicity App Engine is designed to be simple. Simple application configuration. No systems administration. No performance tuning. Automatic scaling.
App Engine Architecture code data
Non-Scalable Architecture code/data
Python
Data Store
Data Store db.GqlQuery(&quot;SELECT * FROM Shout &quot; &quot;WHERE who >= 'b '  AND who <  '   c  '   &quot; &quot;ORDER BY when DESC&quot;).fetch(100) query = Shout.all() query.order('-date') query.filter('who >=', 'b') query.filter('who <', ‘c') shouts = query.fetch(100)
Memcache
Users @gmail.com @myappsdomain.com
Demo Google App Engine
Before the Cloud: User Apps
Before the Cloud: User Apps
Users demand ownership of their content. Other sites want to access that content.  Damn Needy Users
Solution: Google data APIs
How Do You Make Things Accessible? A pplication P rogramming I nterface ( )
APIs An  application programming interface (API)  is a set of  functions, procedures, methods  or  classes  that an  operating system ,  library  or  service  provides to support requests made by  computer programs . Source: Wikipedia C/C++ Header File
APIs RPC || REST * SOAP
Remote Procedure Calls fooInstance->addNumbers(2, 3); <?xml version=&quot;1.0&quot;?><methodCall>  <methodName>Foo.addNumbers</methodName>  <params>  <param>  <value><int>2</int></value> <value><int>3</int></value>  </param>  </params></methodCall> fooInstance.addNumbers(2, 3); PHP XML (Network) C++
REST [Fielding 2000] Re presentational S tate T ransfer ( )
REST Fundamentals of REST: Application state and functionality is abstracted into discrete  resources .
REST Fundamentals of REST: Resources are accessible via  URLs . /blog/posts/1234
REST Fundamentals of REST: Resources share a  uniform interface  for  transferring state . HTTP:// } GET POST PUT DELETE
RSS/ATOM Feed { Entries Example ATOM feed.
ATOMPub Feed { Entries
Google data APIs Protocol Feed Query { Entries
The Google Data Protocol REST Google Data Protocol RSS 2.0 Architecture Syndication Updates AtomPub Atom
The Google Data Protocol RSS 2.0 Atom(Pub) Google Data Syndication Format ✓ ✓ ✓ Queries ✓ Updates ✓ ✓ Optimistic Concurrency ✓ Authentication ✓
The Google Data Protocol Over 15 APIs, 1 Protocol Many Uses
Case Study: CalGoo
The Google Data Protocol GET /myFeed 200 OK <?xml version=&quot;1.0&quot;?> <feed xmlns=&quot; http://www.w3.org/2005/Atom &quot;> <title>Foo</title> <updated>2006-01-23T16:25:00-08:00</updated> <id> http://www.example.com/myFeed </id> <author> <name>Jo March</name> </author> <link href=&quot;/myFeed&quot; rel=&quot;self&quot;/> </feed> Requesting a feed or resource
The Google Data Protocol POST /myFeed <?xml version=&quot;1.0&quot;?> <entry xmlns=&quot; http://www.w3.org/2005/Atom &quot;> <author> <name>Elizabeth Bennet</name>  <email> [email_address] </email>  </author> <title type=&quot;text&quot;>Entry 1</title> <content type=&quot;text&quot;>This is my entry</content> </entry> Creating a new resource
The Google Data Protocol 201 CREATED <?xml version=&quot;1.0&quot;?> <entry xmlns=&quot; http://www.w3.org/2005/Atom &quot;> <id> http://www.example.com/id/1 </id> <link rel=&quot;edit&quot; href=&quot; http://example.com/myFeed/1/1/ &quot;/> <updated>2006-01-23T16:26:03-08:00</updated> <author> <name>Elizabeth Bennet</name>  <email> [email_address] </email>  </author> <title type=&quot;text&quot;>Entry 1</title> <content type=&quot;text&quot;>This is my entry</content> </entry> Creating a new resource
The Google Data Protocol PUT /myFeed/1/1/ <?xml version=&quot;1.0&quot;?> <entry xmlns=&quot; http://www.w3.org/2005/Atom &quot;> <id> http://www.example.com/id/1 </id> <link rel=&quot;edit&quot; href=&quot; http://example.com/myFeed/1/1/ &quot;/> <updated>2006-01-23T16:28:05-08:00</updated> <author> <name>Elizabeth Bennet</name>  <email> [email_address] </email>  </author> <title type=&quot;text&quot;>Entry 1</title> <content type=&quot;text&quot;>This is my first entry.</content> </entry> Updating an entry
The Google Data Protocol 200 OK <?xml version=&quot;1.0&quot;?> <entry xmlns=&quot; http://www.w3.org/2005/Atom &quot;> <id> http://www.example.com/id/1 </id> <link rel=&quot;edit&quot; href=&quot; http://example.com/myFeed/1/2/ &quot;/> <updated>2006-01-23T16:28:05-08:00</updated> <author> <name>Elizabeth Bennet</name>  <email> [email_address] </email>  </author> <title type=&quot;text&quot;>Entry 1</title> <content type=&quot;text&quot;>This is my first entry.</content> </entry> Updating an entry
The Google Data Protocol DELETE /myFeed/1/2/ 200 OK Updating an entry
Demo Google Data CRUD
The Google Data Protocol GET /myFeed?q=This 200 OK <?xml version=&quot;1.0&quot;?> <feed xmlns=&quot; http://www.w3.org/2005/Atom &quot;> <title>Foo</title> <updated>2006-01-23T16:26:03-08:00</updated> <id> http://www.example.com/myFeed </id> <link href=&quot;/myFeed&quot; rel=&quot;self&quot;/> <entry> <id> http://www.example.com/id/1 </id> <link rel=&quot;edit&quot; href=&quot; http://example.com/myFeed/1/1/ &quot;/> <updated>2006-01-23T16:26:03-08:00</updated> <title type=&quot;text&quot;>Entry 1</title> <content type=&quot;text&quot;>This is my entry</content> </entry> </feed> Searching for a resource
Demo Youtube Searcher
JSON and RSS Other formats are also supported: ?alt=json ?alt=json-in-script ?alt=kml ?alt=rss http://code.google.com/apis/gdata/json.html
Client Libraries PHP .NET Java JavaScript Objective-C Python + Community Contributed
Demo Google Data Sample Applications
My Secret Motivation For Giving This Talk Google Data APIs ♥ App Engine
Demo Google Data APIs + App Engine
Questions?
Questions? Pamela Fox [email_address] @pamelafox More Info http://code.google.com ↶

More Related Content

PPT
Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure
PPT
URLs and Domains (SMX East 2008)
PPTX
SearchLove London 2016 | Dom Woodman | How to Get Insight From Your Logs
PPT
Using the RSS Platform on Windows: Syndication Goes Mainstream
PPTX
How to build simple web apps to automate your SEO tasks - BrightonSEO Spring ...
PPTX
.htaccess for SEOs - A presentation by Roxana Stingu
PPT
Integrating RSS Into Your Web Site - CIL2008
PPTX
Android Connecting to Internet
Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure
URLs and Domains (SMX East 2008)
SearchLove London 2016 | Dom Woodman | How to Get Insight From Your Logs
Using the RSS Platform on Windows: Syndication Goes Mainstream
How to build simple web apps to automate your SEO tasks - BrightonSEO Spring ...
.htaccess for SEOs - A presentation by Roxana Stingu
Integrating RSS Into Your Web Site - CIL2008
Android Connecting to Internet

What's hot (14)

PPTX
The internet for SEOs by Roxana Stingu
PDF
Dangerous Google searching for secrets
PPT
Pubcon Vegas 2017 You're Going To Screw Up International SEO - Patrick Stox
PPTX
SMX Advanced 2018 SEO for Javascript Frameworks by Patrick Stox
PDF
Alexa連携デバイスクラウドを構成するAWS ソリューション
PPTX
Big Data Week 2013 Flow
PPTX
Everyone Screws Up HTTPS
PPTX
TechSEO Boost 2017: SEO Best Practices for JavaScript T-Based Websites
PPTX
Everything That Can Go Wrong Will Go Wrong - Tech SEO Boost 2017 - Patrick Stox
PPTX
Google's Top 3 Ranking Factors - Content, Links, and RankBrain - Raleigh SEO ...
PPTX
Better Safe Than Sorry with HTTPS - SMX East 2016 - Patrick Stox
PDF
Hey Googlebot, did you cache that ?
PPTX
1-04: HTML Elements
PDF
FoundConf 2018 Signals Speak - Alexis Sanders
The internet for SEOs by Roxana Stingu
Dangerous Google searching for secrets
Pubcon Vegas 2017 You're Going To Screw Up International SEO - Patrick Stox
SMX Advanced 2018 SEO for Javascript Frameworks by Patrick Stox
Alexa連携デバイスクラウドを構成するAWS ソリューション
Big Data Week 2013 Flow
Everyone Screws Up HTTPS
TechSEO Boost 2017: SEO Best Practices for JavaScript T-Based Websites
Everything That Can Go Wrong Will Go Wrong - Tech SEO Boost 2017 - Patrick Stox
Google's Top 3 Ranking Factors - Content, Links, and RankBrain - Raleigh SEO ...
Better Safe Than Sorry with HTTPS - SMX East 2016 - Patrick Stox
Hey Googlebot, did you cache that ?
1-04: HTML Elements
FoundConf 2018 Signals Speak - Alexis Sanders
Ad

Viewers also liked (6)

PPT
Why Use Google Docs?
PDF
Office Tools! Transform! MS Office to Google Pt 1
PPTX
Doodle4GoogleProject2013
PPT
Google Search Engine
PPTX
How google search engine work
PPT
How Google Search Engine Works
Why Use Google Docs?
Office Tools! Transform! MS Office to Google Pt 1
Doodle4GoogleProject2013
Google Search Engine
How google search engine work
How Google Search Engine Works
Ad

Similar to Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure (20)

PPT
Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure
PPT
Scalable Reliable Secure REST
PDF
Exploring Google APIs with Python
PPT
Google Cluster Innards
PPT
Web Topics
PDF
Exploring Google APIs with Python
PPT
RESTful SOA - 中科院暑期讲座
PDF
Paul Fremantle Restful SOA Registry
PPT
The Rest Architectural Style
PDF
Las maravillas de Google App Engine
PDF
REST Introduction (PHP London)
PDF
Powerful Google developer tools for immediate impact! (2023-24 A)
ZIP
The Power of Open Data
PDF
The Wide World Of Google Developer Technologies (STLIC 02-10)
PPT
Google Opening up to Developers - From 2 to 55 APIs in 3 years
PPT
Introduction to Google APIs
PPTX
A Deep Dive into RESTful API Design Part 2
PDF
Learn REST in 18 Slides
PDF
Cwinters Intro To Rest And JerREST and Jersey Introductionsey
PPT
Mashups & APIs
Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure
Scalable Reliable Secure REST
Exploring Google APIs with Python
Google Cluster Innards
Web Topics
Exploring Google APIs with Python
RESTful SOA - 中科院暑期讲座
Paul Fremantle Restful SOA Registry
The Rest Architectural Style
Las maravillas de Google App Engine
REST Introduction (PHP London)
Powerful Google developer tools for immediate impact! (2023-24 A)
The Power of Open Data
The Wide World Of Google Developer Technologies (STLIC 02-10)
Google Opening up to Developers - From 2 to 55 APIs in 3 years
Introduction to Google APIs
A Deep Dive into RESTful API Design Part 2
Learn REST in 18 Slides
Cwinters Intro To Rest And JerREST and Jersey Introductionsey
Mashups & APIs

Recently uploaded (20)

PPTX
Module 1 Introduction to Web Programming .pptx
PDF
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
PDF
“A New Era of 3D Sensing: Transforming Industries and Creating Opportunities,...
PPTX
Internet of Everything -Basic concepts details
PDF
MENA-ECEONOMIC-CONTEXT-VC MENA-ECEONOMIC
PDF
The-Future-of-Automotive-Quality-is-Here-AI-Driven-Engineering.pdf
PPTX
AI-driven Assurance Across Your End-to-end Network With ThousandEyes
PDF
Dell Pro Micro: Speed customer interactions, patient processing, and learning...
PDF
Enhancing plagiarism detection using data pre-processing and machine learning...
PDF
Convolutional neural network based encoder-decoder for efficient real-time ob...
PDF
Lung cancer patients survival prediction using outlier detection and optimize...
DOCX
Basics of Cloud Computing - Cloud Ecosystem
PDF
Planning-an-Audit-A-How-To-Guide-Checklist-WP.pdf
PDF
Statistics on Ai - sourced from AIPRM.pdf
PDF
CXOs-Are-you-still-doing-manual-DevOps-in-the-age-of-AI.pdf
PDF
Early detection and classification of bone marrow changes in lumbar vertebrae...
PPTX
SGT Report The Beast Plan and Cyberphysical Systems of Control
PDF
sbt 2.0: go big (Scala Days 2025 edition)
PDF
LMS bot: enhanced learning management systems for improved student learning e...
PDF
Data Virtualization in Action: Scaling APIs and Apps with FME
Module 1 Introduction to Web Programming .pptx
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
“A New Era of 3D Sensing: Transforming Industries and Creating Opportunities,...
Internet of Everything -Basic concepts details
MENA-ECEONOMIC-CONTEXT-VC MENA-ECEONOMIC
The-Future-of-Automotive-Quality-is-Here-AI-Driven-Engineering.pdf
AI-driven Assurance Across Your End-to-end Network With ThousandEyes
Dell Pro Micro: Speed customer interactions, patient processing, and learning...
Enhancing plagiarism detection using data pre-processing and machine learning...
Convolutional neural network based encoder-decoder for efficient real-time ob...
Lung cancer patients survival prediction using outlier detection and optimize...
Basics of Cloud Computing - Cloud Ecosystem
Planning-an-Audit-A-How-To-Guide-Checklist-WP.pdf
Statistics on Ai - sourced from AIPRM.pdf
CXOs-Are-you-still-doing-manual-DevOps-in-the-age-of-AI.pdf
Early detection and classification of bone marrow changes in lumbar vertebrae...
SGT Report The Beast Plan and Cyberphysical Systems of Control
sbt 2.0: go big (Scala Days 2025 edition)
LMS bot: enhanced learning management systems for improved student learning e...
Data Virtualization in Action: Scaling APIs and Apps with FME

Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure

  • 1. Living In The Cloud Hosting Data & Apps Using The Google Infrastructure
  • 2. Introductions Pamela Fox USC Google MS/BS CS
  • 5. Tonight’s Agenda Google Data APIs App Engine
  • 6. Before the Cloud: Web Apps
  • 7. After the Cloud: Web Apps
  • 8. Viral Spread Simultaneous Edits = Scaling Nightmare Mo’ Users, Mo’ Problems
  • 10. What Is App Engine? Lets you run your web application on top of Google’s infrastructure. Servers Network Datastore Backups Pagers Scalable }
  • 11. Why App Engine “ We wear pagers so you don’t have to.” — Guido van Rossum
  • 12. Simplicity App Engine is designed to be simple. Simple application configuration. No systems administration. No performance tuning. Automatic scaling.
  • 17. Data Store db.GqlQuery(&quot;SELECT * FROM Shout &quot; &quot;WHERE who >= 'b ' AND who < ' c ' &quot; &quot;ORDER BY when DESC&quot;).fetch(100) query = Shout.all() query.order('-date') query.filter('who >=', 'b') query.filter('who <', ‘c') shouts = query.fetch(100)
  • 20. Demo Google App Engine
  • 21. Before the Cloud: User Apps
  • 22. Before the Cloud: User Apps
  • 23. Users demand ownership of their content. Other sites want to access that content. Damn Needy Users
  • 25. How Do You Make Things Accessible? A pplication P rogramming I nterface ( )
  • 26. APIs An application programming interface (API) is a set of functions, procedures, methods or classes that an operating system , library or service provides to support requests made by computer programs . Source: Wikipedia C/C++ Header File
  • 27. APIs RPC || REST * SOAP
  • 28. Remote Procedure Calls fooInstance->addNumbers(2, 3); <?xml version=&quot;1.0&quot;?><methodCall> <methodName>Foo.addNumbers</methodName> <params> <param> <value><int>2</int></value> <value><int>3</int></value> </param> </params></methodCall> fooInstance.addNumbers(2, 3); PHP XML (Network) C++
  • 29. REST [Fielding 2000] Re presentational S tate T ransfer ( )
  • 30. REST Fundamentals of REST: Application state and functionality is abstracted into discrete resources .
  • 31. REST Fundamentals of REST: Resources are accessible via URLs . /blog/posts/1234
  • 32. REST Fundamentals of REST: Resources share a uniform interface for transferring state . HTTP:// } GET POST PUT DELETE
  • 33. RSS/ATOM Feed { Entries Example ATOM feed.
  • 34. ATOMPub Feed { Entries
  • 35. Google data APIs Protocol Feed Query { Entries
  • 36. The Google Data Protocol REST Google Data Protocol RSS 2.0 Architecture Syndication Updates AtomPub Atom
  • 37. The Google Data Protocol RSS 2.0 Atom(Pub) Google Data Syndication Format ✓ ✓ ✓ Queries ✓ Updates ✓ ✓ Optimistic Concurrency ✓ Authentication ✓
  • 38. The Google Data Protocol Over 15 APIs, 1 Protocol Many Uses
  • 40. The Google Data Protocol GET /myFeed 200 OK <?xml version=&quot;1.0&quot;?> <feed xmlns=&quot; http://www.w3.org/2005/Atom &quot;> <title>Foo</title> <updated>2006-01-23T16:25:00-08:00</updated> <id> http://www.example.com/myFeed </id> <author> <name>Jo March</name> </author> <link href=&quot;/myFeed&quot; rel=&quot;self&quot;/> </feed> Requesting a feed or resource
  • 41. The Google Data Protocol POST /myFeed <?xml version=&quot;1.0&quot;?> <entry xmlns=&quot; http://www.w3.org/2005/Atom &quot;> <author> <name>Elizabeth Bennet</name> <email> [email_address] </email> </author> <title type=&quot;text&quot;>Entry 1</title> <content type=&quot;text&quot;>This is my entry</content> </entry> Creating a new resource
  • 42. The Google Data Protocol 201 CREATED <?xml version=&quot;1.0&quot;?> <entry xmlns=&quot; http://www.w3.org/2005/Atom &quot;> <id> http://www.example.com/id/1 </id> <link rel=&quot;edit&quot; href=&quot; http://example.com/myFeed/1/1/ &quot;/> <updated>2006-01-23T16:26:03-08:00</updated> <author> <name>Elizabeth Bennet</name> <email> [email_address] </email> </author> <title type=&quot;text&quot;>Entry 1</title> <content type=&quot;text&quot;>This is my entry</content> </entry> Creating a new resource
  • 43. The Google Data Protocol PUT /myFeed/1/1/ <?xml version=&quot;1.0&quot;?> <entry xmlns=&quot; http://www.w3.org/2005/Atom &quot;> <id> http://www.example.com/id/1 </id> <link rel=&quot;edit&quot; href=&quot; http://example.com/myFeed/1/1/ &quot;/> <updated>2006-01-23T16:28:05-08:00</updated> <author> <name>Elizabeth Bennet</name> <email> [email_address] </email> </author> <title type=&quot;text&quot;>Entry 1</title> <content type=&quot;text&quot;>This is my first entry.</content> </entry> Updating an entry
  • 44. The Google Data Protocol 200 OK <?xml version=&quot;1.0&quot;?> <entry xmlns=&quot; http://www.w3.org/2005/Atom &quot;> <id> http://www.example.com/id/1 </id> <link rel=&quot;edit&quot; href=&quot; http://example.com/myFeed/1/2/ &quot;/> <updated>2006-01-23T16:28:05-08:00</updated> <author> <name>Elizabeth Bennet</name> <email> [email_address] </email> </author> <title type=&quot;text&quot;>Entry 1</title> <content type=&quot;text&quot;>This is my first entry.</content> </entry> Updating an entry
  • 45. The Google Data Protocol DELETE /myFeed/1/2/ 200 OK Updating an entry
  • 47. The Google Data Protocol GET /myFeed?q=This 200 OK <?xml version=&quot;1.0&quot;?> <feed xmlns=&quot; http://www.w3.org/2005/Atom &quot;> <title>Foo</title> <updated>2006-01-23T16:26:03-08:00</updated> <id> http://www.example.com/myFeed </id> <link href=&quot;/myFeed&quot; rel=&quot;self&quot;/> <entry> <id> http://www.example.com/id/1 </id> <link rel=&quot;edit&quot; href=&quot; http://example.com/myFeed/1/1/ &quot;/> <updated>2006-01-23T16:26:03-08:00</updated> <title type=&quot;text&quot;>Entry 1</title> <content type=&quot;text&quot;>This is my entry</content> </entry> </feed> Searching for a resource
  • 49. JSON and RSS Other formats are also supported: ?alt=json ?alt=json-in-script ?alt=kml ?alt=rss http://code.google.com/apis/gdata/json.html
  • 50. Client Libraries PHP .NET Java JavaScript Objective-C Python + Community Contributed
  • 51. Demo Google Data Sample Applications
  • 52. My Secret Motivation For Giving This Talk Google Data APIs ♥ App Engine
  • 53. Demo Google Data APIs + App Engine
  • 55. Questions? Pamela Fox [email_address] @pamelafox More Info http://code.google.com ↶