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

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

1 comments

Comments 1 - 1 of 1 previous next Post a comment

Post a comment
Embed Video
Edit your comment Cancel

2 Favorites

Living in the Cloud: Hosting Data & Apps Using the Google Infrastructure - Presentation 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
    • Viral Spread
    • Simultaneous Edits
    • = Scaling Nightmare
    Mo’ Users, Mo’ Problems
  8. Solution: App Engine
  9. What Is App Engine?
    • Lets you run your web application on top of Google’s infrastructure.
    • Servers
    • Network
    • Datastore
    • Backups
    • Pagers
    Scalable }
  10. Why App Engine
    • “ We wear pagers so you don’t have to.”
    — Guido van Rossum
  11. Simplicity
    • App Engine is designed to be simple.
    Simple application configuration. No systems administration. No performance tuning. Automatic scaling.
  12. App Engine Architecture code data
  13. Non-Scalable Architecture code/data
  14. Python
  15. Data Store
  16. 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)
  17. Memcache
  18. Users @gmail.com @myappsdomain.com
  19. Demo
    • Google App Engine
  20. Before the Cloud: User Apps
  21. Before the Cloud: User Apps
    • Users demand ownership of their content.
    • Other sites want to access that content.
    Damn Needy Users
  22. Solution: Google data APIs
  23. How Do You Make Things Accessible? A pplication P rogramming I nterface ( )
  24. 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
  25. APIs
    • RPC || REST
    • * SOAP
  26. 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++
  27. REST [Fielding 2000] Re presentational S tate T ransfer ( )
  28. REST
    • Fundamentals of REST:
    Application state and functionality is abstracted into discrete resources .
  29. REST
    • Fundamentals of REST:
    Resources are accessible via URLs . /blog/posts/1234
  30. REST
    • Fundamentals of REST:
    Resources share a uniform interface for transferring state . HTTP:// } GET POST PUT DELETE
  31. RSS/ATOM Feed { Entries Example ATOM feed.
  32. ATOMPub Feed { Entries
  33. Google data APIs Protocol Feed Query { Entries
  34. The Google Data Protocol REST Google Data Protocol RSS 2.0 Architecture Syndication Updates AtomPub Atom
  35. The Google Data Protocol RSS 2.0 Atom(Pub) Google Data Syndication Format ✓ ✓ ✓ Queries ✓ Updates ✓ ✓ Optimistic Concurrency ✓ Authentication ✓
  36. The Google Data Protocol Over 15 APIs, 1 Protocol Many Uses
  37. Case Study: CalGoo
  38. 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
  39. 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
  40. 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
  41. 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
  42. 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
  43. The Google Data Protocol
    • DELETE /myFeed/1/2/
    • 200 OK
    Updating an entry
  44. Demo
    • Google Data CRUD
  45. 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
  46. Demo
    • Youtube Searcher
  47. 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
  48. Client Libraries
    • PHP
    .NET Java JavaScript Objective-C Python + Community Contributed
  49. Demo
    • Google Data Sample Applications
  50. My Secret Motivation For Giving This Talk
    • Google Data APIs
    • App Engine
  51. Demo
    • Google Data APIs + App Engine
  52. Questions?
  53. Questions? Pamela Fox [email_address] @pamelafox More Info http://code.google.com ↶

+ guest517f2fguest517f2f, 7 months ago

custom

776 views, 2 favs, 1 embeds more stats

In the modern web, the user rules. Nearly every suc more

More info about this document

© All Rights Reserved

Go to text version

  • Total Views 776
    • 775 on SlideShare
    • 1 from embeds
  • Comments 1
  • Favorites 2
  • Downloads 21
Most viewed embeds
  • 1 views on http://www.palimpalem.com

more

All embeds
  • 1 views on http://www.palimpalem.com

less

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

Cancel
File a copyright complaint
Having problems? Go to our helpdesk?

Categories