OpenSocial: Breaking the Walled Gardens of Social Networking
7223_Opensocial an enabler for social applications on the web.
This paper introduces OpenSocial, an interoperable API suite designed to unify social networks by providing a standard for developing social applications. It describes how the OpenSocial standard allows developers to build applications using standard Web technologies (HTML/JS) that can run across multiple "containers" (social networks) like MySpace and XING.
TL;DR
OpenSocial is a suite of APIs that allows developers to create social applications capable of running across various social networks. By transitioning social networks from closed systems to open runtime environments, it enables a "write once, deploy many" approach for apps that leverage social data like profiles, friend lists, and activity feeds.
Background Positioning
In the Web 2.0 era, social interaction was trapped within individual platforms. OpenSocial, initially driven by Google and later governed by the OpenSocial Foundation, emerged as the open-standard competitor to the Facebook Platform. It isn't just a library; it's a foundational attempt to standardize the "Social Graph" as a utility.
The Core Problem: The Fragmentation of Social Ties
Before 2007, if a developer wanted to build a social game or a productivity tool, they faced a binary choice:
- Build a new social graph: Force users to sign up and find friends all over again (an impossible task for most startups).
- Lock-in: Develop for a proprietary platform like Facebook, losing the ability to reach users on other networks like MySpace or LinkedIn.
The author argues that this fragmentation stifled innovation. Developers needed a way to access existing connections (Relationships) and broadcast updates (Activities) without re-engineering the backend for every site.
Methodology: The Gadget Architecture
OpenSocial apps are essentially Gadgets—XML documents containing HTML and JavaScript. These gadgets are rendered within a Container (the social network).
Key Pillars of the API:
- People and Relationships: Accessing the
VIEWER(current user) andOWNER(profile owner) data. - Activities and Notifications: A standard way to push updates to a user’s "News Feed" or "Update Stream."
- Persistence Layer: A simple key-value store provided by the container for app data.
The Reference Implementation
To help social networks support this standard, the Apache Shindig project provides the code necessary to host gadgets.
Figure 1: The architecture showing how Shindig acts as the mediator between the gadget and the container's internal software.
OpenSocial vs. Facebook Platform
The paper provides a critical comparison between OpenSocial and the Facebook Platform. While Facebook provides a highly polished, proprietary environment (using FBML and FQL), OpenSocial focuses on Interoperability.
| Feature | OpenSocial | Facebook Platform |
|---|---|---|
| Language | Standard HTML/JS | Proprietary (FBML, FBJS) |
| Portability | Multi-network | Facebook-only |
| Design | Generic (Harder to match host UI) | Integrated (Consistent look-and-feel) |
Figure 2: Developers can utilize the Canvas View for full-screen interaction and Profile View for social context.
Critical Insight & Future Outlook
The true value of OpenSocial is its role as a "Social Enabler." It allowed small startups to "borrow" the user base of giant networks. However, the author notes significant challenges:
- Privacy: The standard initially left too much to the container's discretion regarding data export.
- Consistency: Without standardized UI components (later addressed in version 0.9 with OSML), apps often looked "out of place" across different sites.
In conclusion, OpenSocial was a precursor to the modern "Open Web," shifting the focus from sites as destinations to sites as platforms. While the specific standard evolved, the philosophy of the "Loosely Coupled Social Web" remains a cornerstone of how we think about APIs today.
