Getting Social with OpenSocial

Preview:

DESCRIPTION

A presentation about the OpenSocial standard for building social web applications and gadgets.

Citation preview

Getting SocialGetting Socialwith OpenSocialwith OpenSocial

Compuware ITXCompuware ITXSeptember 23, 2009September 23, 2009

Timothy FisherTimothy FisherCovisintCovisint

Who Am I?Who Am I?

Timothy FisherSystems ArchitectCompuware Covisint

tim.fisher@compuware.com

twitter.com/tfisher

linkedin.com/in/timothyfisher

blog.timothyfisher.com

Books I’ve Written:

?COMING

AgendaAgenda

Overview of OpenSocial (15 min)Overview of OpenSocial (15 min)

Deploying an OpenSocial Gadget (15 min)Deploying an OpenSocial Gadget (15 min)

Writing an OpenSocial Gadget (15 min)Writing an OpenSocial Gadget (15 min)

Building an OpenSocial Container (10 min)Building an OpenSocial Container (10 min)

More uses of OpenSocial (15 min)More uses of OpenSocial (15 min)

Questions and Open Discussion (20 min)Questions and Open Discussion (20 min)

OpenSocial’s GoalOpenSocial’s Goal

““Making the web better Making the web better by making it Social”by making it Social”

A Response to A Response to Facebook’s RiseFacebook’s Rise

Why???Why???

Why was Google interested in competing

with Facebook???

The World is SocialThe World is Social

Social Apps are everywhere!!!New opportunity to be

everywhere!!!

Too Many PlatformsToo Many Platforms

Write Once, Deploy Write Once, Deploy EverywhereEverywhere

Brief History of Brief History of OpenSocialOpenSocial

Version 0.5 was released in a “developer release” on Nov 1Version 0.5 was released in a “developer release” on Nov 1stst 20072007 First sandbox was made available on OrkutFirst sandbox was made available on Orkut

Version 0.6 release December, 2007Version 0.6 release December, 2007 More sandboxes came live (Hi5, Ning, Plaxo...)More sandboxes came live (Hi5, Ning, Plaxo...)

Version 0.7 was released in January 2008Version 0.7 was released in January 2008 MySpace, Hi5, Orkut began running 0.7MySpace, Hi5, Orkut began running 0.7

Version 0.8 released late 2008Version 0.8 released late 2008 Contains RESTful and RPC protocolsContains RESTful and RPC protocols Open social client libraries releasedOpen social client libraries released

Version 0.9 released summer 2009Version 0.9 released summer 2009 Simplified APISimplified API Support for templatesSupport for templates

Pro

gre

ss

Who Controls Who Controls OpenSocial?OpenSocial?

Google does not control or “own” the Google does not control or “own” the OpenSocial specificationOpenSocial specification

OpenSocial is managed by the OpenSocial is managed by the OpenSocial Foundation. OpenSocial Foundation. www.opensocial.orgwww.opensocial.org

OpenSocial ContainersOpenSocial Containers

OpenSocial ReachOpenSocial Reach

OpenSocial AppsOpenSocial Apps

OpenSocial AppsOpenSocial Apps

Display/Mashup network informationDisplay/Mashup network information Display friends locations on a mapDisplay friends locations on a map

Integrate external web servicesIntegrate external web services Display my friends Twitter postsDisplay my friends Twitter posts

Visual data in new and interesting waysVisual data in new and interesting ways Add new functionality and features to a Add new functionality and features to a

sitesite Provide a view into my non-social Provide a view into my non-social

applicationapplication

OpenSocial ViewsOpenSocial Views

An OpenSocial App can consist of An OpenSocial App can consist of multiple views:multiple views:

HomeHome ProfileProfile CanvasCanvas PreviewPreview EditEdit Additional views can be supported by Additional views can be supported by

containerscontainers

Preview/About ViewPreview/About View

Home ViewHome View

Profile viewProfile view

Canvas ViewCanvas View

OpenSocialOpenSocial

OpenSocial provides:OpenSocial provides:

Gadget renderingGadget rendering Web service proxyingWeb service proxying Built-in authentication supportBuilt-in authentication support Social data APISocial data API

OpenSocialOpenSocial

Through a combination ofThrough a combination of

Client-side APIsClient-side APIs JavaScriptJavaScript

Server-side servicesServer-side services

OpenSocial APIOpenSocial API

The OpenSocial API provides the The OpenSocial API provides the following data:following data:

PeoplePeople ProfilesProfiles Activity StreamsActivity Streams Application DataApplication Data Messages (optional)Messages (optional)

OpenSocial DataOpenSocial Data

OpenSocial GadgetOpenSocial Gadget

XML SyntaxXML Syntax

Derived from Google Derived from Google GadgetsGadgets

CSS and JavaScript can CSS and JavaScript can be kept externalbe kept external

XML Gadget

Gadget Metadatatitle, author, features

ContentHTML, CSS, JavaScript

Gadget SpecificationGadget Specification

Gadget contained in an XML file.

Includes: JavaScript CSS XHTML Metadata

Deploying an OpenSocial Deploying an OpenSocial GadgetGadget

DEMO:

Deploy an OpenSocial Gadget to a Ning Community

Deploying an OpenSocial Deploying an OpenSocial GadgetGadget

Deploys instantly…Deploys instantly…

No help from server guys No help from server guys needed…needed…

Very easy to deploy!!!Very easy to deploy!!!

OpenSocialOpenSocial

Writing an OpenSocial Writing an OpenSocial GadgetGadget

