OpenSocial - Past, Present, Future

2,508
-1

Published on

Presentation for the NJIT OpenSocial Hackathon on OpenSocial and it's use cases, OpenSocial Templates and Proxied Content, the OpenSocial Foundation, Apache Shindig and OpenSocial 2.0

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

  • Be the first to like this

No Downloads
Views
Total Views
2,508
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
25
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

OpenSocial - Past, Present, Future

  1. 1. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010 OpenSocial Past - Present - Future Bastian Hofmann VZnet Netzwerke Ltd.
  2. 2. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Agenda – Introduc>on  to  OpenSocial – Apache  Shindig – History • New  stuff  in  OpenSocial  0.9 – How  OpenSocial  is  used  today – The  OpenSocial  Founda>on – OpenSocial  2.0 – Federated  Social  Web 2
  3. 3. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010  Ques>ons?  Ask! 3
  4. 4. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010 hPp://slideshare.net/bashofmann
  5. 5. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010VZ-­‐Networks
  6. 6. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010
  7. 7. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Facts  and  Figures• 300  employees• 655  servers• 5,400  processors• 13,000  GB  RAM• 5,400  Mbit/s• At  Peak:  120,000  requests/s
  8. 8. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010The  technology  behind  it• PHP  +  Apache  HTTP  Server  +  APC• MySQL  +  Memcached• Java,  Scala  and  Python  Services• NGINX,  Haproxy• Apache  Shindig  (PHP)• RabbitMQ• Project  Voldermort,  Redis,  Apache  Hadoop• Sphinx  Search,  Apache  Solr
  9. 9. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010The  technology  behind  it• Neo4j  Graph  database• Chat:  ejabberd  (Erlang)• Hazelcast,  Ant,  Maven,  Ivy,  Buildout,  RPM• JQuery,  Mustache.js,  GWT• Jenkins,  Sonar• JUnit,  PHPUnit,  Selenium,  PHPMD,  PHPCPD,   Pdepend• Ganglia,  Nagios,  Smokeping
  10. 10. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010
  11. 11. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010OpenSocial  is  ...• ...  a  set  of  APIs  to  access  the  social  graph  of   users• ...  a  specifica>on  for  including  3rd  party   applica>ons  (gadgets)  into  social  services
  12. 12. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010What  is  a  Gadget?• XML  file  with  HTML  and   JavaScript  (and  CSS,   Images,  Flash,  ...)• Applica>on  based  on  the   Google  Gadgets   specifica>on• Can  be  included  on   various  plajorms
  13. 13. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Apache  Shindig• OpenSource  implementa>on  of  an  OpenSocial   container• Java  and  PHP  versions  available• New:  MySpace  is  currently  open  sourcing   their  .NET  implementa>onhPp://shindig.apache.org/
  14. 14. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010The  team• 26  commiPers  and  PMC   member  from  all  over  the   world• Currently  vo>ng  on  adding   3  new  ones• Many,  many  contributors
  15. 15. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Rendering
  16. 16. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Social  APIs
  17. 17. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Proxy Shindig apivz.net Container vz.net Ajax HTTP Gadget   Gadget  Backend apivz.net coolgame.com Ajax
  18. 18. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010JavaScript  RPCContainer -­‐  window.postMessagevz.net Method  Call -­‐  Iframes  with  relay   Gadget   files apivz.net -­‐  Flash
  19. 19. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010AuthenJficaJon• Two-­‐Legged  or  Three-­‐Legged   OAuth• Security  Token  for  JavaScript   requests  from  gadget
  20. 20. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010 OAuth  1.0a  Flow +----------+ +---------------+ | -+----(B)-- Request Token -------->| | | End-user | | Authorization | | at |<---(C)-- User authenticates --->| Server | | Browser | | | | -+----(D)-- Verifier -------------<| | +-|----|---+ +---------------+ | | ^ v (B) (D) | | | | | | ^ v | | +---------+ | | | |>---(A)-- Redirect URL ---------------| | | Web |<---(A)-- Request Token + Secret -----| | | Client |>---(E)-- Request Token, Verifier ---- | | |<---(E)-- Access Token + Secret ------------- +---------+                    Every Request: Client Credentials, Nonce, Timestamp, Signature hPp://oauth.net/
  21. 21. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010
  22. 22. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010 EngagehPp://shindig.apache.org/community/index.html
  23. 23. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010
  24. 24. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Releases• 0.5:  November,  1st  2007• 0.6:  December,  21st  2007• 0.7:  February,  4th  2008• 0.8:  May,  28th  2008• 0.9:  April,  16th  2009• 1.0:  March,  15th  2010• 1.1:  November,  18th  2010
  25. 25. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010
  26. 26. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010OpenSocial  Reach
  27. 27. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010 What  changed?  (APer  0.8) • Templates • Data  Pipelining • Proxied  Content • OSML • New  APIs:  photos  and  media  items • New,  simple  JavaScript  APIhPp://opensocial-­‐resources.googlecode.com/svn/spec/1.1/OpenSocial-­‐Specifica>on-­‐Release-­‐Notes.xml
  28. 28. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Data  Pipelining <script xmlns:os="http://ns.opensocial.org/2008/markup" type="text/os-data">     <os:PeopleRequest key="Viewer" userId="@viewer" groupId="@self" fields="@all" />     <os:PeopleRequest key="Owner" userId="@owner" groupId="@self"/>     <os:PeopleRequest key="ViewerFriends" userId="@viewer" groupId="@friends"/>     <os:HttpRequest key="httpFriends" href="http:// localhost:8062/vz_demo_gadget/backend/ externalFriends.json"/> </script>
  29. 29. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Displaying  data<script type="text/javascript">var viewers= opensocial.data.DataContext.getDataSet("ViewerFriends"); BADvar html="<ul>";for (var i=0; i < viewers.length; i++) { html += "<li>" + viewers[i].displayName + "</li>";}document.getElementById("div").innerHTML = html;</script>
  30. 30. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Templates <script type="text/os-template" require="ViewerFriends"> <ul>    <li><b>Viewer Friends:</b></li>     <li repeat="${ViewerFriends}">     <span>Showing friend ${Context.Index} of ${Context.Count}:</span>       <span>Name: ${Cur.displayName}</span>     </li>  </ul> </script> <Require  feature="opensocial-­‐templates"></Require>
  31. 31. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Templates <script type="text/os-template" require="fruits" autoUpdate="true">     <ul>       <li repeat="${fruits}">         #${Context.Index}: ${Cur.name} from ${Cur.origin}       </li>     </ul> </script> <script type="text/javascript"> opensocial.data.DataContext.putDataSet("fruits", [{name:"Apple", origin: "Germany"}, {name:"Orange", origin: "Spain"}] ); </script>
  32. 32. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Templates<script type="text/os-template" autoUpdate="true">    <h3>Testing calculation</h3>    <div>2 + 1 = ${2 + 1}</div></script>
  33. 33. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Templates<script type="text/os-template" require="fruit" autoUpdate="true">   <h3>Fruit: <span>${fruit}</span></h3>   <p if="${fruit == Orange}">from Spain</p></script><a href="javascript:;" id="changeFruit">change</a><script type="text/javascript">opensocial.data.DataContext.putDataSet( "fruit", "Apple" );document.getElementById(changeFruit).onclick = function(){    opensocial.data.DataContext.putDataSet( "fruit", "Orange" );}</script>
  34. 34. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Proxied  Content
  35. 35. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Proxied  Content<Content type="html" view="profile,canvas,popup" authz="signed" href="http://example.com/canvas.php"></Content>
  36. 36. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010<?phprequire_once "../lib/oauth.php";class MyOAuthSignatureMethod_RSA_SHA1 extends OAuthSignatureMethod_RSA_SHA1 {        protected function fetch_public_cert(&$request) {            $s = curl_init();            curl_setopt($s,CURLOPT_URL,$_GET[xoauth_signature_publickey]);            curl_setopt($s, CURLOPT_RETURNTRANSFER, 1);            $cert = curl_exec($s);            curl_close($s);            return $cert;        }        protected function fetch_private_cert(&$request) {            return;        }}$request = OAuthRequest::from_request();$server = new MyOAuthSignatureMethod_RSA_SHA1();$return = $server->check_signature($request, null, null, $_GET[oauth_signature]);if (! $return) {        die(invalid signature);}$postBody = json_decode(file_get_contents(php://input), true);$viewerId = $_GET[opensocial_viewer_id];
  37. 37. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010 Use  Cases 37
  38. 38. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010
  39. 39. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Apps  and  Games  @VZnet 33  Mio.  Installs 1,8  Mio.  DAU 5,5  Mio.  MAU
  40. 40. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010VZ-­‐Apps  compared  to  other  gaming  sites   Daily  Unique  Visitors  (Mio) Time  on  Site  (min) VZ-­‐Apps 1,80 10:50 jetztspielen.de 1,30 13:50 gameduell 1,10 20:00 SpieleJpps.de 1,00 09:00 king.com 1,00 28:00 BigPoint 1,00 05:40 1001spiele.de 0,46 20:00 spielkarussel 0,43 14:40 gamesload 0,29 04:30 fe_spielen 0,24 14:20 spielen.de 0,18 12:30 Yahoo!  Spiele 0,16 04:30 spiele-­‐zone.de 0,12 12:00 sevengames 0,11 05:50Google! Adplanner, Feb 2010
  41. 41. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Top  Developers  at  VZnet 4.6  Mio. Beijing  ELEX 2.08  Mio. Plinga 1.33  Mio. i-­‐Jet  Media 1,28  Mio. WoogaMonthly active users within all applications
  42. 42. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Good  Example:  Dorfleben  (HalfQuest)
  43. 43. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010 Demo 43
  44. 44. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010
  45. 45. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010
  46. 46. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010
  47. 47. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010
  48. 48. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010
  49. 49. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010 Demo 49
  50. 50. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010
  51. 51. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010
  52. 52. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Engage -­‐  Build  Apps -­‐  Build  Containers hPp://www.opensocial.org/
  53. 53. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010The  OpenSocial  FoundaJon➡ The  OpenSocial  Founda1on  is  a  non-­‐profit   corpora1on  created  to  sustain  the  free  and  open   development  of  OpenSocial  specifica1ons.  The   Founda1on  helps  facilitate  the  development  of   new  specifica1ons  and  ensures  that  the  technical   direc1on  remains  in  the  hands  of  the  community. hPp://www.opensocial.org/page/opensocial-­‐founda>on-­‐faq
  54. 54. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010FuncJons• Organize  specifica>on  development• Developer  outreach• PR• Legal
  55. 55. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010OrganizaJon• Board  Members: – Paul  Lindner  (Google) – Jason  Gary  (IBM) – Dan  Theurer  (Yahoo) – Chris  Chole  (MySpace) – Mark  Halvorson  (Community  Rep.,  Atlassian) – Evan  Prodomou  (Community  Rep.,  Status.NET)
  56. 56. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010OrganizaJon• Officers – Mark  Weitzel  (President,  Jive) – Helen  Chen  (Secretary,  Cisco) – Karthik  Suri  (Treasurer,  Yahoo)
  57. 57. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010
  58. 58. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Engage -­‐  Write  the  Spec -­‐  Help  people -­‐  Promote -­‐  Documenta>on hPp://www.opensocial.org/
  59. 59. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010OpenSocial  2.0
  60. 60. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Mobile
  61. 61. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010 61
  62. 62. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010 62
  63. 63. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010
  64. 64. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Mobile  Apps  &  Games  on  VZnet
  65. 65. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010 Demo 65
  66. 66. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Mobile  Views <Module>     <ModulePrefs>     </ModulePrefs>     <Content type="html" view="mobile">     </Content> </Module> <Module>     <ModulePrefs>     </ModulePrefs>     <Content type="html" view="canvas" media="screen, touch and resolution > 90dpi" >     </Content> </Module>
  67. 67. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010View-­‐level  Features <Module>     <ModulePrefs>       <Require feature="opensocial-1.1" />       <Require feature="pubsub" views="default, canvas"/>       <Require feature="mobile_feature" views="mobile"/>       <Require feature="views" />     </ModulePrefs>     <Content type="html" view="default, canvas">     </Content>     <Content type="html" view="mobile">     </Content> </Module> hPp://docs.opensocial.org/display/OSD/View+Level+Features+Proposal
  68. 68. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Embedded  Experiences• Contextual   gadgets,   embeddable  into – Emails – Feeds – etc. hPp://docs.opensocial.org/display/OSD/Embedded+Experiences
  69. 69. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010BePer  group  support
  70. 70. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010AcJvityStrea.ms• open  specifica>on  for   syndica>ng  social  ac>vi>es   (feeds)• already  adopted  by   Facebook,  MySpace,   Windows  Live,  Google  Buzz,   Opera,  and  many  others
  71. 71. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Federated  Social  Web hPp://federatedsocialweb.net
  72. 72. VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010 Thank  youhPp://twiPer.com/Bas>anHofmannhPp://studivz.net/bas>anhPp://slideshare.net/bashofmannbhofmann@vz.nethPp://developer.studivz.net
  1. A particular slide catching your eye?

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

×