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.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite

    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
      http://www.wordle.net/gallery/wrdl/710650/fkedupmonkey_tags
    3. The Cloud!
    4. Tonight’s Agenda
      • Google Data APIs
      App Engine
    5. Before the Cloud: Web Apps
    6. After the Cloud: Web Apps
      • Viral Spread + User Edits = Scaling Nightmare
      Mo’ Users, Mo’ Problems
    7. Old Architecture code/data
    8. Old Architecture
    9. Old Architecture
    10. Old Architecture
    11. Solution: App Engine
    12. What Is App Engine?
      • Lets you run your web application on top of Google’s infrastructure.
      • Servers
      • Network
      • Datastore
      • Backups
      • Pagers
      “ We wear pagers so you don’t have to.” — Guido van Rossum Scalable }
    13. App Engine Architecture code data
    14. Simple, Automatic Scaling
    15. App Engine Components code data
    16. Python
    17. Data Store
    18. 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)
    19. Memcache
    20. Users @gmail.com @myappsdomain.com
    21. Demo
      • Google App Engine
    22. Before the Cloud: User Apps
    23. After the Cloud: User Apps
      • 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?
      • 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
      A pplication P rogramming I nterface ( )
    26. APIs
      • RPC || REST
      • * SOAP
    27. 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++
    28. REST [Fielding 2000] Re presentational S tate T ransfer ( )
    29. REST
      • Fundamentals of REST:
      Application state and functionality is abstracted into discrete resources .
    30. REST
      • Fundamentals of REST:
      Resources are accessible via URLs . /blog/posts/1234
    31. REST
      • Fundamentals of REST:
      Resources share a uniform interface for transferring state . HTTP:// } GET POST PUT DELETE
    32. RSS/ATOM Feed { Entries Example RSS feed.
    33. ATOMPub Feed { Entries GET POST PUT DELETE
    34. Google data APIs Protocol Feed Query { Entries GET POST PUT DELETE
    35. The Google Data Protocol REST Google Data Protocol RSS 2.0 Architecture Syndication Updates AtomPub Atom
    36. The Google Data Protocol RSS 2.0 Atom(Pub) Google Data Syndication Format ✓ ✓ ✓ Queries ✓ Updates ✓ ✓ Optimistic Concurrency ✓ Authentication ✓
    37. The Google Data Protocol Over 15 APIs, 1 Protocol Many Uses
    38. Case Study: CalGoo
    39. 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
    40. 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
    41. 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
    42. 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
    43. 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
    44. The Google Data Protocol
      • DELETE /myFeed/1/2/
      • 200 OK
      Updating an entry
    45. Demo
      • Google Data CRUD
    46. 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
    47. Demo
      • Youtube Searcher
    48. JSON and RSS
      • Other formats are also supported:
      ?alt=json ?alt=json-in-script ?alt=kml ?alt=rss
    49. Client Libraries
      • PHP
      .NET Java JavaScript Objective-C Python + Community Contributed
    50. Demo
      • Google Data Sample Applications
    51. My Secret Motivation For Giving This Talk
      • Google Data APIs
      • App Engine
    52. Demo
      • Google Data APIs + App Engine
    53. Conclusion
      • Google Data APIs
      App Engine Scalable Architecture (AtomPub) APIs
    54. Questions? Pamela Fox [email_address] @pamelafox More Info http://code.google.com ↶

    + wuzziwugwuzziwug, 7 months ago

    custom

    939 views, 1 favs, 0 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 939
      • 939 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 30
    Most viewed embeds

    more

    All embeds

    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