Your SlideShare is downloading. ×
Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure
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

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

1,641
views

Published on

In the modern web, the user rules. Nearly every successful web app has to worry about scaling to an exponentially growing user base and giving those users multiple ways of interacting with their data. …

In the modern web, the user rules. Nearly every successful web app has to worry about scaling to an exponentially growing user base and giving those users multiple ways of interacting with their data. This talk will provide an overview of two technologies that aim to make web development and data portability easier: Google App Engine and the Google Data APIs.

This talk was presented by Pamela Fox, who works on the Google Developer Relations team as the Maps API Support Engineer.

Published in: Technology, News & Politics

2 Comments
3 Likes
Statistics
Notes
  • Try http://anhostinghost.blogspot.com/ for a good hosting
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Excellent ppt
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
1,641
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
53
Comments
2
Likes
3
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. Living In The Cloud
      • Hosting Data & Apps Using The Google Infrastructure
    • 2. Introductions
      • Pamela Fox
      • USC
      • Google
      • MS/BS CS
    • 3. Introductions http://www.wordle.net/gallery/wrdl/710650/fkedupmonkey_tags
    • 4. The Cloud!
    • 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
    • 9. Solution: App Engine
    • 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.
    • 13. App Engine Architecture code data
    • 14. Non-Scalable Architecture code/data
    • 15. Python
    • 16. Data Store
    • 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)
    • 18. Memcache
    • 19. Users @gmail.com @myappsdomain.com
    • 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
    • 24. Solution: Google data APIs
    • 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
    • 39. Case Study: CalGoo
    • 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
    • 46. Demo
      • Google Data CRUD
    • 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
    • 48. Demo
      • Youtube Searcher
    • 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
    • 54. Questions?
    • 55. Questions? Pamela Fox [email_address] @pamelafox More Info http://code.google.com ↶

    ×