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
• 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!