OpenSocial
       a standard for the social web




Patrick Chanezon             9 september 2008
chanezon@google.com
Agenda

  OpenSocial introduction
  How to build OpenSocial applications
  Hosting social applications
  Social applicatio...
OpenSocial Introduction
Patrick Chanezon
Making the web better
 by making it social

What does social mean?
What does Social mean?




      Eliette what do you do with your friends?
This work by Eliette Chanezon is licensed under a Creative Commons Attribution-Share Alike 3.0 License
This work by Eliette Chanezon is licensed under a Creative Commons Attribution-Share Alike 3.0 License
This work by Eliette Chanezon is licensed under a Creative Commons Attribution-Share Alike 3.0 License
This work by Eliette Chanezon is licensed under a Creative Commons Attribution-Share Alike 3.0 License
This work by Eliette Chanezon is licensed under a Creative Commons Attribution-Share Alike 3.0 License
This work by Eliette Chanezon is licensed under a Creative Commons Attribution-Share Alike 3.0 License
Raoul: a social object for Charlotte (3 year old)
Jaiku’s Jyri Engeström's 5 rules for social
 networks: social objects
1. What is your object?
2. What are your verbs?
3. H...
How do we socialize objects
           online
without having to create yet
  another social network?
OpenSocial

A common API for social applications
     across multiple web sites
The Trouble with Developing Social Apps




                                 Which site do I build my app for?
Let’s work on that…




                      Using OpenSocial, I can build apps for
                      all of these si...
What’s offered by OpenSocial?


  Activities
     What are people up to on the web


  People/Profile Info
     Who do I k...
Today: 375 Million User Reach
Where is OpenSocial live today?


Live to Users:              Live Developer Sandboxes:
    MySpace                     iG...
OpenSocial “Containers”
What’s in OpenSocial?


  JavaScript API - Now

  REST Protocol - New

  Templates - Prototype in Shindig
OpenSocial’s JavaScript API


  OpenSocial JS API
  Gadget JS API
  Gadget XML schema

  OpenSocial v0.7 is live
  OpenSoc...
OpenSocial’s REST Protocol


  Access social data without JavaScript
  Works on 3rd party websites / phones / etc
  Uses O...
OpenSocial Templates


  Writing JavaScript is hard
  Writing templates is easy
  Templates also give
     Consistent UI a...
Design principles

Create a template language that is:

   Simple
      Easy markup for creating UI and binding data

   F...
Concepts:

 Markup
   A set of standard tags and behaviors that provide
   developers with a simple, declarative language ...
Example: os:Image

<os:Image key=quot;http://...quot;/>
Example: osTabs, os:ShowPerson

<os:Tabs name=quot;tabGroupquot;>
 <tab>
   <title>Tab 1</title>
   <body>This is the firs...
Example: Friends list (no templates)
Example: Friends list (with templates)
Template Status

 High-level specification complete:
    http://wiki.opensocial-templates.org

 Prototype implementation a...
OpenSocial is what you make it.


  OpenSocial is an open source project.
  The spec is controlled by the community.
  Any...
A note on compliance


  OpenSocial is designed for many sites

  Building an app:
     Technology
     Policy


  OpenSoc...
OpenSocial Compliance test in orkut
OpenSocial Compliance Matrix
     http://opensocial-compliance.appspot.com
Other comments


  Portable Contacts Alignment

  Caja for JavaScript security
A standard for everyone




   This work by Eliette Chanezon is licensed under a Creative Commons Attribution-Share Alike ...
How To Build OpenSocial
Applications
Owner and Viewer Relationship

                    Applications
              has                  views


    Owner      ...
Understanding the Gadget XML
                                                                       ModulePrefs define
   ...
