Goodle Developer Days Munich 2008 - Open Social Update

Preview:

DESCRIPTION

Updates about the OpenSocial ecosystem at Google developer days Munich, including presentations from Xing, Lokalisten, 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.

Citation preview

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 ck@lokalisten.de

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: matthias.haesel@xing.com

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

opensocial@viadeo.com

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

Recommended