OpenSocial ecosystem updatesPatrick ChanezonChris ChabotChewy TrewhellaThomas Steiner
22/09/2008
Agenda
OpenSocial introductionHow to build OpenSocial applicationsHosting social applicationsSocial applications monetization OpenSocial container demosBecoming an OpenSocial containerGoogle Friend ConnectSummary
OpenSocial IntroductionPatrick Chanezon
Making the web betterby 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. 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
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 sites!
What’s offered by OpenSocial?
ActivitiesWhat are people up to on the web
People/Profile InfoWho do I know, etc.
Persistent datastoreHandles key/value pairs
Today: 375 Million User Reach
Where is OpenSocial live today?
Live to Users:MySpaceorkutHi5FreebarFriendsterWebon from LycosIDtailYiQiNetlog - New!Hyves - New!
Live Developer Sandboxes:iGoogleimeemCityINTianyaNingPlaxo PulseMail.ru
Individual Developer Links: http://code.google.com/apis/opensocial/gettingstared.html
OpenSocial “Containers”
What’s in OpenSocial?
JavaScript API - Now
REST Protocol - New
Templates - Prototype in Shindig
OpenSocial’s JavaScript API
OpenSocial JS APIGadget JS APIGadget XML schema
OpenSocial v0.7 is liveOpenSocial v0.8 is being deployed now
Specs and release notes: http://opensocial.org
OpenSocial’s REST Protocol
Access social data without JavaScriptWorks on 3rd party websites / phones / etcUses OAuth to allow secure accessOpen 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
OpenSocial Templates
Writing JavaScript is hardWriting templates is easyTemplates also give
Consistent UI across containersEasy way to localizeMore interesting content options when inlining into container (activities, profile views)Ability to serve millions of dynamic pages per day without a server
Try out templates today!
Samples and docs:http://ostemplates-demo.appspot.comSample app:http://ostemplates-demo.appspot.com/friends.htmlDiscussion group:http://tech.groups.yahoo.com/group/os-templates/Code is all in Shindig, can download, use, and even submit patches to improveSo…
Get involved and provide comments, andBuild some apps
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 FoundationGet involved to nominate and elect board repshttp://www.opensocial.org/opensocial-foundation/
A note on compliance
OpenSocial is designed for many sites
Building an app:TechnologyPolicy
OpenSocial Compliance Tests http://code.google.com/p/opensocial-resources/wiki/ComplianceTests
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 3.0 License
How To Build OpenSocial Applications
People & Friends ExampleRequesting friend Info
function getFriendData() { var req = opensocial.newDataRequest(); req.add( req.newFetchPersonRequest(VIEWER), 'viewer'); req.add( req.newFetchPeopleRequest(VIEWER_FRIENDS), 'viewerFriends'); req.send(onLoadFriends);}
People & Friends Example
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;}
Callback function for returned friend data
Activities Example
function postActivity(text) { var params = {}; params[opensocial.Activity.Field.TITLE] = text; var activity = opensocial.newActivity(params); opensocial.requestCreateActivity( activity, opensocial.CreateActivityPriority.HIGH, callback);}
postActivity( "This is a sample activity, created at " + new Date().toString());
Posting an activity
Persistence Example
function populateMyAppData() { var req = opensocial.newDataRequest(); var data1 = Math.random() * 5; var data2 = Math.random() * 100; req.add( req.newUpdatePersonAppDataRequest("VIEWER", "AppField1", data1)); req.add( req.newUpdatePersonAppDataRequest("VIEWER", "AppField2", data2)); req.send(requestMyData);}
Persisting data
Persistence Example
function requestMyData() { var req = opensocial.newDataRequest(); var fields = ["AppField1", "AppField2"];
req.add(req.newFetchPersonRequest( opensocial.DataRequest.PersonId.VIEWER), "viewer"); req.add(req.newFetchPersonAppDataRequest("VIEWER", fields), "viewer_data"); req.send(handleReturnedData);}
Fetching persisted data
Persistence Example
function handleReturnedData(data) { var mydata = data.get("viewer_data"); var viewer = data.get("viewer"); me = viewer.getData(); // me is global var var data = mydata[me.getId()];
htmlout += "AppField1: " + data["AppField1"] + "<br/>"; htmlout += "AppField2: " + data["AppField2"] + "<br/>"; var div = document.getElementById('content_div'); div.innerHTML = htmlout;}
Displaying fetched (persisted) data
Resources For Application DevelopersSpecificationhttp://opensocial.org/http://groups.google.com/group/opensocial-and-gadgets-spec
Code Samples and Toolshttp://code.google.com/opensocialhttp://code.google.com/p/opensocial-resources/
Sandboxeshttp://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
Hosting social apps Patrick Chanezon
Hosting OpenSocial apps
Establish a "home" site where gadget can phone home to retrieve, post data
Can host home site on your own, or use services:Amazon EC2JoyentGoogle AppEngine
Zembly: is the world's first cloud-based development environment for social apps. Full OpenSocial support
In addition to using the provided persistence API...
Google AppEngine and OpenSocial
Create an App Engine app as your backend!Use makeRequest() to call back to your AppEngine serverUtilize AppEngine's datastore
New OpenSocial Apps are coming onlineBuddyPoke,
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
Social Apps monetization Patrick Chanezon
OpenSocial MonetizationAds from Ad Networks
AdSense, RightMediaBuddyPoke, Rate My Friend
Brand/Private Label App Sony Ericsson MTV Roadies app on orkut
Sell virtual or real goodsFree -> FreemiumReferralsVirtual currency
Success Story: Buddy Poke
#1 OpenSocial app on orkut8M installs for orkut, hi5, MySpace$1-2 CPM#1 App for App Engine w/ millions daily PV
Success Story: PhotoBuzz
6M+ installs on hi5 and orkutCPM $1-3, especially good on orkut4M buzzes per daySmall team of 4 people, profitable
Container demos
Lokalisten.deChristof Kaleschke
… für freunde und freundesfreunde
© lokalisten media GmbH 2008
Lokalisten.deLaunch of Opensocial developer platformSeptember 23, 2008
© lokalisten media GmbH 2008
Lokalisten.de: facts and figures
Network of friends: communication and linking of friends and friends of friends
Regional focus: events, market entries and blogs are assigned to cities / regions
Launch in May 2005
#5 in the IVW ranking Germany
2.3 million users
1.2 billion page views / month
27 million visits / month
84 million search queries / month
49 million messages / month
Nearly half of its members log in every day
… für freunde und freundesfreunde
© lokalisten media GmbH 2008
developer.lokalisten.de
The developer platform of Lokalisten.de
For you to develop Opensocial applications:
Create
Code
Test
Publish
Detailed documentation and a forum
Opensocial 0.8 (well, almost)
Based on Apache Shindig
Launch of applications on Lokalisten.de soon to come
Launched today!!!
… für freunde und freundesfreunde
… für freunde und freundesfreunde
Applications list and application details page
After publishing your application appears in the list of applications
You can present details and a screenshot of your application in the details page
Here the user adds your application to her/his profile or home page
© lokalisten media GmbH 2008
Profile view of your application
‘Lokalists’ use your application on their own profile, but also on other user’s profiles
Your application spreads!!!
© lokalisten media GmbH 2008
… für freunde und freundesfreunde
Home view of your application
Some applications can be added to the user’s home page
Depending on functionality and performance
© lokalisten media GmbH 2008
… für freunde und freundesfreunde
Canvas view of your application
Full screen view of your application
© lokalisten media GmbH 2008
… für freunde und freundesfreunde
Activity Feed
‘Lokalists’ see in the activity feed what their friends did
Here: that they added your application to their profile
Your application can write into the activity feed directly
Your application spreads!!!
© lokalisten media GmbH 2008
… für freunde und freundesfreunde
Developer platform demo
© lokalisten media GmbH 2008
… für freunde und freundesfreunde
… für freunde und freundesfreunde
© lokalisten media GmbH 2008
Contact
OpensocialChristof Kaleschke [email protected]
Address:Müllerstr. 380469 MunichGermany
Web: http://www.lokalisten.de
OpenSocial at XING
Matthias HäselTechnical Product Manager
XING AG
DISCLAIMERThis presentation has been produced by XING AG (the "Company") solely for use at the Google Developer Day presentation held in September 2008 and is strictly confidential. It has been made available to you solely for your own information and may not be copied, distributed or otherwise made available to any other person by any recipient. Neither this presentation nor any copy of it may be taken or transmitted into the United States or distributed within the United States. Any failure to comply with this restriction may constitute a violation of the U.S. securities laws. The distribution of this document in other jurisdictions may also be restricted by law, and any persons into whose possession this presentation comes should inform themselves about, and observe, any such restrictions. The facts and information contained herein are as up-to-date as is reasonably possible and are subject to revision in the future. Neither the Company nor any of its subsidiaries, any directors, officers, employees, advisors nor any other person makes any representation or warranty, express or implied as to, and no reliance should be placed on, the accuracy or completeness of the information contained in this presentation. Neither the Company nor any of its subsidiaries, any directors, officers, employees, advisors or any other person shall have any liability whatsoever for any loss arising, directly or indirectly, from any use of this presentation. The same applies to information contained in other material made available at the presentation. While all reasonable care has been taken to ensure the facts stated herein are accurate and that the opinions contained herein are fair and reasonable, this document is selective in nature and is intended to provide an introduction to, and overview of, the business of the Company. Where any information and statistics are quoted from any external source, such information or statistics should not be interpreted as having been adopted or endorsed by the Company as being accurate. This presentation contains forward-looking statements relating to the business, financial performance and results of the Company and/or the industry in which the Company operates. These statements are generally identified by words such as "believes," "expects," "predicts," "intends," "projects," "plans," "estimates," "aims," "foresees," "anticipates," "targets," and similar expressions. The forward-looking statements, including but not limited to assumptions, opinions and views of the Company or information from third party sources, contained in this presentation are based on current plans, estimates, assumptions and projections and involve uncertainties and risks. Various factors could cause actual future results, performance or events to differ materially from those described in these statements. The Company does not represent or guarantee that the assumptions underlying such forward-looking statements are free from errors nor do they accept any responsibility for the future accuracy of the opinions expressed in this presentation. No obligation is assumed to update any forward-looking statements. By accepting this presentation you acknowledge that you will be solely responsible for your own assessment of the market and of the market position of the Company and that you will conduct your own analysis and be solely responsible for forming your own view of the potential future performance of the Company's business. This presentation speaks as of September 2008. Neither the delivery of this presentation nor any further discussions of the Company with any of the recipients shall, under any circumstances, create any implication that there has been no change in the affairs of the Company since such date.
IMPORTANT NOTICEPro-forma resultsResults contained in this presentation are partly based on unaudited pro-forma financial results that the Company derived from its preliminary and past financial statements for the indicated periods in order to make these periods comparable and show non-recurring costs.Cautionary note regarding preliminary results and pro-forma financial resultsThis presentation contains preliminary results and pro-forma results. The preliminary results may change during their final review. While the Company believes that its pro-forma financial results are reflective of its recurrent trends and the on-going status of its business, there can be no assurance that its pro-forma results will accurately reflect these trends and status and therefore, its investors are urged not to rely solely upon the pro-forma results when making their investing decision and the pro-forma results should always be reviewed together with its actual financial results.
About XINGXING is European market leader in business networking01
(c) 2008 XING AG | OpenSocial at XING | Matthias Häsel | Join www.xing.com/profile/matthias_haesel
What about XING as a company?First publicly listed Web 2.0 company Headquartered in Hamburg, GermanyOffices in Istanbul, Barcelona, Beijing150 employees from 22 countriesDevelopment in Perl and Ruby on Rails
What about XING as a platform?Focus: business people worldwide6.14 million members* 500,000 paying members**16 different languagesWeekly software releases
*as of June 2008 **as of September 2008
OpenSocial at XINGXING will introduce a range of OpenSocial apps next year02
Why OpenSocial?Give XING members access to many new social applications Give application developers access to XING's social graph data
(c) 2008 XING AG | OpenSocial at XING | Matthias Häsel | Join www.xing.com/profile/matthias_haesel
Why is OpenSocial at XING different?Apps are required to bring value to business peopleApps need to be compatible with XING's business model Apps must adhere to XING's data protection policy
OpenSocial at XINGA quick idea on the canvas view02
(c) 2008 XING AG | OpenSocial at XING | Matthias Häsel | Join www.xing.com/profile/matthias_haesel
OpenSocial at XINGA quick idea on the home view02
(c) 2008 XING AG | OpenSocial at XING | Matthias Häsel | Join www.xing.com/profile/matthias_haesel
OpenSocial at XINGA quick idea on the profile view02
(c) 2008 XING AG | OpenSocial at XING | Matthias Häsel | Join www.xing.com/profile/matthias_haesel
Launching OpenSocialXING is looking for open-minded social gadget experts03
(c) 2008 XING AG | OpenSocial at XING | Matthias Häsel | Join www.xing.com/profile/matthias_haesel
To register for the pitch, contact Matthias: [email protected]
What's next with OpenSocial at XING?XING will launch OpenSocial in the first half-year 2009Launch will include a white-listed selection of third-party applicationsXING is looking for dedicated partners, cool ideas and talented developers
Thank youfor your kind attention!
NetlogToon CoppensFolke Lemaitre
What is Netlog?
Your Profile
Friend Activity
Communication: Shouts
Communication: Private messaging
Communication: Chat
Homepage
Explore
How are we doing?
Català中文
česky
Dansk
Nederlands
English
Eesti
suomifrançai
s
DeutschItaliano
Lietuvių kalba
Norsk (bokmål)
Polski
PortuguêsRomână
Русский
slovenščina
Español
Svenska
TürkçeAfrikaan
s
български
Hrvatski
Magyar
Latviešu valoda
Slovenčina
More than 35,000,000 unique members3,000,000 German speaking members
More than 6,000,000,000 pageviews/Month23 languages and alot more coming!
Applications
Canvas view
Profile view
Home View (available soon!)
Application directory
Activity logs
Share with your friends
Requirements
Whitelisting Requirements
an application should be fully integratedno external login should be needed...no external links
no ads in “profile” viewno spamming through activities/requestslocalised & translated
We can help you!
Localisation
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 on your application page
Credit economy with Netlog OpenSocial extension
Credit Economy
Virtual CurrencyUse Cases
charge credits for app installationcharge credits for certain featurescharge credits for buying itemscharge credits for...
Questions?
Developer pages:http://en.netlog.com/go/developer/
OpenSocial sandbox:http://en.netlog.com/go/developer/opensocial/sandbox=1
ViadeoAriel Messias
Google Dev DayOpenSocial
Munchen 08/09/23
Social NetworkBusiness ToolCareer Management
© viadeo – septembre 2008
A few words about Viadeo
What to offer to Viadeo’s members
Sandbox presentation
Agenda
Viadeo
3 groups of Use : Social Network, Business ToolCareer Management
5 +m Members mainly :EuropeChina
Strong activity7, 000 new members/day10, 000 connections/day+120, 000 consulted profiles/day1,3 M hubs registration
France
1.8m members(1)
350k members(1)
2.2m members(1)
China
(1) end of August 2008300k members(1)
Italy
150 k members(1)
UK/Ireland100k members(1)
Belgium
Spain/Portugal
International Footprint : 5+m Members
Other European countries
150K members(1)
Switzerland
50K members(1)
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
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/Events
Share information and expertise
But also ...
Get headhunted…
…and recruit
Etc…
Sandbox Presentation – Create a Dev. Account
Sandbox Presentation – Apps Directory
Sandbox Presentation – My Apps
Sandbox Presentation – Add an app
Sandbox Presentation – Viadeo mailing list
Becoming an OpenSocial Container Chris Chabot
Becoming an OpenSocial Container
Question: How do you become an OpenSocial container?
Answer: The Apache incubator project “Shindig” serves this purpose!
What is Shindig ?
Open source reference implementation of OpenSocial & Gadgets specificationAn Apache Software Incubator projectAvailable 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 work"
Introduction to Shindig ArchitectureGadget ServerSocial Data Server Gadget Container JavaScript
Gadget Server
Social Server
Social Server - RESTful APIPreview available on
iGoogleOrkutHi5
New development modelsServer to server & Mobile!
Try it out:curl http://localhost:8080/social/rest/people/john.doe/@all
Implementing Shindig - Data sourcesIntegrate with your own data sources
People ServiceActivities ServiceApp Data Service
class MyPeopleService implements PeopleService {...}
class MyAppDataService implements AppDataService {...}
class MyActivitiesService implements ActivitiesService {... }
Implementing Shindig - Data sourcesImplement functions
function getActivities($ids) { $activities = array(); $res = mysqli_query($this->db, ”SELECT…"); 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;}
Implementing - Make it a platformAdd UI Elements
App GalleryApp CanvasApp InvitesNotification Browser
Developer ResourcesDeveloper ConsoleApplication Gallery
Scale it Out!
Implementing - Scale it Out!Prevent Concurrency issuesReduce LatencyAdd CachingAdd more caching!
Usage Example: Sample ContainerStatic html sample containerNo effort to get up and runningNo database or features
Usage Example: PartuzaPartuza is a Example social network site, written in PHPAllows for local gadget development & testing tooUse as inspiration (or copy) for creating your own social sitehttp://code.google.com/p/partuza
OpenSocial for intranet, portalsSun Microsystems
Socialsite: Shindig + gadget based UI written in JavaOpen Source https://socialsite.dev.java.net/
Upcoming from Impetus
Zest: Shindig + Drupal (PHP)Zeal: Shindig + Liferay (Java)
SummaryBecome an OpenSocial Container
Get Shindig (PHP or Java)Look at examples & documentationImplement ServicesAdd UIScale it out
Resources & Links:
http://www.chabotc.com/gdd/
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/
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
Learn more
code.google.com
Q & A