Building Social Business Applications with OpenSocial

Preview:

DESCRIPTION

Presentation delivered at E2Innovate conference on November 15, 2012 in Santa Clara, CA describing the OpenSocial standard for building collaborative, social context aware business applications.

Citation preview

Building Social Business Applications

Clint Oram

Board Member, OpenSocial Foundation

CTO & Co-founder, SugarCRM

&

Mark Weitzel

President, OpenSocial Foundation

Director, Platform & Ecosystem, Jive Software

ABOUT ME• Board Member, Open Social Foundation

• CTO & Co-Founder, SugarCRM Inc.

• @sugarclint

• linkedin/clintoram

• clint@sugarcrm.com

• slideshare.net/sugarclint

8,700

5,000

• What is a social business application?

• Why are open standards important?

• Patterns of social business applications

• Social platforms & apps in the wild

Objectives

What is a social business application?

A cloud based service that leverages social context as a fundamental underpinning

of its business logic.

At a high level…People

Friends

Activities

In an enterprise setting…Profile ~ Base set of info, extended based on business context

Relationships ~ Org chart, group membership, content

Activity Streams ~ Flow of information about relationships

Understanding Social Context

Add a collaboration layer not part of your existing platformGraphical editingCo-worker Recognition External system quick reference and lookupsProject Management

Integrate data silos: ERP, CRM, HRS, CMS

Turn “systems of record” into “systems of engagement”

Why build a Social Business App?

Why are standards important?

• Competition: Facilitates the growth of an ecosystem around a common programming model

• Cooperation: Enables community involvement and organic growth

• Adoption: Drives interoperability and portability

• Choice: Formalizes the social platform and application model

Why are open standards important?

• Open standard for building cloud based social applications

• Platform APIs for providing social context to applications

• Shindig ~ reference implementation

What is OpenSocial?

OpenSocial has been adopted by top enterprise vendors like:

IBM, SugarCRM, Jive, SAP, eXo, LifeRay,Tibco, SurfNet, Vivo

• Information about the app

• What “features” i.e. additional JavaScript to include

• How the app will be rendered, i.e. the views

• What’s necessary for a nice market listing,

screenshots, etc.

Defining a social business app ~ app.xml

A. Request is made to render a page containing an app

B. Jive looks up the app definition

C. Processes the definition to render HTML

How OpenSocial Apps WorkIt’s as easy as A, B, C

D. App makes a request

E. Platform “proxies” the request to home server

F. Home server process request and returns

How OpenSoical Apps Work… and D, E, F

• Use osapi.http.get() to…avoid cross domain issuesprovide the container control of outgoing requests

• Sub-domains in the browser when multiple apps on the same pagePub/sub model for secure messaging between apps

• OauthTwo LeggedThree Legged

What about security?

Patterns of Social Business Applications

• Don’t be a “One Click Wonder”

• Social context is king

• Dashboards are dead

• Social applications delivered through markets

Patterns of Social Business

• An app that simply ‘iFrames’ in an existing UI

• User wonders, “Why didn’t I just click a link to the

app’s web page?”

• Poor user experience that hits the wall

• This is the portal model, and portals are deadNo social context!!

Don’t be a “One Click Wonder”

Two Key Idioms

• Pass social information to be used

in business logic (Proxied Content)

• Add social context to the app as

it’s rendered (Data Pipelining)

Social Context is King!

• Proxied Content

Use social context to dynamically render an app’s view

<Content href="http://myhomeserver.com/canvas" xmlns:os="http://ns.opensocial.org/2008/markup"> <os:PeopleRequest

userId="@viewer" groupId="@friends" fields="name “

key="ViewerFriends"/><os:HttpRequest href="http://www.someserver.com/someinfo"

key="someInfo" /> </Content>

• Pass social information and

remotely fetched data to app

(Data Pipelining)

Use social context to dynamically render an app’s view

• Data Pipelining

Use social context to dynamically render an app’s view

<script type="text/os-data"> <os:ViewerRequest key="vwr" fields="name "/> <os:DataRequest key="mydata" href="http://developer.com/api"/> </script>

• Forces user navigation

• Generic, non-contextual interaction

Use the Activity Stream

to deliver context and interaction to the user!

Dashboards are dead!

OpenSocial “Embedded Experience”

OpenSocial “Embedded Experience”

• Web hook to application

• Can be signed

OpenSocial Activity Streams Extension: Action Links

• Directed to a specific person

• Great for notifications about behavior “Your employee just won a deal!”

OpenSocial Activity Streams Extension: DeliverTo

• New paradigm for enterprise application delivery

• Purpose built apps vs. monolithic application suite

• On demand vs. pre-selected

• Market economics

Application Markets

Wrapping it up

• Only industry driven standard for building social applications

• Community driven innovation

• Broadly adopted in the industry

• Multiple open source projects

OpenSocial: The Social Business Application Platform

www.opensocial.org

@sugarclint

linkedin/clintoram

@weitzelm

linkedin/weitzelm

THANK YOU!