OpenSocial At Mahalo Developers Meetup August 13

64
OpenSocial Presented at Mahalo Meetup, Santa Monica, Aug 13, 2008 [Kevin Marks, Chris Schalk]

Transcript of OpenSocial At Mahalo Developers Meetup August 13

OpenSocialPresented at Mahalo Meetup, Santa Monica, Aug 13, 2008

[Kevin Marks, Chris Schalk]

Social Graph APIIndexes public websites that are peopleShows the 'me' and 'friend' links between themSupports the open XFN and FOAF standardsUses the standard Google crawler

The problem

The solution

Why do we have so many users in

Beverly Hillsand

Schenectady?

Why do we have so many users in

90210and

12345?

Who has implemented OpenSocial ?

300 Million reach now

Containers provide a social context

OpenSocial separates application logic from social contextan app sees user ids - the container makes them peopleUsers understand the social contract of the containersSave apps and users from re-registration hell

Containers don’t choose users

Containers set up the social model, users choose to jointhey grow through homophily and affinityNetwork effect can bring unexpected userbases

OpenSocial gets you to all their users

You don't have to pick a site to specialise forYou get to spread through multiple friend groupsYou'll be surprised by where your users areso make sure you plan to localize

Not just Social Network Sites

Social network sites - Profiles and home pagesPersonal dashboardsSites based around a Social ObjectCorporate CRM systemsAny web site

How do we abstract these out?

Viewer + friendsOwner + friends

The Viewer and Viewer friends

Owner and Owner friends

Owner and Viewerare defined by Container

The Application gets IDs and connections to other IDs

the Owner need not be a PersonIt could be an organisation

or a social object

Kinds of container - Social network sites

Profile pagesOwner is profile page ownerViewer may not be known, may be owner or other member

Home pagesOwner is Viewer (must be logged in to see)

ExamplesMySpaceHi5Orkut

Kinds of container - Personal dashboard

like Home pagesOwner is Viewer (must be logged in to see)

Friends may not be definedExample:

iGoogle, My Yahoo

Kinds of container - Social Object site

Pages reflect the object - movie, picture, productOwner is the objectOwner friends are people connected to the object

may be authors or fansViewer is looking at it, Viewer friends are people you may want to share with

Example:Imeem is a bit like this - opportunity for sites like Flickr, YouTube

Kinds of container - CRM systems

Pages reflect the customer Owner is the customerOwner friends are people connected to the customer

may be your colleagues, or other customersViewer is you, Viewer friends are your colleagues or customers

Example:Oracle CRM, Salesforce

Kinds of container - Any web site

Owner is the site

Owner friends are site usersViewer is you,

Viewer friends are your friends who have visited this siteExample:

Google Friend Connect will enable this for any site

®friendster

Who's part of OpenSocial?

>600 Million reach by Q4

OpenSocial Technical Details

OpenSocial API Details/API

FriendConnect

[Chris Schalk]

OpenSocial Technical Details

"OpenSocial defines a common set of APIs for social applications across multiple websites"

Based on standard Web technologies

JavaScript, HTML, REST

A reference Implementation: Shindig Apache Open Source Project

A huge community of developers

Even bigger community of users!

The core OpenSocial Services

People & FriendsAccess friends information programmatically

ActivitiesSee what you’re friends are up toShare what you are doing

PersistenceProvide state without a serverShare data with your friends

JavaScript API - for browser based client developmentStandard Web development technologies

HTML + Javascript, CSS, AJAXCan integrate with 3rd party servers

PHP, Python, Perl, Java, C/C++

RESTful API - for server based client developmentBased on Atom publishing protocolData transfer is Atom or JSON

OpenSocial Client APIs

OpenSocial application in action

Gadget using JavaScript Client API communicates with OpenSocial server

OpenSocialServer

browser

JSON

Gadget XML Source

Social Network Site

OpenSocial and the Cloud

What if you need to store more data than your container allows?

Solution: You can make independent requests out to external servers.

Use: gadgets.io.makeRequestCan also make authenticated requests using OauthCan use cloud services from: Joyent, Amazon or AppEngine!

The OpenSocial persistence service provides a way to store/share small amounts of data on the OpenSocialserver, but…

OpenSocial Roadmap

Version 0.5 was released in a “developer release” on Nov 1st.

First “sandbox” was made available on Orkut

Version 0.6 was released in DecemberInitial version of Shindig server software was launched as Apache incubator projectOther sandboxes came live - Hi5, Ning, Plaxo …

Version 0.7 (production) was released in JanuaryMySpace, Hi5, Orkut currently running with 0.7

Demo

Building OpenSocial client applications

OpenSocial v0.8 has been defined!

Latest evolution of OpenSocial as defined by the OpenSocial development community

Updated JavaScript APINow contains a RESTful API

Shindig supports v0.8 todayhi5 almost done with their supportorkut currently working on their implementationOther containers also working on 0.8

Specification is here:http://www.opensocial.org/Technical-Resources/opensocial-spec-v08

OpenSocial v0.8 REST API

Access OpenSocial data without JavaScriptUse simple REST calls instead

Does not require gadget container

Allows server-to-server communication

Client libraries under development (open source):

Java

PHP

Python

<your favorite language here?>

How to host OpenSocial Applications

1. Can build your own server that implements OpenSocial specification…

2. Or can use “Shindig” - Reference implementation for OpenSocial

Gadget ServerRenders gadget XML as HTML/JS/CSS

OpenSocial Data Server

RESTful API server (in-progress)

Shindig Architecture

Gadget Server

OpenSocial Data Server

Yoursite.com

GadgetGadgetServer

OpenSocialDataServer

Shindig

Why use Shindig?

Strong open source community

High quality production-ready code

Update easily as OpenSocial evolves

Built in security using OAuth

Fully compliant with OpenSocial v0.7, 0.8!

Shindig is language neutral (Java, PHP today, more to follow…)

Demo

Getting familiar with Shindig, running your own container

Google Friend Connect

Personal Web sites (e.g.blogs) have readers, contacts, connections for a social graph

Can small personal websites host OpenSocial applications?

Problem: blogger’s/Webmasters typically lack development resources!

Solution: Google Friend Connect solves this problem!

Google Friend Connect

A hosted OpenSocial container solution

ingridmichaelson.com on Friend Connect

My new blog on Friend Connect

Google Friend Connect

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

Sign up for the preview release!http://google.com/friendconnect/

290 days old300M users66M installs2,000+ apps20,000 developers10M daily app users

OpenSocial Numbers

More info

Start at OpenSocial.org

http://www.opensocial.org

Has links to all relevant resources for OpenSocial including links to:

SpecificationDocumentation/TutorialsBlogHowTosDiscussion GroupsShindig Container Website

More info

Contact us at:

[email protected] - epeus.blogspot.com

[email protected] - chrisschalk.com/blog