• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
OpenSocial - Past, Present, Future
 

OpenSocial - Past, Present, Future

on

  • 2,410 views

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

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

Statistics

Views

Total Views
2,410
Views on SlideShare
2,197
Embed Views
213

Actions

Likes
0
Downloads
23
Comments
0

1 Embed 213

http://www.bastianhofmann.de 213

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    OpenSocial - Past, Present, Future OpenSocial - Past, Present, Future Presentation Transcript

    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010 OpenSocial Past - Present - Future Bastian Hofmann VZnet Netzwerke Ltd.
    • 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
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010  Ques>ons?  Ask! 3
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010 hPp://slideshare.net/bashofmann
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010VZ-­‐Networks
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010
    • 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
    • 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
    • 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
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010
    • 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
    • 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
    • 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/
    • 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
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Rendering
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Social  APIs
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Proxy Shindig apivz.net Container vz.net Ajax HTTP Gadget   Gadget  Backend apivz.net coolgame.com Ajax
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010JavaScript  RPCContainer -­‐  window.postMessagevz.net Method  Call -­‐  Iframes  with  relay   Gadget   files apivz.net -­‐  Flash
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010AuthenJficaJon• Two-­‐Legged  or  Three-­‐Legged   OAuth• Security  Token  for  JavaScript   requests  from  gadget
    • 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/
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010 EngagehPp://shindig.apache.org/community/index.html
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010
    • 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
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010OpenSocial  Reach
    • 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
    • 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>
    • 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>
    • 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>
    • 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>
    • 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>
    • 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>
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Proxied  Content
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Proxied  Content<Content type="html" view="profile,canvas,popup" authz="signed" href="http://example.com/canvas.php"></Content>
    • 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];
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010 Use  Cases 37
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Apps  and  Games  @VZnet 33  Mio.  Installs 1,8  Mio.  DAU 5,5  Mio.  MAU
    • 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
    • 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
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Good  Example:  Dorfleben  (HalfQuest)
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010 Demo 43
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010 Demo 49
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Engage -­‐  Build  Apps -­‐  Build  Containers hPp://www.opensocial.org/
    • 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
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010FuncJons• Organize  specifica>on  development• Developer  outreach• PR• Legal
    • 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)
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010OrganizaJon• Officers – Mark  Weitzel  (President,  Jive) – Helen  Chen  (Secretary,  Cisco) – Karthik  Suri  (Treasurer,  Yahoo)
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Engage -­‐  Write  the  Spec -­‐  Help  people -­‐  Promote -­‐  Documenta>on hPp://www.opensocial.org/
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010OpenSocial  2.0
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Mobile
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010 61
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010 62
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Mobile  Apps  &  Games  on  VZnet
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010 Demo 65
    • 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>
    • 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
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Embedded  Experiences• Contextual   gadgets,   embeddable  into – Emails – Feeds – etc. hPp://docs.opensocial.org/display/OSD/Embedded+Experiences
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010BePer  group  support
    • 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
    • VZnet  Netzwerke  Ltd.  -­‐  Saturday,  February  5,  2010Federated  Social  Web hPp://federatedsocialweb.net
    • 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