OpenSocial Developer OpenSocial Developer ToolsTools

OSDA – OpenSocial DevAppOSDA – OpenSocial DevApp An OpenSocial app that provides the ability to build and An OpenSocial app that provides the ability to build and

execute OpenSocial apps within an OpenSocial execute OpenSocial apps within an OpenSocial containercontainer

Gadget EditorGadget Editor A simple online gadget editor from GoogleA simple online gadget editor from Google

OSDE – OpenSocial Developer EnvironmentOSDE – OpenSocial Developer Environment An Eclipse plugin that allows for OpenSocial application An Eclipse plugin that allows for OpenSocial application

development completely offlinedevelopment completely offline

OpenSocial DevAppOpenSocial DevApp

Many containers provide an OpenSocial Dev App which can be used to test gadget code against a particular container.

http://osda.appspot.com

DEMO - Orkut

Gadget EditorGadget Editor

Very simple editor for creating simple OpenSocial gadgets or viewing source code of existing gadgets.

http://gadgeteditor.appspot.com

DEMO

OpenSocial Development OpenSocial Development EnvironmentEnvironment

Eclipse plug-in available to simplify the development of OpenSocial gadgets.

DEMO

Sun ZemblySun Zembly

Web app for building Web app for building gadgets, and services.gadgets, and services.

Shared gadgets, Shared gadgets, servicesservices

Reuse gadgets, Reuse gadgets, servicesservices

Social network around Social network around these componentthese component

DemoDemo

OpenSocialOpenSocial

Building an OpenSocial Building an OpenSocial ContainerContainer

Apache ShindigApache Shindig

Provides components to get you started with implementing your own OpenSocial container.

Most existing containers started with Shindig.

Includes client and server-side components.

Java and PHP versions.

Shindig ImplementationShindig Implementation

More Uses of OpenSocialMore Uses of OpenSocial

OpenSocial has uses beyond just social networking.OpenSocial has uses beyond just social networking.

Enable a dashboard of data-aware gadgetsEnable a dashboard of data-aware gadgets Integrate stand-alone applicationsIntegrate stand-alone applications A platform for data visualizationA platform for data visualization Build data-aware mobile applicationsBuild data-aware mobile applications Google Friend ConnectGoogle Friend Connect

Atlassian OpenSocialAtlassian OpenSocial

Issue Tracker (JIRA)Issue Tracker (JIRA) Enterprise Wiki (Confluence)Enterprise Wiki (Confluence) Source code explorer (Fisheye)Source code explorer (Fisheye) Peer code review (Crucible)Peer code review (Crucible) Continuous Integration (Bamboo)Continuous Integration (Bamboo) Test Coverage Analysis (Clover)Test Coverage Analysis (Clover)

Atlassian offers a family of products targeted at improving the software development process.

Atlassian OpenSocialAtlassian OpenSocial

Development is socialDevelopment is social Developers work with teamsDevelopers work with teams Teams work together on shared objectsTeams work together on shared objects Each person, team, object generates Each person, team, object generates

activitiesactivities Comments, schedules, tasks, notification of Comments, schedules, tasks, notification of

changes and edits, build failures, code changes and edits, build failures, code commitscommits

This is a huge social network!!!This is a huge social network!!!

Atlassian OpenSocialAtlassian OpenSocial

Atlassian OpenSocialAtlassian OpenSocial

OpenSocial for MobileOpenSocial for Mobile

Google Friend ConnectGoogle Friend Connect

Easily turn any Easily turn any website, blog, wiki, website, blog, wiki, etc into a social etc into a social network supporting network supporting OpenSocial gadgets.OpenSocial gadgets.

Google is the Google is the container.container.

Canned social Canned social widgets for quick widgets for quick start.start.

OpenSocial AlternativeOpenSocial Alternative

Facebook PlatformFacebook Platform Facebook ConnectFacebook Connect Facebook ApplicationsFacebook Applications

Limited to only Facebook. Limited to only Facebook.

That might be enough!!!That might be enough!!!

OpenSocial vs. PortletsOpenSocial vs. Portlets

Today complete portals are Today complete portals are available that consist entirely of available that consist entirely of OpenSocial gadgets.OpenSocial gadgets.

Will OpenSocial replace Will OpenSocial replace traditional server-side portlet traditional server-side portlet technologies?technologies?

vs.

So What???So What???

You may be thinking… this is all very interesting, and maybe even cool technology...

But I don’t work for Google, Facebook, MySpace or any other social network…

Why interest does this have for me as a Compuware employee???

OpenSocial & OpenSocial & CompuwareCompuware

A common gadget A common gadget technology for integrating technology for integrating productsproducts

Bring together views from Bring together views from all our productsall our products

Let users visualize their Let users visualize their data the way they choose todata the way they choose to

Compuware Portal

VantageGadget

ChangepointGadget

VantageGadget

ChangepointGadget

VantageServer

ChangepointServer

ResourcesResources BookBook

OpenSocial Network ProgrammingOpenSocial Network Programming by Lynne Greweby Lynne Grewe

On the WebOn the Web www.opensocial.orgwww.opensocial.org incubator.apache.org/shindigincubator.apache.org/shindig

ContainersContainers www.myspace.com/developerwww.myspace.com/developer www.ning.comwww.ning.com www.atlassian.com/opensocialwww.atlassian.com/opensocial

Questions???Questions???

Now its time for YOUR questions Now its time for YOUR questions and YOUR open discussion!!!!and YOUR open discussion!!!!