0
OpenSocial ecosystem
updates
Patrick Chanezon
Chris Chabot
Chewy Trewhella

9/16/2008
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...
Try out templates today!


  Samples and docs:
  http://ostemplates-demo.appspot.com
  Sample app:
  http://ostemplates-de...
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
People & Friends Example
 Requesting friend Info
function getFriendData() {
  var req = opensocial.newDataRequest();
  req...
People & Friends Example
Callback function for returned friend data

function onLoadFriends(resp) {
 var viewer = resp.get...
Activities Example
Posting an activity

function postActivity(text) {
   var params = {};
   params[opensocial.Activity.Fi...
Persistence Example
Persisting data
function populateMyAppData() {
  var req = opensocial.newDataRequest();
  var data1 = ...
Persistence Example
Fetching persisted data

function requestMyData() {
  var req = opensocial.newDataRequest();
  var fie...
Persistence Example
Displaying fetched (persisted) data

function handleReturnedData(data) {
   var mydata = data.get(quot...
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 demos
Hyves
Reinoud Elhorst
What is Hyves?

4 years old

6 million+ Dutch members

5 billion pageviews/month

51.6% reach/month 13+, 75.6% 13-34
Social networking service
OpenSocial on Hyves

 Launching OpenSocial today

 OS 0.7, working on 0.8 release

 (traditional) API intergration

 Gadge...
Gadget gallery
Profile view
Homepage view
Canvas view
Thanks for your
    attention
Reinoud, Derk, Youri, Marijn, Frank
& Yme are here today if you have
any questions


Contact...
Netlog
Pieter De Schepper
Toon Coppens
Folke Lemaitre
What is Netlog?
Your Profile
Friend Activity
Communication: Shouts
Communication: Private messaging
Communication: Chat
Homepage
Explore
How are we doing?

More than 35,000,000 unique members
More than 6,000,000,000 pageviews/Month
23 languages and alot more ...
Applications
Canvas view
Profile view
Home View (available soon!)
Application directory
User Profiles
Activity logs
Share with your friends
Requirements
Whitelisting Requirements



  an application should be fully integrated
     no external login should be needed...
     n...
Localization
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
Questions?

  Developer pages:
     http://en.netlog.com/go/developer/
  OpenSocial sandbox:
     http://en.netlog.com/go/...
Viadeo
Ariel Messias
Becoming an OpenSocial Container
Chris Chabot
Google Dev Day
                      OpenSocial

Social Network
Business Tool          London
Career Management
          ...
Agenda




A few words about Viadeo

What to offer to Viadeo’s members

(Sandbox presentation)
Viadeo

  3 groups of Use :
     Social Network,
     Business Tool
     Career Management

  5 +m Members mainly :
     E...
International Footprint : 5+m Members

                France

                         1.8m members(1)
                  ...
What to offer to Viadeo’s Members



  7 languages (European + China)

  Professional oriented

  Mainly “A Level” profile...
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




            opensocial@viadeo.com
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 ...
Implementing Shindig - Data sources
   Integrate with your own data sources
       People Service
       Activities Servic...
Implementing Shindig - Data sources
   Implement functions

function getActivities($ids)
{
  $activities = array();
  $res...
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!
 Pre-populate Cac...
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...
Kinds of Containers
Kevin Marks
Not just Social Network Sites

   Social network sites - Profiles and home pages
   Personal dashboards
   Sites based aro...
The Viewer and Viewer friends
Owner and Owner friends
Owner and Viewer
        are defined by Container
The Application gets IDs and connections to other IDs
the Owner need not be a Person
       It could be an organisation
             or a social object
Kinds of container - Social network
sites
   Profile pages
       Owner is profile page owner
       Viewer may not be kno...
Kinds of container - Personal
dashboard
   like Home pages
       Owner is Viewer (must be logged in to see)
   Friends ma...
Kinds of container - Social Object site

   Pages reflect the object - movie, picture, product
       Owner is the object
...
Kinds of container - CRM systems

   Pages reflect the customer
      Owner is the customer
      Owner friends are people...
Kinds of container - Any web site

   Owner is the site

      Owner friends are site users
   Viewer is you,
      Viewer...
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
Goodle Developer Days London 2008 - Open Social Update
Goodle Developer Days London 2008 - Open Social Update
Goodle Developer Days London 2008 - Open Social Update
Goodle Developer Days London 2008 - Open Social Update
Goodle Developer Days London 2008 - Open Social Update
Goodle Developer Days London 2008 - Open Social Update
Goodle Developer Days London 2008 - Open Social Update
Goodle Developer Days London 2008 - Open Social Update
Goodle Developer Days London 2008 - Open Social Update
Goodle Developer Days London 2008 - Open Social Update
Goodle Developer Days London 2008 - Open Social Update
Goodle Developer Days London 2008 - Open Social Update
Goodle Developer Days London 2008 - Open Social Update
Goodle Developer Days London 2008 - Open Social Update
Upcoming SlideShare
Loading in...5
×

Goodle Developer Days London 2008 - Open Social Update

13,537

Published on

Updates about the OpenSocial ecosystem at Google developer days London including presentations from Netlog and Viadeo.

OpenSocial is an open specification defining a common API that works on many different social websites, including MySpace, Plaxo, Hi5, Ning, orkut, Friendster Salesforce.com and LinkedIn, among others. This allows developers to learn one API, then write a social application for any of those sites: Learn once, write anywhere.

In addition, in order to make it easier for developers of social sites to implement the API and make their site an OpenSocial container, the Apache project Shindig provides reference implementations for OpenSocial containers in two languages (Java, PHP). Shindig will define a language specific Service Provider Interface (SPI) that a social site can implement to connect Shindig to People, Persistence and Activities backend services for the social site. Shindig will then expose these services as OpenSocial JavaScript and REST APIs.

In this session we will explain what OpenSocial is, show examples of OpenSocial containers and applications, demonstrate how to create an OpenSocial application, and explain how to leverage Apache Shindig in order to implement an OpenSocial container.

Published in: Technology
0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
13,537
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
223
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

Transcript of "Goodle Developer Days London 2008 - Open Social Update"

  1. 1. OpenSocial ecosystem updates Patrick Chanezon Chris Chabot Chewy Trewhella 9/16/2008
  2. 2. Agenda OpenSocial introduction How to build OpenSocial applications Hosting social applications Social applications monetization OpenSocial container demos Becoming an OpenSocial container Kinds of Containers 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. Try out templates today! Samples and docs: http://ostemplates-demo.appspot.com Sample app: http://ostemplates-demo.appspot.com/friends.html Discussion group: http://tech.groups.yahoo.com/group/os-templates/ Code is all in Shindig, can download, use, and even submit patches to improve So… Get involved and provide comments, and Build some apps
  27. 27. 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/
  28. 28. 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
  29. 29. OpenSocial Compliance test in orkut
  30. 30. OpenSocial Compliance Matrix http://opensocial-compliance.appspot.com
  31. 31. Other comments Portable Contacts Alignment Caja for JavaScript security
  32. 32. A standard for everyone This work by Eliette Chanezon is licensed under a Creative Commons Attribution-Share Alike 3.0 License
  33. 33. How To Build OpenSocial Applications
  34. 34. People & Friends Example Requesting friend Info function getFriendData() { var req = opensocial.newDataRequest(); req.add( req.newFetchPersonRequest(VIEWER), 'viewer'); req.add( req.newFetchPeopleRequest(VIEWER_FRIENDS), 'viewerFriends'); req.send(onLoadFriends); }
  35. 35. People & Friends Example Callback function for returned friend data function onLoadFriends(resp) { var viewer = resp.get('viewer').getData(); var viewerFriends = resp.get('viewerFriends').getData(); var html = 'Friends of ' + viewer.getDisplayName() + ‘:<br><ul>’; viewerFriends.each(function(person) { html += '<li>' + person.getDisplayName()+'</li>';}); html += '</ul>'; document.getElementById('friends').innerHTML += html; }
  36. 36. Activities Example Posting an activity function postActivity(text) { var params = {}; params[opensocial.Activity.Field.TITLE] = text; var activity = opensocial.newActivity(params); opensocial.requestCreateActivity( activity, opensocial.CreateActivityPriority.HIGH, callback); } postActivity( quot;This is a sample activity, created at quot; + new Date().toString());
  37. 37. Persistence Example Persisting data function populateMyAppData() { var req = opensocial.newDataRequest(); var data1 = Math.random() * 5; 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); }
  38. 38. Persistence Example Fetching persisted data function requestMyData() { var req = opensocial.newDataRequest(); var fields = [quot;AppField1quot;, quot;AppField2quot;]; req.add(req.newFetchPersonRequest( opensocial.DataRequest.PersonId.VIEWER), quot;viewerquot;); req.add(req.newFetchPersonAppDataRequest(quot;VIEWERquot;, fields), quot;viewer_dataquot;); req.send(handleReturnedData); }
  39. 39. Persistence Example Displaying fetched (persisted) data function handleReturnedData(data) { var mydata = data.get(quot;viewer_dataquot;); var viewer = data.get(quot;viewerquot;); me = viewer.getData(); // me is global var var data = mydata[me.getId()]; htmlout += quot;AppField1: quot; + data[quot;AppField1quot;] + quot;<br/>quot;; htmlout += quot;AppField2: quot; + data[quot;AppField2quot;] + quot;<br/>quot;; var div = document.getElementById('content_div'); div.innerHTML = htmlout; }
  40. 40. 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
  41. 41. Hosting social apps Patrick Chanezon
  42. 42. 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
  43. 43. 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
  44. 44. Social Apps monetization Patrick Chanezon
  45. 45. 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
  46. 46. 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
  47. 47. 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
  48. 48. Container demos
  49. 49. Hyves Reinoud Elhorst
  50. 50. What is Hyves? 4 years old 6 million+ Dutch members 5 billion pageviews/month 51.6% reach/month 13+, 75.6% 13-34
  51. 51. Social networking service
  52. 52. OpenSocial on Hyves Launching OpenSocial today OS 0.7, working on 0.8 release (traditional) API intergration Gadget gallery waiting for good apps to be featured Contact irene@hyves.nl
  53. 53. Gadget gallery
  54. 54. Profile view
  55. 55. Homepage view
  56. 56. Canvas view
  57. 57. Thanks for your attention Reinoud, Derk, Youri, Marijn, Frank & Yme are here today if you have any questions Contact irene@hyves.nl for inclusion in the Gadget Gallery http://trac.hyves-api.nl/hyves- api/wiki/opensocial
  58. 58. Netlog Pieter De Schepper Toon Coppens Folke Lemaitre
  59. 59. What is Netlog?
  60. 60. Your Profile
  61. 61. Friend Activity
  62. 62. Communication: Shouts
  63. 63. Communication: Private messaging
  64. 64. Communication: Chat
  65. 65. Homepage
  66. 66. Explore
  67. 67. How are we doing? More than 35,000,000 unique members More than 6,000,000,000 pageviews/Month 23 languages and alot more coming! Nederland Svensk slovenščin s a a Deutsch Magya Русски Englis Italiano česky r й h françai Dansk s suomi Polski Hrvatski Türkçe Afrikaan Slovenčin s 中文 Eesti a Català Españo Portuguê l Latviešu Română s valoda българск Lietuvių Norsk (bokmål) и kalba
  68. 68. Applications
  69. 69. Canvas view
  70. 70. Profile view
  71. 71. Home View (available soon!)
  72. 72. Application directory
  73. 73. User Profiles
  74. 74. Activity logs
  75. 75. Share with your friends
  76. 76. Requirements
  77. 77. Whitelisting Requirements an application should be fully integrated no external login should be needed... no external links no ads in “profile” view no spamming through activities/requests localised & translated We can help you!
  78. 78. Localization
  79. 79. Seemless translation
  80. 80. Localisation is important! Translations are automatically injected Translation tool for Netlog translators
  81. 81. Monetization
  82. 82. 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 charge credits for app installation charge credits for certain features charge credits for buying items charge credits for...
  83. 83. Credit Economy
  84. 84. Questions? Developer pages: http://en.netlog.com/go/developer/ OpenSocial sandbox: http://en.netlog.com/go/developer/opensocial/sandbox=1
  85. 85. Viadeo Ariel Messias
  86. 86. Becoming an OpenSocial Container Chris Chabot
  87. 87. Google Dev Day OpenSocial Social Network Business Tool London Career Management 08/09/16 © viadeo – septembre 2008
  88. 88. Agenda A few words about Viadeo What to offer to Viadeo’s members (Sandbox presentation)
  89. 89. Viadeo 3 groups of Use : Social Network, Business Tool Career Management 5 +m Members mainly : Europe China Strong activity 7, 000 new members/day 10, 000 connections/day +120, 000 consulted profiles/day 1,3 M hubs registration
  90. 90. International Footprint : 5+m Members France 1.8m members(1) Other European countries 150K members (1) Belgium 100k members(1) UK/Ireland 150 k members(1) China Switzerland 2.2m members(1) 50K members(1) Spain/Portugal Italy 350k members(1) 300k members (1) (1) end of August 2008
  91. 91. What to offer to Viadeo’s Members 7 languages (European + China) Professional oriented Mainly “A Level” profiles Split by Industry Members with High Revenues => Strong capabilities of monetization
  92. 92. Vertical Apps ? Members split by industry
  93. 93. “A Level” priority targets ? High qualification of Viadeo’s members
  94. 94. 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…
  95. 95. Sandbox Presentation opensocial@viadeo.com
  96. 96. Becoming an OpenSocial Container Question: How do you become an OpenSocial container? Answer: The Apache incubator project “Shindig” serves this purpose!
  97. 97. 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;
  98. 98. Introduction to Shindig Architecture Gadget Server Social Data Server Gadget Container JavaScript
  99. 99. Gadget Server
  100. 100. Social Server
  101. 101. 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
  102. 102. 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 { ... }
  103. 103. Implementing Shindig - Data sources 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; }
  104. 104. 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!
  105. 105. Implementing - Scale it Out! Prevent Concurrency issues Reduce Latency Add Caching Add more caching! Pre-populate Cache
  106. 106. Usage Example: Sample Container Static html sample container No effort to get up and running No database or features
  107. 107. 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
  108. 108. 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)
  109. 109. 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/
  110. 110. Kinds of Containers Kevin Marks
  111. 111. Not just Social Network Sites Social network sites - Profiles and home pages Personal dashboards Sites based around a Social Object Corporate CRM systems Any web site How do we abstract these out? Viewer + friends Owner + friends
  112. 112. The Viewer and Viewer friends
  113. 113. Owner and Owner friends
  114. 114. Owner and Viewer are defined by Container The Application gets IDs and connections to other IDs
  115. 115. the Owner need not be a Person It could be an organisation or a social object
  116. 116. Kinds of container - Social network sites Profile pages Owner is profile page owner Viewer may not be known, may be owner or other member Home pages Owner is Viewer (must be logged in to see) Examples MySpace Hi5 Orkut
  117. 117. Kinds of container - Personal dashboard like Home pages Owner is Viewer (must be logged in to see) Friends may not be defined Example: iGoogle, My Yahoo
  118. 118. Kinds of container - Social Object site Pages reflect the object - movie, picture, product Owner is the object Owner friends are people connected to the object may be authors or fans Viewer is looking at it, Viewer friends are people you may want to share with Example: Imeem is a bit like this - opportunity for sites like Flickr, YouTube
  119. 119. Kinds of container - CRM systems Pages reflect the customer Owner is the customer Owner friends are people connected to the customer may be your colleagues, or other customers Viewer is you, Viewer friends are your colleagues or customers Example: Oracle CRM, Salesforce
  120. 120. Kinds of container - Any web site Owner is the site Owner friends are site users Viewer is you, Viewer friends are your friends who have visited this site Example: Google Friend Connect will enable this for any site
  121. 121. 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/
  122. 122. 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
  123. 123. Learn more code.google.com
  124. 124. Q&A
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×