Retrieve Friend Information
function getFriendData() {
  var req = opensocial.newDataRequest();
  req.add(req.newFetchPers...
Persisting Data
function populateMyAppData() {
                                                     Use a
var req = openso...
Fetching persisted data
function requestMyData() {                                   Use a
var req = opensocial.newDataReq...
Posting an Activity
function postActivity(text) {
                                           requestCreateActivity is
var ...
Resources For Application Developers
Specification
http://opensocial.org/
http://groups.google.com/group/opensocial-and-ga...
Hosting social apps
Patrick Chanezon
Hosting OpenSocial apps
 In addition to using the provided persistence API...
 Establish a quot;homequot; site where gadge...
Google AppEngine and OpenSocial
 Create an App Engine app as your backend!
     Use makeRequest() to call back to your App...
Social Apps monetization
Patrick Chanezon
OpenSocial Monetization
  Ads from Ad Networks
     AdSense, RightMedia
     BuddyPoke, Rate My Friend
  Brand/Private Lab...
Success Story: Buddy Poke




   #1 OpenSocial app on orkut
   8M installs for orkut, hi5, MySpace
   $1-2 CPM
   #1 App f...
Success Story: PhotoBuzz




 6M+ installs on hi5 and orkut
 CPM $1-3, especially good on orkut
 4M buzzes per day
 Small ...
Container specifics
Container Specific Extensions
MySpace
  photo albums
  videos

hi5
      status
      presence
      photo albums

Netlog
...
Your Profile
Seemless translation
Localisation is important!

   Translations are automatically injected


   Translation tool for Netlog translators
Monetization
What’s in it for you?



   Branding, co-branding, sponsorships


   100% revenue from vertical rectangle or
   skyscraper...
Credit Economy

Virtual Currency
Use Cases
  charge credits for app installation
  charge credits for certain features
  c...
Questions?

  Developer pages:
     http://es.netlog.com/go/developer/
  OpenSocial sandbox:
     http://es.netlog.com/go/...
Viadeo
Ariel Messias
Social Network
Business Tool
Career Management




                    © viadeo – septembre 2008
Benefits Viadeo can offer to developers



  8 languages (European + China)

  Professional oriented

  Distribution of Me...
Vertical Apps ?

                  Members split by industry
“A Level” priority targets ?


            High qualification of Viadeo’s members
Apps for Professional Social Network…


Helping to :

   Find Customers / Partners / Suppliers

   Organize Meetings/Event...
Sandbox Presentation – Create a Dev. Account
Becoming an OpenSocial Container
Becoming an OpenSocial Container


 Question:
   How do you become an OpenSocial container?

 Answer:
    The Apache incub...
What is Shindig ?

   Open source reference implementation of OpenSocial &
   Gadgets specification
   An Apache Software ...
Introduction to Shindig Architecture
  Gadget Server
  Social Data Server
  Gadget Container JavaScript
Gadget Server
Social Server
Social Server - RESTful API
 Preview available on
     iGoogle
     Orkut
     Hi5
 New development models
     Server to ...
Shindig Server Side (Java) Architecture
Shindig Client Side Libraries
Opensocial – JS Library
Implementing Shindig - Data sources
   Integrate with your own data sources
       People Service
       Activities Servic...
Implementing Shindig - PHP
   Implement functions

function getActivities($ids)
{
  $activities = array();
  $res = mysqli...
Implementing Shindig - Java
Code at http://chrisschalk.com/shindig_docs/io/shindig-io.html
import org.apache.shindig.socia...
Implementing Shindig - Java
public ResponseItem<List<Activity>> getActivities(List<String> ids,
  SecurityToken token) {

...
Implementing - Make it a platform
 Add UI Elements
    App Gallery
    App Canvas
    App Invites
    Notification Browser...
Implementing - Scale it Out!
 Prevent Concurrency issues
 Reduce Latency
 Add Caching
 Add more caching!
Usage Example: Sample Container
 Static html sample container
 No effort to get up and running
 No database or features
Usage Example: Partuza
 Partuza is a Example social network site, written in PHP
 Allows for local gadget development & te...
OpenSocial for intranet, portals
Sun Microsystems
   Socialsite: Shindig + gadget based UI written in Java
   Open Source ...
Summary
 Become an OpenSocial Container
    Get Shindig (PHP or Java)
    Look at examples & documentation
    Implement S...
What is Friend Connect?
Allows any site to become an OpenSocial container by simply
        copying a few snippets of code...
Friend Connect gives ...

  Users
    ... more ways to do more things with my friends

  Site owners
     ... more (and mo...
Learn more
code.google.com
Q&A
Jaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social Web
Upcoming SlideShare
Loading in …5
×

Jaoo - Open Social A Standard For The Social Web

11,541 views

Published on

see http://jaoo.dk/presentation/OpenSocial%2C+a+Standard+for+the+Social+Web

OpenSocial is a standard for the social web managed by the OpenSocial foundation. Introduced by 18 social sites in november 2007, after 8 months OpenSocial is available to 275 million users, 2000 applications have been developed and 10 million users are using them daily.

The session will start with a status of OpenSocial after a year: the ecosystem that formed around the API: social sites, developers, advertisers, tool vendors, IT consulting firms, enterprise software vendors.

For developers of social application, the OpenSocial API JavaScript and REST APIs will be described, with demos of how to build a social application using each API.

For developers of social sites, or sites that want to become OpenSocial containers, the OpenSocial reference implementation is developed as an open source project, Apache Shindig, with a Java and PHP flavors. The stated goal of Shindig is to enable a social site developer to implement OpenSocial support on her site in 2 weeks. The Shindig Java architecture will be explained, followed by a demo of how to connect Shindig to a MySql backend.

Various related projects will also be demoed:

- Friend Connect, a Google offering enabling web sites to add social capabilities with a few lines of javascript.

- Socialsite, a Sun open source project based on Shindig, enabling web sites to become social sites with their own community, using gadgets to provide a user interface to manage the network.

- OpenSocket, a hosted service that allows OpenSocial applications to be deployed on Facebook.

Published in: Business, Technology

Jaoo - Open Social A Standard For The Social Web

  1. 1. OpenSocial a standard for the social web Patrick Chanezon 9 september 2008 chanezon@google.com
  2. 2. Agenda OpenSocial introduction How to build OpenSocial applications Hosting social applications Social applications monetization OpenSocial containers Becoming an OpenSocial container Google Friend Connect Summary
  3. 3. OpenSocial Introduction Patrick Chanezon
  4. 4. Making the web better by making it social What does social mean?
  5. 5. What does Social mean? Eliette what do you do with your friends?
  6. 6. This work by Eliette Chanezon is licensed under a Creative Commons Attribution-Share Alike 3.0 License
  7. 7. This work by Eliette Chanezon is licensed under a Creative Commons Attribution-Share Alike 3.0 License
  8. 8. This work by Eliette Chanezon is licensed under a Creative Commons Attribution-Share Alike 3.0 License
  9. 9. This work by Eliette Chanezon is licensed under a Creative Commons Attribution-Share Alike 3.0 License
  10. 10. This work by Eliette Chanezon is licensed under a Creative Commons Attribution-Share Alike 3.0 License
  11. 11. This work by Eliette Chanezon is licensed under a Creative Commons Attribution-Share Alike 3.0 License
  12. 12. Raoul: a social object for Charlotte (3 year old)
  13. 13. Jaiku’s Jyri Engeström's 5 rules for social networks: social objects 1. What is your object? 2. What are your verbs? 3. How can people share the objects? 4. What is the gift in the invitation? 5. Are you charging the publishers or the spectators? http://tinyurl.com/yus8gw
  14. 14. How do we socialize objects online without having to create yet another social network?
  15. 15. OpenSocial A common API for social applications across multiple web sites
  16. 16. The Trouble with Developing Social Apps Which site do I build my app for?
  17. 17. Let’s work on that… Using OpenSocial, I can build apps for all of these sites!
  18. 18. What’s offered by OpenSocial? Activities What are people up to on the web People/Profile Info Who do I know, etc. Persistent datastore Handles key/value pairs
  19. 19. Today: 375 Million User Reach
  20. 20. Where is OpenSocial live today? Live to Users: Live Developer Sandboxes: MySpace iGoogle orkut imeem Hi5 CityIN Freebar Tianya Friendster Ning Webon from Lycos Plaxo Pulse IDtail Mail.ru YiQi Netlog - New! Hyves - New! Individual Developer Links: http://code.google.com/apis/opensocial/gettingstared.html
  21. 21. OpenSocial “Containers”
  22. 22. What’s in OpenSocial? JavaScript API - Now REST Protocol - New Templates - Prototype in Shindig
  23. 23. OpenSocial’s JavaScript API OpenSocial JS API Gadget JS API Gadget XML schema OpenSocial v0.7 is live OpenSocial v0.8 is being deployed now Specs and release notes: http://opensocial.org
  24. 24. OpenSocial’s REST Protocol Access social data without JavaScript Works on 3rd party websites / phones / etc Uses OAuth to allow secure access Open source client libraries in development Java, PHP, Python, <your fav language here> Being deployed with OpenSocial v0.8 Spec’s available at http://opensocial.org
  25. 25. OpenSocial Templates Writing JavaScript is hard Writing templates is easy Templates also give Consistent UI across containers Easy way to localize More interesting content options when inlining into container (activities, profile views) Ability to serve millions of dynamic pages per day without a server
  26. 26. Design principles Create a template language that is: Simple Easy markup for creating UI and binding data Fast Supports server-side optimizations Extensible Standard reusable controls (buttons, lists, links, etc.) Everywhere Only need to include a single JavaScript file
  27. 27. Concepts: Markup A set of standard tags and behaviors that provide developers with a simple, declarative language for assembling apps. Templating A set of standard elements implemented by containers. A method for taking structured data and rendering UI elements in an arbitrary markup. Data Pipelining A method for grabbing OpenSocial and third-party data declaratively (or in script) and joining it to templates.
  28. 28. Example: os:Image <os:Image key=quot;http://...quot;/>
  29. 29. Example: osTabs, os:ShowPerson <os:Tabs name=quot;tabGroupquot;> <tab> <title>Tab 1</title> <body>This is the first tab.</body> </tab> ... <tab> <title>Tab 3</title> <body> <os:ShowPerson person=quot;${Viewer}quot;/> <div repeat=quot;ViewerFriendsquot;> <os:ShowPerson person=quot;${$this}quot;/> </div> </body> </tab> </os:Tabs>
  30. 30. Example: Friends list (no templates)
  31. 31. Example: Friends list (with templates)
  32. 32. Template Status High-level specification complete: http://wiki.opensocial-templates.org Prototype implementation available: http://ostemplates-demo.appspot.com GET INVOLVED! Tag feedback/suggestions appreciated: http://tech.groups.yahoo.com/group/os-templates/ Code for templates is in Shindig: patches welcome:-)
  33. 33. OpenSocial is what you make it. OpenSocial is an open source project. The spec is controlled by the community. Anyone can contribute and have a voice. http://groups.google.com/group/opensocial/ “OpenSocial and Gadgets spec” subgroup OpenSocial Foundation Get involved to nominate and elect board reps http://www.opensocial.org/opensocial- foundation/
  34. 34. A note on compliance OpenSocial is designed for many sites Building an app: Technology Policy OpenSocial Compliance Tests http://code.google.com/p/opensocial- resources/wiki/ComplianceTests
  35. 35. OpenSocial Compliance test in orkut
  36. 36. OpenSocial Compliance Matrix http://opensocial-compliance.appspot.com
  37. 37. Other comments Portable Contacts Alignment Caja for JavaScript security
  38. 38. A standard for everyone This work by Eliette Chanezon is licensed under a Creative Commons Attribution-Share Alike 3.0 License
  39. 39. How To Build OpenSocial Applications
  40. 40. Owner and Viewer Relationship Applications has views Owner Viewer has has Friends Friends
  41. 41. Understanding the Gadget XML ModulePrefs define <?xml version=quot;1.0quot; encoding=quot;UTF-8quot; ?> characteristics of the gadget, such as title, <Module> author, etc. <ModulePrefs title=quot;Hello World!quot;> Module node defines the gadget. <Require feature=quot;opensocial-0.7quot; /> </ModulePrefs> Require nodes should be added for all <Content type=quot;htmlquot;> desired features <![CDATA[ <script> function init(){ alert(quot;hello worldquot;); Define your gadget html within Content } node gadgets.util.registerOnLoadHandler(init); </script> ]]> </Content> </Module>
  42. 42. Retrieve Friend Information function getFriendData() { var req = opensocial.newDataRequest(); req.add(req.newFetchPersonRequest(VIEWER), 'viewer'); req.add(req.newFetchPeopleRequest(VIEWER_FRIENDS), 'viewerFriends'); Place an Create a new data req.send(onLoadFriends); asynchronous call to request object and the container. add the desired sub- } requests. function onLoadFriends(response) { var viewer = response.get('viewer').getData(); var viewerFriends = response.get('viewerFriends').getData(); ///More code } Handle the returned data in callback
  43. 43. Persisting Data function populateMyAppData() { Use a var req = opensocial.newDataRequest(); newUpdatePersonAppDa var data1 = Math.random() * 5; taRequest() to update data. var data2 = Math.random() * 100; req.add(req.newUpdatePersonAppDataRequest( quot;VIEWERquot;,quot;AppField1quot;, data1)); req.add(req.newUpdatePersonAppDataRequest( quot;VIEWERquot;,quot;AppField2quot;, data2)); req.send(requestMyData); }
  44. 44. Fetching persisted data function requestMyData() { Use a var req = opensocial.newDataRequest(); newFetchPersonAppD var fields = [quot;AppField1quot;, quot;AppField2quot;]; ataRequest() to fetch data. req.add(req.newFetchPersonRequest( opensocial.DataRequest.PersonId.VIEWER),quot;viewerquot;); req.add(req.newFetchPersonAppDataRequest(quot;VIEWERquot;, fields), quot;viewer_dataquot;); req.send(handleReturnedData); AppData is returned as a } 2-level Map, with person id as the first key and propertyname as the function handleReturnedData(data) { next key var mydata = data.get(quot;viewer_dataquot;); var viewer = data.get(quot;viewerquot;); me = viewer.getData(); var appField1 = mydata[me.getId()][quot;AppField1quot;]; ///More code }
  45. 45. Posting an Activity function postActivity(text) { requestCreateActivity is var params = {}; a request, a specific params[opensocial.Activity.Field.TITLE] = text; may choose to container var activity = opensocial.newActivity(params); ignore it. opensocial.requestCreateActivity(activity, opensocial.CreateActivityPriority.HIGH, callback); } postActivity(quot;This is a sample activity, created at quot; + new Date().toString())
  46. 46. Resources For Application Developers Specification http://opensocial.org/ http://groups.google.com/group/opensocial-and-gadgets-spec Code Samples and Tools http://code.google.com/opensocial http://code.google.com/p/opensocial-resources/ Sandboxes http://developer.myspace.com/ http://www.hi5networks.com/developer/ http://opensocial.ning.com/ http://code.google.com/apis/orkut/ http://code.google.com/apis/igoogle/ http://en.netlog.com/go/developer/opensocial
  47. 47. Hosting social apps Patrick Chanezon
  48. 48. Hosting OpenSocial apps In addition to using the provided persistence API... Establish a quot;homequot; site where gadget can phone home to retrieve, post data Can host home site on your own, or use services: Amazon EC2 Joyent Google AppEngine Zembly: is the world's first cloud-based development environment for social apps. Full OpenSocial support
  49. 49. Google AppEngine and OpenSocial Create an App Engine app as your backend! Use makeRequest() to call back to your AppEngine server Utilize AppEngine's datastore New OpenSocial Apps are coming online BuddyPoke, Checkout Lane Liabraaten’s OpenSocial-AppEngine integration article http://code.google.com/apis/opensocial/articles/appengine.html Google IO Code Lab about OpenSocial Apps in the Cloud
  50. 50. Social Apps monetization Patrick Chanezon
  51. 51. OpenSocial Monetization Ads from Ad Networks AdSense, RightMedia BuddyPoke, Rate My Friend Brand/Private Label App Sony Ericsson MTV Roadies app on orkut Sell virtual or real goods Free -> Freemium Referrals Virtual currency
  52. 52. Success Story: Buddy Poke #1 OpenSocial app on orkut 8M installs for orkut, hi5, MySpace $1-2 CPM #1 App for App Engine w/ millions daily PV
  53. 53. Success Story: PhotoBuzz 6M+ installs on hi5 and orkut CPM $1-3, especially good on orkut 4M buzzes per day Small team of 4 people, profitable
  54. 54. Container specifics
  55. 55. Container Specific Extensions MySpace photo albums videos hi5 status presence photo albums Netlog credits api extension translation tool for free Imeem music metadata api
  56. 56. Your Profile
  57. 57. Seemless translation
  58. 58. Localisation is important! Translations are automatically injected Translation tool for Netlog translators
  59. 59. Monetization
  60. 60. What’s in it for you? Branding, co-branding, sponsorships 100% revenue from vertical rectangle or skyscraper on your application page Credit economy with Netlog OpenSocial extension
  61. 61. Credit Economy Virtual Currency Use Cases charge credits for app installation charge credits for certain features charge credits for buying items charge credits for...
  62. 62. Questions? Developer pages: http://es.netlog.com/go/developer/ OpenSocial sandbox: http://es.netlog.com/go/developer/opensocial/sandbox=1
  63. 63. Viadeo Ariel Messias
  64. 64. Social Network Business Tool Career Management © viadeo – septembre 2008
  65. 65. Benefits Viadeo can offer to developers 8 languages (European + China) Professional oriented Distribution of Members among all the Industries Mainly “A Level” profiles Members with High Revenues => Strong capabilities of monetization
  66. 66. Vertical Apps ? Members split by industry
  67. 67. “A Level” priority targets ? High qualification of Viadeo’s members
  68. 68. Apps for Professional Social Network… Helping to : Find Customers / Partners / Suppliers Organize Meetings/Events Share information and expertise But also ... Get headhunted… …and recruit Etc…
  69. 69. Sandbox Presentation – Create a Dev. Account
  70. 70. Becoming an OpenSocial Container
  71. 71. Becoming an OpenSocial Container Question: How do you become an OpenSocial container? Answer: The Apache incubator project “Shindig” serves this purpose!
  72. 72. What is Shindig ? Open source reference implementation of OpenSocial & Gadgets specification An Apache Software Incubator project Available in Java & PHP http://incubator.apache.org/shindig It’s Goal: “Shindig's goal is to allow new sites to start hosting social apps in under an hour's worth of workquot;
  73. 73. Introduction to Shindig Architecture Gadget Server Social Data Server Gadget Container JavaScript
  74. 74. Gadget Server
  75. 75. Social Server
  76. 76. Social Server - RESTful API Preview available on iGoogle Orkut Hi5 New development models Server to server & Mobile! Try it out: curl http://localhost:8080/social/rest/people/john.doe/@all
  77. 77. Shindig Server Side (Java) Architecture
  78. 78. Shindig Client Side Libraries
  79. 79. Opensocial – JS Library
  80. 80. Implementing Shindig - Data sources Integrate with your own data sources People Service Activities Service App Data Service class MyPeopleService implements PeopleService { ... } class MyAppDataService implements AppDataService { ... } class MyActivitiesService implements ActivitiesService { ... }
  81. 81. Implementing Shindig - PHP Implement functions function getActivities($ids) { $activities = array(); $res = mysqli_query($this->db, ”SELECT…quot;); while ($row = @mysqli_fetch_array($res, MYSQLI_ASSOC)) { $activity = new Activity($row['activityId'], $row['personId']); $activity->setStreamTitle($row['activityStream']); $activity->setTitle($row['activityTitle']); $activity->setBody($row['activityBody']); $activity->setPostedTime($row['created']); $activities[] = $activity; } return $activities; }
  82. 82. Implementing Shindig - Java Code at http://chrisschalk.com/shindig_docs/io/shindig-io.html import org.apache.shindig.social.opensocial.ActivitiesService; public class SQLActivitiesService implements ActivitiesService { private SQLDataLayer sqlLayer; @Inject public SQLActivitiesService(SQLDataLayer sqlLayer) { this.sqlLayer = sqlLayer; }
  83. 83. Implementing Shindig - Java public ResponseItem<List<Activity>> getActivities(List<String> ids, SecurityToken token) { Map<String, List<Activity>> allActivities = sqlLayer.getActivities(); List<Activity> activities = new ArrayList<Activity>(); for (String id : ids) { List<Activity> personActivities = allActivities.get(id); if (personActivities != null) { activities.addAll(personActivities); } } return new ResponseItem<List<Activity>>(activities); }
  84. 84. Implementing - Make it a platform Add UI Elements App Gallery App Canvas App Invites Notification Browser Developer Resources Developer Console Application Gallery Scale it Out!
  85. 85. Implementing - Scale it Out! Prevent Concurrency issues Reduce Latency Add Caching Add more caching!
  86. 86. Usage Example: Sample Container Static html sample container No effort to get up and running No database or features
  87. 87. Usage Example: Partuza Partuza is a Example social network site, written in PHP Allows for local gadget development & testing too Use as inspiration (or copy) for creating your own social site http://code.google.com/p/partuza
  88. 88. OpenSocial for intranet, portals Sun Microsystems Socialsite: Shindig + gadget based UI written in Java Open Source https://socialsite.dev.java.net/ Upcoming from Impetus Zest: Shindig + Drupal (PHP) Zeal: Shindig + Liferay (Java)
  89. 89. Summary Become an OpenSocial Container Get Shindig (PHP or Java) Look at examples & documentation Implement Services Add UI Scale it out Resources & Links: http://www.chabotc.com/gdd/
  90. 90. What is Friend Connect? Allows any site to become an OpenSocial container by simply copying a few snippets of code into your site http://www.google.com/friendconnect/
  91. 91. Friend Connect gives ... Users ... more ways to do more things with my friends Site owners ... more (and more engaged) traffic for my site App developers ... more reach for my apps and ... make it easy
  92. 92. Learn more code.google.com
  93. 93. Q&A

×