opensocial - past, present, future
Post on 24-May-2015
2.354 Views
Preview:
DESCRIPTION
TRANSCRIPT
OpenSocialPast - Present - Future
Bastian HofmannVZnet Netzwerke Ltd.
VZnet Netzwerke Ltd. -‐ Saturday, February 5, 2010
VZnet Netzwerke Ltd. -‐ Saturday, February 5, 2010
2
Agenda– 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
VZnet Netzwerke Ltd. -‐ Saturday, February 5, 2010
3
Ques>ons?
Ask!
VZnet Netzwerke Ltd. -‐ Saturday, February 5, 2010
hPp://slideshare.net/bashofmann
VZnet Netzwerke Ltd. -‐ Saturday, February 5, 2010
VZ-‐Networks
VZnet Netzwerke Ltd. -‐ Saturday, February 5, 2010
VZnet Netzwerke Ltd. -‐ Saturday, February 5, 2010
Facts 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, 2010
The 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, 2010
The 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, 2010
OpenSocial 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, 2010
What 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, 2010
Apache Shindig
• OpenSource implementa>on of an OpenSocial container
• Java and PHP versions available
• New: MySpace is currently open sourcing their .NET implementa>on
hPp://shindig.apache.org/
VZnet Netzwerke Ltd. -‐ Saturday, February 5, 2010
The 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, 2010
Rendering
VZnet Netzwerke Ltd. -‐ Saturday, February 5, 2010
Social APIs
VZnet Netzwerke Ltd. -‐ Saturday, February 5, 2010
Proxy
Containervz.net
Gadget apivz.net
Gadget Backendcoolgame.com
Shindigapivz.net
Ajax
Ajax
HTTP
VZnet Netzwerke Ltd. -‐ Saturday, February 5, 2010
JavaScript RPC
Containervz.net
Gadget apivz.net
Method Call
-‐ window.postMessage
-‐ Iframes with relay files
-‐ Flash
VZnet Netzwerke Ltd. -‐ Saturday, February 5, 2010
AuthenJficaJon
• 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, 2010
Releases
• 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, 2010
OpenSocial 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 API
hPp://opensocial-‐resources.googlecode.com/svn/spec/1.1/OpenSocial-‐Specifica>on-‐Release-‐Notes.xml
VZnet Netzwerke Ltd. -‐ Saturday, February 5, 2010
Data 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, 2010
Displaying data<script type="text/javascript">var viewers= opensocial.data.DataContext.getDataSet("ViewerFriends");var html="<ul>";for (var i=0; i < viewers.length; i++) { html += "<li>" + viewers[i].displayName + "</li>";}document.getElementById("div").innerHTML = html;</script>
BAD
VZnet Netzwerke Ltd. -‐ Saturday, February 5, 2010
Templates<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, 2010
Templates<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, 2010
Templates
<script type="text/os-template" autoUpdate="true"> <h3>Testing calculation</h3> <div>2 + 1 = ${2 + 1}</div></script>
VZnet Netzwerke Ltd. -‐ Saturday, February 5, 2010
Templates<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, 2010
Proxied Content
VZnet Netzwerke Ltd. -‐ Saturday, February 5, 2010
Proxied 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, 2010
Apps and Games @VZnet
33 Mio. Installs
1,8 Mio. DAU
5,5 Mio. MAU
VZnet Netzwerke Ltd. -‐ Saturday, February 5, 2010
VZ-‐Apps compared to other gaming sites
Daily Unique Visitors (Mio) Time on Site (min)
VZ-‐Apps 1,80 10:50jetztspielen.de 1,30 13:50gameduell 1,10 20:00
SpieleJpps.de 1,00 09:00king.com 1,00 28:00BigPoint 1,00 05:40
1001spiele.de 0,46 20:00spielkarussel 0,43 14:40gamesload 0,29 04:30fe_spielen 0,24 14:20spielen.de 0,18 12:30
Yahoo! Spiele 0,16 04:30spiele-‐zone.de 0,12 12:00sevengames 0,11 05:50
Google! Adplanner, Feb 2010
VZnet Netzwerke Ltd. -‐ Saturday, February 5, 2010
Top Developers at VZnet
Beijing ELEX4.6 Mio.
Plinga2.08 Mio.
i-‐Jet Media1.33 Mio.
Wooga1,28 Mio.
Monthly active users within all applications
VZnet Netzwerke Ltd. -‐ Saturday, February 5, 2010
Good 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, 2010
Engage
hPp://www.opensocial.org/
-‐ Build Apps-‐ Build Containers
VZnet Netzwerke Ltd. -‐ Saturday, February 5, 2010
The 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, 2010
FuncJons
• Organize specifica>on development
• Developer outreach
• PR
• Legal
VZnet Netzwerke Ltd. -‐ Saturday, February 5, 2010
OrganizaJon
• 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, 2010
OrganizaJon
• 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, 2010
Engage
hPp://www.opensocial.org/
-‐ Write the Spec-‐ Help people-‐ Promote-‐ Documenta>on
VZnet Netzwerke Ltd. -‐ Saturday, February 5, 2010
OpenSocial 2.0
VZnet Netzwerke Ltd. -‐ Saturday, February 5, 2010
Mobile
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, 2010
Mobile Apps & Games on VZnet
VZnet Netzwerke Ltd. -‐ Saturday, February 5, 2010
Demo
65
VZnet Netzwerke Ltd. -‐ Saturday, February 5, 2010
Mobile 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, 2010
View-‐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, 2010
Embedded Experiences
• Contextual gadgets, embeddable into– Emails– Feeds– etc.
hPp://docs.opensocial.org/display/OSD/Embedded+Experiences
VZnet Netzwerke Ltd. -‐ Saturday, February 5, 2010
BePer group support
VZnet Netzwerke Ltd. -‐ Saturday, February 5, 2010
AcJvityStrea.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, 2010
Federated Social Web
hPp://federatedsocialweb.net
VZnet Netzwerke Ltd. -‐ Saturday, February 5, 2010
Thank you
hPp://twiPer.com/Bas>anHofmannhPp://studivz.net/bas>anhPp://slideshare.net/bashofmannbhofmann@vz.net
hPp://developer.studivz.net
top related